]> git.ipfire.org Git - thirdparty/autoconf.git/commitdiff
Sync files from upstream, and pass 'make syntax-check'.
authorEric Blake <ebb9@byu.net>
Thu, 3 Apr 2008 12:22:48 +0000 (06:22 -0600)
committerEric Blake <ebb9@byu.net>
Thu, 3 Apr 2008 12:22:48 +0000 (06:22 -0600)
* config/announce-gen: Move...
* build-aux/announce-gen: ...here, and sync from gnulib.
* Makefile.am (EXTRA_DIST): Adjust accordingly.
* cfg.mk (announce_gen): Likewise.
(prev_version_file): Delete, relying on default in maint.mk.
(gpg_key_ID): New macro.
(url_dir_list): Rewrite to match coreutils.
* config/prev-version.txt: Move...
* .prev-version: ...here, and adjust to 2.61.
* build-aux/vc-list-files: Sync from coreutils.
* maint.mk: Resynchronize with coreutils, where possible.
(ME): Remove $(srcdir) from definition.
(CVS): Delete.
(GIT, VC, VC-tag): New macros.
(CVS_LIST, CVS_LIST_EXCEPT): Rename...
(VC_LIST, VC_LIST_EXCEPT): ...to this.
(cvs-tag-check): Delete.
(cvs-diff-check): Rename...
(vc-diff-check): ...to this.
(sc_file_system): Allow FHS acronym.
* doc/autoconf.texi (Particular Functions): Recommend
unconditional <config.h>.
* build-aux/config.guess: Sync from upstream (manually).
* build-aux/config.sub: Likewise.
* build-aux/texinfo.tex: Likewise.
* doc/make-stds.texi: Likewise.
* doc/standards.texi: Likewise.
* .gitattributes: Ignore whitespace problems in upstream files.

Signed-off-by: Eric Blake <ebb9@byu.net>
15 files changed:
.gitattributes
.prev-version [new file with mode: 0644]
ChangeLog
Makefile.am
build-aux/announce-gen [moved from config/announce-gen with 73% similarity]
build-aux/config.guess
build-aux/config.sub
build-aux/texinfo.tex
build-aux/vc-list-files
cfg.mk
config/prev-version.txt [deleted file]
doc/autoconf.texi
doc/make-stds.texi
doc/standards.texi
maint.mk

index e8495d51e95dfe0e0a62869ac033aebd0beab890..130bd3978b2cb0deb10f75e3b1ada7c00095c858 100644 (file)
@@ -1 +1,11 @@
-ChangeLog merge=merge-changelog
+ChangeLog      merge=merge-changelog
+config.guess   -whitespace
+config.sub     -whitespace
+elisp-comp     -whitespace
+install-sh     -whitespace
+mdate-sh       -whitespace
+missing                -whitespace
+texinfo.tex    -whitespace
+fdl.texi       -whitespace
+make-stds.texi -whitespace
+standards.texi -whitespace
diff --git a/.prev-version b/.prev-version
new file mode 100644 (file)
index 0000000..881307c
--- /dev/null
@@ -0,0 +1 @@
+2.61
index 5d00e73a5d85e192de326dd0aebb76afdaa0da1a..8629f93c1462e207a8baed179e7e064d02398966 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,35 @@
+2008-04-03  Eric Blake  <ebb9@byu.net>
+
+       Sync files from upstream, and pass 'make syntax-check'.
+       * config/announce-gen: Move...
+       * build-aux/announce-gen: ...here, and sync from gnulib.
+       * Makefile.am (EXTRA_DIST): Adjust accordingly.
+       * cfg.mk (announce_gen): Likewise.
+       (prev_version_file): Delete, relying on default in maint.mk.
+       (gpg_key_ID): New macro.
+       (url_dir_list): Rewrite to match coreutils.
+       * config/prev-version.txt: Move...
+       * .prev-version: ...here, and adjust to 2.61.
+       * build-aux/vc-list-files: Sync from coreutils.
+       * maint.mk: Resynchronize with coreutils, where possible.
+       (ME): Remove $(srcdir) from definition.
+       (CVS): Delete.
+       (GIT, VC, VC-tag): New macros.
+       (CVS_LIST, CVS_LIST_EXCEPT): Rename...
+       (VC_LIST, VC_LIST_EXCEPT): ...to this.
+       (cvs-tag-check): Delete.
+       (cvs-diff-check): Rename...
+       (vc-diff-check): ...to this.
+       (sc_file_system): Allow FHS acronym.
+       * doc/autoconf.texi (Particular Functions): Recommend
+       unconditional <config.h>.
+       * build-aux/config.guess: Sync from upstream (manually).
+       * build-aux/config.sub: Likewise.
+       * build-aux/texinfo.tex: Likewise.
+       * doc/make-stds.texi: Likewise.
+       * doc/standards.texi: Likewise.
+       * .gitattributes: Ignore whitespace problems in upstream files.
+
 2008-04-03  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
 
        * doc/autoconf.texi (Limitations of Usual Tools): Mention awk %u
 
 2008-03-28  Peter O'Gorman  <peter@pogma.com>
 
-       Find X11 on Mac OS X too.
-       * lib/autoconf/libs.m4 (_AC_PATH_X_DIRECT,_AC_PATH_X_XMKMF):
-       Check for libX11 with extensions dylib la and dll too.
-       * THANKS: Update.
-       Reported by Martin Costabel.
+       Find X11 on Mac OS X too.
+       * lib/autoconf/libs.m4 (_AC_PATH_X_DIRECT,_AC_PATH_X_XMKMF):
+       Check for libX11 with extensions dylib la and dll too.
+       * THANKS: Update.
+       Reported by Martin Costabel.
 
 2008-03-28  Eric Blake  <ebb9@byu.net>
 
index 40cb20c3d4b1ada1b8db5b971391f23146ca8c53..86b649105e7f688fecbebc4d57357082a6e208e8 100644 (file)
@@ -27,7 +27,7 @@ EXTRA_DIST = ChangeLog.0 ChangeLog.1 ChangeLog.2 \
             BUGS \
             GNUmakefile maint.mk cfg.mk \
             build-aux/git-version-gen \
-            config/announce-gen config/prev-version.txt
+            build-aux/announce-gen .prev-version
 
 MAINTAINERCLEANFILES = $(srcdir)/INSTALL
 
similarity index 73%
rename from config/announce-gen
rename to build-aux/announce-gen
index fec3df82aa1ec1a0f35111a052c3dd92d861f725..c642ef8e1f2ef79d9aaa81f41728c402cbd6ca92 100755 (executable)
@@ -1,7 +1,13 @@
 #!/usr/bin/perl -w
-# Generate an announcement message.
+# Generate a release announcement message.
 
-# Copyright (C) 2002, 2003, 2004, 2005 Free Software Foundation, Inc.
+my $VERSION = '2008-02-08 10:34'; # UTC
+# The definition above must lie within the first 8 lines in order
+# for the Emacs time-stamp write hook (at end) to update it.
+# If you change this file with Emacs, please let the write hook
+# do its job.  Otherwise, update this string manually.
+
+# Copyright (C) 2002-2008 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
 # You should have received a copy of the GNU General Public License
 # along with this program.  If not, see <http://www.gnu.org/licenses/>.
 
+# Written by Jim Meyering
+
 use strict;
 
 use Getopt::Long;
 use Digest::MD5;
 use Digest::SHA1;
+use POSIX qw(strftime);
 
-(my $VERSION = '$Revision$ ') =~ tr/[0-9].//cd;
 (my $ME = $0) =~ s|.*/||;
 
 my %valid_release_types = map {$_ => 1} qw (alpha beta major);
@@ -70,16 +78,24 @@ OPTIONS:
 
   Generate an announcement message.
 
-  FIXME: describe the following
+These options must be specified:
 
    --release-type=TYPE          TYPE must be one of @types
    --package-name=PACKAGE_NAME
    --previous-version=VER
    --current-version=VER
    --gpg-key-id=ID         The GnuPG ID of the key used to sign the tarballs
-   --release-archive-directory=DIR
    --url-directory=URL_DIR
