From: Matthias Kilian Subject: print/lilypond: add builddoc pseudo flavor To: ports@openbsd.org Date: Wed, 7 Jan 2026 22:56:03 +0100 Hi, this adds a pseudo flavor 'builddoc' to lilypond, not meant to be used by mere mortals, but to make it easier to build the documentation, run tests and check for regressions when adding or updating build dependencies. For example, I'd like to experiment with extractpdfmark (not yet in the ports tree), which is recommended to get smaller PDF output in case many little PDF snippets are included. The normal (unflavored) build still works without flaws. Any objections? Ciao, Kili Index: Makefile =================================================================== RCS file: /cvs/ports/print/lilypond/Makefile,v diff -u -p -r1.67 Makefile --- Makefile 19 Aug 2025 11:42:46 -0000 1.67 +++ Makefile 7 Jan 2026 21:32:26 -0000 @@ -9,10 +9,20 @@ PKGNAME-main= lilypond-${VERSION} PKGNAME-docs= lilypond-docs-${VERSION} CATEGORIES= print +# For testing purposes only. Expect changes to PLIST-doc, because the +# downloaded documentation has been built with a much older version of +# texi2html. +# Don't try to build with MAKE_JOBS set to something > 1. +PSEUDO_FLAVORS= builddoc +FLAVOR?= + URW_V= 20200910 DISTFILES= ${DISTNAME}.tar.bz2 +.if !${FLAVOR:Mbuilddoc} DISTFILES.doc= ${DISTNAME-docs}.tar.xz -DISTFILES.urw = urw-base35-fonts-${URW_V}.tar.gz +.endif +DISTFILES.urw= urw-base35-fonts-${URW_V}.tar.gz +SUPDISTFILES.doc= ${DISTNAME-docs}.tar.xz EXTRACT_ONLY= ${DISTFILES} ${DISTFILES.urw} MULTI_PACKAGES= -main -docs @@ -43,9 +53,11 @@ CONFIGURE_ENV= AUTOCONF_VERSION=${AUTOC GUILE_FLAVOR=guile-2.2 \ LDFLAGS=-L${LOCALBASE}/lib CONFIGURE_ARGS+= --disable-debugging \ - --disable-documentation \ --disable-optimising \ --disable-pipe +.if !${FLAVOR:Mbuilddoc} +CONFIGURE_ARGS+= --disable-documentation +.endif USE_GMAKE= Yes MAKE_FILE= GNUmakefile @@ -76,39 +88,69 @@ BUILD_DEPENDS= print/fontforge \ devel/gettext,-tools \ devel/autoconf/${AUTOCONF_VERSION} \ ${RUN_DEPENDS} +.if ${FLAVOR:Mbuilddoc} +# rsync is used by a script for just copying things around locally. +# coreutils is used for 'cp --link ...' (see GNUmakefile.in, 154) +# (both to be fixed upstream, who is known to ignore standards since +# decades). +BUILD_DEPENDS+= graphics/ImageMagick \ + net/rsync \ + print/texinfo \ + sysutils/coreutils \ + textproc/texi2html +.endif SUBST_VARS+= VERSION ALL_TARGET= all bytecode INSTALL_TARGET+= install install-bytecode - -# Extract the documentation distfiles. +.if ${FLAVOR:Mbuilddoc} +ALL_TARGET+= doc +INSTALL_TARGET+= install-doc +.endif + +# Extract the documentation distfiles or, when building with the +# builddoc flavor, ensure some tools from coreutils, findutils and +# texinfo packages are used. # Remove files generated by bison to avoid some recompilations # during fake stage. post-extract: +.if ${FLAVOR:Mbuilddoc} +. for p in cp find makeinfo pdftexi2dvi texi2dvi texi2pdf texindex + @ln -s ${LOCALBASE}/bin/g$p ${WRKDIR}/bin/$p +. endfor +.else @xz -cd ${FULLDISTDIR}/${DISTNAME-docs}.tar.xz | \ pax -rs '!^\.!${WRKDIR}/docs!' +.endif @rm -rf ${WRKSRC}/lily/out LILYFONTDIR= ${PREFIX}/share/lilypond/${VERSION}/fonts/otf TEXGYREDIR= ${LOCALBASE}/share/texmf-dist/fonts/opentype/public/tex-gyre URWDIR= ${WRKDIR}/urw-base35-fonts-${URW_V}/fonts + post-install: +.if ${FLAVOR:Mbuilddoc} + cd ${PREFIX}/share/doc/lilypond && \ + mv html ${VERSION} + rm -rf ${PREFIX}/info +.else ${INSTALL_DATA_DIR} ${PREFIX}/share/doc/lilypond/${VERSION} umask 022 && cp -R ${WRKDIR}/docs/share/doc/lilypond/html/* \ ${PREFIX}/share/doc/lilypond/${VERSION} for f in ${WRKDIR}/docs/share/man/man1/*; do \ ${INSTALL_MAN} $$f ${PREFIX}/man/man1; \ - done; \ + done +.endif for f in cursor heros schola; do \ for s in regular bold bolditalic italic; do \ ${INSTALL_DATA} ${TEXGYREDIR}/texgyre$$f-$$s.otf \ ${LILYFONTDIR}; \ done; \ - done; \ + done for s in Roman BdIta Bold Italic; do \ ${INSTALL_DATA} ${URWDIR}/C059-$$s.otf ${LILYFONTDIR}; \ - done; \ + done for f in NimbusMonoPS NimbusSans; do \ for s in Regular Bold BoldItalic Italic; do \ ${INSTALL_DATA} ${URWDIR}/$$f-$$s.otf \ @@ -116,8 +158,9 @@ post-install: done; \ done - -# Regression tests disabled, because we don't build the documentation. +# Regression tests disabled for normal builds. +.if !${FLAVOR:Mbuilddoc} NO_TEST= Yes +.endif .include Index: patches/patch-scripts_build_build-doc-tree_sh =================================================================== RCS file: patches/patch-scripts_build_build-doc-tree_sh diff -N patches/patch-scripts_build_build-doc-tree_sh --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-scripts_build_build-doc-tree_sh 7 Jan 2026 21:32:26 -0000 @@ -0,0 +1,9 @@ +Index: scripts/build/build-doc-tree.sh +--- scripts/build/build-doc-tree.sh.orig ++++ scripts/build/build-doc-tree.sh +@@ -1,4 +1,4 @@ +-#!/bin/bash ++#!/bin/sh + + DEST="$1" + shift