Bug#887664: Bug#887688: debhelper: empty build of src:ck

Simon McVittie smcv at debian.org
Fri Jan 19 09:44:41 UTC 2018


On Fri, 19 Jan 2018 at 06:29:18 +0200, Adrian Bunk wrote:
>  debian/rules build
> make: Nothing to be done for 'build'.

I think this is probably the same thing as openal-soft bug
<https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=887664>. Both packages
have:

* a build/ directory in the upstream source
* ".PHONY: build" in d/rules
* no explicit build target in d/rules, only the usual "%:" implicit rule

My theory is that this regressed as a result of
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=880840
having been fixed.

In https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=880840#20,
James Cowgill wrote:
> Make ignores implicit rules (like %: dh $@) for phony targets.

So the maintainers of these packages thought they had solved the problem
by adding ".PHONY: build", but when they moved from an explicit build
target to dh minimized style, they broke that assumption; but then their
packages built successfully anyway, because they were using a version of
debhelper that had #880840, so the contents of the build sequence were
redundantly invoked. We can see this happening in reproducible-builds'
builds of ck and openal-soft on buster, with:

> dh clean
>    dh_clean
>  debian/rules build
> make: Nothing to be done for 'build'.
>  fakeroot debian/rules binary
> dh binary
>    debian/rules build
> make[1]: Entering directory '/build/ck-0.6.0'
> make[1]: Nothing to be done for 'build'.
> make[1]: Leaving directory '/build/ck-0.6.0'
>    dh_update_autotools_config
>    dh_autoreconf
>    debian/rules override_dh_auto_configure
> make[1]: Entering directory '/build/ck-0.6.0'
> ./configure						\
> ...

and

> dpkg-buildpackage: info: host architecture amd64
>  fakeroot debian/rules clean
> dh clean --builddirectory=/build/openal-soft-1.18.2/build-tree
>    debian/rules override_dh_auto_clean
> make[1]: Entering directory '/build/openal-soft-1.18.2'
> rm -rf /build/openal-soft-1.18.2/build-tree
> make[1]: Leaving directory '/build/openal-soft-1.18.2'
>    dh_clean -O--builddirectory=/build/openal-soft-1.18.2/build-tree
>  debian/rules build
> make: Nothing to be done for 'build'.
>  fakeroot debian/rules binary
> dh binary --builddirectory=/build/openal-soft-1.18.2/build-tree
>    debian/rules build
> make[1]: Entering directory '/build/openal-soft-1.18.2'
> make[1]: Nothing to be done for 'build'.
> make[1]: Leaving directory '/build/openal-soft-1.18.2'
>    dh_update_autotools_config -O--builddirectory=/build/openal-soft-1.18.2/build-tree
>    dh_autoreconf -O--builddirectory=/build/openal-soft-1.18.2/build-tree
>    debian/rules override_dh_auto_configure

(It looks as though the entire build for openal-soft was done under
fakeroot as a result of this, which isn't great for robustness.)

Debhelper maintainers: do you consider this to be something that should
be addressed in debhelper, or in the affected packages like ck and
openal-soft?

    smcv



More information about the Pkg-games-devel mailing list