Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 385161 - sys-apps/portage-2.1.10.20: package.mask doesn't work as expected: Can't mask a slot any more!
Summary: sys-apps/portage-2.1.10.20: package.mask doesn't work as expected: Can't mask...
Status: RESOLVED NEEDINFO
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core - Configuration (show other bugs)
Hardware: All Linux
: Normal critical
Assignee: Portage team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-10-01 07:56 UTC by Klaus Kusche
Modified: 2011-10-06 14:49 UTC (History)
0 users

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Klaus Kusche 2011-10-01 07:56:51 UTC
I have "x11-libs/wxGTK" in my world file
and "=x11-libs/wxGTK-2.9.1.1" in my /etc/portage/package.mask,
because emerging wxGTK-2.9.1.1 fails (it is not compatible with libpng 1.5).
wxGTK-2.8.12.0 is installed to satisfy the wxGTK in world.

Up to now, "emerge --update world" was happy with that:
It ignored wxGTK-2.9.1.1 as dictated by package.mask
and accepted that wxGTK-2.8.12.0 is installed for wxGTK.

I just upgraded to portage-2.1.10.20,
and now "emerge -pv --update world" or "emerge -pv wxGTK" shows
[ebuild  NS   #] x11-libs/wxGTK-2.9.1.1 [2.8.12.0]

So it realizes that this version is masked,
but nevertheless wants to install it,
even with --autounmask turned off!

It *doesn't* show any mask file changes at the end of its output,
it just wants to emerge that masked version without any changes
to the masks.

I found no way to tell emerge that this version is broken
and *cannot* be emerged!
Comment 1 Zac Medico gentoo-dev 2011-10-02 18:59:59 UTC
Are you using any overlays? It could be package.unmask from an overlay, like those in bug 385333.

Also, a command like this helps to find any local configuration settings that you may have missed:

  grep -r x11-libs/wxGTK /etc/portage
Comment 2 Klaus Kusche 2011-10-02 19:29:26 UTC
I've layman installed, but I don't have any active overlays and no other
package.unmask.

However, I have an unmask for x11-libs/wxGTK in my /etc/portage/package.unmask
(because the whole wx 2.9 series is masked and must be explicitely unmasked).

However, up to last weekend the more specific 
"=x11-libs/wxGTK-2.9.1.1" in my /etc/portage/package.mask took precedence
over the more general "x11-libs/wxGTK" in my /etc/portage/package.unmask:
emerge tried to install any of the masked wxGTK builds except 2.9.1.1.
If there was no other version, it installed nothing.

Since saturday, the behaviour is reversed: 
package.unmask takes precedence over package.mask.

Now, how do I unmask a generally masked package, but mask a specific version
with the new behaviour?
Comment 3 Zac Medico gentoo-dev 2011-10-02 19:38:09 UTC
(In reply to comment #2)
> However, I have an unmask for x11-libs/wxGTK in my /etc/portage/package.unmask
> (because the whole wx 2.9 series is masked and must be explicitely unmasked).

This is expected. The package.unmask is supposed to override package.mask in this way, as this is how it is designed to word.

> However, up to last weekend the more specific 
> "=x11-libs/wxGTK-2.9.1.1" in my /etc/portage/package.mask took precedence
> over the more general "x11-libs/wxGTK" in my /etc/portage/package.unmask:
> emerge tried to install any of the masked wxGTK builds except 2.9.1.1.
> If there was no other version, it installed nothing.

This is an unexpected anomaly. Let's neglect it, since it doesn't fit the designed behavior, and if you can't reproduce now then it's irrelevant.

> Since saturday, the behaviour is reversed: 
> package.unmask takes precedence over package.mask.
> 
> Now, how do I unmask a generally masked package, but mask a specific version
> with the new behaviour?

Don't put broad atoms in package.unmask, since it's designed to override package.mask. Because of the way that it's designed to work, you really need to put the broad atoms in package.mask, and the more specific atoms in package.unmask.
Comment 4 David J Cozatt 2011-10-02 19:40:29 UTC
Some further and perhaps related things I see with this version-

If a package is already emerge'd it will no longer merge again unless there is a change made to say USE and emerge run with -uND

Also emerge -vp pkgname yields no output if already installed.
Comment 5 Klaus Kusche 2011-10-02 19:46:36 UTC
Ok, then I had wrong assumptions about how masking is expected work.
I assumed "more specific atoms override general ones".

Everything's fine if I remove the unmask for wxGTK.
Comment 6 Zac Medico gentoo-dev 2011-10-02 19:55:03 UTC
(In reply to comment #4)
> If a package is already emerge'd it will no longer merge again unless there is
> a change made to say USE and emerge run with -uND
> 
> Also emerge -vp pkgname yields no output if already installed.

It sounds as if you have --noreplace or --selective set in EMERGE_DEFAULT_OPTS.
Comment 7 Sebastian Luther (few) 2011-10-06 14:33:40 UTC
(In reply to comment #6)
> (In reply to comment #4)
> > If a package is already emerge'd it will no longer merge again unless there is
> > a change made to say USE and emerge run with -uND
> > 
> > Also emerge -vp pkgname yields no output if already installed.
> 
> It sounds as if you have --noreplace or --selective set in EMERGE_DEFAULT_OPTS.

Feel free to reopen if you can't figure out why this happens. Closing as NEEDINFO.
Comment 8 Zac Medico gentoo-dev 2011-10-06 14:49:16 UTC
(In reply to comment #6)
> (In reply to comment #4)
> > If a package is already emerge'd it will no longer merge again unless there is
> > a change made to say USE and emerge run with -uND
> > 
> > Also emerge -vp pkgname yields no output if already installed.
> 
> It sounds as if you have --noreplace or --selective set in EMERGE_DEFAULT_OPTS.

It could also be --newuse, since that implies --selective.