From matthew.l.dailey@dartmouth.edu  Fri Jan 18 18:16:08 2013
Received: (at submit) by bugs.x2go.org; 18 Jan 2013 17:16:08 +0000
Received: from mailhub1.dartmouth.edu (mailhub1.dartmouth.edu [129.170.16.122])
	by ymir (Postfix) with ESMTPS id A4D045DB18
	for <submit@bugs.x2go.org>; Fri, 18 Jan 2013 18:16:07 +0100 (CET)
Received: from schultz.kiewit.dartmouth.edu (Schultz.Kiewit.dartmouth.edu [129.170.70.6])
	(authenticated bits=0)
	by mailhub1.dartmouth.edu (8.13.5/DND2.0/8.13.5) with ESMTP id r0IHFuYS009592
	(version=TLSv1/SSLv3 cipher=AES128-SHA bits=128 verify=NO)
	for <submit@bugs.x2go.org>; Fri, 18 Jan 2013 12:15:56 -0500
From: "Matthew L. Dailey" <matthew.l.dailey@dartmouth.edu>
Content-Type: multipart/mixed; boundary="Apple-Mail=_D3332E29-F29A-4CCF-91C2-D305D5522E4D"
Subject: Logic errors in x2goruncommand
Message-Id: <7AD4B654-3C34-40A2-8C95-C370F80A20AC@dartmouth.edu>
Date: Fri, 18 Jan 2013 12:15:56 -0500
To: submit@bugs.x2go.org
Mime-Version: 1.0 (Mac OS X Mail 6.2 \(1499\))
X-Mailer: Apple Mail (2.1499)
X-MailScanner: Found to be clean by mailhub1.dartmouth.edu
X-MailScanner-From: matthew.l.dailey@dartmouth.edu


--Apple-Mail=_D3332E29-F29A-4CCF-91C2-D305D5522E4D
Content-Transfer-Encoding: quoted-printable
Content-Type: text/plain;
	charset=us-ascii

Package: x2goserver
Version: 4.1.0.0

Greetings.

In working on a deployment of X2Go on some Ubuntu machines, I found some =
logic errors in the x2goruncommand script that cased it not to determine =
the proper session to run for Gnome or Unity on Ubuntu 12.04 (and =
probably others). In essence, the script was testing the return code of =
bc, rather than the actual answer (1 or 0) to the boolean question being =
passed to it.

Here is a patch (also attached) that fixes this problem and I can verify =
that this works on at least Ubuntu 12.04 systems. I don't have any =
others I can easily test on. I'm not crazy about the quotes both outside =
and inside $(), but I think it should be okay. Perhaps a more adept bash =
programmer might have a better suggestion. :-)

Thanks for your attention and please let me know if you have any =
questions or need any other information. And, thanks for your hard work =
on this terrific project!

--=20
Matthew L. Dailey
Systems Administrator
Thayer School of Engineering
Dartmouth College

--- x2goruncommand.orig	2012-12-30 16:49:03.000000000 -0500
+++ x2goruncommand	2013-01-15 16:45:33.623393451 -0500
@@ -91,13 +91,13 @@
 if [ "$cmd" =3D=3D "GNOME" ] || [ "$cmd" =3D=3D "gnome-session" ]; then
=20
 	cmd=3D"/usr/bin/gnome-session"
