FreeBSD 13.4-RELEASE-p4 Python 3.11.11 (main, Dec 13 2024, 06:45:40) [Clang 18.1.6 (https://github.com/llvm/llvm-project.git llvmorg-18.1.6-0-g1118c2 on freebsd13 /usr/ports/devel/py-setuptools # make ===> License MIT accepted by the user ===> py311-setuptools-63.1.0_3 depends on file: /usr/local/sbin/pkg - found ===> Fetching all distfiles required by py311-setuptools-63.1.0_3 for building ===> Extracting for py311-setuptools-63.1.0_3 => SHA256 Checksum OK for python/setuptools-63.1.0.tar.gz. ===> Patching for py311-setuptools-63.1.0_3 ===> py311-setuptools-63.1.0_3 depends on package: py311-wheel044<0.46.0 - found ===> py311-setuptools-63.1.0_3 depends on file: /usr/local/bin/python3.11 - found ===> py311-setuptools-63.1.0_3 depends on package: py311-build>=0 - found ===> py311-setuptools-63.1.0_3 depends on package: py311-installer>=0 - found ===> Configuring for py311-setuptools-63.1.0_3 ===> Building for py311-setuptools-63.1.0_3 * Getting build dependencies for wheel... Traceback (most recent call last): File "/usr/local/lib/python3.11/site-packages/pyproject_hooks/_in_process/_in_process.py", line 389, in <module> main() File "/usr/local/lib/python3.11/site-packages/pyproject_hooks/_in_process/_in_process.py", line 373, in main json_out["return_val"] = hook(**hook_input["kwargs"]) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/site-packages/pyproject_hooks/_in_process/_in_process.py", line 143, in get_requires_for_build_wheel return hook(config_settings) ^^^^^^^^^^^^^^^^^^^^^ File "/usr/ports/devel/py-setuptools/work-py311/setuptools-63.1.0/setuptools/build_meta.py", line 177, in get_requires_for_build_wheel return self._get_build_requires( ^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/ports/devel/py-setuptools/work-py311/setuptools-63.1.0/setuptools/build_meta.py", line 159, in _get_build_requires self.run_setup() File "/usr/ports/devel/py-setuptools/work-py311/setuptools-63.1.0/setuptools/build_meta.py", line 174, in run_setup exec(compile(code, __file__, 'exec'), locals()) File "setup.py", line 87, in <module> dist = setuptools.setup(**setup_params) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/ports/devel/py-setuptools/work-py311/setuptools-63.1.0/setuptools/__init__.py", line 87, in setup return distutils.core.setup(**attrs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/ports/devel/py-setuptools/work-py311/setuptools-63.1.0/setuptools/_distutils/core.py", line 139, in setup _setup_distribution = dist = klass(attrs) ^^^^^^^^^^^^ File "/usr/ports/devel/py-setuptools/work-py311/setuptools-63.1.0/setuptools/dist.py", line 476, in __init__ _Distribution.__init__( File "/usr/ports/devel/py-setuptools/work-py311/setuptools-63.1.0/setuptools/_distutils/dist.py", line 275, in __init__ self.finalize_options() File "/usr/ports/devel/py-setuptools/work-py311/setuptools-63.1.0/setuptools/dist.py", line 899, in finalize_options for ep in sorted(loaded, key=by_order): ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/ports/devel/py-setuptools/work-py311/setuptools-63.1.0/setuptools/dist.py", line 898, in <lambda> loaded = map(lambda e: e.load(), filtered) ^^^^^^^^ File "/usr/local/lib/python3.11/importlib/metadata/__init__.py", line 202, in load module = import_module(match.group('module')) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/usr/local/lib/python3.11/importlib/__init__.py", line 126, in import_module return _bootstrap._gcd_import(name[level:], package, level) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "<frozen importlib._bootstrap>", line 1204, in _gcd_import File "<frozen importlib._bootstrap>", line 1176, in _find_and_load File "<frozen importlib._bootstrap>", line 1126, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "<frozen importlib._bootstrap>", line 1204, in _gcd_import File "<frozen importlib._bootstrap>", line 1176, in _find_and_load File "<frozen importlib._bootstrap>", line 1126, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "<frozen importlib._bootstrap>", line 1204, in _gcd_import File "<frozen importlib._bootstrap>", line 1176, in _find_and_load File "<frozen importlib._bootstrap>", line 1147, in _find_and_load_unlocked File "<frozen importlib._bootstrap>", line 690, in _load_unlocked File "<frozen importlib._bootstrap_external>", line 940, in exec_module File "<frozen importlib._bootstrap>", line 241, in _call_with_frames_removed File "/usr/local/lib/python3.11/site-packages/setuptools_scm/__init__.py", line 7, in <module> from ._config import Configuration File "/usr/local/lib/python3.11/site-packages/setuptools_scm/_config.py", line 15, in <module> from ._integration.pyproject_reading import ( File "/usr/local/lib/python3.11/site-packages/setuptools_scm/_integration/pyproject_reading.py", line 8, in <module> from .setuptools import read_dist_name_from_setup_cfg File "/usr/local/lib/python3.11/site-packages/setuptools_scm/_integration/setuptools.py", line 62, in <module> _warn_on_old_setuptools() File "/usr/local/lib/python3.11/site-packages/setuptools_scm/_integration/setuptools.py", line 29, in _warn_on_old_setuptools if int(_version.split(".")[0]) < 61: ^^^^^^^^^^^^^^^^^^^^^^^^^^^ ValueError: invalid literal for int() with base r10: 'unknown' ERROR Backend subprocess exited when trying to invoke get_requires_for_build_wheel *** Error code 1 Stop. make: stopped in /usr/ports/devel/py-setuptools
Same problem. Rebuilt all dependencies required by and depending on, same result
14.2-STABLE FreeBSD 14.2-STABLE #6 stable/14-n270822-4a328b804996: Tue Mar 25 06:22:54 AEDT 2025
All very weird and beyond my comprehension, but: 1142 17:20 pkg delete py311-wheel044-0.44.0 1143 17:21 pkg delete py311-wheel-0.45.1 allowed me to build and install py311-setuptools. py311-wheel044-0.44.0 was installed during build.
It seems that some python packages require py311-wheel044-0.44.0 and some require py311-wheel-0.45.1 and, of course, these install files into the same place and so conflict. To build packages I have to keep swapping between the two.
(In reply to Trev from comment #4) devel/py-wheel044 is only a build-time dependency required by one port (setuptools). Please remove py311-wheel044 and py311-wheel and proceed. Alternatively, use poudriere and you won't see such problems. poudriere is considered a gold standard when it comes to building packages on FreeBSD. Not a single port currently fails in poudriere due to the wheel044 conflict.
(In reply to Yuri Victorovich from comment #5) Thanks Yuri, I'm aware of poudriere. If I wasn't running FreeBSD 13 and 14 on a stable of old Apple Mac minis (the latest being a 2012 model) I would use poudriere but that is what I'm doing and to use poudriere instead would be too great a time sink.
Please avoid promoting Poudriere as a means to justify not bothering to research bugs within the FreeBSD Ports. Thank You for your contributions to FreeBSD.
(In reply to Oclair from comment #7) There's not much to research here. The commit message explains why devel/py-wheel044 was added: commit de7c5ca4a2d40df82a8ca46b37c8b859a412b89c Author: Charlie Li <vishwin@FreeBSD.org> Date: Sat Apr 5 13:12:38 2025 devel/py-wheel044: "temporarily" add The sole purpose of this port is to build setuptools < 70.1.0 under USE_PYTHON=pep517, as a stopgap to allow newer Python distributions/interpreters to land while the setuptools update continues to be worked on. This port will be removed once setuptools is updated. Nothing else is to declare this as a dependency; continue to use devel/py-wheel elsewhere. As of setuptools 70.1.0, bdist_wheel (what setuptools executes as part of ${PEP517_BUILD_CMD} to build the wheel) has moved from wheel to setuptools [0], so once setuptools is updated past said version, consumers should not continue declaring devel/py-wheel in BUILD_DEPENDS unless the package needs functionality beyond what moved into setuptools. [0] https://setuptools.pypa.io/en/latest/history.html#v70-1-0 PR: 271673, 274671 The current version of setuptools in the ports tree fails to build with the current version of wheel.
A note in /usr/ports/UPDATING would be helpful.