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 <br...@clisp.org> 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>