Bug#764753: libsoftware-license-perl: Artistic license confusion

Niko Tyni ntyni at debian.org
Fri Oct 10 20:21:32 UTC 2014


Package: libsoftware-license-perl
Version: 0.103010-3 
Severity: important
Tags: upstream
X-Debbugs-Cc: debian-perl at lists.debian.org

As seen at <http://spdx.org/licenses/>, there are three variants
of the Artistic license version 1.0 around.

 http://spdx.org/licenses/Artistic-1.0
 http://spdx.org/licenses/Artistic-1.0-Perl
 http://spdx.org/licenses/Artistic-1.0-cl8

The one that is shipped with Perl in the top level "Artistic" file (and
that is included in /usr/share/common-licenses on Debian) is the one
called "Artistic-1.0-Perl", but Software::License has "Artistic-1.0",
which has a different number of clauses and some other more or less
subtle differences.

A crude way to tell these apart is
    /7\.\s*C subroutines/ and out("Artistic-1.0-Perl");
    /8\.\s*The name of the Copyright Holder/ and out("Artistic-1.0");
    /8\.\s*Aggregation of this Package/ and out("Artistic-1.0-cl8");

I'm attaching an even cruder script that can be run on a number of files
and uses the above heuristics. Maybe it's useful to somebody.

It seems to me that at least Software::License::Perl_5 should use
Artistic-1.0-Perl instead, and that Software::License::Artistic_1_0
should possibly default to Artistic-1.0-Perl.

This affects quite a few CPAN distributions using Dist::Zilla and
generating top level LICENSE files. If the author requests the same
terms as Perl itself, generating a different copy of the license than
the one in the Perl distribution seems to be incorrect.
-- 
Niko Tyni   ntyni at debian.org
-------------- next part --------------
#!/usr/bin/perl -w
use strict;

my $found = 0;

my $names = (@ARGV > 1);

while (<>) {
    $found = 0 if eof;
    /The Artistic License 2\.0/
        and out("Artistic-2.0"), next;
    /Artistic License/ and $found=1;
    next if !$found;
    /7\.\s*C subroutines/ and out("Artistic-1.0-Perl");
    /8\.\s*The name of the Copyright Holder/ and out("Artistic-1.0");
    /8\.\s*Aggregation of this Package/ and out("Artistic-1.0-cl8");
}
out("Artistic-unknown?") if $found;

sub out {
    print $ARGV . ": " if $names;
    print $_[0] . "\n";
    close ARGV;
    $found = 0;
}


More information about the pkg-perl-maintainers mailing list