aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBaptiste Daroussin <bapt@FreeBSD.org>2022-03-18 13:36:57 +0000
committerBaptiste Daroussin <bapt@FreeBSD.org>2022-03-22 12:29:52 +0000
commit306567bc74fbdfb30c62479083b933835f314c8f (patch)
tree6f5b8c9a61a54524ad5661e2cd17bfd0481a8daf
parent52598b84ea0eb90860dcf06d781883cd8fe187fe (diff)
downloadports-306567bc74fbdfb30c62479083b933835f314c8f.tar.gz
ports-306567bc74fbdfb30c62479083b933835f314c8f.zip
x11-fonts/fontconfig: Use triggers to rebuild fc-cache
Stop forcing the overwrite of the cache at each run it is not necessary most of the time. Reviewed by: tcberner Differencial Revision: https://reviews.freebsd.org/D34602 While here rework USES=fonts to drop @fcfontsdir which is not nessary anymore and convert the @fontsdir into lua which make it way simpler to read
-rw-r--r--Keywords/fcfontsdir.ucl27
-rw-r--r--Keywords/fontsdir.ucl34
-rw-r--r--Mk/Uses/fonts.mk10
-rw-r--r--x11-fonts/font-misc-ethiopic/pkg-plist2
-rw-r--r--x11-fonts/fontconfig/Makefile7
-rw-r--r--x11-fonts/fontconfig/files/fontconfig.ucl.in9
-rw-r--r--x11-fonts/fontconfig/files/pkg-install.in10
7 files changed, 32 insertions, 67 deletions
diff --git a/Keywords/fcfontsdir.ucl b/Keywords/fcfontsdir.ucl
deleted file mode 100644
index 81f9d4e716ab..000000000000
--- a/Keywords/fcfontsdir.ucl
+++ /dev/null
@@ -1,27 +0,0 @@
-# MAINTAINER: x11@FreeBSD.org
-
-actions: [dir]
-post-install: <<EOD
- case "%@" in
- /*) fontsdir="%@" ;;
- *) fontsdir="%D/%@" ;;
- esac
- fc-cache -fs ${fontsdir} 2>/dev/null || true
- mkfontscale ${fontsdir} 2>/dev/null || true
- mkfontdir ${fontsdir} 2>/dev/null || true
-EOD
-post-deinstall: <<EOD
- case "%@" in
- /*) fontsdir="%@" ;;
- *) fontsdir="%D/%@" ;;
- esac
- fc-cache -fs ${fontsdir} 2>/dev/null || true
- mkfontscale ${fontsdir} 2>/dev/null || true
- if [ -e ${fontsdir}/fonts.scale -a "`stat -f '%%z' ${fontsdir}/fonts.scale 2>/dev/null`" = '2' ]; then
- rm ${fontsdir}/fonts.scale
- fi
- mkfontdir ${fontsdir} 2>/dev/null || true
- if [ -e ${fontsdir}/fonts.dir -a "`stat -f '%%z' ${fontsdir}/fonts.dir 2>/dev/null`" = '2' ]; then
- rm ${fontsdir}/fonts.dir
- fi
-EOD
diff --git a/Keywords/fontsdir.ucl b/Keywords/fontsdir.ucl
index 09c31572bf50..8c0701223e53 100644
--- a/Keywords/fontsdir.ucl
+++ b/Keywords/fontsdir.ucl
@@ -1,25 +1,19 @@
# MAINTAINER: x11@FreeBSD.org
actions: [dir]
-post-install: <<EOD
- case "%@" in
- /*) fontsdir="%@" ;;
- *) fontsdir="%D/%@" ;;
- esac
- mkfontscale ${fontsdir} 2>/dev/null || true
- mkfontdir ${fontsdir} 2>/dev/null || true
+post-install-lua: <<EOD
+ fontdir = pkg.prefixed_path("%@")
+ pkg.exec({"mkfontscale", fontdir})
+ pkg.exec({"mkfontdir", fontdir})
EOD
-post-deinstall: <<EOD
- case "%@" in
- /*) fontsdir="%@" ;;
- *) fontsdir="%D/%@" ;;
- esac
- mkfontscale ${fontsdir} 2>/dev/null || true
- if [ -e ${fontsdir}/fonts.scale -a "`stat -f '%%z' ${fontsdir}/fonts.scale 2>/dev/null`" = '2' ]; then
- rm ${fontsdir}/fonts.scale
- fi
- mkfontdir ${fontsdir} 2>/dev/null || true
- if [ -e ${fontsdir}/fonts.dir -a "`stat -f '%%z' ${fontsdir}/fonts.dir 2>/dev/null`" = '2' ]; then
- rm ${fontsdir}/fonts.dir
- fi
+post-deinstall-lua: <<EOD
+ fontdir = pkg.prefixed_path("%@")
+ pkg.exec({"mkfontscale", fontdir})
+ pkg.exec({"mkfontdir", fontdir})
+ for _, v in pairs {"/fonts.scale", "/fonts.dir" } do
+ local st = pkg.stat(fontdir .. v)
+ if st and st.type == "reg" and st.size == 2 then
+ os.remove(fontdir .. v)
+ end
+ end
EOD
diff --git a/Mk/Uses/fonts.mk b/Mk/Uses/fonts.mk
index acc751b5be2f..1547744747bc 100644
--- a/Mk/Uses/fonts.mk
+++ b/Mk/Uses/fonts.mk
@@ -41,23 +41,23 @@
_INCLUDE_USES_FONTS_MK= yes
.if empty(fonts_ARGS)
-fonts_ARGS= fcfontsdir
+fonts_ARGS= fontsdir
.endif
-.if !empty(fonts_ARGS:Nfc:Nfontsdir:Nfcfontsdir:Nnone)
+.if !empty(fonts_ARGS:Nfc:Nfontsdir:Nnone)
IGNORE= USES=fonts - invalid ARGS (${fonts_ARGS})
.endif
-.if !empty(fonts_ARGS:Mfc) || !empty(fonts_ARGS:Mfcfontsdir)
+.if !empty(fonts_ARGS:Mfc) || !empty(fonts_ARGS:Mfontsdir)
RUN_DEPENDS+= fc-cache:x11-fonts/fontconfig
.endif
-.if !empty(fonts_ARGS:Mfontsdir) || !empty(fonts_ARGS:Mfcfontsdir)
+.if !empty(fonts_ARGS:Mfontsdir)
RUN_DEPENDS+= mkfontscale:x11-fonts/mkfontscale
.endif
FONTNAME?= ${PORTNAME}
FONTSDIR?= ${PREFIX}/share/fonts/${FONTNAME}
-.if !empty(fonts_ARGS:Nnone)
+.if !empty(fonts_ARGS:Mfontsdir)
PLIST_FILES+= "@${fonts_ARGS} ${FONTSDIR}"
.endif
.if defined(FONTPATHSPEC) && !empty(FONTPATHSPEC)
diff --git a/x11-fonts/font-misc-ethiopic/pkg-plist b/x11-fonts/font-misc-ethiopic/pkg-plist
index 94cfc23c0419..d90a9cea8586 100644
--- a/x11-fonts/font-misc-ethiopic/pkg-plist
+++ b/x11-fonts/font-misc-ethiopic/pkg-plist
@@ -1,4 +1,4 @@
-@fcfontsdir share/fonts/OTF
+@fontsdir share/fonts/OTF
share/fonts/OTF/GohaTibebZemen.otf
share/fonts/TTF/GohaTibebZemen.ttf
@comment share/fonts/OTF/fonts.dir
diff --git a/x11-fonts/fontconfig/Makefile b/x11-fonts/fontconfig/Makefile
index 8977dc2dabd8..5672a999d63d 100644
--- a/x11-fonts/fontconfig/Makefile
+++ b/x11-fonts/fontconfig/Makefile
@@ -2,7 +2,7 @@
PORTNAME= fontconfig
DISTVERSION= 2.13.94
-PORTREVISION= 1
+PORTREVISION= 2
PORTEPOCH= 1
CATEGORIES= x11-fonts
MASTER_SITES= https://www.freedesktop.org/software/fontconfig/release/
@@ -16,7 +16,8 @@ LICENSE_FILE= ${WRKSRC}/COPYING
LIB_DEPENDS= libfreetype.so:print/freetype2 \
libexpat.so:textproc/expat2
-USES= cpe gperf meson pkgconfig python:3.6+,build shebangfix tar:xz
+USES= cpe gperf meson pkgconfig python:3.6+,build shebangfix tar:xz \
+ trigger
CPE_VENDOR= fontconfig_project
USE_LDCONFIG= yes
@@ -26,8 +27,6 @@ SHEBANG_FILES= conf.d/link_confs.py \
fc-lang/fc-lang.py
TEST_TARGET= test
-SUB_FILES= pkg-install
-SUB_LIST= PREFIX=${PREFIX}
# Custom configuration variables
FCDEFAULTFONTS= ${PREFIX}/share/fonts
diff --git a/x11-fonts/fontconfig/files/fontconfig.ucl.in b/x11-fonts/fontconfig/files/fontconfig.ucl.in
new file mode 100644
index 000000000000..4f7c1909e63e
--- /dev/null
+++ b/x11-fonts/fontconfig/files/fontconfig.ucl.in
@@ -0,0 +1,9 @@
+path: [ "%%PREFIX%%/share/fonts", %%PREFIX%%/etc/fonts/conf.d ]
+trigger: {
+ type: lua
+ sandbox: false
+ script: <<EOS
+print("Running fc-cache to build fontconfig cache...")
+pkg.exec({"%%PREFIX%%/bin/fc-cache", "-s" })
+EOS
+}
diff --git a/x11-fonts/fontconfig/files/pkg-install.in b/x11-fonts/fontconfig/files/pkg-install.in
deleted file mode 100644
index 4dc92cbbbe33..000000000000
--- a/x11-fonts/fontconfig/files/pkg-install.in
+++ /dev/null
@@ -1,10 +0,0 @@
-#!/bin/sh
-
-PATH=/bin:/usr/bin:/sbin:/usr/sbin:%%PREFIX%%/bin
-export PATH
-
-if [ "$2" = "POST-INSTALL" ]; then
- echo "Running fc-cache to build fontconfig cache..."
- fc-cache -f -s -v
- exit 0
-fi