Hi Branden, On Sun, Dec 01, 2024 at 03:03:15PM GMT, Alejandro Colomar wrote: > Hi Branden, > > Do you intend to fix this? Should I report a bug in Savannah?
I see on the archives that you replied, but I didn't get a copy. You probably dropped me from CC. :-( Would you mind bouncing me a copy of that? This too, please: <https://lists.gnu.org/archive/html/groff/2024-12/msg00003.html> Cheers, Alex > > 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/> -- <https://www.alejandro-colomar.es/>
signature.asc
Description: PGP signature