The branch, master has been updated via 17d847151ef8803f9e973ddbe9e8b47c56d30623 (commit) via 3eece58572d42b888f3f922eac9ca7f64937a2da (commit) from 5a4f129a152362b5bfb133d39638274ed0c65f41 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- commit 17d847151ef8803f9e973ddbe9e8b47c56d30623 Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Date: Wed Apr 10 10:48:07 2013 +0200 Add WSGI support to X2Go Session Broker. Allows plugging into Apache2 by using the mod_wsgi module. commit 3eece58572d42b888f3f922eac9ca7f64937a2da Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Date: Tue Apr 9 23:08:29 2013 +0200 /debian/control: Fix --root parameter in DEB_PYTHON_INSTALL_ARGS. ----------------------------------------------------------------------- Summary of changes: debian/changelog | 6 +- debian/control | 65 +++++++++++--------- debian/rules | 2 +- debian/x2gobroker-agent.postrm | 8 ++- debian/x2gobroker-daemon.postrm | 9 +-- debian/x2gobroker-wsgi.install | 1 + debian/x2gobroker-wsgi.links | 1 + ...er-daemon.postinst => x2gobroker-wsgi.postinst} | 0 ...broker-daemon.postrm => x2gobroker-wsgi.postrm} | 9 +-- etc/x2gobroker-wsgi.apache.conf | 43 +++++++++++++ sbin/x2gobroker | 26 ++++++-- 11 files changed, 126 insertions(+), 44 deletions(-) delete mode 100644 debian/x2gobroker-cgi.install create mode 100644 debian/x2gobroker-wsgi.install create mode 100644 debian/x2gobroker-wsgi.links copy debian/{x2gobroker-daemon.postinst => x2gobroker-wsgi.postinst} (100%) copy debian/{x2gobroker-daemon.postrm => x2gobroker-wsgi.postrm} (84%) create mode 100644 etc/x2gobroker-wsgi.apache.conf The diff of changes is: diff --git a/debian/changelog b/debian/changelog index 52d3774..caddae8 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,6 +1,10 @@ x2gobroker (0.0.1.1-0~x2go1) UNRELEASED; urgency=low - * Continue development... + * New upstream version (0.0.1.1): + - Add WSGI support to X2Go Session Broker. Allows plugging into + Apache2 by using the mod_wsgi module. + * /debian/control: + + Fix --root parameter in DEB_PYTHON_INSTALL_ARGS. -- Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Sun, 10 Mar 2013 13:00:32 +0100 diff --git a/debian/control b/debian/control index 545adac..45e0eae 100644 --- a/debian/control +++ b/debian/control @@ -21,6 +21,7 @@ Architecture: all Depends: ${python:Depends}, ${misc:Depends}, + python, python-pampy, python-netaddr, python-tornado, @@ -53,6 +54,7 @@ Architecture: all Depends: ${python:Depends}, ${misc:Depends}, + python, python-argparse, python-setproctitle, python-tornado, @@ -85,6 +87,7 @@ Architecture: all Depends: ${python:Depends}, ${misc:Depends}, + python, python-argparse, python-setproctitle, Suggests: @@ -142,35 +145,38 @@ Description: X2Go http(s) based session broker (daemon) installs the X2Go Session Broker as standalone daemon. -#Package: x2gobroker-cgi -#Architecture: all -#Depends: -# ${misc:Depends}, -# ${python:Depends}, -#Suggests: -# apache2 | httpd, -#Description: X2Go http(s) based session broker (CGI) -# X2Go is a server based computing environment with -# - session resuming -# - low bandwidth support -# - LDAP support -# - client side mass storage mounting support -# - client side printing support -# - audio support -# - authentication by smartcard and USB stick -# . -# The session broker is a server tool for X2Go that -# tells your X2Go Client application in a terminal -# server cluster what servers and session types are -# most appropriate for the user in front of the -# X2Go terminal. -# . -# A session broker is most useful in load balanced -# X2Go server farms. -# . -# This package contains a configuration that installs -# the X2Go Session Broker as a CGI script so it -# can be run from within an existing httpd server. +Package: x2gobroker-wsgi +Architecture: all +Depends: + ${misc:Depends}, + ${python:Depends}, + python, + adduser, + python-wsgilog, +Suggests: + apache2, +Description: X2Go http(s) based session broker (CGI) + X2Go is a server based computing environment with + - session resuming + - low bandwidth support + - LDAP support + - client side mass storage mounting support + - client side printing support + - audio support + - authentication by smartcard and USB stick + . + The session broker is a server tool for X2Go that + tells your X2Go Client application in a terminal + server cluster what servers and session types are + most appropriate for the user in front of the + X2Go terminal. + . + A session broker is most useful in load balanced + X2Go server farms. + . + This package contains an Apache2 configuration that + installs the X2Go Session Broker as a WSGI application + into a running Apache2 httpd. Package: x2gobroker-agent Architecture: any @@ -178,6 +184,7 @@ Depends: ${shlibs:Depends}, ${python:Depends}, ${misc:Depends}, + python, python-setproctitle, python-argparse, python-paramiko, diff --git a/debian/rules b/debian/rules index 5521e3b..321f0cc 100755 --- a/debian/rules +++ b/debian/rules @@ -25,7 +25,7 @@ include /usr/share/cdbs/1/rules/debhelper.mk DEB_PYTHON_SYSTEM = $(shell test -f /usr/bin/dh_python2 && echo "" || echo "pysupport") -DEB_PYTHON_INSTALL_ARGS_python-x2gobroker ?= --root --prefix=$(DEB_PYTHON_PREFIX_ARG) --no-compile -O0 --install-layout=deb +DEB_PYTHON_INSTALL_ARGS_python-x2gobroker ?= --root=$(DEB_DESTDIR) --prefix=$(DEB_PYTHON_PREFIX_ARG) --no-compile -O0 --install-layout=deb include /usr/share/cdbs/1/class/python-distutils.mk include /usr/share/cdbs/1/class/makefile.mk diff --git a/debian/x2gobroker-agent.postrm b/debian/x2gobroker-agent.postrm index bc535ee..9b74861 100755 --- a/debian/x2gobroker-agent.postrm +++ b/debian/x2gobroker-agent.postrm @@ -18,11 +18,17 @@ set -e case "$1" in purge) + if dpkg-statoverride --list /usr/lib/x2go/x2gobroker-agent 1>/dev/null; then dpkg-statoverride --remove /usr/lib/x2go/x2gobroker-agent fi - if [ ! -d /usr/share/doc/x2gobroker-daemon ]; then + if [ ! -d /usr/share/doc/x2gobroker-daemon ] && [ ! -d /usr/share/doc/x2gobroker-wsgi ]; then + + if dpkg-statoverride --list /var/log/x2gobroker 1>/dev/null; then + dpkg-statoverride --remove /var/log/x2gobroker + fi + # remove user/group x2gobroker from system (if not in use by x2gobroker-daemon getent passwd x2gobroker 1>/dev/null && deluser x2gobroker getent group x2gobroker 1>/dev/null && delgroup x2gobroker diff --git a/debian/x2gobroker-cgi.install b/debian/x2gobroker-cgi.install deleted file mode 100644 index e69de29..0000000 diff --git a/debian/x2gobroker-daemon.postrm b/debian/x2gobroker-daemon.postrm index 34a8687..a1e2845 100755 --- a/debian/x2gobroker-daemon.postrm +++ b/debian/x2gobroker-daemon.postrm @@ -19,11 +19,12 @@ set -e case "$1" in purge) - if dpkg-statoverride --list /var/log/x2gobroker 1>/dev/null; then - dpkg-statoverride --remove /var/log/x2gobroker - fi + if [ ! -d /usr/share/doc/x2gobroker-agent ] && [ ! -d /usr/share/doc/x2gobroker-wsgi ]; then + + if dpkg-statoverride --list /var/log/x2gobroker 1>/dev/null; then + dpkg-statoverride --remove /var/log/x2gobroker + fi - if [ ! -d /usr/share/doc/x2gobroker-agent ]; then # remove user/group x2gobroker from system (only if not in use by x2gobroker-agent getent passwd x2gobroker 1>/dev/null && deluser x2gobroker getent group x2gobroker 1>/dev/null && delgroup x2gobroker diff --git a/debian/x2gobroker-wsgi.install b/debian/x2gobroker-wsgi.install new file mode 100644 index 0000000..d85d699 --- /dev/null +++ b/debian/x2gobroker-wsgi.install @@ -0,0 +1 @@ +etc/x2gobroker-apache.conf /etc/x2go/ \ No newline at end of file diff --git a/debian/x2gobroker-wsgi.links b/debian/x2gobroker-wsgi.links new file mode 100644 index 0000000..99e592a --- /dev/null +++ b/debian/x2gobroker-wsgi.links @@ -0,0 +1 @@ +/etc/x2go/x2gobroker-wsgi.apache.conf /etc/apache2/conf.d/x2gobroker-wsgi \ No newline at end of file diff --git a/debian/x2gobroker-daemon.postinst b/debian/x2gobroker-wsgi.postinst similarity index 100% copy from debian/x2gobroker-daemon.postinst copy to debian/x2gobroker-wsgi.postinst diff --git a/debian/x2gobroker-daemon.postrm b/debian/x2gobroker-wsgi.postrm similarity index 84% copy from debian/x2gobroker-daemon.postrm copy to debian/x2gobroker-wsgi.postrm index 34a8687..006022f 100755 --- a/debian/x2gobroker-daemon.postrm +++ b/debian/x2gobroker-wsgi.postrm @@ -19,11 +19,12 @@ set -e case "$1" in purge) - if dpkg-statoverride --list /var/log/x2gobroker 1>/dev/null; then - dpkg-statoverride --remove /var/log/x2gobroker - fi + if [ ! -d /usr/share/doc/x2gobroker-agent ] && [ ! -d /usr/share/doc/x2gobroker-daemon ]; then + + if dpkg-statoverride --list /var/log/x2gobroker 1>/dev/null; then + dpkg-statoverride --remove /var/log/x2gobroker + fi - if [ ! -d /usr/share/doc/x2gobroker-agent ]; then # remove user/group x2gobroker from system (only if not in use by x2gobroker-agent getent passwd x2gobroker 1>/dev/null && deluser x2gobroker getent group x2gobroker 1>/dev/null && delgroup x2gobroker diff --git a/etc/x2gobroker-wsgi.apache.conf b/etc/x2gobroker-wsgi.apache.conf new file mode 100644 index 0000000..92c432f --- /dev/null +++ b/etc/x2gobroker-wsgi.apache.conf @@ -0,0 +1,43 @@ +# enable debugging +#SetEnv X2GOBROKER_DEBUG off + +# the default user/group that this WSGI application runs as +#X2GOBROKER_DAEMON_USER=x2gobroker +#X2GOBROKER_DAEMON_GROUP=x2gobroker +WSGIDaemonProcess x2gobroker user=x2gobroker group=x2gobroker processes=5 threads=15 + +# default broker backend (default: zeroconf) +SetEnv X2GOBROKER_DEFAULT_BACKEND zeroconf +#SetEnv X2GOBROKER_DEFAULT_BACKEND inifile +#SetEnv X2GOBROKER_DEFAULT_BACKEND ldap +#SetEnv X2GOBROKER_DEFAULT_BACKEND <some-other-broker-backend> + +# path to the X2Go Session Broker's configuration file +#SetEnv X2GOBROKER_CONFIG /etc/x2go/x2gobroker.conf + +# path to the X2Go Session Broker's session profiles file (when using the inifile backend) +#SetEnv X2GOBROKER_SESSIONPROFILES /etc/x2go/broker/x2gobroker-sessionprofiles.conf + +# path to the X2Go Session Broker's agent command +#SetEnv X2GOBROKER_AGENT_CMD /usr/lib/x2go/x2gobroker-agent + +# authentication socket of the X2Go Broker's PAM Authentication Service +#SetEnv X2GOBROKER_AUTHSOCKET /run/x2gobroker/x2gobroker-authservice.socket + +# if you have to-be-statically-served files somewhere below the broker URL +#Alias /x2gobroker/static /some/static/path/ + +WSGIScriptAlias /x2gobroker /usr/sbin/x2gobroker +WSGIProcessGroup x2gobroker + +<Directory /usr/sbin/x2gobroker> + Order deny,allow + Deny from all + + # grant explicit access below + Allow from localhost + Allow from localhost-ip6 + + Options +FollowSymLinks + Options -Indexes +</Directory> diff --git a/sbin/x2gobroker b/sbin/x2gobroker index 3951539..a092172 100755 --- a/sbin/x2gobroker +++ b/sbin/x2gobroker @@ -27,9 +27,6 @@ import argparse import socket import logging import thread -import tornado.web -import tornado.httpserver -import tornado.ioloop try: import x2gobroker.defaults @@ -124,10 +121,13 @@ urls = ( ('/plain/(.*)', x2gobroker.web.plain.X2GoBrokerWeb,), settings = { 'log_function': tornado_log_request, } -application = tornado.web.Application(urls, **settings) # run the web.py standalone daemon... if __name__ == "__main__": + import tornado.web + import tornado.httpserver + import tornado.ioloop + application = tornado.web.Application(urls, **settings) try: if x2gobroker.defaults.X2GOBROKER_SSL_CERTFILE and x2gobroker.defaults.X2GOBROKER_SSL_KEYFILE: # switch on https:// mode @@ -144,3 +144,21 @@ if __name__ == "__main__": tornado.ioloop.IOLoop.instance().start() except socket.error, e: print (e) +else: + import tornado.wsgi + import wsgilog + _tornado_application = tornado.wsgi.WSGIApplication(urls, **settings) + + def _application(environ, start_response): + + # some WSGI implementations do not like the SCRIPT_NAME env var + if 'SCRIPT_NAME' in environ: + del environ['SCRIPT_NAME'] + + # make sure the httpd server's environment is set as os.environ + os.environ = environ + reload(x2gobroker.defaults) + + return _tornado_application(environ, start_response) + + application = wsgilog.WsgiLog(_application, tohtml=True, tofile=True, tostream=False, toprint=False, file='/var/log/x2gobroker/wsgi.log', ) hooks/post-receive -- x2gobroker.git (HTTP(S) Session broker for X2Go) This is an automated email from the git hooks/post-receive script. It was generated because a ref change was pushed to the repository containing the project "x2gobroker.git" (HTTP(S) Session broker for X2Go).