Skip to content

Conversation

illwieckz
Copy link
Member

@illwieckz illwieckz commented Jul 19, 2025

  • Bump Debian version from Buster to Bullseye for Linux engine build.
  • Bump Debian version from Buster to Trixie for things not producing linux binaries, like MinGW and NaCl vms.
  • Bump CMake in Debian.
  • Bump CMake in Darling.
  • Rebuild as much as Linux libraries as possible.
  • It now use three images for building engines: one for building Linux binaries, one for MinGW binaries, and one for macOS binaries, allowing finer configuration.
  • Those images are now kept the same and aren't rebuilt according to the amount and nature of engine targets to be built.
  • A rework preventing more image invalidations was done.

We want to use most recent libraries as possible, and those being the same on all platforms as much as we can.

It assumes DaemonEngine/Daemon#1433 is merged (so it should be merged first):

It obsoletes #36:

@illwieckz
Copy link
Member Author

About the Debian bump:

For rebuilding as much as Linux libraries as we can, this is because it is stupid to rely on old-old-stable or old-stable libraries while we actually review newer libraries.

And there is no reason Linux builds get those very old libraries and don't benefit from newer optimizations and things like that while macOS and Windows get all the shiny toys.

@illwieckz
Copy link
Member Author

illwieckz commented Jul 19, 2025

The reason why this still uses the system's nettle is because of that:

/Unvanquished/daemon/external_deps/linux-arm64-default_11/lib/libnettle.a(fat-arm64.o):
 in function `fat_init':
/Unvanquished/daemon/external_deps/build-linux-arm64-default_11/nettle/nettle-3.10.2/fat-arm64.c:289:
 (.text.startup+0x27c): relocation truncated to fit: R_AARCH64_LD64_GOTPAGE_LO15 against symbol
 `_nettle_sha256_compress_n_c' defined in .text section
 in /Unvanquished/daemon/external_deps/linux-arm64-default_11/lib/libnettle.a(sha256-compress-n.o)
/usr/lib/gcc-cross/aarch64-linux-gnu/10/../../../../aarch64-linux-gnu/bin/ld:
 /Unvanquished/daemon/external_deps/build-linux-arm64-default_11/nettle/nettle-3.10.2/fat-arm64.c:289:
 warning: too many GOT entries for -fpic, please recompile with -fPIC
collect2: error: ld returned 1 exit status

I'm aware of this for months now, maybe a year, but I never found what was causing this.

Actually this is not affecting amd64/i686 builds. This may be a bug in nettle.

So for now the Linux release build still relies on nettle as provided by the system.

@illwieckz illwieckz changed the title docker: bump Debian version from buster to bullseye, and rebuild most Linux libraries docker: bump Debian version from buster to bookworm, and rebuild most Linux libraries Aug 13, 2025
@illwieckz
Copy link
Member Author

illwieckz commented Aug 13, 2025

I'm now switching to Bookworm as Debian old-stable since Trixie is out.

Edit: I went back to Bullseye for Linux builds.

@illwieckz illwieckz force-pushed the illwieckz/bullseye branch 2 times, most recently from 35f4d8a to 7b1c7db Compare August 14, 2025 15:58
Silence this warning:

> chown -R 1000.1000 /Unvanquished/build/release
> chown: warning: '.' should be ':': '1000.1000'
@illwieckz illwieckz changed the title docker: bump Debian version from buster to bookworm, and rebuild most Linux libraries docker: bump Debian version from buster to bullseye, and rebuild most Linux libraries Aug 31, 2025
@illwieckz illwieckz changed the title docker: bump Debian version from buster to bullseye, and rebuild most Linux libraries docker: bump Debian version from buster to bullseye, and rebuild Linux libraries Sep 2, 2025
@illwieckz illwieckz changed the title docker: bump Debian version from buster to bullseye, and rebuild Linux libraries Bump Debian version from Buster to Bullseye, and rebuild Linux libraries Sep 2, 2025
@illwieckz illwieckz force-pushed the illwieckz/bullseye branch 4 times, most recently from 0f0f8ca to 175a19e Compare September 4, 2025 11:14
We want to use most recent libraries as possible,
and those being the same on all platforms as much
as we can.
@illwieckz illwieckz force-pushed the illwieckz/bullseye branch 2 times, most recently from 1d7b796 to 395bab9 Compare September 6, 2025 13:31
@illwieckz
Copy link
Member Author

So DaemonEngine/Daemon#1433 has been merged:

So we now need this branch to build the current Dæmon's master branch.

Copy link
Contributor

@slipher slipher left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I have reviewed build-release and build-external-dependencies.

LGTM modulo comment

@illwieckz
Copy link
Member Author

I have reviewed build-release and build-external-dependencies.

Actually I forgot to remove the line building the deps for the VM (to fetch the nacl sdk) as we now rely on the dowloaded deps archive. This fix is just clean-up because that build-external-dependencies script is already not called anymore for vm builds, so that was just leftover I cleaned-up.

LGTM modulo comment

Thanks.

@illwieckz illwieckz merged commit d3f3c7c into master Sep 9, 2025
@illwieckz illwieckz deleted the illwieckz/bullseye branch September 9, 2025 15:38
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants