find-packages-using-libs: request for feedback

Anton Berezin tobez at tobez.org
Tue Jul 12 23:15:07 UTC 2011


Hi,

After the recent icu and libgcrypt updates I decided to try and find a
way to avoid rebuilding everything which depends on a particular
port when its shared library version is bumped.

Previously I was profitably using sysutils/libchk, producing in the end
the list of packages which *have* to be rebuilt.  Its use, however,
requires some substantial massaging of the output it produces.

So I wrote a little tool which automates such tasks.  As a side effect,
it can also be used to simply list all packages using a shared library
(or libraries).

Fetch it at https://github.com/tobez/find-packages-using-libs .

Usage examples:

Finding every installed package using libgcrypt:

    ./find-packages-using-libs libgcrypt.so\*

Finding every installed package using libgcrypt OR libicu*:

    ./find-packages-using-libs libgcrypt.so\* libicu*

Finding every installed package which uses libraries that do
not exist (or exist in non-standard paths without any RPATH):

    ./find-packages-using-libs -b

Finding every installed package which uses a non-existing libgcrypt:

    ./find-packages-using-libs -b libgcrypt.so\*

There are a couple of minor options as well,
but for now, this about covers it.

I am interested in you feedback:

- would you use it?  does it solve a problem for you, or do you foresee
  it will solve a problem for you in the future?
- does it work for you?  any bugs?
- any wishes with regard to missing features?

Most of the package-walking code shamelessly (for a good reason) stolen
from the perl-after-upgrade script.

The code is in public domain.

Cheers,
\Anton.
-- 
Our society can survive even a large amount of irrational regulation.
  -- John McCarthy


More information about the freebsd-ports mailing list