[master] tasksel removes all Ubuntu-desktop dependencies without confirmation dialog
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
tasksel (Ubuntu) |
Fix Released
|
High
|
Colin Watson | ||
Hardy |
Fix Released
|
High
|
Colin Watson | ||
Intrepid |
Fix Released
|
High
|
Colin Watson | ||
Jaunty |
Fix Released
|
High
|
Colin Watson |
Bug Description
When removing tasks, tasksel simply removes all packages listed for that task. This fails badly in some cases because many tasks have substantial overlap, so removing one task can inadvertently take out others. This is compounded because sometimes tasksel believes that a task is to be removed when it isn't, particularly when tasks share key packages.
I fixed this in tasksel 2.73ubuntu17 in Jaunty, with a further performance optimisation in 2.73ubuntu18. I'm proposing this pair of changes as stable updates. Here are the changes made in Jaunty:
http://
http://
Here are the changes for hardy-proposed and intrepid-proposed. Note that I'm fixing bug 236257 at the same time because it contributes to this problem: the clashing descriptions can make tasksel incorrectly believe that one or the other task is to be removed.
http://
TEST CASE: On Hardy, an easy way to verify this is to install the mail-server and print-server tasks, and then use 'sudo tasksel -t' to test removal of just one of those tasks; the openssl package is common to both, so if this bug is present then it will be removed even if you only remove one of mail-server or print-server. On Intrepid, you can conduct the same test by installing the openssh-server and virt-host tasks; the openssh-server package is common to both. I would recommend also conducting a test similar to that in the original report, namely on a system with the ubuntu-desktop task installed; try installing and removing tasks with 'sudo tasksel -t' and make sure that the commands produced are reasonable representations of what you asked for.
I can't think of a great deal in the way of regression potential outside the scope of things that will be tested as part of verifying this update. tasksel is not all that widely used outside initial installation.
Changed in tasksel: | |
importance: | Undecided → High |
Changed in tasksel: | |
status: | Confirmed → Triaged |
Changed in tasksel: | |
milestone: | none → intrepid-updates |
Changed in tasksel: | |
assignee: | nobody → kamion |
Changed in tasksel (Ubuntu Jaunty): | |
milestone: | intrepid-updates → none |
status: | Triaged → In Progress |
Changed in tasksel (Ubuntu Hardy): | |
assignee: | nobody → cjwatson |
importance: | Undecided → High |
milestone: | none → ubuntu-8.04.3 |
status: | New → Triaged |
Changed in tasksel (Ubuntu Intrepid): | |
assignee: | nobody → cjwatson |
importance: | Undecided → High |
milestone: | none → intrepid-updates |
status: | New → Triaged |
description: | updated |
tags: |
added: verification-done removed: verification-needed |
I can confirm this as it almost just happened to me (I hit ctl-c quick enough that I only lost 6 packages).
My test case:
sudo tasksel
select LAMP
deselect ubuntu-desktop, and print server (why? because it asks "what do you want to install" not "what do you want to install and also keep installed")
proceed, lose your desktop.