Date: Fri, 10 Feb 2006 14:35:45 -0600 From: Andrew <andrew.chace@gmail.com> To: roberthuff@rcn.com, donaldjoneill@gmail.com, freebsd-questions@freebsd.org Subject: Re: stale dependencies in pkgdb Message-ID: <1139603745.58491.27.camel@netvista.network> In-Reply-To: <17388.62292.955134.229885@jerusalem.litteratus.org> References: <1139589051.2185.8.camel@netvista.network> <17388.49778.982280.245532@jerusalem.litteratus.org> <1139596918.58491.3.camel@netvista.network> <17388.62292.955134.229885@jerusalem.litteratus.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Fri, 2006-02-10 at 15:11 -0500, Robert Huff wrote: > Andrew writes: > > > I guess what is unclear to me is how I go about fixing the stale > > dependencies. I was under the impression that portupgrade would > > take care of the dependencies for a particular port, and the > > "stale dependency" was just an error in the package database > > (pkgdb). Is this not the case? > > My understanding of how things work: > Consider two ports a and b, such that a-4.6 is a dependency for > b-2.2. If a updates to 4.7, and I run "portupgrade -r a", b will > also be updated. > But if I run "portupgrade a" (or there's a bug in the programs/ > scripts) b will not update ... and pkgdb will complain about about a > stale (i.e. unsatisified) dependency. This also happens when you > replace one port with another that provides the same functionality. > For example: many gnome ports depend on openldap. But I use > openldap-sasl - and every time I update one of those ports I have to > manually correct the dependency. (There's probably a way to do that > automatically, but I haven't figured out how.) > And now there's a "stale dependency". This can be expecially > frustrating if the dependant port hasn't been updated for years; the > required port may have been upgraded beyond recognition, no longer > available, absorbed into another port, etc.. > As to how, try this as a first approximation. Run [kgdb -f, > and reply "no" to all changes. Write down the port:dependency > pairs, and then anaylze the dependencies. Has it been > installed. but not registered? Replaced by a newer version? Two > useful files are /usr/ports/UPDATING and /usr/ports/MOVED. > My response here is mostly guesswork, educated by several years > of doing this and sometimes asking for help. In the case above, > fixing a-4.6 with a-4.7 is usually a no-brainer. Fixing a-4.6 with > a-5.0, however, would require reseaech (and warrant keeping a backup > of the pkgdb). Sorry; just fired off a message to the list before I got this one... Anyway, I think I've got it now. I believe I was correct in thinking that portupgrade usually takes care of dependencies; the portion that I was missing was that pkgdb catches what discrepancies do appear between what is installed and what is required. One of the ports that was giving me troubles was gamin; which I've just noticed seems to be similar to your situation with openldap-sasl (gamin/fam). Another was cdrtools (cdrtools/cjk-cdrtools). I've corrected both manually using "pkgdb -F", which I think solves my problem (for now, at least :-) ). Thank you for your help! -Andrew
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1139603745.58491.27.camel>