Date: Sat, 29 Sep 2001 00:15:52 -0400 From: Andrew J Caines <A.J.Caines@halplant.com> To: Mike Meyer <mwm@mired.org>, kbstew99@hotmail.com Cc: questions@freebsd.org Subject: Re: Tracking down libpng.so.4 package dependency Message-ID: <20010929001552.V39250@hal9000.servehttp.com> In-Reply-To: <15284.53157.808642.644254@guru.mired.org>; from mwm@mired.org on Fri, Sep 28, 2001 at 02:29:41PM -0500 References: <15284.53157.808642.644254@guru.mired.org> <3BB4D224.99CA89CF@owt.com> <103067005@toto.iv> <15284.53157.808642.644254@guru.mired.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Mike,
> > I've updated all the packages in /var/db/pkg/png-1.2.0/+REQUIRED_BY [2],
> > which I realise is probably circular.
> If you'd saved the one from the previous version, it wouldn't have
> been :-).
Yup.
> Ugh - why didn't the last paragraph get wrapped?
User error. Sorry.
> Question one: What is a "forced udpate"?
portupgrade will not build and install a port if the current version is
already installed. --force tells it to go ahead anyway.
> Are the ports fully cleaned before you make them?
Yes. For paranoia's sake I manually cleaned before building stuff with a
few dependencies.
> You can get a list of all the files in the ports tree that reference
> png like so:
> cd /usr/ports
> find `pkg_info -aoq` -type f | xargs grep '[^.]png'
This finds a few with direct dependencies, but it's a bit noisy and didn't
give any clues.
> If you find a file in a port that you haven't updated, you might try
> updating that port, then rebuilding the galeon port.
I think galeon itself, along with all but maybe one package, are built
right, however the cascading dependencies are including that one thing (a
.so I presume) which still links to libpng.so.4.
By way of evidence:
# ldd `which galeon-bin` | egrep png
libpng.so.5 => /usr/local/lib/libpng.so.5 (0x283d8000)
libpng.so.4 => not found (0x0)
What a reall need is a treelike ldd output. From ldd(1)
ldd displays all shared objects that are needed to run the given
program. Contrary to nm(1), the list includes ``indirect''
dependencies that are the result of needed shared objects which
themselves depend on yet other shared objects.
For example,
# ldd -r /usr/bin/dyno
/usr/bin/dyno:
libfoo.so
libbar.so
libbaz.so.2
libbig.so.5
libabc.so.2
libdef.so.1
Kent,
> There was an example given for png a while back it went like
> portinstall -irf png
> This was to check all of the installed ports that use png and make them
> consistent.
That appears to build and install the port along with with all packages
which depend on the one built. This would be a huge build, which I'd
prefer not to start until I'm ready to give up on a cleverer solution.
This is almost equivalent to how I usually use portupgrade (--new
--upward-recursive --recursive --sudo --uninstall --verbose), but with
force for everything.
-Andrew-
--
_______________________________________________________________________
| -Andrew J. Caines- Unix Systems Engineer A.J.Caines@halplant.com |
| "They that can give up essential liberty to obtain a little temporary |
| safety deserve neither liberty nor safety" - Benjamin Franklin, 1759 |
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20010929001552.V39250>
