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>