contrib/packaging/dockerdeb
author Simon Sapin <simon.sapin@octobus.net>
Wed, 03 Mar 2021 18:38:22 +0100
changeset 46739 92e3cfd63096
parent 45983 971424517e17
permissions -rwxr-xr-x
rhg: Fall back to Python on unsupported `rhg config <section>` Printing an entire section (as opposed to a single value with `rhg config foo.bar`) is not supported yet in Rust only. Differential Revision: https://phab.mercurial-scm.org/D10098
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
24973
4c4d0012db4f dockerdeb: rules to build a debian package using docker
Augie Fackler <augie@google.com>
parents:
diff changeset
     1
#!/bin/bash -eu
4c4d0012db4f dockerdeb: rules to build a debian package using docker
Augie Fackler <augie@google.com>
parents:
diff changeset
     2
38047
ea70512b1ad6 packaging: move packagelib.sh into contrib/packaging/
Gregory Szorc <gregory.szorc@gmail.com>
parents: 38046
diff changeset
     3
. $(dirname $0)/packagelib.sh
24973
4c4d0012db4f dockerdeb: rules to build a debian package using docker
Augie Fackler <augie@google.com>
parents:
diff changeset
     4
4c4d0012db4f dockerdeb: rules to build a debian package using docker
Augie Fackler <augie@google.com>
parents:
diff changeset
     5
BUILDDIR=$(dirname $0)
38046
1868db0d1515 packaging: move some docker scripts into contrib/packaging/
Gregory Szorc <gregory.szorc@gmail.com>
parents: 29007
diff changeset
     6
export ROOTDIR=$(cd $BUILDDIR/../.. > /dev/null; pwd)
24973
4c4d0012db4f dockerdeb: rules to build a debian package using docker
Augie Fackler <augie@google.com>
parents:
diff changeset
     7
27210
9b86d29867a5 builddeb: add --distid option to specify Distributor ID
Anton Shestakov <av6@dwimlabs.net>
parents: 27209
diff changeset
     8
DISTID="$1"
9b86d29867a5 builddeb: add --distid option to specify Distributor ID
Anton Shestakov <av6@dwimlabs.net>
parents: 27209
diff changeset
     9
CODENAME="$2"
9b86d29867a5 builddeb: add --distid option to specify Distributor ID
Anton Shestakov <av6@dwimlabs.net>
parents: 27209
diff changeset
    10
PLATFORM="$1-$2"
29006
be02dfe41ae2 dockerdeb: fix incorrect number of shifts
Sean Farley <sean@farley.io>
parents: 28987
diff changeset
    11
shift; shift # extra params are passed to build process
24973
4c4d0012db4f dockerdeb: rules to build a debian package using docker
Augie Fackler <augie@google.com>
parents:
diff changeset
    12
26148
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26108
diff changeset
    13
OUTPUTDIR=${OUTPUTDIR:=$ROOTDIR/packages/$PLATFORM}
38462
e5916f1236f3 packaging: replace dockerlib.sh with a Python script
Gregory Szorc <gregory.szorc@gmail.com>
parents: 38461
diff changeset
    14
CONTAINER=hg-docker-$PLATFORM
45983
971424517e17 packaging: drop Disco (19.04) and add Focal (20.04)
Matt Harbison <matt_harbison@yahoo.com>
parents: 45981
diff changeset
    15
TZ=`ls -la /etc/localtime | cut -d/ -f7-9`
26148
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26108
diff changeset
    16
38462
e5916f1236f3 packaging: replace dockerlib.sh with a Python script
Gregory Szorc <gregory.szorc@gmail.com>
parents: 38461
diff changeset
    17
DOCKER=$($BUILDDIR/hg-docker docker-path)
e5916f1236f3 packaging: replace dockerlib.sh with a Python script
Gregory Szorc <gregory.szorc@gmail.com>
parents: 38461
diff changeset
    18
38463
c8ef9d897e14 packaging: don't write files for templatized Dockerfiles
Gregory Szorc <gregory.szorc@gmail.com>
parents: 38462
diff changeset
    19
$BUILDDIR/hg-docker build \
45983
971424517e17 packaging: drop Disco (19.04) and add Focal (20.04)
Matt Harbison <matt_harbison@yahoo.com>
parents: 45981
diff changeset
    20
    --build-arg TZ=$TZ \
38463
c8ef9d897e14 packaging: don't write files for templatized Dockerfiles
Gregory Szorc <gregory.szorc@gmail.com>
parents: 38462
diff changeset
    21
    --build-arg CODENAME=$CODENAME \
c8ef9d897e14 packaging: don't write files for templatized Dockerfiles
Gregory Szorc <gregory.szorc@gmail.com>
parents: 38462
diff changeset
    22
    $BUILDDIR/docker/$DISTID.template \
