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 > {savane: user = 296833; tracker = bugs; item = 66583} -- <https://www.alejandro-colomar.es/>
signature.asc
Description: PGP signature