Debian Bug report logs - #556015
Clarify requirements for linked doc directories

version graph

Package: debian-policy; Maintainer for debian-policy is Debian Policy List <debian-policy@lists.debian.org>; Source for debian-policy is src:debian-policy.

Reported by: Russ Allbery <rra@debian.org>

Date: Fri, 13 Nov 2009 04:51:01 UTC

Owned by: Russ Allbery <rra@debian.org>

Severity: wishlist

Merged with 476810

Found in versions debian-policy/3.7.3.0, debian-policy/3.8.3.0

Reply or subscribe to this bug.

Toggle useless messages

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to debian-bugs-dist@lists.debian.org, Debian Policy List <debian-policy@lists.debian.org>:
Bug#556015; Package debian-policy. (Fri, 13 Nov 2009 04:51:04 GMT) Full text and rfc822 format available.

Acknowledgement sent to Russ Allbery <rra@debian.org>:
New Bug report received and forwarded. Copy sent to Debian Policy List <debian-policy@lists.debian.org>. (Fri, 13 Nov 2009 04:51:04 GMT) Full text and rfc822 format available.

Message #5 received at submit@bugs.debian.org (full text, mbox):

From: Russ Allbery <rra@debian.org>
To: Debian Bug Tracking System <submit@bugs.debian.org>
Subject: debian-policy: Clarify requirements for copyright file
Date: Thu, 12 Nov 2009 20:46:21 -0800
[Message part 1 (text/plain, inline)]
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
[policy-copyright (text/x-lisp, attachment)]

Information forwarded to debian-bugs-dist@lists.debian.org, Debian Policy List <debian-policy@lists.debian.org>:
Bug#556015; Package debian-policy. (Fri, 13 Nov 2009 05:12:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to Russ Allbery <rra@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Policy List <debian-policy@lists.debian.org>. (Fri, 13 Nov 2009 05:12:03 GMT) Full text and rfc822 format available.

Message #10 received at 556015@bugs.debian.org (full text, mbox):

From: Russ Allbery <rra@debian.org>
To: 556015@bugs.debian.org
Subject: Re: Bug#556015: debian-policy: Clarify requirements for copyright file
Date: Thu, 12 Nov 2009 21:00:48 -0800
Russ Allbery <rra@debian.org> writes:

> 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.

I should mention that this proposal also removes the requirement that the
original authors of the package and the Debian maintainers involved in its
creation be documented in the copyright file.  The Debian changelog file
should be sufficient for this purpose.

-- 
Russ Allbery (rra@debian.org)               <http://www.eyrie.org/~eagle/>




Information forwarded to debian-bugs-dist@lists.debian.org, Debian Policy List <debian-policy@lists.debian.org>:
Bug#556015; Package debian-policy. (Fri, 13 Nov 2009 06:06:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to Charles Plessy <plessy@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Policy List <debian-policy@lists.debian.org>. (Fri, 13 Nov 2009 06:06:03 GMT) Full text and rfc822 format available.

Message #15 received at 556015@bugs.debian.org (full text, mbox):

From: Charles Plessy <plessy@debian.org>
To: 556015@bugs.debian.org
Subject: Re: Bug#556015: debian-policy: Clarify requirements for copyright file
Date: Fri, 13 Nov 2009 14:54:30 +0900
Le Thu, Nov 12, 2009 at 08:46:21PM -0800, Russ Allbery a écrit :

> +	  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.

Hi all,

I wonder if this is not an additional requirement to the current practice. Some
of the constraints on debian/copyright are justified by the fact that it
facilitates NEW processing. However, I have never read an objection on
debian-devel or debian-devel-announce about having the debian/copyright file
split later.

Have a nice day,

-- 
Charles Plessy
Tsurumi, Kanagawa, Japan




Information forwarded to debian-bugs-dist@lists.debian.org, Debian Policy List <debian-policy@lists.debian.org>:
Bug#556015; Package debian-policy. (Fri, 13 Nov 2009 06:27:01 GMT) Full text and rfc822 format available.

Acknowledgement sent to Russ Allbery <rra@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Policy List <debian-policy@lists.debian.org>. (Fri, 13 Nov 2009 06:27:01 GMT) Full text and rfc822 format available.

Message #20 received at 556015@bugs.debian.org (full text, mbox):

From: Russ Allbery <rra@debian.org>
To: 556015@bugs.debian.org
Subject: Re: Bug#556015: debian-policy: Clarify requirements for copyright file
Date: Thu, 12 Nov 2009 22:22:37 -0800
Charles Plessy <plessy@debian.org> writes:
> Le Thu, Nov 12, 2009 at 08:46:21PM -0800, Russ Allbery a écrit :

>> +	  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.

> I wonder if this is not an additional requirement to the current practice.

It's an additional requirement over the current Policy statement, but
according to previous statements by ftpmaster, it reflects what's
currently being enforced during NEW processing.  Also, it just makes
sense; it's not possible for ftpmaster to easily review the package unless
there's one file that covers the source package, since Debian is going to
distribute that source package.

> Some of the constraints on debian/copyright are justified by the fact
> that it facilitates NEW processing. However, I have never read an
> objection on debian-devel or debian-devel-announce about having the
> debian/copyright file split later.

http://ftp-master.debian.org/REJECT-FAQ.html says:

    Your debian/copyright file must have at least the minimum needed
    stuff. A good overview of what you need is behind this mail.

and separate e-mail messages from ftp team members in other threads have
made it clear that they mean specifically debian/copyright.  If you want
to craft separate copyright files for separate binary packages, I don't
think anyone has any objections, but I believe the ftp team still expects
the source package license and copyright notices to be in the normal
location.

-- 
Russ Allbery (rra@debian.org)               <http://www.eyrie.org/~eagle/>




Information forwarded to debian-bugs-dist@lists.debian.org, Debian Policy List <debian-policy@lists.debian.org>:
Bug#556015; Package debian-policy. (Fri, 13 Nov 2009 07:36:10 GMT) Full text and rfc822 format available.

Acknowledgement sent to Russ Allbery <rra@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Policy List <debian-policy@lists.debian.org>. (Fri, 13 Nov 2009 07:36:10 GMT) Full text and rfc822 format available.

Message #25 received at 556015@bugs.debian.org (full text, mbox):

From: Russ Allbery <rra@debian.org>
To: 556015@bugs.debian.org
Subject: Re: Bug#556015: debian-policy: Clarify requirements for copyright file
Date: Thu, 12 Nov 2009 23:28:11 -0800
Charles Plessy <plessy@debian.org> writes:
> Le Thu, Nov 12, 2009 at 10:22:37PM -0800, Russ Allbery a écrit :

>> It's an additional requirement over the current Policy statement, but
>> according to previous statements by ftpmaster, it reflects what's
>> currently being enforced during NEW processing.

Sorry, this isn't completely correct.  It's a *relaxation* of the existing
requirement in one significant sense, and a strengthening in a different
sense.

Policy currently says:

    A copy of the file which will be installed in
    /usr/share/doc/package/copyright should be in debian/copyright in the
    source package.

So in other words, any package that does anything other than install the
debian/copyright file from the source package into the appropriate place
in the binary package is buggy according to Policy currently.

Now, I know that some package maintainers like to provide separate
copyright files for different binary packages if, say, one is under the
GPL and another is under the BSD license.  Currently, Policy says that
they should not do that.  I'm proposing relaxing that requirement and
allowing them to do so, provided that debian/copyright still documents the
copyright and license information for the source package as a whole.

I'm also proposing changing the requirement for debian/copyright from a
should to a must.  I believe that reflects existing practice.  A package
that has no debian/copyright file is not going to make it into the archive
now.

>> Also, it just makes sense; it's not possible for ftpmaster to easily
>> review the package unless there's one file that covers the source
>> package, since Debian is going to distribute that source package.

> That is my point: it is a requirement for NEW processing. The FTP team
> does not check the copyright files of the packages afterwards.

Ah, I understand what you mean, now.  But yes, they do.  Whenever a new
binary package is introduced, for example.

Besides, I'm not sure this is relevant.  Surely one wouldn't create a
debian/copyright file for NEW and then remove it afterwards so that no one
else can reproduce the NEW copyright check if they wish?  To me, that's
just obviously wrong, obviously a bad thing to do on many different
fronts.

Hm, in investigating this, I just noticed that Policy 4.5 doesn't make any
sense.  It says that any source package must be accompanied by its
copyright file in /usr/share/doc/<package>/copyright.  I'll produce a new
version of the patch that corrects that as well.

-- 
Russ Allbery (rra@debian.org)               <http://www.eyrie.org/~eagle/>




Information forwarded to debian-bugs-dist@lists.debian.org, Debian Policy List <debian-policy@lists.debian.org>:
Bug#556015; Package debian-policy. (Fri, 13 Nov 2009 07:36:12 GMT) Full text and rfc822 format available.

Acknowledgement sent to Russ Allbery <rra@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Policy List <debian-policy@lists.debian.org>. (Fri, 13 Nov 2009 07:36:12 GMT) Full text and rfc822 format available.

Message #30 received at 556015@bugs.debian.org (full text, mbox):

From: Russ Allbery <rra@debian.org>
To: 556015@bugs.debian.org
Subject: Re: Bug#556015: debian-policy: Clarify requirements for copyright file
Date: Thu, 12 Nov 2009 23:34:10 -0800
[Message part 1 (text/plain, inline)]
Here is an updated version of the patch that corrects or clarifies a few
other places in Policy.

-- 
Russ Allbery (rra@debian.org)               <http://www.eyrie.org/~eagle/>

[policy-copyright (text/x-diff, inline)]
commit 10a36221dbdef0417c8fe5dd9153843fc160acd7
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.  Modify the section on
    debian/copyright to talk about source packages and debian/copyright
    instead of the binary file location.
    
    Remove the requirement that the copyright file include the names of
    the Debian packager and package maintainers.  The Debian changelog file
    covers that.
    
    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.
    
    Refer separately to binary and source packages in the Copyright
    considerations section.

diff --git a/policy.sgml b/policy.sgml
index 34a45d5..51b9adb 100644
--- a/policy.sgml
+++ b/policy.sgml
@@ -569,10 +569,14 @@
 	<heading>Copyright considerations</heading>
 
 	<p>
-	  Every package must be accompanied by a verbatim copy of
-	  its copyright and distribution license in the file
-	  <file>/usr/share/doc/<var>package</var>/copyright</file>
-	  (see <ref id="copyrightfile"> for further details).
+	  Every binary package must include a verbatim copy of its
+	  copyright and distribution license in the file
+	  <file>/usr/share/doc/<var>package</var>/copyright</file> or
+	  symlink that directory to a package that does (see
+	  <ref id="copyrightfile"> for further details).  Every
+	  source package must include a verbatim copy of its copyright and
+	  distribution license in the file <file>debian/copyright</file>
+	  (see <ref id="dpkgcopyright">).
 	</p>
 
 	<p>
@@ -1638,12 +1642,11 @@
       <sect id="dpkgcopyright">
 	<heading>Copyright: <file>debian/copyright</file></heading>
         <p>
-          Every package must be accompanied by a verbatim copy of
+          Every source package must include a verbatim copy of
 	  its copyright and distribution license in the file
-	  <file>/usr/share/doc/<var>package</var>/copyright</file>
-	  (see <ref id="copyrightfile"> for further details). Also see
-	  <ref id="pkgcopyright"> for further considerations related
-	  to copyrights for packages.
+	  <file>debian/copyright</file> (see <ref id="copyrightfile"> for
+	  further details).  Also see <ref id="pkgcopyright"> for further
+	  considerations related to copyrights for packages.
         </p>
       </sect>
       <sect>
@@ -8958,7 +8961,7 @@ END-INFO-DIR-ENTRY
 	</p>
       </sect>
 
-      <sect>
+      <sect id="addl-docs">
 	<heading>Additional documentation</heading>
 
 	<p>
@@ -9060,39 +9063,82 @@ END-INFO-DIR-ENTRY
 	<heading>Copyright information</heading>
 
 	<p>
-	  Every package must be accompanied by 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.
+	  Every package either include a verbatim copy of its copyright
+	  and distribution license in the file
+	  <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 +9166,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>

Added tag(s) patch. Request was from Russ Allbery <rra@debian.org> to control@bugs.debian.org. (Fri, 13 Nov 2009 07:36:18 GMT) Full text and rfc822 format available.

Information forwarded to debian-bugs-dist@lists.debian.org, Debian Policy List <debian-policy@lists.debian.org>:
Bug#556015; Package debian-policy. (Fri, 13 Nov 2009 09:42:07 GMT) Full text and rfc822 format available.

Acknowledgement sent to Emilio Pozuelo Monfort <pochu@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Policy List <debian-policy@lists.debian.org>. (Fri, 13 Nov 2009 09:42:07 GMT) Full text and rfc822 format available.

Message #37 received at 556015@bugs.debian.org (full text, mbox):

From: Emilio Pozuelo Monfort <pochu@debian.org>
To: 556015@bugs.debian.org
Subject: Re: Bug#556015: debian-policy: Clarify requirements for copyright file
Date: Fri, 13 Nov 2009 10:46:05 +0100
[Message part 1 (text/plain, inline)]
Hi,

Russ Allbery wrote:
> Here is an updated version of the patch that corrects or clarifies a few
> other places in Policy.

I like the patch in general. I have a couple of comments though:

>  	<p>
> -	  Every package must be accompanied by 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.
> +	  Every package either include a verbatim copy of its copyright
                               ^^^^^^^ includes?

Not a native English, but I think that should be includes, or maybe better "must
either include a verbatim copy ... or a symlink ..."

> +	  and distribution license in the file
> +	  <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>

I've just read #522827 and I wonder if we shouldn't fix this anyway. A possible
solution (which would take some time though) would be to make perl-base a normal
dir in one release, so that perl-base ships both /u/s/d/perl and
/u/s/d/perl-base, and in the next release let perl ship /u/s/d/perl, with a
Replaces on perl-base. I'm OK with the exception for now, but I think we should
fix it and remove it and the special case in lintian if possible.

