mirror of
https://github.com/gentoo-mirror/guru.git
synced 2026-11-15 04:00:42 -05:00
152 lines
4.1 KiB
Bash
152 lines
4.1 KiB
Bash
# Copyright 2026 Gentoo Authors
|
|
# Distributed under the terms of the GNU General Public License v2
|
|
|
|
EAPI=8
|
|
|
|
JAVA_PKG_IUSE="doc source"
|
|
|
|
JAVA_PKG_WANT_BUILD_VM="openjdk-21 openjdk-bin-21"
|
|
JAVA_PKG_WANT_SOURCE="21"
|
|
JAVA_PKG_WANT_TARGET="21"
|
|
|
|
inherit edo edos2unix java-pkg-2 multiprocessing prefix
|
|
|
|
MY_P="${PN}-stable-${PV}"
|
|
|
|
DESCRIPTION="Yet Another Java Service Wrapper, runs any application as a daemon"
|
|
HOMEPAGE="https://yajsw.sourceforge.io/"
|
|
SRC_URI="
|
|
https://sourceforge.net/projects/yajsw/files/yajsw/${MY_P}/${MY_P}.zip/download
|
|
-> ${MY_P}.zip
|
|
"
|
|
S="${WORKDIR}/${MY_P}"
|
|
|
|
LICENSE="Apache-1.1 Apache-2.0 BSD BSD-2 CC-BY-2.5 GPL-2+ LGPL-2.1+ MIT"
|
|
SLOT="0"
|
|
KEYWORDS="~amd64"
|
|
|
|
CP_DEPEND="
|
|
>=dev-java/automaton-1.11.8:0
|
|
dev-java/commons-beanutils:0
|
|
>=dev-java/commons-cli-1.11.0:0
|
|
>=dev-java/commons-collections-4.5.0:4
|
|
>=dev-java/commons-io-2.21.0:0
|
|
>=dev-java/commons-lang-3.20.0:0
|
|
>=dev-java/commons-logging-1.3.6:0
|
|
>=dev-java/commons-text-1.15.0:0
|
|
>=dev-java/commons-vfs-2.0:2
|
|
>=dev-java/jna-5.18.1:0
|
|
>=dev-java/joda-time-2.13.0:0
|
|
>=dev-java/permit-reflect-0.4:0
|
|
>=dev-java/slf4j-api-2.0.3:0
|
|
>=dev-java/slf4j-simple-2.0.3:0
|
|
>=dev-java/velocity-2.4.1:0
|
|
"
|
|
|
|
RDEPEND="${CP_DEPEND}
|
|
app-admin/sudo
|
|
>=virtual/jre-21:*"
|
|
|
|
DEPEND="${CP_DEPEND}
|
|
virtual/jdk:21"
|
|
|
|
BDEPEND="
|
|
app-arch/unzip
|
|
>=dev-java/gradle-bin-8.5
|
|
"
|
|
|
|
PATCHES=(
|
|
"${FILESDIR}"/${P}-build-fixes.patch
|
|
"${FILESDIR}"/${P}-system-libs.patch
|
|
"${FILESDIR}"/${P}-system-native.patch
|
|
"${FILESDIR}"/${P}-javadoc.patch
|
|
"${FILESDIR}"/${P}-paths.patch
|
|
"${FILESDIR}"/${P}-keystore.patch
|
|
)
|
|
|
|
DOCS=( readme.txt yajsw.policy.txt )
|
|
|
|
src_prepare() {
|
|
edos2unix build/gradle/{build,settings,wrapper/build,wrapper-app/build}.gradle
|
|
edos2unix src/app/src/main/java/org/rzo/yajsw/boot/WrapperLoader.java
|
|
edos2unix src/yajsw/src/main/java/org/rzo/yajsw/os/posix/PosixProcess.java
|
|
edos2unix conf/wrapper.conf.default
|
|
|
|
default
|
|
java-pkg-2_src_prepare
|
|
sed -i "s|@GENTOO_LIBDIR@|${EPREFIX}/usr/$(get_libdir)|g" \
|
|
src/app/src/main/java/org/rzo/yajsw/boot/WrapperLoader.java || die
|
|
eprefixify bin/setenv.sh
|
|
|
|
rm -r lib/core/{jna,permit} \
|
|
lib/extended/{commons,keystore,regex,sigar,slf4j,velocity} \
|
|
lib/groovy/{mail,joda,jasypt,snmp} || die
|
|
find lib/core/commons -type f ! -name 'commons-configuration2-*.jar' -delete || die
|
|
rm lib/extended/cron/{joda-time-2.7,prevayler-core-2.6,prevayler-factory-2.6}.jar || die
|
|
}
|
|
|
|
src_compile() {
|
|
local gradle
|
|
gradle=$(best_version -b '>=dev-java/gradle-bin-8.5') || die
|
|
[[ -n ${gradle} ]] || die "No supported Gradle installed"
|
|
gradle=${gradle##*/}
|
|
gradle=${gradle%-r*}
|
|
|
|
local packages=(
|
|
automaton commons-beanutils commons-cli commons-collections-4
|
|
commons-io commons-lang commons-logging commons-text commons-vfs-2 jna
|
|
joda-time permit-reflect slf4j-api slf4j-simple velocity
|
|
)
|
|
local -x GENTOO_CLASSPATH
|
|
GENTOO_CLASSPATH=$(java-pkg_getjars --with-dependencies "$(IFS=,; echo "${packages[*]}")") || die
|
|
|
|
local -x JAVA_TOOL_OPTIONS="-Duser.home=${T}"
|
|
local targets=( build )
|
|
use doc && targets+=( :wrapper:javadoc )
|
|
|
|
cd build/gradle || die
|
|
edo "${EPREFIX}/usr/bin/${gradle}" \
|
|
--console=plain \
|
|
--offline \
|
|
--no-daemon \
|
|
--no-build-cache \
|
|
--gradle-user-home "${T}/gradle_user_home" \
|
|
--project-cache-dir "${T}/gradle_project_cache" \
|
|
--parallel --max-workers="$(get_makeopts_jobs)" \
|
|
"${targets[@]}"
|
|
}
|
|
|
|
src_install() {
|
|
local dest="/usr/share/${PN}" b=build/gradle
|
|
|
|
cp "${b}"/ahessian/build/libs/*.jar lib/core/yajsw/ || die
|
|
cp "${b}"/hessian4/build/libs/*.jar lib/extended/yajsw/ || die
|
|
cp "${b}"/groovy-patch/build/libs/*.jar lib/extended/groovy/ || die
|
|
|
|
java-pkg_jarinto "${dest}"
|
|
java-pkg_dojar "${b}/wrapper/build/libs/wrapper.jar"
|
|
insinto "${dest}"
|
|
doins "${b}/wrapper-app/build/libs/wrapperApp.jar"
|
|
doins -r lib
|
|
|
|
insinto /etc/yajsw
|
|
doins conf/wrapper.conf.default
|
|
|
|
insinto "${dest}/templates"
|
|
doins templates/daemon.vm templates/systemd.vm
|
|
|
|
exeinto "${dest}"/bin
|
|
doexe bin/{wrapper,setenv,genConfig,runConsole}.sh
|
|
doexe bin/{install,start,stop,query,uninstall}Daemon{,NoPriv}.sh
|
|
|
|
einstalldocs
|
|
|
|
if use doc; then
|
|
java-pkg_dojavadoc "${b}/wrapper/build/docs/javadoc"
|
|
fi
|
|
|
|
if use source; then
|
|
java-pkg_dosrc src/{yajsw,app,ahessian,hessian,groovy-patch,keystore}
|
|
fi
|
|
}
|