From f274d7728c95612cdd69775816f3dd2efc764b34 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=BCrgen=20Buchm=C3=BCller?= Date: Tue, 10 Apr 2018 17:54:13 +0200 Subject: [PATCH] 04-generate-runtime-deps.sh: introduce skiprdeps MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Yet another variable to permit skipping of runtime dependency checks for a list of files, specifying their absolute path in the $DESTDIR, allows us to handle known bad detections due to e.g. binaries or shared libraries not meant to be run or loaded in the host. This will be used to fix the android-studio template to skip a number of files which would create a bogus dependency on libc.so. Signed-off-by: Jürgen Buchmüller --- common/environment/setup-subpkg/subpkg.sh | 2 +- common/hooks/pre-pkg/04-generate-runtime-deps.sh | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/common/environment/setup-subpkg/subpkg.sh b/common/environment/setup-subpkg/subpkg.sh index aa2105d7185..5ef21ec2763 100644 --- a/common/environment/setup-subpkg/subpkg.sh +++ b/common/environment/setup-subpkg/subpkg.sh @@ -9,7 +9,7 @@ unset -v depends run_depends replaces provides conflicts tags unset -v nostrip nostrip_files # hooks/pre-pkg/04-generate-runtime-deps -unset -v noverifyrdeps allow_unknown_shlibs shlib_requires +unset -v noverifyrdeps skiprdeps allow_unknown_shlibs shlib_requires # hooks/pre-pkg/06-prepare-32bit unset -v lib32depends lib32disabled lib32files lib32mode lib32symlinks diff --git a/common/hooks/pre-pkg/04-generate-runtime-deps.sh b/common/hooks/pre-pkg/04-generate-runtime-deps.sh index 17616de77f8..66a67bb7cb7 100644 --- a/common/hooks/pre-pkg/04-generate-runtime-deps.sh +++ b/common/hooks/pre-pkg/04-generate-runtime-deps.sh @@ -47,7 +47,7 @@ store_pkgdestdir_rundeps() { } hook() { - local depsftmp f j tmplf mapshlibs sorequires _curdep + local depsftmp f lf j tmplf mapshlibs sorequires _curdep # Disable trap on ERR, xbps-uhelper cmd might return error... but not something # to be worried about because if there are broken shlibs this hook returns @@ -68,6 +68,11 @@ hook() { exec 3<&0 # save stdin exec < $depsftmp while read f; do + lf=${f#${DESTDIR}} + if [ "${skiprdeps/${lf}/}" != "${skiprdeps}" ]; then + msg_normal "Skipping dependency scan for ${lf}\n" + continue + fi case "$(file -bi "$f")" in application/x-executable*|application/x-sharedlib*) for nlib in $($OBJDUMP -p "$f"|grep NEEDED|awk '{print $2}'); do