guix-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

bug#26966: [PATCH 09/22] gnu: Add classpath-jamvm-wrappers.


From: Ricardo Wurmus
Subject: bug#26966: [PATCH 09/22] gnu: Add classpath-jamvm-wrappers.
Date: Wed, 17 May 2017 19:18:52 +0200

* gnu/packages/java.scm (classpath-jamvm-wrappers): New variable.
---
 gnu/packages/java.scm | 45 +++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 45 insertions(+)

diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index f2df5b9f1..ae9a5b3d7 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -497,6 +497,51 @@ other small VMs it supports the full spec, including 
object finalisation and
 JNI.")
     (license license:gpl2+)))
 
+;; We need this because the tools provided by the latest release of GNU
+;; Classpath don't actually work with sablevm.
+(define classpath-jamvm-wrappers
+  (package (inherit classpath-on-sablevm)
+    (name "classpath-jamvm-wrappers")
+    (source #f)
+    (build-system trivial-build-system)
+    (arguments
+     `(#:modules ((guix build utils))
+       #:builder
+       (begin
+         (use-modules (guix build utils))
+         (let* ((bash      (assoc-ref %build-inputs "bash"))
+                (jamvm     (assoc-ref %build-inputs "jamvm"))
+                (classpath (assoc-ref %build-inputs "classpath"))
+                (bin       (string-append (assoc-ref %outputs "out")
+                                          "/bin/")))
+           (mkdir-p bin)
+           (for-each (lambda (tool)
+                       (with-output-to-file (string-append bin tool)
+                         (lambda _
+                           (format #t "#!~a/bin/sh
+~a/bin/jamvm -classpath ~a/share/classpath/tools.zip \
+gnu.classpath.tools.~a.~a $@"
+                                   bash jamvm classpath tool
+                                   (if (string=? "native2ascii" tool)
+                                       "Native2ASCII" "Main"))))
+                       (chmod (string-append bin tool) #o755))
+                     (list "javah"
+                           "rmic"
+                           "rmid"
+                           "orbd"
+                           "rmiregistry"
+                           "native2ascii"))
+           #t))))
+    (native-inputs
+     `(("bash" ,bash)
+       ("jamvm" ,jamvm-bootstrap)
+       ("classpath" ,classpath-on-sablevm)))
+    (inputs '())
+    (synopsis "Executables from GNU Classpath")
+    (description "This package provides wrappers around the tools provided by
+the GNU Classpath library.  They are executed by the JamVM virtual
+machine.")))
+
 (define-public java-swt
   (package
     (name "java-swt")
-- 
2.12.2







reply via email to

[Prev in Thread] Current Thread [Next in Thread]