When emerging a java package with JAVA_PKG_STRICT enabled, there are
messages telling the user to install java-dep-check and javatoolkit for
running further checks:

  "Install dev-java/java-dep-check for dependency checking"

  "Unable to perform class version checks as"
  "class-version-verify.py is unavailable"
  "Please install dev-java/javatoolkit."

This commit adds both java-dep-check and javatoolkit to BDEPEND.

To avoid circular dependencies with java-dep-check, it also adds a new
eclass variable JAVA_DISABLE_JAVA_DEP_CHECK to be put pre-inherit to
dependencies of java-dep-check.

Closes: https://bugs.gentoo.org/831341
Signed-off-by: Volkmar W. Pogatzki <gen...@pogatzki.net>
---
 eclass/java-utils-2.eclass | 19 ++++++++++++++++++-
 1 file changed, 18 insertions(+), 1 deletion(-)

diff --git a/eclass/java-utils-2.eclass b/eclass/java-utils-2.eclass
index e2af63819839..fbbf5a0b48cd 100644
--- a/eclass/java-utils-2.eclass
+++ b/eclass/java-utils-2.eclass
@@ -1,4 +1,4 @@
-# Copyright 2004-2024 Gentoo Authors
+# Copyright 2004-2025 Gentoo Authors
 # Distributed under the terms of the GNU General Public License v2
 
 # @ECLASS: java-utils-2.eclass
@@ -295,6 +295,13 @@ 
JAVA_PKG_COMPILERS_CONF=${JAVA_PKG_COMPILERS_CONF:="/etc/java-config-2/build/com
 #      )
 # @CODE
 
+# @ECLASS_VARIABLE: JAVA_DISABLE_JAVA_DEP_CHECK
+# @PRE_INHERIT
+# @DEFAULT_UNSET
+# @DESCRIPTION:
+# Helper variable to be used in packages which would otherwise have circular
+# dependencies with dev-java/java-dep-check once this is forced to BDEPEND.
+
 # @FUNCTION: java-pkg_doexamples
 # @USAGE: [--subdir <subdir>] <file1/dir1> [<file2> ...]
 # @DESCRIPTION:
@@ -2996,6 +3003,16 @@ is-java-strict() {
        return $?
 }
 
+# Avoid having to emerge them separately every time
+if is-java-strict; then
+       # Needed for java-pkg_verify-classes
+       BDEPEND="${BDEPEND} dev-java/javatoolkit"
+       if [[ -z "${JAVA_DISABLE_JAVA_DEP_CHECK}" ]]; then
+               # Needed for java-utils-2_pkg_preinst
+               BDEPEND="${BDEPEND} dev-java/java-dep-check:0" || die
+       fi
+fi
+
 # @FUNCTION: java-pkg_clean
 # @DESCRIPTION:
 # Java package cleaner function. This will remove all *.class and *.jar
-- 
2.41.0


Reply via email to