summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gnu/local.mk1
-rw-r--r--gnu/packages/patches/webkitgtk-libelogind.patch38
-rw-r--r--gnu/packages/webkit.scm62
3 files changed, 71 insertions, 30 deletions
diff --git a/gnu/local.mk b/gnu/local.mk
index 1231d37234..e9c8ddf6a3 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -2005,6 +2005,7 @@ dist_patch_DATA = \
%D%/packages/patches/warsow-qfusion-fix-bool-return-type.patch \
%D%/packages/patches/wdl-link-libs-and-fix-jnetlib.patch \
%D%/packages/patches/webkitgtk-adjust-bubblewrap-paths.patch \
+ %D%/packages/patches/webkitgtk-libelogind.patch \
%D%/packages/patches/webrtc-audio-processing-big-endian.patch \
%D%/packages/patches/webrtc-for-telegram-desktop-fix-gcc12-cstdint.patch \
%D%/packages/patches/websocketpp-fix-for-cmake-3.15.patch \
diff --git a/gnu/packages/patches/webkitgtk-libelogind.patch b/gnu/packages/patches/webkitgtk-libelogind.patch
new file mode 100644
index 0000000000..fa1fbc8783
--- /dev/null
+++ b/gnu/packages/patches/webkitgtk-libelogind.patch
@@ -0,0 +1,38 @@
+From 8d46803c09edc2b6d4e35c778a3d2f90e5baad0b Mon Sep 17 00:00:00 2001
+From: Maxim Cournoyer <maxim.cournoyer@gmail.com>
+Date: Sat, 25 Mar 2023 22:55:16 -0400
+Subject: [PATCH] Fallback to elogind when systemd is unavailable at build time
+ https://bugs.webkit.org/show_bug.cgi?id=254475
+
+Reviewed by NOBODY (OOPS!).
+
+The build system supports elogind, but it only considers the
+'libsystemd' library name for the pkg-config lookup and not
+'libelogind'. This change makes the build system fallback to search
+for libelogind when libsystemd was not found.
+
+* Source/cmake/FindJournald.cmake [!PC_SYSTEMD_FOUND]: Search for libelogind.
+---
+ Source/cmake/FindJournald.cmake | 4 ++++
+ 1 file changed, 4 insertions(+)
+
+diff --git a/Source/cmake/FindJournald.cmake b/Source/cmake/FindJournald.cmake
+index 18dd6b50908c..e0dc9ce1d397 100644
+--- a/Source/cmake/FindJournald.cmake
++++ b/Source/cmake/FindJournald.cmake
+@@ -55,6 +55,10 @@ find_package(PkgConfig QUIET)
+
+ # libelogind provides compatible pc and header files
+ pkg_check_modules(PC_SYSTEMD QUIET libsystemd)
++if (NOT PC_SYSTEMD_FOUND)
++ pkg_check_modules(PC_SYSTEMD QUIET libelogind)
++endif ()
++
+ set(Journald_COMPILE_OPTIONS ${PC_SYSTEMD_CFLAGS_OTHER})
+ set(Journald_VERSION ${PC_SYSTEMD_VERSION})
+
+
+base-commit: 43ea8744bc6065aad7ae5988e32d31d253905e5f
+--
+2.39.2
+
diff --git a/gnu/packages/webkit.scm b/gnu/packages/webkit.scm
index 0a51479985..e5eafcb142 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, 2022 Maxim Cournoyer <maxim.cournoyer@gmail.com>
+;;; Copyright © 2021, 2022, 2023 Maxim Cournoyer <maxim.cournoyer@gmail.com>
;;; Copyright © 2022, 2023 Efraim Flashner <efraim@flashner.co.il>
;;;
;;; This file is part of GNU Guix.
@@ -36,6 +36,7 @@
#:use-module (gnu packages)
#:use-module (gnu packages base)
#:use-module (gnu packages bison)
+ #:use-module (gnu packages c)
#:use-module (gnu packages compression)
#:use-module (gnu packages docbook)
#:use-module (gnu packages enchant)
@@ -123,20 +124,19 @@ the WPE-flavored port of WebKit.")
engine that uses Wayland for graphics output.")
(license license:bsd-2)))
-(define %webkit-version "2.38.5")
-
(define-public webkitgtk
(package
(name "webkitgtk") ; webkit2gtk4
- (version %webkit-version)
+ (version "2.40.0")
(source (origin
(method url-fetch)
(uri (string-append "https://www.webkitgtk.org/releases/"
name "-" version ".tar.xz"))
(sha256
- (base32 "19y1n05mp370mq4bp2bk0pm3wk49z9a10azjjdcdyx12091hrhj0"))
+ (base32 "14xkgamqlshxqw6fcslvw0yzj4y5mvx66b6bn64rwrl9pyhpwq54"))
(patches (search-patches
- "webkitgtk-adjust-bubblewrap-paths.patch"))))
+ "webkitgtk-adjust-bubblewrap-paths.patch"
+ "webkitgtk-libelogind.patch"))))
(build-system cmake-build-system)
(outputs '("out" "doc" "debug"))
(arguments
@@ -148,18 +148,26 @@ engine that uses Wayland for graphics output.")
;; 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"))
+ #: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")
+ ;; XXX: WebKitGTK makes use of elogind's systemd-compatible
+ ;; headers, which are under the include/elogind prefix. The WTF
+ ;; component doesn't propagate the Journald header correctly
+ ;; detected (stubs from elogind), hence the following hack (see:
+ ;; https://bugs.webkit.org/show_bug.cgi?id=254495).
+ (string-append "-DCMAKE_CXX_FLAGS=-I"
+ (search-input-directory
+ %build-inputs "include/elogind")))
;; 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))))
@@ -186,13 +194,6 @@ engine that uses Wayland for graphics output.")
(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 'embed-absolute-wpebackend-reference
(lambda* (#:key inputs #:allow-other-keys)
(let ((wpebackend-fdo (assoc-ref inputs "wpebackend-fdo")))
@@ -222,7 +223,8 @@ engine that uses Wayland for graphics output.")
pkg-config
python-wrapper
gi-docgen
- ruby))
+ ruby
+ unifdef))
(propagated-inputs
(list gtk+ libsoup))
(inputs
@@ -233,11 +235,11 @@ engine that uses Wayland for graphics output.")
geoclue
gst-plugins-base
gst-plugins-bad-minimal
- gtk+-2
harfbuzz
hyphen
icu4c
lcms
+ libavif
libgcrypt
libgudev
libjpeg-turbo
@@ -290,7 +292,7 @@ propagated by default) such as @code{gst-plugins-good} and
(replace "gtk+" gtk)))
(inputs
(modify-inputs (package-inputs webkitgtk)
- (delete "gtk+-2" "libnotify")
+ (delete "libnotify")
(append pango-next))))) ;TODO: remove after it's the default
;;; Required by e.g. emacs-next-pgtk, emacs-xwidgets, and some other GNOME
@@ -310,13 +312,13 @@ propagated by default) such as @code{gst-plugins-good} and
(package
(inherit webkitgtk)
(name "wpewebkit")
- (version %webkit-version)
+ (version "2.40.0")
(source (origin
(inherit (package-source webkitgtk))
(uri (string-append "https://wpewebkit.org/releases/"
name "-" version ".tar.xz"))
(sha256
- (base32 "0q8nmk9l6bqv2bhljm9wv7mvgdl393z7v2m7a0c5avac18yzs07z"))))
+ (base32 "1dl663nbm011sx099x9gdhk3aj119yn5rxp77jmnhdv1l77jpv58"))))
(arguments
(substitute-keyword-arguments (package-arguments webkitgtk)
((#:configure-flags flags)