W dniu śro, 20.06.2018 o godzinie 02∶10 -0500, użytkownik Marty E. Plummer napisał: > Kept some dummy stub functions in place in order to maintain > functionality of existing ebuilds, along with a QA warning to migrate > from one eclass to the other. > --- > eclass/gnome2-utils.eclass | 73 ++++++---------------------------- > eclass/xdg-utils.eclass | 80 ++++++++++++++++++++++++++++++++++++++ > 2 files changed, 91 insertions(+), 62 deletions(-) > > diff --git a/eclass/gnome2-utils.eclass b/eclass/gnome2-utils.eclass > index 14fb9e7420c..a355f0f4f13 100644 > --- a/eclass/gnome2-utils.eclass > +++ b/eclass/gnome2-utils.eclass > @@ -40,12 +40,6 @@ esac > # Path to scrollkeeper-update > : ${SCROLLKEEPER_UPDATE_BIN:="/usr/bin/scrollkeeper-update"} > > -# @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: GLIB_COMPILE_SCHEMAS > # @INTERNAL > # @DESCRIPTION: > @@ -203,68 +197,23 @@ gnome2_gconf_uninstall() { > > # @FUNCTION: gnome2_icon_savelist > # @DESCRIPTION: > -# Find the icons that are about to be installed and save their location > -# in the GNOME2_ECLASS_ICONS environment variable. This is only > -# necessary for eclass implementations that call > -# gnome2_icon_cache_update conditionally. > -# This function should be called from pkg_preinst. > +# Deprecated. Use xdg_icon_savelist from xdg-utils.eclass instead. > gnome2_icon_savelist() { > - has ${EAPI:-0} 0 1 2 && ! use prefix && ED="${D}" > - pushd "${ED}" > /dev/null || die > - export GNOME2_ECLASS_ICONS=$(find 'usr/share/icons' -maxdepth 1 > -mindepth 1 -type d 2> /dev/null) > - popd > /dev/null || die > + eqawarn "QA warning: gnome2_icon_savelist has been moved to > xdg-utils.eclass" > + eqawarn "and is now called xdg_icon_savelist. Please migrate your > ebuild and" > + eqawarn "eclasses to use it" > + xdg_icon_savelist > + GNOME2_ECLASS_ICONS="${XDG_ECLASS_ICONS}" > } > > # @FUNCTION: gnome2_icon_cache_update > # @DESCRIPTION: > -# Updates Gtk+ icon cache files under /usr/share/icons. > -# This function should be called from pkg_postinst and pkg_postrm. > +# Deprecated. Use xdg_icon_cache_update from xdg-utils.eclass instead. > gnome2_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 > + eqawarn "QA warning: gnome2_icon_cache_update has been moved to > xdg-utils.eclass" > + eqawarn "and is now called xdg_icon_cache_update. Please migrate your > ebuild and" > + eqawarn "eclasses to use it" > + xdg_icon_cache_update > } > > # @FUNCTION: gnome2_omf_fix
1. Why not make those two fatal in EAPI 7? 2. I don't think suddenly having a lot of ebuilds eqawarn about this in existing EAPIs is going to be productive. > diff --git a/eclass/xdg-utils.eclass b/eclass/xdg-utils.eclass > index 8dba5ed6861..37e1893a701 100644 > --- a/eclass/xdg-utils.eclass > +++ b/eclass/xdg-utils.eclass > @@ -31,6 +31,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: > @@ -43,6 +49,12 @@ esac > # Directory where .desktop files database is stored > : ${MIMEINFO_DATABASE_DIR:="/usr/share/mime"} > > +# @ECLASS-VARIABLE: XDG_ECLASS_ICONS > +# @INTERNAL > +# @DEFAULT_UNSET > +# @DESCRIPTION: > +# List of icons provided by the package > + > # @FUNCTION: xdg_environment_reset > # @DESCRIPTION: > # Clean up environment for clean builds. > @@ -82,6 +94,74 @@ xdg_desktop_database_update() { > eend $? > } > > +# @FUNCTION: xdg_icon_savelist > +# @DESCRIPTION: > +# Find the icons that are about to be installed and save their location > +# in the XDG_ECLASS_ICONS environment variable. This is only > +# necessary for eclass implementations that call > +# xdg_icon_cache_update conditionally. > +# This function should be called from pkg_preinst. > +xdg_icon_savelist() { > + XDG_ECLASS_ICONS=() > + while IFS= read -r -d '' f; do > + XDG_ECLASS_ICONS+=( ${f} ) > + done < <(cd "${D}" && find 'usr/share/icons' -type f -print0 > 2>/dev/null) > + > + export XDG_ECLASS_ICONS > +} > + > +# @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. -- Best regards, Michał Górny
signature.asc
Description: This is a digitally signed message part