Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 910661

Summary: distutils-r1.eclass: Inconsistency in BUILD_DIR eclass documentation in inherited python eclasses leads to false IndirectInherits warning in pkgcheck with DISTUTILS_SINGLE_IMPL=1
Product: Gentoo Linux Reporter: Alfred Wingate <parona>
Component: EclassesAssignee: Python Gentoo Team <python>
Status: UNCONFIRMED ---    
Severity: trivial    
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---

Description Alfred Wingate 2023-07-22 02:39:27 UTC
Inconsistent eclass documentation has BUILD_DIR documented in python-r1.eclass but not python-single-r1.eclass.

Reproducible: Always

Steps to Reproduce:
1. Use distutils-r1
2. Set DISTUTILS_SINGLE_IMPL=1
3. Use BUILD_DIR in ebuild
Actual Results:  
Warning about IndirectInherits

Expected Results:  
No warning
Comment 1 Alfred Wingate 2023-07-22 02:40:48 UTC
Ebuilds to reproduce the warning

~ cat test-1.ebuild 
# Copyright 2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

DISTUTILS_USE_PEP517=hatchling
PYTHON_COMPAT=( pypy3 python3_{11..12} )

inherit distutils-r1

DESCRIPTION="lorem ipsum"
HOMEPAGE="http://example.com/"

LICENSE="all-rights-reserved"
SLOT="0"
KEYWORDS="~amd64"

distutils_enable_tests pytest

python_test() {
        echo "${BUILD_DIR}"
}

$ cat test-2.ebuild 
# Copyright 2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

DISTUTILS_SINGLE_IMPL=1
DISTUTILS_USE_PEP517=hatchling
PYTHON_COMPAT=( pypy3 python3_{11..12} )

inherit distutils-r1

DESCRIPTION="lorem ipsum"
HOMEPAGE="http://example.com/"

LICENSE="all-rights-reserved"
SLOT="0"
KEYWORDS="~amd64"

distutils_enable_tests pytest

python_test() {
        echo "${BUILD_DIR}"
}
Comment 2 Alfred Wingate 2023-07-22 02:43:53 UTC
My own opinion on this is that documenting BUILD_DIR in python-utils-r1.eclass instead would make the most sense, especially as the eclass has some mention of the variable already while not documenting it twice for the same purpose.
Comment 3 Alfred Wingate 2023-07-22 02:45:39 UTC
And just to make it clear as I have omitted it in the initial comment. 

The warning comes from pkgcheck, so to reproduce it the fourth step would be to run pkgcheck scan.