#
# It expects one argument, which should be the root of the Lintian laboratory.
+use File::Find qw(find);
+
our @RULES = (
[qr,/usr/share/common-licenses/Apache-2.0, => 'Apache 2.0'],
[qr,/usr/share/common-licenses/Artistic, => 'Artistic'],
[qr,/usr/share/common-licenses/GPL, => 'GPL (any)'],
[qr,/usr/share/common-licenses/LGPL, => 'LGPL (any)'],
+ [qr,(?m)^License:.*AGPL-3, => 'AGPL 3'],
[qr,(?m)^License:.*Artistic(?!-), => 'Artistic'],
[qr,(?m)^License:.*Artistic-2, => 'Artistic 2.0'],
[qr,(?m)^License:.*CC-BY-3.0, => 'CC-BY 3.0'],
[qr,(?m)^License:.*Perl, => 'Artistic'],
[qr,(?m)^License:.*Perl, => 'GPL 1'],
- [qr,The Artistic License 2\.0, => 'Artistic 2.0'],
+ [qr,GNU AFFERO GENERAL PUBLIC LICENSE\s+Version 3, => 'AGPL 3'],
+ [qr,(?i)The Artistic License 2\.0, => 'Artistic 2.0'],
[qr,COMMON DEVELOPMENT AND DISTRIBUTION LICENSE \(CDDL\), => 'CDDL'],
[qr,CONTRAT DE LICENCE DE LOGICIEL LIBRE CeCILL(?!-), => 'CeCILL'],
[qr,CeCILL FREE SOFTWARE LICENSE AGREEMENT, => 'CeCILL'],
[qr,(?i)creative\s+commons\s+attribution\s+3\.0, => 'CC-BY 3.0'],
[qr,(?i)creative\s+commons\s+attribution[-\s]+share\s*alike\s+3\.0, => 'CC-BY-SA 3.0'],
[qr,GNU GENERAL PUBLIC LICENSE\s+Version 1, => 'GPL 1'],
- [qr,LPPL Version 1.3c, => 'LaTeX PPL 1.3c'],
+ [qr,LPPL Version, => 'LaTeX PPL (any)'],
+ [qr,LPPL Version 1\.3a, => 'LaTeX PPL 1.3a'],
+ [qr,LPPL Version 1\.3c, => 'LaTeX PPL 1.3c'],
[qr,MOZILLA PUBLIC LICENSE\s+Version 1\.1, => 'MPL 1.1'],
[qr,SIL OPEN FONT LICENSE Version 1\.1, => 'SIL OFL 1.1'],
[qr,SIL OPEN FONT LICENSE Version 1\.0, => 'SIL OFL 1.0'],
);
-unless (@ARGV == 1) {
- die "Usage: license-count <path-to-lintian-lab>\n";
-}
-my $lab = $ARGV[0];
-opendir (LAB, "$lab/binary") or die "$0: cannot open $lab/binary: $!\n";
my ($package, %counts);
my $n = 0;
-while (defined ($package = readdir LAB)) {
- next if ($package =~ /^\./);
+
+sub check_package {
+ return unless (-d $_ && /_binary$/);
+ $File::Find::prune = 1;
+ return if (-d $_ && /_(source|udeb)$/);
$n++;
print "Checked $n packages\n" if (($n % 100) == 0);
local $/;
- open (COPYRIGHT, '<', "$lab/binary/$package/copyright") or next;
+ open (COPYRIGHT, '<', "$_/copyright") or return;
my $copyright = <COPYRIGHT>;
close COPYRIGHT;
my %seen;
}
}
}
-closedir LAB;
+
+unless (@ARGV == 1) {
+ die "Usage: license-count <path-to-lintian-lab>\n";
+}
+my $lab = $ARGV[0];
+find (\&check_package, "$lab/pool");
my $length = 0;
for my $name (keys %counts) {
if (length ($name) > $length) {