guix-commits
[Top][All Lists]
Advanced

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

12/26: gnu: Add classpath-jamvm-wrappers.


From: Ricardo Wurmus
Subject: 12/26: gnu: Add classpath-jamvm-wrappers.
Date: Mon, 22 May 2017 13:03:16 -0400 (EDT)

rekado pushed a commit to branch master
in repository guix.

commit 04d7cae2c4bc425a8cafac6cae2456ca929cecab
Author: Ricardo Wurmus <address@hidden>
Date:   Sun May 14 00:30:18 2017 +0200

    gnu: Add classpath-jamvm-wrappers.
    
    * 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 0faf2bd..7d1c027 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -491,6 +491,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")



reply via email to

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