summaryrefslogtreecommitdiffstats
path: root/scripts/makepkg
diff options
context:
space:
mode:
authorAaron Griffin <aaron@archlinux.org>2006-12-21 01:53:40 +0000
committerAaron Griffin <aaron@archlinux.org>2006-12-21 01:53:40 +0000
commit74e347f09bd62872de84b431dcf029090931d199 (patch)
tree966f7b6b2a35ccaecb61b2119f28a2bad2340a96 /scripts/makepkg
parentb1fbcd3ab5cf16b668cfc72d90223f48a329605b (diff)
downloadpacman-74e347f09bd62872de84b431dcf029090931d199.tar.xz
* modeline fixes / reformatting
* formatting / indentation fixes * makepkg: Dan McGee <dpmcgee@gmail.com> - integrity check fix Jürgen Hötzel <juergen@hoetzel.info> - EUID usage and "x$foo" check revamp
Diffstat (limited to 'scripts/makepkg')
-rwxr-xr-xscripts/makepkg618
1 files changed, 310 insertions, 308 deletions
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 <jobs> Set MAKEFLAGS to \"-j<jobs>\" 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 <dpmcgee@gmail.com>
- echo " -t <sourcedir> Cache source files in <sourcedir>"
+ # fix flyspray feature request #5223 - Dan McGee <dpmcgee@gmail.com>
+ echo " -t <sourcedir> Cache source files in <sourcedir>"
echo " -w <destdir> Write package to <destdir> 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 <dpmcgee@gmail.com>
-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,24 +568,24 @@ 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
@@ -593,120 +593,127 @@ 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:
+