[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Stable update proposal: ltsp 0.99debian12+0.0.edu.etch.8



Ref item 9 on <URL:http://wiki.debian.org/DebianEdu/Meeting/20070813>,
here is a update proposal for the stable release.

I propose to update the version of ltsp in the stable repository from
0.99debian12+0.0.edu.etch.7 to 0.99debian12+0.0.edu.etch.8.  It add
support for load balancing and hopefully make it easier to get the
live DVD images working for thin client servers, as well as trying to
work around a minor bug in the installer.

Here is the diff -r output between the two versions:

diff -ru ltsp-0.99debian12+0.0.edu.etch.7/debian/changelog ltsp-0.99debian12+0.0.edu.etch.8/debian/changelog
--- ltsp-0.99debian12+0.0.edu.etch.7/debian/changelog   2007-07-05 10:35:39.000000000 +0200
+++ ltsp-0.99debian12+0.0.edu.etch.8/debian/changelog   2007-10-21 05:13:36.000000000 +0200
@@ -1,3 +1,26 @@
+ltsp (0.99debian12+0.0.edu.etch.8) terra; urgency=low
+
+  [ Petter Reinholdtsen ]
+  * Backport feature from ldm2, add support for listing several LDM
+    servers in $LDM_SERVER as the primary source, running
+    /usr/lib/ltsp/get_hosts on the client to select servers if it
+    exist, and finally fall back to $SERVER.  Pick a random entry from
+    LDM_SERVER_LIST for load balancing instead of picking the first
+    like ldm2.
+
+  * Change ltsp-server dependency to list nfs-user-server as an
+    alternative to nfs-kernel-server, making it easier to get LTSP
+    working on live CDs using unionfs.
+
+  [ Vagrant Cascadian ]
+  * drop Debian-Edu ldm theme, it is now handled in debian-edu-artwork
+
+  [ Ronny Aasen ]
+  * ltsp-client-builder: work around bug in cdebconf by logging output between
+    db_progress calls
+
+ -- Vagrant Cascadian <vagrant@freegeek.org>  Sat, 20 Oct 2007 20:09:07 -0700
+
 ltsp (0.99debian12+0.0.edu.etch.7) terra; urgency=low

   * patch for unencrypted LDM sessions
diff -ru ltsp-0.99debian12+0.0.edu.etch.7/client/ldm ltsp-0.99debian12+0.0.edu.etch.8/client/ldm
--- ltsp-0.99debian12+0.0.edu.etch.7/client/ldm 2007-07-05 10:35:39.000000000 +0200
+++ ltsp-0.99debian12+0.0.edu.etch.8/client/ldm 2007-10-21 05:13:35.000000000 +0200
@@ -10,6 +10,7 @@
 import struct
 import fcntl
 import tempfile
+import random

 def get_config(name):
     return os.environ.get(name)
@@ -33,11 +34,47 @@
         struct.pack('256s', ifname[:15])
     )[20:24])

+# Parse config variable, split on space and return random element from
+# the list
+def get_config_array_rand(name):
+    s = get_config(name)
+    if s:
+        return random.choice(s.split(" "))
+    return
+
+def exec_get_output(cmd):
+    output = []
+    retlist = []
+    child_stdin, child_stdout, child_stderr = os.popen3(cmd)
+    output = child_stdout.readlines()
+    if not output:
+        return
+    for line in output:
+        line = line.rstrip()
+        retlist.append( line )
+    return retlist
+
+# Return the server to use.  Run '/usr/lib/ltsp/get_hosts' to get the
+# list of servers if it exist and pick the first, unless LDM_SERVER
+# exist, use that instead and pick a random, and if that is empty, use
+# SERVER.  This make ldm more compatible with ldm2.
+def get_config_server():
+    server = get_config_array_rand('LDM_SERVER')
+    if server:
+        return server
+    try:
+        dynlist = exec_get_output('/usr/lib/ltsp/get_hosts')
+        if dynlist and dynlist[0]:
+            print 'Selecting output from get_hosts'
+            return dynlist[0]
+    except IOError: # Hm, is this the right exception?
+        print 'Did not find /usr/lib/ltsp/get_hosts'
+    return get_config('SERVER')
+
 class LDM:
     def __init__(self, vt, display):
         self.vt = vt
         self.display = display
