make-distrofiles.sh 1.14 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
#!/bin/bash -e

# Run with -s to include *.symbols files.

package=knot
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
30
files="distro/rpm/${package}.spec distro/deb/changelog distro/arch/PKGBUILD"
31 32 33 34
for file in ${files}; do
	sed -i "s/__VERSION__/${version}/g" "${file}"
done

35 36 37 38 39 40 41 42
# Rename archive to debian format
pkgname="${package}-${version}"
debname="${package}_${version}.orig"
ln -s "${pkgname}.tar.xz" "${debname}.tar.xz"

# Prepare clean debian-specific directory
tar -xf "${debname}.tar.xz"
pushd "${pkgname}" > /dev/null
43
cp -arL ../distro/deb debian
44

45 46
# Optionally remove symbols file
if [ "$withsymbols" = false ]; then
47
	rm -f debian/*.symbols
48 49 50
fi

# Create debian archive and dsc
51 52
dpkg-source -b .
popd > /dev/null