From 4ec7aac483e882d4c93a01e97a4ab502a2abf7b3 Mon Sep 17 00:00:00 2001 From: Maxim Cournoyer Date: Fri, 1 Apr 2022 23:03:15 -0400 Subject: gnu: webkitgtk: Update to 2.36.0 and enable extra features. * 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. --- .../patches/webkitgtk-bind-all-fonts.patch | 25 -------- .../patches/webkitgtk-canonicalize-paths.patch | 66 ---------------------- 2 files changed, 91 deletions(-) delete mode 100644 gnu/packages/patches/webkitgtk-bind-all-fonts.patch delete mode 100644 gnu/packages/patches/webkitgtk-canonicalize-paths.patch (limited to 'gnu/packages/patches') 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& 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 fontConfig(g_build_filename(configDir, "fontconfig", nullptr)); -@@ -304,6 +305,10 @@ static void bindFonts(Vector& args) - bindIfExists(args, fontHomeConfigDir.get()); - bindIfExists(args, fontData.get()); - bindIfExists(args, fontHomeData.get()); -+ for (auto* dataDir = dataDirs; dataDir && *dataDir; dataDir++) { -+ GUniquePtr 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 - #include - #include --#include - #include - #include - #include -@@ -165,6 +164,15 @@ enum class BindFlags { - Device, - }; - -+static void bindSymlinksRealPath(Vector& 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({ bindOption, rpath.data(), rpath.data() })); -+ } -+} -+ - static void bindIfExists(Vector& args, const char* path, BindFlags bindFlags = BindFlags::ReadOnly) - { - if (!path || path[0] == '\0') -@@ -177,7 +185,16 @@ static void bindIfExists(Vector& args, const char* path, BindFlags bind - bindType = "--ro-bind-try"; - else - bindType = "--bind-try"; -- args.appendVector(Vector({ 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({ bindType, path, path })); - } - - static void bindDBusSession(Vector& args, bool allowPortals) -@@ -410,17 +427,6 @@ static void bindV4l(Vector& args) - })); - } - --static void bindSymlinksRealPath(Vector& args, const char* path) --{ -- char realPath[PATH_MAX]; -- -- if (realpath(path, realPath) && strcmp(path, realPath)) { -- args.appendVector(Vector({ -- "--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 -- cgit v1.2.3