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

conflicting -dev packages



We have too many conflicting -dev packages.

Suppose I had two projects - one wanting to use Berkeley DB 4.1, one for  
an Apache module. I'd need to constantly reinstall the various -dev  
packages because apache-dev depends on libdb2-dev, and libdb2-dev and  
libdb4.1-dev conflict.

Now suppose there were two users on this machine ... even the reinstall  
solution doesn't work there.

I strongly believe if we have several versions of -dev packages for one  
release, then just like the various shared library packages[1], it should  
be possible to install all of them at the same time.

Now, of course, these will (currently) have conflicting include (and .a)  
files. (For that matter, sometimes completely independant -dev packages  
will have conflicting files, too.)

It seems to me that the obvious solution here, when that happens, is to  
install the various include and .a files into different directories. It is  
trivial to add the -I and -L options necessary to pick up the ones needed,  
and many libraries already have autoconf and/or configuration-script  
support to do exactly that.

We could then do one of several things to select one of those packages as  
the "canonical" one:

- place the canonical one so that no -I or -L options are needed
- use alternatives to select one
- just have a "canonical" package name (presumably without version)
- nothing

But our general aim should be that *all* -dev packages of a given release  
(including those not explicitely named something-dev but including  
material for /usr/include and /usr/lib/*.a) should be installable at the  
same time.

The only time I see where deviating from that rule would be justified is  
when two -dev packages Depend: on some other packages that cannot be made  
non-conflicting, so that avoiding the conflict at the -dev level would not  
actually make it possible to install them at the same time. Of course, by  
the exact same reasoning as for the -dev packages themselves, those  
situations should be avoided whenever possible.

[1] And, incidentally, there are some shared library packages which  
conflict between versions. These should be stamped out as well.

MfG Kai



Reply to: