]> git.donarmstrong.com Git - debhelper.git/commit
dh: Add sequence dependencies and satisfy dependencies prior to running sequence
authorRoger Leigh <rleigh@debian.org>
Tue, 23 Nov 2010 18:00:06 +0000 (18:00 +0000)
committerJoey Hess <joey@kitenet.net>
Sun, 5 Dec 2010 21:35:30 +0000 (17:35 -0400)
commitc685546d18606fafee2ad9d3a1cb3d90dd7e9d5e
treedddc1a5b3d5dc457f68c38c042a37a9bde2b0314
parent4c135498e0efc54d4dd332ec3d22c55107acaee0
dh: Add sequence dependencies and satisfy dependencies prior to running sequence

Add %sequence_deps and invoke recursively prior to examining logs and
running commands in sequence.  The supplied dependencies are equivalent
to the following make rules:

build: build-arch build-indep
install: install-arch install-indep
install-arch: build-arch
install-indep: build-indep
binary: binary-arch binary-indep
binary-arch: install-arch
binary-indep: install-indep

In the existing dh command sequences, the binary sequences all included
the corresponding install sequence commands, and in turn the install
sequences all included the corresponding build commands.  While this
works, it has a major deficiency.  If the "binary" sequence is run, it
will not run the "build" target in debian/rules.  This leads to a
situation where building with dpkg-buildpackge, which would typically
invoke "debian/rules build" followed by "debian/rules binary-arch"
and/or "debian/rules debian-indep" may do something different than
just invoking "debian/rules binary" or "dh binary" because the build
target in debian/rules is effectively bypassed.  This applies equally
to the -arch and -indep sequence variants.

This change eliminates the duplicated sequence commands, and instead
invokes the appropriate target(s) in debian/rules, as specified in the
%sequence_deps hash.  In the common case, the dh sequence by the same
name will be called, so the behaviour is identical.  However, this
provides a means to utilise all of the policy-specified targets, plus
the install targets and extend them with additional dependencies and
commands, while still allowing full use of dh and giving identical
behaviour whether dh or debian/rules targets are used.

Signed-off-by: Roger Leigh <rleigh@debian.org>
dh