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 <kwilli...@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 <kwilli...@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 <toby...@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 <dagol...@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
signature.asc
Description: signature