Hi Branden, Do you intend to fix this? Should I report a bug in Savannah?
Cheers, Alex On Mon, Nov 25, 2024 at 12:36:49AM +0100, Alejandro Colomar wrote: > On Sun, Nov 24, 2024 at 11:43:57PM +0100, onf wrote: > > On Sun Nov 24, 2024 at 10:52 PM CET, Alejandro Colomar wrote: > > > I'm having a build error when trying to build groff HEAD in Devuan > > > stable. ./bootstrap and ./configure succeed, and them make(1) fails. > > > Below is the failure. Let me know if you need more details. > > > > > > [...] > > > GEN doc/groff.dvi > > > [...] > > > /usr/bin/texi2dvi: etex exited with bad status, quitting. > > > make: *** [Makefile:15737: doc/groff.dvi] Error 1 > > > > As the output shows, this is a problem with building the Texinfo manual > > rather than with building groff itself. Unfortunately the current build > > process makes the manual inseparable from the program itself, so that > > if you can't build the manual, the entire build fails... which doesn't > > make a lot of sense since it's written in Texinfo, not troff, so its > > build failing means nothing in terms of groff's functionality. > > > > I recently suggested a patch which skips building the manual if makeinfo > > isn't present or is outdated.[1] You can easily modify it to disable > > building the manual even if it's present. Simply do this to the patch: > > s/(groff_have_makeinfo=)yes/\1no/ > > > > and apply it. Re-running make should suffice according to the docs; if > > it doesn't, run the whole bootstrap > configure > make process again. > > Thanks! +1 to your proposal. > > Acked-by: Alejandro Colomar <a...@kernel.org> > > Branden, you may want to have a look at the Linux man-pages build > system. I'm not proposing that you replace autotools with some > hand-written Makefiles, but the way the dependencies are laid out are > interesting. You can run `make` (a.k.a., `make build`) which runs all > default targets. In the man-pages project it only stamps the page date > and project version into each page. In other projects of mine (liba2i), > it builds the library shared object (.so). > > But then I allow building less than that with specialized `make build-*` > targets: > > $ make help > To see a list of targets, run: > $ make nothing -p \ > | grep '^\.PHONY:' \ > | tr ' ' '\n' \ > | grep -v '^\.PHONY:' \ > | sort; > > To see a list of variables, run: > $ find GNUmakefile share/mk/configure -type f \ > | sort \ > | xargs grep '^[^[:space:]].*=' \ > | sed 's/=.*/=/' \ > | grep -v -e ':DEFAULT_.*=' -e ':MAKEFILE_.*INCLUDED :='; > > To see a list of dependencies (package/program), run: > $ find share/mk/configure/build-depends -type f \ > | sed 's,share/mk/configure/build-depends/,,' \ > | sed 's,\.mk,,' \ > | sort; > > > $ make nothing -p \ > | grep '^\.PHONY:' \ > | tr ' ' '\n' \ > | grep -v '^\.PHONY:' \ > | sort \ > | grep ^build; > build > build-all > build-catman > build-catman-eqn > build-catman-grotty > build-catman-troff > build-catman-troff-man > build-catman-troff-mdoc > build-ex > build-ex-cc > build-ex-dir > build-ex-ld > build-ex-src > build-fonts > build-fonts-download > build-fonts-tinos > build-html > build-html-post-grohtml > build-html-troff > build-html-troff-man > build-html-troff-mdoc > build-man > build-man-man > build-man-mdoc > build-man-so > build-pdf > build-pdf-book > build-pdf-pages > build-pdf-pages-eqn > build-pdf-pages-gropdf > build-pdf-pages-troff > build-pdf-pages-troff-man > build-pdf-pages-troff-mdoc > build-pre > build-pre-preconv > build-pre-tbl > build-ps > build-ps-eqn > build-ps-grops > build-ps-troff > build-ps-troff-man > build-ps-troff-mdoc > > And have similar install-* targets: > > $ make nothing -p \ > | grep '^\.PHONY:' \ > | tr ' ' '\n' \ > | grep -v '^\.PHONY:' \ > | sort \ > | grep ^install; > install > install-all > install-bin > install-html > install-man > install-man1 > install-man2 > install-man2const > install-man2type > install-man3 > install-man3const > install-man3head > install-man3type > install-man4 > install-man5 > install-man6 > install-man7 > install-man8 > install-manintro > install-pdf > install-pdf-book > > This allows you to build parts of the project without needing to build > the entire project, for whatever reasons one may have. > > In groff, I would propose at least separating into build-bin and > build-doc, and then do similarly for the install targets. Also, please > provide a `make help` that documents whatever organization you come up > with (or in some README, or wherever you find appropriate). > > Does that sound good to you? > > > Have a lovely day! > Alex > > > ~ onf > > > > [1] https://lists.gnu.org/archive/html/groff/2024-11/msg00165.html > > -- > <https://www.alejandro-colomar.es/> -- <https://www.alejandro-colomar.es/>
signature.asc
Description: PGP signature