diff options
author | Miroslav Šulc <fordfrog@gentoo.org> | 2023-10-24 15:18:20 +0200 |
---|---|---|
committer | Miroslav Šulc <fordfrog@gentoo.org> | 2023-10-24 15:18:20 +0200 |
commit | 93512510207291106a321a3755e005fa2b8be36f (patch) | |
tree | 9daa8ceba1f1bc161a8db4b76992a428083fa180 /dev-util/visualvm | |
parent | dev-java/jmc: new package, add 8.3.0 (diff) | |
download | gentoo-93512510207291106a321a3755e005fa2b8be36f.tar.gz gentoo-93512510207291106a321a3755e005fa2b8be36f.tar.bz2 gentoo-93512510207291106a321a3755e005fa2b8be36f.zip |
dev-util/visualvm: replaced some bundled stuff with in-tree packages
Bug: https://bugs.gentoo.org/841632
Signed-off-by: Miroslav Šulc <fordfrog@gentoo.org>
Diffstat (limited to 'dev-util/visualvm')
-rw-r--r-- | dev-util/visualvm/visualvm-2.1.7-r1.ebuild | 141 |
1 files changed, 141 insertions, 0 deletions
diff --git a/dev-util/visualvm/visualvm-2.1.7-r1.ebuild b/dev-util/visualvm/visualvm-2.1.7-r1.ebuild new file mode 100644 index 000000000000..368cb104b956 --- /dev/null +++ b/dev-util/visualvm/visualvm-2.1.7-r1.ebuild @@ -0,0 +1,141 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +NBV=140 +NBT=20230511 +NBZ=nb${NBV}_platform_${NBT}.zip +FLIGHT_RECORDER_VERSION="8.3.0" +FLIGHT_RECORDER_FILE="flightrecorder-${FLIGHT_RECORDER_VERSION}.jar" +COMMON_VERSION="8.3.0" +COMMON_FILE="common-${COMMON_VERSION}.jar" +ENCODER_VERSION="1.2.3" +ENCODER_FILE="encoder-${ENCODER_VERSION}.jar" +LZ4_JAVA_VERSION="1.8.0" +LZ4_JAVA_FILE="lz4-java-${LZ4_JAVA_VERSION}.jar" + +inherit java-pkg-2 java-ant-2 desktop + +DESCRIPTION="Integrates commandline JDK tools and profiling capabilities" +HOMEPAGE="https://visualvm.github.io" + +SRC_URI="https://github.com/oracle/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz + https://github.com/oracle/${PN}/releases/download/${PV}/${NBZ}" + +LICENSE="GPL-2-with-linking-exception" +SLOT="7" +KEYWORDS="~amd64" + +COMMON_DEPEND=" + dev-java/jmc:0 + dev-java/lz4-java:0 + dev-java/owasp-java-encoder:0 +" + +RDEPEND=" + ${COMMON_DEPEND} + dev-java/asm:9 + dev-java/hamcrest-core:1.3 + dev-java/jcommander:0 + dev-java/jna:4 + dev-java/junit:4 + dev-java/junit:5 + dev-java/testng:0 + >=virtual/jre-1.8:*" + +# it does not compile with java 11 +DEPEND=" + ${COMMON_DEPEND} + virtual/jdk:1.8" + +BDEPEND="app-arch/unzip" + +S="${WORKDIR}/${P}/${PN}" + +QA_PREBUILT=" + /usr/share/visualvm/cluster/lib/deployed/jdk15/linux-amd64/libprofilerinterface.so + /usr/share/visualvm/cluster/lib/deployed/jdk16/linux-amd64/libprofilerinterface.so + /usr/share/visualvm/platform/modules/lib/aarch64/linux/libjnidispatch-nb.so + /usr/share/visualvm/platform/modules/lib/amd64/linux/libjnidispatch-nb.so + /usr/share/visualvm/platform/modules/lib/riscv64/linux/libjnidispatch-nb.so +" + +EANT_BUILD_TARGET=build +EANT_EXTRA_ARGS="-Dext.binaries.downloaded=true" +INSTALL_DIR=/usr/share/${PN} + +src_unpack() { + unpack ${P}.tar.gz + cd "${S}" || die + unpack ${NBZ} +} + +src_prepare() { + default + + # Remove unneeded binaries + rm -rv netbeans/platform/lib/*.{dll,exe} \ + netbeans/platform/modules/lib/{amd64/*.dll,i386,x86} || die + find libs.profiler/lib.profiler/release/lib/deployed/jdk1? -mindepth 1 \ + -maxdepth 1 ! -name linux-amd64 -exec rm -rv {} + || die + + # link in external libraries + java-pkg_jar-from --into jfr.generic/external jmc jmc-common.jar ${COMMON_FILE} \ + || die "Failed to link jmc common jar" + java-pkg_jar-from --into jfr.generic/external jmc jmc-flightrecorder.jar ${FLIGHT_RECORDER_FILE} \ + || die "Failed to link jmc flightrecorder jar" + java-pkg_jar-from --into jfr.generic/external lz4-java lz4-java.jar ${LZ4_JAVA_FILE} \ + || die "Failed to link lz4 java jar" + java-pkg_jar-from --into jfr.generic/external owasp-java-encoder owasp-java-encoder.jar ${ENCODER_FILE} \ + || die "Failed to link owasp-java-encoder jar" +} + +src_install() { + # this is the visualvm cluster + insinto ${INSTALL_DIR} + doins -r build/cluster netbeans/{harness,platform} + + # configuration file that can be used to tweak visualvm startup parameters + insinto /etc/${PN} + newins launcher/visualvm.conf ${PN}.conf + sed -i "s%visualvm_default_userdir=.*%visualvm_default_userdir=\"\${HOME}/.visualvm\"%g" "${ED}/etc/${PN}/visualvm.conf" \ + || die "Failed to update userdir" + sed -i "s%visualvm_default_cachedir=.*%visualvm_default_cachedir=\"\${HOME}/.cache/visualvm\"%g" "${ED}/etc/${PN}/visualvm.conf" \ + || die "Failed to update cachedir" + echo -e "\nvisualvm_jdkhome=\"\$(java-config -O)\"" >> "${ED}/etc/${PN}/visualvm.conf" \ + || die "Failed to set jdk detection" + + # replace bundled stuff + pushd "${ED}/${INSTALL_DIR}/platform/core" > /dev/null || die + for name in asm{,-commons,-tree}; do + rm ${name}-9.2.jar && java-pkg_jar-from asm-9 ${name}.jar ${name}-9.2.jar || die + done + popd > /dev/null + + pushd "${ED}/${INSTALL_DIR}/platform/modules/ext" > /dev/null || die + rm hamcrest-core-1.3.jar && java-pkg_jar-from hamcrest-core-1.3 hamcrest-core.jar hamcrest-core-1.3.jar || die + rm jcommander-1.78.jar && java-pkg_jar-from jcommander jcommander.jar jcommander-1.78.jar || die + for name in jna{,-platform}; do + rm ${name}-5.12.1.jar && java-pkg_jar-from jna-4 ${name}.jar ${name}-5.12.1.jar || die + done + rm junit-4.13.2.jar && java-pkg_jar-from junit-4 junit.jar junit-4.13.2.jar || die + for name in junit-jupiter-{api,engine,params}; do + rm ${name}-5.6.0.jar && java-pkg_jar-from junit-5 ${name}.jar ${name}-5.6.0.jar || die + done + rm testng-6.14.3.jar && java-pkg_jar-from testng testng.jar testng-6.14.3.jar || die + popd > /dev/null + + pushd "${ED}/${INSTALL_DIR}/cluster/modules/ext" > /dev/null || die + rm ${COMMON_FILE} && java-pkg_jar-from jmc jmc-common.jar ${COMMON_FILE} || die + rm ${FLIGHT_RECORDER_FILE} && java-pkg_jar-from jmc jmc-flightrecorder.jar ${FLIGHT_RECORDER_FILE} || die + rm ${LZ4_JAVA_FILE} && java-pkg_jar-from lz4-java lz4-java.jar ${LZ4_JAVA_FILE} || die + rm ${ENCODER_FILE} && java-pkg_jar-from owasp-java-encoder owasp-java-encoder.jar ${ENCODER_FILE} || die + popd > /dev/null + + # visualvm runtime script + newbin "${FILESDIR}"/${PN}-r2.sh ${PN} + + # makes visualvm entry + make_desktop_entry ${PN} VisualVM java "Development;Java;" +} |