Hi, here are two patches that add openjdk9 and openjdk10. The
patches
must be applied on top of core-updates (or master once
core-updates is
merged) because of an issue with gcc on master. I haven't tested
them
too much, and they were probably too easy to build, so I
wouldn't be
surprised if we found something bad in them.
From 4d83922aa5e02b17e6af860aa827f24131476c81 Mon Sep 17
00:00:00 2001
From: Julien Lepiller <address@hidden>
Date: Wed, 10 Oct 2018 22:26:39 +0200
Subject: [PATCH 1/2] gnu: Add openjdk9.
* gnu/packages/java.scm (openjdk9): New variable.
---
gnu/packages/java.scm | 123
++++++++++++++++++++++++++++++++++++++++++
1 file changed, 123 insertions(+)
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 93f5bb6af..e53168713 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -46,6 +46,7 @@
#:use-module (gnu packages cpio)
#:use-module (gnu packages cups)
#:use-module (gnu packages compression)
+ #:use-module (gnu packages elf)
#:use-module (gnu packages fontutils)
#:use-module (gnu packages gawk)
#:use-module (gnu packages gettext)
@@ -1672,6 +1673,128 @@ new Date();"))
'("jdk" "openjdk-src" "corba-drop" "jaxp-drop"
"jaxws-drop"
"jdk-drop" "langtools-drop"
"hotspot-drop")))))))
+(define-public openjdk9
+ (package
+ (name "openjdk")
+ (version "9+181")
+ (source (origin
+ (method url-fetch)
+ (uri
"http://hg.openjdk.java.net/jdk/jdk/archive/3cc80be736f2.tar.bz2")
+ (file-name (string-append name "-" version
".tar.bz2"))
+ (sha256
+ (base32
+
"01ihmyf7k5z17wbr7xig7y40l9f01d5zjgkcmawn1102hw5kchpq"))))
+ (build-system gnu-build-system)
+ (outputs '("out" "jdk" "doc"))
+ (arguments
+ `(#:tests? #f; require jtreg
+ #:imported-modules
+ ((guix build syscalls)
+ ,@%gnu-build-system-modules)
+ #:phases
+ (modify-phases %standard-phases
+ (delete 'patch-source-shebangs)
+ (replace 'configure
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ ;; TODO: unbundle libpng and lcms
+ (invoke "bash" "./configure"
+ (string-append "--with-freetype="
(assoc-ref inputs "freetype"))
+ "--disable-freetype-bundling"
+ "--disable-warnings-as-errors"
+ "--disable-hotspot-gtest"
+ "--with-giflib=system"
+ "--with-libjpeg=system"
+ (string-append "--prefix=" (assoc-ref
outputs "out")))
+ #t))
+ (replace 'build
+ (lambda _
+ (with-output-to-file ".src-rev"
+ (lambda _
+ (display ,version)))
+ (setenv "GUIX_LD_WRAPPER_ALLOW_IMPURITIES" "yes")
+ (invoke "make" "all")
+ #t))
+ ;; Some of the libraries in the lib/ folder link to
libjvm.so.
+ ;; But that shared object is located in the server/
folder, so it
+ ;; cannot be found. This phase creates a symbolic
link in the
+ ;; lib/ folder so that the other libraries can find
it.
+ ;;
+ ;; See:
+ ;;
https://lists.gnu.org/archive/html/guix-devel/2017-10/msg00169.html
+ ;;
+ ;; FIXME: Find the bug in the build system, so that
this symlink is
+ ;; not needed.
+ (add-after 'install 'install-libjvm
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let* ((lib-out (string-append (assoc-ref outputs
"out")
+ "/lib"))
+ (lib-jdk (string-append (assoc-ref outputs
"jdk")
+ "/lib")))
+ (symlink (string-append lib-jdk
"/server/libjvm.so")
+ (string-append lib-jdk "/libjvm.so"))
+ (symlink (string-append lib-out
"/server/libjvm.so")
+ (string-append lib-out "/libjvm.so")))
+ #t))
+ (replace 'install
+ (lambda* (#:key outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (jdk (assoc-ref outputs "jdk"))
+ (doc (assoc-ref outputs "doc"))
+ (images (car (find-files "build"
".*-server-release"
+ #:directories?
#t))))
+ (copy-recursively (string-append images
"/images/jdk") jdk)
+ (copy-recursively (string-append images
"/images/jre") out)
+ (copy-recursively (string-append images
"/images/docs") doc))
+ #t))
+ (add-after 'install 'strip-zip-timestamps
+ (lambda* (#:key outputs #:allow-other-keys)
+ (use-modules (guix build syscalls))
+ (for-each (lambda (zip)
+ (let ((dir (mkdtemp!
"zip-contents.XXXXXX")))
+ (with-directory-excursion dir
+ (invoke "unzip" zip))
+ (delete-file zip)
+ (for-each (lambda (file)
+ (let ((s (lstat file)))
+ (unless (eq?
(stat:type s) 'symlink)
+ (format #t "reset
~a~%" file)
+ (utime file 0 0 0
0))))
+ (find-files dir #:directories?
#t))
+ (with-directory-excursion dir
+ (let ((files (find-files "." ".*"
#:directories? #t)))
+ (apply invoke "zip" "-0" "-X"
zip files)))))
+ (find-files (assoc-ref outputs "doc")
".*.zip$"))
+ #t)))))
+ (inputs
+ `(("alsa-lib" ,alsa-lib)
+ ("cups" ,cups)
+ ("fontconfig" ,fontconfig)
+ ("freetype" ,freetype)
+ ("giflib" ,giflib)
+ ("lcms" ,lcms)
+ ("libelf" ,libelf)
+ ("libjpeg" ,libjpeg)
+ ("libice" ,libice)
+ ("libpng" ,libpng)
+ ("libx11" ,libx11)
+ ("libxcomposite" ,libxcomposite)
+ ("libxi" ,libxi)
+ ("libxinerama" ,libxinerama)
+ ("libxrender" ,libxrender)
+ ("libxt" ,libxt)
+ ("libxtst" ,libxtst)))
+ (native-inputs
+ `(("icedtea-8" ,icedtea-8)
+ ("icedtea-8:jdk" ,icedtea-8 "jdk")
+ ("unzip" ,unzip)
+ ("which" ,which)
+ ("zip" ,zip)))
+ (home-page "http://openjdk.java.net/projects/jdk9/")
+ (synopsis "Java development kit")
+ (description
+ "This package provides the Java development kit OpenJDK.")
+ (license license:gpl2+)))
+
(define-public icedtea icedtea-8)
--
2.18.0
From b91996c2c84581253f113e5fc81ab0e32b3ad4ce Mon Sep 17
00:00:00 2001
From: Julien Lepiller <address@hidden>
Date: Wed, 10 Oct 2018 22:29:50 +0200
Subject: [PATCH 2/2] gnu: Add openjdk10.
* gnu/packages/java.scm (openjdk10): New variable.
---
gnu/packages/java.scm | 35 +++++++++++++++++++++++++++++++++++
1 file changed, 35 insertions(+)
diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index e53168713..36d7fcb2c 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -1795,6 +1795,41 @@ new Date();"))
"This package provides the Java development kit OpenJDK.")
(license license:gpl2+)))
+(define-public openjdk10
+ (package
+ (inherit openjdk9)
+ (name "openjdk")
+ (version "10+46")
+ (source (origin
+ (method url-fetch)
+ (uri
"http://hg.openjdk.java.net/jdk/jdk/archive/6fa770f9f8ab.tar.bz2")
+ (file-name (string-append name "-" version
".tar.bz2"))
+ (sha256
+ (base32
+
"0zywq2203b4hx4jms9vbwvjcj1d3k2v3qpx4s33729fkpmid97r4"))))
+ (arguments
+ (substitute-keyword-arguments (package-arguments
openjdk9)
+ ((#:phases phases)
+ `(modify-phases ,phases
+ (replace 'configure
+ (lambda* (#:key inputs outputs
#:allow-other-keys)
+ (invoke "bash" "./configure"
+ (string-append "--with-freetype="
(assoc-ref inputs "freetype"))
+ "--disable-freetype-bundling"
+ "--disable-warnings-as-errors"
+ "--disable-hotspot-gtest"
+ "--with-giflib=system"
+ "--with-libjpeg=system"
+ "--with-native-debug-symbols=zipped"
+ (string-append "--prefix=" (assoc-ref
outputs "out")))
+ #t))))))
+ (native-inputs
+ `(("openjdk9" ,openjdk9)
+ ("openjdk9:jdk" ,openjdk9 "jdk")
+ ("unzip" ,unzip)
+ ("which" ,which)
+ ("zip" ,zip)))))
+
(define-public icedtea icedtea-8)