On Thu, Sep 21, 2006 at 01:38:59PM +0200, Luca Barbato wrote:
> Alin Nastac wrote:
> >I reckon this could be solved by yet another *DEPEND variable. The only
> >atoms accepted by this variable would be "CATEGORY/PN". Every time when
> >a package gets updated from PV1 to PV2 (distinct versions, revisions
> >will not count), portage will automatically re-emerge those packages
> >that depend on it.
> It would require revdep resolution on emerge... how painful would be?
Off the top of my head, adding revdeps (period) for unmerge
functionality (fex) is the harder part; slipping something of this
sort in is just a logic tweak.
The problem with this proposal however is that it's attempting
automatic revdep based off of version; _any_ non-rev version bump is
way too rebuild happy.
Proposal I was pushing a while back was addition of a metadata key;
it's not exactly .so version, but pretty close- a _manually_
maintained counter var in the ebuild that represents the abi
compatibility for that packages versions.
Example would be openssl-0.9.7, you stick BINCOMPAT=0.9.7 in it,
in openssl-0.9.8, you stick BINCOMPAT=0.9.8 in it, for a replace op
the resolver sees that it's breaking compatibility and knows to
rebuild any revdeps.
Why have the explicit var? Because 0.9.7a through 0.9.7c may all be
compatible, but 0.9.7d isn't. If you force an automatic algo that
tries to (effectively) guess, you get a lot of rebuilds through a,b,c,
end result being folks likely update less because it becomes a bigger
pain in the ass.
There is one flaw with this though; packages can provide both
libraries _and_ binaries. Our dependencies don't represent whether
the dep is actual linkage, or just commandline consuming, so (using
the openssl example) any package that invokes openssl via the
commandline to do a few simple chksum ops gets rebuilt, despite the
fact it wasn't affected by linkage change ups.
So... short version, at least what jstubbs/marius/myself hashed out in
irc a long while back, need binding dependencies and actual tracking
of the lib breakage in the metadata.
Alternative to shoving an extra key in would be extending slot rules,
but that can be somewhat ugly.
My 2 cents, for what its worth.