contrib/packaging/dockerdeb
author Martin von Zweigbergk <martinvonz@google.com>
Thu, 07 Jan 2021 14:48:57 -0800
changeset 46278 58ca94869287
parent 45968 971424517e17
permissions -rwxr-xr-x
shelve: move function for opening .patch file to new shelf class The `opener()` method was used specifically for the `.patch` file, and the new `Shelf` class deals with all files involved in a shelf, so I renamed the function in the process. Differential Revision: https://phab.mercurial-scm.org/D9705

#!/bin/bash -eu

. $(dirname $0)/packagelib.sh

BUILDDIR=$(dirname $0)
export ROOTDIR=$(cd $BUILDDIR/../.. > /dev/null; pwd)

DISTID="$1"
CODENAME="$2"
PLATFORM="$1-$2"
shift; shift # extra params are passed to build process

OUTPUTDIR=${OUTPUTDIR:=$ROOTDIR/packages/$PLATFORM}
CONTAINER=hg-docker-$PLATFORM
TZ=`ls -la /etc/localtime | cut -d/ -f7-9`

DOCKER=$($BUILDDIR/hg-docker docker-path)

$BUILDDIR/hg-docker build \
    --build-arg TZ=$TZ \
    --build-arg CODENAME=$CODENAME \
    $BUILDDIR/docker/$DISTID.template \
    $CONTAINER

# debuild only appears to be able to save built debs etc to .., so we
# have to share the .. of the current directory with the docker
# container and hope it's writable. Whee.
dn=$(basename $ROOTDIR)

if [[ -z "${HG_DOCKER_OWN_USER:-}" ]]; then
    DBUILDUSER=build
else
    DBUILDUSER="$(id -u):$(id -g)"
fi

if [ $(uname) = "Darwin" ] ; then
    $DOCKER run -u $DBUILDUSER --rm -v $PWD/..:/mnt $CONTAINER \
            sh -c "cd /mnt/$dn && make clean && make local"
fi
$DOCKER run -u $DBUILDUSER --rm -v $ROOTDIR/..:/mnt $CONTAINER \
  sh -c "cd /mnt/$dn && DEB_BUILD_OPTIONS='${DEB_BUILD_OPTIONS:=}' contrib/packaging/builddeb --build --distid $DISTID --codename $CODENAME $@"
(cd $ROOTDIR && contrib/packaging/builddeb --cleanup --distid $DISTID --codename $CODENAME)
if [ $(uname) = "Darwin" ] ; then
    $DOCKER run -u $DBUILDUSER --rm -v $PWD/..:/mnt $CONTAINER \
            sh -c "cd /mnt/$dn && make clean"
fi