X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=builder.sh;h=058d0de8ef942cef460202c18ad18b9e57a58b11;hb=3e5d0ee427278c4c7de0bb065ccddaa3f676ec5a;hp=8ee6fec7d6a789c10143280f12feaa610fcbd5b3;hpb=5cf31543a3dfdbf16cb55252da419c86ceef6d69;p=packages%2Frpm-build-tools.git diff --git a/builder.sh b/builder.sh index 8ee6fec..058d0de 100755 --- a/builder.sh +++ b/builder.sh @@ -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-2020 Free Penguins". +$VERSION (C) 1999-2021 Free Penguins". # Clean PATH without /usr/local or user paths CLEAN_PATH="/usr/sbin:/usr/bin:/sbin:/bin:/usr/X11R6/bin" @@ -151,9 +151,13 @@ REVERT_BROKEN_UPGRADE="yes" if rpm --specsrpm 2>/dev/null; then FETCH_BUILD_REQUIRES_RPMSPECSRPM="yes" + FETCH_BUILD_REQUIRES_RPMSPEC_BINARY="no" FETCH_BUILD_REQUIRES_RPMGETDEPS="no" -else +elif [ -x /usr/bin/rpmspec ]; then FETCH_BUILD_REQUIRES_RPMSPECSRPM="no" + FETCH_BUILD_REQUIRES_RPMSPEC_BINARY="yes" + FETCH_BUILD_REQUIRES_RPMGETDEPS="no" +else if [ -x /usr/bin/rpm-getdeps ]; then FETCH_BUILD_REQUIRES_RPMGETDEPS="yes" else @@ -182,7 +186,9 @@ fi #LOGFILE='../LOGS/log.$PACKAGE_NAME.$DATE' #TITLECHANGE=no -SU_SUDO="sudo" +if [ "$(id -u )" != "0" ]; then + SU_SUDO="sudo" +fi if [ -n "$HOME_ETC" ]; then USER_CFG="$HOME_ETC/.builderrc" @@ -273,7 +279,6 @@ download_wget() { 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" @@ -479,7 +484,7 @@ Usage: builder [--all-branches] [-D|--debug] [-V|--version] [--short-version] [ is_rpmorg() { local v - v=$(rpm --version 2>&1) + v=$(LC_ALL=C LANG=C rpm --version 2>&1) v=${v#RPM version } # rpm 4 v=${v#rpm \(RPM\) } # rpm 5 @@ -593,7 +598,7 @@ depspecname() { s/apache\(EAPI\)-devel/apache-devel/ - s/db-devel/db5.3-devel/ + s/^db-devel/db5.3-devel/ s/libjpeg-devel/libjpeg-turbo-devel/ ' } @@ -1699,9 +1704,9 @@ build_package() { # this may be set by user unset GIT_SSH # may be set by user - unset GIT_COMMITTER_NAME GIT_COMMITTER_EMAIL GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL GIT_TESTING_PORCELAIN_COMMAND_LIST + unset GIT_COMMITTER_NAME GIT_COMMITTER_EMAIL GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL GIT_TESTING_PORCELAIN_COMMAND_LIST GIT_EDITOR # fail if something still set - env | grep ^GIT_ && Exit_error err_build_fail + env | grep ^GIT_ && Exit_error err_build_fail "One of GIT_* env variables is still set. The builder script needs to be updated to unset that variable. In the meantime, unset it manually." local specdir=$(insert_gitlog $SPECFILE) ulimit -c unlimited @@ -1896,7 +1901,7 @@ run_sub_builder() { # 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 @@ -2025,7 +2030,7 @@ _rpm_cnfl_check() { 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' @@ -2036,6 +2041,10 @@ install_build_requires_rpmdeps() { CNFL=$(eval rpm-getdeps $BCOND $RPMOPTS $SPECFILE 2> /dev/null | awk '/^\-/ { print $3 } ' | _rpm_cnfl_check | xargs) DEPS=$(eval rpm-getdeps $BCOND $RPMOPTS $SPECFILE 2> /dev/null | awk '/^\+/ { print $3 } ' | _rpm_prov_check | xargs) fi + if [ "$FETCH_BUILD_REQUIRES_RPMSPEC_BINARY" = "yes" ]; then + CNFL=$(eval rpmspec --query --buildconflicts $BCOND $RPMOPTS $SPECFILE 2> /dev/null | awk '{print $1}' | _rpm_cnfl_check | xargs); + DEPS=$(eval rpmspec --query --buildrequires $BCOND $RPMOPTS $SPECFILE 2> /dev/null | awk '{print $1}' | _rpm_prov_check | xargs); + fi if [ "$FETCH_BUILD_REQUIRES_RPMSPECSRPM" = "yes" ]; then CNFL=$(eval rpm -q --specsrpm --conflicts $BCOND $RPMOPTS $SPECFILE | awk '{print $1}' | _rpm_cnfl_check | xargs) DEPS=$(eval rpm -q --specsrpm --requires $BCOND $RPMOPTS $SPECFILE | awk '{print $1}' | _rpm_prov_check | xargs) @@ -2059,7 +2068,7 @@ fetch_build_requires() fi update_shell_title "fetch build requires" - if [ "$FETCH_BUILD_REQUIRES_RPMGETDEPS" = "yes" ] || [ "$FETCH_BUILD_REQUIRES_RPMSPECSRPM" = "yes" ]; then + if [ "$FETCH_BUILD_REQUIRES_RPMGETDEPS" = "yes" ] || [ "$FETCH_BUILD_REQUIRES_RPMSPECSRPM" = "yes" ] || [ "$FETCH_BUILD_REQUIRES_RPMSPEC_BINARY" = "yes" ]; then install_build_requires_rpmdeps return fi @@ -2190,11 +2199,11 @@ while [ $# -gt 0 ]; do --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)