Index: build/CD-administrator/CONF-squeeze-test-dvd.sh
===================================================================
--- build/CD-administrator/CONF-squeeze-test-dvd.sh	(Revision 73162)
+++ build/CD-administrator/CONF-squeeze-test-dvd.sh	(Arbeitskopie)
@@ -344,7 +344,7 @@
 
 # Parameters to pass to kernel (or d-i) when the CD boots. Not currently
 # supported for all architectures.
-export KERNEL_PARAMS="desktop=kde"
+export KERNEL_PARAMS=""
 
 # Default desktop (currently only used by win32-loader)
 export DESKTOP=kde
Index: build/CD-administrator/CONF-edu-testing-nolocal-dvd.sh
===================================================================
--- build/CD-administrator/CONF-edu-testing-nolocal-dvd.sh	(Revision 73162)
+++ build/CD-administrator/CONF-edu-testing-nolocal-dvd.sh	(Arbeitskopie)
@@ -335,7 +335,7 @@
 
 # Parameters to pass to kernel (or d-i) when the CD boots. Not currently
 # supported for all architectures.
-export KERNEL_PARAMS="desktop=kde"
+export KERNEL_PARAMS=""
 
 # Default desktop (currently only used by win32-loader)
 export DESKTOP=kde
Index: build/CD-administrator/CONF-edu-testing-nolocal-netinst.sh
===================================================================
--- build/CD-administrator/CONF-edu-testing-nolocal-netinst.sh	(Revision 73162)
+++ build/CD-administrator/CONF-edu-testing-nolocal-netinst.sh	(Arbeitskopie)
@@ -334,7 +334,7 @@
 
 # Parameters to pass to kernel (or d-i) when the CD boots. Not currently
 # supported for all architectures.
-export KERNEL_PARAMS="desktop=kde"
+export KERNEL_PARAMS=""
 
 # Default desktop (currently only used by win32-loader)
 export DESKTOP=kde
Index: build/CD-administrator/CONF-squeeze-test-amd64-i386-netinst.sh
===================================================================
--- build/CD-administrator/CONF-squeeze-test-amd64-i386-netinst.sh	(Revision 73162)
+++ build/CD-administrator/CONF-squeeze-test-amd64-i386-netinst.sh	(Arbeitskopie)
@@ -335,7 +335,7 @@
 
 # Parameters to pass to kernel (or d-i) when the CD boots. Not currently
 # supported for all architectures.
-export KERNEL_PARAMS="desktop=kde"
+export KERNEL_PARAMS=""
 
 # Default desktop (currently only used by win32-loader)
 export DESKTOP=kde
Index: debian-edu-install/debian/changelog
===================================================================
--- debian-edu-install/debian/changelog	(Revision 73162)
+++ debian-edu-install/debian/changelog	(Arbeitskopie)
@@ -2,6 +2,7 @@
 
   [ Mike Gabriel ]
   * Setting author in etckeeper's VCS (Closes: #617383)
+  * Adds a d-i selection screen for the default desktop environment.
 
  -- Petter Reinholdtsen <pere@debian.org>  Fri, 31 Dec 2010 10:32:23 +0100
 
