git: 6f5d234138dc - main - framework: new USES trigger

From: Baptiste Daroussin <bapt_at_FreeBSD.org>
Date: Sun, 10 Oct 2021 17:47:46 UTC
The branch main has been updated by bapt:

URL: https://cgit.FreeBSD.org/ports/commit/?id=6f5d234138dcb857baea070853fbc9a7736f408b

commit 6f5d234138dcb857baea070853fbc9a7736f408b
Author:     Baptiste Daroussin <bapt@FreeBSD.org>
AuthorDate: 2021-09-14 15:24:59 +0000
Commit:     Baptiste Daroussin <bapt@FreeBSD.org>
CommitDate: 2021-10-10 17:43:02 +0000

    framework: new USES trigger
    
    Triggers are a new feature from pkg 1.17 (stable in 1.17.2)
    they are script that are executed at the end of a transaction if
    anything triggered them.
    
    To trigger them a files should have been installed in a location which
    matches predefined pattern (glob, regexp, or exact matching)
    
    When a package is installed in a cross root installation for example:
    pkg -r XXX install something
    and if it triggers a trigger, then the execution will be deferred.
    
    The pkg trigger command will execute the deferred triggers
    
    Reviewed by: tcberner
    Differential Revision: https://reviews.freebsd.org/D31960
---
 Mk/Uses/gnome.mk   | 25 -------------------------
 Mk/Uses/trigger.mk | 29 +++++++++++++++++++++++++++++
 2 files changed, 29 insertions(+), 25 deletions(-)

diff --git a/Mk/Uses/gnome.mk b/Mk/Uses/gnome.mk
index 66d7f4d0169c..b53cc71590e5 100644
--- a/Mk/Uses/gnome.mk
+++ b/Mk/Uses/gnome.mk
@@ -46,12 +46,6 @@
 #				file and add apropriate @postexec/@postunexec directives for
 #				each .omf file found to track OMF registration database.
 #
-# INSTALLS_ICONS	- If a GTK+ port installs Freedesktop-style icons to
-#				${LOCALBASE}/share/icons, then you should use this
-#				macro. Using this macro ensures that icons are cached
-#				and will display correctly. This macro isn't needed
-#				for QT based applications, which use a different method.
-#
 # MAINTAINER: gnome@FreeBSD.org
 
 .if !defined(_INCLUDE_USES_GNOME_MK)
@@ -458,24 +452,5 @@ gnome-post-omf:
 	done
 .endif
 
-.if defined(INSTALLS_ICONS)
-_USES_install+=	690:gnome-post-icons
-gnome-post-icons:
-	@${RM} ${TMPPLIST}.icons1
-	@for i in `${GREP} "^share/icons/.*/" ${TMPPLIST} | ${CUT} -d / -f 1-3 | ${SORT} -u`; do \
-		${ECHO_CMD} "@rmtry $${i}/icon-theme.cache" \
-			>> ${TMPPLIST}.icons1; \
-		${ECHO_CMD} "@postexec ${LOCALBASE}/bin/gtk-update-icon-cache -q -f %D/$${i} 2>/dev/null || /usr/bin/true" \
-			>> ${TMPPLIST}; \
-		${ECHO_CMD} "@postunexec ${LOCALBASE}/bin/gtk-update-icon-cache -q -f %D/$${i} 2>/dev/null || /usr/bin/true" \
-			>> ${TMPPLIST}; \
-	done
-	@if test -f ${TMPPLIST}.icons1; then \
-		${CAT} ${TMPPLIST}.icons1 ${TMPPLIST} > ${TMPPLIST}.icons2; \
-		${RM} ${TMPPLIST}.icons1; \
-		${MV} -f ${TMPPLIST}.icons2 ${TMPPLIST}; \
-	fi
-.endif
-
 .endif
 # End of use part.
diff --git a/Mk/Uses/trigger.mk b/Mk/Uses/trigger.mk
new file mode 100644
index 000000000000..bf15e9512a84
--- /dev/null
+++ b/Mk/Uses/trigger.mk
@@ -0,0 +1,29 @@
+# Feature:	trigger
+# Usage:	USES=trigger
+# Valid ARGS:	none
+#
+# Variables:
+# TRIGGERS: list of triggers to package
+#
+# MAINTAINER= portmgr@FreeBSD.org
+
+.if !defined(_INCLUDE_USES_TRIGGER_MK)
+_INCLUDE_USES_TRIGGER_MK=	yes
+
+.if !empty(trigger_ARGS)
+IGNORE=	Incorrect 'USES+= trigger:${trigger_ARGS}' trigger takes no arguments
+.endif
+
+TRIGGERS?=	${PORTNAME}
+.for t in ${TRIGGERS}
+SUB_FILES+=	${t}.ucl
+PLIST_FILES+=	${LOCALBASE}/share/pkg/triggers/$t.ucl
+.endfor
+
+_USES_install+=	601:trigger-post-install
+trigger-post-install:
+	${MKDIR} ${STAGEDIR}${LOCALBASE}/share/pkg/triggers
+.for t in ${TRIGGERS}
+	${INSTALL_DATA} ${WRKDIR}/$t.ucl ${STAGEDIR}${LOCALBASE}/share/pkg/triggers/
+.endfor
+.endif