]> git.pld-linux.org Git - packages/rpm-build-tools.git/blobdiff - builder.sh
- year 2004 in VERSION
[packages/rpm-build-tools.git] / builder.sh
index 478bc600d66d647aef4b3d05e58e2036e4389650..23a462b1ab2c3668ef69d481e4b81f7768fdd7e9 100644 (file)
@@ -10,6 +10,7 @@
 #      5 - package build failed
 #      6 - spec file with errors
 #      7 - wrong source in /etc/poldek.conf
+#  8 - Failed installing buildrequirements and subrequirements
 
 # Notes (todo):
 #      - builder -u fetches current version first
@@ -22,7 +23,7 @@
 
 VERSION="\
 Build package utility from PLD CVS repository
-V 0.11 (C) 1999-2003 Free Penguins".
+V 0.11 (C) 1999-2004 Free Penguins".
 PATH="/bin:/usr/bin:/usr/sbin:/sbin:/usr/X11R6/bin"
 
 COMMAND="build"
@@ -90,22 +91,23 @@ GETURI2="wget -c -nd -t$WGET_RETRIES $WGET_OPTS"
 GETLOCAL="cp -a"
 
 if (rpm --version 2>&1 | grep -q '4.0.[0-2]'); then
-    RPM="rpm"
-    RPMBUILD="rpm"
+       RPM="rpm"
+       RPMBUILD="rpm"
 else
-    RPM="rpm"
-    RPMBUILD="rpmbuild"
+       RPM="rpm"
+       RPMBUILD="rpmbuild"
 fi
 
 POLDEK_INDEX_DIR="`$RPM --eval %_rpmdir`/"
 POLDEK_SOURCE="cvs"
+POLDEK_CMD="/usr/bin/poldek --noask"
 
-# Here we load saved user environment used to 
+# Here we load saved user environment used to
 # predefine options set above, or passed to builder
 # in command line.
 # This one reads global system environment settings:
 if [ -f ~/etc/builderrc ]; then
-    . ~/etc/builderrc
+       . ~/etc/builderrc
 fi
 # And this one cascades settings using user personal
 # builder settings.
@@ -118,18 +120,35 @@ fi
 #LOGFILE='../LOGS/log.$PACKAGE_NAME.$DATE'
 #
 if [ -n "$HOME_ETC" ]; then
-       USER_CFG=$HOME_ETC/.builderrc
+       USER_CFG="$HOME_ETC/.builderrc"
 else
        USER_CFG=~/.builderrc
 fi
 
-[ -f $USER_CFG ] && . $USER_CFG        
+[ -f "$USER_CFG" ] && . "$USER_CFG"
+
+run_poldek()
+{
+       RES_FILE=~/tmp/poldek-exit-status.$RANDOM
+       if [ -n "$LOGFILE" ]; then
+               LOG=`eval echo $LOGFILE`
+               if [ -n "$LASTLOG_FILE" ]; then
+                       echo "LASTLOG=$LOG" > $LASTLOG_FILE
+               fi
+               (nice -n ${DEF_NICE_LEVEL} ${POLDEK_CMD} `while test $# -gt 0; do echo "$1 ";shift;done` ; echo $? > ${RES_FILE})|tee $LOG
+               return $exit_pldk
+       else
+               (nice -n ${DEF_NICE_LEVEL} ${POLDEK_CMD} `while test $# -gt 0; do echo "$1 ";shift;done` ; echo $? > ${RES_FILE}) 1>&2 >/dev/null
+               return `cat ${RES_FILE}`
+               rm -rf ${RES_FILE}
+       fi
+}
 
 # Example grep cvs /etc/poldek.conf:
 # source = cvs /home/users/yoshi/rpm/RPMS/
 if [ "$UPDATE_POLDEK_INDEXES" = "yes" ]; then
-       POLDEK_SOURCE_VALIDITY="`grep ${POLDEK_SOURCE} /etc/poldek.conf|grep -v ^#`"
-       if [ "${POLDEK_SOURCE_VALIDITY}" = "" ]; then 
+       run_poldek -l -n ${POLDEK_SOURCE} 1>&2 > /dev/null
+       if [ ! "$?" == "0" ]; then
                echo "Using improper source '${POLDEK_SOURCE}' in /etc/poldek.conf"
                echo "Fix it and try to continue"
                exit 7
