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

dpkg metadata: packages which conflict with themselves



Hi there,

I'm trying to make sense of the Debian packaging metadata for a project
I'm working on.  In particular, I'm trying to build a database from a
snapshot of Debian packages and model the dependencies and conflicts
among them.

I've been referring to the Debian Policy Manual, and I've been
extracting information directly from the control files in the package
binaries.  I've discovered some weird edge cases.

For instance, package t1lib-dev_1.3.1-9 lists this metadata:

Package: t1lib-dev
Version: 1.3.1-9
Section: oldlibs
Priority: optional
Architecture: i386
Conflicts: t1lib0-dev, t1lib-dev (<< 1.3.1-9), t1lib1-dev, libt1-dev
Replaces: t1lib0-dev, t1lib0 (>> 0.7.1-5), t1lib1-dev
Provides: t1lib1-dev

I understand, from the Debian policy manual, that a package which
declares itself in conflict with a virtual package which it also
provides is saying that it wants to be the only package on the system
satisfying that virtual dependency.  Here, then, t1lib-dev provides
"t1lib1-dev" and also conflicts with it, so no other package providing
this virtual package can co-exist with it.

What I'm wondering is why there's also a conflict with t1lib-dev (<<
1.3.1-9)?  Isn't it implicitly the case that installing one version of a
binary package of a given name excludes other versions?

Similarly, for package libc6-dev_2.0.110-1:

Package: libc6-dev
Version: 2.3.2.ds1-20
Section: libdevel
Priority: standard
Architecture: i386
Depends: libc6 (= 2.3.2.ds1-20), linux-kernel-headers
Recommends: gcc | c-compiler
Suggests: glibc-doc, manpages-dev
Conflicts: libstdc++2.10-dev (<< 1:2.95.2-15), gcc-2.95 (<< 1:2.95.3-9),
libpthread0-dev, libdl1-dev, libdb1-dev, libgdbm1-dev, libc6-dev (<<
2.0.110-1), locales (<< 2.1.3-5), libstdc++2.9-dev, netkit-rpc, libc-dev
Replaces: man-db (<= 2.3.10-41), gettext (<= 0.10.26-1), ppp (<=
2.2.0f-24), libgdbmg1-dev (<= 1.7.3-24), ldso (<= 1.9.11-9), netkit-rpc,
netbase (<< 4.0), kerberos4kth-dev (<< 1.2.2-10)
Provides: libc-dev

Note that libc6-dev states an explicit conflict with libc6-dev (<<
2.0.110-1).  Is this required, or is this some kind of oversight?

Thank you for any clarification you can offer.

Keith Browne
tuxedo@funkrehab.com



Reply to: