While trying to unmask armagetron (masked both by global package.mask and by not having an amd64 keyword), I couldn't get portage to accept the keyword specification I had in /etc/portage/package.keywords, which was this: games-action/armagetron amd64 I also add this to /etc/portage/package.unmask: games-action/armagetron When I try to emerge, I get this: !!! All ebuilds that could satisfy "armagetron" have been masked. !!! One of the following masked packages is required to complete your request: - games-action/armagetron-0.2.6.0 (masked by: missing keyword) # Chris Gianelloni <wolf31o2@gentoo.org> (24 Feb 2005) # Masked due to vulnerabilities and upstream being dead # Bug #81634 Why it's outputting the global mask comment as well I don't know -- if I add the keyword directly to the ebuild it seems fine. # emerge info Portage 2.0.51.22-r1 (default-linux/amd64/2005.0, gcc-3.4.4, glibc-2.3.5-r0, 2.6.11-gentoo-r9 x86_64) ================================================================= System uname: 2.6.11-gentoo-r9 x86_64 AMD Athlon(tm) 64 Processor 3500+ Gentoo Base System version 1.6.12 dev-lang/python: 2.3.5 sys-apps/sandbox: 1.2.8 sys-devel/autoconf: 2.13, 2.59-r6 sys-devel/automake: 1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.5 sys-devel/binutils: 2.16-r1 sys-devel/libtool: 1.5.18 virtual/os-headers: 2.6.11-r1 ACCEPT_KEYWORDS="amd64 ~amd64" AUTOCLEAN="yes" CBUILD="x86_64-pc-linux-gnu" CFLAGS="-O2 -march=athlon64" CHOST="x86_64-pc-linux-gnu" CONFIG_PROTECT="/etc /usr/kde/2/share/config /usr/kde/3/share/config /usr/lib/X11/xkb /usr/share/config /var/qmail/control" CONFIG_PROTECT_MASK="/etc/gconf /etc/terminfo /etc/texmf/web2c /etc/env.d" CXXFLAGS="-O2 -march=athlon64" DISTDIR="/usr/portage/distfiles" FEATURES="autoconfig distlocks sandbox sfperms strict" GENTOO_MIRRORS="http://mirror.gentoo.gr.jp" PKGDIR="/usr/portage/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync.gentoo.org/gentoo-portage" USE="amd64 X acpi alsa anthy apache2 avi berkdb bitmap-fonts cdparanoia cjk crypt curl dba doc dvd dvdr dvdread dxr3 eds encode esd fam flac font-server fortran gd gdbm gif gpm gtk gtk2 guile imap imlib ipv6 java javascript jp2 jpeg latex libwww lzo lzw lzw-tiff mad matroska mikmod mjpeg mng motif mp3 mpeg mpeg2 mysql ncurses nls nodrm nvidia offensive ogg oggvorbis opengl oss pam perl php plotutils png python qt quicktime readline real samba sdl ssl tcltk tcpd tetex theora tiff truetype truetype-fonts type1-fonts unicode usb userlocales vcd vorbis wmf xanim xim xine xml2 xmms xpm xrandr xv xvid xvmc yahoo zlib userland_GNU kernel_linux elibc_glibc" Unset: ASFLAGS, CTARGET, LANG, LC_ALL, LDFLAGS, LINGUAS, MAKEOPTS
if "games-action/armagetron" is keyworded "~x86" you need to add this to package.keywords also if tou are on amd64.
This is not the correct way to achieve this goal. You need to edit the ebuild directly and add the needed keyword there; regenerate digests after that, i.e., run ebuild /usr/portage/games-action/armagetron/armagetron-0.2.6.0.ebuild digest If you emerge gentoolkit-dev then you could use ekeyword utility that will help you modify ebuild keywords - see man ekeyword You can also put the customized ebuild into your local portage overlay so that the changes do not get overwritten on the next emerge sync. Also see man portage for proper syntax of package.unmask entries. Hope that helps.