diff --git a/debian/changelog b/debian/changelog index b9b69526..9a5ec310 100644 --- a/debian/changelog +++ b/debian/changelog @@ -1,3 +1,10 @@ +tasksel (2.64) UNRELEASED; urgency=low + + * Correct a bug that caused hidden enhancing tasks to be marked for install + if they enhanced no available tasks. + + -- Joey Hess Fri, 12 Jan 2007 17:38:02 -0500 + tasksel (2.63) unstable; urgency=emergency * Switch database-server to use postgres 8.1. (See #406399) diff --git a/tasksel.pl b/tasksel.pl index 68ade064..20dc2374 100755 --- a/tasksel.pl +++ b/tasksel.pl @@ -520,15 +520,19 @@ sub main { } foreach my $task (grep { ! $_->{_install} && exists $_->{enhances} && length $_->{enhances} } @tasks) { - # Mark enhancing tasks for install if their - # dependencies are met and if their test fields - # mark them for install. - task_test($task, $options{"new-install"}, 0, 1); - foreach my $dep (list_to_tasks($task->{enhances}, @tasks)) { - if (! $dep->{_install}) { - $task->{_install} = 0; + my @deps=list_to_tasks($task->{enhances}, @tasks); + if (@deps) { + # Mark enhancing tasks for install if their + # dependencies are met and if their test fields + # mark them for install. + task_test($task, $options{"new-install"}, 0, 1); + foreach my $dep (@deps) { + if (! $dep->{_install}) { + $task->{_install} = 0; + } } } + # If two enhancing tasks that both provide # the same thing, only install one of them. if ($task->{_install} && exists $task->{provides} &&