-   --news=NEWS_FILE             optional
+
+The following are optional:
+
+   --news=NEWS_FILE
+   --bootstrap-tools=TOOL_LIST  a comma-separated list of tools, e.g.,
+                                autoconf,automake,bison,gnulib
+   --gnulib-snapshot-date=DATE  if gnulib is in the bootstrap tool list,
+                                then report this as the snapshot date.
+                                If not specified, use the current date/time.
+                                If you specify a date here, be sure it is UTC.
 
    --help             display this help and exit
    --version          output version information and exit
@@ -191,26 +207,28 @@ sub print_news_deltas ($$$)
   # the first occurrence of $prev_version.
   my $in_items;
 
+  my $re_prefix = qr/\* (?:Noteworthy|Major) change/;
+
   open NEWS, '<', $news_file
     or die "$ME: $news_file: cannot open for reading: $!\n";
   while (defined (my $line = <NEWS>))
     {
       if ( ! $in_items)
        {
-         # Match lines like this one:
+         # Match lines like these:
          # * Major changes in release 5.0.1:
-         # but not any other line that starts with a space, *, or -.
-         $line =~ /^(\* Major changes.*|[^ *-].*)\Q$curr_version\E/o
+         # * Noteworthy changes in release 6.6 (2006-11-22) [stable]
+         $line =~ /^$re_prefix.*(?:[^\d.]|$)\Q$curr_version\E(?:[^\d.]|$)/o
            or next;
          $in_items = 1;
          print $line;
        }
       else
        {
-         # Be careful that this regexp cannot match version numbers
-         # in NEWS items -- they might well say `introduced in 4.5.5',
+         # This regexp must not match version numbers in NEWS items.
+         # For example, they might well say `introduced in 4.5.5',
          # and we don't want that to match.
-         $line =~ /^(\* Major changes.*|[^ *-].*)\Q$prev_version\E/o
+         $line =~ /^$re_prefix.*(?:[^\d.]|$)\Q$prev_version\E(?:[^\d.]|$)/o
            and last;
          print $line;
        }
@@ -307,6 +325,44 @@ sub print_changelog_deltas ($$)
     or warn "$ME: warning: `cmd' had unexpected exit code or signal ($?)\n";
 }
 
