summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Meyering <meyering@fb.com>2014-06-06 17:17:55 -0700
committerJim Meyering <meyering@fb.com>2014-06-27 13:01:36 -0700
commit775b724c36e90c90ef520f0294057d4072b1fe66 (patch)
treeafbe024b8ba045c1e273fa726092eaf76c23a246
parent639bfd84e719c451d810015d51386f6a0cc47a0d (diff)
downloadgrep-775b724c36e90c90ef520f0294057d4072b1fe66.tar.gz
maint: generate distributed THANKS from VC'd THANKS.in
* Makefile.am (THANKS): New rule. * THANKS.in: New file. * THANKS: Remove. Now it's generated from the combination of THANKS.in and git logs. * .mailmap: New file. * cfg.mk (sc_THANKS_in_duplicates): New syntax-check rule, from coreutils. * .gitignore: Add THANKS. * thanks-gen: New file, from coreutils.
-rw-r--r--.gitignore1
-rw-r--r--.mailmap9
-rw-r--r--Makefile.am26
-rw-r--r--THANKS107
-rw-r--r--THANKS.in99
-rw-r--r--cfg.mk13
-rwxr-xr-xthanks-gen16
7 files changed, 163 insertions, 108 deletions
diff --git a/.gitignore b/.gitignore
index 6a911b6a..327e00f8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -60,6 +60,7 @@ ChangeLog
Makefile
Makefile.in
TAGS
+THANKS
!/gnulib-tests/Makefile.am
!/lib/Makefile.am
!/lib/colorize-posix.c
diff --git a/.mailmap b/.mailmap
new file mode 100644
index 00000000..be4db3d0
--- /dev/null
+++ b/.mailmap
@@ -0,0 +1,9 @@
+# Map git author names and email addresses to canonical/preferred form.
+<jim@meyering.net> <meyering@fb.com>
+<jim@meyering.net> <meyering@redhat.com>
+<karl@gnu.org> <karl@tug.org>
+Paul Eggert <eggert@cs.ucla.edu> <eggert@penguin.cs.ucla.edu>
+Paul Eggert <eggert@cs.ucla.edu> <eggert@CS.UCLA.EDU>
+<eggert@cs.ucla.edu> <eggert@twinsun.com>
+<karl@gnu.org> <karl@freefriends.org>
+<bonzini@gnu.org> <pbonzini@redhat.com>
diff --git a/Makefile.am b/Makefile.am
index e618a005..a7250db0 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -23,8 +23,10 @@ EXTRA_DIST = \
ChangeLog-2009 \
README \
README-alpha \
+ THANKS.in \
TODO \
- cfg.mk
+ cfg.mk \
+ thanks-gen
# Shortcut target to make it easier to run expensive tests.
.PHONY: check-expensive
@@ -54,3 +56,25 @@ gen-ChangeLog:
{ rm -f $(distdir)/ChangeLog && \
mv $(distdir)/cl-t $(distdir)/ChangeLog; } \
fi
+
+# Sort in traditional ASCII order, regardless of the current locale;
+# otherwise we may get into trouble with distinct strings that the
+# current locale considers to be equal.
+ASSORT = LC_ALL=C sort
+
+# Extract all lines up to the first one starting with "##".
+prologue = perl -ne '/^\#\#/ and exit; print' $(srcdir)/THANKS.in
+
+THANKS: THANKS.in Makefile.am .mailmap thanks-gen
+ $(AM_V_GEN)rm -f $@-t $@; \
+ { \
+ $(prologue); echo; \
+ { perl -ne '/^$$/.../^$$/ and print' $(srcdir)/THANKS.in \
+ | grep -v '^$$' | perl -pe 's/ +/\0/'; \
+ git log --pretty=format:'%aN%x00%aE' \
+ | $(ASSORT) -u; \
+ } | $(srcdir)/thanks-gen \
+ | LC_ALL=en_US.UTF-8 sort -f; \
+ echo; \
+ printf ';; %s\n' 'Local Variables:' 'coding: utf-8' End:; \
+ } > $@-t && chmod a-w $@-t && mv $@-t $@
diff --git a/THANKS b/THANKS
deleted file mode 100644
index 6abd647f..00000000
--- a/THANKS
+++ /dev/null
@@ -1,107 +0,0 @@
- Copyright (C) 1992, 1997-2002, 2004-2014 Free Software Foundation, Inc.
-
- Copying and distribution of this file, with or without modification,
- are permitted in any medium without royalty provided the copyright
- notice and this notice are preserved.
-
-Arnold Robbins <arnold@skeeve.com>
-Akim Demaille <akim@epita.fr>
-Alain Magloire <alainm@gnu.org>
-Andreas Schwab <schwab@suse.de>
-Andreas Ley <andy@rz.uni-karlsruhe.de>
-Bastiaan "Darquan" Stougie <darquan@zonnet.nl>
-Ben Elliston <bje@cygnus.com>
-Bernd Strieder <strieder@student.uni-kl.de>
-Bernhard Rosenkraenzer <bero@arklinux.org>
-Bob Proulx <rwp@hprwp.fc.hp.com>
-Brian Youmans <3diff@gnu.org>
-Bruno Haible <haible@ilog.fr>
-Christian Groessler <cpg@aladdin.de>
-Corinna Vinschen <vinschen@redhat.com>
-Dagobert Michelsen <dam@opencsw.org>
-Daisuke GOTO <gotoh@m-design.com>
-Dave Reisner <d@falconindy.com>
-David Clissold <cliss@austin.ibm.com>
-David J MacKenzie <djm@catapult.va.pubnix.com>
-David O'Brien <obrien@freebsd.org>
-Dmitry V. Levin <ldv@altlinux.org>
-Egmont Koblinger <egmont@gmail.com>
-Eli Zaretskii <eliz@is.elta.co.il>
-Eric Blake <eblake@redhat.com>
-Fernando Basso <fernandobasso.br@gmail.com>
-Florian La Roche <laroche@redhat.com>
-Franc,ois Pinard <pinard@IRO.UMontreal.CA>
-Gerald Stoller <gerald_stoller@hotmail.com>
-Grant McDorman <grant@isgtec.com>
-Greg Louis <glouis@dynamicro.on.ca>
-Guglielmo 'bond' Bondioni <g.bondioni@libero.it>
-H. Merijn Brand <h.m.brand@hccnet.nl>
-Harald Hanche-Olsen <hanche@math.ntnu.no>
-Hans-Bernhard Broeker <broeker@physik.rwth-aachen.de>
-Heikki Korpela <heko@iki.fi>
-Igor O. Ladygin <assa@zabtrans.ru>
-Ilya Basin <basinilya@gmail.com>
-Isamu Hasegawa <isamu@yamato.ibm.com>
-Jaroslav Škarvada <jskarvad@redhat.com>
-Jeff Bailey <jbailey@nisa.net>
-Jim Hand <jhand@austx.tandem.com>
-Jim Meyering <meyering@redhat.com>
-Jochen Hein <jochen.hein@delphi.central.de>
-Joel N. Weber II <devnull@gnu.org>
-Johan Walles <johan.walles@gmail.com>
-John Hughes <john@nitelite.calvacom.fr>
-Jorge Stolfi <stolfi@dcc.unicamp.br>
-Juan Manuel Guerrero <ST001906@HRZ1.HRZ.TU-Darmstadt.De>
-Julian Foad <julianfoad@btopenworld.com>
-Karl Berry <karl@gnu.org>
-Karl Heuer <kwzh@gnu.org>
-Kaveh R. Ghazi <ghazi@caip.rutgers.edu>
-Kazuro Furukawa <furukawa@apricot.kek.jp>
-Keith Bostic <bostic@bsdi.com>
-Krishna Sethuraman <krishna@sgihub.corp.sgi.com>
-Kurt D Schwehr <kdschweh@insci14.ucsd.edu>
-Ludovic Courtès <ludo@gnu.org>
-Marc Aldorasi <m101010a@gmail.com>
-Mark Waite <markw@mddmew.fc.hp.com>
-Martin P.J. Zinser <zinser@decus.de>
-Martin Rex <martin.rex@sap-ag.de>
-Michael Aichlmayr <mikla@nx.com>
-Mike Frysinger <vapier@gentoo.org>
-Miles Bader <miles@ccs.mt.nec.co.jp>
-Mirraz Mirraz <mirraz1@rambler.ru>
-Nelson H. F. Beebe <beebe@math.utah.edu>
-Olaf Kirch <okir@ns.lst.de>
-Paolo Bonzini <bonzini@gnu.org>
-Paul Eggert <eggert@twinsun.com>
-Paul Kimoto <kimoto@spacenet.tn.cornell.edu>
-Péter Radics <mitchnull@gmail.com>
-Phillip C. Brisco <phillip.craig.brisco@ccmail.census.gov>
-Philipp Kohlbecher <xt28@gmx.de>
-Philippe Defert <Philippe.Defert@cern.ch>
-Philippe De Muyter <phdm@info.ucl.ac.be>
-Philip Hazel <ph10@cus.cam.ac.uk>
-Rainer Orth <ro@cebitec.uni-bielefeld.de>
-Roland Roberts <rroberts@muller.com>
-Ruslan Ermilov <ru@freebsd.org>
-Santiago Ruano Rincón <santiago@debian.org>
-Santiago Vila <sanvila@unex.es>
-Shannon Hill <hill@synnet.com>
-Sotiris Vassilopoulos <Sotiris.Vassilopoulos@betatech.gr>
-Standish Parsley <adsspamtrap01@yahoo.com>
-Stewart Levin <stew@sep.stanford.edu>
-Strahinja Kustudic <kustodian@gmail.com>
-Sven Joachim <svenjoac@gmx.de>
-Sydoruk Stepan <step@unitex.kiev.ua>
-Tapani Tarvainen <tt@mit.jyu.fi>
-Tim Waugh <twaugh@redhat.com>
-Tom 'moof' Spindler <dogcow@ccs.neu.edu>
-Tom Tromey <tromey@creche.cygnus.com>
-Tony Abou-Assaleh <taa@acm.org>
-Ulrich Drepper <drepper@cygnus.com>
-UEBAYASHI Masao <masao@nf.enveng.titech.ac.jp>
-Uwe H. Steinfeld <usteinfeld@gmx.net>
-Volker Borchert <bt@teknon.de>
-Wichert Akkerman <wichert@cistron.nl>
-William Bader <william@nscs.fast.net>
-Wolfgang Schludi <schludi@syscomp.de>
-Zoltan Herczeg <hzmester@freemail.hu>
diff --git a/THANKS.in b/THANKS.in
new file mode 100644
index 00000000..aeaf516d
--- /dev/null
+++ b/THANKS.in
@@ -0,0 +1,99 @@
+These people have contributed to the GNU grep. Those contributions are
+described in the version control logs. If your name has been left out,
+if you'd rather not be listed, or if you'd prefer a different address
+be used, please send a note to the bug-report mailing list (as seen at
+end of e.g., grep --help).
+##
+## There is no need to list here any name that appears as an Author in
+## "git log" output. Those are automatically added when this template
+## is used to generate the THANKS file. Note that numerous people listed
+## here would have been listed as commit authors if we had been using git
+## for version control when they contributed.
+
+Akim Demaille akim@epita.fr
+Andreas Schwab schwab@suse.de
+Andreas Ley andy@rz.uni-karlsruhe.de
+Bastiaan "Darquan" Stougie darquan@zonnet.nl
+Ben Elliston bje@cygnus.com
+Bernd Strieder strieder@student.uni-kl.de
+Bob Proulx rwp@hprwp.fc.hp.com
+Brian Youmans 3diff@gnu.org
+Christian Groessler cpg@aladdin.de
+Dagobert Michelsen dam@opencsw.org
+Daisuke GOTO gotoh@m-design.com
+Dave Reisner d@falconindy.com
+David Clissold cliss@austin.ibm.com
+David J MacKenzie djm@catapult.va.pubnix.com
+David O'Brien obrien@freebsd.org
+Egmont Koblinger egmont@gmail.com
+Fernando Basso fernandobasso.br@gmail.com
+Florian La Roche laroche@redhat.com
+François Pinard pinard@iro.umontreal.ca
+Gerald Stoller gerald_stoller@hotmail.com
+Grant McDorman grant@isgtec.com
+Greg Louis glouis@dynamicro.on.ca
+Guglielmo 'bond' Bondioni g.bondioni@libero.it
+H. Merijn Brand h.m.brand@hccnet.nl
+Harald Hanche-Olsen hanche@math.ntnu.no
+Hans-Bernhard Broeker broeker@physik.rwth-aachen.de
+Heikki Korpela heko@iki.fi
+Igor O. Ladygin assa@zabtrans.ru
+Ilya Basin basinilya@gmail.com
+Isamu Hasegawa isamu@yamato.ibm.com
+Jeff Bailey jbailey@nisa.net
+Jim Hand jhand@austx.tandem.com
+Jochen Hein jochen.hein@delphi.central.de
+Joel N. Weber II devnull@gnu.org
+John Hughes john@nitelite.calvacom.fr
+Jorge Stolfi stolfi@dcc.unicamp.br
+Juan Manuel Guerrero ST001906@HRZ1.HRZ.TU-Darmstadt.De
+Karl Heuer kwzh@gnu.org
+Kaveh R. Ghazi ghazi@caip.rutgers.edu
+Kazuro Furukawa furukawa@apricot.kek.jp
+Keith Bostic bostic@bsdi.com
+Krishna Sethuraman krishna@sgihub.corp.sgi.com
+Kurt D Schwehr kdschweh@insci14.ucsd.edu
+Ludovic Courtès ludo@gnu.org
+Marc Aldorasi m101010a@gmail.com
+Mark Waite markw@mddmew.fc.hp.com
+Martin P.J. Zinser zinser@decus.de
+Martin Rex martin.rex@sap-ag.de
+Michael Aichlmayr mikla@nx.com
+Miles Bader miles@ccs.mt.nec.co.jp
+Mirraz Mirraz mirraz1@rambler.ru
+Nelson H. F. Beebe beebe@math.utah.edu
+Olaf Kirch okir@ns.lst.de
+Paul Kimoto kimoto@spacenet.tn.cornell.edu
+Péter Radics mitchnull@gmail.com
+Phillip C. Brisco phillip.craig.brisco@ccmail.census.gov
+Philipp Kohlbecher xt28@gmx.de
+Philippe Defert Philippe.Defert@cern.ch
+Philippe De Muyter phdm@info.ucl.ac.be
+Philip Hazel ph10@cus.cam.ac.uk
+Rainer Orth ro@cebitec.uni-bielefeld.de
+Roland Roberts rroberts@muller.com
+Ruslan Ermilov ru@freebsd.org
+Santiago Vila sanvila@unex.es
+Shannon Hill hill@synnet.com
+Sotiris Vassilopoulos Sotiris.Vassilopoulos@betatech.gr
+Standish Parsley adsspamtrap01@yahoo.com
+Stewart Levin stew@sep.stanford.edu
+Strahinja Kustudic kustodian@gmail.com
+Sven Joachim svenjoac@gmx.de
+Sydoruk Stepan step@unitex.kiev.ua
+Tapani Tarvainen tt@mit.jyu.fi
+Tim Waugh twaugh@redhat.com
+Tom 'moof' Spindler dogcow@ccs.neu.edu
+Tom Tromey tromey@creche.cygnus.com
+Ulrich Drepper drepper@cygnus.com
+UEBAYASHI Masao masao@nf.enveng.titech.ac.jp
+Uwe H. Steinfeld usteinfeld@gmx.net
+Volker Borchert bt@teknon.de
+Wichert Akkerman wichert@cistron.nl
+William Bader william@nscs.fast.net
+Wolfgang Schludi schludi@syscomp.de
+Zoltan Herczeg hzmester@freemail.hu
+
+;; Local Variables:
+;; coding: utf-8
+;; End:
diff --git a/cfg.mk b/cfg.mk
index 22c090a6..c2510f91 100644
--- a/cfg.mk
+++ b/cfg.mk
@@ -78,6 +78,19 @@ sc_prohibit_emacs__indent_tabs_mode__setting:
halt='use of emacs indent-tabs-mode: setting' \
$(_sc_search_regexp)
+# THANKS.in is a list of name/email pairs for people who are mentioned in
+# commit logs (and generated ChangeLog), but who are not also listed as an
+# author of a commit. Name/email pairs of commit authors are automatically
+# extracted from the repository. As a very minor factorization, when
+# someone who was initially listed only in THANKS.in later authors a commit,
+# this rule detects that their pair may now be removed from THANKS.in.
+sc_THANKS_in_duplicates:
+ @{ git log --pretty=format:%aN | sort -u; \
+ cut -b-36 THANKS.in | sed '/^$$/d;s/ *$$//'; } \
+ | sort | uniq -d | grep . \
+ && { echo '$(ME): remove the above names from THANKS.in' \
+ 1>&2; exit 1; } || :
+
update-copyright-env = \
UPDATE_COPYRIGHT_USE_INTERVALS=1 \
UPDATE_COPYRIGHT_MAX_LINE_LENGTH=79
diff --git a/thanks-gen b/thanks-gen
new file mode 100755
index 00000000..f1c11b3a
--- /dev/null
+++ b/thanks-gen
@@ -0,0 +1,16 @@
+#!/usr/bin/perl -nl
+# Use Perl's multi-byte alignment code, via sprintf, while
+# performing a rudimentary check for duplicate names and
+# removing duplicate name,email pairs.
+use Encode;
+
+BEGIN { my (%seen, %name) }
+
+chomp;
+my ($name, $email) = split '\0', decode ('UTF-8', $_);
+
+$seen{$name}++
+ and warn "$0: THANKS.in: duplicate name: $name\n";
+
+print encode ('UTF-8', sprintf ('%-36s', $name)), $email
+ unless $seen{"$name\0$email"}++;