Summary: | devel/py-pyparsing: build failure: pkg_resources.DistributionNotFound: The 'packaging>=20.0' distribution was not found and is required by the application | ||
---|---|---|---|
Product: | Ports & Packages | Reporter: | O. Hartmann <ohartmann> |
Component: | Individual Port(s) | Assignee: | Po-Chuan Hsieh <sunpoet> |
Status: | Closed DUPLICATE | ||
Severity: | Affects Many People | CC: | bitnix, cam, djohnson, edgeman, f.bergknecht, gehm, giantkingsquid, j.krieg, meta, o.hushchenkov, ohartmann, python, rhurlin, se |
Priority: | --- | Flags: | bugzilla:
maintainer-feedback?
(sunpoet) |
Version: | Latest | ||
Hardware: | Any | ||
OS: | Any |
Description
O. Hartmann
2021-11-23 07:17:30 UTC
Seeing the same thing for devel/py-pycparser: ===>>> All >> py38-pycparser-2.20 (1/3) ^[]0;portmaster: All >> py38-pycparser-2.20 (1/3)^G ===> Cleaning for py38-pycparser-2.21 ===> License BSD3CLAUSE accepted by the user ===> py38-pycparser-2.21 depends on file: /usr/local/sbin/pkg - found ===> Fetching all distfiles required by py38-pycparser-2.21 for building ===> Extracting for py38-pycparser-2.21 => SHA256 Checksum OK for pycparser-2.21.tar.gz. ===> Patching for py38-pycparser-2.21 ===> py38-pycparser-2.21 depends on package: py38-setuptools>0 - found ===> py38-pycparser-2.21 depends on file: /usr/local/bin/python3.8 - found ===> Configuring for py38-pycparser-2.21 Traceback (most recent call last): File "<string>", line 1, in <module> File "setup.py", line 35, in <module> setup( File "/usr/local/lib/python3.8/site-packages/setuptools/__init__.py", line 153, in setup return distutils.core.setup(**attrs) File "/usr/local/lib/python3.8/distutils/core.py", line 108, in setup _setup_distribution = dist = klass(attrs) File "/usr/local/lib/python3.8/site-packages/setuptools/dist.py", line 455, in __init__ _Distribution.__init__(self, { File "/usr/local/lib/python3.8/distutils/dist.py", line 292, in __init__ self.finalize_options() File "/usr/local/lib/python3.8/site-packages/setuptools/dist.py", line 800, in finalize_options for ep in sorted(eps, key=by_order): File "/usr/local/lib/python3.8/site-packages/setuptools/dist.py", line 799, in <lambda> eps = map(lambda e: e.load(), pkg_resources.iter_entry_points(group)) File "/usr/local/lib/python3.8/site-packages/pkg_resources/__init__.py", line 2449, in load self.require(*args, **kwargs) File "/usr/local/lib/python3.8/site-packages/pkg_resources/__init__.py", line 2472, in require items = working_set.resolve(reqs, env, installer, extras=self.extras) File "/usr/local/lib/python3.8/site-packages/pkg_resources/__init__.py", line 772, in resolve raise DistributionNotFound(req, requirers) pkg_resources.DistributionNotFound: The 'packaging>=20.0' distribution was not found and is required by the application *** Error code 1 Stop. make: stopped in /usr/ports/devel/py-pycparser ===>>> make build failed for devel/py-pycparser@py38 ===>>> Aborting update ===>>> Update for devel/py-pycparser@py38 failed ===>>> Aborting update ===>>> You can restart from the point of failure with this command line: portmaster <flags> devel/py-pycparser@py38 textproc/py-snowballstemmer@py38 devel/py-pyparsing@py38 (In reply to Cameron from comment #1) This is on 13.0-RELEASE-p4. I too have this error on 13.0-RELEASE-p5 ===> Configuring for py37-pyparsing-3.0.6 Traceback (most recent call last): File "<string>", line 1, in <module> File "setup.py", line 55, in <module> "Programming Language :: Python :: Implementation :: PyPy", File "/usr/local/lib/python3.7/site-packages/setuptools/__init__.py", line 153, in setup return distutils.core.setup(**attrs) File "/usr/local/lib/python3.7/distutils/core.py", line 108, in setup _setup_distribution = dist = klass(attrs) File "/usr/local/lib/python3.7/site-packages/setuptools/dist.py", line 456, in __init__ k: v for k, v in attrs.items() File "/usr/local/lib/python3.7/distutils/dist.py", line 292, in __init__ self.finalize_options() File "/usr/local/lib/python3.7/site-packages/setuptools/dist.py", line 800, in finalize_options for ep in sorted(eps, key=by_order): File "/usr/local/lib/python3.7/site-packages/setuptools/dist.py", line 799, in <lambda> eps = map(lambda e: e.load(), pkg_resources.iter_entry_points(group)) File "/usr/local/lib/python3.7/site-packages/pkg_resources/__init__.py", line 2449, in load self.require(*args, **kwargs) File "/usr/local/lib/python3.7/site-packages/pkg_resources/__init__.py", line 2472, in require items = working_set.resolve(reqs, env, installer, extras=self.extras) File "/usr/local/lib/python3.7/site-packages/pkg_resources/__init__.py", line 772, in resolve raise DistributionNotFound(req, requirers) pkg_resources.DistributionNotFound: The 'packaging>=20.0' distribution was not found and is required by the application *** Error code 1 Stop. make[1]: stopped in /usr/ports/devel/py-pyparsing *** Error code 1 Stop. make: stopped in /usr/ports/devel/py-pyparsing I think there's a circular dependency in devel/py-pyparsing versus devel/py-packaging. File "/usr/local/lib/python3.8/site-packages/pkg_resources/__init__.py", line 772, in resolve raise DistributionNotFound(req, requirers) pkg_resources.DistributionNotFound: The 'packaging>=20.0' distribution was not found and is required by the application *** Error code 1 Stop. make[1]: stopped in /usr/ports/devel/py-pyparsing *** Error code 1 Stop. make: stopped in /usr/ports/devel/py-pyparsing File "/usr/local/lib/python3.8/site-packages/pkg_resources/__init__.py", line 772, in resolve raise DistributionNotFound(req, requirers) pkg_resources.DistributionNotFound: The 'pyparsing!=3.0.5,>=2.0.2' distribution was not found and is required by packaging *** Error code 1 Stop. make: stopped in /usr/ports/devel/py-packaging I have the same error using Freebsd 12.2 Makefile needs a Line... 26d25 < BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}packaging>=20:devel/py-packaging@${PY_FLAVOR} (In reply to Ekkehard 'Ekki' Gehm from comment #6) It doesn't solve the circular dependency for me because devel/py-packaging depends on devel/py-pyparsing. devel/py-pyparsing -> devel/py-packaging -> devel/py-pyparsing diff --git a/devel/py-pyparsing/Makefile b/devel/py-pyparsing/Makefile index edb31296a115..00b949845dd0 100644 --- a/devel/py-pyparsing/Makefile +++ b/devel/py-pyparsing/Makefile @@ -20,6 +20,8 @@ NO_ARCH= yes OPTIONS_DEFINE= DIAGRAMS DIAGRAMS_DESC= Diagram support +BUILD_DEPENDS= ${PYTHON_PKGNAMEPREFIX}packaging>=20:devel/py-packaging@${PY_FLAVOR} + DIAGRAMS_RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}Jinja2>=0:devel/py-Jinja2@${PY_FLAVOR} \ ${PYTHON_PKGNAMEPREFIX}railroad-diagrams>=0:graphics/py-railroad-diagrams@${PY_FLAVOR} ===> py38-pyparsing-3.0.6 depends on package: py38-packaging>=20 - not found ===> py38-packaging-21.3 depends on package: py38-setuptools>0 - found ===> py38-packaging-21.3 depends on file: /usr/local/bin/python3.8 - found ===> py38-packaging-21.3 depends on file: /usr/local/bin/ccache - found ===> Configuring for py38-packaging-21.3 Traceback (most recent call last): File "<string>", line 1, in <module> File "setup.py", line 40, in <module> setup( File "/usr/local/lib/python3.8/site-packages/setuptools/__init__.py", line 153, in setup return distutils.core.setup(**attrs) File "/usr/local/lib/python3.8/distutils/core.py", line 108, in setup _setup_distribution = dist = klass(attrs) File "/usr/local/lib/python3.8/site-packages/setuptools/dist.py", line 455, in __init__ _Distribution.__init__(self, { File "/usr/local/lib/python3.8/distutils/dist.py", line 292, in __init__ self.finalize_options() File "/usr/local/lib/python3.8/site-packages/setuptools/dist.py", line 800, in finalize_options for ep in sorted(eps, key=by_order): File "/usr/local/lib/python3.8/site-packages/setuptools/dist.py", line 799, in <lambda> eps = map(lambda e: e.load(), pkg_resources.iter_entry_points(group)) File "/usr/local/lib/python3.8/site-packages/pkg_resources/__init__.py", line 2449, in load self.require(*args, **kwargs) File "/usr/local/lib/python3.8/site-packages/pkg_resources/__init__.py", line 2472, in require items = working_set.resolve(reqs, env, installer, extras=self.extras) File "/usr/local/lib/python3.8/site-packages/pkg_resources/__init__.py", line 772, in resolve raise DistributionNotFound(req, requirers) pkg_resources.DistributionNotFound: The 'pyparsing!=3.0.5,>=2.0.2' distribution was not found and is required by packaging *** Error code 1 Stop. make[2]: stopped in /home/meta/FreeBSD/ports/git/devel/py-packaging *** Error code 1 Stop. make[1]: stopped in /home/meta/FreeBSD/ports/git/devel/py-pyparsing *** Error code 1 Stop. make: stopped in /home/meta/FreeBSD/ports/git/devel/py-pyparsing I'm still not sure what is the root cause however uninstalling py38-setuptools_scm without modifying Makefie did the trick for me.
> pkg remove py38-setuptools_scm
This is totally a portmaster issue (wrong order of build, install and deinstall). The python dependencies are all correct. py-pyparsing DOES NOT REQUIRE py-packaging. (In reply to Koichiro Iwao from comment #8) py-setuptools_scm is where 'packaging>=20.0' came from. Thus uninstalling py-setuptools_scm is a workaround. No, this has nothing to do at all with portmaster, as is obvious from the reports that ran into this situation without using portmaster. This is actually a duplicate of PR 259981, and I'll mark it as such. The problem is that py-setuptools_scm depends on both py-pyparsing and py-packaging, and these two ports are correctly installed with py-setuptools_scm. Both py-pyparsing and py-packaging cannot depend on py-setuptools_scm, as that would be a circular dependency. But if either or both of py-pyparsing and py-packaging are removed, but py-setuptools_scm persists, then the missing ports can no longer be built. The configure phase will try to execute py-setuptools_scm, which fails of one of the run dependencies is missing. And that terminates the build of the missing dependency, despite it not really depending on py-setuptools_scm (as that would be a circular dependency). Either py-setuptools_scm should only be executed for ports that actually depend on it (not realistic), or a failure of py-setuptools_scm due to a missing py-pyparsing or py-packaging should not make their setup.py fail, perhaps by passing an option that prevents invocation of py-setuptools_scm for these two ports. *** This bug has been marked as a duplicate of bug 259981 *** (In reply to Po-Chuan Hsieh from comment #9) As Stefan already mentioned, I also think it's not portmaster issue. I did `make install` instead of `portmaster` but got same result as comment #8. *** This bug has been marked as a duplicate of bug 259981 *** |