]> git.pld-linux.org Git - packages/rpm-build-tools.git/blobdiff - builder.sh
Update copyright year
[packages/rpm-build-tools.git] / builder.sh
index f138da9af25e46e02793b48882daade552a61618..2daade8e6eb278a629bd93cfdd854139488922b3 100755 (executable)
@@ -38,7 +38,7 @@ APPDIR=$(d=$0; [ -L "$d" ] && d=$(readlink -f "$d"); dirname "$d")
 VERSION="v0.35"
 VERSIONSTRING="\
 Build package utility from PLD Linux Packages repository
-$VERSION (C) 1999-2016 Free Penguins".
+$VERSION (C) 1999-2020 Free Penguins".
 
 CLEAN_PATH="/bin:/usr/bin:/usr/sbin:/sbin:/usr/X11R6/bin"
 
@@ -114,8 +114,7 @@ PROTOCOL="http"
 IPOPT=""
 
 # use lftp by default when available
-USE_LFTP=
-lftp --version > /dev/null 2>&1 && USE_LFTP=yes
+test -z "${USE_LFTP+x}" && lftp --version > /dev/null 2>&1 && USE_LFTP=yes
 PARALLEL_DOWNLOADS=10
 
 WGET_RETRIES=${MAX_WGET_RETRIES:-0}
@@ -270,12 +269,13 @@ download_axel() {
 }
 
 download_wget() {
-       local outfile=$1 url=$2 retval
+       local outfile=$1 url=$2 retval wget_help
        if [ -z "${WGET_OPTS_SET+x}" ]; then
-               wget --help 2>&1 | grep -q -- ' --no-check-certificate ' && WGET_OPTS="$WGET_OPTS --no-check-certificate"
-               wget --help 2>&1 | grep -q -- ' --inet ' && WGET_OPTS="$WGET_OPTS --inet"
-               wget --help 2>&1 | grep -q -- ' --retry-connrefused ' && WGET_OPTS="$WGET_OPTS --retry-connrefused"
-               wget --help 2>&1 | grep -q -- ' --no-iri ' && WGET_OPTS="$WGET_OPTS --no-iri"
+               wget_help="$(wget --help 2>&1)"
+               echo "$wget_help" | grep -q -- ' --no-check-certificate ' && WGET_OPTS="$WGET_OPTS --no-check-certificate"
+               echo "$wget_help" | grep -q -- ' --inet ' && WGET_OPTS="$WGET_OPTS --inet"
+               echo "$wget_help" | grep -q -- ' --retry-connrefused ' && WGET_OPTS="$WGET_OPTS --retry-connrefused"
+               echo "$wget_help" | grep -q -- ' --no-iri ' && WGET_OPTS="$WGET_OPTS --no-iri"
                WGET_OPTS="-c -nd -t$WGET_RETRIES $WGET_OPTS --user-agent=$USER_AGENT $IPOPT --passive-ftp"
                WGET_OPTS_SET=1
        fi
@@ -475,6 +475,23 @@ Usage: builder [--all-branches] [-D|--debug] [-V|--version] [--short-version]  [
 "
 }
 
+is_rpmorg() {
+       local v
+
+       v=$(rpm --version 2>&1)
+       v=${v#RPM version } # rpm 4
+       v=${v#rpm (RPM) } # rpm 5
+
+       case "$v" in
+               4.5|5.*)
+                       return 1
+                       ;;
+               4.*)
+                       return 0;
+                       ;;
+       esac
+}
+
 # create tempfile. as secure as possible
 tempfile() {
        local prefix=builder.$PACKAGE_NAME${1:+.$1}
@@ -688,7 +705,8 @@ EOF
 %_sourcedir ./
 EOF
        fi
-       if rpm --version 2>&1 | grep -qE '5\.[0-9]+\.[0-9]+'; then
+       if ! is_rpmorg; then
+               local safe_macrofiles
                safe_macrofiles=$(rpm $TARGET_SWITCH --showrc | awk -F: '/^macrofiles/ { gsub(/^macrofiles[ \t]+:/, "", $0); print $0 } ')
                eval PATH=$CLEAN_PATH $RPMBUILD $TARGET_SWITCH --macros "$safe_macrofiles:$BUILDER_MACROS" $QUIET $RPMOPTS $RPMBUILDOPTS $BCOND $* 2>&1
        else
@@ -1050,7 +1068,10 @@ get_spec() {
 
        if [ -n "$CVSTAG" ]; then
                if git rev-parse --verify -q "$CVSTAG" >/dev/null; then
-                       git checkout "$CVSTAG" --
+                       # checkout only if differs, so this will not trash git reflog
+                       if [ $(git rev-parse "$CVSTAG") != $(git rev-parse HEAD) ]; then
+                               git checkout "$CVSTAG" --
+                       fi
                elif git rev-parse --verify -q "refs/remotes/${REMOTE_PLD}/$CVSTAG"; then
                        git checkout -t "refs/remotes/${REMOTE_PLD}/$CVSTAG" > /dev/null
                fi
This page took 0.045159 seconds and 4 git commands to generate.