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

Bug#54529: Apt and dpkg can get confused about package headers



Package: apt
Version: 0.3.15

I am not sure if this is an apt problem or a dpkg problem, but apt is my
best guess. It certainly doesn't happen if you use dselect instead. If
the bug is actually in dpkg, please file an appropriate bug, and let me
know the number.

It manifests itself when a package changes sections, eg from non-free to
main in the case of dnsutils recently. The procedure seems to be as
follows:

* dpkg/dselect gets /var/lib/dpkg/available from somewhere, which
contains the section non-free for dnsutils, in this case.
* apt is used to upgrade packages (including dnsutils) a few times,
somewhere during this process dnsutils changes section to main.
* apt does not update /var/lib/dpkg/available.
* dpkg ignores /var/lib/dpkg/status and /var/state/apt/lists/* and
instead uses /var/lib/dpkg/available to deduce the section of dnsutils.
* dpkg updates /var/lib/dpkg/status with the latest version of dnsutils,
but still thinks it is in section non-free since that's what
/var/lib/dpkg/available said.
* if you run vrms or dpkg -s, it tells you that dnsutils is non-free
when it isn't.

Workaround: Set dselect to use the apt update method and, when this
situation crops up, do a dselect update to update
/var/lib/dpkg/available and then reinstall the package in question.

Of course, usually this bug doesn't have many real side-effects, but it
took me ages of chasing down why vrms was telling me that both dnsutils
and ssh were non-free when they aren't. For people who want to stick to
dfsg-free programs as much as possible, this can be confusing.


Reply to: