commit:     7f241da4af99a41bc3897d1047fa017dce5fa390
Author:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
AuthorDate: Wed Oct 18 20:10:57 2023 +0000
Commit:     Ulrich Müller <ulm <AT> gentoo <DOT> org>
CommitDate: Wed Oct 18 20:10:57 2023 +0000
URL:        https://gitweb.gentoo.org/repo/proj/emacs.git/commit/?id=7f241da4

jde removed 2022-05-29, bug 823611

Signed-off-by: Ulrich Müller <ulm <AT> gentoo.org>

 app-emacs/jde/Manifest                             |   1 +
 app-emacs/jde/files/70jde-gentoo.el                |  10 +
 .../jde/files/jde-2.4.0.1-classpath-gentoo.patch   |  69 +++++++
 .../jde/files/jde-2.4.0.1-fix-paths-gentoo.patch   | 218 +++++++++++++++++++++
 app-emacs/jde/files/jde-2.4.1-doc-directory.patch  |  53 +++++
 app-emacs/jde/jde-2.4.1-r2.ebuild                  |  77 ++++++++
 app-emacs/jde/metadata.xml                         |  31 +++
 7 files changed, 459 insertions(+)

diff --git a/app-emacs/jde/Manifest b/app-emacs/jde/Manifest
new file mode 100644
index 0000000..8bf849d
--- /dev/null
+++ b/app-emacs/jde/Manifest
@@ -0,0 +1 @@
+DIST jdee-2.4.1.tar.xz 2742232 BLAKE2B 
f022cb55583acc7846bc04b59e843050947819c6bb2494bbe08ac3895c15d914df28d3c3a50cfd945efa7ed507cda9906a42866c85463907544095377cc1bf07
 SHA512 
5ce5f0f84b2502e9af808f33210511e8b7682902b1f342d678fe42dd8f9f3690b90ef7bb22583550eb769818782c50f545d6baf47b52bc7f4502fab411ab5359