c8ef9d897e14 packaging: don't write files for templatized Dockerfiles
Gregory Szorc <gregory.szorc@gmail.com>
parents: 38462
diff changeset
    23
    $CONTAINER
24973
4c4d0012db4f dockerdeb: rules to build a debian package using docker
Augie Fackler <augie@google.com>
parents:
diff changeset
    24
26148
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26108
diff changeset
    25
# debuild only appears to be able to save built debs etc to .., so we
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26108
diff changeset
    26
# have to share the .. of the current directory with the docker
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26108
diff changeset
    27
# container and hope it's writable. Whee.
38055
917f635b5c6a packaging: make packaging scripts less reliant on pwd
Gregory Szorc <gregory.szorc@gmail.com>
parents: 38048
diff changeset
    28
dn=$(basename $ROOTDIR)
24973
4c4d0012db4f dockerdeb: rules to build a debian package using docker
Augie Fackler <augie@google.com>
parents:
diff changeset
    29
45981
f6a1540dc572 packaging: add `HG_DOCKER_OWN_USER` to `dockerdeb` like exists in `dockerrpm`
Matt Harbison <matt_harbison@yahoo.com>
parents: 38766
diff changeset
    30
if [[ -z "${HG_DOCKER_OWN_USER:-}" ]]; then
f6a1540dc572 packaging: add `HG_DOCKER_OWN_USER` to `dockerdeb` like exists in `dockerrpm`
Matt Harbison <matt_harbison@yahoo.com>
parents: 38766
diff changeset
    31
    DBUILDUSER=build
f6a1540dc572 packaging: add `HG_DOCKER_OWN_USER` to `dockerdeb` like exists in `dockerrpm`
Matt Harbison <matt_harbison@yahoo.com>
parents: 38766
diff changeset
    32
else
f6a1540dc572 packaging: add `HG_DOCKER_OWN_USER` to `dockerdeb` like exists in `dockerrpm`
Matt Harbison <matt_harbison@yahoo.com>
parents: 38766
diff changeset
    33
    DBUILDUSER="$(id -u):$(id -g)"
f6a1540dc572 packaging: add `HG_DOCKER_OWN_USER` to `dockerdeb` like exists in `dockerrpm`
Matt Harbison <matt_harbison@yahoo.com>
parents: 38766
diff changeset
    34
fi
38461
11eda1f1b6e7 packaging: consistently create build user in Dockerfiles
Gregory Szorc <gregory.szorc@gmail.com>
parents: 38055
diff changeset
    35
24973
4c4d0012db4f dockerdeb: rules to build a debian package using docker
Augie Fackler <augie@google.com>
parents:
diff changeset
    36
if [ $(uname) = "Darwin" ] ; then
26148
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26108
diff changeset
    37
    $DOCKER run -u $DBUILDUSER --rm -v $PWD/..:/mnt $CONTAINER \
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26108
diff changeset
    38
            sh -c "cd /mnt/$dn && make clean && make local"
24973
4c4d0012db4f dockerdeb: rules to build a debian package using docker
Augie Fackler <augie@google.com>
parents:
diff changeset
    39
fi
38055
917f635b5c6a packaging: make packaging scripts less reliant on pwd
Gregory Szorc <gregory.szorc@gmail.com>
parents: 38048
diff changeset
    40
$DOCKER run -u $DBUILDUSER --rm -v $ROOTDIR/..:/mnt $CONTAINER \
38048
64b086f0ebb5 packaging: move builddeb into contrib/packaging/
Gregory Szorc <gregory.szorc@gmail.com>
parents: 38047
diff changeset
    41
  sh -c "cd /mnt/$dn && DEB_BUILD_OPTIONS='${DEB_BUILD_OPTIONS:=}' contrib/packaging/builddeb --build --distid $DISTID --codename $CODENAME $@"
38766
824636b08400 packaging: always execute builddeb from source root
Gregory Szorc <gregory.szorc@gmail.com>
parents: 38463
diff changeset
    42
(cd $ROOTDIR && contrib/packaging/builddeb --cleanup --distid $DISTID --codename $CODENAME)
24973
4c4d0012db4f dockerdeb: rules to build a debian package using docker
Augie Fackler <augie@google.com>
parents:
diff changeset
    43
if [ $(uname) = "Darwin" ] ; then
26148
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26108
diff changeset
    44
    $DOCKER run -u $DBUILDUSER --rm -v $PWD/..:/mnt $CONTAINER \
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26108
diff changeset
    45
            sh -c "cd /mnt/$dn && make clean"
24973
4c4d0012db4f dockerdeb: rules to build a debian package using docker
Augie Fackler <augie@google.com>
parents:
diff changeset
    46
fi