Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 10 Oct 2021 17:47:47 GMT
From:      Baptiste Daroussin <bapt@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: 46bcb098c82f - main - graphics/gtk-update-icon-cache: use triggers
Message-ID:  <202110101747.19AHllj2070784@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by bapt:

URL: https://cgit.FreeBSD.org/ports/commit/?id=46bcb098c82f7a18c7667fc99f6a7824b2b6eeef

commit 46bcb098c82f7a18c7667fc99f6a7824b2b6eeef
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:46:46 +0000

    graphics/gtk-update-icon-cache: use triggers
    
    Use triggers instead of enforcing the INSTALL_ICONS which enforces
    gtk-update-icon-cache dependency on every ports installing icons.
    
    The bonus:
    - factorize gtk-update-icon-cache update at the end of the build
    - stop adding a gratuicious dependency on gtk-update-icon-cache on
      packages which do not need it
    - works on packages where INSTALLS_ICONS were forgotten
    
    PR:                     258502
    Exp-run:                antoine
    Reviewed by:            tcberner
    Differential Revision:  https://reviews.freebsd.org/D31960
---
 graphics/gtk-update-icon-cache/Makefile            |  3 ++-
 .../files/gtk-update-icon-cache.ucl.in             | 30 ++++++++++++++++++++++
 2 files changed, 32 insertions(+), 1 deletion(-)

diff --git a/graphics/gtk-update-icon-cache/Makefile b/graphics/gtk-update-icon-cache/Makefile
index 495ea3ae2ca2..9f36054ee9a7 100644
--- a/graphics/gtk-update-icon-cache/Makefile
+++ b/graphics/gtk-update-icon-cache/Makefile
@@ -2,6 +2,7 @@
 
 PORTNAME=	gtk-update-icon-cache
 PORTVERSION=	3.24.26
+PORTREVISION=	1
 CATEGORIES=	graphics
 DIST_SUBDIR=	gnome
 
@@ -11,7 +12,7 @@ COMMENT=	Gtk-update-icon-cache utility from the Gtk+ toolkit
 LICENSE=	LGPL20
 LICENSE_FILE=	${WRKSRC}/COPYING
 
-USES=		gettext gnome meson pkgconfig
+USES=		gettext gnome meson pkgconfig trigger
 USE_GNOME=	gdkpixbuf2
 USE_GITLAB=	yes
 GL_SITE=	https://gitlab.gnome.org
diff --git a/graphics/gtk-update-icon-cache/files/gtk-update-icon-cache.ucl.in b/graphics/gtk-update-icon-cache/files/gtk-update-icon-cache.ucl.in
new file mode 100644
index 000000000000..faa02503c7f4
--- /dev/null
+++ b/graphics/gtk-update-icon-cache/files/gtk-update-icon-cache.ucl.in
@@ -0,0 +1,30 @@
+path_glob: "*/share/icons/*"
+trigger: {
+	type: lua
+	sandbox: false
+	script: <<EOS
+-- make sure we only get the path one level after share/icons
+-- Ensure each path is uniq
+local hash = {}
+for _,path in ipairs(arg) do
+	path = string.match(path, ".*share/icons/[^/]*")
+	if (not hash[path]) and pkg.stat(path) then
+		local res = pkg.readdir(path)
+		if #res == 1 and res[1] == "icon-theme.cache" then
+			os.remove(path .. "/" .. res[1])
+			os.remove(path)
+			-- remove share icons if empty
+			local share_icons = path:gsub("(.*share/icons)/.*", "%1")
+			local res = pkg.readdir(share_icons)
+			if #res == 0 then
+				os.remove(share_icons)
+			end
+		else
+			print("Generating GTK icon cache for " .. path)
+			pkg.exec({"%%PREFIX%%/bin/gtk-update-icon-cache", "-q", "-t", "-f", path})
+		end
+		hash[path] = true
+	end
+end
+EOS
+}



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202110101747.19AHllj2070784>