@@ -150,7 +169,7 @@ Usage: builder [-D|--debug] [-V|--version] [-a|--as_anon] [-b|-ba|--build]
 [-h|--help] [--http] [{-l,--logtofile} <logfile>] [-m|--mr-proper]
 [-q|--quiet] [--date <yyyy-mm-dd> [-r <cvstag>] [{-T--tag <cvstag>]
 [-Tvs|--tag-version-stable] [-Tvn|--tag-version-nest]
-[-Ts|--tag-stable] [-Tn|--tag-nest] [-Tv|--tag-version] 
+[-Ts|--tag-stable] [-Tn|--tag-nest] [-Tv|--tag-version]
 [{-Tp|--tag-prefix} <prefix>]
 [-nu|--no-urls] [-v|--verbose] [--opts <rpm opts>]
 [--with/--without <feature>] [--define <macro> <value>] <package>[.spec]
@@ -162,13 +181,13 @@ Usage: builder [-D|--debug] [-V|--version] [-a|--as_anon] [-b|-ba|--build]
 -a, --as_anon       - get files via pserver as cvs@$CVS_SERVER,
 -b, -ba, --build    - get all files from CVS repo or HTTP/FTP and build package
                       from <package>.spec,
--bb, --build-binary - get all files from CVS repo or HTTP/FTP and build binary 
+-bb, --build-binary - get all files from CVS repo or HTTP/FTP and build binary
                       only package from <package>.spec,
--bs, --build-source - get all files from CVS repo or HTTP/FTP and only pack 
+-bs, --build-source - get all files from CVS repo or HTTP/FTP and only pack
                       them into src.rpm,
 -bp, --build-prep   - execute the %prep phase of <package>.spec,
 -B, --branch        - add branch
--c, --clean         - clean all temporarily created files (in BUILD, SOURCES, 
+-c, --clean         - clean all temporarily created files (in BUILD, SOURCES,
                       SPECS and \$RPM_BUILD_ROOT),
 -d <cvsroot>, --cvsroot <cvsroot>      
                     - setup \$CVSROOT,
@@ -181,7 +200,7 @@ Usage: builder [-D|--debug] [-V|--version] [-a|--as_anon] [-b|-ba|--build]
 --http              - use http instead of ftp,
 -l <logfile>, --logtofile <logfile>
                     - log all to file,
--m, --mr-proper     - only remove all files related to spec file and all work 
+-m, --mr-proper     - only remove all files related to spec file and all work
                       resources,
 -nc, --no-cvs       - don't download sources from CVS, if source URL is given,
 -ncs, --no-cvs-specs
@@ -191,6 +210,7 @@ Usage: builder [-D|--debug] [-V|--version] [-a|--as_anon] [-b|-ba|--build]
 -nu, --no-urls      - don't try to download from FTP/HTTP location,
 -ns, --no-srcs      - don't download Sources
 -ns0, --no-source0  - don't download Source0
+-nn, --no-net       - don't download anything from the net
 --opts <rpm opts>   - additional options for rpm
 -q, --quiet         - be quiet,
 --date yyyy-mm-dd   - build package using resources from specified CVS date,
@@ -223,12 +243,12 @@ Usage: builder [-D|--debug] [-V|--version] [-a|--as_anon] [-b|-ba|--build]
 -un, --try-upgrade-with-float-version
                     - as above, but allow float version
 -U, --update        - refetch sources, don't use distfiles, and update md5 comments
--Upi, --update-poldek-indexes 
+-Upi, --update-poldek-indexes
                     - refresh or make poldek package index files.
 --with/--without <feature>
                     - conditional build package depending on %_with_<feature>/
-                      %_without_<feature> macro switch.  You may now use 
-                      --with feat1 feat2 feat3 --without feat4 feat5 --with feat6 
+                      %_without_<feature> macro switch.  You may now use
+                      --with feat1 feat2 feat3 --without feat4 feat5 --with feat6
                       constructions. Set GROUP_BCONDS to yes to make use of it.
 "
 }
@@ -237,10 +257,10 @@ cache_rpm_dump () {
 rpm_dump_cache=`
        case "$RPMBUILD" in
                rpm )
-                       rpm -bp --nodeps --define 'prep %dump' $BCOND $SPECFILE 2>&1 
+                       rpm -bp --nodeps --define 'prep %dump' $BCOND $SPECFILE 2>&1
                        ;;
                rpmbuild )
-                       rpmbuild --nodigest --nosignature --define 'prep %dump' $BCOND $SPECFILE 2>&1 
+                       rpmbuild --nodigest --nosignature --define 'prep %dump' $BCOND $SPECFILE 2>&1
                        ;;
        esac`
 }
@@ -272,9 +292,9 @@ parse_spec()
 
        PATCHES="`rpm_dump | awk '/PATCHURL[0-9]+/ {print $3}'`"
        ICONS="`awk '/^Icon:/ {print $2}' ${SPECFILE}`"
-       PACKAGE_NAME="`$RPM -q --qf '%{NAME}\n' --specfile ${SPECFILE} 2> /dev/null | head -1`"
-       PACKAGE_VERSION="`$RPM -q --qf '%{VERSION}\n' --specfile ${SPECFILE} 2> /dev/null| head -1`"
-       PACKAGE_RELEASE="`$RPM -q --qf '%{RELEASE}\n' --specfile ${SPECFILE} 2> /dev/null | head -1`"
+       PACKAGE_NAME="`$RPM -q --qf '%{NAME}\n' --specfile ${SPECFILE} 2> /dev/null | head -1`"
+       PACKAGE_VERSION="`$RPM -q --qf '%{VERSION}\n' --specfile ${SPECFILE} 2> /dev/null| head -1`"
+       PACKAGE_RELEASE="`$RPM -q --qf '%{RELEASE}\n' --specfile ${SPECFILE} 2> /dev/null | head -1`"
 
        if [ -n "$BE_VERBOSE" ]; then
                echo "- Sources :  `nourl $SOURCES`"
@@ -343,8 +363,14 @@ get_spec()
                set -v;
        fi
 
+       CWD="$(pwd)"
+       cd "$SPECS_DIR"
+       if [ \! -f "$SPECFILE" ]; then
+               SPECFILE="`basename $SPECFILE .spec`.spec";
+       fi
+       cd "$CWD"
        if [ "$NOCVSSPEC" != "yes" ]; then
-               cd $SPECS_DIR
+               cd "$SPECS_DIR"
 
                OPTIONS="up "
 
@@ -425,7 +451,7 @@ src_no ()
        rpm_dump | \
        grep "SOURCEURL[0-9]*[  ]*$1""[         ]*$" | \
        sed -e 's/.*SOURCEURL\([0-9][0-9]*\).*/\1/' | \
-       head -1 | xargs
+       head -1 | xargs
 }
 
 src_md5 ()
@@ -435,7 +461,7 @@ src_md5 ()
        cd $SPECS_DIR
        spec_rev=$(grep $SPECFILE CVS/Entries | sed -e s:/$SPECFILE/:: -e s:/.*::)
        if [ -z "$spec_rev" ]; then
-               spec_rev="$(head -1 $SPECFILE | sed -e 's/.*\$Revision: \([0-9.]*\).*/\1/')"
+               spec_rev="$(head -1 $SPECFILE | sed -e 's/.*\$Revision: \([0-9.]*\).*/\1/')"
        fi
        spec="$SPECFILE[0-9.,]*,$(echo $spec_rev | sed 's/\./\\./g')"
        md5=$(grep -s -v '^#' additional-md5sums | \
@@ -448,7 +474,7 @@ src_md5 ()
                if [ $(echo "$md5" | wc -l) != 1 ] ; then
                        echo "$SPECFILE: more then one entry in additional-md5sums for $1" 1>&2
                fi
-               echo "$md5" | tail -1
+               echo "$md5" | tail -1
        fi
 }
 
@@ -457,6 +483,11 @@ distfiles_url ()
        echo "$PROTOCOL$DISTFILES_SERVER/by-md5/$(src_md5 "$1" | sed -e 's|^\(.\)\(.\)|\1/\2/&|')/$(basename "$1")"
 }
 
