Package-Manager: Portage-2.3.40, Repoman-2.3.9
---
 eclass/gnome2.eclass |  9 +--------
 eclass/xdg.eclass    | 31 ++++++++++++++++++++++++-------
 2 files changed, 25 insertions(+), 15 deletions(-)

diff --git a/eclass/gnome2.eclass b/eclass/gnome2.eclass
index 6db6d08b14e..c4418df92bb 100644
--- a/eclass/gnome2.eclass
+++ b/eclass/gnome2.eclass
@@ -1,4 +1,4 @@
-# Copyright 1999-2015 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 # @ECLASS: gnome2.eclass
@@ -315,7 +315,6 @@ gnome2_src_install() {
 gnome2_pkg_preinst() {
        xdg_pkg_preinst
        gnome2_gconf_savelist
-       gnome2_icon_savelist
        gnome2_schemas_savelist
        gnome2_scrollkeeper_savelist
        gnome2_gdk_pixbuf_savelist
@@ -337,9 +336,6 @@ gnome2_pkg_preinst() {
 gnome2_pkg_postinst() {
        xdg_pkg_postinst
        gnome2_gconf_install
-       if [[ -n ${GNOME2_ECLASS_ICONS} ]]; then
-               gnome2_icon_cache_update
-       fi
        if [[ -n ${GNOME2_ECLASS_GLIB_SCHEMAS} ]]; then
                gnome2_schemas_update
        fi
@@ -361,9 +357,6 @@ gnome2_pkg_postinst() {
 # Handle scrollkeeper, GSettings, Icons, desktop and mime database updates.
 gnome2_pkg_postrm() {
        xdg_pkg_postrm
-       if [[ -n ${GNOME2_ECLASS_ICONS} ]]; then
-               gnome2_icon_cache_update
-       fi
        if [[ -n ${GNOME2_ECLASS_GLIB_SCHEMAS} ]]; then
                gnome2_schemas_update
        fi
diff --git a/eclass/xdg.eclass b/eclass/xdg.eclass
index fd4816b8447..2a4e1f81abf 100644
--- a/eclass/xdg.eclass
+++ b/eclass/xdg.eclass
@@ -1,4 +1,4 @@
-# Copyright 1999-2015 Gentoo Foundation
+# Copyright 1999-2018 Gentoo Foundation
 # Distributed under the terms of the GNU General Public License v2
 
 # @ECLASS: xdg.eclass
@@ -39,9 +39,9 @@ xdg_src_prepare() {
 
 # @FUNCTION: xdg_pkg_preinst
 # @DESCRIPTION:
-# Finds .desktop and mime info files for later handling in pkg_postinst.
-# Locations are stored in XDG_ECLASS_DESKTOPFILES and XDG_ECLASS_MIMEINFOFILES
-# respectively.
+# Finds .desktop, icon and mime info files for later handling in pkg_postinst.
+# Locations are stored in XDG_ECLASS_DESKTOPFILES, XDG_ECLASS_ICONFILES
+# and XDG_ECLASS_MIMEINFOFILES respectively.
 xdg_pkg_preinst() {
        local f
 
@@ -50,17 +50,22 @@ xdg_pkg_preinst() {
                XDG_ECLASS_DESKTOPFILES+=( ${f} )
        done < <(cd "${D}" && find 'usr/share/applications' -type f -print0 
2>/dev/null)
 
+       XDG_ECLASS_ICONFILES=()
+       while IFS= read -r '' f; do
+               XDG_ECLASS_ICONFILES+=( ${f} )
+       done < <(cd "${D}" && find 'usr/share/icons' -type f -print0 
2>/dev/null)
+
        XDG_ECLASS_MIMEINFOFILES=()
        while IFS= read -r -d '' f; do
                XDG_ECLASS_MIMEINFOFILES+=( ${f} )
        done < <(cd "${D}" && find 'usr/share/mime' -type f -print0 2>/dev/null)
 
-       export XDG_ECLASS_DESKTOPFILES XDG_ECLASS_MIMEINFOFILES
+       export XDG_ECLASS_DESKTOPFILES XDG_ECLASS_ICONFILES 
XDG_ECLASS_MIMEINFOFILES
 }
 
 # @FUNCTION: xdg_pkg_postinst
 # @DESCRIPTION:
-# Handle desktop and mime info database updates.
+# Handle desktop, icon and mime info database updates.
 xdg_pkg_postinst() {
        if [[ ${#XDG_ECLASS_DESKTOPFILES[@]} -gt 0 ]]; then
                xdg_desktop_database_update
@@ -68,6 +73,12 @@ xdg_pkg_postinst() {
                debug-print "No .desktop files to add to database"
        fi
 
+       if [[ ${#XDG_ECLASS_ICONFILES[@]} -gt 0 ]]; then
+               xdg_icon_cache_update
+       else
+               debug-print "No icon files to add to cache"
+       fi
+
        if [[ ${#XDG_ECLASS_MIMEINFOFILES[@]} -gt 0 ]]; then
                xdg_mimeinfo_database_update
        else
@@ -77,7 +88,7 @@ xdg_pkg_postinst() {
 
 # @FUNCTION: xdg_pkg_postrm
 # @DESCRIPTION:
-# Handle desktop and mime info database updates.
+# Handle desktop, icon and mime info database updates.
 xdg_pkg_postrm() {
        if [[ ${#XDG_ECLASS_DESKTOPFILES[@]} -gt 0 ]]; then
                xdg_desktop_database_update
@@ -85,6 +96,12 @@ xdg_pkg_postrm() {
                debug-print "No .desktop files to add to database"
        fi
 
+       if [[ ${#XDG_ECLASS_ICONFILES[@]} -gt 0 ]]; then
+               xdg_icon_cache_update
+       else
+               debug-print "No icon files to add to cache"
+       fi
+
        if [[ ${#XDG_ECLASS_MIMEINFOFILES[@]} -gt 0 ]]; then
                xdg_mimeinfo_database_update
        else
-- 
2.17.1


Reply via email to