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"
+# Clean PATH without /usr/local or user paths
+CLEAN_PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin"
# required rpm-build-macros
RPM_MACROS_VER=1.534
local outfile=$1 url=$2 retval wget_help
if [ -z "${WGET_OPTS_SET+x}" ]; then
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"
"
}
+is_rpmorg() {
+ local v
+
+ v=$(LC_ALL=C LANG=C 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;
+ ;;
+ *)
+ echo "ERROR: unsupported RPM version $v" >&2
+ exit 1
+ esac
+}
+
# create tempfile. as secure as possible
tempfile() {
local prefix=builder.$PACKAGE_NAME${1:+.$1}
%_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
without_*)
bcond=${opt#without_}
case "$BCOND" in
- *--without?${bcond}*)
+ *--without?${bcond}\ *|*--without?${bcond})
AVAIL_BCONDS_WITHOUT="$AVAIL_BCONDS_WITHOUT <$bcond>"
;;
*)
with_*)
bcond=${opt#with_}
case "$BCOND" in
- *--with?${bcond}*)
+ *--with?${bcond}\ *|*--with?${bcond})
AVAIL_BCONDS_WITH="$AVAIL_BCONDS_WITH <$bcond>"
;;
*)
# this requires following sudo rules:
# - poldek --noask --caplookup -ug
poldek_install() {
- LANG=C $POLDEK_CMD --noask --caplookup --uniq -ug "$@"
+ LC_ALL=C LANG=C $POLDEK_CMD --noask --caplookup --uniq -ug "$@"
}
# install packages
DEPS=$(cat)
fi
- LANG=C rpm -q --whatprovides $DEPS 2>/dev/null | awk '!/no package provides/ { print }'
+ LC_ALL=C LANG=C rpm -q --whatprovides $DEPS 2>/dev/null | awk '!/no package provides/ { print }'
}
# install deps via information from 'rpm-getdeps' or 'rpm --specsrpm'
--http )
PROTOCOL="http"; shift ;;
-j)
- RPMOPTS="${RPMOPTS} --define \"_smp_mflags -j$2\""
+ RPMOPTS="${RPMOPTS} --define \"__jobs $2\""
shift 2
;;
-j[0-9]*)
- RPMOPTS="${RPMOPTS} --define \"_smp_mflags $1\""
+ RPMOPTS="${RPMOPTS} --define \"__jobs ${1#-j}\""
shift
;;
-p)