Simplifies ebuild by generating module-info with eclass functionality.

Switches to dev-java/jna:0 (from dev-java/jna:4)

Restricted to asm-9 since bytecode 69 starts from Java 25. Also
restricted to presently stable Java versions because with Java 25,
there are still too many test failures.

Closes: https://bugs.gentoo.org/837233
Signed-off-by: Volkmar W. Pogatzki <gen...@pogatzki.net>
---
 dev-java/byte-buddy/Manifest                 |   1 +
 dev-java/byte-buddy/byte-buddy-1.17.2.ebuild | 123 +++++++++++++++++++
 2 files changed, 124 insertions(+)
 create mode 100644 dev-java/byte-buddy/byte-buddy-1.17.2.ebuild

diff --git a/dev-java/byte-buddy/Manifest b/dev-java/byte-buddy/Manifest
index 450d00e8c659..0ea20d1905ec 100644
--- a/dev-java/byte-buddy/Manifest
+++ b/dev-java/byte-buddy/Manifest
@@ -1 +1,2 @@
 DIST byte-buddy-1.15.11.tar.gz 2059994 BLAKE2B 
b5b11de938d2b96518c01cf1bcebb0f34ca6ccdb81e519e0177fa371f438da9ca5aba5749d1a7af0f42a2359c55228f3cbfbfe32f158d4a18fe7f02a5d5bf4f2
 SHA512 
9e663dfee80e6ae9e4983a39177a94f160e52e3ef1dec54b8f6a90e32c18ae5b36c9e791fd605b43754b2667f6efd7e15a1f7b0ce6c5034945567aef8a6b8aa8
+DIST byte-buddy-1.17.2.tar.gz 2084935 BLAKE2B 
b705464bdf1f4b07af21a143729e9098ce398103a0168a4d9146b3fe75671699684f6fdd1203ed48d7dddd5e1c29a2c3b01a6c779c81498a66c30c603c892088
 SHA512 
