On 01/17/2012 08:43 PM, Kevin Oberman wrote:
On Tue, Jan 17, 2012 at 6:09 PM, Matthew D. Fuller<fulle...@over-yonder.net
wrote:

On Tue, Jan 17, 2012 at 05:51:11PM -0800 I heard the voice of
Kevin Oberman, and lo! it spake thus:

The manual method would be to install sysutils/bsdadminscripts and
use a command like `pkg_libchk | grep -E "xcb-.+.so" | sort>
tmpfile` to provide a list of ports that actually are linked to the
libraries in question.

FWIW, I some years ago wrote up a quick&dirty perl script to find
missing or out of date libs.  It pulls out and warns about missing
libs, stuff in compat/pkg (held over after upgrade by
portupgrade/portmaster), and stuff in the base /usr/lib/compat (handy
when crossing major versions, and potentially other big upheavals).
It's only about a k; I'll attach it.

I pretty much wind up ldd'ing /usr/local/{bin/*,sbin/*,lib/*.so*} and
running the results through the script.  Usually something like `cd
/usr/local/bin ; ldd *>  /tmp/ldd.bin ; lddchk.pl<  /tmp/ldd.bin`.
That tells me the files; then I can use my brain or pkg_which to tell
me which packages are involved.  I'm happy with that level of
automation, because I like keeping my brain firmly in the loop on such
things, but it wouldn't be too hard to extend it to do its own walks
over the filesystem, etc.


Take a look at pkg_chklib. It is  quite optimized and runs multiple checks
in parallel so that
you can run it on 1100 ports in about 1.5 minutes. Here is a sample o this
output:
%pkg_libchk | grep -E "xcb-.+.so" | sort
gok-2.30.1,1: /usr/local/bin/create-branching-keyboard misses
libxcb-atom.so.1
gok-2.30.1,1: /usr/local/bin/create-branching-keyboard misses
libxcb-aux.so.0
gok-2.30.1,1: /usr/local/bin/create-branching-keyboard misses
libxcb-event.so.1
gok-2.30.1,1: /usr/local/bin/gok misses libxcb-atom.so.1
gok-2.30.1,1: /usr/local/bin/gok misses libxcb-aux.so.0
gok-2.30.1,1: /usr/local/bin/gok misses libxcb-event.so.1
nautilus-open-terminal-0.18_4:
/usr/local/lib/nautilus/extensions-2.0/libnautilus-open-terminal.so misses
libxcb-atom.so.1
nautilus-open-terminal-0.18_4:
/usr/local/lib/nautilus/extensions-2.0/libnautilus-open-terminal.so misses
libxcb-aux.so.0
nautilus-open-terminal-0.18_4:
/usr/local/lib/nautilus/extensions-2.0/libnautilus-open-terminal.so misses
libxcb-event.so.1
vlc-1.1.13,3: /usr/local/lib/vlc/plugins/control/libglobalhotkeys_plugin.so
misses libxcb-keysyms.so.1
vlc-1.1.13,3:
/usr/local/lib/vlc/plugins/video_output/libxcb_window_plugin.so misses
libxcb-keysyms.so.1
yelp-2.30.2_1: /usr/local/bin/yelp misses libxcb-atom.so.1
yelp-2.30.2_1: /usr/local/bin/yelp misses libxcb-aux.so.0
yelp-2.30.2_1: /usr/local/bin/yelp misses libxcb-event.so.1
%

And it is already in ports.

And in my other email, I might have reinvented the wheel!
_______________________________________________
freebsd-ports@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-ports
To unsubscribe, send any mail to "freebsd-ports-unsubscr...@freebsd.org"

Reply via email to