On Sun, 2017-02-19 at 09:26 +0100, Michał Górny wrote:
> W dniu 19.02.2017, nie o godzinie 09∶03 +0100, użytkownik Hans de
> Graaff
> napisał:
> > 
> > This also removes the need for inheriting eutils in EAPI 6.
> > 
> Wouldn't EAPI 6 be a good opportunity to kill this dualism and just
> require people to say FILESDIR explicitly?

Which made me think: why have RUBY_PATCHES at all. I think we added
that at the time to allow bash arrays as input. So I've changed this
patch to use the default phase in EAPI 6 instead, removing the need for
explicit eapply_user and PATCHES support.

Hans

1b2b8abde99a59e72fbcc0bc8f9e835dcaee2176
Author:     Hans de Graaff <gra...@gentoo.org>
AuthorDate: Sun Feb 19 08:42:31 2017 +0100
Commit:     Hans de Graaff <gra...@gentoo.org>
CommitDate: Tue Feb 21 20:18:17 2017 +0100

Parent:     1d36503 ruby-ng.eclass: add support for EAPI=6
Merged:     eapi6 master
Containing: eapi6

ruby-ng.eclass: use the default src_prepare in EAPI 6

This removes the need for inheriting eutils in EAPI 6.  It also use
the standard PATCHES support instead of RUBY_PATCHES, which was
introduced to handle arrays on patches at the time.

The default phase also handles eapply_user to handle user patches.

1 file changed, 30 insertions(+), 13 deletions(-)
eclass/ruby-ng.eclass | 43 ++++++++++++++++++++++++++++++-------------

modified   eclass/ruby-ng.eclass
@@ -73,7 +73,14 @@
 # (e.g. selenium's firefox driver extension). When set this argument
is
 # passed to "grep -E" to remove reporting of these shared objects.
 
-inherit eutils java-utils-2 multilib toolchain-funcs ruby-utils
+local inherits=""
+case ${EAPI} in
+       2|3|4|5)
+               inherits="eutils"
+               ;;
+esac
+
+inherit ${inherits} java-utils-2 multilib toolchain-funcs ruby-utils
 
 EXPORT_FUNCTIONS src_unpack src_prepare src_configure src_compile
src_test src_install pkg_setup
 
@@ -399,15 +406,24 @@ ruby-ng_src_unpack() {
 }
 
 _ruby_apply_patches() {
-       for patch in "${RUBY_PATCHES[@]}"; do
-               if [ -f "${patch}" ]; then
-                       epatch "${patch}"
-               elif [ -f "${FILESDIR}/${patch}" ]; then
-                       epatch "${FILESDIR}/${patch}"
-               else
-                       die "Cannot find patch ${patch}"
-               fi
-       done
+       case ${EAPI} in
+               2|3|4|5)
+                       for patch in "${RUBY_PATCHES[@]}"; do
+                               if [ -f "${patch}" ]; then
+                                       epatch "${patch}"
+                               elif [ -f "${FILESDIR}/${patch}" ];
then
+                                       epatch "${FILESDIR}/${patch}"
+                               else
+                                       die "Cannot find patch
${patch}"
+                               fi
+                       done
+                       ;;
+               6)
+                       if [[ -n ${RUBY_PATCHES[@]} ]]; then
+                          eqawarn "RUBY_PATCHES is no longer
supported, use PATCHES instead"
+                       fi
+                       ;;
+       esac
 
        # This is a special case: instead of executing just in the
special
        # "all" environment, this will actually copy the effects on
_all_
@@ -432,14 +448,15 @@ ruby-ng_src_prepare() {
        # almost every other ebuild.
        find . -name '._*' -delete
 
-       _ruby_invoke_environment all _ruby_apply_patches
-
+       # Handle PATCHES and user supplied patches via the default
phase
        case ${EAPI} in
                6)
-                       eapply_user
+                       _ruby_invoke_environment all default
                        ;;
        esac
 
+       _ruby_invoke_environment all _ruby_apply_patches
+
        _PHASE="source copy" \
                _ruby_each_implementation _ruby_source_copy
 

Attachment: signature.asc
Description: This is a digitally signed message part

Reply via email to