Gentoo Archives: gentoo-commits

From: Florian Schmaus <flow@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: dev-java/byte-buddy/
Date: Wed, 14 Sep 2022 09:35:46
Message-Id: 1663148125.fe7800d79e56bc1515472b39841885d8f948ed24.flow@gentoo
1 commit: fe7800d79e56bc1515472b39841885d8f948ed24
2 Author: Volkmar W. Pogatzki <gentoo <AT> pogatzki <DOT> net>
3 AuthorDate: Mon Aug 22 14:22:21 2022 +0000
4 Commit: Florian Schmaus <flow <AT> gentoo <DOT> org>
5 CommitDate: Wed Sep 14 09:35:25 2022 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fe7800d7
7
8 dev-java/byte-buddy: add 1.12.14
9
10 Signed-off-by: Volkmar W. Pogatzki <gentoo <AT> pogatzki.net>
11 Closes: https://github.com/gentoo/gentoo/pull/26965
12 Signed-off-by: Florian Schmaus <flow <AT> gentoo.org>
13
14 dev-java/byte-buddy/Manifest | 1 +
15 dev-java/byte-buddy/byte-buddy-1.12.14.ebuild | 202 ++++++++++++++++++++++++++
16 2 files changed, 203 insertions(+)
17
18 diff --git a/dev-java/byte-buddy/Manifest b/dev-java/byte-buddy/Manifest
19 index 45f80b5633fa..59590e26fdd0 100644
20 --- a/dev-java/byte-buddy/Manifest
21 +++ b/dev-java/byte-buddy/Manifest
22 @@ -1,2 +1,3 @@
23 DIST byte-buddy-1.12.12.tar.gz 149937318 BLAKE2B 1a1bd0de97b47ace4c64649da3ae80dcb421a4d46e9b4f66e121accad94a99a2b81fa9aeaca99ae14cf1ef56feff5248d5700d6b056d490563bbc7ae9f07ace9 SHA512 bd8dc5b86ce456d5a907dd23643233bb001c15df5419aeed177d3b4f8054ab172d13244d0b3fef734e8232dfdd9339745d8112fa69e0be566b62459c198bf67a
24 DIST byte-buddy-1.12.13.tar.gz 1721038 BLAKE2B 60aadbbb3b56e5ac2ecc2bb162653b769f4d4b913bd675457ce2fbf12a5777addc4beb2bb2e347d5956dbf1fbe6a6dfce078a29c53b1f1e2a60585670897d4ee SHA512 88c221d0dccb248683069070e498c5d4320f4fce059c45f460e04fbd86c2c596c18a4c7f4e9b3a0480eaf96d93593d1f1af87d894a7c4b3d73511e88a95f4e92
25 +DIST byte-buddy-1.12.14.tar.gz 1857258 BLAKE2B 6957246f6689d1bdfdc6277ad752e03df0ae47c62b0afded77c94cdd41e00cc736517d0e4e5d5f8c59be519262a03864cde9bffa4ae53e5a7daeed84a519967f SHA512 5035be16fbdf2f7e8e2c93b87ee5f9adc927a19fd3b7d9fcd262906d8d21532cef8111084c3d6d0b75e101df0bfee19bf9177bc6a7d4b18cf0f26146fba4f147
26
27 diff --git a/dev-java/byte-buddy/byte-buddy-1.12.14.ebuild b/dev-java/byte-buddy/byte-buddy-1.12.14.ebuild
28 new file mode 100644
29 index 000000000000..a2dee2c98e3d
30 --- /dev/null
31 +++ b/dev-java/byte-buddy/byte-buddy-1.12.14.ebuild
32 @@ -0,0 +1,202 @@
33 +# Copyright 1999-2022 Gentoo Authors
34 +# Distributed under the terms of the GNU General Public License v2
35 +
36 +# Skeleton command:
37 +# java-ebuilder --generate-ebuild --workdir . --pom pom.xml --download-uri https://github.com/raphw/byte-buddy/archive/byte-buddy-1.12.14.tar.gz --slot 0 --keywords "~amd64 ~arm ~arm64 ~ppc64 ~x86" --ebuild byte-buddy-1.12.14.ebuild
38 +
39 +EAPI=8
40 +
41 +JAVA_PKG_IUSE="doc source test"
42 +MAVEN_ID="net.bytebuddy:byte-buddy-agent:1.12.14"
43 +JAVA_TESTING_FRAMEWORKS="junit-4"
44 +
45 +inherit java-pkg-2 java-pkg-simple
46 +
47 +DESCRIPTION="Offers convenience for attaching an agent to the local or a remote VM"
48 +HOMEPAGE="https://bytebuddy.net"
49 +SRC_URI="https://github.com/raphw/${PN}/archive/${P}.tar.gz"
50 +
51 +LICENSE="Apache-2.0"
52 +SLOT="0"
53 +KEYWORDS="~amd64 ~arm ~arm64 ~ppc64 ~x86"
54 +
55 +DEPEND="
56 + >=virtual/jdk-11:*
57 + dev-java/asm:9
58 + dev-java/findbugs-annotations:0
59 + dev-java/jna:4
60 + dev-java/jsr305:0
61 + test? (
62 + dev-java/mockito:4
63 + )
64 +"
65 +
66 +RDEPEND=">=virtual/jre-1.8:*"
67 +
68 +S="${WORKDIR}/${PN}-${P}"
69 +
70 +JAVA_CLASSPATH_EXTRA="
71 + asm-9
72 + findbugs-annotations
73 + jsr305
74 + jna-4
75 +"
76 +
77 +src_prepare() {
78 + default
79 + # https://github.com/raphw/byte-buddy/blob/byte-buddy-1.12.14/byte-buddy-agent/pom.xml#L132-L166
80 + cat > byte-buddy-agent/src/main/java/module-info.java <<-EOF
81 + module net.bytebuddy.agent {
82 + requires java.instrument;
83 + requires static jdk.attach;
84 + requires static com.sun.jna;
85 + requires static com.sun.jna.platform;
86 + requires java.base;
87 + exports net.bytebuddy.agent;
88 + exports net.bytebuddy.agent.utility.nullability;
89 + }
90 + EOF
91 +
92 + # adjustment for recent mockito versions
93 + sed \
94 + -e 's:verifyZeroInteractions:verifyNoInteractions:g' \
95 + -i byte-buddy-dep/src/test/java/net/bytebuddy/*.java \
96 + -i byte-buddy-dep/src/test/java/net/bytebuddy/*/*Test.java \
97 + -i byte-buddy-dep/src/test/java/net/bytebuddy/*/*/*Test.java \
98 + -i byte-buddy-dep/src/test/java/net/bytebuddy/*/*/*/*Test.java \
99 + -i byte-buddy-dep/src/test/java/net/bytebuddy/*/*/*/*/*Test.java \
100 + || die
101 +
102 + # instead of shading byte-buddy-dep we move it into byte-buddy.
103 + mv byte-buddy{-dep,}/src/main/java || die "cannot move sources"
104 + mv byte-buddy{-dep,}/src/test || die "cannot move tests"
105 +
106 + # https://github.com/raphw/byte-buddy/blob/byte-buddy-1.12.14/byte-buddy/pom.xml#L159-L195
107 + cat > byte-buddy/src/main/java/module-info.java <<-EOF
108 + module net.bytebuddy {
109 + requires static java.instrument;
110 + requires static java.management;
111 + requires static jdk.unsupported;
112 + requires static net.bytebuddy.agent;
113 + requires static com.sun.jna;
114 + requires static com.sun.jna.platform;
115 + requires java.base;
116 + exports net.bytebuddy;
117 + exports net.bytebuddy.agent.builder;
118 + exports net.bytebuddy.asm;
119 + exports net.bytebuddy.build;
120 + exports net.bytebuddy.description;
121 + exports net.bytebuddy.description.annotation;
122 + exports net.bytebuddy.description.enumeration;
123 + exports net.bytebuddy.description.field;
124 + exports net.bytebuddy.description.method;
125 + exports net.bytebuddy.description.modifier;
126 + exports net.bytebuddy.description.type;
127 + exports net.bytebuddy.dynamic;
128 + exports net.bytebuddy.dynamic.loading;
129 + exports net.bytebuddy.dynamic.scaffold;
130 + exports net.bytebuddy.dynamic.scaffold.inline;
131 + exports net.bytebuddy.dynamic.scaffold.subclass;
132 + exports net.bytebuddy.implementation;
133 + exports net.bytebuddy.implementation.attribute;
134 + exports net.bytebuddy.implementation.auxiliary;
135 + exports net.bytebuddy.implementation.bind;
136 + exports net.bytebuddy.implementation.bind.annotation;
137 + exports net.bytebuddy.implementation.bytecode;
138 + exports net.bytebuddy.implementation.bytecode.assign;
139 + exports net.bytebuddy.implementation.bytecode.assign.primitive;
140 + exports net.bytebuddy.implementation.bytecode.assign.reference;
141 + exports net.bytebuddy.implementation.bytecode.collection;
142 + exports net.bytebuddy.implementation.bytecode.constant;
143 + exports net.bytebuddy.implementation.bytecode.member;
144 + exports net.bytebuddy.matcher;
145 + exports net.bytebuddy.pool;
146 + exports net.bytebuddy.utility;
147 + exports net.bytebuddy.utility.nullability;
148 + exports net.bytebuddy.utility.privilege;
149 + exports net.bytebuddy.utility.visitor;
150 + }
151 + EOF
152 + # We don't bundle, hence cannot export them
153 + # exports net.bytebuddy.jar.asm;
154 + # exports net.bytebuddy.jar.asm.signature;
155 + # exports net.bytebuddy.jar.asm.commons;
156 +}
157 +
158 +src_compile() {
159 + einfo "Compiling byte-buddy-agent.jar"
160 + JAVA_SRC_DIR="byte-buddy-agent/src/main/java"
161 + JAVA_RESOURCE_DIRS="byte-buddy-agent/src/main/resources"
162 + JAVA_JAR_FILENAME="byte-buddy-agent.jar"
163 + java-pkg-simple_src_compile
164 + JAVA_GENTOO_CLASSPATH_EXTRA+=":byte-buddy-agent.jar"
165 + rm -r target || die
166 +
167 + einfo "Compiling byte-buddy.jar"
168 + JAVA_SRC_DIR="byte-buddy/src/main/java"
169 + JAVA_RESOURCE_DIRS=()
170 + JAVA_JAR_FILENAME="byte-buddy.jar"
171 + JAVA_MAIN_CLASS="net.bytebuddy.build.Plugin\$Engine\$Default"
172 + java-pkg-simple_src_compile
173 + JAVA_GENTOO_CLASSPATH_EXTRA+=":byte-buddy.jar"
174 + rm -r target || die
175 +
176 + if use doc; then
177 + einfo "Compiling javadocs"
178 + JAVA_SRC_DIR=(
179 + "byte-buddy-agent/src/main/java"
180 + "byte-buddy-dep/src/main/java"
181 + )
182 + JAVA_JAR_FILENAME="ignoreme.jar"
183 + java-pkg-simple_src_compile
184 + fi
185 +}
186 +
187 +src_test() {
188 + JAVA_TEST_GENTOO_CLASSPATH="junit-4,mockito-4"
189 +
190 + # einfo "Setting -Djava.library.path"
191 + # This would work only after manually adding libjnidispatch.so to /usr/share/jna-4/lib/jna.jar,
192 + # done with ( jar -uf /usr/share/jna-4/lib/jna.jar -C . com/sun/jna/linux-x86-64/libjnidispatch )
193 +# JAVA_TEST_EXTRA_ARGS=( -Djava.library.path+="$(java-config -i jna-4)" com.sun.jna.Native )
194 + # Otherwise fails with:
195 + # Exception in thread "main" java.lang.UnsatisfiedLinkError: Native library (com/sun/jna/linux-x86-64/libjnidispatch.so) not found in resource path
196 +
197 + einfo "Testing byte-buddy-agent"
198 + JAVA_TEST_SRC_DIR="byte-buddy-agent/src/test/java"
199 + # Native library (com/sun/jna/linux-x86-64/libjnidispatch.so) not found in resource path
200 + JAVA_TEST_EXCLUDES=(
201 + net.bytebuddy.agent.VirtualMachineAttachmentTest
202 + )
203 + java-pkg-simple_src_test
204 +
205 + einfo "Testing byte-buddy"
206 + JAVA_TEST_SRC_DIR="byte-buddy/src/test/java"
207 + JAVA_TEST_RESOURCE_DIRS=(
208 + byte-buddy/src/test/resources
209 + byte-buddy/src/test/precompiled*
210 + )
211 +
212 + # what "mvn test" does with java 17 is:
213 + # Tests run: 10022, Failures: 0, Errors: 0, Skipped: 0
214 + JAVA_TEST_EXCLUDES+=(
215 + net.bytebuddy.pool.TypePoolDefaultMethodDescriptionTest # 39 tests
216 + net.bytebuddy.build.CachedReturnPluginTest # 44 tests
217 + net.bytebuddy.build.CachedReturnPluginOtherTest # 4 tests
218 + )
219 + java-pkg-simple_src_test
220 +}
221 +
222 +src_install() {
223 + java-pkg_dojar "byte-buddy-agent.jar"
224 + java-pkg_dojar "byte-buddy.jar"
225 +
226 + if use doc; then
227 + java-pkg_dojavadoc target/api
228 + fi
229 +
230 + if use source; then
231 + java-pkg_dosrc "byte-buddy-agent/src/main/java/*"
232 + java-pkg_dosrc "byte-buddy/src/main/java/*"
233 + fi
234 +}