From 9dc85332404e2b05f296eaaa885c2aee231718e8 Mon Sep 17 00:00:00 2001 From: Lars Wirzenius Date: Tue, 16 Mar 2010 15:30:55 +1300 Subject: [PATCH] Add script to find source files with copyright license problems. The files reported are those with a copyright statement, but without a reference to the GPL2 or later, or with a non-current FSF address. Signed-off-by: Galen Charlton --- find-license-problems | 69 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100755 find-license-problems diff --git a/find-license-problems b/find-license-problems new file mode 100755 index 0000000000..d0c5c3059c --- /dev/null +++ b/find-license-problems @@ -0,0 +1,69 @@ +#!/usr/bin/perl +# +# Find copyright and license problems in Koha source files. At this +# time it only looks for references to the old FSF address in GPLv2 +# license notices, but it might in the future be extended to look for +# other things, too. +# +# Copyright 2010 Catalyst IT Ltd +# +# This file is part of Koha. +# +# 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 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License along +# with this program; if not, write to the Free Software Foundation, Inc., +# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + + +use strict; +use warnings; + +use File::Find; + + +my @files; +sub wanted { + my $name = $File::Find::name; + push @files, $name + unless $name =~ /\/(\.git|koha-tmpl)(\/.*)?$/ || + $name =~ /\.(gif|jpg|odt|ogg|pdf|png|po|psd|svg|swf|zip)$/ || + ! -f $name; +} + + +sub has_gpl2plus_and_current_fsf_address { + my ($name) = @_; + my $hascopyright; + my $hasgpl; + my $hasv2; + my $hasorlater; + my $hasfranklinst; + open(FILE, $name) || return 0; + while (my $line = ) { + $hascopyright = 1 if ($line =~ /Copyright.*\d\d/); + $hasgpl = 1 if ($line =~ /GNU General Public License/); + $hasv2 = 1 if ($line =~ /either version 2/); + $hasorlater = 1 if ($line =~ /any later version/ || + $line =~ /at your option/); + $hasfranklinst = 1 if ($line =~ /51 Franklin Street/); + } + return ! $hascopyright || + ($hasgpl && $hasv2 && $hasorlater && $hasfranklinst); +} + + +find({ wanted => \&wanted, no_chdir => 1 }, @ARGV); +foreach my $name (@files) { + if (! has_gpl2plus_and_current_fsf_address($name)) { + print "$name\n"; + } +} -- 2.39.5