summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorJakub Ružička <jakub.ruzicka@nic.cz>2021-04-06 18:13:16 +0200
committerOndrej Zajicek (work) <santiago@crfreenet.org>2021-05-19 17:22:11 +0200
commit329d6e3fbc5a09a9bc8800bd8a5d239dec1a3d24 (patch)
tree29bf25fc20a609c0d81469fc2e4e528b99d4f5bb /tools
parentc3c691e95cd40d8654b720be8d9a8ae9fb050951 (diff)
add apkg-powered upstream packaging for deb, rpm
Files in a single new distro/ dir allow apkg to build BIRD packages for various distros directly from upstream sources as well as from upstream archives. Please see distro/README.md for more detail as well as apkg docs: https://apkg.rtfd.io I've used these files to build bird-2.0.8 on all currently supported releases of following distros: * Debian * Ubuntu * Fedora * CentOS * openSUSE Please note that latest apkg with accumulated fixes for bird is needed: https://gitlab.nic.cz/packaging/apkg/-/merge_requests/35
Diffstat (limited to 'tools')
-rwxr-xr-xtools/make-dev-archive38
-rwxr-xr-xtools/make-obs46
2 files changed, 84 insertions, 0 deletions
diff --git a/tools/make-dev-archive b/tools/make-dev-archive
new file mode 100755
index 00000000..227d029f
--- /dev/null
+++ b/tools/make-dev-archive
@@ -0,0 +1,38 @@
+#!/bin/sh
+#
+# This a modified version of gendist script which generates development
+# archive (tarball) without docs from current sources.
+
+BIRD_VERSION=`grep 'BIRD_VERSION \"' sysdep/config.h | sed '/BIRD_VERSION/!d;s/^.*"\(.*\)"$/\1/'`
+# differentiate dev tarballs from upstream ones
+GIT_HASH=$(git rev-parse --short HEAD )
+TIMESTAMP=$(date -u +'%s' 2>/dev/null)
+VERSION=$BIRD_VERSION.$TIMESTAMP.$GIT_HASH
+
+REL=bird-$VERSION
+T=/tmp/bird
+AC=autoreconf
+
+set -e
+
+# prepare output dir
+rm -rf $T/$REL
+mkdir -p $T/$REL
+
+$AC
+
+# cleanup
+find . -name "*~" -exec rm -f '{}' '+'
+rm -rf autom4te*cache
+
+echo Building $REL
+cp -a . $T/$REL
+echo Generating ChangeLog
+git log >$T/$REL/ChangeLog
+rm -f $T/$REL/bird.conf*
+rm -rf $T/$REL/.git/
+rm -rf `find $T/$REL -name CVS -o -name tmp` $T/$REL/{misc,rfc,doc/slides,doc/slt2001,doc/old,doc/*.out}
+( cd $T ; tar czvvf $REL.tar.gz $REL )
+rm -rf $T/$REL
+
+echo $T/$REL.tar.gz
diff --git a/tools/make-obs b/tools/make-obs
new file mode 100755
index 00000000..aeec70ad
--- /dev/null
+++ b/tools/make-obs
@@ -0,0 +1,46 @@
+#!/bin/bash
+# create OpenSUSE Build System (OBS) source package
+#
+# this needs to be run on a (Debian-based) system with:
+#
+# * apkg
+# * dpkg-buildpackage
+#
+# run from project root containing distro/ dir:
+#
+# ./tools/make-obs [path/to/archive.tar.gz]
+#
+# supply archives as optional arguments to build from,
+# otherwise archive will be built from sources by apkg
+#
+# output at ./pkg/obs/ (removed on each run)
+set -o errexit -o nounset
+
+OUTDIR="pkg/obs"
+APKG_OPTS="-O $OUTDIR"
+
+if [ -z $@ ]; then
+ echo "building OBS srcpkg from project files"
+else
+ AR=$1
+ echo "building OBS srcpkg from specified archive(s)"
+ APKG_OPTS="-a $AR $APKG_OPTS"
+fi
+
+if [ -n "$RELEASE" ]; then
+ echo "custom release: $RELEASE"
+ APKG_OPTS="-r $RELEASE $APKG_OPTS"
+fi
+
+set -o xtrace
+: removing existing output files at output dir: $OUTDIR
+rm -rf "$OUTDIR"
+: making debian source package from archive
+apkg srcpkg $APKG_OPTS -d debian
+: removing extra debian source package files
+rm -f $OUTDIR/*_source.*
+: rendering RPM template
+apkg srcpkg $APKG_OPTS -d fedora --render-template
+: fixing RPM .spec to use debian source archive
+sed -i 's/^\(Source0:\s\+\).*/\1bird2_%{version}.orig.tar.gz/' $OUTDIR/*.spec
+echo "OBS srcpkg ready at: $OUTDIR"