From 2cd342cfb361cfa6413e6612028997079c2fa9ed Mon Sep 17 00:00:00 2001 From: Taahir Ahmed Date: Sat, 15 Apr 2017 21:50:13 -0500 Subject: wrapGAppsHook: Correct `wrapProgram` invocations This change fixes several defects in the way `wrapGAppsHook` selected the executable to wrap. Previously, it would wrap any top-level files in the target `/bin` and `/libexec` directories, including directories and non-executable files. In addition, it failed to wrap files in subdirectories. Now, it uses `find` to iterate over these directory hierarchies, selecting only executable files for wrapping. --- pkgs/build-support/setup-hooks/wrap-gapps-hook.sh | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'pkgs/build-support') diff --git a/pkgs/build-support/setup-hooks/wrap-gapps-hook.sh b/pkgs/build-support/setup-hooks/wrap-gapps-hook.sh index 3cad1838d260..9891128a6231 100644 --- a/pkgs/build-support/setup-hooks/wrap-gapps-hook.sh +++ b/pkgs/build-support/setup-hooks/wrap-gapps-hook.sh @@ -35,10 +35,16 @@ wrapGAppsHook() { gappsWrapperArgs+=(--prefix $v : "$dummy") done - if [ -z "$dontWrapGApps" ]; then - for i in $prefix/bin/* $prefix/libexec/*; do - echo "Wrapping app $i" - wrapProgram "$i" "${gappsWrapperArgs[@]}" + if [[ -z "$dontWrapGApps" ]]; then + targetDirs=( "${prefix}/bin" "${prefix}/libexec" ) + for targetDir in "${targetDirs[@]}"; do + if [[ -d "${targetDir}" ]]; then + find "${targetDir}" -type f -executable -print0 \ + | while IFS= read -r -d '' file; do + echo "Wrapping program ${file}" + wrapProgram "${file}" "${gappsWrapperArgs[@]}" + done + fi done fi } -- cgit 1.4.1