Upgrade to WebKitGTK 2.40.0 and webkitgtk-6.0

This contains an ABI break for GTK 4 applications. I will rebuild
affected dependencies in Fedora 37.
This commit is contained in:
Michael Catanzaro 2023-03-17 13:46:47 -05:00
parent cbe881757c
commit 2a1caaa0a2
4 changed files with 132 additions and 79 deletions

1
.gitignore vendored
View File

@ -8,3 +8,4 @@
/webkitgtk-2.38.3.tar.xz.asc
/webkitgtk-2.38.4.tar.xz.asc
/webkitgtk-2.38.5.tar.xz.asc
/webkitgtk-2.40.0.tar.xz.asc

View File

@ -1,2 +1,2 @@
SHA512 (webkitgtk-2.38.5.tar.xz) = 9038892910e95d3b7819396c9071b59ee51eadd6cad62130fdd4e02d3f5187b7a2986c5939a378190e14059149f2db0a0b57feb23ac44f5ea764c160e6181eef
SHA512 (webkitgtk-2.38.5.tar.xz.asc) = 94e798d27f9b890e9f1cab1d7368e4830fd6b9a59f0b96a8fdba50fb304bbed0c2fc5908d409610cebee6a2b69356c64270de8d89bfcac3cd6d8b4bf71fa4050
SHA512 (webkitgtk-2.40.0.tar.xz) = 550dafb31d71edf984d6b7636366f839d31f6b244b87f83c6efe7af17efe3f2f63268d2c39a6a3c474afadf2b30df868efaefcf38197b30cc6b11c63de7d2ddc
SHA512 (webkitgtk-2.40.0.tar.xz.asc) = 782887d27adad7791dd4dc8e070c9c10c711da70907bddf988b739d03c3e2f3d49f433e3afc325801cf42aebe9689110122d6145b69d9696bf8eef5ae525062c

View File

@ -0,0 +1,35 @@
From 7bcb97382f2f347dc348c3c31416ae7fd760ce6b Mon Sep 17 00:00:00 2001
From: Michael Catanzaro <mcatanzaro@redhat.com>
Date: Fri, 17 Mar 2023 15:39:52 -0500
Subject: [PATCH] REGRESSION(261320@main): [GLib] Broke
WebKitUserContentManager::script-message-received
https://bugs.webkit.org/show_bug.cgi?id=254089
Reviewed by NOBODY (OOPS!).
I forgot to update the marshaller used by
WebKitUserContentManager::script-message-received. It worked perfectly
fine in my development environment for whatever reason, but was broken
in at least Ephy Tech Preview.
* Source/WebKit/UIProcess/API/glib/WebKitUserContentManager.cpp:
---
Source/WebKit/UIProcess/API/glib/WebKitUserContentManager.cpp | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/Source/WebKit/UIProcess/API/glib/WebKitUserContentManager.cpp b/Source/WebKit/UIProcess/API/glib/WebKitUserContentManager.cpp
index af2d963bb3b3..f778b19bc816 100644
--- a/Source/WebKit/UIProcess/API/glib/WebKitUserContentManager.cpp
+++ b/Source/WebKit/UIProcess/API/glib/WebKitUserContentManager.cpp
@@ -106,7 +106,11 @@ static void webkit_user_content_manager_class_init(WebKitUserContentManagerClass
G_TYPE_FROM_CLASS(gObjectClass),
static_cast<GSignalFlags>(G_SIGNAL_RUN_LAST | G_SIGNAL_DETAILED),
0, nullptr, nullptr,
+#if ENABLE(2022_GLIB_API)
+ g_cclosure_marshal_VOID__OBJECT,
+#else
g_cclosure_marshal_VOID__BOXED,
+#endif
G_TYPE_NONE, 1,
#if ENABLE(2022_GLIB_API)
JSC_TYPE_VALUE);

View File

