commit:     8431f0faa8b4140d32d9ddbc9346ec9d1d383ae9
Author:     Volkmar W. Pogatzki <gentoo <AT> pogatzki <DOT> net>
AuthorDate: Mon Sep 19 10:57:34 2022 +0000
Commit:     Florian Schmaus <flow <AT> gentoo <DOT> org>
CommitDate: Thu Nov 10 09:26:30 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8431f0fa

dev-java/byte-buddy: add 1.12.18

Signed-off-by: Volkmar W. Pogatzki <gentoo <AT> pogatzki.net>
Closes: https://github.com/gentoo/gentoo/pull/27371
Signed-off-by: Florian Schmaus <flow <AT> gentoo.org>

 dev-java/byte-buddy/Manifest                       |   1 +
 dev-java/byte-buddy/byte-buddy-1.12.18.ebuild      | 175 +++++++++++++++++++++
 .../files/byte-buddy-1.12.18-not-java20.patch      |  52 ++++++
 3 files changed, 228 insertions(+)

diff --git a/dev-java/byte-buddy/Manifest b/dev-java/byte-buddy/Manifest
index 207b8020b0ca..42657532e069 100644
--- a/dev-java/byte-buddy/Manifest
+++ b/dev-java/byte-buddy/Manifest
@@ -1 +1,2 @@
 DIST byte-buddy-1.12.14.tar.gz 1857258 BLAKE2B 
6957246f6689d1bdfdc6277ad752e03df0ae47c62b0afded77c94cdd41e00cc736517d0e4e5d5f8c59be519262a03864cde9bffa4ae53e5a7daeed84a519967f
 SHA512 
5035be16fbdf2f7e8e2c93b87ee5f9adc927a19fd3b7d9fcd262906d8d21532cef8111084c3d6d0b75e101df0bfee19bf9177bc6a7d4b18cf0f26146fba4f147
+DIST byte-buddy-1.12.18.tar.gz 1924438 BLAKE2B 
278ac97d60e62c7d44142a01da94113b29b483bff532f08fca7e345f383a4ddf83cb8c4d0544bce1879bb26909d048a76562cd816c4e9cb06695127ed849f08c
 SHA512 
637e041f97981b85cd13ffecb0de47206b5c99d8b98561561414d8a599f5d53a6e047ba3ad9bc88ca030125221df3ebe49d6eff18a4093f4027d8cbf34a483b0

