From 83ac0e15f8df240468992b58aa8568152998af17 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Sun, 24 Jan 2021 11:16:31 +0200 Subject: release: add script to build a release Debian package --- build_release_deb.sh | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100755 build_release_deb.sh diff --git a/build_release_deb.sh b/build_release_deb.sh new file mode 100755 index 0000000..ec99556 --- /dev/null +++ b/build_release_deb.sh @@ -0,0 +1,54 @@ +#!/bin/bash +# +# Build an Obnam release as a Debian .deb package. Usage: +# +# ./build_release_deb.sh /workspace + +set -euo pipefail + +cleanup() +{ + rm -rf "$tmpdir" +} + +if [ "$#" != 2 ] +then + echo "ERROR: Usage: $0 TARGET-DIR GIT-TAG" 1>&2 + exit 1 +fi + +target="$(cd "$1"; pwd)" +tag="$2" + +# Create a temporary directory and arrange for it to be deleted at the +# end. +tmpdir="$(mktemp -d)" +echo "$tmpdir" +trap cleanup EXIT + +# Export the tag to a temporary source tarball. +git archive "$tag" | xz > "$tmpdir/src.tar.xz" + +# Unpack the temporary source tarball to a new source tree. +mkdir "$tmpdir/src" +tar -C "$tmpdir/src" -xf "$tmpdir/src.tar.xz" + +# Switch to the new source tree. +cd "$tmpdir/src" + +# Get name and version of source package. +name="$(dpkg-parsechangelog -SSource)" +version="$(dpkg-parsechangelog -SVersion)" + +# Get upstream version: everything before the last dash. +uv="$(echo "$version" | sed 's/-[^-]*$//')" +orig="${name}_${uv}.orig.tar.xz" + +# Rename the source tarball to what dpkg-buildpackage wants. +mv ../src.tar.xz "../$orig" + +# Build the package. +dpkg-buildpackage -us -uc + +# Copy the results to the desired location. +cp ../*_* "$target" -- cgit v1.2.1