-	if [ "$DISTRIB_ID" =3D=3D "Ubuntu" ] && $(echo "$DISTRIB_RELEASE =
>=3D 11.10" | bc); then
+	if [ "$DISTRIB_ID" =3D=3D "Ubuntu" ] && [ "$(echo =
"$DISTRIB_RELEASE >=3D 11.10" | bc)" =3D=3D "1" ]; then
 		export DESKTOP_SESSION=3D"gnome-fallback"
 		args=3D" --session=3D$DESKTOP_SESSION"
-	elif [ "$DISTRIB_ID" =3D=3D "Ubuntu" ] && $(echo =
"$DISTRIB_RELEASE =3D=3D 11.04" | bc); then
+	elif [ "$DISTRIB_ID" =3D=3D "Ubuntu" ] && [ "$(echo =
"$DISTRIB_RELEASE =3D=3D 11.04" | bc)" =3D=3D "1" ]; then
 		export DESKTOP_SESSION=3D"2d-gnome"
 		args=3D" --session=3D$DESKTOP_SESSION"
-	elif [ "$DISTRIB_ID" =3D=3D "Ubuntu" ] && $(echo =
"$DISTRIB_RELEASE <=3D 10.10" | bc); then
+	elif [ "$DISTRIB_ID" =3D=3D "Ubuntu" ] && [ "$(echo =
"$DISTRIB_RELEASE <=3D 10.10" | bc)" =3D=3D "1" ]; then
 		export DESKTOP_SESSION=3D"gnome"
 	elif cat /etc/debian_version | egrep "^(squeeze|6\.).*" =
>/dev/null; then
 		export DESKTOP_SESSION=3D"gnome"
@@ -108,13 +108,13 @@
=20
 elif ([ "$cmd" =3D=3D "UNITY" ] || [ "$cmd" =3D=3D "unity" ]); then
 	cmd=3D"/usr/bin/gnome-session"
-	if [ "$DISTRIB_ID" =3D=3D "Ubuntu" ] && $(echo =
"$DISTRIB_RELEASE" >=3D 12.10 | bc); then
+	if [ "$DISTRIB_ID" =3D=3D "Ubuntu" ] && [ "$(echo =
"$DISTRIB_RELEASE >=3D 12.10" | bc)" =3D=3D "1" ]; then
 		export DESKTOP_SESSION=3D"ubuntu"
 		args=3D" --session=3D$DESKTOP_SESSION"
-	elif [ "$DISTRIB_ID" =3D=3D "Ubuntu" ] && [ $(echo =
"$DISTRIB_RELEASE" =3D=3D 11.10 | bc) || $(echo $DISTRIB_RELEASE =3D=3D =
12.04 | bc) ]; then
+	elif [ "$DISTRIB_ID" =3D=3D "Ubuntu" ] && [ "$(echo =
"$DISTRIB_RELEASE =3D=3D 11.10" | bc)" =3D=3D "1" -o "$(echo =
"$DISTRIB_RELEASE =3D=3D 12.04" | bc)" =3D=3D "1" ]; then
 		export DESKTOP_SESSION=3D"ubuntu-2d"
 		args=3D" --session=3D$DESKTOP_SESSION"
-	elif [ "$DISTRIB_ID" =3D=3D "Ubuntu" ] && $(echo =
"$DISTRIB_RELEASE" =3D=3D 11.04 | bc); then
+	elif [ "$DISTRIB_ID" =3D=3D "Ubuntu" ] && [ "$(echo =
"$DISTRIB_RELEASE =3D=3D 11.04" | bc)" =3D=3D "1" ]; then
 		export DESKTOP_SESSION=3D"2d-ubuntu"
 		args=3D" --session=3D$DESKTOP_SESSION"
 	fi


--Apple-Mail=_D3332E29-F29A-4CCF-91C2-D305D5522E4D
Content-Disposition: attachment;
	filename=x2goruncommand.patch
Content-Type: application/octet-stream;
	name="x2goruncommand.patch"
Content-Transfer-Encoding: 7bit

--- x2goruncommand.orig	2012-12-30 16:49:03.000000000 -0500
+++ x2goruncommand	2013-01-15 16:45:33.623393451 -0500
@@ -91,13 +91,13 @@
 if [ "$cmd" == "GNOME" ] || [ "$cmd" == "gnome-session" ]; then
 
 	cmd="/usr/bin/gnome-session"
-	if [ "$DISTRIB_ID" == "Ubuntu" ] && $(echo "$DISTRIB_RELEASE >= 11.10" | bc); then
+	if [ "$DISTRIB_ID" == "Ubuntu" ] && [ "$(echo "$DISTRIB_RELEASE >= 11.10" | bc)" == "1" ]; then
 		export DESKTOP_SESSION="gnome-fallback"
 		args=" --session=$DESKTOP_SESSION"
-	elif [ "$DISTRIB_ID" == "Ubuntu" ] && $(echo "$DISTRIB_RELEASE == 11.04" | bc); then
+	elif [ "$DISTRIB_ID" == "Ubuntu" ] && [ "$(echo "$DISTRIB_RELEASE == 11.04" | bc)" == "1" ]; then
 		export DESKTOP_SESSION="2d-gnome"
 		args=" --session=$DESKTOP_SESSION"
-	elif [ "$DISTRIB_ID" == "Ubuntu" ] && $(echo "$DISTRIB_RELEASE <= 10.10" | bc); then
+	elif [ "$DISTRIB_ID" == "Ubuntu" ] && [ "$(echo "$DISTRIB_RELEASE <= 10.10" | bc)" == "1" ]; then
 		export DESKTOP_SESSION="gnome"
 	elif cat /etc/debian_version | egrep "^(squeeze|6\.).*" >/dev/null; then
 		export DESKTOP_SESSION="gnome"
@@ -108,13 +108,13 @@
 
 elif ([ "$cmd" == "UNITY" ] || [ "$cmd" == "unity" ]); then
 	cmd="/usr/bin/gnome-session"
-	if [ "$DISTRIB_ID" == "Ubuntu" ] && $(echo "$DISTRIB_RELEASE" >= 12.10 | bc); then
+	if [ "$DISTRIB_ID" == "Ubuntu" ] && [ "$(echo "$DISTRIB_RELEASE >= 12.10" | bc)" == "1" ]; then
 		export DESKTOP_SESSION="ubuntu"
 		args=" --session=$DESKTOP_SESSION"
-	elif [ "$DISTRIB_ID" == "Ubuntu" ] && [ $(echo "$DISTRIB_RELEASE" == 11.10 | bc) || $(echo $DISTRIB_RELEASE == 12.04 | bc) ]; then
+	elif [ "$DISTRIB_ID" == "Ubuntu" ] && [ "$(echo "$DISTRIB_RELEASE == 11.10" | bc)" == "1" -o "$(echo "$DISTRIB_RELEASE == 12.04" | bc)" == "1" ]; then
 		export DESKTOP_SESSION="ubuntu-2d"
 		args=" --session=$DESKTOP_SESSION"
-	elif [ "$DISTRIB_ID" == "Ubuntu" ] && $(echo "$DISTRIB_RELEASE" == 11.04 | bc); then
+	elif [ "$DISTRIB_ID" == "Ubuntu" ] && [ "$(echo "$DISTRIB_RELEASE == 11.04" | bc)" == "1" ]; then
 		export DESKTOP_SESSION="2d-ubuntu"
 		args=" --session=$DESKTOP_SESSION"
 	fi

--Apple-Mail=_D3332E29-F29A-4CCF-91C2-D305D5522E4D
Content-Transfer-Encoding: 7bit
Content-Type: text/plain;
	charset=us-ascii



--Apple-Mail=_D3332E29-F29A-4CCF-91C2-D305D5522E4D--
