[Aptitude-devel] Bug#704298: Bug#704298: Bug#704298: dpkg installs package without error, but it then shows up as uninstalled

David Kalnischkies kalnischkies+debian at gmail.com
Mon Apr 1 16:01:56 UTC 2013

On Mon, Apr 1, 2013 at 3:55 AM, Daniel Hartwig <mandyke at gmail.com> wrote:
> On 1 April 2013 03:56, Nick Black <nick.black at sprezzatech.com> wrote:
>> [my package is broken]
> The SprezzOS1 version is no longer available in
> <http://www.sprezzatech.com/apt/pool/main/a/apt/>.
> Does the issue persist, and have you eliminated packaging errors on your part?

It's a "packaging issue" in the sense that the Depends line
(or better: a version number in it) is sub-optimally written:

In the show output above you see:
Depends: libapt-pkg4.12 (>= […]
Depends: libapt-pkg4.12 (>= […]

The later is from the dpkg/status file while the first is coming from the
Packages file.
dpkg rewrites version numbers in the status file to a canonical form.

The method used to detect if two versions with the same version number are
indeed the same version in libapt is a simple operation on strings, so it
doesn't do this rewriting: hence it detects the two versions as different.
(Another instance is the zero-epoch by the way; < vs. <= is dealt with)

I guess it would be a good idea to at least add a lintian warning for sub-
optimally written version numbers. I don't know if dpkg provides a simple
interface for getting a canonical rewrite of version numbers though.

I varguely remember that dpkg maintainers were against doing their rewrite
while building packages, but I am not entirely sure.

"Fixing" this in APT is hard as it would basically mean we need to parse those
lines while this hashing is used to avoid parsing them without the need to
depend on "same version number equals same version" assumption …
(this "feature" already wastes quiet a bit of time)

Best regards

David Kalnischkies

More information about the Aptitude-devel mailing list