bug#44763: Error when 'make'ing latest version of coreutils

2020-11-21 Thread Akim Demaille
Hi Chris,

I saw nothing suspicious about Bison in the logs you sent.

> Le 21 nov. 2020 à 18:33, Chris Elvidge  a écrit :
> 
>  CC   lib/parse-datetime.o
> In file included from lib/gettext.h:26:0,
> from parse-datetime.y:71:
> parse-datetime.y: In function 'parse_datetime2':
> parse-datetime.y:2301:27: error: format '%lld' expects argument of type 'long 
> long int', but argument 2 has type 'time_t {aka long int}' [-Werror=format=]
> parse-datetime.y:2301:25: note: in expansion of macro '_'

This is the only error I spotted, and that corresponds to:

  2296  dbg_printf (_("after time adjustment (%+"PRIdMAX" hours, "
  2297"%+"PRIdMAX" minutes, "
  2298"%+"PRIdMAX" seconds, %+d ns),\n"),
  2299  pc.rel.hour, pc.rel.minutes, pc.rel.seconds,
  2300  pc.rel.ns);
  2301  dbg_printf (_("new time = %"PRIdMAX" epoch-seconds\n"), 
t4);

with

time_t t4;

so it appears we "only" have a portability issue where gnulib
believes %PRIdMAX is ok for time_t, but it is not.

The other guys (in the previous gdb_printf) are intmax_t:

/* Relative times.  */
typedef struct
{
  /* Relative year, month, day, hour, minutes, seconds, and nanoseconds.  */
  intmax_t year;
  intmax_t month;
  intmax_t day;
  intmax_t hour;
  intmax_t minutes;
  intmax_t seconds;
  int ns;
} relative_time;

I have no idea what is the best course of action to fix the error
(a cast?  A configure check to fight the right printf format?  Changing
the type of t4?), but Chris, if you just want to build, then simply
change 2301 into

dbg_printf (_("new time = %ld epoch-seconds\n"), t4);

That should do it.

Cheers!




bug#44763: Error when 'make'ing latest version of coreutils

2020-11-21 Thread Akim Demaille
Hi all,

> Le 20 nov. 2020 à 16:48, Pádraig Brady  a écrit :
> 
> See also https://bugs.gnu.org/44739

There, I just read this:

>> I found that I needed to upgrade to Bison v3.7.4 to avoid a build error 
>> in stdlib.h where @GNULIB_POSIX_MEMALIGN@ has not been converted by 
>> Bison. The check in your bootstrap program allows for an older version 
>> of Bison to be used which fails to do the necessary conversion.

which is not correct.  Bison does not perform any transformation
on @FOO@ at all.  This is completely unrelated to it.  What would
be most useful is to get the generated files and see what they
look like.

Also, I might have missed messages, but I would like to see a
plain copy-paste of the terminal where I can see exactly what
commands were run, and what the tools reported.

Cheers!




bug#44763: Error when 'make'ing latest version of coreutils

2020-11-20 Thread Akim Demaille
Hi guys,

> Le 21 nov. 2020 à 07:35, Akim Demaille  a écrit :
> 
> Hi Pádraig,
> 
> Just in case:
> 
> $ for i in /usr/local/stow/bison-3.*

I had forgotten that there is a 2.3 sitting on my system, and indeed:

$ /usr/bin/bison gnulib/lib/parse-datetime.y
gnulib/lib/parse-datetime.y:555.9-16: syntax error, unexpected identifier, 
expecting string

It chokes on `%define api.pure`.

According to NEWS, this syntax was introduced in 2.4 (2008-11-02).

I have tried to install 2.7 on my system, but I can't (because of
portability issues of vasnprintf that were not covered by gnulib at
that time).  I cannot even install 3.0.

Cheers!




bug#44763: Error when 'make'ing latest version of coreutils

2020-11-20 Thread Akim Demaille
Hi Pádraig,

> Le 20 nov. 2020 à 15:47, Pádraig Brady  a écrit :
> 
> On 20/11/2020 14:19, Chris Elvidge wrote:
>> I keep getting
>> ./lib/stdlib.h:695:5: error: token "@" is not valid in preprocessor
>> expressions
>>   #if @GNULIB_ALIGNED_ALLOC@
>>   ^
>> ./lib/stdlib.h:1059:5: error: token "@" is not valid in preprocessor
>> expressions
>>   #if @GNULIB_POSIX_MEMALIGN@
> 
> Please update bison to >= 3.5.
> I don't know what the exact new requirement is,
> but will update bootstrap.conf to check that very soon.
> 
> Akim do you know the min bison version
> now required by the latest gnulib?
> That would spare me some bisecting.