+sub get_tool_versions ($$)
+{
+  my ($tool_list, $gnulib_version) = @_;
+  @$tool_list
+    or return ();
+
+  my $fail;
+  my @tool_version_pair;
+  foreach my $t (@$tool_list)
+    {
+      if ($t eq 'gnulib')
+       {
+         push @tool_version_pair, ucfirst $t . ' ' . $gnulib_version;
+         next;
+       }
+      # Assume that the last "word" on the first line of
+      # `tool --version` output is the version string.
+      my ($first_line, undef) = split ("\n", `$t --version`);
+      if ($first_line =~ /.* (\d[\w.-]+)$/)
+       {
+         $t = ucfirst $t;
+         push @tool_version_pair, "$t $1";
+       }
+      else
+       {
+         defined $first_line
+           and $first_line = '';
+         warn "$ME: $t: unexpected --version output\n:$first_line";
+         $fail = 1;
+       }
+    }
+
+  $fail
+    and exit 1;
+
+  return @tool_version_pair;
+}
+
 {
   # Neutralize the locale, so that, for instance, "du" does not
   # issue "1,2" instead of "1.2", what confuses our regexps.
@@ -316,10 +372,11 @@ sub print_changelog_deltas ($$)
   my $package_name;
   my $prev_version;
   my $curr_version;
-  my $release_archive_dir;
   my $gpg_key_id;
   my @url_dir_list;
   my @news_file;
+  my $bootstrap_tools;
+  my $gnulib_version;
 
   GetOptions
     (
@@ -328,9 +385,10 @@ sub print_changelog_deltas ($$)
      'previous-version=s' => \$prev_version,
      'current-version=s'  => \$curr_version,
      'gpg-key-id=s'       => \$gpg_key_id,
-     'release-archive-directory=s' => \$release_archive_dir,
      'url-directory=s'    => \@url_dir_list,
      'news=s'             => \@news_file,
+     'bootstrap-tools=s'  => \$bootstrap_tools,
+     'gnulib-version=s'   => \$gnulib_version,
 
      help => sub { usage 0 },
      version => sub { print "$ME version $VERSION\n"; exit },
@@ -346,25 +404,38 @@ sub print_changelog_deltas ($$)
     or (warn "$ME: previous version string not specified\n"), $fail = 1;
   $curr_version
     or (warn "$ME: current version string not specified\n"), $fail = 1;
-  $release_archive_dir
-    or (warn "$ME: release directory name not specified\n"), $fail = 1;
+  $gpg_key_id
+    or (warn "$ME: GnuPG key ID not specified\n"), $fail = 1;
   @url_dir_list
     or (warn "$ME: URL directory name(s) not specified\n"), $fail = 1;
 
+  my @tool_list = split ',', $bootstrap_tools;
+
+  grep (/^gnulib$/, @tool_list) ^ defined $gnulib_version
+    and (warn "$ME: when specifying gnulib as a tool, you must also specify\n"
+       . "--gnulib-version=V, where V is the result of running git describe\n"
+       . "in the gnulib source directory.\n"), $fail = 1;
+
   exists $valid_release_types{$release_type}
     or (warn "$ME: `$release_type': invalid release type\n"), $fail = 1;
 
   @ARGV
-    and (warn "$ME: too many arguments\n"), $fail = 1;
+    and (warn "$ME: too many arguments:\n", join ("\n", @ARGV), "\n"),
+      $fail = 1;
   $fail
     and usage 1;
 
   my $my_distdir = "$package_name-$curr_version";
   my $tgz = "$my_distdir.tar.gz";
   my $tbz = "$my_distdir.tar.bz2";
+  my $lzma = "$my_distdir.tar.lzma";
   my $xd = "$package_name-$prev_version-$curr_version.xdelta";
 
-  my %size = sizes ($tgz, $tbz, $xd);
+  my @tarballs = grep {-f $_} ($tgz, $tbz, $lzma);
+  my @sizable = @tarballs;
+  -f $xd
+    and push @sizable, $xd;
+  my %size = sizes (@sizable);
   %size
     or exit 1;
 
@@ -380,14 +451,16 @@ FIXME: put comments here
 
 EOF
 
-  print_locations ("compressed sources", @url_dir_list, %size,
-                  $tgz, $tbz);
-  print_locations ("xdelta-style diffs", @url_dir_list, %size,
-                  $xd);
+  print_locations ("compressed sources", @url_dir_list, %size, @tarballs);
+  -f $xd
+    and print_locations ("xdelta diffs (useful? if so, "
+                        . "please tell bug-gnulib\@gnu.org)",
+                        @url_dir_list, %size, $xd);
+  my @sig_files = map { "$_.sig" } @tarballs;
   print_locations ("GPG detached signatures[*]", @url_dir_list, %size,
-                  "$tgz.sig", "$tbz.sig");
+                  @sig_files);
 
-  print_checksums ($tgz, $tbz, $xd);
+  print_checksums (@sizable);
 
   print <<EOF;
 
@@ -406,6 +479,11 @@ then run this command to import it:
 and rerun the \`gpg --verify' command.
 EOF
 
+  my @tool_versions = get_tool_versions (\@tool_list, $gnulib_version);
+  @tool_versions
+    and print "\nThis release was bootstrapped with the following tools:",
+      join ('', map {"\n  $_"} @tool_versions), "\n";
+
   print_news_deltas ($_, $prev_version, $curr_version)
     foreach @news_file;
 
@@ -415,8 +493,6 @@ EOF
   exit 0;
 }
 
-
-
 ### Setup "GNU" style for perl-mode and cperl-mode.
 ## Local Variables:
 ## perl-indent-level: 2
@@ -432,4 +508,9 @@ EOF
 ## cperl-extra-newline-before-brace: t
 ## cperl-merge-trailing-else: nil
 ## cperl-continued-statement-offset: 2
+## eval: (add-hook 'write-file-hooks 'time-stamp)
+## time-stamp-start: "my $VERSION = '"
+## time-stamp-format: "%:y-%02m-%02d %02H:%02M"
+## time-stamp-time-zone: "UTC"
+## time-stamp-end: "'; # UTC"
 ## End:
index f32079abda668e5fc8f8de6f226e7b26384e8a03..6603908c211dbecd16c02a91ce65e4558d968383 100755 (executable)
@@ -4,7 +4,7 @@
 #   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
 #   Free Software Foundation, Inc.
 
-timestamp='2008-01-23'
+timestamp='2008-03-12'
 
 # This file is free software; you can redistribute it and/or modify it
 # under the terms of the GNU General Public License as published by
@@ -1216,6 +1216,9 @@ EOF
     BePC:BeOS:*:*)     # BeOS running on Intel PC compatible.
        echo i586-pc-beos
        exit ;;
+    BePC:Haiku:*:*)    # Haiku running on Intel PC compatible.
+       echo i586-pc-haiku
+       exit ;;
     SX-4:SUPER-UX:*:*)
        echo sx4-nec-superux${UNAME_RELEASE}
        exit ;;
index 6759825a5b7fcf64476b4398dc0e30b3090b925c..087f29bc5d7b874c430da79d145021f5dd3c4ff8 100755 (executable)
@@ -4,7 +4,7 @@
 #   2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008
 #   Free Software Foundation, Inc.
 
-timestamp='2008-01-16'
+timestamp='2008-03-26'
 
 # This file is (in principle) common to ALL GNU software.
 # The presence of a machine in this file suggests that SOME GNU software
@@ -250,12 +250,14 @@ case $basic_machine in
        | i370 | i860 | i960 | ia64 \
        | ip2k | iq2000 \
        | m32c | m32r | m32rle | m68000 | m68k | m88k \
-       | maxq | mb | microblaze | mcore | mep \
+       | maxq | mb | microblaze | mcore | mep | metag \
        | mips | mipsbe | mipseb | mipsel | mipsle \
        | mips16 \
        | mips64 | mips64el \
-       | mips64vr | mips64vrel \
+       | mips64octeon | mips64octeonel \
        | mips64orion | mips64orionel \
+       | mips64r5900 | mips64r5900el \
+       | mips64vr | mips64vrel \
        | mips64vr4100 | mips64vr4100el \
        | mips64vr4300 | mips64vr4300el \
        | mips64vr5000 | mips64vr5000el \
@@ -331,12 +333,14 @@ case $basic_machine in
        | ip2k-* | iq2000-* \
        | m32c-* | m32r-* | m32rle-* \
        | m68000-* | m680[012346]0-* | m68360-* | m683?2-* | m68k-* \
-       | m88110-* | m88k-* | maxq-* | mcore-* \
+       | m88110-* | m88k-* | maxq-* | mcore-* | metag-* \
        | mips-* | mipsbe-* | mipseb-* | mipsel-* | mipsle-* \
        | mips16-* \
        | mips64-* | mips64el-* \
-       | mips64vr-* | mips64vrel-* \
+       | mips64octeon-* | mips64octeonel-* \
        | mips64orion-* | mips64orionel-* \
+       | mips64r5900-* | mips64r5900el-* \
+       | mips64vr-* | mips64vrel-* \
        | mips64vr4100-* | mips64vr4100el-* \
        | mips64vr4300-* | mips64vr4300el-* \
        | mips64vr5000-* | mips64vr5000el-* \
@@ -364,7 +368,7 @@ case $basic_machine in
        | sparclite-* \
        | sparcv8-* | sparcv9-* | sparcv9b-* | sparcv9v-* | strongarm-* | sv1-* | sx?-* \
        | tahoe-* | thumb-* \
-       | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* \
+       | tic30-* | tic4x-* | tic54x-* | tic55x-* | tic6x-* | tic80-* | tile-* \
        | tron-* \
        | v850-* | v850e-* | vax-* \
        | we32k-* \
index d2b264dd9a50dc138dd62686656861ba196ddd7e..ef835d66bbde8356999f8299ab0832733784c363 100644 (file)
@@ -3,11 +3,11 @@
 % Load plain if necessary, i.e., if running under initex.
 \expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
 %
-\def\texinfoversion{2007-12-02.17}
+\def\texinfoversion{2008-03-31.10}
 %
-% Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995, 2007,
+% Copyright (C) 1985, 1986, 1988, 1990, 1991, 1992, 1993, 1994, 1995,
 % 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
-% 2007 Free Software Foundation, Inc.
+% 2007, 2008 Free Software Foundation, Inc.
 %
 % This texinfo.tex file is free software: you can redistribute it and/or
 % modify it under the terms of the GNU General Public License as
@@ -97,6 +97,7 @@
 \let\ptexslash=\/
 \let\ptexstar=\*
 \let\ptext=\t
+\let\ptextop=\top
 
 % If this character appears in an error message or help string, it
 % starts a new line in the output.
@@ -916,15 +917,19 @@ where each line of input produces a line of output.}
   \temp
 }
 
-% @include file    insert text of that file as input.
+% @include FILE -- \input text of FILE.
 %
 \def\include{\parseargusing\filenamecatcodes\includezzz}
 \def\includezzz#1{%
   \pushthisfilestack
   \def\thisfile{#1}%
   {%
-    \makevalueexpandable
-    \def\temp{\input #1 }%
+    \makevalueexpandable  % we want to expand any @value in FILE.  
+    \turnoffactive        % and allow special characters in the expansion
+    \edef\temp{\noexpand\input #1 }%
+    %
+    % This trickery is to read FILE outside of a group, in case it makes
+    % definitions, etc.
     \expandafter
   }\temp
   \popthisfilestack
@@ -1362,8 +1367,11 @@ output) for that.)}
           \openin 1 #1.jpeg \ifeof 1
             \openin 1 #1.JPG \ifeof 1
               \openin 1 #1.pdf \ifeof 1
-                \errhelp = \nopdfimagehelp
-                \errmessage{Could not find image file #1 for pdf}%
+                \openin 1 #1.PDF \ifeof 1
+                  \errhelp = \nopdfimagehelp
+                  \errmessage{Could not find image file #1 for pdf}%
+                \else \gdef\pdfimgext{PDF}%
+                \fi
               \else \gdef\pdfimgext{pdf}%
               \fi
             \else \gdef\pdfimgext{JPG}%
@@ -1377,7 +1385,7 @@ output) for that.)}
       \closein 1
     \endgroup
     %
-    % without \immediate, pdftex seg faults when the same image is
+    % without \immediate, ancient pdftex seg faults when the same image is
     % included twice.  (Version 3.14159-pre-1.0-unofficial-20010704.)
     \ifnum\pdftexversion < 14
       \immediate\pdfimage
@@ -2560,6 +2568,13 @@ end
 \let\env=\code
 \let\command=\code
 
+% @clicksequence{File @click{} Open ...}
+\def\clicksequence#1{\begingroup #1\endgroup}
+
+% @clickstyle @arrow   (by default)
+\parseargdef\clickstyle{\def\click{#1}}
+\def\click{\arrow}
+
 % @uref (abbreviation for `urlref') takes an optional (comma-separated)
 % second argument specifying the text to display and an optional third
 % arg as text to display instead of (rather than in addition to) the url
@@ -5652,14 +5667,15 @@ end
 
 % @point{}, @result{}, @expansion{}, @print{}, @equiv{}.
 %
-% Since these characters are used in examples, it should be an even number of
+% Since these characters are used in examples, they should be an even number of
 % \tt widths. Each \tt character is 1en, so two makes it 1em.
 %
 \def\point{$\star$}
-\def\result{\leavevmode\raise.15ex\hbox to 1em{\hfil$\Rightarrow$\hfil}}
-\def\expansion{\leavevmode\raise.1ex\hbox to 1em{\hfil$\mapsto$\hfil}}
+\def\arrow{\leavevmode\raise.05ex\hbox to 1em{\hfil$\rightarrow$\hfil}}
+\def\result{\leavevmode\raise.05ex\hbox to 1em{\hfil$\Rightarrow$\hfil}}
+\def\expansion{\leavevmode\hbox to 1em{\hfil$\mapsto$\hfil}}
 \def\print{\leavevmode\lower.1ex\hbox to 1em{\hfil$\dashv$\hfil}}
-\def\equiv{\leavevmode\lower.1ex\hbox to 1em{\hfil$\ptexequiv$\hfil}}
+\def\equiv{\leavevmode\hbox to 1em{\hfil$\ptexequiv$\hfil}}
 
 % The @error{} command.
 % Adapted from the TeXbook's \boxit.
@@ -5717,6 +5733,7 @@ end
   \let\/=\ptexslash
   \let\*=\ptexstar
   \let\t=\ptext
+  \expandafter \let\csname top\endcsname=\ptextop  % outer
   \let\frenchspacing=\plainfrenchspacing
   %
   \def\endldots{\mathinner{\ldots\ldots\ldots\ldots}}%
@@ -6953,20 +6970,22 @@ end
   %
   % Make link in pdf output.
   \ifpdf
-    \leavevmode
-    \getfilename{#4}%
     {\indexnofonts
      \turnoffactive
+     % This expands tokens, so do it after making catcode changes, so _
+     % etc. don't get their TeX definitions.
+     \getfilename{#4}%
+     %
      % See comments at \activebackslashdouble.
      {\activebackslashdouble \xdef\pdfxrefdest{#1}%
       \backslashparens\pdfxrefdest}%
      %
+     \leavevmode
+     \startlink attr{/Border [0 0 0]}%
      \ifnum\filenamelength>0
-       \startlink attr{/Border [0 0 0]}%
-         goto file{\the\filename.pdf} name{\pdfxrefdest}%
+       goto file{\the\filename.pdf} name{\pdfxrefdest}%
      \else
-       \startlink attr{/Border [0 0 0]}%
-         goto name{\pdfmkpgn{\pdfxrefdest}}%
+       goto name{\pdfmkpgn{\pdfxrefdest}}%
      \fi
     }%
     \setcolor{\linkcolor}%
@@ -7421,15 +7440,19 @@ end
   % If the image is by itself, center it.
   \ifvmode
     \imagevmodetrue
-    \nobreak\bigskip
+    \nobreak\medskip
     % Usually we'll have text after the image which will insert
     % \parskip glue, so insert it here too to equalize the space
     % above and below.
     \nobreak\vskip\parskip
     \nobreak
-    \line\bgroup
   \fi
   %
+  % Leave vertical mode so that indentation from an enclosing
+  % environment such as @quotation is respected.  On the other hand, if
+  % it's at the top level, we don't want the normal paragraph indentation.
+  \noindent
+  %
   % Output the image.
   \ifpdf
     \dopdfimage{#1}{#2}{#3}%
@@ -7440,7 +7463,7 @@ end
     \epsfbox{#1.eps}%
   \fi
   %
-  \ifimagevmode \egroup \bigbreak \fi  % space after the image
+  \ifimagevmode \medskip \fi  % space after the standalone image
 \endgroup}
 
 
index 903224475ef7829ca6e8dd4c007078a2d0704034..1e158bb521e219fa4dfa0327ee40e9c826eba563 100755 (executable)
@@ -1,7 +1,7 @@
 #!/bin/sh
-# List the specified version-controlled files.
+# List version-controlled file names.
 
-# Copyright (C) 2006 Free Software Foundation, Inc.
+# Copyright (C) 2006-2008 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
 
 
 # List the specified version-controlled files.
-# With no argument, list them all.
+# With no argument, list them all.  With a single DIRECTORY argument,
+# list the version-controlled files in that directory.
 # This script must be run solely from the top of a $srcdir build directory.
 
-# If there's an argument, it must be a single, "."-relative directory name,
-# with no trailing slashes.  In mercurial mode, it's used as part of a
-# "grep" pattern (prepend "^", append "/"), and in cvs mode, it's simply
-# used as an argument to the cvsu script.
+# If there's an argument, it must be a single, "."-relative directory name.
+# cvsu is part of the cvsutils package: http://www.red-bean.com/cvsutils/
 
-include_prefix=
+dir=
 case $# in
   0) ;;
-  1) include_prefix=$1 ;;
-  *) echo "$0: too many arguments" 1>&2; exit 1 ;;
+  1) dir=$1 ;;
+  *) echo "$0: too many arguments" 1>&2
+     echo "Usage: $0 [DIR]" 1>&2; exit 1;;
 esac
 