+distfiles_attic_url ()
+{
+       echo "$PROTOCOL$DISTFILES_SERVER/Attic/by-md5/$(src_md5 "$1" | sed -e 's|^\(.\)\(.\)|\1/\2/&|')/$(basename "$1")"
+}
+
 good_md5 ()
 {
        md5=$(src_md5 "$1")
@@ -474,7 +505,7 @@ get_files()
        fi
 
        if [ -n "$1$2$3$4$5$6$7$8$9${10}" ]; then
-               cd $SOURCE_DIR
+               cd "$SOURCE_DIR"
 
                OPTIONS="up "
                if [ -n "$CVSROOT" ]; then
@@ -518,10 +549,11 @@ get_files()
                                        fi
                                        target=$(nourl "$i")
                                        url=$(distfiles_url "$i")
+                                       url_attic=$(distfiles_attic_url "$i")
+                                       FROM_DISTFILES=1
                                        if [ `echo $url | grep -E '^(\.|/)'` ]; then
                                                ${GETLOCAL} $url $target
                                        else
-                                               FROM_DISTFILES=1
                                                if [ -z "$NOMIRRORS" ]; then
                                                        url="`find_mirror "$url"`"
                                                fi
@@ -529,11 +561,25 @@ get_files()
                                                if [ `echo $url | grep -E 'ftp://'` ]; then
                                                        ${GETURI2} -O "$target" "$url"
                                                fi
-                                               if ! test -s "$target"; then
-                                                       rm -f "$target"
-                                                       FROM_DISTFILES=0
+                                       fi
+                                       if ! test -s "$target"; then
+                                               rm -f "$target"
+                                               if [ `echo $url_attic | grep -E '^(\.|/)'` ]; then
+                                                       ${GETLOCAL} $url_attic $target
+                                               else
+                                                       if [ -z "$NOMIRRORS" ]; then
+                                                               url_attic="`find_mirror "$url_attic"`"
+                                                       fi
+                                                       ${GETURI} -O "$target" "$url_attic" || \
+                                                       if [ `echo $url_attic | grep -E 'ftp://'` ]; then
+                                                               ${GETURI2} -O "$target" "$url_attic"
+                                                       fi
                                                fi
                                        fi
+                                       if ! test -s "$target"; then
+                                               rm -f "$target"
+                                               FROM_DISTFILES=0
+                                       fi
                                elif [ -z "$(src_md5 "$i")" -a "$NOCVS" != "yes" ]; then
                                        # ( echo $i | grep -qvE '(ftp|http|https)://' ); -- if CVS should be used, but URLs preferred
                                        result=1
@@ -553,7 +599,7 @@ get_files()
                                                fi
                                        done
                                fi
-       
+
                                if [ -z "$NOURLS" ] && [ ! -f "`nourl $i`" -o -n "$UPDATE" ] && [ `echo $i | grep -E 'ftp://|http://|https://'` ]; then
                                        if [ -z "$NOMIRRORS" ]; then
                                                im="`find_mirror "$i"`"
@@ -561,12 +607,11 @@ get_files()
                                                im="$i"
                                        fi
                                        ${GETURI} "$im" || \
-                                       if [ `echo $im | grep -E 'ftp://'` ]; then 
+                                       if [ `echo $im | grep -E 'ftp://'` ]; then
                                                ${GETURI2} "$im"
                                        fi
                                fi
 
-
                        fi
                        srcno=$(src_no $i)
                        if [ ! -f "`nourl $i`" -a "$FAIL_IF_NO_SOURCES" != "no" ]; then
@@ -580,7 +625,7 @@ get_files()
                                md5=$(md5sum `nourl $i` | cut -f1 -d' ')
                                perl -i -ne '
                                print unless /^\s*#\s*Source'$srcno'-md5\s*:/i;
-                               print "# Source'$srcno'-md5:\t'$md5'\n" 
+                               print "# Source'$srcno'-md5:\t'$md5'\n"
                                if /^Source'$srcno'\s*:\s+/;
                                ' \
                                $SPECS_DIR/$SPECFILE
@@ -598,6 +643,13 @@ get_files()
                                if [ `echo $url | grep -E 'ftp://'` ]; then
                                        ${GETURI2} -O "$target" "$url"
                                fi
+                               if ! test -s "$target"; then
+                                       rm -f "$target"
+                                       ${GETURI} -O "$target" "$url_attic" || \
+                                       if [ `echo $url_attic | grep -E 'ftp://'` ]; then
+                                               ${GETURI2} -O "$target" "$url_attic"
+                                       fi
+                               fi
                                test -s "$target" || rm -f "$target"
                        fi
 
@@ -652,11 +704,11 @@ tag_files()
                        OPTIONS="-d $CVSROOT $OPTIONS"
                fi
 
-               cd $SOURCE_DIR
+               cd "$SOURCE_DIR"
                for i in $TAG_FILES
                do
-                       # don't tag non cvs files (ie. stored on distfiles)
-                       [ "`nourl $i`" != "$i" ] && continue
+                       # don't tag files stored on distfiles
+                       [ -n "`src_md5 $i`" ] && continue
                        if [ -f "`nourl $i`" ]; then
                                if [ "$TAG_VERSION" = "yes" ]; then
                                        cvs $OPTIONS $TAGVER `nourl $i`
@@ -669,7 +721,7 @@ tag_files()
                        fi
                done
 
-               cd $SPECS_DIR
+               cd "$SPECS_DIR"
                if [ "$TAG_VERSION" = "yes" ]; then
                        cvs $OPTIONS $TAGVER $SPECFILE
                fi
@@ -700,7 +752,7 @@ branch_files()
                if [ -n "$CVSROOT" ]; then
                        OPTIONS="-d $CVSROOT $OPTIONS"
                fi
-               cd $SOURCE_DIR
+               cd "$SOURCE_DIR"
                for i in $TAG_FILES
                do
                        if [ -f `nourl $i` ]; then
@@ -709,7 +761,7 @@ branch_files()
                                Exit_error err_no_source_in_repo $i
                        fi
                done
-               cd $SPECS_DIR
+               cd "$SPECS_DIR"
                cvs $OPTIONS $TAG $SPECFILE
 
                unset OPTIONS
@@ -725,7 +777,7 @@ build_package()
                set -v;
        fi
 
-       cd $SPECS_DIR
+       cd "$SPECS_DIR"
 
        if [ -n "$TRY_UPGRADE" ]; then
                if [ -n "$FLOAT_VERSION" ]; then
@@ -748,7 +800,7 @@ build_package()
                        unset TOLDVER TNEWVER TNOTIFY
                fi
        fi
-       cd $SPECS_DIR
+       cd "$SPECS_DIR"
 
        case "$COMMAND" in
                build )