I wasn't aware of any strong dependency such as this one (and I actually
still have not understood what the problem is, and how problems with
AC_SUBST are related to Bison here).

The only I see in gnulib which is a *.y is lib/parse-datetime.y.
And I don't see anything special in it that would require any special
version of Bison.

Just in case:

$ for i in /usr/local/stow/bison-3.*
do
echo "$i..."  
$i/bin/bison lib/parse-datetime.y
done
/usr/local/stow/bison-3.0.5...
/usr/local/stow/bison-3.1...
/usr/local/stow/bison-3.2.4...
/usr/local/stow/bison-3.3.2...
/usr/local/stow/bison-3.4.2...
/usr/local/stow/bison-3.5.4...
/usr/local/stow/bison-3.6.4...
/usr/local/stow/bison-3.7...
/usr/local/stow/bison-3.7.1...
/usr/local/stow/bison-3.7.2...
/usr/local/stow/bison-3.7.3...

I think I have not understood the question, sorry :(  What exactly
happens here?  Is configure properly rerun each time, without cache?
Why are we talking about Bison?




bug#36739: maint: fix issues in syntax-check

2019-08-04 Thread Akim Demaille
Ping?





bug#36739: [PATCH] maint: fix issues in syntax-check

2019-07-20 Thread Akim Demaille
Hi!

I was trying to reproduce some error in gnulib's syntax-check, and faced a few 
issues.

My builddirs are in a separate tree, with symlinks from the src tree to them.  
So running git from builddir will never work.

There are other errors, that I was not addressed.

error_quotes
env.c:337: " error at: %s"), str);
ls.c:2780:  _("error canonicalizing %s"), name);
ls.c:3199:  _("error canonicalizing %s"), full_name);
maint.mk: Use quote() for error string arguments


Cheers!

From dd4e813ab7ee3a8d9d27ca8f5eb874f991fff9b8 Mon Sep 17 00:00:00 2001
From: Akim Demaille 
Date: Sat, 20 Jul 2019 09:04:00 +0200
Subject: [PATCH] maint: fix issues in syntax-check

* cfg.mk (sc_prohibit_colon_redirection): Don't expect `|` to denote
the pipe character in git grep.
(sc_tests_executable)
(sc_case_insensitive_file_names)
(sc_some_programs_must_avoid_exit_failure)
(sc_prohibit_test_background_without_cleanup_)
(sc_prohibit_test_calls_print_ver_with_irrelevant_argument)
(sc_prohibit_test_ulimit_without_require_)
(sc_prohibit_test_background_without_cleanup_)
(sc_THANKS_in_duplicates)
*sc_prohibit_test_calls_print_ver_with_irrelevant_argument):
Don't expect builddir to be a descendant of srcdir.
(sc_strftime_check): Don't check file size against 0 when "N\nq\n" was
already put in the file.
* THANKS.in: Remove me.
---
 THANKS.in |  1 -
 cfg.mk| 39 ++-
 2 files changed, 22 insertions(+), 18 deletions(-)

diff --git a/THANKS.in b/THANKS.in
index 02b8ada1c..23b089754 100644
--- a/THANKS.in
+++ b/THANKS.in
@@ -25,7 +25,6 @@ Adam Klein  akl...@debian.org
 Adam Sampsona...@offog.org
 Adrian Bunk b...@stusta.de
 AIDA Shinra shi...@j10n.org
-Akim Demaille   demai...@inf.enst.fr
 Alain Magloire  al...@qnx.com
 Alan Iwii...@atm.ox.ac.uk
 Alan Jenkinsalan-jenk...@tuffmail.co.uk
diff --git a/cfg.mk b/cfg.mk
index b0b758dd5..b589b40e3 100644
--- a/cfg.mk
+++ b/cfg.mk
@@ -121,6 +121,7 @@ sc_tests_list_consistency:
 # Ensure that all version-controlled test scripts are executable.
 sc_tests_executable:
