Bug#906330:
Control: retitle -1 bmake: sanitise MAKEFLAGS in the debhelper plugin Hi, On Thu, 1 Apr 2021, at 12:09, Yangfl wrote: > > On Thu, 1 Apr 2021, at 11:51, Yangfl wrote: > > > `sbuild --no-arch-all --no-run-lintian -j1 -d unstable csh` will fail > > > (which use bmake) and `sbuild --no-arch-all --no-run-lintian -d > > > unstable csh` does not, since in the former case bmake will get > > > `MAKEFLAGS='w -j1'`. > 1. sbuild --no-arch-all --no-run-lintian -j1 -d unstable csh > 2. sbuild --no-arch-all --no-run-lintian -d unstable csh I see. This is, in fact, a different bug: bmake required MAKEFLAGS to start with a dash while GNU make accepts it anyway. -- Cheers, Andrej
Bug#906330:
Andrej Shadura 于2021年4月1日周四 下午5:55写道: > > Control: tag -1 moreinfo > > Hi, > > On Thu, 1 Apr 2021, at 11:51, Yangfl wrote: > > `sbuild --no-arch-all --no-run-lintian -j1 -d unstable csh` will fail > > (which use bmake) and `sbuild --no-arch-all --no-run-lintian -d > > unstable csh` does not, since in the former case bmake will get > > `MAKEFLAGS='w -j1'`. > > Please provide more info (logs etc). > > Thanks! > > -- > Cheers, > Andrej 1. sbuild --no-arch-all --no-run-lintian -j1 -d unstable csh 2. sbuild --no-arch-all --no-run-lintian -d unstable csh csh2.build Description: Binary data csh1.build Description: Binary data
Bug#906330:
Control: tag -1 moreinfo Hi, On Thu, 1 Apr 2021, at 11:51, Yangfl wrote: > `sbuild --no-arch-all --no-run-lintian -j1 -d unstable csh` will fail > (which use bmake) and `sbuild --no-arch-all --no-run-lintian -d > unstable csh` does not, since in the former case bmake will get > `MAKEFLAGS='w -j1'`. Please provide more info (logs etc). Thanks! -- Cheers, Andrej
Bug#906330: bmake: debhelper plugin's exists_make_target() misbehaves when -j is in $MAKEFLAGS
On Fri, 17 Aug 2018 10:05:31 + Damyan Ivanov wrote: > 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 /<> > 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 200)! > $ > > 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 :) Thanks for your report. bmake is in fact at salsa: https://salsa.debian.org/salsa/bmake -- Cheers, Andrej
Bug#906330: bmake: debhelper plugin's exists_make_target() misbehaves when -j is in $MAKEFLAGS
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 /<> 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 200)! $ 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.