From 74e347f09bd62872de84b431dcf029090931d199 Mon Sep 17 00:00:00 2001 From: Aaron Griffin Date: Thu, 21 Dec 2006 01:53:40 +0000 Subject: * modeline fixes / reformatting * formatting / indentation fixes * makepkg: Dan McGee - integrity check fix Jürgen Hötzel - EUID usage and "x$foo" check revamp MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- scripts/makepkg | 618 ++++++++++++++++++++++++++++---------------------------- 1 file changed, 310 insertions(+), 308 deletions(-) (limited to 'scripts/makepkg') diff --git a/scripts/makepkg b/scripts/makepkg index cec871e7..0eb627e3 100755 --- a/scripts/makepkg +++ b/scripts/makepkg @@ -26,7 +26,7 @@ # myver='3.0.0' -startdir=`pwd` +startdir=$(pwd) PKGDEST=$startdir BUILDSCRIPT="PKGBUILD" @@ -77,11 +77,11 @@ msg() { } msg2() { - if [ "$USE_COLOR" = "Y" -o "$USE_COLOR" = "y" ]; then - echo -e " \033[1;34m->\033[1;0m \033[1;1m$1\033[1;0m" >&2 - else - echo " -> $1" >&2 - fi + if [ "$USE_COLOR" = "Y" -o "$USE_COLOR" = "y" ]; then + echo -e " \033[1;34m->\033[1;0m \033[1;1m$1\033[1;0m" >&2 + else + echo " -> $1" >&2 + fi } warning() { @@ -106,8 +106,8 @@ strip_url() { check_option() { local i for i in ${options[@]}; do - local uc=`echo $i | tr [:lower:] [:upper:]` - local lc=`echo $i | tr [:upper:] [:lower:]` + local uc=$(echo $i | tr [:lower:] [:upper:]) + local lc=$(echo $i | tr [:upper:] [:lower:]) if [ "$uc" = "$1" -o "$lc" = "$1" ]; then echo $1 return @@ -116,13 +116,13 @@ check_option() { } in_array() { - needle=$1 - shift 1 - [ -z "$1" ] && return 1 - for i in $*; do - [ "$i" == "$needle" ] && return 0 - done - return 1 + needle=$1 + shift 1 + [ -z "$1" ] && return 1 + for i in $*; do + [ "$i" == "$needle" ] && return 0 + done + return 1 } checkdeps() { @@ -131,7 +131,7 @@ checkdeps() { [ $# -gt 0 ] || return - missdep=`pacman $PACMAN_OPTS -T $*` + missdep=$(pacman $PACMAN_OPTS -T $*) ret=$? if [ "$ret" != "0" ]; then if [ "$ret" = "127" ]; then @@ -144,7 +144,7 @@ checkdeps() { nl=0 echo -ne "\n" >&2 # add this dep to the list - depname=`echo $dep | sed 's|=.*$||' | sed 's|>.*$||' | sed 's|<.*$||'` + depname=$(echo $dep | sed 's|=.*$||' | sed 's|>.*$||' | sed 's|<.*$||') deplist="$deplist $depname" continue fi @@ -163,7 +163,7 @@ handledeps() { local missingdeps=0 local deplist="$*" local haveperm=0 - if [ \( "`id -u`" = "0" -a "$INFAKEROOT" != "1" \) -o "$DEP_SUDO" = 1 ]; then + if [ \( "$EUID" = "0" -a "$INFAKEROOT" != "1" \) -o "$DEP_SUDO" = 1 ]; then haveperm=1 fi @@ -171,7 +171,7 @@ handledeps() { if [ "$DEP_BIN" = "1" ]; then # install missing deps from binary packages (using pacman -S) msg "Installing missing dependencies..." - pacman $PACMAN_OPTS -D $deplist + pacman $PACMAN_OPTS -D $deplist if [ "$?" = "127" ]; then error "Failed to install missing dependencies." exit 1 @@ -184,8 +184,8 @@ handledeps() { # in fakeroot so it will go ahead and install the dependencies. FAKEROOTKEY2=$FAKEROOTKEY unset FAKEROOTKEY - fi - sudo pacman $PACMAN_OPTS -D $deplist + fi + sudo pacman $PACMAN_OPTS -D $deplist if [ "$?" = "127" ]; then error "Failed to install missing dependencies." exit 1 @@ -193,12 +193,12 @@ handledeps() { if [ "$INFAKEROOT" = "1" ]; then export FAKEROOTKEY=$FAKEROOTKEY2 unset FAKEROOTKEY2 - fi + fi elif [ "$DEP_SRC" = "1" ]; then # install missing deps by building them from source. # we look for each package name in $SRCROOT and build it. if [ "$SRCROOT" = "" ]; then - error "Source root cannot be found - please make sure it is specified in /etc/makepkg.conf" + error "Source root cannot be found - please make sure it is specified in /etc/makepkg.conf" exit 1 fi # TODO: handle version comparators (eg, glibc>=2.2.5) @@ -269,7 +269,7 @@ usage() { echo " -h, --help This help" echo " -i, --install Install package after successful build" echo " -j Set MAKEFLAGS to \"-j\" before building" - echo " -k, --keepdocs Keep doc and info directories" + echo " -k, --keepdocs Keep doc and info directories" echo " -L, --log Log package build process" echo " -m, --nocolor Disable colorized output messages" echo " -n, --nostrip Do not strip symbols from binaries/libraries" @@ -278,8 +278,8 @@ usage() { echo " -r, --rmdeps Remove installed dependencies after a successful build" echo " -s, --syncdeps Install missing dependencies with pacman" echo " -S, --sudosync Install missing dependencies with pacman and sudo" - # fix flyspray feature request #5223 - Dan McGee - echo " -t Cache source files in " + # fix flyspray feature request #5223 - Dan McGee + echo " -t Cache source files in " echo " -w Write package to instead of the working dir" echo echo "These options can be passed to pacman:" @@ -294,10 +294,10 @@ usage() { ARGLIST=$@ if [ -f /etc/makepkg.conf ]; then - source /etc/makepkg.conf + source /etc/makepkg.conf else - error "/etc/makepkg.conf not found. cannot continue" - exit 1 + error "/etc/makepkg.conf not found. cannot continue" + exit 1 fi #Let's be courteous and support frugalware's extensions @@ -305,10 +305,10 @@ fi while [ "$#" -ne "0" ]; do case $1 in -# pacman + # pacman --noconfirm) PACMAN_OPTS="$PACMAN_OPTS --noconfirm" ;; --noprogressbar) PACMAN_OPTS="$PACMAN_OPTS --noprogressbar" ;; -# makepkg + # makepkg --clean) CLEANUP=1 ;; --cleancache) CLEANCACHE=1 ;; --syncdeps) DEP_BIN=1 ;; @@ -319,69 +319,69 @@ while [ "$#" -ne "0" ]; do --noextract) NOEXTRACT=1 ;; --install) INSTALL=1 ;; --force) FORCE=1 ;; - --keepdocs) KEEPDOCS=1 ;; + --keepdocs) KEEPDOCS=1 ;; --nostrip) NOSTRIP=1 ;; --nobuild) NOBUILD=1 ;; --nocolor) USE_COLOR="n" ;; --geninteg) GENINTEG=1 ;; --rmdeps) RMDEPS=1 ;; - --log) LOGGING=1 ;; + --log) LOGGING=1 ;; --help) - usage - exit 0 - ;; + usage + exit 0 + ;; --*) - usage - exit 1 - ;; + usage + exit 1 + ;; -*) - while getopts "bBcCdefghij:kLmnop:rsSt:w:-" opt; do - case $opt in - b) DEP_SRC=1 ;; - B) USE_CCACHE=0 ;; - c) CLEANUP=1 ;; - C) CLEANCACHE=1 ;; - d) NODEPS=1 ;; - e) NOEXTRACT=1 ;; - f) FORCE=1 ;; - g) GENINTEG=1 ;; - h) - usage - exit 0 - ;; - i) INSTALL=1 ;; - j) export MAKEFLAGS="-j$OPTARG" ;; - k) KEEPDOCS=1 ;; - L) LOGGING=1 ;; - m) USE_COLOR="n" ;; - n) NOSTRIP=1 ;; - o) NOBUILD=1 ;; - p) BUILDSCRIPT=$OPTARG ;; - r) RMDEPS=1 ;; - s) DEP_BIN=1 ;; - S) DEP_SUDO=1 ;; - t) SRCDEST=$OPTARG ;; - w) PKGDEST=$OPTARG ;; - -) - OPTIND=0 - break - ;; - *) - usage - exit 1 - ;; - esac - done - ;; + while getopts "bBcCdefghij:kLmnop:rsSt:w:-" opt; do + case $opt in + b) DEP_SRC=1 ;; + B) USE_CCACHE=0 ;; + c) CLEANUP=1 ;; + C) CLEANCACHE=1 ;; + d) NODEPS=1 ;; + e) NOEXTRACT=1 ;; + f) FORCE=1 ;; + g) GENINTEG=1 ;; + h) + usage + exit 0 + ;; + i) INSTALL=1 ;; + j) export MAKEFLAGS="-j$OPTARG" ;; + k) KEEPDOCS=1 ;; + L) LOGGING=1 ;; + m) USE_COLOR="n" ;; + n) NOSTRIP=1 ;; + o) NOBUILD=1 ;; + p) BUILDSCRIPT=$OPTARG ;; + r) RMDEPS=1 ;; + s) DEP_BIN=1 ;; + S) DEP_SUDO=1 ;; + t) SRCDEST=$OPTARG ;; + w) PKGDEST=$OPTARG ;; + -) + OPTIND=0 + break + ;; + *) + usage + exit 1 + ;; + esac + done + ;; *) - true - ;; + true + ;; esac shift done # check for sudo -if [ "$DEP_SUDO" = "1" -a ! "`type -p sudo`" ]; then +if [ "$DEP_SUDO" = "1" -a ! "$(type -p sudo)" ]; then error "Cannot find the sudo binary! Is sudo installed?" exit 1 fi @@ -392,25 +392,25 @@ if [ $? -ne 0 ]; then error "Package destination directory does not exist or permission denied." exit 1 fi -PKGDEST=`pwd` +PKGDEST=$(pwd) cd $OLDPWD if [ "$CLEANCACHE" = "1" ]; then - if [ -n "$SRCDEST" ]; then - msg "Cleaning up source files from the cache." - rm -rf /var/cache/pacman/src/* - rm -rf "${SRCDEST}"/* - exit 0 - else - if [ "`id -u`" = "0" -a "$INFAKEROOT" != "1" ]; then - msg "Cleaning up source files from the cache." - rm -rf /var/cache/pacman/src/* - exit 0 - else - error "You must be root to clean the cache." - exit 1 - fi - fi + if [ -n "$SRCDEST" ]; then + msg "Cleaning up source files from the cache." + rm -rf /var/cache/pacman/src/* + rm -rf "${SRCDEST}"/* + exit 0 + else + if [ "$EUID" = "0" -a "$INFAKEROOT" != "1" ]; then + msg "Cleaning up source files from the cache." + rm -rf /var/cache/pacman/src/* + exit 0 + else + error "You must be root to clean the cache." + exit 1 + fi + fi fi unset pkgname pkgver pkgrel pkgdesc url license groups provides md5sums force @@ -424,13 +424,13 @@ umask 0022 if [ ! -f $BUILDSCRIPT ]; then error "$BUILDSCRIPT does not exist." exit 1 -#TODO this is an attempt at a generic way to unset all package specific -#variables in a PKGBUILD -#else -# #this is fun.... we'll unset -# for var in $(grep "=" $BUILDSCRIPT | sed "s|.*\(\<.*\>\)=.*|\1|g"); do -# unset $var -# done + #TODO this is an attempt at a generic way to unset all package specific + #variables in a PKGBUILD + #else + # #this is fun.... we'll unset + # for var in $(grep "=" $BUILDSCRIPT | sed "s|.*\(\<.*\>\)=.*|\1|g"); do + # unset $var + # done fi source $BUILDSCRIPT @@ -454,8 +454,8 @@ if [ $(echo $pkgrel | grep '-') ]; then fi 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')." + plain "Note that many packages may need a line added to their $BUILDSCRIPT" + plain "such as arch=('$CARCH')." exit 1 fi @@ -478,9 +478,9 @@ fi # Enter the fakeroot environment if necessary. This will call the makepkg script again # as the fake root user. We detect this by passing a sentinel option (-F) to makepkg -if [ "`id -u`" != "0" ]; then +if [ "$EUID" != "0" ]; then if [ "$USE_FAKEROOT" = "y" -o "$USE_FAKEROOT" = "Y" ]; then - if [ `type -p fakeroot` ]; then + if [ $(type -p fakeroot) ]; then msg "Entering fakeroot environment" fakeroot -- $0 -F $ARGLIST exit $? @@ -501,25 +501,25 @@ if [ "`id -u`" != "0" ]; then fi fi -msg "Making package: $pkgname $pkgver-$pkgrel (`date`)" +msg "Making package: $pkgname $pkgver-$pkgrel ($(date))" unset deplist makedeplist # fix flyspray bug #5973 - Dan McGee -if [ `type -p pacman` -a "$NODEPS" = "0" -a "$GENINTEG" = "0" -a "$NOBUILD" = "0" ]; then +if [ $(type -p pacman) -a "$NODEPS" = "0" -a "$GENINTEG" = "0" -a "$NOBUILD" = "0" ]; then msg "Checking Runtime Dependencies..." - deplist=`checkdeps ${depends[@]}` + deplist=$(checkdeps ${depends[@]}) handledeps $deplist if [ $? -gt 0 ]; then exit 1 fi # check deps again to make sure they were resolved - deplist=`checkdeps ${depends[@]}` + deplist=$(checkdeps ${depends[@]}) if [ ! -z "$deplist" ]; then error "Failed to install missing dependencies." exit 1 fi msg "Checking Buildtime Dependencies..." - makedeplist=`checkdeps ${makedepends[@]}` + makedeplist=$(checkdeps ${makedepends[@]}) handledeps $makedeplist if [ $? -gt 0 ]; then exit 1 @@ -554,9 +554,9 @@ for netfile in ${source[@]}; do msg "Aborting..." exit 1 fi - ftpclient=`echo $FTPAGENT | awk {'print $1'}` + ftpclient=$(echo $FTPAGENT | awk {'print $1'}) if [ ! -x "$ftpclient" ]; then - error "ftpclient `basename $ftpclient` is not installed." + error "ftpclient $(basename $ftpclient) is not installed." msg "Aborting..." exit 1 fi @@ -568,145 +568,152 @@ for netfile in ${source[@]}; do fi msg " Downloading $file" $FTPAGENT "$netfile" 2>&1 - # fix flyspray bug #3289 - ftpret=$? - if [ $ftpret -gt 0 ]; then - error "Failure while downloading $file" - msg "Aborting..." - rm "$file" - exit 1 + # fix flyspray bug #3289 + ftpret=$? + if [ $ftpret -gt 0 ]; then + error "Failure while downloading $file" + msg "Aborting..." + rm "$file" + exit 1 exit 1 fi - if [ "`id -u`" = "0" -a "$INFAKEROOT" != "1" ]; then + if [ "$EUID" = "0" -a "$INFAKEROOT" != "1" ]; then mkdir -p /var/cache/pacman/src && cp $file /var/cache/pacman/src - if [ -n "$SRCDEST" ]; then - mkdir -p $SRCDEST && cp "$file" $SRCDEST - elif [ "`id -u`" = "0" -a "$INFAKEROOT" != "1" ]; then - mkdir -p /var/cache/pacman/src && cp "$file" /var/cache/pacman/src - else - cp "$file" .. - fi + if [ -n "$SRCDEST" ]; then + mkdir -p $SRCDEST && cp "$file" $SRCDEST + elif [ "$EUID" = "0" -a "$INFAKEROOT" != "1" ]; then + mkdir -p /var/cache/pacman/src && cp "$file" /var/cache/pacman/src + else + cp "$file" .. + fi fi fi done +if [ "$NOEXTRACT" = "1" ]; then + warning "Skipping source integrity checks -- using existing src/ tree" +else + for integ in ${INTEGRITY_CHECK[@]}; do + integ="$(echo $integ | tr A-Z a-z)" + case "$integ" in + md5) integrity_name="md5sum" ;; + sha1) integrity_name="sha1sum" ;; + sha256) integrity_name="sha256sum" ;; + sha384) integrity_name="sha384sum" ;; + sha512) integrity_name="sha512sum" ;; + *) error "Invalid integrity algorithm '$integ' specified"; exit 1;; + esac + if [ ! $(type -p $integrity_name) ]; then + error "Cannot find the $integrity_name program." + exit 1 + fi + + #Generate integrity checks + if [ "$GENINTEG" = "1" ]; then + msg "Generating ${integrity_name}s for source files" + plain "" + ct=0 + newline=0 + numsrc=${#source[@]} + for netfile in "${source[@]}"; do + file=$(strip_url "$netfile") + sum=$(eval "$integrity_name '$file' | cut -d' ' -f 1") + if [ $ct -eq 0 ]; then + echo -n "${integrity_name}s=(" + else + echo -ne "\t " + fi + echo -n "'$sum'" + ct=$(($ct+1)) + if [ $ct -eq $numsrc ]; then + echo ')' + else + echo ' \' + newline=0 + fi + done + plain "" + #Validate integrity checks + else + integrity_sums=($(eval echo \${${integrity_name}s[@]})) + + if [ ${#integrity_sums[@]} -eq ${#source[@]} ]; then + msg "Validating source files with ${integrity_name}s" + errors=0 + idx=0 + for netfile in "${source[@]}"; do + file=$(strip_url "$netfile") + echo -n " $file ... " >&2 + echo "${integrity_sums[$idx]} $file" | $integrity_name -c - >/dev/null 2>&1 + if [ $? -ne 0 ]; then + echo "FAILED" >&2 + errors=1 + else + echo "Passed" >&2 + fi + idx=$(($idx+1)) + done + if [ $errors -gt 0 ]; then + error "One or more files did not pass the validity check!" + exit 1 + fi + else + warning "Integrity checks ($integ) are missing or incomplete." + fi + fi + done + + if [ "$GENINTEG" = "1" ]; then + exit 0 + fi +fi + +#Extract sources if [ "$NOEXTRACT" = "1" ]; then warning "Skipping source extraction -- using existing src/ tree" - warning "Skipping source integrity checks -- using existing src/ tree" else - for integ in ${INTEGRITY_CHECK[@]}; do - integ="$(echo $integ | tr A-Z a-z)" - case "$integ" in - md5) integrity_name="md5sum" ;; - sha1) integrity_name="sha1sum" ;; - sha256) integrity_name="sha256sum" ;; - sha384) integrity_name="sha384sum" ;; - sha512) integrity_name="sha512sum" ;; - *) error "Invalid integrity algorithm '$integ' specified"; exit 1;; - esac - if [ ! $(type -p $integrity_name) ]; then - error "Cannot find the $integrity_name program." - exit 1 - fi - - #Generate integrity checks - if [ "$GENINTEG" = "1" ]; then - msg "Generating ${integrity_name}s for source files" - plain "" - ct=0 - newline=0 - numsrc=${#source[@]} - for netfile in "${source[@]}"; do - file=`strip_url "$netfile"` - sum=$(eval "$integrity_name '$file' | cut -d' ' -f 1") - if [ $ct -eq 0 ]; then - echo -n "${integrity_name}s=(" - else - echo -ne "\t " - fi - echo -n "'$sum'" - ct=$(($ct+1)) - if [ $ct -eq $numsrc ]; then - echo ')' - else - echo ' \' - newline=0 - fi - done - plain "" - exit 0 - #Validate integrity checks - else - integrity_sums=($(eval echo \${${integrity_name}s[@]})) - - if [ ${#integrity_sums[@]} -eq ${#source[@]} ]; then - msg "Validating source files with ${integrity_name}s" - errors=0 - idx=0 - for netfile in "${source[@]}"; do - file=$(strip_url "$netfile") - echo -n " $file ... " >&2 - echo "${integrity_sums[$idx]} $file" | $integrity_name -c - >/dev/null 2>&1 - if [ $? -ne 0 ]; then - echo "FAILED" >&2 - errors=1 - else - echo "Passed" >&2 - fi - idx=$(($idx+1)) - done - if [ $errors -gt 0 ]; then - error "One or more files did not pass the validity check!" - exit 1 - fi - else - warning "Integrity checks ($INTEGRITY_CHECK) are missing or incomplete." - fi - fi - done - - msg "Extracting Sources..." - for netfile in "${source[@]}"; do - unziphack=0 - file=`strip_url "$netfile"` - unset cmd - case "`echo $file |tr "A-Z" "a-z"`" in - *.tar.gz|*.tar.z|*.tgz) - cmd="tar --use-compress-program=gzip -xf $file" ;; - *.tar.bz2|*.tbz2) - cmd="tar --use-compress-program=bzip2 -xf $file" ;; - *.tar) - cmd="tar -xf $file" ;; - *.zip) - unziphack=1 - cmd="unzip -qqo $file" ;; - *.cpio.gz) - cmd="bsdtar -x -f $file" ;; - *.cpio.bz2) - cmd="bsdtar -x -f $file" ;; - *.gz) - cmd="gunzip -f $file" ;; - *.bz2) - cmd="bunzip2 -f $file" ;; - esac - if [ "$cmd" != "" ]; then - msg " $cmd" - $cmd - if [ $? -ne 0 ]; then - # unzip will return a 1 as a warning, it is not an error - if [ "$unziphack" != "1" -o $? -ne 1 ]; then - error "Failed to extract $file" - msg "Aborting..." - exit 1 - fi - fi - fi - done -fi - -if [ "`id -u`" = "0" ]; then + msg "Extracting Sources..." + for netfile in "${source[@]}"; do + unziphack=0 + file=$(strip_url "$netfile") + unset cmd + case "$(echo $file |tr "A-Z" "a-z")" in + *.tar.gz|*.tar.z|*.tgz) + cmd="tar --use-compress-program=gzip -xf $file" ;; + *.tar.bz2|*.tbz2) + cmd="tar --use-compress-program=bzip2 -xf $file" ;; + *.tar) + cmd="tar -xf $file" ;; + *.zip) + unziphack=1 + cmd="unzip -qqo $file" ;; + *.cpio.gz) + cmd="bsdtar -x -f $file" ;; + *.cpio.bz2) + cmd="bsdtar -x -f $file" ;; + *.gz) + cmd="gunzip -f $file" ;; + *.bz2) + cmd="bunzip2 -f $file" ;; + esac + if [ "$cmd" != "" ]; then + msg " $cmd" + $cmd + if [ $? -ne 0 ]; then + # unzip will return a 1 as a warning, it is not an error + if [ "$unziphack" != "1" -o $? -ne 1 ]; then + error "Failed to extract $file" + msg "Aborting..." + exit 1 + fi + fi + fi + done +fi + +if [ "$EUID" = "0" ]; then # chown all source files to root.root chown -R root.root $startdir/src fi @@ -718,18 +725,18 @@ if [ -d $startdir/pkg ]; then fi mkdir -p $startdir/pkg -if [ "x$NOBUILD" = "1" ]; then +if [ "$NOBUILD" = "1" ]; then msg "Sources are ready." exit 0 fi # use distcc if requested -if [ "x$USE_DISTCC" = "y" ]; then +if [ "$USE_DISTCC" = "y" ]; then [ -d /usr/lib/distcc/bin ] && export PATH=/usr/lib/distcc/bin:$PATH fi # use ccache if it's available -if [ "x$USE_CCACHE" = "1" ]; then +if [ "$USE_CCACHE" = "1" ]; then [ -d /usr/lib/ccache/bin ] && export PATH=/usr/lib/ccache/bin:$PATH fi @@ -740,41 +747,41 @@ msg "Starting build()..." echo $SHELLOPTS | grep errexit 2>&1 >/dev/null set_e=$? -if [ "x$LOGGING" = "1" ]; then - BUILDLOG="${startdir}/${pkgname}-${pkgver}-${pkgrel}-${CARCH}.log" - if [ -f "$BUILDLOG" ]; then - i=1 - while true; do - if [ -f "$BUILDLOG.$i" ]; then - i=$(($i +1)) - else - break - fi - done - mv "$BUILDLOG" "$BUILDLOG.$i" - fi - - #use 'errexit' to bail on syntax error - [ $set_e -eq 1 ] && set -e - build 2>&1 | tee "$BUILDLOG" - [ $set_e -eq 1 ] && set +e - - if [ ${PIPESTATUS[0]} -gt 0 ]; then - error "Build Failed. Aborting..." - exit 2 - fi +if [ "$LOGGING" = "1" ]; then + BUILDLOG="${startdir}/${pkgname}-${pkgver}-${pkgrel}-${CARCH}.log" + if [ -f "$BUILDLOG" ]; then + i=1 + while true; do + if [ -f "$BUILDLOG.$i" ]; then + i=$(($i +1)) + else + break + fi + done + mv "$BUILDLOG" "$BUILDLOG.$i" + fi + + #use 'errexit' to bail on syntax error + [ $set_e -eq 1 ] && set -e + build 2>&1 | tee "$BUILDLOG" + [ $set_e -eq 1 ] && set +e + + if [ ${PIPESTATUS[0]} -gt 0 ]; then + error "Build Failed. Aborting..." + exit 2 + fi else - #use 'errexit' to bail on syntax error - [ $set_e -eq 1 ] && set -e - build 2>&1 - [ $set_e -eq 1 ] && set +e - if [ $? -gt 0 ]; then - error "Build Failed. Aborting..." - exit 2 - fi + #use 'errexit' to bail on syntax error + [ $set_e -eq 1 ] && set -e + build 2>&1 + [ $set_e -eq 1 ] && set +e + if [ $? -gt 0 ]; then + error "Build Failed. Aborting..." + exit 2 + fi fi -if [ ! "`check_option KEEPDOCS`" -a "$KEEPDOCS" = "0" ]; then +if [ ! "$(check_option KEEPDOCS)" -a "$KEEPDOCS" = "0" ]; then # remove info/doc files msg "Removing info/doc files..." cd $startdir @@ -790,63 +797,56 @@ if [ -d pkg/usr/share/man ]; then rm -rf pkg/usr/share/man fi -# remove /usr/share directory if empty -if [ -d pkg/usr/share ]; then - if [ -z "`ls -1 pkg/usr/share`" ]; then - rm -r pkg/usr/share - fi -fi - # 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 "$NOSTRIP" = "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 \ - | grep -v "No such file" | grep -v "format not recognized" + -exec /usr/bin/strip --strip-debug '{}' \; 2>&1 \ + | grep -v "No such file" | grep -v "format not recognized" msg "Stripping symbols from binaries..." find pkg/{,usr,usr/local,opt/*}/{bin,sbin} -type f -not -name "*.dll" -not -name "*.exe" \ - -exec /usr/bin/strip '{}' \; 2>&1 \ - | grep -v "No such file" | grep -v "format not recognized" + -exec /usr/bin/strip '{}' \; 2>&1 \ + | grep -v "No such file" | grep -v "format not recognized" fi # remove libtool (.la) files -if [ "`check_option NOLIBTOOL`" -a "x$NOLIBTOOL" = "1" ]; then +if [ "$(check_option NOLIBTOOL)" -a "$NOLIBTOOL" = "1" ]; then msg "Removing libtool .la files..." find pkg -type f -name "*.la" -exec rm -f -- '{}' \; fi # remove empty directories -if [ "`check_option NOEMPTYDIRS`" -a "x$NOEMPTYDIRS" = 1 ]; then +if [ "$(check_option NOEMPTYDIRS)" -a "$NOEMPTYDIRS" = 1 ]; then msg "Removing empty directories..." find pkg -depth -type d -empty -delete; fi # get some package meta info -builddate=`LC_ALL= ; LANG= ; date -u "+%a %b %e %H:%M:%S %Y"` +builddate=$(LC_ALL= ; LANG= ; date -u "+%a %b %e %H:%M:%S %Y") if [ "$PACKAGER" != "" ]; then packager="$PACKAGER" else packager="Arch Linux (http://www.archlinux.org)" fi -size=`du -cb $startdir/pkg | tail -n 1 | awk '{print $1}'` +size=$(du -cb $startdir/pkg | tail -n 1 | awk '{print $1}') # write the .PKGINFO file msg "Generating .PKGINFO file..." @@ -909,18 +909,18 @@ fi $cmd | sort >../filelist if [ ${PIPESTATUS[0]} -gt 0 ]; then - error "Failed to create package file." - exit ${PIPESTATUS[0]} + error "Failed to create package file." + exit ${PIPESTATUS[0]} fi cd $startdir if [ "$CLEANUP" = "1" ]; then msg "Cleaning up..." rm -rf src pkg filelist - rm -rf ${pkgname}-${pkgver}-${pkgrel}-${CARCH}.log* + rm -rf ${pkgname}-${pkgver}-${pkgrel}-${CARCH}.log* fi -if [ "$RMDEPS" = "1" -a "`id -u`" = "0" -a "$INFAKEROOT" != "1" -a \( ! -z "$deplist" -o ! -z "$makedeplist" \) ]; then +if [ "$RMDEPS" = "1" -a "$EUID" = "0" -a "$INFAKEROOT" != "1" -a \( ! -z "$deplist" -o ! -z "$makedeplist" \) ]; then msg "Removing installed dependencies..." pacman $PACMAN_OPTS -R $makedeplist $deplist elif [ "$RMDEPS" = "1" -a "$DEP_SUDO" = "1" ]; then @@ -936,9 +936,9 @@ elif [ "$RMDEPS" = "1" -a "$DEP_SUDO" = "1" ]; then fi fi -msg "Finished making: $pkgname (`date`)" +msg "Finished making: $pkgname ($(date))" -if [ "$INSTALL" = "1" -a "`id -u`" = "0" -a "$INFAKEROOT" != "1" ]; then +if [ "$INSTALL" = "1" -a "$EUID" = "0" -a "$INFAKEROOT" != "1" ]; then msg "Installing package with pacman -U..." pacman $PACMAN_OPTS -U $PKGDEST/${pkgname}-${pkgver}-${pkgrel}-${CARCH}.${PKGEXT} exit $? @@ -956,3 +956,5 @@ elif [ "$INSTALL" = "1" -a "$DEP_SUDO" = "1" ]; then fi exit 0 +# vim: set ts=2 sw=2 noet: + -- cgit v1.2.3-54-g00ecf