summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAaron Griffin <aaron@archlinux.org>2006-11-15 17:18:31 +0000
committerAaron Griffin <aaron@archlinux.org>2006-11-15 17:18:31 +0000
commit95358f7c5b10cdcb8ca2523ca86bd862a38476c1 (patch)
treed6e196f66886d5ee3fbd4fe23eac18b384fb0c12
parent83f6d8de8c8ce7659ba55c8d888a21345c4de968 (diff)
* integrity check looping - support multiple algorithms at once
-rwxr-xr-xscripts/makepkg195
1 files changed, 100 insertions, 95 deletions
diff --git a/scripts/makepkg b/scripts/makepkg
index ac3bda10..40efb85c 100755
--- a/scripts/makepkg
+++ b/scripts/makepkg
@@ -42,7 +42,7 @@ INSTALL=0
DOWNLOAD=""
KEEPDOCS=0
NOBUILD=0
-NOCCACHE=0
+USE_CCACHE=0
NODEPS=0
NOEXTRACT=0
NOSTRIP=0
@@ -309,7 +309,7 @@ while [ "$#" -ne "0" ]; do
--syncdeps) DEP_BIN=1 ;;
--sudosync) DEP_SUDO=1 ;;
--builddeps) DEP_SRC=1 ;;
- --noccache) NOCCACHE=1 ;;
+ --noccache) USE_CCACHE=0 ;;
--nodeps) NODEPS=1 ;;
--noextract) NOEXTRACT=1 ;;
--install) INSTALL=1 ;;
@@ -332,7 +332,7 @@ while [ "$#" -ne "0" ]; do
while getopts "bBcCdefghij:Lmnop:rsSw:-" opt; do
case $opt in
b) DEP_SRC=1 ;;
- B) NOCCACHE=1 ;;
+ B) USE_CCACHE=0 ;;
c) CLEANUP=1 ;;
C) CLEANCACHE=1 ;;
d) NODEPS=1 ;;
@@ -568,107 +568,112 @@ if [ "$NOEXTRACT" = "1" ]; then
warning "Skipping source extraction -- using existing src/ tree"
warning "Skipping source integrity checks -- using existing src/ tree"
else
- integ="$(echo $INTEGRITY_CHECK | tr A-Z a-z)"
- case "$integ" in
- md5) integrity_name="md5sum" ;;
- sha1) integrity_name="sha1sum" ;;
- *) 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
+ 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
- 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
- else #validation
- 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
+ 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")
- 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
+ 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 "Passed" >&2
+ echo -ne "\t "
+ fi
+ echo -n "'$sum'"
+ ct=$(($ct+1))
+ if [ $ct -eq $numsrc ]; then
+ echo ')'
+ else
+ echo ' \'
+ newline=0
fi
- idx=$(($idx+1))
done
- if [ $errors -gt 0 ]; then
- error "One or more files did not pass the validity check!"
- exit 1
+ plain ""
+ exit 0
+ else #validation
+ 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
- else
- warning "Integrity checks ($INTEGRITY_CHECK) are missing or incomplete."
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
+ 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
- done
- fi
+ fi
+ done
fi
if [ "`id -u`" = "0" ]; then
@@ -694,7 +699,7 @@ if [ "$DISTCC" = "y" ]; then
fi
# use ccache if it's available
-if [ "$NOCCACHE" = "0" ]; then
+if [ "$USE_CCACHE" = "1" ]; then
[ -d /usr/lib/ccache/bin ] && export PATH=/usr/lib/ccache/bin:$PATH
fi