From 1ce4477c9f6b3994687549fcae906acabc962d1a Mon Sep 17 00:00:00 2001 From: mayeut Date: Sun, 30 Mar 2025 11:12:37 +0200 Subject: [PATCH 1/3] fix: add another heuristic for libc discovery --- scripts/create-arch-wheels.sh | 20 +++++++-- src/auditwheel/lddtree.py | 6 +++ src/auditwheel/libc.py | 13 ++++-- src/auditwheel/policy/__init__.py | 13 +++++- ...simple-0.0.1-cp313-cp313-linux_aarch64.whl | Bin ...tsimple-0.0.1-cp313-cp313-linux_armv5l.whl | Bin ...tsimple-0.0.1-cp313-cp313-linux_armv7l.whl | Bin ...estsimple-0.0.1-cp313-cp313-linux_i686.whl | Bin ...tsimple-0.0.1-cp313-cp313-linux_mips64.whl | Bin ...simple-0.0.1-cp313-cp313-linux_ppc64le.whl | Bin ...simple-0.0.1-cp313-cp313-linux_riscv64.whl | Bin ...stsimple-0.0.1-cp313-cp313-linux_s390x.whl | Bin ...tsimple-0.0.1-cp313-cp313-linux_x86_64.whl | Bin ...simple-0.0.1-cp312-cp312-linux_aarch64.whl | Bin 0 -> 8165 bytes ...tsimple-0.0.1-cp312-cp312-linux_armv6l.whl | Bin 0 -> 7674 bytes ...tsimple-0.0.1-cp312-cp312-linux_armv7l.whl | Bin 0 -> 7691 bytes ...estsimple-0.0.1-cp312-cp312-linux_i686.whl | Bin 0 -> 7500 bytes ...simple-0.0.1-cp312-cp312-linux_ppc64le.whl | Bin 0 -> 8195 bytes ...simple-0.0.1-cp312-cp312-linux_riscv64.whl | Bin 0 -> 7353 bytes ...stsimple-0.0.1-cp312-cp312-linux_s390x.whl | Bin 0 -> 7632 bytes ...tsimple-0.0.1-cp312-cp312-linux_x86_64.whl | Bin 0 -> 7616 bytes tests/integration/test_manylinux.py | 39 ++++++++++++++++++ tests/integration/test_nonplatform_wheel.py | 14 ++++--- tests/unit/test_policy.py | 10 ++--- 24 files changed, 92 insertions(+), 23 deletions(-) rename tests/integration/arch-wheels/{ => glibc}/testsimple-0.0.1-cp313-cp313-linux_aarch64.whl (100%) rename tests/integration/arch-wheels/{ => glibc}/testsimple-0.0.1-cp313-cp313-linux_armv5l.whl (100%) rename tests/integration/arch-wheels/{ => glibc}/testsimple-0.0.1-cp313-cp313-linux_armv7l.whl (100%) rename tests/integration/arch-wheels/{ => glibc}/testsimple-0.0.1-cp313-cp313-linux_i686.whl (100%) rename tests/integration/arch-wheels/{ => glibc}/testsimple-0.0.1-cp313-cp313-linux_mips64.whl (100%) rename tests/integration/arch-wheels/{ => glibc}/testsimple-0.0.1-cp313-cp313-linux_ppc64le.whl (100%) rename tests/integration/arch-wheels/{ => glibc}/testsimple-0.0.1-cp313-cp313-linux_riscv64.whl (100%) rename tests/integration/arch-wheels/{ => glibc}/testsimple-0.0.1-cp313-cp313-linux_s390x.whl (100%) rename tests/integration/arch-wheels/{ => glibc}/testsimple-0.0.1-cp313-cp313-linux_x86_64.whl (100%) create mode 100644 tests/integration/arch-wheels/musllinux_1_2/testsimple-0.0.1-cp312-cp312-linux_aarch64.whl create mode 100644 tests/integration/arch-wheels/musllinux_1_2/testsimple-0.0.1-cp312-cp312-linux_armv6l.whl create mode 100644 tests/integration/arch-wheels/musllinux_1_2/testsimple-0.0.1-cp312-cp312-linux_armv7l.whl create mode 100644 tests/integration/arch-wheels/musllinux_1_2/testsimple-0.0.1-cp312-cp312-linux_i686.whl create mode 100644 tests/integration/arch-wheels/musllinux_1_2/testsimple-0.0.1-cp312-cp312-linux_ppc64le.whl create mode 100644 tests/integration/arch-wheels/musllinux_1_2/testsimple-0.0.1-cp312-cp312-linux_riscv64.whl create mode 100644 tests/integration/arch-wheels/musllinux_1_2/testsimple-0.0.1-cp312-cp312-linux_s390x.whl create mode 100644 tests/integration/arch-wheels/musllinux_1_2/testsimple-0.0.1-cp312-cp312-linux_x86_64.whl diff --git a/scripts/create-arch-wheels.sh b/scripts/create-arch-wheels.sh index 55c7f982..054d70df 100755 --- a/scripts/create-arch-wheels.sh +++ b/scripts/create-arch-wheels.sh @@ -7,11 +7,11 @@ set -eux SCRIPT_DIR="$(CDPATH='' cd -- "$(dirname -- "$0")" && pwd -P)" INTEGRATION_TEST_DIR="${SCRIPT_DIR}/../tests/integration" -mkdir -p "${INTEGRATION_TEST_DIR}/arch-wheels" +mkdir -p "${INTEGRATION_TEST_DIR}/arch-wheels/glibc" +mkdir -p "${INTEGRATION_TEST_DIR}/arch-wheels/musllinux_1_2" # "mips64le" built with buildpack-deps:bookworm and renamed cp313-cp313 -# "386" "amd64" "arm/v5" "arm/v7" "arm64/v8" -for ARCH in "ppc64le" "riscv64" "s390x"; do +for ARCH in "386" "amd64" "arm/v5" "arm/v7" "arm64/v8" "ppc64le" "riscv64" "s390x"; do docker run --platform linux/${ARCH} -i --rm -v "${INTEGRATION_TEST_DIR}:/tests" debian:trixie-20250203 << "EOF" # for, "arm/v5" QEMU will report armv7l, running on aarch64 will report aarch64, force armv5l/armv7l case "$(dpkg --print-architecture)" in @@ -21,7 +21,19 @@ case "$(dpkg --print-architecture)" in esac DEBIAN_FRONTEND=noninteractive apt-get update DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends gcc python3-pip python3-dev -python3 -m pip wheel --no-deps -w /tests/arch-wheels /tests/testsimple +python3 -m pip wheel --no-deps -w /tests/arch-wheels/glibc /tests/testsimple EOF +done +for ARCH in "386" "amd64" "arm/v6" "arm/v7" "arm64/v8" "ppc64le" "riscv64" "s390x"; do + docker run --platform linux/${ARCH} -i --rm -v "${INTEGRATION_TEST_DIR}:/tests" alpine:3.21 << "EOF" +# for, "arm/v5" QEMU will report armv7l, running on aarch64 will report aarch64, force armv5l/armv7l +case "$(cat /etc/apk/arch)" in + armhf) export _PYTHON_HOST_PLATFORM="linux-armv6l";; + armv7) export _PYTHON_HOST_PLATFORM="linux-armv7l";; + *) ;; +esac +apk add gcc binutils musl-dev python3-dev py3-pip +python3 -m pip wheel --no-deps -w /tests/arch-wheels/musllinux_1_2 /tests/testsimple +EOF done diff --git a/src/auditwheel/lddtree.py b/src/auditwheel/lddtree.py index 96f4dbc0..ae755579 100644 --- a/src/auditwheel/lddtree.py +++ b/src/auditwheel/lddtree.py @@ -522,6 +522,12 @@ def ldd( if libc != Libc.GLIBC: msg = f"found a dependency on GLIBC but the libc is already set to {libc}" raise InvalidLibc(msg) + if libc is None: + # try the filename as a last resort + if path.name.endswith(("-arm-linux-musleabihf.so", "-linux-musl.so")): + libc = Libc.MUSL + elif path.name.endswith(("-arm-linux-gnueabihf.so", "-linux-gnu.so")): + libc = Libc.GLIBC if ldpaths is None: ldpaths = load_ld_paths(libc).copy() # Propagate the rpaths used by the main ELF since those will be diff --git a/src/auditwheel/libc.py b/src/auditwheel/libc.py index bcce2850..82682df5 100644 --- a/src/auditwheel/libc.py +++ b/src/auditwheel/libc.py @@ -5,7 +5,7 @@ import re import subprocess from dataclasses import dataclass -from enum import IntEnum +from enum import Enum from pathlib import Path from .error import InvalidLibc @@ -19,9 +19,14 @@ class LibcVersion: minor: int -class Libc(IntEnum): - GLIBC = (1,) - MUSL = (2,) +class Libc(Enum): + value: str + + GLIBC = "glibc" + MUSL = "musl" + + def __str__(self) -> str: + return self.value def get_current_version(self) -> LibcVersion: if self == Libc.MUSL: diff --git a/src/auditwheel/policy/__init__.py b/src/auditwheel/policy/__init__.py index 8f82e01c..8536cf4a 100644 --- a/src/auditwheel/policy/__init__.py +++ b/src/auditwheel/policy/__init__.py @@ -11,6 +11,7 @@ from ..architecture import Architecture from ..elfutils import filter_undefined_symbols +from ..error import InvalidLibc from ..lddtree import DynamicExecutable from ..libc import Libc from ..tools import is_subdir @@ -62,8 +63,13 @@ def __init__( raise ValueError(msg) if libc == Libc.MUSL: if musl_policy is None: - musl_version = libc.get_current_version() - musl_policy = f"musllinux_{musl_version.major}_{musl_version.minor}" + try: + musl_version = libc.get_current_version() + musl_policy = f"musllinux_{musl_version.major}_{musl_version.minor}" + except InvalidLibc: + logger.warning( + "can't determine musl libc version, latest known version will be used." + ) elif _MUSL_POLICY_RE.match(musl_policy) is None: msg = f"Invalid 'musl_policy': '{musl_policy}'" raise ValueError(msg) @@ -106,6 +112,9 @@ def __init__( self._policies.sort() if self._libc_variant == Libc.MUSL: + if musl_policy is None: + self._musl_policy = "_".join(self._policies[1].name.split("_")[0:3]) + self._policies = [self._policies[0], self._policies[1]] assert len(self._policies) == 2, self._policies def __iter__(self) -> Generator[Policy]: diff --git a/tests/integration/arch-wheels/testsimple-0.0.1-cp313-cp313-linux_aarch64.whl b/tests/integration/arch-wheels/glibc/testsimple-0.0.1-cp313-cp313-linux_aarch64.whl similarity index 100% rename from tests/integration/arch-wheels/testsimple-0.0.1-cp313-cp313-linux_aarch64.whl rename to tests/integration/arch-wheels/glibc/testsimple-0.0.1-cp313-cp313-linux_aarch64.whl diff --git a/tests/integration/arch-wheels/testsimple-0.0.1-cp313-cp313-linux_armv5l.whl b/tests/integration/arch-wheels/glibc/testsimple-0.0.1-cp313-cp313-linux_armv5l.whl similarity index 100% rename from tests/integration/arch-wheels/testsimple-0.0.1-cp313-cp313-linux_armv5l.whl rename to tests/integration/arch-wheels/glibc/testsimple-0.0.1-cp313-cp313-linux_armv5l.whl diff --git a/tests/integration/arch-wheels/testsimple-0.0.1-cp313-cp313-linux_armv7l.whl b/tests/integration/arch-wheels/glibc/testsimple-0.0.1-cp313-cp313-linux_armv7l.whl similarity index 100% rename from tests/integration/arch-wheels/testsimple-0.0.1-cp313-cp313-linux_armv7l.whl rename to tests/integration/arch-wheels/glibc/testsimple-0.0.1-cp313-cp313-linux_armv7l.whl diff --git a/tests/integration/arch-wheels/testsimple-0.0.1-cp313-cp313-linux_i686.whl b/tests/integration/arch-wheels/glibc/testsimple-0.0.1-cp313-cp313-linux_i686.whl similarity index 100% rename from tests/integration/arch-wheels/testsimple-0.0.1-cp313-cp313-linux_i686.whl rename to tests/integration/arch-wheels/glibc/testsimple-0.0.1-cp313-cp313-linux_i686.whl diff --git a/tests/integration/arch-wheels/testsimple-0.0.1-cp313-cp313-linux_mips64.whl b/tests/integration/arch-wheels/glibc/testsimple-0.0.1-cp313-cp313-linux_mips64.whl similarity index 100% rename from tests/integration/arch-wheels/testsimple-0.0.1-cp313-cp313-linux_mips64.whl rename to tests/integration/arch-wheels/glibc/testsimple-0.0.1-cp313-cp313-linux_mips64.whl diff --git a/tests/integration/arch-wheels/testsimple-0.0.1-cp313-cp313-linux_ppc64le.whl b/tests/integration/arch-wheels/glibc/testsimple-0.0.1-cp313-cp313-linux_ppc64le.whl similarity index 100% rename from tests/integration/arch-wheels/testsimple-0.0.1-cp313-cp313-linux_ppc64le.whl rename to tests/integration/arch-wheels/glibc/testsimple-0.0.1-cp313-cp313-linux_ppc64le.whl diff --git a/tests/integration/arch-wheels/testsimple-0.0.1-cp313-cp313-linux_riscv64.whl b/tests/integration/arch-wheels/glibc/testsimple-0.0.1-cp313-cp313-linux_riscv64.whl similarity index 100% rename from tests/integration/arch-wheels/testsimple-0.0.1-cp313-cp313-linux_riscv64.whl rename to tests/integration/arch-wheels/glibc/testsimple-0.0.1-cp313-cp313-linux_riscv64.whl diff --git a/tests/integration/arch-wheels/testsimple-0.0.1-cp313-cp313-linux_s390x.whl b/tests/integration/arch-wheels/glibc/testsimple-0.0.1-cp313-cp313-linux_s390x.whl similarity index 100% rename from tests/integration/arch-wheels/testsimple-0.0.1-cp313-cp313-linux_s390x.whl rename to tests/integration/arch-wheels/glibc/testsimple-0.0.1-cp313-cp313-linux_s390x.whl diff --git a/tests/integration/arch-wheels/testsimple-0.0.1-cp313-cp313-linux_x86_64.whl b/tests/integration/arch-wheels/glibc/testsimple-0.0.1-cp313-cp313-linux_x86_64.whl similarity index 100% rename from tests/integration/arch-wheels/testsimple-0.0.1-cp313-cp313-linux_x86_64.whl rename to tests/integration/arch-wheels/glibc/testsimple-0.0.1-cp313-cp313-linux_x86_64.whl diff --git a/tests/integration/arch-wheels/musllinux_1_2/testsimple-0.0.1-cp312-cp312-linux_aarch64.whl b/tests/integration/arch-wheels/musllinux_1_2/testsimple-0.0.1-cp312-cp312-linux_aarch64.whl new file mode 100644 index 0000000000000000000000000000000000000000..a5a40b9b4c270c19979c0059c610a1e590392a3a GIT binary patch literal 8165 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 U1@*5_Q2v~me=N>L^Vi+~0`VO~^Z)<= literal 0 HcmV?d00001 diff --git a/tests/integration/arch-wheels/musllinux_1_2/testsimple-0.0.1-cp312-cp312-linux_armv6l.whl b/tests/integration/arch-wheels/musllinux_1_2/testsimple-0.0.1-cp312-cp312-linux_armv6l.whl new file mode 100644 index 0000000000000000000000000000000000000000..49ca14a8be4a750f404f997967c2bd671f2aa058 GIT binary patch literal 7674 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 literal 0 HcmV?d00001 diff --git a/tests/integration/arch-wheels/musllinux_1_2/testsimple-0.0.1-cp312-cp312-linux_armv7l.whl b/tests/integration/arch-wheels/musllinux_1_2/testsimple-0.0.1-cp312-cp312-linux_armv7l.whl new file mode 100644 index 0000000000000000000000000000000000000000..da5acddc0a115e1958d3e9014c23ade13dab5977 GIT binary patch literal 7691 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 HU!(s6l_*Z| literal 0 HcmV?d00001 diff --git a/tests/integration/arch-wheels/musllinux_1_2/testsimple-0.0.1-cp312-cp312-linux_i686.whl b/tests/integration/arch-wheels/musllinux_1_2/testsimple-0.0.1-cp312-cp312-linux_i686.whl new file mode 100644 index 0000000000000000000000000000000000000000..304a494908c296eb41205ea6676a116471e95c49 GIT binary patch literal 7500 zcma)>bxYIOk%5t!9I8abfNKnFRzB+nBG{X4=P*4HdP*C)LzPg&bxVl)| zJKC88O&z^ltw0U{Hr7u7Yc_69fSt92nxcNx!dow z%f6@crLFxq7g3>7nHM$&2U4cdGdzis7(T*e`7({|9ipu%b(0SZLipi(xn}-$b8#Lh z>(ycBg*pV_BzPJ9ygO4B@Wi;3pV?Lb0$>$OIV3LAGdKY$-yc#FsH^9Scx`>u#nN8O@tj2H`x0jMNuE#F+t3=40FP2 zaZnk^OR&I^U3V3CPQ3MP0$u7ezB8d2l7Uo%1eyZZPjwn4g}azvhwq0P@h%yxSjBWd zcwVrgE3)BEXb^EOxU*$jmcUxH56QQrpCVTn%8h%&(xcsPNRL5nOUMSllBs^`HdH$+ z8DouI)aO}WQbzl?b-hA1tav{{c1zCKhmEmo#^W?-+9!2FLX$As{Rn{z{m9)*9q4yQ z80M5f%FFFkv?M=}rSm-8ak|@Ztdbo&faowBc-4F73H0huYkPZiAK&s^v|8`HO0LJA z!dK#F`=xaT%I=@V)10gvjf8DG#&+f&Zh8rZzk__bCA6*K{%yAZGwSO%AWo$A;McmB z1fFy>%X?adf}p~HCCgBtRV0+#=>X8)V`Ob3;TM+POM<-k!L?erOlx(_W!Qu49s0_klgz-p-2`rH6V2s0L%H4Ai3}eK&RY5yv-@)IZnP zC;icalx2E&u_#UUhCX~8nAzg-7EY{zsHRxcQ%nA z?N7mwi8n+^V~SYLw4Ls7CCSgP0H~nUlMMR(+kk8O``XhpUS@s|3Etdso4xP&5_sZA zxz;5Kyyn|`ncKqvUKL)6IM_26!7zKSrP_B^5vr6j+(+BLX@#eM9q70MP z&9_F+r%@T+qpBQS{!EL2km(ktD!cOO@AU6*SCyz#YOl11L~XL}uN}G;H-tHQ>+L{^ za3M9r^$h@Q@e}s$nWeT5o+@0y*GK;{9G8EIsp*}l$&E9M_yGB1mhDExW9Xr^)4c5L`bU`|x4FUtT;j2cM zPWzTj~v^0hxc)Tkl+eOEhb0*F8SfUJ|`98?75PuKt|x8CoLm zQgcy6P~AKBSbNcWz%VRp!^$x`4l{Ut2<>;Go#JW1n07}I^d>(aZT#F-Q42gt}_+c+kydb=lp_xR@-6wE6M^0g;+TdN~t`XqCUnuNz! zcr@fx{GhP)=}PEqxN|mvC)uhQ)he*-e8|(sO|??~a5I+~6jEam0jj2sU{=2+#gKE% zbKAc5`aAbJ!QfH;9A-}=HNfZIm(lXUh1+bJt`yu~ycAhe_HjY?u4nsf+Z+6;YSa;* zowk+Qf9&!~NgHn~rIYet^jq9 zP#0#XX1Xng_S?${tp)17Bc-RKW%ZjmwPH8h9cpIS7Wq0cr~JktW2Ac(y_Z8z{R zoTL6hcE7pEDII*BxmYmRV-gl&o%sT4U0Pa3TPUWvh>e?di&0_(^)S9~(FnmVOA*7E z6(W1V3v`XNZpf^K^X}Mc$(vgfLS1_vFu*{ZG0uE?uoecsd58v)v-<@GV6DL*C~<7d z^*W?WWRu?*>C--0`*bQH?i4f-AIkOeFRV%}dKV)&`E9l)2k4sdX}yI|bJMjzd2)WE znk=PS^~^=_n~v(SvJpAXspUfA9`xS;`%(m?duR!U@d|;beGS}2vJN&+wwzIjUI<}- zkHr}^zJ&%pfqzqM%&fJOC$$u28?qcxcrlxK$H(j&KM=7nbM;@5CVK?j)e_vM`4FJK zRzDCV3s9T~JSZ&Ce!ZYq;i|16tm+INqEK1sw?_gwIChj}_S`AEZT*1{XW>xjjo@`jqb(9di@0;#GuN%~;Ds`@5vDJT1ye5cYOs$))Aeu8()XRL z<4aB9%R!ytWZjJ8(nC0<$0GQWpfj#rq@HcpkaH8wl?Q=1;{-^^-LngnD6$uAvS)WG zj%W^!+N;wDl9Cs5$wCt1?4sB=)M|bQ4%#e_gx2(-C z6{l!nOfzH6wS98L{_0Rq)K(ciYSt1qY#xE?gO;>YN0%#@yqk&*RwaDqp)+iz+i_3D zepyB?#U3P^+=HZvUt>mo1uS_b6?F(BD8bHYZ_O8Pm^PS7Kblg${e96J4=mSRs7-N?O8r_iE##8wFcJhU#Zi!k1Y!p{is4zp9rTthRytF1;pmic=){LVe#C z7(1a-0mbGFn4vFJ~qR7U98}Iwr;O%0LMvo+D?j3Och?iRz=BqnAtfChh|CTHQ zKcvO6ULW-y>~KG=ff{mHXf!*8qW`@U&8#xmuqu?%7QTf8wQ&rw*B$_C{6Oou?{=}W z0X|l?6fiv+f4FYJXFd0FCgi_CKscIU&dVl4z#GG>df$c0lwv5J9fO+1EQGrDn6}~k zVA|-y>OH3M2?60HTAT5+a29mUcM%iB^Q}qY+-G<#!~Wg?CgC7C!d1%ey>@#!4#}wn z*%Jic72Jb1z^GJa7>~EC2no)N0oABQ;8cn}T+~BwrWN~m0EO|}wmoX}s8RsaaIeDy zTrC%>9_@^n682^&@u7({%V1g;gd2|3Vi#`@B77?|Vr_=#=F+tx6cy+Y{`2$lzyUH3 zVx&wa>`NTfraA|yr+y-}PFcY9Ai0B)`x*IPx zdyf`q_~>;^Dx%B9D>|4reb8miML;^la$#R%DajS=V|e~xgTE0Z(zfQLEwHS_&oV|r z0EO6oF6@gqjgD@&L&}ZS>d*@ZGVwoIlQ7}vI0}8$0|AR_(8G14nfuZ$RAvKTIy;Fb zo)ZGrwV&}2<514$R=%Z8Z$PPg1g6@i9~iSoEF_w0_Wq>erdY*8_>AN2sWidP;NJCh zA&{#z2ND|tz3`D1)_feS6WFo$EJkAD1cFo?XqrK)ll`Be=jr=! zEjI}#oAN`~_wBW(stb&r)N>nD&!K6t?jys#TX*|PMUH{&4ZB?w)mH@(y+Jz zvvB^5=b;}Rb3o;w2$24Q3Hgm{gqyF6XkIhOe9ZEG4Pu*wwfJ>bSVH5ZGE0W zWxjRUf7~%UGO$iX3Z1JI4}Dzh&i~8(ETbqQ_W(W+!{^&g?ljEef&t5{WJuswJ3}-rUomC@o;Q)^ek&&`M<7ge~&Y?k5$OEWDa}5!E=~*fll_uF>K3S#^pGc_-tN zMO~YUVgtIp68WZ(+snkw^~J{qgBD(Js35s{`DpPM?ihF)*z9e}57aT)3eMz_vk=H~ zWtwqjlB_M;v2tPd;z`xlMs+jV;SbsDb}#(PidfK^<3b2$@oA}~$`+hGqkXAl97!0< zbx!msE=#>1GBRyQ#HBHNoYiJimok{~|9l8fRy4B$x+#-1}c9 zs^vZQAoB8E|)}7S-X0P$VsF_V!(P=@TPQ3fR&otg?fL)Oq7O zWEowDA#FkV9u_9$c9tb&rF?gyS!|@1Qh4HmktiSg8977o#qj{qS%5H(kLFgP`6ise zhTu7M&fM6crZNK(_ILHI6z?<0m@%=i&5&|uCB;SLY+3aSgV(-kj^aBzS**MLYCDQ* zca$2YvuHvIYpT+e9zu@B-5*1N=qyX)vXQ1cjySfO9`rkoD08ml6N{U;9=a#soNfXc zE_7Ey-D5;q9S+}NMq##zvd6Ed%Ubo1N`=28+9}U7M`-G2ut#G5D4roB^}Rlt<|nBN zFEKi?45dzfoW+4aM*JkTYy6m$X?yGsl@?Vmu>kDffb0qM@CTL2v+}*F6r_WpECt$! zO<=V!Di^xLiZolBNcRi0$spuG-F?+2_;8}mD2sY)2(>W4PCkwyIih=F+4Z+%$I}zn zFBdN5xr?wRosu+8)rX&DtK}jnH(I8O7}nSvj9n`LrdFRc#!s zkeEwoibn%0*qddGq7%q4cgp6tY-9+Pj(?hnV4v|ZpCwiM7c)716&V;^5T-e3lNXds z?u}CTh&|+8A#*2MX(bnjJ|aQ+c~F6*UYjhswOT|tYqprD!=oW*-O=N1fw&P$18>6qo9DN3OUPxRI%i7p+Z z&QstL?+`BOd~h1rCOwoS}~I%n@p!LwshN+4UJO7T=e}N1w{Do8AKX)Y`4(#re`Eis!!PyV|7zX6Ngubz|G4rutei za)>;1WtigYxa+hR;0QJGq=y63EzVGnIt$Ynq6?g@wGhG!%yVY5(6w_?OjtA;Fe-3} z7hO&Z^5d_fsh!t;mg%EHTr;LR=%)@|oHaMh*U%KSA>XJXV)qK2)C}Y%GNz5Fqh_UK zKPil1QdfSZHNB8zyc};&F6qB3O3q2LPG3mA&?wIxr1Cd%*I04KX{sW+(bu^cca^mq z8O0k8TDP;K`}_eqWC;t%cWRIo4Y{lXxkLtVCr?Pmtk#`Iyr%+oqSYHMRftgOBX3z` zo4WvP+WVt<>{;$c+sevKW|NlTFQ$nAIv|sA<~mr$Q!+V>Ow#olJ+=uv`ca7^Q?W`g zeSTxva)Jz3>h~v1mj=3l$vPmL*G7f}8BxDva!3Xd(LApn83l6$uDr*XPBiUU51zEe zJzukH#f&L7AQuI^Z^C2lpEH(;r`eEvB0GuneoW7_TvL-c_GWy5L|S`TCY2Iv*x}f> zFw@HK&X$+(BkXuW)slS6jQKCjlmkFY32rpdLiz3e(fe?$=7~0BgBXTVdu;M2d>7S3 z*}V4oWk~>h3TY~nBq7@rNk%F=y-C$!&64`WhYlQeU}RFZ$|)zkO*Fgocf@mXq5-wp zuzmLQQQM@>%sS9f!&~@NmWE+kX5Sb!>wElcRJZk%vFQSX6M6H4QIW57 zzm(=sl{j(0x6y%n6-JPWM6`?XV?y+4KgT=n!&7m5Pmam#$j^o+TV z;7KBD?rVMefkxb!qiWjbmaL2Nc6hF5abt@~j(?^L6Ge8M5Dz{>=bGI?5RVX~>ei&# z@fbW*A-;2J9ii~WTHrz<*>H-)$aFM+bIkJ^SQb(V^jDDg!~Sr(`xd)KZVah}79%F1 zx+l~1SNwR-$mv;Sy&x$zD3L+8qry;p#cs9Lc_{2;c&U=h4MQAJvubme zw7S!$*13rV^!q75?ziBHK@Udf=vDBKcZVBrO6y5kKHHdBzU-!h2=pB97!-8c?51Za z2i8nNwmhX6j2R0QlydM!RQfPMZXYA&m{`^5FJ&kjOT`V$A&tC}TKJ=qVb&s11gjU4 zT8q*Ysb2|MvE~viloBKQsfsEX)KoaC_&G2qiuRNC&Vt*4lx9_g4YUk}XqPN1!wmyP zEZ8CM>mesP6f5ueQ-sO;B*p+uA_p z0>rE!p)MjWqAqf)0FaTFVUk%ylLIhJPtJT-WtnH&gUC%PG^x_b0D$zH$Gc?p+ihw_goUPl!CV!MH{?vzmR{Sh2At8@4Bdsts_m|cp+pe?HlpH{oX^go+ zl}-^r51<>HnW5L5Woem(9k+3Y2Op=Ne8D?MNWv>VGNaL^FQPueDRmB|D$%8O1d%Acb9=l)zlj)r#T?&fwtS5H^QzqStZ zH{`#z3@wMsjsXn?mG-A7{u!w%A*Q4%?mOM(9>fAAytid3Lx&v1?fRAInWtU{E(l1b zEW9rK4GuTAJCW2k@X8>YzIwa@E8WTFi*GzfBW74Jm{&Q;?RS7iX-Gbmaw^=$^s&l_ zH8`wq^_LVM&HOWGlJ~Ds{}8WV1gD!hZz*xAFf@`%lLFi}v`> rw12bd->Lt}oBxN}7^pz>k3Ig6QK+xds?gV$2ARBjgeVlviy>o8W z@13gm@0+PrU9+b8vsQPl?&_JZnj*}594II#1Sr~1e)@;|(vnidP*5CP@1Qu|ydX#9_oe-{+)SD5k{CrL(oV}2hHo_tmR?{@RQ{eR^v^ltAlCDsjP=DHJK}ytd}Pr zb~D^gnszfDH`|0gZqXb{H_{nxO2bAqBHf2vx0~o16wZWFh|4MKbq9p>ELkepSW|1G zb?~25T5VlbTL%?~dVUOwl_wr($%~B3CmagCd8ntnwS0cnOTI)aw6_@!DJX`rg!-HI zp1+V)$S)5o_~-;@M6|iTw``KG*I{HMBShCKu9EmE^L4X-A-}6+A=6W=?Y^%i;PHI! z(e4%m>*JdI3|UWAn$xLSysNRjn*||p4^#xLK{_7VULk9(&ifr5XCGbzwrk+@&NNcH z=5AozJxEIK1Tw}&`Keo5zI4bZ&-fHT>8N^eR=DuxDRW-;!^o6F8CDds-;9yFm;V5GXd3U! zjJ?PpoPMoI5wt=QM_v;G7_fjxyV3RT=5X|^AO@O{JWaZeL91O{UVDi6d!n`931394u79l72})#T>xQJWhX86i+x zg`!1ETAIF7Hb^nAj$ki@a3rVP)deeMB4jp1xVLZw=rTXeb+RMh%u$=?ihY`Qw~qlJ znTXW8!Oujrl~vSce5AlYcn=-)|4##XB^9=cb5FC3vgp|28P=Eg^cr<-|Mj-VNH=B8 zpnQ;A6tSIaSULcR@g{U#H0q67a3AT9vKYmqX{B1${UVRcQ%z#6{%&`)$2gt!$vmOj z;d|Z@SsMK?<}3$@lpPH?X`G~&brl>v<&Pr&+Qt`vSEbR!Z#D9w;BrGAukG_{U)geS z#r0ZXdXt$cqd>_F@2sE1jiq-pw;@1vEn|^0aAk%KDq%v4wx%UZ$MiI&`F?YL1h$81Zyj^wmoxB+3kYuW-(814bXH^J5ZodycaRVfht z&M(yjFm)KbT^0DL)3@7pLi-{{eEg@mKhI*So*dCGHnDqLN$la-85ssI7#9J`MZKmE42EEmb9Av!HguLR7 zuix^A7*Fz&&B3};2O|suMmZpTnd=ZIZAEWlyJ`&GD0JYj7BQ(0 z6$a5a2%QUlT3!#e|A}F5Iwn+kj8OYRR0etGY8bCU^BKX1?l;n;FV%`UgmaspGerM+ z`Dr)qY(5eOvozY;Y=jiUjP*%D4FvxsmvRS`o7**~+qmyApvq4v^FiR;%EUM`41@3e57_9{}ZnqKi24{q1&<6>ae>kyxIyRZU zlj~Ie95i47G%I<`OHSPzS<&;o%Nf0;jrZ=09OI<`J4A?oXEcThGcgfMy3mO z)n2Szs7K}Tv(1?ZnNp}?2S}5fepqz0Nbr%QdB?jf_A50=q6IPfLROH2SlA? zJRM|ZA}poHo0salHP@<=xt?d4CZlV!neR8K4K0SV`wHx;9z9J*sZj+)$Tz0tz~Z1s zj0%})Kxu!g$jI};-ez4&gRFp))+)6-{>Klp_x_DOnK&!{88N2#?Z)`;Ru#dFSgP|t z_zhgqAfdI={(G0mQ%Ur8tye?V49Vt+PVQ@VXqWCfd{72%$nVAya=5)FDC~qk*FrPG zfDUYWIM2MUpTPOGliv`R`_3!Rt+Pfp*bUfMfUk>};iLHV?@mo)60&*k^+!*8mnjeD zc@(*T@eXB_m_yTv`}REpa!<<%&&fTET9~Mpj~Mf=^AvKgY8cdiuA%R4sN+_!O`yD9 zsqCu%T&u1x$4ILvxhBKO0E+r&ZGN<5z)g$c@;){mGIE^N^Z~rz0^&=Y4}bL~L_@zs z)#A@7JDBVyC~?AysyrCkY=eplNYpoz->l#a*C}`94IB1xpG(fF$g9@ZOf#M=BcOJ#!)zT`{37Qv;Rs zky%HgF|u9aiTwj^7;E!w*T%-GQDgiQc`r;)vvzkm_MEak-u zG)8f7EHXecGNhuR6@%It+YR#nP68T6Xqz@F6~ivK_i}?ioYswDTjMfVLzzeRn)WY! z&9d9?GE-z2B>@C2M>M{=FxDuye-34px^p8p z2%Din$$sS|f}S2FF`TGotuFVga?_W9n2g|KHgn=ceNJqptpb|!Nc%e4_f|qS-qX~w zM?u48uQRsNM~*p>J;vs97@G(SLpfY-PViQ&PjEm{X zunANxCH|v46tutn4kcyN+<9>zjl-QpKs(J#llYUpb=U7_0lCd7hHFt4?Pof}?b;~g zeT`lNEE`U45(CH-dl}j1)@G&E-Jk$LU^j^y7+y$#qV0}?=FZ9+02>_Ax(}>M952>( zhLkjq^Q9+rwg&V25z}@Q&;)3G=egW_#CTn7X%g5!L@4WYTh$LOV?dCDci+1Tfu*We+ z5rfPh-HBo)7~$e~qw*C(&X=_>zSD5xp9SDLmzi%mEuRqo#Ph>t;36-hoN%YTpX}-g zntOOZIY=D4mu&ySufEHr&fN>_^kBo!uh_>{4H%6i*RU}u^n zFcQG54}3JG%9jB>ewPYWfhU_ECOh%e-QYXmL|RGEABe({@{(Y;)CNWO1pAF z>5>4lClvy_!IWoKdLBvHCEu{@2?T`QHq`U4@|WXrTxO}ARe698&aT< zems9>O>XK%ycJf8xV812;C1-aBcBg}vRN=fz2*g%Pn_9QK&FE)F+TsErO=i-rSH7r z+Pzp`^lwTO(y`gmZidhFoO_?Nsh6p`iD*)`CJbr~L#IuiF#|}Rp?fNQ^2}k~&0Aux zlm}N&@!fCh2dkndm38TLUbYn!5!bbURYhCu-(i?=dX@ZM$A-6cuPcROlS2Cz zacBHY_}s~YOgz6aMK)%4ed@*>hY^*XkEI;cQMo8vH5AD8uBA-mVm;P0nJ@J3?xd zTJJnqk}f*`o2M5zw8V_Ok=>Twf}rG8xbk~HQBBN4iYnfiI!gdd^0lKePNDb*FU{rg zVtpsapmPDmJG{a~GI{*q^t930I&nW=Vo;ku;kVl0$*&w8p!TbVGT3K*b_c$4Ouk0j zT%<_;>vMxUr$RfAp<=$!!n9l6Tj9Q)Sr>#@Tx7YUQ%bqvEFAq{7)t<~k1b%0fhiN8~(0j&D5 zoK#z<lH`ZwK#TgKKW-=%9k?JUiFvxpoAfiT$#XIyL(WD5Igni9->vk ze7AbN@=xB9^wyPYG86uB_nLq(SJzS97*Er}a#zWZvM*^cjB`Q8g0TnJ zCg#gW0>wI?etBR~k%44MkG;v&LZcH6iU_~9T)(alPrRIU!ek2BAihkL zA&*sxIy@z1Z16*)=%A~QM$C>o_sF6l9bM#2X|r6rD{7hC_O&i$LB#+aDn(9iSj6?# zLiB7l?q)WwPCB_hXVO^d0CAJlh;H2CyHR@X4?%)6YaysaO%fvmTNC7k16x$*z0p#J z)-rrtNz?9pJau}iQ3p+^4+KL>!8S~U^0Jyj!)pXVq315<(4U(xH1`**;$*#(hGcT? zg>R4_5(bD+SQmX+&5(cSd;{6jJXQfH?AybB1(( zEnlAbK(N13y&cZl4fyo^rFc%`%dfZrx`G8X(iY;7eJYZn!~Moa!XHE|Cd|cp6Qfoa zh}2b*y;NwE!;w*t4;^~!Tnt(yBGY-__eC_qK;2L+L&LgU38AL(m+bM?Hx*vUcsT?L zt)ZA{-z+s285puzIq!-P+M#>H@UZZ~laY?w)SH}m<2W)2LJ|2?leMC@A5T#R_#+)v z$RqNiZ2;}&t@j%fM=+vNG{58!0@f)&FBr!B7< zuFwE=mKZSc!>TlWD3IQ^ESi2yMK2T8v7;Ch~iX` z+r;P=>BNH6%eAkIL#jpDbN|^0H<*gz3rLhRV{Vg)s|JSc!H6J=mQwHZ3G9 zCyzulq%xR+dSm<{vY0a^R4^$skPxtha98l8fYkpHu*Jn7p89PYn}5I2t~+4zPa{De zn9E!)DT`B1;L*iof?|w(&mes86ZSK+-X$j!14R!LT{;453RVw;5}i6*f%SEvq4CA< zZCE1=^?`kFkp{__+&(EDu^>nNq%_j7))A3d(ou`}h0!VtkReSe5!AMgjBd=ppUUX6 zR6INt9x@%gUY5Xn9w$1MEi@G+!jB^_#K>WPaG3D>Z9ps<)jUIs33xRrQFP(^Fbb2C zU^+bxkgihhxss5er8|uF$Cc`X)Sf`#!}Nm+_mN&~SoaWO#+D0{rNB{Thx=1}@y;J9FGENLHnak?AZ}X8BSqntH>=aL7VJ#GD*35!}B=NZis* z5S+c=50>N#Hr0m5_R*O*j)}t~ag^^?M5jdj8VIOll3~#hl2rH*lvc5TqoJ4T`5Pr1 zv?=^fb~_qH-_}o(RYC+34g_HbS+q>}ka8Hvx1<<9&KjW3wCnCyi@4N4^RR4jr{_x=VVD z_nwF^e_9{FUtUBhkC)dn{InK|tPfECeBKgczCVyQF4)ou-yI%_+^x3rRrbDLL%479 zevw@)7ZEG@oD%B3)Mv@azkTf8u5fm^119%~t9AQ>w>wNDW>J$F4}NSur|imXK@+Cg zmUXyTi+i#qe%-yhMof#4G4@~dL%pYVn{Qy(s=Oq}y+hU7zCYHo2{`fbl7tQL(5Vb~ zw@}pYZQ-jEX`s6rXpS!YMT)A;FD}ZUneSGn*_ZzsU54r`C2qRkv}Vo?6Gj!B%5yY{ zDc~#JmykNiklwwnixAWFMgFU5gZ#?GCPZtS*7;OLDyPX1#FSHj>h+#rxT{8)##k;d ze6zl-U}k?QF>+@7*Uk9&ww+M{ovNNbZUmkv^C z_}3bFNs`2#n*`h|y3C*uGaWdhGqxAEc4(s0KsD`f&X@hALcqgg-?DQ|YVZUe9*SHZf31mLLr6E*QKu z^@@kiD8sFvOdwC6hQ38h*lvxuO048@e*8TqLf_>&FT}Jo^^>>(Q)Q&(DWP)PE1|lhf6XnDLLmtZv0td= z{4rj`K?6j(K=wL&FNC%+c_m=cOe1ZmHM?h{vX;#t2W_;1{A#^O3!?ifyPDHw==0~- zYk%iY{05=A;$pWY^K?l{OF*1%OCC>mj-ru6=QM5N9#4m zc6fg77kl5qZ;rI$Piywf3#wXvQ}t6iyBb=>rzOWPB{vOn&rb3smnBTIw`+yuEV%(8 zSMrY3cI0Z?`x|0*)9kAQ)jb|BXp2|$4i9#jZ{8(U#pl_0Hh)!?;aNWK*#KU&4_j^F z9ZLbH-Vw*Ab#K`;GesdCGlOFx4Td$FC1U{kRTlQss>HizU}p|M7(N4R{{Wv#_-N)Y z?-w&8W;Pg5lCjiM5hwik8sL2OUEVW2|GC53>M8uCWEai5Tl2C3!MOOf(5OQID}O!v zFY@3{hY&qk{6pfC&Rw{};7P$$gP6Fpf%o@OBW#RuowGH6s|SDBXIm#%0OEHb0Ah`M zC3~P$K7XTYo&4+v`z#eQXyiiloKOmWI&tKpC3e^i@O=_)ZG9=gPs4)YYd7lnl6?E> zUIc8gPd3sPe|4lxSa#f8wk)#`#l_a>P-Tm}8|~8P^L*~J%pYM!^Vnn244Agv0O*Ln zst#McEaMzKydtXoA4QJlO_8fh)|%&hQ{wpEjQW2la;zL|9BiCy7Pf96R$C`4AiJ{k zCvhq9PvV!#tny0oEb=p`imXgyBjYt198=to3&j!TIt>PSRyM}55!M0u?ciaeJ;FUg z*LP5VNBm0z^zPV4uzZVT`(_mX9#Kb5T3QKtTuym(^6ywP-0QBYql&BwEQ9RT8Vo9| zjI0cUxFaNqIrb}Z=h7=O|3;1sxip~*L3q`@a3Cfb)6 zNFQmP3cm{uw%|@k|HQ`jj}-r!6!xc!YSg#Xkl&2q-%|tuodFJ(9+nPlATJQ}-=l~A z2lB5`6NCT?u--vIWxg5ZzaurIB~>+~{6-aBgWojLi8gC_2J(B*q;z1Qc@;u%VH%pv zos#4?8l3AZqs2UYFI6l`>3KJW@7x{39wrkLpn=fT$R`I@#-LjBY1Es9tZ;%r8^x7c z(Z1VmZ=N~P>FxN)ur(Pg!vo8mvW84Xy9wJ{Nh|UUZ7np1e&;0Qdogh>bzJ2pkVJR% zY|k>B^?)p)&&Hh@&N4-{D^?XIkm^=V>sf#N;zPJQu-a5~yDtOi#TH4P}~BB;#g z(3yvpzBVql<@oF=6A>?Pt_9j0Q$$l9jD_Jj#?3TiSMh_w3s6&h2aN;se;1SAX7#_W z~!CHgn5 s;NNNgqhS9@{ZCc;zp1rB5C2a6@0wLpgoXR73+&sS^H%7JWPd&VFFk-NF8}}l literal 0 HcmV?d00001 diff --git a/tests/integration/arch-wheels/musllinux_1_2/testsimple-0.0.1-cp312-cp312-linux_riscv64.whl b/tests/integration/arch-wheels/musllinux_1_2/testsimple-0.0.1-cp312-cp312-linux_riscv64.whl new file mode 100644 index 0000000000000000000000000000000000000000..86555e61a3e01df2a71ed0a5ee57c22c9761c44b GIT binary patch literal 7353 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
c+cWe&i6`EM7i0(>+~(%`j_>+MpE^D$ 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 literal 0 HcmV?d00001 diff --git a/tests/integration/test_manylinux.py b/tests/integration/test_manylinux.py index 76983813..e3097db4 100644 --- a/tests/integration/test_manylinux.py +++ b/tests/integration/test_manylinux.py @@ -786,6 +786,45 @@ def test_isa_variants(self, anylinux: AnyLinuxContainer, isa_ext: str) -> None: # with ISA check, we shall not report a manylinux/musllinux policy assert_show_output(anylinux, repaired_wheel, f"linux_{PLATFORM}", True) + @pytest.mark.parametrize( + "arch", + [ + Architecture.aarch64, + Architecture.armv7l, + Architecture.i686, + Architecture.ppc64le, + Architecture.riscv64, + Architecture.s390x, + Architecture.x86_64, + ], + ) + @pytest.mark.parametrize("libc", [Libc.GLIBC, Libc.MUSL]) + def test_cross_repair( + self, anylinux: AnyLinuxContainer, libc: Libc, arch: Architecture + ) -> None: + if libc == Libc.MUSL: + source = "musllinux_1_2" + platform_tag = f"musllinux_1_2_{arch.value}" + python_abi = "cp312-cp312" + else: + assert libc == Libc.GLIBC + source = "glibc" + platform_tag = f"manylinux_2_17_{arch.value}.manylinux2014_{arch.value}" + if arch in {Architecture.x86_64, Architecture.i686}: + platform_tag = f"manylinux_2_5_{arch.value}.manylinux1_{arch.value}" + elif arch == Architecture.riscv64: + platform_tag = f"manylinux_2_31_{arch.value}" + python_abi = "cp313-cp313" + test_path = f"/auditwheel_src/tests/integration/arch-wheels/{source}" + orig_wheel = f"testsimple-0.0.1-{python_abi}-linux_{arch.value}.whl" + anylinux.exec(["cp", "-f", f"{test_path}/{orig_wheel}", f"/io/{orig_wheel}"]) + anylinux.repair(orig_wheel, plat="auto", only_plat=False) + anylinux.check_wheel( + "testsimple", + python_abi=python_abi, + platform_tag=platform_tag, + ) + class TestManylinux(Anylinux): @pytest.fixture(scope="session") diff --git a/tests/integration/test_nonplatform_wheel.py b/tests/integration/test_nonplatform_wheel.py index ef5ec536..8fb5830e 100644 --- a/tests/integration/test_nonplatform_wheel.py +++ b/tests/integration/test_nonplatform_wheel.py @@ -27,9 +27,10 @@ def test_non_platform_wheel_pure(mode): @pytest.mark.parametrize("mode", ["repair", "show"]) @pytest.mark.parametrize("arch", ["armv5l", "mips64"]) def test_non_platform_wheel_unknown_arch(mode, arch, tmp_path): - wheel = HERE / "arch-wheels" / f"testsimple-0.0.1-cp313-cp313-linux_{arch}.whl" - wheel_x86_64 = tmp_path / f"{wheel.stem}_x86_64.whl" - wheel_x86_64.symlink_to(wheel) + wheel_name = f"testsimple-0.0.1-cp313-cp313-linux_{arch}.whl" + wheel_path = HERE / "arch-wheels" / "glibc" / wheel_name + wheel_x86_64 = tmp_path / f"{wheel_path.stem}_x86_64.whl" + wheel_x86_64.symlink_to(wheel_path) proc = subprocess.run( ["auditwheel", mode, str(wheel_x86_64)], stderr=subprocess.PIPE, @@ -50,9 +51,10 @@ def test_non_platform_wheel_bad_arch(mode, arch, tmp_path): host_arch = Architecture.detect().value if host_arch == arch: pytest.skip("host architecture") - wheel = HERE / "arch-wheels" / f"testsimple-0.0.1-cp313-cp313-linux_{arch}.whl" - wheel_host = tmp_path / f"{wheel.stem}_{host_arch}.whl" - wheel_host.symlink_to(wheel) + wheel_name = f"testsimple-0.0.1-cp313-cp313-linux_{arch}.whl" + wheel_path = HERE / "arch-wheels" / "glibc" / wheel_name + wheel_host = tmp_path / f"{wheel_path.stem}_{host_arch}.whl" + wheel_host.symlink_to(wheel_path) proc = subprocess.run( ["auditwheel", mode, str(wheel_host)], stderr=subprocess.PIPE, diff --git a/tests/unit/test_policy.py b/tests/unit/test_policy.py index 015eba41..3e116369 100644 --- a/tests/unit/test_policy.py +++ b/tests/unit/test_policy.py @@ -231,13 +231,7 @@ def test_filter_libs(self): raises(ValueError, "Invalid 'musl_policy'"), ), (Libc.MUSL, "musllinux_5_1", Architecture.x86_64, raises(AssertionError)), - # platform dependant - ( - Libc.MUSL, - None, - Architecture.x86_64, - does_not_raise() if Libc.detect() == Libc.MUSL else raises(InvalidLibc), - ), + (Libc.MUSL, None, Architecture.x86_64, does_not_raise()), ], ids=ids, ) @@ -248,6 +242,8 @@ def test_wheel_policies_args(libc, musl_policy, arch, exception): assert policies.architecture == arch if musl_policy is not None: assert policies._musl_policy == musl_policy + elif libc == Libc.MUSL: + assert policies._musl_policy == "musllinux_1_2" def test_policy_checks_glibc(): From 772cf03f8d8ebaf92e2a807bd9d1f139e8a98804 Mon Sep 17 00:00:00 2001 From: "pre-commit-ci[bot]" <66853113+pre-commit-ci[bot]@users.noreply.github.com> Date: Sun, 30 Mar 2025 09:16:22 +0000 Subject: [PATCH 2/3] [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --- tests/unit/test_policy.py | 1 - 1 file changed, 1 deletion(-) diff --git a/tests/unit/test_policy.py b/tests/unit/test_policy.py index 3e116369..e996a2d3 100644 --- a/tests/unit/test_policy.py +++ b/tests/unit/test_policy.py @@ -7,7 +7,6 @@ import pytest from auditwheel.architecture import Architecture -from auditwheel.error import InvalidLibc from auditwheel.lddtree import DynamicExecutable, DynamicLibrary, Platform from auditwheel.libc import Libc from auditwheel.policy import ( From d978dc110c3baf44f6ebaa86420094e2d34f3356 Mon Sep 17 00:00:00 2001 From: mayeut Date: Sun, 30 Mar 2025 16:58:25 +0200 Subject: [PATCH 3/3] fix heuristic --- src/auditwheel/lddtree.py | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/auditwheel/lddtree.py b/src/auditwheel/lddtree.py index ae755579..07326341 100644 --- a/src/auditwheel/lddtree.py +++ b/src/auditwheel/lddtree.py @@ -527,7 +527,12 @@ def ldd( if path.name.endswith(("-arm-linux-musleabihf.so", "-linux-musl.so")): libc = Libc.MUSL elif path.name.endswith(("-arm-linux-gnueabihf.so", "-linux-gnu.so")): - libc = Libc.GLIBC + # before python 3.11, musl was also using gnu + soabi = path.stem.split(".")[-1].split("-") + valid_python = tuple(f"3{minor}" for minor in range(11, 100)) + if soabi[0] == "cpython" and soabi[1].startswith(valid_python): + libc = Libc.GLIBC + if ldpaths is None: ldpaths = load_ld_paths(libc).copy() # Propagate the rpaths used by the main ELF since those will be