Slightly Busted: So Many Pythons!


The state of python on Gentoo is not good. Maybe there’s something I’m not understanding and one of the devs in IRC will eventually clue bat me. Maybe it’s because I’m running a hybrid amd64/~amd64 system, but for the time being I’m calling python in Gentoo a mess. (How do they have an even remotely recent version of docker running on “stable,” amd64?)

Long story short, world updates will often result in a message like the following:

emerge: there are no ebuilds to satisfy "dev-python/six[python_targets_pypy(-)?,python_targets_pypy3(-)?,python_targets_python2_7(-)?,python_targets_python3_4(-)?,python_targets_python3_5(-)?,-python_single_target_pypy(-),-python_single_target_pypy3(-),-python_single_target_python2_7(-),-python_single_target_python3_4(-),-python_single_target_python3_5(-)]".
(dependency required by "dev-python/packaging-16.8::gentoo" [ebuild])
(dependency required by "dev-python/setuptools-34.0.2-r1::gentoo" [ebuild])
(dependency required by "dev-python/pygments-2.1.1::gentoo" [installed])
(dependency required by "dev-python/docutils-0.12::gentoo" [installed])
(dependency required by "media-video/mpv-0.23.0-r1::gentoo" [ebuild])
(dependency required by "@selected" [set])
(dependency required by "@world" [argument])

I have no idea how to read that mess on the first line. I don’t think anybody does, but this means somewhere along that list of dependencies something is being pulled in that doesn’t have a python_targets_python3_5 USE flag yet.

Binge user root on 3 in /etc/portage/package.keywords
$ equery u dev-python/packaging
[ Legend : U - final flag setting for installation]
[        : I - package is installed with flag     ]
[ Colors : set, unset                             ]
 * Found these USE flags for dev-python/packaging-16.8:
 U I
 - - python_targets_pypy      : Build with PyPy
 - - python_targets_pypy3     : Build with PyPy3
 + + python_targets_python2_7 : Build with Python 2.7
 + + python_targets_python3_4 : Build with Python 3.4
 + + python_targets_python3_5 : Build with Python 3.5
 - - test                     : Workaround to pull in packages needed to run with FEATURES=test.
                                Portage-2.1.2 handles this internally, so don't set it in
                                make.conf/package.use anymore

Nope.

Binge user root on 3 in /etc/portage/package.keywords
$ equery u dev-python/setuptools
[ Legend : U - final flag setting for installation]
[        : I - package is installed with flag     ]
[ Colors : set, unset                             ]
 * Found these USE flags for dev-python/setuptools-34.0.2-r1:
 U I
 - - python_targets_pypy      : Build with PyPy
 - - python_targets_pypy3     : Build with PyPy3
 + + python_targets_python2_7 : Build with Python 2.7
 + + python_targets_python3_4 : Build with Python 3.4
 + + python_targets_python3_5 : Build with Python 3.5
 - - test                     : Workaround to pull in packages needed to run with FEATURES=test.
                                Portage-2.1.2 handles this internally, so don't set it in
                                make.conf/package.use anymore

Nope.

Binge user root on 3 in /etc/portage/package.keywords
$ equery u dev-python/pygments
[ Legend : U - final flag setting for installation]
[        : I - package is installed with flag     ]
[ Colors : set, unset                             ]
 * Found these USE flags for dev-python/pygments-2.1.1:
 U I
 - - doc                      : Add extra documentation (API, Javadoc, etc). It is recommended to
                                enable per package instead of globally
 + + python_targets_python2_7 : Build with Python 2.7
 + + python_targets_python3_4 : Build with Python 3.4
 - - test                     : Workaround to pull in packages needed to run with FEATURES=test.
                                Portage-2.1.2 handles this internally, so don't set it in
                                make.conf/package.use anymore

Yep. That means python_targets_python3_5 for everything else in the chain has to be disabled in package.use for the time being.

dev-python/setuptools python_targets_python3_4 -python_targets_python3_5
dev-python/packaging python_targets_python3_4 -python_targets_python3_5
dev-python/six python_targets_python2_7 python_targets_python3_4 -python_targets_python3_5

Leave a Reply