To test compatibility of dev-util/scons package with python-3.7 I installed dev-lang/python-3.7.3, copied the dev-util/scons-3.0.5.ebuild to my local overlay, change "PYTHON_COMPAT=( python{2_7,3_{5,6}} )" to "PYTHON_COMPAT=( python{2_7,3_{5,6,7}} )" within local ebuild file (and ran "repoman manifest" at its directory). Finaly I tried to install it: # USE="python_targets_python3_7" emerge -1av =dev-util/scons-3.0.5::local These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild U *] dev-lang/python-exec-9999:2::gentoo [2.4.6:2::gentoo] PYTHON_TARGETS="(jython2_7) (pypy) (pypy3) (python2_7) (python3_5) (python3_6) (python3_7*)" 0 KiB [ebuild R ~] dev-util/scons-3.0.5::local [3.0.5::gentoo] USE="-doc -test" PYTHON_TARGETS="python2_7 python3_6 python3_7%* -python3_5" 0 KiB Total: 2 packages (1 upgrade, 1 reinstall), Size of downloads: 0 KiB The following keyword changes are necessary to proceed: (see "package.accept_keywords" in the portage(5) man page for more details) # required by dev-python/xcffib-0.5.1::gentoo # required by dev-python/cairocffi-0.8.0::gentoo # required by dev-python/matplotlib-2.2.2-r1::gentoo[cairo] # required by @dev-tools # required by @selected # required by @world (argument) =dev-lang/python-exec-9999 ** NOTE: The --autounmask-keep-masks option will prevent emerge from creating package.unmask or ** keyword changes. The portage offers to install live-package instead of rebuilding of "dev-lang/python-exec-2.4.6" with appropriate USE-flags. Also I tried to reinstall "dev-lang/python-exec-2.4.6" with this USE_flag: # USE="python_targets_python3_7" emerge -1av =dev-lang/python-exec-2.4.6 These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild R ] dev-lang/python-exec-2.4.6:2::gentoo PYTHON_TARGETS="(jython2_7) (pypy) (pypy3) (python2_7) (python3_5) (python3_6) (-python3_7)" 86 KiB The strange thing is that it's already compiled with "python3_5" while my system has variables PYTHON_SINGLE_TARGET="python3_6" PYTHON_TARGETS="python2_7 python3_6" (see attached file with "emerge --info" output in "emerge_info.txt"). It seems that "python3_5" stays after transition form python3.5 to python3.6 as default target. I use profile "[16] default/linux/amd64/17.0/desktop (stable) *". P.S. Also I tried to install another package with such USE: # USE="python_targets_python3_7" emerge -1av dev-python/six These are the packages that would be merged, in order: Calculating dependencies... done! [ebuild R ] dev-python/six-1.12.0::gentoo USE="-doc -test" PYTHON_TARGETS="python2_7 python3_6 (-pypy) (-pypy3) -python3_5 (-python3_7)" 0 KiB and there the "python_targets_python3_7" is also ignored. Reproducible: Always
Created attachment 576676 [details] emerge_info.txt
Created attachment 576678 [details] make.conf
This is called stable USE masking. A feature which prevents stable machines from installing unstable software unnecessarily. You can override this locally in /etc/portage/profile/use.stable.mask with an entry of "-python_targets_python3_7"
(In reply to Brian Evans from comment #3) > This is called stable USE masking. A feature which prevents stable machines > from installing unstable software unnecessarily. > > You can override this locally in /etc/portage/profile/use.stable.mask with > an entry of "-python_targets_python3_7" Great thanks! I use "/etc/portage/profile/package.use.stable.mask" now for specific packages.