77f53a6829be905d7abaaef1628ed05425be301b3f8762556f1d37ac358a59f0c3a3422bac8729608d9e1270970a780bdd11eb0518c3a8dda9349b18ab25b464
diff --git a/dev-java/byte-buddy/byte-buddy-1.17.2.ebuild 
b/dev-java/byte-buddy/byte-buddy-1.17.2.ebuild
new file mode 100644
index 000000000000..ee4c9fda7804
--- /dev/null
+++ b/dev-java/byte-buddy/byte-buddy-1.17.2.ebuild
@@ -0,0 +1,123 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+JAVA_PKG_IUSE="doc source test"
+MAVEN_PROVIDES="net.bytebuddy:byte-buddy-agent:${PV} 
net.bytebuddy:byte-buddy:${PV}"
+JAVA_TESTING_FRAMEWORKS="junit-4"
+
+inherit java-pkg-2 java-pkg-simple
+
+DESCRIPTION="Offers convenience for attaching an agent to the local or a 
remote VM"
+HOMEPAGE="https://bytebuddy.net";
+SRC_URI="https://github.com/raphw/byte-buddy/archive/${P}.tar.gz";
+S="${WORKDIR}/byte-buddy-${P}"
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64"
+
+# This version seems not ready for Java 25. It would cause too many test 
failures like:
+# 1) 
testEqualsParameter(net.bytebuddy.pool.TypePoolDefaultMethodDescriptionTest)
+# java.lang.IllegalStateException:
+# Could not invoke proxy: Type not available on current VM: 
codes.rafael.asmjdkbridge.JdkClassReader
+# Also restricting to asm-9 since bytecode 69 starts from Java 25.
+# Otherwise testLatestVersion(net.bytebuddy.ClassFileVersionOtherTest) would 
fail.
+DEPEND="
+       >=dev-java/asm-9.7.1:9
+       dev-java/asm-jdk-bridge:0
+       dev-java/findbugs-annotations:0
+       >=dev-java/jna-5.17.0:0
+       dev-java/jsr305:0
+       || ( virtual/jdk:11 virtual/jdk:17 virtual/jdk:21 )
+       test? (
+               dev-java/asm-jdk-bridge:0
+               >=dev-java/mockito-2.28.2-r1:2
+       )
+"
+
+RDEPEND=">=virtual/jre-1.8:*"
+
+PATCHES=( "${FILESDIR}/byte-buddy-1.15.10-Skip-testIgnoreExistingField.patch" )
+
+JAVA_CLASSPATH_EXTRA="
+       asm-9
+       asm-jdk-bridge
+       findbugs-annotations
+       jna
+       jsr305
+"
+JAVADOC_CLASSPATH="${JAVA_CLASSPATH_EXTRA}"
+JAVADOC_SRC_DIRS=(
+       "byte-buddy-agent/src/main/java"
+       "byte-buddy/src/main/java"
+)
+
+src_prepare() {
+       default #780585
+       java-pkg_clean ! -path "./byte-buddy-dep/src/test/*"    # Keep 
test-classes
+       java-pkg-2_src_prepare
+
+       # instead of shading byte-buddy-dep we move it into byte-buddy.
+       mv byte-buddy{-dep,}/src/main/java || die "cannot move sources"
+}
+
+src_compile() {
+       einfo "Compiling byte-buddy-agent.jar"
+       JAVA_INTERMEDIATE_JAR_NAME="net.bytebuddy.agent"
+       JAVA_JAR_FILENAME="byte-buddy-agent.jar"
+       JAVA_MODULE_INFO_OUT="byte-buddy-agent/src/main"
+       JAVA_RESOURCE_DIRS="byte-buddy-agent/src/main/resources"
+       JAVA_SRC_DIR="byte-buddy-agent/src/main/java"
+       java-pkg-simple_src_compile
+       JAVA_GENTOO_CLASSPATH_EXTRA+=":byte-buddy-agent.jar"
+       rm -r target || die
+
+       einfo "Compiling byte-buddy.jar"
+       JAVA_INTERMEDIATE_JAR_NAME="net.bytebuddy"
+       JAVA_JAR_FILENAME="byte-buddy.jar"
+       JAVA_MODULE_INFO_OUT="byte-buddy/src/main"
+       JAVA_MAIN_CLASS="net.bytebuddy.build.Plugin\$Engine\$Default"
+       JAVA_RESOURCE_DIRS=()
+       JAVA_SRC_DIR="byte-buddy/src/main/java"
+       java-pkg-simple_src_compile
+       JAVA_GENTOO_CLASSPATH_EXTRA+=":byte-buddy.jar"
+       rm -r target || die
+
+       use doc && ejavadoc
+}
+
+src_test() {
+       # instead of shading byte-buddy-dep we move it into byte-buddy.
+       mv byte-buddy{-dep,}/src/test || die "cannot move tests"
+
+       JAVAC_ARGS="-g"
+       JAVA_TEST_GENTOO_CLASSPATH="asm-jdk-bridge,junit-4,mockito-2"
+
+       einfo "Testing byte-buddy-agent"
+       # 
https://github.com/raphw/byte-buddy/issues/1321#issuecomment-1252776459
+       JAVA_TEST_EXTRA_ARGS=( 
-Dnet.bytebuddy.test.jnapath="${EPREFIX}/usr/$(get_libdir)/jna/" )
+       JAVA_TEST_SRC_DIR="byte-buddy-agent/src/test/java"
+       java-pkg-simple_src_test
+
+       einfo "Testing byte-buddy"
+       JAVA_TEST_RESOURCE_DIRS=( byte-buddy/src/test/{resources,precompiled*} )
+       JAVA_TEST_SRC_DIR="byte-buddy/src/test/java"
+
+       JAVA_TEST_EXCLUDES=(
+               # all tests in this class fail, https://bugs.gentoo.org/863386
+               net.bytebuddy.build.CachedReturnPluginTest
+       )
+       java-pkg-simple_src_test
+}
+
+src_install() {
+       java-pkg_dojar "byte-buddy-agent.jar"
+       java-pkg-simple_src_install
+
+       if use source; then
+               java-pkg_dosrc "byte-buddy-agent/src/main/java/*"
+               java-pkg_dosrc "byte-buddy/src/main/java/*"
+       fi
+}
--
2.41.0


Reply via email to