diff --git a/app-emacs/jde/files/70jde-gentoo.el 
b/app-emacs/jde/files/70jde-gentoo.el
new file mode 100644
index 0000000..c7fff6a
--- /dev/null
+++ b/app-emacs/jde/files/70jde-gentoo.el
@@ -0,0 +1,10 @@
+(add-to-list 'load-path "@SITELISP@")
+(require 'jde-autoload)
+
+(setq jde-java-directory "/usr/share/jde")
+(setq jde-bsh-jar-file "@BSH_JAR@")
+(setq jde-checkstyle-jar-file "@CHECKSTYLE_JAR@")
+(setq jde-checkstyle-style "/usr/share/checkstyle/checks/sun_checks.xml")
+(setq jde-html-directory "/usr/share/doc/@PF@/html")
+(setq bsh-html-directory "/usr/share/doc/@PF@/html")
+(setq jde-check-version-flag nil)

diff --git a/app-emacs/jde/files/jde-2.4.0.1-classpath-gentoo.patch 
b/app-emacs/jde/files/jde-2.4.0.1-classpath-gentoo.patch
new file mode 100644
index 0000000..47fdd4e
--- /dev/null
+++ b/app-emacs/jde/files/jde-2.4.0.1-classpath-gentoo.patch
@@ -0,0 +1,69 @@
+Initialise classpath for beanshell and checkstyle using java-config.
+Gentoo specific patch.
+
+--- jde-orig/lisp/beanshell.el
++++ jde/lisp/beanshell.el
+@@ -809,6 +809,14 @@
+   "BeanShell intended to be used independently of any other
+ Emacs package.")
+ 
++(defun bsh-get-gentoo-classpath ()
++  (or bsh-classpath
++      (with-temp-buffer
++      (call-process "java-config" nil t nil "-d" "-p" "bsh")
++      (skip-chars-backward "\n")
++      (setq bsh-classpath
++            (split-string (buffer-substring (point-min) (point)) ":+")))))
++
+ (defmethod initialize-instance ((this bsh-standalone-bsh) &rest fields)
+   "Constructor for the standard bsh BeanShell instance."
+   (call-next-method)
+@@ -845,7 +853,7 @@
+       bsh-vm)
+      (executable-find (if (eq system-type 'windows-nt) "javaw" "java"))))
+ 
+-  (oset this cp bsh-classpath)
++  (oset this cp (bsh-get-gentoo-classpath))
+ 
+   (oset this startup-dir bsh-startup-directory))
+ 
+--- jde-orig/lisp/jde-bsh.el
++++ jde/lisp/jde-bsh.el
+@@ -187,7 +187,7 @@
+                      (jde-get-tools-jar)
+                      (if ant-home (expand-file-name "lib" ant-home)))
+                     (jde-pi-get-bsh-classpath)
+-                    bsh-classpath
++                    (bsh-get-gentoo-classpath)
+                     (jde-expand-classpath (jde-get-global-classpath)))))))
+ 
+ ;; Create the BeanShell wrapper object.
+--- jde-orig/lisp/jde-checkstyle.el
++++ jde/lisp/jde-checkstyle.el
+@@ -305,6 +305,14 @@
+        (format "-D%s=%s" (car prop) (cdr prop)))
+      jde-checkstyle-expanded-properties))
+ 
++(defun jde-checkstyle-get-gentoo-classpath ()
++  (or jde-checkstyle-classpath
++      (with-temp-buffer
++      (call-process "java-config" nil t nil "-d" "-p" "checkstyle")
++      (skip-chars-backward "\n")
++      (setq jde-checkstyle-classpath
++            (split-string (buffer-substring (point-min) (point)) ":+")))))
++
+ (defmethod jde-checkstyle-exec ((this jde-checkstyle-checker))
+ 
+   (jde-checkstyle-create-checker-buffer this)
+@@ -327,9 +335,8 @@
+                 (jde-checkstyle-get-property-args this))
+               (oref this :interactive-args)
+               (list "-classpath"
+-                    (if jde-checkstyle-classpath
+-                        (jde-build-classpath jde-checkstyle-classpath)
+-                      (jde-normalize-path jde-checkstyle-jar-file)))
++                    (jde-build-classpath
++                     (jde-checkstyle-get-gentoo-classpath)))
+               (list jde-checkstyle-class)
+               (list "-c"
+                     (if jde-checkstyle-style

diff --git a/app-emacs/jde/files/jde-2.4.0.1-fix-paths-gentoo.patch 
b/app-emacs/jde/files/jde-2.4.0.1-fix-paths-gentoo.patch
new file mode 100644
index 0000000..a129b58
--- /dev/null
+++ b/app-emacs/jde/files/jde-2.4.0.1-fix-paths-gentoo.patch
@@ -0,0 +1,218 @@
+Make paths of directories and jar files configurable.
+
+Part of this patch was taken from Debian and heavily modified, see:
+http://patch-tracking.debian.net/patch/series/view/jde/2.3.5.1-5/0005-Set-the-location-of-needed-files-for-beanshell.el-an.patch
+
+--- jde-orig/lisp/beanshell.el
++++ jde/lisp/beanshell.el
+@@ -891,14 +891,21 @@
+ 
+ (add-to-list 'auto-mode-alist '("\\.bsh\\'" . bsh-script-mode))
+ 
++(defcustom bsh-html-directory
++  (let ((jde-dir (jde-find-jde-doc-directory)))
++    (if jde-dir
++      (expand-file-name "doc/html/bsh-ug" jde-dir)))
++  "Directory of the beanshell HTML documentation."
++  :group 'bsh
++  :type 'directory)
++
+ ;;;###autoload
+ (defun bsh-script-help ()
+   "Display BeanShell User's Guide."
+   (interactive)
+-  (let* ((jde-dir (jde-find-jde-doc-directory))
+-       (bsh-help
+-        (if jde-dir
+-            (expand-file-name "doc/html/bsh-ug/bsh-ug.html" jde-dir))))
++  (let ((bsh-help
++       (if bsh-html-directory
++           (expand-file-name "bsh-ug.html" bsh-html-directory))))
+     (if (and
+        bsh-help
+        (file-exists-p bsh-help))
+--- jde-orig/lisp/jde-bsh.el
++++ jde/lisp/jde-bsh.el
+@@ -91,22 +91,59 @@
+                  "The single instance of the JDEE's BeanShell."))
+   "Class of JDEE BeanShells. There is only one per Emacs session.")
+ 
++(defcustom jde-java-directory
++  (expand-file-name "java" (jde-find-jde-data-directory))
++  "Top-level directory of JDE Java files."
++  :group 'jde-project
++  :type 'directory)
++
++(defcustom jde-bsh-commands-directory
++  (expand-file-name "bsh-commands" jde-java-directory)
++  "Directory of beanshell commands."
++  :group 'bsh
++  :type 'directory)
++
++(defcustom jde-classes-directory
++  (expand-file-name "classes" jde-java-directory)
++  "Directory of JDE classes."
++  :group 'jde-project
++  :type 'directory)
++
++(defcustom jde-checkstyle-jar-file
++  (expand-file-name "lib/checkstyle-all.jar" jde-java-directory)
++  "Path of the checkstyle-jar file."
++  :group 'jde-project
++  :type 'file)
++
++(defcustom jde-regexp-jar-file
++  (expand-file-name "lib/jakarta-regexp.jar" jde-java-directory)
++  "Path of the regexp-jar file."
++  :group 'jde-project
++  :type 'file)
++
++(defcustom jde-jde-jar-file
++  (expand-file-name "lib/jde.jar" jde-java-directory)
++  "Path of the jde-jar file."
++  :group 'jde-project
++  :type 'file)
++
++(defcustom jde-bsh-jar-file
++  (expand-file-name "lib/bsh.jar" jde-java-directory)
++  "Path of the bsh-jar file."
++  :group 'jde-project
++  :type 'file)
++
+ (defmethod initialize-instance ((this jde-bsh) &rest fields)
+   "Constructor for the JDEE BeanShell instance."
+   (call-next-method)
+-  (let* ((jde-java-directory
+-        (concat
+-         (jde-find-jde-data-directory)
+-         "java/")))
+-
+-    (oset this bsh-cmd-dir (expand-file-name "bsh-commands" 
jde-java-directory))
+-    (oset this checkstyle-jar  (expand-file-name "lib/checkstyle-all.jar" 
jde-java-directory))
+-    (oset this regexp-jar (expand-file-name "lib/jakarta-regexp.jar" 
jde-java-directory))
+-    (oset this jde-classes-dir (expand-file-name "classes" 
jde-java-directory))
+-    (oset this jde-jar (expand-file-name "lib/jde.jar" jde-java-directory))
+-    (oset this jar  (expand-file-name "lib/bsh.jar" jde-java-directory))
+-    (oset this separate-error-buffer jde-bsh-separate-buffer)
+-    (oset-default 'jde-bsh the-bsh this)))
++  (oset this bsh-cmd-dir jde-bsh-commands-directory)
++  (oset this checkstyle-jar jde-checkstyle-jar-file)
++  (oset this regexp-jar jde-regexp-jar-file)
++  (oset this jde-classes-dir jde-classes-directory)
++  (oset this jde-jar jde-jde-jar-file)
++  (oset this jar jde-bsh-jar-file)
++  (oset this separate-error-buffer jde-bsh-separate-buffer)
++  (oset-default 'jde-bsh the-bsh this))
+ 
+ (defmethod bsh-create-buffer ((this jde-bsh))
+   "Creates the JDEE's beanshell buffer."
+@@ -150,6 +187,7 @@
+                      (jde-get-tools-jar)
+                      (if ant-home (expand-file-name "lib" ant-home)))
+                     (jde-pi-get-bsh-classpath)
++                    bsh-classpath
+                     (jde-expand-classpath (jde-get-global-classpath)))))))
+ 
+ ;; Create the BeanShell wrapper object.
+--- jde-orig/lisp/jde-bug.el
++++ jde/lisp/jde-bug.el
+@@ -2438,10 +2438,10 @@
+ (defun jde-bug-help ()
+   "Displays the JDEbug User's Guide."
+   (interactive)
+-  (let* ((jde-dir (jde-find-jde-doc-directory))
+-       (jdebug-help
+-        (if jde-dir
+-            (expand-file-name "doc/html/jdebug-ug/jdebug-ug.html" jde-dir))))
++  (let ((jdebug-help
++       (if jde-html-directory
++           (expand-file-name "jdebug-ug/jdebug-ug.html"
++                             jde-html-directory))))
+     (if (and
+        jdebug-help
+        (file-exists-p jdebug-help))
+--- jde-orig/lisp/jde-checkstyle.el
++++ jde/lisp/jde-checkstyle.el
+@@ -322,10 +322,6 @@
+        (vm-path (oref (jde-run-get-vm) :path))
+        (source-file
+         (concat (file-name-nondirectory buffer-file-name)))
+-       (jde-java-directory
+-        (concat
+-         (jde-find-jde-data-directory)
+-         "java/"))
+        (args (append
+               (unless jde-checkstyle-expanded-properties-file
+                 (jde-checkstyle-get-property-args this))
+@@ -333,13 +329,13 @@
+               (list "-classpath"
+                     (if jde-checkstyle-classpath
+                         (jde-build-classpath jde-checkstyle-classpath)
+-                      (jde-normalize-path
+-                       (expand-file-name "lib/checkstyle-all.jar" 
jde-java-directory))))
++                      (jde-normalize-path jde-checkstyle-jar-file)))
+               (list jde-checkstyle-class)
+               (list "-c"
+                     (if jde-checkstyle-style
+                         (jde-normalize-path jde-checkstyle-style)
+-                      (concat (jde-find-jde-data-directory) 
"java/lib/sun_checks.xml")))
++                      (expand-file-name "lib/sun_checks.xml"
++                                        jde-java-directory)))
+               (if jde-checkstyle-expanded-properties-file
+                   (list "-p" (jde-normalize-path 
jde-checkstyle-expanded-properties-file)))
+               (if jde-checkstyle-module-package-names-file
+--- jde-orig/lisp/jde-dbs.el
++++ jde/lisp/jde-dbs.el
+@@ -907,9 +907,6 @@
+                 (jde-normalize-path 'jde-run-working-directory)
+               source-directory))
+            (vm (oref (jde-run-get-vm) :path))
+-           (jde-java-directory
+-            (expand-file-name "java"
+-             (jde-find-jde-data-directory)))
+            (vm-args
+               (let (args)
+                 (setq args
+--- jde-orig/lisp/jde.el
++++ jde/lisp/jde.el
+@@ -1722,14 +1722,19 @@
+ jde.el."
+   (jde-find-jde-data-directory))
+ 
++(defcustom jde-html-directory
++  (expand-file-name "doc/html" (jde-find-jde-doc-directory))
++  "Directory of the JDE HTML documentation."
++  :group 'jde-project
++  :type 'directory)
++
+ ;;;###autoload
+ (defun jde-show-help ()
+   "Displays the JDE User's Guide in a browser."
+   (interactive)
+-  (let* ((jde-dir (jde-find-jde-doc-directory))
+-       (jde-help
+-        (if jde-dir
+-            (expand-file-name "doc/html/jde-ug/jde-ug.html" jde-dir))))
++  (let ((jde-help
++       (if jde-html-directory
++           (expand-file-name "jde-ug/jde-ug.html" jde-html-directory))))
+     (if (and
+        jde-help
+        (file-exists-p jde-help))
+--- jde-orig/lisp/jde-jdb.el
++++ jde/lisp/jde-jdb.el
+@@ -1459,10 +1459,10 @@
+ 
+ (defun jde-jdb-help ()
+   (interactive)
+-  (let* ((jde-dir (jde-find-jde-doc-directory))
+-       (jdb-ug-path
+-        (if jde-dir
+-            (expand-file-name "doc/html/jdb-ug/jdb-ug-frame.html" jde-dir))))
++  (let ((jdb-ug-path
++       (if jde-html-directory
++           (expand-file-name "jdb-ug/jdb-ug-frame.html"
++                             jde-html-directory))))
+     (if (and
+        jdb-ug-path
+        (file-exists-p jdb-ug-path))

diff --git a/app-emacs/jde/files/jde-2.4.1-doc-directory.patch 
b/app-emacs/jde/files/jde-2.4.1-doc-directory.patch
new file mode 100644
index 0000000..c96fcd8
--- /dev/null
+++ b/app-emacs/jde/files/jde-2.4.1-doc-directory.patch
@@ -0,0 +1,53 @@
+Move definition of jde-find-jde-doc-directory to jde-util.el.
+
+--- jdee-orig/lisp/beanshell.el
++++ jdee/lisp/beanshell.el
+@@ -82,7 +82,7 @@
+ (eval-when-compile
+   (require 'cl))
+ 
+-(declare-function jde-find-jde-doc-directory "jde" nil)
++(require 'jde-util)
+ 
+ (defgroup bsh nil
+   "Customizations for the Emacs inteface to Pat Neimeyer's Java
+--- jdee-orig/lisp/jde-util.el
++++ jdee/lisp/jde-util.el
+@@ -139,6 +139,17 @@
+         (if dir dir (jde-root)))
+       (jde-root))))
+ 
++(defun jde-find-jde-doc-directory ()
++  "Return the path of the JDE documentation directory.
++Returns  nil if the directory cannot be found. At some
++point, XEmacs will include the JDE. Versions of XEmacs
++that include JDE will store the JDE doc in a data
++directory called jde. On all other Emacs versions, the JDE
++expects to find the documentation in a subdirectory
++named doc of the directory that contains the file
++jde.el."
++  (jde-find-jde-data-directory))
++
+ (defun jde-temp-directory ()
+ "Get the location used by the host system to store temporary files."
+   (or (if (boundp 'temporary-file-directory) temporary-file-directory)
+--- jdee-orig/lisp/jde.el
++++ jdee/lisp/jde.el
+@@ -1762,17 +1762,6 @@
+ 
+ 
+ ;; JDE help
+-(defun jde-find-jde-doc-directory ()
+-  "Return the path of the JDE documentation directory.
+-Returns  nil if the directory cannot be found. At some
+-point, XEmacs will include the JDE. Versions of XEmacs
+-that include JDE will store the JDE doc in a data
+-directory called jde. On all other Emacs versions, the JDE
+-expects to find the documentation in a subdirectory
+-named doc of the directory that contains the file
+-jde.el."
+-  (jde-find-jde-data-directory))
+-
+ (defcustom jde-html-directory
+   (expand-file-name "doc/html" (jde-find-jde-doc-directory))
+   "Directory of the JDE HTML documentation."

diff --git a/app-emacs/jde/jde-2.4.1-r2.ebuild 
b/app-emacs/jde/jde-2.4.1-r2.ebuild
new file mode 100644
index 0000000..a4bcf20
--- /dev/null
+++ b/app-emacs/jde/jde-2.4.1-r2.ebuild
@@ -0,0 +1,77 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+JAVA_PKG_IUSE="doc source"
+
+inherit java-pkg-2 java-ant-2 elisp
+
+DESCRIPTION="Java Development Environment for Emacs"
+HOMEPAGE="http://jdee.sourceforge.net/";
+# snapshot of svn://svn.code.sf.net/p/jdee/code/branches/2.4.1 (rev 292)
+# (upstream's distfile misses build.xml)
+SRC_URI="mirror://gentoo/jdee-${PV}.tar.xz"
+
+LICENSE="GPL-2+"
+SLOT="0"
+KEYWORDS="amd64 x86 ~amd64-linux ~x86-linux ~ppc-macos"
+
+RDEPEND=">=virtual/jdk-1.8:*
+       dev-java/bsh:0
+       dev-java/junit:0
+       dev-util/checkstyle:0"
+DEPEND="${RDEPEND}
+       dev-java/ant-contrib:0"
+
+S="${WORKDIR}/jdee-${PV}"
+SITEFILE="70${PN}-gentoo.el"
+
+PATCHES=(
+       "${FILESDIR}/${PN}-2.4.0.1-fix-paths-gentoo.patch"
+       "${FILESDIR}/${PN}-2.4.0.1-classpath-gentoo.patch"
+       "${FILESDIR}/${PN}-2.4.1-doc-directory.patch"
+)
+
+pkg_setup() {
+       java-pkg-2_pkg_setup
+       elisp_pkg_setup
+}
+
+src_prepare() {
+       default
+
+       local bshjar csjar
+       bshjar=$(java-pkg_getjar --build-only bsh bsh.jar) || die
+       csjar=$(java-pkg_getjar --build-only checkstyle checkstyle.jar) || die
+       sed -e "s:@BSH_JAR@:${bshjar}:;s:@CHECKSTYLE_JAR@:${csjar}:" \
+               -e "s:@PF@:${PF}:" "${FILESDIR}/${SITEFILE}" >"${SITEFILE}" || 
die
+
+       cd java/lib || die
+       java-pkg_jar-from --build-only checkstyle checkstyle.jar 
checkstyle-all.jar
+       java-pkg_jar-from junit
+       java-pkg_jar-from bsh
+}
+
+src_compile() {
+       ANT_TASKS="ant-contrib" \
+               eant bindist $(usex doc source-doc "")
+}
+
+src_install() {
+       local dist="dist/jdee-${PV%_*}"
+
+       java-pkg_dojar ${dist}/java/lib/jde.jar
+       insinto "${JAVA_PKG_SHAREPATH}"
+       doins -r java/bsh-commands
+
+       use source && java-pkg_dosrc java/src/*
+       use doc && java-pkg_dojavadoc ${dist}/doc/java/api
+
+       elisp-install ${PN} ${dist}/lisp/*.{el,elc}
+       elisp-site-file-install "${SITEFILE}"
+
+       dobin ${dist}/lisp/jtags
+
+       dodoc -r doc/html
+       find "${ED}"/usr/share/doc -iname "*makefile" -delete || die
+}

diff --git a/app-emacs/jde/metadata.xml b/app-emacs/jde/metadata.xml
new file mode 100644
index 0000000..2a92351
--- /dev/null
+++ b/app-emacs/jde/metadata.xml
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd";>
+<pkgmetadata>
+<maintainer type="project">
+  <email>gnu-em...@gentoo.org</email>
+  <name>Gentoo GNU Emacs project</name>
+</maintainer>
+<maintainer type="project">
+  <email>j...@gentoo.org</email>
+  <name>Java</name>
+</maintainer>
+<longdescription>
+  The Java Development Environment for Emacs is a software package
+  that interfaces Emacs to command-line Java development tools (for
+  example, JavaSoft's JDK). JDEE features include:
+
+    * JDEE menu with compile, run, debug, build, browse, project, and
+      help commands
+    * syntax coloring
+    * auto indentation
+    * compile error to source links
+    * source-level debugging
+    * source code browsing
+    * make file support
+    * automatic code generation
+    * Java source interpreter (Pat Neimeyer's BeanShell)
+</longdescription>
+<upstream>
+  <remote-id type="sourceforge">jdee</remote-id>
+</upstream>
+</pkgmetadata>

Reply via email to