Enable and fix many extra warnings supported by GCC and Clang.
[tinc] / .ci / package / deb / build.sh
1 #!/bin/bash
2
3 set -euo pipefail
4
5 . /etc/os-release
6
7 bail() {
8   echo >&2 "$@"
9   exit 1
10 }
11
12 find_tag() {
13   git describe --always --tags --match='release-*' "$@"
14 }
15
16 export DEBIAN_FRONTEND=noninteractive
17
18 apt-get install -y devscripts git-buildpackage dh-make
19
20 export USER=${USER:-$(whoami)}
21
22 os="$ID-$VERSION_ID"
23 templates=$(dirname "$0")/debian
24
25 git clean -dfx
26
27 # get latest tag name
28 curr=$(find_tag HEAD)
29 [[ -z $curr ]] && bail 'could not determine release version'
30
31 # get previous tag name
32 prev=$(find_tag "$curr"^)
33 [[ -z $curr ]] && bail 'could not determine previous release version'
34
35 # strip release prefix to get the current version number
36 version=${curr//release-/}
37
38 # prepare a new debian directory
39 dh_make --yes --single --createorig --copyright gpl2 --packagename "tinc_$version-$os"
40
41 # write all commit messages between two most recent tags to the changelog
42 gbp dch --since "$prev" --ignore-branch --spawn-editor=never --release
43
44 # replace placeholders with files copied from https://packages.debian.org/experimental/tinc
45 cp "$templates/"* debian/
46
47 # remove useless READMEs created by dh_make
48 rm -f debian/README.*
49
50 dpkg-buildpackage -d -us -uc
51 mv ../*.deb .