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

Re: Replaces and virtual packages



Adam Heath wrote:
On Sun, 21 Oct 2001, Christoph Pfisterer wrote:
 > While trying to set up a group of packages to be mutually-exclusive,
 I've come across what I think is a bug in dpkg. First, some
 background: I'm using dpkg 1.9.17 on Mac OS X (a.k.a. Darwin) in the
 Fink project (http://fink.sourceforge.net). Fink has its own source
 package format, but uses dpkg to install binary .deb packages (and
 dpkg-deb to create them). I can provide the complete set of patches
 used as well as example .deb packages if requested.

If you are distributing this resultant binary, and you have patched dpkg, you
MUST make the source changes available.

I know that very well, thanks. The binary distribution of Fink actually contains the source and patches for all packages, not just those that are under the GPL or similar licenses. What I was trying to say was "if requested, I can post the patches I made here on this list for inspection to see if they have anything to do with the problem".

On another note, has apple made their mods available?

The source for the kernel, the compiler suite, and the command line tools is available as tarballs or via CVS from <http://www.opensource.apple.com/>.

 > [...]
 dpkg: regarding .../test-b_1.0-1_darwin-powerpc.deb containing test-b:
   test-a conflicts with test-c
    test-b provides test-c and is to be installed.
 dpkg: error processing

/sw/fink/dists/local/main/binary-darwin-powerpc/test-b_1.0-1_darwin-powerpc.deb
 (--install):
   conflicting packages - not installing test-b
 [...]

 So somehow dpkg doesn't evaluate the Replaces field correctly in this
 case. Is this a bug? Or am I missing something important and it's
 actually a feature? Could it be related to something obscure, such as
 the ordering of the fields in the control file?

Replaces means a package replaces the files of another package.  Virtual
packages can't own files, so you can't replace them.  This is not a bug in
dpkg, but in what you are trying to do.

Hmm. All right, but that doesn't explain 1) why it works as long as no virtual package names are involved and 2) why the Debian Policy Manual explicitly mentions this and goes to some length to explain that Replaces is evaluated for both replacing actual files and for removing alternative packages...

Additionally, passing -B(--auto-deconfigure) may be needed.

Tried it, same error as above.

-chrisp

--
chrisp a.k.a. Christoph Pfisterer   "Any sufficiently advanced
cp@chrisp.de - http://chrisp.de      bug is indistinguishable
PGP key & geek code available        from a feature."



Reply to: