On Saturday 14 June 2008 11:53:51 Jorge Manuel B. S. Vicetto wrote:
> What's the need for a GLEP covering "live" ebuilds and what's wrong with
> -9999 ebuilds? I made myself that question when GLEP54 was submitted and
> during the initial discussion. At that time, I wasn't convinced of the
> need for such a GLEP. Now I think it can be very useful.
> Why did I change my mind? Let's have a concrete use case.
>
> Updating the live ebuilds for compiz, can be a mess. If the ebuilds
> aren't updated in the correct order, the process will fail and leave
> users wondering why it failed. What we need is a way to ask the PM to
> update compiz-fusion and or fusion-icon and all its "live" deps.

Ok, here's a silly idea - 

tag the ebuilds with metadata. We already have RESTRICT, why not add a "LIVE" 
variable. The package manager can then treat all ebuilds with that tag 
differently. Scripts can find them easily. It is forwards and backwards 
compatible and doesn't cause any user-visible changes.

Portage 2.2 and others support sets, portage 2.2 even supports dynamic sets 
like the "@preserved-rebuild". Shouldn't be that hard to add a "live-ebuilds" 
dynamic set.
(Comments on the feasibility of my idea from portage people appreciated)

> Currently, users with Portage have to run something like:
> ~  emerge -av1 compiz compiz-bcop compiz-fusion-plugins-main \
> ~    compiz-fusion-plugins-extra compiz-fusion-plugins-unsupported \
> ~    emerald emerald-themes libcompizconfig compizconfig-python \
> ~    ccsm compizconfig-backend-gconf compizconfig-backend-kconfig \
> ~    compiz-fusion fusion-icon

That is the situation where you really love the sets in portage 2.2 - by 
default portage will re-merge every ebuild from a set when run as "emerge 
@your-custom-set". Now the overlay maintainer just has to provide the sets 
with the overlay and users are happy.

> The problem with the -9999 ebuilds is that we need to force manually the
> reinstalls and that the PM isn't able to determine if a dep needs to be
> updated or not from the ebuild revision.

If you use sets the updating part is easy, and in situations like emerge -e 
world you want to update them anyway.

> So, running a reinstall with a world update is not desirable and having
> to manually mask/unmask live ebuilds can also be a mess.

I don't follow - if you want to update everything everything gets upgraded.

What you seem to want is a way to make certain revisions "sticky" so that they 
don't get updated, that would need something like a "package.revisions" file 
like package.keywords containing "category/package revision" lines.

> Having a method that lets the user choose to reinstall all the live
> ebuilds every N days is an interesting option. Having a method that lets
> the user choose that the PM should check the scm tree and update the
> package if there's a new revision would be even better.

I think that can be easily done if there's an easy way to pull the installed 
revision and currently available. The last discussions about that stalled 
without reaching agreement.

> But for most cases, if we define a method to identify "live" ebuilds so
> that the PM can implement a "--dl-reinstall-scm" like option, would be
> "good enough" or at least a "very good start".

I agree

> Another case where having a method to let PMs identify "live" ebuilds is
> important is for running QA scripts like repoman or pcheck.
> Instead of having pcheck complain about dropped keywords for version
> 9999, I would like to have pcheck complain about "live" ebuilds with
> keywords. Not all "live" trees are unstable and thus some might not like
> this change. However, if a PM is able to determine "live" ebuilds, it
> might be easier to have alternative tests that allow testing for dropped
> keywords or for the existence of keywords just for "live" ebuilds.

That's what metadata is there for. And ebuilds don't mind carrying a bit 
more ... after all it's just one line of text.
-- 
gentoo-dev@lists.gentoo.org mailing list

Reply via email to