aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKai Knoblich <kai@FreeBSD.org>2021-12-09 18:49:49 +0000
committerKai Knoblich <kai@FreeBSD.org>2021-12-09 18:49:49 +0000
commitad7f115cddd949d6ffd41bd9889328c06f8906e4 (patch)
treeea81df202aa1571b26d354511acbf48665f10bc7
parent849bacb55c2c38a41c485181bdb270dd46df60d2 (diff)
downloadports-ad7f115cddd949d6ffd41bd9889328c06f8906e4.tar.gz
ports-ad7f115cddd949d6ffd41bd9889328c06f8906e4.zip
devel/py-setuptools_scm: Turn py-packaging into a soft dependency
* Since the 6.3.0 release, devel/py-packaging has been defined in the "setup.cfg" as an unconditional dependency. However this leads to problems if py-packaging is uninstalled but py-setuptools_scm persists, then the missing port can no longer be built. [1] Although py-setuptools_scm has a fallback to devel/py-setuptools when py-packaging is absent this fallback code is not executed. This is because py-setuptools, which checks the dependencies of py-setuptools_scm upon invocation and terminates as soon as these are not met. Fix this issue by converting py-packaging into an optional dependency for py-setuptools_scm so that the fallback code is really used if py-packaging is absent. But keep the latter one in the RUN_DEPENDS in order to continue to reflect the actual dependencies. * Also add py-packaging to BUILD_DEPENDS as defined in "pyproject.toml" although it's not strictly required to build the port. [2] * Bump PORTREVISION due package change. PR: 259981 Reported by: many [1], koobs [2] Tested by: se, myself
-rw-r--r--devel/py-setuptools_scm/Makefile4
-rw-r--r--devel/py-setuptools_scm/files/patch-setup.cfg19
2 files changed, 22 insertions, 1 deletions
diff --git a/devel/py-setuptools_scm/Makefile b/devel/py-setuptools_scm/Makefile
index 58a5c111ad98..ed38105484b9 100644
--- a/devel/py-setuptools_scm/Makefile
+++ b/devel/py-setuptools_scm/Makefile
@@ -1,5 +1,6 @@
PORTNAME= setuptools_scm
PORTVERSION= 6.3.2
+PORTREVISION= 1
CATEGORIES= devel python
MASTER_SITES= CHEESESHOP
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
@@ -10,7 +11,8 @@ COMMENT= Setuptools plugin to manage your versions by scm tags
LICENSE= MIT
LICENSE_FILE= ${WRKSRC}/LICENSE
-BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}tomli>=1.0.0:textproc/py-tomli@${PY_FLAVOR}
+BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}packaging>=20.0:devel/py-packaging@${PY_FLAVOR} \
+ ${PYTHON_PKGNAMEPREFIX}tomli>=1.0.0:textproc/py-tomli@${PY_FLAVOR}
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}packaging>=20.0:devel/py-packaging@${PY_FLAVOR}
TEST_DEPENDS= git:devel/git \
${PY_MERCURIAL} \
diff --git a/devel/py-setuptools_scm/files/patch-setup.cfg b/devel/py-setuptools_scm/files/patch-setup.cfg
new file mode 100644
index 000000000000..023b8f628e4d
--- /dev/null
+++ b/devel/py-setuptools_scm/files/patch-setup.cfg
@@ -0,0 +1,19 @@
+Avoid errors during runtime if devel/py-packaging is not present.
+
+The package is only required in "_version_cls.py" and falls back to
+devel/py-setuptools (via "try ... except") if it's not available.
+
+This is a workaround to remedy issues with upgrade runs that also update
+devel/py-{packaging,pyparsing} in environments where devel/py-setuptools_scm is
+already present.
+
+--- setup.cfg.orig 2021-12-05 20:43:43 UTC
++++ setup.cfg
+@@ -27,7 +27,6 @@ classifiers =
+ [options]
+ packages = find:
+ install_requires =
+- packaging>=20.0
+ setuptools
+ tomli>=1.0.0 # keep in sync
+ python_requires = >=3.6