Mercurial > hg
annotate contrib/packaging/dockerdeb @ 46326:3e23794b9e1c
run-tests: work around the Windows firewall popup for server processes
Windows doesn't have a `python3` executable, so cc0b332ab9fc attempted to work
around the issue by copying the current python to `python3.exe`. That put it in
`_tmpbindir` because of failures in `test-run-tests.t` when using `_bindir`,
which looked like a process was trying to open it to write out a copy while it
was in use. (Interestingly, I couldn't reproduce this running the test by
itself in a loop for a couple of hours, but it happens constantly when running
all tests.) The problem with using `_tmpbindir` is that it is the randomly
generated path for the test run, and instead of Windows Firewall remembering the
executable signature or image hash when allowing the process to open a server
port, it apparently remembers the image path. That means every run will trigger
a popup to allow it, which is bad for firing off a test run and walking away.
I tried to symlink to the python executable, but that currently requires admin
priviledges[1]. This will prompt the first time if the underlying python binary
has never opened a server port, but appears to avoid it on subsequent runs.
[1] https://bugs.python.org/issue40687
Differential Revision: https://phab.mercurial-scm.org/D9815
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Mon, 18 Jan 2021 00:50:01 -0500 |
parents | 971424517e17 |
children |
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 |
45968
971424517e17
packaging: drop Disco (19.04) and add Focal (20.04)
Matt Harbison <matt_harbison@yahoo.com>
parents:
45966
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 |
38458
e5916f1236f3
packaging: replace dockerlib.sh with a Python script
Gregory Szorc <gregory.szorc@gmail.com>
parents:
38457
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:
38457
diff
changeset
|
18 |
38459
c8ef9d897e14
packaging: don't write files for templatized Dockerfiles
Gregory Szorc <gregory.szorc@gmail.com>
parents:
38458
diff
changeset
|
19 $BUILDDIR/hg-docker build \ |
45968
971424517e17
packaging: drop Disco (19.04) and add Focal (20.04)
Matt Harbison <matt_harbison@yahoo.com>
parents:
45966
diff
changeset
|
20 --build-arg TZ=$TZ \ |
38459
c8ef9d897e14
packaging: don't write files for templatized Dockerfiles
Gregory Szorc <gregory.szorc@gmail.com>
parents:
38458
diff
changeset
|
21 --build-arg CODENAME=$CODENAME \ |
c8ef9d897e14
packaging: don't write files for templatized Dockerfiles
Gregory Szorc <gregory.szorc@gmail.com>
parents:
38458
diff
changeset
|
22 $BUILDDIR/docker/$DISTID.template \ |
c8ef9d897e14
packaging: don't write files for templatized Dockerfiles
Gregory Szorc <gregory.szorc@gmail.com>
parents:
38458
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. |
38013
917f635b5c6a
packaging: make packaging scripts less reliant on pwd
Gregory Szorc <gregory.szorc@gmail.com>
parents:
38006
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 |
45966
f6a1540dc572
packaging: add `HG_DOCKER_OWN_USER` to `dockerdeb` like exists in `dockerrpm`
Matt Harbison <matt_harbison@yahoo.com>
parents:
38779
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:
38779
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:
38779
diff
changeset
|
32 else |
f6a1540dc572
packaging: add `HG_DOCKER_OWN_USER` to `dockerdeb` like exists in `dockerrpm`
Matt Harbison <matt_harbison@yahoo.com>
parents:
38779
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:
38779
diff
changeset
|
34 fi |
38457
11eda1f1b6e7
packaging: consistently create build user in Dockerfiles
Gregory Szorc <gregory.szorc@gmail.com>
parents:
38013
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 |
38013
917f635b5c6a
packaging: make packaging scripts less reliant on pwd
Gregory Szorc <gregory.szorc@gmail.com>
parents:
38006
diff
changeset
|
40 $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
|
41 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
|
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 |