Package: bmake
Version: 20160220-2+b1
Severity: normal
Tags: patch

Hi,

While rebuilding some packages that were using bmake, I stumbled on a couple 
failures, which were only triggered when `-j X` was passed to sbuild. Even `-j 
1` caused failure.

The failure looks like:

     dh_auto_test -O--buildsystem=bmake
          bmake test VERBOSE=1
  bmake[1]: bmake[1]: don't know how to make test. Stop

  bmake[1]: stopped in /<<PKGBUILDDIR>>
  dh_auto_test: bmake test VERBOSE=1 returned exit code 2

This seems to be caused by an oddity in bmake, which changes its output when 
`-j` is used:

An example is the udfclient package:

Compare:

 $ bmake -s -n test 2>/dev/null

 bmake: stopped in /home/dam/w/tmp/udfclient-0.8.8
 $

with

 $ bmake -s -n -j 1 test 2>/dev/null
 `test' was not built (made 3, flags 2049, type 2000000)!
 $

The check in bmake.pm¹ uses the first line of STDOUT as an indicator whether 
the given target exists and is fooled by the diagnostic output when -j is used.

 ¹ https://sources.debian.org/src/bmake/20160220-2/debian/bmake.pm/#L32

Adding a call to clean_jobserver_flags() doesn't help, because that routine 
only acts when a job server is used² (--jobserver-... present in $MAKEFLAGS)

 ² 
https://sources.debian.org/src/debhelper/11.3.5/lib/Debian/Debhelper/Dh_Lib.pm/#L2166

My tests show that temporarily removing MAKEFLAGS from the environment in 
bmake.pm/exists_make_target() works around the problem.

A proper fix may be to direct the diagnostic output of bmake to STDERR, or to 
add an empty line before it to make it similar to the non-`-j` case, but I 
guess that's an upstream decision to make.


BTW, that bug report could have been accompanied by a merge request if the 
packaging of bmake was available on salsa.debian.org :)


-- dam

-- System Information:
Debian Release: buster/sid
  APT prefers unstable-debug
  APT policy: (500, 'unstable-debug'), (500, 'unstable'), (500, 'stable'), 
(500, 'oldstable'), (1, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 4.17.0-1-amd64 (SMP w/4 CPU cores)
Locale: LANG=bg_BG.UTF-8, LC_CTYPE=bg_BG.UTF-8 (charmap=UTF-8), 
LANGUAGE=bg_BG.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)

Versions of packages bmake depends on:
ii  libc6  2.27-5

bmake recommends no packages.

bmake suggests no packages.

Reply via email to