Skip to content

[2.0.0-dev] upgrade reproducible build image to Debian11; effectively making Ubuntu20 minimum runtime environment#1387

Merged
spoonincode merged 2 commits intorelease/2.0from
20_repro_debian11
Apr 16, 2025
Merged

[2.0.0-dev] upgrade reproducible build image to Debian11; effectively making Ubuntu20 minimum runtime environment#1387
spoonincode merged 2 commits intorelease/2.0from
20_repro_debian11

Conversation

@spoonincode
Copy link
Copy Markdown
Contributor

The reproducible build image is currently based on Debian10 meaning any builds there should work on any distro with glibc 2.28+ -- that includes Ubuntu18 that we don't officially support in the 1.x range.

Bump the build image to Debian11 increasing requirement to glibc 2.31+ which drops the ability to run on Ubuntu18 but still will run on Ubuntu20. It will also drop EL8.

I think we are a little late on this, as other similar projects made the move a while ago, e.g. https://github.com/bitcoin/bitcoin/pull/29987

We have a little kludge here

# Tweaks a couple aspects of the built .deb's control file:
# 1. Removes Installed-Size field; this isn't reproducible for some reason, possibly different filesystems
# reporting different sizes for directories?
# 2. Removes all but the first libc Depends rule as the rest are unnecessarily restrictive. The original was being
# generated as,
# libc6 (>= 2.27), libc6 (>> 2.28), libc6 (<< 2.29), libcurl4 (>= 7.16.2), libgcc1 (>= 1:3.3), libgmp10, zlib1g (>= 1:1.2.0)
# and the included sed rule within this script will reduce it to
# libc6 (>= 2.27), libcurl4 (>= 7.16.2), libgcc1 (>= 1:3.3), libgmp10, zlib1g (>= 1:1.2.0)
# This may need to be tweaked in the future further; clearly not ideal.

fwiw I did check the resulting .deb file looks correct still after this upgrade:

Depends: libc6 (>= 2.30), libcurl4 (>= 7.16.2), libgcc-s1 (>= 3.3), libgmp10, zlib1g (>= 1:1.2.0)

@spoonincode spoonincode changed the title upgrade reproducible build image to Debian11; effectively making Ubuntu20 minimum runtime environment [2.0.0-dev] upgrade reproducible build image to Debian11; effectively making Ubuntu20 minimum runtime environment Apr 16, 2025
@spoonincode spoonincode merged commit ee6508f into release/2.0 Apr 16, 2025
36 checks passed
@spoonincode spoonincode deleted the 20_repro_debian11 branch April 16, 2025 22:25
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.

3 participants