stale dependencies in pkgdb
andrew.chace at gmail.com
Fri Feb 10 12:36:12 PST 2006
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!
More information about the freebsd-questions