summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarty E. Plummer <hanetzer@startmail.com>2019-01-01 16:19:06 -0600
committerMart Raudsepp <leio@gentoo.org>2019-02-11 19:13:54 +0200
commita506c07df071f68613099e8b7e2b1f81c9ef97a1 (patch)
tree879cdf456a410ccb2ac4531144713acb6f21664a /eclass/xdg-utils.eclass
parentgnome.org.eclass: use eapi7-ver (diff)
downloadgentoo-a506c07df071f68613099e8b7e2b1f81c9ef97a1.tar.gz
gentoo-a506c07df071f68613099e8b7e2b1f81c9ef97a1.tar.bz2
gentoo-a506c07df071f68613099e8b7e2b1f81c9ef97a1.zip
gnome2-utils: move icon functions into xdg-utils
Kept some dummy stub functions in place in order to maintain functionality of existing ebuilds. Package-Manager: Portage-2.3.51, Repoman 2.3.11 Signed-off-by: Marty E. Plummer <hanetzer@startmail.com> Signed-off-by: Mart Raudsepp <leio@gentoo.org>
Diffstat (limited to 'eclass/xdg-utils.eclass')
-rw-r--r--eclass/xdg-utils.eclass50
1 files changed, 49 insertions, 1 deletions
diff --git a/eclass/xdg-utils.eclass b/eclass/xdg-utils.eclass
index fe1eef213ea4..3c3a3e8227c0 100644
--- a/eclass/xdg-utils.eclass
+++ b/eclass/xdg-utils.eclass
@@ -1,4 +1,4 @@
-# Copyright 1999-2017 Gentoo Foundation
+# Copyright 1999-2019 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# @ECLASS: xdg-utils.eclass
@@ -12,6 +12,7 @@
# This eclass provides a set of auxiliary functions needed by most XDG
# compliant packages.
# It provides XDG stack related functions such as:
+# * Gtk+ icon cache management
# * XDG .desktop files cache management
# * XDG mime information database management
@@ -32,6 +33,12 @@ esac
# Directory where .desktop files database is stored
: ${DESKTOP_DATABASE_DIR="/usr/share/applications"}
+# @ECLASS-VARIABLE: GTK_UPDATE_ICON_CACHE
+# @INTERNAL
+# @DESCRIPTION:
+# Path to gtk-update-icon-cache
+: ${GTK_UPDATE_ICON_CACHE:="/usr/bin/gtk-update-icon-cache"}
+
# @ECLASS-VARIABLE: MIMEINFO_DATABASE_UPDATE_BIN
# @INTERNAL
# @DESCRIPTION:
@@ -83,6 +90,47 @@ xdg_desktop_database_update() {
eend $?
}
+# @FUNCTION: xdg_icon_cache_update
+# @DESCRIPTION:
+# Updates Gtk+ icon cache files under /usr/share/icons.
+# This function should be called from pkg_postinst and pkg_postrm.
+xdg_icon_cache_update() {
+ has ${EAPI:-0} 0 1 2 && ! use prefix && EROOT="${ROOT}"
+ local updater="${EROOT%/}${GTK_UPDATE_ICON_CACHE}"
+ if [[ ! -x "${updater}" ]]; then
+ debug-print "${updater} is not executable"
+ return
+ fi
+ ebegin "Updating icons cache"
+ local retval=0
+ local fails=( )
+ for dir in "${EROOT%/}"/usr/share/icons/*
+ do
+ if [[ -f "${dir}/index.theme" ]] ; then
+ local rv=0
+ "${updater}" -qf "${dir}"
+ rv=$?
+ if [[ ! $rv -eq 0 ]] ; then
+ debug-print "Updating cache failed on ${dir}"
+ # Add to the list of failures
+ fails+=( "${dir}" )
+ retval=2
+ fi
+ elif [[ $(ls "${dir}") = "icon-theme.cache" ]]; then
+ # Clear stale cache files after theme uninstallation
+ rm "${dir}/icon-theme.cache"
+ fi
+ if [[ -z $(ls "${dir}") ]]; then
+ # Clear empty theme directories after theme uninstallation
+ rmdir "${dir}"
+ fi
+ done
+ eend ${retval}
+ for f in "${fails[@]}" ; do
+ eerror "Failed to update cache with icon $f"
+ done
+}
+
# @FUNCTION: xdg_mimeinfo_database_update
# @DESCRIPTION:
# Update the mime database.