Hi Franz Thanks for your insight into Portage inner workings. I'm glad I learned something ! And that bug from 6 years ago is a sign that something isn't clear about this subject.
Thanks Best regards Mickaël Bucas Le mar. 7 janv. 2020 à 17:56, Franz Fellner <alpine.art...@gmail.com> a écrit : > 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 >>>>>> >>>>>