git: 522332dbc718 - main - devel/glib: convert gio modules and glib schemas to triggers

From: Baptiste Daroussin <bapt_at_FreeBSD.org>
Date: Fri, 18 Mar 2022 10:01:39 UTC
The branch main has been updated by bapt:

URL: https://cgit.FreeBSD.org/ports/commit/?id=522332dbc7186af743b36a5ed6bf8911f7975463

commit 522332dbc7186af743b36a5ed6bf8911f7975463
Author:     Baptiste Daroussin <bapt@FreeBSD.org>
AuthorDate: 2022-03-15 09:43:12 +0000
Commit:     Baptiste Daroussin <bapt@FreeBSD.org>
CommitDate: 2022-03-18 10:00:23 +0000

    devel/glib: convert gio modules and glib schemas to triggers
    
    Use trigger to compile glib schemas, and generate gio modules cache
    
    PR:             262567
    Reviewed by:    tcberner
    Exp-run by:     antoine
    Differential Revision:  https://reviews.freebsd.org/D34564
---
 Keywords/glib-schemas.ucl              | 14 --------------
 Mk/Scripts/check_leftovers.sh          |  3 ---
 Mk/Uses/gnome.mk                       |  3 ---
 Mk/bsd.port.mk                         |  2 --
 devel/dconf/Makefile                   |  1 +
 devel/dconf/pkg-plist                  |  2 --
 devel/gconf2/Makefile                  |  2 +-
 devel/gconf2/pkg-plist                 |  2 --
 devel/glib20/Makefile                  |  4 +++-
 devel/glib20/files/gio-modules.ucl.in  | 16 ++++++++++++++++
 devel/glib20/files/glib-schemas.ucl.in | 16 ++++++++++++++++
 devel/glib20/pkg-plist                 |  3 ---
 12 files changed, 37 insertions(+), 31 deletions(-)

diff --git a/Keywords/glib-schemas.ucl b/Keywords/glib-schemas.ucl
deleted file mode 100644
index 192c8ed99efb..000000000000
--- a/Keywords/glib-schemas.ucl
+++ /dev/null
@@ -1,14 +0,0 @@
-# MAINTAINER: gnome@FreeBSD.org
-#
-# Rebuild the glib schema cache.
-#
-# Ports installing glib schemas should use the GLIB_SCHEMAS macro
-# from USE_GNOME instead of calling this keyword directly.
-
-actions: []
-post-install: <<EOD
-  glib-compile-schemas %D/share/glib-2.0/schemas > /dev/null || true
-EOD
-post-deinstall: <<EOD
-  glib-compile-schemas %D/share/glib-2.0/schemas > /dev/null || true
-EOD
diff --git a/Mk/Scripts/check_leftovers.sh b/Mk/Scripts/check_leftovers.sh
index 65c2d143396c..00e8ad4a45dc 100644
--- a/Mk/Scripts/check_leftovers.sh
+++ b/Mk/Scripts/check_leftovers.sh
@@ -140,9 +140,6 @@ while read -r modtype path extra; do
 		case "${sub_path}" in
 			# gconftool-2 --makefile-uninstall-rule is unpredictable
 			etc/gconf/gconf.xml.defaults/%gconf-tree*.xml) ;;
-			# This is a cache file for gio modules could be modified
-			# for any gio modules
-			lib/gio/modules/giomodule.cache) ;;
 			# removal of info files leaves entry uneasy to cleanup
 			# in info/dir
 			info/dir) ;;
diff --git a/Mk/Uses/gnome.mk b/Mk/Uses/gnome.mk
index 89f45350ad13..5bde97919ffa 100644
--- a/Mk/Uses/gnome.mk
+++ b/Mk/Uses/gnome.mk
@@ -411,15 +411,12 @@ gnome-post-gconf-schemas:
 	done
 .endif
 
