Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 17 Jan 2012 22:54:31 -0600
From:      Stephen Montgomery-Smith <stephen@missouri.edu>
To:        Kevin Oberman <kob6558@gmail.com>
Cc:        ports@freebsd.org, "Matthew D. Fuller" <fullermd@over-yonder.net>
Subject:   Re: Upgrading libs with many dependent ports
Message-ID:  <4F165087.8000306@missouri.edu>
In-Reply-To: <CAN6yY1uFbWq2foY-wp4ECeFJwLijFSso6AzNWpy-PgcwiJor_g@mail.gmail.com>
References:  <CAN6yY1t7xAdWvGQvDQMksfSA2E6wdFryd0BUFKzNGvqUOhWZsg@mail.gmail.com>	<20120118020928.GE509@over-yonder.net> <CAN6yY1uFbWq2foY-wp4ECeFJwLijFSso6AzNWpy-PgcwiJor_g@mail.gmail.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On 01/17/2012 08:43 PM, Kevin Oberman wrote:
> On Tue, Jan 17, 2012 at 6:09 PM, Matthew D. Fuller<fullermd@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!



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4F165087.8000306>