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

Attachment: pgpXyKkWYNzeN.pgp
Description: OpenPGP digital signature

Reply via email to