ALT Linux Team development discussions
 help / color / mirror / Atom feed
* [devel] list of libraries within binaries (for sale or rent!)
@ 2005-10-08 12:00 Alexey Tourbin
  2005-10-08 13:02 ` Dmitry V. Levin
                   ` (2 more replies)
  0 siblings, 3 replies; 19+ messages in thread
From: Alexey Tourbin @ 2005-10-08 12:00 UTC (permalink / raw)
  To: ALT Devel discussion list

[-- Attachment #1: Type: text/plain, Size: 9838 bytes --]

On Sat, Oct 08, 2005 at 02:08:42PM +0400, Alexey Tourbin wrote:
> $ head product
> libgcj3.3	/usr/lib/libgcj.so.4.0.0	libgcj3.3-debug	/usr/lib/debug/libgcj.so.4.0.0	B	A
> libgcj3.3	/usr/lib/libgcj.so.4.0.0	libgcj3.4	/usr/lib/libgcj.so.5.0.0	B	A
> libgcj3.3	/usr/lib/libgcj.so.4.0.0	libgcj3.4-debug	/usr/lib/debug/libgcj.so.5.0.0	B	A
> libgcj3.4	/usr/lib/libgcj.so.5.0.0	libgcj3.3	/usr/lib/libgcj.so.4.0.0	B	A
> libgcj3.4	/usr/lib/libgcj.so.5.0.0	libgcj3.3-debug	/usr/lib/debug/libgcj.so.4.0.0	B	A
> libgcj3.4	/usr/lib/libgcj.so.5.0.0	libgcj3.4-debug	/usr/lib/debug/libgcj.so.5.0.0	B	A
> libinn	/usr/lib/libstorage.so.2.0.0	inn	/usr/bin/nnrpd	B	ACTIVE
> libinn	/usr/lib/libstorage.so.2.0.0	inn	/usr/bin/tdx-util	B	ACTIVE
> libfreewrl	/usr/lib/libFreeWRLFunc.so	freewrl	/usr/lib/perl5/vendor_perl/i386-linux/auto/VRML/VRMLFunc/VRMLFunc.so	D	AC_LastDuration
> libfreewrl	/usr/lib/libFreeWRLFunc.so	freewrl	/usr/lib/perl5/vendor_perl/i386-linux/auto/VRML/VRMLFunc/libFreeWRLFunc.so	D	AC_LastDuration
> $
> 
> Ну ясно, что получается.  Слева -- системная библиотека, справа --
> бинарь (возможно, другая системная библиотека), которая предоставляет
> такой же символ.

Теперь ничего не стоит получить список бинарей, которые подозреваются
в том, что статически слинкованы с библиотеками.

$ cut -f2,4 product |sort |uniq -cd >suspect
$ du -hs suspect
816K    suspect
$ head suspect
     51 /lib/libaal-1.0.so.5.0.0        /lib/libaal-minimal.so.0.0.0
      2 /lib/libaal-1.0.so.5.0.0        /usr/lib/libgift.so.0.0.0
      2 /lib/libaal-1.0.so.5.0.0        /usr/lib/libmpfc-1.3.5.so
     51 /lib/libaal-minimal.so.0.0.0    /lib/libaal-1.0.so.5.0.0
      4 /lib/libanl-2.3.5.so    /usr/lib/debug/libanl-2.3.5.so
     12 /lib/libattr.so.1.1.0   /lib/libc-2.3.5.so
     12 /lib/libattr.so.1.1.0   /usr/lib/debug/libc-2.3.5.so
      2 /lib/libattr.so.1.1.0   /usr/lib/libncurses.so.5.4
     24 /lib/libbz2.so.1.0.3    /usr/lib/R/bin/R.bin
     24 /lib/libbz2.so.1.0.3    /usr/lib/R/bin/libR.so
$

В первой колонке здесь число совпадающих символов, которые предоставляют
два эти (во второй и тертьей колонке) бинаря.  `uniq -d' исключает
одиночные случайные совпадения.

Опять проверяем, где у нас zlib.

$ fgrep libz.so suspect
     17 /lib/libz.so.1.2.3      /usr/bin/Xvnc
      2 /lib/libz.so.1.2.3      /usr/bin/pose
     29 /lib/libz.so.1.2.3      /usr/bin/xmule
     41 /lib/libz.so.1.2.3      /usr/games/scorched3d
     41 /lib/libz.so.1.2.3      /usr/lib/OpenOffice.org1.1.4/program/libmozz.so
     48 /lib/libz.so.1.2.3      /usr/lib/R/bin/R.bin
     48 /lib/libz.so.1.2.3      /usr/lib/R/bin/libR.so
     31 /lib/libz.so.1.2.3      /usr/lib/erlang/erts-5.4/bin/beam
     31 /lib/libz.so.1.2.3      /usr/lib/erlang/erts-5.4/bin/beam.shared
     13 /lib/libz.so.1.2.3      /usr/lib/firefox-1.0.6/install/mozilla-installer-bin
     13 /lib/libz.so.1.2.3      /usr/lib/firefox-1.0.6/mozilla-installer-bin
     21 /lib/libz.so.1.2.3      /usr/lib/j2se1.3-sun/jre/lib/i386/libzip.so
     19 /lib/libz.so.1.2.3      /usr/lib/libphysfs-1.0.so.0.0.0
      2 /lib/libz.so.1.2.3      /usr/lib/perl5/vendor_perl/i386-linux/auto/Math/Pari/Pari.so
     19 /usr/lib/libphysfs-1.0.so.0.0.0 /lib/libz.so.1.2.3
$

Следущие две строчки:
     19 /lib/libz.so.1.2.3      /usr/lib/libphysfs-1.0.so.0.0.0
     19 /usr/lib/libphysfs-1.0.so.0.0.0 /lib/libz.so.1.2.3

означают, что нельзя определить, кто из библиотек "главнее", поэтому
показано и так и сяк.  На самом деле ясно, что libphysfs статически
слинкован с libz, а не наоборот.

Вот довольно актуальный экстракт из списка.

$ awk '$1>9&&$2~"^/lib/"&&$3~"bin/"' suspect
     24 /lib/libbz2.so.1.0.3	/usr/lib/R/bin/R.bin
     24 /lib/libbz2.so.1.0.3	/usr/lib/R/bin/libR.so
     25 /lib/libc-2.3.5.so	/usr/bin/wine-kthread
     68 /lib/libdb-4.2.so	/usr/bin/berkeley_db_svc
     46 /lib/libdb-4.2.so	/usr/bin/db_printlog
    112 /lib/libdb-4.2.so	/usr/lib/kdevbdb/bin/db_archive
    112 /lib/libdb-4.2.so	/usr/lib/kdevbdb/bin/db_checkpoint
    112 /lib/libdb-4.2.so	/usr/lib/kdevbdb/bin/db_deadlock
    112 /lib/libdb-4.2.so	/usr/lib/kdevbdb/bin/db_dump
    112 /lib/libdb-4.2.so	/usr/lib/kdevbdb/bin/db_load
    112 /lib/libdb-4.2.so	/usr/lib/kdevbdb/bin/db_printlog
    112 /lib/libdb-4.2.so	/usr/lib/kdevbdb/bin/db_recover
    112 /lib/libdb-4.2.so	/usr/lib/kdevbdb/bin/db_stat
    112 /lib/libdb-4.2.so	/usr/lib/kdevbdb/bin/db_upgrade
    112 /lib/libdb-4.2.so	/usr/lib/kdevbdb/bin/db_verify
    541 /lib/libdb-4.2.so	/usr/sbin/mysqld
     76 /lib/libdb-4.3.so	/usr/lib/kdevbdb/bin/db_archive
     76 /lib/libdb-4.3.so	/usr/lib/kdevbdb/bin/db_checkpoint
     76 /lib/libdb-4.3.so	/usr/lib/kdevbdb/bin/db_deadlock
     76 /lib/libdb-4.3.so	/usr/lib/kdevbdb/bin/db_dump
     76 /lib/libdb-4.3.so	/usr/lib/kdevbdb/bin/db_load
     76 /lib/libdb-4.3.so	/usr/lib/kdevbdb/bin/db_printlog
     76 /lib/libdb-4.3.so	/usr/lib/kdevbdb/bin/db_recover
     76 /lib/libdb-4.3.so	/usr/lib/kdevbdb/bin/db_stat
     76 /lib/libdb-4.3.so	/usr/lib/kdevbdb/bin/db_upgrade
     76 /lib/libdb-4.3.so	/usr/lib/kdevbdb/bin/db_verify
    491 /lib/libdb-4.3.so	/usr/sbin/mysqld
     14 /lib/libgcc_s.so.1	/usr/bin/glaxium
     14 /lib/libgcc_s.so.1	/usr/lib/j2se1.3-sun/bin/i386/native_threads/java_vm
     14 /lib/libgcc_s.so.1	/usr/lib/j2se1.3-sun/jre/bin/i386/native_threads/java_vm
     20 /lib/libglib-1.2.so.0.0.10	/usr/bin/sfidl
     14 /lib/libhistory.so.4.3	/bin/bash
     44 /lib/libhistory.so.4.3	/usr/bin/m68k-palmos-gdb
     27 /lib/libhistory.so.4.3	/usr/sbin/asterisk
     13 /lib/libiptables.so.0.0	/usr/sbin/fetchipac
     29 /lib/libiptc.so.0.0	/usr/sbin/fetchipac
     13 /lib/liblvm-10.so.1.0	/usr/sbin/lvm
     21 /lib/libnetlink.so	/sbin/tc
     19 /lib/libnfsidmap.so.0.1.0	/sbin/rpc.idmapd
     16 /lib/libnss_winbind.so	/usr/bin/net
     16 /lib/libnss_winbind.so	/usr/bin/nmblookup
     16 /lib/libnss_winbind.so	/usr/bin/ntlm_auth
     16 /lib/libnss_winbind.so	/usr/bin/pdbedit
     32 /lib/libnss_winbind.so	/usr/bin/rpcclient
     16 /lib/libnss_winbind.so	/usr/bin/smbcacls
     16 /lib/libnss_winbind.so	/usr/bin/smbclient
     16 /lib/libnss_winbind.so	/usr/bin/smbcontrol
     16 /lib/libnss_winbind.so	/usr/bin/smbcquotas
     32 /lib/libnss_winbind.so	/usr/bin/smbfilter
     16 /lib/libnss_winbind.so	/usr/bin/smbget
     16 /lib/libnss_winbind.so	/usr/bin/smbmount
     16 /lib/libnss_winbind.so	/usr/bin/smbpasswd
     16 /lib/libnss_winbind.so	/usr/bin/smbsh
     16 /lib/libnss_winbind.so	/usr/bin/smbspool
     16 /lib/libnss_winbind.so	/usr/bin/smbstatus
     16 /lib/libnss_winbind.so	/usr/bin/smbtree
     16 /lib/libnss_winbind.so	/usr/bin/smbwrapper.so
     16 /lib/libnss_winbind.so	/usr/bin/testparm
     16 /lib/libnss_winbind.so	/usr/bin/testprns
     16 /lib/libnss_winbind.so	/usr/bin/vfstest
     16 /lib/libnss_winbind.so	/usr/bin/wbinfo
     16 /lib/libnss_winbind.so	/usr/sbin/nmbd
     16 /lib/libnss_winbind.so	/usr/sbin/smbd
     16 /lib/libnss_winbind.so	/usr/sbin/swat
     16 /lib/libnss_winbind.so	/usr/sbin/winbindd
     18 /lib/libnss_wins.so	/usr/bin/gkrellm
   1718 /lib/libnss_wins.so	/usr/bin/net
   1328 /lib/libnss_wins.so	/usr/bin/nmblookup
   1455 /lib/libnss_wins.so	/usr/bin/ntlm_auth
   1279 /lib/libnss_wins.so	/usr/bin/pdbedit
   3436 /lib/libnss_wins.so	/usr/bin/rpcclient
   1718 /lib/libnss_wins.so	/usr/bin/smbcacls
   1718 /lib/libnss_wins.so	/usr/bin/smbclient
   1284 /lib/libnss_wins.so	/usr/bin/smbcontrol
   1718 /lib/libnss_wins.so	/usr/bin/smbcquotas
   3436 /lib/libnss_wins.so	/usr/bin/smbfilter
   1718 /lib/libnss_wins.so	/usr/bin/smbget
   1718 /lib/libnss_wins.so	/usr/bin/smbmount
   1718 /lib/libnss_wins.so	/usr/bin/smbpasswd
   1228 /lib/libnss_wins.so	/usr/bin/smbsh
   1718 /lib/libnss_wins.so	/usr/bin/smbspool
   1284 /lib/libnss_wins.so	/usr/bin/smbstatus
   1718 /lib/libnss_wins.so	/usr/bin/smbtree
   1724 /lib/libnss_wins.so	/usr/bin/smbwrapper.so
     30 /lib/libnss_wins.so	/usr/bin/sweep
     34 /lib/libnss_wins.so	/usr/bin/tdbbackup
     30 /lib/libnss_wins.so	/usr/bin/tdbdump
     30 /lib/libnss_wins.so	/usr/bin/tdbtool
   1279 /lib/libnss_wins.so	/usr/bin/testparm
   1233 /lib/libnss_wins.so	/usr/bin/testprns
   1718 /lib/libnss_wins.so	/usr/bin/vfstest
   1279 /lib/libnss_wins.so	/usr/bin/wbinfo
     12 /lib/libnss_wins.so	/usr/bin/xemacs-mule
     12 /lib/libnss_wins.so	/usr/bin/xemacs-mule-nextaw
     12 /lib/libnss_wins.so	/usr/bin/xemacs-nox-mule
   1718 /lib/libnss_wins.so	/usr/sbin/nmbd
     14 /lib/libnss_wins.so	/usr/sbin/pppd
   1718 /lib/libnss_wins.so	/usr/sbin/smbd
   1718 /lib/libnss_wins.so	/usr/sbin/swat
   1718 /lib/libnss_wins.so	/usr/sbin/winbindd
     22 /lib/libpopt.so.0.0.0	/usr/bin/botti
     22 /lib/libpopt.so.0.0.0	/usr/bin/irssi
     22 /lib/libpopt.so.0.0.0	/usr/bin/orbit-idl
     13 /lib/libproc-3.2.5.so	/usr/bin/free
     11 /lib/libproc-3.2.5.so	/usr/bin/top
     11 /lib/libproc-3.2.5.so	/usr/bin/vmstat
     65 /lib/libpthread-0.10.so	/usr/bin/wine-kthread
     30 /lib/libreadline.so.4.3	/bin/bash
     17 /lib/libreadline.so.4.3	/usr/bin/gdb
     16 /lib/libreadline.so.4.3	/usr/bin/lftp
    387 /lib/libreadline.so.4.3	/usr/bin/m68k-palmos-gdb
     30 /lib/libreadline.so.4.3	/usr/sbin/asterisk
     17 /lib/libz.so.1.2.3	/usr/bin/Xvnc
     29 /lib/libz.so.1.2.3	/usr/bin/xmule
     48 /lib/libz.so.1.2.3	/usr/lib/R/bin/R.bin
     48 /lib/libz.so.1.2.3	/usr/lib/R/bin/libR.so
     31 /lib/libz.so.1.2.3	/usr/lib/erlang/erts-5.4/bin/beam
     31 /lib/libz.so.1.2.3	/usr/lib/erlang/erts-5.4/bin/beam.shared
$

> Нужно теперь подумать, что делать с этим списком.
> Я бы его кому-нибудь продал.  Всего ничего, доллар за мегабайт. :)

Список suspect тоже продается. ;)

[-- Attachment #2: Type: application/pgp-signature, Size: 189 bytes --]

^ permalink raw reply	[flat|nested] 19+ messages in thread

end of thread, other threads:[~2005-10-08 21:13 UTC | newest]

Thread overview: 19+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2005-10-08 12:00 [devel] list of libraries within binaries (for sale or rent!) Alexey Tourbin
2005-10-08 13:02 ` Dmitry V. Levin
2005-10-08 13:11   ` Dmitry V. Levin
2005-10-08 14:26     ` [devel] " Alexey Tourbin
2005-10-08 14:33       ` Dmitry V. Levin
2005-10-08 15:07         ` Alexey Tourbin
2005-10-08 13:48   ` Alexey Tourbin
2005-10-08 14:28     ` Dmitry V. Levin
2005-10-08 14:51       ` Alexey Tourbin
2005-10-08 21:13   ` [devel] " Dmitry V. Levin
2005-10-08 13:06 ` [devel] Q: libattr Dmitry V. Levin
2005-10-08 14:29   ` [devel] " Alexey Tourbin
2005-10-08 14:34     ` Dmitry V. Levin
2005-10-08 14:59       ` Alexey Tourbin
2005-10-08 13:47 ` [devel] list of libraries within binaries (for sale or rent!) Alexander Bokovoy
2005-10-08 14:04   ` Dmitry V. Levin
2005-10-08 14:32     ` Alexander Bokovoy
2005-10-08 14:39       ` Dmitry V. Levin
2005-10-08 15:23         ` Alexander Bokovoy

ALT Linux Team development discussions

This inbox may be cloned and mirrored by anyone:

	git clone --mirror http://lore.altlinux.org/devel/0 devel/git/0.git

	# If you have public-inbox 1.1+ installed, you may
	# initialize and index your mirror using the following commands:
	public-inbox-init -V2 devel devel/ http://lore.altlinux.org/devel \
		devel@altlinux.org devel@altlinux.ru devel@lists.altlinux.org devel@lists.altlinux.ru devel@linux.iplabs.ru mandrake-russian@linuxteam.iplabs.ru sisyphus@linuxteam.iplabs.ru
	public-inbox-index devel

Example config snippet for mirrors.
Newsgroup available over NNTP:
	nntp://lore.altlinux.org/org.altlinux.lists.devel


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git