Unable to build for alpine with setuptools >= 81.0
envgap__numba__llvmlite-1399
01 / FAILURE SIGNATURE
As reported upstream
#8 1.209 TypeError: spawn() got an unexpected keyword argument 'dry_run'
Not a benchmark task.
- In a clean container the reported failure did not reproduce, or the known fix did not make the project run.
02 / ENVIRONMENT RECIPE
- Base commit
bf28f7541cf24184e61de32dc8d71214c842414c- Manifest
setup.py- Reproduce
Awaiting issue-specific recipe- Run under trace
Awaiting a meaningful runtime command
03 / ORIGINAL ISSUE TEXT
numba/llvmlite #1399 · read the original issue
<!--
Thanks for opening an issue! To help the Numba team handle your information
efficiently, please first ensure that there is no other issue present that
already describes the issue you have
(search at https://github.com/numba/llvmlite/issues?&q=is%3Aissue).
-->
## Reporting a bug
<!--
Before submitting a bug report please ensure that you can check off these boxes:
-->
- [x] I have tried using the latest released version of llvmlite (most recent is
visible in the change log (https://github.com/numba/llvmlite/blob/main/CHANGE_LOG).
- [x] I have included a self contained code sample to reproduce the problem.
i.e. it's possible to run as 'python bug.py'.
When installing on alpine, newer versions of setuptools >=[81.0.0](https://setuptools.pypa.io/en/stable/history.html#v81-0-0) can't be used due to the removal of the `--dry-run` parameter when enforcing PEP517, e.g. as mandated by poetry.
To reproduce:
This works:
```
FROM python:3.12-alpine
RUN apk add --no-cache \
build-base \
llvm20-dev \
llvm20-static \
llvm20-gtest \
cmake
RUN pip install --upgrade pip "setuptools==80.10.2"
RUN echo "setuptools==80.10.2" > /tmp/constraints.txt
ENV PIP_CONSTRAINT=/tmp/constraints.txt
RUN pip install --no-cache-dir --use-pep517 "llvmlite (==0.46.0)"
```
This doesn't:
```
FROM python:3.12-alpine
RUN apk add --no-cache \
build-base \
llvm20-dev \
llvm20-static \
llvm20-gtest \
cmake
RUN pip install --upgrade pip "setuptools==81.0.0"
RUN echo "setuptools==81.0.0" > /tmp/constraints.txt
ENV PIP_CONSTRAINT=/tmp/constraints.txt
RUN pip install --no-cache-dir --use-pep517 "llvmlite (==0.46.0)"
```
Output:
```
#8 1.209 Traceback (most recent call last):
#8 1.209 File "/usr/local/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 389, in <module>
#8 1.209 main()
#8 1.209 File "/usr/local/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 373, in main
#8 1.209 json_out["return_val"] = hook(**hook_input["kwargs"])
#8 1.209 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
#8 1.209 File "/usr/local/lib/python3.12/site-packages/pip/_vendor/pyproject_hooks/_in_process/_in_process.py", line 280, in build_wheel
#8 1.209 return _build_backend().build_wheel(
#8 1.209 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
#8 1.209 File "/tmp/pip-build-env-0r215jkh/overlay/lib/python3.12/site-packages/setuptools/build_meta.py", line 441, in build_wheel
#8 1.209 return _build(['bdist_wheel', '--dist-info-dir', str(metadata_directory)])
#8 1.209 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
#8 1.209 File "/tmp/pip-build-env-0r215jkh/overlay/lib/python3.12/site-packages/setuptools/build_meta.py", line 429, in _build
#8 1.209 return self._build_with_temp_dir(
#8 1.209 ^^^^^^^^^^^^^^^^^^^^^^^^^^
#8 1.209 File "/tmp/pip-build-env-0r215jkh/overlay/lib/python3.12/site-packages/setuptools/build_meta.py", line 410, in _build_with_temp_dir
#8 1.209 self.run_setup()
#8 1.209 File "/tmp/pip-build-env-0r215jkh/overlay/lib/python3.12/site-packages/setuptools/build_meta.py", line 520, in run_setup
#8 1.209 super().run_setup(setup_script=setup_script)
#8 1.209 File "/tmp/pip-build-env-0r215jkh/overlay/lib/python3.12/site-packages/setuptools/build_meta.py", line 317, in run_setup
#8 1.209 exec(code, locals())
#8 1.209 File "<string>", line 187, in <module>
#8 1.209 File "/tmp/pip-build-env-0r215jkh/overlay/lib/python3.12/site-packages/setuptools/__init__.py", line 117, in setup
#8 1.209 return distutils.core.setup(**attrs) # type: ignore[return-value]
#8 1.209 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
#8 1.209 File "/tmp/pip-build-env-0r215jkh/overlay/lib/python3.12/site-packages/setuptools/_distutils/core.py", line 186, in setup
#8 1.209 return run_commands(dist)
#8 1.209 ^^^^^^^^^^^^^^^^^^
#8 1.209 File "/tmp/pip-build-env-0r215jkh/overlay/lib/python3.12/site-packages/setuptools/_distutils/core.py", line 202, in run_commands
#8 1.209 dist.run_commands()
#8 1.209 File "/tmp/pip-build-env-0r215jkh/overlay/lib/python3.12/site-packages/setuptools/_distutils/dist.py", line 1000, in run_commands
#8 1.209 self.run_command(cmd)
#8 1.209 File "/tmp/pip-build-env-0r215jkh/overlay/lib/python3.12/site-packages/setuptools/dist.py", line 1107, in run_command
#8 1.209 super().run_command(command)
#8 1.209 File "/tmp/pip-build-env-0r215jkh/overlay/lib/python3.12/site-packages/setuptools/_distutils/dist.py", line 1019, in run_command
#8 1.209 cmd_obj.run()
#8 1.209 File "<string>", line 149, in run
#8 1.209 File "<string>", line 67, in build_library_files
#8 1.209 TypeError: spawn() got an unexpected keyword argument 'dry_run'
#8 1.209 [end of output]
```
04 / LABELS
Labels from the report text only; not yet run
No supported category has been assigned.
Label rules and the text that matched
[]