Package: debhelper Version: 12.10 dh_install* takes a --sourcedir parameter which can be leveraged to pick data from a specific destroot, which is very handy when building a package multiple times with different features and creating conflicting binary packages.
Short example (pseudo-Makefile-code):
dh_auto_install --destdir=debian/destroot/variant1/
dh_auto_install --destdir=debian/destroot/variant2/
dh_install -ppkgvar1 --sourcedir=debian/destroot/variant1/
dh_install -ppkgvar2 --sourcedir=debian/destroot/variant2/
This example will fail to work correctly at the moment. It will pick files from
debian/destroot/variant{1,2} alright, but stage them into debian/pkgvar{1,2}/
WITH the specified destroot, creating paths such as
/debian/destroot/variant1/usr/bin/binary.
The compute_dest sub is supposed to remove the source dir part (either default
or user-specified), but won't handle paths ending in a slash correctly, or for
that matter remove anything at all.
Hence, passing --sourcedir=debian/destroot/variant{1,2} will work as expected.
The sourcedir input should probably be sanitized/canonicalized (not talking
about full pathname-and-symlink-canonicalization, which is a whole different
beast) so that the prefix is actually removed from the destination directory,
whether it ends in a slash, a hundred slashes or no slash at all.
This is applicable to at least dh_install, other helplets might also need such
fixes, though I haven't gone through the full dh_install* range to determine
which are broken and which aren't. dh_installexamples, for instance, is fine as
far as I can tell.
Mihai
signature.asc
Description: OpenPGP digital signature

