Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 910288 - python-utils-r1.eclass: loosen python_check_deps for interpreter versions
Summary: python-utils-r1.eclass: loosen python_check_deps for interpreter versions
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Eclasses (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Python Gentoo Team
URL:
Whiteboard:
Keywords: PullRequest
Depends on:
Blocks:
 
Reported: 2023-07-13 09:37 UTC by Sam James
Modified: 2023-07-24 22:45 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Sam James archtester Gentoo Infrastructure gentoo-dev Security 2023-07-13 09:37:47 UTC
glibc and a few other critical packages depend on Python using python-any-r1.

python-utils-r1 has _python_run_check_deps() which checks PYTHON_PKG_DEP w/ has_version.

We set PYTHON_PKG_DEP to a bunch of tight, recent versions which is enforced via BDEPEND. We then verify that at build time.

This is problematic in two cases at least:
1. Portage will try to aggressively upgrade glibc and Python may not have been upgraded first (despite its BDEPEND, but whatever)
2. Sometimes an out of date system may find it hard to upgrade everything and piecewise updating a core lirbary or two is desirable, but this won't work if the right Python slots are available but not the right recent versions.

I think we should just check for the correct Python interpreter slot + use dep in _python_run_check_deps, or maintain a list of alternative baseline versions for checking in _python_run_check_deps instead.

(We could also, for python-any-r1, iterate over the tight ones, then iterate over the loose ones, to reduce the chance of picking a weak one unless we really have to, but I don't think it's worth it.)
Comment 1 Larry the Git Cow gentoo-dev 2023-07-17 09:44:25 UTC
The bug has been closed via the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=ee468eec11953a67f877bc7e15079f9dcdc7ddaa

commit ee468eec11953a67f877bc7e15079f9dcdc7ddaa
Author:     Michał Górny <mgorny@gentoo.org>
AuthorDate: 2023-07-15 15:51:25 +0000
Commit:     Michał Górny <mgorny@gentoo.org>
CommitDate: 2023-07-17 09:44:22 +0000

    python-utils-r1.eclass: Loosen minimal Python versions
    
    Loosen minimal Python versions to accept any version in a given slot.
    Lower bounds are cumbersome to maintain and cause problems when
    upgrading outdated systems, particularly when sys-libs/glibc
    is involved.
    
    We could technically apply some hack to make any-r1 dependency checks
    to conditionally ignore minimal versions but that sounds like
    unnecessary complexity.  In the end, minimum versions were primarily
    enforced to make sure users got the latest bugfixes but that doesn't
    seem strictly necessary.
    
    Closes: https://bugs.gentoo.org/910288
    Signed-off-by: Michał Górny <mgorny@gentoo.org>
    Closes: https://github.com/gentoo/gentoo/pull/31796
    Signed-off-by: Michał Górny <mgorny@gentoo.org>

 eclass/python-any-r1.eclass   |  6 +++---
 eclass/python-r1.eclass       |  2 +-
 eclass/python-utils-r1.eclass | 12 +++++-------
 3 files changed, 9 insertions(+), 11 deletions(-)
Comment 2 Larry the Git Cow gentoo-dev 2023-07-24 22:45:52 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8b9d01719e16b0016f6525a99e8087e8ee1b50eb

commit 8b9d01719e16b0016f6525a99e8087e8ee1b50eb
Author:     Sam James <sam@gentoo.org>
AuthorDate: 2023-07-24 22:45:04 +0000
Commit:     Sam James <sam@gentoo.org>
CommitDate: 2023-07-24 22:45:04 +0000

    Revert "sys-libs/glibc: relax python dependencies"
    
    This reverts commit 018d5f301fe4bf859e66bf5f1f7b9db94d8104c2.
    
    Now that bug #910288 is fixed, we don't need to do this anymore.
    
    Bug: https://bugs.gentoo.org/910288
    Signed-off-by: Sam James <sam@gentoo.org>

 sys-libs/glibc/glibc-2.37-r3.ebuild | 16 ++++++++++------
 sys-libs/glibc/glibc-9999.ebuild    | 18 +++++++++++-------
 2 files changed, 21 insertions(+), 13 deletions(-)