3 Alternate Dependencies on non-free packages in main
7 The committee resolves that alternatiave dependencies on non-free
8 packages are permisible in main.
12 The technical committe was asked in #681419 by the policy maintainers
13 to determine as a matter of technical whether alternative dependencies
14 on non-free packages were acceptable in main.
18 The committee would like to thank everyone who participated in the
19 discussion of #681419.
25 1. The Debian Policy Manual states (ยง2.2.1) that packages in main
26 "must not require or recommend a package outside of main for
27 compilation or execution". Both "Depends: package-in-non-free" and
28 "Recommends: package-in-non-free" clearly violate this requirement.
29 The Technical Committee has been asked to determine whether a
30 dependency of the form "package-in-main | package-in-non-free"
31 complies with this policy requirement, or whether virtual packages
32 must instead be used to avoid mentioning the non-free alternative.
34 2. Both options have the following effects in common, meeting the
35 standard that main should be functional and useful while being
38 (a) Package managers configured to consider only main will install
41 (b) Package managers configured to consider both main and non-free
42 will prefer to install package-in-main, but may install
43 package-in-non-free instead if so instructed, or if
44 package-in-main is uninstallable.
46 (c) If package-in-non-free is already installed, package managers
47 will proceed without installing package-in-main.
49 3. The significant difference between these two options is that the
50 former makes the non-free alternative visible to everyone who
51 examines the dependency relationship, while the latter does not.
53 4. Merely mentioning that a non-free alternative exists does not
54 constitute a recommendation of that alternative. For example, many
55 free software packages state quite reasonably that they can be
56 compiled and executed on non-free platforms.
58 5. Furthermore, virtual packages are often a clumsy way to express
59 these kinds of alternatives. If a package happens to require any
60 of several implementations of a facility that have a certain
61 option, then it can either depend on suitable alternatives
62 directly, or its maintainer can first attempt to have fine-grained
63 virtual packages added to each of the packages they wish to permit.
64 In some cases this may be appropriate, but it can easily turn into
65 quite a heavyweight approach.
69 6. The Technical Committee resolves that alternative dependencies of
70 the form "Depends: package-in-main | package-in-non-free" are
71 permissible in main, and do not constitute a violation of the
72 policy clause cited in point 1.
74 7. We nevertheless recommend that packages in main consider carefully
75 whether this might cause the inadvertent installation of non-free
76 packages due to conflicts, especially those with usage