From ad5650638291b4141833a2b01f3ed805fa1c9c60 Mon Sep 17 00:00:00 2001 From: Derrick Brashear Date: Tue, 27 Mar 2012 12:09:38 -0400 Subject: [PATCH] macos: iterate mdfound packagemakers when spaces are present even if we get more than one match, and even if there's a space, work anyway Reviewed-on: http://gerrit.openafs.org/6971 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear (cherry picked from commit 745e1bb00350ac481cd0998b1623b6e040fc7312) Change-Id: Ibd4ca5cbd5cee45793735cede8cf488a944add3c Reviewed-on: http://gerrit.openafs.org/6972 Tested-by: BuildBot Reviewed-by: Derrick Brashear --- Makefile.in | 2 +- src/packaging/MacOS/buildpkg.sh.in | 33 ++++++++++-------------------- 2 files changed, 12 insertions(+), 23 deletions(-) diff --git a/Makefile.in b/Makefile.in index f1995c769..3a901b8de 100644 --- a/Makefile.in +++ b/Makefile.in @@ -97,7 +97,7 @@ dpkg: packages: dest @case ${SYS_NAME} in \ *_darwin_* ) \ - ${COMPILE_PART1} packaging/MacOS && sh ./buildpkg.sh ${DEST} ;; \ + ${COMPILE_PART1} packaging/MacOS && bash ./buildpkg.sh ${DEST} ;; \ hp_ux110 ) \ ${COMPILE_PART1} packaging/HP-UX && swpackage -s psf-1.2.10-transarc-paths-11.00 ;; \ hp_ux11i ) \ diff --git a/src/packaging/MacOS/buildpkg.sh.in b/src/packaging/MacOS/buildpkg.sh.in index 5d3247819..9190d8b2c 100644 --- a/src/packaging/MacOS/buildpkg.sh.in +++ b/src/packaging/MacOS/buildpkg.sh.in @@ -1,4 +1,4 @@ -#!/bin/sh +#!/bin/bash # Portions Copyright (c) 2003, 2006 Apple Computer, Inc. All rights reserved. if [ -z "$1" ]; then @@ -49,24 +49,11 @@ PACKAGEMAKER="" if [ -e "/Developer/usr/bin/packagemaker" ]; then PACKAGEMAKER="/Developer/usr/bin/packagemaker" else - PACKAGEMAKERS=$(mdfind "(kMDItemCFBundleIdentifier == 'com.apple.PackageMaker')") - if [ -z "$PACKAGEMAKERS" ]; then - echo "packagemaker not found" - exit 1 - fi - # if there's a space, trying a for blows up - if [ -e "$PACKAGEMAKERS/Contents/MacOS/PackageMaker" ]; then - PACKAGEMAKER="$PACKAGEMAKERS/Contents/MacOS/PackageMaker" - else - for TRYAPP in $PACKAGEMAKERS - do - echo "$TRYAPP/Contents/MacOS/PackageMaker" - if [ -e "$TRYAPP/Contents/MacOS/PackageMaker" ]; then - PACKAGEMAKER="$TRYAPP/Contents/MacOS/PackageMaker" - break - fi - done - fi + while IFS= read -d $'\0' -r file ; do + if [ -e "$file/Contents/MacOS/PackageMaker" ]; then + PACKAGEMAKER="$file/Contents/MacOS/PackageMaker" + fi + done < <(mdfind -0 "(kMDItemCFBundleIdentifier == 'com.apple.PackageMaker')") fi if [ -z "$PACKAGEMAKER" ]; then echo "packagemaker not found" @@ -112,6 +99,8 @@ if [ $firstpass = yes ]; then exit 1 fi + SEP=: + rm -rf $PKGROOT mkdir $PKGROOT @@ -230,7 +219,7 @@ if [ $secondpass = yes ]; then rm -rf $CURDIR/OpenAFS-debug-extension.pkg echo $PACKAGEMAKER -build -p $CURDIR/OpenAFS-debug-extension.pkg -f $DPKGROOT -r $DPKGRES \ -i OpenAFS-debug.Info.plist -d OpenAFS-debug.Description.plist - $PACKAGEMAKER -build -p $CURDIR/OpenAFS-debug-extension.pkg -f $DPKGROOT -r $DPKGRES \ + "$PACKAGEMAKER" -build -p $CURDIR/OpenAFS-debug-extension.pkg -f $DPKGROOT -r $DPKGRES \ -i OpenAFS-debug.Info.plist -d OpenAFS-debug.Description.plist fi @@ -262,11 +251,11 @@ if [ $secondpass = yes ]; then if [ $majorvers -ge 7 ]; then echo $PACKAGEMAKER -build -p $CURDIR/OpenAFS.pkg -f $PKGROOT -r $PKGRES \ -i OpenAFS.Info.plist -d OpenAFS.Description.plist - $PACKAGEMAKER -build -p $CURDIR/OpenAFS.pkg -f $PKGROOT -r $PKGRES \ + "$PACKAGEMAKER" -build -p $CURDIR/OpenAFS.pkg -f $PKGROOT -r $PKGRES \ -i OpenAFS.Info.plist -d OpenAFS.Description.plist else echo $PACKAGEMAKER $PKGROOT $RESSRC/OpenAFS.info -r $PKGRES - (cd $CURDIR && $PACKAGEMAKER $PKGROOT $RESSRC/OpenAFS.info -r $PKGRES) + (cd $CURDIR && "$PACKAGEMAKER" $PKGROOT $RESSRC/OpenAFS.info -r $PKGRES) #old versions of package didn't handle this properly if [ ! -r $CURDIR/OpenAFS.pkg/Contents ]; then mkdir -p $CURDIR/OpenAFS.pkg/Contents/Resources -- 2.39.5