]> git.saurik.com Git - apt.git/commit - apt-pkg/deb/dpkgpm.cc
do dpkg --configure before --remove/--purge --pending
authorDavid Kalnischkies <david@kalnischkies.de>
Mon, 22 Aug 2016 19:33:38 +0000 (21:33 +0200)
committerDavid Kalnischkies <david@kalnischkies.de>
Tue, 23 Aug 2016 09:32:23 +0000 (11:32 +0200)
commitfb51ce3295929947555f4883054f210a53d9fbdf
treee0b77667f01f75d0d16156eb576bea4c7638c390
parentab59037f9e62bf7ab7eb859c26cd19882d17ee04
do dpkg --configure before --remove/--purge --pending

Commit 7ec343309b7bc6001b465c870609b3c570026149 got us most of the way,
but the last mile was botched by having the pending calls in the wrong
order as this way we potentially 'force' dpkg to remove/purge a package
it doesn't want to as another package still depends on it and the
replacement isn't fully installed yet.

So what we do now is a configure before remove and purge (all with
--no-triggers) and finishing off with another configure pending call to
take care of the triggers.

Note that in the bugreport example our current planner is forcing dpkg
to remove the package earlier via --force-depends which we could do for
the pending calls as well and could be used as a workaround, but we want
to do less forcing eventually.

Closes: 835094
apt-pkg/deb/dpkgpm.cc
test/integration/test-bug-835094-configure-before-purge [new file with mode: 0755]
test/integration/test-no-fds-leaked-to-maintainer-scripts