##// END OF EJS Templates
dispatch: protect against malicious 'hg serve --stdio' invocations (sec)...
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.

File last commit:

r29007:78074575 stable
r32050:77eaf953 4.1.3 stable
Show More
dockerdeb
35 lines | 1.1 KiB | text/plain | TextLexer
Augie Fackler
dockerdeb: rules to build a debian package using docker...
r24973 #!/bin/bash -eu
. $(dirname $0)/dockerlib.sh
. $(dirname $0)/packagelib.sh
BUILDDIR=$(dirname $0)
Sean Farley
dockerdeb: redirect 'cd' in export command to /dev/null...
r28987 export ROOTDIR=$(cd $BUILDDIR/.. > /dev/null; pwd)
Augie Fackler
dockerdeb: rules to build a debian package using docker...
r24973
checkdocker
av6
builddeb: add --distid option to specify Distributor ID...
r27210 DISTID="$1"
CODENAME="$2"
PLATFORM="$1-$2"
Sean Farley
dockerdeb: fix incorrect number of shifts...
r29006 shift; shift # extra params are passed to build process
Augie Fackler
dockerdeb: rules to build a debian package using docker...
r24973
Augie Fackler
debian: switch to using debhelper and dh_python2 to build debs...
r26148 OUTPUTDIR=${OUTPUTDIR:=$ROOTDIR/packages/$PLATFORM}
Augie Fackler
dockerdeb: rules to build a debian package using docker...
r24973 initcontainer $PLATFORM
Augie Fackler
debian: switch to using debhelper and dh_python2 to build debs...
r26148 # 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 $PWD)
Augie Fackler
dockerdeb: rules to build a debian package using docker...
r24973
if [ $(uname) = "Darwin" ] ; then
Augie Fackler
debian: switch to using debhelper and dh_python2 to build debs...
r26148 $DOCKER run -u $DBUILDUSER --rm -v $PWD/..:/mnt $CONTAINER \
sh -c "cd /mnt/$dn && make clean && make local"
Augie Fackler
dockerdeb: rules to build a debian package using docker...
r24973 fi
Augie Fackler
debian: switch to using debhelper and dh_python2 to build debs...
r26148 $DOCKER run -u $DBUILDUSER --rm -v $PWD/..:/mnt $CONTAINER \
Sean Farley
dockerdeb: pass the rest of the args to the builder script...
r29007 sh -c "cd /mnt/$dn && DEB_BUILD_OPTIONS='${DEB_BUILD_OPTIONS:=}' contrib/builddeb --build --distid $DISTID --codename $CODENAME $@"
av6
builddeb: add --distid option to specify Distributor ID...
r27210 contrib/builddeb --cleanup --distid $DISTID --codename $CODENAME
Augie Fackler
dockerdeb: rules to build a debian package using docker...
r24973 if [ $(uname) = "Darwin" ] ; then
Augie Fackler
debian: switch to using debhelper and dh_python2 to build debs...
r26148 $DOCKER run -u $DBUILDUSER --rm -v $PWD/..:/mnt $CONTAINER \
sh -c "cd /mnt/$dn && make clean"
Augie Fackler
dockerdeb: rules to build a debian package using docker...
r24973 fi