Apparently, though unproven, at 19:13 on Thursday 28 October 2010, Jarry did 
opine thusly:

> Hi,
> how can I unmask (generally) certain M~ masked package and
> mask one particular version of that package? I want to use
> that package, but skip just one "x.y.z" upgrade, and continue
> with any future higher upgrades ("x.y.z+1").
> 
> So I entered tree/package in /etc/portage/package.unmask, and
> tree/package_x.y.z into /etc/portage/package.mask. But this
> does not work, that "x.y.z" version still wants to be installed...

portage is fighting you.

unmask has priority over mask, so unmasking everything and masking a specific 
version will not work - the first rule will prevail.

You must come up with some prefix operators for unmask that will exclude the 
one you want to mask. For example, say you wanted to mask version 4:

unmask:
<cat/package-4
>cat/package-4

mask:
=cat/package-4

But this is fragile and will break way too often. What if you later also want 
to mask version 7? portage doesn't give you a boolean AND or any way I know of 
to specify a range of versions. So you have to keep an eye on it manually, and 
tweak as necessary. Or you could just list exactly every version for which 
there's an ebuild and add it to the appropriate package.* file

This is a definite shortcoming in portage, it warrants a feature request at 
b.g.o.

-- 
alan dot mckinnon at gmail dot com

Reply via email to