@ -16,7 +16,7 @@
%bcond_without docs
Name: webkitgtk
Version: 2.38.5
Version: 2.40.0
Release: %autorelease
Summary: GTK web content engine library
@ -29,6 +29,9 @@ Source1: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz.asc
# $ gpg --export --export-options export-minimal D7FCF61CF9A2DEAB31D81BD3F3D322D0EC4582C3 5AA3BC334FD7E3369E7C77B291C559DBE4C9123B > webkitgtk-keys.gpg
Source2: webkitgtk-keys.gpg
# https://github.com/WebKit/WebKit/pull/11664
Patch0: unbreak-script-message-received.patch
BuildRequires: bison
BuildRequires: bubblewrap
BuildRequires: cmake
@ -42,6 +45,7 @@ BuildRequires: gperf
BuildRequires: hyphen-devel
BuildRequires: libatomic
BuildRequires: ninja-build
BuildRequires: openssl-devel
BuildRequires: perl(English)
BuildRequires: perl(FindBin)
BuildRequires: perl(JSON::PP)
@ -49,6 +53,7 @@ BuildRequires: python3
BuildRequires: ruby
BuildRequires: rubygems
BuildRequires: rubygem-json
BuildRequires: unifdef
BuildRequires: xdg-dbus-proxy
BuildRequires: pkgconfig(atspi-2)
@ -62,12 +67,14 @@ BuildRequires: pkgconfig(glib-2.0)
BuildRequires: pkgconfig(glesv2)
BuildRequires: pkgconfig(gobject-introspection-1.0)
BuildRequires: pkgconfig(gstreamer-1.0)
BuildRequires: pkgconfig(gstreamer-plugins-bad-1.0)
BuildRequires: pkgconfig(gstreamer-plugins-base-1.0)
BuildRequires: pkgconfig(gtk+-3.0)
BuildRequires: pkgconfig(gtk4)
BuildRequires: pkgconfig(harfbuzz)
BuildRequires: pkgconfig(icu-uc)
BuildRequires: pkgconfig(lcms2)
BuildRequires: pkgconfig(libavif)
BuildRequires: pkgconfig(libgcrypt)
BuildRequires: pkgconfig(libjpeg)
BuildRequires: pkgconfig(libnotify)
@ -97,15 +104,15 @@ BuildRequires: pkgconfig(wpebackend-fdo-1.0)
BuildRequires: pkgconfig(xt)
# Filter out provides for private libraries
%global __provides_exclude_from ^(%{_libdir}/webkit2gtk-4\\.0/.*\\.so|%{_libdir}/webkit2gtk-4\\.1/.*\\.so|%{_libdir}/webkit2gtk-5\\.0/.*\\.so)$
%global __provides_exclude_from ^(%{_libdir}/webkit2gtk-4\\.0/.*\\.so|%{_libdir}/webkit2gtk-4\\.1/.*\\.so|%{_libdir}/webkitgtk-6\\.0/.*\\.so)$
%description
WebKitGTK is the port of the WebKit web rendering engine to the
GTK platform.
%package -n webkit2gtk5.0
%package -n webkitgtk6.0
Summary: WebKitGTK for GTK 4
Requires: javascriptcoregtk5.0%{?_isa} = %{version}-%{release}
Requires: javascriptcoregtk6.0%{?_isa} = %{version}-%{release}
Requires: bubblewrap
Requires: xdg-dbus-proxy
Recommends: geoclue2
@ -115,8 +122,9 @@ Recommends: xdg-desktop-portal-gtk
Provides: bundled(angle)
Provides: bundled(pdfjs)
Provides: bundled(xdgmime)
Obsoletes: webkit2gtk5.0 < %{version}-%{release}
%description -n webkit2gtk5.0
%description -n webkitgtk6.0
WebKitGTK is the port of the WebKit web rendering engine to the
GTK platform. This package contains WebKitGTK for GTK 4.
@ -158,15 +166,16 @@ Provides: webkit2gtk3 = %{version}-%{release}
WebKitGTK is the port of the WebKit web rendering engine to the
GTK platform. This package contains WebKitGTK for GTK 3 and libsoup 2.
%package -n webkit2gtk5.0-devel
Summary: Development files for webkit2gtk5.0
Requires: webkit2gtk5.0%{?_isa} = %{version}-%{release}
Requires: javascriptcoregtk5.0%{?_isa} = %{version}-%{release}
Requires: javascriptcoregtk5.0-devel%{?_isa} = %{version}-%{release}
%package -n webkitgtk6.0-devel
Summary: Development files for webkitgtk6.0
Requires: webkitgtk6.0%{?_isa} = %{version}-%{release}
Requires: javascriptcoregtk6.0%{?_isa} = %{version}-%{release}
Requires: javascriptcoregtk6.0-devel%{?_isa} = %{version}-%{release}
Obsoletes: webkit2gtk5.0-devel < %{version}-%{release}
%description -n webkit2gtk5.0-devel
The webkit2gtk5.0-devel package contains libraries, build data, and header
files for developing applications that use webkit2gtk5.0.
%description -n webkitgtk6.0-devel
The webkitgtk6.0-devel package contains libraries, build data, and header
files for developing applications that use webkitgtk6.0.
%package -n webkit2gtk4.1-devel
Summary: Development files for webkit2gtk4.1
@ -193,18 +202,21 @@ The webkit2gtk4.0-devel package contains libraries, build data, and header
files for developing applications that use webkit2gtk4.0.
%if %{with docs}
%package -n webkit2gtk5.0-doc
%package -n webkitgtk6.0-doc
Summary: Documentation files for webkit2gtk5.0
BuildArch: noarch
Requires: webkit2gtk5.0 = %{version}-%{release}
Requires: webkitgtk6.0 = %{version}-%{release}
Obsoletes: webkit2gtk5.0-doc < %{version}-%{release}
Recommends: gi-docgen-fonts
%description -n webkit2gtk5.0-doc
This package contains developer documentation for webkit2gtk5.0.
%description -n webkitgtk6.0-doc
This package contains developer documentation for webkitgtk6.0.
%package -n webkit2gtk4.1-doc
Summary: Documentation files for webkit2gtk4.1
BuildArch: noarch
Requires: webkit2gtk4.1 = %{version}-%{release}
Recommends: gi-docgen-fonts
%description -n webkit2gtk4.1-doc
This package contains developer documentation for webkit2gtk4.1.
@ -217,23 +229,25 @@ Obsoletes: webkitgtk4-doc < %{version}-%{release}
Provides: webkitgtk4-doc = %{version}-%{release}
Obsoletes: webkit2gtk3-doc < %{version}-%{release}
Provides: webkit2gtk3-doc = %{version}-%{release}
Recommends: gi-docgen-fonts
%description -n webkit2gtk4.0-doc
This package contains developer documentation for webkit2gtk4.0.
%endif
%package -n javascriptcoregtk5.0
Summary: JavaScript engine from webkit2gtk5.0
%package -n javascriptcoregtk6.0
Summary: JavaScript engine from webkitgtk6.0
Obsoletes: javascriptcoregtk5.0 < %{version}-%{release}
%description -n javascriptcoregtk5.0
This package contains JavaScript engine from webkit2gtk5.0.
%description -n javascriptcoregtk6.0
This package contains the JavaScript engine from webkitgtk6.0.
%package -n javascriptcoregtk4.1
Summary: JavaScript engine from webkit2gtk4.1
Obsoletes: webkit2gtk4.1-jsc < %{version}-%{release}
%description -n javascriptcoregtk4.1
This package contains JavaScript engine from webkit2gtk4.1.
This package contains the JavaScript engine from webkit2gtk4.1.
%package -n javascriptcoregtk4.0
Summary: JavaScript engine from webkit2gtk4.0
@ -243,15 +257,16 @@ Obsoletes: webkit2gtk3-jsc < %{version}-%{release}
Provides: webkit2gtk3-jsc = %{version}-%{release}
%description -n javascriptcoregtk4.0
This package contains JavaScript engine from webkit2gtk4.0.
This package contains the JavaScript engine from webkit2gtk4.0.
%package -n javascriptcoregtk5.0-devel
Summary: Development files for JavaScript engine from webkit2gtk5.0
Requires: javascriptcoregtk5.0%{?_isa} = %{version}-%{release}
%package -n javascriptcoregtk6.0-devel
Summary: Development files for JavaScript engine from webkitgtk6.0
Requires: javascriptcoregtk6.0%{?_isa} = %{version}-%{release}
Obsoletes: javascriptcoregtk5.0-devel < %{version}-%{release}
%description -n javascriptcoregtk5.0-devel
The javascriptcoregtk5.0-devel package contains libraries, build data, and header
files for developing applications that use JavaScript engine from webkit2gtk-5.0.
%description -n javascriptcoregtk6.0-devel
The javascriptcoregtk6.0-devel package contains libraries, build data, and header
files for developing applications that use JavaScript engine from webkitgtk-6.0.
%package -n javascriptcoregtk4.1-devel
Summary: Development files for JavaScript engine from webkit2gtk4.1
@ -300,13 +315,20 @@ files for developing applications that use JavaScript engine from webkit2gtk-4.0
%global optflags %(echo %{optflags} | sed 's/-g /-g1 /')
%endif
%define _vpath_builddir %{_vendor}-%{_target_os}-build/webkit2gtk-5.0
# JIT is broken on ARM systems with new ARMv8.5 BTI extension at the moment
# Cf. https://bugzilla.redhat.com/show_bug.cgi?id=2130009
# Cf. https://bugs.webkit.org/show_bug.cgi?id=245697
# Disable BTI until this is fixed upstream.
%ifarch aarch64
%global optflags %(echo %{optflags} | sed 's/-mbranch-protection=standard /-mbranch-protection=pac-ret /')
%endif
%define _vpath_builddir %{_vendor}-%{_target_os}-build/webkitgtk-6.0
%cmake \
-GNinja \
-DPORT=GTK \
-DCMAKE_BUILD_TYPE=Release \
-DUSE_GTK4=ON \
-DENABLE_WEBDRIVER=OFF \
%if %{without docs}
-DENABLE_DOCUMENTATION=OFF \
%endif
@ -315,8 +337,7 @@ files for developing applications that use JavaScript engine from webkit2gtk-4.0
%endif
%if 0%{?rhel}
%ifarch aarch64
-DENABLE_JIT=OFF \
-DUSE_SYSTEM_MALLOC=ON \
-DUSE_64KB_PAGE_BLOCK=ON \
%endif
%endif
%{nil}
@ -326,6 +347,7 @@ files for developing applications that use JavaScript engine from webkit2gtk-4.0
-GNinja \
-DPORT=GTK \
-DCMAKE_BUILD_TYPE=Release \
-DENABLE_WEBDRIVER=OFF \
%if %{without docs}
-DENABLE_DOCUMENTATION=OFF \
%endif
@ -354,13 +376,12 @@ files for developing applications that use JavaScript engine from webkit2gtk-4.0
%endif
%if 0%{?rhel}
%ifarch aarch64
-DENABLE_JIT=OFF \
-DUSE_SYSTEM_MALLOC=ON \
-DUSE_64KB_PAGE_BLOCK=ON \
%endif
%endif
%{nil}
%define _vpath_builddir %{_vendor}-%{_target_os}-build/webkit2gtk-5.0
%define _vpath_builddir %{_vendor}-%{_target_os}-build/webkitgtk-6.0
export NINJA_STATUS="[1/3][%f/%t %es] "
%cmake_build %limit_build -m 3072
@ -373,7 +394,7 @@ export NINJA_STATUS="[3/3][%f/%t %es] "
%cmake_build %limit_build -m 3072
%install
%define _vpath_builddir %{_vendor}-%{_target_os}-build/webkit2gtk-5.0
%define _vpath_builddir %{_vendor}-%{_target_os}-build/webkitgtk-6.0
%cmake_install
%define _vpath_builddir %{_vendor}-%{_target_os}-build/webkit2gtk-4.1
@ -382,14 +403,13 @@ export NINJA_STATUS="[3/3][%f/%t %es] "
%define _vpath_builddir %{_vendor}-%{_target_os}-build/webkit2gtk-4.0
%cmake_install
%find_lang WebKit2GTK-5.0
%find_lang WebKit2GTK-4.1
%find_lang WebKit2GTK-4.0
%find_lang WebKitGTK-6.0
%find_lang WebKitGTK-4.1
%find_lang WebKitGTK-4.0
# Finally, copy over and rename various files for %%license inclusion
%add_to_license_files Source/JavaScriptCore/COPYING.LIB
%add_to_license_files Source/ThirdParty/ANGLE/LICENSE
%add_to_license_files Source/ThirdParty/ANGLE/src/common/third_party/smhasher/LICENSE
%add_to_license_files Source/ThirdParty/ANGLE/src/third_party/libXNVCtrl/LICENSE
%add_to_license_files Source/WebCore/LICENSE-APPLE
%add_to_license_files Source/WebCore/LICENSE-LGPL-2
@ -401,22 +421,22 @@ export NINJA_STATUS="[3/3][%f/%t %es] "
%add_to_license_files Source/WTF/wtf/dtoa/COPYING
%add_to_license_files Source/WTF/wtf/dtoa/LICENSE
%files -n webkit2gtk5.0 -f WebKit2GTK-5.0.lang
%files -n webkitgtk6.0 -f WebKitGTK-6.0.lang
%license _license_files/*ThirdParty*
%license _license_files/*WebCore*
%license _license_files/*WebInspectorUI*
%license _license_files/*WTF*
%{_libdir}/libwebkit2gtk-5.0.so.0*
%{_libdir}/libwebkitgtk-6.0.so.4*
%dir %{_libdir}/girepository-1.0
%{_libdir}/girepository-1.0/WebKit2-5.0.typelib
%{_libdir}/girepository-1.0/WebKit2WebExtension-5.0.typelib
%{_libdir}/webkit2gtk-5.0/
%{_libexecdir}/webkit2gtk-5.0/
%exclude %{_libexecdir}/webkit2gtk-5.0/MiniBrowser
%exclude %{_libexecdir}/webkit2gtk-5.0/jsc
%{_libdir}/girepository-1.0/WebKit-6.0.typelib
%{_libdir}/girepository-1.0/WebKitWebProcessExtension-6.0.typelib
%{_libdir}/webkitgtk-6.0/
%{_libexecdir}/webkitgtk-6.0/
%exclude %{_libexecdir}/webkitgtk-6.0/MiniBrowser
%exclude %{_libexecdir}/webkitgtk-6.0/jsc
%{_bindir}/WebKitWebDriver
%files -n webkit2gtk4.1 -f WebKit2GTK-4.1.lang
%files -n webkit2gtk4.1 -f WebKitGTK-4.1.lang
%license _license_files/*ThirdParty*
%license _license_files/*WebCore*
%license _license_files/*WebInspectorUI*
@ -429,9 +449,8 @@ export NINJA_STATUS="[3/3][%f/%t %es] "
%{_libexecdir}/webkit2gtk-4.1/
%exclude %{_libexecdir}/webkit2gtk-4.1/MiniBrowser
%exclude %{_libexecdir}/webkit2gtk-4.1/jsc
%{_bindir}/WebKitWebDriver
%files -n webkit2gtk4.0 -f WebKit2GTK-4.0.lang
%files -n webkit2gtk4.0 -f WebKitGTK-4.0.lang
%license _license_files/*ThirdParty*
%license _license_files/*WebCore*
%license _license_files/*WebInspectorUI*
@ -445,17 +464,16 @@ export NINJA_STATUS="[3/3][%f/%t %es] "
%exclude %{_libexecdir}/webkit2gtk-4.0/MiniBrowser
%exclude %{_libexecdir}/webkit2gtk-4.0/jsc
%files -n webkit2gtk5.0-devel
%{_libexecdir}/webkit2gtk-5.0/MiniBrowser
%{_includedir}/webkitgtk-5.0/
%exclude %{_includedir}/webkitgtk-5.0/JavaScriptCore
%exclude %{_includedir}/webkitgtk-5.0/jsc
%{_libdir}/libwebkit2gtk-5.0.so
%{_libdir}/pkgconfig/webkit2gtk-5.0.pc
%{_libdir}/pkgconfig/webkit2gtk-web-extension-5.0.pc
%files -n webkitgtk6.0-devel
%{_libexecdir}/webkitgtk-6.0/MiniBrowser
%{_includedir}/webkitgtk-6.0/
%exclude %{_includedir}/webkitgtk-6.0/jsc
%{_libdir}/libwebkitgtk-6.0.so
%{_libdir}/pkgconfig/webkitgtk-6.0.pc
%{_libdir}/pkgconfig/webkitgtk-web-process-extension-6.0.pc
%dir %{_datadir}/gir-1.0
%{_datadir}/gir-1.0/WebKit2-5.0.gir
%{_datadir}/gir-1.0/WebKit2WebExtension-5.0.gir
%{_datadir}/gir-1.0/WebKit-6.0.gir
%{_datadir}/gir-1.0/WebKitWebProcessExtension-6.0.gir
%files -n webkit2gtk4.1-devel
%{_libexecdir}/webkit2gtk-4.1/MiniBrowser
@ -481,11 +499,11 @@ export NINJA_STATUS="[3/3][%f/%t %es] "
%{_datadir}/gir-1.0/WebKit2-4.0.gir
%{_datadir}/gir-1.0/WebKit2WebExtension-4.0.gir
%files -n javascriptcoregtk5.0
%files -n javascriptcoregtk6.0
%license _license_files/*JavaScriptCore*
%{_libdir}/libjavascriptcoregtk-5.0.so.0*
%{_libdir}/libjavascriptcoregtk-6.0.so.1*
%dir %{_libdir}/girepository-1.0
%{_libdir}/girepository-1.0/JavaScriptCore-5.0.typelib
%{_libdir}/girepository-1.0/JavaScriptCore-6.0.typelib
%files -n javascriptcoregtk4.1
%license _license_files/*JavaScriptCore*
@ -499,15 +517,14 @@ export NINJA_STATUS="[3/3][%f/%t %es] "
%dir %{_libdir}/girepository-1.0
%{_libdir}/girepository-1.0/JavaScriptCore-4.0.typelib
%files -n javascriptcoregtk5.0-devel
%{_libexecdir}/webkit2gtk-5.0/jsc
%dir %{_includedir}/webkitgtk-5.0
%{_includedir}/webkitgtk-5.0/JavaScriptCore/
%{_includedir}/webkitgtk-5.0/jsc/
%{_libdir}/libjavascriptcoregtk-5.0.so
%{_libdir}/pkgconfig/javascriptcoregtk-5.0.pc
%files -n javascriptcoregtk6.0-devel
%{_libexecdir}/webkitgtk-6.0/jsc
%dir %{_includedir}/webkitgtk-6.0
%{_includedir}/webkitgtk-6.0/jsc/
%{_libdir}/libjavascriptcoregtk-6.0.so
%{_libdir}/pkgconfig/javascriptcoregtk-6.0.pc
%dir %{_datadir}/gir-1.0
%{_datadir}/gir-1.0/JavaScriptCore-5.0.gir
%{_datadir}/gir-1.0/JavaScriptCore-6.0.gir
%files -n javascriptcoregtk4.1-devel
%{_libexecdir}/webkit2gtk-4.1/jsc
@ -530,12 +547,12 @@ export NINJA_STATUS="[3/3][%f/%t %es] "
%{_datadir}/gir-1.0/JavaScriptCore-4.0.gir
%if %{with docs}
%files -n webkit2gtk5.0-doc
%files -n webkitgtk6.0-doc
%dir %{_datadir}/gtk-doc
%dir %{_datadir}/gtk-doc/html
%{_datadir}/gtk-doc/html/javascriptcoregtk-5.0/
%{_datadir}/gtk-doc/html/webkit2gtk-5.0/
%{_datadir}/gtk-doc/html/webkit2gtk-web-extension-5.0/
%{_datadir}/gtk-doc/html/javascriptcoregtk-6.0/
%{_datadir}/gtk-doc/html/webkitgtk-6.0/
%{_datadir}/gtk-doc/html/webkitgtk-web-process-extension-6.0/
%files -n webkit2gtk4.1-doc
%dir %{_datadir}/gtk-doc