I'm checking to see if stuff broke now...because I now see my local script won't run. Oops. :) Thanks for the clarifications on the echo. I think that $PKGDEST check can go now if we eliminate the options for command line destination of the package. I killed it in my local copy, and it is in the patch below to fix small mistakes you made while patching. The patch has some indentation changes after you reformatted it with tabs, makes for easier reading; vim got confused with some of the do loops and case statements. It also fixes a few minor typos found, and makes my --repackage stuff a bit more clear. It is pretty straightforward and a lot shorter than that last one. -Dan --- pacman-lib.orig/scripts/makepkg 2006-12-21 12:52:59.000000000 -0500 +++ pacman-lib/scripts/makepkg 2006-12-21 13:11:02.000000000 -0500 @@ -293,16 +293,17 @@ ARGLIST=$@ +#source makepkg.conf; fail if it is not found if [ -f /etc/makepkg.conf ]; then source /etc/makepkg.conf else - error "/etc/makepkg.conf not found. cannot continue" + error "/etc/makepkg.conf not found. Cannot continue." exit 1 fi #Source user-specific makepkg.conf overrides if [ -f ~/.makepkg.conf ]; then - source ~/.makepkg.conf + source ~/.makepkg.conf fi while [ "$#" -ne "0" ]; do @@ -328,13 +329,13 @@ --repackage) REPKG=1 ;; --log) LOGGING=1 ;; --help) - usage - exit 0 - ;; + usage + exit 0 + ;; --*) - usage - exit 1 - ;; + usage + exit 1 + ;; -*) while getopts "bBcCdefghij:Lmop:rRsS-" opt; do case $opt in @@ -384,21 +385,11 @@ exit 1 fi -# TODO: is this necessary? -# convert a (possibly) relative path to absolute -cd $PKGDEST 2>/dev/null -if [ $? -ne 0 ]; then - error "Package destination directory does not exist or permission denied." - exit 1 -fi -PKGDEST=$(pwd) -cd $OLDPWD - if [ "$CLEANCACHE" = "1" ]; then #fix flyspray feature request #5223 if [ -n "$SRCDEST" ]; then msg "Cleaning up source files from the cache." - rm -rf "$SRCDEST"/* + rm -rf "$SRCDEST/*" if [ $? -ne 0 ]; then error "Problem removing files; you may not have correct permissions in $SRCDEST" exit 1 @@ -450,7 +441,7 @@ error "pkgrel is not allowed to contain hyphens." exit 1 fi -if [ ! in_array $CARCH ${arch[@]}]; then +if [ ! in_array $CARCH ${arch[@]} ]; then error "$pkgname is not available for the '$CARCH' architecture." plain "Note that many packages may need a line added to their $BUILDSCRIPT" plain "such as arch=('$CARCH')." @@ -503,7 +494,9 @@ unset deplist makedeplist # fix flyspray bug #5973 -if [ $(type -p pacman) -a "$NODEPS" = "0" -a "$GENINTEG" = "0" -a "$NOBUILD" = "0" ]; then +if [ "$NODEPS" = "1" -o "$GENINTEG" = "1" -o "$NOBUILD" = "1" -o "$REPKG" = "1" ]; then + warning "skipping dependency checks." +elif [ $(type -p pacman) ]; then msg "Checking Runtime Dependencies..." deplist=$(checkdeps ${depends[@]}) handledeps $deplist @@ -522,10 +515,6 @@ if [ $? -gt 0 ]; then exit 1 fi -elif [ "$GENINTEG" = "1" -o "$NOBUILD" = "1" ]; then - msg "skipping dependency checks." -elif [ "$NODEPS" = "1" ]; then - warning "skipping dependency checks." else warning "pacman was not found in PATH. skipping dependency checks." fi @@ -585,7 +574,7 @@ fi done -if [ "$NOEXTRACT" = "1" -o "$REPKG" ]; then +if [ "$NOEXTRACT" = "1" -o "$REPKG" = "1" ]; then warning "Skipping source integrity checks -- using existing src/ tree" else for integ in ${INTEGRITY_CHECK[@]}; do @@ -704,14 +693,18 @@ fi fi done -fi - -if [ "$REPKG" = "0" ]; then if [ "$EUID" = "0" ]; then # chown all source files to root.root chown -R root.root $startdir/src fi +fi +if [ "$NOBUILD" = "1" ]; then + msg "Sources are ready." + exit 0 +elif [ "$REPKG" = "1" ]; then + warning "Skipping build -- using existing pkg/ tree" +else # check for existing pkg directory if [ -d $startdir/pkg ]; then msg "Removing existing pkg/ directory..." @@ -719,11 +712,6 @@ fi mkdir -p $startdir/pkg - if [ "$NOBUILD" = "1" ]; then - msg "Sources are ready." - exit 0 - fi - # use distcc if requested if [ "$USE_DISTCC" = "y" ]; then [ -d /usr/lib/distcc/bin ] && export PATH=/usr/lib/distcc/bin:$PATH @@ -794,23 +782,23 @@ # compress man pages msg "Compressing man pages..." find $startdir/pkg/{usr{,/local},opt/*}/man -type f 2>/dev/null | while read i ; do -ext="${i##*.}" -fn="${i##*/}" -if [ "$ext" != "gz" -a "$ext" != "bz2" ]; then - # update symlinks to this manpage - find $startdir/pkg/{usr{,/local},opt/*}/man -lname "$fn" 2> /dev/null | while read ln ; do - rm -f "$ln" - ln -sf "${fn}.gz" "${ln}.gz" -done -# compress the original -gzip -9 "$i" + ext="${i##*.}" + fn="${i##*/}" + if [ "$ext" != "gz" -a "$ext" != "bz2" ]; then + # update symlinks to this manpage + find $startdir/pkg/{usr{,/local},opt/*}/man -lname "$fn" 2> /dev/null | while read ln ; do + rm -f "$ln" + ln -sf "${fn}.gz" "${ln}.gz" + done + # compress the original + gzip -9 "$i" fi done cd $startdir # strip binaries -if [ ! "$(check_option NOSTRIP)" -a "$NOSTIP" = "0" ]; then +if [ ! "$(check_option NOSTRIP)" -a "$NOSTRIP" = "0" ]; then msg "Stripping debugging symbols from libraries..." find pkg/{,usr,usr/local,opt/*}/lib -type f -not -name "*.dll" -not -name "*.exe" \ -exec /usr/bin/strip --strip-debug '{}' \; 2>&1 \