summaryrefslogtreecommitdiff
path: root/dev-python/pypiserver
diff options
context:
space:
mode:
Diffstat (limited to 'dev-python/pypiserver')
-rw-r--r--dev-python/pypiserver/Manifest3
-rw-r--r--dev-python/pypiserver/files/pypiserver-2.1.1-test-offline.patch33
-rw-r--r--dev-python/pypiserver/pypiserver-2.1.1.ebuild79
3 files changed, 115 insertions, 0 deletions
diff --git a/dev-python/pypiserver/Manifest b/dev-python/pypiserver/Manifest
index 3ac299d6538b..a13dad960461 100644
--- a/dev-python/pypiserver/Manifest
+++ b/dev-python/pypiserver/Manifest
@@ -1,4 +1,7 @@
AUX pypiserver-1.5.0-unbundle-bottle.patch 3428 BLAKE2B f30c9c5b7204b3efed6f6515ce11ca6921ad44a5af69af6ea19059daa9b07396bf7312d649b93492e3e1f98bcc3e0df16c9178aa0abda77b048634b0461ae194 SHA512 fca45138c22b8c12c5fe5fc1742f5a7034d9353e7a520a8870b4a0b4d113b915ed8a34dc9cc9f268ff8f9220425f1131db8ea13443ff9050852bcd9d362ac942
+AUX pypiserver-2.1.1-test-offline.patch 1431 BLAKE2B 0a96f83ab0d2850128abf92fbb6ba8e34fa97340a28f901c1579c1f06d8030d9011c25639aa6c57044dc838286e4aa02dcfe3f2448ab10e4a2b5a1521b7a52d8 SHA512 2e273ecd662a4471bff2bf1245ac94a5e610b0619ae1534dcd503132456c0f86c761103aac2bbf095e2ddbcdf8c287ae72fd180f37d22eb5ef336e5a79f1feb8
DIST pypiserver-2.0.1.gh.tar.gz 156624 BLAKE2B b37700ffe0c7361289a3825dafd86041fab9ddf574d7792c7cd155f7e869a1bdd2de4e2a658c808afc7fe5ee8989876fcb7e85a8da74202c2c4c4344fbaf1df4 SHA512 962b34ea2bbca680fcf7ee8153ecea09c2f0c1bcebaaacee4666c93deab9d2508e08a22d82635a64d8aaec7cab3b5485e3752f1439006ed01b58539035f3b711
+DIST pypiserver-2.1.1.gh.tar.gz 157393 BLAKE2B e80c73b2422dc87bba09d8c9c2e1ffc72017ec58c5530d3debb95560b50a776e1603cb5641c7e4af1ed87d64750843ae025a6a47ab4cc28ce0de1051dd5b214f SHA512 d85afb0d2c85c76a62e393d7d7824e91ff052a04e985278db48010b6f71d12c7749139245e69932b78aefbf3152ba8a8b463bfcd21d1772d047d64f0b164681a
EBUILD pypiserver-2.0.1.ebuild 1792 BLAKE2B e7fa2eb03d668a64d355cdbca29ff5500c270277efbb466215a22263134adbb3d81c1b3a9b3119f02e67565de2339d296bf6fd96fb12de080ac3eecbbd1e6756 SHA512 a6cae7c99b56b49f3dd865a09e4681d3277ae920969485ecedad5abab25797c2a9f781ada43294a4699002efc0a496d765914d625cf12edeea361a3a3dd28d58
+EBUILD pypiserver-2.1.1.ebuild 1862 BLAKE2B 337097a96a90905c6178530864cd526d48197a7781119fcb1b763822999f86e4c2848cc67baeaecba54b986b6f4ffcfcdb250d79de3457a1159dec2468b6a20a SHA512 adf8495edc747b999cc85aa11abe7ce3237cb7fed2bf79dfb2c42aeb5c343c075406fbaa18edc001f21f7b7e7b0903be1c50d13d9e19f2819887a87d27ca8ae3
MISC metadata.xml 399 BLAKE2B e8726c9c4a494a64dd1490aa88f8bbca6536635af045364307d057d5dfa4762a1b0d59d3eacf7d84c9002ac38516eb7d2228ebd872db762a669bd6015139a4ec SHA512 a3d90eb11fc5bb2c78e53a4d64cffaf213a445c1677939c46fb400e01f4e74d1f206df2259ab348b61d27e3a9b3f03e94a49485be948b2e4106ba254154c7ada
diff --git a/dev-python/pypiserver/files/pypiserver-2.1.1-test-offline.patch b/dev-python/pypiserver/files/pypiserver-2.1.1-test-offline.patch
new file mode 100644
index 000000000000..121677beb1b8
--- /dev/null
+++ b/dev-python/pypiserver/files/pypiserver-2.1.1-test-offline.patch
@@ -0,0 +1,33 @@
+From 749ad0f641ac14cc6e8485ed0b4fdf6aacb6f015 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?Micha=C5=82=20G=C3=B3rny?= <mgorny@gentoo.org>
+Date: Thu, 25 Apr 2024 14:44:16 +0200
+Subject: [PATCH] test: Fix running `build` in offline test environment
+
+Fix the `build` calls to use `--no-isolation`, in order to fix
+regression in running tests in an offline environment.
+
+Unlike the previous `setup.py` calls, `build` defaults to creating a new
+virtual environment to perform the build. This, in turn, requires
+fetching the build dependencies from the Internet, effectively making
+the tests error out in an offline environment. Passing `--no-isolation`
+makes `build` use the already-installed host dependencies instead.
+---
+ tests/test_server.py | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+diff --git a/tests/test_server.py b/tests/test_server.py
+index 92ecdda3..99da611c 100644
+--- a/tests/test_server.py
++++ b/tests/test_server.py
+@@ -148,7 +148,10 @@ def wheel_file(project, tmp_path_factory):
+ if re.match("^3\.7", sys.version):
+ assert run_setup_py(project, f"bdist_wheel -d {distdir}") == 0
+ else:
+- assert run_py_build(project, f"--wheel --outdir {distdir}") == 0
++ assert (
++ run_py_build(project, f"--wheel --no-isolation --outdir {distdir}")
++ == 0
++ )
+ wheels = list(distdir.glob("centodeps*.whl"))
+ assert len(wheels) > 0
+ return wheels[0]
diff --git a/dev-python/pypiserver/pypiserver-2.1.1.ebuild b/dev-python/pypiserver/pypiserver-2.1.1.ebuild
new file mode 100644
index 000000000000..1a08a65d04de
--- /dev/null
+++ b/dev-python/pypiserver/pypiserver-2.1.1.ebuild
@@ -0,0 +1,79 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+DISTUTILS_USE_PEP517=setuptools
+PYTHON_COMPAT=( python3_{10..12} pypy3 )
+
+inherit distutils-r1
+
+DESCRIPTION="Minimal PyPI server"
+HOMEPAGE="
+ https://github.com/pypiserver/pypiserver/
+ https://pypi.org/project/pypiserver/
+"
+SRC_URI="
+ https://github.com/pypiserver/pypiserver/archive/v${PV}.tar.gz
+ -> ${P}.gh.tar.gz
+"
+
+LICENSE="ZLIB"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~x86"
+
+RDEPEND="
+ dev-python/bottle[${PYTHON_USEDEP}]
+ >=dev-python/packaging-23.2[${PYTHON_USEDEP}]
+ >=dev-python/pip-7[${PYTHON_USEDEP}]
+ $(python_gen_cond_dep '
+ dev-python/importlib-resources[${PYTHON_USEDEP}]
+ ' 3.{10..11})
+"
+# NB: many test deps are optional/specific to tests we skip
+BDEPEND="
+ dev-python/setuptools-git[${PYTHON_USEDEP}]
+ test? (
+ >=dev-python/build-1.2.0[${PYTHON_USEDEP}]
+ >=dev-python/passlib-1.6[${PYTHON_USEDEP}]
+ dev-python/setuptools[${PYTHON_USEDEP}]
+ dev-python/webtest[${PYTHON_USEDEP}]
+ )
+"
+
+DOCS=( CHANGES.rst README.md )
+
+PATCHES=(
+ "${FILESDIR}/${PN}-1.5.0-unbundle-bottle.patch"
+ # https://github.com/pypiserver/pypiserver/pull/571
+ "${FILESDIR}/${P}-test-offline.patch"
+)
+
+distutils_enable_tests pytest
+
+src_prepare() {
+ # remove bundled bottle (sic!)
+ rm pypiserver/bottle.py || die
+ distutils-r1_src_prepare
+}
+
+python_test() {
+ local EPYTEST_DESELECT=(
+ # Internet
+ tests/test_server.py::test_hash_algos
+ tests/test_server.py::test_pip_install_open_succeeds
+ tests/test_server.py::test_pip_install_authed_succeeds
+ # seems to rely on internal bottle details
+ tests/test_main.py::test_auto_servers
+ )
+
+ if ! has_version dev-python/twine; then
+ EPYTEST_DESELECT+=(
+ tests/test_server.py::test_twine_upload
+ tests/test_server.py::test_twine_register
+ )
+ fi
+
+ local -x PYTEST_DISABLE_PLUGIN_AUTOLOAD=1
+ epytest tests
+}