gentoo/dev-python/setuptools/setuptools-41.5.1.ebuild
Michał Górny ad1aaaf223
dev-python/setuptools: Enable Python 3.8
Enable Python 3.8 as needed to start bootstrapping it everywhere.
For now, without test deps since they cause many blockers in keywording
process.  However, when test deps are built without testing, setuptools'
tests just pass.

Signed-off-by: Michał Górny <mgorny@gentoo.org>
2019-11-15 09:01:24 +01:00

86 lines
2.5 KiB
Bash

# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=7
PYTHON_COMPAT=( python2_7 python3_{5,6,7,8} pypy{,3} )
PYTHON_REQ_USE="xml(+)"
inherit distutils-r1
if [[ ${PV} == "9999" ]]; then
EGIT_REPO_URI="https://github.com/pypa/setuptools.git"
inherit git-r3
else
SRC_URI="mirror://pypi/${PN:0:1}/${PN}/${P}.zip"
KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~m68k ~mips ~ppc ~ppc64 ~riscv ~s390 ~sh ~sparc ~x86 ~x64-cygwin ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos ~sparc-solaris ~sparc64-solaris ~x64-solaris ~x86-solaris"
fi
DESCRIPTION="Collection of extensions to Distutils"
HOMEPAGE="https://github.com/pypa/setuptools https://pypi.org/project/setuptools/"
LICENSE="MIT"
SLOT="0"
IUSE="test"
RESTRICT="!test? ( test )"
RDEPEND="
"
# Temporary hack to avoid py38 keywording hell. Please remove when
# the test deps all have py38. Also setuptools' test pass with py38,
# so you need to hack them all in locally before bumping and test.
TEST_USEDEP=$(python_gen_usedep python2_7 python3_{5,6,7} pypy{,3})
DEPEND="${RDEPEND}
app-arch/unzip
test? (
dev-python/mock[${TEST_USEDEP}]
dev-python/pip[${TEST_USEDEP}]
>=dev-python/pytest-3.7.0[${TEST_USEDEP}]
dev-python/pytest-fixture-config[${TEST_USEDEP}]
dev-python/pytest-virtualenv[${TEST_USEDEP}]
dev-python/wheel[${TEST_USEDEP}]
virtual/python-futures[${PYTHON_USEDEP}]
)
"
PDEPEND="
>=dev-python/certifi-2016.9.26[${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} )
python_prepare_all() {
if [[ ${PV} == "9999" ]]; then
python_setup
${EPYTHON} bootstrap.py || die
fi
# disable tests requiring a network connection
rm setuptools/tests/test_packageindex.py || die
# don't run integration tests
rm setuptools/tests/test_integration.py || die
distutils-r1_python_prepare_all
}
python_test() {
if [[ ${EPYTHON} == python3.8 ]]; then
if [[ ${PV} != 41.5.1 ]]; then
eerror "Please disable py38 hacks and test locally, then update this."
die "Python 3.8 support untested for ${PV}"
fi
einfo "Skipping testing on ${EPYTHON} due to unkeyworded deps"
return
fi
# test_easy_install raises a SandboxViolation due to ${HOME}/.pydistutils.cfg
# It tries to sandbox the test in a tempdir
HOME="${PWD}" pytest -vv ${PN} || die "Tests failed under ${EPYTHON}"
}
python_install() {
export DISTRIBUTE_DISABLE_VERSIONED_EASY_INSTALL_SCRIPT=1
distutils-r1_python_install
}