@@ -762,6 +814,11 @@ build_package()
        esac
        if [ -n "$LOGFILE" ]; then
                LOG=`eval echo $LOGFILE`
+               if [ -d "$LOG" ]; then
+                       echo "Log file $LOG is a directory."
+                       echo "Parse error in the spec?"
+                       Exit_error err_build_fail;
+               fi
                if [ -n "$LASTLOG_FILE" ]; then
                        echo "LASTLOG=$LOG" > $LASTLOG_FILE
                fi
@@ -795,9 +852,10 @@ nourl()
        echo "$@" | sed 's#\<\(ftp\|http\|https\|cvs\|svn\)://[^ ]*/##g'
 }
 
+
 install_required_packages()
 {
-       poldek -vi $1
+       run_poldek -vi $1
        return $?
 }
 
@@ -805,14 +863,12 @@ set_bconds_values()
 {
        AVAIL_BCONDS_WITHOUT=""
        AVAIL_BCONDS_WITH=""
-       TEST_BCOND_VERSION="`grep ^%bcond ${SPECFILE}`"
-       if [ "${TEST_BCOND_VERSION}" == "" ]; then
-                TEST_BCOND_VERSION="`grep bcond ${SPECFILE}`"
-                if [ "${TEST_BCOND_VERSION}" == "" ]; then
-                       BCOND_VERSION="NONE"
-         fi
+       if `grep -q ^%bcond ${SPECFILE}`; then
+               BCOND_VERSION="NEW"
+       elif `grep -q bcond ${SPECFILE}`; then
+               BCOND_VERSION="OLD"
        else
-                BCOND_VERSION="NEW"
+               BCOND_VERSION="NONE"
        fi
        case "${BCOND_VERSION}" in
                 NONE)
