[Top][All Lists]

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Bison 3.5.92 on Haiku

From: Bruno Haible
Subject: Bison 3.5.92 on Haiku
Date: Mon, 04 May 2020 00:39:25 +0200
User-agent: KMail/5.1.3 (Linux/4.4.0-177-generic; KDE/5.18.0; x86_64; ; )

On Haiku, there is a build failure:

make[2]: Entering directory '/boot/home/bison-3.5.92/build'
  GEN      ../doc/bison.help
  CC       lib/main.o
  CC       lib/yyerror.o
  AR       lib/liby.a
  GEN      ../doc/bison.1
/boot/home/bison-3.5.92/build-aux/missing: line 81: help2man: command not found
WARNING: 'help2man' is missing on your system.
         You should only need it if you modified a dependency of a man page.
         You may want to install the GNU Help2man package:
Makefile:9906: recipe for target '../doc/bison.1' failed
make[2]: *** [../doc/bison.1] Error 127

There is an up-to-date doc/bison.1 file in the tarball, and I have not modified
the source files after unpacking the tarball. Therefore
  1) There is no need to invoke help2man.
  2) If 'missing help2man ...' gets invoked, it should not fail.

Let's see in detail:

1) The 'tar' program on Haiku has assigned sub-second timestamps to the files
that were not present in the tarball. See:

On Linux:
$ ls -lrt --full-time doc/bison.help doc/bison.x configure doc/bison.1 
-rw-r--r-- 1 bruno bruno    1383 2019-04-25 22:38:23.000000000 +0200 doc/bison.x
-rwxr-xr-x 1 bruno bruno 1323386 2020-05-03 12:49:02.000000000 +0200 configure
-rw-r--r-- 1 bruno bruno    4454 2020-05-03 12:49:47.000000000 +0200 
-rw-r--r-- 1 bruno bruno    6319 2020-05-03 12:49:47.000000000 +0200 doc/bison.1

On Haiku:
$ ls -lrt --full-time doc/bison.1 doc/bison.x doc/bison.help configure
-rw-r--r-- 1 505 20    1383 2019-04-25 20:38:23.056098816 +0000 doc/bison.x
-rwxr-xr-x 1 505 20 1323386 2020-05-03 10:49:02.023330816 +0000 configure
-rw-r--r-- 1 505 20    6319 2020-05-03 10:49:47.057671680 +0000 doc/bison.1
-rw-r--r-- 1 505 20    4454 2020-05-03 10:49:47.057933824 +0000 doc/bison.help

This explains why 'make' thinks it needs to rebuild doc/bison.1.

2) Fixing 1) is not enough. As explained in
<https://lists.gnu.org/archive/html/bug-gnulib/2020-05/msg00011.html>, it is
frequent that users, when building a tarball, don't control the modification
times of the files.

So, the rule that builds a man page should be resilient to this situation.
In other words, when the help2man program is not available and a (possibly
old) man page is present, it should NOT err out.

Hmm... I see that neither gettext nor gperf, for which I wrote the manpage
Makefile rules, work like this.

What do you think? Is it more important to be resilient, or more important
that if help2man fails for reasons that are in the package itself, "make"


reply via email to

[Prev in Thread] Current Thread [Next in Thread]