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

Reply via email to