diff options
-rw-r--r-- | debian/changelog | 6 | ||||
-rw-r--r-- | debian/patches/meson-drop-arch-filtering-in-syscall-list.patch | 52 | ||||
-rw-r--r-- | debian/patches/series | 2 | ||||
-rw-r--r-- | debian/patches/test-unset-TZ-before-timezone-sensitive-unit-tests-are-ru.patch | 61 |
4 files changed, 121 insertions, 0 deletions
diff --git a/debian/changelog b/debian/changelog index 68c531a..0f6ba1e 100644 --- a/debian/changelog +++ b/debian/changelog @@ -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+deb11u4progress6u1) fuchur; urgency=medium * Initial reupload to fuchur. diff --git a/debian/patches/meson-drop-arch-filtering-in-syscall-list.patch b/debian/patches/meson-drop-arch-filtering-in-syscall-list.patch new file mode 100644 index 0000000..11cd505 --- /dev/null +++ b/debian/patches/meson-drop-arch-filtering-in-syscall-list.patch @@ -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 --git a/debian/patches/series b/debian/patches/series index 54eedc1..7c9368f 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -39,6 +39,8 @@ machined-varlink-fix-double-free.patch 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 --git a/debian/patches/test-unset-TZ-before-timezone-sensitive-unit-tests-are-ru.patch b/debian/patches/test-unset-TZ-before-timezone-sensitive-unit-tests-are-ru.patch new file mode 100644 index 0000000..2daa999 --- /dev/null +++ b/debian/patches/test-unset-TZ-before-timezone-sensitive-unit-tests-are-ru.patch @@ -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", |