Summary
I previously used NumbaMinpack on Fedora 34 with Python 3.11 without any issues. After upgrading to Fedora 42, I am unable to install or import the package successfully on a clean system with Python 3.13.
Environment
- OS: Fedora 42 (fresh install)
- Python: 3.13 (inside a clean virtualenv)
- Packages:
- cmake: 3.31.6
- llvmlite: 0.44.0
- numba: 0.61.2
- numpy: 2.2.6
- packaging: 25.0
- scikit-build: 0.18.1
- setuptools: 80.9.0
- wheel: 0.45.1
Steps to Reproduce
- Create a fresh Python 3.13 virtual environment.
- Install required dependencies (listed above)
- Run:
pip install NumbaMinpack
Problem encountered
- The build fails with a CMake configuration error:
CMake Deprecation Warning at CMakeLists.txt:1 (cmake_minimum_required):
Compatibility with CMake < 3.10 will be removed from a future version of
CMake.
...
CMake Error at CMakeLists.txt:1 (cmake_minimum_required):
Compatibility with CMake < 3.5 has been removed from CMake.
...
An error occurred while configuring with CMake.
Command:
/tmp/pip-build-env-0c0w1llb/overlay/lib64/python3.13/site-packages/cmake/data/bin/cmake /tmp/pip-install-6svpjrw2/numbaminpack_6c843040739d4851ab386035fd4601c7 -G Ninja -DCMAKE_MAKE_PROGRAM:FILEPATH=ninja --no-warn-unused-cli -DCMAKE_INSTALL_PREFIX:PATH=/tmp/pip-install-6svpjrw2/numbaminpack_6c843040739d4851ab386035fd4601c7/_skbuild/linux-x86_64-3.13/cmake-install -DPYTHON_VERSION_STRING:STRING=3.13.5 -DSKBUILD:INTERNAL=TRUE -DCMAKE_MODULE_PATH:PATH=/tmp/pip-build-env-0c0w1llb/overlay/lib/python3.13/site-packages/skbuild/resources/cmake -DPYTHON_EXECUTABLE:PATH=/home/probitjk/.virtualenvs/general/bin/python -DPYTHON_INCLUDE_DIR:PATH=/usr/include/python3.13 -DPYTHON_LIBRARY:PATH=/usr/lib64/libpython3.13.so -DPython_EXECUTABLE:PATH=/home/probitjk/.virtualenvs/general/bin/python -DPython_ROOT_DIR:PATH=/home/probitjk/.virtualenvs/general -DPython_FIND_REGISTRY:STRING=NEVER -DPython_INCLUDE_DIR:PATH=/usr/include/python3.13 -DPython3_EXECUTABLE:PATH=/home/probitjk/.virtualenvs/general/bin/python -DPython3_ROOT_DIR:PATH=/home/probitjk/.virtualenvs/general -DPython3_FIND_REGISTRY:STRING=NEVER -DPython3_INCLUDE_DIR:PATH=/usr/include/python3.13 -DCMAKE_MAKE_PROGRAM:FILEPATH=ninja -DSKBUILD=ON -DCMAKE_BUILD_TYPE:STRING=Release
Source directory:
/tmp/pip-install-6svpjrw2/numbaminpack_6c843040739d4851ab386035fd4601c7
Working directory:
/tmp/pip-install-6svpjrw2/numbaminpack_6c843040739d4851ab386035fd4601c7/_skbuild/linux-x86_64-3.13/cmake-build
Please see CMake's output for more information.
- The build failure was bypassed by installing with:
pip install --no-build-isolation NumbaMinpack
which leads to successful installation
- However importing the package using
python -c "import NumbaMinpack"results in:
OSError: /home/probitjk/.virtualenvs/general/lib/python3.13/site-packages/NumbaMinpack/libminpack.so: cannot enable executable stack as shared object requires: Invalid argument
- Using
execstack -c <path/to/installed/.so/file>(as suggested for similar issues on StackOverflow) allows for the package to get imported, but any call tolmdiforhybrd(following the example in README) causes an immediate segmentation fault.
Installing from source
- The package source is available at GitHub - Nicholaswogan/NumbaMinpack: Python wrapper of Minpack (root finding) which can be called from within numba functions.
- Using
pip install -e .fails with the same CMake configuration error. - Adding
--no-build-isolationto the install command leads to successful installation, but produces the sameOSErrorwhen imported. Patching withexecstack -cleads to segmentation fault again.
I have also installed Python 3.11 and 3.10 but that was unable to resolve the issue. Using Conda has also failed to fix the issue.