-# we put the @glib-schemas behind the plist schema entry, because it compiles files 
-# in the directory. So we should remove the port file first before recompiling.
 .if defined(GLIB_SCHEMAS)
 _USES_install+=	690:gnome-post-glib-schemas
 gnome-post-glib-schemas:
 	@for i in ${GLIB_SCHEMAS}; do \
 		${ECHO_CMD} "share/glib-2.0/schemas/$${i}" >> ${TMPPLIST}; \
 	done
-	@${ECHO_CMD} "@glib-schemas" >> ${TMPPLIST};
 .endif
 
 .endif
diff --git a/Mk/bsd.port.mk b/Mk/bsd.port.mk
index 78961a9b6c31..7419f99e4a45 100644
--- a/Mk/bsd.port.mk
+++ b/Mk/bsd.port.mk
@@ -1923,14 +1923,12 @@ PKGPOSTDEINSTALL?=	${PKGDIR}/pkg-post-deinstall
 
 _FORCE_POST_PATTERNS=	rmdir kldxref mkfontscale mkfontdir fc-cache \
 						fonts.dir fonts.scale gtk-update-icon-cache \
-						gio-querymodules \
 						gtk-query-immodules \
 						ldconfig \
 						load-octave-pkg \
 						ocamlfind \
 						update-desktop-database update-mime-database \
 						gdk-pixbuf-query-loaders catalog.ports \
-						glib-compile-schemas \
 						ccache-update-links
 
 .if defined(USE_LOCAL_MK)
diff --git a/devel/dconf/Makefile b/devel/dconf/Makefile
index 41ff9e480666..997171695011 100644
--- a/devel/dconf/Makefile
+++ b/devel/dconf/Makefile
@@ -2,6 +2,7 @@
 
 PORTNAME=	dconf
 PORTVERSION=	0.40.0
+PORTREVISION=	1
 CATEGORIES=	devel gnome
 MASTER_SITES=	GNOME
 DISTNAME=	dconf-${PORTVERSION}
diff --git a/devel/dconf/pkg-plist b/devel/dconf/pkg-plist
index ba0d6417d18b..40a45bda58e4 100644
--- a/devel/dconf/pkg-plist
+++ b/devel/dconf/pkg-plist
@@ -20,5 +20,3 @@ share/vala/vapi/dconf.deps
 share/vala/vapi/dconf.vapi
 @dir %%ETCDIR%%/db
 @dir %%ETCDIR%%/profile
-@postexec %D/bin/gio-querymodules %D/lib/gio/modules 2>/dev/null || /usr/bin/true
-@postunexec %D/bin/gio-querymodules %D/lib/gio/modules 2>/dev/null || /usr/bin/true
diff --git a/devel/gconf2/Makefile b/devel/gconf2/Makefile
index 992e08073ad7..9e535cc824ad 100644
--- a/devel/gconf2/Makefile
+++ b/devel/gconf2/Makefile
@@ -3,7 +3,7 @@
 
 PORTNAME=	gconf2
 PORTVERSION=	3.2.6
-PORTREVISION=	6
+PORTREVISION=	7
 CATEGORIES=	devel gnome
 MASTER_SITES=	GNOME/sources/GConf/${PORTVERSION:C/^([0-9]+\.[0-9]+).*/\1/}
 DISTNAME=	GConf-${PORTVERSION}
diff --git a/devel/gconf2/pkg-plist b/devel/gconf2/pkg-plist
index 50f6d2dc2b61..f9834ffaf121 100644
--- a/devel/gconf2/pkg-plist
+++ b/devel/gconf2/pkg-plist
@@ -122,5 +122,3 @@ share/sgml/gconf/gconf-1.0.dtd
 @dir etc/gconf/gconf.xml.defaults
 @dir etc/gconf/gconf.xml.mandatory
 @dir etc/gconf/gconf.xml.system
