Skip to content
Snippets Groups Projects
Commit 9682ecd2 authored by Maxime Gauduin's avatar Maxime Gauduin
Browse files

add tomcat9

parents
No related branches found
No related tags found
No related merge requests found
PKGBUILD 0 → 100644
# Maintainer: Maxime Gauduin <alucryd@archlinux.org>
# Contributor: Olli <olli@suruatoel.xyz>
pkgname=tomcat9
pkgver=9.0.31
pkgrel=1
pkgdesc='Open source implementation of the Java Servlet 4.0 and JavaServer Pages 2.3 technologies'
arch=(any)
url=https://tomcat.apache.org/
license=(APACHE)
depends=(
'java-runtime>=8'
java-jsvc
java-commons-daemon
eclipse-ecj
)
optdepends=('tomcat-native: to allow optimal performance in production environments')
backup=(
etc/tomcat9/catalina.policy
etc/tomcat9/catalina.properties
etc/tomcat9/context.xml
etc/tomcat9/logging.properties
etc/tomcat9/server.xml
etc/tomcat9/tomcat-users.xml
etc/tomcat9/web.xml
)
install=tomcat9.install
source=(
https://archive.apache.org/dist/tomcat/tomcat-9/v${pkgver}/bin/apache-tomcat-${pkgver}.tar.gz{,.asc}
tomcat9.service
tomcat9.sysusers
tomcat9.tmpfiles
)
validpgpkeys=(
A9C5DF4D22E99998D9875A5110C01C5A2F6059E7 # Mark E D Thomas
713DA88BE50911535FE716F5208B0AB1D63011C7 # Violeta Georgieva Georgieva
)
sha256sums=('1b111d890f8c0b3f3eb7f8f8f557a8e163ef6b06bca3e262ba1062808467cb43'
'SKIP'
'df2199080b3e4061eb8d454045428d7d340e527972c497309f69392ab2e3186f'
'63d8a28af96e6c7232595e7eab3bb7930f0eebcd89a5b1e3bc17b80cb2580db5'
'5cf1be7e6975c909d9935b2226a5aec4f783de154d910d3b65860286a3ce2a7b')
_gid_log=19
_gid_tomcat=58
_uid_tomcat=58
package() {
cd apache-tomcat-${pkgver}
# Tomcat general files
install -dm 755 "${pkgdir}"/usr/share/{,java/}tomcat9
cp -dr --no-preserve=ownership bin "${pkgdir}"/usr/share/tomcat9
# commons-daemon and tomcat-natives are packaged on their own
rm "${pkgdir}"/usr/share/tomcat9/bin/{*.bat,commons-daemon*,tomcat-native.tar.gz}
ln -s /usr/share/java/commons-daemon.jar "${pkgdir}"/usr/share/tomcat9/bin/commons-daemon.jar
install -m 644 lib/* "${pkgdir}"/usr/share/java/tomcat9
# eclipse-ecj is packaged on its own
rm "${pkgdir}"/usr/share/java/tomcat9/ecj-*.jar
ln -s ../eclipse-ecj.jar "${pkgdir}"/usr/share/java/tomcat9/ecj.jar
ln -s /usr/share/java/tomcat9 "${pkgdir}"/usr/share/tomcat9/lib
# We log through systemd but this would still be required for stock Tomcat logging
install -dm 775 -o ${_uid_tomcat} -g ${_gid_log} "${pkgdir}"/var/log/tomcat9
ln -s /var/log/tomcat9 "${pkgdir}"/usr/share/tomcat9/logs
touch "${pkgdir}"/var/log/tomcat9/catalina.{out,err}
chgrp ${_gid_log} "${pkgdir}"/var/log/tomcat9/catalina.{out,err}
install -dm 775 "${pkgdir}"/etc/tomcat9
install -m 640 -g ${_gid_tomcat} conf/* "${pkgdir}"/etc/tomcat9
install -dm 775 -g ${_gid_tomcat} "${pkgdir}"/etc/tomcat9/Catalina
ln -s /etc/tomcat9 "${pkgdir}"/usr/share/tomcat9/conf
install -dm 775 "${pkgdir}"/var/lib/tomcat9
cp -r webapps "${pkgdir}"/var/lib/tomcat9
chown -R ${_uid_tomcat}:${_gid_tomcat} "${pkgdir}"/var/lib/tomcat9
chmod 775 "${pkgdir}"/var/lib/tomcat9/webapps
ln -s /var/lib/tomcat9/webapps "${pkgdir}"/usr/share/tomcat9/webapps
install -dm 1777 "${pkgdir}"/var/tmp
install -dm 775 -o ${_uid_tomcat} -g ${_gid_tomcat} "${pkgdir}"/var/tmp/tomcat9/{temp,work}
ln -s /var/tmp/tomcat9/temp "${pkgdir}"/usr/share/tomcat9/temp
ln -s /var/tmp/tomcat9/work "${pkgdir}"/usr/share/tomcat9/work
install -Dm 644 ../tomcat9.service "${pkgdir}"/usr/lib/systemd/system/tomcat9.service
install -Dm 644 ../tomcat9.sysusers "${pkgdir}"/usr/lib/sysusers.d/tomcat9.conf
install -Dm 644 ../tomcat9.tmpfiles "${pkgdir}"/usr/lib/tmpfiles.d/tomcat9.conf
}
# vim: ts=2 sw=2 et:
post_install() {
if [ -f lib/modules/$(uname -r)/kernel/security/capability.ko ]; then
echo 'It appears that your current kernel has linux security'
echo 'capabilities built as a module. Tomcat requires this'
echo ' functionality to operate.'
fi
}
post_upgrade() {
post_install $1
}
pre_remove() {
echo "Leftover files may reside in /var/{lib,tmp,log}/tomcat9"
echo "If you remove them, you may also want to remove user and group 'tomcat9'"
}
[Unit]
Description=Tomcat 9 servlet container
After=network.target
[Service]
Type=forking
PIDFile=/var/run/tomcat9.pid
Environment=CATALINA_PID=/var/run/tomcat9.pid
Environment=TOMCAT_JAVA_HOME=/usr/lib/jvm/default-runtime
Environment=CATALINA_HOME=/usr/share/tomcat9
Environment=CATALINA_BASE=/usr/share/tomcat9
Environment=CATALINA_OPTS=
Environment=ERRFILE=SYSLOG
Environment=OUTFILE=SYSLOG
ExecStart=/usr/bin/jsvc \
-Dcatalina.home=${CATALINA_HOME} \
-Dcatalina.base=${CATALINA_BASE} \
-Djava.io.tmpdir=/var/tmp/tomcat9/temp \
-cp /usr/share/java/commons-daemon.jar:/usr/share/java/eclipse-ecj.jar:${CATALINA_HOME}/bin/bootstrap.jar:${CATALINA_HOME}/bin/tomcat-juli.jar \
-user tomcat9 \
-java-home ${TOMCAT_JAVA_HOME} \
-pidfile /var/run/tomcat9.pid \
-errfile ${ERRFILE} \
-outfile ${OUTFILE} \
$CATALINA_OPTS \
org.apache.catalina.startup.Bootstrap
ExecStop=/usr/bin/jsvc \
-pidfile /var/run/tomcat9.pid \
-stop \
org.apache.catalina.startup.Bootstrap
[Install]
WantedBy=multi-user.target
u tomcat9 58 "Tomcat 9 user" /usr/share/tomcat9
d /var/tmp/tomcat9/temp 0775 tomcat9 tomcat9
d /var/tmp/tomcat9/work 0775 tomcat9 tomcat9
d /var/lib/tomcat9 0775 tomcat9 tomcat9
d /var/lib/tomcat9/webapps 0775 tomcat9 tomcat9
d /var/log/tomcat9 0775 tomcat9 log
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment