Note that this removes the export of src_prepare in EPAI 8 as
requested by ionen:

  1. remove src_prepare export in EAPI-8

  While "some" packages need xdg_environment_reset, most don't because
  the eclass is often only inherited to handle icons/.desktop and this
  just needlessly overwrite the src_prepare of other eclasses requiring
  more careful inherit ordering (e.g. inherit xdg cmake).

  I'd prefer it was clear when a package need this by calling
  xdg_environment_reset directly. Unless there is a non-trivial amount
  of packages that need it (e.g. for tests) that I'm not aware of.

Signed-off-by: Florian Schmaus <f...@gentoo.org>
---

Notes:
    - Do not longer export src_prepare in EAPI 8 (as requested by ionen)

 eclass/xdg.eclass | 22 ++++++++++++++++++----
 1 file changed, 18 insertions(+), 4 deletions(-)

diff --git a/eclass/xdg.eclass b/eclass/xdg.eclass
index 219be712e84d..ce2d337bff5c 100644
--- a/eclass/xdg.eclass
+++ b/eclass/xdg.eclass
@@ -1,4 +1,4 @@
-# Copyright 1999-2019 Gentoo Authors
+# Copyright 1999-2021 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 # @ECLASS: xdg.eclass
@@ -6,7 +6,7 @@
 # freedesktop-b...@gentoo.org
 # @AUTHOR:
 # Original author: Gilles Dartiguelongue <e...@gentoo.org>
-# @SUPPORTED_EAPIS: 4 5 6 7
+# @SUPPORTED_EAPIS: 4 5 6 7 8
 # @BLURB: Provides phases for XDG compliant packages.
 # @DESCRIPTION:
 # Utility eclass to update the desktop, icon and shared mime info as laid
@@ -16,22 +16,36 @@ inherit xdg-utils
 
 case "${EAPI:-0}" in
        4|5|6|7)
-               EXPORT_FUNCTIONS src_prepare pkg_preinst pkg_postinst pkg_postrm
+               # src_prepare is only exported in EAPI < 8.
+               EXPORT_FUNCTIONS src_prepare
+               ;&
+       8)
+               EXPORT_FUNCTIONS pkg_preinst pkg_postinst pkg_postrm
                ;;
        *) die "EAPI=${EAPI} is not supported" ;;
 esac
 
 # Avoid dependency loop as both depend on glib-2
 if [[ ${CATEGORY}/${P} != dev-libs/glib-2.* ]] ; then
-DEPEND="
+_XDG_DEPEND="
        dev-util/desktop-file-utils
        x11-misc/shared-mime-info
 "
+
+case "${EAPI}" in
+       4|5|6|7)
+               DEPEND="${_XDG_DEPEND}"
+               ;;
+       *)
+               IDEPEND="${_XDG_DEPEND}"
+               ;;
+esac
 fi
 
 # @FUNCTION: xdg_src_prepare
 # @DESCRIPTION:
 # Prepare sources to work with XDG standards.
+# Note that this function is only exported in EAPIs < 8.
 xdg_src_prepare() {
        xdg_environment_reset
 
-- 
2.31.1


Reply via email to