+test "x$dir" = x && dir=.
+
 if test -d .git; then
-  if test "x$include_prefix" = x; then
-    git-ls-files | cut -d ' ' -f 3
-  else
-    git-ls-files | cut -d ' ' -f 3 | grep "^$include_prefix/"
-  fi
+  exec git ls-files "$dir"
 elif test -d .hg; then
-  if test "x$include_prefix" = x; then
-    hg manifest | cut -d ' ' -f 3
+  exec hg locate "$dir/*"
+elif test -d CVS; then
+  if test -x build-aux/cvsu; then
+    build-aux/cvsu --find --types=AFGM "$dir"
   else
-    hg manifest | cut -d ' ' -f 3 | grep "^$include_prefix/"
+    awk -F/ '{                         \
+       if (!$1 && $3 !~ /^-/) {        \
+         f=FILENAME;                   \
+         sub(/CVS\/Entries/, "", f);   \
+         print f $2;                   \
+       }}'                             \
+      $(find ${*-*} -name Entries -print) /dev/null;
   fi
-elif test -x build-aux/cvsu; then
-  build-aux/cvsu --find --types=AFGM $include_prefix
 else
-  awk -F/ '{                           \
-      if (!$1 && $3 !~ /^-/) {         \
-       f=FILENAME;                     \
-       sub(/CVS\/Entries/, "", f);     \
-       print f $2;                     \
-      }}'                              \
-    $(find ${*-*} -name Entries -print) /dev/null;
+  echo "$0: Failed to determine type of version control used in "`pwd` 1>&2
+  exit 1
 fi
diff --git a/cfg.mk b/cfg.mk
index 2b0bcac4bfc4a1547d8f364098aad46f2177e6d6..e8c804504aea127b44b1a9f4624fd12e50752c8e 100644 (file)
--- a/cfg.mk
+++ b/cfg.mk
@@ -23,19 +23,21 @@ export PATH = $(shell echo "`pwd`/tests:$$PATH")
 _autoreconf = autoreconf -i -v && rm -f INSTALL
 
 # Version management.
-prev_version_file = $(srcdir)/config/prev-version.txt
-announce_gen   = $(srcdir)/config/announce-gen
+announce_gen   = $(srcdir)/build-aux/announce-gen
 release_archive_dir = releases
 
 # Use alpha.gnu.org for alpha and beta releases.
 # Use ftp.gnu.org for major releases.
-gnu_ftp_host-alpha = alpha
-gnu_ftp_host-beta = alpha
-gnu_ftp_host-major = ftp
+gnu_ftp_host-alpha = alpha.gnu.org
+gnu_ftp_host-beta = alpha.gnu.org
+gnu_ftp_host-major = ftp.gnu.org
 gnu_rel_host = $(gnu_ftp_host-$(RELEASE_TYPE))
 
 url_dir_list = \
-  ftp://$(gnu_rel_host).gnu.org/gnu/autoconf
+  ftp://$(gnu_rel_host)/gnu/autoconf
+
+# The GnuPG ID of the key used to sign the tarballs.
+gpg_key_ID = F4850180
 
 # Files to update automatically.
 cvs_executable_files = \
@@ -62,4 +64,4 @@ executable-update: wget-update cvs-update autom4te-update
 
 # Tests not to run.
 local-checks-to-skip ?= \
-  sc_unmarked_diagnostics
+  changelog-check sc_unmarked_diagnostics
diff --git a/config/prev-version.txt b/config/prev-version.txt
deleted file mode 100644 (file)
index f6a4163..0000000
+++ /dev/null
@@ -1 +0,0 @@
-2.60
index 8bbfdde2b7269a4f1c42c6e927f09822a6dd032e..672e1a5051cbdfaf86558ec261e27af94e867bfd 100644 (file)
@@ -4807,9 +4807,7 @@ Typically, the replacement file @file{malloc.c} should look like (note
 the @samp{#undef malloc}):
 
 @verbatim
-#ifdef HAVE_CONFIG_H
-# include <config.h>
-#endif
+#include <config.h>
 #undef malloc
 
 #include <sys/types.h>
index 205a6db2a14134db29433d77e8d523a78718ffa7..041a08515e6945d5863d0ffd1b55b384dc82d8b9 100644 (file)
@@ -9,7 +9,7 @@
 @cindex standards for makefiles
 
 @c Copyright (C) 1992, 1993, 1994, 1995, 1996, 1997, 1998, 2000, 2001,
-@c 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+@c 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
 
 @c Permission is granted to copy, distribute and/or modify this document
 @c under the terms of the GNU Free Documentation License, Version 1.2
@@ -33,7 +33,10 @@ chapter
 @end iftex
 describes conventions for writing the Makefiles for GNU programs.
 Using Automake will help you write a Makefile that follows these
-conventions.
+conventions.  For more information on portable Makefiles, see
+@sc{posix} and @ref{Portable Make, Portable Make Programming,, autoconf,
+Autoconf}.
+
 
 @menu
 * Makefile Basics::             General conventions for Makefiles.
@@ -144,8 +147,10 @@ subtargets) work correctly with a parallel @code{make}.
 @section Utilities in Makefiles
 
 Write the Makefile commands (and any shell scripts, such as
-@code{configure}) to run in @code{sh}, not in @code{csh}.  Don't use any
-special features of @code{ksh} or @code{bash}.
+@code{configure}) to run under @code{sh} (both the traditional Bourne
+shell and the @sc{posix} shell), not @code{csh}.  Don't use any
+special features of @code{ksh} or @code{bash}, or @sc{posix} features
+not widely supported in traditional Bourne @code{sh}.
 
 The @code{configure} script and the Makefile rules for building and
 installation should not use any utilities directly except these:
