Bug 2075487 - python-setuptools fails to build with Python 3.11: vendored pyparsing uses newly deprecated sre_constants module
Summary: python-setuptools fails to build with Python 3.11: vendored pyparsing uses ne...
Keywords:
Status: CLOSED ERRATA
Alias: None
Product: Fedora
Classification: Fedora
Component: python-setuptools
Version: rawhide
Hardware: Unspecified
OS: Unspecified
unspecified
high
Target Milestone: ---
Assignee: Tomáš Hrnčiar
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
: 2074565 2075499 2075501 (view as bug list)
Depends On:
Blocks: PYTHON3.11 2074565 2075499
TreeView+ depends on / blocked
 
Reported: 2022-04-14 11:11 UTC by Tomáš Hrnčiar
Modified: 2022-04-19 19:51 UTC (History)
7 users (show)

Fixed In Version: python-setuptools-60.9.3-2.fc37
Clone Of:
Environment:
Last Closed: 2022-04-19 16:32:01 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description Tomáš Hrnčiar 2022-04-14 11:11:50 UTC
python-setuptools fails to build with Python 3.11.0a7.

+ /usr/bin/pytest --ignore=setuptools/tests/test_integration.py --ignore=setuptools/tests/integration/ --ignore=setuptools/tests/test_develop.py -k 'not test_pip_upgrade_from_source'
Traceback (most recent call last):
  File "/usr/bin/pytest", line 8, in <module>
    sys.exit(console_main())
             ^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/_pytest/config/__init__.py", line 188, in console_main
    code = main()
           ^^^^^^
  File "/usr/lib/python3.11/site-packages/_pytest/config/__init__.py", line 146, in main
    config = _prepareconfig(args, plugins)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/_pytest/config/__init__.py", line 325, in _prepareconfig
    config = pluginmanager.hook.pytest_cmdline_parse(
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pluggy/_hooks.py", line 265, in __call__
    return self._hookexec(self.name, self.get_hookimpls(), kwargs, firstresult)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pluggy/_manager.py", line 80, in _hookexec
    return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pluggy/_callers.py", line 55, in _multicall
    gen.send(outcome)
    ^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/_pytest/helpconfig.py", line 102, in pytest_cmdline_parse
    config: Config = outcome.get_result()
                     ^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pluggy/_result.py", line 60, in get_result
    raise ex[1].with_traceback(ex[2])
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pluggy/_callers.py", line 39, in _multicall
    res = hook_impl.function(*args)
          ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/_pytest/config/__init__.py", line 1013, in pytest_cmdline_parse
    self.parse(args)
    ^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/_pytest/config/__init__.py", line 1301, in parse
    self._preparse(args, addopts=addopts)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/_pytest/config/__init__.py", line 1203, in _preparse
    self.hook.pytest_load_initial_conftests(
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pluggy/_hooks.py", line 265, in __call__
    return self._hookexec(self.name, self.get_hookimpls(), kwargs, firstresult)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pluggy/_manager.py", line 80, in _hookexec
    return self._inner_hookexec(hook_name, methods, kwargs, firstresult)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pluggy/_callers.py", line 60, in _multicall
    return outcome.get_result()
           ^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pluggy/_result.py", line 60, in get_result
    raise ex[1].with_traceback(ex[2])
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/pluggy/_callers.py", line 39, in _multicall
    res = hook_impl.function(*args)
          ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/_pytest/config/__init__.py", line 1080, in pytest_load_initial_conftests
    self.pluginmanager._set_initial_conftests(
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/_pytest/config/__init__.py", line 529, in _set_initial_conftests
    self._try_load_conftest(current, namespace.importmode, rootpath)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/_pytest/config/__init__.py", line 534, in _try_load_conftest
    self._getconftestmodules(anchor, importmode, rootpath)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/_pytest/config/__init__.py", line 565, in _getconftestmodules
    mod = self._importconftest(conftestpath, importmode, rootpath)
          ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/_pytest/config/__init__.py", line 620, in _importconftest
    self.consider_conftest(mod)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/_pytest/config/__init__.py", line 701, in consider_conftest
    self.register(conftestmodule, name=conftestmodule.__file__)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/_pytest/config/__init__.py", line 467, in register
    self.consider_module(plugin)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/_pytest/config/__init__.py", line 709, in consider_module
    self._import_plugin_specs(getattr(mod, "pytest_plugins", []))
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/_pytest/config/__init__.py", line 716, in _import_plugin_specs
    self.import_plugin(import_spec)
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.11/site-packages/_pytest/config/__init__.py", line 743, in import_plugin
    __import__(importspec)
    ^^^^^^^^^^^^^^^^^^^^^^
  File "/builddir/build/BUILD/setuptools-60.9.3/setuptools/__init__.py", line 16, in <module>
    import setuptools.version
    ^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/builddir/build/BUILD/setuptools-60.9.3/setuptools/version.py", line 1, in <module>
    import pkg_resources
    ^^^^^^^^^^^^^^^^^^^^
  File "/builddir/build/BUILD/setuptools-60.9.3/pkg_resources/__init__.py", line 84, in <module>
    __import__('pkg_resources.extern.packaging.requirements')
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/builddir/build/BUILD/setuptools-60.9.3/pkg_resources/_vendor/packaging/requirements.py", line 10, in <module>
    from pkg_resources.extern.pyparsing import (  # noqa
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "<frozen importlib._bootstrap>", line 1178, in _find_and_load
  File "<frozen importlib._bootstrap>", line 1149, in _find_and_load_unlocked
  File "<frozen importlib._bootstrap>", line 676, in _load_unlocked
  File "<frozen importlib._bootstrap>", line 573, in module_from_spec
  File "/builddir/build/BUILD/setuptools-60.9.3/pkg_resources/extern/__init__.py", line 52, in create_module
    return self.load_module(spec.name)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/builddir/build/BUILD/setuptools-60.9.3/pkg_resources/extern/__init__.py", line 37, in load_module
    __import__(extant)
    ^^^^^^^^^^^^^^^^^^
  File "/builddir/build/BUILD/setuptools-60.9.3/pkg_resources/_vendor/pyparsing.py", line 87, in <module>
    import sre_constants
    ^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib64/python3.11/sre_constants.py", line 2, in <module>
    warnings.warn(f"module {__name__!r} is deprecated",
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
DeprecationWarning: module 'sre_constants' is deprecated

Vendored pyparsing uses the newly deprecated sre_constants module. This was already fixed and released in pyparsing 3.0.8.

https://docs.python.org/3.11/whatsnew/3.11.html

For the build logs, see:
https://copr-be.cloud.fedoraproject.org/results/@python/python3.11/fedora-rawhide-x86_64/04221474-python-setuptools/

For all our attempts to build python-setuptools with Python 3.11, see:
https://copr.fedorainfracloud.org/coprs/g/python/python3.11/package/python-setuptools/

Testing and mass rebuild of packages is happening in copr. You can follow these instructions to test locally in mock if your package builds with Python 3.11:
https://copr.fedorainfracloud.org/coprs/g/python/python3.11/

Let us know here if you have any questions.

Python 3.11 is planned to be included in Fedora 37. To make that update smoother, we're building Fedora packages with all pre-releases of Python 3.11.
A build failure prevents us from testing all dependent packages (transitive [Build]Requires), so if this package is required a lot, it's important for us to get it fixed soon.
We'd appreciate help from the people who know this package best, but if you don't want to work on this now, let us know so we can try to work around it on our side.

Comment 1 Miro Hrončok 2022-04-14 11:33:45 UTC
See https://github.com/pyparsing/pyparsing/pull/379

Comment 2 Fedora Update System 2022-04-19 16:30:08 UTC
FEDORA-2022-7cef491065 has been submitted as an update to Fedora 37. https://bodhi.fedoraproject.org/updates/FEDORA-2022-7cef491065

Comment 3 Fedora Update System 2022-04-19 16:32:01 UTC
FEDORA-2022-7cef491065 has been pushed to the Fedora 37 stable repository.
If problem still persists, please make note of it in this bug report.

Comment 4 Miro Hrončok 2022-04-19 19:47:03 UTC
*** Bug 2074565 has been marked as a duplicate of this bug. ***

Comment 5 Miro Hrončok 2022-04-19 19:47:05 UTC
*** Bug 2075499 has been marked as a duplicate of this bug. ***

Comment 6 Miro Hrončok 2022-04-19 19:51:17 UTC
*** Bug 2075501 has been marked as a duplicate of this bug. ***


Note You need to log in before you can comment on or make changes to this bug.