Download raw body.
font module: simplify font file installation
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?
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 <george@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>
font module: simplify font file installation