“Maxim” == Maxim Sobolev writes:
[…]
Maxim> Then please considering a following situation (pretty
Maxim> real): some package A depends on SDL1.0, while package B
Maxim> depends on SDL1.1 and A, B are not mutually exclusive,
Maxim> so the user potentially might want to install both. In
Maxim> this case we have to cope somehow with problem that both
Maxim> SDL1.0 and SDL1.1 are trying to use the same filenames,
Maxim> thus creating a conflict when user needs both SDL1.1 and
Maxim> SDL1.0 to be installed. Of course we can tell the user
Maxim> “hey, you can’t have A and B both installed because
Maxim> SDL1.0 and SDL1.1 can not coexist on the same machine”,
Debian use a nice approach that solves this kind of problem [*]
(I’m speaking of Debian because I use it, but RedHat seems to do
the same, and probably other Linux distribution too). From an
upstream library package `foo’ they build TWO packages:
libfoo contains the library, used by other programs
libfoo-dev contains the header files, for developers
“library” packages for different versions of the same library
(e.g. libsdl1.0 and libsdl1.1) can easily coexist on the same
host because of the different SO names. Only the dev packages
(e.g. libsdl1.0-dev and libsdl1.1-dev) are mutualy exclusive.
As your A and B programs are concerned, there is no conflict
since both libsdl1.0 and libsdl1.1 can be installed.
Maxim> but this would be a pretty lame answer and simply not
Maxim> true enough, so we have to develop some hack to
Maxim> workaround this problem. Of course maintaining this
Maxim> hack is costly and ungrateful task,
undoubtedly
Maxim> so as a maintainer of sdl and many related packages in
Maxim> FreeBSD I’m trying to came with some generic solution,
Maxim> which can satisfy both our and SDL’s long term goals.
I don’t know how the FreeBSD packaging system works, I have
heard good comments on it, but maybe it doesn’t allow the above
approach. BTW, is there other packaging systems that does not
handle this?
Anyway, it seams to me that this issue is not SDL-specific: all
library packages which offer multiple versions are concerned,
right? Therfore it would be a waste of time to change only
SDL. If you want a generic solution, and if this solution
need some works, my opinion [2] is that this work is probably
better done in:
- the FreeBSD packaging systems, if possible
or
- automake, if you can convince them
Of course since I’m not a FreeBSD package maintainer, nor an
automake or SDL developer, my opinion is not really
significant…
Ciao,
[*] http://www.debian.org/doc/debian-policy/ch4.html#s4.3--
Alexandre Duret-Lutz