[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: trigger processing



(+bcc: a hypothetical debian-dpkg-frontends@ list)

Phillip Susi wrote:

> I've noticed triggers being invoked repeatedly during upgrades rather
> than once at the end, as they are supposed to.
[...]
> Is this a known bug or misconfiguration in apt?

Yes, known frontend bug (though it doesn't seem to be filed with debbugs).
I think all the frontends have it.  A hint at why:

Suppose package foo Pre-Depends on package bar.  In the old world, to
install package foo, assuming bar is already installed, you'd do
something like this:

	unpack foo and various other packages
	configure foo

To unpack foo, bar must be configured (or more precisely, it must have
a "last configured version" --- in other words, it must not have been
deconfigured since it was last configured).  Unfortunately if bar has
unhandled triggers for, for example, a manpage change, then this
condition is not satisfied.

So frontends have two choices:

 1. split the unpack step:

	unpack bar
	handle triggers
	unpack foo and various other packages

   or

 2. use dpkg --triggers, which takes care of running whatever triggers
    are needed to leave none pending at the end of each dpkg run.

The lazy choice is (2). :)

<http://bugs.debian.org/526774>, <http://bugs.debian.org/484669>,
the "dpkg trigger usage" section of apt.conf(5), and the
"cupt::worker::defer-triggers" item in cupt(1) might be relevant.

Hope that helps,
Jonathan


Reply to: