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

Re: Shared library dependencies revisited



Bruce Perens writes ("Re:  Shared library dependencies revisited"):
...
> We can make your proposal simpler by using virtual package names to
> find the libraries.    [ eg Provides: libX11.so.6 ]

This is a very interesting idea, thanks for the suggestion.

As it stands there are a couple of problems:

Firstly, we need to depend on a particular version of the package, so
that the library version number is high enough for ld.so not to
complain.  If we use virtual packages we need to implement virtual
package versions in dpkg, which is (a) a big job and (b) hard to
deploy (because it's a change to the syntax of the Packages file).

Secondly, some packages (the X11 libraries package is a good example)
contain many different shared libraries.  It seems silly to include a
dependency on each one.  For example, xbase depends on 7 different X
libraries, all part of the xlib package, and many packages depend on
both libc and libm, which come together.  If we do as you suggest
these packages will have long and confusing dependencies.

Further suggestions welcome.

Ian.

-chiark:~> ldd /usr/bin/X11/xterm
        libXaw.so.6 => /usr/X11R6/lib/libXaw.so.6.0
        libXmu.so.6 => /usr/X11R6/lib/libXmu.so.6.0
        libXt.so.6 => /usr/X11R6/lib/libXt.so.6.0
        libSM.so.6 => /usr/X11R6/lib/libSM.so.6.0
        libICE.so.6 => /usr/X11R6/lib/libICE.so.6.0
        libXext.so.6 => /usr/X11R6/lib/libXext.so.6.0
        libX11.so.6 => /usr/X11R6/lib/libX11.so.6.0
        libncurses.so.3.0 => /lib/libncurses.so.3.0
        libc.so.5 => /lib/libc.so.5.2.18
-chiark:~> ldd /usr/bin/a2p 
        libgdbm.so.1 => /usr/lib/libgdbm.so.1.7.3
        libdb.so.1 => /usr/lib/libdb.so.1.85.2
        libdl.so.1 => /lib/libdl.so.1.7.14
        libm.so.5 => /lib/libm.so.5.0.5
        libc.so.5 => /lib/libc.so.5.2.18
-chiark:~>



Reply to: