| 1 |
|
# Copyright 1999-2025 Gentoo Authors
|
|
1 |
# Copyright 1999-2026 Gentoo Authors
|
| 2 |
2 |
# Distributed under the terms of the GNU General Public License v2
|
| 3 |
3 |
|
| 4 |
4 |
EAPI=8
|
| 5 |
5 |
|
| 6 |
|
# No tests, #839681
|
| 7 |
|
JAVA_PKG_IUSE="doc source"
|
| 8 |
|
MAVEN_ID="org.apache.bcel:bcel:6.10.0"
|
|
6 |
JAVA_PKG_IUSE="doc source test"
|
|
7 |
JAVA_TESTING_FRAMEWORKS="junit-jupiter"
|
| 9 |
8 |
|
| 10 |
|
inherit java-pkg-2 java-pkg-simple verify-sig
|
|
9 |
inherit java-pkg-2 java-pkg-simple junit5 verify-sig
|
|
10 |
|
|
11 |
CLV="2.6" # commons-lang:2.6 was removed some time ago
|
|
12 |
KSLV="2.2.20" # kotlin-stdlib is presently not packaged
|
| 11 |
13 |
|
| 12 |
14 |
DESCRIPTION="Apache Commons Bytecode Engineering Library"
|
| 13 |
15 |
HOMEPAGE="https://commons.apache.org/proper/commons-bcel/"
|
| 14 |
|
SRC_URI="https://downloads.apache.org/commons/bcel/source/${P}-src.tar.gz
|
| 15 |
|
verify-sig? ( https://downloads.apache.org/commons/bcel/source/${P}-src.tar.gz.asc )"
|
|
16 |
SRC_URI="mirror://apache/commons/bcel/source/${P}-src.tar.gz
|
|
17 |
verify-sig? ( mirror://apache/commons/bcel/source/${P}-src.tar.gz.asc )
|
|
18 |
test? (
|
|
19 |
https://repo1.maven.org/maven2/commons-lang/commons-lang/${CLV}/commons-lang-${CLV}.jar
|
|
20 |
https://repo1.maven.org/maven2/org/jetbrains/kotlin/kotlin-stdlib/${KSLV}/kotlin-stdlib-${KSLV}.jar
|
|
21 |
)
|
|
22 |
"
|
| 16 |
23 |
S="${WORKDIR}/${P}-src"
|
| 17 |
24 |
|
| 18 |
25 |
LICENSE="Apache-2.0"
|
| 19 |
26 |
SLOT="0"
|
| 20 |
27 |
KEYWORDS="amd64 arm64 ppc64 ~x64-macos ~x64-solaris"
|
| 21 |
28 |
|
| 22 |
|
VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/commons.apache.org.asc"
|
| 23 |
|
BDEPEND="verify-sig? ( sec-keys/openpgp-keys-apache-commons )"
|
| 24 |
|
CP_DEPEND=">=dev-java/commons-lang-3.17.0:3.6"
|
| 25 |
|
DEPEND="${CP_DEPEND}
|
| 26 |
|
>=virtual/jdk-11:*"
|
| 27 |
|
RDEPEND="${CP_DEPEND}
|
| 28 |
|
>=virtual/jre-1.8:*"
|
|
29 |
BDEPEND="verify-sig? ( >=sec-keys/openpgp-keys-apache-commons-20251102 )"
|
|
30 |
CP_DEPEND="
|
|
31 |
>=dev-java/commons-io-2.21.0:0
|
|
32 |
>=dev-java/commons-lang-3.20.0:0
|
|
33 |
"
|
|
34 |
DEPEND="
|
|
35 |
${CP_DEPEND}
|
|
36 |
|| ( virtual/jdk:26 virtual/jdk:25 virtual/jdk:21 virtual/jdk:17 virtual/jdk:11 )
|
|
37 |
test? (
|
|
38 |
>=dev-java/asm-9.9.1:0
|
|
39 |
>=dev-java/byte-buddy-1.18.2:0
|
|
40 |
>=dev-java/commons-collections-4.5.0:4
|
|
41 |
>=dev-java/commons-exec-1.6.0:0
|
|
42 |
dev-java/eclipse-ecj:4.20
|
|
43 |
>=dev-java/jmh-core-1.37:0
|
|
44 |
>=dev-java/jna-5.18.1:0
|
|
45 |
>=dev-java/jsr305-3.0.2-r1:0
|
|
46 |
dev-java/junit:5[-vintage]
|
|
47 |
>=dev-java/mockito-5.21.0:0
|
|
48 |
>=dev-java/opentest4j-1.3.0-r1:0
|
|
49 |
>=dev-java/wsdl4j-1.6.3:0
|
|
50 |
)
|
|
51 |
"
|
|
52 |
RDEPEND="
|
|
53 |
${CP_DEPEND}
|
|
54 |
>=virtual/jre-1.8:*
|
|
55 |
"
|
| 29 |
56 |
|
| 30 |
57 |
DOCS=( NOTICE.txt RELEASE-NOTES.txt )
|
| 31 |
58 |
|
|
59 |
JAVA_GENTOO_CLASSPATH_EXTRA=":${DISTDIR}/commons-lang-${CLV}.jar"
|
|
60 |
JAVA_GENTOO_CLASSPATH_EXTRA+=":${DISTDIR}/kotlin-stdlib-${KSLV}.jar"
|
|
61 |
JAVA_INTERMEDIATE_JAR_NAME="org.apache.${PN/-/.}"
|
|
62 |
JAVA_MODULE_INFO_OUT="src/main"
|
| 32 |
63 |
JAVA_SRC_DIR="src/main/java"
|
|
64 |
# These 9 test-classes, if we run them, would result in 26 test failures from a total of 178 tests.
|
|
65 |
JAVA_TEST_EXCLUDES=(
|
|
66 |
org.apache.bcel.classfile.ConstantPoolModuleAccessTest
|
|
67 |
org.apache.bcel.classfile.ConstantPoolModuleToStringTest
|
|
68 |
org.apache.bcel.classfile.ConstantPoolTest
|
|
69 |
org.apache.bcel.CounterVisitorTest
|
|
70 |
org.apache.bcel.generic.EmptyVisitorTest
|
|
71 |
org.apache.bcel.generic.MethodGenTest
|
|
72 |
org.apache.bcel.LocalVariableTypeTableTest
|
|
73 |
org.apache.bcel.PLSETest
|
|
74 |
org.apache.bcel.verifier.VerifierMainTest
|
|
75 |
)
|
|
76 |
JAVA_TEST_GENTOO_CLASSPATH="asm byte-buddy commons-collections-4 commons-exec
|
|
77 |
commons-io eclipse-ecj-4.20 jmh-core jna jsr305 junit-5 mockito opentest4j"
|
|
78 |
JAVA_TEST_RESOURCE_DIRS=( src/test/resources src/test/java )
|
|
79 |
JAVA_TEST_SRC_DIR="src/test/java"
|
|
80 |
VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/commons.apache.org.asc"
|
|
81 |
|
|
82 |
src_unpack() {
|
|
83 |
use verify-sig && verify-sig_verify_detached "${DISTDIR}"/${P}-src.tar.gz{,.asc}
|
|
84 |
default
|
|
85 |
}
|
| 33 |
86 |
|
| 34 |
|
src_compile() {
|
| 35 |
|
JAVA_JAR_FILENAME="org.apache.${PN}.jar"
|
| 36 |
|
java-pkg-simple_src_compile # creates a legacy jar file without module-info
|
| 37 |
|
|
| 38 |
|
jdeps \
|
| 39 |
|
--module-path "$(java-pkg_getjars commons-lang-3.6)" \
|
| 40 |
|
--add-modules org.apache.commons.lang \
|
| 41 |
|
--generate-module-info \
|
| 42 |
|
src/main/java \
|
| 43 |
|
--multi-release 9 \
|
| 44 |
|
"${JAVA_JAR_FILENAME}" || die
|
|
87 |
src_prepare() {
|
|
88 |
java-pkg-2_src_prepare
|
| 45 |
89 |
|
| 46 |
|
JAVA_JAR_FILENAME="${PN}.jar"
|
| 47 |
|
java-pkg-simple_src_compile # creates the final jar file including module-info
|
|
90 |
# src/test/java/org/apache/bcel/util/BCELifierTest.java:255: error: cannot find symbol
|
|
91 |
# @DisabledForJreRange(min = JRE.JAVA_25)
|
|
92 |
# ^
|
|
93 |
# symbol: variable JAVA_25
|
|
94 |
# location: class JRE
|
|
95 |
rm src/test/java/org/apache/bcel/util/BCELifierTest.java || die "remove test"
|
|
96 |
|
|
97 |
# Error: Modules wsdl4j and java.xml export package javax.xml.namespace to module org.mockito
|
|
98 |
rm src/test/java/org/apache/bcel/verifier/VerifierTest.java || die
|
|
99 |
|
|
100 |
# These 2 test classes would pass, but then fail verification:
|
|
101 |
# * Verifying test classes' dependencies
|
|
102 |
# Exception in thread "main" com.sun.tools.jdeps.Dependencies$ClassFileError: Bad magic number
|
|
103 |
# Caused by: java.lang.IllegalArgumentException: Bad magic number
|
|
104 |
rm src/test/java/org/apache/bcel/verifier/VerifierArrayAccessTest.java || die
|
|
105 |
rm src/test/java/org/apache/bcel/verifier/VerifierReturnTest.java || die
|
| 48 |
106 |
}
|