commit:     566e6e81d8ac31202742c386e8e607758da73bc6
Author:     Nguyen Dinh Dang Duong <dangduong31205 <AT> gmail <DOT> com>
AuthorDate: Sat Jul  5 13:42:07 2025 +0000
Commit:     Nguyen Dinh Dang Duong <dangduong31205 <AT> gmail <DOT> com>
CommitDate: Sat Jul  5 13:42:07 2025 +0000
URL:        https://gitweb.gentoo.org/repo/proj/guru.git/commit/?id=566e6e81

dev-java/jdtls-bin: new package, add 1.49.0-202507030451

Signed-off-by: Nguyen Dinh Dang Duong <dangduong31205 <AT> gmail.com>

 dev-java/jdtls-bin/Manifest                        |  1 +
 dev-java/jdtls-bin/files/wrapper                   | 31 +++++++++++++
 .../jdtls-bin-1.49.0_p202507030451.ebuild          | 53 ++++++++++++++++++++++
 dev-java/jdtls-bin/metadata.xml                    | 11 +++++
 4 files changed, 96 insertions(+)

diff --git a/dev-java/jdtls-bin/Manifest b/dev-java/jdtls-bin/Manifest
new file mode 100644
index 0000000000..c79af1f22f
--- /dev/null
+++ b/dev-java/jdtls-bin/Manifest
@@ -0,0 +1 @@
+DIST jdtls-1.49.0_p202507030451.tar.gz 49052555 BLAKE2B 
62bfc716129584fe1e9d1178b2627f3f3459a11824662ae4536aacaaf74b7dcb1f550fe37d3c358ec752926de46ee94c111757322cc05b9147bfacc2394c3397
 SHA512 
501e628c3bae38fa18ce9c0e88fa4c8d9cd82f2d5de9bf6586bd6efd537d1343ab7f00f05af4c200208bc6446435ce4ba02d84591d21734534092f6e37b85a38

diff --git a/dev-java/jdtls-bin/files/wrapper b/dev-java/jdtls-bin/files/wrapper
new file mode 100644
index 0000000000..152f48520b
--- /dev/null
+++ b/dev-java/jdtls-bin/files/wrapper
@@ -0,0 +1,31 @@
+#!/bin/sh
+
+share_dir="${XDG_DATA_HOME:-${HOME}/.local/share}/@PKGNAME@"
+state_dir="${XDG_STATE_HOME:-${HOME}/.local/state}/@PKGNAME@"
+
+workspace_dir="${state_dir}/$(pwd | sha1sum | cut -d' ' -f1)"
+
+mkdir -p "${workspace_dir}"
+
+if [ ! -d "${share_dir}" ]; then
+       cp -R /usr/share/@PKGNAME@/config_linux "${share_dir}"
+fi
+
+cd "/usr/libexec/@PKGNAME@"
+
+exec java \
+       -Declipse.application=org.eclipse.jdt.ls.core.id1 \
+       -Dosgi.bundles.defaultStartLevel=4 \
+       -Declipse.product=org.eclipse.jdt.ls.core.product \
+       -Dlog.protocol=true \
+       -Dlog.level=ALL \
+       -Dfile.encoding=utf-8 \
+       -Xmx1G \
+       --add-modules=ALL-SYSTEM \
+       --add-opens java.base/java.util=ALL-UNNAMED \
+       --add-opens java.base/java.lang=ALL-UNNAMED \
+       -jar ./plugins/org.eclipse.equinox.launcher_*.jar \
+       -configuration ${share_dir} \
+       -data "${workspace_dir}" \
+       "$@"
+

diff --git a/dev-java/jdtls-bin/jdtls-bin-1.49.0_p202507030451.ebuild 
b/dev-java/jdtls-bin/jdtls-bin-1.49.0_p202507030451.ebuild
new file mode 100644
index 0000000000..883f10b72c
--- /dev/null
+++ b/dev-java/jdtls-bin/jdtls-bin-1.49.0_p202507030451.ebuild
@@ -0,0 +1,53 @@
+# Copyright 2023 Gabriel Sanches
+# Distributed under the terms of the Zero-Clause BSD License
+
+EAPI=8
+
+inherit java-pkg-2
+
+MY_PV=${PV/_p/-}
+MY_PN=${PN%%-bin}
+MY_P="${MY_PN}-${PV}"
+
+DESCRIPTION="Java language server"
+SRC_URI="https://download.eclipse.org/jdtls/snapshots/jdt-language-server-${MY_PV}.tar.gz
 -> ${MY_P}.tar.gz"
+HOMEPAGE="https://github.com/eclipse/eclipse.jdt.ls";
+
+LICENSE="EPL"
+SLOT="0"
+KEYWORDS="~amd64"
+
+DEPEND=">=virtual/jre-1.8:*"
+RDEPEND="${DEPEND}"
+
+S="${WORKDIR}"
+
+JDTLS_LIBEXEC="/usr/libexec/${MY_PN}"
+JDTLS_SHARE="/usr/share/${MY_PN}"
+
+JDTLS_WRAPPER="${FILESDIR}/wrapper"
+
+src_install() {
+       dodir "${JDTLS_LIBEXEC}/bin"
+       dodir "${JDTLS_SHARE}"
+
+       cp -Rp plugins features "${ED}/${JDTLS_LIBEXEC}" || die "failed to copy"
+       cp -Rp bin/${MY_PN} "${ED}/${JDTLS_LIBEXEC}/bin" || die "failed to copy"
+       cp -Rp config_linux "${ED}/${JDTLS_SHARE}" || die "failed to copy"
+
+       sed ${JDTLS_WRAPPER} -e "s;@PKGNAME@;${MY_PN};g" > wrapper
+       dodir /usr/bin
+       newbin wrapper ${MY_PN}
+}
+
+pkg_postinst() {
+       elog "If the JDT Language Server fails to start (e.g. 
ClassNotFoundException),"
+       elog "you may be running into stale Eclipse OSGi cache issues."
+       elog
+       elog "To fix this, remove the following directories:"
+       elog "  rm -rf \"\${XDG_DATA_HOME}/jdtls\" or rm -rf 
\"~/.local/share/jdtls\""
+       elog "  rm -rf \"\${XDG_STATE_HOME}/jdtls\" or rm -rf 
\"~/.local/state/jdtls\""
+       elog
+       elog "They will be recreated cleanly on the next launch."
+}
+

diff --git a/dev-java/jdtls-bin/metadata.xml b/dev-java/jdtls-bin/metadata.xml
new file mode 100644
index 0000000000..023d5a234e
--- /dev/null
+++ b/dev-java/jdtls-bin/metadata.xml
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd";>
+<pkgmetadata>
+<maintainer type="project">
+<email>j...@gentoo.org</email>
+</maintainer>
+<maintainer type="person">
+<email>dangduong31...@gmail.com</email>
+<name>Nguyen Dinh Dang Duong</name>
+</maintainer>
+</pkgmetadata>

Reply via email to