GNU logs - #41360, boring messages


Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH 00/12] Package java-openjfx
Resent-From: Alexey Abramov <levenson@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Sun, 17 May 2020 13:30:02 +0000
Resent-Message-ID: <handler.41360.B.158972214429559 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: report 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: 41360 <at> debbugs.gnu.org
X-Debbugs-Original-To: guix-patches@HIDDEN
Received: via spool by submit <at> debbugs.gnu.org id=B.158972214429559
          (code B ref -1); Sun, 17 May 2020 13:30:02 +0000
Received: (at submit) by debbugs.gnu.org; 17 May 2020 13:29:04 +0000
Received: from localhost ([127.0.0.1]:42632 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jaJLg-0007gV-RJ
	for submit <at> debbugs.gnu.org; Sun, 17 May 2020 09:29:04 -0400
Received: from lists.gnu.org ([209.51.188.17]:48654)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <levenson@HIDDEN>) id 1jaJLa-0007gJ-CM
 for submit <at> debbugs.gnu.org; Sun, 17 May 2020 09:28:59 -0400
Received: from eggs.gnu.org ([2001:470:142:3::10]:36656)
 by lists.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256)
 (Exim 4.90_1) (envelope-from <levenson@HIDDEN>) id 1jaJLa-0002px-6x
 for guix-patches@HIDDEN; Sun, 17 May 2020 09:28:54 -0400
Received: from mx4.mail.mmer.org ([178.22.66.29]:61398)
 by eggs.gnu.org with esmtp (Exim 4.90_1)
 (envelope-from <levenson@HIDDEN>) id 1jaJLU-00048n-8p
 for guix-patches@HIDDEN; Sun, 17 May 2020 09:28:53 -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 20D239CC49
 for <guix-patches@HIDDEN>; Sun, 17 May 2020 12:57:58 +0000 (UTC)
From: Alexey Abramov <levenson@HIDDEN>
Date: Sun, 17 May 2020 15:28:29 +0200
Message-Id: <20200517132829.1553311-1-levenson@HIDDEN>
X-Mailer: git-send-email 2.26.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
Received-SPF: pass client-ip=178.22.66.29; envelope-from=levenson@HIDDEN;
 helo=mx4.mail.mmer.org
X-detected-operating-system: by eggs.gnu.org: First seen = 2020/05/17 09:28:46
X-ACL-Warn: Detected OS   = FreeBSD 9.x or newer [fuzzy]
X-Spam_score_int: -18
X-Spam_score: -1.9
X-Spam_bar: -
X-Spam_report: (-1.9 / 5.0 requ) BAYES_00=-1.9, SPF_PASS=-0.001,
 URIBL_BLOCKED=0.001 autolearn=_AUTOLEARN
X-Spam_action: no action
X-Spam-Score: -1.4 (-)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -2.4 (--)

I am sending a series of patches I have for java-openjfx as a prerequisite to
build davmail. Unfortunately tests are still disabled.

Alexey Abramov (12):
  gnu: java-openjfx-build: Add helpful patch.
  gnu: java-openjfx-build: Fix indentation.
  gnu: java-openjfx-graphics: Implement a complete compilation.
  gnu: java-openjfx-build: Fix openjfx-swing component build for JDKu8
  gnu: java-openjfx-swing: Add new variable.
  gnu: java-openjfx-swt: Add new variable.
  gnu: java-openjfx-controls: Add new variable.
  gnu: java-openjfx-build: Prepare a patch to build openjfx-web.
  gnu: java-openjfx-web: Add new variable.
  gnu: java-openjfx-graphics: Replace deprecated library.
  gnu: java-openjfx-graphics: Fix package build.
  gnu: java-openjfx-web: Fix package build

 gnu/local.mk                                  |   3 +
 gnu/packages/java.scm                         | 872 +++++++++++++++++-
 ...a-openjfx-build-get_guix_jdk_version.patch |  37 +
 ...ld-swing-compile-JFXPanel-with-JDK-8.patch |  63 ++
 ...uild-web-Check-xlocale.h-header-file.patch |  55 ++
 5 files changed, 1017 insertions(+), 13 deletions(-)
 create mode 100644 gnu/packages/patches/java-openjfx-build-get_guix_jdk_version.patch
 create mode 100644 gnu/packages/patches/java-openjfx-build-swing-compile-JFXPanel-with-JDK-8.patch
 create mode 100644 gnu/packages/patches/java-openjfx-build-web-Check-xlocale.h-header-file.patch

--
2.26.2




Message sent:


Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable
MIME-Version: 1.0
X-Mailer: MIME-tools 5.505 (Entity 5.505)
Content-Type: text/plain; charset=utf-8
X-Loop: help-debbugs@HIDDEN
From: help-debbugs@HIDDEN (GNU bug Tracking System)
To: Alexey Abramov <levenson@HIDDEN>
Subject: bug#41360: Acknowledgement ([PATCH 00/12] Package java-openjfx)
Message-ID: <handler.41360.B.158972214429559.ack <at> debbugs.gnu.org>
References: <20200517132829.1553311-1-levenson@HIDDEN>
X-Gnu-PR-Message: ack 41360
X-Gnu-PR-Package: guix-patches
X-Gnu-PR-Keywords: patch
Reply-To: 41360 <at> debbugs.gnu.org
Date: Sun, 17 May 2020 13:30:02 +0000

Thank you for filing a new bug report with debbugs.gnu.org.

This is an automatically generated reply to let you know your message
has been received.

Your message is being forwarded to the package maintainers and other
interested parties for their attention; they will reply in due course.

Your message has been sent to the package maintainer(s):
 guix-patches@HIDDEN

If you wish to submit further information on this problem, please
send it to 41360 <at> debbugs.gnu.org.

Please do not send mail to help-debbugs@HIDDEN unless you wish
to report a problem with the Bug-tracking system.

--=20
41360: http://debbugs.gnu.org/cgi/bugreport.cgi?bug=3D41360
GNU Bug Tracking System
Contact help-debbugs@HIDDEN with problems


Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH 01/12] gnu: java-openjfx-build: Add helpful patch.
References: <20200517132829.1553311-1-levenson@HIDDEN>
In-Reply-To: <20200517132829.1553311-1-levenson@HIDDEN>
Resent-From: Alexey Abramov <levenson@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Sun, 17 May 2020 13:53:02 +0000
Resent-Message-ID: <handler.41360.B41360.158972353631880 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: 41360 <at> debbugs.gnu.org
Received: via spool by 41360-submit <at> 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 <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jaJi7-0008I2-Oh
	for submit <at> 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 <levenson@HIDDEN>) id 1jaJi1-0008Hk-UU
 for 41360 <at> 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 <at> debbugs.gnu.org>; Sun, 17 May 2020 13:21:17 +0000 (UTC)
From: Alexey Abramov <levenson@HIDDEN>
Date: Sun, 17 May 2020 15:51:30 +0200
Message-Id: <20200517135138.1651512-1-levenson@HIDDEN>
X-Mailer: git-send-email 2.26.2
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="------------[ mime-boundary-string ]"
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

This is a multi-part message in MIME format.
--------------[ mime-boundary-string ]
Content-Type: text/plain; charset=UTF-8; format=fixed
Content-Transfer-Encoding: 8bit


* 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


--------------[ mime-boundary-string ]
Content-Type: text/x-patch; name="0001-gnu-java-openjfx-build-Add-helpful-patch.patch"
Content-Transfer-Encoding: 8bit
Content-Disposition: attachment; filename="0001-gnu-java-openjfx-build-Add-helpful-patch.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 <levenson@HIDDEN>
+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
+

--------------[ mime-boundary-string ]--






Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH 02/12] gnu: java-openjfx-build: Fix indentation.
Resent-From: Alexey Abramov <levenson@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Sun, 17 May 2020 13:53:02 +0000
Resent-Message-ID: <handler.41360.B41360.158972353631888 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: 41360 <at> debbugs.gnu.org
Received: via spool by 41360-submit <at> 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 <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jaJiC-0008I9-7U
	for submit <at> 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 <levenson@HIDDEN>) id 1jaJi6-0008Hp-Qq
 for 41360 <at> 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 <at> debbugs.gnu.org>; Sun, 17 May 2020 13:21:17 +0000 (UTC)
From: Alexey Abramov <levenson@HIDDEN>
Date: Sun, 17 May 2020 15:51:31 +0200
Message-Id: <20200517135138.1651512-2-levenson@HIDDEN>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20200517135138.1651512-1-levenson@HIDDEN>
References: <20200517135138.1651512-1-levenson@HIDDEN>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="------------[ mime-boundary-string ]"
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

This is a multi-part message in MIME format.
--------------[ mime-boundary-string ]
Content-Type: text/plain; charset=UTF-8; format=fixed
Content-Transfer-Encoding: 8bit

---
 gnu/packages/java.scm | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)


--------------[ mime-boundary-string ]
Content-Type: text/x-patch; name="0002-gnu-java-openjfx-build-Fix-indentation.patch"
Content-Transfer-Encoding: 8bit
Content-Disposition: attachment; filename="0002-gnu-java-openjfx-build-Fix-indentation.patch"

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

--------------[ mime-boundary-string ]--






Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH 05/12] gnu: java-openjfx-swing: Add new variable.
Resent-From: Alexey Abramov <levenson@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Sun, 17 May 2020 13:53:02 +0000
Resent-Message-ID: <handler.41360.B41360.158972353831919 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: 41360 <at> debbugs.gnu.org
Received: via spool by 41360-submit <at> 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 <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jaJiE-0008Ik-JH
	for submit <at> 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 <levenson@HIDDEN>) id 1jaJiD-0008IN-Cy
 for 41360 <at> 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 <at> debbugs.gnu.org>; Sun, 17 May 2020 13:21:29 +0000 (UTC)
From: Alexey Abramov <levenson@HIDDEN>
Date: Sun, 17 May 2020 15:51:34 +0200
Message-Id: <20200517135138.1651512-5-levenson@HIDDEN>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20200517135138.1651512-1-levenson@HIDDEN>
References: <20200517135138.1651512-1-levenson@HIDDEN>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="------------[ mime-boundary-string ]"
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

This is a multi-part message in MIME format.
--------------[ mime-boundary-string ]
Content-Type: text/plain; charset=UTF-8; format=fixed
Content-Transfer-Encoding: 8bit

---
 gnu/packages/java.scm | 13 +++++++++++++
 1 file changed, 13 insertions(+)


--------------[ mime-boundary-string ]
Content-Type: text/x-patch; name="0005-gnu-java-openjfx-swing-Add-new-variable.patch"
Content-Transfer-Encoding: 8bit
Content-Disposition: attachment; filename="0005-gnu-java-openjfx-swing-Add-new-variable.patch"

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")

--------------[ mime-boundary-string ]--






Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH 06/12] gnu: java-openjfx-swt: Add new variable.
Resent-From: Alexey Abramov <levenson@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Sun, 17 May 2020 13:53:03 +0000
Resent-Message-ID: <handler.41360.B41360.158972353931926 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: 41360 <at> debbugs.gnu.org
Received: via spool by 41360-submit <at> 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 <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jaJiE-0008Im-PZ
	for submit <at> 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 <levenson@HIDDEN>) id 1jaJiD-0008IP-MH
 for 41360 <at> 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 <at> debbugs.gnu.org>; Sun, 17 May 2020 13:21:29 +0000 (UTC)
From: Alexey Abramov <levenson@HIDDEN>
Date: Sun, 17 May 2020 15:51:35 +0200
Message-Id: <20200517135138.1651512-6-levenson@HIDDEN>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20200517135138.1651512-1-levenson@HIDDEN>
References: <20200517135138.1651512-1-levenson@HIDDEN>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="------------[ mime-boundary-string ]"
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

This is a multi-part message in MIME format.
--------------[ mime-boundary-string ]
Content-Type: text/plain; charset=UTF-8; format=fixed
Content-Transfer-Encoding: 8bit

---
 gnu/packages/java.scm | 13 +++++++++++++
 1 file changed, 13 insertions(+)


--------------[ mime-boundary-string ]
Content-Type: text/x-patch; name="0006-gnu-java-openjfx-swt-Add-new-variable.patch"
Content-Transfer-Encoding: 8bit
Content-Disposition: attachment; filename="0006-gnu-java-openjfx-swt-Add-new-variable.patch"

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")

--------------[ mime-boundary-string ]--






Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH 07/12] gnu: java-openjfx-controls: Add new variable.
Resent-From: Alexey Abramov <levenson@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Sun, 17 May 2020 13:53:03 +0000
Resent-Message-ID: <handler.41360.B41360.158972354331959 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: 41360 <at> debbugs.gnu.org
Received: via spool by 41360-submit <at> 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 <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jaJiJ-0008JO-2h
	for submit <at> 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 <levenson@HIDDEN>) id 1jaJiD-0008IQ-TR
 for 41360 <at> 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 <at> debbugs.gnu.org>; Sun, 17 May 2020 13:21:29 +0000 (UTC)
From: Alexey Abramov <levenson@HIDDEN>
Date: Sun, 17 May 2020 15:51:36 +0200
Message-Id: <20200517135138.1651512-7-levenson@HIDDEN>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20200517135138.1651512-1-levenson@HIDDEN>
References: <20200517135138.1651512-1-levenson@HIDDEN>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="------------[ mime-boundary-string ]"
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

This is a multi-part message in MIME format.
--------------[ mime-boundary-string ]
Content-Type: text/plain; charset=UTF-8; format=fixed
Content-Transfer-Encoding: 8bit

---
 gnu/packages/java.scm | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)


--------------[ mime-boundary-string ]
Content-Type: text/x-patch; name="0007-gnu-java-openjfx-controls-Add-new-variable.patch"
Content-Transfer-Encoding: 8bit
Content-Disposition: attachment; filename="0007-gnu-java-openjfx-controls-Add-new-variable.patch"

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")

--------------[ mime-boundary-string ]--






Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH 03/12] gnu: java-openjfx-graphics: Implement a complete compilation.
Resent-From: Alexey Abramov <levenson@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Sun, 17 May 2020 13:53:04 +0000
Resent-Message-ID: <handler.41360.B41360.158972355531978 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: 41360 <at> debbugs.gnu.org
Received: via spool by 41360-submit <at> 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 <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jaJiJ-0008JQ-CK
	for submit <at> 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 <levenson@HIDDEN>) id 1jaJi7-0008Hw-Dh
 for 41360 <at> 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 <at> debbugs.gnu.org>; Sun, 17 May 2020 13:21:22 +0000 (UTC)
From: Alexey Abramov <levenson@HIDDEN>
Date: Sun, 17 May 2020 15:51:32 +0200
Message-Id: <20200517135138.1651512-3-levenson@HIDDEN>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20200517135138.1651512-1-levenson@HIDDEN>
References: <20200517135138.1651512-1-levenson@HIDDEN>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="------------[ mime-boundary-string ]"
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.5 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -0.5 (/)

This is a multi-part message in MIME format.
--------------[ mime-boundary-string ]
Content-Type: text/plain; charset=UTF-8; format=fixed
Content-Transfer-Encoding: 8bit

---
 gnu/packages/java.scm | 643 +++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 635 insertions(+), 8 deletions(-)


--------------[ mime-boundary-string ]
Content-Type: text/x-patch; name="0003-gnu-java-openjfx-graphics-Implement-a-complete-compi.patch"
Content-Transfer-Encoding: 8bit
Content-Disposition: attachment; filename="0003-gnu-java-openjfx-graphics-Implement-a-complete-compi.patch"

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)

--------------[ mime-boundary-string ]--






Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH 09/12] gnu: java-openjfx-web: Add new variable.
Resent-From: Alexey Abramov <levenson@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Sun, 17 May 2020 13:53:04 +0000
Resent-Message-ID: <handler.41360.B41360.158972355631986 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: 41360 <at> debbugs.gnu.org
Received: via spool by 41360-submit <at> 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 <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jaJiV-0008Jj-Gj
	for submit <at> 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 <levenson@HIDDEN>) id 1jaJiE-0008IY-9s
 for 41360 <at> 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 <at> debbugs.gnu.org>; Sun, 17 May 2020 13:21:30 +0000 (UTC)
From: Alexey Abramov <levenson@HIDDEN>
Date: Sun, 17 May 2020 15:51:38 +0200
Message-Id: <20200517135138.1651512-9-levenson@HIDDEN>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20200517135138.1651512-1-levenson@HIDDEN>
References: <20200517135138.1651512-1-levenson@HIDDEN>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="------------[ mime-boundary-string ]"
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

This is a multi-part message in MIME format.
--------------[ mime-boundary-string ]
Content-Type: text/plain; charset=UTF-8; format=fixed
Content-Transfer-Encoding: 8bit

---
 gnu/packages/java.scm | 165 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 165 insertions(+)


--------------[ mime-boundary-string ]
Content-Type: text/x-patch; name="0009-gnu-java-openjfx-web-Add-new-variable.patch"
Content-Transfer-Encoding: 8bit
Content-Disposition: attachment; filename="0009-gnu-java-openjfx-web-Add-new-variable.patch"

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")

--------------[ mime-boundary-string ]--






Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH 04/12] gnu: java-openjfx-build: Fix openjfx-swing component build for JDKu8
Resent-From: Alexey Abramov <levenson@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Sun, 17 May 2020 13:53:04 +0000
Resent-Message-ID: <handler.41360.B41360.158972356031998 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: 41360 <at> debbugs.gnu.org
Received: via spool by 41360-submit <at> 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 <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jaJiW-0008Jr-IX
	for submit <at> 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 <levenson@HIDDEN>) id 1jaJiC-0008IF-Oa
 for 41360 <at> 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 <at> debbugs.gnu.org>; Sun, 17 May 2020 13:21:23 +0000 (UTC)
From: Alexey Abramov <levenson@HIDDEN>
Date: Sun, 17 May 2020 15:51:33 +0200
Message-Id: <20200517135138.1651512-4-levenson@HIDDEN>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20200517135138.1651512-1-levenson@HIDDEN>
References: <20200517135138.1651512-1-levenson@HIDDEN>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="------------[ mime-boundary-string ]"
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

This is a multi-part message in MIME format.
--------------[ mime-boundary-string ]
Content-Type: text/plain; charset=UTF-8; format=fixed
Content-Transfer-Encoding: 8bit


* 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


--------------[ mime-boundary-string ]
Content-Type: text/x-patch; name="0004-gnu-java-openjfx-build-Fix-openjfx-swing-component-b.patch"
Content-Transfer-Encoding: 8bit
Content-Disposition: attachment; filename="0004-gnu-java-openjfx-build-Fix-openjfx-swing-component-b.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 <levenson@HIDDEN>
+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

--------------[ mime-boundary-string ]--






Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH 08/12] gnu: java-openjfx-build: Prepare a patch to build openjfx-web.
Resent-From: Alexey Abramov <levenson@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Sun, 17 May 2020 13:53:05 +0000
Resent-Message-ID: <handler.41360.B41360.158972356232007 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: 41360 <at> debbugs.gnu.org
Received: via spool by 41360-submit <at> 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 <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jaJia-0008K3-49
	for submit <at> 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 <levenson@HIDDEN>) id 1jaJiE-0008IR-1M
 for 41360 <at> 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 <at> debbugs.gnu.org>; Sun, 17 May 2020 13:21:30 +0000 (UTC)
From: Alexey Abramov <levenson@HIDDEN>
Date: Sun, 17 May 2020 15:51:37 +0200
Message-Id: <20200517135138.1651512-8-levenson@HIDDEN>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20200517135138.1651512-1-levenson@HIDDEN>
References: <20200517135138.1651512-1-levenson@HIDDEN>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="------------[ mime-boundary-string ]"
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

This is a multi-part message in MIME format.
--------------[ mime-boundary-string ]
Content-Type: text/plain; charset=UTF-8; format=fixed
Content-Transfer-Encoding: 8bit


* 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


--------------[ mime-boundary-string ]
Content-Type: text/x-patch; name="0008-gnu-java-openjfx-build-Prepare-a-patch-to-build-open.patch"
Content-Transfer-Encoding: 8bit
Content-Disposition: attachment; filename="0008-gnu-java-openjfx-build-Prepare-a-patch-to-build-open.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 <levenson@HIDDEN>
+Date: Sun, 9 Feb 2020 18:31:26 +0100
+Subject: [PATCH] Check <xlocale.h> 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 <xlocale.h> 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 <xlocale.h> 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

--------------[ mime-boundary-string ]--






Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH 01/12] gnu: java-openjfx-build: Add helpful patch.
Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Sat, 23 May 2020 13:59:02 +0000
Resent-Message-ID: <handler.41360.B41360.159024232528941 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: Alexey Abramov <levenson@HIDDEN>
Cc: 41360 <at> debbugs.gnu.org
Received: via spool by 41360-submit <at> debbugs.gnu.org id=B41360.159024232528941
          (code B ref 41360); Sat, 23 May 2020 13:59:02 +0000
Received: (at 41360) by debbugs.gnu.org; 23 May 2020 13:58:45 +0000
Received: from localhost ([127.0.0.1]:35216 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jcUff-0007Wd-GO
	for submit <at> debbugs.gnu.org; Sat, 23 May 2020 09:58:45 -0400
Received: from eggs.gnu.org ([209.51.188.92]:51602)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <ludo@HIDDEN>) id 1jcUfa-0007WM-7y
 for 41360 <at> debbugs.gnu.org; Sat, 23 May 2020 09:58:38 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e]:43363)
 by eggs.gnu.org with esmtp (Exim 4.90_1)
 (envelope-from <ludo@HIDDEN>)
 id 1jcUfU-0002oE-QP; Sat, 23 May 2020 09:58:28 -0400
Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=52234 helo=ribbon)
 by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256)
 (Exim 4.82) (envelope-from <ludo@HIDDEN>)
 id 1jcUfS-0000Xi-56; Sat, 23 May 2020 09:58:27 -0400
From: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
References: <20200517132829.1553311-1-levenson@HIDDEN>
 <20200517135138.1651512-1-levenson@HIDDEN>
Date: Sat, 23 May 2020 15:58:24 +0200
In-Reply-To: <20200517135138.1651512-1-levenson@HIDDEN> (Alexey Abramov's
 message of "Sun, 17 May 2020 15:51:30 +0200")
Message-ID: <87k1127ny7.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -2.3 (--)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

Hi Alexey,

Thanks for the patch series!

Alexey Abramov <levenson@HIDDEN> skribis:

> * 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.

[...]

> +++ b/gnu/packages/patches/java-openjfx-build-get_guix_jdk_version.patch
> @@ -0,0 +1,37 @@

Could you shorten this file name a bit?  (=E2=80=98guix lint=E2=80=99 proba=
bly complains.)

> +From d156313340d3edcd78751ea8ed5e66c7668275c3 Mon Sep 17 00:00:00 2001
> +From: Alexey Abramov <levenson@HIDDEN>
> +Date: Sun, 8 Mar 2020 20:07:22 +0100
> +Subject: [PATCH] openjfx: Determine the version of Java in JDK_HOME

In general I think you can omit the first three lines and just keep the
subject.

> +Icedtea contains guix in its version, so build.gradle failes to run. Ope=
njfx
> +packaging is not trivial, so you will probably need to try build it with
> +gradlew.

Otherwise LGTM.




Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH 02/12] gnu: java-openjfx-build: Fix indentation.
Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Sat, 23 May 2020 14:00:02 +0000
Resent-Message-ID: <handler.41360.B41360.159024234629004 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: Alexey Abramov <levenson@HIDDEN>
Cc: 41360 <at> debbugs.gnu.org
Received: via spool by 41360-submit <at> debbugs.gnu.org id=B41360.159024234629004
          (code B ref 41360); Sat, 23 May 2020 14:00:02 +0000
Received: (at 41360) by debbugs.gnu.org; 23 May 2020 13:59:06 +0000
Received: from localhost ([127.0.0.1]:35220 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jcUg6-0007Xk-E0
	for submit <at> debbugs.gnu.org; Sat, 23 May 2020 09:59:06 -0400
Received: from eggs.gnu.org ([209.51.188.92]:51676)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <ludo@HIDDEN>) id 1jcUg4-0007X5-W8
 for 41360 <at> debbugs.gnu.org; Sat, 23 May 2020 09:59:05 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e]:43374)
 by eggs.gnu.org with esmtp (Exim 4.90_1)
 (envelope-from <ludo@HIDDEN>)
 id 1jcUfz-0002rt-M9; Sat, 23 May 2020 09:58:59 -0400
Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=52236 helo=ribbon)
 by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256)
 (Exim 4.82) (envelope-from <ludo@HIDDEN>)
 id 1jcUfy-00018u-7d; Sat, 23 May 2020 09:58:58 -0400
From: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
References: <20200517135138.1651512-1-levenson@HIDDEN>
 <20200517135138.1651512-2-levenson@HIDDEN>
Date: Sat, 23 May 2020 15:58:57 +0200
In-Reply-To: <20200517135138.1651512-2-levenson@HIDDEN> (Alexey Abramov's
 message of "Sun, 17 May 2020 15:51:31 +0200")
Message-ID: <87ftbq7nxa.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -2.3 (--)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

Alexey Abramov <levenson@HIDDEN> skribis:

> ---
>  gnu/packages/java.scm | 8 ++++----
>  1 file changed, 4 insertions(+), 4 deletions(-)

Please add a commit log like you did for some of the other patches.
Otherwise LGTM!




Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH 03/12] gnu: java-openjfx-graphics: Implement a complete compilation.
Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Sat, 23 May 2020 14:05:02 +0000
Resent-Message-ID: <handler.41360.B41360.15902426945314 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: Alexey Abramov <levenson@HIDDEN>
Cc: 41360 <at> debbugs.gnu.org
Received: via spool by 41360-submit <at> debbugs.gnu.org id=B41360.15902426945314
          (code B ref 41360); Sat, 23 May 2020 14:05:02 +0000
Received: (at 41360) by debbugs.gnu.org; 23 May 2020 14:04:54 +0000
Received: from localhost ([127.0.0.1]:35224 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jcUlW-0001NS-2r
	for submit <at> debbugs.gnu.org; Sat, 23 May 2020 10:04:54 -0400
Received: from eggs.gnu.org ([209.51.188.92]:52156)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <ludo@HIDDEN>) id 1jcUlR-0001NC-6c
 for 41360 <at> debbugs.gnu.org; Sat, 23 May 2020 10:04:41 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e]:43453)
 by eggs.gnu.org with esmtp (Exim 4.90_1)
 (envelope-from <ludo@HIDDEN>)
 id 1jcUlL-00043I-Ry; Sat, 23 May 2020 10:04:31 -0400
Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=52238 helo=ribbon)
 by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256)
 (Exim 4.82) (envelope-from <ludo@HIDDEN>)
 id 1jcUlL-0007I1-Bl; Sat, 23 May 2020 10:04:31 -0400
From: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
References: <20200517135138.1651512-1-levenson@HIDDEN>
 <20200517135138.1651512-3-levenson@HIDDEN>
Date: Sat, 23 May 2020 16:04:29 +0200
In-Reply-To: <20200517135138.1651512-3-levenson@HIDDEN> (Alexey Abramov's
 message of "Sun, 17 May 2020 15:51:32 +0200")
Message-ID: <878shi7no2.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -2.3 (--)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Alexey Abramov <levenson@HIDDEN> skribis:

> ---
>  gnu/packages/java.scm | 643 +++++++++++++++++++++++++++++++++++++++++-
>  1 file changed, 635 insertions(+), 8 deletions(-)

Please add a commit log.

> +              (java-aux-class?
> +               (lambda (class)
> +                 (string-match "\\$[0-9]+.class" class)))

Probably =E2=80=9C\\.class=E2=80=9D instead of =E2=80=9C.class=E2=80=9D?

> +           (add-after 'chdir-to-a-module-directory 'compile-prism-compil=
ers
> +             (lambda _

Maybe add a comment explaining why this phase is necessary.

> +               (let ((prism-compilers-classes "build/classes/jsl-compile=
rs/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"))))

This can be shortened as:

  (apply invoke "javac" "-d" prism-compilers-classes
         (append javac/h-flags (find-files prism-src "\\.java")))

These two comments apply to the other phases too.

More generally, why are there so many phases?  How do people normally
build it?  Gradle?

Would it make sense to factorize helpers in a new (gnu build
java-openjfx) module or similar?

Thanks,
Ludo=E2=80=99.




Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH 04/12] gnu: java-openjfx-build: Fix openjfx-swing component build for JDKu8
Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Sat, 23 May 2020 14:06:01 +0000
Resent-Message-ID: <handler.41360.B41360.15902427275393 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: Alexey Abramov <levenson@HIDDEN>
Cc: 41360 <at> debbugs.gnu.org
Received: via spool by 41360-submit <at> debbugs.gnu.org id=B41360.15902427275393
          (code B ref 41360); Sat, 23 May 2020 14:06:01 +0000
Received: (at 41360) by debbugs.gnu.org; 23 May 2020 14:05:27 +0000
Received: from localhost ([127.0.0.1]:35228 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jcUmC-0001Os-PM
	for submit <at> debbugs.gnu.org; Sat, 23 May 2020 10:05:26 -0400
Received: from eggs.gnu.org ([209.51.188.92]:52212)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <ludo@HIDDEN>) id 1jcUm8-0001Ob-0y
 for 41360 <at> debbugs.gnu.org; Sat, 23 May 2020 10:05:23 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e]:43462)
 by eggs.gnu.org with esmtp (Exim 4.90_1)
 (envelope-from <ludo@HIDDEN>)
 id 1jcUm2-0004FF-S1; Sat, 23 May 2020 10:05:14 -0400
Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=52240 helo=ribbon)
 by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256)
 (Exim 4.82) (envelope-from <ludo@HIDDEN>)
 id 1jcUm1-0007Lf-Ix; Sat, 23 May 2020 10:05:14 -0400
From: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
References: <20200517135138.1651512-1-levenson@HIDDEN>
 <20200517135138.1651512-4-levenson@HIDDEN>
Date: Sat, 23 May 2020 16:05:12 +0200
In-Reply-To: <20200517135138.1651512-4-levenson@HIDDEN> (Alexey Abramov's
 message of "Sun, 17 May 2020 15:51:33 +0200")
Message-ID: <874ks67nmv.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -2.3 (--)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

Alexey Abramov <levenson@HIDDEN> skribis:

> * 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.

[...]

> +++ 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 <levenson@HIDDEN>
> +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

Same comment as earlier regarding the patch.  :-)

Otherwise LGTM!




Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH 05/12] gnu: java-openjfx-swing: Add new variable.
Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Sat, 23 May 2020 14:06:01 +0000
Resent-Message-ID: <handler.41360.B41360.15902427495432 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: Alexey Abramov <levenson@HIDDEN>
Cc: 41360 <at> debbugs.gnu.org
Received: via spool by 41360-submit <at> debbugs.gnu.org id=B41360.15902427495432
          (code B ref 41360); Sat, 23 May 2020 14:06:01 +0000
Received: (at 41360) by debbugs.gnu.org; 23 May 2020 14:05:49 +0000
Received: from localhost ([127.0.0.1]:35231 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jcUmb-0001PY-0Y
	for submit <at> debbugs.gnu.org; Sat, 23 May 2020 10:05:49 -0400
Received: from eggs.gnu.org ([209.51.188.92]:52240)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <ludo@HIDDEN>) id 1jcUmZ-0001PI-JQ
 for 41360 <at> debbugs.gnu.org; Sat, 23 May 2020 10:05:47 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e]:43470)
 by eggs.gnu.org with esmtp (Exim 4.90_1)
 (envelope-from <ludo@HIDDEN>)
 id 1jcUmU-0004Po-Dy; Sat, 23 May 2020 10:05:42 -0400
Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=52242 helo=ribbon)
 by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256)
 (Exim 4.82) (envelope-from <ludo@HIDDEN>)
 id 1jcUmT-0007Se-KP; Sat, 23 May 2020 10:05:42 -0400
From: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
References: <20200517135138.1651512-1-levenson@HIDDEN>
 <20200517135138.1651512-5-levenson@HIDDEN>
Date: Sat, 23 May 2020 16:05:40 +0200
In-Reply-To: <20200517135138.1651512-5-levenson@HIDDEN> (Alexey Abramov's
 message of "Sun, 17 May 2020 15:51:34 +0200")
Message-ID: <87zh9y691n.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: -2.3 (--)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

Alexey Abramov <levenson@HIDDEN> skribis:

> ---
>  gnu/packages/java.scm | 13 +++++++++++++
>  1 file changed, 13 insertions(+)

Please add a commit log.




Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH 09/12] gnu: java-openjfx-web: Add new variable.
Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Sat, 23 May 2020 14:10:02 +0000
Resent-Message-ID: <handler.41360.B41360.15902429965788 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: Alexey Abramov <levenson@HIDDEN>
Cc: 41360 <at> debbugs.gnu.org
Received: via spool by 41360-submit <at> debbugs.gnu.org id=B41360.15902429965788
          (code B ref 41360); Sat, 23 May 2020 14:10:02 +0000
Received: (at 41360) by debbugs.gnu.org; 23 May 2020 14:09:56 +0000
Received: from localhost ([127.0.0.1]:35236 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jcUqa-0001VI-IY
	for submit <at> debbugs.gnu.org; Sat, 23 May 2020 10:09:56 -0400
Received: from eggs.gnu.org ([209.51.188.92]:52630)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <ludo@HIDDEN>) id 1jcUqZ-0001V6-5m
 for 41360 <at> debbugs.gnu.org; Sat, 23 May 2020 10:09:55 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e]:43508)
 by eggs.gnu.org with esmtp (Exim 4.90_1)
 (envelope-from <ludo@HIDDEN>)
 id 1jcUqT-0005FG-VD; Sat, 23 May 2020 10:09:49 -0400
Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=52244 helo=ribbon)
 by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256)
 (Exim 4.82) (envelope-from <ludo@HIDDEN>)
 id 1jcUqT-0007jl-Fv; Sat, 23 May 2020 10:09:49 -0400
From: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
References: <20200517135138.1651512-1-levenson@HIDDEN>
 <20200517135138.1651512-9-levenson@HIDDEN>
Date: Sat, 23 May 2020 16:09:47 +0200
In-Reply-To: <20200517135138.1651512-9-levenson@HIDDEN> (Alexey Abramov's
 message of "Sun, 17 May 2020 15:51:38 +0200")
Message-ID: <87tv0668us.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -2.3 (--)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

Alexey Abramov <levenson@HIDDEN> skribis:

> ---
>  gnu/packages/java.scm | 165 ++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 165 insertions(+)

Please add a commit log.

[...]

> +         (add-after 'build 'generate-headers
> +           (lambda* (#:key inputs #:allow-other-keys)

Could you add a comment explaining what this phase does and why we=E2=80=99=
re
doing all this?  (Same for the other phases.)

> +             (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.ContextMenu=
Item"
> +                                             "com.sun.webkit.CursorManag=
er"

Perhaps add a comment explaining how you obtained this list of classes
so that our future selves know how to update it.

Since this is a Web thing, could you check whether it contains pre-built
(=E2=80=9Cminified=E2=80=9D) JavaScript?  If it does, that=E2=80=99s a prob=
lem because we
generally provide only software built from source.

Could you send an updated patch series?

Thank you for the hard work!

Ludo=E2=80=99.




Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH v2 2/9] gnu: java-openjfx-build: Fix indentation.
Resent-From: Alexey Abramov <levenson@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Sat, 30 May 2020 16:42:01 +0000
Resent-Message-ID: <handler.41360.B41360.159085689724961 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: 41360 <at> debbugs.gnu.org
Received: via spool by 41360-submit <at> debbugs.gnu.org id=B41360.159085689724961
          (code B ref 41360); Sat, 30 May 2020 16:42:01 +0000
Received: (at 41360) by debbugs.gnu.org; 30 May 2020 16:41:37 +0000
Received: from localhost ([127.0.0.1]:58979 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jf4YC-0006UX-O8
	for submit <at> debbugs.gnu.org; Sat, 30 May 2020 12:41:36 -0400
Received: from mx4.mail.mmer.org ([178.22.66.29]:15983)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <levenson@HIDDEN>) id 1jf4YB-0006UF-Gn
 for 41360 <at> debbugs.gnu.org; Sat, 30 May 2020 12:41:35 -0400
Received: from delta (92-109-1-225.cable.dynamic.v4.ziggo.nl [92.109.1.225])
 (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 D7DF59CC47
 for <41360 <at> debbugs.gnu.org>; Sat, 30 May 2020 16:10:46 +0000 (UTC)
From: Alexey Abramov <levenson@HIDDEN>
Date: Sat, 30 May 2020 18:41:16 +0200
Message-Id: <20200530164123.30557-2-levenson@HIDDEN>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20200530164123.30557-1-levenson@HIDDEN>
References: <20200530164123.30557-1-levenson@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

* gnu/packages/java.scm (java-openjfx-build)[source]: Change the indentation
  of the uri dirictive.

Signed-off-by: Alexey Abramov <levenson@HIDDEN>
---
 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 d569ed57d6..43f0f37b91 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
-- 
2.26.2





Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH v2 5/9] gnu: java-openjfx-swing: Add new variable.
Resent-From: Alexey Abramov <levenson@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Sat, 30 May 2020 16:42:02 +0000
Resent-Message-ID: <handler.41360.B41360.159085690225009 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: 41360 <at> debbugs.gnu.org
Received: via spool by 41360-submit <at> debbugs.gnu.org id=B41360.159085690225009
          (code B ref 41360); Sat, 30 May 2020 16:42:02 +0000
Received: (at 41360) by debbugs.gnu.org; 30 May 2020 16:41:42 +0000
Received: from localhost ([127.0.0.1]:58987 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jf4YH-0006VI-V4
	for submit <at> debbugs.gnu.org; Sat, 30 May 2020 12:41:42 -0400
Received: from mx4.mail.mmer.org ([178.22.66.29]:33008)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <levenson@HIDDEN>) id 1jf4YC-0006UK-6g
 for 41360 <at> debbugs.gnu.org; Sat, 30 May 2020 12:41:36 -0400
Received: from delta (92-109-1-225.cable.dynamic.v4.ziggo.nl [92.109.1.225])
 (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 BE8929D0EE
 for <41360 <at> debbugs.gnu.org>; Sat, 30 May 2020 16:10:47 +0000 (UTC)
From: Alexey Abramov <levenson@HIDDEN>
Date: Sat, 30 May 2020 18:41:19 +0200
Message-Id: <20200530164123.30557-5-levenson@HIDDEN>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20200530164123.30557-1-levenson@HIDDEN>
References: <20200530164123.30557-1-levenson@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

* gnu/packages/java.scm (java-openjfx-graphics): New variable.

Signed-off-by: Alexey Abramov <levenson@HIDDEN>
---
 gnu/packages/java.scm | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 938fc0695c..f124062035 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -3205,6 +3205,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")
-- 
2.26.2





Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH v2 6/9] gnu: java-openjfx-swt: Add new variable.
Resent-From: Alexey Abramov <levenson@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Sat, 30 May 2020 16:42:02 +0000
Resent-Message-ID: <handler.41360.B41360.159085690225021 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: 41360 <at> debbugs.gnu.org
Received: via spool by 41360-submit <at> debbugs.gnu.org id=B41360.159085690225021
          (code B ref 41360); Sat, 30 May 2020 16:42:02 +0000
Received: (at 41360) by debbugs.gnu.org; 30 May 2020 16:41:42 +0000
Received: from localhost ([127.0.0.1]:58989 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jf4YI-0006VK-7R
	for submit <at> debbugs.gnu.org; Sat, 30 May 2020 12:41:42 -0400
Received: from mx4.mail.mmer.org ([178.22.66.29]:33012)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <levenson@HIDDEN>) id 1jf4YC-0006UR-Ps
 for 41360 <at> debbugs.gnu.org; Sat, 30 May 2020 12:41:37 -0400
Received: from delta (92-109-1-225.cable.dynamic.v4.ziggo.nl [92.109.1.225])
 (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 5CD3A9D154
 for <41360 <at> debbugs.gnu.org>; Sat, 30 May 2020 16:10:48 +0000 (UTC)
From: Alexey Abramov <levenson@HIDDEN>
Date: Sat, 30 May 2020 18:41:20 +0200
Message-Id: <20200530164123.30557-6-levenson@HIDDEN>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20200530164123.30557-1-levenson@HIDDEN>
References: <20200530164123.30557-1-levenson@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

* gnu/packages/java.scm (java-openjfx-swing): New variable.

Signed-off-by: Alexey Abramov <levenson@HIDDEN>
---
 gnu/packages/java.scm | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index f124062035..f8d47d7eed 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -3218,6 +3218,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")
-- 
2.26.2





Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH v2 7/9] gnu: java-openjfx-controls: Add new variable.
Resent-From: Alexey Abramov <levenson@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Sat, 30 May 2020 16:42:02 +0000
Resent-Message-ID: <handler.41360.B41360.159085690225029 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: 41360 <at> debbugs.gnu.org
Received: via spool by 41360-submit <at> debbugs.gnu.org id=B41360.159085690225029
          (code B ref 41360); Sat, 30 May 2020 16:42:02 +0000
Received: (at 41360) by debbugs.gnu.org; 30 May 2020 16:41:42 +0000
Received: from localhost ([127.0.0.1]:58991 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jf4YI-0006VW-FR
	for submit <at> debbugs.gnu.org; Sat, 30 May 2020 12:41:42 -0400
Received: from mx4.mail.mmer.org ([178.22.66.29]:33016)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <levenson@HIDDEN>) id 1jf4YD-0006Ug-Dl
 for 41360 <at> debbugs.gnu.org; Sat, 30 May 2020 12:41:38 -0400
Received: from delta (92-109-1-225.cable.dynamic.v4.ziggo.nl [92.109.1.225])
 (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 1393F9D164
 for <41360 <at> debbugs.gnu.org>; Sat, 30 May 2020 16:10:48 +0000 (UTC)
From: Alexey Abramov <levenson@HIDDEN>
Date: Sat, 30 May 2020 18:41:21 +0200
Message-Id: <20200530164123.30557-7-levenson@HIDDEN>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20200530164123.30557-1-levenson@HIDDEN>
References: <20200530164123.30557-1-levenson@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

* gnu/packages/java.scm (java-openjfx-swt): New variable.

Signed-off-by: Alexey Abramov <levenson@HIDDEN>
---
 gnu/packages/java.scm | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index f8d47d7eed..ec9e24b8d3 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -3231,6 +3231,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")
-- 
2.26.2





Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH v2 9/9] gnu: java-openjfx-web: Add new variable.
Resent-From: Alexey Abramov <levenson@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Sat, 30 May 2020 16:42:03 +0000
Resent-Message-ID: <handler.41360.B41360.159085690325036 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: 41360 <at> debbugs.gnu.org
Received: via spool by 41360-submit <at> debbugs.gnu.org id=B41360.159085690325036
          (code B ref 41360); Sat, 30 May 2020 16:42:03 +0000
Received: (at 41360) by debbugs.gnu.org; 30 May 2020 16:41:43 +0000
Received: from localhost ([127.0.0.1]:58993 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jf4YI-0006Ve-Nc
	for submit <at> debbugs.gnu.org; Sat, 30 May 2020 12:41:43 -0400
Received: from mx4.mail.mmer.org ([178.22.66.29]:33023)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <levenson@HIDDEN>) id 1jf4YE-0006Un-1R
 for 41360 <at> debbugs.gnu.org; Sat, 30 May 2020 12:41:39 -0400
Received: from delta (92-109-1-225.cable.dynamic.v4.ziggo.nl [92.109.1.225])
 (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 E6D979D154
 for <41360 <at> debbugs.gnu.org>; Sat, 30 May 2020 16:10:49 +0000 (UTC)
From: Alexey Abramov <levenson@HIDDEN>
Date: Sat, 30 May 2020 18:41:23 +0200
Message-Id: <20200530164123.30557-9-levenson@HIDDEN>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20200530164123.30557-1-levenson@HIDDEN>
References: <20200530164123.30557-1-levenson@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

* gnu/packages/java.scm (java-openjfx-web): New variable.

We build not only a web component here, but webkit as well. Webkit requires
some extra 3rd party libraries icu, libxml, libxslt and sqlite which are
already in openjfx source bundle.

Signed-off-by: Alexey Abramov <levenson@HIDDEN>
---
 gnu/packages/java.scm | 176 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 176 insertions(+)

diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index f8a5b71a48..0d2f268764 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)
@@ -3263,6 +3267,178 @@ 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* _
+             (invoke "ant" "compile" "-Dclasses.dir=modules/web/build/classes/java/main")
+             #t))
+
+         (add-after 'build 'generate-headers
+           ;; XX: We provide only software built from source, so let's build
+           ;; webkit as well. List of webkit classes can be found in
+           ;; build.gradle:2516. We need to generate headers for the upcoming
+           ;; compilation step first and put them in generated-src/headers
+           ;; location.
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let* ((classes "modules/web/build/classes/java/main")
+                    (web-generated-headers "modules/web/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
+                       ;; We disable all the updates, and build 3rd-party libs
+                       ;; lice icu, libxml, libxslt and sqlite. Source code
+                       ;; sits modules/web/src/main/native/Source/ThirdPArty.
+                       "--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* ((resources "modules/web/src/main/resources")
+                    (classes "modules/web/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)
+       ;; XX: With current gcc (gcc-7.5) the build breaks on building
+       ;; thirdparty libraries like xslt. c++14 is used to build
+       ;; them. CMAKE_CXX_STANDARD doesn't take any effect here for some
+       ;; reason.
+       ("gcc" ,gcc-5)
+       ("glibc" ,glibc-2.29)
+       ("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")
-- 
2.26.2





Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH v2 1/9] gnu: java-openjfx-build: Add helpful patch.
References: <20200517132829.1553311-1-levenson@HIDDEN>
In-Reply-To: <20200517132829.1553311-1-levenson@HIDDEN>
Resent-From: Alexey Abramov <levenson@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Sat, 30 May 2020 16:42:03 +0000
Resent-Message-ID: <handler.41360.B41360.159085690725048 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: 41360 <at> debbugs.gnu.org
Received: via spool by 41360-submit <at> debbugs.gnu.org id=B41360.159085690725048
          (code B ref 41360); Sat, 30 May 2020 16:42:03 +0000
Received: (at 41360) by debbugs.gnu.org; 30 May 2020 16:41:47 +0000
Received: from localhost ([127.0.0.1]:58995 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jf4YJ-0006Vl-7M
	for submit <at> debbugs.gnu.org; Sat, 30 May 2020 12:41:47 -0400
Received: from mx4.mail.mmer.org ([178.22.66.29]:32996)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <levenson@HIDDEN>) id 1jf4YB-0006UG-GQ
 for 41360 <at> debbugs.gnu.org; Sat, 30 May 2020 12:41:39 -0400
Received: from delta (92-109-1-225.cable.dynamic.v4.ziggo.nl [92.109.1.225])
 (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 9E9F89CC41
 for <41360 <at> debbugs.gnu.org>; Sat, 30 May 2020 16:10:46 +0000 (UTC)
From: Alexey Abramov <levenson@HIDDEN>
Date: Sat, 30 May 2020 18:41:15 +0200
Message-Id: <20200530164123.30557-1-levenson@HIDDEN>
X-Mailer: git-send-email 2.26.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

* gnu/packages/java.scm (java-openjfx-build)[source]: Use it.
* gnu/packages/patches/java-openjfx-build-jdk_version.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.

Signed-off-by: Alexey Abramov <levenson@HIDDEN>
---
 gnu/local.mk                                  |  1 +
 gnu/packages/java.scm                         |  3 ++-
 .../java-openjfx-build-jdk_version.patch      | 27 +++++++++++++++++++
 3 files changed, 30 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/java-openjfx-build-jdk_version.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 768943a67a..cbf0a20a9e 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1110,6 +1110,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-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 b12c3ca95c..d569ed57d6 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-jdk_version.patch"))))
     (build-system ant-build-system)
     (arguments
      `(#:jar-name "java-openjfx.jar"
diff --git a/gnu/packages/patches/java-openjfx-build-jdk_version.patch b/gnu/packages/patches/java-openjfx-build-jdk_version.patch
new file mode 100644
index 0000000000..7be954467a
--- /dev/null
+++ b/gnu/packages/patches/java-openjfx-build-jdk_version.patch
@@ -0,0 +1,27 @@
+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])
+2.24.1
-- 
2.26.2





Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH v2 4/9] gnu: java-openjfx-build: Fix openjfx-swing component build for JDKu8
Resent-From: Alexey Abramov <levenson@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Sat, 30 May 2020 16:42:04 +0000
Resent-Message-ID: <handler.41360.B41360.159085691525062 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: 41360 <at> debbugs.gnu.org
Received: via spool by 41360-submit <at> debbugs.gnu.org id=B41360.159085691525062
          (code B ref 41360); Sat, 30 May 2020 16:42:04 +0000
Received: (at 41360) by debbugs.gnu.org; 30 May 2020 16:41:55 +0000
Received: from localhost ([127.0.0.1]:58997 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jf4YN-0006Vx-Ie
	for submit <at> debbugs.gnu.org; Sat, 30 May 2020 12:41:54 -0400
Received: from mx4.mail.mmer.org ([178.22.66.29]:33004)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <levenson@HIDDEN>) id 1jf4YB-0006UJ-NB
 for 41360 <at> debbugs.gnu.org; Sat, 30 May 2020 12:41:41 -0400
Received: from delta (92-109-1-225.cable.dynamic.v4.ziggo.nl [92.109.1.225])
 (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 815239CFFC
 for <41360 <at> debbugs.gnu.org>; Sat, 30 May 2020 16:10:47 +0000 (UTC)
From: Alexey Abramov <levenson@HIDDEN>
Date: Sat, 30 May 2020 18:41:18 +0200
Message-Id: <20200530164123.30557-4-levenson@HIDDEN>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20200530164123.30557-1-levenson@HIDDEN>
References: <20200530164123.30557-1-levenson@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

* gnu/packages/java.scm (java-openjfx-build)[source]: Use it.
* gnu/packages/patches/java-openjfx-build-swing-JFXPanel-JDK8.patch:
  New file.
* gnu/local.mk (dist_patch_DATA): Add it.

Signed-off-by: Alexey Abramov <levenson@HIDDEN>
---
 gnu/local.mk                                  |  1 +
 gnu/packages/java.scm                         |  3 +-
 ...va-openjfx-build-swing-JFXPanel-JDK8.patch | 60 +++++++++++++++++++
 3 files changed, 63 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/java-openjfx-build-swing-JFXPanel-JDK8.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index cbf0a20a9e..e15554f1c2 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1111,6 +1111,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-jdk_version.patch     \
+  %D%/packages/patches/java-openjfx-build-swing-JFXPanel-JDK8.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 9d73d9a7e8..938fc0695c 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-jdk_version.patch"))))
+              (patches (search-patches "java-openjfx-build-jdk_version.patch"
+                                       "java-openjfx-build-swing-JFXPanel-JDK8.patch"))))
     (build-system ant-build-system)
     (arguments
      `(#:jar-name "java-openjfx.jar"
diff --git a/gnu/packages/patches/java-openjfx-build-swing-JFXPanel-JDK8.patch b/gnu/packages/patches/java-openjfx-build-swing-JFXPanel-JDK8.patch
new file mode 100644
index 0000000000..b540048621
--- /dev/null
+++ b/gnu/packages/patches/java-openjfx-build-swing-JFXPanel-JDK8.patch
@@ -0,0 +1,60 @@
+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
-- 
2.26.2





Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH v2 3/9] gnu: java-openjfx-graphics: Implement a complete compilation.
Resent-From: Alexey Abramov <levenson@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Sat, 30 May 2020 16:43:02 +0000
Resent-Message-ID: <handler.41360.B41360.159085692525148 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: 41360 <at> debbugs.gnu.org
Received: via spool by 41360-submit <at> debbugs.gnu.org id=B41360.159085692525148
          (code B ref 41360); Sat, 30 May 2020 16:43:02 +0000
Received: (at 41360) by debbugs.gnu.org; 30 May 2020 16:42:05 +0000
Received: from localhost ([127.0.0.1]:58999 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jf4YU-0006WB-U9
	for submit <at> debbugs.gnu.org; Sat, 30 May 2020 12:42:05 -0400
Received: from mx4.mail.mmer.org ([178.22.66.29]:33000)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <levenson@HIDDEN>) id 1jf4YB-0006UI-GV
 for 41360 <at> debbugs.gnu.org; Sat, 30 May 2020 12:41:41 -0400
Received: from delta (92-109-1-225.cable.dynamic.v4.ziggo.nl [92.109.1.225])
 (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 118999CE92
 for <41360 <at> debbugs.gnu.org>; Sat, 30 May 2020 16:10:47 +0000 (UTC)
From: Alexey Abramov <levenson@HIDDEN>
Date: Sat, 30 May 2020 18:41:17 +0200
Message-Id: <20200530164123.30557-3-levenson@HIDDEN>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20200530164123.30557-1-levenson@HIDDEN>
References: <20200530164123.30557-1-levenson@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

* gnu/packages/java.scm (java-openjfx-graphics): Add stages to build
  libdecora_sse, prism_common, glassgtk2, iio, prism_sw, prism_es2,
  font_freetype, glassgtk3, font, font_pango and glass libraries.

All the steps were taken by inspecting ./gradlew build --info result.

Signed-off-by: Alexey Abramov <levenson@HIDDEN>
---
 gnu/packages/java.scm | 642 +++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 634 insertions(+), 8 deletions(-)

diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 43f0f37b91..9d73d9a7e8 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,641 @@ 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))
+
+           ;; XX: Description can be found in build.gradle:1429. Currently
+           ;; there is no sdk creation step.
+           ;;
+           ;; The Decora and Prism JSL files have to be generated in a very specific set of steps.
+           ;;      1) Compile the *Compile.java classes. These live in src/main/jsl-* and will be
+           ;;         output to $buildDir/classes/jsl-compilers/* (where * == decora or prism).
+           ;;      2) Generate source files from the JSL files contained in src/main/jsl-*. These
+           ;;         will be output to $buildDir/generated-src/jsl-*
+           ;;      3) Compile the JSL Java sources in $buildDir/generated-src/jsl-* and put the output
+           ;;         into classes/jsl-*
+           ;;      4) Compile the native JSL sources in $buildDir/generated-src/jsl-* and put the obj
+           ;;         files into native/jsl-* and the resulting library into libs/jsl-*.dll|so|dylib
+           ;;      5) Modify the jar step to include classes/jsl-*
+           ;; The native library must be copied over during SDK creation time in the "sdk" task. In
+           ;; addition to these steps, the clean task is created. Note that I didn't bother to create
+           ;; a new task for each of the decora files, preferring instead just to create a rule?? Also
+           ;; need "clean" tasks for each compile task.
+           (add-after 'build 'compile-prism-compilers
+             (lambda _
+               (let ((prism-compilers-classes "modules/graphics/build/classes/jsl-compilers/prism")
+                     (prism-src "modules/graphics/src/main/jsl-prism/"))
+                 (mkdir-p prism-compilers-classes)
+
+                 (apply invoke "javac" "-d" prism-compilers-classes
+                        (append javac/h-flags (find-files prism-src "\\.java"))))
+
+               #t))
+
+           (add-after 'compile-prism-compilers 'generate-prism-shaders
+             (lambda _
+               (let ((prism-compilers-classes "modules/graphics/build/classes/jsl-compilers/prism")
+                     (prism-src "modules/graphics/src/main/jsl-prism/")
+                     (prism-gen-src "modules/graphics/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" (list file)))
+                           (find-files prism-src "\\.jsl$")))
+               #t))
+
+           (add-after 'generate-prism-shaders 'compile-prism-shaders
+             (lambda _
+               (let* ((classes "modules/graphics/build/classes/java/main")
+                      (prism-classes "modules/graphics/build/classes/jsl-prism")
+                      (prism-gen-src "modules/graphics/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"))
+                        (append javac/h-flags (find-files prism-gen-shaders-src))))
+               #t))
+
+           (add-after 'compile-prism-shaders 'compile-decora-compilers
+             (lambda _
+               (let ((classes "modules/graphics/build/classes/java/main")
+                     (decora-compilers-classes "modules/graphics/build/classes/jsl-compilers/decora")
+                     (decora-src "modules/graphics/src/main/jsl-decora/"))
+                 (mkdir-p decora-compilers-classes)
+                 (apply invoke "javac"
+                        "-d" decora-compilers-classes
+                        "-cp" (string-append classes ":" (getenv "CLASSPATH"))
+                        (append javac/h-flags (find-files decora-src "\\.java"))))
+               #t))
+
+           (add-after 'compile-decora-compilers 'generate-decora-shaders
+             (lambda _
+               (let ((classes "modules/graphics/build/classes/java/main")
+                     (decora-classes "modules/graphics/build/classes/jsl-decora/")
+                     (decora-compilers-classes "modules/graphics/build/classes/jsl-compilers/decora")
+                     (decora-gen-src "modules/graphics/build/generated-src/jsl-decora")
+                     (decora-src "modules/graphics/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
+                                     (list file-name))))
+                           decora-components)
+                 #t)))
+
+           (add-after 'generate-decora-shaders 'compile-decora-shaders
+             (lambda _
+               (let ((classes "modules/graphics/build/classes/java/main")
+                     (decora-classes "modules/graphics/build/classes/jsl-decora/")
+                     (decora-gen-src "modules/graphics/build/generated-src/jsl-decora"))
+                 (mkdir-p decora-classes)
+                 (apply invoke "javac"
+                        "-d" decora-classes
+                        "-cp" classes
+                        (append 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 "modules/graphics/build/classes/java/main")
+                      (decora-gen-headers "modules/graphics/build/generated-src/headers/jsl-decora")
+                      (decora-gen-src "modules/graphics/build/generated-src/jsl-decora")
+                      (decora-native-lib "modules/graphics/build/libs/jsl-decora/linux/libdecora_sse.so")
+                      (decora-native-obj "modules/graphics/build/native/jsl-decora/linux")
+                      (decora-native-src "modules/graphics/src/main/native-decora")
+                      (decora-src "modules/graphics/src/main/jsl-decora/")
+                      (decora-classes "modules/graphics/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) ":")
+                        (append 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"
+                                    "-I" decora-gen-headers
+                                    "-I" decora-gen-src
+                                    "-I" decora-native-src
+                                    "-o" (string-append decora-native-obj  "/" (basename cc ".cc") ".obj")
+                                    (append decora-cc-flags (list 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
+                        (append 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 "modules/graphics/build/classes/java/main")
+                      (font-gen-headers "modules/graphics/build/generated-src/headers/font/linux")
+                      (font-native-lib "modules/graphics/build/libs/font/linux/libjavafx_font.so")
+                      (font-native-obj "modules/graphics/build/native/font/linux")
+                      (font-native-src "modules/graphics/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
+                        (append 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"
+                                    "-I" font-gen-headers
+                                    "-I" font-native-src
+                                    "-o" (string-append font-native-obj "/"
+                                                        (basename cc ".c") ".obj")
+                                    (append font-cc-flags (list cc))))
+                           (find-files font-native-src "\\.c$"))
+                 (mkdir-p (dirname font-native-lib))
+                 (apply invoke "g++"
+                        "-o" font-native-lib
+                        (append 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 "modules/graphics/build/classes/java/main")
+                      ;;
+                      (font-freetype-gen-headers "modules/graphics/build/generated-src/headers/fontFreetype/linux")
+                      (font-freetype-native-lib "modules/graphics/build/libs/fontFreetype/linux/libjavafx_font_freetype.so")
+                      (font-freetype-native-obj "modules/graphics/build/native/fontFreetype/linux")
+                      (font-freetype-native-src "modules/graphics/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
+                        (append 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 "modules/graphics/build/classes/java/main")
+                      (font-pango-gen-headers "modules/graphics/build/generated-src/headers/fontPango/linux")
+                      (font-pango-native-lib "modules/graphics/build/libs/fontPango/linux/libjavafx_font_pango.so")
+                      (font-pango-native-obj "modules/graphics/build/native/fontPango/linux")
+                      (font-pango-native-src "modules/graphics/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
+                        (append 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 "modules/graphics/build/classes/java/main")
+                      ;; glass
+                      (glass-gen-headers "modules/graphics/build/generated-src/headers/glass/linux")
+                      (glass-native-lib "modules/graphics/build/libs/glass/linux/libglass.so")
+                      (glass-native-obj "modules/graphics/build/native/glass/linux/glass")
+                      (glass-native-src "modules/graphics/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 "modules/graphics/build/native/glass/linux/glassgtk2")
+                      (glass-gtk2-native-src (dirname glass-native-src))
+                      (glass-gtk2-native-lib "modules/graphics/build/libs/glass/linux/libglassgtk2.so")
+                      (glass-gtk2-cc-flags
+                       `(,@cc-flags
+                         "$(pkg-config --cflags gtk+-2.0 gthread-2.0 xtst)"
+                         ;; XX: GTimeVal has been deprecated in GLIB since
+                         ;; version 2.62. GTimeVal s not year-2038-safe. Gtk
+                         ;; 2.24 uses GTimeVal so our build is also failing.
+                         "-Wno-deprecated-declarations"
+                         "-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 "modules/graphics/build/native/glass/linux/glassgtk3")
+                      (glass-gtk3-native-src (dirname glass-native-src))
+                      (glass-gtk3-native-lib "modules/graphics/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"))
+                        (append 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 "modules/graphics/build/classes/java/main")
+                      (iio-gen-headers "modules/graphics/build/generated-src/headers/iio/linux")
+                      (iio-native-lib "modules/graphics/build/libs/iio/linux/libjavafx_iio.so")
+                      (iio-native-obj "modules/graphics/build/native/iio/linux")
+                      (iio-native-src "modules/graphics/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"))
+                        (append 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 "modules/graphics/build/classes/java/main")
+                      (prism-gen-headers "modules/graphics/build/generated-src/headers/prism/linux")
+                      (prism-native-lib "modules/graphics/build/libs/prism/linux/libprism_common.so")
+                      (prism-native-obj "modules/graphics/build/native/prism/linux")
+                      (prism-native-src "modules/graphics/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"))
+                        (append 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 "modules/graphics/build/classes/java/main")
+                      (prism-es2-gen-headers "modules/graphics/build/generated-src/headers/prismES2/linux")
+                      (prism-es2-native-lib "modules/graphics/build/libs/prism/linux/libprism_es2.so")
+                      (prism-es2-native-obj "modules/graphics/build/native/prismES2/linux")
+                      (prism-es2-native-src "modules/graphics/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"))
+                        (append 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"
+                                    "-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")
+                                    (append prism-es2-cc-flags (list 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 "modules/graphics/build/classes/java/main")
+                      (prism-sw-gen-headers "modules/graphics/build/generated-src/headers/prismSW/linux")
+                      (prism-sw-native-lib "modules/graphics/build/libs/prism/linux/libprism_sw.so")
+                      (prism-sw-native-obj "modules/graphics/build/native/prismSW/linux")
+                      (prism-sw-native-src "modules/graphics/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"))
+                        (append 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++" "-o" prism-sw-native-lib
+                        (append prism-sw-link-flags (find-files prism-sw-native-obj "\\.obj$")))
+                 #t)))
+
+           (add-after 'compile-linux-prism-sw '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 "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-turbo)
+       ("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)
-- 
2.26.2





Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH v2 8/9] gnu: java-openjfx-build: Prepare a patch to build openjfx-web.
Resent-From: Alexey Abramov <levenson@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Sat, 30 May 2020 16:43:03 +0000
Resent-Message-ID: <handler.41360.B41360.159085692825157 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: 41360 <at> debbugs.gnu.org
Received: via spool by 41360-submit <at> debbugs.gnu.org id=B41360.159085692825157
          (code B ref 41360); Sat, 30 May 2020 16:43:03 +0000
Received: (at 41360) by debbugs.gnu.org; 30 May 2020 16:42:08 +0000
Received: from localhost ([127.0.0.1]:59008 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jf4Yf-0006XZ-4b
	for submit <at> debbugs.gnu.org; Sat, 30 May 2020 12:42:08 -0400
Received: from mx4.mail.mmer.org ([178.22.66.29]:33012)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <levenson@HIDDEN>) id 1jf4YD-0006UR-Gb
 for 41360 <at> debbugs.gnu.org; Sat, 30 May 2020 12:41:42 -0400
Received: from delta (92-109-1-225.cable.dynamic.v4.ziggo.nl [92.109.1.225])
 (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 A5F719D166
 for <41360 <at> debbugs.gnu.org>; Sat, 30 May 2020 16:10:49 +0000 (UTC)
From: Alexey Abramov <levenson@HIDDEN>
Date: Sat, 30 May 2020 18:41:22 +0200
Message-Id: <20200530164123.30557-8-levenson@HIDDEN>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20200530164123.30557-1-levenson@HIDDEN>
References: <20200530164123.30557-1-levenson@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

* gnu/packages/java.scm (java-openjfx-build)[source]: Use it.
* gnu/packages/patches/java-openjfx-build-web-xlocale.h.patch:
  New file.
* gnu/local.mk (dist_patch_DATA): Add it.

Signed-off-by: Alexey Abramov <levenson@HIDDEN>
---
 gnu/local.mk                                  |  1 +
 gnu/packages/java.scm                         |  3 +-
 .../java-openjfx-build-web-xlocale.h.patch    | 52 +++++++++++++++++++
 3 files changed, 55 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/java-openjfx-build-web-xlocale.h.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index e15554f1c2..71d7079134 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1112,6 +1112,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/java-jeromq-fix-tests.patch		\
   %D%/packages/patches/java-openjfx-build-jdk_version.patch     \
   %D%/packages/patches/java-openjfx-build-swing-JFXPanel-JDK8.patch     \
+  %D%/packages/patches/java-openjfx-build-web-xlocale.h.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 ec9e24b8d3..f8a5b71a48 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-jdk_version.patch"
-                                       "java-openjfx-build-swing-JFXPanel-JDK8.patch"))))
+                                       "java-openjfx-build-swing-JFXPanel-JDK8.patch"
+                                       "java-openjfx-build-web-xlocale.h.patch"))))
     (build-system ant-build-system)
     (arguments
      `(#:jar-name "java-openjfx.jar"
diff --git a/gnu/packages/patches/java-openjfx-build-web-xlocale.h.patch b/gnu/packages/patches/java-openjfx-build-web-xlocale.h.patch
new file mode 100644
index 0000000000..138f39f9af
--- /dev/null
+++ b/gnu/packages/patches/java-openjfx-build-web-xlocale.h.patch
@@ -0,0 +1,52 @@
+Subject: [PATCH] Check <xlocale.h> 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 <xlocale.h> 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 <xlocale.h> 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
-- 
2.26.2





Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH 01/12] gnu: java-openjfx-build: Add helpful patch.
In-Reply-To: <20200517132829.1553311-1-levenson@HIDDEN>
Resent-From: Alexey Abramov <levenson@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Sat, 30 May 2020 16:46:03 +0000
Resent-Message-ID: <handler.41360.B41360.159085710625468 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
Cc: 41360 <at> debbugs.gnu.org
Received: via spool by 41360-submit <at> debbugs.gnu.org id=B41360.159085710625468
          (code B ref 41360); Sat, 30 May 2020 16:46:03 +0000
Received: (at 41360) by debbugs.gnu.org; 30 May 2020 16:45:06 +0000
Received: from localhost ([127.0.0.1]:59017 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jf4ba-0006cg-7t
	for submit <at> debbugs.gnu.org; Sat, 30 May 2020 12:45:06 -0400
Received: from mx4.mail.mmer.org ([178.22.66.29]:27904)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <levenson@HIDDEN>) id 1jf4bV-0006bs-D6
 for 41360 <at> debbugs.gnu.org; Sat, 30 May 2020 12:45:05 -0400
Received: from delta (92-109-1-225.cable.dynamic.v4.ziggo.nl [92.109.1.225])
 (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 84CD99CC41;
 Sat, 30 May 2020 16:14:12 +0000 (UTC)
From: Alexey Abramov <levenson@HIDDEN>
References: <20200517132829.1553311-1-levenson@HIDDEN>
 <20200517135138.1651512-1-levenson@HIDDEN> <87k1127ny7.fsf@HIDDEN>
Date: Sat, 30 May 2020 18:44:56 +0200
Message-ID: <87blm52wzb.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Ludovic Court=C3=A8s <ludo@HIDDEN> writes:

> Hi Alexey,
>
> Thanks for the patch series!
>
> Alexey Abramov <levenson@HIDDEN> skribis:
>
>> * gnu/packages/java.scm (java-openjfx-build)[source]: Use it.
>> * gnu/packages/patches/java-openjfx-build-get_guix_jdk_version.patch: Ne=
w file.
>> * gnu/local.mk (dist_patch_DATA): Add it.
>
> [...]
>
>> +++ b/gnu/packages/patches/java-openjfx-build-get_guix_jdk_version.patch
>> @@ -0,0 +1,37 @@
>
> Could you shorten this file name a bit?  (=E2=80=98guix lint=E2=80=99 pro=
bably complains.)

Sure. By the way it complains on other derrived packages like java-openjfx-=
base which inherits java-openjfx-build.

/home/levenson/factory/guix/gnu/packages/java.scm:2486:12: java-openjfx-bui=
ld@HIDDEN: source not archived on Software Heritage

/home/levenson/factory/guix/gnu/packages/java.scm:2533:2: java-openjfx-base=
@8.202: file names of patches should start with the package name
/home/levenson/factory/guix/gnu/packages/java.scm:2537:0: java-openjfx-base=
@8.202: line 2537 is way too long (111 characters)
/home/levenson/factory/guix/gnu/packages/java.scm:2552:0: java-openjfx-base=
@8.202: line 2552 is way too long (99 characters)
/home/levenson/factory/guix/gnu/packages/java.scm:2533:2: java-openjfx-base=
@8.202: source not archived on Software Heritage

>
>> +From d156313340d3edcd78751ea8ed5e66c7668275c3 Mon Sep 17 00:00:00 2001
>> +From: Alexey Abramov <levenson@HIDDEN>
>> +Date: Sun, 8 Mar 2020 20:07:22 +0100
>> +Subject: [PATCH] openjfx: Determine the version of Java in JDK_HOME
>
> In general I think you can omit the first three lines and just keep the
> subject.

Ah, great.

>
>> +Icedtea contains guix in its version, so build.gradle failes to run. Op=
enjfx
>> +packaging is not trivial, so you will probably need to try build it with
>> +gradlew.
>
> Otherwise LGTM.

--
Alexey




Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH 03/12] gnu: java-openjfx-graphics: Implement a complete compilation.
In-Reply-To: <20200517132829.1553311-1-levenson@HIDDEN>
Resent-From: Alexey Abramov <levenson@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Sat, 30 May 2020 16:46:03 +0000
Resent-Message-ID: <handler.41360.B41360.159085711725494 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
Cc: 41360 <at> debbugs.gnu.org
Received: via spool by 41360-submit <at> debbugs.gnu.org id=B41360.159085711725494
          (code B ref 41360); Sat, 30 May 2020 16:46:03 +0000
Received: (at 41360) by debbugs.gnu.org; 30 May 2020 16:45:17 +0000
Received: from localhost ([127.0.0.1]:59020 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jf4bl-0006d8-GB
	for submit <at> debbugs.gnu.org; Sat, 30 May 2020 12:45:17 -0400
Received: from mx4.mail.mmer.org ([178.22.66.29]:32793)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <levenson@HIDDEN>) id 1jf4bi-0006cz-L8
 for 41360 <at> debbugs.gnu.org; Sat, 30 May 2020 12:45:15 -0400
Received: from delta (92-109-1-225.cable.dynamic.v4.ziggo.nl [92.109.1.225])
 (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 82F829CC40;
 Sat, 30 May 2020 16:14:21 +0000 (UTC)
From: Alexey Abramov <levenson@HIDDEN>
References: <20200517135138.1651512-1-levenson@HIDDEN>
 <20200517135138.1651512-3-levenson@HIDDEN> <878shi7no2.fsf@HIDDEN>
Date: Sat, 30 May 2020 18:45:08 +0200
Message-ID: <874krx2wyz.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Ludovic Court=C3=A8s <ludo@HIDDEN> writes:

> Alexey Abramov <levenson@HIDDEN> skribis:
>
>> ---
>>  gnu/packages/java.scm | 643 +++++++++++++++++++++++++++++++++++++++++-
>>  1 file changed, 635 insertions(+), 8 deletions(-)
>
> Please add a commit log.
>
>> +              (java-aux-class?
>> +               (lambda (class)
>> +                 (string-match "\\$[0-9]+.class" class)))
>
> Probably =E2=80=9C\\.class=E2=80=9D instead of =E2=80=9C.class=E2=80=9D?

Ah, that sneaky dot. Thanks!

>
>> +           (add-after 'chdir-to-a-module-directory 'compile-prism-compi=
lers
>> +             (lambda _
>
> Maybe add a comment explaining why this phase is necessary.

Well, you know, I managed to eliminate it. Thanks!

>
>> +               (let ((prism-compilers-classes "build/classes/jsl-compil=
ers/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"))))
>
> This can be shortened as:
>
>   (apply invoke "javac" "-d" prism-compilers-classes
>          (append javac/h-flags (find-files prism-src "\\.java")))
>
> These two comments apply to the other phases too.
>
> More generally, why are there so many phases?  How do people normally
> build it?  Gradle?
>
> Would it make sense to factorize helpers in a new (gnu build
> java-openjfx) module or similar?


You are right, javafx builds with Gradel. I basically replicated gradle
stages, by inspecting ./gradlew build ... --info

The reason I didn't start building any helpers is because OpenJFX 8u and Op=
enJFX 9u or later use different instuctions as it states here [1]. I don't =
know if these helpers will apply to 9u, also having a (gnu build gradle) wo=
uld eliminate the need in helpers as well. In any case I think it won't be =
a problem to do that with a second iteration of openjfx build.

--
Alexey

Footnotes:

[1] https://wiki.openjdk.java.net/display/OpenJFX/Building+OpenJFX+8u




Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH 09/12] gnu: java-openjfx-web: Add new variable.
In-Reply-To: <20200517132829.1553311-1-levenson@HIDDEN>
Resent-From: Alexey Abramov <levenson@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Sat, 30 May 2020 16:46:03 +0000
Resent-Message-ID: <handler.41360.B41360.159085712425516 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
Cc: 41360 <at> debbugs.gnu.org
Received: via spool by 41360-submit <at> debbugs.gnu.org id=B41360.159085712425516
          (code B ref 41360); Sat, 30 May 2020 16:46:03 +0000
Received: (at 41360) by debbugs.gnu.org; 30 May 2020 16:45:24 +0000
Received: from localhost ([127.0.0.1]:59023 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jf4br-0006dT-PZ
	for submit <at> debbugs.gnu.org; Sat, 30 May 2020 12:45:24 -0400
Received: from mx4.mail.mmer.org ([178.22.66.29]:32798)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <levenson@HIDDEN>) id 1jf4bp-0006dL-RX
 for 41360 <at> debbugs.gnu.org; Sat, 30 May 2020 12:45:22 -0400
Received: from delta (92-109-1-225.cable.dynamic.v4.ziggo.nl [92.109.1.225])
 (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 2CC1D9CC47;
 Sat, 30 May 2020 16:14:32 +0000 (UTC)
From: Alexey Abramov <levenson@HIDDEN>
References: <20200517135138.1651512-1-levenson@HIDDEN>
 <20200517135138.1651512-9-levenson@HIDDEN> <87tv0668us.fsf@HIDDEN>
Date: Sat, 30 May 2020 18:45:19 +0200
Message-ID: <87wo4t1ie8.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Ludovic Court=C3=A8s <ludo@HIDDEN> writes:

> Alexey Abramov <levenson@HIDDEN> skribis:
>
>> ---
>>  gnu/packages/java.scm | 165 ++++++++++++++++++++++++++++++++++++++++++
>>  1 file changed, 165 insertions(+)
>
> Please add a commit log.
>
> [...]
>
>> +         (add-after 'build 'generate-headers
>> +           (lambda* (#:key inputs #:allow-other-keys)
>
> Could you add a comment explaining what this phase does and why we=E2=80=
=99re
> doing all this?  (Same for the other phases.)

Done.

>
>> +             (let* ((module (string-append (getcwd) "/modules/web"))
>> +                    (classes (string-append module "/build/classes/java=
/main"))
>> +                    (web-generated-headers (string-append module "/buil=
d/generated-src/headers"))
>> +                    (web-generated-classes '("com.sun.webkit.ContextMen=
u"
>> +                                             "com.sun.webkit.ContextMen=
uItem"
>> +                                             "com.sun.webkit.CursorMana=
ger"
>
> Perhaps add a comment explaining how you obtained this list of classes
> so that our future selves know how to update it.
>
> Since this is a Web thing, could you check whether it contains pre-built
> (=E2=80=9Cminified=E2=80=9D) JavaScript?  If it does, that=E2=80=99s a pr=
oblem because we
> generally provide only software built from source.

We build not only a web component here, but webkit as well. Webkit requires=
 some extra 3rd party libraries icu, libxml, libxslt and sqlite which are a=
lready in openjfx source bundle. We also build them now.

One thing to note here, I have tested openjfx only with davmail in order to=
 make oauth2 works. There is one exception during the authorization. When o=
auth accepts your password and waits for you to approve from another device=
, it changes the form and tries to shadow some captions, and those captions=
 just don't show up during that period of time. Don't know what to do here.=
 I am not a java developer, so probably it requires more testing. I was pla=
nning to talk about on openjfx mailing list, but time didn't let me.

--8<---------------cut here---------------start------------->8---
Error: CPU/SIMD peer not found for: Blend_SRC_IN due to error: com.sun.scen=
ario.effect.impl.sw.sse.SSEBlend_SRC_INPeer
java.lang.RuntimeException: Could not create peer  Blend_SRC_IN for rendere=
r com.sun.scenario.effect.impl.prism.sw.PSWRenderer@6218eb01
	at com.sun.scenario.effect.impl.Renderer.getPeerInstance(Unknown Source)
	at com.sun.scenario.effect.CoreEffect.getPeer(Unknown Source)
	at com.sun.scenario.effect.CoreEffect.getPeer(Unknown Source)
	at com.sun.scenario.effect.CoreEffect.filterImageDatas(Unknown Source)
	at com.sun.scenario.effect.Blend.filterImageDatas(Unknown Source)
	at com.sun.scenario.effect.FilterEffect.filter(Unknown Source)
	at com.sun.scenario.effect.impl.prism.PrEffectHelper.render(Unknown Source)
	at com.sun.javafx.webkit.prism.WCGraphicsPrismContext$ClipLayer.render(Unk=
nown Source)
	at com.sun.javafx.webkit.prism.WCGraphicsPrismContext.renderLayer(Unknown =
Source)
	at com.sun.javafx.webkit.prism.WCGraphicsPrismContext.restoreStateInternal=
(Unknown Source)
	at com.sun.javafx.webkit.prism.WCGraphicsPrismContext.restoreState(Unknown=
 Source)
	at com.sun.webkit.graphics.GraphicsDecoder.decode(Unknown Source)
	at com.sun.webkit.graphics.WCRenderQueue.decode(Unknown Source)
	at com.sun.webkit.WebPage.paint2GC(Unknown Source)
	at com.sun.webkit.WebPage.paint(Unknown Source)
	at com.sun.javafx.sg.prism.web.NGWebView.renderContent(Unknown Source)
	at com.sun.javafx.sg.prism.NGNode.doRender(Unknown Source)
	at com.sun.javafx.sg.prism.NGNode.render(Unknown Source)
	at com.sun.javafx.sg.prism.NGGroup.renderContent(Unknown Source)
	at com.sun.javafx.sg.prism.NGRegion.renderContent(Unknown Source)
	at com.sun.javafx.sg.prism.NGNode.doRender(Unknown Source)
	at com.sun.javafx.sg.prism.NGNode.render(Unknown Source)
	at com.sun.javafx.tk.quantum.ViewPainter.doPaint(Unknown Source)
	at com.sun.javafx.tk.quantum.ViewPainter.paintImpl(Unknown Source)
	at com.sun.javafx.tk.quantum.UploadingPainter.run(Unknown Source)
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
	at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
	at com.sun.javafx.tk.RenderJob.run(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.ja=
va:1149)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.j=
ava:624)
	at com.sun.javafx.tk.quantum.QuantumRenderer$PipelineRunnable.run(Unknown =
Source)
	at java.lang.Thread.run(Thread.java:748)
--8<---------------cut here---------------end--------------->8---

--
Alexey




Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH v3 2/9] gnu: java-openjfx-build: Fix indentation.
Resent-From: Alexey Abramov <levenson@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Sat, 30 May 2020 17:10:02 +0000
Resent-Message-ID: <handler.41360.B41360.159085859527862 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: 41360 <at> debbugs.gnu.org
Received: via spool by 41360-submit <at> debbugs.gnu.org id=B41360.159085859527862
          (code B ref 41360); Sat, 30 May 2020 17:10:02 +0000
Received: (at 41360) by debbugs.gnu.org; 30 May 2020 17:09:55 +0000
Received: from localhost ([127.0.0.1]:59061 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jf4zb-0007FK-B4
	for submit <at> debbugs.gnu.org; Sat, 30 May 2020 13:09:55 -0400
Received: from mx4.mail.mmer.org ([178.22.66.29]:41735)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <levenson@HIDDEN>) id 1jf4zZ-0007F6-Lk
 for 41360 <at> debbugs.gnu.org; Sat, 30 May 2020 13:09:54 -0400
Received: from delta (92-109-1-225.cable.dynamic.v4.ziggo.nl [92.109.1.225])
 (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 454D99CCD1
 for <41360 <at> debbugs.gnu.org>; Sat, 30 May 2020 16:39:05 +0000 (UTC)
From: Alexey Abramov <levenson@HIDDEN>
Date: Sat, 30 May 2020 19:09:44 +0200
Message-Id: <20200530170951.1649-2-levenson@HIDDEN>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20200530170951.1649-1-levenson@HIDDEN>
References: <20200530170951.1649-1-levenson@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

* gnu/packages/java.scm (java-openjfx-build)[source]: Change the indentation
  of the uri dirictive.

Signed-off-by: Alexey Abramov <levenson@HIDDEN>
---
 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 d569ed57d6..43f0f37b91 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
-- 
2.26.2





Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH v3 6/9] gnu: java-openjfx-swt: Add new variable.
Resent-From: Alexey Abramov <levenson@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Sat, 30 May 2020 17:10:03 +0000
Resent-Message-ID: <handler.41360.B41360.159085860027888 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: 41360 <at> debbugs.gnu.org
Received: via spool by 41360-submit <at> debbugs.gnu.org id=B41360.159085860027888
          (code B ref 41360); Sat, 30 May 2020 17:10:03 +0000
Received: (at 41360) by debbugs.gnu.org; 30 May 2020 17:10:00 +0000
Received: from localhost ([127.0.0.1]:59064 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jf4zf-0007Fj-IP
	for submit <at> debbugs.gnu.org; Sat, 30 May 2020 13:09:59 -0400
Received: from mx4.mail.mmer.org ([178.22.66.29]:53353)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <levenson@HIDDEN>) id 1jf4za-0007FH-QO
 for 41360 <at> debbugs.gnu.org; Sat, 30 May 2020 13:09:57 -0400
Received: from delta (92-109-1-225.cable.dynamic.v4.ziggo.nl [92.109.1.225])
 (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 5D3A09D0EE
 for <41360 <at> debbugs.gnu.org>; Sat, 30 May 2020 16:39:06 +0000 (UTC)
From: Alexey Abramov <levenson@HIDDEN>
Date: Sat, 30 May 2020 19:09:48 +0200
Message-Id: <20200530170951.1649-6-levenson@HIDDEN>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20200530170951.1649-1-levenson@HIDDEN>
References: <20200530170951.1649-1-levenson@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

* gnu/packages/java.scm (java-openjfx-swt): New variable.

Signed-off-by: Alexey Abramov <levenson@HIDDEN>
---
 gnu/packages/java.scm | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index f124062035..f8d47d7eed 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -3218,6 +3218,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")
-- 
2.26.2





Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH v3 1/9] gnu: java-openjfx-build: Add helpful patch.
References: <20200517132829.1553311-1-levenson@HIDDEN>
In-Reply-To: <20200517132829.1553311-1-levenson@HIDDEN>
Resent-From: Alexey Abramov <levenson@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Sat, 30 May 2020 17:11:01 +0000
Resent-Message-ID: <handler.41360.B41360.159085860427945 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: 41360 <at> debbugs.gnu.org
Received: via spool by 41360-submit <at> debbugs.gnu.org id=B41360.159085860427945
          (code B ref 41360); Sat, 30 May 2020 17:11:01 +0000
Received: (at 41360) by debbugs.gnu.org; 30 May 2020 17:10:04 +0000
Received: from localhost ([127.0.0.1]:59067 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jf4zf-0007Fl-TG
	for submit <at> debbugs.gnu.org; Sat, 30 May 2020 13:10:04 -0400
Received: from mx4.mail.mmer.org ([178.22.66.29]:19157)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <levenson@HIDDEN>) id 1jf4zZ-0007F7-Kh
 for 41360 <at> debbugs.gnu.org; Sat, 30 May 2020 13:09:58 -0400
Received: from delta (92-109-1-225.cable.dynamic.v4.ziggo.nl [92.109.1.225])
 (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 189A69CC60
 for <41360 <at> debbugs.gnu.org>; Sat, 30 May 2020 16:39:05 +0000 (UTC)
From: Alexey Abramov <levenson@HIDDEN>
Date: Sat, 30 May 2020 19:09:43 +0200
Message-Id: <20200530170951.1649-1-levenson@HIDDEN>
X-Mailer: git-send-email 2.26.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

* gnu/packages/java.scm (java-openjfx-build)[source]: Use it.
* gnu/packages/patches/java-openjfx-build-jdk_version.patch: New file.
* gnu/local.mk (dist_patch_DATA): Add it.

Signed-off-by: Alexey Abramov <levenson@HIDDEN>
---
 gnu/local.mk                                  |  1 +
 gnu/packages/java.scm                         |  3 ++-
 .../java-openjfx-build-jdk_version.patch      | 27 +++++++++++++++++++
 3 files changed, 30 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/java-openjfx-build-jdk_version.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 768943a67a..cbf0a20a9e 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1110,6 +1110,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-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 b12c3ca95c..d569ed57d6 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-jdk_version.patch"))))
     (build-system ant-build-system)
     (arguments
      `(#:jar-name "java-openjfx.jar"
diff --git a/gnu/packages/patches/java-openjfx-build-jdk_version.patch b/gnu/packages/patches/java-openjfx-build-jdk_version.patch
new file mode 100644
index 0000000000..7be954467a
--- /dev/null
+++ b/gnu/packages/patches/java-openjfx-build-jdk_version.patch
@@ -0,0 +1,27 @@
+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])
+2.24.1
-- 
2.26.2





Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH v3 7/9] gnu: java-openjfx-controls: Add new variable.
Resent-From: Alexey Abramov <levenson@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Sat, 30 May 2020 17:11:02 +0000
Resent-Message-ID: <handler.41360.B41360.159085860927992 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: 41360 <at> debbugs.gnu.org
Received: via spool by 41360-submit <at> debbugs.gnu.org id=B41360.159085860927992
          (code B ref 41360); Sat, 30 May 2020 17:11:02 +0000
Received: (at 41360) by debbugs.gnu.org; 30 May 2020 17:10:09 +0000
Received: from localhost ([127.0.0.1]:59076 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jf4zp-0007HP-BV
	for submit <at> debbugs.gnu.org; Sat, 30 May 2020 13:10:09 -0400
Received: from mx4.mail.mmer.org ([178.22.66.29]:53354)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <levenson@HIDDEN>) id 1jf4za-0007FI-QR
 for 41360 <at> debbugs.gnu.org; Sat, 30 May 2020 13:09:59 -0400
Received: from delta (92-109-1-225.cable.dynamic.v4.ziggo.nl [92.109.1.225])
 (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 8A6859D154
 for <41360 <at> debbugs.gnu.org>; Sat, 30 May 2020 16:39:06 +0000 (UTC)
From: Alexey Abramov <levenson@HIDDEN>
Date: Sat, 30 May 2020 19:09:49 +0200
Message-Id: <20200530170951.1649-7-levenson@HIDDEN>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20200530170951.1649-1-levenson@HIDDEN>
References: <20200530170951.1649-1-levenson@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

* gnu/packages/java.scm (java-openjfx-controls): New variable.

Signed-off-by: Alexey Abramov <levenson@HIDDEN>
---
 gnu/packages/java.scm | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index f8d47d7eed..ec9e24b8d3 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -3231,6 +3231,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")
-- 
2.26.2





Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH v3 3/9] gnu: java-openjfx-graphics: Implement a complete compilation.
Resent-From: Alexey Abramov <levenson@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Sat, 30 May 2020 17:11:02 +0000
Resent-Message-ID: <handler.41360.B41360.159085862228026 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: 41360 <at> debbugs.gnu.org
Received: via spool by 41360-submit <at> debbugs.gnu.org id=B41360.159085862228026
          (code B ref 41360); Sat, 30 May 2020 17:11:02 +0000
Received: (at 41360) by debbugs.gnu.org; 30 May 2020 17:10:22 +0000
Received: from localhost ([127.0.0.1]:59078 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jf4zp-0007HR-KD
	for submit <at> debbugs.gnu.org; Sat, 30 May 2020 13:10:22 -0400
Received: from mx4.mail.mmer.org ([178.22.66.29]:53335)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <levenson@HIDDEN>) id 1jf4zZ-0007F8-RU
 for 41360 <at> debbugs.gnu.org; Sat, 30 May 2020 13:10:05 -0400
Received: from delta (92-109-1-225.cable.dynamic.v4.ziggo.nl [92.109.1.225])
 (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 71D479CE92
 for <41360 <at> debbugs.gnu.org>; Sat, 30 May 2020 16:39:05 +0000 (UTC)
From: Alexey Abramov <levenson@HIDDEN>
Date: Sat, 30 May 2020 19:09:45 +0200
Message-Id: <20200530170951.1649-3-levenson@HIDDEN>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20200530170951.1649-1-levenson@HIDDEN>
References: <20200530170951.1649-1-levenson@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

* gnu/packages/java.scm (java-openjfx-graphics): Add stages to build
  libdecora_sse, prism_common, glassgtk2, iio, prism_sw, prism_es2,
  font_freetype, glassgtk3, font, font_pango and glass libraries.

All the steps were taken by inspecting ./gradlew build --info result.

Signed-off-by: Alexey Abramov <levenson@HIDDEN>
---
 gnu/packages/java.scm | 642 +++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 634 insertions(+), 8 deletions(-)

diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 43f0f37b91..9d73d9a7e8 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,641 @@ 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))
+
+           ;; XX: Description can be found in build.gradle:1429. Currently
+           ;; there is no sdk creation step.
+           ;;
+           ;; The Decora and Prism JSL files have to be generated in a very specific set of steps.
+           ;;      1) Compile the *Compile.java classes. These live in src/main/jsl-* and will be
+           ;;         output to $buildDir/classes/jsl-compilers/* (where * == decora or prism).
+           ;;      2) Generate source files from the JSL files contained in src/main/jsl-*. These
+           ;;         will be output to $buildDir/generated-src/jsl-*
+           ;;      3) Compile the JSL Java sources in $buildDir/generated-src/jsl-* and put the output
+           ;;         into classes/jsl-*
+           ;;      4) Compile the native JSL sources in $buildDir/generated-src/jsl-* and put the obj
+           ;;         files into native/jsl-* and the resulting library into libs/jsl-*.dll|so|dylib
+           ;;      5) Modify the jar step to include classes/jsl-*
+           ;; The native library must be copied over during SDK creation time in the "sdk" task. In
+           ;; addition to these steps, the clean task is created. Note that I didn't bother to create
+           ;; a new task for each of the decora files, preferring instead just to create a rule?? Also
+           ;; need "clean" tasks for each compile task.
+           (add-after 'build 'compile-prism-compilers
+             (lambda _
+               (let ((prism-compilers-classes "modules/graphics/build/classes/jsl-compilers/prism")
+                     (prism-src "modules/graphics/src/main/jsl-prism/"))
+                 (mkdir-p prism-compilers-classes)
+
+                 (apply invoke "javac" "-d" prism-compilers-classes
+                        (append javac/h-flags (find-files prism-src "\\.java"))))
+
+               #t))
+
+           (add-after 'compile-prism-compilers 'generate-prism-shaders
+             (lambda _
+               (let ((prism-compilers-classes "modules/graphics/build/classes/jsl-compilers/prism")
+                     (prism-src "modules/graphics/src/main/jsl-prism/")
+                     (prism-gen-src "modules/graphics/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" (list file)))
+                           (find-files prism-src "\\.jsl$")))
+               #t))
+
+           (add-after 'generate-prism-shaders 'compile-prism-shaders
+             (lambda _
+               (let* ((classes "modules/graphics/build/classes/java/main")
+                      (prism-classes "modules/graphics/build/classes/jsl-prism")
+                      (prism-gen-src "modules/graphics/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"))
+                        (append javac/h-flags (find-files prism-gen-shaders-src))))
+               #t))
+
+           (add-after 'compile-prism-shaders 'compile-decora-compilers
+             (lambda _
+               (let ((classes "modules/graphics/build/classes/java/main")
+                     (decora-compilers-classes "modules/graphics/build/classes/jsl-compilers/decora")
+                     (decora-src "modules/graphics/src/main/jsl-decora/"))
+                 (mkdir-p decora-compilers-classes)
+                 (apply invoke "javac"
+                        "-d" decora-compilers-classes
+                        "-cp" (string-append classes ":" (getenv "CLASSPATH"))
+                        (append javac/h-flags (find-files decora-src "\\.java"))))
+               #t))
+
+           (add-after 'compile-decora-compilers 'generate-decora-shaders
+             (lambda _
+               (let ((classes "modules/graphics/build/classes/java/main")
+                     (decora-classes "modules/graphics/build/classes/jsl-decora/")
+                     (decora-compilers-classes "modules/graphics/build/classes/jsl-compilers/decora")
+                     (decora-gen-src "modules/graphics/build/generated-src/jsl-decora")
+                     (decora-src "modules/graphics/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
+                                     (list file-name))))
+                           decora-components)
+                 #t)))
+
+           (add-after 'generate-decora-shaders 'compile-decora-shaders
+             (lambda _
+               (let ((classes "modules/graphics/build/classes/java/main")
+                     (decora-classes "modules/graphics/build/classes/jsl-decora/")
+                     (decora-gen-src "modules/graphics/build/generated-src/jsl-decora"))
+                 (mkdir-p decora-classes)
+                 (apply invoke "javac"
+                        "-d" decora-classes
+                        "-cp" classes
+                        (append 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 "modules/graphics/build/classes/java/main")
+                      (decora-gen-headers "modules/graphics/build/generated-src/headers/jsl-decora")
+                      (decora-gen-src "modules/graphics/build/generated-src/jsl-decora")
+                      (decora-native-lib "modules/graphics/build/libs/jsl-decora/linux/libdecora_sse.so")
+                      (decora-native-obj "modules/graphics/build/native/jsl-decora/linux")
+                      (decora-native-src "modules/graphics/src/main/native-decora")
+                      (decora-src "modules/graphics/src/main/jsl-decora/")
+                      (decora-classes "modules/graphics/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) ":")
+                        (append 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"
+                                    "-I" decora-gen-headers
+                                    "-I" decora-gen-src
+                                    "-I" decora-native-src
+                                    "-o" (string-append decora-native-obj  "/" (basename cc ".cc") ".obj")
+                                    (append decora-cc-flags (list 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
+                        (append 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 "modules/graphics/build/classes/java/main")
+                      (font-gen-headers "modules/graphics/build/generated-src/headers/font/linux")
+                      (font-native-lib "modules/graphics/build/libs/font/linux/libjavafx_font.so")
+                      (font-native-obj "modules/graphics/build/native/font/linux")
+                      (font-native-src "modules/graphics/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
+                        (append 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"
+                                    "-I" font-gen-headers
+                                    "-I" font-native-src
+                                    "-o" (string-append font-native-obj "/"
+                                                        (basename cc ".c") ".obj")
+                                    (append font-cc-flags (list cc))))
+                           (find-files font-native-src "\\.c$"))
+                 (mkdir-p (dirname font-native-lib))
+                 (apply invoke "g++"
+                        "-o" font-native-lib
+                        (append 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 "modules/graphics/build/classes/java/main")
+                      ;;
+                      (font-freetype-gen-headers "modules/graphics/build/generated-src/headers/fontFreetype/linux")
+                      (font-freetype-native-lib "modules/graphics/build/libs/fontFreetype/linux/libjavafx_font_freetype.so")
+                      (font-freetype-native-obj "modules/graphics/build/native/fontFreetype/linux")
+                      (font-freetype-native-src "modules/graphics/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
+                        (append 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 "modules/graphics/build/classes/java/main")
+                      (font-pango-gen-headers "modules/graphics/build/generated-src/headers/fontPango/linux")
+                      (font-pango-native-lib "modules/graphics/build/libs/fontPango/linux/libjavafx_font_pango.so")
+                      (font-pango-native-obj "modules/graphics/build/native/fontPango/linux")
+                      (font-pango-native-src "modules/graphics/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
+                        (append 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 "modules/graphics/build/classes/java/main")
+                      ;; glass
+                      (glass-gen-headers "modules/graphics/build/generated-src/headers/glass/linux")
+                      (glass-native-lib "modules/graphics/build/libs/glass/linux/libglass.so")
+                      (glass-native-obj "modules/graphics/build/native/glass/linux/glass")
+                      (glass-native-src "modules/graphics/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 "modules/graphics/build/native/glass/linux/glassgtk2")
+                      (glass-gtk2-native-src (dirname glass-native-src))
+                      (glass-gtk2-native-lib "modules/graphics/build/libs/glass/linux/libglassgtk2.so")
+                      (glass-gtk2-cc-flags
+                       `(,@cc-flags
+                         "$(pkg-config --cflags gtk+-2.0 gthread-2.0 xtst)"
+                         ;; XX: GTimeVal has been deprecated in GLIB since
+                         ;; version 2.62. GTimeVal s not year-2038-safe. Gtk
+                         ;; 2.24 uses GTimeVal so our build is also failing.
+                         "-Wno-deprecated-declarations"
+                         "-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 "modules/graphics/build/native/glass/linux/glassgtk3")
+                      (glass-gtk3-native-src (dirname glass-native-src))
+                      (glass-gtk3-native-lib "modules/graphics/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"))
+                        (append 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 "modules/graphics/build/classes/java/main")
+                      (iio-gen-headers "modules/graphics/build/generated-src/headers/iio/linux")
+                      (iio-native-lib "modules/graphics/build/libs/iio/linux/libjavafx_iio.so")
+                      (iio-native-obj "modules/graphics/build/native/iio/linux")
+                      (iio-native-src "modules/graphics/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"))
+                        (append 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 "modules/graphics/build/classes/java/main")
+                      (prism-gen-headers "modules/graphics/build/generated-src/headers/prism/linux")
+                      (prism-native-lib "modules/graphics/build/libs/prism/linux/libprism_common.so")
+                      (prism-native-obj "modules/graphics/build/native/prism/linux")
+                      (prism-native-src "modules/graphics/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"))
+                        (append 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 "modules/graphics/build/classes/java/main")
+                      (prism-es2-gen-headers "modules/graphics/build/generated-src/headers/prismES2/linux")
+                      (prism-es2-native-lib "modules/graphics/build/libs/prism/linux/libprism_es2.so")
+                      (prism-es2-native-obj "modules/graphics/build/native/prismES2/linux")
+                      (prism-es2-native-src "modules/graphics/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"))
+                        (append 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"
+                                    "-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")
+                                    (append prism-es2-cc-flags (list 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 "modules/graphics/build/classes/java/main")
+                      (prism-sw-gen-headers "modules/graphics/build/generated-src/headers/prismSW/linux")
+                      (prism-sw-native-lib "modules/graphics/build/libs/prism/linux/libprism_sw.so")
+                      (prism-sw-native-obj "modules/graphics/build/native/prismSW/linux")
+                      (prism-sw-native-src "modules/graphics/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"))
+                        (append 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++" "-o" prism-sw-native-lib
+                        (append prism-sw-link-flags (find-files prism-sw-native-obj "\\.obj$")))
+                 #t)))
+
+           (add-after 'compile-linux-prism-sw '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 "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-turbo)
+       ("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)
-- 
2.26.2





Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH v3 5/9] gnu: java-openjfx-swing: Add new variable.
Resent-From: Alexey Abramov <levenson@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Sat, 30 May 2020 17:11:02 +0000
Resent-Message-ID: <handler.41360.B41360.159085862228033 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: 41360 <at> debbugs.gnu.org
Received: via spool by 41360-submit <at> debbugs.gnu.org id=B41360.159085862228033
          (code B ref 41360); Sat, 30 May 2020 17:11:02 +0000
Received: (at 41360) by debbugs.gnu.org; 30 May 2020 17:10:22 +0000
Received: from localhost ([127.0.0.1]:59082 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jf502-0007Hz-5X
	for submit <at> debbugs.gnu.org; Sat, 30 May 2020 13:10:22 -0400
Received: from mx4.mail.mmer.org ([178.22.66.29]:53343)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <levenson@HIDDEN>) id 1jf4za-0007FB-6S
 for 41360 <at> debbugs.gnu.org; Sat, 30 May 2020 13:10:05 -0400
Received: from delta (92-109-1-225.cable.dynamic.v4.ziggo.nl [92.109.1.225])
 (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 305569D06C
 for <41360 <at> debbugs.gnu.org>; Sat, 30 May 2020 16:39:06 +0000 (UTC)
From: Alexey Abramov <levenson@HIDDEN>
Date: Sat, 30 May 2020 19:09:47 +0200
Message-Id: <20200530170951.1649-5-levenson@HIDDEN>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20200530170951.1649-1-levenson@HIDDEN>
References: <20200530170951.1649-1-levenson@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

* gnu/packages/java.scm (java-openjfx-swing): New variable.

Signed-off-by: Alexey Abramov <levenson@HIDDEN>
---
 gnu/packages/java.scm | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 938fc0695c..f124062035 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -3205,6 +3205,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")
-- 
2.26.2





Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH v3 8/9] gnu: java-openjfx-build: Prepare a patch to build openjfx-web.
Resent-From: Alexey Abramov <levenson@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Sat, 30 May 2020 17:11:03 +0000
Resent-Message-ID: <handler.41360.B41360.159085862628045 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: 41360 <at> debbugs.gnu.org
Received: via spool by 41360-submit <at> debbugs.gnu.org id=B41360.159085862628045
          (code B ref 41360); Sat, 30 May 2020 17:11:03 +0000
Received: (at 41360) by debbugs.gnu.org; 30 May 2020 17:10:26 +0000
Received: from localhost ([127.0.0.1]:59084 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jf502-0007I6-HE
	for submit <at> debbugs.gnu.org; Sat, 30 May 2020 13:10:26 -0400
Received: from mx4.mail.mmer.org ([178.22.66.29]:53353)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <levenson@HIDDEN>) id 1jf4zd-0007FH-Pa
 for 41360 <at> debbugs.gnu.org; Sat, 30 May 2020 13:10:05 -0400
Received: from delta (92-109-1-225.cable.dynamic.v4.ziggo.nl [92.109.1.225])
 (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 B54C09D164
 for <41360 <at> debbugs.gnu.org>; Sat, 30 May 2020 16:39:06 +0000 (UTC)
From: Alexey Abramov <levenson@HIDDEN>
Date: Sat, 30 May 2020 19:09:50 +0200
Message-Id: <20200530170951.1649-8-levenson@HIDDEN>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20200530170951.1649-1-levenson@HIDDEN>
References: <20200530170951.1649-1-levenson@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

* gnu/packages/java.scm (java-openjfx-build)[source]: Use it.
* gnu/packages/patches/java-openjfx-build-web-xlocale.h.patch:
  New file.
* gnu/local.mk (dist_patch_DATA): Add it.

Signed-off-by: Alexey Abramov <levenson@HIDDEN>
---
 gnu/local.mk                                  |  1 +
 gnu/packages/java.scm                         |  3 +-
 .../java-openjfx-build-web-xlocale.h.patch    | 52 +++++++++++++++++++
 3 files changed, 55 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/java-openjfx-build-web-xlocale.h.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index e15554f1c2..71d7079134 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1112,6 +1112,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/java-jeromq-fix-tests.patch		\
   %D%/packages/patches/java-openjfx-build-jdk_version.patch     \
   %D%/packages/patches/java-openjfx-build-swing-JFXPanel-JDK8.patch     \
+  %D%/packages/patches/java-openjfx-build-web-xlocale.h.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 ec9e24b8d3..f8a5b71a48 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-jdk_version.patch"
-                                       "java-openjfx-build-swing-JFXPanel-JDK8.patch"))))
+                                       "java-openjfx-build-swing-JFXPanel-JDK8.patch"
+                                       "java-openjfx-build-web-xlocale.h.patch"))))
     (build-system ant-build-system)
     (arguments
      `(#:jar-name "java-openjfx.jar"
diff --git a/gnu/packages/patches/java-openjfx-build-web-xlocale.h.patch b/gnu/packages/patches/java-openjfx-build-web-xlocale.h.patch
new file mode 100644
index 0000000000..138f39f9af
--- /dev/null
+++ b/gnu/packages/patches/java-openjfx-build-web-xlocale.h.patch
@@ -0,0 +1,52 @@
+Subject: [PATCH] Check <xlocale.h> 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 <xlocale.h> 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 <xlocale.h> 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
-- 
2.26.2





Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH v3 9/9] gnu: java-openjfx-web: Add new variable.
Resent-From: Alexey Abramov <levenson@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Sat, 30 May 2020 17:11:03 +0000
Resent-Message-ID: <handler.41360.B41360.159085862628052 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: 41360 <at> debbugs.gnu.org
Received: via spool by 41360-submit <at> debbugs.gnu.org id=B41360.159085862628052
          (code B ref 41360); Sat, 30 May 2020 17:11:03 +0000
Received: (at 41360) by debbugs.gnu.org; 30 May 2020 17:10:26 +0000
Received: from localhost ([127.0.0.1]:59086 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jf506-0007II-5x
	for submit <at> debbugs.gnu.org; Sat, 30 May 2020 13:10:26 -0400
Received: from mx4.mail.mmer.org ([178.22.66.29]:53358)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <levenson@HIDDEN>) id 1jf4ze-0007FY-3m
 for 41360 <at> debbugs.gnu.org; Sat, 30 May 2020 13:10:06 -0400
Received: from delta (92-109-1-225.cable.dynamic.v4.ziggo.nl [92.109.1.225])
 (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 E306D9D166
 for <41360 <at> debbugs.gnu.org>; Sat, 30 May 2020 16:39:06 +0000 (UTC)
From: Alexey Abramov <levenson@HIDDEN>
Date: Sat, 30 May 2020 19:09:51 +0200
Message-Id: <20200530170951.1649-9-levenson@HIDDEN>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20200530170951.1649-1-levenson@HIDDEN>
References: <20200530170951.1649-1-levenson@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

* gnu/packages/java.scm (java-openjfx-web): New variable.

We build not only a web component here, but webkit as well. Webkit requires
some extra 3rd party libraries icu, libxml, libxslt and sqlite which are
already in openjfx source bundle.

Signed-off-by: Alexey Abramov <levenson@HIDDEN>
---
 gnu/packages/java.scm | 176 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 176 insertions(+)

diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index f8a5b71a48..0d2f268764 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)
@@ -3263,6 +3267,178 @@ 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* _
+             (invoke "ant" "compile" "-Dclasses.dir=modules/web/build/classes/java/main")
+             #t))
+
+         (add-after 'build 'generate-headers
+           ;; XX: We provide only software built from source, so let's build
+           ;; webkit as well. List of webkit classes can be found in
+           ;; build.gradle:2516. We need to generate headers for the upcoming
+           ;; compilation step first and put them in generated-src/headers
+           ;; location.
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let* ((classes "modules/web/build/classes/java/main")
+                    (web-generated-headers "modules/web/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
+                       ;; We disable all the updates, and build 3rd-party libs
+                       ;; lice icu, libxml, libxslt and sqlite. Source code
+                       ;; sits modules/web/src/main/native/Source/ThirdPArty.
+                       "--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* ((resources "modules/web/src/main/resources")
+                    (classes "modules/web/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)
+       ;; XX: With current gcc (gcc-7.5) the build breaks on building
+       ;; thirdparty libraries like xslt. c++14 is used to build
+       ;; them. CMAKE_CXX_STANDARD doesn't take any effect here for some
+       ;; reason.
+       ("gcc" ,gcc-5)
+       ("glibc" ,glibc-2.29)
+       ("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")
-- 
2.26.2





Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH v3 4/9] gnu: java-openjfx-build: Fix openjfx-swing component build for JDKu8
Resent-From: Alexey Abramov <levenson@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Sat, 30 May 2020 17:11:03 +0000
Resent-Message-ID: <handler.41360.B41360.159085862828061 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: 41360 <at> debbugs.gnu.org
Received: via spool by 41360-submit <at> debbugs.gnu.org id=B41360.159085862828061
          (code B ref 41360); Sat, 30 May 2020 17:11:03 +0000
Received: (at 41360) by debbugs.gnu.org; 30 May 2020 17:10:28 +0000
Received: from localhost ([127.0.0.1]:59088 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jf506-0007IP-NS
	for submit <at> debbugs.gnu.org; Sat, 30 May 2020 13:10:28 -0400
Received: from mx4.mail.mmer.org ([178.22.66.29]:53339)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <levenson@HIDDEN>) id 1jf4za-0007F9-0F
 for 41360 <at> debbugs.gnu.org; Sat, 30 May 2020 13:10:08 -0400
Received: from delta (92-109-1-225.cable.dynamic.v4.ziggo.nl [92.109.1.225])
 (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 02E899CFFC
 for <41360 <at> debbugs.gnu.org>; Sat, 30 May 2020 16:39:05 +0000 (UTC)
From: Alexey Abramov <levenson@HIDDEN>
Date: Sat, 30 May 2020 19:09:46 +0200
Message-Id: <20200530170951.1649-4-levenson@HIDDEN>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20200530170951.1649-1-levenson@HIDDEN>
References: <20200530170951.1649-1-levenson@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

* gnu/packages/java.scm (java-openjfx-build)[source]: Use it.
* gnu/packages/patches/java-openjfx-build-swing-JFXPanel-JDK8.patch:
  New file.
* gnu/local.mk (dist_patch_DATA): Add it.

Signed-off-by: Alexey Abramov <levenson@HIDDEN>
---
 gnu/local.mk                                  |  1 +
 gnu/packages/java.scm                         |  3 +-
 ...va-openjfx-build-swing-JFXPanel-JDK8.patch | 60 +++++++++++++++++++
 3 files changed, 63 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/java-openjfx-build-swing-JFXPanel-JDK8.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index cbf0a20a9e..e15554f1c2 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1111,6 +1111,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-jdk_version.patch     \
+  %D%/packages/patches/java-openjfx-build-swing-JFXPanel-JDK8.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 9d73d9a7e8..938fc0695c 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-jdk_version.patch"))))
+              (patches (search-patches "java-openjfx-build-jdk_version.patch"
+                                       "java-openjfx-build-swing-JFXPanel-JDK8.patch"))))
     (build-system ant-build-system)
     (arguments
      `(#:jar-name "java-openjfx.jar"
diff --git a/gnu/packages/patches/java-openjfx-build-swing-JFXPanel-JDK8.patch b/gnu/packages/patches/java-openjfx-build-swing-JFXPanel-JDK8.patch
new file mode 100644
index 0000000000..b540048621
--- /dev/null
+++ b/gnu/packages/patches/java-openjfx-build-swing-JFXPanel-JDK8.patch
@@ -0,0 +1,60 @@
+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
-- 
2.26.2





Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH 09/12] gnu: java-openjfx-web: Add new variable.
Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Wed, 03 Jun 2020 15:48:02 +0000
Resent-Message-ID: <handler.41360.B41360.15911992454160 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: Alexey Abramov <levenson@HIDDEN>
Cc: 41360 <at> debbugs.gnu.org
Received: via spool by 41360-submit <at> debbugs.gnu.org id=B41360.15911992454160
          (code B ref 41360); Wed, 03 Jun 2020 15:48:02 +0000
Received: (at 41360) by debbugs.gnu.org; 3 Jun 2020 15:47:25 +0000
Received: from localhost ([127.0.0.1]:44407 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jgVbk-00014m-59
	for submit <at> debbugs.gnu.org; Wed, 03 Jun 2020 11:47:25 -0400
Received: from eggs.gnu.org ([209.51.188.92]:57554)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <ludo@HIDDEN>) id 1jgVbj-00014a-1b
 for 41360 <at> debbugs.gnu.org; Wed, 03 Jun 2020 11:47:11 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e]:43710)
 by eggs.gnu.org with esmtp (Exim 4.90_1)
 (envelope-from <ludo@HIDDEN>)
 id 1jgVbd-00059z-Lc; Wed, 03 Jun 2020 11:47:05 -0400
Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=41696 helo=ribbon)
 by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256)
 (Exim 4.82) (envelope-from <ludo@HIDDEN>)
 id 1jgVbd-0002lC-64; Wed, 03 Jun 2020 11:47:05 -0400
From: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
References: <20200517135138.1651512-1-levenson@HIDDEN>
 <20200517135138.1651512-9-levenson@HIDDEN> <87tv0668us.fsf@HIDDEN>
 <87wo4t1ie8.fsf@HIDDEN>
Date: Wed, 03 Jun 2020 17:47:03 +0200
In-Reply-To: <87wo4t1ie8.fsf@HIDDEN> (Alexey Abramov's message of "Sat, 30
 May 2020 18:45:19 +0200")
Message-ID: <87v9k8kv7s.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -2.3 (--)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Hi Alexey,

Alexey Abramov <levenson@HIDDEN> skribis:

> Ludovic Court=C3=A8s <ludo@HIDDEN> writes:

[...]

>>> +             (let* ((module (string-append (getcwd) "/modules/web"))
>>> +                    (classes (string-append module "/build/classes/jav=
a/main"))
>>> +                    (web-generated-headers (string-append module "/bui=
ld/generated-src/headers"))
>>> +                    (web-generated-classes '("com.sun.webkit.ContextMe=
nu"
>>> +                                             "com.sun.webkit.ContextMe=
nuItem"
>>> +                                             "com.sun.webkit.CursorMan=
ager"
>>
>> Perhaps add a comment explaining how you obtained this list of classes
>> so that our future selves know how to update it.
>>
>> Since this is a Web thing, could you check whether it contains pre-built
>> (=E2=80=9Cminified=E2=80=9D) JavaScript?  If it does, that=E2=80=99s a p=
roblem because we
>> generally provide only software built from source.
>
> We build not only a web component here, but webkit as well. Webkit requir=
es some extra 3rd party libraries icu, libxml, libxslt and sqlite which are=
 already in openjfx source bundle. We also build them now.

Oh sorry, I had overlooked that and it=E2=80=99s problematic.

The policy in Guix is to not use bundled software: it=E2=80=99s a waste of
resources (especially for large pieces of software like WebKit), but
more importantly it=E2=80=99s a security issue (nobody will notice if
=E2=80=98java-openjfx-web=E2=80=99 includes an outdated, vulnerable version=
 of WebKit).

So the solution is to:

  1. Pass the relevant flags to tell the build system to use the
     =E2=80=9Csystem=E2=80=9D copies of these libraries.  If there=E2=80=99=
s no such flag, patch
     the build system to not try to build these things.

  2. Add a snippet to remove bundled copies of these libraries, to make
     sure they=E2=80=99re not picked up by mistake.

Sometimes it=E2=80=99s just a build flag, and sometimes it=E2=80=99s harder=
.  If it
turns out to be difficult, let us know, and perhaps we can find an
interim solution.

Could you take a look?  Let me know what you think!

Thanks,
Ludo=E2=80=99.




Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH v3 1/9] gnu: java-openjfx-build: Add helpful patch.
Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Wed, 03 Jun 2020 15:51:01 +0000
Resent-Message-ID: <handler.41360.B41360.15911994474449 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: Alexey Abramov <levenson@HIDDEN>
Cc: 41360 <at> debbugs.gnu.org, Julien Lepiller <julien@HIDDEN>
Received: via spool by 41360-submit <at> debbugs.gnu.org id=B41360.15911994474449
          (code B ref 41360); Wed, 03 Jun 2020 15:51:01 +0000
Received: (at 41360) by debbugs.gnu.org; 3 Jun 2020 15:50:47 +0000
Received: from localhost ([127.0.0.1]:44412 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jgVfD-00019g-2S
	for submit <at> debbugs.gnu.org; Wed, 03 Jun 2020 11:50:47 -0400
Received: from eggs.gnu.org ([209.51.188.92]:58130)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <ludo@HIDDEN>) id 1jgVfC-00019U-38
 for 41360 <at> debbugs.gnu.org; Wed, 03 Jun 2020 11:50:46 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e]:43745)
 by eggs.gnu.org with esmtp (Exim 4.90_1)
 (envelope-from <ludo@HIDDEN>)
 id 1jgVf6-0005lH-4j; Wed, 03 Jun 2020 11:50:40 -0400
Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=41698 helo=ribbon)
 by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256)
 (Exim 4.82) (envelope-from <ludo@HIDDEN>)
 id 1jgVf5-00033r-OE; Wed, 03 Jun 2020 11:50:39 -0400
From: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
References: <20200517132829.1553311-1-levenson@HIDDEN>
 <20200530170951.1649-1-levenson@HIDDEN>
Date: Wed, 03 Jun 2020 17:50:38 +0200
In-Reply-To: <20200530170951.1649-1-levenson@HIDDEN> (Alexey Abramov's
 message of "Sat, 30 May 2020 19:09:43 +0200")
Message-ID: <87pnagkv1t.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -2.3 (--)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

Alexey Abramov <levenson@HIDDEN> skribis:

> +++ b/gnu/packages/patches/java-openjfx-build-jdk_version.patch
> @@ -0,0 +1,27 @@
> +Subject: [PATCH] openjfx: Determine the version of Java in JDK_HOME
> +
> +Icedtea contains guix in its version, so build.gradle failes to run. Ope=
njfx
> +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(-)

This patch also made me realize that we=E2=80=99re using Gradle here, but
there=E2=80=99s no Gradle package in Guix.  That means we must be using a
pre-built jar somewhere, though I didn=E2=80=99t find it.  Any idea where t=
hat
comes from?  Julien, any idea?

(The problem existed before your patches.)

Thanks,
Ludo=E2=80=99.




Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH v3 1/9] gnu: java-openjfx-build: Add helpful patch.
Resent-From: Julien Lepiller <julien@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Wed, 03 Jun 2020 16:26:02 +0000
Resent-Message-ID: <handler.41360.B41360.159120153816152 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>, Alexey Abramov <levenson@HIDDEN>
Cc: 41360 <at> debbugs.gnu.org
Received: via spool by 41360-submit <at> debbugs.gnu.org id=B41360.159120153816152
          (code B ref 41360); Wed, 03 Jun 2020 16:26:02 +0000
Received: (at 41360) by debbugs.gnu.org; 3 Jun 2020 16:25:38 +0000
Received: from localhost ([127.0.0.1]:44482 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jgWCi-0004CC-PE
	for submit <at> debbugs.gnu.org; Wed, 03 Jun 2020 12:25:38 -0400
Received: from lepiller.eu ([89.234.186.109]:54826)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <julien@HIDDEN>) id 1jgWCh-0004C3-1e
 for 41360 <at> debbugs.gnu.org; Wed, 03 Jun 2020 12:25:23 -0400
Received: from lepiller.eu (localhost [127.0.0.1])
 by lepiller.eu (OpenSMTPD) with ESMTP id 7438b954;
 Wed, 3 Jun 2020 16:25:20 +0000 (UTC)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed; d=lepiller.eu; h=date
 :in-reply-to:references:mime-version:content-type
 :content-transfer-encoding:subject:to:cc:from:message-id; s=
 dkim; bh=FeULLNLaBoDFezkr+jG0MNtD6vE2uCeTspxxH5Alxtk=; b=JNL4xeq
 DH3fynpJx1vEYelldkc1aiWHOALU9qGUqJXtWXKva385pqRDsYpiLqjrdfny9v92
 i9bGkJ14NpnXpn/f7Ll1KBmMctuefXm98WBfBhMvTnYqIDs0+wGfJrFstQRZZCVE
 hzNvXeJZgatQ/5L7SIxAekXbS5Yjk7zYwnYoaQdHmSzmHPbgZTv4LGj9su5fr7HG
 0uMwM42YUtdMcv/i1fSAZBB6OtzmSOw9DxvPRncvByMZTSUjWKCEoQv6HcDCPIED
 mAvsPOuIWfXETadn1jKaaf0g6AYywTTmCrG6+THMylAuFVCBlUb8AKKUFdosmp0f
 W1O0QpSBYPGTnug==
Received: by lepiller.eu (OpenSMTPD) with ESMTPSA id 8d2f02c3
 (TLSv1.2:ECDHE-RSA-AES256-GCM-SHA384:256:NO); 
 Wed, 3 Jun 2020 16:25:19 +0000 (UTC)
Date: Wed, 03 Jun 2020 12:24:58 -0400
User-Agent: K-9 Mail for Android
In-Reply-To: <87pnagkv1t.fsf@HIDDEN>
References: <20200517132829.1553311-1-levenson@HIDDEN>
 <20200530170951.1649-1-levenson@HIDDEN> <87pnagkv1t.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain;
 charset=utf-8
Content-Transfer-Encoding: quoted-printable
From: Julien Lepiller <julien@HIDDEN>
Message-ID: <0F005145-C408-4B05-86C2-750219F7F2E3@HIDDEN>
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Le 3 juin 2020 11:50:38 GMT-04:00, "Ludovic Court=C3=A8s" <ludo@gnu=2Eorg> =
a =C3=A9crit :
>Alexey Abramov <levenson@mmer=2Eorg> skribis:
>
>> +++ b/gnu/packages/patches/java-openjfx-build-jdk_version=2Epatch
>> @@ -0,0 +1,27 @@
>> +Subject: [PATCH] openjfx: Determine the version of Java in JDK_HOME
>> +
>> +Icedtea contains guix in its version, so build=2Egradle failes to run=
=2E
>Openjfx
>> +packaging is not trivial, so you will probably need to try build it
>with
>> +gradlew=2E
>> +
>> +---
>> + build=2Egradle | 5 ++---
>> + 1 file changed, 2 insertions(+), 3 deletions(-)
>
>This patch also made me realize that we=E2=80=99re using Gradle here, but
>there=E2=80=99s no Gradle package in Guix=2E  That means we must be using=
 a
>pre-built jar somewhere, though I didn=E2=80=99t find it=2E  Any idea whe=
re that
>comes from?  Julien, any idea?
>
>(The problem existed before your patches=2E)
>
>Thanks,
>Ludo=E2=80=99=2E

From=20what I understand, this patcg helps build openjfx with gradle on guix=
, if you use the guix source in an environment, but reading the other patch=
es, it doesn't look like gradle is actually used anywhere=2E

It looks like this patch is helpful in the sense that it allows users to m=
anually build the package outside of guix, but is not used at all during th=
e build of openjfx by guix itself=2E

Alexey, can you confirm?




Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH v3 1/9] gnu: java-openjfx-build: Add helpful patch.
Resent-From: Alexey Abramov <levenson@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Wed, 03 Jun 2020 16:37:02 +0000
Resent-Message-ID: <handler.41360.B41360.159120220617153 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: Julien Lepiller <julien@HIDDEN>
Cc: 41360 <at> debbugs.gnu.org, Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
Received: via spool by 41360-submit <at> debbugs.gnu.org id=B41360.159120220617153
          (code B ref 41360); Wed, 03 Jun 2020 16:37:02 +0000
Received: (at 41360) by debbugs.gnu.org; 3 Jun 2020 16:36:46 +0000
Received: from localhost ([127.0.0.1]:44489 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jgWNh-0004Sb-Tq
	for submit <at> debbugs.gnu.org; Wed, 03 Jun 2020 12:36:46 -0400
Received: from mx4.mail.mmer.org ([178.22.66.29]:50720)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <levenson@HIDDEN>) id 1jgWNe-0004SR-Ia
 for 41360 <at> debbugs.gnu.org; Wed, 03 Jun 2020 12:36:44 -0400
Received: from delta (92-109-1-225.cable.dynamic.v4.ziggo.nl [92.109.1.225])
 (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 EC9EE9CC41;
 Wed,  3 Jun 2020 16:05:52 +0000 (UTC)
From: Alexey Abramov <levenson@HIDDEN>
References: <20200517132829.1553311-1-levenson@HIDDEN>
 <20200530170951.1649-1-levenson@HIDDEN> <87pnagkv1t.fsf@HIDDEN>
 <0F005145-C408-4B05-86C2-750219F7F2E3@HIDDEN>
Date: Wed, 03 Jun 2020 18:36:34 +0200
In-Reply-To: <0F005145-C408-4B05-86C2-750219F7F2E3@HIDDEN> (Julien
 Lepiller's message of "Wed, 03 Jun 2020 12:24:58 -0400")
Message-ID: <877dwoyulp.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

Hi Julien, Ludo,

Julien Lepiller <julien@HIDDEN> writes:

> Le 3 juin 2020 11:50:38 GMT-04:00, "Ludovic Court=C3=A8s" <ludo@HIDDEN> =
a =C3=A9crit :
>>Alexey Abramov <levenson@HIDDEN> skribis:
>>
>>> +++ b/gnu/packages/patches/java-openjfx-build-jdk_version.patch
>
>>> @@ -0,0 +1,27 @@
>>> +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(-)
>>
>>This patch also made me realize that we=E2=80=99re using Gradle here, but
>>there=E2=80=99s no Gradle package in Guix.  That means we must be using a
>>pre-built jar somewhere, though I didn=E2=80=99t find it.  Any idea where=
 that
>>comes from?  Julien, any idea?
>>
>>(The problem existed before your patches.)
>>
>>Thanks,
>>Ludo=E2=80=99.
>
> From what I understand, this patcg helps build openjfx with gradle on
> guix, if you use the guix source in an environment, but reading the
> other patches, it doesn't look like gradle is actually used anywhere.
>
> It looks like this patch is helpful in the sense that it allows users to =
manually build the package outside of guix, but is not used at all during t=
he build of openjfx by guix itself.
>
> Alexey, can you confirm?

Yes, you are right. I am not using gradle. The reason for this patch was
to be able to debug the building process openjfx. I had to run gradlew
multiple times, so I decided to just patch it.

--=20
Alexey




Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH v3 1/9] gnu: java-openjfx-build: Add helpful patch.
Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Thu, 04 Jun 2020 09:57:02 +0000
Resent-Message-ID: <handler.41360.B41360.159126456916371 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: Alexey Abramov <levenson@HIDDEN>
Cc: 41360 <at> debbugs.gnu.org, Julien Lepiller <julien@HIDDEN>
Received: via spool by 41360-submit <at> debbugs.gnu.org id=B41360.159126456916371
          (code B ref 41360); Thu, 04 Jun 2020 09:57:02 +0000
Received: (at 41360) by debbugs.gnu.org; 4 Jun 2020 09:56:09 +0000
Received: from localhost ([127.0.0.1]:45176 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jgmbZ-0004Fz-1t
	for submit <at> debbugs.gnu.org; Thu, 04 Jun 2020 05:56:09 -0400
Received: from eggs.gnu.org ([209.51.188.92]:46302)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <ludo@HIDDEN>) id 1jgmbX-0004Fl-Ci
 for 41360 <at> debbugs.gnu.org; Thu, 04 Jun 2020 05:56:07 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e]:57656)
 by eggs.gnu.org with esmtp (Exim 4.90_1)
 (envelope-from <ludo@HIDDEN>)
 id 1jgmbR-0006eZ-Aj; Thu, 04 Jun 2020 05:56:01 -0400
Received: from [2a01:e0a:1d:7270:af76:b9b:ca24:c465] (port=44758 helo=ribbon)
 by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256)
 (Exim 4.82) (envelope-from <ludo@HIDDEN>)
 id 1jgmbQ-0003zS-Ta; Thu, 04 Jun 2020 05:56:01 -0400
From: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
References: <20200517132829.1553311-1-levenson@HIDDEN>
 <20200530170951.1649-1-levenson@HIDDEN> <87pnagkv1t.fsf@HIDDEN>
 <0F005145-C408-4B05-86C2-750219F7F2E3@HIDDEN>
 <877dwoyulp.fsf@HIDDEN>
X-URL: http://www.fdn.fr/~lcourtes/
X-Revolutionary-Date: 17 Prairial an 228 de la =?UTF-8?Q?R=C3=A9volution?=
X-PGP-Key-ID: 0x090B11993D9AEBB5
X-PGP-Key: http://www.fdn.fr/~lcourtes/ludovic.asc
X-PGP-Fingerprint: 3CE4 6455 8A84 FDC6 9DB4  0CFB 090B 1199 3D9A EBB5
X-OS: x86_64-pc-linux-gnu
Date: Thu, 04 Jun 2020 11:55:59 +0200
In-Reply-To: <877dwoyulp.fsf@HIDDEN> (Alexey Abramov's message of "Wed, 03
 Jun 2020 18:36:34 +0200")
Message-ID: <87h7vrduj4.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -2.3 (--)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

Hi,

Alexey Abramov <levenson@HIDDEN> skribis:

> Julien Lepiller <julien@HIDDEN> writes:
>
>> Le 3 juin 2020 11:50:38 GMT-04:00, "Ludovic Court=C3=A8s" <ludo@HIDDEN>=
 a =C3=A9crit :
>>>Alexey Abramov <levenson@HIDDEN> skribis:
>>>
>>>> +++ b/gnu/packages/patches/java-openjfx-build-jdk_version.patch
>>
>>>> @@ -0,0 +1,27 @@
>>>> +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(-)
>>>
>>>This patch also made me realize that we=E2=80=99re using Gradle here, but
>>>there=E2=80=99s no Gradle package in Guix.  That means we must be using a
>>>pre-built jar somewhere, though I didn=E2=80=99t find it.  Any idea wher=
e that
>>>comes from?  Julien, any idea?
>>>
>>>(The problem existed before your patches.)
>>>
>>>Thanks,
>>>Ludo=E2=80=99.
>>
>> From what I understand, this patcg helps build openjfx with gradle on
>> guix, if you use the guix source in an environment, but reading the
>> other patches, it doesn't look like gradle is actually used anywhere.
>>
>> It looks like this patch is helpful in the sense that it allows users to=
 manually build the package outside of guix, but is not used at all during =
the build of openjfx by guix itself.
>>
>> Alexey, can you confirm?
>
> Yes, you are right. I am not using gradle. The reason for this patch was
> to be able to debug the building process openjfx. I had to run gradlew
> multiple times, so I decided to just patch it.

OK, thanks for explaining!

BTW, I=E2=80=99ve pushed the first two patches of this series, Alexey.

Ludo=E2=80=99.




Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH v4 03/12] gnu: java-openjfx-swing: Add new variable.
Resent-From: Alexey Abramov <levenson@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Sun, 07 Jun 2020 15:56:01 +0000
Resent-Message-ID: <handler.41360.B41360.159154533629948 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: 41360 <at> debbugs.gnu.org
Received: via spool by 41360-submit <at> debbugs.gnu.org id=B41360.159154533629948
          (code B ref 41360); Sun, 07 Jun 2020 15:56:01 +0000
Received: (at 41360) by debbugs.gnu.org; 7 Jun 2020 15:55:36 +0000
Received: from localhost ([127.0.0.1]:54682 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jhxe1-0007mi-BH
	for submit <at> debbugs.gnu.org; Sun, 07 Jun 2020 11:55:36 -0400
Received: from mx4.mail.mmer.org ([178.22.66.29]:62709)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <levenson@HIDDEN>) id 1jhxe0-0007mT-5H
 for 41360 <at> debbugs.gnu.org; Sun, 07 Jun 2020 11:55:32 -0400
Received: from delta (92-109-1-225.cable.dynamic.v4.ziggo.nl [92.109.1.225])
 (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 B1DBE9CF21
 for <41360 <at> debbugs.gnu.org>; Sun,  7 Jun 2020 15:24:44 +0000 (UTC)
From: Alexey Abramov <levenson@HIDDEN>
Date: Sun,  7 Jun 2020 17:55:09 +0200
Message-Id: <20200607155518.1400-4-levenson@HIDDEN>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20200607155518.1400-1-levenson@HIDDEN>
References: <20200607155518.1400-1-levenson@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

* gnu/packages/java.scm (java-openjfx-swing): New variable.

Signed-off-by: Alexey Abramov <levenson@HIDDEN>
---
 gnu/packages/java.scm | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 6e7f92c859..d59288df9a 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")
-- 
2.26.2





Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH v4 04/12] gnu: java-openjfx-swt: Add new variable.
Resent-From: Alexey Abramov <levenson@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Sun, 07 Jun 2020 15:56:02 +0000
Resent-Message-ID: <handler.41360.B41360.159154535030021 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: 41360 <at> debbugs.gnu.org
Received: via spool by 41360-submit <at> debbugs.gnu.org id=B41360.159154535030021
          (code B ref 41360); Sun, 07 Jun 2020 15:56:02 +0000
Received: (at 41360) by debbugs.gnu.org; 7 Jun 2020 15:55:50 +0000
Received: from localhost ([127.0.0.1]:54690 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jhxe4-0007mz-IH
	for submit <at> debbugs.gnu.org; Sun, 07 Jun 2020 11:55:50 -0400
Received: from mx4.mail.mmer.org ([178.22.66.29]:62713)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <levenson@HIDDEN>) id 1jhxe0-0007mZ-Ro
 for 41360 <at> debbugs.gnu.org; Sun, 07 Jun 2020 11:55:33 -0400
Received: from delta (92-109-1-225.cable.dynamic.v4.ziggo.nl [92.109.1.225])
 (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 687D19CF98
 for <41360 <at> debbugs.gnu.org>; Sun,  7 Jun 2020 15:24:45 +0000 (UTC)
From: Alexey Abramov <levenson@HIDDEN>
Date: Sun,  7 Jun 2020 17:55:10 +0200
Message-Id: <20200607155518.1400-5-levenson@HIDDEN>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20200607155518.1400-1-levenson@HIDDEN>
References: <20200607155518.1400-1-levenson@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

* gnu/packages/java.scm (java-openjfx-swt): New variable.

Signed-off-by: Alexey Abramov <levenson@HIDDEN>
---
 gnu/packages/java.scm | 13 +++++++++++++
 1 file changed, 13 insertions(+)

diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index d59288df9a..d90b999473 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")
-- 
2.26.2





Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH v4 02/12] gnu: java-openjfx-build: Fix openjfx-swing component build for JDKu8
Resent-From: Alexey Abramov <levenson@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Sun, 07 Jun 2020 15:56:02 +0000
Resent-Message-ID: <handler.41360.B41360.159154535030029 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: 41360 <at> debbugs.gnu.org
Received: via spool by 41360-submit <at> debbugs.gnu.org id=B41360.159154535030029
          (code B ref 41360); Sun, 07 Jun 2020 15:56:02 +0000
Received: (at 41360) by debbugs.gnu.org; 7 Jun 2020 15:55:50 +0000
Received: from localhost ([127.0.0.1]:54694 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jhxeI-0007oA-Ar
	for submit <at> debbugs.gnu.org; Sun, 07 Jun 2020 11:55:50 -0400
Received: from mx4.mail.mmer.org ([178.22.66.29]:62705)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <levenson@HIDDEN>) id 1jhxdz-0007mR-L7
 for 41360 <at> debbugs.gnu.org; Sun, 07 Jun 2020 11:55:35 -0400
Received: from delta (92-109-1-225.cable.dynamic.v4.ziggo.nl [92.109.1.225])
 (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 1F48B9CD79
 for <41360 <at> debbugs.gnu.org>; Sun,  7 Jun 2020 15:24:44 +0000 (UTC)
From: Alexey Abramov <levenson@HIDDEN>
Date: Sun,  7 Jun 2020 17:55:08 +0200
Message-Id: <20200607155518.1400-3-levenson@HIDDEN>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20200607155518.1400-1-levenson@HIDDEN>
References: <20200607155518.1400-1-levenson@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

* gnu/packages/java.scm (java-openjfx-build)[source]: Use it.
* gnu/packages/patches/java-openjfx-build-swing-JFXPanel-JDK8.patch:
  New file.
* gnu/local.mk (dist_patch_DATA): Add it.

Signed-off-by: Alexey Abramov <levenson@HIDDEN>
---
 gnu/local.mk                                  |  1 +
 gnu/packages/java.scm                         |  4 +-
 ...va-openjfx-build-swing-JFXPanel-JDK8.patch | 60 +++++++++++++++++++
 3 files changed, 64 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/java-openjfx-build-swing-JFXPanel-JDK8.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index ae8a2275f7..5fe0eeadda 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1109,6 +1109,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-jdk_version.patch     \
+  %D%/packages/patches/java-openjfx-build-swing-JFXPanel-JDK8.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 fb5d754a60..6e7f92c859 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -2501,7 +2501,9 @@ new Date();"))
               (sha256
                (base32
                 "0yg38mwpivswccv9n96k06x3iv82i4px1a9xg9l8dswzwmfj259f"))
-              (patches (search-patches "java-openjfx-build-jdk_version.patch"))))
+              (patches (search-patches "java-openjfx-build-jdk_version.patch"
+                                       "java-openjfx-build-swing-JFXPanel-JDK8.patch"
+                                       ))))
     (build-system ant-build-system)
     (arguments
      `(#:jar-name "java-openjfx.jar"
diff --git a/gnu/packages/patches/java-openjfx-build-swing-JFXPanel-JDK8.patch b/gnu/packages/patches/java-openjfx-build-swing-JFXPanel-JDK8.patch
new file mode 100644
index 0000000000..b540048621
--- /dev/null
+++ b/gnu/packages/patches/java-openjfx-build-swing-JFXPanel-JDK8.patch
@@ -0,0 +1,60 @@
+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
-- 
2.26.2





Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH v4 05/12] gnu: java-openjfx-controls: Add new variable.
Resent-From: Alexey Abramov <levenson@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Sun, 07 Jun 2020 15:56:02 +0000
Resent-Message-ID: <handler.41360.B41360.159154535130035 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: 41360 <at> debbugs.gnu.org
Received: via spool by 41360-submit <at> debbugs.gnu.org id=B41360.159154535130035
          (code B ref 41360); Sun, 07 Jun 2020 15:56:02 +0000
Received: (at 41360) by debbugs.gnu.org; 7 Jun 2020 15:55:51 +0000
Received: from localhost ([127.0.0.1]:54696 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jhxeI-0007oI-Mk
	for submit <at> debbugs.gnu.org; Sun, 07 Jun 2020 11:55:50 -0400
Received: from mx4.mail.mmer.org ([178.22.66.29]:62717)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <levenson@HIDDEN>) id 1jhxe1-0007mb-8e
 for 41360 <at> debbugs.gnu.org; Sun, 07 Jun 2020 11:55:36 -0400
Received: from delta (92-109-1-225.cable.dynamic.v4.ziggo.nl [92.109.1.225])
 (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 06D1A9CFA5
 for <41360 <at> debbugs.gnu.org>; Sun,  7 Jun 2020 15:24:45 +0000 (UTC)
From: Alexey Abramov <levenson@HIDDEN>
Date: Sun,  7 Jun 2020 17:55:11 +0200
Message-Id: <20200607155518.1400-6-levenson@HIDDEN>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20200607155518.1400-1-levenson@HIDDEN>
References: <20200607155518.1400-1-levenson@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

* gnu/packages/java.scm (java-openjfx-controls): New variable.

Signed-off-by: Alexey Abramov <levenson@HIDDEN>
---
 gnu/packages/java.scm | 16 ++++++++++++++++
 1 file changed, 16 insertions(+)

diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index d90b999473..e05289758a 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")
-- 
2.26.2





Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH v4 00/12] Improve OpenJFX and friends packages
References: <20200517132829.1553311-1-levenson@HIDDEN>
In-Reply-To: <20200517132829.1553311-1-levenson@HIDDEN>
Resent-From: Alexey Abramov <levenson@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Sun, 07 Jun 2020 15:56:03 +0000
Resent-Message-ID: <handler.41360.B41360.159154535130043 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: 41360 <at> debbugs.gnu.org
Received: via spool by 41360-submit <at> debbugs.gnu.org id=B41360.159154535130043
          (code B ref 41360); Sun, 07 Jun 2020 15:56:03 +0000
Received: (at 41360) by debbugs.gnu.org; 7 Jun 2020 15:55:51 +0000
Received: from localhost ([127.0.0.1]:54698 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jhxeI-0007oT-W1
	for submit <at> debbugs.gnu.org; Sun, 07 Jun 2020 11:55:51 -0400
Received: from mx4.mail.mmer.org ([178.22.66.29]:62698)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <levenson@HIDDEN>) id 1jhxdz-0007mO-1L
 for 41360 <at> debbugs.gnu.org; Sun, 07 Jun 2020 11:55:37 -0400
Received: from delta (92-109-1-225.cable.dynamic.v4.ziggo.nl [92.109.1.225])
 (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 2E22F9CC46
 for <41360 <at> debbugs.gnu.org>; Sun,  7 Jun 2020 15:24:43 +0000 (UTC)
From: Alexey Abramov <levenson@HIDDEN>
Date: Sun,  7 Jun 2020 17:55:06 +0200
Message-Id: <20200607155518.1400-1-levenson@HIDDEN>
X-Mailer: git-send-email 2.26.2
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

This is an updated series of patches for openjfx. We are now building WebKit java port and use Guix inputs, instead of embedded source code bundles ship with openjfx. Tests are still disabled.

I left round brackets in java-openjfx-build package on a separate line, just to make diffs look cleaner. Is it OK?

This is not an ideal build of course. Media component is missing for example. It would be also great to build a complete jfxrt.jar and not expose java-openjfx-<component> vars at all.

I have also checked the webkitgtk package while doing this. I found that some patches apply to openjfx as well. Don't know if it's possible to use webkit.org sources for openjfx-web.

In the meantime davmail and 2fa works :). Please let me know what you think.

Alexey Abramov (12):
  gnu: java-openjfx-graphics: Implement a complete compilation.
  gnu: java-openjfx-build: Fix openjfx-swing component build for JDKu8
  gnu: java-openjfx-swing: Add new variable.
  gnu: java-openjfx-swt: Add new variable.
  gnu: java-openjfx-controls: Add new variable.
  gnu: java-openjfx-build: Patch DumpRenderTree for the web component.
  gnu: java-openjfx-build: Do not use an embedded 3rd party libraries.
  gnu: java-openjfx-build: Fix web component compilation with ICU 59+.
  gnu: java-openjfx-build: Fix web component linkage.
  gnu: java-openjfx-build: Fix web component compilation with ICU 65+.
  gnu: java-openjfx-build: Ensure use of system provided libraries.
  gnu: java-openjfx-web: Add new variable.

 gnu/local.mk                                  |   6 +
 gnu/packages/java.scm                         | 871 +++++++++++++++++-
 ...va-openjfx-build-swing-JFXPanel-JDK8.patch |  60 ++
 ...penjfx-build-web-DumpRenderTree-java.patch |  30 +
 ...-openjfx-build-web-OptionsJava.cmake.patch |  32 +
 .../patches/java-openjfx-build-web-WTF.patch  |  33 +
 ...-build-web-WebKitCompilerFlags.cmake.patch |  36 +
 .../patches/java-openjfx-build-web-icu.patch  |  38 +
 8 files changed, 1097 insertions(+), 9 deletions(-)
 create mode 100644 gnu/packages/patches/java-openjfx-build-swing-JFXPanel-JDK8.patch
 create mode 100644 gnu/packages/patches/java-openjfx-build-web-DumpRenderTree-java.patch
 create mode 100644 gnu/packages/patches/java-openjfx-build-web-OptionsJava.cmake.patch
 create mode 100644 gnu/packages/patches/java-openjfx-build-web-WTF.patch
 create mode 100644 gnu/packages/patches/java-openjfx-build-web-WebKitCompilerFlags.cmake.patch
 create mode 100644 gnu/packages/patches/java-openjfx-build-web-icu.patch

--
2.26.2




Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH v4 01/12] gnu: java-openjfx-graphics: Implement a complete compilation.
Resent-From: Alexey Abramov <levenson@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Sun, 07 Jun 2020 15:56:03 +0000
Resent-Message-ID: <handler.41360.B41360.159154536130075 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: 41360 <at> debbugs.gnu.org
Received: via spool by 41360-submit <at> debbugs.gnu.org id=B41360.159154536130075
          (code B ref 41360); Sun, 07 Jun 2020 15:56:03 +0000
Received: (at 41360) by debbugs.gnu.org; 7 Jun 2020 15:56:01 +0000
Received: from localhost ([127.0.0.1]:54700 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jhxeJ-0007oW-8G
	for submit <at> debbugs.gnu.org; Sun, 07 Jun 2020 11:56:01 -0400
Received: from mx4.mail.mmer.org ([178.22.66.29]:62701)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <levenson@HIDDEN>) id 1jhxdz-0007mQ-1M
 for 41360 <at> debbugs.gnu.org; Sun, 07 Jun 2020 11:55:37 -0400
Received: from delta (92-109-1-225.cable.dynamic.v4.ziggo.nl [92.109.1.225])
 (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 6288A9CC49
 for <41360 <at> debbugs.gnu.org>; Sun,  7 Jun 2020 15:24:43 +0000 (UTC)
From: Alexey Abramov <levenson@HIDDEN>
Date: Sun,  7 Jun 2020 17:55:07 +0200
Message-Id: <20200607155518.1400-2-levenson@HIDDEN>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20200607155518.1400-1-levenson@HIDDEN>
References: <20200607155518.1400-1-levenson@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

* gnu/packages/java.scm (java-openjfx-graphics): Add stages to build
  libdecora_sse, prism_common, glassgtk2, iio, prism_sw, prism_es2,
  font_freetype, glassgtk3, font, font_pango and glass libraries.

All the steps were taken by inspecting ./gradlew build --info result.

Signed-off-by: Alexey Abramov <levenson@HIDDEN>
---
 gnu/packages/java.scm | 642 +++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 634 insertions(+), 8 deletions(-)

diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 43f0f37b91..fb5d754a60 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,641 @@ 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"))
+              (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))
+
+           ;; XX: Description can be found in build.gradle:1429. Currently
+           ;; there is no sdk creation step.
+           ;;
+           ;; The Decora and Prism JSL files have to be generated in a very specific set of steps.
+           ;;      1) Compile the *Compile.java classes. These live in src/main/jsl-* and will be
+           ;;         output to $buildDir/classes/jsl-compilers/* (where * == decora or prism).
+           ;;      2) Generate source files from the JSL files contained in src/main/jsl-*. These
+           ;;         will be output to $buildDir/generated-src/jsl-*
+           ;;      3) Compile the JSL Java sources in $buildDir/generated-src/jsl-* and put the output
+           ;;         into classes/jsl-*
+           ;;      4) Compile the native JSL sources in $buildDir/generated-src/jsl-* and put the obj
+           ;;         files into native/jsl-* and the resulting library into libs/jsl-*.dll|so|dylib
+           ;;      5) Modify the jar step to include classes/jsl-*
+           ;; The native library must be copied over during SDK creation time in the "sdk" task. In
+           ;; addition to these steps, the clean task is created. Note that I didn't bother to create
+           ;; a new task for each of the decora files, preferring instead just to create a rule?? Also
+           ;; need "clean" tasks for each compile task.
+           (add-after 'build 'compile-prism-compilers
+             (lambda _
+               (let ((prism-compilers-classes "modules/graphics/build/classes/jsl-compilers/prism")
+                     (prism-src "modules/graphics/src/main/jsl-prism/"))
+                 (mkdir-p prism-compilers-classes)
+
+                 (apply invoke "javac" "-d" prism-compilers-classes
+                        (append javac/h-flags (find-files prism-src "\\.java"))))
+
+               #t))
+
+           (add-after 'compile-prism-compilers 'generate-prism-shaders
+             (lambda _
+               (let ((prism-compilers-classes "modules/graphics/build/classes/jsl-compilers/prism")
+                     (prism-src "modules/graphics/src/main/jsl-prism/")
+                     (prism-gen-src "modules/graphics/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" (list file)))
+                           (find-files prism-src "\\.jsl$")))
+               #t))
+
+           (add-after 'generate-prism-shaders 'compile-prism-shaders
+             (lambda _
+               (let* ((classes "modules/graphics/build/classes/java/main")
+                      (prism-classes "modules/graphics/build/classes/jsl-prism")
+                      (prism-gen-src "modules/graphics/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"))
+                        (append javac/h-flags (find-files prism-gen-shaders-src))))
+               #t))
+
+           (add-after 'compile-prism-shaders 'compile-decora-compilers
+             (lambda _
+               (let ((classes "modules/graphics/build/classes/java/main")
+                     (decora-compilers-classes "modules/graphics/build/classes/jsl-compilers/decora")
+                     (decora-src "modules/graphics/src/main/jsl-decora/"))
+                 (mkdir-p decora-compilers-classes)
+                 (apply invoke "javac"
+                        "-d" decora-compilers-classes
+                        "-cp" (string-append classes ":" (getenv "CLASSPATH"))
+                        (append javac/h-flags (find-files decora-src "\\.java"))))
+               #t))
+
+           (add-after 'compile-decora-compilers 'generate-decora-shaders
+             (lambda _
+               (let ((classes "modules/graphics/build/classes/java/main")
+                     (decora-classes "modules/graphics/build/classes/jsl-decora/")
+                     (decora-compilers-classes "modules/graphics/build/classes/jsl-compilers/decora")
+                     (decora-gen-src "modules/graphics/build/generated-src/jsl-decora")
+                     (decora-src "modules/graphics/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
+                                     (list file-name))))
+                           decora-components)
+                 #t)))
+
+           (add-after 'generate-decora-shaders 'compile-decora-shaders
+             (lambda _
+               (let ((classes "modules/graphics/build/classes/java/main")
+                     (decora-classes "modules/graphics/build/classes/jsl-decora/")
+                     (decora-gen-src "modules/graphics/build/generated-src/jsl-decora"))
+                 (mkdir-p decora-classes)
+                 (apply invoke "javac"
+                        "-d" decora-classes
+                        "-cp" classes
+                        (append 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 "modules/graphics/build/classes/java/main")
+                      (decora-gen-headers "modules/graphics/build/generated-src/headers/jsl-decora")
+                      (decora-gen-src "modules/graphics/build/generated-src/jsl-decora")
+                      (decora-native-lib "modules/graphics/build/libs/jsl-decora/linux/libdecora_sse.so")
+                      (decora-native-obj "modules/graphics/build/native/jsl-decora/linux")
+                      (decora-native-src "modules/graphics/src/main/native-decora")
+                      (decora-src "modules/graphics/src/main/jsl-decora/")
+                      (decora-classes "modules/graphics/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) ":")
+                        (append 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"
+                                    "-I" decora-gen-headers
+                                    "-I" decora-gen-src
+                                    "-I" decora-native-src
+                                    "-o" (string-append decora-native-obj  "/" (basename cc ".cc") ".obj")
+                                    (append decora-cc-flags (list 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
+                        (append 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 "modules/graphics/build/classes/java/main")
+                      (font-gen-headers "modules/graphics/build/generated-src/headers/font/linux")
+                      (font-native-lib "modules/graphics/build/libs/font/linux/libjavafx_font.so")
+                      (font-native-obj "modules/graphics/build/native/font/linux")
+                      (font-native-src "modules/graphics/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
+                        (append 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"
+                                    "-I" font-gen-headers
+                                    "-I" font-native-src
+                                    "-o" (string-append font-native-obj "/"
+                                                        (basename cc ".c") ".obj")
+                                    (append font-cc-flags (list cc))))
+                           (find-files font-native-src "\\.c$"))
+                 (mkdir-p (dirname font-native-lib))
+                 (apply invoke "g++"
+                        "-o" font-native-lib
+                        (append 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 "modules/graphics/build/classes/java/main")
+                      ;;
+                      (font-freetype-gen-headers "modules/graphics/build/generated-src/headers/fontFreetype/linux")
+                      (font-freetype-native-lib "modules/graphics/build/libs/fontFreetype/linux/libjavafx_font_freetype.so")
+                      (font-freetype-native-obj "modules/graphics/build/native/fontFreetype/linux")
+                      (font-freetype-native-src "modules/graphics/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
+                        (append 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 "modules/graphics/build/classes/java/main")
+                      (font-pango-gen-headers "modules/graphics/build/generated-src/headers/fontPango/linux")
+                      (font-pango-native-lib "modules/graphics/build/libs/fontPango/linux/libjavafx_font_pango.so")
+                      (font-pango-native-obj "modules/graphics/build/native/fontPango/linux")
+                      (font-pango-native-src "modules/graphics/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
+                        (append 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 "modules/graphics/build/classes/java/main")
+                      ;; glass
+                      (glass-gen-headers "modules/graphics/build/generated-src/headers/glass/linux")
+                      (glass-native-lib "modules/graphics/build/libs/glass/linux/libglass.so")
+                      (glass-native-obj "modules/graphics/build/native/glass/linux/glass")
+                      (glass-native-src "modules/graphics/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 "modules/graphics/build/native/glass/linux/glassgtk2")
+                      (glass-gtk2-native-src (dirname glass-native-src))
+                      (glass-gtk2-native-lib "modules/graphics/build/libs/glass/linux/libglassgtk2.so")
+                      (glass-gtk2-cc-flags
+                       `(,@cc-flags
+                         "$(pkg-config --cflags gtk+-2.0 gthread-2.0 xtst)"
+                         ;; XX: GTimeVal has been deprecated in GLIB since
+                         ;; version 2.62. GTimeVal s not year-2038-safe. Gtk
+                         ;; 2.24 uses GTimeVal so our build is also failing.
+                         "-Wno-deprecated-declarations"
+                         "-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 "modules/graphics/build/native/glass/linux/glassgtk3")
+                      (glass-gtk3-native-src (dirname glass-native-src))
+                      (glass-gtk3-native-lib "modules/graphics/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"))
+                        (append 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 "modules/graphics/build/classes/java/main")
+                      (iio-gen-headers "modules/graphics/build/generated-src/headers/iio/linux")
+                      (iio-native-lib "modules/graphics/build/libs/iio/linux/libjavafx_iio.so")
+                      (iio-native-obj "modules/graphics/build/native/iio/linux")
+                      (iio-native-src "modules/graphics/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"))
+                        (append 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 "modules/graphics/build/classes/java/main")
+                      (prism-gen-headers "modules/graphics/build/generated-src/headers/prism/linux")
+                      (prism-native-lib "modules/graphics/build/libs/prism/linux/libprism_common.so")
+                      (prism-native-obj "modules/graphics/build/native/prism/linux")
+                      (prism-native-src "modules/graphics/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"))
+                        (append 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 "modules/graphics/build/classes/java/main")
+                      (prism-es2-gen-headers "modules/graphics/build/generated-src/headers/prismES2/linux")
+                      (prism-es2-native-lib "modules/graphics/build/libs/prism/linux/libprism_es2.so")
+                      (prism-es2-native-obj "modules/graphics/build/native/prismES2/linux")
+                      (prism-es2-native-src "modules/graphics/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"))
+                        (append 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"
+                                    "-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")
+                                    (append prism-es2-cc-flags (list 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 "modules/graphics/build/classes/java/main")
+                      (prism-sw-gen-headers "modules/graphics/build/generated-src/headers/prismSW/linux")
+                      (prism-sw-native-lib "modules/graphics/build/libs/prism/linux/libprism_sw.so")
+                      (prism-sw-native-obj "modules/graphics/build/native/prismSW/linux")
+                      (prism-sw-native-src "modules/graphics/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"))
+                        (append 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++" "-o" prism-sw-native-lib
+                        (append prism-sw-link-flags (find-files prism-sw-native-obj "\\.obj$")))
+                 #t)))
+
+           (add-after 'compile-linux-prism-sw '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 "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-turbo)
+       ("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)
-- 
2.26.2





Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH v4 06/12] gnu: java-openjfx-build: Patch DumpRenderTree for the web component.
Resent-From: Alexey Abramov <levenson@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Sun, 07 Jun 2020 15:57:02 +0000
Resent-Message-ID: <handler.41360.B41360.159154536530134 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: 41360 <at> debbugs.gnu.org
Received: via spool by 41360-submit <at> debbugs.gnu.org id=B41360.159154536530134
          (code B ref 41360); Sun, 07 Jun 2020 15:57:02 +0000
Received: (at 41360) by debbugs.gnu.org; 7 Jun 2020 15:56:05 +0000
Received: from localhost ([127.0.0.1]:54702 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jhxeT-0007p3-Qk
	for submit <at> debbugs.gnu.org; Sun, 07 Jun 2020 11:56:05 -0400
Received: from mx4.mail.mmer.org ([178.22.66.29]:62721)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <levenson@HIDDEN>) id 1jhxe1-0007mc-Eh
 for 41360 <at> debbugs.gnu.org; Sun, 07 Jun 2020 11:55:40 -0400
Received: from delta (92-109-1-225.cable.dynamic.v4.ziggo.nl [92.109.1.225])
 (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 4769C9CFB3
 for <41360 <at> debbugs.gnu.org>; Sun,  7 Jun 2020 15:24:46 +0000 (UTC)
From: Alexey Abramov <levenson@HIDDEN>
Date: Sun,  7 Jun 2020 17:55:12 +0200
Message-Id: <20200607155518.1400-7-levenson@HIDDEN>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20200607155518.1400-1-levenson@HIDDEN>
References: <20200607155518.1400-1-levenson@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/java.scm (java-openjfx-build)[source]: Use it.
* gnu/packages/patches/java-openjfx-build-web-DumpRenderTree-java.patch: New file.

Signed-off-by: Alexey Abramov <levenson@HIDDEN>
---
 gnu/local.mk                                  |  1 +
 gnu/packages/java.scm                         |  1 +
 ...penjfx-build-web-DumpRenderTree-java.patch | 30 +++++++++++++++++++
 3 files changed, 32 insertions(+)
 create mode 100644 gnu/packages/patches/java-openjfx-build-web-DumpRenderTree-java.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 5fe0eeadda..f8a59da3da 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1110,6 +1110,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/java-jeromq-fix-tests.patch		\
   %D%/packages/patches/java-openjfx-build-jdk_version.patch     \
   %D%/packages/patches/java-openjfx-build-swing-JFXPanel-JDK8.patch     \
+  %D%/packages/patches/java-openjfx-build-web-DumpRenderTree-java.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 e05289758a..d60ae7c8f1 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -2503,6 +2503,7 @@ new Date();"))
                 "0yg38mwpivswccv9n96k06x3iv82i4px1a9xg9l8dswzwmfj259f"))
               (patches (search-patches "java-openjfx-build-jdk_version.patch"
                                        "java-openjfx-build-swing-JFXPanel-JDK8.patch"
+                                       "java-openjfx-build-web-DumpRenderTree-java.patch"
                                        ))))
     (build-system ant-build-system)
     (arguments
diff --git a/gnu/packages/patches/java-openjfx-build-web-DumpRenderTree-java.patch b/gnu/packages/patches/java-openjfx-build-web-DumpRenderTree-java.patch
new file mode 100644
index 0000000000..0200e92c05
--- /dev/null
+++ b/gnu/packages/patches/java-openjfx-build-web-DumpRenderTree-java.patch
@@ -0,0 +1,30 @@
+Subject: [PATCH] Fix DumpRenderTree linking.
+
+DumpRenderTree compiles OK, but fails on a linking stage with the bellow
+error. I found the very same fix for openjfx-8 FreeBSD ports as well. Let's
+ignore undefined references for now.
+
+CMakeFiles/DumpRenderTreeJava.dir/__/TestRunner.cpp.o:TestRunner.cpp:function TestRunner::runUIScript(OpaqueJSContext const*, OpaqueJSString*, OpaqueJSValue const*): error: undefined reference to 'WTF::String::String(unsigned short const*, unsigned int)'
+CMakeFiles/DumpRenderTreeJava.dir/__/__/TestRunnerShared/UIScriptContext/UIScriptContext.cpp.o:UIScriptContext.cpp:function WTR::UIScriptContext::tryToCompleteUIScriptForCurrentParentCallback(): error: undefined reference to 'WTF::String::String(unsigned short const*, unsigned int)'
+collect2: error: ld returned 1 exit status
+
+---
+ .../src/main/native/Tools/DumpRenderTree/java/CMakeLists.txt  | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/modules/web/src/main/native/Tools/DumpRenderTree/java/CMakeLists.txt b/modules/web/src/main/native/Tools/DumpRenderTree/java/CMakeLists.txt
+index e2ce5ef..2ad3db7 100644
+--- a/modules/web/src/main/native/Tools/DumpRenderTree/java/CMakeLists.txt
++++ b/modules/web/src/main/native/Tools/DumpRenderTree/java/CMakeLists.txt
+@@ -72,9 +72,5 @@ add_library(DumpRenderTreeJava SHARED ${DumpRenderTree_SOURCES})
+ add_definitions(-DWEBCORE_EXPORT=WTF_IMPORT -DWEBCORE_TESTSUPPORT_EXPORT=WTF_IMPORT)
+ add_dependencies(DumpRenderTreeJava DumpRenderTreeBindings)
+
+-if (UNIX AND NOT APPLE)
+-  set_target_properties(DumpRenderTreeJava PROPERTIES LINK_FLAGS "-Wl,--no-undefined")
+-endif ()
+-
+ set_target_properties(DumpRenderTreeJava PROPERTIES OUTPUT_NAME "DumpRenderTreeJava")
+ target_link_libraries(DumpRenderTreeJava ${DumpRenderTree_LIBRARIES})
+--
+2.26.2
-- 
2.26.2





Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH v4 07/12] gnu: java-openjfx-build: Do not use an embedded 3rd party libraries.
Resent-From: Alexey Abramov <levenson@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Sun, 07 Jun 2020 15:57:02 +0000
Resent-Message-ID: <handler.41360.B41360.159154536730143 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: 41360 <at> debbugs.gnu.org
Received: via spool by 41360-submit <at> debbugs.gnu.org id=B41360.159154536730143
          (code B ref 41360); Sun, 07 Jun 2020 15:57:02 +0000
Received: (at 41360) by debbugs.gnu.org; 7 Jun 2020 15:56:07 +0000
Received: from localhost ([127.0.0.1]:54710 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jhxeX-0007pz-ID
	for submit <at> debbugs.gnu.org; Sun, 07 Jun 2020 11:56:07 -0400
Received: from mx4.mail.mmer.org ([178.22.66.29]:62725)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <levenson@HIDDEN>) id 1jhxe1-0007mj-MJ
 for 41360 <at> debbugs.gnu.org; Sun, 07 Jun 2020 11:55:41 -0400
Received: from delta (92-109-1-225.cable.dynamic.v4.ziggo.nl [92.109.1.225])
 (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 751039CFD1
 for <41360 <at> debbugs.gnu.org>; Sun,  7 Jun 2020 15:24:46 +0000 (UTC)
From: Alexey Abramov <levenson@HIDDEN>
Date: Sun,  7 Jun 2020 17:55:13 +0200
Message-Id: <20200607155518.1400-8-levenson@HIDDEN>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20200607155518.1400-1-levenson@HIDDEN>
References: <20200607155518.1400-1-levenson@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/java.scm (java-openjfx-build)[source]: Use it.
* gnu/packages/patches/java-openjfx-build-web-OptionsJava.cmake.patch: New file.

Signed-off-by: Alexey Abramov <levenson@HIDDEN>
---
 gnu/local.mk                                  |  1 +
 gnu/packages/java.scm                         |  1 +
 ...-openjfx-build-web-OptionsJava.cmake.patch | 32 +++++++++++++++++++
 3 files changed, 34 insertions(+)
 create mode 100644 gnu/packages/patches/java-openjfx-build-web-OptionsJava.cmake.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index f8a59da3da..71b2cf1d69 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1111,6 +1111,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/java-openjfx-build-jdk_version.patch     \
   %D%/packages/patches/java-openjfx-build-swing-JFXPanel-JDK8.patch     \
   %D%/packages/patches/java-openjfx-build-web-DumpRenderTree-java.patch	\
+  %D%/packages/patches/java-openjfx-build-web-OptionsJava.cmake.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 d60ae7c8f1..8ce8043335 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -2504,6 +2504,7 @@ new Date();"))
               (patches (search-patches "java-openjfx-build-jdk_version.patch"
                                        "java-openjfx-build-swing-JFXPanel-JDK8.patch"
                                        "java-openjfx-build-web-DumpRenderTree-java.patch"
+                                       "java-openjfx-build-web-OptionsJava.cmake.patch"
                                        ))))
     (build-system ant-build-system)
     (arguments
diff --git a/gnu/packages/patches/java-openjfx-build-web-OptionsJava.cmake.patch b/gnu/packages/patches/java-openjfx-build-web-OptionsJava.cmake.patch
new file mode 100644
index 0000000000..1f133571cb
--- /dev/null
+++ b/gnu/packages/patches/java-openjfx-build-web-OptionsJava.cmake.patch
@@ -0,0 +1,32 @@
+Subject: [PATCH] Use find_package.
+
+We remove all embedded 3rd-party libs like icu, libxml, libxslt and sqlite,
+and use libraries provided via guix inputs.
+---
+ .../web/src/main/native/Source/cmake/OptionsJava.cmake | 10 ++++------
+ 1 file changed, 4 insertions(+), 6 deletions(-)
+
+diff --git a/modules/web/src/main/native/Source/cmake/OptionsJava.cmake b/modules/web/src/main/native/Source/cmake/OptionsJava.cmake
+index 76a6695..73c525b 100644
+--- a/modules/web/src/main/native/Source/cmake/OptionsJava.cmake
++++ b/modules/web/src/main/native/Source/cmake/OptionsJava.cmake
+@@ -26,13 +26,11 @@ endif ()
+ set(LIB_INSTALL_DIR "${CMAKE_INSTALL_FULL_LIBDIR}" CACHE PATH "Absolute path to library installation directory")
+ set(EXEC_INSTALL_DIR "${CMAKE_INSTALL_FULL_BINDIR}" CACHE PATH "Absolute path to executable installation directory")
+
+-set(SQLITE_LIBRARIES SqliteJava)
+-set(LIBXML2_LIBRARIES XMLJava)
+-set(LIBXSLT_LIBRARIES XSLTJava)
+
+-set(ICU_LIBRARIES icuuc icudata)
+-set(ICU_I18N_LIBRARIES icui18n icuuc icudata)
+-set(ICU_DATA_LIBRARIES icudata)
++find_package(Sqlite REQUIRED)
++find_package(LibXml2 REQUIRED)
++find_package(LibXslt REQUIRED)
++find_package(ICU REQUIRED)
+
+ find_package(JNI REQUIRED)
+ find_package(Threads REQUIRED)
+--
+2.26.2
-- 
2.26.2





Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH v4 11/12] gnu: java-openjfx-build: Ensure use of system provided libraries.
Resent-From: Alexey Abramov <levenson@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Sun, 07 Jun 2020 15:57:02 +0000
Resent-Message-ID: <handler.41360.B41360.159154537030153 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: 41360 <at> debbugs.gnu.org
Received: via spool by 41360-submit <at> debbugs.gnu.org id=B41360.159154537030153
          (code B ref 41360); Sun, 07 Jun 2020 15:57:02 +0000
Received: (at 41360) by debbugs.gnu.org; 7 Jun 2020 15:56:10 +0000
Received: from localhost ([127.0.0.1]:54712 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jhxeZ-0007q8-9g
	for submit <at> debbugs.gnu.org; Sun, 07 Jun 2020 11:56:10 -0400
Received: from mx4.mail.mmer.org ([178.22.66.29]:62717)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <levenson@HIDDEN>) id 1jhxe4-0007mb-So
 for 41360 <at> debbugs.gnu.org; Sun, 07 Jun 2020 11:55:41 -0400
Received: from delta (92-109-1-225.cable.dynamic.v4.ziggo.nl [92.109.1.225])
 (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 31A5B9D0CE
 for <41360 <at> debbugs.gnu.org>; Sun,  7 Jun 2020 15:24:47 +0000 (UTC)
From: Alexey Abramov <levenson@HIDDEN>
Date: Sun,  7 Jun 2020 17:55:17 +0200
Message-Id: <20200607155518.1400-12-levenson@HIDDEN>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20200607155518.1400-1-levenson@HIDDEN>
References: <20200607155518.1400-1-levenson@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

* gnu/packages/java.scm (java-openjfx-build)[source]: Delete source code of
  embedded 3rd party libraries.

Signed-off-by: Alexey Abramov <levenson@HIDDEN>
---
 gnu/packages/java.scm | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index a17da610d2..1b6b494700 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -2497,6 +2497,9 @@ new Date();"))
                '(begin
                   ;; Delete included gradle jar
                   (delete-file-recursively "gradle/wrapper")
+                  ;; Delete source code of a ThirdParty libraries
+                  (delete-file-recursively "modules/web/src/main/native/Source/ThirdParty")
+                  (delete-file-recursively "modules/web/src/main/native/Source/PlatformJava.cmake")
                   #t))
               (sha256
                (base32
-- 
2.26.2





Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH v4 09/12] gnu: java-openjfx-build: Fix web component linkage.
Resent-From: Alexey Abramov <levenson@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Sun, 07 Jun 2020 15:57:03 +0000
Resent-Message-ID: <handler.41360.B41360.159154537130160 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: 41360 <at> debbugs.gnu.org
Received: via spool by 41360-submit <at> debbugs.gnu.org id=B41360.159154537130160
          (code B ref 41360); Sun, 07 Jun 2020 15:57:03 +0000
Received: (at 41360) by debbugs.gnu.org; 7 Jun 2020 15:56:11 +0000
Received: from localhost ([127.0.0.1]:54714 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jhxec-0007qI-Qj
	for submit <at> debbugs.gnu.org; Sun, 07 Jun 2020 11:56:11 -0400
Received: from mx4.mail.mmer.org ([178.22.66.29]:62743)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <levenson@HIDDEN>) id 1jhxe4-0007mt-9f
 for 41360 <at> debbugs.gnu.org; Sun, 07 Jun 2020 11:55:41 -0400
Received: from delta (92-109-1-225.cable.dynamic.v4.ziggo.nl [92.109.1.225])
 (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 CD2519D05B
 for <41360 <at> debbugs.gnu.org>; Sun,  7 Jun 2020 15:24:46 +0000 (UTC)
From: Alexey Abramov <levenson@HIDDEN>
Date: Sun,  7 Jun 2020 17:55:15 +0200
Message-Id: <20200607155518.1400-10-levenson@HIDDEN>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20200607155518.1400-1-levenson@HIDDEN>
References: <20200607155518.1400-1-levenson@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/java.scm (java-openjfx-build)[source]: Use it.
* gnu/packages/patches/java-openjfx-build-web-WebKitCompilerFlags.cmake.patch:
  New file.

Signed-off-by: Alexey Abramov <levenson@HIDDEN>
---
 gnu/local.mk                                  |  1 +
 gnu/packages/java.scm                         |  1 +
 ...-build-web-WebKitCompilerFlags.cmake.patch | 36 +++++++++++++++++++
 3 files changed, 38 insertions(+)
 create mode 100644 gnu/packages/patches/java-openjfx-build-web-WebKitCompilerFlags.cmake.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index d36636fd81..85f8db7150 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1113,6 +1113,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/java-openjfx-build-web-DumpRenderTree-java.patch	\
   %D%/packages/patches/java-openjfx-build-web-OptionsJava.cmake.patch	\
   %D%/packages/patches/java-openjfx-build-web-WTF.patch			\
+  %D%/packages/patches/java-openjfx-build-web-WebKitCompilerFlags.cmake.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 cf6135e926..5da1476077 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -2506,6 +2506,7 @@ new Date();"))
                                        "java-openjfx-build-web-DumpRenderTree-java.patch"
                                        "java-openjfx-build-web-OptionsJava.cmake.patch"
                                        "java-openjfx-build-web-WTF.patch"
+                                       "java-openjfx-build-web-WebKitCompilerFlags.cmake.patch"
                                        ))))
     (build-system ant-build-system)
     (arguments
diff --git a/gnu/packages/patches/java-openjfx-build-web-WebKitCompilerFlags.cmake.patch b/gnu/packages/patches/java-openjfx-build-web-WebKitCompilerFlags.cmake.patch
new file mode 100644
index 0000000000..d0bbb7e3b2
--- /dev/null
+++ b/gnu/packages/patches/java-openjfx-build-web-WebKitCompilerFlags.cmake.patch
@@ -0,0 +1,36 @@
+Subject: [PATCH] Fix WebKit linkage.
+
+Somehow the whole linkage fails because of the TestRunner's undefined
+references. However, I see the very same fixes in openjfx8-devel FreeBSD port,
+even though they use gradle to build it.
+
+CMakeFiles/DumpRenderTreeJava.dir/__/TestRunner.cpp.o:TestRunner.cpp:function TestRunner::runUIScript(OpaqueJSContext const*, OpaqueJSString*, OpaqueJSValue const*): error: undefined reference to 'WTF::String::String(unsigned short const*, unsigned int)'
+CMakeFiles/DumpRenderTreeJava.dir/__/__/TestRunnerShared/UIScriptContext/UIScriptContext.cpp.o:UIScriptContext.cpp:function WTR::UIScriptContext::tryToCompleteUIScriptForCurrentParentCallback(): error: undefined reference to 'WTF::String::String(unsigned short const*, unsigned int)'
+
+Some related bugs/commits are:
+https://github.com/WebKit/webkit/commit/1e46377e47674363131299d54c8557734a99fb5f
+https://bugs.webkit.org/show_bug.cgi?id=199625#c24
+https://bugs.webkit.org/show_bug.cgi?id=200074
+
+---
+ .../src/main/native/Source/cmake/WebKitCompilerFlags.cmake   | 5 -----
+ 1 file changed, 5 deletions(-)
+
+diff --git a/modules/web/src/main/native/Source/cmake/WebKitCompilerFlags.cmake b/modules/web/src/main/native/Source/cmake/WebKitCompilerFlags.cmake
+index 5bcf047..4526ee6 100644
+--- a/modules/web/src/main/native/Source/cmake/WebKitCompilerFlags.cmake
++++ b/modules/web/src/main/native/Source/cmake/WebKitCompilerFlags.cmake
+@@ -176,11 +176,6 @@ if (NOT MSVC)
+     string(REGEX MATCHALL "-fsanitize=[^ ]*" ENABLED_COMPILER_SANITIZERS ${CMAKE_CXX_FLAGS})
+ endif ()
+
+-if (UNIX AND NOT APPLE AND NOT ENABLED_COMPILER_SANITIZERS)
+-    set(CMAKE_SHARED_LINKER_FLAGS "-Wl,--no-undefined ${CMAKE_SHARED_LINKER_FLAGS}")
+-endif ()
+-
+-
+ # CODE_GENERATOR_PREPROCESSOR_WITH_LINEMARKERS only matters with GCC >= 4.7.0.  Since this
+ # version, -P does not output empty lines, which currently breaks make_names.pl in
+ # WebCore. Investigating whether make_names.pl should be changed instead is left as an exercise to
+--
+2.26.2
-- 
2.26.2





Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH v4 12/12] gnu: java-openjfx-web: Add new variable.
Resent-From: Alexey Abramov <levenson@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Sun, 07 Jun 2020 15:57:03 +0000
Resent-Message-ID: <handler.41360.B41360.159154537130168 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: 41360 <at> debbugs.gnu.org
Received: via spool by 41360-submit <at> debbugs.gnu.org id=B41360.159154537130168
          (code B ref 41360); Sun, 07 Jun 2020 15:57:03 +0000
Received: (at 41360) by debbugs.gnu.org; 7 Jun 2020 15:56:11 +0000
Received: from localhost ([127.0.0.1]:54716 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jhxed-0007qP-5h
	for submit <at> debbugs.gnu.org; Sun, 07 Jun 2020 11:56:11 -0400
Received: from mx4.mail.mmer.org ([178.22.66.29]:62745)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <levenson@HIDDEN>) id 1jhxe5-0007nA-6y
 for 41360 <at> debbugs.gnu.org; Sun, 07 Jun 2020 11:55:42 -0400
Received: from delta (92-109-1-225.cable.dynamic.v4.ziggo.nl [92.109.1.225])
 (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 59AE19D14A
 for <41360 <at> debbugs.gnu.org>; Sun,  7 Jun 2020 15:24:47 +0000 (UTC)
From: Alexey Abramov <levenson@HIDDEN>
Date: Sun,  7 Jun 2020 17:55:18 +0200
Message-Id: <20200607155518.1400-13-levenson@HIDDEN>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20200607155518.1400-1-levenson@HIDDEN>
References: <20200607155518.1400-1-levenson@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

* gnu/packages/java.scm (java-openjfx-web): New variable.

We build not only the web component here, but webkit java port as well.

Signed-off-by: Alexey Abramov <levenson@HIDDEN>
---
 gnu/packages/java.scm | 175 ++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 175 insertions(+)

diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index 1b6b494700..6922e51940 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -11,6 +11,7 @@
 ;;; Copyright © 2018 Chris Marusich <cmmarusich@HIDDEN>
 ;;; Copyright © 2018, 2019, 2020 Efraim Flashner <efraim@HIDDEN>
 ;;; Copyright © 2019, 2020 Björn Höfling <bjoern.hoefling@HIDDEN>
+;;; Copyright © 2020 Alexey Abramov <levenson@HIDDEN>
 ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen <janneke@HIDDEN>
 ;;; Copyright © 2020 Raghav Gururajan <raghavgururajan@HIDDEN>
 ;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@HIDDEN>
@@ -50,11 +51,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,10 +77,13 @@
   #: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 sqlite)
   #:use-module (gnu packages texinfo)
   #:use-module ((srfi srfi-1) #:select (fold alist-delete))
   #:use-module (srfi srfi-11)
@@ -3271,6 +3277,175 @@ 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* _
+             (invoke "ant" "compile" "-Dclasses.dir=modules/web/build/classes/java/main")
+             #t))
+
+         (add-after 'build 'generate-headers
+           ;; XX: We provide only software built from source, so let's build
+           ;; webkit as well. List of webkit classes can be found in
+           ;; build.gradle:2516. We need to generate headers for the upcoming
+           ;; compilation step first and put them in generated-src/headers
+           ;; location.
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let* ((classes "modules/web/build/classes/java/main")
+                    (web-generated-headers "modules/web/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"))))
+
+               (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"
+                       "--icu-unicode"
+                       "--verbose"
+                       (string-append
+                        "--cmakeargs="
+                        (string-join
+                         (list "-DENABLE_TOOLS=1"
+                               "-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$")))
+             #t))
+
+         (add-before 'install 'build-jar
+           (lambda _
+             (let* ((resources "modules/web/src/main/resources")
+                    (classes "modules/web/build/classes/java/main"))
+               (copy-recursively resources classes)
+               (invoke "ant" "jar" (string-append "-Dclasses.dir=" classes)))
+             #t)))))
+
+    (native-inputs
+     `(("java-junit" ,java-junit)
+       ("java-hamcrest-core" ,java-hamcrest-core)
+       ("cmake" ,cmake)
+       ("gtk" ,gtk+-2)
+       ("gtk3" ,gtk+)
+       ("ruby" ,ruby)
+       ("perl" ,perl)
+       ("gperf" ,gperf)
+       ("python-2" ,python-2)
+       ("pkg-config" ,pkg-config)))
+    (inputs
+     `(("antlr3" ,antlr3)
+       ("java-stringtemplate" ,java-stringtemplate)
+       ;; Webkit Java port dependencies
+       ("icu4c" ,icu4c)
+       ("libxml2" ,libxml2)
+       ("libxslt" ,libxslt)
+       ("sqlite" ,sqlite)))
+    (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")
-- 
2.26.2





Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH v4 08/12] gnu: java-openjfx-build: Fix web component compilation with ICU 59+.
Resent-From: Alexey Abramov <levenson@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Sun, 07 Jun 2020 15:57:04 +0000
Resent-Message-ID: <handler.41360.B41360.159154537230175 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: 41360 <at> debbugs.gnu.org
Received: via spool by 41360-submit <at> debbugs.gnu.org id=B41360.159154537230175
          (code B ref 41360); Sun, 07 Jun 2020 15:57:04 +0000
Received: (at 41360) by debbugs.gnu.org; 7 Jun 2020 15:56:12 +0000
Received: from localhost ([127.0.0.1]:54718 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jhxed-0007qX-MK
	for submit <at> debbugs.gnu.org; Sun, 07 Jun 2020 11:56:11 -0400
Received: from mx4.mail.mmer.org ([178.22.66.29]:62729)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <levenson@HIDDEN>) id 1jhxe1-0007mk-QM
 for 41360 <at> debbugs.gnu.org; Sun, 07 Jun 2020 11:55:42 -0400
Received: from delta (92-109-1-225.cable.dynamic.v4.ziggo.nl [92.109.1.225])
 (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 A16219CFDD
 for <41360 <at> debbugs.gnu.org>; Sun,  7 Jun 2020 15:24:46 +0000 (UTC)
From: Alexey Abramov <levenson@HIDDEN>
Date: Sun,  7 Jun 2020 17:55:14 +0200
Message-Id: <20200607155518.1400-9-levenson@HIDDEN>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20200607155518.1400-1-levenson@HIDDEN>
References: <20200607155518.1400-1-levenson@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/java.scm (java-openjfx-build)[source]: Use it.
* gnu/packages/patches/java-openjfx-build-web-WTF.patch: New file.

Signed-off-by: Alexey Abramov <levenson@HIDDEN>
---
 gnu/local.mk                                  |  1 +
 gnu/packages/java.scm                         |  1 +
 .../patches/java-openjfx-build-web-WTF.patch  | 33 +++++++++++++++++++
 3 files changed, 35 insertions(+)
 create mode 100644 gnu/packages/patches/java-openjfx-build-web-WTF.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 71b2cf1d69..d36636fd81 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1112,6 +1112,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/java-openjfx-build-swing-JFXPanel-JDK8.patch     \
   %D%/packages/patches/java-openjfx-build-web-DumpRenderTree-java.patch	\
   %D%/packages/patches/java-openjfx-build-web-OptionsJava.cmake.patch	\
+  %D%/packages/patches/java-openjfx-build-web-WTF.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 8ce8043335..cf6135e926 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -2505,6 +2505,7 @@ new Date();"))
                                        "java-openjfx-build-swing-JFXPanel-JDK8.patch"
                                        "java-openjfx-build-web-DumpRenderTree-java.patch"
                                        "java-openjfx-build-web-OptionsJava.cmake.patch"
+                                       "java-openjfx-build-web-WTF.patch"
                                        ))))
     (build-system ant-build-system)
     (arguments
diff --git a/gnu/packages/patches/java-openjfx-build-web-WTF.patch b/gnu/packages/patches/java-openjfx-build-web-WTF.patch
new file mode 100644
index 0000000000..5fa76449df
--- /dev/null
+++ b/gnu/packages/patches/java-openjfx-build-web-WTF.patch
@@ -0,0 +1,33 @@
+Subject: [PATCH] Fix compilation against ICU 59+.
+
+ICU4C has moved to char16_t as the type for UTF-16
+http://site.icu-project.org/download/59
+
+diff --git a/modules/web/src/main/native/Source/WTF/wtf/unicode/java/UnicodeJava.h b/modules/web/src/main/native/Source/WTF/wtf/unicode/java/UnicodeJava.h
+index 0993aa6..e6ea131 100644
+--- a/modules/web/src/main/native/Source/WTF/wtf/unicode/java/UnicodeJava.h
++++ b/modules/web/src/main/native/Source/WTF/wtf/unicode/java/UnicodeJava.h
+@@ -15,21 +15,6 @@
+
+ #define CharProp(p) com_sun_webkit_dom_CharacterDataImpl_##p
+
+-#if PLATFORM(JAVA) && OS(WINDOWS)
+-typedef wchar_t UChar;
+-#else
+-typedef uint16_t UChar;
+-#endif
+-
+-// #ifdef UChar32
+-// #undef UChar32
+-// #endif
+-
+-#ifndef __UMACHINE_H__ //XXX: recheck
+-typedef uint32_t UChar32;
+-#endif
+-
+-#define U_MASK(x) ((uint32_t)1<<(x))
+ #define USE_FAST_PATH(c, fast, slow) ((c) <= 0x7F ? fast((char)c) : slow(c))
+
+ #define CHECK_PROPERTY(c, mask, isSet) \
+--
+2.26.2
-- 
2.26.2





Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH v4 10/12] gnu: java-openjfx-build: Fix web component compilation with ICU 65+.
Resent-From: Alexey Abramov <levenson@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Sun, 07 Jun 2020 15:57:04 +0000
Resent-Message-ID: <handler.41360.B41360.159154538530193 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: 41360 <at> debbugs.gnu.org
Received: via spool by 41360-submit <at> debbugs.gnu.org id=B41360.159154538530193
          (code B ref 41360); Sun, 07 Jun 2020 15:57:04 +0000
Received: (at 41360) by debbugs.gnu.org; 7 Jun 2020 15:56:25 +0000
Received: from localhost ([127.0.0.1]:54720 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jhxed-0007qe-VP
	for submit <at> debbugs.gnu.org; Sun, 07 Jun 2020 11:56:24 -0400
Received: from mx4.mail.mmer.org ([178.22.66.29]:62744)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <levenson@HIDDEN>) id 1jhxe4-0007mu-9k
 for 41360 <at> debbugs.gnu.org; Sun, 07 Jun 2020 11:55:42 -0400
Received: from delta (92-109-1-225.cable.dynamic.v4.ziggo.nl [92.109.1.225])
 (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 0569E9D066
 for <41360 <at> debbugs.gnu.org>; Sun,  7 Jun 2020 15:24:46 +0000 (UTC)
From: Alexey Abramov <levenson@HIDDEN>
Date: Sun,  7 Jun 2020 17:55:16 +0200
Message-Id: <20200607155518.1400-11-levenson@HIDDEN>
X-Mailer: git-send-email 2.26.2
In-Reply-To: <20200607155518.1400-1-levenson@HIDDEN>
References: <20200607155518.1400-1-levenson@HIDDEN>
MIME-Version: 1.0
Content-Transfer-Encoding: 8bit
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

* gnu/local.mk (dist_patch_DATA): Add it.
* gnu/packages/java.scm (java-openjfx-build)[source]: Use it.
* gnu/packages/patches/java-openjfx-build-web-icu.patch: New file.

Signed-off-by: Alexey Abramov <levenson@HIDDEN>
---
 gnu/local.mk                                  |  1 +
 gnu/packages/java.scm                         |  1 +
 .../patches/java-openjfx-build-web-icu.patch  | 38 +++++++++++++++++++
 3 files changed, 40 insertions(+)
 create mode 100644 gnu/packages/patches/java-openjfx-build-web-icu.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index 85f8db7150..40458ac9c4 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1114,6 +1114,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/java-openjfx-build-web-OptionsJava.cmake.patch	\
   %D%/packages/patches/java-openjfx-build-web-WTF.patch			\
   %D%/packages/patches/java-openjfx-build-web-WebKitCompilerFlags.cmake.patch	\
+  %D%/packages/patches/java-openjfx-build-web-icu.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 5da1476077..a17da610d2 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -2507,6 +2507,7 @@ new Date();"))
                                        "java-openjfx-build-web-OptionsJava.cmake.patch"
                                        "java-openjfx-build-web-WTF.patch"
                                        "java-openjfx-build-web-WebKitCompilerFlags.cmake.patch"
+                                       "java-openjfx-build-web-icu.patch"
                                        ))))
     (build-system ant-build-system)
     (arguments
diff --git a/gnu/packages/patches/java-openjfx-build-web-icu.patch b/gnu/packages/patches/java-openjfx-build-web-icu.patch
new file mode 100644
index 0000000000..3e5c4a770c
--- /dev/null
+++ b/gnu/packages/patches/java-openjfx-build-web-icu.patch
@@ -0,0 +1,38 @@
+Subject: [PATCH] Fix compilateion with ICU.
+
+Regressed by https://github.com/unicode-org/icu/commit/480bec3ea652
+
+---
+ modules/web/src/main/native/Source/WebCore/dom/Document.cpp | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/modules/web/src/main/native/Source/WebCore/dom/Document.cpp b/modules/web/src/main/native/Source/WebCore/dom/Document.cpp
+index ec30fb5..4b0ff9d 100644
+--- a/modules/web/src/main/native/Source/WebCore/dom/Document.cpp
++++ b/modules/web/src/main/native/Source/WebCore/dom/Document.cpp
+@@ -4704,12 +4704,12 @@ static bool isValidNameNonASCII(const UChar* characters, unsigned length)
+     unsigned i = 0;
+
+     UChar32 c;
+-    U16_NEXT(characters, i, length, c)
++    U16_NEXT(characters, i, length, c);
+     if (!isValidNameStart(c))
+         return false;
+
+     while (i < length) {
+-        U16_NEXT(characters, i, length, c)
++        U16_NEXT(characters, i, length, c);
+         if (!isValidNamePart(c))
+             return false;
+     }
+@@ -4769,7 +4769,7 @@ ExceptionOr<std::pair<AtomicString, AtomicString>> Document::parseQualifiedName(
+
+     for (unsigned i = 0; i < length; ) {
+         UChar32 c;
+-        U16_NEXT(qualifiedName, i, length, c)
++        U16_NEXT(qualifiedName, i, length, c);
+         if (c == ':') {
+             if (sawColon)
+                 return Exception { InvalidCharacterError };
+--
+2.26.2
-- 
2.26.2





Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH 09/12] gnu: java-openjfx-web: Add new variable.
Resent-From: Alexey Abramov <levenson@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Sun, 07 Jun 2020 16:26:01 +0000
Resent-Message-ID: <handler.41360.B41360.15915471249161 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
Cc: 41360 <at> debbugs.gnu.org
Received: via spool by 41360-submit <at> debbugs.gnu.org id=B41360.15915471249161
          (code B ref 41360); Sun, 07 Jun 2020 16:26:01 +0000
Received: (at 41360) by debbugs.gnu.org; 7 Jun 2020 16:25:24 +0000
Received: from localhost ([127.0.0.1]:54782 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jhy6u-0002Nf-15
	for submit <at> debbugs.gnu.org; Sun, 07 Jun 2020 12:25:24 -0400
Received: from mx4.mail.mmer.org ([178.22.66.29]:54215)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <levenson@HIDDEN>) id 1jhy6r-0002NV-Oq
 for 41360 <at> debbugs.gnu.org; Sun, 07 Jun 2020 12:25:22 -0400
Received: from delta (92-109-1-225.cable.dynamic.v4.ziggo.nl [92.109.1.225])
 (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 138B99CC35;
 Sun,  7 Jun 2020 15:54:34 +0000 (UTC)
From: Alexey Abramov <levenson@HIDDEN>
In-Reply-To: <87v9k8kv7s.fsf@HIDDEN> ("Ludovic
 \=\?utf-8\?Q\?Court\=C3\=A8s\=22'\?\=
 \=\?utf-8\?Q\?s\?\= message of "Wed, 03 Jun 2020 17:47:03 +0200")
References: <20200517135138.1651512-1-levenson@HIDDEN>
 <20200517135138.1651512-9-levenson@HIDDEN> <87tv0668us.fsf@HIDDEN>
 <87wo4t1ie8.fsf@HIDDEN> <87v9k8kv7s.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux)
Date: Sun, 07 Jun 2020 18:25:18 +0200
Message-ID: <87img2c07l.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: text/plain
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)


True. I have sent a new series with fixes.

This move allowed me to drop off gcc-5, and switch back to the current one. It is also shed some light on what should/could be investigated/done to make tests work.

--
Alexey




Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH v4 01/12] gnu: java-openjfx-graphics: Implement a complete compilation.
Resent-From: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Fri, 12 Jun 2020 16:13:02 +0000
Resent-Message-ID: <handler.41360.B41360.159197835228499 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: Alexey Abramov <levenson@HIDDEN>
Cc: 41360 <at> debbugs.gnu.org, Julien Lepiller <julien@HIDDEN>
Received: via spool by 41360-submit <at> debbugs.gnu.org id=B41360.159197835228499
          (code B ref 41360); Fri, 12 Jun 2020 16:13:02 +0000
Received: (at 41360) by debbugs.gnu.org; 12 Jun 2020 16:12:32 +0000
Received: from localhost ([127.0.0.1]:40475 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jjmI9-0007PY-1G
	for submit <at> debbugs.gnu.org; Fri, 12 Jun 2020 12:12:32 -0400
Received: from eggs.gnu.org ([209.51.188.92]:51478)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <ludo@HIDDEN>) id 1jjmI6-0007PH-MJ
 for 41360 <at> debbugs.gnu.org; Fri, 12 Jun 2020 12:12:27 -0400
Received: from fencepost.gnu.org ([2001:470:142:3::e]:38453)
 by eggs.gnu.org with esmtp (Exim 4.90_1)
 (envelope-from <ludo@HIDDEN>)
 id 1jjmI0-0002CY-7v; Fri, 12 Jun 2020 12:12:20 -0400
Received: from [2a01:e0a:1d:7270:6a6c:dc17:fc02:cfda] (port=55068 helo=ribbon)
 by fencepost.gnu.org with esmtpsa (TLS1.2:RSA_AES_256_CBC_SHA1:256)
 (Exim 4.82) (envelope-from <ludo@HIDDEN>)
 id 1jjmHy-0004Tt-5l; Fri, 12 Jun 2020 12:12:19 -0400
From: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
References: <20200607155518.1400-1-levenson@HIDDEN>
 <20200607155518.1400-2-levenson@HIDDEN>
Date: Fri, 12 Jun 2020 18:12:16 +0200
In-Reply-To: <20200607155518.1400-2-levenson@HIDDEN> (Alexey Abramov's
 message of "Sun, 7 Jun 2020 17:55:07 +0200")
Message-ID: <87bllo5km7.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/26.3 (gnu/linux)
MIME-Version: 1.0
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable
X-Spam-Score: -2.3 (--)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -3.3 (---)

Hi Alexey,

Alexey Abramov <levenson@HIDDEN> skribis:

> * gnu/packages/java.scm (java-openjfx-graphics): Add stages to build
>   libdecora_sse, prism_common, glassgtk2, iio, prism_sw, prism_es2,
>   font_freetype, glassgtk3, font, font_pango and glass libraries.
>
> All the steps were taken by inspecting ./gradlew build --info result.

Could you add it in a comment?

So essentially all these phases and the unrolled and translated version
of what Gradle would do, right?

> Signed-off-by: Alexey Abramov <levenson@HIDDEN>
> ---
>  gnu/packages/java.scm | 642 +++++++++++++++++++++++++++++++++++++++++-
>  1 file changed, 634 insertions(+), 8 deletions(-)

I guess it=E2=80=99s still =E2=80=9Csource=E2=80=9D, but that=E2=80=99s a l=
ot of it.

Do you think there are ways this could be factorized?  I=E2=80=99m not sayi=
ng we
have to do this right away, but we should probably keep in mind if we
want to ensure the long-term maintainability of this package.

> +           ;; XX: Description can be found in build.gradle:1429. Current=
ly

I think you can remove =E2=80=9CXX=E2=80=9D, but description of what?  Prob=
ably a bit
more context would be fine.

> +                 (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 "CLASSPA=
TH"))
> +                                                       ":")
> +                                    "CompileJSL"
> +                                    "-i" prism-src
> +                                    "-o" prism-gen-src
> +                                    "-t"
> +                                    "-pkg" "com/sun/prism"
> +                                    "-d3d"
> +                                    "-es2"
> +                                    "-name" (list file)))

Problem is we won=E2=80=99t know where those flags come from, right?  Perha=
ps
there=E2=80=99s additional info the Gradle build files?

> +           (add-after 'compile-decora-compilers 'generate-decora-shaders
> +             (lambda _
> +               (let ((classes "modules/graphics/build/classes/java/main")
> +                     (decora-classes "modules/graphics/build/classes/jsl=
-decora/")
> +                     (decora-compilers-classes "modules/graphics/build/c=
lasses/jsl-compilers/decora")
> +                     (decora-gen-src "modules/graphics/build/generated-s=
rc/jsl-decora")
> +                     (decora-src "modules/graphics/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 . "PerspectiveTran=
sform")
> +                                           (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 . "CompileLinearCo=
nvolve")
> +                                           (outputs . "-hw")]
> +                                          [(file-name . "LinearConvolveS=
hadow")
> +                                           (generator . "CompileLinearCo=
nvolve")
> +                                           (outputs . "-hw")])))

We should at least have a comment explaining where that list comes from
and what it means.

I appreciate the huge amount of work you put into this, but I=E2=80=99m
concerned about maintainability.

Julien, what are the prospects of getting Gradle in Guix?  What are your
thoughts here?

Thanks,
Ludo=E2=80=99.




Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH v4 01/12] gnu: java-openjfx-graphics: Implement a complete compilation.
Resent-From: Alexey Abramov <levenson@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Thu, 18 Jun 2020 17:33:02 +0000
Resent-Message-ID: <handler.41360.B41360.159250153321528 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: Ludovic =?UTF-8?Q?Court=C3=A8s?= <ludo@HIDDEN>
Cc: 41360 <at> debbugs.gnu.org, Julien Lepiller <julien@HIDDEN>
Received: via spool by 41360-submit <at> debbugs.gnu.org id=B41360.159250153321528
          (code B ref 41360); Thu, 18 Jun 2020 17:33:02 +0000
Received: (at 41360) by debbugs.gnu.org; 18 Jun 2020 17:32:13 +0000
Received: from localhost ([127.0.0.1]:54295 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1jlyOR-0005TW-1F
	for submit <at> debbugs.gnu.org; Thu, 18 Jun 2020 13:32:13 -0400
Received: from mx4.mail.mmer.org ([178.22.66.29]:49587)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <levenson@HIDDEN>) id 1jlyOC-0005HM-Jm
 for 41360 <at> debbugs.gnu.org; Thu, 18 Jun 2020 13:32:01 -0400
Received: from delta (92-109-1-225.cable.dynamic.v4.ziggo.nl [92.109.1.225])
 (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 9E6C29CE4E;
 Thu, 18 Jun 2020 17:00:59 +0000 (UTC)
From: Alexey Abramov <levenson@HIDDEN>
In-Reply-To: <87bllo5km7.fsf@HIDDEN> ("Ludovic =?UTF-8?Q?Court=C3=A8s?="'s message of "Fri, 12 Jun 2020 18:12:16 +0200")
References: <20200607155518.1400-1-levenson@HIDDEN>
 <20200607155518.1400-2-levenson@HIDDEN> <87bllo5km7.fsf@HIDDEN>
User-Agent: Gnus/5.13 (Gnus v5.13) Emacs/27.0.91 (gnu/linux)
Date: Thu, 18 Jun 2020 19:31:42 +0200
Message-ID: <87o8pgs2kh.fsf@HIDDEN>
MIME-Version: 1.0
Content-Type: multipart/mixed; boundary="=-=-="
X-Spam-Score: 0.0 (/)
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
X-Spam-Score: -1.0 (-)

--=-=-=
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hi Ludovic,

Please see an updated version of the java-openjfx-graphics in the attachmen=
ts.=20

- Add yet another comment on top of the definition.
- Remove "XX" part from the commit, and put it to the above comment.

Ludovic Court=C3=A8s <ludo@HIDDEN> writes:

> Hi Alexey,
>
> Alexey Abramov <levenson@HIDDEN> skribis:
>
>> * gnu/packages/java.scm (java-openjfx-graphics): Add stages to build
>>   libdecora_sse, prism_common, glassgtk2, iio, prism_sw, prism_es2,
>>   font_freetype, glassgtk3, font, font_pango and glass libraries.
>>
>> All the steps were taken by inspecting ./gradlew build --info result.
>
> Could you add it in a comment?

Done.

> So essentially all these phases and the unrolled and translated version
> of what Gradle would do, right?

Yes. Some of them are pretty straightforward, but others (like prism and sh=
aders) are tricky.

>
>> Signed-off-by: Alexey Abramov <levenson@HIDDEN>
>> ---
>>  gnu/packages/java.scm | 642 +++++++++++++++++++++++++++++++++++++++++-
>>  1 file changed, 634 insertions(+), 8 deletions(-)
>
> I guess it=E2=80=99s still =E2=80=9Csource=E2=80=9D, but that=E2=80=99s a=
 lot of it.
>
> Do you think there are ways this could be factorized?  I=E2=80=99m not sa=
ying we
> have to do this right away, but we should probably keep in mind if we
> want to ensure the long-term maintainability of this package.

I guess, In the beginning, I was trying to wrap those steps with some proce=
dure/s, like the one gradle.build has, but when I was doing this, I realize=
d that it might become more complicated, than just simple series of javah/j=
avac/gcc/g++ steps. They all kinda look alike, but different.

>
>> +           ;; XX: Description can be found in build.gradle:1429. Curren=
tly
>
> I think you can remove =E2=80=9CXX=E2=80=9D, but description of what?  Pr=
obably a bit
> more context would be fine.

Done.

>
>> +                 (mkdir-p prism-gen-src)
>> +                 (for-each (lambda (file)
>> +                             (apply invoke "java"
>> +                                    "-cp" (string-join (list
>> +                                                        ;; For CompileJ=
SL
>> +                                                        prism-compilers=
-classes
>> +                                                        ;; jsl files ar=
e there
>> +                                                        prism-src
>> +                                                        (getenv "CLASSP=
ATH"))
>> +                                                       ":")
>> +                                    "CompileJSL"
>> +                                    "-i" prism-src
>> +                                    "-o" prism-gen-src
>> +                                    "-t"
>> +                                    "-pkg" "com/sun/prism"
>> +                                    "-d3d"
>> +                                    "-es2"
>> +                                    "-name" (list file)))
>
> Problem is we won=E2=80=99t know where those flags come from, right?  Per=
haps
> there=E2=80=99s additional info the Gradle build files?

gradle.build has no comments about that =3D(. This is  what you can find on=
 top of the graphics module:

// The graphics module is needed for any graphical JavaFX application. It r=
equires the base module and includes the scene graph, layout, css, prism, w=
indowing, etc. This is a fairly complicated module. There are many differen=
t types of native components that all need to be compiled.

I also put it above the java-openjfx-graphics definition.

>
>> +           (add-after 'compile-decora-compilers 'generate-decora-shaders
>> +             (lambda _
>> +               (let ((classes "modules/graphics/build/classes/java/main=
")
>> +                     (decora-classes "modules/graphics/build/classes/js=
l-decora/")
>> +                     (decora-compilers-classes "modules/graphics/build/=
classes/jsl-compilers/decora")
>> +                     (decora-gen-src "modules/graphics/build/generated-=
src/jsl-decora")
>> +                     (decora-src "modules/graphics/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 . "PerspectiveTra=
nsform")
>> +                                           (generator . "CompileJSL")
>> +                                           (outputs . "-all")]
>> +                                          [(file-name . "DisplacementMa=
p")
>> +                                           (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 . "CompileLinearC=
onvolve")
>> +                                           (outputs . "-hw")]
>> +                                          [(file-name . "LinearConvolve=
Shadow")
>> +                                           (generator . "CompileLinearC=
onvolve")
>> +                                           (outputs . "-hw")])))
>
> We should at least have a comment explaining where that list comes from
> and what it means.

I put a big comment I found in gradle.build a little bit higher, before tho=
se steps where we compile these generators.

> I appreciate the huge amount of work you put into this, but I=E2=80=99m
> concerned about maintainability.

Thanks, I agree. These patches are also not complete. Ideally, javafx shoul=
d provide a jfxrt.jar and users should not think about these modules at all=
. We are half-way there.

> Julien, what are the prospects of getting Gradle in Guix?  What are your
> thoughts here?

That would be awesome to have (guix build-system gradle)! I was looking int=
o this as well, and even found some links where I got an idea that "probabl=
y" some older version of gradle could be build with ant.

> Thanks,
> Ludo=E2=80=99.

--
Alexey


--=-=-=
Content-Type: text/x-patch; charset=utf-8
Content-Disposition: attachment;
 filename=0001-gnu-java-openjfx-graphics-Implement-a-complete-compi.patch
Content-Transfer-Encoding: quoted-printable

From f9a444680c9c1be2d75c021469cc265599130b65 Mon Sep 17 00:00:00 2001
From: Alexey Abramov <levenson@HIDDEN>
Date: Sat, 22 Feb 2020 21:17:51 +0100
Subject: [PATCH v5 01/12] gnu: java-openjfx-graphics: Implement a complete
 compilation.

* gnu/packages/java.scm (java-openjfx-graphics): Add stages to build
  libdecora_sse, prism_common, glassgtk2, iio, prism_sw, prism_es2,
  font_freetype, glassgtk3, font, font_pango and glass libraries.

Signed-off-by: Alexey Abramov <levenson@HIDDEN>
---
 gnu/packages/java.scm | 646 +++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 638 insertions(+), 8 deletions(-)

diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index d5bc713c70..a0e7957c25 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)
@@ -2561,22 +2562,651 @@ modern, efficient, and fully featured toolkit for =
developing rich client
 applications.  This package contains base classes for the OpenJFX
 distribution.")))
=20
+;; The graphics module is needed for any graphical JavaFX application. It
+;; requires the base module and includes the scene graph, layout, css, pri=
sm,
+;; windowing, etc. This is a fairly complicated module. There are many
+;; different types of native components that all need to be compiled.
+;;
+;; All the bellow steps were taken by inspecting build.gradel and  ./gradl=
ew build --info
+;; result.
 (define-public java-openjfx-graphics
   (package (inherit java-openjfx-build)
     (name "java-openjfx-graphics")
     (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               ; require 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=E2=80=99s an internal option for JDK 1.7+ that prev=
ents
+                 ;; the compiler from sharing a table that will never
+                 ;; be reused. When shared, it can=E2=80=99t be garbage
+                 ;; collected, continues to accumulate data, and
+                 ;; therefore wastes memory.
+                 "-XDuseUnsharedTable=3Dtrue"))
+              (common-flags
+               '("-fno-strict-aliasing" "-fPIC" "-fno-omit-frame-pointer" =
;; optimization flags
+                 "-fstack-protector"
+                 "-W" "-Wall" "-Wno-unused" "-Wno-parentheses"))
+              (cc-flags
+               `(,@common-flags "-c" "-ffunction-sections" "-fdata-section=
s"
+                                "-I" ,(string-append jdk "/include")
+                                "-I" ,(string-append jdk "/include/linux")=
))
+              (link-flags
+               `("-static-libgcc" "-static-libstdc++" "-shared" ,@common-f=
lags
+                 "-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 i=
n build/classes
+               (invoke "ant" "compile" "-Dclasses.dir=3Dmodules/graphics/b=
uild/classes/java/main")
+               #t))
+
+           ;; The Decora and Prism JSL files have to be generated in a ver=
y specific set of steps.
+           ;;      1) Compile the *Compile.java classes. These live in src=
/main/jsl-* and will be
+           ;;         output to $buildDir/classes/jsl-compilers/* (where *=
 =3D=3D decora or prism).
+           ;;      2) Generate source files from the JSL files contained i=
n src/main/jsl-*. These
+           ;;         will be output to $buildDir/generated-src/jsl-*
+           ;;      3) Compile the JSL Java sources in $buildDir/generated-=
src/jsl-* and put the output
+           ;;         into classes/jsl-*
+           ;;      4) Compile the native JSL sources in $buildDir/generate=
d-src/jsl-* and put the obj
+           ;;         files into native/jsl-* and the resulting library in=
to libs/jsl-*.dll|so|dylib
+           ;;      5) Modify the jar step to include classes/jsl-*
+           ;; The native library must be copied over during SDK creation t=
ime in the "sdk" task. In
+           ;; addition to these steps, the clean task is created. Note tha=
t I didn't bother to create
+           ;; a new task for each of the decora files, preferring instead =
just to create a rule?? Also
+           ;; need "clean" tasks for each compile task.
+           (add-after 'build 'compile-prism-compilers
+             (lambda _
+               (let ((prism-compilers-classes "modules/graphics/build/clas=
ses/jsl-compilers/prism")
+                     (prism-src "modules/graphics/src/main/jsl-prism/"))
+                 (mkdir-p prism-compilers-classes)
+
+                 (apply invoke "javac" "-d" prism-compilers-classes
+                        (append javac/h-flags (find-files prism-src "\\.ja=
va"))))
+
+               #t))
+
+           (add-after 'compile-prism-compilers 'generate-prism-shaders
+             (lambda _
+               (let ((prism-compilers-classes "modules/graphics/build/clas=
ses/jsl-compilers/prism")
+                     (prism-src "modules/graphics/src/main/jsl-prism/")
+                     (prism-gen-src "modules/graphics/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-cl=
asses
+                                                        ;; jsl files are t=
here
+                                                        prism-src
+                                                        (getenv "CLASSPATH=
"))
+                                                       ":")
+                                    "CompileJSL"
+                                    "-i" prism-src
+                                    "-o" prism-gen-src
+                                    "-t"
+                                    "-pkg" "com/sun/prism"
+                                    "-d3d"
+                                    "-es2"
+                                    "-name" (list file)))
+                           (find-files prism-src "\\.jsl$")))
+               #t))
+
+           (add-after 'generate-prism-shaders 'compile-prism-shaders
+             (lambda _
+               (let* ((classes "modules/graphics/build/classes/java/main")
+                      (prism-classes "modules/graphics/build/classes/jsl-p=
rism")
+                      (prism-gen-src "modules/graphics/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 "CLASSPAT=
H"))
+                        (append javac/h-flags (find-files prism-gen-shader=
s-src))))
+               #t))
+
+           (add-after 'compile-prism-shaders 'compile-decora-compilers
+             (lambda _
+               (let ((classes "modules/graphics/build/classes/java/main")
+                     (decora-compilers-classes "modules/graphics/build/cla=
sses/jsl-compilers/decora")
+                     (decora-src "modules/graphics/src/main/jsl-decora/"))
+                 (mkdir-p decora-compilers-classes)
+                 (apply invoke "javac"
+                        "-d" decora-compilers-classes
+                        "-cp" (string-append classes ":" (getenv "CLASSPAT=
H"))
+                        (append javac/h-flags (find-files decora-src "\\.j=
ava"))))
+               #t))
+
+           (add-after 'compile-decora-compilers 'generate-decora-shaders
+             (lambda _
+               (let ((classes "modules/graphics/build/classes/java/main")
+                     (decora-classes "modules/graphics/build/classes/jsl-d=
ecora/")
+                     (decora-compilers-classes "modules/graphics/build/cla=
sses/jsl-compilers/decora")
+                     (decora-gen-src "modules/graphics/build/generated-src=
/jsl-decora")
+                     (decora-src "modules/graphics/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 . "PerspectiveTransf=
orm")
+                                           (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 . "CompileLinearConv=
olve")
+                                           (outputs . "-hw")]
+                                          [(file-name . "LinearConvolveSha=
dow")
+                                           (generator . "CompileLinearConv=
olve")
+                                           (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
+                                                               ;; CompileJ=
SL
+                                                               decora-comp=
ilers-classes
+                                                               decora-clas=
ses
+                                                               ;; We need =
resources from the build
+                                                               "buildSrc/s=
rc/main/resources"
+                                                               (list (gete=
nv "CLASSPATH")))
+                                                        ":")
+                                     generator
+                                     "-i" decora-src
+                                     "-o" decora-gen-src
+                                     "-t"
+                                     "-pkg" "com/sun/scenario/effect"
+                                     outputs
+                                     (list file-name))))
+                           decora-components)
+                 #t)))
+
+           (add-after 'generate-decora-shaders 'compile-decora-shaders
+             (lambda _
+               (let ((classes "modules/graphics/build/classes/java/main")
+                     (decora-classes "modules/graphics/build/classes/jsl-d=
ecora/")
+                     (decora-gen-src "modules/graphics/build/generated-src=
/jsl-decora"))
+                 (mkdir-p decora-classes)
+                 (apply invoke "javac"
+                        "-d" decora-classes
+                        "-cp" classes
+                        (append 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 "modules/graphics/build/classes/java/main")
+                      (decora-gen-headers "modules/graphics/build/generate=
d-src/headers/jsl-decora")
+                      (decora-gen-src "modules/graphics/build/generated-sr=
c/jsl-decora")
+                      (decora-native-lib "modules/graphics/build/libs/jsl-=
decora/linux/libdecora_sse.so")
+                      (decora-native-obj "modules/graphics/build/native/js=
l-decora/linux")
+                      (decora-native-src "modules/graphics/src/main/native=
-decora")
+                      (decora-src "modules/graphics/src/main/jsl-decora/")
+                      (decora-classes "modules/graphics/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) "=
:")
+                        (append javac/h-flags
+                                (filter (cut string-prefix? "com.sun.scena=
rio.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"
+                                    "-I" decora-gen-headers
+                                    "-I" decora-gen-src
+                                    "-I" decora-native-src
+                                    "-o" (string-append decora-native-obj =
 "/" (basename cc ".cc") ".obj")
+                                    (append decora-cc-flags (list 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
+                        (append link-flags (find-files decora-native-obj "=
\\.obj$"))))
+               #t))
+
+           (add-after 'compile-decora-native-lib 'compile-linux-font-nativ=
e-lib
+             (lambda* (#:key inputs #:allow-other-keys)
+               (let* ((classes "modules/graphics/build/classes/java/main")
+                      (font-gen-headers "modules/graphics/build/generated-=
src/headers/font/linux")
+                      (font-native-lib "modules/graphics/build/libs/font/l=
inux/libjavafx_font.so")
+                      (font-native-obj "modules/graphics/build/native/font=
/linux")
+                      (font-native-src "modules/graphics/src/main/native-f=
ont")
+                      ;;
+                      (font-cc-flags `("-DJFXFONT_PLUS" ,@cc-flags)))
+                 (mkdir-p font-gen-headers)
+                 (apply invoke "javah"
+                        "-d" font-gen-headers
+                        "-cp" classes
+                        (append javac/h-flags
+                                (filter (lambda (class)
+                                          (or (string-prefix? "com.sun.jav=
afx.font" class)
+                                              (string-prefix? "com.sun.jav=
afx.text" class)))
+                                        (java-list-classes classes))))
+                 (mkdir-p font-native-obj)
+                 (for-each (lambda (cc)
+                             (apply invoke "gcc"
+                                    "-I" font-gen-headers
+                                    "-I" font-native-src
+                                    "-o" (string-append font-native-obj "/"
+                                                        (basename cc ".c")=
 ".obj")
+                                    (append font-cc-flags (list cc))))
+                           (find-files font-native-src "\\.c$"))
+                 (mkdir-p (dirname font-native-lib))
+                 (apply invoke "g++"
+                        "-o" font-native-lib
+                        (append link-flags
+                                (find-files font-native-obj "\\.obj$"))))
+               #t))
+
+           (add-after 'compile-linux-font-native-lib 'compile-linux-font-f=
reetype
+             (lambda* (#:key inputs #:allow-other-keys)
+               (let* ((classes "modules/graphics/build/classes/java/main")
+                      ;;
+                      (font-freetype-gen-headers "modules/graphics/build/g=
enerated-src/headers/fontFreetype/linux")
+                      (font-freetype-native-lib "modules/graphics/build/li=
bs/fontFreetype/linux/libjavafx_font_freetype.so")
+                      (font-freetype-native-obj "modules/graphics/build/na=
tive/fontFreetype/linux")
+                      (font-freetype-native-src "modules/graphics/src/main=
/native-font/freetype.c")
+                      (font-freetype-cc-flags `("-DJFXFONT_PLUS" "-D_ENABL=
E_PANGO"
+                                                "$(pkg-config --cflags fre=
etype2)" ,@cc-flags))
+                      (font-freetype-link-flags `("$(pkg-config --libs fre=
etype2)" ,@link-flags)))
+                 (mkdir-p font-freetype-gen-headers)
+                 (apply invoke "javah"
+                        "-d" font-freetype-gen-headers
+                        "-cp" classes
+                        (append javac/h-flags
+                                (filter (cut string-prefix? "com.sun.javaf=
x.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-nativ=
e-src)
+                                        "-o" ,(string-append font-freetype=
-native-obj "/"
+                                                             (basename fon=
t-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-pan=
go-lib
+             (lambda* (#:key inputs #:allow-other-keys)
+               (let* ((classes "modules/graphics/build/classes/java/main")
+                      (font-pango-gen-headers "modules/graphics/build/gene=
rated-src/headers/fontPango/linux")
+                      (font-pango-native-lib "modules/graphics/build/libs/=
fontPango/linux/libjavafx_font_pango.so")
+                      (font-pango-native-obj "modules/graphics/build/nativ=
e/fontPango/linux")
+                      (font-pango-native-src "modules/graphics/src/main/na=
tive-font/pango.c")
+                      (font-pango-cc-flags `("-DJFXFONT_PLUS" "-D_ENABLE_P=
ANGO"
+                                             "$(pkg-config --cflags pangof=
t2)" ,@cc-flags))
+                      (font-pango-link-flags `("$(pkg-config --libs pangof=
t2)" ,@link-flags)))
+                 (mkdir-p font-pango-gen-headers)
+                 (apply invoke "javah"
+                        "-d" font-pango-gen-headers
+                        "-cp" classes
+                        (append javac/h-flags
+                                (filter (cut string-prefix? "com.sun.javaf=
x.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-s=
rc)
+                                        "-o" ,(string-append font-pango-na=
tive-obj "/"
+                                                             (basename fon=
t-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-ob=
j "\\.obj$")))))
+               #t))
+
+           (add-after 'compile-linux-font-pango-lib 'compile-linux-glass-l=
ib
+             (lambda* (#:key inputs #:allow-other-keys)
+               (let* ((classes "modules/graphics/build/classes/java/main")
+                      ;; glass
+                      (glass-gen-headers "modules/graphics/build/generated=
-src/headers/glass/linux")
+                      (glass-native-lib "modules/graphics/build/libs/glass=
/linux/libglass.so")
+                      (glass-native-obj "modules/graphics/build/native/gla=
ss/linux/glass")
+                      (glass-native-src "modules/graphics/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 "modules/graphics/build/nativ=
e/glass/linux/glassgtk2")
+                      (glass-gtk2-native-src (dirname glass-native-src))
+                      (glass-gtk2-native-lib "modules/graphics/build/libs/=
glass/linux/libglassgtk2.so")
+                      (glass-gtk2-cc-flags
+                       `(,@cc-flags
+                         "$(pkg-config --cflags gtk+-2.0 gthread-2.0 xtst)"
+                         ;; XX: GTimeVal has been deprecated in GLIB since
+                         ;; version 2.62. GTimeVal s not year-2038-safe. G=
tk
+                         ;; 2.24 uses GTimeVal so our build is also failin=
g.
+                         "-Wno-deprecated-declarations"
+                         "-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 "modules/graphics/build/nativ=
e/glass/linux/glassgtk3")
+                      (glass-gtk3-native-src (dirname glass-native-src))
+                      (glass-gtk3-native-lib "modules/graphics/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 gthrea=
d-2.0 xtst)")))
+                 ;; glass
+                 (mkdir-p glass-gen-headers)
+                 (apply invoke "javah"
+                        "-d" glass-gen-headers
+                        "-cp" (string-append classes ":" (getenv "CLASSPAT=
H"))
+                        (append javac/h-flags
+                                (filter (lambda (class)
+                                          (or (string-prefix? "com.sun.gla=
ss.events" class)
+                                              (string-prefix? "com.sun.gla=
ss.ui.gtk" class)
+                                              (string-prefix? "com.sun.gla=
ss.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 gla=
ss-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 g=
lass-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-ob=
j "\\.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 g=
lass-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-ob=
j "\\.obj$")))))
+               #t))
+
+           (add-after 'compile-linux-glass-lib  'compile-linux-iio
+             (lambda* (#:key inputs #:allow-other-keys)
+               (let* ((classes "modules/graphics/build/classes/java/main")
+                      (iio-gen-headers "modules/graphics/build/generated-s=
rc/headers/iio/linux")
+                      (iio-native-lib "modules/graphics/build/libs/iio/lin=
ux/libjavafx_iio.so")
+                      (iio-native-obj "modules/graphics/build/native/iio/l=
inux")
+                      (iio-native-src "modules/graphics/src/main/native-ii=
o")
+                      (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 "CLASSPAT=
H"))
+                        (append javac/h-flags
+                                (filter (cut string-prefix? "com.sun.javaf=
x.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 i=
io-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 "\\.o=
bj$"))))
+                 #t)))
+
+           (add-after 'compile-linux-iio 'compile-linux-prism
+             (lambda* (#:key inputs #:allow-other-keys)
+               (let* ((classes "modules/graphics/build/classes/java/main")
+                      (prism-gen-headers "modules/graphics/build/generated=
-src/headers/prism/linux")
+                      (prism-native-lib "modules/graphics/build/libs/prism=
/linux/libprism_common.so")
+                      (prism-native-obj "modules/graphics/build/native/pri=
sm/linux")
+                      (prism-native-src "modules/graphics/src/main/native-=
prism")
+                      (prism-cc-flags `(,@cc-flags "-DINLINE=3Dinline"))
+                      (prism-link-flags link-flags))
+                 (mkdir-p prism-gen-headers)
+                 (apply invoke "javah"
+                        "-d" prism-gen-headers
+                        "-cp" (string-append classes ":" (getenv "CLASSPAT=
H"))
+                        (append javac/h-flags
+                                (filter (lambda (class)
+                                          (or (string-prefix? "com.sun.pri=
sm.impl" class)
+                                              (string-prefix? "com.sun.pri=
sm.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 p=
rism-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 "modules/graphics/build/classes/java/main")
+                      (prism-es2-gen-headers "modules/graphics/build/gener=
ated-src/headers/prismES2/linux")
+                      (prism-es2-native-lib "modules/graphics/build/libs/p=
rism/linux/libprism_es2.so")
+                      (prism-es2-native-obj "modules/graphics/build/native=
/prismES2/linux")
+                      (prism-es2-native-src "modules/graphics/src/main/nat=
ive-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 pris=
m-es2-native-src "[^/]*\\.c$"))
+                                          abs)
+                             (regexp-exec (make-regexp (string-append pris=
m-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 "CLASSPAT=
H"))
+                        (append 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"
+                                    "-I" glass-native-src
+                                    "-I" prism-es2-gen-headers
+                                    "-I" prism-es2-native-src
+                                    "-I" (string-append prism-es2-native-s=
rc "/GL")
+                                    "-I" (string-append prism-es2-native-s=
rc "/x11")
+                                    "-o" (string-append prism-es2-native-o=
bj "/" (basename c ".c") ".obj")
+                                    (append prism-es2-cc-flags (list 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 "modules/graphics/build/classes/java/main")
+                      (prism-sw-gen-headers "modules/graphics/build/genera=
ted-src/headers/prismSW/linux")
+                      (prism-sw-native-lib "modules/graphics/build/libs/pr=
ism/linux/libprism_sw.so")
+                      (prism-sw-native-obj "modules/graphics/build/native/=
prismSW/linux")
+                      (prism-sw-native-src "modules/graphics/src/main/nati=
ve-prism-sw")
+                      ;;
+                      (prism-sw-cc-flags `(,@cc-flags "-DINLINE=3Dinline"))
+                      (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 "CLASSPAT=
H"))
+                        (append javac/h-flags
+                                (filter (cut string-prefix? "com.sun.pisce=
s" <>)
+                                        (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-hea=
ders
+                                                    "-I" ,prism-sw-native-=
src
+                                                    "-o" ,(string-append p=
rism-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++" "-o" prism-sw-native-lib
+                        (append prism-sw-link-flags (find-files prism-sw-n=
ative-obj "\\.obj$")))
+                 #t)))
+
+           (add-after 'compile-linux-prism-sw '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 "modules/graphics"))
+                      (resources (string-append module "/src/main/resource=
s"))
+                      (classes (string-append module "/build/classes/java/=
main")))
+                 (copy-recursively resources classes)
+
+                 (invoke "ant" "jar" (string-append "-Dclasses.dir=3D" cla=
sses)))
+               #t))))))
+    (native-inputs
+     `(("freetype" ,freetype)
+       ("fontconfig" ,fontconfig)
+       ("gcc" ,gcc)
+       ("glib" ,glib)
+       ("zlib" ,zlib)
+       ("gtk" ,gtk+-2)
+       ("gtk3" ,gtk+)
+       ("jpeg" ,libjpeg-turbo)
+       ("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)))))
=20
 (define-public java-openjfx-media
   (package (inherit java-openjfx-build)
--=20
2.26.2


--=-=-=--




Message sent to guix-patches@HIDDEN:


X-Loop: help-debbugs@HIDDEN
Subject: [bug#41360] [PATCH v5] finalize java-openjfx packages
References: <20200517132829.1553311-1-levenson@HIDDEN>
In-Reply-To: <20200517132829.1553311-1-levenson@HIDDEN>
Resent-From: Ioannis Kappas <ioannis.kappas@HIDDEN>
Original-Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>
Resent-CC: guix-patches@HIDDEN
Resent-Date: Sun, 19 Jun 2022 19:27:02 +0000
Resent-Message-ID: <handler.41360.B41360.165566681020993 <at> debbugs.gnu.org>
Resent-Sender: help-debbugs@HIDDEN
X-GNU-PR-Message: followup 41360
X-GNU-PR-Package: guix-patches
X-GNU-PR-Keywords: patch
To: 41360 <at> debbugs.gnu.org
Cc: ludo@HIDDEN, julien@HIDDEN, levenson@HIDDEN
Received: via spool by 41360-submit <at> debbugs.gnu.org id=B41360.165566681020993
          (code B ref 41360); Sun, 19 Jun 2022 19:27:02 +0000
Received: (at 41360) by debbugs.gnu.org; 19 Jun 2022 19:26:50 +0000
Received: from localhost ([127.0.0.1]:53263 helo=debbugs.gnu.org)
	by debbugs.gnu.org with esmtp (Exim 4.84_2)
	(envelope-from <debbugs-submit-bounces <at> debbugs.gnu.org>)
	id 1o30ZO-0005SX-16
	for submit <at> debbugs.gnu.org; Sun, 19 Jun 2022 15:26:50 -0400
Received: from mail-vs1-f41.google.com ([209.85.217.41]:34406)
 by debbugs.gnu.org with esmtp (Exim 4.84_2)
 (envelope-from <ioannis.kappas@HIDDEN>) id 1o30ZM-0005SG-5i
 for 41360 <at> debbugs.gnu.org; Sun, 19 Jun 2022 15:26:48 -0400
Received: by mail-vs1-f41.google.com with SMTP id l28so621452vsb.1
 for <41360 <at> debbugs.gnu.org>; Sun, 19 Jun 2022 12:26:48 -0700 (PDT)
DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112;
 h=mime-version:from:date:message-id:subject:to:cc;
 bh=VNJ2PEk+LTuG2uaCyNlF3XljgstxbtKXXIyF6QhHhyA=;
 b=EmkcQMC3pkuwPGIkn2u1MyZ6vcmCjQXatQgW0NfrS44paICp0drHDk59dP+V8WbnZI
 Q3IJnKWNfGI6zFQ7fjN7G46PATldhplTMBk4NPjzU3HfN0HS8ogrpcPDXfZzUyj4Y/AN
 qNhIunOhDXUqPRNfIo8K9iqejB1qYdgl6Bx2c5lhPEXjXaDHEYsBki6lb4efRg/30ELf
 KpSJ3SjRZvyAhA7FnTvEgEcPlh+5GWxc0mwfHcGVN8tSSGSaGvILVSehYVcEy+DAoL5O
 KAOrUf/CaY7iXLXG5SbGNm4R3SR+XANw+24pXylyx3HN1YNsYeNcMHVccTKk8PLGyh7k
 lHEw==
X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
 d=1e100.net; s=20210112;
 h=x-gm-message-state:mime-version:from:date:message-id:subject:to:cc;
 bh=VNJ2PEk+LTuG2uaCyNlF3XljgstxbtKXXIyF6QhHhyA=;
 b=udxWFNTaQotaH2An/T4p4sEAFB8AYiWN3qEeadbqPf9NFKJTb1g7l/F8d/XeB58qea
 zDvlU1XeasRi4R5xB5e1d0PEx4+OJ/khOw+2HIixsBQfF0e80KyNx3uXfQYju9ldWATO
 cZPfdqtKtx++zDa7uopHrsE5W0pCnBkXIqYrC/p7RachAUbAu50otDhpHcH7akhXYrYY
 VCb68k/tfJMq78a4bzMyBDMalxB2WsHzlw7GdLbgRgZ9p13FgT/1LBHMS47LlkVhC9yb
 xxDCyaA9CX59vBuLEjpdpXxfXpGCv5bNuRv17quzpo+AInNMNkvX6ZLMhfwhFi4WuuCm
 uQ1Q==
X-Gm-Message-State: AJIora+Ze72ra8mSLvVorH9+ZKnwvlZTvbHlVseA4R0D1BCSERI0O92u
 UwWAYWXYiSEasiZO893K2xDNtDGRiZvGJBdJRWlo64mt4hY=
X-Google-Smtp-Source: AGRyM1tvQGhgayXAV05+zrFcpCSZXuaS0CVqYkLU8QcfHZ+PST3v4bQ9b1TF9dDg6wEdbvLExboGKHzSEs/mlq0QEp8=
X-Received: by 2002:a05:6102:f81:b0:354:3967:118a with SMTP id
 e1-20020a0561020f8100b003543967118amr55694vsv.67.1655666802598; Sun, 19 Jun
 2022 12:26:42 -0700 (PDT)
MIME-Version: 1.0
From: Ioannis Kappas <ioannis.kappas@HIDDEN>
Date: Sun, 19 Jun 2022 20:26:32 +0100
Message-ID: <CAMRHuGCUsJDzk-LoHAA5d1fSESyb0Xjg6KUxk09HgUjHFS3W2Q@HIDDEN>
Content-Type: multipart/mixed; boundary="000000000000a2c70305e1d1f7a3"
X-BeenThere: debbugs-submit <at> debbugs.gnu.org
X-Mailman-Version: 2.1.18
Precedence: list
List-Id: <debbugs-submit.debbugs.gnu.org>
List-Unsubscribe: <https://debbugs.gnu.org/cgi-bin/mailman/options/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=unsubscribe>
List-Archive: <https://debbugs.gnu.org/cgi-bin/mailman/private/debbugs-submit/>
List-Post: <mailto:debbugs-submit <at> debbugs.gnu.org>
List-Help: <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=help>
List-Subscribe: <https://debbugs.gnu.org/cgi-bin/mailman/listinfo/debbugs-submit>, 
 <mailto:debbugs-submit-request <at> debbugs.gnu.org?subject=subscribe>
Errors-To: debbugs-submit-bounces <at> debbugs.gnu.org
Sender: "Debbugs-submit" <debbugs-submit-bounces <at> debbugs.gnu.org>

--000000000000a2c70305e1d1f7a3
Content-Type: text/plain; charset="UTF-8"

Hi,

could you please consider reviewing patches to finalize the building
of the java-openjfx packages in scope of this discussion, as part of
an attempt to complete Alexey's awesome work.

The thread had stopped receiving updates for some time now. I assume
priorities were shifted elsewhere.

I recently got interested testing an openjfx application on Java 1.8,
only to realise that the current packages are incomplete. I came
across this thread, and thought to give the patches a try, and fix
where possible.

I believe I have finalised all openjfx packages in scope to build,
pass all tests and seamlessly link to their native libraries at
runtime.

My test application now works, I can use the graphics, controls and
web openjfx packages by merely specifying their share/java jar
packages on the classpath.

This email has three incremental patches. I've named the as [PATCH v5]
to denote this is a continuation from the last patches.

0001: Alexey's work brought forward to a recent guix revision.

0002: Small changes to updated the above to build with the current
guix spec/packages.

0003: My update to finalize the openjfx packages, normalize inputs,
run all tests where they exist and fix the load path of native
libraries at runtime.

I've put the author of 0001 down to Alexey since this is his works. I
compiled this patch by hand from the thread, I hope I haven't missed
anything.

The individual packages produce a jar output, and some of them also
build native shared libraries. The individual jar packages try to load
their native libraries just by name, and this will fail if the native
libs are not on the library path.

I've taken the decision to load these libraries by their full
gnu/store path instead of their names. I have also applied the same to
an external package, java-swt, since it has a shared library that has
to be located at runtime. Although there are a few native libraries
built by the java-openjfx-graphics package I left it as is, because it
has a sophisticated native library loader that locates shared
libraries relative to the jar location.

The changes in 0003 are as follows:

* java-openjfx-graphics
  1. Normalize inputs, only build against gtk-2.0.
  2. Output native libs to openjfx standard share/amd64 dir.
  3. Do not build libjpeg from source, but rather use corresponding
     package.
  4. Run all tests.
* java-openjfx-controls
  1. Run all tests.
  2. Fix java-openjfx-graphics name typo.
* java-openjfx-media
  1. Build against gstreamer.
  2. Compile native library and modify loader to load it directly from
     the store path.
* java-openjfx-web
  1. Include version.
  2. Modify loader to load native web kit lib directly from the store.
  3. Fix a failing test, by applying new
     java-openjfx-build-web-js-test.patch as picked up from a later
     openjfx revision source code revision, to fix a failing test.
  4. Run all tests.
* java-swt
  1. Modify loader to load native library directly from the gnu/store
     path if it can't be found otherwise. This is required for
     seamlessly loading java-swt as an input.

This is my first guix package update, so is likely to require more
work based on your feedback, which is most welcome.

Thanks

--000000000000a2c70305e1d1f7a3
Content-Type: application/octet-stream; 
	name="0002-Fix-openjfx-build-issues-occuring-from-merge.patch"
Content-Disposition: attachment; 
	filename="0002-Fix-openjfx-build-issues-occuring-from-merge.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_l4lotphg1>
X-Attachment-Id: f_l4lotphg1

RnJvbSBiZjk4NzhkNmEwMmQ3ODFiZGEyNDA0MzIwMTdiZjc2NTliNDJiZDc1IE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBJb2FubmlzIEthcHBhcyA8aW9hbm5pcy5rYXBwYXNAZ21hbWls
LmNvbT4KRGF0ZTogU2F0LCAxOCBKdW4gMjAyMiAxNDozOToxOCArMDEwMApTdWJqZWN0OiBbUEFU
Q0ggdjUgMi8zXSBGaXggb3BlbmpmeCBidWlsZCBpc3N1ZXMgb2NjdXJpbmcgZnJvbSBtZXJnZQoK
VGhpcyBpcyBiZWNhdXNlIHRoZSBndWl4IHN5bnRheCBvciBpbnB1dHMgaGF2ZSBjaGFuZ2VkL3Vw
ZGF0ZWQgc2luY2UgQWxleGV5J3MKdjQgcGF0Y2guCi0tLQogZ251L3BhY2thZ2VzL2phdmEuc2Nt
IHwgODggKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrLS0tLS0tLS0tLQogMSBmaWxl
IGNoYW5nZWQsIDY5IGluc2VydGlvbnMoKyksIDE5IGRlbGV0aW9ucygtKQoKZGlmZiAtLWdpdCBh
L2dudS9wYWNrYWdlcy9qYXZhLnNjbSBiL2dudS9wYWNrYWdlcy9qYXZhLnNjbQppbmRleCA1MTg1
OTY3OTYwLi44YWM1MDEyNTJjIDEwMDY0NAotLS0gYS9nbnUvcGFja2FnZXMvamF2YS5zY20KKysr
IGIvZ251L3BhY2thZ2VzL2phdmEuc2NtCkBAIC0yNjIxLDggKzI2MjEsNyBAQCAoZGVmaW5lLXB1
YmxpYyBqYXZhLW9wZW5qZngtZ3JhcGhpY3MKICAgICAgICAgICAgICAgICAgIChpY2UtOSByZWdl
eCkKICAgICAgICAgICAgICAgICAgIChpY2UtOSBtYXRjaCkpCiAgICAgICAgIzpwaGFzZXMKLSAg
ICAgICAobGV0KiAoKGpkayAoYXNzb2MtcmVmICVidWlsZC1pbnB1dHMgImpkayIpKQotICAgICAg
ICAgICAgICAoamF2YWMvaC1mbGFncworICAgICAgIChsZXQqICgoamF2YWMvaC1mbGFncwogICAg
ICAgICAgICAgICAgJyg7OyBXaGVuIGphdmFjIGlzIGNvbXBpbGluZyBjb2RlIGl0IGRvZXNuJ3Qg
bGluawogICAgICAgICAgICAgICAgICA7OyBhZ2FpbnN0IHJ0LmphciBieSBkZWZhdWx0LiBJbnN0
ZWFkIGl0IHVzZXMgc3BlY2lhbAogICAgICAgICAgICAgICAgICA7OyBzeW1ib2wgZmlsZSBsaWIv
Y3Quc3ltIHdpdGggY2xhc3Mgc3R1YnMuCkBAIC0yNjM5LDEwICsyNjM4LDYgQEAgKGRlZmluZS1w
dWJsaWMgamF2YS1vcGVuamZ4LWdyYXBoaWNzCiAgICAgICAgICAgICAgICAnKCItZm5vLXN0cmlj
dC1hbGlhc2luZyIgIi1mUElDIiAiLWZuby1vbWl0LWZyYW1lLXBvaW50ZXIiIDs7IG9wdGltaXph
dGlvbiBmbGFncwogICAgICAgICAgICAgICAgICAiLWZzdGFjay1wcm90ZWN0b3IiCiAgICAgICAg
ICAgICAgICAgICItVyIgIi1XYWxsIiAiLVduby11bnVzZWQiICItV25vLXBhcmVudGhlc2VzIikp
Ci0gICAgICAgICAgICAgIChjYy1mbGFncwotICAgICAgICAgICAgICAgYCgsQGNvbW1vbi1mbGFn
cyAiLWMiICItZmZ1bmN0aW9uLXNlY3Rpb25zIiAiLWZkYXRhLXNlY3Rpb25zIgotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiLUkiICwoc3RyaW5nLWFwcGVuZCBqZGsgIi9pbmNsdWRl
IikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1JIiAsKHN0cmluZy1hcHBlbmQg
amRrICIvaW5jbHVkZS9saW51eCIpKSkKICAgICAgICAgICAgICAgKGxpbmstZmxhZ3MKICAgICAg
ICAgICAgICAgIGAoIi1zdGF0aWMtbGliZ2NjIiAiLXN0YXRpYy1saWJzdGRjKysiICItc2hhcmVk
IiAsQGNvbW1vbi1mbGFncwogICAgICAgICAgICAgICAgICAiLXoiICJyZWxybyIKQEAgLTI4MzIs
NiArMjgyNywxMSBAQCAoY2xhc3MgKG1hdGNoOnN1ZmZpeCAocmVnZXhwLWV4ZWMgcnggY2xhc3Mp
KSkpCiAgICAgICAgICAgICAgICAgICAgICAgKGRlY29yYS1uYXRpdmUtc3JjICJtb2R1bGVzL2dy
YXBoaWNzL3NyYy9tYWluL25hdGl2ZS1kZWNvcmEiKQogICAgICAgICAgICAgICAgICAgICAgIChk
ZWNvcmEtc3JjICJtb2R1bGVzL2dyYXBoaWNzL3NyYy9tYWluL2pzbC1kZWNvcmEvIikKICAgICAg
ICAgICAgICAgICAgICAgICAoZGVjb3JhLWNsYXNzZXMgIm1vZHVsZXMvZ3JhcGhpY3MvYnVpbGQv
Y2xhc3Nlcy9qc2wtZGVjb3JhLyIpCisgICAgICAgICAgICAgICAgICAgICAgKGpkayAoYXNzb2Mt
cmVmIGlucHV0cyAiamRrIikpCisgICAgICAgICAgICAgICAgICAgICAgKGNjLWZsYWdzCisgICAg
ICAgICAgICAgICAgICAgICAgIGAoLEBjb21tb24tZmxhZ3MgIi1jIiAiLWZmdW5jdGlvbi1zZWN0
aW9ucyIgIi1mZGF0YS1zZWN0aW9ucyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiLUkiICwoc3RyaW5nLWFwcGVuZCBqZGsgIi9pbmNsdWRlIikKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLUkiICwoc3RyaW5nLWFwcGVuZCBqZGsgIi9p
bmNsdWRlL2xpbnV4IikpKQogICAgICAgICAgICAgICAgICAgICAgIChkZWNvcmEtY2MtZmxhZ3Mg
YCgsQGNjLWZsYWdzICItZmZhc3QtbWF0aCIpKSkKICAgICAgICAgICAgICAgICAgKG1rZGlyLXAg
ZGVjb3JhLWdlbi1oZWFkZXJzKQogICAgICAgICAgICAgICAgICAoYXBwbHkgaW52b2tlICJqYXZh
aCIKQEAgLTI4NjQsNiArMjg2NCwxMSBAQCAoY2xhc3MgKG1hdGNoOnN1ZmZpeCAocmVnZXhwLWV4
ZWMgcnggY2xhc3MpKSkpCiAgICAgICAgICAgICAgICAgICAgICAgKGZvbnQtbmF0aXZlLW9iaiAi
bW9kdWxlcy9ncmFwaGljcy9idWlsZC9uYXRpdmUvZm9udC9saW51eCIpCiAgICAgICAgICAgICAg
ICAgICAgICAgKGZvbnQtbmF0aXZlLXNyYyAibW9kdWxlcy9ncmFwaGljcy9zcmMvbWFpbi9uYXRp
dmUtZm9udCIpCiAgICAgICAgICAgICAgICAgICAgICAgOzsKKyAgICAgICAgICAgICAgICAgICAg
ICAoamRrIChhc3NvYy1yZWYgaW5wdXRzICJqZGsiKSkKKyAgICAgICAgICAgICAgICAgICAgICAo
Y2MtZmxhZ3MKKyAgICAgICAgICAgICAgICAgICAgICAgYCgsQGNvbW1vbi1mbGFncyAiLWMiICIt
ZmZ1bmN0aW9uLXNlY3Rpb25zIiAiLWZkYXRhLXNlY3Rpb25zIgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICItSSIgLChzdHJpbmctYXBwZW5kIGpkayAiL2luY2x1ZGUi
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItSSIgLChzdHJpbmct
YXBwZW5kIGpkayAiL2luY2x1ZGUvbGludXgiKSkpCiAgICAgICAgICAgICAgICAgICAgICAgKGZv
bnQtY2MtZmxhZ3MgYCgiLURKRlhGT05UX1BMVVMiICxAY2MtZmxhZ3MpKSkKICAgICAgICAgICAg
ICAgICAgKG1rZGlyLXAgZm9udC1nZW4taGVhZGVycykKICAgICAgICAgICAgICAgICAgKGFwcGx5
IGludm9rZSAiamF2YWgiCkBAIC0yODk4LDYgKzI5MDMsMTEgQEAgKGNsYXNzIChtYXRjaDpzdWZm
aXggKHJlZ2V4cC1leGVjIHJ4IGNsYXNzKSkpKQogICAgICAgICAgICAgICAgICAgICAgIChmb250
LWZyZWV0eXBlLW5hdGl2ZS1saWIgIm1vZHVsZXMvZ3JhcGhpY3MvYnVpbGQvbGlicy9mb250RnJl
ZXR5cGUvbGludXgvbGliamF2YWZ4X2ZvbnRfZnJlZXR5cGUuc28iKQogICAgICAgICAgICAgICAg
ICAgICAgIChmb250LWZyZWV0eXBlLW5hdGl2ZS1vYmogIm1vZHVsZXMvZ3JhcGhpY3MvYnVpbGQv
bmF0aXZlL2ZvbnRGcmVldHlwZS9saW51eCIpCiAgICAgICAgICAgICAgICAgICAgICAgKGZvbnQt
ZnJlZXR5cGUtbmF0aXZlLXNyYyAibW9kdWxlcy9ncmFwaGljcy9zcmMvbWFpbi9uYXRpdmUtZm9u
dC9mcmVldHlwZS5jIikKKyAgICAgICAgICAgICAgICAgICAgICAoamRrIChhc3NvYy1yZWYgaW5w
dXRzICJqZGsiKSkKKyAgICAgICAgICAgICAgICAgICAgICAoY2MtZmxhZ3MKKyAgICAgICAgICAg
ICAgICAgICAgICAgYCgsQGNvbW1vbi1mbGFncyAiLWMiICItZmZ1bmN0aW9uLXNlY3Rpb25zIiAi
LWZkYXRhLXNlY3Rpb25zIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICItSSIgLChzdHJpbmctYXBwZW5kIGpkayAiL2luY2x1ZGUiKQorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICItSSIgLChzdHJpbmctYXBwZW5kIGpkayAiL2luY2x1ZGUv
bGludXgiKSkpCiAgICAgICAgICAgICAgICAgICAgICAgKGZvbnQtZnJlZXR5cGUtY2MtZmxhZ3Mg
YCgiLURKRlhGT05UX1BMVVMiICItRF9FTkFCTEVfUEFOR08iCiAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiJChwa2ctY29uZmlnIC0tY2ZsYWdzIGZyZWV0
eXBlMikiICxAY2MtZmxhZ3MpKQogICAgICAgICAgICAgICAgICAgICAgIChmb250LWZyZWV0eXBl
LWxpbmstZmxhZ3MgYCgiJChwa2ctY29uZmlnIC0tbGlicyBmcmVldHlwZTIpIiAsQGxpbmstZmxh
Z3MpKSkKQEAgLTI5MzIsNiArMjk0MiwxMSBAQCAoY2xhc3MgKG1hdGNoOnN1ZmZpeCAocmVnZXhw
LWV4ZWMgcnggY2xhc3MpKSkpCiAgICAgICAgICAgICAgICAgICAgICAgKGZvbnQtcGFuZ28tbmF0
aXZlLWxpYiAibW9kdWxlcy9ncmFwaGljcy9idWlsZC9saWJzL2ZvbnRQYW5nby9saW51eC9saWJq
YXZhZnhfZm9udF9wYW5nby5zbyIpCiAgICAgICAgICAgICAgICAgICAgICAgKGZvbnQtcGFuZ28t
bmF0aXZlLW9iaiAibW9kdWxlcy9ncmFwaGljcy9idWlsZC9uYXRpdmUvZm9udFBhbmdvL2xpbnV4
IikKICAgICAgICAgICAgICAgICAgICAgICAoZm9udC1wYW5nby1uYXRpdmUtc3JjICJtb2R1bGVz
L2dyYXBoaWNzL3NyYy9tYWluL25hdGl2ZS1mb250L3BhbmdvLmMiKQorICAgICAgICAgICAgICAg
ICAgICAgIChqZGsgKGFzc29jLXJlZiBpbnB1dHMgImpkayIpKQorICAgICAgICAgICAgICAgICAg
ICAgIChjYy1mbGFncworICAgICAgICAgICAgICAgICAgICAgICBgKCxAY29tbW9uLWZsYWdzICIt
YyIgIi1mZnVuY3Rpb24tc2VjdGlvbnMiICItZmRhdGEtc2VjdGlvbnMiCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1JIiAsKHN0cmluZy1hcHBlbmQgamRrICIvaW5j
bHVkZSIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1JIiAsKHN0
cmluZy1hcHBlbmQgamRrICIvaW5jbHVkZS9saW51eCIpKSkKICAgICAgICAgICAgICAgICAgICAg
ICAoZm9udC1wYW5nby1jYy1mbGFncyBgKCItREpGWEZPTlRfUExVUyIgIi1EX0VOQUJMRV9QQU5H
TyIKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIkKHBrZy1j
b25maWcgLS1jZmxhZ3MgcGFuZ29mdDIpIiAsQGNjLWZsYWdzKSkKICAgICAgICAgICAgICAgICAg
ICAgICAoZm9udC1wYW5nby1saW5rLWZsYWdzIGAoIiQocGtnLWNvbmZpZyAtLWxpYnMgcGFuZ29m
dDIpIiAsQGxpbmstZmxhZ3MpKSkKQEAgLTI5NjcsMTAgKzI5ODIsMTcgQEAgKGNsYXNzIChtYXRj
aDpzdWZmaXggKHJlZ2V4cC1leGVjIHJ4IGNsYXNzKSkpKQogICAgICAgICAgICAgICAgICAgICAg
IChnbGFzcy1uYXRpdmUtbGliICJtb2R1bGVzL2dyYXBoaWNzL2J1aWxkL2xpYnMvZ2xhc3MvbGlu
dXgvbGliZ2xhc3Muc28iKQogICAgICAgICAgICAgICAgICAgICAgIChnbGFzcy1uYXRpdmUtb2Jq
ICJtb2R1bGVzL2dyYXBoaWNzL2J1aWxkL25hdGl2ZS9nbGFzcy9saW51eC9nbGFzcyIpCiAgICAg
ICAgICAgICAgICAgICAgICAgKGdsYXNzLW5hdGl2ZS1zcmMgIm1vZHVsZXMvZ3JhcGhpY3Mvc3Jj
L21haW4vbmF0aXZlLWdsYXNzL2d0ay9sYXVuY2hlci5jIikKKyAgICAgICAgICAgICAgICAgICAg
ICAoamRrIChhc3NvYy1yZWYgaW5wdXRzICJqZGsiKSkKKyAgICAgICAgICAgICAgICAgICAgICAo
Y2MtZmxhZ3MKKyAgICAgICAgICAgICAgICAgICAgICAgYCgsQGNvbW1vbi1mbGFncyAiLWMiICIt
ZmZ1bmN0aW9uLXNlY3Rpb25zIiAiLWZkYXRhLXNlY3Rpb25zIgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICItSSIgLChzdHJpbmctYXBwZW5kIGpkayAiL2luY2x1ZGUi
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItSSIgLChzdHJpbmct
YXBwZW5kIGpkayAiL2luY2x1ZGUvbGludXgiKSkpCiAgICAgICAgICAgICAgICAgICAgICAgKGds
YXNzLWNjLWZsYWdzCiAgICAgICAgICAgICAgICAgICAgICAgIGAoLEBjYy1mbGFncwogICAgICAg
ICAgICAgICAgICAgICAgICAgICIkKHBrZy1jb25maWcgLS1jZmxhZ3MgZ2xpYi0yLjAgZ2RrLTIu
MCBndGsrLTIuMCBndGhyZWFkLTIuMCB4dHN0KSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAi
LVdlcnJvciIpKQorICAgICAgICAgICAgICAgICAgICAgICAgICItV2Vycm9yIgorICAgICAgICAg
ICAgICAgICAgICAgICAgICItV25vLWNhc3QtZnVuY3Rpb24tdHlwZSIKKyAgICAgICAgICAgICAg
ICAgICAgICAgICApKQogICAgICAgICAgICAgICAgICAgICAgIChnbGFzcy1saW5rLWZsYWdzCiAg
ICAgICAgICAgICAgICAgICAgICAgIGAoLEBsaW5rLWZsYWdzICIkKHBrZy1jb25maWcgLS1saWJz
IHgxMSkiICItbGRsIikpCiAgICAgICAgICAgICAgICAgICAgICAgOzsgZ2xhc3MtZ3RrMgpAQCAt
Mjk4NSw3ICszMDA3LDkgQEAgKGNsYXNzIChtYXRjaDpzdWZmaXggKHJlZ2V4cC1leGVjIHJ4IGNs
YXNzKSkpKQogICAgICAgICAgICAgICAgICAgICAgICAgIDs7IHZlcnNpb24gMi42Mi4gR1RpbWVW
YWwgcyBub3QgeWVhci0yMDM4LXNhZmUuIEd0awogICAgICAgICAgICAgICAgICAgICAgICAgIDs7
IDIuMjQgdXNlcyBHVGltZVZhbCBzbyBvdXIgYnVpbGQgaXMgYWxzbyBmYWlsaW5nLgogICAgICAg
ICAgICAgICAgICAgICAgICAgICItV25vLWRlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIgotICAgICAg
ICAgICAgICAgICAgICAgICAgICItV2Vycm9yIikpCisgICAgICAgICAgICAgICAgICAgICAgICAg
Ii1XZXJyb3IiCisgICAgICAgICAgICAgICAgICAgICAgICAgIi1Xbm8tY2FzdC1mdW5jdGlvbi10
eXBlIgorICAgICAgICAgICAgICAgICAgICAgICAgICkpCiAgICAgICAgICAgICAgICAgICAgICAg
KGdsYXNzLWd0azItbGluay1mbGFncwogICAgICAgICAgICAgICAgICAgICAgICBgKCxAbGluay1m
bGFncwogICAgICAgICAgICAgICAgICAgICAgICAgICIkKHBrZy1jb25maWcgLS1saWJzIGd0ayst
Mi4wIGd0aHJlYWQtMi4wIHh0c3QpIikpCkBAIC0yOTk3LDcgKzMwMjEsOSBAQCAoY2xhc3MgKG1h
dGNoOnN1ZmZpeCAocmVnZXhwLWV4ZWMgcnggY2xhc3MpKSkpCiAgICAgICAgICAgICAgICAgICAg
ICAgKGdsYXNzLWd0azMtY2MtZmxhZ3MKICAgICAgICAgICAgICAgICAgICAgICAgYCgsQGNjLWZs
YWdzCiAgICAgICAgICAgICAgICAgICAgICAgICAgIiQocGtnLWNvbmZpZyAtLWNmbGFncyBndGsr
LTMuMCBndGhyZWFkLTIuMCB4dHN0KSIKLSAgICAgICAgICAgICAgICAgICAgICAgICAiLVduby1k
ZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIgIi1XZXJyb3IiKSkKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAiLVduby1kZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIgIi1XZXJyb3IiCisgICAgICAgICAg
ICAgICAgICAgICAgICAgIi1Xbm8tY2FzdC1mdW5jdGlvbi10eXBlIgorICAgICAgICAgICAgICAg
ICAgICAgICAgICkpCiAgICAgICAgICAgICAgICAgICAgICAgKGdsYXNzLWd0azMtbGluay1mbGFn
cwogICAgICAgICAgICAgICAgICAgICAgICBgKCxAbGluay1mbGFncyAiJChwa2ctY29uZmlnIC0t
bGlicyBndGsrLTMuMCBndGhyZWFkLTIuMCB4dHN0KSIpKSkKICAgICAgICAgICAgICAgICAgOzsg
Z2xhc3MKQEAgLTMwNjksNiArMzA5NSwxMSBAQCAoY2xhc3MgKG1hdGNoOnN1ZmZpeCAocmVnZXhw
LWV4ZWMgcnggY2xhc3MpKSkpCiAgICAgICAgICAgICAgICAgICAgICAgKGlpby1uYXRpdmUtbGli
ICJtb2R1bGVzL2dyYXBoaWNzL2J1aWxkL2xpYnMvaWlvL2xpbnV4L2xpYmphdmFmeF9paW8uc28i
KQogICAgICAgICAgICAgICAgICAgICAgIChpaW8tbmF0aXZlLW9iaiAibW9kdWxlcy9ncmFwaGlj
cy9idWlsZC9uYXRpdmUvaWlvL2xpbnV4IikKICAgICAgICAgICAgICAgICAgICAgICAoaWlvLW5h
dGl2ZS1zcmMgIm1vZHVsZXMvZ3JhcGhpY3Mvc3JjL21haW4vbmF0aXZlLWlpbyIpCisgICAgICAg
ICAgICAgICAgICAgICAgKGpkayAoYXNzb2MtcmVmIGlucHV0cyAiamRrIikpCisgICAgICAgICAg
ICAgICAgICAgICAgKGNjLWZsYWdzCisgICAgICAgICAgICAgICAgICAgICAgIGAoLEBjb21tb24t
ZmxhZ3MgIi1jIiAiLWZmdW5jdGlvbi1zZWN0aW9ucyIgIi1mZGF0YS1zZWN0aW9ucyIKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLUkiICwoc3RyaW5nLWFwcGVuZCBq
ZGsgIi9pbmNsdWRlIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
LUkiICwoc3RyaW5nLWFwcGVuZCBqZGsgIi9pbmNsdWRlL2xpbnV4IikpKQogICAgICAgICAgICAg
ICAgICAgICAgIChpaW8tY2MtZmxhZ3MgY2MtZmxhZ3MpCiAgICAgICAgICAgICAgICAgICAgICAg
KGlpby1saW5rLWZsYWdzIGxpbmstZmxhZ3MpKQogICAgICAgICAgICAgICAgICAobWtkaXItcCBp
aW8tZ2VuLWhlYWRlcnMpCkBAIC0zMTAzLDYgKzMxMzQsMTEgQEAgKGNsYXNzIChtYXRjaDpzdWZm
aXggKHJlZ2V4cC1leGVjIHJ4IGNsYXNzKSkpKQogICAgICAgICAgICAgICAgICAgICAgIChwcmlz
bS1uYXRpdmUtbGliICJtb2R1bGVzL2dyYXBoaWNzL2J1aWxkL2xpYnMvcHJpc20vbGludXgvbGli
cHJpc21fY29tbW9uLnNvIikKICAgICAgICAgICAgICAgICAgICAgICAocHJpc20tbmF0aXZlLW9i
aiAibW9kdWxlcy9ncmFwaGljcy9idWlsZC9uYXRpdmUvcHJpc20vbGludXgiKQogICAgICAgICAg
ICAgICAgICAgICAgIChwcmlzbS1uYXRpdmUtc3JjICJtb2R1bGVzL2dyYXBoaWNzL3NyYy9tYWlu
L25hdGl2ZS1wcmlzbSIpCisgICAgICAgICAgICAgICAgICAgICAgKGpkayAoYXNzb2MtcmVmIGlu
cHV0cyAiamRrIikpCisgICAgICAgICAgICAgICAgICAgICAgKGNjLWZsYWdzCisgICAgICAgICAg
ICAgICAgICAgICAgIGAoLEBjb21tb24tZmxhZ3MgIi1jIiAiLWZmdW5jdGlvbi1zZWN0aW9ucyIg
Ii1mZGF0YS1zZWN0aW9ucyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiLUkiICwoc3RyaW5nLWFwcGVuZCBqZGsgIi9pbmNsdWRlIikKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiLUkiICwoc3RyaW5nLWFwcGVuZCBqZGsgIi9pbmNsdWRl
L2xpbnV4IikpKQogICAgICAgICAgICAgICAgICAgICAgIChwcmlzbS1jYy1mbGFncyBgKCxAY2Mt
ZmxhZ3MgIi1ESU5MSU5FPWlubGluZSIpKQogICAgICAgICAgICAgICAgICAgICAgIChwcmlzbS1s
aW5rLWZsYWdzIGxpbmstZmxhZ3MpKQogICAgICAgICAgICAgICAgICAobWtkaXItcCBwcmlzbS1n
ZW4taGVhZGVycykKQEAgLTMxNDAsNiArMzE3NiwxMSBAQCAoY2xhc3MgKG1hdGNoOnN1ZmZpeCAo
cmVnZXhwLWV4ZWMgcnggY2xhc3MpKSkpCiAgICAgICAgICAgICAgICAgICAgICAgKHByaXNtLWVz
Mi1uYXRpdmUtbGliICJtb2R1bGVzL2dyYXBoaWNzL2J1aWxkL2xpYnMvcHJpc20vbGludXgvbGli
cHJpc21fZXMyLnNvIikKICAgICAgICAgICAgICAgICAgICAgICAocHJpc20tZXMyLW5hdGl2ZS1v
YmogIm1vZHVsZXMvZ3JhcGhpY3MvYnVpbGQvbmF0aXZlL3ByaXNtRVMyL2xpbnV4IikKICAgICAg
ICAgICAgICAgICAgICAgICAocHJpc20tZXMyLW5hdGl2ZS1zcmMgIm1vZHVsZXMvZ3JhcGhpY3Mv
c3JjL21haW4vbmF0aXZlLXByaXNtLWVzMiIpCisgICAgICAgICAgICAgICAgICAgICAgKGpkayAo
YXNzb2MtcmVmIGlucHV0cyAiamRrIikpCisgICAgICAgICAgICAgICAgICAgICAgKGNjLWZsYWdz
CisgICAgICAgICAgICAgICAgICAgICAgIGAoLEBjb21tb24tZmxhZ3MgIi1jIiAiLWZmdW5jdGlv
bi1zZWN0aW9ucyIgIi1mZGF0YS1zZWN0aW9ucyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiLUkiICwoc3RyaW5nLWFwcGVuZCBqZGsgIi9pbmNsdWRlIikKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLUkiICwoc3RyaW5nLWFwcGVuZCBq
ZGsgIi9pbmNsdWRlL2xpbnV4IikpKQogICAgICAgICAgICAgICAgICAgICAgIChwcmlzbS1lczIt
Y2MtZmxhZ3MgYCgiLURMSU5VWCIgLEBjYy1mbGFncykpCiAgICAgICAgICAgICAgICAgICAgICAg
KHByaXNtLWVzMi1saW5rLWZsYWdzCiAgICAgICAgICAgICAgICAgICAgICAgIGAoLEBsaW5rLWZs
YWdzICIkKHBrZy1jb25maWcgLS1saWJzIHgxMSB4eGY4NnZtIGdsKSIpKQpAQCAtMzE4NCw2ICsz
MjI1LDExIEBAIChjbGFzcyAobWF0Y2g6c3VmZml4IChyZWdleHAtZXhlYyByeCBjbGFzcykpKSkK
ICAgICAgICAgICAgICAgICAgICAgICAocHJpc20tc3ctbmF0aXZlLWxpYiAibW9kdWxlcy9ncmFw
aGljcy9idWlsZC9saWJzL3ByaXNtL2xpbnV4L2xpYnByaXNtX3N3LnNvIikKICAgICAgICAgICAg
ICAgICAgICAgICAocHJpc20tc3ctbmF0aXZlLW9iaiAibW9kdWxlcy9ncmFwaGljcy9idWlsZC9u
YXRpdmUvcHJpc21TVy9saW51eCIpCiAgICAgICAgICAgICAgICAgICAgICAgKHByaXNtLXN3LW5h
dGl2ZS1zcmMgIm1vZHVsZXMvZ3JhcGhpY3Mvc3JjL21haW4vbmF0aXZlLXByaXNtLXN3IikKKyAg
ICAgICAgICAgICAgICAgICAgICAoamRrIChhc3NvYy1yZWYgaW5wdXRzICJqZGsiKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAoY2MtZmxhZ3MKKyAgICAgICAgICAgICAgICAgICAgICAgYCgsQGNv
bW1vbi1mbGFncyAiLWMiICItZmZ1bmN0aW9uLXNlY3Rpb25zIiAiLWZkYXRhLXNlY3Rpb25zIgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItSSIgLChzdHJpbmctYXBw
ZW5kIGpkayAiL2luY2x1ZGUiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICItSSIgLChzdHJpbmctYXBwZW5kIGpkayAiL2luY2x1ZGUvbGludXgiKSkpCiAgICAgICAg
ICAgICAgICAgICAgICAgOzsKICAgICAgICAgICAgICAgICAgICAgICAocHJpc20tc3ctY2MtZmxh
Z3MgYCgsQGNjLWZsYWdzICItRElOTElORT1pbmxpbmUiKSkKICAgICAgICAgICAgICAgICAgICAg
ICAocHJpc20tc3ctbGluay1mbGFncyBsaW5rLWZsYWdzKSkKQEAgLTM0MTgsMTYgKzM0NjQsMjAg
QEAgKGRlZmluZS1wdWJsaWMgamF2YS1vcGVuamZ4LXdlYgogICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICJcIi1XbCwtcnBhdGg9IiBsaWIgIlwiIikKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLWFwcGVuZCAiLURDTUFLRV9TWVNURU1f
UFJPQ0VTU09SPSIgbWFjaGluZSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLURK
QVZBRlhfUkVMRUFTRV9WRVJTSU9OPTguMCIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiLVciCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1XYWxsIgotICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICItV2Vycm9yPWltcGxpY2l0LWZ1bmN0aW9uLWRlY2xhcmF0
aW9uIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItV2wsLS1nYy1zZWN0aW9ucyIK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLVduby1wYXJlbnRoZXNlcyIKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiLVduby11bnVzZWQiCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIi1mUElDIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIt
Zm5vLW9taXQtZnJhbWUtcG9pbnRlciIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
LWZuby1zdHJpY3QtYWxpYXNpbmciCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1m
c3RhY2stcHJvdGVjdG9yIikpKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1E
Q01BS0VfQ1hYX0ZMQUdTPVwiIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJp
bmctam9pbiAobGlzdCAiLVciCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICItRFVfREVGSU5FX0ZBTFNFX0FORF9UUlVFPTEiCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItV2FsbCIKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1XZXJyb3I9aW1wbGljaXQt
ZnVuY3Rpb24tZGVjbGFyYXRpb24iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICItV2wsLS1nYy1zZWN0aW9ucyIKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1Xbm8tcGFyZW50aGVzZXMiCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItV25vLXVudXNlZCIK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1mUElD
IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLWZu
by1vbWl0LWZyYW1lLXBvaW50ZXIiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICItZm5vLXN0cmljdC1hbGlhc2luZyIKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1mc3RhY2stcHJvdGVjdG9yIikKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAiKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJcIiIpKSkpKQogICAgICAgICAgICAgICN0KSkKIAogICAg
ICAgICAgKGFkZC1hZnRlciAnY29tcGlsZS1uYXRpdmUtbGludXggJ2luc3RhbGwtbmF0aXZlCi0t
IAoyLjM0LjAKCg==
--000000000000a2c70305e1d1f7a3
Content-Type: application/octet-stream; 
	name="0003-Finalize-openjfx-libraries.patch"
Content-Disposition: attachment; 
	filename="0003-Finalize-openjfx-libraries.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_l4lotpho2>
X-Attachment-Id: f_l4lotpho2

RnJvbSAwYjZjNzU2ZmM0NGZjZGEzMDNjZjEyNjhhOWVmYTY0ZjkzNjcyNGFkIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBJb2FubmlzIEthcHBhcyA8aW9hbm5pcy5rYXBwYXNAZ21hbWls
LmNvbT4KRGF0ZTogU3VuLCAxOSBKdW4gMjAyMiAwOTo0NDoyNiArMDEwMApTdWJqZWN0OiBbUEFU
Q0ggdjUgMy8zXSBGaW5hbGl6ZSBvcGVuamZ4IGxpYnJhcmllcwoKKiBqYXZhLW9wZW5qZngtZ3Jh
cGhpY3MKICAxLiBOb3JtYWxpemUgaW5wdXRzLCBvbmx5IGJ1aWxkIGFnYWluc3QgZ3RrLTIuMC4K
ICAyLiBPdXRwdXQgbmF0aXZlIGxpYnMgdG8gb3BlbmpmeCBzdGFuZGFyZCBzaGFyZS9hbWQ2NCBk
aXIuCiAgMy4gRG8gbm90IGJ1aWxkIGxpYmpwZWcgZnJvbSBzb3VyY2UsIGJ1dCByYXRoZXIgdXNl
IGNvcnJlc3BvbmRpbmcKICAgICBwYWNrYWdlLgogIDQuIFJ1biBhbGwgdGVzdHMuCiogamF2YS1v
cGVuamZ4LWNvbnRyb2xzCiAgMS4gUnVuIGFsbCB0ZXN0cy4KICAyLiBGaXggamF2YS1vcGVuamZ4
LWdyYXBoaWNzIG5hbWUgdHlwby4KKiBqYXZhLW9wZW5qZngtbWVkaWEKICAxLiBCdWlsZCBhZ2Fp
bnN0IGdzdHJlYW1lci4KICAyLiBDb21waWxlIG5hdGl2ZSBsaWJyYXJ5IGFuZCBtb2RpZnkgbG9h
ZGVyIHRvIGxvYWQgaXQgZGlyZWN0bHkgZnJvbQogICAgIHRoZSBzdG9yZSBwYXRoLgoqIGphdmEt
b3BlbmpmeC13ZWIKICAxLiBJbmNsdWRlIHZlcnNpb24uCiAgMi4gTW9kaWZ5IGxvYWRlciB0byBs
b2FkIG5hdGl2ZSB3ZWIga2l0IGxpYiBkaXJlY3RseSBmcm9tIHRoZSBzdG9yZS4KICAzLiBGaXgg
YSBmYWlsaW5nIHRlc3QsIGJ5IGFwcGx5aW5nIG5ldwogICAgIGphdmEtb3BlbmpmeC1idWlsZC13
ZWItanMtdGVzdC5wYXRjaCBhcyBwaWNrZWQgdXAgZnJvbSBhIGxhdGVyCiAgICAgb3BlbmpmeCBy
ZXZpc2lvbiBzb3VyY2UgY29kZSByZXZpc2lvbiwgdG8gZml4IGEgZmFpbGluZyB0ZXN0LgogIDQu
IFJ1biBhbGwgdGVzdHMuCiogamF2YS1zd3QKICAxLiBNb2RpZnkgbG9hZGVyIHRvIGxvYWQgbmF0
aXZlIGxpYnJhcnkgZGlyZWN0bHkgZnJvbSB0aGUgZ251L3N0b3JlCiAgICAgcGF0aCBpZiBpdCBj
YW4ndCBiZSBmb3VuZCBvdGhlcndpc2UuIFRoaXMgaXMgcmVxdWlyZWQgZm9yCiAgICAgc2VhbWxl
c3NseSBsb2FkaW5nIGphdmEtc3d0IGFzIGFuIGlucHV0LgotLS0KIGdudS9sb2NhbC5tayAgICAg
ICAgICB8ICAgMSArCiBnbnUvcGFja2FnZXMvamF2YS5zY20gfCA0ODIgKysrKysrKysrKysrKysr
KysrKysrKysrKysrKysrKysrKy0tLS0tLS0tCiAyIGZpbGVzIGNoYW5nZWQsIDM5OSBpbnNlcnRp
b25zKCspLCA4NCBkZWxldGlvbnMoLSkKCmRpZmYgLS1naXQgYS9nbnUvbG9jYWwubWsgYi9nbnUv
bG9jYWwubWsKaW5kZXggOWI5ODJjNDJkYi4uMjljM2Y3NTBhYSAxMDA2NDQKLS0tIGEvZ251L2xv
Y2FsLm1rCisrKyBiL2dudS9sb2NhbC5tawpAQCAtMTMyNyw2ICsxMzI3LDcgQEAgZGlzdF9wYXRj
aF9EQVRBID0JCQkJCQlcCiAgICVEJS9wYWNrYWdlcy9wYXRjaGVzL2phdmEtb3BlbmpmeC1idWls
ZC13ZWItV1RGLnBhdGNoCQkJXAogICAlRCUvcGFja2FnZXMvcGF0Y2hlcy9qYXZhLW9wZW5qZngt
YnVpbGQtd2ViLVdlYktpdENvbXBpbGVyRmxhZ3MuY21ha2UucGF0Y2gJXAogICAlRCUvcGFja2Fn
ZXMvcGF0Y2hlcy9qYXZhLW9wZW5qZngtYnVpbGQtd2ViLWljdS5wYXRjaAkJCVwKKyAgJUQlL3Bh
Y2thZ2VzL3BhdGNoZXMvamF2YS1vcGVuamZ4LWJ1aWxkLXdlYi1qcy10ZXN0LnBhdGNoICAgICBc
CiAgICVEJS9wYWNrYWdlcy9wYXRjaGVzL2phdmEtcG93ZXJtb2NrLWZpeC1qYXZhLWZpbGVzLnBh
dGNoCQlcCiAgICVEJS9wYWNrYWdlcy9wYXRjaGVzL2phdmEtc2ltcGxlLXhtbC1maXgtdGVzdHMu
cGF0Y2gJCVwKICAgJUQlL3BhY2thZ2VzL3BhdGNoZXMvamF2YS1zdmctc2FsYW1hbmRlci1GaXgt
bm9uLWRldC5wYXRjaAlcCmRpZmYgLS1naXQgYS9nbnUvcGFja2FnZXMvamF2YS5zY20gYi9nbnUv
cGFja2FnZXMvamF2YS5zY20KaW5kZXggOGFjNTAxMjUyYy4uNTk0MGRmMDE4YiAxMDA2NDQKLS0t
IGEvZ251L3BhY2thZ2VzL2phdmEuc2NtCisrKyBiL2dudS9wYWNrYWdlcy9qYXZhLnNjbQpAQCAt
NzIsNiArNzIsNyBAQCAoZGVmaW5lLW1vZHVsZSAoZ251IHBhY2thZ2VzIGphdmEpCiAgICM6dXNl
LW1vZHVsZSAoZ251IHBhY2thZ2VzIGdob3N0c2NyaXB0KSA7bGNtcwogICAjOnVzZS1tb2R1bGUg
KGdudSBwYWNrYWdlcyBnbm9tZSkKICAgIzp1c2UtbW9kdWxlIChnbnUgcGFja2FnZXMgZ3Jvb3Z5
KQorICAjOnVzZS1tb2R1bGUgKGdudSBwYWNrYWdlcyBnc3RyZWFtZXIpCiAgICM6dXNlLW1vZHVs
ZSAoZ251IHBhY2thZ2VzIGd0aykKICAgIzp1c2UtbW9kdWxlIChnbnUgcGFja2FnZXMgZ3VpbGUp
CiAgICM6dXNlLW1vZHVsZSAoZ251IHBhY2thZ2VzIGljdTRjKQpAQCAtMjUyNyw2ICsyNTI4LDcg
QEAgKGRlZmluZS1wdWJsaWMgamF2YS1vcGVuamZ4LWJ1aWxkCiAgICAgICAgICAgICAgICAgICA7
OyBEZWxldGUgc291cmNlIGNvZGUgb2YgYSBUaGlyZFBhcnR5IGxpYnJhcmllcwogICAgICAgICAg
ICAgICAgICAgKGRlbGV0ZS1maWxlLXJlY3Vyc2l2ZWx5ICJtb2R1bGVzL3dlYi9zcmMvbWFpbi9u
YXRpdmUvU291cmNlL1RoaXJkUGFydHkiKQogICAgICAgICAgICAgICAgICAgKGRlbGV0ZS1maWxl
LXJlY3Vyc2l2ZWx5ICJtb2R1bGVzL3dlYi9zcmMvbWFpbi9uYXRpdmUvU291cmNlL1BsYXRmb3Jt
SmF2YS5jbWFrZSIpCisgICAgICAgICAgICAgICAgICAoZGVsZXRlLWZpbGUtcmVjdXJzaXZlbHkg
Im1vZHVsZXMvZ3JhcGhpY3Mvc3JjL21haW4vbmF0aXZlLWlpby9saWJqcGVnIikKICAgICAgICAg
ICAgICAgICAgICN0KSkKICAgICAgICAgICAgICAgKHNoYTI1NgogICAgICAgICAgICAgICAgKGJh
c2UzMgpAQCAtMjUzOSw3ICsyNTQxLDcgQEAgKGRlZmluZS1wdWJsaWMgamF2YS1vcGVuamZ4LWJ1
aWxkCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiamF2YS1vcGVuamZ4
LWJ1aWxkLXdlYi1XVEYucGF0Y2giCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiamF2YS1vcGVuamZ4LWJ1aWxkLXdlYi1XZWJLaXRDb21waWxlckZsYWdzLmNtYWtlLnBh
dGNoIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImphdmEtb3Blbmpm
eC1idWlsZC13ZWItaWN1LnBhdGNoIgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImphdmEt
b3BlbmpmeC1idWlsZC13ZWItanMtdGVzdC5wYXRjaCIpKSkpCiAgICAgKGJ1aWxkLXN5c3RlbSBh
bnQtYnVpbGQtc3lzdGVtKQogICAgIChhcmd1bWVudHMKICAgICAgYCgjOmphci1uYW1lICJqYXZh
LW9wZW5qZnguamFyIgpAQCAtMjYxMSw3ICsyNjEzLDYgQEAgKGRlZmluZS1wdWJsaWMgamF2YS1v
cGVuamZ4LWdyYXBoaWNzCiAgICAgKGFyZ3VtZW50cwogICAgICBgKCM6amFyLW5hbWUgImphdmEt
b3BlbmpmeC1ncmFwaGljcy5qYXIiCiAgICAgICAgIzpzb3VyY2UtZGlyICJtb2R1bGVzL2dyYXBo
aWNzL3NyYy9tYWluL2phdmEiCi0gICAgICAgIzp0ZXN0cz8gI2YgICAgICAgICAgICAgICA7IHJl
cXVpcmVzIFgKICAgICAgICAjOnRlc3QtZGlyICJtb2R1bGVzL2dyYXBoaWNzL3NyYy90ZXN0Igog
ICAgICAgICM6dGVzdC1pbmNsdWRlIChsaXN0ICIqKi8qVGVzdC4qIikKICAgICAgICAjOm1vZHVs
ZXMgKChndWl4IGJ1aWxkIGFudC1idWlsZC1zeXN0ZW0pCkBAIC0yOTc1LDEzICsyOTc2LDE1IEBA
IChjbGFzcyAobWF0Y2g6c3VmZml4IChyZWdleHAtZXhlYyByeCBjbGFzcykpKSkKICAgICAgICAg
ICAgICAgICN0KSkKIAogICAgICAgICAgICAoYWRkLWFmdGVyICdjb21waWxlLWxpbnV4LWZvbnQt
cGFuZ28tbGliICdjb21waWxlLWxpbnV4LWdsYXNzLWxpYgotICAgICAgICAgICAgIChsYW1iZGEq
ICgjOmtleSBpbnB1dHMgIzphbGxvdy1vdGhlci1rZXlzKQorICAgICAgICAgICAgIChsYW1iZGEq
ICgjOmtleSBpbnB1dHMgb3V0cHV0cyAjOmFsbG93LW90aGVyLWtleXMpCiAgICAgICAgICAgICAg
ICAobGV0KiAoKGNsYXNzZXMgIm1vZHVsZXMvZ3JhcGhpY3MvYnVpbGQvY2xhc3Nlcy9qYXZhL21h
aW4iKQogICAgICAgICAgICAgICAgICAgICAgIDs7IGdsYXNzCiAgICAgICAgICAgICAgICAgICAg
ICAgKGdsYXNzLWdlbi1oZWFkZXJzICJtb2R1bGVzL2dyYXBoaWNzL2J1aWxkL2dlbmVyYXRlZC1z
cmMvaGVhZGVycy9nbGFzcy9saW51eCIpCiAgICAgICAgICAgICAgICAgICAgICAgKGdsYXNzLW5h
dGl2ZS1saWIgIm1vZHVsZXMvZ3JhcGhpY3MvYnVpbGQvbGlicy9nbGFzcy9saW51eC9saWJnbGFz
cy5zbyIpCiAgICAgICAgICAgICAgICAgICAgICAgKGdsYXNzLW5hdGl2ZS1vYmogIm1vZHVsZXMv
Z3JhcGhpY3MvYnVpbGQvbmF0aXZlL2dsYXNzL2xpbnV4L2dsYXNzIikKLSAgICAgICAgICAgICAg
ICAgICAgICAoZ2xhc3MtbmF0aXZlLXNyYyAibW9kdWxlcy9ncmFwaGljcy9zcmMvbWFpbi9uYXRp
dmUtZ2xhc3MvZ3RrL2xhdW5jaGVyLmMiKQorICAgICAgICAgICAgICAgICAgICAgIChnbGFzcy1u
YXRpdmUtc3JjICJtb2R1bGVzL2dyYXBoaWNzL3NyYy9tYWluL25hdGl2ZS1nbGFzcy9ndGsiKQor
ICAgICAgICAgICAgICAgICAgICAgIChnbGFzcy1saWItcGF0aCAoc3RyaW5nLWFwcGVuZCAoYXNz
b2MtcmVmIG91dHB1dHMgIm91dCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICIvc2hhcmUvYW1kNjQiKSkKICAgICAgICAgICAgICAgICAgICAg
ICAoamRrIChhc3NvYy1yZWYgaW5wdXRzICJqZGsiKSkKICAgICAgICAgICAgICAgICAgICAgICAo
Y2MtZmxhZ3MKICAgICAgICAgICAgICAgICAgICAgICAgYCgsQGNvbW1vbi1mbGFncyAiLWMiICIt
ZmZ1bmN0aW9uLXNlY3Rpb25zIiAiLWZkYXRhLXNlY3Rpb25zIgpAQCAtMjk4OSwyMCArMjk5Miwy
MiBAQCAoY2xhc3MgKG1hdGNoOnN1ZmZpeCAocmVnZXhwLWV4ZWMgcnggY2xhc3MpKSkpCiAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1JIiAsKHN0cmluZy1hcHBlbmQg
amRrICIvaW5jbHVkZS9saW51eCIpKSkKICAgICAgICAgICAgICAgICAgICAgICAoZ2xhc3MtY2Mt
ZmxhZ3MKICAgICAgICAgICAgICAgICAgICAgICAgYCgsQGNjLWZsYWdzCi0gICAgICAgICAgICAg
ICAgICAgICAgICAgIiQocGtnLWNvbmZpZyAtLWNmbGFncyBnbGliLTIuMCBnZGstMi4wIGd0ayst
Mi4wIGd0aHJlYWQtMi4wIHh0c3QpIgorICAgICAgICAgICAgICAgICAgICAgICAgICIkKHBrZy1j
b25maWcgLS1jZmxhZ3MgZ2xpYi0yLjAgZ3RrKy0yLjAgeHRzdCkiCisgICAgICAgICAgICAgICAg
ICAgICAgICAgIi1Xbm8tZGVwcmVjYXRlZC1kZWNsYXJhdGlvbnMiCiAgICAgICAgICAgICAgICAg
ICAgICAgICAgIi1XZXJyb3IiCiAgICAgICAgICAgICAgICAgICAgICAgICAgIi1Xbm8tY2FzdC1m
dW5jdGlvbi10eXBlIgogICAgICAgICAgICAgICAgICAgICAgICAgICkpCiAgICAgICAgICAgICAg
ICAgICAgICAgKGdsYXNzLWxpbmstZmxhZ3MKLSAgICAgICAgICAgICAgICAgICAgICAgYCgsQGxp
bmstZmxhZ3MgIiQocGtnLWNvbmZpZyAtLWxpYnMgeDExKSIgIi1sZGwiKSkKKyAgICAgICAgICAg
ICAgICAgICAgICAgYCgsQGxpbmstZmxhZ3MKKyAgICAgICAgICAgICAgICAgICAgICAgICAiJChw
a2ctY29uZmlnIC0tbGlicyB4MTEgZ3RrKy0yLjApIiAiLWxkbCIpKQogICAgICAgICAgICAgICAg
ICAgICAgIDs7IGdsYXNzLWd0azIKICAgICAgICAgICAgICAgICAgICAgICAoZ3RrIChhc3NvYy1y
ZWYgaW5wdXRzICJndGsiKSkKICAgICAgICAgICAgICAgICAgICAgICAoZ2xhc3MtZ3RrMi1uYXRp
dmUtb2JqICJtb2R1bGVzL2dyYXBoaWNzL2J1aWxkL25hdGl2ZS9nbGFzcy9saW51eC9nbGFzc2d0
azIiKQotICAgICAgICAgICAgICAgICAgICAgIChnbGFzcy1ndGsyLW5hdGl2ZS1zcmMgKGRpcm5h
bWUgZ2xhc3MtbmF0aXZlLXNyYykpCisgICAgICAgICAgICAgICAgICAgICAgKGdsYXNzLWd0azIt
bmF0aXZlLXNyYyBnbGFzcy1uYXRpdmUtc3JjKQogICAgICAgICAgICAgICAgICAgICAgIChnbGFz
cy1ndGsyLW5hdGl2ZS1saWIgIm1vZHVsZXMvZ3JhcGhpY3MvYnVpbGQvbGlicy9nbGFzcy9saW51
eC9saWJnbGFzc2d0azIuc28iKQogICAgICAgICAgICAgICAgICAgICAgIChnbGFzcy1ndGsyLWNj
LWZsYWdzCiAgICAgICAgICAgICAgICAgICAgICAgIGAoLEBjYy1mbGFncwotICAgICAgICAgICAg
ICAgICAgICAgICAgICIkKHBrZy1jb25maWcgLS1jZmxhZ3MgZ3RrKy0yLjAgZ3RocmVhZC0yLjAg
eHRzdCkiCisgICAgICAgICAgICAgICAgICAgICAgICAgIiQocGtnLWNvbmZpZyAtLWNmbGFncyBn
dGsrLTIuMCB4dHN0KSIKICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBYWDogR1RpbWVWYWwg
aGFzIGJlZW4gZGVwcmVjYXRlZCBpbiBHTElCIHNpbmNlCiAgICAgICAgICAgICAgICAgICAgICAg
ICAgOzsgdmVyc2lvbiAyLjYyLiBHVGltZVZhbCBzIG5vdCB5ZWFyLTIwMzgtc2FmZS4gR3RrCiAg
ICAgICAgICAgICAgICAgICAgICAgICAgOzsgMi4yNCB1c2VzIEdUaW1lVmFsIHNvIG91ciBidWls
ZCBpcyBhbHNvIGZhaWxpbmcuCkBAIC0zMDExLDIxICszMDE2LDcgQEAgKGNsYXNzIChtYXRjaDpz
dWZmaXggKHJlZ2V4cC1leGVjIHJ4IGNsYXNzKSkpKQogICAgICAgICAgICAgICAgICAgICAgICAg
ICItV25vLWNhc3QtZnVuY3Rpb24tdHlwZSIKICAgICAgICAgICAgICAgICAgICAgICAgICApKQog
ICAgICAgICAgICAgICAgICAgICAgIChnbGFzcy1ndGsyLWxpbmstZmxhZ3MKLSAgICAgICAgICAg
ICAgICAgICAgICAgYCgsQGxpbmstZmxhZ3MKLSAgICAgICAgICAgICAgICAgICAgICAgICAiJChw
a2ctY29uZmlnIC0tbGlicyBndGsrLTIuMCBndGhyZWFkLTIuMCB4dHN0KSIpKQotICAgICAgICAg
ICAgICAgICAgICAgIDs7IGdsYXNzLWd0azMKLSAgICAgICAgICAgICAgICAgICAgICAoZ3RrMyAo
YXNzb2MtcmVmIGlucHV0cyAiZ3RrMyIpKQotICAgICAgICAgICAgICAgICAgICAgIChnbGFzcy1n
dGszLW5hdGl2ZS1vYmogIm1vZHVsZXMvZ3JhcGhpY3MvYnVpbGQvbmF0aXZlL2dsYXNzL2xpbnV4
L2dsYXNzZ3RrMyIpCi0gICAgICAgICAgICAgICAgICAgICAgKGdsYXNzLWd0azMtbmF0aXZlLXNy
YyAoZGlybmFtZSBnbGFzcy1uYXRpdmUtc3JjKSkKLSAgICAgICAgICAgICAgICAgICAgICAoZ2xh
c3MtZ3RrMy1uYXRpdmUtbGliICJtb2R1bGVzL2dyYXBoaWNzL2J1aWxkL2xpYnMvZ2xhc3MvbGlu
dXgvbGliZ2xhc3NndGszLnNvIikKLSAgICAgICAgICAgICAgICAgICAgICAoZ2xhc3MtZ3RrMy1j
Yy1mbGFncwotICAgICAgICAgICAgICAgICAgICAgICBgKCxAY2MtZmxhZ3MKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAiJChwa2ctY29uZmlnIC0tY2ZsYWdzIGd0aystMy4wIGd0aHJlYWQtMi4w
IHh0c3QpIgotICAgICAgICAgICAgICAgICAgICAgICAgICItV25vLWRlcHJlY2F0ZWQtZGVjbGFy
YXRpb25zIiAiLVdlcnJvciIKLSAgICAgICAgICAgICAgICAgICAgICAgICAiLVduby1jYXN0LWZ1
bmN0aW9uLXR5cGUiCi0gICAgICAgICAgICAgICAgICAgICAgICAgKSkKLSAgICAgICAgICAgICAg
ICAgICAgICAoZ2xhc3MtZ3RrMy1saW5rLWZsYWdzCi0gICAgICAgICAgICAgICAgICAgICAgIGAo
LEBsaW5rLWZsYWdzICIkKHBrZy1jb25maWcgLS1saWJzIGd0aystMy4wIGd0aHJlYWQtMi4wIHh0
c3QpIikpKQorICAgICAgICAgICAgICAgICAgICAgICBgKCxAbGluay1mbGFncyAiJChwa2ctY29u
ZmlnIC0tbGlicyBndGsrLTIuMCB4dHN0KSIpKSkKICAgICAgICAgICAgICAgICAgOzsgZ2xhc3MK
ICAgICAgICAgICAgICAgICAgKG1rZGlyLXAgZ2xhc3MtZ2VuLWhlYWRlcnMpCiAgICAgICAgICAg
ICAgICAgIChhcHBseSBpbnZva2UgImphdmFoIgpAQCAtMzAzOCwxNCArMzAyOSwxNiBAQCAoY2xh
c3MgKG1hdGNoOnN1ZmZpeCAocmVnZXhwLWV4ZWMgcnggY2xhc3MpKSkpCiAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cmluZy1wcmVmaXg/ICJjb20uc3Vu
LmdsYXNzLnVpIiBjbGFzcykpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChqYXZhLWxpc3QtY2xhc3NlcyBjbGFzc2VzKSkpKQogICAgICAgICAgICAgICAgICAobWtk
aXItcCBnbGFzcy1uYXRpdmUtb2JqKQotICAgICAgICAgICAgICAgICAoaW52b2tlICJiYXNoIiAi
LWMiCi0gICAgICAgICAgICAgICAgICAgICAgICAgKHN0cmluZy1qb2luIGAoImdjYyIKLSAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsQGdsYXNzLWNjLWZsYWdzCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1JIiAsZ2xhc3MtZ2VuLWhlYWRl
cnMKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLUkiICwoZGlybmFt
ZSBnbGFzcy1uYXRpdmUtc3JjKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICItbyIgLChzdHJpbmctYXBwZW5kIGdsYXNzLW5hdGl2ZS1vYmogIi8iCi0gICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJhc2Vu
YW1lIGdsYXNzLW5hdGl2ZS1zcmMgIi5jIikgIi5vYmoiKQotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICxnbGFzcy1uYXRpdmUtc3JjKSkpCisgICAgICAgICAgICAgICAg
IChmb3ItZWFjaCAobGFtYmRhIChjKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW52
b2tlICJiYXNoIiAiLWMiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0
cmluZy1qb2luIGAoImdjYyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAsQGdsYXNzLWNjLWZsYWdzCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1JIiAsZ2xhc3MtZ2VuLWhlYWRlcnMKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLUkiICxnbGFz
cy1uYXRpdmUtc3JjCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIi1vIiAsKHN0cmluZy1hcHBlbmQgZ2xhc3MtbmF0aXZlLW9iaiAiLyIKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoYmFzZW5hbWUgYyAiLmMiKSAiLm9iaiIpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLGMpKSkpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAoZmluZC1maWxlcyBnbGFzcy1uYXRpdmUtc3JjICJcXC5jJCIpKQogICAgICAg
ICAgICAgICAgICAobWtkaXItcCAoZGlybmFtZSBnbGFzcy1uYXRpdmUtbGliKSkKICAgICAgICAg
ICAgICAgICAgKGludm9rZSAiYmFzaCIgIi1jIgogICAgICAgICAgICAgICAgICAgICAgICAgIChz
dHJpbmctam9pbiBgKCJnKysiCkBAIC0zMDY4LDI0ICszMDYxLDcgQEAgKGNsYXNzIChtYXRjaDpz
dWZmaXggKHJlZ2V4cC1leGVjIHJ4IGNsYXNzKSkpKQogICAgICAgICAgICAgICAgICAgICAgICAg
IChzdHJpbmctam9pbiBgKCJnKysiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgLEBnbGFzcy1ndGsyLWxpbmstZmxhZ3MKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiLW8iICxnbGFzcy1ndGsyLW5hdGl2ZS1saWIKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAsQChmaW5kLWZpbGVzIGdsYXNzLWd0azItbmF0aXZl
LW9iaiAiXFwub2JqJCIpKSkpCi0gICAgICAgICAgICAgICAgIDs7IGd0azMKLSAgICAgICAgICAg
ICAgICAgKG1rZGlyLXAgZ2xhc3MtZ3RrMy1uYXRpdmUtb2JqKQotICAgICAgICAgICAgICAgICAo
Zm9yLWVhY2ggKGxhbWJkYSAoY3BwKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoaW52
b2tlICJiYXNoIiAiLWMiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0
cmluZy1qb2luIGAoImdjYyIKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAsQGdsYXNzLWd0azMtY2MtZmxhZ3MKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLUkiICxnbGFzcy1nZW4taGVhZGVycwot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItbyIg
LChzdHJpbmctYXBwZW5kIGdsYXNzLWd0azMtbmF0aXZlLW9iaiAiLyIKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoYmFzZW5hbWUgY3BwICIuY3BwIikgIi5vYmoiKQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICxjcHApKSkpCi0gICAgICAgICAgICAgICAgICAg
ICAgICAgICAoZmluZC1maWxlcyBnbGFzcy1ndGszLW5hdGl2ZS1zcmMgIlxcLmNwcCQiKSkKLSAg
ICAgICAgICAgICAgICAgKG1rZGlyLXAgKGRpcm5hbWUgZ2xhc3MtZ3RrMy1uYXRpdmUtbGliKSkK
LSAgICAgICAgICAgICAgICAgKGludm9rZSAiYmFzaCIgIi1jIgotICAgICAgICAgICAgICAgICAg
ICAgICAgIChzdHJpbmctam9pbiBgKCJnKysiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgLEBnbGFzcy1ndGszLWxpbmstZmxhZ3MKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiLW8iICxnbGFzcy1ndGszLW5hdGl2ZS1saWIKLSAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsQChmaW5kLWZpbGVzIGdsYXNzLWd0azMt
bmF0aXZlLW9iaiAiXFwub2JqJCIpKSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICxAKGZpbmQtZmlsZXMgZ2xhc3MtZ3RrMi1uYXRpdmUtb2JqICJcXC5vYmokIikp
KSkpCiAgICAgICAgICAgICAgICAjdCkpCiAKICAgICAgICAgICAgKGFkZC1hZnRlciAnY29tcGls
ZS1saW51eC1nbGFzcy1saWIgICdjb21waWxlLWxpbnV4LWlpbwpAQCAtMzEwMSw3ICszMDc3LDcg
QEAgKGNsYXNzIChtYXRjaDpzdWZmaXggKHJlZ2V4cC1leGVjIHJ4IGNsYXNzKSkpKQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItSSIgLChzdHJpbmctYXBwZW5kIGpk
ayAiL2luY2x1ZGUiKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIt
SSIgLChzdHJpbmctYXBwZW5kIGpkayAiL2luY2x1ZGUvbGludXgiKSkpCiAgICAgICAgICAgICAg
ICAgICAgICAgKGlpby1jYy1mbGFncyBjYy1mbGFncykKLSAgICAgICAgICAgICAgICAgICAgICAo
aWlvLWxpbmstZmxhZ3MgbGluay1mbGFncykpCisgICAgICAgICAgICAgICAgICAgICAgKGlpby1s
aW5rLWZsYWdzIGAoLEBsaW5rLWZsYWdzICIkKHBrZy1jb25maWcgLS1saWJzIGxpYmpwZWcpIikp
KQogICAgICAgICAgICAgICAgICAobWtkaXItcCBpaW8tZ2VuLWhlYWRlcnMpCiAgICAgICAgICAg
ICAgICAgIChhcHBseSBpbnZva2UgImphdmFoIgogICAgICAgICAgICAgICAgICAgICAgICAgIi1k
IiBpaW8tZ2VuLWhlYWRlcnMKQEAgLTMxNjAsNyArMzEzNiw3IEBAIChjbGFzcyAobWF0Y2g6c3Vm
Zml4IChyZWdleHAtZXhlYyByeCBjbGFzcykpKSkKICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiLW8iICwoc3RyaW5nLWFwcGVuZCBwcmlzbS1uYXRp
dmUtb2JqICIvIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiYXNlbmFtZSBjICIuYyIpICIub2JqIikKICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsYykpKSkK
LSAgICAgICAgICAgICAgICAgICAgICAgICAgIChmaW5kLWZpbGVzIHByaXNtLW5hdGl2ZS1vYmog
IlxcLmMkIikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoZmluZC1maWxlcyBwcmlzbS1u
YXRpdmUtc3JjICJcXC5jJCIpKQogICAgICAgICAgICAgICAgICAobWtkaXItcCAoZGlybmFtZSBw
cmlzbS1uYXRpdmUtbGliKSkKICAgICAgICAgICAgICAgICAgKGludm9rZSAiYmFzaCIgIi1jIgog
ICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJpbmctam9pbiBgKCJnKysiCkBAIC0zMTgzLDE0
ICszMTU5LDE0IEBAIChjbGFzcyAobWF0Y2g6c3VmZml4IChyZWdleHAtZXhlYyByeCBjbGFzcykp
KSkKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLUkiICwoc3RyaW5n
LWFwcGVuZCBqZGsgIi9pbmNsdWRlL2xpbnV4IikpKQogICAgICAgICAgICAgICAgICAgICAgIChw
cmlzbS1lczItY2MtZmxhZ3MgYCgiLURMSU5VWCIgLEBjYy1mbGFncykpCiAgICAgICAgICAgICAg
ICAgICAgICAgKHByaXNtLWVzMi1saW5rLWZsYWdzCi0gICAgICAgICAgICAgICAgICAgICAgIGAo
LEBsaW5rLWZsYWdzICIkKHBrZy1jb25maWcgLS1saWJzIHgxMSB4eGY4NnZtIGdsKSIpKQorICAg
ICAgICAgICAgICAgICAgICAgICBgKCxAbGluay1mbGFncyAiJChwa2ctY29uZmlnIC0tbGlicyB4
MTEgeHhmODZ2bSBnbCBmb250Y29uZmlnKSIpKQogICAgICAgICAgICAgICAgICAgICAgIDs7IFdl
IG5lZWQgYWxsICouYyBmaWxlcyBpbiB0aGUgcm9vdCBhbmQgb25seSB0aG9zZQogICAgICAgICAg
ICAgICAgICAgICAgIDs7IHdoaWNoIGFyZSBpbiBhIHNwZWNpZmljIGRpcmVjdG9yaWVzLgogICAg
ICAgICAgICAgICAgICAgICAgIChmaWx0ZXItc3JjCiAgICAgICAgICAgICAgICAgICAgICAgIChs
YW1iZGEgKGFicyBfKQotICAgICAgICAgICAgICAgICAgICAgICAgIChvciAocmVnZXhwLWV4ZWMg
KG1ha2UtcmVnZXhwIChzdHJpbmctYXBwZW5kIHByaXNtLWVzMi1uYXRpdmUtc3JjICJbXi9dKlxc
LmMkIikpCisgICAgICAgICAgICAgICAgICAgICAgICAgKG9yIChyZWdleHAtZXhlYyAobWFrZS1y
ZWdleHAgKHN0cmluZy1hcHBlbmQgcHJpc20tZXMyLW5hdGl2ZS1zcmMgIi9bWzphbG51bTpdXStc
XC5jJCIpKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWJzKQot
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVnZXhwLWV4ZWMgKG1ha2UtcmVnZXhwIChz
dHJpbmctYXBwZW5kIHByaXNtLWVzMi1uYXRpdmUtc3JjICIoeDExL3xHTC8pIikpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChyZWdleHAtZXhlYyAobWFrZS1yZWdleHAgKHN0cmluZy1h
cHBlbmQgcHJpc20tZXMyLW5hdGl2ZS1zcmMgIi8oeDExL3xHTC8pLipcXC5jJCIpKQogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYWJzKSkpKSkKICAgICAgICAgICAg
ICAgICAgKG1rZGlyLXAgcHJpc20tZXMyLWdlbi1oZWFkZXJzKQogICAgICAgICAgICAgICAgICAo
YXBwbHkgaW52b2tlICJqYXZhaCIKQEAgLTMyMDIsNyArMzE3OCw2IEBAIChjbGFzcyAobWF0Y2g6
c3VmZml4IChyZWdleHAtZXhlYyByeCBjbGFzcykpKSkKICAgICAgICAgICAgICAgICAgKG1rZGly
LXAgcHJpc20tZXMyLW5hdGl2ZS1vYmopCiAgICAgICAgICAgICAgICAgIChmb3ItZWFjaCAobGFt
YmRhIChjKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYXBwbHkgaW52b2tlICJnY2Mi
Ci0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLUkiIGdsYXNzLW5hdGl2ZS1z
cmMKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItSSIgcHJpc20tZXMyLWdl
bi1oZWFkZXJzCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLUkiIHByaXNt
LWVzMi1uYXRpdmUtc3JjCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLUki
IChzdHJpbmctYXBwZW5kIHByaXNtLWVzMi1uYXRpdmUtc3JjICIvR0wiKQpAQCAtMzI1OCw3ICsz
MjMzLDcgQEAgKGNsYXNzIChtYXRjaDpzdWZmaXggKHJlZ2V4cC1leGVjIHJ4IGNsYXNzKSkpKQog
CiAgICAgICAgICAgIChhZGQtYWZ0ZXIgJ2NvbXBpbGUtbGludXgtcHJpc20tc3cgJ2luc3RhbGwt
bmF0aXZlCiAgICAgICAgICAgICAgKGxhbWJkYSogKCM6a2V5IG91dHB1dHMgIzphbGxvdy1vdGhl
ci1rZXlzKQotICAgICAgICAgICAgICAgKGxldCAoKGxpYiAoc3RyaW5nLWFwcGVuZCAoYXNzb2Mt
cmVmIG91dHB1dHMgIm91dCIpICIvbGliIikpKQorICAgICAgICAgICAgICAgKGxldCAoKGxpYiAo
c3RyaW5nLWFwcGVuZCAoYXNzb2MtcmVmIG91dHB1dHMgIm91dCIpICIvc2hhcmUvYW1kNjQiKSkp
CiAgICAgICAgICAgICAgICAgIChmb3ItZWFjaCAobGFtYmRhIChmaWxlKQogICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAoaW5zdGFsbC1maWxlIGZpbGUgbGliKSkKICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChmaW5kLWZpbGVzICIuIiAiXFwuc28kIikpCkBAIC0zMjY3LDI1ICszMjQy
LDU0IEBAIChjbGFzcyAobWF0Y2g6c3VmZml4IChyZWdleHAtZXhlYyByeCBjbGFzcykpKSkKICAg
ICAgICAgICAgKGFkZC1hZnRlciAnaW5zdGFsbC1uYXRpdmUgJ2J1aWxkLWphcgogICAgICAgICAg
ICAgIChsYW1iZGEgXwogICAgICAgICAgICAgICAgKGxldCogKChtb2R1bGUgKHN0cmluZy1hcHBl
bmQgIm1vZHVsZXMvZ3JhcGhpY3MiKSkKKyAgICAgICAgICAgICAgICAgICAgICAoZGVjb3JhIChz
dHJpbmctYXBwZW5kIG1vZHVsZSAiL2J1aWxkL2NsYXNzZXMvanNsLWRlY29yYSIpKQorICAgICAg
ICAgICAgICAgICAgICAgIChwcmlzbSAoc3RyaW5nLWFwcGVuZCBtb2R1bGUgIi9idWlsZC9jbGFz
c2VzL2pzbC1wcmlzbSIpKQogICAgICAgICAgICAgICAgICAgICAgIChyZXNvdXJjZXMgKHN0cmlu
Zy1hcHBlbmQgbW9kdWxlICIvc3JjL21haW4vcmVzb3VyY2VzIikpCiAgICAgICAgICAgICAgICAg
ICAgICAgKGNsYXNzZXMgKHN0cmluZy1hcHBlbmQgbW9kdWxlICIvYnVpbGQvY2xhc3Nlcy9qYXZh
L21haW4iKSkpCisgICAgICAgICAgICAgICAgIChjb3B5LXJlY3Vyc2l2ZWx5IGRlY29yYSBjbGFz
c2VzKQorICAgICAgICAgICAgICAgICAoY29weS1yZWN1cnNpdmVseSBwcmlzbSBjbGFzc2VzKQog
ICAgICAgICAgICAgICAgICAoY29weS1yZWN1cnNpdmVseSByZXNvdXJjZXMgY2xhc3NlcykKIAog
ICAgICAgICAgICAgICAgICAoaW52b2tlICJhbnQiICJqYXIiIChzdHJpbmctYXBwZW5kICItRGNs
YXNzZXMuZGlyPSIgY2xhc3NlcykpKQotICAgICAgICAgICAgICAgI3QpKSkpKSkKKyAgICAgICAg
ICAgICAgICN0KSkKKworICAgICAgICAgICAoYWRkLWJlZm9yZSAnY2hlY2sgJ2NvcHktY2xhc3Nl
cworICAgICAgICAgICAgIChsYW1iZGEgXworICAgICAgICAgICAgIChjb3B5LXJlY3Vyc2l2ZWx5
ICJtb2R1bGVzL2dyYXBoaWNzL2J1aWxkL2NsYXNzZXMvamF2YS9tYWluIiAiYnVpbGQvY2xhc3Nl
cyIpCisgICAgICAgICAgICAgKHN1YnN0aXR1dGUqICJidWlsZC54bWwiCisgICAgICAgICAgICAg
ICAoKCI8anVuaXQuKmhhbHRvbmZhaWx1cmU9XCJ5ZXNcIj4iIGFsbCkKKyAgICAgICAgICAgICAg
ICAoc3RyaW5nLWFwcGVuZAorICAgICAgICAgICAgICAgICBhbGwKKyAgICAgICAgICAgICAgICAg
IjxzeXNwcm9wZXJ0eSBrZXk9XCJqYXZhLmxpYnJhcnkucGF0aFwiIHZhbHVlPVwiIgorICAgICAg
ICAgICAgICAgICAoc3RyaW5nLWpvaW4gJygibW9kdWxlcy9ncmFwaGljcy9idWlsZC9saWJzL3By
aXNtL2xpbnV4LyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1vZHVsZXMvZ3Jh
cGhpY3MvYnVpbGQvbGlicy9mb250L2xpbnV4LyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIm1vZHVsZXMvZ3JhcGhpY3MvYnVpbGQvbGlicy9mb250RnJlZXR5cGUvbGludXgvIgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAibW9kdWxlcy9ncmFwaGljcy9idWlsZC9s
aWJzL2ZvbnRQYW5nby9saW51eC8iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJt
b2R1bGVzL2dyYXBoaWNzL2J1aWxkL2xpYnMvaWlvL2xpbnV4LyIpCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiOiIpCisgICAgICAgICAgICAgICAgICAiXCIvPiIKKyAgICAgICAgICAg
ICAgICAgIjxzeXNwcm9wZXJ0eSBrZXk9XCJqYXZhZngudG9vbGtpdFwiIHZhbHVlPVwiY29tLnN1
bi5qYXZhZngucGdzdHViLlN0dWJUb29sa2l0XCIvPiIpKSkKKyAgICAgICAgICAgICAjdCkpKSkp
KQogICAgIChuYXRpdmUtaW5wdXRzCisgICAgIGAoKCJhbnRscjMiICxhbnRscjMpCisgICAgICAg
KCJqYXZhLXN0cmluZ3RlbXBsYXRlIiAsamF2YS1zdHJpbmd0ZW1wbGF0ZSkKKyAgICAgICAoImdj
YyIgLGdjYykKKyAgICAgICAoImpkayIgLGljZWR0ZWEtOCAiamRrIikKKyAgICAgICAoInBrZy1j
b25maWciICxwa2ctY29uZmlnKQorICAgICAgICgiamF2YS1qdW5pdCIgLGphdmEtanVuaXQpKSkK
KyAgICAoaW5wdXRzCiAgICAgIGAoKCJmcmVldHlwZSIgLGZyZWV0eXBlKQogICAgICAgICgiZm9u
dGNvbmZpZyIgLGZvbnRjb25maWcpCi0gICAgICAgKCJnY2MiICxnY2MpCiAgICAgICAgKCJnbGli
IiAsZ2xpYikKICAgICAgICAoInpsaWIiICx6bGliKQogICAgICAgICgiZ3RrIiAsZ3RrKy0yKQot
ICAgICAgICgiZ3RrMyIgLGd0ayspCiAgICAgICAgKCJqcGVnIiAsbGlianBlZy10dXJibykKICAg
ICAgICAoImxpYnh0c3QiICxsaWJ4dHN0KQorICAgICAgICgibWVzYSIgLG1lc2EpCiAgICAgICAg
KCJwYW5nbyIgLHBhbmdvKQogICAgICAgICgibGlicG5nIiAsbGlicG5nKQotICAgICAgICgicGtn
LWNvbmZpZyIgLHBrZy1jb25maWcpKSkKKyAgICAgICAoInh4Zjg2dm0iICxsaWJ4eGY4NnZtKQor
ICAgICAgICgieDExIiAsbGlieDExKSkpCiAgICAgKHByb3BhZ2F0ZWQtaW5wdXRzCiAgICAgIGAo
KCJqYXZhLW9wZW5qZngtYmFzZSIgLGphdmEtb3BlbmpmeC1iYXNlKQogICAgICAgICgiamF2YS1z
d3QiICxqYXZhLXN3dCkpKSkpCkBAIC0zMjk2LDEwICszMzAwLDIxIEBAIChkZWZpbmUtcHVibGlj
IGphdmEtb3BlbmpmeC1zd2luZwogICAgIChhcmd1bWVudHMKICAgICAgYCgjOmphci1uYW1lICJq
YXZhLW9wZW5qZngtc3dpbmcuamFyIgogICAgICAgICM6c291cmNlLWRpciAibW9kdWxlcy9zd2lu
Zy9zcmMvbWFpbi9qYXZhIgotICAgICAgICM6dGVzdHM/ICNmKSkKLSAgICAoaW5wdXRzCi0gICAg
IGAoKCJhbnRscjMiICxhbnRscjMpCi0gICAgICAgKCJqYXZhLXN0cmluZ3RlbXBsYXRlIiAsamF2
YS1zdHJpbmd0ZW1wbGF0ZSkpKQorICAgICAgICM6dGVzdC1kaXIgIm1vZHVsZXMvc3dpbmcvc3Jj
L3Rlc3QiCisgICAgICAgIzp0ZXN0LWluY2x1ZGUgKGxpc3QgIioqLypUZXN0LioiKQorICAgICAg
ICM6bW9kdWxlcyAoKGd1aXggYnVpbGQgYW50LWJ1aWxkLXN5c3RlbSkKKyAgICAgICAgICAgICAg
ICAgIChndWl4IGJ1aWxkIHV0aWxzKQorICAgICAgICAgICAgICAgICAgKGljZS05IHJlZ2V4KSkK
KyAgICAgICAjOnBoYXNlcworICAgICAgIChtb2RpZnktcGhhc2VzICVzdGFuZGFyZC1waGFzZXMK
KyAgICAgICAgIChhZGQtYmVmb3JlICdjaGVjayAneC10ZXN0LXNldHVwCisgICAgICAgICAgIChs
YW1iZGEgXworICAgICAgICAgICAgIChzeXN0ZW0gIlh2ZmIgOjMzICYiKQorICAgICAgICAgICAg
IChzZXRlbnYgIkRJU1BMQVkiICI6MzMiKQorICAgICAgICAgICAgICN0KSkpKSkKKyAgICAobmF0
aXZlLWlucHV0cworICAgICBgKCgiamF2YS1qdW5pdCIgLGphdmEtanVuaXQpCisgICAgICAgKCJ4
b3JnLXNlcnZlciIgLHhvcmctc2VydmVyLWZvci10ZXN0cykpKQogICAgIChwcm9wYWdhdGVkLWlu
cHV0cwogICAgICBgKCgiamF2YS1vcGVuamZ4LWdyYXBoaWNzIiAsamF2YS1vcGVuamZ4LWdyYXBo
aWNzKSkpKSkKIApAQCAtMzMwOSw2ICszMzI0LDcgQEAgKGRlZmluZS1wdWJsaWMgamF2YS1vcGVu
amZ4LXN3dAogICAgIChhcmd1bWVudHMKICAgICAgYCgjOmphci1uYW1lICJqYXZhLW9wZW5qZngt
c3d0LmphciIKICAgICAgICAjOnNvdXJjZS1kaXIgIm1vZHVsZXMvc3d0L3NyYy9tYWluL2phdmEi
CisgICAgICAgOzsgbm8gdGVzdHMgYXZhaWxhYmxlIGluIHNyYwogICAgICAgICM6dGVzdHM/ICNm
KSkKICAgICAoaW5wdXRzCiAgICAgIGAoKCJhbnRscjMiICxhbnRscjMpCkBAIC0zMzIyLDI1ICsz
MzM4LDI1NSBAQCAoZGVmaW5lLXB1YmxpYyBqYXZhLW9wZW5qZngtY29udHJvbHMKICAgICAoYXJn
dW1lbnRzCiAgICAgIGAoIzpqYXItbmFtZSAiamF2YS1vcGVuamZ4LWNvbnRyb2xzLmphciIKICAg
ICAgICAjOnNvdXJjZS1kaXIgIm1vZHVsZXMvY29udHJvbHMvc3JjL21haW4vamF2YSIKLSAgICAg
ICAjOnRlc3RzPyAjZgotICAgICAgICM6cGhhc2VzCi0gICAgICAgKG1vZGlmeS1waGFzZXMgJXN0
YW5kYXJkLXBoYXNlcwotICAgICAgICAgKGFkZC1iZWZvcmUgJ2J1aWxkICdjb3B5LXJlc291cmNl
cworICAgICAgICM6dGVzdC1kaXIgIm1vZHVsZXMvY29udHJvbHMvc3JjL3Rlc3QiCisgICAgICAg
Izp0ZXN0LWluY2x1ZGUgKGxpc3QgIioqLypUZXN0LioiKQorICAgICAgICM6bW9kdWxlcyAoKGd1
aXggYnVpbGQgYW50LWJ1aWxkLXN5c3RlbSkKKyAgICAgICAgICAgICAgICAgIChndWl4IGJ1aWxk
IHV0aWxzKQorICAgICAgICAgICAgICAgICAgKGljZS05IHJlZ2V4KSkKKyAgICAgICAjOnBoYXNl
cworICAgICAgIChtb2RpZnktcGhhc2VzICVzdGFuZGFyZC1waGFzZXMKKyAgICAgICAgIChhZGQt
YWZ0ZXIgJ3VucGFjayAnY29weS1yZXNvdXJjZXMKKyAgICAgICAgICAgKGxhbWJkYSBfCisgICAg
ICAgICAgICAgOzsgY29weSB0ZXN0IHN1cHBvcnQgZmlsZXMgKGJ1dCBub3QgdGhlIGFjdHVhbCB0
ZXN0cyB0aGVtc2VsdmVzKQorICAgICAgICAgICAgIDs7IGZyb20gb3RoZXIgbW9kdWxlcworICAg
ICAgICAgICAgIChjb3B5LXJlY3Vyc2l2ZWx5ICJtb2R1bGVzL2dyYXBoaWNzL3NyYy90ZXN0L2ph
dmEvY29tL3N1bi9qYXZhZngvcGdzdHViIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJtb2R1bGVzL2NvbnRyb2xzL3NyYy90ZXN0L2phdmEvY29tL3N1bi9qYXZhZngvcGdzdHViIikK
KyAgICAgICAgICAgICAoZm9yLWVhY2ggZGVsZXRlLWZpbGUgKGZpbmQtZmlsZXMgIm1vZHVsZXMv
Y29udHJvbHMvc3JjL3Rlc3QvamF2YS9jb20vc3VuL2phdmFmeC9wZ3N0dWIiICIuKlRlc3QuamF2
YSQiKSkKKyAgICAgICAgICAgICAoY29weS1yZWN1cnNpdmVseSAibW9kdWxlcy9iYXNlL3NyYy90
ZXN0L2phdmEvY29tL3N1bi9qYXZhZngvYmluZGluZyIKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAibW9kdWxlcy9jb250cm9scy9zcmMvdGVzdC9qYXZhL2NvbS9zdW4vamF2YWZ4L2Jp
bmRpbmciKQorICAgICAgICAgICAgIChmb3ItZWFjaCBkZWxldGUtZmlsZSAoZmluZC1maWxlcyAi
bW9kdWxlcy9jb250cm9scy9zcmMvdGVzdC9qYXZhL2NvbS9zdW4vamF2YWZ4L2JpbmRpbmciICIu
KlRlc3QuamF2YSQiKSkKKyAgICAgICAgICAgICAoY29weS1yZWN1cnNpdmVseSAibW9kdWxlcy9i
YXNlL3NyYy90ZXN0L2phdmEvamF2YWZ4L2JlYW5zIgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJtb2R1bGVzL2NvbnRyb2xzL3NyYy90ZXN0L2phdmEvamF2YWZ4L2JlYW5zIikKKyAg
ICAgICAgICAgICAoZm9yLWVhY2ggZGVsZXRlLWZpbGUgKGZpbmQtZmlsZXMgIm1vZHVsZXMvY29u
dHJvbHMvc3JjL3Rlc3QvamF2YS9qYXZhZngvYmVhbnMiICIuKlRlc3QuamF2YSQiKSkKKyAgICAg
ICAgICAgICAoY29weS1yZWN1cnNpdmVseSAibW9kdWxlcy9iYXNlL3NyYy90ZXN0L2phdmEvamF2
YWZ4L2NvbGxlY3Rpb25zIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtb2R1bGVz
L2NvbnRyb2xzL3NyYy90ZXN0L2phdmEvamF2YWZ4L2NvbGxlY3Rpb25zIikKKyAgICAgICAgICAg
ICAoZm9yLWVhY2ggZGVsZXRlLWZpbGUgKGZpbmQtZmlsZXMgIm1vZHVsZXMvY29udHJvbHMvc3Jj
L3Rlc3QvamF2YS9qYXZhZngvY29sbGVjdGlvbnMiICIuKlRlc3QuamF2YSQiKSkKKyAgICAgICAg
ICAgICAoY29weS1yZWN1cnNpdmVseSAibW9kdWxlcy9iYXNlL3NyYy90ZXN0L2phdmEvamF2YWZ4
L2JpbmRpbmciCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIm1vZHVsZXMvY29udHJv
bHMvc3JjL3Rlc3QvamF2YS9qYXZhZngvYmluZGluZyIpCisgICAgICAgICAgICAgKGZvci1lYWNo
IGRlbGV0ZS1maWxlIChmaW5kLWZpbGVzICJtb2R1bGVzL2NvbnRyb2xzL3NyYy90ZXN0L2phdmEv
amF2YWZ4L2JpbmRpbmciICIuKlRlc3QuamF2YSQiKSkKKworICAgICAgICAgICAgIChjb3B5LXJl
Y3Vyc2l2ZWx5ICJtb2R1bGVzL2NvbnRyb2xzL3NyYy90ZXN0L3Jlc291cmNlcyIKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiYnVpbGQvdGVzdC1jbGFzc2VzIikKKyAgICAgICAgICAg
ICAoY29weS1yZWN1cnNpdmVseSAibW9kdWxlcy9jb250cm9scy9zcmMvbWFpbi9yZXNvdXJjZXMi
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImJ1aWxkL2NsYXNzZXMiKSkpCisKKyAg
ICAgICAgIChhZGQtYmVmb3JlICdjaGVjayAndG9vbGtpdAogICAgICAgICAgICAobGFtYmRhIF8K
LSAgICAgICAgICAgICAobGV0ICgocmVzb3VyY2VzIChzdHJpbmctYXBwZW5kIChnZXRjd2QpICIv
bW9kdWxlcy9jb250cm9scy9zcmMvbWFpbi9yZXNvdXJjZXMiKSkpCi0gICAgICAgICAgICAgICAo
Y29weS1yZWN1cnNpdmVseSByZXNvdXJjZXMgImJ1aWxkL2NsYXNzZXMiKSkgI3QpKSkpKQorICAg
ICAgICAgICAgIChzdWJzdGl0dXRlKiAiYnVpbGQueG1sIgorICAgICAgICAgICAgICAgKCgiPGp1
bml0LipoYWx0b25mYWlsdXJlPVwieWVzXCI+IiBhbGwpCisgICAgICAgICAgICAgICAgKHN0cmlu
Zy1hcHBlbmQgYWxsCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxzeXNwcm9wZXJ0
eSBrZXk9XCJqYXZhZngudG9vbGtpdFwiIHZhbHVlPVwiY29tLnN1bi5qYXZhZngucGdzdHViLlN0
dWJUb29sa2l0XCIvPiIpKSkKKyAgICAgICAgICAgICAjdCkpKSkpCiAgICAgKHByb3BhZ2F0ZWQt
aW5wdXRzCi0gICAgIGAoKCJqYXZhLW9wZW5qZngtZ3JhcGhpY3MiICxqYXZhLW9wZW5qZngtZ3Jh
cGhpY3MpKSkpKQorICAgICBgKCgiamF2YS1vcGVuanhmLWdyYXBoaWNzIiAsamF2YS1vcGVuamZ4
LWdyYXBoaWNzKSkpKSkKIAogKGRlZmluZS1wdWJsaWMgamF2YS1vcGVuamZ4LW1lZGlhCiAgIChw
YWNrYWdlIChpbmhlcml0IGphdmEtb3BlbmpmeC1idWlsZCkKICAgICAobmFtZSAiamF2YS1vcGVu
amZ4LW1lZGlhIikKKyAgICAobmF0aXZlLWlucHV0cworICAgICBgKCgiZ2NjIiAsZ2NjKQorICAg
ICAgICgiamRrIiAsaWNlZHRlYS04ICJqZGsiKQorICAgICAgICgicGtnLWNvbmZpZyIgLHBrZy1j
b25maWcpKSkKKyAgICAoaW5wdXRzCisgICAgIGAoKCJ4eiIgLHh6KSA7OyB3b3JrYXJvdW5kIGZv
ciBnc3RyZWFtZXIncyBlbGZ1dGlscyBidWcjNTU3OTMuCisgICAgICAgKCJnc3RyZWFtZXIiICxn
c3RyZWFtZXIpCisgICAgICAgKCJnc3QtcGx1Z2lucy1iYXNlIiAsZ3N0LXBsdWdpbnMtYmFzZSkp
KQogICAgIChwcm9wYWdhdGVkLWlucHV0cwotICAgICBgKCgiamF2YS1vcGVuanhmLWdyYXBoaWNz
IiAsamF2YS1vcGVuamZ4LWdyYXBoaWNzKSkpCisgICAgIGAoKCJqYXZhLW9wZW5qZngtZ3JhcGhp
Y3MiICxqYXZhLW9wZW5qZngtZ3JhcGhpY3MpKSkKICAgICAoYXJndW1lbnRzCiAgICAgIGAoIzpq
YXItbmFtZSAiamF2YS1vcGVuamZ4LW1lZGlhLmphciIKLSAgICAgICAjOnNvdXJjZS1kaXIgIm1v
ZHVsZXMvbWVkaWEvc3JjL21haW4vamF2YSIKLSAgICAgICAjOnRlc3RzPyAjZikpOyBubyB0ZXN0
cworICAgICAgICM6c291cmNlLWRpciAibW9kdWxlcy9tZWRpYS9zcmMvbWFpbi9qYXZhOm1vZHVs
ZXMvbWVkaWEvc3JjL3Rvb2xzL2phdmEiCisgICAgICAgOzsgbm8gdGVzdHMgYXZhaWxhYmxlIGlu
IHNyYworICAgICAgICM6dGVzdHM/ICNmCisgICAgICAgIzptb2R1bGVzICgoaWNlLTkgbWF0Y2gp
CisgICAgICAgICAgICAgICAgICAoaWNlLTkgcmVnZXgpCisgICAgICAgICAgICAgICAgICAoZ3Vp
eCBidWlsZCBhbnQtYnVpbGQtc3lzdGVtKQorICAgICAgICAgICAgICAgICAgKGd1aXggYnVpbGQg
dXRpbHMpKQorICAgICAgICM6cGhhc2VzCisgICAgICAgKG1vZGlmeS1waGFzZXMgJXN0YW5kYXJk
LXBoYXNlcworICAgICAgICAgKHJlcGxhY2UgJ2J1aWxkCisgICAgICAgICAgIChsYW1iZGEqICgj
OmtleSBvdXRwdXRzICM6YWxsb3ctb3RoZXIta2V5cykKKyAgICAgICAgICAgICAobGV0ICgobGli
IChzdHJpbmctYXBwZW5kIChhc3NvYy1yZWYgb3V0cHV0cyAib3V0IikKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICIvbGliL2xpYmpmeG1lZGlhLnNvIikpKQorICAgICAg
ICAgICAgICAgOzsgTG9hZCBqZnhtZWRpYS5zbyBsaWJyYXJ5IGRpcmVjdGx5IGZyb20gb3V0cHV0
IHBhdGguCisgICAgICAgICAgICAgICAoc3Vic3RpdHV0ZSogIm1vZHVsZXMvbWVkaWEvc3JjL21h
aW4vamF2YS9jb20vc3VuL21lZGlhL2pmeG1lZGlhaW1wbC9OYXRpdmVNZWRpYU1hbmFnZXIuamF2
YSIKKyAgICAgICAgICAgICAgICAgKCgocmVnZXhwLXF1b3RlICJOYXRpdmVMaWJMb2FkZXIubG9h
ZExpYnJhcnkoXCJqZnhtZWRpYVwiKTsiKSkKKyAgICAgICAgICAgICAgICAgIChzdHJpbmctYXBw
ZW5kCisgICAgICAgICAgICAgICAgICAgIlN5c3RlbS5sb2FkKFwiIgorICAgICAgICAgICAgICAg
ICAgIGxpYgorICAgICAgICAgICAgICAgICAgICJcIik7IikpKSkKKyAgICAgICAgICAgICAoaW52
b2tlICJhbnQiICJjb21waWxlIiAiLURjbGFzc2VzLmRpcj1tb2R1bGVzL21lZGlhL2J1aWxkL2Ns
YXNzZXMvamF2YS9tYWluIikKKyAgICAgICAgICAgICAjdCkpCisKKyAgICAgICAgIChhZGQtYWZ0
ZXIgJ2J1aWxkICdnZW5lcmF0ZS1oZWFkZXJzCisgICAgICAgICAgIChsYW1iZGEqICgjOmtleSBp
bnB1dHMgIzphbGxvdy1vdGhlci1rZXlzKQorICAgICAgICAgICAgIChsZXQqICgoY2xhc3NlcyAi
bW9kdWxlcy9tZWRpYS9idWlsZC9jbGFzc2VzL2phdmEvbWFpbiIpCisgICAgICAgICAgICAgICAg
ICAgIChtZWRpYS1nZW5lcmF0ZWQtaGVhZGVycyAibW9kdWxlcy9tZWRpYS9idWlsZC9nZW5lcmF0
ZWQtc3JjL2hlYWRlcnMiKQorICAgICAgICAgICAgICAgICAgICAobWVkaWEtZ2VuZXJhdGVkLWNs
YXNzZXMKKyAgICAgICAgICAgICAgICAgICAgICcoImNvbS5zdW4ubWVkaWEuamZ4bWVkaWEubG9n
Z2luZy5Mb2dnZXIiCisgICAgICAgICAgICAgICAgICAgICAgICJjb20uc3VuLm1lZGlhLmpmeG1l
ZGlhLnRyYWNrLkF1ZGlvVHJhY2siCisgICAgICAgICAgICAgICAgICAgICAgICJjb20uc3VuLm1l
ZGlhLmpmeG1lZGlhLmNvbnRyb2wuVmlkZW9EYXRhQnVmZmVyIgorICAgICAgICAgICAgICAgICAg
ICAgICAiY29tLnN1bi5tZWRpYS5qZnhtZWRpYS5jb250cm9sLlZpZGVvRm9ybWF0JEZvcm1hdFR5
cGVzIgorICAgICAgICAgICAgICAgICAgICAgICAiY29tLnN1bi5tZWRpYS5qZnhtZWRpYWltcGwu
TmF0aXZlQXVkaW9DbGlwIgorICAgICAgICAgICAgICAgICAgICAgICAiY29tLnN1bi5tZWRpYS5q
ZnhtZWRpYWltcGwuTmF0aXZlTWVkaWFQbGF5ZXIiCisgICAgICAgICAgICAgICAgICAgICAgICJj
b20uc3VuLm1lZGlhLmpmeG1lZGlhaW1wbC5OYXRpdmVWaWRlb0J1ZmZlciIKKyAgICAgICAgICAg
ICAgICAgICAgICAgImNvbS5zdW4ubWVkaWEuamZ4bWVkaWFpbXBsLnBsYXRmb3JtLmdzdHJlYW1l
ci5HU1RQbGF0Zm9ybSIKKyAgICAgICAgICAgICAgICAgICAgICAgImNvbS5zdW4ubWVkaWEuamZ4
bWVkaWFpbXBsLnBsYXRmb3JtLmdzdHJlYW1lci5HU1RNZWRpYSIKKyAgICAgICAgICAgICAgICAg
ICAgICAgImNvbS5zdW4ubWVkaWEuamZ4bWVkaWFpbXBsLnBsYXRmb3JtLmdzdHJlYW1lci5HU1RN
ZWRpYVBsYXllciIKKyAgICAgICAgICAgICAgICAgICAgICAgImNvbS5zdW4ubWVkaWEuamZ4bWVk
aWFpbXBsLk5hdGl2ZUF1ZGlvRXF1YWxpemVyIgorICAgICAgICAgICAgICAgICAgICAgICAiY29t
LnN1bi5tZWRpYS5qZnhtZWRpYWltcGwuTmF0aXZlRXF1YWxpemVyQmFuZCIKKyAgICAgICAgICAg
ICAgICAgICAgICAgImNvbS5zdW4ubWVkaWEuamZ4bWVkaWFpbXBsLk5hdGl2ZUF1ZGlvU3BlY3Ry
dW0iKSkKKyAgICAgICAgICAgICAgICAgICAgKGdyYXBoaWNzIChhc3NvYy1yZWYgaW5wdXRzICJq
YXZhLW9wZW5qZngtZ3JhcGhpY3MiKSkpCisgICAgICAgICAgICAgICAobWtkaXItcCBtZWRpYS1n
ZW5lcmF0ZWQtaGVhZGVycykKKyAgICAgICAgICAgICAgIChpbnZva2UgImphdmEiCisgICAgICAg
ICAgICAgICAgICAgICAgICItRGphdmEuZXh0LmRpcnM9IgorICAgICAgICAgICAgICAgICAgICAg
ICAiLWNsYXNzcGF0aCIgY2xhc3NlcworICAgICAgICAgICAgICAgICAgICAgICAiaGVhZGVyZ2Vu
LkhlYWRlckdlbiIKKyAgICAgICAgICAgICAgICAgICAgICAgKHN0cmluZy1hcHBlbmQgbWVkaWEt
Z2VuZXJhdGVkLWhlYWRlcnMgIi8iICJqZnhtZWRpYV9lcnJvcnMuaCIpCisgICAgICAgICAgICAg
ICAgICAgICAgIGNsYXNzZXMpCisgICAgICAgICAgICAgICAoYXBwbHkgaW52b2tlCisgICAgICAg
ICAgICAgICAgICAgICAgImphdmFoIgorICAgICAgICAgICAgICAgICAgICAgICItRGphdmEuZXh0
LmRpcnM9IgorICAgICAgICAgICAgICAgICAgICAgICItWERpZ25vcmUuc3ltYm9sLmZpbGUiCisg
ICAgICAgICAgICAgICAgICAgICAgIi1YRHVzZVVuc2hhcmVkVGFibGU9dHJ1ZSIKKyAgICAgICAg
ICAgICAgICAgICAgICAiLWQiIG1lZGlhLWdlbmVyYXRlZC1oZWFkZXJzCisgICAgICAgICAgICAg
ICAgICAgICAgIi1jcCIgKHN0cmluZy1qb2luIChjb25zKiBjbGFzc2VzIChmaW5kLWZpbGVzIGdy
YXBoaWNzICJcXC5qYXIkIikpICI6IikKKyAgICAgICAgICAgICAgICAgICAgICBtZWRpYS1nZW5l
cmF0ZWQtY2xhc3NlcykpCisgICAgICAgICAgICAgI3QpKQorCisgICAgICAgICAoYWRkLWFmdGVy
ICdnZW5lcmF0ZS1oZWFkZXJzICdtZWRpYS1uYXRpdmUtbGliCisgICAgICAgICAgICAgKGxhbWJk
YSogKCM6a2V5IGlucHV0cyAjOmFsbG93LW90aGVyLWtleXMpCisgICAgICAgICAgICAgICAobGV0
KiAoKGNsYXNzZXMgIm1vZHVsZXMvbWVkaWEvYnVpbGQvY2xhc3Nlcy9qYXZhL21haW4iKQorICAg
ICAgICAgICAgICAgICAgICAgIChtZWRpYS1nZW4taGVhZGVycyAibW9kdWxlcy9tZWRpYS9idWls
ZC9nZW5lcmF0ZWQtc3JjL2hlYWRlcnMiKQorICAgICAgICAgICAgICAgICAgICAgIChtZWRpYS1n
ZW4tc3JjICJtb2R1bGVzL21lZGlhL2J1aWxkL2dlbmVyYXRlZC1zcmMiKQorICAgICAgICAgICAg
ICAgICAgICAgIChtZWRpYS1uYXRpdmUtbGliICJtb2R1bGVzL21lZGlhL2J1aWxkL2xpYnMvbGlu
dXgvbGliamZ4bWVkaWEuc28iKQorICAgICAgICAgICAgICAgICAgICAgIChtZWRpYS1uYXRpdmUt
b2JqICJtb2R1bGVzL21lZGlhL2J1aWxkL25hdGl2ZS9saW51eCIpCisgICAgICAgICAgICAgICAg
ICAgICAgOzsgcmVmOiBtb2R1bGVzL21lZGlhL3NyYy9tYWluL25hdGl2ZS9qZnhtZWRpYS9wcm9q
ZWN0cy9saW51eC9NYWtlZmlsZQorICAgICAgICAgICAgICAgICAgICAgIChtZWRpYS1uYXRpdmUt
c3JjICJtb2R1bGVzL21lZGlhL3NyYy9tYWluL25hdGl2ZS9qZnhtZWRpYSIpCisgICAgICAgICAg
ICAgICAgICAgICAgKG1lZGlhLW5hdGl2ZS1zcmMtZmlsZXMKKyAgICAgICAgICAgICAgICAgICAg
ICAgJygiam5pL2NvbV9zdW5fbWVkaWFfamZ4bWVkaWFfbG9nZ2luZ19Mb2dnZXIuY3BwIgorICAg
ICAgICAgICAgICAgICAgICAgICAgICJqbmkvSmF2YUJhbmRzSG9sZGVyLmNwcCIKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAiam5pL0phdmFNZWRpYVdhcm5pbmdMaXN0ZW5lci5jcHAiCisgICAg
ICAgICAgICAgICAgICAgICAgICAgImpuaS9KYXZhUGxheWVyRXZlbnREaXNwYXRjaGVyLmNwcCIK
KyAgICAgICAgICAgICAgICAgICAgICAgICAiam5pL0puaVV0aWxzLmNwcCIKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAiam5pL0xvZ2dlci5jcHAiCisgICAgICAgICAgICAgICAgICAgICAgICAg
ImpuaS9OYXRpdmVWaWRlb0J1ZmZlci5jcHAiCisgICAgICAgICAgICAgICAgICAgICAgICAgImpu
aS9OYXRpdmVBdWRpb0VxdWFsaXplci5jcHAiCisgICAgICAgICAgICAgICAgICAgICAgICAgImpu
aS9OYXRpdmVBdWRpb1NwZWN0cnVtLmNwcCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAiam5p
L05hdGl2ZUVxdWFsaXplckJhbmQuY3BwIgorICAgICAgICAgICAgICAgICAgICAgICAgICJqbmkv
SmF2YUlucHV0U3RyZWFtQ2FsbGJhY2tzLmNwcCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAi
UGlwZWxpbmVNYW5hZ2VtZW50L0F1ZGlvVHJhY2suY3BwIgorICAgICAgICAgICAgICAgICAgICAg
ICAgICJQaXBlbGluZU1hbmFnZW1lbnQvUGlwZWxpbmUuY3BwIgorICAgICAgICAgICAgICAgICAg
ICAgICAgICJQaXBlbGluZU1hbmFnZW1lbnQvUGlwZWxpbmVGYWN0b3J5LmNwcCIKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAiUGlwZWxpbmVNYW5hZ2VtZW50L1RyYWNrLmNwcCIKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAiUGlwZWxpbmVNYW5hZ2VtZW50L1ZpZGVvRnJhbWUuY3BwIgorICAg
ICAgICAgICAgICAgICAgICAgICAgICJQaXBlbGluZU1hbmFnZW1lbnQvVmlkZW9UcmFjay5jcHAi
CisgICAgICAgICAgICAgICAgICAgICAgICAgIlBpcGVsaW5lTWFuYWdlbWVudC9TdWJ0aXRsZVRy
YWNrLmNwcCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAiTWVkaWFNYW5hZ2VtZW50L01lZGlh
LmNwcCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAiTWVkaWFNYW5hZ2VtZW50L01lZGlhTWFu
YWdlci5jcHAiCisgICAgICAgICAgICAgICAgICAgICAgICAgIkxvY2F0b3IvTG9jYXRvci5jcHAi
CisgICAgICAgICAgICAgICAgICAgICAgICAgIkxvY2F0b3IvTG9jYXRvclN0cmVhbS5jcHAiCisg
ICAgICAgICAgICAgICAgICAgICAgICAgIlV0aWxzL01lZGlhV2FybmluZ0Rpc3BhdGNoZXIuY3Bw
IgorICAgICAgICAgICAgICAgICAgICAgICAgICJVdGlscy9wb3NpeC9wb3NpeF9jcml0aWNhbF9z
ZWN0aW9uLmNwcCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgInBsYXRmb3JtL2dzdHJlYW1l
ci9Hc3RNZWRpYS5jcHAiCisgICAgICAgICAgICAgICAgICAgICAgICAgInBsYXRmb3JtL2dzdHJl
YW1lci9Hc3RNZWRpYVBsYXllci5jcHAiCisgICAgICAgICAgICAgICAgICAgICAgICAgInBsYXRm
b3JtL2dzdHJlYW1lci9Hc3RQbGF0Zm9ybS5jcHAiCisgICAgICAgICAgICAgICAgICAgICAgICAg
InBsYXRmb3JtL2dzdHJlYW1lci9Hc3RBdWRpb0VxdWFsaXplci5jcHAiCisgICAgICAgICAgICAg
ICAgICAgICAgICAgInBsYXRmb3JtL2dzdHJlYW1lci9Hc3RBdWRpb1BsYXliYWNrUGlwZWxpbmUu
Y3BwIgorICAgICAgICAgICAgICAgICAgICAgICAgICJwbGF0Zm9ybS9nc3RyZWFtZXIvR3N0QXVk
aW9TcGVjdHJ1bS5jcHAiCisgICAgICAgICAgICAgICAgICAgICAgICAgInBsYXRmb3JtL2dzdHJl
YW1lci9Hc3RBVlBsYXliYWNrUGlwZWxpbmUuY3BwIgorICAgICAgICAgICAgICAgICAgICAgICAg
ICJwbGF0Zm9ybS9nc3RyZWFtZXIvR3N0RWxlbWVudENvbnRhaW5lci5jcHAiCisgICAgICAgICAg
ICAgICAgICAgICAgICAgInBsYXRmb3JtL2dzdHJlYW1lci9Hc3RKbmlVdGlscy5jcHAiCisgICAg
ICAgICAgICAgICAgICAgICAgICAgInBsYXRmb3JtL2dzdHJlYW1lci9Hc3RNZWRpYU1hbmFnZXIu
Y3BwIgorICAgICAgICAgICAgICAgICAgICAgICAgICJwbGF0Zm9ybS9nc3RyZWFtZXIvR3N0UGlw
ZWxpbmVGYWN0b3J5LmNwcCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAicGxhdGZvcm0vZ3N0
cmVhbWVyL0dzdFZpZGVvRnJhbWUuY3BwIikpCisgICAgICAgICAgICAgICAgICAgICAgKG1lZGlh
LW5hdGl2ZS1zcmMtYyAiVXRpbHMvQ29sb3JDb252ZXJ0ZXIuYyIpCisgICAgICAgICAgICAgICAg
ICAgICAgKG1lZGlhLXNyYyAibW9kdWxlcy9tZWRpYS9zcmMvbWFpbiIpCisgICAgICAgICAgICAg
ICAgICAgICAgKG1lZGlhLWNsYXNzZXMgIm1vZHVsZXMvbWVkaWEvYnVpbGQvY2xhc3NlcyIpCisg
ICAgICAgICAgICAgICAgICAgICAgKGpkayAoYXNzb2MtcmVmIGlucHV0cyAiamRrIikpCisgICAg
ICAgICAgICAgICAgICAgICAgKGdzdHJlYW1lciAoYXNzb2MtcmVmIGlucHV0cyAiZ3N0cmVhbWVy
IikpCisgICAgICAgICAgICAgICAgICAgICAgKGxpbmstZmxhZ3MKKyAgICAgICAgICAgICAgICAg
ICAgICAgJygiLXB0aHJlYWQiCisgICAgICAgICAgICAgICAgICAgICAgICAgIi1zdGF0aWMtbGli
Z2NjIiAiLXN0YXRpYy1saWJzdGRjKysiICItc2hhcmVkIgorICAgICAgICAgICAgICAgICAgICAg
ICAgICIteiIgInJlbHJvIgorICAgICAgICAgICAgICAgICAgICAgICAgICItV2wsLS1nYy1zZWN0
aW9ucyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAiJChwa2ctY29uZmlnIC0tbGlicyBnc3Ry
ZWFtZXItMS4wKSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAiJChwa2ctY29uZmlnIC0tbGli
cyBnc3RyZWFtZXItcGx1Z2lucy1iYXNlLTEuMCkiCisgICAgICAgICAgICAgICAgICAgICAgICAg
IiQocGtnLWNvbmZpZyAtLWxpYnMgZ3N0cmVhbWVyLWFwcC0xLjApIikpCisgICAgICAgICAgICAg
ICAgICAgICAgKGNjLWZsYWdzCisgICAgICAgICAgICAgICAgICAgICAgIGAoIi1wdGhyZWFkIgor
ICAgICAgICAgICAgICAgICAgICAgICAgICItZm5vLXN0cmljdC1hbGlhc2luZyIgIi1mUElDIiAi
LWZuby1vbWl0LWZyYW1lLXBvaW50ZXIiIDs7IG9wdGltaXphdGlvbiBmbGFncworICAgICAgICAg
ICAgICAgICAgICAgICAgICItZnN0YWNrLXByb3RlY3RvciIKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAiLVciICItV2FsbCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAiLURUQVJHRVRfT1Nf
TElOVVg9MSIKKyAgICAgICAgICAgICAgICAgICAgICAgICAiLURfR05VX1NPVVJDRSIKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAiLURHU1RfUkVNT1ZFX0RFUFJFQ0FURUQiCisgICAgICAgICAg
ICAgICAgICAgICAgICAgIi1ER1NUX0RJU0FCTEVfR1NUX0RFQlVHIgorICAgICAgICAgICAgICAg
ICAgICAgICAgICItREdTVF9ESVNBQkxFX0xPQURTQVZFIgorICAgICAgICAgICAgICAgICAgICAg
ICAgICItREdTVF9ESVNBQkxFX1hNTCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAiLURIQVZF
X0NPTkZJR19IIgorICAgICAgICAgICAgICAgICAgICAgICAgICItREpGWE1FRElBX0pOSV9FWFBP
UlRTIgorICAgICAgICAgICAgICAgICAgICAgICAgICItRExJTlVYIgorICAgICAgICAgICAgICAg
ICAgICAgICAgICItREdfRElTQUJMRV9ERVBSRUNBVEVEIgorICAgICAgICAgICAgICAgICAgICAg
ICAgICItZmZ1bmN0aW9uLXNlY3Rpb25zIgorICAgICAgICAgICAgICAgICAgICAgICAgICItZmRh
dGEtc2VjdGlvbnMiCisgICAgICAgICAgICAgICAgICAgICAgICAgIi1mbm8tcnR0aSIKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAiJChwa2ctY29uZmlnIC0tY2ZsYWdzIGdzdHJlYW1lci0xLjAp
IgorICAgICAgICAgICAgICAgICAgICAgICAgICIkKHBrZy1jb25maWcgLS1jZmxhZ3MgZ3N0cmVh
bWVyLXBsdWdpbnMtYmFzZS0xLjApIgorICAgICAgICAgICAgICAgICAgICAgICAgICIkKHBrZy1j
b25maWcgLS1jZmxhZ3MgZ3N0cmVhbWVyLWFwcC0xLjApIgorICAgICAgICAgICAgICAgICAgICAg
ICAgICItSSIgLChzdHJpbmctYXBwZW5kIGpkayAiL2luY2x1ZGUiKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICItSSIgLChzdHJpbmctYXBwZW5kIGpkayAiL2luY2x1ZGUvbGludXgiKSkpKQor
ICAgICAgICAgICAgICAgICAobWtkaXItcCBtZWRpYS1uYXRpdmUtb2JqKQorICAgICAgICAgICAg
ICAgICAoZm9yLWVhY2ggKGxhbWJkYSAoY3BwKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAobGV0ICgoY3BwIChzdHJpbmctYXBwZW5kIG1lZGlhLW5hdGl2ZS1zcmMgIi8iIGNwcCkpKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnZva2UgImJhc2giICItYyIKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJpbmctam9pbgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhcHBlbmQKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgYCgiZysrIgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICItYyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiLUkiICxtZWRpYS1nZW4taGVhZGVycworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICItSSIgLG1lZGlhLWdlbi1zcmMKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLUkiICxtZWRpYS1uYXRpdmUtc3JjCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1vIiAsKHN0cmluZy1hcHBl
bmQgbWVkaWEtbmF0aXZlLW9iagorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICIvIiAoYmFzZW5hbWUgY3BwICIuY3BwIikgIi5v
YmoiKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2MtZmxhZ3Mg
KGxpc3QgY3BwKSkpKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICBtZWRpYS1uYXRpdmUt
c3JjLWZpbGVzKQorICAgICAgICAgICAgICAgICAobGV0ICgoYyAoc3RyaW5nLWFwcGVuZCBtZWRp
YS1uYXRpdmUtc3JjICIvIiBtZWRpYS1uYXRpdmUtc3JjLWMpKSkKKyAgICAgICAgICAgICAgICAg
ICAoaW52b2tlICJiYXNoIiAiLWMiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5n
LWpvaW4KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYXBwZW5kCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIGAoImcrKyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
LWMiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1JIiAsbWVkaWEtZ2VuLWhlYWRl
cnMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLUkiICxtZWRpYS1nZW4tc3JjCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1JIiAsbWVkaWEtbmF0aXZlLXNyYworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICItbyIgLChzdHJpbmctYXBwZW5kIG1lZGlhLW5h
dGl2ZS1vYmoKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiLyIgKGJhc2VuYW1lIGMgIi5jIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiLm9iaiIpKQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICBjYy1mbGFncyAobGlzdCBjKSkpKSkKKyAgICAgICAgICAgICAgICAgKG1rZGlyLXAgKGRp
cm5hbWUgbWVkaWEtbmF0aXZlLWxpYikpCisgICAgICAgICAgICAgICAgIChpbnZva2UgImJhc2gi
ICItYyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLWpvaW4gKGFwcGVuZAorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYCgiZ2NjIiAiLW8iICxtZWRpYS1u
YXRpdmUtbGliKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGluay1m
bGFncworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZpbmQtZmlsZXMg
bWVkaWEtbmF0aXZlLW9iaiAiXFwub2JqJCIpKSkpKQorICAgICAgICAgICAgICAgI3QpKQorICAg
ICAgICAgKGFkZC1hZnRlciAnbWVkaWEtbmF0aXZlLWxpYiAnaW5zdGFsbC1uYXRpdmUKKyAgICAg
ICAgICAgKGxhbWJkYSogKCM6a2V5IG91dHB1dHMgIzphbGxvdy1vdGhlci1rZXlzKQorICAgICAg
ICAgICAgIChsZXQgKChsaWIgKHN0cmluZy1hcHBlbmQgKGFzc29jLXJlZiBvdXRwdXRzICJvdXQi
KSAiL2xpYiIpKSkKKyAgICAgICAgICAgICAgIChmb3ItZWFjaCAobGFtYmRhIChmaWxlKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoaW5zdGFsbC1maWxlIGZpbGUgbGliKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAoZmluZC1maWxlcyAiLiIgIlxcLnNvJCIpKQorICAgICAgICAg
ICAgICAgI3QpKSkKKyAgICAgICAgIChhZGQtYWZ0ZXIgJ2luc3RhbGwtbmF0aXZlICdidWlsZC1q
YXIKKyAgICAgICAgICAgKGxhbWJkYSBfCisgICAgICAgICAgICAgKGxldCogKChtb2R1bGUgKHN0
cmluZy1hcHBlbmQgIm1vZHVsZXMvbWVkaWEiKSkKKyAgICAgICAgICAgICAgICAgICAgKHJlc291
cmNlcyAoc3RyaW5nLWFwcGVuZCBtb2R1bGUgIi9zcmMvbWFpbi9yZXNvdXJjZXMiKSkKKyAgICAg
ICAgICAgICAgICAgICAgKGNsYXNzZXMgKHN0cmluZy1hcHBlbmQgbW9kdWxlICIvYnVpbGQvY2xh
c3Nlcy9qYXZhL21haW4iKSkpCisgICAgICAgICAgICAgICAoY29weS1yZWN1cnNpdmVseSByZXNv
dXJjZXMgY2xhc3NlcykKKworICAgICAgICAgICAgICAgKGludm9rZSAiYW50IiAiamFyIiAoc3Ry
aW5nLWFwcGVuZCAiLURjbGFzc2VzLmRpcj0iIGNsYXNzZXMpKSkKKyAgICAgICAgICAgICAjdCkp
KSkpCiAgICAgKGRlc2NyaXB0aW9uICJPcGVuSkZYIGlzIGEgY2xpZW50IGFwcGxpY2F0aW9uIHBs
YXRmb3JtIGZvciBkZXNrdG9wLAogbW9iaWxlIGFuZCBlbWJlZGRlZCBzeXN0ZW1zIGJ1aWx0IG9u
IEphdmEuICBJdHMgZ29hbCBpcyB0byBwcm9kdWNlIGEKIG1vZGVybiwgZWZmaWNpZW50LCBhbmQg
ZnVsbHkgZmVhdHVyZWQgdG9vbGtpdCBmb3IgZGV2ZWxvcGluZyByaWNoIGNsaWVudApAQCAtMzM1
MCwxOSArMzU5NiwyOCBAQCAoZGVmaW5lLXB1YmxpYyBqYXZhLW9wZW5qZngtbWVkaWEKIChkZWZp
bmUtcHVibGljIGphdmEtb3BlbmpmeC13ZWIKICAgKHBhY2thZ2UgKGluaGVyaXQgamF2YS1vcGVu
amZ4LWJ1aWxkKQogICAgIChuYW1lICJqYXZhLW9wZW5qZngtd2ViIikKKyAgICAodmVyc2lvbiAi
OC4yMDIiKQogICAgIChhcmd1bWVudHMKICAgICAgYCgjOmphci1uYW1lICJqYXZhLW9wZW5qZngt
d2ViLmphciIKICAgICAgICAjOnNvdXJjZS1kaXIgKHN0cmluZy1qb2luICcoIm1vZHVsZXMvd2Vi
L3NyYy9tYWluL2phdmEiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJtb2R1
bGVzL3dlYi9zcmMvbWFpbi9uYXRpdmUvU291cmNlL1dlYkNvcmUvYmluZGluZ3MvamF2YS9kb20z
IikKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI7IikKLSAgICAgICAjOnRlc3Rz
PyAjZgorICAgICAgICM6dGVzdC1kaXIgIm1vZHVsZXMvd2ViL3NyYy90ZXN0IgorICAgICAgICM6
dGVzdC1pbmNsdWRlIChsaXN0ICIqKi8qVGVzdC4qIikKICAgICAgICAjOm1vZHVsZXMgKChpY2Ut
OSBtYXRjaCkKKyAgICAgICAgICAgICAgICAgIChpY2UtOSByZWdleCkKICAgICAgICAgICAgICAg
ICAgIChndWl4IGJ1aWxkIGFudC1idWlsZC1zeXN0ZW0pCiAgICAgICAgICAgICAgICAgICAoZ3Vp
eCBidWlsZCB1dGlscykpCiAgICAgICAgIzpwaGFzZXMKICAgICAgICAobW9kaWZ5LXBoYXNlcyAl
c3RhbmRhcmQtcGhhc2VzCiAgICAgICAgICAocmVwbGFjZSAnYnVpbGQKLSAgICAgICAgICAgKGxh
bWJkYSogXworICAgICAgICAgICAobGFtYmRhKiAoIzprZXkgb3V0cHV0cyAjOmFsbG93LW90aGVy
LWtleXMpCisgICAgICAgICAgICAgKGxldCAoKGxpYiAoc3RyaW5nLWFwcGVuZCAoYXNzb2MtcmVm
IG91dHB1dHMgIm91dCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
L2xpYi9saWJqZnh3ZWJraXQuc28iKSkpCisgICAgICAgICAgICAgICAoc3Vic3RpdHV0ZSogIm1v
ZHVsZXMvd2ViL3NyYy9tYWluL2phdmEvY29tL3N1bi93ZWJraXQvV2ViUGFnZS5qYXZhIgorICAg
ICAgICAgICAgICAgICAoKChyZWdleHAtcXVvdGUgIk5hdGl2ZUxpYkxvYWRlci5sb2FkTGlicmFy
eShcImpmeHdlYmtpdFwiKTsiKSBhbGwpCisgICAgICAgICAgICAgICAgICAoc3RyaW5nLWFwcGVu
ZAorICAgICAgICAgICAgICAgICAgICJTeXN0ZW0ubG9hZChcIiIgbGliICJcIik7IikpKSkKICAg
ICAgICAgICAgICAoaW52b2tlICJhbnQiICJjb21waWxlIiAiLURjbGFzc2VzLmRpcj1tb2R1bGVz
L3dlYi9idWlsZC9jbGFzc2VzL2phdmEvbWFpbiIpCiAgICAgICAgICAgICAgI3QpKQogCkBAIC0z
NDE4LDYgKzM2NzMsMTIgQEAgKGRlZmluZS1wdWJsaWMgamF2YS1vcGVuamZ4LXdlYgogICAgICAg
ICAgICAgICAgICAgICAgIHdlYi1nZW5lcmF0ZWQtY2xhc3NlcykpCiAgICAgICAgICAgICAgI3Qp
KQogCisgICAgICAgICAoYWRkLWFmdGVyICd1bnBhY2sgJ2NvcHktcmVzb3VyY2VzCisgICAgICAg
ICAgIChsYW1iZGEgXworICAgICAgICAgICAgIChjb3B5LXJlY3Vyc2l2ZWx5ICJtb2R1bGVzL3dl
Yi9zcmMvdGVzdC9yZXNvdXJjZXMiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImJ1
aWxkL3Rlc3QtY2xhc3NlcyIpCisgICAgICAgICAgICAgKGNvcHktcmVjdXJzaXZlbHkgIm1vZHVs
ZXMvd2ViL3NyYy9tYWluL3Jlc291cmNlcyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAiYnVpbGQvY2xhc3NlcyIpKSkKICAgICAgICAgIChhZGQtYWZ0ZXIgJ2dlbmVyYXRlLWhlYWRl
cnMgJ2NvbXBpbGUtbmF0aXZlLWxpbnV4CiAgICAgICAgICAgIChsYW1iZGEqICgjOmtleSBpbnB1
dHMgc3lzdGVtIG91dHB1dHMgIzphbGxvdy1vdGhlci1rZXlzKQogICAgICAgICAgICAgIChsZXQq
ICAoKG1vZHVsZSAoc3RyaW5nLWFwcGVuZCAoZ2V0Y3dkKSAiL21vZHVsZXMvd2ViIikpCkBAIC0z
NDY4LDEwICszNzI5LDE3IEBAIChkZWZpbmUtcHVibGljIGphdmEtb3BlbmpmeC13ZWIKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLWpvaW4gKGxpc3QgIi1XIgogICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLURVX0RFRklORV9G
QUxTRV9BTkRfVFJVRT0xIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiLVdhbGwiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICItV2Vycm9yPWltcGxpY2l0LWZ1bmN0aW9uLWRlY2xhcmF0aW9uIgogICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLVdsLC0tZ2Mt
c2VjdGlvbnMiCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICItV25vLXBhcmVudGhlc2VzIgogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiLVduby11bnVzZWQiCisKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsgc2lsZW5jZSBleGNlc3NpdmUgd2FybmluZ3MK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIiAtV25v
LWV4cGFuc2lvbi10by1kZWZpbmVkIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiIC1Xbm8tZGVwcmVjYXRlZC1jb3B5IgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiIC1Xbm8tcmVkdW5kYW50LW1vdmUi
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIgLVdu
by1jbGFzcy1tZW1hY2Nlc3MiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICIgLVduby11bmRlZiIKKwogICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiLWZQSUMiCiAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICItZm5vLW9taXQtZnJhbWUtcG9pbnRlciIKICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1mbm8tc3RyaWN0
LWFsaWFzaW5nIgpAQCAtMzQ4OCw2ICszNzU2LDM3IEBAIChkZWZpbmUtcHVibGljIGphdmEtb3Bl
bmpmeC13ZWIKICAgICAgICAgICAgICAgICAgICAgICAgICAoZmluZC1maWxlcyAiLiIgIlxcLnNv
JCIpKSkKICAgICAgICAgICAgICAjdCkpCiAKKyAgICAgICAgIChhZGQtYmVmb3JlICdjaGVjayAn
eC10ZXN0LXNldHVwCisgICAgICAgICAgIChsYW1iZGEgXworICAgICAgICAgICAgIChzeXN0ZW0g
Ilh2ZmIgOjMzICYiKQorICAgICAgICAgICAgIChzZXRlbnYgIkRJU1BMQVkiICI6MzMiKQorICAg
ICAgICAgICAgICN0KSkKKworICAgICAgICAgKGFkZC1iZWZvcmUgJ3gtdGVzdC1zZXR1cCAnY29w
eS1jbGFzc2VzCisgICAgICAgICAgIChsYW1iZGEgXworCisgICAgICAgICAgICAgKG1rZGlyLXAg
InNyYy90ZXN0L3Jlc291cmNlcyIpCisgICAgICAgICAgICAgKGNvcHktcmVjdXJzaXZlbHkKKyAg
ICAgICAgICAgICAgIm1vZHVsZXMvd2ViL3NyYy90ZXN0L3Jlc291cmNlcyIKKyAgICAgICAgICAg
ICAgInNyYy90ZXN0L3Jlc291cmNlcyIpCisKKyAgICAgICAgICAgICAobWtkaXItcCAic3JjL21h
aW4vbmF0aXZlL1Rvb2xzL1Rlc3RXZWJLaXRBUEkvVGVzdHMvbWFjLyIpCisgICAgICAgICAgICAg
KGNvcHktZmlsZSAibW9kdWxlcy93ZWIvc3JjL21haW4vbmF0aXZlL1Rvb2xzL1Rlc3RXZWJLaXRB
UEkvVGVzdHMvbWFjL0FoZW0udHRmIgorICAgICAgICAgICAgICAgICAgICAgICAgInNyYy9tYWlu
L25hdGl2ZS9Ub29scy9UZXN0V2ViS2l0QVBJL1Rlc3RzL21hYy9BaGVtLnR0ZiIpCisKKyAgICAg
ICAgICAgICAod2l0aC1kaXJlY3RvcnktZXhjdXJzaW9uICJtb2R1bGVzL3dlYi9zcmMvdGVzdC9y
ZXNvdXJjZXMvdGVzdC9odG1sLyIKKyAgICAgICAgICAgICAgIChhcHBseSBpbnZva2UgImphciIg
ImNmIiAid2ViQXJjaGl2ZUphci5qYXIiIChmaW5kLWZpbGVzICIuIikpKQorCisgICAgICAgICAg
ICAgKGNvcHktcmVjdXJzaXZlbHkgIm1vZHVsZXMvd2ViL2J1aWxkL2NsYXNzZXMvamF2YS9tYWlu
IiAiYnVpbGQvY2xhc3NlcyIpCisgICAgICAgICAgICAgKHN1YnN0aXR1dGUqICJidWlsZC54bWwi
CisgICAgICAgICAgICAgICAoKCI8anVuaXQuKmhhbHRvbmZhaWx1cmU9XCJ5ZXNcIj4iIGFsbCkK
KyAgICAgICAgICAgICAgICAoc3RyaW5nLWFwcGVuZCAiPG1rZGlyIGRpcj1cIiR7dGVzdC5ob21l
fS9ob21lXCIgLz4iIDs7IGhvbWUgZGlyIHJlcXVpcmVkIGZvciBzb21lIHRlc3RzLgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIGFsbAorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICI8c3lzcHJvcGVydHkga2V5PVwidXNlci5ob21lXCIgdmFsdWU9XCIke3Rlc3QuaG9tZX0v
aG9tZVwiLz4iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjxzeXNwcm9wZXJ0eSBr
ZXk9XCJqYXZhLmxpYnJhcnkucGF0aFwiIHZhbHVlPVwibW9kdWxlcy93ZWIvYnVpbGQvbGludXgv
UmVsZWFzZS9saWIvXCIvPiIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiPGp2bWFy
ZyB2YWx1ZT1cIi1EV0VCX0FSQ0hJVkVfSkFSX1RFU1RfRElSPW1vZHVsZXMvd2ViL3NyYy90ZXN0
L3Jlc291cmNlcy90ZXN0L2h0bWwvXCIvPiIpKSkKKyAgICAgICAgICAgICAjdCkpCisKICAgICAg
ICAgIChhZGQtYmVmb3JlICdpbnN0YWxsICdidWlsZC1qYXIKICAgICAgICAgICAgKGxhbWJkYSBf
CiAgICAgICAgICAgICAgKGxldCogKChyZXNvdXJjZXMgIm1vZHVsZXMvd2ViL3NyYy9tYWluL3Jl
c291cmNlcyIpCkBAIC0zNDk4LDE5ICszNzk3LDE1IEBAIChkZWZpbmUtcHVibGljIGphdmEtb3Bl
bmpmeC13ZWIKIAogICAgIChuYXRpdmUtaW5wdXRzCiAgICAgIGAoKCJqYXZhLWp1bml0IiAsamF2
YS1qdW5pdCkKLSAgICAgICAoImphdmEtaGFtY3Jlc3QtY29yZSIgLGphdmEtaGFtY3Jlc3QtY29y
ZSkKICAgICAgICAoImNtYWtlIiAsY21ha2UpCi0gICAgICAgKCJndGsiICxndGsrLTIpCi0gICAg
ICAgKCJndGszIiAsZ3RrKykKICAgICAgICAoInJ1YnkiICxydWJ5KQogICAgICAgICgicGVybCIg
LHBlcmwpCiAgICAgICAgKCJncGVyZiIgLGdwZXJmKQogICAgICAgICgicHl0aG9uLTIiICxweXRo
b24tMikKLSAgICAgICAoInBrZy1jb25maWciICxwa2ctY29uZmlnKSkpCisgICAgICAgKCJwa2ct
Y29uZmlnIiAscGtnLWNvbmZpZykKKyAgICAgICAoInhvcmctc2VydmVyIiAseG9yZy1zZXJ2ZXIt
Zm9yLXRlc3RzKSkpCiAgICAgKGlucHV0cwotICAgICBgKCgiYW50bHIzIiAsYW50bHIzKQotICAg
ICAgICgiamF2YS1zdHJpbmd0ZW1wbGF0ZSIgLGphdmEtc3RyaW5ndGVtcGxhdGUpCi0gICAgICAg
OzsgV2Via2l0IEphdmEgcG9ydCBkZXBlbmRlbmNpZXMKKyAgICAgYCg7OyBXZWJraXQgSmF2YSBw
b3J0IGRlcGVuZGVuY2llcwogICAgICAgICgiaWN1NGMiICxpY3U0YykKICAgICAgICAoImxpYnht
bDIiICxsaWJ4bWwyKQogICAgICAgICgibGlieHNsdCIgLGxpYnhzbHQpCkBAIC00MzEwLDYgKzQ2
MDUsOSBAQCAoZGVmaW5lLXB1YmxpYyBqYXZhLXN3dAogICAgICBgKCM6amFyLW5hbWUgInN3dC5q
YXIiCiAgICAgICAgIzpqZGsgLGljZWR0ZWEtOAogICAgICAgICM6dGVzdHM/ICNmIDsgbm8gImNo
ZWNrIiB0YXJnZXQKKyAgICAgICAjOm1vZHVsZXMgKChndWl4IGJ1aWxkIGFudC1idWlsZC1zeXN0
ZW0pCisgICAgICAgICAgICAgICAgICAoZ3VpeCBidWlsZCB1dGlscykKKyAgICAgICAgICAgICAg
ICAgIChpY2UtOSByZWdleCkpCiAgICAgICAgIzpwaGFzZXMKICAgICAgICAobW9kaWZ5LXBoYXNl
cyAlc3RhbmRhcmQtcGhhc2VzCiAgICAgICAgICAocmVwbGFjZSAndW5wYWNrCkBAIC00MzE5LDYg
KzQ2MTcsMjIgQEAgKGRlZmluZS1wdWJsaWMgamF2YS1zd3QKICAgICAgICAgICAgICAoY2hkaXIg
InN3dCIpCiAgICAgICAgICAgICAgKG1rZGlyICJzcmMiKQogICAgICAgICAgICAgIChpbnZva2Ug
InVuemlwIiAic3JjLnppcCIgIi1kIiAic3JjIikpKQorICAgICAgICAgOzsgZXhwbGljaXRseSBs
b2FkIG5hdGl2ZSBsaWJyYXJ5IGZyb20gZ251L3N0b3JlIGlmIGl0IGNhbid0IGJlIGZvdW5kCisg
ICAgICAgICA7OyBieSBhbnkgb2Ygb3RoZXIgc3RhbmRhcmQgbWVhbnMuCisgICAgICAgICAoYWRk
LWJlZm9yZSAnY29uZmlndXJlICdlbmdyYXZlLXN3dC1wYXRoCisgICAgICAgICAgIChsYW1iZGEq
ICgjOmtleSBvdXRwdXRzICM6YWxsb3ctb3RoZXIta2V5cykKKyAgICAgICAgICAgICAobGV0ICgo
bGliIChzdHJpbmctYXBwZW5kIChhc3NvYy1yZWYgb3V0cHV0cyAib3V0IikKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICIvbGliIikpKQorICAgICAgICAgICAgICAgKHN1
YnN0aXR1dGUqICJzcmMvb3JnL2VjbGlwc2Uvc3d0L2ludGVybmFsL0xpYnJhcnkuamF2YSIKKyAg
ICAgICAgICAgICAgICAgKCgocmVnZXhwLXF1b3RlICIvKiBGYWlsZWQgdG8gZmluZCB0aGUgbGli
cmFyeSAqLyIpIGFsbCkKKyAgICAgICAgICAgICAgICAgIChzdHJpbmctYXBwZW5kCisgICAgICAg
ICAgICAgICAgICAgImlmIChwYXRoICE9IG51bGwpIHsKKyAgICAgICAgICAgICAgICAgICAgIHBh
dGggPSBuZXcgRmlsZSAoXCIiIGxpYiAiXCIpLmdldEFic29sdXRlUGF0aCAoKTsKKyAgICAgICAg
ICAgICAgICAgICAgIGlmIChsb2FkIChwYXRoICsgU0VQQVJBVE9SICsgbWFwcGVkTmFtZTEsIG1l
c3NhZ2UpKSByZXR1cm47CisgICAgICAgICAgICAgICAgICAgICBpZiAobWFwTmFtZSAmJiBsb2Fk
IChwYXRoICsgU0VQQVJBVE9SICsgbWFwcGVkTmFtZTIsIG1lc3NhZ2UpKSByZXR1cm47CisgICAg
ICAgICAgICAgICAgICAgIH1cblxuIgorICAgICAgICAgICAgICAgICAgICAgYWxsKSkpKQorICAg
ICAgICAgICAgICN0KSkKICAgICAgICAgIDs7IFRoZSBjbGFzc3BhdGggY29udGFpbnMgaW52YWxp
ZCBpY2VjYXQgamFycy4gIFNpbmNlIHdlIGRvbid0IG5lZWQKICAgICAgICAgIDs7IGFueXRoaW5n
IG90aGVyIHRoYW4gdGhlIEpESyBvbiB0aGUgY2xhc3NwYXRoLCB3ZSBjYW4gc2ltcGx5IHVuc2V0
CiAgICAgICAgICA7OyBpdC4KLS0gCjIuMzQuMAoK
--000000000000a2c70305e1d1f7a3
Content-Type: application/octet-stream; 
	name="0001-Merge-Alexey-Abramov-s-openjfx-v4-patches.patch"
Content-Disposition: attachment; 
	filename="0001-Merge-Alexey-Abramov-s-openjfx-v4-patches.patch"
Content-Transfer-Encoding: base64
Content-ID: <f_l4lotpgh0>
X-Attachment-Id: f_l4lotpgh0

RnJvbSA4YTllYzE4ZWM2N2NhOWM5NGRiYWZmM2FjMTI5OWZhMmE0NjdjMWMzIE1vbiBTZXAgMTcg
MDA6MDA6MDAgMjAwMQpGcm9tOiBBbGV4ZXkgQWJyYW1vdiA8bGV2ZW5zb25AbW1lci5vcmc+CkRh
dGU6IFNhdCwgMTggSnVuIDIwMjIgMTI6MDc6MTIgKzAxMDAKU3ViamVjdDogW1BBVENIIHY1IDEv
M10gTWVyZ2UgQWxleGV5IEFicmFtb3YncyBvcGVuamZ4IHY0IHBhdGNoZXMKCnNvdXJjZTogaHR0
cHM6Ly9pc3N1ZXMuZ3VpeC5nbnUub3JnLzQxMzYwCi0tLQogZ251L2xvY2FsLm1rICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIHwgICA3ICsKIGdudS9wYWNrYWdlcy9qYXZhLnNjbSAg
ICAgICAgICAgICAgICAgICAgICAgICB8IDk3NyArKysrKysrKysrKysrKystLS0KIC4uLnZhLW9w
ZW5qZngtYnVpbGQtc3dpbmctSkZYUGFuZWwtSkRLOC5wYXRjaCB8ICA2MCArKwogLi4ucGVuamZ4
LWJ1aWxkLXdlYi1EdW1wUmVuZGVyVHJlZS1qYXZhLnBhdGNoIHwgIDMwICsKIC4uLi1vcGVuamZ4
LWJ1aWxkLXdlYi1PcHRpb25zSmF2YS5jbWFrZS5wYXRjaCB8ICAzMiArCiAuLi4vcGF0Y2hlcy9q
YXZhLW9wZW5qZngtYnVpbGQtd2ViLVdURi5wYXRjaCAgfCAgMzMgKwogLi4uLWJ1aWxkLXdlYi1X
ZWJLaXRDb21waWxlckZsYWdzLmNtYWtlLnBhdGNoIHwgIDM2ICsKIC4uLi9wYXRjaGVzL2phdmEt
b3BlbmpmeC1idWlsZC13ZWItaWN1LnBhdGNoICB8ICAzOCArCiAuLi4vamF2YS1vcGVuamZ4LWJ1
aWxkLXdlYi14bG9jYWxlLmgucGF0Y2ggICAgfCAgNTIgKwogOSBmaWxlcyBjaGFuZ2VkLCAxMTQ3
IGluc2VydGlvbnMoKyksIDExOCBkZWxldGlvbnMoLSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnbnUv
cGFja2FnZXMvcGF0Y2hlcy9qYXZhLW9wZW5qZngtYnVpbGQtc3dpbmctSkZYUGFuZWwtSkRLOC5w
YXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGdudS9wYWNrYWdlcy9wYXRjaGVzL2phdmEtb3Blbmpm
eC1idWlsZC13ZWItRHVtcFJlbmRlclRyZWUtamF2YS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0
IGdudS9wYWNrYWdlcy9wYXRjaGVzL2phdmEtb3BlbmpmeC1idWlsZC13ZWItT3B0aW9uc0phdmEu
Y21ha2UucGF0Y2gKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnbnUvcGFja2FnZXMvcGF0Y2hlcy9qYXZh
LW9wZW5qZngtYnVpbGQtd2ViLVdURi5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGdudS9wYWNr
YWdlcy9wYXRjaGVzL2phdmEtb3BlbmpmeC1idWlsZC13ZWItV2ViS2l0Q29tcGlsZXJGbGFncy5j
bWFrZS5wYXRjaAogY3JlYXRlIG1vZGUgMTAwNjQ0IGdudS9wYWNrYWdlcy9wYXRjaGVzL2phdmEt
b3BlbmpmeC1idWlsZC13ZWItaWN1LnBhdGNoCiBjcmVhdGUgbW9kZSAxMDA2NDQgZ251L3BhY2th
Z2VzL3BhdGNoZXMvamF2YS1vcGVuamZ4LWJ1aWxkLXdlYi14bG9jYWxlLmgucGF0Y2gKCmRpZmYg
LS1naXQgYS9nbnUvbG9jYWwubWsgYi9nbnUvbG9jYWwubWsKaW5kZXggNTc2YzFhM2ViNi4uOWI5
ODJjNDJkYiAxMDA2NDQKLS0tIGEvZ251L2xvY2FsLm1rCisrKyBiL2dudS9sb2NhbC5tawpAQCAt
MTMyMCw2ICsxMzIwLDEzIEBAIGRpc3RfcGF0Y2hfREFUQSA9CQkJCQkJXAogICAlRCUvcGFja2Fn
ZXMvcGF0Y2hlcy9qYXZhLWNvbW1vbnMtbGFuZy1maXgtZGVwZW5kZW5jeS5wYXRjaCBcCiAgICVE
JS9wYWNrYWdlcy9wYXRjaGVzL2phdmEtamVyb21xLWZpeC10ZXN0cy5wYXRjaAkJXAogICAlRCUv
cGFja2FnZXMvcGF0Y2hlcy9qYXZhLW9wZW5qZngtYnVpbGQtamRrX3ZlcnNpb24ucGF0Y2ggICAg
IFwKKyAgJUQlL3BhY2thZ2VzL3BhdGNoZXMvamF2YS1vcGVuamZ4LWJ1aWxkLXN3aW5nLUpGWFBh
bmVsLUpESzgucGF0Y2ggICAgIFwKKyAgJUQlL3BhY2thZ2VzL3BhdGNoZXMvamF2YS1vcGVuamZ4
LWJ1aWxkLXdlYi14bG9jYWxlLmgucGF0Y2ggICBcCisgICVEJS9wYWNrYWdlcy9wYXRjaGVzL2ph
dmEtb3BlbmpmeC1idWlsZC13ZWItRHVtcFJlbmRlclRyZWUtamF2YS5wYXRjaAlcCisgICVEJS9w
YWNrYWdlcy9wYXRjaGVzL2phdmEtb3BlbmpmeC1idWlsZC13ZWItT3B0aW9uc0phdmEuY21ha2Uu
cGF0Y2gJXAorICAlRCUvcGFja2FnZXMvcGF0Y2hlcy9qYXZhLW9wZW5qZngtYnVpbGQtd2ViLVdU
Ri5wYXRjaAkJCVwKKyAgJUQlL3BhY2thZ2VzL3BhdGNoZXMvamF2YS1vcGVuamZ4LWJ1aWxkLXdl
Yi1XZWJLaXRDb21waWxlckZsYWdzLmNtYWtlLnBhdGNoCVwKKyAgJUQlL3BhY2thZ2VzL3BhdGNo
ZXMvamF2YS1vcGVuamZ4LWJ1aWxkLXdlYi1pY3UucGF0Y2gJCQlcCiAgICVEJS9wYWNrYWdlcy9w
YXRjaGVzL2phdmEtcG93ZXJtb2NrLWZpeC1qYXZhLWZpbGVzLnBhdGNoCQlcCiAgICVEJS9wYWNr
YWdlcy9wYXRjaGVzL2phdmEtc2ltcGxlLXhtbC1maXgtdGVzdHMucGF0Y2gJCVwKICAgJUQlL3Bh
Y2thZ2VzL3BhdGNoZXMvamF2YS1zdmctc2FsYW1hbmRlci1GaXgtbm9uLWRldC5wYXRjaAlcCmRp
ZmYgLS1naXQgYS9nbnUvcGFja2FnZXMvamF2YS5zY20gYi9nbnUvcGFja2FnZXMvamF2YS5zY20K
aW5kZXggZDJmYmY4NDBhMC4uNTE4NTk2Nzk2MCAxMDA2NDQKLS0tIGEvZ251L3BhY2thZ2VzL2ph
dmEuc2NtCisrKyBiL2dudS9wYWNrYWdlcy9qYXZhLnNjbQpAQCAtMTEsNiArMTEsNyBAQAogOzs7
IENvcHlyaWdodCDCqSAyMDE4IENocmlzIE1hcnVzaWNoIDxjbW1hcnVzaWNoQGdtYWlsLmNvbT4K
IDs7OyBDb3B5cmlnaHQgwqkgMjAxOCwgMjAxOSwgMjAyMCwgMjAyMSwgMjAyMiBFZnJhaW0gRmxh
c2huZXIgPGVmcmFpbUBmbGFzaG5lci5jby5pbD4KIDs7OyBDb3B5cmlnaHQgwqkgMjAxOSwgMjAy
MCwgMjAyMSBCasO2cm4gSMO2ZmxpbmcgPGJqb2Vybi5ob2VmbGluZ0Biam9lcm5ob2VmbGluZy5k
ZT4KKzs7OyBDb3B5cmlnaHQgwqkgMjAyMCBBbGV4ZXkgQWJyYW1vdiA8bGV2ZW5zb25AbW1lci5v
cmc+CiA7OzsgQ29weXJpZ2h0IMKpIDIwMjAgSmFuIChqYW5uZWtlKSBOaWV1d2VuaHVpemVuIDxq
YW5uZWtlQGdudS5vcmc+CiA7OzsgQ29weXJpZ2h0IMKpIDIwMjAgUmFnaGF2IEd1cnVyYWphbiA8
cmFnaGF2Z3VydXJhamFuQGRpc3Jvb3Qub3JnPgogOzs7IENvcHlyaWdodCDCqSAyMDIwLCAyMDIy
IE1heGltIENvdXJub3llciA8bWF4aW0uY291cm5veWVyQGdtYWlsLmNvbT4KQEAgLTU5LDEyICs2
MCwxNSBAQCAoZGVmaW5lLW1vZHVsZSAoZ251IHBhY2thZ2VzIGphdmEpCiAgICM6dXNlLW1vZHVs
ZSAoZ251IHBhY2thZ2VzIGNwaW8pCiAgICM6dXNlLW1vZHVsZSAoZ251IHBhY2thZ2VzIGN1cHMp
CiAgICM6dXNlLW1vZHVsZSAoZ251IHBhY2thZ2VzIGNvbXByZXNzaW9uKQorICAjOnVzZS1tb2R1
bGUgKGdudSBwYWNrYWdlcyBjbWFrZSkKICAgIzp1c2UtbW9kdWxlIChnbnUgcGFja2FnZXMgZWxm
KQogICAjOnVzZS1tb2R1bGUgKGdudSBwYWNrYWdlcyBmb250dXRpbHMpCiAgICM6dXNlLW1vZHVs
ZSAoZ251IHBhY2thZ2VzIGdhd2spCiAgICM6dXNlLW1vZHVsZSAoZ251IHBhY2thZ2VzIGdjYykK
ICAgIzp1c2UtbW9kdWxlIChnbnUgcGFja2FnZXMgZ2V0dGV4dCkKKyAgIzp1c2UtbW9kdWxlIChn
bnUgcGFja2FnZXMgZ3BlcmYpCiAgICM6dXNlLW1vZHVsZSAoZ251IHBhY2thZ2VzIGdsKQorICAj
OnVzZS1tb2R1bGUgKGdudSBwYWNrYWdlcyBnbGliKQogICAjOnVzZS1tb2R1bGUgKGdudSBwYWNr
YWdlcyBnaG9zdHNjcmlwdCkgO2xjbXMKICAgIzp1c2UtbW9kdWxlIChnbnUgcGFja2FnZXMgZ25v
bWUpCiAgICM6dXNlLW1vZHVsZSAoZ251IHBhY2thZ2VzIGdyb292eSkKQEAgLTg1LDExICs4OSwx
NCBAQCAoZGVmaW5lLW1vZHVsZSAoZ251IHBhY2thZ2VzIGphdmEpCiAgICM6dXNlLW1vZHVsZSAo
Z251IHBhY2thZ2VzIHdnZXQpCiAgICM6dXNlLW1vZHVsZSAoZ251IHBhY2thZ2VzIHBrZy1jb25m
aWcpCiAgICM6dXNlLW1vZHVsZSAoZ251IHBhY2thZ2VzIHBlcmwpCisgICM6dXNlLW1vZHVsZSAo
Z251IHBhY2thZ2VzIHB5dGhvbikKICAgIzp1c2UtbW9kdWxlIChnbnUgcGFja2FnZXMgcG9wdCkK
ICAgIzp1c2UtbW9kdWxlIChnbnUgcGFja2FnZXMga2VyYmVyb3MpCisgICM6dXNlLW1vZHVsZSAo
Z251IHBhY2thZ2VzIHJ1YnkpCiAgICM6dXNlLW1vZHVsZSAoZ251IHBhY2thZ2VzIHNlY3VyaXR5
LXRva2VuKQogICAjOnVzZS1tb2R1bGUgKGdudSBwYWNrYWdlcyB4bWwpCiAgICM6dXNlLW1vZHVs
ZSAoZ251IHBhY2thZ2VzIHhvcmcpCisgICM6dXNlLW1vZHVsZSAoZ251IHBhY2thZ2VzIHNxbGl0
ZSkKICAgIzp1c2UtbW9kdWxlIChnbnUgcGFja2FnZXMgdGV4aW5mbykKICAgIzp1c2UtbW9kdWxl
ICgoc3JmaSBzcmZpLTEpICM6c2VsZWN0IChmb2xkIGFsaXN0LWRlbGV0ZSkpCiAgICM6dXNlLW1v
ZHVsZSAoc3JmaSBzcmZpLTExKQpAQCAtMjUxNywxMSArMjUyNCwyMiBAQCAoZGVmaW5lLXB1Ymxp
YyBqYXZhLW9wZW5qZngtYnVpbGQKICAgICAgICAgICAgICAgICcoYmVnaW4KICAgICAgICAgICAg
ICAgICAgIDs7IERlbGV0ZSBpbmNsdWRlZCBncmFkbGUgamFyCiAgICAgICAgICAgICAgICAgICAo
ZGVsZXRlLWZpbGUtcmVjdXJzaXZlbHkgImdyYWRsZS93cmFwcGVyIikKKyAgICAgICAgICAgICAg
ICAgIDs7IERlbGV0ZSBzb3VyY2UgY29kZSBvZiBhIFRoaXJkUGFydHkgbGlicmFyaWVzCisgICAg
ICAgICAgICAgICAgICAoZGVsZXRlLWZpbGUtcmVjdXJzaXZlbHkgIm1vZHVsZXMvd2ViL3NyYy9t
YWluL25hdGl2ZS9Tb3VyY2UvVGhpcmRQYXJ0eSIpCisgICAgICAgICAgICAgICAgICAoZGVsZXRl
LWZpbGUtcmVjdXJzaXZlbHkgIm1vZHVsZXMvd2ViL3NyYy9tYWluL25hdGl2ZS9Tb3VyY2UvUGxh
dGZvcm1KYXZhLmNtYWtlIikKICAgICAgICAgICAgICAgICAgICN0KSkKICAgICAgICAgICAgICAg
KHNoYTI1NgogICAgICAgICAgICAgICAgKGJhc2UzMgogICAgICAgICAgICAgICAgICIweWczOG13
cGl2c3djY3Y5bjk2azA2eDNpdjgyaTRweDFhOXhnOWw4ZHN3endtZmoyNTlmIikpCi0gICAgICAg
ICAgICAgIChwYXRjaGVzIChzZWFyY2gtcGF0Y2hlcyAiamF2YS1vcGVuamZ4LWJ1aWxkLWpka192
ZXJzaW9uLnBhdGNoIikpKSkKKyAgICAgICAgICAgICAgKHBhdGNoZXMgKHNlYXJjaC1wYXRjaGVz
ICJqYXZhLW9wZW5qZngtYnVpbGQtamRrX3ZlcnNpb24ucGF0Y2giCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiamF2YS1vcGVuamZ4LWJ1aWxkLXN3aW5nLUpGWFBhbmVs
LUpESzgucGF0Y2giCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiamF2
YS1vcGVuamZ4LWJ1aWxkLXdlYi14bG9jYWxlLmgucGF0Y2giCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiamF2YS1vcGVuamZ4LWJ1aWxkLXdlYi1EdW1wUmVuZGVyVHJl
ZS1qYXZhLnBhdGNoIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImph
dmEtb3BlbmpmeC1idWlsZC13ZWItT3B0aW9uc0phdmEuY21ha2UucGF0Y2giCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiamF2YS1vcGVuamZ4LWJ1aWxkLXdlYi1XVEYu
cGF0Y2giCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiamF2YS1vcGVu
amZ4LWJ1aWxkLXdlYi1XZWJLaXRDb21waWxlckZsYWdzLmNtYWtlLnBhdGNoIgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImphdmEtb3BlbmpmeC1idWlsZC13ZWItaWN1
LnBhdGNoIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKSkpKQogICAg
IChidWlsZC1zeXN0ZW0gYW50LWJ1aWxkLXN5c3RlbSkKICAgICAoYXJndW1lbnRzCiAgICAgIGAo
IzpqYXItbmFtZSAiamF2YS1vcGVuamZ4LmphciIKQEAgLTI1ODAsMTEyICsyNTk4LDY5MyBAQCAo
ZGVmaW5lLXB1YmxpYyBqYXZhLW9wZW5qZngtYmFzZQogYXBwbGljYXRpb25zLiAgVGhpcyBwYWNr
YWdlIGNvbnRhaW5zIGJhc2UgY2xhc3NlcyBmb3IgdGhlIE9wZW5KRlgKIGRpc3RyaWJ1dGlvbi4i
KSkpCiAKKzs7IFRoZSBncmFwaGljcyBtb2R1bGUgaXMgbmVlZGVkIGZvciBhbnkgZ3JhcGhpY2Fs
IEphdmFGWCBhcHBsaWNhdGlvbi4gSXQKKzs7IHJlcXVpcmVzIHRoZSBiYXNlIG1vZHVsZSBhbmQg
aW5jbHVkZXMgdGhlIHNjZW5lIGdyYXBoLCBsYXlvdXQsIGNzcywgcHJpc20sCis7OyB3aW5kb3dp
bmcsIGV0Yy4gVGhpcyBpcyBhIGZhaXJseSBjb21wbGljYXRlZCBtb2R1bGUuIFRoZXJlIGFyZSBt
YW55Cis7OyBkaWZmZXJlbnQgdHlwZXMgb2YgbmF0aXZlIGNvbXBvbmVudHMgdGhhdCBhbGwgbmVl
ZCB0byBiZSBjb21waWxlZC4KKzs7Cis7OyBBbGwgdGhlIGJlbGxvdyBzdGVwcyB3ZXJlIHRha2Vu
IGJ5IGluc3BlY3RpbmcgYnVpbGQuZ3JhZGVsIGFuZCAgLi9ncmFkbGV3IGJ1aWxkIC0taW5mbwor
OzsgcmVzdWx0LgogKGRlZmluZS1wdWJsaWMgamF2YS1vcGVuamZ4LWdyYXBoaWNzCiAgIChwYWNr
YWdlIChpbmhlcml0IGphdmEtb3BlbmpmeC1idWlsZCkKICAgICAobmFtZSAiamF2YS1vcGVuamZ4
LWdyYXBoaWNzIikKICAgICAoYXJndW1lbnRzCiAgICAgIGAoIzpqYXItbmFtZSAiamF2YS1vcGVu
amZ4LWdyYXBoaWNzLmphciIKICAgICAgICAjOnNvdXJjZS1kaXIgIm1vZHVsZXMvZ3JhcGhpY3Mv
c3JjL21haW4vamF2YSIKLSAgICAgICAjOnRlc3RzPyAjZjsgcmVxdWlyZSBYCisgICAgICAgIzp0
ZXN0cz8gI2YgICAgICAgICAgICAgICA7IHJlcXVpcmVzIFgKICAgICAgICAjOnRlc3QtZGlyICJt
b2R1bGVzL2dyYXBoaWNzL3NyYy90ZXN0IgorICAgICAgICM6dGVzdC1pbmNsdWRlIChsaXN0ICIq
Ki8qVGVzdC4qIikKKyAgICAgICAjOm1vZHVsZXMgKChndWl4IGJ1aWxkIGFudC1idWlsZC1zeXN0
ZW0pCisgICAgICAgICAgICAgICAgICAoZ3VpeCBidWlsZCB1dGlscykKKyAgICAgICAgICAgICAg
ICAgIChzcmZpIHNyZmktMSkKKyAgICAgICAgICAgICAgICAgIChzcmZpIHNyZmktMjYpCisgICAg
ICAgICAgICAgICAgICAoaWNlLTkgcmVnZXgpCisgICAgICAgICAgICAgICAgICAoaWNlLTkgbWF0
Y2gpKQogICAgICAgICM6cGhhc2VzCi0gICAgICAgKG1vZGlmeS1waGFzZXMgJXN0YW5kYXJkLXBo
YXNlcwotICAgICAgICAgKGFkZC1hZnRlciAndW5wYWNrICdjb3B5LW1pc3NpbmctZmlsZQotICAg
ICAgICAgICAobGFtYmRhKiAoIzprZXkgaW5wdXRzICM6YWxsb3ctb3RoZXIta2V5cykKLSAgICAg
ICAgICAgICAobGV0ICgodGFyZ2V0ICJtb2R1bGVzL2dyYXBoaWNzL3NyYy9tYWluL25hdGl2ZS1w
cmlzbS1zdy9KTmF0aXZlU3VyZmFjZS5jIikpCi0gICAgICAgICAgICAgICAoY29weS1maWxlIChh
c3NvYy1yZWYgaW5wdXRzICJKTmF0aXZlU3VyZmFjZS5jIikgdGFyZ2V0KQotICAgICAgICAgICAg
ICAgOzsgWFhYOiBsb29rcyBsaWtlIHRoZSBtaXNzaW5nIGZpbGUgd2UgZm91bmQgaXNuJ3QgKnF1
aXRlKgotICAgICAgICAgICAgICAgOzsgY29tcGF0aWJsZS4uLgotICAgICAgICAgICAgICAgKHN1
YnN0aXR1dGUqIHRhcmdldAotICAgICAgICAgICAgICAgICAoKCJjYXNlIFRZUEVfSU5UX0FSR0I6
IikgIiIpKSkpKQotICAgICAgICAgKGFkZC1hZnRlciAnYnVpbGQgJ2J1aWxkLW5hdGl2ZQotICAg
ICAgICAgICAobGFtYmRhKiAoIzprZXkgaW5wdXRzIG91dHB1dHMgIzphbGxvdy1vdGhlci1rZXlz
KQotICAgICAgICAgICAgIChsZXQgKChqZGsgKGFzc29jLXJlZiBpbnB1dHMgImpkayIpKQotICAg
ICAgICAgICAgICAgICAgIChjbGFzcy1maWxlLT5jbGFzcy1uYW1lCi0gICAgICAgICAgICAgICAg
ICAgIChsYW1iZGEgKGNsYXNzLWZpbGUpCi0gICAgICAgICAgICAgICAgICAgICAgKHN0cmluZy1t
YXAgKGxhbWJkYSAoYykKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZiAo
Y2hhcj0/IGMgI1wvKSAjXC4gYykpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
KHN0cmluZy1kcm9wLXJpZ2h0IGNsYXNzLWZpbGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cmluZy1sZW5ndGggIi5jbGFzcyIpKSkpKSkK
LSAgICAgICAgICAgICAgIChzZXRlbnYgIkNQUEZMQUdTIgotICAgICAgICAgICAgICAgICAgICAg
ICAoc3RyaW5nLWFwcGVuZCAiLURJTkxJTkU9aW5saW5lICIKLSAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIi1ETElOVVggIgotICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAiLUkiIGpkayAiL2luY2x1ZGUgIgotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiLUkiIGpkayAiL2luY2x1ZGUvbGludXggIgotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiLUkgIiAoZ2V0Y3dkKSAiL2J1aWxkL2NsYXNzZXMvaW5j
bHVkZSAiCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItSSAiIChnZXRj
d2QpICIvbW9kdWxlcy9ncmFwaGljcy9zcmMvbWFpbi9uYXRpdmUtcHJpc20tc3ciKSkKLQotICAg
ICAgICAgICAgICAgOzsgSW5zdHJ1Y3Rpb25zIGhhdmUgYmVlbiBhZGFwdGVkIGZyb20gYnVpbGRT
cmMvbGludXguZ3JhZGxlCi0gICAgICAgICAgICAgICAod2l0aC1kaXJlY3RvcnktZXhjdXJzaW9u
ICJidWlsZC9jbGFzc2VzIgotICAgICAgICAgICAgICAgICA7OyBCdWlsZCBwcmlzbQotICAgICAg
ICAgICAgICAgICAobWtkaXItcCAiaW5jbHVkZSIpCi0KLSAgICAgICAgICAgICAgICAgOzsgR2Vu
ZXJhdGUgaGVhZGVycyBmb3IgcHJpc20KLSAgICAgICAgICAgICAgICAgKGFwcGx5IGludm9rZSAi
amF2YWgiICItZCIgImluY2x1ZGUiICItY3AiICIuIgotICAgICAgICAgICAgICAgICAgICAgICAg
KG1hcCBjbGFzcy1maWxlLT5jbGFzcy1uYW1lCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAg
IChhcHBlbmQgKGZpbmQtZmlsZXMgImNvbS9zdW4vcHJpc20vaW1wbCIgIlxcLmNsYXNzJCIpCi0g
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZpbmQtZmlsZXMgImNvbS9zdW4v
cHJpc20iICJQcmVzZW50YWJsZVN0YXRlLipcXC5jbGFzcyQiKSkpKQotCi0gICAgICAgICAgICAg
ICAgIDs7IC4uLnRoZW4gZm9yIHByaXNtX3N3Ci0gICAgICAgICAgICAgICAgIChhcHBseSBpbnZv
a2UgImphdmFoIiAiLWQiICJpbmNsdWRlIiAiLWNwIiAiLiIKLSAgICAgICAgICAgICAgICAgICAg
ICAgIChtYXAgY2xhc3MtZmlsZS0+Y2xhc3MtbmFtZQotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoZmluZC1maWxlcyAiY29tL3N1bi9waXNjZXMiICJcXC5jbGFzcyQiKSkpCi0KLSAgICAg
ICAgICAgICAgICAgOzsgLi4uYW5kIGZvciBwcmlzbV9lczIKLSAgICAgICAgICAgICAgICAgKGFw
cGx5IGludm9rZSAiamF2YWgiICItZCIgImluY2x1ZGUiICItY3AiICIuIgotICAgICAgICAgICAg
ICAgICAgICAgICAgKG1hcCBjbGFzcy1maWxlLT5jbGFzcy1uYW1lCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChmaW5kLWZpbGVzICJjb20vc3VuL3ByaXNtL2VzMiIgIlxcLmNsYXNzJCIp
KSkpKQotCi0gICAgICAgICAgICAgKHdpdGgtZGlyZWN0b3J5LWV4Y3Vyc2lvbiAibmV0YmVhbnMv
bmF0aXZlLXByaXNtIgotICAgICAgICAgICAgICAgKGludm9rZSAibWFrZSIgIkNPTkY9UmVsZWFz
ZSIpKQotICAgICAgICAgICAgICh3aXRoLWRpcmVjdG9yeS1leGN1cnNpb24gIm5ldGJlYW5zL25h
dGl2ZS1wcmlzbS1zdyIKLSAgICAgICAgICAgICAgIChpbnZva2UgIm1ha2UiICJDT05GPVJlbGVh
c2UiKSkKLSAgICAgICAgICAgICA7OyBUT0RPOiBUaGlzIGZhaWxzIGR1ZSB0byB1bmtub3duIEVH
TCBwcm9jZWR1cmUgbmFtZXMKLSAgICAgICAgICAgICAjOwotICAgICAgICAgICAgICh3aXRoLWRp
cmVjdG9yeS1leGN1cnNpb24gIm5ldGJlYW5zL25hdGl2ZS1wcmlzbS1lczIiCi0gICAgICAgICAg
ICAgICAoaW52b2tlICJtYWtlIiAiQ09ORj1SZWxlYXNlIikpCisgICAgICAgKGxldCogKChqZGsg
KGFzc29jLXJlZiAlYnVpbGQtaW5wdXRzICJqZGsiKSkKKyAgICAgICAgICAgICAgKGphdmFjL2gt
ZmxhZ3MKKyAgICAgICAgICAgICAgICcoOzsgV2hlbiBqYXZhYyBpcyBjb21waWxpbmcgY29kZSBp
dCBkb2Vzbid0IGxpbmsKKyAgICAgICAgICAgICAgICAgOzsgYWdhaW5zdCBydC5qYXIgYnkgZGVm
YXVsdC4gSW5zdGVhZCBpdCB1c2VzIHNwZWNpYWwKKyAgICAgICAgICAgICAgICAgOzsgc3ltYm9s
IGZpbGUgbGliL2N0LnN5bSB3aXRoIGNsYXNzIHN0dWJzLgorICAgICAgICAgICAgICAgICA7OyBT
dXJwcmlzaW5nbHkgdGhpcyBmaWxlIGNvbnRhaW5zIG1hbnkgYnV0IG5vdCAqYWxsKgorICAgICAg
ICAgICAgICAgICA7OyBvZiBpbnRlcm5hbCBjbGFzc2VzLgorICAgICAgICAgICAgICAgICAiLVhE
aWdub3JlLnN5bWJvbC5maWxlIgorICAgICAgICAgICAgICAgICA7OyBJdCdzIGFuIGludGVybmFs
IG9wdGlvbiBmb3IgSkRLIDEuNysgdGhhdCBwcmV2ZW50cworICAgICAgICAgICAgICAgICA7OyB0
aGUgY29tcGlsZXIgZnJvbSBzaGFyaW5nIGEgdGFibGUgdGhhdCB3aWxsIG5ldmVyCisgICAgICAg
ICAgICAgICAgIDs7IGJlIHJldXNlZC4gV2hlbiBzaGFyZWQsIGl0IGNhbid0IGJlIGdhcmJhZ2UK
KyAgICAgICAgICAgICAgICAgOzsgY29sbGVjdGVkLCBjb250aW51ZXMgdG8gYWNjdW11bGF0ZSBk
YXRhLCBhbmQKKyAgICAgICAgICAgICAgICAgOzsgdGhlcmVmb3JlIHdhc3RlcyBtZW1vcnkuCisg
ICAgICAgICAgICAgICAgICItWER1c2VVbnNoYXJlZFRhYmxlPXRydWUiKSkKKyAgICAgICAgICAg
ICAgKGNvbW1vbi1mbGFncworICAgICAgICAgICAgICAgJygiLWZuby1zdHJpY3QtYWxpYXNpbmci
ICItZlBJQyIgIi1mbm8tb21pdC1mcmFtZS1wb2ludGVyIiA7OyBvcHRpbWl6YXRpb24gZmxhZ3MK
KyAgICAgICAgICAgICAgICAgIi1mc3RhY2stcHJvdGVjdG9yIgorICAgICAgICAgICAgICAgICAi
LVciICItV2FsbCIgIi1Xbm8tdW51c2VkIiAiLVduby1wYXJlbnRoZXNlcyIpKQorICAgICAgICAg
ICAgICAoY2MtZmxhZ3MKKyAgICAgICAgICAgICAgIGAoLEBjb21tb24tZmxhZ3MgIi1jIiAiLWZm
dW5jdGlvbi1zZWN0aW9ucyIgIi1mZGF0YS1zZWN0aW9ucyIKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIi1JIiAsKHN0cmluZy1hcHBlbmQgamRrICIvaW5jbHVkZSIpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICItSSIgLChzdHJpbmctYXBwZW5kIGpkayAiL2luY2x1
ZGUvbGludXgiKSkpCisgICAgICAgICAgICAgIChsaW5rLWZsYWdzCisgICAgICAgICAgICAgICBg
KCItc3RhdGljLWxpYmdjYyIgIi1zdGF0aWMtbGlic3RkYysrIiAiLXNoYXJlZCIgLEBjb21tb24t
ZmxhZ3MKKyAgICAgICAgICAgICAgICAgIi16IiAicmVscm8iCisgICAgICAgICAgICAgICAgICIt
V2wsLS1nYy1zZWN0aW9ucyIpKQorICAgICAgICAgICAgICAoamF2YS1hdXgtY2xhc3M/CisgICAg
ICAgICAgICAgICAobGFtYmRhIChjbGFzcykKKyAgICAgICAgICAgICAgICAgKHN0cmluZy1tYXRj
aCAiXFwkWzAtOV0rXFwuY2xhc3MiIGNsYXNzKSkpCisgICAgICAgICAgICAgIChqYXZhLWxpc3Qt
Y2xhc3NlcworICAgICAgICAgICAgICAgKGxhbWJkYSAocGF0aCkKKyAgICAgICAgICAgICAgICAg
OzsgRm9yIGVhY2ggLmphdmEgZmlsZSB3ZSBuZWVkIHRvIGZpZ3VyZSBvdXQgd2hhdAorICAgICAg
ICAgICAgICAgICA7OyBjbGFzcyB0aGUgLmphdmEgZmlsZSBiZWxvbmdzIGluIGFuZCBjb252ZXJ0
IGl0IHRvIGEKKyAgICAgICAgICAgICAgICAgOzsgY2xhc3MgbmFtZS4KKyAgICAgICAgICAgICAg
ICAgKGZpbHRlci1tYXAKKyAgICAgICAgICAgICAgICAgIChsYW1iZGEgKGNsYXNzKQorICAgICAg
ICAgICAgICAgICAgICAobGV0KiAoKHJ4IChtYWtlLXJlZ2V4cCAoc3RyaW5nLWFwcGVuZCBwYXRo
IGZpbGUtbmFtZS1zZXBhcmF0b3Itc3RyaW5nICI/IikpKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGNsYXNzIChzdHJpbmctZHJvcC1yaWdodCBjbGFzcyAoc3RyaW5nLWxlbmd0aCAiLmNs
YXNzIikpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKGNsYXNzIChtYXRjaDpzdWZmaXgg
KHJlZ2V4cC1leGVjIHJ4IGNsYXNzKSkpKQorICAgICAgICAgICAgICAgICAgICAgIChpZiAoamF2
YS1hdXgtY2xhc3M/IGNsYXNzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAjZgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLWpvaW4gKHN0cmluZy1zcGxpdCBjbGFzcyAjXC8p
ICIuIikpKSkKKyAgICAgICAgICAgICAgICAgIChmaW5kLWZpbGVzIHBhdGggIlxcLmNsYXNzJCIp
KSkpKQorICAgICAgICAgKG1vZGlmeS1waGFzZXMgJXN0YW5kYXJkLXBoYXNlcwogCi0gICAgICAg
ICAgICAgKGxldCogKChvdXQgKGFzc29jLXJlZiBvdXRwdXRzICJvdXQiKSkKLSAgICAgICAgICAg
ICAgICAgICAgKGRpciAsKG1hdGNoICglY3VycmVudC1zeXN0ZW0pCi0gICAgICAgICAgICAgICAg
ICAgICAgICAgICAgKCJpNjg2LWxpbnV4IgotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAi
aTM4NiIpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgKChvciAiYXJtaGYtbGludXgiICJh
YXJjaDY0LWxpbnV4IikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImFybSIpCi0gICAg
ICAgICAgICAgICAgICAgICAgICAgICAgKChvciAieDg2XzY0LWxpbnV4IikKLSAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgImFtZDY0IikKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAo
XyAidW5rbm93biIpKSkKLSAgICAgICAgICAgICAgICAgICAgKHRhcmdldCAoc3RyaW5nLWFwcGVu
ZCBvdXQgIi9zaGFyZS8iIGRpciAiLyIpKSkKLSAgICAgICAgICAgICAgIChta2Rpci1wIHRhcmdl
dCkKLSAgICAgICAgICAgICAgIChmb3ItZWFjaCAobGFtYmRhIChmaWxlKQotICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKGxldCAoKG5ldy1uYW1lCi0gICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKHN0cmluZy1hcHBlbmQgImxpYiIKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLW1hcAotICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGFtYmRhIChjKQotICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpZiAoY2hhcj0/IGMgI1wtKSAj
XF8gYykpCi0gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IChzdHJpbmctZHJvcCAoYmFzZW5hbWUgZmlsZSkKLSAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJpbmctbGVuZ3RoICJsaWJu
YXRpdmUtIikpKSkpKQotICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoY29weS1maWxlIGZp
bGUKLSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLWFwcGVu
ZCB0YXJnZXQgbmV3LW5hbWUpKSkpCi0gICAgICAgICAgICAgICAgICAgICAgICAgKGZpbmQtZmls
ZXMgIm5ldGJlYW5zIiAiXFwuc28kIikpKSkpKSkpCi0gICAgKHByb3BhZ2F0ZWQtaW5wdXRzCi0g
ICAgIChsaXN0IGphdmEtb3BlbmpmeC1iYXNlIGphdmEtc3d0KSkKLSAgICA7OyBYWFg6IGZvciB1
bmtub3duIHJlYXNvbnMKLSAgICA7OyBtb2R1bGVzL2dyYXBoaWNzL3NyYy9tYWluL25hdGl2ZS1w
cmlzbS1zdy9KTmF0aXZlU3VyZmFjZS5jIGlzIG1pc3NpbmcKLSAgICA7OyBpbiB0aGlzIHJldmlz
aW9uLgorICAgICAgICAgICAocmVwbGFjZSAnYnVpbGQKKyAgICAgICAgICAgICAobGFtYmRhIF8K
KyAgICAgICAgICAgICAgIDs7IERvIG5vdCBtaXggZGlmZmVyZW50IGNsYXNzZXMuIFRoZXJlIHdp
bGwgYmUgbW9yZSBzdHVmZiBpbiBidWlsZC9jbGFzc2VzCisgICAgICAgICAgICAgICAoaW52b2tl
ICJhbnQiICJjb21waWxlIiAiLURjbGFzc2VzLmRpcj1tb2R1bGVzL2dyYXBoaWNzL2J1aWxkL2Ns
YXNzZXMvamF2YS9tYWluIikKKyAgICAgICAgICAgICAgICN0KSkKKworICAgICAgICAgICA7OyBU
aGUgRGVjb3JhIGFuZCBQcmlzbSBKU0wgZmlsZXMgaGF2ZSB0byBiZSBnZW5lcmF0ZWQgaW4gYSB2
ZXJ5IHNwZWNpZmljIHNldCBvZiBzdGVwcy4KKyAgICAgICAgICAgOzsgICAgICAxKSBDb21waWxl
IHRoZSAqQ29tcGlsZS5qYXZhIGNsYXNzZXMuIFRoZXNlIGxpdmUgaW4gc3JjL21haW4vanNsLSog
YW5kIHdpbGwgYmUKKyAgICAgICAgICAgOzsgICAgICAgICBvdXRwdXQgdG8gJGJ1aWxkRGlyL2Ns
YXNzZXMvanNsLWNvbXBpbGVycy8qICh3aGVyZSAqID09IGRlY29yYSBvciBwcmlzbSkuCisgICAg
ICAgICAgIDs7ICAgICAgMikgR2VuZXJhdGUgc291cmNlIGZpbGVzIGZyb20gdGhlIEpTTCBmaWxl
cyBjb250YWluZWQgaW4gc3JjL21haW4vanNsLSouIFRoZXNlCisgICAgICAgICAgIDs7ICAgICAg
ICAgd2lsbCBiZSBvdXRwdXQgdG8gJGJ1aWxkRGlyL2dlbmVyYXRlZC1zcmMvanNsLSoKKyAgICAg
ICAgICAgOzsgICAgICAzKSBDb21waWxlIHRoZSBKU0wgSmF2YSBzb3VyY2VzIGluICRidWlsZERp
ci9nZW5lcmF0ZWQtc3JjL2pzbC0qIGFuZCBwdXQgdGhlIG91dHB1dAorICAgICAgICAgICA7OyAg
ICAgICAgIGludG8gY2xhc3Nlcy9qc2wtKgorICAgICAgICAgICA7OyAgICAgIDQpIENvbXBpbGUg
dGhlIG5hdGl2ZSBKU0wgc291cmNlcyBpbiAkYnVpbGREaXIvZ2VuZXJhdGVkLXNyYy9qc2wtKiBh
bmQgcHV0IHRoZSBvYmoKKyAgICAgICAgICAgOzsgICAgICAgICBmaWxlcyBpbnRvIG5hdGl2ZS9q
c2wtKiBhbmQgdGhlIHJlc3VsdGluZyBsaWJyYXJ5IGludG8gbGlicy9qc2wtKi5kbGx8c298ZHls
aWIKKyAgICAgICAgICAgOzsgICAgICA1KSBNb2RpZnkgdGhlIGphciBzdGVwIHRvIGluY2x1ZGUg
Y2xhc3Nlcy9qc2wtKgorICAgICAgICAgICA7OyBUaGUgbmF0aXZlIGxpYnJhcnkgbXVzdCBiZSBj
b3BpZWQgb3ZlciBkdXJpbmcgU0RLIGNyZWF0aW9uIHRpbWUgaW4gdGhlICJzZGsiIHRhc2suIElu
CisgICAgICAgICAgIDs7IGFkZGl0aW9uIHRvIHRoZXNlIHN0ZXBzLCB0aGUgY2xlYW4gdGFzayBp
cyBjcmVhdGVkLiBOb3RlIHRoYXQgSSBkaWRuJ3QgYm90aGVyIHRvIGNyZWF0ZQorICAgICAgICAg
ICA7OyBhIG5ldyB0YXNrIGZvciBlYWNoIG9mIHRoZSBkZWNvcmEgZmlsZXMsIHByZWZlcnJpbmcg
aW5zdGVhZCBqdXN0IHRvIGNyZWF0ZSBhIHJ1bGU/PyBBbHNvCisgICAgICAgICAgIDs7IG5lZWQg
ImNsZWFuIiB0YXNrcyBmb3IgZWFjaCBjb21waWxlIHRhc2suCisgICAgICAgICAgIChhZGQtYWZ0
ZXIgJ2J1aWxkICdjb21waWxlLXByaXNtLWNvbXBpbGVycworICAgICAgICAgICAgIChsYW1iZGEg
XworICAgICAgICAgICAgICAgKGxldCAoKHByaXNtLWNvbXBpbGVycy1jbGFzc2VzICJtb2R1bGVz
L2dyYXBoaWNzL2J1aWxkL2NsYXNzZXMvanNsLWNvbXBpbGVycy9wcmlzbSIpCisgICAgICAgICAg
ICAgICAgICAgICAocHJpc20tc3JjICJtb2R1bGVzL2dyYXBoaWNzL3NyYy9tYWluL2pzbC1wcmlz
bS8iKSkKKyAgICAgICAgICAgICAgICAgKG1rZGlyLXAgcHJpc20tY29tcGlsZXJzLWNsYXNzZXMp
CisKKyAgICAgICAgICAgICAgICAgKGFwcGx5IGludm9rZSAiamF2YWMiICItZCIgcHJpc20tY29t
cGlsZXJzLWNsYXNzZXMKKyAgICAgICAgICAgICAgICAgICAgICAgIChhcHBlbmQgamF2YWMvaC1m
bGFncyAoZmluZC1maWxlcyBwcmlzbS1zcmMgIlxcLmphdmEiKSkpKQorCisgICAgICAgICAgICAg
ICAjdCkpCisKKyAgICAgICAgICAgKGFkZC1hZnRlciAnY29tcGlsZS1wcmlzbS1jb21waWxlcnMg
J2dlbmVyYXRlLXByaXNtLXNoYWRlcnMKKyAgICAgICAgICAgICAobGFtYmRhIF8KKyAgICAgICAg
ICAgICAgIChsZXQgKChwcmlzbS1jb21waWxlcnMtY2xhc3NlcyAibW9kdWxlcy9ncmFwaGljcy9i
dWlsZC9jbGFzc2VzL2pzbC1jb21waWxlcnMvcHJpc20iKQorICAgICAgICAgICAgICAgICAgICAg
KHByaXNtLXNyYyAibW9kdWxlcy9ncmFwaGljcy9zcmMvbWFpbi9qc2wtcHJpc20vIikKKyAgICAg
ICAgICAgICAgICAgICAgIChwcmlzbS1nZW4tc3JjICJtb2R1bGVzL2dyYXBoaWNzL2J1aWxkL2dl
bmVyYXRlZC1zcmMvanNsLXByaXNtIikpCisgICAgICAgICAgICAgICAgIChta2Rpci1wIHByaXNt
LWdlbi1zcmMpCisgICAgICAgICAgICAgICAgIChmb3ItZWFjaCAobGFtYmRhIChmaWxlKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoYXBwbHkgaW52b2tlICJqYXZhIgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1jcCIgKHN0cmluZy1qb2luIChsaXN0CisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IEZv
ciBDb21waWxlSlNMCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIHByaXNtLWNvbXBpbGVycy1jbGFzc2VzCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IGpzbCBmaWxlcyBhcmUgdGhl
cmUKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgcHJpc20tc3JjCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChnZXRlbnYgIkNMQVNTUEFUSCIpKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICI6IikKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICJDb21waWxlSlNMIgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIi1pIiBwcmlzbS1zcmMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICItbyIgcHJpc20tZ2VuLXNyYworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIi10IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1wa2ciICJj
b20vc3VuL3ByaXNtIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1kM2Qi
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLWVzMiIKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICItbmFtZSIgKGxpc3QgZmlsZSkpKQorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKGZpbmQtZmlsZXMgcHJpc20tc3JjICJcXC5qc2wkIikpKQorICAg
ICAgICAgICAgICAgI3QpKQorCisgICAgICAgICAgIChhZGQtYWZ0ZXIgJ2dlbmVyYXRlLXByaXNt
LXNoYWRlcnMgJ2NvbXBpbGUtcHJpc20tc2hhZGVycworICAgICAgICAgICAgIChsYW1iZGEgXwor
ICAgICAgICAgICAgICAgKGxldCogKChjbGFzc2VzICJtb2R1bGVzL2dyYXBoaWNzL2J1aWxkL2Ns
YXNzZXMvamF2YS9tYWluIikKKyAgICAgICAgICAgICAgICAgICAgICAocHJpc20tY2xhc3NlcyAi
bW9kdWxlcy9ncmFwaGljcy9idWlsZC9jbGFzc2VzL2pzbC1wcmlzbSIpCisgICAgICAgICAgICAg
ICAgICAgICAgKHByaXNtLWdlbi1zcmMgIm1vZHVsZXMvZ3JhcGhpY3MvYnVpbGQvZ2VuZXJhdGVk
LXNyYy9qc2wtcHJpc20iKQorICAgICAgICAgICAgICAgICAgICAgIChwcmlzbS1nZW4tc2hhZGVy
cy1zcmMgKHN0cmluZy1hcHBlbmQgcHJpc20tZ2VuLXNyYyAiL2NvbS9zdW4vcHJpc20vc2hhZGVy
IikpKQorICAgICAgICAgICAgICAgICAobWtkaXItcCBwcmlzbS1jbGFzc2VzKQorICAgICAgICAg
ICAgICAgICAoYXBwbHkgaW52b2tlICJqYXZhYyIKKyAgICAgICAgICAgICAgICAgICAgICAgICIt
ZCIgcHJpc20tY2xhc3NlcworICAgICAgICAgICAgICAgICAgICAgICAgIi1jcCIgKHN0cmluZy1h
cHBlbmQgY2xhc3NlcyAiOiIgKGdldGVudiAiQ0xBU1NQQVRIIikpCisgICAgICAgICAgICAgICAg
ICAgICAgICAoYXBwZW5kIGphdmFjL2gtZmxhZ3MgKGZpbmQtZmlsZXMgcHJpc20tZ2VuLXNoYWRl
cnMtc3JjKSkpKQorICAgICAgICAgICAgICAgI3QpKQorCisgICAgICAgICAgIChhZGQtYWZ0ZXIg
J2NvbXBpbGUtcHJpc20tc2hhZGVycyAnY29tcGlsZS1kZWNvcmEtY29tcGlsZXJzCisgICAgICAg
ICAgICAgKGxhbWJkYSBfCisgICAgICAgICAgICAgICAobGV0ICgoY2xhc3NlcyAibW9kdWxlcy9n
cmFwaGljcy9idWlsZC9jbGFzc2VzL2phdmEvbWFpbiIpCisgICAgICAgICAgICAgICAgICAgICAo
ZGVjb3JhLWNvbXBpbGVycy1jbGFzc2VzICJtb2R1bGVzL2dyYXBoaWNzL2J1aWxkL2NsYXNzZXMv
anNsLWNvbXBpbGVycy9kZWNvcmEiKQorICAgICAgICAgICAgICAgICAgICAgKGRlY29yYS1zcmMg
Im1vZHVsZXMvZ3JhcGhpY3Mvc3JjL21haW4vanNsLWRlY29yYS8iKSkKKyAgICAgICAgICAgICAg
ICAgKG1rZGlyLXAgZGVjb3JhLWNvbXBpbGVycy1jbGFzc2VzKQorICAgICAgICAgICAgICAgICAo
YXBwbHkgaW52b2tlICJqYXZhYyIKKyAgICAgICAgICAgICAgICAgICAgICAgICItZCIgZGVjb3Jh
LWNvbXBpbGVycy1jbGFzc2VzCisgICAgICAgICAgICAgICAgICAgICAgICAiLWNwIiAoc3RyaW5n
LWFwcGVuZCBjbGFzc2VzICI6IiAoZ2V0ZW52ICJDTEFTU1BBVEgiKSkKKyAgICAgICAgICAgICAg
ICAgICAgICAgIChhcHBlbmQgamF2YWMvaC1mbGFncyAoZmluZC1maWxlcyBkZWNvcmEtc3JjICJc
XC5qYXZhIikpKSkKKyAgICAgICAgICAgICAgICN0KSkKKworICAgICAgICAgICAoYWRkLWFmdGVy
ICdjb21waWxlLWRlY29yYS1jb21waWxlcnMgJ2dlbmVyYXRlLWRlY29yYS1zaGFkZXJzCisgICAg
ICAgICAgICAgKGxhbWJkYSBfCisgICAgICAgICAgICAgICAobGV0ICgoY2xhc3NlcyAibW9kdWxl
cy9ncmFwaGljcy9idWlsZC9jbGFzc2VzL2phdmEvbWFpbiIpCisgICAgICAgICAgICAgICAgICAg
ICAoZGVjb3JhLWNsYXNzZXMgIm1vZHVsZXMvZ3JhcGhpY3MvYnVpbGQvY2xhc3Nlcy9qc2wtZGVj
b3JhLyIpCisgICAgICAgICAgICAgICAgICAgICAoZGVjb3JhLWNvbXBpbGVycy1jbGFzc2VzICJt
b2R1bGVzL2dyYXBoaWNzL2J1aWxkL2NsYXNzZXMvanNsLWNvbXBpbGVycy9kZWNvcmEiKQorICAg
ICAgICAgICAgICAgICAgICAgKGRlY29yYS1nZW4tc3JjICJtb2R1bGVzL2dyYXBoaWNzL2J1aWxk
L2dlbmVyYXRlZC1zcmMvanNsLWRlY29yYSIpCisgICAgICAgICAgICAgICAgICAgICAoZGVjb3Jh
LXNyYyAibW9kdWxlcy9ncmFwaGljcy9zcmMvbWFpbi9qc2wtZGVjb3JhLyIpCisgICAgICAgICAg
ICAgICAgICAgICAoZGVjb3JhLWNvbXBvbmVudHMgJyhbKGZpbGUtbmFtZSAuICJDb2xvckFkanVz
dCIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdlbmVyYXRv
ciAuICJDb21waWxlSlNMIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAob3V0cHV0cyAuICItYWxsIildCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBbKGZpbGUtbmFtZSAuICJCcmlnaHRwYXNzIikKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoZ2VuZXJhdG9yIC4gIkNvbXBpbGVKU0wiKQorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvdXRwdXRzIC4gIi1hbGwi
KV0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsoZmlsZS1uYW1l
IC4gIlNlcGlhVG9uZSIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKGdlbmVyYXRvciAuICJDb21waWxlSlNMIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAob3V0cHV0cyAuICItYWxsIildCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICBbKGZpbGUtbmFtZSAuICJQZXJzcGVjdGl2ZVRyYW5zZm9y
bSIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdlbmVyYXRv
ciAuICJDb21waWxlSlNMIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAob3V0cHV0cyAuICItYWxsIildCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICBbKGZpbGUtbmFtZSAuICJEaXNwbGFjZW1lbnRNYXAiKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChnZW5lcmF0b3IgLiAiQ29tcGlsZUpTTCIp
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG91dHB1dHMgLiAi
LWFsbCIpXQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhmaWxl
LW5hbWUgLiAiSW52ZXJ0TWFzayIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgKGdlbmVyYXRvciAuICJDb21waWxlSlNMIikKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAob3V0cHV0cyAuICItYWxsIildCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKGZpbGUtbmFtZSAuICJCbGVuZCIpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGdlbmVyYXRvciAuICJDb21w
aWxlQmxlbmQiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChv
dXRwdXRzIC4gIi1hbGwiKV0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIFsoZmlsZS1uYW1lIC4gIlBob25nTGlnaHRpbmciKQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChnZW5lcmF0b3IgLiAiQ29tcGlsZVBob25nIikKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob3V0cHV0cyAuICItYWxsIild
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbKGZpbGUtbmFtZSAu
ICJMaW5lYXJDb252b2x2ZSIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgKGdlbmVyYXRvciAuICJDb21waWxlTGluZWFyQ29udm9sdmUiKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvdXRwdXRzIC4gIi1odyIpXQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgWyhmaWxlLW5hbWUgLiAiTGluZWFy
Q29udm9sdmVTaGFkb3ciKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChnZW5lcmF0b3IgLiAiQ29tcGlsZUxpbmVhckNvbnZvbHZlIikKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob3V0cHV0cyAuICItaHciKV0pKSkKKyAgICAg
ICAgICAgICAgICAgKG1rZGlyLXAgZGVjb3JhLWdlbi1zcmMpCisgICAgICAgICAgICAgICAgIChm
b3ItZWFjaCAobWF0Y2gtbGFtYmRhCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgoKCdm
aWxlLW5hbWUgLiBmaWxlLW5hbWUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCdn
ZW5lcmF0b3IgLiBnZW5lcmF0b3IpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCdv
dXRwdXRzIC4gb3V0cHV0cykpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYXBwbHkg
aW52b2tlICJqYXZhIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItY3Ai
IChzdHJpbmctam9pbiAoY29ucyogY2xhc3NlcworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZGVjb3JhLXNyYworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgOzsg
Q29tcGlsZUpTTAorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgZGVjb3JhLWNvbXBpbGVycy1jbGFzc2VzCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkZWNvcmEt
Y2xhc3NlcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgOzsgV2UgbmVlZCByZXNvdXJjZXMgZnJvbSB0aGUgYnVpbGQKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJidWlsZFNyYy9zcmMvbWFpbi9yZXNvdXJjZXMiCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobGlzdCAoZ2V0ZW52ICJDTEFT
U1BBVEgiKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICI6IikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBnZW5l
cmF0b3IKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLWkiIGRlY29yYS1z
cmMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLW8iIGRlY29yYS1nZW4t
c3JjCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi10IgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICItcGtnIiAiY29tL3N1bi9zY2VuYXJpby9lZmZl
Y3QiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgb3V0cHV0cworICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChsaXN0IGZpbGUtbmFtZSkpKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgIGRlY29yYS1jb21wb25lbnRzKQorICAgICAgICAgICAgICAg
ICAjdCkpKQorCisgICAgICAgICAgIChhZGQtYWZ0ZXIgJ2dlbmVyYXRlLWRlY29yYS1zaGFkZXJz
ICdjb21waWxlLWRlY29yYS1zaGFkZXJzCisgICAgICAgICAgICAgKGxhbWJkYSBfCisgICAgICAg
ICAgICAgICAobGV0ICgoY2xhc3NlcyAibW9kdWxlcy9ncmFwaGljcy9idWlsZC9jbGFzc2VzL2ph
dmEvbWFpbiIpCisgICAgICAgICAgICAgICAgICAgICAoZGVjb3JhLWNsYXNzZXMgIm1vZHVsZXMv
Z3JhcGhpY3MvYnVpbGQvY2xhc3Nlcy9qc2wtZGVjb3JhLyIpCisgICAgICAgICAgICAgICAgICAg
ICAoZGVjb3JhLWdlbi1zcmMgIm1vZHVsZXMvZ3JhcGhpY3MvYnVpbGQvZ2VuZXJhdGVkLXNyYy9q
c2wtZGVjb3JhIikpCisgICAgICAgICAgICAgICAgIChta2Rpci1wIGRlY29yYS1jbGFzc2VzKQor
ICAgICAgICAgICAgICAgICAoYXBwbHkgaW52b2tlICJqYXZhYyIKKyAgICAgICAgICAgICAgICAg
ICAgICAgICItZCIgZGVjb3JhLWNsYXNzZXMKKyAgICAgICAgICAgICAgICAgICAgICAgICItY3Ai
IGNsYXNzZXMKKyAgICAgICAgICAgICAgICAgICAgICAgIChhcHBlbmQgamF2YWMvaC1mbGFncyAo
ZmluZC1maWxlcyBkZWNvcmEtZ2VuLXNyYyAiXFwuamF2YSQiKSkpKQorICAgICAgICAgICAgICAg
I3QpKQorCisgICAgICAgICAgIChhZGQtYWZ0ZXIgJ2NvbXBpbGUtZGVjb3JhLXNoYWRlcnMgJ2Nv
bXBpbGUtZGVjb3JhLW5hdGl2ZS1saWIKKyAgICAgICAgICAgICAobGFtYmRhKiAoIzprZXkgaW5w
dXRzICM6YWxsb3ctb3RoZXIta2V5cykKKyAgICAgICAgICAgICAgIChsZXQqICgoY2xhc3NlcyAi
bW9kdWxlcy9ncmFwaGljcy9idWlsZC9jbGFzc2VzL2phdmEvbWFpbiIpCisgICAgICAgICAgICAg
ICAgICAgICAgKGRlY29yYS1nZW4taGVhZGVycyAibW9kdWxlcy9ncmFwaGljcy9idWlsZC9nZW5l
cmF0ZWQtc3JjL2hlYWRlcnMvanNsLWRlY29yYSIpCisgICAgICAgICAgICAgICAgICAgICAgKGRl
Y29yYS1nZW4tc3JjICJtb2R1bGVzL2dyYXBoaWNzL2J1aWxkL2dlbmVyYXRlZC1zcmMvanNsLWRl
Y29yYSIpCisgICAgICAgICAgICAgICAgICAgICAgKGRlY29yYS1uYXRpdmUtbGliICJtb2R1bGVz
L2dyYXBoaWNzL2J1aWxkL2xpYnMvanNsLWRlY29yYS9saW51eC9saWJkZWNvcmFfc3NlLnNvIikK
KyAgICAgICAgICAgICAgICAgICAgICAoZGVjb3JhLW5hdGl2ZS1vYmogIm1vZHVsZXMvZ3JhcGhp
Y3MvYnVpbGQvbmF0aXZlL2pzbC1kZWNvcmEvbGludXgiKQorICAgICAgICAgICAgICAgICAgICAg
IChkZWNvcmEtbmF0aXZlLXNyYyAibW9kdWxlcy9ncmFwaGljcy9zcmMvbWFpbi9uYXRpdmUtZGVj
b3JhIikKKyAgICAgICAgICAgICAgICAgICAgICAoZGVjb3JhLXNyYyAibW9kdWxlcy9ncmFwaGlj
cy9zcmMvbWFpbi9qc2wtZGVjb3JhLyIpCisgICAgICAgICAgICAgICAgICAgICAgKGRlY29yYS1j
bGFzc2VzICJtb2R1bGVzL2dyYXBoaWNzL2J1aWxkL2NsYXNzZXMvanNsLWRlY29yYS8iKQorICAg
ICAgICAgICAgICAgICAgICAgIChkZWNvcmEtY2MtZmxhZ3MgYCgsQGNjLWZsYWdzICItZmZhc3Qt
bWF0aCIpKSkKKyAgICAgICAgICAgICAgICAgKG1rZGlyLXAgZGVjb3JhLWdlbi1oZWFkZXJzKQor
ICAgICAgICAgICAgICAgICAoYXBwbHkgaW52b2tlICJqYXZhaCIKKyAgICAgICAgICAgICAgICAg
ICAgICAgICItZCIgZGVjb3JhLWdlbi1oZWFkZXJzCisgICAgICAgICAgICAgICAgICAgICAgICAi
LWNwIiAoc3RyaW5nLWpvaW4gKGxpc3QgY2xhc3NlcyBkZWNvcmEtY2xhc3NlcykgIjoiKQorICAg
ICAgICAgICAgICAgICAgICAgICAgKGFwcGVuZCBqYXZhYy9oLWZsYWdzCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChmaWx0ZXIgKGN1dCBzdHJpbmctcHJlZml4PyAiY29tLnN1bi5z
Y2VuYXJpby5lZmZlY3QuaW1wbC5zdy5zc2UiIDw+KQorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIChhcHBlbmQgKGphdmEtbGlzdC1jbGFzc2VzIGNsYXNzZXMpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoamF2YS1saXN0LWNs
YXNzZXMgZGVjb3JhLWNsYXNzZXMpKSkpKQorICAgICAgICAgICAgICAgICAobWtkaXItcCBkZWNv
cmEtbmF0aXZlLW9iaikKKyAgICAgICAgICAgICAgICAgKGZvci1lYWNoIChsYW1iZGEgKGNjKQor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYXBwbHkgaW52b2tlICJnY2MiCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLUkiIGRlY29yYS1nZW4taGVhZGVycworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1JIiBkZWNvcmEtZ2VuLXNyYworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1JIiBkZWNvcmEtbmF0aXZlLXNyYwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1vIiAoc3RyaW5nLWFwcGVuZCBk
ZWNvcmEtbmF0aXZlLW9iaiAgIi8iIChiYXNlbmFtZSBjYyAiLmNjIikgIi5vYmoiKQorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGFwcGVuZCBkZWNvcmEtY2MtZmxhZ3MgKGxp
c3QgY2MpKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAoYXBwZW5kIChmaW5kLWZpbGVz
IGRlY29yYS1nZW4tc3JjICJcXC5jYyQiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoZmluZC1maWxlcyBkZWNvcmEtbmF0aXZlLXNyYyAiXFwuY2MkIikpKQorICAgICAgICAg
ICAgICAgICAobWtkaXItcCAoZGlybmFtZSBkZWNvcmEtbmF0aXZlLWxpYikpCisgICAgICAgICAg
ICAgICAgIChhcHBseSBpbnZva2UgImcrKyIgIi1vIiBkZWNvcmEtbmF0aXZlLWxpYgorICAgICAg
ICAgICAgICAgICAgICAgICAgKGFwcGVuZCBsaW5rLWZsYWdzIChmaW5kLWZpbGVzIGRlY29yYS1u
YXRpdmUtb2JqICJcXC5vYmokIikpKSkKKyAgICAgICAgICAgICAgICN0KSkKKworICAgICAgICAg
ICAoYWRkLWFmdGVyICdjb21waWxlLWRlY29yYS1uYXRpdmUtbGliICdjb21waWxlLWxpbnV4LWZv
bnQtbmF0aXZlLWxpYgorICAgICAgICAgICAgIChsYW1iZGEqICgjOmtleSBpbnB1dHMgIzphbGxv
dy1vdGhlci1rZXlzKQorICAgICAgICAgICAgICAgKGxldCogKChjbGFzc2VzICJtb2R1bGVzL2dy
YXBoaWNzL2J1aWxkL2NsYXNzZXMvamF2YS9tYWluIikKKyAgICAgICAgICAgICAgICAgICAgICAo
Zm9udC1nZW4taGVhZGVycyAibW9kdWxlcy9ncmFwaGljcy9idWlsZC9nZW5lcmF0ZWQtc3JjL2hl
YWRlcnMvZm9udC9saW51eCIpCisgICAgICAgICAgICAgICAgICAgICAgKGZvbnQtbmF0aXZlLWxp
YiAibW9kdWxlcy9ncmFwaGljcy9idWlsZC9saWJzL2ZvbnQvbGludXgvbGliamF2YWZ4X2ZvbnQu
c28iKQorICAgICAgICAgICAgICAgICAgICAgIChmb250LW5hdGl2ZS1vYmogIm1vZHVsZXMvZ3Jh
cGhpY3MvYnVpbGQvbmF0aXZlL2ZvbnQvbGludXgiKQorICAgICAgICAgICAgICAgICAgICAgIChm
b250LW5hdGl2ZS1zcmMgIm1vZHVsZXMvZ3JhcGhpY3Mvc3JjL21haW4vbmF0aXZlLWZvbnQiKQor
ICAgICAgICAgICAgICAgICAgICAgIDs7CisgICAgICAgICAgICAgICAgICAgICAgKGZvbnQtY2Mt
ZmxhZ3MgYCgiLURKRlhGT05UX1BMVVMiICxAY2MtZmxhZ3MpKSkKKyAgICAgICAgICAgICAgICAg
KG1rZGlyLXAgZm9udC1nZW4taGVhZGVycykKKyAgICAgICAgICAgICAgICAgKGFwcGx5IGludm9r
ZSAiamF2YWgiCisgICAgICAgICAgICAgICAgICAgICAgICAiLWQiIGZvbnQtZ2VuLWhlYWRlcnMK
KyAgICAgICAgICAgICAgICAgICAgICAgICItY3AiIGNsYXNzZXMKKyAgICAgICAgICAgICAgICAg
ICAgICAgIChhcHBlbmQgamF2YWMvaC1mbGFncworICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAoZmlsdGVyIChsYW1iZGEgKGNsYXNzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgKG9yIChzdHJpbmctcHJlZml4PyAiY29tLnN1bi5qYXZhZnguZm9udCIg
Y2xhc3MpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0
cmluZy1wcmVmaXg/ICJjb20uc3VuLmphdmFmeC50ZXh0IiBjbGFzcykpKQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChqYXZhLWxpc3QtY2xhc3NlcyBjbGFzc2VzKSkp
KQorICAgICAgICAgICAgICAgICAobWtkaXItcCBmb250LW5hdGl2ZS1vYmopCisgICAgICAgICAg
ICAgICAgIChmb3ItZWFjaCAobGFtYmRhIChjYykKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKGFwcGx5IGludm9rZSAiZ2NjIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIi1JIiBmb250LWdlbi1oZWFkZXJzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiLUkiIGZvbnQtbmF0aXZlLXNyYworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIi1vIiAoc3RyaW5nLWFwcGVuZCBmb250LW5hdGl2ZS1vYmogIi8iCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiYXNlbmFtZSBj
YyAiLmMiKSAiLm9iaiIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoYXBw
ZW5kIGZvbnQtY2MtZmxhZ3MgKGxpc3QgY2MpKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoZmluZC1maWxlcyBmb250LW5hdGl2ZS1zcmMgIlxcLmMkIikpCisgICAgICAgICAgICAgICAg
IChta2Rpci1wIChkaXJuYW1lIGZvbnQtbmF0aXZlLWxpYikpCisgICAgICAgICAgICAgICAgIChh
cHBseSBpbnZva2UgImcrKyIKKyAgICAgICAgICAgICAgICAgICAgICAgICItbyIgZm9udC1uYXRp
dmUtbGliCisgICAgICAgICAgICAgICAgICAgICAgICAoYXBwZW5kIGxpbmstZmxhZ3MKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZpbmQtZmlsZXMgZm9udC1uYXRpdmUtb2JqICJc
XC5vYmokIikpKSkKKyAgICAgICAgICAgICAgICN0KSkKKworICAgICAgICAgICAoYWRkLWFmdGVy
ICdjb21waWxlLWxpbnV4LWZvbnQtbmF0aXZlLWxpYiAnY29tcGlsZS1saW51eC1mb250LWZyZWV0
eXBlCisgICAgICAgICAgICAgKGxhbWJkYSogKCM6a2V5IGlucHV0cyAjOmFsbG93LW90aGVyLWtl
eXMpCisgICAgICAgICAgICAgICAobGV0KiAoKGNsYXNzZXMgIm1vZHVsZXMvZ3JhcGhpY3MvYnVp
bGQvY2xhc3Nlcy9qYXZhL21haW4iKQorICAgICAgICAgICAgICAgICAgICAgIDs7CisgICAgICAg
ICAgICAgICAgICAgICAgKGZvbnQtZnJlZXR5cGUtZ2VuLWhlYWRlcnMgIm1vZHVsZXMvZ3JhcGhp
Y3MvYnVpbGQvZ2VuZXJhdGVkLXNyYy9oZWFkZXJzL2ZvbnRGcmVldHlwZS9saW51eCIpCisgICAg
ICAgICAgICAgICAgICAgICAgKGZvbnQtZnJlZXR5cGUtbmF0aXZlLWxpYiAibW9kdWxlcy9ncmFw
aGljcy9idWlsZC9saWJzL2ZvbnRGcmVldHlwZS9saW51eC9saWJqYXZhZnhfZm9udF9mcmVldHlw
ZS5zbyIpCisgICAgICAgICAgICAgICAgICAgICAgKGZvbnQtZnJlZXR5cGUtbmF0aXZlLW9iaiAi
bW9kdWxlcy9ncmFwaGljcy9idWlsZC9uYXRpdmUvZm9udEZyZWV0eXBlL2xpbnV4IikKKyAgICAg
ICAgICAgICAgICAgICAgICAoZm9udC1mcmVldHlwZS1uYXRpdmUtc3JjICJtb2R1bGVzL2dyYXBo
aWNzL3NyYy9tYWluL25hdGl2ZS1mb250L2ZyZWV0eXBlLmMiKQorICAgICAgICAgICAgICAgICAg
ICAgIChmb250LWZyZWV0eXBlLWNjLWZsYWdzIGAoIi1ESkZYRk9OVF9QTFVTIiAiLURfRU5BQkxF
X1BBTkdPIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
IiQocGtnLWNvbmZpZyAtLWNmbGFncyBmcmVldHlwZTIpIiAsQGNjLWZsYWdzKSkKKyAgICAgICAg
ICAgICAgICAgICAgICAoZm9udC1mcmVldHlwZS1saW5rLWZsYWdzIGAoIiQocGtnLWNvbmZpZyAt
LWxpYnMgZnJlZXR5cGUyKSIgLEBsaW5rLWZsYWdzKSkpCisgICAgICAgICAgICAgICAgIChta2Rp
ci1wIGZvbnQtZnJlZXR5cGUtZ2VuLWhlYWRlcnMpCisgICAgICAgICAgICAgICAgIChhcHBseSBp
bnZva2UgImphdmFoIgorICAgICAgICAgICAgICAgICAgICAgICAgIi1kIiBmb250LWZyZWV0eXBl
LWdlbi1oZWFkZXJzCisgICAgICAgICAgICAgICAgICAgICAgICAiLWNwIiBjbGFzc2VzCisgICAg
ICAgICAgICAgICAgICAgICAgICAoYXBwZW5kIGphdmFjL2gtZmxhZ3MKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgKGZpbHRlciAoY3V0IHN0cmluZy1wcmVmaXg/ICJjb20uc3VuLmph
dmFmeC5mb250LmZyZWV0eXBlLk9TRnJlZXR5cGUiIDw+KQorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChqYXZhLWxpc3QtY2xhc3NlcyBjbGFzc2VzKSkpKQorICAgICAg
ICAgICAgICAgICAobWtkaXItcCBmb250LWZyZWV0eXBlLW5hdGl2ZS1vYmopCisgICAgICAgICAg
ICAgICAgIChpbnZva2UgImJhc2giICItYyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAoc3Ry
aW5nLWpvaW4gYCgiZ2NjIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICxAZm9udC1mcmVldHlwZS1jYy1mbGFncworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICItSSIgLGZvbnQtZnJlZXR5cGUtZ2VuLWhlYWRlcnMKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiLUkiICwoZGlybmFtZSBmb250LWZyZWV0eXBlLW5h
dGl2ZS1zcmMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1vIiAs
KHN0cmluZy1hcHBlbmQgZm9udC1mcmVldHlwZS1uYXRpdmUtb2JqICIvIgorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiYXNlbmFt
ZSBmb250LWZyZWV0eXBlLW5hdGl2ZS1zcmMgIi5jIikgIi5vYmoiKQorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICxmb250LWZyZWV0eXBlLW5hdGl2ZS1zcmMpKSkKKyAg
ICAgICAgICAgICAgICAgKG1rZGlyLXAgKGRpcm5hbWUgZm9udC1mcmVldHlwZS1uYXRpdmUtbGli
KSkKKyAgICAgICAgICAgICAgICAgKGludm9rZSAiYmFzaCIgIi1jIgorICAgICAgICAgICAgICAg
ICAgICAgICAgIChzdHJpbmctam9pbiBgKCJnKysiCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIi1vIiAsZm9udC1mcmVldHlwZS1uYXRpdmUtbGliCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLEBmb250LWZyZWV0eXBlLWxpbmstZmxhZ3MK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsQChmaW5kLWZpbGVzIGZv
bnQtZnJlZXR5cGUtbmF0aXZlLW9iaiAiXFwub2JqJCIpKSkpCisgICAgICAgICAgICAgICAgICN0
KSkpCisKKyAgICAgICAgICAgKGFkZC1hZnRlciAnY29tcGlsZS1saW51eC1mb250LWZyZWV0eXBl
ICdjb21waWxlLWxpbnV4LWZvbnQtcGFuZ28tbGliCisgICAgICAgICAgICAgKGxhbWJkYSogKCM6
a2V5IGlucHV0cyAjOmFsbG93LW90aGVyLWtleXMpCisgICAgICAgICAgICAgICAobGV0KiAoKGNs
YXNzZXMgIm1vZHVsZXMvZ3JhcGhpY3MvYnVpbGQvY2xhc3Nlcy9qYXZhL21haW4iKQorICAgICAg
ICAgICAgICAgICAgICAgIChmb250LXBhbmdvLWdlbi1oZWFkZXJzICJtb2R1bGVzL2dyYXBoaWNz
L2J1aWxkL2dlbmVyYXRlZC1zcmMvaGVhZGVycy9mb250UGFuZ28vbGludXgiKQorICAgICAgICAg
ICAgICAgICAgICAgIChmb250LXBhbmdvLW5hdGl2ZS1saWIgIm1vZHVsZXMvZ3JhcGhpY3MvYnVp
bGQvbGlicy9mb250UGFuZ28vbGludXgvbGliamF2YWZ4X2ZvbnRfcGFuZ28uc28iKQorICAgICAg
ICAgICAgICAgICAgICAgIChmb250LXBhbmdvLW5hdGl2ZS1vYmogIm1vZHVsZXMvZ3JhcGhpY3Mv
YnVpbGQvbmF0aXZlL2ZvbnRQYW5nby9saW51eCIpCisgICAgICAgICAgICAgICAgICAgICAgKGZv
bnQtcGFuZ28tbmF0aXZlLXNyYyAibW9kdWxlcy9ncmFwaGljcy9zcmMvbWFpbi9uYXRpdmUtZm9u
dC9wYW5nby5jIikKKyAgICAgICAgICAgICAgICAgICAgICAoZm9udC1wYW5nby1jYy1mbGFncyBg
KCItREpGWEZPTlRfUExVUyIgIi1EX0VOQUJMRV9QQU5HTyIKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICIkKHBrZy1jb25maWcgLS1jZmxhZ3MgcGFuZ29mdDIp
IiAsQGNjLWZsYWdzKSkKKyAgICAgICAgICAgICAgICAgICAgICAoZm9udC1wYW5nby1saW5rLWZs
YWdzIGAoIiQocGtnLWNvbmZpZyAtLWxpYnMgcGFuZ29mdDIpIiAsQGxpbmstZmxhZ3MpKSkKKyAg
ICAgICAgICAgICAgICAgKG1rZGlyLXAgZm9udC1wYW5nby1nZW4taGVhZGVycykKKyAgICAgICAg
ICAgICAgICAgKGFwcGx5IGludm9rZSAiamF2YWgiCisgICAgICAgICAgICAgICAgICAgICAgICAi
LWQiIGZvbnQtcGFuZ28tZ2VuLWhlYWRlcnMKKyAgICAgICAgICAgICAgICAgICAgICAgICItY3Ai
IGNsYXNzZXMKKyAgICAgICAgICAgICAgICAgICAgICAgIChhcHBlbmQgamF2YWMvaC1mbGFncwor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoZmlsdGVyIChjdXQgc3RyaW5nLXByZWZp
eD8gImNvbS5zdW4uamF2YWZ4LmZvbnQuZnJlZXR5cGUuT1NQYW5nbyIgPD4pCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGphdmEtbGlzdC1jbGFzc2VzIGNsYXNzZXMp
KSkpCisgICAgICAgICAgICAgICAgIChta2Rpci1wIGZvbnQtcGFuZ28tbmF0aXZlLW9iaikKKyAg
ICAgICAgICAgICAgICAgKGludm9rZSAiYmFzaCIgIi1jIgorICAgICAgICAgICAgICAgICAgICAg
ICAgIChzdHJpbmctam9pbiBgKCJnY2MiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLEBmb250LXBhbmdvLWNjLWZsYWdzCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgIi1JIiAsZm9udC1wYW5nby1nZW4taGVhZGVycworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICItSSIgLChkaXJuYW1lIGZvbnQtcGFuZ28tbmF0
aXZlLXNyYykKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLW8iICwo
c3RyaW5nLWFwcGVuZCBmb250LXBhbmdvLW5hdGl2ZS1vYmogIi8iCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJhc2VuYW1lIGZv
bnQtcGFuZ28tbmF0aXZlLXNyYyAiLmMiKSAiLm9iaiIpCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgLGZvbnQtcGFuZ28tbmF0aXZlLXNyYykpKQorICAgICAgICAgICAg
ICAgICAobWtkaXItcCAoZGlybmFtZSBmb250LXBhbmdvLW5hdGl2ZS1saWIpKQorICAgICAgICAg
ICAgICAgICAoaW52b2tlICJiYXNoIiAiLWMiCisgICAgICAgICAgICAgICAgICAgICAgICAgKHN0
cmluZy1qb2luIGAoImcrKyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAsQGZvbnQtcGFuZ28tbGluay1mbGFncworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICItbyIgLGZvbnQtcGFuZ28tbmF0aXZlLWxpYgorICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICxAKGZpbmQtZmlsZXMgZm9udC1wYW5nby1uYXRpdmUtb2Jq
ICJcXC5vYmokIikpKSkpCisgICAgICAgICAgICAgICAjdCkpCisKKyAgICAgICAgICAgKGFkZC1h
ZnRlciAnY29tcGlsZS1saW51eC1mb250LXBhbmdvLWxpYiAnY29tcGlsZS1saW51eC1nbGFzcy1s
aWIKKyAgICAgICAgICAgICAobGFtYmRhKiAoIzprZXkgaW5wdXRzICM6YWxsb3ctb3RoZXIta2V5
cykKKyAgICAgICAgICAgICAgIChsZXQqICgoY2xhc3NlcyAibW9kdWxlcy9ncmFwaGljcy9idWls
ZC9jbGFzc2VzL2phdmEvbWFpbiIpCisgICAgICAgICAgICAgICAgICAgICAgOzsgZ2xhc3MKKyAg
ICAgICAgICAgICAgICAgICAgICAoZ2xhc3MtZ2VuLWhlYWRlcnMgIm1vZHVsZXMvZ3JhcGhpY3Mv
YnVpbGQvZ2VuZXJhdGVkLXNyYy9oZWFkZXJzL2dsYXNzL2xpbnV4IikKKyAgICAgICAgICAgICAg
ICAgICAgICAoZ2xhc3MtbmF0aXZlLWxpYiAibW9kdWxlcy9ncmFwaGljcy9idWlsZC9saWJzL2ds
YXNzL2xpbnV4L2xpYmdsYXNzLnNvIikKKyAgICAgICAgICAgICAgICAgICAgICAoZ2xhc3MtbmF0
aXZlLW9iaiAibW9kdWxlcy9ncmFwaGljcy9idWlsZC9uYXRpdmUvZ2xhc3MvbGludXgvZ2xhc3Mi
KQorICAgICAgICAgICAgICAgICAgICAgIChnbGFzcy1uYXRpdmUtc3JjICJtb2R1bGVzL2dyYXBo
aWNzL3NyYy9tYWluL25hdGl2ZS1nbGFzcy9ndGsvbGF1bmNoZXIuYyIpCisgICAgICAgICAgICAg
ICAgICAgICAgKGdsYXNzLWNjLWZsYWdzCisgICAgICAgICAgICAgICAgICAgICAgIGAoLEBjYy1m
bGFncworICAgICAgICAgICAgICAgICAgICAgICAgICIkKHBrZy1jb25maWcgLS1jZmxhZ3MgZ2xp
Yi0yLjAgZ2RrLTIuMCBndGsrLTIuMCBndGhyZWFkLTIuMCB4dHN0KSIKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAiLVdlcnJvciIpKQorICAgICAgICAgICAgICAgICAgICAgIChnbGFzcy1saW5r
LWZsYWdzCisgICAgICAgICAgICAgICAgICAgICAgIGAoLEBsaW5rLWZsYWdzICIkKHBrZy1jb25m
aWcgLS1saWJzIHgxMSkiICItbGRsIikpCisgICAgICAgICAgICAgICAgICAgICAgOzsgZ2xhc3Mt
Z3RrMgorICAgICAgICAgICAgICAgICAgICAgIChndGsgKGFzc29jLXJlZiBpbnB1dHMgImd0ayIp
KQorICAgICAgICAgICAgICAgICAgICAgIChnbGFzcy1ndGsyLW5hdGl2ZS1vYmogIm1vZHVsZXMv
Z3JhcGhpY3MvYnVpbGQvbmF0aXZlL2dsYXNzL2xpbnV4L2dsYXNzZ3RrMiIpCisgICAgICAgICAg
ICAgICAgICAgICAgKGdsYXNzLWd0azItbmF0aXZlLXNyYyAoZGlybmFtZSBnbGFzcy1uYXRpdmUt
c3JjKSkKKyAgICAgICAgICAgICAgICAgICAgICAoZ2xhc3MtZ3RrMi1uYXRpdmUtbGliICJtb2R1
bGVzL2dyYXBoaWNzL2J1aWxkL2xpYnMvZ2xhc3MvbGludXgvbGliZ2xhc3NndGsyLnNvIikKKyAg
ICAgICAgICAgICAgICAgICAgICAoZ2xhc3MtZ3RrMi1jYy1mbGFncworICAgICAgICAgICAgICAg
ICAgICAgICBgKCxAY2MtZmxhZ3MKKyAgICAgICAgICAgICAgICAgICAgICAgICAiJChwa2ctY29u
ZmlnIC0tY2ZsYWdzIGd0aystMi4wIGd0aHJlYWQtMi4wIHh0c3QpIgorICAgICAgICAgICAgICAg
ICAgICAgICAgIDs7IFhYOiBHVGltZVZhbCBoYXMgYmVlbiBkZXByZWNhdGVkIGluIEdMSUIgc2lu
Y2UKKyAgICAgICAgICAgICAgICAgICAgICAgICA7OyB2ZXJzaW9uIDIuNjIuIEdUaW1lVmFsIHMg
bm90IHllYXItMjAzOC1zYWZlLiBHdGsKKyAgICAgICAgICAgICAgICAgICAgICAgICA7OyAyLjI0
IHVzZXMgR1RpbWVWYWwgc28gb3VyIGJ1aWxkIGlzIGFsc28gZmFpbGluZy4KKyAgICAgICAgICAg
ICAgICAgICAgICAgICAiLVduby1kZXByZWNhdGVkLWRlY2xhcmF0aW9ucyIKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAiLVdlcnJvciIpKQorICAgICAgICAgICAgICAgICAgICAgIChnbGFzcy1n
dGsyLWxpbmstZmxhZ3MKKyAgICAgICAgICAgICAgICAgICAgICAgYCgsQGxpbmstZmxhZ3MKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAiJChwa2ctY29uZmlnIC0tbGlicyBndGsrLTIuMCBndGhy
ZWFkLTIuMCB4dHN0KSIpKQorICAgICAgICAgICAgICAgICAgICAgIDs7IGdsYXNzLWd0azMKKyAg
ICAgICAgICAgICAgICAgICAgICAoZ3RrMyAoYXNzb2MtcmVmIGlucHV0cyAiZ3RrMyIpKQorICAg
ICAgICAgICAgICAgICAgICAgIChnbGFzcy1ndGszLW5hdGl2ZS1vYmogIm1vZHVsZXMvZ3JhcGhp
Y3MvYnVpbGQvbmF0aXZlL2dsYXNzL2xpbnV4L2dsYXNzZ3RrMyIpCisgICAgICAgICAgICAgICAg
ICAgICAgKGdsYXNzLWd0azMtbmF0aXZlLXNyYyAoZGlybmFtZSBnbGFzcy1uYXRpdmUtc3JjKSkK
KyAgICAgICAgICAgICAgICAgICAgICAoZ2xhc3MtZ3RrMy1uYXRpdmUtbGliICJtb2R1bGVzL2dy
YXBoaWNzL2J1aWxkL2xpYnMvZ2xhc3MvbGludXgvbGliZ2xhc3NndGszLnNvIikKKyAgICAgICAg
ICAgICAgICAgICAgICAoZ2xhc3MtZ3RrMy1jYy1mbGFncworICAgICAgICAgICAgICAgICAgICAg
ICBgKCxAY2MtZmxhZ3MKKyAgICAgICAgICAgICAgICAgICAgICAgICAiJChwa2ctY29uZmlnIC0t
Y2ZsYWdzIGd0aystMy4wIGd0aHJlYWQtMi4wIHh0c3QpIgorICAgICAgICAgICAgICAgICAgICAg
ICAgICItV25vLWRlcHJlY2F0ZWQtZGVjbGFyYXRpb25zIiAiLVdlcnJvciIpKQorICAgICAgICAg
ICAgICAgICAgICAgIChnbGFzcy1ndGszLWxpbmstZmxhZ3MKKyAgICAgICAgICAgICAgICAgICAg
ICAgYCgsQGxpbmstZmxhZ3MgIiQocGtnLWNvbmZpZyAtLWxpYnMgZ3RrKy0zLjAgZ3RocmVhZC0y
LjAgeHRzdCkiKSkpCisgICAgICAgICAgICAgICAgIDs7IGdsYXNzCisgICAgICAgICAgICAgICAg
IChta2Rpci1wIGdsYXNzLWdlbi1oZWFkZXJzKQorICAgICAgICAgICAgICAgICAoYXBwbHkgaW52
b2tlICJqYXZhaCIKKyAgICAgICAgICAgICAgICAgICAgICAgICItZCIgZ2xhc3MtZ2VuLWhlYWRl
cnMKKyAgICAgICAgICAgICAgICAgICAgICAgICItY3AiIChzdHJpbmctYXBwZW5kIGNsYXNzZXMg
IjoiIChnZXRlbnYgIkNMQVNTUEFUSCIpKQorICAgICAgICAgICAgICAgICAgICAgICAgKGFwcGVu
ZCBqYXZhYy9oLWZsYWdzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmaWx0ZXIg
KGxhbWJkYSAoY2xhc3MpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAob3IgKHN0cmluZy1wcmVmaXg/ICJjb20uc3VuLmdsYXNzLmV2ZW50cyIgY2xhc3MpCisgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cmluZy1wcmVmaXg/
ICJjb20uc3VuLmdsYXNzLnVpLmd0ayIgY2xhc3MpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKHN0cmluZy1wcmVmaXg/ICJjb20uc3VuLmdsYXNzLnVpIiBj
bGFzcykpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChqYXZhLWxp
c3QtY2xhc3NlcyBjbGFzc2VzKSkpKQorICAgICAgICAgICAgICAgICAobWtkaXItcCBnbGFzcy1u
YXRpdmUtb2JqKQorICAgICAgICAgICAgICAgICAoaW52b2tlICJiYXNoIiAiLWMiCisgICAgICAg
ICAgICAgICAgICAgICAgICAgKHN0cmluZy1qb2luIGAoImdjYyIKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAsQGdsYXNzLWNjLWZsYWdzCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIi1JIiAsZ2xhc3MtZ2VuLWhlYWRlcnMKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLUkiICwoZGlybmFtZSBnbGFzcy1uYXRp
dmUtc3JjKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItbyIgLChz
dHJpbmctYXBwZW5kIGdsYXNzLW5hdGl2ZS1vYmogIi8iCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJhc2VuYW1lIGdsYXNzLW5h
dGl2ZS1zcmMgIi5jIikgIi5vYmoiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICxnbGFzcy1uYXRpdmUtc3JjKSkpCisgICAgICAgICAgICAgICAgIChta2Rpci1wIChk
aXJuYW1lIGdsYXNzLW5hdGl2ZS1saWIpKQorICAgICAgICAgICAgICAgICAoaW52b2tlICJiYXNo
IiAiLWMiCisgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cmluZy1qb2luIGAoImcrKyIKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsQGdsYXNzLWxpbmstZmxhZ3MK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLW8iICxnbGFzcy1uYXRp
dmUtbGliCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLEAoZmluZC1m
aWxlcyBnbGFzcy1uYXRpdmUtb2JqICJcXC5vYmokIikpKSkKKyAgICAgICAgICAgICAgICAgOzsg
Z3RrMgorICAgICAgICAgICAgICAgICAobWtkaXItcCBnbGFzcy1ndGsyLW5hdGl2ZS1vYmopCisg
ICAgICAgICAgICAgICAgIChmb3ItZWFjaCAobGFtYmRhIChjcHApCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIChpbnZva2UgImJhc2giICItYyIKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAoc3RyaW5nLWpvaW4gYCgiZ2NjIgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICxAZ2xhc3MtZ3RrMi1jYy1mbGFncworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItSSIgLGds
YXNzLWdlbi1oZWFkZXJzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIi1vIiAsKHN0cmluZy1hcHBlbmQgZ2xhc3MtZ3RrMi1uYXRpdmUtb2JqICIv
IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChiYXNlbmFtZSBjcHAgIi5jcHAiKSAiLm9iaiIpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLGNwcCkpKSkKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChmaW5kLWZpbGVzIGdsYXNzLWd0azItbmF0aXZlLXNy
YyAiXFwuY3BwJCIpKQorICAgICAgICAgICAgICAgICAobWtkaXItcCAoZGlybmFtZSBnbGFzcy1n
dGsyLW5hdGl2ZS1saWIpKQorICAgICAgICAgICAgICAgICAoaW52b2tlICJiYXNoIiAiLWMiCisg
ICAgICAgICAgICAgICAgICAgICAgICAgKHN0cmluZy1qb2luIGAoImcrKyIKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsQGdsYXNzLWd0azItbGluay1mbGFncworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItbyIgLGdsYXNzLWd0azItbmF0
aXZlLWxpYgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICxAKGZpbmQt
ZmlsZXMgZ2xhc3MtZ3RrMi1uYXRpdmUtb2JqICJcXC5vYmokIikpKSkKKyAgICAgICAgICAgICAg
ICAgOzsgZ3RrMworICAgICAgICAgICAgICAgICAobWtkaXItcCBnbGFzcy1ndGszLW5hdGl2ZS1v
YmopCisgICAgICAgICAgICAgICAgIChmb3ItZWFjaCAobGFtYmRhIChjcHApCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChpbnZva2UgImJhc2giICItYyIKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLWpvaW4gYCgiZ2NjIgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICxAZ2xhc3MtZ3RrMy1jYy1mbGFn
cworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIt
SSIgLGdsYXNzLWdlbi1oZWFkZXJzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIi1vIiAsKHN0cmluZy1hcHBlbmQgZ2xhc3MtZ3RrMy1uYXRpdmUt
b2JqICIvIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChiYXNlbmFtZSBjcHAgIi5jcHAiKSAiLm9iaiIpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLGNwcCkp
KSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChmaW5kLWZpbGVzIGdsYXNzLWd0azMtbmF0
aXZlLXNyYyAiXFwuY3BwJCIpKQorICAgICAgICAgICAgICAgICAobWtkaXItcCAoZGlybmFtZSBn
bGFzcy1ndGszLW5hdGl2ZS1saWIpKQorICAgICAgICAgICAgICAgICAoaW52b2tlICJiYXNoIiAi
LWMiCisgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cmluZy1qb2luIGAoImcrKyIKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsQGdsYXNzLWd0azMtbGluay1mbGFn
cworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItbyIgLGdsYXNzLWd0
azMtbmF0aXZlLWxpYgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICxA
KGZpbmQtZmlsZXMgZ2xhc3MtZ3RrMy1uYXRpdmUtb2JqICJcXC5vYmokIikpKSkpCisgICAgICAg
ICAgICAgICAjdCkpCisKKyAgICAgICAgICAgKGFkZC1hZnRlciAnY29tcGlsZS1saW51eC1nbGFz
cy1saWIgICdjb21waWxlLWxpbnV4LWlpbworICAgICAgICAgICAgIChsYW1iZGEqICgjOmtleSBp
bnB1dHMgIzphbGxvdy1vdGhlci1rZXlzKQorICAgICAgICAgICAgICAgKGxldCogKChjbGFzc2Vz
ICJtb2R1bGVzL2dyYXBoaWNzL2J1aWxkL2NsYXNzZXMvamF2YS9tYWluIikKKyAgICAgICAgICAg
ICAgICAgICAgICAoaWlvLWdlbi1oZWFkZXJzICJtb2R1bGVzL2dyYXBoaWNzL2J1aWxkL2dlbmVy
YXRlZC1zcmMvaGVhZGVycy9paW8vbGludXgiKQorICAgICAgICAgICAgICAgICAgICAgIChpaW8t
bmF0aXZlLWxpYiAibW9kdWxlcy9ncmFwaGljcy9idWlsZC9saWJzL2lpby9saW51eC9saWJqYXZh
ZnhfaWlvLnNvIikKKyAgICAgICAgICAgICAgICAgICAgICAoaWlvLW5hdGl2ZS1vYmogIm1vZHVs
ZXMvZ3JhcGhpY3MvYnVpbGQvbmF0aXZlL2lpby9saW51eCIpCisgICAgICAgICAgICAgICAgICAg
ICAgKGlpby1uYXRpdmUtc3JjICJtb2R1bGVzL2dyYXBoaWNzL3NyYy9tYWluL25hdGl2ZS1paW8i
KQorICAgICAgICAgICAgICAgICAgICAgIChpaW8tY2MtZmxhZ3MgY2MtZmxhZ3MpCisgICAgICAg
ICAgICAgICAgICAgICAgKGlpby1saW5rLWZsYWdzIGxpbmstZmxhZ3MpKQorICAgICAgICAgICAg
ICAgICAobWtkaXItcCBpaW8tZ2VuLWhlYWRlcnMpCisgICAgICAgICAgICAgICAgIChhcHBseSBp
bnZva2UgImphdmFoIgorICAgICAgICAgICAgICAgICAgICAgICAgIi1kIiBpaW8tZ2VuLWhlYWRl
cnMKKyAgICAgICAgICAgICAgICAgICAgICAgICItY3AiIChzdHJpbmctYXBwZW5kIGNsYXNzZXMg
IjoiIChnZXRlbnYgIkNMQVNTUEFUSCIpKQorICAgICAgICAgICAgICAgICAgICAgICAgKGFwcGVu
ZCBqYXZhYy9oLWZsYWdzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChmaWx0ZXIg
KGN1dCBzdHJpbmctcHJlZml4PyAiY29tLnN1bi5qYXZhZnguaWlvIiA8PikKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoamF2YS1saXN0LWNsYXNzZXMgY2xhc3Nlcykp
KSkKKyAgICAgICAgICAgICAgICAgKG1rZGlyLXAgaWlvLW5hdGl2ZS1vYmopCisgICAgICAgICAg
ICAgICAgIChmb3ItZWFjaCAobGFtYmRhIChjKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoaW52b2tlICJiYXNoIiAiLWMiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgKHN0cmluZy1qb2luIGAoImdjYyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAsQGlpby1jYy1mbGFncworICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItSSIgLGlpby1nZW4taGVhZGVycworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItbyIgLChz
dHJpbmctYXBwZW5kIGlpby1uYXRpdmUtb2JqICIvIgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChiYXNlbmFt
ZSBjICIuYyIpICIub2JqIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAsYykpKSkKKyAgICAgICAgICAgICAgICAgICAgICAgICAgIChmaW5kLWZp
bGVzIGlpby1uYXRpdmUtc3JjICJcXC5jJCIpKQorICAgICAgICAgICAgICAgICAobWtkaXItcCAo
ZGlybmFtZSBpaW8tbmF0aXZlLWxpYikpCisgICAgICAgICAgICAgICAgIChpbnZva2UgImJhc2gi
ICItYyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLWpvaW4gYCgiZysrIgorICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICxAaWlvLWxpbmstZmxhZ3MKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLW8iICxpaW8tbmF0aXZlLWxp
YgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICxAKGZpbmQtZmlsZXMg
aWlvLW5hdGl2ZS1vYmogIlxcLm9iaiQiKSkpKQorICAgICAgICAgICAgICAgICAjdCkpKQorCisg
ICAgICAgICAgIChhZGQtYWZ0ZXIgJ2NvbXBpbGUtbGludXgtaWlvICdjb21waWxlLWxpbnV4LXBy
aXNtCisgICAgICAgICAgICAgKGxhbWJkYSogKCM6a2V5IGlucHV0cyAjOmFsbG93LW90aGVyLWtl
eXMpCisgICAgICAgICAgICAgICAobGV0KiAoKGNsYXNzZXMgIm1vZHVsZXMvZ3JhcGhpY3MvYnVp
bGQvY2xhc3Nlcy9qYXZhL21haW4iKQorICAgICAgICAgICAgICAgICAgICAgIChwcmlzbS1nZW4t
aGVhZGVycyAibW9kdWxlcy9ncmFwaGljcy9idWlsZC9nZW5lcmF0ZWQtc3JjL2hlYWRlcnMvcHJp
c20vbGludXgiKQorICAgICAgICAgICAgICAgICAgICAgIChwcmlzbS1uYXRpdmUtbGliICJtb2R1
bGVzL2dyYXBoaWNzL2J1aWxkL2xpYnMvcHJpc20vbGludXgvbGlicHJpc21fY29tbW9uLnNvIikK
KyAgICAgICAgICAgICAgICAgICAgICAocHJpc20tbmF0aXZlLW9iaiAibW9kdWxlcy9ncmFwaGlj
cy9idWlsZC9uYXRpdmUvcHJpc20vbGludXgiKQorICAgICAgICAgICAgICAgICAgICAgIChwcmlz
bS1uYXRpdmUtc3JjICJtb2R1bGVzL2dyYXBoaWNzL3NyYy9tYWluL25hdGl2ZS1wcmlzbSIpCisg
ICAgICAgICAgICAgICAgICAgICAgKHByaXNtLWNjLWZsYWdzIGAoLEBjYy1mbGFncyAiLURJTkxJ
TkU9aW5saW5lIikpCisgICAgICAgICAgICAgICAgICAgICAgKHByaXNtLWxpbmstZmxhZ3MgbGlu
ay1mbGFncykpCisgICAgICAgICAgICAgICAgIChta2Rpci1wIHByaXNtLWdlbi1oZWFkZXJzKQor
ICAgICAgICAgICAgICAgICAoYXBwbHkgaW52b2tlICJqYXZhaCIKKyAgICAgICAgICAgICAgICAg
ICAgICAgICItZCIgcHJpc20tZ2VuLWhlYWRlcnMKKyAgICAgICAgICAgICAgICAgICAgICAgICIt
Y3AiIChzdHJpbmctYXBwZW5kIGNsYXNzZXMgIjoiIChnZXRlbnYgIkNMQVNTUEFUSCIpKQorICAg
ICAgICAgICAgICAgICAgICAgICAgKGFwcGVuZCBqYXZhYy9oLWZsYWdzCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgIChmaWx0ZXIgKGxhbWJkYSAoY2xhc3MpCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob3IgKHN0cmluZy1wcmVmaXg/ICJjb20uc3Vu
LnByaXNtLmltcGwiIGNsYXNzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChzdHJpbmctcHJlZml4PyAiY29tLnN1bi5wcmlzbS5QcmVzZW50YWJsZVN0YXRl
IiBjbGFzcykpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChqYXZh
LWxpc3QtY2xhc3NlcyBjbGFzc2VzKSkpKQorICAgICAgICAgICAgICAgICAobWtkaXItcCBwcmlz
bS1uYXRpdmUtb2JqKQorICAgICAgICAgICAgICAgICAoZm9yLWVhY2ggKGxhbWJkYSAoYykKKyAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgKGludm9rZSAiYmFzaCIgIi1jIgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJpbmctam9pbiBgKCJnY2MiCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLEBwcmlzbS1jYy1m
bGFncworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICItSSIgLHByaXNtLWdlbi1oZWFkZXJzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIi1JIiAscHJpc20tbmF0aXZlLXNyYworICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItbyIgLChzdHJpbmctYXBw
ZW5kIHByaXNtLW5hdGl2ZS1vYmogIi8iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJhc2VuYW1lIGMgIi5j
IikgIi5vYmoiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICxjKSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZpbmQtZmlsZXMgcHJp
c20tbmF0aXZlLW9iaiAiXFwuYyQiKSkKKyAgICAgICAgICAgICAgICAgKG1rZGlyLXAgKGRpcm5h
bWUgcHJpc20tbmF0aXZlLWxpYikpCisgICAgICAgICAgICAgICAgIChpbnZva2UgImJhc2giICIt
YyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLWpvaW4gYCgiZysrIgorICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICxAcHJpc20tbGluay1mbGFncworICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItbyIgLHByaXNtLW5hdGl2ZS1s
aWIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAsQChmaW5kLWZpbGVz
IHByaXNtLW5hdGl2ZS1vYmogIlxcLm9iaiQiKSkpKQorICAgICAgICAgICAgICAgICAjdCkpKQor
CisgICAgICAgICAgIChhZGQtYWZ0ZXIgJ2NvbXBpbGUtbGludXgtcHJpc20gJ2NvbXBpbGUtbGlu
dXgtcHJpc20tZXMyCisgICAgICAgICAgICAgKGxhbWJkYSogKCM6a2V5IGlucHV0cyAjOmFsbG93
LW90aGVyLWtleXMpCisgICAgICAgICAgICAgICAobGV0KiAoKGNsYXNzZXMgIm1vZHVsZXMvZ3Jh
cGhpY3MvYnVpbGQvY2xhc3Nlcy9qYXZhL21haW4iKQorICAgICAgICAgICAgICAgICAgICAgIChw
cmlzbS1lczItZ2VuLWhlYWRlcnMgIm1vZHVsZXMvZ3JhcGhpY3MvYnVpbGQvZ2VuZXJhdGVkLXNy
Yy9oZWFkZXJzL3ByaXNtRVMyL2xpbnV4IikKKyAgICAgICAgICAgICAgICAgICAgICAocHJpc20t
ZXMyLW5hdGl2ZS1saWIgIm1vZHVsZXMvZ3JhcGhpY3MvYnVpbGQvbGlicy9wcmlzbS9saW51eC9s
aWJwcmlzbV9lczIuc28iKQorICAgICAgICAgICAgICAgICAgICAgIChwcmlzbS1lczItbmF0aXZl
LW9iaiAibW9kdWxlcy9ncmFwaGljcy9idWlsZC9uYXRpdmUvcHJpc21FUzIvbGludXgiKQorICAg
ICAgICAgICAgICAgICAgICAgIChwcmlzbS1lczItbmF0aXZlLXNyYyAibW9kdWxlcy9ncmFwaGlj
cy9zcmMvbWFpbi9uYXRpdmUtcHJpc20tZXMyIikKKyAgICAgICAgICAgICAgICAgICAgICAocHJp
c20tZXMyLWNjLWZsYWdzIGAoIi1ETElOVVgiICxAY2MtZmxhZ3MpKQorICAgICAgICAgICAgICAg
ICAgICAgIChwcmlzbS1lczItbGluay1mbGFncworICAgICAgICAgICAgICAgICAgICAgICBgKCxA
bGluay1mbGFncyAiJChwa2ctY29uZmlnIC0tbGlicyB4MTEgeHhmODZ2bSBnbCkiKSkKKyAgICAg
ICAgICAgICAgICAgICAgICA7OyBXZSBuZWVkIGFsbCAqLmMgZmlsZXMgaW4gdGhlIHJvb3QgYW5k
IG9ubHkgdGhvc2UKKyAgICAgICAgICAgICAgICAgICAgICA7OyB3aGljaCBhcmUgaW4gYSBzcGVj
aWZpYyBkaXJlY3Rvcmllcy4KKyAgICAgICAgICAgICAgICAgICAgICAoZmlsdGVyLXNyYworICAg
ICAgICAgICAgICAgICAgICAgICAobGFtYmRhIChhYnMgXykKKyAgICAgICAgICAgICAgICAgICAg
ICAgICAob3IgKHJlZ2V4cC1leGVjIChtYWtlLXJlZ2V4cCAoc3RyaW5nLWFwcGVuZCBwcmlzbS1l
czItbmF0aXZlLXNyYyAiW14vXSpcXC5jJCIpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgYWJzKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAocmVnZXhw
LWV4ZWMgKG1ha2UtcmVnZXhwIChzdHJpbmctYXBwZW5kIHByaXNtLWVzMi1uYXRpdmUtc3JjICIo
eDExL3xHTC8pIikpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBh
YnMpKSkpKQorICAgICAgICAgICAgICAgICAobWtkaXItcCBwcmlzbS1lczItZ2VuLWhlYWRlcnMp
CisgICAgICAgICAgICAgICAgIChhcHBseSBpbnZva2UgImphdmFoIgorICAgICAgICAgICAgICAg
ICAgICAgICAgIi1kIiBwcmlzbS1lczItZ2VuLWhlYWRlcnMKKyAgICAgICAgICAgICAgICAgICAg
ICAgICItY3AiIChzdHJpbmctYXBwZW5kIGNsYXNzZXMgIjoiIChnZXRlbnYgIkNMQVNTUEFUSCIp
KQorICAgICAgICAgICAgICAgICAgICAgICAgKGFwcGVuZCBqYXZhYy9oLWZsYWdzCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIChmaWx0ZXIgKGN1dCBzdHJpbmctcHJlZml4PyAiY29t
LnN1bi5wcmlzbS5lczIiIDw+KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgIChqYXZhLWxpc3QtY2xhc3NlcyBjbGFzc2VzKSkpKQorICAgICAgICAgICAgICAgICAobWtk
aXItcCBwcmlzbS1lczItbmF0aXZlLW9iaikKKyAgICAgICAgICAgICAgICAgKGZvci1lYWNoIChs
YW1iZGEgKGMpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhcHBseSBpbnZva2UgImdj
YyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItSSIgZ2xhc3MtbmF0aXZl
LXNyYworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1JIiBwcmlzbS1lczIt
Z2VuLWhlYWRlcnMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItSSIgcHJp
c20tZXMyLW5hdGl2ZS1zcmMKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIt
SSIgKHN0cmluZy1hcHBlbmQgcHJpc20tZXMyLW5hdGl2ZS1zcmMgIi9HTCIpCisgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAiLUkiIChzdHJpbmctYXBwZW5kIHByaXNtLWVzMi1u
YXRpdmUtc3JjICIveDExIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIt
byIgKHN0cmluZy1hcHBlbmQgcHJpc20tZXMyLW5hdGl2ZS1vYmogIi8iIChiYXNlbmFtZSBjICIu
YyIpICIub2JqIikKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChhcHBlbmQg
cHJpc20tZXMyLWNjLWZsYWdzIChsaXN0IGMpKSkpCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAoZmluZC1maWxlcyBwcmlzbS1lczItbmF0aXZlLXNyYyBmaWx0ZXItc3JjKSkKKyAgICAgICAg
ICAgICAgICAgKG1rZGlyLXAgKGRpcm5hbWUgcHJpc20tZXMyLW5hdGl2ZS1saWIpKQorICAgICAg
ICAgICAgICAgICAoaW52b2tlICJiYXNoIiAiLWMiCisgICAgICAgICAgICAgICAgICAgICAgICAg
KHN0cmluZy1qb2luIGAoImcrKyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAsQHByaXNtLWVzMi1saW5rLWZsYWdzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIi1vIiAscHJpc20tZXMyLW5hdGl2ZS1saWIKKyAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAsQChmaW5kLWZpbGVzIHByaXNtLWVzMi1uYXRpdmUtb2Jq
ICJcXC5vYmokIikpKSkKKyAgICAgICAgICAgICAgICAgI3QpKSkKKworICAgICAgICAgICAoYWRk
LWFmdGVyICdjb21waWxlLWxpbnV4LXByaXNtLWVzMiAnY29tcGlsZS1saW51eC1wcmlzbS1zdwor
ICAgICAgICAgICAgIChsYW1iZGEqICgjOmtleSBpbnB1dHMgIzphbGxvdy1vdGhlci1rZXlzKQor
ICAgICAgICAgICAgICAgKGxldCogKChjbGFzc2VzICJtb2R1bGVzL2dyYXBoaWNzL2J1aWxkL2Ns
YXNzZXMvamF2YS9tYWluIikKKyAgICAgICAgICAgICAgICAgICAgICAocHJpc20tc3ctZ2VuLWhl
YWRlcnMgIm1vZHVsZXMvZ3JhcGhpY3MvYnVpbGQvZ2VuZXJhdGVkLXNyYy9oZWFkZXJzL3ByaXNt
U1cvbGludXgiKQorICAgICAgICAgICAgICAgICAgICAgIChwcmlzbS1zdy1uYXRpdmUtbGliICJt
b2R1bGVzL2dyYXBoaWNzL2J1aWxkL2xpYnMvcHJpc20vbGludXgvbGlicHJpc21fc3cuc28iKQor
ICAgICAgICAgICAgICAgICAgICAgIChwcmlzbS1zdy1uYXRpdmUtb2JqICJtb2R1bGVzL2dyYXBo
aWNzL2J1aWxkL25hdGl2ZS9wcmlzbVNXL2xpbnV4IikKKyAgICAgICAgICAgICAgICAgICAgICAo
cHJpc20tc3ctbmF0aXZlLXNyYyAibW9kdWxlcy9ncmFwaGljcy9zcmMvbWFpbi9uYXRpdmUtcHJp
c20tc3ciKQorICAgICAgICAgICAgICAgICAgICAgIDs7CisgICAgICAgICAgICAgICAgICAgICAg
KHByaXNtLXN3LWNjLWZsYWdzIGAoLEBjYy1mbGFncyAiLURJTkxJTkU9aW5saW5lIikpCisgICAg
ICAgICAgICAgICAgICAgICAgKHByaXNtLXN3LWxpbmstZmxhZ3MgbGluay1mbGFncykpCisgICAg
ICAgICAgICAgICAgIChta2Rpci1wIHByaXNtLXN3LWdlbi1oZWFkZXJzKQorICAgICAgICAgICAg
ICAgICAoYXBwbHkgaW52b2tlICJqYXZhaCIKKyAgICAgICAgICAgICAgICAgICAgICAgICItZCIg
cHJpc20tc3ctZ2VuLWhlYWRlcnMKKyAgICAgICAgICAgICAgICAgICAgICAgICItY3AiIChzdHJp
bmctYXBwZW5kIGNsYXNzZXMgIjoiIChnZXRlbnYgIkNMQVNTUEFUSCIpKQorICAgICAgICAgICAg
ICAgICAgICAgICAgKGFwcGVuZCBqYXZhYy9oLWZsYWdzCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChmaWx0ZXIgKGN1dCBzdHJpbmctcHJlZml4PyAiY29tLnN1bi5waXNjZXMiIDw+
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChqYXZhLWxpc3QtY2xh
c3NlcyBjbGFzc2VzKSkpKQorICAgICAgICAgICAgICAgICAobWtkaXItcCBwcmlzbS1zdy1uYXRp
dmUtb2JqKQorICAgICAgICAgICAgICAgICAoZm9yLWVhY2ggKGxhbWJkYSAoYykKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgKGludm9rZSAiYmFzaCIgIi1jIgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIChzdHJpbmctam9pbiBgKCJnY2MiCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgLEBwcmlzbS1zdy1jYy1mbGFn
cworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICIt
SSIgLHByaXNtLXN3LWdlbi1oZWFkZXJzCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgIi1JIiAscHJpc20tc3ctbmF0aXZlLXNyYworICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItbyIgLChzdHJpbmct
YXBwZW5kIHByaXNtLXN3LW5hdGl2ZS1vYmogIi8iCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKGJhc2VuYW1l
IGMgIi5jIikgIi5vYmoiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICxjKSkpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZpbmQtZmls
ZXMgcHJpc20tc3ctbmF0aXZlLXNyYyAiXFwuYyQiKSkKKyAgICAgICAgICAgICAgICAgKG1rZGly
LXAgKGRpcm5hbWUgcHJpc20tc3ctbmF0aXZlLWxpYikpCisgICAgICAgICAgICAgICAgIChhcHBs
eSBpbnZva2UgImcrKyIgIi1vIiBwcmlzbS1zdy1uYXRpdmUtbGliCisgICAgICAgICAgICAgICAg
ICAgICAgICAoYXBwZW5kIHByaXNtLXN3LWxpbmstZmxhZ3MgKGZpbmQtZmlsZXMgcHJpc20tc3ct
bmF0aXZlLW9iaiAiXFwub2JqJCIpKSkKKyAgICAgICAgICAgICAgICAgI3QpKSkKKworICAgICAg
ICAgICAoYWRkLWFmdGVyICdjb21waWxlLWxpbnV4LXByaXNtLXN3ICdpbnN0YWxsLW5hdGl2ZQor
ICAgICAgICAgICAgIChsYW1iZGEqICgjOmtleSBvdXRwdXRzICM6YWxsb3ctb3RoZXIta2V5cykK
KyAgICAgICAgICAgICAgIChsZXQgKChsaWIgKHN0cmluZy1hcHBlbmQgKGFzc29jLXJlZiBvdXRw
dXRzICJvdXQiKSAiL2xpYiIpKSkKKyAgICAgICAgICAgICAgICAgKGZvci1lYWNoIChsYW1iZGEg
KGZpbGUpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChpbnN0YWxsLWZpbGUgZmlsZSBs
aWIpKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgKGZpbmQtZmlsZXMgIi4iICJcXC5zbyQi
KSkKKyAgICAgICAgICAgICAgICAgI3QpKSkKKworICAgICAgICAgICAoYWRkLWFmdGVyICdpbnN0
YWxsLW5hdGl2ZSAnYnVpbGQtamFyCisgICAgICAgICAgICAgKGxhbWJkYSBfCisgICAgICAgICAg
ICAgICAobGV0KiAoKG1vZHVsZSAoc3RyaW5nLWFwcGVuZCAibW9kdWxlcy9ncmFwaGljcyIpKQor
ICAgICAgICAgICAgICAgICAgICAgIChyZXNvdXJjZXMgKHN0cmluZy1hcHBlbmQgbW9kdWxlICIv
c3JjL21haW4vcmVzb3VyY2VzIikpCisgICAgICAgICAgICAgICAgICAgICAgKGNsYXNzZXMgKHN0
cmluZy1hcHBlbmQgbW9kdWxlICIvYnVpbGQvY2xhc3Nlcy9qYXZhL21haW4iKSkpCisgICAgICAg
ICAgICAgICAgIChjb3B5LXJlY3Vyc2l2ZWx5IHJlc291cmNlcyBjbGFzc2VzKQorCisgICAgICAg
ICAgICAgICAgIChpbnZva2UgImFudCIgImphciIgKHN0cmluZy1hcHBlbmQgIi1EY2xhc3Nlcy5k
aXI9IiBjbGFzc2VzKSkpCisgICAgICAgICAgICAgICAjdCkpKSkpKQogICAgIChuYXRpdmUtaW5w
dXRzCi0gICAgIGAoKCJKTmF0aXZlU3VyZmFjZS5jIgotICAgICAgICAsKG9yaWdpbgotICAgICAg
ICAgICAobWV0aG9kIHVybC1mZXRjaCkKLSAgICAgICAgICAgKHVyaSAiaHR0cHM6Ly9yYXcuZ2l0
aHVidXNlcmNvbnRlbnQuY29tL29wZW5qZGsvamZ4Lzh1MjAtYjAyXAotL21vZHVsZXMvZ3JhcGhp
Y3Mvc3JjL21haW4vbmF0aXZlLXByaXNtLXN3L0pOYXRpdmVTdXJmYWNlLmMiKQotICAgICAgICAg
ICAoc2hhMjU2Ci0gICAgICAgICAgICAoYmFzZTMyCi0gICAgICAgICAgICAgIjFrcDE1d2JuZDZy
bjBuY2ljenA1aWJxMGlrYnkyeXlzdngxZ256NWZhMDV2bDJtbThtYm0iKSkpKSkpCi0gICAgKGRl
c2NyaXB0aW9uICJPcGVuSkZYIGlzIGEgY2xpZW50IGFwcGxpY2F0aW9uIHBsYXRmb3JtIGZvciBk
ZXNrdG9wLAotbW9iaWxlIGFuZCBlbWJlZGRlZCBzeXN0ZW1zIGJ1aWx0IG9uIEphdmEuICBJdHMg
Z29hbCBpcyB0byBwcm9kdWNlIGEKLW1vZGVybiwgZWZmaWNpZW50LCBhbmQgZnVsbHkgZmVhdHVy
ZWQgdG9vbGtpdCBmb3IgZGV2ZWxvcGluZyByaWNoIGNsaWVudAotYXBwbGljYXRpb25zLiAgVGhp
cyBwYWNrYWdlIGNvbnRhaW5zIGdyYXBoaWNzLXJlbGF0ZWQgY2xhc3NlcyBmb3IgdGhlCi1PcGVu
SkZYIGRpc3RyaWJ1dGlvbi4iKSkpCisgICAgIGAoKCJmcmVldHlwZSIgLGZyZWV0eXBlKQorICAg
ICAgICgiZm9udGNvbmZpZyIgLGZvbnRjb25maWcpCisgICAgICAgKCJnY2MiICxnY2MpCisgICAg
ICAgKCJnbGliIiAsZ2xpYikKKyAgICAgICAoInpsaWIiICx6bGliKQorICAgICAgICgiZ3RrIiAs
Z3RrKy0yKQorICAgICAgICgiZ3RrMyIgLGd0ayspCisgICAgICAgKCJqcGVnIiAsbGlianBlZy10
dXJibykKKyAgICAgICAoImxpYnh0c3QiICxsaWJ4dHN0KQorICAgICAgICgicGFuZ28iICxwYW5n
bykKKyAgICAgICAoImxpYnBuZyIgLGxpYnBuZykKKyAgICAgICAoInBrZy1jb25maWciICxwa2ct
Y29uZmlnKSkpCisgICAgKHByb3BhZ2F0ZWQtaW5wdXRzCisgICAgIGAoKCJqYXZhLW9wZW5qZngt
YmFzZSIgLGphdmEtb3BlbmpmeC1iYXNlKQorICAgICAgICgiamF2YS1zd3QiICxqYXZhLXN3dCkp
KSkpCisKKyhkZWZpbmUtcHVibGljIGphdmEtb3BlbmpmeC1zd2luZworICAocGFja2FnZSAoaW5o
ZXJpdCBqYXZhLW9wZW5qZngtYnVpbGQpCisgICAgKG5hbWUgImphdmEtb3BlbmpmeC1zd2luZyIp
CisgICAgKGFyZ3VtZW50cworICAgICBgKCM6amFyLW5hbWUgImphdmEtb3BlbmpmeC1zd2luZy5q
YXIiCisgICAgICAgIzpzb3VyY2UtZGlyICJtb2R1bGVzL3N3aW5nL3NyYy9tYWluL2phdmEiCisg
ICAgICAgIzp0ZXN0cz8gI2YpKQorICAgIChpbnB1dHMKKyAgICAgYCgoImFudGxyMyIgLGFudGxy
MykKKyAgICAgICAoImphdmEtc3RyaW5ndGVtcGxhdGUiICxqYXZhLXN0cmluZ3RlbXBsYXRlKSkp
CisgICAgKHByb3BhZ2F0ZWQtaW5wdXRzCisgICAgIGAoKCJqYXZhLW9wZW5qZngtZ3JhcGhpY3Mi
ICxqYXZhLW9wZW5qZngtZ3JhcGhpY3MpKSkpKQorCisoZGVmaW5lLXB1YmxpYyBqYXZhLW9wZW5q
Zngtc3d0CisgIChwYWNrYWdlIChpbmhlcml0IGphdmEtb3BlbmpmeC1idWlsZCkKKyAgICAobmFt
ZSAiamF2YS1vcGVuamZ4LXN3dCIpCisgICAgKGFyZ3VtZW50cworICAgICBgKCM6amFyLW5hbWUg
ImphdmEtb3BlbmpmeC1zd3QuamFyIgorICAgICAgICM6c291cmNlLWRpciAibW9kdWxlcy9zd3Qv
c3JjL21haW4vamF2YSIKKyAgICAgICAjOnRlc3RzPyAjZikpCisgICAgKGlucHV0cworICAgICBg
KCgiYW50bHIzIiAsYW50bHIzKQorICAgICAgICgiamF2YS1zdHJpbmd0ZW1wbGF0ZSIgLGphdmEt
c3RyaW5ndGVtcGxhdGUpKSkKKyAgICAocHJvcGFnYXRlZC1pbnB1dHMKKyAgICAgYCgoImphdmEt
b3BlbmpmeC1ncmFwaGljcyIgLGphdmEtb3BlbmpmeC1ncmFwaGljcykpKSkpCisKKyhkZWZpbmUt
cHVibGljIGphdmEtb3BlbmpmeC1jb250cm9scworICAocGFja2FnZSAoaW5oZXJpdCBqYXZhLW9w
ZW5qZngtYnVpbGQpCisgICAgKG5hbWUgImphdmEtb3BlbmpmeC1jb250cm9scyIpCisgICAgKGFy
Z3VtZW50cworICAgICBgKCM6amFyLW5hbWUgImphdmEtb3BlbmpmeC1jb250cm9scy5qYXIiCisg
ICAgICAgIzpzb3VyY2UtZGlyICJtb2R1bGVzL2NvbnRyb2xzL3NyYy9tYWluL2phdmEiCisgICAg
ICAgIzp0ZXN0cz8gI2YKKyAgICAgICAjOnBoYXNlcworICAgICAgIChtb2RpZnktcGhhc2VzICVz
dGFuZGFyZC1waGFzZXMKKyAgICAgICAgIChhZGQtYmVmb3JlICdidWlsZCAnY29weS1yZXNvdXJj
ZXMKKyAgICAgICAgICAgKGxhbWJkYSBfCisgICAgICAgICAgICAgKGxldCAoKHJlc291cmNlcyAo
c3RyaW5nLWFwcGVuZCAoZ2V0Y3dkKSAiL21vZHVsZXMvY29udHJvbHMvc3JjL21haW4vcmVzb3Vy
Y2VzIikpKQorICAgICAgICAgICAgICAgKGNvcHktcmVjdXJzaXZlbHkgcmVzb3VyY2VzICJidWls
ZC9jbGFzc2VzIikpICN0KSkpKSkKKyAgICAocHJvcGFnYXRlZC1pbnB1dHMKKyAgICAgYCgoImph
dmEtb3BlbmpmeC1ncmFwaGljcyIgLGphdmEtb3BlbmpmeC1ncmFwaGljcykpKSkpCiAKIChkZWZp
bmUtcHVibGljIGphdmEtb3BlbmpmeC1tZWRpYQogICAocGFja2FnZSAoaW5oZXJpdCBqYXZhLW9w
ZW5qZngtYnVpbGQpCkBAIC0yNzAyLDMyICszMzAxLDE3NCBAQCAoZGVmaW5lLXB1YmxpYyBqYXZh
LW9wZW5qZngtbWVkaWEKIGFwcGxpY2F0aW9ucy4gIFRoaXMgcGFja2FnZSBjb250YWlucyBtZWRp
YS1yZWxhdGVkIGNsYXNzZXMgZm9yIHRoZQogT3BlbkpGWCBkaXN0cmlidXRpb24uIikpKQogCi0o
ZGVmaW5lLXB1YmxpYyBqYXZhLW9wZW5qZngtY29udHJvbHMKKyhkZWZpbmUtcHVibGljIGphdmEt
b3BlbmpmeC13ZWIKICAgKHBhY2thZ2UgKGluaGVyaXQgamF2YS1vcGVuamZ4LWJ1aWxkKQotICAg
IChuYW1lICJqYXZhLW9wZW5qZngtY29udHJvbHMiKQotICAgIChwcm9wYWdhdGVkLWlucHV0cwot
ICAgICBgKCgiamF2YS1vcGVuanhmLWdyYXBoaWNzIiAsamF2YS1vcGVuamZ4LWdyYXBoaWNzKSkp
CisgICAgKG5hbWUgImphdmEtb3BlbmpmeC13ZWIiKQogICAgIChhcmd1bWVudHMKLSAgICAgYCgj
Omphci1uYW1lICJqYXZhLW9wZW5qZngtY29udHJvbHMuamFyIgotICAgICAgICM6c291cmNlLWRp
ciAibW9kdWxlcy9jb250cm9scy9zcmMvbWFpbi9qYXZhIgotICAgICAgICM6dGVzdC1kaXIgIm1v
ZHVsZXMvY29udHJvbHMvc3JjL3Rlc3QiCi0gICAgICAgOzsgVE9ETzogdGVzdHMgcmVxdWlyZSBj
b20uc3VuLmphdmFmeC5wZ3N0dWIsCi0gICAgICAgOzsgamF2YWZ4LmNvbGxlY3Rpb25zLk1vY2tT
ZXRPYnNlcnZlciwgYW5kCi0gICAgICAgOzsgY29tLnN1bi5qYXZhZnguYmluZGluZy5FeHByZXNz
aW9uSGVscGVyVXRpbGl0eQotICAgICAgICM6dGVzdHM/ICNmYWxzZQorICAgICBgKCM6amFyLW5h
bWUgImphdmEtb3BlbmpmeC13ZWIuamFyIgorICAgICAgICM6c291cmNlLWRpciAoc3RyaW5nLWpv
aW4gJygibW9kdWxlcy93ZWIvc3JjL21haW4vamF2YSIKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgIm1vZHVsZXMvd2ViL3NyYy9tYWluL25hdGl2ZS9Tb3VyY2UvV2ViQ29yZS9i
aW5kaW5ncy9qYXZhL2RvbTMiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIjsi
KQorICAgICAgICM6dGVzdHM/ICNmCisgICAgICAgIzptb2R1bGVzICgoaWNlLTkgbWF0Y2gpCisg
ICAgICAgICAgICAgICAgICAoZ3VpeCBidWlsZCBhbnQtYnVpbGQtc3lzdGVtKQorICAgICAgICAg
ICAgICAgICAgKGd1aXggYnVpbGQgdXRpbHMpKQogICAgICAgICM6cGhhc2VzCiAgICAgICAgKG1v
ZGlmeS1waGFzZXMgJXN0YW5kYXJkLXBoYXNlcwotICAgICAgICAgKGFkZC1hZnRlciAndW5wYWNr
ICdjb3B5LXJlc291cmNlcworICAgICAgICAgKHJlcGxhY2UgJ2J1aWxkCisgICAgICAgICAgIChs
YW1iZGEqIF8KKyAgICAgICAgICAgICAoaW52b2tlICJhbnQiICJjb21waWxlIiAiLURjbGFzc2Vz
LmRpcj1tb2R1bGVzL3dlYi9idWlsZC9jbGFzc2VzL2phdmEvbWFpbiIpCisgICAgICAgICAgICAg
I3QpKQorCisgICAgICAgICAoYWRkLWFmdGVyICdidWlsZCAnZ2VuZXJhdGUtaGVhZGVycworICAg
ICAgICAgICA7OyBYWDogV2UgcHJvdmlkZSBvbmx5IHNvZnR3YXJlIGJ1aWx0IGZyb20gc291cmNl
LCBzbyBsZXQncyBidWlsZAorICAgICAgICAgICA7OyB3ZWJraXQgYXMgd2VsbC4gTGlzdCBvZiB3
ZWJraXQgY2xhc3NlcyBjYW4gYmUgZm91bmQgaW4KKyAgICAgICAgICAgOzsgYnVpbGQuZ3JhZGxl
OjI1MTYuIFdlIG5lZWQgdG8gZ2VuZXJhdGUgaGVhZGVycyBmb3IgdGhlIHVwY29taW5nCisgICAg
ICAgICAgIDs7IGNvbXBpbGF0aW9uIHN0ZXAgZmlyc3QgYW5kIHB1dCB0aGVtIGluIGdlbmVyYXRl
ZC1zcmMvaGVhZGVycworICAgICAgICAgICA7OyBsb2NhdGlvbi4KKyAgICAgICAgICAgKGxhbWJk
YSogKCM6a2V5IGlucHV0cyAjOmFsbG93LW90aGVyLWtleXMpCisgICAgICAgICAgICAgKGxldCog
KChjbGFzc2VzICJtb2R1bGVzL3dlYi9idWlsZC9jbGFzc2VzL2phdmEvbWFpbiIpCisgICAgICAg
ICAgICAgICAgICAgICh3ZWItZ2VuZXJhdGVkLWhlYWRlcnMgIm1vZHVsZXMvd2ViL2J1aWxkL2dl
bmVyYXRlZC1zcmMvaGVhZGVycyIpCisgICAgICAgICAgICAgICAgICAgICh3ZWItZ2VuZXJhdGVk
LWNsYXNzZXMgJygiY29tLnN1bi53ZWJraXQuQ29udGV4dE1lbnUiCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29tLnN1bi53ZWJraXQuQ29udGV4dE1lbnVJ
dGVtIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbS5z
dW4ud2Via2l0LkN1cnNvck1hbmFnZXIiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAiY29tLnN1bi53ZWJraXQuUGFnZUNhY2hlIgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbS5zdW4ud2Via2l0LlBvcHVwTWVudSIK
KyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjb20uc3VuLndl
YmtpdC5TaGFyZWRCdWZmZXIiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAiY29tLnN1bi53ZWJraXQuV2ViUGFnZSIKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJjb20uc3VuLndlYmtpdC5Mb2FkTGlzdGVuZXJDbGllbnQi
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29tLnN1bi53
ZWJraXQuZXZlbnQuV0NGb2N1c0V2ZW50IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgImNvbS5zdW4ud2Via2l0LmV2ZW50LldDS2V5RXZlbnQiCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29tLnN1bi53ZWJraXQuZXZl
bnQuV0NNb3VzZUV2ZW50IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgImNvbS5zdW4ud2Via2l0LmV2ZW50LldDTW91c2VXaGVlbEV2ZW50IgorICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbS5zdW4ud2Via2l0LmdyYXBo
aWNzLkdyYXBoaWNzRGVjb2RlciIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICJjb20uc3VuLndlYmtpdC5ncmFwaGljcy5SZW5kZXJNZWRpYUNvbnRyb2xzIgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbS5zdW4ud2Vi
a2l0LmdyYXBoaWNzLlJlbmRlclRoZW1lIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgImNvbS5zdW4ud2Via2l0LmdyYXBoaWNzLlNjcm9sbEJhclRoZW1lIgor
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbS5zdW4ud2Vi
a2l0LmdyYXBoaWNzLldDTWVkaWFQbGF5ZXIiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiY29tLnN1bi53ZWJraXQuZ3JhcGhpY3MuV0NHcmFwaGljc01hbmFn
ZXIiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29tLnN1
bi53ZWJraXQuZ3JhcGhpY3MuV0NSZW5kZXJRdWV1ZSIKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICJjb20uc3VuLndlYmtpdC5ncmFwaGljcy5XQ1BhdGgiCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29tLnN1bi53ZWJr
aXQuZ3JhcGhpY3MuV0NQYXRoSXRlcmF0b3IiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiY29tLnN1bi53ZWJraXQuVGltZXIiCisgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29tLnN1bi53ZWJraXQuV0NGcmFtZVZpZXci
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29tLnN1bi53
ZWJraXQuV0NQYXN0ZWJvYXJkIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgImNvbS5zdW4ud2Via2l0LldDUGx1Z2luV2lkZ2V0IgorICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgImNvbS5zdW4ud2Via2l0LmRvbS5DaGFyYWN0
ZXJEYXRhSW1wbCIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICJjb20uc3VuLndlYmtpdC5kb20uSlNPYmplY3QiCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiY29tLnN1bi53ZWJraXQubmV0d29yay5Tb2NrZXRTdHJlYW1I
YW5kbGUiCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiY29t
LnN1bi53ZWJraXQubmV0d29yay5VUkxMb2FkZXIiCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAiY29tLnN1bi53ZWJraXQudGV4dC5UZXh0QnJlYWtJdGVyYXRv
ciIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICJjb20uc3Vu
LndlYmtpdC50ZXh0LlRleHROb3JtYWxpemVyIikpCisgICAgICAgICAgICAgICAgICAgIChncmFw
aGljcyAoYXNzb2MtcmVmIGlucHV0cyAiamF2YS1vcGVuamZ4LWdyYXBoaWNzIikpKQorICAgICAg
ICAgICAgICAgKG1rZGlyLXAgd2ViLWdlbmVyYXRlZC1oZWFkZXJzKQorICAgICAgICAgICAgICAg
KGFwcGx5IGludm9rZQorICAgICAgICAgICAgICAgICAgICAgICJqYXZhaCIKKyAgICAgICAgICAg
ICAgICAgICAgICAiLURqYXZhLmV4dC5kaXJzPSIKKyAgICAgICAgICAgICAgICAgICAgICAiLVhE
aWdub3JlLnN5bWJvbC5maWxlIgorICAgICAgICAgICAgICAgICAgICAgICItWER1c2VVbnNoYXJl
ZFRhYmxlPXRydWUiCisgICAgICAgICAgICAgICAgICAgICAgIi1kIiB3ZWItZ2VuZXJhdGVkLWhl
YWRlcnMKKyAgICAgICAgICAgICAgICAgICAgICAiLWNwIiAoc3RyaW5nLWpvaW4gKGNvbnMqIGNs
YXNzZXMgKGZpbmQtZmlsZXMgZ3JhcGhpY3MgIlxcLmphciQiKSkgIjoiKQorICAgICAgICAgICAg
ICAgICAgICAgIHdlYi1nZW5lcmF0ZWQtY2xhc3NlcykpCisgICAgICAgICAgICAgI3QpKQorCisg
ICAgICAgICAoYWRkLWFmdGVyICdnZW5lcmF0ZS1oZWFkZXJzICdjb21waWxlLW5hdGl2ZS1saW51
eAorICAgICAgICAgICAobGFtYmRhKiAoIzprZXkgaW5wdXRzIHN5c3RlbSBvdXRwdXRzICM6YWxs
b3ctb3RoZXIta2V5cykKKyAgICAgICAgICAgICAobGV0KiAgKChtb2R1bGUgKHN0cmluZy1hcHBl
bmQgKGdldGN3ZCkgIi9tb2R1bGVzL3dlYiIpKQorICAgICAgICAgICAgICAgICAgICAgOzsKKyAg
ICAgICAgICAgICAgICAgICAgICh3ZWJraXQtbmF0aXZlLWRlc3QgKHN0cmluZy1hcHBlbmQgbW9k
dWxlICIvYnVpbGQvbGludXgiKSkKKyAgICAgICAgICAgICAgICAgICAgICh3ZWJraXQtbmF0aXZl
LXNyYyAoc3RyaW5nLWFwcGVuZCBtb2R1bGUgIi9zcmMvbWFpbi9uYXRpdmUiKSkKKyAgICAgICAg
ICAgICAgICAgICAgIDs7CisgICAgICAgICAgICAgICAgICAgICAobGliIChzdHJpbmctYXBwZW5k
IChhc3NvYy1yZWYgb3V0cHV0cyAib3V0IikgIi9saWIiKSkKKyAgICAgICAgICAgICAgICAgICAg
IDs7IHVuYW1lIC1tCisgICAgICAgICAgICAgICAgICAgICAobWFjaGluZSAobWF0Y2ggc3lzdGVt
CisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgieDg2XzY0LWxpbnV4IiAgICJ4ODZf
NjQiKQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoImk2ODYtbGludXgiICAgICAi
aTY4NiIpCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IFByZXZlbnQgZXJyb3Jz
IHdoZW4gcXVlcnlpbmcgdGhpcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA7OyBw
YWNrYWdlIG9uIHVuc3VwcG9ydGVkIHBsYXRmb3JtcywKKyAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgOzsgZS5nLiB3aGVuIHJ1bm5pbmcgImd1aXggcGFja2FnZQorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA7OyAtLXNlYXJjaD0iCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgIChfICAgICAgICAgICAgICAgICJVTlNVUFBPUlRFRCIpKSkpCisKKyAgICAgICAg
ICAgICAgIChzZXRlbnYgIlBZVEhPTkRPTlRXUklURUJZVEVDT0RFIiAiMSIpCisgICAgICAgICAg
ICAgICAoc2V0ZW52ICJXRUJLSVRfT1VUUFVURElSIiB3ZWJraXQtbmF0aXZlLWRlc3QpCisgICAg
ICAgICAgICAgICAoYXBwbHkgaW52b2tlIGAoInBlcmwiCisgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgLChzdHJpbmctYXBwZW5kIHdlYmtpdC1uYXRpdmUtc3JjICIvVG9vbHMvU2NyaXB0
cy9zZXQtd2Via2l0LWNvbmZpZ3VyYXRpb24iKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICwoaWYgLCh0YXJnZXQtNjRiaXQ/KSAiLS02NC1iaXQiICItLTMyLWJpdCIpCisgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgIi0tcmVsZWFzZSIpKQorCisgICAgICAgICAgICAgICAo
aW52b2tlICJwZXJsIgorICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLWFwcGVuZCB3ZWJr
aXQtbmF0aXZlLXNyYyAiL1Rvb2xzL1NjcmlwdHMvYnVpbGQtd2Via2l0IikKKyAgICAgICAgICAg
ICAgICAgICAgICAgIi0tamF2YSIgOyB3ZWJraXQgcG9ydAorICAgICAgICAgICAgICAgICAgICAg
ICAiLS1za2lwLWxpYnJhcnktdXBkYXRlIgorICAgICAgICAgICAgICAgICAgICAgICAiLS1pY3Ut
dW5pY29kZSIKKyAgICAgICAgICAgICAgICAgICAgICAgIi0tdmVyYm9zZSIKKyAgICAgICAgICAg
ICAgICAgICAgICAgKHN0cmluZy1hcHBlbmQKKyAgICAgICAgICAgICAgICAgICAgICAgICItLWNt
YWtlYXJncz0iCisgICAgICAgICAgICAgICAgICAgICAgICAoc3RyaW5nLWpvaW4KKyAgICAgICAg
ICAgICAgICAgICAgICAgICAobGlzdCAiLURFTkFCTEVfVE9PTFM9MSIKKyAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiLURDTUFLRV9TWVNURU1fTkFNRT1MaW51eCIKKyAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICA7OyBFbnN1cmUgdGhhdCB0aGUgbGlicmFyaWVzIGFyZSBpbnN0
YWxsZWQgaW50byAvbGliCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0cmluZy1h
cHBlbmQgIi1EQ01BS0VfSU5TVEFMTF9MSUJESVI9IiBsaWIpCisgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICAgOzsgQWRkIGlucHV0IGxpYnJhcmllcyB0byBycGF0aAorICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICItRENNQUtFX0lOU1RBTExfUlBBVEhfVVNFX0xJTktfUEFUSD1U
UlVFIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDs7IEVuYWJsZSB2ZXJib3NlIG91
dHB1dCBmcm9tIGJ1aWxkcworICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItRENNQUtF
X1ZFUkJPU0VfTUFLRUZJTEU9T04iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKHN0
cmluZy1hcHBlbmQgIi1EQ01BS0VfU0hBUkVEX0xJTktFUl9GTEFHUz0iCisgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIlwiLVdsLC1ycGF0aD0iIGxpYiAiXCIi
KQorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChzdHJpbmctYXBwZW5kICItRENNQUtF
X1NZU1RFTV9QUk9DRVNTT1I9IiBtYWNoaW5lKQorICAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICItREpBVkFGWF9SRUxFQVNFX1ZFUlNJT049OC4wIgorICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICAgICItVyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAiLVdhbGwiCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1XZXJyb3I9aW1wbGljaXQtZnVuY3Rpb24t
ZGVjbGFyYXRpb24iCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIi1XbCwtLWdjLXNl
Y3Rpb25zIgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItV25vLXBhcmVudGhlc2Vz
IgorICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICItV25vLXVudXNlZCIKKyAgICAgICAg
ICAgICAgICAgICAgICAgICAgICAgICAiLWZQSUMiCisgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgIi1mbm8tb21pdC1mcmFtZS1wb2ludGVyIgorICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICItZm5vLXN0cmljdC1hbGlhc2luZyIKKyAgICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAiLWZzdGFjay1wcm90ZWN0b3IiKSkpKSkKKyAgICAgICAgICAgICAjdCkpCisKKyAgICAg
ICAgIChhZGQtYWZ0ZXIgJ2NvbXBpbGUtbmF0aXZlLWxpbnV4ICdpbnN0YWxsLW5hdGl2ZQorICAg
ICAgICAgICAobGFtYmRhKiAoIzprZXkgb3V0cHV0cyAjOmFsbG93LW90aGVyLWtleXMpCisgICAg
ICAgICAgICAgKGxldCAoKGxpYiAoc3RyaW5nLWFwcGVuZCAoYXNzb2MtcmVmIG91dHB1dHMgIm91
dCIpICIvbGliIikpKQorICAgICAgICAgICAgICAgKGZvci1lYWNoIChsYW1iZGEgKGZpbGUpCisg
ICAgICAgICAgICAgICAgICAgICAgICAgICAoaW5zdGFsbC1maWxlIGZpbGUgbGliKSkKKyAgICAg
ICAgICAgICAgICAgICAgICAgICAoZmluZC1maWxlcyAiLiIgIlxcLnNvJCIpKSkKKyAgICAgICAg
ICAgICAjdCkpCisKKyAgICAgICAgIChhZGQtYmVmb3JlICdpbnN0YWxsICdidWlsZC1qYXIKICAg
ICAgICAgICAgKGxhbWJkYSBfCi0gICAgICAgICAgICAgKGNvcHktcmVjdXJzaXZlbHkgIm1vZHVs
ZXMvY29udHJvbHMvc3JjL3Rlc3QvcmVzb3VyY2VzIgotICAgICAgICAgICAgICAgICAgICAgICAg
ICAgICAgICJidWlsZC90ZXN0LWNsYXNzZXMiKQotICAgICAgICAgICAgIChjb3B5LXJlY3Vyc2l2
ZWx5ICJtb2R1bGVzL2NvbnRyb2xzL3NyYy9tYWluL3Jlc291cmNlcyIKLSAgICAgICAgICAgICAg
ICAgICAgICAgICAgICAgICAiYnVpbGQvY2xhc3NlcyIpKSkpKSkKLSAgICAoZGVzY3JpcHRpb24g
Ik9wZW5KRlggaXMgYSBjbGllbnQgYXBwbGljYXRpb24gcGxhdGZvcm0gZm9yIGRlc2t0b3AsCi1t
b2JpbGUgYW5kIGVtYmVkZGVkIHN5c3RlbXMgYnVpbHQgb24gSmF2YS4gIEl0cyBnb2FsIGlzIHRv
IHByb2R1Y2UgYQotbW9kZXJuLCBlZmZpY2llbnQsIGFuZCBmdWxseSBmZWF0dXJlZCB0b29sa2l0
IGZvciBkZXZlbG9waW5nIHJpY2ggY2xpZW50Ci1hcHBsaWNhdGlvbnMuICBUaGlzIHBhY2thZ2Ug
Y29udGFpbnMgVUkgY29udHJvbCBjbGFzc2VzIGZvciB0aGUKLU9wZW5KRlggZGlzdHJpYnV0aW9u
LiIpKSkKKyAgICAgICAgICAgICAobGV0KiAoKHJlc291cmNlcyAibW9kdWxlcy93ZWIvc3JjL21h
aW4vcmVzb3VyY2VzIikKKyAgICAgICAgICAgICAgICAgICAgKGNsYXNzZXMgIm1vZHVsZXMvd2Vi
L2J1aWxkL2NsYXNzZXMvamF2YS9tYWluIikpCisgICAgICAgICAgICAgICAoY29weS1yZWN1cnNp
dmVseSByZXNvdXJjZXMgY2xhc3NlcykKKyAgICAgICAgICAgICAgIChpbnZva2UgImFudCIgImph
ciIgKHN0cmluZy1hcHBlbmQgIi1EY2xhc3Nlcy5kaXI9IiBjbGFzc2VzKSkpCisgICAgICAgICAg
ICAgI3QpKSkpKQorCisgICAgKG5hdGl2ZS1pbnB1dHMKKyAgICAgYCgoImphdmEtanVuaXQiICxq
YXZhLWp1bml0KQorICAgICAgICgiamF2YS1oYW1jcmVzdC1jb3JlIiAsamF2YS1oYW1jcmVzdC1j
b3JlKQorICAgICAgICgiY21ha2UiICxjbWFrZSkKKyAgICAgICAoImd0ayIgLGd0aystMikKKyAg
ICAgICAoImd0azMiICxndGsrKQorICAgICAgICgicnVieSIgLHJ1YnkpCisgICAgICAgKCJwZXJs
IiAscGVybCkKKyAgICAgICAoImdwZXJmIiAsZ3BlcmYpCisgICAgICAgKCJweXRob24tMiIgLHB5
dGhvbi0yKQorICAgICAgICgicGtnLWNvbmZpZyIgLHBrZy1jb25maWcpKSkKKyAgICAoaW5wdXRz
CisgICAgIGAoKCJhbnRscjMiICxhbnRscjMpCisgICAgICAgKCJqYXZhLXN0cmluZ3RlbXBsYXRl
IiAsamF2YS1zdHJpbmd0ZW1wbGF0ZSkKKyAgICAgICA7OyBXZWJraXQgSmF2YSBwb3J0IGRlcGVu
ZGVuY2llcworICAgICAgICgiaWN1NGMiICxpY3U0YykKKyAgICAgICAoImxpYnhtbDIiICxsaWJ4
bWwyKQorICAgICAgICgibGlieHNsdCIgLGxpYnhzbHQpCisgICAgICAgKCJzcWxpdGUiICxzcWxp
dGUpKSkKKyAgICAocHJvcGFnYXRlZC1pbnB1dHMKKyAgICAgYCgoImphdmEtb3BlbmpmeC1jb250
cm9scyIgLGphdmEtb3BlbmpmeC1jb250cm9scykKKyAgICAgICAoImphdmEtb3BlbmpmeC1tZWRp
YSIgLGphdmEtb3BlbmpmeC1tZWRpYSkKKyAgICAgICAoImphdmEtb3BlbmpmeC1ncmFwaGljcyIg
LGphdmEtb3BlbmpmeC1ncmFwaGljcykpKSkpCiAKIChkZWZpbmUtcHVibGljIGphdmFjYy00CiAg
IChwYWNrYWdlCmRpZmYgLS1naXQgYS9nbnUvcGFja2FnZXMvcGF0Y2hlcy9qYXZhLW9wZW5qZngt
YnVpbGQtc3dpbmctSkZYUGFuZWwtSkRLOC5wYXRjaCBiL2dudS9wYWNrYWdlcy9wYXRjaGVzL2ph
dmEtb3BlbmpmeC1idWlsZC1zd2luZy1KRlhQYW5lbC1KREs4LnBhdGNoCm5ldyBmaWxlIG1vZGUg
MTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLmI1NDAwNDg2MjEKLS0tIC9kZXYvbnVsbAorKysgYi9n
bnUvcGFja2FnZXMvcGF0Y2hlcy9qYXZhLW9wZW5qZngtYnVpbGQtc3dpbmctSkZYUGFuZWwtSkRL
OC5wYXRjaApAQCAtMCwwICsxLDYwIEBACitTdWJqZWN0OiBbUEFUQ0hdIGphdmEtb3BlbmpmeC1i
dWlsZDogQ2Fubm90IGNvbXBpbGUgSkZYUGFuZWwgd2l0aCBKREsgOAorCitJbiBKREt1OSBnZXRE
ZWZhdWx0U2NhbGUgbWV0aG9kIHdhcyByZW1vdmVkIGFuZCBzdW4uamF2YTJkLlN1cmZhY2VEYXRh
IGNsYXNzIG5vdworaGFzIHNlcGFyYXRlIGdldERlZmF1bHRTY2FsZVgoKSBhbmQgZ2V0RGVmYXVs
dFNjYWxlWSgpIG1ldGhvZHMuIFNlZQoraHR0cHM6Ly9idWdzLm9wZW5qZGsuamF2YS5uZXQvYnJv
d3NlL0pESy04MDczMzIwIGZvciBtb3JlIGluZm8uCisKK0JhY2twb3J0IHRoZSBtaXNzaW5nIHBv
cnQgdG8gYnVpbGQgb3BlbmpmeC1zd2luZyBwYWNrYWdlIHVzaW5nIEpES3U4LiBGb3IgbW9yZQor
aW5mbyBwbGVhc2Ugc2VlIGh0dHBzOi8vYnVncy5vcGVuamRrLmphdmEubmV0L2Jyb3dzZS9KREst
ODE0OTk2NworCistLS0KKyAuLi4vamF2YS9qYXZhZngvZW1iZWQvc3dpbmcvSkZYUGFuZWwuamF2
YSAgICAgfCAyMCArKysrKysrKysrKysrKysrKystCisgMSBmaWxlIGNoYW5nZWQsIDE5IGluc2Vy
dGlvbnMoKyksIDEgZGVsZXRpb24oLSkKKworZGlmZiAtLWdpdCBhL21vZHVsZXMvc3dpbmcvc3Jj
L21haW4vamF2YS9qYXZhZngvZW1iZWQvc3dpbmcvSkZYUGFuZWwuamF2YSBiL21vZHVsZXMvc3dp
bmcvc3JjL21haW4vamF2YS9qYXZhZngvZW1iZWQvc3dpbmcvSkZYUGFuZWwuamF2YQoraW5kZXgg
OTc1MTVlMjI5MC4uNjE0ZWQ2NTZiOSAxMDA2NDQKKy0tLSBhL21vZHVsZXMvc3dpbmcvc3JjL21h
aW4vamF2YS9qYXZhZngvZW1iZWQvc3dpbmcvSkZYUGFuZWwuamF2YQorKysrIGIvbW9kdWxlcy9z
d2luZy9zcmMvbWFpbi9qYXZhL2phdmFmeC9lbWJlZC9zd2luZy9KRlhQYW5lbC5qYXZhCitAQCAt
ODEsNiArODEsNyBAQCBpbXBvcnQgc3VuLmF3dC5BcHBDb250ZXh0OworIGltcG9ydCBzdW4uYXd0
LkNhdXNlZEZvY3VzRXZlbnQ7CisgaW1wb3J0IHN1bi5hd3QuU3VuVG9vbGtpdDsKKyBpbXBvcnQg
c3VuLmphdmEyZC5TdW5HcmFwaGljczJEOworK2ltcG9ydCBzdW4uamF2YTJkLlN1cmZhY2VEYXRh
OworIGltcG9ydCBzdW4udXRpbC5sb2dnaW5nLlBsYXRmb3JtTG9nZ2VyOworIGltcG9ydCBzdW4u
dXRpbC5sb2dnaW5nLlBsYXRmb3JtTG9nZ2VyLkxldmVsOworCitAQCAtNjgxLDYgKzY4MiwyMyBA
QAorICAgICAgICAgICAgICAgICBlLmdldENhcmV0KCkuZ2V0SW5zZXJ0aW9uSW5kZXgoKSk7Cisg
ICAgIH0KKworKyAgICAvLyBGSVhNRTogb25jZSB3ZSBtb3ZlIHRvIEpESyA5IGFzIHRoZSBib290
IEpESyB3ZSBzaG91bGQgcmVtb3ZlIHRoZQorKyAgICAvLyByZWZsZWN0aW9uIGNvZGUgZnJvbSB0
aGlzIG1ldGhvZCwgY29uc2lkZXIgY2hhbmdpbmcgaXQgdG8KKysgICAgLy8gdXNlIGRvdWJsZSBy
YXRoZXIgdGhhbiBpbnQsIGFuZCBhY2NvdW50IGZvciB0aGUgcG9zc2liaWxpdHkgb2YKKysgICAg
Ly8gYSBkaWZmZXJlbnQgc2NhbGUgZmFjdG9yIGluIFggYW5kIFkuCisrICAgIHByaXZhdGUgaW50
IGdldERlZmF1bHRTY2FsZShTdXJmYWNlRGF0YSBzdXJmYWNlRGF0YSkgeworKyAgICAgICAgLyoK
KysgICAgICAgICAgZG91YmxlIHNjYWxlID0gc3VyZmFjZURhdGEuZ2V0RGVmYXVsdFNjYWxlWCgp
OworKyAgICAgICAgKi8KKysgICAgICAgIGRvdWJsZSBzY2FsZSA9IDE7CisrICAgICAgICB0cnkg
eworKyAgICAgICAgICAgIE1ldGhvZCBtZXRoID0gU3VyZmFjZURhdGEuY2xhc3MuZ2V0TWV0aG9k
KCJnZXREZWZhdWx0U2NhbGVYIik7CisrICAgICAgICAgICAgc2NhbGUgPSAoRG91YmxlKW1ldGgu
aW52b2tlKHN1cmZhY2VEYXRhKTsKKysgICAgICAgIH0gY2F0Y2ggKEV4Y2VwdGlvbiBleCkgewor
KyAgICAgICAgfQorKworKyAgICAgICAgcmV0dXJuIChpbnQpTWF0aC5yb3VuZChzY2FsZSk7Cisr
ICAgIH0KKworICAgICAvKioKKyAgICAgICogT3ZlcnJpZGVzIHRoZSB7QGxpbmsgamF2YXguc3dp
bmcuSkNvbXBvbmVudCNwYWludENvbXBvbmVudChHcmFwaGljcyl9CitAQCAtNzIwLDcgKzczOCw3
IEBAIHB1YmxpYyBjbGFzcyBKRlhQYW5lbCBleHRlbmRzIEpDb21wb25lbnQgeworCisgICAgICAg
ICAgICAgaW50IG5ld1NjYWxlRmFjdG9yID0gc2NhbGVGYWN0b3I7CisgICAgICAgICAgICAgaWYg
KGcgaW5zdGFuY2VvZiBTdW5HcmFwaGljczJEKSB7CistICAgICAgICAgICAgICAgIG5ld1NjYWxl
RmFjdG9yID0gKChTdW5HcmFwaGljczJEKWcpLnN1cmZhY2VEYXRhLmdldERlZmF1bHRTY2FsZSgp
OworKyAgICAgICAgICAgICAgICBuZXdTY2FsZUZhY3RvciA9IGdldERlZmF1bHRTY2FsZSgoKFN1
bkdyYXBoaWNzMkQpZykuc3VyZmFjZURhdGEpOworICAgICAgICAgICAgIH0KKyAgICAgICAgICAg
ICBpZiAoc2NhbGVGYWN0b3IgIT0gbmV3U2NhbGVGYWN0b3IpIHsKKyAgICAgICAgICAgICAgICAg
cmVzaXplUGl4ZWxCdWZmZXIobmV3U2NhbGVGYWN0b3IpOworLS0KKzIuMjQuMQpkaWZmIC0tZ2l0
IGEvZ251L3BhY2thZ2VzL3BhdGNoZXMvamF2YS1vcGVuamZ4LWJ1aWxkLXdlYi1EdW1wUmVuZGVy
VHJlZS1qYXZhLnBhdGNoIGIvZ251L3BhY2thZ2VzL3BhdGNoZXMvamF2YS1vcGVuamZ4LWJ1aWxk
LXdlYi1EdW1wUmVuZGVyVHJlZS1qYXZhLnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4
IDAwMDAwMDAwMDAuLjAyMDBlOTJjMDUKLS0tIC9kZXYvbnVsbAorKysgYi9nbnUvcGFja2FnZXMv
cGF0Y2hlcy9qYXZhLW9wZW5qZngtYnVpbGQtd2ViLUR1bXBSZW5kZXJUcmVlLWphdmEucGF0Y2gK
QEAgLTAsMCArMSwzMCBAQAorU3ViamVjdDogW1BBVENIXSBGaXggRHVtcFJlbmRlclRyZWUgbGlu
a2luZy4KKworRHVtcFJlbmRlclRyZWUgY29tcGlsZXMgT0ssIGJ1dCBmYWlscyBvbiBhIGxpbmtp
bmcgc3RhZ2Ugd2l0aCB0aGUgYmVsbG93CitlcnJvci4gSSBmb3VuZCB0aGUgdmVyeSBzYW1lIGZp
eCBmb3Igb3BlbmpmeC04IEZyZWVCU0QgcG9ydHMgYXMgd2VsbC4gTGV0J3MKK2lnbm9yZSB1bmRl
ZmluZWQgcmVmZXJlbmNlcyBmb3Igbm93LgorCitDTWFrZUZpbGVzL0R1bXBSZW5kZXJUcmVlSmF2
YS5kaXIvX18vVGVzdFJ1bm5lci5jcHAubzpUZXN0UnVubmVyLmNwcDpmdW5jdGlvbiBUZXN0UnVu
bmVyOjpydW5VSVNjcmlwdChPcGFxdWVKU0NvbnRleHQgY29uc3QqLCBPcGFxdWVKU1N0cmluZyos
IE9wYXF1ZUpTVmFsdWUgY29uc3QqKTogZXJyb3I6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gJ1dU
Rjo6U3RyaW5nOjpTdHJpbmcodW5zaWduZWQgc2hvcnQgY29uc3QqLCB1bnNpZ25lZCBpbnQpJwor
Q01ha2VGaWxlcy9EdW1wUmVuZGVyVHJlZUphdmEuZGlyL19fL19fL1Rlc3RSdW5uZXJTaGFyZWQv
VUlTY3JpcHRDb250ZXh0L1VJU2NyaXB0Q29udGV4dC5jcHAubzpVSVNjcmlwdENvbnRleHQuY3Bw
OmZ1bmN0aW9uIFdUUjo6VUlTY3JpcHRDb250ZXh0Ojp0cnlUb0NvbXBsZXRlVUlTY3JpcHRGb3JD
dXJyZW50UGFyZW50Q2FsbGJhY2soKTogZXJyb3I6IHVuZGVmaW5lZCByZWZlcmVuY2UgdG8gJ1dU
Rjo6U3RyaW5nOjpTdHJpbmcodW5zaWduZWQgc2hvcnQgY29uc3QqLCB1bnNpZ25lZCBpbnQpJwor
Y29sbGVjdDI6IGVycm9yOiBsZCByZXR1cm5lZCAxIGV4aXQgc3RhdHVzCisKKy0tLQorIC4uLi9z
cmMvbWFpbi9uYXRpdmUvVG9vbHMvRHVtcFJlbmRlclRyZWUvamF2YS9DTWFrZUxpc3RzLnR4dCAg
fCA0IC0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgNCBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBh
L21vZHVsZXMvd2ViL3NyYy9tYWluL25hdGl2ZS9Ub29scy9EdW1wUmVuZGVyVHJlZS9qYXZhL0NN
YWtlTGlzdHMudHh0IGIvbW9kdWxlcy93ZWIvc3JjL21haW4vbmF0aXZlL1Rvb2xzL0R1bXBSZW5k
ZXJUcmVlL2phdmEvQ01ha2VMaXN0cy50eHQKK2luZGV4IGUyY2U1ZWYuLjJhZDNkYjcgMTAwNjQ0
CistLS0gYS9tb2R1bGVzL3dlYi9zcmMvbWFpbi9uYXRpdmUvVG9vbHMvRHVtcFJlbmRlclRyZWUv
amF2YS9DTWFrZUxpc3RzLnR4dAorKysrIGIvbW9kdWxlcy93ZWIvc3JjL21haW4vbmF0aXZlL1Rv
b2xzL0R1bXBSZW5kZXJUcmVlL2phdmEvQ01ha2VMaXN0cy50eHQKK0BAIC03Miw5ICs3Miw1IEBA
IGFkZF9saWJyYXJ5KER1bXBSZW5kZXJUcmVlSmF2YSBTSEFSRUQgJHtEdW1wUmVuZGVyVHJlZV9T
T1VSQ0VTfSkKKyBhZGRfZGVmaW5pdGlvbnMoLURXRUJDT1JFX0VYUE9SVD1XVEZfSU1QT1JUIC1E
V0VCQ09SRV9URVNUU1VQUE9SVF9FWFBPUlQ9V1RGX0lNUE9SVCkKKyBhZGRfZGVwZW5kZW5jaWVz
KER1bXBSZW5kZXJUcmVlSmF2YSBEdW1wUmVuZGVyVHJlZUJpbmRpbmdzKQorCistaWYgKFVOSVgg
QU5EIE5PVCBBUFBMRSkKKy0gIHNldF90YXJnZXRfcHJvcGVydGllcyhEdW1wUmVuZGVyVHJlZUph
dmEgUFJPUEVSVElFUyBMSU5LX0ZMQUdTICItV2wsLS1uby11bmRlZmluZWQiKQorLWVuZGlmICgp
CistCisgc2V0X3RhcmdldF9wcm9wZXJ0aWVzKER1bXBSZW5kZXJUcmVlSmF2YSBQUk9QRVJUSUVT
IE9VVFBVVF9OQU1FICJEdW1wUmVuZGVyVHJlZUphdmEiKQorIHRhcmdldF9saW5rX2xpYnJhcmll
cyhEdW1wUmVuZGVyVHJlZUphdmEgJHtEdW1wUmVuZGVyVHJlZV9MSUJSQVJJRVN9KQorLS0KKzIu
MjYuMgpkaWZmIC0tZ2l0IGEvZ251L3BhY2thZ2VzL3BhdGNoZXMvamF2YS1vcGVuamZ4LWJ1aWxk
LXdlYi1PcHRpb25zSmF2YS5jbWFrZS5wYXRjaCBiL2dudS9wYWNrYWdlcy9wYXRjaGVzL2phdmEt
b3BlbmpmeC1idWlsZC13ZWItT3B0aW9uc0phdmEuY21ha2UucGF0Y2gKbmV3IGZpbGUgbW9kZSAx
MDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uMWYxMzM1NzFjYgotLS0gL2Rldi9udWxsCisrKyBiL2du
dS9wYWNrYWdlcy9wYXRjaGVzL2phdmEtb3BlbmpmeC1idWlsZC13ZWItT3B0aW9uc0phdmEuY21h
a2UucGF0Y2gKQEAgLTAsMCArMSwzMiBAQAorU3ViamVjdDogW1BBVENIXSBVc2UgZmluZF9wYWNr
YWdlLgorCitXZSByZW1vdmUgYWxsIGVtYmVkZGVkIDNyZC1wYXJ0eSBsaWJzIGxpa2UgaWN1LCBs
aWJ4bWwsIGxpYnhzbHQgYW5kIHNxbGl0ZSwKK2FuZCB1c2UgbGlicmFyaWVzIHByb3ZpZGVkIHZp
YSBndWl4IGlucHV0cy4KKy0tLQorIC4uLi93ZWIvc3JjL21haW4vbmF0aXZlL1NvdXJjZS9jbWFr
ZS9PcHRpb25zSmF2YS5jbWFrZSB8IDEwICsrKystLS0tLS0KKyAxIGZpbGUgY2hhbmdlZCwgNCBp
bnNlcnRpb25zKCspLCA2IGRlbGV0aW9ucygtKQorCitkaWZmIC0tZ2l0IGEvbW9kdWxlcy93ZWIv
c3JjL21haW4vbmF0aXZlL1NvdXJjZS9jbWFrZS9PcHRpb25zSmF2YS5jbWFrZSBiL21vZHVsZXMv
d2ViL3NyYy9tYWluL25hdGl2ZS9Tb3VyY2UvY21ha2UvT3B0aW9uc0phdmEuY21ha2UKK2luZGV4
IDc2YTY2OTUuLjczYzUyNWIgMTAwNjQ0CistLS0gYS9tb2R1bGVzL3dlYi9zcmMvbWFpbi9uYXRp
dmUvU291cmNlL2NtYWtlL09wdGlvbnNKYXZhLmNtYWtlCisrKysgYi9tb2R1bGVzL3dlYi9zcmMv
bWFpbi9uYXRpdmUvU291cmNlL2NtYWtlL09wdGlvbnNKYXZhLmNtYWtlCitAQCAtMjYsMTMgKzI2
LDExIEBAIGVuZGlmICgpCisgc2V0KExJQl9JTlNUQUxMX0RJUiAiJHtDTUFLRV9JTlNUQUxMX0ZV
TExfTElCRElSfSIgQ0FDSEUgUEFUSCAiQWJzb2x1dGUgcGF0aCB0byBsaWJyYXJ5IGluc3RhbGxh
dGlvbiBkaXJlY3RvcnkiKQorIHNldChFWEVDX0lOU1RBTExfRElSICIke0NNQUtFX0lOU1RBTExf
RlVMTF9CSU5ESVJ9IiBDQUNIRSBQQVRIICJBYnNvbHV0ZSBwYXRoIHRvIGV4ZWN1dGFibGUgaW5z
dGFsbGF0aW9uIGRpcmVjdG9yeSIpCisKKy1zZXQoU1FMSVRFX0xJQlJBUklFUyBTcWxpdGVKYXZh
KQorLXNldChMSUJYTUwyX0xJQlJBUklFUyBYTUxKYXZhKQorLXNldChMSUJYU0xUX0xJQlJBUklF
UyBYU0xUSmF2YSkKKworLXNldChJQ1VfTElCUkFSSUVTIGljdXVjIGljdWRhdGEpCistc2V0KElD
VV9JMThOX0xJQlJBUklFUyBpY3VpMThuIGljdXVjIGljdWRhdGEpCistc2V0KElDVV9EQVRBX0xJ
QlJBUklFUyBpY3VkYXRhKQorK2ZpbmRfcGFja2FnZShTcWxpdGUgUkVRVUlSRUQpCisrZmluZF9w
YWNrYWdlKExpYlhtbDIgUkVRVUlSRUQpCisrZmluZF9wYWNrYWdlKExpYlhzbHQgUkVRVUlSRUQp
CisrZmluZF9wYWNrYWdlKElDVSBSRVFVSVJFRCkKKworIGZpbmRfcGFja2FnZShKTkkgUkVRVUlS
RUQpCisgZmluZF9wYWNrYWdlKFRocmVhZHMgUkVRVUlSRUQpCistLQorMi4yNi4yCmRpZmYgLS1n
aXQgYS9nbnUvcGFja2FnZXMvcGF0Y2hlcy9qYXZhLW9wZW5qZngtYnVpbGQtd2ViLVdURi5wYXRj
aCBiL2dudS9wYWNrYWdlcy9wYXRjaGVzL2phdmEtb3BlbmpmeC1idWlsZC13ZWItV1RGLnBhdGNo
Cm5ldyBmaWxlIG1vZGUgMTAwNjQ0CmluZGV4IDAwMDAwMDAwMDAuLjVmYTc2NDQ5ZGYKLS0tIC9k
ZXYvbnVsbAorKysgYi9nbnUvcGFja2FnZXMvcGF0Y2hlcy9qYXZhLW9wZW5qZngtYnVpbGQtd2Vi
LVdURi5wYXRjaApAQCAtMCwwICsxLDMzIEBACitTdWJqZWN0OiBbUEFUQ0hdIEZpeCBjb21waWxh
dGlvbiBhZ2FpbnN0IElDVSA1OSsuCisKK0lDVTRDIGhhcyBtb3ZlZCB0byBjaGFyMTZfdCBhcyB0
aGUgdHlwZSBmb3IgVVRGLTE2CitodHRwOi8vc2l0ZS5pY3UtcHJvamVjdC5vcmcvZG93bmxvYWQv
NTkKKworZGlmZiAtLWdpdCBhL21vZHVsZXMvd2ViL3NyYy9tYWluL25hdGl2ZS9Tb3VyY2UvV1RG
L3d0Zi91bmljb2RlL2phdmEvVW5pY29kZUphdmEuaCBiL21vZHVsZXMvd2ViL3NyYy9tYWluL25h
dGl2ZS9Tb3VyY2UvV1RGL3d0Zi91bmljb2RlL2phdmEvVW5pY29kZUphdmEuaAoraW5kZXggMDk5
M2FhNi4uZTZlYTEzMSAxMDA2NDQKKy0tLSBhL21vZHVsZXMvd2ViL3NyYy9tYWluL25hdGl2ZS9T
b3VyY2UvV1RGL3d0Zi91bmljb2RlL2phdmEvVW5pY29kZUphdmEuaAorKysrIGIvbW9kdWxlcy93
ZWIvc3JjL21haW4vbmF0aXZlL1NvdXJjZS9XVEYvd3RmL3VuaWNvZGUvamF2YS9Vbmljb2RlSmF2
YS5oCitAQCAtMTUsMjEgKzE1LDYgQEAKKworICNkZWZpbmUgQ2hhclByb3AocCkgY29tX3N1bl93
ZWJraXRfZG9tX0NoYXJhY3RlckRhdGFJbXBsXyMjcAorCistI2lmIFBMQVRGT1JNKEpBVkEpICYm
IE9TKFdJTkRPV1MpCistdHlwZWRlZiB3Y2hhcl90IFVDaGFyOworLSNlbHNlCistdHlwZWRlZiB1
aW50MTZfdCBVQ2hhcjsKKy0jZW5kaWYKKy0KKy0vLyAjaWZkZWYgVUNoYXIzMgorLS8vICN1bmRl
ZiBVQ2hhcjMyCistLy8gI2VuZGlmCistCistI2lmbmRlZiBfX1VNQUNISU5FX0hfXyAvL1hYWDog
cmVjaGVjaworLXR5cGVkZWYgdWludDMyX3QgVUNoYXIzMjsKKy0jZW5kaWYKKy0KKy0jZGVmaW5l
IFVfTUFTSyh4KSAoKHVpbnQzMl90KTE8PCh4KSkKKyAjZGVmaW5lIFVTRV9GQVNUX1BBVEgoYywg
ZmFzdCwgc2xvdykgKChjKSA8PSAweDdGID8gZmFzdCgoY2hhciljKSA6IHNsb3coYykpCisKKyAj
ZGVmaW5lIENIRUNLX1BST1BFUlRZKGMsIG1hc2ssIGlzU2V0KSBcCistLQorMi4yNi4yCmRpZmYg
LS1naXQgYS9nbnUvcGFja2FnZXMvcGF0Y2hlcy9qYXZhLW9wZW5qZngtYnVpbGQtd2ViLVdlYktp
dENvbXBpbGVyRmxhZ3MuY21ha2UucGF0Y2ggYi9nbnUvcGFja2FnZXMvcGF0Y2hlcy9qYXZhLW9w
ZW5qZngtYnVpbGQtd2ViLVdlYktpdENvbXBpbGVyRmxhZ3MuY21ha2UucGF0Y2gKbmV3IGZpbGUg
bW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMC4uZDBiYmI3ZTNiMgotLS0gL2Rldi9udWxsCisr
KyBiL2dudS9wYWNrYWdlcy9wYXRjaGVzL2phdmEtb3BlbmpmeC1idWlsZC13ZWItV2ViS2l0Q29t
cGlsZXJGbGFncy5jbWFrZS5wYXRjaApAQCAtMCwwICsxLDM2IEBACitTdWJqZWN0OiBbUEFUQ0hd
IEZpeCBXZWJLaXQgbGlua2FnZS4KKworU29tZWhvdyB0aGUgd2hvbGUgbGlua2FnZSBmYWlscyBi
ZWNhdXNlIG9mIHRoZSBUZXN0UnVubmVyJ3MgdW5kZWZpbmVkCityZWZlcmVuY2VzLiBIb3dldmVy
LCBJIHNlZSB0aGUgdmVyeSBzYW1lIGZpeGVzIGluIG9wZW5qZng4LWRldmVsIEZyZWVCU0QgcG9y
dCwKK2V2ZW4gdGhvdWdoIHRoZXkgdXNlIGdyYWRsZSB0byBidWlsZCBpdC4KKworQ01ha2VGaWxl
cy9EdW1wUmVuZGVyVHJlZUphdmEuZGlyL19fL1Rlc3RSdW5uZXIuY3BwLm86VGVzdFJ1bm5lci5j
cHA6ZnVuY3Rpb24gVGVzdFJ1bm5lcjo6cnVuVUlTY3JpcHQoT3BhcXVlSlNDb250ZXh0IGNvbnN0
KiwgT3BhcXVlSlNTdHJpbmcqLCBPcGFxdWVKU1ZhbHVlIGNvbnN0Kik6IGVycm9yOiB1bmRlZmlu
ZWQgcmVmZXJlbmNlIHRvICdXVEY6OlN0cmluZzo6U3RyaW5nKHVuc2lnbmVkIHNob3J0IGNvbnN0
KiwgdW5zaWduZWQgaW50KScKK0NNYWtlRmlsZXMvRHVtcFJlbmRlclRyZWVKYXZhLmRpci9fXy9f
Xy9UZXN0UnVubmVyU2hhcmVkL1VJU2NyaXB0Q29udGV4dC9VSVNjcmlwdENvbnRleHQuY3BwLm86
VUlTY3JpcHRDb250ZXh0LmNwcDpmdW5jdGlvbiBXVFI6OlVJU2NyaXB0Q29udGV4dDo6dHJ5VG9D
b21wbGV0ZVVJU2NyaXB0Rm9yQ3VycmVudFBhcmVudENhbGxiYWNrKCk6IGVycm9yOiB1bmRlZmlu
ZWQgcmVmZXJlbmNlIHRvICdXVEY6OlN0cmluZzo6U3RyaW5nKHVuc2lnbmVkIHNob3J0IGNvbnN0
KiwgdW5zaWduZWQgaW50KScKKworU29tZSByZWxhdGVkIGJ1Z3MvY29tbWl0cyBhcmU6CitodHRw
czovL2dpdGh1Yi5jb20vV2ViS2l0L3dlYmtpdC9jb21taXQvMWU0NjM3N2U0NzY3NDM2MzEzMTI5
OWQ1NGM4NTU3NzM0YTk5ZmI1ZgoraHR0cHM6Ly9idWdzLndlYmtpdC5vcmcvc2hvd19idWcuY2dp
P2lkPTE5OTYyNSNjMjQKK2h0dHBzOi8vYnVncy53ZWJraXQub3JnL3Nob3dfYnVnLmNnaT9pZD0y
MDAwNzQKKworLS0tCisgLi4uL3NyYy9tYWluL25hdGl2ZS9Tb3VyY2UvY21ha2UvV2ViS2l0Q29t
cGlsZXJGbGFncy5jbWFrZSAgIHwgNSAtLS0tLQorIDEgZmlsZSBjaGFuZ2VkLCA1IGRlbGV0aW9u
cygtKQorCitkaWZmIC0tZ2l0IGEvbW9kdWxlcy93ZWIvc3JjL21haW4vbmF0aXZlL1NvdXJjZS9j
bWFrZS9XZWJLaXRDb21waWxlckZsYWdzLmNtYWtlIGIvbW9kdWxlcy93ZWIvc3JjL21haW4vbmF0
aXZlL1NvdXJjZS9jbWFrZS9XZWJLaXRDb21waWxlckZsYWdzLmNtYWtlCitpbmRleCA1YmNmMDQ3
Li40NTI2ZWU2IDEwMDY0NAorLS0tIGEvbW9kdWxlcy93ZWIvc3JjL21haW4vbmF0aXZlL1NvdXJj
ZS9jbWFrZS9XZWJLaXRDb21waWxlckZsYWdzLmNtYWtlCisrKysgYi9tb2R1bGVzL3dlYi9zcmMv
bWFpbi9uYXRpdmUvU291cmNlL2NtYWtlL1dlYktpdENvbXBpbGVyRmxhZ3MuY21ha2UKK0BAIC0x
NzYsMTEgKzE3Niw2IEBAIGlmIChOT1QgTVNWQykKKyAgICAgc3RyaW5nKFJFR0VYIE1BVENIQUxM
ICItZnNhbml0aXplPVteIF0qIiBFTkFCTEVEX0NPTVBJTEVSX1NBTklUSVpFUlMgJHtDTUFLRV9D
WFhfRkxBR1N9KQorIGVuZGlmICgpCisKKy1pZiAoVU5JWCBBTkQgTk9UIEFQUExFIEFORCBOT1Qg
RU5BQkxFRF9DT01QSUxFUl9TQU5JVElaRVJTKQorLSAgICBzZXQoQ01BS0VfU0hBUkVEX0xJTktF
Ul9GTEFHUyAiLVdsLC0tbm8tdW5kZWZpbmVkICR7Q01BS0VfU0hBUkVEX0xJTktFUl9GTEFHU30i
KQorLWVuZGlmICgpCistCistCisgIyBDT0RFX0dFTkVSQVRPUl9QUkVQUk9DRVNTT1JfV0lUSF9M
SU5FTUFSS0VSUyBvbmx5IG1hdHRlcnMgd2l0aCBHQ0MgPj0gNC43LjAuICBTaW5jZSB0aGlzCisg
IyB2ZXJzaW9uLCAtUCBkb2VzIG5vdCBvdXRwdXQgZW1wdHkgbGluZXMsIHdoaWNoIGN1cnJlbnRs
eSBicmVha3MgbWFrZV9uYW1lcy5wbCBpbgorICMgV2ViQ29yZS4gSW52ZXN0aWdhdGluZyB3aGV0
aGVyIG1ha2VfbmFtZXMucGwgc2hvdWxkIGJlIGNoYW5nZWQgaW5zdGVhZCBpcyBsZWZ0IGFzIGFu
IGV4ZXJjaXNlIHRvCistLQorMi4yNi4yCmRpZmYgLS1naXQgYS9nbnUvcGFja2FnZXMvcGF0Y2hl
cy9qYXZhLW9wZW5qZngtYnVpbGQtd2ViLWljdS5wYXRjaCBiL2dudS9wYWNrYWdlcy9wYXRjaGVz
L2phdmEtb3BlbmpmeC1idWlsZC13ZWItaWN1LnBhdGNoCm5ldyBmaWxlIG1vZGUgMTAwNjQ0Cmlu
ZGV4IDAwMDAwMDAwMDAuLjNlNWM0YTc3MGMKLS0tIC9kZXYvbnVsbAorKysgYi9nbnUvcGFja2Fn
ZXMvcGF0Y2hlcy9qYXZhLW9wZW5qZngtYnVpbGQtd2ViLWljdS5wYXRjaApAQCAtMCwwICsxLDM4
IEBACitTdWJqZWN0OiBbUEFUQ0hdIEZpeCBjb21waWxhdGVpb24gd2l0aCBJQ1UuCisKK1JlZ3Jl
c3NlZCBieSBodHRwczovL2dpdGh1Yi5jb20vdW5pY29kZS1vcmcvaWN1L2NvbW1pdC80ODBiZWMz
ZWE2NTIKKworLS0tCisgbW9kdWxlcy93ZWIvc3JjL21haW4vbmF0aXZlL1NvdXJjZS9XZWJDb3Jl
L2RvbS9Eb2N1bWVudC5jcHAgfCA2ICsrKy0tLQorIDEgZmlsZSBjaGFuZ2VkLCAzIGluc2VydGlv
bnMoKyksIDMgZGVsZXRpb25zKC0pCisKK2RpZmYgLS1naXQgYS9tb2R1bGVzL3dlYi9zcmMvbWFp
bi9uYXRpdmUvU291cmNlL1dlYkNvcmUvZG9tL0RvY3VtZW50LmNwcCBiL21vZHVsZXMvd2ViL3Ny
Yy9tYWluL25hdGl2ZS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCitpbmRleCBlYzMw
ZmI1Li40YjBmZjlkIDEwMDY0NAorLS0tIGEvbW9kdWxlcy93ZWIvc3JjL21haW4vbmF0aXZlL1Nv
dXJjZS9XZWJDb3JlL2RvbS9Eb2N1bWVudC5jcHAKKysrKyBiL21vZHVsZXMvd2ViL3NyYy9tYWlu
L25hdGl2ZS9Tb3VyY2UvV2ViQ29yZS9kb20vRG9jdW1lbnQuY3BwCitAQCAtNDcwNCwxMiArNDcw
NCwxMiBAQCBzdGF0aWMgYm9vbCBpc1ZhbGlkTmFtZU5vbkFTQ0lJKGNvbnN0IFVDaGFyKiBjaGFy
YWN0ZXJzLCB1bnNpZ25lZCBsZW5ndGgpCisgICAgIHVuc2lnbmVkIGkgPSAwOworCisgICAgIFVD
aGFyMzIgYzsKKy0gICAgVTE2X05FWFQoY2hhcmFjdGVycywgaSwgbGVuZ3RoLCBjKQorKyAgICBV
MTZfTkVYVChjaGFyYWN0ZXJzLCBpLCBsZW5ndGgsIGMpOworICAgICBpZiAoIWlzVmFsaWROYW1l
U3RhcnQoYykpCisgICAgICAgICByZXR1cm4gZmFsc2U7CisKKyAgICAgd2hpbGUgKGkgPCBsZW5n
dGgpIHsKKy0gICAgICAgIFUxNl9ORVhUKGNoYXJhY3RlcnMsIGksIGxlbmd0aCwgYykKKysgICAg
ICAgIFUxNl9ORVhUKGNoYXJhY3RlcnMsIGksIGxlbmd0aCwgYyk7CisgICAgICAgICBpZiAoIWlz
VmFsaWROYW1lUGFydChjKSkKKyAgICAgICAgICAgICByZXR1cm4gZmFsc2U7CisgICAgIH0KK0BA
IC00NzY5LDcgKzQ3NjksNyBAQCBFeGNlcHRpb25PcjxzdGQ6OnBhaXI8QXRvbWljU3RyaW5nLCBB
dG9taWNTdHJpbmc+PiBEb2N1bWVudDo6cGFyc2VRdWFsaWZpZWROYW1lKAorCisgICAgIGZvciAo
dW5zaWduZWQgaSA9IDA7IGkgPCBsZW5ndGg7ICkgeworICAgICAgICAgVUNoYXIzMiBjOworLSAg
ICAgICAgVTE2X05FWFQocXVhbGlmaWVkTmFtZSwgaSwgbGVuZ3RoLCBjKQorKyAgICAgICAgVTE2
X05FWFQocXVhbGlmaWVkTmFtZSwgaSwgbGVuZ3RoLCBjKTsKKyAgICAgICAgIGlmIChjID09ICc6
JykgeworICAgICAgICAgICAgIGlmIChzYXdDb2xvbikKKyAgICAgICAgICAgICAgICAgcmV0dXJu
IEV4Y2VwdGlvbiB7IEludmFsaWRDaGFyYWN0ZXJFcnJvciB9OworLS0KKzIuMjYuMgpkaWZmIC0t
Z2l0IGEvZ251L3BhY2thZ2VzL3BhdGNoZXMvamF2YS1vcGVuamZ4LWJ1aWxkLXdlYi14bG9jYWxl
LmgucGF0Y2ggYi9nbnUvcGFja2FnZXMvcGF0Y2hlcy9qYXZhLW9wZW5qZngtYnVpbGQtd2ViLXhs
b2NhbGUuaC5wYXRjaApuZXcgZmlsZSBtb2RlIDEwMDY0NAppbmRleCAwMDAwMDAwMDAwLi4xMzhm
MzlmOWFmCi0tLSAvZGV2L251bGwKKysrIGIvZ251L3BhY2thZ2VzL3BhdGNoZXMvamF2YS1vcGVu
amZ4LWJ1aWxkLXdlYi14bG9jYWxlLmgucGF0Y2gKQEAgLTAsMCArMSw1MiBAQAorU3ViamVjdDog
W1BBVENIXSBDaGVjayA8eGxvY2FsZS5oPiBoZWFkZXIgZmlsZQorCitGZXcgbGlicmFyaWVzIHVz
ZSBoYXJkLWNvZGVkIHhsb2NhbGVfaCBoZWFkZXIgZXZlbiB0aG91Z2ggaWYgQ01ha2UgdGFrZXMg
Y2FyZQorb2YgaXQgcHJvcGVybHkuIFJlbW92ZSBkZWZpbmVkIGhlYWRlcnMsIGFuZCByZWx5IG9u
IENNYWtlIHByZXByb2Nlc3NvcgoraW5zdGVhZC4KKworLS0tCisgLi4uL3NyYy9tYWluL25hdGl2
ZS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ4c2x0L2xpbnV4L2NvbmZpZy5oICAgIHwgMiArLQorIC4u
Li9zcmMvbWFpbi9uYXRpdmUvU291cmNlL1RoaXJkUGFydHkvbGlieHNsdC9zcmMvY29uZmlnLmgu
aW4gICB8IDIgKy0KKyBtb2R1bGVzL3dlYi9zcmMvbWFpbi9uYXRpdmUvU291cmNlL2NtYWtlL09w
dGlvbnNDb21tb24uY21ha2UgICAgfCAxICsKKyAzIGZpbGVzIGNoYW5nZWQsIDMgaW5zZXJ0aW9u
cygrKSwgMiBkZWxldGlvbnMoLSkKKworZGlmZiAtLWdpdCBhL21vZHVsZXMvd2ViL3NyYy9tYWlu
L25hdGl2ZS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ4c2x0L2xpbnV4L2NvbmZpZy5oIGIvbW9kdWxl
cy93ZWIvc3JjL21haW4vbmF0aXZlL1NvdXJjZS9UaGlyZFBhcnR5L2xpYnhzbHQvbGludXgvY29u
ZmlnLmgKK2luZGV4IGJkNDRjMTYzLi5iMTliNDVmNCAxMDA2NDQKKy0tLSBhL21vZHVsZXMvd2Vi
L3NyYy9tYWluL25hdGl2ZS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ4c2x0L2xpbnV4L2NvbmZpZy5o
CisrKysgYi9tb2R1bGVzL3dlYi9zcmMvbWFpbi9uYXRpdmUvU291cmNlL1RoaXJkUGFydHkvbGli
eHNsdC9saW51eC9jb25maWcuaAorQEAgLTE0Myw3ICsxNDMsNyBAQAorICNkZWZpbmUgSEFWRV9W
U1BSSU5URiAxCisKKyAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgPHhsb2NhbGUuaD4g
aGVhZGVyIGZpbGUuICovCistI2RlZmluZSBIQVZFX1hMT0NBTEVfSCAxCisrLyogI2RlZmluZSBI
QVZFX1hMT0NBTEVfSCAxICovCisKKyAvKiBEZWZpbmUgdG8gMSBpZiB5b3UgaGF2ZSB0aGUgYF9z
dGF0JyBmdW5jdGlvbi4gKi8KKyAvKiAjdW5kZWYgSEFWRV9fU1RBVCAqLworZGlmZiAtLWdpdCBh
L21vZHVsZXMvd2ViL3NyYy9tYWluL25hdGl2ZS9Tb3VyY2UvVGhpcmRQYXJ0eS9saWJ4c2x0L3Ny
Yy9jb25maWcuaC5pbiBiL21vZHVsZXMvd2ViL3NyYy9tYWluL25hdGl2ZS9Tb3VyY2UvVGhpcmRQ
YXJ0eS9saWJ4c2x0L3NyYy9jb25maWcuaC5pbgoraW5kZXggMDg1MzU0ZTkuLjAyMTBmY2UyIDEw
MDY0NAorLS0tIGEvbW9kdWxlcy93ZWIvc3JjL21haW4vbmF0aXZlL1NvdXJjZS9UaGlyZFBhcnR5
L2xpYnhzbHQvc3JjL2NvbmZpZy5oLmluCisrKysgYi9tb2R1bGVzL3dlYi9zcmMvbWFpbi9uYXRp
dmUvU291cmNlL1RoaXJkUGFydHkvbGlieHNsdC9zcmMvY29uZmlnLmguaW4KK0BAIC0xNDIsNyAr
MTQyLDcgQEAKKyAjdW5kZWYgSEFWRV9WU1BSSU5URgorCisgLyogRGVmaW5lIHRvIDEgaWYgeW91
IGhhdmUgdGhlIDx4bG9jYWxlLmg+IGhlYWRlciBmaWxlLiAqLworLSN1bmRlZiBIQVZFX1hMT0NB
TEVfSAorKy8qICN1bmRlZiBIQVZFX1hMT0NBTEVfSCAqLworCisgLyogRGVmaW5lIHRvIDEgaWYg
eW91IGhhdmUgdGhlIGBfc3RhdCcgZnVuY3Rpb24uICovCisgI3VuZGVmIEhBVkVfX1NUQVQKK2Rp
ZmYgLS1naXQgYS9tb2R1bGVzL3dlYi9zcmMvbWFpbi9uYXRpdmUvU291cmNlL2NtYWtlL09wdGlv
bnNDb21tb24uY21ha2UgYi9tb2R1bGVzL3dlYi9zcmMvbWFpbi9uYXRpdmUvU291cmNlL2NtYWtl
L09wdGlvbnNDb21tb24uY21ha2UKK2luZGV4IDNiYmQyYzRhLi4yYjYxOGRkNiAxMDA2NDQKKy0t
LSBhL21vZHVsZXMvd2ViL3NyYy9tYWluL25hdGl2ZS9Tb3VyY2UvY21ha2UvT3B0aW9uc0NvbW1v
bi5jbWFrZQorKysrIGIvbW9kdWxlcy93ZWIvc3JjL21haW4vbmF0aXZlL1NvdXJjZS9jbWFrZS9P
cHRpb25zQ29tbW9uLmNtYWtlCitAQCAtMTQ4LDYgKzE0OCw3IEBAIF9IQVZFX0NIRUNLX0lOQ0xV
REUoSEFWRV9TVFJJTkdTX0ggc3RyaW5ncy5oKQorIF9IQVZFX0NIRUNLX0lOQ0xVREUoSEFWRV9T
WVNfUEFSQU1fSCBzeXMvcGFyYW0uaCkKKyBfSEFWRV9DSEVDS19JTkNMVURFKEhBVkVfU1lTX1RJ
TUVfSCBzeXMvdGltZS5oKQorIF9IQVZFX0NIRUNLX0lOQ0xVREUoSEFWRV9TWVNfVElNRUJfSCBz
eXMvdGltZWIuaCkKKytfSEFWRV9DSEVDS19JTkNMVURFKEhBVkVfWExPQ0FMRV9IIHhsb2NhbGUu
aCkKKworICMgQ2hlY2sgZm9yIGZ1bmN0aW9ucworIF9IQVZFX0NIRUNLX0ZVTkNUSU9OKEhBVkVf
QUxJR05FRF9NQUxMT0MgX2FsaWduZWRfbWFsbG9jKQorLS0KKzIuMjQuMQotLSAKMi4zNC4wCgo=
--000000000000a2c70305e1d1f7a3--





Last modified: Sun, 19 Jun 2022 19:30:02 UTC

GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997 nCipher Corporation Ltd, 1994-97 Ian Jackson.