also sprach Steve Langasek <vorlon@debian.org> [2005.05.23.1229 +0200]:
> Meh. This definitely looks like a dpkg bug, and it also explains
> how bug #309485 got to be the way it was. Well, at least we have
> an explanation now.
#310390
> > A problem arises (#310050) when 0.9.11-* is used to upgrade the
> > woody version. 0.9.11-* does not provide /usr/bin/bsetbg
> > anymore, but 0.1.7-3 is not given a chance to remove it, since
> > on an upgrade, old-postrm/remove is (obvioulsy) not called.
>
> That part is a fluxbox bug, and not even a bug in the previous
> version but in the current one; you can't remove a diversion for
> a file until you've removed your version of the file, otherwise
> you get a file collision.
If the file was part of the previous package but not of the current
one, I should be able to assume that by the time new-postinst is
called, the file should not be on the disk anymore. Thanks to the
aforementioned dpkg bug, this assumption was false.
fluxbox does not have a bug here. It did what it should, but
dpkg-divert should have no reason to err out on the removal request
here. This is a consequence of dpkg's bug.
> For further fun (and to see the exact bug that libldap2 was tripping
> across), remove blackbox and then un-divert (by hand, in this case) bsetbg.
> You get a nice little file named /usr/bin/bsetbg, which dpkg knows nothing
> about.
I cannot confirm this:
root@woody:/# dpkg -l fluxbox blackbox | grep ^ii
ii fluxbox 0.1.7-3 Highly configurable and low resource X11 Win
ii blackbox 0.62.1-1 Window manager for X
root@woody:/# dpkg --remove blackbox
(Reading database ... 8262 files and directories currently installed.)
Removing blackbox ...
root@woody:/# dpkg -S /usr/bin/bsetbg
diversion by fluxbox from: /usr/bin/bsetbg
diversion by fluxbox to: /usr/bin/bsetbg.blackbox
fluxbox: /usr/bin/bsetbg
root@woody:/# dpkg-divert --remove --package fluxbox --rename /usr/bin/bsetbg
Removing `diversion of /usr/bin/bsetbg to /usr/bin/bsetbg.blackbox by fluxbox'
root@woody:/# dpkg -S /usr/bin/bsetbg
fluxbox: /usr/bin/bsetbg
root@woody:/# md5sum /usr/bin/bsetbg
2ea340efa4ee7d20cb76c2d48adf3fbf /usr/bin/bsetbg
Looks good to me.
> > if [ -f /usr/share/man/man1/bsetbg.1.gz ] \
> > && [ -f /usr/share/man/man1/bsetbg.1.gz.blackbox ] \
> > && dpkg-divert --list /usr/bin/bsetbg | \
> > grep -q '^diversion.*by fluxbox$'; then
>
> I think checking the output of dpkg-divert --list is probably redundant
> here, FWIW.
It won't hurt and makes me feel better about this. If such a hack
is necessary, it's best to define the conditions under which it is
applied as closely as possible.
--
Please do not send copies of list mail to me; I read the list!
.''`. martin f. krafft <madduck@debian.org>
: :' : proud Debian developer, admin, user, and author
`. `'`
`- Debian - when you have better things to do than fixing a system
Invalid/expired PGP subkeys? Use subkeys.pgp.net as keyserver!
"and no one sings me lullabies,
and no one makes me close my eyes,
and so i throw the windows wide,
and call to you across the sky"
-- pink floyd, 1971
Attachment:
signature.asc
Description: Digital signature