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 [EMAIL PROTECTED]
-- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

