summaryrefslogtreecommitdiff
path: root/bin/build-rpm-package
diff options
context:
space:
mode:
authorMike Gabriel <mike.gabriel@das-netzwerkteam.de>2013-11-29 14:44:18 +0100
committerMike Gabriel <mike.gabriel@das-netzwerkteam.de>2013-11-29 14:44:18 +0100
commitf681910dda5ecf219dd1a716cd2a1f45e3aa8cde (patch)
treee76f66004505c289b7cc9f91e69c0021f320b51f /bin/build-rpm-package
parentab93627c1ffabbf292b848eca4f0dad803cf504a (diff)
downloadbuildscripts-f681910dda5ecf219dd1a716cd2a1f45e3aa8cde.tar.gz
buildscripts-f681910dda5ecf219dd1a716cd2a1f45e3aa8cde.tar.bz2
buildscripts-f681910dda5ecf219dd1a716cd2a1f45e3aa8cde.zip
only tar the source code once
Diffstat (limited to 'bin/build-rpm-package')
-rwxr-xr-xbin/build-rpm-package29
1 files changed, 18 insertions, 11 deletions
diff --git a/bin/build-rpm-package b/bin/build-rpm-package
index 07fa84b..e70e0a3 100755
--- a/bin/build-rpm-package
+++ b/bin/build-rpm-package
@@ -95,6 +95,9 @@ prepare_workspace() {
# in any case remove the RPM_BUILDS_FOR file
rm -f "$PROJECT_DIR/RPM_BUILDS_FOR"
+ # create rpmbuild subdirectories
+ mkdir -p ~/rpmbuild/SOURCES
+
# make sure our local working copy is up to date...
if [ -d "$PROJECT_DIR/.git" ]; then
@@ -173,15 +176,26 @@ clear_pkgdist() {
}
build_packages() {
- # use pbuilder for building all variants of this package
+
+ # tar upstream sources from our Git clone
+ TEMP_DIR="$(mktemp -d --tmpdir=$TEMP_BASE)"
+ mkdir -p "$TEMP_DIR/$PROJECT"
+ chmod 2770 "$TEMP_DIR" -Rf
+ cd "$PROJECT_DIR"
+ git clone --local "$PROJECT_DIR" "$TEMP_DIR/$PROJECT/"
+ cd $TEMP_DIR
+ rm -Rf "$PROJECT/.git"
+ mv $TEMP_DIR/$PROJECT $TEMP_DIR/$PROJECT-$UPSTREAM_VERSION
+ tar -czf ~/rpmbuild/SOURCES/$PROJECT-$UPSTREAM_VERSION.tar.gz $TEMP_DIR/$PROJECT-$UPSTREAM_VERSION
+ cp $PROJECT/$PROJECT.spec ..
+ cd && rm $TEMP_DIR/$PROJECT -Rf
+
cat "$PROJECT_DIR/RPM_BUILDS_FOR" | egrep -v '(^$|^#.*$)' | while read line; do
l_DIST="$(echo ${line/: /:} | cut -d":" -f1 | tr [:upper:] [:lower:])"
l_CODENAMES="${CODENAMES:-$(echo ${line/: /:} | cut -d":" -f2- | tr [:upper:] [:lower:])}"
echo "$DISTS_SUPPORTED" | grep $l_DIST >/dev/null && {
for l_CODENAME in $l_CODENAMES; do
- # in case we build a special CODENAME (squeeze, wheezy, lucid, ...) do skip
- # the wrong distribution here...
test -z $CODENAMES || echo $line | grep $CODENAMES || break
TEMP_DIR="$(mktemp -d --tmpdir=$TEMP_BASE)"
@@ -196,13 +210,6 @@ build_packages() {
GITREV=$(gitrevno)
UPSTREAM_VERSION=$(cat $PROJECT.spec | egrep "^Version:.*" | awk '{ print $2 }')
- # tar upstream sources from our Git clone
- mkdir -p ~/rpmbuild/SOURCES
- rm -Rf ".git"
- cd ..
- mv $TEMP_DIR/$PROJECT $TEMP_DIR/$PROJECT-$UPSTREAM_VERSION
- tar -czf ~/rpmbuild/SOURCES/$PROJECT-$UPSTREAM_VERSION $TEMP_DIR/$PROJECT-$UPSTREAM_VERSION
-
# modify the section for non-main package builds
### TODO: How to host different builds (releases / nightlies in the same repository???)
@@ -256,10 +263,10 @@ build_packages() {
# DIST=$l_DIST CODENAME=$l_CODENAME ARCH=$extra_arch $PDEBUILD --auto-debsign --debsign-k $GPG_KEY --buildresult "$PKGDIST/$l_DIST/$l_CODENAME/$extra_arch" -- --binary-arch --allow-untrusted $SA_OPTION 0<&-
#}
done
- rm -Rf "$TEMP_DIR"
done
}
done
+ rm -Rf "$TEMP_DIR"
return 0
}