Package: runit Version: 2.1.2-60 Severity: normal Dear Maintainer,
While investigating unstable results from the blhc test in runit's CI pipeline on Salsa, I found a number of defects in the runit build system in the version on the current next branch in the packaging repo. These are mostly minor with varying impact but which I don't think warrant individual bugs: 1) Interleaved build output with parallel make results in unpredictable false positives from blhc, e.g.: LDFLAGS missing (-Wl,-z,relro -Wl,-z,now): + exec cc -g -O2 -Werror=implicit-function-declaration -D__DEB_CANARY_CFLAGS_06ee4c5c93a9957c9b1bb3bd89e800c8__ -ffile-prefix-map=/builds/abower/runit/debian/output/source_dir=. -fstack-protector-strong -fstack-clash-protection -Wformat -Werror=format-security -fcf-protection -D__DEB_CANARY_CPPFLAGS_231141b34c82aa95e48810a9d1b33a79__ -Wdate-time -D_FORTIFY_SOURCE=2 -g -O2 -Werror=implicit-function-declaration -D__DEB_CANARY_CFLAGS_ebd9629fc3ae5e9f6611e2ee05a31cef__ -ffile-prefix-map=/builds/abower/runit/debian/output/source_dir=. -fstack-protector-strong -fstack-clash-protection -Wformat./compile stralloc_pend.c Note in this example how it ends "-Wformat./compile stralloc_pend.c". This is because the "./compile stralloc_pend.c" from another recipe has been merged into the middle of another build command. This is why the output from the tool never made sense and was impossible to investigate. This can be worked around by not using parallel make but I think we can do better than that! 2) Build flags are replicated. This harms readability and could conceal other errors. I'm also not sure if all the flags for all the tools always got passed in correctly because of the rather eccentric way the runit build system is constructed. 3) The debian build flag canaries were multiplied and inconsistent. In the above example you can see two versions of the same ('CFLAGS') canary in the same invocation; there were also different ones for the contributed source files like shutdown.c. The build flags file got a copy from a different dh build phase and the contrib'd builds from a recursive make invocation that computer yet new ones. 4) Some of the feature test programs (tst*.c) had build errors with recent compilers that were hidden and therefore resulted in the wrong build choices being made silently. Some of these cases were handled in #1075484. I've set severity to 'normal' not 'minor' because there could be hidden issues as a result of these, especially due to (4). Thanks! -- System Information: Debian Release: trixie/sid APT prefers unstable APT policy: (500, 'unstable') Architecture: amd64 (x86_64) Foreign Architectures: i386 Kernel: Linux 6.12.6-amd64 (SMP w/24 CPU threads; PREEMPT) Locale: LANG=en_GB.UTF-8, LC_CTYPE=en_GB.UTF-8 (charmap=UTF-8), LANGUAGE=en_GB:en Shell: /bin/sh linked to /usr/bin/dash Init: sysvinit (via /sbin/init) Versions of packages runit depends on: ii libc6 2.40-5 ii runit-helper 2.16.4 ii sysuser-helper 1.5.0 Versions of packages runit recommends: ii runit-run 2.1.2-60 Versions of packages runit suggests: pn runit-services <none> pn socklog <none> pn ucspi-unix <none> pn zsh <none> -- Configuration Files: -- no debconf information