Dnia 2015-01-21, o godz. 11:05:01 Alexis Ballier <aball...@gentoo.org> napisał(a):
> > > > 2. Subslots work correctly. Rebuilds are forced when the chosen > > > > library is upgraded. Moreover, USE flag change causes a rebuild > > > > when user decides to change the ffmpeg provider. > > > > > > No offense, but this argument is complete crap. You should rather > > > fix portage bugs than propose to introduce tree-wide changes to > > > hide them... More precisely: || ( a:= b c:= d ) is perfectly > > > defined (in the "what it means" sense, not in PMS sense). When the > > > package is built, if 'a' is satisfied then a (and its subslot) is > > > added to the subslot list of the package; ditto for c. You end up > > > with a list of subslot deps, that you can store in vdb or whatever, > > > and use that to decide when to rebuild the package. > > > > Following a specification is not a bug. I could argue here a lot > > but... just implement it. And return to us when you do. We had an > > item for this for EAPI 6, and it was removed because nobody > > volunteered to implement it. In fact, nobody even were able to fully > > specify what it should do... but if you want to discuss that, please > > start a new thread, possibly at the -pms list. > > Above is a simple algorithm that works in all cases. What you're asking > me to do is "go beg pms list to allow something they don't want because > the subslot/:= spec was poorly written and thought of". I already gave > you the solution, don't count on me for the administrative work :=) > (NB: everytime I tried to improve/fix something in pms I failed > miserably, so that I have no other choice but giving up on this, check > bgo) No, it works in the one case you thought of. Two quick issues: 1. What does || ( a b:= c:= ) mean? i.e. only some having subslots. 2. What does || ( a:= b:= ) mean when a and b can be both installed? Adding a very specific PMS rule for two packages doesn't sound like a very good idea to me. > Moreover, when I bumped ffmpeg subslot, portage did rebuild all those > packages with || ( := := ) deps properly for me. So, you'll have to be > a bit more specific on what goes wrong than 'broken || ( libav:= > ffmpeg:= )'... I already told you that before. Try switching from ffmpeg to libav, and see what mess it causes. I'll summarize it for you: 1. if you have dynamic-deps enabled, portage will want to install both ffmpeg (because of :=) and libav (because of ||). The effective deps will look like: || ( ffmpeg:0/51= libav ) ffmpeg:0/51= 2. If you have dynamic-deps disabled, portage will happily switch impl without rebuilding revdeps (breakage). Afterwards, it will allow upgrading the other dep (libav) without rebuilds. The effective deps will look like: || ( ffmpeg:0/51= libav ) -- Best regards, Michał Górny
pgpXyKkWYNzeN.pgp
Description: OpenPGP digital signature