Date: Wednesday, April 5, 2023 @ 17:19:41
Author: felixonmars
Revision: 472649
archrelease: copy trunk to staging-any
Added:
python-setuptools/repos/staging-any/
python-setuptools/repos/staging-any/PKGBUILD
(from rev 472648, python-setuptools/trunk/PKGBUILD)
python-setuptools/repos/staging-any/add-dependency.patch
(from rev 472648, python-setuptools/trunk/add-dependency.patch)
python-setuptools/repos/staging-any/system-validate-pyproject.patch
(from rev 472648, python-setuptools/trunk/system-validate-pyproject.patch)
---------------------------------+
PKGBUILD | 98 ++++++++++++++++++++++++++++++++++++++
add-dependency.patch | 18 ++++++
system-validate-pyproject.patch | 31 ++++++++++++
3 files changed, 147 insertions(+)
Copied: python-setuptools/repos/staging-any/PKGBUILD (from rev 472648,
python-setuptools/trunk/PKGBUILD)
===================================================================
--- staging-any/PKGBUILD (rev 0)
+++ staging-any/PKGBUILD 2023-04-05 17:19:41 UTC (rev 472649)
@@ -0,0 +1,98 @@
+# Maintainer: Angel Velasquez <[email protected]>
+# Maintainer: Felix Yan <[email protected]>
+# Contributor: Eli Schwartz <[email protected]>
+
+pkgname=python-setuptools
+pkgver=67.6.1
+_commit=245d72a8aa4d47e1811425213aba2a06a0bb64fa
+pkgrel=2
+epoch=1
+pkgdesc="Easily download, build, install, upgrade, and uninstall Python
packages"
+arch=('any')
+license=('PSF')
+url="https://pypi.org/project/setuptools/"
+depends=('python-jaraco.text' 'python-more-itertools' 'python-ordered-set'
'python-packaging'
+ 'python-platformdirs' 'python-tomli' 'python-validate-pyproject')
+makedepends=('git' 'python-setuptools')
+checkdepends=('python-jaraco.envs' 'python-jaraco.path' 'python-pip'
'python-pip-run'
+ 'python-pytest-fixture-config' 'python-pytest-virtualenv'
'python-wheel'
+ 'python-pytest-enabler' 'python-pytest-mypy'
'python-pytest-timeout' 'python-sphinx'
+ 'python-build' 'python-ini2toml' 'python-tomli-w')
+provides=('python-distribute')
+replaces=('python-distribute')
+source=("git+https://github.com/pypa/setuptools.git#commit=$_commit"
+ system-validate-pyproject.patch
+ add-dependency.patch)
+sha512sums=('SKIP'
+
'390fea2c575a0042054f51d33e629b04a48f832f0a4a2dd07d34e23cdf330c382dba0f54bfb7c8a6a253bb248a4940f2a789672f715e4dc2aeb395fa185cae7a'
+
'9c5d80c753e78bf613572fb789a234984087d0ce96d0bad22b5ed731d83c77bf6d8acfa65c78f6c78f9063be7819c2b58988fdf8e7fc89b55339f94a87b3b21f')
+
+export SETUPTOOLS_INSTALL_WINDOWS_SPECIFIC_FILES=0
+
+prepare() {
+ cd setuptools
+
+ patch -p1 -i ../system-validate-pyproject.patch
+
+ rm -r {pkg_resources,setuptools}/{extern,_vendor}
setuptools/config/_validate_pyproject
+
+ # Upstream devendoring logic is badly broken, see:
+ # https://bugs.archlinux.org/task/58670
+ # https://github.com/pypa/pip/issues/5429
+ # https://github.com/pypa/setuptools/issues/1383
+ # The simplest fix is to simply rewrite import paths to use the canonical
+ # location in the first place
+ for _module in setuptools pkg_resources '' ; do
+ find . -name \*.py -exec sed -i \
+ -e 's/from '$_module.extern' import/import/' \
+ -e 's/from '$_module.extern'\./from /' \
+ -e 's/import '$_module.extern'\./import /' \
+ -e "s/__import__('$_module.extern./__import__('/" \
+ -e 's/from \.\.extern\./from /' \
+ {} +
+ done
+
+ # Add the devendored dependencies into metadata of setuptools
+ patch -p1 -i ../add-dependency.patch
+
+ # Fix tests invoking python-build
+ sed -e 's/"-m", "build", "--wheel"/"-m", "build", "--wheel",
"--no-isolation"/' \
+ -e 's/"-m", "build", "--sdist"/"-m", "build", "--sdist",
"--no-isolation"/' \
+ -i setuptools/tests/fixtures.py
+
+ # Remove post-release tag since we are using stable tags
+ sed -e '/tag_build = .post/d' \
+ -e '/tag_date = 1/d' \
+ -i setup.cfg
+
+ # Fix shebang
+ sed -i -e "s|^#\!.*/usr/bin/env python|#!/usr/bin/env python3|"
setuptools/command/easy_install.py
+}
+
+build() {
+ cd setuptools
+ python setup.py build
+}
+
+check() { (
+ # Workaround UTF-8 tests by setting LC_CTYPE
+ export LC_CTYPE=en_US.UTF-8
+
+ # https://github.com/pypa/setuptools/pull/810
+ export PYTHONDONTWRITEBYTECODE=1
+
+ cd setuptools
+ # 1,4: subtle difference introduced by devendoring
+ # 2: pip failures related to devendoring,
+ # 3: TODO
+ PYTHONPATH="$PWD"/build/lib python -m pytest \
+ --deselect
setuptools/tests/config/test_apply_pyprojecttoml.py::test_apply_pyproject_equivalent_to_setupcfg
\
+ --deselect setuptools/tests/test_virtualenv.py \
+ --deselect
setuptools/tests/test_editable_install.py::test_editable_with_prefix \
+ --deselect
setuptools/_normalization.py::setuptools._normalization.safe_version
+)}
+
+package() {
+ cd setuptools
+ python setup.py install --prefix=/usr --root="$pkgdir" --optimize=1
--skip-build
+}
Copied: python-setuptools/repos/staging-any/add-dependency.patch (from rev
472648, python-setuptools/trunk/add-dependency.patch)
===================================================================
--- staging-any/add-dependency.patch (rev 0)
+++ staging-any/add-dependency.patch 2023-04-05 17:19:41 UTC (rev 472649)
@@ -0,0 +1,18 @@
+diff --git a/setup.cfg.org b/setup.cfg
+index f9dd790..0cd700e 100644
+--- a/setup.cfg.orig
++++ b/setup.cfg
+@@ -26,6 +26,13 @@ packages = find_namespace:
+ # include_package_data = true
+ python_requires = >=3.7
+ install_requires =
++ platformdirs
++ jaraco.text
++ more-itertools
++ ordered-set
++ packaging
++ tomli
++ validate-pyproject
+
+ [options.packages.find]
+ exclude =
Copied: python-setuptools/repos/staging-any/system-validate-pyproject.patch
(from rev 472648, python-setuptools/trunk/system-validate-pyproject.patch)
===================================================================
--- staging-any/system-validate-pyproject.patch (rev 0)
+++ staging-any/system-validate-pyproject.patch 2023-04-05 17:19:41 UTC (rev
472649)
@@ -0,0 +1,31 @@
+diff --git a/setuptools/config/pyprojecttoml.py
b/setuptools/config/pyprojecttoml.py
+index d4024956..2c3bd6bf 100644
+--- a/setuptools/config/pyprojecttoml.py
++++ b/setuptools/config/pyprojecttoml.py
+@@ -27,16 +27,22 @@ def load_file(filepath: _Path) -> dict:
+
+
+ def validate(config: dict, filepath: _Path) -> bool:
+- from . import _validate_pyproject as validator
++ import validate_pyproject.api, validate_pyproject.errors,
validate_pyproject.cli, validate_pyproject.plugins
+
+- trove_classifier = validator.FORMAT_FUNCTIONS.get("trove-classifier")
++ trove_classifier =
validate_pyproject.api.FORMAT_FUNCTIONS.get("trove-classifier")
+ if hasattr(trove_classifier, "_disable_download"):
+ # Improve reproducibility by default. See issue 31 for
validate-pyproject.
+ trove_classifier._disable_download() # type: ignore
+
++ plugins = validate_pyproject.plugins.list_from_entry_points()
++ validator = validate_pyproject.api.Validator(
++ validate_pyproject.cli.select_plugins(plugins, ('setuptools',
'distutils'), ()),
++ validate_pyproject.api.FORMAT_FUNCTIONS,
++ )
++
+ try:
+- return validator.validate(config)
+- except validator.ValidationError as ex:
++ return validator(config)
++ except validate_pyproject.errors.ValidationError as ex:
+ summary = f"configuration error: {ex.summary}"
+ if ex.name.strip("`") != "project":
+ # Probably it is just a field missing/misnamed, not worthy the
verbosity...