tests/test-docker-packaging.t
author Augie Fackler <augie@google.com>
Wed, 12 Apr 2017 11:23:55 -0700
branchstable
changeset 32050 77eaf9539499
parent 29219 3c9066ed557c
child 33116 6c113a7dec52
permissions -rw-r--r--
dispatch: protect against malicious 'hg serve --stdio' invocations (sec) Some shared-ssh installations assume that 'hg serve --stdio' is a safe command to run for minimally trusted users. Unfortunately, the messy implementation of argument parsing here meant that trying to access a repo named '--debugger' would give the user a pdb prompt, thereby sidestepping any hoped-for sandboxing. Serving repositories over HTTP(S) is unaffected. We're not currently hardening any subcommands other than 'serve'. If your service exposes other commands to users with arbitrary repository names, it is imperative that you defend against repository names of '--debugger' and anything starting with '--config'. The read-only mode of hg-ssh stopped working because it provided its hook configuration to "hg serve --stdio" via --config parameter. This is banned for security reasons now. This patch switches it to directly call ui.setconfig(). If your custom hosting infrastructure relies on passing --config to "hg serve --stdio", you'll need to find a different way to get that configuration into Mercurial, either by using ui.setconfig() as hg-ssh does in this patch, or by placing an hgrc file someplace where Mercurial will read it. mitrandir@fb.com provided some extra fixes for the dispatch code and for hg-ssh in places that I overlooked.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
26146
8c91726caeae test-docker-packaging: test packages built using docker
Augie Fackler <augie@google.com>
parents:
diff changeset
     1
#require test-repo slow docker
8c91726caeae test-docker-packaging: test packages built using docker
Augie Fackler <augie@google.com>
parents:
diff changeset
     2
29219
3c9066ed557c tests: silence test-repo obsolete warning
timeless <timeless@mozdev.org>
parents: 28973
diff changeset
     3
  $ . "$TESTDIR/helpers-testrepo.sh"
3c9066ed557c tests: silence test-repo obsolete warning
timeless <timeless@mozdev.org>
parents: 28973
diff changeset
     4
26148
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26146
diff changeset
     5
Ensure debuild doesn't run the testsuite, as that could get silly.
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26146
diff changeset
     6
  $ DEB_BUILD_OPTIONS=nocheck
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26146
diff changeset
     7
  $ export DEB_BUILD_OPTIONS
26146
8c91726caeae test-docker-packaging: test packages built using docker
Augie Fackler <augie@google.com>
parents:
diff changeset
     8
  $ OUTPUTDIR=`pwd`
8c91726caeae test-docker-packaging: test packages built using docker
Augie Fackler <augie@google.com>
parents:
diff changeset
     9
  $ export OUTPUTDIR
8c91726caeae test-docker-packaging: test packages built using docker
Augie Fackler <augie@google.com>
parents:
diff changeset
    10
8c91726caeae test-docker-packaging: test packages built using docker
Augie Fackler <augie@google.com>
parents:
diff changeset
    11
  $ cd "$TESTDIR"/..
8c91726caeae test-docker-packaging: test packages built using docker
Augie Fackler <augie@google.com>
parents:
diff changeset
    12
  $ make docker-debian-jessie > $OUTPUTDIR/build.log 2>&1
8c91726caeae test-docker-packaging: test packages built using docker
Augie Fackler <augie@google.com>
parents:
diff changeset
    13
  $ cd $OUTPUTDIR
8c91726caeae test-docker-packaging: test packages built using docker
Augie Fackler <augie@google.com>
parents:
diff changeset
    14
  $ ls *.deb
26148
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26146
diff changeset
    15
  mercurial-common_*.deb (glob)
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26146
diff changeset
    16
  mercurial_*.deb (glob)
26146
8c91726caeae test-docker-packaging: test packages built using docker
Augie Fackler <augie@google.com>
parents:
diff changeset
    17
8c91726caeae test-docker-packaging: test packages built using docker
Augie Fackler <augie@google.com>
parents:
diff changeset
    18
We check debian package contents with portable tools so that when
8c91726caeae test-docker-packaging: test packages built using docker
Augie Fackler <augie@google.com>
parents:
diff changeset
    19
we're on non-debian machines we can still test the packages that are
8c91726caeae test-docker-packaging: test packages built using docker
Augie Fackler <augie@google.com>
parents:
diff changeset
    20
built using docker.
26148
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26146
diff changeset
    21
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26146
diff changeset
    22
main deb should have .so but no .py
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26146
diff changeset
    23
  $ ar x mercurial_*.deb
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26146
diff changeset
    24
  $ tar tf data.tar* | egrep '(localrepo|parsers)'
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26146
diff changeset
    25
  ./usr/lib/python2.7/dist-packages/mercurial/parsers*.so (glob)
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26146
diff changeset
    26
mercurial-common should have .py but no .so or .pyc
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26146
diff changeset
    27
  $ ar x mercurial-common_*.deb
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26146
diff changeset
    28
  $ tar tf data.tar* | egrep '(localrepo|parsers)'
28973
fc0f9714d077 test-docker-packaging: add new line to test output
Sean Farley <sean@farley.io>
parents: 26148
diff changeset
    29
  ./usr/lib/python2.7/dist-packages/mercurial/pure/parsers.py
26148
7f49efcaa9b4 debian: switch to using debhelper and dh_python2 to build debs
Augie Fackler <augie@google.com>
parents: 26146
diff changeset
    30
  ./usr/lib/python2.7/dist-packages/mercurial/localrepo.py