Package: release.debian.org Severity: normal Tags: bullseye User: release.debian.org at packages.debian.org Usertags: pu X-Debbugs-CC: pkg-systemd-maintainers@lists.alioth.debian.org Dear release team, I have uploaded one new bugfix for systemd in bullseye. It is a backport of two upstream patches to fix build reproducibility issues - one in the runtime of 3 unit tests, and one in a build script called by meson. No runtime functionality is affected. This is the last reproducibility issue in the systemd package and it just irks me wrong to see it on reproducible-builds.org :-) (bookworm is fixed by the package currently in p-u) https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/systemd.html The source debdiff is attached. -- Kind regards, Luca Boccassi
diff -Nru systemd-247.3/debian/changelog systemd-247.3/debian/changelog --- systemd-247.3/debian/changelog 2023-06-18 15:55:54.000000000 +0100 +++ systemd-247.3/debian/changelog 2024-05-27 14:02:03.000000000 +0100 @@ -1,3 +1,9 @@ +systemd (247.3-7+deb11u5) bullseye; urgency=medium + + * Backport patches to fix build reproducibility + + -- Luca Boccassi <bluca@debian.org> Mon, 27 May 2024 14:02:03 +0100 + systemd (247.3-7+deb11u4) bullseye; urgency=medium * backport patches to fix a calendar spec calculation hang on DST change diff -Nru systemd-247.3/debian/patches/meson-drop-arch-filtering-in-syscall-list.patch systemd-247.3/debian/patches/meson-drop-arch-filtering-in-syscall-list.patch --- systemd-247.3/debian/patches/meson-drop-arch-filtering-in-syscall-list.patch 1970-01-01 01:00:00.000000000 +0100 +++ systemd-247.3/debian/patches/meson-drop-arch-filtering-in-syscall-list.patch 2024-05-27 13:59:49.000000000 +0100 @@ -0,0 +1,52 @@ +From: =?utf-8?q?Zbigniew_J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl> +Date: Thu, 25 Jan 2024 13:26:21 +0100 +Subject: meson: drop arch filtering in syscall list + +I added the filtering in 752fedbea7c02c82287c7ff2a4139f528b3f7ba8 as a way +to reduce the number of items in the tables. I thought it's "obvious", but +it might not be so. + +One immediate problem is that the filter is broken, because on arm64, +os.uname().machine returns "aarch64", so we incorrectly filter out the arm +syscalls (there is just one: arm_fadvise64_64). Of course we could fix the +filter, but I think it's better to nuke it altogether. The filter on applies to +1 arm syscall and 5 s390 syscalls, and we have 500+ other syscalls, so this +"optimization" doesn't really matter. OTOH, if we get the filter wrong, +the result is bad. And also, the existence of the filter at all creates +problems for cross-builds. + +I wanted to get rid of 'generate-syscall-list.py', but we need to generate a +backslash in the output. https://github.com/mesonbuild/meson/issues/1564 makes +this very very hard, since any attempt to put a backslash an inline argument +results in the backslash being replaces by a forward slash, which doesn't quite +have the same meaning. So let's use a standalone script until +https://github.com/mesonbuild/meson/issues/1564 is resolved. + +(cherry picked from commit 58fcc6b013bbc8c6290348f701ddb862928cc1a0) +(cherry picked from commit ded73e68fcbfbf82beba15a8f0280e5c010c8bde) +(cherry picked from commit d31ac846b22dc7d1245b4df01a1868866b529447) +(cherry picked from commit f9242887943fa2e7345f915fbfacd235d67dbed7) +(cherry picked from commit b23b2680ff2520e760c6b0f7b285a2334a4ac1c7) +--- + src/shared/generate-syscall-list.py | 9 --------- + 1 file changed, 9 deletions(-) + +diff --git a/src/shared/generate-syscall-list.py b/src/shared/generate-syscall-list.py +index 030c3fe..0b90d2d 100755 +--- a/src/shared/generate-syscall-list.py ++++ b/src/shared/generate-syscall-list.py +@@ -1,14 +1,5 @@ + #!/usr/bin/env python3 + import sys +-import os +- +-s390 = 's390' in os.uname().machine +-arm = 'arm' in os.uname().machine + + for line in open(sys.argv[1]): +- if line.startswith('s390_') and not s390: +- continue +- if line.startswith('arm_') and not arm: +- continue +- + print('"{}\\0"'.format(line.strip())) diff -Nru systemd-247.3/debian/patches/series systemd-247.3/debian/patches/series --- systemd-247.3/debian/patches/series 2023-06-18 15:55:16.000000000 +0100 +++ systemd-247.3/debian/patches/series 2024-05-27 14:00:22.000000000 +0100 @@ -39,6 +39,8 @@ Always-free-deserialized_subscribed-on-reload.patch shared-calendarspec-abort-calculation-after-1000-iteratio.patch shared-calendarspec-when-mktime-moves-us-backwards-jump-f.patch +test-unset-TZ-before-timezone-sensitive-unit-tests-are-ru.patch +meson-drop-arch-filtering-in-syscall-list.patch debian/Use-Debian-specific-config-files.patch debian/Bring-tmpfiles.d-tmp.conf-in-line-with-Debian-defaul.patch debian/Make-run-lock-tmpfs-an-API-fs.patch diff -Nru systemd-247.3/debian/patches/test-unset-TZ-before-timezone-sensitive-unit-tests-are-ru.patch systemd-247.3/debian/patches/test-unset-TZ-before-timezone-sensitive-unit-tests-are-ru.patch --- systemd-247.3/debian/patches/test-unset-TZ-before-timezone-sensitive-unit-tests-are-ru.patch 1970-01-01 01:00:00.000000000 +0100 +++ systemd-247.3/debian/patches/test-unset-TZ-before-timezone-sensitive-unit-tests-are-ru.patch 2024-05-27 13:59:49.000000000 +0100 @@ -0,0 +1,61 @@ +From: Luca Boccassi <bluca@debian.org> +Date: Fri, 26 Jan 2024 00:22:38 +0000 +Subject: test: unset TZ before timezone-sensitive unit tests are run + +Some tests have hard-coded results that need to match, and change if +the caller has a timezone set via the TZ= environment variable, as it +is the case during reproducible build tests. Unset it. + +(cherry picked from commit 1e902c3463024bb328bf0d01a5d58a69e1ccf739) +(cherry picked from commit 85c88db9c64242f65c814f1ede467ef66066e663) +(cherry picked from commit d7fa5b8acbb5013992ae93c120845f0dc3fcfa93) +(cherry picked from commit 4d6d1a9f0557771e09a210ea9e83a7ed20df78de) +(cherry picked from commit d91a1c0f2c661731bc8a2149807ed9fd613b7c80) +--- + src/test/test-calendarspec.c | 3 +++ + src/test/test-date.c | 3 +++ + src/test/test-time-util.c | 3 +++ + 3 files changed, 9 insertions(+) + +diff --git a/src/test/test-calendarspec.c b/src/test/test-calendarspec.c +index 1b04186..a3bb2d8 100644 +--- a/src/test/test-calendarspec.c ++++ b/src/test/test-calendarspec.c +@@ -121,6 +121,9 @@ static void test_hourly_bug_4031(void) { + int main(int argc, char* argv[]) { + CalendarSpec *c; + ++ /* Tests have hard-coded results that do not expect a specific timezone to be set by the caller */ ++ assert_se(unsetenv("TZ") >= 0); ++ + test_one("Sat,Thu,Mon-Wed,Sat-Sun", "Mon..Thu,Sat,Sun *-*-* 00:00:00"); + test_one("Sat,Thu,Mon..Wed,Sat..Sun", "Mon..Thu,Sat,Sun *-*-* 00:00:00"); + test_one("Mon,Sun 12-*-* 2,1:23", "Mon,Sun 2012-*-* 01,02:23:00"); +diff --git a/src/test/test-date.c b/src/test/test-date.c +index 47b7096..cfd2338 100644 +--- a/src/test/test-date.c ++++ b/src/test/test-date.c +@@ -65,6 +65,9 @@ static void test_one_noutc(const char *p) { + } + + int main(int argc, char *argv[]) { ++ /* Tests have hard-coded results that do not expect a specific timezone to be set by the caller */ ++ assert_se(unsetenv("TZ") >= 0); ++ + test_setup_logging(LOG_DEBUG); + + test_one("17:41"); +diff --git a/src/test/test-time-util.c b/src/test/test-time-util.c +index 877b24c..3c673e7 100644 +--- a/src/test/test-time-util.c ++++ b/src/test/test-time-util.c +@@ -525,6 +525,9 @@ static void test_map_clock_usec(void) { + int main(int argc, char *argv[]) { + test_setup_logging(LOG_INFO); + ++ /* Tests have hard-coded results that do not expect a specific timezone to be set by the caller */ ++ assert_se(unsetenv("TZ") >= 0); ++ + log_info("realtime=" USEC_FMT "\n" + "monotonic=" USEC_FMT "\n" + "boottime=" USEC_FMT "\n",
Attachment:
signature.asc
Description: This is a digitally signed message part