summaryrefslogtreecommitdiffstats
path: root/scripts/make-distrofiles.sh
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/make-distrofiles.sh')
-rwxr-xr-xscripts/make-distrofiles.sh53
1 files changed, 53 insertions, 0 deletions
diff --git a/scripts/make-distrofiles.sh b/scripts/make-distrofiles.sh
new file mode 100755
index 0000000..957c067
--- /dev/null
+++ b/scripts/make-distrofiles.sh
@@ -0,0 +1,53 @@
+#!/bin/bash
+set -o errexit -o nounset -o xtrace
+
+# Run with -s to include *.symbols files.
+
+package=knot-resolver
+withsymbols=false
+
+while getopts "s" o; do
+ case "${o}" in
+ s)
+ withsymbols=true
+ ;;
+ *)
+ ;;
+ esac
+done
+shift $((OPTIND-1))
+
+
+cd "$(git rev-parse --show-toplevel)"
+version=$(ls ${package}*.tar.xz | sed "s/${package}-\(.*\).tar.xz/\1/")
+
+# Check version for invalid characters
+if [[ $(echo "${version}" | grep '^[[:alnum:].]$') -ne 0 ]]; then
+ echo "Invalid version number: may contain only alphanumeric characters and dots"
+ exit 1
+fi
+
+# Fill in VERSION field in distribution specific files
+files="distro/rpm/${package}.spec distro/deb/changelog distro/arch/PKGBUILD"
+for file in ${files}; do
+ sed -i "s/__VERSION__/${version}/g" "${file}"
+done
+
+# Rename archive to debian format
+pkgname="${package}-${version}"
+debname="${package}_${version}.orig"
+mv "${pkgname}.tar.xz" "${debname}.tar.xz"
+
+# Prepare clean debian-specific directory
+tar -xf "${debname}.tar.xz"
+pushd "${pkgname}" > /dev/null
+cp -arL ../distro/deb debian
+
+# Optionally remove symbols file
+if [ "$withsymbols" = false ]; then
+ rm -f debian/*.symbols
+fi
+
+# Create debian archive and dsc
+dpkg-source -b .
+popd > /dev/null