-@postexec %D/bin/gio-querymodules %D/lib/gio/modules 2>/dev/null || /usr/bin/true
-@postunexec %D/bin/gio-querymodules %D/lib/gio/modules 2>/dev/null || /usr/bin/true
diff --git a/devel/glib20/Makefile b/devel/glib20/Makefile
index f4df13465bf6..0ff7ed6e50bb 100644
--- a/devel/glib20/Makefile
+++ b/devel/glib20/Makefile
@@ -2,6 +2,7 @@
 
 PORTNAME=	glib
 DISTVERSION=	2.70.4
+PORTREVISION=	1
 PORTEPOCH=	2
 CATEGORIES=	devel
 MASTER_SITES=	GNOME
@@ -18,7 +19,8 @@ LIB_DEPENDS=	libffi.so:devel/libffi \
 # iconv:wchar_t - our iconv in base doesn't support utf-8 -> wchar_t (boooo)
 # (wchar_t is used by glibmm, rawtherapee triggered this)
 USES=		compiler:c11 cpe gettext gnome iconv:wchar_t localbase:ldflags \
-		meson perl5 pkgconfig python:3.6+ tar:xz
+		meson perl5 pkgconfig python:3.6+ tar:xz trigger
+TRIGGERS=	gio-modules glib-schemas
 USE_LDCONFIG=	yes
 USE_PERL5=	build
 USE_PYTHON=	py3kplist
diff --git a/devel/glib20/files/gio-modules.ucl.in b/devel/glib20/files/gio-modules.ucl.in
new file mode 100644
index 000000000000..dafa3a160553
--- /dev/null
+++ b/devel/glib20/files/gio-modules.ucl.in
@@ -0,0 +1,16 @@
+path: "%%PREFIX%%/lib/gio/modules"
+cleanup: {
+	type: lua
+	sandbox: false
+	script: <<EOS
+os.remove("%%PREFIX%%/lib/gio/modules/giomodule.cache")
+EOS
+}
+trigger: {
+	type: lua
+	sandbox: false
+	script: <<EOS
+print("Generating GIO modules cache")
+pkg.exec({"%%PREFIX%%/bin/gio-querymodules", "%%PREFIX%%/lib/gio/modules"})
+EOS
+}
diff --git a/devel/glib20/files/glib-schemas.ucl.in b/devel/glib20/files/glib-schemas.ucl.in
new file mode 100644
index 000000000000..c576a21b27a1
--- /dev/null
+++ b/devel/glib20/files/glib-schemas.ucl.in
@@ -0,0 +1,16 @@
+path: "%%PREFIX%%/share/glib-2.0/schemas"
+cleanup: {
+	type: lua
+	sandbox: false
+	script: <<EOS
+os.remove("%%PREFIX%%/share/glib-2.0/schemas/gschemas.compiled")
+EOS
+}
+trigger: {
+	type: lua
+	sandbox: false
+	script: <<EOS
+print("Compiling glib schemas")
+pkg.exec({"%%PREFIX%%/bin/glib-compile-schemas", "%%PREFIX%%/share/glib-2.0/schemas"})
+EOS
+}
diff --git a/devel/glib20/pkg-plist b/devel/glib20/pkg-plist
index ac0d084c45cc..284807bb3660 100644
--- a/devel/glib20/pkg-plist
+++ b/devel/glib20/pkg-plist
@@ -469,6 +469,3 @@ share/gettext/its/gschema.loc
 %%NLS%%share/locale/zh_TW/LC_MESSAGES/glib20.mo
 @dir lib/gio/modules
 @dir share/GConf/gsettings
-@postexec %D/bin/glib-compile-schemas %D/share/glib-2.0/schemas 2>/dev/null || /usr/bin/true
-@postunexec /bin/rm -f %D/share/glib-2.0/schemas/gschemas.compiled || /usr/bin/true
-@postexec %D/bin/gio-querymodules %D/lib/gio/modules 2>/dev/null || /usr/bin/true