Index: debian-edu-install/debian/rules
===================================================================
--- debian-edu-install/debian/rules	(Revision 73162)
+++ debian-edu-install/debian/rules	(Arbeitskopie)
@@ -57,6 +57,7 @@
 	$(MAKE) install-partman-recipes DESTDIR=$(CURDIR)/debian/debian-edu-profile-udeb
 	$(INSTALL_DATA) lib/partman/commit.d/* $(CURDIR)/debian/debian-edu-profile-udeb/lib/partman/commit.d
 	$(INSTALL) debian-edu-profile $(CURDIR)/debian/debian-edu-profile-udeb/usr/bin
+	$(INSTALL) debian-edu-desktop $(CURDIR)/debian/debian-edu-profile-udeb/usr/bin
 	touch $(CURDIR)/debian/debian-edu-profile-udeb/etc/uselvm
 	$(INSTALL_DATA) version $(CURDIR)/debian/debian-edu-profile-udeb/usr/lib/debian-edu-install/.
 
Index: debian-edu-install/debian/debian-edu-profile-udeb.templates
===================================================================
--- debian-edu-install/debian/debian-edu-profile-udeb.templates	(Revision 73162)
+++ debian-edu-install/debian/debian-edu-profile-udeb.templates	(Arbeitskopie)
@@ -5,8 +5,8 @@
 
 Template: debian-edu-install/profile
 Type: multiselect
-__Choices: Main Server, Workstation, Roaming Workstation, Thin Client Server, Standalone
-Choices-C: Main-Server, Workstation, Roaming-Workstation, Thin-Client-Server, Standalone
+__Choices: Main-Server, Workstation, Roaming-Workstation, Thin-Client-Server, Standalone, Minimal
+Choices-C: Main-Server, Workstation, Roaming-Workstation, Thin-Client-Server, Standalone, Minimal
 _Description: Profile(s) to apply to this machine:
  Profiles determine how the machine can be used out-of-the-box:
  .
@@ -23,15 +23,13 @@
   - Standalone:  for machines meant to be used outside the Debian Edu
                  network. It includes a GUI and conflicts with other
                  profiles.
+  - Minimal:     fully integrated into the Debian Edu network but
+                 contains only a basic system without any GUI.
 
 Template: debian-edu-install/profile-expert
 Type: multiselect
-#flag:translate!:7
-#__Choices: Main-Server, Workstation, Roaming-Workstation, Thin-Client-Server, Standalone, Minimal, Sugar
-__Choices: Main Server, Workstation, Roaming Workstation, Thin Client Server, Standalone, Minimal
+__Choices: Main-Server, Workstation, Roaming-Workstation, Thin-Client-Server, Standalone, Minimal
 Choices-C: Main-Server, Workstation, Roaming-Workstation, Thin-Client-Server, Standalone, Minimal
-#flag:comment:3
-## Translators, do not translate "Sugar"
 _Description: Profile(s) to apply to this machine:
  Profiles determine how the machine can be used out-of-the-box:
  .
@@ -50,10 +48,21 @@
                  profiles.
   - Minimal:     fully integrated into the Debian Edu network but
                  contains only a basic system without any GUI.
-#  - Sugar:       variant of 'Standalone' that includes the Sugar 
-#                 desktop environment which promotes sharing and 
-#                 collaborative learning for children.
 
+Template: debian-edu-install/desktop
+Type: select
+__Choices: KDE4, GNOME, LXDE, Sugar
+Choices-C: KDE4, GNOME, LXDE, Sugar
+_Description: Default desktop environment:
+ The desktop environment determines the look'n'feel of a Skolelinux workstation:
+ .
+  - KDE:    The K desktop environment is the Skolelinux's default
+            desktop environment.
+  - GNOME:  The GNOME desktop environment can be neat alternative
+  - LXDE:   LXDE is a very slim desktop environment that is recommended 
+            especially for Thin Client Servers
+  - Sugar:  The Sugar desktop environment promotes sharing and 
+            collaborative learning for children.
 Template: debian-edu-install/standalone_only
 Type: error
 _Description: Standalone profile cannot be used with other profiles
Index: debian-edu-install/preseed-values/defaults.desktop-kde
===================================================================
--- debian-edu-install/preseed-values/defaults.desktop-kde	(Revision 0)
+++ debian-edu-install/preseed-values/defaults.desktop-kde	(Revision 0)
@@ -0,0 +1,2 @@
+# Use kdm on KDE desktops
+kdm shared/default-x-display-manager select kdm
Index: debian-edu-install/preseed-values/defaults.desktop-gnome
===================================================================
--- debian-edu-install/preseed-values/defaults.desktop-gnome	(Revision 0)
+++ debian-edu-install/preseed-values/defaults.desktop-gnome	(Revision 0)
@@ -0,0 +1,2 @@
+# Use gdm on GNOME desktops
+gdm shared/default-x-display-manager select gdm
Index: debian-edu-install/preseed-values/defaults.desktop-lxde
===================================================================
--- debian-edu-install/preseed-values/defaults.desktop-lxde	(Revision 0)
+++ debian-edu-install/preseed-values/defaults.desktop-lxde	(Revision 0)
@@ -0,0 +1,2 @@
+# Use gdm on LXDE desktops
+gdm shared/default-x-display-manager select gdm
Index: debian-edu-install/preseed-values/defaults.workstation
===================================================================
--- debian-edu-install/preseed-values/defaults.workstation	(Revision 73162)
+++ debian-edu-install/preseed-values/defaults.workstation	(Arbeitskopie)
@@ -3,9 +3,6 @@
 # Do not create the CVS repository by default
 cvs cvs/badrepositories select ignore
 
-# Use kdm, not xdm or gdm
-kdm shared/default-x-display-manager select kdm
-
 # Use the keyboard setting from d-i when configuring Xorg
 xserver-org xserver-xorg/autodetect_keyboard boolean true
 
Index: debian-edu-install/preseed-values/defaults.standalone
===================================================================
--- debian-edu-install/preseed-values/defaults.standalone	(Revision 73162)
+++ debian-edu-install/preseed-values/defaults.standalone	(Arbeitskopie)
@@ -4,9 +4,6 @@
 # Do not create the CVS repository by default
 cvs cvs/badrepositories select ignore
 
-# Use kdm, not xdm or gdm
-kdm shared/default-x-display-manager select kdm
-
 # Make another user
 passwd passwd/make-user boolean true
 
Index: debian-edu-install/preseed-values/defaults.desktop-sugar
===================================================================
--- debian-edu-install/preseed-values/defaults.desktop-sugar	(Revision 0)
+++ debian-edu-install/preseed-values/defaults.desktop-sugar	(Revision 0)
@@ -0,0 +1,2 @@
+# Use gdm on SUGAR desktops
+gdm shared/default-x-display-manager select gdm
Index: debian-edu-install/debian-edu-profile
===================================================================
--- debian-edu-install/debian-edu-profile	(Revision 73162)
+++ debian-edu-install/debian-edu-profile	(Arbeitskopie)
@@ -1,5 +1,7 @@
 #!/bin/sh -e
 
+# FIXME: this script needs to be split into its components/steps (to make it easier to maintain)
+
 . /usr/share/debconf/confmodule
 . /lib/preseed/preseed.sh # for $logfile
 
@@ -139,10 +141,9 @@
 fi
 
 template="debian-edu-install/profile"
-# Show minimal profile by default as a test [pere 2010-11-05]
-#if [ true = "$expert" ] ; then
+if [ true = "$expert" ] ; then
     template="debian-edu-install/profile-expert"
-#fi
+fi
 
 preseedfile=/tmp/debian-edu-preseed.$$
 touch $preseedfile
@@ -506,9 +507,6 @@
     db_set "apt-setup/local0/key" "http://ftp.skolelinux.org/pub/debian-edu-archive.key" || true
 fi
 
-
-
-
 log "Preseeding"
 
 if [ "$EDUPROFILE" ] ; then
@@ -545,6 +543,9 @@
     fi
 done
 
+# ask which desktop to install...
+debian-edu-desktop
+
 # Enable the firstboot script to report installation errors.  Preseeded
 # here and not in defaults.common to make sure it only is set on first time
 # installation using debian-installer.  Checking the seen flag to allow
@@ -564,7 +565,7 @@
 touch $logfile # Create if missing, to make sure >> work
 cat $preseedfile >> $logfile
 
-# rm $preseedfile
+rm $preseedfile
 
 # Make sure that the kernel question doesn't show up.  Can not use
 # preseeding directly, as these values are not loaded yet when this
Index: debian-edu-install/debian-edu-desktop
===================================================================
--- debian-edu-install/debian-edu-desktop	(Revision 0)
+++ debian-edu-install/debian-edu-desktop	(Revision 0)
@@ -0,0 +1,85 @@
+#!/bin/sh -e
+
+. /usr/share/debconf/confmodule
+. /lib/preseed/preseed.sh # for $logfile
+
+log() {
+    logger -t debian-edu-desktop "info: $*"
+}
+
+error() {
+    logger -t debian-edu-desktop "error: $*"
+}
+
+add_preseed() {
+    owner="$1"
+    template="$2"
+    type="$3"
+    value="$4"
+    echo $owner $template $type "$value" >> $preseedfile
+}
+
+EDUDESKTOP=""
+if grep -iq 'desktop=sugar' /proc/cmdline ; then
+   EDUDESKTOP="sugar"
+elif grep -iq 'desktop=lxde' /proc/cmdline ; then
+   EDUDESKTOP="lxde"
+elif grep -iq 'desktop=gnome' /proc/cmdline ; then
+   EDUDESKTOP="gnome"
+elif grep -iq 'desktop=kde' /proc/cmdline ; then
+   EDUDESKTOP="kde"
+fi
+
+template="debian-edu-install/desktop"
+preseedfile=/tmp/debian-edu-preseed.$$
+touch $preseedfile
+
+[ "$EDUDESKTOP" ] && db_set "$template" "$EDUDESKTOP"
+
+#ask desktop question
+log "choosing desktop to be installed"
+
+RET="$EDUDESKTOP"
+looplimit="xxx"
+loopcount=""
+
+while test -z "$RET" ; do
+    db_input critical "$template"  || [ $? -eq 30 ]
+    db_go || true
+    db_fset "$template" seen false || true
+
+    db_get "$template" || true
+    loopcount="x$loopcount"
+    if test "$loopcount" = "$looplimit" ; then
+	exit 1;
+    fi
+done
+EDUDESKTOP=$RET
+log "desktop to be installed is '$EDUDESKTOP', loopcount='$loopcount'"
+
+if [ "$EDUDESKTOP" ] ; then
+   log "Preseeding target with '$EDUPROFILE'"
+   add_preseed debian-edu-install debian-edu-install/desktop select "$EDUDESKTOP"
+else
+   log "No desktop to preseed"
+fi
+
+if [ -f /usr/lib/debian-edu-install/defaults.desktop-$EDUDESKTOP ] ; then
+        log "Found preseeding for desktop-$EDUDESKTOP"
+        cat /usr/lib/debian-edu-install/defaults.desktop-$EDUDESKTOP >> $preseedfile
+    else
+        error "Unable to find preseeding for 'desktop-$EDUDESKTOP'"
+    fi
+done
+
+# Load into the cdebconf database used by d-i
+debconf-set-selections $preseedfile || \
+    error "Failed to load preseed values from $preseedfile"
+
+# Get the post-base-installer.d fragment from preseed to pass relevant
+# values into the debconf database in /target when the base system is
+# installed.
+touch $logfile # Create if missing, to make sure >> work
+cat $preseedfile >> $logfile
+
+rm $preseedfile

Eigenschaftsänderungen: debian-edu-install/debian-edu-desktop
___________________________________________________________________
Hinzugefügt: svn:executable
   + *
