diff options
author | Jakub Ružička <jakub.ruzicka@nic.cz> | 2021-04-06 18:13:16 +0200 |
---|---|---|
committer | Ondrej Zajicek (work) <santiago@crfreenet.org> | 2021-05-19 17:22:11 +0200 |
commit | 329d6e3fbc5a09a9bc8800bd8a5d239dec1a3d24 (patch) | |
tree | 29bf25fc20a609c0d81469fc2e4e528b99d4f5bb /tools | |
parent | c3c691e95cd40d8654b720be8d9a8ae9fb050951 (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-x | tools/make-dev-archive | 38 | ||||
-rwxr-xr-x | tools/make-obs | 46 |
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" |