According to this posting, it is possible to use pypy for emerge: http://forums.gentoo.org/viewtopic-p-7002256.html Reproducible: Always Steps to Reproduce: 1. USE="pypy1_9 -python2 -python3" emerge portage 2. note that /usr/bin/emerge runs with /usr/bin/python, not /usr/bin/pypy Actual Results: Note that /usr/bin/emerge runs with /usr/bin/python, not /usr/bin/pypy Expected Results: I expected pypy to be used as the Python interpreter for executing emerge. The ebuild file looks like the shebang line should be modified, but it's not happening. I can hand-edit /usr/bin/emerge to force use of pypy and it seems to work. equery reports that portage has a pypy1_9 USE flag. # equery hasuse pypy1_9 * Searching for USE flag pypy1_9 ... [IP-] [ ] sys-apps/portage-2.2.0_alpha135:0 which also matches what's in the ebuild: IUSE="build doc epydoc +ipc linguas_pl pypy1_9 python2 python3 selinux xattr" But, "equery uses portage" doesn't seem to know about the pypy1_9 USE flag: # equery uses portage [ Legend : U - final flag setting for installation] [ : I - package is installed with flag ] [ Colors : set, unset ] * Found these USE flags for sys-apps/portage-2.2.0_alpha135: U I - - build : !!internal use only!! DO NOT SET THIS FLAG YOURSELF!, used for creating build images and the first half of bootstrapping [make stage1] - - doc : Adds extra documentation (API, Javadoc, etc). It is recommended to enable per package instead of globally - - epydoc : Build html API documentation with epydoc. - + ipc : Use inter-process communication between portage and running ebuilds. - - linguas_pl : Polish locale - - python2 : Use python2 as Python interpreter. - - python3 : Use python3 as Python interpreter. + + xattr : Adds support for extended attributes (filesystem-stored metadata) Here's what I have in package.use: # cat /etc/portage/package.use/10portage.use >=sys-apps/portage-2.2 pypy1_9 -python2 -python3 -linguas_pl xattr And here's details on my pypy installation: # equery list pypy * Searching for pypy ... [IP-] [ ] dev-python/pypy-1.9-r1:1.9 x201~# equery uses pypy [ Legend : U - final flag setting for installation] [ : I - package is installed with flag ] [ Colors : set, unset ] * Found these USE flags for dev-python/pypy-1.9-r1: U I + + bzip2 : Use the bzlib compression library - - doc : Adds extra documentation (API, Javadoc, etc). It is recommended to enable per package instead of globally - - examples : Install examples, usually source code + + jit : Enable the JIT compiler + + ncurses : Adds ncurses support (console display library) - - sandbox : Enable sandboxing functionality - - shadowstack : Use a shadow stack for finding GC roots + + sqlite : Adds support for sqlite - embedded sql database + + ssl : Adds support for Secure Socket Layer connections + + xml : Add support for XML files Attached is the output from USE='-python2 -python3 pypy1_9' emerge --verbose portage note in particular the line: [ebuild R *] sys-apps/portage-2.2.0_alpha135 USE="(ipc) xattr -build -doc -epydoc (-pypy1_9) -python2 -python3 (-selinux)" LINGUAS="-pl" 0 kB which seems to show the pypy1_9 USE flag getting filtered out (?) Also attached is the output from emerge --info
Created attachment 325658 [details] output from running USE='-python2 -python3 pypy1_9' emerge --verbose portage
Created attachment 325660 [details] output from emerge --info
Please post the output of this command: emerge -pv portage That will show us which USE flags are supposed to be enabled.
# emerge -pv portage These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild R *] sys-apps/portage-2.2.0_alpha135 USE="(ipc) xattr -build -doc -epydoc (-pypy1_9) -python2 -python3 (-selinux)" LINGUAS="-pl" 0 kB Total: 1 package (1 reinstall), Size of downloads: 0 kB # USE=pypy1_9 emerge -pv portage These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild R *] sys-apps/portage-2.2.0_alpha135 USE="(ipc) xattr -build -doc -epydoc (-pypy1_9) -python2 -python3 (-selinux)" LINGUAS="-pl" 0 kB Total: 1 package (1 reinstall), Size of downloads: 0 kB Why is pypy1_9 in parens? And why can't it be set?
You need to unmask the flag, like this: mkdir -p /etc/portage/profile echo "sys-apps/portage -pypy1_9" >> /etc/portage/profile/package.use.mask