> +	  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>

Should we tighten this to be a dependency on the same version? Otherwise it
would be possible to have the two packages coming from different versions of the
source package where the license changed in between, with wrong information in
the copyright file for the package that has a symlink. Not sure if this
hypothetical case is worth the trouble.

Cheers,
Emilio


[signature.asc (application/pgp-signature, attachment)]

Information forwarded to debian-bugs-dist@lists.debian.org, Debian Policy List <debian-policy@lists.debian.org>:
Bug#556015; Package debian-policy. (Fri, 13 Nov 2009 18:42:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Manoj Srivastava <srivasta@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Policy List <debian-policy@lists.debian.org>. (Fri, 13 Nov 2009 18:42:03 GMT) Full text and rfc822 format available.

Message #42 received at 556015@bugs.debian.org (full text, mbox):

From: Manoj Srivastava <srivasta@debian.org>
To: 556015@bugs.debian.org
Subject: Re: Bug#556015: debian-policy: Clarify requirements for copyright file
Date: Fri, 13 Nov 2009 12:20:19 -0600
[Message part 1 (text/plain, inline)]
Hi,

        Seconded.

        manoj

commit 10a36221dbdef0417c8fe5dd9153843fc160acd7
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.  Modify the section on
    debian/copyright to talk about source packages and debian/copyright
    instead of the binary file location.
    
    Remove the requirement that the copyright file include the names of
    the Debian packager and package maintainers.  The Debian changelog file
    covers that.
    
    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.
    
    Refer separately to binary and source packages in the Copyright
    considerations section.

diff --git a/policy.sgml b/policy.sgml
index 34a45d5..51b9adb 100644
--- a/policy.sgml
+++ b/policy.sgml
@@ -569,10 +569,14 @@
 	<heading>Copyright considerations</heading>
 
 	<p>
-	  Every package must be accompanied by a verbatim copy of
-	  its copyright and distribution license in the file
-	  <file>/usr/share/doc/<var>package</var>/copyright</file>
-	  (see <ref id="copyrightfile"> for further details).
+	  Every binary package must include a verbatim copy of its
+	  copyright and distribution license in the file
+	  <file>/usr/share/doc/<var>package</var>/copyright</file> or
+	  symlink that directory to a package that does (see
+	  <ref id="copyrightfile"> for further details).  Every
+	  source package must include a verbatim copy of its copyright and
+	  distribution license in the file <file>debian/copyright</file>
+	  (see <ref id="dpkgcopyright">).
 	</p>
 
 	<p>
@@ -1638,12 +1642,11 @@
       <sect id="dpkgcopyright">
 	<heading>Copyright: <file>debian/copyright</file></heading>
         <p>
-          Every package must be accompanied by a verbatim copy of
+          Every source package must include a verbatim copy of
 	  its copyright and distribution license in the file
-	  <file>/usr/share/doc/<var>package</var>/copyright</file>
-	  (see <ref id="copyrightfile"> for further details). Also see
-	  <ref id="pkgcopyright"> for further considerations related
-	  to copyrights for packages.
+	  <file>debian/copyright</file> (see <ref id="copyrightfile"> for
+	  further details).  Also see <ref id="pkgcopyright"> for further
+	  considerations related to copyrights for packages.
         </p>
       </sect>
       <sect>
@@ -8958,7 +8961,7 @@ END-INFO-DIR-ENTRY
 	</p>
       </sect>
 
-      <sect>
+      <sect id="addl-docs">
 	<heading>Additional documentation</heading>
 
 	<p>
@@ -9060,39 +9063,82 @@ END-INFO-DIR-ENTRY
 	<heading>Copyright information</heading>
 
 	<p>
-	  Every package must be accompanied by 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.
+	  Every package either include a verbatim copy of its copyright
+	  and distribution license in the file
+	  <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 +9166,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>

-- 
QOTD: Talent does what it can, genius what it must.  I do what I get
paid to do.
Manoj Srivastava <srivasta@debian.org> <http://www.debian.org/~srivasta/>  
1024D/BF24424C print 4966 F272 D093 B493 410B  924B 21BA DABB BF24 424C
[Message part 2 (application/pgp-signature, inline)]

Information forwarded to debian-bugs-dist@lists.debian.org, Debian Policy List <debian-policy@lists.debian.org>:
Bug#556015; Package debian-policy. (Sun, 15 Nov 2009 23:18:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to Kurt Roeckx <kurt@roeckx.be>:
Extra info received and forwarded to list. Copy sent to Debian Policy List <debian-policy@lists.debian.org>. (Sun, 15 Nov 2009 23:18:03 GMT) Full text and rfc822 format available.

Message #47 received at 556015@bugs.debian.org (full text, mbox):