@set -o noglob 2>/dev/null || set -f;  \
+   cd $(srcdir);  \
find_ext="-name '' "`printf -- "-o -name *%s " $(TEST_EXTENSIONS)`;\
find $(srcdir)/tests/ \( $$find_ext \) \! -perm -u+x -print\
  | { sed "s|^$(srcdir)/||"; git ls-files $(srcdir)/tests/; }  \
@@ -138,8 +139,8 @@ sc_ensure_gl_diffs_apply_cleanly:
 
 # Avoid :>file which doesn't propagate errors
 sc_prohibit_colon_redirection:
-   @cd $(srcdir)/tests && GIT_PAGER= git grep -n ': *>.*||' \
- && { echo '$(ME): '"The leading colon in :> will hide errors" 1>&2; \
+   @cd $(srcdir)/tests && GIT_PAGER= git grep -En ': *>.*\|\|' \
+ && { echo '$(ME): '"The leading colon in :> will hide errors" >&2; \
   exit 1; }  \
  || :
 
@@ -407,7 +408,7 @@ check-programs-vs-x:
 
 # Ensure we can check out on case insensitive file systems
 sc_case_insensitive_file_names: src/uniq
-   @git ls-files | sort -f | src/uniq -Di | grep . && \
+   @git -C $(srcdir) ls-files | sort -f | src/uniq -Di | grep . && \
  { echo "$(ME): the above file(s) conflict on case insensitive" \
  " file systems" 1>&2; exit 1; } || :
 
@@ -445,20 +446,22 @@ sc_prohibit_stat_macro_address:
 # Ensure that date's --help output stays in sync with the info
 # documentation for GNU strftime.  The only exception is %N and %q,
 # which date accepts but GNU strftime does not.
+#
+# "info foo" fails with error, but not "info foo >/dev/null".
 extract_char = sed 's/^[^%][^%]*%\(.\).*/\1/'
 sc_strftime_check:
@if test -f $(srcdir)/src/date.c; then  \
- grep '^  %.  ' $(srcdir)/src/date.c | sort\
-   | $(extract_char) > $@-src; \
- { echo N; echo q; \
-   info libc date calendar format 2>/dev/null  \
- | grep "^ *['\`]%.'$$"| $(extract_char); }| sort >$@-info;\
- if test $$(stat --format %s $@-info) != 2; then   \
+ if info libc date calendar format 2>/dev/null |   \
+   grep "^ *['\`]%.'$$" >$

bug#13280: od 8.19: inappropriate formatting of the man pages

2012-12-27 Thread Akim Demaille

Le 27 déc. 2012 à 12:42, Pádraig Brady  a écrit :

> Yes the grouping of that info wasn't optimum.
> I've adjusted things a bit in the attached patch,
> and the result can be seen in the attached pdf generated with:
>  man -t man/od.1 | ps2pdf - > od.pdf
> Note since people like examples, as part of this I've added
> an EXAMPLES section, that shows how to output a hexdump with od.


Very nice!

I notice that instead of the usual:

 Mandatory arguments to long options are mandatory for short options too.

there is:

 All arguments to long options are mandatory for short options.

which is not right since:

−w[BYTES], −−width[=BYTES]
  output BYTES bytes per output line. 32 is implied when BYTES is not specified




bug#13280: od 8.19: inappropriate formatting of the man pages

2012-12-25 Thread Akim Demaille
(Wow, I had never realized that applying --program-prefix=g on
od results in invoking god).

You might consider this a bug, or not.  Sorry for the noise if
you don't.

"man od" (well, in my case, yet another interesting command to
type, with deep philosophical meaning) includes a section-like
(in bold) title for:

   Traditional format specifications may be intermixed; they accumulate:

but it does not for:

   TYPE is made up of one or more of these specifications:

(also the next paragraph, "RADIX is d for…" seems to belong
to the "TYPE" section, but it does not.  So maybe another section-like
separation would be nice).

in roff-tongue:

…
\fB\-\-version\fR
output version information and exit
.SS "Traditional format specifications may be intermixed; they accumulate:"
.TP
…
.TP
\fB\-x\fR
same as \fB\-t\fR x2, select hexadecimal 2\-byte units
.PP
If first and second call formats both apply, the second format is assumed
if the last operand begins with + or (if there are 2 operands) a digit.
An OFFSET operand means \fB\-j\fR OFFSET.  LABEL is the pseudo\-address
at first byte printed, incremented when dump is progressing.
For OFFSET and LABEL, a 0x or 0X prefix indicates hexadecimal;
suffixes may be . for octal and b for multiply by 512.
.PP
TYPE is made up of one or more of these specifications:
.TP
a
named character, ignoring high\-order bit
.TP
c

Cheers!






Re: copyright years: mass-update every January 1

2009-08-13 Thread Akim Demaille

Hi All!

Le 28 juil. 09 à 02:36, Joel E. Denny a écrit :


diff --git a/src/head.c b/src/head.c
index c96f910..89b6ef9 100644
--- a/src/head.c
+++ b/src/head.c
@@ -1,6 +1,5 @@
/* head -- output first part of file(s)
-   Copyright (C) 89, 90, 91, 1995-2006, 2008-2009 Free Software
-   Foundation, Inc.
+   Copyright (C) 89, 90, 91, 1995-2006, 2008-2009 Free Software  
Foundation, Inc.


While at it, why not standardize everything to 4 digits (I don't think  
we need to address the Y10k issues yet :), and to introduce intervals  
where applicable?  Is there some legal thingy that forbids it?  It  
might help making some lines smaller.


+   Copyright (C) 1989-1991, 1995-2006, 2008-2009 Free Software  
Foundation, Inc.






Re: new module: update-copyright [Re: copyright years: mass-update every January 1

2009-08-12 Thread Akim Demaille


Le 31 juil. 09 à 15:52, Joel E. Denny a écrit :

Hi Joel,


+# Format within margin.
+my $new_wrapped;
+my $text_margin = $margin - length($prefix);
+while (length($new))
+  {
+if (($new =~ s/^(.{1,$text_margin})(?: |$)//)
+|| ($new =~ s/^([\S]+)(?: |$)//))
+  {
+my $line = $1;
+$new_wrapped .= $new_wrapped ? "\n" : $leading;
+$new_wrapped .= "$prefix$line";
+  }
+else
+  {
+# Should be unreachable, but we don't want an  
infinite

+# loop if it can be reached.
+die;
+  }
+  }


You might want to have a look at Text::Wrap.



Re: ``install -C'' / unnecessarily updating time stamps

2006-12-26 Thread Akim Demaille


Le 25 déc. 06 à 11:46, Thomas Schwinge a écrit :

[I added the patch's author, Akim Demaille, to the cc list, as it  
was not

sure if he's still reading the list.]


You're right, I'm not.


Hello!


Hi, and merry Chrismas.



On Sun, Dec 24, 2006 at 04:21:50PM -0800, Paul Eggert wrote:

Benoit Sigoure <[EMAIL PROTECTED]> writes:
http://lists.gnu.org/archive/html/automake-patches/2006-10/ 
msg00070.html


Sorry, I missed that one.  The idea looks reasonable, but that solves
the problem for install-sh only, right?  GNU 'install' still wouldn't
support -C.


This brings up the following question: if `-C' shall be used a) by
default in Autoconf's `AC_PROG_INSTALL' if available or b) if  
requested

by the programmer through setting some flag, and `install-sh' supports
`-C', but the system's `install' executable doesn't (which will, as  
far
as I can tell, be the case on most systems as after this quoted  
patch has

been applied to `install-sh'), which of the two installation programs
shall be chosen: the native `install' for speed or `install-sh' for
feature completeness and to accommodate the programmer's request?


I agree with Paul's answer.  Besides, it is IMHO high time to completely
rewrite AC_PROG_INSTALL to actually check the behavior of "install"
instead of playing dark magic with file names.  It would be nice then
to be able to specify the flags one wants (e.g., -C).





Also, the updated patch proposed in
<http://lists.gnu.org/archive/html/automake-patches/2006-10/ 
msg00077.html>

has some coding-style components along with the substance components.
I plan to split it into two and apply the two pieces.


| +# Maybe we don't need to install the file.  Use diff, not cmp,
| +# to be robust to end-of-line encoding.
| +{ if $copy_on_change &&
| +  $diffprog "$dsttmp" "$dst" >/dev/null 2>&1 &&
| +  new=`ls -l "$dsttmp" | awk '{print $1 ":" $3 ":" $4}'` &&
| +  old=`ls -l "$dst"| awk '{print $1 ":" $3 ":" $4}'` &&
| +  test x"$new" = x"$old"
| +  then
| + # No need to copy, that's the same file.
| + continue
| +  else :; fi; } &&

Is this ``ls -l [...] | awk [...]'' portable enough


Yes.


and is it really
needed?


Either you do that, or chmod afterwards.  But install-sh behaves
quite atomically and either fully does its job, or leaves the
destination untouched.

Besides, if you just happened to have removed some read permissions,
it seems fair that all the files that depend on it no longer
compile.  So the timestamps and Makefiles should not continue
as if nothing happened.

But that's a weak argument, I don't really care.

Another option I was considering was adding -I to be passed to
diff.  For instance to ignore $Id$ keywords etc.  But if no
real "install" support it, who cares.



| http://www.freebsd.org/cgi/man.cgi?query=install
| #v+
| [...]
|  -C  Copy the file.  If the target file already exists  
and the files
|  are the same, then do not change the modification  
time of the
|  target.  If the target's file flags and mode need  
not to be
|  changed, the target's inode change time is also  
unchanged.

| [...]
| #v-


Regards,
 Thomas




___
Bug-coreutils mailing list
Bug-coreutils@gnu.org
http://lists.gnu.org/mailman/listinfo/bug-coreutils


Re: coreutils-4.5.9: Sun Solaris 2.8 configure failure

2003-03-28 Thread Akim Demaille

| "Nelson H. F. Beebe" <[EMAIL PROTECTED]> writes:
| > The build of coreutils-4.5.9 on Sun Solaris 2.8 failed at configure
| > time:
| > 
| > % time env CC=c89 ./configure && time make all check
| > ...
| > checking whether it is possible to resort to fread on /etc/mnttab... no
| > configure: error: could not determine how to read list of mounted filesystems
| 
| I looked into this issue, and the problem is that c89 rejects '#line'
| directives whose line numbers are greater than 32767.  The
| coreutils-4.5.9 'configure' script contains 44223 lines, so it runs
| afoul of the problem.  I think that the C standard allows this kind of
| brain damage, unfortunately.
| 
| The simplest workaround is to remove this #line feature from Autoconf,
| as it's not necessary for correct operation.  So I installed the
| following Autoconf patch for now.  If someone can think of a better
| fix, that'd be great.
| 
| 2003-03-06  Paul Eggert  <[EMAIL PROTECTED]>
| 
|   Work around a problem noted by Nelson H. F. Beebe with coreutils
|   4.5.9: Sun c89 (Sun WorkShop 6 update 2 C 5.3 Patch 111679-08
|   2002/05/09) rejects '#line 32768 "configure"' because the line
|   number overflows.
|   * lib/autoconf/c.m4 (AC_LANG_SOURCE(C)): Do not generate
|   #line directives.
|   * lib/autoconf/lang.m4 (AC_LANG_SOURCE): Fix comment to match this.
|   * doc/autoconf.texi (Generating Sources): Document this.

This is amazing :(  I'm installing this:

Index: ChangeLog
from  Akim Demaille  <[EMAIL PROTECTED]>

* doc/autoconf.texi (C Compiler): `#line' portability.
From Paul Eggert and Nelson H. F. Beebe.

Index: doc/autoconf.texi
===
RCS file: /cvsroot/autoconf/autoconf/doc/autoconf.texi,v
retrieving revision 1.725
diff -u -u -r1.725 autoconf.texi
--- doc/autoconf.texi 23 Mar 2003 10:21:43 - 1.725
+++ doc/autoconf.texi 28 Mar 2003 14:49:08 -
@@ -4985,6 +4985,13 @@
 This can cause problems if you observe the output of the compiler to
 detect failures.  Invoking @samp{cc -c a.c -o a.o; cc -c b.c -o b.o; cc
 a.o b.o -o c} solves the issue.
+
[EMAIL PROTECTED] Don't rely on correct @code{#line} support
+On Solaris 2.8, @command{c89} (Sun WorkShop 6 update 2 C 5.3 Patch
+111679-08 2002/05/09)) rejects @code{#line} directives whose line
+numbers are greater than 32767.  In addition, nothing in @sc{posix}
+makes this invalid.  That is the reason why Autoconf stopped issuing
[EMAIL PROTECTED] directives.
 @end table
 
 @defmac AC_PROG_CC (@ovar{compiler-search-list})


___
Bug-coreutils mailing list
[EMAIL PROTECTED]
http://mail.gnu.org/mailman/listinfo/bug-coreutils