@@ -159,14 +164,19 @@ awk cat cmp cp diff echo egrep expr false grep install-info
 ln ls mkdir mv pwd rm rmdir sed sleep sort tar test touch true
 @end example
 
-The compression program @code{gzip} can be used in the @code{dist} rule.
+Compression programs such as @code{gzip} can be used in the
+@code{dist} rule.
+
+Generally, stick to the widely-supported (usually
+@sc{posix}-specified) options and features of these programs.  For
+example, don't use @samp{mkdir -p}, convenient as it may be, because a
+few systems don't support it at all and with others, it is not safe
+for parallel execution.  For a list of known incompatibilities, see
+@ref{Portable Shell, Portable Shell Programming,, autoconf, Autoconf}.
 
-Stick to the generally supported options for these programs.  For
-example, don't use @samp{mkdir -p}, convenient as it may be, because
-most systems don't support it.
 
 It is a good idea to avoid creating symbolic links in makefiles, since a
-few systems don't support them.
+few file systems don't support them.
 
 The Makefile rules for building and installation can also use compilers
 and related programs, but should do so via @code{make} variables so that the
index 12d42675b1020f73bfc5ea39cfe8c6ded91b043d..4cb5ed3a6c92b677ffe0f7cdea0b721a5fbc342d 100644 (file)
@@ -3,7 +3,7 @@
 @setfilename standards.info
 @settitle GNU Coding Standards
 @c This date is automagically updated when you save this file:
-@set lastupdate October 10, 2007
+@set lastupdate February 23, 2008
 @c %**end of header
 
 @dircategory GNU organization
 
 @c This is used by a cross ref in make-stds.texi
 @set CODESTD  1
-@iftex
-@set CHAPTER chapter
-@end iftex
-@ifinfo
-@set CHAPTER node
-@end ifinfo
 
 @copying
 The GNU coding standards, last updated @value{lastupdate}.
 
 Copyright @copyright{} 1992, 1993, 1994, 1995, 1996, 1997, 1998, 1999,
-2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007 Free Software
+2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software
 Foundation, Inc.
 
 Permission is granted to copy, distribute and/or modify this document
@@ -313,7 +307,7 @@ technique.
 
 @cindex GUILE
 The standard extensibility interpreter for GNU software is GUILE
