X-Git-Url: https://git.pld-linux.org/?a=blobdiff_plain;f=builder.sh;h=f2c514f31b47530376c8c030f5f06237714cca68;hb=5b95e67782c8eb79b3d62cf4d7bb3939e2017c88;hp=6991edea0f01a689b108c6ff9233f5c25f775212;hpb=71d62f04da7f0164f1834f969efb4518cb237850;p=packages%2Frpm-build-tools.git diff --git a/builder.sh b/builder.sh index 6991ede..f2c514f 100644 --- a/builder.sh +++ b/builder.sh @@ -23,9 +23,11 @@ CLEAN="" DEBUG="" NOURLS="" NOCVS="" +ALLWAYS_CVSUP="yes" CVSROOT=${CVSROOT:-""} LOGFILE="" CHMOD="yes" +RPMOPTS="" PATCHES="" SOURCES="" @@ -34,6 +36,8 @@ PACKAGE_RELEASE="" PACKAGE_VERSION="" PACKAGE_NAME="" +DEF_NICE_LEVEL=0 + if [ -f ~/etc/builderrc ]; then . ~/etc/builderrc elif [ -f ~/.builderrc ]; then @@ -52,7 +56,7 @@ Usage: builder [-D] [--debug] [-V] [--version] [-a] [--as_anon] [-b] [-ba] [-d ] [--cvsroot ] [-g] [--get] [-h] [--help] [-l ] [-m] [--mr-proper] [--logtofile ] [-q] [--quiet] [-r ] [--cvstag ] [-u] [--no-urls] [-v] [--verbose] - .spec + [--opts ] .spec -D, --debug - enable script debugging mode, -V, --version - output builder version @@ -74,10 +78,11 @@ Usage: builder [-D] [--debug] [-V] [--version] [-a] [--as_anon] [-b] [-ba] CVS repo or HTTP/FTP, -h, --help - this message, -l, --logtofile - log all to file, - -m, --mr-proper - only remove all files relayted to spec file and + -m, --mr-proper - only remove all files related to spec file and all work resources, -nc, --no-cvs - don't download from CVS, if source URL is given, -nu, --no-urls - don't try to download from FTP/HTTP location, + --opts - additional options for rpm -q, --quiet - be quiet, -r, --cvstag - build package using resources from specified CVS tag, @@ -214,28 +219,31 @@ get_all_files() OPTIONS="$OPTIONS -A" fi for i in $SOURCES $PATCHES $ICONS; do + if [ ! -f `nourl $i` ] || [ $ALLWAYS_CVSUP = "yes" ] + then if - echo $i | egrep -v '(http|ftp)://' |\ - egrep -q '\.(gz|bz2)$' + echo $i | grep -vE '(http|ftp|https|cvs)://' |\ + grep -qE '\.(gz|bz2)$' then echo "Warning: no URL given for $i" fi if [ -z "$NOCVS" ]||\ - [ `echo $i | egrep -v 'ftp://|http://'` ] + [ `echo $i | grep -vE '(ftp|http|https)://'` ] then cvs $OPTIONS `nourl $i` fi if [ -z "$NOURLS" ]&&[ ! -f "`nourl $i`" ]&&\ - [ `echo $i | egrep 'ftp://|http://'` ] + [ `echo $i | grep -E 'ftp://|http://|https://'` ] then - wget -c -t0 "$i" + wget -c -nd -t0 "$i" fi if [ ! -f "`nourl $i`" ]; then Exit_error err_no_source_in_repo; fi + fi done if [ "$CHMOD" = "yes" ]; then @@ -259,9 +267,9 @@ build_package() build-binary ) BUILD_SWITCH="-bb" ;; build-source ) - BUILD_SWITCH="-bs" ;; + BUILD_SWITCH="-bs --nodeps" ;; esac - rpm $BUILD_SWITCH -v $QUIET $CLEAN $SPECFILE + nice -n ${DEF_NICE_LEVEL} rpm $BUILD_SWITCH -v $QUIET $CLEAN $RPMOPTS $SPECFILE if [ "$?" -ne "0" ]; then Exit_error err_build_fail; @@ -271,7 +279,7 @@ build_package() nourl() { - echo "$@" | sed 's#\<\(ftp\|http\)://.*/##g' + echo "$@" | sed 's#\<\(ftp\|http\|https\|cvs\)://.*/##g' } #--------------------------------------------- # main() @@ -305,12 +313,16 @@ while test $# -gt 0 ; do COMMAND="usage"; shift ;; -l | --logtofile ) shift; LOGFILE="${1}"; shift ;; + -ni| --nice ) + shift; DEF_NICE_LEVEL=${1}; shift ;; -m | --mr-proper ) COMMAND="mr-proper"; shift ;; -nc | --no-cvs ) NOCVS="yes"; shift ;; -nu | --no-urls ) NOURLS="yes"; shift ;; + --opts ) + shift; RPMOPTS="${1}"; shift ;; -q | --quiet ) QUIET="--quiet"; shift ;; -r | --cvstag )