On Fri, Aug 06, 1999 at 03:46:34PM -0700, Joey Hess wrote: > Method for shlibs to work with libfoo.so (#42236) > * Under discussion. > * Proposed by Joseph Carter. > * This is a proposal to make binary-only shared libs that have no > soname work with dpkh-shlibdeps. The idea is to detect such > packages and use "." for the soname in the shlibs file. I think I probably should clarify that. THe point is to make binaries linked to shared libs without sonames work with dpkg-shlibdeps. The point is not at all to change the policy which says shlibs must have sonames, not at all. The point is to make dpkg-shlibdeps can take something like libglide2x.so and translate it to something in the "proper" format in the form of a dependency. Here is exactly why this is necessary: knghtbrd@icarus2:~$ ldd `which glquake.real` libMesaGL.so.2 => /usr/lib/libMesaGL.so.2 (0x40005000) libglide2x.so => /usr/lib/libglide2x.so (0x400d4000) libX11.so.6 => /usr/X11R6/lib/libX11.so.6 (0x4021f000) libXext.so.6 => /usr/X11R6/lib/libXext.so.6 (0x402c5000) libdl.so.2 => /lib/libdl.so.2 (0x402d1000) libvga.so.1 => /usr/lib/libvga.so.1 (0x402d4000) libm.so.6 => /lib/libm.so.6 (0x40321000) libc.so.6 => /lib/libc.so.6 (0x4033e000) /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x2aaaa000) knghtbrd@icarus2:~$ cd /usr/lib knghtbrd@icarus2:/usr/lib$ ls -l libglide* -rw-r--r-- 1 root root 585260 Aug 26 18:57 libglide-v2.so.2.53 lrwxrwxrwx 1 root root 19 Aug 27 15:39 libglide.so -> libglide-v2.so.2.53 lrwxrwxrwx 1 root root 19 Aug 27 15:39 libglide.so.2 -> libglide-v2.so.2.53 lrwxrwxrwx 1 root root 19 Aug 27 15:40 libglide2x.so -> libglide-v2.so.2.53 Just because the library is libglide-v2.so.2 does not mean ldd is going to show that is what it's linked with. The ONLY WAY for dpkg-slibdeps work with this as long as it uses the current (suboptimal IMO) method for figuring out what libraries are used by a package, I'll be unable to use it. I think Ian's objection (that we shouldn't do it because it benefits non-free software) is in direct conflict with the social contract. I also believe that while Joel can rightfully say shlibs should have sonames, he can't very easily say that what I am doing here is trying to make more shlibs not have them---in fact I'm trying to make sure our shlibs DO have them! The problem which has arisen is that the binary which I can not reliably fix has been linked against libglide2x.so... The version is there all right, but not in the right place! The fix for this problem is simple, dpkg-shlibdeps needs to not bomb when it sees something linked in the wrong place like this. I have written a patch which not only causes dpkg-shlibdeps to recognize the above ldd output but also allow (and require in fact) such libraries be defined in a shlibs file someplace so the correct dependencies may be created. I still do not see what the problem is with accepting that this sometimes needs to be done, but that the target of such soname-less libraries should be a symlink. The exact implementation is a little bit of a hack, but I will argue that running ldd on a file and trying to parse its output is itself a hack (and a dirty one at that...) My patch may not clean this up any, but it certainly doesn't make it much dirtier. And I have yet to hear anyone suggest a reasonable alternative. (I do not consider trying to manage dependencies by hand a reasonable alternative to fixing what I consider to be a bug in dpkg-shlibdeps...) -- Joseph Carter <knghtbrd@debian.org> Debian GNU/Linux developer GnuPG: 2048g/3F9C2A43 - 20F6 2261 F185 7A3E 79FC 44F9 8FF7 D7A3 DCF9 DAB3 PGP 2.6: 2048R/50BDA0ED - E8 D6 84 81 E3 A8 BB 77 8E E2 29 96 C9 44 5F BE -------------------------------------------------------------------------- * wichert_ imagines master without a MTA <james> wichert: ehm? that might hinder peformance of the BTS :p
Attachment:
pgpKLB3G3HinO.pgp
Description: PGP signature