@@ -823,7 +879,7 @@ set_bconds_values()
                        for opt in `$RPMBUILD --bcond $SPECFILE |grep ^_without_`
                        do
                                AVAIL_BCOND_WITHOUT=`echo $opt|sed -e "s/^_without_//g"`
-                               if [ "`echo $BCOND|grep -- "--without $AVAIL_BCOND_WITHOUT"`" != "" ];then
+                               if `echo $BCOND|grep -q -- "--without $AVAIL_BCOND_WITHOUT"`;then
                                        AVAIL_BCONDS_WITHOUT="$AVAIL_BCONDS_WITHOUT <$AVAIL_BCOND_WITHOUT>"
                                else
                                        AVAIL_BCONDS_WITHOUT="$AVAIL_BCONDS_WITHOUT $AVAIL_BCOND_WITHOUT"
@@ -833,7 +889,7 @@ set_bconds_values()
                        for opt in `$RPMBUILD --bcond $SPECFILE |grep ^_with_`
                        do
                                AVAIL_BCOND_WITH=`echo $opt|sed -e "s/^_with_//g"`
-                               if [ "`echo $BCOND|grep -- "--with $AVAIL_BCOND_WITH"`" != "" ];then
+                               if `echo $BCOND|grep -q -- "--with $AVAIL_BCOND_WITH"`;then
                                        AVAIL_BCONDS_WITH="$AVAIL_BCONDS_WITH <$AVAIL_BCOND_WITH>"
                                else
                                        AVAIL_BCONDS_WITH="$AVAIL_BCONDS_WITH $AVAIL_BCOND_WITH"
