summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJim Meyering <meyering@fb.com>2023-03-25 22:07:19 -0700
committerJim Meyering <meyering@meta.com>2023-03-25 22:07:19 -0700
commit0b92bd72ca6cae6190ee6b6c95449e4243597e75 (patch)
tree63173fff924a1d00816726787aef4693bd7a9732
parent8db00aa848d0ce6d5b25a0afc07c9dc20ab04c3e (diff)
downloadautoconf-0b92bd72ca6cae6190ee6b6c95449e4243597e75.tar.gz
build: run "make fetch", which updated these:
Preparing to make a pre-release snapshot, update these: * build-aux/announce-gen: Update from gnulib * build-aux/gnupload: Likewise. * build-aux/texinfo.tex: Update from texinfo.
-rwxr-xr-xbuild-aux/announce-gen92
-rwxr-xr-xbuild-aux/gnupload2
-rw-r--r--build-aux/texinfo.tex166
3 files changed, 206 insertions, 54 deletions
diff --git a/build-aux/announce-gen b/build-aux/announce-gen
index 6bf48e1b..850619a1 100755
--- a/build-aux/announce-gen
+++ b/build-aux/announce-gen
@@ -35,7 +35,7 @@
eval 'exec perl -wSx "$0" "$@"'
if 0;
-my $VERSION = '2022-07-10 01:47'; # UTC
+my $VERSION = '2023-02-26 17:15'; # 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
@@ -165,6 +165,17 @@ Print the SHA1 and SHA256 signature section for each C<@file>.
=cut
+# This digest function omits the "=" padding that is required by cksum,
+# so add the 0..2 bytes of padding required for each of Digest's algorithms.
+sub digest_file_base64_wrap ($$)
+{
+ my ($file, $alg) = @_;
+ my $h = digest_file_base64($file, $alg);
+ $alg =~ tr{-}{}d;
+ my %pad = (MD5 => 2, SHA1 => 1, SHA256 => 1, SHA384 => 0, SHA512 => 2);
+ return $h . '=' x $pad{$alg};
+}
+
sub print_checksums (@)
{
my (@file) = @_;
@@ -176,11 +187,11 @@ sub print_checksums (@)
foreach my $f (@file)
{
- print digest_file_hex($f, "SHA-1"), " $f\n";
- print digest_file_base64($f, "SHA-256"), " $f\n";
+ print ' ', digest_file_hex ($f, "SHA-1"), " $f\n";
+ print ' ', digest_file_base64_wrap ($f, "SHA-256"), " $f\n";
}
- print "\nThe SHA256 checksum is base64 encoded, instead of the\n";
- print "hexadecimal encoding that most checksum tools default to.\n\n";
+ print "\nVerify the base64 SHA256 checksum with cksum -a sha256 --check\n";
+ print "from coreutils-9.2 or OpenBSD's cksum since 2007.\n\n";
}
=item C<print_news_deltas ($news_file, $prev_version, $curr_version)
@@ -365,6 +376,38 @@ sub get_tool_versions ($$)
return @tool_version_pair;
}
+# Print a more human-friendly representation of $SEC seconds.
+sub readable_interval0($)
+{
+ my $sec = shift;
+ $sec < 60 and return "$sec seconds";
+
+ my $min = int($sec / 60); $sec %= 60;
+ 30 < $sec and $min++;
+ $min < 60 and return "$min minutes";
+
+ my $hr = int($min / 60); $min %= 60;
+ 30 < $min and $hr++;
+ $hr < 24 and return "$hr hours";
+
+ my $day = int($hr / 24); $hr %= 24;
+ 12 < $hr and $day++;
+ $day < 50 and return "$day days";
+
+ my $wk = int($day / 7); $day %= 7;
+ 4 < $day and $wk++;
+ return "$wk weeks";
+}
+
+# Convert e.g., "1 weeks", to "1 week".
+sub readable_interval($)
+{
+ my $interval_str = shift;
+ my $i = readable_interval0 $interval_str;
+ $i =~ m{^1 \w+s$} and chop $i;
+ return $i;
+}
+
{
# Use the C locale so that, for instance, "du" does not
# print "1,2" instead of "1.2", which would confuse our regexps.
@@ -493,11 +536,49 @@ sub get_tool_versions ($$)
${headers}Subject: $my_distdir released [$release_type]
<\#secure method=pgpmime mode=sign>
+This is to announce $package_name-$curr_version, a $release_type release.
FIXME: put comments here
EOF
+ my $v0 = $prev_version;
+ my $v1 = $curr_version;
+
+ (my $first_name = `git config --global user.name|cut -d' ' -f1`)
+ =~ m{\S} or die "no name? set user.name in ~/.gitconfig\n";
+
+ chomp (my $n_ci = `git rev-list "v$v0..v$v1" | wc -l`);
+ chomp (my $n_p = `git shortlog "v$v0..v$v1" | grep -c '^[^ ]'`);
+
+ my $prev_release_date = `git log --pretty=%ct -1 "v$v0"`;
+ my $this_release_date = `git log --pretty=%ct -1 "v$v1"`;
+ my $n_seconds = $this_release_date - $prev_release_date;
+ my $time_since_prev = readable_interval $n_seconds;
+ my $names = `git shortlog "v$v0..v$v1"|perl -lne '/^(\\w.*):/ and print " ".\$1'`;
+
+ print <<EOF;
+There have been $n_ci commits by $n_p people in the $time_since_prev since $v0.
+
+See the NEWS below for a brief summary.
+
+Thanks to everyone who has contributed!
+The following people contributed changes to this release:
+
+$names
+$first_name [on behalf of the $package_name maintainers]
+==================================================================
+
+Here is the GNU $package_name home page:
+ http://gnu.org/s/$package_name/
+
+For a summary of changes and contributors, see:
+ http://git.sv.gnu.org/gitweb/?p=$package_name.git;a=shortlog;h=v$v1
+or run this command from a git-cloned $package_name directory:
+ git shortlog v$v0..v$v1
+
+EOF
+
if (@url_dir_list == 1 && @tarballs == 1)
{
# When there's only one tarball and one URL, use a more concise form.
@@ -587,7 +668,6 @@ keyring:
wget -q https://ftp.gnu.org/gnu/gnu-keyring.gpg
gpg --keyring gnu-keyring.gpg --verify $tarballs[0].sig
-
EOF
my @tool_versions = get_tool_versions (\@tool_list, $gnulib_version);
diff --git a/build-aux/gnupload b/build-aux/gnupload
index 215a9388..3e8f102e 100755
--- a/build-aux/gnupload
+++ b/build-aux/gnupload
@@ -398,7 +398,7 @@ upload ()
for f in $files $base.directive.asc
do
echo put $f
- done | $dbg sftp -b - puszcza.gnu.org.ua:/incoming/$destdir_topdir
+ done | $dbg sftp -b - download.gnu.org.ua:/incoming/$destdir_topdir
;;
/*)
dest_host=`echo "$dest" | sed 's,:.*,,'`
diff --git a/build-aux/texinfo.tex b/build-aux/texinfo.tex
index 94def084..d2516110 100644
--- a/build-aux/texinfo.tex
+++ b/build-aux/texinfo.tex
@@ -3,7 +3,7 @@
% Load plain if necessary, i.e., if running under initex.
\expandafter\ifx\csname fmtname\endcsname\relax\input plain\fi
%
-\def\texinfoversion{2023-01-17.19}
+\def\texinfoversion{2023-03-21.06}
%
% Copyright 1985, 1986, 1988, 1990-2023 Free Software Foundation, Inc.
%
@@ -4722,13 +4722,11 @@ $$%
% except not \outer, so it can be used within macros and \if's.
\edef\newwrite{\makecsname{ptexnewwrite}}
-% \newindex {foo} defines an index named IX.
+% \newindex {IX} defines an index named IX.
% It automatically defines \IXindex such that
% \IXindex ...rest of line... puts an entry in the index IX.
% It also defines \IXindfile to be the number of the output channel for
% the file that accumulates this index. The file's extension is IX.
-% The name of an index should be no more than 2 characters long
-% for the sake of vms.
%
\def\newindex#1{%
\expandafter\chardef\csname#1indfile\endcsname=0
@@ -7557,11 +7555,6 @@ might help (with 'rm \jobname.?? \jobname.??s')%
\exdentamount=\defbodyindent
}
-\newtoks\defidx
-\newtoks\deftext
-
-\def\useindex#1{\global\defidx={#1}\ignorespaces}
-
% Called as \printdefunline \deffooheader{text}
%
\def\printdefunline#1#2{%
@@ -7569,10 +7562,6 @@ might help (with 'rm \jobname.?? \jobname.??s')%
\plainfrenchspacing
% call \deffooheader:
#1#2 \endheader
- % create the index entry
- \defcharsdefault
- \edef\temp{\noexpand\doind{\the\defidx}{\the\deftext}}%
- \temp
% common ending:
\interlinepenalty = 10000
\advance\rightskip by 0pt plus 1fil\relax
@@ -7587,6 +7576,24 @@ might help (with 'rm \jobname.?? \jobname.??s')%
\def\Edefun{\endgraf\medbreak}
+% @defblock, @defline do not automatically create index entries
+\envdef\defblock{%
+ \startdefun
+}
+\let\Edefblock\Edefun
+
+\def\defline{%
+ \doingtypefnfalse
+ \parseargusing\activeparens{\printdefunline\deflineheader}%
+}
+\def\deflineheader#1 #2 #3\endheader{%
+ \printdefname{#1}{}{#2}\magicamp\defunargs{#3\unskip}%
+}
+\def\deftypeline{%
+ \doingtypefntrue
+ \parseargusing\activeparens{\printdefunline\deflineheader}%
+}
+
% \makedefun{deffoo} (\deffooheader parameters) { (\deffooheader expansion) }
%
% Define \deffoo, \deffoox \Edeffoo and \deffooheader.
@@ -7638,56 +7645,51 @@ might help (with 'rm \jobname.?? \jobname.??s')%
\fi\fi
}
-\def\defind#1#2{
- \defidx={#1}%
- \deftext={#2}%
-}
-
% Untyped functions:
% @deffn category name args
\makedefun{deffn}#1 #2 #3\endheader{%
- \defind{fn}{\code{#2}}%
- \defname{#1}{}{#2}\magicamp\defunargs{#3\unskip}%
+ \doind{fn}{\code{#2}}%
+ \printdefname{#1}{}{#2}\magicamp\defunargs{#3\unskip}%
}
% @defop category class name args
\makedefun{defop}#1 {\defopheaderx{#1\ \putwordon}}
\def\defopheaderx#1#2 #3 #4\endheader{%
- \defind{fn}{\code{#3}\space\putwordon\ \code{#2}}%
- \defname{#1\ \code{#2}}{}{#3}\magicamp\defunargs{#4\unskip}%
+ \doind{fn}{\code{#3}\space\putwordon\ \code{#2}}%
+ \printdefname{#1\ \code{#2}}{}{#3}\magicamp\defunargs{#4\unskip}%
}
% Typed functions:
% @deftypefn category type name args
\makedefun{deftypefn}#1 #2 #3 #4\endheader{%
- \defind{fn}{\code{#3}}%
+ \doind{fn}{\code{#3}}%
\doingtypefntrue
- \defname{#1}{#2}{#3}\defunargs{#4\unskip}%
+ \printdefname{#1}{#2}{#3}\defunargs{#4\unskip}%
}
% @deftypeop category class type name args
\makedefun{deftypeop}#1 {\deftypeopheaderx{#1\ \putwordon}}
\def\deftypeopheaderx#1#2 #3 #4 #5\endheader{%
- \defind{fn}{\code{#4}\space\putwordon\ \code{#1\ \code{#2}}}%
+ \doind{fn}{\code{#4}\space\putwordon\ \code{#1\ \code{#2}}}%
\doingtypefntrue
- \defname{#1\ \code{#2}}{#3}{#4}\defunargs{#5\unskip}%
+ \printdefname{#1\ \code{#2}}{#3}{#4}\defunargs{#5\unskip}%
}
% Typed variables:
% @deftypevr category type var args
\makedefun{deftypevr}#1 #2 #3 #4\endheader{%
- \defind{vr}{\code{#3}}%
- \defname{#1}{#2}{#3}\defunargs{#4\unskip}%
+ \doind{vr}{\code{#3}}%
+ \printdefname{#1}{#2}{#3}\defunargs{#4\unskip}%
}
% @deftypecv category class type var args
\makedefun{deftypecv}#1 {\deftypecvheaderx{#1\ \putwordof}}
\def\deftypecvheaderx#1#2 #3 #4 #5\endheader{%
- \defind{vr}{\code{#4}\space\putwordof\ \code{#2}}%
- \defname{#1\ \code{#2}}{#3}{#4}\defunargs{#5\unskip}%
+ \doind{vr}{\code{#4}\space\putwordof\ \code{#2}}%
+ \printdefname{#1\ \code{#2}}{#3}{#4}\defunargs{#5\unskip}%
}
% Untyped variables:
@@ -7703,8 +7705,8 @@ might help (with 'rm \jobname.?? \jobname.??s')%
% @deftp category name args
\makedefun{deftp}#1 #2 #3\endheader{%
- \defind{tp}{\code{#2}}%
- \defname{#1}{}{#2}\defunargs{#3\unskip}%
+ \doind{tp}{\code{#2}}%
+ \printdefname{#1}{}{#2}\defunargs{#3\unskip}%
}
% Remaining @defun-like shortcuts:
@@ -7720,14 +7722,14 @@ might help (with 'rm \jobname.?? \jobname.??s')%
\makedefun{defivar}{\defcvheaderx\putwordInstanceVariableof}
\makedefun{deftypeivar}{\deftypecvheaderx\putwordInstanceVariableof}
-% \defname, which formats the name of the @def (not the args).
+% \printdefname, which formats the name of the @def (not the args).
% #1 is the category, such as "Function".
% #2 is the return type, if any.
% #3 is the function name.
%
% We are followed by (but not passed) the arguments, if any.
%
-\def\defname#1#2#3{%
+\def\printdefname#1#2#3{%
\par
% Get the values of \leftskip and \rightskip as they were outside the @def...
\advance\leftskip by -\defbodyindent
@@ -7852,7 +7854,7 @@ might help (with 'rm \jobname.?? \jobname.??s')%
% If we encounter &foo, then turn on ()-hacking afterwards
\newif\ifampseen
-\def\amprm#1 {\ampseentrue{\bf\&#1 }}
+\def\amprm#1 {\ampseentrue{\rm\&#1 }}
\def\parenfont{%
\ifampseen
@@ -8176,12 +8178,12 @@ might help (with 'rm \jobname.?? \jobname.??s')%
%
% We are in \macrobodyctxt, and the \xdef causes backslashshes in the macro
% body to be transformed.
-% Set \macrobody to the body of the macro, and call \defmacro.
+% Set \macrobody to the body of the macro, and call \macrodef.
%
{\catcode`\ =\other\long\gdef\parsemacbody#1@end macro{%
-\xdef\macrobody{\eatcr{#1}}\endgroup\defmacro}}%
+\xdef\macrobody{\eatcr{#1}}\endgroup\macrodef}}%
{\catcode`\ =\other\long\gdef\parsermacbody#1@end rmacro{%
-\xdef\macrobody{\eatcr{#1}}\endgroup\defmacro}}%
+\xdef\macrobody{\eatcr{#1}}\endgroup\macrodef}}%
% Make @ a letter, so that we can make private-to-Texinfo macro names.
\edef\texiatcatcode{\the\catcode`\@}
@@ -8400,16 +8402,17 @@ might help (with 'rm \jobname.?? \jobname.??s')%
% \xdef is used so that macro definitions will survive the file
% they're defined in: @include reads the file inside a group.
%
-\def\defmacro{%
+\def\macrodef{%
\let\hash=##% convert placeholders to macro parameter chars
\ifnum\paramno=1
- \def\xeatspaces##1{##1}%
- % This removes the pair of braces around the argument. We don't
- % use \eatspaces, because this can cause ends of lines to be lost
- % when the argument to \eatspaces is read, leading to line-based
- % commands like "@itemize" not being read correctly.
+ \long\def\xeatspaces##1{##1}%
+ % We don't use \xeatspaces for single-argument macros, because we
+ % want to keep ends of lines. This definition removes \xeatspaces
+ % when \macrobody is expanded below.
\else
- \let\xeatspaces\relax % suppress expansion
+ \def\xeatspaces{\string\xeatspaces}%
+ % This expands \xeatspaces as a sequence of character tokens, which
+ % stops \scantokens inserting an extra space after the control sequence.
\fi
\ifcase\paramno
% 0
@@ -8575,6 +8578,75 @@ might help (with 'rm \jobname.?? \jobname.??s')%
\fi \macnamexxx}
+% @linemacro
+
+\parseargdef\linemacro{%
+ \getargs{#1}% now \macname is the macname and \argl the arglist
+ \ifx\argl\empty
+ \paramno=0
+ \let\hash\relax
+ \def\paramlist{\hash 1\endlinemacro}%
+ \else
+ \expandafter\linegetparamlist\argl;%
+ \fi
+ \begingroup \macrobodyctxt \usembodybackslash
+ \parselinemacrobody
+}
+
+% Build up \paramlist which will be used as the parameter text for the macro.
+% At the end it will be like "#1 #2 #3\endlinemacro".
+\def\linegetparamlist#1;{%
+ \paramno=0\def\paramlist{}%
+ \let\hash\relax
+ \linegetparamlistxxx#1,;,%
+}
+\def\linegetparamlistxxx#1,{%
+ \if#1;\let\next=\linegetparamlistxxxx
+ \else \let\next=\linegetparamlistxxx
+ \advance\paramno by 1
+ \expandafter\edef\csname macarg.\eatspaces{#1}\endcsname
+ {\hash\the\paramno}%
+ \edef\paramlist{\paramlist\hash\the\paramno\space}%
+ \fi\next}
+\def\linegetparamlistxxxx{%
+ \expandafter\fixparamlist\paramlist\fixparamlist
+}
+% Replace final space token
+\def\fixparamlist#1 \fixparamlist{%
+ \def\paramlist{#1\endlinemacro}%
+}
+
+% Read the body of the macro, replacing backslash-surrounded variables
+%
+{\catcode`\ =\other\long\gdef\parselinemacrobody#1@end linemacro{%
+\xdef\macrobody{#1}%
+\endgroup
+\linemacrodef
+}}
+
+% Make the definition
+\def\linemacrodef{%
+ \let\hash=##%
+ \expandafter\xdef\csname\the\macname\endcsname{%
+ \bgroup
+ \noexpand\parsearg
+ \expandafter\noexpand\csname\the\macname @@\endcsname
+ }
+ \expandafter\xdef\csname\the\macname @@\endcsname##1{%
+ \egroup
+ \expandafter\noexpand
+ \csname\the\macname @@@\endcsname##1\noexpand\endlinemacro
+ }
+ \expandafter\expandafter
+ \expandafter\xdef
+ \expandafter\expandafter\csname\the\macname @@@\endcsname\paramlist{%
+ \newlinechar=13 % split \macrobody into lines
+ \noexpand\scantokens{\macrobody}%
+ }
+}
+
+
+
% @alias.
% We need some trickery to remove the optional spaces around the equal
% sign. Make them active and then expand them all to nothing.
@@ -9566,8 +9638,8 @@ might help (with 'rm \jobname.?? \jobname.??s')%
%
\def\caption{\docaption\thiscaption}
\def\shortcaption{\docaption\thisshortcaption}
-\def\docaption{\checkenv\float \bgroup\scanctxt\defcaption}
-\def\defcaption#1#2{\egroup \def#1{#2}}
+\def\docaption{\checkenv\float \bgroup\scanctxt\docaptionz}
+\def\docaptionz#1#2{\egroup \def#1{#2}}
% The parameter is the control sequence identifying the counter we are
% going to use. Create it if it doesn't exist and assign it to \floatno.