|
|
#!/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
|
|
|
|