"Anthony J. Bentley" <bent...@openbsd.org> writes: > Currently, the font module defines a default install target based on > file extension. A port sets MODFONT_TYPES to "ttf otf", and the module > installs ${WRKSRC}/*.ttf and ${WRKSRC}/*.otf to MODFONT_DIR. > > This misses two fairly common cases: > > - the port needs to install font files from multiple subdirectories > - the port wants to install only a subset of font files present > > The diff below replaces MODFONT_TYPES with a mechanism similar to > MODFONT_DOCFILES: the port sets MODFONT_FONTFILES to a list of paths > (which may contain wildcards) relative to WRKSRC to install to the font > directory. This means 12 of the 14 custom install targets in ports using > the font module can be eliminated. (The other two were not trivial > conversions.) And many of the 50+ other font ports that don't use the > font module yet can now start using it, although I haven't converted any > in this diff. > > The diff also renames MODFONT_DIR (which is only used in two ports) to > MODFONT_FONTDIR for consistency with MODFONT_DOCDIR. I plan to introduce > more MODFONT_*DIR types in the future. > > All of fonts/ still fetches and packages, no bumps necessary. > > ok?
Looks like a nicer abstraction than before. OK gnezdo@ > > Index: infrastructure/mk/font.port.mk > =================================================================== > RCS file: /cvs/ports/infrastructure/mk/font.port.mk,v > retrieving revision 1.8 > diff -u -p -r1.8 font.port.mk > --- infrastructure/mk/font.port.mk 9 Jul 2024 13:03:39 -0000 1.8 > +++ infrastructure/mk/font.port.mk 11 Jul 2024 09:19:15 -0000 > @@ -11,20 +11,20 @@ EXTRACT_SUFX ?= .zip > PKGNAME ?= ${MODFONT_FAMILY}-${MODFONT_VERSION} > . endif > > -MODFONT_DIR ?= ${PREFIX}/share/fonts/${MODFONT_FAMILY} > +MODFONT_FONTDIR ?= ${PREFIX}/share/fonts/${MODFONT_FAMILY} > MODFONT_DOCDIR ?= ${PREFIX}/share/doc/${MODFONT_FAMILY} > > -MODFONT_TYPES ?= > +MODFONT_FONTFILES ?= > MODFONT_DOCFILES ?= > > -MODFONT_do-install = ${INSTALL_DATA_DIR} ${MODFONT_DIR}; > +MODFONT_do-install = ${INSTALL_DATA_DIR} ${MODFONT_FONTDIR}; > > -# if MODFONT_TYPES is not set, install .otf files if present (and break, > +# if MODFONT_FONTFILES is not set, install .otf files if present (and break, > # to skip ttf) otherwise fallback to ttf. > -.if empty(MODFONT_TYPES) > -MODFONT_do-install += for t in otf ttf; do ${INSTALL_DATA} ${WRKSRC}/*.$$t > ${MODFONT_DIR} && break; done > +.if empty(MODFONT_FONTFILES) > +MODFONT_do-install += for t in otf ttf; do ${INSTALL_DATA} ${WRKSRC}/*.$$t > ${MODFONT_FONTDIR} && break; done > .else > -MODFONT_do-install += for t in ${MODFONT_TYPES}; do ${INSTALL_DATA} > ${WRKSRC}/*.$$t ${MODFONT_DIR}; done > +MODFONT_do-install += for t in ${MODFONT_FONTFILES}; do ${INSTALL_DATA} > ${WRKSRC}/$$t ${MODFONT_FONTDIR}; done > .endif > > .if !empty(MODFONT_DOCFILES) > Index: fonts/alkalami/Makefile > =================================================================== > RCS file: /cvs/ports/fonts/alkalami/Makefile,v > retrieving revision 1.11 > diff -u -p -r1.11 Makefile > --- fonts/alkalami/Makefile 9 Jul 2024 13:03:39 -0000 1.11 > +++ fonts/alkalami/Makefile 11 Jul 2024 09:19:15 -0000 > @@ -19,7 +19,7 @@ MODULES = font > NO_BUILD = Yes > NO_TEST = Yes > > -MODFONT_TYPES = ttf > +MODFONT_FONTFILES = *.ttf > MODFONT_DOCFILES = FONTLOG.txt README.txt > > .include <bsd.port.mk> > Index: fonts/atkinson-hyperlegible/Makefile > =================================================================== > RCS file: /cvs/ports/fonts/atkinson-hyperlegible/Makefile,v > retrieving revision 1.6 > diff -u -p -r1.6 Makefile > --- fonts/atkinson-hyperlegible/Makefile 9 Jul 2024 13:03:40 -0000 > 1.6 > +++ fonts/atkinson-hyperlegible/Makefile 11 Jul 2024 09:19:15 -0000 > @@ -13,7 +13,7 @@ HOMEPAGE = https://brailleinstitute.org/ > PERMIT_PACKAGE = Yes > > MODULES = font > -MODFONT_TYPES = otf > +MODFONT_FONTFILES = *.otf > > SITES = > https://brailleinstitute.org/wp-content/uploads/atkinson-hyperlegible-font/ > SITES.doc = https://brailleinstitute.org/wp-content/uploads/2020/11/ > Index: fonts/blockzone/Makefile > =================================================================== > RCS file: /cvs/ports/fonts/blockzone/Makefile,v > retrieving revision 1.18 > diff -u -p -r1.18 Makefile > --- fonts/blockzone/Makefile 18 Apr 2024 09:20:38 -0000 1.18 > +++ fonts/blockzone/Makefile 11 Jul 2024 09:19:15 -0000 > @@ -20,10 +20,6 @@ MODULES = font > NO_BUILD = Yes > NO_TEST = Yes > > -DOCDIR = ${PREFIX}/share/doc/blockzone > - > -post-install: > - ${INSTALL_DATA_DIR} ${DOCDIR} > - ${INSTALL_DATA} ${WRKSRC}/LICENSE ${DOCDIR} > +MODFONT_DOCFILES = LICENSE > > .include <bsd.port.mk> > Index: fonts/cascadia-code/Makefile > =================================================================== > RCS file: /cvs/ports/fonts/cascadia-code/Makefile,v > retrieving revision 1.12 > diff -u -p -r1.12 Makefile > --- fonts/cascadia-code/Makefile 21 Sep 2023 15:28:02 -0000 1.12 > +++ fonts/cascadia-code/Makefile 11 Jul 2024 09:19:15 -0000 > @@ -5,6 +5,8 @@ PKGNAME = cascadia-code-${V} > EXTRACT_SUFX = .zip > CATEGORIES = fonts x11 > > +MODFONT_FAMILY = cascadia-code > + > # SIL OFL 1.1 > PERMIT_PACKAGE = Yes > > @@ -16,9 +18,7 @@ MODULES = font > NO_BUILD = Yes > NO_TEST = Yes > > -do-install: > - ${INSTALL_DATA_DIR} ${PREFIX}/share/fonts/cascadia > - ${INSTALL_DATA} ${WRKDIR}/ttf/*.ttf ${PREFIX}/share/fonts/cascadia > - ${INSTALL_DATA} ${WRKDIR}/otf/static/*.otf > ${PREFIX}/share/fonts/cascadia > +MODFONT_FONTDIR = ${PREFIX}/share/fonts/cascadia > +MODFONT_FONTFILES = ttf/*.ttf otf/static/*.otf > > .include <bsd.port.mk> > Index: fonts/ecoliercourt-fonts/Makefile > =================================================================== > RCS file: /cvs/ports/fonts/ecoliercourt-fonts/Makefile,v > retrieving revision 1.11 > diff -u -p -r1.11 Makefile > --- fonts/ecoliercourt-fonts/Makefile 15 Apr 2024 16:08:16 -0000 1.11 > +++ fonts/ecoliercourt-fonts/Makefile 11 Jul 2024 09:19:15 -0000 > @@ -21,7 +21,7 @@ EXTRACT_ONLY= > NO_BUILD= Yes > NO_TEST= Yes > > -pre-install: > - cp ${FULLDISTDIR}/*.ttf ${WRKSRC} > +WRKDIST = ${FULLDISTDIR} > +MODFONT_FONTFILES = *.ttf > > .include <bsd.port.mk> > Index: fonts/font-awesome/Makefile > =================================================================== > RCS file: /cvs/ports/fonts/font-awesome/Makefile,v > retrieving revision 1.41 > diff -u -p -r1.41 Makefile > --- fonts/font-awesome/Makefile 30 Jun 2024 08:13:54 -0000 1.41 > +++ fonts/font-awesome/Makefile 11 Jul 2024 09:19:15 -0000 > @@ -4,6 +4,8 @@ V = 6.5.2 > PKGNAME = font-awesome-${V} > DISTNAME = fontawesome-free-${V}-desktop > > +MODFONT_FAMILY = font-awesome > + > CATEGORIES= fonts > > HOMEPAGE = https://fontawesome.com > @@ -17,18 +19,11 @@ EXTRACT_SUFX = .zip > PERMIT_PACKAGE= Yes > > MODULES = font > -MODFONT_TYPES = otf > > NO_BUILD = Yes > NO_TEST = Yes > > -FONTS_DIR= ${PREFIX}/share/fonts/font-awesome > -DOCDIR = ${PREFIX}/share/doc/font-awesome > - > -do-install: > - ${INSTALL_DATA_DIR} ${FONTS_DIR} > - ${INSTALL_DATA} ${WRKSRC}/otfs/*.otf ${FONTS_DIR} > - ${INSTALL_DATA_DIR} ${DOCDIR} > - ${INSTALL_DATA} ${WRKDIST}/*.txt ${DOCDIR} > +MODFONT_FONTFILES = otfs/*.otf > +MODFONT_DOCFILES = *.txt > > .include <bsd.port.mk> > Index: fonts/hermit-font/Makefile > =================================================================== > RCS file: /cvs/ports/fonts/hermit-font/Makefile,v > retrieving revision 1.15 > diff -u -p -r1.15 Makefile > --- fonts/hermit-font/Makefile 15 Apr 2024 16:08:17 -0000 1.15 > +++ fonts/hermit-font/Makefile 11 Jul 2024 09:19:15 -0000 > @@ -19,7 +19,7 @@ MODULES= font > NO_BUILD= Yes > NO_TEST= Yes > > -MODFONT_TYPES= otf > +MODFONT_FONTFILES= *.otf > WRKDIST= ${WRKDIR} > > .include <bsd.port.mk> > Index: fonts/ibm-plex/Makefile > =================================================================== > RCS file: /cvs/ports/fonts/ibm-plex/Makefile,v > retrieving revision 1.21 > diff -u -p -r1.21 Makefile > --- fonts/ibm-plex/Makefile 9 Jul 2024 13:03:40 -0000 1.21 > +++ fonts/ibm-plex/Makefile 11 Jul 2024 09:19:15 -0000 > @@ -23,17 +23,13 @@ MODULES = font > NO_BUILD = Yes > NO_TEST = Yes > > +# currently JP fonts only have hinted/unhinted directory, > +# this package use hinted font following Noto fonts. > +MODFONT_FONTFILES = OpenType/*/*.otf \ > + TrueType/*/*.ttf \ > + OpenType/IBM-Plex-Sans-JP/hinted/*.otf \ > + TrueType/IBM-Plex-Sans-JP/hinted/*.ttf > +MODFONT_DOCFILES = OpenType/IBM-Plex-Sans/license.txt > FONTDIR = ${PREFIX}/share/fonts/ibm-plex > - > -do-install: > - ${INSTALL_DATA_DIR} ${FONTDIR} > - ${INSTALL_DATA} ${WRKDIST}/OpenType/*/*.otf ${FONTDIR} > - ${INSTALL_DATA} ${WRKDIST}/TrueType/*/*.ttf ${FONTDIR} > - # currently JP fonts only have hinted/unhinted directory, > - # this package use hinted font following Noto fonts. > - ${INSTALL_DATA} ${WRKDIST}/OpenType/IBM-Plex-Sans-JP/hinted/*.otf > ${FONTDIR} > - ${INSTALL_DATA} ${WRKDIST}/TrueType/IBM-Plex-Sans-JP/hinted/*.ttf > ${FONTDIR} > - ${INSTALL_DATA_DIR} ${MODFONT_DOCDIR} > - ${INSTALL_DATA} ${WRKDIST}/OpenType/IBM-Plex-Sans/license.txt > ${MODFONT_DOCDIR} > > .include <bsd.port.mk> > Index: fonts/inconsolata-font/Makefile > =================================================================== > RCS file: /cvs/ports/fonts/inconsolata-font/Makefile,v > retrieving revision 1.15 > diff -u -p -r1.15 Makefile > --- fonts/inconsolata-font/Makefile 15 Apr 2024 16:08:17 -0000 1.15 > +++ fonts/inconsolata-font/Makefile 11 Jul 2024 09:19:16 -0000 > @@ -16,12 +16,12 @@ EXTRACT_ONLY= > PERMIT_PACKAGE= Yes > > MODULES= font > -MODFONT_TYPES= otf > +MODFONT_FONTFILES= *.otf > > NO_BUILD= Yes > NO_TEST= Yes > > -pre-install: > - cp ${FULLDISTDIR}/${DISTFILES} ${WRKSRC} > +WRKDIST = ${FULLDISTDIR} > +MODFONT_FONTFILES = ${DISTFILES} > > .include <bsd.port.mk> > Index: fonts/intel-one-mono/Makefile > =================================================================== > RCS file: /cvs/ports/fonts/intel-one-mono/Makefile,v > retrieving revision 1.3 > diff -u -p -r1.3 Makefile > --- fonts/intel-one-mono/Makefile 15 Apr 2024 14:52:14 -0000 1.3 > +++ fonts/intel-one-mono/Makefile 11 Jul 2024 09:19:16 -0000 > @@ -1,8 +1,8 @@ > COMMENT = expressive monospaced font family > > CATEGORIES = fonts > -V = 1.3.0 > -PKGNAME = intel-one-mono-$V > +MODFONT_VERSION = 1.3.0 > +MODFONT_FAMILY = intel-one-mono > > # SIL OFL 1.1 > PERMIT_PACKAGE = Yes > @@ -12,7 +12,7 @@ SITES = https://github.com/intel/intel- > DISTFILES = otf.zip \ > ttf.zip > > -DIST_SUBDIR = intel-one-mono-$V > +DIST_SUBDIR = intel-one-mono-${MODFONT_VERSION} > > HOMEPAGE = https://github.com/intel/intel-one-mono > > @@ -21,11 +21,7 @@ MODULES = font > NO_BUILD = Yes > NO_TEST = Yes > > -FONTDIR = ${PREFIX}/share/fonts/intel-one-mono > - > -do-install: > - ${INSTALL_DATA_DIR} ${FONTDIR} > - ${INSTALL_DATA} ${WRKDIST}/otf/*.otf ${FONTDIR} > - ${INSTALL_DATA} ${WRKDIST}/ttf/*.ttf ${FONTDIR} > +MODFONT_FONTFILES = otf/*.otf \ > + ttf/*.ttf > > .include <bsd.port.mk> > Index: fonts/mada/Makefile > =================================================================== > RCS file: /cvs/ports/fonts/mada/Makefile,v > retrieving revision 1.4 > diff -u -p -r1.4 Makefile > --- fonts/mada/Makefile 21 Sep 2023 15:28:09 -0000 1.4 > +++ fonts/mada/Makefile 11 Jul 2024 09:19:16 -0000 > @@ -3,7 +3,7 @@ COMMENT = modernist Arabic typeface > V = 1.3 > DISTNAME = mada-${V} > > -CATEGORIES = fonts > +MODFONT_FAMILY = mada > > MAINTAINER = George Rosamond <geo...@nycbug.org> > > @@ -17,13 +17,9 @@ MODULES = font > NO_BUILD = Yes > NO_TEST = Yes > > -FONTDIR = ${PREFIX}/share/fonts/mada > -DOCDIR = ${PREFIX}/share/doc/mada > WRKDIST = ${WRKDIR}/Mada-${V} > > -do-install: > - ${INSTALL_DATA_DIR} ${FONTDIR} ${DOCDIR} > - ${INSTALL_DATA} ${WRKDIST}/*.otf ${FONTDIR} > - ${INSTALL_DATA} ${WRKDIST}/README.txt ${DOCDIR} > +MODFONT_FONTFILES = *.otf > +MODFONT_DOCFILES = README.txt > > .include <bsd.port.mk> > Index: fonts/migmix/Makefile > =================================================================== > RCS file: /cvs/ports/fonts/migmix/Makefile,v > retrieving revision 1.5 > diff -u -p -r1.5 Makefile > --- fonts/migmix/Makefile 21 Sep 2023 15:28:09 -0000 1.5 > +++ fonts/migmix/Makefile 11 Jul 2024 09:19:16 -0000 > @@ -2,6 +2,7 @@ COMMENT = mixture of M+ and IPA Gothic f > > V = 20200307 > PKGNAME = migmix-$V > +MODFONT_FAMILY = migmix > > CATEGORIES = fonts > > @@ -21,11 +22,9 @@ DISTFILES = migmix-1m-$V.zip \ > > MODULES = font > > +MODFONT_FONTFILES = */*.ttf > + > NO_BUILD = Yes > NO_TEST = Yes > - > -do-install: > - ${INSTALL_DATA_DIR} ${PREFIX}/share/fonts/migmix > - ${INSTALL_DATA} ${WRKDIR}/*/*.ttf ${PREFIX}/share/fonts/migmix > > .include <bsd.port.mk> > Index: fonts/migu/Makefile > =================================================================== > RCS file: /cvs/ports/fonts/migu/Makefile,v > retrieving revision 1.5 > diff -u -p -r1.5 Makefile > --- fonts/migu/Makefile 21 Sep 2023 15:28:09 -0000 1.5 > +++ fonts/migu/Makefile 11 Jul 2024 09:19:16 -0000 > @@ -2,6 +2,7 @@ COMMENT = mixture of M+ and IPA Gothic f > > V = 20200307 > PKGNAME = migu-$V > +MODFONT_FAMILY = migu > > CATEGORIES = fonts > > @@ -24,8 +25,6 @@ MODULES = font > NO_BUILD = Yes > NO_TEST = Yes > > -do-install: > - ${INSTALL_DATA_DIR} ${PREFIX}/share/fonts/migu > - ${INSTALL_DATA} ${WRKDIR}/*/*.ttf ${PREFIX}/share/fonts/migu > +MODFONT_FONTFILES = */*.ttf > > .include <bsd.port.mk> > Index: fonts/nerd-fonts/Makefile.inc > =================================================================== > RCS file: /cvs/ports/fonts/nerd-fonts/Makefile.inc,v > retrieving revision 1.6 > diff -u -p -r1.6 Makefile.inc > --- fonts/nerd-fonts/Makefile.inc 15 Apr 2024 16:08:17 -0000 1.6 > +++ fonts/nerd-fonts/Makefile.inc 11 Jul 2024 09:19:16 -0000 > @@ -22,5 +22,5 @@ NO_BUILD = Yes > NO_TEST = Yes > > MODFONT_FAMILY = ${NF_FONT:L} > -MODFONT_DIR = ${PREFIX}/share/fonts/${NF_PROJECT}/${NF_FONT:L} > +MODFONT_FONTDIR = ${PREFIX}/share/fonts/${NF_PROJECT}/${NF_FONT:L} > DOCDIR = ${PREFIX}/share/doc/${NF_PROJECT}/${NF_FONT:L} > Index: fonts/nerd-fonts/codenewroman/Makefile > =================================================================== > RCS file: /cvs/ports/fonts/nerd-fonts/codenewroman/Makefile,v > retrieving revision 1.2 > diff -u -p -r1.2 Makefile > --- fonts/nerd-fonts/codenewroman/Makefile 15 Apr 2024 16:08:17 -0000 > 1.2 > +++ fonts/nerd-fonts/codenewroman/Makefile 11 Jul 2024 09:19:16 -0000 > @@ -1,5 +1,5 @@ > NF_FONT = CodeNewRoman > -MODFONT_TYPES = otf > +MODFONT_FONTFILES = otf > > post-install: > ${INSTALL_DATA_DIR} ${DOCDIR} > Index: fonts/recursive/Makefile > =================================================================== > RCS file: /cvs/ports/fonts/recursive/Makefile,v > retrieving revision 1.2 > diff -u -p -r1.2 Makefile > --- fonts/recursive/Makefile 15 Apr 2024 16:08:17 -0000 1.2 > +++ fonts/recursive/Makefile 11 Jul 2024 09:19:16 -0000 > @@ -18,13 +18,11 @@ MODULES = font > NO_BUILD = Yes > NO_TEST = Yes > > -do-install: > - ${INSTALL_DATA_DIR} ${MODFONT_DIR} > - ${INSTALL_DATA} \ > - ${WRKSRC}/Recursive_Desktop/separate_statics/OTF/*.otf \ > - ${WRKSRC}/Recursive_Code/RecMonoCasual/*.ttf \ > - ${WRKSRC}/Recursive_Code/RecMonoDuotone/*.ttf \ > - ${WRKSRC}/Recursive_Code/RecMonoLinear/*.ttf \ > - ${WRKSRC}/Recursive_Code/RecMonoSemicasual/*.ttf ${MODFONT_DIR} > +MODFONT_FONTFILES = Recursive_Desktop/separate_statics/OTF/*.otf \ > + Recursive_Desktop/separate_statics/OTF/*.otf \ > + Recursive_Code/RecMonoCasual/*.ttf \ > + Recursive_Code/RecMonoDuotone/*.ttf \ > + Recursive_Code/RecMonoLinear/*.ttf \ > + Recursive_Code/RecMonoSemicasual/*.ttf > > .include <bsd.port.mk> > Index: fonts/sunscreen/Makefile > =================================================================== > RCS file: /cvs/ports/fonts/sunscreen/Makefile,v > retrieving revision 1.7 > diff -u -p -r1.7 Makefile > --- fonts/sunscreen/Makefile 9 Jul 2024 13:03:40 -0000 1.7 > +++ fonts/sunscreen/Makefile 11 Jul 2024 09:19:16 -0000 > @@ -14,7 +14,7 @@ PERMIT_PACKAGE = Yes > SITES = http://www.simon-cozens.org/downloads/ > > MODULES = font > -MODFONT_TYPES = otf > +MODFONT_FONTFILES = *.otf > > NO_BUILD = Yes > NO_TEST = Yes > Index: fonts/vollkorn/Makefile > =================================================================== > RCS file: /cvs/ports/fonts/vollkorn/Makefile,v > retrieving revision 1.3 > diff -u -p -r1.3 Makefile > --- fonts/vollkorn/Makefile 21 Sep 2023 15:28:12 -0000 1.3 > +++ fonts/vollkorn/Makefile 11 Jul 2024 09:19:16 -0000 > @@ -4,6 +4,7 @@ V = 4.105 > > DISTNAME = vollkorn-${V:S/./-/} > PKGNAME = vollkorn-$V > +MODFONT_FAMILY = vollkorn > > # SIL OFL 1.1 > PERMIT_PACKAGE = Yes > @@ -22,14 +23,8 @@ NO_TEST = Yes > > WRKDIST = ${WRKDIR} > > -FONTDIR = ${PREFIX}/share/fonts/vollkorn > -DOCDIR = ${PREFIX}/share/doc/vollkorn > - > -do-install: > - ${INSTALL_DATA_DIR} ${FONTDIR} > - ${INSTALL_DATA} ${WRKSRC}/TTF/*.ttf ${FONTDIR} > - ${INSTALL_DATA} ${WRKSRC}/PS-OTF/*.otf ${FONTDIR} > - ${INSTALL_DATA_DIR} ${DOCDIR} > - ${INSTALL_DATA} ${WRKSRC}/OFL.txt ${DOCDIR} > +MODFONT_FONTFILES = TTF/*.ttf \ > + PS-OTF/*.otf > +MODFONT_DOCFILES = OFL.txt > > .include <bsd.port.mk> > Index: fonts/zh-wqy-zenhei-ttf/Makefile > =================================================================== > RCS file: /cvs/ports/fonts/zh-wqy-zenhei-ttf/Makefile,v > retrieving revision 1.12 > diff -u -p -r1.12 Makefile > --- fonts/zh-wqy-zenhei-ttf/Makefile 15 Apr 2024 16:08:18 -0000 1.12 > +++ fonts/zh-wqy-zenhei-ttf/Makefile 11 Jul 2024 09:19:16 -0000 > @@ -17,11 +17,11 @@ MODULES = font > SITES= ${SITE_SOURCEFORGE:=wqy/} > EXTRACT_SUFX= .tar.gz > > -MODFONT_TYPES = ttc > +MODFONT_FONTFILES = *.ttc > > WRKDIST= ${WRKDIR}/wqy-zenhei > NO_BUILD= Yes > NO_TEST= Yes > -MODFONT_DIR= ${PREFIX}/share/fonts/wqy > +MODFONT_FONTDIR= ${PREFIX}/share/fonts/wqy > > .include <bsd.port.mk>