]> git.proxmox.com Git - mirror_frr.git/commitdiff
debian: Update tools/build-debian-package.sh to use git-buildpackage
authorOndřej Surý <ondrej@sury.org>
Sun, 27 Sep 2020 09:08:13 +0000 (11:08 +0200)
committerOndřej Surý <ondrej@sury.org>
Thu, 19 Nov 2020 20:30:02 +0000 (21:30 +0100)
Signed-off-by: Ondřej Surý <ondrej@sury.org>
debian/changelog
tools/build-debian-package.sh

index bf51c5cfb937345293d7592076eca19e8bab9d7c..a742cab4e830b2f0aa1754e5baad34c48693446f 100644 (file)
@@ -1,3 +1,9 @@
+frr (7.6~dev-1) UNRELEASED; urgency=medium
+
+  * Update tools/build-debian-package.sh to use git-buildpackage
+
+ -- Ondřej Surý <ondrej@debian.org>  Sun, 27 Sep 2020 11:33:44 +0200
+
 frr (7.4-1) unstable; urgency=medium
 
   [ Ondřej Surý ]
index d21f468bf5f8ae8e3b37fdd177dfb006dbc15379..bd87ac057fc28330c5658209672f0d18ddef262a 100755 (executable)
@@ -4,24 +4,51 @@
 # This file is public domain
 set -e
 
-cd "`dirname $0`"
-cd ..
+cd "$(dirname "$(dirname "$0")")"
 
-if [ "`id -u`" = 0 ]; then
+if [ "$(id -u)" = 0 ]; then
        echo "Running as root - installing dependencies"
-       apt-get install fakeroot debhelper devscripts
+       apt-get install fakeroot debhelper devscripts git-buildpackage
        mk-build-deps --install debian/control
        exit 0
 fi
 
-git diff-index --quiet HEAD || echo "Warning: git working directory is not clean!"
+git diff-index --quiet HEAD || { echo "ERROR: git working directory is not clean!" ; exit 1; }
 
-echo "Preparing the build"
-tools/tarsource.sh -V
+HEAD_COMMIT=$(git rev-parse --short HEAD)
+HEAD_BRANCH=$(git rev-parse --abbrev-ref HEAD)
+BUILD_BRANCH="debian/$HEAD_BRANCH-$(date +%s)"
 
-echo "Building the Debian package"
-if test $# -eq 0; then
-       dpkg-buildpackage -b -uc -us
-else
-       dpkg-buildpackage "$@"
-fi
+echo "Switching to a '$BUILD_BRANCH' build branch"
+
+git checkout -b "$BUILD_BRANCH" "$HEAD_BRANCH"
+
+UPSTREAM_VERSION=$(sed -ne 's/AC_INIT(\[frr\],\s\[\([^]]*\)\],.*/\1/p' configure.ac | sed -e 's/-\(\(dev\|alpha\|beta\)\d*\)/~\1/')
+LAST_TIMESTAMP=$(git log --format=format:%ad --date=format:%Y%m%d -1 "$HEAD_COMMIT")
+SINCE_COMMIT=$(git log --since="00:00:00" --format=format:%H | tail -1)
+DEBIAN_VERSION="$UPSTREAM_VERSION-$LAST_TIMESTAMP-git.$HEAD_COMMIT-1"
+
+echo "Adding new snapshot debian/changelog entry for $DEBIAN_VERSION"
+
+gbp dch \
+    --debian-branch="$BUILD_BRANCH" \
+    --new-version "$DEBIAN_VERSION" \
+    --since="$SINCE_COMMIT~" \
+    --snapshot \
+    --commit
+
+echo "Building package"
+
+gbp buildpackage \
+    --git-builder=debuild \
+    --git-debian-branch="$BUILD_BRANCH" \
+    --git-force-create \
+    --git-no-pristine-tar
+
+echo "Switching back to '$HEAD_BRANCH' branch"
+
+git checkout "$HEAD_BRANCH"
+
+echo "Deleting the '$BUILD_BRANCH' build branch"
+
+git branch -D "$BUILD_BRANCH"