[debhelper-devel] Bug#748921: debhelper: dh_installinit fails in certain multi-binary packages

Michael Prokop mika at debian.org
Thu May 22 09:46:28 UTC 2014


Package: debhelper
Version: 9.20140228
Severity: normal


I have a source package named "foo" with 2 binary packages "foo-ce"
and "foo-pro" and one init script available as "debian/foo.init".

When invoking dh_installinit it works only for the *first* listed
binary package but fails for the second package (as in: doesn't
install the according init and maintainer scripts).

So:

  dh_installinit -pfoo-ce --name=foo -- defaults 80

works fine because foo-ce is the first listed binary package in
debian/control, while:

  dh_installinit -pfoo-pro --name=foo -- defaults 80

is lacking the init script in the resulting package (which actually
isn't easy to spot because of #462389 :-/). ->

| % dpkg -c ../foo-ce_0.0.1_all.deb | grep init
| drwxr-xr-x root/root         0 2014-05-22 11:26 ./etc/init.d/
| -rwxr-xr-x root/root        19 2014-05-22 11:04 ./etc/init.d/foo
| % dpkg -c ../foo-pro_0.0.1_all.deb| grep init
| %

When I switch the order of the packages foo-ce and foo-pro in
debian/control to foo-pro and foo-ce it works fine for the foo-pro
package but fails for foo-ce.

One workaround is to create a symlink debian/foo-pro.foo.init
pointing to the actual init script:

| % ls -la debian/foo-pro.foo.init
| lrwxrwxrwx 1 mika mika 8 May 22 11:17 debian/foo-pro.foo.init -> foo.init*

If you want to reproduce the bug on your own: I've put a minimal
working example package online at
https://github.com/mika/debhelper-bug (initial commit with "old
style" debhelper packaging, 2nd commit with "minimal style"
debhelper packaging, but you can also just execute the
dh_installinit command lines as mentioned above to reproduce the
issue).

regards,
-mika-



More information about the debhelper-devel mailing list