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!
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
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?
(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.
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.
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.
(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.
(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.
(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.