-(@uref{http://www.gnu.org/software/guile/}), which implements the
+(@uref{http://www.gnu.org/@/software/@/guile/}), which implements the
 language Scheme (an especially clean and simple dialect of Lisp).  We
 don't reject programs written in other ``scripting languages'' such as
 Perl and Python, but using GUILE is very important for the overall
@@ -1019,10 +1013,10 @@ abbreviation as usual, as in the examples below.
 
 @table @asis
 @item GPL
-GNU General Public License, @url{http://www.gnu.org/licenses/gpl.html}.
+GNU General Public License, @url{http://www.gnu.org/@/licenses/@/gpl.html}.
 
 @item LGPL
-GNU Lesser General Public License, @url{http://www.gnu.org/licenses/lgpl.html}.
+GNU Lesser General Public License, @url{http://www.gnu.org/@/licenses/@/lgpl.html}.
 
 @item GPL/Guile
 GNU GPL with the exception for Guile; for example, GPLv3+/Guile means
@@ -1032,47 +1026,47 @@ GNU GPL with the exception for Ada.
 
 @item Apache
 The Apache Software Foundation license,
-@url{http://www.apache.org/licenses}.
+@url{http://www.apache.org/@/licenses}.
 
 @item Artistic
-The Artistic license used for Perl, @url{http://www.perlfoundation.org/legal}.
+The Artistic license used for Perl, @url{http://www.perlfoundation.org/@/legal}.
 
 @item Expat
-The Expat license, @url{http://www.jclark.com/xml/copying.txt}.
+The Expat license, @url{http://www.jclark.com/@/xml/@/copying.txt}.
 
 @item MPL
-The Mozilla Public License, @url{http://www.mozilla.org/MPL/}.
+The Mozilla Public License, @url{http://www.mozilla.org/@/MPL/}.
 
 @item OBSD
 The original (4-clause) BSD license, incompatible with the GNU GPL
-@url{http://www.xfree86.org/3.3.6/COPYRIGHT2.html#6}.
+@url{http://www.xfree86.org/@/3.3.6/@/COPYRIGHT2.html#6}.
 
 @item PHP
-The license used for PHP, @url{http://www.php.net/license/}.
+The license used for PHP, @url{http://www.php.net/@/license/}.
 
 @item public domain
 The non-license that is being in the public domain,
-@url{http://www.gnu.org/licenses/license-list.html#PublicDomain}.
+@url{http://www.gnu.org/@/licenses/@/license-list.html#PublicDomain}.
 
 @item Python
-The license for Python, @url{http://www.python.org/2.0.1/license.html}.
+The license for Python, @url{http://www.python.org/@/2.0.1/@/license.html}.
 
 @item RBSD
 The revised (3-clause) BSD, compatible with the GNU GPL,
-@url{http://www.xfree86.org/3.3.6/COPYRIGHT2.html#5}.
+@url{http://www.xfree86.org/@/3.3.6/@/COPYRIGHT2.html#5}.
 
 @item X11
 The simple non-copyleft license used for most versions of the X Window
-system, @url{http://www.xfree86.org/3.3.6/COPYRIGHT2.html#3}.
+system, @url{http://www.xfree86.org/@/3.3.6/@/COPYRIGHT2.html#3}.
 
 @item Zlib
-The license for Zlib, @url{http://www.gzip.org/zlib/zlib_license.html}.
+The license for Zlib, @url{http://www.gzip.org/@/zlib/@/zlib_license.html}.
 
 @end table
 
 More information about these licenses and many more are on the GNU
 licensing web pages,
-@url{http://www.gnu.org/licenses/license-list.html}.
+@url{http://www.gnu.org/@/licenses/@/license-list.html}.
 
 
 @node --help
@@ -2861,7 +2855,7 @@ void error (int status, int errnum, const char *format, ...);
 A simple way to use the Gnulib error module is to obtain the two
 source files @file{error.c} and @file{error.h} from the Gnulib library
 source code repository at
-@uref{http://savannah.gnu.org/cgi-bin/viewcvs/gnulib/gnulib/lib/}.
+@uref{http://git.savannah.gnu.org/@/gitweb/@/?p=gnulib.git}.
 Here's a sample use:
 
 @example
@@ -3826,6 +3820,17 @@ refer explicitly to the specified source directory.  To make this
 possible, @code{configure} can add to the Makefile a variable named
 @code{srcdir} whose value is precisely the specified directory.
 
+In addition, the @samp{configure} script should take options
+corresponding to most of the standard directory variables
+(@pxref{Directory Variables}).  Here is the list:
+
+@example
+--prefix --exec-prefix --bindir --sbindir --libexecdir --sysconfdir
+--sharedstatedir --localstatedir --libdir --includedir --oldincludedir
+--datarootdir --datadir --infodir --localedir --mandir --docdir
+--htmldir --dvidir --pdfdir --psdir
+@end example
+
 The @code{configure} script should also take an argument which specifies the
 type of system to build the program for.  This argument should look like
 this:
@@ -3841,7 +3846,7 @@ The @code{configure} script needs to be able to decode all plausible
 alternatives for how to describe a machine.  Thus,
 @samp{athlon-pc-gnu/linux} would be a valid alias.  There is a shell
 script called
-@uref{http://savannah.gnu.org/@/cgi-bin/@/viewcvs/@/*checkout*/@/config/@/config/@/config.sub,
+@uref{http://git.savannah.gnu.org/@/gitweb/@/?p=config.git;a=blob_plain;f=config.sub;hb=HEAD,
 @file{config.sub}} that you can use as a subroutine to validate system
 types and canonicalize aliases.
 
@@ -3852,7 +3857,7 @@ plain @var{buildtype} argument.  For example, @samp{configure
 i686-pc-linux-gnu}.  When the build type is not specified by an option
 or argument, the @code{configure} script should normally guess it using
 the shell script
-@uref{http://savannah.gnu.org/@/cgi-bin/@/viewcvs/@/*checkout*/@/config/@/config/@/config.guess,
+@uref{http://git.savannah.gnu.org/@/gitweb/@/?p=config.git;a=blob_plain;f=config.guess;hb=HEAD,
 @file{config.guess}}.
 
 @cindex optional features, configure-time
@@ -4057,9 +4062,9 @@ advertise them to new potential customers, or to give the public the
 idea that their existence is ethical.
 
 The GNU definition of free software is found on the GNU web site at
-@url{http://www.gnu.org/philosophy/free-sw.html}, and the definition
+@url{http://www.gnu.org/@/philosophy/@/free-sw.html}, and the definition
 of free documentation is found at
-@url{http://www.gnu.org/philosophy/free-doc.html}.  The terms ``free''
+@url{http://www.gnu.org/@/philosophy/@/free-doc.html}.  The terms ``free''
 and ``non-free'', used in this document, refer to those definitions.
 
 A list of important licenses and whether they qualify as free is in
index 0e22d3e6d5ea4bc844183920a08b1a2a557b562d..a4fa134a02474a8f297ae987e4e7947a5bfee4e8 100644 (file)
--- a/maint.mk
+++ b/maint.mk
@@ -1,26 +1,25 @@
 # -*-Makefile-*-
-# This Makefile fragment is shared between the coreutils,
-# CPPI, Bison, and Autoconf.
-
-# Copyright (C) 2001, 2002, 2003, 2004, 2005, 2006, 2008 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/>.
+# This Makefile fragment tries to be general-purpose enough to be
+# used by at least coreutils, idutils, CPPI, Bison, and Autoconf.
+
+## Copyright (C) 2001-2008 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/>.
 
 # This is reported not to work with make-3.79.1
 # ME := $(word $(words $(MAKEFILE_LIST)),$(MAKEFILE_LIST))
-ME := $(srcdir)/maint.mk
+ME := maint.mk
 
 # Do not save the original name or timestamp in the .tar.gz file.
 # Use --rsyncable if available.
@@ -28,24 +27,24 @@ gzip_rsyncable := \
   $(shell gzip --help 2>/dev/null|grep rsyncable >/dev/null && echo --rsyncable)
 GZIP_ENV = '--no-name --best $(gzip_rsyncable)'
 
-CVS = cvs
+GIT = git
+VC = $(GIT)
+VC-tag = git tag -s -m '$(VERSION)'
 
-# cvsu is part of the cvsutils package: http://www.red-bean.com/cvsutils/
-CVS_LIST = build-aux/vc-list-files
+VC_LIST = build-aux/vc-list-files
 
-CVS_LIST_EXCEPT = \
-  $(CVS_LIST) | if test -f .x-$@; then grep -vEf .x-$@; else grep -v ChangeLog; fi
+VC_LIST_EXCEPT = \
+  $(VC_LIST) | if test -f .x-$@; then grep -vEf .x-$@; else grep -v ChangeLog; fi
 
 ifeq ($(origin prev_version_file), undefined)
-  prev_version_file = .prev-version
+  prev_version_file = $(srcdir)/.prev-version
 endif
 
 PREV_VERSION := $(shell cat $(prev_version_file))
 VERSION_REGEXP = $(subst .,\.,$(VERSION))
 
-tag-package = $(shell echo "$(PACKAGE)" | tr '[:lower:]' '[:upper:]')
-tag-this-version = $(subst .,_,$(VERSION))
-this-cvs-tag = $(tag-package)-$(tag-this-version)
+this-vc-tag = v$(VERSION)
+this-vc-tag-regexp = v$(VERSION_REGEXP)
 my_distdir = $(PACKAGE)-$(VERSION)
 
 # Old releases are stored here.
@@ -62,13 +61,11 @@ export LC_ALL = C
 ## Sanity checks.  ##
 ## --------------- ##
 
-# FIXME: add a check to prohibit definition in src/*.c of symbols defined
-# in system.h.  E.g. today I removed from tail.c a useless definition of
-# ENOSYS.  It was useless because system.h ensures it's defined.
+# Collect the names of rules starting with `sc_'.
+syntax-check-rules := $(shell sed -n 's/^\(sc_[a-zA-Z0-9_-]*\):.*/\1/p' \
+                        $(srcdir)/$(ME))
+.PHONY: $(syntax-check-rules)
 
-# Checks that don't require cvs.
-# Run `changelog-check' last, as previous test may reveal problems requiring
-# new ChangeLog entries.
 local-checks-available = \
   po-check copyright-check writable-files m4-check author_mark_check \
   changelog-check patch-check strftime-check $(syntax-check-rules) \
@@ -76,13 +73,9 @@ local-checks-available = \
   makefile-check check-AUTHORS
 .PHONY: $(local-checks-available)
 
-local-check = $(filter-out $(local-checks-to-skip), $(local-checks-available))
-
-# Collect the names of rules starting with `sc_'.
-syntax-check-rules := $(shell sed -n 's/^\(sc_[a-zA-Z0-9_-]*\):.*/\1/p' $(ME))
-.PHONY: $(syntax-check-rules)
+local-check := $(filter-out $(local-checks-to-skip), $(local-checks-available))
 
-syntax-check: $(syntax-check-rules)
+syntax-check: $(local-check)
 #      @shopt -s nullglob;                                             \
 #      grep -nE '#  *include <(limits|std(def|arg|bool))\.h>'          \
 #          $$(find -type f -name '*.[chly]') /dev/null &&              \
@@ -118,16 +111,16 @@ sc_cast_of_alloca_return_value:
            exit 1; } || :
 
 sc_space_tab:
-       @grep -n '[ ]   ' $$($(CVS_LIST_EXCEPT)) &&                     \
+       @grep -n '[ ]   ' $$($(VC_LIST_EXCEPT)) &&                      \
          { echo '$(ME): found SPACE-TAB sequence; remove the SPACE'    \
                1>&2; exit 1; } || :
 
-# Don't use the old ato* functions in `real' code.
+# Don't use *scanf or the old ato* functions in `real' code.
 # They provide no error checking mechanism.
 # Instead, use strto* functions.
 sc_prohibit_atoi_atof:
-       @grep -nE '\<ato([filq]|ll)\>' $$($(CVS_LIST_EXCEPT)) &&        \
-         { echo '$(ME): do not use ato''f, ato''i, ato''l, ato''ll, or ato''q' \
+       @grep -nE '\<([fs]?scanf|ato([filq]|ll))\>' $$($(VC_LIST_EXCEPT)) && \
+         { echo '$(ME): do not use *scan''f, ato''f, ato''i, ato''l, ato''ll, ato''q, or ss''canf'     \
                1>&2; exit 1; } || :
 
 # Using EXIT_SUCCESS as the first argument to error is misleading,
@@ -139,36 +132,92 @@ sc_error_exit_success:
            exit 1; } || :
 
 sc_file_system:
-       @grep -ni 'file''system' $$($(CVS_LIST_EXCEPT)) &&              \
+       @grep -ni 'file''system' $$($(VC_LIST_EXCEPT))                  \
+         | grep -v 'File''system Hierarchy Standard' &&                \
          { echo '$(ME): found use of "file''system";'                  \
            'rewrite to use "file system"' 1>&2;                        \
            exit 1; } || :
 
-sc_no_if_have_config_h:
-       @grep -n '^# *if HAVE_CONFIG_H' $$($(CVS_LIST_EXCEPT)) &&       \
-         { echo '$(ME): found use of #if HAVE_CONFIG_H; use #ifdef'    \
+sc_no_have_config_h:
+       @grep -n '^# *if.*HAVE''_CONFIG_H' $$($(VC_LIST_EXCEPT)) &&     \
+         { echo '$(ME): found use of HAVE''_CONFIG_H; remove'          \
                1>&2; exit 1; } || :
 
 # Nearly all .c files must include <config.h>.
 sc_require_config_h:
-       @grep -L '^# *include <config\.h>' /dev/null                    \
-               $$($(CVS_LIST_EXCEPT) | grep '\.c$$')                   \
-           | grep -v /dev/null &&                                      \
+       @if $(VC_LIST_EXCEPT) | grep '\.c$$' > /dev/null; then          \
+         grep -L '^# *include <config\.h>'                             \
+               $$($(VC_LIST_EXCEPT) | grep '\.c$$')                    \
+             | grep . &&                                               \
          { echo '$(ME): the above files do not include <config.h>'     \
-               1>&2; exit 1; } || :
+               1>&2; exit 1; } || :;                                   \
+       else :;                                                         \
+       fi
+
+# To use this "command" macro, you must first define two shell variables:
+# h: the header, enclosed in <> or ""
+# re: a regular expression that matches IFF something provided by $h is used.
+define _header_without_use
+  h_esc=`echo "$$h"|sed 's/\./\\./'`;                                  \
+  if $(VC_LIST_EXCEPT) | grep '\.c$$' > /dev/null; then                        \
+    files=$$(grep -l '^# *include '"$$h_esc"                           \
+            $$($(VC_LIST_EXCEPT) | grep '\.c$$')) &&                   \
+    grep -LE "$$re" $$files | grep . &&                                        \
+      { echo "$(ME): the above files include $$h but don't use it"     \
+       1>&2; exit 1; } || :;                                           \
+  else :;                                                              \
+  fi
+endef
 
 # Prohibit the inclusion of assert.h without an actual use of assert.
 sc_prohibit_assert_without_use:
-       @files=$$(grep -l '# *include <assert\.h>' /dev/null            \
-                   $$($(CVS_LIST_EXCEPT) | grep '\.c$$')) &&           \
-       grep -L '\<assert (' $$files /dev/null                          \
-           | grep -v /dev/null &&                                      \
-         { echo "$(ME): the above files include <assert.h> but don't use it" \
-               1>&2; exit 1; } || :
+       @h='<assert.h>' re='\<assert *\(' $(_header_without_use)
+
+# Prohibit the inclusion of getopt.h without an actual use.
+sc_prohibit_getopt_without_use:
+       @h='<getopt.h>' re='\<getopt(_long)? *\(' $(_header_without_use)
+
+# Don't include quotearg.h unless you use one of its functions.
+sc_prohibit_quotearg_without_use:
+       @h='"quotearg.h"' re='\<quotearg(_[^ ]+)? *\(' $(_header_without_use)
+
+# Don't include quote.h unless you use one of its functions.
+sc_prohibit_quote_without_use:
+       @h='"quote.h"' re='\<quote(_n)? *\(' $(_header_without_use)
+
+# Don't include this header unless you use one of its functions.
+sc_prohibit_long_options_without_use:
+       @h='"long-options.h"' re='\<parse_long_options *\(' \
+         $(_header_without_use)
+
+# Don't include this header unless you use one of its functions.
+sc_prohibit_inttostr_without_use:
+       @h='"inttostr.h"' re='\<(off|[iu]max|uint)tostr *\(' \
+         $(_header_without_use)
+
+# Don't include this header unless you use one of its functions.
+sc_prohibit_error_without_use:
+       @h='"error.h"' \
+       re='\<error(_at_line|_print_progname|_one_per_line|_message_count)? *\('\
+         $(_header_without_use)
+
+sc_prohibit_safe_read_without_use:
+       @h='"safe-read.h"' re='(\<SAFE_READ_ERROR\>|\<safe_read *\()' \
+         $(_header_without_use)
+
+sc_prohibit_argmatch_without_use:
+       @h='"argmatch.h"' \
+       re='(\<(ARRAY_CARDINALITY|X?ARGMATCH(|_TO_ARGUMENT|_VERIFY))\>|\<argmatch(_exit_fn|_(in)?valid) *\()' \
+         $(_header_without_use)
+
+sc_prohibit_root_dev_ino_without_use:
+       @h='"root-dev-ino.h"' \
+       re='(\<ROOT_DEV_INO_(CHECK|WARN)\>|\<get_root_dev_ino *\()' \
+         $(_header_without_use)
 
 sc_obsolete_symbols:
        @grep -nE '\<(HAVE''_FCNTL_H|O''_NDELAY)\>'                     \
-            $$($(CVS_LIST_EXCEPT)) &&                                  \
+            $$($(VC_LIST_EXCEPT)) &&                                   \
          { echo '$(ME): do not use HAVE''_FCNTL_H or O''_NDELAY'       \
                1>&2; exit 1; } || :
 
@@ -202,14 +251,14 @@ endif
 # Make sure that none are inadvertently reintroduced.
 sc_prohibit_jm_in_m4:
        @grep -nE 'jm_[A-Z]'                                    \
-               $$($(CVS_LIST) $(srcdir)/m4 |grep '\.m4$$') &&  \
+               $$($(VC_LIST) $(srcdir)/m4 |grep '\.m4$$') &&   \
            { echo '$(ME): do not use jm_ in m4 macro names'    \
              1>&2; exit 1; } || :
 
 sc_root_tests:
        @t1=sc-root.expected; t2=sc-root.actual;                        \
        grep -nl '^PRIV_CHECK_ARG=require-root'                         \
-         $$($(CVS_LIST) tests) |sed s/tests/./ |sort > $$t1;           \
+         $$($(VC_LIST) tests) |sed s/tests/./ |sort > $$t1;            \
        sed -n 's,      cd \([^ ]*\) .*MAKE..check TESTS=\(.*\),./\1/\2,p' \
          $(srcdir)/tests/Makefile.am |sort > $$t2;                     \
        diff -u $$t1 $$t2 || diff=1;                                    \
@@ -228,7 +277,7 @@ sc_system_h_headers:
            | sed 's/ .*//;;s/^["<]/^# *include [<"]/;s/\.h[">]$$/\\.h[">]/' \
          ) &&                                                          \
          grep -nE -f "$pat"                                            \
-             $$($(CVS_LIST) src |                                      \
+             $$($(VC_LIST) src |                                       \
                 grep -Ev '((copy|system)\.h|parse-gram\.c)$$')         \
            && { echo '$(ME): the above are already included via system.h'\
                  1>&2;  exit 1; } || :;                                \
@@ -237,12 +286,12 @@ sc_system_h_headers:
 sc_sun_os_names:
        @grep -nEi \
            'solaris[^[:alnum:]]*2\.(7|8|9|[1-9][0-9])|sunos[^[:alnum:]][6-9]' \
-           $$($(CVS_LIST_EXCEPT)) &&                                   \
+           $$($(VC_LIST_EXCEPT)) &&                                    \
          { echo '$(ME): found misuse of Sun OS version numbers' 1>&2;  \
            exit 1; } || :
 
 sc_the_the:
-       @grep -ni '\<the ''the\>' $$($(CVS_LIST_EXCEPT)) &&             \
+       @grep -ni '\<the ''the\>' $$($(VC_LIST_EXCEPT)) &&              \
          { echo '$(ME): found use of "the ''the";' 1>&2;               \
            exit 1; } || :
 
@@ -250,17 +299,17 @@ sc_tight_scope:
        test ! -d src || $(MAKE) -C src $@
 
 sc_trailing_blank:
-       @grep -n '[      ]$$' $$($(CVS_LIST_EXCEPT)) &&                 \
+       @grep -n '[      ]$$' $$($(VC_LIST_EXCEPT)) &&                  \
          { echo '$(ME): found trailing blank(s)'                       \
                1>&2; exit 1; } || :
 
 # Match lines like the following, but where there is only one space
 # between the options and the description:
 #   -D, --all-repeated[=delimit-method]  print all duplicate lines\n
-longopt_re = --[a-z][0-9A-Za-z-]*(\[=[0-9A-Za-z-]*\])?
+longopt_re = --[a-z][0-9A-Za-z-]*(\[?=[0-9A-Za-z-]*\]?)?
 sc_two_space_separator_in_usage:
        @grep -nE '^   *(-[A-Za-z],)? $(longopt_re) [^ ].*\\$$'         \
-           $$($(CVS_LIST_EXCEPT)) &&                                   \
+           $$($(VC_LIST_EXCEPT)) &&                                    \
          { echo "$(ME): help2man requires at least two spaces between"; \
            echo "$(ME): an option and its description"; \
                1>&2; exit 1; } || :
@@ -269,7 +318,7 @@ sc_two_space_separator_in_usage:
 # This won't find any for which error's format string is on a separate line.
 sc_unmarked_diagnostics:
        @grep -nE                                                       \
-           '\<error \([^"]*"[^"]*[a-z]{3}' $$($(CVS_LIST_EXCEPT))      \
+           '\<error \([^"]*"[^"]*[a-z]{3}' $$($(VC_LIST_EXCEPT))       \
          | grep -v '_''(' &&                                           \
          { echo '$(ME): found unmarked diagnostic(s)' 1>&2;            \
            exit 1; } || :
@@ -277,7 +326,7 @@ sc_unmarked_diagnostics:
 # Avoid useless parentheses like those in this example:
 # #if defined (SYMBOL) || defined (SYM2)
 sc_useless_cpp_parens:
-       @grep -n '^# *if .*defined *(' $$($(CVS_LIST_EXCEPT)) &&        \
+       @grep -n '^# *if .*defined *(' $$($(VC_LIST_EXCEPT)) &&         \
          { echo '$(ME): found useless parentheses in cpp directive'    \
                1>&2; exit 1; } || :
 
@@ -319,22 +368,22 @@ makefile-check:
          && { echo '$(ME): use $$(...), not @...@' 1>&2; exit 1; } || :
 
 news-date-check: NEWS
-       today=`date +%Y-%m-%d`; \
-       if head NEWS | grep '^\*.* $(VERSION_REGEXP) ('$$today')' \
-           >/dev/null; then \
-         :; \
-       else \
-         echo "version or today's date is not in NEWS" 1>&2; \
-         exit 1; \
+       today=`date +%Y-%m-%d`;                                         \
+       if head NEWS | grep '^\*.* $(VERSION_REGEXP) ('$$today')'       \
+           >/dev/null; then                                            \
+         :;                                                            \
+       else                                                            \
+         echo "version or today's date is not in NEWS" 1>&2;           \
+         exit 1;                                                       \
        fi
 
 changelog-check:
-       if head ChangeLog | grep 'Version $(VERSION_REGEXP)\.$$' \
-           >/dev/null; then \
-         :; \
-       else \
-         echo "$(VERSION) not in ChangeLog" 1>&2; \
-         exit 1; \
+       if head ChangeLog | grep 'Version $(VERSION_REGEXP)\.$$'        \
+           >/dev/null; then                                            \
+         :;                                                            \
+       else                                                            \
+         echo "$(VERSION) not in ChangeLog" 1>&2;                      \
+         exit 1;                                                       \
        fi
 
 m4-check:
@@ -350,9 +399,10 @@ po-check:
          grep -E -v '^(#|$$)' po/POTFILES.in                           \
            | grep -v '^src/false\.c$$' | sort > $@-1;                  \
          files=;                                                       \
-         for file in $$($(CVS_LIST_EXCEPT)) lib/*.[ch]; do             \
+         for file in $$($(VC_LIST_EXCEPT)) lib/*.[ch]; do              \
            case $$file in                                              \
            djgpp/* | man/*) continue;;                                 \
+           */c99-to-c89.diff) continue;;                               \
            esac;                                                       \
            case $$file in                                              \
            *.[ch])                                                     \
@@ -361,7 +411,8 @@ po-check:
            esac;                                                       \
            files="$$files $$file";                                     \
          done;                                                         \
-         grep -E -l '\bN?_\([^)"]*("|$$)' $$files | sort -u > $@-2;    \
+         grep -E -l '\b(N?_|gettext *)\([^)"]*("|$$)' $$files          \
+           | sort -u > $@-2;                                           \
          diff -u $@-1 $@-2 || exit 1;                                  \
          rm -f $@-1 $@-2;                                              \
        fi
@@ -409,37 +460,25 @@ copyright-check:
               exit 1; }; \
        fi
 
-
-# Sanity checks with the CVS repository.
-cvs-tag-check:
-       echo $(this-cvs-tag); \
-       if $(CVS) -n log -h README | grep -e $(this-cvs-tag): >/dev/null; then \
-         echo "$(this-cvs-tag) as already been used; not tagging" 1>&2; \
-         exit 1; \
-       else :; fi
-
-cvs-diff-check:
-       if $(CVS) diff >cvs-diffs; then                         \
-         rm cvs-diffs;                                         \
-       else                                                    \
+vc-diff-check:
+       (CDPATH=; cd $(srcdir) && $(VC) diff) > vc-diffs || :
+       if test -s vc-diffs; then                               \
+         cat vc-diffs;                                         \
          echo "Some files are locally modified:" 1>&2;         \
-         cat cvs-diffs;                                        \
          exit 1;                                               \
+       else                                                    \
+         rm vc-diffs;                                          \
        fi
 
-cvs-check: cvs-diff-check cvs-tag-check
+cvs-check: vc-diff-check
 
 maintainer-distcheck:
        $(MAKE) distcheck
        $(MAKE) my-distcheck
 
-
-# Tag before making distribution.  Also, don't make a distribution if
-# checks fail.  Also, make sure the NEWS file is up-to-date.
-# FIXME: use dist-hook/my-dist like distcheck-hook/my-distcheck.
-cvs-dist: $(local-check) cvs-check maintainer-distcheck
-       $(CVS) update po
-       $(CVS) tag -c $(this-cvs-tag)
+# Don't make a distribution if checks fail.
+# Also, make sure the NEWS file is up-to-date.
+vc-dist: $(local-check) cvs-check maintainer-distcheck
        $(MAKE) dist
 
 # Use this to make sure we don't run these programs when building
@@ -491,9 +530,9 @@ announcement: NEWS ChangeLog $(rel-files)
            --curr=$(VERSION)                                           \
            --release-archive-directory=$(release_archive_dir)          \
            --gpg-key-id=$(gpg_key_ID)                                  \
-           --news=NEWS                                                 \
-           $(addprefix --url-dir=, $(url_dir_list))                    \
-
+           --news=$(srcdir)/NEWS                                       \
+           --bootstrap-tools=automake                                  \
+           $(addprefix --url-dir=, $(url_dir_list))
 
 ## ---------------- ##
 ## Updating files.  ##
@@ -502,8 +541,8 @@ announcement: NEWS ChangeLog $(rel-files)
 ftp-gnu = ftp://ftp.gnu.org/gnu
 www-gnu = http://www.gnu.org
 
-# Use mv-if-change if you prefer it.
-move_if_change ?= mv
+# Use mv, if you don't have/want move-if-change.
+move_if_change ?= move-if-change
 
 
 # --------------------- #
@@ -547,7 +586,7 @@ emit_upload_commands:
        @echo =====================================
        @echo =====================================
        @echo "$(srcdir)/build-aux/gnupload $(GNUPLOADFLAGS) \\"
-       @echo "    --to $(gnu_rel_host):coreutils \\"
+       @echo "    --to $(gnu_rel_host):$(PACKAGE) \\"
        @echo "  $(rel-files)"
        @echo '# send the /tmp/announcement e-mail'
        @echo =====================================
@@ -562,11 +601,13 @@ alpha beta major: news-date-check changelog-check $(local-check)
          && { echo $(VERSION) | grep -E '^[0-9]+(\.[0-9]+)+$$' \
               || { echo "invalid version string: $(VERSION)" 1>&2; exit 1;};}\
          || :
-       $(MAKE) cvs-dist
+       $(MAKE) vc-dist
        $(MAKE) $(xd-delta)
        $(MAKE) -s announcement RELEASE_TYPE=$@ > /tmp/announce-$(my_distdir)
        ln $(rel-files) $(release_archive_dir)
        chmod a-w $(rel-files)
        $(MAKE) -s emit_upload_commands RELEASE_TYPE=$@
        echo $(VERSION) > $(prev_version_file)
-       $(CVS) ci -m. $(prev_version_file)
+       $(VC) commit -m \
+         '$(prev_version_file): Record previous version: $(VERSION).' \
+         $(prev_version_file)