[X2Go-Commits] x2goserver.git - build-baikal (branch) updated: 3.1.1.0-20-gb022803

X2Go dev team git-admin at x2go.org
Fri Jan 3 20:51:24 CET 2014


The branch, build-baikal has been updated
       via  b022803cb5b4dc10c740c52bd5845f9a52b7d9b9 (commit)
      from  ccdd4364d44b187c1f5cd24b4f1c2aa487110cac (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 ++
 x2goserver/bin/x2goresume-session |   15 +++++++++------
 x2goserver/bin/x2goruncommand     |    2 ++
 x2goserver/bin/x2gosetkeyboard    |   28 ++++++++++++++++++++++++----
 x2goserver/bin/x2gostartagent     |   10 +++++-----
 5 files changed, 42 insertions(+), 15 deletions(-)

The diff of changes is:
diff --git a/debian/changelog b/debian/changelog
index 107a2a2..9522e79 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -20,6 +20,8 @@ x2goserver (3.1.1.1-0~x2go1) UNRELEASED; urgency=low
       in X2Go session cache directory.
     - Add support for client-side keyboard detection. Moved script
       x2gosetkeyboard from x2goserver-pyhoca into x2goserver package.
+    - Make x2gosetkeyboard set the client-side keyboard on sessino start and
+      resume.
 
  -- Mike Gabriel <mike.gabriel at das-netzwerkteam.de>  Wed, 04 Apr 2012 11:44:14 +0200
 
diff --git a/x2goserver/bin/x2goresume-session b/x2goserver/bin/x2goresume-session
index a0b299a..cdb5af2 100755
--- a/x2goserver/bin/x2goresume-session
+++ b/x2goserver/bin/x2goresume-session
@@ -152,6 +152,9 @@ echo "$NEWOPTIONS" >"${SESSION_DIR}/options"
 # run x2goserver-extensions for pre-resume
 x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions "$SESSION_NAME" pre-resume || true
 
+# clear old keyboard file
+rm -Rf $SESSION_DIR/keyboard
+
 kill -HUP $X2GO_AGENT_PID &>/dev/null && {
 	$X2GO_LIB_PATH/x2gosyslog "$0" "notice" "client $X2GO_CLIENT has successfully resumed session with ID $SESSION_NAME"
 
@@ -171,12 +174,6 @@ kill -HUP $X2GO_AGENT_PID &>/dev/null && {
 	#done
 	(sleep 1; $X2GO_LIB_PATH/x2goresume  "$X2GO_CLIENT" "$SESSION_NAME"  "$GR_PORT" "$SOUND_PORT" "$FS_PORT" > /dev/null;)
 
-	# set client-side keyboard model, type, variant, etc.
-	if [ "$X2GO_SET_KBD" != "0" ]; then
-		X2GO_DISPLAY=$(echo $X2GO_SESSION | cut -d"-" -f2)
-		(sleep 1; DISPLAY=:$X2GO_DISPLAY.0 x2gosetkeyboard;)
-	fi
-
 	# resume x2godesktopsharing, if it has been in use before the session got suspended
 	x2gofeature X2GO_DESKTOPSHARING &>/dev/null && x2goresume-desktopsharing "$SESSION_NAME" || true
 
@@ -201,3 +198,9 @@ echo "gr_port=$GR_PORT"
 echo "sound_port=$SOUND_PORT"
 echo "fs_port=$FS_PORT"
 
+# set client-side keyboard model, type, variant, etc.
+if [ "$X2GO_SET_KBD" == "0" ]; then
+	X2GO_DISPLAY=$(echo $SESSION_NAME | cut -d"-" -f2)
+	export DISPLAY=:$X2GO_DISPLAY.0
+	x2gosetkeyboard "$SESSION_NAME" >/dev/null 2>/dev/null &
+fi
diff --git a/x2goserver/bin/x2goruncommand b/x2goserver/bin/x2goruncommand
index 541326d..012f713 100755
--- a/x2goserver/bin/x2goruncommand
+++ b/x2goserver/bin/x2goruncommand
@@ -200,6 +200,8 @@ sucessful_run=false
 if [ "$EXEC" != "" ] && [ -x $EXEC ]; then
 	$X2GO_LIB_PATH/x2gosyslog "$0" "debug" "running command $EXEC"
 
+	x2gosetkeyboard >/dev/null 2>/dev/null &
+
 	x2gofeature X2GO_XSESSION &>/dev/null && [ "x$X2GO_SESS_TYPE" = "xD" ] && {
 		STARTUP="$cmd$args"
 		$X2GO_LIB_PATH/x2gosyslog "$0" "notice" "launching session with Xsession-x2go mechanism, using STARTUP=\"$STARTUP\""
diff --git a/x2goserver/bin/x2gosetkeyboard b/x2goserver/bin/x2gosetkeyboard
index 6ca357e..710daa9 100755
--- a/x2goserver/bin/x2gosetkeyboard
+++ b/x2goserver/bin/x2gosetkeyboard
@@ -17,23 +17,41 @@
 # Free Software Foundation, Inc.,
 # 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
 #
+# Copyright (C) 2011-2012  Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
 # Copyright (C) 2011-2012  Oleksandr Shneyder <oleksandr.shneyder at obviously-nice.de>
 # Copyright (C) 2011-2012  Heinz-Markus Graesing <heinz-m.graesing at obviously-nice.de>
 
-set -e
-
 X2GO_LIB_PATH=`echo -n \$(x2gobasepath)/lib/x2go`
 
 $X2GO_LIB_PATH/x2gosyslog "$0" "info" "$(basename $0) called with options: $@"
 
+SESSION_NAME=${1:-$X2GO_SESSION}
+
 # set up paths
 X2GO_SESSION_ROOT=${HOME}/.x2go
-X2GO_SESSION_DIR=${X2GO_SESSION_ROOT}/C-${X2GO_SESSION}
+X2GO_SESSION_DIR=${X2GO_SESSION_ROOT}/C-${SESSION_NAME}
 
 # client keyboard configuration
 X2GO_CLIENT_KBD_FILE=${X2GO_SESSION_DIR}/keyboard
 
-test -f ${X2GO_CLIENT_KBD_FILE} || exit 0
+# if there is a directory at the location of the keyboard file, we consider this as blocking this script
+if [ -d ${X2GO_CLIENT_KBD_FILE} ]; then
+	$X2GO_LIB_PATH/x2gosyslog "$0" "info" "${X2GO_CLIENT_KBD_FILE} is blocked, not setting keyboard parameters from client-side settings"
+	rm -Rf ${X2GO_CLIENT_KBD_FILE}
+	exit 0
+fi
+
+# wait for the keyboard file to appear
+i=0
+while ! [ -f ${X2GO_CLIENT_KBD_FILE} ] && [ $i -lt 30 ]; do
+	$X2GO_LIB_PATH/x2gosyslog "$0" "info" "Waiting for ${X2GO_CLIENT_KBD_FILE} to appear"
+	sleep 1
+	i=$((i+1))
+done
+if  ! [ -f ${X2GO_CLIENT_KBD_FILE} ]; then
+	$X2GO_LIB_PATH/x2gosyslog "$0" "warning" "${X2GO_CLIENT_KBD_FILE} did not appear within 30s after agent startup"
+	exit 0
+fi
 
 read_keyboard_file() {
 
@@ -63,5 +81,7 @@ update_keymap() {
 }
 
 ### main ###
+$X2GO_LIB_PATH/x2gosyslog "$0" "notice" "Setting X keyboard according to ${X2GO_CLIENT_KBD_FILE}"
 read_keyboard_file
 update_keymap
+
diff --git a/x2goserver/bin/x2gostartagent b/x2goserver/bin/x2gostartagent
index dfbf017..90b82b1 100755
--- a/x2goserver/bin/x2gostartagent
+++ b/x2goserver/bin/x2gostartagent
@@ -251,11 +251,6 @@ if  [ "$X2GO_STYPE" == "S" ]; then
 	x2goagent -nolisten tcp $X2GODPIOPTION_ -$SESSION_TYPE -auth "$XAUTHORITY" -shadow $SHADOW_DESKTOP -shadowmode $SHADOW_MODE -geometry ${X2GO_GEOMETRY} -name "${SESSION_WINDOW_TITLE}"  "${NX_AGENT}" 2>"${SESSION_DIR}/session.log" &
 else
 	x2goagent -nolisten tcp $X2GODPIOPTION_ $XDMCPOPT -$SESSION_TYPE $NOEXITPARAM -auth "$XAUTHORITY" -geometry ${X2GO_GEOMETRY} -name "${SESSION_WINDOW_TITLE}"  "${NX_AGENT}" 2>"${SESSION_DIR}/session.log" &
-
-	# if we do not enforce a special keybaord type/layout/variant, use the one detected on the client-side
-	if [ "$X2GO_SET_KBD" != "0" ]; then
-		(sleep 1; x2gosetkeyboard;)
-	fi
 fi
 
 X2GO_AGENT_PID=$!
@@ -278,6 +273,11 @@ 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
 
+if [ "$X2GO_SET_KBD" != "0" ]; then
+	$X2GO_LIB_PATH/x2gosyslog "$0" "info" "blocking creation of agent's keyboard file ${SESSION_DIR}/keyboard as requested by session startup command"
+	mkdir -p ${SESSION_DIR}/keyboard
+fi
+
 echo $X2GO_PORT
 echo $X2GO_COOKIE
 echo $X2GO_AGENT_PID


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