Bug 259912 - devel/py-packaging: Fails to configure: pkg_resources.ContextualVersionConflict: (pyparsing 3.0.4 ... Requirement.parse('pyparsing<3,>=2.0.2')
Summary: devel/py-packaging: Fails to configure: pkg_resources.ContextualVersionConfli...
Status: Closed Not A Bug
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Many People
Assignee: Po-Chuan Hsieh
URL:
Keywords: needs-qa, regression
Depends on:
Blocks:
 
Reported: 2021-11-18 07:44 UTC by O. Hartmann
Modified: 2021-11-22 22:45 UTC (History)
3 users (show)

See Also:
bugzilla: maintainer-feedback? (sunpoet)


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description O. Hartmann 2021-11-18 07:44:20 UTC
Host:  FreeBSD 14.0-CURRENT #6 main-n250822-4fdc5b8494b4: Thu Nov 18 06:00:15 CET 2021 amd64

Rebuilding python38 and all installed py38- ports (llvm13 produces a segmentation fault in dns/bind916 due to an undiscovered issue and so I decided to portmaster -dfR dns/bind916 and portmaster -dfR devel/py-packaging) results in the error shown bewlow:

[...]
===>  Configuring for py38-packaging-21.2_1
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 777, in resolve
    raise VersionConflict(dist, req).with_context(dependent_req)
pkg_resources.ContextualVersionConflict: (pyparsing 3.0.4 (/usr/local/lib/python3.8/site-packages), Requirement.parse('pyparsing<3,>=2.0.2'), {'packaging'})
*** Error code 1

Stop.
make: stopped in /usr/ports/devel/py-packaging

===>>> make build failed for devel/py-packaging@py38
===>>> Aborting update
Comment 1 Kubilay Kocak freebsd_committer freebsd_triage 2021-11-19 00:02:07 UTC
This issue affects any other port that does not correctly match its *_DEPENDS <versions-specs> with what the sources declare, particularly if pyparsing 3.x breaks API compatibility with 2.x

All the following (at least) should be reviewed


# find /usr/ports -name Makefile -exec grep -H pyparsing@ {} +
/usr/ports/textproc/py-bibtexparser/Makefile:           ${PYTHON_PKGNAMEPREFIX}pyparsing>=2.0.3:devel/py-pyparsing@${PY_FLAVOR}
/usr/ports/textproc/translate-toolkit/Makefile:RC_RUN_DEPENDS=          ${PYTHON_PKGNAMEPREFIX}pyparsing>=2.4.7:devel/py-pyparsing@${PY_FLAVOR}
/usr/ports/textproc/py-rdflib/Makefile:         ${PYTHON_PKGNAMEPREFIX}pyparsing>=0:devel/py-pyparsing@${PY_FLAVOR} \
/usr/ports/misc/py-cinder/Makefile:             ${PYTHON_PKGNAMEPREFIX}pyparsing>=2.1.0:devel/py-pyparsing@${PY_FLAVOR} \
/usr/ports/graphics/py-pydotplus/Makefile:RUN_DEPENDS=  ${PYTHON_PKGNAMEPREFIX}pyparsing>0:devel/py-pyparsing@${PY_FLAVOR}
/usr/ports/graphics/py-svgwrite/Makefile:RUN_DEPENDS=   ${PYTHON_PKGNAMEPREFIX}pyparsing>=0:devel/py-pyparsing@${PY_FLAVOR}
/usr/ports/graphics/py-pydot/Makefile:          ${PYTHON_PKGNAMEPREFIX}pyparsing>=2.1.4:devel/py-pyparsing@${PY_FLAVOR}
/usr/ports/finance/odoo/Makefile:               ${PYTHON_PKGNAMEPREFIX}pyparsing>=0:devel/py-pyparsing@${PY_FLAVOR} \
/usr/ports/security/cowrie/Makefile:            ${PYTHON_PKGNAMEPREFIX}pyparsing>0:devel/py-pyparsing@${PY_FLAVOR} \
/usr/ports/security/py-gixy/Makefile:RUN_DEPENDS+=      ${PYTHON_PKGNAMEPREFIX}pyparsing>=1.5.5:devel/py-pyparsing@${PY_FLAVOR}
/usr/ports/security/py-plaso/Makefile:          ${PYTHON_PKGNAMEPREFIX}pyparsing>=0:devel/py-pyparsing@${PY_FLAVOR} \
/usr/ports/security/py-certbot-nginx/Makefile:          ${PYTHON_PKGNAMEPREFIX}pyparsing>=1.5.5:devel/py-pyparsing@${PY_FLAVOR} \
/usr/ports/deskutils/spice-gtk/Makefile:BUILD_DEPENDS=  ${PYTHON_PKGNAMEPREFIX}pyparsing>=2.0.1:devel/py-pyparsing@${PY_FLAVOR} \
/usr/ports/print/dot2tex/Makefile:RUN_DEPENDS=  ${PYTHON_PKGNAMEPREFIX}pyparsing>=1.4.8:devel/py-pyparsing@${PY_FLAVOR} \
/usr/ports/www/py-wfuzz/Makefile:               ${PYTHON_PKGNAMEPREFIX}pyparsing>0:devel/py-pyparsing@${PY_FLAVOR} \
/usr/ports/www/mitmproxy/Makefile:              ${PYTHON_PKGNAMEPREFIX}pyparsing>=2.4.2:devel/py-pyparsing@${PY_FLAVOR} \
/usr/ports/www/py-spyne/Makefile:               ${PYTHON_PKGNAMEPREFIX}pyparsing>=2.0.2:devel/py-pyparsing@${PY_FLAVOR} \
/usr/ports/www/py-graphite-api/Makefile:                ${PYTHON_PKGNAMEPREFIX}pyparsing>=2.0.0:devel/py-pyparsing@${PY_FLAVOR} \
/usr/ports/www/flexget/Makefile:                ${PYTHON_PKGNAMEPREFIX}pyparsing>=2.4.7:devel/py-pyparsing@${PY_FLAVOR} \
/usr/ports/www/py-httplib2/Makefile:RUN_DEPENDS=        ${PYTHON_PKGNAMEPREFIX}pyparsing>=2.4.2:devel/py-pyparsing@${PY_FLAVOR}
/usr/ports/net-mgmt/py-junos-eznc/Makefile:             ${PYTHON_PKGNAMEPREFIX}pyparsing>0:devel/py-pyparsing@${PY_FLAVOR} \
/usr/ports/devel/py-oletools/Makefile:RUN_DEPENDS=      ${PYTHON_PKGNAMEPREFIX}pyparsing>=2.2.0:devel/py-pyparsing@${PY_FLAVOR} \
/usr/ports/devel/py-cliff/Makefile:             ${PYTHON_PKGNAMEPREFIX}pyparsing>=2.1.0:devel/py-pyparsing@${PY_FLAVOR} \
/usr/ports/devel/py-packaging/Makefile:RUN_DEPENDS=     ${PYTHON_PKGNAMEPREFIX}pyparsing>=2.0.2:devel/py-pyparsing@${PY_FLAVOR}
/usr/ports/devel/py-oslo.utils/Makefile:                ${PYTHON_PKGNAMEPREFIX}pyparsing>=2.1.0:devel/py-pyparsing@${PY_FLAVOR} \
/usr/ports/devel/cpplint/Makefile:              ${PYTHON_PKGNAMEPREFIX}pyparsing>0:devel/py-pyparsing@${PY_FLAVOR}      \
/usr/ports/devel/ros-catkin_pkg/Makefile:               ${PYTHON_PKGNAMEPREFIX}pyparsing>=2:devel/py-pyparsing@${PY_FLAVOR} \
/usr/ports/cad/py-cadquery/Makefile:            ${PYTHON_SITELIBDIR}/pyparsing.py:devel/py-pyparsing@${PY_FLAVOR} \
/usr/ports/cad/py-ezdxf/Makefile:RUN_DEPENDS=   ${PYTHON_PKGNAMEPREFIX}pyparsing>=2.0.1:devel/py-pyparsing@${PY_FLAVOR} \
/usr/ports/math/py-matplotlib/Makefile:         ${PYTHON_PKGNAMEPREFIX}pyparsing>=0:devel/py-pyparsing@${PY_FLAVOR} \
/usr/ports/math/py-matplotlib/Makefile:         ${PYTHON_PKGNAMEPREFIX}pyparsing>=0:devel/py-pyparsing@${PY_FLAVOR} \
/usr/ports/math/py-matplotlib/Makefile:         ${PYTHON_PKGNAMEPREFIX}pyparsing>=0:devel/py-pyparsing@${PY_FLAVOR} \
/usr/ports/math/py-snuggs/Makefile:             ${PYTHON_PKGNAMEPREFIX}pyparsing>=2.1.6:devel/py-pyparsing@${PY_FLAVOR}
/usr/ports/math/sage/Makefile:          ${PYTHON_PKGNAMEPREFIX}pyparsing>0:devel/py-pyparsing@${PY_FLAVOR}\
/usr/ports/math/sage/Makefile:          ${PYTHON_PKGNAMEPREFIX}pyparsing>0:devel/py-pyparsing@${PY_FLAVOR}\
/usr/ports/math/py-Diofant/Makefile:            ${PYTHON_PKGNAMEPREFIX}pyparsing>2.1.2:devel/py-pyparsing@${PY_FLAVOR} \
/usr/ports/math/py-grandalf/Makefile:           ${PYTHON_PKGNAMEPREFIX}pyparsing>0:devel/py-pyparsing@${PY_FLAVOR}
/usr/ports/math/py-amply/Makefile:              ${PYTHON_PKGNAMEPREFIX}pyparsing>0:devel/py-pyparsing@${PY_FLAVOR}
/usr/ports/math/py-matplotlib2/Makefile:                ${PYTHON_PKGNAMEPREFIX}pyparsing>=0:devel/py-pyparsing@${PY_FLAVOR} \
/usr/ports/science/py-chempy/Makefile:          ${PYTHON_PKGNAMEPREFIX}pyparsing>=2.0.3:devel/py-pyparsing@${PY_FLAVOR} \
Comment 2 Po-Chuan Hsieh freebsd_committer freebsd_triage 2021-11-21 20:48:28 UTC
(In reply to O. Hartmann from comment #0)

Please make sure you're not using tools like portmaster!

And please test it with simple "make deinstall install". I'm sure this port build fine.

AFAIK, the problem is caused by portmaster behavior. You build the new version (supports pyparsing 3) with old version installed (do not support pyparsing 3).