[Pkg-ltsp-devel] Bug#490897 closed by Vagrant Cascadian <vagrant at freegeek.org> (Bug#490897: fixed in ldm 2:2.0.9-1)

Daniel Nilsson daniel at dnil.se
Wed Aug 13 19:34:03 UTC 2008


On Fri, Aug 08, 2008 at 02:59:57PM -0700, Vagrant Cascadian wrote:
> i don't plan on making any more etch backports unless it's likely to be
> a version that will end up in lenny, which hopefully will be released in
> 2-4 months. then i'll start maintaining backports for lenny, if needed.
> 
> you could try and build the version from experimental version on etch
> and see how it works, the etch-backport version only required a single
> patch to the version in lenny, hopefully even that may no longer be
> needed (and was only needed for autologin/guestlogin anyways).

Ok, I build ldm 2:2.0.9-1 on etch but that does require a patch since
ldm 2.0.9 depens on Glib function introduced on Glib 2.14 which is now
on etch:

--- ldm-2.0.9.orig/src/greeter_iface.c
+++ ldm-2.0.9/src/greeter_iface.c
@@ -12,6 +12,7 @@
 #include <stdlib.h>
 #include <stdarg.h>
 #include <unistd.h>
+#include <regex.h>
 #include <syslog.h>
 #include <string.h>
 #include <sys/wait.h>
@@ -27,7 +28,7 @@
     gchar *isguest;
     gint l, t;
     gboolean empty;
-
+    regex_t regex;
     empty = TRUE;

     while(empty) {
@@ -54,7 +55,18 @@
                 return 1;
             }
             ldm.username[t] = '\0';
-            empty = g_regex_match_simple("^\\s*$", ldm.username, 0, 0);
+
+           // This depends on Glib 2.14 which is not available on etch
+           // empty = g_regex_match_simple("^\\s*$", ldm.username, 0, 0);
+
+           //libc version
+           regcomp(&regex, "^\\s*$",0);
+           if (regexec(&regex, ldm.username, 0, NULL ,0)) {
+             empty=FALSE;
+           } else {
+             empty=TRUE;
+           }
+
         }
         g_free(isguest);
         g_free(prompt);

However, this still does not allow me to login as a user that is using
a tcsh on the server. I tracked the issue to the ssh command issued by
ldm, this is still assuming that the ssh command will start a bourne 
shell on the server. Using the env command however seems to work, 
though I have not done extensive testing.

--- ldm-2.0.9.orig/src/ldm.c
+++ ldm-2.0.9/src/ldm.c
@@ -268,7 +268,7 @@
      * FIXME: ditch the kill -1 and use ssh -o exit on the control socket
      */
     command = g_strjoin(" ", "ssh", "-Y", "-t", "-S", ldm.control_socket,
-            "-l", ldm.username, ldm.server, client_env,
+            "-l", ldm.username, ldm.server, "env" ,client_env,
             lang ? lang : "", display ? display : "", sound ? sound : "",
             ldm.session, localdev ? localdev : "",
             "; kill -1 $PPID", NULL);

But you are saying that you were able to login using ldm-2.0.9 without
the above patch? This issue seems clear to me (and can be seen in the
ldm.log file as well), ldm issues a command of the form
LTSP_CLIENT=192.168.1.1 DISPLAY=192.168.1.5 /etc/X11/Xsession to the
LTSP server as the user who is trying to login in. This is fine for
bash, but will fail on tcsh.

Regards
-- 
Daniel Nilsson



More information about the Pkg-ltsp-devel mailing list