diff --git a/dev-java/byte-buddy/byte-buddy-1.12.18.ebuild 
b/dev-java/byte-buddy/byte-buddy-1.12.18.ebuild
new file mode 100644
index 000000000000..847b00aff70c
--- /dev/null
+++ b/dev-java/byte-buddy/byte-buddy-1.12.18.ebuild
@@ -0,0 +1,175 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+# Skeleton command:
+# java-ebuilder --generate-ebuild --workdir . --pom pom.xml --download-uri 
https://github.com/raphw/byte-buddy/archive/byte-buddy-1.12.18.tar.gz --slot 0 
--keywords "~amd64 ~arm ~arm64 ~ppc64 ~x86" --ebuild byte-buddy-1.12.18.ebuild
+
+EAPI=8
+
+JAVA_PKG_IUSE="doc source test"
+MAVEN_ID="net.bytebuddy:byte-buddy-agent:1.12.18"
+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";
+
+LICENSE="Apache-2.0"
+SLOT="0"
+KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
+
+DEPEND="
+       >=virtual/jdk-11:*
+       dev-java/asm:9
+       dev-java/findbugs-annotations:0
+       dev-java/jna:4
+       dev-java/jsr305:0
+       test? (
+               dev-java/mockito:4
+       )
+"
+
+RDEPEND=">=virtual/jre-1.8:*"
+
+PATCHES=(
+       "${FILESDIR}/byte-buddy-1.12.18-not-java20.patch"
+)
+
+S="${WORKDIR}/byte-buddy-${P}"
+
+JAVA_CLASSPATH_EXTRA="
+       asm-9
+       findbugs-annotations
+       jsr305
+       jna-4
+"
+
+src_prepare() {
+       default
+       # 
https://github.com/raphw/byte-buddy/blob/byte-buddy-1.12.18/byte-buddy-agent/pom.xml#L142-L176
+       cat > byte-buddy-agent/src/main/java/module-info.java <<-EOF || die
+               module net.bytebuddy.agent {
+                       requires java.instrument;
+                       requires static jdk.attach;
+                       requires static com.sun.jna;
+                       requires static com.sun.jna.platform;
+                       requires java.base;
+                       exports net.bytebuddy.agent;
+                       exports net.bytebuddy.agent.utility.nullability;
+               }
+       EOF
+
+       # adjustment for recent mockito versions
+       sed \
+               -e 's:verifyZeroInteractions:verifyNoInteractions:g' \
+               -i byte-buddy-dep/src/test/java/net/bytebuddy/*.java \
+               -i byte-buddy-dep/src/test/java/net/bytebuddy/*/*Test.java \
+               -i byte-buddy-dep/src/test/java/net/bytebuddy/*/*/*Test.java \
+               -i byte-buddy-dep/src/test/java/net/bytebuddy/*/*/*/*Test.java \
+               -i 
byte-buddy-dep/src/test/java/net/bytebuddy/*/*/*/*/*Test.java \
+               || die
+
+       # instead of shading byte-buddy-dep we move it into byte-buddy.
+       mv byte-buddy{-dep,}/src/main/java || die "cannot move sources"
+
+       # 
https://github.com/raphw/byte-buddy/blob/byte-buddy-1.12.18/byte-buddy/pom.xml#L159-L195
+       local exports="$( \
+               sed -n 
'/<packages.list.external>/,/<\/packages.list.external/p' \
+               byte-buddy/pom.xml \
+               | sed -e 's:^:exports :' -e 's:,:;:' \
+               | grep -v 'packages.list.external\|shade' | tr -s '[:space:]' \
+               )" || die
+       cat > byte-buddy/src/main/java/module-info.java <<-EOF || die
+               module net.bytebuddy {
+                       requires static java.instrument;
+                       requires static java.management;
+                       requires static jdk.unsupported;
+                       requires static net.bytebuddy.agent;
+                       requires static com.sun.jna;
+                       requires static com.sun.jna.platform;
+                       requires java.base;
+                       ${exports}
+               }
+       EOF
+}
+
+src_compile() {
+       einfo "Compiling byte-buddy-agent.jar"
+       JAVA_JAR_FILENAME="byte-buddy-agent.jar"
+       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_JAR_FILENAME="byte-buddy.jar"
+       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
+
+       if use doc; then
+               einfo "Compiling javadocs"
+               rm byte-buddy-agent/src/main/java/module-info.java || die
+               JAVA_SRC_DIR=(
+                       "byte-buddy-agent/src/main/java"
+                       "byte-buddy/src/main/java"
+               )
+               JAVA_JAR_FILENAME="ignoreme.jar"
+               java-pkg-simple_src_compile
+       fi
+}
+
+src_test() {
+       # instead of shading byte-buddy-dep we move it into byte-buddy.
+       mv byte-buddy{-dep,}/src/test || die "cannot move tests"
+
+       # @Ignore one of 4 tests, https://bugs.gentoo.org/863386
+       sed \
+               -e '/import org.junit.Test/a import org.junit.Ignore;' \
+               -e '/testIgnoreExistingField()/i @Ignore' \
+               -i 
byte-buddy/src/test/java/net/bytebuddy/build/CachedReturnPluginOtherTest.java 
|| die
+
+       # @Ignore one of 39 tests, https://bugs.gentoo.org/863386
+       sed \
+               -e '/import org.junit.Test/a import org.junit.Ignore;' \
+               -e '/testNoParameterNameAndModifiers()/i @Ignore' \
+               -i 
byte-buddy/src/test/java/net/bytebuddy/description/method/AbstractMethodDescriptionTest.java
 || die
+
+       JAVA_TEST_GENTOO_CLASSPATH="junit-4,mockito-4"
+
+       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-4/" )
+       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_dojar "byte-buddy.jar"
+
+       if use doc; then
+               java-pkg_dojavadoc target/api
+       fi
+
+       if use source; then
+               java-pkg_dosrc "byte-buddy-agent/src/main/java/*"
+               java-pkg_dosrc "byte-buddy/src/main/java/*"
+       fi
+}

