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

Re: Shlibs files and libfoo.so



On Sat, Sep 04, 1999 at 12:25:09PM -0700, Joseph Carter wrote:
> And I have yet to hear a better idea to solve the problem.  I have said I
> would withdraw my proposal if I heard another reasonable idea.  Simply not
> using dpkg-shlibdeps isn't IMO reasonable, neither is hacking a binary.

All right, I've now heard a better idea, and I've got a new patch which
implements it.  It requires no changes to policy regarding shlib file
formats or anything of the sort.

It could probably use a little cleaning up, but here it is:

--- /usr/bin/dpkg-shlibdeps.orig	Sat Jul 31 03:42:04 1999
+++ dpkg-shlibdeps	Sun Sep  5 14:29:08 1999
@@ -104,6 +104,11 @@
 	    push(@libf,$execf[$i]);
 	    push(@libpaths,$3) if !$libpathadded{$3}++;
 	    $nthisldd++;
+	} elsif (m,^\s+(\S+)\.so\s+=>\s+(/\S+)(\s+\(0x.+\))?$,) {
+	    push(@libpath,$2); push(@libpaths,$2) if !$libpathadded{$2}++;
+	    $r = readlink($2);
+	    $r =~ /(\S+)\.so\.(\S+)/;
+	    push(@libname,$1); push(@libsoname,"$2");
 	} else {
 	    &warn("unknown output from ldd on \`$exec[$i]': \`$_'");
 	}

This assumes that any libfoo.so must be a symlink, which since policy
demands shlibs have symlinks is the case anyway.  (And it was never my
intention to change that..)  Since ldd doesn't follow this symlink down
one level for libfoo.so, this patch will--but only in that case.

Error checking is notably absent at the moment:  I'm checking the path
of the symlink, but I don't even know if the target exists much less if
it's a valid package.  If libfoo.so is NOT a symlink, perhaps installed
locally, there are going to be serious issues rather quickly.

These issues should and will be addressed, but I wanted to settle the
policy proposal first now that I have something that works.  If people
believe as I do this is a better solution, the policy proposal can die in
peace because it will not be necessary any longer.


BTW, I did say "works" above.  It does work, tested on the voodoo2 version
of glide and the quake-glide-libs package.  Works great.  =>

-- 
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
--------------------------------------------------------------------------
<Mercury> emacs sucks, literally, not a insult, just a comment that its
          large enough to have a noticeable gravitational pull...

Attachment: pgpU7BAi5wyHJ.pgp
Description: PGP signature


Reply to: