diff options
author | Marty E. Plummer <hanetzer@startmail.com> | 2019-01-01 16:19:06 -0600 |
---|---|---|
committer | Mart Raudsepp <leio@gentoo.org> | 2019-02-11 19:13:54 +0200 |
commit | a506c07df071f68613099e8b7e2b1f81c9ef97a1 (patch) | |
tree | 879cdf456a410ccb2ac4531144713acb6f21664a /eclass/xdg-utils.eclass | |
parent | gnome.org.eclass: use eapi7-ver (diff) | |
download | gentoo-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.eclass | 50 |
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. |