[X2Go-Commits] [x2goserver] 01/05: Start/resume rootless sessions without geometry parameter. Esp. using X2GO_GEOMETRY=fullscreen for rootless sessions lead to an extra 1x1 px session window (nxagentCreateIconWindow in nxagent's Window.c).

git-admin at x2go.org git-admin at x2go.org
Fri Feb 21 14:21:31 CET 2014


This is an automated email from the git hooks/post-receive script.

x2go pushed a commit to branch release/4.0.0.x
in repository x2goserver.

commit 009d27fa6d099b2a0880cc21b3cacfc042679857
Author: Mike Gabriel <mike.gabriel at das-netzwerkteam.de>
Date:   Mon Nov 18 15:39:28 2013 +0100

    Start/resume rootless sessions without geometry parameter. Esp. using X2GO_GEOMETRY=fullscreen for rootless sessions lead to an extra 1x1 px session window (nxagentCreateIconWindow in nxagent's Window.c).
    
    Conflicts (resolved by Mike Gabriel):
    	debian/changelog
---
 debian/changelog                  |    4 ++++
 x2goserver/bin/x2goresume-session |   23 ++++++++++++++++++-----
 x2goserver/bin/x2gostartagent     |   32 +++++++++++++++++++++++++-------
 3 files changed, 47 insertions(+), 12 deletions(-)

diff --git a/debian/changelog b/debian/changelog
index b03d56f..29ed88f 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -3,6 +3,10 @@ x2goserver (4.0.0.11-0x2go1) unstable; urgency=low
   * New upstream version (4.0.0.11):
     - Use perl instead of sed for search+replace in session names sanitizing.
       (Fixes: #404).
+  * Adopt this patch from stable release branch and apply to LTS branch:
+    - Start/resume rootless sessions without geometry parameter. Esp. using
+      X2GO_GEOMETRY=fullscreen for rootless sessions lead to an extra 1x1 px
+      session window (nxagentCreateIconWindow in nxagent's Window.c).
 
  -- Mike Gabriel <mike.gabriel at das-netzwerkteam.de>  Mon, 20 Jan 2014 14:00:42 +0100
 
diff --git a/x2goserver/bin/x2goresume-session b/x2goserver/bin/x2goresume-session
index 0c9d4ae..f663bc9 100755
--- a/x2goserver/bin/x2goresume-session
+++ b/x2goserver/bin/x2goresume-session
@@ -43,13 +43,22 @@ fi
 
 $X2GO_LIB_PATH/x2gosyslog "$0" "info" "$(basename $0) called with options: $@"
 
-if [ "$X2GO_GEOMETRY" == "" ]
-then
-	X2GO_GEOMETRY=fullscreen
+
+# rootless sessions require to be resizable
+if [ "$SESSION_TYPE" == "R" ]; then
+	X2GO_RESIZE=1
 fi
 
-if [ "$X2GO_GEOMETRY" == "fullscreen" ]
-then
+# rootless sessions of geometry fullscreen are invalid
+if [ "$X2GO_GEOMETRY" == "fullscreen" ] && [ "$SESSION_TYPE" == "R" ]; then
+	X2GO_GEOMETRY=""
+fi
+
+# no geometry for desktop sessions shall result in fullscreen desktop sessions
+if [ "$X2GO_GEOMETRY" == "" ] && [ "$SESSION_TYPE" == "D" ]; then
+	X2GO_GEOMETRY="fullscreen"
+fi
+if [ "$X2GO_GEOMETRY" == "fullscreen" ]; then
 	X2GO_RESIZE=1
 	X2GO_FULLSCREEN=1
 fi
@@ -144,6 +153,10 @@ NEWOPTIONS=`echo "$OPTIONS" | sed  -e  "s/$LSTR/link=$X2GO_LINK/"\
  -e "s/$LISTSTR/listen=$GR_PORT/"\
  -e "s/$FSTR/fullscreen=$X2GO_FULLSCREEN/"`
 
+if [ -z "$X2GO_GEOMETRY" ] || [ "$X2GO_GEOMETRY" == "fullscreen" ]; then
+	NEWOPTIONS=`echo $NEWOPTIONS | sed -e "s/geometry=${X2GO_GEOMETRY},//"`
+fi
+
 X2GO_CLIENT=`echo "$SSH_CLIENT" | awk '{print $1}'`
 if [ "$X2GO_CLIENT" == "" ]
 then
diff --git a/x2goserver/bin/x2gostartagent b/x2goserver/bin/x2gostartagent
index 29f83b1..db43d7d 100755
--- a/x2goserver/bin/x2gostartagent
+++ b/x2goserver/bin/x2gostartagent
@@ -188,16 +188,26 @@ while [ "$GR_PORT" == "" ] || [ "$SOUND_PORT" == "" ] || [ "$FS_PORT" == "" ]; d
 	fi
 done
 
+# rootless sessions require to be resizable
+if [ "$SESSION_TYPE" == "R" ]; then
+	X2GO_RESIZE=1
+fi
 
-if [ "$X2GO_GEOMETRY" == "" ]; then
-	X2GO_GEOMETRY=fullscreen
+# rootless sessions of geometry fullscreen are invalid
+if [ "$X2GO_GEOMETRY" == "fullscreen" ] && [ "$SESSION_TYPE" == "R" ]; then
+	X2GO_GEOMETRY=""
 fi
 
+# no geometry for desktop sessions shall result in fullscreen desktop sessions
+if [ "$X2GO_GEOMETRY" == "" ] && [ "$SESSION_TYPE" == "D" ]; then
+	X2GO_GEOMETRY="fullscreen"
+fi
 if [ "$X2GO_GEOMETRY" == "fullscreen" ]; then
 	X2GO_RESIZE=1
 	X2GO_FULLSCREEN=1
 fi
 
+# shadow sessions are never fullscreen session and adopt the original session's geometry
 if [ "$X2GO_STYPE" == "S" ]; then
 	X2GO_GEOMETRY=`DISPLAY="$SHADOW_DESKTOP" xwininfo -root | grep geometry`
 	X2GO_GEOMETRY=`echo "$X2GO_GEOMETRY" | sed  -e  "s/ //g"`
@@ -228,7 +238,6 @@ fi
 X2GO_COOKIE=`mcookie`
 
 
-
 PATH="${PATH}:${X2GO_BIN}/"
 export PATH
 
@@ -237,10 +246,15 @@ xauth -f "$XAUTHORITY" add "${HOSTNAME}/unix:${X2GO_PORT}" MIT-MAGIC-COOKIE-1 "$
 xauth -f "$XAUTHORITY" add "${HOSTNAME}:${X2GO_PORT}" MIT-MAGIC-COOKIE-1 "${X2GO_COOKIE}"
 
 
+option_geometry=""
+if [ -n "$X2GO_GEOMETRY" ] && [ "$X2GO_GEOMETRY" != "fullscreen" ]; then
+	option_geometry="geometry=${X2GO_GEOMETRY},"
+fi
+
 if [ "$X2GO_SET_KBD" == "0" ] || [ "$X2GO_KBD_TYPE" == "auto" ];then
-    X2GO_HOST="nx/nx,link=${X2GO_LINK},pack=${X2GO_PACK},limit=0,root=${SESSION_DIR},cache=8M,images=32M,type=${X2GO_TYPE},id=${SESSION_NAME},cookie=$X2GO_COOKIE,errors=${SESSION_LOG},kbtype=null/null,geometry=${X2GO_GEOMETRY},resize=${X2GO_RESIZE},fullscreen=${X2GO_FULLSCREEN},accept=${REMOTE},listen=${GR_PORT},client=linux,menu=0"
+    X2GO_HOST="nx/nx,link=${X2GO_LINK},pack=${X2GO_PACK},limit=0,root=${SESSION_DIR},cache=8M,images=32M,type=${X2GO_TYPE},id=${SESSION_NAME},cookie=$X2GO_COOKIE,errors=${SESSION_LOG},kbtype=null/null,${option_geometry}resize=${X2GO_RESIZE},fullscreen=${X2GO_FULLSCREEN},accept=${REMOTE},listen=${GR_PORT},client=linux,menu=0"
 else
-    X2GO_HOST="nx/nx,link=${X2GO_LINK},pack=${X2GO_PACK},limit=0,root=${SESSION_DIR},cache=8M,images=32M,type=${X2GO_TYPE},id=${SESSION_NAME},cookie=$X2GO_COOKIE,errors=${SESSION_LOG},kbtype=${X2GO_KBD_TYPE},geometry=${X2GO_GEOMETRY},resize=${X2GO_RESIZE},fullscreen=${X2GO_FULLSCREEN},accept=${REMOTE},listen=${GR_PORT},client=linux,menu=0"
+    X2GO_HOST="nx/nx,link=${X2GO_LINK},pack=${X2GO_PACK},limit=0,root=${SESSION_DIR},cache=8M,images=32M,type=${X2GO_TYPE},id=${SESSION_NAME},cookie=$X2GO_COOKIE,errors=${SESSION_LOG},kbtype=${X2GO_KBD_TYPE},${option_geometry}resize=${X2GO_RESIZE},fullscreen=${X2GO_FULLSCREEN},accept=${REMOTE},listen=${GR_PORT},client=linux,menu=0"
 fi
 
 
@@ -270,13 +284,17 @@ fi
 x2gofeature X2GO_RUN_EXTENSIONS &>/dev/null && x2goserver-run-extensions "$SESSION_NAME" pre-start || true
 
 SESSION_WINDOW_TITLE="X2GO-${SESSION_NAME}"
+agent_geometry=""
+if [ -n "$X2GO_GEOMETRY" ] && [ "$X2GO_GEOMETRY" != "fullscreen" ]; then
+	agent_geometry="-geometry ${X2GO_GEOMETRY}"
+fi
 
 if  [ "$X2GO_STYPE" == "S" ]; then
 	# set NX_TEMP to /tmp, make sure x2goagent starts when pam_tmpdir.so is in use
-	NX_TEMP=/tmp x2goagent $X2GO_NXAGENT_OPTIONS $NOLISTOPT $X2GODPIOPTION_ -$SESSION_TYPE -auth "$XAUTHORITY" -shadow $SHADOW_DESKTOP -shadowmode $SHADOW_MODE -geometry ${X2GO_GEOMETRY} -name "${SESSION_WINDOW_TITLE}"  "${NX_AGENT}" 2>"${SESSION_LOG}" &
+	NX_TEMP=/tmp x2goagent $X2GO_NXAGENT_OPTIONS $NOLISTOPT $X2GODPIOPTION_ -$SESSION_TYPE -auth "$XAUTHORITY" -shadow $SHADOW_DESKTOP -shadowmode $SHADOW_MODE $agent_geometry -name "${SESSION_WINDOW_TITLE}"  "${NX_AGENT}" 2>"${SESSION_LOG}" &
 else
 	# set NX_TEMP to /tmp, make sure x2goagent starts when pam_tmpdir.so is in use
-	NX_TEMP=/tmp x2goagent $X2GO_NXAGENT_OPTIONS $NOLISTOPT $X2GODPIOPTION_ $XDMCPOPT -$SESSION_TYPE $NOEXITPARAM -auth "$XAUTHORITY" -geometry ${X2GO_GEOMETRY} -name "${SESSION_WINDOW_TITLE}"  "${NX_AGENT}" 2>"${SESSION_LOG}" &
+	NX_TEMP=/tmp x2goagent $X2GO_NXAGENT_OPTIONS $NOLISTOPT $X2GODPIOPTION_ $XDMCPOPT -$SESSION_TYPE $NOEXITPARAM -auth "$XAUTHORITY" $agent_geometry -name "${SESSION_WINDOW_TITLE}"  "${NX_AGENT}" 2>"${SESSION_LOG}" &
 fi
 
 ln -s "${SESSION_LOG}" "${SESSION_DIR}/session.log" 

--
Alioth's /srv/git/_hooks_/post-receive-email on /srv/git/code.x2go.org/x2goserver.git



More information about the x2go-commits mailing list