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

Metapackages - What to do with them? (was: debian-ctte Re: Bug#688772: gnome Depends network-manager-gnome)



I am posting this on -devel because I think that it rather belongs here than
in the context of #681834 and the discussion in -ctte

On Sat, Oct 06, 2012 at 09:41 +0200, Josselin Mouette wrote:
> Le vendredi 05 octobre 2012 à 22:07 -0600, Bdale Garbee a écrit : 
> > I personally believe that metapackages should be primarily populated
> > with Recommends, with Depends largely reserved for actual technical
> > dependencies between real packages.

I would like to point you to the last time this suggestion was discussed in
debian-devel [0] as it contains a number of arguments that might otherwise go
unnoticed.

Unfortunately this issue/thread is an amalgamation of a number of
independent issues and it might make sense to discuss them independently. I
can easily make out the following:

    1. Is the action to change the network manager dependency in the gnome
       metapackage in the spirit of the CTTE resolution?

    2. What is the relation between GNOME and network manager (NM). How
       tightly do they *need* to be coupled and what are the
       technical/usability implications of using GNOME without it.

    3. Interoperability of NM with other network configuration
       mechanisms/tools such as /etc/network/interfaces, wicd, manual
       configuration, ... and in particular bugs therein. (i.e. What happens
       if NM gets installed even though the administrator configured the
       network in a different way)

    4. How should metapackages be implemented and how should they be treated
       by apt?

    5. How should the Desktop task be installed during the initial
       installation and how can users tweak that?

There are probably more, but these pop into my head right now. I do not want
to comment on (1) but it might make sense to discuss the others first as that
might very well make a CTTE resolution redundant. I also can not gauge (2) and
would be happy if members of the Gnome team could comment on that, but (3)
should clearly be discussed within the scope of applicable bug reports that
can then be fixed.

As you might have guessed it is mostly (4) and (5) that are most important to
me and it would IMHO be beneficial to discuss this in a broader scope (maybe
in debian-policy) and codify the decision in the policy.

1. Motivation for a change - What is the problem?
=================================================

The main motivation for a change to the current implementation was given in
[0], the DEP-6 discussion [1] and by Bdale:

>> This is consistent with my belief that we should try to empower our users
>> to be able to exercise a reasonable amount of choice in configuring and
>> operating their Debian systems.

A common argument formulated by the GNOME team (or members thereof) is:

> Maybe you are unfamiliar with what clueless newbies do with their
> systems. You want to empower users, that’s fine; but GNOME is for all
> users. Those who have the technical knowledge to handle their packages
> manually should also know how to make it happen without metapackages.

which is certainly true, but doesn't capture one *very* important aspect. Sure
"clueless users" won't really care and are happy to get a GNOME installation
that packs everything and the kitchen sink. This is good IMHO and encourages
exploration of different software options in a unified and well integrated
environment. It is also true that "advanced users"/"power users"/Debian
Members/Unix beards/… can easily finetune their installation or even create
new personal metapackages, but …

The problematic use case are users who are proficient enough with Debian to
realise that they do not want a set of packages and who try to remove them,
but who do not (yet) know enough about Debian and its actual implementation to
do so. The current implementation makes it incredibly hard (see [2] for "solutions")
to finetune a "kitchen sink" systemi). I think that the wish to explore and
finetune a system is typical for new users who get familiar with their system
and they should be encouraged and supported in doing so.

2. What can be done?
====================

Two proposals are commonly made to rectify the situation:

    1. Use Recommends in metapackages
    2. Treat metapackages differently during removal/purge

After thinking about this I am still convinced that (2.1) is the better
solution as it allows users to remove some packages that were pulled in by a
matapackage without causing its complete removal. I dislike (2.2) because it
means that "apt-get install METAPKG ; apt-get purge METAPKG" does not (in terms of
installed packages) change anything. It would essentially mean that there is
no inverse element/action for "install".

Arguments against (2.1) comprise:

    * Recommends is wrong for metapackages because it gets upgrades very
      wrong. This is why it is used very marginally. [3]

      Not sure about this and Josselin unfortunately did not elaborate on
      actual problems.

    * […] there is the problem that versioned Recommends are useless, while
      we often want to guarantee that an optimal version combination is
      installed. Worse: they are ignored […] [4]

    * […] there’s the problem of keeping testing usable. You don’t want a
      metapackage to migrate until all the packages it brings have also
      migrated, otherwise testing systems could become unexpectedly unusable.
      [4]

    * Policy 7.2 [5]

      This is IMHO a problematic argument as there really is no technical
      reason for a hard dependency in the context of a metapackage which is,
      in nature, the implementation of an abstract idea. (e.g. GNOME *is* this: …)

There are certainly others, but those are commonly mentioned.

One aspect that is incredibly important in the light of this discussion is
that (2.2) *has already been implemented* AFAICT. Ever since #574851 we do
have a metapackage section and apt currently ships
/etc/apt/apt.conf.d/01autoremove with the following in there:

--- snip ---
APT
{
  […]
  Never-MarkAuto-Sections
  {
        "metapackages";
        […]
  };
};
--- snip ---

which means that metapackages are not automatically removed right now. (IIRC)
The problem is that "gnome" et al. do *not* belong to the "metapackage"
section but to "gnome" so they are not treated as such. (use [5] to list all
25 packages in that section)

It seems as if the metapackage section is not widely used and I think that the
current situation will just cause unpleasant surprises in the sense that some
metapackages are removed while others are not. I also don't feel good about
the fact that the current behaviour is not really documented or codified in
the policy.

In summary I would say that we should discuss metapackages and their usage and
how they are installed/presented to the user during the installation in a
broader context. It might, for example, be the best way to offer a wider range
of options than just "Desktop" during the installation.

[0] http://lists.debian.org/debian-devel/2011/08/msg00693.html
[1] http://dep.debian.net/deps/dep6/
    http://lists.debian.org/debian-devel/2009/12/msg00550.html
[2] http://lists.debian.org/debian-devel/2011/08/msg00729.html
[3] http://lists.debian.org/debian-devel/2012/07/msg00210.html
[4] http://lists.debian.org/debian-devel/2011/09/msg00001.html
[5] List of packages in the metapackage section: $ aptitude search '?section(metapackages)'

-- 
Wolodja <debian@babilen5.org>

4096R/CAF14EFC
081C B7CD FF04 2BA9 94EA  36B2 8B7F 7D30 CAF1 4EFC

Attachment: signature.asc
Description: Digital signature


Reply to: