Quoting Ben Finney (2015-05-20 08:46:44)
> Is there a place in ‘debian/copyright’ for the text granting license
> to the work, separate from the text of the license itself?
>
>
> For a simplified example: Package ‘foo’ has a grant of license broadly
> under GPL-3+, and some files under CC-BY-SA-3.
>
> It also has a group of files, ‘libquux/*’, to which license is granted
> by some specific text:
>
> You may modify and/or redistribute this work under the terms of
> either the GPL version 2 or later, or the Creative Commons
> Attribution Share-Alike license version 3.
>
> Should that text – the grant of license for those files – appear in
> the ‘debian/copyright’ file for the package?
>
> It is not the license text itself (that would be the full text of the
> GPL v2 and the CC By-SA v3, respectively), so it doesn't go in a
> separate “License” paragraph.
>
> There does need to be a separate “License: CC-BY-SA-3” paragraph
> giving the full text of that license, but this is different from the
> text *granting* the license in the work.
>
> It is not a grant of license to the work as a whole (it only applies
> to a subset of files), so it doesn't belong in the header paragraph.
>
>
> Does it belong in the “Files: libquux/*” paragraph? The most logical
> place would be in the “License” field of that paragraph, separate from
> the standalone “License” paragraph::
>
> Files: *
> Copyright: […]
> License: GPL-3+
>
> Files: resources/*
> Copyright: […]
> License: CC-BY-SA-3
>
> Files: libquux/*
> Copyright: […]
> License: GPL-2 or CC-BY-SA-3
> You may modify and/or redistribute this work under the terms of
> either the GPL version 2 or later, or the Creative Commons
> Attribution Share-Alike license version 3.
>
> License: CC-BY-SA-3
> THE WORK (AS DEFINED BELOW) IS PROVIDED UNDER THE TERMS OF THIS
> CREATIVE COMMONS PUBLIC LICENSE ("CCPL" OR "LICENSE"). THE WORK
> IS PROTECTED BY COPYRIGHT AND/OR OTHER APPLICABLE LAW.
> […]
>
> That makes sense to me: we have the grant of license where it applies to
> the specific files, and we have the license text itself in a stand-alone
> paragraph.
>
>
> Lintian no longer agrees that's good, though. It complains with the
> warning “dep5-copyright-license-name-not-unique”::
>
> W: dep5-copyright-license-name-not-unique
> N:
> N: This paragraph defines an already defined license.
> N:
> N: According to the specification, short license names are required to be
> N: unique within a single copyright file.
> N:
> N: Refer to
> N: https://www.debian.org/doc/packaging-manuals/copyright-format/1.0/ for
> N: details.
>
> On the face of it, the warning is a false positive in this case: the
> stand-alone “License: CC-BY-SA-3” paragraph is the first and only
> *definition* of that license in the file. The earlier “License
> CC-BY-SA-3” field is not a definition of the license, it is showing
> the text which explicitly *grants* license.
>
> I can see that's not feasible to teach Lintian to distinguish, given
> the current ‘debian/copyright’ format definition. But I don't want to
> just override the Lintian check; it's good to catch *true* positives
> that violate the copyright format in the manner described.
>
>
> What is the correct solution for this? Can we have all that
> information in the places I've described? Can we have them elsewhere
> in the file, in a format easier for Lintian to check?
There is a widespread example of this: Most common Perl module licensing
is "Artistic or GPL-1+".
Standard approach in The Perl team seems to be to skip the license
granting statement (i.e. verbatim-from-license-issuer text) and include
only license boilerplates (i.e. verbatim-from-license-author texts),
like this (from libpath-class-perl):
> Files: *
> Copyright: 2014, Ken Williams <KWILLIAMS@cpan.org>
> License: Artistic or GPL-1+
[...]
> License: Artistic
> This program is free software; you can redistribute it and/or modify
> it under the terms of the Artistic License, which comes with Perl.
> .
> On Debian systems, the complete text of the Artistic License can be
> found in `/usr/share/common-licenses/Artistic'.
>
> License: GPL-1+
> This program is free software; you can redistribute it and/or modify
> it under the terms of the GNU General Public License as published by
> the Free Software Foundation; either version 1, or (at your option)
> any later version.
> .
> On Debian systems, the complete text of version 1 of the General
> Public License can be found in `/usr/share/common-licenses/GPL-1'.
I find it better to separate verbatim and non-verbatim texts - if for
nothing else then becaues that has potential for improved
machine-processing of the files.
What seemed obvious to me when we designed the copyright file format is
to add verbatim-by-license-issuer text at the Files section - because
that text actually may vary across files and be prone to reading and/or
interpretation errors. Something like this (from above with text added
from /usr/share/perl5/Path/Class.pm itself):
> Files: *
> Copyright: 2014, Ken Williams <KWILLIAMS@cpan.org>
> License: Artistic or GPL-1+
> This library is free software; you can redistribute it and/or modify
> it under the same terms as Perl itself.
I used that pattern in the past - until realizing (thanks to lintian)
that Copyright format 1.0 (unlike earlier drafts) explicitly forbids
both referencing and including license text.
The pattern I use now is by use of self-invented pseudo-fields
License-in-Comment (for verbatim text forbidden in License field) and
Comment-in-License (for non-verbatim text commonly expected), like this
(from libtype-tiny-perl):
> Files: *
> Copyright: 2012-2014, Toby Inkster <tobyink@cpan.org>
> License: Artistic or GPL-1+
> Comment:
> License:
> .
> This is free software; you can redistribute it and/or modify it under
> the same terms as the Perl 5 programming language system itself.
> .
> Comment:
> .
> Perl 5 is licensed under either the 'Artistic license' or the 'GNU
> General Public License' version 1 or later.
[...]
> License: Artistic
> Comment:
> .
> On Debian systems the 'Artistic License' is located in
> '/usr/share/common-licenses/Artistic'.
>
> License: GPL-1+
> Comment:
> .
> On Debian systems the 'GNU General Public License' version 1 is
> located in '/usr/share/common-licenses/GPL-1'.
As a sidenote, I use similar pattern when only a single license is in
use and that license has a common boilerplate but author chose a custom
verbatim statement, like this (from libpath-tiny-perl):
> Files: *
> Copyright: 2013, David Golden <dagolden@cpan.org>
> License: Apache-2.0
> Comment:
> License:
> .
> This is free software, licensed under:
> .
> The Apache License, Version 2.0, January 2004
[...]
> License: Apache-2.0
> Comment:
> .
> On Debian systems the 'Apache License' version 2.0 is located in
> '/usr/share/common-licenses/Apache-2.0'.
I hope that helps.
- Jonas
--
* Jonas Smedegaard - idealist & Internet-arkitekt
* Tlf.: +45 40843136 Website: http://dr.jones.dk/
[x] quote me freely [ ] ask before reusing [ ] keep private
Attachment:
signature.asc
Description: signature