[gentoo-dev] [PATCH] gnome2.eclass: Add EAPI=7 support

2020-12-06 Thread Matt Turner
Closes: https://bugs.gentoo.org/658638
Closes: https://bugs.gentoo.org/717100
Signed-off-by: Matt Turner 
---
leio noted that banning GNOME2_LA_PUNT from EAPI 7 would mean adding

src_install() { gnome2_src_install }

to a bunch of ebuilds, which we don't want to do. Implement
GNOME2_LA_PUNT with find ... -delete in EAPI 7.

 eclass/gnome2.eclass | 29 ++---
 1 file changed, 18 insertions(+), 11 deletions(-)

diff --git a/eclass/gnome2.eclass b/eclass/gnome2.eclass
index 341802f8c80..27ea9f96c0d 100644
--- a/eclass/gnome2.eclass
+++ b/eclass/gnome2.eclass
@@ -4,7 +4,7 @@
 # @ECLASS: gnome2.eclass
 # @MAINTAINER:
 # gn...@gentoo.org
-# @SUPPORTED_EAPIS: 5 6
+# @SUPPORTED_EAPIS: 5 6 7
 # @BLURB: Provides phases for Gnome/Gtk+ based packages.
 # @DESCRIPTION:
 # Exports portage base functions used by ebuilds written for packages using the
@@ -17,13 +17,14 @@
 GNOME2_EAUTORECONF=${GNOME2_EAUTORECONF:-""}
 
 [[ ${GNOME2_EAUTORECONF} == 'yes' ]] && inherit autotools
-inherit eutils libtool ltprune gnome.org gnome2-utils xdg
+[[ ${EAPI} == [56] ]] && inherit eutils ltprune
+inherit libtool gnome.org gnome2-utils xdg
 
 case ${EAPI:-0} in
5)
EXPORT_FUNCTIONS src_unpack src_prepare src_configure 
src_compile src_install pkg_preinst pkg_postinst pkg_postrm
;;
-   6)
+   6|7)
EXPORT_FUNCTIONS src_prepare src_configure src_compile 
src_install pkg_preinst pkg_postinst pkg_postrm
;;
*) die "EAPI=${EAPI} is not supported" ;;
@@ -70,8 +71,8 @@ fi
 
 # @ECLASS-VARIABLE: GNOME2_LA_PUNT
 # @DESCRIPTION:
-# It relies on prune_libtool_files (from ltprune.eclass)
-# for this. Available values for GNOME2_LA_PUNT:
+# In EAPIs 5 and 6, it relies on prune_libtool_files (from ltprune.eclass) for
+# this. Later EAPIs use find ... -delete. Available values for GNOME2_LA_PUNT:
 # - "no": will not clean any .la files
 # - "yes": will run prune_libtool_files --modules
 # - If it is not set, it will run prune_libtool_files
@@ -85,7 +86,7 @@ gnome2_src_unpack() {
unpack ${A}
cd "${S}"
else
-   die "gnome2_src_unpack is banned from eapi6"
+   die "gnome2_src_unpack is banned since eapi6"
fi
 }
 
@@ -264,11 +265,17 @@ gnome2_src_install() {
rm -fr "${ED}/usr/share/applications/mimeinfo.cache"
 
# Delete all .la files
-   case "${GNOME2_LA_PUNT}" in
-   yes)prune_libtool_files --modules;;
-   no) ;;
-   *)  prune_libtool_files;;
-   esac
+   if has ${EAPI} 5 6; then
+   case "${GNOME2_LA_PUNT}" in
+   yes)prune_libtool_files --modules;;
+   no) ;;
+   *)  prune_libtool_files;;
+   esac
+   else
+   if [[ ${GNOME2_LA_PUNT} != 'no' ]]; then
+   find "${ED}" -name '*.la' -delete || die
+   fi
+   fi
 }
 
 # @FUNCTION: gnome2_pkg_preinst
-- 
2.26.2




[gentoo-dev] [PATCH] gnome2.eclass: Add EAPI=7 support

2020-12-06 Thread Matt Turner
Closes: https://bugs.gentoo.org/717100
Signed-off-by: Matt Turner 
---
leio noted that the previous patch would potentially change the
installed .la files in EAPI 5 and 6 ebuilds. So just continue using
ltprune in those EAPIs and ban GNOME2_LA_PUNT in EAPI 7.

 eclass/gnome2.eclass | 18 +-
 1 file changed, 13 insertions(+), 5 deletions(-)

diff --git a/eclass/gnome2.eclass b/eclass/gnome2.eclass
index 341802f8c80..546438f289c 100644
--- a/eclass/gnome2.eclass
+++ b/eclass/gnome2.eclass
@@ -4,7 +4,7 @@
 # @ECLASS: gnome2.eclass
 # @MAINTAINER:
 # gn...@gentoo.org
-# @SUPPORTED_EAPIS: 5 6
+# @SUPPORTED_EAPIS: 5 6 7
 # @BLURB: Provides phases for Gnome/Gtk+ based packages.
 # @DESCRIPTION:
 # Exports portage base functions used by ebuilds written for packages using the