-        self.server = get_config('SERVER')
         self.use_xfs = get_config_bool('USE_XFS')
         self.use_sound = get_config_bool('SOUND')
         self.use_localdev = get_config_bool('LOCALDEV')
@@ -49,11 +86,6 @@
             self.ip = get_ip('eth0')
             self.sound_daemon = get_config('SOUND_DAEMON') or 'esd'

-        if self.use_xfs:
-            xfs_server = get_config('XFS_SERVER') or self.server
-            self.fontpath = "tcp/%s:7100" % xfs_server
-
-
         # Save xauth info some writable tmpfs file.
         self.authfile = tempfile.mktemp()

@@ -66,9 +98,18 @@
         os.dup2(logfile.fileno(), sys.stderr.fileno())

         while True:
+            # Get the server info every time the X server start, it
+            # might change between calls.  Fetching it here and not on
+            # every login, to make sure the xfs font server is the
+            # same as the login server.
+            self.server = get_config_server()
+            print "Selected '%s' as the LDM server" % self.server
+
             server_opts = ['-br', '-ac', '-noreset']

             if self.use_xfs:
+                xfs_server = get_config('XFS_SERVER') or self.server
+                self.fontpath = "tcp/%s:7100" % xfs_server
                 server_opts += ['-fp', self.fontpath]

             server_command = ['X', '-auth', self.authfile] + server_opts + [self.vt, self.display]
Only in ltsp-0.99debian12+0.0.edu.etch.7/client/themes: Debian-Edu
diff -ru ltsp-0.99debian12+0.0.edu.etch.7/debian/control ltsp-0.99debian12+0.0.edu.etch.8/debian/control
--- ltsp-0.99debian12+0.0.edu.etch.7/debian/control     2007-07-05 10:35:39.000000000 +0200
+++ ltsp-0.99debian12+0.0.edu.etch.8/debian/control     2007-10-21 05:13:36.000000000 +0200
@@ -7,7 +7,7 @@
 Standards-Version: 3.7.2

 Package: ltsp-server
-Depends: ${misc:Depends}, debootstrap, nfs-kernel-server, lsb-release, tftpd-hpa | atftpd, openssh-client | ssh, iproute, debconf-utils, esound-clients | nas-bin, python (>= 2.4), openbsd-inetd | inet-superserver, update-inetd, tcpd, gettext-base
+Depends: ${misc:Depends}, debootstrap, nfs-kernel-server | nfs-user-server, lsb-release, tftpd-hpa | atftpd, openssh-client | ssh, iproute, debconf-utils, esound-clients | nas-bin, python (>= 2.4), openbsd-inetd | inet-superserver, update-inetd, tcpd, gettext-base
 Recommends: openssh-server | ssh, nbd-server
 Suggests: dhcp3-server, sdm, audiooss
 Conflicts: ltsp-utils
diff -ru ltsp-0.99debian12+0.0.edu.etch.7/debian/ldm.postinst ltsp-0.99debian12+0.0.edu.etch.8/debian/ldm.postinst
--- ltsp-0.99debian12+0.0.edu.etch.7/debian/ldm.postinst        2007-07-05 10:35:39.000000000 +0200
+++ ltsp-0.99debian12+0.0.edu.etch.8/debian/ldm.postinst        2007-10-21 05:13:37.000000000 +0200
@@ -22,9 +22,6 @@
        update-alternatives \
                --install /usr/share/ldm/themes/default \
                ldm-theme /usr/share/ldm/themes/Edubuntu 35
-       update-alternatives \
-               --install /usr/share/ldm/themes/default \
-               ldm-theme /usr/share/ldm/themes/Debian-Edu 50
        ;;

     abort-upgrade|abort-remove|abort-deconfigure)
diff -ru ltsp-0.99debian12+0.0.edu.etch.7/debian/ltsp-client-builder.postinst ltsp-0.99debian12+0.0.edu.etch.8/debian/ltsp-client-builder.postinst
--- ltsp-0.99debian12+0.0.edu.etch.7/debian/ltsp-client-builder.postinst        2007-07-05 10:35:39.000000000 +0200
+++ ltsp-0.99debian12+0.0.edu.etch.8/debian/ltsp-client-builder.postinst        2007-10-21 05:13:37.000000000 +0200
@@ -55,7 +55,7 @@
 in-target /usr/sbin/ltsp-build-client $BUILD_CLIENT_OPTS

 db_progress STEP 1
-
+log "Finished"
 db_progress STOP

 exit 0



Reply to: