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