summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniil Baturin <daniil@baturin.org>2018-10-01 20:38:44 +0200
committerDaniil Baturin <daniil@baturin.org>2018-10-01 20:44:01 +0200
commit836ad9fb4e423e1f10b22bd68154f90b1131636c (patch)
tree584f3228b2622449cf745416e4eef7d41f33045a
parent979ee884911aeeda2b1dd0942e07d68d4b32e955 (diff)
tools: add a script for building a Debian package in one step.
The script simplifies the relatively lengthy procedure. It should be invoked from the top level source directory, for example: ./tools/build-debian-package.sh Signed-off-by: Daniil Baturin <daniil@baturin.org>
-rw-r--r--doc/developer/packaging-debian.rst7
-rwxr-xr-xtools/build-debian-package.sh40
-rw-r--r--tools/subdir.am1
3 files changed, 48 insertions, 0 deletions
diff --git a/doc/developer/packaging-debian.rst b/doc/developer/packaging-debian.rst
index 66339b6d1f..4ea784c0fc 100644
--- a/doc/developer/packaging-debian.rst
+++ b/doc/developer/packaging-debian.rst
@@ -130,6 +130,13 @@ If all worked correctly, then you should end up with the Debian packages under
with the sources (``frr_*.orig.tar.gz``, ``frr_*.debian.tar.xz`` and
``frr_*.dsc``)
+The build procedure can also be executed automatically using the ``tools/build-debian-package.sh``
+script. For example:
+
+.. code-block:: shell
+
+ EXTRA_VERSION="-myversion" WANT_SNMP=1 WANT_CUMULUS_MODE=1 tools/build-debian-package.sh
+
.. _deb-backports:
Debian Backports
diff --git a/tools/build-debian-package.sh b/tools/build-debian-package.sh
new file mode 100755
index 0000000000..73231f0aec
--- /dev/null
+++ b/tools/build-debian-package.sh
@@ -0,0 +1,40 @@
+#!/bin/sh
+#
+# Written by Daniil Baturin, 2018
+# This file is public domain
+
+git diff-index --quiet HEAD || echo "Warning: git working directory is not clean!"
+
+# Set the defaults
+if [ "$EXTRA_VERSION" = "" ]; then
+ EXTRA_VERSION="-MyDebPkgVersion"
+fi
+
+if [ "$WANT_SNMP" = "" ]; then
+ WANT_SNMP=0
+fi
+
+if [ "$WANT_CUMULUS_MODE" = "" ]; then
+ WANT_CUMULUS_MODE=0
+fi
+
+echo "Preparing the build"
+./bootstrap.sh
+./configure --with-pkg-extra-version=$EXTRA_VERSION
+make dist
+
+echo "Preparing Debian source package"
+mv debianpkg debian
+make -f debian/rules backports
+
+echo "Unpacking the source to frrpkg/"
+mkdir frrpkg
+cd frrpkg
+tar xf ../frr_*.orig.tar.gz
+cd frr*
+. /etc/os-release
+tar xf ../../frr_*${ID}${VERSION_ID}*.debian.tar.xz
+
+echo "Building the Debian package"
+debuild --no-lintian --set-envvar=WANT_SNMP=$WANT_SNMP --set-envvar=WANT_CUMULUS_MODE=$WANT_CUMULUS_MODE -b -uc -us
+
diff --git a/tools/subdir.am b/tools/subdir.am
index 602822e589..323d1222f9 100644
--- a/tools/subdir.am
+++ b/tools/subdir.am
@@ -26,4 +26,5 @@ EXTRA_DIST += \
tools/rrlookup.pl \
tools/zc.pl \
tools/zebra.el \
+ tools/build-debian-package.sh \
# end