From patchwork Mon Jan 28 07:50:30 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: =?utf-8?q?G=C3=A1bor_Boskovits?= X-Patchwork-Id: 866 Return-Path: X-Original-To: patchwork@mira.cbaines.net Delivered-To: patchwork@mira.cbaines.net Received: by mira.cbaines.net (Postfix, from userid 113) id D892D16ADF; Mon, 28 Jan 2019 07:51:09 +0000 (GMT) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM, T_DKIM_INVALID,URIBL_BLOCKED autolearn=ham autolearn_force=no version=3.4.0 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTP id 118B116ADD for ; Mon, 28 Jan 2019 07:51:09 +0000 (GMT) Received: from localhost ([127.0.0.1]:55536 helo=lists.gnu.org) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1go1hE-0003xQ-Dd for patchwork@mira.cbaines.net; Mon, 28 Jan 2019 02:51:08 -0500 Received: from eggs.gnu.org ([209.51.188.92]:41509) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1go1hA-0003uK-Ly for guix-patches@gnu.org; Mon, 28 Jan 2019 02:51:06 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1go1h9-0008Ke-4I for guix-patches@gnu.org; Mon, 28 Jan 2019 02:51:04 -0500 Received: from debbugs.gnu.org ([209.51.188.43]:48903) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1go1h9-0008KL-0h for guix-patches@gnu.org; Mon, 28 Jan 2019 02:51:03 -0500 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1go1h8-00020B-Kc for guix-patches@gnu.org; Mon, 28 Jan 2019 02:51:02 -0500 X-Loop: help-debbugs@gnu.org Subject: [bug#34230] [PATCH] gnu: Add openjdk 11. Resent-From: =?utf-8?b?R8OhYm9y?= Boskovits Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Mon, 28 Jan 2019 07:51:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: report 34230 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 34230@debbugs.gnu.org X-Debbugs-Original-To: guix-patches@gnu.org Received: via spool by submit@debbugs.gnu.org id=B.15486618567679 (code B ref -1); Mon, 28 Jan 2019 07:51:02 +0000 Received: (at submit) by debbugs.gnu.org; 28 Jan 2019 07:50:56 +0000 Received: from localhost ([127.0.0.1]:48184 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1go1h2-0001zm-4p for submit@debbugs.gnu.org; Mon, 28 Jan 2019 02:50:56 -0500 Received: from eggs.gnu.org ([209.51.188.92]:59438) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1go1gz-0001zW-M2 for submit@debbugs.gnu.org; Mon, 28 Jan 2019 02:50:54 -0500 Received: from lists.gnu.org ([209.51.188.17]:35522) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.71) (envelope-from ) id 1go1gu-0008DY-21 for submit@debbugs.gnu.org; Mon, 28 Jan 2019 02:50:48 -0500 Received: from eggs.gnu.org ([209.51.188.92]:41361) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1go1gs-0003tF-Cx for guix-patches@gnu.org; Mon, 28 Jan 2019 02:50:47 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1go1go-00089m-03 for guix-patches@gnu.org; Mon, 28 Jan 2019 02:50:44 -0500 Received: from mail-wm1-x344.google.com ([2a00:1450:4864:20::344]:51266) by eggs.gnu.org with esmtps (TLS1.0:RSA_AES_128_CBC_SHA1:16) (Exim 4.71) (envelope-from ) id 1go1gm-00087Z-AO for guix-patches@gnu.org; Mon, 28 Jan 2019 02:50:40 -0500 Received: by mail-wm1-x344.google.com with SMTP id b11so12847290wmj.1 for ; Sun, 27 Jan 2019 23:50:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=teAHxhSNU3t21gm3HpbFZjv/ayjePQ6S/jBt0xVVmN4=; b=XrYSkY+cgheoW9c7ySKRTIs9IBqUCwtgAzgPpdfLrYM10P4Wdw79c5vEERgyGraw5h ORzDRvKY4XcoSCHUuh9DycKLbKyUbpfZkiGroFVH5tIEIatNjNTCkP7JaMppMjr4Azq4 x0fg5xxbif3gPEi0HwecWMVIC+FW7gdnFJlSDjKTwS+yObhKXXblaiMAShA8CK7J6iKT N5emDhdc1gs41jFuQcazgedo+7W8RtMg5snXmmCcRo0I66HYwquLx9R09z1Ip1B5uxfX LP9jm/rmhfAVo44i/N80qXJPsucuTjWGBiwcaumv02kJ9ZG9XBYqMnYbJFGbzTJtvBke YikA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=teAHxhSNU3t21gm3HpbFZjv/ayjePQ6S/jBt0xVVmN4=; b=iJb6GakgzMV0vFrSlhI5eH1Ab8URBMNRH2ocG2Nbs3z/b439Gy8XytJ2XciloHA6zX ORVdihWZPqBi1od/JAzZVEquvXe1KP88/V6YRYAKH973R1qkfUoavDP6kLtXJgSNa7RB DKaGxSr5cbowbs3x/0eTVzHpM367siU5WuuRdMzpjwESJdaYwn/ApQp+JJqI8kLDbaZt Ddj+K7IFcJQX2GXCZPD8y4YsME7qwY0wFz1gRtZRGbO1IZq0YzRU68GryfHIZngXcIl3 X1klh/WDlVKOPYDy5UVIjyFqCqLZXTHAElwKvuu/qu02lFf84ISRWrw1y9qee31wcevh NxKw== X-Gm-Message-State: AJcUukdypp+g8BAxfPdXKz4uyq9LXoT+YOdhrOLIrXQ8SfqfASxwJc+6 Reha1uy/xtMFO2Ys6ksjmwg4fhI= X-Google-Smtp-Source: ALg8bN4oQnvQQJS47M8J2BEdRNjRGWRZpqBFxEvCW9C/U3JaqJDPLgSo7W3GDgSUnhIGW8uoBCScow== X-Received: by 2002:a1c:ad43:: with SMTP id w64mr15425895wme.32.1548661836560; Sun, 27 Jan 2019 23:50:36 -0800 (PST) Received: from localhost.localdomain (51B641C5.dsl.pool.telekom.hu. [81.182.65.197]) by smtp.gmail.com with ESMTPSA id k15sm146827073wru.8.2019.01.27.23.50.35 (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 27 Jan 2019 23:50:35 -0800 (PST) From: =?utf-8?b?R8OhYm9y?= Boskovits Date: Mon, 28 Jan 2019 08:50:30 +0100 Message-Id: <20190128075030.13331-1-boskovits@gmail.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 X-detected-operating-system: by eggs.gnu.org: Genre and OS details not recognized. X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.6.x X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-detected-operating-system: by eggs.gnu.org: GNU/Linux 2.2.x-3.x [generic] X-Received-From: 209.51.188.43 X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: =?utf-8?b?R8OhYm9y?= Boskovits Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches * gnu/packages/java.scm (openjdk11): New variable. --- gnu/packages/java.scm | 225 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 225 insertions(+) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 163c29627..a314dc995 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -1860,6 +1860,231 @@ new Date();")) ("which" ,which) ("zip" ,zip))))) +(define-public openjdk11 + (package + (name "openjdk") + (version "11.28") + (source (origin + (method url-fetch) + (uri "http://hg.openjdk.java.net/jdk/jdk/archive/76072a077ee1.tar.bz2") + (file-name (string-append name "-" version ".tar.bz2")) + (sha256 + (base32 + "0v705w1s9lrqalzahir78pk397rkk9gfvzq821yv8h3xha0bqi6w")) + (modules '((guix build utils))) + (snippet + `(begin + (for-each delete-file (find-files "." ".*.bin$")) + (for-each delete-file (find-files "." ".*.exe$")) + (for-each delete-file (find-files "." ".*.jar$")) + #t)))) + (build-system gnu-build-system) + (outputs '("out" "jdk" "doc")) + (arguments + `(#:imported-modules + ((guix build syscalls) + (ice-9 binary-ports) + (rnrs bytevectors) + ,@%gnu-build-system-modules) + #:tests? #f; requires jtreg + ;; TODO package jtreg + ;; disable parallel builds, as the openjdk build system does not like -j + #:parallel-build? #f + #:parallel-tests? #f + ;; reenable parallel builds and tests by adding the flags manually + #:make-flags (list (string-append "JOBS=" (number->string (parallel-job-count)))) + #:configure-flags + `("--disable-option-checking" ; --enable-fast-install default flag errors otherwise + "--disable-warnings-as-errors" + ;; make validate-runpath pass, see: http://issues.guix.info/issue/32894 + "--with-native-debug-symbols=zipped" + ;; do not use the bundled libraries + "--with-giflib=system" + "--with-lcms=system" + "--with-libjpeg=system" + "--with-libpng=system" + ;; allow the build system to locate the system freetype + ,(string-append "--with-freetype-include=" + (assoc-ref %build-inputs "freetype") "/include") + ,(string-append "--with-freetype-lib=" + (assoc-ref %build-inputs "freetype") "/lib")) + ;; TODO + #:phases + (modify-phases %standard-phases + (add-after 'patch-source-shebangs 'fix-java-shebangs + (lambda _ + ;; This file was "fixed" by patch-source-shebangs, but it requires + ;; this exact first line. + (substitute* "make/data/blacklistedcertsconverter/blacklisted.certs.pem" + (("^#!.*") "#! java BlacklistedCertsConverter SHA-256\n")) + #t)) + (replace 'build + (lambda _ + (with-output-to-file ".src-rev" + (lambda _ + (display ,version))) + (setenv "GUIX_LD_WRAPPER_ALLOW_IMPURITIES" "yes") + (invoke "make" "all") + #t)) + ;; jdk 11 does not build jre by default any more + ;; building it anyways + ;; for further information see: + ;; https://github.com/AdoptOpenJDK/openjdk-build/issues/356 + (add-after 'build 'build-jre + (lambda _ + (invoke "make" "legacy-jre-image") + #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)) + ;; 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)) + (add-after 'install 'strip-character-data-timestamps + (lambda* (#:key outputs #:allow-other-keys) + (use-modules (guix build syscalls)) + (let ((archive (string-append + (assoc-ref outputs "jdk") "/lib/src.zip")) + (dir (mkdtemp! "zip-contents.XXXXXX"))) + (with-directory-excursion dir + (invoke "unzip" archive)) + (delete-file archive) + (with-directory-excursion dir + (let ((char-data-files (find-files "." "CharacterData.*"))) + (for-each (lambda (file) + (substitute* file + (((string-append "This file was generated " + "AUTOMATICALLY from a template " + "file.*")) + (string-append "This file was generated " + "AUTOMATICALLY from a template " + "file")))) + char-data-files))) + (with-directory-excursion dir + (let ((files (find-files "." ".*" #:directories? #t))) + (apply invoke "zip" "-0" "-X" archive files)))))) + (add-after 'strip-character-data-timestamps 'strip-archive-timestamps + (lambda* (#:key outputs #:allow-other-keys) + (use-modules (guix build syscalls) + (ice-9 binary-ports) + (rnrs bytevectors)) + (letrec ((repack-archive + (lambda (archive) + (let ((dir (mkdtemp! "zip-contents.XXXXXX"))) + (with-directory-excursion dir + (invoke "unzip" archive)) + (delete-file archive) + (for-each (compose repack-archive canonicalize-path) + (find-files dir "(ct.sym|.*.jar)$")) + (let ((reset-file-timestamp + (lambda (file) + (let ((s (lstat file))) + (unless (eq? (stat:type s) 'symlink) + (format #t "reset ~a~%" file) + (utime file 0 0 0 0)))))) + (for-each reset-file-timestamp + (find-files dir #:directories? #t))) + (with-directory-excursion dir + (let ((files (find-files "." ".*" #:directories? #t))) + (apply invoke "zip" "-0" "-X" archive files))))))) + (for-each repack-archive + (find-files (assoc-ref outputs "doc") ".*.zip$")) + (for-each repack-archive + (find-files (assoc-ref outputs "jdk") + ".*.(zip|jar|diz)$")) + (repack-archive (string-append (assoc-ref outputs "jdk") "/lib/ct.sym")) + (let ((repack-jmod + (lambda (file-name) + (call-with-input-file file-name + (lambda (file) + (let ((header #vu8(#x4a #x4d #x01 #x00))) + (if (equal? (get-bytevector-n + file (bytevector-length header)) + header) + (let* ((header-length (bytevector-length header)) + (temp-file (mkstemp! + (string-copy + "temp-file.XXXXXX"))) + (temp-filename (port-filename temp-file)) + (content-length + (- (stat:size (stat file)) + header-length))) + (sendfile temp-file file content-length header-length) + (delete-file file-name) + (close-port temp-file) + (repack-archive (canonicalize-path temp-filename)) + (call-with-output-file file-name + (lambda (file) + (put-bytevector file header) + (call-with-input-file temp-filename + (lambda (temp-file) + (sendfile + file temp-file + (stat:size (stat temp-file)) 0))))))))))))) + (for-each repack-jmod + (find-files (assoc-ref outputs "jdk") ".*.jmod$"))) + #t))) + (add-after 'install 'remove-timestamp-from-api-summary + (lambda* (#:key outputs #:allow-other-keys) + (substitute* (string-append (assoc-ref outputs "doc") + "/api/overview-summary.html") + (("Generated by javadoc \\(11-internal\\).*$") + "Generated by javadoc (11-internal) -->\n")) + #t))))) + (inputs + `(("alsa-lib" ,alsa-lib) + ("cups" ,cups) + ("fontconfig" ,fontconfig) + ("freetype" ,freetype) + ("giflib" ,giflib) + ("lcms" ,lcms) + ("libjpeg" ,libjpeg) + ("libpng" ,libpng) + ("libx11" ,libx11) + ("libxext" ,libxext) + ("libxrender" ,libxrender) + ("libxt" ,libxt) + ("libxtst" ,libxtst))) + (native-inputs + `(("autoconf" ,autoconf) + ("openjdk10" ,openjdk10) + ("openjdk10:jdk" ,openjdk10 "jdk") + ("pkg-config" ,pkg-config) + ("unzip" ,unzip) + ("which" ,which) + ("zip" ,zip))) + (home-page "https://openjdk.java.net/projects/jdk/11/") + (synopsis "Java development kit") + (description + "This package provides the Java development kit OpenJDK.") + (license license:gpl2+))) + (define-public icedtea icedtea-8)