Package: debian-policy Version: 3.8.3.0 Severity: wishlist The requirements for the copyright file in binary and source packages has been the source of a lot of confusion and a lot of bug reports against Lintian. This is an attempt to state the requirements more specifically and more completely.
This also adds a footnote explaining the perl and perl-base exception. This was discussed in depth several times and run past ftpmaster and left as a special exception after a couple of unsuccessful attempts to find a robust transition plan. This update does not permit the copyright file to be a symlink without symlinking the entire /usr/share/doc directory, as is allowed in Ubuntu. I think that issue is separate and should be discussed separately. -- System Information: Debian Release: squeeze/sid APT prefers testing APT policy: (990, 'testing'), (500, 'unstable'), (1, 'experimental') Architecture: i386 (i686) Kernel: Linux 2.6.30-2-686-bigmem (SMP w/4 CPU cores) Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8) Shell: /bin/sh linked to /bin/dash debian-policy depends on no packages. debian-policy recommends no packages. Versions of packages debian-policy suggests: ii doc-base 0.9.5 utilities to manage online documen -- no debconf information
commit 9ab4fd41db8b301b340600cd691fff4ee59d5744 Author: Russ Allbery <r...@debian.org> Date: Thu Nov 12 20:39:41 2009 -0800 Clarify handling of the copyright file Be much more explicit about the alternatives for the copyright file of a binary package: either /usr/share/doc/package/copyright or a /usr/share/doc/package symlink to another package. Add explicit requirements for using the symlink approach. Require that, if a symlink is used, there be a direct dependency on the package containing the copyright file. Require source packages to have a debian/copyright file giving the copyright and distribution license for the entire source package, even if there are multiple copyright files in the source package so that different binary packages can have their own. Add a footnote explaining that the perl and perl-base packages are a special exception due to complex transition issues with the essential perl-base package. diff --git a/policy.sgml b/policy.sgml index 34a45d5..22fb40d 100644 --- a/policy.sgml +++ b/policy.sgml @@ -8958,7 +8958,7 @@ END-INFO-DIR-ENTRY </p> </sect> - <sect> + <sect id="addl-docs"> <heading>Additional documentation</heading> <p> @@ -9060,39 +9060,82 @@ END-INFO-DIR-ENTRY <heading>Copyright information</heading> <p> - Every package must be accompanied by a verbatim copy of its + Every package must be either include a verbatim copy of its copyright and distribution license in the file - <file>/usr/share/doc/<var>package</var>/copyright</file>. This - file must neither be compressed nor be a symbolic link. + <file>/usr/share/doc/<var>package</var>/copyright</file> or must + include a symlink + named <file>/usr/share/doc/<var>package</var></file> that points + to the <file>/usr/share/doc</file> directory of another package + that includes the copyright file.<footnote> + The <package>perl-base</package> and <package>perl</package> + packages do not meet these requirements. + <package>perl-base</package> contains the copyright file for + both packages in the location appropriate for + the <package>perl</package>, and <package>perl</package> does + not include either a symlink or a copyright file. Fixing this + would be complex and result in potentially fragile upgrades, + in part because <package>perl-base</package> is essential. + This is therefore permitted as a special exception. Other + packages do not have the added complexity of being essential + and do not get the same exception. + </footnote> + The second option may only be used if all of the following + requirements are met: + <enumlist> + <item> + All the requirements for using a symlink instead of a + directory as <file>/usr/share/doc/<var>package</var></file> + described in <ref id="addl-docs"> must be met. This means + both packages must come from the same source package and the + package must depend on the package containing its copyright + and distribution license. + </item> + + <item> + There must be a direct dependency on the package containing + the copyright and distribution license. An indirect + dependency via a third package is not sufficient. + </item> + + <item> + The <file>/usr/share/doc/<var>package</var>/copyright</file> + file contained in the other package must contain the + copyright and distribution license for both packages. + </item> + + <item> + The copyright file contained in the other package must meet + all of the requirements listed below. + </item> + </enumlist> </p> <p> - In addition, the copyright file must say where the upstream - sources (if any) were obtained. It should name the original - authors of the package and the Debian maintainer(s) who were - involved with its creation. + The copyright file must neither be compressed nor be a symbolic + link. </p> <p> - Packages in the <em>contrib</em> or <em>non-free</em> archive - areas should state in the copyright file that the package is not - part of the Debian GNU/Linux distribution and briefly explain - why. + In addition to the copyright and distribution license, the + copyright file must say where the upstream sources (if any) were + obtained. Packages in the <em>contrib</em> or <em>non-free</em> + archive areas should state in the copyright file that the + package is not part of the Debian GNU/Linux distribution and + briefly explain why. </p> <p> A copy of the file which will be installed in <file>/usr/share/doc/<var>package</var>/copyright</file> should - be in <file>debian/copyright</file> in the source package. - </p> - - <p> - <file>/usr/share/doc/<var>package</var></file> may be a symbolic - link to another directory in <file>/usr/share/doc</file> only if - the two packages both come from the same source and the - first package Depends on the second. These rules are - important because copyrights must be extractable by - mechanical means. + normally be in <file>debian/copyright</file> in the + corresponding source package. If a source package produces + binary packages with separate copyright files (if, for instance, + different binary packages produced from one source package have + substantially different distribution licenses), it may include + multiple copyright files for installation into the different + binary packages, but <file>debian/copyright</file> in the source + package must still contain the copyright and distribution + license for the entirety of the source package. </p> <p> @@ -9120,10 +9163,12 @@ END-INFO-DIR-ENTRY </p> <p> - You should not use the copyright file as a general <file>README</file> - file. If your package has such a file it should be - installed in <file>/usr/share/doc/<var>package</var>/README</file> or - <file>README.Debian</file> or some other appropriate place.</p> + You should not use the copyright file as a general + <file>README</file> file. If your package has such a file it + should be installed in + <file>/usr/share/doc/<var>package</var>/README</file> or + <file>README.Debian</file> or some other appropriate place. + </p> </sect> <sect>