]> git.pld-linux.org Git - packages/rpm-build-tools.git/blobdiff - repackage.sh
- rel may contain other macros, strip and readd them for increment
[packages/rpm-build-tools.git] / repackage.sh
index 3ae6047ca0644edf862aca376319631f5f686bd3..460f68a322f0e5fc36512224aa089accc2d74b08 100644 (file)
@@ -21,13 +21,18 @@ set -e
 
 rpmbuild() {
        # preprocess args, we must have --target as first arg to rpmbuild
-       local a
+       # we need to grab also dir where spec resides
+       local a spec specdir
        while [ $# -gt 0 ]; do
                case "$1" in
                --target)
                        shift
                        TARGET=$1
                        ;;
+               *.spec)
+                       spec="$1"
+                       a="$a $1"
+                       ;;
                *)
                        a="$a $1"
                        ;;
@@ -35,6 +40,8 @@ rpmbuild() {
                shift
        done
 
+    specdir=$(dirname "$(pwd)/${spec:-.}")
+
        # use gz payload as time is what we need here, not compress ratio
 
        # we use %__ldconfig variable to test are we on rpm 4.4.9
@@ -44,12 +51,13 @@ rpmbuild() {
        /usr/bin/rpmbuild \
                ${TARGET:+--target $TARGET} \
                --short-circuit \
+               --define "_specdir $specdir" --define "_sourcedir $specdir" \
                --define 'clean %%%{!?__ldconfig:clean}%{?__ldconfig:check} \
                exit 0%{nil}' \
                --define 'check %%check \
                exit 0%{nil}' \
-               --define '_source_payload w9.gzdio' \
-               --define '_binary_payload w9.gzdio' \
+               --define '_source_payload w5.gzdio' \
+               --define '_binary_payload w5.gzdio' \
                --define '__spec_install_pre %___build_pre' \
                --define '__spec_clean_body %{nil}' \
                $a || exit
@@ -79,6 +87,16 @@ specdump() {
        eval rpm-specdump $a || echo >&2 $?
 }
 
+if [ $# = 0 ]; then
+       # if no spec name passed, glob *.spec
+       set -- *.spec
+       if [ ! -f "$1" -o $# -gt 1 ]; then
+               echo >&2 "ERROR: Too many or too few .spec files found"
+               echo >&2 "Usage: ${0##*/} PACKAGE.spec"
+               exit 1
+       fi
+fi
+
 tmp=$(specdump "$@" | awk '$2 == "_target_cpu" {print $3}')
 if [ "$tmp" ]; then
        TARGET="$tmp"
This page took 0.024631 seconds and 4 git commands to generate.