]> git.pld-linux.org Git - packages/rpm-build-tools.git/blobdiff - builder.sh
- cleanup as SPECFILE is filename always
[packages/rpm-build-tools.git] / builder.sh
index 23f55daccba01c88722e36affd7d71ff33347a75..a379799be718371f338266fa06f3b9466b43e3c7 100644 (file)
 # - builder -u fetches current version first (well that's okay, how you compare versions if you have no old spec?)
 # - when Icon: field is present, -5 and -a5 doesn't work
 # - builder -R skips installing BR if spec is not present before builder invocation (need to run builder twice)
+# - does not respect NoSource: X, and tries to cvs up such files [ example: VirtualBox-bin.spec and its Source0 ]
 # TODO:
 # - ability to do ./builder -bb foo.spec foo2.spec foo3.spec
 
 RCSID='$Id$'
 r=${RCSID#* * }
 rev=${r%% *}
-VERSION="v0.23/$rev"
+VERSION="v0.35/$rev"
 VERSIONSTRING="\
 Build package utility from PLD Linux CVS repository
 $VERSION (C) 1999-2009 Free Penguins".
@@ -374,7 +375,7 @@ Usage: builder [-D|--debug] [-V|--version] [--short-version] [-a|--as_anon] [-b|
 depspecname() {
        local package="$1"
 
-       package=$(echo "$package" | sed -e '/perl(.*)/{s,perl(\(.*\)),perl-\1,;s,::,-,g}')
+       package=$(echo "$package" | sed -e '/perl(.*)/{s,perl(\(.*\)),perl-\1,;s,::,-,g};' -e 's/-\(devel\|static\)$//' )
        echo "$package"
 }
 
@@ -411,7 +412,7 @@ update_shell_title() {
 # set TARGET from BuildArch: from SPECFILE
 set_spec_target() {
        if [ -n "$SPECFILE" ] && [ -z "$TARGET" ]; then
-               tmp=$(awk '/^BuildArch:/ { print $NF}' $ASSUMED_NAME/$SPECFILE)
+               tmp=$(awk '/^BuildArch:/ { print $NF; exit }' $ASSUMED_NAME/$SPECFILE)
                if [ "$tmp" ]; then
                                target_platform=$(rpm -E '%{_target_vendor}-%{_target_os}%{?_gnu}')
                                TARGET="$tmp"
@@ -682,7 +683,8 @@ get_spec() {
 
        cd "$REPO_DIR"
        if [ ! -f "$ASSUMED_NAME/$SPECFILE" ]; then
-               SPECFILE="$(basename $SPECFILE .spec).spec"
+               # XXX: still needed?
+               SPECFILE=$(basename $SPECFILE)
        fi
        if [ "$NOCVSSPEC" != "yes" ]; then
 
@@ -1014,13 +1016,13 @@ get_files() {
                                if echo $i | grep -vE '(http|ftp|https|cvs|svn)://' | grep -qE '\.(gz|bz2)$']; then
                                        echo "Warning: no URL given for $i"
                                fi
+                               target="$fp"
 
                                if [ -z "$NODIST" ] && [ -n "$srcmd5" ]; then
                                        if good_md5 "$i" && good_size "$i"; then
                                                echo "$fp having proper md5sum already exists"
                                                continue
                                        fi
-                                       target="$fp"
 
                                        # optionally prefer mirror over distfiles if there's mirror
                                        # TODO: build url list and then try each url from the list
@@ -1072,6 +1074,7 @@ get_files() {
                                                                update_shell_title "${GETURI2%% *}: $url_attic"
                                                                ${GETURI2} ${OUTFILEOPT} "$target" "$url_attic"
                                                        fi
+                                                       test -s "$target" || rm -f "$target"
                                                fi
                                        fi
 
@@ -1098,11 +1101,12 @@ get_files() {
                                                im="$i"
                                        fi
                                        update_shell_title "${GETURI%% *}: $im"
-                                       ${GETURI} "$im" || \
+                                       ${GETURI} "$im" ${OUTFILEOPT} "$target" || \
                                        if [ "`echo $im | grep -E 'ftp://'`" ]; then
                                                update_shell_title "${GETURI2%% *}: $im"
-                                               ${GETURI2} "$im"
+                                               ${GETURI2} "$im" ${OUTFILEOPT} "$target"
                                        fi
+                                       test -s "$target" || rm -f "$target"
                                fi
 
                                if [ "$cvsup" = 1 ]; then
@@ -1897,7 +1901,7 @@ init_rpm_dir() {
        echo "- run cvs co SPECS"
 
        echo "To checkout *all* packages:"
-       echo "- run cvs up in $TOP_DIR/packages dir"
+       echo "- run cvs up -dP in $TOP_DIR/packages dir"
 
        echo ""
        echo "To commit with your developer account:"
@@ -2209,20 +2213,21 @@ while [ $# -gt 0 ]; do
                        Exit_error err_invalid_cmdline "$1"
                        ;;
                *)
-                       SPECFILE="${1}"
+                       SPECFILE=$1; shift
                        # check if specname was passed as specname:cvstag
                        if [ "${SPECFILE##*:}" != "${SPECFILE}" ]; then
                                CVSTAG="${SPECFILE##*:}"
                                SPECFILE="${SPECFILE%%:*}"
                        fi
+                       # always have SPECFILE ending with .spec extension
+                       SPECFILE=${SPECFILE%%.spec}.spec
                        ASSUMED_NAME=$(basename ${SPECFILE%%.spec})
-                       shift
        esac
 done
 
 [ -d "$ASSUMED_NAME" ] && CVS_ENTRIES="$ASSUMED_NAME/CVS/Entries" || CVS_ENTRIES="CVS/Entries"
 if [ -f "$CVS_ENTRIES" ] && [ -z "$CVSTAG" ]; then
-       CVSTAG=$(awk -vSPECFILE=$(basename ${SPECFILE%.spec}.spec) -F/ '$2 == SPECFILE && $6 ~ /^T/{print substr($6, 2)}' ${CVS_ENTRIES})
+       CVSTAG=$(awk -vSPECFILE=$(basename $SPECFILE) -F/ '$2 == SPECFILE && $6 ~ /^T/{print substr($6, 2)}' ${CVS_ENTRIES})
        if [ "$CVSTAG" ]; then
                echo >&2 "builder: Sticky tag $CVSTAG active. Use -r TAGNAME to override."
        fi
This page took 0.047741 seconds and 4 git commands to generate.