From patchwork Sun May 17 13:51:30 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexey Abramov X-Patchwork-Id: 22130 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 7165D27BBE3; Sun, 17 May 2020 14:53:12 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.9 required=5.0 tests=BAYES_00,MAILING_LIST_MULTI, URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.2 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTP id 7879527BBE1 for ; Sun, 17 May 2020 14:53:10 +0100 (BST) Received: from localhost ([::1]:34314 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jaJj3-0002Il-Vp for patchwork@mira.cbaines.net; Sun, 17 May 2020 09:53:10 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39880) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jaJiw-0002GJ-FI for guix-patches@gnu.org; Sun, 17 May 2020 09:53:02 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:59377) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jaJiw-00027j-5c for guix-patches@gnu.org; Sun, 17 May 2020 09:53:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1jaJiw-0008Ky-4f for guix-patches@gnu.org; Sun, 17 May 2020 09:53:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#41360] [PATCH 01/12] gnu: java-openjfx-build: Add helpful patch. References: <20200517132829.1553311-1-levenson@mmer.org> In-Reply-To: <20200517132829.1553311-1-levenson@mmer.org> Resent-From: Alexey Abramov Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 17 May 2020 13:53:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 41360 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 41360@debbugs.gnu.org Received: via spool by 41360-submit@debbugs.gnu.org id=B41360.158972353631880 (code B ref 41360); Sun, 17 May 2020 13:53:02 +0000 Received: (at 41360) by debbugs.gnu.org; 17 May 2020 13:52:16 +0000 Received: from localhost ([127.0.0.1]:42664 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jaJi7-0008I2-Oh for submit@debbugs.gnu.org; Sun, 17 May 2020 09:52:16 -0400 Received: from mx4.mail.mmer.org ([178.22.66.29]:53062) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jaJi1-0008Hk-UU for 41360@debbugs.gnu.org; Sun, 17 May 2020 09:52:10 -0400 Received: from delta (unknown [10.147.19.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx4.mail.mmer.org (Postfix) with ESMTPSA id 70C089CC2E for <41360@debbugs.gnu.org>; Sun, 17 May 2020 13:21:17 +0000 (UTC) From: Alexey Abramov Date: Sun, 17 May 2020 15:51:30 +0200 Message-Id: <20200517135138.1651512-1-levenson@mmer.org> X-Mailer: git-send-email 2.26.2 MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches * gnu/packages/java.scm (java-openjfx-build)[source]: Use it. * gnu/packages/patches/java-openjfx-build-get_guix_jdk_version.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + gnu/packages/java.scm | 3 +- ...a-openjfx-build-get_guix_jdk_version.patch | 37 +++++++++++++++++++ 3 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/java-openjfx-build-get_guix_jdk_version.patch diff --git a/gnu/local.mk b/gnu/local.mk index 118a9e24eb..ad0ad930ad 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1106,6 +1106,7 @@ dist_patch_DATA = \ %D%/packages/patches/java-apache-ivy-port-to-latest-bouncycastle.patch \ %D%/packages/patches/java-commons-collections-fix-java8.patch \ %D%/packages/patches/java-jeromq-fix-tests.patch \ + %D%/packages/patches/java-openjfx-build-get_guix_jdk_version.patch \ %D%/packages/patches/java-powermock-fix-java-files.patch \ %D%/packages/patches/java-simple-xml-fix-tests.patch \ %D%/packages/patches/java-svg-salamander-Fix-non-det.patch \ diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index a4659240fc..7a1a2f0861 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -2499,7 +2499,8 @@ new Date();")) #t)) (sha256 (base32 - "0yg38mwpivswccv9n96k06x3iv82i4px1a9xg9l8dswzwmfj259f")))) + "0yg38mwpivswccv9n96k06x3iv82i4px1a9xg9l8dswzwmfj259f")) + (patches (search-patches "java-openjfx-build-get_guix_jdk_version.patch")))) (build-system ant-build-system) (arguments `(#:jar-name "java-openjfx.jar" diff --git a/gnu/packages/patches/java-openjfx-build-get_guix_jdk_version.patch b/gnu/packages/patches/java-openjfx-build-get_guix_jdk_version.patch new file mode 100644 index 0000000000..4ebdadc671 --- /dev/null +++ b/gnu/packages/patches/java-openjfx-build-get_guix_jdk_version.patch @@ -0,0 +1,37 @@ +From d156313340d3edcd78751ea8ed5e66c7668275c3 Mon Sep 17 00:00:00 2001 +From: Alexey Abramov +Date: Sun, 8 Mar 2020 20:07:22 +0100 +Subject: [PATCH] openjfx: Determine the version of Java in JDK_HOME + +Icedtea contains guix in its version, so build.gradle failes to run. Openjfx +packaging is not trivial, so you will probably need to try build it with +gradlew. + +--- + build.gradle | 5 ++--- + 1 file changed, 2 insertions(+), 3 deletions(-) + +diff --git a/build.gradle b/build.gradle +index df82f63..2c626cd 100644 +--- a/build.gradle ++++ b/build.gradle +@@ -742,9 +742,9 @@ try { + if (inStream.readLine() != null) { + String v = inStream.readLine(); + if (v != null) { +- int ib = v.indexOf(" (build "); ++ int ib = v.indexOf(" (guix build "); + if (ib != -1) { +- String ver = v.substring(ib + 8, v.size() - 1); ++ String ver = v.substring(ib + 13, v.size() - 1); + + defineProperty("jdkRuntimeVersion", ver) + defineProperty("jdkVersion", jdkRuntimeVersion.split("-")[0]) +@@ -3540,4 +3540,3 @@ compileTargets { t -> + } + ) + } +- +-- +2.24.1 + From patchwork Sun May 17 13:51:31 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexey Abramov X-Patchwork-Id: 22129 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 6A0A827BBE4; Sun, 17 May 2020 14:53:10 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.9 required=5.0 tests=BAYES_00,MAILING_LIST_MULTI, URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.2 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTP id 0BF7B27BBE1 for ; Sun, 17 May 2020 14:53:10 +0100 (BST) Received: from localhost ([::1]:34310 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jaJj3-0002IV-Iz for patchwork@mira.cbaines.net; Sun, 17 May 2020 09:53:09 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39882) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jaJiw-0002Go-RJ for guix-patches@gnu.org; Sun, 17 May 2020 09:53:02 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:59378) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jaJiw-00027n-IX for guix-patches@gnu.org; Sun, 17 May 2020 09:53:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1jaJiw-0008L5-HL for guix-patches@gnu.org; Sun, 17 May 2020 09:53:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#41360] [PATCH 02/12] gnu: java-openjfx-build: Fix indentation. Resent-From: Alexey Abramov Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 17 May 2020 13:53:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 41360 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 41360@debbugs.gnu.org Received: via spool by 41360-submit@debbugs.gnu.org id=B41360.158972353631888 (code B ref 41360); Sun, 17 May 2020 13:53:02 +0000 Received: (at 41360) by debbugs.gnu.org; 17 May 2020 13:52:16 +0000 Received: from localhost ([127.0.0.1]:42667 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jaJiC-0008I9-7U for submit@debbugs.gnu.org; Sun, 17 May 2020 09:52:16 -0400 Received: from mx4.mail.mmer.org ([178.22.66.29]:59905) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jaJi6-0008Hp-Qq for 41360@debbugs.gnu.org; Sun, 17 May 2020 09:52:11 -0400 Received: from delta (unknown [10.147.19.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx4.mail.mmer.org (Postfix) with ESMTPSA id A97C29CD79 for <41360@debbugs.gnu.org>; Sun, 17 May 2020 13:21:17 +0000 (UTC) From: Alexey Abramov Date: Sun, 17 May 2020 15:51:31 +0200 Message-Id: <20200517135138.1651512-2-levenson@mmer.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200517135138.1651512-1-levenson@mmer.org> References: <20200517135138.1651512-1-levenson@mmer.org> MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches --- gnu/packages/java.scm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 7a1a2f0861..b5757217dd 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -2486,10 +2486,10 @@ new Date();")) (source (origin (method hg-fetch) (uri (hg-reference - (url "http://hg.openjdk.java.net/openjfx/8u-dev/rt") - (changeset (string-append - (string-join (string-split version #\.) "u") - "-ga")))) + (url "http://hg.openjdk.java.net/openjfx/8u-dev/rt") + (changeset (string-append + (string-join (string-split version #\.) "u") + "-ga")))) (file-name (string-append name "-" version "-checkout")) (modules '((guix build utils))) (snippet From patchwork Sun May 17 13:51:32 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Alexey Abramov X-Patchwork-Id: 22134 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 6F00E27BBE1; Sun, 17 May 2020 14:53:38 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,MAILING_LIST_MULTI, PP_MIME_FAKE_ASCII_TEXT,URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.2 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTP id 11FCA27BBE3 for ; Sun, 17 May 2020 14:53:36 +0100 (BST) Received: from localhost ([::1]:35756 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jaJjT-0002xR-Kc for patchwork@mira.cbaines.net; Sun, 17 May 2020 09:53:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39894) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jaJiy-0002K1-Gl for guix-patches@gnu.org; Sun, 17 May 2020 09:53:04 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:59382) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jaJiy-00028L-65 for guix-patches@gnu.org; Sun, 17 May 2020 09:53:04 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1jaJiy-0008LZ-4d for guix-patches@gnu.org; Sun, 17 May 2020 09:53:04 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#41360] [PATCH 03/12] gnu: java-openjfx-graphics: Implement a complete compilation. Resent-From: Alexey Abramov Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 17 May 2020 13:53:04 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 41360 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 41360@debbugs.gnu.org Received: via spool by 41360-submit@debbugs.gnu.org id=B41360.158972355531978 (code B ref 41360); Sun, 17 May 2020 13:53:04 +0000 Received: (at 41360) by debbugs.gnu.org; 17 May 2020 13:52:35 +0000 Received: from localhost ([127.0.0.1]:42681 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jaJiJ-0008JQ-CK for submit@debbugs.gnu.org; Sun, 17 May 2020 09:52:35 -0400 Received: from mx4.mail.mmer.org ([178.22.66.29]:59911) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jaJi7-0008Hw-Dh for 41360@debbugs.gnu.org; Sun, 17 May 2020 09:52:19 -0400 Received: from delta (unknown [10.147.19.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx4.mail.mmer.org (Postfix) with ESMTPSA id 07B989CE5D for <41360@debbugs.gnu.org>; Sun, 17 May 2020 13:21:22 +0000 (UTC) From: Alexey Abramov Date: Sun, 17 May 2020 15:51:32 +0200 Message-Id: <20200517135138.1651512-3-levenson@mmer.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200517135138.1651512-1-levenson@mmer.org> References: <20200517135138.1651512-1-levenson@mmer.org> MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches --- gnu/packages/java.scm | 643 +++++++++++++++++++++++++++++++++++++++++- 1 file changed, 635 insertions(+), 8 deletions(-) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index b5757217dd..4b83e963ea 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -56,6 +56,7 @@ #:use-module (gnu packages gettext) #:use-module (gnu packages gcc) #:use-module (gnu packages gl) + #:use-module (gnu packages glib) #:use-module (gnu packages ghostscript) ;lcms #:use-module (gnu packages gnome) #:use-module (gnu packages groovy) @@ -2567,16 +2568,642 @@ distribution."))) (arguments `(#:jar-name "java-openjfx-graphics.jar" #:source-dir "modules/graphics/src/main/java" - #:tests? #f; require X - #:test-dir "modules/graphics/src/test")) + #:tests? #f ; requires X + #:test-dir "modules/graphics/src/test" + #:test-include (list "**/*Test.*") + #:modules ((guix build ant-build-system) + (guix build utils) + (srfi srfi-1) + (srfi srfi-26) + (ice-9 regex) + (ice-9 match)) + #:phases + (let* ((jdk (assoc-ref %build-inputs "jdk")) + (javac/h-flags + `(;; When javac is compiling code it doesn't link + ;; against rt.jar by default. Instead it uses special + ;; symbol file lib/ct.sym with class stubs. + ;; Surprisingly this file contains many but not *all* + ;; of internal classes. + "-XDignore.symbol.file" + ;; It’s an internal option for JDK 1.7+ that prevents + ;; the compiler from sharing a table that will never + ;; be reused. When shared, it can’t be garbage + ;; collected, continues to accumulate data, and + ;; therefore wastes memory. + "-XDuseUnsharedTable=true")) + (common-flags + `("-fno-strict-aliasing" "-fPIC" "-fno-omit-frame-pointer" ;; optimization flags + "-fstack-protector" + "-W" "-Wall" "-Wno-unused" "-Wno-parentheses" "-Werror=implicit-function-declaration")) + (cc-flags + `(,@common-flags "-c" "-ffunction-sections" "-fdata-sections" + "-I" ,(string-append jdk "/include") + "-I" ,(string-append jdk "/include/linux"))) + (link-flags + `("-static-libgcc" "-static-libstdc++" "-shared" ,@common-flags + "-z" "relro" + "-Wl,--gc-sections")) + (java-aux-class? + (lambda (class) + (string-match "\\$[0-9]+.class" class))) + (java-list-classes + (lambda (path) + ;; For each .java file we need to figure out what + ;; class the .java file belongs in and convert it to a + ;; class name. + (filter-map + (lambda (class) + (let* ((rx (make-regexp (string-append path file-name-separator-string "?"))) + (class (string-drop-right class (string-length ".class"))) + (class (match:suffix (regexp-exec rx class)))) + (if (java-aux-class? class) + #f + (string-join (string-split class #\/) ".")))) + (find-files path "\\.class$"))))) + (modify-phases %standard-phases + + (replace 'build + (lambda _ + ;; Do not mix different classes. There will be more stuff in build/classes + (invoke "ant" "compile" "-Dclasses.dir=modules/graphics/build/classes/java/main") + #t)) + + (add-after 'build 'chdir-to-a-module-directory + (lambda _ + (chdir (string-append (getcwd) "/modules/graphics")) + #t)) + + (add-after 'chdir-to-a-module-directory 'compile-prism-compilers + (lambda _ + (let ((prism-compilers-classes "build/classes/jsl-compilers/prism") + (prism-src "src/main/jsl-prism/")) + (mkdir-p prism-compilers-classes) + (apply invoke `("javac" + "-d" ,prism-compilers-classes + ,@javac/h-flags + ,@(find-files prism-src "\\.java")))) + #t)) + + (add-after 'compile-prism-compilers 'generate-prism-shaders + (lambda _ + (let ((prism-compilers-classes "build/classes/jsl-compilers/prism") + (prism-src "src/main/jsl-prism/") + (prism-gen-src "build/generated-src/jsl-prism")) + (mkdir-p prism-gen-src) + (for-each (lambda (file) + (apply invoke `("java" + "-cp" ,(string-join (list + ;; For CompileJSL + prism-compilers-classes + ;; jsl files are there + prism-src + (getenv "CLASSPATH")) + ":") + "CompileJSL" + "-i" ,prism-src + "-o" ,prism-gen-src + "-t" + "-pkg" "com/sun/prism" + "-d3d" + "-es2" + "-name" ,file))) + (find-files prism-src "\\.jsl$"))) + #t)) + + (add-after 'generate-prism-shaders 'compile-prism-shaders + (lambda _ + (let* ((classes "build/classes/java/main") + (prism-classes "build/classes/jsl-prism") + (prism-gen-src "build/generated-src/jsl-prism") + (prism-gen-shaders-src (string-append prism-gen-src "/com/sun/prism/shader"))) + (mkdir-p prism-classes) + (apply invoke `("javac" + "-d" ,prism-classes + "-cp" ,(string-append classes ":" (getenv "CLASSPATH")) + ,@javac/h-flags + ,@(find-files prism-gen-shaders-src)))) + #t)) + + (add-after 'compile-prism-shaders 'compile-decora-compilers + (lambda _ + (let ((classes "build/classes/java/main") + (decora-compilers-classes "build/classes/jsl-compilers/decora") + (decora-src "src/main/jsl-decora/")) + (mkdir-p decora-compilers-classes) + (apply invoke `("javac" + "-d" ,decora-compilers-classes + "-cp" ,(string-append classes ":" (getenv "CLASSPATH")) + ,@javac/h-flags + ,@(find-files decora-src "\\.java")))) + #t)) + + (add-after 'compile-decora-compilers 'generate-decora-shaders + (lambda _ + (let ((classes "build/classes/java/main") + (decora-classes "build/classes/jsl-decora/") + (decora-compilers-classes "build/classes/jsl-compilers/decora") + (decora-gen-src "build/generated-src/jsl-decora") + (decora-src "src/main/jsl-decora/") + (decora-components '([(file-name . "ColorAdjust") + (generator . "CompileJSL") + (outputs . "-all")] + [(file-name . "Brightpass") + (generator . "CompileJSL") + (outputs . "-all")] + [(file-name . "SepiaTone") + (generator . "CompileJSL") + (outputs . "-all")] + [(file-name . "PerspectiveTransform") + (generator . "CompileJSL") + (outputs . "-all")] + [(file-name . "DisplacementMap") + (generator . "CompileJSL") + (outputs . "-all")] + [(file-name . "InvertMask") + (generator . "CompileJSL") + (outputs . "-all")] + [(file-name . "Blend") + (generator . "CompileBlend") + (outputs . "-all")] + [(file-name . "PhongLighting") + (generator . "CompilePhong") + (outputs . "-all")] + [(file-name . "LinearConvolve") + (generator . "CompileLinearConvolve") + (outputs . "-hw")] + [(file-name . "LinearConvolveShadow") + (generator . "CompileLinearConvolve") + (outputs . "-hw")]))) + (mkdir-p decora-gen-src) + (for-each (match-lambda + ((('file-name . file-name) + ('generator . generator) + ('outputs . outputs)) + (apply invoke `("java" + "-cp" ,(string-join (cons* classes + decora-src + ;; CompileJSL + decora-compilers-classes + decora-classes + ;; We need resources from the build + "../../buildSrc/src/main/resources" + (list (getenv "CLASSPATH"))) + ":") + ,generator + "-i" ,decora-src + "-o" ,decora-gen-src + "-t" + "-pkg" "com/sun/scenario/effect" + ,outputs + ,file-name)))) + decora-components) + #t))) + + (add-after 'generate-decora-shaders 'compile-decora-shaders + (lambda _ + (let ((classes "build/classes/java/main") + (decora-classes "build/classes/jsl-decora/") + (decora-gen-src "build/generated-src/jsl-decora")) + (mkdir-p decora-classes) + (apply invoke `("javac" + "-d" ,decora-classes + "-cp" ,classes + ,@javac/h-flags + ,@(find-files decora-gen-src "\\.java$")))) + #t)) + + (add-after 'compile-decora-shaders 'compile-decora-native-lib + (lambda* (#:key inputs #:allow-other-keys) + (let* ((classes "build/classes/java/main") + (decora-gen-headers "build/generated-src/headers/jsl-decora") + (decora-gen-src "build/generated-src/jsl-decora") + (decora-native-lib "build/libs/jsl-decora/linux/libdecora_sse.so") + (decora-native-obj "build/native/jsl-decora/linux") + (decora-native-src "src/main/native-decora") + (decora-src "src/main/jsl-decora/") + (decora-classes "build/classes/jsl-decora/") + (decora-cc-flags `(,@cc-flags "-ffast-math"))) + (mkdir-p decora-gen-headers) + (apply invoke `("javah" + "-d" ,decora-gen-headers + "-cp" ,(string-join (list classes decora-classes) ":") + ,@javac/h-flags + ,@(filter (cut string-prefix? "com.sun.scenario.effect.impl.sw.sse" <>) + (append (java-list-classes classes) + (java-list-classes decora-classes))))) + (mkdir-p decora-native-obj) + (for-each (lambda (cc) + (apply invoke `("gcc" + ,@decora-cc-flags + "-I" ,decora-gen-headers + "-I" ,decora-gen-src + "-I" ,decora-native-src + "-o" ,(string-append decora-native-obj "/" + (basename cc ".cc") ".obj") + ,cc))) + (append (find-files decora-gen-src "\\.cc$") + (find-files decora-native-src "\\.cc$"))) + (mkdir-p (dirname decora-native-lib)) + (apply invoke `("g++" + "-o" ,decora-native-lib + ,@link-flags + ,@(find-files decora-native-obj "\\.obj$")))) + #t)) + + (add-after 'compile-decora-native-lib 'compile-linux-font-native-lib + (lambda* (#:key inputs #:allow-other-keys) + (let* ((classes "build/classes/java/main") + (font-gen-headers "build/generated-src/headers/font/linux") + (font-native-lib "build/libs/font/linux/libjavafx_font.so") + (font-native-obj "build/native/font/linux") + (font-native-src "src/main/native-font") + ;; + (font-cc-flags `("-DJFXFONT_PLUS" ,@cc-flags))) + (mkdir-p font-gen-headers) + (apply invoke `("javah" + "-d" ,font-gen-headers + "-cp" ,classes + ,@javac/h-flags + ,@(filter (lambda (class) + (or (string-prefix? "com.sun.javafx.font" class) + (string-prefix? "com.sun.javafx.text" class))) + (java-list-classes classes)))) + (mkdir-p font-native-obj) + (for-each (lambda (cc) + (apply invoke `("gcc" + ,@font-cc-flags + "-I" ,font-gen-headers + "-I" ,font-native-src + "-o" ,(string-append font-native-obj "/" + (basename cc ".c") ".obj") + ,cc))) + (find-files font-native-src "\\.c$")) + (mkdir-p (dirname font-native-lib)) + (apply invoke `("g++" + "-o" ,font-native-lib + ,@link-flags + ,@(find-files font-native-obj "\\.obj$")))) + #t)) + + (add-after 'compile-linux-font-native-lib 'compile-linux-font-freetype + (lambda* (#:key inputs #:allow-other-keys) + (let* ((classes "build/classes/java/main") + ;; + (font-freetype-gen-headers "build/generated-src/headers/fontFreetype/linux") + (font-freetype-native-lib "build/libs/fontFreetype/linux/libjavafx_font_freetype.so") + (font-freetype-native-obj "build/native/fontFreetype/linux") + (font-freetype-native-src "src/main/native-font/freetype.c") + (font-freetype-cc-flags `("-DJFXFONT_PLUS" "-D_ENABLE_PANGO" + "$(pkg-config --cflags freetype2)" ,@cc-flags)) + (font-freetype-link-flags `("$(pkg-config --libs freetype2)" ,@link-flags))) + (mkdir-p font-freetype-gen-headers) + (apply invoke `("javah" + "-d" ,font-freetype-gen-headers + "-cp" ,classes + ,@javac/h-flags + ,@(filter (cut string-prefix? "com.sun.javafx.font.freetype.OSFreetype" <>) + (java-list-classes classes)))) + (mkdir-p font-freetype-native-obj) + (invoke "bash" "-c" + (string-join `("gcc" + ,@font-freetype-cc-flags + "-I" ,font-freetype-gen-headers + "-I" ,(dirname font-freetype-native-src) + "-o" ,(string-append font-freetype-native-obj "/" + (basename font-freetype-native-src ".c") ".obj") + ,font-freetype-native-src))) + (mkdir-p (dirname font-freetype-native-lib)) + (invoke "bash" "-c" + (string-join `("g++" + "-o" ,font-freetype-native-lib + ,@font-freetype-link-flags + ,@(find-files font-freetype-native-obj "\\.obj$")))) + #t))) + + (add-after 'compile-linux-font-freetype 'compile-linux-font-pango-lib + (lambda* (#:key inputs #:allow-other-keys) + (let* ((classes "build/classes/java/main") + (font-pango-gen-headers "build/generated-src/headers/fontPango/linux") + (font-pango-native-lib "build/libs/fontPango/linux/libjavafx_font_pango.so") + (font-pango-native-obj "build/native/fontPango/linux") + (font-pango-native-src "src/main/native-font/pango.c") + (font-pango-cc-flags `("-DJFXFONT_PLUS" "-D_ENABLE_PANGO" + "$(pkg-config --cflags pangoft2)" ,@cc-flags)) + (font-pango-link-flags `("$(pkg-config --libs pangoft2)" ,@link-flags))) + (mkdir-p font-pango-gen-headers) + (apply invoke `("javah" + "-d" ,font-pango-gen-headers + "-cp" ,classes + ,@javac/h-flags + ,@(filter (cut string-prefix? "com.sun.javafx.font.freetype.OSPango" <>) + (java-list-classes classes)))) + (mkdir-p font-pango-native-obj) + (invoke "bash" "-c" + (string-join `("gcc" + ,@font-pango-cc-flags + "-I" ,font-pango-gen-headers + "-I" ,(dirname font-pango-native-src) + "-o" ,(string-append font-pango-native-obj "/" + (basename font-pango-native-src ".c") ".obj") + ,font-pango-native-src))) + (mkdir-p (dirname font-pango-native-lib)) + (invoke "bash" "-c" + (string-join `("g++" + ,@font-pango-link-flags + "-o" ,font-pango-native-lib + ,@(find-files font-pango-native-obj "\\.obj$"))))) + #t)) + + (add-after 'compile-linux-font-pango-lib 'compile-linux-glass-lib + (lambda* (#:key inputs #:allow-other-keys) + (let* ((classes "build/classes/java/main") + ;; glass + (glass-gen-headers "build/generated-src/headers/glass/linux") + (glass-native-lib "build/libs/glass/linux/libglass.so") + (glass-native-obj "build/native/glass/linux/glass") + (glass-native-src "src/main/native-glass/gtk/launcher.c") + (glass-cc-flags + `(,@cc-flags + "$(pkg-config --cflags glib-2.0 gdk-2.0 gtk+-2.0 gthread-2.0 xtst)" + "-Werror")) + (glass-link-flags + `(,@link-flags "$(pkg-config --libs x11)" "-ldl")) + ;; glass-gtk2 + (gtk (assoc-ref inputs "gtk")) + (glass-gtk2-native-obj "build/native/glass/linux/glassgtk2") + (glass-gtk2-native-src (dirname glass-native-src)) + (glass-gtk2-native-lib "build/libs/glass/linux/libglassgtk2.so") + (glass-gtk2-cc-flags + `(,@cc-flags + "$(pkg-config --cflags gtk+-2.0 gthread-2.0 xtst)" + "-Werror")) + (glass-gtk2-link-flags + `(,@link-flags + "$(pkg-config --libs gtk+-2.0 gthread-2.0 xtst)")) + ;; glass-gtk3 + (gtk3 (assoc-ref inputs "gtk3")) + (glass-gtk3-native-obj "build/native/glass/linux/glassgtk3") + (glass-gtk3-native-src (dirname glass-native-src)) + (glass-gtk3-native-lib "build/libs/glass/linux/libglassgtk3.so") + (glass-gtk3-cc-flags + `(,@cc-flags + "$(pkg-config --cflags gtk+-3.0 gthread-2.0 xtst)" + "-Wno-deprecated-declarations" "-Werror")) + (glass-gtk3-link-flags + `(,@link-flags "$(pkg-config --libs gtk+-3.0 gthread-2.0 xtst)"))) + ;; glass + (mkdir-p glass-gen-headers) + (apply invoke `("javah" + "-d" ,glass-gen-headers + "-cp" ,(string-append classes ":" (getenv "CLASSPATH")) + ,@javac/h-flags + ,@(filter (lambda (class) + (or (string-prefix? "com.sun.glass.events" class) + (string-prefix? "com.sun.glass.ui.gtk" class) + (string-prefix? "com.sun.glass.ui" class))) + (java-list-classes classes)))) + (mkdir-p glass-native-obj) + (invoke "bash" "-c" + (string-join `("gcc" + ,@glass-cc-flags + "-I" ,glass-gen-headers + "-I" ,(dirname glass-native-src) + "-o" ,(string-append glass-native-obj "/" + (basename glass-native-src ".c") ".obj") + ,glass-native-src))) + (mkdir-p (dirname glass-native-lib)) + (invoke "bash" "-c" + (string-join `("g++" + ,@glass-link-flags + "-o" ,glass-native-lib + ,@(find-files glass-native-obj "\\.obj$")))) + ;; gtk2 + (mkdir-p glass-gtk2-native-obj) + (for-each (lambda (cpp) + (invoke "bash" "-c" + (string-join `("gcc" + ,@glass-gtk2-cc-flags + "-I" ,glass-gen-headers + "-o" ,(string-append glass-gtk2-native-obj "/" + (basename cpp ".cpp") ".obj") + ,cpp)))) + (find-files glass-gtk2-native-src "\\.cpp$")) + (mkdir-p (dirname glass-gtk2-native-lib)) + (invoke "bash" "-c" + (string-join `("g++" + ,@glass-gtk2-link-flags + "-o" ,glass-gtk2-native-lib + ,@(find-files glass-gtk2-native-obj "\\.obj$")))) + ;; gtk3 + (mkdir-p glass-gtk3-native-obj) + (for-each (lambda (cpp) + (invoke "bash" "-c" + (string-join `("gcc" + ,@glass-gtk3-cc-flags + "-I" ,glass-gen-headers + "-o" ,(string-append glass-gtk3-native-obj "/" + (basename cpp ".cpp") ".obj") + ,cpp)))) + (find-files glass-gtk3-native-src "\\.cpp$")) + (mkdir-p (dirname glass-gtk3-native-lib)) + (invoke "bash" "-c" + (string-join `("g++" + ,@glass-gtk3-link-flags + "-o" ,glass-gtk3-native-lib + ,@(find-files glass-gtk3-native-obj "\\.obj$"))))) + #t)) + + (add-after 'compile-linux-glass-lib 'compile-linux-iio + (lambda* (#:key inputs #:allow-other-keys) + (let* ((classes "build/classes/java/main") + (iio-gen-headers "build/generated-src/headers/iio/linux") + (iio-native-lib "build/libs/iio/linux/libjavafx_iio.so") + (iio-native-obj "build/native/iio/linux") + (iio-native-src "src/main/native-iio") + (iio-cc-flags cc-flags) + (iio-link-flags link-flags)) + (mkdir-p iio-gen-headers) + (apply invoke `("javah" + "-d" ,iio-gen-headers + "-cp" ,(string-append classes ":" (getenv "CLASSPATH")) + ,@javac/h-flags + ,@(filter (cut string-prefix? "com.sun.javafx.iio" <>) + (java-list-classes classes)))) + (mkdir-p iio-native-obj) + (for-each (lambda (c) + (invoke "bash" "-c" + (string-join `("gcc" + ,@iio-cc-flags + "-I" ,iio-gen-headers + "-o" ,(string-append iio-native-obj "/" + (basename c ".c") ".obj") + ,c)))) + (find-files iio-native-src "\\.c$")) + (mkdir-p (dirname iio-native-lib)) + (invoke "bash" "-c" + (string-join `("g++" + ,@iio-link-flags + "-o" ,iio-native-lib + ,@(find-files iio-native-obj "\\.obj$")))) + #t))) + + (add-after 'compile-linux-iio 'compile-linux-prism + (lambda* (#:key inputs #:allow-other-keys) + (let* ((classes "build/classes/java/main") + (prism-gen-headers "build/generated-src/headers/prism/linux") + (prism-native-lib "build/libs/prism/linux/libprism_common.so") + (prism-native-obj "build/native/prism/linux") + (prism-native-src "src/main/native-prism") + (prism-cc-flags `(,@cc-flags "-DINLINE=inline")) + (prism-link-flags link-flags)) + (mkdir-p prism-gen-headers) + (apply invoke `("javah" + "-d" ,prism-gen-headers + "-cp" ,(string-append classes ":" (getenv "CLASSPATH")) + ,@javac/h-flags + ,@(filter (lambda (class) + (or (string-prefix? "com.sun.prism.impl" class) + (string-prefix? "com.sun.prism.PresentableState" class))) + (java-list-classes classes)))) + (mkdir-p prism-native-obj) + (for-each (lambda (c) + (invoke "bash" "-c" + (string-join `("gcc" + ,@prism-cc-flags + "-I" ,prism-gen-headers + "-I" ,prism-native-src + "-o" ,(string-append prism-native-obj "/" + (basename c ".c") ".obj") + ,c)))) + (find-files prism-native-obj "\\.c$")) + (mkdir-p (dirname prism-native-lib)) + (invoke "bash" "-c" + (string-join `("g++" + ,@prism-link-flags + "-o" ,prism-native-lib + ,@(find-files prism-native-obj "\\.obj$")))) + #t))) + + (add-after 'compile-linux-prism 'compile-linux-prism-es2 + (lambda* (#:key inputs #:allow-other-keys) + (let* ((classes "build/classes/java/main") + (prism-es2-gen-headers "build/generated-src/headers/prismES2/linux") + (prism-es2-native-lib "build/libs/prism/linux/libprism_es2.so") + (prism-es2-native-obj "build/native/prismES2/linux") + (prism-es2-native-src "src/main/native-prism-es2") + (prism-es2-cc-flags `("-DLINUX" ,@cc-flags)) + (prism-es2-link-flags + `(,@link-flags "$(pkg-config --libs x11 xxf86vm gl)")) + ;; We need all *.c files in the root and only those + ;; which are in a specific directories. + (filter-src + (lambda (abs _) + (or (regexp-exec (make-regexp (string-append prism-es2-native-src "[^/]*\\.c$")) + abs) + (regexp-exec (make-regexp (string-append prism-es2-native-src "(x11/|GL/)")) + abs))))) + (mkdir-p prism-es2-gen-headers) + (apply invoke `("javah" + "-d" ,prism-es2-gen-headers + "-cp" ,(string-append classes ":" (getenv "CLASSPATH")) + ,@javac/h-flags + ,@(filter (cut string-prefix? "com.sun.prism.es2" <>) + (java-list-classes classes)))) + (mkdir-p prism-es2-native-obj) + (for-each (lambda (c) + (apply invoke `("gcc" + ,@prism-es2-cc-flags + "-I" ,glass-native-src + "-I" ,prism-es2-gen-headers + "-I" ,prism-es2-native-src + "-I" ,(string-append prism-es2-native-src "/GL") + "-I" ,(string-append prism-es2-native-src "/x11") + "-o" ,(string-append prism-es2-native-obj "/" + (basename c ".c") ".obj") + ,c))) + (find-files prism-es2-native-src filter-src)) + (mkdir-p (dirname prism-es2-native-lib)) + (invoke "bash" "-c" + (string-join `("g++" + ,@prism-es2-link-flags + "-o" ,prism-es2-native-lib + ,@(find-files prism-es2-native-obj "\\.obj$")))) + #t))) + + (add-after 'compile-linux-prism-es2 'compile-linux-prism-sw + (lambda* (#:key inputs #:allow-other-keys) + (let* ((classes "build/classes/java/main") + (prism-sw-gen-headers "build/generated-src/headers/prismSW/linux") + (prism-sw-native-lib "build/libs/prism/linux/libprism_sw.so") + (prism-sw-native-obj "build/native/prismSW/linux") + (prism-sw-native-src "src/main/native-prism-sw") + ;; + (prism-sw-cc-flags `(,@cc-flags "-DINLINE=inline")) + (prism-sw-link-flags link-flags)) + (mkdir-p prism-sw-gen-headers) + (apply invoke `("javah" + "-d" ,prism-sw-gen-headers + "-cp" ,(string-append classes ":" (getenv "CLASSPATH")) + ,@javac/h-flags + ,@(filter (cut string-prefix? "com.sun.pisces" <>) + (java-list-classes classes)))) + (mkdir-p prism-sw-native-obj) + (for-each (lambda (c) + (invoke "bash" "-c" + (string-join `("gcc" + ,@prism-sw-cc-flags + "-I" ,prism-sw-gen-headers + "-I" ,prism-sw-native-src + "-o" ,(string-append prism-sw-native-obj "/" + (basename c ".c") ".obj") + ,c)))) + (find-files prism-sw-native-src "\\.c$")) + (mkdir-p (dirname prism-sw-native-lib)) + (apply invoke `("g++" + ,@prism-sw-link-flags + "-o" ,prism-sw-native-lib + ,@(find-files prism-sw-native-obj "\\.obj$"))) + #t))) + + (add-before 'check 'chdir-to-root + (lambda _ + (chdir (dirname (dirname (getcwd)))) + #t)) + + (add-after 'chdir-to-root 'install-native + (lambda* (#:key outputs #:allow-other-keys) + (let ((lib (string-append (assoc-ref outputs "out") "/lib"))) + (for-each (lambda (file) + (install-file file lib)) + (find-files "." "\\.so$")) + #t))) + + (add-after 'install-native 'build-jar + (lambda _ + (let* ((module (string-append (getcwd) "/modules/graphics")) + (resources (string-append module "/src/main/resources")) + (classes (string-append module "/build/classes/java/main"))) + (copy-recursively resources classes) + + (invoke "ant" "jar" (string-append "-Dclasses.dir=" classes))) + #t)))))) + (native-inputs + `(("freetype" ,freetype) + ("fontconfig" ,fontconfig) + ("gcc" ,gcc) + ("glib" ,glib) + ("zlib" ,zlib) + ("gtk" ,gtk+-2) + ("gtk3" ,gtk+) + ("jpeg" ,libjpeg) + ("libxtst" ,libxtst) + ("pango" ,pango) + ("libpng" ,libpng) + ("pkg-config" ,pkg-config))) (propagated-inputs `(("java-openjfx-base" ,java-openjfx-base) - ("java-swt" ,java-swt))) - (description "OpenJFX is a client application platform for desktop, -mobile and embedded systems built on Java. Its goal is to produce a -modern, efficient, and fully featured toolkit for developing rich client -applications. This package contains graphics-related classes for the -OpenJFX distribution."))) + ("java-swt" ,java-swt))))) (define-public java-openjfx-media (package (inherit java-openjfx-build) From patchwork Sun May 17 13:51:33 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexey Abramov X-Patchwork-Id: 22136 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 970B127BBE3; Sun, 17 May 2020 14:54:00 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.9 required=5.0 tests=BAYES_00,MAILING_LIST_MULTI, URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.2 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTP id CF1E427BBE1 for ; Sun, 17 May 2020 14:53:59 +0100 (BST) Received: from localhost ([::1]:36804 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jaJjr-0003O9-BY for patchwork@mira.cbaines.net; Sun, 17 May 2020 09:53:59 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39906) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jaJiz-0002Ma-Bp for guix-patches@gnu.org; Sun, 17 May 2020 09:53:05 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:59384) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jaJiz-00028d-1z for guix-patches@gnu.org; Sun, 17 May 2020 09:53:05 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1jaJiz-0008Lo-0a for guix-patches@gnu.org; Sun, 17 May 2020 09:53:05 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#41360] [PATCH 04/12] gnu: java-openjfx-build: Fix openjfx-swing component build for JDKu8 Resent-From: Alexey Abramov Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 17 May 2020 13:53:04 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 41360 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 41360@debbugs.gnu.org Received: via spool by 41360-submit@debbugs.gnu.org id=B41360.158972356031998 (code B ref 41360); Sun, 17 May 2020 13:53:04 +0000 Received: (at 41360) by debbugs.gnu.org; 17 May 2020 13:52:40 +0000 Received: from localhost ([127.0.0.1]:42685 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jaJiW-0008Jr-IX for submit@debbugs.gnu.org; Sun, 17 May 2020 09:52:40 -0400 Received: from mx4.mail.mmer.org ([178.22.66.29]:59917) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jaJiC-0008IF-Oa for 41360@debbugs.gnu.org; Sun, 17 May 2020 09:52:20 -0400 Received: from delta (unknown [10.147.19.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx4.mail.mmer.org (Postfix) with ESMTPSA id A03749CE85 for <41360@debbugs.gnu.org>; Sun, 17 May 2020 13:21:23 +0000 (UTC) From: Alexey Abramov Date: Sun, 17 May 2020 15:51:33 +0200 Message-Id: <20200517135138.1651512-4-levenson@mmer.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200517135138.1651512-1-levenson@mmer.org> References: <20200517135138.1651512-1-levenson@mmer.org> MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches * gnu/packages/java.scm (java-openjfx-build)[source]: Use it. * gnu/packages/patches/java-openjfx-build-swing-compile-JFXPanel-with-JDK-8.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + gnu/packages/java.scm | 3 +- ...ld-swing-compile-JFXPanel-with-JDK-8.patch | 63 +++++++++++++++++++ 3 files changed, 66 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/java-openjfx-build-swing-compile-JFXPanel-with-JDK-8.patch diff --git a/gnu/local.mk b/gnu/local.mk index ad0ad930ad..eaaa54e6f8 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1107,6 +1107,7 @@ dist_patch_DATA = \ %D%/packages/patches/java-commons-collections-fix-java8.patch \ %D%/packages/patches/java-jeromq-fix-tests.patch \ %D%/packages/patches/java-openjfx-build-get_guix_jdk_version.patch \ + %D%/packages/patches/java-openjfx-build-swing-compile-JFXPanel-with-JDK-8.patch \ %D%/packages/patches/java-powermock-fix-java-files.patch \ %D%/packages/patches/java-simple-xml-fix-tests.patch \ %D%/packages/patches/java-svg-salamander-Fix-non-det.patch \ diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 4b83e963ea..e38e691ee5 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -2501,7 +2501,8 @@ new Date();")) (sha256 (base32 "0yg38mwpivswccv9n96k06x3iv82i4px1a9xg9l8dswzwmfj259f")) - (patches (search-patches "java-openjfx-build-get_guix_jdk_version.patch")))) + (patches (search-patches "java-openjfx-build-get_guix_jdk_version.patch" + "java-openjfx-build-swing-compile-JFXPanel-with-JDK-8.patch")))) (build-system ant-build-system) (arguments `(#:jar-name "java-openjfx.jar" diff --git a/gnu/packages/patches/java-openjfx-build-swing-compile-JFXPanel-with-JDK-8.patch b/gnu/packages/patches/java-openjfx-build-swing-compile-JFXPanel-with-JDK-8.patch new file mode 100644 index 0000000000..363ce9509b --- /dev/null +++ b/gnu/packages/patches/java-openjfx-build-swing-compile-JFXPanel-with-JDK-8.patch @@ -0,0 +1,63 @@ +From 173e65937d9e76872df51f7ba39c9d58986dc38f Mon Sep 17 00:00:00 2001 +From: Alexey Abramov +Date: Fri, 3 Jan 2020 01:17:45 +0100 +Subject: [PATCH] java-openjfx-build: Cannot compile JFXPanel with JDK 8 + +In JDKu9 getDefaultScale method was removed and sun.java2d.SurfaceData class now +has separate getDefaultScaleX() and getDefaultScaleY() methods. See +https://bugs.openjdk.java.net/browse/JDK-8073320 for more info. + +Backport the missing port to build openjfx-swing package using JDKu8. For more +info please see https://bugs.openjdk.java.net/browse/JDK-8149967 + +--- + .../java/javafx/embed/swing/JFXPanel.java | 20 ++++++++++++++++++- + 1 file changed, 19 insertions(+), 1 deletion(-) + +diff --git a/modules/swing/src/main/java/javafx/embed/swing/JFXPanel.java b/modules/swing/src/main/java/javafx/embed/swing/JFXPanel.java +index 97515e2290..614ed656b9 100644 +--- a/modules/swing/src/main/java/javafx/embed/swing/JFXPanel.java ++++ b/modules/swing/src/main/java/javafx/embed/swing/JFXPanel.java +@@ -81,6 +81,7 @@ import sun.awt.AppContext; + import sun.awt.CausedFocusEvent; + import sun.awt.SunToolkit; + import sun.java2d.SunGraphics2D; ++import sun.java2d.SurfaceData; + import sun.util.logging.PlatformLogger; + import sun.util.logging.PlatformLogger.Level; + +@@ -681,6 +682,23 @@ + e.getCaret().getInsertionIndex()); + } + ++ // FIXME: once we move to JDK 9 as the boot JDK we should remove the ++ // reflection code from this method, consider changing it to ++ // use double rather than int, and account for the possibility of ++ // a different scale factor in X and Y. ++ private int getDefaultScale(SurfaceData surfaceData) { ++ /* ++ double scale = surfaceData.getDefaultScaleX(); ++ */ ++ double scale = 1; ++ try { ++ Method meth = SurfaceData.class.getMethod("getDefaultScaleX"); ++ scale = (Double)meth.invoke(surfaceData); ++ } catch (Exception ex) { ++ } ++ ++ return (int)Math.round(scale); ++ } + + /** + * Overrides the {@link javax.swing.JComponent#paintComponent(Graphics)} +@@ -720,7 +738,7 @@ public class JFXPanel extends JComponent { + + int newScaleFactor = scaleFactor; + if (g instanceof SunGraphics2D) { +- newScaleFactor = ((SunGraphics2D)g).surfaceData.getDefaultScale(); ++ newScaleFactor = getDefaultScale(((SunGraphics2D)g).surfaceData); + } + if (scaleFactor != newScaleFactor) { + resizePixelBuffer(newScaleFactor); +-- +2.24.1 From patchwork Sun May 17 13:51:34 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexey Abramov X-Patchwork-Id: 22132 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 2A6C827BBE3; Sun, 17 May 2020 14:53:26 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.9 required=5.0 tests=BAYES_00,MAILING_LIST_MULTI autolearn=unavailable autolearn_force=no version=3.4.2 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTP id C018227BBE1 for ; Sun, 17 May 2020 14:53:25 +0100 (BST) Received: from localhost ([::1]:35032 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jaJjJ-0002dU-Ao for patchwork@mira.cbaines.net; Sun, 17 May 2020 09:53:25 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39884) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jaJix-0002HO-8X for guix-patches@gnu.org; Sun, 17 May 2020 09:53:03 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:59379) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jaJiw-00027x-VR for guix-patches@gnu.org; Sun, 17 May 2020 09:53:02 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1jaJiw-0008LC-UL for guix-patches@gnu.org; Sun, 17 May 2020 09:53:02 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#41360] [PATCH 05/12] gnu: java-openjfx-swing: Add new variable. Resent-From: Alexey Abramov Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 17 May 2020 13:53:02 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 41360 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 41360@debbugs.gnu.org Received: via spool by 41360-submit@debbugs.gnu.org id=B41360.158972353831919 (code B ref 41360); Sun, 17 May 2020 13:53:02 +0000 Received: (at 41360) by debbugs.gnu.org; 17 May 2020 13:52:18 +0000 Received: from localhost ([127.0.0.1]:42674 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jaJiE-0008Ik-JH for submit@debbugs.gnu.org; Sun, 17 May 2020 09:52:18 -0400 Received: from mx4.mail.mmer.org ([178.22.66.29]:59921) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jaJiD-0008IN-Cy for 41360@debbugs.gnu.org; Sun, 17 May 2020 09:52:17 -0400 Received: from delta (unknown [10.147.19.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx4.mail.mmer.org (Postfix) with ESMTPSA id 31DDB9CE89 for <41360@debbugs.gnu.org>; Sun, 17 May 2020 13:21:29 +0000 (UTC) From: Alexey Abramov Date: Sun, 17 May 2020 15:51:34 +0200 Message-Id: <20200517135138.1651512-5-levenson@mmer.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200517135138.1651512-1-levenson@mmer.org> References: <20200517135138.1651512-1-levenson@mmer.org> MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches --- gnu/packages/java.scm | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index e38e691ee5..383a76ca2c 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -3206,6 +3206,19 @@ distribution."))) `(("java-openjfx-base" ,java-openjfx-base) ("java-swt" ,java-swt))))) +(define-public java-openjfx-swing + (package (inherit java-openjfx-build) + (name "java-openjfx-swing") + (arguments + `(#:jar-name "java-openjfx-swing.jar" + #:source-dir "modules/swing/src/main/java" + #:tests? #f)) + (inputs + `(("antlr3" ,antlr3) + ("java-stringtemplate" ,java-stringtemplate))) + (propagated-inputs + `(("java-openjfx-graphics" ,java-openjfx-graphics))))) + (define-public java-openjfx-media (package (inherit java-openjfx-build) (name "java-openjfx-media") From patchwork Sun May 17 13:51:35 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexey Abramov X-Patchwork-Id: 22133 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 3C76827BBE4; Sun, 17 May 2020 14:53:36 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.9 required=5.0 tests=BAYES_00,MAILING_LIST_MULTI autolearn=unavailable autolearn_force=no version=3.4.2 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTP id E509A27BBE1 for ; Sun, 17 May 2020 14:53:35 +0100 (BST) Received: from localhost ([::1]:35774 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jaJjT-0002xt-G6 for patchwork@mira.cbaines.net; Sun, 17 May 2020 09:53:35 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39890) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jaJix-0002I2-Mg for guix-patches@gnu.org; Sun, 17 May 2020 09:53:03 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:59380) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jaJix-000285-DH for guix-patches@gnu.org; Sun, 17 May 2020 09:53:03 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1jaJix-0008LL-Bv for guix-patches@gnu.org; Sun, 17 May 2020 09:53:03 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#41360] [PATCH 06/12] gnu: java-openjfx-swt: Add new variable. Resent-From: Alexey Abramov Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 17 May 2020 13:53:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 41360 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 41360@debbugs.gnu.org Received: via spool by 41360-submit@debbugs.gnu.org id=B41360.158972353931926 (code B ref 41360); Sun, 17 May 2020 13:53:03 +0000 Received: (at 41360) by debbugs.gnu.org; 17 May 2020 13:52:19 +0000 Received: from localhost ([127.0.0.1]:42676 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jaJiE-0008Im-PZ for submit@debbugs.gnu.org; Sun, 17 May 2020 09:52:19 -0400 Received: from mx4.mail.mmer.org ([178.22.66.29]:59925) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jaJiD-0008IP-MH for 41360@debbugs.gnu.org; Sun, 17 May 2020 09:52:17 -0400 Received: from delta (unknown [10.147.19.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx4.mail.mmer.org (Postfix) with ESMTPSA id A11F29CE92 for <41360@debbugs.gnu.org>; Sun, 17 May 2020 13:21:29 +0000 (UTC) From: Alexey Abramov Date: Sun, 17 May 2020 15:51:35 +0200 Message-Id: <20200517135138.1651512-6-levenson@mmer.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200517135138.1651512-1-levenson@mmer.org> References: <20200517135138.1651512-1-levenson@mmer.org> MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches --- gnu/packages/java.scm | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index 383a76ca2c..beb84331a3 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -3219,6 +3219,19 @@ distribution."))) (propagated-inputs `(("java-openjfx-graphics" ,java-openjfx-graphics))))) +(define-public java-openjfx-swt + (package (inherit java-openjfx-build) + (name "java-openjfx-swt") + (arguments + `(#:jar-name "java-openjfx-swt.jar" + #:source-dir "modules/swt/src/main/java" + #:tests? #f)) + (inputs + `(("antlr3" ,antlr3) + ("java-stringtemplate" ,java-stringtemplate))) + (propagated-inputs + `(("java-openjfx-graphics" ,java-openjfx-graphics))))) + (define-public java-openjfx-media (package (inherit java-openjfx-build) (name "java-openjfx-media") From patchwork Sun May 17 13:51:36 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexey Abramov X-Patchwork-Id: 22131 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 B02BF27BBE3; Sun, 17 May 2020 14:53:25 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.9 required=5.0 tests=BAYES_00,MAILING_LIST_MULTI autolearn=unavailable autolearn_force=no version=3.4.2 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTP id 6475B27BBE1 for ; Sun, 17 May 2020 14:53:25 +0100 (BST) Received: from localhost ([::1]:34984 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jaJjI-0002cQ-UB for patchwork@mira.cbaines.net; Sun, 17 May 2020 09:53:24 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39892) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jaJiy-0002Im-2W for guix-patches@gnu.org; Sun, 17 May 2020 09:53:04 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:59381) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jaJix-00028C-Pw for guix-patches@gnu.org; Sun, 17 May 2020 09:53:03 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1jaJix-0008LS-O4 for guix-patches@gnu.org; Sun, 17 May 2020 09:53:03 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#41360] [PATCH 07/12] gnu: java-openjfx-controls: Add new variable. Resent-From: Alexey Abramov Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 17 May 2020 13:53:03 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 41360 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 41360@debbugs.gnu.org Received: via spool by 41360-submit@debbugs.gnu.org id=B41360.158972354331959 (code B ref 41360); Sun, 17 May 2020 13:53:03 +0000 Received: (at 41360) by debbugs.gnu.org; 17 May 2020 13:52:23 +0000 Received: from localhost ([127.0.0.1]:42679 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jaJiJ-0008JO-2h for submit@debbugs.gnu.org; Sun, 17 May 2020 09:52:23 -0400 Received: from mx4.mail.mmer.org ([178.22.66.29]:59929) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jaJiD-0008IQ-TR for 41360@debbugs.gnu.org; Sun, 17 May 2020 09:52:18 -0400 Received: from delta (unknown [10.147.19.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx4.mail.mmer.org (Postfix) with ESMTPSA id E5F6F9CE93 for <41360@debbugs.gnu.org>; Sun, 17 May 2020 13:21:29 +0000 (UTC) From: Alexey Abramov Date: Sun, 17 May 2020 15:51:36 +0200 Message-Id: <20200517135138.1651512-7-levenson@mmer.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200517135138.1651512-1-levenson@mmer.org> References: <20200517135138.1651512-1-levenson@mmer.org> MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches --- gnu/packages/java.scm | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index beb84331a3..c28c8450b1 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -3232,6 +3232,22 @@ distribution."))) (propagated-inputs `(("java-openjfx-graphics" ,java-openjfx-graphics))))) +(define-public java-openjfx-controls + (package (inherit java-openjfx-build) + (name "java-openjfx-controls") + (arguments + `(#:jar-name "java-openjfx-controls.jar" + #:source-dir "modules/controls/src/main/java" + #:tests? #f + #:phases + (modify-phases %standard-phases + (add-before 'build 'copy-resources + (lambda _ + (let ((resources (string-append (getcwd) "/modules/controls/src/main/resources"))) + (copy-recursively resources "build/classes")) #t))))) + (propagated-inputs + `(("java-openjfx-graphics" ,java-openjfx-graphics))))) + (define-public java-openjfx-media (package (inherit java-openjfx-build) (name "java-openjfx-media") From patchwork Sun May 17 13:51:37 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexey Abramov X-Patchwork-Id: 22137 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 1805E27BBE1; Sun, 17 May 2020 14:54:10 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.9 required=5.0 tests=BAYES_00,MAILING_LIST_MULTI, URIBL_BLOCKED autolearn=unavailable autolearn_force=no version=3.4.2 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTP id 0E0F427BBE3 for ; Sun, 17 May 2020 14:54:09 +0100 (BST) Received: from localhost ([::1]:37222 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jaJk0-0003Yt-L8 for patchwork@mira.cbaines.net; Sun, 17 May 2020 09:54:08 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39916) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jaJiz-0002Ni-PN for guix-patches@gnu.org; Sun, 17 May 2020 09:53:05 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:59385) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jaJiz-00028s-FS for guix-patches@gnu.org; Sun, 17 May 2020 09:53:05 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1jaJiz-0008Lw-Do for guix-patches@gnu.org; Sun, 17 May 2020 09:53:05 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#41360] [PATCH 08/12] gnu: java-openjfx-build: Prepare a patch to build openjfx-web. Resent-From: Alexey Abramov Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 17 May 2020 13:53:05 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 41360 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 41360@debbugs.gnu.org Received: via spool by 41360-submit@debbugs.gnu.org id=B41360.158972356232007 (code B ref 41360); Sun, 17 May 2020 13:53:05 +0000 Received: (at 41360) by debbugs.gnu.org; 17 May 2020 13:52:42 +0000 Received: from localhost ([127.0.0.1]:42687 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jaJia-0008K3-49 for submit@debbugs.gnu.org; Sun, 17 May 2020 09:52:42 -0400 Received: from mx4.mail.mmer.org ([178.22.66.29]:59933) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jaJiE-0008IR-1M for 41360@debbugs.gnu.org; Sun, 17 May 2020 09:52:21 -0400 Received: from delta (unknown [10.147.19.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx4.mail.mmer.org (Postfix) with ESMTPSA id 1CCB29CECB for <41360@debbugs.gnu.org>; Sun, 17 May 2020 13:21:30 +0000 (UTC) From: Alexey Abramov Date: Sun, 17 May 2020 15:51:37 +0200 Message-Id: <20200517135138.1651512-8-levenson@mmer.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200517135138.1651512-1-levenson@mmer.org> References: <20200517135138.1651512-1-levenson@mmer.org> MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches * gnu/packages/java.scm (java-openjfx-build)[source]: Use it. * gnu/packages/patches/java-openjfx-build-web-Check-xlocale.h-header-file.patch: New file. * gnu/local.mk (dist_patch_DATA): Add it. --- gnu/local.mk | 1 + gnu/packages/java.scm | 3 +- ...uild-web-Check-xlocale.h-header-file.patch | 55 +++++++++++++++++++ 3 files changed, 58 insertions(+), 1 deletion(-) create mode 100644 gnu/packages/patches/java-openjfx-build-web-Check-xlocale.h-header-file.patch diff --git a/gnu/local.mk b/gnu/local.mk index eaaa54e6f8..591c7c9d46 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1108,6 +1108,7 @@ dist_patch_DATA = \ %D%/packages/patches/java-jeromq-fix-tests.patch \ %D%/packages/patches/java-openjfx-build-get_guix_jdk_version.patch \ %D%/packages/patches/java-openjfx-build-swing-compile-JFXPanel-with-JDK-8.patch \ + %D%/packages/patches/java-openjfx-build-web-Check-xlocale.h-header-file.patch \ %D%/packages/patches/java-powermock-fix-java-files.patch \ %D%/packages/patches/java-simple-xml-fix-tests.patch \ %D%/packages/patches/java-svg-salamander-Fix-non-det.patch \ diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index c28c8450b1..ccf347be4c 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -2502,7 +2502,8 @@ new Date();")) (base32 "0yg38mwpivswccv9n96k06x3iv82i4px1a9xg9l8dswzwmfj259f")) (patches (search-patches "java-openjfx-build-get_guix_jdk_version.patch" - "java-openjfx-build-swing-compile-JFXPanel-with-JDK-8.patch")))) + "java-openjfx-build-swing-compile-JFXPanel-with-JDK-8.patch" + "java-openjfx-build-web-Check-xlocale.h-header-file.patch")))) (build-system ant-build-system) (arguments `(#:jar-name "java-openjfx.jar" diff --git a/gnu/packages/patches/java-openjfx-build-web-Check-xlocale.h-header-file.patch b/gnu/packages/patches/java-openjfx-build-web-Check-xlocale.h-header-file.patch new file mode 100644 index 0000000000..a5cb9730e4 --- /dev/null +++ b/gnu/packages/patches/java-openjfx-build-web-Check-xlocale.h-header-file.patch @@ -0,0 +1,55 @@ +From 95fe8463a3283f0f2c72fcf3416ebfac095688e5 Mon Sep 17 00:00:00 2001 +From: Alexey Abramov +Date: Sun, 9 Feb 2020 18:31:26 +0100 +Subject: [PATCH] Check header file + +Few libraries use hard-coded xlocale_h header even though if CMake takes care +of it properly. Remove defined headers, and rely on CMake preprocessor +instead. + +--- + .../src/main/native/Source/ThirdParty/libxslt/linux/config.h | 2 +- + .../src/main/native/Source/ThirdParty/libxslt/src/config.h.in | 2 +- + modules/web/src/main/native/Source/cmake/OptionsCommon.cmake | 1 + + 3 files changed, 3 insertions(+), 2 deletions(-) + +diff --git a/modules/web/src/main/native/Source/ThirdParty/libxslt/linux/config.h b/modules/web/src/main/native/Source/ThirdParty/libxslt/linux/config.h +index bd44c163..b19b45f4 100644 +--- a/modules/web/src/main/native/Source/ThirdParty/libxslt/linux/config.h ++++ b/modules/web/src/main/native/Source/ThirdParty/libxslt/linux/config.h +@@ -143,7 +143,7 @@ + #define HAVE_VSPRINTF 1 + + /* Define to 1 if you have the header file. */ +-#define HAVE_XLOCALE_H 1 ++/* #define HAVE_XLOCALE_H 1 */ + + /* Define to 1 if you have the `_stat' function. */ + /* #undef HAVE__STAT */ +diff --git a/modules/web/src/main/native/Source/ThirdParty/libxslt/src/config.h.in b/modules/web/src/main/native/Source/ThirdParty/libxslt/src/config.h.in +index 085354e9..0210fce2 100644 +--- a/modules/web/src/main/native/Source/ThirdParty/libxslt/src/config.h.in ++++ b/modules/web/src/main/native/Source/ThirdParty/libxslt/src/config.h.in +@@ -142,7 +142,7 @@ + #undef HAVE_VSPRINTF + + /* Define to 1 if you have the header file. */ +-#undef HAVE_XLOCALE_H ++/* #undef HAVE_XLOCALE_H */ + + /* Define to 1 if you have the `_stat' function. */ + #undef HAVE__STAT +diff --git a/modules/web/src/main/native/Source/cmake/OptionsCommon.cmake b/modules/web/src/main/native/Source/cmake/OptionsCommon.cmake +index 3bbd2c4a..2b618dd6 100644 +--- a/modules/web/src/main/native/Source/cmake/OptionsCommon.cmake ++++ b/modules/web/src/main/native/Source/cmake/OptionsCommon.cmake +@@ -148,6 +148,7 @@ _HAVE_CHECK_INCLUDE(HAVE_STRINGS_H strings.h) + _HAVE_CHECK_INCLUDE(HAVE_SYS_PARAM_H sys/param.h) + _HAVE_CHECK_INCLUDE(HAVE_SYS_TIME_H sys/time.h) + _HAVE_CHECK_INCLUDE(HAVE_SYS_TIMEB_H sys/timeb.h) ++_HAVE_CHECK_INCLUDE(HAVE_XLOCALE_H xlocale.h) + + # Check for functions + _HAVE_CHECK_FUNCTION(HAVE_ALIGNED_MALLOC _aligned_malloc) +-- +2.24.1 From patchwork Sun May 17 13:51:38 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Alexey Abramov X-Patchwork-Id: 22135 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 3041527BBE1; Sun, 17 May 2020 14:53:43 +0100 (BST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on mira.cbaines.net X-Spam-Level: X-Spam-Status: No, score=-2.9 required=5.0 tests=BAYES_00,MAILING_LIST_MULTI autolearn=unavailable autolearn_force=no version=3.4.2 Received: from lists.gnu.org (lists.gnu.org [209.51.188.17]) by mira.cbaines.net (Postfix) with ESMTP id 3C58C27BBE3 for ; Sun, 17 May 2020 14:53:42 +0100 (BST) Received: from localhost ([::1]:36370 helo=lists1p.gnu.org) by lists.gnu.org with esmtp (Exim 4.90_1) (envelope-from ) id 1jaJjZ-0003DG-QR for patchwork@mira.cbaines.net; Sun, 17 May 2020 09:53:41 -0400 Received: from eggs.gnu.org ([2001:470:142:3::10]:39900) by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1jaJiy-0002LP-VO for guix-patches@gnu.org; Sun, 17 May 2020 09:53:04 -0400 Received: from debbugs.gnu.org ([209.51.188.43]:59383) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_128_GCM_SHA256:128) (Exim 4.90_1) (envelope-from ) id 1jaJiy-00028U-Je for guix-patches@gnu.org; Sun, 17 May 2020 09:53:04 -0400 Received: from Debian-debbugs by debbugs.gnu.org with local (Exim 4.84_2) (envelope-from ) id 1jaJiy-0008Lh-IV for guix-patches@gnu.org; Sun, 17 May 2020 09:53:04 -0400 X-Loop: help-debbugs@gnu.org Subject: [bug#41360] [PATCH 09/12] gnu: java-openjfx-web: Add new variable. Resent-From: Alexey Abramov Original-Sender: "Debbugs-submit" Resent-CC: guix-patches@gnu.org Resent-Date: Sun, 17 May 2020 13:53:04 +0000 Resent-Message-ID: Resent-Sender: help-debbugs@gnu.org X-GNU-PR-Message: followup 41360 X-GNU-PR-Package: guix-patches X-GNU-PR-Keywords: patch To: 41360@debbugs.gnu.org Received: via spool by 41360-submit@debbugs.gnu.org id=B41360.158972355631986 (code B ref 41360); Sun, 17 May 2020 13:53:04 +0000 Received: (at 41360) by debbugs.gnu.org; 17 May 2020 13:52:36 +0000 Received: from localhost ([127.0.0.1]:42683 helo=debbugs.gnu.org) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jaJiV-0008Jj-Gj for submit@debbugs.gnu.org; Sun, 17 May 2020 09:52:36 -0400 Received: from mx4.mail.mmer.org ([178.22.66.29]:59937) by debbugs.gnu.org with esmtp (Exim 4.84_2) (envelope-from ) id 1jaJiE-0008IY-9s for 41360@debbugs.gnu.org; Sun, 17 May 2020 09:52:19 -0400 Received: from delta (unknown [10.147.19.46]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx4.mail.mmer.org (Postfix) with ESMTPSA id 46BC19CF2D for <41360@debbugs.gnu.org>; Sun, 17 May 2020 13:21:30 +0000 (UTC) From: Alexey Abramov Date: Sun, 17 May 2020 15:51:38 +0200 Message-Id: <20200517135138.1651512-9-levenson@mmer.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200517135138.1651512-1-levenson@mmer.org> References: <20200517135138.1651512-1-levenson@mmer.org> MIME-Version: 1.0 X-BeenThere: debbugs-submit@debbugs.gnu.org X-Mailman-Version: 2.1.18 Precedence: list X-BeenThere: guix-patches@gnu.org List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: guix-patches-bounces+patchwork=mira.cbaines.net@gnu.org Sender: "Guix-patches" X-getmail-retrieved-from-mailbox: Patches --- gnu/packages/java.scm | 165 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 165 insertions(+) diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm index ccf347be4c..7e477d082e 100644 --- a/gnu/packages/java.scm +++ b/gnu/packages/java.scm @@ -50,11 +50,13 @@ #:use-module (gnu packages cpio) #:use-module (gnu packages cups) #:use-module (gnu packages compression) + #:use-module (gnu packages cmake) #:use-module (gnu packages elf) #:use-module (gnu packages fontutils) #:use-module (gnu packages gawk) #:use-module (gnu packages gettext) #:use-module (gnu packages gcc) + #:use-module (gnu packages gperf) #:use-module (gnu packages gl) #:use-module (gnu packages glib) #:use-module (gnu packages ghostscript) ;lcms @@ -74,8 +76,10 @@ #:use-module (gnu packages wget) #:use-module (gnu packages pkg-config) #:use-module (gnu packages perl) + #:use-module (gnu packages python) #:use-module (gnu packages popt) #:use-module (gnu packages kerberos) + #:use-module (gnu packages ruby) #:use-module (gnu packages xml) #:use-module (gnu packages xorg) #:use-module (gnu packages texinfo) @@ -3264,6 +3268,167 @@ modern, efficient, and fully featured toolkit for developing rich client applications. This package contains media-related classes for the OpenJFX distribution."))) +(define-public java-openjfx-web + (package (inherit java-openjfx-build) + (name "java-openjfx-web") + (arguments + `(#:jar-name "java-openjfx-web.jar" + #:source-dir (string-join '("modules/web/src/main/java" + "modules/web/src/main/native/Source/WebCore/bindings/java/dom3") + ";") + #:tests? #f + #:modules ((ice-9 match) + (guix build ant-build-system) + (guix build utils)) + #:phases + (modify-phases %standard-phases + (replace 'build + (lambda* (#:key inputs #:allow-other-keys) + (let* ((module (string-append (getcwd) "/modules/web")) + (classes (string-append module "/build/classes/java/main"))) + (invoke "ant" "compile" (string-append "-Dclasses.dir=" classes))) + #t)) + (add-after 'build 'generate-headers + (lambda* (#:key inputs #:allow-other-keys) + (let* ((module (string-append (getcwd) "/modules/web")) + (classes (string-append module "/build/classes/java/main")) + (web-generated-headers (string-append module "/build/generated-src/headers")) + (web-generated-classes '("com.sun.webkit.ContextMenu" + "com.sun.webkit.ContextMenuItem" + "com.sun.webkit.CursorManager" + "com.sun.webkit.PageCache" + "com.sun.webkit.PopupMenu" + "com.sun.webkit.SharedBuffer" + "com.sun.webkit.WebPage" + "com.sun.webkit.LoadListenerClient" + "com.sun.webkit.event.WCFocusEvent" + "com.sun.webkit.event.WCKeyEvent" + "com.sun.webkit.event.WCMouseEvent" + "com.sun.webkit.event.WCMouseWheelEvent" + "com.sun.webkit.graphics.GraphicsDecoder" + "com.sun.webkit.graphics.RenderMediaControls" + "com.sun.webkit.graphics.RenderTheme" + "com.sun.webkit.graphics.ScrollBarTheme" + "com.sun.webkit.graphics.WCMediaPlayer" + "com.sun.webkit.graphics.WCGraphicsManager" + "com.sun.webkit.graphics.WCRenderQueue" + "com.sun.webkit.graphics.WCPath" + "com.sun.webkit.graphics.WCPathIterator" + "com.sun.webkit.Timer" + "com.sun.webkit.WCFrameView" + "com.sun.webkit.WCPasteboard" + "com.sun.webkit.WCPluginWidget" + "com.sun.webkit.dom.CharacterDataImpl" + "com.sun.webkit.dom.JSObject" + "com.sun.webkit.network.SocketStreamHandle" + "com.sun.webkit.network.URLLoader" + "com.sun.webkit.text.TextBreakIterator" + "com.sun.webkit.text.TextNormalizer")) + (graphics (assoc-ref inputs "java-openjfx-graphics"))) + (mkdir-p web-generated-headers) + (apply invoke + "javah" + "-Djava.ext.dirs=" + "-XDignore.symbol.file" + "-XDuseUnsharedTable=true" + "-d" web-generated-headers + "-cp" (string-join (cons* classes (find-files graphics ".jar$")) ":") + web-generated-classes)) + #t)) + + (add-after 'generate-headers 'compile-native-linux + (lambda* (#:key inputs system outputs #:allow-other-keys) + (let* ((module (string-append (getcwd) "/modules/web")) + ;; + (webkit-native-dest (string-append module "/build/linux")) + (webkit-native-src (string-append module "/src/main/native")) + ;; + (lib (string-append (assoc-ref outputs "out") "/lib")) + ;; uname -m + (machine (match system + ("x86_64-linux" "x86_64") + ("i686-linux" "i686") + ;; Prevent errors when querying this + ;; package on unsupported platforms, + ;; e.g. when running "guix package + ;; --search=" + (_ "UNSUPPORTED")))) + + (mkdir-p webkit-native-dest) + (setenv "PYTHONDONTWRITEBYTECODE" "1") + (setenv "WEBKIT_OUTPUTDIR" webkit-native-dest) + (apply invoke `("perl" + ,(string-append webkit-native-src "/Tools/Scripts/set-webkit-configuration") + ,(if ,(target-64bit?) "--64-bit" "--32-bit") + "--release")) + + (invoke "perl" + (string-append webkit-native-src "/Tools/Scripts/build-webkit") + "--java" ; webkit port + "--skip-library-update" + "--verbose" + (string-append + "--cmakeargs=" + (string-join + (list "-DCMAKE_SYSTEM_NAME=Linux" + ;; ensure that the libraries are installed into /lib + (string-append "-DCMAKE_INSTALL_LIBDIR=" lib) + ;; add input libraries to rpath + "-DCMAKE_INSTALL_RPATH_USE_LINK_PATH=TRUE" + ;; enable verbose output from builds + "-DCMAKE_VERBOSE_MAKEFILE=ON" + (string-append "-DCMAKE_SHARED_LINKER_FLAGS=" + "\"-Wl,-rpath=" lib "\"") + (string-append "-DCMAKE_SYSTEM_PROCESSOR=" machine) + + "-DJAVAFX_RELEASE_VERSION=8.0" + "-W" + "-Wall" + "-Werror=implicit-function-declaration" + "-Wl,--gc-sections" + "-Wno-parentheses" + "-Wno-unused" + "-fPIC" + "-fno-omit-frame-pointer" + "-fno-strict-aliasing" + "-fstack-protector"))))) + #t)) + + (add-after 'compile-native-linux 'install-native + (lambda* (#:key outputs #:allow-other-keys) + (let ((lib (string-append (assoc-ref outputs "out") "/lib"))) + (for-each (lambda (file) + (install-file file lib)) + (find-files "." "\\.so$"))))) + + (add-before 'install 'build-jar + (lambda _ + (let* ((module (string-append (getcwd) "/modules/web")) + (resources (string-append module "/src/main/resources")) + (classes (string-append module "/build/classes/java/main"))) + (copy-recursively resources classes) + (invoke "ant" "jar" (string-append "-Dclasses.dir=" classes))) + #t))))) + (inputs + `(("antlr3" ,antlr3) + ("java-stringtemplate" ,java-stringtemplate))) + (native-inputs + `(("java-junit" ,java-junit) + ("java-hamcrest-core" ,java-hamcrest-core) + ("cmake" ,cmake) + ("gcc" ,gcc) + ("gtk" ,gtk+-2) + ("gtk3" ,gtk+) + ("ruby" ,ruby) + ("perl" ,perl) + ("gperf" ,gperf) + ("python-2" ,python-2) + ("pkg-config" ,pkg-config))) + (propagated-inputs + `(("java-openjfx-controls" ,java-openjfx-controls) + ("java-openjfx-media" ,java-openjfx-media) + ("java-openjfx-graphics" ,java-openjfx-graphics))))) + (define-public javacc-4 (package (name "javacc")