On Sat, 4 Apr 2009 13:31:35 +0200
Sebastian Günther <sam...@guenther-roetgen.de> wrote:

> * Alan McKinnon (alan.mckin...@gmail.com) [04.04.09 09:57]:
> > 
> > emerge --lock <some-package-some-version>
> > 
> I find this suggestion very good, and would like to ask the more 
> experienced participants, if such thing was thought of before.
> 
> I'm thinking about some options to freeze a system totally, servers 
> would like this, and some options to gradually move back from testing
> to stable.

This is like what I've been working on for myself, keeping the convenience of 
emerge world for ebuild revisions but not moving most packages to the next 
version.

> 
> That was the thing that annoyed me in the last weeks:
> a simple possibility to say: hold this packageversion until it is
> back to stable.

So far, with masking the next major version in package.mask, all I've gotten is 
‑rN ebuilds.

It's an ugly mess of scripting, but it did what I intended so far, that some 
key packages will stay at current version for a while, some keep closer to 
current offerings (or from an overlay, or whatever) and others won't register 
at all every time I sync.

> 
> So I'm suggesting the following new options for emerge:
> 
> --freeze: hold this package version *and* revision

Mask anything '>' current installed ebuild version.

> --hold: hold this package version, but allow revision updates

This by masking '>=' next version is what I did, but:

It'd be helpful to know for this purpose how the versioning of the release 
corresponds to the ebuild. Like ${package_major_release_version_position} or 
something. I don't *think* that's part of the spec yet.

> --hold-til-stable: hold this package, until it hits stable, and then
> use the stable version.

This should be doable.
 
> --testing: set the ~x86 keyword for this package and necessary 
> dependencies

I think "autounmask" is for that, no? Never used it myself. Unmasking specific 
versions is the trick, rather than a blanket unmask for a package. IDK how 
that's handled.

If you move package.keywords you'll be offered a downgrade for anything not 
stable, grep out the packages (formerly) in package.keywords from emerge -p 
world to see if they are still unstable.

> I know that this is done relatively easy for one package, but with 
> sets this can become a really powerful feature.

Haven't looked into sets, but it sounds great.

> --copy-to-local: make a local overlay entry for that package

++

> I would gladly help to implement this, but I did not read anything
> about becoming a dev.

I *think* all you need is some way to read the caches and in your favourite 
language make something that works. '-)

For example:

https://projects.gentooexperimental.org/eix/browser/trunk/doc/format.txt.in

For /var/cache/eix... and /usr/portage/metadata/cache is pretty 
straightforward...

app-portage/portage-utils
small and fast portage helper tools written in C

 qcache <action> <args>
              : search the metadata cache

These tools probably could be incorporated into a set of scripts to run after 
emerge and do things like you want. Since this is important to me as well, I 
might just look a little further. ;-)

Cheers,

-- 
 |\  /|        |   |          ~ ~  
 | \/ |        |---|          `|` ?
 |    |ichael  |   |iggins    \^ /
 michael.higgins[at]evolone[dot]org

Reply via email to