dev-java/log4j-core: add 2.25.2

Signed-off-by: Volkmar W. Pogatzki <gentoo@pogatzki.net>
Signed-off-by: Miroslav Šulc <fordfrog@gentoo.org>
This commit is contained in:
Volkmar W. Pogatzki
2025-11-05 17:24:12 +01:00
committed by Miroslav Šulc
parent 3f5c63736a
commit 99a4c285bd
2 changed files with 130 additions and 0 deletions

View File

@@ -1 +1,3 @@
DIST apache-log4j-2.19.0-src.tar.gz 11764795 BLAKE2B 02ec7c5c825cabe9994a2f50d6761110f87a19ff46874c00d46986da7338c32148f3b6c3551c95721aaf94b71d1d5ce8bcea32462e11fa3fe0c3cbbc0cf5f887 SHA512 c72859c415e701921497bb4f02047fa022083f66b4d21b1dbae28361bd73498b2eae335b9a1ac2d7f796df734a6d54db2701ae5ebf999197597e9e2ad064c271
DIST apache-log4j-2.25.2-src.zip 7395022 BLAKE2B 5865672255ab640facdd24f8fd883b67853ddd01dff4d3e35f7318244d13db8995ccb97d687d94fd3dcce88d407b16058b89760723c4cefe29f1941b5bd945e7 SHA512 6d9f36d4aa829fad6eb1fdf92caa343dbf0add04574de3052be17cc75b6551bf2d62836c1be350acecddb5655fba748eeb8a7c73f00cc58e514bd727c391553d
DIST apache-log4j-2.25.2-src.zip.asc 833 BLAKE2B fe4eeabf107b1d89384b2f3ee8d0cdb0bead5208494be972ddab6a15c2dfe77e881d496d9750a816f3b9bc293f063164dc2a7f7b5796ae3f03f6e93182cc7347 SHA512 bb0847c3bec4ff0496baa8aab5236e4076676f1d99cae305eeac061fa3b6e5e1b8788509b92659e2b45904241b46a156e6ceff65458e8c88d5539a4ac4270cc0

View File

