##// END OF EJS Templates
osutil: add a function to unblock signals...
osutil: add a function to unblock signals Signals could be blocked by something like: #include <unistd.h> #include <signal.h> int main(int argc, char * const argv[]) { sigset_t set; sigfillset(&set); sigprocmask(SIG_BLOCK, &set, NULL); execv("/bin/hg", argv); return 0; } One of the problems is if SIGCHLD is blocked, chgserver would not reap zombie workers since it depends on SIGCHLD handler entirely. While it's the parent process to blame but it seems a good idea to just unblock the signal from hg. FWIW git does that for SIGPIPE already [1]. Unfortunately Python 2 does not reset or provide APIs to change signal masks. Therefore let's add one in osutil. Note: Python 3.3 introduced `signal.pthread_sigmask` which solves the problem. `sigprocmask` is part of POSIX [2] so there is no feature testing in `setup.py`. [1]: https://github.com/git/git/commit/7559a1be8a0afb10df41d25e4cf4c5285a5faef1 [2]: http://pubs.opengroup.org/onlinepubs/7908799/xsh/sigprocmask.html Differential Revision: https://phab.mercurial-scm.org/D1736

File last commit:

r29007:78074575 stable
r35476:8652ab40 default
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