Hi all, For EAPI 6+ java-pkg-opt-2_src_prepare() has eapply_user call via java-utils-2_src_prepare() from java-utils-2.eclass. But java-utils-2_src_prepare() call is conditional and in case when package is build with USE=-java java-utils-2_src_prepare() is not called, hence eapply_user is not called in src_prepare phase and ebuild fails.
The following patch fixes this by calling eapply_user if java USE is disabled _and_ EAPI is 6+. [pedantic mode on] Strictly speaking when EAPI is other than [0-5]. The way java-* eclasses are now, they assume ![0-5] == 6+. It may be speculated that this is not entirely correct and many other eclasses explicitly deny all unknown EAPIs. If someone is interesting in fixing this issue, please handle it with the java team and do not mix it into the problem described at the beginning. My goal now is to fix eapply_user issue which cases trouble for any EAPI 6 packages with optional java support and default src_prepare() at the ebuild scope. [pedantic mode off] Best regards, Andrew Savchenko
diff --git a/eclass/java-pkg-opt-2.eclass b/eclass/java-pkg-opt-2.eclass index 16c9f8f..c0b05f9 100644 --- a/eclass/java-pkg-opt-2.eclass +++ b/eclass/java-pkg-opt-2.eclass @@ -43,7 +43,11 @@ java-pkg-opt-2_pkg_setup() { # default src_prepare, wrapper for java-utils-2_src_prepare java-pkg-opt-2_src_prepare() { - use ${JAVA_PKG_OPT_USE} && java-utils-2_src_prepare + use ${JAVA_PKG_OPT_USE} && java-utils-2_src_prepare + case "${EAPI:-0}" in + [0-5]) ;; + *) use ${JAVA_PKG_OPT_USE} || eapply_user ;; + esac }
pgpBNKAGqg2e6.pgp
Description: PGP signature