/[dep]/web/deps/dep6.mdwn
ViewVC logotype

Contents of /web/deps/dep6.mdwn

Parent Directory Parent Directory | Revision Log Revision Log


Revision 140 - (show annotations) (download)
Mon Dec 21 08:50:07 2009 UTC (3 years, 4 months ago) by dapal
File size: 3890 byte(s)
Fix wording
1 [[!meta title="DEP-6: Meta-Package debian/control field"]]
2
3 Title: Meta-Package debian/control field
4 DEP: 6
5 State: DRAFT
6 Date: 2009-12-20
7 Drivers: David Paleino <dapal@debian.org>, Luca Bruno <lethalman88@gmail.com>
8 URL: http://dep.debian.net/deps/dep6
9 License:
10 Copying and distribution of this file, with or without modification,
11 are permitted in any medium without royalty provided the copyright
12 notice and this notice are preserved.
13 Abstract:
14 Introduce the usage of a new field in debian/control, Meta-Package,
15 to mark "meta-packages" as such, and allow easy choice of
16 installed packages, without being bitten by the "autoremove"
17 feature of package management tools.
18
19 [[!toc ]]
20
21 Introduction
22 ------------
23 This document proposes a new field for debian/control, to be used in
24 the so-called "meta-packages". A meta-package is a package which does
25 not contain any files to be installed. Instead it has dependencies to
26 other packages. There are several uses for metapackages, for example
27 to provide a Desktop Environment with some default applications
28 installed.
29
30 Rationale
31 ---------
32 With the *autoremove* command being now widely used, it can become
33 difficult for a user to install a meta-package except for some packages it
34 depends on.
35
36 In fact, when removing any dependency of the meta-package, it gets
37 removed as well, and all other dependencies become *leaf packages* that
38 autoremove will try to remove from the system. This is usually not
39 what the users want, as they probably installed (or had it by default)
40 the meta-package to have a "standard" environment, but don't want or
41 need specific packages.
42
43 With the current situation, the only solution is to specify as
44 *manually installed* the packages the users want to keep on their
45 systems.
46
47 This document thus tries to introduce a new mechanism for
48 meta-packages, which would be marked with **Meta-Package: yes** in the
49 debian/control control file, and whose dependencies removal would not
50 cause the dependant removal. Think of this as a new Recommends field,
51 which cannot be controlled via /etc/apt/preferences (or similar
52 configuration file).
53
54 Backwards Compatibility
55 -----------------------
56 We started thinking about "Meta-Depends" fields, but soon abandoned the
57 idea. This is because this field would break existing package managers
58 which haven't implemented yet this DEP. That's why we chose to keep
59 Depends, and add an extra field, called **Meta-Package**.
60
61 Implementation
62 --------------
63 ### Packages ###
64 Meta-packages should use **Meta-Package: yes** in a binary stanza in the
65 *debian/control* file.
66
67 ### Package managers ###
68 Package managers, upon removal of any package, should check dependant
69 packages, and act accordingly.
70
71 If any dependant package is a meta-package, as defined by this
72 document, it should **NOT** be removed, opposed to what the current
73 implementations do. The package manager should then add the removed
74 package to a "blacklist" for the dependant meta-package. This allows
75 for upgrades of the meta-package without re-installing everything again,
76 i.e. the package manager should check the dependencies of the
77 meta-package against its blacklist, if present.
78
79 If the Meta-Package field is not present, then the package manager
80 should act normally, without any modification from the current
81 behaviour.
82
83 If the meta-package is removed, all its dependencies are marked for
84 auto-removal, following the current behaviour.
85
86 #### Blacklist management ####
87 Package managers should allow for deletion of the blacklist upon
88 removal of the meta-package.
89
90 Moreover, they should allow the deletion of the blacklist, and the
91 installation of the missing meta-package dependencies at the same time.
92
93 Tools support
94 -------------
95 ### apt-get ###
96 None.
97
98 ### aptitude ###
99 None.
100
101 ### cupt ###
102 None.
103
104 ### smart ###
105 None.
106
107 Changes
108 -------
109
110 * 2009-12-20:
111 [ dapal ]
112 * First draft, RFC made on debian-devel

  ViewVC Help
Powered by ViewVC 1.1.5