OK, seems I can reproduce (had an issue with my config in a previous attempt). Probably related: https://bugs.gentoo.org/491166 But your view on the matter isn't correct. Portage is strict when it comes to dependencies. Just because py3_7 is installed it won't enable the PYTHON_TARGET because you might uninstall python-3.7 and end up with a broken olefile. What actually seems to happen: python3_7 (together with other) PYTHON_TARGETS is disabled in the profile via use.stable.mask. That config file disables certain USE-Flags for stable packages. That way py3_7 is available for testing versions but not for stable ones. olefile-0.46 is only available as stable version. But now adding it to package.accept_keywords automagically seems to enable those use.stable.mask'ed USE-Flags. IMO this is a bug as it introduces totally unpredictable (and AFAICS undocumented) behaviour.
Let's see what the DEVs say about this! Regards Franz Am Di., 7. Jan. 2020 um 18:27 Uhr schrieb Mickaël Bucas <mbu...@gmail.com>: > I get the following result: > # emerge -pv1 olefile > > > These are the packages that would be merged, in order: > Calculating dependencies... done! > [ebuild R ] dev-python/olefile-0.46::gentoo USE="-doc" > PYTHON_TARGETS="python2_7 python3_6 (-pypy3) (-python3_7*) (-python3_8)" 0 > KiB > Total: 1 package (1 reinstall), Size of downloads: 0 KiB > > It seems to be in line with the interpretation I've come up with. > > Best regards > Mickaël Bucas > > Le mar. 7 janv. 2020 à 16:18, Franz Fellner <alpine.art...@gmail.com> a > écrit : > >> And what if you change the line to "dev-python/olefile amd64"? >> >> Am Di., 7. Jan. 2020 um 17:10 Uhr schrieb Mickaël Bucas <mbu...@gmail.com >> >: >> >>> Hi Franz >>> >>> Thanks for your reply. >>> >>> However your assumption is incorrect: these two commands are run on the >>> same machine, with only the keyword on "olefile" changed. >>> Thinking a bit more about it, Python 3.7 isn't stable yet, so I also >>> have "=dev-lang/python-3.7* ~amd64" in package.accept_keyword. >>> >>> I've been able to reproduce this behavior in a chroot based on stage 3 >>> with the minimum packages installed. >>> I have in make.conf >>> PYTHON_TARGETS="python2_7 python3_6 python3_7" >>> In /var/lib/portage/world >>> dev-lang/python:3.7 >>> dev-python/olefile >>> In /etc/portage/package.accept_keywords >>> dev-python/olefile ~amd64 >>> =dev-lang/python-3.7* ~amd64 >>> dev-python/setuptools ~amd64 >>> dev-python/certifi ~amd64 >>> >>> And emerge says : >>> # emerge -pv1 olefile >>> These are the packages that would be merged, in order: >>> Calculating dependencies... done! >>> [ebuild R ] dev-python/olefile-0.46::gentoo USE="-doc" >>> PYTHON_TARGETS="python2_7 python3_6 python3_7 -pypy3 -python3_8" 0 KiB >>> Total: 1 package (1 reinstall), Size of downloads: 0 KiB >>> >>> When I remove " dev-python/olefile ~amd64", Python 3.7 would be disabled >>> : >>> # emerge -pv1 olefile >>> These are the packages that would be merged, in order: >>> Calculating dependencies... done! >>> [ebuild R ] dev-python/olefile-0.46::gentoo USE="-doc" >>> PYTHON_TARGETS="python2_7 python3_6 (-pypy3) (-python3_7*) (-python3_8)" 0 >>> KiB >>> Total: 1 package (1 reinstall), Size of downloads: 0 KiB >>> >>> This is still puzzling me, but one interpretation may be : >>> I you enable the unstable ~amd64 keyword on a package, the stable >>> version of said package is allowed to run on the unstable version of the >>> Python interpreter. >>> >>> This seems to be the intended behavior, as I found that at least 40 >>> Python packages on each of my 2 systems are stable and have Python 3.7 >>> enabled (I keyworded all of them sometime in the past...) >>> >>> Thanks >>> Best regards >>> Mickaël Bucas >>> >>> Le mar. 7 janv. 2020 à 08:08, Franz Fellner <alpine.art...@gmail.com> a >>> écrit : >>> >>>> I assume those emerge commands weren't done on one machine but come >>>> from those two different machines. >>>> This change in USE Flags can't come from that line in >>>> package.accept_keywords. >>>> This is a change in PYTHON_TARGETS in make.conf, package.use or >>>> package.env. >>>> Carefully go through those config files/directories, I am sure you will >>>> find the offending line. >>>> >>>> Regards >>>> Franz >>>> >>>> Am Fr., 3. Jan. 2020 um 11:44 Uhr schrieb Mickaël Bucas < >>>> mbu...@gmail.com>: >>>> >>>>> Hello >>>>> >>>>> For some time I've been wondering why I had a difference on >>>>> dev-python/olefile-0.46 between 2 machines : one was installed with >>>>> python_targets_python3_7, the other wasn't. >>>>> And I finally pinpointed it to package.accept_keywords containing >>>>> "dev-python/olefile ~amd64" on one of the machines only >>>>> >>>>> At the time of writing, dev-python/olefile-0.46 is the stable version, >>>>> and KEYWORDS contains "amd64" (no tilde) among others. >>>>> >>>>> When package.accept_keywords doesn't contain "dev-python/olefile >>>>> ~amd64", I get : >>>>> emerge -pv1 --verbose-conflicts olefile >>>>> These are the packages that would be merged, in order: >>>>> Calculating dependencies... done! >>>>> [ebuild R ] dev-python/olefile-0.46::gentoo USE="-doc" >>>>> PYTHON_TARGETS="python2_7 python3_6 (-pypy3) (-python3_7) (-python3_8)" 0 >>>>> KiB >>>>> Total: 1 package (1 reinstall), Size of downloads: 0 KiB >>>>> >>>>> => Python 3.7 is disabled >>>>> >>>>> When package.accept_keywords contains "dev-python/olefile ~amd64", I >>>>> get : >>>>> emerge -pv1 olefile >>>>> These are the packages that would be merged, in order: >>>>> Calculating dependencies... done! >>>>> [ebuild R ] dev-python/olefile-0.46::gentoo USE="-doc" >>>>> PYTHON_TARGETS="python2_7 python3_6 python3_7* -pypy3 -python3_8" 0 KiB >>>>> Total: 1 package (1 reinstall), Size of downloads: 0 KiB >>>>> >>>>> => Python 3.7 is enabled >>>>> >>>>> It seems really really strange to me for the same version of a stable >>>>> package to be "influenced" by keywording. >>>>> Is it a bug or a feature ? >>>>> Did I do something wrong ? >>>>> >>>>> Thanks >>>>> Best regards >>>>> Mickaël Bucas >>>>> >>>>