There might a problem with some options to emerge when trying to emerge masked packages. The following is an example which worked fine when without specifying any option:
# emerge -a rpm-5.0.3.ebuild
*** emerging by path is broken and may not always work!!!
These are the packages that would be merged, in order:
Calculating dependencies -
*** You are emerging a masked package. It is MUCH better to use
*** /etc/portage/package.* to accomplish this. See portage(5) man
*** page for details.
>>> Waiting 10 seconds before starting...
>>> (Control-C to abort)...
Continuing... in: 10 9 8 7 6 5 4 3 2 1
Traceback (most recent call last):
File "/usr/bin/emerge", line 7852, in <module>
retval = emerge_main()
File "/usr/bin/emerge", line 7846, in emerge_main
myopts, myaction, myfiles, spinner)
File "/usr/bin/emerge", line 7121, in action_build
File "/usr/bin/emerge", line 3833, in display
pkg = self._pkg_cache[tuple(x)]
KeyError: ('ebuild', '/', 'app-arch/rpm-5.0.3', 'merge')
Jan, you do realize that you are expected to pass an option that specifies a *package* name, not the .ebuild file, right?
I don't see any reason why normal masking rules should not apply simply because a package path is given rather than a normal atom. So, I think the proper solution is to fix the masking behavior so that it's consistent with normal atoms.
Created attachment 149758 [details, diff]
fix the KeyError
This is fixed in 2.1.5_rc4.