[Pkg-Cyrus-imapd-Debian-devel] Problem with statoverrides after
upgrading cyrus22-* to cyrus-*2.2
Henrique de Moraes Holschuh
hmh at debian.org
Tue Dec 13 23:00:10 UTC 2005
On Tue, 13 Dec 2005, Sven Mueller wrote:
> >>Oh well, but _how_ do we make them disappear during upgrades?
> >
> > You have to *completely* replace the package. It will disappear, then.
> >
> > This means the famous trio (provides: conflicts: replaces:) without versions
> > is needed for all packages you are going to make disapear. That tells dpkg
> > that something fishy is going on, and it does away with the old package.
>
> Well, on the system in question, I never had cyrus21-common installed,
> just cyrus22-common. And cyrus-common-2.2 does the triplet on
> cyrus22-common (though some others didn't until my latest commit). And
> the stat-overrides are definately done by cyrus*-common*.
Well, Debian policy says this:
9. Any packages all of whose files have been overwritten during the
installation, and which aren't required for dependencies, are
considered to have been removed. For each such package
1. `dpkg' calls:
<disappearer's-postrm> disappear \
<overwriter> <overwriter-version>
2. The package's maintainer scripts are removed.
3. It is noted in the status database as being in a sane state,
namely not installed (any conffiles it may have are ignored,
rather than being removed by `dpkg'). Note that
disappearing packages do not have their prerm called,
because `dpkg' doesn't know in advance that the package is
going to vanish.
Section 7.5.1 has more tips, as well. It hits that we *cannot* conflict(!)
with the other package.
I am confused now, apparently we have to take over ALL files (including
those that are now useless and should be removed instead) by using Replaces
and shipping these files inside the .deb, AND not conflict with the old
package.
Still, if we conflict + replace all files, that should also work (since no
files of the old package will remain). I suppose we can rm the undesireable
files in postinst.
Section 7.5.2 explains the triplets, but doesn't help much.
What's getting me bummed is that there shouldn't be any files left but the
conffiles when migrating from old 2.2 to new 2.2, AND that the conffiles are
the same, so the old package should indeed have disappered.
Sven, did you perchange *purge* by hand the old 2.2 packages? If you did
not, we're off track. postrm purge will not be called UNLESS you manually
tell apt/dpkg to do so, disappearing packages or not.
--
"One disk to rule them all, One disk to find them. One disk to bring
them all and in the darkness grind them. In the Land of Redmond
where the shadows lie." -- The Silicon Valley Tarot
Henrique Holschuh
More information about the Pkg-Cyrus-imapd-Debian-devel
mailing list