@@ -17,13 +17,14 @@
 GNOME2_EAUTORECONF=${GNOME2_EAUTORECONF:-""}
 
 [[ ${GNOME2_EAUTORECONF} == 'yes' ]] && inherit autotools
-inherit eutils libtool ltprune gnome.org gnome2-utils xdg
+[[ ${EAPI} == [56] ]] && inherit eutils ltprune
+inherit libtool gnome.org gnome2-utils xdg
 
 case ${EAPI:-0} in
5)
EXPORT_FUNCTIONS src_unpack src_prepare src_configure 
src_compile src_install pkg_preinst pkg_postinst pkg_postrm
;;
-   6)
+   6|7)
EXPORT_FUNCTIONS src_prepare src_configure src_compile 
src_install pkg_preinst pkg_postinst pkg_postrm
;;
*) die "EAPI=${EAPI} is not supported" ;;
@@ -75,7 +76,14 @@ fi
 # - "no": will not clean any .la files
 # - "yes": will run prune_libtool_files --modules
 # - If it is not set, it will run prune_libtool_files
-GNOME2_LA_PUNT=${GNOME2_LA_PUNT:-""}
+# Banned since eapi7.
+if has ${EAPI} 5 6; then
+   GNOME2_LA_PUNT=${GNOME2_LA_PUNT:-""}
+elif [[ -n $GNOME_LA_PUNT ]]; then
+   die "GNOME2_LA_PUNT is banned since eapi7"
+else
+   GNOME2_LA_PUNT="no"
+fi
 
 # @FUNCTION: gnome2_src_unpack
 # @DESCRIPTION:
@@ -85,7 +93,7 @@ gnome2_src_unpack() {
unpack ${A}
cd "${S}"
else
-   die "gnome2_src_unpack is banned from eapi6"
+   die "gnome2_src_unpack is banned since eapi6"
fi
 }
 
-- 
2.26.2




[gentoo-dev] [PATCH] gnome2.eclass: Add EAPI=7 support

2020-12-06 Thread Matt Turner
Mostly by porting away from ltprune.eclass.

Signed-off-by: Matt Turner 
---
 eclass/gnome2.eclass | 19 +--
 1 file changed, 9 insertions(+), 10 deletions(-)

diff --git a/eclass/gnome2.eclass b/eclass/gnome2.eclass
index 341802f8c80..4d8dc6c08d6 100644
--- a/eclass/gnome2.eclass
+++ b/eclass/gnome2.eclass
@@ -4,7 +4,7 @@
 # @ECLASS: gnome2.eclass
 # @MAINTAINER:
 # gn...@gentoo.org
-# @SUPPORTED_EAPIS: 5 6
+# @SUPPORTED_EAPIS: 5 6 7
 # @BLURB: Provides phases for Gnome/Gtk+ based packages.
 # @DESCRIPTION:
 # Exports portage base functions used by ebuilds written for packages using the
@@ -17,13 +17,14 @@
 GNOME2_EAUTORECONF=${GNOME2_EAUTORECONF:-""}
 
 [[ ${GNOME2_EAUTORECONF} == 'yes' ]] && inherit autotools
-inherit eutils libtool ltprune gnome.org gnome2-utils xdg
+[[ ${EAPI} == [56] ]] && inherit eutils
+inherit libtool gnome.org gnome2-utils xdg
 
 case ${EAPI:-0} in
5)
EXPORT_FUNCTIONS src_unpack src_prepare src_configure 
src_compile src_install pkg_preinst pkg_postinst pkg_postrm
;;
-   6)
+   6|7)
EXPORT_FUNCTIONS src_prepare src_configure src_compile 
src_install pkg_preinst pkg_postinst pkg_postrm
;;
*) die "EAPI=${EAPI} is not supported" ;;
@@ -70,12 +71,11 @@ fi
 
 # @ECLASS-VARIABLE: GNOME2_LA_PUNT
 # @DESCRIPTION:
-# It relies on prune_libtool_files (from ltprune.eclass)
-# for this. Available values for GNOME2_LA_PUNT:
+# Available values for GNOME2_LA_PUNT:
 # - "no": will not clean any .la files
-# - "yes": will run prune_libtool_files --modules
-# - If it is not set, it will run prune_libtool_files
-GNOME2_LA_PUNT=${GNOME2_LA_PUNT:-""}
+# - "yes": will run "find "${ED}" -name '*.la' -delete"
+# - If it is not set, it will prune libtool files
+GNOME2_LA_PUNT=${GNOME2_LA_PUNT:-"yes"}
 
 # @FUNCTION: gnome2_src_unpack
 # @DESCRIPTION:
@@ -265,9 +265,8 @@ gnome2_src_install() {
 
# Delete all .la files
case "${GNOME2_LA_PUNT}" in
-   yes)prune_libtool_files --modules;;
no) ;;
-   *)  prune_libtool_files;;
+   *)  find "${ED}" -name '*.la' -delete || die;;
esac
 }
 
-- 
2.26.2