[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:
<https://www.gnu.org/software/help2man/>
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
doc/bison.help
-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"
fails?
Bruno
- Bison 3.5.92 on Haiku,
Bruno Haible <=