@@ -0,0 +1,128 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
# No tests, too many test-dependencies are not packaged.
JAVA_PKG_IUSE="doc source"
inherit java-pkg-2 java-pkg-simple junit5 verify-sig
DESCRIPTION="The Apache Log4j Implementation"
HOMEPAGE="https://logging.apache.org/log4j/2.x/"
SRC_URI="mirror://apache/logging/log4j/${PV}/apache-log4j-${PV}-src.zip
verify-sig? ( https://downloads.apache.org/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 )
"
CP_DEPEND="
>=dev-java/bnd-annotation-7.1.0:0
>=dev-java/commons-compress-1.28.0:0
>=dev-java/commons-csv-1.14.1-r1:0
>=dev-java/conversant-disruptor-1.2.20:0
>=dev-java/findbugs-annotations-3.0.1: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/jackson-dataformat-xml-2.20.0:0
>=dev-java/jackson-dataformat-yaml-2.20.0:0
>=dev-java/javax-mail-1.6.7-r2:0
>=dev-java/jctools-core-4.0.5-r1:0
>=dev-java/jeromq-0.6.0-r1:0
>=dev-java/javax-jms-api-2.0.3:0
>=dev-java/jspecify-1.0.0:0
>=dev-java/kafka-clients-1.1.1-r2:0
>=dev-java/lmax-disruptor-3.4.4:0
~dev-java/log4j-api-${PV}:0
>=dev-java/osgi-annotation-8.1.0:0
>=dev-java/osgi-core-8.0.0:0
>=dev-java/stax2-api-4.2.2:0
"
DEPEND="
${CP_DEPEND}
>=dev-java/asm-9.9:0
>=dev-java/brotli-dec-0.1.2-r1:0
>=dev-java/commons-codec-1.19.0:0
>=dev-java/commons-io-2.20.0:0
>=dev-java/commons-lang-3.19.0:0
>=dev-java/jakarta-activation-api-1.2.2-r1:1
>=dev-java/jnacl-1.0-r1:0
>=dev-java/snakeyaml-2.5:0
>=dev-java/xz-java-1.10:0
>=dev-java/zstd-jni-1.5.7.4:0
>=virtual/jdk-9:*
"
RDEPEND="
${CP_DEPEND}
>=virtual/jre-1.8:*
"
JAVA_CLASSPATH_EXTRA="asm brotli-dec commons-codec commons-io
commons-lang jakarta-activation-api-1 jnacl snakeyaml xz-java zstd-jni"
JAVA_INTERMEDIATE_JAR_NAME="org.apache.logging.log4j.core"
JAVA_MODULE_INFO_OUT="log4j-core-java9/src/main/java"
JAVA_RELEASE_SRC_DIRS=( ["9"]="log4j-core-java9/src/main/java" )
JAVA_RESOURCE_DIRS="${PN}/src/main/resources"
JAVA_SRC_DIR="${PN}/src/main/java"
VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/logging.apache.org.asc"
src_prepare() {
java-pkg-2_src_prepare
mkdir -p log4j-core/src/main/resources/META-INF/services || die "mkdir"
pushd $_ >/dev/null || die "pushd"
echo "org.apache.logging.log4j.core.config.plugins.processor.GraalVmProcessor" \
> javax.annotation.processing.Processor || die
echo "org.apache.logging.log4j.core.config.plugins.processor.PluginProcessor" \
>> javax.annotation.processing.Processor || die
echo "org.apache.logging.log4j.core.impl.ThreadContextDataProvider" \
> org.apache.logging.log4j.core.util.ContextDataProvider || die
echo "org.apache.logging.log4j.core.message.ExtendedThreadInfoFactory" \
> 'org.apache.logging.log4j.message.ThreadDumpMessage$ThreadInfoFactory' || die
echo "org.apache.logging.log4j.core.impl.Log4jProvider" \
> org.apache.logging.log4j.spi.Provider || die
popd >/dev/null || die popd
}
src_compile() {
java-pkg-simple_src_compile
# Process the @Plugin annotation used on Log4j 2 built-in plugins
# to generate a serialized plugin listing file
# https://logging.apache.org/log4j/2.x/manual/plugins.html
local processor="org.apache.logging.log4j.core.config.plugins.processor.PluginProcessor"
local classes="target/classes"
local classpath="${JAVA_JAR_FILENAME}:$( \
java-pkg_getjars --build-only --with-dependencies \
"${JAVA_GENTOO_CLASSPATH},${JAVA_CLASSPATH_EXTRA}"):$( \
java-pkg_getjars --build-only --with-dependencies jakarta-activation-api-1)"
# Just in case java-pkg-simple.eclass changes the path in the future
mkdir -p "${classes}" || die "Failed to create directory for classes"
local sources_list_file="${T}/sources.lst"
find "${JAVA_SRC_DIR}" -type f -name "*.java" > "${sources_list_file}" || die
ejavac -d "${classes}" -cp "${classpath}" \
-proc:only -processor "${processor}" \
@"${sources_list_file}"
# Update the JAR to include the serialized plugin listing file
local jar="$(java-config -j)"
"${jar}" -uf "${JAVA_JAR_FILENAME}" -C "${classes}" . ||
die "Failed to update JAR"
# For versions/9, upstream packages only what's listed in log4j-core-java9/src/assembly/java9.xml
# We remove the jar, remove from target/classes what's not needed and re-create the jar.
rm log4j-core.jar || die
rm -r target/classes/META-INF/versions/9/org/apache/logging/log4j/core/pattern || die
rm target/classes/META-INF/versions/9/org/apache/logging/log4j/core/util/Integers.class || die
rm target/classes/META-INF/versions/9/org/apache/logging/log4j/core/impl/ExtendedClassInfo.class || die
rm target/classes/META-INF/versions/9/org/apache/logging/log4j/core/jackson/StackTraceElementConstants.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-core.jar target/classes/META-INF/MANIFEST.MF -C target/classes . || die
}