[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#556015: debian-policy: Clarify requirements for copyright file



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 <rra@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>

Reply to: