]> git.donarmstrong.com Git - debian-ctte.git/blob - resolved_issues/681419_free_non_free_dependencies/decision
Refresh agenda with current topics
[debian-ctte.git] / resolved_issues / 681419_free_non_free_dependencies / decision
1 ===== TITLE
2
3 Alternate Dependencies on non-free packages in main
4
5 ===== WEB SUMMARY
6
7 The committee resolves that alternatiave dependencies on non-free
8 packages are permisible in main.
9
10 ===== EMAIL INTRO
11
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.
15
16 ===== EMAIL EPILOGUE
17
18 The committee would like to thank everyone who participated in the
19 discussion of #681419.
20
21 ===== DECISION
22
23 Whereas:
24
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.
33
34 2. Both options have the following effects in common, meeting the
35    standard that main should be functional and useful while being
36    self-contained:
37
38   (a) Package managers configured to consider only main will install
39       package-in-main.
40
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.
45
46   (c) If package-in-non-free is already installed, package managers
47       will proceed without installing package-in-main.
48
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.
52
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.
57
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.
66
67 Therefore:
68
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.
73
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
77    restrictions.