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