bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: gnulib copyright method


From: Bruno Haible
Subject: Re: gnulib copyright method
Date: Sun, 13 Nov 2011 19:17:08 +0100
User-agent: KMail/1.13.6 (Linux/2.6.37.6-0.5-desktop; KDE/4.6.0; x86_64; ; )

Karl Berry wrote:
> As I recall, this situation came about to placate projects which were
> using gnulib without using gnulib-tool, notably coreutils and others
> that Paul E and Jim M were working on.  In the years since then, all
> those projects (to my knowledge) have started using gnulib-tool.

In my recollection, the situation came about when coreutils was using
gnulib-tool, 'bootstrap', and 'slurp'. The common way of working back
then was to modify the source files in coreutils, test the coreutils
with the modifications, and then commit the changes in gnulib. The
process of porting back the changes to gnulib was made easy through
the symlinking or hardlinking options of gnulib-tool and 'slurp'.

Paul Eggert wrote:
> > So how about normalizing gnulib to have the actual license in the source
> > files?
> 
> I don't have any objection.

Good. So, this apparently means that either testing of modifications
of gnulib does not require coreutils any more, thanks to the extensive
test suites that we have. Or that the process of backporting the
modifications (through 'diff', or 'cp' followed by 'git diff') has
become commonplace enough for Paul and Jim.

In order to progress, let me add a "syntax check" script that checks
for consistency of the license statements.


2011-11-13  Bruno Haible  <address@hidden>

        Syntax check for copyright statements.
        * check-copyright: New file.
        * Makefile (sc_check_copyright): New rule.

=============================== check-copyright ===============================
#!/bin/sh
#
# Copyright (C) 2011 Free Software Foundation, Inc.
#
# 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 3 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, see <http://www.gnu.org/licenses/>.
#

error=0
for module in `./gnulib-tool --list`; do
  module_license=`./gnulib-tool --extract-license $module`
  if test "$module_license" = 'GPLed build tool'; then
    module_license='GPL'
  fi
  for file in `./gnulib-tool --extract-filelist $module | grep 
'^\(lib\|build-aux\)/'`; do
    if grep 'GNU General Public' $file > /dev/null; then
      if grep 'version 3 or later' $file > /dev/null \
         || grep 'either version 3' $file > /dev/null; then
        file_license='GPL'
      else
        if grep 'version 2 or later' $file > /dev/null \
           || grep 'either version 2' $file > /dev/null; then
          file_license='GPLv2+'
        else
          file_license='GPL??'
        fi
      fi
    else
      if grep 'Lesser General' $file > /dev/null; then
        if grep 'version 3 or later' $file > /dev/null \
           || grep 'either version 3' $file > /dev/null; then
          file_license='LGPL'
        else
          if grep 'version 2 or later' $file > /dev/null \
             || grep 'version 2 of the License, or' $file > /dev/null \
             || grep 'version 2\.1 of the License, or' $file > /dev/null; then
            file_license='LGPLv2+'
          else
            file_license='LGPL??'
          fi
        fi
      else
        file_license='??'
      fi
    fi
    if test "$file_license" != "$module_license"; then
      if test $error = 0; then
        echo "Module License File License   File name"
        echo "============== ============== 
====================================="
      fi
      printf '%-14s %-14s %s\n' "$module_license" "$file_license" "$file"
      error=1
    fi
  done
done
exit $error
===============================================================================
--- Makefile.orig       Sun Nov 13 19:11:39 2011
+++ Makefile    Sun Nov 13 19:01:52 2011
@@ -117,6 +117,11 @@
          <(sed -n /^_intprops_name/,/^_intprops_syms_re/p top/maint.mk \
             |sed '/^_/d;s/^  //;s/     *\\$$//')
 
+# Ensure that the copyright statements in files and in the module descriptions
+# are consistent.
+sc_check_copyright:
+       ./check-copyright
+
 # Regenerate some files that are stored in the repository.
 regen: MODULES.html
 
-- 
In memoriam Bruno Binnebesel <http://de.wikipedia.org/wiki/Bruno_Binnebesel>



reply via email to

[Prev in Thread] Current Thread [Next in Thread]