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:~>