Follow-up Comment #48, bug #66583 (group groff): Hi Branden,
On Tue, Dec 31, 2024 at 11:01:31AM -0500, G. Branden Robinson wrote: > Follow-up Comment #47, bug #66583 (group groff): > > At 2024-12-31T10:27:22-0500, Alejandro Colomar wrote: >> Most likely. I sometimes install stuff with --no-install-recommends, >> which might have been the responsible for this. It's good that it >> unveiled a bug in groff's build system > > This conclusion still seems hasty. Maybe you've found a bug in > Automake. And Automake is part of groff's build system. I'm not saying you or any groff maintainer did anything wrong, at all. I'm saying that autotools people designed a build system full of brain damage, which has some interesting bugs, and also makes it easy to misuse (or hard to use correctly, or both). >> But `make -k` should continue after a TeX failure, > > ...and it does, for a while at least. Precisely until it runs `make all-recursive`. >> and successfully build the binaries. (Admittedly, I forgot to show >> that in my previous post.) >> >> Below goes actual proof. This runs after the session I showed before. > [...] >> alx@devuan:~/tmp/groff/groff$ make -k >> GEN doc/groff.dvi >> This is pdfTeX, Version 3.141592653-2.6-1.40.24 (TeX Live 2022/Debian) > [...] >> /usr/bin/texi2dvi: etex exited with bad status, quitting. >> make: *** [Makefile:16786: doc/groff.dvi] Error 1 >> GEN doc/groff.pdf >> This is pdfTeX, Version 3.141592653-2.6-1.40.24 (TeX Live 2022/Debian) >> /usr/bin/texi2dvi: pdfetex exited with bad status, quitting. > [...] >> make: *** [Makefile:16801: doc/groff.pdf] Error 1 >> GEN font/devpdf/DESC >> GEN font/devpdf/Foundry [...] >> GEN charset.alias >> GEN ref-add.sed >> GEN ref-del.sed >> make: Target 'all' not remade because of errors. The line above is the important one. 'all' is not remade because of errors in its dependencies. $ grepc -n -xmk -tr all Makefile Makefile:6773:all: $(BUILT_SOURCES) $(MAKE) $(AM_MAKEFLAGS) all-recursive Makefile:16742:all: $(GROFF_INFO) $(GROFF_TXT) $(GROFF_HTML) $(GROFF_DVI) $(GROFF_PDF) Makefile:17140:all: font/devpdf/stamp Makefile:17406:all: charset.alias ref-add.sed ref-del.sed Makefile:17884:all: tmac/stamp-wrap Makefile:17964:all: generate_man_files The target 'all' consists of `make all-recursive`, which is where the actual stuff is really built, I suspect. Hmm, that's easy to check. I've now run `make all-recursive` and the good stuff started building, so yes, this is a recursive build, and yes, that was the cause why `make -k` didn't build it, and yes, this is likely a bug somewhere in autotools or in the groff use of autotools (which would itself be a problem of autotools being so hard to use correctly). > The very fact that the build proceeded after groff.dvi to attempt > groff.pdf, and after _that_ failed to generate afmtodit--successfully-- > >> GEN afmtodit > > ...tells me that "make -k" is doing what it is supposed to do. Indeed. > At least up to a point. The point is that groff.dvi and groff.pdf seem to be prerequisites of 'all', while the binaries seem to be part of the 'all-recursive' target, which cannot be built at all. `make -k` continues building other targets whose dependencies can be built. It doesn't build targets whose dependencies cannot be built (for that I would need `make -i`, which yes, is a workaround for groff's broken build system). > > Why it's not attempting to make libgroff.a, pic, eqn, tbl, troff, and so > forth, I don't know. See my comments above. All of those are build within `make all-recursive`, and that cannot start if any of the prerequisites of 'all' fail to build. > What happens if you "make -k" any of these > targets? You don't even need -k. If I run `make pic`, it successfully builds the pic binary. And if I run `make all-recursive`, the entire recursive build starts. So the dependencies are incorrectly set. >> alx@devuan:~/tmp/groff/groff$ find * -perm -0001 -not -type d | grep -v / >> INSTALL >> afmtodit >> bootstrap >> config.status >> configure >> mdate.pl >> test-groff >> update-copyright.sh > > Okay, that agrees with the build log above. There's "afmtodit". Cheers, Alex _______________________________________________________ Reply to this item at: <https://savannah.gnu.org/bugs/?66583> _______________________________________________ Message sent via Savannah https://savannah.gnu.org/
signature.asc
Description: PGP signature