blob: cc49ef094b153bea7eed287b78a24929ac0ec7dd (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
|
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=9
JAVA_PKG_IUSE="doc source test"
JAVA_TESTING_FRAMEWORKS="junit-jupiter"
inherit java-pkg-2 java-pkg-simple junit5 verify-sig
WSV="2.1.8" # webcompere/systemstubs isn't yet packaged.
DESCRIPTION="The Apache Log4j API"
HOMEPAGE="https://logging.apache.org/log4j/2.x/"
SRC_URI="mirror://apache/logging/log4j/${PV}/apache-log4j-${PV}-src.zip
https://repo1.maven.org/maven2/uk/org/webcompere/system-stubs-core/${WSV}/system-stubs-core-${WSV}.jar
https://repo1.maven.org/maven2/uk/org/webcompere/system-stubs-jupiter/${WSV}/system-stubs-jupiter-${WSV}.jar
verify-sig? ( mirror://apache/logging/log4j/${PV}/apache-log4j-${PV}-src.zip.asc )"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="amd64 arm64 ppc64"
BDEPEND="
app-arch/unzip
verify-sig? ( >=sec-keys/openpgp-keys-apache-logging-20251104 )
"
DEPEND="
dev-java/bnd-annotation:0
dev-java/error-prone-annotations:0
dev-java/findbugs-annotations:0
dev-java/jspecify:0
dev-java/osgi-annotation:0
dev-java/osgi-core:0
>=virtual/jdk-11:*
test? (
>=dev-java/asm-9.10.1:0
>=dev-java/assertj-core-3.27.6:0
>=dev-java/byte-buddy-1.18.10:0
>=dev-java/commons-lang-3.20.0-r1:0
>=dev-java/hamcrest-3.0:0
>=dev-java/jackson-annotations-2.20:0
>=dev-java/jackson-core-2.20.0:0
>=dev-java/jackson-databind-2.20.0:0
>=dev-java/jna-5.18.1:0
>=dev-java/jsr305-3.0.2-r1:0
dev-java/junit:5[-vintage]
>=dev-java/junit-pioneer-1.9.1-r1:0
>=dev-java/mockito-5.21.0:0
>=dev-java/opentest4j-1.3.0-r1:0
)
"
RDEPEND=">=virtual/jre-1.8:*"
PATCHES=( "${FILESDIR}"/log4j-api-2.26.0-StatusLoggerLevelTest.patch )
JAVA_CLASSPATH_EXTRA="bnd-annotation error-prone-annotations findbugs-annotations jspecify osgi-annotation osgi-core"
JAVA_GENTOO_CLASSPATH_EXTRA="${DISTDIR}/system-stubs-core-${WSV}.jar"
JAVA_GENTOO_CLASSPATH_EXTRA+=":${DISTDIR}/system-stubs-jupiter-${WSV}.jar"
JAVA_INTERMEDIATE_JAR_NAME="org.apache.logging.log4j"
JAVA_MODULE_INFO_OUT="log4j-api-java9/src/main/java"
JAVA_RELEASE_SRC_DIRS=( ["9"]="log4j-api-java9/src/main/java" )
JAVA_RESOURCE_DIRS="log4j-api/src/main/resources"
JAVA_SRC_DIR="log4j-api/src/main/java"
JAVA_TEST_GENTOO_CLASSPATH="asm assertj-core byte-buddy commons-lang hamcrest jackson-annotations
jackson-core jackson-databind jna jsr305 junit-pioneer junit-5 mockito opentest4j"
JAVA_TEST_RESOURCE_DIRS="log4j-api-test/src/test/resources"
JAVA_TEST_SRC_DIR="log4j-api-test/src/test/java"
VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/logging.apache.org.asc"
src_unpack() {
use verify-sig && verify-sig_verify_detached "${DISTDIR}"/apache-log4j-${PV}-src.zip{,.asc}
default
}
src_prepare() {
java-pkg-2_src_prepare
mkdir -p log4j-api/src/main/resources/META-INF/services || die "mkdir"
echo "org.apache.logging.log4j.util.EnvironmentPropertySource" \
> log4j-api/src/main/resources/META-INF/services/org.apache.logging.log4j.util.PropertySource \
|| die "META-INF/services"
echo "org.apache.logging.log4j.util.SystemPropertiesPropertySource" \
>> log4j-api/src/main/resources/META-INF/services/org.apache.logging.log4j.util.PropertySource \
|| die "META-INF/services"
# test/junit/BundleTestInfo.java:21: error: package org.apache.maven.model does not exist
# test/junit/BundleTestInfo.java:22: error: package org.apache.maven.model.io.xpp3 does not exist
# test/junit/BundleTestInfo.java:23: error: package org.apache.maven.project does not exist
# test/junit/BundleTestInfo.java:24: error: package org.codehaus.plexus.util.xml.pull does not exist
rm log4j-api-test/src/main/java/org/apache/logging/log4j/test/junit/BundleTestInfo.java || die
}
src_compile() {
java-pkg-simple_src_compile
# Remove unneeded classes and repackage according to log4j-api-java9/src/assembly/java9.xml
rm log4j-api.jar || die
rm target/classes/META-INF/versions/9/org/apache/logging/log4j/Dummy.class || die
rm -r target/classes/META-INF/versions/9/org/apache/logging/log4j/{message,simple,spi,status} || die
rm target/classes/META-INF/versions/9/org/apache/logging/log4j/util/EnvironmentPropertySource.class || die
rm target/classes/META-INF/versions/9/org/apache/logging/log4j/util/LoaderUtil.class || die
rm target/classes/META-INF/versions/9/org/apache/logging/log4j/util/PrivateSecurityManagerStackTraceUtil.class || die
rm target/classes/META-INF/versions/9/org/apache/logging/log4j/util/PropertySource.class || die
rm target/classes/META-INF/versions/9/org/apache/logging/log4j/util/SystemPropertiesPropertySource.class || die
rm target/classes/META-INF/versions/9/org/apache/logging/log4j/util/internal/SerializationUtil.class || die
mv target/classes/{META-INF/versions/9/,}module-info.class || die
echo 'Multi-Release: true' >> target/classes/META-INF/MANIFEST.MF || die "add true"
jar cfm log4j-api.jar target/classes/META-INF/MANIFEST.MF -C target/classes . || die
}
src_test() {
JAVA_GENTOO_CLASSPATH_EXTRA+=":tests.jar:log4j-api.jar"
JAVA_JAR_FILENAME="tests.jar"
JAVA_RESOURCE_DIRS="log4j-api-test/src/main/resources"
JAVA_SRC_DIR="log4j-api-test/src/main/java"
java-pkg-simple_src_compile
# These 3 tests would fail if not run separately or at the beginning.
JAVA_TEST_EXCLUDES=(
org.apache.logging.log4j.message.ParameterizedMessageRecursiveFormattingWithoutThreadLocalsTest
org.apache.logging.log4j.NoopThreadContextTest
org.apache.logging.log4j.ThreadContextTest # bug #979651
)
junit5_src_test
JAVA_TEST_RUN_ONLY=(
org.apache.logging.log4j.message.ParameterizedMessageRecursiveFormattingWithoutThreadLocalsTest
org.apache.logging.log4j.NoopThreadContextTest
)
junit5_src_test
JAVA_TEST_RUN_ONLY=(
org.apache.logging.log4j.ThreadContextTest
)
junit5_src_test
JAVA_JAR_FILENAME="log4j-api.jar"
JAVA_SRC_DIR="log4j-api/src/main/java"
}
|