From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:47760) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1gANqk-0003mu-QA for guix-patches@gnu.org; Wed, 10 Oct 2018 19:25:08 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1gANqg-00051n-8h for guix-patches@gnu.org; Wed, 10 Oct 2018 19:25:06 -0400 Received: from debbugs.gnu.org ([208.118.235.43]:39710) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1gANqg-00051d-1g for guix-patches@gnu.org; Wed, 10 Oct 2018 19:25:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1gANqf-0002pn-Qb for guix-patches@gnu.org; Wed, 10 Oct 2018 19:25:01 -0400 Subject: [bug#33008] [WIP] openjdk 9 and 10 Resent-Message-ID: References: <20181010234059.337d3496@lepiller.eu> From: Brett Gilio In-reply-to: <20181010234059.337d3496@lepiller.eu> Date: Wed, 10 Oct 2018 18:23:52 -0500 Message-ID: <87o9c1crnb.fsf@posteo.net> MIME-Version: 1.0 Content-Type: text/plain; format=flowed 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: Julien Lepiller Cc: 33008@debbugs.gnu.org Julien Lepiller writes: > 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 > 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 > 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) > > Hi Julien, Could you, or somebody, perhaps explain to me what the difference between the IcedTea distribution and OpenJDK is? -- Brett M. Gilio Free Software Foundation, Member https://gnu.org/s/guix/ | https://emacs.org