diff --git a/dev-java/byte-buddy/files/byte-buddy-1.12.18-not-java20.patch 
b/dev-java/byte-buddy/files/byte-buddy-1.12.18-not-java20.patch
new file mode 100644
index 000000000000..73b9bccdab3e
--- /dev/null
+++ b/dev-java/byte-buddy/files/byte-buddy-1.12.18-not-java20.patch
@@ -0,0 +1,52 @@
+# We don't have JAVA_V20
+--- a/byte-buddy-dep/src/main/java/net/bytebuddy/ClassFileVersion.java
++++ b/byte-buddy-dep/src/main/java/net/bytebuddy/ClassFileVersion.java
+@@ -140,11 +140,6 @@ public class ClassFileVersion implements 
Comparable<ClassFileVersion>, Serializa
+      */
+     public static final ClassFileVersion JAVA_V19 = new 
ClassFileVersion(Opcodes.V19);
+ 
+-    /**
+-     * The class file version of Java 20.
+-     */
+-    public static final ClassFileVersion JAVA_V20 = new 
ClassFileVersion(Opcodes.V20);
+-
+     /**
+      * A version locator for the executing JVM.
+      */
+@@ -235,8 +230,6 @@ public class ClassFileVersion implements 
Comparable<ClassFileVersion>, Serializa
+             return JAVA_V18;
+         } else if (javaVersionString.equals("1.19") || 
javaVersionString.equals("19")) {
+             return JAVA_V19;
+-        } else if (javaVersionString.equals("1.20") || 
javaVersionString.equals("20")) {
+-            return JAVA_V20;
+         } else {
+             if (OpenedClassReader.EXPERIMENTAL) {
+                 try {
+@@ -300,8 +293,6 @@ public class ClassFileVersion implements 
Comparable<ClassFileVersion>, Serializa
+                 return JAVA_V18;
+             case 19:
+                 return JAVA_V19;
+-            case 20:
+-                return JAVA_V20;
+             default:
+                 if (OpenedClassReader.EXPERIMENTAL && javaVersion > 0) {
+                     return new ClassFileVersion(BASE_VERSION + javaVersion);
+@@ -317,7 +308,7 @@ public class ClassFileVersion implements 
Comparable<ClassFileVersion>, Serializa
+      * @return The latest officially supported Java version.
+      */
+     public static ClassFileVersion latest() {
+-        return ClassFileVersion.JAVA_V20;
++        return ClassFileVersion.JAVA_V19;
+     }
+ 
+     /**
+--- 
a/byte-buddy-dep/src/test/java/net/bytebuddy/ClassFileVersionKnownVersionsTest.java
++++ 
b/byte-buddy-dep/src/test/java/net/bytebuddy/ClassFileVersionKnownVersionsTest.java
+@@ -77,7 +77,6 @@ public class ClassFileVersionKnownVersionsTest {
+                 {17, 17, Arrays.asList("1.17", "17"), Opcodes.V17, (short) 
61, (short) 0, true, true, true},
+                 {18, 18, Arrays.asList("1.18", "18"), Opcodes.V18, (short) 
62, (short) 0, true, true, true},
+                 {19, 19, Arrays.asList("1.19", "19"), Opcodes.V19, (short) 
63, (short) 0, true, true, true},
+-                {20, 20, Arrays.asList("1.20", "20"), Opcodes.V20, (short) 
64, (short) 0, true, true, true}
+         });
+     }
+ 

Reply via email to