Skip site navigation (1)Skip section navigation (2)
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>