[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
snapshot preparations
From: |
Jim Meyering |
Subject: |
snapshot preparations |
Date: |
Sun, 26 Mar 2023 22:13:04 -0700 |
grep-3.10 used this version of autoconf, and so far there's been
no indication of trouble, so I'm going to proceed with a snapshot.
But first, there was a test failure, and "make fetch" pulled in
a few small changes, so here are those two diffs, just pushed.
With these, the tests all pass for me on Fedora 37 x86_64.
>From 0b92bd72ca6cae6190ee6b6c95449e4243597e75 Mon Sep 17 00:00:00 2001
From: Jim Meyering <meyering@fb.com>
Date: Sat, 25 Mar 2023 22:07:19 -0700
Subject: [PATCH 1/2] 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.
---
build-aux/announce-gen | 92 +++++++++++++++++++++--
build-aux/gnupload | 2 +-
build-aux/texinfo.tex | 166 +++++++++++++++++++++++++++++------------
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,9 +536,47 @@ 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)
@@ -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\ }}
+\def\amprm#1 {\ampseentrue{\rm\ }}
\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.
--
2.40.0.130.g27d43aaaf5
>From 2e25d42eb2f0601f7e780a622191f21a8c09aa48 Mon Sep 17 00:00:00 2001
From: Jim Meyering <meyering@fb.com>
Date: Sun, 26 Mar 2023 22:08:02 -0700
Subject: [PATCH 2/2] tests: avoid an unwarranted test failure
* tests/autotest.at (parallel autotest and signal handling): This
test would consistently fail due to an exit status of 0. That was
considered failure because the test required a SIGHUP-indicating
exit status. However, an status of 0 is perfectly fine, too, so
accept that.
---
tests/autotest.at | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/tests/autotest.at b/tests/autotest.at
index 4367ff29..008153ef 100644
--- a/tests/autotest.at
+++ b/tests/autotest.at
@@ -1710,7 +1710,7 @@ AT_CHECK([($CONFIG_SHELL ./micro-suite -d -3 5-; echo $?
>status) | sed 5q],
AT_CHECK([grep '5.*ok' stdout], [1])
# Apparently some shells don't get around to creating 'status' any more.
# And ksh93 on FreeBSD uses 256 + 13 instead of 128 + 13
-AT_CHECK([test ! -s status || grep 141 status || grep 269 status],
+AT_CHECK([test ! -s status || grep 141 status || grep 269 status || grep ^0
status ],
[], [ignore])
AT_CHECK([if test -f micro-suite.dir/7/micro-suite.log; then ]dnl
[ echo "shell ignores SIGPIPE" > sigpipe-stamp ]dnl
--
2.40.0.130.g27d43aaaf5
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- snapshot preparations,
Jim Meyering <=