-
Notifications
You must be signed in to change notification settings - Fork 150
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Can't repair wheel archive on manylinux_2_28 #531
Comments
dev note: git diff
diff --git a/tools/docker/python/build-manylinux.sh b/tools/docker/python/build-manylinux.sh
index 6c31c30998..fe804231ee 100755
--- a/tools/docker/python/build-manylinux.sh
+++ b/tools/docker/python/build-manylinux.sh
@@ -149,7 +149,7 @@ function check_wheel() {
# if no files found do nothing
[[ -e "$FILE" ]] || continue
python -m auditwheel show "$FILE" || true
- python -m auditwheel -v repair --plat "manylinux_2_28_$PLATFORM" "$FILE" -w "$export_root"
+ #python -m auditwheel -v repair --plat "manylinux_2_28_$PLATFORM" "$FILE" -w "$export_root"
#python -m auditwheel -v repair --plat manylinux_2_28_x86_64 "$FILE" -w "$export_root"
#python -m auditwheel -v repair --plat manylinux_2_28_aarch64 "$FILE" -w "$export_root"
done and command: git clone -b mizux/rc [email protected]:google/or-tools.git && cd or-tools
cd tools/docker
make python_amd64_manylinux_cp312_export note: I have a Makefile to orchestrate all the docker commands # devel stage is before the build/auditwheel which fail
make sh_python_amd64_manylinux_cp312_devel
[inside the docker]: ./build-manylinux.sh build
|
More test using Archlinux... TLDR: archlinux auditwheel pkg is broken, using auditwheel 6.2.0 (venv) works.
$ auditwheel repair --plat "manylinux_2_27_x86_64" ortools-9.12.4478-cp312-cp312-linux_x86_64.whl
Traceback (most recent call last):
File "/usr/bin/auditwheel", line 8, in <module>
sys.exit(main())
~~~~^^
File "/usr/lib/python3.13/site-packages/auditwheel/main.py", line 54, in main
rval = args.func(args, p)
File "/usr/lib/python3.13/site-packages/auditwheel/main_repair.py", line 109, in execute
from .repair import repair_wheel
File "/usr/lib/python3.13/site-packages/auditwheel/repair.py", line 21, in <module>
from .wheel_abi import get_wheel_elfdata
File "/usr/lib/python3.13/site-packages/auditwheel/wheel_abi.py", line 20, in <module>
from .genericpkgctx import InGenericPkgCtx
File "/usr/lib/python3.13/site-packages/auditwheel/genericpkgctx.py", line 4, in <module>
from .wheeltools import InWheelCtx
File "/usr/lib/python3.13/site-packages/auditwheel/wheeltools.py", line 26, in <module>
from wheel.pkginfo import read_pkg_info, write_pkg_info
ModuleNotFoundError: No module named 'wheel.pkginfo' note: should be fixed by https://gitlab.archlinux.org/archlinux/packaging/packages/python-auditwheel/-/merge_requests/1
$ python -m venv /tmp/venv
$ source /tmp/venv/bin/activate
$ pip install auditwheel
$ pip show auditwheel | grep Version
Version: 6.2.0
$ python -m auditwheel show .../ortools-9.12.4478-cp312-cp312-linux_x86_64.whl
$ python -m auditwheel repair --plat "manylinux_2_28_x86_64" .../ortools-9.12.4478-cp312-cp312-linux_x86_64.whl -w .
...
Fixed-up wheel written to ./ortools-9.12.4478-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl EDIT: on my archlinux I've already installed the libabsl package so auditwheel could found them in -> Now need to know why is not working insed the manylinux_2_28 image... |
Found a dirty workaround, since I ALSO have the library in the LD_LIBRARY_PATH="${LD_LIBRARY_PATH}:${ROOT_DIR}/${BUILD_DIR}/lib64" python -m auditwheel repair --plat "manylinux_2_28_$PLATFORM" "$FILE" -w . But still since the libraries are in the wheel and RUN_PATH seems legit, I still think there is a bug in the current auditwheel implem -> Will try to create a MRE to dig this issue... |
For google/or-tools we are migrating from
manylinux2014
toquay.io/pypa/manylinux_2_28_x86_64
to generate our python native library (framework)Here the wheel generated inside the docker image against the
/opt/python/cp312-cp312/bin/python
inside a virtualenv.ortools-9.12.4478-cp312-cp312-linux_x86_64.whl.zip (ed to remove
.zip
extension needed to upload on github)General Layout of the wheel package:
note: take a look at the
ortools/graph/python/max_flow.cpython-312-x86_64-linux-gnu.so
and
objdump -p ...
Protocol
note: I'm using a python 3.12 venv on a x86_64 linux
Expected
A
ortools-9.12.4478-cp312-cp312-manylinux_2_28_x86_64.whl
generated fileObserved
auditwheel failed...
note: Using the same "workflow" but with
quay.io/pypa/musllinux_1_2_x86_64:latest
works as expected i.e.auditwheel repair it as
ortools-9.12.4466-cp39-cp39-musllinux_1_2_x86_64.whl
note: On my way to perform some test, hack my local auditwheel install to add some logs etc...
The text was updated successfully, but these errors were encountered: