--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/contrib/packaging/builddeb Sat May 12 10:31:34 2018 -0700
@@ -0,0 +1,104 @@
+#!/bin/sh -e
+#
+# Build a Mercurial debian package from the current repo
+#
+# Tested on Jessie (stable as of original script authoring.)
+
+. $(dirname $0)/packagelib.sh
+
+BUILD=1
+CLEANUP=1
+DISTID=`(lsb_release -is 2> /dev/null | tr '[:upper:]' '[:lower:]') || echo debian`
+CODENAME=`lsb_release -cs 2> /dev/null || echo unknown`
+DEBFLAGS=-b
+while [ "$1" ]; do
+ case "$1" in
+ --distid )
+ shift
+ DISTID="$1"
+ shift
+ ;;
+ --codename )
+ shift
+ CODENAME="$1"
+ shift
+ ;;
+ --cleanup )
+ shift
+ BUILD=
+ ;;
+ --build )
+ shift
+ CLEANUP=
+ ;;
+ --source-only )
+ shift
+ DEBFLAGS=-S
+ ;;
+ * )
+ echo "Invalid parameter $1!" 1>&2
+ exit 1
+ ;;
+ esac
+done
+
+trap "if [ '$CLEANUP' ] ; then rm -r '$PWD/debian' ; fi" EXIT
+
+set -u
+
+if [ ! -d .hg ]; then
+ echo 'You are not inside a Mercurial repository!' 1>&2
+ exit 1
+fi
+
+gethgversion
+debver="$version"
+if [ -n "$type" ] ; then
+ debver="$debver~$type"
+fi
+if [ -n "$distance" ] ; then
+ debver="$debver+$distance-$CODENAME-$node"
+elif [ "$DEBFLAGS" = "-S" ] ; then
+ # for building a ppa (--source-only) for a release (distance == 0), we need
+ # to version the distroseries so that we can upload to launchpad
+ debver="$debver~${CODENAME}1"
+fi
+
+control=debian/control
+changelog=debian/changelog
+
+if [ "$BUILD" ]; then
+ if [ -d debian ] ; then
+ echo "Error! debian control directory already exists!"
+ exit 1
+ fi
+
+ cp -r "$PWD"/contrib/debian debian
+
+ sed -i.tmp "s/__VERSION__/$debver/" $changelog
+ sed -i.tmp "s/__DATE__/$(date --rfc-2822)/" $changelog
+ sed -i.tmp "s/__CODENAME__/$CODENAME/" $changelog
+ rm $changelog.tmp
+
+ # remove the node from the version string
+ SRCFILE="mercurial_$(echo $debver | sed "s,-$node,,").orig.tar.gz"
+ "$PWD/hg" archive $SRCFILE
+ mv $SRCFILE ..
+ debuild -us -uc -i -I $DEBFLAGS
+ if [ $? != 0 ]; then
+ echo 'debuild failed!'
+ exit 1
+ fi
+
+fi
+if [ "$CLEANUP" ] ; then
+ echo
+ OUTPUTDIR=${OUTPUTDIR:=packages/$DISTID-$CODENAME}
+ mkdir -p "$OUTPUTDIR"
+ find ../mercurial*.deb ../mercurial_*.build ../mercurial_*.changes \
+ ../mercurial*.dsc ../mercurial*.gz \
+ -type f -newer $control -print0 2>/dev/null | \
+ xargs -Inarf -0 mv narf "$OUTPUTDIR"
+ echo "Built packages for $debver:"
+ find "$OUTPUTDIR" -type f -newer $control -name '*.deb'
+fi