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.
> >
> >Thoughts?
> >
> 
> 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.
~harring

Attachment: pgpQ0KLtqw55W.pgp
Description: PGP signature

Reply via email to