From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:55668) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gAMF4-0008Hc-UY for guix-patches@gnu.org; Wed, 10 Oct 2018 17:42:08 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gAMF0-0000uD-Kh for guix-patches@gnu.org; Wed, 10 Oct 2018 17:42:06 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:39681) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gAMF0-0000tt-E8 for guix-patches@gnu.org; Wed, 10 Oct 2018 17:42:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1gAMF0-0006s2-7o for guix-patches@gnu.org; Wed, 10 Oct 2018 17:42:02 -0400 Subject: [bug#33008] [WIP] openjdk 9 and 10 Resent-Message-ID: Received: from eggs.gnu.org ([2001:4830:134:3::10]:55517) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gAMEM-0008Ew-IC for guix-patches@gnu.org; Wed, 10 Oct 2018 17:41:23 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gAMEG-00008j-Kj for guix-patches@gnu.org; Wed, 10 Oct 2018 17:41:22 -0400 Received: from lepiller.eu ([2a00:5884:8208::1]:35294) by eggs.gnu.org with esmtps (TLS1.0:DHE_RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1gAMED-0008Rx-Qq for guix-patches@gnu.org; Wed, 10 Oct 2018 17:41:14 -0400 Received: from localhost (static-176-182-42-79.ncc.abo.bbox.fr [176.182.42.79]) by lepiller.eu (OpenSMTPD) with ESMTPSA id 55937596 (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256:NO) for ; Wed, 10 Oct 2018 21:40:52 +0000 (UTC) Date: Wed, 10 Oct 2018 23:40:59 +0200 From: Julien Lepiller Message-ID: <20181010234059.337d3496@lepiller.eu> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="MP_/OZdsn9mJQil6wuBKqCIhHe." List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+kyle=kyleam.com@gnu.org Sender: "Guix-patches" To: 33008@debbugs.gnu.org --MP_/OZdsn9mJQil6wuBKqCIhHe. Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Content-Disposition: inline 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. --MP_/OZdsn9mJQil6wuBKqCIhHe. Content-Type: text/x-patch Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=0001-gnu-Add-openjdk9.patch >From 4d83922aa5e02b17e6af860aa827f24131476c81 Mon Sep 17 00:00:00 2001 From: Julien Lepiller 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 --MP_/OZdsn9mJQil6wuBKqCIhHe. Content-Type: text/x-patch Content-Transfer-Encoding: 7bit Content-Disposition: attachment; filename=0002-gnu-Add-openjdk10.patch >From b91996c2c84581253f113e5fc81ab0e32b3ad4ce Mon Sep 17 00:00:00 2001 From: Julien Lepiller 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) -- 2.18.0 --MP_/OZdsn9mJQil6wuBKqCIhHe.--