Comment 21 for bug 150252

Revision history for this message
Colin Watson (cjwatson) wrote : Re: [Bug 150252] Re: [master] tasksel removes all Ubuntu-desktop dependencies without confirmation dialog

On Wed, Mar 25, 2009 at 04:43:12AM -0000, Anon Sricharoenchai wrote:
> Why is it difficult to maintain?
> Just put the final (leaf) packages in the task, for example,
> lamp task could only consist of,
>
> apache, mysql-server, php,
>
> rather than,
>
> apache, apache-common, mysql-server, mysql-common, libmysql, ...
>
> Is there any problem with this approach?

Yes, it wouldn't work for Ubuntu. We don't maintain our task data by
hand like this; we maintain it automatically using the output of
germinate, which expands out dependencies very carefully taking a number
of things into account. For example, packages that are explicitly part
of "inner" seeds such as the base system are installed preferentially.

If you only put the root packages in the task, then you would rely on
tasksel expanding out dependencies in the "correct" way. It wouldn't
just be able to feed them to apt as some of these situations are very
complex, especially when virtual packages are involved and we have to
choose which Provides to pick, and apt's dependency resolver doesn't
always get these "right" (where "right" is defined as "matching the
current behaviour" since we're pretty happy with the current output)
without help. Task expansion would no longer be the role of a single
program (germinate) but instead would be spread across several wobbly
piles of software; the net result would be that Ubuntu's tasks would
become more fragile and harder for us to maintain, for no added value to
users.

Feel free to continue this discussion on a mailing list such as
<email address hidden>. It is not relevant to this bug
report, because the bug has already been fixed in a different way.