unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#54703] [PATCH 0/3] Update webkitgtk to 2.36.0 and enable new features.
@ 2022-04-04  4:15 Maxim Cournoyer
  2022-04-04  4:17 ` [bug#54703] [PATCH 1/3] gnu: woff2: Propagate brotli Maxim Cournoyer
  2022-04-09 14:42 ` [bug#54703] [PATCH v3 1/3] gnu: woff2: Propagate brotli Maxim Cournoyer
  0 siblings, 2 replies; 14+ messages in thread
From: Maxim Cournoyer @ 2022-04-04  4:15 UTC (permalink / raw)
  To: 54703; +Cc: Maxim Cournoyer

Hello,

This started as a simple fix to woff2, but seeing it triggered a rebuild of
webkitgtk, I decided to update it at the same time.

Thank you!

Maxim Cournoyer (3):
  gnu: woff2: Propagate brotli.
  gnu: webkitgtk: Update to 2.36.0 and enable extra features.
  gnu: wpewebkit: Update to 2.36.0.

 gnu/local.mk                                  |   2 -
 gnu/packages/fontutils.scm                    |   9 +-
 .../patches/webkitgtk-bind-all-fonts.patch    |  25 --
 .../webkitgtk-canonicalize-paths.patch        |  66 ----
 gnu/packages/webkit.scm                       | 360 +++++++-----------
 5 files changed, 141 insertions(+), 321 deletions(-)
 delete mode 100644 gnu/packages/patches/webkitgtk-bind-all-fonts.patch
 delete mode 100644 gnu/packages/patches/webkitgtk-canonicalize-paths.patch

-- 
2.34.0





^ permalink raw reply	[flat|nested] 14+ messages in thread

* [bug#54703] [PATCH 1/3] gnu: woff2: Propagate brotli.
  2022-04-04  4:15 [bug#54703] [PATCH 0/3] Update webkitgtk to 2.36.0 and enable new features Maxim Cournoyer
@ 2022-04-04  4:17 ` Maxim Cournoyer
  2022-04-04  4:17   ` [bug#54703] [PATCH 2/3] gnu: webkitgtk: Update to 2.36.0 and enable extra features Maxim Cournoyer
  2022-04-04  4:17   ` [bug#54703] [PATCH 3/3] gnu: wpewebkit: Update to 2.36.0 Maxim Cournoyer
  2022-04-09 14:42 ` [bug#54703] [PATCH v3 1/3] gnu: woff2: Propagate brotli Maxim Cournoyer
  1 sibling, 2 replies; 14+ messages in thread
From: Maxim Cournoyer @ 2022-04-04  4:17 UTC (permalink / raw)
  To: 54703; +Cc: Maxim Cournoyer

* gnu/packages/fontutils.scm (woff2)[phases]: Delete trailing #t.
[inputs]: Move brotli to ...
[propagated-inputs]: ... here.
---
 gnu/packages/fontutils.scm | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm
index 04b868d31b..c8c32fd5a9 100644
--- a/gnu/packages/fontutils.scm
+++ b/gnu/packages/fontutils.scm
@@ -286,7 +286,7 @@ (define-public woff2
     (build-system cmake-build-system)
     (outputs '("out" "bin"))
     (arguments
-     `(#:tests? #f                      ; No target
+     `(#:tests? #f                      ;no test suite
        #:configure-flags
        (list
         (string-append "-DCMAKE_INSTALL_BINDIR="
@@ -305,12 +305,11 @@ (define-public woff2
            (lambda _
              (substitute* "CMakeLists.txt"
                (("NOT BUILD_SHARED_LIBS")
-                "BUILD_SHARED_LIBS"))
-             #t)))))
+                "BUILD_SHARED_LIBS")))))))
     (native-inputs
      (list pkg-config))
-    (inputs
-     (list brotli))
+    (propagated-inputs
+     (list brotli))                     ;libwoff2dec.pc requires libbrotlidec
     (synopsis "Libraries and tools for WOFF2 font format")
     (description "WOFF2 provides libraries and tools to handle the Web Open
 Font Format (WOFF).")
-- 
2.34.0





^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [bug#54703] [PATCH 2/3] gnu: webkitgtk: Update to 2.36.0 and enable extra features.
  2022-04-04  4:17 ` [bug#54703] [PATCH 1/3] gnu: woff2: Propagate brotli Maxim Cournoyer
@ 2022-04-04  4:17   ` Maxim Cournoyer
  2022-04-04  4:17   ` [bug#54703] [PATCH 3/3] gnu: wpewebkit: Update to 2.36.0 Maxim Cournoyer
  1 sibling, 0 replies; 14+ messages in thread
From: Maxim Cournoyer @ 2022-04-04  4:17 UTC (permalink / raw)
  To: 54703; +Cc: Maxim Cournoyer

* gnu/packages/webkit.scm (webkitgtk): Update to 2.36.0.
[source]: Remove the webkitgtk-bind-all-fonts.patch and
webkitgtk-canonicalize-paths.patch patches.
[arguments]: Use gexp.
[tests?]: Add a TODO comment.
[configure-flags]: Enable gamepad support,  remove nonexistent
USE_SYSTEMD option, enable accelerated 2D canvas and mini-browser.
[phases]{do-not-disable-new-dtags}: New phase.
{help-cmake-find-elogind}: Likewise.
{patch-gtk-doc-scan}: Simplify to avoid for-each.  Locate docbookx.dtd via
search-input-file.
{embed-absolute-wpebackend-reference}: Use search-input-file.
[native-inputs]: Use new style.
[inputs]: Likewise.  Add elogind and libmanette.
[description]: Adjust indentation.
(webkitgtk-with-libsoup2): Re-format comment, fixing spacing.
[configure-flags]: Use gexp.
[propagated-inputs]: Use modify-inputs to replace libsoup with
libsoup-minimal-2.
* gnu/packages/patches/webkitgtk-bind-all-fonts.patch: Delete file.
* gnu/packages/patches/webkitgtk-canonicalize-paths.patch: Likewise.
* gnu/local.mk: De-register them.
---
 gnu/local.mk                                  |   2 -
 .../patches/webkitgtk-bind-all-fonts.patch    |  25 --
 .../webkitgtk-canonicalize-paths.patch        |  66 -----
 gnu/packages/webkit.scm                       | 234 ++++++++++--------
 4 files changed, 126 insertions(+), 201 deletions(-)
 delete mode 100644 gnu/packages/patches/webkitgtk-bind-all-fonts.patch
 delete mode 100644 gnu/packages/patches/webkitgtk-canonicalize-paths.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index aac7362475..7f9c2fe1a1 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1931,9 +1931,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/vte-CVE-2012-2738-pt2.patch			\
   %D%/packages/patches/vtk-fix-freetypetools-build-failure.patch	\
   %D%/packages/patches/warsow-qfusion-fix-bool-return-type.patch	\
-  %D%/packages/patches/webkitgtk-bind-all-fonts.patch		\
   %D%/packages/patches/webkitgtk-adjust-bubblewrap-paths.patch	\
-  %D%/packages/patches/webkitgtk-canonicalize-paths.patch	\
   %D%/packages/patches/webrtc-audio-processing-big-endian.patch	\
   %D%/packages/patches/websocketpp-fix-for-cmake-3.15.patch	\
   %D%/packages/patches/wicd-bitrate-none-fix.patch		\
diff --git a/gnu/packages/patches/webkitgtk-bind-all-fonts.patch b/gnu/packages/patches/webkitgtk-bind-all-fonts.patch
deleted file mode 100644
index 27013180c4..0000000000
--- a/gnu/packages/patches/webkitgtk-bind-all-fonts.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-Upstream commit: https://github.com/WebKit/WebKit/commit/31ac354cbeecf866f9a38f7b2f8f59f7975d3f6a
-
-diff --git a/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp b/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp
-index ecc804663784..8de174be3c0e 100644
---- a/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp
-+++ b/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp
-@@ -288,6 +288,7 @@ static void bindFonts(Vector<CString>& args)
-     const char* homeDir = g_get_home_dir();
-     const char* dataDir = g_get_user_data_dir();
-     const char* cacheDir = g_get_user_cache_dir();
-+    const char* const * dataDirs = g_get_system_data_dirs();
- 
-     // Configs can include custom dirs but then we have to parse them...
-     GUniquePtr<char> fontConfig(g_build_filename(configDir, "fontconfig", nullptr));
-@@ -304,6 +305,10 @@ static void bindFonts(Vector<CString>& args)
-     bindIfExists(args, fontHomeConfigDir.get());
-     bindIfExists(args, fontData.get());
-     bindIfExists(args, fontHomeData.get());
-+    for (auto* dataDir = dataDirs; dataDir && *dataDir; dataDir++) {
-+        GUniquePtr<char> fontDataDir(g_build_filename(*dataDir, "fonts", nullptr));
-+        bindIfExists(args, fontDataDir.get());
-+    }
-     bindIfExists(args, "/var/cache/fontconfig"); // Used by Debian.
- }
- 
diff --git a/gnu/packages/patches/webkitgtk-canonicalize-paths.patch b/gnu/packages/patches/webkitgtk-canonicalize-paths.patch
deleted file mode 100644
index 741d534831..0000000000
--- a/gnu/packages/patches/webkitgtk-canonicalize-paths.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-Upstream commit: https://github.com/WebKit/WebKit/commit/6a87eb254ef57a986a1a6ce9a3a4b66928afeb65
-
-diff --git a/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp b/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp
-index ecc804663784..a2a1c9d7a4dd 100644
---- a/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp
-+++ b/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp
-@@ -27,7 +27,6 @@
- #include <seccomp.h>
- #include <sys/ioctl.h>
- #include <sys/mman.h>
--#include <unistd.h>
- #include <wtf/FileSystem.h>
- #include <wtf/UniStdExtras.h>
- #include <wtf/glib/GRefPtr.h>
-@@ -165,6 +164,15 @@ enum class BindFlags {
-     Device,
- };
- 
-+static void bindSymlinksRealPath(Vector<CString>& args, const char* path, const char* bindOption = "--ro-bind")
-+{
-+    WTF::String realPath = FileSystem::realPath(path);
-+    if (path != realPath) {
-+        CString rpath = realPath.utf8();
-+        args.appendVector(Vector<CString>({ bindOption, rpath.data(), rpath.data() }));
-+    }
-+}
-+
- static void bindIfExists(Vector<CString>& args, const char* path, BindFlags bindFlags = BindFlags::ReadOnly)
- {
-     if (!path || path[0] == '\0')
-@@ -177,7 +185,16 @@ static void bindIfExists(Vector<CString>& args, const char* path, BindFlags bind
-         bindType = "--ro-bind-try";
-     else
-         bindType = "--bind-try";
--    args.appendVector(Vector<CString>({ bindType, path, path }));
-+
-+    // Canonicalize the source path, otherwise a symbolic link could
-+    // point to a location outside of the namespace.
-+    bindSymlinksRealPath(args, path, bindType);
-+
-+    // As /etc is exposed wholesale, do not layer extraneous bind
-+    // directives on top, which could fail in the presence of symbolic
-+    // links.
-+    if (!g_str_has_prefix(path, "/etc/"))
-+        args.appendVector(Vector<CString>({ bindType, path, path }));
- }
- 
- static void bindDBusSession(Vector<CString>& args, bool allowPortals)
-@@ -410,17 +427,6 @@ static void bindV4l(Vector<CString>& args)
-     }));
- }
- 
--static void bindSymlinksRealPath(Vector<CString>& args, const char* path)
--{
--    char realPath[PATH_MAX];
--
--    if (realpath(path, realPath) && strcmp(path, realPath)) {
--        args.appendVector(Vector<CString>({
--            "--ro-bind", realPath, realPath,
--        }));
--    }
--}
--
- // Translate a libseccomp error code into an error message. libseccomp
- // mostly returns negative errno values such as -ENOMEM, but some
- // standard errno values are used for non-standard purposes where their
diff --git a/gnu/packages/webkit.scm b/gnu/packages/webkit.scm
index f79d6bd4f6..cd19404228 100644
--- a/gnu/packages/webkit.scm
+++ b/gnu/packages/webkit.scm
@@ -27,6 +27,7 @@ (define-module (gnu packages webkit)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix gexp)
   #:use-module (guix utils)
   #:use-module (guix build utils)
   #:use-module (guix build-system cmake)
@@ -41,6 +42,7 @@ (define-module (gnu packages webkit)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
+  #:use-module (gnu packages games)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages ghostscript)
@@ -239,121 +241,137 @@ (define-public wpewebkit
 (define-public webkitgtk
   (package
     (name "webkitgtk")
-    (version "2.34.6")
+    (version "2.36.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://www.webkitgtk.org/releases/"
                                   "webkitgtk-" version ".tar.xz"))
               (sha256
                (base32
-                "1xn1hhd0qaxmjf6vy6664i4mmmjsw9zgrr4w8ni3415d981zvj3b"))
-              (patches (search-patches "webkitgtk-bind-all-fonts.patch"
-                                       "webkitgtk-adjust-bubblewrap-paths.patch"
-                                       "webkitgtk-canonicalize-paths.patch"))))
+                "0kf6avqlq9f74lwzji7l3xlnng5yqarc4ykwsmfmy8q5y6hwqxxq"))
+              (patches (search-patches
+                        "webkitgtk-adjust-bubblewrap-paths.patch"))))
     (build-system cmake-build-system)
     (outputs '("out" "doc" "debug"))
     (arguments
-     `(#:tests? #f ; no tests
-       #:build-type "Release" ; turn off debugging symbols to save space
-       #:configure-flags (list
-                          "-DPORT=GTK"
-                          "-DENABLE_GTKDOC=ON" ; No doc by default
-                          ;; Requires libmanette, new dependency added in 2.32.0.
-                          ;; TODO Decide if we should enable this
-                          "-DENABLE_GAMEPAD=OFF"
-                          "-DUSE_SYSTEMD=OFF"
-                          (string-append ; uses lib64 by default
-                           "-DLIB_INSTALL_DIR="
-                           (assoc-ref %outputs "out") "/lib"))
-       #:make-flags
-       ;; Never build with unsupported -j1: https://issues.guix.gnu.org/47964#5
-       (list "-j" (number->string (max 2 (parallel-job-count))))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'configure-bubblewrap-store-directory
-           (lambda _
-             ;; This phase is a corollary to 'webkitgtk-share-store.patch' to
-             ;; avoid hard coding /gnu/store, for users with other prefixes.
-             (let ((store-directory (%store-directory)))
-               (substitute*
-                   "Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp"
-                 (("@storedir@") store-directory)))))
-         (add-after 'unpack 'patch-gtk-doc-scan
-           (lambda* (#:key inputs #:allow-other-keys)
-             (for-each (lambda (file)
-                         (substitute* file
-                           (("http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd")
-                            (string-append (assoc-ref inputs "docbook-xml")
-                                           "/xml/dtd/docbook/docbookx.dtd"))))
-                       (find-files "Source" "\\.sgml$"))))
-         (add-after 'unpack 'embed-absolute-wpebackend-reference
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let ((wpebackend-fdo (assoc-ref inputs "wpebackend-fdo")))
-               (substitute* "Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp"
-                 (("libWPEBackend-fdo-([\\.0-9]+)\\.so" all version)
-                  (string-append wpebackend-fdo "/lib/" all))))))
-         ,@(if (target-x86-64?)
-               '()
-               '((add-after 'unpack 'disable-sse2
-                   (lambda _
-                     (substitute* "Source/cmake/WebKitCompilerFlags.cmake"
-                       (("WTF_CPU_X86 AND NOT CMAKE_CROSSCOMPILING")
-                        "FALSE"))))))
-         (add-after 'install 'move-doc-files
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out"))
-                   (doc (assoc-ref outputs "doc")))
-               (mkdir-p (string-append doc "/share"))
-               (rename-file (string-append out "/share/gtk-doc")
-                            (string-append doc "/share/gtk-doc"))))))))
+     (list
+      #:tests? #f                    ;TODO: run test suite
+      #:build-type "Release"         ;turn off debugging symbols to save space
+      #:configure-flags #~(list
+                           "-DPORT=GTK"
+                           "-DENABLE_GTKDOC=ON" ;disabled by default
+                           "-DENABLE_ACCELERATED_2D_CANVAS=ON" ;disabled by default
+                           "-DENABLE_MINIBROWSER=ON" ;disabled by default
+                           ;; The default lib installation prefix is lib64.
+                           (string-append "-DLIB_INSTALL_DIR=" #$output "/lib"))
+      ;; The build may fail with -j1 (see:
+      ;; https://bugs.webkit.org/show_bug.cgi?id=195251).
+      #:make-flags #~(list "-j" (number->string (max 2 (parallel-job-count))))
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'configure-bubblewrap-store-directory
+            (lambda _
+              ;; This phase is a corollary to 'webkitgtk-share-store.patch' to
+              ;; avoid hard coding /gnu/store, for users with other prefixes.
+              (let ((store-directory (%store-directory)))
+                (substitute*
+                    "Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp"
+                  (("@storedir@") store-directory)))))
+          (add-after 'unpack 'do-not-disable-new-dtags
+            ;; Ensure the linker uses new dynamic tags as this is what Guix
+            ;; uses and validates in the validate-runpath phase.
+            (lambda _
+              (substitute* "Source/cmake/OptionsCommon.cmake"
+                (("if \\(LD_SUPPORTS_DISABLE_NEW_DTAGS\\)")
+                 "if (FALSE)"))))
+          (add-after 'unpack 'help-cmake-find-elogind
+            (lambda _
+              (substitute* "Source/cmake/FindJournald.cmake"
+                ;; Otherwise, CMake would throw an error because it relies on
+                ;; the pkg-config search to locate headers.
+                (("pkg_check_modules\\(PC_SYSTEMD QUIET libsystemd")
+                 "pkg_check_modules(PC_SYSTEMD QUIET libelogind"))))
+          (add-after 'unpack 'patch-gtk-doc-scan
+            (lambda* (#:key native-inputs inputs #:allow-other-keys)
+              (substitute* (find-files "Source" "\\.sgml$")
+                (("http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd")
+                 (search-input-file (or native-inputs inputs)
+                                    "xml/dtd/docbook/docbookx.dtd")))))
+          (add-after 'unpack 'embed-absolute-wpebackend-reference
+            (lambda* (#:key inputs #:allow-other-keys)
+              (let ((wpebackend-fdo (assoc-ref inputs "wpebackend-fdo")))
+                (substitute* "Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp"
+                  (("libWPEBackend-fdo-[\\.0-9]+\\.so" all)
+                   (search-input-file inputs (string-append "lib/" all)))))))
+          #$@(if (target-x86-64?)
+                 '()
+                 '((add-after 'unpack 'disable-sse2
+                     (lambda _
+                       (substitute* "Source/cmake/WebKitCompilerFlags.cmake"
+                         (("WTF_CPU_X86 AND NOT CMAKE_CROSSCOMPILING")
+                          "FALSE"))))))
+          (add-after 'install 'move-doc-files
+            (lambda* (#:key outputs #:allow-other-keys)
+              (let ((doc (assoc-ref outputs "doc")))
+                (mkdir-p (string-append doc "/share"))
+                (rename-file (string-append #$output "/share/gtk-doc")
+                             (string-append doc "/share/gtk-doc")))))
+          (replace 'build
+            (lambda* (#:key make-flags parallel-build? #:allow-other-keys)
+              (apply invoke "make"
+                     `(,@(if parallel-build?
+                             `("-j" ,(number->string (parallel-job-count)))
+                             '())
+                       ,@make-flags)))))))
     (native-inputs
-     `(("bison" ,bison)
-       ("gettext" ,gettext-minimal)
-       ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
-       ("gobject-introspection" ,gobject-introspection)
-       ("gperf" ,gperf)
-       ("perl" ,perl)
-       ("pkg-config" ,pkg-config)
-       ("python" ,python-wrapper)
-       ("gtk-doc" ,gtk-doc/stable) ; For documentation generation
-       ("docbook-xml" ,docbook-xml) ; For documentation generation
-       ("ruby" ,ruby)))
+     (list bison
+           gettext-minimal
+           `(,glib "bin")               ;for glib-mkenums, etc.
+           gobject-introspection
+           gperf
+           perl
+           pkg-config
+           python-wrapper
+           gtk-doc/stable               ;for documentation generation
+           docbook-xml                  ;for documentation generation
+           ruby))
     (propagated-inputs
      (list gtk+ libsoup))
     (inputs
-     `(("at-spi2-core" ,at-spi2-core)
-       ("bubblewrap" ,bubblewrap)
-       ("enchant" ,enchant)
-       ("geoclue" ,geoclue)
-       ("gst-plugins-base" ,gst-plugins-base)
-       ("gtk+-2" ,gtk+-2)
-       ("harfbuzz" ,harfbuzz)
-       ("hyphen" ,hyphen)
-       ("icu4c" ,icu4c)
-       ("lcms" ,lcms)
-       ("libgcrypt" ,libgcrypt)
-       ("libjpeg" ,libjpeg-turbo)
-       ("libnotify" ,libnotify)
-       ("libpng" ,libpng)
-       ("libseccomp" ,libseccomp)
-       ("libsecret" ,libsecret)
-       ("libtasn1" ,libtasn1)
-       ("libwebp" ,libwebp)
-       ("libwpe" ,libwpe)
-       ("libxcomposite" ,libxcomposite)
-       ("libxml2" ,libxml2)
-       ("libxslt" ,libxslt)
-       ("libxt" ,libxt)
-       ("mesa" ,mesa)
-       ("openjpeg" ,openjpeg)
-       ("sqlite" ,sqlite)
-       ("woff2" ,woff2)
-       ("wpebackend-fdo" ,wpebackend-fdo)
-       ("xdg-dbus-proxy" ,xdg-dbus-proxy)))
+     (list at-spi2-core
+           bubblewrap
+           elogind
+           enchant
+           geoclue
+           gst-plugins-base
+           gtk+-2
+           harfbuzz
+           hyphen
+           icu4c
+           lcms
+           libgcrypt
+           libjpeg-turbo
+           libmanette
+           libnotify
+           libpng
+           libseccomp
+           libsecret
+           libtasn1
+           libwebp
+           libwpe
+           libxcomposite
+           libxml2
+           libxslt
+           libxt
+           mesa
+           openjpeg
+           sqlite
+           woff2
+           wpebackend-fdo
+           xdg-dbus-proxy))
     (home-page "https://www.webkitgtk.org/")
     (synopsis "Web content engine for GTK+")
-    (description
-     "WebKitGTK+ is a full-featured port of the WebKit rendering engine,
+    (description "WebKitGTK+ is a full-featured port of the WebKit rendering engine,
 suitable for projects requiring any kind of web integration, from hybrid
 HTML/CSS applications to full-fledged web browsers.  WebKitGTK+ video playing
 capabilities can be extended through the use of GStreamer plugins (not
@@ -366,17 +384,17 @@ (define-public webkitgtk
                    license:bsd-2
                    license:bsd-3))))
 
-;;; Required by gnome-online-accounts; as webkitgtk 2.34 propagates libsoup 3,
-;;; which causes the build to fail.
-;;; Also required by e.g. emacs-next-pgtk,  emacs-xwidgets, and some other
-;;; Gnome packages for webkit2gtk-4.0. See also the upstream tracker for
-;;; libsoup 3: https://gitlab.gnome.org/GNOME/libsoup/-/issues/218
+;;; Required by gnome-online-accounts as webkitgtk propagates libsoup 3, which
+;;; causes the build to fail.  Also required by e.g. emacs-next-pgtk,
+;;; emacs-xwidgets, and some other GNOME packages for webkit2gtk-4.0.  See
+;;; also the upstream tracker for libsoup 3:
+;;; https://gitlab.gnome.org/GNOME/libsoup/-/issues/218
 (define-public webkitgtk-with-libsoup2
   (package/inherit webkitgtk
     (name "webkitgtk-with-libsoup2")
     (arguments (substitute-keyword-arguments (package-arguments webkitgtk)
                  ((#:configure-flags flags)
-                  `(cons "-DUSE_SOUP2=ON" ,flags))))
+                  #~(cons "-DUSE_SOUP2=ON" #$flags))))
     (propagated-inputs
-     (alist-replace "libsoup" (list libsoup-minimal-2)
-                    (package-propagated-inputs webkitgtk)))))
+     (modify-inputs (package-propagated-inputs webkitgtk)
+       (replace "libsoup" libsoup-minimal-2)))))
-- 
2.34.0





