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

Bug#591978: patch



Attached patch works, for post-squeeze application.

-- 
see shy jo
From 6a3b4d36717919d6a5cbdf67f9d5ebb293cd7a5d Mon Sep 17 00:00:00 2001
From: Joey Hess <joey@kitenet.net>
Date: Mon, 6 Dec 2010 16:44:22 -0400
Subject: [PATCH] make tasksel install $foo-desktop not pull in gnome-desktop

---
 debian/templates        |    2 +-
 tasksel.pl              |    6 +++++-
 tests/preferred-desktop |   12 +++++++++++-
 3 files changed, 17 insertions(+), 3 deletions(-)

diff --git a/debian/templates b/debian/templates
index 9c3fcaf..f2c150d 100644
--- a/debian/templates
+++ b/debian/templates
@@ -17,7 +17,7 @@ _Description: Choose software to install:
 
 Template: tasksel/desktop
 Type: multiselect
-Choices: gnome, kde, xfce
+Choices: gnome, kde, xfce, lxde
 Default: gnome
 Description: The desktop environment to install when the desktop task is selected
  This can be preseeded to change the default.
diff --git a/tasksel.pl b/tasksel.pl
index dbc57f8..885c96e 100755
--- a/tasksel.pl
+++ b/tasksel.pl
@@ -540,7 +540,11 @@ sub main {
 				# dependencies are met and their test fields
 				# mark them for install.
 				if (! exists $tested{$task->{task}}) {
-					$ENV{TESTING_ENHANCER}=1;
+					$ENV{TESTING_ENHANCER}=join(" ",
+						map { $_->{task} }
+						grep { $_->{_install} && exists $_->{enhances} && length $_->{enhances} }
+						@tasks
+					);
 					task_test($task, $options{"new-install"}, 0, 1);
 					delete $ENV{TESTING_ENHANCER};
 					$tested{$task->{task}}=$task->{_install};
diff --git a/tests/preferred-desktop b/tests/preferred-desktop
index f3d14fb..f729d46 100755
--- a/tests/preferred-desktop
+++ b/tests/preferred-desktop
@@ -5,13 +5,23 @@ set -e
 
 # Avoid starting debconf if not being used to test which enhancing task to
 # install.
-if [ ! "$TESTING_ENHANCER" ]; then
+if [ -z "$TESTING_ENHANCER" ]; then
 	exit 1
 fi
 
 . /usr/share/debconf/confmodule
 
 if db_get "tasksel/desktop" && echo "$RET" | grep -q "$2"; then
+	# Avoid selecting a desktop environment if another is already
+	# going to be installed (perhaps it was selected at the command
+	# line).
+	if db_metaget "tasksel/desktop" Choices; then
+		for desktop in $RET; do
+			if echo " $TESTING_ENHANCER " | grep -q " $desktop-desktop "; then
+				exit 1
+			fi
+		done
+	fi
 	exit 0
 else
 	exit 1
-- 
1.7.2.3

Attachment: signature.asc
Description: Digital signature


Reply to: