Merge updates from master

This commit is contained in:
Repository mirror & CI
2026-06-28 17:00:55 +00:00
6 changed files with 636 additions and 0 deletions

View File

@@ -1,2 +1,4 @@
DIST jakartaee-migration-1.0.10-src.tar.gz 53924 BLAKE2B 263144d2401cd4444d4afbaa0ecba7f9009a7f2312241882dc035db80be33e51f6e90d5bd7c6daa3e274008a5b617fa5169144f645d4d6af399b4100c75ca86a SHA512 88132a7ebca68df60fa4ba2835f6e2ec57b674c38152f83d124380d53fc214e505f2d6696682acc41dc742bad1220956e1a9b063bf7c337042076af45bf69579
DIST jakartaee-migration-1.0.10-src.tar.gz.asc 833 BLAKE2B 330f1596ad1ef3337747a617c7a1f951d77a16d5fa486b4ae2b50ad2ecf4068e79837728f372efbb65f7ee88575bac90f02c9234ebba795c557ce53d9445dc40 SHA512 e41fe2d920824bc6db93bacb5c5a182de6b47fe0504a07e9f28b162382e30e7bb350d1c031065ea7041228089aa56870023fdb289a5a99fccbb97422e4e73362
DIST jakartaee-migration-1.0.12-src.tar.gz 54175 BLAKE2B 5db536218b3a151dd617d18203c4cb7d6baacf029e286042809fdec6cbfa2e6cb04911ce2defd9ab30fe98abbebb94d090421ef53e5e928ac8a6864eafbee01a SHA512 ff44ca1209a78b35201c71d241fc92e31a80c63d713b791fd2ef1c4977774a5eb1b71d469db5d1c8673085ecea6b3638688ebd316b86fc637002e69542885ce7
DIST jakartaee-migration-1.0.12-src.tar.gz.asc 833 BLAKE2B 48e3b2bb54ca26ba879779814f0126e2b7c451c8d4370e556a695e96310bd81c2e904fcd7d04327a86b7be59570a3337fbeeee94b6c9f76a7dc535f746802852 SHA512 a23d663043e995112d1c67be92990247ad35c63e8ba2348f4876014bbfbe244ab5830f7aafb77cd157383c7b482539ef7cbba1ee7623bd53d31475063bef6533

View File

@@ -0,0 +1,76 @@
# 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-4"
inherit java-pkg-2 java-pkg-simple verify-sig
DESCRIPTION="Apache Tomcat tool for migration from Java EE 8 to Jakarta EE 9"
HOMEPAGE="https://tomcat.apache.org"
SRC_URI="mirror://apache/tomcat/${PN}/v${PV}/source/${P}-src.tar.gz
verify-sig? ( mirror://apache/tomcat/${PN}/v${PV}/source/${P}-src.tar.gz.asc )"
S="${WORKDIR}/${P}"
LICENSE="Apache-2.0"
SLOT="0"
KEYWORDS="~amd64 ~arm64"
BDEPEND="verify-sig? ( ~sec-keys/openpgp-keys-apache-tomcat-11 )"
CP_DEPEND="
>=dev-java/ant-1.10.15:0
>=dev-java/bcel-6.11.0:0
>=dev-java/commons-compress-1.28.0:0
>=dev-java/commons-io-2.21.0:0
>=dev-java/eclipse-osgi-4.31:0
"
# we need jdk-11 just for some tests as those need stuff from newer jdk,
# otherwise the package as of version 1.0.7 compiles fine with jdk 1.8
# with tests disabled
# see bug https://bugs.gentoo.org/910499
DEPEND="
${CP_DEPEND}
>=virtual/jdk-11:*
"
RDEPEND="
${CP_DEPEND}
>=virtual/jre-1.8:*
"
JAVA_MAIN_CLASS="org.apache.tomcat.jakartaee.MigrationCLI"
JAVA_RESOURCE_DIRS="src/main/resources"
JAVA_SRC_DIR="src/main/java"
JAVA_TEST_EXCLUDES=( org.apache.tomcat.jakartaee.TesterConstants )
JAVA_TEST_GENTOO_CLASSPATH="junit-4"
JAVA_TEST_RESOURCE_DIRS="src/test/resources"
JAVA_TEST_SRC_DIR="src/test/java"
VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/tomcat-11.apache.org.asc"
src_prepare() {
java-pkg-2_src_prepare
sed -i "s/\${project.version}/${PV}/g" src/main/resources/info.properties
}
src_test() {
# we need to create jar files for the tests the same way as it's done using pom.xml
local implementation_version=$(grep Implementation-Version pom.xml | grep -oE "[0-9]+\.[0-9]+\.[0-9]+")
mkdir -p generated-test/META-INF || die
pushd generated-test || die
echo "Implementation-Version: ${implementation_version}" > META-INF/MANIFEST.MF
ejavac -d . -encoding ${JAVA_ENCODING} $(find "${S}/${JAVA_TEST_SRC_DIR}" -name CommonGatewayInterface.java) || die
jar cfm cgi-api.jar META-INF/MANIFEST.MF $(find -name CommonGatewayInterface.class) || die
ejavac -d . -encoding ${JAVA_ENCODING} $(find "${S}/${JAVA_TEST_SRC_DIR}" -name HelloCGI.java) || die
jar cfm hellocgi.jar META-INF/MANIFEST.MF $(find -name HelloCGI.class) || die
for enc in rsa dsa ec; do
cp hellocgi.jar hellocgi-signed-${enc}.jar || die
jarsigner -keystore "${S}/src/test/resources/keystore.p12" -storepass apache hellocgi-signed-${enc}.jar ${enc} || die
done
popd
java-pkg-simple_src_test
}

View File

@@ -1,6 +1,12 @@
DIST apache-tomcat-10.1.55-src.tar.gz 7362901 BLAKE2B 2b2850347b576ad4473e0786e1b3abe0dbde702db0dceeb393500e03108669a4fd4141900ed1d610a7779917a60a4c20fc1292d60fc9400eaf79afe79a936ad5 SHA512 baa9f2ddd836725fef3d56542e67307c886353d340e0c3c2ccfaa0e1bb7eafc7a729624d2ba8bc03dd631367192b21afa9a825033d82d7a2fe5e54a5e9e3a9de
DIST apache-tomcat-10.1.55-src.tar.gz.asc 833 BLAKE2B fb6b6cc647888d08fe9b29e07a9a8e4fe64f0ff68e813e957c70358415d20af2765e1cbc7531d157a89040ab09a456e537c03b737a40b0a51e447221483ccc8c SHA512 d6175f65b7e4edd267b47afcc14934f26e5a045d61f74f86f0c141a4a7616a4d1d747a55ef11f5de1f0c7bb5fae988c1314eebc3709a507f9ea7f25e6a2d4af4
DIST apache-tomcat-10.1.56-src.tar.gz 7595358 BLAKE2B c17e691509728058b381088b54c51341a76f40e671d0c6fcdc72217fcf692a73075b00adeb787ef7fafb7e5bb58a8ca5ffc4cea98fbb45c116b7ed00738f7e81 SHA512 cbbb81ffeea3c4b12f6b3a8bfe14ec8c0e12637a9c4296b5bcaf463371b64c2a4c9539a4cde42ebb4711925e666de7f9ce9d0031bfda3c113f5f976a8542971e
DIST apache-tomcat-10.1.56-src.tar.gz.asc 833 BLAKE2B 3c0fdd238476879b210ae1df8da4540ccc171c964aa3ee2bbe55afb0e6fc427bc4d82fedf3636a82972b05c5db24e593239c7d9ba0b69d172ff78f788eea6899 SHA512 658146304215b125b543773fdc2146a9f8a5f3a83626b0370f225fef49b800e30db794f516940d605a1cf967571253c63a74f7b8f4959848d635388d121fc0dc
DIST apache-tomcat-11.0.22-src.tar.gz 7289785 BLAKE2B a8417b0f6abb1f3f41bd6441d53f8701c8de1bbb525a19706bd270dddf1732c8e570adc086a5b152558ef32893018e6011c9c1c73fe808ae1e4c4823067e0161 SHA512 35867e670c89d9ead1a7e4545b26f708849de3c7b56f21e1f4c124fd83b3d3ec37d65e42dcf2a0adeda260436811de6f6b27199ff747ef099a62e11eab1f7cbc
DIST apache-tomcat-11.0.22-src.tar.gz.asc 849 BLAKE2B bb6b08f1ed49391dcfbac75a57c7f91909b3ac48caed808808b06f9ab4715629fc84f15e80bd2c99d194c3992bdf5d9b7e7bacabd842bfdc8f6464f6685220ae SHA512 a1619100695da4f6a5c0fc62d2243619d5c11b0535ea557aea18a79fa7471a12ba16512745abbd43b552f93fdb1176c3ecd1541b2fa04710c10ebd069530d4e2
DIST apache-tomcat-11.0.23-src.tar.gz 7524074 BLAKE2B 99433677cb3466517be0264d3a6b6fb742e04874ff2b86ec4e9558913707f35a41c1da5d1e15430295e7469de7a5ba5eef9f33d53bf5b21dcf4a86313e2993c8 SHA512 781eec414f306e57c35047e0db8be02df6813a6661e22b01928777b633f85938f61cd228b32e8b682bd2b581d9e107c18ab6529a86ec74bf7dd7f0a8b1d5fa8d
DIST apache-tomcat-11.0.23-src.tar.gz.asc 833 BLAKE2B f744a66dfdf661a7e1bdf66ebc72748a370c35d7d0f05e5092ba5a303758fc469819fa748358009a6008d19e0645ccde0f84e53b1df74efd761d9a3da6b0a8dd SHA512 2093673404527fcf7fb42ecf3f8a8370ae700ae002733a8a86006bb13b6a71bef0978c2a668795f9fc833f80f7b4e19e6b32fca4a5489c09bfa0b3e9b6d4dea7
DIST apache-tomcat-9.0.118-src.tar.gz 7506319 BLAKE2B f4a829a7479e21137fba9dc5f15f09ebfda3547d1b2c716dc2bddd5d91cb0002450d22d439019e6789d708f61aaa66f50153b3c4b25c2c153440cd70969f8b55 SHA512 021bb2fffce2a3ca163ddf01fd1cf6d5c5c5799bff773af32b2f767e40d2d5825ab295701e4c7cef947d98dea2f8d17d47b599237c70b55622aafbb054cefa4c
DIST apache-tomcat-9.0.118-src.tar.gz.asc 833 BLAKE2B 1e877c130402ceabffc3aa96589a524439a97299d82ba8bd16c9d6782fec2513c1937c7dfcf62f16b1fe3d039f44d131486f137b6156f92b1e9ff2df27cc6e50 SHA512 6f08e9156760e01328411a1526b5d113793302820de1a7efaea235f2f0a05c426e17352dec62ae33627ff00633ad494597d119a28f212aac20357a04a4081e38
DIST apache-tomcat-9.0.119-src.tar.gz 7711738 BLAKE2B 554a86637c5106ba735d22d26e65df829283f494bb8d71eab38f09ca85f686b659a7585eb734a2e617a9e8f225ae888d4b082a290ffa289c084790bbd785d145 SHA512 573fdc6336cefe11ad2bbcb2a0c32b2389e55e76715aa9db794e5159ba134aa6411205d0bf9d09af860603124f456006b9312a230f5f08fede3536a389442047
DIST apache-tomcat-9.0.119-src.tar.gz.asc 833 BLAKE2B 96de5a25ae815fb00d4e6fd1b75dc633465f08bc9e314c01fca9084dc83561fe03f72d16b685f5558899f36b130bfa0f71552115bd470f35fe1ceca42c9b0a95 SHA512 59cb74300ce3a9d72c2919ff00d2e365dcdc5ba07859a2916c6c79e254a218def5568efa21aca5dc57ec4b53d43c35867b8f66a864b6ea77f01d73bdfbaa4223

View File

@@ -0,0 +1,185 @@
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
JAVA_PKG_IUSE="doc source test"
inherit java-pkg-2 prefix verify-sig
MY_P="apache-${P}-src"
DESCRIPTION="Tomcat Servlet-6.0/JSP-3.1/EL-5.0/WebSocket-2.1/JASPIC-3.0 Container"
HOMEPAGE="https://tomcat.apache.org/"
SRC_URI="mirror://apache/${PN}/tomcat-10/v${PV}/src/${MY_P}.tar.gz
verify-sig? ( https://downloads.apache.org/tomcat/tomcat-$(ver_cut 1)/v${PV}/src/${MY_P}.tar.gz.asc )"
S=${WORKDIR}/${MY_P}
LICENSE="Apache-2.0"
SLOT="10.1"
KEYWORDS="~amd64 ~arm64"
IUSE="extra-webapps"
RESTRICT="test" # can we run them on a production system?
BND_MIN="7.2.3"
ECJ_SLOT="4.26"
COMMON_DEP="
>=dev-java/ant-1.10.15-r1:0
>=dev-java/bnd-annotation-${BND_MIN}:0
dev-java/eclipse-ecj:${ECJ_SLOT}
dev-java/jax-rpc-api:0
>=dev-java/jakartaee-migration-1.0.10:0
>=dev-java/wsdl4j-1.6.3-r1:0"
# jre-17:* because of line 1081, build.xml
# <filter token="target.jdk" value="${compile.release}"/>
RDEPEND="
${COMMON_DEP}
acct-group/tomcat
acct-user/tomcat
>=virtual/jre-11:*"
DEPEND="
${COMMON_DEP}
app-admin/pwgen
>=dev-java/bnd-${BND_MIN}:0
>=dev-java/bnd-ant-${BND_MIN}:0
>=dev-java/bnd-util-${BND_MIN}:0
>=dev-java/bndlib-${BND_MIN}:0
>=dev-java/libg-${BND_MIN}:0
dev-java/osgi-cmpn:8
dev-java/osgi-core:0
dev-java/slf4j-api:0
|| ( virtual/jdk:21 virtual/jdk:17 )
test? (
>=dev-java/ant-1.10.15:0[junit]
dev-java/easymock:3.2
)"
BDEPEND="verify-sig? ( ~sec-keys/openpgp-keys-apache-tomcat-$(ver_cut 1) )"
VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/tomcat-$(ver_cut 1).apache.org.asc"
PATCHES=(
"${FILESDIR}/tomcat-10.1.20-do-not-copy.patch"
"${FILESDIR}/tomcat-10.1.20-offline.patch"
"${FILESDIR}/tomcat-9.0.87-gentoo-bnd.patch"
)
src_prepare() {
default #780585
java-pkg-2_src_prepare
java-pkg_clean
cat > build.properties <<-EOF || die
compile.debug=false
execute.download=false
exist=true # skip target="downloadfile-2"
version=${PV}-gentoo
version.number=${PV}
ant.jar=$(java-pkg_getjar --build-only ant ant.jar)
bnd-annotation.jar=$(java-pkg_getjars bnd-annotation)
bnd-ant.jar=$(java-pkg_getjars --build-only bnd-ant)
bnd-util.jar=$(java-pkg_getjars --build-only bnd-util)
bnd.jar=$(java-pkg_getjars --build-only bnd)
bndlib.jar=$(java-pkg_getjars --build-only bndlib)
jaxrpc-lib.jar=$(java-pkg_getjars jax-rpc-api)
jdt.jar=$(java-pkg_getjars eclipse-ecj-${ECJ_SLOT})
libg.jar=$(java-pkg_getjars --build-only libg)
migration-lib.jar=$(java-pkg_getjars jakartaee-migration)
osgi-cmpn.jar=$(java-pkg_getjars --build-only osgi-cmpn-8)
osgi-core.jar=$(java-pkg_getjars --build-only osgi-core)
slf4j-api.jar=$(java-pkg_getjars --build-only slf4j-api)
wsdl4j-lib.jar=$(java-pkg_getjars wsdl4j)
EOF
if use test; then
echo "easymock.jar=$(java-pkg_getjars --build-only easymock-3.2)" \
>> build.properties || die "easymock"
fi
# For use of catalina.sh in netbeans
sed -i -e "/^# ----- Execute The Requested Command/ a\
CLASSPATH=\`java-config --with-dependencies --classpath ${PN}-${SLOT}\`" \
bin/catalina.sh || die
}
# revisions of the scripts
IM_REV="-r2"
INIT_REV="-r1"
src_compile() {
LC_ALL=C eant deploy $(usev doc javadoc)
}
src_test() {
eant test
}
src_install() {
local dest="/usr/share/${PN}-${SLOT}"
java-pkg_jarinto "${dest}"/bin
java-pkg_dojar output/build/bin/*.jar
exeinto "${dest}"/bin
doexe output/build/bin/*.sh
java-pkg_jarinto "${dest}"/lib
java-pkg_dojar output/build/lib/*.jar
dodoc RELEASE-NOTES RUNNING.txt
use doc && java-pkg_dojavadoc output/dist/webapps/docs/api
use source && java-pkg_dosrc java/*
### Webapps ###
# add missing docBase
local apps="host-manager manager"
for app in ${apps}; do
sed -i -e "s|=\"true\" >|=\"true\" docBase=\"\$\{catalina.home\}/webapps/${app}\" >|" \
output/build/webapps/${app}/META-INF/context.xml || die
done
insinto "${dest}"/webapps
doins -r output/build/webapps/{host-manager,manager,ROOT}
use extra-webapps && doins -r output/build/webapps/{docs,examples}
### Config ###
# create "logs" directory in $CATALINA_BASE
# and set correct perms, see #458890
dodir "${dest}"/logs
fperms 0750 "${dest}"/logs
# replace the default pw with a random one, see #92281
local randpw="$(pwgen -s -B 15 1)"
sed -i -e "s|SHUTDOWN|${randpw}|" output/build/conf/server.xml || die
# prepend gentoo.classpath to common.loader, see #453212
sed -i -e 's/^common\.loader=/\0${gentoo.classpath},/' output/build/conf/catalina.properties || die
insinto "${dest}"
doins -r output/build/conf
### rc ###
cp "${FILESDIR}"/tomcat{.conf,${INIT_REV}.init,-instance-manager${IM_REV}.bash} "${T}" || die
eprefixify "${T}"/tomcat{.conf,${INIT_REV}.init,-instance-manager${IM_REV}.bash}
sed -i -e "s|@SLOT@|${SLOT}|g" "${T}"/tomcat{.conf,${INIT_REV}.init,-instance-manager${IM_REV}.bash} || die
insinto "${dest}"/gentoo
doins "${T}"/tomcat.conf
exeinto "${dest}"/gentoo
newexe "${T}"/tomcat${INIT_REV}.init tomcat.init
newexe "${T}"/tomcat-instance-manager${IM_REV}.bash tomcat-instance-manager.bash
}
pkg_postinst() {
einfo "Ebuilds of Tomcat support running multiple instances. To manage Tomcat instances, run:"
einfo " ${EPREFIX}/usr/share/${PN}-${SLOT}/gentoo/tomcat-instance-manager.bash --help"
ewarn "Please note that since version 10 the primary package for all implemented APIs"
ewarn "has changed from javax.* to jakarta.*. This will almost certainly require code"
ewarn "changes to enable applications to migrate from Tomcat 9 and earlier to Tomcat 10 and later."
einfo "Please read https://wiki.gentoo.org/wiki/Apache_Tomcat"
}

View File

@@ -0,0 +1,186 @@
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
JAVA_PKG_IUSE="doc source test"
inherit java-pkg-2 prefix verify-sig
MY_P="apache-${P}-src"
DESCRIPTION="Tomcat Servlet-6.1/JSP-4.0/EL-6.0/WebSocket-2.2/JASPIC-3.1 Container"
HOMEPAGE="https://tomcat.apache.org/"
SRC_URI="mirror://apache/${PN}/tomcat-$(ver_cut 1)/v${PV}/src/${MY_P}.tar.gz
verify-sig? ( https://downloads.apache.org/tomcat/tomcat-$(ver_cut 1)/v${PV}/src/${MY_P}.tar.gz.asc )"
S=${WORKDIR}/${MY_P}
LICENSE="Apache-2.0"
SLOT="11"
KEYWORDS="~amd64 ~arm64"
IUSE="extra-webapps"
RESTRICT="test" # can we run them on a production system?
BND_MIN="7.2.3"
ECJ_SLOT="4.39"
COMMON_DEP="
>=dev-java/ant-1.10.15-r1:0
>=dev-java/bnd-annotation-${BND_MIN}:0
dev-java/eclipse-ecj:${ECJ_SLOT}
dev-java/jax-rpc-api:0
>=dev-java/jakartaee-migration-1.0.12:0
>=dev-java/wsdl4j-1.6.3-r1:0"
# jre-17:* because of line 1081, build.xml
# <filter token="target.jdk" value="${compile.release}"/>
RDEPEND="
${COMMON_DEP}
acct-group/tomcat
acct-user/tomcat
>=virtual/jre-17:*"
DEPEND="
${COMMON_DEP}
app-admin/pwgen
>=dev-java/bnd-${BND_MIN}:0
>=dev-java/bnd-ant-${BND_MIN}:0
>=dev-java/bnd-util-${BND_MIN}:0
>=dev-java/bndlib-${BND_MIN}:0
>=dev-java/libg-${BND_MIN}:0
dev-java/osgi-cmpn:8
dev-java/osgi-core:0
dev-java/slf4j-api:0
|| ( virtual/jdk:21 virtual/jdk:17 )
test? (
>=dev-java/ant-1.10.15-r1:0[junit]
dev-java/easymock:3.2
)"
BDEPEND="verify-sig? ( ~sec-keys/openpgp-keys-apache-tomcat-$(ver_cut 1) )"
VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/tomcat-$(ver_cut 1).apache.org.asc"
PATCHES=(
"${FILESDIR}/tomcat-10.1.20-do-not-copy.patch"
"${FILESDIR}/tomcat-11.0.0-offline.patch"
"${FILESDIR}/tomcat-9.0.87-gentoo-bnd.patch"
)
src_prepare() {
default #780585
java-pkg-2_src_prepare
java-pkg_clean
cat > build.properties <<-EOF || die
compile.debug=false
execute.download=false
exist=true # skip target="downloadfile-2"
version=${PV}-gentoo
version.number=${PV}
ant.jar=$(java-pkg_getjar --build-only ant ant.jar)
bnd-annotation.jar=$(java-pkg_getjars bnd-annotation)
bnd-ant.jar=$(java-pkg_getjars --build-only bnd-ant)
bnd-util.jar=$(java-pkg_getjars --build-only bnd-util)
bnd.jar=$(java-pkg_getjars --build-only bnd)
bndlib.jar=$(java-pkg_getjars --build-only bndlib)
jaxrpc-lib.jar=$(java-pkg_getjars --build-only jax-rpc-api)
jdt.jar=$(java-pkg_getjars eclipse-ecj-${ECJ_SLOT})
libg.jar=$(java-pkg_getjars --build-only libg)
migration-lib.jar=$(java-pkg_getjars jakartaee-migration)
osgi-cmpn.jar=$(java-pkg_getjars --build-only osgi-cmpn-8)
osgi-core.jar=$(java-pkg_getjars --build-only osgi-core)
slf4j-api.jar=$(java-pkg_getjars --build-only slf4j-api)
wsdl4j-lib.jar=$(java-pkg_getjars --build-only wsdl4j)
EOF
if use test; then
echo "easymock.jar=$(java-pkg_getjars --build-only easymock-3.2)" \
>> build.properties || die "easymock"
fi
# For use of catalina.sh in netbeans
sed -i -e "/^# ----- Execute The Requested Command/ a\
CLASSPATH=\`java-config --with-dependencies --classpath ${PN}-${SLOT}\`" \
bin/catalina.sh || die
}
# revisions of the scripts
IM_REV="-r2"
INIT_REV="-r1"
src_compile() {
LC_ALL=C eant deploy $(usev doc javadoc)
}
src_test() {
eant test
}
src_install() {
local dest="/usr/share/${PN}-${SLOT}"
java-pkg_jarinto "${dest}"/bin
java-pkg_dojar output/build/bin/*.jar
exeinto "${dest}"/bin
doexe output/build/bin/*.sh
java-pkg_jarinto "${dest}"/lib
java-pkg_dojar output/build/lib/*.jar
dodoc RELEASE-NOTES RUNNING.txt
use doc && java-pkg_dojavadoc output/dist/webapps/docs/api
use source && java-pkg_dosrc java/*
### Webapps ###
# add missing docBase
local apps="host-manager manager"
for app in ${apps}; do
sed -i -e "s|=\"true\" >|=\"true\" docBase=\"\$\{catalina.home\}/webapps/${app}\" >|" \
output/build/webapps/${app}/META-INF/context.xml || die
done
insinto "${dest}"/webapps
doins -r output/build/webapps/{host-manager,manager,ROOT}
use extra-webapps && doins -r output/build/webapps/{docs,examples}
### Config ###
# create "logs" directory in $CATALINA_BASE
# and set correct perms, see #458890
dodir "${dest}"/logs
fperms 0750 "${dest}"/logs
# replace the default pw with a random one, see #92281
local randpw="$(pwgen -s -B 15 1)"
sed -i -e "s|SHUTDOWN|${randpw}|" output/build/conf/server.xml || die
# prepend gentoo.classpath to common.loader, see #453212
sed -i -e 's/^common\.loader=/\0${gentoo.classpath},/' output/build/conf/catalina.properties || die
insinto "${dest}"
doins -r output/build/conf
### rc ###
cp "${FILESDIR}"/tomcat{.conf,${INIT_REV}.init,-instance-manager${IM_REV}.bash} "${T}" || die
eprefixify "${T}"/tomcat{.conf,${INIT_REV}.init,-instance-manager${IM_REV}.bash}
sed -i -e "s|@SLOT@|${SLOT}|g" "${T}"/tomcat{.conf,${INIT_REV}.init,-instance-manager${IM_REV}.bash} || die
insinto "${dest}"/gentoo
doins "${T}"/tomcat.conf
exeinto "${dest}"/gentoo
newexe "${T}"/tomcat${INIT_REV}.init tomcat.init
newexe "${T}"/tomcat-instance-manager${IM_REV}.bash tomcat-instance-manager.bash
}
pkg_postinst() {
einfo "Ebuilds of Tomcat support running multiple instances. To manage Tomcat instances, run:"
einfo " ${EPREFIX}/usr/share/${PN}-${SLOT}/gentoo/tomcat-instance-manager.bash --help"
ewarn "Please note that since version 10 the primary package for all implemented APIs"
ewarn "has changed from javax.* to jakarta.*. This will almost certainly require code"
ewarn "changes to enable applications to migrate from Tomcat 9 and earlier to Tomcat 10 and later."
einfo "Please read https://wiki.gentoo.org/wiki/Apache_Tomcat"
}

View File

@@ -0,0 +1,181 @@
# Copyright 1999-2026 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
JAVA_PKG_IUSE="doc source test"
inherit java-pkg-2 prefix verify-sig
MY_P="apache-${P}-src"
DESCRIPTION="Tomcat Servlet-4.0/JSP-2.3/EL-3.0/WebSocket-1.1/JASPIC-1.1 Container"
HOMEPAGE="https://tomcat.apache.org/"
SRC_URI="mirror://apache/${PN}/tomcat-9/v${PV}/src/${MY_P}.tar.gz
verify-sig? ( https://downloads.apache.org/tomcat/tomcat-$(ver_cut 1)/v${PV}/src/${MY_P}.tar.gz.asc )"
S=${WORKDIR}/${MY_P}
LICENSE="Apache-2.0"
SLOT="9"
KEYWORDS="~amd64 ~arm64"
IUSE="extra-webapps"
RESTRICT="test" # can we run them on a production system?
BND_MIN="7.2.3"
ECJ_SLOT="4.20"
COMMON_DEP="
>=dev-java/bnd-annotation-${BND_MIN}:0
dev-java/eclipse-ecj:${ECJ_SLOT}
dev-java/jax-rpc-api:0
>=dev-java/wsdl4j-1.6.3-r1:0
"
RDEPEND="
${COMMON_DEP}
acct-group/tomcat
acct-user/tomcat
dev-java/javax-persistence-api:0
>=virtual/jre-1.8:*
"
DEPEND="
${COMMON_DEP}
app-admin/pwgen
>=dev-java/ant-1.10.15:0
>=dev-java/bnd-${BND_MIN}:0
>=dev-java/bnd-ant-${BND_MIN}:0
>=dev-java/bnd-util-${BND_MIN}:0
>=dev-java/bndlib-${BND_MIN}:0
>=dev-java/libg-${BND_MIN}:0
dev-java/osgi-cmpn:8
dev-java/osgi-core:0
dev-java/slf4j-api:0
|| ( virtual/jdk:21 virtual/jdk:17 )
test? (
>=dev-java/ant-1.10.15-r1:0[junit]
dev-java/easymock:3.2
)
"
BDEPEND="verify-sig? ( ~sec-keys/openpgp-keys-apache-tomcat-$(ver_cut 1) )"
VERIFY_SIG_OPENPGP_KEY_PATH="/usr/share/openpgp-keys/tomcat-$(ver_cut 1).apache.org.asc"
PATCHES=(
"${FILESDIR}/tomcat-9.0.104-build.xml.patch"
"${FILESDIR}/tomcat-9.0.87-gentoo-bnd.patch"
)
src_prepare() {
default #780585
java-pkg-2_src_prepare
java-pkg_clean
cat > build.properties <<-EOF || die
compile.debug=false
execute.download=false
exist=true # skip target="downloadfile-2"
version=${PV}-gentoo
version.number=${PV}
ant.jar=$(java-pkg_getjar --build-only ant ant.jar)
bnd-annotation.jar=$(java-pkg_getjars bnd-annotation)
bnd-ant.jar=$(java-pkg_getjars --build-only bnd-ant)
bnd-util.jar=$(java-pkg_getjars --build-only bnd-util)
bnd.jar=$(java-pkg_getjars --build-only bnd)
bndlib.jar=$(java-pkg_getjars --build-only bndlib)
jaxrpc-lib.jar=$(java-pkg_getjars jax-rpc-api)
jdt.jar=$(java-pkg_getjars eclipse-ecj-${ECJ_SLOT})
libg.jar=$(java-pkg_getjars --build-only libg)
osgi-cmpn.jar=$(java-pkg_getjars --build-only osgi-cmpn-8)
osgi-core.jar=$(java-pkg_getjars --build-only osgi-core)
slf4j-api.jar=$(java-pkg_getjars --build-only slf4j-api)
wsdl4j-lib.jar=$(java-pkg_getjars wsdl4j)
EOF
if use test; then
echo "easymock.jar=$(java-pkg_getjars --build-only easymock-3.2)" \
>> build.properties || die "easymock"
fi
# For use of catalina.sh in netbeans
sed -i -e "/^# ----- Execute The Requested Command/ a\
CLASSPATH=\`java-config --with-dependencies --classpath ${PN}-${SLOT}\`" \
bin/catalina.sh || die
}
# revisions of the scripts
IM_REV="-r2"
INIT_REV="-r1"
src_compile() {
LC_ALL=C eant deploy $(usev doc javadoc)
}
src_test() {
eant test
}
src_install() {
local dest="/usr/share/${PN}-${SLOT}"
java-pkg_jarinto "${dest}"/bin
java-pkg_dojar output/build/bin/*.jar
exeinto "${dest}"/bin
doexe output/build/bin/*.sh
java-pkg_jarinto "${dest}"/lib
java-pkg_dojar output/build/lib/*.jar
dodoc RELEASE-NOTES RUNNING.txt
use doc && java-pkg_dojavadoc output/dist/webapps/docs/api
use source && java-pkg_dosrc java/*
### Webapps ###
# add missing docBase
local apps="host-manager manager"
for app in ${apps}; do
sed -i -e "s|=\"true\" >|=\"true\" docBase=\"\$\{catalina.home\}/webapps/${app}\" >|" \
output/build/webapps/${app}/META-INF/context.xml || die
done
insinto "${dest}"/webapps
doins -r output/build/webapps/{host-manager,manager,ROOT}
use extra-webapps && doins -r output/build/webapps/{docs,examples}
### Config ###
# create "logs" directory in $CATALINA_BASE
# and set correct perms, see #458890
dodir "${dest}"/logs
fperms 0750 "${dest}"/logs
# replace the default pw with a random one, see #92281
local randpw="$(pwgen -s -B 15 1)"
sed -i -e "s|SHUTDOWN|${randpw}|" output/build/conf/server.xml || die
# prepend gentoo.classpath to common.loader, see #453212
sed -i -e 's/^common\.loader=/\0${gentoo.classpath},/' output/build/conf/catalina.properties || die
insinto "${dest}"
doins -r output/build/conf
### rc ###
cp "${FILESDIR}"/tomcat{.conf,${INIT_REV}.init,-instance-manager${IM_REV}.bash} "${T}" || die
eprefixify "${T}"/tomcat{.conf,${INIT_REV}.init,-instance-manager${IM_REV}.bash}
sed -i -e "s|@SLOT@|${SLOT}|g" "${T}"/tomcat{.conf,${INIT_REV}.init,-instance-manager${IM_REV}.bash} || die
insinto "${dest}"/gentoo
doins "${T}"/tomcat.conf
exeinto "${dest}"/gentoo
newexe "${T}"/tomcat${INIT_REV}.init tomcat.init
newexe "${T}"/tomcat-instance-manager${IM_REV}.bash tomcat-instance-manager.bash
}
pkg_postinst() {
einfo "Ebuilds of Tomcat support running multiple instances. To manage Tomcat instances, run:"
einfo " ${EPREFIX}/usr/share/${PN}-${SLOT}/gentoo/tomcat-instance-manager.bash --help"
einfo "Please read https://wiki.gentoo.org/wiki/Apache_Tomcat"
}