@@ -850,13 +906,13 @@ set_bconds_values()
                                                ;;
                                        _with)
                                                cond_type="with"
-                                               ;;
+                                               ;;
                                        *)
                                                case "$cond_type" in
                                                        with)
                                                                cond_type=''
                                                                AVAIL_BCOND_WITH="$opt"
-                                                               if [ "`echo $BCOND|grep -- "--with $AVAIL_BCOND_WITH"`" != "" ];then
+                                                               if `echo $BCOND|grep -q -- "--with $AVAIL_BCOND_WITH"`;then
                                                                        AVAIL_BCONDS_WITH="$AVAIL_BCONDS_WITH <$AVAIL_BCOND_WITH>"
                                                                else
                                                                        AVAIL_BCONDS_WITH="$AVAIL_BCONDS_WITH $AVAIL_BCOND_WITH"
@@ -865,7 +921,7 @@ set_bconds_values()
                                                        without)
                                                                cond_type=''
                                                                AVAIL_BCOND_WITHOUT="$opt"
-                                                               if [ "`echo $BCOND|grep -- "--without $AVAIL_BCOND_WITHOUT"`" != "" ];then
+                                                               if `echo $BCOND|grep -q -- "--without $AVAIL_BCOND_WITHOUT"`;then
                                                                        AVAIL_BCONDS_WITHOUT="$AVAIL_BCONDS_WITHOUT <$AVAIL_BCOND_WITHOUT>"
                                                                else
                                                                        AVAIL_BCONDS_WITHOUT="$AVAIL_BCONDS_WITHOUT $AVAIL_BCOND_WITHOUT"
@@ -891,7 +947,7 @@ run_sub_builder()
        #
        # Update: Poprawi³em parê rzeczy i zaczê³o generowaæ pakiety spoza zadanej listy.
        #         Jednym s³owem budowanie niespoldkowanych zale¿no¶ci dzia³a w paru przypadkach.
-       #         
+       #
        #
        # y0shi.
 
@@ -899,12 +955,12 @@ run_sub_builder()
 
 
        # Istnieje taki spec? ${package}.spec
-       if [ -f "${POLDEK_INDEX_DIR}/../SPECS/${package}.spec" ]; then
+       if [ -f "${SPECS_DIR}${package}.spec" ]; then
                parent_spec_name=${package}.spec
-       elif [ -f "${POLDEK_INDEX_DIR}/../SPECS/`echo ${package_name}|sed -e s,-devel.*,,g -e s,-static,,g`.spec" ]; then
+       elif [ -f "${SPECS_DIR}`echo ${package_name}|sed -e s,-devel.*,,g -e s,-static,,g`.spec" ]; then
                parent_spec_name="`echo ${package_name}|sed -e s,-devel.*,,g -e s,-static,,g`.spec"
        else
-               for provides_line in `grep ^Provides:.*$package  ${POLDEK_INDEX_DIR}/../SPECS/ -R`
+               for provides_line in `grep ^Provides:.*$package  ${SPECS_DIR} -R`
                do
                        echo $provides_line
                done
@@ -923,7 +979,7 @@ run_sub_builder()
                if [ "${UPDATE_POLDEK_INDEXES}" == "yes" ]; then
                        sub_builder_opts="${sub_builder_opts} -Upi"
                fi
-               cd "${POLDEK_INDEX_DIR}/../SPECS"
+               cd "${SPECS_DIR}"
                ./builder ${sub_builder_opts} ${parent_spec_name}
        fi
        NOT_INSTALLED_PACKAGES="$NOT_INSTALLED_PACKAGES $package_name"
