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