[debhelper-devel] Bug#734531: dh_installemacsen: can create incorrect "hybrid" packages.

Rob Browning rlb at defaultvalue.org
Tue Jan 7 22:23:51 UTC 2014


Package: debhelper
Version: 9

So as yet, I'm not really certain how to classify the problem here --
some of it may just be pilot error on the part of add-on package
maintainers, but I suspect that at a minimum, debhelper may be making
mistakes a bit easier than we'd like.  (Assuming I haven't
misinterpreted the evidence.)

As you probably know, there are a number of requirements for new "2.0"
add-on packages (primarily section 5 in
/usr/share/doc/emacsen-common/debian-emacs-policy.gz).  One requirement
is that every new-style package have a compat/PACKAGE file *and* a
"Conflicts: emacsen-common (< 2.0.0)".

In addition, new-style packages must make notably different calls in
their maintainer scripts, and for everything to work correctly, it's
critical that all of these things go together.  In fact, emacsen-common
uses both the way that it is invoked by the package and the compat file
to determine how to behave (with respect to an old or new style
package).  If emacsen-common detects that it's being invoked by an
old-style package it has to maintain a different set of
behaviors/guarantees (from the old policy).

But right now, from a package I saw, it looked like dh_installemacsen
may have inserted the maintainer script calls for a new-style package,
even though the package itself hadn't migrated (i.e. hadn't added the
Conflicts, hadn't added a compat file, and may not have rewritten its
install/remove scripts to handle the fact that it's going to be called
differently as a new-style package).

This might break things badly.

Assuming there is a debhelper issue here, I don't have strong feelings
about the solution, but if dh_installemacsen is going to limit itself to
the new-style infrastructure (which would certainly be easier), one
possibility would be to just refuse to proceed with any package that
doesn't have a correct compat file.

When it's missing, point the maintainers at policy section 5 for any
bits that debhelper won't be able to handle for them automatically
(i.e. Conflicts, reworking the install/remove script, etc.).  Then, once
they've fixed that up and created the compat file, dh_installemacsen
could proceed normally.

(I'm not sure which version was used to create the package I saw, but it
 was compat 9.)

Thanks, and hope this helps.
-- 
Rob Browning
rlb @defaultvalue.org and @debian.org
GPG as of 2011-07-10 E6A9 DA3C C9FD 1FF8 C676 D2C4 C0F0 39E9 ED1B 597A
GPG as of 2002-11-03 14DD 432F AE39 534D B592 F9A0 25C8 D377 8C7E 73A4




More information about the debhelper-devel mailing list