@@ -934,10 +990,10 @@ remove_build_requires()
        if [ "$INSTALLED_PACKAGES" != "" ]; then
                case "$REMOVE_BUILD_REQUIRES" in
                        "force")
-                               poldek --noask -ve $INSTALLED_PACKAGES
+                               run_poldek --noask -ve $INSTALLED_PACKAGES
                                ;;
                        "nice")
-                               poldek --ask -ve $INSTALLED_PACKAGES
+                               run_poldek --ask -ve $INSTALLED_PACKAGES
                                ;;
                        *)
                                echo You may want to manually remove following BuildRequires fetched:
@@ -955,7 +1011,7 @@ display_bconds()
                if [ "$BCOND" != "" ]; then
                        echo -ne "$BCOND"
                else
-                       echo -ne "No --with || --without conditions passed to $0!"
+                       echo -ne "No --with || --without conditions passed to $0"
                fi
                echo -ne "\n\nfrom available:\n\n"
                echo -ne "--with   :\t$AVAIL_BCONDS_WITH\n--without:\t$AVAIL_BCONDS_WITHOUT\n\n"
@@ -979,7 +1035,7 @@ fetch_build_requires()
                        mach=`uname -m`
                
                        COND_TST=`cat $SPECFILE|grep BuildRequires|grep "$package"`
-                       if [ "`echo $COND_TST|grep '^BuildRequires:'`" != "" ]; then
+                       if `echo $COND_TST|grep -q '^BuildRequires:'`; then
                                if [ "$COND_ARCH_TST" != "" ] && [ "`echo $COND_ARCH_TST|sed -e "s/i.86/ix86/g"`" != "`echo $mach|sed -e "s/i.86/ix86/g"`" ]; then
                                        GO="yes"
                                fi
@@ -988,34 +1044,34 @@ fetch_build_requires()
                                COND_NAME=`echo $COND_TST|sed -e s,:BuildRequires:.*$,,g`
                                GO=""
                                # %{without}
-                               if [ "`echo $COND_TST|grep 'without_'`" != "" ]; then
+                               if `echo $COND_TST|grep -q 'without_'`; then
                                        COND_NAME=`echo $COND_NAME|sed -e s,^.*_without_,,g`
-                                       if [ "`echo $COND_TST|grep !`" != "" ]; then
+                                       if `echo $COND_TST|grep -q !`; then
                                                COND_STATE="with"
                                        else
                                                COND_STATE="wout"
                                        fi
-                                       if [ "`echo $AVAIL_BCONDS_WITHOUT|grep "<$COND_NAME>"`" != "" ]; then
+                                       if `echo $AVAIL_BCONDS_WITHOUT|grep -q "<$COND_NAME>"`; then
                                                COND_ARGV="wout"
                                        else
                                                COND_ARGV="with"
                                        fi
                                # %{with}
-                               elif [ "`echo $COND_TST|grep 'with_'`" != "" ]; then
+                               elif `echo $COND_TST|grep -q 'with_'`; then
                                        COND_NAME=`echo $COND_NAME|sed -e s,^.*_with_,,g`
-                                       if [ "`echo $COND_TST|grep !`" != "" ]; then
+                                       if `echo $COND_TST|grep -q !`; then
                                                COND_STATE="wout"
                                        else
                                                COND_STATE="with"
                                        fi                                      
-                                       if [ "`echo $AVAIL_BCONDS_WITH|grep "<$COND_NAME>"`" != "" ]; then
+                                       if `echo $AVAIL_BCONDS_WITH|grep -q "<$COND_NAME>"`; then
                                                COND_ARGV="with"
                                        else
                                                COND_ARGV="wout"
                                        fi      
                                fi
                                RESULT="${COND_STATE}-${COND_ARGV}"
-                               case "$RESULT" in 
+                               case "$RESULT" in
                                        "with-wout" | "wout-with" )
                                                GO=""
                                                ;;
@@ -1032,10 +1088,10 @@ fetch_build_requires()
                        if [ "$GO" = "yes" ]; then
                                if [ "`rpm -q $package|sed -e "s/$package.*/$package/g"`" != "$package" ]; then
                                        echo "Testing if $package has subrequirements..."
-                                       poldek -t -i $package --dumpn=".$package-req.txt"
+                                       run_poldek -t -i $package --dumpn=".$package-req.txt"
                                        if [ -f ".$package-req.txt" ]; then
                                                for package_name in `cat ".$package-req.txt"|grep -v ^#`
