eclass/java-utils-2: Sync with Gentoo

It's from Gentoo commit 0a249fb08e3a498b459e827dd9359509510cf139.
This commit is contained in:
Flatcar Buildbot 2023-02-27 07:23:29 +00:00 committed by Krzesimir Nowak
parent d9b8787c8e
commit a2bafdca65

View File

@ -1,4 +1,4 @@
# Copyright 2004-2022 Gentoo Authors # Copyright 2004-2023 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2 # Distributed under the terms of the GNU General Public License v2
# @ECLASS: java-utils-2.eclass # @ECLASS: java-utils-2.eclass
@ -6,7 +6,7 @@
# java@gentoo.org # java@gentoo.org
# @AUTHOR: # @AUTHOR:
# Thomas Matthijs <axxo@gentoo.org>, Karl Trygve Kalleberg <karltk@gentoo.org> # Thomas Matthijs <axxo@gentoo.org>, Karl Trygve Kalleberg <karltk@gentoo.org>
# @SUPPORTED_EAPIS: 5 6 7 8 # @SUPPORTED_EAPIS: 6 7 8
# @BLURB: Base eclass for Java packages # @BLURB: Base eclass for Java packages
# @DESCRIPTION: # @DESCRIPTION:
# This eclass provides functionality which is used by java-pkg-2.eclass, # This eclass provides functionality which is used by java-pkg-2.eclass,
@ -18,7 +18,7 @@
# Ant-based packages. # Ant-based packages.
case ${EAPI:-0} in case ${EAPI:-0} in
[5678]) ;; [678]) ;;
*) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;; *) die "${ECLASS}: EAPI ${EAPI:-0} not supported" ;;
esac esac
@ -27,7 +27,7 @@ _JAVA_UTILS_2_ECLASS=1
# EAPI 7 has version functions built-in. Use eapi7-ver for all earlier eclasses. # EAPI 7 has version functions built-in. Use eapi7-ver for all earlier eclasses.
# Keep versionator inheritance in case consumers are using it implicitly. # Keep versionator inheritance in case consumers are using it implicitly.
[[ ${EAPI} == [56] ]] && inherit eapi7-ver eutils multilib versionator [[ ${EAPI} == 6 ]] && inherit eapi7-ver eutils multilib versionator
# Make sure we use java-config-2 # Make sure we use java-config-2
export WANT_JAVA_CONFIG="2" export WANT_JAVA_CONFIG="2"
@ -66,6 +66,21 @@ JAVA_PKG_ALLOW_VM_CHANGE=${JAVA_PKG_ALLOW_VM_CHANGE:="yes"}
# JAVA_PKG_FORCE_VM=openjdk-11 emerge foo # JAVA_PKG_FORCE_VM=openjdk-11 emerge foo
# @CODE # @CODE
# @ECLASS_VARIABLE: JAVA_PKG_NO_CLEAN
# @DEFAULT_UNSET
# @DESCRIPTION:
# An array of expressions to match *.class or *.jar files in order to protect
# them against deletion by java-pkg_clean.
#
# @CODE
# JAVA_PKG_NO_CLEAN=(
# "*/standard.jar"
# "*/launch4j.jar"
# "*/apps/jetty/apache-tomcat*"
# "*/lib/jetty*"
# )
# @CODE
# @ECLASS_VARIABLE: JAVA_PKG_WANT_BUILD_VM # @ECLASS_VARIABLE: JAVA_PKG_WANT_BUILD_VM
# @DEFAULT_UNSET # @DEFAULT_UNSET
# @DESCRIPTION: # @DESCRIPTION:
@ -1919,12 +1934,8 @@ etestng() {
# Don't call directly, but via java-pkg-2_src_prepare! # Don't call directly, but via java-pkg-2_src_prepare!
java-utils-2_src_prepare() { java-utils-2_src_prepare() {
case ${EAPI:-0} in case ${EAPI:-0} in
5) [678]) eapply_user ;;
java-pkg_func-exists java_prepare && java_prepare ;; *) default_src_prepare ;;
*)
java-pkg_func-exists java_prepare &&
eqawarn "java_prepare is no longer called, define src_prepare instead."
eapply_user ;;
esac esac
# Check for files in JAVA_RM_FILES array. # Check for files in JAVA_RM_FILES array.
@ -1940,6 +1951,12 @@ java-utils-2_src_prepare() {
find "${WORKDIR}" -name "*.class" find "${WORKDIR}" -name "*.class"
echo "Search done." echo "Search done."
fi fi
# Delete bundled .class and .jar files.
case ${EAPI:-0} in
[678]) ;;
*) java-pkg_clean ;;
esac
} }
# @FUNCTION: java-utils-2_pkg_preinst # @FUNCTION: java-utils-2_pkg_preinst
@ -2926,11 +2943,13 @@ is-java-strict() {
# @FUNCTION: java-pkg_clean # @FUNCTION: java-pkg_clean
# @DESCRIPTION: # @DESCRIPTION:
# Java package cleaner function. This will remove all *.class and *.jar # Java package cleaner function. This will remove all *.class and *.jar
# files, removing any bundled dependencies. # files, except those specified by expressions in JAVA_PKG_NO_CLEAN.
java-pkg_clean() { java-pkg_clean() {
if [[ -z "${JAVA_PKG_NO_CLEAN}" ]]; then NO_DELETE=()
find "${@}" '(' -name '*.class' -o -name '*.jar' ')' -type f -delete -print || die for keep in ${JAVA_PKG_NO_CLEAN[@]}; do
fi NO_DELETE+=( '!' '-path' ${keep} )
done
find "${@}" '(' -name '*.class' -o -name '*.jar' ${NO_DELETE[@]} ')' -type f -delete -print || die
} }
# @FUNCTION: java-pkg_gen-cp # @FUNCTION: java-pkg_gen-cp