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
>>>>>
>>>>

Reply via email to