Re: a crude script to check shared library soname/package name integrity
Ulrich Eckhardt <uli@doommachine.dyndns.org> cum veritate scripsit:
> > for A in /var/lib/dpkg/info/*.shlibs; do awk '$3 !~ $2"$" {print $0}' $A;
> > done
> >
> A _lot_. However, what does this really check for ? And what are the
> conclusions you can draw from that ?
It checks if the soname of a library as noted in the shlibs file
matches the "soname" portion of the shared library package name.
Debian policy specifies that shared libraries be named in the
form of
lib<library name><soname>
so they should match.
> A few excerpts from what I get, can you comment on them?
>
> libconsole 0 console-tools-libs (= 1:0.2.3-23.3)
> libctutils 0 console-tools-libs (= 1:0.2.3-23.3)
They are versioned very strongly.
If other programs use this library, they need to be recompiled
on every upload of console-tools.
They should be named "libconsole0" or something like
that, and preferrably maintained with proper soname versioning.
> libcom_err 2 libcomerr2, e2fsprogs (>= 1.27-2)
If and when libcom_err.so.2 in e2fsprogs bumps up the soname, to
generate libcom_err.so.3, there will no longer be a package that
provides libcom_err.so.2, which means that packages compiled against
it won't work.
> libss 2 libss2, e2fsprogs (>= 1.27-2)
> libEterm 0.9.1 eterm
This should go into libetterm0.9.1, if other programs
link to it
> /usr/lib/libfakeroot/libfakeroot 0
This is an exception
> libgif 3 libungif3g (>= 3.0-2) | giflib3g (>= 3.0-5.2)
This is an exception. We had this 3 -> 3g kind of
change for glibc transition.
> libgdkcardimage 0 gnome-card-games
This should go into a shared library package of its own.
> libkmultipage 0 kview (>= 4:2.2.2-0)
ditto
> kword 0 kword
This shouldn't be in the shlibs file.
> libdl 1 ldso (>= 1.9.7-0)
This probably doesn't belong in shlibs file ?
> libbz2 0 libbz2
The package name should have been libbz2-0.
> /lib/ld-linux 2 libc6 (>= 2.2.4-4)
> ld-linux 2 libc6 (>= 2.2.4-4)
I really doubt if any program should
link with ld-linux...
> libdl 2 libc6 (>= 2.2.4-4)
> libpam_misc 0 libpam0g (>= 0.72-1)
> libpamc 0 libpam0g (>= 0.72-1)
This is the remains of glibc transition.
I think the most problematic one I found was
"procps" . It's linked in by many programs,
and I had experienced a breakage in the past.
regards,
junichi
--
dancer@debian.org : Junichi Uekawa http://www.netfort.gr.jp/~dancer
GPG Fingerprint : 17D6 120E 4455 1832 9423 7447 3059 BF92 CD37 56F4
Libpkg-guide: http://www.netfort.gr.jp/~dancer/column/libpkg-guide/
--
To UNSUBSCRIBE, email to debian-devel-request@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Reply to: