Toggle quote (260 lines)
> 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 <julien@lepiller.eu>
> 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 <julien@lepiller.eu>
> 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)
>
>