Source: systemd Version: 239-7 Severity: normal Tags: upstream patch User: debian-ri...@lists.debian.org Usertags: riscv64
Hi, This package fails to build in riscv64 due to timeout of the tests (it varies, but it's often around 5 test cases of the current ~300). systemd is one of the two remaining packages left from the base set that we have to patch and ship from "unreleased" instead of "unstable", and possibly the only remaining one that makes impossible to use "debootstrap" at the moment, so it would be very nice if this could be sorted out soonish. Admittedly, this is a problem specially in this architecture due to having buildds using qemu-system at the moment. However, it's not the only one with buildds running in qemu (although the others use qemu-user, AFAIK), or with slow hardware or potentially with systems under load for other reasons, so it could become a problem for other arches in the future also due to changes upstream (if the tests start to take more time). In my opinion, the fact that the buildds are slow by itself shouldn't be a reason to fail tests, unless the times are truly disproportionate or disruptive (e.g. taking hours, or more time than the build itself). This is clearly not the case, waiting 300s instead of 30s is still a very small % of the total time to build, probably less than 1%. To try to address it, I first tried to increase the timeout only for the riscv64 architecture, with this recipe in debian/rules (the lines added and commented out): ==================================================== +++ systemd-239/debian/rules 2018-08-16 17:02:43.000000000 +0200 @@ -5,6 +5,12 @@ export LC_ALL = C.UTF-8 +#include /usr/share/dpkg/architecture.mk +# +#ifeq ($(DEB_HOST_ARCH),riscv64) +# TEST_TIMEOUT_MULTIPLIER = "-t 10" +#endif + include /usr/share/dpkg/default.mk ifeq ($(DEB_VENDOR),Ubuntu) @@ -282,6 +288,8 @@ ifeq (, $(filter nocheck, $(DEB_BUILD_OPTIONS))) echo "01234567890123456789012345678901" > build-deb/machine-id # some tests hang under fakeroot, so disable fakeroot +# env -u LD_PRELOAD SYSTEMD_MACHINE_ID_PATH=$(CURDIR)/build-deb/machine-id ninja $(TEST_TIMEOUT_MULTIPLIER) -C build-deb test || ( \ +# env -u LD_PRELOAD SYSTEMD_MACHINE_ID_PATH=$(CURDIR)/build-deb/machine-id ninja -C build-deb test || ( \ cat build-deb/meson-logs/testlog.txt; \ exit 1) ==================================================== However, I believe that this would have worked if invoking "meson test" directly, but not when invoking "ninja", because it doesn't pass the -t argument down to "meson test", and there doesn't seem to be any other way to achieve this. There's an open issue about this upstream, but it doesn't seem like it's to be implemented any time soon: https://github.com/mesonbuild/meson/issues/2037 (An environment variable would be a possible solution, I left a comment there). Anyway, so what I did was to use the patch attached to modify upstream in a couple of places to increase or add explicitly timeout for some tests (instead of the default of 30s), and this makes it build fine in the same systems used as buildds now. So please consider to apply this patch or any equivalent solution that you prefer, to make unnecessary to build this package every time that there's a new version, and to be able to use "debootstrap". Thanks and cheers. -- Manuel A. Fernandez Montecelo <m...@debian.org>
diff -Nru systemd-239/debian/changelog systemd-239/debian/changelog --- systemd-239/debian/changelog 2018-07-22 13:40:15.000000000 +0200 +++ systemd-239/debian/changelog 2018-08-16 17:02:43.000000000 +0200 @@ -1,3 +1,10 @@ +systemd (239-7+0.riscv64.1) unreleased; urgency=medium + + * Non-maintainer upload. + * riscv64: increase timeout for tests + + -- Manuel A. Fernandez Montecelo <m...@debian.org> Thu, 16 Aug 2018 17:02:43 +0200 + systemd (239-7) unstable; urgency=medium * autopkgtest: Add iputils-ping dependency to root-unittests. diff -Nru systemd-239/debian/patches/riscv64-support.patch systemd-239/debian/patches/riscv64-support.patch --- systemd-239/debian/patches/riscv64-support.patch 1970-01-01 01:00:00.000000000 +0100 +++ systemd-239/debian/patches/riscv64-support.patch 2018-08-16 17:02:43.000000000 +0200 @@ -0,0 +1,41 @@ +--- a/meson.build ++++ b/meson.build +@@ -2382,7 +2382,8 @@ + + test('test-systemd-tmpfiles', + test_systemd_tmpfiles_py, +- args : exe.full_path()) ++ args : exe.full_path(), ++ timeout : 300) + # https://github.com/mesonbuild/meson/issues/2681 + endif + +@@ -2559,7 +2560,7 @@ + type = tuple.length() >= 5 ? tuple[4] : '' + defs = tuple.length() >= 6 ? tuple[5] : [] + incs = tuple.length() >= 7 ? tuple[6] : includes +- timeout = 30 ++ timeout = 300 + + name = sources[0].split('/')[-1].split('.')[0] + if type.startswith('timeout=') +@@ -2625,7 +2626,7 @@ + link_with : [libudev], + install : install_tests, + install_dir : testsdir) +-test('test-libudev-sym', exe) ++test('test-libudev-sym', exe, timeout : 300) + + exe = executable( + 'test-libudev-static-sym', +--- a/hwdb/meson.build ++++ b/hwdb/meson.build +@@ -38,7 +38,7 @@ + parse_hwdb_py = find_program('parse_hwdb.py') + test('parse-hwdb', + parse_hwdb_py, +- timeout : 90) ++ timeout : 300) + + ############################################################ + diff -Nru systemd-239/debian/patches/series systemd-239/debian/patches/series --- systemd-239/debian/patches/series 2018-07-22 13:40:15.000000000 +0200 +++ systemd-239/debian/patches/series 2018-08-16 17:02:43.000000000 +0200 @@ -28,3 +28,4 @@ debian/Revert-systemctl-when-removing-enablement-or-mask-symlink.patch debian/Revert-udev-rules-Permission-changes-for-dev-kvm.patch debian/Drop-seccomp-system-call-filter-for-udev.patch +riscv64-support.patch