From 9deeb7474b2586eb031e4f00a644aed9ccf8cb19 Mon Sep 17 00:00:00 2001 From: Ross Burton Date: Tue, 19 May 2026 15:15:07 +0100 Subject: [PATCH] groff: build less in groff-native When building groff-native we only really need enough of groff to build manpages, and don't need documentation or extra tools. Patch the Makefile to stop building the doc and contrib directories, which both take time and have incomplete build dependencies that cause intermittent failures[1][2]. This makes groff-native faster to build: groff-native do_compile -30.6s -33.7% 90.9s -> 60.3s And some tools are removed, which I don't believe are needed by anything we build: /usr/bin/chem was removed /usr/bin/eqn2graph was removed /usr/bin/gdiffmk was removed /usr/bin/gperl was removed /usr/bin/gpinyin was removed /usr/bin/mmroff was removed /usr/bin/pic2graph was removed /usr/share/groff/1.24.1/tmac/chem.pic was removed /usr/share/groff/1.24.1/tmac/hdmisc.tmac was removed /usr/share/groff/1.24.1/tmac/hdtbl.tmac was removed /usr/share/groff/1.24.1/tmac/mm was removed /usr/share/groff/1.24.1/tmac/mm/0.MT was removed /usr/share/groff/1.24.1/tmac/mm/4.MT was removed /usr/share/groff/1.24.1/tmac/mm/5.MT was removed /usr/share/groff/1.24.1/tmac/mm/ms.cov was removed /usr/share/groff/1.24.1/tmac/mm/se_ms.cov was removed /usr/share/groff/1.24.1/tmac/mmse.tmac was removed /usr/share/groff/1.24.1/tmac/mm.tmac was removed /usr/share/groff/1.24.1/tmac/mom.tmac was removed /usr/share/groff/1.24.1/tmac/mse.tmac was removed /usr/share/groff/1.24.1/tmac/m.tmac was removed /usr/share/groff/1.24.1/tmac/om.tmac was removed /usr/share/groff/1.24.1/tmac/refer-mm.tmac was removed /usr/share/groff/1.24.1/tmac/rfc1345.tmac was removed /usr/share/groff/1.24.1/tmac/sboxes.tmac was removed [1] oe-core d1a02bdd242 ("groff: Fix occasional build race failure") [2] https://bugzilla.yoctoproject.org/show_bug.cgi?id=16279 Signed-off-by: Ross Burton Signed-off-by: Antonin Godard Signed-off-by: Richard Purdie --- .../groff/files/build-less.patch | 24 +++++++++++++++++++ meta/recipes-extended/groff/groff_1.24.1.bb | 8 +++++-- 2 files changed, 30 insertions(+), 2 deletions(-) create mode 100644 meta/recipes-extended/groff/files/build-less.patch diff --git a/meta/recipes-extended/groff/files/build-less.patch b/meta/recipes-extended/groff/files/build-less.patch new file mode 100644 index 0000000000..dc560fbb30 --- /dev/null +++ b/meta/recipes-extended/groff/files/build-less.patch @@ -0,0 +1,24 @@ +Build less bits of groff to save time and reduce random build +failures from missing dependencies in this logic. + +Upstream-Status: Inappropriate +Signed-off-by: Ross Burton + +--- a/Makefile.am~ 2026-05-15 13:23:08.000000000 +0100 ++++ b/Makefile.am 2026-05-15 13:29:17.053867035 +0100 +@@ -556,15 +556,0 @@ +-include $(top_srcdir)/contrib/chem/chem.am +-include $(top_srcdir)/contrib/eqn2graph/eqn2graph.am +-include $(top_srcdir)/contrib/gdiffmk/gdiffmk.am +-include $(top_srcdir)/contrib/glilypond/glilypond.am +-include $(top_srcdir)/contrib/gperl/gperl.am +-include $(top_srcdir)/contrib/gpinyin/gpinyin.am +-include $(top_srcdir)/contrib/grap2graph/grap2graph.am +-include $(top_srcdir)/contrib/hdtbl/hdtbl.am +-include $(top_srcdir)/contrib/install-font/install-font.am +-include $(top_srcdir)/contrib/mm/mm.am +-include $(top_srcdir)/contrib/mom/mom.am +-include $(top_srcdir)/contrib/pic2graph/pic2graph.am +-include $(top_srcdir)/contrib/rfc1345/rfc1345.am +-include $(top_srcdir)/contrib/sboxes/sboxes.am +-include $(top_srcdir)/doc/doc.am diff --git a/meta/recipes-extended/groff/groff_1.24.1.bb b/meta/recipes-extended/groff/groff_1.24.1.bb index 24b8146a72..dd5ebee3df 100644 --- a/meta/recipes-extended/groff/groff_1.24.1.bb +++ b/meta/recipes-extended/groff/groff_1.24.1.bb @@ -15,6 +15,8 @@ SRC_URI = "${GNU_MIRROR}/groff/groff-${PV}.tar.gz \ file://builddep.patch \ " +SRC_URI:append:class-native = "file://build-less.patch" + SRC_URI[sha256sum] = "74e2819795b6aff431aeac983d63a9c8968eeaba2a2eba7df8ba4c7b41e7cfd8" DEPENDS = "bison-native groff-native" @@ -65,8 +67,10 @@ do_install:append() { rm -rf ${D}${bindir}/grap2graph rm -rf ${D}${mandir}/man1/grap2graph* - # strip hosttool path out of generated files - sed -i -e 's:${HOSTTOOLS_DIR}/::g' ${D}${docdir}/${BP}/examples/hdtbl/*.roff + # strip hosttool path out of generated files + if [ -d ${D}${docdir}/${BP}/examples/hdtbl/ ]; then + sed -i -e 's:${HOSTTOOLS_DIR}/::g' ${D}${docdir}/${BP}/examples/hdtbl/*.roff + fi } do_install:append:class-native() { -- 2.47.3