From: Russ Allbery Date: Sat, 18 Feb 2012 20:07:41 +0000 (-0800) Subject: Update tools/license-count to work with the new Lintian lab layout X-Git-Url: https://git.donarmstrong.com/?p=debian%2Fdebian-policy.git;a=commitdiff_plain;h=001edcea5cdfc39e88382add063e9c90038f8af5 Update tools/license-count to work with the new Lintian lab layout This is still a quite-ugly hack, but at least it works. --- diff --git a/debian/changelog b/debian/changelog index 7d56497..0da63e1 100644 --- a/debian/changelog +++ b/debian/changelog @@ -75,6 +75,7 @@ debian-policy (3.9.3.0) UNRELEASED; urgency=low when eventually published somewhere, other Debian web sites can link to specific entries. Patch from Charles Plessy. * Add AGPL-3 to tools/license-count. + * Update tools/license-count to work with the new Lintian lab layout. * Add build-arch and build-indep targets to debian/rules. [ Bill Allombert ] diff --git a/tools/license-count b/tools/license-count index 4be092b..f895da9 100755 --- a/tools/license-count +++ b/tools/license-count @@ -7,6 +7,8 @@ # # 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'], @@ -59,19 +61,17 @@ our @RULES = ( [qr,SIL OPEN FONT LICENSE Version 1\.0, => 'SIL OFL 1.0'], ); -unless (@ARGV == 1) { - die "Usage: license-count \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 = ; close COPYRIGHT; my %seen; @@ -83,7 +83,12 @@ while (defined ($package = readdir LAB)) { } } } -closedir LAB; + +unless (@ARGV == 1) { + die "Usage: license-count \n"; +} +my $lab = $ARGV[0]; +find (\&check_package, "$lab/pool"); my $length = 0; for my $name (keys %counts) { if (length ($name) > $length) {