# Copyright 1999-2026 Gentoo Authors # Distributed under the terms of the GNU General Public License v2 EAPI=7 _PYTHON_ALLOW_PY27=1 DISTUTILS_OPTIONAL=1 PYTHON_COMPAT=( python2_7 ) PYTHON_REQ_USE="xml(+)" inherit distutils-r1_py2 pypi MYPN="${PN/-python2/}" MYP="${MYPN}-${PV}" DESCRIPTION="Collection of extensions to Distutils" HOMEPAGE="https://github.com/pypa/setuptools https://pypi.org/project/setuptools/" SRC_URI="$(pypi_sdist_url "${MYPN}" "${PV}" .zip)" S="${WORKDIR}/${MYP}" LICENSE="MIT" SLOT="0" KEYWORDS="~amd64 ~arm64 ~x86" REQUIRED_USE="${PYTHON_REQUIRED_USE}" # DISTUTILS_OPTIONAL suppresses PYTHON_DEPS/REQUIRED_USE, so declare them to # retain the interpreter's xml requirement. # verified 2026-07-27 RDEPEND="${PYTHON_DEPS}" BDEPEND="${RDEPEND} app-arch/unzip " # Install plugins after setuptools to avoid runtime breakage. PDEPEND=" >=dev-python/certifi-python2-2016.9.26[${PYTHON_USEDEP}] dev-python/setuptools_scm-python2[${PYTHON_USEDEP}]" # Force in-source build because build system modifies sources. DISTUTILS_IN_SOURCE_BUILD=1 DOCS=( {CHANGES,README}.rst docs/{easy_install.txt,pkg_resources.txt,setuptools.txt} ) src_prepare_all() { # Silence verbose Python 2 warnings that break output-sensitive consumers. sed -i -e '/py2_warn/d' pkg_resources/__init__.py || die # Requires network access. rm setuptools/tests/test_packageindex.py || die # Omit integration tests. rm setuptools/tests/test_integration.py || die # Correct the Python 3 xpass marker. sed -e '/xfail.*710/s:(:(six.PY2, :' \ -i setuptools/tests/test_archive_util.py || die # Avoid a flake8-only test dependency. sed -i -e 's:--flake8::' pytest.ini || die distutils-r1_python_prepare_all } python_test() { if ! python_is_python3; then einfo "Tests are skipped on py2 to untangle deps" return fi distutils_install_for_testing # Keep test_easy_install's ~/.pydistutils.cfg access inside the sandbox. HOME="${PWD}" pytest -vv ${MYPN} || die "Tests failed under ${EPYTHON}" } src_compile() { python_foreach_impl _distutils-r1_copy_egg_info python_foreach_impl esetup.py build "${build_args[@]}" "${@}" } src_install() { export DISTRIBUTE_DISABLE_VERSIONED_EASY_INSTALL_SCRIPT=1 python_foreach_impl distutils-r1_python_install mv "${D}"/usr/bin/easy_install "${D}"/usr/bin/easy_install_py2 || die }