annotate contrib/packaging/dockerdeb @ 42926:34ed651ba7e4

cleanup: fix leakage of dirstate._map to client code We already had proper accessors for most of the behavior of dirstate._map that callers cared about exposed in the actual dirstate class as public methods. Sigh. There are two remaining privacy violations in the codebase after this change: 1) In the perf extension, which I suspect has to stick around because it's really testing the dirstate implementation directly 2) In largefiles, where we deal with standins and mutating status. Looking at this, I _strongly_ suspect a formal dirstate interface would allow this to work via composition instead of inheritance and monkeypatching. Fortunately, such wins are a part of my motivation for this work. I anticipate we'll come back to this in due time. Differential Revision: https://phab.mercurial-scm.org/D6837
author Augie Fackler <augie@google.com>
date Tue, 10 Sep 2019 09:41:58 -0400
parents 824636b08400
children f6a1540dc572
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
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
38005
ea70512b1ad6 packaging: move packagelib.sh into contrib/packaging/
Gregory Szorc <gregory.szorc@gmail.com>
parents: 38004
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)
38004
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}
38458
e5916f1236f3 packaging: replace dockerlib.sh with a Python script
Gregory Szorc <gregory.szorc@gmail.com>
parents: 38457
diff changeset
14 CONTAINER=hg-docker-$PLATFORM
26148
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26108
diff changeset
15
38458
e5916f1236f3 packaging: replace dockerlib.sh with a Python script
Gregory Szorc <gregory.szorc@gmail.com>
parents: 38457
diff changeset
16 DOCKER=$($BUILDDIR/hg-docker docker-path)
e5916f1236f3 packaging: replace dockerlib.sh with a Python script
Gregory Szorc <gregory.szorc@gmail.com>
parents: 38457
diff changeset
17
38459
c8ef9d897e14 packaging: don't write files for templatized Dockerfiles
Gregory Szorc <gregory.szorc@gmail.com>
parents: 38458
diff changeset
18 $BUILDDIR/hg-docker build \
c8ef9d897e14 packaging: don't write files for templatized Dockerfiles
Gregory Szorc <gregory.szorc@gmail.com>
parents: 38458
diff changeset
19 --build-arg CODENAME=$CODENAME \
c8ef9d897e14 packaging: don't write files for templatized Dockerfiles
Gregory Szorc <gregory.szorc@gmail.com>
parents: 38458
diff changeset
20 $BUILDDIR/docker/$DISTID.template \
c8ef9d897e14 packaging: don't write files for templatized Dockerfiles
Gregory Szorc <gregory.szorc@gmail.com>
parents: 38458
diff changeset
21 $CONTAINER
24973
4c4d0012db4f dockerdeb: rules to build a debian package using docker
Augie Fackler <augie@google.com>
parents:
diff changeset
22
26148
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26108
diff changeset
23 # 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
24 # 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
25 # container and hope it's writable. Whee.
38013
917f635b5c6a packaging: make packaging scripts less reliant on pwd
Gregory Szorc <gregory.szorc@gmail.com>
parents: 38006
diff changeset
26 dn=$(basename $ROOTDIR)
24973
4c4d0012db4f dockerdeb: rules to build a debian package using docker
Augie Fackler <augie@google.com>
parents:
diff changeset
27
38457
11eda1f1b6e7 packaging: consistently create build user in Dockerfiles
Gregory Szorc <gregory.szorc@gmail.com>
parents: 38013
diff changeset
28 DBUILDUSER=build
11eda1f1b6e7 packaging: consistently create build user in Dockerfiles
Gregory Szorc <gregory.szorc@gmail.com>
parents: 38013
diff changeset
29
24973
4c4d0012db4f dockerdeb: rules to build a debian package using docker
Augie Fackler <augie@google.com>
parents:
diff changeset
30 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
31 $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
32 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
33 fi
38013
917f635b5c6a packaging: make packaging scripts less reliant on pwd
Gregory Szorc <gregory.szorc@gmail.com>
parents: 38006
diff changeset
34 $DOCKER run -u $DBUILDUSER --rm -v $ROOTDIR/..:/mnt $CONTAINER \
38006
64b086f0ebb5 packaging: move builddeb into contrib/packaging/
Gregory Szorc <gregory.szorc@gmail.com>
parents: 38005
diff changeset
35 sh -c "cd /mnt/$dn && DEB_BUILD_OPTIONS='${DEB_BUILD_OPTIONS:=}' contrib/packaging/builddeb --build --distid $DISTID --codename $CODENAME $@"
38779
824636b08400 packaging: always execute builddeb from source root
Gregory Szorc <gregory.szorc@gmail.com>
parents: 38459
diff changeset
36 (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
37 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
38 $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
39 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
40 fi