diff --git a/xbps-src/common/mapping_shlib_binpkg.txt b/xbps-src/common/mapping_shlib_binpkg.txt index d0442225277..2bb3e2c7a65 100644 --- a/xbps-src/common/mapping_shlib_binpkg.txt +++ b/xbps-src/common/mapping_shlib_binpkg.txt @@ -7,19 +7,22 @@ # The third field controls the development package associated with # the binary package that provides the shared library. # +# The fourth field (optional) specifies that shared library is only +# available on the target architecture. +# # PLEASE NOTE: when multiple packages provide the same SONAME, the first # one (order top->bottom) is preferred over the next ones. # ################################################################################################ -# SONAME BINPKG BINPKG-DEVEL DEFAULT +# SONAME BINPKG BINPKG-DEVEL ARCH ################################################################################################ libc.so.6 glibc glibc-devel libm.so.6 glibc glibc-devel libpthread.so.0 glibc glibc-devel librt.so.1 glibc glibc-devel libdl.so.2 glibc glibc-devel -ld-linux-x86-64.so.2 glibc glibc-devel -ld-linux.so.2 glibc glibc-devel +ld-linux-x86-64.so.2 glibc glibc-devel x86_64 +ld-linux.so.2 glibc glibc-devel i686 libresolv.so.2 glibc glibc-devel libanl.so.1 glibc glibc-devel libthread_db.so.1 glibc glibc-devel diff --git a/xbps-src/shutils/verify_rundeps.sh b/xbps-src/shutils/verify_rundeps.sh index c6b114b8e87..ee2eb8af8e9 100644 --- a/xbps-src/shutils/verify_rundeps.sh +++ b/xbps-src/shutils/verify_rundeps.sh @@ -43,7 +43,7 @@ find_rundep() verify_rundeps() { - local j f nlib verify_deps maplib found_dup igndir + local j f nlib verify_deps maplib found_dup igndir soname_arch local broken rdep found rsonamef soname_list revbumped tmplf newrev maplib="$XBPS_COMMONVARSDIR/mapping_shlib_binpkg.txt" @@ -177,9 +177,15 @@ verify_rundeps() unset found continue fi - echo " SONAME: $f (removed, not required)" - sed -i "/^${f}$/d" $rsonamef - broken=1 + # If SONAME is arch specific, only remove it if + # matching on the target arch. + soname_arch=$(grep "$f" $maplib|awk '{print $4}') + if [ -z "$soname_arch" ] || \ + [ -n "$soname_arch" -a "$soname_arch" = "$XBPS_MACHINE" ]; then + echo " SONAME: $f (removed, not required)" + sed -i "/^${f}$/d" $rsonamef + broken=1 + fi done exec 0<&3 # restore stdin fi