stale dependencies in pkgdb

Andrew 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!

-Andrew



More information about the freebsd-questions mailing list