unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
From: Alexey Abramov <levenson@mmer.org>
To: 39746@debbugs.gnu.org
Subject: [bug#39746] [PATCH 7/7] gnu: java-openjfx-web: Add new variable.
Date: Sat, 22 Feb 2020 21:17:55 +0100	[thread overview]
Message-ID: <20200222201755.50425-7-levenson@mmer.org> (raw)
In-Reply-To: <20200222201755.50425-1-levenson@mmer.org>

* gnu/packages/java.scm (java-openjfx-build): Add patch to the base package.
* gnu/packages/patches/java-openjfx-build-web-Check-xlocale.h-header-file.patch: New
  file. Remove hardcoded xlocale definitions.
---
 gnu/packages/java.scm                         | 155 +++++++++++++++++-
 ...uild-web-Check-xlocale.h-header-file.patch |  52 ++++++
 2 files changed, 206 insertions(+), 1 deletion(-)
 create mode 100644 gnu/packages/patches/java-openjfx-build-web-Check-xlocale.h-header-file.patch

diff --git a/gnu/packages/java.scm b/gnu/packages/java.scm
index de7efbb29f..a9433b89a3 100644
--- a/gnu/packages/java.scm
+++ b/gnu/packages/java.scm
@@ -47,11 +47,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
@@ -71,8 +73,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)
@@ -2358,7 +2362,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"
@@ -3103,6 +3108,154 @@ 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 #: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"))
+                            ;; 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 `("-DCMAKE_SYSTEM_NAME=Linux"
+                                                            ,(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") "/share/amd64")))
+                      (for-each (lambda (file)
+                                  (install-file file lib))
+                                (find-files "." "\\.so$"))
+                      #t)))
+
+                (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)
+              ("pkg-config" ,pkg-config)))
+           (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)))
+           (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")
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..5efc9d0a73
--- /dev/null
+++ b/gnu/packages/patches/java-openjfx-build-web-Check-xlocale.h-header-file.patch
@@ -0,0 +1,52 @@
+From 95fe8463a3283f0f2c72fcf3416ebfac095688e5 Mon Sep 17 00:00:00 2001
+From: Alexey Abramov <levenson@mmer.org>
+Date: Sun, 9 Feb 2020 18:31:26 +0100
+Subject: [PATCH] Check <xlocale.h> header file
+
+---
+ .../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.24.1

  parent reply	other threads:[~2020-02-22 20:20 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-22 20:17 [bug#39742] [PATCH 1/7] gnu: java-openjfx-build: Add helpful patch Alexey Abramov
2020-02-22 20:17 ` [bug#39744] [PATCH 2/7] gnu: java-openjfx-build: Fix indentation Alexey Abramov
2020-02-22 20:17 ` [bug#39747] [PATCH 3/7] gnu: java-openjfx-graphics: Implement a complete compilation Alexey Abramov
2020-03-04  3:00   ` Leo Famulari
2020-03-09 13:08     ` levenson
2020-03-09 12:46   ` [bug#39747] [v2] " Alexey Abramov
2020-02-22 20:17 ` [bug#39745] [PATCH 4/7] gnu: java-openjfx-swing: Add new variable Alexey Abramov
2020-03-04  3:04   ` Leo Famulari
2020-03-09 22:08     ` [bug#39741] " levenson
2020-03-09 16:15   ` [bug#39745] [v2] gnu: java-openjfx-build: Fix openjfx-swing component build for JDKu8 Alexey Abramov
2020-03-09 16:36   ` [bug#39745] [v3 1/2] " Alexey Abramov
2020-03-09 16:36     ` [bug#39745] [v3 2/2] gnu: java-openjfx-swing: Add new variable Alexey Abramov
2020-03-11 10:36   ` [bug#39745] [v4 1/2] gnu: java-openjfx-build: Fix openjfx-swing component build for JDKu8 Alexey Abramov
2020-03-11 10:36     ` [bug#39745] [v4 2/2] gnu: java-openjfx-swing: Add new variable Alexey Abramov
2020-02-22 20:17 ` [bug#39741] [PATCH 5/7] gnu: java-openjfx-swt: " Alexey Abramov
2020-03-09 16:41   ` [bug#39741] [v2] " Alexey Abramov
2020-02-22 20:17 ` [bug#39743] [PATCH 6/7] gnu: java-openjfx-controls: " Alexey Abramov
2020-03-09 16:54   ` [bug#39743] [v2] " Alexey Abramov
2020-02-22 20:17 ` Alexey Abramov [this message]
2020-03-04  3:07   ` [bug#39746] [PATCH 7/7] gnu: java-openjfx-web: " Leo Famulari
2020-03-09 22:13     ` [bug#39741] " levenson
2020-03-17 22:17       ` Tobias Geerinckx-Rice via Guix-patches via
2020-03-09 21:41   ` [bug#39746] [v2 1/2] gnu: java-openjfx-build: Prepare a patch to build openjfx-web Alexey Abramov
2020-03-09 21:41     ` [bug#39746] [v2 2/2] gnu: java-openjfx-web: Add new variable Alexey Abramov
2020-03-14  6:10   ` [bug#39746] [v3 1/2] gnu: java-openjfx-build: Prepare a patch to build openjfx-web Alexey Abramov
2020-03-14  6:10     ` [bug#39746] [v3 2/2] gnu: java-openjfx-web: Add new variable Alexey Abramov
2020-03-04  2:56 ` [bug#39742] [PATCH 1/7] gnu: java-openjfx-build: Add helpful patch Leo Famulari
2020-03-05 20:42   ` Alexey Abramov
2020-03-05 19:09 ` Björn Höfling
2020-03-05 20:10   ` Alexey Abramov
2020-03-05 21:35   ` Björn Höfling
2020-03-08 19:40 ` [bug#39742] [v2] " Alexey Abramov
2020-03-15 18:19   ` bug#39742: " Leo Famulari
2020-03-17 21:12     ` [bug#39742] " Björn Höfling

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://guix.gnu.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200222201755.50425-7-levenson@mmer.org \
    --to=levenson@mmer.org \
    --cc=39746@debbugs.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).