^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [bug#54703] [PATCH 3/3] gnu: wpewebkit: Update to 2.36.0.
  2022-04-04  4:17 ` [bug#54703] [PATCH 1/3] gnu: woff2: Propagate brotli Maxim Cournoyer
  2022-04-04  4:17   ` [bug#54703] [PATCH 2/3] gnu: webkitgtk: Update to 2.36.0 and enable extra features Maxim Cournoyer
@ 2022-04-04  4:17   ` Maxim Cournoyer
  2022-04-04  6:14     ` Liliana Marie Prikler
  1 sibling, 1 reply; 14+ messages in thread
From: Maxim Cournoyer @ 2022-04-04  4:17 UTC (permalink / raw)
  To: 54703; +Cc: Maxim Cournoyer

* gnu/packages/webkit.scm (wpewebkit): Update to 2.36.0, rewriting package to
inherit from webkitgtk.
---
 gnu/packages/webkit.scm | 126 ++++------------------------------------
 1 file changed, 11 insertions(+), 115 deletions(-)

diff --git a/gnu/packages/webkit.scm b/gnu/packages/webkit.scm
index cd19404228..bc3ae388f7 100644
--- a/gnu/packages/webkit.scm
+++ b/gnu/packages/webkit.scm
@@ -123,121 +123,6 @@ (define-public wpebackend-fdo
 engine that uses Wayland for graphics output.")
     (license license:bsd-2)))
 
-(define-public wpewebkit
-  (package
-    (name "wpewebkit")
-    (version "2.34.3")
-    (source
-     (origin
-       (method url-fetch)
-       (uri
-        (string-append "https://wpewebkit.org/releases/"
-                       name "-" version ".tar.xz"))
-       (sha256
-        (base32 "1z20bza01ld4jvi0qx8xsl5y4czaniwpi8hxdjyirj1mrszy8pf3"))))
-    (build-system cmake-build-system)
-    (outputs '("out" "doc"))
-    (arguments
-     `(#:tests? #f                      ; XXX: To be enabled
-       #:configure-flags
-       (list
-        "-DPORT=WPE"
-        ;; XXX: To be enabled.
-        ;; "-DENABLE_ACCELERATED_2D_CANVAS=ON"
-        "-DUSE_SYSTEMD=OFF"
-        "-DENABLE_ENCRYPTED_MEDIA=OFF"
-        "-DENABLE_GTKDOC=ON"
-        "-DUSE_GSTREAMER_GL=OFF")
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'setenv
-           (lambda _
-             (setenv "HOME" "/tmp")
-             #t))
-         (add-after 'unpack 'patch-docbook-xml
-           (lambda* (#:key inputs #:allow-other-keys)
-             (for-each
-              (lambda (file)
-                (substitute* file
-                  (("http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd")
-                   (string-append (assoc-ref inputs "docbook-xml")
-                                  "/xml/dtd/docbook/docbookx.dtd"))))
-              (find-files "Source" "\\.sgml$"))
-             #t))
-         (add-after 'unpack 'patch-cmake
-           (lambda _
-             (substitute* "Source/PlatformWPE.cmake"
-               (("(Documentation/wpe(-webextensions)?-)\\$\\{WPE_API_VERSION\\}"
-                 all prefix)
-                (string-append prefix "${WPE_API_DOC_VERSION}"))
-               (("(html/wpe(-webextensions)?-)\\$\\{WPE_API_VERSION\\}"
-                 all prefix)
-                (string-append prefix "${WPE_API_DOC_VERSION}")))))
-         (add-after 'install 'move-doc-files
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (doc (assoc-ref outputs "doc")))
-               (mkdir-p (string-append doc "/share"))
-               (rename-file
-                (string-append out "/share/gtk-doc")
-                (string-append doc "/share/gtk-doc"))
-               #t))))))
-    (native-inputs
-     `(("docbook-xml" ,docbook-xml-4.1.2)
-       ("docbook-xsl" ,docbook-xsl)
-       ("glib:bin" ,glib "bin")
-       ("gobject-introspection" ,gobject-introspection)
-       ("gtk-doc" ,gtk-doc/stable)
-       ("perl" ,perl)
-       ("pkg-config" ,pkg-config)
-       ("python" ,python-wrapper)
-       ("python2" ,python-2.7)
-       ("ruby" ,ruby)))
-    (inputs
-     `(("atk" ,atk)
-       ("atk-bridge" ,at-spi2-atk)
-       ("bubblewrap" ,bubblewrap)
-       ("cairo" ,cairo)
-       ("fontconfig" ,fontconfig)
-       ("freetype" ,freetype)
-       ("gperf" ,gperf)
-       ("gstreamer" ,gstreamer)
-       ("gst-plugins-base" ,gst-plugins-base)
-       ("harfbuzz" ,harfbuzz)
-       ("icu" ,icu4c)
-       ("lcms" ,lcms)
-       ("libepoxy" ,libepoxy)
-       ("libgcrypt" ,libgcrypt)
-       ("libjpeg" ,libjpeg-turbo)
-       ("libpng" ,libpng)
-       ("libseccomp" ,libseccomp)
-       ("libtasn1" ,libtasn1)
-       ("libxml2" ,libxml2)
-       ("libxslt" ,libxslt)
-       ("mesa" ,mesa)
-       ("openjpeg" ,openjpeg)
-       ("sqlite" ,sqlite)
-       ("webp" ,libwebp)
-       ("woff2" ,woff2)
-       ("xdg-dbus-proxy" ,xdg-dbus-proxy)
-       ("zlib" ,zlib)))
-    (propagated-inputs
-     `(("glib" ,glib)
-       ("libsoup" ,libsoup)
-       ("wpe" ,libwpe)))
-    (synopsis "WebKit port optimized for embedded devices")
-    (description "WPE WebKit allows embedders to create simple and performant
-systems based on Web platform technologies.  It is designed with hardware
-acceleration in mind, leveraging common 3D graphics APIs for best performance.")
-    (home-page "https://wpewebkit.org/")
-    (license
-     (list
-      ;; Rendering and JavaScript Engines.
-      license:lgpl2.1+
-      ;; Others
-      license:bsd-2))
-    (properties '((cpe-name . "wpe_webkit")))))
-
 (define-public webkitgtk
   (package
     (name "webkitgtk")
@@ -398,3 +283,14 @@ (define-public webkitgtk-with-libsoup2
     (propagated-inputs
      (modify-inputs (package-propagated-inputs webkitgtk)
        (replace "libsoup" libsoup-minimal-2)))))
+
+(define-public wpewebkit
+  (package
+    (inherit webkitgtk)
+    (name "wpewebkit")
+    (synopsis "WebKit port optimized for embedded devices")
+    (description "WPE WebKit allows embedders to create simple and performant
+systems based on Web platform technologies.  It is designed with hardware
+acceleration in mind, leveraging common 3D graphics APIs for best performance.")
+    (home-page "https://wpewebkit.org/")
+    (properties '((cpe-name . "wpe_webkit")))))
-- 
2.34.0





^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [bug#54703] [PATCH 3/3] gnu: wpewebkit: Update to 2.36.0.
  2022-04-04  4:17   ` [bug#54703] [PATCH 3/3] gnu: wpewebkit: Update to 2.36.0 Maxim Cournoyer
@ 2022-04-04  6:14     ` Liliana Marie Prikler
  2022-04-05  0:26       ` Maxim Cournoyer
                         ` (3 more replies)
  0 siblings, 4 replies; 14+ messages in thread
From: Liliana Marie Prikler @ 2022-04-04  6:14 UTC (permalink / raw)
  To: Maxim Cournoyer, 54703

Am Montag, dem 04.04.2022 um 00:17 -0400 schrieb Maxim Cournoyer:
> * gnu/packages/webkit.scm (wpewebkit): Update to 2.36.0, rewriting
> package to
> inherit from webkitgtk.
> ---
>  gnu/packages/webkit.scm | 126 ++++----------------------------------
> --
>  1 file changed, 11 insertions(+), 115 deletions(-)
> 
> diff --git a/gnu/packages/webkit.scm b/gnu/packages/webkit.scm
> index cd19404228..bc3ae388f7 100644
> --- a/gnu/packages/webkit.scm
> +++ b/gnu/packages/webkit.scm
> @@ -123,121 +123,6 @@ (define-public wpebackend-fdo
>  engine that uses Wayland for graphics output.")
>      (license license:bsd-2)))
>  
> -(define-public wpewebkit
> -  (package
> -    (name "wpewebkit")
> -    (version "2.34.3")
> -    (source
> -     (origin
> -       (method url-fetch)
> -       (uri
> -        (string-append "https://wpewebkit.org/releases/"
> -                       name "-" version ".tar.xz"))
> -       (sha256
> -        (base32
> "1z20bza01ld4jvi0qx8xsl5y4czaniwpi8hxdjyirj1mrszy8pf3"))))
> -    (build-system cmake-build-system)
> -    (outputs '("out" "doc"))
> -    (arguments
> -     `(#:tests? #f                      ; XXX: To be enabled
> -       #:configure-flags
> -       (list
> -        "-DPORT=WPE"
> -        ;; XXX: To be enabled.
> -        ;; "-DENABLE_ACCELERATED_2D_CANVAS=ON"
> -        "-DUSE_SYSTEMD=OFF"
> -        "-DENABLE_ENCRYPTED_MEDIA=OFF"
> -        "-DENABLE_GTKDOC=ON"
> -        "-DUSE_GSTREAMER_GL=OFF")
> -       #:phases
> -       (modify-phases %standard-phases
> -         (add-after 'unpack 'setenv
> -           (lambda _
> -             (setenv "HOME" "/tmp")
> -             #t))
> -         (add-after 'unpack 'patch-docbook-xml
> -           (lambda* (#:key inputs #:allow-other-keys)
> -             (for-each
> -              (lambda (file)
> -                (substitute* file
> -                 
> (("http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd")
> -                   (string-append (assoc-ref inputs "docbook-xml")
> -                                 
> "/xml/dtd/docbook/docbookx.dtd"))))
> -              (find-files "Source" "\\.sgml$"))
> -             #t))
> -         (add-after 'unpack 'patch-cmake
> -           (lambda _
> -             (substitute* "Source/PlatformWPE.cmake"
> -               (("(Documentation/wpe(-webextensions)?-
> )\\$\\{WPE_API_VERSION\\}"
> -                 all prefix)
> -                (string-append prefix "${WPE_API_DOC_VERSION}"))
> -               (("(html/wpe(-webextensions)?-
> )\\$\\{WPE_API_VERSION\\}"
> -                 all prefix)
> -                (string-append prefix "${WPE_API_DOC_VERSION}")))))
> -         (add-after 'install 'move-doc-files
> -           (lambda* (#:key outputs #:allow-other-keys)
> -             (let* ((out (assoc-ref outputs "out"))
> -                    (doc (assoc-ref outputs "doc")))
> -               (mkdir-p (string-append doc "/share"))
> -               (rename-file
> -                (string-append out "/share/gtk-doc")
> -                (string-append doc "/share/gtk-doc"))
> -               #t))))))
> -    (native-inputs
> -     `(("docbook-xml" ,docbook-xml-4.1.2)
> -       ("docbook-xsl" ,docbook-xsl)
> -       ("glib:bin" ,glib "bin")
> -       ("gobject-introspection" ,gobject-introspection)
> -       ("gtk-doc" ,gtk-doc/stable)
> -       ("perl" ,perl)
> -       ("pkg-config" ,pkg-config)
> -       ("python" ,python-wrapper)
> -       ("python2" ,python-2.7)
> -       ("ruby" ,ruby)))
> -    (inputs
> -     `(("atk" ,atk)
> -       ("atk-bridge" ,at-spi2-atk)
> -       ("bubblewrap" ,bubblewrap)
> -       ("cairo" ,cairo)
> -       ("fontconfig" ,fontconfig)
> -       ("freetype" ,freetype)
> -       ("gperf" ,gperf)
> -       ("gstreamer" ,gstreamer)
> -       ("gst-plugins-base" ,gst-plugins-base)
> -       ("harfbuzz" ,harfbuzz)
> -       ("icu" ,icu4c)
> -       ("lcms" ,lcms)
> -       ("libepoxy" ,libepoxy)
> -       ("libgcrypt" ,libgcrypt)
> -       ("libjpeg" ,libjpeg-turbo)
> -       ("libpng" ,libpng)
> -       ("libseccomp" ,libseccomp)
> -       ("libtasn1" ,libtasn1)
> -       ("libxml2" ,libxml2)
> -       ("libxslt" ,libxslt)
> -       ("mesa" ,mesa)
> -       ("openjpeg" ,openjpeg)
> -       ("sqlite" ,sqlite)
> -       ("webp" ,libwebp)
> -       ("woff2" ,woff2)
> -       ("xdg-dbus-proxy" ,xdg-dbus-proxy)
> -       ("zlib" ,zlib)))
> -    (propagated-inputs
> -     `(("glib" ,glib)
> -       ("libsoup" ,libsoup)
> -       ("wpe" ,libwpe)))
> -    (synopsis "WebKit port optimized for embedded devices")
> -    (description "WPE WebKit allows embedders to create simple and
> performant
> -systems based on Web platform technologies.  It is designed with
> hardware
> -acceleration in mind, leveraging common 3D graphics APIs for best
> performance.")
> -    (home-page "https://wpewebkit.org/")
> -    (license
> -     (list
> -      ;; Rendering and JavaScript Engines.
> -      license:lgpl2.1+
> -      ;; Others
> -      license:bsd-2))
> -    (properties '((cpe-name . "wpe_webkit")))))
> -
>  (define-public webkitgtk
>    (package
>      (name "webkitgtk")
> @@ -398,3 +283,14 @@ (define-public webkitgtk-with-libsoup2
>      (propagated-inputs
>       (modify-inputs (package-propagated-inputs webkitgtk)
>         (replace "libsoup" libsoup-minimal-2)))))
> +
> +(define-public wpewebkit
> +  (package
> +    (inherit webkitgtk)
> +    (name "wpewebkit")
> +    (synopsis "WebKit port optimized for embedded devices")
> +    (description "WPE WebKit allows embedders to create simple and
> performant
> +systems based on Web platform technologies.  It is designed with
> hardware
> +acceleration in mind, leveraging common 3D graphics APIs for best
> performance.")
> +    (home-page "https://wpewebkit.org/")
> +    (properties '((cpe-name . "wpe_webkit")))))
You're not packaging WPEWebkit here, you are packaging WebkitGTK and
labelling it WPEWebkit.




^ permalink raw reply	[flat|nested] 14+ messages in thread

* [bug#54703] [PATCH 3/3] gnu: wpewebkit: Update to 2.36.0.
  2022-04-04  6:14     ` Liliana Marie Prikler
@ 2022-04-05  0:26       ` Maxim Cournoyer
  2022-04-05  0:27       ` [bug#54703] [PATCH v2 1/3] gnu: woff2: Propagate brotli Maxim Cournoyer
                         ` (2 subsequent siblings)
  3 siblings, 0 replies; 14+ messages in thread
From: Maxim Cournoyer @ 2022-04-05  0:26 UTC (permalink / raw)
  To: Liliana Marie Prikler; +Cc: 54703

Hello,

Liliana Marie Prikler <liliana.prikler@ist.tugraz.at> writes:

> Am Montag, dem 04.04.2022 um 00:17 -0400 schrieb Maxim Cournoyer:
>> * gnu/packages/webkit.scm (wpewebkit): Update to 2.36.0, rewriting
>> package to
>> inherit from webkitgtk.

[...]

>> +(define-public wpewebkit
>> +  (package
>> +    (inherit webkitgtk)
>> +    (name "wpewebkit")
>> +    (synopsis "WebKit port optimized for embedded devices")
>> +    (description "WPE WebKit allows embedders to create simple and
>> performant
>> +systems based on Web platform technologies.  It is designed with
>> hardware
>> +acceleration in mind, leveraging common 3D graphics APIs for best
>> performance.")
>> +    (home-page "https://wpewebkit.org/")
>> +    (properties '((cpe-name . "wpe_webkit")))))

> You're not packaging WPEWebkit here, you are packaging WebkitGTK and
> labelling it WPEWebkit.

Hmm, indeed :-) Thanks for catching that.  A v2 will follow.

Thank you!

Maxim




^ permalink raw reply	[flat|nested] 14+ messages in thread

* [bug#54703] [PATCH v2 1/3] gnu: woff2: Propagate brotli.
  2022-04-04  6:14     ` Liliana Marie Prikler
  2022-04-05  0:26       ` Maxim Cournoyer
@ 2022-04-05  0:27       ` Maxim Cournoyer
  2022-04-05  0:27       ` [bug#54703] [PATCH v2 2/3] gnu: webkitgtk: Update to 2.36.0 and enable extra features Maxim Cournoyer
  2022-04-05  0:27       ` [bug#54703] [PATCH v2 3/3] gnu: wpewebkit: Update to 2.36.0 Maxim Cournoyer
  3 siblings, 0 replies; 14+ messages in thread
From: Maxim Cournoyer @ 2022-04-05  0:27 UTC (permalink / raw)
  To: 54703; +Cc: liliana.prikler, Maxim Cournoyer

* gnu/packages/fontutils.scm (woff2)[phases]: Delete trailing #t.
[inputs]: Move brotli to ...
[propagated-inputs]: ... here.
---
 gnu/packages/fontutils.scm | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm
index 04b868d31b..c8c32fd5a9 100644
--- a/gnu/packages/fontutils.scm
+++ b/gnu/packages/fontutils.scm
@@ -286,7 +286,7 @@ (define-public woff2
     (build-system cmake-build-system)
     (outputs '("out" "bin"))
     (arguments
-     `(#:tests? #f                      ; No target
+     `(#:tests? #f                      ;no test suite
        #:configure-flags
        (list
         (string-append "-DCMAKE_INSTALL_BINDIR="
@@ -305,12 +305,11 @@ (define-public woff2
            (lambda _
              (substitute* "CMakeLists.txt"
                (("NOT BUILD_SHARED_LIBS")
-                "BUILD_SHARED_LIBS"))
-             #t)))))
+                "BUILD_SHARED_LIBS")))))))
     (native-inputs
      (list pkg-config))
-    (inputs
-     (list brotli))
+    (propagated-inputs
+     (list brotli))                     ;libwoff2dec.pc requires libbrotlidec
     (synopsis "Libraries and tools for WOFF2 font format")
     (description "WOFF2 provides libraries and tools to handle the Web Open
 Font Format (WOFF).")
-- 
2.34.0





^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [bug#54703] [PATCH v2 2/3] gnu: webkitgtk: Update to 2.36.0 and enable extra features.
  2022-04-04  6:14     ` Liliana Marie Prikler
  2022-04-05  0:26       ` Maxim Cournoyer
  2022-04-05  0:27       ` [bug#54703] [PATCH v2 1/3] gnu: woff2: Propagate brotli Maxim Cournoyer
@ 2022-04-05  0:27       ` Maxim Cournoyer
  2022-04-05  5:59         ` Liliana Marie Prikler
  2022-04-05  0:27       ` [bug#54703] [PATCH v2 3/3] gnu: wpewebkit: Update to 2.36.0 Maxim Cournoyer
  3 siblings, 1 reply; 14+ messages in thread
From: Maxim Cournoyer @ 2022-04-05  0:27 UTC (permalink / raw)
  To: 54703; +Cc: liliana.prikler, Maxim Cournoyer

* gnu/packages/webkit.scm (webkitgtk): Update to 2.36.0.
[source]: Remove the webkitgtk-bind-all-fonts.patch and
webkitgtk-canonicalize-paths.patch patches.
[arguments]: Use gexp.
[tests?]: Update comment.
[build-type]: Add explanatory comment.
[configure-flags]: Enable gamepad support,  remove nonexistent
USE_SYSTEMD option, enable accelerated 2D canvas and mini-browser.
[phases]{do-not-disable-new-dtags}: New phase.
{help-cmake-find-elogind}: Likewise.
{patch-gtk-doc-scan}: Simplify to avoid for-each.  Locate docbookx.dtd via
search-input-file.
{embed-absolute-wpebackend-reference}: Use search-input-file.
[native-inputs]: Use new style.
[inputs]: Likewise.  Add elogind and libmanette.
[description]: Adjust indentation.
(webkitgtk-with-libsoup2): Re-format comment, fixing spacing.
[configure-flags]: Use gexp.
[propagated-inputs]: Use modify-inputs to replace libsoup with
libsoup-minimal-2.
* gnu/packages/patches/webkitgtk-bind-all-fonts.patch: Delete file.
* gnu/packages/patches/webkitgtk-canonicalize-paths.patch: Likewise.
* gnu/local.mk: De-register them.
---
 gnu/local.mk                                  |   2 -
 .../patches/webkitgtk-bind-all-fonts.patch    |  25 --
 .../webkitgtk-canonicalize-paths.patch        |  66 -----
 gnu/packages/webkit.scm                       | 232 ++++++++++--------
 4 files changed, 124 insertions(+), 201 deletions(-)
 delete mode 100644 gnu/packages/patches/webkitgtk-bind-all-fonts.patch
 delete mode 100644 gnu/packages/patches/webkitgtk-canonicalize-paths.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index aac7362475..7f9c2fe1a1 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1931,9 +1931,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/vte-CVE-2012-2738-pt2.patch			\
   %D%/packages/patches/vtk-fix-freetypetools-build-failure.patch	\
   %D%/packages/patches/warsow-qfusion-fix-bool-return-type.patch	\
-  %D%/packages/patches/webkitgtk-bind-all-fonts.patch		\
   %D%/packages/patches/webkitgtk-adjust-bubblewrap-paths.patch	\
-  %D%/packages/patches/webkitgtk-canonicalize-paths.patch	\
   %D%/packages/patches/webrtc-audio-processing-big-endian.patch	\
   %D%/packages/patches/websocketpp-fix-for-cmake-3.15.patch	\
   %D%/packages/patches/wicd-bitrate-none-fix.patch		\
diff --git a/gnu/packages/patches/webkitgtk-bind-all-fonts.patch b/gnu/packages/patches/webkitgtk-bind-all-fonts.patch
deleted file mode 100644
index 27013180c4..0000000000
--- a/gnu/packages/patches/webkitgtk-bind-all-fonts.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-Upstream commit: https://github.com/WebKit/WebKit/commit/31ac354cbeecf866f9a38f7b2f8f59f7975d3f6a
-
-diff --git a/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp b/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp
-index ecc804663784..8de174be3c0e 100644
---- a/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp
-+++ b/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp
-@@ -288,6 +288,7 @@ static void bindFonts(Vector<CString>& args)
-     const char* homeDir = g_get_home_dir();
-     const char* dataDir = g_get_user_data_dir();
-     const char* cacheDir = g_get_user_cache_dir();
-+    const char* const * dataDirs = g_get_system_data_dirs();
- 
-     // Configs can include custom dirs but then we have to parse them...
-     GUniquePtr<char> fontConfig(g_build_filename(configDir, "fontconfig", nullptr));
-@@ -304,6 +305,10 @@ static void bindFonts(Vector<CString>& args)
-     bindIfExists(args, fontHomeConfigDir.get());
-     bindIfExists(args, fontData.get());
-     bindIfExists(args, fontHomeData.get());
-+    for (auto* dataDir = dataDirs; dataDir && *dataDir; dataDir++) {
-+        GUniquePtr<char> fontDataDir(g_build_filename(*dataDir, "fonts", nullptr));
-+        bindIfExists(args, fontDataDir.get());
-+    }
-     bindIfExists(args, "/var/cache/fontconfig"); // Used by Debian.
- }
- 
diff --git a/gnu/packages/patches/webkitgtk-canonicalize-paths.patch b/gnu/packages/patches/webkitgtk-canonicalize-paths.patch
deleted file mode 100644
index 741d534831..0000000000
--- a/gnu/packages/patches/webkitgtk-canonicalize-paths.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-Upstream commit: https://github.com/WebKit/WebKit/commit/6a87eb254ef57a986a1a6ce9a3a4b66928afeb65
-
-diff --git a/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp b/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp
-index ecc804663784..a2a1c9d7a4dd 100644
---- a/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp
-+++ b/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp
-@@ -27,7 +27,6 @@
- #include <seccomp.h>
- #include <sys/ioctl.h>
- #include <sys/mman.h>
--#include <unistd.h>
- #include <wtf/FileSystem.h>
- #include <wtf/UniStdExtras.h>
- #include <wtf/glib/GRefPtr.h>
-@@ -165,6 +164,15 @@ enum class BindFlags {
-     Device,
- };
- 
-+static void bindSymlinksRealPath(Vector<CString>& args, const char* path, const char* bindOption = "--ro-bind")
-+{
-+    WTF::String realPath = FileSystem::realPath(path);
-+    if (path != realPath) {
-+        CString rpath = realPath.utf8();
-+        args.appendVector(Vector<CString>({ bindOption, rpath.data(), rpath.data() }));
-+    }
-+}
-+
- static void bindIfExists(Vector<CString>& args, const char* path, BindFlags bindFlags = BindFlags::ReadOnly)
- {
-     if (!path || path[0] == '\0')
-@@ -177,7 +185,16 @@ static void bindIfExists(Vector<CString>& args, const char* path, BindFlags bind
-         bindType = "--ro-bind-try";
-     else
-         bindType = "--bind-try";
--    args.appendVector(Vector<CString>({ bindType, path, path }));
-+
-+    // Canonicalize the source path, otherwise a symbolic link could
-+    // point to a location outside of the namespace.
-+    bindSymlinksRealPath(args, path, bindType);
-+
-+    // As /etc is exposed wholesale, do not layer extraneous bind
-+    // directives on top, which could fail in the presence of symbolic
-+    // links.
-+    if (!g_str_has_prefix(path, "/etc/"))
-+        args.appendVector(Vector<CString>({ bindType, path, path }));
- }
- 
- static void bindDBusSession(Vector<CString>& args, bool allowPortals)
-@@ -410,17 +427,6 @@ static void bindV4l(Vector<CString>& args)
-     }));
- }
- 
--static void bindSymlinksRealPath(Vector<CString>& args, const char* path)
--{
--    char realPath[PATH_MAX];
--
--    if (realpath(path, realPath) && strcmp(path, realPath)) {
--        args.appendVector(Vector<CString>({
--            "--ro-bind", realPath, realPath,
--        }));
--    }
--}
--
- // Translate a libseccomp error code into an error message. libseccomp
- // mostly returns negative errno values such as -ENOMEM, but some
- // standard errno values are used for non-standard purposes where their
diff --git a/gnu/packages/webkit.scm b/gnu/packages/webkit.scm
index f79d6bd4f6..f453372b1e 100644
--- a/gnu/packages/webkit.scm
+++ b/gnu/packages/webkit.scm
@@ -27,6 +27,7 @@ (define-module (gnu packages webkit)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix gexp)
   #:use-module (guix utils)
   #:use-module (guix build utils)
   #:use-module (guix build-system cmake)
@@ -41,6 +42,7 @@ (define-module (gnu packages webkit)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
+  #:use-module (gnu packages games)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages ghostscript)
@@ -239,121 +241,135 @@ (define-public wpewebkit
 (define-public webkitgtk
   (package
     (name "webkitgtk")
-    (version "2.34.6")
+    (version "2.36.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://www.webkitgtk.org/releases/"
                                   "webkitgtk-" version ".tar.xz"))
               (sha256
                (base32
-                "1xn1hhd0qaxmjf6vy6664i4mmmjsw9zgrr4w8ni3415d981zvj3b"))
-              (patches (search-patches "webkitgtk-bind-all-fonts.patch"
-                                       "webkitgtk-adjust-bubblewrap-paths.patch"
-                                       "webkitgtk-canonicalize-paths.patch"))))
+                "0kf6avqlq9f74lwzji7l3xlnng5yqarc4ykwsmfmy8q5y6hwqxxq"))
+              (patches (search-patches
+                        "webkitgtk-adjust-bubblewrap-paths.patch"))))
     (build-system cmake-build-system)
     (outputs '("out" "doc" "debug"))
     (arguments
-     `(#:tests? #f ; no tests
-       #:build-type "Release" ; turn off debugging symbols to save space
-       #:configure-flags (list
-                          "-DPORT=GTK"
-                          "-DENABLE_GTKDOC=ON" ; No doc by default
-                          ;; Requires libmanette, new dependency added in 2.32.0.
-                          ;; TODO Decide if we should enable this
-                          "-DENABLE_GAMEPAD=OFF"
-                          "-DUSE_SYSTEMD=OFF"
-                          (string-append ; uses lib64 by default
-                           "-DLIB_INSTALL_DIR="
-                           (assoc-ref %outputs "out") "/lib"))
-       #:make-flags
-       ;; Never build with unsupported -j1: https://issues.guix.gnu.org/47964#5
-       (list "-j" (number->string (max 2 (parallel-job-count))))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'configure-bubblewrap-store-directory
-           (lambda _
-             ;; This phase is a corollary to 'webkitgtk-share-store.patch' to
-             ;; avoid hard coding /gnu/store, for users with other prefixes.
-             (let ((store-directory (%store-directory)))
-               (substitute*
-                   "Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp"
-                 (("@storedir@") store-directory)))))
-         (add-after 'unpack 'patch-gtk-doc-scan
-           (lambda* (#:key inputs #:allow-other-keys)
-             (for-each (lambda (file)
-                         (substitute* file
-                           (("http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd")
-                            (string-append (assoc-ref inputs "docbook-xml")
-                                           "/xml/dtd/docbook/docbookx.dtd"))))
-                       (find-files "Source" "\\.sgml$"))))
-         (add-after 'unpack 'embed-absolute-wpebackend-reference
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let ((wpebackend-fdo (assoc-ref inputs "wpebackend-fdo")))
-               (substitute* "Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp"
-                 (("libWPEBackend-fdo-([\\.0-9]+)\\.so" all version)
-                  (string-append wpebackend-fdo "/lib/" all))))))
-         ,@(if (target-x86-64?)
-               '()
-               '((add-after 'unpack 'disable-sse2
-                   (lambda _
-                     (substitute* "Source/cmake/WebKitCompilerFlags.cmake"
-                       (("WTF_CPU_X86 AND NOT CMAKE_CROSSCOMPILING")
-                        "FALSE"))))))
-         (add-after 'install 'move-doc-files
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out"))
-                   (doc (assoc-ref outputs "doc")))
-               (mkdir-p (string-append doc "/share"))
-               (rename-file (string-append out "/share/gtk-doc")
-                            (string-append doc "/share/gtk-doc"))))))))
+     (list
+      ;; The release archive doesn't include the resources/sources needed to
+      ;; run the various regression tests.
+      #:tests? #f
+      ;; When building using the default RelWithDebInfo build type, the final
+      ;; binaries require 20 GiB of memory to link (even with ld.gold or lld)
+      ;; and produce 4.6 GiB of debug symbols.
+      #:build-type "Release"
+      #:configure-flags #~(list
+                           "-DPORT=GTK"
+                           "-DENABLE_GTKDOC=ON" ;disabled by default
+                           "-DENABLE_ACCELERATED_2D_CANVAS=ON" ;disabled by default
+                           "-DENABLE_MINIBROWSER=ON" ;disabled by default
+                           ;; The default lib installation prefix is lib64.
+                           (string-append "-DLIB_INSTALL_DIR=" #$output "/lib"))
+      ;; The build may fail with -j1 (see:
+      ;; https://bugs.webkit.org/show_bug.cgi?id=195251).
+      #:make-flags #~(list "-j" (number->string (max 2 (parallel-job-count))))
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'configure-bubblewrap-store-directory
+            (lambda _
+              ;; This phase is a corollary to 'webkitgtk-share-store.patch' to
+              ;; avoid hard coding /gnu/store, for users with other prefixes.
+              (let ((store-directory (%store-directory)))
+                (substitute*
+                    "Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp"
+                  (("@storedir@") store-directory)))))
+          (add-after 'unpack 'do-not-disable-new-dtags
+            ;; Ensure the linker uses new dynamic tags as this is what Guix
+            ;; uses and validates in the validate-runpath phase.
+            (lambda _
+              (substitute* "Source/cmake/OptionsCommon.cmake"
+                (("if \\(LD_SUPPORTS_DISABLE_NEW_DTAGS\\)")
+                 "if (FALSE)"))))
+          (add-after 'unpack 'help-cmake-find-elogind
+            (lambda _
+              (substitute* "Source/cmake/FindJournald.cmake"
+                ;; Otherwise, CMake would throw an error because it relies on
+                ;; the pkg-config search to locate headers.
+                (("pkg_check_modules\\(PC_SYSTEMD QUIET libsystemd")
+                 "pkg_check_modules(PC_SYSTEMD QUIET libelogind"))))
+          (add-after 'unpack 'patch-gtk-doc-scan
+            (lambda* (#:key native-inputs inputs #:allow-other-keys)
+              (substitute* (find-files "Source" "\\.sgml$")
+                (("http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd")
+                 (search-input-file (or native-inputs inputs)
+                                    "xml/dtd/docbook/docbookx.dtd")))))
+          (add-after 'unpack 'embed-absolute-wpebackend-reference
+            (lambda* (#:key inputs #:allow-other-keys)
+              (let ((wpebackend-fdo (assoc-ref inputs "wpebackend-fdo")))
+                (substitute* "Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp"
+                  (("libWPEBackend-fdo-[\\.0-9]+\\.so" all)
+                   (search-input-file inputs (string-append "lib/" all)))))))
+          #$@(if (target-x86-64?)
+                 '()
+                 '((add-after 'unpack 'disable-sse2
+                     (lambda _
+                       (substitute* "Source/cmake/WebKitCompilerFlags.cmake"
+                         (("WTF_CPU_X86 AND NOT CMAKE_CROSSCOMPILING")
+                          "FALSE"))))))
+          (add-after 'install 'move-doc-files
+            (lambda* (#:key outputs #:allow-other-keys)
+              (let ((doc (assoc-ref outputs "doc")))
+                (mkdir-p (string-append doc "/share"))
+                (rename-file (string-append #$output "/share/gtk-doc")
+                             (string-append doc "/share/gtk-doc"))))))))
     (native-inputs
-     `(("bison" ,bison)
-       ("gettext" ,gettext-minimal)
-       ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
-       ("gobject-introspection" ,gobject-introspection)
-       ("gperf" ,gperf)
-       ("perl" ,perl)
-       ("pkg-config" ,pkg-config)
-       ("python" ,python-wrapper)
-       ("gtk-doc" ,gtk-doc/stable) ; For documentation generation
-       ("docbook-xml" ,docbook-xml) ; For documentation generation
-       ("ruby" ,ruby)))
+     (list bison
+           gettext-minimal
+           `(,glib "bin")               ;for glib-mkenums, etc.
+           gobject-introspection
+           gperf
+           perl
+           pkg-config
+           python-wrapper
+           gtk-doc/stable               ;for documentation generation
+           docbook-xml                  ;for documentation generation
+           ruby))
     (propagated-inputs
      (list gtk+ libsoup))
     (inputs
-     `(("at-spi2-core" ,at-spi2-core)
-       ("bubblewrap" ,bubblewrap)
-       ("enchant" ,enchant)
-       ("geoclue" ,geoclue)
-       ("gst-plugins-base" ,gst-plugins-base)
-       ("gtk+-2" ,gtk+-2)
-       ("harfbuzz" ,harfbuzz)
-       ("hyphen" ,hyphen)
-       ("icu4c" ,icu4c)
-       ("lcms" ,lcms)
-       ("libgcrypt" ,libgcrypt)
-       ("libjpeg" ,libjpeg-turbo)
-       ("libnotify" ,libnotify)
-       ("libpng" ,libpng)
-       ("libseccomp" ,libseccomp)
-       ("libsecret" ,libsecret)
-       ("libtasn1" ,libtasn1)
-       ("libwebp" ,libwebp)
-       ("libwpe" ,libwpe)
-       ("libxcomposite" ,libxcomposite)
-       ("libxml2" ,libxml2)
-       ("libxslt" ,libxslt)
-       ("libxt" ,libxt)
-       ("mesa" ,mesa)
-       ("openjpeg" ,openjpeg)
-       ("sqlite" ,sqlite)
-       ("woff2" ,woff2)
-       ("wpebackend-fdo" ,wpebackend-fdo)
-       ("xdg-dbus-proxy" ,xdg-dbus-proxy)))
+     (list at-spi2-core
+           bubblewrap
+           elogind
+           enchant
+           geoclue
+           gst-plugins-base
+           gtk+-2
+           harfbuzz
+           hyphen
+           icu4c
+           lcms
+           libgcrypt
+           libjpeg-turbo
+           libmanette
+           libnotify
+           libpng
+           libseccomp
+           libsecret
+           libtasn1
+           libwebp
+           libwpe
+           libxcomposite
+           libxml2
+           libxslt
+           libxt
+           mesa
+           openjpeg
+           sqlite
+           woff2
+           wpebackend-fdo
+           xdg-dbus-proxy))
     (home-page "https://www.webkitgtk.org/")
     (synopsis "Web content engine for GTK+")
-    (description
-     "WebKitGTK+ is a full-featured port of the WebKit rendering engine,
+    (description "WebKitGTK+ is a full-featured port of the WebKit rendering engine,
 suitable for projects requiring any kind of web integration, from hybrid
 HTML/CSS applications to full-fledged web browsers.  WebKitGTK+ video playing
 capabilities can be extended through the use of GStreamer plugins (not
@@ -366,17 +382,17 @@ (define-public webkitgtk
                    license:bsd-2
                    license:bsd-3))))
 
-;;; Required by gnome-online-accounts; as webkitgtk 2.34 propagates libsoup 3,
-;;; which causes the build to fail.
-;;; Also required by e.g. emacs-next-pgtk,  emacs-xwidgets, and some other
-;;; Gnome packages for webkit2gtk-4.0. See also the upstream tracker for
-;;; libsoup 3: https://gitlab.gnome.org/GNOME/libsoup/-/issues/218
+;;; Required by gnome-online-accounts as webkitgtk propagates libsoup 3, which
+;;; causes the build to fail.  Also required by e.g. emacs-next-pgtk,
+;;; emacs-xwidgets, and some other GNOME packages for webkit2gtk-4.0.  See
+;;; also the upstream tracker for libsoup 3:
+;;; https://gitlab.gnome.org/GNOME/libsoup/-/issues/218
 (define-public webkitgtk-with-libsoup2
   (package/inherit webkitgtk
     (name "webkitgtk-with-libsoup2")
     (arguments (substitute-keyword-arguments (package-arguments webkitgtk)
                  ((#:configure-flags flags)
-                  `(cons "-DUSE_SOUP2=ON" ,flags))))
+                  #~(cons "-DUSE_SOUP2=ON" #$flags))))
     (propagated-inputs
-     (alist-replace "libsoup" (list libsoup-minimal-2)
-                    (package-propagated-inputs webkitgtk)))))
+     (modify-inputs (package-propagated-inputs webkitgtk)
+       (replace "libsoup" libsoup-minimal-2)))))
-- 
2.34.0





^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [bug#54703] [PATCH v2 3/3] gnu: wpewebkit: Update to 2.36.0.
  2022-04-04  6:14     ` Liliana Marie Prikler
                         ` (2 preceding siblings ...)
  2022-04-05  0:27       ` [bug#54703] [PATCH v2 2/3] gnu: webkitgtk: Update to 2.36.0 and enable extra features Maxim Cournoyer
@ 2022-04-05  0:27       ` Maxim Cournoyer
  3 siblings, 0 replies; 14+ messages in thread
From: Maxim Cournoyer @ 2022-04-05  0:27 UTC (permalink / raw)
  To: 54703; +Cc: liliana.prikler, Maxim Cournoyer

* gnu/packages/webkit.scm (%webkit-version): New variable.
(wpewebkit): Update to 2.36.0, rewriting package to inherit from webkitgtk.
(webkitgtk)[source]: Use %webkit-version, and adjust definition to match that
of wpewebkit.
---
 gnu/packages/webkit.scm | 145 ++++++++--------------------------------
 1 file changed, 27 insertions(+), 118 deletions(-)

diff --git a/gnu/packages/webkit.scm b/gnu/packages/webkit.scm
index f453372b1e..cfb80f591c 100644
--- a/gnu/packages/webkit.scm
+++ b/gnu/packages/webkit.scm
@@ -123,132 +123,18 @@ (define-public wpebackend-fdo
 engine that uses Wayland for graphics output.")
     (license license:bsd-2)))
 
-(define-public wpewebkit
-  (package
-    (name "wpewebkit")
-    (version "2.34.3")
-    (source
-     (origin
-       (method url-fetch)
-       (uri
-        (string-append "https://wpewebkit.org/releases/"
-                       name "-" version ".tar.xz"))
-       (sha256
-        (base32 "1z20bza01ld4jvi0qx8xsl5y4czaniwpi8hxdjyirj1mrszy8pf3"))))
-    (build-system cmake-build-system)
-    (outputs '("out" "doc"))
-    (arguments
-     `(#:tests? #f                      ; XXX: To be enabled
-       #:configure-flags
-       (list
-        "-DPORT=WPE"
-        ;; XXX: To be enabled.
-        ;; "-DENABLE_ACCELERATED_2D_CANVAS=ON"
-        "-DUSE_SYSTEMD=OFF"
-        "-DENABLE_ENCRYPTED_MEDIA=OFF"
-        "-DENABLE_GTKDOC=ON"
-        "-DUSE_GSTREAMER_GL=OFF")
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'setenv
-           (lambda _
-             (setenv "HOME" "/tmp")
-             #t))
-         (add-after 'unpack 'patch-docbook-xml
-           (lambda* (#:key inputs #:allow-other-keys)
-             (for-each
-              (lambda (file)
-                (substitute* file
-                  (("http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd")
-                   (string-append (assoc-ref inputs "docbook-xml")
-                                  "/xml/dtd/docbook/docbookx.dtd"))))
-              (find-files "Source" "\\.sgml$"))
-             #t))
-         (add-after 'unpack 'patch-cmake
-           (lambda _
-             (substitute* "Source/PlatformWPE.cmake"
-               (("(Documentation/wpe(-webextensions)?-)\\$\\{WPE_API_VERSION\\}"
-                 all prefix)
-                (string-append prefix "${WPE_API_DOC_VERSION}"))
-               (("(html/wpe(-webextensions)?-)\\$\\{WPE_API_VERSION\\}"
-                 all prefix)
-                (string-append prefix "${WPE_API_DOC_VERSION}")))))
-         (add-after 'install 'move-doc-files
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (doc (assoc-ref outputs "doc")))
-               (mkdir-p (string-append doc "/share"))
-               (rename-file
-                (string-append out "/share/gtk-doc")
-                (string-append doc "/share/gtk-doc"))
-               #t))))))
-    (native-inputs
-     `(("docbook-xml" ,docbook-xml-4.1.2)
-       ("docbook-xsl" ,docbook-xsl)
-       ("glib:bin" ,glib "bin")
-       ("gobject-introspection" ,gobject-introspection)
-       ("gtk-doc" ,gtk-doc/stable)
-       ("perl" ,perl)
-       ("pkg-config" ,pkg-config)
-       ("python" ,python-wrapper)
-       ("python2" ,python-2.7)
-       ("ruby" ,ruby)))
-    (inputs
-     `(("atk" ,atk)
-       ("atk-bridge" ,at-spi2-atk)
-       ("bubblewrap" ,bubblewrap)
-       ("cairo" ,cairo)
-       ("fontconfig" ,fontconfig)
-       ("freetype" ,freetype)
-       ("gperf" ,gperf)
-       ("gstreamer" ,gstreamer)
-       ("gst-plugins-base" ,gst-plugins-base)
-       ("harfbuzz" ,harfbuzz)
-       ("icu" ,icu4c)
-       ("lcms" ,lcms)
-       ("libepoxy" ,libepoxy)
-       ("libgcrypt" ,libgcrypt)
-       ("libjpeg" ,libjpeg-turbo)
-       ("libpng" ,libpng)
-       ("libseccomp" ,libseccomp)
-       ("libtasn1" ,libtasn1)
-       ("libxml2" ,libxml2)
-       ("libxslt" ,libxslt)
-       ("mesa" ,mesa)
-       ("openjpeg" ,openjpeg)
-       ("sqlite" ,sqlite)
-       ("webp" ,libwebp)
-       ("woff2" ,woff2)
-       ("xdg-dbus-proxy" ,xdg-dbus-proxy)
-       ("zlib" ,zlib)))
-    (propagated-inputs
-     `(("glib" ,glib)
-       ("libsoup" ,libsoup)
-       ("wpe" ,libwpe)))
-    (synopsis "WebKit port optimized for embedded devices")
-    (description "WPE WebKit allows embedders to create simple and performant
-systems based on Web platform technologies.  It is designed with hardware
-acceleration in mind, leveraging common 3D graphics APIs for best performance.")
-    (home-page "https://wpewebkit.org/")
-    (license
-     (list
-      ;; Rendering and JavaScript Engines.
-      license:lgpl2.1+
-      ;; Others
-      license:bsd-2))
-    (properties '((cpe-name . "wpe_webkit")))))
+(define %webkit-version "2.36.0")
 
 (define-public webkitgtk
   (package
     (name "webkitgtk")
-    (version "2.36.0")
+    (version %webkit-version)
     (source (origin
               (method url-fetch)
               (uri (string-append "https://www.webkitgtk.org/releases/"
-                                  "webkitgtk-" version ".tar.xz"))
+                                  name "-" version ".tar.xz"))
               (sha256
-               (base32
-                "0kf6avqlq9f74lwzji7l3xlnng5yqarc4ykwsmfmy8q5y6hwqxxq"))
+               (base32 "0kf6avqlq9f74lwzji7l3xlnng5yqarc4ykwsmfmy8q5y6hwqxxq"))
               (patches (search-patches
                         "webkitgtk-adjust-bubblewrap-paths.patch"))))
     (build-system cmake-build-system)
@@ -396,3 +282,26 @@ (define-public webkitgtk-with-libsoup2
     (propagated-inputs
      (modify-inputs (package-propagated-inputs webkitgtk)
        (replace "libsoup" libsoup-minimal-2)))))
+
+(define-public wpewebkit
+  (package
+    (inherit webkitgtk)
+    (name "wpewebkit")
+    (version %webkit-version)
+    (source (origin
+              (inherit (package-source webkitgtk))
+              (uri (string-append "https://wpewebkit.org/releases/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32 "0nkdx6pckbkhs85z3pidnh4cbp0wfa38lf2qyn0grywvgpwajsh9"))))
+    (arguments
+     (substitute-keyword-arguments (package-arguments webkitgtk)
+       ((#:configure-flags flags)
+        #~(cons "-DPORT=WPE"
+                (delete "-DPORT=GTK" #$flags)))))
+    (synopsis "WebKit port optimized for embedded devices")
+    (description "WPE WebKit allows embedders to create simple and performant
+systems based on Web platform technologies.  It is designed with hardware
+acceleration in mind, leveraging common 3D graphics APIs for best performance.")
+    (home-page "https://wpewebkit.org/")
+    (properties '((cpe-name . "wpe_webkit")))))
-- 
2.34.0





^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [bug#54703] [PATCH v2 2/3] gnu: webkitgtk: Update to 2.36.0 and enable extra features.
  2022-04-05  0:27       ` [bug#54703] [PATCH v2 2/3] gnu: webkitgtk: Update to 2.36.0 and enable extra features Maxim Cournoyer
@ 2022-04-05  5:59         ` Liliana Marie Prikler
  0 siblings, 0 replies; 14+ messages in thread
From: Liliana Marie Prikler @ 2022-04-05  5:59 UTC (permalink / raw)
  To: Maxim Cournoyer, 54703

Am Montag, dem 04.04.2022 um 20:27 -0400 schrieb Maxim Cournoyer:
> * gnu/packages/webkit.scm (webkitgtk): Update to 2.36.0.
> [source]: Remove the webkitgtk-bind-all-fonts.patch and
> webkitgtk-canonicalize-paths.patch patches.
I assume they were upstreamed?
> [arguments]: Use gexp.
> [tests?]: Update comment.
> [build-type]: Add explanatory comment.
> [configure-flags]: Enable gamepad support,  remove nonexistent
> USE_SYSTEMD option, enable accelerated 2D canvas and mini-browser.
> [phases]{do-not-disable-new-dtags}: New phase.
> {help-cmake-find-elogind}: Likewise.
> {patch-gtk-doc-scan}: Simplify to avoid for-each.  Locate
> docbookx.dtd via
> search-input-file.
> {embed-absolute-wpebackend-reference}: Use search-input-file.
> [native-inputs]: Use new style.
> [inputs]: Likewise.  Add elogind and libmanette.
> [description]: Adjust indentation.
> (webkitgtk-with-libsoup2): Re-format comment, fixing spacing.
> [configure-flags]: Use gexp.
> [propagated-inputs]: Use modify-inputs to replace libsoup with
> libsoup-minimal-2.
> * gnu/packages/patches/webkitgtk-bind-all-fonts.patch: Delete file.
> * gnu/packages/patches/webkitgtk-canonicalize-paths.patch: Likewise.
> * gnu/local.mk: De-register them.
> ---
>  gnu/local.mk                                  |   2 -
>  .../patches/webkitgtk-bind-all-fonts.patch    |  25 --
>  .../webkitgtk-canonicalize-paths.patch        |  66 -----
>  gnu/packages/webkit.scm                       | 232 ++++++++++------
> --
>  4 files changed, 124 insertions(+), 201 deletions(-)
>  delete mode 100644 gnu/packages/patches/webkitgtk-bind-all-
> fonts.patch
>  delete mode 100644 gnu/packages/patches/webkitgtk-canonicalize-
> paths.patch
> 
> diff --git a/gnu/local.mk b/gnu/local.mk
> index aac7362475..7f9c2fe1a1 100644
> --- a/gnu/local.mk
> +++ b/gnu/local.mk
> @@ -1931,9 +1931,7 @@ dist_patch_DATA
> =                                         \
>    %D%/packages/patches/vte-CVE-2012-2738-
> pt2.patch                     \
>    %D%/packages/patches/vtk-fix-freetypetools-build-
> failure.patch       \
>    %D%/packages/patches/warsow-qfusion-fix-bool-return-
> type.patch       \
> -  %D%/packages/patches/webkitgtk-bind-all-fonts.patch          \
>    %D%/packages/patches/webkitgtk-adjust-bubblewrap-paths.patch \
> -  %D%/packages/patches/webkitgtk-canonicalize-paths.patch      \
>    %D%/packages/patches/webrtc-audio-processing-big-
> endian.patch        \
>    %D%/packages/patches/websocketpp-fix-for-cmake-3.15.patch    \
>    %D%/packages/patches/wicd-bitrate-none-fix.patch             \
> diff --git a/gnu/packages/patches/webkitgtk-bind-all-fonts.patch
> b/gnu/packages/patches/webkitgtk-bind-all-fonts.patch
> deleted file mode 100644
> index 27013180c4..0000000000
> --- a/gnu/packages/patches/webkitgtk-bind-all-fonts.patch
> +++ /dev/null
> @@ -1,25 +0,0 @@
> -Upstream commit:
> https://github.com/WebKit/WebKit/commit/31ac354cbeecf866f9a38f7b2f8f59f7975d3f6a
> -
> -diff --git
> a/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp
> b/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp
> -index ecc804663784..8de174be3c0e 100644
> ---- a/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp
> -+++ b/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp
> -@@ -288,6 +288,7 @@ static void bindFonts(Vector<CString>& args)
> -     const char* homeDir = g_get_home_dir();
> -     const char* dataDir = g_get_user_data_dir();
> -     const char* cacheDir = g_get_user_cache_dir();
> -+    const char* const * dataDirs = g_get_system_data_dirs();
> - 
> -     // Configs can include custom dirs but then we have to parse
> them...
> -     GUniquePtr<char> fontConfig(g_build_filename(configDir,
> "fontconfig", nullptr));
> -@@ -304,6 +305,10 @@ static void bindFonts(Vector<CString>& args)
> -     bindIfExists(args, fontHomeConfigDir.get());
> -     bindIfExists(args, fontData.get());
> -     bindIfExists(args, fontHomeData.get());
> -+    for (auto* dataDir = dataDirs; dataDir && *dataDir; dataDir++)
> {
> -+        GUniquePtr<char> fontDataDir(g_build_filename(*dataDir,
> "fonts", nullptr));
> -+        bindIfExists(args, fontDataDir.get());
> -+    }
> -     bindIfExists(args, "/var/cache/fontconfig"); // Used by Debian.
> - }
> - 
> diff --git a/gnu/packages/patches/webkitgtk-canonicalize-paths.patch
> b/gnu/packages/patches/webkitgtk-canonicalize-paths.patch
> deleted file mode 100644
> index 741d534831..0000000000
> --- a/gnu/packages/patches/webkitgtk-canonicalize-paths.patch
> +++ /dev/null
> @@ -1,66 +0,0 @@
> -Upstream commit:
> https://github.com/WebKit/WebKit/commit/6a87eb254ef57a986a1a6ce9a3a4b66928afeb65
> -
> -diff --git
> a/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp
> b/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp
> -index ecc804663784..a2a1c9d7a4dd 100644
> ---- a/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp
> -+++ b/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp
> -@@ -27,7 +27,6 @@
> - #include <seccomp.h>
> - #include <sys/ioctl.h>
> - #include <sys/mman.h>
> --#include <unistd.h>
> - #include <wtf/FileSystem.h>
> - #include <wtf/UniStdExtras.h>
> - #include <wtf/glib/GRefPtr.h>
> -@@ -165,6 +164,15 @@ enum class BindFlags {
> -     Device,
> - };
> - 
> -+static void bindSymlinksRealPath(Vector<CString>& args, const char*
> path, const char* bindOption = "--ro-bind")
> -+{
> -+    WTF::String realPath = FileSystem::realPath(path);
> -+    if (path != realPath) {
> -+        CString rpath = realPath.utf8();
> -+        args.appendVector(Vector<CString>({ bindOption,
> rpath.data(), rpath.data() }));
> -+    }
> -+}
> -+
> - static void bindIfExists(Vector<CString>& args, const char* path,
> BindFlags bindFlags = BindFlags::ReadOnly)
> - {
> -     if (!path || path[0] == '\0')
> -@@ -177,7 +185,16 @@ static void bindIfExists(Vector<CString>& args,
> const char* path, BindFlags bind
> -         bindType = "--ro-bind-try";
> -     else
> -         bindType = "--bind-try";
> --    args.appendVector(Vector<CString>({ bindType, path, path }));
> -+
> -+    // Canonicalize the source path, otherwise a symbolic link
> could
> -+    // point to a location outside of the namespace.
> -+    bindSymlinksRealPath(args, path, bindType);
> -+
> -+    // As /etc is exposed wholesale, do not layer extraneous bind
> -+    // directives on top, which could fail in the presence of
> symbolic
> -+    // links.
> -+    if (!g_str_has_prefix(path, "/etc/"))
> -+        args.appendVector(Vector<CString>({ bindType, path, path
> }));
> - }
> - 
> - static void bindDBusSession(Vector<CString>& args, bool
> allowPortals)
> -@@ -410,17 +427,6 @@ static void bindV4l(Vector<CString>& args)
> -     }));
> - }
> - 
> --static void bindSymlinksRealPath(Vector<CString>& args, const char*
> path)
> --{
> --    char realPath[PATH_MAX];
> --
> --    if (realpath(path, realPath) && strcmp(path, realPath)) {
> --        args.appendVector(Vector<CString>({
> --            "--ro-bind", realPath, realPath,
> --        }));
> --    }
> --}
> --
> - // Translate a libseccomp error code into an error message.
> libseccomp
> - // mostly returns negative errno values such as -ENOMEM, but some
> - // standard errno values are used for non-standard purposes where
> their
> diff --git a/gnu/packages/webkit.scm b/gnu/packages/webkit.scm
> index f79d6bd4f6..f453372b1e 100644
> --- a/gnu/packages/webkit.scm
> +++ b/gnu/packages/webkit.scm
> @@ -27,6 +27,7 @@ (define-module (gnu packages webkit)
>    #:use-module ((guix licenses) #:prefix license:)
>    #:use-module (guix packages)
>    #:use-module (guix download)
> +  #:use-module (guix gexp)
>    #:use-module (guix utils)
>    #:use-module (guix build utils)
>    #:use-module (guix build-system cmake)
> @@ -41,6 +42,7 @@ (define-module (gnu packages webkit)
>    #:use-module (gnu packages flex)
>    #:use-module (gnu packages fontutils)
>    #:use-module (gnu packages freedesktop)
> +  #:use-module (gnu packages games)
>    #:use-module (gnu packages gcc)
>    #:use-module (gnu packages gettext)
>    #:use-module (gnu packages ghostscript)
> @@ -239,121 +241,135 @@ (define-public wpewebkit
>  (define-public webkitgtk
>    (package
>      (name "webkitgtk")
> -    (version "2.34.6")
> +    (version "2.36.0")
>      (source (origin
>                (method url-fetch)
>                (uri (string-append
> "https://www.webkitgtk.org/releases/"
>                                    "webkitgtk-" version ".tar.xz"))
>                (sha256
>                 (base32
> -               
> "1xn1hhd0qaxmjf6vy6664i4mmmjsw9zgrr4w8ni3415d981zvj3b"))
> -              (patches (search-patches "webkitgtk-bind-all-
> fonts.patch"
> -                                       "webkitgtk-adjust-bubblewrap-
> paths.patch"
> -                                       "webkitgtk-canonicalize-
> paths.patch"))))
> +               
> "0kf6avqlq9f74lwzji7l3xlnng5yqarc4ykwsmfmy8q5y6hwqxxq"))
> +              (patches (search-patches
> +                        "webkitgtk-adjust-bubblewrap-
> paths.patch"))))
>      (build-system cmake-build-system)
>      (outputs '("out" "doc" "debug"))
>      (arguments
> -     `(#:tests? #f ; no tests
> -       #:build-type "Release" ; turn off debugging symbols to save
> space
> -       #:configure-flags (list
> -                          "-DPORT=GTK"
> -                          "-DENABLE_GTKDOC=ON" ; No doc by default
> -                          ;; Requires libmanette, new dependency
> added in 2.32.0.
> -                          ;; TODO Decide if we should enable this
> -                          "-DENABLE_GAMEPAD=OFF"
> -                          "-DUSE_SYSTEMD=OFF"
> -                          (string-append ; uses lib64 by default
> -                           "-DLIB_INSTALL_DIR="
> -                           (assoc-ref %outputs "out") "/lib"))
> -       #:make-flags
> -       ;; Never build with unsupported -j1:
> https://issues.guix.gnu.org/47964#5
> -       (list "-j" (number->string (max 2 (parallel-job-count))))
> -       #:phases
> -       (modify-phases %standard-phases
> -         (add-after 'unpack 'configure-bubblewrap-store-directory
> -           (lambda _
> -             ;; This phase is a corollary to 'webkitgtk-share-
> store.patch' to
> -             ;; avoid hard coding /gnu/store, for users with other
> prefixes.
> -             (let ((store-directory (%store-directory)))
> -               (substitute*
> -                  
> "Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp"
> -                 (("@storedir@") store-directory)))))
> -         (add-after 'unpack 'patch-gtk-doc-scan
> -           (lambda* (#:key inputs #:allow-other-keys)
> -             (for-each (lambda (file)
> -                         (substitute* file
> -                          
> (("http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd")
> -                            (string-append (assoc-ref inputs
> "docbook-xml")
> -                                          
> "/xml/dtd/docbook/docbookx.dtd"))))
> -                       (find-files "Source" "\\.sgml$"))))
> -         (add-after 'unpack 'embed-absolute-wpebackend-reference
> -           (lambda* (#:key inputs #:allow-other-keys)
> -             (let ((wpebackend-fdo (assoc-ref inputs "wpebackend-
> fdo")))
> -               (substitute*
> "Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp"
> -                 (("libWPEBackend-fdo-([\\.0-9]+)\\.so" all version)
> -                  (string-append wpebackend-fdo "/lib/" all))))))
> -         ,@(if (target-x86-64?)
> -               '()
> -               '((add-after 'unpack 'disable-sse2
> -                   (lambda _
> -                     (substitute*
> "Source/cmake/WebKitCompilerFlags.cmake"
> -                       (("WTF_CPU_X86 AND NOT CMAKE_CROSSCOMPILING")
> -                        "FALSE"))))))
> -         (add-after 'install 'move-doc-files
> -           (lambda* (#:key outputs #:allow-other-keys)
> -             (let ((out (assoc-ref outputs "out"))
> -                   (doc (assoc-ref outputs "doc")))
> -               (mkdir-p (string-append doc "/share"))
> -               (rename-file (string-append out "/share/gtk-doc")
> -                            (string-append doc "/share/gtk-
> doc"))))))))
> +     (list
> +      ;; The release archive doesn't include the resources/sources
> needed to
> +      ;; run the various regression tests.
> +      #:tests? #f
> +      ;; When building using the default RelWithDebInfo build type,
> the final
> +      ;; binaries require 20 GiB of memory to link (even with
> ld.gold or lld)
> +      ;; and produce 4.6 GiB of debug symbols.
> +      #:build-type "Release"
> +      #:configure-flags #~(list
> +                           "-DPORT=GTK"
> +                           "-DENABLE_GTKDOC=ON" ;disabled by default
> +                           "-DENABLE_ACCELERATED_2D_CANVAS=ON"
> ;disabled by default
> +                           "-DENABLE_MINIBROWSER=ON" ;disabled by
> default
Rather than saying "disabled by default" we should probably say why
we're enabling them if upstream thinks that's unwise to do.
> +                           ;; The default lib installation prefix is
> lib64.
> +                           (string-append "-DLIB_INSTALL_DIR="
> #$output "/lib"))
> +      ;; The build may fail with -j1 (see:
> +      ;; https://bugs.webkit.org/show_bug.cgi?id=195251).
> +      #:make-flags #~(list "-j" (number->string (max 2 (parallel-
> job-count))))
> +      #:phases
> +      #~(modify-phases %standard-phases
> +          (add-after 'unpack 'configure-bubblewrap-store-directory
> +            (lambda _
> +              ;; This phase is a corollary to 'webkitgtk-share-
> store.patch' to
> +              ;; avoid hard coding /gnu/store, for users with other
> prefixes.
That patch no longer exists AFAICS, so the comment needs to be updated.
> +              (let ((store-directory (%store-directory)))
> +                (substitute*
> +                   
> "Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp"
> +                  (("@storedir@") store-directory)))))
> +          (add-after 'unpack 'do-not-disable-new-dtags
> +            ;; Ensure the linker uses new dynamic tags as this is
> what Guix
> +            ;; uses and validates in the validate-runpath phase.
> +            (lambda _
> +              (substitute* "Source/cmake/OptionsCommon.cmake"
> +                (("if \\(LD_SUPPORTS_DISABLE_NEW_DTAGS\\)")
> +                 "if (FALSE)"))))
> +          (add-after 'unpack 'help-cmake-find-elogind
> +            (lambda _
> +              (substitute* "Source/cmake/FindJournald.cmake"
> +                ;; Otherwise, CMake would throw an error because it
> relies on
> +                ;; the pkg-config search to locate headers.
> +                (("pkg_check_modules\\(PC_SYSTEMD QUIET libsystemd")
> +                 "pkg_check_modules(PC_SYSTEMD QUIET libelogind"))))
> +          (add-after 'unpack 'patch-gtk-doc-scan
> +            (lambda* (#:key native-inputs inputs #:allow-other-keys)
> +              (substitute* (find-files "Source" "\\.sgml$")
> +               
> (("http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd")
> +                 (search-input-file (or native-inputs inputs)
> +                                   
> "xml/dtd/docbook/docbookx.dtd")))))
> +          (add-after 'unpack 'embed-absolute-wpebackend-reference
> +            (lambda* (#:key inputs #:allow-other-keys)
> +              (let ((wpebackend-fdo (assoc-ref inputs "wpebackend-
> fdo")))
> +                (substitute*
> "Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp"
> +                  (("libWPEBackend-fdo-[\\.0-9]+\\.so" all)
> +                   (search-input-file inputs (string-append "lib/"
> all)))))))
> +          #$@(if (target-x86-64?)
> +                 '()
> +                 '((add-after 'unpack 'disable-sse2
> +                     (lambda _
> +                       (substitute*
> "Source/cmake/WebKitCompilerFlags.cmake"
> +                         (("WTF_CPU_X86 AND NOT
> CMAKE_CROSSCOMPILING")
> +                          "FALSE"))))))

> +          (add-after 'install 'move-doc-files
> +            (lambda* (#:key outputs #:allow-other-keys)
> +              (let ((doc (assoc-ref outputs "doc")))
> +                (mkdir-p (string-append doc "/share"))
> +                (rename-file (string-append #$output "/share/gtk-
> doc")
> +                             (string-append doc "/share/gtk-
> doc"))))))))
>      (native-inputs
> -     `(("bison" ,bison)
> -       ("gettext" ,gettext-minimal)
> -       ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
> -       ("gobject-introspection" ,gobject-introspection)
> -       ("gperf" ,gperf)
> -       ("perl" ,perl)
> -       ("pkg-config" ,pkg-config)
> -       ("python" ,python-wrapper)
> -       ("gtk-doc" ,gtk-doc/stable) ; For documentation generation
> -       ("docbook-xml" ,docbook-xml) ; For documentation generation
> -       ("ruby" ,ruby)))
> +     (list bison
> +           gettext-minimal
> +           `(,glib "bin")               ;for glib-mkenums, etc.
> +           gobject-introspection
> +           gperf
> +           perl
> +           pkg-config
> +           python-wrapper
> +           gtk-doc/stable               ;for documentation
> generation
> +           docbook-xml                  ;for documentation
> generation
I think "for documentation" would be enough here.  Small nitpick:
What's it with all the lacking spaces after the semicolons?
> +           ruby))
>      (propagated-inputs
>       (list gtk+ libsoup))
>      (inputs
> -     `(("at-spi2-core" ,at-spi2-core)
> -       ("bubblewrap" ,bubblewrap)
> -       ("enchant" ,enchant)
> -       ("geoclue" ,geoclue)
> -       ("gst-plugins-base" ,gst-plugins-base)
> -       ("gtk+-2" ,gtk+-2)
> -       ("harfbuzz" ,harfbuzz)
> -       ("hyphen" ,hyphen)
> -       ("icu4c" ,icu4c)
> -       ("lcms" ,lcms)
> -       ("libgcrypt" ,libgcrypt)
> -       ("libjpeg" ,libjpeg-turbo)
> -       ("libnotify" ,libnotify)
> -       ("libpng" ,libpng)
> -       ("libseccomp" ,libseccomp)
> -       ("libsecret" ,libsecret)
> -       ("libtasn1" ,libtasn1)
> -       ("libwebp" ,libwebp)
> -       ("libwpe" ,libwpe)
> -       ("libxcomposite" ,libxcomposite)
> -       ("libxml2" ,libxml2)
> -       ("libxslt" ,libxslt)
> -       ("libxt" ,libxt)
> -       ("mesa" ,mesa)
> -       ("openjpeg" ,openjpeg)
> -       ("sqlite" ,sqlite)
> -       ("woff2" ,woff2)
> -       ("wpebackend-fdo" ,wpebackend-fdo)
> -       ("xdg-dbus-proxy" ,xdg-dbus-proxy)))
> +     (list at-spi2-core
> +           bubblewrap
> +           elogind
> +           enchant
> +           geoclue
> +           gst-plugins-base
> +           gtk+-2
> +           harfbuzz
> +           hyphen
> +           icu4c
> +           lcms
> +           libgcrypt
> +           libjpeg-turbo
> +           libmanette
> +           libnotify
> +           libpng
> +           libseccomp
> +           libsecret
> +           libtasn1
> +           libwebp
> +           libwpe
> +           libxcomposite
> +           libxml2
> +           libxslt
> +           libxt
> +           mesa
> +           openjpeg
> +           sqlite
> +           woff2
> +           wpebackend-fdo
> +           xdg-dbus-proxy))
>      (home-page "https://www.webkitgtk.org/")
>      (synopsis "Web content engine for GTK+")
> -    (description
> -     "WebKitGTK+ is a full-featured port of the WebKit rendering
> engine,
> +    (description "WebKitGTK+ is a full-featured port of the WebKit
> rendering engine,
>  suitable for projects requiring any kind of web integration, from
> hybrid
>  HTML/CSS applications to full-fledged web browsers.  WebKitGTK+
> video playing
>  capabilities can be extended through the use of GStreamer plugins
> (not
> @@ -366,17 +382,17 @@ (define-public webkitgtk
>                     license:bsd-2
>                     license:bsd-3))))
>  
> -;;; Required by gnome-online-accounts; as webkitgtk 2.34 propagates
> libsoup 3,
> -;;; which causes the build to fail.
> -;;; Also required by e.g. emacs-next-pgtk,  emacs-xwidgets, and some
> other
> -;;; Gnome packages for webkit2gtk-4.0. See also the upstream tracker
> for
> -;;; libsoup 3: https://gitlab.gnome.org/GNOME/libsoup/-/issues/218
> +;;; Required by gnome-online-accounts as webkitgtk propagates
> libsoup 3, which
> +;;; causes the build to fail.  Also required by e.g. emacs-next-
> pgtk,
> +;;; emacs-xwidgets, and some other GNOME packages for webkit2gtk-
> 4.0.  See
> +;;; also the upstream tracker for libsoup 3:
> +;;; https://gitlab.gnome.org/GNOME/libsoup/-/issues/218
>  (define-public webkitgtk-with-libsoup2
>    (package/inherit webkitgtk
>      (name "webkitgtk-with-libsoup2")
>      (arguments (substitute-keyword-arguments (package-arguments
> webkitgtk)
>                   ((#:configure-flags flags)
> -                  `(cons "-DUSE_SOUP2=ON" ,flags))))
> +                  #~(cons "-DUSE_SOUP2=ON" #$flags))))
>      (propagated-inputs
> -     (alist-replace "libsoup" (list libsoup-minimal-2)
> -                    (package-propagated-inputs webkitgtk)))))
> +     (modify-inputs (package-propagated-inputs webkitgtk)
> +       (replace "libsoup" libsoup-minimal-2)))))
Otherwise LGTM.

You might however want to wait for more comments, particularly lfam's
security advice :)




^ permalink raw reply	[flat|nested] 14+ messages in thread

* [bug#54703] [PATCH v3 1/3] gnu: woff2: Propagate brotli.
  2022-04-04  4:15 [bug#54703] [PATCH 0/3] Update webkitgtk to 2.36.0 and enable new features Maxim Cournoyer
  2022-04-04  4:17 ` [bug#54703] [PATCH 1/3] gnu: woff2: Propagate brotli Maxim Cournoyer
@ 2022-04-09 14:42 ` Maxim Cournoyer
  2022-04-09 14:42   ` [bug#54703] [PATCH v3 2/3] gnu: webkitgtk: Update to 2.36.0 and enable extra features Maxim Cournoyer
  2022-04-09 14:42   ` [bug#54703] [PATCH v3 3/3] gnu: wpewebkit: Update to 2.36.0 Maxim Cournoyer
  1 sibling, 2 replies; 14+ messages in thread
From: Maxim Cournoyer @ 2022-04-09 14:42 UTC (permalink / raw)
  To: 54703; +Cc: liliana.prikler, Maxim Cournoyer

* gnu/packages/fontutils.scm (woff2)[phases]: Delete trailing #t.
[inputs]: Move brotli to ...
[propagated-inputs]: ... here.
---
 gnu/packages/fontutils.scm | 9 ++++-----
 1 file changed, 4 insertions(+), 5 deletions(-)

diff --git a/gnu/packages/fontutils.scm b/gnu/packages/fontutils.scm
index 04b868d31b..c8c32fd5a9 100644
--- a/gnu/packages/fontutils.scm
+++ b/gnu/packages/fontutils.scm
@@ -286,7 +286,7 @@ (define-public woff2
     (build-system cmake-build-system)
     (outputs '("out" "bin"))
     (arguments
-     `(#:tests? #f                      ; No target
+     `(#:tests? #f                      ;no test suite
        #:configure-flags
        (list
         (string-append "-DCMAKE_INSTALL_BINDIR="
@@ -305,12 +305,11 @@ (define-public woff2
            (lambda _
              (substitute* "CMakeLists.txt"
                (("NOT BUILD_SHARED_LIBS")
-                "BUILD_SHARED_LIBS"))
-             #t)))))
+                "BUILD_SHARED_LIBS")))))))
     (native-inputs
      (list pkg-config))
-    (inputs
-     (list brotli))
+    (propagated-inputs
+     (list brotli))                     ;libwoff2dec.pc requires libbrotlidec
     (synopsis "Libraries and tools for WOFF2 font format")
     (description "WOFF2 provides libraries and tools to handle the Web Open
 Font Format (WOFF).")
-- 
2.34.0





^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [bug#54703] [PATCH v3 2/3] gnu: webkitgtk: Update to 2.36.0 and enable extra features.
  2022-04-09 14:42 ` [bug#54703] [PATCH v3 1/3] gnu: woff2: Propagate brotli Maxim Cournoyer
@ 2022-04-09 14:42   ` Maxim Cournoyer
  2022-04-09 14:42   ` [bug#54703] [PATCH v3 3/3] gnu: wpewebkit: Update to 2.36.0 Maxim Cournoyer
  1 sibling, 0 replies; 14+ messages in thread
From: Maxim Cournoyer @ 2022-04-09 14:42 UTC (permalink / raw)
  To: 54703; +Cc: liliana.prikler, Maxim Cournoyer

* gnu/packages/webkit.scm (webkitgtk): Update to 2.36.0.
[source]: Remove the webkitgtk-bind-all-fonts.patch and
webkitgtk-canonicalize-paths.patch patches.
[arguments]: Use gexp.
[tests?]: Update comment.
[build-type]: Add explanatory comment.
[configure-flags]: Enable gamepad support,  remove nonexistent
USE_SYSTEMD option and enable mini-browser.
[phases]{do-not-disable-new-dtags}: New phase.
{help-cmake-find-elogind}: Likewise.
{patch-gtk-doc-scan}: Simplify to avoid for-each.  Locate docbookx.dtd via
search-input-file.
{embed-absolute-wpebackend-reference}: Use search-input-file.
[native-inputs]: Use new style.
[inputs]: Likewise.  Add elogind and libmanette.
[description]: Adjust indentation.
(webkitgtk-with-libsoup2): Re-format comment, fixing spacing.
[configure-flags]: Use gexp.
[propagated-inputs]: Use modify-inputs to replace libsoup with
libsoup-minimal-2.
* gnu/packages/patches/webkitgtk-bind-all-fonts.patch: Delete file.
* gnu/packages/patches/webkitgtk-canonicalize-paths.patch: Likewise.
* gnu/local.mk: De-register them.
---
 gnu/local.mk                                  |   2 -
 .../patches/webkitgtk-bind-all-fonts.patch    |  25 --
 .../webkitgtk-canonicalize-paths.patch        |  66 -----
 gnu/packages/webkit.scm                       | 241 ++++++++++--------
 4 files changed, 132 insertions(+), 202 deletions(-)
 delete mode 100644 gnu/packages/patches/webkitgtk-bind-all-fonts.patch
 delete mode 100644 gnu/packages/patches/webkitgtk-canonicalize-paths.patch

diff --git a/gnu/local.mk b/gnu/local.mk
index b842f311ab..b91e4939ee 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1929,9 +1929,7 @@ dist_patch_DATA =						\
   %D%/packages/patches/vte-CVE-2012-2738-pt2.patch			\
   %D%/packages/patches/vtk-fix-freetypetools-build-failure.patch	\
   %D%/packages/patches/warsow-qfusion-fix-bool-return-type.patch	\
-  %D%/packages/patches/webkitgtk-bind-all-fonts.patch		\
   %D%/packages/patches/webkitgtk-adjust-bubblewrap-paths.patch	\
-  %D%/packages/patches/webkitgtk-canonicalize-paths.patch	\
   %D%/packages/patches/webrtc-audio-processing-big-endian.patch	\
   %D%/packages/patches/websocketpp-fix-for-cmake-3.15.patch	\
   %D%/packages/patches/wicd-bitrate-none-fix.patch		\
diff --git a/gnu/packages/patches/webkitgtk-bind-all-fonts.patch b/gnu/packages/patches/webkitgtk-bind-all-fonts.patch
deleted file mode 100644
index 27013180c4..0000000000
--- a/gnu/packages/patches/webkitgtk-bind-all-fonts.patch
+++ /dev/null
@@ -1,25 +0,0 @@
-Upstream commit: https://github.com/WebKit/WebKit/commit/31ac354cbeecf866f9a38f7b2f8f59f7975d3f6a
-
-diff --git a/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp b/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp
-index ecc804663784..8de174be3c0e 100644
---- a/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp
-+++ b/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp
-@@ -288,6 +288,7 @@ static void bindFonts(Vector<CString>& args)
-     const char* homeDir = g_get_home_dir();
-     const char* dataDir = g_get_user_data_dir();
-     const char* cacheDir = g_get_user_cache_dir();
-+    const char* const * dataDirs = g_get_system_data_dirs();
- 
-     // Configs can include custom dirs but then we have to parse them...
-     GUniquePtr<char> fontConfig(g_build_filename(configDir, "fontconfig", nullptr));
-@@ -304,6 +305,10 @@ static void bindFonts(Vector<CString>& args)
-     bindIfExists(args, fontHomeConfigDir.get());
-     bindIfExists(args, fontData.get());
-     bindIfExists(args, fontHomeData.get());
-+    for (auto* dataDir = dataDirs; dataDir && *dataDir; dataDir++) {
-+        GUniquePtr<char> fontDataDir(g_build_filename(*dataDir, "fonts", nullptr));
-+        bindIfExists(args, fontDataDir.get());
-+    }
-     bindIfExists(args, "/var/cache/fontconfig"); // Used by Debian.
- }
- 
diff --git a/gnu/packages/patches/webkitgtk-canonicalize-paths.patch b/gnu/packages/patches/webkitgtk-canonicalize-paths.patch
deleted file mode 100644
index 741d534831..0000000000
--- a/gnu/packages/patches/webkitgtk-canonicalize-paths.patch
+++ /dev/null
@@ -1,66 +0,0 @@
-Upstream commit: https://github.com/WebKit/WebKit/commit/6a87eb254ef57a986a1a6ce9a3a4b66928afeb65
-
-diff --git a/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp b/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp
-index ecc804663784..a2a1c9d7a4dd 100644
---- a/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp
-+++ b/Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp
-@@ -27,7 +27,6 @@
- #include <seccomp.h>
- #include <sys/ioctl.h>
- #include <sys/mman.h>
--#include <unistd.h>
- #include <wtf/FileSystem.h>
- #include <wtf/UniStdExtras.h>
- #include <wtf/glib/GRefPtr.h>
-@@ -165,6 +164,15 @@ enum class BindFlags {
-     Device,
- };
- 
-+static void bindSymlinksRealPath(Vector<CString>& args, const char* path, const char* bindOption = "--ro-bind")
-+{
-+    WTF::String realPath = FileSystem::realPath(path);
-+    if (path != realPath) {
-+        CString rpath = realPath.utf8();
-+        args.appendVector(Vector<CString>({ bindOption, rpath.data(), rpath.data() }));
-+    }
-+}
-+
- static void bindIfExists(Vector<CString>& args, const char* path, BindFlags bindFlags = BindFlags::ReadOnly)
- {
-     if (!path || path[0] == '\0')
-@@ -177,7 +185,16 @@ static void bindIfExists(Vector<CString>& args, const char* path, BindFlags bind
-         bindType = "--ro-bind-try";
-     else
-         bindType = "--bind-try";
--    args.appendVector(Vector<CString>({ bindType, path, path }));
-+
-+    // Canonicalize the source path, otherwise a symbolic link could
-+    // point to a location outside of the namespace.
-+    bindSymlinksRealPath(args, path, bindType);
-+
-+    // As /etc is exposed wholesale, do not layer extraneous bind
-+    // directives on top, which could fail in the presence of symbolic
-+    // links.
-+    if (!g_str_has_prefix(path, "/etc/"))
-+        args.appendVector(Vector<CString>({ bindType, path, path }));
- }
- 
- static void bindDBusSession(Vector<CString>& args, bool allowPortals)
-@@ -410,17 +427,6 @@ static void bindV4l(Vector<CString>& args)
-     }));
- }
- 
--static void bindSymlinksRealPath(Vector<CString>& args, const char* path)
--{
--    char realPath[PATH_MAX];
--
--    if (realpath(path, realPath) && strcmp(path, realPath)) {
--        args.appendVector(Vector<CString>({
--            "--ro-bind", realPath, realPath,
--        }));
--    }
--}
--
- // Translate a libseccomp error code into an error message. libseccomp
- // mostly returns negative errno values such as -ENOMEM, but some
- // standard errno values are used for non-standard purposes where their
diff --git a/gnu/packages/webkit.scm b/gnu/packages/webkit.scm
index f79d6bd4f6..9c87c02388 100644
--- a/gnu/packages/webkit.scm
+++ b/gnu/packages/webkit.scm
@@ -6,7 +6,7 @@
 ;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Pierre Neidhardt <mail@ambrevar.xyz>
 ;;; Copyright © 2019 Marius Bakke <mbakke@fastmail.com>
-;;; Copyright © 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2021, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -27,6 +27,7 @@ (define-module (gnu packages webkit)
   #:use-module ((guix licenses) #:prefix license:)
   #:use-module (guix packages)
   #:use-module (guix download)
+  #:use-module (guix gexp)
   #:use-module (guix utils)
   #:use-module (guix build utils)
   #:use-module (guix build-system cmake)
@@ -41,6 +42,7 @@ (define-module (gnu packages webkit)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
+  #:use-module (gnu packages games)
   #:use-module (gnu packages gcc)
   #:use-module (gnu packages gettext)
   #:use-module (gnu packages ghostscript)
@@ -239,121 +241,142 @@ (define-public wpewebkit
 (define-public webkitgtk
   (package
     (name "webkitgtk")
-    (version "2.34.6")
+    (version "2.36.0")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://www.webkitgtk.org/releases/"
                                   "webkitgtk-" version ".tar.xz"))
               (sha256
                (base32
-                "1xn1hhd0qaxmjf6vy6664i4mmmjsw9zgrr4w8ni3415d981zvj3b"))
-              (patches (search-patches "webkitgtk-bind-all-fonts.patch"
-                                       "webkitgtk-adjust-bubblewrap-paths.patch"
-                                       "webkitgtk-canonicalize-paths.patch"))))
+                "0kf6avqlq9f74lwzji7l3xlnng5yqarc4ykwsmfmy8q5y6hwqxxq"))
+              (patches (search-patches
+                        "webkitgtk-adjust-bubblewrap-paths.patch"))))
     (build-system cmake-build-system)
     (outputs '("out" "doc" "debug"))
     (arguments
-     `(#:tests? #f ; no tests
-       #:build-type "Release" ; turn off debugging symbols to save space
-       #:configure-flags (list
-                          "-DPORT=GTK"
-                          "-DENABLE_GTKDOC=ON" ; No doc by default
-                          ;; Requires libmanette, new dependency added in 2.32.0.
-                          ;; TODO Decide if we should enable this
-                          "-DENABLE_GAMEPAD=OFF"
-                          "-DUSE_SYSTEMD=OFF"
-                          (string-append ; uses lib64 by default
-                           "-DLIB_INSTALL_DIR="
-                           (assoc-ref %outputs "out") "/lib"))
-       #:make-flags
-       ;; Never build with unsupported -j1: https://issues.guix.gnu.org/47964#5
-       (list "-j" (number->string (max 2 (parallel-job-count))))
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'configure-bubblewrap-store-directory
-           (lambda _
-             ;; This phase is a corollary to 'webkitgtk-share-store.patch' to
-             ;; avoid hard coding /gnu/store, for users with other prefixes.
-             (let ((store-directory (%store-directory)))
-               (substitute*
-                   "Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp"
-                 (("@storedir@") store-directory)))))
-         (add-after 'unpack 'patch-gtk-doc-scan
-           (lambda* (#:key inputs #:allow-other-keys)
-             (for-each (lambda (file)
-                         (substitute* file
-                           (("http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd")
-                            (string-append (assoc-ref inputs "docbook-xml")
-                                           "/xml/dtd/docbook/docbookx.dtd"))))
-                       (find-files "Source" "\\.sgml$"))))
-         (add-after 'unpack 'embed-absolute-wpebackend-reference
-           (lambda* (#:key inputs #:allow-other-keys)
-             (let ((wpebackend-fdo (assoc-ref inputs "wpebackend-fdo")))
-               (substitute* "Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp"
-                 (("libWPEBackend-fdo-([\\.0-9]+)\\.so" all version)
-                  (string-append wpebackend-fdo "/lib/" all))))))
-         ,@(if (target-x86-64?)
-               '()
-               '((add-after 'unpack 'disable-sse2
-                   (lambda _
-                     (substitute* "Source/cmake/WebKitCompilerFlags.cmake"
-                       (("WTF_CPU_X86 AND NOT CMAKE_CROSSCOMPILING")
-                        "FALSE"))))))
-         (add-after 'install 'move-doc-files
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let ((out (assoc-ref outputs "out"))
-                   (doc (assoc-ref outputs "doc")))
-               (mkdir-p (string-append doc "/share"))
-               (rename-file (string-append out "/share/gtk-doc")
-                            (string-append doc "/share/gtk-doc"))))))))
+     (list
+      ;; The release archive doesn't include the resources/sources needed to
+      ;; run the various regression tests.
+      #:tests? #f
+      ;; When building using the default RelWithDebInfo build type, the final
+      ;; binaries require 20 GiB of memory to link (even with ld.gold or lld)
+      ;; and produce 4.6 GiB of debug symbols.
+      #:build-type "Release"
+      #:configure-flags #~(list
+                           "-DPORT=GTK"
+                           ;; GTKDOC will be removed upstream soon in favor of
+                           ;; gi-docgen; it is normally disabled because the
+                           ;; doc is rather expensive to build.
+                           "-DENABLE_GTKDOC=ON"
+                           ;; The minibrowser, not built by default, is a good
+                           ;; tool to validate the good operation of
+                           ;; webkitgtk.
+                           "-DENABLE_MINIBROWSER=ON"
+                           ;; The default lib installation prefix is lib64.
+                           (string-append "-DLIB_INSTALL_DIR=" #$output "/lib"))
+      ;; The build may fail with -j1 (see:
+      ;; https://bugs.webkit.org/show_bug.cgi?id=195251).
+      #:make-flags #~(list "-j" (number->string (max 2 (parallel-job-count))))
+      #:phases
+      #~(modify-phases %standard-phases
+          (add-after 'unpack 'configure-bubblewrap-store-directory
+            (lambda _
+              ;; This phase works in tandem with
+              ;; webkitgtk-adjust-bubblewrap-paths.patch and avoids hard
+              ;; coding /gnu/store, for users with other prefixes.
+              (let ((store-directory (%store-directory)))
+                (substitute*
+                    "Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp"
+                  (("@storedir@") store-directory)))))
+          (add-after 'unpack 'do-not-disable-new-dtags
+            ;; Ensure the linker uses new dynamic tags as this is what Guix
+            ;; uses and validates in the validate-runpath phase.
+            (lambda _
+              (substitute* "Source/cmake/OptionsCommon.cmake"
+                (("if \\(LD_SUPPORTS_DISABLE_NEW_DTAGS\\)")
+                 "if (FALSE)"))))
+          (add-after 'unpack 'help-cmake-find-elogind
+            (lambda _
+              (substitute* "Source/cmake/FindJournald.cmake"
+                ;; Otherwise, CMake would throw an error because it relies on
+                ;; the pkg-config search to locate headers.
+                (("pkg_check_modules\\(PC_SYSTEMD QUIET libsystemd")
+                 "pkg_check_modules(PC_SYSTEMD QUIET libelogind"))))
+          (add-after 'unpack 'patch-gtk-doc-scan
+            (lambda* (#:key native-inputs inputs #:allow-other-keys)
+              (substitute* (find-files "Source" "\\.sgml$")
+                (("http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd")
+                 (search-input-file (or native-inputs inputs)
+                                    "xml/dtd/docbook/docbookx.dtd")))))
+          (add-after 'unpack 'embed-absolute-wpebackend-reference
+            (lambda* (#:key inputs #:allow-other-keys)
+              (let ((wpebackend-fdo (assoc-ref inputs "wpebackend-fdo")))
+                (substitute* "Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp"
+                  (("libWPEBackend-fdo-[\\.0-9]+\\.so" all)
+                   (search-input-file inputs (string-append "lib/" all)))))))
+          #$@(if (target-x86-64?)
+                 '()
+                 '((add-after 'unpack 'disable-sse2
+                     (lambda _
+                       (substitute* "Source/cmake/WebKitCompilerFlags.cmake"
+                         (("WTF_CPU_X86 AND NOT CMAKE_CROSSCOMPILING")
+                          "FALSE"))))))
+          (add-after 'install 'move-doc-files
+            (lambda* (#:key outputs #:allow-other-keys)
+              (let ((doc (assoc-ref outputs "doc")))
+                (mkdir-p (string-append doc "/share"))
+                (rename-file (string-append #$output "/share/gtk-doc")
+                             (string-append doc "/share/gtk-doc"))))))))
     (native-inputs
-     `(("bison" ,bison)
-       ("gettext" ,gettext-minimal)
-       ("glib:bin" ,glib "bin") ; for glib-mkenums, etc.
-       ("gobject-introspection" ,gobject-introspection)
-       ("gperf" ,gperf)
-       ("perl" ,perl)
-       ("pkg-config" ,pkg-config)
-       ("python" ,python-wrapper)
-       ("gtk-doc" ,gtk-doc/stable) ; For documentation generation
-       ("docbook-xml" ,docbook-xml) ; For documentation generation
-       ("ruby" ,ruby)))
+     (list bison
+           gettext-minimal
+           `(,glib "bin")               ;for glib-mkenums, etc.
+           gobject-introspection
+           gperf
+           perl
+           pkg-config
+           python-wrapper
+           ;; These are required to build the documentation.
+           gtk-doc/stable
+           docbook-xml
+           ruby))
     (propagated-inputs
      (list gtk+ libsoup))
     (inputs
-     `(("at-spi2-core" ,at-spi2-core)
-       ("bubblewrap" ,bubblewrap)
-       ("enchant" ,enchant)
-       ("geoclue" ,geoclue)
-       ("gst-plugins-base" ,gst-plugins-base)
-       ("gtk+-2" ,gtk+-2)
-       ("harfbuzz" ,harfbuzz)
-       ("hyphen" ,hyphen)
-       ("icu4c" ,icu4c)
-       ("lcms" ,lcms)
-       ("libgcrypt" ,libgcrypt)
-       ("libjpeg" ,libjpeg-turbo)
-       ("libnotify" ,libnotify)
-       ("libpng" ,libpng)
-       ("libseccomp" ,libseccomp)
-       ("libsecret" ,libsecret)
-       ("libtasn1" ,libtasn1)
-       ("libwebp" ,libwebp)
-       ("libwpe" ,libwpe)
-       ("libxcomposite" ,libxcomposite)
-       ("libxml2" ,libxml2)
-       ("libxslt" ,libxslt)
-       ("libxt" ,libxt)
-       ("mesa" ,mesa)
-       ("openjpeg" ,openjpeg)
-       ("sqlite" ,sqlite)
-       ("woff2" ,woff2)
-       ("wpebackend-fdo" ,wpebackend-fdo)
-       ("xdg-dbus-proxy" ,xdg-dbus-proxy)))
+     (list at-spi2-core
+           bubblewrap
+           elogind
+           enchant
+           geoclue
+           gst-plugins-base
+           gtk+-2
+           harfbuzz
+           hyphen
+           icu4c
+           lcms
+           libgcrypt
+           libjpeg-turbo
+           libmanette
+           libnotify
+           libpng
+           libseccomp
+           libsecret
+           libtasn1
+           libwebp
+           libwpe
+           libxcomposite
+           libxml2
+           libxslt
+           libxt
+           mesa
+           openjpeg
+           sqlite
+           woff2
+           wpebackend-fdo
+           xdg-dbus-proxy))
     (home-page "https://www.webkitgtk.org/")
     (synopsis "Web content engine for GTK+")
-    (description
-     "WebKitGTK+ is a full-featured port of the WebKit rendering engine,
+    (description "WebKitGTK+ is a full-featured port of the WebKit rendering engine,
 suitable for projects requiring any kind of web integration, from hybrid
 HTML/CSS applications to full-fledged web browsers.  WebKitGTK+ video playing
 capabilities can be extended through the use of GStreamer plugins (not
@@ -366,17 +389,17 @@ (define-public webkitgtk
                    license:bsd-2
                    license:bsd-3))))
 
-;;; Required by gnome-online-accounts; as webkitgtk 2.34 propagates libsoup 3,
-;;; which causes the build to fail.
-;;; Also required by e.g. emacs-next-pgtk,  emacs-xwidgets, and some other
-;;; Gnome packages for webkit2gtk-4.0. See also the upstream tracker for
-;;; libsoup 3: https://gitlab.gnome.org/GNOME/libsoup/-/issues/218
+;;; Required by gnome-online-accounts as webkitgtk propagates libsoup 3, which
+;;; causes the build to fail.  Also required by e.g. emacs-next-pgtk,
+;;; emacs-xwidgets, and some other GNOME packages for webkit2gtk-4.0.  See
+;;; also the upstream tracker for libsoup 3:
+;;; https://gitlab.gnome.org/GNOME/libsoup/-/issues/218
 (define-public webkitgtk-with-libsoup2
   (package/inherit webkitgtk
     (name "webkitgtk-with-libsoup2")
     (arguments (substitute-keyword-arguments (package-arguments webkitgtk)
                  ((#:configure-flags flags)
-                  `(cons "-DUSE_SOUP2=ON" ,flags))))
+                  #~(cons "-DUSE_SOUP2=ON" #$flags))))
     (propagated-inputs
-     (alist-replace "libsoup" (list libsoup-minimal-2)
-                    (package-propagated-inputs webkitgtk)))))
+     (modify-inputs (package-propagated-inputs webkitgtk)
+       (replace "libsoup" libsoup-minimal-2)))))
-- 
2.34.0





^ permalink raw reply related	[flat|nested] 14+ messages in thread

* [bug#54703] [PATCH v3 3/3] gnu: wpewebkit: Update to 2.36.0.
  2022-04-09 14:42 ` [bug#54703] [PATCH v3 1/3] gnu: woff2: Propagate brotli Maxim Cournoyer
  2022-04-09 14:42   ` [bug#54703] [PATCH v3 2/3] gnu: webkitgtk: Update to 2.36.0 and enable extra features Maxim Cournoyer
@ 2022-04-09 14:42   ` Maxim Cournoyer
  2022-04-13  5:13     ` bug#54703: [PATCH 0/3] Update webkitgtk to 2.36.0 and enable new features Maxim Cournoyer
  1 sibling, 1 reply; 14+ messages in thread
From: Maxim Cournoyer @ 2022-04-09 14:42 UTC (permalink / raw)
  To: 54703; +Cc: liliana.prikler, Maxim Cournoyer

* gnu/packages/webkit.scm (%webkit-version): New variable.
(wpewebkit): Update to 2.36.0, rewriting package to inherit from webkitgtk.
(webkitgtk)[source]: Use %webkit-version, and adjust definition to match that
of wpewebkit.
---
 gnu/packages/webkit.scm | 145 ++++++++--------------------------------
 1 file changed, 27 insertions(+), 118 deletions(-)

diff --git a/gnu/packages/webkit.scm b/gnu/packages/webkit.scm
index 9c87c02388..476c33a1cd 100644
--- a/gnu/packages/webkit.scm
+++ b/gnu/packages/webkit.scm
@@ -123,132 +123,18 @@ (define-public wpebackend-fdo
 engine that uses Wayland for graphics output.")
     (license license:bsd-2)))
 
-(define-public wpewebkit
-  (package
-    (name "wpewebkit")
-    (version "2.34.3")
-    (source
-     (origin
-       (method url-fetch)
-       (uri
-        (string-append "https://wpewebkit.org/releases/"
-                       name "-" version ".tar.xz"))
-       (sha256
-        (base32 "1z20bza01ld4jvi0qx8xsl5y4czaniwpi8hxdjyirj1mrszy8pf3"))))
-    (build-system cmake-build-system)
-    (outputs '("out" "doc"))
-    (arguments
-     `(#:tests? #f                      ; XXX: To be enabled
-       #:configure-flags
-       (list
-        "-DPORT=WPE"
-        ;; XXX: To be enabled.
-        ;; "-DENABLE_ACCELERATED_2D_CANVAS=ON"
-        "-DUSE_SYSTEMD=OFF"
-        "-DENABLE_ENCRYPTED_MEDIA=OFF"
-        "-DENABLE_GTKDOC=ON"
-        "-DUSE_GSTREAMER_GL=OFF")
-       #:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'setenv
-           (lambda _
-             (setenv "HOME" "/tmp")
-             #t))
-         (add-after 'unpack 'patch-docbook-xml
-           (lambda* (#:key inputs #:allow-other-keys)
-             (for-each
-              (lambda (file)
-                (substitute* file
-                  (("http://www.oasis-open.org/docbook/xml/4.1.2/docbookx.dtd")
-                   (string-append (assoc-ref inputs "docbook-xml")
-                                  "/xml/dtd/docbook/docbookx.dtd"))))
-              (find-files "Source" "\\.sgml$"))
-             #t))
-         (add-after 'unpack 'patch-cmake
-           (lambda _
-             (substitute* "Source/PlatformWPE.cmake"
-               (("(Documentation/wpe(-webextensions)?-)\\$\\{WPE_API_VERSION\\}"
-                 all prefix)
-                (string-append prefix "${WPE_API_DOC_VERSION}"))
-               (("(html/wpe(-webextensions)?-)\\$\\{WPE_API_VERSION\\}"
-                 all prefix)
-                (string-append prefix "${WPE_API_DOC_VERSION}")))))
-         (add-after 'install 'move-doc-files
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (doc (assoc-ref outputs "doc")))
-               (mkdir-p (string-append doc "/share"))
-               (rename-file
-                (string-append out "/share/gtk-doc")
-                (string-append doc "/share/gtk-doc"))
-               #t))))))
-    (native-inputs
-     `(("docbook-xml" ,docbook-xml-4.1.2)
-       ("docbook-xsl" ,docbook-xsl)
-       ("glib:bin" ,glib "bin")
-       ("gobject-introspection" ,gobject-introspection)
-       ("gtk-doc" ,gtk-doc/stable)
-       ("perl" ,perl)
-       ("pkg-config" ,pkg-config)
-       ("python" ,python-wrapper)
-       ("python2" ,python-2.7)
-       ("ruby" ,ruby)))
-    (inputs
-     `(("atk" ,atk)
-       ("atk-bridge" ,at-spi2-atk)
-       ("bubblewrap" ,bubblewrap)
-       ("cairo" ,cairo)
-       ("fontconfig" ,fontconfig)
-       ("freetype" ,freetype)
-       ("gperf" ,gperf)
-       ("gstreamer" ,gstreamer)
-       ("gst-plugins-base" ,gst-plugins-base)
-       ("harfbuzz" ,harfbuzz)
-       ("icu" ,icu4c)
-       ("lcms" ,lcms)
-       ("libepoxy" ,libepoxy)
-       ("libgcrypt" ,libgcrypt)
-       ("libjpeg" ,libjpeg-turbo)
-       ("libpng" ,libpng)
-       ("libseccomp" ,libseccomp)
-       ("libtasn1" ,libtasn1)
-       ("libxml2" ,libxml2)
-       ("libxslt" ,libxslt)
-       ("mesa" ,mesa)
-       ("openjpeg" ,openjpeg)
-       ("sqlite" ,sqlite)
-       ("webp" ,libwebp)
-       ("woff2" ,woff2)
-       ("xdg-dbus-proxy" ,xdg-dbus-proxy)
-       ("zlib" ,zlib)))
-    (propagated-inputs
-     `(("glib" ,glib)
-       ("libsoup" ,libsoup)
-       ("wpe" ,libwpe)))
-    (synopsis "WebKit port optimized for embedded devices")
-    (description "WPE WebKit allows embedders to create simple and performant
-systems based on Web platform technologies.  It is designed with hardware
-acceleration in mind, leveraging common 3D graphics APIs for best performance.")
-    (home-page "https://wpewebkit.org/")
-    (license
-     (list
-      ;; Rendering and JavaScript Engines.
-      license:lgpl2.1+
-      ;; Others
-      license:bsd-2))
-    (properties '((cpe-name . "wpe_webkit")))))
+(define %webkit-version "2.36.0")
 
 (define-public webkitgtk
   (package
     (name "webkitgtk")
-    (version "2.36.0")
+    (version %webkit-version)
     (source (origin
               (method url-fetch)
               (uri (string-append "https://www.webkitgtk.org/releases/"
-                                  "webkitgtk-" version ".tar.xz"))
+                                  name "-" version ".tar.xz"))
               (sha256
-               (base32
-                "0kf6avqlq9f74lwzji7l3xlnng5yqarc4ykwsmfmy8q5y6hwqxxq"))
+               (base32 "0kf6avqlq9f74lwzji7l3xlnng5yqarc4ykwsmfmy8q5y6hwqxxq"))
               (patches (search-patches
                         "webkitgtk-adjust-bubblewrap-paths.patch"))))
     (build-system cmake-build-system)
@@ -403,3 +289,26 @@ (define-public webkitgtk-with-libsoup2
     (propagated-inputs
      (modify-inputs (package-propagated-inputs webkitgtk)
        (replace "libsoup" libsoup-minimal-2)))))
+
+(define-public wpewebkit
+  (package
+    (inherit webkitgtk)
+    (name "wpewebkit")
+    (version %webkit-version)
+    (source (origin
+              (inherit (package-source webkitgtk))
+              (uri (string-append "https://wpewebkit.org/releases/"
+                                  name "-" version ".tar.xz"))
+              (sha256
+               (base32 "0nkdx6pckbkhs85z3pidnh4cbp0wfa38lf2qyn0grywvgpwajsh9"))))
+    (arguments
+     (substitute-keyword-arguments (package-arguments webkitgtk)
+       ((#:configure-flags flags)
+        #~(cons "-DPORT=WPE"
+                (delete "-DPORT=GTK" #$flags)))))
+    (synopsis "WebKit port optimized for embedded devices")
+    (description "WPE WebKit allows embedders to create simple and performant
+systems based on Web platform technologies.  It is designed with hardware
+acceleration in mind, leveraging common 3D graphics APIs for best performance.")
+    (home-page "https://wpewebkit.org/")
+    (properties '((cpe-name . "wpe_webkit")))))
-- 
2.34.0





^ permalink raw reply related	[flat|nested] 14+ messages in thread

* bug#54703: [PATCH 0/3] Update webkitgtk to 2.36.0 and enable new features.
  2022-04-09 14:42   ` [bug#54703] [PATCH v3 3/3] gnu: wpewebkit: Update to 2.36.0 Maxim Cournoyer
@ 2022-04-13  5:13     ` Maxim Cournoyer
  0 siblings, 0 replies; 14+ messages in thread
From: Maxim Cournoyer @ 2022-04-13  5:13 UTC (permalink / raw)
  To: 54703-done; +Cc: liliana.prikler

Hello,

Maxim Cournoyer <maxim.cournoyer@gmail.com> writes:

> * gnu/packages/webkit.scm (%webkit-version): New variable.
> (wpewebkit): Update to 2.36.0, rewriting package to inherit from webkitgtk.
> (webkitgtk)[source]: Use %webkit-version, and adjust definition to match that
> of wpewebkit.

I've gone ahead and submitted this series as
7bd5394bf8564920a4e647563dc8c0092858f8dd.

Closing.

Thank you!

Maxim




^ permalink raw reply	[flat|nested] 14+ messages in thread

end of thread, other threads:[~2022-04-13  5:15 UTC | newest]

Thread overview: 14+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2022-04-04  4:15 [bug#54703] [PATCH 0/3] Update webkitgtk to 2.36.0 and enable new features Maxim Cournoyer
2022-04-04  4:17 ` [bug#54703] [PATCH 1/3] gnu: woff2: Propagate brotli Maxim Cournoyer
2022-04-04  4:17   ` [bug#54703] [PATCH 2/3] gnu: webkitgtk: Update to 2.36.0 and enable extra features Maxim Cournoyer
2022-04-04  4:17   ` [bug#54703] [PATCH 3/3] gnu: wpewebkit: Update to 2.36.0 Maxim Cournoyer
2022-04-04  6:14     ` Liliana Marie Prikler
2022-04-05  0:26       ` Maxim Cournoyer
2022-04-05  0:27       ` [bug#54703] [PATCH v2 1/3] gnu: woff2: Propagate brotli Maxim Cournoyer
2022-04-05  0:27       ` [bug#54703] [PATCH v2 2/3] gnu: webkitgtk: Update to 2.36.0 and enable extra features Maxim Cournoyer
2022-04-05  5:59         ` Liliana Marie Prikler
2022-04-05  0:27       ` [bug#54703] [PATCH v2 3/3] gnu: wpewebkit: Update to 2.36.0 Maxim Cournoyer
2022-04-09 14:42 ` [bug#54703] [PATCH v3 1/3] gnu: woff2: Propagate brotli Maxim Cournoyer
2022-04-09 14:42   ` [bug#54703] [PATCH v3 2/3] gnu: webkitgtk: Update to 2.36.0 and enable extra features Maxim Cournoyer
2022-04-09 14:42   ` [bug#54703] [PATCH v3 3/3] gnu: wpewebkit: Update to 2.36.0 Maxim Cournoyer
2022-04-13  5:13     ` bug#54703: [PATCH 0/3] Update webkitgtk to 2.36.0 and enable new features Maxim Cournoyer

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