-                                               do 
+                                               do
                                                        if [ "$package_name" = "$package" ]; then
                                                                echo -ne "Installing BuildRequired package:\t$package_name\n"
                                                                export PROMPT_COMMAND=`echo -ne "\033]0;${SPECFILE}: Installing BuildRequired package: ${package_name}\007"`
@@ -1052,7 +1108,7 @@ fetch_build_requires()
                                                                        ;;
                                                                *)
                                                                        echo "Attempting to run spawn sub - builder..."
-                                                                       run_sub_builder $package_name 
+                                                                       run_sub_builder $package_name
                                                                        if [ $? -eq 0 ]; then
                                                                                install_required_packages $package_name;
                                                                                case $? in
@@ -1082,8 +1138,8 @@ fetch_build_requires()
                                                                *)
                                                                        NOT_INSTALLED_PACKAGES="$package_name $NOT_INSTALLED_PACKAGES"
                                                                        ;;
-                                                       esac    
-                                               fi      
+                                                       esac
+                                               fi
                                        fi
                                else
                                        echo "Package $package is already installed. BuildRequirement satisfied."
@@ -1098,7 +1154,7 @@ fetch_build_requires()
                                echo $pkg
                        done
                        remove_build_requires
-                       exit 1
+                       exit 8
                fi
        fi
 }
@@ -1174,6 +1230,14 @@ do
                        NOSRCS="yes"; shift ;;
                -ns0 | --no-source0 )
                        NOSOURCE0="yes"; shift ;;
+               -nn | --no-net )
+                       NOCVS="yes"
+                       NOCVSSPEC="yes"
+                       NODIST="yes"
+                       NOMIRRORS="yes"
+                       NOURLS="yes"
+                       NOSRCS="yes"
+                       shift;;
                --opts )
                        shift; RPMOPTS="${1}"; shift ;;
                --with | --without )
@@ -1181,7 +1245,7 @@ do
                                "yes")
                                        COND=${1}
                                        shift
-                                       while [ "`echo ${1}|grep ^-`" = "" ] && [ "`echo ${1}|grep spec`" = "" ]
+                                       while ! `echo ${1}|grep -qE '(^-|spec)'`
                                        do
                                                BCOND="$BCOND $COND $1"
                                                shift
@@ -1268,7 +1332,7 @@ do
                        RPMOPTS="${RPMOPTS} --nodeps"
                        ;;
                * )
-                       SPECFILE="`basename ${1} .spec`.spec"; 
+                       SPECFILE="${1}"
                        export PROMPT_COMMAND=`echo -ne "\033]0;${SPECFILE}\007"`
                        shift ;;
        esac
@@ -1309,8 +1373,8 @@ case "$COMMAND" in
                get_files "$SOURCES $PATCHES";
                build_package;
                if [ "$UPDATE_POLDEK_INDEXES" = "yes" ]; then
-                       poldek --sn ${POLDEK_SOURCE} --mkidx="${POLDEK_INDEX_DIR}/packages.dir.gz"
-                       poldek --sn ${POLDEK_SOURCE} --up
+                       run_poldek --sn ${POLDEK_SOURCE} --mkidx="${POLDEK_INDEX_DIR}/packages.dir.gz"
+                       run_poldek --sn ${POLDEK_SOURCE} --up
                fi
                remove_build_requires;
        else
@@ -1350,6 +1414,8 @@ case "$COMMAND" in
                fi
                ;;
        "tag" )
+               NOURLS=1
+               NODIST=1
                init_builder;
                if [ -n "$SPECFILE" ]; then
                        get_spec;
@@ -1362,7 +1428,7 @@ case "$COMMAND" in
                        new_SOURCES=""
                        for file in $SOURCES
                        do
-                               [ "`nourl $file`" != "$file" ] && continue
+                               [ -n "`src_md5 $file`" ] && continue
                                new_SOURCES="$new_SOURCES $file"
                        done
                        SOURCES="$new_SOURCES"
@@ -1383,4 +1449,4 @@ esac
 test -f `pwd`/.${SPECFILE}_INSTALLED_PACKAGES && rm `pwd`/.${SPECFILE}_INSTALLED_PACKAGES
 cd "$__PWD"
 
-# vi:syntax=sh:tw=80:ts=3:sw=4
+# vi:syntax=sh:ts=3:sw=4
This page took 0.1039 seconds and 4 git commands to generate.