Mercurial > hg
view contrib/builddeb @ 30362:3c6893ba2d36
merge: change modified indicator to be 20 bytes
Previously we indicated that the .hgsubstate file was dirty by adding a '+' to
the end of its hash in the wctx manifest. This made is complicated to have new
manifest implementations that rely on the node length being fixed.
In previous patches we added added and modified node placeholders, so let's use
those to indicate dirty here as well. It doesn't look like anything ever
depended on this '+' (aside from it being different to the parent), so nothing
else needed to change here.
author | Durham Goode <durham@fb.com> |
---|---|
date | Thu, 10 Nov 2016 02:21:15 -0800 |
parents | c4f0e764b231 |
children | f1c2552c2de7 |
line wrap: on
line source
#!/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