From: Kurt Roeckx <kurt@roeckx.be>
To: Russ Allbery <rra@debian.org>, 556015@bugs.debian.org
Subject: Re: Bug#556015: debian-policy: Clarify requirements for copyright file
Date: Mon, 16 Nov 2009 00:10:22 +0100
> diff --git a/policy.sgml b/policy.sgml
> index 34a45d5..51b9adb 100644
> --- a/policy.sgml
> +++ b/policy.sgml
> @@ -569,10 +569,14 @@
>  	<heading>Copyright considerations</heading>
>  
>  	<p>
> -	  Every package must be accompanied by a verbatim copy of
> -	  its copyright and distribution license in the file
> -	  <file>/usr/share/doc/<var>package</var>/copyright</file>
> -	  (see <ref id="copyrightfile"> for further details).
> +	  Every binary package must include a verbatim copy of its
> +	  copyright and distribution license in the file
> +	  <file>/usr/share/doc/<var>package</var>/copyright</file> or
> +	  symlink that directory to a package that does (see

It mentions a file, not a directory.  You also seem to
saying the same thing in an other part.

[...]

> @@ -9060,39 +9063,82 @@ END-INFO-DIR-ENTRY
>  	<heading>Copyright information</heading>
>  
>  	<p>
> -	  Every package must be accompanied by 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.
> +	  Every package either include a verbatim copy of its copyright

In other changes you made it clear that this is about binary
packages.

> +	    <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>

Some package currently don't do this, but have an A->B->C
dependency, where A, B and C are all from the same source
package and C contains the copyright.  I guess it would
be good to have some input from a maintainer that does that.

> @@ -9120,10 +9166,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>

This is just reformatting of the current text?


Kurt





Information forwarded to debian-bugs-dist@lists.debian.org, Debian Policy List <debian-policy@lists.debian.org>:
Bug#556015; Package debian-policy. (Sat, 05 Dec 2009 00:42:09 GMT) Full text and rfc822 format available.

Acknowledgement sent to Russ Allbery <rra@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Policy List <debian-policy@lists.debian.org>. (Sat, 05 Dec 2009 00:42:09 GMT) Full text and rfc822 format available.

Message #52 received at 556015@bugs.debian.org (full text, mbox):

From: Russ Allbery <rra@debian.org>
To: Emilio Pozuelo Monfort <pochu@debian.org>
Cc: 556015@bugs.debian.org
Subject: Re: Bug#556015: debian-policy: Clarify requirements for copyright file
Date: Fri, 04 Dec 2009 16:39:39 -0800
Emilio Pozuelo Monfort <pochu@debian.org> writes:

> I like the patch in general. I have a couple of comments though:

>>  	<p>
>> -	  Every package must be accompanied by 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.
>> +	  Every package either include a verbatim copy of its copyright
>                                ^^^^^^^ includes?

> Not a native English, but I think that should be includes, or maybe
> better "must either include a verbatim copy ... or a symlink ..."

Thanks, there was a missing "must" before the either.

>> +	  and distribution license in the file
>> +	  <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>

> I've just read #522827 and I wonder if we shouldn't fix this anyway. A
> possible solution (which would take some time though) would be to make
> perl-base a normal dir in one release, so that perl-base ships both
> /u/s/d/perl and /u/s/d/perl-base, and in the next release let perl ship
> /u/s/d/perl, with a Replaces on perl-base. I'm OK with the exception for
> now, but I think we should fix it and remove it and the special case in
> lintian if possible.

I'm certainly happy to see someone do the work to do that.  I don't feel
comfortable requiring that it get done, though, based on the history in
the bug log.  But I think it would be great for consistency if it did
happen.

>> +	  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>

> Should we tighten this to be a dependency on the same version? Otherwise
> it would be possible to have the two packages coming from different
> versions of the source package where the license changed in between,
> with wrong information in the copyright file for the package that has a
> symlink. Not sure if this hypothetical case is worth the trouble.

My inclination is to say no, since there are various tricky problems with
requiring the dependency be on the same version when one package is arch:
any and one package is arch: all.  There's also been push-back in
debian-devel against a Lintian tag requiring that the dependency be on the
same version, so there's some evidence that we don't have consensus for
requiring that.

-- 
Russ Allbery (rra@debian.org)               <http://www.eyrie.org/~eagle/>




Information forwarded to debian-bugs-dist@lists.debian.org, Debian Policy List <debian-policy@lists.debian.org>:
Bug#556015; Package debian-policy. (Sat, 05 Dec 2009 00:48:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to Russ Allbery <rra@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Policy List <debian-policy@lists.debian.org>. (Sat, 05 Dec 2009 00:48:03 GMT) Full text and rfc822 format available.

Message #57 received at 556015@bugs.debian.org (full text, mbox):

From: Russ Allbery <rra@debian.org>
To: Kurt Roeckx <kurt@roeckx.be>
Cc: 556015@bugs.debian.org
Subject: Re: Bug#556015: debian-policy: Clarify requirements for copyright file
Date: Fri, 04 Dec 2009 16:44:51 -0800
Kurt Roeckx <kurt@roeckx.be> writes:

>> --- a/policy.sgml
>> +++ b/policy.sgml
>> @@ -569,10 +569,14 @@
>>  	<heading>Copyright considerations</heading>
>>  
>>  	<p>
>> -	  Every package must be accompanied by a verbatim copy of
>> -	  its copyright and distribution license in the file
>> -	  <file>/usr/share/doc/<var>package</var>/copyright</file>
>> -	  (see <ref id="copyrightfile"> for further details).
>> +	  Every binary package must include a verbatim copy of its
>> +	  copyright and distribution license in the file
>> +	  <file>/usr/share/doc/<var>package</var>/copyright</file> or
>> +	  symlink that directory to a package that does (see

> It mentions a file, not a directory.  You also seem to saying the same
> thing in an other part.

Reworded to:

<p>
  Every binary package must include a verbatim copy of its
  copyright and distribution license in the file
  <file>/usr/share/doc/<var>package</var>/copyright</file> or
  symlink the <file>/usr/share/doc/<var>package</var> directory to
  a package that does (see <ref id="copyrightfile"> for further
  details).

The reptition is somewhat intentional, just to make sure that we get the
same information in front of people in every place where they may be
looking.

>> @@ -9060,39 +9063,82 @@ END-INFO-DIR-ENTRY
>>  	<heading>Copyright information</heading>
>>  
>>  	<p>
>> -	  Every package must be accompanied by 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.
>> +	  Every package either include a verbatim copy of its copyright

> In other changes you made it clear that this is about binary
> packages.

This whole section of Policy is mostly in the context of binary packages,
but it can't hurt.  Added the word binary here as well.

>> +	    <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>

> Some package currently don't do this, but have an A->B->C dependency,
> where A, B and C are all from the same source package and C contains the
> copyright.  I guess it would be good to have some input from a
> maintainer that does that.

Lintian has been warning about this for some time, and I think it may even
be an ftp-master reject at this point.  The logic has been that we don't
require software looking for copyright files to implement full transitive
dependency logic, only look in a package and its immediate dependencies.
I'm okay with relaxing that if we come up with good alternative wording,
but it's different from what we've required, and I'm not sure it's really
worth the effort.  It's not that difficult to add the additional direct
dependency, and it amounts to a no-op from the package management
perspective.

>> @@ -9120,10 +9166,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>

> This is just reformatting of the current text?

Yes, sorry.  My bad.

-- 
Russ Allbery (rra@debian.org)               <http://www.eyrie.org/~eagle/>




Information forwarded to debian-bugs-dist@lists.debian.org, Debian Policy List <debian-policy@lists.debian.org>:
Bug#556015; Package debian-policy. (Mon, 07 Dec 2009 05:18:06 GMT) Full text and rfc822 format available.

Acknowledgement sent to Steve Langasek <vorlon@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Policy List <debian-policy@lists.debian.org>. (Mon, 07 Dec 2009 05:18:06 GMT) Full text and rfc822 format available.

Message #62 received at 556015@bugs.debian.org (full text, mbox):

From: Steve Langasek <vorlon@debian.org>
To: Russ Allbery <rra@debian.org>, 556015@bugs.debian.org
Cc: Emilio Pozuelo Monfort <pochu@debian.org>
Subject: Re: Bug#556015: debian-policy: Clarify requirements for copyright file
Date: Sun, 6 Dec 2009 20:08:43 -0800
[Message part 1 (text/plain, inline)]
On Fri, Dec 04, 2009 at 04:39:39PM -0800, Russ Allbery wrote:
> > Should we tighten this to be a dependency on the same version? Otherwise
> > it would be possible to have the two packages coming from different
> > versions of the source package where the license changed in between,
> > with wrong information in the copyright file for the package that has a
> > symlink. Not sure if this hypothetical case is worth the trouble.

> My inclination is to say no, since there are various tricky problems with
> requiring the dependency be on the same version when one package is arch:
> any and one package is arch: all.  There's also been push-back in
> debian-devel against a Lintian tag requiring that the dependency be on the
> same version, so there's some evidence that we don't have consensus for
> requiring that.

If one package is arch: any and one package is arch: all, won't the lintian
check fail anyway in the event of a -B build (as happens on all the
autobuilders), due to the arch: all package being unavailable?  Would this
translate to an archive auto-reject?

(I accept that it may not be the consensus, but at least in the case of
arch:any -> arch:all dependencies within a source package, it's always safe
and appropriate to use (= ${source:Version}) in the dependency; that
wouldn't be the /same/ version, but it's not guaranteed that all binary
package from a given source package have the same binary version number,
either - what matters is the "=" here.)

-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
Ubuntu Developer                                    http://www.debian.org/
slangasek@ubuntu.com                                     vorlon@debian.org
[signature.asc (application/pgp-signature, inline)]

Information forwarded to debian-bugs-dist@lists.debian.org, Debian Policy List <debian-policy@lists.debian.org>:
Bug#556015; Package debian-policy. (Mon, 07 Dec 2009 05:18:08 GMT) Full text and rfc822 format available.

Acknowledgement sent to Steve Langasek <vorlon@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Policy List <debian-policy@lists.debian.org>. (Mon, 07 Dec 2009 05:18:08 GMT) Full text and rfc822 format available.

Message #67 received at 556015@bugs.debian.org (full text, mbox):

From: Steve Langasek <vorlon@debian.org>
To: Russ Allbery <rra@debian.org>, 556015@bugs.debian.org
Cc: Kurt Roeckx <kurt@roeckx.be>
Subject: Re: Bug#556015: debian-policy: Clarify requirements for copyright file
Date: Sun, 6 Dec 2009 20:03:11 -0800
[Message part 1 (text/plain, inline)]
On Fri, Dec 04, 2009 at 04:44:51PM -0800, Russ Allbery wrote:
> >> +	    <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>

> > Some package currently don't do this, but have an A->B->C dependency,
> > where A, B and C are all from the same source package and C contains the
> > copyright.  I guess it would be good to have some input from a
> > maintainer that does that.

> Lintian has been warning about this for some time, and I think it may even
> be an ftp-master reject at this point.  The logic has been that we don't
> require software looking for copyright files to implement full transitive
> dependency logic, only look in a package and its immediate dependencies.
> I'm okay with relaxing that if we come up with good alternative wording,
> but it's different from what we've required,

I don't agree that this has ever been required prior to the start of
ftp-master lintian rejects.  Lintian is not the standard for what we
require, Policy is; and I don't think "[the package] must be accompanied by
a verbatim copy [in /usr/share/doc/$package/copyright]" implied any of these
requirements.  I think it's clear from context that the intent is to ensure
/usr/share/doc/$package/copyright is present *when all of the package's
dependencies are installed*; if the intent were otherwise, it could have
been stated more simply as "the package must *contain* a verbatim copy
[...]".

So far from being a simple clarification of Policy, I think this is a change
which makes packages buggy under Policy that were not previously.  I
understand the desire to align the Policy rule with what lintian can
reasonably check on a per-source-package basis, but I don't think this
should be made a "must" in advance of the archive actually being in
conformance.

> and I'm not sure it's really worth the effort.  It's not that difficult to
> add the additional direct dependency, and it amounts to a no-op from the
> package management perspective.

There are various operations for which the number of package relationships
in the archive as a whole, or within a cluster of related packages, dominate
the equation.  The requirement of an additional direct dependency is
reasonable, but not a no-op.

-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
Ubuntu Developer                                    http://www.debian.org/
slangasek@ubuntu.com                                     vorlon@debian.org
[signature.asc (application/pgp-signature, inline)]

Information forwarded to debian-bugs-dist@lists.debian.org, Debian Policy List <debian-policy@lists.debian.org>:
Bug#556015; Package debian-policy. (Mon, 07 Dec 2009 05:21:10 GMT) Full text and rfc822 format available.

Acknowledgement sent to Russ Allbery <rra@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Policy List <debian-policy@lists.debian.org>. (Mon, 07 Dec 2009 05:21:10 GMT) Full text and rfc822 format available.

Message #72 received at 556015@bugs.debian.org (full text, mbox):

From: Russ Allbery <rra@debian.org>
To: Steve Langasek <vorlon@debian.org>
Cc: 556015@bugs.debian.org, Emilio Pozuelo Monfort <pochu@debian.org>
Subject: Re: Bug#556015: debian-policy: Clarify requirements for copyright file
Date: Sun, 06 Dec 2009 21:18:21 -0800
Steve Langasek <vorlon@debian.org> writes:

> If one package is arch: any and one package is arch: all, won't the lintian
> check fail anyway in the event of a -B build (as happens on all the
> autobuilders), due to the arch: all package being unavailable?  Would this
> translate to an archive auto-reject?

No, Lintian has a special tag that it issues when it's checking a binary
package in isolation and therefore can't double-check that the doc symlink
points within the same source package.  That tag isn't (and certainly
shouldn't be) something that the archive auto-rejects on.

-- 
Russ Allbery (rra@debian.org)               <http://www.eyrie.org/~eagle/>




Information forwarded to debian-bugs-dist@lists.debian.org, Debian Policy List <debian-policy@lists.debian.org>:
Bug#556015; Package debian-policy. (Mon, 07 Dec 2009 05:30:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to Steve Langasek <vorlon@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Policy List <debian-policy@lists.debian.org>. (Mon, 07 Dec 2009 05:30:03 GMT) Full text and rfc822 format available.

Message #77 received at 556015@bugs.debian.org (full text, mbox):

From: Steve Langasek <vorlon@debian.org>
To: Russ Allbery <rra@debian.org>
Cc: 556015@bugs.debian.org, Emilio Pozuelo Monfort <pochu@debian.org>
Subject: Re: Bug#556015: debian-policy: Clarify requirements for copyright file
Date: Sun, 6 Dec 2009 21:26:45 -0800
[Message part 1 (text/plain, inline)]
On Sun, Dec 06, 2009 at 09:18:21PM -0800, Russ Allbery wrote:
> Steve Langasek <vorlon@debian.org> writes:

> > If one package is arch: any and one package is arch: all, won't the lintian
> > check fail anyway in the event of a -B build (as happens on all the
> > autobuilders), due to the arch: all package being unavailable?  Would this
> > translate to an archive auto-reject?

> No, Lintian has a special tag that it issues when it's checking a binary
> package in isolation and therefore can't double-check that the doc symlink
> points within the same source package.  That tag isn't (and certainly
> shouldn't be) something that the archive auto-rejects on.

Does lintian issue that tag when the package isn't being checked in
isolation, it's being checked via the .changes file for a -B upload?

-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
Ubuntu Developer                                    http://www.debian.org/
slangasek@ubuntu.com                                     vorlon@debian.org
[signature.asc (application/pgp-signature, inline)]

Information forwarded to debian-bugs-dist@lists.debian.org, Debian Policy List <debian-policy@lists.debian.org>:
Bug#556015; Package debian-policy. (Mon, 07 Dec 2009 05:48:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to Russ Allbery <rra@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Policy List <debian-policy@lists.debian.org>. (Mon, 07 Dec 2009 05:48:03 GMT) Full text and rfc822 format available.

Message #82 received at 556015@bugs.debian.org (full text, mbox):

From: Russ Allbery <rra@debian.org>
To: Steve Langasek <vorlon@debian.org>
Cc: 556015@bugs.debian.org, Emilio Pozuelo Monfort <pochu@debian.org>
Subject: Re: Bug#556015: debian-policy: Clarify requirements for copyright file
Date: Sun, 06 Dec 2009 21:46:29 -0800
Steve Langasek <vorlon@debian.org> writes:
> On Sun, Dec 06, 2009 at 09:18:21PM -0800, Russ Allbery wrote:

>> No, Lintian has a special tag that it issues when it's checking a binary
>> package in isolation and therefore can't double-check that the doc symlink
>> points within the same source package.  That tag isn't (and certainly
>> shouldn't be) something that the archive auto-rejects on.

> Does lintian issue that tag when the package isn't being checked in
> isolation, it's being checked via the .changes file for a -B upload?

Looks that way.

        # We can only check if both packages come from the same source
        # if our source package is currently unpacked in the lab, too!
        if (-d "source") {      # yes, it's unpacked

            # $link from the same source pkg?
            if (-l "source/binary/$link") {
                # yes, everything is ok.
            } else {
                # no, it is not.
                tag "usr-share-doc-symlink-to-foreign-package", "$link";
            }
        } else {                # no, source is not available
            tag "cannot-check-whether-usr-share-doc-symlink-points-to-foreign-package", "";
        }

-- 
Russ Allbery (rra@debian.org)               <http://www.eyrie.org/~eagle/>




Information forwarded to debian-bugs-dist@lists.debian.org, Debian Policy List <debian-policy@lists.debian.org>:
Bug#556015; Package debian-policy. (Thu, 10 Dec 2009 10:15:07 GMT) Full text and rfc822 format available.

Acknowledgement sent to Charles Plessy <plessy@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Policy List <debian-policy@lists.debian.org>. (Thu, 10 Dec 2009 10:15:07 GMT) Full text and rfc822 format available.

Message #87 received at 556015@bugs.debian.org (full text, mbox):

From: Charles Plessy <plessy@debian.org>
To: 556015@bugs.debian.org
Subject: Re: Bug#556015: debian-policy: Clarify requirements for copyright file
Date: Thu, 10 Dec 2009 19:13:31 +0900
Le Fri, Dec 04, 2009 at 04:44:51PM -0800, Russ Allbery a écrit :
> 
> <p>
>   Every binary package must include a verbatim copy of its
>   copyright and distribution license in the file
>   <file>/usr/share/doc/<var>package</var>/copyright</file> or
>   symlink the <file>/usr/share/doc/<var>package</var> directory to
>   a package that does (see <ref id="copyrightfile"> for further
>   details).

Dear Russ and everybody,

a small nitpicking here: in many packages, the copy of the license and
copyright information is not verbatim. For instance:

 - we correct the FSF address in the GPL,
 - we often collapse copyright statements.

While I have no doubt that the current wording is not ambiguous for active
developers, I am a little bit concerned that it could confuse newcommers.

I understand that ‘verbatim’ is already in the current Policy wording, but
since the topic of this bug is ‘Clarify requirements for copyright file’, I
wonder if it should be addressed. In that case, we may need to wait for the
report of the SPI lawyers who were asked some questions related to this issue…

Have a nice day,

-- 
Charles Plessy
Tsurumi, Kanagawa, Japan




Removed tag(s) patch. Request was from Russ Allbery <rra@debian.org> to control@bugs.debian.org. (Mon, 21 Jun 2010 16:33:16 GMT) Full text and rfc822 format available.

Information forwarded to debian-bugs-dist@lists.debian.org, Debian Policy List <debian-policy@lists.debian.org>:
Bug#556015; Package debian-policy. (Sat, 03 Jul 2010 19:18:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to Russ Allbery <rra@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Policy List <debian-policy@lists.debian.org>. (Sat, 03 Jul 2010 19:18:03 GMT) Full text and rfc822 format available.

Message #94 received at 556015@bugs.debian.org (full text, mbox):

From: Russ Allbery <rra@debian.org>
To: 556015@bugs.debian.org
Subject: Re: Bug#556015: Clarify requirements for copyright file
Date: Sat, 03 Jul 2010 12:15:40 -0700
I think there was general consensus on the basic idea of the earlier
version of this patch, but Steve Langasek questioned the need for a
/usr/share/doc symlink to be supported by a direct dependency, as opposed
to an indirect dependency.  This version of the patch relaxes that and
allows the dependency to be indirect, provided that all the packages
involved are built from the same source package.  I believe this means we
will not be imposing any new requirements in this area than what Policy
had already required, but we'll be stating them more clearly.

Here's a revised version of the patch.  Objections or seconds?

diff --git a/policy.sgml b/policy.sgml
index bad28af..fb8468a 100644
--- a/policy.sgml
+++ b/policy.sgml
@@ -573,10 +573,14 @@
 	<heading>Copyright considerations</heading>
 
 	<p>
-	  Every package must be accompanied by a verbatim copy of its
+	  Every binary package must include a verbatim copy of its
 	  copyright information and distribution license in the file
-	  <file>/usr/share/doc/<var>package</var>/copyright</file>
-	  (see <ref id="copyrightfile"> for further details).
+	  <file>/usr/share/doc/<var>package</var>/copyright</file> or
+	  symlink the <file>/usr/share/doc/<var>package</var> directory to
+	  a package that does (see <ref id="copyrightfile"> for further
+	  details).  Every source package must include a verbatim copy of
+	  its copyright information and distribution license in the file
+	  <file>debian/copyright</file> (see <ref id="dpkgcopyright">).
 	</p>
 
 	<p>
@@ -1679,12 +1683,11 @@
       <sect id="dpkgcopyright">
 	<heading>Copyright: <file>debian/copyright</file></heading>
         <p>
-	  Every package must be accompanied by a verbatim copy of its
-	  copyright information and distribution license in the file
-	  <file>/usr/share/doc/<var>package</var>/copyright</file>
-	  (see <ref id="copyrightfile"> for further details). Also see
-	  <ref id="pkgcopyright"> for further considerations related
-	  to copyrights for packages.
+	  Every source package must include a verbatim copy of
+	  its copyright information and distribution license in the file
+	  <file>debian/copyright</file> (see <ref id="copyrightfile"> for
+	  further details).  Also see <ref id="pkgcopyright"> for further
+	  considerations related to copyrights for packages.
         </p>
       </sect>
       <sect>
@@ -9212,7 +9215,7 @@ END-INFO-DIR-ENTRY
 	</p>
       </sect>
 
-      <sect>
+      <sect id="addl-docs">
 	<heading>Additional documentation</heading>
 
 	<p>
@@ -9314,39 +9317,88 @@ END-INFO-DIR-ENTRY
 	<heading>Copyright information</heading>
 
 	<p>
-	  Every package must be accompanied by a verbatim copy of its
+	  Every binary package must either include a verbatim copy of its
 	  copyright information 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>
+	      The dependency on the package containing the copyright
+	      information and distribution license must be strong
+	      (<tt>Depends</tt> or <tt>Pre-Depends</tt>).  This dependency
+	      may be indirect through other packages (for example,
+	      packages A and B may have symlinks pointing to package C
+	      with A depending on B and B depending on C), but only if all
+	      packages involved in the dependency chain are built from the
+	      same source package.
+	    </item>
+
+	    <item>
+	      The <file>/usr/share/doc/<var>package</var>/copyright</file>
+	      file contained in the other package must contain the
+	      copyright information 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>
@@ -9381,10 +9433,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>

-- 
Russ Allbery (rra@debian.org)               <http://www.eyrie.org/~eagle/>




Added tag(s) patch. Request was from Russ Allbery <rra@debian.org> to control@bugs.debian.org. (Sat, 03 Jul 2010 19:18:10 GMT) Full text and rfc822 format available.

Information forwarded to debian-bugs-dist@lists.debian.org, Debian Policy List <debian-policy@lists.debian.org>:
Bug#556015; Package debian-policy. (Sun, 04 Jul 2010 11:33:07 GMT) Full text and rfc822 format available.

Acknowledgement sent to Jakub Wilk <jwilk@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Policy List <debian-policy@lists.debian.org>. (Sun, 04 Jul 2010 11:33:07 GMT) Full text and rfc822 format available.

Message #101 received at 556015@bugs.debian.org (full text, mbox):

From: Jakub Wilk <jwilk@debian.org>
To: 556015@bugs.debian.org
Subject: Re: Bug#556015: Clarify requirements for copyright file
Date: Sun, 4 Jul 2010 12:30:21 +0200
[Message part 1 (text/plain, inline)]
* Russ Allbery <rra@debian.org>, 2010-07-03, 12:15:
>+	    <item>
>+	      The dependency on the package containing the copyright
>+	      information and distribution license must be strong
>+	      (<tt>Depends</tt> or <tt>Pre-Depends</tt>).  This dependency
>+	      may be indirect through other packages (for example,
>+	      packages A and B may have symlinks pointing to package C
>+	      with A depending on B and B depending on C), but only if all
>+	      packages involved in the dependency chain are built from the
>+	      same source package.
>+	    </item>

I think this point rather belongs in 12.3 ("Additional documentation").

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

This hunk is a whitespace-only change; could be please avoid such 
changes?

-- 
Jakub Wilk
[signature.asc (application/pgp-signature, inline)]

Information forwarded to debian-bugs-dist@lists.debian.org, Debian Policy List <debian-policy@lists.debian.org>:
Bug#556015; Package debian-policy. (Sun, 04 Jul 2010 16:57:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to Russ Allbery <rra@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Policy List <debian-policy@lists.debian.org>. (Sun, 04 Jul 2010 16:57:03 GMT) Full text and rfc822 format available.

Message #106 received at 556015@bugs.debian.org (full text, mbox):

From: Russ Allbery <rra@debian.org>
To: 556015@bugs.debian.org
Subject: Re: Bug#556015: Clarify requirements for copyright file
Date: Sun, 04 Jul 2010 09:53:08 -0700
Jakub Wilk <jwilk@debian.org> writes:
> * Russ Allbery <rra@debian.org>, 2010-07-03, 12:15:

>>+	    <item>
>>+	      The dependency on the package containing the copyright
>>+	      information and distribution license must be strong
>>+	      (<tt>Depends</tt> or <tt>Pre-Depends</tt>).  This dependency
>>+	      may be indirect through other packages (for example,
>>+	      packages A and B may have symlinks pointing to package C
>>+	      with A depending on B and B depending on C), but only if all
>>+	      packages involved in the dependency chain are built from the
>>+	      same source package.
>>+	    </item>

> I think this point rather belongs in 12.3 ("Additional documentation").

Good point, and after looking at this further, I think all the
requirements should be moved to that section.  Otherwise, we have two
separate lists of requirements for /usr/share/doc symlinks that both have
to be followed.  I moved them all into 12.3 in the patch below.

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

> This hunk is a whitespace-only change; could be please avoid such changes?

Yeah, sorry, I knew that was a bad idea when I did it.  Reverted.  I'll
make that change separately.

Here's the new version of the patch.

diff --git a/policy.sgml b/policy.sgml
index bad28af..b71a26b 100644
--- a/policy.sgml
+++ b/policy.sgml
@@ -573,10 +573,14 @@
 	<heading>Copyright considerations</heading>
 
 	<p>
-	  Every package must be accompanied by a verbatim copy of its
+	  Every binary package must include a verbatim copy of its
 	  copyright information and distribution license in the file
-	  <file>/usr/share/doc/<var>package</var>/copyright</file>
-	  (see <ref id="copyrightfile"> for further details).
+	  <file>/usr/share/doc/<var>package</var>/copyright</file> or
+	  symlink the <file>/usr/share/doc/<var>package</var> directory to
+	  a package that does (see <ref id="copyrightfile"> for further
+	  details).  Every source package must include a verbatim copy of
+	  its copyright information and distribution license in the file
+	  <file>debian/copyright</file> (see <ref id="dpkgcopyright">).
 	</p>
 
 	<p>
@@ -1679,12 +1683,11 @@
       <sect id="dpkgcopyright">
 	<heading>Copyright: <file>debian/copyright</file></heading>
         <p>
-	  Every package must be accompanied by a verbatim copy of its
-	  copyright information and distribution license in the file
-	  <file>/usr/share/doc/<var>package</var>/copyright</file>
-	  (see <ref id="copyrightfile"> for further details). Also see
-	  <ref id="pkgcopyright"> for further considerations related
-	  to copyrights for packages.
+	  Every source package must include a verbatim copy of
+	  its copyright information and distribution license in the file
+	  <file>debian/copyright</file> (see <ref id="copyrightfile"> for
+	  further details).  Also see <ref id="pkgcopyright"> for further
+	  considerations related to copyrights for packages.
         </p>
       </sect>
       <sect>
@@ -9212,7 +9215,7 @@ END-INFO-DIR-ENTRY
 	</p>
       </sect>
 
-      <sect>
+      <sect id="addl-docs">
 	<heading>Additional documentation</heading>
 
 	<p>
@@ -9254,21 +9257,46 @@ END-INFO-DIR-ENTRY
 	</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.<footnote>
-            <p>
-              Please note that this does not override the section on
-              changelog files below, so the file 
-              <file>/usr/share/doc/<var>package</var>/changelog.Debian.gz</file>
-              must refer to the changelog for the current version of
-              <var>package</var> in question. In practice, this means
-              that the sources of the target and the destination of the
-              symlink must be the same (same source package and
-              version). 
-            </p>
-          </footnote>
+	  If two packages should share the same documentation, including
+	  the copyright file and the Debian
+	  changelog, <file>/usr/share/doc/<var>package</var></file> may be
+	  a symbolic link to the documentation directory
+	  in <file>/usr/share/doc</file> included in another package.
+	  This may only be done if all of the following requirements are
+	  met:
+	  <enumlist>
+	    <item>
+	      The two packages are built from the same source package.
+	    </item>
+	    <item>
+	      The package containing the symlink depends strongly
+	      (<tt>Depends</tt> or <tt>Pre-Depends</tt>) on the package
+	      containing the the <file>/usr/share/doc</file> and the files
+	      required to be in that directory.  This dependency may be
+	      indirect through other packages (for example, packages A and
+	      B may have symlinks pointing to package C with A depending
+	      on B and B depending on C), but only if all packages
+	      involved in the dependency chain are built from the same
+	      source package.
+	    </item>
+	    <item>
+	      The packages are the same version (both source and Debian
+	      revision) with the possible exception of binary-only
+	      rebuilds of one of the packages, since otherwise
+	      the <file>changelog.Debian.gz</file> in one of the two
+	      packages would not be the changelog for the latest version.
+	      This requires the dependency on the other package be tightly
+	      versioned.
+	    </item>
+	    <item>
+	      The <file>/usr/share/doc/<var>package</var>/copyright</file>
+	      file contained in the other package must contain the
+	      copyright information and distribution license for both
+	      packages and must meet all of the requirements for both
+	      packages.  See <ref id="copyrightfile"> for more
+	      information.
+	    </item>
+	  </enumlist>
 	</p>
 
 	<p>
@@ -9314,39 +9342,55 @@ END-INFO-DIR-ENTRY
 	<heading>Copyright information</heading>
 
 	<p>
-	  Every package must be accompanied by a verbatim copy of its
+	  Every binary package must either include a verbatim copy of its
 	  copyright information 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 the requirements
+	  described in <ref id="addl-docs"> are met.
 	</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>

-- 
Russ Allbery (rra@debian.org)               <http://www.eyrie.org/~eagle/>




Information forwarded to debian-bugs-dist@lists.debian.org, Debian Policy List <debian-policy@lists.debian.org>:
Bug#556015; Package debian-policy. (Sun, 04 Jul 2010 20:57:08 GMT) Full text and rfc822 format available.

Acknowledgement sent to Jakub Wilk <jwilk@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Policy List <debian-policy@lists.debian.org>. (Sun, 04 Jul 2010 20:57:08 GMT) Full text and rfc822 format available.

Message #111 received at 556015@bugs.debian.org (full text, mbox):

From: Jakub Wilk <jwilk@debian.org>
To: 556015@bugs.debian.org
Subject: Re: Bug#556015: Clarify requirements for copyright file
Date: Sun, 4 Jul 2010 21:55:36 +0200
[Message part 1 (text/plain, inline)]
* Russ Allbery <rra@debian.org>, 2010-07-04, 09:53:
>+	    <item>
>+	      The packages are the same version (both source and Debian
>+	      revision) with the possible exception of binary-only
>+	      rebuilds of one of the packages, since otherwise
>+	      the <file>changelog.Debian.gz</file> in one of the two
>+	      packages would not be the changelog for the latest version.
>+	      This requires the dependency on the other package be tightly
>+	      versioned.
>+	    </item>

I think this part needs a clarification, that is is not OK to link from 
an arch-dependent package to an arch:all one. See e.g. bug #524191.

-- 
Jakub Wilk
[signature.asc (application/pgp-signature, inline)]

Information forwarded to debian-bugs-dist@lists.debian.org, Debian Policy List <debian-policy@lists.debian.org>:
Bug#556015; Package debian-policy. (Sun, 04 Jul 2010 22:00:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Russ Allbery <rra@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Policy List <debian-policy@lists.debian.org>. (Sun, 04 Jul 2010 22:00:02 GMT) Full text and rfc822 format available.

Message #116 received at 556015@bugs.debian.org (full text, mbox):

From: Russ Allbery <rra@debian.org>
To: 556015@bugs.debian.org
Subject: Re: Bug#556015: Clarify requirements for copyright file
Date: Sun, 04 Jul 2010 14:56:11 -0700
Jakub Wilk <jwilk@debian.org> writes:
> * Russ Allbery <rra@debian.org>, 2010-07-04, 09:53:
>>+	    <item>
>>+	      The packages are the same version (both source and Debian
>>+	      revision) with the possible exception of binary-only
>>+	      rebuilds of one of the packages, since otherwise
>>+	      the <file>changelog.Debian.gz</file> in one of the two
>>+	      packages would not be the changelog for the latest version.
>>+	      This requires the dependency on the other package be tightly
>>+	      versioned.
>>+	    </item>

> I think this part needs a clarification, that is is not OK to link from an
> arch-dependent package to an arch:all one. See e.g. bug #524191.

Here's the question: should we say flat-out that both packages must either
be architecture-dependent or architecture-independent and then say that
the dependency must use (= <version>), or should we allow what I was
trying to allow above and then document, such as in a footnote, the
technique of depending on (>= <version>), (<< <version>+b99)?  The latter,
as mentioned, may hide binNMU changelog entries.

I'm good either way and am leaning a bit towards the former, but that
would definitely make some packages in Debian buggy.  (Although they're
arguably already buggy due to the behavior with changelog files.)

-- 
Russ Allbery (rra@debian.org)               <http://www.eyrie.org/~eagle/>




Information forwarded to debian-bugs-dist@lists.debian.org, Debian Policy List <debian-policy@lists.debian.org>:
Bug#556015; Package debian-policy. (Tue, 06 Jul 2010 01:45:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to Don Armstrong <don@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Policy List <debian-policy@lists.debian.org>. (Tue, 06 Jul 2010 01:45:03 GMT) Full text and rfc822 format available.

Message #121 received at 556015@bugs.debian.org (full text, mbox):

From: Don Armstrong <don@debian.org>
To: 556015@bugs.debian.org
Subject: Re: Bug#556015: Clarify requirements for copyright file
Date: Mon, 5 Jul 2010 18:40:24 -0700
On Sun, 04 Jul 2010, Russ Allbery wrote:
> Here's the question: should we say flat-out that both packages must
> either be architecture-dependent or architecture-independent and
> then say that the dependency must use (= <version>), or should we
> allow what I was trying to allow above and then document, such as in
> a footnote, the technique of depending on (>= <version>), (<<
> <version>+b99)? The latter, as mentioned, may hide binNMU changelog
> entries.

The changelog really documents the changes in the versions of the
source package, not changes in the binary package. Since a binary
rebuild doesn't involve any changes to the source package, it should
be ok to link to the same changelog. In all such cases, you should
have an exact dependency on the source version of the architecture
independent package, which needs to be the same as its binary version.
(In the case of an architecture dependent package, it should be the
binary version, of course.)


Don Armstrong

-- 
Life would be way easier
if I were easier.
 -- a softer world #473
    http://www.asofterworld.com/index.php?id=473

http://www.donarmstrong.com              http://rzlab.ucr.edu




Information forwarded to debian-bugs-dist@lists.debian.org, Debian Policy List <debian-policy@lists.debian.org>:
Bug#556015; Package debian-policy. (Tue, 06 Jul 2010 02:21:06 GMT) Full text and rfc822 format available.

Acknowledgement sent to Russ Allbery <rra@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Policy List <debian-policy@lists.debian.org>. (Tue, 06 Jul 2010 02:21:06 GMT) Full text and rfc822 format available.

Message #126 received at 556015@bugs.debian.org (full text, mbox):

From: Russ Allbery <rra@debian.org>
To: 556015@bugs.debian.org
Subject: Re: Bug#556015: Clarify requirements for copyright file
Date: Mon, 05 Jul 2010 19:16:52 -0700
Don Armstrong <don@debian.org> writes:
> On Sun, 04 Jul 2010, Russ Allbery wrote:

>> Here's the question: should we say flat-out that both packages must
>> either be architecture-dependent or architecture-independent and then
>> say that the dependency must use (= <version>), or should we allow what
>> I was trying to allow above and then document, such as in a footnote,
>> the technique of depending on (>= <version>), (<< <version>+b99)? The
>> latter, as mentioned, may hide binNMU changelog entries.

> The changelog really documents the changes in the versions of the source
> package, not changes in the binary package.

Well, they do, in that binNMUs do change the changelog included in the
package.  I'm inclined to agree that it's not a big deal if we lose that
information in the installed package, though.

> Since a binary rebuild doesn't involve any changes to the source
> package, it should be ok to link to the same changelog. In all such
> cases, you should have an exact dependency on the source version of the
> architecture independent package, which needs to be the same as its
> binary version.  (In the case of an architecture dependent package, it
> should be the binary version, of course.)

any -> any can use (= ${binary:Version})
any -> all can use (= ${source:Version})
all -> all can use (= ${source:Version})

The question is what to do for all -> any.  Right now, I think best
practice is to do something like:

    (>= ${source:Version}), (<< ${source:Version}+b99)

-- 
Russ Allbery (rra@debian.org)               <http://www.eyrie.org/~eagle/>




Information forwarded to debian-bugs-dist@lists.debian.org, Debian Policy List <debian-policy@lists.debian.org>:
Bug#556015; Package debian-policy. (Tue, 06 Jul 2010 07:54:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to Don Armstrong <don@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Policy List <debian-policy@lists.debian.org>. (Tue, 06 Jul 2010 07:54:03 GMT) Full text and rfc822 format available.

Message #131 received at 556015@bugs.debian.org (full text, mbox):

From: Don Armstrong <don@debian.org>
To: 556015@bugs.debian.org
Subject: Re: Bug#556015: Clarify requirements for copyright file
Date: Tue, 6 Jul 2010 00:52:14 -0700
On Mon, 05 Jul 2010, Russ Allbery wrote:
> Well, they do, in that binNMUs do change the changelog included in
> the package. I'm inclined to agree that it's not a big deal if we
> lose that information in the installed package, though.

Right; this is kind of an odd thing, because a binNMU has a source
version which doesn't match the entry in the changelog.

> any -> any can use (= ${binary:Version})
> any -> all can use (= ${source:Version})
> all -> all can use (= ${source:Version})
> 
> The question is what to do for all -> any.  Right now, I think best
> practice is to do something like:
> 
>     (>= ${source:Version}), (<< ${source:Version}+b99)

In general, if you had an arch all package which had to be installed,
it should have the changelog in it, and the arch any package wouldn't.

The only exception I can see is a case where the arch: all package
wouldn't be a dependency of the arch: any package, but the arch: all
package requires functionality in the arch: any package (and there
isn't any required arch: all package from the same source). [Like a
source package which builds a core set of binaries, and an -examples
package of perl scripts which needs the core set to function.]


Don Armstrong

-- 
Personally, I think my choice in the mostest-superlative-computer wars
has to be the HP-48 series of calculators.  They'll run almost
anything.  And if they can't, while I'll just plug a Linux box into
the serial port and load up the HP-48 VT-100 emulator.
 -- Jeff Dege, jdege@winternet.com

http://www.donarmstrong.com              http://rzlab.ucr.edu




Information forwarded to debian-bugs-dist@lists.debian.org, Debian Policy List <debian-policy@lists.debian.org>:
Bug#556015; Package debian-policy. (Wed, 07 Jul 2010 16:15:06 GMT) Full text and rfc822 format available.

Acknowledgement sent to Russ Allbery <rra@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Policy List <debian-policy@lists.debian.org>. (Wed, 07 Jul 2010 16:15:06 GMT) Full text and rfc822 format available.

Message #136 received at 556015@bugs.debian.org (full text, mbox):

From: Russ Allbery <rra@debian.org>
To: 556015@bugs.debian.org
Subject: Re: Bug#556015: Clarify requirements for copyright file
Date: Wed, 07 Jul 2010 09:12:43 -0700
Don Armstrong <don@debian.org> writes:
> On Mon, 05 Jul 2010, Russ Allbery wrote:

>> Well, they do, in that binNMUs do change the changelog included in the
>> package. I'm inclined to agree that it's not a big deal if we lose that
>> information in the installed package, though.

> Right; this is kind of an odd thing, because a binNMU has a source
> version which doesn't match the entry in the changelog.

>> any -> any can use (= ${binary:Version})
>> any -> all can use (= ${source:Version})
>> all -> all can use (= ${source:Version})
>> 
>> The question is what to do for all -> any.  Right now, I think best
>> practice is to do something like:
>> 
>>     (>= ${source:Version}), (<< ${source:Version}+b99)

> In general, if you had an arch all package which had to be installed, it
> should have the changelog in it, and the arch any package wouldn't.

> The only exception I can see is a case where the arch: all package
> wouldn't be a dependency of the arch: any package, but the arch: all
> package requires functionality in the arch: any package (and there isn't
> any required arch: all package from the same source). [Like a source
> package which builds a core set of binaries, and an -examples package of
> perl scripts which needs the core set to function.]

Here's a patch that is explicit about the required dependencies and
discourages the last case.  Does this look good to everyone?

diff --git a/policy.sgml b/policy.sgml
index 7736ddb..c7be32f 100644
--- a/policy.sgml
+++ b/policy.sgml
@@ -573,10 +573,15 @@
 	<heading>Copyright considerations</heading>
 
 	<p>
-	  Every package must be accompanied by a verbatim copy of its
+	  Every binary package must include a verbatim copy of its
 	  copyright information and distribution license in the file
-	  <file>/usr/share/doc/<var>package</var>/copyright</file>
-	  (see <ref id="copyrightfile"> for further details).
+	  <file>/usr/share/doc/<var>package</var>/copyright</file> or
+	  symlink the <file>/usr/share/doc/<var>package</var></file>
+	  directory to a package that does (see <ref id="copyrightfile">
+	  for further details).  Every source package must include a
+	  verbatim copy of its copyright information and distribution
+	  license in the file <file>debian/copyright</file>
+	  (see <ref id="dpkgcopyright">).
 	</p>
 
 	<p>
@@ -1679,12 +1684,11 @@
       <sect id="dpkgcopyright">
 	<heading>Copyright: <file>debian/copyright</file></heading>
         <p>
-	  Every package must be accompanied by a verbatim copy of its
-	  copyright information and distribution license in the file
-	  <file>/usr/share/doc/<var>package</var>/copyright</file>
-	  (see <ref id="copyrightfile"> for further details). Also see
-	  <ref id="pkgcopyright"> for further considerations related
-	  to copyrights for packages.
+	  Every source package must include a verbatim copy of
+	  its copyright information and distribution license in the file
+	  <file>debian/copyright</file> (see <ref id="copyrightfile"> for
+	  further details).  Also see <ref id="pkgcopyright"> for further
+	  considerations related to copyrights for packages.
         </p>
       </sect>
       <sect>
@@ -9247,7 +9251,7 @@ END-INFO-DIR-ENTRY
 	</p>
       </sect>
 
-      <sect>
+      <sect id="addl-docs">
 	<heading>Additional documentation</heading>
 
 	<p>
@@ -9289,21 +9293,65 @@ END-INFO-DIR-ENTRY
 	</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.<footnote>
-            <p>
-              Please note that this does not override the section on
-              changelog files below, so the file 
-              <file>/usr/share/doc/<var>package</var>/changelog.Debian.gz</file>
-              must refer to the changelog for the current version of
-              <var>package</var> in question. In practice, this means
-              that the sources of the target and the destination of the
-              symlink must be the same (same source package and
-              version). 
-            </p>
-          </footnote>
+	  If two packages should share the same documentation, including
+	  the copyright file and the Debian
+	  changelog, <file>/usr/share/doc/<var>package</var></file> may be
+	  a symbolic link to the documentation directory
+	  in <file>/usr/share/doc</file> included in another package.
+	  This may only be done if all of the following requirements are
+	  met:
+	  <enumlist>
+	    <item>
+	      The two packages are built from the same source package.
+	    </item>
+	    <item>
+	      The package containing the symlink depends strongly
+	      (<tt>Depends</tt> or <tt>Pre-Depends</tt>) on the package
+	      containing the the <file>/usr/share/doc</file> and the files
+	      required to be in that directory.  This dependency may be
+	      indirect through other packages (for example, packages A and
+	      B may have symlinks pointing to package C with A depending
+	      on B and B depending on C), but only if all packages
+	      involved in the dependency chain are built from the same
+	      source package.
+	    </item>
+	    <item>
+	      The packages are the same version (both source and Debian
+	      revision) with the possible exception of binary-only
+	      rebuilds of one of the packages, since otherwise
+	      the <file>changelog.Debian.gz</file> in one of the two
+	      packages would not be the changelog for the latest version.
+	      This requires a dependency that ensures exactly the right
+	      version of the other package be installed.  For a dependency
+	      between two binary-dependent packages, use:
+	      <example>
+Depends: foo (= ${binary:Version})
+	      </example>
+	      For a dependency between two architecture-independent
+	      packages or from an architecture-dependent package to an
+	      architecture-independent package, use:
+	      <example>
+Depends: foo (= ${source:Version})
+	      </example>
+	      Putting the symlink in an architecture-independent package
+	      and the documentation directory in an architecture-dependent
+	      package should be avoided if the documentation can be moved
+	      to an architecture-independent package instead, but if
+	      required, a dependency similar to:
+	      <example>
+Depends: foo (>= ${source:Version}), foo (<< ${source:Version}+b99)
+	      </example>
+	      can be used.
+	    </item>
+	    <item>
+	      The <file>/usr/share/doc/<var>package</var>/copyright</file>
+	      file contained in the other package must contain the
+	      copyright information and distribution license for both
+	      packages and must meet all of the requirements for both
+	      packages.  See <ref id="copyrightfile"> for more
+	      information.
+	    </item>
+	  </enumlist>
 	</p>
 
 	<p>
@@ -9349,39 +9397,55 @@ END-INFO-DIR-ENTRY
 	<heading>Copyright information</heading>
 
 	<p>
-	  Every package must be accompanied by a verbatim copy of its
+	  Every binary package must either include a verbatim copy of its
 	  copyright information 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 the requirements
+	  described in <ref id="addl-docs"> are met.
 	</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>

-- 
Russ Allbery (rra@debian.org)               <http://www.eyrie.org/~eagle/>




Information forwarded to debian-bugs-dist@lists.debian.org, Debian Policy List <debian-policy@lists.debian.org>:
Bug#556015; Package debian-policy. (Wed, 07 Jul 2010 16:39:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Julien Cristau <jcristau@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Policy List <debian-policy@lists.debian.org>. (Wed, 07 Jul 2010 16:39:03 GMT) Full text and rfc822 format available.

Message #141 received at 556015@bugs.debian.org (full text, mbox):

From: Julien Cristau <jcristau@debian.org>
To: Russ Allbery <rra@debian.org>, 556015@bugs.debian.org
Subject: Re: Bug#556015: debian-policy: Clarify requirements for copyright file
Date: Wed, 7 Jul 2010 17:36:34 +0100
[Message part 1 (text/plain, inline)]
Sorry for coming back to this, I think I missed this new requirement
initially (or I skipped this thread, I don't remember...).

On Thu, Nov 12, 2009 at 23:28:11 -0800, Russ Allbery wrote:

> Charles Plessy <plessy@debian.org> writes:
> > Le Thu, Nov 12, 2009 at 10:22:37PM -0800, Russ Allbery a écrit :
> 
> >> It's an additional requirement over the current Policy statement, but
> >> according to previous statements by ftpmaster, it reflects what's
> >> currently being enforced during NEW processing.
> 
> Sorry, this isn't completely correct.  It's a *relaxation* of the existing
> requirement in one significant sense, and a strengthening in a different
> sense.
> 
> Policy currently says:
> 
>     A copy of the file which will be installed in
>     /usr/share/doc/package/copyright should be in debian/copyright in the
>     source package.
> 
> So in other words, any package that does anything other than install the
> debian/copyright file from the source package into the appropriate place
> in the binary package is buggy according to Policy currently.
> 
> Now, I know that some package maintainers like to provide separate
> copyright files for different binary packages if, say, one is under the
> GPL and another is under the BSD license.  Currently, Policy says that
> they should not do that.  I'm proposing relaxing that requirement and
> allowing them to do so, provided that debian/copyright still documents the
> copyright and license information for the source package as a whole.
> 
> I'm also proposing changing the requirement for debian/copyright from a
> should to a must.  I believe that reflects existing practice.  A package
> that has no debian/copyright file is not going to make it into the archive
> now.
> 
Is this actually true?  e.g. libxcb does 'cat debian/copyright.debian
COPYING > debian/copyright' at build time, and that's never been an
issue for NEW processing afaik...

Cheers,
Julien
[signature.asc (application/pgp-signature, inline)]

Information forwarded to debian-bugs-dist@lists.debian.org, Debian Policy List <debian-policy@lists.debian.org>:
Bug#556015; Package debian-policy. (Wed, 07 Jul 2010 18:21:04 GMT) Full text and rfc822 format available.

Acknowledgement sent to Jakub Wilk <jwilk@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Policy List <debian-policy@lists.debian.org>. (Wed, 07 Jul 2010 18:21:04 GMT) Full text and rfc822 format available.

Message #146 received at 556015@bugs.debian.org (full text, mbox):

From: Jakub Wilk <jwilk@debian.org>
To: 556015@bugs.debian.org
Subject: Re: Bug#556015: Clarify requirements for copyright file
Date: Wed, 7 Jul 2010 19:19:23 +0200
[Message part 1 (text/plain, inline)]
* Russ Allbery <rra@debian.org>, 2010-07-07, 09:12:
>+	    <item>
>+	      The packages are the same version (both source and Debian
>+	      revision) with the possible exception of binary-only
>+	      rebuilds of one of the packages, since otherwise
>+	      the <file>changelog.Debian.gz</file> in one of the two
>+	      packages would not be the changelog for the latest version.
>+	      This requires a dependency that ensures exactly the right
>+	      version of the other package be installed.  For a dependency
>+	      between two binary-dependent packages, use:
>+	      <example>
>+Depends: foo (= ${binary:Version})
>+	      </example>
>+	      For a dependency between two architecture-independent
>+	      packages or from an architecture-dependent package to an
>+	      architecture-independent package, use:
>+	      <example>
>+Depends: foo (= ${source:Version})
>+	      </example>
>+	      Putting the symlink in an architecture-independent package
>+	      and the documentation directory in an architecture-dependent
>+	      package should be avoided if the documentation can be moved
>+	      to an architecture-independent package instead, but if
>+	      required, a dependency similar to:
>+	      <example>
>+Depends: foo (>= ${source:Version}), foo (<< ${source:Version}+b99)
>+	      </example>
>+	      can be used.
>+	    </item>

This encourages arch:any -> arch:all symlinks, which is exactly what I 
wanted to be disallowed.

-- 
Jakub Wilk
[signature.asc (application/pgp-signature, inline)]

Information forwarded to debian-bugs-dist@lists.debian.org, Debian Policy List <debian-policy@lists.debian.org>:
Bug#556015; Package debian-policy. (Wed, 07 Jul 2010 18:39:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to Russ Allbery <rra@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Policy List <debian-policy@lists.debian.org>. (Wed, 07 Jul 2010 18:39:03 GMT) Full text and rfc822 format available.

Message #151 received at 556015@bugs.debian.org (full text, mbox):

From: Russ Allbery <rra@debian.org>
To: 556015@bugs.debian.org
Subject: Re: Bug#556015: Clarify requirements for copyright file
Date: Wed, 07 Jul 2010 11:35:32 -0700
Jakub Wilk <jwilk@debian.org> writes:
> * Russ Allbery <rra@debian.org>, 2010-07-07, 09:12:

>>+	    <item>
>>+	      The packages are the same version (both source and Debian
>>+	      revision) with the possible exception of binary-only
>>+	      rebuilds of one of the packages, since otherwise
>>+	      the <file>changelog.Debian.gz</file> in one of the two
>>+	      packages would not be the changelog for the latest version.
>>+	      This requires a dependency that ensures exactly the right
>>+	      version of the other package be installed.  For a dependency
>>+	      between two binary-dependent packages, use:
>>+	      <example>
>>+Depends: foo (= ${binary:Version})
>>+	      </example>
>>+	      For a dependency between two architecture-independent
>>+	      packages or from an architecture-dependent package to an
>>+	      architecture-independent package, use:
>>+	      <example>
>>+Depends: foo (= ${source:Version})
>>+	      </example>
>>+	      Putting the symlink in an architecture-independent package
>>+	      and the documentation directory in an architecture-dependent
>>+	      package should be avoided if the documentation can be moved
>>+	      to an architecture-independent package instead, but if
>>+	      required, a dependency similar to:
>>+	      <example>
>>+Depends: foo (>= ${source:Version}), foo (<< ${source:Version}+b99)
>>+	      </example>
>>+	      can be used.
>>+	    </item>

> This encourages arch:any -> arch:all symlinks, which is exactly what I
> wanted to be disallowed.

Why?  Because of the binNMU changelog entry?

Don and I talked about that some earlier in the bug log and neither of us
thought that losing that information was horribly important.  But I don't
feel strongly about it; if we want to ban all doc symlinks except for
any:any and all:all, we can do that, and that would prevent the
information loss.  Whether or not those packages are currently buggy
depends on how tightly one wants to interpret the requirements around
changelog files.

-- 
Russ Allbery (rra@debian.org)               <http://www.eyrie.org/~eagle/>




Information forwarded to debian-bugs-dist@lists.debian.org, Debian Policy List <debian-policy@lists.debian.org>:
Bug#556015; Package debian-policy. (Wed, 07 Jul 2010 19:03:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to Don Armstrong <don@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Policy List <debian-policy@lists.debian.org>. (Wed, 07 Jul 2010 19:03:03 GMT) Full text and rfc822 format available.

Message #156 received at 556015@bugs.debian.org (full text, mbox):

From: Don Armstrong <don@debian.org>
To: 556015@bugs.debian.org
Subject: Re: Bug#556015: Clarify requirements for copyright file
Date: Wed, 7 Jul 2010 11:59:51 -0700
On Wed, 07 Jul 2010, Jakub Wilk wrote:
> This encourages arch:any -> arch:all symlinks, which is exactly what
> I wanted to be disallowed.

If we're going to allow any symlinks, these are the ones that are most
advantagous to allow, because otherwise we're duplicating
documentation and copyrights in all of our architectures instead of
just having them present once.

I think there's some confusion here; debian/control documents changes
to the source package, and as such, should always have the source
version listed. [Binnmus have a changelog revision, but this is
technically a violation, as their source version is not Y+bNN, but Y.]


Don Armstrong

-- 
Of course Pacman didn't influence us as kids. If it did, we'd be
running around in darkened rooms, popping pills and listening to
repetitive music.

http://www.donarmstrong.com              http://rzlab.ucr.edu




Information forwarded to debian-bugs-dist@lists.debian.org, Debian Policy List <debian-policy@lists.debian.org>:
Bug#556015; Package debian-policy. (Wed, 07 Jul 2010 23:39:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to Steve Langasek <vorlon@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Policy List <debian-policy@lists.debian.org>. (Wed, 07 Jul 2010 23:39:03 GMT) Full text and rfc822 format available.

Message #161 received at 556015@bugs.debian.org (full text, mbox):

From: Steve Langasek <vorlon@debian.org>
To: Julien Cristau <jcristau@debian.org>, 556015@bugs.debian.org
Cc: Russ Allbery <rra@debian.org>
Subject: Re: Bug#556015: debian-policy: Clarify requirements for copyright file
Date: Wed, 7 Jul 2010 16:38:21 -0700
[Message part 1 (text/plain, inline)]
On Wed, Jul 07, 2010 at 05:36:34PM +0100, Julien Cristau wrote:

> > I'm also proposing changing the requirement for debian/copyright from a
> > should to a must.  I believe that reflects existing practice.  A package
> > that has no debian/copyright file is not going to make it into the archive
> > now.

> Is this actually true?  e.g. libxcb does 'cat debian/copyright.debian
> COPYING > debian/copyright' at build time, and that's never been an
> issue for NEW processing afaik...

This is one of the lintian checks that is now enforced by dak, AIUI.

-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
Ubuntu Developer                                    http://www.debian.org/
slangasek@ubuntu.com                                     vorlon@debian.org
[signature.asc (application/pgp-signature, inline)]

Information forwarded to debian-bugs-dist@lists.debian.org, Debian Policy List <debian-policy@lists.debian.org>:
Bug#556015; Package debian-policy. (Wed, 07 Jul 2010 23:51:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Russ Allbery <rra@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Policy List <debian-policy@lists.debian.org>. (Wed, 07 Jul 2010 23:51:02 GMT) Full text and rfc822 format available.

Message #166 received at 556015@bugs.debian.org (full text, mbox):

From: Russ Allbery <rra@debian.org>
To: Steve Langasek <vorlon@debian.org>
Cc: Julien Cristau <jcristau@debian.org>, 556015@bugs.debian.org, ftpmaster@debian.org
Subject: Re: Bug#556015: debian-policy: Clarify requirements for copyright file
Date: Wed, 07 Jul 2010 16:47:13 -0700
Steve Langasek <vorlon@debian.org> writes:
> On Wed, Jul 07, 2010 at 05:36:34PM +0100, Julien Cristau wrote:
>> Russ Allbery <rra@debian.org> writes:

>>> I'm also proposing changing the requirement for debian/copyright from
>>> a should to a must.  I believe that reflects existing practice.  A
>>> package that has no debian/copyright file is not going to make it into
>>> the archive now.

>> Is this actually true?  e.g. libxcb does 'cat debian/copyright.debian
>> COPYING > debian/copyright' at build time, and that's never been an
>> issue for NEW processing afaik...

> This is one of the lintian checks that is now enforced by dak, AIUI.

I don't think Lintian ever looks at debian/copyright in the source
package.  The copyright checks in Lintian are all performed against the
binary package.

If ftp-master doesn't care, then Policy shouldn't care.  Copying
ftp-master for an opinion.

-- 
Russ Allbery (rra@debian.org)               <http://www.eyrie.org/~eagle/>




Information forwarded to debian-bugs-dist@lists.debian.org, Debian Policy List <debian-policy@lists.debian.org>:
Bug#556015; Package debian-policy. (Thu, 08 Jul 2010 00:27:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to Steve Langasek <vorlon@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Policy List <debian-policy@lists.debian.org>. (Thu, 08 Jul 2010 00:27:03 GMT) Full text and rfc822 format available.

Message #171 received at 556015@bugs.debian.org (full text, mbox):

From: Steve Langasek <vorlon@debian.org>
To: 556015@bugs.debian.org
Subject: Re: Bug#556015: Clarify requirements for copyright file
Date: Wed, 7 Jul 2010 17:24:59 -0700
[Message part 1 (text/plain, inline)]
On Mon, Jul 05, 2010 at 07:16:52PM -0700, Russ Allbery wrote:
> Don Armstrong <don@debian.org> writes:
> > On Sun, 04 Jul 2010, Russ Allbery wrote:

> >> Here's the question: should we say flat-out that both packages must
> >> either be architecture-dependent or architecture-independent and then
> >> say that the dependency must use (= <version>), or should we allow what
> >> I was trying to allow above and then document, such as in a footnote,
> >> the technique of depending on (>= <version>), (<< <version>+b99)? The
> >> latter, as mentioned, may hide binNMU changelog entries.

> > The changelog really documents the changes in the versions of the source
> > package, not changes in the binary package.

> Well, they do, in that binNMUs do change the changelog included in the
> package.  I'm inclined to agree that it's not a big deal if we lose that
> information in the installed package, though.

Well, the binary package changelog is the *only* place this information is
captured that the average user/developer can get at it.  (It's stored in
wanna-build's db and it's in the .changes file that's archived on
ftp-master, but since these are binary uploads it's not even posted to
debian-devel-changes - if you even knew where to look in that haystack).  I
would think that we care about users being able to see why a package is
being upgraded on their system, don't we?

OTOH, thinking ahead a little bit, if we *do* insist on requiring changelog
entries for binNMUs in the package that may make things interesting for
multiarch.  Since binNMUS are per-architecture, binNMUS on two architectures
may have the same version but different changelog entries, making it
impossible to share the /usr/share/doc/ directory between archs for these
packages.  Maybe the answer there is to have a policy of always binNMUing
multiarch packages in lockstep; I don't think the alternative of
*requiring* multiarch packages to symlink to an arch: all package for their
changelogs makes much sense.

> any -> any can use (= ${binary:Version})
> any -> all can use (= ${source:Version})
> all -> all can use (= ${source:Version})

> The question is what to do for all -> any.  Right now, I think best
> practice is to do something like:

>     (>= ${source:Version}), (<< ${source:Version}+b99)

<< ${source:Version}+c ?

-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
Ubuntu Developer                                    http://www.debian.org/
slangasek@ubuntu.com                                     vorlon@debian.org
[signature.asc (application/pgp-signature, inline)]

Information forwarded to debian-bugs-dist@lists.debian.org, Debian Policy List <debian-policy@lists.debian.org>:
Bug#556015; Package debian-policy. (Thu, 08 Jul 2010 00:33:05 GMT) Full text and rfc822 format available.

Acknowledgement sent to Steve Langasek <vorlon@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Policy List <debian-policy@lists.debian.org>. (Thu, 08 Jul 2010 00:33:05 GMT) Full text and rfc822 format available.

Message #176 received at 556015@bugs.debian.org (full text, mbox):

From: Steve Langasek <vorlon@debian.org>
To: 556015@bugs.debian.org
Subject: Re: Bug#556015: Clarify requirements for copyright file
Date: Wed, 7 Jul 2010 17:30:47 -0700
[Message part 1 (text/plain, inline)]
On Wed, Jul 07, 2010 at 11:59:51AM -0700, Don Armstrong wrote:
> I think there's some confusion here; [debian/changelog] documents changes
> to the source package, and as such, should always have the source
> version listed. [Binnmus have a changelog revision, but this is
> technically a violation, as their source version is not Y+bNN, but Y.]

I think this technical violation is a bug in policy, not in binNMU
practices.

-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
Ubuntu Developer                                    http://www.debian.org/
slangasek@ubuntu.com                                     vorlon@debian.org
[signature.asc (application/pgp-signature, inline)]

Information forwarded to debian-bugs-dist@lists.debian.org, Debian Policy List <debian-policy@lists.debian.org>:
Bug#556015; Package debian-policy. (Thu, 08 Jul 2010 00:33:07 GMT) Full text and rfc822 format available.

Acknowledgement sent to Russ Allbery <rra@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Policy List <debian-policy@lists.debian.org>. (Thu, 08 Jul 2010 00:33:07 GMT) Full text and rfc822 format available.

Message #181 received at 556015@bugs.debian.org (full text, mbox):

From: Russ Allbery <rra@debian.org>
To: Steve Langasek <vorlon@debian.org>
Cc: 556015@bugs.debian.org
Subject: Re: Bug#556015: Clarify requirements for copyright file
Date: Wed, 07 Jul 2010 17:30:57 -0700
Steve Langasek <vorlon@debian.org> writes:

> OTOH, thinking ahead a little bit, if we *do* insist on requiring
> changelog entries for binNMUs in the package that may make things
> interesting for multiarch.  Since binNMUS are per-architecture, binNMUS
> on two architectures may have the same version but different changelog
> entries, making it impossible to share the /usr/share/doc/ directory
> between archs for these packages.  Maybe the answer there is to have a
> policy of always binNMUing multiarch packages in lockstep; I don't think
> the alternative of *requiring* multiarch packages to symlink to an arch:
> all package for their changelogs makes much sense.

We could simply require multiarch packages to not symlink their
/usr/share/doc directory.  It's a space optimization only, really, and
feels like something we can give up if there's a reason to do so.

-- 
Russ Allbery (rra@debian.org)               <http://www.eyrie.org/~eagle/>




Information forwarded to debian-bugs-dist@lists.debian.org, Debian Policy List <debian-policy@lists.debian.org>:
Bug#556015; Package debian-policy. (Thu, 08 Jul 2010 00:45:06 GMT) Full text and rfc822 format available.

Acknowledgement sent to Steve Langasek <vorlon@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Policy List <debian-policy@lists.debian.org>. (Thu, 08 Jul 2010 00:45:07 GMT) Full text and rfc822 format available.

Message #186 received at 556015@bugs.debian.org (full text, mbox):

From: Steve Langasek <vorlon@debian.org>
To: Russ Allbery <rra@debian.org>, 556015@bugs.debian.org
Subject: Re: Bug#556015: Clarify requirements for copyright file
Date: Wed, 7 Jul 2010 17:44:30 -0700
[Message part 1 (text/plain, inline)]
On Wed, Jul 07, 2010 at 05:30:57PM -0700, Russ Allbery wrote:
> Steve Langasek <vorlon@debian.org> writes:

> > OTOH, thinking ahead a little bit, if we *do* insist on requiring
> > changelog entries for binNMUs in the package that may make things
> > interesting for multiarch.  Since binNMUS are per-architecture, binNMUS
> > on two architectures may have the same version but different changelog
> > entries, making it impossible to share the /usr/share/doc/ directory
> > between archs for these packages.  Maybe the answer there is to have a
> > policy of always binNMUing multiarch packages in lockstep; I don't think
> > the alternative of *requiring* multiarch packages to symlink to an arch:
> > all package for their changelogs makes much sense.

> We could simply require multiarch packages to not symlink their
> /usr/share/doc directory.  It's a space optimization only, really, and
> feels like something we can give up if there's a reason to do so.

Sorry, I guess that was a bit obscure for those not closely tracking
multiarch.  The issue is that the package for each architecture will each
have its own copy of /usr/share/doc/$pkg/changelog.Debian.gz, and if those
files are *different*, dpkg will not allow installation of more than one
architecture variant of the package.

This means that any package tagged multiarch needs special care to insure
it's actually installable in the face of binNMUs, relative to our current
practices.  Either we stop including binNMU changelog entries in the
packages altogther (but this is hackish to implement), or we require all
architectures to be binNMUed in lockstep, or we *do* symlink the
/usr/share/doc directory to a common arch: all package.

The last would have to be allowed by policy, and implies that for certain
packages, users will effectively never see the binNMU changelog entry.

-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
Ubuntu Developer                                    http://www.debian.org/
slangasek@ubuntu.com                                     vorlon@debian.org
[signature.asc (application/pgp-signature, inline)]

Information forwarded to debian-bugs-dist@lists.debian.org, Debian Policy List <debian-policy@lists.debian.org>:
Bug#556015; Package debian-policy. (Thu, 08 Jul 2010 00:51:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Don Armstrong <don@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Policy List <debian-policy@lists.debian.org>. (Thu, 08 Jul 2010 00:51:02 GMT) Full text and rfc822 format available.

Message #191 received at 556015@bugs.debian.org (full text, mbox):

From: Don Armstrong <don@debian.org>
To: 556015@bugs.debian.org
Subject: Re: Bug#556015: Clarify requirements for copyright file
Date: Wed, 7 Jul 2010 17:48:40 -0700
On Wed, 07 Jul 2010, Steve Langasek wrote:
> On Wed, Jul 07, 2010 at 11:59:51AM -0700, Don Armstrong wrote:
> > I think there's some confusion here; [debian/changelog] documents changes
> > to the source package, and as such, should always have the source
> > version listed. [Binnmus have a changelog revision, but this is
> > technically a violation, as their source version is not Y+bNN, but Y.]
> 
> I think this technical violation is a bug in policy, not in binNMU
> practices.

I'd be fine with a specific exception for binNMUs, but not a more
general one, as the ability to reconstruct a version graph based on
the source version entries in debian/changelog is fairly important for
the BTS. [It's of less importance now that dak exports that to the
BTS, but it is still how we generated it all in the first place.]


Don Armstrong

-- 
I will not make any deals with you. I've resigned. I will not be
pushed, filed, stamped, indexed, briefed, debriefed or numbered. My
life is my own. I resign.
 -- Patrick McGoohan as Number 6 in "The Prisoner"

http://www.donarmstrong.com              http://rzlab.ucr.edu




Information forwarded to debian-bugs-dist@lists.debian.org, Debian Policy List <debian-policy@lists.debian.org>:
Bug#556015; Package debian-policy. (Thu, 08 Jul 2010 00:54:06 GMT) Full text and rfc822 format available.

Acknowledgement sent to Russ Allbery <rra@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Policy List <debian-policy@lists.debian.org>. (Thu, 08 Jul 2010 00:54:06 GMT) Full text and rfc822 format available.

Message #196 received at 556015@bugs.debian.org (full text, mbox):

From: Russ Allbery <rra@debian.org>
To: Steve Langasek <vorlon@debian.org>
Cc: 556015@bugs.debian.org
Subject: Re: Bug#556015: Clarify requirements for copyright file
Date: Wed, 07 Jul 2010 17:51:36 -0700
Steve Langasek <vorlon@debian.org> writes:
> On Wed, Jul 07, 2010 at 05:30:57PM -0700, Russ Allbery wrote:
>> Steve Langasek <vorlon@debian.org> writes:

>>> OTOH, thinking ahead a little bit, if we *do* insist on requiring
>>> changelog entries for binNMUs in the package that may make things
>>> interesting for multiarch.  Since binNMUS are per-architecture,
>>> binNMUS on two architectures may have the same version but different
>>> changelog entries, making it impossible to share the /usr/share/doc/
>>> directory between archs for these packages.  Maybe the answer there is
>>> to have a policy of always binNMUing multiarch packages in lockstep; I
>>> don't think the alternative of *requiring* multiarch packages to
>>> symlink to an arch:  all package for their changelogs makes much
>>> sense.

>> We could simply require multiarch packages to not symlink their
>> /usr/share/doc directory.  It's a space optimization only, really, and
>> feels like something we can give up if there's a reason to do so.

> Sorry, I guess that was a bit obscure for those not closely tracking
> multiarch.  The issue is that the package for each architecture will
> each have its own copy of /usr/share/doc/$pkg/changelog.Debian.gz, and
> if those files are *different*, dpkg will not allow installation of more
> than one architecture variant of the package.

Oh, sorry, now I get it.

> This means that any package tagged multiarch needs special care to
> insure it's actually installable in the face of binNMUs, relative to our
> current practices.  Either we stop including binNMU changelog entries in
> the packages altogther (but this is hackish to implement), or we require
> all architectures to be binNMUed in lockstep, or we *do* symlink the
> /usr/share/doc directory to a common arch: all package.

It's kind of a shame to always have to binNMU all architectures in
lockstep just because of a problem like this.  Admittedly, most binNMU
reasons already require that, but every once in a while there's something
that's arch-specific, and making armel rebuild everything because of that
is sort of annoying.

> The last would have to be allowed by policy, and implies that for
> certain packages, users will effectively never see the binNMU changelog
> entry.

The business of binary NMUs adding their own changelog entries to the
regular changelog feels like a hack to me, and this underscores the
reasons why.  It introduces another data source for changelog entries that
isn't the source package, which is strange and weird and breaks other
assumptions.

I'm half-tempted to propose introducing a binary-changelog control
information file in the control area of a binary package that can be used
for binNMUs, although there are a bunch of complications with that (such
as the fact that users looking directly in /usr/share/doc/<package>
wouldn't see the entry and would need to also look in /var/lib/dpkg/info
or wherever we dropped the file in the file system after installation).

-- 
Russ Allbery (rra@debian.org)               <http://www.eyrie.org/~eagle/>




Information forwarded to debian-bugs-dist@lists.debian.org, Debian Policy List <debian-policy@lists.debian.org>:
Bug#556015; Package debian-policy. (Sun, 11 Jul 2010 06:42:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to Steve Langasek <vorlon@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Policy List <debian-policy@lists.debian.org>. (Sun, 11 Jul 2010 06:42:03 GMT) Full text and rfc822 format available.

Message #201 received at 556015@bugs.debian.org (full text, mbox):

From: Steve Langasek <vorlon@debian.org>
To: Russ Allbery <rra@debian.org>, 556015@bugs.debian.org
Subject: Re: Bug#556015: Clarify requirements for copyright file
Date: Sat, 10 Jul 2010 23:38:47 -0700
[Message part 1 (text/plain, inline)]
On Wed, Jul 07, 2010 at 05:51:36PM -0700, Russ Allbery wrote:
> > This means that any package tagged multiarch needs special care to
> > insure it's actually installable in the face of binNMUs, relative to our
> > current practices.  Either we stop including binNMU changelog entries in
> > the packages altogther (but this is hackish to implement), or we require
> > all architectures to be binNMUed in lockstep, or we *do* symlink the
> > /usr/share/doc directory to a common arch: all package.

> It's kind of a shame to always have to binNMU all architectures in
> lockstep just because of a problem like this.  Admittedly, most binNMU
> reasons already require that, but every once in a while there's something
> that's arch-specific, and making armel rebuild everything because of that
> is sort of annoying.

OTOH, multiarch packages will be a small minority of packages being
binNMUed.  I.e., multiarch packages will be mostly shared libraries, which
are much more often the trigger for binNMUs than the object of them.

But if the consensus is that these packages should still symlink their
changelogs to an arch: all package instead to avoid the problem, I don't
object.

> I'm half-tempted to propose introducing a binary-changelog control
> information file in the control area of a binary package that can be used
> for binNMUs, although there are a bunch of complications with that (such
> as the fact that users looking directly in /usr/share/doc/<package>
> wouldn't see the entry and would need to also look in /var/lib/dpkg/info
> or wherever we dropped the file in the file system after installation).

Well, if it's a choice between having the information available on the
system somewhere and *not* having it, I think that's still an improvement in
spite of the complications. :)

-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
Ubuntu Developer                                    http://www.debian.org/
slangasek@ubuntu.com                                     vorlon@debian.org
[signature.asc (application/pgp-signature, inline)]

Information forwarded to debian-bugs-dist@lists.debian.org, Debian Policy List <debian-policy@lists.debian.org>:
Bug#556015; Package debian-policy. (Sun, 11 Jul 2010 07:51:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to Steve Langasek <vorlon@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Policy List <debian-policy@lists.debian.org>. (Sun, 11 Jul 2010 07:51:03 GMT) Full text and rfc822 format available.

Message #206 received at 556015@bugs.debian.org (full text, mbox):

From: Steve Langasek <vorlon@debian.org>
To: 556015@bugs.debian.org
Subject: Re: Bug#556015: Clarify requirements for copyright file
Date: Sun, 11 Jul 2010 00:50:06 -0700
[Message part 1 (text/plain, inline)]
On Wed, Jul 07, 2010 at 05:48:40PM -0700, Don Armstrong wrote:
> On Wed, 07 Jul 2010, Steve Langasek wrote:
> > On Wed, Jul 07, 2010 at 11:59:51AM -0700, Don Armstrong wrote:
> > > I think there's some confusion here; [debian/changelog] documents changes
> > > to the source package, and as such, should always have the source
> > > version listed. [Binnmus have a changelog revision, but this is
> > > technically a violation, as their source version is not Y+bNN, but Y.]

> > I think this technical violation is a bug in policy, not in binNMU
> > practices.

> I'd be fine with a specific exception for binNMUs, but not a more
> general one, as the ability to reconstruct a version graph based on
> the source version entries in debian/changelog is fairly important for
> the BTS. [It's of less importance now that dak exports that to the
> BTS, but it is still how we generated it all in the first place.]

Oh, yes, definitely.  I can't see any reason for a package that's not a
binNMU to ever have extra revisions in their changelog that don't correspond
to source revisions.

-- 
Steve Langasek                   Give me a lever long enough and a Free OS
Debian Developer                   to set it on, and I can move the world.
Ubuntu Developer                                    http://www.debian.org/
slangasek@ubuntu.com                                     vorlon@debian.org
[signature.asc (application/pgp-signature, inline)]

Changed Bug title to 'Clarify requirements for linked doc directories' from 'debian-policy: Clarify requirements for copyright file' Request was from Russ Allbery <rra@debian.org> to control@bugs.debian.org. (Fri, 16 Jul 2010 16:42:05 GMT) Full text and rfc822 format available.

Forcibly Merged 476810 556015. Request was from Russ Allbery <rra@debian.org> to control@bugs.debian.org. (Wed, 18 Aug 2010 22:45:04 GMT) Full text and rfc822 format available.

Owner recorded as Russ Allbery <rra@debian.org>. Request was from Russ Allbery <rra@debian.org> to control@bugs.debian.org. (Sat, 21 Aug 2010 00:39:08 GMT) Full text and rfc822 format available.

Information forwarded to debian-bugs-dist@lists.debian.org, Debian Policy List <debian-policy@lists.debian.org>, Russ Allbery <rra@debian.org>:
Bug#556015; Package debian-policy. (Sat, 05 Mar 2011 05:57:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to Jonathan Nieder <jrnieder@gmail.com>:
Extra info received and forwarded to list. Copy sent to Debian Policy List <debian-policy@lists.debian.org>, Russ Allbery <rra@debian.org>. (Sat, 05 Mar 2011 05:57:03 GMT) Full text and rfc822 format available.

Message #217 received at 556015@bugs.debian.org (full text, mbox):

From: Jonathan Nieder <jrnieder@gmail.com>
To: 556015@bugs.debian.org
Subject: Re: Clarify requirements for copyright file
Date: Fri, 4 Mar 2011 23:56:10 -0600
tags 556015 - patch
quit

Hi,

Russ Allbery wrote:

> Here's a patch that is explicit about the required dependencies and
> discourages the last case.  Does this look good to everyone?

I'm missing some background but hopefully that's all right.  Quick
comments.

> +++ b/policy.sgml
> @@ -573,10 +573,15 @@
>  	<heading>Copyright considerations</heading>
>  
>  	<p>
> -	  Every package must be accompanied by a verbatim copy of its
> +	  Every binary package must include a verbatim copy of its
>  	  copyright information and distribution license in the file
> -	  <file>/usr/share/doc/<var>package</var>/copyright</file>
> -	  (see <ref id="copyrightfile"> for further details).
> +	  <file>/usr/share/doc/<var>package</var>/copyright</file> or
> +	  symlink the <file>/usr/share/doc/<var>package</var></file>
> +	  directory to a package that does (see <ref id="copyrightfile">
> +	  for further details).

I was tempted to misparse this on first reading as

	Every binary package must include
	 - a verbatim copy of its copyright info..., or
	 - (a) symlink (to) the /usr/share/doc/<package> directory
	   of a package that does (include such a verbatim copy).

Maybe it would be clearer to go with that structure.  For example,
something like this (imitating wording from later)?

	Every binary package must either include a verbatim copy of
	its copyright information and distribution license in the file
	/usr/share/doc/<package>/copyright or include a symlink named
	/usr/share/doc/<package> that points to the /usr/share/doc
	directory of another package that includes a suitable
	copyright file (see ...

[...]
> -	  <file>/usr/share/doc/<var>package</var>/copyright</file>
> -	  (see <ref id="copyrightfile"> for further details). Also see
> +	  <file>debian/copyright</file> (see <ref id="copyrightfile"> for

Good catch.

[...]
> +	  changelog, <file>/usr/share/doc/<var>package</var></file> may be
> +	  a symbolic link to the documentation directory
> +	  in <file>/usr/share/doc</file> included in another package.
> +	  This may only be done if all of the following requirements are
> +	  met:

The approach here seems very sensible.

[...]
> +	    <item>
> +	      The packages are the same version (both source and Debian
> +	      revision) with the possible exception of binary-only
> +	      rebuilds of one of the packages, since otherwise
> +	      the <file>changelog.Debian.gz</file> in one of the two
> +	      packages would not be the changelog for the latest version.
> +	      This requires a dependency that ensures exactly the right
> +	      version of the other package be installed.  For a dependency
> +	      between two binary-dependent packages, use:

Is this advice meant to be normative?  It might be clearer to say:

	... For example, a dependency between two binary-dependent
	packages can use:

		...

	A dependency between two architecture-independent packages or
	from an architecture-dependent package to an architecture-
	independent package can use:

		...

> +	      Putting the symlink in an architecture-independent package
> +	      and the documentation directory in an architecture-dependent
> +	      package should be avoided if the documentation can be moved
> +	      to an architecture-independent package instead, but if
> +	      required, a dependency similar to:
> +	      <example>
> +Depends: foo (>= ${source:Version}), foo (<< ${source:Version}+b99)
> +	      </example>
> +	      can be used.

Sounds reasonable.  But I suppose this is the remaining unresolved
piece: how can the sysadmin (or anyone) learn the reason for the
binnmu in this case or the previous case? [*]

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

In addition to the copyright _information_ and distribution license :)

[...]
> +	  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.

I believe there were some comments on how this seems stronger than
the current policy.  That very well might be possible because of the
typo fixed above.

Should this be relaxed?  I believe ftpmasters would not have trouble
with copyright information being distributed through

	debian/copyright*

files (+ maybe even upstream's COPYING), but existing tools to extract
copyright information from a source package would not cope with that.

[*] Troubling.  I am tempted to suggest inventing a new

	changelog.Debian.<arch>

file listing only binnmu versions (to cope with multiarch), but what
happens when /usr/share/doc/<package> is a symlink (especially: what
happens when multiple arch-any packages symlink to the same arch-all
package this way)?

As currently implemented, these two features (doc/<package> symlink,
binnmu changelog entries) seem to conflict.




Removed tag(s) patch. Request was from Jonathan Nieder <jrnieder@gmail.com> to control@bugs.debian.org. (Sat, 05 Mar 2011 05:57:07 GMT) Full text and rfc822 format available.

Information forwarded to debian-bugs-dist@lists.debian.org, Debian Policy List <debian-policy@lists.debian.org>:
Bug#556015; Package debian-policy. (Sat, 05 Mar 2011 06:12:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to Russ Allbery <rra@debian.org>:
Extra info received and forwarded to list. Copy sent to Debian Policy List <debian-policy@lists.debian.org>. (Sat, 05 Mar 2011 06:12:03 GMT) Full text and rfc822 format available.

Message #224 received at 556015@bugs.debian.org (full text, mbox):

From: Russ Allbery <rra@debian.org>
To: Jonathan Nieder <jrnieder@gmail.com>
Cc: 556015@bugs.debian.org
Subject: Re: Bug#556015: Clarify requirements for copyright file
Date: Fri, 04 Mar 2011 22:08:19 -0800
Jonathan Nieder <jrnieder@gmail.com> writes:
> Russ Allbery wrote:

>> +++ b/policy.sgml
>> @@ -573,10 +573,15 @@
>>  	<heading>Copyright considerations</heading>
>>  
>>  	<p>
>> -	  Every package must be accompanied by a verbatim copy of its
>> +	  Every binary package must include a verbatim copy of its
>>  	  copyright information and distribution license in the file
>> -	  <file>/usr/share/doc/<var>package</var>/copyright</file>
>> -	  (see <ref id="copyrightfile"> for further details).
>> +	  <file>/usr/share/doc/<var>package</var>/copyright</file> or
>> +	  symlink the <file>/usr/share/doc/<var>package</var></file>
>> +	  directory to a package that does (see <ref id="copyrightfile">
>> +	  for further details).

> I was tempted to misparse this on first reading as

> 	Every binary package must include
> 	 - a verbatim copy of its copyright info..., or
> 	 - (a) symlink (to) the /usr/share/doc/<package> directory
> 	   of a package that does (include such a verbatim copy).

> Maybe it would be clearer to go with that structure.  For example,
> something like this (imitating wording from later)?

> 	Every binary package must either include a verbatim copy of
> 	its copyright information and distribution license in the file
> 	/usr/share/doc/<package>/copyright or include a symlink named
> 	/usr/share/doc/<package> that points to the /usr/share/doc
> 	directory of another package that includes a suitable
> 	copyright file (see ...

Yeah, I agree that's an improvement.

> [...]
>> +	    <item>
>> +	      The packages are the same version (both source and Debian
>> +	      revision) with the possible exception of binary-only
>> +	      rebuilds of one of the packages, since otherwise
>> +	      the <file>changelog.Debian.gz</file> in one of the two
>> +	      packages would not be the changelog for the latest version.
>> +	      This requires a dependency that ensures exactly the right
>> +	      version of the other package be installed.  For a dependency
>> +	      between two binary-dependent packages, use:

> Is this advice meant to be normative?  It might be clearer to say:

> 	... For example, a dependency between two binary-dependent
> 	packages can use:

> 		...

> 	A dependency between two architecture-independent packages or
> 	from an architecture-dependent package to an architecture-
> 	independent package can use:

I think that's better, thanks.

>> +	      Putting the symlink in an architecture-independent package
>> +	      and the documentation directory in an architecture-dependent
>> +	      package should be avoided if the documentation can be moved
>> +	      to an architecture-independent package instead, but if
>> +	      required, a dependency similar to:
>> +	      <example>
>> +Depends: foo (>= ${source:Version}), foo (<< ${source:Version}+b99)
>> +	      </example>
>> +	      can be used.

> Sounds reasonable.  But I suppose this is the remaining unresolved
> piece: how can the sysadmin (or anyone) learn the reason for the
> binnmu in this case or the previous case? [*]

Right, this was the reason why I hadn't committed anything yet.  We have
to decide whether we're going to prohibit arch:any -> arch:all links
completely to ensure that the binNMU changelog entries are visible.  My
inclination is to do so, and hence drop this whole section and just say
that it's not allowed, but this will declare several packages in Debian
buggy.

Now, depending on how you read Policy, they were *already* buggy, since
Policy has always required that packages ship changelog files, and those
packages are in essence not including accurate changelog files.  But this
is making that very explicit.

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

> In addition to the copyright _information_ and distribution license :)

Agreed, that's better.

> [...]
>> +	  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.

> I believe there were some comments on how this seems stronger than
> the current policy.  That very well might be possible because of the
> typo fixed above.

> Should this be relaxed?  I believe ftpmasters would not have trouble
> with copyright information being distributed through

> 	debian/copyright*

> files (+ maybe even upstream's COPYING), but existing tools to extract
> copyright information from a source package would not cope with that.

I don't think there's much gain in relaxing this, personally.  The
controversy about this seems to have died down, and as I understand it the
ftpmasters are still basically asking for this.

Is there any package out there right now that's using separated copyright
files as you describe above, without a combined copyright file that
contains all the details?

> [*] Troubling.  I am tempted to suggest inventing a new

> 	changelog.Debian.<arch>

> file listing only binnmu versions (to cope with multiarch), but what
> happens when /usr/share/doc/<package> is a symlink (especially: what
> happens when multiple arch-any packages symlink to the same arch-all
> package this way)?

Yeah, I don't think there's any good way of handling that.

> As currently implemented, these two features (doc/<package> symlink,
> binnmu changelog entries) seem to conflict.

Yup, they do.

-- 
Russ Allbery (rra@debian.org)               <http://www.eyrie.org/~eagle/>




Information forwarded to debian-bugs-dist@lists.debian.org, Debian Policy List <debian-policy@lists.debian.org>, Russ Allbery <rra@debian.org>:
Bug#556015; Package debian-policy. (Sat, 05 Mar 2011 06:21:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to Jonathan Nieder <jrnieder@gmail.com>:
Extra info received and forwarded to list. Copy sent to Debian Policy List <debian-policy@lists.debian.org>, Russ Allbery <rra@debian.org>. (Sat, 05 Mar 2011 06:21:03 GMT) Full text and rfc822 format available.

Message #229 received at 556015@bugs.debian.org (full text, mbox):

From: Jonathan Nieder <jrnieder@gmail.com>
To: Russ Allbery <rra@debian.org>
Cc: 556015@bugs.debian.org
Subject: Re: Clarify requirements for copyright file
Date: Sat, 5 Mar 2011 00:19:22 -0600
Hi Russ,

Russ Allbery wrote:

> Right, this was the reason why I hadn't committed anything yet.  We have
> to decide whether we're going to prohibit arch:any -> arch:all links
> completely to ensure that the binNMU changelog entries are visible.  My
> inclination is to do so, and hence drop this whole section and just say
> that it's not allowed, but this will declare several packages in Debian
> buggy.
>
> Now, depending on how you read Policy, they were *already* buggy, since
> Policy has always required that packages ship changelog files, and those
> packages are in essence not including accurate changelog files.  But this
> is making that very explicit.

For what it's worth, I agree --- it seems best to prohibit
arch:any -> arch:all links until a better solution comes around.

> Is there any package out there right now that's using separated copyright
> files as you describe above, without a combined copyright file that
> contains all the details?

Not that I know of.  For simplicity, I prefer to have everything in
debian/copyright.  Automatically extracting the copyright file is a
useful thing to be able to do.

> Yup, they do.

Thanks for the clarifications.
Jonathan




Information forwarded to debian-bugs-dist@lists.debian.org, Debian Policy List <debian-policy@lists.debian.org>, Russ Allbery <rra@debian.org>:
Bug#556015; Package debian-policy. (Sat, 05 Mar 2011 13:39:03 GMT) Full text and rfc822 format available.

Acknowledgement sent to Bill Allombert <Bill.Allombert@math.u-bordeaux1.fr>:
Extra info received and forwarded to list. Copy sent to Debian Policy List <debian-policy@lists.debian.org>, Russ Allbery <rra@debian.org>. (Sat, 05 Mar 2011 13:39:03 GMT) Full text and rfc822 format available.

Message #234 received at 556015@bugs.debian.org (full text, mbox):

From: Bill Allombert <Bill.Allombert@math.u-bordeaux1.fr>
To: Jonathan Nieder <jrnieder@gmail.com>, 556015@bugs.debian.org
Cc: Russ Allbery <rra@debian.org>
Subject: Re: Bug#556015: Clarify requirements for copyright file
Date: Sat, 5 Mar 2011 14:36:36 +0100
On Sat, Mar 05, 2011 at 12:19:22AM -0600, Jonathan Nieder wrote:
> Hi Russ,
> 
> Russ Allbery wrote:
> 
> > Right, this was the reason why I hadn't committed anything yet.  We have
> > to decide whether we're going to prohibit arch:any -> arch:all links
> > completely to ensure that the binNMU changelog entries are visible.  My
> > inclination is to do so, and hence drop this whole section and just say
> > that it's not allowed, but this will declare several packages in Debian
> > buggy.
> >
> > Now, depending on how you read Policy, they were *already* buggy, since
> > Policy has always required that packages ship changelog files, and those
> > packages are in essence not including accurate changelog files.  But this
> > is making that very explicit.
> 
> For what it's worth, I agree --- it seems best to prohibit
> arch:any -> arch:all links until a better solution comes around.

I support that. My opinion is that it was a mistake to allow
/usr/share/doc/<pkg> to be a symlink in the first place, so the
more we remove them the better.

Cheers,
-- 
Bill. <ballombe@debian.org>

Imagine a large red swirl here. 




Send a report that this bug log contains spam.


Debian bug tracking system administrator <owner@bugs.debian.org>. Last modified: Fri Apr 18 08:36:23 2014; Machine Name: buxtehude.debian.org

Debian Bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.