move footnotes into chapters and appendices
[debian-policy.git] / policy / ch-archive.rst
blob56dac14b8ab65c796f2956e21be9366731262ddf
1 The Debian Archive
2 ==================
4 The Debian system is maintained and distributed as a collection of
5 *packages*. Since there are so many of them (currently well over 15000),
6 they are split into *sections* and given *priorities* to simplify the
7 handling of them.
9 The effort of the Debian project is to build a free operating system,
10 but not every package we want to make accessible is *free* in our sense
11 (see the Debian Free Software Guidelines, below), or may be
12 imported/exported without restrictions. Thus, the archive is split into
13 areas  [#]_ based on their licenses and other restrictions.
15 The aims of this are:
17 -  to allow us to make as much software available as we can
19 -  to allow us to encourage everyone to write free software, and
21 -  to allow us to make it easy for people to produce CD-ROMs of our
22    system without violating any licenses, import/export restrictions, or
23    any other laws.
25 The *main* archive area forms the *Debian distribution*.
27 Packages in the other archive areas (``contrib``, ``non-free``) are not
28 considered to be part of the Debian distribution, although we support
29 their use and provide infrastructure for them (such as our bug-tracking
30 system and mailing lists). This Debian Policy Manual applies to these
31 packages as well.
33 .. _s-dfsg:
35 The Debian Free Software Guidelines
36 -----------------------------------
38 The Debian Free Software Guidelines (DFSG) form our definition of "free
39 software". These are:
41 1. Free Redistribution
42     The license of a Debian component may not restrict any party from
43     selling or giving away the software as a component of an aggregate
44     software distribution containing programs from several different
45     sources. The license may not require a royalty or other fee for such
46     sale.
48 2. Source Code
49     The program must include source code, and must allow distribution in
50     source code as well as compiled form.
52 3. Derived Works
53     The license must allow modifications and derived works, and must
54     allow them to be distributed under the same terms as the license of
55     the original software.
57 4. Integrity of The Author's Source Code
58     The license may restrict source-code from being distributed in
59     modified form *only* if the license allows the distribution of
60     "patch files" with the source code for the purpose of modifying the
61     program at build time. The license must explicitly permit
62     distribution of software built from modified source code. The
63     license may require derived works to carry a different name or
64     version number from the original software. (This is a compromise.
65     The Debian Project encourages all authors to not restrict any files,
66     source or binary, from being modified.)
68 5. No Discrimination Against Persons or Groups
69     The license must not discriminate against any person or group of
70     persons.
72 6. No Discrimination Against Fields of Endeavor
73     The license must not restrict anyone from making use of the program
74     in a specific field of endeavor. For example, it may not restrict
75     the program from being used in a business, or from being used for
76     genetic research.
78 7. Distribution of License
79     The rights attached to the program must apply to all to whom the
80     program is redistributed without the need for execution of an
81     additional license by those parties.
83 8. License Must Not Be Specific to Debian
84     The rights attached to the program must not depend on the program's
85     being part of a Debian system. If the program is extracted from
86     Debian and used or distributed without Debian but otherwise within
87     the terms of the program's license, all parties to whom the program
88     is redistributed must have the same rights as those that are granted
89     in conjunction with the Debian system.
91 9. License Must Not Contaminate Other Software
92     The license must not place restrictions on other software that is
93     distributed along with the licensed software. For example, the
94     license must not insist that all other programs distributed on the
95     same medium must be free software.
97 10. Example Licenses
98     The "GPL," "BSD," and "Artistic" licenses are examples of licenses
99     that we consider *free*.
101 .. _s-sections:
103 Archive areas
104 -------------
106 .. _s-main:
108 The main archive area
109 ~~~~~~~~~~~~~~~~~~~~~
111 The *main* archive area comprises the Debian distribution. Only the
112 packages in this area are considered part of the distribution. None of
113 the packages in the *main* archive area require software outside of that
114 area to function. Anyone may use, share, modify and redistribute the
115 packages in this archive area freely [#]_.
117 Every package in *main* must comply with the DFSG (Debian Free Software
118 Guidelines).  [#]_
120 In addition, the packages in *main*
122 -  must not require or recommend a package outside of *main* for
123    compilation or execution (thus, the package must not declare a
124    ``Pre-Depends``, ``Depends``, ``Recommends``, ``Build-Depends``,
125    ``Build-Depends-Indep``, or ``Build-Depends-Arch`` relationship on a
126    non-\ *main* package),
128 -  must not be so buggy that we refuse to support them, and
130 -  must meet all policy requirements presented in this manual.
132 .. _s-contrib:
134 The contrib archive area
135 ~~~~~~~~~~~~~~~~~~~~~~~~
137 The *contrib* archive area contains supplemental packages intended to
138 work with the Debian distribution, but which require software outside of
139 the distribution to either build or function.
141 Every package in *contrib* must comply with the DFSG.
143 In addition, the packages in *contrib*
145 -  must not be so buggy that we refuse to support them, and
147 -  must meet all policy requirements presented in this manual.
149 Examples of packages which would be included in *contrib* are:
151 -  free packages which require *contrib*, *non-free* packages or
152    packages which are not in our archive at all for compilation or
153    execution, and
155 -  wrapper packages or other sorts of free accessories for non-free
156    programs.
158 .. _s-non-free:
160 The non-free archive area
161 ~~~~~~~~~~~~~~~~~~~~~~~~~
163 The *non-free* archive area contains supplemental packages intended to
164 work with the Debian distribution that do not comply with the DFSG or
165 have other problems that make their distribution problematic. They may
166 not comply with all of the policy requirements in this manual due to
167 restrictions on modifications or other limitations.
169 Packages must be placed in *non-free* if they are not compliant with the
170 DFSG or are encumbered by patents or other legal issues that make their
171 distribution problematic.
173 In addition, the packages in *non-free*
175 -  must not be so buggy that we refuse to support them, and
177 -  must meet all policy requirements presented in this manual that it is
178    possible for them to meet.  [#]_
180 .. _s-pkgcopyright:
182 Copyright considerations
183 ------------------------
185 Every package must be accompanied by a verbatim copy of its copyright
186 information and distribution license in the file
187 ``/usr/share/doc/package/copyright`` (see
188 :ref:`s-copyrightfile` for further details).
190 We reserve the right to restrict files from being included anywhere in
191 our archives if
193 -  their use or distribution would break a law,
195 -  there is an ethical conflict in their distribution or use,
197 -  we would have to sign a license for them, or
199 -  their distribution would conflict with other project policies.
201 Programs whose authors encourage the user to make donations are fine for
202 the main distribution, provided that the authors do not claim that not
203 donating is immoral, unethical, illegal or something similar; in such a
204 case they must go in *non-free*.
206 Packages whose copyright permission notices (or patent problems) do not
207 even allow redistribution of binaries only, and where no special
208 permission has been obtained, must not be placed on the Debian FTP site
209 and its mirrors at all.
211 Note that under international copyright law (this applies in the United
212 States, too), *no* distribution or modification of a work is allowed
213 without an explicit notice saying so. Therefore a program without a
214 copyright notice *is* copyrighted and you may not do anything to it
215 without risking being sued! Likewise if a program has a copyright notice
216 but no statement saying what is permitted then nothing is permitted.
218 Many authors are unaware of the problems that restrictive copyrights (or
219 lack of copyright notices) can cause for the users of their
220 supposedly-free software. It is often worthwhile contacting such authors
221 diplomatically to ask them to modify their license terms. However, this
222 can be a politically difficult thing to do and you should ask for advice
223 on the ``debian-legal`` mailing list first, as explained below.
225 When in doubt about a copyright, send mail to
226 debian-legal@lists.debian.org. Be prepared to provide us with the
227 copyright statement. Software covered by the GPL, public domain software
228 and BSD-like copyrights are safe; be wary of the phrases "commercial use
229 prohibited" and "distribution restricted".
231 .. _s-subsections:
233 Sections
234 --------
236 The packages in the archive areas *main*, *contrib* and *non-free* are
237 grouped further into *sections* to simplify handling.
239 The archive area and section for each package should be specified in the
240 package's ``Section`` control record (see
241 :ref:`s-f-Section`). However, the maintainer of the
242 Debian archive may override this selection to ensure the consistency of
243 the Debian distribution. The ``Section`` field should be of the form:
245 -  *section* if the package is in the *main* archive area,
247 -  *area/section* if the package is in the *contrib* or *non-free*
248    archive areas.
250 The Debian archive maintainers provide the authoritative list of
251 sections. At present, they are: admin, cli-mono, comm, database, debug,
252 devel, doc, editors, education, electronics, embedded, fonts, games,
253 gnome, gnu-r, gnustep, graphics, hamradio, haskell, httpd, interpreters,
254 introspection, java, javascript, kde, kernel, libdevel, libs, lisp,
255 localization, mail, math, metapackages, misc, net, news, ocaml, oldlibs,
256 otherosfs, perl, php, python, ruby, rust, science, shells, sound, tasks,
257 tex, text, utils, vcs, video, web, x11, xfce, zope. The additional
258 section *debian-installer* contains special packages used by the
259 installer and is not used for normal Debian packages.
261 For more information about the sections and their definitions, see the
262 `list of sections in
263 unstable <https://packages.debian.org/unstable/>`_.
265 .. _s-priorities:
267 Priorities
268 ----------
270 Each package must have a *priority* value, which is set in the metadata
271 for the Debian archive and is also included in the package's control
272 files (see :ref:`s-f-Priority`). This information is used
273 to control which packages are included in standard or minimal Debian
274 installations.
276 Most Debian packages will have a priority of ``optional``. Priority
277 levels other than ``optional`` are only used for packages that should be
278 included by default in a standard installation of Debian.
280 The priority of a package is determined solely by the functionality it
281 provides directly to the user. The priority of a package should not be
282 increased merely because another higher-priority package depends on it;
283 instead, the tools used to construct Debian installations will correctly
284 handle package dependencies. In particular, this means that C-like
285 libraries will almost never have a priority above ``optional``, since
286 they do not provide functionality directly to users. However, as an
287 exception, the maintainers of Debian installers may request an increase
288 of the priority of a package to resolve installation issues and ensure
289 that the correct set of packages is included in a standard or minimal
290 install.
292 The following *priority levels* are recognized by the Debian package
293 management tools.
295 ``required``
296     Packages which are necessary for the proper functioning of the
297     system (usually, this means that dpkg functionality depends on these
298     packages). Removing a ``required`` package may cause your system to
299     become totally broken and you may not even be able to use ``dpkg``
300     to put things back, so only do so if you know what you are doing.
302     Systems with only the ``required`` packages installed have at least
303     enough functionality for the sysadmin to boot the system and install
304     more software.
306 ``important``
307     Important programs, including those which one would expect to find
308     on any Unix-like system. If the expectation is that an experienced
309     Unix person who found it missing would say "What on earth is going
310     on, where is ``foo``?", it must be an ``important`` package.  [#]_
311     Other packages without which the system will not run well or be
312     usable must also have priority ``important``. This does *not*
313     include Emacs, the X Window System, TeX or any other large
314     applications. The ``important`` packages are just a bare minimum of
315     commonly-expected and necessary tools.
317 ``standard``
318     These packages provide a reasonably small but not too limited
319     character-mode system. This is what will be installed by default if
320     the user doesn't select anything else. It doesn't include many large
321     applications.
323     No two packages that both have a priority of ``standard`` or higher
324     may conflict with each other.
326 ``optional``
327     This is the default priority for the majority of the archive. Unless
328     a package should be installed by default on standard Debian systems,
329     it should have a priority of ``optional``. Packages with a priority
330     of ``optional`` may conflict with each other.
332 ``extra``
333     *This priority is deprecated.* Use the ``optional`` priority
334     instead. This priority should be treated as equivalent to
335     ``optional``.
337     The ``extra`` priority was previously used for packages that
338     conflicted with other packages and packages that were only likely to
339     be useful to people with specialized requirements. However, this
340     distinction was somewhat arbitrary, not consistently followed, and
341     not useful enough to warrant the maintenance effort.
343 .. [#]
344    The Debian archive software uses the term "component" internally and
345    in the Release file format to refer to the division of an archive.
346    The Debian Social Contract simply refers to "areas." This document
347    uses terminology similar to the Social Contract.
349 .. [#]
350    See `What Does Free Mean? <https://www.debian.org/intro/free>`_ for
351    more about what we mean by free software.
353 .. [#]
354    Debian's FTP Masters publish a
355    `REJECT-FAQ <https://ftp-master.debian.org/REJECT-FAQ.html>`_ which
356    details the project's current working interpretation of the DFSG.
358 .. [#]
359    It is possible that there are policy requirements which the package
360    is unable to meet, for example, if the source is unavailable. These
361    situations will need to be handled on a case-by-case basis.
363 .. [#]
364    This is an important criterion because we are trying to produce,
365    amongst other things, a free Unix.