[X2Go-Commits] x2goserver.git - build-baikal (branch) updated: 3.0.99-2-320-gdaf3a93
X2Go dev team
git-admin at x2go.org
Wed Dec 4 06:21:46 CET 2013
The branch, build-baikal has been updated
via daf3a935ab5b71b86d9cb43d2aa5d108a6883297 (commit)
from 11c950ceffccdf78b2da5db02f33327b52dc1d04 (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 -----------------------------------------------------------------
-----------------------------------------------------------------------
Summary of changes:
debian/changelog | 2 ++
debian/x2goserver-extensions.install | 3 +-
x2goserver-extensions/Makefile | 32 +++++++++++++++++---
.../bin/x2goserver-run-extensions | 19 ++++++------
.../x2gofeature.d/x2goserver-extensions.features | 1 +
x2goserver/bin/x2goresume-session | 16 ++++++++--
x2goserver/bin/x2goruncommand | 11 +++++++
x2goserver/bin/x2gostartagent | 17 +++++++++--
x2goserver/bin/x2gosuspend-session | 12 ++++++++
x2goserver/bin/x2goterminate-session | 11 +++++++
10 files changed, 106 insertions(+), 18 deletions(-)
copy x2goserver-compat/share/x2gofeature.d/x2goserver-compat.features => x2goserver-extensions/bin/x2goserver-run-extensions (79%)
create mode 100644 x2goserver-extensions/lib/extensions/fail-resume.d/.placeholder
create mode 100644 x2goserver-extensions/lib/extensions/fail-runcommand.d/.placeholder
create mode 100644 x2goserver-extensions/lib/extensions/fail-start.d/.placeholder
create mode 100644 x2goserver-extensions/lib/extensions/fail-suspend.d/.placeholder
create mode 100644 x2goserver-extensions/lib/extensions/fail-terminate.d/.placeholder
create mode 100644 x2goserver-extensions/lib/extensions/post-resume.d/.placeholder
create mode 100644 x2goserver-extensions/lib/extensions/post-runcommand.d/.placeholder
create mode 100644 x2goserver-extensions/lib/extensions/post-start.d/.placeholder
create mode 100644 x2goserver-extensions/lib/extensions/post-suspend.d/.placeholder
create mode 100644 x2goserver-extensions/lib/extensions/post-terminate.d/.placeholder
create mode 100644 x2goserver-extensions/lib/extensions/pre-resume.d/.placeholder
create mode 100644 x2goserver-extensions/lib/extensions/pre-runcommand.d/.placeholder
create mode 100644 x2goserver-extensions/lib/extensions/pre-start.d/.placeholder
create mode 100644 x2goserver-extensions/lib/extensions/pre-suspend.d/.placeholder
create mode 100644 x2goserver-extensions/lib/extensions/pre-terminate.d/.placeholder
The diff of changes is:
diff --git a/debian/changelog b/debian/changelog
index df9fede..a9cbbf2 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -101,6 +101,8 @@ x2goserver (3.0.99.6-0~x2go1) UNRELEASED; urgency=low
or when x2goruncommand is about to exit.
* Resume/suspend x2godesktopsharing during x2goresume-session,
x2gosuspend-session.
+ * Provide pluggable X2go extension system for main X2go server
+ functions.
[ Ivan Kabaivanov ]
* Makefile fix around man page installation in x2goserver-compat package.
diff --git a/debian/x2goserver-extensions.install b/debian/x2goserver-extensions.install
index 4983aa8..30d64d3 100644
--- a/debian/x2goserver-extensions.install
+++ b/debian/x2goserver-extensions.install
@@ -1,3 +1,4 @@
x2goserver-extensions/bin/x2go* /usr/bin/
x2goserver-extensions/VERSION.x2goserver-extensions /usr/share/x2go/versions/
-x2goserver-extensions/share/x2gofeature.d/* /usr/share/x2go/x2gofeature.d/
\ No newline at end of file
+x2goserver-extensions/share/x2gofeature.d/* /usr/share/x2go/x2gofeature.d/
+x2goserver-extensions/lib/* /usr/lib/x2go/
\ No newline at end of file
diff --git a/x2goserver-extensions/Makefile b/x2goserver-extensions/Makefile
index 591a598..35f9c99 100755
--- a/x2goserver-extensions/Makefile
+++ b/x2goserver-extensions/Makefile
@@ -15,7 +15,7 @@ PREFIX=/usr/local
ETCDIR=/etc/x2go
BINDIR=$(PREFIX)/bin
#SBINDIR=$(PREFIX)/sbin
-#LIBDIR=$(PREFIX)/lib/x2go
+LIBDIR=$(PREFIX)/lib/x2go
MANDIR=$(PREFIX)/share/man
SHAREDIR=$(PREFIX)/share/x2go
@@ -53,11 +53,35 @@ install: install_scripts install_config install_man install_version
install_scripts:
$(INSTALL_DIR) $(DESTDIR)$(BINDIR)
# $(INSTALL_DIR) $(DESTDIR)$(SBINDIR)
-# $(INSTALL_DIR) $(DESTDIR)$(LIBDIR)
+ $(INSTALL_DIR) $(DESTDIR)$(LIBDIR)
+ $(INSTALL_DIR) $(DESTDIR)$(LIBDIR)/pre-start.d
+ $(INSTALL_DIR) $(DESTDIR)$(LIBDIR)/post-start.d
+ $(INSTALL_DIR) $(DESTDIR)$(LIBDIR)/fail-start.d
+ $(INSTALL_DIR) $(DESTDIR)$(LIBDIR)/pre-resume.d
+ $(INSTALL_DIR) $(DESTDIR)$(LIBDIR)/post-resume.d
+ $(INSTALL_DIR) $(DESTDIR)$(LIBDIR)/fail-resume.d
+ $(INSTALL_DIR) $(DESTDIR)$(LIBDIR)/pre-suspend.d
+ $(INSTALL_DIR) $(DESTDIR)$(LIBDIR)/post-suspend.d
+ $(INSTALL_DIR) $(DESTDIR)$(LIBDIR)/fail-suspend.d
+ $(INSTALL_DIR) $(DESTDIR)$(LIBDIR)/pre-terminate.d
+ $(INSTALL_DIR) $(DESTDIR)$(LIBDIR)/post-terminate.d
+ $(INSTALL_DIR) $(DESTDIR)$(LIBDIR)/fail-terminate.d
$(INSTALL_DIR) $(DESTDIR)$(SHAREDIR)
+ $(INSTALL_DIR) $(DESTDIR)$(SHAREDIR)/x2gofeature.d
$(INSTALL_PROGRAM) bin/* $(DESTDIR)$(BINDIR)/
# $(INSTALL_PROGRAM) sbin/* $(DESTDIR)$(SBINDIR)/
-# $(INSTALL_FILE) lib/* $(DESTDIR)$(LIBDIR)/
+ $(INSTALL_FILE) lib/extensions/pre-start.d/* $(DESTDIR)$(LIBDIR)/extensions/pre-start.d/
+ $(INSTALL_FILE) lib/extensions/post-start.d/* $(DESTDIR)$(LIBDIR)/extensions/post-start.d/
+ $(INSTALL_FILE) lib/extensions/fail-start.d/* $(DESTDIR)$(LIBDIR)/extensions/fail-start.d/
+ $(INSTALL_FILE) lib/extensions/pre-resume.d/* $(DESTDIR)$(LIBDIR)/extensions/pre-resume.d/
+ $(INSTALL_FILE) lib/extensions/post-resume.d/* $(DESTDIR)$(LIBDIR)/extensions/post-resume.d/
+ $(INSTALL_FILE) lib/extensions/post-fail.d/* $(DESTDIR)$(LIBDIR)/extensions/fail-resume.d/
+ $(INSTALL_FILE) lib/extensions/pre-suspend.d/* $(DESTDIR)$(LIBDIR)/extensions/pre-suspend.d/
+ $(INSTALL_FILE) lib/extensions/post-suspend.d/* $(DESTDIR)$(LIBDIR)/extensions/post-suspend.d/
+ $(INSTALL_FILE) lib/extensions/fail-suspend.d/* $(DESTDIR)$(LIBDIR)/extensions/fail-suspend.d/
+ $(INSTALL_FILE) lib/extensions/pre-terminate.d/* $(DESTDIR)$(LIBDIR)/extensions/pre-terminate.d/
+ $(INSTALL_FILE) lib/extensions/post-terminate.d/* $(DESTDIR)$(LIBDIR)/extensions/post-terminate.d/
+ $(INSTALL_FILE) lib/extensions/fail-terminate.d/* $(DESTDIR)$(LIBDIR)/extensions/fail-terminate.d/
$(INSTALL_PROGRAM) share/x2gofeature.d/*.features $(DESTDIR)$(SHAREDIR)/x2gofeature.d/
install_config:
@@ -84,7 +108,7 @@ uninstall_scripts:
for file in $(BIN_SCRIPTS); do $(RM_FILE) $(DESTDIR)$(BINDIR)/$$file; done
# for file in $(SBIN_SCRIPTS); do $(RM_FILE) $(DESTDIR)$(SBINDIR)/$$file; done
# for file in $(LIB_FILES); do $(RM_FILE) $(DESTDIR)$(LIBDIR)/$$file; done
-# $(RM_DIR) $(DESTDIR)$(LIBDIR) || true
+ $(RM_DIR) $(DESTDIR)$(LIBDIR)/extensions/ || true
for file in $(FEATURE_SCRIPTS); do $(RM_FILE) $(DESTDIR)$(SHAREDIR)/x2gofeature.d/$$file; done
uninstall_config:
diff --git a/x2goserver-compat/share/x2gofeature.d/x2goserver-compat.features b/x2goserver-extensions/bin/x2goserver-run-extensions
similarity index 79%
copy from x2goserver-compat/share/x2gofeature.d/x2goserver-compat.features
copy to x2goserver-extensions/bin/x2goserver-run-extensions
index 030aa6e..3b807e1 100755
--- a/x2goserver-compat/share/x2gofeature.d/x2goserver-compat.features
+++ b/x2goserver-extensions/bin/x2goserver-run-extensions
@@ -19,18 +19,19 @@
#
# Copyright (C) 2011 Oleksandr Shneyder <oleksandr.shneyder at obviously-nice.de>
# Copyright (C) 2011 Heinz-Markus Graesing <heinz-m.graesing at obviously-nice.de>
+# Copyright (C) 2011 Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
+
+set -e
X2GO_LIB_PATH=`echo -n \$(x2gobasepath)/lib/x2go`
$X2GO_LIB_PATH/x2gosyslog "$0" "info" "$(basename $0) called with options: $@"
-X2GO_FEATURE=$1
-
-# check for X2go server core features
-case "$X2GO_FEATURE" in
-
- "X2GO_COMPAT_SCRIPTS") echo "ok"; exit 0;;
- *) exit -1;;
-
-esac
+X2GO_SESSION=$1
+X2GO_MODALITY=$2
+# scan extensions and execute them
+ls $X2GO_LIB_PATH/extensions/$X2GO_MODALITY.d/* | sort | while read x2go_extension; do
+ $x2go_extension $X2GO_SESSION
+done
+exit 0
\ No newline at end of file
diff --git a/x2goserver-extensions/lib/extensions/fail-resume.d/.placeholder b/x2goserver-extensions/lib/extensions/fail-resume.d/.placeholder
new file mode 100644
index 0000000..e69de29
diff --git a/x2goserver-extensions/lib/extensions/fail-runcommand.d/.placeholder b/x2goserver-extensions/lib/extensions/fail-runcommand.d/.placeholder
new file mode 100644
index 0000000..e69de29
diff --git a/x2goserver-extensions/lib/extensions/fail-start.d/.placeholder b/x2goserver-extensions/lib/extensions/fail-start.d/.placeholder
new file mode 100644
index 0000000..e69de29
diff --git a/x2goserver-extensions/lib/extensions/fail-suspend.d/.placeholder b/x2goserver-extensions/lib/extensions/fail-suspend.d/.placeholder
new file mode 100644
index 0000000..e69de29
diff --git a/x2goserver-extensions/lib/extensions/fail-terminate.d/.placeholder b/x2goserver-extensions/lib/extensions/fail-terminate.d/.placeholder
new file mode 100644
index 0000000..e69de29
diff --git a/x2goserver-extensions/lib/extensions/post-resume.d/.placeholder b/x2goserver-extensions/lib/extensions/post-resume.d/.placeholder
new file mode 100644
index 0000000..e69de29
diff --git a/x2goserver-extensions/lib/extensions/post-runcommand.d/.placeholder b/x2goserver-extensions/lib/extensions/post-runcommand.d/.placeholder
new file mode 100644
index 0000000..e69de29
diff --git a/x2goserver-extensions/lib/extensions/post-start.d/.placeholder b/x2goserver-extensions/lib/extensions/post-start.d/.placeholder
new file mode 100644
index 0000000..e69de29
diff --git a/x2goserver-extensions/lib/extensions/post-suspend.d/.placeholder b/x2goserver-extensions/lib/extensions/post-suspend.d/.placeholder
new file mode 100644
index 0000000..e69de29
diff --git a/x2goserver-extensions/lib/extensions/post-terminate.d/.placeholder b/x2goserver-extensions/lib/extensions/post-terminate.d/.placeholder
new file mode 100644
index 0000000..e69de29
diff --git a/x2goserver-extensions/lib/extensions/pre-resume.d/.placeholder b/x2goserver-extensions/lib/extensions/pre-resume.d/.placeholder
new file mode 100644
index 0000000..e69de29
diff --git a/x2goserver-extensions/lib/extensions/pre-runcommand.d/.placeholder b/x2goserver-extensions/lib/extensions/pre-runcommand.d/.placeholder
new file mode 100644
index 0000000..e69de29
diff --git a/x2goserver-extensions/lib/extensions/pre-start.d/.placeholder b/x2goserver-extensions/lib/extensions/pre-start.d/.placeholder
new file mode 100644
index 0000000..e69de29
diff --git a/x2goserver-extensions/lib/extensions/pre-suspend.d/.placeholder b/x2goserver-extensions/lib/extensions/pre-suspend.d/.placeholder
new file mode 100644
index 0000000..e69de29
diff --git a/x2goserver-extensions/lib/extensions/pre-terminate.d/.placeholder b/x2goserver-extensions/lib/extensions/pre-terminate.d/.placeholder
new file mode 100644
index 0000000..e69de29
diff --git a/x2goserver-extensions/share/x2gofeature.d/x2goserver-extensions.features b/x2goserver-extensions/share/x2gofeature.d/x2goserver-extensions.features
index b2e384f..eb4e740 100755
--- a/x2goserver-extensions/share/x2gofeature.d/x2goserver-extensions.features
+++ b/x2goserver-extensions/share/x2gofeature.d/x2goserver-extensions.features
@@ -31,6 +31,7 @@ case "$X2GO_FEATURE" in
"X2GO_SET_KEYBOARD") echo "ok"; exit 0;;
"X2GO_LIST_MOUNTS") echo "ok"; exit 0;;
+ "X2GO_RUN_EXTENSIONS") echo "ok"; exit 0;;
*) exit -1;;
esac
diff --git a/x2goserver/bin/x2goresume-session b/x2goserver/bin/x2goresume-session
index d9c7345..03adf97 100755
--- a/x2goserver/bin/x2goresume-session
+++ b/x2goserver/bin/x2goresume-session
@@ -83,8 +83,18 @@ echo "$NEWOPTIONS" >${SESSION_DIR}/options
$X2GO_LIB_PATH/x2goresume $X2GO_CLIENT $SESSION_NAME > /dev/null
+# run x2goserver-extensions for pre-resume
+x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions $SESSION_NAME pre-resume
+
kill -HUP $X2GO_AGENT_PID &>/dev/null && {
$X2GO_LIB_PATH/x2gosyslog "$0" "notice" "client $X2GO_CLIENT has successfully resumed session with ID $SESSION_NAME"
+
+ # resume x2godesktopsharing, if it has been in use before the session got suspended
+ x2gofeature X2GO_DESKTOPSHARING &>/dev/null && x2godesktopsharing_resume $SESSION_NAME
+
+ # run x2goserver-extensions for post-resume
+ x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions $SESSION_NAME post-resume
+
} || {
err_msg="ERROR: failed to resume session with ID $SESSION_NAME"
echo "$err_msg" 1>&2
@@ -93,7 +103,9 @@ kill -HUP $X2GO_AGENT_PID &>/dev/null && {
# If we reach here it means that the x2goagent process of the session has vanisshed
# If this happens than we mark the session as finished...
$X2GO_LIB_PATH/x2gochangestatus 'F' $SESSION_NAME > /dev/null
+
+ # run x2goserver-extensions for fail-resume
+ x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions $SESSION_NAME fail-resume
+
}
-# resume x2godesktopsharing, if it has been in use before the session got suspended
-x2gofeature X2GO_DESKTOPSHARING &>/dev/null && x2godesktopsharing_resume $SESSION_NAME
diff --git a/x2goserver/bin/x2goruncommand b/x2goserver/bin/x2goruncommand
index b14920f..136b770 100755
--- a/x2goserver/bin/x2goruncommand
+++ b/x2goserver/bin/x2goruncommand
@@ -109,6 +109,9 @@ then
IMEXIT="true"
fi
+# run x2goserver-extensions for pre-runcommand
+x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions $SESSION_NAME pre-runcommand
+
sucessful_run=false
if [ "$EXEC" != "" ] && [ -x $EXEC ]; then
$X2GO_LIB_PATH/x2gosyslog "$0" "debug" "running command $EXEC"
@@ -122,9 +125,17 @@ if [ "$EXEC" != "" ] && [ -x $EXEC ]; then
fi
# if we reach here the possibility of a successful command execution is rather high
successful_run=true
+
+ # run x2goserver-extensions for post-runcommand
+ x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions $SESSION_NAME post-runcommand
+
else
$X2GO_LIB_PATH/x2gosyslog "$0" "err" "ERROR: command $EXEC failed to execute"
echo "X2GORUNCOMMAND ERR NOEXEC:$cmd" > $MESSAGE_FILE
+
+ # run x2goserver-extensions for fail-runcommand
+ x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions $SESSION_NAME fail-runcommand
+
fi
# stop x2godesktopsharing process gracefully...
diff --git a/x2goserver/bin/x2gostartagent b/x2goserver/bin/x2gostartagent
index 2759865..00c2a58 100755
--- a/x2goserver/bin/x2gostartagent
+++ b/x2goserver/bin/x2gostartagent
@@ -224,6 +224,9 @@ else
XDMCPOPT="-query $X2GOXDMCP"
fi
+# run x2goserver-extensions for pre-start
+x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions $SESSION_NAME pre-start
+
if [ "$X2GO_STYPE" == "S" ]; then
LD_LIBRARY_PATH=$X2GO_LIB x2goagent $X2GODPIOPTION_ -$SESSION_TYPE -auth ~/.Xauthority -S -shadow $SHADOW_DESKTOP -shadowmode $SHADOW_MODE -geometry ${X2GO_GEOMETRY} -name "X2GO-${SESSION_NAME}" ${NX_AGENT} 2>${SESSION_DIR}/session.log &
else
@@ -232,10 +235,20 @@ fi
X2GO_AGENT_PID=$!
X2GO_AGENT_RETVAL=$?
-test $X2GO_AGENT_RETVAL && \
- $X2GO_LIB_PATH/x2gosyslog "$0" "notice" "successfully started X2go agent session with ID $SESSION_NAME" || \
+test $X2GO_AGENT_RETVAL && {
+ $X2GO_LIB_PATH/x2gosyslog "$0" "notice" "successfully started X2go agent session with ID $SESSION_NAME"
+
+ # run x2goserver-extensions for post-start
+ x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions $SESSION_NAME post-start
+
+} || {
$X2GO_LIB_PATH/x2gosyslog "$0" "err" "ERROR: failed to start X2go agent session with ID $SESSION_NAME"
+ # run x2goserver-extensions for fail-start
+ x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions $SESSION_NAME fail-start
+
+}
+
X2GO_SND_PORT=1024
$X2GO_LIB_PATH/x2gocreatesession $X2GO_COOKIE $X2GO_AGENT_PID $X2GO_CLIENT $GR_PORT $SOUND_PORT $FS_PORT $SESSION_NAME > /dev/null
diff --git a/x2goserver/bin/x2gosuspend-session b/x2goserver/bin/x2gosuspend-session
index 3c554e7..ddb86d6 100755
--- a/x2goserver/bin/x2gosuspend-session
+++ b/x2goserver/bin/x2gosuspend-session
@@ -41,8 +41,15 @@ $X2GO_LIB_PATH/x2gochangestatus 'S' $SESSION_NAME > /dev/null
# terminate x2godesktopsharing instance and remember that it was running...
x2gofeature X2GO_DESKTOPSHARING &>/dev/null && x2godesktopsharing-suspend $SESSION_NAME
+# run x2goserver-extensions for pre-suspend
+x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions $SESSION_NAME pre-suspend
+
kill -HUP $X2GO_AGENT_PID &>/dev/null && {
$X2GO_LIB_PATH/x2gosyslog "$0" "notice" "session with ID $SESSION_NAME has been suspended successfully"
+
+ # run x2goserver-extensions for post-suspend
+ x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions $SESSION_NAME post-suspend
+
} || {
err_msg="ERROR: failed to suspend session with ID $SESSION_NAME"
echo "$err_msg" 1>&2
@@ -51,7 +58,12 @@ kill -HUP $X2GO_AGENT_PID &>/dev/null && {
# If we reach here it means that the x2goagent process of the session has vanisshed
# If this happens than we mark the session as finished...
$X2GO_LIB_PATH/x2gochangestatus 'F' $SESSION_NAME > /dev/null
+
+ # run x2goserver-extensions for fail-suspend
+ x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions $SESSION_NAME fail-suspend
+
}
export HOSTNAME
x2goumount-session $SESSION_NAME
+
diff --git a/x2goserver/bin/x2goterminate-session b/x2goserver/bin/x2goterminate-session
index ca283e1..72b4912 100755
--- a/x2goserver/bin/x2goterminate-session
+++ b/x2goserver/bin/x2goterminate-session
@@ -38,8 +38,15 @@ $X2GO_LIB_PATH/x2gochangestatus 'F' $SESSION_NAME > /dev/null
# stop x2godesktopsharing process gracefully...
x2gofeature X2GO_DESKTOPSHARING &>/dev/null && x2godesktopsharing-terminate $SESSION_NAME
+# run x2goserver-extensions for pre-terminate
+x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions $SESSION_NAME pre-terminate
+
kill -TERM $X2GO_AGENT_PID &>/dev/null && {
$X2GO_LIB_PATH/x2gosyslog "$0" "notice" "session with ID $SESSION_NAME has been terminated successfully"
+
+ # run x2goserver-extensions for post-terminate
+ x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions $SESSION_NAME post-terminate
+
} || {
err_msg="ERROR: failed to terminate session with ID $SESSION_NAME"
@@ -47,6 +54,10 @@ kill -TERM $X2GO_AGENT_PID &>/dev/null && {
#echo "$err_msg" 1>&2
$X2GO_LIB_PATH/x2gosyslog "$0" "err" "$err_msg"
+
+ # run x2goserver-extensions for fail-terminate
+ x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions $SESSION_NAME fail-terminate
+
}
export HOSTNAME
hooks/post-receive
--
x2goserver.git (X2Go Server)
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 "x2goserver.git" (X2Go Server).
More information about the x2go-commits
mailing list