From f00bb3a29d1903c93e713b7f506b932b2ba713b7 Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Mon, 26 Sep 2016 09:36:31 +0200 Subject: [PATCH 001/200] Update the package description so it reflects the current state of package. --- webkitgtk.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/webkitgtk.spec b/webkitgtk.spec index f3b0730..297041c 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -62,6 +62,8 @@ BuildRequires: libatomic WebKitGTK+ is the port of the portable web rendering engine WebKit to the GTK+ platform. +This package contains an insecure and deprecated version of WebKitGTK+ for GTK+ 2. + %package devel Summary: Development files for %{name} Group: Development/Libraries From 93e8aaaed2f1a4d6c63582d4b88cd303bb867a95 Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Mon, 26 Sep 2016 09:36:31 +0200 Subject: [PATCH 002/200] Update the package description so it reflects the current state of package. --- webkitgtk.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/webkitgtk.spec b/webkitgtk.spec index f3b0730..297041c 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -62,6 +62,8 @@ BuildRequires: libatomic WebKitGTK+ is the port of the portable web rendering engine WebKit to the GTK+ platform. +This package contains an insecure and deprecated version of WebKitGTK+ for GTK+ 2. + %package devel Summary: Development files for %{name} Group: Development/Libraries From e0f7553bb11cf0be290225688cbe17cbc7f4350a Mon Sep 17 00:00:00 2001 From: Sandro Mani Date: Wed, 1 Feb 2017 19:32:31 +0100 Subject: [PATCH 003/200] Rebuild (libwebp) --- webkitgtk.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/webkitgtk.spec b/webkitgtk.spec index 297041c..c764a82 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -10,7 +10,7 @@ Name: webkitgtk Version: 2.4.11 -Release: 3%{?dist} +Release: 4%{?dist} Summary: GTK+ Web content engine library Group: Development/Libraries @@ -206,6 +206,9 @@ glib-compile-schemas %{_datadir}/glib-2.0/schemas &>/dev/null || : %{_datadir}/gtk-doc/html/webkitgtk %changelog +* Wed Feb 01 2017 Sandro Mani - 2.4.11-4 +- Rebuild (libwebp) + * Fri Jun 24 2016 Tomas Popela - 2.4.11-3 - Workaround crashes with gcc 6.1 - rhbz#1349318 - segfault in libjavascriptcoregtk-1.0.so.0.16.19 when launching Citrix Receiver From d00bf0a598fde3c9a72a99654aa1c4102f7873fc Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 11 Feb 2017 17:18:41 +0000 Subject: [PATCH 004/200] - Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild --- webkitgtk.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/webkitgtk.spec b/webkitgtk.spec index c764a82..9110b4b 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -10,7 +10,7 @@ Name: webkitgtk Version: 2.4.11 -Release: 4%{?dist} +Release: 5%{?dist} Summary: GTK+ Web content engine library Group: Development/Libraries @@ -206,6 +206,9 @@ glib-compile-schemas %{_datadir}/glib-2.0/schemas &>/dev/null || : %{_datadir}/gtk-doc/html/webkitgtk %changelog +* Sat Feb 11 2017 Fedora Release Engineering - 2.4.11-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + * Wed Feb 01 2017 Sandro Mani - 2.4.11-4 - Rebuild (libwebp) From 3cef058cb64c06f2f0970dda8cbe39b38e9b4980 Mon Sep 17 00:00:00 2001 From: Kevin Fenzi Date: Tue, 14 Mar 2017 09:46:03 -0600 Subject: [PATCH 005/200] Insecure and no longer maintained upstream. See https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/S3VHBCPMPVZ3NBKR7FQZQE6HBUHVEZ3D/ and and https://bugzilla.redhat.com/show_bug.cgi?id=1375784 --- .gitignore | 1 - dead.package | 1 + sources | 1 - webkitgtk-2.4.8-user-agent.patch | 27 - webkitgtk-2.4.9-abs.patch | 26 - webkitgtk.spec | 815 ------------------------------- 6 files changed, 1 insertion(+), 870 deletions(-) delete mode 100644 .gitignore create mode 100644 dead.package delete mode 100644 sources delete mode 100644 webkitgtk-2.4.8-user-agent.patch delete mode 100644 webkitgtk-2.4.9-abs.patch delete mode 100644 webkitgtk.spec diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 5f288d1..0000000 --- a/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/webkitgtk-*.tar.xz diff --git a/dead.package b/dead.package new file mode 100644 index 0000000..51c015c --- /dev/null +++ b/dead.package @@ -0,0 +1 @@ +Insecure and no longer maintained upstream. See https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/S3VHBCPMPVZ3NBKR7FQZQE6HBUHVEZ3D/ and and https://bugzilla.redhat.com/show_bug.cgi?id=1375784 diff --git a/sources b/sources deleted file mode 100644 index b11eb4f..0000000 --- a/sources +++ /dev/null @@ -1 +0,0 @@ -24a25ccc30a7914ae50922aedf24b7bc webkitgtk-2.4.11.tar.xz diff --git a/webkitgtk-2.4.8-user-agent.patch b/webkitgtk-2.4.8-user-agent.patch deleted file mode 100644 index 84b5117..0000000 --- a/webkitgtk-2.4.8-user-agent.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 050232bc122d6785fea01d39121c2f93e8dd16f1 Mon Sep 17 00:00:00 2001 -From: Michael Catanzaro -Date: Thu, 26 Feb 2015 16:06:36 -0600 -Subject: [PATCH] Allow branding the user agent - ---- - Source/WebCore/platform/gtk/UserAgentGtk.cpp | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/Source/WebCore/platform/gtk/UserAgentGtk.cpp b/Source/WebCore/platform/gtk/UserAgentGtk.cpp -index 91641dc..727fbaf 100644 ---- a/Source/WebCore/platform/gtk/UserAgentGtk.cpp -+++ b/Source/WebCore/platform/gtk/UserAgentGtk.cpp -@@ -84,7 +84,9 @@ static const char* cpuDescriptionForUAString() - - static const char* platformForUAString() - { --#if PLATFORM(X11) -+#if defined USER_AGENT_GTK_DISTRIBUTOR_NAME -+ return USER_AGENT_GTK_DISTRIBUTOR_NAME; -+#elif PLATFORM(X11) - return "X11"; - #elif OS(WINDOWS) - return ""; --- -2.1.0 - diff --git a/webkitgtk-2.4.9-abs.patch b/webkitgtk-2.4.9-abs.patch deleted file mode 100644 index 9a1c5f9..0000000 --- a/webkitgtk-2.4.9-abs.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff -Nur webkitgtk-2.4.9.orig/Source/WebCore/platform/gtk/GtkClickCounter.cpp webkitgtk-2.4.9/Source/WebCore/platform/gtk/GtkClickCounter.cpp ---- webkitgtk-2.4.9.orig/Source/WebCore/platform/gtk/GtkClickCounter.cpp 2015-05-20 03:03:24.000000000 -0600 -+++ webkitgtk-2.4.9/Source/WebCore/platform/gtk/GtkClickCounter.cpp 2016-02-07 11:30:42.392686308 -0700 -@@ -85,8 +85,8 @@ - guint32 eventTime = getEventTime(event); - - if ((event->type == GDK_2BUTTON_PRESS || event->type == GDK_3BUTTON_PRESS) -- || ((abs(buttonEvent->x - m_previousClickPoint.x()) < doubleClickDistance) -- && (abs(buttonEvent->y - m_previousClickPoint.y()) < doubleClickDistance) -+ || ((fabs(buttonEvent->x - m_previousClickPoint.x()) < doubleClickDistance) -+ && (fabs(buttonEvent->y - m_previousClickPoint.y()) < doubleClickDistance) - && (eventTime - m_previousClickTime < static_cast(doubleClickTime)) - && (buttonEvent->button == m_previousClickButton))) - m_currentClickCount++; -diff -Nur webkitgtk-2.4.9.orig/Source/WebCore/platform/gtk/LocalizedStringsGtk.cpp webkitgtk-2.4.9/Source/WebCore/platform/gtk/LocalizedStringsGtk.cpp ---- webkitgtk-2.4.9.orig/Source/WebCore/platform/gtk/LocalizedStringsGtk.cpp 2015-05-20 03:03:24.000000000 -0600 -+++ webkitgtk-2.4.9/Source/WebCore/platform/gtk/LocalizedStringsGtk.cpp 2016-02-07 11:49:36.384691005 -0700 -@@ -659,7 +659,7 @@ - if (!std::isfinite(time)) - return String::fromUTF8(_("indefinite time")); - -- int seconds = static_cast(abs(time)); -+ int seconds = static_cast(fabs(time)); - int days = seconds / (60 * 60 * 24); - int hours = seconds / (60 * 60); - int minutes = (seconds / 60) % 60; diff --git a/webkitgtk.spec b/webkitgtk.spec deleted file mode 100644 index 9110b4b..0000000 --- a/webkitgtk.spec +++ /dev/null @@ -1,815 +0,0 @@ -# In f20+ use unversioned docdirs, otherwise the old versioned one -%{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} - -## NOTE: Lots of files in various subdirectories have the same name (such as -## "LICENSE") so this short macro allows us to distinguish them by using their -## directory names (from the source tree) as prefixes for the files. -%global add_to_doc_files() \ - mkdir -p %{buildroot}%{_pkgdocdir} ||: ; \ - cp -p %1 %{buildroot}%{_pkgdocdir}/$(echo '%1' | sed -e 's!/!.!g') - -Name: webkitgtk -Version: 2.4.11 -Release: 5%{?dist} -Summary: GTK+ Web content engine library - -Group: Development/Libraries -License: LGPLv2+ and BSD -URL: http://www.webkitgtk.org/ - -Source0: http://www.webkitgtk.org/releases/webkitgtk-%{version}.tar.xz - -# https://bugs.webkit.org/show_bug.cgi?id=142074 -Patch0: webkitgtk-2.4.8-user-agent.patch -Patch1: webkitgtk-2.4.9-abs.patch - -BuildRequires: bison -BuildRequires: chrpath -BuildRequires: enchant-devel -BuildRequires: flex -BuildRequires: geoclue2-devel -BuildRequires: gettext -BuildRequires: gperf -BuildRequires: gstreamer1-devel -BuildRequires: gstreamer1-plugins-base-devel -BuildRequires: gtk2-devel >= 2.24.10 -BuildRequires: glib2-devel >= 2.36.0 -BuildRequires: harfbuzz-devel -BuildRequires: libsoup-devel >= 2.42.0 -BuildRequires: libicu-devel -BuildRequires: libjpeg-devel -BuildRequires: libsecret-devel -BuildRequires: libwebp-devel -BuildRequires: libxslt-devel -BuildRequires: libXt-devel -BuildRequires: pcre-devel -BuildRequires: sqlite-devel -BuildRequires: gobject-introspection-devel -BuildRequires: mesa-libGL-devel -BuildRequires: gtk-doc -BuildRequires: ruby rubypick rubygems -BuildRequires: cairo-devel -BuildRequires: cairo-gobject-devel -BuildRequires: fontconfig-devel >= 2.5 -BuildRequires: freetype-devel -Requires: geoclue2 - -%ifarch ppc -BuildRequires: libatomic -%endif - -%description -WebKitGTK+ is the port of the portable web rendering engine WebKit to the -GTK+ platform. - -This package contains an insecure and deprecated version of WebKitGTK+ for GTK+ 2. - -%package devel -Summary: Development files for %{name} -Group: Development/Libraries -Requires: %{name} = %{version}-%{release} -Requires: pkgconfig -Requires: gtk2-devel - -%description devel -The %{name}-devel package contains libraries, build data, and header -files for developing applications that use %{name}. - -%package doc -Summary: Documentation for %{name} -Group: Documentation -BuildArch: noarch -Requires: %{name} = %{version}-%{release} - -%description doc -This package contains developer documentation for %{name}. - -%prep -%setup -qn "webkitgtk-%{version}" -%patch0 -p1 -b .user_agent -%patch1 -p1 -b .abs - -%build -# Use linker flags to reduce memory consumption -%global optflags %{optflags} -Wl,--no-keep-memory -Wl,--reduce-memory-overheads - -%ifarch s390 %{arm} mips mipsel -# Decrease debuginfo verbosity to reduce memory consumption even more -%global optflags %(echo %{optflags} | sed 's/-g /-g1 /') -%endif - -%ifarch ppc -# Use linker flag -relax to get WebKit build under ppc(32) with JIT disabled -%global optflags %{optflags} -Wl,-relax -%endif - -%ifarch s390 s390x ppc %{power64} aarch64 %{mips} -%global optflags %{optflags} -DENABLE_YARR_JIT=0 -%endif - -# Regenerate configure to pick up the gcc 5.0 changes -autoreconf -v - -# Workaround crashes with gcc 6.1 -%global optflags %{optflags} -fno-delete-null-pointer-checks - -%if 0%{?fedora} -%global optflags %{optflags} -DUSER_AGENT_GTK_DISTRIBUTOR_NAME=\'\\"Fedora\\"\' -%endif - -%configure \ - --with-gtk=2.0 \ - --disable-webkit2 \ -%ifarch s390 s390x ppc %{power64} aarch64 %{mips} - --disable-jit \ -%else - --enable-jit \ -%endif - --enable-introspection - -mkdir -p DerivedSources/webkit -mkdir -p DerivedSources/WebCore -mkdir -p DerivedSources/ANGLE -mkdir -p DerivedSources/WebKit2/webkit2gtk/webkit2 -mkdir -p DerivedSources/WebKit2 -mkdir -p DerivedSources/webkitdom/ -mkdir -p DerivedSources/InjectedBundle -mkdir -p DerivedSources/Platform - -make %{_smp_mflags} V=1 - -%install -make install DESTDIR=%{buildroot} - -install -d -m 755 %{buildroot}%{_libexecdir}/%{name} -install -m 755 Programs/GtkLauncher %{buildroot}%{_libexecdir}/%{name} - -# Remove lib64 rpaths -chrpath --delete %{buildroot}%{_bindir}/jsc-1 -chrpath --delete %{buildroot}%{_libdir}/libwebkitgtk-1.0.so -chrpath --delete %{buildroot}%{_libexecdir}/%{name}/GtkLauncher - -# Remove .la files -find $RPM_BUILD_ROOT%{_libdir} -name "*.la" -delete - -%find_lang WebKitGTK-2.0 - -## Finally, copy over and rename the various files for %%doc inclusion. -%add_to_doc_files Source/WebKit/LICENSE -%add_to_doc_files Source/WebKit/gtk/NEWS -%add_to_doc_files Source/WebCore/icu/LICENSE -%add_to_doc_files Source/WebCore/LICENSE-APPLE -%add_to_doc_files Source/WebCore/LICENSE-LGPL-2 -%add_to_doc_files Source/WebCore/LICENSE-LGPL-2.1 -%add_to_doc_files Source/JavaScriptCore/COPYING.LIB -%add_to_doc_files Source/JavaScriptCore/THANKS -%add_to_doc_files Source/JavaScriptCore/AUTHORS -%add_to_doc_files Source/JavaScriptCore/icu/README -%add_to_doc_files Source/JavaScriptCore/icu/LICENSE - - -%post -p /sbin/ldconfig - -%postun -/sbin/ldconfig -if [ $1 -eq 0 ] ; then - glib-compile-schemas %{_datadir}/glib-2.0/schemas &>/dev/null || : -fi - -%posttrans -glib-compile-schemas %{_datadir}/glib-2.0/schemas &>/dev/null || : - - -%files -f WebKitGTK-2.0.lang -%doc %{_pkgdocdir} -%{_libdir}/libwebkitgtk-1.0.so.* -%{_libdir}/libjavascriptcoregtk-1.0.so.* -%{_libdir}/girepository-1.0/WebKit-1.0.typelib -%{_libdir}/girepository-1.0/JavaScriptCore-1.0.typelib -%{_libexecdir}/%{name}/ -%{_datadir}/webkitgtk-1.0 - -%files devel -%{_bindir}/jsc-1 -%{_includedir}/webkitgtk-1.0 -%{_libdir}/libwebkitgtk-1.0.so -%{_libdir}/libjavascriptcoregtk-1.0.so -%{_libdir}/pkgconfig/webkit-1.0.pc -%{_libdir}/pkgconfig/javascriptcoregtk-1.0.pc -%{_datadir}/gir-1.0/WebKit-1.0.gir -%{_datadir}/gir-1.0/JavaScriptCore-1.0.gir -%{_datadir}/gtk-doc/html/webkitdomgtk - -%files doc -%dir %{_datadir}/gtk-doc -%dir %{_datadir}/gtk-doc/html -%{_datadir}/gtk-doc/html/webkitgtk - -%changelog -* Sat Feb 11 2017 Fedora Release Engineering - 2.4.11-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Wed Feb 01 2017 Sandro Mani - 2.4.11-4 -- Rebuild (libwebp) - -* Fri Jun 24 2016 Tomas Popela - 2.4.11-3 -- Workaround crashes with gcc 6.1 -- rhbz#1349318 - segfault in libjavascriptcoregtk-1.0.so.0.16.19 when launching Citrix Receiver - -* Fri Apr 15 2016 David Tardon - 2.4.11-2 -- rebuild for ICU 57.1 - -* Mon Apr 11 2016 Tomas Popela - 2.4.11-1 -- Update to 2.4.11 - -* Tue Apr 05 2016 Tomas Popela - 2.4.10-4 -- Fix the compilation on aarch64 - -* Tue Apr 05 2016 Tomas Popela - 2.4.10-3 -- rhbz#1321722 - [abrt] evolution: WTF::StringImpl::startsWith(): SIGSEGV with webkitgtk3-2.4.10 - -* Thu Mar 24 2016 Tomas Popela - 2.4.10-2 -- Add a workaround for rhbz#1320240 - -* Mon Mar 14 2016 Tomas Popela - 2.4.10-1 -- Update to 2.4.10 - -* Tue Feb 9 2016 Peter Robinson 2.4.9-10 -- Add ruby deps for build - -* Sun Feb 07 2016 Kevin Fenzi - 2.4.9-9 -- Add patch to fix FTBFS - -* Fri Feb 05 2016 Fedora Release Engineering - 2.4.9-8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Wed Dec 30 2015 Michal Toman - 2.4.9-7 -- Add support for MIPS - -* Mon Dec 28 2015 Igor Gnatenko - 2.4.9-6 -- Rebuilt for libwebp soname bump - -* Mon Dec 07 2015 Tomas Popela - 2.4.9-5 -- rhbz#1289053 - Retire nspluginwrapper and remove from Fedora 24 - -* Wed Oct 28 2015 David Tardon - 2.4.9-4 -- rebuild for ICU 56.1 - -* Fri Sep 25 2015 Tomas Popela - 2.4.9-3 -- rhbz#1189303 - [abrt] midori: WebCore::SQLiteStatement::prepare(): midori killed by SIGSEGV - Initialize string in SQLiteStatement before using it - -* Fri Jun 19 2015 Fedora Release Engineering - 2.4.9-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild - -* Wed May 20 2015 Tomas Popela - 2.4.9-1 -- Update to 2.4.9 - -* Mon May 11 2015 Tomas Popela - 2.4.8-4 -- Add Fedora branding to the user agent - -* Wed Feb 18 2015 Tomas Popela - 2.4.8-3 -- Add support for gcc 5.0 -- Let the package compile with latest glib - -* Mon Jan 26 2015 David Tardon - 2.4.8-2 -- rebuild for ICU 54.1 - -* Wed Jan 07 2015 Tomas Popela - 2.4.8-1 -- Update to 2.4.8 - -* Wed Oct 22 2014 Tomas Popela - 2.4.7-1 -- Update to 2.4.7 - -* Mon Sep 29 2014 Tomas Popela - 2.4.6-1 -- Update to 2.4.6 - -* Tue Sep 02 2014 Tomas Popela - 2.4.5-3 -- Rebase the aarch64 patch - -* Tue Aug 26 2014 David Tardon - 2.4.5-2 -- rebuild for ICU 53.1 - -* Tue Aug 26 2014 Tomas Popela - 2.4.5-1 -- Update to 2.4.5 - -* Mon Aug 18 2014 Fedora Release Engineering - 2.4.4-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild - -* Wed Jul 23 2014 Tomas Popela - 2.4.4-3 -- Remove geoclue-devel from BR - -* Wed Jul 23 2014 Tomas Popela - 2.4.4-2 -- Fix CLoop on ppc32 and s390 -- Add geoclue-devel as BR as WK1 needs it - -* Thu Jul 10 2014 Tomas Popela 2.4.4-1 -- Update to 2.4.4 - -* Fri Jul 04 2014 Tomas Popela 2.4.3-4 -- rhbz#1088480 - [abrt] libwebkit2gtk: TSymbolTableLevel::~TSymbolTableLevel(): WebKitWebProcess killed by SIGSEGV - -* Wed Jun 25 2014 Yaakov Selkowitz - 2.4.3-3 -- Fix for 64k pages on aarch64 (#1074093, #1113347) - -* Sun Jun 08 2014 Fedora Release Engineering - 2.4.3-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild - -* Tue May 27 2014 Tomas Popela 2.4.3-1 -- Update to 2.4.3 - -* Sun May 18 2014 Peter Robinson 2.4.2-2 -- Fix aarch64 build - -* Thu May 15 2014 Tomas Popela 2.4.2-1 -- Update to 2.4.2 -- Fix for CLoop on ppc64, ppc64le and s390x - -* Fri Apr 25 2014 Peter Robinson 2.4.1-2 -- Switch over to geoclue2 - -* Tue Apr 15 2014 Kevin Fenzi 2.4.1-1 -- Update to 2.4.1 - -* Sat Mar 22 2014 Peter Robinson 2.2.6-2 -- Fix build and disable JIT on aarch64 - -* Wed Mar 19 2014 Tomas Popela 2.2.6-1 -- Update to 2.2.6 - -* Wed Feb 19 2014 Tomas Popela 2.2.5-1 -- Update to 2.2.5 - -* Tue Feb 18 2014 Tomas Popela 2.2.4-4 -- Enable full debuginfo on s390s - -* Wed Feb 12 2014 Nils Philippsen - 2.2.4-3 -- fix changelog release number -- rebuild for new libicu - -* Tue Jan 21 2014 Tomas Popela 2.2.4-2 -- Update to 2.2.4 - -* Thu Jan 02 2014 Orion Poplawski - 2.2.3-2 -- Rebuild for libwebp soname bump - -* Wed Dec 04 2013 Tomas Popela - 2.2.3-1 -- Update to 2.2.3 - -* Wed Dec 04 2013 Karsten Hopp 2.2.2-2 -- apply the correct double2intsPPC32 patch on ppc - -* Mon Nov 11 2013 Kevin Fenzi 2.2.2-1 -- Update to 2.2.2 - -* Thu Oct 17 2013 Kevin Fenzi 2.2.1-1 -- Update to 2.2.1 - -* Fri Sep 27 2013 Kevin Fenzi 2.2.0-1 -- Update 2.2.0 - -* Sun Aug 04 2013 Karsten Hopp 2.0.4-3 -- update ppc libatomic patch - -* Sat Jul 27 2013 Kevin Fenzi 2.0.4-2 -- Fix for unversioned doc dirs - -* Mon Jul 22 2013 Tomas Popela - 2.0.4-1 -- Update to 2.0.4 - -* Fri Jun 07 2013 Kalev Lember - 2.0.2-2 -- Link with harfbuzz-icu (split into separate library in harfbuzz 0.9.18) - -* Mon May 13 2013 Tomas Popela - 2.0.2-1 -- Update to 2.0.2 - -* Wed Apr 17 2013 Tomas Popela - 2.0.1-1 -- Update to 2.0.1 - -* Wed Apr 3 2013 Tomas Popela - 2.0.0-2 -- Add cairo-gobject as BR -- Apply double2intsPPC32.patch also on s390 - -* Tue Apr 2 2013 Tomas Popela - 2.0.0-1 -- Update to 2.0.0 -- Update BR versions -- Drop unused patches -- Change spec structure to webkitgtk3 spec file - -* Tue Mar 12 2013 Tomas Popela 1.10.2-6 -- Add upstream patch for RH bug #908143 - AccessibilityTableRow::parentTable crash -- Add fix for bug #907432 - Rendering glitches on some sites - -* Sat Feb 02 2013 Kevin Fenzi 1.10.2-5 -- Drop building with -g1 now. Fixes bug #861452 - -* Wed Jan 30 2013 Mamoru TASAKA - 1.10.2-4 -- Rebuild against new icu again - -* Sat Jan 26 2013 Kevin Fenzi 1.10.2-3 -- Rebuild for new icu - -* Mon Jan 21 2013 Adam Tkac - 1.10.2-2 -- rebuild due to "jpeg8-ABI" feature drop - -* Mon Dec 10 2012 Kalev Lember 1.10.2-1 -- Update to 1.10.2 -- Add a patch to explicitly link with librt - -* Sun Oct 21 2012 Kevin Fenzi 1.10.1-1 -- Update to 1.10.1 - -* Wed Sep 26 2012 Kevin Fenzi 1.10.0-1 -- Update to 1.10.0 - -* Thu Aug 23 2012 Kevin Fenzi 1.8.3-1 -- Update to 1.8.3 - -* Mon Aug 06 2012 Kevin Fenzi - 1.8.2-1 -- Update to 1.8.2 - -* Mon Aug 06 2012 Kalev Lember - 1.8.1-5 -- Backport a build fix with bison 2.6 - -* Sun Jul 22 2012 Fedora Release Engineering - 1.8.1-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild - -* Wed Jul 11 2012 Ville Skyttä - 1.8.1-3 -- Fix %%post scriptlet dependencies. - -* Mon May 14 2012 Peter Robinson - 1.8.1-2 -- Explicitly disable JIT on ARM as it's not currently stable with JS heavy pages - -* Wed Apr 25 2012 Kalev Lember - 1.8.1-1 -- Update to 1.8.1 -- Dropped the backported patches -- Remove lib64 rpaths with chrpath -- Update gsettings rpm scriptlets - -* Fri Apr 20 2012 Orion Poplwski - 1.8.0-5 -- Rebuild for icu 49 - -* Wed Apr 18 2012 Peter Robinson - 1.8.0-4 -- Add upstream patch to fix crash when SSE2 isn't present -- Add upstream patch to flickering when some widgets are drawn - -* Fri Apr 13 2012 Dan Horák - 1.8.0-3 -- updated s390/ppc build options to match webkitgtk3 - -* Mon Apr 09 2012 Kalev Lember - 1.8.0-2 -- Install developer docs in -doc and mark it as noarch (#808917) -- Move the license files to the main package - -* Tue Mar 27 2012 Kevin Fenzi - 1.8.0-1 -- Update to 1.8.0 - -* Tue Feb 28 2012 Peter Robinson - 1.6.3-2 -- Add ARM to and optimise compile flags for low mem arches - -* Wed Feb 01 2012 Kevin Fenzi 1.6.3-1 -- Update to 1.6.3. -- enable webgl - -* Fri Jan 20 2012 Kevin Fenzi - 1.6.1-5 -- Fix string issue causing failure to build. Already upstreamed. - -* Sat Jan 14 2012 Fedora Release Engineering - 1.6.1-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild - -* Mon Dec 05 2011 Adam Jackson 1.6.1-3 -- Rebuild for new libpng -- webkit-1.6.1-new-glib.patch: Fix for new glib headers - -* Wed Oct 12 2011 Dan Horák - 1.6.1-2 -- fix build on s390(x) - -* Tue Sep 27 2011 Kevin Fenzi - 1.6.1-1 -- Update to 1.6.1 - -* Mon Sep 26 2011 Kevin Fenzi - 1.6.0-1 -- Update to new 1.6.0 stable. - -* Thu Sep 08 2011 Kevin Fenzi - 1.4.3-2 -- Rebuild for new libicu - -* Mon Aug 29 2011 Kevin Fenzi - 1.4.3-1 -- Update to 1.4.3 - -* Fri Jul 01 2011 Kevin Fenzi - 1.4.2-1 -- Update to 1.4.2 - -* Sat Jun 11 2011 Kevin Fenzi - 1.4.1-1 -- Update to 1.4.1 - -* Tue Apr 26 2011 Kevin Fenzi - 1.4.0-1 -- Update to 1.4.0 stable release. - -* Fri Apr 15 2011 Kevin Fenzi - 1.3.13-2 -- Fix build issue with gcc 4.6 - -* Thu Mar 24 2011 Kevin Fenzi - 1.3.13-1 -- Update to 1.3.13 - -* Mon Mar 07 2011 Caolán McNamara - 1.3.12-2 -- rebuild for icu 4.6 - -* Wed Feb 23 2011 Kevin Fenzi - 1.3.12-1 -- Update to 1.3.12 - -* Mon Feb 07 2011 Fedora Release Engineering - 1.3.11-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild - -* Wed Feb 02 2011 Kevin Fenzi - 1.3.11-1 -- Update to 1.3.11 - -* Mon Jan 10 2011 Kevin Fenzi - 1.3.10-1 -- Update to 1.3.10 - -* Tue Jan 04 2011 Huzaifa Sidhpurwala 1.3.9-4 -- Upgrade to 1.3.9 -- Remove s390 patch, it was absorbed upstream -- No translations available - -* Mon Dec 13 2010 Dan Horák - 1.3.6-2 -- Add back updated s390(x) patch -- Do not generate debug information to prevent linker memory exhaustion on s390 - with its 2 GB address space - -* Mon Nov 08 2010 Kevin Fenzi - 1.3.6-1 -- Update to 1.3.6 - -* Thu Oct 28 2010 Kevin Fenzi - 1.3.5-1 -- Update to 1.3.5 - -* Wed Sep 29 2010 jkeating - 1.3.4-3 -- Rebuilt for gcc bug 634757 - -* Thu Sep 23 2010 Kevin Fenzi - 1.3.4-2 -- Enable JIT/patch for execmem. -- Move inspector into the main package. - -* Thu Sep 23 2010 Matthias Clasen - 1.3.4-1 -- Update to 1.3.4 -- Rebuild against newer gobject-introspection - -* Tue Jul 20 2010 Dan Horák - 1.3.2-4 -- Fix build on s390(x) - -* Thu Jul 15 2010 Colin Walters - 1.3.2-3 -- Rebuild with new gobject-introspection - -* Fri Jul 2 2010 Matthias Clasen 1.3.2-2 -- Enable introspection (needed for epiphany) - -* Thu Jul 1 2010 Matthias Clasen 1.3.2-1 -- Update to 1.3.2 - -* Fri May 28 2010 Matthias Clasen 1.3.1-1 -- Update to 1.3.1 (required for epiphany) - -* Sun Apr 11 2010 Matthias Clasen 1.2.0-1 -- Update to 1.2.0 - -* Fri Apr 02 2010 Caolán McNamara 1.1.22-3 -- rebuild for icu 4.4 - -* Tue Mar 23 2010 Tom "spot" Callaway 1.1.22-2 -- apply upstream fix for sparc - -* Mon Feb 22 2010 Matthias Clasen 1.1.22-1 -- Update to 1.1.22 - -* Wed Feb 10 2010 Bastien Nocera 1.1.21-1 -- Update to 1.1.21 - -* Tue Jan 26 2010 Matthias Clasen 1.1.19-1 -- Update to 1.1.19 - -* Sun Jan 17 2010 Matthias Clasen 1.1.18-1 -- Update to 1.1.18 - -* Tue Dec 01 2009 Bastien Nocera 1.1.17-1 -- Update to 1.1.17 - -* Sat Oct 31 2009 Matthias Clasen - 1.1.15.3-1 -- Update to 1.1.15.3, more crash fixes and important media player fixes -- See https://lists.webkit.org/pipermail/webkit-gtk/2009-October/000047.html - -* Thu Oct 15 2009 Matthias Clasen - 1.1.15.2-1 -- Update to 1.1.15.2, which has multiple crash and other fixes -- See https://lists.webkit.org/pipermail/webkit-gtk/2009-October/000040.html - -* Thu Sep 24 2009 Peter Gordon - 1.1.15.1-3 -- Forcibly disable JIT until we can properly resolve the execmem-caused - segfaulting. (Temporary workaround until bug #516057 can be properly fixed.) -- Remove the gnome-keyring build option (no longer used by the build scripts). -- Correct release value of previous %%changelog entry. - -* Wed Sep 23 2009 Matthias Clasen - 1.1.15.1-2 -- Update to 1.1.15.1 - -* Mon Sep 14 2009 Bastien Nocera 1.1.14-3 -- Add support for nspluginwrapper plugins - -* Tue Sep 08 2009 Karsten Hopp 1.1.14-2 -- bump release and rebuild as the package was linked with an old libicu - during the mass rebuild on s390x - -* Mon Sep 7 2009 Matthias Clasen - 1.1.14-1 -- Update to 1.1.14 - -* Tue Aug 25 2009 Matthias Clasen - 1.1.13-1 -- Update to 1.1.13 - -* Sat Aug 22 2009 Peter Gordon - 1.1.12-2 -- Add patch to forcibly disable RWX memory in the x86/x86-64 assembler. - + no-execmem.patch -- Use %%add_to_doc_files to add the gtk/NEWS file instead of %%doc, which - clobbered the doc files before they could be properly installed to the -doc - subpackage. -- Resolves: #516057 (gets whacked by selinux execmem check) and #518693 - (webkitgtk-doc package effectively empty). -- Update minimum required libsoup version. - -* Tue Jul 28 2009 Matthias Clasen - 1.1.12-1 -- Update to 1.1.12 - -* Mon Jul 27 2009 Fedora Release Engineering - 1.1.11-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild - -* Mon Jul 13 2009 Matthias Clasen - 1.1.11-1 -- Update to 1.1.11 - -* Wed Jul 08 2009 Peter Gordon - 1.1.10-3 -- Move jsc to the -devel subpackage (#510355). - -* Sat Jul 04 2009 Peter Gordon - 1.1.10-2 -- Invoke chrpath to remove the hardcoded RPATH in GtkLauncher. -- Remove unnecessary libtool build dependency. - -* Tue Jun 16 2009 Matthias Clasen - 1.1.10-1 -- Update to 1.1.10 - -* Sat Jun 13 2009 Dennis Gilmore - 1.1.8-2 -- _atomic_word is not always an int - -* Fri May 29 2009 Peter Gordon - 1.1.8-1 -- Update to new upstream release (1.1.8) - -* Thu May 28 2009 Peter Gordon - 1.1.7-1 -- Update to new upstream release (1.1.7) -- Remove jit build conditional. (JIT is now enabled by default on platforms - which support it: currently 32- and 64-bit x86.) -- Fix installation of the GtkLauncher demo program so that it - is a binary and not a script. (Fixes bug #443048.) - -* Sat May 09 2009 Peter Gordon - 1.1.6-1 -- Update to new upstream release (1.1.6). -- Drop workaround for bug 488112 (fixed upstream). -- Fixes bug 484335 (Copy link locations to the primary selection; patched - upstream). -- Include upstream changelog (NEWS) as part of the installed documentation. -- Fix capitalization in previous %%changelog entry. -- Add build-time conditional support for 3-D transforms (default off). - -* Sat May 09 2009 Mamoru Tasaka - 1.1.4-2 -- Rebuild against new icu - -* Tue Apr 07 2009 Peter Gordon - 1.1.4-1 -- Update to new upstream release (1.1.4) -- Enable building with geolocation support. -- Add build-time conditional for enabling code coverage checking (coverage). -- Remove html5video conditional and update dependencies accordingly. (HTML5 - video embedding support is now enabled by default by upstream.) - -* Sun Mar 15 2009 Peter Gordon - 1.1.3-1 -- Rename from WebKit-gtk and friends to WebKitGTK and subpackages. -- Update to new upstream release (1.1.3) -- Clean up the add_to_doc_files macro usage. - -* Sat Mar 07 2009 Peter Gordon - 1.1.1-1 -- Update to new upstream release (1.1.1), includes a soname bump. -- Enable gnome-keyring support. - -* Wed Mar 4 2009 Mamoru Tasaka - 1.1.0-0.21.svn41071 -- Compile libJavaScriptCore.a with -fno-strict-aliasing to - do workaround for #488112 - -* Mon Feb 23 2009 Fedora Release Engineering - 1.1.0-0.20.svn41071 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild - -* Fri Feb 20 2009 Peter Gordon 1.1.0-0.19.svn41071 -- Update to new upstream snapshot (SVN 41071). -- Drop libsoup build conditional. Use libsoup as default HTTP backend instead - of cURL, following upstream's default. - -* Fri Jan 30 2009 Peter Gordon 1.1.0-0.18.svn40351 -- Fix ownership of doc directory...this time without the oops (#473619). -- Bump package version number to match that used in the configure/build - scripts. (Thanks to Martin Sourada for the bug report via email.) - -* Thu Jan 29 2009 Peter Gordon 1.0.0-0.17.svn40351 -- Update to new upstream snapshot (SVN 40351): adds the WebPolicyDelegate - implementaton and related API (#482739). -- Drop Bison 2.4 patch (fixed upstream): - - bison24.patch -- Fixes CVE-2008-6059: Sensitive information disclosure from cookies via - XMLHttpRequest calls (#484197). - -* Sat Nov 29 2008 Peter Gordon 1.0.0-0.16.svn39370 -- Update to new upstream snapshot (SVN 39370) -- Fix ownership of %%_docdir in the doc subpackage. -- Resolves: bug 473619 (WebKit : Unowned directories). -- Adds webinspector data to the gtk-devel subpackage. -- Add patch from upstream bug 22205 to fix compilation errors with Bison 2.4: - + bison24.patch -- Add build-time conditional for WML support. - -* Thu Oct 23 2008 Peter Gordon 1.0.0-0.15.svn37790 -- Update to new upstream snapshot (SVN 37790). -- Default to freetype font backend for improved CJK/Unicode support. (#448693) -- Add some notes to the build options comments block. -- Add a build-time conditional for jit - -* Sun Aug 24 2008 Peter Gordon 1.0.0-0.14.svn35904 -- Update to new upstream snapshot (SVN 35904) - -* Fri Jul 04 2008 Peter Gordon -- Remove outdated and unnecessary GCC 4.3 patch: - - gcc43.patch -- Fix the curl-devel BuildRequire conditional. (It is only needed when building - against curl instead of libsoup.) - -* Thu Jun 12 2008 Peter Gordon 1.0.0-0.13.svn34655 -- Update to new upstream snapshot (SVN 34655) -- Add some build-time conditionals for non-default features: debug, - html5video, libsoup, pango, svg. - -* Tue Jun 3 2008 Caolán McNamara - 1.0.0-0.12.svn34279 -- rebuild for new icu - -* Tue Jun 3 2008 Mamoru Tasaka - 1.0.0-0.11.svn34279 -- Update to new upstream snapshot (SVN 34279) anyway -- Add BR: libXt-devel - -* Tue Apr 29 2008 Peter Gordon 1.0.0-0.10.svn32531 -- Remove the -Qt subpackage stuff. QtWebKit is now included in Qt proper, as - of qt-4.4.0-0.6.rc1. (We no longer need separate build-qt and build-gtk - subdirectories either.) -- Reference: bug 442200 (RFE: WebKit Migration) -- Add libjpeg dependency (was previously pulled in by the qt4-devel dependency - tree). - -* Mon Apr 28 2008 Mamoru Tasaka - 1.0.0-0.9.svn32531 -- Update to new upstream snapshot (SVN 32531). -- Fix bug 443048 and hopefully fix bug 444445 -- Modify the process of building GTK+ port a bit -- on qt port WebKit/qt/Plugins is not built for qt >= 4.4.0 - -* Sat Apr 12 2008 Peter Gordon 1.0.0-0.8.svn31787 -- Update to new upstream snapshot (SVN 31787). -- Resolves: CVE-2008-1010 (bug 438532: Arbitrary code execution) and - CVE-2008-1011 (bug 438531: Cross-Site Scripting). -- Switch to using autotools for building the GTK+ port. - -* Wed Mar 05 2008 Peter Gordon 1.0.0-0.7.svn30667 -- Fix the WebKitGtk pkgconfig data (should depend on gtk+-2.0). Resolves - bug 436073 (Requires: gtk+-2.0 missing from WebKitGtk.pc). -- Thanks to Mamoru Tasaka for helping find and squash these many bugs. - -* Sat Mar 01 2008 Peter Gordon 1.0.0-0.6.svn30667 -- Fix include directory naming. Resolves: bug 435561 (Header file <> header - file location mismatch) -- Remove qt4-devel runtime dependency and .prl file from WebKit-gtk-devel. - Resolves: bug 433138 (WebKit-gtk-devel has a requirement on qt4-devel) - -* Fri Feb 29 2008 Peter Gordon 1.0.0-0.5.svn30667 -- Update to new upstream snapshot (SVN 30667) -- Add some build fixes for GCC 4.3: - + gcc43.patch - -* Tue Feb 19 2008 Fedora Release Engineering - 1.0.0-0.5.svn29336 -- Autorebuild for GCC 4.3 - -* Wed Jan 09 2008 Peter Gordon 1.0.0-0.4.svn29336 -- Update to new upstream snapshot (SVN 29336). -- Drop TCSpinLock pthread workaround (fixed upstream): - - TCSpinLock-use-pthread-stubs.patch - -* Thu Dec 06 2007 Peter Gordon 1.0.0-0.3.svn28482 -- Add proper %%defattr line to qt, qt-devel, and doc subpackages. -- Add patch to forcibly build the TCSpinLock code using the pthread - implementation: - + TCSpinLock-use-pthread-stubs.patch - -* Thu Dec 06 2007 Peter Gordon 1.0.0-0.2.svn28482 -- Package renamed from WebKitGtk. -- Update to SVN 28482. -- Build both the GTK and Qt ports, putting each into their own respective - subpackages. -- Invoke qmake-qt4 and make directly (with SMP build flags) instead of using - the build-webkit script from upstream. -- Add various AUTHORS, README, and LICENSE files (via the doc subpackage). - -* Tue Dec 04 2007 Peter Gordon 1.0.0-0.1.svn28383 -- Initial packaging for Fedora. From 23de11ba1502aa22be8155c243418571c81110e8 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Thu, 4 Aug 2022 21:00:03 +0000 Subject: [PATCH 006/200] Unretiring. https://pagure.io/releng/issue/10919 This reverts commit 3cef058cb64c06f2f0970dda8cbe39b38e9b4980. Signed-off-by: Fedora Release Engineering --- .gitignore | 1 + dead.package | 1 - sources | 1 + webkitgtk-2.4.8-user-agent.patch | 27 + webkitgtk-2.4.9-abs.patch | 26 + webkitgtk.spec | 815 +++++++++++++++++++++++++++++++ 6 files changed, 870 insertions(+), 1 deletion(-) create mode 100644 .gitignore delete mode 100644 dead.package create mode 100644 sources create mode 100644 webkitgtk-2.4.8-user-agent.patch create mode 100644 webkitgtk-2.4.9-abs.patch create mode 100644 webkitgtk.spec diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5f288d1 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/webkitgtk-*.tar.xz diff --git a/dead.package b/dead.package deleted file mode 100644 index 51c015c..0000000 --- a/dead.package +++ /dev/null @@ -1 +0,0 @@ -Insecure and no longer maintained upstream. See https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/S3VHBCPMPVZ3NBKR7FQZQE6HBUHVEZ3D/ and and https://bugzilla.redhat.com/show_bug.cgi?id=1375784 diff --git a/sources b/sources new file mode 100644 index 0000000..b11eb4f --- /dev/null +++ b/sources @@ -0,0 +1 @@ +24a25ccc30a7914ae50922aedf24b7bc webkitgtk-2.4.11.tar.xz diff --git a/webkitgtk-2.4.8-user-agent.patch b/webkitgtk-2.4.8-user-agent.patch new file mode 100644 index 0000000..84b5117 --- /dev/null +++ b/webkitgtk-2.4.8-user-agent.patch @@ -0,0 +1,27 @@ +From 050232bc122d6785fea01d39121c2f93e8dd16f1 Mon Sep 17 00:00:00 2001 +From: Michael Catanzaro +Date: Thu, 26 Feb 2015 16:06:36 -0600 +Subject: [PATCH] Allow branding the user agent + +--- + Source/WebCore/platform/gtk/UserAgentGtk.cpp | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/Source/WebCore/platform/gtk/UserAgentGtk.cpp b/Source/WebCore/platform/gtk/UserAgentGtk.cpp +index 91641dc..727fbaf 100644 +--- a/Source/WebCore/platform/gtk/UserAgentGtk.cpp ++++ b/Source/WebCore/platform/gtk/UserAgentGtk.cpp +@@ -84,7 +84,9 @@ static const char* cpuDescriptionForUAString() + + static const char* platformForUAString() + { +-#if PLATFORM(X11) ++#if defined USER_AGENT_GTK_DISTRIBUTOR_NAME ++ return USER_AGENT_GTK_DISTRIBUTOR_NAME; ++#elif PLATFORM(X11) + return "X11"; + #elif OS(WINDOWS) + return ""; +-- +2.1.0 + diff --git a/webkitgtk-2.4.9-abs.patch b/webkitgtk-2.4.9-abs.patch new file mode 100644 index 0000000..9a1c5f9 --- /dev/null +++ b/webkitgtk-2.4.9-abs.patch @@ -0,0 +1,26 @@ +diff -Nur webkitgtk-2.4.9.orig/Source/WebCore/platform/gtk/GtkClickCounter.cpp webkitgtk-2.4.9/Source/WebCore/platform/gtk/GtkClickCounter.cpp +--- webkitgtk-2.4.9.orig/Source/WebCore/platform/gtk/GtkClickCounter.cpp 2015-05-20 03:03:24.000000000 -0600 ++++ webkitgtk-2.4.9/Source/WebCore/platform/gtk/GtkClickCounter.cpp 2016-02-07 11:30:42.392686308 -0700 +@@ -85,8 +85,8 @@ + guint32 eventTime = getEventTime(event); + + if ((event->type == GDK_2BUTTON_PRESS || event->type == GDK_3BUTTON_PRESS) +- || ((abs(buttonEvent->x - m_previousClickPoint.x()) < doubleClickDistance) +- && (abs(buttonEvent->y - m_previousClickPoint.y()) < doubleClickDistance) ++ || ((fabs(buttonEvent->x - m_previousClickPoint.x()) < doubleClickDistance) ++ && (fabs(buttonEvent->y - m_previousClickPoint.y()) < doubleClickDistance) + && (eventTime - m_previousClickTime < static_cast(doubleClickTime)) + && (buttonEvent->button == m_previousClickButton))) + m_currentClickCount++; +diff -Nur webkitgtk-2.4.9.orig/Source/WebCore/platform/gtk/LocalizedStringsGtk.cpp webkitgtk-2.4.9/Source/WebCore/platform/gtk/LocalizedStringsGtk.cpp +--- webkitgtk-2.4.9.orig/Source/WebCore/platform/gtk/LocalizedStringsGtk.cpp 2015-05-20 03:03:24.000000000 -0600 ++++ webkitgtk-2.4.9/Source/WebCore/platform/gtk/LocalizedStringsGtk.cpp 2016-02-07 11:49:36.384691005 -0700 +@@ -659,7 +659,7 @@ + if (!std::isfinite(time)) + return String::fromUTF8(_("indefinite time")); + +- int seconds = static_cast(abs(time)); ++ int seconds = static_cast(fabs(time)); + int days = seconds / (60 * 60 * 24); + int hours = seconds / (60 * 60); + int minutes = (seconds / 60) % 60; diff --git a/webkitgtk.spec b/webkitgtk.spec new file mode 100644 index 0000000..9110b4b --- /dev/null +++ b/webkitgtk.spec @@ -0,0 +1,815 @@ +# In f20+ use unversioned docdirs, otherwise the old versioned one +%{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} + +## NOTE: Lots of files in various subdirectories have the same name (such as +## "LICENSE") so this short macro allows us to distinguish them by using their +## directory names (from the source tree) as prefixes for the files. +%global add_to_doc_files() \ + mkdir -p %{buildroot}%{_pkgdocdir} ||: ; \ + cp -p %1 %{buildroot}%{_pkgdocdir}/$(echo '%1' | sed -e 's!/!.!g') + +Name: webkitgtk +Version: 2.4.11 +Release: 5%{?dist} +Summary: GTK+ Web content engine library + +Group: Development/Libraries +License: LGPLv2+ and BSD +URL: http://www.webkitgtk.org/ + +Source0: http://www.webkitgtk.org/releases/webkitgtk-%{version}.tar.xz + +# https://bugs.webkit.org/show_bug.cgi?id=142074 +Patch0: webkitgtk-2.4.8-user-agent.patch +Patch1: webkitgtk-2.4.9-abs.patch + +BuildRequires: bison +BuildRequires: chrpath +BuildRequires: enchant-devel +BuildRequires: flex +BuildRequires: geoclue2-devel +BuildRequires: gettext +BuildRequires: gperf +BuildRequires: gstreamer1-devel +BuildRequires: gstreamer1-plugins-base-devel +BuildRequires: gtk2-devel >= 2.24.10 +BuildRequires: glib2-devel >= 2.36.0 +BuildRequires: harfbuzz-devel +BuildRequires: libsoup-devel >= 2.42.0 +BuildRequires: libicu-devel +BuildRequires: libjpeg-devel +BuildRequires: libsecret-devel +BuildRequires: libwebp-devel +BuildRequires: libxslt-devel +BuildRequires: libXt-devel +BuildRequires: pcre-devel +BuildRequires: sqlite-devel +BuildRequires: gobject-introspection-devel +BuildRequires: mesa-libGL-devel +BuildRequires: gtk-doc +BuildRequires: ruby rubypick rubygems +BuildRequires: cairo-devel +BuildRequires: cairo-gobject-devel +BuildRequires: fontconfig-devel >= 2.5 +BuildRequires: freetype-devel +Requires: geoclue2 + +%ifarch ppc +BuildRequires: libatomic +%endif + +%description +WebKitGTK+ is the port of the portable web rendering engine WebKit to the +GTK+ platform. + +This package contains an insecure and deprecated version of WebKitGTK+ for GTK+ 2. + +%package devel +Summary: Development files for %{name} +Group: Development/Libraries +Requires: %{name} = %{version}-%{release} +Requires: pkgconfig +Requires: gtk2-devel + +%description devel +The %{name}-devel package contains libraries, build data, and header +files for developing applications that use %{name}. + +%package doc +Summary: Documentation for %{name} +Group: Documentation +BuildArch: noarch +Requires: %{name} = %{version}-%{release} + +%description doc +This package contains developer documentation for %{name}. + +%prep +%setup -qn "webkitgtk-%{version}" +%patch0 -p1 -b .user_agent +%patch1 -p1 -b .abs + +%build +# Use linker flags to reduce memory consumption +%global optflags %{optflags} -Wl,--no-keep-memory -Wl,--reduce-memory-overheads + +%ifarch s390 %{arm} mips mipsel +# Decrease debuginfo verbosity to reduce memory consumption even more +%global optflags %(echo %{optflags} | sed 's/-g /-g1 /') +%endif + +%ifarch ppc +# Use linker flag -relax to get WebKit build under ppc(32) with JIT disabled +%global optflags %{optflags} -Wl,-relax +%endif + +%ifarch s390 s390x ppc %{power64} aarch64 %{mips} +%global optflags %{optflags} -DENABLE_YARR_JIT=0 +%endif + +# Regenerate configure to pick up the gcc 5.0 changes +autoreconf -v + +# Workaround crashes with gcc 6.1 +%global optflags %{optflags} -fno-delete-null-pointer-checks + +%if 0%{?fedora} +%global optflags %{optflags} -DUSER_AGENT_GTK_DISTRIBUTOR_NAME=\'\\"Fedora\\"\' +%endif + +%configure \ + --with-gtk=2.0 \ + --disable-webkit2 \ +%ifarch s390 s390x ppc %{power64} aarch64 %{mips} + --disable-jit \ +%else + --enable-jit \ +%endif + --enable-introspection + +mkdir -p DerivedSources/webkit +mkdir -p DerivedSources/WebCore +mkdir -p DerivedSources/ANGLE +mkdir -p DerivedSources/WebKit2/webkit2gtk/webkit2 +mkdir -p DerivedSources/WebKit2 +mkdir -p DerivedSources/webkitdom/ +mkdir -p DerivedSources/InjectedBundle +mkdir -p DerivedSources/Platform + +make %{_smp_mflags} V=1 + +%install +make install DESTDIR=%{buildroot} + +install -d -m 755 %{buildroot}%{_libexecdir}/%{name} +install -m 755 Programs/GtkLauncher %{buildroot}%{_libexecdir}/%{name} + +# Remove lib64 rpaths +chrpath --delete %{buildroot}%{_bindir}/jsc-1 +chrpath --delete %{buildroot}%{_libdir}/libwebkitgtk-1.0.so +chrpath --delete %{buildroot}%{_libexecdir}/%{name}/GtkLauncher + +# Remove .la files +find $RPM_BUILD_ROOT%{_libdir} -name "*.la" -delete + +%find_lang WebKitGTK-2.0 + +## Finally, copy over and rename the various files for %%doc inclusion. +%add_to_doc_files Source/WebKit/LICENSE +%add_to_doc_files Source/WebKit/gtk/NEWS +%add_to_doc_files Source/WebCore/icu/LICENSE +%add_to_doc_files Source/WebCore/LICENSE-APPLE +%add_to_doc_files Source/WebCore/LICENSE-LGPL-2 +%add_to_doc_files Source/WebCore/LICENSE-LGPL-2.1 +%add_to_doc_files Source/JavaScriptCore/COPYING.LIB +%add_to_doc_files Source/JavaScriptCore/THANKS +%add_to_doc_files Source/JavaScriptCore/AUTHORS +%add_to_doc_files Source/JavaScriptCore/icu/README +%add_to_doc_files Source/JavaScriptCore/icu/LICENSE + + +%post -p /sbin/ldconfig + +%postun +/sbin/ldconfig +if [ $1 -eq 0 ] ; then + glib-compile-schemas %{_datadir}/glib-2.0/schemas &>/dev/null || : +fi + +%posttrans +glib-compile-schemas %{_datadir}/glib-2.0/schemas &>/dev/null || : + + +%files -f WebKitGTK-2.0.lang +%doc %{_pkgdocdir} +%{_libdir}/libwebkitgtk-1.0.so.* +%{_libdir}/libjavascriptcoregtk-1.0.so.* +%{_libdir}/girepository-1.0/WebKit-1.0.typelib +%{_libdir}/girepository-1.0/JavaScriptCore-1.0.typelib +%{_libexecdir}/%{name}/ +%{_datadir}/webkitgtk-1.0 + +%files devel +%{_bindir}/jsc-1 +%{_includedir}/webkitgtk-1.0 +%{_libdir}/libwebkitgtk-1.0.so +%{_libdir}/libjavascriptcoregtk-1.0.so +%{_libdir}/pkgconfig/webkit-1.0.pc +%{_libdir}/pkgconfig/javascriptcoregtk-1.0.pc +%{_datadir}/gir-1.0/WebKit-1.0.gir +%{_datadir}/gir-1.0/JavaScriptCore-1.0.gir +%{_datadir}/gtk-doc/html/webkitdomgtk + +%files doc +%dir %{_datadir}/gtk-doc +%dir %{_datadir}/gtk-doc/html +%{_datadir}/gtk-doc/html/webkitgtk + +%changelog +* Sat Feb 11 2017 Fedora Release Engineering - 2.4.11-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild + +* Wed Feb 01 2017 Sandro Mani - 2.4.11-4 +- Rebuild (libwebp) + +* Fri Jun 24 2016 Tomas Popela - 2.4.11-3 +- Workaround crashes with gcc 6.1 +- rhbz#1349318 - segfault in libjavascriptcoregtk-1.0.so.0.16.19 when launching Citrix Receiver + +* Fri Apr 15 2016 David Tardon - 2.4.11-2 +- rebuild for ICU 57.1 + +* Mon Apr 11 2016 Tomas Popela - 2.4.11-1 +- Update to 2.4.11 + +* Tue Apr 05 2016 Tomas Popela - 2.4.10-4 +- Fix the compilation on aarch64 + +* Tue Apr 05 2016 Tomas Popela - 2.4.10-3 +- rhbz#1321722 - [abrt] evolution: WTF::StringImpl::startsWith(): SIGSEGV with webkitgtk3-2.4.10 + +* Thu Mar 24 2016 Tomas Popela - 2.4.10-2 +- Add a workaround for rhbz#1320240 + +* Mon Mar 14 2016 Tomas Popela - 2.4.10-1 +- Update to 2.4.10 + +* Tue Feb 9 2016 Peter Robinson 2.4.9-10 +- Add ruby deps for build + +* Sun Feb 07 2016 Kevin Fenzi - 2.4.9-9 +- Add patch to fix FTBFS + +* Fri Feb 05 2016 Fedora Release Engineering - 2.4.9-8 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild + +* Wed Dec 30 2015 Michal Toman - 2.4.9-7 +- Add support for MIPS + +* Mon Dec 28 2015 Igor Gnatenko - 2.4.9-6 +- Rebuilt for libwebp soname bump + +* Mon Dec 07 2015 Tomas Popela - 2.4.9-5 +- rhbz#1289053 - Retire nspluginwrapper and remove from Fedora 24 + +* Wed Oct 28 2015 David Tardon - 2.4.9-4 +- rebuild for ICU 56.1 + +* Fri Sep 25 2015 Tomas Popela - 2.4.9-3 +- rhbz#1189303 - [abrt] midori: WebCore::SQLiteStatement::prepare(): midori killed by SIGSEGV + Initialize string in SQLiteStatement before using it + +* Fri Jun 19 2015 Fedora Release Engineering - 2.4.9-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild + +* Wed May 20 2015 Tomas Popela - 2.4.9-1 +- Update to 2.4.9 + +* Mon May 11 2015 Tomas Popela - 2.4.8-4 +- Add Fedora branding to the user agent + +* Wed Feb 18 2015 Tomas Popela - 2.4.8-3 +- Add support for gcc 5.0 +- Let the package compile with latest glib + +* Mon Jan 26 2015 David Tardon - 2.4.8-2 +- rebuild for ICU 54.1 + +* Wed Jan 07 2015 Tomas Popela - 2.4.8-1 +- Update to 2.4.8 + +* Wed Oct 22 2014 Tomas Popela - 2.4.7-1 +- Update to 2.4.7 + +* Mon Sep 29 2014 Tomas Popela - 2.4.6-1 +- Update to 2.4.6 + +* Tue Sep 02 2014 Tomas Popela - 2.4.5-3 +- Rebase the aarch64 patch + +* Tue Aug 26 2014 David Tardon - 2.4.5-2 +- rebuild for ICU 53.1 + +* Tue Aug 26 2014 Tomas Popela - 2.4.5-1 +- Update to 2.4.5 + +* Mon Aug 18 2014 Fedora Release Engineering - 2.4.4-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild + +* Wed Jul 23 2014 Tomas Popela - 2.4.4-3 +- Remove geoclue-devel from BR + +* Wed Jul 23 2014 Tomas Popela - 2.4.4-2 +- Fix CLoop on ppc32 and s390 +- Add geoclue-devel as BR as WK1 needs it + +* Thu Jul 10 2014 Tomas Popela 2.4.4-1 +- Update to 2.4.4 + +* Fri Jul 04 2014 Tomas Popela 2.4.3-4 +- rhbz#1088480 - [abrt] libwebkit2gtk: TSymbolTableLevel::~TSymbolTableLevel(): WebKitWebProcess killed by SIGSEGV + +* Wed Jun 25 2014 Yaakov Selkowitz - 2.4.3-3 +- Fix for 64k pages on aarch64 (#1074093, #1113347) + +* Sun Jun 08 2014 Fedora Release Engineering - 2.4.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild + +* Tue May 27 2014 Tomas Popela 2.4.3-1 +- Update to 2.4.3 + +* Sun May 18 2014 Peter Robinson 2.4.2-2 +- Fix aarch64 build + +* Thu May 15 2014 Tomas Popela 2.4.2-1 +- Update to 2.4.2 +- Fix for CLoop on ppc64, ppc64le and s390x + +* Fri Apr 25 2014 Peter Robinson 2.4.1-2 +- Switch over to geoclue2 + +* Tue Apr 15 2014 Kevin Fenzi 2.4.1-1 +- Update to 2.4.1 + +* Sat Mar 22 2014 Peter Robinson 2.2.6-2 +- Fix build and disable JIT on aarch64 + +* Wed Mar 19 2014 Tomas Popela 2.2.6-1 +- Update to 2.2.6 + +* Wed Feb 19 2014 Tomas Popela 2.2.5-1 +- Update to 2.2.5 + +* Tue Feb 18 2014 Tomas Popela 2.2.4-4 +- Enable full debuginfo on s390s + +* Wed Feb 12 2014 Nils Philippsen - 2.2.4-3 +- fix changelog release number +- rebuild for new libicu + +* Tue Jan 21 2014 Tomas Popela 2.2.4-2 +- Update to 2.2.4 + +* Thu Jan 02 2014 Orion Poplawski - 2.2.3-2 +- Rebuild for libwebp soname bump + +* Wed Dec 04 2013 Tomas Popela - 2.2.3-1 +- Update to 2.2.3 + +* Wed Dec 04 2013 Karsten Hopp 2.2.2-2 +- apply the correct double2intsPPC32 patch on ppc + +* Mon Nov 11 2013 Kevin Fenzi 2.2.2-1 +- Update to 2.2.2 + +* Thu Oct 17 2013 Kevin Fenzi 2.2.1-1 +- Update to 2.2.1 + +* Fri Sep 27 2013 Kevin Fenzi 2.2.0-1 +- Update 2.2.0 + +* Sun Aug 04 2013 Karsten Hopp 2.0.4-3 +- update ppc libatomic patch + +* Sat Jul 27 2013 Kevin Fenzi 2.0.4-2 +- Fix for unversioned doc dirs + +* Mon Jul 22 2013 Tomas Popela - 2.0.4-1 +- Update to 2.0.4 + +* Fri Jun 07 2013 Kalev Lember - 2.0.2-2 +- Link with harfbuzz-icu (split into separate library in harfbuzz 0.9.18) + +* Mon May 13 2013 Tomas Popela - 2.0.2-1 +- Update to 2.0.2 + +* Wed Apr 17 2013 Tomas Popela - 2.0.1-1 +- Update to 2.0.1 + +* Wed Apr 3 2013 Tomas Popela - 2.0.0-2 +- Add cairo-gobject as BR +- Apply double2intsPPC32.patch also on s390 + +* Tue Apr 2 2013 Tomas Popela - 2.0.0-1 +- Update to 2.0.0 +- Update BR versions +- Drop unused patches +- Change spec structure to webkitgtk3 spec file + +* Tue Mar 12 2013 Tomas Popela 1.10.2-6 +- Add upstream patch for RH bug #908143 - AccessibilityTableRow::parentTable crash +- Add fix for bug #907432 - Rendering glitches on some sites + +* Sat Feb 02 2013 Kevin Fenzi 1.10.2-5 +- Drop building with -g1 now. Fixes bug #861452 + +* Wed Jan 30 2013 Mamoru TASAKA - 1.10.2-4 +- Rebuild against new icu again + +* Sat Jan 26 2013 Kevin Fenzi 1.10.2-3 +- Rebuild for new icu + +* Mon Jan 21 2013 Adam Tkac - 1.10.2-2 +- rebuild due to "jpeg8-ABI" feature drop + +* Mon Dec 10 2012 Kalev Lember 1.10.2-1 +- Update to 1.10.2 +- Add a patch to explicitly link with librt + +* Sun Oct 21 2012 Kevin Fenzi 1.10.1-1 +- Update to 1.10.1 + +* Wed Sep 26 2012 Kevin Fenzi 1.10.0-1 +- Update to 1.10.0 + +* Thu Aug 23 2012 Kevin Fenzi 1.8.3-1 +- Update to 1.8.3 + +* Mon Aug 06 2012 Kevin Fenzi - 1.8.2-1 +- Update to 1.8.2 + +* Mon Aug 06 2012 Kalev Lember - 1.8.1-5 +- Backport a build fix with bison 2.6 + +* Sun Jul 22 2012 Fedora Release Engineering - 1.8.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild + +* Wed Jul 11 2012 Ville Skyttä - 1.8.1-3 +- Fix %%post scriptlet dependencies. + +* Mon May 14 2012 Peter Robinson - 1.8.1-2 +- Explicitly disable JIT on ARM as it's not currently stable with JS heavy pages + +* Wed Apr 25 2012 Kalev Lember - 1.8.1-1 +- Update to 1.8.1 +- Dropped the backported patches +- Remove lib64 rpaths with chrpath +- Update gsettings rpm scriptlets + +* Fri Apr 20 2012 Orion Poplwski - 1.8.0-5 +- Rebuild for icu 49 + +* Wed Apr 18 2012 Peter Robinson - 1.8.0-4 +- Add upstream patch to fix crash when SSE2 isn't present +- Add upstream patch to flickering when some widgets are drawn + +* Fri Apr 13 2012 Dan Horák - 1.8.0-3 +- updated s390/ppc build options to match webkitgtk3 + +* Mon Apr 09 2012 Kalev Lember - 1.8.0-2 +- Install developer docs in -doc and mark it as noarch (#808917) +- Move the license files to the main package + +* Tue Mar 27 2012 Kevin Fenzi - 1.8.0-1 +- Update to 1.8.0 + +* Tue Feb 28 2012 Peter Robinson - 1.6.3-2 +- Add ARM to and optimise compile flags for low mem arches + +* Wed Feb 01 2012 Kevin Fenzi 1.6.3-1 +- Update to 1.6.3. +- enable webgl + +* Fri Jan 20 2012 Kevin Fenzi - 1.6.1-5 +- Fix string issue causing failure to build. Already upstreamed. + +* Sat Jan 14 2012 Fedora Release Engineering - 1.6.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Mon Dec 05 2011 Adam Jackson 1.6.1-3 +- Rebuild for new libpng +- webkit-1.6.1-new-glib.patch: Fix for new glib headers + +* Wed Oct 12 2011 Dan Horák - 1.6.1-2 +- fix build on s390(x) + +* Tue Sep 27 2011 Kevin Fenzi - 1.6.1-1 +- Update to 1.6.1 + +* Mon Sep 26 2011 Kevin Fenzi - 1.6.0-1 +- Update to new 1.6.0 stable. + +* Thu Sep 08 2011 Kevin Fenzi - 1.4.3-2 +- Rebuild for new libicu + +* Mon Aug 29 2011 Kevin Fenzi - 1.4.3-1 +- Update to 1.4.3 + +* Fri Jul 01 2011 Kevin Fenzi - 1.4.2-1 +- Update to 1.4.2 + +* Sat Jun 11 2011 Kevin Fenzi - 1.4.1-1 +- Update to 1.4.1 + +* Tue Apr 26 2011 Kevin Fenzi - 1.4.0-1 +- Update to 1.4.0 stable release. + +* Fri Apr 15 2011 Kevin Fenzi - 1.3.13-2 +- Fix build issue with gcc 4.6 + +* Thu Mar 24 2011 Kevin Fenzi - 1.3.13-1 +- Update to 1.3.13 + +* Mon Mar 07 2011 Caolán McNamara - 1.3.12-2 +- rebuild for icu 4.6 + +* Wed Feb 23 2011 Kevin Fenzi - 1.3.12-1 +- Update to 1.3.12 + +* Mon Feb 07 2011 Fedora Release Engineering - 1.3.11-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Wed Feb 02 2011 Kevin Fenzi - 1.3.11-1 +- Update to 1.3.11 + +* Mon Jan 10 2011 Kevin Fenzi - 1.3.10-1 +- Update to 1.3.10 + +* Tue Jan 04 2011 Huzaifa Sidhpurwala 1.3.9-4 +- Upgrade to 1.3.9 +- Remove s390 patch, it was absorbed upstream +- No translations available + +* Mon Dec 13 2010 Dan Horák - 1.3.6-2 +- Add back updated s390(x) patch +- Do not generate debug information to prevent linker memory exhaustion on s390 + with its 2 GB address space + +* Mon Nov 08 2010 Kevin Fenzi - 1.3.6-1 +- Update to 1.3.6 + +* Thu Oct 28 2010 Kevin Fenzi - 1.3.5-1 +- Update to 1.3.5 + +* Wed Sep 29 2010 jkeating - 1.3.4-3 +- Rebuilt for gcc bug 634757 + +* Thu Sep 23 2010 Kevin Fenzi - 1.3.4-2 +- Enable JIT/patch for execmem. +- Move inspector into the main package. + +* Thu Sep 23 2010 Matthias Clasen - 1.3.4-1 +- Update to 1.3.4 +- Rebuild against newer gobject-introspection + +* Tue Jul 20 2010 Dan Horák - 1.3.2-4 +- Fix build on s390(x) + +* Thu Jul 15 2010 Colin Walters - 1.3.2-3 +- Rebuild with new gobject-introspection + +* Fri Jul 2 2010 Matthias Clasen 1.3.2-2 +- Enable introspection (needed for epiphany) + +* Thu Jul 1 2010 Matthias Clasen 1.3.2-1 +- Update to 1.3.2 + +* Fri May 28 2010 Matthias Clasen 1.3.1-1 +- Update to 1.3.1 (required for epiphany) + +* Sun Apr 11 2010 Matthias Clasen 1.2.0-1 +- Update to 1.2.0 + +* Fri Apr 02 2010 Caolán McNamara 1.1.22-3 +- rebuild for icu 4.4 + +* Tue Mar 23 2010 Tom "spot" Callaway 1.1.22-2 +- apply upstream fix for sparc + +* Mon Feb 22 2010 Matthias Clasen 1.1.22-1 +- Update to 1.1.22 + +* Wed Feb 10 2010 Bastien Nocera 1.1.21-1 +- Update to 1.1.21 + +* Tue Jan 26 2010 Matthias Clasen 1.1.19-1 +- Update to 1.1.19 + +* Sun Jan 17 2010 Matthias Clasen 1.1.18-1 +- Update to 1.1.18 + +* Tue Dec 01 2009 Bastien Nocera 1.1.17-1 +- Update to 1.1.17 + +* Sat Oct 31 2009 Matthias Clasen - 1.1.15.3-1 +- Update to 1.1.15.3, more crash fixes and important media player fixes +- See https://lists.webkit.org/pipermail/webkit-gtk/2009-October/000047.html + +* Thu Oct 15 2009 Matthias Clasen - 1.1.15.2-1 +- Update to 1.1.15.2, which has multiple crash and other fixes +- See https://lists.webkit.org/pipermail/webkit-gtk/2009-October/000040.html + +* Thu Sep 24 2009 Peter Gordon - 1.1.15.1-3 +- Forcibly disable JIT until we can properly resolve the execmem-caused + segfaulting. (Temporary workaround until bug #516057 can be properly fixed.) +- Remove the gnome-keyring build option (no longer used by the build scripts). +- Correct release value of previous %%changelog entry. + +* Wed Sep 23 2009 Matthias Clasen - 1.1.15.1-2 +- Update to 1.1.15.1 + +* Mon Sep 14 2009 Bastien Nocera 1.1.14-3 +- Add support for nspluginwrapper plugins + +* Tue Sep 08 2009 Karsten Hopp 1.1.14-2 +- bump release and rebuild as the package was linked with an old libicu + during the mass rebuild on s390x + +* Mon Sep 7 2009 Matthias Clasen - 1.1.14-1 +- Update to 1.1.14 + +* Tue Aug 25 2009 Matthias Clasen - 1.1.13-1 +- Update to 1.1.13 + +* Sat Aug 22 2009 Peter Gordon - 1.1.12-2 +- Add patch to forcibly disable RWX memory in the x86/x86-64 assembler. + + no-execmem.patch +- Use %%add_to_doc_files to add the gtk/NEWS file instead of %%doc, which + clobbered the doc files before they could be properly installed to the -doc + subpackage. +- Resolves: #516057 (gets whacked by selinux execmem check) and #518693 + (webkitgtk-doc package effectively empty). +- Update minimum required libsoup version. + +* Tue Jul 28 2009 Matthias Clasen - 1.1.12-1 +- Update to 1.1.12 + +* Mon Jul 27 2009 Fedora Release Engineering - 1.1.11-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild + +* Mon Jul 13 2009 Matthias Clasen - 1.1.11-1 +- Update to 1.1.11 + +* Wed Jul 08 2009 Peter Gordon - 1.1.10-3 +- Move jsc to the -devel subpackage (#510355). + +* Sat Jul 04 2009 Peter Gordon - 1.1.10-2 +- Invoke chrpath to remove the hardcoded RPATH in GtkLauncher. +- Remove unnecessary libtool build dependency. + +* Tue Jun 16 2009 Matthias Clasen - 1.1.10-1 +- Update to 1.1.10 + +* Sat Jun 13 2009 Dennis Gilmore - 1.1.8-2 +- _atomic_word is not always an int + +* Fri May 29 2009 Peter Gordon - 1.1.8-1 +- Update to new upstream release (1.1.8) + +* Thu May 28 2009 Peter Gordon - 1.1.7-1 +- Update to new upstream release (1.1.7) +- Remove jit build conditional. (JIT is now enabled by default on platforms + which support it: currently 32- and 64-bit x86.) +- Fix installation of the GtkLauncher demo program so that it + is a binary and not a script. (Fixes bug #443048.) + +* Sat May 09 2009 Peter Gordon - 1.1.6-1 +- Update to new upstream release (1.1.6). +- Drop workaround for bug 488112 (fixed upstream). +- Fixes bug 484335 (Copy link locations to the primary selection; patched + upstream). +- Include upstream changelog (NEWS) as part of the installed documentation. +- Fix capitalization in previous %%changelog entry. +- Add build-time conditional support for 3-D transforms (default off). + +* Sat May 09 2009 Mamoru Tasaka - 1.1.4-2 +- Rebuild against new icu + +* Tue Apr 07 2009 Peter Gordon - 1.1.4-1 +- Update to new upstream release (1.1.4) +- Enable building with geolocation support. +- Add build-time conditional for enabling code coverage checking (coverage). +- Remove html5video conditional and update dependencies accordingly. (HTML5 + video embedding support is now enabled by default by upstream.) + +* Sun Mar 15 2009 Peter Gordon - 1.1.3-1 +- Rename from WebKit-gtk and friends to WebKitGTK and subpackages. +- Update to new upstream release (1.1.3) +- Clean up the add_to_doc_files macro usage. + +* Sat Mar 07 2009 Peter Gordon - 1.1.1-1 +- Update to new upstream release (1.1.1), includes a soname bump. +- Enable gnome-keyring support. + +* Wed Mar 4 2009 Mamoru Tasaka - 1.1.0-0.21.svn41071 +- Compile libJavaScriptCore.a with -fno-strict-aliasing to + do workaround for #488112 + +* Mon Feb 23 2009 Fedora Release Engineering - 1.1.0-0.20.svn41071 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild + +* Fri Feb 20 2009 Peter Gordon 1.1.0-0.19.svn41071 +- Update to new upstream snapshot (SVN 41071). +- Drop libsoup build conditional. Use libsoup as default HTTP backend instead + of cURL, following upstream's default. + +* Fri Jan 30 2009 Peter Gordon 1.1.0-0.18.svn40351 +- Fix ownership of doc directory...this time without the oops (#473619). +- Bump package version number to match that used in the configure/build + scripts. (Thanks to Martin Sourada for the bug report via email.) + +* Thu Jan 29 2009 Peter Gordon 1.0.0-0.17.svn40351 +- Update to new upstream snapshot (SVN 40351): adds the WebPolicyDelegate + implementaton and related API (#482739). +- Drop Bison 2.4 patch (fixed upstream): + - bison24.patch +- Fixes CVE-2008-6059: Sensitive information disclosure from cookies via + XMLHttpRequest calls (#484197). + +* Sat Nov 29 2008 Peter Gordon 1.0.0-0.16.svn39370 +- Update to new upstream snapshot (SVN 39370) +- Fix ownership of %%_docdir in the doc subpackage. +- Resolves: bug 473619 (WebKit : Unowned directories). +- Adds webinspector data to the gtk-devel subpackage. +- Add patch from upstream bug 22205 to fix compilation errors with Bison 2.4: + + bison24.patch +- Add build-time conditional for WML support. + +* Thu Oct 23 2008 Peter Gordon 1.0.0-0.15.svn37790 +- Update to new upstream snapshot (SVN 37790). +- Default to freetype font backend for improved CJK/Unicode support. (#448693) +- Add some notes to the build options comments block. +- Add a build-time conditional for jit + +* Sun Aug 24 2008 Peter Gordon 1.0.0-0.14.svn35904 +- Update to new upstream snapshot (SVN 35904) + +* Fri Jul 04 2008 Peter Gordon +- Remove outdated and unnecessary GCC 4.3 patch: + - gcc43.patch +- Fix the curl-devel BuildRequire conditional. (It is only needed when building + against curl instead of libsoup.) + +* Thu Jun 12 2008 Peter Gordon 1.0.0-0.13.svn34655 +- Update to new upstream snapshot (SVN 34655) +- Add some build-time conditionals for non-default features: debug, + html5video, libsoup, pango, svg. + +* Tue Jun 3 2008 Caolán McNamara - 1.0.0-0.12.svn34279 +- rebuild for new icu + +* Tue Jun 3 2008 Mamoru Tasaka - 1.0.0-0.11.svn34279 +- Update to new upstream snapshot (SVN 34279) anyway +- Add BR: libXt-devel + +* Tue Apr 29 2008 Peter Gordon 1.0.0-0.10.svn32531 +- Remove the -Qt subpackage stuff. QtWebKit is now included in Qt proper, as + of qt-4.4.0-0.6.rc1. (We no longer need separate build-qt and build-gtk + subdirectories either.) +- Reference: bug 442200 (RFE: WebKit Migration) +- Add libjpeg dependency (was previously pulled in by the qt4-devel dependency + tree). + +* Mon Apr 28 2008 Mamoru Tasaka - 1.0.0-0.9.svn32531 +- Update to new upstream snapshot (SVN 32531). +- Fix bug 443048 and hopefully fix bug 444445 +- Modify the process of building GTK+ port a bit +- on qt port WebKit/qt/Plugins is not built for qt >= 4.4.0 + +* Sat Apr 12 2008 Peter Gordon 1.0.0-0.8.svn31787 +- Update to new upstream snapshot (SVN 31787). +- Resolves: CVE-2008-1010 (bug 438532: Arbitrary code execution) and + CVE-2008-1011 (bug 438531: Cross-Site Scripting). +- Switch to using autotools for building the GTK+ port. + +* Wed Mar 05 2008 Peter Gordon 1.0.0-0.7.svn30667 +- Fix the WebKitGtk pkgconfig data (should depend on gtk+-2.0). Resolves + bug 436073 (Requires: gtk+-2.0 missing from WebKitGtk.pc). +- Thanks to Mamoru Tasaka for helping find and squash these many bugs. + +* Sat Mar 01 2008 Peter Gordon 1.0.0-0.6.svn30667 +- Fix include directory naming. Resolves: bug 435561 (Header file <> header + file location mismatch) +- Remove qt4-devel runtime dependency and .prl file from WebKit-gtk-devel. + Resolves: bug 433138 (WebKit-gtk-devel has a requirement on qt4-devel) + +* Fri Feb 29 2008 Peter Gordon 1.0.0-0.5.svn30667 +- Update to new upstream snapshot (SVN 30667) +- Add some build fixes for GCC 4.3: + + gcc43.patch + +* Tue Feb 19 2008 Fedora Release Engineering - 1.0.0-0.5.svn29336 +- Autorebuild for GCC 4.3 + +* Wed Jan 09 2008 Peter Gordon 1.0.0-0.4.svn29336 +- Update to new upstream snapshot (SVN 29336). +- Drop TCSpinLock pthread workaround (fixed upstream): + - TCSpinLock-use-pthread-stubs.patch + +* Thu Dec 06 2007 Peter Gordon 1.0.0-0.3.svn28482 +- Add proper %%defattr line to qt, qt-devel, and doc subpackages. +- Add patch to forcibly build the TCSpinLock code using the pthread + implementation: + + TCSpinLock-use-pthread-stubs.patch + +* Thu Dec 06 2007 Peter Gordon 1.0.0-0.2.svn28482 +- Package renamed from WebKitGtk. +- Update to SVN 28482. +- Build both the GTK and Qt ports, putting each into their own respective + subpackages. +- Invoke qmake-qt4 and make directly (with SMP build flags) instead of using + the build-webkit script from upstream. +- Add various AUTHORS, README, and LICENSE files (via the doc subpackage). + +* Tue Dec 04 2007 Peter Gordon 1.0.0-0.1.svn28383 +- Initial packaging for Fedora. From 833783752d8fba5fca9c228415bd3076bfa69c04 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Thu, 4 Aug 2022 17:04:23 -0500 Subject: [PATCH 007/200] Revive this package! We'll use this package to build the latest version of WebKitGTK as many times in as many configurations as we need to. --- .gitignore | 1 + aarch64-page-size.patch | 19 + changelog | 2 + fix-cloop-build.patch | 27 + rpminspect.yaml | 4 + sources | 3 +- webkitgtk-2.4.8-user-agent.patch | 27 - webkitgtk-2.4.9-abs.patch | 26 - webkitgtk-keys.gpg | Bin 0 -> 2816 bytes webkitgtk.spec | 1334 +++++++++++++----------------- 10 files changed, 619 insertions(+), 824 deletions(-) create mode 100644 aarch64-page-size.patch create mode 100644 changelog create mode 100644 fix-cloop-build.patch create mode 100644 rpminspect.yaml delete mode 100644 webkitgtk-2.4.8-user-agent.patch delete mode 100644 webkitgtk-2.4.9-abs.patch create mode 100644 webkitgtk-keys.gpg diff --git a/.gitignore b/.gitignore index 5f288d1..609b85d 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /webkitgtk-*.tar.xz +/webkitgtk-2.37.1.tar.xz.asc diff --git a/aarch64-page-size.patch b/aarch64-page-size.patch new file mode 100644 index 0000000..15aaacb --- /dev/null +++ b/aarch64-page-size.patch @@ -0,0 +1,19 @@ +diff --git a/Source/WTF/wtf/PageBlock.h b/Source/WTF/wtf/PageBlock.h +index 9bb7fffcc1ae..3e1e24aa69f5 100644 +--- a/Source/WTF/wtf/PageBlock.h ++++ b/Source/WTF/wtf/PageBlock.h +@@ -45,11 +45,11 @@ namespace WTF { + // On Linux, Power systems normally use 64 KiB pages. + // + // Use 64 KiB for any unknown CPUs to be conservative. +-#if OS(DARWIN) || PLATFORM(PLAYSTATION) || CPU(MIPS) || CPU(MIPS64) || (OS(LINUX) && CPU(ARM64)) ++#if OS(DARWIN) || PLATFORM(PLAYSTATION) || CPU(MIPS) || CPU(MIPS64) + constexpr size_t CeilingOnPageSize = 16 * KB; +-#elif CPU(PPC) || CPU(PPC64) || CPU(PPC64LE) || CPU(UNKNOWN) ++#elif CPU(PPC) || CPU(PPC64) || CPU(PPC64LE) || CPU(UNKNOWN) || CPU(ARM64) + constexpr size_t CeilingOnPageSize = 64 * KB; +-#elif OS(WINDOWS) || CPU(X86) || CPU(X86_64) || CPU(ARM) || CPU(ARM64) || CPU(RISCV64) ++#elif OS(WINDOWS) || CPU(X86) || CPU(X86_64) || CPU(ARM) || CPU(RISCV64) + constexpr size_t CeilingOnPageSize = 4 * KB; + #else + #error Must set CeilingOnPageSize in PageBlock.h when adding a new CPU architecture! diff --git a/changelog b/changelog new file mode 100644 index 0000000..d64487e --- /dev/null +++ b/changelog @@ -0,0 +1,2 @@ +* Thu Aug 04 2022 Michael Catanzaro - 2.37.1-12 +- Initial import. This manual changelog entry hides the repo's long git history from rpm-autospec. diff --git a/fix-cloop-build.patch b/fix-cloop-build.patch new file mode 100644 index 0000000..f38f3f8 --- /dev/null +++ b/fix-cloop-build.patch @@ -0,0 +1,27 @@ +From 40e49bb53218a986b4d6569f3fc2730cc4b71472 Mon Sep 17 00:00:00 2001 +From: Michael Catanzaro +Date: Tue, 12 Jul 2022 16:56:56 -0700 +Subject: [PATCH] Fix cloop build after 252338@main + https://bugs.webkit.org/show_bug.cgi?id=242579 + +Reviewed by Mark Lam. + +* Source/JavaScriptCore/CMakeLists.txt: + +Canonical link: https://commits.webkit.org/252400@main +--- + Source/JavaScriptCore/CMakeLists.txt | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/Source/JavaScriptCore/CMakeLists.txt b/Source/JavaScriptCore/CMakeLists.txt +index aef0678e66f3..f4ba2716faef 100644 +--- a/Source/JavaScriptCore/CMakeLists.txt ++++ b/Source/JavaScriptCore/CMakeLists.txt +@@ -837,6 +837,7 @@ set(JavaScriptCore_PRIVATE_FRAMEWORK_HEADERS + inspector/remote/RemoteInspector.h + + interpreter/AbstractPC.h ++ interpreter/CLoopStack.h + interpreter/CallFrame.h + interpreter/CallFrameInlines.h + interpreter/CalleeBits.h diff --git a/rpminspect.yaml b/rpminspect.yaml new file mode 100644 index 0000000..722d4d2 --- /dev/null +++ b/rpminspect.yaml @@ -0,0 +1,4 @@ +--- +inspections: + changedfiles: off + filesize: off diff --git a/sources b/sources index b11eb4f..c3a8972 100644 --- a/sources +++ b/sources @@ -1 +1,2 @@ -24a25ccc30a7914ae50922aedf24b7bc webkitgtk-2.4.11.tar.xz +SHA512 (webkitgtk-2.37.1.tar.xz) = 29935eed5e901780d6be02a7f1072f10e61ad96cecdc3495a71dc8ca00573fa9c485c909fcba928d818df6b901a265a077238ce5fa0cfcc657bdb991867facd8 +SHA512 (webkitgtk-2.37.1.tar.xz.asc) = 5b58dd14f79abcacc3ffa3a9655d9067d6ea392203ab96567a2420bc2d1fff94ea1b9147ad128a321803b99cb6e05aecdd7db14b784a2df177a5afb30ec6b0d1 diff --git a/webkitgtk-2.4.8-user-agent.patch b/webkitgtk-2.4.8-user-agent.patch deleted file mode 100644 index 84b5117..0000000 --- a/webkitgtk-2.4.8-user-agent.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 050232bc122d6785fea01d39121c2f93e8dd16f1 Mon Sep 17 00:00:00 2001 -From: Michael Catanzaro -Date: Thu, 26 Feb 2015 16:06:36 -0600 -Subject: [PATCH] Allow branding the user agent - ---- - Source/WebCore/platform/gtk/UserAgentGtk.cpp | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/Source/WebCore/platform/gtk/UserAgentGtk.cpp b/Source/WebCore/platform/gtk/UserAgentGtk.cpp -index 91641dc..727fbaf 100644 ---- a/Source/WebCore/platform/gtk/UserAgentGtk.cpp -+++ b/Source/WebCore/platform/gtk/UserAgentGtk.cpp -@@ -84,7 +84,9 @@ static const char* cpuDescriptionForUAString() - - static const char* platformForUAString() - { --#if PLATFORM(X11) -+#if defined USER_AGENT_GTK_DISTRIBUTOR_NAME -+ return USER_AGENT_GTK_DISTRIBUTOR_NAME; -+#elif PLATFORM(X11) - return "X11"; - #elif OS(WINDOWS) - return ""; --- -2.1.0 - diff --git a/webkitgtk-2.4.9-abs.patch b/webkitgtk-2.4.9-abs.patch deleted file mode 100644 index 9a1c5f9..0000000 --- a/webkitgtk-2.4.9-abs.patch +++ /dev/null @@ -1,26 +0,0 @@ -diff -Nur webkitgtk-2.4.9.orig/Source/WebCore/platform/gtk/GtkClickCounter.cpp webkitgtk-2.4.9/Source/WebCore/platform/gtk/GtkClickCounter.cpp ---- webkitgtk-2.4.9.orig/Source/WebCore/platform/gtk/GtkClickCounter.cpp 2015-05-20 03:03:24.000000000 -0600 -+++ webkitgtk-2.4.9/Source/WebCore/platform/gtk/GtkClickCounter.cpp 2016-02-07 11:30:42.392686308 -0700 -@@ -85,8 +85,8 @@ - guint32 eventTime = getEventTime(event); - - if ((event->type == GDK_2BUTTON_PRESS || event->type == GDK_3BUTTON_PRESS) -- || ((abs(buttonEvent->x - m_previousClickPoint.x()) < doubleClickDistance) -- && (abs(buttonEvent->y - m_previousClickPoint.y()) < doubleClickDistance) -+ || ((fabs(buttonEvent->x - m_previousClickPoint.x()) < doubleClickDistance) -+ && (fabs(buttonEvent->y - m_previousClickPoint.y()) < doubleClickDistance) - && (eventTime - m_previousClickTime < static_cast(doubleClickTime)) - && (buttonEvent->button == m_previousClickButton))) - m_currentClickCount++; -diff -Nur webkitgtk-2.4.9.orig/Source/WebCore/platform/gtk/LocalizedStringsGtk.cpp webkitgtk-2.4.9/Source/WebCore/platform/gtk/LocalizedStringsGtk.cpp ---- webkitgtk-2.4.9.orig/Source/WebCore/platform/gtk/LocalizedStringsGtk.cpp 2015-05-20 03:03:24.000000000 -0600 -+++ webkitgtk-2.4.9/Source/WebCore/platform/gtk/LocalizedStringsGtk.cpp 2016-02-07 11:49:36.384691005 -0700 -@@ -659,7 +659,7 @@ - if (!std::isfinite(time)) - return String::fromUTF8(_("indefinite time")); - -- int seconds = static_cast(abs(time)); -+ int seconds = static_cast(fabs(time)); - int days = seconds / (60 * 60 * 24); - int hours = seconds / (60 * 60); - int minutes = (seconds / 60) % 60; diff --git a/webkitgtk-keys.gpg b/webkitgtk-keys.gpg new file mode 100644 index 0000000000000000000000000000000000000000..180e358ac0e97fa8d910e5e8c44ad83a2abba1ec GIT binary patch literal 2816 zcmb7_c{J4f8^^yhhO9LyGa{KWnXxN7W1C!C_AQmA#+VoeV<`Jrlclmoh#|WhSC+z1 z2$7H^Bq8F8vCE#{$vyYCoZtEV@%!`hoX;Px^E}V{d1ZheLkx6&vL1&3!<%~@qha<2 zbCPb=9!IStjC+iIJaXBt+Ei2J1lb?LrLS#$b+q$~&9hKt&XL!# zjf3q-{`QrC-iWIvUov8Lf!y%ZSFP;;C*c)O&rpk~$j-#?>>&`KZkp3kbO!f;W%0@d zF3-klcVScvC}g`Bq!L`Tn%rQ#AiwSu$CDl0rZBanat4;h*XRpK4;v*`WzC>5Ie{x$ zd&&qfjL-R$kCLy1OK<`?O{Km~ZoN?T4r+&=QMlW~Y07U%go<$bzsDUM`5d!bY0Q;` zKu21!cdi7fifKcDx?%gaqPJ=D)9K9K+lpZUH@Fbc-^#xGer3?zzHBs`}X<+X22@ZB;j!7+hCVQfu+i|snHWFKlXIJ`fh3lV>rv%>( z*RVT4gVP;YZGU1J?VnWkL0Uu5;bUfm-G1W&9mVH$MV6MjHJUhQD(O|8C&K(yDU}$A za3&&j@IJm&FN7F{NcHjZ#FNDl>Ud`=3Gb;*AySEf&P2lD2N^G_i)IWBa^g5Apa~X4 zfzN=z@Gw>`4)!A~tbCjt>|CrcFbfEPAt6`u8|BT0rj&Am{i>4MuZ&K2@nTuQjtya+ ztQ-O=b4~y!2lVf{rX4^xln;dBpU-^9yyvqsL(P`XA&*1aJf{T6ZFK^4s9&R;IQ}X{U9%TF2Y;NY>dlOrj%Mpj6Mr8!;Ros+qo*l6}$&=`$Tl zmo`s};tW>MNLd!vtqGv{$Sd>1E28IK$r?P-+BQz9CPY9ku(2yQw?aOmTWY-qOA((U zvIcXcw&*opIzpipLBB^X6jWeLDQM>J14R@Q&56bbTXRop!BOSDN7LSf+EwlhtZ8cY z_CX2!LJC*9G1|nZDFEf!YE87q;GC02QaQD(xf0IP^km@d zqG4t669M)$p~Sn~j+;1>dFEJsq>Y}T{Zeah=s@-iHh+0pF5z;Tc!WDDv4db_#<1;M zkj3||gl=4{zsNOUYLMJ7Fmgh#uFxZ6MLY=+-#@$|A^{cEaCzYQhg+|!+9OX1zMU9r z5!uw86}F*R2gecvHR!Z_T^}Oqp5wu)2-{f&4-XH#1QO zI|h6WmZNv>M({(HE>Uxmel|AxlwxPk{9s7z{IiskLPFmyGrMTqG`AKHSjd$6RXt$2 z=hYtMF3@hIzPhjynBYn||Hf!|ju5F4OtbB2ZI;U=nOwi!)75qAwBwdmQBkcpN7dJ* zhZD%hMnplzUdPvBL#mKbM^KeKVr1!IwkS(uE~VAN%h380puurAg5~x*{Gza(di;EfjtQd3DhuysPufx zX^#DglAE4FCNJoRa=%XJenY6*Lk2}mGHZBMg+@|>rt)ilU~kr2rSo6(y`*3ZT+fU( zR|i+{#YvyIC6lH5Szp1oZ>V==$5K-SP(6R;wSq&3U~r!c$UdUNJwz z0>Qs~GR80HB>p%fng@Iycj3JpeYQ^5Rc0{0E7s~51End28?ho0dsF--B~F3g1Qt<8 ztrci(fI;{$`XoA;jW=HmWomWG6Iy?lV9u7Vgc zjGpS3=UJqsd1VmjGc~X~;tyJ^giv@3|Lyk3eQu{_I>s9~H^fNxQ=4yNZo)FL_HJ6G zHTBJEe!e>8Mmr}vp=9SL%x|U7qRXNvFo&<~r8WU$YN1H9+*Houn0-5Fx?N|9+!U`%HZf*A!Z7zff zPpu317eZGJt&Nt#)zID?$Qf%iHu$SB^Gs^^a*QE_|2P=nU1@B&veA{ng{=?8Kb){+t;XBvyoL!IeJC8cmJ~`t}EPYnNaf$&vQ0 zY30w)-wcb8fo09;JPy|MB7!KAp$s5*9g_0%7(DEK#w3~a+kHX#ecVevmIJaQS{D`J zLa}ueQth94>e+HV>4PLxdOgp#{0_TX{(MQWx;q&Oyc%s%sugA z(+X@rUYC!<9VKebyaPR{^hT-R+=RuW>vWX1+h&!e;>{nq{bvh3-|~II;SVfK9eJ~o zLeKOEA#E3%k=%2|mlzWwcXC9^A)Tb64d(z6BPa75S9Cj4gY;($`H3 zbGKEMD9N}$CZOT&`btRwe$JaOeMA}(K53>$OZuqtu)x!;)BWp?N?mLy61%6%Yz5nT zOJK69#7V>euLT7X>tNJ;fiJ?2P(R9zK5%i z*_@iJ2k{*43={&4!0ndj6@#4fa+l+-#cT7D6>Q%6xlbK&jrrKlU$~mW{#-+_B&{aJ zZzDM1l=qF~JUMUo^plsL&7BlRv-sO{kH4sR zZ9Sw&W~+wz>EU_oB!KFcxG$^xx62|%-JTj*)9-d|1kRSw0TxyW@aUOGP)&ewIcmD; z;$E`-nv-eL@HcpVlF^^uXG#rBogH7esrGcYoL|lt9+#U%J`n0m+}oi6vU#Zb^*^rD zPA?wF&#u+KK%*Z@mG{R7G_tBp$%q2gR=YF9OU3aYu0`cNO(@xpt@W|nnDB$PGdGtr zCBiOeu9>?VKnf`1P5+AHUp+sJ~CuSX_T*N(qr;?~$xh+E#bYH8~7G_g}l& V3L@TM79{#?`RR8JR|mG9_y^-50h#~+ literal 0 HcmV?d00001 diff --git a/webkitgtk.spec b/webkitgtk.spec index 9110b4b..8f7a375 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -1,815 +1,609 @@ -# In f20+ use unversioned docdirs, otherwise the old versioned one -%{!?_pkgdocdir: %global _pkgdocdir %{_docdir}/%{name}-%{version}} - ## NOTE: Lots of files in various subdirectories have the same name (such as ## "LICENSE") so this short macro allows us to distinguish them by using their ## directory names (from the source tree) as prefixes for the files. -%global add_to_doc_files() \ - mkdir -p %{buildroot}%{_pkgdocdir} ||: ; \ - cp -p %1 %{buildroot}%{_pkgdocdir}/$(echo '%1' | sed -e 's!/!.!g') +%global add_to_license_files() \ + mkdir -p _license_files ; \ + cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g') -Name: webkitgtk -Version: 2.4.11 -Release: 5%{?dist} -Summary: GTK+ Web content engine library - -Group: Development/Libraries -License: LGPLv2+ and BSD -URL: http://www.webkitgtk.org/ - -Source0: http://www.webkitgtk.org/releases/webkitgtk-%{version}.tar.xz - -# https://bugs.webkit.org/show_bug.cgi?id=142074 -Patch0: webkitgtk-2.4.8-user-agent.patch -Patch1: webkitgtk-2.4.9-abs.patch - -BuildRequires: bison -BuildRequires: chrpath -BuildRequires: enchant-devel -BuildRequires: flex -BuildRequires: geoclue2-devel -BuildRequires: gettext -BuildRequires: gperf -BuildRequires: gstreamer1-devel -BuildRequires: gstreamer1-plugins-base-devel -BuildRequires: gtk2-devel >= 2.24.10 -BuildRequires: glib2-devel >= 2.36.0 -BuildRequires: harfbuzz-devel -BuildRequires: libsoup-devel >= 2.42.0 -BuildRequires: libicu-devel -BuildRequires: libjpeg-devel -BuildRequires: libsecret-devel -BuildRequires: libwebp-devel -BuildRequires: libxslt-devel -BuildRequires: libXt-devel -BuildRequires: pcre-devel -BuildRequires: sqlite-devel -BuildRequires: gobject-introspection-devel -BuildRequires: mesa-libGL-devel -BuildRequires: gtk-doc -BuildRequires: ruby rubypick rubygems -BuildRequires: cairo-devel -BuildRequires: cairo-gobject-devel -BuildRequires: fontconfig-devel >= 2.5 -BuildRequires: freetype-devel -Requires: geoclue2 - -%ifarch ppc -BuildRequires: libatomic +# No libmanette in RHEL +%if !0%{?rhel} +%global with_gamepad 1 %endif +# GTK 4 is not stable yet. The package name and API version might change, and +# many other API changes are planned. We are looking to enable the GTK 4 +# package very soon, long before the API is stable, but not before the +# package name is finalized. +%bcond_with gtk4 + +# Build documentation by default (use `rpmbuild --without docs` to override it). +# This is used by Coverity. Coverity injects custom compiler warnings, but +# any warning during WebKit docs build is fatal! +%bcond_without docs + +Name: webkitgtk +Version: 2.37.1 +Release: %autorelease +Summary: GTK web content engine library + +License: LGPLv2 +URL: https://www.webkitgtk.org/ +Source0: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz +Source1: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz.asc +# Use the keys from https://webkitgtk.org/verifying.html +# $ gpg --import aperez.key carlosgc.key +# $ gpg --export --export-options export-minimal D7FCF61CF9A2DEAB31D81BD3F3D322D0EC4582C3 5AA3BC334FD7E3369E7C77B291C559DBE4C9123B > webkitgtk-keys.gpg +Source2: webkitgtk-keys.gpg + +%if 0%{?rhel} +# https://bugs.webkit.org/show_bug.cgi?id=217989 +# https://bugs.webkit.org/show_bug.cgi?id=227905 +Patch0: aarch64-page-size.patch +%endif + +# https://bugs.webkit.org/show_bug.cgi?id=242579#c4 +Patch1: fix-cloop-build.patch + +BuildRequires: bison +BuildRequires: bubblewrap +BuildRequires: cmake +BuildRequires: flex +BuildRequires: gcc-c++ +BuildRequires: gettext +BuildRequires: gi-docgen +BuildRequires: git +BuildRequires: gnupg2 +BuildRequires: gperf +BuildRequires: hyphen-devel +BuildRequires: libatomic +BuildRequires: ninja-build +BuildRequires: perl(English) +BuildRequires: perl(FindBin) +BuildRequires: perl(JSON::PP) +BuildRequires: python3 +BuildRequires: ruby +BuildRequires: rubygems +BuildRequires: rubygem-json +BuildRequires: xdg-dbus-proxy + +BuildRequires: pkgconfig(atspi-2) +BuildRequires: pkgconfig(cairo) +BuildRequires: pkgconfig(egl) +BuildRequires: pkgconfig(enchant-2) +BuildRequires: pkgconfig(fontconfig) +BuildRequires: pkgconfig(freetype2) +BuildRequires: pkgconfig(gl) +BuildRequires: pkgconfig(glib-2.0) +BuildRequires: pkgconfig(glesv2) +BuildRequires: pkgconfig(gobject-introspection-1.0) +BuildRequires: pkgconfig(gstreamer-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(libgcrypt) +BuildRequires: pkgconfig(libjpeg) +BuildRequires: pkgconfig(libnotify) +BuildRequires: pkgconfig(libopenjp2) +BuildRequires: pkgconfig(libpcre) +BuildRequires: pkgconfig(libpng) +BuildRequires: pkgconfig(libseccomp) +BuildRequires: pkgconfig(libsecret-1) +BuildRequires: pkgconfig(libsoup-2.4) +BuildRequires: pkgconfig(libsoup-3.0) +BuildRequires: pkgconfig(libsystemd) +BuildRequires: pkgconfig(libtasn1) +BuildRequires: pkgconfig(libwebp) +BuildRequires: pkgconfig(libwoff2dec) +BuildRequires: pkgconfig(libxslt) +%if 0%{?with_gamepad} +BuildRequires: pkgconfig(manette-0.2) +%endif +BuildRequires: pkgconfig(sqlite3) +BuildRequires: pkgconfig(upower-glib) +BuildRequires: pkgconfig(wayland-client) +BuildRequires: pkgconfig(wayland-egl) +BuildRequires: pkgconfig(wayland-protocols) +BuildRequires: pkgconfig(wayland-server) +BuildRequires: pkgconfig(wpe-1.0) +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)$ + %description -WebKitGTK+ is the port of the portable web rendering engine WebKit to the -GTK+ platform. +WebKitGTK is the port of the WebKit web rendering engine to the +GTK platform. -This package contains an insecure and deprecated version of WebKitGTK+ for GTK+ 2. +%if %{with gtk4} +%package -n webkit2gtk5.0 +Summary: WebKitGTK for GTK 4 +Requires: javascriptcoregtk5.0%{?_isa} = %{version}-%{release} +Requires: bubblewrap +Requires: xdg-dbus-proxy +Recommends: geoclue2 +Recommends: gstreamer1-plugins-bad-free +Recommends: gstreamer1-plugins-good +Recommends: xdg-desktop-portal-gtk +Provides: bundled(angle) +Provides: bundled(pdfjs) +Provides: bundled(xdgmime) -%package devel -Summary: Development files for %{name} -Group: Development/Libraries -Requires: %{name} = %{version}-%{release} -Requires: pkgconfig -Requires: gtk2-devel +%description -n webkit2gtk5.0 +WebKitGTK is the port of the WebKit web rendering engine to the +GTK platform. This package contains WebKitGTK for GTK 4. +%endif -%description devel -The %{name}-devel package contains libraries, build data, and header -files for developing applications that use %{name}. +%package -n webkit2gtk4.1 +Summary: WebKitGTK for GTK 3 and libsoup 3 +Requires: javascriptcoregtk4.1%{?_isa} = %{version}-%{release} +Requires: bubblewrap +Requires: xdg-dbus-proxy +Recommends: geoclue2 +Recommends: gstreamer1-plugins-bad-free +Recommends: gstreamer1-plugins-good +Recommends: xdg-desktop-portal-gtk +Provides: bundled(angle) +Provides: bundled(pdfjs) +Provides: bundled(xdgmime) -%package doc -Summary: Documentation for %{name} -Group: Documentation -BuildArch: noarch -Requires: %{name} = %{version}-%{release} +%description -n webkit2gtk4.1 +WebKitGTK is the port of the WebKit web rendering engine to the +GTK platform. This package contains WebKitGTK for GTK 3 and libsoup 3. -%description doc -This package contains developer documentation for %{name}. +%package -n webkit2gtk4.0 +Summary: WebKitGTK for GTK 3 and libsoup 2 +Requires: javascriptcoregtk4.0%{?_isa} = %{version}-%{release} +Requires: bubblewrap +Requires: xdg-dbus-proxy +Recommends: geoclue2 +Recommends: gstreamer1-plugins-bad-free +Recommends: gstreamer1-plugins-good +Recommends: xdg-desktop-portal-gtk +Provides: bundled(angle) +Provides: bundled(pdfjs) +Provides: bundled(xdgmime) +Obsoletes: webkitgtk4 < %{version}-%{release} +Provides: webkitgtk4 = %{version}-%{release} +Obsoletes: webkit2gtk3 < %{version}-%{release} +Provides: webkit2gtk3 = %{version}-%{release} + +%description -n webkit2gtk4.0 +WebKitGTK is the port of the WebKit web rendering engine to the +GTK platform. This package contains WebKitGTK for GTK 3 and libsoup 2. + +%if %{with gtk4} +%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} + +%description -n webkit2gtk5.0-devel +The webkit2gtk5.0-devel package contains libraries, build data, and header +files for developing applications that use webkit2gtk5.0. +%endif + +%package -n webkit2gtk4.1-devel +Summary: Development files for webkit2gtk4.1 +Requires: webkit2gtk4.1%{?_isa} = %{version}-%{release} +Requires: javascriptcoregtk4.1%{?_isa} = %{version}-%{release} +Requires: javascriptcoregtk4.1-devel%{?_isa} = %{version}-%{release} + +%description -n webkit2gtk4.1-devel +The webkit2gtk4.1-devel package contains libraries, build data, and header +files for developing applications that use webkit2gtk4.1. + +%package -n webkit2gtk4.0-devel +Summary: Development files for webkit2gtk4.0 +Requires: webkit2gtk4.0%{?_isa} = %{version}-%{release} +Requires: javascriptcoregtk4.0%{?_isa} = %{version}-%{release} +Requires: javascriptcoregtk4.0-devel%{?_isa} = %{version}-%{release} +Obsoletes: webkitgtk4-devel < %{version}-%{release} +Provides: webkitgtk4-devel = %{version}-%{release} +Obsoletes: webkit2gtk3-devel < %{version}-%{release} +Provides: webkit2gtk3-devel = %{version}-%{release} + +%description -n webkit2gtk4.0-devel +The webkit2gtk4.0-devel package contains libraries, build data, and header +files for developing applications that use webkit2gtk4.0. + +%if %{with docs} +%if %{with gtk4} +%package -n webkit2gtk5.0-doc +Summary: Documentation files for webkit2gtk5.0 +BuildArch: noarch +Requires: webkit2gtk5.0 = %{version}-%{release} + +%description -n webkit2gtk5.0-doc +This package contains developer documentation for webkit2gtk5.0. +%endif + +%package -n webkit2gtk4.1-doc +Summary: Documentation files for webkit2gtk4.1 +BuildArch: noarch +Requires: webkit2gtk4.1 = %{version}-%{release} + +%description -n webkit2gtk4.1-doc +This package contains developer documentation for webkit2gtk4.1. + +%package -n webkit2gtk4.0-doc +Summary: Documentation files for webkit2gtk4.0 +BuildArch: noarch +Requires: webkit2gtk4.0 = %{version}-%{release} +Obsoletes: webkitgtk4-doc < %{version}-%{release} +Provides: webkitgtk4-doc = %{version}-%{release} +Obsoletes: webkit2gtk3-doc < %{version}-%{release} +Provides: webkit2gtk3-doc = %{version}-%{release} + +%description -n webkit2gtk4.0-doc +This package contains developer documentation for webkit2gtk4.0. +%endif + +%if %{with gtk4} +%package -n javascriptcoregtk5.0 +Summary: JavaScript engine from webkit2gtk5.0 + +%description -n javascriptcoregtk5.0 +This package contains JavaScript engine from webkit2gtk5.0. +%endif + +%package -n javascriptcoregtk4.1 +Summary: JavaScript engine from webkit2gtk4.1 + +%description -n javascriptcoregtk4.1 +This package contains JavaScript engine from webkit2gtk4.1. + +%package -n javascriptcoregtk4.0 +Summary: JavaScript engine from webkit2gtk4.0 +Obsoletes: webkitgtk4-jsc < %{version}-%{release} +Provides: webkitgtk4-jsc = %{version}-%{release} +Obsoletes: webkit2gtk3-jsc < %{version}-%{release} +Provides: webkit2gtk3-jsc = %{version}-%{release} + +%description -n javascriptcoregtk4.0 +This package contains JavaScript engine from webkit2gtk4.0. + +%if %{with gtk4} +%package -n javascriptcoregtk5.0-devel +Summary: Development files for JavaScript engine from webkit2gtk5.0 +Requires: javascriptcoregtk5.0%{?_isa} = %{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. +%endif + +%package -n javascriptcoregtk4.1-devel +Summary: Development files for JavaScript engine from webkit2gtk4.1 +Requires: javascriptcoregtk4.1%{?_isa} = %{version}-%{release} + +%description -n javascriptcoregtk4.1-devel +The javascriptcoregtk4.1-devel package contains libraries, build data, and header +files for developing applications that use JavaScript engine from webkit2gtk-4.1. + +%package -n javascriptcoregtk4.0-devel +Summary: Development files for JavaScript engine from webkit2gtk4.0 +Requires: javascriptcoregtk4.0%{?_isa} = %{version}-%{release} +Obsoletes: webkitgtk4-jsc-devel < %{version}-%{release} +Provides: webkitgtk4-jsc-devel = %{version}-%{release} +Obsoletes: webkit2gtk3-jsc-devel < %{version}-%{release} +Provides: webkit2gtk3-jsc-devel = %{version}-%{release} + +%description -n javascriptcoregtk4.0-devel +The javascriptcoregtk4.0-devel package contains libraries, build data, and header +files for developing applications that use JavaScript engine from webkit2gtk-4.0. %prep -%setup -qn "webkitgtk-%{version}" -%patch0 -p1 -b .user_agent -%patch1 -p1 -b .abs +%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}' +%autosetup -p1 -n webkitgtk-%{version} %build -# Use linker flags to reduce memory consumption -%global optflags %{optflags} -Wl,--no-keep-memory -Wl,--reduce-memory-overheads +# Increase the DIE limit so our debuginfo packages can be size-optimized. +# Decreases the size for x86_64 from ~5G to ~1.1G. +# https://bugzilla.redhat.com/show_bug.cgi?id=1456261 +%global _dwz_max_die_limit 250000000 -%ifarch s390 %{arm} mips mipsel -# Decrease debuginfo verbosity to reduce memory consumption even more -%global optflags %(echo %{optflags} | sed 's/-g /-g1 /') +# On x86_64, the _dwz_max_die_limit is overridden by the arch-specific limit +# from redhat-rpm-config. +%global _dwz_max_die_limit_x86_64 250000000 + +# Remove debuginfo from 32-bit builds to reduce memory consumption: +# https://bugs.webkit.org/show_bug.cgi?id=140176 +# https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/I6IVNA52TXTBRQLKW45CJ5K4RA4WNGMI/ +%ifarch %{ix86} +%global debug_package %{nil} +%global optflags %(echo %{optflags} | sed 's/-g /-g0 /') %endif -%ifarch ppc -# Use linker flag -relax to get WebKit build under ppc(32) with JIT disabled -%global optflags %{optflags} -Wl,-relax +# Warning: although RHEL 9 aarch64 now uses 4 KB page sizes, we still have to +# support 64 KB page sizes until the *builders* use RHEL 9. This means we still +# have to disable JIT and bmalloc, even though this disables important heap +# security features. We can't simply disable them only during this build, +# because gobject-introspection will crash when building anything that depends +# on WebKitGTK, because it calls each object's get_type() function, which will +# initialize bmalloc and JIT. + +%if %{with gtk4} +%define _vpath_builddir %{_vendor}-%{_target_os}-build/webkit2gtk-5.0 +%cmake \ + -GNinja \ + -DPORT=GTK \ + -DCMAKE_BUILD_TYPE=Release \ + -DUSE_GTK4=ON \ +%if %{without docs} + -DENABLE_DOCUMENTATION=OFF \ +%endif +%if !0%{?with_gamepad} + -DENABLE_GAMEPAD=OFF \ +%endif +%if 0%{?rhel} +%ifarch aarch64 + -DENABLE_JIT=OFF \ + -DUSE_SYSTEM_MALLOC=ON \ +%endif +%endif + %{nil} %endif -%ifarch s390 s390x ppc %{power64} aarch64 %{mips} -%global optflags %{optflags} -DENABLE_YARR_JIT=0 +%define _vpath_builddir %{_vendor}-%{_target_os}-build/webkit2gtk-4.1 +%cmake \ + -GNinja \ + -DPORT=GTK \ + -DCMAKE_BUILD_TYPE=Release \ +%if %{without docs} + -DENABLE_DOCUMENTATION=OFF \ +%endif +%if !0%{?with_gamepad} + -DENABLE_GAMEPAD=OFF \ +%endif +%if 0%{?rhel} +%ifarch aarch64 + -DENABLE_JIT=OFF \ + -DUSE_SYSTEM_MALLOC=ON \ +%endif +%endif + %{nil} + +%define _vpath_builddir %{_vendor}-%{_target_os}-build/webkit2gtk-4.0 +%cmake \ + -GNinja \ + -DPORT=GTK \ + -DCMAKE_BUILD_TYPE=Release \ + -DUSE_SOUP2=ON \ + -DENABLE_WEBDRIVER=OFF \ +%if %{without docs} + -DENABLE_DOCUMENTATION=OFF \ +%endif +%if !0%{?with_gamepad} + -DENABLE_GAMEPAD=OFF \ +%endif +%if 0%{?rhel} +%ifarch aarch64 + -DENABLE_JIT=OFF \ + -DUSE_SYSTEM_MALLOC=ON \ +%endif +%endif + %{nil} + +%if %{with gtk4} +%define _vpath_builddir %{_vendor}-%{_target_os}-build/webkit2gtk-5.0 +export NINJA_STATUS="[1/3][%f/%t %es] " +%cmake_build %limit_build -m 2048 %endif -# Regenerate configure to pick up the gcc 5.0 changes -autoreconf -v - -# Workaround crashes with gcc 6.1 -%global optflags %{optflags} -fno-delete-null-pointer-checks - -%if 0%{?fedora} -%global optflags %{optflags} -DUSER_AGENT_GTK_DISTRIBUTOR_NAME=\'\\"Fedora\\"\' -%endif - -%configure \ - --with-gtk=2.0 \ - --disable-webkit2 \ -%ifarch s390 s390x ppc %{power64} aarch64 %{mips} - --disable-jit \ +%define _vpath_builddir %{_vendor}-%{_target_os}-build/webkit2gtk-4.1 +%if %{with gtk4} +export NINJA_STATUS="[2/3][%f/%t %es] " %else - --enable-jit \ +export NINJA_STATUS="[1/2][%f/%t %es] " %endif - --enable-introspection +%cmake_build %limit_build -m 2048 -mkdir -p DerivedSources/webkit -mkdir -p DerivedSources/WebCore -mkdir -p DerivedSources/ANGLE -mkdir -p DerivedSources/WebKit2/webkit2gtk/webkit2 -mkdir -p DerivedSources/WebKit2 -mkdir -p DerivedSources/webkitdom/ -mkdir -p DerivedSources/InjectedBundle -mkdir -p DerivedSources/Platform - -make %{_smp_mflags} V=1 +%define _vpath_builddir %{_vendor}-%{_target_os}-build/webkit2gtk-4.0 +%if %{with gtk4} +export NINJA_STATUS="[3/3][%f/%t %es] " +%else +export NINJA_STATUS="[2/2][%f/%t %es] " +%endif +%cmake_build %limit_build -m 2048 %install -make install DESTDIR=%{buildroot} +%if %{with gtk4} +%define _vpath_builddir %{_vendor}-%{_target_os}-build/webkit2gtk-5.0 +%cmake_install +%endif -install -d -m 755 %{buildroot}%{_libexecdir}/%{name} -install -m 755 Programs/GtkLauncher %{buildroot}%{_libexecdir}/%{name} +%define _vpath_builddir %{_vendor}-%{_target_os}-build/webkit2gtk-4.1 +%cmake_install -# Remove lib64 rpaths -chrpath --delete %{buildroot}%{_bindir}/jsc-1 -chrpath --delete %{buildroot}%{_libdir}/libwebkitgtk-1.0.so -chrpath --delete %{buildroot}%{_libexecdir}/%{name}/GtkLauncher +%define _vpath_builddir %{_vendor}-%{_target_os}-build/webkit2gtk-4.0 +%cmake_install -# Remove .la files -find $RPM_BUILD_ROOT%{_libdir} -name "*.la" -delete +%if %{with gtk4} +%find_lang WebKit2GTK-5.0 +%endif +%find_lang WebKit2GTK-4.1 +%find_lang WebKit2GTK-4.0 -%find_lang WebKitGTK-2.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 +%add_to_license_files Source/WebCore/LICENSE-LGPL-2.1 +%add_to_license_files Source/WebInspectorUI/UserInterface/External/CodeMirror/LICENSE +%add_to_license_files Source/WebInspectorUI/UserInterface/External/Esprima/LICENSE +%add_to_license_files Source/WebInspectorUI/UserInterface/External/three.js/LICENSE +%add_to_license_files Source/WTF/icu/LICENSE +%add_to_license_files Source/WTF/wtf/dtoa/COPYING +%add_to_license_files Source/WTF/wtf/dtoa/LICENSE -## Finally, copy over and rename the various files for %%doc inclusion. -%add_to_doc_files Source/WebKit/LICENSE -%add_to_doc_files Source/WebKit/gtk/NEWS -%add_to_doc_files Source/WebCore/icu/LICENSE -%add_to_doc_files Source/WebCore/LICENSE-APPLE -%add_to_doc_files Source/WebCore/LICENSE-LGPL-2 -%add_to_doc_files Source/WebCore/LICENSE-LGPL-2.1 -%add_to_doc_files Source/JavaScriptCore/COPYING.LIB -%add_to_doc_files Source/JavaScriptCore/THANKS -%add_to_doc_files Source/JavaScriptCore/AUTHORS -%add_to_doc_files Source/JavaScriptCore/icu/README -%add_to_doc_files Source/JavaScriptCore/icu/LICENSE +%if %{with gtk4} +%files -n webkit2gtk5.0 -f WebKit2GTK-5.0.lang +%license _license_files/*ThirdParty* +%license _license_files/*WebCore* +%license _license_files/*WebInspectorUI* +%license _license_files/*WTF* +%{_libdir}/libwebkit2gtk-5.0.so.0* +%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 +%{_bindir}/WebKitWebDriver +%endif +%files -n webkit2gtk4.1 -f WebKit2GTK-4.1.lang +%license _license_files/*ThirdParty* +%license _license_files/*WebCore* +%license _license_files/*WebInspectorUI* +%license _license_files/*WTF* +%{_libdir}/libwebkit2gtk-4.1.so.0* +%dir %{_libdir}/girepository-1.0 +%{_libdir}/girepository-1.0/WebKit2-4.1.typelib +%{_libdir}/girepository-1.0/WebKit2WebExtension-4.1.typelib +%{_libdir}/webkit2gtk-4.1/ +%{_libexecdir}/webkit2gtk-4.1/ +%exclude %{_libexecdir}/webkit2gtk-4.1/MiniBrowser +%exclude %{_libexecdir}/webkit2gtk-4.1/jsc +%{_bindir}/WebKitWebDriver -%post -p /sbin/ldconfig +%files -n webkit2gtk4.0 -f WebKit2GTK-4.0.lang +%license _license_files/*ThirdParty* +%license _license_files/*WebCore* +%license _license_files/*WebInspectorUI* +%license _license_files/*WTF* +%{_libdir}/libwebkit2gtk-4.0.so.37* +%dir %{_libdir}/girepository-1.0 +%{_libdir}/girepository-1.0/WebKit2-4.0.typelib +%{_libdir}/girepository-1.0/WebKit2WebExtension-4.0.typelib +%{_libdir}/webkit2gtk-4.0/ +%{_libexecdir}/webkit2gtk-4.0/ +%exclude %{_libexecdir}/webkit2gtk-4.0/MiniBrowser +%exclude %{_libexecdir}/webkit2gtk-4.0/jsc -%postun -/sbin/ldconfig -if [ $1 -eq 0 ] ; then - glib-compile-schemas %{_datadir}/glib-2.0/schemas &>/dev/null || : -fi +%if %{with gtk4} +%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 +%dir %{_datadir}/gir-1.0 +%{_datadir}/gir-1.0/WebKit2-5.0.gir +%{_datadir}/gir-1.0/WebKit2WebExtension-5.0.gir +%endif -%posttrans -glib-compile-schemas %{_datadir}/glib-2.0/schemas &>/dev/null || : +%files -n webkit2gtk4.1-devel +%{_libexecdir}/webkit2gtk-4.1/MiniBrowser +%{_includedir}/webkitgtk-4.1/ +%exclude %{_includedir}/webkitgtk-4.1/JavaScriptCore +%exclude %{_includedir}/webkitgtk-4.1/jsc +%{_libdir}/libwebkit2gtk-4.1.so +%{_libdir}/pkgconfig/webkit2gtk-4.1.pc +%{_libdir}/pkgconfig/webkit2gtk-web-extension-4.1.pc +%dir %{_datadir}/gir-1.0 +%{_datadir}/gir-1.0/WebKit2-4.1.gir +%{_datadir}/gir-1.0/WebKit2WebExtension-4.1.gir +%files -n webkit2gtk4.0-devel +%{_libexecdir}/webkit2gtk-4.0/MiniBrowser +%{_includedir}/webkitgtk-4.0/ +%exclude %{_includedir}/webkitgtk-4.0/JavaScriptCore +%exclude %{_includedir}/webkitgtk-4.0/jsc +%{_libdir}/libwebkit2gtk-4.0.so +%{_libdir}/pkgconfig/webkit2gtk-4.0.pc +%{_libdir}/pkgconfig/webkit2gtk-web-extension-4.0.pc +%dir %{_datadir}/gir-1.0 +%{_datadir}/gir-1.0/WebKit2-4.0.gir +%{_datadir}/gir-1.0/WebKit2WebExtension-4.0.gir -%files -f WebKitGTK-2.0.lang -%doc %{_pkgdocdir} -%{_libdir}/libwebkitgtk-1.0.so.* -%{_libdir}/libjavascriptcoregtk-1.0.so.* -%{_libdir}/girepository-1.0/WebKit-1.0.typelib -%{_libdir}/girepository-1.0/JavaScriptCore-1.0.typelib -%{_libexecdir}/%{name}/ -%{_datadir}/webkitgtk-1.0 +%if %{with gtk4} +%files -n javascriptcoregtk5.0 +%license _license_files/*JavaScriptCore* +%{_libdir}/libjavascriptcoregtk-5.0.so.0* +%dir %{_libdir}/girepository-1.0 +%{_libdir}/girepository-1.0/JavaScriptCore-5.0.typelib +%endif -%files devel -%{_bindir}/jsc-1 -%{_includedir}/webkitgtk-1.0 -%{_libdir}/libwebkitgtk-1.0.so -%{_libdir}/libjavascriptcoregtk-1.0.so -%{_libdir}/pkgconfig/webkit-1.0.pc -%{_libdir}/pkgconfig/javascriptcoregtk-1.0.pc -%{_datadir}/gir-1.0/WebKit-1.0.gir -%{_datadir}/gir-1.0/JavaScriptCore-1.0.gir -%{_datadir}/gtk-doc/html/webkitdomgtk +%files -n javascriptcoregtk4.1 +%license _license_files/*JavaScriptCore* +%{_libdir}/libjavascriptcoregtk-4.1.so.0* +%dir %{_libdir}/girepository-1.0 +%{_libdir}/girepository-1.0/JavaScriptCore-4.1.typelib -%files doc +%files -n javascriptcoregtk4.0 +%license _license_files/*JavaScriptCore* +%{_libdir}/libjavascriptcoregtk-4.0.so.18* +%dir %{_libdir}/girepository-1.0 +%{_libdir}/girepository-1.0/JavaScriptCore-4.0.typelib + +%if %{with gtk4} +%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 +%dir %{_datadir}/gir-1.0 +%{_datadir}/gir-1.0/JavaScriptCore-5.0.gir +%endif + +%files -n javascriptcoregtk4.1-devel +%{_libexecdir}/webkit2gtk-4.1/jsc +%dir %{_includedir}/webkitgtk-4.1 +%{_includedir}/webkitgtk-4.1/JavaScriptCore/ +%{_includedir}/webkitgtk-4.1/jsc/ +%{_libdir}/libjavascriptcoregtk-4.1.so +%{_libdir}/pkgconfig/javascriptcoregtk-4.1.pc +%dir %{_datadir}/gir-1.0 +%{_datadir}/gir-1.0/JavaScriptCore-4.1.gir + +%files -n javascriptcoregtk4.0-devel +%{_libexecdir}/webkit2gtk-4.0/jsc +%dir %{_includedir}/webkitgtk-4.0 +%{_includedir}/webkitgtk-4.0/JavaScriptCore/ +%{_includedir}/webkitgtk-4.0/jsc/ +%{_libdir}/libjavascriptcoregtk-4.0.so +%{_libdir}/pkgconfig/javascriptcoregtk-4.0.pc +%dir %{_datadir}/gir-1.0 +%{_datadir}/gir-1.0/JavaScriptCore-4.0.gir + +%if %{with docs} +%if %{with gtk4} +%files -n webkit2gtk5.0-doc %dir %{_datadir}/gtk-doc %dir %{_datadir}/gtk-doc/html -%{_datadir}/gtk-doc/html/webkitgtk +%{_datadir}/gtk-doc/html/javascriptcoregtk-5.0/ +%{_datadir}/gtk-doc/html/webkit2gtk-5.0/ +%{_datadir}/gtk-doc/html/webkit2gtk-web-extension-5.0/ +%endif + +%files -n webkit2gtk4.1-doc +%dir %{_datadir}/gtk-doc +%dir %{_datadir}/gtk-doc/html +%{_datadir}/gtk-doc/html/javascriptcoregtk-4.1/ +%{_datadir}/gtk-doc/html/webkit2gtk-4.1/ +%{_datadir}/gtk-doc/html/webkit2gtk-web-extension-4.1/ + +%files -n webkit2gtk4.0-doc +%dir %{_datadir}/gtk-doc +%dir %{_datadir}/gtk-doc/html +%{_datadir}/gtk-doc/html/javascriptcoregtk-4.0/ +%{_datadir}/gtk-doc/html/webkit2gtk-4.0/ +%{_datadir}/gtk-doc/html/webkit2gtk-web-extension-4.0/ +%endif %changelog -* Sat Feb 11 2017 Fedora Release Engineering - 2.4.11-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild - -* Wed Feb 01 2017 Sandro Mani - 2.4.11-4 -- Rebuild (libwebp) - -* Fri Jun 24 2016 Tomas Popela - 2.4.11-3 -- Workaround crashes with gcc 6.1 -- rhbz#1349318 - segfault in libjavascriptcoregtk-1.0.so.0.16.19 when launching Citrix Receiver - -* Fri Apr 15 2016 David Tardon - 2.4.11-2 -- rebuild for ICU 57.1 - -* Mon Apr 11 2016 Tomas Popela - 2.4.11-1 -- Update to 2.4.11 - -* Tue Apr 05 2016 Tomas Popela - 2.4.10-4 -- Fix the compilation on aarch64 - -* Tue Apr 05 2016 Tomas Popela - 2.4.10-3 -- rhbz#1321722 - [abrt] evolution: WTF::StringImpl::startsWith(): SIGSEGV with webkitgtk3-2.4.10 - -* Thu Mar 24 2016 Tomas Popela - 2.4.10-2 -- Add a workaround for rhbz#1320240 - -* Mon Mar 14 2016 Tomas Popela - 2.4.10-1 -- Update to 2.4.10 - -* Tue Feb 9 2016 Peter Robinson 2.4.9-10 -- Add ruby deps for build - -* Sun Feb 07 2016 Kevin Fenzi - 2.4.9-9 -- Add patch to fix FTBFS - -* Fri Feb 05 2016 Fedora Release Engineering - 2.4.9-8 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild - -* Wed Dec 30 2015 Michal Toman - 2.4.9-7 -- Add support for MIPS - -* Mon Dec 28 2015 Igor Gnatenko - 2.4.9-6 -- Rebuilt for libwebp soname bump - -* Mon Dec 07 2015 Tomas Popela - 2.4.9-5 -- rhbz#1289053 - Retire nspluginwrapper and remove from Fedora 24 - -* Wed Oct 28 2015 David Tardon - 2.4.9-4 -- rebuild for ICU 56.1 - -* Fri Sep 25 2015 Tomas Popela - 2.4.9-3 -- rhbz#1189303 - [abrt] midori: WebCore::SQLiteStatement::prepare(): midori killed by SIGSEGV - Initialize string in SQLiteStatement before using it - -* Fri Jun 19 2015 Fedora Release Engineering - 2.4.9-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild - -* Wed May 20 2015 Tomas Popela - 2.4.9-1 -- Update to 2.4.9 - -* Mon May 11 2015 Tomas Popela - 2.4.8-4 -- Add Fedora branding to the user agent - -* Wed Feb 18 2015 Tomas Popela - 2.4.8-3 -- Add support for gcc 5.0 -- Let the package compile with latest glib - -* Mon Jan 26 2015 David Tardon - 2.4.8-2 -- rebuild for ICU 54.1 - -* Wed Jan 07 2015 Tomas Popela - 2.4.8-1 -- Update to 2.4.8 - -* Wed Oct 22 2014 Tomas Popela - 2.4.7-1 -- Update to 2.4.7 - -* Mon Sep 29 2014 Tomas Popela - 2.4.6-1 -- Update to 2.4.6 - -* Tue Sep 02 2014 Tomas Popela - 2.4.5-3 -- Rebase the aarch64 patch - -* Tue Aug 26 2014 David Tardon - 2.4.5-2 -- rebuild for ICU 53.1 - -* Tue Aug 26 2014 Tomas Popela - 2.4.5-1 -- Update to 2.4.5 - -* Mon Aug 18 2014 Fedora Release Engineering - 2.4.4-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild - -* Wed Jul 23 2014 Tomas Popela - 2.4.4-3 -- Remove geoclue-devel from BR - -* Wed Jul 23 2014 Tomas Popela - 2.4.4-2 -- Fix CLoop on ppc32 and s390 -- Add geoclue-devel as BR as WK1 needs it - -* Thu Jul 10 2014 Tomas Popela 2.4.4-1 -- Update to 2.4.4 - -* Fri Jul 04 2014 Tomas Popela 2.4.3-4 -- rhbz#1088480 - [abrt] libwebkit2gtk: TSymbolTableLevel::~TSymbolTableLevel(): WebKitWebProcess killed by SIGSEGV - -* Wed Jun 25 2014 Yaakov Selkowitz - 2.4.3-3 -- Fix for 64k pages on aarch64 (#1074093, #1113347) - -* Sun Jun 08 2014 Fedora Release Engineering - 2.4.3-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild - -* Tue May 27 2014 Tomas Popela 2.4.3-1 -- Update to 2.4.3 - -* Sun May 18 2014 Peter Robinson 2.4.2-2 -- Fix aarch64 build - -* Thu May 15 2014 Tomas Popela 2.4.2-1 -- Update to 2.4.2 -- Fix for CLoop on ppc64, ppc64le and s390x - -* Fri Apr 25 2014 Peter Robinson 2.4.1-2 -- Switch over to geoclue2 - -* Tue Apr 15 2014 Kevin Fenzi 2.4.1-1 -- Update to 2.4.1 - -* Sat Mar 22 2014 Peter Robinson 2.2.6-2 -- Fix build and disable JIT on aarch64 - -* Wed Mar 19 2014 Tomas Popela 2.2.6-1 -- Update to 2.2.6 - -* Wed Feb 19 2014 Tomas Popela 2.2.5-1 -- Update to 2.2.5 - -* Tue Feb 18 2014 Tomas Popela 2.2.4-4 -- Enable full debuginfo on s390s - -* Wed Feb 12 2014 Nils Philippsen - 2.2.4-3 -- fix changelog release number -- rebuild for new libicu - -* Tue Jan 21 2014 Tomas Popela 2.2.4-2 -- Update to 2.2.4 - -* Thu Jan 02 2014 Orion Poplawski - 2.2.3-2 -- Rebuild for libwebp soname bump - -* Wed Dec 04 2013 Tomas Popela - 2.2.3-1 -- Update to 2.2.3 - -* Wed Dec 04 2013 Karsten Hopp 2.2.2-2 -- apply the correct double2intsPPC32 patch on ppc - -* Mon Nov 11 2013 Kevin Fenzi 2.2.2-1 -- Update to 2.2.2 - -* Thu Oct 17 2013 Kevin Fenzi 2.2.1-1 -- Update to 2.2.1 - -* Fri Sep 27 2013 Kevin Fenzi 2.2.0-1 -- Update 2.2.0 - -* Sun Aug 04 2013 Karsten Hopp 2.0.4-3 -- update ppc libatomic patch - -* Sat Jul 27 2013 Kevin Fenzi 2.0.4-2 -- Fix for unversioned doc dirs - -* Mon Jul 22 2013 Tomas Popela - 2.0.4-1 -- Update to 2.0.4 - -* Fri Jun 07 2013 Kalev Lember - 2.0.2-2 -- Link with harfbuzz-icu (split into separate library in harfbuzz 0.9.18) - -* Mon May 13 2013 Tomas Popela - 2.0.2-1 -- Update to 2.0.2 - -* Wed Apr 17 2013 Tomas Popela - 2.0.1-1 -- Update to 2.0.1 - -* Wed Apr 3 2013 Tomas Popela - 2.0.0-2 -- Add cairo-gobject as BR -- Apply double2intsPPC32.patch also on s390 - -* Tue Apr 2 2013 Tomas Popela - 2.0.0-1 -- Update to 2.0.0 -- Update BR versions -- Drop unused patches -- Change spec structure to webkitgtk3 spec file - -* Tue Mar 12 2013 Tomas Popela 1.10.2-6 -- Add upstream patch for RH bug #908143 - AccessibilityTableRow::parentTable crash -- Add fix for bug #907432 - Rendering glitches on some sites - -* Sat Feb 02 2013 Kevin Fenzi 1.10.2-5 -- Drop building with -g1 now. Fixes bug #861452 - -* Wed Jan 30 2013 Mamoru TASAKA - 1.10.2-4 -- Rebuild against new icu again - -* Sat Jan 26 2013 Kevin Fenzi 1.10.2-3 -- Rebuild for new icu - -* Mon Jan 21 2013 Adam Tkac - 1.10.2-2 -- rebuild due to "jpeg8-ABI" feature drop - -* Mon Dec 10 2012 Kalev Lember 1.10.2-1 -- Update to 1.10.2 -- Add a patch to explicitly link with librt - -* Sun Oct 21 2012 Kevin Fenzi 1.10.1-1 -- Update to 1.10.1 - -* Wed Sep 26 2012 Kevin Fenzi 1.10.0-1 -- Update to 1.10.0 - -* Thu Aug 23 2012 Kevin Fenzi 1.8.3-1 -- Update to 1.8.3 - -* Mon Aug 06 2012 Kevin Fenzi - 1.8.2-1 -- Update to 1.8.2 - -* Mon Aug 06 2012 Kalev Lember - 1.8.1-5 -- Backport a build fix with bison 2.6 - -* Sun Jul 22 2012 Fedora Release Engineering - 1.8.1-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild - -* Wed Jul 11 2012 Ville Skyttä - 1.8.1-3 -- Fix %%post scriptlet dependencies. - -* Mon May 14 2012 Peter Robinson - 1.8.1-2 -- Explicitly disable JIT on ARM as it's not currently stable with JS heavy pages - -* Wed Apr 25 2012 Kalev Lember - 1.8.1-1 -- Update to 1.8.1 -- Dropped the backported patches -- Remove lib64 rpaths with chrpath -- Update gsettings rpm scriptlets - -* Fri Apr 20 2012 Orion Poplwski - 1.8.0-5 -- Rebuild for icu 49 - -* Wed Apr 18 2012 Peter Robinson - 1.8.0-4 -- Add upstream patch to fix crash when SSE2 isn't present -- Add upstream patch to flickering when some widgets are drawn - -* Fri Apr 13 2012 Dan Horák - 1.8.0-3 -- updated s390/ppc build options to match webkitgtk3 - -* Mon Apr 09 2012 Kalev Lember - 1.8.0-2 -- Install developer docs in -doc and mark it as noarch (#808917) -- Move the license files to the main package - -* Tue Mar 27 2012 Kevin Fenzi - 1.8.0-1 -- Update to 1.8.0 - -* Tue Feb 28 2012 Peter Robinson - 1.6.3-2 -- Add ARM to and optimise compile flags for low mem arches - -* Wed Feb 01 2012 Kevin Fenzi 1.6.3-1 -- Update to 1.6.3. -- enable webgl - -* Fri Jan 20 2012 Kevin Fenzi - 1.6.1-5 -- Fix string issue causing failure to build. Already upstreamed. - -* Sat Jan 14 2012 Fedora Release Engineering - 1.6.1-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild - -* Mon Dec 05 2011 Adam Jackson 1.6.1-3 -- Rebuild for new libpng -- webkit-1.6.1-new-glib.patch: Fix for new glib headers - -* Wed Oct 12 2011 Dan Horák - 1.6.1-2 -- fix build on s390(x) - -* Tue Sep 27 2011 Kevin Fenzi - 1.6.1-1 -- Update to 1.6.1 - -* Mon Sep 26 2011 Kevin Fenzi - 1.6.0-1 -- Update to new 1.6.0 stable. - -* Thu Sep 08 2011 Kevin Fenzi - 1.4.3-2 -- Rebuild for new libicu - -* Mon Aug 29 2011 Kevin Fenzi - 1.4.3-1 -- Update to 1.4.3 - -* Fri Jul 01 2011 Kevin Fenzi - 1.4.2-1 -- Update to 1.4.2 - -* Sat Jun 11 2011 Kevin Fenzi - 1.4.1-1 -- Update to 1.4.1 - -* Tue Apr 26 2011 Kevin Fenzi - 1.4.0-1 -- Update to 1.4.0 stable release. - -* Fri Apr 15 2011 Kevin Fenzi - 1.3.13-2 -- Fix build issue with gcc 4.6 - -* Thu Mar 24 2011 Kevin Fenzi - 1.3.13-1 -- Update to 1.3.13 - -* Mon Mar 07 2011 Caolán McNamara - 1.3.12-2 -- rebuild for icu 4.6 - -* Wed Feb 23 2011 Kevin Fenzi - 1.3.12-1 -- Update to 1.3.12 - -* Mon Feb 07 2011 Fedora Release Engineering - 1.3.11-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild - -* Wed Feb 02 2011 Kevin Fenzi - 1.3.11-1 -- Update to 1.3.11 - -* Mon Jan 10 2011 Kevin Fenzi - 1.3.10-1 -- Update to 1.3.10 - -* Tue Jan 04 2011 Huzaifa Sidhpurwala 1.3.9-4 -- Upgrade to 1.3.9 -- Remove s390 patch, it was absorbed upstream -- No translations available - -* Mon Dec 13 2010 Dan Horák - 1.3.6-2 -- Add back updated s390(x) patch -- Do not generate debug information to prevent linker memory exhaustion on s390 - with its 2 GB address space - -* Mon Nov 08 2010 Kevin Fenzi - 1.3.6-1 -- Update to 1.3.6 - -* Thu Oct 28 2010 Kevin Fenzi - 1.3.5-1 -- Update to 1.3.5 - -* Wed Sep 29 2010 jkeating - 1.3.4-3 -- Rebuilt for gcc bug 634757 - -* Thu Sep 23 2010 Kevin Fenzi - 1.3.4-2 -- Enable JIT/patch for execmem. -- Move inspector into the main package. - -* Thu Sep 23 2010 Matthias Clasen - 1.3.4-1 -- Update to 1.3.4 -- Rebuild against newer gobject-introspection - -* Tue Jul 20 2010 Dan Horák - 1.3.2-4 -- Fix build on s390(x) - -* Thu Jul 15 2010 Colin Walters - 1.3.2-3 -- Rebuild with new gobject-introspection - -* Fri Jul 2 2010 Matthias Clasen 1.3.2-2 -- Enable introspection (needed for epiphany) - -* Thu Jul 1 2010 Matthias Clasen 1.3.2-1 -- Update to 1.3.2 - -* Fri May 28 2010 Matthias Clasen 1.3.1-1 -- Update to 1.3.1 (required for epiphany) - -* Sun Apr 11 2010 Matthias Clasen 1.2.0-1 -- Update to 1.2.0 - -* Fri Apr 02 2010 Caolán McNamara 1.1.22-3 -- rebuild for icu 4.4 - -* Tue Mar 23 2010 Tom "spot" Callaway 1.1.22-2 -- apply upstream fix for sparc - -* Mon Feb 22 2010 Matthias Clasen 1.1.22-1 -- Update to 1.1.22 - -* Wed Feb 10 2010 Bastien Nocera 1.1.21-1 -- Update to 1.1.21 - -* Tue Jan 26 2010 Matthias Clasen 1.1.19-1 -- Update to 1.1.19 - -* Sun Jan 17 2010 Matthias Clasen 1.1.18-1 -- Update to 1.1.18 - -* Tue Dec 01 2009 Bastien Nocera 1.1.17-1 -- Update to 1.1.17 - -* Sat Oct 31 2009 Matthias Clasen - 1.1.15.3-1 -- Update to 1.1.15.3, more crash fixes and important media player fixes -- See https://lists.webkit.org/pipermail/webkit-gtk/2009-October/000047.html - -* Thu Oct 15 2009 Matthias Clasen - 1.1.15.2-1 -- Update to 1.1.15.2, which has multiple crash and other fixes -- See https://lists.webkit.org/pipermail/webkit-gtk/2009-October/000040.html - -* Thu Sep 24 2009 Peter Gordon - 1.1.15.1-3 -- Forcibly disable JIT until we can properly resolve the execmem-caused - segfaulting. (Temporary workaround until bug #516057 can be properly fixed.) -- Remove the gnome-keyring build option (no longer used by the build scripts). -- Correct release value of previous %%changelog entry. - -* Wed Sep 23 2009 Matthias Clasen - 1.1.15.1-2 -- Update to 1.1.15.1 - -* Mon Sep 14 2009 Bastien Nocera 1.1.14-3 -- Add support for nspluginwrapper plugins - -* Tue Sep 08 2009 Karsten Hopp 1.1.14-2 -- bump release and rebuild as the package was linked with an old libicu - during the mass rebuild on s390x - -* Mon Sep 7 2009 Matthias Clasen - 1.1.14-1 -- Update to 1.1.14 - -* Tue Aug 25 2009 Matthias Clasen - 1.1.13-1 -- Update to 1.1.13 - -* Sat Aug 22 2009 Peter Gordon - 1.1.12-2 -- Add patch to forcibly disable RWX memory in the x86/x86-64 assembler. - + no-execmem.patch -- Use %%add_to_doc_files to add the gtk/NEWS file instead of %%doc, which - clobbered the doc files before they could be properly installed to the -doc - subpackage. -- Resolves: #516057 (gets whacked by selinux execmem check) and #518693 - (webkitgtk-doc package effectively empty). -- Update minimum required libsoup version. - -* Tue Jul 28 2009 Matthias Clasen - 1.1.12-1 -- Update to 1.1.12 - -* Mon Jul 27 2009 Fedora Release Engineering - 1.1.11-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild - -* Mon Jul 13 2009 Matthias Clasen - 1.1.11-1 -- Update to 1.1.11 - -* Wed Jul 08 2009 Peter Gordon - 1.1.10-3 -- Move jsc to the -devel subpackage (#510355). - -* Sat Jul 04 2009 Peter Gordon - 1.1.10-2 -- Invoke chrpath to remove the hardcoded RPATH in GtkLauncher. -- Remove unnecessary libtool build dependency. - -* Tue Jun 16 2009 Matthias Clasen - 1.1.10-1 -- Update to 1.1.10 - -* Sat Jun 13 2009 Dennis Gilmore - 1.1.8-2 -- _atomic_word is not always an int - -* Fri May 29 2009 Peter Gordon - 1.1.8-1 -- Update to new upstream release (1.1.8) - -* Thu May 28 2009 Peter Gordon - 1.1.7-1 -- Update to new upstream release (1.1.7) -- Remove jit build conditional. (JIT is now enabled by default on platforms - which support it: currently 32- and 64-bit x86.) -- Fix installation of the GtkLauncher demo program so that it - is a binary and not a script. (Fixes bug #443048.) - -* Sat May 09 2009 Peter Gordon - 1.1.6-1 -- Update to new upstream release (1.1.6). -- Drop workaround for bug 488112 (fixed upstream). -- Fixes bug 484335 (Copy link locations to the primary selection; patched - upstream). -- Include upstream changelog (NEWS) as part of the installed documentation. -- Fix capitalization in previous %%changelog entry. -- Add build-time conditional support for 3-D transforms (default off). - -* Sat May 09 2009 Mamoru Tasaka - 1.1.4-2 -- Rebuild against new icu - -* Tue Apr 07 2009 Peter Gordon - 1.1.4-1 -- Update to new upstream release (1.1.4) -- Enable building with geolocation support. -- Add build-time conditional for enabling code coverage checking (coverage). -- Remove html5video conditional and update dependencies accordingly. (HTML5 - video embedding support is now enabled by default by upstream.) - -* Sun Mar 15 2009 Peter Gordon - 1.1.3-1 -- Rename from WebKit-gtk and friends to WebKitGTK and subpackages. -- Update to new upstream release (1.1.3) -- Clean up the add_to_doc_files macro usage. - -* Sat Mar 07 2009 Peter Gordon - 1.1.1-1 -- Update to new upstream release (1.1.1), includes a soname bump. -- Enable gnome-keyring support. - -* Wed Mar 4 2009 Mamoru Tasaka - 1.1.0-0.21.svn41071 -- Compile libJavaScriptCore.a with -fno-strict-aliasing to - do workaround for #488112 - -* Mon Feb 23 2009 Fedora Release Engineering - 1.1.0-0.20.svn41071 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild - -* Fri Feb 20 2009 Peter Gordon 1.1.0-0.19.svn41071 -- Update to new upstream snapshot (SVN 41071). -- Drop libsoup build conditional. Use libsoup as default HTTP backend instead - of cURL, following upstream's default. - -* Fri Jan 30 2009 Peter Gordon 1.1.0-0.18.svn40351 -- Fix ownership of doc directory...this time without the oops (#473619). -- Bump package version number to match that used in the configure/build - scripts. (Thanks to Martin Sourada for the bug report via email.) - -* Thu Jan 29 2009 Peter Gordon 1.0.0-0.17.svn40351 -- Update to new upstream snapshot (SVN 40351): adds the WebPolicyDelegate - implementaton and related API (#482739). -- Drop Bison 2.4 patch (fixed upstream): - - bison24.patch -- Fixes CVE-2008-6059: Sensitive information disclosure from cookies via - XMLHttpRequest calls (#484197). - -* Sat Nov 29 2008 Peter Gordon 1.0.0-0.16.svn39370 -- Update to new upstream snapshot (SVN 39370) -- Fix ownership of %%_docdir in the doc subpackage. -- Resolves: bug 473619 (WebKit : Unowned directories). -- Adds webinspector data to the gtk-devel subpackage. -- Add patch from upstream bug 22205 to fix compilation errors with Bison 2.4: - + bison24.patch -- Add build-time conditional for WML support. - -* Thu Oct 23 2008 Peter Gordon 1.0.0-0.15.svn37790 -- Update to new upstream snapshot (SVN 37790). -- Default to freetype font backend for improved CJK/Unicode support. (#448693) -- Add some notes to the build options comments block. -- Add a build-time conditional for jit - -* Sun Aug 24 2008 Peter Gordon 1.0.0-0.14.svn35904 -- Update to new upstream snapshot (SVN 35904) - -* Fri Jul 04 2008 Peter Gordon -- Remove outdated and unnecessary GCC 4.3 patch: - - gcc43.patch -- Fix the curl-devel BuildRequire conditional. (It is only needed when building - against curl instead of libsoup.) - -* Thu Jun 12 2008 Peter Gordon 1.0.0-0.13.svn34655 -- Update to new upstream snapshot (SVN 34655) -- Add some build-time conditionals for non-default features: debug, - html5video, libsoup, pango, svg. - -* Tue Jun 3 2008 Caolán McNamara - 1.0.0-0.12.svn34279 -- rebuild for new icu - -* Tue Jun 3 2008 Mamoru Tasaka - 1.0.0-0.11.svn34279 -- Update to new upstream snapshot (SVN 34279) anyway -- Add BR: libXt-devel - -* Tue Apr 29 2008 Peter Gordon 1.0.0-0.10.svn32531 -- Remove the -Qt subpackage stuff. QtWebKit is now included in Qt proper, as - of qt-4.4.0-0.6.rc1. (We no longer need separate build-qt and build-gtk - subdirectories either.) -- Reference: bug 442200 (RFE: WebKit Migration) -- Add libjpeg dependency (was previously pulled in by the qt4-devel dependency - tree). - -* Mon Apr 28 2008 Mamoru Tasaka - 1.0.0-0.9.svn32531 -- Update to new upstream snapshot (SVN 32531). -- Fix bug 443048 and hopefully fix bug 444445 -- Modify the process of building GTK+ port a bit -- on qt port WebKit/qt/Plugins is not built for qt >= 4.4.0 - -* Sat Apr 12 2008 Peter Gordon 1.0.0-0.8.svn31787 -- Update to new upstream snapshot (SVN 31787). -- Resolves: CVE-2008-1010 (bug 438532: Arbitrary code execution) and - CVE-2008-1011 (bug 438531: Cross-Site Scripting). -- Switch to using autotools for building the GTK+ port. - -* Wed Mar 05 2008 Peter Gordon 1.0.0-0.7.svn30667 -- Fix the WebKitGtk pkgconfig data (should depend on gtk+-2.0). Resolves - bug 436073 (Requires: gtk+-2.0 missing from WebKitGtk.pc). -- Thanks to Mamoru Tasaka for helping find and squash these many bugs. - -* Sat Mar 01 2008 Peter Gordon 1.0.0-0.6.svn30667 -- Fix include directory naming. Resolves: bug 435561 (Header file <> header - file location mismatch) -- Remove qt4-devel runtime dependency and .prl file from WebKit-gtk-devel. - Resolves: bug 433138 (WebKit-gtk-devel has a requirement on qt4-devel) - -* Fri Feb 29 2008 Peter Gordon 1.0.0-0.5.svn30667 -- Update to new upstream snapshot (SVN 30667) -- Add some build fixes for GCC 4.3: - + gcc43.patch - -* Tue Feb 19 2008 Fedora Release Engineering - 1.0.0-0.5.svn29336 -- Autorebuild for GCC 4.3 - -* Wed Jan 09 2008 Peter Gordon 1.0.0-0.4.svn29336 -- Update to new upstream snapshot (SVN 29336). -- Drop TCSpinLock pthread workaround (fixed upstream): - - TCSpinLock-use-pthread-stubs.patch - -* Thu Dec 06 2007 Peter Gordon 1.0.0-0.3.svn28482 -- Add proper %%defattr line to qt, qt-devel, and doc subpackages. -- Add patch to forcibly build the TCSpinLock code using the pthread - implementation: - + TCSpinLock-use-pthread-stubs.patch - -* Thu Dec 06 2007 Peter Gordon 1.0.0-0.2.svn28482 -- Package renamed from WebKitGtk. -- Update to SVN 28482. -- Build both the GTK and Qt ports, putting each into their own respective - subpackages. -- Invoke qmake-qt4 and make directly (with SMP build flags) instead of using - the build-webkit script from upstream. -- Add various AUTHORS, README, and LICENSE files (via the doc subpackage). - -* Tue Dec 04 2007 Peter Gordon 1.0.0-0.1.svn28383 -- Initial packaging for Fedora. +%autochangelog From 4d5e6a02191e2521e3e0494556385f9da9d8bdf9 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Fri, 5 Aug 2022 12:41:27 -0500 Subject: [PATCH 008/200] Empty commit to bump revision: -2 From e35f6649ae66e80ef2fe7e5b27b729f2997bc611 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Fri, 5 Aug 2022 12:41:40 -0500 Subject: [PATCH 009/200] Empty commit to bump revision: -3 From ac5e1580e090953a52b2b833413cb6e3d099b6f8 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Fri, 5 Aug 2022 12:41:48 -0500 Subject: [PATCH 010/200] Empty commit to bump revision: -4 From 272535e42b6d5bff94aa896453f7f622b677d008 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Fri, 5 Aug 2022 12:41:53 -0500 Subject: [PATCH 011/200] Empty commit to bump revision: -5 From 4f42586c974e9c048bc5f46fc7e0b8d8f5df7c85 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Fri, 5 Aug 2022 12:41:59 -0500 Subject: [PATCH 012/200] Empty commit to bump revision: -6 From dbe951a5c82419c80d165e903a7ce42545557a1b Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Fri, 5 Aug 2022 12:42:06 -0500 Subject: [PATCH 013/200] Empty commit to bump revision: -7 From dd43cfb3506636c75a6de7954e073b534439fd4e Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Fri, 5 Aug 2022 12:42:40 -0500 Subject: [PATCH 014/200] Empty commit to bump revision: -8 From 61134e96d5a3cb6901c43628cc5bf52c31db361e Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Fri, 5 Aug 2022 12:42:47 -0500 Subject: [PATCH 015/200] Empty commit to bump revision: -9 From 890756203afcdb199cad3ebdd24f1ea16fa87829 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Fri, 5 Aug 2022 12:43:03 -0500 Subject: [PATCH 016/200] Empty commit to bump revision: -10 From 60dd5a7bce2b0b905821a80ec63e28a2ab3bb3e9 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Fri, 5 Aug 2022 12:43:08 -0500 Subject: [PATCH 017/200] Empty commit to bump revision: -11 From 7d569cc1f13d71ed9ffd9395caccbd2461171929 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Fri, 5 Aug 2022 12:43:16 -0500 Subject: [PATCH 018/200] Empty commit to bump revision: -12 From 8131de03a19499451cb0e2c529b2fea780013fff Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Fri, 5 Aug 2022 12:43:22 -0500 Subject: [PATCH 019/200] Empty commit to bump revision: -13 From 8c44a317e07bf8247cbbcce8b60b05115bd2ce93 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Mon, 8 Aug 2022 08:09:35 -0500 Subject: [PATCH 020/200] Enable GTK 4 Please don't depend on this yet unless you're GNOME. Rough seas ahead. --- webkitgtk.spec | 42 ------------------------------------------ 1 file changed, 42 deletions(-) diff --git a/webkitgtk.spec b/webkitgtk.spec index 8f7a375..096f5ae 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -10,12 +10,6 @@ %global with_gamepad 1 %endif -# GTK 4 is not stable yet. The package name and API version might change, and -# many other API changes are planned. We are looking to enable the GTK 4 -# package very soon, long before the API is stable, but not before the -# package name is finalized. -%bcond_with gtk4 - # Build documentation by default (use `rpmbuild --without docs` to override it). # This is used by Coverity. Coverity injects custom compiler warnings, but # any warning during WebKit docs build is fatal! @@ -118,7 +112,6 @@ BuildRequires: pkgconfig(xt) WebKitGTK is the port of the WebKit web rendering engine to the GTK platform. -%if %{with gtk4} %package -n webkit2gtk5.0 Summary: WebKitGTK for GTK 4 Requires: javascriptcoregtk5.0%{?_isa} = %{version}-%{release} @@ -135,7 +128,6 @@ Provides: bundled(xdgmime) %description -n webkit2gtk5.0 WebKitGTK is the port of the WebKit web rendering engine to the GTK platform. This package contains WebKitGTK for GTK 4. -%endif %package -n webkit2gtk4.1 Summary: WebKitGTK for GTK 3 and libsoup 3 @@ -175,7 +167,6 @@ 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. -%if %{with gtk4} %package -n webkit2gtk5.0-devel Summary: Development files for webkit2gtk5.0 Requires: webkit2gtk5.0%{?_isa} = %{version}-%{release} @@ -185,7 +176,6 @@ Requires: javascriptcoregtk5.0-devel%{?_isa} = %{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. -%endif %package -n webkit2gtk4.1-devel Summary: Development files for webkit2gtk4.1 @@ -212,7 +202,6 @@ The webkit2gtk4.0-devel package contains libraries, build data, and header files for developing applications that use webkit2gtk4.0. %if %{with docs} -%if %{with gtk4} %package -n webkit2gtk5.0-doc Summary: Documentation files for webkit2gtk5.0 BuildArch: noarch @@ -220,7 +209,6 @@ Requires: webkit2gtk5.0 = %{version}-%{release} %description -n webkit2gtk5.0-doc This package contains developer documentation for webkit2gtk5.0. -%endif %package -n webkit2gtk4.1-doc Summary: Documentation files for webkit2gtk4.1 @@ -243,13 +231,11 @@ Provides: webkit2gtk3-doc = %{version}-%{release} This package contains developer documentation for webkit2gtk4.0. %endif -%if %{with gtk4} %package -n javascriptcoregtk5.0 Summary: JavaScript engine from webkit2gtk5.0 %description -n javascriptcoregtk5.0 This package contains JavaScript engine from webkit2gtk5.0. -%endif %package -n javascriptcoregtk4.1 Summary: JavaScript engine from webkit2gtk4.1 @@ -267,7 +253,6 @@ Provides: webkit2gtk3-jsc = %{version}-%{release} %description -n javascriptcoregtk4.0 This package contains JavaScript engine from webkit2gtk4.0. -%if %{with gtk4} %package -n javascriptcoregtk5.0-devel Summary: Development files for JavaScript engine from webkit2gtk5.0 Requires: javascriptcoregtk5.0%{?_isa} = %{version}-%{release} @@ -275,7 +260,6 @@ Requires: javascriptcoregtk5.0%{?_isa} = %{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. -%endif %package -n javascriptcoregtk4.1-devel Summary: Development files for JavaScript engine from webkit2gtk4.1 @@ -327,7 +311,6 @@ files for developing applications that use JavaScript engine from webkit2gtk-4.0 # on WebKitGTK, because it calls each object's get_type() function, which will # initialize bmalloc and JIT. -%if %{with gtk4} %define _vpath_builddir %{_vendor}-%{_target_os}-build/webkit2gtk-5.0 %cmake \ -GNinja \ @@ -347,7 +330,6 @@ files for developing applications that use JavaScript engine from webkit2gtk-4.0 %endif %endif %{nil} -%endif %define _vpath_builddir %{_vendor}-%{_target_os}-build/webkit2gtk-4.1 %cmake \ @@ -389,33 +371,21 @@ files for developing applications that use JavaScript engine from webkit2gtk-4.0 %endif %{nil} -%if %{with gtk4} %define _vpath_builddir %{_vendor}-%{_target_os}-build/webkit2gtk-5.0 export NINJA_STATUS="[1/3][%f/%t %es] " %cmake_build %limit_build -m 2048 -%endif %define _vpath_builddir %{_vendor}-%{_target_os}-build/webkit2gtk-4.1 -%if %{with gtk4} export NINJA_STATUS="[2/3][%f/%t %es] " -%else -export NINJA_STATUS="[1/2][%f/%t %es] " -%endif %cmake_build %limit_build -m 2048 %define _vpath_builddir %{_vendor}-%{_target_os}-build/webkit2gtk-4.0 -%if %{with gtk4} export NINJA_STATUS="[3/3][%f/%t %es] " -%else -export NINJA_STATUS="[2/2][%f/%t %es] " -%endif %cmake_build %limit_build -m 2048 %install -%if %{with gtk4} %define _vpath_builddir %{_vendor}-%{_target_os}-build/webkit2gtk-5.0 %cmake_install -%endif %define _vpath_builddir %{_vendor}-%{_target_os}-build/webkit2gtk-4.1 %cmake_install @@ -423,9 +393,7 @@ export NINJA_STATUS="[2/2][%f/%t %es] " %define _vpath_builddir %{_vendor}-%{_target_os}-build/webkit2gtk-4.0 %cmake_install -%if %{with gtk4} %find_lang WebKit2GTK-5.0 -%endif %find_lang WebKit2GTK-4.1 %find_lang WebKit2GTK-4.0 @@ -444,7 +412,6 @@ export NINJA_STATUS="[2/2][%f/%t %es] " %add_to_license_files Source/WTF/wtf/dtoa/COPYING %add_to_license_files Source/WTF/wtf/dtoa/LICENSE -%if %{with gtk4} %files -n webkit2gtk5.0 -f WebKit2GTK-5.0.lang %license _license_files/*ThirdParty* %license _license_files/*WebCore* @@ -459,7 +426,6 @@ export NINJA_STATUS="[2/2][%f/%t %es] " %exclude %{_libexecdir}/webkit2gtk-5.0/MiniBrowser %exclude %{_libexecdir}/webkit2gtk-5.0/jsc %{_bindir}/WebKitWebDriver -%endif %files -n webkit2gtk4.1 -f WebKit2GTK-4.1.lang %license _license_files/*ThirdParty* @@ -490,7 +456,6 @@ export NINJA_STATUS="[2/2][%f/%t %es] " %exclude %{_libexecdir}/webkit2gtk-4.0/MiniBrowser %exclude %{_libexecdir}/webkit2gtk-4.0/jsc -%if %{with gtk4} %files -n webkit2gtk5.0-devel %{_libexecdir}/webkit2gtk-5.0/MiniBrowser %{_includedir}/webkitgtk-5.0/ @@ -502,7 +467,6 @@ export NINJA_STATUS="[2/2][%f/%t %es] " %dir %{_datadir}/gir-1.0 %{_datadir}/gir-1.0/WebKit2-5.0.gir %{_datadir}/gir-1.0/WebKit2WebExtension-5.0.gir -%endif %files -n webkit2gtk4.1-devel %{_libexecdir}/webkit2gtk-4.1/MiniBrowser @@ -528,13 +492,11 @@ export NINJA_STATUS="[2/2][%f/%t %es] " %{_datadir}/gir-1.0/WebKit2-4.0.gir %{_datadir}/gir-1.0/WebKit2WebExtension-4.0.gir -%if %{with gtk4} %files -n javascriptcoregtk5.0 %license _license_files/*JavaScriptCore* %{_libdir}/libjavascriptcoregtk-5.0.so.0* %dir %{_libdir}/girepository-1.0 %{_libdir}/girepository-1.0/JavaScriptCore-5.0.typelib -%endif %files -n javascriptcoregtk4.1 %license _license_files/*JavaScriptCore* @@ -548,7 +510,6 @@ export NINJA_STATUS="[2/2][%f/%t %es] " %dir %{_libdir}/girepository-1.0 %{_libdir}/girepository-1.0/JavaScriptCore-4.0.typelib -%if %{with gtk4} %files -n javascriptcoregtk5.0-devel %{_libexecdir}/webkit2gtk-5.0/jsc %dir %{_includedir}/webkitgtk-5.0 @@ -558,7 +519,6 @@ export NINJA_STATUS="[2/2][%f/%t %es] " %{_libdir}/pkgconfig/javascriptcoregtk-5.0.pc %dir %{_datadir}/gir-1.0 %{_datadir}/gir-1.0/JavaScriptCore-5.0.gir -%endif %files -n javascriptcoregtk4.1-devel %{_libexecdir}/webkit2gtk-4.1/jsc @@ -581,14 +541,12 @@ export NINJA_STATUS="[2/2][%f/%t %es] " %{_datadir}/gir-1.0/JavaScriptCore-4.0.gir %if %{with docs} -%if %{with gtk4} %files -n webkit2gtk5.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/ -%endif %files -n webkit2gtk4.1-doc %dir %{_datadir}/gtk-doc From 727223835fcb98ed527bce6790edd0101651d0df Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Mon, 8 Aug 2022 10:44:37 -0500 Subject: [PATCH 021/200] Add Obsoletes for webkitgtk4.1-jsc Oops, this name snuck into the webkit2gtk3 package by mistake. :( --- webkitgtk.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/webkitgtk.spec b/webkitgtk.spec index 096f5ae..877bd7b 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -239,6 +239,7 @@ This package contains JavaScript engine from webkit2gtk5.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. @@ -264,6 +265,7 @@ files for developing applications that use JavaScript engine from webkit2gtk-5.0 %package -n javascriptcoregtk4.1-devel Summary: Development files for JavaScript engine from webkit2gtk4.1 Requires: javascriptcoregtk4.1%{?_isa} = %{version}-%{release} +Obsoletes: webkit2gtk4.1-jsc-devel < %{version}-%{release} %description -n javascriptcoregtk4.1-devel The javascriptcoregtk4.1-devel package contains libraries, build data, and header From ce50e0c1464f70e914a90424cbe40ec13323e73d Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Tue, 9 Aug 2022 10:10:42 -0500 Subject: [PATCH 022/200] Request 4 GB of RAM per vCPU This is twice the RAM I thought we needed, but releng has conclusively shown that it is really required, at least on ppc64le. See: https://pagure.io/releng/issue/10909#comment-809891 --- webkitgtk.spec | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/webkitgtk.spec b/webkitgtk.spec index 877bd7b..2e3d21f 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -375,15 +375,15 @@ files for developing applications that use JavaScript engine from webkit2gtk-4.0 %define _vpath_builddir %{_vendor}-%{_target_os}-build/webkit2gtk-5.0 export NINJA_STATUS="[1/3][%f/%t %es] " -%cmake_build %limit_build -m 2048 +%cmake_build %limit_build -m 4096 %define _vpath_builddir %{_vendor}-%{_target_os}-build/webkit2gtk-4.1 export NINJA_STATUS="[2/3][%f/%t %es] " -%cmake_build %limit_build -m 2048 +%cmake_build %limit_build -m 4096 %define _vpath_builddir %{_vendor}-%{_target_os}-build/webkit2gtk-4.0 export NINJA_STATUS="[3/3][%f/%t %es] " -%cmake_build %limit_build -m 2048 +%cmake_build %limit_build -m 4096 %install %define _vpath_builddir %{_vendor}-%{_target_os}-build/webkit2gtk-5.0 From 0ece072912ef34ea7778977af0301b3211e81c37 Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Wed, 10 Aug 2022 22:58:40 +0200 Subject: [PATCH 023/200] Disable debuginfo for ppc64le and s390x builds --- webkitgtk.spec | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/webkitgtk.spec b/webkitgtk.spec index 2e3d21f..c3d51cb 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -300,7 +300,9 @@ files for developing applications that use JavaScript engine from webkit2gtk-4.0 # Remove debuginfo from 32-bit builds to reduce memory consumption: # https://bugs.webkit.org/show_bug.cgi?id=140176 # https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/I6IVNA52TXTBRQLKW45CJ5K4RA4WNGMI/ -%ifarch %{ix86} +# Additionally, disable debuginfo for ppc64le and s390x builds as well as we +# have trouble with the koji builders, https://pagure.io/releng/issue/10909 +%ifarch %{ix86} ppc64le s390x %global debug_package %{nil} %global optflags %(echo %{optflags} | sed 's/-g /-g0 /') %endif From 8ea0b4518be2a64b8223c406792a8c9f25c5ea5f Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Wed, 10 Aug 2022 23:12:52 +0200 Subject: [PATCH 024/200] Re-enable debuginfo for ppc64le and s390x builds - Require 8 GB of RAM per vCPU for debuginfo processing This should reduce the debuginfo processing parallelization enough so that low memory builders don't OOM during the debuginfo processing. This reverts commit 0ece072912ef34ea7778977af0301b3211e81c37. --- webkitgtk.spec | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/webkitgtk.spec b/webkitgtk.spec index c3d51cb..06c0a33 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -300,13 +300,14 @@ files for developing applications that use JavaScript engine from webkit2gtk-4.0 # Remove debuginfo from 32-bit builds to reduce memory consumption: # https://bugs.webkit.org/show_bug.cgi?id=140176 # https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/I6IVNA52TXTBRQLKW45CJ5K4RA4WNGMI/ -# Additionally, disable debuginfo for ppc64le and s390x builds as well as we -# have trouble with the koji builders, https://pagure.io/releng/issue/10909 -%ifarch %{ix86} ppc64le s390x +%ifarch %{ix86} %global debug_package %{nil} %global optflags %(echo %{optflags} | sed 's/-g /-g0 /') %endif +# Require 8 GB of RAM per vCPU for debuginfo processing +%global _find_debuginfo_opts %limit_build -m 8192 + # Warning: although RHEL 9 aarch64 now uses 4 KB page sizes, we still have to # support 64 KB page sizes until the *builders* use RHEL 9. This means we still # have to disable JIT and bmalloc, even though this disables important heap From efa123cfe20b558a1f8cdc2f7bce87f412617bc9 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Sat, 20 Aug 2022 13:22:40 -0500 Subject: [PATCH 025/200] Update to 2.37.90 --- .gitignore | 1 + aarch64-page-size.patch | 19 ------------------- fix-cloop-build.patch | 27 --------------------------- sources | 4 ++-- webkitgtk.spec | 28 +++++----------------------- 5 files changed, 8 insertions(+), 71 deletions(-) delete mode 100644 aarch64-page-size.patch delete mode 100644 fix-cloop-build.patch diff --git a/.gitignore b/.gitignore index 609b85d..9590b64 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /webkitgtk-*.tar.xz /webkitgtk-2.37.1.tar.xz.asc +/webkitgtk-2.37.90.tar.xz.asc diff --git a/aarch64-page-size.patch b/aarch64-page-size.patch deleted file mode 100644 index 15aaacb..0000000 --- a/aarch64-page-size.patch +++ /dev/null @@ -1,19 +0,0 @@ -diff --git a/Source/WTF/wtf/PageBlock.h b/Source/WTF/wtf/PageBlock.h -index 9bb7fffcc1ae..3e1e24aa69f5 100644 ---- a/Source/WTF/wtf/PageBlock.h -+++ b/Source/WTF/wtf/PageBlock.h -@@ -45,11 +45,11 @@ namespace WTF { - // On Linux, Power systems normally use 64 KiB pages. - // - // Use 64 KiB for any unknown CPUs to be conservative. --#if OS(DARWIN) || PLATFORM(PLAYSTATION) || CPU(MIPS) || CPU(MIPS64) || (OS(LINUX) && CPU(ARM64)) -+#if OS(DARWIN) || PLATFORM(PLAYSTATION) || CPU(MIPS) || CPU(MIPS64) - constexpr size_t CeilingOnPageSize = 16 * KB; --#elif CPU(PPC) || CPU(PPC64) || CPU(PPC64LE) || CPU(UNKNOWN) -+#elif CPU(PPC) || CPU(PPC64) || CPU(PPC64LE) || CPU(UNKNOWN) || CPU(ARM64) - constexpr size_t CeilingOnPageSize = 64 * KB; --#elif OS(WINDOWS) || CPU(X86) || CPU(X86_64) || CPU(ARM) || CPU(ARM64) || CPU(RISCV64) -+#elif OS(WINDOWS) || CPU(X86) || CPU(X86_64) || CPU(ARM) || CPU(RISCV64) - constexpr size_t CeilingOnPageSize = 4 * KB; - #else - #error Must set CeilingOnPageSize in PageBlock.h when adding a new CPU architecture! diff --git a/fix-cloop-build.patch b/fix-cloop-build.patch deleted file mode 100644 index f38f3f8..0000000 --- a/fix-cloop-build.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 40e49bb53218a986b4d6569f3fc2730cc4b71472 Mon Sep 17 00:00:00 2001 -From: Michael Catanzaro -Date: Tue, 12 Jul 2022 16:56:56 -0700 -Subject: [PATCH] Fix cloop build after 252338@main - https://bugs.webkit.org/show_bug.cgi?id=242579 - -Reviewed by Mark Lam. - -* Source/JavaScriptCore/CMakeLists.txt: - -Canonical link: https://commits.webkit.org/252400@main ---- - Source/JavaScriptCore/CMakeLists.txt | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/Source/JavaScriptCore/CMakeLists.txt b/Source/JavaScriptCore/CMakeLists.txt -index aef0678e66f3..f4ba2716faef 100644 ---- a/Source/JavaScriptCore/CMakeLists.txt -+++ b/Source/JavaScriptCore/CMakeLists.txt -@@ -837,6 +837,7 @@ set(JavaScriptCore_PRIVATE_FRAMEWORK_HEADERS - inspector/remote/RemoteInspector.h - - interpreter/AbstractPC.h -+ interpreter/CLoopStack.h - interpreter/CallFrame.h - interpreter/CallFrameInlines.h - interpreter/CalleeBits.h diff --git a/sources b/sources index c3a8972..a0b5a84 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.37.1.tar.xz) = 29935eed5e901780d6be02a7f1072f10e61ad96cecdc3495a71dc8ca00573fa9c485c909fcba928d818df6b901a265a077238ce5fa0cfcc657bdb991867facd8 -SHA512 (webkitgtk-2.37.1.tar.xz.asc) = 5b58dd14f79abcacc3ffa3a9655d9067d6ea392203ab96567a2420bc2d1fff94ea1b9147ad128a321803b99cb6e05aecdd7db14b784a2df177a5afb30ec6b0d1 +SHA512 (webkitgtk-2.37.90.tar.xz) = 7ed8945ca2036b9eb91ebf4cf021f37e04d4a0d3c710348639f246db234f8b6058938edf2d873c8b1d4ab60d840bd4684775d34b0b470b274f622d5ea6a9cbcd +SHA512 (webkitgtk-2.37.90.tar.xz.asc) = 3ff793a2580e320d83824ffb2126290f32693a5e11080206e9693d71dcaf16f5d5ee268cd0ad80e25123ba5628844ec47ff945dbf291ef9785feb5e4161f2869 diff --git a/webkitgtk.spec b/webkitgtk.spec index 06c0a33..6026128 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -16,7 +16,7 @@ %bcond_without docs Name: webkitgtk -Version: 2.37.1 +Version: 2.37.90 Release: %autorelease Summary: GTK web content engine library @@ -29,15 +29,6 @@ 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 -%if 0%{?rhel} -# https://bugs.webkit.org/show_bug.cgi?id=217989 -# https://bugs.webkit.org/show_bug.cgi?id=227905 -Patch0: aarch64-page-size.patch -%endif - -# https://bugs.webkit.org/show_bug.cgi?id=242579#c4 -Patch1: fix-cloop-build.patch - BuildRequires: bison BuildRequires: bubblewrap BuildRequires: cmake @@ -297,6 +288,9 @@ files for developing applications that use JavaScript engine from webkit2gtk-4.0 # from redhat-rpm-config. %global _dwz_max_die_limit_x86_64 250000000 +# Require 8 GB of RAM per vCPU for debuginfo processing +%global _find_debuginfo_opts %limit_build -m 8192 + # Remove debuginfo from 32-bit builds to reduce memory consumption: # https://bugs.webkit.org/show_bug.cgi?id=140176 # https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/I6IVNA52TXTBRQLKW45CJ5K4RA4WNGMI/ @@ -305,17 +299,6 @@ files for developing applications that use JavaScript engine from webkit2gtk-4.0 %global optflags %(echo %{optflags} | sed 's/-g /-g0 /') %endif -# Require 8 GB of RAM per vCPU for debuginfo processing -%global _find_debuginfo_opts %limit_build -m 8192 - -# Warning: although RHEL 9 aarch64 now uses 4 KB page sizes, we still have to -# support 64 KB page sizes until the *builders* use RHEL 9. This means we still -# have to disable JIT and bmalloc, even though this disables important heap -# security features. We can't simply disable them only during this build, -# because gobject-introspection will crash when building anything that depends -# on WebKitGTK, because it calls each object's get_type() function, which will -# initialize bmalloc and JIT. - %define _vpath_builddir %{_vendor}-%{_target_os}-build/webkit2gtk-5.0 %cmake \ -GNinja \ @@ -349,8 +332,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} From 1fafd340aed6943f855f73de550f75a70d702274 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Fri, 2 Sep 2022 11:24:36 -0500 Subject: [PATCH 026/200] Update to 2.37.91 --- .gitignore | 1 + sources | 4 ++-- webkitgtk.spec | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 9590b64..69b2a90 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ /webkitgtk-*.tar.xz /webkitgtk-2.37.1.tar.xz.asc /webkitgtk-2.37.90.tar.xz.asc +/webkitgtk-2.37.91.tar.xz.asc diff --git a/sources b/sources index a0b5a84..d4ac6b8 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.37.90.tar.xz) = 7ed8945ca2036b9eb91ebf4cf021f37e04d4a0d3c710348639f246db234f8b6058938edf2d873c8b1d4ab60d840bd4684775d34b0b470b274f622d5ea6a9cbcd -SHA512 (webkitgtk-2.37.90.tar.xz.asc) = 3ff793a2580e320d83824ffb2126290f32693a5e11080206e9693d71dcaf16f5d5ee268cd0ad80e25123ba5628844ec47ff945dbf291ef9785feb5e4161f2869 +SHA512 (webkitgtk-2.37.91.tar.xz) = 30668a85d458cf745e07eb9203590cdcdc3eee52e2f540ddcf98cf1497e26abedc0e4b3ad917a443b2167ac33ffd83c75d5b687631ef52924b52c7ca85ff7683 +SHA512 (webkitgtk-2.37.91.tar.xz.asc) = 72e995355da11788ac802732d2ba4dfb7fbe4e17ff2e0d5e71f6ec5f9680c815f79704c013e7c259454d565d8a4ac9a0e31425ad0f2f6dcfe28d693c092eafa7 diff --git a/webkitgtk.spec b/webkitgtk.spec index 6026128..4333a44 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -16,7 +16,7 @@ %bcond_without docs Name: webkitgtk -Version: 2.37.90 +Version: 2.37.91 Release: %autorelease Summary: GTK web content engine library From 51993a16ec710d0a9bfb8cdf9d3d336223cb04f0 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Fri, 16 Sep 2022 09:05:28 -0500 Subject: [PATCH 027/200] Upgrade to 2.38.0 --- .gitignore | 1 + sources | 4 ++-- webkitgtk.spec | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 69b2a90..d15bef9 100644 --- a/.gitignore +++ b/.gitignore @@ -2,3 +2,4 @@ /webkitgtk-2.37.1.tar.xz.asc /webkitgtk-2.37.90.tar.xz.asc /webkitgtk-2.37.91.tar.xz.asc +/webkitgtk-2.38.0.tar.xz.asc diff --git a/sources b/sources index d4ac6b8..4ec2105 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.37.91.tar.xz) = 30668a85d458cf745e07eb9203590cdcdc3eee52e2f540ddcf98cf1497e26abedc0e4b3ad917a443b2167ac33ffd83c75d5b687631ef52924b52c7ca85ff7683 -SHA512 (webkitgtk-2.37.91.tar.xz.asc) = 72e995355da11788ac802732d2ba4dfb7fbe4e17ff2e0d5e71f6ec5f9680c815f79704c013e7c259454d565d8a4ac9a0e31425ad0f2f6dcfe28d693c092eafa7 +SHA512 (webkitgtk-2.38.0.tar.xz) = 8380d11eedec3c4eedf3a0f5591fd279ee42b28a38aaa13d7eb88f8a004cbe8aac7dc8f19409440e5c1272ad1555a781f1242bca6c89beed2dc5fd2de5f3d525 +SHA512 (webkitgtk-2.38.0.tar.xz.asc) = aa0c25aaf8662067f647a82679a8d2e7e0f4378ebb07d25d49c7fc6a7cf2fc368a3fa7b5b24eb2c5cc398bc3909bbd378d9e67b7c07347f4ad0b98e40a735a92 diff --git a/webkitgtk.spec b/webkitgtk.spec index 4333a44..def4951 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -16,7 +16,7 @@ %bcond_without docs Name: webkitgtk -Version: 2.37.91 +Version: 2.38.0 Release: %autorelease Summary: GTK web content engine library From 61852f76ba88eb69f90a02b0a657822f20bec5ad Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Mon, 19 Sep 2022 09:44:43 -0500 Subject: [PATCH 028/200] Disable WebDriver in GTK 4 build https://bugzilla.redhat.com/show_bug.cgi?id=2127841 --- webkitgtk.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/webkitgtk.spec b/webkitgtk.spec index def4951..58374dd 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -305,6 +305,7 @@ files for developing applications that use JavaScript engine from webkit2gtk-4.0 -DPORT=GTK \ -DCMAKE_BUILD_TYPE=Release \ -DUSE_GTK4=ON \ + -DENABLE_WEBDRIVER=OFF \ %if %{without docs} -DENABLE_DOCUMENTATION=OFF \ %endif From 5165c7b46cd20168d63b68001f3041e46b882b92 Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Fri, 30 Sep 2022 21:58:24 +0200 Subject: [PATCH 029/200] Use -g1 rather than -g0 for i686 builds This means that we are going to get at least _some_ debuginfo, although not the same as with full -g. --- webkitgtk.spec | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/webkitgtk.spec b/webkitgtk.spec index 58374dd..15c6f41 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -295,8 +295,7 @@ files for developing applications that use JavaScript engine from webkit2gtk-4.0 # https://bugs.webkit.org/show_bug.cgi?id=140176 # https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/I6IVNA52TXTBRQLKW45CJ5K4RA4WNGMI/ %ifarch %{ix86} -%global debug_package %{nil} -%global optflags %(echo %{optflags} | sed 's/-g /-g0 /') +%global optflags %(echo %{optflags} | sed 's/-g /-g1 /') %endif %define _vpath_builddir %{_vendor}-%{_target_os}-build/webkit2gtk-5.0 From bc79de4676bd166aae45964129b262c56e0dc68a Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Tue, 25 Oct 2022 10:38:04 -0500 Subject: [PATCH 030/200] Disable abidiff I don't want to see complaints about internal JSC functions changing. We have to export internal APIs because we install two shared libs and one depends on non-public symbols from the other. --- rpminspect.yaml | 1 + 1 file changed, 1 insertion(+) diff --git a/rpminspect.yaml b/rpminspect.yaml index 722d4d2..f9e3c42 100644 --- a/rpminspect.yaml +++ b/rpminspect.yaml @@ -1,4 +1,5 @@ --- inspections: + abidiff: off changedfiles: off filesize: off From 8403183d21cc26441ae2b6d090d350bdc9dd721b Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Tue, 25 Oct 2022 10:50:20 -0500 Subject: [PATCH 031/200] Update to 2.38.1 --- .gitignore | 1 + sources | 4 ++-- webkitgtk.spec | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index d15bef9..42ee8e0 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ /webkitgtk-2.37.90.tar.xz.asc /webkitgtk-2.37.91.tar.xz.asc /webkitgtk-2.38.0.tar.xz.asc +/webkitgtk-2.38.1.tar.xz.asc diff --git a/sources b/sources index 4ec2105..28a2f55 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.38.0.tar.xz) = 8380d11eedec3c4eedf3a0f5591fd279ee42b28a38aaa13d7eb88f8a004cbe8aac7dc8f19409440e5c1272ad1555a781f1242bca6c89beed2dc5fd2de5f3d525 -SHA512 (webkitgtk-2.38.0.tar.xz.asc) = aa0c25aaf8662067f647a82679a8d2e7e0f4378ebb07d25d49c7fc6a7cf2fc368a3fa7b5b24eb2c5cc398bc3909bbd378d9e67b7c07347f4ad0b98e40a735a92 +SHA512 (webkitgtk-2.38.1.tar.xz) = d81e85a5a43c33a63f88964907053888bb971c8fa1fe7fc90f71461c440458a21e09730c558be2b5efe42e02eb1c3d789a2571dc6d795f9c6d95fd499683a9e2 +SHA512 (webkitgtk-2.38.1.tar.xz.asc) = 08ed960ab697f02e70b6f1151f9e2d473c0aca4ff9b5fdedfa7cecf3c87375728aa22199d0b2b441d243d11e38698b771a9c57519962f45fef1111a346f944fd diff --git a/webkitgtk.spec b/webkitgtk.spec index 15c6f41..be936f7 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -16,7 +16,7 @@ %bcond_without docs Name: webkitgtk -Version: 2.38.0 +Version: 2.38.1 Release: %autorelease Summary: GTK web content engine library From 26c36a7a74447e1f424a9d959c4ba4eba65fc9f2 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Fri, 4 Nov 2022 11:00:59 -0500 Subject: [PATCH 032/200] Update to 2.38.2 --- .gitignore | 1 + sources | 4 ++-- webkitgtk.spec | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 42ee8e0..119620c 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ /webkitgtk-2.37.91.tar.xz.asc /webkitgtk-2.38.0.tar.xz.asc /webkitgtk-2.38.1.tar.xz.asc +/webkitgtk-2.38.2.tar.xz.asc diff --git a/sources b/sources index 28a2f55..d398b39 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.38.1.tar.xz) = d81e85a5a43c33a63f88964907053888bb971c8fa1fe7fc90f71461c440458a21e09730c558be2b5efe42e02eb1c3d789a2571dc6d795f9c6d95fd499683a9e2 -SHA512 (webkitgtk-2.38.1.tar.xz.asc) = 08ed960ab697f02e70b6f1151f9e2d473c0aca4ff9b5fdedfa7cecf3c87375728aa22199d0b2b441d243d11e38698b771a9c57519962f45fef1111a346f944fd +SHA512 (webkitgtk-2.38.2.tar.xz) = 177e792ce10e3c03e9b1e11459f03433cf70ad2a505a3bcca0542c4f9e77b1171953cf0cf1c3bcde0559bd5935167fac50f7dbac948635392ea663b3bb4b1c37 +SHA512 (webkitgtk-2.38.2.tar.xz.asc) = 3a48e6622ea65ed4e4b1c4e004d805992e232c37eb8966c987cf496ec31c708837e58f8ae24f42e3e60ec8e85bbfb08c6c519bbec2fb0488da6a9c3e2cb41f01 diff --git a/webkitgtk.spec b/webkitgtk.spec index be936f7..a1703f5 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -16,7 +16,7 @@ %bcond_without docs Name: webkitgtk -Version: 2.38.1 +Version: 2.38.2 Release: %autorelease Summary: GTK web content engine library From 6e0535cfb1e6eb76d28441786769dc5a26fb5266 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Tue, 15 Nov 2022 10:15:36 -0600 Subject: [PATCH 033/200] Adjust %limit_build to request 3 GB of RAM per CPU I think this should be enough. If I see builds fail due to OOM, then I can always switch back to requesting 4 GB --- webkitgtk.spec | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/webkitgtk.spec b/webkitgtk.spec index a1703f5..c71944c 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -360,15 +360,15 @@ files for developing applications that use JavaScript engine from webkit2gtk-4.0 %define _vpath_builddir %{_vendor}-%{_target_os}-build/webkit2gtk-5.0 export NINJA_STATUS="[1/3][%f/%t %es] " -%cmake_build %limit_build -m 4096 +%cmake_build %limit_build -m 3072 %define _vpath_builddir %{_vendor}-%{_target_os}-build/webkit2gtk-4.1 export NINJA_STATUS="[2/3][%f/%t %es] " -%cmake_build %limit_build -m 4096 +%cmake_build %limit_build -m 3072 %define _vpath_builddir %{_vendor}-%{_target_os}-build/webkit2gtk-4.0 export NINJA_STATUS="[3/3][%f/%t %es] " -%cmake_build %limit_build -m 4096 +%cmake_build %limit_build -m 3072 %install %define _vpath_builddir %{_vendor}-%{_target_os}-build/webkit2gtk-5.0 From f1d95b90e57fec87a68637fb6270dd7ab4dbd50f Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Tue, 15 Nov 2022 13:41:05 -0600 Subject: [PATCH 034/200] Upgrade to 2.39.1 and webkitgtk-6.0 --- .gitignore | 1 + sources | 4 +- webkitgtk.spec | 156 +++++++++++++++++++++++++------------------------ 3 files changed, 84 insertions(+), 77 deletions(-) diff --git a/.gitignore b/.gitignore index 119620c..9d7b664 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ /webkitgtk-2.38.0.tar.xz.asc /webkitgtk-2.38.1.tar.xz.asc /webkitgtk-2.38.2.tar.xz.asc +/webkitgtk-2.39.1.tar.xz.asc diff --git a/sources b/sources index d398b39..17eeb17 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.38.2.tar.xz) = 177e792ce10e3c03e9b1e11459f03433cf70ad2a505a3bcca0542c4f9e77b1171953cf0cf1c3bcde0559bd5935167fac50f7dbac948635392ea663b3bb4b1c37 -SHA512 (webkitgtk-2.38.2.tar.xz.asc) = 3a48e6622ea65ed4e4b1c4e004d805992e232c37eb8966c987cf496ec31c708837e58f8ae24f42e3e60ec8e85bbfb08c6c519bbec2fb0488da6a9c3e2cb41f01 +SHA512 (webkitgtk-2.39.1.tar.xz) = 9b677322f732a77e4e8bf31dadb8d54a67a7e6f5bd0f2621704f11c52843a01be8a1a70c99fe42fefb235296d70c63205ac0383f71037d23d9dfd4112a4737b8 +SHA512 (webkitgtk-2.39.1.tar.xz.asc) = 275c310999fcef877cf8af8950a0f568a1cfb027ca76789d30127060bc3cf4ebb9adca70c8abe45b28eef341767de69d28550b1104eb7b4ac534d8fd5efaab87 diff --git a/webkitgtk.spec b/webkitgtk.spec index c71944c..64191b2 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -16,7 +16,7 @@ %bcond_without docs Name: webkitgtk -Version: 2.38.2 +Version: 2.39.1 Release: %autorelease Summary: GTK web content engine library @@ -42,6 +42,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 +50,7 @@ BuildRequires: python3 BuildRequires: ruby BuildRequires: rubygems BuildRequires: rubygem-json +BuildRequires: unifdef BuildRequires: xdg-dbus-proxy BuildRequires: pkgconfig(atspi-2) @@ -62,12 +64,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,13 +101,13 @@ 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: bubblewrap @@ -115,8 +119,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 +163,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,13 +199,14 @@ 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} -%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 @@ -222,18 +229,19 @@ Provides: webkit2gtk3-doc = %{version}-%{release} 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 +251,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 @@ -298,13 +307,12 @@ 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 +%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 @@ -313,8 +321,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} @@ -324,6 +331,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 @@ -352,13 +360,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 @@ -371,7 +378,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 @@ -380,9 +387,9 @@ 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 @@ -399,22 +406,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.0* %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/WebKitWebExtension-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* @@ -427,9 +434,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* @@ -443,17 +449,17 @@ 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/JavaScriptCore +%exclude %{_includedir}/webkitgtk-6.0/jsc +%{_libdir}/libwebkitgtk-6.0.so +%{_libdir}/pkgconfig/webkitgtk-6.0.pc +%{_libdir}/pkgconfig/webkitgtk-web-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/WebKitWebExtension-6.0.gir %files -n webkit2gtk4.1-devel %{_libexecdir}/webkit2gtk-4.1/MiniBrowser @@ -479,11 +485,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.0* %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* @@ -497,15 +503,15 @@ 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/JavaScriptCore/ +%{_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 @@ -528,12 +534,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-extension-6.0/ %files -n webkit2gtk4.1-doc %dir %{_datadir}/gtk-doc From c2dad176d5ad423642487a68bbbf50c1838d03e3 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Thu, 17 Nov 2022 09:10:08 -0600 Subject: [PATCH 035/200] Add GL prototypes patch --- glext-prototypes.patch | 13 +++++++++++++ webkitgtk.spec | 3 +++ 2 files changed, 16 insertions(+) create mode 100644 glext-prototypes.patch diff --git a/glext-prototypes.patch b/glext-prototypes.patch new file mode 100644 index 0000000..644398f --- /dev/null +++ b/glext-prototypes.patch @@ -0,0 +1,13 @@ +diff --git a/Source/WebCore/platform/graphics/OpenGLShims.h b/Source/WebCore/platform/graphics/OpenGLShims.h +index 7b194b2a6c26..f0feb6bb1886 100644 +--- a/Source/WebCore/platform/graphics/OpenGLShims.h ++++ b/Source/WebCore/platform/graphics/OpenGLShims.h +@@ -20,6 +20,8 @@ + #ifndef OpenGLShims_h + #define OpenGLShims_h + ++#define GL_GLEXT_PROTOTYPES 1 ++ + #if OS(WINDOWS) + #include + #include diff --git a/webkitgtk.spec b/webkitgtk.spec index 64191b2..8a4f706 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -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://bugs.webkit.org/show_bug.cgi?id=248032 +Patch0: glext-prototypes.patch + BuildRequires: bison BuildRequires: bubblewrap BuildRequires: cmake From dc7100f290ed2bce9cd562347627bfd1489c64c7 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Thu, 17 Nov 2022 11:40:51 -0600 Subject: [PATCH 036/200] Revert "Add GL prototypes patch" This reverts commit c2dad176d5ad423642487a68bbbf50c1838d03e3. I tested this on x86_64, but apparently the build failure it attempts to fix does not occur on this platform. --- glext-prototypes.patch | 13 ------------- webkitgtk.spec | 3 --- 2 files changed, 16 deletions(-) delete mode 100644 glext-prototypes.patch diff --git a/glext-prototypes.patch b/glext-prototypes.patch deleted file mode 100644 index 644398f..0000000 --- a/glext-prototypes.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/Source/WebCore/platform/graphics/OpenGLShims.h b/Source/WebCore/platform/graphics/OpenGLShims.h -index 7b194b2a6c26..f0feb6bb1886 100644 ---- a/Source/WebCore/platform/graphics/OpenGLShims.h -+++ b/Source/WebCore/platform/graphics/OpenGLShims.h -@@ -20,6 +20,8 @@ - #ifndef OpenGLShims_h - #define OpenGLShims_h - -+#define GL_GLEXT_PROTOTYPES 1 -+ - #if OS(WINDOWS) - #include - #include diff --git a/webkitgtk.spec b/webkitgtk.spec index 8a4f706..64191b2 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -29,9 +29,6 @@ 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://bugs.webkit.org/show_bug.cgi?id=248032 -Patch0: glext-prototypes.patch - BuildRequires: bison BuildRequires: bubblewrap BuildRequires: cmake From cdde02131f7454a20473c1386d088b2277f23957 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Fri, 18 Nov 2022 09:47:09 -0600 Subject: [PATCH 037/200] Add patches to fix build --- angle-build.patch | 12 ++ epoxy.patch | 391 ++++++++++++++++++++++++++++++++++++++++++++++ webkitgtk.spec | 7 + 3 files changed, 410 insertions(+) create mode 100644 angle-build.patch create mode 100644 epoxy.patch diff --git a/angle-build.patch b/angle-build.patch new file mode 100644 index 0000000..df68300 --- /dev/null +++ b/angle-build.patch @@ -0,0 +1,12 @@ +diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/Constants.h b/Source/ThirdParty/ANGLE/src/libANGLE/Constants.h +index 36152825e438..9b6d940bf31a 100644 +--- a/Source/ThirdParty/ANGLE/src/libANGLE/Constants.h ++++ b/Source/ThirdParty/ANGLE/src/libANGLE/Constants.h +@@ -12,6 +12,7 @@ + #include "common/platform.h" + + #include ++#include + + namespace gl + { diff --git a/epoxy.patch b/epoxy.patch new file mode 100644 index 0000000..42d2ea9 --- /dev/null +++ b/epoxy.patch @@ -0,0 +1,391 @@ +From 9b03b450fbf8ec074bd030c08fa3e34acb44a3f5 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=C5=BDan=20Dober=C5=A1ek?= +Date: Fri, 18 Nov 2022 16:52:53 +0100 +Subject: [PATCH] [GTK] Adopt libepoxy + https://bugs.webkit.org/show_bug.cgi?id=248074 + +Reviewed by NOBODY (OOPS!). + +Have the GTK port use libepoxy instead of directly including system-provided +graphics libraries headers. + +* Source/WebCore/PlatformGTK.cmake: +* Source/WebCore/SourcesGTK.txt: +* Source/WebCore/platform/graphics/egl/GLContextEGLWayland.cpp: +* Source/WebCore/platform/graphics/egl/GLContextEGLX11.cpp: +* Source/WebCore/platform/graphics/glx/GLContextGLX.cpp: +* Source/WebCore/platform/graphics/wayland/PlatformDisplayWayland.cpp: +* Source/WebCore/platform/graphics/x11/PlatformDisplayX11.cpp: +* Source/WebCore/platform/graphics/x11/XUniquePtr.cpp: Copied from Source/WebCore/platform/graphics/x11/XUniquePtr.h. +(WebCore::XPtrDeleter<__GLXcontextRec>::operator const): +* Source/WebCore/platform/graphics/x11/XUniquePtr.h: +(WebCore::XPtrDeleter<__GLXcontextRec>::operator()): Deleted. +* Source/WebCore/platform/graphics/x11/XUniqueResource.cpp: +* Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp: +* Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreWayland.cpp: +* Source/cmake/OptionsGTK.cmake: +--- + Source/WebCore/PlatformGTK.cmake | 3 +- + Source/WebCore/SourcesGTK.txt | 1 + + .../graphics/egl/GLContextEGLWayland.cpp | 5 ++ + .../platform/graphics/egl/GLContextEGLX11.cpp | 8 ++- + .../platform/graphics/glx/GLContextGLX.cpp | 10 +++- + .../wayland/PlatformDisplayWayland.cpp | 7 ++- + .../graphics/x11/PlatformDisplayX11.cpp | 8 +++ + .../platform/graphics/x11/XUniquePtr.cpp | 51 +++++++++++++++++++ + .../platform/graphics/x11/XUniquePtr.h | 7 +-- + .../platform/graphics/x11/XUniqueResource.cpp | 4 ++ + .../API/glib/WebKitProtocolHandler.cpp | 18 ++++--- + .../gtk/AcceleratedBackingStoreWayland.cpp | 13 +++-- + Source/cmake/OptionsGTK.cmake | 4 +- + 13 files changed, 118 insertions(+), 21 deletions(-) + create mode 100644 Source/WebCore/platform/graphics/x11/XUniquePtr.cpp + +diff --git a/Source/WebCore/PlatformGTK.cmake b/Source/WebCore/PlatformGTK.cmake +index 1beed847ee61..96c0446ed0d7 100644 +--- a/Source/WebCore/PlatformGTK.cmake ++++ b/Source/WebCore/PlatformGTK.cmake +@@ -23,6 +23,7 @@ list(APPEND WebCore_PRIVATE_INCLUDE_DIRECTORIES + "${WEBCORE_DIR}/platform/glib" + "${WEBCORE_DIR}/platform/gtk" + "${WEBCORE_DIR}/platform/graphics/egl" ++ "${WEBCORE_DIR}/platform/graphics/epoxy" + "${WEBCORE_DIR}/platform/graphics/glx" + "${WEBCORE_DIR}/platform/graphics/gbm" + "${WEBCORE_DIR}/platform/graphics/gstreamer" +@@ -107,7 +108,7 @@ list(APPEND WebCore_SYSTEM_INCLUDE_DIRECTORIES + ${UPOWERGLIB_INCLUDE_DIRS} + ) + +-if (USE_OPENGL) ++if (USE_OPENGL AND NOT USE_LIBEPOXY) + list(APPEND WebCore_SOURCES + platform/graphics/OpenGLShims.cpp + ) +diff --git a/Source/WebCore/SourcesGTK.txt b/Source/WebCore/SourcesGTK.txt +index 3e0ba1eb4589..723e7782ff80 100644 +--- a/Source/WebCore/SourcesGTK.txt ++++ b/Source/WebCore/SourcesGTK.txt +@@ -106,6 +106,7 @@ platform/graphics/wayland/PlatformDisplayWayland.cpp + + platform/graphics/x11/PlatformDisplayX11.cpp @no-unify + platform/graphics/x11/XErrorTrapper.cpp @no-unify ++platform/graphics/x11/XUniquePtr.cpp @no-unify + platform/graphics/x11/XUniqueResource.cpp @no-unify + + platform/gtk/CursorGtk.cpp +diff --git a/Source/WebCore/platform/graphics/egl/GLContextEGLWayland.cpp b/Source/WebCore/platform/graphics/egl/GLContextEGLWayland.cpp +index fa6b6ab9bc6d..369f1e2e407f 100644 +--- a/Source/WebCore/platform/graphics/egl/GLContextEGLWayland.cpp ++++ b/Source/WebCore/platform/graphics/egl/GLContextEGLWayland.cpp +@@ -22,10 +22,15 @@ + #if USE(EGL) && PLATFORM(WAYLAND) + + #include "PlatformDisplayWayland.h" ++ + // These includes need to be in this order because wayland-egl.h defines WL_EGL_PLATFORM + // and egl.h checks that to decide whether it's Wayland platform. + #include ++#if USE(LIBEPOXY) ++#include ++#else + #include ++#endif + + namespace WebCore { + +diff --git a/Source/WebCore/platform/graphics/egl/GLContextEGLX11.cpp b/Source/WebCore/platform/graphics/egl/GLContextEGLX11.cpp +index 8f73239988e8..7a7018390a11 100644 +--- a/Source/WebCore/platform/graphics/egl/GLContextEGLX11.cpp ++++ b/Source/WebCore/platform/graphics/egl/GLContextEGLX11.cpp +@@ -20,12 +20,18 @@ + #include "GLContextEGL.h" + + #if USE(EGL) && PLATFORM(X11) ++ + #include "PlatformDisplayX11.h" + #include "XErrorTrapper.h" + #include "XUniquePtr.h" +-#include + #include + ++#if USE(LIBEPOXY) ++#include ++#else ++#include ++#endif ++ + namespace WebCore { + + GLContextEGL::GLContextEGL(PlatformDisplay& display, EGLContext context, EGLSurface surface, EGLConfig config, XUniquePixmap&& pixmap) +diff --git a/Source/WebCore/platform/graphics/glx/GLContextGLX.cpp b/Source/WebCore/platform/graphics/glx/GLContextGLX.cpp +index 9839d9ba9a2e..44d256e4c3bb 100644 +--- a/Source/WebCore/platform/graphics/glx/GLContextGLX.cpp ++++ b/Source/WebCore/platform/graphics/glx/GLContextGLX.cpp +@@ -20,12 +20,18 @@ + #include "GLContextGLX.h" + + #if USE(GLX) +-#include "OpenGLShims.h" ++ + #include "PlatformDisplayX11.h" + #include "XErrorTrapper.h" +-#include + #include + ++#if USE(LIBEPOXY) ++#include ++#else ++#include "OpenGLShims.h" ++#include ++#endif ++ + namespace WebCore { + + #if !defined(PFNGLXSWAPINTERVALSGIPROC) +diff --git a/Source/WebCore/platform/graphics/wayland/PlatformDisplayWayland.cpp b/Source/WebCore/platform/graphics/wayland/PlatformDisplayWayland.cpp +index f3e7bf4675b4..e953ca6dbfd6 100644 +--- a/Source/WebCore/platform/graphics/wayland/PlatformDisplayWayland.cpp ++++ b/Source/WebCore/platform/graphics/wayland/PlatformDisplayWayland.cpp +@@ -30,12 +30,17 @@ + + #include "GLContextEGL.h" + #include ++#include ++ + // These includes need to be in this order because wayland-egl.h defines WL_EGL_PLATFORM + // and egl.h checks that to decide whether it's Wayland platform. + #include ++#if USE(LIBEPOXY) ++#include ++#else + #include + #include +-#include ++#endif + + #if PLATFORM(GTK) + #if USE(GTK4) +diff --git a/Source/WebCore/platform/graphics/x11/PlatformDisplayX11.cpp b/Source/WebCore/platform/graphics/x11/PlatformDisplayX11.cpp +index 91843521ddb9..8eeb86a4cb16 100644 +--- a/Source/WebCore/platform/graphics/x11/PlatformDisplayX11.cpp ++++ b/Source/WebCore/platform/graphics/x11/PlatformDisplayX11.cpp +@@ -45,13 +45,21 @@ + #endif + + #if USE(EGL) ++#if USE(LIBEPOXY) ++#include ++#else + #include + #include + #endif ++#endif + + #if USE(GLX) ++#if USE(LIBEPOXY) ++#include ++#else + #include + #endif ++#endif + + namespace WebCore { + +diff --git a/Source/WebCore/platform/graphics/x11/XUniquePtr.cpp b/Source/WebCore/platform/graphics/x11/XUniquePtr.cpp +new file mode 100644 +index 000000000000..9a579f2c91b8 +--- /dev/null ++++ b/Source/WebCore/platform/graphics/x11/XUniquePtr.cpp +@@ -0,0 +1,51 @@ ++/* ++ * Copyright (C) 2022 Igalia S.L ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY ++ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED ++ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE ++ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY ++ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES ++ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; ++ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ++ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF ++ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++ ++#include "config.h" ++#include "XUniquePtr.h" ++ ++#if PLATFORM(X11) ++ ++#if USE(GLX) ++#if USE(LIBEPOXY) ++#include ++#else ++extern "C" void glXDestroyContext(::Display*, GLXContext); ++#endif ++#endif ++ ++namespace WebCore { ++ ++#if USE(GLX) ++ ++void XPtrDeleter<__GLXcontextRec>::operator() (__GLXcontextRec*) const ++{ ++} ++ ++#endif ++ ++} ++ ++#endif // PLATFORM(X11) +diff --git a/Source/WebCore/platform/graphics/x11/XUniquePtr.h b/Source/WebCore/platform/graphics/x11/XUniquePtr.h +index ed1cc744cd05..d9b3778ca837 100644 +--- a/Source/WebCore/platform/graphics/x11/XUniquePtr.h ++++ b/Source/WebCore/platform/graphics/x11/XUniquePtr.h +@@ -27,12 +27,12 @@ + #define XUniquePtr_h + + #if PLATFORM(X11) ++ + #include "PlatformDisplayX11.h" + #include + + #if USE(GLX) + typedef struct __GLXcontextRec* GLXContext; +-extern "C" void glXDestroyContext(::Display*, GLXContext); + #endif + + namespace WebCore { +@@ -66,10 +66,7 @@ using XUniqueGC = XUniquePtr<_XGC>; + + #if USE(GLX) + template<> struct XPtrDeleter<__GLXcontextRec> { +- void operator() (__GLXcontextRec* ptr) +- { +- glXDestroyContext(downcast(PlatformDisplay::sharedDisplay()).native(), ptr); +- } ++ void operator() (__GLXcontextRec*) const; + }; + // Give a name to this to avoid having to use the internal struct name. + using XUniqueGLXContext = XUniquePtr<__GLXcontextRec>; +diff --git a/Source/WebCore/platform/graphics/x11/XUniqueResource.cpp b/Source/WebCore/platform/graphics/x11/XUniqueResource.cpp +index f300ee4f5941..99360375fc2d 100644 +--- a/Source/WebCore/platform/graphics/x11/XUniqueResource.cpp ++++ b/Source/WebCore/platform/graphics/x11/XUniqueResource.cpp +@@ -36,8 +36,12 @@ + #endif + + #if USE(GLX) ++#if USE(LIBEPOXY) ++#include ++#else + #include + #endif ++#endif + + namespace WebCore { + +diff --git a/Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp b/Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp +index bfbce2a5314d..6d93a6def600 100644 +--- a/Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp ++++ b/Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp +@@ -51,13 +51,6 @@ + #endif + #endif + +-#if PLATFORM(X11) +-#include +-#if USE(GLX) +-#include +-#endif +-#endif +- + #if USE(LIBEPOXY) + #include + #elif USE(OPENGL_ES) +@@ -74,6 +67,17 @@ + #endif + #endif + ++#if PLATFORM(X11) ++#include ++#if USE(GLX) ++#if USE(LIBEPOXY) ++#include ++#else ++#include ++#endif ++#endif ++#endif ++ + #if USE(GSTREAMER) + #include + #endif +diff --git a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreWayland.cpp b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreWayland.cpp +index b9e0794c607c..ccd6d423b27f 100644 +--- a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreWayland.cpp ++++ b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreWayland.cpp +@@ -30,6 +30,9 @@ + + #include "LayerTreeContext.h" + #include "WebPageProxy.h" ++#include ++#include ++ + // These includes need to be in this order because wayland-egl.h defines WL_EGL_PLATFORM + // and eglplatform.h, included by egl.h, checks that to decide whether it's Wayland platform. + #if USE(GTK4) +@@ -37,12 +40,16 @@ + #else + #include + #endif ++#if USE(LIBEPOXY) ++#include ++#else + #include + #include +-#include +-#include ++#endif + +-#if USE(OPENGL_ES) ++#if USE(LIBEPOXY) ++#include ++#elif USE(OPENGL_ES) + #include + #include + #else +diff --git a/Source/cmake/OptionsGTK.cmake b/Source/cmake/OptionsGTK.cmake +index e2fde8d07173..885a2befa041 100644 +--- a/Source/cmake/OptionsGTK.cmake ++++ b/Source/cmake/OptionsGTK.cmake +@@ -21,6 +21,7 @@ find_package(GLIB 2.56.4 REQUIRED COMPONENTS gio gio-unix gobject gthread gmodul + find_package(HarfBuzz 0.9.18 REQUIRED COMPONENTS ICU) + find_package(ICU 61.2 REQUIRED COMPONENTS data i18n uc) + find_package(JPEG REQUIRED) ++find_package(LibEpoxy 1.4.0 REQUIRED) + find_package(LibXml2 2.8.0 REQUIRED) + find_package(PNG REQUIRED) + find_package(SQLite3 REQUIRED) +@@ -36,8 +37,9 @@ find_package(OpenGLES2) + include(GStreamerDefinitions) + + SET_AND_EXPOSE_TO_BUILD(USE_CAIRO TRUE) +-SET_AND_EXPOSE_TO_BUILD(USE_XDGMIME TRUE) + SET_AND_EXPOSE_TO_BUILD(USE_GCRYPT TRUE) ++SET_AND_EXPOSE_TO_BUILD(USE_LIBEPOXY TRUE) ++SET_AND_EXPOSE_TO_BUILD(USE_XDGMIME TRUE) + + if (WTF_CPU_ARM OR WTF_CPU_MIPS) + SET_AND_EXPOSE_TO_BUILD(USE_CAPSTONE ${DEVELOPER_MODE}) diff --git a/webkitgtk.spec b/webkitgtk.spec index 64191b2..46348c7 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -29,6 +29,12 @@ 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://bugs.webkit.org/show_bug.cgi?id=248032 +# https://bugs.webkit.org/show_bug.cgi?id=248074 +Patch0: epoxy.patch + +Patch1: angle-build.patch + BuildRequires: bison BuildRequires: bubblewrap BuildRequires: cmake @@ -57,6 +63,7 @@ BuildRequires: pkgconfig(atspi-2) BuildRequires: pkgconfig(cairo) BuildRequires: pkgconfig(egl) BuildRequires: pkgconfig(enchant-2) +BuildRequires: pkgconfig(epoxy) BuildRequires: pkgconfig(fontconfig) BuildRequires: pkgconfig(freetype2) BuildRequires: pkgconfig(gl) From 62a930c5c3e4abda8734f178b4b3a51d93fa6f29 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Mon, 28 Nov 2022 14:02:27 -0600 Subject: [PATCH 038/200] Update to 2.39.2 --- .gitignore | 1 + sources | 4 ++-- webkitgtk.spec | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 9d7b664..2024a39 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ /webkitgtk-2.38.1.tar.xz.asc /webkitgtk-2.38.2.tar.xz.asc /webkitgtk-2.39.1.tar.xz.asc +/webkitgtk-2.39.2.tar.xz.asc diff --git a/sources b/sources index 17eeb17..4c4e81f 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.39.1.tar.xz) = 9b677322f732a77e4e8bf31dadb8d54a67a7e6f5bd0f2621704f11c52843a01be8a1a70c99fe42fefb235296d70c63205ac0383f71037d23d9dfd4112a4737b8 -SHA512 (webkitgtk-2.39.1.tar.xz.asc) = 275c310999fcef877cf8af8950a0f568a1cfb027ca76789d30127060bc3cf4ebb9adca70c8abe45b28eef341767de69d28550b1104eb7b4ac534d8fd5efaab87 +SHA512 (webkitgtk-2.39.2.tar.xz.asc) = 12cb43c56180e5f5a278dac0013cc47bd090773f6cafb8c67eeacd764087ecca35df7c7c18543fe5039781b3a7086b84cee798f1314c73827325a694dca5ffb6 +SHA512 (webkitgtk-2.39.2.tar.xz) = 0565cc1252d4fe807ad0966cd0db413d6d51857c8e9f09f586b62788ce63f7f81b42499971e87c031c8ef5c8977ace19bc30bec2402ffb0435974a7d8df35e0d diff --git a/webkitgtk.spec b/webkitgtk.spec index 46348c7..399f9bf 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -16,7 +16,7 @@ %bcond_without docs Name: webkitgtk -Version: 2.39.1 +Version: 2.39.2 Release: %autorelease Summary: GTK web content engine library From e6d2a00c82e31ea63212adc111d9393cfb1573e4 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Mon, 28 Nov 2022 14:09:54 -0600 Subject: [PATCH 039/200] Experimentally tweak debuginfo generation settings some more Note this is expected to cause the size of the debuginfo packages to balloon, but it's better than not being able to update the package at all. See: https://pagure.io/fedora-infrastructure/issue/11000 --- webkitgtk.spec | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/webkitgtk.spec b/webkitgtk.spec index 399f9bf..88c35e8 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -296,18 +296,17 @@ files for developing applications that use JavaScript engine from webkit2gtk-4.0 %build # Increase the DIE limit so our debuginfo packages can be size-optimized. -# Decreases the size for x86_64 from ~5G to ~1.1G. +# Decreases the size for x86_64 from ~5G to ~1.1G. This requires lots of +# RAM on the builders, so only do this for x86_64 because other architectures +# have underpowered builders that cannot handle a higher limit. # https://bugzilla.redhat.com/show_bug.cgi?id=1456261 -%global _dwz_max_die_limit 250000000 - -# On x86_64, the _dwz_max_die_limit is overridden by the arch-specific limit -# from redhat-rpm-config. %global _dwz_max_die_limit_x86_64 250000000 -# Require 8 GB of RAM per vCPU for debuginfo processing -%global _find_debuginfo_opts %limit_build -m 8192 +# Require 16 GB of RAM per vCPU for debuginfo processing. +%global _find_debuginfo_opts %limit_build -m 16384 -# Remove debuginfo from 32-bit builds to reduce memory consumption: +# Remove debuginfo from 32-bit builds to reduce memory consumption even more. +# No amount of optimizing is going to work here. # https://bugs.webkit.org/show_bug.cgi?id=140176 # https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/I6IVNA52TXTBRQLKW45CJ5K4RA4WNGMI/ %ifarch %{ix86} From 539232f491b3f1a75ba35e7feea438b2860edfe3 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Mon, 28 Nov 2022 14:21:11 -0600 Subject: [PATCH 040/200] Drop upstreamed patches --- angle-build.patch | 12 -- epoxy.patch | 391 ---------------------------------------------- webkitgtk.spec | 6 - 3 files changed, 409 deletions(-) delete mode 100644 angle-build.patch delete mode 100644 epoxy.patch diff --git a/angle-build.patch b/angle-build.patch deleted file mode 100644 index df68300..0000000 --- a/angle-build.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/Source/ThirdParty/ANGLE/src/libANGLE/Constants.h b/Source/ThirdParty/ANGLE/src/libANGLE/Constants.h -index 36152825e438..9b6d940bf31a 100644 ---- a/Source/ThirdParty/ANGLE/src/libANGLE/Constants.h -+++ b/Source/ThirdParty/ANGLE/src/libANGLE/Constants.h -@@ -12,6 +12,7 @@ - #include "common/platform.h" - - #include -+#include - - namespace gl - { diff --git a/epoxy.patch b/epoxy.patch deleted file mode 100644 index 42d2ea9..0000000 --- a/epoxy.patch +++ /dev/null @@ -1,391 +0,0 @@ -From 9b03b450fbf8ec074bd030c08fa3e34acb44a3f5 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?=C5=BDan=20Dober=C5=A1ek?= -Date: Fri, 18 Nov 2022 16:52:53 +0100 -Subject: [PATCH] [GTK] Adopt libepoxy - https://bugs.webkit.org/show_bug.cgi?id=248074 - -Reviewed by NOBODY (OOPS!). - -Have the GTK port use libepoxy instead of directly including system-provided -graphics libraries headers. - -* Source/WebCore/PlatformGTK.cmake: -* Source/WebCore/SourcesGTK.txt: -* Source/WebCore/platform/graphics/egl/GLContextEGLWayland.cpp: -* Source/WebCore/platform/graphics/egl/GLContextEGLX11.cpp: -* Source/WebCore/platform/graphics/glx/GLContextGLX.cpp: -* Source/WebCore/platform/graphics/wayland/PlatformDisplayWayland.cpp: -* Source/WebCore/platform/graphics/x11/PlatformDisplayX11.cpp: -* Source/WebCore/platform/graphics/x11/XUniquePtr.cpp: Copied from Source/WebCore/platform/graphics/x11/XUniquePtr.h. -(WebCore::XPtrDeleter<__GLXcontextRec>::operator const): -* Source/WebCore/platform/graphics/x11/XUniquePtr.h: -(WebCore::XPtrDeleter<__GLXcontextRec>::operator()): Deleted. -* Source/WebCore/platform/graphics/x11/XUniqueResource.cpp: -* Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp: -* Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreWayland.cpp: -* Source/cmake/OptionsGTK.cmake: ---- - Source/WebCore/PlatformGTK.cmake | 3 +- - Source/WebCore/SourcesGTK.txt | 1 + - .../graphics/egl/GLContextEGLWayland.cpp | 5 ++ - .../platform/graphics/egl/GLContextEGLX11.cpp | 8 ++- - .../platform/graphics/glx/GLContextGLX.cpp | 10 +++- - .../wayland/PlatformDisplayWayland.cpp | 7 ++- - .../graphics/x11/PlatformDisplayX11.cpp | 8 +++ - .../platform/graphics/x11/XUniquePtr.cpp | 51 +++++++++++++++++++ - .../platform/graphics/x11/XUniquePtr.h | 7 +-- - .../platform/graphics/x11/XUniqueResource.cpp | 4 ++ - .../API/glib/WebKitProtocolHandler.cpp | 18 ++++--- - .../gtk/AcceleratedBackingStoreWayland.cpp | 13 +++-- - Source/cmake/OptionsGTK.cmake | 4 +- - 13 files changed, 118 insertions(+), 21 deletions(-) - create mode 100644 Source/WebCore/platform/graphics/x11/XUniquePtr.cpp - -diff --git a/Source/WebCore/PlatformGTK.cmake b/Source/WebCore/PlatformGTK.cmake -index 1beed847ee61..96c0446ed0d7 100644 ---- a/Source/WebCore/PlatformGTK.cmake -+++ b/Source/WebCore/PlatformGTK.cmake -@@ -23,6 +23,7 @@ list(APPEND WebCore_PRIVATE_INCLUDE_DIRECTORIES - "${WEBCORE_DIR}/platform/glib" - "${WEBCORE_DIR}/platform/gtk" - "${WEBCORE_DIR}/platform/graphics/egl" -+ "${WEBCORE_DIR}/platform/graphics/epoxy" - "${WEBCORE_DIR}/platform/graphics/glx" - "${WEBCORE_DIR}/platform/graphics/gbm" - "${WEBCORE_DIR}/platform/graphics/gstreamer" -@@ -107,7 +108,7 @@ list(APPEND WebCore_SYSTEM_INCLUDE_DIRECTORIES - ${UPOWERGLIB_INCLUDE_DIRS} - ) - --if (USE_OPENGL) -+if (USE_OPENGL AND NOT USE_LIBEPOXY) - list(APPEND WebCore_SOURCES - platform/graphics/OpenGLShims.cpp - ) -diff --git a/Source/WebCore/SourcesGTK.txt b/Source/WebCore/SourcesGTK.txt -index 3e0ba1eb4589..723e7782ff80 100644 ---- a/Source/WebCore/SourcesGTK.txt -+++ b/Source/WebCore/SourcesGTK.txt -@@ -106,6 +106,7 @@ platform/graphics/wayland/PlatformDisplayWayland.cpp - - platform/graphics/x11/PlatformDisplayX11.cpp @no-unify - platform/graphics/x11/XErrorTrapper.cpp @no-unify -+platform/graphics/x11/XUniquePtr.cpp @no-unify - platform/graphics/x11/XUniqueResource.cpp @no-unify - - platform/gtk/CursorGtk.cpp -diff --git a/Source/WebCore/platform/graphics/egl/GLContextEGLWayland.cpp b/Source/WebCore/platform/graphics/egl/GLContextEGLWayland.cpp -index fa6b6ab9bc6d..369f1e2e407f 100644 ---- a/Source/WebCore/platform/graphics/egl/GLContextEGLWayland.cpp -+++ b/Source/WebCore/platform/graphics/egl/GLContextEGLWayland.cpp -@@ -22,10 +22,15 @@ - #if USE(EGL) && PLATFORM(WAYLAND) - - #include "PlatformDisplayWayland.h" -+ - // These includes need to be in this order because wayland-egl.h defines WL_EGL_PLATFORM - // and egl.h checks that to decide whether it's Wayland platform. - #include -+#if USE(LIBEPOXY) -+#include -+#else - #include -+#endif - - namespace WebCore { - -diff --git a/Source/WebCore/platform/graphics/egl/GLContextEGLX11.cpp b/Source/WebCore/platform/graphics/egl/GLContextEGLX11.cpp -index 8f73239988e8..7a7018390a11 100644 ---- a/Source/WebCore/platform/graphics/egl/GLContextEGLX11.cpp -+++ b/Source/WebCore/platform/graphics/egl/GLContextEGLX11.cpp -@@ -20,12 +20,18 @@ - #include "GLContextEGL.h" - - #if USE(EGL) && PLATFORM(X11) -+ - #include "PlatformDisplayX11.h" - #include "XErrorTrapper.h" - #include "XUniquePtr.h" --#include - #include - -+#if USE(LIBEPOXY) -+#include -+#else -+#include -+#endif -+ - namespace WebCore { - - GLContextEGL::GLContextEGL(PlatformDisplay& display, EGLContext context, EGLSurface surface, EGLConfig config, XUniquePixmap&& pixmap) -diff --git a/Source/WebCore/platform/graphics/glx/GLContextGLX.cpp b/Source/WebCore/platform/graphics/glx/GLContextGLX.cpp -index 9839d9ba9a2e..44d256e4c3bb 100644 ---- a/Source/WebCore/platform/graphics/glx/GLContextGLX.cpp -+++ b/Source/WebCore/platform/graphics/glx/GLContextGLX.cpp -@@ -20,12 +20,18 @@ - #include "GLContextGLX.h" - - #if USE(GLX) --#include "OpenGLShims.h" -+ - #include "PlatformDisplayX11.h" - #include "XErrorTrapper.h" --#include - #include - -+#if USE(LIBEPOXY) -+#include -+#else -+#include "OpenGLShims.h" -+#include -+#endif -+ - namespace WebCore { - - #if !defined(PFNGLXSWAPINTERVALSGIPROC) -diff --git a/Source/WebCore/platform/graphics/wayland/PlatformDisplayWayland.cpp b/Source/WebCore/platform/graphics/wayland/PlatformDisplayWayland.cpp -index f3e7bf4675b4..e953ca6dbfd6 100644 ---- a/Source/WebCore/platform/graphics/wayland/PlatformDisplayWayland.cpp -+++ b/Source/WebCore/platform/graphics/wayland/PlatformDisplayWayland.cpp -@@ -30,12 +30,17 @@ - - #include "GLContextEGL.h" - #include -+#include -+ - // These includes need to be in this order because wayland-egl.h defines WL_EGL_PLATFORM - // and egl.h checks that to decide whether it's Wayland platform. - #include -+#if USE(LIBEPOXY) -+#include -+#else - #include - #include --#include -+#endif - - #if PLATFORM(GTK) - #if USE(GTK4) -diff --git a/Source/WebCore/platform/graphics/x11/PlatformDisplayX11.cpp b/Source/WebCore/platform/graphics/x11/PlatformDisplayX11.cpp -index 91843521ddb9..8eeb86a4cb16 100644 ---- a/Source/WebCore/platform/graphics/x11/PlatformDisplayX11.cpp -+++ b/Source/WebCore/platform/graphics/x11/PlatformDisplayX11.cpp -@@ -45,13 +45,21 @@ - #endif - - #if USE(EGL) -+#if USE(LIBEPOXY) -+#include -+#else - #include - #include - #endif -+#endif - - #if USE(GLX) -+#if USE(LIBEPOXY) -+#include -+#else - #include - #endif -+#endif - - namespace WebCore { - -diff --git a/Source/WebCore/platform/graphics/x11/XUniquePtr.cpp b/Source/WebCore/platform/graphics/x11/XUniquePtr.cpp -new file mode 100644 -index 000000000000..9a579f2c91b8 ---- /dev/null -+++ b/Source/WebCore/platform/graphics/x11/XUniquePtr.cpp -@@ -0,0 +1,51 @@ -+/* -+ * Copyright (C) 2022 Igalia S.L -+ * -+ * Redistribution and use in source and binary forms, with or without -+ * modification, are permitted provided that the following conditions -+ * are met: -+ * -+ * 1. Redistributions of source code must retain the above copyright -+ * notice, this list of conditions and the following disclaimer. -+ * 2. Redistributions in binary form must reproduce the above copyright -+ * notice, this list of conditions and the following disclaimer in the -+ * documentation and/or other materials provided with the distribution. -+ * -+ * THIS SOFTWARE IS PROVIDED BY APPLE AND ITS CONTRIBUTORS "AS IS" AND ANY -+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED -+ * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -+ * DISCLAIMED. IN NO EVENT SHALL APPLE OR ITS CONTRIBUTORS BE LIABLE FOR ANY -+ * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES -+ * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; -+ * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND -+ * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF -+ * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -+ */ -+ -+#include "config.h" -+#include "XUniquePtr.h" -+ -+#if PLATFORM(X11) -+ -+#if USE(GLX) -+#if USE(LIBEPOXY) -+#include -+#else -+extern "C" void glXDestroyContext(::Display*, GLXContext); -+#endif -+#endif -+ -+namespace WebCore { -+ -+#if USE(GLX) -+ -+void XPtrDeleter<__GLXcontextRec>::operator() (__GLXcontextRec*) const -+{ -+} -+ -+#endif -+ -+} -+ -+#endif // PLATFORM(X11) -diff --git a/Source/WebCore/platform/graphics/x11/XUniquePtr.h b/Source/WebCore/platform/graphics/x11/XUniquePtr.h -index ed1cc744cd05..d9b3778ca837 100644 ---- a/Source/WebCore/platform/graphics/x11/XUniquePtr.h -+++ b/Source/WebCore/platform/graphics/x11/XUniquePtr.h -@@ -27,12 +27,12 @@ - #define XUniquePtr_h - - #if PLATFORM(X11) -+ - #include "PlatformDisplayX11.h" - #include - - #if USE(GLX) - typedef struct __GLXcontextRec* GLXContext; --extern "C" void glXDestroyContext(::Display*, GLXContext); - #endif - - namespace WebCore { -@@ -66,10 +66,7 @@ using XUniqueGC = XUniquePtr<_XGC>; - - #if USE(GLX) - template<> struct XPtrDeleter<__GLXcontextRec> { -- void operator() (__GLXcontextRec* ptr) -- { -- glXDestroyContext(downcast(PlatformDisplay::sharedDisplay()).native(), ptr); -- } -+ void operator() (__GLXcontextRec*) const; - }; - // Give a name to this to avoid having to use the internal struct name. - using XUniqueGLXContext = XUniquePtr<__GLXcontextRec>; -diff --git a/Source/WebCore/platform/graphics/x11/XUniqueResource.cpp b/Source/WebCore/platform/graphics/x11/XUniqueResource.cpp -index f300ee4f5941..99360375fc2d 100644 ---- a/Source/WebCore/platform/graphics/x11/XUniqueResource.cpp -+++ b/Source/WebCore/platform/graphics/x11/XUniqueResource.cpp -@@ -36,8 +36,12 @@ - #endif - - #if USE(GLX) -+#if USE(LIBEPOXY) -+#include -+#else - #include - #endif -+#endif - - namespace WebCore { - -diff --git a/Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp b/Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp -index bfbce2a5314d..6d93a6def600 100644 ---- a/Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp -+++ b/Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp -@@ -51,13 +51,6 @@ - #endif - #endif - --#if PLATFORM(X11) --#include --#if USE(GLX) --#include --#endif --#endif -- - #if USE(LIBEPOXY) - #include - #elif USE(OPENGL_ES) -@@ -74,6 +67,17 @@ - #endif - #endif - -+#if PLATFORM(X11) -+#include -+#if USE(GLX) -+#if USE(LIBEPOXY) -+#include -+#else -+#include -+#endif -+#endif -+#endif -+ - #if USE(GSTREAMER) - #include - #endif -diff --git a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreWayland.cpp b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreWayland.cpp -index b9e0794c607c..ccd6d423b27f 100644 ---- a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreWayland.cpp -+++ b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreWayland.cpp -@@ -30,6 +30,9 @@ - - #include "LayerTreeContext.h" - #include "WebPageProxy.h" -+#include -+#include -+ - // These includes need to be in this order because wayland-egl.h defines WL_EGL_PLATFORM - // and eglplatform.h, included by egl.h, checks that to decide whether it's Wayland platform. - #if USE(GTK4) -@@ -37,12 +40,16 @@ - #else - #include - #endif -+#if USE(LIBEPOXY) -+#include -+#else - #include - #include --#include --#include -+#endif - --#if USE(OPENGL_ES) -+#if USE(LIBEPOXY) -+#include -+#elif USE(OPENGL_ES) - #include - #include - #else -diff --git a/Source/cmake/OptionsGTK.cmake b/Source/cmake/OptionsGTK.cmake -index e2fde8d07173..885a2befa041 100644 ---- a/Source/cmake/OptionsGTK.cmake -+++ b/Source/cmake/OptionsGTK.cmake -@@ -21,6 +21,7 @@ find_package(GLIB 2.56.4 REQUIRED COMPONENTS gio gio-unix gobject gthread gmodul - find_package(HarfBuzz 0.9.18 REQUIRED COMPONENTS ICU) - find_package(ICU 61.2 REQUIRED COMPONENTS data i18n uc) - find_package(JPEG REQUIRED) -+find_package(LibEpoxy 1.4.0 REQUIRED) - find_package(LibXml2 2.8.0 REQUIRED) - find_package(PNG REQUIRED) - find_package(SQLite3 REQUIRED) -@@ -36,8 +37,9 @@ find_package(OpenGLES2) - include(GStreamerDefinitions) - - SET_AND_EXPOSE_TO_BUILD(USE_CAIRO TRUE) --SET_AND_EXPOSE_TO_BUILD(USE_XDGMIME TRUE) - SET_AND_EXPOSE_TO_BUILD(USE_GCRYPT TRUE) -+SET_AND_EXPOSE_TO_BUILD(USE_LIBEPOXY TRUE) -+SET_AND_EXPOSE_TO_BUILD(USE_XDGMIME TRUE) - - if (WTF_CPU_ARM OR WTF_CPU_MIPS) - SET_AND_EXPOSE_TO_BUILD(USE_CAPSTONE ${DEVELOPER_MODE}) diff --git a/webkitgtk.spec b/webkitgtk.spec index 88c35e8..4e2d529 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -29,12 +29,6 @@ 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://bugs.webkit.org/show_bug.cgi?id=248032 -# https://bugs.webkit.org/show_bug.cgi?id=248074 -Patch0: epoxy.patch - -Patch1: angle-build.patch - BuildRequires: bison BuildRequires: bubblewrap BuildRequires: cmake From 6d5a3e0677ef71af11279ceafe4a741d682c2109 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Tue, 29 Nov 2022 10:13:25 -0600 Subject: [PATCH 041/200] Request 32 GB per vCPU when processing debuginfo --- webkitgtk.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/webkitgtk.spec b/webkitgtk.spec index 4e2d529..0bc5ad7 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -296,8 +296,8 @@ files for developing applications that use JavaScript engine from webkit2gtk-4.0 # https://bugzilla.redhat.com/show_bug.cgi?id=1456261 %global _dwz_max_die_limit_x86_64 250000000 -# Require 16 GB of RAM per vCPU for debuginfo processing. -%global _find_debuginfo_opts %limit_build -m 16384 +# Require 32 GB of RAM per vCPU for debuginfo processing. 16 GB is not enough. +%global _find_debuginfo_opts %limit_build -m 32768 # Remove debuginfo from 32-bit builds to reduce memory consumption even more. # No amount of optimizing is going to work here. From bd953c0c5660e3bb93b41d0bb5ed5be444a8a043 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Tue, 29 Nov 2022 11:32:57 -0600 Subject: [PATCH 042/200] Update comment regarding debuginfo size --- webkitgtk.spec | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/webkitgtk.spec b/webkitgtk.spec index 0bc5ad7..c065f52 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -290,9 +290,10 @@ files for developing applications that use JavaScript engine from webkit2gtk-4.0 %build # Increase the DIE limit so our debuginfo packages can be size-optimized. -# Decreases the size for x86_64 from ~5G to ~1.1G. This requires lots of -# RAM on the builders, so only do this for x86_64 because other architectures -# have underpowered builders that cannot handle a higher limit. +# This previously decreased the size for x86_64 from ~5G to ~1.1G, but as of +# 2022 it's more like 850 MB -> 675 MB. This requires lots of RAM on the +# builders, so only do this for x86_64 to avoid overwhelming non-x86_64 +# builders. # https://bugzilla.redhat.com/show_bug.cgi?id=1456261 %global _dwz_max_die_limit_x86_64 250000000 From d8d0090a1afb467104a02bcf67b4e6eb404b4f99 Mon Sep 17 00:00:00 2001 From: David King Date: Fri, 2 Dec 2022 15:37:00 +0000 Subject: [PATCH 043/200] Fix javascriptcore5 Requires in webkitgtk6.0 --- webkitgtk.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/webkitgtk.spec b/webkitgtk.spec index c065f52..0099bc3 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -110,7 +110,7 @@ GTK platform. %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 From 9d80218444055c571711b4d86fb5b6114c31299c Mon Sep 17 00:00:00 2001 From: Mamoru TASAKA Date: Tue, 13 Dec 2022 17:42:29 +0900 Subject: [PATCH 044/200] Backport upstream fix for ruby3.2 File.exists? removal --- ...tk-pr7531-ruby32-File_exists_removal.patch | 82 +++++++++++++++++++ webkitgtk.spec | 4 + 2 files changed, 86 insertions(+) create mode 100644 webkitgtk-pr7531-ruby32-File_exists_removal.patch diff --git a/webkitgtk-pr7531-ruby32-File_exists_removal.patch b/webkitgtk-pr7531-ruby32-File_exists_removal.patch new file mode 100644 index 0000000..04aa4bd --- /dev/null +++ b/webkitgtk-pr7531-ruby32-File_exists_removal.patch @@ -0,0 +1,82 @@ +From b7ac5d0ccc7ca3ed6bf4f2d40fde60247ce87d3c Mon Sep 17 00:00:00 2001 +From: Dominique Leuenberger +Date: Mon, 12 Dec 2022 21:24:11 -0800 +Subject: [PATCH] Fix build with Ruby 3.2 + https://bugs.webkit.org/show_bug.cgi?id=246743 + +Reviewed by Ross Kirsling. + +File.exists has been declared deprecated since Ruby 2.1 (2013) and with Ruby 3.2 gets removed for good. + +* Source/JavaScriptCore/offlineasm/config.rb: +* Source/JavaScriptCore/offlineasm/parser.rb: +* Source/WebInspectorUI/Scripts/update-LegacyInspectorBackendCommands.rb: + +Canonical link: https://commits.webkit.org/257775@main +--- + Source/JavaScriptCore/offlineasm/config.rb | 4 ++-- + Source/JavaScriptCore/offlineasm/parser.rb | 8 ++++---- + .../Scripts/update-LegacyInspectorBackendCommands.rb | 2 +- + 3 files changed, 7 insertions(+), 7 deletions(-) + +diff --git a/Source/JavaScriptCore/offlineasm/config.rb b/Source/JavaScriptCore/offlineasm/config.rb +index ba0043119f32..7811626db5e5 100644 +--- a/Source/JavaScriptCore/offlineasm/config.rb ++++ b/Source/JavaScriptCore/offlineasm/config.rb +@@ -23,11 +23,11 @@ + + buildProductsDirectory = ENV['BUILT_PRODUCTS_DIR']; + headersFolderPath = ENV['WK_LIBRARY_HEADERS_FOLDER_PATH']; +-if buildProductsDirectory and File.exists?(buildProductsDirectory) ++if buildProductsDirectory and File.exist?(buildProductsDirectory) + $: << "#{buildProductsDirectory}#{headersFolderPath}/WebKitAdditions/Scripts" + end + sdkRootDirectory = ENV['SDKROOT']; +-if sdkRootDirectory and File.exists?(sdkRootDirectory) ++if sdkRootDirectory and File.exist?(sdkRootDirectory) + $: << "#{sdkRootDirectory}#{headersFolderPath}/WebKitAdditions/Scripts" + end + +diff --git a/Source/JavaScriptCore/offlineasm/parser.rb b/Source/JavaScriptCore/offlineasm/parser.rb +index 12a22b5cc819..07e38b63972b 100644 +--- a/Source/JavaScriptCore/offlineasm/parser.rb ++++ b/Source/JavaScriptCore/offlineasm/parser.rb +@@ -840,10 +840,10 @@ def parseSequence(final, comment) + additionsDirectoryName = "#{@buildProductsDirectory}#{@headersFolderPath}/WebKitAdditions/" + end + fileName = IncludeFile.new(moduleName, additionsDirectoryName).fileName +- if not File.exists?(fileName) ++ if not File.exist?(fileName) + fileName = IncludeFile.new(moduleName, @tokens[@idx].codeOrigin.fileName.dirname).fileName + end +- fileExists = File.exists?(fileName) ++ fileExists = File.exist?(fileName) + raise "File not found: #{fileName}" if not fileExists and not isOptional + list << parse(fileName, @options, @sources) if fileExists + else +@@ -876,10 +876,10 @@ def parseIncludes(final, comment, options) + additionsDirectoryName = "#{@buildProductsDirectory}#{@headersFolderPath}/WebKitAdditions/" + end + fileName = IncludeFile.new(moduleName, additionsDirectoryName).fileName +- if not File.exists?(fileName) ++ if not File.exist?(fileName) + fileName = IncludeFile.new(moduleName, @tokens[@idx].codeOrigin.fileName.dirname).fileName + end +- fileExists = File.exists?(fileName) ++ fileExists = File.exist?(fileName) + raise "File not found: #{fileName}" if not fileExists and not isOptional + if fileExists + parser = Parser.new(readTextFile(fileName), SourceFile.new(fileName), options) +diff --git a/Source/WebInspectorUI/Scripts/update-LegacyInspectorBackendCommands.rb b/Source/WebInspectorUI/Scripts/update-LegacyInspectorBackendCommands.rb +index 680dee7406d1..40737afaa4c5 100755 +--- a/Source/WebInspectorUI/Scripts/update-LegacyInspectorBackendCommands.rb ++++ b/Source/WebInspectorUI/Scripts/update-LegacyInspectorBackendCommands.rb +@@ -36,7 +36,7 @@ def run + end + + generated_path = File.join tmpdir, output_filename +- if !File.exists?(generated_path) ++ if !File.exist?(generated_path) + puts "ERROR: Generated file does not exist at expected path." + exit 1 + end diff --git a/webkitgtk.spec b/webkitgtk.spec index 0099bc3..731ee41 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -28,6 +28,10 @@ Source1: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz.asc # $ gpg --import aperez.key carlosgc.key # $ gpg --export --export-options export-minimal D7FCF61CF9A2DEAB31D81BD3F3D322D0EC4582C3 5AA3BC334FD7E3369E7C77B291C559DBE4C9123B > webkitgtk-keys.gpg Source2: webkitgtk-keys.gpg +# https://bugs.webkit.org/show_bug.cgi?id=246743 +# https://github.com/WebKit/WebKit/pull/7531 +# ruby3.2 removes File.exists? deprecated since ruby2.1 +Patch0: webkitgtk-pr7531-ruby32-File_exists_removal.patch BuildRequires: bison BuildRequires: bubblewrap From c1bc326cc3ef1f043e91b1343f083996a67b836d Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Wed, 14 Dec 2022 10:11:33 -0600 Subject: [PATCH 045/200] Upgrade to 2.39.3 Also, add Recommends: gi-docgen-fonts to the docs subpackages --- .gitignore | 1 + sources | 4 +- ...tk-pr7531-ruby32-File_exists_removal.patch | 82 ------------------- webkitgtk.spec | 9 +- 4 files changed, 7 insertions(+), 89 deletions(-) delete mode 100644 webkitgtk-pr7531-ruby32-File_exists_removal.patch diff --git a/.gitignore b/.gitignore index 2024a39..f076367 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ /webkitgtk-2.38.2.tar.xz.asc /webkitgtk-2.39.1.tar.xz.asc /webkitgtk-2.39.2.tar.xz.asc +/webkitgtk-2.39.3.tar.xz.asc diff --git a/sources b/sources index 4c4e81f..4988aec 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.39.2.tar.xz.asc) = 12cb43c56180e5f5a278dac0013cc47bd090773f6cafb8c67eeacd764087ecca35df7c7c18543fe5039781b3a7086b84cee798f1314c73827325a694dca5ffb6 -SHA512 (webkitgtk-2.39.2.tar.xz) = 0565cc1252d4fe807ad0966cd0db413d6d51857c8e9f09f586b62788ce63f7f81b42499971e87c031c8ef5c8977ace19bc30bec2402ffb0435974a7d8df35e0d +SHA512 (webkitgtk-2.39.3.tar.xz) = e729c8ce9a8b75e11a74a9757c51adac816b45e7c6a0956d713aab55ba614c54848c5880cc2a6ec611cfbf2f6a4b5ff377c0a5de1cbc3710c84e73f6354388b8 +SHA512 (webkitgtk-2.39.3.tar.xz.asc) = 8d1ee021c2c46120276ee15fc75070f3bb60c1f5a14a7ddff6c0fa50440297eb1bb48f076a346cba731c4bb39453b64960c8941426d192d8e7d669e7195fdfd0 diff --git a/webkitgtk-pr7531-ruby32-File_exists_removal.patch b/webkitgtk-pr7531-ruby32-File_exists_removal.patch deleted file mode 100644 index 04aa4bd..0000000 --- a/webkitgtk-pr7531-ruby32-File_exists_removal.patch +++ /dev/null @@ -1,82 +0,0 @@ -From b7ac5d0ccc7ca3ed6bf4f2d40fde60247ce87d3c Mon Sep 17 00:00:00 2001 -From: Dominique Leuenberger -Date: Mon, 12 Dec 2022 21:24:11 -0800 -Subject: [PATCH] Fix build with Ruby 3.2 - https://bugs.webkit.org/show_bug.cgi?id=246743 - -Reviewed by Ross Kirsling. - -File.exists has been declared deprecated since Ruby 2.1 (2013) and with Ruby 3.2 gets removed for good. - -* Source/JavaScriptCore/offlineasm/config.rb: -* Source/JavaScriptCore/offlineasm/parser.rb: -* Source/WebInspectorUI/Scripts/update-LegacyInspectorBackendCommands.rb: - -Canonical link: https://commits.webkit.org/257775@main ---- - Source/JavaScriptCore/offlineasm/config.rb | 4 ++-- - Source/JavaScriptCore/offlineasm/parser.rb | 8 ++++---- - .../Scripts/update-LegacyInspectorBackendCommands.rb | 2 +- - 3 files changed, 7 insertions(+), 7 deletions(-) - -diff --git a/Source/JavaScriptCore/offlineasm/config.rb b/Source/JavaScriptCore/offlineasm/config.rb -index ba0043119f32..7811626db5e5 100644 ---- a/Source/JavaScriptCore/offlineasm/config.rb -+++ b/Source/JavaScriptCore/offlineasm/config.rb -@@ -23,11 +23,11 @@ - - buildProductsDirectory = ENV['BUILT_PRODUCTS_DIR']; - headersFolderPath = ENV['WK_LIBRARY_HEADERS_FOLDER_PATH']; --if buildProductsDirectory and File.exists?(buildProductsDirectory) -+if buildProductsDirectory and File.exist?(buildProductsDirectory) - $: << "#{buildProductsDirectory}#{headersFolderPath}/WebKitAdditions/Scripts" - end - sdkRootDirectory = ENV['SDKROOT']; --if sdkRootDirectory and File.exists?(sdkRootDirectory) -+if sdkRootDirectory and File.exist?(sdkRootDirectory) - $: << "#{sdkRootDirectory}#{headersFolderPath}/WebKitAdditions/Scripts" - end - -diff --git a/Source/JavaScriptCore/offlineasm/parser.rb b/Source/JavaScriptCore/offlineasm/parser.rb -index 12a22b5cc819..07e38b63972b 100644 ---- a/Source/JavaScriptCore/offlineasm/parser.rb -+++ b/Source/JavaScriptCore/offlineasm/parser.rb -@@ -840,10 +840,10 @@ def parseSequence(final, comment) - additionsDirectoryName = "#{@buildProductsDirectory}#{@headersFolderPath}/WebKitAdditions/" - end - fileName = IncludeFile.new(moduleName, additionsDirectoryName).fileName -- if not File.exists?(fileName) -+ if not File.exist?(fileName) - fileName = IncludeFile.new(moduleName, @tokens[@idx].codeOrigin.fileName.dirname).fileName - end -- fileExists = File.exists?(fileName) -+ fileExists = File.exist?(fileName) - raise "File not found: #{fileName}" if not fileExists and not isOptional - list << parse(fileName, @options, @sources) if fileExists - else -@@ -876,10 +876,10 @@ def parseIncludes(final, comment, options) - additionsDirectoryName = "#{@buildProductsDirectory}#{@headersFolderPath}/WebKitAdditions/" - end - fileName = IncludeFile.new(moduleName, additionsDirectoryName).fileName -- if not File.exists?(fileName) -+ if not File.exist?(fileName) - fileName = IncludeFile.new(moduleName, @tokens[@idx].codeOrigin.fileName.dirname).fileName - end -- fileExists = File.exists?(fileName) -+ fileExists = File.exist?(fileName) - raise "File not found: #{fileName}" if not fileExists and not isOptional - if fileExists - parser = Parser.new(readTextFile(fileName), SourceFile.new(fileName), options) -diff --git a/Source/WebInspectorUI/Scripts/update-LegacyInspectorBackendCommands.rb b/Source/WebInspectorUI/Scripts/update-LegacyInspectorBackendCommands.rb -index 680dee7406d1..40737afaa4c5 100755 ---- a/Source/WebInspectorUI/Scripts/update-LegacyInspectorBackendCommands.rb -+++ b/Source/WebInspectorUI/Scripts/update-LegacyInspectorBackendCommands.rb -@@ -36,7 +36,7 @@ def run - end - - generated_path = File.join tmpdir, output_filename -- if !File.exists?(generated_path) -+ if !File.exist?(generated_path) - puts "ERROR: Generated file does not exist at expected path." - exit 1 - end diff --git a/webkitgtk.spec b/webkitgtk.spec index 731ee41..d08a465 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -16,7 +16,7 @@ %bcond_without docs Name: webkitgtk -Version: 2.39.2 +Version: 2.39.3 Release: %autorelease Summary: GTK web content engine library @@ -28,10 +28,6 @@ Source1: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz.asc # $ gpg --import aperez.key carlosgc.key # $ gpg --export --export-options export-minimal D7FCF61CF9A2DEAB31D81BD3F3D322D0EC4582C3 5AA3BC334FD7E3369E7C77B291C559DBE4C9123B > webkitgtk-keys.gpg Source2: webkitgtk-keys.gpg -# https://bugs.webkit.org/show_bug.cgi?id=246743 -# https://github.com/WebKit/WebKit/pull/7531 -# ruby3.2 removes File.exists? deprecated since ruby2.1 -Patch0: webkitgtk-pr7531-ruby32-File_exists_removal.patch BuildRequires: bison BuildRequires: bubblewrap @@ -209,6 +205,7 @@ Summary: Documentation files for webkit2gtk5.0 BuildArch: noarch Requires: webkitgtk6.0 = %{version}-%{release} Obsoletes: webkit2gtk5.0-doc < %{version}-%{release} +Recommends: gi-docgen-fonts %description -n webkitgtk6.0-doc This package contains developer documentation for webkitgtk6.0. @@ -217,6 +214,7 @@ This package contains developer documentation for webkitgtk6.0. 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. @@ -229,6 +227,7 @@ 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. From fe40d5cdfa15eaafa8735b6d447f0c04a3169d7f Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Thu, 15 Dec 2022 15:53:02 -0600 Subject: [PATCH 046/200] Disable LTO again --- webkitgtk.spec | 3 +++ 1 file changed, 3 insertions(+) diff --git a/webkitgtk.spec b/webkitgtk.spec index d08a465..f890b2a 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -1,3 +1,6 @@ +# https://bugs.webkit.org/show_bug.cgi?id=249368 +%global _lto_cflags %{nil} + ## NOTE: Lots of files in various subdirectories have the same name (such as ## "LICENSE") so this short macro allows us to distinguish them by using their ## directory names (from the source tree) as prefixes for the files. From 910efa726dcaf2912e69a44fd6608bf9f41b7f14 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Tue, 20 Dec 2022 14:41:46 -0600 Subject: [PATCH 047/200] Sabotage debuginfo on s390x https://pagure.io/fedora-infrastructure/issue/11000 --- webkitgtk.spec | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/webkitgtk.spec b/webkitgtk.spec index f890b2a..df3245f 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -306,11 +306,13 @@ files for developing applications that use JavaScript engine from webkit2gtk-4.0 # Require 32 GB of RAM per vCPU for debuginfo processing. 16 GB is not enough. %global _find_debuginfo_opts %limit_build -m 32768 -# Remove debuginfo from 32-bit builds to reduce memory consumption even more. -# No amount of optimizing is going to work here. +# Reduce debuginfo verbosity 32-bit builds to reduce memory consumption even more. # https://bugs.webkit.org/show_bug.cgi?id=140176 # https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/I6IVNA52TXTBRQLKW45CJ5K4RA4WNGMI/ -%ifarch %{ix86} +# +# Do this for s390x too as a temporary measure. +# https://pagure.io/fedora-infrastructure/issue/11000 +%ifarch %{ix86} s390x %global optflags %(echo %{optflags} | sed 's/-g /-g1 /') %endif From 48f4d80fd85917ad2039790399295c05470e2947 Mon Sep 17 00:00:00 2001 From: Pete Walter Date: Sat, 31 Dec 2022 03:58:29 +0000 Subject: [PATCH 048/200] Rebuild for ICU 72 From c49438eba25ae6b545ccf2d97c85748b58736714 Mon Sep 17 00:00:00 2001 From: Neal Gompa Date: Sat, 7 Jan 2023 19:21:11 -0500 Subject: [PATCH 049/200] Disable JSC JIT for Asahi SIG builds while it is broken with BTI enabled JavaScriptCore's JIT crashes on Apple Silicon Macs running Linux such that the kernel has BTI enabled. This breaks large parts of GNOME using WebKitGTK, notably GNOME Online Accounts; GNOME Help; and other similar things. For the time being, we'll disable JSC JIT when the Asahi SIG builds WebKitGTK. This makes us take a huge performance hit, but slow WebKit is better than crashing WebKit. Reference: https://bugs.webkit.org/show_bug.cgi?id=245697 Related: rhbz#2130009 --- webkitgtk.spec | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/webkitgtk.spec b/webkitgtk.spec index df3245f..751f4d4 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -332,6 +332,18 @@ files for developing applications that use JavaScript engine from webkit2gtk-4.0 %ifarch aarch64 -DUSE_64KB_PAGE_BLOCK=ON \ %endif +%endif +%if "%{vendor}" == "Fedora Copr - group @asahi" +%dnl JIT is broken with BTI on Apple ARM systems at the moment +%dnl Cf. https://bugzilla.redhat.com/show_bug.cgi?id=2130009 +%dnl Cf. https://bugs.webkit.org/show_bug.cgi?id=245697 +%dnl Disable until this is fixed upstream. +%dnl Yes, this means performance is going to suck... :'( +%ifarch aarch64 + -DENABLE_JIT=OFF \ + -DENABLE_C_LOOP=ON \ + -DENABLE_SAMPLING_PROFILER=OFF \ +%endif %endif %{nil} @@ -351,6 +363,18 @@ files for developing applications that use JavaScript engine from webkit2gtk-4.0 %ifarch aarch64 -DUSE_64KB_PAGE_BLOCK=ON \ %endif +%endif +%if "%{vendor}" == "Fedora Copr - group @asahi" +%dnl JIT is broken with BTI on Apple ARM systems at the moment +%dnl Cf. https://bugzilla.redhat.com/show_bug.cgi?id=2130009 +%dnl Cf. https://bugs.webkit.org/show_bug.cgi?id=245697 +%dnl Disable until this is fixed upstream. +%dnl Yes, this means performance is going to suck... :'( +%ifarch aarch64 + -DENABLE_JIT=OFF \ + -DENABLE_C_LOOP=ON \ + -DENABLE_SAMPLING_PROFILER=OFF \ +%endif %endif %{nil} @@ -371,6 +395,18 @@ files for developing applications that use JavaScript engine from webkit2gtk-4.0 %ifarch aarch64 -DUSE_64KB_PAGE_BLOCK=ON \ %endif +%endif +%if "%{vendor}" == "Fedora Copr - group @asahi" +%dnl JIT is broken with BTI on Apple ARM systems at the moment +%dnl Cf. https://bugzilla.redhat.com/show_bug.cgi?id=2130009 +%dnl Cf. https://bugs.webkit.org/show_bug.cgi?id=245697 +%dnl Disable until this is fixed upstream. +%dnl Yes, this means performance is going to suck... :'( +%ifarch aarch64 + -DENABLE_JIT=OFF \ + -DENABLE_C_LOOP=ON \ + -DENABLE_SAMPLING_PROFILER=OFF \ +%endif %endif %{nil} From ca90fef86ecbfae4b667c394e4e712ec04ca8d6f Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Fri, 13 Jan 2023 12:54:44 +0100 Subject: [PATCH 050/200] Re-enable full debuginfo on s390x We now have two beefier s390x builders in the heavybuilder channel that should handle building it fine. https://pagure.io/fedora-infrastructure/issue/11000 --- webkitgtk.spec | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/webkitgtk.spec b/webkitgtk.spec index 751f4d4..4ab3e3f 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -309,10 +309,7 @@ files for developing applications that use JavaScript engine from webkit2gtk-4.0 # Reduce debuginfo verbosity 32-bit builds to reduce memory consumption even more. # https://bugs.webkit.org/show_bug.cgi?id=140176 # https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/I6IVNA52TXTBRQLKW45CJ5K4RA4WNGMI/ -# -# Do this for s390x too as a temporary measure. -# https://pagure.io/fedora-infrastructure/issue/11000 -%ifarch %{ix86} s390x +%ifarch %{ix86} %global optflags %(echo %{optflags} | sed 's/-g /-g1 /') %endif From 6572eb6dda1587b286b72f546bcae5e8f2f241bc Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Mon, 16 Jan 2023 11:48:24 -0600 Subject: [PATCH 051/200] Upgrade to 2.39.4 --- .gitignore | 1 + sources | 4 ++-- webkitgtk.spec | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index f076367..1cd3038 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ /webkitgtk-2.39.1.tar.xz.asc /webkitgtk-2.39.2.tar.xz.asc /webkitgtk-2.39.3.tar.xz.asc +/webkitgtk-2.39.4.tar.xz.asc diff --git a/sources b/sources index 4988aec..7b2e28c 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.39.3.tar.xz) = e729c8ce9a8b75e11a74a9757c51adac816b45e7c6a0956d713aab55ba614c54848c5880cc2a6ec611cfbf2f6a4b5ff377c0a5de1cbc3710c84e73f6354388b8 -SHA512 (webkitgtk-2.39.3.tar.xz.asc) = 8d1ee021c2c46120276ee15fc75070f3bb60c1f5a14a7ddff6c0fa50440297eb1bb48f076a346cba731c4bb39453b64960c8941426d192d8e7d669e7195fdfd0 +SHA512 (webkitgtk-2.39.4.tar.xz) = 74240995fc5942605b0d2ca87641851e3e1edd7d465c22a545dde7afc947b74b8a548472970288aee59b3bb8ff33a98e85f56aca14a545824e5dea3397efc052 +SHA512 (webkitgtk-2.39.4.tar.xz.asc) = 8cd57b3f21943b77897833c9a08b1cb2036149df3ca76562cdf92b762ff82e6cdbbdc55f488dea0ff35051c929cd28f8151586f734f41e97c6d1abb4729fce64 diff --git a/webkitgtk.spec b/webkitgtk.spec index 4ab3e3f..31b0e54 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -19,7 +19,7 @@ %bcond_without docs Name: webkitgtk -Version: 2.39.3 +Version: 2.39.4 Release: %autorelease Summary: GTK web content engine library From ceaeceb23032b8351275f5251df15670e565e0ca Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Mon, 16 Jan 2023 16:31:54 -0600 Subject: [PATCH 052/200] Add patch to fix ANGLE build --- angle-build.patch | 12 ++++++++++++ webkitgtk.spec | 3 +++ 2 files changed, 15 insertions(+) create mode 100644 angle-build.patch diff --git a/angle-build.patch b/angle-build.patch new file mode 100644 index 0000000..fc2e0aa --- /dev/null +++ b/angle-build.patch @@ -0,0 +1,12 @@ +diff --git a/Source/ThirdParty/ANGLE/include/GLSLANG/ShaderVars.h b/Source/ThirdParty/ANGLE/include/GLSLANG/ShaderVars.h +index 94cb93e01fc0..ec7bda372f30 100644 +--- a/Source/ThirdParty/ANGLE/include/GLSLANG/ShaderVars.h ++++ b/Source/ThirdParty/ANGLE/include/GLSLANG/ShaderVars.h +@@ -12,6 +12,7 @@ + + #include + #include ++#include + #include + #include + diff --git a/webkitgtk.spec b/webkitgtk.spec index 31b0e54..9a39d25 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -32,6 +32,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://bugs.webkit.org/show_bug.cgi?id=250689 +Patch0: angle-build.patch + BuildRequires: bison BuildRequires: bubblewrap BuildRequires: cmake From 534a7d9a0866e07a265aaefcedd0f54ef1ea287a Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Tue, 17 Jan 2023 12:24:15 -0600 Subject: [PATCH 053/200] Fix installed headers --- unbreak-headers.patch | 89 +++++++++++++++++++++++++++++++++++++++++++ webkitgtk.spec | 3 ++ 2 files changed, 92 insertions(+) create mode 100644 unbreak-headers.patch diff --git a/unbreak-headers.patch b/unbreak-headers.patch new file mode 100644 index 0000000..2739d68 --- /dev/null +++ b/unbreak-headers.patch @@ -0,0 +1,89 @@ +From 9fe47e98a7f3b542413f3793912b291599f05860 Mon Sep 17 00:00:00 2001 +From: Thomas Devoogdt +Date: Tue, 17 Jan 2023 00:55:33 -0800 +Subject: [PATCH] REGRESSION(258347@main): Fix webkit.h public header + +https://bugs.webkit.org/show_bug.cgi?id=250701 + +Reviewed by Carlos Garcia Campos. + +Since commit 654646fe6187abcf9ced6a3ace80eaf04754fd39, the webkit.h file is generated +and does only define __WEBKIT_H_INSIDE__. So replace the only remaining __WEBKIT2_H_INSIDE__ +defines to avoid any "Only can be included directly." error. + +Signed-off-by: Thomas Devoogdt + +Canonical link: https://commits.webkit.org/258974@main +--- + Source/WebKit/Scripts/glib/generate-api-header.py | 4 ++-- + Source/WebKit/UIProcess/API/gtk/WebKitEnumTypesGtk3.h.in | 2 +- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/Source/WebKit/Scripts/glib/generate-api-header.py b/Source/WebKit/Scripts/glib/generate-api-header.py +index 6eb326b8764f..6977b51914e4 100644 +--- a/Source/WebKit/Scripts/glib/generate-api-header.py ++++ b/Source/WebKit/Scripts/glib/generate-api-header.py +@@ -30,7 +30,7 @@ + "gtk4": '''#if !defined(__WEBKIT_H_INSIDE__) && !defined(BUILDING_WEBKIT) + #error \"Only can be included directly.\" + #endif''', +- "gtk": '''#if !defined(__WEBKIT2_H_INSIDE__) && !defined(BUILDING_WEBKIT) ++ "gtk": '''#if !defined(__WEBKIT_H_INSIDE__) && !defined(BUILDING_WEBKIT) + #error \"Only can be included directly.\" + #endif''', + "wpe": '''#if !defined(__WEBKIT_H_INSIDE__) && !defined(BUILDING_WEBKIT) +@@ -54,7 +54,7 @@ + "gtk4": '''#if !defined(__WEBKIT_H_INSIDE__) && !defined(__WEBKIT_WEB_EXTENSION_H_INSIDE__) && !defined(BUILDING_WEBKIT) + #error \"Only can be included directly.\" + #endif''', +- "gtk": '''#if !defined(__WEBKIT2_H_INSIDE__) && !defined(__WEBKIT_WEB_EXTENSION_H_INSIDE__) && !defined(BUILDING_WEBKIT) ++ "gtk": '''#if !defined(__WEBKIT_H_INSIDE__) && !defined(__WEBKIT_WEB_EXTENSION_H_INSIDE__) && !defined(BUILDING_WEBKIT) + #error \"Only can be included directly.\" + #endif''', + "wpe": '''#if !defined(__WEBKIT_H_INSIDE__) && !defined(__WEBKIT_WEB_EXTENSION_H_INSIDE__) && !defined(BUILDING_WEBKIT) +diff --git a/Source/WebKit/UIProcess/API/gtk/WebKitEnumTypesGtk3.h.in b/Source/WebKit/UIProcess/API/gtk/WebKitEnumTypesGtk3.h.in +index 52cda32496bb..493b8e9a1e5e 100644 +--- a/Source/WebKit/UIProcess/API/gtk/WebKitEnumTypesGtk3.h.in ++++ b/Source/WebKit/UIProcess/API/gtk/WebKitEnumTypesGtk3.h.in +@@ -18,7 +18,7 @@ + * Boston, MA 02110-1301, USA. + */ + +-#if !defined(__WEBKIT2_H_INSIDE__) && !defined(BUILDING_WEBKIT) ++#if !defined(__WEBKIT_H_INSIDE__) && !defined(BUILDING_WEBKIT) + #error "Only can be included directly." + #endif + +From 8f11ad0813c37f4bd8ee43ecac733892a57e2a03 Mon Sep 17 00:00:00 2001 +From: Thomas Devoogdt +Date: Tue, 17 Jan 2023 05:45:34 -0800 +Subject: [PATCH] REGRESSION(258347@main): Fix webkit.h public header part 2 + +https://bugs.webkit.org/show_bug.cgi?id=250701 + +Reviewed by Carlos Garcia Campos. + +In commit 9fe47e98a7f3b542413f3793912b291599f05860, I've replaced all +instances of __WEBKIT2_H_INSIDE__ with __WEBKIT_H_INSIDE__ but overlooked +this one. So fix that. + +Signed-off-by: Thomas Devoogdt + +Canonical link: https://commits.webkit.org/258976@main +--- + Source/WebKit/UIProcess/API/gtk/WebKitVersion.h.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Source/WebKit/UIProcess/API/gtk/WebKitVersion.h.in b/Source/WebKit/UIProcess/API/gtk/WebKitVersion.h.in +index 0704d8016c45..f141a20aa65d 100644 +--- a/Source/WebKit/UIProcess/API/gtk/WebKitVersion.h.in ++++ b/Source/WebKit/UIProcess/API/gtk/WebKitVersion.h.in +@@ -17,7 +17,7 @@ + * Boston, MA 02110-1301, USA. + */ + +-#if !defined(__WEBKIT@WEBKITGTK_API_INFIX@_H_INSIDE__) && !defined(__WEBKIT_WEB_EXTENSION_H_INSIDE__) && !defined(BUILDING_WEBKIT) ++#if !defined(__WEBKIT_H_INSIDE__) && !defined(__WEBKIT_WEB_EXTENSION_H_INSIDE__) && !defined(BUILDING_WEBKIT) + #error "Only can be included directly." + #endif + diff --git a/webkitgtk.spec b/webkitgtk.spec index 9a39d25..237e36e 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -35,6 +35,9 @@ Source2: webkitgtk-keys.gpg # https://bugs.webkit.org/show_bug.cgi?id=250689 Patch0: angle-build.patch +# https://bugs.webkit.org/show_bug.cgi?id=250701 +Patch1: unbreak-headers.patch + BuildRequires: bison BuildRequires: bubblewrap BuildRequires: cmake From d9ba8348eccbd5d577ec378572a5cc6bf1171055 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Tue, 17 Jan 2023 12:24:35 -0600 Subject: [PATCH 054/200] Revert "Re-enable full debuginfo on s390x" This reverts commit ca90fef86ecbfae4b667c394e4e712ec04ca8d6f. It seems %limit_build doesn't work as we'd like it to for debuginfo. The new more powerful s390x VMs are still being overwhelmed. --- webkitgtk.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/webkitgtk.spec b/webkitgtk.spec index 237e36e..8dab150 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -315,7 +315,10 @@ files for developing applications that use JavaScript engine from webkit2gtk-4.0 # Reduce debuginfo verbosity 32-bit builds to reduce memory consumption even more. # https://bugs.webkit.org/show_bug.cgi?id=140176 # https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/I6IVNA52TXTBRQLKW45CJ5K4RA4WNGMI/ -%ifarch %{ix86} +# +# Do this for s390x too as a temporary measure. +# https://pagure.io/fedora-infrastructure/issue/11000 +%ifarch %{ix86} s390x %global optflags %(echo %{optflags} | sed 's/-g /-g1 /') %endif From cc3da95bc5526397004e0dc326ff4aa07771080f Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Thu, 19 Jan 2023 16:52:50 -0600 Subject: [PATCH 055/200] Upgrade to 2.39.5 --- .gitignore | 1 + angle-build.patch | 12 ------ sources | 4 +- unbreak-headers.patch | 89 ------------------------------------------- webkitgtk.spec | 8 +--- 5 files changed, 4 insertions(+), 110 deletions(-) delete mode 100644 angle-build.patch delete mode 100644 unbreak-headers.patch diff --git a/.gitignore b/.gitignore index 1cd3038..d66a724 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ /webkitgtk-2.39.2.tar.xz.asc /webkitgtk-2.39.3.tar.xz.asc /webkitgtk-2.39.4.tar.xz.asc +/webkitgtk-2.39.5.tar.xz.asc diff --git a/angle-build.patch b/angle-build.patch deleted file mode 100644 index fc2e0aa..0000000 --- a/angle-build.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/Source/ThirdParty/ANGLE/include/GLSLANG/ShaderVars.h b/Source/ThirdParty/ANGLE/include/GLSLANG/ShaderVars.h -index 94cb93e01fc0..ec7bda372f30 100644 ---- a/Source/ThirdParty/ANGLE/include/GLSLANG/ShaderVars.h -+++ b/Source/ThirdParty/ANGLE/include/GLSLANG/ShaderVars.h -@@ -12,6 +12,7 @@ - - #include - #include -+#include - #include - #include - diff --git a/sources b/sources index 7b2e28c..ebeac96 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.39.4.tar.xz) = 74240995fc5942605b0d2ca87641851e3e1edd7d465c22a545dde7afc947b74b8a548472970288aee59b3bb8ff33a98e85f56aca14a545824e5dea3397efc052 -SHA512 (webkitgtk-2.39.4.tar.xz.asc) = 8cd57b3f21943b77897833c9a08b1cb2036149df3ca76562cdf92b762ff82e6cdbbdc55f488dea0ff35051c929cd28f8151586f734f41e97c6d1abb4729fce64 +SHA512 (webkitgtk-2.39.5.tar.xz) = a55b007d84ec58aaa7376c3d872be935a5c225d28361180ff3c20ba0b054870cff07fbfa2fb2056f68814412b1e144f0f9566b4f905086dd92dc82a0123d2210 +SHA512 (webkitgtk-2.39.5.tar.xz.asc) = 2a60c9ac379feba77d0839a71f8cc96824b02211e783620a5c2f74f39ae4c1c1061942c7ad4c56bb449dfbec4f6e6260e62a10165bd31d8d399d9347364d727c diff --git a/unbreak-headers.patch b/unbreak-headers.patch deleted file mode 100644 index 2739d68..0000000 --- a/unbreak-headers.patch +++ /dev/null @@ -1,89 +0,0 @@ -From 9fe47e98a7f3b542413f3793912b291599f05860 Mon Sep 17 00:00:00 2001 -From: Thomas Devoogdt -Date: Tue, 17 Jan 2023 00:55:33 -0800 -Subject: [PATCH] REGRESSION(258347@main): Fix webkit.h public header - -https://bugs.webkit.org/show_bug.cgi?id=250701 - -Reviewed by Carlos Garcia Campos. - -Since commit 654646fe6187abcf9ced6a3ace80eaf04754fd39, the webkit.h file is generated -and does only define __WEBKIT_H_INSIDE__. So replace the only remaining __WEBKIT2_H_INSIDE__ -defines to avoid any "Only can be included directly." error. - -Signed-off-by: Thomas Devoogdt - -Canonical link: https://commits.webkit.org/258974@main ---- - Source/WebKit/Scripts/glib/generate-api-header.py | 4 ++-- - Source/WebKit/UIProcess/API/gtk/WebKitEnumTypesGtk3.h.in | 2 +- - 2 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/Source/WebKit/Scripts/glib/generate-api-header.py b/Source/WebKit/Scripts/glib/generate-api-header.py -index 6eb326b8764f..6977b51914e4 100644 ---- a/Source/WebKit/Scripts/glib/generate-api-header.py -+++ b/Source/WebKit/Scripts/glib/generate-api-header.py -@@ -30,7 +30,7 @@ - "gtk4": '''#if !defined(__WEBKIT_H_INSIDE__) && !defined(BUILDING_WEBKIT) - #error \"Only can be included directly.\" - #endif''', -- "gtk": '''#if !defined(__WEBKIT2_H_INSIDE__) && !defined(BUILDING_WEBKIT) -+ "gtk": '''#if !defined(__WEBKIT_H_INSIDE__) && !defined(BUILDING_WEBKIT) - #error \"Only can be included directly.\" - #endif''', - "wpe": '''#if !defined(__WEBKIT_H_INSIDE__) && !defined(BUILDING_WEBKIT) -@@ -54,7 +54,7 @@ - "gtk4": '''#if !defined(__WEBKIT_H_INSIDE__) && !defined(__WEBKIT_WEB_EXTENSION_H_INSIDE__) && !defined(BUILDING_WEBKIT) - #error \"Only can be included directly.\" - #endif''', -- "gtk": '''#if !defined(__WEBKIT2_H_INSIDE__) && !defined(__WEBKIT_WEB_EXTENSION_H_INSIDE__) && !defined(BUILDING_WEBKIT) -+ "gtk": '''#if !defined(__WEBKIT_H_INSIDE__) && !defined(__WEBKIT_WEB_EXTENSION_H_INSIDE__) && !defined(BUILDING_WEBKIT) - #error \"Only can be included directly.\" - #endif''', - "wpe": '''#if !defined(__WEBKIT_H_INSIDE__) && !defined(__WEBKIT_WEB_EXTENSION_H_INSIDE__) && !defined(BUILDING_WEBKIT) -diff --git a/Source/WebKit/UIProcess/API/gtk/WebKitEnumTypesGtk3.h.in b/Source/WebKit/UIProcess/API/gtk/WebKitEnumTypesGtk3.h.in -index 52cda32496bb..493b8e9a1e5e 100644 ---- a/Source/WebKit/UIProcess/API/gtk/WebKitEnumTypesGtk3.h.in -+++ b/Source/WebKit/UIProcess/API/gtk/WebKitEnumTypesGtk3.h.in -@@ -18,7 +18,7 @@ - * Boston, MA 02110-1301, USA. - */ - --#if !defined(__WEBKIT2_H_INSIDE__) && !defined(BUILDING_WEBKIT) -+#if !defined(__WEBKIT_H_INSIDE__) && !defined(BUILDING_WEBKIT) - #error "Only can be included directly." - #endif - -From 8f11ad0813c37f4bd8ee43ecac733892a57e2a03 Mon Sep 17 00:00:00 2001 -From: Thomas Devoogdt -Date: Tue, 17 Jan 2023 05:45:34 -0800 -Subject: [PATCH] REGRESSION(258347@main): Fix webkit.h public header part 2 - -https://bugs.webkit.org/show_bug.cgi?id=250701 - -Reviewed by Carlos Garcia Campos. - -In commit 9fe47e98a7f3b542413f3793912b291599f05860, I've replaced all -instances of __WEBKIT2_H_INSIDE__ with __WEBKIT_H_INSIDE__ but overlooked -this one. So fix that. - -Signed-off-by: Thomas Devoogdt - -Canonical link: https://commits.webkit.org/258976@main ---- - Source/WebKit/UIProcess/API/gtk/WebKitVersion.h.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Source/WebKit/UIProcess/API/gtk/WebKitVersion.h.in b/Source/WebKit/UIProcess/API/gtk/WebKitVersion.h.in -index 0704d8016c45..f141a20aa65d 100644 ---- a/Source/WebKit/UIProcess/API/gtk/WebKitVersion.h.in -+++ b/Source/WebKit/UIProcess/API/gtk/WebKitVersion.h.in -@@ -17,7 +17,7 @@ - * Boston, MA 02110-1301, USA. - */ - --#if !defined(__WEBKIT@WEBKITGTK_API_INFIX@_H_INSIDE__) && !defined(__WEBKIT_WEB_EXTENSION_H_INSIDE__) && !defined(BUILDING_WEBKIT) -+#if !defined(__WEBKIT_H_INSIDE__) && !defined(__WEBKIT_WEB_EXTENSION_H_INSIDE__) && !defined(BUILDING_WEBKIT) - #error "Only can be included directly." - #endif - diff --git a/webkitgtk.spec b/webkitgtk.spec index 8dab150..d7e26d2 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -19,7 +19,7 @@ %bcond_without docs Name: webkitgtk -Version: 2.39.4 +Version: 2.39.5 Release: %autorelease Summary: GTK web content engine library @@ -32,12 +32,6 @@ 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://bugs.webkit.org/show_bug.cgi?id=250689 -Patch0: angle-build.patch - -# https://bugs.webkit.org/show_bug.cgi?id=250701 -Patch1: unbreak-headers.patch - BuildRequires: bison BuildRequires: bubblewrap BuildRequires: cmake From 7834b41a9ac1c80ab746b17c9dabe0ac181ac56d Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Thu, 19 Jan 2023 18:07:31 -0600 Subject: [PATCH 056/200] Revert "Upgrade to 2.39.5" This reverts commit cc3da95bc5526397004e0dc326ff4aa07771080f. Why? Because this won't build successfully, because I didn't test it locally since there were only a couple days since .4, but there's a soname bump because we removed some APIs. And we're doing a mass rebuild right now, and it's not ideal for that to pick up a known-bad commit. --- .gitignore | 1 - angle-build.patch | 12 ++++++ sources | 4 +- unbreak-headers.patch | 89 +++++++++++++++++++++++++++++++++++++++++++ webkitgtk.spec | 8 +++- 5 files changed, 110 insertions(+), 4 deletions(-) create mode 100644 angle-build.patch create mode 100644 unbreak-headers.patch diff --git a/.gitignore b/.gitignore index d66a724..1cd3038 100644 --- a/.gitignore +++ b/.gitignore @@ -9,4 +9,3 @@ /webkitgtk-2.39.2.tar.xz.asc /webkitgtk-2.39.3.tar.xz.asc /webkitgtk-2.39.4.tar.xz.asc -/webkitgtk-2.39.5.tar.xz.asc diff --git a/angle-build.patch b/angle-build.patch new file mode 100644 index 0000000..fc2e0aa --- /dev/null +++ b/angle-build.patch @@ -0,0 +1,12 @@ +diff --git a/Source/ThirdParty/ANGLE/include/GLSLANG/ShaderVars.h b/Source/ThirdParty/ANGLE/include/GLSLANG/ShaderVars.h +index 94cb93e01fc0..ec7bda372f30 100644 +--- a/Source/ThirdParty/ANGLE/include/GLSLANG/ShaderVars.h ++++ b/Source/ThirdParty/ANGLE/include/GLSLANG/ShaderVars.h +@@ -12,6 +12,7 @@ + + #include + #include ++#include + #include + #include + diff --git a/sources b/sources index ebeac96..7b2e28c 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.39.5.tar.xz) = a55b007d84ec58aaa7376c3d872be935a5c225d28361180ff3c20ba0b054870cff07fbfa2fb2056f68814412b1e144f0f9566b4f905086dd92dc82a0123d2210 -SHA512 (webkitgtk-2.39.5.tar.xz.asc) = 2a60c9ac379feba77d0839a71f8cc96824b02211e783620a5c2f74f39ae4c1c1061942c7ad4c56bb449dfbec4f6e6260e62a10165bd31d8d399d9347364d727c +SHA512 (webkitgtk-2.39.4.tar.xz) = 74240995fc5942605b0d2ca87641851e3e1edd7d465c22a545dde7afc947b74b8a548472970288aee59b3bb8ff33a98e85f56aca14a545824e5dea3397efc052 +SHA512 (webkitgtk-2.39.4.tar.xz.asc) = 8cd57b3f21943b77897833c9a08b1cb2036149df3ca76562cdf92b762ff82e6cdbbdc55f488dea0ff35051c929cd28f8151586f734f41e97c6d1abb4729fce64 diff --git a/unbreak-headers.patch b/unbreak-headers.patch new file mode 100644 index 0000000..2739d68 --- /dev/null +++ b/unbreak-headers.patch @@ -0,0 +1,89 @@ +From 9fe47e98a7f3b542413f3793912b291599f05860 Mon Sep 17 00:00:00 2001 +From: Thomas Devoogdt +Date: Tue, 17 Jan 2023 00:55:33 -0800 +Subject: [PATCH] REGRESSION(258347@main): Fix webkit.h public header + +https://bugs.webkit.org/show_bug.cgi?id=250701 + +Reviewed by Carlos Garcia Campos. + +Since commit 654646fe6187abcf9ced6a3ace80eaf04754fd39, the webkit.h file is generated +and does only define __WEBKIT_H_INSIDE__. So replace the only remaining __WEBKIT2_H_INSIDE__ +defines to avoid any "Only can be included directly." error. + +Signed-off-by: Thomas Devoogdt + +Canonical link: https://commits.webkit.org/258974@main +--- + Source/WebKit/Scripts/glib/generate-api-header.py | 4 ++-- + Source/WebKit/UIProcess/API/gtk/WebKitEnumTypesGtk3.h.in | 2 +- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/Source/WebKit/Scripts/glib/generate-api-header.py b/Source/WebKit/Scripts/glib/generate-api-header.py +index 6eb326b8764f..6977b51914e4 100644 +--- a/Source/WebKit/Scripts/glib/generate-api-header.py ++++ b/Source/WebKit/Scripts/glib/generate-api-header.py +@@ -30,7 +30,7 @@ + "gtk4": '''#if !defined(__WEBKIT_H_INSIDE__) && !defined(BUILDING_WEBKIT) + #error \"Only can be included directly.\" + #endif''', +- "gtk": '''#if !defined(__WEBKIT2_H_INSIDE__) && !defined(BUILDING_WEBKIT) ++ "gtk": '''#if !defined(__WEBKIT_H_INSIDE__) && !defined(BUILDING_WEBKIT) + #error \"Only can be included directly.\" + #endif''', + "wpe": '''#if !defined(__WEBKIT_H_INSIDE__) && !defined(BUILDING_WEBKIT) +@@ -54,7 +54,7 @@ + "gtk4": '''#if !defined(__WEBKIT_H_INSIDE__) && !defined(__WEBKIT_WEB_EXTENSION_H_INSIDE__) && !defined(BUILDING_WEBKIT) + #error \"Only can be included directly.\" + #endif''', +- "gtk": '''#if !defined(__WEBKIT2_H_INSIDE__) && !defined(__WEBKIT_WEB_EXTENSION_H_INSIDE__) && !defined(BUILDING_WEBKIT) ++ "gtk": '''#if !defined(__WEBKIT_H_INSIDE__) && !defined(__WEBKIT_WEB_EXTENSION_H_INSIDE__) && !defined(BUILDING_WEBKIT) + #error \"Only can be included directly.\" + #endif''', + "wpe": '''#if !defined(__WEBKIT_H_INSIDE__) && !defined(__WEBKIT_WEB_EXTENSION_H_INSIDE__) && !defined(BUILDING_WEBKIT) +diff --git a/Source/WebKit/UIProcess/API/gtk/WebKitEnumTypesGtk3.h.in b/Source/WebKit/UIProcess/API/gtk/WebKitEnumTypesGtk3.h.in +index 52cda32496bb..493b8e9a1e5e 100644 +--- a/Source/WebKit/UIProcess/API/gtk/WebKitEnumTypesGtk3.h.in ++++ b/Source/WebKit/UIProcess/API/gtk/WebKitEnumTypesGtk3.h.in +@@ -18,7 +18,7 @@ + * Boston, MA 02110-1301, USA. + */ + +-#if !defined(__WEBKIT2_H_INSIDE__) && !defined(BUILDING_WEBKIT) ++#if !defined(__WEBKIT_H_INSIDE__) && !defined(BUILDING_WEBKIT) + #error "Only can be included directly." + #endif + +From 8f11ad0813c37f4bd8ee43ecac733892a57e2a03 Mon Sep 17 00:00:00 2001 +From: Thomas Devoogdt +Date: Tue, 17 Jan 2023 05:45:34 -0800 +Subject: [PATCH] REGRESSION(258347@main): Fix webkit.h public header part 2 + +https://bugs.webkit.org/show_bug.cgi?id=250701 + +Reviewed by Carlos Garcia Campos. + +In commit 9fe47e98a7f3b542413f3793912b291599f05860, I've replaced all +instances of __WEBKIT2_H_INSIDE__ with __WEBKIT_H_INSIDE__ but overlooked +this one. So fix that. + +Signed-off-by: Thomas Devoogdt + +Canonical link: https://commits.webkit.org/258976@main +--- + Source/WebKit/UIProcess/API/gtk/WebKitVersion.h.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Source/WebKit/UIProcess/API/gtk/WebKitVersion.h.in b/Source/WebKit/UIProcess/API/gtk/WebKitVersion.h.in +index 0704d8016c45..f141a20aa65d 100644 +--- a/Source/WebKit/UIProcess/API/gtk/WebKitVersion.h.in ++++ b/Source/WebKit/UIProcess/API/gtk/WebKitVersion.h.in +@@ -17,7 +17,7 @@ + * Boston, MA 02110-1301, USA. + */ + +-#if !defined(__WEBKIT@WEBKITGTK_API_INFIX@_H_INSIDE__) && !defined(__WEBKIT_WEB_EXTENSION_H_INSIDE__) && !defined(BUILDING_WEBKIT) ++#if !defined(__WEBKIT_H_INSIDE__) && !defined(__WEBKIT_WEB_EXTENSION_H_INSIDE__) && !defined(BUILDING_WEBKIT) + #error "Only can be included directly." + #endif + diff --git a/webkitgtk.spec b/webkitgtk.spec index d7e26d2..8dab150 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -19,7 +19,7 @@ %bcond_without docs Name: webkitgtk -Version: 2.39.5 +Version: 2.39.4 Release: %autorelease Summary: GTK web content engine library @@ -32,6 +32,12 @@ 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://bugs.webkit.org/show_bug.cgi?id=250689 +Patch0: angle-build.patch + +# https://bugs.webkit.org/show_bug.cgi?id=250701 +Patch1: unbreak-headers.patch + BuildRequires: bison BuildRequires: bubblewrap BuildRequires: cmake From 16fa8088341711c864cde44f5932da117ee5bb29 Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Thu, 19 Jan 2023 17:09:35 +0100 Subject: [PATCH 057/200] Increase dwz optimization DIE limit for aarch64 webkitgtk builds in koji are now done on 'heavybuilder' aarch64 builders, which have enough RAM to do dwz optimization. Increase the aarch64 limit to be the same as on x86_64. --- webkitgtk.spec | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/webkitgtk.spec b/webkitgtk.spec index 8dab150..0d03886 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -304,10 +304,11 @@ files for developing applications that use JavaScript engine from webkit2gtk-4.0 # Increase the DIE limit so our debuginfo packages can be size-optimized. # This previously decreased the size for x86_64 from ~5G to ~1.1G, but as of # 2022 it's more like 850 MB -> 675 MB. This requires lots of RAM on the -# builders, so only do this for x86_64 to avoid overwhelming non-x86_64 -# builders. +# builders, so only do this for x86_64 and aarch64 to avoid overwhelming +# builders with less RAM. # https://bugzilla.redhat.com/show_bug.cgi?id=1456261 %global _dwz_max_die_limit_x86_64 250000000 +%global _dwz_max_die_limit_aarch64 250000000 # Require 32 GB of RAM per vCPU for debuginfo processing. 16 GB is not enough. %global _find_debuginfo_opts %limit_build -m 32768 From 2c5dd84529070a8cfb0c6599dee587ca8fbcb6d2 Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Thu, 19 Jan 2023 17:13:46 +0100 Subject: [PATCH 058/200] Disable debuginfo dwz optimization on ppc64le and s390x On ppc64le the dwz process gets killed, and on s390x the builders lock up when running dwz. Disable the dwz optimizations on these arches until we can get a patch into /usr/bin/find-debuginfo to control dwz parallelism. https://sourceware.org/pipermail/debugedit/2023-January/000173.html --- webkitgtk.spec | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/webkitgtk.spec b/webkitgtk.spec index 0d03886..729818a 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -310,6 +310,13 @@ files for developing applications that use JavaScript engine from webkit2gtk-4.0 %global _dwz_max_die_limit_x86_64 250000000 %global _dwz_max_die_limit_aarch64 250000000 +# Disable dwz optimization on builders that have low amount of RAM, until we +# get https://sourceware.org/pipermail/debugedit/2023-January/000173.html into +# koji build roots. +%ifarch ppc64le s390x +%global _find_debuginfo_dwz_opts %{nil} +%endif + # Require 32 GB of RAM per vCPU for debuginfo processing. 16 GB is not enough. %global _find_debuginfo_opts %limit_build -m 32768 From 1b16ab2c811903e5098fac347acc94ba43e8d2fa Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Thu, 19 Jan 2023 17:17:54 +0100 Subject: [PATCH 059/200] Re-enable full debuginfo on s390x again The previous commit should be enough to work this around sufficiently for now. This reverts commit d9ba8348eccbd5d577ec378572a5cc6bf1171055. --- webkitgtk.spec | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/webkitgtk.spec b/webkitgtk.spec index 729818a..feaa5de 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -323,10 +323,7 @@ files for developing applications that use JavaScript engine from webkit2gtk-4.0 # Reduce debuginfo verbosity 32-bit builds to reduce memory consumption even more. # https://bugs.webkit.org/show_bug.cgi?id=140176 # https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/thread/I6IVNA52TXTBRQLKW45CJ5K4RA4WNGMI/ -# -# Do this for s390x too as a temporary measure. -# https://pagure.io/fedora-infrastructure/issue/11000 -%ifarch %{ix86} s390x +%ifarch %{ix86} %global optflags %(echo %{optflags} | sed 's/-g /-g1 /') %endif From 74b6630981be0accead79d7ad07c092d64271519 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Thu, 19 Jan 2023 16:52:50 -0600 Subject: [PATCH 060/200] Upgrade to 2.39.5 --- .gitignore | 1 + angle-build.patch | 12 ------ sources | 4 +- unbreak-headers.patch | 89 ------------------------------------------- webkitgtk.spec | 10 +---- 5 files changed, 5 insertions(+), 111 deletions(-) delete mode 100644 angle-build.patch delete mode 100644 unbreak-headers.patch diff --git a/.gitignore b/.gitignore index 1cd3038..d66a724 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ /webkitgtk-2.39.2.tar.xz.asc /webkitgtk-2.39.3.tar.xz.asc /webkitgtk-2.39.4.tar.xz.asc +/webkitgtk-2.39.5.tar.xz.asc diff --git a/angle-build.patch b/angle-build.patch deleted file mode 100644 index fc2e0aa..0000000 --- a/angle-build.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/Source/ThirdParty/ANGLE/include/GLSLANG/ShaderVars.h b/Source/ThirdParty/ANGLE/include/GLSLANG/ShaderVars.h -index 94cb93e01fc0..ec7bda372f30 100644 ---- a/Source/ThirdParty/ANGLE/include/GLSLANG/ShaderVars.h -+++ b/Source/ThirdParty/ANGLE/include/GLSLANG/ShaderVars.h -@@ -12,6 +12,7 @@ - - #include - #include -+#include - #include - #include - diff --git a/sources b/sources index 7b2e28c..ebeac96 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.39.4.tar.xz) = 74240995fc5942605b0d2ca87641851e3e1edd7d465c22a545dde7afc947b74b8a548472970288aee59b3bb8ff33a98e85f56aca14a545824e5dea3397efc052 -SHA512 (webkitgtk-2.39.4.tar.xz.asc) = 8cd57b3f21943b77897833c9a08b1cb2036149df3ca76562cdf92b762ff82e6cdbbdc55f488dea0ff35051c929cd28f8151586f734f41e97c6d1abb4729fce64 +SHA512 (webkitgtk-2.39.5.tar.xz) = a55b007d84ec58aaa7376c3d872be935a5c225d28361180ff3c20ba0b054870cff07fbfa2fb2056f68814412b1e144f0f9566b4f905086dd92dc82a0123d2210 +SHA512 (webkitgtk-2.39.5.tar.xz.asc) = 2a60c9ac379feba77d0839a71f8cc96824b02211e783620a5c2f74f39ae4c1c1061942c7ad4c56bb449dfbec4f6e6260e62a10165bd31d8d399d9347364d727c diff --git a/unbreak-headers.patch b/unbreak-headers.patch deleted file mode 100644 index 2739d68..0000000 --- a/unbreak-headers.patch +++ /dev/null @@ -1,89 +0,0 @@ -From 9fe47e98a7f3b542413f3793912b291599f05860 Mon Sep 17 00:00:00 2001 -From: Thomas Devoogdt -Date: Tue, 17 Jan 2023 00:55:33 -0800 -Subject: [PATCH] REGRESSION(258347@main): Fix webkit.h public header - -https://bugs.webkit.org/show_bug.cgi?id=250701 - -Reviewed by Carlos Garcia Campos. - -Since commit 654646fe6187abcf9ced6a3ace80eaf04754fd39, the webkit.h file is generated -and does only define __WEBKIT_H_INSIDE__. So replace the only remaining __WEBKIT2_H_INSIDE__ -defines to avoid any "Only can be included directly." error. - -Signed-off-by: Thomas Devoogdt - -Canonical link: https://commits.webkit.org/258974@main ---- - Source/WebKit/Scripts/glib/generate-api-header.py | 4 ++-- - Source/WebKit/UIProcess/API/gtk/WebKitEnumTypesGtk3.h.in | 2 +- - 2 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/Source/WebKit/Scripts/glib/generate-api-header.py b/Source/WebKit/Scripts/glib/generate-api-header.py -index 6eb326b8764f..6977b51914e4 100644 ---- a/Source/WebKit/Scripts/glib/generate-api-header.py -+++ b/Source/WebKit/Scripts/glib/generate-api-header.py -@@ -30,7 +30,7 @@ - "gtk4": '''#if !defined(__WEBKIT_H_INSIDE__) && !defined(BUILDING_WEBKIT) - #error \"Only can be included directly.\" - #endif''', -- "gtk": '''#if !defined(__WEBKIT2_H_INSIDE__) && !defined(BUILDING_WEBKIT) -+ "gtk": '''#if !defined(__WEBKIT_H_INSIDE__) && !defined(BUILDING_WEBKIT) - #error \"Only can be included directly.\" - #endif''', - "wpe": '''#if !defined(__WEBKIT_H_INSIDE__) && !defined(BUILDING_WEBKIT) -@@ -54,7 +54,7 @@ - "gtk4": '''#if !defined(__WEBKIT_H_INSIDE__) && !defined(__WEBKIT_WEB_EXTENSION_H_INSIDE__) && !defined(BUILDING_WEBKIT) - #error \"Only can be included directly.\" - #endif''', -- "gtk": '''#if !defined(__WEBKIT2_H_INSIDE__) && !defined(__WEBKIT_WEB_EXTENSION_H_INSIDE__) && !defined(BUILDING_WEBKIT) -+ "gtk": '''#if !defined(__WEBKIT_H_INSIDE__) && !defined(__WEBKIT_WEB_EXTENSION_H_INSIDE__) && !defined(BUILDING_WEBKIT) - #error \"Only can be included directly.\" - #endif''', - "wpe": '''#if !defined(__WEBKIT_H_INSIDE__) && !defined(__WEBKIT_WEB_EXTENSION_H_INSIDE__) && !defined(BUILDING_WEBKIT) -diff --git a/Source/WebKit/UIProcess/API/gtk/WebKitEnumTypesGtk3.h.in b/Source/WebKit/UIProcess/API/gtk/WebKitEnumTypesGtk3.h.in -index 52cda32496bb..493b8e9a1e5e 100644 ---- a/Source/WebKit/UIProcess/API/gtk/WebKitEnumTypesGtk3.h.in -+++ b/Source/WebKit/UIProcess/API/gtk/WebKitEnumTypesGtk3.h.in -@@ -18,7 +18,7 @@ - * Boston, MA 02110-1301, USA. - */ - --#if !defined(__WEBKIT2_H_INSIDE__) && !defined(BUILDING_WEBKIT) -+#if !defined(__WEBKIT_H_INSIDE__) && !defined(BUILDING_WEBKIT) - #error "Only can be included directly." - #endif - -From 8f11ad0813c37f4bd8ee43ecac733892a57e2a03 Mon Sep 17 00:00:00 2001 -From: Thomas Devoogdt -Date: Tue, 17 Jan 2023 05:45:34 -0800 -Subject: [PATCH] REGRESSION(258347@main): Fix webkit.h public header part 2 - -https://bugs.webkit.org/show_bug.cgi?id=250701 - -Reviewed by Carlos Garcia Campos. - -In commit 9fe47e98a7f3b542413f3793912b291599f05860, I've replaced all -instances of __WEBKIT2_H_INSIDE__ with __WEBKIT_H_INSIDE__ but overlooked -this one. So fix that. - -Signed-off-by: Thomas Devoogdt - -Canonical link: https://commits.webkit.org/258976@main ---- - Source/WebKit/UIProcess/API/gtk/WebKitVersion.h.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Source/WebKit/UIProcess/API/gtk/WebKitVersion.h.in b/Source/WebKit/UIProcess/API/gtk/WebKitVersion.h.in -index 0704d8016c45..f141a20aa65d 100644 ---- a/Source/WebKit/UIProcess/API/gtk/WebKitVersion.h.in -+++ b/Source/WebKit/UIProcess/API/gtk/WebKitVersion.h.in -@@ -17,7 +17,7 @@ - * Boston, MA 02110-1301, USA. - */ - --#if !defined(__WEBKIT@WEBKITGTK_API_INFIX@_H_INSIDE__) && !defined(__WEBKIT_WEB_EXTENSION_H_INSIDE__) && !defined(BUILDING_WEBKIT) -+#if !defined(__WEBKIT_H_INSIDE__) && !defined(__WEBKIT_WEB_EXTENSION_H_INSIDE__) && !defined(BUILDING_WEBKIT) - #error "Only can be included directly." - #endif - diff --git a/webkitgtk.spec b/webkitgtk.spec index feaa5de..7e8595d 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -19,7 +19,7 @@ %bcond_without docs Name: webkitgtk -Version: 2.39.4 +Version: 2.39.5 Release: %autorelease Summary: GTK web content engine library @@ -32,12 +32,6 @@ 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://bugs.webkit.org/show_bug.cgi?id=250689 -Patch0: angle-build.patch - -# https://bugs.webkit.org/show_bug.cgi?id=250701 -Patch1: unbreak-headers.patch - BuildRequires: bison BuildRequires: bubblewrap BuildRequires: cmake @@ -467,7 +461,7 @@ export NINJA_STATUS="[3/3][%f/%t %es] " %license _license_files/*WebCore* %license _license_files/*WebInspectorUI* %license _license_files/*WTF* -%{_libdir}/libwebkitgtk-6.0.so.0* +%{_libdir}/libwebkitgtk-6.0.so.1* %dir %{_libdir}/girepository-1.0 %{_libdir}/girepository-1.0/WebKit-6.0.typelib %{_libdir}/girepository-1.0/WebKitWebExtension-6.0.typelib From 251b98dde829aecd8bb4d6e5d9b2f76052f975a6 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 21 Jan 2023 06:42:47 +0000 Subject: [PATCH 061/200] Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild Signed-off-by: Fedora Release Engineering From 77f1f587bb6979442e94156565fc1f787d68b3e8 Mon Sep 17 00:00:00 2001 From: Kalev Lember Date: Fri, 27 Jan 2023 19:39:27 +0100 Subject: [PATCH 062/200] Revert "Disable debuginfo dwz optimization on ppc64le and s390x" /usr/bin/find-debuginfo is now fixed in rawhide to correctly handle -j1 so we can re-enable dwz optimizations again. This reverts commit 2c5dd84529070a8cfb0c6599dee587ca8fbcb6d2. --- webkitgtk.spec | 7 ------- 1 file changed, 7 deletions(-) diff --git a/webkitgtk.spec b/webkitgtk.spec index 7e8595d..b0cea2f 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -304,13 +304,6 @@ files for developing applications that use JavaScript engine from webkit2gtk-4.0 %global _dwz_max_die_limit_x86_64 250000000 %global _dwz_max_die_limit_aarch64 250000000 -# Disable dwz optimization on builders that have low amount of RAM, until we -# get https://sourceware.org/pipermail/debugedit/2023-January/000173.html into -# koji build roots. -%ifarch ppc64le s390x -%global _find_debuginfo_dwz_opts %{nil} -%endif - # Require 32 GB of RAM per vCPU for debuginfo processing. 16 GB is not enough. %global _find_debuginfo_opts %limit_build -m 32768 From 24785ab83f876fdff274a2b277381caf6fc858b8 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Mon, 30 Jan 2023 13:48:11 -0600 Subject: [PATCH 063/200] Upgrade to WebKitGTK 2.39.7 --- .gitignore | 2 ++ sources | 4 ++-- webkitgtk.spec | 5 ++--- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index d66a724..312696a 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,5 @@ /webkitgtk-2.39.3.tar.xz.asc /webkitgtk-2.39.4.tar.xz.asc /webkitgtk-2.39.5.tar.xz.asc +/webkitgtk-2.39.6.tar.xz.asc +/webkitgtk-2.39.7.tar.xz.asc diff --git a/sources b/sources index ebeac96..90a9051 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.39.5.tar.xz) = a55b007d84ec58aaa7376c3d872be935a5c225d28361180ff3c20ba0b054870cff07fbfa2fb2056f68814412b1e144f0f9566b4f905086dd92dc82a0123d2210 -SHA512 (webkitgtk-2.39.5.tar.xz.asc) = 2a60c9ac379feba77d0839a71f8cc96824b02211e783620a5c2f74f39ae4c1c1061942c7ad4c56bb449dfbec4f6e6260e62a10165bd31d8d399d9347364d727c +SHA512 (webkitgtk-2.39.7.tar.xz) = 2f0e6ee45c74441b9f1bfdcc66a83eae0bd628020df9b2fe39ebdc51e51d99e895dd9c6043ae7d03a6408a6ddaa5f17d146663cf82f2e3a0574dd834d6d661d8 +SHA512 (webkitgtk-2.39.7.tar.xz.asc) = 5161494054aad38d33f7906240bec950e2b839a21503463fb574006cf17acd83747e5fa3c67dc2b6d0320792b767e9c65b8152f4f4ea4013b385986792aa6d9d diff --git a/webkitgtk.spec b/webkitgtk.spec index b0cea2f..a387f46 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -19,7 +19,7 @@ %bcond_without docs Name: webkitgtk -Version: 2.39.5 +Version: 2.39.7 Release: %autorelease Summary: GTK web content engine library @@ -437,7 +437,6 @@ export NINJA_STATUS="[3/3][%f/%t %es] " # 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 @@ -454,7 +453,7 @@ export NINJA_STATUS="[3/3][%f/%t %es] " %license _license_files/*WebCore* %license _license_files/*WebInspectorUI* %license _license_files/*WTF* -%{_libdir}/libwebkitgtk-6.0.so.1* +%{_libdir}/libwebkitgtk-6.0.so.2* %dir %{_libdir}/girepository-1.0 %{_libdir}/girepository-1.0/WebKit-6.0.typelib %{_libdir}/girepository-1.0/WebKitWebExtension-6.0.typelib From 903122706136702c93a5c670362a95ea200d98b9 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Mon, 20 Feb 2023 13:52:46 -0600 Subject: [PATCH 064/200] Upgrade to 2.39.90 --- .gitignore | 1 + fix-installed-headers.patch | 62 +++++++++++++++++++++++++++++++++++++ no-debug-fission.patch | 29 +++++++++++++++++ sources | 4 +-- super-sampler.patch | 12 +++++++ webkitgtk.spec | 17 +++++++--- 6 files changed, 118 insertions(+), 7 deletions(-) create mode 100644 fix-installed-headers.patch create mode 100644 no-debug-fission.patch create mode 100644 super-sampler.patch diff --git a/.gitignore b/.gitignore index 312696a..7f267b1 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,4 @@ /webkitgtk-2.39.5.tar.xz.asc /webkitgtk-2.39.6.tar.xz.asc /webkitgtk-2.39.7.tar.xz.asc +/webkitgtk-2.39.90.tar.xz.asc diff --git a/fix-installed-headers.patch b/fix-installed-headers.patch new file mode 100644 index 0000000..1ab6bb6 --- /dev/null +++ b/fix-installed-headers.patch @@ -0,0 +1,62 @@ +From 166cdf23242165c9c84f621a4121c80432211c50 Mon Sep 17 00:00:00 2001 +From: Adrian Perez de Castro +Date: Mon, 20 Feb 2023 16:26:28 +0200 +Subject: [PATCH] [GLib] Installed API headers are unusable with the new 2022 + API https://bugs.webkit.org/show_bug.cgi?id=252562 + +Reviewed by NOBODY (OOPS!). + +* Source/WebKit/UIProcess/API/glib/WebKitJavascriptResult.h.in: Only + include JavaScriptCore/JSBase.h with the old API, change a !USE(GTK4) + guard to !ENABLE(2022_GLIB_API) as it is more correct. +* Source/WebKit/UIProcess/API/glib/WebKitWebView.h.in: Ditto. +--- + Source/WebKit/UIProcess/API/glib/WebKitJavascriptResult.h.in | 4 ++-- + Source/WebKit/UIProcess/API/glib/WebKitWebView.h.in | 4 +++- + 2 files changed, 5 insertions(+), 3 deletions(-) + +diff --git a/Source/WebKit/UIProcess/API/glib/WebKitJavascriptResult.h.in b/Source/WebKit/UIProcess/API/glib/WebKitJavascriptResult.h.in +index b7eece231000..78ba2120b225 100644 +--- a/Source/WebKit/UIProcess/API/glib/WebKitJavascriptResult.h.in ++++ b/Source/WebKit/UIProcess/API/glib/WebKitJavascriptResult.h.in +@@ -26,7 +26,7 @@ + #include + #include <@API_INCLUDE_PREFIX@/WebKitDefines.h> + +-#if PLATFORM(GTK) ++#if PLATFORM(GTK) && !ENABLE(2022_GLIB_API) + #include + #endif + +@@ -46,7 +46,7 @@ webkit_javascript_result_ref (WebKitJavascriptResult *js_result); + WEBKIT_API void + webkit_javascript_result_unref (WebKitJavascriptResult *js_result); + +-#if PLATFORM(GTK) && !USE(GTK4) ++#if PLATFORM(GTK) && !ENABLE(2022_GLIB_API) + WEBKIT_DEPRECATED JSGlobalContextRef + webkit_javascript_result_get_global_context (WebKitJavascriptResult *js_result); + +diff --git a/Source/WebKit/UIProcess/API/glib/WebKitWebView.h.in b/Source/WebKit/UIProcess/API/glib/WebKitWebView.h.in +index 45949e44e4a3..293aa3841695 100644 +--- a/Source/WebKit/UIProcess/API/glib/WebKitWebView.h.in ++++ b/Source/WebKit/UIProcess/API/glib/WebKitWebView.h.in +@@ -59,7 +59,9 @@ + #endif + + #if PLATFORM(GTK) ++#if !ENABLE(2022_GLIB_API) + #include ++#endif + #include + #include + #include +@@ -628,7 +630,7 @@ webkit_web_view_execute_editing_command_with_argument(WebKitWebView + WEBKIT_API WebKitFindController * + webkit_web_view_get_find_controller (WebKitWebView *web_view); + +-#if PLATFORM(GTK) && !USE(GTK4) ++#if PLATFORM(GTK) && !ENABLE(2022_GLIB_API) + WEBKIT_DEPRECATED JSGlobalContextRef + webkit_web_view_get_javascript_global_context (WebKitWebView *web_view); + #endif diff --git a/no-debug-fission.patch b/no-debug-fission.patch new file mode 100644 index 0000000..b50a6b7 --- /dev/null +++ b/no-debug-fission.patch @@ -0,0 +1,29 @@ +diff --git a/Source/cmake/OptionsCommon.cmake b/Source/cmake/OptionsCommon.cmake +index 94b9740c8a82..43b961c996c3 100644 +--- a/Source/cmake/OptionsCommon.cmake ++++ b/Source/cmake/OptionsCommon.cmake +@@ -154,19 +154,11 @@ if (USE_THIN_ARCHIVES) + endif () + + set(ENABLE_DEBUG_FISSION_DEFAULT OFF) +-check_cxx_compiler_flag(-gsplit-dwarf CXX_COMPILER_SUPPORTS_GSPLIT_DWARF) +-if (CXX_COMPILER_SUPPORTS_GSPLIT_DWARF AND LD_SUPPORTS_SPLIT_DEBUG) +- set(ENABLE_DEBUG_FISSION_DEFAULT ON) +-endif () +- +-if (ENABLE_DEBUG_FISSION_DEFAULT AND SCCACHE_FOUND AND COMPILER_IS_CLANG AND NOT CMAKE_BUILD_TYPE STREQUAL "Debug" AND NOT CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo") +- # https://github.com/mozilla/sccache/issues/1593 +- message("The SCCache clang backend doesn't support split-dwarf for non-debug builds yet. Keeping default value of DEBUG_FISSION to OFF.") +- set(ENABLE_DEBUG_FISSION_DEFAULT OFF) +-endif () +- +-if (CMAKE_GENERATOR MATCHES "Visual Studio") +- set(ENABLE_DEBUG_FISSION_DEFAULT OFF) ++if ((CMAKE_BUILD_TYPE STREQUAL "Debug" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo") AND NOT CMAKE_GENERATOR MATCHES "Visual Studio") ++ check_cxx_compiler_flag(-gsplit-dwarf CXX_COMPILER_SUPPORTS_GSPLIT_DWARF) ++ if (CXX_COMPILER_SUPPORTS_GSPLIT_DWARF AND LD_SUPPORTS_SPLIT_DEBUG) ++ set(ENABLE_DEBUG_FISSION_DEFAULT ON) ++ endif () + endif () + + option(DEBUG_FISSION "Use Debug Fission support" ${ENABLE_DEBUG_FISSION_DEFAULT}) diff --git a/sources b/sources index 90a9051..e8339e1 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.39.7.tar.xz) = 2f0e6ee45c74441b9f1bfdcc66a83eae0bd628020df9b2fe39ebdc51e51d99e895dd9c6043ae7d03a6408a6ddaa5f17d146663cf82f2e3a0574dd834d6d661d8 -SHA512 (webkitgtk-2.39.7.tar.xz.asc) = 5161494054aad38d33f7906240bec950e2b839a21503463fb574006cf17acd83747e5fa3c67dc2b6d0320792b767e9c65b8152f4f4ea4013b385986792aa6d9d +SHA512 (webkitgtk-2.39.90.tar.xz) = 1a17a60443072253c9b2a4a04356213ea9a3f36976ebad048048b1bf6a5dd15a9fb161df1cabbf4258b001a5ab326161887cc8e6f1863a3e32834a35f607e4d4 +SHA512 (webkitgtk-2.39.90.tar.xz.asc) = 772e584f3caa3141d3cdc0abdd747c2c08990c244740f138fe9f64f3aedb01a08f39fea59e27906e27063aaebf41432a25a6326f4841af7b3075c4da70b16f09 diff --git a/super-sampler.patch b/super-sampler.patch new file mode 100644 index 0000000..3071c0f --- /dev/null +++ b/super-sampler.patch @@ -0,0 +1,12 @@ +diff --git a/Source/JavaScriptCore/llint/LowLevelInterpreter.cpp b/Source/JavaScriptCore/llint/LowLevelInterpreter.cpp +index 97e22b7ec4c1..64397ee50cf7 100644 +--- a/Source/JavaScriptCore/llint/LowLevelInterpreter.cpp ++++ b/Source/JavaScriptCore/llint/LowLevelInterpreter.cpp +@@ -39,6 +39,7 @@ + #include "LLIntData.h" + #include "LLIntSlowPaths.h" + #include "JSCInlines.h" ++#include "SuperSampler.h" + #include + #include + diff --git a/webkitgtk.spec b/webkitgtk.spec index a387f46..5a16c1b 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -19,7 +19,7 @@ %bcond_without docs Name: webkitgtk -Version: 2.39.7 +Version: 2.39.90 Release: %autorelease Summary: GTK web content engine library @@ -32,6 +32,15 @@ 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/10362 +Patch0: fix-installed-headers.patch + +# https://bugs.webkit.org/show_bug.cgi?id=252617 +Patch1: super-sampler.patch + +# https://bugs.webkit.org/show_bug.cgi?id=252679 +Patch2: no-debug-fission.patch + BuildRequires: bison BuildRequires: bubblewrap BuildRequires: cmake @@ -453,7 +462,7 @@ export NINJA_STATUS="[3/3][%f/%t %es] " %license _license_files/*WebCore* %license _license_files/*WebInspectorUI* %license _license_files/*WTF* -%{_libdir}/libwebkitgtk-6.0.so.2* +%{_libdir}/libwebkitgtk-6.0.so.3* %dir %{_libdir}/girepository-1.0 %{_libdir}/girepository-1.0/WebKit-6.0.typelib %{_libdir}/girepository-1.0/WebKitWebExtension-6.0.typelib @@ -494,7 +503,6 @@ export NINJA_STATUS="[3/3][%f/%t %es] " %files -n webkitgtk6.0-devel %{_libexecdir}/webkitgtk-6.0/MiniBrowser %{_includedir}/webkitgtk-6.0/ -%exclude %{_includedir}/webkitgtk-6.0/JavaScriptCore %exclude %{_includedir}/webkitgtk-6.0/jsc %{_libdir}/libwebkitgtk-6.0.so %{_libdir}/pkgconfig/webkitgtk-6.0.pc @@ -529,7 +537,7 @@ export NINJA_STATUS="[3/3][%f/%t %es] " %files -n javascriptcoregtk6.0 %license _license_files/*JavaScriptCore* -%{_libdir}/libjavascriptcoregtk-6.0.so.0* +%{_libdir}/libjavascriptcoregtk-6.0.so.1* %dir %{_libdir}/girepository-1.0 %{_libdir}/girepository-1.0/JavaScriptCore-6.0.typelib @@ -548,7 +556,6 @@ export NINJA_STATUS="[3/3][%f/%t %es] " %files -n javascriptcoregtk6.0-devel %{_libexecdir}/webkitgtk-6.0/jsc %dir %{_includedir}/webkitgtk-6.0 -%{_includedir}/webkitgtk-6.0/JavaScriptCore/ %{_includedir}/webkitgtk-6.0/jsc/ %{_libdir}/libjavascriptcoregtk-6.0.so %{_libdir}/pkgconfig/javascriptcoregtk-6.0.pc From fac6852e5695051ade276ed08835d7baa487bf32 Mon Sep 17 00:00:00 2001 From: Eric Curtin Date: Thu, 2 Mar 2023 17:26:48 +0000 Subject: [PATCH 065/200] Turn on mbranch-protection=pac-ret only, JIT is broken with BTI enabled WebKitGTK JIT crashes on aarch64 hardware with new ARMv8.5 BTI extension, most commonly seen on M2 Macs running Fedora Asahi. This breaks large parts of GNOME using WebKitGTK, notably GNOME Online Accounts; GNOME Help; and other similar things. This removes Asahi specific changes as this could occur on any aarch64 hardware with this feature and makes WebKitGTK pretty much unuseable without this change. We also reduced generated debuginfo for aarch64 here as the memory requirements are pretty huge for -g, making aarch64 rpms unbuildable in copr without this change. Reference: https://bugs.webkit.org/show_bug.cgi?id=245697 Related: rhbz#213000 --- webkitgtk.spec | 44 ++++++++------------------------------------ 1 file changed, 8 insertions(+), 36 deletions(-) diff --git a/webkitgtk.spec b/webkitgtk.spec index 5a16c1b..75dd61e 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -323,6 +323,14 @@ files for developing applications that use JavaScript engine from webkit2gtk-4.0 %global optflags %(echo %{optflags} | sed 's/-g /-g1 /') %endif +# 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 \ @@ -339,18 +347,6 @@ files for developing applications that use JavaScript engine from webkit2gtk-4.0 %ifarch aarch64 -DUSE_64KB_PAGE_BLOCK=ON \ %endif -%endif -%if "%{vendor}" == "Fedora Copr - group @asahi" -%dnl JIT is broken with BTI on Apple ARM systems at the moment -%dnl Cf. https://bugzilla.redhat.com/show_bug.cgi?id=2130009 -%dnl Cf. https://bugs.webkit.org/show_bug.cgi?id=245697 -%dnl Disable until this is fixed upstream. -%dnl Yes, this means performance is going to suck... :'( -%ifarch aarch64 - -DENABLE_JIT=OFF \ - -DENABLE_C_LOOP=ON \ - -DENABLE_SAMPLING_PROFILER=OFF \ -%endif %endif %{nil} @@ -370,18 +366,6 @@ files for developing applications that use JavaScript engine from webkit2gtk-4.0 %ifarch aarch64 -DUSE_64KB_PAGE_BLOCK=ON \ %endif -%endif -%if "%{vendor}" == "Fedora Copr - group @asahi" -%dnl JIT is broken with BTI on Apple ARM systems at the moment -%dnl Cf. https://bugzilla.redhat.com/show_bug.cgi?id=2130009 -%dnl Cf. https://bugs.webkit.org/show_bug.cgi?id=245697 -%dnl Disable until this is fixed upstream. -%dnl Yes, this means performance is going to suck... :'( -%ifarch aarch64 - -DENABLE_JIT=OFF \ - -DENABLE_C_LOOP=ON \ - -DENABLE_SAMPLING_PROFILER=OFF \ -%endif %endif %{nil} @@ -402,18 +386,6 @@ files for developing applications that use JavaScript engine from webkit2gtk-4.0 %ifarch aarch64 -DUSE_64KB_PAGE_BLOCK=ON \ %endif -%endif -%if "%{vendor}" == "Fedora Copr - group @asahi" -%dnl JIT is broken with BTI on Apple ARM systems at the moment -%dnl Cf. https://bugzilla.redhat.com/show_bug.cgi?id=2130009 -%dnl Cf. https://bugs.webkit.org/show_bug.cgi?id=245697 -%dnl Disable until this is fixed upstream. -%dnl Yes, this means performance is going to suck... :'( -%ifarch aarch64 - -DENABLE_JIT=OFF \ - -DENABLE_C_LOOP=ON \ - -DENABLE_SAMPLING_PROFILER=OFF \ -%endif %endif %{nil} From 1c16daccce69d47df5381968e9c7be8ed72e4f90 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Wed, 8 Mar 2023 09:01:51 -0600 Subject: [PATCH 066/200] Upgrade to 2.39.91 --- .gitignore | 1 + fix-installed-headers.patch | 148 ++++++++++++++++++++++++------------ no-debug-fission.patch | 29 ------- sources | 4 +- super-sampler.patch | 12 --- webkitgtk.spec | 21 ++--- 6 files changed, 109 insertions(+), 106 deletions(-) delete mode 100644 no-debug-fission.patch delete mode 100644 super-sampler.patch diff --git a/.gitignore b/.gitignore index 7f267b1..f55269a 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,4 @@ /webkitgtk-2.39.6.tar.xz.asc /webkitgtk-2.39.7.tar.xz.asc /webkitgtk-2.39.90.tar.xz.asc +/webkitgtk-2.39.91.tar.xz.asc diff --git a/fix-installed-headers.patch b/fix-installed-headers.patch index 1ab6bb6..f57ceda 100644 --- a/fix-installed-headers.patch +++ b/fix-installed-headers.patch @@ -1,62 +1,110 @@ -From 166cdf23242165c9c84f621a4121c80432211c50 Mon Sep 17 00:00:00 2001 +From 53a8890833684fe813efd7b7a2b7417dbfa7b826 Mon Sep 17 00:00:00 2001 From: Adrian Perez de Castro -Date: Mon, 20 Feb 2023 16:26:28 +0200 -Subject: [PATCH] [GLib] Installed API headers are unusable with the new 2022 - API https://bugs.webkit.org/show_bug.cgi?id=252562 +Date: Wed, 8 Mar 2023 04:27:56 -0800 +Subject: [PATCH] REGRESSION(261320@main): [GLib] Clean builds fail with + ENABLE_2022_GLIB_API https://bugs.webkit.org/show_bug.cgi?id=253563 -Reviewed by NOBODY (OOPS!). +Unreviewed build fix. -* Source/WebKit/UIProcess/API/glib/WebKitJavascriptResult.h.in: Only - include JavaScriptCore/JSBase.h with the old API, change a !USE(GTK4) - guard to !ENABLE(2022_GLIB_API) as it is more correct. -* Source/WebKit/UIProcess/API/glib/WebKitWebView.h.in: Ditto. +* Source/WebKit/UIProcess/API/glib/WebKitWebView.h.in: Guard the + inclusion of WebKitJavascriptResult.h with !ENABLE(2022_GLIB_API). + +Canonical link: https://commits.webkit.org/261367@main --- - Source/WebKit/UIProcess/API/glib/WebKitJavascriptResult.h.in | 4 ++-- - Source/WebKit/UIProcess/API/glib/WebKitWebView.h.in | 4 +++- - 2 files changed, 5 insertions(+), 3 deletions(-) + Source/WebKit/UIProcess/API/glib/WebKitWebView.h.in | 2 ++ + 1 file changed, 2 insertions(+) -diff --git a/Source/WebKit/UIProcess/API/glib/WebKitJavascriptResult.h.in b/Source/WebKit/UIProcess/API/glib/WebKitJavascriptResult.h.in -index b7eece231000..78ba2120b225 100644 ---- a/Source/WebKit/UIProcess/API/glib/WebKitJavascriptResult.h.in -+++ b/Source/WebKit/UIProcess/API/glib/WebKitJavascriptResult.h.in -@@ -26,7 +26,7 @@ - #include - #include <@API_INCLUDE_PREFIX@/WebKitDefines.h> - --#if PLATFORM(GTK) -+#if PLATFORM(GTK) && !ENABLE(2022_GLIB_API) - #include - #endif - -@@ -46,7 +46,7 @@ webkit_javascript_result_ref (WebKitJavascriptResult *js_result); - WEBKIT_API void - webkit_javascript_result_unref (WebKitJavascriptResult *js_result); - --#if PLATFORM(GTK) && !USE(GTK4) -+#if PLATFORM(GTK) && !ENABLE(2022_GLIB_API) - WEBKIT_DEPRECATED JSGlobalContextRef - webkit_javascript_result_get_global_context (WebKitJavascriptResult *js_result); - diff --git a/Source/WebKit/UIProcess/API/glib/WebKitWebView.h.in b/Source/WebKit/UIProcess/API/glib/WebKitWebView.h.in -index 45949e44e4a3..293aa3841695 100644 +index cc60ef336afc..6f1afac40e2b 100644 --- a/Source/WebKit/UIProcess/API/glib/WebKitWebView.h.in +++ b/Source/WebKit/UIProcess/API/glib/WebKitWebView.h.in -@@ -59,7 +59,9 @@ - #endif - - #if PLATFORM(GTK) +@@ -36,7 +36,9 @@ + #include <@API_INCLUDE_PREFIX@/WebKitFormSubmissionRequest.h> + #include <@API_INCLUDE_PREFIX@/WebKitHitTestResult.h> + #include <@API_INCLUDE_PREFIX@/WebKitInputMethodContext.h> +#if !ENABLE(2022_GLIB_API) - #include + #include <@API_INCLUDE_PREFIX@/WebKitJavascriptResult.h> +#endif - #include - #include - #include -@@ -628,7 +630,7 @@ webkit_web_view_execute_editing_command_with_argument(WebKitWebView - WEBKIT_API WebKitFindController * - webkit_web_view_get_find_controller (WebKitWebView *web_view); + #include <@API_INCLUDE_PREFIX@/WebKitNavigationAction.h> + #include <@API_INCLUDE_PREFIX@/WebKitNotification.h> + #include <@API_INCLUDE_PREFIX@/WebKitOptionMenu.h> + +From 10c9256883bf38b9fbcfbc91577783d4df90d1bd Mon Sep 17 00:00:00 2001 +From: Adrian Perez de Castro +Date: Wed, 8 Mar 2023 05:21:28 -0800 +Subject: [PATCH] REGRESSION(261320@main): [GLib] Clean builds fail with + ENABLE_2022_GLIB_API https://bugs.webkit.org/show_bug.cgi?id=253563 + +Unreviewed build fix. + +* Source/WebKit/UIProcess/API/glib/WebKitAutocleanups.h.in: Remove the + autocleanup for WebKitJavascriptResult when building with the new API. +* Source/WebKit/UIProcess/API/glib/WebKitUserContentManager.cpp: + Conditionally include WebKitJavascriptResultPrivate.h. +* Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp: Ditto. + +Canonical link: https://commits.webkit.org/261368@main +--- + Source/WebKit/UIProcess/API/glib/WebKitAutocleanups.h.in | 2 ++ + .../WebKit/UIProcess/API/glib/WebKitUserContentManager.cpp | 5 ++++- + Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp | 3 ++- + 3 files changed, 8 insertions(+), 2 deletions(-) + +diff --git a/Source/WebKit/UIProcess/API/glib/WebKitAutocleanups.h.in b/Source/WebKit/UIProcess/API/glib/WebKitAutocleanups.h.in +index b56fb3f302cc..f68ed748046f 100644 +--- a/Source/WebKit/UIProcess/API/glib/WebKitAutocleanups.h.in ++++ b/Source/WebKit/UIProcess/API/glib/WebKitAutocleanups.h.in +@@ -87,7 +87,9 @@ G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitApplicationInfo, webkit_application_info_un + G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitCredential, webkit_credential_free) + G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitITPFirstParty, webkit_itp_first_party_unref) + G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitITPThirdParty, webkit_itp_third_party_unref) ++#if !ENABLE(2022_GLIB_API) + G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitJavascriptResult, webkit_javascript_result_unref) ++#endif + G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitMemoryPressureSettings, webkit_memory_pressure_settings_free) + G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitNavigationAction, webkit_navigation_action_free) + G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitNetworkProxySettings, webkit_network_proxy_settings_free) +diff --git a/Source/WebKit/UIProcess/API/glib/WebKitUserContentManager.cpp b/Source/WebKit/UIProcess/API/glib/WebKitUserContentManager.cpp +index 39a57d194c0d..af2d963bb3b3 100644 +--- a/Source/WebKit/UIProcess/API/glib/WebKitUserContentManager.cpp ++++ b/Source/WebKit/UIProcess/API/glib/WebKitUserContentManager.cpp +@@ -23,7 +23,6 @@ + #include "APISerializedScriptValue.h" + #include "InjectUserScriptImmediately.h" + #include "WebKitInitialize.h" +-#include "WebKitJavascriptResultPrivate.h" + #include "WebKitUserContentManagerPrivate.h" + #include "WebKitUserContentPrivate.h" + #include "WebKitWebContextPrivate.h" +@@ -32,6 +31,10 @@ + #include + #include --#if PLATFORM(GTK) && !USE(GTK4) -+#if PLATFORM(GTK) && !ENABLE(2022_GLIB_API) - WEBKIT_DEPRECATED JSGlobalContextRef - webkit_web_view_get_javascript_global_context (WebKitWebView *web_view); ++#if !ENABLE(2022_GLIB_API) ++#include "WebKitJavascriptResultPrivate.h" ++#endif ++ + #if PLATFORM(WPE) + #include "WPEView.h" #endif +diff --git a/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp b/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp +index 1b3b6273bd14..837aa061fcab 100644 +--- a/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp ++++ b/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp +@@ -46,7 +46,6 @@ + #include "WebKitHitTestResultPrivate.h" + #include "WebKitIconLoadingClient.h" + #include "WebKitInputMethodContextPrivate.h" +-#include "WebKitJavascriptResultPrivate.h" + #include "WebKitNavigationClient.h" + #include "WebKitNotificationPrivate.h" + #include "WebKitPermissionStateQueryPrivate.h" +@@ -106,6 +105,8 @@ + + #if ENABLE(2022_GLIB_API) + #include "WebKitNetworkSessionPrivate.h" ++#else ++#include "WebKitJavascriptResultPrivate.h" + #endif + + using namespace WebKit; diff --git a/no-debug-fission.patch b/no-debug-fission.patch deleted file mode 100644 index b50a6b7..0000000 --- a/no-debug-fission.patch +++ /dev/null @@ -1,29 +0,0 @@ -diff --git a/Source/cmake/OptionsCommon.cmake b/Source/cmake/OptionsCommon.cmake -index 94b9740c8a82..43b961c996c3 100644 ---- a/Source/cmake/OptionsCommon.cmake -+++ b/Source/cmake/OptionsCommon.cmake -@@ -154,19 +154,11 @@ if (USE_THIN_ARCHIVES) - endif () - - set(ENABLE_DEBUG_FISSION_DEFAULT OFF) --check_cxx_compiler_flag(-gsplit-dwarf CXX_COMPILER_SUPPORTS_GSPLIT_DWARF) --if (CXX_COMPILER_SUPPORTS_GSPLIT_DWARF AND LD_SUPPORTS_SPLIT_DEBUG) -- set(ENABLE_DEBUG_FISSION_DEFAULT ON) --endif () -- --if (ENABLE_DEBUG_FISSION_DEFAULT AND SCCACHE_FOUND AND COMPILER_IS_CLANG AND NOT CMAKE_BUILD_TYPE STREQUAL "Debug" AND NOT CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo") -- # https://github.com/mozilla/sccache/issues/1593 -- message("The SCCache clang backend doesn't support split-dwarf for non-debug builds yet. Keeping default value of DEBUG_FISSION to OFF.") -- set(ENABLE_DEBUG_FISSION_DEFAULT OFF) --endif () -- --if (CMAKE_GENERATOR MATCHES "Visual Studio") -- set(ENABLE_DEBUG_FISSION_DEFAULT OFF) -+if ((CMAKE_BUILD_TYPE STREQUAL "Debug" OR CMAKE_BUILD_TYPE STREQUAL "RelWithDebInfo") AND NOT CMAKE_GENERATOR MATCHES "Visual Studio") -+ check_cxx_compiler_flag(-gsplit-dwarf CXX_COMPILER_SUPPORTS_GSPLIT_DWARF) -+ if (CXX_COMPILER_SUPPORTS_GSPLIT_DWARF AND LD_SUPPORTS_SPLIT_DEBUG) -+ set(ENABLE_DEBUG_FISSION_DEFAULT ON) -+ endif () - endif () - - option(DEBUG_FISSION "Use Debug Fission support" ${ENABLE_DEBUG_FISSION_DEFAULT}) diff --git a/sources b/sources index e8339e1..7c1bc98 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.39.90.tar.xz) = 1a17a60443072253c9b2a4a04356213ea9a3f36976ebad048048b1bf6a5dd15a9fb161df1cabbf4258b001a5ab326161887cc8e6f1863a3e32834a35f607e4d4 -SHA512 (webkitgtk-2.39.90.tar.xz.asc) = 772e584f3caa3141d3cdc0abdd747c2c08990c244740f138fe9f64f3aedb01a08f39fea59e27906e27063aaebf41432a25a6326f4841af7b3075c4da70b16f09 +SHA512 (webkitgtk-2.39.91.tar.xz) = e31ebdef30c700139e78e1aef77298f3bda8f2b90c30987ed578beba939a153b540cff081c28a235963e20bb5fa38100c87e4e8daa7c707c921efc8a3980aba2 +SHA512 (webkitgtk-2.39.91.tar.xz.asc) = 6d682c802684b2e38c7668c1d926ba1219991ec90f6d4aa7e5e8405a52340827ee1349583455ad35d279f140db23131809bbca18e2a5bb432940872bc14050ac diff --git a/super-sampler.patch b/super-sampler.patch deleted file mode 100644 index 3071c0f..0000000 --- a/super-sampler.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/Source/JavaScriptCore/llint/LowLevelInterpreter.cpp b/Source/JavaScriptCore/llint/LowLevelInterpreter.cpp -index 97e22b7ec4c1..64397ee50cf7 100644 ---- a/Source/JavaScriptCore/llint/LowLevelInterpreter.cpp -+++ b/Source/JavaScriptCore/llint/LowLevelInterpreter.cpp -@@ -39,6 +39,7 @@ - #include "LLIntData.h" - #include "LLIntSlowPaths.h" - #include "JSCInlines.h" -+#include "SuperSampler.h" - #include - #include - diff --git a/webkitgtk.spec b/webkitgtk.spec index 75dd61e..32d0b24 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -19,7 +19,7 @@ %bcond_without docs Name: webkitgtk -Version: 2.39.90 +Version: 2.39.91 Release: %autorelease Summary: GTK web content engine library @@ -32,15 +32,10 @@ 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/10362 +# https://github.com/WebKit/WebKit/pull/11221 +# https://github.com/WebKit/WebKit/pull/11222 Patch0: fix-installed-headers.patch -# https://bugs.webkit.org/show_bug.cgi?id=252617 -Patch1: super-sampler.patch - -# https://bugs.webkit.org/show_bug.cgi?id=252679 -Patch2: no-debug-fission.patch - BuildRequires: bison BuildRequires: bubblewrap BuildRequires: cmake @@ -434,10 +429,10 @@ export NINJA_STATUS="[3/3][%f/%t %es] " %license _license_files/*WebCore* %license _license_files/*WebInspectorUI* %license _license_files/*WTF* -%{_libdir}/libwebkitgtk-6.0.so.3* +%{_libdir}/libwebkitgtk-6.0.so.4* %dir %{_libdir}/girepository-1.0 %{_libdir}/girepository-1.0/WebKit-6.0.typelib -%{_libdir}/girepository-1.0/WebKitWebExtension-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 @@ -478,10 +473,10 @@ export NINJA_STATUS="[3/3][%f/%t %es] " %exclude %{_includedir}/webkitgtk-6.0/jsc %{_libdir}/libwebkitgtk-6.0.so %{_libdir}/pkgconfig/webkitgtk-6.0.pc -%{_libdir}/pkgconfig/webkitgtk-web-extension-6.0.pc +%{_libdir}/pkgconfig/webkitgtk-web-process-extension-6.0.pc %dir %{_datadir}/gir-1.0 %{_datadir}/gir-1.0/WebKit-6.0.gir -%{_datadir}/gir-1.0/WebKitWebExtension-6.0.gir +%{_datadir}/gir-1.0/WebKitWebProcessExtension-6.0.gir %files -n webkit2gtk4.1-devel %{_libexecdir}/webkit2gtk-4.1/MiniBrowser @@ -560,7 +555,7 @@ export NINJA_STATUS="[3/3][%f/%t %es] " %dir %{_datadir}/gtk-doc/html %{_datadir}/gtk-doc/html/javascriptcoregtk-6.0/ %{_datadir}/gtk-doc/html/webkitgtk-6.0/ -%{_datadir}/gtk-doc/html/webkitgtk-web-extension-6.0/ +%{_datadir}/gtk-doc/html/webkitgtk-web-process-extension-6.0/ %files -n webkit2gtk4.1-doc %dir %{_datadir}/gtk-doc From 5d2c1672bc759e3da2c7d1fcf44107c8d5236903 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Fri, 17 Mar 2023 09:41:22 -0500 Subject: [PATCH 067/200] Upgrade to 2.40.0 --- .gitignore | 1 + fix-installed-headers.patch | 110 ------------------------------------ sources | 4 +- webkitgtk.spec | 6 +- 4 files changed, 4 insertions(+), 117 deletions(-) delete mode 100644 fix-installed-headers.patch diff --git a/.gitignore b/.gitignore index f55269a..e2096ca 100644 --- a/.gitignore +++ b/.gitignore @@ -14,3 +14,4 @@ /webkitgtk-2.39.7.tar.xz.asc /webkitgtk-2.39.90.tar.xz.asc /webkitgtk-2.39.91.tar.xz.asc +/webkitgtk-2.40.0.tar.xz.asc diff --git a/fix-installed-headers.patch b/fix-installed-headers.patch deleted file mode 100644 index f57ceda..0000000 --- a/fix-installed-headers.patch +++ /dev/null @@ -1,110 +0,0 @@ -From 53a8890833684fe813efd7b7a2b7417dbfa7b826 Mon Sep 17 00:00:00 2001 -From: Adrian Perez de Castro -Date: Wed, 8 Mar 2023 04:27:56 -0800 -Subject: [PATCH] REGRESSION(261320@main): [GLib] Clean builds fail with - ENABLE_2022_GLIB_API https://bugs.webkit.org/show_bug.cgi?id=253563 - -Unreviewed build fix. - -* Source/WebKit/UIProcess/API/glib/WebKitWebView.h.in: Guard the - inclusion of WebKitJavascriptResult.h with !ENABLE(2022_GLIB_API). - -Canonical link: https://commits.webkit.org/261367@main ---- - Source/WebKit/UIProcess/API/glib/WebKitWebView.h.in | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/Source/WebKit/UIProcess/API/glib/WebKitWebView.h.in b/Source/WebKit/UIProcess/API/glib/WebKitWebView.h.in -index cc60ef336afc..6f1afac40e2b 100644 ---- a/Source/WebKit/UIProcess/API/glib/WebKitWebView.h.in -+++ b/Source/WebKit/UIProcess/API/glib/WebKitWebView.h.in -@@ -36,7 +36,9 @@ - #include <@API_INCLUDE_PREFIX@/WebKitFormSubmissionRequest.h> - #include <@API_INCLUDE_PREFIX@/WebKitHitTestResult.h> - #include <@API_INCLUDE_PREFIX@/WebKitInputMethodContext.h> -+#if !ENABLE(2022_GLIB_API) - #include <@API_INCLUDE_PREFIX@/WebKitJavascriptResult.h> -+#endif - #include <@API_INCLUDE_PREFIX@/WebKitNavigationAction.h> - #include <@API_INCLUDE_PREFIX@/WebKitNotification.h> - #include <@API_INCLUDE_PREFIX@/WebKitOptionMenu.h> - -From 10c9256883bf38b9fbcfbc91577783d4df90d1bd Mon Sep 17 00:00:00 2001 -From: Adrian Perez de Castro -Date: Wed, 8 Mar 2023 05:21:28 -0800 -Subject: [PATCH] REGRESSION(261320@main): [GLib] Clean builds fail with - ENABLE_2022_GLIB_API https://bugs.webkit.org/show_bug.cgi?id=253563 - -Unreviewed build fix. - -* Source/WebKit/UIProcess/API/glib/WebKitAutocleanups.h.in: Remove the - autocleanup for WebKitJavascriptResult when building with the new API. -* Source/WebKit/UIProcess/API/glib/WebKitUserContentManager.cpp: - Conditionally include WebKitJavascriptResultPrivate.h. -* Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp: Ditto. - -Canonical link: https://commits.webkit.org/261368@main ---- - Source/WebKit/UIProcess/API/glib/WebKitAutocleanups.h.in | 2 ++ - .../WebKit/UIProcess/API/glib/WebKitUserContentManager.cpp | 5 ++++- - Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp | 3 ++- - 3 files changed, 8 insertions(+), 2 deletions(-) - -diff --git a/Source/WebKit/UIProcess/API/glib/WebKitAutocleanups.h.in b/Source/WebKit/UIProcess/API/glib/WebKitAutocleanups.h.in -index b56fb3f302cc..f68ed748046f 100644 ---- a/Source/WebKit/UIProcess/API/glib/WebKitAutocleanups.h.in -+++ b/Source/WebKit/UIProcess/API/glib/WebKitAutocleanups.h.in -@@ -87,7 +87,9 @@ G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitApplicationInfo, webkit_application_info_un - G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitCredential, webkit_credential_free) - G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitITPFirstParty, webkit_itp_first_party_unref) - G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitITPThirdParty, webkit_itp_third_party_unref) -+#if !ENABLE(2022_GLIB_API) - G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitJavascriptResult, webkit_javascript_result_unref) -+#endif - G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitMemoryPressureSettings, webkit_memory_pressure_settings_free) - G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitNavigationAction, webkit_navigation_action_free) - G_DEFINE_AUTOPTR_CLEANUP_FUNC (WebKitNetworkProxySettings, webkit_network_proxy_settings_free) -diff --git a/Source/WebKit/UIProcess/API/glib/WebKitUserContentManager.cpp b/Source/WebKit/UIProcess/API/glib/WebKitUserContentManager.cpp -index 39a57d194c0d..af2d963bb3b3 100644 ---- a/Source/WebKit/UIProcess/API/glib/WebKitUserContentManager.cpp -+++ b/Source/WebKit/UIProcess/API/glib/WebKitUserContentManager.cpp -@@ -23,7 +23,6 @@ - #include "APISerializedScriptValue.h" - #include "InjectUserScriptImmediately.h" - #include "WebKitInitialize.h" --#include "WebKitJavascriptResultPrivate.h" - #include "WebKitUserContentManagerPrivate.h" - #include "WebKitUserContentPrivate.h" - #include "WebKitWebContextPrivate.h" -@@ -32,6 +31,10 @@ - #include - #include - -+#if !ENABLE(2022_GLIB_API) -+#include "WebKitJavascriptResultPrivate.h" -+#endif -+ - #if PLATFORM(WPE) - #include "WPEView.h" - #endif -diff --git a/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp b/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp -index 1b3b6273bd14..837aa061fcab 100644 ---- a/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp -+++ b/Source/WebKit/UIProcess/API/glib/WebKitWebView.cpp -@@ -46,7 +46,6 @@ - #include "WebKitHitTestResultPrivate.h" - #include "WebKitIconLoadingClient.h" - #include "WebKitInputMethodContextPrivate.h" --#include "WebKitJavascriptResultPrivate.h" - #include "WebKitNavigationClient.h" - #include "WebKitNotificationPrivate.h" - #include "WebKitPermissionStateQueryPrivate.h" -@@ -106,6 +105,8 @@ - - #if ENABLE(2022_GLIB_API) - #include "WebKitNetworkSessionPrivate.h" -+#else -+#include "WebKitJavascriptResultPrivate.h" - #endif - - using namespace WebKit; diff --git a/sources b/sources index 7c1bc98..5483fdc 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.39.91.tar.xz) = e31ebdef30c700139e78e1aef77298f3bda8f2b90c30987ed578beba939a153b540cff081c28a235963e20bb5fa38100c87e4e8daa7c707c921efc8a3980aba2 -SHA512 (webkitgtk-2.39.91.tar.xz.asc) = 6d682c802684b2e38c7668c1d926ba1219991ec90f6d4aa7e5e8405a52340827ee1349583455ad35d279f140db23131809bbca18e2a5bb432940872bc14050ac +SHA512 (webkitgtk-2.40.0.tar.xz) = 550dafb31d71edf984d6b7636366f839d31f6b244b87f83c6efe7af17efe3f2f63268d2c39a6a3c474afadf2b30df868efaefcf38197b30cc6b11c63de7d2ddc +SHA512 (webkitgtk-2.40.0.tar.xz.asc) = 782887d27adad7791dd4dc8e070c9c10c711da70907bddf988b739d03c3e2f3d49f433e3afc325801cf42aebe9689110122d6145b69d9696bf8eef5ae525062c diff --git a/webkitgtk.spec b/webkitgtk.spec index 32d0b24..580c459 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -19,7 +19,7 @@ %bcond_without docs Name: webkitgtk -Version: 2.39.91 +Version: 2.40.0 Release: %autorelease Summary: GTK web content engine library @@ -32,10 +32,6 @@ 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/11221 -# https://github.com/WebKit/WebKit/pull/11222 -Patch0: fix-installed-headers.patch - BuildRequires: bison BuildRequires: bubblewrap BuildRequires: cmake From 81ee50ea5f15dee5c52842a20407d18625eefa3a Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Fri, 17 Mar 2023 15:46:38 -0500 Subject: [PATCH 068/200] Add user content manager patch and reenable LTO --- unbreak-script-message-received.patch | 35 +++++++++++++++++++++++++++ webkitgtk.spec | 6 ++--- 2 files changed, 38 insertions(+), 3 deletions(-) create mode 100644 unbreak-script-message-received.patch diff --git a/unbreak-script-message-received.patch b/unbreak-script-message-received.patch new file mode 100644 index 0000000..df91be8 --- /dev/null +++ b/unbreak-script-message-received.patch @@ -0,0 +1,35 @@ +From 7bcb97382f2f347dc348c3c31416ae7fd760ce6b Mon Sep 17 00:00:00 2001 +From: Michael Catanzaro +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(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); diff --git a/webkitgtk.spec b/webkitgtk.spec index 580c459..da0e68f 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -1,6 +1,3 @@ -# https://bugs.webkit.org/show_bug.cgi?id=249368 -%global _lto_cflags %{nil} - ## NOTE: Lots of files in various subdirectories have the same name (such as ## "LICENSE") so this short macro allows us to distinguish them by using their ## directory names (from the source tree) as prefixes for the files. @@ -32,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 From 75a11a9b58f97a46113ed7c750350f2a1156fc10 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Fri, 17 Mar 2023 21:48:23 -0500 Subject: [PATCH 069/200] Explicitly specify some required build deps --- webkitgtk.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/webkitgtk.spec b/webkitgtk.spec index da0e68f..a1b859a 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -63,6 +63,7 @@ BuildRequires: pkgconfig(enchant-2) BuildRequires: pkgconfig(epoxy) BuildRequires: pkgconfig(fontconfig) BuildRequires: pkgconfig(freetype2) +BuildRequires: pkgconfig(gbm) BuildRequires: pkgconfig(gl) BuildRequires: pkgconfig(glib-2.0) BuildRequires: pkgconfig(glesv2) @@ -76,6 +77,7 @@ BuildRequires: pkgconfig(harfbuzz) BuildRequires: pkgconfig(icu-uc) BuildRequires: pkgconfig(lcms2) BuildRequires: pkgconfig(libavif) +BuildRequires: pkgconfig(libdrm) BuildRequires: pkgconfig(libgcrypt) BuildRequires: pkgconfig(libjpeg) BuildRequires: pkgconfig(libnotify) From f25af2888e92c318e492c4a438fa7741c64de4f5 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Fri, 31 Mar 2023 07:51:41 -0500 Subject: [PATCH 070/200] Upgrade to 2.41.1 --- .gitignore | 1 + build.patch | 149 +++++++++++++++++++++++++ crashy-jit.patch | 155 ++++++++++++++++++++++++++ sources | 4 +- unbreak-script-message-received.patch | 35 ------ webkitgtk.spec | 11 +- 6 files changed, 315 insertions(+), 40 deletions(-) create mode 100644 build.patch create mode 100644 crashy-jit.patch delete mode 100644 unbreak-script-message-received.patch diff --git a/.gitignore b/.gitignore index e2096ca..4538a1c 100644 --- a/.gitignore +++ b/.gitignore @@ -15,3 +15,4 @@ /webkitgtk-2.39.90.tar.xz.asc /webkitgtk-2.39.91.tar.xz.asc /webkitgtk-2.40.0.tar.xz.asc +/webkitgtk-2.41.1.tar.xz.asc diff --git a/build.patch b/build.patch new file mode 100644 index 0000000..4ecf666 --- /dev/null +++ b/build.patch @@ -0,0 +1,149 @@ +From fd977228c791d5cf767a1e5b4ed3596add8ed6d5 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?=C5=BDan=20Dober=C5=A1ek?= +Date: Thu, 30 Mar 2023 10:36:24 -0700 +Subject: [PATCH] Build fix around std::variant in SourceBrush for + Clang/libstdc++ https://bugs.webkit.org/show_bug.cgi?id=254742 + +Unreviewed, build fix for the SourceBrush::Brush std::variant construction when +using Clang with libstdc++. + +Things get mixed up when using Ref for constructing the variant, with +the compiler using it as initialization for the LogicalGradient type, the other +possible type in the variant, which ends up in a compile-time error. + +This can be avoided by using the in-place tag when constructing the variant in +the SourceBrush::setPattern() method, specifying which variant-alternative type +should be used. + +Similar fix for the same reasons is also needed in the decoding part of the +ArgumentCoder> specialization, this being problematic due to the +SourceBrush::Brush decoding produced for the generated serializers purpose. +There the variant is constructed with the in-place tag that's based on the index +value of the alternative. + +* Source/WebCore/platform/graphics/SourceBrush.cpp: +(WebCore::SourceBrush::setPattern): +* Source/WebCore/platform/graphics/SourceBrush.h: +* Source/WebKit/Platform/IPC/ArgumentCoders.h: + +Canonical link: https://commits.webkit.org/262339@main +--- + Source/WebCore/platform/graphics/SourceBrush.cpp | 2 +- + Source/WebCore/platform/graphics/SourceBrush.h | 3 ++- + Source/WebKit/Platform/IPC/ArgumentCoders.h | 2 +- + 3 files changed, 4 insertions(+), 3 deletions(-) + +diff --git a/Source/WebCore/platform/graphics/SourceBrush.cpp b/Source/WebCore/platform/graphics/SourceBrush.cpp +index f42e0d42f534..44135b7706ad 100644 +--- a/Source/WebCore/platform/graphics/SourceBrush.cpp ++++ b/Source/WebCore/platform/graphics/SourceBrush.cpp +@@ -91,7 +91,7 @@ void SourceBrush::setGradient(Ref&& gradient, const AffineTransform& s + + void SourceBrush::setPattern(Ref&& pattern) + { +- m_brush = { WTFMove(pattern) }; ++ m_brush = { Brush::Variant { std::in_place_type>, WTFMove(pattern) } }; + } + + WTF::TextStream& operator<<(TextStream& ts, const SourceBrush& brush) +diff --git a/Source/WebCore/platform/graphics/SourceBrush.h b/Source/WebCore/platform/graphics/SourceBrush.h +index 176b9fc85c18..cd97b82c7444 100644 +--- a/Source/WebCore/platform/graphics/SourceBrush.h ++++ b/Source/WebCore/platform/graphics/SourceBrush.h +@@ -42,7 +42,8 @@ class SourceBrush { + template static std::optional decode(Decoder&); + }; + +- std::variant> brush; ++ using Variant = std::variant>; ++ Variant brush; + }; + + SourceBrush() = default; +diff --git a/Source/WebKit/Platform/IPC/ArgumentCoders.h b/Source/WebKit/Platform/IPC/ArgumentCoders.h +index ae37b2145fc2..2d93984e3f36 100644 +--- a/Source/WebKit/Platform/IPC/ArgumentCoders.h ++++ b/Source/WebKit/Platform/IPC/ArgumentCoders.h +@@ -743,7 +743,7 @@ template struct ArgumentCoder> { + auto optional = decoder.template decode>>(); + if (!optional) + return std::nullopt; +- return std::make_optional>(WTFMove(*optional)); ++ return std::make_optional>(std::in_place_index, WTFMove(*optional)); + } + return decode(decoder, std::make_index_sequence { }, i); + } else + +From 93920b55f52ff8b883296f4845269e2ed746acb3 Mon Sep 17 00:00:00 2001 +From: Michael Catanzaro +Date: Fri, 31 Mar 2023 12:24:09 -0700 +Subject: [PATCH] Fix build of SourceBrush.cpp + https://bugs.webkit.org/show_bug.cgi?id=254821 + +Unreviewed build fix. + +* Source/WebCore/platform/graphics/SourceBrush.cpp: +(WebCore::SourceBrush::setGradient): +(WebCore::SourceBrush::setPattern): + +Canonical link: https://commits.webkit.org/262434@main +--- + Source/WebCore/platform/graphics/SourceBrush.cpp | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/Source/WebCore/platform/graphics/SourceBrush.cpp b/Source/WebCore/platform/graphics/SourceBrush.cpp +index 44135b7706ad..5377831d7902 100644 +--- a/Source/WebCore/platform/graphics/SourceBrush.cpp ++++ b/Source/WebCore/platform/graphics/SourceBrush.cpp +@@ -86,12 +86,12 @@ Pattern* SourceBrush::pattern() const + + void SourceBrush::setGradient(Ref&& gradient, const AffineTransform& spaceTransform) + { +- m_brush = { Brush::LogicalGradient { { WTFMove(gradient) }, spaceTransform } }; ++ m_brush = Brush { Brush::LogicalGradient { { WTFMove(gradient) }, spaceTransform } }; + } + + void SourceBrush::setPattern(Ref&& pattern) + { +- m_brush = { Brush::Variant { std::in_place_type>, WTFMove(pattern) } }; ++ m_brush = Brush { Brush::Variant { std::in_place_type>, WTFMove(pattern) } }; + } + + WTF::TextStream& operator<<(TextStream& ts, const SourceBrush& brush) + +From 2fd83187cbe7cf7f57f4d6834f6060b00703683b Mon Sep 17 00:00:00 2001 +From: Michael Catanzaro +Date: Fri, 31 Mar 2023 13:23:45 -0500 +Subject: [PATCH] [GTK] AcceleratedSurfaceDMABuf.cpp does not build on i368 + https://bugs.webkit.org/show_bug.cgi?id=254828 + +Reviewed by NOBODY (OOPS!). + +* Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceDMABuf.cpp: +(WebKit::AcceleratedSurfaceDMABuf::clientResize): +--- + .../WebPage/gtk/AcceleratedSurfaceDMABuf.cpp | 10 +++++----- + 1 file changed, 5 insertions(+), 5 deletions(-) + +diff --git a/Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceDMABuf.cpp b/Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceDMABuf.cpp +index 2aa33586b317..34cca9f11d62 100644 +--- a/Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceDMABuf.cpp ++++ b/Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceDMABuf.cpp +@@ -130,12 +130,12 @@ void AcceleratedSurfaceDMABuf::clientResize(const WebCore::IntSize& size) + } + UnixFileDescriptor backFD(gbm_bo_get_fd(backObject), UnixFileDescriptor::Adopt); + Vector attributes = { +- EGL_WIDTH, gbm_bo_get_width(backObject), +- EGL_HEIGHT, gbm_bo_get_height(backObject), +- EGL_LINUX_DRM_FOURCC_EXT, gbm_bo_get_format(backObject), ++ EGL_WIDTH, static_cast(gbm_bo_get_width(backObject)), ++ EGL_HEIGHT, static_cast(gbm_bo_get_height(backObject)), ++ EGL_LINUX_DRM_FOURCC_EXT, static_cast(gbm_bo_get_format(backObject)), + EGL_DMA_BUF_PLANE0_FD_EXT, backFD.value(), +- EGL_DMA_BUF_PLANE0_OFFSET_EXT, gbm_bo_get_offset(backObject, 0), +- EGL_DMA_BUF_PLANE0_PITCH_EXT, gbm_bo_get_stride(backObject), ++ EGL_DMA_BUF_PLANE0_OFFSET_EXT, static_cast(gbm_bo_get_offset(backObject, 0)), ++ EGL_DMA_BUF_PLANE0_PITCH_EXT, static_cast(gbm_bo_get_stride(backObject)), + EGL_NONE + }; + m_backImage = display.createEGLImage(EGL_NO_CONTEXT, EGL_LINUX_DMA_BUF_EXT, nullptr, attributes); diff --git a/crashy-jit.patch b/crashy-jit.patch new file mode 100644 index 0000000..b8257d5 --- /dev/null +++ b/crashy-jit.patch @@ -0,0 +1,155 @@ +From 63f0b2d0c54093bfea054cc6b302e578260d0fcc Mon Sep 17 00:00:00 2001 +From: Yusuke Suzuki +Date: Thu, 30 Mar 2023 19:47:10 -0700 +Subject: [PATCH] [JSC] Reduce # of parameters of function#bind operations + https://bugs.webkit.org/show_bug.cgi?id=254752 rdar://problem/107427493 + +Reviewed by Ross Kirsling. + +Let's reconstruct boundArgsLength via passed args to reduce # of parameters of operations, +to mitigate issues on x64 Windows (Windows x64 does not have appropriate implementation for more parameters). + +* Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp: +(JSC::DFG::ByteCodeParser::handleIntrinsicCall): +* Source/JavaScriptCore/dfg/DFGOperations.cpp: +(JSC::DFG::JSC_DEFINE_JIT_OPERATION): +* Source/JavaScriptCore/dfg/DFGOperations.h: +* Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp: +(JSC::DFG::SpeculativeJIT::compileFunctionBind): +(JSC::DFG::SpeculativeJIT::compileNewBoundFunction): +* Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp: +(JSC::FTL::DFG::LowerDFGToB3::compileNewBoundFunction): +(JSC::FTL::DFG::LowerDFGToB3::compileFunctionBind): + +Canonical link: https://commits.webkit.org/262385@main +--- + Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp | 2 +- + Source/JavaScriptCore/dfg/DFGOperations.cpp | 13 +++++++++++-- + Source/JavaScriptCore/dfg/DFGOperations.h | 4 ++-- + Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp | 6 ++---- + Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp | 5 ++--- + 5 files changed, 18 insertions(+), 12 deletions(-) + +diff --git a/Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp b/Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp +index fc1cd9e88efc..ae1265bb4bc8 100644 +--- a/Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp ++++ b/Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp +@@ -3886,7 +3886,7 @@ auto ByteCodeParser::handleIntrinsicCall(Node* callee, Operand result, CallVaria + for (; index < argumentCountIncludingThis; ++index) + addVarArgChild(get(virtualRegisterForArgumentIncludingThis(index, registerOffset))); + for (; index < numChildren; ++index) +- addVarArgChild(jsConstant(jsUndefined())); ++ addVarArgChild(jsConstant(JSValue())); + Node* resultNode = addToGraph(Node::VarArg, FunctionBind, OpInfo(0), OpInfo(static_cast(argumentCountIncludingThis >= 2 ? argumentCountIncludingThis - 2 : 0))); + setResult(resultNode); + return CallOptimizationResult::Inlined; +diff --git a/Source/JavaScriptCore/dfg/DFGOperations.cpp b/Source/JavaScriptCore/dfg/DFGOperations.cpp +index ca316e1bd6d2..f19fcd7df41c 100644 +--- a/Source/JavaScriptCore/dfg/DFGOperations.cpp ++++ b/Source/JavaScriptCore/dfg/DFGOperations.cpp +@@ -2818,7 +2818,7 @@ JSC_DEFINE_JIT_OPERATION(operationFunctionToString, JSString*, (JSGlobalObject* + return function->toString(globalObject); + } + +-JSC_DEFINE_JIT_OPERATION(operationFunctionBind, JSBoundFunction*, (JSGlobalObject* globalObject, JSObject* target, unsigned boundArgsLength, EncodedJSValue boundThisValue, EncodedJSValue arg0Value, EncodedJSValue arg1Value, EncodedJSValue arg2Value)) ++JSC_DEFINE_JIT_OPERATION(operationFunctionBind, JSBoundFunction*, (JSGlobalObject* globalObject, JSObject* target, EncodedJSValue boundThisValue, EncodedJSValue arg0Value, EncodedJSValue arg1Value, EncodedJSValue arg2Value)) + { + VM& vm = globalObject->vm(); + CallFrame* callFrame = DECLARE_CALL_FRAME(vm); +@@ -2830,6 +2830,11 @@ JSC_DEFINE_JIT_OPERATION(operationFunctionBind, JSBoundFunction*, (JSGlobalObjec + return { }; + } + ++ unsigned boundArgsLength = 0; ++ boundArgsLength += !!(JSValue::decode(arg0Value)); ++ boundArgsLength += !!(JSValue::decode(arg1Value)); ++ boundArgsLength += !!(JSValue::decode(arg2Value)); ++ + JSValue boundThis = JSValue::decode(boundThisValue); + EncodedJSValue arguments[JSBoundFunction::maxEmbeddedArgs] { + arg0Value, +@@ -2871,7 +2876,7 @@ JSC_DEFINE_JIT_OPERATION(operationFunctionBind, JSBoundFunction*, (JSGlobalObjec + RELEASE_AND_RETURN(scope, JSBoundFunction::create(vm, globalObject, target, boundThis, boundArgs, length, name)); + } + +-JSC_DEFINE_JIT_OPERATION(operationNewBoundFunction, JSBoundFunction*, (JSGlobalObject* globalObject, JSFunction* function, unsigned boundArgsLength, EncodedJSValue boundThisValue, EncodedJSValue arg0Value, EncodedJSValue arg1Value, EncodedJSValue arg2Value)) ++JSC_DEFINE_JIT_OPERATION(operationNewBoundFunction, JSBoundFunction*, (JSGlobalObject* globalObject, JSFunction* function, EncodedJSValue boundThisValue, EncodedJSValue arg0Value, EncodedJSValue arg1Value, EncodedJSValue arg2Value)) + { + VM& vm = globalObject->vm(); + CallFrame* callFrame = DECLARE_CALL_FRAME(vm); +@@ -2880,6 +2885,10 @@ JSC_DEFINE_JIT_OPERATION(operationNewBoundFunction, JSBoundFunction*, (JSGlobalO + JSValue arg0 = JSValue::decode(arg0Value); + JSValue arg1 = JSValue::decode(arg1Value); + JSValue arg2 = JSValue::decode(arg2Value); ++ unsigned boundArgsLength = 0; ++ boundArgsLength += !!(arg0); ++ boundArgsLength += !!(arg1); ++ boundArgsLength += !!(arg2); + return JSBoundFunction::createRaw(vm, globalObject, function, boundArgsLength, boundThis, arg0, arg1, arg2); + } + +diff --git a/Source/JavaScriptCore/dfg/DFGOperations.h b/Source/JavaScriptCore/dfg/DFGOperations.h +index 9602feb3d66a..7e6080a3ec4e 100644 +--- a/Source/JavaScriptCore/dfg/DFGOperations.h ++++ b/Source/JavaScriptCore/dfg/DFGOperations.h +@@ -274,8 +274,8 @@ JSC_DECLARE_JIT_OPERATION(operationInt32ToStringWithValidRadix, char*, (JSGlobal + JSC_DECLARE_JIT_OPERATION(operationInt52ToStringWithValidRadix, char*, (JSGlobalObject*, int64_t, int32_t)); + JSC_DECLARE_JIT_OPERATION(operationDoubleToStringWithValidRadix, char*, (JSGlobalObject*, double, int32_t)); + JSC_DECLARE_JIT_OPERATION(operationFunctionToString, JSString*, (JSGlobalObject*, JSFunction*)); +-JSC_DECLARE_JIT_OPERATION(operationFunctionBind, JSBoundFunction*, (JSGlobalObject*, JSObject*, unsigned, EncodedJSValue, EncodedJSValue, EncodedJSValue, EncodedJSValue)); +-JSC_DECLARE_JIT_OPERATION(operationNewBoundFunction, JSBoundFunction*, (JSGlobalObject*, JSFunction*, unsigned, EncodedJSValue, EncodedJSValue, EncodedJSValue, EncodedJSValue)); ++JSC_DECLARE_JIT_OPERATION(operationFunctionBind, JSBoundFunction*, (JSGlobalObject*, JSObject*, EncodedJSValue, EncodedJSValue, EncodedJSValue, EncodedJSValue)); ++JSC_DECLARE_JIT_OPERATION(operationNewBoundFunction, JSBoundFunction*, (JSGlobalObject*, JSFunction*, EncodedJSValue, EncodedJSValue, EncodedJSValue, EncodedJSValue)); + + JSC_DECLARE_JIT_OPERATION(operationNormalizeMapKeyHeapBigInt, EncodedJSValue, (VM*, JSBigInt*)); + JSC_DECLARE_JIT_OPERATION(operationMapHash, UCPUStrictInt32, (JSGlobalObject*, EncodedJSValue input)); +diff --git a/Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp b/Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp +index 167e61a8d1d0..67f5def0dceb 100644 +--- a/Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp ++++ b/Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp +@@ -6574,12 +6574,10 @@ void SpeculativeJIT::compileFunctionBind(Node* node) + + speculateObject(m_graph.child(node, 0), targetGPR); + +- unsigned boundArgsLength = node->numberOfBoundArguments(); +- + GPRFlushedCallResult result(this); + GPRReg resultGPR = result.gpr(); + flushRegisters(); +- callOperation(operationFunctionBind, resultGPR, LinkableConstant::globalObject(*this, node), targetGPR, TrustedImm32(boundArgsLength), boundThisRegs, arg0Regs, arg1Regs, arg2Regs); ++ callOperation(operationFunctionBind, resultGPR, LinkableConstant::globalObject(*this, node), targetGPR, boundThisRegs, arg0Regs, arg1Regs, arg2Regs); + exceptionCheck(); + cellResult(resultGPR, node); + } +@@ -6629,7 +6627,7 @@ void SpeculativeJIT::compileNewBoundFunction(Node* node) + store8(TrustedImm32(static_cast(TriState::Indeterminate)), Address(resultGPR, JSBoundFunction::offsetOfCanConstruct())); + mutatorFence(vm()); + +- addSlowPathGenerator(slowPathCall(slowPath, this, operationNewBoundFunction, resultGPR, LinkableConstant::globalObject(*this, node), targetGPR, TrustedImm32(node->numberOfBoundArguments()), boundThisRegs, arg0Regs, arg1Regs, arg2Regs)); ++ addSlowPathGenerator(slowPathCall(slowPath, this, operationNewBoundFunction, resultGPR, LinkableConstant::globalObject(*this, node), targetGPR, boundThisRegs, arg0Regs, arg1Regs, arg2Regs)); + cellResult(resultGPR, node); + } + +diff --git a/Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp b/Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp +index 2dda50507633..704d0dd68d8c 100644 +--- a/Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp ++++ b/Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp +@@ -7339,7 +7339,7 @@ IGNORE_CLANG_WARNINGS_END + LValue callResult = lazySlowPath( + [=, &vm] (const Vector& locations) -> RefPtr { + return createLazyCallGenerator(vm, operationNewBoundFunction, locations[0].directGPR(), +- CCallHelpers::TrustedImmPtr(globalObject), locations[1].directGPR(), CCallHelpers::TrustedImm32(numberOfBoundArguments), ++ CCallHelpers::TrustedImmPtr(globalObject), locations[1].directGPR(), + locations[2].directGPR(), locations[3].directGPR(), locations[4].directGPR(), locations[5].directGPR()); + }, + target, thisValue, arg0, arg1, arg2); +@@ -9014,8 +9014,7 @@ IGNORE_CLANG_WARNINGS_END + void compileFunctionBind() + { + JSGlobalObject* globalObject = m_graph.globalObjectFor(m_origin.semantic); +- unsigned boundArgsLength = m_node->numberOfBoundArguments(); +- setJSValue(vmCall(pointerType(), operationFunctionBind, weakPointer(globalObject), lowObject(m_graph.child(m_node, 0)), m_out.constInt32(boundArgsLength), lowJSValue(m_graph.child(m_node, 1)), lowJSValue(m_graph.child(m_node, 2)), lowJSValue(m_graph.child(m_node, 3)), lowJSValue(m_graph.child(m_node, 4)))); ++ setJSValue(vmCall(pointerType(), operationFunctionBind, weakPointer(globalObject), lowObject(m_graph.child(m_node, 0)), lowJSValue(m_graph.child(m_node, 1)), lowJSValue(m_graph.child(m_node, 2)), lowJSValue(m_graph.child(m_node, 3)), lowJSValue(m_graph.child(m_node, 4)))); + } + + void compileToPrimitive() diff --git a/sources b/sources index 5483fdc..3ff5b9f 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.40.0.tar.xz) = 550dafb31d71edf984d6b7636366f839d31f6b244b87f83c6efe7af17efe3f2f63268d2c39a6a3c474afadf2b30df868efaefcf38197b30cc6b11c63de7d2ddc -SHA512 (webkitgtk-2.40.0.tar.xz.asc) = 782887d27adad7791dd4dc8e070c9c10c711da70907bddf988b739d03c3e2f3d49f433e3afc325801cf42aebe9689110122d6145b69d9696bf8eef5ae525062c +SHA512 (webkitgtk-2.41.1.tar.xz) = a64e112855b53329d99b3f06239e2a7e593a4b22c4c91d87ae67cc37441fdd57458cfcd69151c43a614e10406b25d5f77c43f6865bb5883e32c25c993a506c37 +SHA512 (webkitgtk-2.41.1.tar.xz.asc) = a622232ba91291e3a19cb3693b415e2cf2005bdb52e92054dbe5ced56663d471a1a8942c1a2f53f46124910a270aaec72272ee03e3a590729e195571eab329fe diff --git a/unbreak-script-message-received.patch b/unbreak-script-message-received.patch deleted file mode 100644 index df91be8..0000000 --- a/unbreak-script-message-received.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 7bcb97382f2f347dc348c3c31416ae7fd760ce6b Mon Sep 17 00:00:00 2001 -From: Michael Catanzaro -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(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); diff --git a/webkitgtk.spec b/webkitgtk.spec index a1b859a..48f0df0 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -16,7 +16,7 @@ %bcond_without docs Name: webkitgtk -Version: 2.40.0 +Version: 2.41.1 Release: %autorelease Summary: GTK web content engine library @@ -29,8 +29,13 @@ 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 +# https://commits.webkit.org/262385@main +Patch0: crashy-jit.patch + +# https://commits.webkit.org/262339@main +# https://commits.webkit.org/262434@main +# https://github.com/WebKit/WebKit/pull/12250 +Patch1: build.patch BuildRequires: bison BuildRequires: bubblewrap From 1f31e3008131c0532a904d5b088094d1c46207ec Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Fri, 14 Apr 2023 09:22:19 -0500 Subject: [PATCH 071/200] Upgrade to 2.41.2 --- .gitignore | 1 + build.patch | 165 +++++------------------------------------------ crashy-jit.patch | 155 -------------------------------------------- sources | 4 +- webkitgtk.spec | 11 +--- 5 files changed, 23 insertions(+), 313 deletions(-) delete mode 100644 crashy-jit.patch diff --git a/.gitignore b/.gitignore index 4538a1c..bfad5c7 100644 --- a/.gitignore +++ b/.gitignore @@ -16,3 +16,4 @@ /webkitgtk-2.39.91.tar.xz.asc /webkitgtk-2.40.0.tar.xz.asc /webkitgtk-2.41.1.tar.xz.asc +/webkitgtk-2.41.2.tar.xz.asc diff --git a/build.patch b/build.patch index 4ecf666..89dbb04 100644 --- a/build.patch +++ b/build.patch @@ -1,149 +1,18 @@ -From fd977228c791d5cf767a1e5b4ed3596add8ed6d5 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?=C5=BDan=20Dober=C5=A1ek?= -Date: Thu, 30 Mar 2023 10:36:24 -0700 -Subject: [PATCH] Build fix around std::variant in SourceBrush for - Clang/libstdc++ https://bugs.webkit.org/show_bug.cgi?id=254742 - -Unreviewed, build fix for the SourceBrush::Brush std::variant construction when -using Clang with libstdc++. - -Things get mixed up when using Ref for constructing the variant, with -the compiler using it as initialization for the LogicalGradient type, the other -possible type in the variant, which ends up in a compile-time error. - -This can be avoided by using the in-place tag when constructing the variant in -the SourceBrush::setPattern() method, specifying which variant-alternative type -should be used. - -Similar fix for the same reasons is also needed in the decoding part of the -ArgumentCoder> specialization, this being problematic due to the -SourceBrush::Brush decoding produced for the generated serializers purpose. -There the variant is constructed with the in-place tag that's based on the index -value of the alternative. - -* Source/WebCore/platform/graphics/SourceBrush.cpp: -(WebCore::SourceBrush::setPattern): -* Source/WebCore/platform/graphics/SourceBrush.h: -* Source/WebKit/Platform/IPC/ArgumentCoders.h: - -Canonical link: https://commits.webkit.org/262339@main ---- - Source/WebCore/platform/graphics/SourceBrush.cpp | 2 +- - Source/WebCore/platform/graphics/SourceBrush.h | 3 ++- - Source/WebKit/Platform/IPC/ArgumentCoders.h | 2 +- - 3 files changed, 4 insertions(+), 3 deletions(-) - -diff --git a/Source/WebCore/platform/graphics/SourceBrush.cpp b/Source/WebCore/platform/graphics/SourceBrush.cpp -index f42e0d42f534..44135b7706ad 100644 ---- a/Source/WebCore/platform/graphics/SourceBrush.cpp -+++ b/Source/WebCore/platform/graphics/SourceBrush.cpp -@@ -91,7 +91,7 @@ void SourceBrush::setGradient(Ref&& gradient, const AffineTransform& s - - void SourceBrush::setPattern(Ref&& pattern) - { -- m_brush = { WTFMove(pattern) }; -+ m_brush = { Brush::Variant { std::in_place_type>, WTFMove(pattern) } }; - } - - WTF::TextStream& operator<<(TextStream& ts, const SourceBrush& brush) -diff --git a/Source/WebCore/platform/graphics/SourceBrush.h b/Source/WebCore/platform/graphics/SourceBrush.h -index 176b9fc85c18..cd97b82c7444 100644 ---- a/Source/WebCore/platform/graphics/SourceBrush.h -+++ b/Source/WebCore/platform/graphics/SourceBrush.h -@@ -42,7 +42,8 @@ class SourceBrush { - template static std::optional decode(Decoder&); +diff --git a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp +index c0640f19156a..3ed329cc9a86 100644 +--- a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp ++++ b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp +@@ -121,10 +121,10 @@ AcceleratedBackingStoreDMABuf::Texture::Texture(GdkGLContext* glContext, const U + Vector attributes = { + EGL_WIDTH, m_size.width(), + EGL_HEIGHT, m_size.height(), +- EGL_LINUX_DRM_FOURCC_EXT, format, ++ EGL_LINUX_DRM_FOURCC_EXT, static_cast(format), + EGL_DMA_BUF_PLANE0_FD_EXT, fd.value(), +- EGL_DMA_BUF_PLANE0_OFFSET_EXT, offset, +- EGL_DMA_BUF_PLANE0_PITCH_EXT, stride, ++ EGL_DMA_BUF_PLANE0_OFFSET_EXT, static_cast(offset), ++ EGL_DMA_BUF_PLANE0_PITCH_EXT, static_cast(stride), }; - -- std::variant> brush; -+ using Variant = std::variant>; -+ Variant brush; - }; - - SourceBrush() = default; -diff --git a/Source/WebKit/Platform/IPC/ArgumentCoders.h b/Source/WebKit/Platform/IPC/ArgumentCoders.h -index ae37b2145fc2..2d93984e3f36 100644 ---- a/Source/WebKit/Platform/IPC/ArgumentCoders.h -+++ b/Source/WebKit/Platform/IPC/ArgumentCoders.h -@@ -743,7 +743,7 @@ template struct ArgumentCoder> { - auto optional = decoder.template decode>>(); - if (!optional) - return std::nullopt; -- return std::make_optional>(WTFMove(*optional)); -+ return std::make_optional>(std::in_place_index, WTFMove(*optional)); - } - return decode(decoder, std::make_index_sequence { }, i); - } else - -From 93920b55f52ff8b883296f4845269e2ed746acb3 Mon Sep 17 00:00:00 2001 -From: Michael Catanzaro -Date: Fri, 31 Mar 2023 12:24:09 -0700 -Subject: [PATCH] Fix build of SourceBrush.cpp - https://bugs.webkit.org/show_bug.cgi?id=254821 - -Unreviewed build fix. - -* Source/WebCore/platform/graphics/SourceBrush.cpp: -(WebCore::SourceBrush::setGradient): -(WebCore::SourceBrush::setPattern): - -Canonical link: https://commits.webkit.org/262434@main ---- - Source/WebCore/platform/graphics/SourceBrush.cpp | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/Source/WebCore/platform/graphics/SourceBrush.cpp b/Source/WebCore/platform/graphics/SourceBrush.cpp -index 44135b7706ad..5377831d7902 100644 ---- a/Source/WebCore/platform/graphics/SourceBrush.cpp -+++ b/Source/WebCore/platform/graphics/SourceBrush.cpp -@@ -86,12 +86,12 @@ Pattern* SourceBrush::pattern() const - - void SourceBrush::setGradient(Ref&& gradient, const AffineTransform& spaceTransform) - { -- m_brush = { Brush::LogicalGradient { { WTFMove(gradient) }, spaceTransform } }; -+ m_brush = Brush { Brush::LogicalGradient { { WTFMove(gradient) }, spaceTransform } }; - } - - void SourceBrush::setPattern(Ref&& pattern) - { -- m_brush = { Brush::Variant { std::in_place_type>, WTFMove(pattern) } }; -+ m_brush = Brush { Brush::Variant { std::in_place_type>, WTFMove(pattern) } }; - } - - WTF::TextStream& operator<<(TextStream& ts, const SourceBrush& brush) - -From 2fd83187cbe7cf7f57f4d6834f6060b00703683b Mon Sep 17 00:00:00 2001 -From: Michael Catanzaro -Date: Fri, 31 Mar 2023 13:23:45 -0500 -Subject: [PATCH] [GTK] AcceleratedSurfaceDMABuf.cpp does not build on i368 - https://bugs.webkit.org/show_bug.cgi?id=254828 - -Reviewed by NOBODY (OOPS!). - -* Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceDMABuf.cpp: -(WebKit::AcceleratedSurfaceDMABuf::clientResize): ---- - .../WebPage/gtk/AcceleratedSurfaceDMABuf.cpp | 10 +++++----- - 1 file changed, 5 insertions(+), 5 deletions(-) - -diff --git a/Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceDMABuf.cpp b/Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceDMABuf.cpp -index 2aa33586b317..34cca9f11d62 100644 ---- a/Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceDMABuf.cpp -+++ b/Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceDMABuf.cpp -@@ -130,12 +130,12 @@ void AcceleratedSurfaceDMABuf::clientResize(const WebCore::IntSize& size) - } - UnixFileDescriptor backFD(gbm_bo_get_fd(backObject), UnixFileDescriptor::Adopt); - Vector attributes = { -- EGL_WIDTH, gbm_bo_get_width(backObject), -- EGL_HEIGHT, gbm_bo_get_height(backObject), -- EGL_LINUX_DRM_FOURCC_EXT, gbm_bo_get_format(backObject), -+ EGL_WIDTH, static_cast(gbm_bo_get_width(backObject)), -+ EGL_HEIGHT, static_cast(gbm_bo_get_height(backObject)), -+ EGL_LINUX_DRM_FOURCC_EXT, static_cast(gbm_bo_get_format(backObject)), - EGL_DMA_BUF_PLANE0_FD_EXT, backFD.value(), -- EGL_DMA_BUF_PLANE0_OFFSET_EXT, gbm_bo_get_offset(backObject, 0), -- EGL_DMA_BUF_PLANE0_PITCH_EXT, gbm_bo_get_stride(backObject), -+ EGL_DMA_BUF_PLANE0_OFFSET_EXT, static_cast(gbm_bo_get_offset(backObject, 0)), -+ EGL_DMA_BUF_PLANE0_PITCH_EXT, static_cast(gbm_bo_get_stride(backObject)), - EGL_NONE - }; - m_backImage = display.createEGLImage(EGL_NO_CONTEXT, EGL_LINUX_DMA_BUF_EXT, nullptr, attributes); + if (modifier != uint64_t(WebCore::DMABufFormat::Modifier::Invalid) && display.eglExtensions().EXT_image_dma_buf_import_modifiers) { + std::array modifierAttributes { diff --git a/crashy-jit.patch b/crashy-jit.patch deleted file mode 100644 index b8257d5..0000000 --- a/crashy-jit.patch +++ /dev/null @@ -1,155 +0,0 @@ -From 63f0b2d0c54093bfea054cc6b302e578260d0fcc Mon Sep 17 00:00:00 2001 -From: Yusuke Suzuki -Date: Thu, 30 Mar 2023 19:47:10 -0700 -Subject: [PATCH] [JSC] Reduce # of parameters of function#bind operations - https://bugs.webkit.org/show_bug.cgi?id=254752 rdar://problem/107427493 - -Reviewed by Ross Kirsling. - -Let's reconstruct boundArgsLength via passed args to reduce # of parameters of operations, -to mitigate issues on x64 Windows (Windows x64 does not have appropriate implementation for more parameters). - -* Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp: -(JSC::DFG::ByteCodeParser::handleIntrinsicCall): -* Source/JavaScriptCore/dfg/DFGOperations.cpp: -(JSC::DFG::JSC_DEFINE_JIT_OPERATION): -* Source/JavaScriptCore/dfg/DFGOperations.h: -* Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp: -(JSC::DFG::SpeculativeJIT::compileFunctionBind): -(JSC::DFG::SpeculativeJIT::compileNewBoundFunction): -* Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp: -(JSC::FTL::DFG::LowerDFGToB3::compileNewBoundFunction): -(JSC::FTL::DFG::LowerDFGToB3::compileFunctionBind): - -Canonical link: https://commits.webkit.org/262385@main ---- - Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp | 2 +- - Source/JavaScriptCore/dfg/DFGOperations.cpp | 13 +++++++++++-- - Source/JavaScriptCore/dfg/DFGOperations.h | 4 ++-- - Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp | 6 ++---- - Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp | 5 ++--- - 5 files changed, 18 insertions(+), 12 deletions(-) - -diff --git a/Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp b/Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp -index fc1cd9e88efc..ae1265bb4bc8 100644 ---- a/Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp -+++ b/Source/JavaScriptCore/dfg/DFGByteCodeParser.cpp -@@ -3886,7 +3886,7 @@ auto ByteCodeParser::handleIntrinsicCall(Node* callee, Operand result, CallVaria - for (; index < argumentCountIncludingThis; ++index) - addVarArgChild(get(virtualRegisterForArgumentIncludingThis(index, registerOffset))); - for (; index < numChildren; ++index) -- addVarArgChild(jsConstant(jsUndefined())); -+ addVarArgChild(jsConstant(JSValue())); - Node* resultNode = addToGraph(Node::VarArg, FunctionBind, OpInfo(0), OpInfo(static_cast(argumentCountIncludingThis >= 2 ? argumentCountIncludingThis - 2 : 0))); - setResult(resultNode); - return CallOptimizationResult::Inlined; -diff --git a/Source/JavaScriptCore/dfg/DFGOperations.cpp b/Source/JavaScriptCore/dfg/DFGOperations.cpp -index ca316e1bd6d2..f19fcd7df41c 100644 ---- a/Source/JavaScriptCore/dfg/DFGOperations.cpp -+++ b/Source/JavaScriptCore/dfg/DFGOperations.cpp -@@ -2818,7 +2818,7 @@ JSC_DEFINE_JIT_OPERATION(operationFunctionToString, JSString*, (JSGlobalObject* - return function->toString(globalObject); - } - --JSC_DEFINE_JIT_OPERATION(operationFunctionBind, JSBoundFunction*, (JSGlobalObject* globalObject, JSObject* target, unsigned boundArgsLength, EncodedJSValue boundThisValue, EncodedJSValue arg0Value, EncodedJSValue arg1Value, EncodedJSValue arg2Value)) -+JSC_DEFINE_JIT_OPERATION(operationFunctionBind, JSBoundFunction*, (JSGlobalObject* globalObject, JSObject* target, EncodedJSValue boundThisValue, EncodedJSValue arg0Value, EncodedJSValue arg1Value, EncodedJSValue arg2Value)) - { - VM& vm = globalObject->vm(); - CallFrame* callFrame = DECLARE_CALL_FRAME(vm); -@@ -2830,6 +2830,11 @@ JSC_DEFINE_JIT_OPERATION(operationFunctionBind, JSBoundFunction*, (JSGlobalObjec - return { }; - } - -+ unsigned boundArgsLength = 0; -+ boundArgsLength += !!(JSValue::decode(arg0Value)); -+ boundArgsLength += !!(JSValue::decode(arg1Value)); -+ boundArgsLength += !!(JSValue::decode(arg2Value)); -+ - JSValue boundThis = JSValue::decode(boundThisValue); - EncodedJSValue arguments[JSBoundFunction::maxEmbeddedArgs] { - arg0Value, -@@ -2871,7 +2876,7 @@ JSC_DEFINE_JIT_OPERATION(operationFunctionBind, JSBoundFunction*, (JSGlobalObjec - RELEASE_AND_RETURN(scope, JSBoundFunction::create(vm, globalObject, target, boundThis, boundArgs, length, name)); - } - --JSC_DEFINE_JIT_OPERATION(operationNewBoundFunction, JSBoundFunction*, (JSGlobalObject* globalObject, JSFunction* function, unsigned boundArgsLength, EncodedJSValue boundThisValue, EncodedJSValue arg0Value, EncodedJSValue arg1Value, EncodedJSValue arg2Value)) -+JSC_DEFINE_JIT_OPERATION(operationNewBoundFunction, JSBoundFunction*, (JSGlobalObject* globalObject, JSFunction* function, EncodedJSValue boundThisValue, EncodedJSValue arg0Value, EncodedJSValue arg1Value, EncodedJSValue arg2Value)) - { - VM& vm = globalObject->vm(); - CallFrame* callFrame = DECLARE_CALL_FRAME(vm); -@@ -2880,6 +2885,10 @@ JSC_DEFINE_JIT_OPERATION(operationNewBoundFunction, JSBoundFunction*, (JSGlobalO - JSValue arg0 = JSValue::decode(arg0Value); - JSValue arg1 = JSValue::decode(arg1Value); - JSValue arg2 = JSValue::decode(arg2Value); -+ unsigned boundArgsLength = 0; -+ boundArgsLength += !!(arg0); -+ boundArgsLength += !!(arg1); -+ boundArgsLength += !!(arg2); - return JSBoundFunction::createRaw(vm, globalObject, function, boundArgsLength, boundThis, arg0, arg1, arg2); - } - -diff --git a/Source/JavaScriptCore/dfg/DFGOperations.h b/Source/JavaScriptCore/dfg/DFGOperations.h -index 9602feb3d66a..7e6080a3ec4e 100644 ---- a/Source/JavaScriptCore/dfg/DFGOperations.h -+++ b/Source/JavaScriptCore/dfg/DFGOperations.h -@@ -274,8 +274,8 @@ JSC_DECLARE_JIT_OPERATION(operationInt32ToStringWithValidRadix, char*, (JSGlobal - JSC_DECLARE_JIT_OPERATION(operationInt52ToStringWithValidRadix, char*, (JSGlobalObject*, int64_t, int32_t)); - JSC_DECLARE_JIT_OPERATION(operationDoubleToStringWithValidRadix, char*, (JSGlobalObject*, double, int32_t)); - JSC_DECLARE_JIT_OPERATION(operationFunctionToString, JSString*, (JSGlobalObject*, JSFunction*)); --JSC_DECLARE_JIT_OPERATION(operationFunctionBind, JSBoundFunction*, (JSGlobalObject*, JSObject*, unsigned, EncodedJSValue, EncodedJSValue, EncodedJSValue, EncodedJSValue)); --JSC_DECLARE_JIT_OPERATION(operationNewBoundFunction, JSBoundFunction*, (JSGlobalObject*, JSFunction*, unsigned, EncodedJSValue, EncodedJSValue, EncodedJSValue, EncodedJSValue)); -+JSC_DECLARE_JIT_OPERATION(operationFunctionBind, JSBoundFunction*, (JSGlobalObject*, JSObject*, EncodedJSValue, EncodedJSValue, EncodedJSValue, EncodedJSValue)); -+JSC_DECLARE_JIT_OPERATION(operationNewBoundFunction, JSBoundFunction*, (JSGlobalObject*, JSFunction*, EncodedJSValue, EncodedJSValue, EncodedJSValue, EncodedJSValue)); - - JSC_DECLARE_JIT_OPERATION(operationNormalizeMapKeyHeapBigInt, EncodedJSValue, (VM*, JSBigInt*)); - JSC_DECLARE_JIT_OPERATION(operationMapHash, UCPUStrictInt32, (JSGlobalObject*, EncodedJSValue input)); -diff --git a/Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp b/Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp -index 167e61a8d1d0..67f5def0dceb 100644 ---- a/Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp -+++ b/Source/JavaScriptCore/dfg/DFGSpeculativeJIT64.cpp -@@ -6574,12 +6574,10 @@ void SpeculativeJIT::compileFunctionBind(Node* node) - - speculateObject(m_graph.child(node, 0), targetGPR); - -- unsigned boundArgsLength = node->numberOfBoundArguments(); -- - GPRFlushedCallResult result(this); - GPRReg resultGPR = result.gpr(); - flushRegisters(); -- callOperation(operationFunctionBind, resultGPR, LinkableConstant::globalObject(*this, node), targetGPR, TrustedImm32(boundArgsLength), boundThisRegs, arg0Regs, arg1Regs, arg2Regs); -+ callOperation(operationFunctionBind, resultGPR, LinkableConstant::globalObject(*this, node), targetGPR, boundThisRegs, arg0Regs, arg1Regs, arg2Regs); - exceptionCheck(); - cellResult(resultGPR, node); - } -@@ -6629,7 +6627,7 @@ void SpeculativeJIT::compileNewBoundFunction(Node* node) - store8(TrustedImm32(static_cast(TriState::Indeterminate)), Address(resultGPR, JSBoundFunction::offsetOfCanConstruct())); - mutatorFence(vm()); - -- addSlowPathGenerator(slowPathCall(slowPath, this, operationNewBoundFunction, resultGPR, LinkableConstant::globalObject(*this, node), targetGPR, TrustedImm32(node->numberOfBoundArguments()), boundThisRegs, arg0Regs, arg1Regs, arg2Regs)); -+ addSlowPathGenerator(slowPathCall(slowPath, this, operationNewBoundFunction, resultGPR, LinkableConstant::globalObject(*this, node), targetGPR, boundThisRegs, arg0Regs, arg1Regs, arg2Regs)); - cellResult(resultGPR, node); - } - -diff --git a/Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp b/Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp -index 2dda50507633..704d0dd68d8c 100644 ---- a/Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp -+++ b/Source/JavaScriptCore/ftl/FTLLowerDFGToB3.cpp -@@ -7339,7 +7339,7 @@ IGNORE_CLANG_WARNINGS_END - LValue callResult = lazySlowPath( - [=, &vm] (const Vector& locations) -> RefPtr { - return createLazyCallGenerator(vm, operationNewBoundFunction, locations[0].directGPR(), -- CCallHelpers::TrustedImmPtr(globalObject), locations[1].directGPR(), CCallHelpers::TrustedImm32(numberOfBoundArguments), -+ CCallHelpers::TrustedImmPtr(globalObject), locations[1].directGPR(), - locations[2].directGPR(), locations[3].directGPR(), locations[4].directGPR(), locations[5].directGPR()); - }, - target, thisValue, arg0, arg1, arg2); -@@ -9014,8 +9014,7 @@ IGNORE_CLANG_WARNINGS_END - void compileFunctionBind() - { - JSGlobalObject* globalObject = m_graph.globalObjectFor(m_origin.semantic); -- unsigned boundArgsLength = m_node->numberOfBoundArguments(); -- setJSValue(vmCall(pointerType(), operationFunctionBind, weakPointer(globalObject), lowObject(m_graph.child(m_node, 0)), m_out.constInt32(boundArgsLength), lowJSValue(m_graph.child(m_node, 1)), lowJSValue(m_graph.child(m_node, 2)), lowJSValue(m_graph.child(m_node, 3)), lowJSValue(m_graph.child(m_node, 4)))); -+ setJSValue(vmCall(pointerType(), operationFunctionBind, weakPointer(globalObject), lowObject(m_graph.child(m_node, 0)), lowJSValue(m_graph.child(m_node, 1)), lowJSValue(m_graph.child(m_node, 2)), lowJSValue(m_graph.child(m_node, 3)), lowJSValue(m_graph.child(m_node, 4)))); - } - - void compileToPrimitive() diff --git a/sources b/sources index 3ff5b9f..46fdb27 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.41.1.tar.xz) = a64e112855b53329d99b3f06239e2a7e593a4b22c4c91d87ae67cc37441fdd57458cfcd69151c43a614e10406b25d5f77c43f6865bb5883e32c25c993a506c37 -SHA512 (webkitgtk-2.41.1.tar.xz.asc) = a622232ba91291e3a19cb3693b415e2cf2005bdb52e92054dbe5ced56663d471a1a8942c1a2f53f46124910a270aaec72272ee03e3a590729e195571eab329fe +SHA512 (webkitgtk-2.41.2.tar.xz) = de1f8b6c33265d0b76dc26ce69ce06055dedd658ad8388f9ddbf016a8a8410b4adda187dcf009b69d2c72116ae8a6b629e973c49968affa09343e8b860d24516 +SHA512 (webkitgtk-2.41.2.tar.xz.asc) = 1d03a1e103211193ec0aad81f813c183171797bc8988418f6db7e4a70993ac2c55edecb5ea65e804bf93c5cdea8dcc424487fded28715f96ceca84c9798320df diff --git a/webkitgtk.spec b/webkitgtk.spec index 48f0df0..da59c43 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -16,7 +16,7 @@ %bcond_without docs Name: webkitgtk -Version: 2.41.1 +Version: 2.41.2 Release: %autorelease Summary: GTK web content engine library @@ -29,13 +29,8 @@ 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://commits.webkit.org/262385@main -Patch0: crashy-jit.patch - -# https://commits.webkit.org/262339@main -# https://commits.webkit.org/262434@main -# https://github.com/WebKit/WebKit/pull/12250 -Patch1: build.patch +# https://bugs.webkit.org/show_bug.cgi?id=255460 +Patch0: build.patch BuildRequires: bison BuildRequires: bubblewrap From 229fcf8dd1227482bd906f0c4aae4d7eccfb6bf9 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Mon, 17 Apr 2023 11:06:28 -0500 Subject: [PATCH 072/200] Add patch to fix rendering errors --- text-extents.patch | 49 ++++++++++++++++++++++++++++++++++++++++++++++ webkitgtk.spec | 3 +++ 2 files changed, 52 insertions(+) create mode 100644 text-extents.patch diff --git a/text-extents.patch b/text-extents.patch new file mode 100644 index 0000000..aa87f44 --- /dev/null +++ b/text-extents.patch @@ -0,0 +1,49 @@ +From 496b2994ce4193222fc140eebde4a610e945790e Mon Sep 17 00:00:00 2001 +From: Michael Catanzaro +Date: Mon, 17 Apr 2023 11:03:43 -0500 +Subject: [PATCH] REGRESSION(262860@main): [GTK] icons broken, rendering errors + on reddit.com and many other websites, flickering on cnn.com + https://bugs.webkit.org/show_bug.cgi?id=255488 + +Reviewed by NOBODY (OOPS!). + +The second parameter to cairo_scaled_font_text_extents() must be a +NUL-terminated UTF-8 string. + +* Source/WebCore/platform/graphics/freetype/SimpleFontDataFreeType.cpp: +(WebCore::heightOfCharacter): +(WebCore::Font::platformInit): +--- + .../graphics/freetype/SimpleFontDataFreeType.cpp | 9 +++++---- + 1 file changed, 5 insertions(+), 4 deletions(-) + +diff --git a/Source/WebCore/platform/graphics/freetype/SimpleFontDataFreeType.cpp b/Source/WebCore/platform/graphics/freetype/SimpleFontDataFreeType.cpp +index fa58a247fa32..7cf29fc9ca89 100644 +--- a/Source/WebCore/platform/graphics/freetype/SimpleFontDataFreeType.cpp ++++ b/Source/WebCore/platform/graphics/freetype/SimpleFontDataFreeType.cpp +@@ -96,10 +96,11 @@ static std::optional fontUnitsPerEm(FT_Face freeTypeFace) + return std::nullopt; + } + +-static float heightOfCharacter(cairo_scaled_font_t* scaledFont, const char character, FontOrientation orientation) ++static float heightOfCharacter(cairo_scaled_font_t* scaledFont, const char* character, FontOrientation orientation) + { ++ ASSERT(strlen(character) == 1); + cairo_text_extents_t textExtents; +- cairo_scaled_font_text_extents(scaledFont, &character, &textExtents); ++ cairo_scaled_font_text_extents(scaledFont, character, &textExtents); + return narrowPrecisionToFloat(orientation == FontOrientation::Horizontal ? textExtents.height : textExtents.width); + } + +@@ -158,9 +159,9 @@ void Font::platformInit() + // We approximate capHeight and xHeight from cairo_text_extents_t unless + // FreeType returns them above. This approach is less precise than using FreeType. + if (!capHeight.has_value() || !capHeight.value()) +- capHeight = heightOfCharacter(m_platformData.scaledFont(), 'T', platformData().orientation()); ++ capHeight = heightOfCharacter(m_platformData.scaledFont(), "T", platformData().orientation()); + if (!xHeight.has_value() || !xHeight.value()) +- xHeight = heightOfCharacter(m_platformData.scaledFont(), 'x', platformData().orientation()); ++ xHeight = heightOfCharacter(m_platformData.scaledFont(), "x", platformData().orientation()); + + m_fontMetrics.setAscent(ascent); + m_fontMetrics.setDescent(descent); diff --git a/webkitgtk.spec b/webkitgtk.spec index da59c43..78f69b3 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -32,6 +32,9 @@ Source2: webkitgtk-keys.gpg # https://bugs.webkit.org/show_bug.cgi?id=255460 Patch0: build.patch +# https://github.com/WebKit/WebKit/pull/12806 +Patch1: text-extents.patch + BuildRequires: bison BuildRequires: bubblewrap BuildRequires: cmake From 37202f93bb65104c28b72c908a256e7d5558e029 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Mon, 17 Apr 2023 13:50:46 -0500 Subject: [PATCH 073/200] Add patch to fix GPU permissions errors --- fix-multi-gpus.patch | 871 +++++++++++++++++++++++++++++++++++++++++++ webkitgtk.spec | 4 + 2 files changed, 875 insertions(+) create mode 100644 fix-multi-gpus.patch diff --git a/fix-multi-gpus.patch b/fix-multi-gpus.patch new file mode 100644 index 0000000..fb8dbbd --- /dev/null +++ b/fix-multi-gpus.patch @@ -0,0 +1,871 @@ +From b835f528fa750ecddf79de8a9aea3900a0d169c8 Mon Sep 17 00:00:00 2001 +From: Carlos Garcia Campos +Date: Fri, 14 Apr 2023 06:08:42 -0700 +Subject: [PATCH] [GTK][WPE] Show DRM device and render node files when + available in webkit://gpu https://bugs.webkit.org/show_bug.cgi?id=255445 + +Reviewed by Adrian Perez de Castro. + +* Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp: +(WebKit::WebKitProtocolHandler::handleGPU): + +Canonical link: https://commits.webkit.org/262958@main +--- + .../API/glib/WebKitProtocolHandler.cpp | 22 ++++++++++++++++++- + 1 file changed, 21 insertions(+), 1 deletion(-) + +diff --git a/Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp b/Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp +index 167cb28bf97a..b629cc6536bf 100644 +--- a/Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp ++++ b/Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp +@@ -58,6 +58,9 @@ + + #if USE(GBM) + #include "AcceleratedBackingStoreDMABuf.h" ++#ifndef EGL_DRM_RENDER_NODE_FILE_EXT ++#define EGL_DRM_RENDER_NODE_FILE_EXT 0x3377 ++#endif + #endif + + #if PLATFORM(X11) +@@ -278,6 +281,24 @@ void WebKitProtocolHandler::handleGPU(WebKitURISchemeRequest* request) + addTableRow(hardwareAccelerationObject, "GL_VERSION"_s, makeString(reinterpret_cast(glGetString(GL_VERSION)))); + addTableRow(hardwareAccelerationObject, "GL_SHADING_LANGUAGE_VERSION"_s, makeString(reinterpret_cast(glGetString(GL_SHADING_LANGUAGE_VERSION)))); + ++ auto eglDisplay = PlatformDisplay::sharedDisplay().eglDisplay(); ++#if USE(GBM) ++ if (GLContext::isExtensionSupported(eglQueryString(nullptr, EGL_EXTENSIONS), "EGL_EXT_device_query")) { ++ EGLDeviceEXT eglDevice; ++ if (eglQueryDisplayAttribEXT(eglDisplay, EGL_DEVICE_EXT, reinterpret_cast(&eglDevice))) { ++ const char* deviceExtensions = eglQueryDeviceStringEXT(eglDevice, EGL_EXTENSIONS); ++ if (GLContext::isExtensionSupported(deviceExtensions, "EGL_EXT_device_drm")) { ++ if (const char* deviceFile = eglQueryDeviceStringEXT(eglDevice, EGL_DRM_DEVICE_FILE_EXT)) ++ addTableRow(hardwareAccelerationObject, "DRM Device"_s, makeString(deviceFile)); ++ } ++ if (GLContext::isExtensionSupported(deviceExtensions, "EGL_EXT_device_drm_render_node")) { ++ if (const char* renderNode = eglQueryDeviceStringEXT(eglDevice, EGL_DRM_RENDER_NODE_FILE_EXT)) ++ addTableRow(hardwareAccelerationObject, "DRM Render Node"_s, makeString(renderNode)); ++ } ++ } ++ } ++#endif ++ + #if USE(OPENGL_ES) + addTableRow(hardwareAccelerationObject, "GL_EXTENSIONS"_s, makeString(reinterpret_cast(glGetString(GL_EXTENSIONS)))); + #else +@@ -292,7 +313,6 @@ void WebKitProtocolHandler::handleGPU(WebKitURISchemeRequest* request) + addTableRow(hardwareAccelerationObject, "GL_EXTENSIONS"_s, extensionsBuilder.toString()); + #endif + +- auto eglDisplay = PlatformDisplay::sharedDisplay().eglDisplay(); + addTableRow(hardwareAccelerationObject, "EGL_VERSION"_s, makeString(eglQueryString(eglDisplay, EGL_VERSION))); + addTableRow(hardwareAccelerationObject, "EGL_VENDOR"_s, makeString(eglQueryString(eglDisplay, EGL_VENDOR))); + addTableRow(hardwareAccelerationObject, "EGL_EXTENSIONS"_s, makeString(eglQueryString(nullptr, EGL_EXTENSIONS), ' ', eglQueryString(eglDisplay, EGL_EXTENSIONS))); + +From d67f30551d7cbf5ec8bdd6d7fed92862db326110 Mon Sep 17 00:00:00 2001 +From: Carlos Garcia Campos +Date: Mon, 17 Apr 2023 13:17:54 +0200 +Subject: [PATCH] [GTK] Minibrowser does not render any content + https://bugs.webkit.org/show_bug.cgi?id=254807 + +Reviewed by NOBODY (OOPS!). + +This happens in systems with multiple GPUs enabled. The problem is that +we might end up using a different GPU than the one used by the +application in the UI process. This is because both GBMDevice and mesa +surfaceless platform use always the first device having a render node +returned by drmGetDevices2(). To make sure we use the right GPU +everywhere we need to get the GPU in used by the UI process and send it +to the web process. Mesa surfaceless platform doesn't allow to chang the +device, so we need to use GBM platform that receives the device as the +native display when initializing the EGL display. Surfaceless platform +is still used for swrast, because GBM requires a GPU device. + +* Source/WebCore/PlatformGTK.cmake: +* Source/WebCore/SourcesGTK.txt: +* Source/WebCore/platform/graphics/PlatformDisplay.cpp: +(WebCore::PlatformDisplay::~PlatformDisplay): +(WebCore::PlatformDisplay::eglDevice): +(WebCore::PlatformDisplay::drmDeviceFile): +(WebCore::drmRenderNodeFromPrimaryDeviceFile): +(WebCore::PlatformDisplay::drmRenderNodeFile): +(WebCore::PlatformDisplay::gbmDevice): +* Source/WebCore/platform/graphics/PlatformDisplay.h: +* Source/WebCore/platform/graphics/egl/GLContext.cpp: +(WebCore::GLContext::getEGLConfig): +(WebCore::GLContext::createWindowContext): +(WebCore::GLContext::create): +(WebCore::GLContext::createSharing): +* Source/WebCore/platform/graphics/egl/PlatformDisplaySurfaceless.cpp: Renamed from Source/WebCore/platform/graphics/egl/PlatformDisplayHeadless.cpp. +* Source/WebCore/platform/graphics/egl/PlatformDisplaySurfaceless.h: Renamed from Source/WebCore/platform/graphics/egl/PlatformDisplayHeadless.h. +* Source/WebCore/platform/graphics/gbm/PlatformDisplayGBM.cpp: Added. +(WebCore::PlatformDisplayGBM::create): +(WebCore::PlatformDisplayGBM::PlatformDisplayGBM): +(WebCore::PlatformDisplayGBM::~PlatformDisplayGBM): +* Source/WebCore/platform/graphics/gbm/PlatformDisplayGBM.h: Added. +* Source/WebKit/Shared/WebProcessCreationParameters.cpp: +(WebKit::WebProcessCreationParameters::encode const): +(WebKit::WebProcessCreationParameters::decode): +* Source/WebKit/Shared/WebProcessCreationParameters.h: +* Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp: +(WebKit::WebKitProtocolHandler::handleGPU): +* Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp: +(WebKit::WebProcessPool::platformInitializeWebProcess): +* Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp: +(WebKit::AcceleratedBackingStoreDMABuf::Surface::Surface): +* Source/WebKit/WebProcess/WebPage/AcceleratedSurface.cpp: +(WebKit::AcceleratedSurface::create): +* Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceDMABuf.cpp: +(WebKit::AcceleratedSurfaceDMABuf::AcceleratedSurfaceDMABuf): +(WebKit::AcceleratedSurfaceDMABuf::RenderTargetEGLImage::create): +* Source/WebKit/WebProcess/glib/WebProcessGLib.cpp: +(WebKit::WebProcess::platformInitializeWebProcess): +--- + Source/WebCore/PlatformGTK.cmake | 4 +- + Source/WebCore/SourcesGTK.txt | 3 +- + .../platform/graphics/PlatformDisplay.cpp | 117 ++++++++++++++++++ + .../platform/graphics/PlatformDisplay.h | 30 ++++- + .../platform/graphics/egl/GLContext.cpp | 19 ++- + ...ess.cpp => PlatformDisplaySurfaceless.cpp} | 10 +- + ...eadless.h => PlatformDisplaySurfaceless.h} | 10 +- + .../graphics/gbm/PlatformDisplayGBM.cpp | 81 ++++++++++++ + .../graphics/gbm/PlatformDisplayGBM.h | 46 +++++++ + .../Shared/WebProcessCreationParameters.cpp | 6 + + .../Shared/WebProcessCreationParameters.h | 1 + + .../API/glib/WebKitProtocolHandler.cpp | 25 ++-- + .../UIProcess/glib/WebProcessPoolGLib.cpp | 4 +- + .../gtk/AcceleratedBackingStoreDMABuf.cpp | 8 +- + .../WebProcess/WebPage/AcceleratedSurface.cpp | 3 +- + .../WebPage/gtk/AcceleratedSurfaceDMABuf.cpp | 10 +- + .../WebKit/WebProcess/glib/WebProcessGLib.cpp | 15 ++- + 17 files changed, 341 insertions(+), 51 deletions(-) + rename Source/WebCore/platform/graphics/egl/{PlatformDisplayHeadless.cpp => PlatformDisplaySurfaceless.cpp} (86%) + rename Source/WebCore/platform/graphics/egl/{PlatformDisplayHeadless.h => PlatformDisplaySurfaceless.h} (83%) + create mode 100644 Source/WebCore/platform/graphics/gbm/PlatformDisplayGBM.cpp + create mode 100644 Source/WebCore/platform/graphics/gbm/PlatformDisplayGBM.h + +diff --git a/Source/WebCore/PlatformGTK.cmake b/Source/WebCore/PlatformGTK.cmake +index 27b04aee02d4..76c08982c9b6 100644 +--- a/Source/WebCore/PlatformGTK.cmake ++++ b/Source/WebCore/PlatformGTK.cmake +@@ -47,7 +47,9 @@ list(APPEND WebCore_PRIVATE_FRAMEWORK_HEADERS + + platform/glib/ApplicationGLib.h + +- platform/graphics/egl/PlatformDisplayHeadless.h ++ platform/graphics/egl/PlatformDisplaySurfaceless.h ++ ++ platform/graphics/gbm/PlatformDisplayGBM.h + + platform/graphics/gtk/GdkCairoUtilities.h + +diff --git a/Source/WebCore/SourcesGTK.txt b/Source/WebCore/SourcesGTK.txt +index 2042f2d6a177..58a73bf31a5b 100644 +--- a/Source/WebCore/SourcesGTK.txt ++++ b/Source/WebCore/SourcesGTK.txt +@@ -74,7 +74,7 @@ platform/graphics/egl/GLContext.cpp @no-unify + platform/graphics/egl/GLContextLibWPE.cpp @no-unify + platform/graphics/egl/GLContextWayland.cpp @no-unify + platform/graphics/egl/GLContextX11.cpp @no-unify +-platform/graphics/egl/PlatformDisplayHeadless.cpp ++platform/graphics/egl/PlatformDisplaySurfaceless.cpp + + platform/graphics/gbm/GBMBufferSwapchain.cpp + platform/graphics/gbm/GBMDevice.cpp +@@ -82,6 +82,7 @@ platform/graphics/gbm/GraphicsContextGLANGLELinux.cpp + platform/graphics/gbm/GraphicsContextGLFallback.cpp + platform/graphics/gbm/GraphicsContextGLGBM.cpp + platform/graphics/gbm/GraphicsContextGLGBMTextureMapper.cpp ++platform/graphics/gbm/PlatformDisplayGBM.cpp + + platform/graphics/gtk/ColorGtk.cpp + platform/graphics/gtk/DisplayRefreshMonitorGtk.cpp +diff --git a/Source/WebCore/platform/graphics/PlatformDisplay.cpp b/Source/WebCore/platform/graphics/PlatformDisplay.cpp +index e5a48c9c0b52..cdd10a7d1351 100644 +--- a/Source/WebCore/platform/graphics/PlatformDisplay.cpp ++++ b/Source/WebCore/platform/graphics/PlatformDisplay.cpp +@@ -80,6 +80,18 @@ + #include + #endif + ++#if USE(EGL) && USE(GBM) ++#include ++#include ++#include ++#include ++#include ++#include ++#ifndef EGL_DRM_RENDER_NODE_FILE_EXT ++#define EGL_DRM_RENDER_NODE_FILE_EXT 0x3377 ++#endif ++#endif ++ + #if USE(ATSPI) + #include + #endif +@@ -221,6 +233,10 @@ PlatformDisplay::~PlatformDisplay() + #if PLATFORM(GTK) + if (m_sharedDisplay) + g_signal_handlers_disconnect_by_data(m_sharedDisplay.get(), this); ++#endif ++#if USE(EGL) && USE(GBM) ++ if (m_gbm.device.has_value() && m_gbm.device.value()) ++ gbm_device_destroy(m_gbm.device.value()); + #endif + if (s_sharedDisplayForCompositing == this) + s_sharedDisplayForCompositing = nullptr; +@@ -402,6 +418,107 @@ bool PlatformDisplay::destroyEGLImage(EGLImage image) const + #endif + } + ++#if USE(GBM) ++EGLDeviceEXT PlatformDisplay::eglDevice() ++{ ++ if (!GLContext::isExtensionSupported(eglQueryString(nullptr, EGL_EXTENSIONS), "EGL_EXT_device_query")) ++ return nullptr; ++ ++ if (!m_eglDisplayInitialized) ++ const_cast(this)->initializeEGLDisplay(); ++ ++ EGLDeviceEXT eglDevice; ++ if (eglQueryDisplayAttribEXT(m_eglDisplay, EGL_DEVICE_EXT, reinterpret_cast(&eglDevice))) ++ return eglDevice; ++ ++ return nullptr; ++} ++ ++const String& PlatformDisplay::drmDeviceFile() ++{ ++ if (!m_drmDeviceFile.has_value()) { ++ if (EGLDeviceEXT device = eglDevice()) { ++ if (GLContext::isExtensionSupported(eglQueryDeviceStringEXT(device, EGL_EXTENSIONS), "EGL_EXT_device_drm")) { ++ m_drmDeviceFile = String::fromUTF8(eglQueryDeviceStringEXT(device, EGL_DRM_DEVICE_FILE_EXT)); ++ return m_drmDeviceFile.value(); ++ } ++ } ++ m_drmDeviceFile = String(); ++ } ++ ++ return m_drmDeviceFile.value(); ++} ++ ++static String drmRenderNodeFromPrimaryDeviceFile(const String& primaryDeviceFile) ++{ ++ if (primaryDeviceFile.isEmpty()) ++ return { }; ++ ++ drmDevicePtr devices[64]; ++ memset(devices, 0, sizeof(devices)); ++ ++ int numDevices = drmGetDevices2(0, devices, std::size(devices)); ++ if (numDevices <= 0) ++ return { }; ++ ++ String renderNodeDeviceFile; ++ for (int i = 0; i < numDevices; ++i) { ++ drmDevice* device = devices[i]; ++ if (!(device->available_nodes & (1 << DRM_NODE_PRIMARY | 1 << DRM_NODE_RENDER))) ++ continue; ++ ++ if (String::fromUTF8(device->nodes[DRM_NODE_PRIMARY]) == primaryDeviceFile) { ++ renderNodeDeviceFile = String::fromUTF8(device->nodes[DRM_NODE_RENDER]); ++ break; ++ } ++ } ++ drmFreeDevices(devices, numDevices); ++ ++ return renderNodeDeviceFile; ++} ++ ++const String& PlatformDisplay::drmRenderNodeFile() ++{ ++ if (!m_drmRenderNodeFile.has_value()) { ++ if (EGLDeviceEXT device = eglDevice()) { ++ if (GLContext::isExtensionSupported(eglQueryDeviceStringEXT(device, EGL_EXTENSIONS), "EGL_EXT_device_drm_render_node")) { ++ m_drmRenderNodeFile = String::fromUTF8(eglQueryDeviceStringEXT(device, EGL_DRM_RENDER_NODE_FILE_EXT)); ++ return m_drmRenderNodeFile.value(); ++ } ++ ++ // If EGL_EXT_device_drm_render_node is not present, try to get the render node using DRM API. ++ m_drmRenderNodeFile = drmRenderNodeFromPrimaryDeviceFile(drmDeviceFile()); ++ } else ++ m_drmRenderNodeFile = String(); ++ } ++ ++ return m_drmRenderNodeFile.value(); ++} ++ ++struct gbm_device* PlatformDisplay::gbmDevice() ++{ ++ if (!m_gbm.device.has_value()) { ++ const char* envDeviceFile = getenv("WEBKIT_WEB_RENDER_DEVICE_FILE"); ++ String deviceFile = envDeviceFile && *envDeviceFile ? String::fromUTF8(envDeviceFile) : drmRenderNodeFile(); ++ if (!deviceFile.isEmpty()) { ++ m_gbm.deviceFD = UnixFileDescriptor { open(deviceFile.utf8().data(), O_RDWR | O_CLOEXEC), UnixFileDescriptor::Adopt }; ++ if (m_gbm.deviceFD) { ++ m_gbm.device = gbm_create_device(m_gbm.deviceFD.value()); ++ if (m_gbm.device.value()) ++ return m_gbm.device.value(); ++ ++ WTFLogAlways("Failed to create GBM device for render device: %s: %s", deviceFile.utf8().data(), safeStrerror(errno).data()); ++ m_gbm.deviceFD = { }; ++ } else ++ WTFLogAlways("Failed to open DRM render device %s: %s", deviceFile.utf8().data(), safeStrerror(errno).data()); ++ } ++ m_gbm.device = nullptr; ++ } ++ ++ return m_gbm.device.value(); ++} ++#endif ++ + #endif // USE(EGL) + + #if USE(LCMS) +diff --git a/Source/WebCore/platform/graphics/PlatformDisplay.h b/Source/WebCore/platform/graphics/PlatformDisplay.h +index 28b5e9dfbfda..db3a51de0512 100644 +--- a/Source/WebCore/platform/graphics/PlatformDisplay.h ++++ b/Source/WebCore/platform/graphics/PlatformDisplay.h +@@ -36,6 +36,11 @@ typedef void *EGLContext; + typedef void *EGLDisplay; + typedef void *EGLImage; + typedef unsigned EGLenum; ++#if USE(GBM) ++#include ++typedef void *EGLDeviceEXT; ++struct gbm_device; ++#endif + #endif + + #if PLATFORM(GTK) +@@ -80,7 +85,10 @@ class PlatformDisplay { + WPE, + #endif + #if USE(EGL) +- Headless, ++ Surfaceless, ++#if USE(GBM) ++ GBM, ++#endif + #endif + }; + +@@ -105,6 +113,11 @@ class PlatformDisplay { + + EGLImage createEGLImage(EGLContext, EGLenum target, EGLClientBuffer, const Vector&) const; + bool destroyEGLImage(EGLImage) const; ++#if USE(GBM) ++ const String& drmDeviceFile(); ++ const String& drmRenderNodeFile(); ++ struct gbm_device* gbmDevice(); ++#endif + #endif + + #if ENABLE(VIDEO) && USE(GSTREAMER_GL) +@@ -138,10 +151,16 @@ class PlatformDisplay { + virtual void initializeEGLDisplay(); + + EGLDisplay m_eglDisplay; +-#endif +- +-#if USE(EGL) + std::unique_ptr m_sharingGLContext; ++ ++#if USE(GBM) ++ std::optional m_drmDeviceFile; ++ std::optional m_drmRenderNodeFile; ++ struct { ++ WTF::UnixFileDescriptor deviceFD; ++ std::optional device; ++ } m_gbm; ++#endif + #endif + + #if USE(LCMS) +@@ -159,6 +178,9 @@ class PlatformDisplay { + + #if USE(EGL) + void terminateEGLDisplay(); ++#if USE(GBM) ++ EGLDeviceEXT eglDevice(); ++#endif + + bool m_eglDisplayInitialized { false }; + int m_eglMajorVersion { 0 }; +diff --git a/Source/WebCore/platform/graphics/egl/GLContext.cpp b/Source/WebCore/platform/graphics/egl/GLContext.cpp +index 35b29618a291..9ce78bd920e7 100644 +--- a/Source/WebCore/platform/graphics/egl/GLContext.cpp ++++ b/Source/WebCore/platform/graphics/egl/GLContext.cpp +@@ -146,7 +146,7 @@ bool GLContext::getEGLConfig(PlatformDisplay& platformDisplay, EGLConfig* config + + switch (surfaceType) { + case GLContext::Surfaceless: +- if (platformDisplay.type() == PlatformDisplay::Type::Headless) ++ if (platformDisplay.type() == PlatformDisplay::Type::Surfaceless) + attributeList[13] = EGL_PBUFFER_BIT; + else + attributeList[13] = EGL_WINDOW_BIT; +@@ -270,7 +270,10 @@ std::unique_ptr GLContext::createWindowContext(GLNativeWindowType win + surface = createWindowSurfaceWPE(display, config, window); + break; + #endif // USE(WPE_RENDERER) +- case PlatformDisplay::Type::Headless: ++#if USE(GBM) ++ case PlatformDisplay::Type::GBM: ++#endif ++ case PlatformDisplay::Type::Surfaceless: + RELEASE_ASSERT_NOT_REACHED(); + } + +@@ -359,7 +362,7 @@ std::unique_ptr GLContext::create(GLNativeWindowType window, Platform + } + + EGLContext eglSharingContext = platformDisplay.sharingGLContext() ? static_cast(platformDisplay.sharingGLContext())->m_context : EGL_NO_CONTEXT; +- if (platformDisplay.type() == PlatformDisplay::Type::Headless) { ++ if (platformDisplay.type() == PlatformDisplay::Type::Surfaceless) { + auto context = createSurfacelessContext(platformDisplay, eglSharingContext); + if (!context) + WTFLogAlways("Could not create EGL surfaceless context: %s.", lastErrorString()); +@@ -386,7 +389,10 @@ std::unique_ptr GLContext::create(GLNativeWindowType window, Platform + context = createWPEContext(platformDisplay, eglSharingContext); + break; + #endif +- case PlatformDisplay::Type::Headless: ++#if USE(GBM) ++ case PlatformDisplay::Type::GBM: ++#endif ++ case PlatformDisplay::Type::Surfaceless: + RELEASE_ASSERT_NOT_REACHED(); + } + } +@@ -443,7 +449,10 @@ std::unique_ptr GLContext::createSharing(PlatformDisplay& platformDis + context = createWPEContext(platformDisplay); + break; + #endif +- case PlatformDisplay::Type::Headless: ++#if USE(GBM) ++ case PlatformDisplay::Type::GBM: ++#endif ++ case PlatformDisplay::Type::Surfaceless: + break; + } + } +diff --git a/Source/WebCore/platform/graphics/egl/PlatformDisplayHeadless.cpp b/Source/WebCore/platform/graphics/egl/PlatformDisplaySurfaceless.cpp +similarity index 86% +rename from Source/WebCore/platform/graphics/egl/PlatformDisplayHeadless.cpp +rename to Source/WebCore/platform/graphics/egl/PlatformDisplaySurfaceless.cpp +index 62ca6526c82c..bc2af43534da 100644 +--- a/Source/WebCore/platform/graphics/egl/PlatformDisplayHeadless.cpp ++++ b/Source/WebCore/platform/graphics/egl/PlatformDisplaySurfaceless.cpp +@@ -24,7 +24,7 @@ + */ + + #include "config.h" +-#include "PlatformDisplayHeadless.h" ++#include "PlatformDisplaySurfaceless.h" + + #if USE(EGL) + #include "GLContext.h" +@@ -32,12 +32,12 @@ + + namespace WebCore { + +-std::unique_ptr PlatformDisplayHeadless::create() ++std::unique_ptr PlatformDisplaySurfaceless::create() + { +- return std::unique_ptr(new PlatformDisplayHeadless()); ++ return std::unique_ptr(new PlatformDisplaySurfaceless()); + } + +-PlatformDisplayHeadless::PlatformDisplayHeadless() ++PlatformDisplaySurfaceless::PlatformDisplaySurfaceless() + { + #if PLATFORM(GTK) + PlatformDisplay::setSharedDisplayForCompositing(*this); +@@ -52,7 +52,7 @@ PlatformDisplayHeadless::PlatformDisplayHeadless() + PlatformDisplay::initializeEGLDisplay(); + } + +-PlatformDisplayHeadless::~PlatformDisplayHeadless() ++PlatformDisplaySurfaceless::~PlatformDisplaySurfaceless() + { + } + +diff --git a/Source/WebCore/platform/graphics/egl/PlatformDisplayHeadless.h b/Source/WebCore/platform/graphics/egl/PlatformDisplaySurfaceless.h +similarity index 83% +rename from Source/WebCore/platform/graphics/egl/PlatformDisplayHeadless.h +rename to Source/WebCore/platform/graphics/egl/PlatformDisplaySurfaceless.h +index 189dd71fc92f..920fb252c026 100644 +--- a/Source/WebCore/platform/graphics/egl/PlatformDisplayHeadless.h ++++ b/Source/WebCore/platform/graphics/egl/PlatformDisplaySurfaceless.h +@@ -30,15 +30,15 @@ + + namespace WebCore { + +-class PlatformDisplayHeadless final : public PlatformDisplay { ++class PlatformDisplaySurfaceless final : public PlatformDisplay { + public: +- static std::unique_ptr create(); ++ static std::unique_ptr create(); + +- virtual ~PlatformDisplayHeadless(); ++ virtual ~PlatformDisplaySurfaceless(); + private: +- PlatformDisplayHeadless(); ++ PlatformDisplaySurfaceless(); + +- Type type() const override { return PlatformDisplay::Type::Headless; } ++ Type type() const override { return PlatformDisplay::Type::Surfaceless; } + }; + + } // namespace WebCore +diff --git a/Source/WebCore/platform/graphics/gbm/PlatformDisplayGBM.cpp b/Source/WebCore/platform/graphics/gbm/PlatformDisplayGBM.cpp +new file mode 100644 +index 000000000000..8bccfa61d057 +--- /dev/null ++++ b/Source/WebCore/platform/graphics/gbm/PlatformDisplayGBM.cpp +@@ -0,0 +1,81 @@ ++/* ++ * Copyright (C) 2023 Igalia S.L. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY ++ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR ++ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR ++ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, ++ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, ++ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR ++ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY ++ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ++ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++ ++#include "config.h" ++#include "PlatformDisplayGBM.h" ++ ++#if USE(EGL) && USE(GBM) ++#include "GLContext.h" ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++namespace WebCore { ++ ++std::unique_ptr PlatformDisplayGBM::create(const String& deviceFile) ++{ ++ auto fd = UnixFileDescriptor { open(deviceFile.utf8().data(), O_RDWR | O_CLOEXEC), UnixFileDescriptor::Adopt }; ++ if (!fd) { ++ WTFLogAlways("Failed to open DRM render device %s: %s", deviceFile.utf8().data(), safeStrerror(errno).data()); ++ return nullptr; ++ } ++ ++ auto* device = gbm_create_device(fd.value()); ++ if (!device) { ++ WTFLogAlways("Failed to create GBM device for render device: %s: %s", deviceFile.utf8().data(), safeStrerror(errno).data()); ++ return nullptr; ++ } ++ ++ return std::unique_ptr(new PlatformDisplayGBM(WTFMove(fd), device)); ++} ++ ++PlatformDisplayGBM::PlatformDisplayGBM(UnixFileDescriptor&& fd, struct gbm_device* device) ++{ ++#if PLATFORM(GTK) ++ PlatformDisplay::setSharedDisplayForCompositing(*this); ++#endif ++ ++ m_gbm = { WTFMove(fd), device }; ++ ++ const char* extensions = eglQueryString(nullptr, EGL_EXTENSIONS); ++ if (GLContext::isExtensionSupported(extensions, "EGL_EXT_platform_base")) ++ m_eglDisplay = eglGetPlatformDisplayEXT(EGL_PLATFORM_GBM_KHR, m_gbm.device.value(), nullptr); ++ else if (GLContext::isExtensionSupported(extensions, "EGL_KHR_platform_base")) ++ m_eglDisplay = eglGetPlatformDisplay(EGL_PLATFORM_GBM_KHR, m_gbm.device.value(), nullptr); ++ ++ PlatformDisplay::initializeEGLDisplay(); ++} ++ ++PlatformDisplayGBM::~PlatformDisplayGBM() ++{ ++} ++ ++} // namespace WebCore ++ ++#endif // USE(EGL) && USE(GBM) +diff --git a/Source/WebCore/platform/graphics/gbm/PlatformDisplayGBM.h b/Source/WebCore/platform/graphics/gbm/PlatformDisplayGBM.h +new file mode 100644 +index 000000000000..e0a0049f4c6b +--- /dev/null ++++ b/Source/WebCore/platform/graphics/gbm/PlatformDisplayGBM.h +@@ -0,0 +1,46 @@ ++/* ++ * Copyright (C) 2023 Igalia S.L. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY ++ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR ++ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR ++ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, ++ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, ++ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR ++ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY ++ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ++ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++ ++#pragma once ++ ++#if USE(EGL) && USE(GBM) ++#include "PlatformDisplay.h" ++ ++namespace WebCore { ++ ++class PlatformDisplayGBM final : public PlatformDisplay { ++public: ++ static std::unique_ptr create(const String&); ++ ++ virtual ~PlatformDisplayGBM(); ++private: ++ PlatformDisplayGBM(UnixFileDescriptor&&, struct gbm_device*); ++ ++ Type type() const override { return PlatformDisplay::Type::GBM; } ++}; ++ ++} // namespace WebCore ++ ++#endif // USE(EGL) && USE(GBM) +diff --git a/Source/WebKit/Shared/WebProcessCreationParameters.cpp b/Source/WebKit/Shared/WebProcessCreationParameters.cpp +index 36c4a3a77906..aea41beabf8e 100644 +--- a/Source/WebKit/Shared/WebProcessCreationParameters.cpp ++++ b/Source/WebKit/Shared/WebProcessCreationParameters.cpp +@@ -188,6 +188,7 @@ void WebProcessCreationParameters::encode(IPC::Encoder& encoder) const + + #if PLATFORM(GTK) + encoder << useDMABufSurfaceForCompositing; ++ encoder << renderDeviceFile; + encoder << useSystemAppearanceForScrollbars; + encoder << gtkSettings; + #endif +@@ -526,6 +527,11 @@ bool WebProcessCreationParameters::decode(IPC::Decoder& decoder, WebProcessCreat + if (!useDMABufSurfaceForCompositing) + return false; + parameters.useDMABufSurfaceForCompositing = WTFMove(*useDMABufSurfaceForCompositing); ++ std::optional renderDeviceFile; ++ decoder >> renderDeviceFile; ++ if (!renderDeviceFile) ++ return false; ++ parameters.renderDeviceFile = WTFMove(*renderDeviceFile); + std::optional useSystemAppearanceForScrollbars; + decoder >> useSystemAppearanceForScrollbars; + if (!useSystemAppearanceForScrollbars) +diff --git a/Source/WebKit/Shared/WebProcessCreationParameters.h b/Source/WebKit/Shared/WebProcessCreationParameters.h +index b3d9560fba26..a8d59c1bcb8f 100644 +--- a/Source/WebKit/Shared/WebProcessCreationParameters.h ++++ b/Source/WebKit/Shared/WebProcessCreationParameters.h +@@ -229,6 +229,7 @@ struct WebProcessCreationParameters { + + #if PLATFORM(GTK) + bool useDMABufSurfaceForCompositing { false }; ++ String renderDeviceFile; + bool useSystemAppearanceForScrollbars { false }; + GtkSettingsState gtkSettings; + #endif +diff --git a/Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp b/Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp +index b629cc6536bf..0750e0b544c9 100644 +--- a/Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp ++++ b/Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp +@@ -58,9 +58,6 @@ + + #if USE(GBM) + #include "AcceleratedBackingStoreDMABuf.h" +-#ifndef EGL_DRM_RENDER_NODE_FILE_EXT +-#define EGL_DRM_RENDER_NODE_FILE_EXT 0x3377 +-#endif + #endif + + #if PLATFORM(X11) +@@ -281,22 +278,13 @@ void WebKitProtocolHandler::handleGPU(WebKitURISchemeRequest* request) + addTableRow(hardwareAccelerationObject, "GL_VERSION"_s, makeString(reinterpret_cast(glGetString(GL_VERSION)))); + addTableRow(hardwareAccelerationObject, "GL_SHADING_LANGUAGE_VERSION"_s, makeString(reinterpret_cast(glGetString(GL_SHADING_LANGUAGE_VERSION)))); + +- auto eglDisplay = PlatformDisplay::sharedDisplay().eglDisplay(); + #if USE(GBM) +- if (GLContext::isExtensionSupported(eglQueryString(nullptr, EGL_EXTENSIONS), "EGL_EXT_device_query")) { +- EGLDeviceEXT eglDevice; +- if (eglQueryDisplayAttribEXT(eglDisplay, EGL_DEVICE_EXT, reinterpret_cast(&eglDevice))) { +- const char* deviceExtensions = eglQueryDeviceStringEXT(eglDevice, EGL_EXTENSIONS); +- if (GLContext::isExtensionSupported(deviceExtensions, "EGL_EXT_device_drm")) { +- if (const char* deviceFile = eglQueryDeviceStringEXT(eglDevice, EGL_DRM_DEVICE_FILE_EXT)) +- addTableRow(hardwareAccelerationObject, "DRM Device"_s, makeString(deviceFile)); +- } +- if (GLContext::isExtensionSupported(deviceExtensions, "EGL_EXT_device_drm_render_node")) { +- if (const char* renderNode = eglQueryDeviceStringEXT(eglDevice, EGL_DRM_RENDER_NODE_FILE_EXT)) +- addTableRow(hardwareAccelerationObject, "DRM Render Node"_s, makeString(renderNode)); +- } +- } +- } ++ auto deviceFile = PlatformDisplay::sharedDisplay().drmDeviceFile(); ++ if (!deviceFile.isEmpty()) ++ addTableRow(hardwareAccelerationObject, "DRM Device"_s, deviceFile); ++ auto renderNode = PlatformDisplay::sharedDisplay().drmRenderNodeFile(); ++ if (!renderNode.isEmpty()) ++ addTableRow(hardwareAccelerationObject, "DRM Render Node"_s, renderNode); + #endif + + #if USE(OPENGL_ES) +@@ -313,6 +301,7 @@ void WebKitProtocolHandler::handleGPU(WebKitURISchemeRequest* request) + addTableRow(hardwareAccelerationObject, "GL_EXTENSIONS"_s, extensionsBuilder.toString()); + #endif + ++ auto eglDisplay = PlatformDisplay::sharedDisplay().eglDisplay(); + addTableRow(hardwareAccelerationObject, "EGL_VERSION"_s, makeString(eglQueryString(eglDisplay, EGL_VERSION))); + addTableRow(hardwareAccelerationObject, "EGL_VENDOR"_s, makeString(eglQueryString(eglDisplay, EGL_VENDOR))); + addTableRow(hardwareAccelerationObject, "EGL_EXTENSIONS"_s, makeString(eglQueryString(nullptr, EGL_EXTENSIONS), ' ', eglQueryString(eglDisplay, EGL_EXTENSIONS))); +diff --git a/Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp b/Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp +index 82feb4b26719..5abe94e29ad4 100644 +--- a/Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp ++++ b/Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp +@@ -87,8 +87,10 @@ void WebProcessPool::platformInitializeWebProcess(const WebProcessProxy& process + #endif + + #if PLATFORM(GTK) && USE(GBM) +- if (AcceleratedBackingStoreDMABuf::checkRequirements()) ++ if (AcceleratedBackingStoreDMABuf::checkRequirements()) { + parameters.useDMABufSurfaceForCompositing = true; ++ parameters.renderDeviceFile = WebCore::PlatformDisplay::sharedDisplay().drmRenderNodeFile(); ++ } + #endif + + #if PLATFORM(WAYLAND) +diff --git a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp +index 3ed329cc9a86..bbdc911b0de2 100644 +--- a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp ++++ b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp +@@ -33,7 +33,6 @@ + #include "WebPageProxy.h" + #include "WebProcessProxy.h" + #include +-#include + #include + #include + #include +@@ -219,7 +218,12 @@ void AcceleratedBackingStoreDMABuf::Texture::paint(GtkWidget* widget, cairo_t* c + AcceleratedBackingStoreDMABuf::Surface::Surface(const UnixFileDescriptor& backFD, const UnixFileDescriptor& frontFD, const WebCore::IntSize& size, uint32_t format, uint32_t offset, uint32_t stride, float deviceScaleFactor) + : RenderSource(size, deviceScaleFactor) + { +- auto* device = WebCore::GBMDevice::singleton().device(); ++ auto* device = WebCore::PlatformDisplay::sharedDisplay().gbmDevice(); ++ if (!device) { ++ WTFLogAlways("Failed to get GBM device"); ++ return; ++ } ++ + struct gbm_import_fd_data fdData = { backFD.value(), static_cast(m_size.width()), static_cast(m_size.height()), stride, format }; + m_backBuffer = gbm_bo_import(device, GBM_BO_IMPORT_FD, &fdData, GBM_BO_USE_RENDERING); + if (!m_backBuffer) { +diff --git a/Source/WebKit/WebProcess/WebPage/AcceleratedSurface.cpp b/Source/WebKit/WebProcess/WebPage/AcceleratedSurface.cpp +index 27f65723f70a..09cb12bb800f 100644 +--- a/Source/WebKit/WebProcess/WebPage/AcceleratedSurface.cpp ++++ b/Source/WebKit/WebProcess/WebPage/AcceleratedSurface.cpp +@@ -47,7 +47,8 @@ using namespace WebCore; + std::unique_ptr AcceleratedSurface::create(WebPage& webPage, Client& client) + { + #if USE(GBM) +- if (PlatformDisplay::sharedDisplayForCompositing().type() == PlatformDisplay::Type::Headless) ++ if (PlatformDisplay::sharedDisplayForCompositing().type() == PlatformDisplay::Type::GBM ++ || PlatformDisplay::sharedDisplayForCompositing().type() == PlatformDisplay::Type::Surfaceless) + return AcceleratedSurfaceDMABuf::create(webPage, client); + #endif + #if PLATFORM(WAYLAND) +diff --git a/Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceDMABuf.cpp b/Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceDMABuf.cpp +index 14a8631f3ed6..0300ea0b4436 100644 +--- a/Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceDMABuf.cpp ++++ b/Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceDMABuf.cpp +@@ -32,7 +32,6 @@ + #include "WebPage.h" + #include "WebProcess.h" + #include +-#include + #include + #include + #include +@@ -48,7 +47,7 @@ std::unique_ptr AcceleratedSurfaceDMABuf::create(WebPa + + AcceleratedSurfaceDMABuf::AcceleratedSurfaceDMABuf(WebPage& webPage, Client& client) + : AcceleratedSurface(webPage, client) +- , m_isSoftwareRast(!WebCore::PlatformDisplay::sharedDisplayForCompositing().eglExtensions().EXT_image_dma_buf_import) ++ , m_isSoftwareRast(WebCore::PlatformDisplay::sharedDisplayForCompositing().type() == WebCore::PlatformDisplay::Type::Surfaceless) + { + } + +@@ -101,7 +100,12 @@ std::unique_ptr AcceleratedSurfaceDMABuf + + auto& display = WebCore::PlatformDisplay::sharedDisplayForCompositing(); + auto createImage = [&]() -> std::pair { +- auto* bo = gbm_bo_create(WebCore::GBMDevice::singleton().device(), size.width(), size.height(), uint32_t(WebCore::DMABufFormat::FourCC::ARGB8888), 0); ++ auto* device = display.gbmDevice(); ++ if (!device) { ++ WTFLogAlways("Failed to create GBM buffer of size %dx%d: no GBM device found", size.width(), size.height()); ++ return { }; ++ } ++ auto* bo = gbm_bo_create(device, size.width(), size.height(), uint32_t(WebCore::DMABufFormat::FourCC::ARGB8888), 0); + if (!bo) { + WTFLogAlways("Failed to create GBM buffer of size %dx%d: %s", size.width(), size.height(), safeStrerror(errno).data()); + return { }; +diff --git a/Source/WebKit/WebProcess/glib/WebProcessGLib.cpp b/Source/WebKit/WebProcess/glib/WebProcessGLib.cpp +index 0b6108e29669..8a31082be1e5 100644 +--- a/Source/WebKit/WebProcess/glib/WebProcessGLib.cpp ++++ b/Source/WebKit/WebProcess/glib/WebProcessGLib.cpp +@@ -48,8 +48,9 @@ + #include + #endif + +-#if PLATFORM(GTK) && USE(EGL) +-#include ++#if PLATFORM(GTK) && USE(GBM) ++#include ++#include + #endif + + #if PLATFORM(GTK) && !USE(GTK4) +@@ -123,9 +124,13 @@ void WebProcess::platformInitializeWebProcess(WebProcessCreationParameters& para + } + #endif + +-#if PLATFORM(GTK) && USE(EGL) +- if (parameters.useDMABufSurfaceForCompositing) +- m_displayForCompositing = WebCore::PlatformDisplayHeadless::create(); ++#if PLATFORM(GTK) && USE(GBM) ++ if (parameters.useDMABufSurfaceForCompositing) { ++ if (!parameters.renderDeviceFile.isEmpty()) ++ m_displayForCompositing = WebCore::PlatformDisplayGBM::create(parameters.renderDeviceFile); ++ else ++ m_displayForCompositing = WebCore::PlatformDisplaySurfaceless::create(); ++ } + #endif + + #if PLATFORM(WAYLAND) diff --git a/webkitgtk.spec b/webkitgtk.spec index 78f69b3..1c5fd02 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -35,6 +35,10 @@ Patch0: build.patch # https://github.com/WebKit/WebKit/pull/12806 Patch1: text-extents.patch +# https://github.com/WebKit/WebKit/pull/12736 +# https://github.com/WebKit/WebKit/pull/12791 +Patch2: fix-multi-gpus.patch + BuildRequires: bison BuildRequires: bubblewrap BuildRequires: cmake From c88765bc1c0905bfab982a7fe1bcdb1d15d136b2 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Fri, 21 Apr 2023 09:38:04 -0500 Subject: [PATCH 074/200] Upgrade to 2.41.3 --- .gitignore | 1 + build.patch | 18 - fix-multi-gpus.patch | 871 ------------------------------------------- font-crashes.patch | 51 +++ sources | 4 +- text-extents.patch | 49 --- webkitgtk.spec | 13 +- 7 files changed, 57 insertions(+), 950 deletions(-) delete mode 100644 build.patch delete mode 100644 fix-multi-gpus.patch create mode 100644 font-crashes.patch delete mode 100644 text-extents.patch diff --git a/.gitignore b/.gitignore index bfad5c7..fb12149 100644 --- a/.gitignore +++ b/.gitignore @@ -17,3 +17,4 @@ /webkitgtk-2.40.0.tar.xz.asc /webkitgtk-2.41.1.tar.xz.asc /webkitgtk-2.41.2.tar.xz.asc +/webkitgtk-2.41.3.tar.xz.asc diff --git a/build.patch b/build.patch deleted file mode 100644 index 89dbb04..0000000 --- a/build.patch +++ /dev/null @@ -1,18 +0,0 @@ -diff --git a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp -index c0640f19156a..3ed329cc9a86 100644 ---- a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp -+++ b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp -@@ -121,10 +121,10 @@ AcceleratedBackingStoreDMABuf::Texture::Texture(GdkGLContext* glContext, const U - Vector attributes = { - EGL_WIDTH, m_size.width(), - EGL_HEIGHT, m_size.height(), -- EGL_LINUX_DRM_FOURCC_EXT, format, -+ EGL_LINUX_DRM_FOURCC_EXT, static_cast(format), - EGL_DMA_BUF_PLANE0_FD_EXT, fd.value(), -- EGL_DMA_BUF_PLANE0_OFFSET_EXT, offset, -- EGL_DMA_BUF_PLANE0_PITCH_EXT, stride, -+ EGL_DMA_BUF_PLANE0_OFFSET_EXT, static_cast(offset), -+ EGL_DMA_BUF_PLANE0_PITCH_EXT, static_cast(stride), - }; - if (modifier != uint64_t(WebCore::DMABufFormat::Modifier::Invalid) && display.eglExtensions().EXT_image_dma_buf_import_modifiers) { - std::array modifierAttributes { diff --git a/fix-multi-gpus.patch b/fix-multi-gpus.patch deleted file mode 100644 index fb8dbbd..0000000 --- a/fix-multi-gpus.patch +++ /dev/null @@ -1,871 +0,0 @@ -From b835f528fa750ecddf79de8a9aea3900a0d169c8 Mon Sep 17 00:00:00 2001 -From: Carlos Garcia Campos -Date: Fri, 14 Apr 2023 06:08:42 -0700 -Subject: [PATCH] [GTK][WPE] Show DRM device and render node files when - available in webkit://gpu https://bugs.webkit.org/show_bug.cgi?id=255445 - -Reviewed by Adrian Perez de Castro. - -* Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp: -(WebKit::WebKitProtocolHandler::handleGPU): - -Canonical link: https://commits.webkit.org/262958@main ---- - .../API/glib/WebKitProtocolHandler.cpp | 22 ++++++++++++++++++- - 1 file changed, 21 insertions(+), 1 deletion(-) - -diff --git a/Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp b/Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp -index 167cb28bf97a..b629cc6536bf 100644 ---- a/Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp -+++ b/Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp -@@ -58,6 +58,9 @@ - - #if USE(GBM) - #include "AcceleratedBackingStoreDMABuf.h" -+#ifndef EGL_DRM_RENDER_NODE_FILE_EXT -+#define EGL_DRM_RENDER_NODE_FILE_EXT 0x3377 -+#endif - #endif - - #if PLATFORM(X11) -@@ -278,6 +281,24 @@ void WebKitProtocolHandler::handleGPU(WebKitURISchemeRequest* request) - addTableRow(hardwareAccelerationObject, "GL_VERSION"_s, makeString(reinterpret_cast(glGetString(GL_VERSION)))); - addTableRow(hardwareAccelerationObject, "GL_SHADING_LANGUAGE_VERSION"_s, makeString(reinterpret_cast(glGetString(GL_SHADING_LANGUAGE_VERSION)))); - -+ auto eglDisplay = PlatformDisplay::sharedDisplay().eglDisplay(); -+#if USE(GBM) -+ if (GLContext::isExtensionSupported(eglQueryString(nullptr, EGL_EXTENSIONS), "EGL_EXT_device_query")) { -+ EGLDeviceEXT eglDevice; -+ if (eglQueryDisplayAttribEXT(eglDisplay, EGL_DEVICE_EXT, reinterpret_cast(&eglDevice))) { -+ const char* deviceExtensions = eglQueryDeviceStringEXT(eglDevice, EGL_EXTENSIONS); -+ if (GLContext::isExtensionSupported(deviceExtensions, "EGL_EXT_device_drm")) { -+ if (const char* deviceFile = eglQueryDeviceStringEXT(eglDevice, EGL_DRM_DEVICE_FILE_EXT)) -+ addTableRow(hardwareAccelerationObject, "DRM Device"_s, makeString(deviceFile)); -+ } -+ if (GLContext::isExtensionSupported(deviceExtensions, "EGL_EXT_device_drm_render_node")) { -+ if (const char* renderNode = eglQueryDeviceStringEXT(eglDevice, EGL_DRM_RENDER_NODE_FILE_EXT)) -+ addTableRow(hardwareAccelerationObject, "DRM Render Node"_s, makeString(renderNode)); -+ } -+ } -+ } -+#endif -+ - #if USE(OPENGL_ES) - addTableRow(hardwareAccelerationObject, "GL_EXTENSIONS"_s, makeString(reinterpret_cast(glGetString(GL_EXTENSIONS)))); - #else -@@ -292,7 +313,6 @@ void WebKitProtocolHandler::handleGPU(WebKitURISchemeRequest* request) - addTableRow(hardwareAccelerationObject, "GL_EXTENSIONS"_s, extensionsBuilder.toString()); - #endif - -- auto eglDisplay = PlatformDisplay::sharedDisplay().eglDisplay(); - addTableRow(hardwareAccelerationObject, "EGL_VERSION"_s, makeString(eglQueryString(eglDisplay, EGL_VERSION))); - addTableRow(hardwareAccelerationObject, "EGL_VENDOR"_s, makeString(eglQueryString(eglDisplay, EGL_VENDOR))); - addTableRow(hardwareAccelerationObject, "EGL_EXTENSIONS"_s, makeString(eglQueryString(nullptr, EGL_EXTENSIONS), ' ', eglQueryString(eglDisplay, EGL_EXTENSIONS))); - -From d67f30551d7cbf5ec8bdd6d7fed92862db326110 Mon Sep 17 00:00:00 2001 -From: Carlos Garcia Campos -Date: Mon, 17 Apr 2023 13:17:54 +0200 -Subject: [PATCH] [GTK] Minibrowser does not render any content - https://bugs.webkit.org/show_bug.cgi?id=254807 - -Reviewed by NOBODY (OOPS!). - -This happens in systems with multiple GPUs enabled. The problem is that -we might end up using a different GPU than the one used by the -application in the UI process. This is because both GBMDevice and mesa -surfaceless platform use always the first device having a render node -returned by drmGetDevices2(). To make sure we use the right GPU -everywhere we need to get the GPU in used by the UI process and send it -to the web process. Mesa surfaceless platform doesn't allow to chang the -device, so we need to use GBM platform that receives the device as the -native display when initializing the EGL display. Surfaceless platform -is still used for swrast, because GBM requires a GPU device. - -* Source/WebCore/PlatformGTK.cmake: -* Source/WebCore/SourcesGTK.txt: -* Source/WebCore/platform/graphics/PlatformDisplay.cpp: -(WebCore::PlatformDisplay::~PlatformDisplay): -(WebCore::PlatformDisplay::eglDevice): -(WebCore::PlatformDisplay::drmDeviceFile): -(WebCore::drmRenderNodeFromPrimaryDeviceFile): -(WebCore::PlatformDisplay::drmRenderNodeFile): -(WebCore::PlatformDisplay::gbmDevice): -* Source/WebCore/platform/graphics/PlatformDisplay.h: -* Source/WebCore/platform/graphics/egl/GLContext.cpp: -(WebCore::GLContext::getEGLConfig): -(WebCore::GLContext::createWindowContext): -(WebCore::GLContext::create): -(WebCore::GLContext::createSharing): -* Source/WebCore/platform/graphics/egl/PlatformDisplaySurfaceless.cpp: Renamed from Source/WebCore/platform/graphics/egl/PlatformDisplayHeadless.cpp. -* Source/WebCore/platform/graphics/egl/PlatformDisplaySurfaceless.h: Renamed from Source/WebCore/platform/graphics/egl/PlatformDisplayHeadless.h. -* Source/WebCore/platform/graphics/gbm/PlatformDisplayGBM.cpp: Added. -(WebCore::PlatformDisplayGBM::create): -(WebCore::PlatformDisplayGBM::PlatformDisplayGBM): -(WebCore::PlatformDisplayGBM::~PlatformDisplayGBM): -* Source/WebCore/platform/graphics/gbm/PlatformDisplayGBM.h: Added. -* Source/WebKit/Shared/WebProcessCreationParameters.cpp: -(WebKit::WebProcessCreationParameters::encode const): -(WebKit::WebProcessCreationParameters::decode): -* Source/WebKit/Shared/WebProcessCreationParameters.h: -* Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp: -(WebKit::WebKitProtocolHandler::handleGPU): -* Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp: -(WebKit::WebProcessPool::platformInitializeWebProcess): -* Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp: -(WebKit::AcceleratedBackingStoreDMABuf::Surface::Surface): -* Source/WebKit/WebProcess/WebPage/AcceleratedSurface.cpp: -(WebKit::AcceleratedSurface::create): -* Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceDMABuf.cpp: -(WebKit::AcceleratedSurfaceDMABuf::AcceleratedSurfaceDMABuf): -(WebKit::AcceleratedSurfaceDMABuf::RenderTargetEGLImage::create): -* Source/WebKit/WebProcess/glib/WebProcessGLib.cpp: -(WebKit::WebProcess::platformInitializeWebProcess): ---- - Source/WebCore/PlatformGTK.cmake | 4 +- - Source/WebCore/SourcesGTK.txt | 3 +- - .../platform/graphics/PlatformDisplay.cpp | 117 ++++++++++++++++++ - .../platform/graphics/PlatformDisplay.h | 30 ++++- - .../platform/graphics/egl/GLContext.cpp | 19 ++- - ...ess.cpp => PlatformDisplaySurfaceless.cpp} | 10 +- - ...eadless.h => PlatformDisplaySurfaceless.h} | 10 +- - .../graphics/gbm/PlatformDisplayGBM.cpp | 81 ++++++++++++ - .../graphics/gbm/PlatformDisplayGBM.h | 46 +++++++ - .../Shared/WebProcessCreationParameters.cpp | 6 + - .../Shared/WebProcessCreationParameters.h | 1 + - .../API/glib/WebKitProtocolHandler.cpp | 25 ++-- - .../UIProcess/glib/WebProcessPoolGLib.cpp | 4 +- - .../gtk/AcceleratedBackingStoreDMABuf.cpp | 8 +- - .../WebProcess/WebPage/AcceleratedSurface.cpp | 3 +- - .../WebPage/gtk/AcceleratedSurfaceDMABuf.cpp | 10 +- - .../WebKit/WebProcess/glib/WebProcessGLib.cpp | 15 ++- - 17 files changed, 341 insertions(+), 51 deletions(-) - rename Source/WebCore/platform/graphics/egl/{PlatformDisplayHeadless.cpp => PlatformDisplaySurfaceless.cpp} (86%) - rename Source/WebCore/platform/graphics/egl/{PlatformDisplayHeadless.h => PlatformDisplaySurfaceless.h} (83%) - create mode 100644 Source/WebCore/platform/graphics/gbm/PlatformDisplayGBM.cpp - create mode 100644 Source/WebCore/platform/graphics/gbm/PlatformDisplayGBM.h - -diff --git a/Source/WebCore/PlatformGTK.cmake b/Source/WebCore/PlatformGTK.cmake -index 27b04aee02d4..76c08982c9b6 100644 ---- a/Source/WebCore/PlatformGTK.cmake -+++ b/Source/WebCore/PlatformGTK.cmake -@@ -47,7 +47,9 @@ list(APPEND WebCore_PRIVATE_FRAMEWORK_HEADERS - - platform/glib/ApplicationGLib.h - -- platform/graphics/egl/PlatformDisplayHeadless.h -+ platform/graphics/egl/PlatformDisplaySurfaceless.h -+ -+ platform/graphics/gbm/PlatformDisplayGBM.h - - platform/graphics/gtk/GdkCairoUtilities.h - -diff --git a/Source/WebCore/SourcesGTK.txt b/Source/WebCore/SourcesGTK.txt -index 2042f2d6a177..58a73bf31a5b 100644 ---- a/Source/WebCore/SourcesGTK.txt -+++ b/Source/WebCore/SourcesGTK.txt -@@ -74,7 +74,7 @@ platform/graphics/egl/GLContext.cpp @no-unify - platform/graphics/egl/GLContextLibWPE.cpp @no-unify - platform/graphics/egl/GLContextWayland.cpp @no-unify - platform/graphics/egl/GLContextX11.cpp @no-unify --platform/graphics/egl/PlatformDisplayHeadless.cpp -+platform/graphics/egl/PlatformDisplaySurfaceless.cpp - - platform/graphics/gbm/GBMBufferSwapchain.cpp - platform/graphics/gbm/GBMDevice.cpp -@@ -82,6 +82,7 @@ platform/graphics/gbm/GraphicsContextGLANGLELinux.cpp - platform/graphics/gbm/GraphicsContextGLFallback.cpp - platform/graphics/gbm/GraphicsContextGLGBM.cpp - platform/graphics/gbm/GraphicsContextGLGBMTextureMapper.cpp -+platform/graphics/gbm/PlatformDisplayGBM.cpp - - platform/graphics/gtk/ColorGtk.cpp - platform/graphics/gtk/DisplayRefreshMonitorGtk.cpp -diff --git a/Source/WebCore/platform/graphics/PlatformDisplay.cpp b/Source/WebCore/platform/graphics/PlatformDisplay.cpp -index e5a48c9c0b52..cdd10a7d1351 100644 ---- a/Source/WebCore/platform/graphics/PlatformDisplay.cpp -+++ b/Source/WebCore/platform/graphics/PlatformDisplay.cpp -@@ -80,6 +80,18 @@ - #include - #endif - -+#if USE(EGL) && USE(GBM) -+#include -+#include -+#include -+#include -+#include -+#include -+#ifndef EGL_DRM_RENDER_NODE_FILE_EXT -+#define EGL_DRM_RENDER_NODE_FILE_EXT 0x3377 -+#endif -+#endif -+ - #if USE(ATSPI) - #include - #endif -@@ -221,6 +233,10 @@ PlatformDisplay::~PlatformDisplay() - #if PLATFORM(GTK) - if (m_sharedDisplay) - g_signal_handlers_disconnect_by_data(m_sharedDisplay.get(), this); -+#endif -+#if USE(EGL) && USE(GBM) -+ if (m_gbm.device.has_value() && m_gbm.device.value()) -+ gbm_device_destroy(m_gbm.device.value()); - #endif - if (s_sharedDisplayForCompositing == this) - s_sharedDisplayForCompositing = nullptr; -@@ -402,6 +418,107 @@ bool PlatformDisplay::destroyEGLImage(EGLImage image) const - #endif - } - -+#if USE(GBM) -+EGLDeviceEXT PlatformDisplay::eglDevice() -+{ -+ if (!GLContext::isExtensionSupported(eglQueryString(nullptr, EGL_EXTENSIONS), "EGL_EXT_device_query")) -+ return nullptr; -+ -+ if (!m_eglDisplayInitialized) -+ const_cast(this)->initializeEGLDisplay(); -+ -+ EGLDeviceEXT eglDevice; -+ if (eglQueryDisplayAttribEXT(m_eglDisplay, EGL_DEVICE_EXT, reinterpret_cast(&eglDevice))) -+ return eglDevice; -+ -+ return nullptr; -+} -+ -+const String& PlatformDisplay::drmDeviceFile() -+{ -+ if (!m_drmDeviceFile.has_value()) { -+ if (EGLDeviceEXT device = eglDevice()) { -+ if (GLContext::isExtensionSupported(eglQueryDeviceStringEXT(device, EGL_EXTENSIONS), "EGL_EXT_device_drm")) { -+ m_drmDeviceFile = String::fromUTF8(eglQueryDeviceStringEXT(device, EGL_DRM_DEVICE_FILE_EXT)); -+ return m_drmDeviceFile.value(); -+ } -+ } -+ m_drmDeviceFile = String(); -+ } -+ -+ return m_drmDeviceFile.value(); -+} -+ -+static String drmRenderNodeFromPrimaryDeviceFile(const String& primaryDeviceFile) -+{ -+ if (primaryDeviceFile.isEmpty()) -+ return { }; -+ -+ drmDevicePtr devices[64]; -+ memset(devices, 0, sizeof(devices)); -+ -+ int numDevices = drmGetDevices2(0, devices, std::size(devices)); -+ if (numDevices <= 0) -+ return { }; -+ -+ String renderNodeDeviceFile; -+ for (int i = 0; i < numDevices; ++i) { -+ drmDevice* device = devices[i]; -+ if (!(device->available_nodes & (1 << DRM_NODE_PRIMARY | 1 << DRM_NODE_RENDER))) -+ continue; -+ -+ if (String::fromUTF8(device->nodes[DRM_NODE_PRIMARY]) == primaryDeviceFile) { -+ renderNodeDeviceFile = String::fromUTF8(device->nodes[DRM_NODE_RENDER]); -+ break; -+ } -+ } -+ drmFreeDevices(devices, numDevices); -+ -+ return renderNodeDeviceFile; -+} -+ -+const String& PlatformDisplay::drmRenderNodeFile() -+{ -+ if (!m_drmRenderNodeFile.has_value()) { -+ if (EGLDeviceEXT device = eglDevice()) { -+ if (GLContext::isExtensionSupported(eglQueryDeviceStringEXT(device, EGL_EXTENSIONS), "EGL_EXT_device_drm_render_node")) { -+ m_drmRenderNodeFile = String::fromUTF8(eglQueryDeviceStringEXT(device, EGL_DRM_RENDER_NODE_FILE_EXT)); -+ return m_drmRenderNodeFile.value(); -+ } -+ -+ // If EGL_EXT_device_drm_render_node is not present, try to get the render node using DRM API. -+ m_drmRenderNodeFile = drmRenderNodeFromPrimaryDeviceFile(drmDeviceFile()); -+ } else -+ m_drmRenderNodeFile = String(); -+ } -+ -+ return m_drmRenderNodeFile.value(); -+} -+ -+struct gbm_device* PlatformDisplay::gbmDevice() -+{ -+ if (!m_gbm.device.has_value()) { -+ const char* envDeviceFile = getenv("WEBKIT_WEB_RENDER_DEVICE_FILE"); -+ String deviceFile = envDeviceFile && *envDeviceFile ? String::fromUTF8(envDeviceFile) : drmRenderNodeFile(); -+ if (!deviceFile.isEmpty()) { -+ m_gbm.deviceFD = UnixFileDescriptor { open(deviceFile.utf8().data(), O_RDWR | O_CLOEXEC), UnixFileDescriptor::Adopt }; -+ if (m_gbm.deviceFD) { -+ m_gbm.device = gbm_create_device(m_gbm.deviceFD.value()); -+ if (m_gbm.device.value()) -+ return m_gbm.device.value(); -+ -+ WTFLogAlways("Failed to create GBM device for render device: %s: %s", deviceFile.utf8().data(), safeStrerror(errno).data()); -+ m_gbm.deviceFD = { }; -+ } else -+ WTFLogAlways("Failed to open DRM render device %s: %s", deviceFile.utf8().data(), safeStrerror(errno).data()); -+ } -+ m_gbm.device = nullptr; -+ } -+ -+ return m_gbm.device.value(); -+} -+#endif -+ - #endif // USE(EGL) - - #if USE(LCMS) -diff --git a/Source/WebCore/platform/graphics/PlatformDisplay.h b/Source/WebCore/platform/graphics/PlatformDisplay.h -index 28b5e9dfbfda..db3a51de0512 100644 ---- a/Source/WebCore/platform/graphics/PlatformDisplay.h -+++ b/Source/WebCore/platform/graphics/PlatformDisplay.h -@@ -36,6 +36,11 @@ typedef void *EGLContext; - typedef void *EGLDisplay; - typedef void *EGLImage; - typedef unsigned EGLenum; -+#if USE(GBM) -+#include -+typedef void *EGLDeviceEXT; -+struct gbm_device; -+#endif - #endif - - #if PLATFORM(GTK) -@@ -80,7 +85,10 @@ class PlatformDisplay { - WPE, - #endif - #if USE(EGL) -- Headless, -+ Surfaceless, -+#if USE(GBM) -+ GBM, -+#endif - #endif - }; - -@@ -105,6 +113,11 @@ class PlatformDisplay { - - EGLImage createEGLImage(EGLContext, EGLenum target, EGLClientBuffer, const Vector&) const; - bool destroyEGLImage(EGLImage) const; -+#if USE(GBM) -+ const String& drmDeviceFile(); -+ const String& drmRenderNodeFile(); -+ struct gbm_device* gbmDevice(); -+#endif - #endif - - #if ENABLE(VIDEO) && USE(GSTREAMER_GL) -@@ -138,10 +151,16 @@ class PlatformDisplay { - virtual void initializeEGLDisplay(); - - EGLDisplay m_eglDisplay; --#endif -- --#if USE(EGL) - std::unique_ptr m_sharingGLContext; -+ -+#if USE(GBM) -+ std::optional m_drmDeviceFile; -+ std::optional m_drmRenderNodeFile; -+ struct { -+ WTF::UnixFileDescriptor deviceFD; -+ std::optional device; -+ } m_gbm; -+#endif - #endif - - #if USE(LCMS) -@@ -159,6 +178,9 @@ class PlatformDisplay { - - #if USE(EGL) - void terminateEGLDisplay(); -+#if USE(GBM) -+ EGLDeviceEXT eglDevice(); -+#endif - - bool m_eglDisplayInitialized { false }; - int m_eglMajorVersion { 0 }; -diff --git a/Source/WebCore/platform/graphics/egl/GLContext.cpp b/Source/WebCore/platform/graphics/egl/GLContext.cpp -index 35b29618a291..9ce78bd920e7 100644 ---- a/Source/WebCore/platform/graphics/egl/GLContext.cpp -+++ b/Source/WebCore/platform/graphics/egl/GLContext.cpp -@@ -146,7 +146,7 @@ bool GLContext::getEGLConfig(PlatformDisplay& platformDisplay, EGLConfig* config - - switch (surfaceType) { - case GLContext::Surfaceless: -- if (platformDisplay.type() == PlatformDisplay::Type::Headless) -+ if (platformDisplay.type() == PlatformDisplay::Type::Surfaceless) - attributeList[13] = EGL_PBUFFER_BIT; - else - attributeList[13] = EGL_WINDOW_BIT; -@@ -270,7 +270,10 @@ std::unique_ptr GLContext::createWindowContext(GLNativeWindowType win - surface = createWindowSurfaceWPE(display, config, window); - break; - #endif // USE(WPE_RENDERER) -- case PlatformDisplay::Type::Headless: -+#if USE(GBM) -+ case PlatformDisplay::Type::GBM: -+#endif -+ case PlatformDisplay::Type::Surfaceless: - RELEASE_ASSERT_NOT_REACHED(); - } - -@@ -359,7 +362,7 @@ std::unique_ptr GLContext::create(GLNativeWindowType window, Platform - } - - EGLContext eglSharingContext = platformDisplay.sharingGLContext() ? static_cast(platformDisplay.sharingGLContext())->m_context : EGL_NO_CONTEXT; -- if (platformDisplay.type() == PlatformDisplay::Type::Headless) { -+ if (platformDisplay.type() == PlatformDisplay::Type::Surfaceless) { - auto context = createSurfacelessContext(platformDisplay, eglSharingContext); - if (!context) - WTFLogAlways("Could not create EGL surfaceless context: %s.", lastErrorString()); -@@ -386,7 +389,10 @@ std::unique_ptr GLContext::create(GLNativeWindowType window, Platform - context = createWPEContext(platformDisplay, eglSharingContext); - break; - #endif -- case PlatformDisplay::Type::Headless: -+#if USE(GBM) -+ case PlatformDisplay::Type::GBM: -+#endif -+ case PlatformDisplay::Type::Surfaceless: - RELEASE_ASSERT_NOT_REACHED(); - } - } -@@ -443,7 +449,10 @@ std::unique_ptr GLContext::createSharing(PlatformDisplay& platformDis - context = createWPEContext(platformDisplay); - break; - #endif -- case PlatformDisplay::Type::Headless: -+#if USE(GBM) -+ case PlatformDisplay::Type::GBM: -+#endif -+ case PlatformDisplay::Type::Surfaceless: - break; - } - } -diff --git a/Source/WebCore/platform/graphics/egl/PlatformDisplayHeadless.cpp b/Source/WebCore/platform/graphics/egl/PlatformDisplaySurfaceless.cpp -similarity index 86% -rename from Source/WebCore/platform/graphics/egl/PlatformDisplayHeadless.cpp -rename to Source/WebCore/platform/graphics/egl/PlatformDisplaySurfaceless.cpp -index 62ca6526c82c..bc2af43534da 100644 ---- a/Source/WebCore/platform/graphics/egl/PlatformDisplayHeadless.cpp -+++ b/Source/WebCore/platform/graphics/egl/PlatformDisplaySurfaceless.cpp -@@ -24,7 +24,7 @@ - */ - - #include "config.h" --#include "PlatformDisplayHeadless.h" -+#include "PlatformDisplaySurfaceless.h" - - #if USE(EGL) - #include "GLContext.h" -@@ -32,12 +32,12 @@ - - namespace WebCore { - --std::unique_ptr PlatformDisplayHeadless::create() -+std::unique_ptr PlatformDisplaySurfaceless::create() - { -- return std::unique_ptr(new PlatformDisplayHeadless()); -+ return std::unique_ptr(new PlatformDisplaySurfaceless()); - } - --PlatformDisplayHeadless::PlatformDisplayHeadless() -+PlatformDisplaySurfaceless::PlatformDisplaySurfaceless() - { - #if PLATFORM(GTK) - PlatformDisplay::setSharedDisplayForCompositing(*this); -@@ -52,7 +52,7 @@ PlatformDisplayHeadless::PlatformDisplayHeadless() - PlatformDisplay::initializeEGLDisplay(); - } - --PlatformDisplayHeadless::~PlatformDisplayHeadless() -+PlatformDisplaySurfaceless::~PlatformDisplaySurfaceless() - { - } - -diff --git a/Source/WebCore/platform/graphics/egl/PlatformDisplayHeadless.h b/Source/WebCore/platform/graphics/egl/PlatformDisplaySurfaceless.h -similarity index 83% -rename from Source/WebCore/platform/graphics/egl/PlatformDisplayHeadless.h -rename to Source/WebCore/platform/graphics/egl/PlatformDisplaySurfaceless.h -index 189dd71fc92f..920fb252c026 100644 ---- a/Source/WebCore/platform/graphics/egl/PlatformDisplayHeadless.h -+++ b/Source/WebCore/platform/graphics/egl/PlatformDisplaySurfaceless.h -@@ -30,15 +30,15 @@ - - namespace WebCore { - --class PlatformDisplayHeadless final : public PlatformDisplay { -+class PlatformDisplaySurfaceless final : public PlatformDisplay { - public: -- static std::unique_ptr create(); -+ static std::unique_ptr create(); - -- virtual ~PlatformDisplayHeadless(); -+ virtual ~PlatformDisplaySurfaceless(); - private: -- PlatformDisplayHeadless(); -+ PlatformDisplaySurfaceless(); - -- Type type() const override { return PlatformDisplay::Type::Headless; } -+ Type type() const override { return PlatformDisplay::Type::Surfaceless; } - }; - - } // namespace WebCore -diff --git a/Source/WebCore/platform/graphics/gbm/PlatformDisplayGBM.cpp b/Source/WebCore/platform/graphics/gbm/PlatformDisplayGBM.cpp -new file mode 100644 -index 000000000000..8bccfa61d057 ---- /dev/null -+++ b/Source/WebCore/platform/graphics/gbm/PlatformDisplayGBM.cpp -@@ -0,0 +1,81 @@ -+/* -+ * Copyright (C) 2023 Igalia S.L. -+ * -+ * Redistribution and use in source and binary forms, with or without -+ * modification, are permitted provided that the following conditions -+ * are met: -+ * 1. Redistributions of source code must retain the above copyright -+ * notice, this list of conditions and the following disclaimer. -+ * 2. Redistributions in binary form must reproduce the above copyright -+ * notice, this list of conditions and the following disclaimer in the -+ * documentation and/or other materials provided with the distribution. -+ * -+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY -+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR -+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY -+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -+ */ -+ -+#include "config.h" -+#include "PlatformDisplayGBM.h" -+ -+#if USE(EGL) && USE(GBM) -+#include "GLContext.h" -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+namespace WebCore { -+ -+std::unique_ptr PlatformDisplayGBM::create(const String& deviceFile) -+{ -+ auto fd = UnixFileDescriptor { open(deviceFile.utf8().data(), O_RDWR | O_CLOEXEC), UnixFileDescriptor::Adopt }; -+ if (!fd) { -+ WTFLogAlways("Failed to open DRM render device %s: %s", deviceFile.utf8().data(), safeStrerror(errno).data()); -+ return nullptr; -+ } -+ -+ auto* device = gbm_create_device(fd.value()); -+ if (!device) { -+ WTFLogAlways("Failed to create GBM device for render device: %s: %s", deviceFile.utf8().data(), safeStrerror(errno).data()); -+ return nullptr; -+ } -+ -+ return std::unique_ptr(new PlatformDisplayGBM(WTFMove(fd), device)); -+} -+ -+PlatformDisplayGBM::PlatformDisplayGBM(UnixFileDescriptor&& fd, struct gbm_device* device) -+{ -+#if PLATFORM(GTK) -+ PlatformDisplay::setSharedDisplayForCompositing(*this); -+#endif -+ -+ m_gbm = { WTFMove(fd), device }; -+ -+ const char* extensions = eglQueryString(nullptr, EGL_EXTENSIONS); -+ if (GLContext::isExtensionSupported(extensions, "EGL_EXT_platform_base")) -+ m_eglDisplay = eglGetPlatformDisplayEXT(EGL_PLATFORM_GBM_KHR, m_gbm.device.value(), nullptr); -+ else if (GLContext::isExtensionSupported(extensions, "EGL_KHR_platform_base")) -+ m_eglDisplay = eglGetPlatformDisplay(EGL_PLATFORM_GBM_KHR, m_gbm.device.value(), nullptr); -+ -+ PlatformDisplay::initializeEGLDisplay(); -+} -+ -+PlatformDisplayGBM::~PlatformDisplayGBM() -+{ -+} -+ -+} // namespace WebCore -+ -+#endif // USE(EGL) && USE(GBM) -diff --git a/Source/WebCore/platform/graphics/gbm/PlatformDisplayGBM.h b/Source/WebCore/platform/graphics/gbm/PlatformDisplayGBM.h -new file mode 100644 -index 000000000000..e0a0049f4c6b ---- /dev/null -+++ b/Source/WebCore/platform/graphics/gbm/PlatformDisplayGBM.h -@@ -0,0 +1,46 @@ -+/* -+ * Copyright (C) 2023 Igalia S.L. -+ * -+ * Redistribution and use in source and binary forms, with or without -+ * modification, are permitted provided that the following conditions -+ * are met: -+ * 1. Redistributions of source code must retain the above copyright -+ * notice, this list of conditions and the following disclaimer. -+ * 2. Redistributions in binary form must reproduce the above copyright -+ * notice, this list of conditions and the following disclaimer in the -+ * documentation and/or other materials provided with the distribution. -+ * -+ * THIS SOFTWARE IS PROVIDED BY APPLE COMPUTER, INC. ``AS IS'' AND ANY -+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE COMPUTER, INC. OR -+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY -+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -+ */ -+ -+#pragma once -+ -+#if USE(EGL) && USE(GBM) -+#include "PlatformDisplay.h" -+ -+namespace WebCore { -+ -+class PlatformDisplayGBM final : public PlatformDisplay { -+public: -+ static std::unique_ptr create(const String&); -+ -+ virtual ~PlatformDisplayGBM(); -+private: -+ PlatformDisplayGBM(UnixFileDescriptor&&, struct gbm_device*); -+ -+ Type type() const override { return PlatformDisplay::Type::GBM; } -+}; -+ -+} // namespace WebCore -+ -+#endif // USE(EGL) && USE(GBM) -diff --git a/Source/WebKit/Shared/WebProcessCreationParameters.cpp b/Source/WebKit/Shared/WebProcessCreationParameters.cpp -index 36c4a3a77906..aea41beabf8e 100644 ---- a/Source/WebKit/Shared/WebProcessCreationParameters.cpp -+++ b/Source/WebKit/Shared/WebProcessCreationParameters.cpp -@@ -188,6 +188,7 @@ void WebProcessCreationParameters::encode(IPC::Encoder& encoder) const - - #if PLATFORM(GTK) - encoder << useDMABufSurfaceForCompositing; -+ encoder << renderDeviceFile; - encoder << useSystemAppearanceForScrollbars; - encoder << gtkSettings; - #endif -@@ -526,6 +527,11 @@ bool WebProcessCreationParameters::decode(IPC::Decoder& decoder, WebProcessCreat - if (!useDMABufSurfaceForCompositing) - return false; - parameters.useDMABufSurfaceForCompositing = WTFMove(*useDMABufSurfaceForCompositing); -+ std::optional renderDeviceFile; -+ decoder >> renderDeviceFile; -+ if (!renderDeviceFile) -+ return false; -+ parameters.renderDeviceFile = WTFMove(*renderDeviceFile); - std::optional useSystemAppearanceForScrollbars; - decoder >> useSystemAppearanceForScrollbars; - if (!useSystemAppearanceForScrollbars) -diff --git a/Source/WebKit/Shared/WebProcessCreationParameters.h b/Source/WebKit/Shared/WebProcessCreationParameters.h -index b3d9560fba26..a8d59c1bcb8f 100644 ---- a/Source/WebKit/Shared/WebProcessCreationParameters.h -+++ b/Source/WebKit/Shared/WebProcessCreationParameters.h -@@ -229,6 +229,7 @@ struct WebProcessCreationParameters { - - #if PLATFORM(GTK) - bool useDMABufSurfaceForCompositing { false }; -+ String renderDeviceFile; - bool useSystemAppearanceForScrollbars { false }; - GtkSettingsState gtkSettings; - #endif -diff --git a/Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp b/Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp -index b629cc6536bf..0750e0b544c9 100644 ---- a/Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp -+++ b/Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp -@@ -58,9 +58,6 @@ - - #if USE(GBM) - #include "AcceleratedBackingStoreDMABuf.h" --#ifndef EGL_DRM_RENDER_NODE_FILE_EXT --#define EGL_DRM_RENDER_NODE_FILE_EXT 0x3377 --#endif - #endif - - #if PLATFORM(X11) -@@ -281,22 +278,13 @@ void WebKitProtocolHandler::handleGPU(WebKitURISchemeRequest* request) - addTableRow(hardwareAccelerationObject, "GL_VERSION"_s, makeString(reinterpret_cast(glGetString(GL_VERSION)))); - addTableRow(hardwareAccelerationObject, "GL_SHADING_LANGUAGE_VERSION"_s, makeString(reinterpret_cast(glGetString(GL_SHADING_LANGUAGE_VERSION)))); - -- auto eglDisplay = PlatformDisplay::sharedDisplay().eglDisplay(); - #if USE(GBM) -- if (GLContext::isExtensionSupported(eglQueryString(nullptr, EGL_EXTENSIONS), "EGL_EXT_device_query")) { -- EGLDeviceEXT eglDevice; -- if (eglQueryDisplayAttribEXT(eglDisplay, EGL_DEVICE_EXT, reinterpret_cast(&eglDevice))) { -- const char* deviceExtensions = eglQueryDeviceStringEXT(eglDevice, EGL_EXTENSIONS); -- if (GLContext::isExtensionSupported(deviceExtensions, "EGL_EXT_device_drm")) { -- if (const char* deviceFile = eglQueryDeviceStringEXT(eglDevice, EGL_DRM_DEVICE_FILE_EXT)) -- addTableRow(hardwareAccelerationObject, "DRM Device"_s, makeString(deviceFile)); -- } -- if (GLContext::isExtensionSupported(deviceExtensions, "EGL_EXT_device_drm_render_node")) { -- if (const char* renderNode = eglQueryDeviceStringEXT(eglDevice, EGL_DRM_RENDER_NODE_FILE_EXT)) -- addTableRow(hardwareAccelerationObject, "DRM Render Node"_s, makeString(renderNode)); -- } -- } -- } -+ auto deviceFile = PlatformDisplay::sharedDisplay().drmDeviceFile(); -+ if (!deviceFile.isEmpty()) -+ addTableRow(hardwareAccelerationObject, "DRM Device"_s, deviceFile); -+ auto renderNode = PlatformDisplay::sharedDisplay().drmRenderNodeFile(); -+ if (!renderNode.isEmpty()) -+ addTableRow(hardwareAccelerationObject, "DRM Render Node"_s, renderNode); - #endif - - #if USE(OPENGL_ES) -@@ -313,6 +301,7 @@ void WebKitProtocolHandler::handleGPU(WebKitURISchemeRequest* request) - addTableRow(hardwareAccelerationObject, "GL_EXTENSIONS"_s, extensionsBuilder.toString()); - #endif - -+ auto eglDisplay = PlatformDisplay::sharedDisplay().eglDisplay(); - addTableRow(hardwareAccelerationObject, "EGL_VERSION"_s, makeString(eglQueryString(eglDisplay, EGL_VERSION))); - addTableRow(hardwareAccelerationObject, "EGL_VENDOR"_s, makeString(eglQueryString(eglDisplay, EGL_VENDOR))); - addTableRow(hardwareAccelerationObject, "EGL_EXTENSIONS"_s, makeString(eglQueryString(nullptr, EGL_EXTENSIONS), ' ', eglQueryString(eglDisplay, EGL_EXTENSIONS))); -diff --git a/Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp b/Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp -index 82feb4b26719..5abe94e29ad4 100644 ---- a/Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp -+++ b/Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp -@@ -87,8 +87,10 @@ void WebProcessPool::platformInitializeWebProcess(const WebProcessProxy& process - #endif - - #if PLATFORM(GTK) && USE(GBM) -- if (AcceleratedBackingStoreDMABuf::checkRequirements()) -+ if (AcceleratedBackingStoreDMABuf::checkRequirements()) { - parameters.useDMABufSurfaceForCompositing = true; -+ parameters.renderDeviceFile = WebCore::PlatformDisplay::sharedDisplay().drmRenderNodeFile(); -+ } - #endif - - #if PLATFORM(WAYLAND) -diff --git a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp -index 3ed329cc9a86..bbdc911b0de2 100644 ---- a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp -+++ b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp -@@ -33,7 +33,6 @@ - #include "WebPageProxy.h" - #include "WebProcessProxy.h" - #include --#include - #include - #include - #include -@@ -219,7 +218,12 @@ void AcceleratedBackingStoreDMABuf::Texture::paint(GtkWidget* widget, cairo_t* c - AcceleratedBackingStoreDMABuf::Surface::Surface(const UnixFileDescriptor& backFD, const UnixFileDescriptor& frontFD, const WebCore::IntSize& size, uint32_t format, uint32_t offset, uint32_t stride, float deviceScaleFactor) - : RenderSource(size, deviceScaleFactor) - { -- auto* device = WebCore::GBMDevice::singleton().device(); -+ auto* device = WebCore::PlatformDisplay::sharedDisplay().gbmDevice(); -+ if (!device) { -+ WTFLogAlways("Failed to get GBM device"); -+ return; -+ } -+ - struct gbm_import_fd_data fdData = { backFD.value(), static_cast(m_size.width()), static_cast(m_size.height()), stride, format }; - m_backBuffer = gbm_bo_import(device, GBM_BO_IMPORT_FD, &fdData, GBM_BO_USE_RENDERING); - if (!m_backBuffer) { -diff --git a/Source/WebKit/WebProcess/WebPage/AcceleratedSurface.cpp b/Source/WebKit/WebProcess/WebPage/AcceleratedSurface.cpp -index 27f65723f70a..09cb12bb800f 100644 ---- a/Source/WebKit/WebProcess/WebPage/AcceleratedSurface.cpp -+++ b/Source/WebKit/WebProcess/WebPage/AcceleratedSurface.cpp -@@ -47,7 +47,8 @@ using namespace WebCore; - std::unique_ptr AcceleratedSurface::create(WebPage& webPage, Client& client) - { - #if USE(GBM) -- if (PlatformDisplay::sharedDisplayForCompositing().type() == PlatformDisplay::Type::Headless) -+ if (PlatformDisplay::sharedDisplayForCompositing().type() == PlatformDisplay::Type::GBM -+ || PlatformDisplay::sharedDisplayForCompositing().type() == PlatformDisplay::Type::Surfaceless) - return AcceleratedSurfaceDMABuf::create(webPage, client); - #endif - #if PLATFORM(WAYLAND) -diff --git a/Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceDMABuf.cpp b/Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceDMABuf.cpp -index 14a8631f3ed6..0300ea0b4436 100644 ---- a/Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceDMABuf.cpp -+++ b/Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceDMABuf.cpp -@@ -32,7 +32,6 @@ - #include "WebPage.h" - #include "WebProcess.h" - #include --#include - #include - #include - #include -@@ -48,7 +47,7 @@ std::unique_ptr AcceleratedSurfaceDMABuf::create(WebPa - - AcceleratedSurfaceDMABuf::AcceleratedSurfaceDMABuf(WebPage& webPage, Client& client) - : AcceleratedSurface(webPage, client) -- , m_isSoftwareRast(!WebCore::PlatformDisplay::sharedDisplayForCompositing().eglExtensions().EXT_image_dma_buf_import) -+ , m_isSoftwareRast(WebCore::PlatformDisplay::sharedDisplayForCompositing().type() == WebCore::PlatformDisplay::Type::Surfaceless) - { - } - -@@ -101,7 +100,12 @@ std::unique_ptr AcceleratedSurfaceDMABuf - - auto& display = WebCore::PlatformDisplay::sharedDisplayForCompositing(); - auto createImage = [&]() -> std::pair { -- auto* bo = gbm_bo_create(WebCore::GBMDevice::singleton().device(), size.width(), size.height(), uint32_t(WebCore::DMABufFormat::FourCC::ARGB8888), 0); -+ auto* device = display.gbmDevice(); -+ if (!device) { -+ WTFLogAlways("Failed to create GBM buffer of size %dx%d: no GBM device found", size.width(), size.height()); -+ return { }; -+ } -+ auto* bo = gbm_bo_create(device, size.width(), size.height(), uint32_t(WebCore::DMABufFormat::FourCC::ARGB8888), 0); - if (!bo) { - WTFLogAlways("Failed to create GBM buffer of size %dx%d: %s", size.width(), size.height(), safeStrerror(errno).data()); - return { }; -diff --git a/Source/WebKit/WebProcess/glib/WebProcessGLib.cpp b/Source/WebKit/WebProcess/glib/WebProcessGLib.cpp -index 0b6108e29669..8a31082be1e5 100644 ---- a/Source/WebKit/WebProcess/glib/WebProcessGLib.cpp -+++ b/Source/WebKit/WebProcess/glib/WebProcessGLib.cpp -@@ -48,8 +48,9 @@ - #include - #endif - --#if PLATFORM(GTK) && USE(EGL) --#include -+#if PLATFORM(GTK) && USE(GBM) -+#include -+#include - #endif - - #if PLATFORM(GTK) && !USE(GTK4) -@@ -123,9 +124,13 @@ void WebProcess::platformInitializeWebProcess(WebProcessCreationParameters& para - } - #endif - --#if PLATFORM(GTK) && USE(EGL) -- if (parameters.useDMABufSurfaceForCompositing) -- m_displayForCompositing = WebCore::PlatformDisplayHeadless::create(); -+#if PLATFORM(GTK) && USE(GBM) -+ if (parameters.useDMABufSurfaceForCompositing) { -+ if (!parameters.renderDeviceFile.isEmpty()) -+ m_displayForCompositing = WebCore::PlatformDisplayGBM::create(parameters.renderDeviceFile); -+ else -+ m_displayForCompositing = WebCore::PlatformDisplaySurfaceless::create(); -+ } - #endif - - #if PLATFORM(WAYLAND) diff --git a/font-crashes.patch b/font-crashes.patch new file mode 100644 index 0000000..764597e --- /dev/null +++ b/font-crashes.patch @@ -0,0 +1,51 @@ +From 3b166862b8341d3361e3d804c31aacacb27a85dd Mon Sep 17 00:00:00 2001 +From: Vitaly Dyachkov +Date: Fri, 21 Apr 2023 15:54:04 +0200 +Subject: [PATCH] [WPE][GTK] Do not deref CreationData's buffer when Cairo font + is destroyed. https://bugs.webkit.org/show_bug.cgi?id=255785 + +Reviewed by NOBODY (OOPS!). + +Since 263084@main `FontCustomPlatformData` takes +`FontPlatformData::CreationData` instead of `FragmentedSharedBuffer`. +The buffer is now a reference counted field of +`FontPlatformData::CreationData` struct and will be automatically +dereferenced when `FontCustomPlatformData` is destroyed. +It is an error to manually dereference it using Cairo font destroy +function. + +* Source/WebCore/platform/graphics/freetype/FontCustomPlatformDataFreeType.cpp: +(WebCore::FontCustomPlatformData::FontCustomPlatformData): +(WebCore::releaseCustomFontData): Deleted. +--- + .../freetype/FontCustomPlatformDataFreeType.cpp | 10 ---------- + 1 file changed, 10 deletions(-) + +diff --git a/Source/WebCore/platform/graphics/freetype/FontCustomPlatformDataFreeType.cpp b/Source/WebCore/platform/graphics/freetype/FontCustomPlatformDataFreeType.cpp +index e7857fe1818f..38daa2b7ff24 100644 +--- a/Source/WebCore/platform/graphics/freetype/FontCustomPlatformDataFreeType.cpp ++++ b/Source/WebCore/platform/graphics/freetype/FontCustomPlatformDataFreeType.cpp +@@ -38,11 +38,6 @@ + + namespace WebCore { + +-static void releaseCustomFontData(void* data) +-{ +- static_cast(data)->deref(); +-} +- + static cairo_user_data_key_t freeTypeFaceKey; + + FontCustomPlatformData::FontCustomPlatformData(FT_Face freeTypeFace, FontPlatformData::CreationData&& data) +@@ -50,11 +45,6 @@ FontCustomPlatformData::FontCustomPlatformData(FT_Face freeTypeFace, FontPlatfor + , creationData(WTFMove(data)) + , m_renderingResourceIdentifier(RenderingResourceIdentifier::generate()) + { +- static cairo_user_data_key_t bufferKey; +- auto buffer = creationData.fontFaceData; +- cairo_font_face_set_user_data(m_fontFace.get(), &bufferKey, &buffer, +- static_cast(releaseCustomFontData)); +- + // Cairo doesn't do FreeType reference counting, so we need to ensure that when + // this cairo_font_face_t is destroyed, it cleans up the FreeType face as well. + cairo_font_face_set_user_data(m_fontFace.get(), &freeTypeFaceKey, freeTypeFace, diff --git a/sources b/sources index 46fdb27..2c1a7a1 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.41.2.tar.xz) = de1f8b6c33265d0b76dc26ce69ce06055dedd658ad8388f9ddbf016a8a8410b4adda187dcf009b69d2c72116ae8a6b629e973c49968affa09343e8b860d24516 -SHA512 (webkitgtk-2.41.2.tar.xz.asc) = 1d03a1e103211193ec0aad81f813c183171797bc8988418f6db7e4a70993ac2c55edecb5ea65e804bf93c5cdea8dcc424487fded28715f96ceca84c9798320df +SHA512 (webkitgtk-2.41.3.tar.xz) = ae80e919b809e2598ea9f9829288b48625a6a3baef9dcc083c372c4b26b0d8bb448adb46e22786a0c639871cd9a77cf06edf9dafa5697430c7dcc3ca976cf834 +SHA512 (webkitgtk-2.41.3.tar.xz.asc) = a742d64098a7415dbfdf1b941756bb53940f1f057aba74808096c5c1664cb2cbadb4b97d4b6d1c6cebd5c69002fe3897ada7099b0912f334f8ddd8027136aa84 diff --git a/text-extents.patch b/text-extents.patch deleted file mode 100644 index aa87f44..0000000 --- a/text-extents.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 496b2994ce4193222fc140eebde4a610e945790e Mon Sep 17 00:00:00 2001 -From: Michael Catanzaro -Date: Mon, 17 Apr 2023 11:03:43 -0500 -Subject: [PATCH] REGRESSION(262860@main): [GTK] icons broken, rendering errors - on reddit.com and many other websites, flickering on cnn.com - https://bugs.webkit.org/show_bug.cgi?id=255488 - -Reviewed by NOBODY (OOPS!). - -The second parameter to cairo_scaled_font_text_extents() must be a -NUL-terminated UTF-8 string. - -* Source/WebCore/platform/graphics/freetype/SimpleFontDataFreeType.cpp: -(WebCore::heightOfCharacter): -(WebCore::Font::platformInit): ---- - .../graphics/freetype/SimpleFontDataFreeType.cpp | 9 +++++---- - 1 file changed, 5 insertions(+), 4 deletions(-) - -diff --git a/Source/WebCore/platform/graphics/freetype/SimpleFontDataFreeType.cpp b/Source/WebCore/platform/graphics/freetype/SimpleFontDataFreeType.cpp -index fa58a247fa32..7cf29fc9ca89 100644 ---- a/Source/WebCore/platform/graphics/freetype/SimpleFontDataFreeType.cpp -+++ b/Source/WebCore/platform/graphics/freetype/SimpleFontDataFreeType.cpp -@@ -96,10 +96,11 @@ static std::optional fontUnitsPerEm(FT_Face freeTypeFace) - return std::nullopt; - } - --static float heightOfCharacter(cairo_scaled_font_t* scaledFont, const char character, FontOrientation orientation) -+static float heightOfCharacter(cairo_scaled_font_t* scaledFont, const char* character, FontOrientation orientation) - { -+ ASSERT(strlen(character) == 1); - cairo_text_extents_t textExtents; -- cairo_scaled_font_text_extents(scaledFont, &character, &textExtents); -+ cairo_scaled_font_text_extents(scaledFont, character, &textExtents); - return narrowPrecisionToFloat(orientation == FontOrientation::Horizontal ? textExtents.height : textExtents.width); - } - -@@ -158,9 +159,9 @@ void Font::platformInit() - // We approximate capHeight and xHeight from cairo_text_extents_t unless - // FreeType returns them above. This approach is less precise than using FreeType. - if (!capHeight.has_value() || !capHeight.value()) -- capHeight = heightOfCharacter(m_platformData.scaledFont(), 'T', platformData().orientation()); -+ capHeight = heightOfCharacter(m_platformData.scaledFont(), "T", platformData().orientation()); - if (!xHeight.has_value() || !xHeight.value()) -- xHeight = heightOfCharacter(m_platformData.scaledFont(), 'x', platformData().orientation()); -+ xHeight = heightOfCharacter(m_platformData.scaledFont(), "x", platformData().orientation()); - - m_fontMetrics.setAscent(ascent); - m_fontMetrics.setDescent(descent); diff --git a/webkitgtk.spec b/webkitgtk.spec index 1c5fd02..241a956 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -16,7 +16,7 @@ %bcond_without docs Name: webkitgtk -Version: 2.41.2 +Version: 2.41.3 Release: %autorelease Summary: GTK web content engine library @@ -29,15 +29,8 @@ 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://bugs.webkit.org/show_bug.cgi?id=255460 -Patch0: build.patch - -# https://github.com/WebKit/WebKit/pull/12806 -Patch1: text-extents.patch - -# https://github.com/WebKit/WebKit/pull/12736 -# https://github.com/WebKit/WebKit/pull/12791 -Patch2: fix-multi-gpus.patch +# https://github.com/WebKit/WebKit/pull/13029 +Patch0: font-crashes.patch BuildRequires: bison BuildRequires: bubblewrap From 470cabb576c75cbc1a718cf34ce46b0ca3bb4ce1 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Wed, 17 May 2023 08:55:15 -0500 Subject: [PATCH 075/200] Upgrade to WebKitGTK 2.41.4 --- .gitignore | 1 + font-crashes.patch | 51 ---------------------------------------------- sources | 4 ++-- webkitgtk.spec | 5 +---- 4 files changed, 4 insertions(+), 57 deletions(-) delete mode 100644 font-crashes.patch diff --git a/.gitignore b/.gitignore index fb12149..fe762ea 100644 --- a/.gitignore +++ b/.gitignore @@ -18,3 +18,4 @@ /webkitgtk-2.41.1.tar.xz.asc /webkitgtk-2.41.2.tar.xz.asc /webkitgtk-2.41.3.tar.xz.asc +/webkitgtk-2.41.4.tar.xz.asc diff --git a/font-crashes.patch b/font-crashes.patch deleted file mode 100644 index 764597e..0000000 --- a/font-crashes.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 3b166862b8341d3361e3d804c31aacacb27a85dd Mon Sep 17 00:00:00 2001 -From: Vitaly Dyachkov -Date: Fri, 21 Apr 2023 15:54:04 +0200 -Subject: [PATCH] [WPE][GTK] Do not deref CreationData's buffer when Cairo font - is destroyed. https://bugs.webkit.org/show_bug.cgi?id=255785 - -Reviewed by NOBODY (OOPS!). - -Since 263084@main `FontCustomPlatformData` takes -`FontPlatformData::CreationData` instead of `FragmentedSharedBuffer`. -The buffer is now a reference counted field of -`FontPlatformData::CreationData` struct and will be automatically -dereferenced when `FontCustomPlatformData` is destroyed. -It is an error to manually dereference it using Cairo font destroy -function. - -* Source/WebCore/platform/graphics/freetype/FontCustomPlatformDataFreeType.cpp: -(WebCore::FontCustomPlatformData::FontCustomPlatformData): -(WebCore::releaseCustomFontData): Deleted. ---- - .../freetype/FontCustomPlatformDataFreeType.cpp | 10 ---------- - 1 file changed, 10 deletions(-) - -diff --git a/Source/WebCore/platform/graphics/freetype/FontCustomPlatformDataFreeType.cpp b/Source/WebCore/platform/graphics/freetype/FontCustomPlatformDataFreeType.cpp -index e7857fe1818f..38daa2b7ff24 100644 ---- a/Source/WebCore/platform/graphics/freetype/FontCustomPlatformDataFreeType.cpp -+++ b/Source/WebCore/platform/graphics/freetype/FontCustomPlatformDataFreeType.cpp -@@ -38,11 +38,6 @@ - - namespace WebCore { - --static void releaseCustomFontData(void* data) --{ -- static_cast(data)->deref(); --} -- - static cairo_user_data_key_t freeTypeFaceKey; - - FontCustomPlatformData::FontCustomPlatformData(FT_Face freeTypeFace, FontPlatformData::CreationData&& data) -@@ -50,11 +45,6 @@ FontCustomPlatformData::FontCustomPlatformData(FT_Face freeTypeFace, FontPlatfor - , creationData(WTFMove(data)) - , m_renderingResourceIdentifier(RenderingResourceIdentifier::generate()) - { -- static cairo_user_data_key_t bufferKey; -- auto buffer = creationData.fontFaceData; -- cairo_font_face_set_user_data(m_fontFace.get(), &bufferKey, &buffer, -- static_cast(releaseCustomFontData)); -- - // Cairo doesn't do FreeType reference counting, so we need to ensure that when - // this cairo_font_face_t is destroyed, it cleans up the FreeType face as well. - cairo_font_face_set_user_data(m_fontFace.get(), &freeTypeFaceKey, freeTypeFace, diff --git a/sources b/sources index 2c1a7a1..8598389 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.41.3.tar.xz) = ae80e919b809e2598ea9f9829288b48625a6a3baef9dcc083c372c4b26b0d8bb448adb46e22786a0c639871cd9a77cf06edf9dafa5697430c7dcc3ca976cf834 -SHA512 (webkitgtk-2.41.3.tar.xz.asc) = a742d64098a7415dbfdf1b941756bb53940f1f057aba74808096c5c1664cb2cbadb4b97d4b6d1c6cebd5c69002fe3897ada7099b0912f334f8ddd8027136aa84 +SHA512 (webkitgtk-2.41.4.tar.xz) = 561465fc63647982d6885299b625e0cb91eaa8b4832d44a7a4695ea890ba8339a053f80e83e6aa5cb1f6f49a977cd7148a74cf34df9a12f574e3981396b140ca +SHA512 (webkitgtk-2.41.4.tar.xz.asc) = 137313717924f7a7084455d1e4ea30ea59764adcb259d64def7a547a9cb2d60b52e29429b164ee33786ccfc74f8cbdbe64e21c1db90a6a4167ef41909c8c903f diff --git a/webkitgtk.spec b/webkitgtk.spec index 241a956..f5c897e 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -16,7 +16,7 @@ %bcond_without docs Name: webkitgtk -Version: 2.41.3 +Version: 2.41.4 Release: %autorelease Summary: GTK web content engine library @@ -29,9 +29,6 @@ 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/13029 -Patch0: font-crashes.patch - BuildRequires: bison BuildRequires: bubblewrap BuildRequires: cmake From 77b316c3202ea890a7ec25a63946a6c512580de0 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Tue, 13 Jun 2023 07:44:50 -0500 Subject: [PATCH 076/200] Remove all RHEL-related conditionals No longer required --- webkitgtk.spec | 49 ------------------------------------------------- 1 file changed, 49 deletions(-) diff --git a/webkitgtk.spec b/webkitgtk.spec index f5c897e..27deb16 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -5,16 +5,6 @@ mkdir -p _license_files ; \ cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g') -# No libmanette in RHEL -%if !0%{?rhel} -%global with_gamepad 1 -%endif - -# Build documentation by default (use `rpmbuild --without docs` to override it). -# This is used by Coverity. Coverity injects custom compiler warnings, but -# any warning during WebKit docs build is fatal! -%bcond_without docs - Name: webkitgtk Version: 2.41.4 Release: %autorelease @@ -90,9 +80,7 @@ BuildRequires: pkgconfig(libtasn1) BuildRequires: pkgconfig(libwebp) BuildRequires: pkgconfig(libwoff2dec) BuildRequires: pkgconfig(libxslt) -%if 0%{?with_gamepad} BuildRequires: pkgconfig(manette-0.2) -%endif BuildRequires: pkgconfig(sqlite3) BuildRequires: pkgconfig(upower-glib) BuildRequires: pkgconfig(wayland-client) @@ -201,7 +189,6 @@ Provides: webkit2gtk3-devel = %{version}-%{release} The webkit2gtk4.0-devel package contains libraries, build data, and header files for developing applications that use webkit2gtk4.0. -%if %{with docs} %package -n webkitgtk6.0-doc Summary: Documentation files for webkit2gtk5.0 BuildArch: noarch @@ -233,7 +220,6 @@ Recommends: gi-docgen-fonts %description -n webkit2gtk4.0-doc This package contains developer documentation for webkit2gtk4.0. -%endif %package -n javascriptcoregtk6.0 Summary: JavaScript engine from webkitgtk6.0 @@ -327,17 +313,6 @@ files for developing applications that use JavaScript engine from webkit2gtk-4.0 -DPORT=GTK \ -DCMAKE_BUILD_TYPE=Release \ -DUSE_GTK4=ON \ -%if %{without docs} - -DENABLE_DOCUMENTATION=OFF \ -%endif -%if !0%{?with_gamepad} - -DENABLE_GAMEPAD=OFF \ -%endif -%if 0%{?rhel} -%ifarch aarch64 - -DUSE_64KB_PAGE_BLOCK=ON \ -%endif -%endif %{nil} %define _vpath_builddir %{_vendor}-%{_target_os}-build/webkit2gtk-4.1 @@ -346,17 +321,6 @@ files for developing applications that use JavaScript engine from webkit2gtk-4.0 -DPORT=GTK \ -DCMAKE_BUILD_TYPE=Release \ -DENABLE_WEBDRIVER=OFF \ -%if %{without docs} - -DENABLE_DOCUMENTATION=OFF \ -%endif -%if !0%{?with_gamepad} - -DENABLE_GAMEPAD=OFF \ -%endif -%if 0%{?rhel} -%ifarch aarch64 - -DUSE_64KB_PAGE_BLOCK=ON \ -%endif -%endif %{nil} %define _vpath_builddir %{_vendor}-%{_target_os}-build/webkit2gtk-4.0 @@ -366,17 +330,6 @@ files for developing applications that use JavaScript engine from webkit2gtk-4.0 -DCMAKE_BUILD_TYPE=Release \ -DUSE_SOUP2=ON \ -DENABLE_WEBDRIVER=OFF \ -%if %{without docs} - -DENABLE_DOCUMENTATION=OFF \ -%endif -%if !0%{?with_gamepad} - -DENABLE_GAMEPAD=OFF \ -%endif -%if 0%{?rhel} -%ifarch aarch64 - -DUSE_64KB_PAGE_BLOCK=ON \ -%endif -%endif %{nil} %define _vpath_builddir %{_vendor}-%{_target_os}-build/webkitgtk-6.0 @@ -544,7 +497,6 @@ export NINJA_STATUS="[3/3][%f/%t %es] " %dir %{_datadir}/gir-1.0 %{_datadir}/gir-1.0/JavaScriptCore-4.0.gir -%if %{with docs} %files -n webkitgtk6.0-doc %dir %{_datadir}/gtk-doc %dir %{_datadir}/gtk-doc/html @@ -565,7 +517,6 @@ export NINJA_STATUS="[3/3][%f/%t %es] " %{_datadir}/gtk-doc/html/javascriptcoregtk-4.0/ %{_datadir}/gtk-doc/html/webkit2gtk-4.0/ %{_datadir}/gtk-doc/html/webkit2gtk-web-extension-4.0/ -%endif %changelog %autochangelog From 69d2c3b1759b5ecf1d699ef734c2da3ecb7ae825 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Tue, 13 Jun 2023 21:05:55 -0500 Subject: [PATCH 077/200] Upgrade to 2.41.5 --- .gitignore | 1 + sources | 4 ++-- webkitgtk.spec | 3 ++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index fe762ea..e0dac85 100644 --- a/.gitignore +++ b/.gitignore @@ -19,3 +19,4 @@ /webkitgtk-2.41.2.tar.xz.asc /webkitgtk-2.41.3.tar.xz.asc /webkitgtk-2.41.4.tar.xz.asc +/webkitgtk-2.41.5.tar.xz.asc diff --git a/sources b/sources index 8598389..7970783 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.41.4.tar.xz) = 561465fc63647982d6885299b625e0cb91eaa8b4832d44a7a4695ea890ba8339a053f80e83e6aa5cb1f6f49a977cd7148a74cf34df9a12f574e3981396b140ca -SHA512 (webkitgtk-2.41.4.tar.xz.asc) = 137313717924f7a7084455d1e4ea30ea59764adcb259d64def7a547a9cb2d60b52e29429b164ee33786ccfc74f8cbdbe64e21c1db90a6a4167ef41909c8c903f +SHA512 (webkitgtk-2.41.5.tar.xz) = 6d9ea5c437beeb8598b0673445a7cc950de52ad51b46f99f007dc44577205b19a7cdeb42a02563a627e0469fe054893e9a077f49d5108f4f6f8f5abe64d7ff1d +SHA512 (webkitgtk-2.41.5.tar.xz.asc) = a466fda3aa79509a3c85c4cfb06f1d901465646b1cb014b485a729aaa554f6083d7c1993f5e28b54ccd375c5962e430d2afca814f847a07d3321adffbe81593b diff --git a/webkitgtk.spec b/webkitgtk.spec index 27deb16..5d81abd 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -6,7 +6,7 @@ cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g') Name: webkitgtk -Version: 2.41.4 +Version: 2.41.5 Release: %autorelease Summary: GTK web content engine library @@ -67,6 +67,7 @@ BuildRequires: pkgconfig(libavif) BuildRequires: pkgconfig(libdrm) BuildRequires: pkgconfig(libgcrypt) BuildRequires: pkgconfig(libjpeg) +BuildRequires: pkgconfig(libjxl) BuildRequires: pkgconfig(libnotify) BuildRequires: pkgconfig(libopenjp2) BuildRequires: pkgconfig(libpcre) From 97d8057b53649359832ce20f7d1df6596945240f Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Wed, 14 Jun 2023 12:50:35 +0200 Subject: [PATCH 078/200] Drop the unneeded BR on pcre Resolves: rhbz#2212686 --- webkitgtk.spec | 1 - 1 file changed, 1 deletion(-) diff --git a/webkitgtk.spec b/webkitgtk.spec index 5d81abd..ec81103 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -70,7 +70,6 @@ BuildRequires: pkgconfig(libjpeg) BuildRequires: pkgconfig(libjxl) BuildRequires: pkgconfig(libnotify) BuildRequires: pkgconfig(libopenjp2) -BuildRequires: pkgconfig(libpcre) BuildRequires: pkgconfig(libpng) BuildRequires: pkgconfig(libseccomp) BuildRequires: pkgconfig(libsecret-1) From 2148153a10dfc4bf383b4827d6f96bdb0e35f63f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20M=2E=20Basto?= Date: Sun, 18 Jun 2023 21:16:56 +0100 Subject: [PATCH 079/200] Mass rebuild for jpegxl-0.8.1 From ee8bb9de81005e07354eec975c9dd9b09f90b376 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Wed, 21 Jun 2023 12:22:31 -0500 Subject: [PATCH 080/200] Revert "Remove all RHEL-related conditionals" This reverts commit 77b316c3202ea890a7ec25a63946a6c512580de0. --- webkitgtk.spec | 49 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) diff --git a/webkitgtk.spec b/webkitgtk.spec index ec81103..0623fb9 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -5,6 +5,16 @@ mkdir -p _license_files ; \ cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g') +# No libmanette in RHEL +%if !0%{?rhel} +%global with_gamepad 1 +%endif + +# Build documentation by default (use `rpmbuild --without docs` to override it). +# This is used by Coverity. Coverity injects custom compiler warnings, but +# any warning during WebKit docs build is fatal! +%bcond_without docs + Name: webkitgtk Version: 2.41.5 Release: %autorelease @@ -80,7 +90,9 @@ BuildRequires: pkgconfig(libtasn1) BuildRequires: pkgconfig(libwebp) BuildRequires: pkgconfig(libwoff2dec) BuildRequires: pkgconfig(libxslt) +%if 0%{?with_gamepad} BuildRequires: pkgconfig(manette-0.2) +%endif BuildRequires: pkgconfig(sqlite3) BuildRequires: pkgconfig(upower-glib) BuildRequires: pkgconfig(wayland-client) @@ -189,6 +201,7 @@ Provides: webkit2gtk3-devel = %{version}-%{release} The webkit2gtk4.0-devel package contains libraries, build data, and header files for developing applications that use webkit2gtk4.0. +%if %{with docs} %package -n webkitgtk6.0-doc Summary: Documentation files for webkit2gtk5.0 BuildArch: noarch @@ -220,6 +233,7 @@ Recommends: gi-docgen-fonts %description -n webkit2gtk4.0-doc This package contains developer documentation for webkit2gtk4.0. +%endif %package -n javascriptcoregtk6.0 Summary: JavaScript engine from webkitgtk6.0 @@ -313,6 +327,17 @@ files for developing applications that use JavaScript engine from webkit2gtk-4.0 -DPORT=GTK \ -DCMAKE_BUILD_TYPE=Release \ -DUSE_GTK4=ON \ +%if %{without docs} + -DENABLE_DOCUMENTATION=OFF \ +%endif +%if !0%{?with_gamepad} + -DENABLE_GAMEPAD=OFF \ +%endif +%if 0%{?rhel} +%ifarch aarch64 + -DUSE_64KB_PAGE_BLOCK=ON \ +%endif +%endif %{nil} %define _vpath_builddir %{_vendor}-%{_target_os}-build/webkit2gtk-4.1 @@ -321,6 +346,17 @@ files for developing applications that use JavaScript engine from webkit2gtk-4.0 -DPORT=GTK \ -DCMAKE_BUILD_TYPE=Release \ -DENABLE_WEBDRIVER=OFF \ +%if %{without docs} + -DENABLE_DOCUMENTATION=OFF \ +%endif +%if !0%{?with_gamepad} + -DENABLE_GAMEPAD=OFF \ +%endif +%if 0%{?rhel} +%ifarch aarch64 + -DUSE_64KB_PAGE_BLOCK=ON \ +%endif +%endif %{nil} %define _vpath_builddir %{_vendor}-%{_target_os}-build/webkit2gtk-4.0 @@ -330,6 +366,17 @@ files for developing applications that use JavaScript engine from webkit2gtk-4.0 -DCMAKE_BUILD_TYPE=Release \ -DUSE_SOUP2=ON \ -DENABLE_WEBDRIVER=OFF \ +%if %{without docs} + -DENABLE_DOCUMENTATION=OFF \ +%endif +%if !0%{?with_gamepad} + -DENABLE_GAMEPAD=OFF \ +%endif +%if 0%{?rhel} +%ifarch aarch64 + -DUSE_64KB_PAGE_BLOCK=ON \ +%endif +%endif %{nil} %define _vpath_builddir %{_vendor}-%{_target_os}-build/webkitgtk-6.0 @@ -497,6 +544,7 @@ export NINJA_STATUS="[3/3][%f/%t %es] " %dir %{_datadir}/gir-1.0 %{_datadir}/gir-1.0/JavaScriptCore-4.0.gir +%if %{with docs} %files -n webkitgtk6.0-doc %dir %{_datadir}/gtk-doc %dir %{_datadir}/gtk-doc/html @@ -517,6 +565,7 @@ export NINJA_STATUS="[3/3][%f/%t %es] " %{_datadir}/gtk-doc/html/javascriptcoregtk-4.0/ %{_datadir}/gtk-doc/html/webkit2gtk-4.0/ %{_datadir}/gtk-doc/html/webkit2gtk-web-extension-4.0/ +%endif %changelog %autochangelog From 4195221bd0fce3f513ae6446543b20c19a1940c2 Mon Sep 17 00:00:00 2001 From: Yaakov Selkowitz Date: Tue, 20 Jun 2023 23:09:17 -0400 Subject: [PATCH 081/200] Disable 4.0 API in RHEL 10 builds --- webkitgtk.spec | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/webkitgtk.spec b/webkitgtk.spec index 0623fb9..fa649ec 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -15,6 +15,12 @@ # any warning during WebKit docs build is fatal! %bcond_without docs +# https://fedoraproject.org/wiki/Changes/Remove_webkit2gtk-4.0_API_Version +# ELN (RHEL 10) no longer needs 4.0 +%if %{undefined rhel} || 0%{?rhel} < 10 +%bcond_without api40 +%endif + Name: webkitgtk Version: 2.41.5 Release: %autorelease @@ -145,6 +151,7 @@ Provides: bundled(xdgmime) WebKitGTK is the port of the WebKit web rendering engine to the GTK platform. This package contains WebKitGTK for GTK 3 and libsoup 3. +%if %{with api40} %package -n webkit2gtk4.0 Summary: WebKitGTK for GTK 3 and libsoup 2 Requires: javascriptcoregtk4.0%{?_isa} = %{version}-%{release} @@ -165,6 +172,7 @@ Provides: webkit2gtk3 = %{version}-%{release} %description -n webkit2gtk4.0 WebKitGTK is the port of the WebKit web rendering engine to the GTK platform. This package contains WebKitGTK for GTK 3 and libsoup 2. +%endif %package -n webkitgtk6.0-devel Summary: Development files for webkitgtk6.0 @@ -187,6 +195,7 @@ Requires: javascriptcoregtk4.1-devel%{?_isa} = %{version}-%{release} The webkit2gtk4.1-devel package contains libraries, build data, and header files for developing applications that use webkit2gtk4.1. +%if %{with api40} %package -n webkit2gtk4.0-devel Summary: Development files for webkit2gtk4.0 Requires: webkit2gtk4.0%{?_isa} = %{version}-%{release} @@ -200,6 +209,7 @@ Provides: webkit2gtk3-devel = %{version}-%{release} %description -n webkit2gtk4.0-devel The webkit2gtk4.0-devel package contains libraries, build data, and header files for developing applications that use webkit2gtk4.0. +%endif %if %{with docs} %package -n webkitgtk6.0-doc @@ -221,6 +231,7 @@ Recommends: gi-docgen-fonts %description -n webkit2gtk4.1-doc This package contains developer documentation for webkit2gtk4.1. +%if %{with api40} %package -n webkit2gtk4.0-doc Summary: Documentation files for webkit2gtk4.0 BuildArch: noarch @@ -234,6 +245,7 @@ Recommends: gi-docgen-fonts %description -n webkit2gtk4.0-doc This package contains developer documentation for webkit2gtk4.0. %endif +%endif %package -n javascriptcoregtk6.0 Summary: JavaScript engine from webkitgtk6.0 @@ -249,6 +261,7 @@ Obsoletes: webkit2gtk4.1-jsc < %{version}-%{release} %description -n javascriptcoregtk4.1 This package contains the JavaScript engine from webkit2gtk4.1. +%if %{with api40} %package -n javascriptcoregtk4.0 Summary: JavaScript engine from webkit2gtk4.0 Obsoletes: webkitgtk4-jsc < %{version}-%{release} @@ -258,6 +271,7 @@ Provides: webkit2gtk3-jsc = %{version}-%{release} %description -n javascriptcoregtk4.0 This package contains the JavaScript engine from webkit2gtk4.0. +%endif %package -n javascriptcoregtk6.0-devel Summary: Development files for JavaScript engine from webkitgtk6.0 @@ -277,6 +291,7 @@ Obsoletes: webkit2gtk4.1-jsc-devel < %{version}-%{release} The javascriptcoregtk4.1-devel package contains libraries, build data, and header files for developing applications that use JavaScript engine from webkit2gtk-4.1. +%if %{with api40} %package -n javascriptcoregtk4.0-devel Summary: Development files for JavaScript engine from webkit2gtk4.0 Requires: javascriptcoregtk4.0%{?_isa} = %{version}-%{release} @@ -288,6 +303,7 @@ Provides: webkit2gtk3-jsc-devel = %{version}-%{release} %description -n javascriptcoregtk4.0-devel The javascriptcoregtk4.0-devel package contains libraries, build data, and header files for developing applications that use JavaScript engine from webkit2gtk-4.0. +%endif %prep %{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}' @@ -359,6 +375,7 @@ files for developing applications that use JavaScript engine from webkit2gtk-4.0 %endif %{nil} +%if %{with api40} %define _vpath_builddir %{_vendor}-%{_target_os}-build/webkit2gtk-4.0 %cmake \ -GNinja \ @@ -378,6 +395,7 @@ files for developing applications that use JavaScript engine from webkit2gtk-4.0 %endif %endif %{nil} +%endif %define _vpath_builddir %{_vendor}-%{_target_os}-build/webkitgtk-6.0 export NINJA_STATUS="[1/3][%f/%t %es] " @@ -387,9 +405,11 @@ export NINJA_STATUS="[1/3][%f/%t %es] " export NINJA_STATUS="[2/3][%f/%t %es] " %cmake_build %limit_build -m 3072 +%if %{with api40} %define _vpath_builddir %{_vendor}-%{_target_os}-build/webkit2gtk-4.0 export NINJA_STATUS="[3/3][%f/%t %es] " %cmake_build %limit_build -m 3072 +%endif %install %define _vpath_builddir %{_vendor}-%{_target_os}-build/webkitgtk-6.0 @@ -398,12 +418,16 @@ export NINJA_STATUS="[3/3][%f/%t %es] " %define _vpath_builddir %{_vendor}-%{_target_os}-build/webkit2gtk-4.1 %cmake_install +%if %{with api40} %define _vpath_builddir %{_vendor}-%{_target_os}-build/webkit2gtk-4.0 %cmake_install +%endif %find_lang WebKitGTK-6.0 %find_lang WebKitGTK-4.1 +%if %{with api40} %find_lang WebKitGTK-4.0 +%endif # Finally, copy over and rename various files for %%license inclusion %add_to_license_files Source/JavaScriptCore/COPYING.LIB @@ -448,6 +472,7 @@ export NINJA_STATUS="[3/3][%f/%t %es] " %exclude %{_libexecdir}/webkit2gtk-4.1/MiniBrowser %exclude %{_libexecdir}/webkit2gtk-4.1/jsc +%if %{with api40} %files -n webkit2gtk4.0 -f WebKitGTK-4.0.lang %license _license_files/*ThirdParty* %license _license_files/*WebCore* @@ -461,6 +486,7 @@ export NINJA_STATUS="[3/3][%f/%t %es] " %{_libexecdir}/webkit2gtk-4.0/ %exclude %{_libexecdir}/webkit2gtk-4.0/MiniBrowser %exclude %{_libexecdir}/webkit2gtk-4.0/jsc +%endif %files -n webkitgtk6.0-devel %{_libexecdir}/webkitgtk-6.0/MiniBrowser @@ -485,6 +511,7 @@ export NINJA_STATUS="[3/3][%f/%t %es] " %{_datadir}/gir-1.0/WebKit2-4.1.gir %{_datadir}/gir-1.0/WebKit2WebExtension-4.1.gir +%if %{with api40} %files -n webkit2gtk4.0-devel %{_libexecdir}/webkit2gtk-4.0/MiniBrowser %{_includedir}/webkitgtk-4.0/ @@ -496,6 +523,7 @@ export NINJA_STATUS="[3/3][%f/%t %es] " %dir %{_datadir}/gir-1.0 %{_datadir}/gir-1.0/WebKit2-4.0.gir %{_datadir}/gir-1.0/WebKit2WebExtension-4.0.gir +%endif %files -n javascriptcoregtk6.0 %license _license_files/*JavaScriptCore* @@ -509,11 +537,13 @@ export NINJA_STATUS="[3/3][%f/%t %es] " %dir %{_libdir}/girepository-1.0 %{_libdir}/girepository-1.0/JavaScriptCore-4.1.typelib +%if %{with api40} %files -n javascriptcoregtk4.0 %license _license_files/*JavaScriptCore* %{_libdir}/libjavascriptcoregtk-4.0.so.18* %dir %{_libdir}/girepository-1.0 %{_libdir}/girepository-1.0/JavaScriptCore-4.0.typelib +%endif %files -n javascriptcoregtk6.0-devel %{_libexecdir}/webkitgtk-6.0/jsc @@ -534,6 +564,7 @@ export NINJA_STATUS="[3/3][%f/%t %es] " %dir %{_datadir}/gir-1.0 %{_datadir}/gir-1.0/JavaScriptCore-4.1.gir +%if %{with api40} %files -n javascriptcoregtk4.0-devel %{_libexecdir}/webkit2gtk-4.0/jsc %dir %{_includedir}/webkitgtk-4.0 @@ -543,6 +574,7 @@ export NINJA_STATUS="[3/3][%f/%t %es] " %{_libdir}/pkgconfig/javascriptcoregtk-4.0.pc %dir %{_datadir}/gir-1.0 %{_datadir}/gir-1.0/JavaScriptCore-4.0.gir +%endif %if %{with docs} %files -n webkitgtk6.0-doc @@ -559,6 +591,7 @@ export NINJA_STATUS="[3/3][%f/%t %es] " %{_datadir}/gtk-doc/html/webkit2gtk-4.1/ %{_datadir}/gtk-doc/html/webkit2gtk-web-extension-4.1/ +%if %{with api40} %files -n webkit2gtk4.0-doc %dir %{_datadir}/gtk-doc %dir %{_datadir}/gtk-doc/html @@ -566,6 +599,7 @@ export NINJA_STATUS="[3/3][%f/%t %es] " %{_datadir}/gtk-doc/html/webkit2gtk-4.0/ %{_datadir}/gtk-doc/html/webkit2gtk-web-extension-4.0/ %endif +%endif %changelog %autochangelog From 3b52a75db8796e98b1ef9c55251f798a16c9db09 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Wed, 5 Jul 2023 08:03:26 -0500 Subject: [PATCH 082/200] Upgrade to 2.41.6 --- .gitignore | 1 + sources | 4 ++-- webkitgtk.spec | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index e0dac85..3f3af8b 100644 --- a/.gitignore +++ b/.gitignore @@ -20,3 +20,4 @@ /webkitgtk-2.41.3.tar.xz.asc /webkitgtk-2.41.4.tar.xz.asc /webkitgtk-2.41.5.tar.xz.asc +/webkitgtk-2.41.6.tar.xz.asc diff --git a/sources b/sources index 7970783..3ebabb3 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.41.5.tar.xz) = 6d9ea5c437beeb8598b0673445a7cc950de52ad51b46f99f007dc44577205b19a7cdeb42a02563a627e0469fe054893e9a077f49d5108f4f6f8f5abe64d7ff1d -SHA512 (webkitgtk-2.41.5.tar.xz.asc) = a466fda3aa79509a3c85c4cfb06f1d901465646b1cb014b485a729aaa554f6083d7c1993f5e28b54ccd375c5962e430d2afca814f847a07d3321adffbe81593b +SHA512 (webkitgtk-2.41.6.tar.xz) = 89cc03b86a689fcf6edccf9e7adc9e128fe55776d46ab81b08332f490bbe8b63af96c4595d3e040133f83e8e0af1b5cf95b09936698e531f4c2cf99b052d316e +SHA512 (webkitgtk-2.41.6.tar.xz.asc) = c50546dc09fce1808af069ebe6ad12277c3e254e9d47d93ecc6b1fb8be1e635ccf1594bf7c13dcf2e3ad7e866e7f65cdc3a993b59c690094f79f6aac83f7b45d diff --git a/webkitgtk.spec b/webkitgtk.spec index fa649ec..9807ca0 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -22,7 +22,7 @@ %endif Name: webkitgtk -Version: 2.41.5 +Version: 2.41.6 Release: %autorelease Summary: GTK web content engine library From 7eeeb66a4dd398f705318fc3cd81c7995d82ddc9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= Date: Tue, 11 Jul 2023 23:02:36 +0200 Subject: [PATCH 083/200] Rebuilt for ICU 73.2 From 3fae8fa930251407552b635730f03631f86e586d Mon Sep 17 00:00:00 2001 From: Yaakov Selkowitz Date: Tue, 11 Jul 2023 22:24:11 -0400 Subject: [PATCH 084/200] Only BuildRequires libsoup-devel when building 4.0 API ELN and RHEL 10 are not building the 4.0 API, in which case we should not need libsoup (2.y) even in the buildroot. --- webkitgtk.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/webkitgtk.spec b/webkitgtk.spec index 9807ca0..1ab8eb4 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -89,7 +89,9 @@ BuildRequires: pkgconfig(libopenjp2) BuildRequires: pkgconfig(libpng) BuildRequires: pkgconfig(libseccomp) BuildRequires: pkgconfig(libsecret-1) +%if %{with api40} BuildRequires: pkgconfig(libsoup-2.4) +%endif BuildRequires: pkgconfig(libsoup-3.0) BuildRequires: pkgconfig(libsystemd) BuildRequires: pkgconfig(libtasn1) From 4b92cd6fc1c2b584706f28ba0b2dca64d8c18f58 Mon Sep 17 00:00:00 2001 From: Adam Williamson Date: Thu, 20 Jul 2023 17:24:13 -0700 Subject: [PATCH 085/200] Backport PR #15929 to fix content not shown on llvmpipe --- 15929.patch | 358 +++++++++++++++++++++++++++++++++++++++++++++++++ webkitgtk.spec | 5 + 2 files changed, 363 insertions(+) create mode 100644 15929.patch diff --git a/15929.patch b/15929.patch new file mode 100644 index 0000000..b056f43 --- /dev/null +++ b/15929.patch @@ -0,0 +1,358 @@ +From d6459980ac8a200f46efd4d0668efdb17a9bf951 Mon Sep 17 00:00:00 2001 +From: Carlos Garcia Campos +Date: Wed, 19 Jul 2023 14:00:45 +0200 +Subject: [PATCH] REGRESSION(2.41.6): [GTK] Yelp help viewer and Epiphany + browser do not show content on a virtual machine (llvmpipe?) with WebKitGTK + 2.41.6 https://bugs.webkit.org/show_bug.cgi?id=259320 + +Reviewed by NOBODY (OOPS!). + +The problem is that for some reason the surfaceless platform is claiming +to support EGL_MESA_image_dma_buf_export with llvmpipe driver, while the +display in the UI process doesn't support EGL_EXT_image_dma_buf_import +with llvmpipe as expected. So, we end up exporting DMABuf buffers (or +trying) that the UI process can't handle. We should always pass to the +web process the buffers supported by the UI process (hardware or shared +memory) and ensure we only export buffers supported by the UI process. + +* Source/WebKit/Shared/WebProcessCreationParameters.h: +* Source/WebKit/Shared/WebProcessCreationParameters.serialization.in: +* Source/WebKit/Shared/glib/DMABufRendererBufferMode.h: Added. +* Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp: +(WebKit::dmabufRendererWithSupportedBuffers): +(WebKit::WebKitProtocolHandler::handleGPU): +* Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp: +(WebKit::WebProcessPool::platformInitializeWebProcess): +* Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp: +(WebKit::AcceleratedBackingStoreDMABuf::rendererBufferMode): +(WebKit::AcceleratedBackingStoreDMABuf::checkRequirements): +* Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.h: +* Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceDMABuf.cpp: +(WebKit::AcceleratedSurfaceDMABuf::clientResize): +* Source/WebKit/WebProcess/WebProcess.h: +(WebKit::WebProcess::dmaBufRendererBufferMode const): +* Source/WebKit/WebProcess/glib/WebProcessGLib.cpp: +(WebKit::WebProcess::platformInitializeWebProcess): +--- + .../Shared/WebProcessCreationParameters.h | 3 +- + ...ProcessCreationParameters.serialization.in | 2 +- + .../Shared/glib/DMABufRendererBufferMode.h | 49 +++++++++++++++++++ + .../API/glib/WebKitProtocolHandler.cpp | 23 ++++++++- + .../UIProcess/glib/WebProcessPoolGLib.cpp | 4 +- + .../gtk/AcceleratedBackingStoreDMABuf.cpp | 26 +++++++--- + .../gtk/AcceleratedBackingStoreDMABuf.h | 3 ++ + .../WebPage/gtk/AcceleratedSurfaceDMABuf.cpp | 2 +- + Source/WebKit/WebProcess/WebProcess.h | 7 ++- + .../WebKit/WebProcess/glib/WebProcessGLib.cpp | 15 +++--- + 10 files changed, 112 insertions(+), 22 deletions(-) + create mode 100644 Source/WebKit/Shared/glib/DMABufRendererBufferMode.h + +diff --git a/Source/WebKit/Shared/WebProcessCreationParameters.h b/Source/WebKit/Shared/WebProcessCreationParameters.h +index cd6a3ffdd9f39..4544644d34ec4 100644 +--- a/Source/WebKit/Shared/WebProcessCreationParameters.h ++++ b/Source/WebKit/Shared/WebProcessCreationParameters.h +@@ -57,6 +57,7 @@ + #endif + + #if PLATFORM(GTK) ++#include "DMABufRendererBufferMode.h" + #include "GtkSettingsState.h" + #endif + +@@ -219,7 +220,7 @@ struct WebProcessCreationParameters { + #endif + + #if PLATFORM(GTK) +- bool useDMABufSurfaceForCompositing { false }; ++ OptionSet dmaBufRendererBufferMode; + bool useSystemAppearanceForScrollbars { false }; + GtkSettingsState gtkSettings; + #endif +diff --git a/Source/WebKit/Shared/WebProcessCreationParameters.serialization.in b/Source/WebKit/Shared/WebProcessCreationParameters.serialization.in +index 5716042447a78..99db37e67b4a5 100644 +--- a/Source/WebKit/Shared/WebProcessCreationParameters.serialization.in ++++ b/Source/WebKit/Shared/WebProcessCreationParameters.serialization.in +@@ -173,7 +173,7 @@ struct WebKit::WebProcessCreationParameters { + #endif + + #if PLATFORM(GTK) +- bool useDMABufSurfaceForCompositing; ++ OptionSet dmaBufRendererBufferMode; + bool useSystemAppearanceForScrollbars; + WebKit::GtkSettingsState gtkSettings; + #endif +diff --git a/Source/WebKit/Shared/glib/DMABufRendererBufferMode.h b/Source/WebKit/Shared/glib/DMABufRendererBufferMode.h +new file mode 100644 +index 0000000000000..5cc9ef29de52f +--- /dev/null ++++ b/Source/WebKit/Shared/glib/DMABufRendererBufferMode.h +@@ -0,0 +1,49 @@ ++/* ++ * Copyright (C) 2023 Igalia S.L. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' ++ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, ++ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR ++ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS ++ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR ++ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF ++ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS ++ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN ++ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ++ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF ++ * THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++ ++#pragma once ++ ++#include ++ ++namespace WebKit { ++ ++enum class DMABufRendererBufferMode : uint8_t { ++ Hardware = 1 << 0, ++ SharedMemory = 1 << 1 ++}; ++ ++} // namespace WebKit ++ ++namespace WTF { ++ ++template<> struct EnumTraits { ++ using values = EnumValues< ++ WebKit::DMABufRendererBufferMode, ++ WebKit::DMABufRendererBufferMode::Hardware, ++ WebKit::DMABufRendererBufferMode::SharedMemory ++ >; ++}; ++ ++} // namespace WTF +diff --git a/Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp b/Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp +index 1a89c19966022..8bdcf48b446ab 100644 +--- a/Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp ++++ b/Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp +@@ -46,6 +46,7 @@ + + #if PLATFORM(GTK) + #include "AcceleratedBackingStoreDMABuf.h" ++#include "DMABufRendererBufferMode.h" + #include + #include + +@@ -158,6 +159,24 @@ static const char* openGLAPI() + return "OpenGL ES 2 (libepoxy)"; + } + ++#if PLATFORM(GTK) ++static String dmabufRendererWithSupportedBuffers() ++{ ++ StringBuilder buffers; ++ buffers.append("DMABuf (Supported buffers: "_s); ++ auto mode = AcceleratedBackingStoreDMABuf::rendererBufferMode(); ++ if (mode.contains(DMABufRendererBufferMode::Hardware)) ++ buffers.append("Hardware"_s); ++ if (mode.contains(DMABufRendererBufferMode::SharedMemory)) { ++ if (mode.contains(DMABufRendererBufferMode::Hardware)) ++ buffers.append(", "); ++ buffers.append("Shared Memory"_s); ++ } ++ buffers.append(')'); ++ return buffers.toString(); ++} ++#endif ++ + void WebKitProtocolHandler::handleGPU(WebKitURISchemeRequest* request) + { + GString* html = g_string_new( +@@ -324,11 +343,11 @@ void WebKitProtocolHandler::handleGPU(WebKitURISchemeRequest* request) + addTableRow(jsonObject, "API"_s, String::fromUTF8(openGLAPI())); + #if PLATFORM(WAYLAND) + if (PlatformDisplay::sharedDisplay().type() == PlatformDisplay::Type::Wayland) +- addTableRow(hardwareAccelerationObject, "Renderer"_s, usingDMABufRenderer ? "DMABuf"_s : "WPE"_s); ++ addTableRow(hardwareAccelerationObject, "Renderer"_s, usingDMABufRenderer ? dmabufRendererWithSupportedBuffers() : "WPE"_s); + #endif + #if PLATFORM(X11) + if (PlatformDisplay::sharedDisplay().type() == PlatformDisplay::Type::X11) +- addTableRow(hardwareAccelerationObject, "Renderer"_s, usingDMABufRenderer ? "DMABuf"_s : "XWindow"_s); ++ addTableRow(hardwareAccelerationObject, "Renderer"_s, usingDMABufRenderer ? dmabufRendererWithSupportedBuffers() : "XWindow"_s); + #endif + addTableRow(hardwareAccelerationObject, "Native interface"_s, uiProcessContextIsEGL() ? "EGL"_s : "None"_s); + +diff --git a/Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp b/Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp +index 55f27c64aa992..d439751cee32f 100644 +--- a/Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp ++++ b/Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp +@@ -89,11 +89,11 @@ void WebProcessPool::platformInitializeWebProcess(const WebProcessProxy& process + #endif + + #if PLATFORM(GTK) +- parameters.useDMABufSurfaceForCompositing = AcceleratedBackingStoreDMABuf::checkRequirements(); ++ parameters.dmaBufRendererBufferMode = AcceleratedBackingStoreDMABuf::rendererBufferMode(); + #endif + + #if PLATFORM(WAYLAND) +- if (WebCore::PlatformDisplay::sharedDisplay().type() == WebCore::PlatformDisplay::Type::Wayland && !parameters.useDMABufSurfaceForCompositing) { ++ if (WebCore::PlatformDisplay::sharedDisplay().type() == WebCore::PlatformDisplay::Type::Wayland && parameters.dmaBufRendererBufferMode.isEmpty()) { + wpe_loader_init("libWPEBackend-fdo-1.0.so.1"); + if (AcceleratedBackingStoreWayland::checkRequirements()) { + parameters.hostClientFileDescriptor = UnixFileDescriptor { wpe_renderer_host_create_client(), UnixFileDescriptor::Adopt }; +diff --git a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp +index 5a5d2fc4ceacb..1a208de31a054 100644 +--- a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp ++++ b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp +@@ -28,6 +28,7 @@ + + #include "AcceleratedBackingStoreDMABufMessages.h" + #include "AcceleratedSurfaceDMABufMessages.h" ++#include "DMABufRendererBufferMode.h" + #include "LayerTreeContext.h" + #include "ShareableBitmap.h" + #include "WebPageProxy.h" +@@ -49,23 +50,32 @@ + + namespace WebKit { + +-bool AcceleratedBackingStoreDMABuf::checkRequirements() ++OptionSet AcceleratedBackingStoreDMABuf::rendererBufferMode() + { +- static bool available; ++ static OptionSet mode; + static std::once_flag onceFlag; + std::call_once(onceFlag, [] { + const char* disableDMABuf = getenv("WEBKIT_DISABLE_DMABUF_RENDERER"); +- if (disableDMABuf && strcmp(disableDMABuf, "0")) { +- available = false; ++ if (disableDMABuf && strcmp(disableDMABuf, "0")) ++ return; ++ ++ const char* platformExtensions = eglQueryString(nullptr, EGL_EXTENSIONS); ++ if (!WebCore::GLContext::isExtensionSupported(platformExtensions, "EGL_KHR_platform_gbm") ++ && !WebCore::GLContext::isExtensionSupported(platformExtensions, "EGL_MESA_platform_surfaceless")) { + return; + } + ++ mode.add(DMABufRendererBufferMode::SharedMemory); ++ + const auto& eglExtensions = WebCore::PlatformDisplay::sharedDisplay().eglExtensions(); +- available = eglExtensions.KHR_image_base +- && eglExtensions.KHR_surfaceless_context +- && WebCore::GLContext::isExtensionSupported(eglQueryString(nullptr, EGL_EXTENSIONS), "EGL_MESA_platform_surfaceless"); ++ if (eglExtensions.KHR_image_base && eglExtensions.EXT_image_dma_buf_import) ++ mode.add(DMABufRendererBufferMode::Hardware); + }); +- return available; ++ return mode; ++} ++bool AcceleratedBackingStoreDMABuf::checkRequirements() ++{ ++ return !rendererBufferMode().isEmpty(); + } + + std::unique_ptr AcceleratedBackingStoreDMABuf::create(WebPageProxy& webPage) +diff --git a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.h b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.h +index bd52cafbcec61..1bc769ada3135 100644 +--- a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.h ++++ b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.h +@@ -32,6 +32,7 @@ + #include + #include + #include ++#include + #include + #include + +@@ -54,10 +55,12 @@ namespace WebKit { + class ShareableBitmap; + class ShareableBitmapHandle; + class WebPageProxy; ++enum class DMABufRendererBufferMode : uint8_t; + + class AcceleratedBackingStoreDMABuf final : public AcceleratedBackingStore, public IPC::MessageReceiver { + WTF_MAKE_NONCOPYABLE(AcceleratedBackingStoreDMABuf); WTF_MAKE_FAST_ALLOCATED; + public: ++ static OptionSet rendererBufferMode(); + static bool checkRequirements(); + static std::unique_ptr create(WebPageProxy&); + ~AcceleratedBackingStoreDMABuf(); +diff --git a/Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceDMABuf.cpp b/Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceDMABuf.cpp +index c0fce2b286395..e5c49fbf92b63 100644 +--- a/Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceDMABuf.cpp ++++ b/Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceDMABuf.cpp +@@ -442,7 +442,7 @@ void AcceleratedSurfaceDMABuf::clientResize(const WebCore::IntSize& size) + auto& display = WebCore::PlatformDisplay::sharedDisplayForCompositing(); + switch (display.type()) { + case WebCore::PlatformDisplay::Type::Surfaceless: +- if (display.eglExtensions().MESA_image_dma_buf_export) ++ if (display.eglExtensions().MESA_image_dma_buf_export && WebProcess::singleton().dmaBufRendererBufferMode().contains(DMABufRendererBufferMode::Hardware)) + m_target = RenderTargetTexture::create(m_id, size); + else + m_target = RenderTargetSHMImage::create(m_id, size); +diff --git a/Source/WebKit/WebProcess/WebProcess.h b/Source/WebKit/WebProcess/WebProcess.h +index 4a4d5031d4ef3..14c298a0f41bf 100644 +--- a/Source/WebKit/WebProcess/WebProcess.h ++++ b/Source/WebKit/WebProcess/WebProcess.h +@@ -416,6 +416,10 @@ class WebProcess : public AuxiliaryProcess + void revokeLaunchServicesSandboxExtension(); + #endif + ++#if PLATFORM(GTK) ++ const OptionSet& dmaBufRendererBufferMode() const { return m_dmaBufRendererBufferMode; } ++#endif ++ + private: + WebProcess(); + ~WebProcess(); +@@ -739,8 +743,9 @@ class WebProcess : public AuxiliaryProcess + + WeakHashMap m_userGestureTokens; + +-#if PLATFORM(GTK) && USE(EGL) ++#if PLATFORM(GTK) + std::unique_ptr m_displayForCompositing; ++ OptionSet m_dmaBufRendererBufferMode; + #endif + + bool m_hasSuspendedPageProxy { false }; +diff --git a/Source/WebKit/WebProcess/glib/WebProcessGLib.cpp b/Source/WebKit/WebProcess/glib/WebProcessGLib.cpp +index a8ed70bc573e8..686004f4ee825 100644 +--- a/Source/WebKit/WebProcess/glib/WebProcessGLib.cpp ++++ b/Source/WebKit/WebProcess/glib/WebProcessGLib.cpp +@@ -142,12 +142,15 @@ void WebProcess::platformInitializeWebProcess(WebProcessCreationParameters& para + #endif + + #if PLATFORM(GTK) +- if (parameters.useDMABufSurfaceForCompositing) { ++ m_dmaBufRendererBufferMode = parameters.dmaBufRendererBufferMode; ++ if (!m_dmaBufRendererBufferMode.isEmpty()) { + #if USE(GBM) +- const char* disableGBM = getenv("WEBKIT_DMABUF_RENDERER_DISABLE_GBM"); +- if (!disableGBM || !strcmp(disableGBM, "0")) { +- if (auto* device = WebCore::GBMDevice::singleton().device()) +- m_displayForCompositing = WebCore::PlatformDisplayGBM::create(device); ++ if (m_dmaBufRendererBufferMode.contains(DMABufRendererBufferMode::Hardware)) { ++ const char* disableGBM = getenv("WEBKIT_DMABUF_RENDERER_DISABLE_GBM"); ++ if (!disableGBM || !strcmp(disableGBM, "0")) { ++ if (auto* device = WebCore::GBMDevice::singleton().device()) ++ m_displayForCompositing = WebCore::PlatformDisplayGBM::create(device); ++ } + } + #endif + if (!m_displayForCompositing) +@@ -156,7 +159,7 @@ void WebProcess::platformInitializeWebProcess(WebProcessCreationParameters& para + #endif + + #if PLATFORM(WAYLAND) +- if (PlatformDisplay::sharedDisplay().type() == PlatformDisplay::Type::Wayland && !parameters.isServiceWorkerProcess && !parameters.useDMABufSurfaceForCompositing) { ++ if (PlatformDisplay::sharedDisplay().type() == PlatformDisplay::Type::Wayland && !parameters.isServiceWorkerProcess && m_dmaBufRendererBufferMode.isEmpty()) { + auto hostClientFileDescriptor = parameters.hostClientFileDescriptor.release(); + if (hostClientFileDescriptor != -1) { + wpe_loader_init(parameters.implementationLibraryName.data()); diff --git a/webkitgtk.spec b/webkitgtk.spec index 1ab8eb4..4370047 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -35,6 +35,11 @@ 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/15929 +# https://bugs.webkit.org/show_bug.cgi?id=259320 +# Fix content not shown on llvmpipe on Rawhide +Patch0: 15929.patch + BuildRequires: bison BuildRequires: bubblewrap BuildRequires: cmake From 11e3dc7d2f9e4f826a5cc8780c531a192bfe0e7c Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Sat, 19 Aug 2023 13:44:52 -0500 Subject: [PATCH 086/200] Update to 2.41.91 --- .gitignore | 2 + 15929.patch | 358 ------------------------------------------------- sources | 4 +- webkitgtk.spec | 7 +- 4 files changed, 5 insertions(+), 366 deletions(-) delete mode 100644 15929.patch diff --git a/.gitignore b/.gitignore index 3f3af8b..fa8f359 100644 --- a/.gitignore +++ b/.gitignore @@ -21,3 +21,5 @@ /webkitgtk-2.41.4.tar.xz.asc /webkitgtk-2.41.5.tar.xz.asc /webkitgtk-2.41.6.tar.xz.asc +/webkitgtk-2.41.90.tar.xz.asc +/webkitgtk-2.41.91.tar.xz.asc diff --git a/15929.patch b/15929.patch deleted file mode 100644 index b056f43..0000000 --- a/15929.patch +++ /dev/null @@ -1,358 +0,0 @@ -From d6459980ac8a200f46efd4d0668efdb17a9bf951 Mon Sep 17 00:00:00 2001 -From: Carlos Garcia Campos -Date: Wed, 19 Jul 2023 14:00:45 +0200 -Subject: [PATCH] REGRESSION(2.41.6): [GTK] Yelp help viewer and Epiphany - browser do not show content on a virtual machine (llvmpipe?) with WebKitGTK - 2.41.6 https://bugs.webkit.org/show_bug.cgi?id=259320 - -Reviewed by NOBODY (OOPS!). - -The problem is that for some reason the surfaceless platform is claiming -to support EGL_MESA_image_dma_buf_export with llvmpipe driver, while the -display in the UI process doesn't support EGL_EXT_image_dma_buf_import -with llvmpipe as expected. So, we end up exporting DMABuf buffers (or -trying) that the UI process can't handle. We should always pass to the -web process the buffers supported by the UI process (hardware or shared -memory) and ensure we only export buffers supported by the UI process. - -* Source/WebKit/Shared/WebProcessCreationParameters.h: -* Source/WebKit/Shared/WebProcessCreationParameters.serialization.in: -* Source/WebKit/Shared/glib/DMABufRendererBufferMode.h: Added. -* Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp: -(WebKit::dmabufRendererWithSupportedBuffers): -(WebKit::WebKitProtocolHandler::handleGPU): -* Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp: -(WebKit::WebProcessPool::platformInitializeWebProcess): -* Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp: -(WebKit::AcceleratedBackingStoreDMABuf::rendererBufferMode): -(WebKit::AcceleratedBackingStoreDMABuf::checkRequirements): -* Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.h: -* Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceDMABuf.cpp: -(WebKit::AcceleratedSurfaceDMABuf::clientResize): -* Source/WebKit/WebProcess/WebProcess.h: -(WebKit::WebProcess::dmaBufRendererBufferMode const): -* Source/WebKit/WebProcess/glib/WebProcessGLib.cpp: -(WebKit::WebProcess::platformInitializeWebProcess): ---- - .../Shared/WebProcessCreationParameters.h | 3 +- - ...ProcessCreationParameters.serialization.in | 2 +- - .../Shared/glib/DMABufRendererBufferMode.h | 49 +++++++++++++++++++ - .../API/glib/WebKitProtocolHandler.cpp | 23 ++++++++- - .../UIProcess/glib/WebProcessPoolGLib.cpp | 4 +- - .../gtk/AcceleratedBackingStoreDMABuf.cpp | 26 +++++++--- - .../gtk/AcceleratedBackingStoreDMABuf.h | 3 ++ - .../WebPage/gtk/AcceleratedSurfaceDMABuf.cpp | 2 +- - Source/WebKit/WebProcess/WebProcess.h | 7 ++- - .../WebKit/WebProcess/glib/WebProcessGLib.cpp | 15 +++--- - 10 files changed, 112 insertions(+), 22 deletions(-) - create mode 100644 Source/WebKit/Shared/glib/DMABufRendererBufferMode.h - -diff --git a/Source/WebKit/Shared/WebProcessCreationParameters.h b/Source/WebKit/Shared/WebProcessCreationParameters.h -index cd6a3ffdd9f39..4544644d34ec4 100644 ---- a/Source/WebKit/Shared/WebProcessCreationParameters.h -+++ b/Source/WebKit/Shared/WebProcessCreationParameters.h -@@ -57,6 +57,7 @@ - #endif - - #if PLATFORM(GTK) -+#include "DMABufRendererBufferMode.h" - #include "GtkSettingsState.h" - #endif - -@@ -219,7 +220,7 @@ struct WebProcessCreationParameters { - #endif - - #if PLATFORM(GTK) -- bool useDMABufSurfaceForCompositing { false }; -+ OptionSet dmaBufRendererBufferMode; - bool useSystemAppearanceForScrollbars { false }; - GtkSettingsState gtkSettings; - #endif -diff --git a/Source/WebKit/Shared/WebProcessCreationParameters.serialization.in b/Source/WebKit/Shared/WebProcessCreationParameters.serialization.in -index 5716042447a78..99db37e67b4a5 100644 ---- a/Source/WebKit/Shared/WebProcessCreationParameters.serialization.in -+++ b/Source/WebKit/Shared/WebProcessCreationParameters.serialization.in -@@ -173,7 +173,7 @@ struct WebKit::WebProcessCreationParameters { - #endif - - #if PLATFORM(GTK) -- bool useDMABufSurfaceForCompositing; -+ OptionSet dmaBufRendererBufferMode; - bool useSystemAppearanceForScrollbars; - WebKit::GtkSettingsState gtkSettings; - #endif -diff --git a/Source/WebKit/Shared/glib/DMABufRendererBufferMode.h b/Source/WebKit/Shared/glib/DMABufRendererBufferMode.h -new file mode 100644 -index 0000000000000..5cc9ef29de52f ---- /dev/null -+++ b/Source/WebKit/Shared/glib/DMABufRendererBufferMode.h -@@ -0,0 +1,49 @@ -+/* -+ * Copyright (C) 2023 Igalia S.L. -+ * -+ * Redistribution and use in source and binary forms, with or without -+ * modification, are permitted provided that the following conditions -+ * are met: -+ * 1. Redistributions of source code must retain the above copyright -+ * notice, this list of conditions and the following disclaimer. -+ * 2. Redistributions in binary form must reproduce the above copyright -+ * notice, this list of conditions and the following disclaimer in the -+ * documentation and/or other materials provided with the distribution. -+ * -+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. AND ITS CONTRIBUTORS ``AS IS'' -+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, -+ * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ITS CONTRIBUTORS -+ * BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF -+ * THE POSSIBILITY OF SUCH DAMAGE. -+ */ -+ -+#pragma once -+ -+#include -+ -+namespace WebKit { -+ -+enum class DMABufRendererBufferMode : uint8_t { -+ Hardware = 1 << 0, -+ SharedMemory = 1 << 1 -+}; -+ -+} // namespace WebKit -+ -+namespace WTF { -+ -+template<> struct EnumTraits { -+ using values = EnumValues< -+ WebKit::DMABufRendererBufferMode, -+ WebKit::DMABufRendererBufferMode::Hardware, -+ WebKit::DMABufRendererBufferMode::SharedMemory -+ >; -+}; -+ -+} // namespace WTF -diff --git a/Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp b/Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp -index 1a89c19966022..8bdcf48b446ab 100644 ---- a/Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp -+++ b/Source/WebKit/UIProcess/API/glib/WebKitProtocolHandler.cpp -@@ -46,6 +46,7 @@ - - #if PLATFORM(GTK) - #include "AcceleratedBackingStoreDMABuf.h" -+#include "DMABufRendererBufferMode.h" - #include - #include - -@@ -158,6 +159,24 @@ static const char* openGLAPI() - return "OpenGL ES 2 (libepoxy)"; - } - -+#if PLATFORM(GTK) -+static String dmabufRendererWithSupportedBuffers() -+{ -+ StringBuilder buffers; -+ buffers.append("DMABuf (Supported buffers: "_s); -+ auto mode = AcceleratedBackingStoreDMABuf::rendererBufferMode(); -+ if (mode.contains(DMABufRendererBufferMode::Hardware)) -+ buffers.append("Hardware"_s); -+ if (mode.contains(DMABufRendererBufferMode::SharedMemory)) { -+ if (mode.contains(DMABufRendererBufferMode::Hardware)) -+ buffers.append(", "); -+ buffers.append("Shared Memory"_s); -+ } -+ buffers.append(')'); -+ return buffers.toString(); -+} -+#endif -+ - void WebKitProtocolHandler::handleGPU(WebKitURISchemeRequest* request) - { - GString* html = g_string_new( -@@ -324,11 +343,11 @@ void WebKitProtocolHandler::handleGPU(WebKitURISchemeRequest* request) - addTableRow(jsonObject, "API"_s, String::fromUTF8(openGLAPI())); - #if PLATFORM(WAYLAND) - if (PlatformDisplay::sharedDisplay().type() == PlatformDisplay::Type::Wayland) -- addTableRow(hardwareAccelerationObject, "Renderer"_s, usingDMABufRenderer ? "DMABuf"_s : "WPE"_s); -+ addTableRow(hardwareAccelerationObject, "Renderer"_s, usingDMABufRenderer ? dmabufRendererWithSupportedBuffers() : "WPE"_s); - #endif - #if PLATFORM(X11) - if (PlatformDisplay::sharedDisplay().type() == PlatformDisplay::Type::X11) -- addTableRow(hardwareAccelerationObject, "Renderer"_s, usingDMABufRenderer ? "DMABuf"_s : "XWindow"_s); -+ addTableRow(hardwareAccelerationObject, "Renderer"_s, usingDMABufRenderer ? dmabufRendererWithSupportedBuffers() : "XWindow"_s); - #endif - addTableRow(hardwareAccelerationObject, "Native interface"_s, uiProcessContextIsEGL() ? "EGL"_s : "None"_s); - -diff --git a/Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp b/Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp -index 55f27c64aa992..d439751cee32f 100644 ---- a/Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp -+++ b/Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp -@@ -89,11 +89,11 @@ void WebProcessPool::platformInitializeWebProcess(const WebProcessProxy& process - #endif - - #if PLATFORM(GTK) -- parameters.useDMABufSurfaceForCompositing = AcceleratedBackingStoreDMABuf::checkRequirements(); -+ parameters.dmaBufRendererBufferMode = AcceleratedBackingStoreDMABuf::rendererBufferMode(); - #endif - - #if PLATFORM(WAYLAND) -- if (WebCore::PlatformDisplay::sharedDisplay().type() == WebCore::PlatformDisplay::Type::Wayland && !parameters.useDMABufSurfaceForCompositing) { -+ if (WebCore::PlatformDisplay::sharedDisplay().type() == WebCore::PlatformDisplay::Type::Wayland && parameters.dmaBufRendererBufferMode.isEmpty()) { - wpe_loader_init("libWPEBackend-fdo-1.0.so.1"); - if (AcceleratedBackingStoreWayland::checkRequirements()) { - parameters.hostClientFileDescriptor = UnixFileDescriptor { wpe_renderer_host_create_client(), UnixFileDescriptor::Adopt }; -diff --git a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp -index 5a5d2fc4ceacb..1a208de31a054 100644 ---- a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp -+++ b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.cpp -@@ -28,6 +28,7 @@ - - #include "AcceleratedBackingStoreDMABufMessages.h" - #include "AcceleratedSurfaceDMABufMessages.h" -+#include "DMABufRendererBufferMode.h" - #include "LayerTreeContext.h" - #include "ShareableBitmap.h" - #include "WebPageProxy.h" -@@ -49,23 +50,32 @@ - - namespace WebKit { - --bool AcceleratedBackingStoreDMABuf::checkRequirements() -+OptionSet AcceleratedBackingStoreDMABuf::rendererBufferMode() - { -- static bool available; -+ static OptionSet mode; - static std::once_flag onceFlag; - std::call_once(onceFlag, [] { - const char* disableDMABuf = getenv("WEBKIT_DISABLE_DMABUF_RENDERER"); -- if (disableDMABuf && strcmp(disableDMABuf, "0")) { -- available = false; -+ if (disableDMABuf && strcmp(disableDMABuf, "0")) -+ return; -+ -+ const char* platformExtensions = eglQueryString(nullptr, EGL_EXTENSIONS); -+ if (!WebCore::GLContext::isExtensionSupported(platformExtensions, "EGL_KHR_platform_gbm") -+ && !WebCore::GLContext::isExtensionSupported(platformExtensions, "EGL_MESA_platform_surfaceless")) { - return; - } - -+ mode.add(DMABufRendererBufferMode::SharedMemory); -+ - const auto& eglExtensions = WebCore::PlatformDisplay::sharedDisplay().eglExtensions(); -- available = eglExtensions.KHR_image_base -- && eglExtensions.KHR_surfaceless_context -- && WebCore::GLContext::isExtensionSupported(eglQueryString(nullptr, EGL_EXTENSIONS), "EGL_MESA_platform_surfaceless"); -+ if (eglExtensions.KHR_image_base && eglExtensions.EXT_image_dma_buf_import) -+ mode.add(DMABufRendererBufferMode::Hardware); - }); -- return available; -+ return mode; -+} -+bool AcceleratedBackingStoreDMABuf::checkRequirements() -+{ -+ return !rendererBufferMode().isEmpty(); - } - - std::unique_ptr AcceleratedBackingStoreDMABuf::create(WebPageProxy& webPage) -diff --git a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.h b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.h -index bd52cafbcec61..1bc769ada3135 100644 ---- a/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.h -+++ b/Source/WebKit/UIProcess/gtk/AcceleratedBackingStoreDMABuf.h -@@ -32,6 +32,7 @@ - #include - #include - #include -+#include - #include - #include - -@@ -54,10 +55,12 @@ namespace WebKit { - class ShareableBitmap; - class ShareableBitmapHandle; - class WebPageProxy; -+enum class DMABufRendererBufferMode : uint8_t; - - class AcceleratedBackingStoreDMABuf final : public AcceleratedBackingStore, public IPC::MessageReceiver { - WTF_MAKE_NONCOPYABLE(AcceleratedBackingStoreDMABuf); WTF_MAKE_FAST_ALLOCATED; - public: -+ static OptionSet rendererBufferMode(); - static bool checkRequirements(); - static std::unique_ptr create(WebPageProxy&); - ~AcceleratedBackingStoreDMABuf(); -diff --git a/Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceDMABuf.cpp b/Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceDMABuf.cpp -index c0fce2b286395..e5c49fbf92b63 100644 ---- a/Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceDMABuf.cpp -+++ b/Source/WebKit/WebProcess/WebPage/gtk/AcceleratedSurfaceDMABuf.cpp -@@ -442,7 +442,7 @@ void AcceleratedSurfaceDMABuf::clientResize(const WebCore::IntSize& size) - auto& display = WebCore::PlatformDisplay::sharedDisplayForCompositing(); - switch (display.type()) { - case WebCore::PlatformDisplay::Type::Surfaceless: -- if (display.eglExtensions().MESA_image_dma_buf_export) -+ if (display.eglExtensions().MESA_image_dma_buf_export && WebProcess::singleton().dmaBufRendererBufferMode().contains(DMABufRendererBufferMode::Hardware)) - m_target = RenderTargetTexture::create(m_id, size); - else - m_target = RenderTargetSHMImage::create(m_id, size); -diff --git a/Source/WebKit/WebProcess/WebProcess.h b/Source/WebKit/WebProcess/WebProcess.h -index 4a4d5031d4ef3..14c298a0f41bf 100644 ---- a/Source/WebKit/WebProcess/WebProcess.h -+++ b/Source/WebKit/WebProcess/WebProcess.h -@@ -416,6 +416,10 @@ class WebProcess : public AuxiliaryProcess - void revokeLaunchServicesSandboxExtension(); - #endif - -+#if PLATFORM(GTK) -+ const OptionSet& dmaBufRendererBufferMode() const { return m_dmaBufRendererBufferMode; } -+#endif -+ - private: - WebProcess(); - ~WebProcess(); -@@ -739,8 +743,9 @@ class WebProcess : public AuxiliaryProcess - - WeakHashMap m_userGestureTokens; - --#if PLATFORM(GTK) && USE(EGL) -+#if PLATFORM(GTK) - std::unique_ptr m_displayForCompositing; -+ OptionSet m_dmaBufRendererBufferMode; - #endif - - bool m_hasSuspendedPageProxy { false }; -diff --git a/Source/WebKit/WebProcess/glib/WebProcessGLib.cpp b/Source/WebKit/WebProcess/glib/WebProcessGLib.cpp -index a8ed70bc573e8..686004f4ee825 100644 ---- a/Source/WebKit/WebProcess/glib/WebProcessGLib.cpp -+++ b/Source/WebKit/WebProcess/glib/WebProcessGLib.cpp -@@ -142,12 +142,15 @@ void WebProcess::platformInitializeWebProcess(WebProcessCreationParameters& para - #endif - - #if PLATFORM(GTK) -- if (parameters.useDMABufSurfaceForCompositing) { -+ m_dmaBufRendererBufferMode = parameters.dmaBufRendererBufferMode; -+ if (!m_dmaBufRendererBufferMode.isEmpty()) { - #if USE(GBM) -- const char* disableGBM = getenv("WEBKIT_DMABUF_RENDERER_DISABLE_GBM"); -- if (!disableGBM || !strcmp(disableGBM, "0")) { -- if (auto* device = WebCore::GBMDevice::singleton().device()) -- m_displayForCompositing = WebCore::PlatformDisplayGBM::create(device); -+ if (m_dmaBufRendererBufferMode.contains(DMABufRendererBufferMode::Hardware)) { -+ const char* disableGBM = getenv("WEBKIT_DMABUF_RENDERER_DISABLE_GBM"); -+ if (!disableGBM || !strcmp(disableGBM, "0")) { -+ if (auto* device = WebCore::GBMDevice::singleton().device()) -+ m_displayForCompositing = WebCore::PlatformDisplayGBM::create(device); -+ } - } - #endif - if (!m_displayForCompositing) -@@ -156,7 +159,7 @@ void WebProcess::platformInitializeWebProcess(WebProcessCreationParameters& para - #endif - - #if PLATFORM(WAYLAND) -- if (PlatformDisplay::sharedDisplay().type() == PlatformDisplay::Type::Wayland && !parameters.isServiceWorkerProcess && !parameters.useDMABufSurfaceForCompositing) { -+ if (PlatformDisplay::sharedDisplay().type() == PlatformDisplay::Type::Wayland && !parameters.isServiceWorkerProcess && m_dmaBufRendererBufferMode.isEmpty()) { - auto hostClientFileDescriptor = parameters.hostClientFileDescriptor.release(); - if (hostClientFileDescriptor != -1) { - wpe_loader_init(parameters.implementationLibraryName.data()); diff --git a/sources b/sources index 3ebabb3..2d1dc03 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.41.6.tar.xz) = 89cc03b86a689fcf6edccf9e7adc9e128fe55776d46ab81b08332f490bbe8b63af96c4595d3e040133f83e8e0af1b5cf95b09936698e531f4c2cf99b052d316e -SHA512 (webkitgtk-2.41.6.tar.xz.asc) = c50546dc09fce1808af069ebe6ad12277c3e254e9d47d93ecc6b1fb8be1e635ccf1594bf7c13dcf2e3ad7e866e7f65cdc3a993b59c690094f79f6aac83f7b45d +SHA512 (webkitgtk-2.41.91.tar.xz.asc) = 8519795d85809e5c9ecfb8292e5bb9e6a963ff00388c08b1fb1d4d9554503212d1ab3fe51cbeecd4d391f4bc87b0770d28bc6428b38e0639807a98619320c961 +SHA512 (webkitgtk-2.41.91.tar.xz) = 14381994830daff1a5126f0919760fdb7689a6ef4d96bdc147546839fbe5c012f71f3c4b51be6714bc25a0dc04260d4809d569fcc96cf60ae620fb8aeff5184a diff --git a/webkitgtk.spec b/webkitgtk.spec index 4370047..03ba646 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -22,7 +22,7 @@ %endif Name: webkitgtk -Version: 2.41.6 +Version: 2.41.91 Release: %autorelease Summary: GTK web content engine library @@ -35,11 +35,6 @@ 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/15929 -# https://bugs.webkit.org/show_bug.cgi?id=259320 -# Fix content not shown on llvmpipe on Rawhide -Patch0: 15929.patch - BuildRequires: bison BuildRequires: bubblewrap BuildRequires: cmake From a1019362624fdab0454f018593f11cca62a5ff8f Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Sat, 19 Aug 2023 13:46:33 -0500 Subject: [PATCH 087/200] Remove webkitgtk-4.0 API version https://fedoraproject.org/wiki/Changes/Remove_webkit2gtk-4.0_API_Version --- webkitgtk.spec | 184 ------------------------------------------------- 1 file changed, 184 deletions(-) diff --git a/webkitgtk.spec b/webkitgtk.spec index 03ba646..e15f15a 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -15,12 +15,6 @@ # any warning during WebKit docs build is fatal! %bcond_without docs -# https://fedoraproject.org/wiki/Changes/Remove_webkit2gtk-4.0_API_Version -# ELN (RHEL 10) no longer needs 4.0 -%if %{undefined rhel} || 0%{?rhel} < 10 -%bcond_without api40 -%endif - Name: webkitgtk Version: 2.41.91 Release: %autorelease @@ -89,9 +83,6 @@ BuildRequires: pkgconfig(libopenjp2) BuildRequires: pkgconfig(libpng) BuildRequires: pkgconfig(libseccomp) BuildRequires: pkgconfig(libsecret-1) -%if %{with api40} -BuildRequires: pkgconfig(libsoup-2.4) -%endif BuildRequires: pkgconfig(libsoup-3.0) BuildRequires: pkgconfig(libsystemd) BuildRequires: pkgconfig(libtasn1) @@ -153,29 +144,6 @@ Provides: bundled(xdgmime) WebKitGTK is the port of the WebKit web rendering engine to the GTK platform. This package contains WebKitGTK for GTK 3 and libsoup 3. -%if %{with api40} -%package -n webkit2gtk4.0 -Summary: WebKitGTK for GTK 3 and libsoup 2 -Requires: javascriptcoregtk4.0%{?_isa} = %{version}-%{release} -Requires: bubblewrap -Requires: xdg-dbus-proxy -Recommends: geoclue2 -Recommends: gstreamer1-plugins-bad-free -Recommends: gstreamer1-plugins-good -Recommends: xdg-desktop-portal-gtk -Provides: bundled(angle) -Provides: bundled(pdfjs) -Provides: bundled(xdgmime) -Obsoletes: webkitgtk4 < %{version}-%{release} -Provides: webkitgtk4 = %{version}-%{release} -Obsoletes: webkit2gtk3 < %{version}-%{release} -Provides: webkit2gtk3 = %{version}-%{release} - -%description -n webkit2gtk4.0 -WebKitGTK is the port of the WebKit web rendering engine to the -GTK platform. This package contains WebKitGTK for GTK 3 and libsoup 2. -%endif - %package -n webkitgtk6.0-devel Summary: Development files for webkitgtk6.0 Requires: webkitgtk6.0%{?_isa} = %{version}-%{release} @@ -197,22 +165,6 @@ Requires: javascriptcoregtk4.1-devel%{?_isa} = %{version}-%{release} The webkit2gtk4.1-devel package contains libraries, build data, and header files for developing applications that use webkit2gtk4.1. -%if %{with api40} -%package -n webkit2gtk4.0-devel -Summary: Development files for webkit2gtk4.0 -Requires: webkit2gtk4.0%{?_isa} = %{version}-%{release} -Requires: javascriptcoregtk4.0%{?_isa} = %{version}-%{release} -Requires: javascriptcoregtk4.0-devel%{?_isa} = %{version}-%{release} -Obsoletes: webkitgtk4-devel < %{version}-%{release} -Provides: webkitgtk4-devel = %{version}-%{release} -Obsoletes: webkit2gtk3-devel < %{version}-%{release} -Provides: webkit2gtk3-devel = %{version}-%{release} - -%description -n webkit2gtk4.0-devel -The webkit2gtk4.0-devel package contains libraries, build data, and header -files for developing applications that use webkit2gtk4.0. -%endif - %if %{with docs} %package -n webkitgtk6.0-doc Summary: Documentation files for webkit2gtk5.0 @@ -232,21 +184,6 @@ Recommends: gi-docgen-fonts %description -n webkit2gtk4.1-doc This package contains developer documentation for webkit2gtk4.1. - -%if %{with api40} -%package -n webkit2gtk4.0-doc -Summary: Documentation files for webkit2gtk4.0 -BuildArch: noarch -Requires: webkit2gtk4.0 = %{version}-%{release} -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 %endif %package -n javascriptcoregtk6.0 @@ -263,18 +200,6 @@ Obsoletes: webkit2gtk4.1-jsc < %{version}-%{release} %description -n javascriptcoregtk4.1 This package contains the JavaScript engine from webkit2gtk4.1. -%if %{with api40} -%package -n javascriptcoregtk4.0 -Summary: JavaScript engine from webkit2gtk4.0 -Obsoletes: webkitgtk4-jsc < %{version}-%{release} -Provides: webkitgtk4-jsc = %{version}-%{release} -Obsoletes: webkit2gtk3-jsc < %{version}-%{release} -Provides: webkit2gtk3-jsc = %{version}-%{release} - -%description -n javascriptcoregtk4.0 -This package contains the JavaScript engine from webkit2gtk4.0. -%endif - %package -n javascriptcoregtk6.0-devel Summary: Development files for JavaScript engine from webkitgtk6.0 Requires: javascriptcoregtk6.0%{?_isa} = %{version}-%{release} @@ -293,20 +218,6 @@ Obsoletes: webkit2gtk4.1-jsc-devel < %{version}-%{release} The javascriptcoregtk4.1-devel package contains libraries, build data, and header files for developing applications that use JavaScript engine from webkit2gtk-4.1. -%if %{with api40} -%package -n javascriptcoregtk4.0-devel -Summary: Development files for JavaScript engine from webkit2gtk4.0 -Requires: javascriptcoregtk4.0%{?_isa} = %{version}-%{release} -Obsoletes: webkitgtk4-jsc-devel < %{version}-%{release} -Provides: webkitgtk4-jsc-devel = %{version}-%{release} -Obsoletes: webkit2gtk3-jsc-devel < %{version}-%{release} -Provides: webkit2gtk3-jsc-devel = %{version}-%{release} - -%description -n javascriptcoregtk4.0-devel -The javascriptcoregtk4.0-devel package contains libraries, build data, and header -files for developing applications that use JavaScript engine from webkit2gtk-4.0. -%endif - %prep %{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}' %autosetup -p1 -n webkitgtk-%{version} @@ -377,28 +288,6 @@ files for developing applications that use JavaScript engine from webkit2gtk-4.0 %endif %{nil} -%if %{with api40} -%define _vpath_builddir %{_vendor}-%{_target_os}-build/webkit2gtk-4.0 -%cmake \ - -GNinja \ - -DPORT=GTK \ - -DCMAKE_BUILD_TYPE=Release \ - -DUSE_SOUP2=ON \ - -DENABLE_WEBDRIVER=OFF \ -%if %{without docs} - -DENABLE_DOCUMENTATION=OFF \ -%endif -%if !0%{?with_gamepad} - -DENABLE_GAMEPAD=OFF \ -%endif -%if 0%{?rhel} -%ifarch aarch64 - -DUSE_64KB_PAGE_BLOCK=ON \ -%endif -%endif - %{nil} -%endif - %define _vpath_builddir %{_vendor}-%{_target_os}-build/webkitgtk-6.0 export NINJA_STATUS="[1/3][%f/%t %es] " %cmake_build %limit_build -m 3072 @@ -407,12 +296,6 @@ export NINJA_STATUS="[1/3][%f/%t %es] " export NINJA_STATUS="[2/3][%f/%t %es] " %cmake_build %limit_build -m 3072 -%if %{with api40} -%define _vpath_builddir %{_vendor}-%{_target_os}-build/webkit2gtk-4.0 -export NINJA_STATUS="[3/3][%f/%t %es] " -%cmake_build %limit_build -m 3072 -%endif - %install %define _vpath_builddir %{_vendor}-%{_target_os}-build/webkitgtk-6.0 %cmake_install @@ -420,16 +303,8 @@ export NINJA_STATUS="[3/3][%f/%t %es] " %define _vpath_builddir %{_vendor}-%{_target_os}-build/webkit2gtk-4.1 %cmake_install -%if %{with api40} -%define _vpath_builddir %{_vendor}-%{_target_os}-build/webkit2gtk-4.0 -%cmake_install -%endif - %find_lang WebKitGTK-6.0 %find_lang WebKitGTK-4.1 -%if %{with api40} -%find_lang WebKitGTK-4.0 -%endif # Finally, copy over and rename various files for %%license inclusion %add_to_license_files Source/JavaScriptCore/COPYING.LIB @@ -474,22 +349,6 @@ export NINJA_STATUS="[3/3][%f/%t %es] " %exclude %{_libexecdir}/webkit2gtk-4.1/MiniBrowser %exclude %{_libexecdir}/webkit2gtk-4.1/jsc -%if %{with api40} -%files -n webkit2gtk4.0 -f WebKitGTK-4.0.lang -%license _license_files/*ThirdParty* -%license _license_files/*WebCore* -%license _license_files/*WebInspectorUI* -%license _license_files/*WTF* -%{_libdir}/libwebkit2gtk-4.0.so.37* -%dir %{_libdir}/girepository-1.0 -%{_libdir}/girepository-1.0/WebKit2-4.0.typelib -%{_libdir}/girepository-1.0/WebKit2WebExtension-4.0.typelib -%{_libdir}/webkit2gtk-4.0/ -%{_libexecdir}/webkit2gtk-4.0/ -%exclude %{_libexecdir}/webkit2gtk-4.0/MiniBrowser -%exclude %{_libexecdir}/webkit2gtk-4.0/jsc -%endif - %files -n webkitgtk6.0-devel %{_libexecdir}/webkitgtk-6.0/MiniBrowser %{_includedir}/webkitgtk-6.0/ @@ -513,20 +372,6 @@ export NINJA_STATUS="[3/3][%f/%t %es] " %{_datadir}/gir-1.0/WebKit2-4.1.gir %{_datadir}/gir-1.0/WebKit2WebExtension-4.1.gir -%if %{with api40} -%files -n webkit2gtk4.0-devel -%{_libexecdir}/webkit2gtk-4.0/MiniBrowser -%{_includedir}/webkitgtk-4.0/ -%exclude %{_includedir}/webkitgtk-4.0/JavaScriptCore -%exclude %{_includedir}/webkitgtk-4.0/jsc -%{_libdir}/libwebkit2gtk-4.0.so -%{_libdir}/pkgconfig/webkit2gtk-4.0.pc -%{_libdir}/pkgconfig/webkit2gtk-web-extension-4.0.pc -%dir %{_datadir}/gir-1.0 -%{_datadir}/gir-1.0/WebKit2-4.0.gir -%{_datadir}/gir-1.0/WebKit2WebExtension-4.0.gir -%endif - %files -n javascriptcoregtk6.0 %license _license_files/*JavaScriptCore* %{_libdir}/libjavascriptcoregtk-6.0.so.1* @@ -539,14 +384,6 @@ export NINJA_STATUS="[3/3][%f/%t %es] " %dir %{_libdir}/girepository-1.0 %{_libdir}/girepository-1.0/JavaScriptCore-4.1.typelib -%if %{with api40} -%files -n javascriptcoregtk4.0 -%license _license_files/*JavaScriptCore* -%{_libdir}/libjavascriptcoregtk-4.0.so.18* -%dir %{_libdir}/girepository-1.0 -%{_libdir}/girepository-1.0/JavaScriptCore-4.0.typelib -%endif - %files -n javascriptcoregtk6.0-devel %{_libexecdir}/webkitgtk-6.0/jsc %dir %{_includedir}/webkitgtk-6.0 @@ -566,18 +403,6 @@ export NINJA_STATUS="[3/3][%f/%t %es] " %dir %{_datadir}/gir-1.0 %{_datadir}/gir-1.0/JavaScriptCore-4.1.gir -%if %{with api40} -%files -n javascriptcoregtk4.0-devel -%{_libexecdir}/webkit2gtk-4.0/jsc -%dir %{_includedir}/webkitgtk-4.0 -%{_includedir}/webkitgtk-4.0/JavaScriptCore/ -%{_includedir}/webkitgtk-4.0/jsc/ -%{_libdir}/libjavascriptcoregtk-4.0.so -%{_libdir}/pkgconfig/javascriptcoregtk-4.0.pc -%dir %{_datadir}/gir-1.0 -%{_datadir}/gir-1.0/JavaScriptCore-4.0.gir -%endif - %if %{with docs} %files -n webkitgtk6.0-doc %dir %{_datadir}/gtk-doc @@ -592,15 +417,6 @@ export NINJA_STATUS="[3/3][%f/%t %es] " %{_datadir}/gtk-doc/html/javascriptcoregtk-4.1/ %{_datadir}/gtk-doc/html/webkit2gtk-4.1/ %{_datadir}/gtk-doc/html/webkit2gtk-web-extension-4.1/ - -%if %{with api40} -%files -n webkit2gtk4.0-doc -%dir %{_datadir}/gtk-doc -%dir %{_datadir}/gtk-doc/html -%{_datadir}/gtk-doc/html/javascriptcoregtk-4.0/ -%{_datadir}/gtk-doc/html/webkit2gtk-4.0/ -%{_datadir}/gtk-doc/html/webkit2gtk-web-extension-4.0/ -%endif %endif %changelog From 8b3f7edd99951a4fd4190a46799a43f1a5c42b3a Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Sat, 19 Aug 2023 14:10:44 -0500 Subject: [PATCH 088/200] Disable LTO again to fix build Avoids: /usr/lib64/libglib-2.0.so /usr/lib64/libz.so /usr/lib64/libsystemd.so && : /usr/bin/ld: /tmp/cczGkWSW.ltrans0.ltrans.o: in function `ipint_table_size_validate': :(.text+0x49f0f): undefined reference to `ipint_extern_table_size' /usr/bin/ld: /tmp/cczGkWSW.ltrans0.ltrans.o: in function `ipint_table_fill_validate': :(.text+0x4a019): undefined reference to `ipint_extern_table_fill' which I am not able to reproduce locally, even when using -flto=auto. --- webkitgtk.spec | 2 ++ 1 file changed, 2 insertions(+) diff --git a/webkitgtk.spec b/webkitgtk.spec index e15f15a..96c3107 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -10,6 +10,8 @@ %global with_gamepad 1 %endif +%global _lto_cflags %{nil} + # Build documentation by default (use `rpmbuild --without docs` to override it). # This is used by Coverity. Coverity injects custom compiler warnings, but # any warning during WebKit docs build is fatal! From 951bdc8fab6e95715b05aee94e66c10bd5e6a8d2 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Fri, 8 Sep 2023 07:55:37 -0500 Subject: [PATCH 089/200] Update to 2.41.92 --- .gitignore | 1 + sources | 4 ++-- webkitgtk.spec | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index fa8f359..64e9b30 100644 --- a/.gitignore +++ b/.gitignore @@ -23,3 +23,4 @@ /webkitgtk-2.41.6.tar.xz.asc /webkitgtk-2.41.90.tar.xz.asc /webkitgtk-2.41.91.tar.xz.asc +/webkitgtk-2.41.92.tar.xz.asc diff --git a/sources b/sources index 2d1dc03..145075a 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.41.91.tar.xz.asc) = 8519795d85809e5c9ecfb8292e5bb9e6a963ff00388c08b1fb1d4d9554503212d1ab3fe51cbeecd4d391f4bc87b0770d28bc6428b38e0639807a98619320c961 -SHA512 (webkitgtk-2.41.91.tar.xz) = 14381994830daff1a5126f0919760fdb7689a6ef4d96bdc147546839fbe5c012f71f3c4b51be6714bc25a0dc04260d4809d569fcc96cf60ae620fb8aeff5184a +SHA512 (webkitgtk-2.41.92.tar.xz) = f9f3608bb1d22dc71503989de2fe1caf9a0e3a2b0399013b5f2ea6a7004aaf462fcc39203de7cb5d195abe5e5262e47ad167a0f080468d2efcb76394f5c5d3a0 +SHA512 (webkitgtk-2.41.92.tar.xz.asc) = 95453e4a5384e126c48ba0853db601d3c8bcba8f20f0c546058a2d29093e8e6e1dfdf0e13fa8133c0b2b3252bc6866ee066f575b5972a53f1244d2b5e1841332 diff --git a/webkitgtk.spec b/webkitgtk.spec index 96c3107..f1cb204 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -18,7 +18,7 @@ %bcond_without docs Name: webkitgtk -Version: 2.41.91 +Version: 2.41.92 Release: %autorelease Summary: GTK web content engine library From 36e3f8cf9de9ff3d54fc9aba06a6df6c9ba5e813 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Fri, 15 Sep 2023 09:21:08 -0500 Subject: [PATCH 090/200] Update to WebKitGTK 2.42.0 --- .gitignore | 1 + sources | 4 ++-- webkitgtk.spec | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 64e9b30..91ad783 100644 --- a/.gitignore +++ b/.gitignore @@ -24,3 +24,4 @@ /webkitgtk-2.41.90.tar.xz.asc /webkitgtk-2.41.91.tar.xz.asc /webkitgtk-2.41.92.tar.xz.asc +/webkitgtk-2.42.0.tar.xz.asc diff --git a/sources b/sources index 145075a..83a640b 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.41.92.tar.xz) = f9f3608bb1d22dc71503989de2fe1caf9a0e3a2b0399013b5f2ea6a7004aaf462fcc39203de7cb5d195abe5e5262e47ad167a0f080468d2efcb76394f5c5d3a0 -SHA512 (webkitgtk-2.41.92.tar.xz.asc) = 95453e4a5384e126c48ba0853db601d3c8bcba8f20f0c546058a2d29093e8e6e1dfdf0e13fa8133c0b2b3252bc6866ee066f575b5972a53f1244d2b5e1841332 +SHA512 (webkitgtk-2.42.0.tar.xz) = f71627182707f4ab34483a16b74d1519d7234833151ced818e54749f8ecb1f2956cc5d76e09957d07b727155c023e7b75426ad38ee955928fcac9e68d6304e2b +SHA512 (webkitgtk-2.42.0.tar.xz.asc) = 5442918fb976bc280237bdc2ae4c8ff809b7c238b1cd6c913c73afc35b49782b9e8d73098b6ed0f70a6fcd57fd33fa2bea15c2fb9b5553dc2796b13b4b511c61 diff --git a/webkitgtk.spec b/webkitgtk.spec index f1cb204..73a9d1d 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -18,7 +18,7 @@ %bcond_without docs Name: webkitgtk -Version: 2.41.92 +Version: 2.42.0 Release: %autorelease Summary: GTK web content engine library From f428956b0ed9e5cbb59a3473d520c8f239724f9c Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Wed, 27 Sep 2023 08:21:23 -0500 Subject: [PATCH 091/200] Update to 2.40.1 and fix GL dependencies GLES needs to be available at runtime or we'll crash, #2240428. It's not needed at runtime because it's only used via libepoxy. And desktop GL is no longer used at all. Fixes #2240428 --- .gitignore | 1 + sources | 4 ++-- webkitgtk.spec | 6 +++--- 3 files changed, 6 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index 91ad783..43add4d 100644 --- a/.gitignore +++ b/.gitignore @@ -25,3 +25,4 @@ /webkitgtk-2.41.91.tar.xz.asc /webkitgtk-2.41.92.tar.xz.asc /webkitgtk-2.42.0.tar.xz.asc +/webkitgtk-2.42.1.tar.xz.asc diff --git a/sources b/sources index 83a640b..798f8a4 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.42.0.tar.xz) = f71627182707f4ab34483a16b74d1519d7234833151ced818e54749f8ecb1f2956cc5d76e09957d07b727155c023e7b75426ad38ee955928fcac9e68d6304e2b -SHA512 (webkitgtk-2.42.0.tar.xz.asc) = 5442918fb976bc280237bdc2ae4c8ff809b7c238b1cd6c913c73afc35b49782b9e8d73098b6ed0f70a6fcd57fd33fa2bea15c2fb9b5553dc2796b13b4b511c61 +SHA512 (webkitgtk-2.42.1.tar.xz) = c7ff45e748a2a3d381db05c7f05b7515d8e4e771e703dab6d153cb32392ff64f63f7d4039701676180abb6fd718153e762ce8ca9aede2ecbe0dc4efde5ed660c +SHA512 (webkitgtk-2.42.1.tar.xz.asc) = 4ef914ebeade2033e4021d37b2d233855470ab9748e3f2029c34e34b2ff486a7fe239224d49b53dec00a9a11c3053677666bab997a8d89160a108c55ffd661ed diff --git a/webkitgtk.spec b/webkitgtk.spec index 73a9d1d..f277b6d 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -18,7 +18,7 @@ %bcond_without docs Name: webkitgtk -Version: 2.42.0 +Version: 2.42.1 Release: %autorelease Summary: GTK web content engine library @@ -63,9 +63,7 @@ BuildRequires: pkgconfig(epoxy) BuildRequires: pkgconfig(fontconfig) BuildRequires: pkgconfig(freetype2) BuildRequires: pkgconfig(gbm) -BuildRequires: pkgconfig(gl) 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) @@ -115,6 +113,7 @@ GTK platform. Summary: WebKitGTK for GTK 4 Requires: javascriptcoregtk6.0%{?_isa} = %{version}-%{release} Requires: bubblewrap +Requires: libGLES Requires: xdg-dbus-proxy Recommends: geoclue2 Recommends: gstreamer1-plugins-bad-free @@ -133,6 +132,7 @@ GTK platform. This package contains WebKitGTK for GTK 4. Summary: WebKitGTK for GTK 3 and libsoup 3 Requires: javascriptcoregtk4.1%{?_isa} = %{version}-%{release} Requires: bubblewrap +Requires: libGLES Requires: xdg-dbus-proxy Recommends: geoclue2 Recommends: gstreamer1-plugins-bad-free From 9c17d1998a44637490404e8abf08affdd5ca70d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miroslav=20Such=C3=BD?= Date: Sun, 22 Oct 2023 08:53:48 +0000 Subject: [PATCH 092/200] license analysis Initial migration to SPDX. But the code contains two licenses that are not on the SPDX list yet. The comment contains references to issues where it is tracked. --- webkitgtk.spec | 37 ++++++++++++++++++++++++++++++++++++- 1 file changed, 36 insertions(+), 1 deletion(-) diff --git a/webkitgtk.spec b/webkitgtk.spec index f277b6d..4bb1434 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -22,7 +22,33 @@ Version: 2.42.1 Release: %autorelease Summary: GTK web content engine library -License: LGPLv2 +# Source/bmalloc/bmalloc/*.h is BSD-2-Clause +# Source/bmalloc/bmalloc/CryptoRandom.cpp is ISC +# Source/bmalloc/bmalloc/valgrind.h is is bzip2-1.0.6 +# Source/bmalloc/libpas/src/test/RedBlackTreeTests.cpp is BSD-3-Clause +# Source/JavaScriptCore/config.h is LGPL-2.0-or-later +# Source/JavaScriptCore/b3/B3ComputeDivisionMagic.h is NCSA +# Source/JavaScriptCore/disassembler/zydis/* is MIT +# Source/JavaScriptCore/runtime/JSDateMath.h is MPL 1.1/GPL 2.0/LGPL 2.1 +# Source/JavaScriptCore/runtime/MathCommon.cpp is SunPro +# Source/JavaScriptCore/ucd/CaseFolding.txt is Unicode-TOU +# Source/ThirdParty/ANGLE/include/CL/cl_d3d10.h is Apache-2.0 +# Source/ThirdParty/ANGLE/include/GLES/gl.h is MIT-Khronos (not on list see https://github.com/spdx/license-list-XML/issues/2017) +# Source/ThirdParty/ANGLE/src/compiler/preprocessor/preprocessor_tab_autogen.cpp is GPL-3.0-or-later WITH Bison-exception-2.2 +# Source/ThirdParty/ANGLE/tools/flex-bison/third_party/m4sugar/m4sugar.m4 is GPL-3.0-only WITH Autoconf-exception-3.0 +# Source/ThirdParty/pdfjs/web/images/annotation-paperclip.svg is MPL-2.0i +# Source/ThirdParty/pdfjs/web/standard_fonts/LICENSE_LIBERATION is OFL-1.1 +# Source/ThirdParty/xdgmime/ is AFL-2.0 GPL-2.0-or-later +# Source/WebCore/dom/PseudoElement.h is BSD-Source-Code +# Source/WebCore/dom/SecurityContext.cpp is BSD-2-Clause-Views +# Source/WebCore/PAL/ThirdParty/libavif/LICENSE is IJG-short +# Source/WebCore/PAL/ThirdParty/libavif/ThirdParty/dav1d/examples/dav1dplay.c is FIXME https://gitlab.com/fedora/legal/fedora-license-data/-/issues/383 +# Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp is LGPL-2.1-or-later +# Source/WTF/LICENSE-libc++.txt is NCSA OR MIT +# Source/WTF/LICENSE-LLVM.txt is Apache-2.0 WITH LLVM-exception +# Source/WTF/icu/LICENSE is ICU +# Source/WTF/wtf/Markable.h is BSL-1.0 +License: LGPL-2.1-only AND BSD-2-Clause AND BSD-3-Clause AND ISC AND bzip2-1.0.6 AND NCSA AND MIT AND GPL-2.0-only AND MPL-1.1 AND SunPro AND Unicode-TOU AND Apache-2.0 AND GPL-3.0-or-later WITH Bison-exception-2.2 AND GPL-3.0-only WITH Autoconf-exception-3.0 AND MPL-2.0 AND OFL-1.1 AND (AFL-2.0 GPL-2.0-or-later) AND BSD-Source-Code AND BSD-2-Clause-Views AND IJG-short AND LGPL-2.1-or-later AND (NCSA OR MIT) AND Apache-2.0 WITH LLVM-exception AND ICU AND BSL-1.0 URL: https://www.webkitgtk.org/ Source0: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz Source1: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz.asc @@ -175,6 +201,15 @@ Requires: webkitgtk6.0 = %{version}-%{release} Obsoletes: webkit2gtk5.0-doc < %{version}-%{release} Recommends: gi-docgen-fonts +# Documentation/jsc-glib-4.1/fzy.js is MIT +# Documentation/jsc-glib-4.1/*.js and *css is Apache-2.0 OR GPL-3.0-or-later +# Documentation/jsc-glib-4.1/*html is BSD, LGPL-2.1 +# Documentation/webkit2gtk-4.1/*html is BSD, LGPL-2.1 +# Documentation/webkit2gtk-web-extension-4.1/*html is BSD, LGPL-2.1 +# Documentation/webkit2gtk-web-extension-4.1/solarized* is MIT +# Documentation/webkit2gtk-web-extension-4.1/style.css is Apache-2.0 OR GPL-3.0-or-later +License: MIT AND LGPL-2.1-only AND BSD-3-Clause AND (Apache-2.0 OR GPL-3.0-or-later) + %description -n webkitgtk6.0-doc This package contains developer documentation for webkitgtk6.0. From ad977632118f8f7bbd5534b390cba94a1e9ba60b Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Fri, 10 Nov 2023 11:52:38 -0600 Subject: [PATCH 093/200] Update to 2.42.2 This also removes the unused bundled libavif/libdav1d from the tarball, which slightly simplifies the license tag. --- .gitignore | 1 + sources | 4 ++-- webkitgtk.spec | 7 +++---- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index 43add4d..c55df06 100644 --- a/.gitignore +++ b/.gitignore @@ -26,3 +26,4 @@ /webkitgtk-2.41.92.tar.xz.asc /webkitgtk-2.42.0.tar.xz.asc /webkitgtk-2.42.1.tar.xz.asc +/webkitgtk-2.42.2.tar.xz.asc diff --git a/sources b/sources index 798f8a4..1321837 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.42.1.tar.xz) = c7ff45e748a2a3d381db05c7f05b7515d8e4e771e703dab6d153cb32392ff64f63f7d4039701676180abb6fd718153e762ce8ca9aede2ecbe0dc4efde5ed660c -SHA512 (webkitgtk-2.42.1.tar.xz.asc) = 4ef914ebeade2033e4021d37b2d233855470ab9748e3f2029c34e34b2ff486a7fe239224d49b53dec00a9a11c3053677666bab997a8d89160a108c55ffd661ed +SHA512 (webkitgtk-2.42.2.tar.xz) = 4cbd057c55c96bdc6b4f8ece89cb9803e8503146de62f74427cdcea8de5f2a644fa213160a02dfbb0df1529fbf84fd4cd73ba3953466d11d7b0b9cad04c3214f +SHA512 (webkitgtk-2.42.2.tar.xz.asc) = 00af175e5b4a0f6f47ea552fd52d68eeeb431277424fb584a72d348cfbd99e7a05b877dfcc5abbe41f3aa78e35b075c17cda3f90e4d4081736a3d47755942c10 diff --git a/webkitgtk.spec b/webkitgtk.spec index 4bb1434..5137b9e 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -18,7 +18,7 @@ %bcond_without docs Name: webkitgtk -Version: 2.42.1 +Version: 2.42.2 Release: %autorelease Summary: GTK web content engine library @@ -41,14 +41,13 @@ Summary: GTK web content engine library # Source/ThirdParty/xdgmime/ is AFL-2.0 GPL-2.0-or-later # Source/WebCore/dom/PseudoElement.h is BSD-Source-Code # Source/WebCore/dom/SecurityContext.cpp is BSD-2-Clause-Views -# Source/WebCore/PAL/ThirdParty/libavif/LICENSE is IJG-short -# Source/WebCore/PAL/ThirdParty/libavif/ThirdParty/dav1d/examples/dav1dplay.c is FIXME https://gitlab.com/fedora/legal/fedora-license-data/-/issues/383 # Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp is LGPL-2.1-or-later # Source/WTF/LICENSE-libc++.txt is NCSA OR MIT # Source/WTF/LICENSE-LLVM.txt is Apache-2.0 WITH LLVM-exception # Source/WTF/icu/LICENSE is ICU # Source/WTF/wtf/Markable.h is BSL-1.0 -License: LGPL-2.1-only AND BSD-2-Clause AND BSD-3-Clause AND ISC AND bzip2-1.0.6 AND NCSA AND MIT AND GPL-2.0-only AND MPL-1.1 AND SunPro AND Unicode-TOU AND Apache-2.0 AND GPL-3.0-or-later WITH Bison-exception-2.2 AND GPL-3.0-only WITH Autoconf-exception-3.0 AND MPL-2.0 AND OFL-1.1 AND (AFL-2.0 GPL-2.0-or-later) AND BSD-Source-Code AND BSD-2-Clause-Views AND IJG-short AND LGPL-2.1-or-later AND (NCSA OR MIT) AND Apache-2.0 WITH LLVM-exception AND ICU AND BSL-1.0 +# The license tag and above comment is up to date as of WebKitGTK 2.42.2. +License: LGPL-2.1-only AND BSD-2-Clause AND BSD-3-Clause AND ISC AND bzip2-1.0.6 AND NCSA AND MIT AND GPL-2.0-only AND MPL-1.1 AND SunPro AND Unicode-TOU AND Apache-2.0 AND GPL-3.0-or-later WITH Bison-exception-2.2 AND GPL-3.0-only WITH Autoconf-exception-3.0 AND MPL-2.0 AND OFL-1.1 AND (AFL-2.0 GPL-2.0-or-later) AND BSD-Source-Code AND BSD-2-Clause-Views AND LGPL-2.1-or-later AND (NCSA OR MIT) AND Apache-2.0 WITH LLVM-exception AND ICU AND BSL-1.0 URL: https://www.webkitgtk.org/ Source0: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz Source1: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz.asc From 1e672992aa0bc934e852e40b5522ad1ab682feee Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Fri, 17 Nov 2023 08:52:10 -0600 Subject: [PATCH 094/200] Update to 2.43.1 Also, add License tag to webkit2gtk-4.1-doc Also, there are only two builds now instead of three, now that webkit2gtk-4.0 has been removed. Also, there is a new dependency on libbacktrace, but Fedora does not package this library so we have to disable it. --- .gitignore | 1 + sources | 4 ++-- webkitgtk.spec | 20 ++++++++++++++++---- 3 files changed, 19 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index c55df06..115f44f 100644 --- a/.gitignore +++ b/.gitignore @@ -27,3 +27,4 @@ /webkitgtk-2.42.0.tar.xz.asc /webkitgtk-2.42.1.tar.xz.asc /webkitgtk-2.42.2.tar.xz.asc +/webkitgtk-2.43.1.tar.xz.asc diff --git a/sources b/sources index 1321837..a7ba79d 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.42.2.tar.xz) = 4cbd057c55c96bdc6b4f8ece89cb9803e8503146de62f74427cdcea8de5f2a644fa213160a02dfbb0df1529fbf84fd4cd73ba3953466d11d7b0b9cad04c3214f -SHA512 (webkitgtk-2.42.2.tar.xz.asc) = 00af175e5b4a0f6f47ea552fd52d68eeeb431277424fb584a72d348cfbd99e7a05b877dfcc5abbe41f3aa78e35b075c17cda3f90e4d4081736a3d47755942c10 +SHA512 (webkitgtk-2.43.1.tar.xz.asc) = 53b7a2c141edade9733c556b9662cd51d4ff23f2605d7c0b49ecbc5f20e6802eb9fb0061c236d18aa90767d55531a2fd6f591af1c06aeb5caadd40197a309bc0 +SHA512 (webkitgtk-2.43.1.tar.xz) = 7ee064c4655bcbb53ffc3d5f6c1bd166eb3dfdf2165c20c5fbbb5eb7f394704aebf53c32d98db84694fd4ba88c073861f7c7361c1dd57b26424526e041923d25 diff --git a/webkitgtk.spec b/webkitgtk.spec index 5137b9e..94fcbdb 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -18,7 +18,7 @@ %bcond_without docs Name: webkitgtk -Version: 2.42.2 +Version: 2.43.1 Release: %autorelease Summary: GTK web content engine library @@ -207,7 +207,7 @@ Recommends: gi-docgen-fonts # Documentation/webkit2gtk-web-extension-4.1/*html is BSD, LGPL-2.1 # Documentation/webkit2gtk-web-extension-4.1/solarized* is MIT # Documentation/webkit2gtk-web-extension-4.1/style.css is Apache-2.0 OR GPL-3.0-or-later -License: MIT AND LGPL-2.1-only AND BSD-3-Clause AND (Apache-2.0 OR GPL-3.0-or-later) +License: MIT AND LGPL-2.1-only AND BSD-3-Clause AND (Apache-2.0 OR GPL-3.0-or-later) %description -n webkitgtk6.0-doc This package contains developer documentation for webkitgtk6.0. @@ -218,6 +218,15 @@ BuildArch: noarch Requires: webkit2gtk4.1 = %{version}-%{release} Recommends: gi-docgen-fonts +# Documentation/jsc-glib-4.1/fzy.js is MIT +# Documentation/jsc-glib-4.1/*.js and *css is Apache-2.0 OR GPL-3.0-or-later +# Documentation/jsc-glib-4.1/*html is BSD, LGPL-2.1 +# Documentation/webkit2gtk-4.1/*html is BSD, LGPL-2.1 +# Documentation/webkit2gtk-web-extension-4.1/*html is BSD, LGPL-2.1 +# Documentation/webkit2gtk-web-extension-4.1/solarized* is MIT +# Documentation/webkit2gtk-web-extension-4.1/style.css is Apache-2.0 OR GPL-3.0-or-later +License: MIT AND LGPL-2.1-only AND BSD-3-Clause AND (Apache-2.0 OR GPL-3.0-or-later) + %description -n webkit2gtk4.1-doc This package contains developer documentation for webkit2gtk4.1. %endif @@ -292,6 +301,7 @@ files for developing applications that use JavaScript engine from webkit2gtk-4.1 -DPORT=GTK \ -DCMAKE_BUILD_TYPE=Release \ -DUSE_GTK4=ON \ + -DUSE_LIBBACKTRACE=OFF \ %if %{without docs} -DENABLE_DOCUMENTATION=OFF \ %endif @@ -310,6 +320,8 @@ files for developing applications that use JavaScript engine from webkit2gtk-4.1 -GNinja \ -DPORT=GTK \ -DCMAKE_BUILD_TYPE=Release \ + -DUSE_GTK4=OFF \ + -DUSE_LIBBACKTRACE=OFF \ -DENABLE_WEBDRIVER=OFF \ %if %{without docs} -DENABLE_DOCUMENTATION=OFF \ @@ -325,11 +337,11 @@ files for developing applications that use JavaScript engine from webkit2gtk-4.1 %{nil} %define _vpath_builddir %{_vendor}-%{_target_os}-build/webkitgtk-6.0 -export NINJA_STATUS="[1/3][%f/%t %es] " +export NINJA_STATUS="[1/2][%f/%t %es] " %cmake_build %limit_build -m 3072 %define _vpath_builddir %{_vendor}-%{_target_os}-build/webkit2gtk-4.1 -export NINJA_STATUS="[2/3][%f/%t %es] " +export NINJA_STATUS="[2/2][%f/%t %es] " %cmake_build %limit_build -m 3072 %install From 51944b0e92dce9d74793e485b4874ab37df8242c Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Mon, 20 Nov 2023 17:45:01 -0600 Subject: [PATCH 095/200] Fix build with libxml2 2.12 --- libxml2-2.12.patch | 56 ++++++++++++++++++++++++++++++++++++++++++++++ webkitgtk.spec | 3 +++ 2 files changed, 59 insertions(+) create mode 100644 libxml2-2.12.patch diff --git a/libxml2-2.12.patch b/libxml2-2.12.patch new file mode 100644 index 0000000..0529514 --- /dev/null +++ b/libxml2-2.12.patch @@ -0,0 +1,56 @@ +From 1bad176b2496579d760852c80cff3ad9fb7c3a4b Mon Sep 17 00:00:00 2001 +From: Adrian Perez de Castro +Date: Mon, 20 Nov 2023 07:42:30 -0800 +Subject: [PATCH] Build fails with libxml2 version 2.12.0 due to API change + https://bugs.webkit.org/show_bug.cgi?id=265128 + +Reviewed by Philippe Normand. + +Starting with libxml2 2.12.0, the API has changed the const-ness of the +xmlError pointers, which results in a build error due to a mismatched +type in the parsing error callback. This papers over the difference by +using preprocessor conditionals. + +* Source/WebCore/xml/XSLTProcessor.h: Use const when building against + libxml2 2.12.0 or newer. +* Source/WebCore/xml/XSLTProcessorLibxslt.cpp: +(WebCore::XSLTProcessor::parseErrorFunc): Ditto. + +Canonical link: https://commits.webkit.org/270977@main +--- + Source/WebCore/xml/XSLTProcessor.h | 4 ++++ + Source/WebCore/xml/XSLTProcessorLibxslt.cpp | 4 ++++ + 2 files changed, 8 insertions(+) + +diff --git a/Source/WebCore/xml/XSLTProcessor.h b/Source/WebCore/xml/XSLTProcessor.h +index 21bb45b5cbe1..5cf20557918f 100644 +--- a/Source/WebCore/xml/XSLTProcessor.h ++++ b/Source/WebCore/xml/XSLTProcessor.h +@@ -61,7 +61,11 @@ class XSLTProcessor : public RefCounted { + + void reset(); + ++#if LIBXML_VERSION >= 21200 ++ static void parseErrorFunc(void* userData, const xmlError*); ++#else + static void parseErrorFunc(void* userData, xmlError*); ++#endif + static void genericErrorFunc(void* userData, const char* msg, ...); + + // Only for libXSLT callbacks +diff --git a/Source/WebCore/xml/XSLTProcessorLibxslt.cpp b/Source/WebCore/xml/XSLTProcessorLibxslt.cpp +index a65691087e3c..9f6b363dfc6c 100644 +--- a/Source/WebCore/xml/XSLTProcessorLibxslt.cpp ++++ b/Source/WebCore/xml/XSLTProcessorLibxslt.cpp +@@ -59,7 +59,11 @@ void XSLTProcessor::genericErrorFunc(void*, const char*, ...) + // It would be nice to do something with this error message. + } + ++#if LIBXML_VERSION >= 21200 ++void XSLTProcessor::parseErrorFunc(void* userData, const xmlError* error) ++#else + void XSLTProcessor::parseErrorFunc(void* userData, xmlError* error) ++#endif + { + PageConsoleClient* console = static_cast(userData); + if (!console) diff --git a/webkitgtk.spec b/webkitgtk.spec index 94fcbdb..5a4f8a1 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -56,6 +56,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://commits.webkit.org/270977@main +Patch: libxml2-2.12.patch + BuildRequires: bison BuildRequires: bubblewrap BuildRequires: cmake From 9686c85def82995df5c8f0fc973415ce37ac5c86 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Mon, 4 Dec 2023 16:04:38 -0600 Subject: [PATCH 096/200] Update to 2.43.2 Notably, the documentation has moved, and the dependency on libwpe and wpebackend-fdo is gone. --- .gitignore | 1 + libxml2-2.12.patch | 56 ---------------------------------------------- sources | 4 ++-- webkitgtk.spec | 25 ++++++++------------- 4 files changed, 12 insertions(+), 74 deletions(-) delete mode 100644 libxml2-2.12.patch diff --git a/.gitignore b/.gitignore index 115f44f..8d77df6 100644 --- a/.gitignore +++ b/.gitignore @@ -28,3 +28,4 @@ /webkitgtk-2.42.1.tar.xz.asc /webkitgtk-2.42.2.tar.xz.asc /webkitgtk-2.43.1.tar.xz.asc +/webkitgtk-2.43.2.tar.xz.asc diff --git a/libxml2-2.12.patch b/libxml2-2.12.patch deleted file mode 100644 index 0529514..0000000 --- a/libxml2-2.12.patch +++ /dev/null @@ -1,56 +0,0 @@ -From 1bad176b2496579d760852c80cff3ad9fb7c3a4b Mon Sep 17 00:00:00 2001 -From: Adrian Perez de Castro -Date: Mon, 20 Nov 2023 07:42:30 -0800 -Subject: [PATCH] Build fails with libxml2 version 2.12.0 due to API change - https://bugs.webkit.org/show_bug.cgi?id=265128 - -Reviewed by Philippe Normand. - -Starting with libxml2 2.12.0, the API has changed the const-ness of the -xmlError pointers, which results in a build error due to a mismatched -type in the parsing error callback. This papers over the difference by -using preprocessor conditionals. - -* Source/WebCore/xml/XSLTProcessor.h: Use const when building against - libxml2 2.12.0 or newer. -* Source/WebCore/xml/XSLTProcessorLibxslt.cpp: -(WebCore::XSLTProcessor::parseErrorFunc): Ditto. - -Canonical link: https://commits.webkit.org/270977@main ---- - Source/WebCore/xml/XSLTProcessor.h | 4 ++++ - Source/WebCore/xml/XSLTProcessorLibxslt.cpp | 4 ++++ - 2 files changed, 8 insertions(+) - -diff --git a/Source/WebCore/xml/XSLTProcessor.h b/Source/WebCore/xml/XSLTProcessor.h -index 21bb45b5cbe1..5cf20557918f 100644 ---- a/Source/WebCore/xml/XSLTProcessor.h -+++ b/Source/WebCore/xml/XSLTProcessor.h -@@ -61,7 +61,11 @@ class XSLTProcessor : public RefCounted { - - void reset(); - -+#if LIBXML_VERSION >= 21200 -+ static void parseErrorFunc(void* userData, const xmlError*); -+#else - static void parseErrorFunc(void* userData, xmlError*); -+#endif - static void genericErrorFunc(void* userData, const char* msg, ...); - - // Only for libXSLT callbacks -diff --git a/Source/WebCore/xml/XSLTProcessorLibxslt.cpp b/Source/WebCore/xml/XSLTProcessorLibxslt.cpp -index a65691087e3c..9f6b363dfc6c 100644 ---- a/Source/WebCore/xml/XSLTProcessorLibxslt.cpp -+++ b/Source/WebCore/xml/XSLTProcessorLibxslt.cpp -@@ -59,7 +59,11 @@ void XSLTProcessor::genericErrorFunc(void*, const char*, ...) - // It would be nice to do something with this error message. - } - -+#if LIBXML_VERSION >= 21200 -+void XSLTProcessor::parseErrorFunc(void* userData, const xmlError* error) -+#else - void XSLTProcessor::parseErrorFunc(void* userData, xmlError* error) -+#endif - { - PageConsoleClient* console = static_cast(userData); - if (!console) diff --git a/sources b/sources index a7ba79d..3d0aea5 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.43.1.tar.xz.asc) = 53b7a2c141edade9733c556b9662cd51d4ff23f2605d7c0b49ecbc5f20e6802eb9fb0061c236d18aa90767d55531a2fd6f591af1c06aeb5caadd40197a309bc0 -SHA512 (webkitgtk-2.43.1.tar.xz) = 7ee064c4655bcbb53ffc3d5f6c1bd166eb3dfdf2165c20c5fbbb5eb7f394704aebf53c32d98db84694fd4ba88c073861f7c7361c1dd57b26424526e041923d25 +SHA512 (webkitgtk-2.43.2.tar.xz) = 81b756bf941765c2b772fab995272be1edc0474cbc80a3dd5f070b253c2ff1326f34bf51717e3ca7ffce0d20bef5816e55f5db4e5a86207d5306ab5f458b6dc2 +SHA512 (webkitgtk-2.43.2.tar.xz.asc) = ff029074d69f3ae0b1f4aaa4796c0b4afaa3137c650aa6ccada83f8c6b9e6f3ee7ed6c373b9af4977c05ad89a327dca3eea32ca3fcdbf0ea8e94dd0c22419fdd diff --git a/webkitgtk.spec b/webkitgtk.spec index 5a4f8a1..b5eea19 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -18,7 +18,7 @@ %bcond_without docs Name: webkitgtk -Version: 2.43.1 +Version: 2.43.2 Release: %autorelease Summary: GTK web content engine library @@ -56,9 +56,6 @@ 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://commits.webkit.org/270977@main -Patch: libxml2-2.12.patch - BuildRequires: bison BuildRequires: bubblewrap BuildRequires: cmake @@ -126,8 +123,6 @@ BuildRequires: pkgconfig(wayland-client) BuildRequires: pkgconfig(wayland-egl) BuildRequires: pkgconfig(wayland-protocols) BuildRequires: pkgconfig(wayland-server) -BuildRequires: pkgconfig(wpe-1.0) -BuildRequires: pkgconfig(wpebackend-fdo-1.0) BuildRequires: pkgconfig(xt) # Filter out provides for private libraries @@ -456,18 +451,16 @@ export NINJA_STATUS="[2/2][%f/%t %es] " %if %{with docs} %files -n webkitgtk6.0-doc -%dir %{_datadir}/gtk-doc -%dir %{_datadir}/gtk-doc/html -%{_datadir}/gtk-doc/html/javascriptcoregtk-6.0/ -%{_datadir}/gtk-doc/html/webkitgtk-6.0/ -%{_datadir}/gtk-doc/html/webkitgtk-web-process-extension-6.0/ +%dir %{_datadir}/doc +%{_datadir}/doc/javascriptcoregtk-6.0/ +%{_datadir}/doc/webkitgtk-6.0/ +%{_datadir}/doc/webkitgtk-web-process-extension-6.0/ %files -n webkit2gtk4.1-doc -%dir %{_datadir}/gtk-doc -%dir %{_datadir}/gtk-doc/html -%{_datadir}/gtk-doc/html/javascriptcoregtk-4.1/ -%{_datadir}/gtk-doc/html/webkit2gtk-4.1/ -%{_datadir}/gtk-doc/html/webkit2gtk-web-extension-4.1/ +%dir %{_datadir}/doc +%{_datadir}/doc/javascriptcoregtk-4.1/ +%{_datadir}/doc/webkit2gtk-4.1/ +%{_datadir}/doc/webkit2gtk-web-extension-4.1/ %endif %changelog From 7d27584f98a49b2710e3cd78b87127fcf4bddd30 Mon Sep 17 00:00:00 2001 From: Yaakov Selkowitz Date: Wed, 20 Dec 2023 01:39:22 -0500 Subject: [PATCH 097/200] Disable avif and jpegxl in RHEL builds While we are working on dropping webkitgtk from RHEL, in the meantime some optional dependencies that are otherwise unwanted can be avoided. --- webkitgtk.spec | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/webkitgtk.spec b/webkitgtk.spec index b5eea19..73bb5be 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -6,9 +6,9 @@ cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g') # No libmanette in RHEL -%if !0%{?rhel} -%global with_gamepad 1 -%endif +%bcond gamepad %{undefined rhel} +%bcond avif %[%{undefined rhel} || %{defined epel}] +%bcond jpegxl %[%{undefined rhel} || %{defined epel}] %global _lto_cflags %{nil} @@ -98,11 +98,15 @@ BuildRequires: pkgconfig(gtk4) BuildRequires: pkgconfig(harfbuzz) BuildRequires: pkgconfig(icu-uc) BuildRequires: pkgconfig(lcms2) +%if %{with avif} BuildRequires: pkgconfig(libavif) +%endif BuildRequires: pkgconfig(libdrm) BuildRequires: pkgconfig(libgcrypt) BuildRequires: pkgconfig(libjpeg) +%if %{with jpegxl} BuildRequires: pkgconfig(libjxl) +%endif BuildRequires: pkgconfig(libnotify) BuildRequires: pkgconfig(libopenjp2) BuildRequires: pkgconfig(libpng) @@ -114,7 +118,7 @@ BuildRequires: pkgconfig(libtasn1) BuildRequires: pkgconfig(libwebp) BuildRequires: pkgconfig(libwoff2dec) BuildRequires: pkgconfig(libxslt) -%if 0%{?with_gamepad} +%if %{with gamepad} BuildRequires: pkgconfig(manette-0.2) %endif BuildRequires: pkgconfig(sqlite3) @@ -303,9 +307,15 @@ files for developing applications that use JavaScript engine from webkit2gtk-4.1 %if %{without docs} -DENABLE_DOCUMENTATION=OFF \ %endif -%if !0%{?with_gamepad} +%if %{without gamepad} -DENABLE_GAMEPAD=OFF \ %endif +%if %{without avif} + -DUSE_AVIF=OFF \ +%endif +%if %{without jpegxl} + -DUSE_JPEGXL=OFF \ +%endif %if 0%{?rhel} %ifarch aarch64 -DUSE_64KB_PAGE_BLOCK=ON \ @@ -324,9 +334,15 @@ files for developing applications that use JavaScript engine from webkit2gtk-4.1 %if %{without docs} -DENABLE_DOCUMENTATION=OFF \ %endif -%if !0%{?with_gamepad} +%if %{without gamepad} -DENABLE_GAMEPAD=OFF \ %endif +%if %{without avif} + -DUSE_AVIF=OFF \ +%endif +%if %{without jpegxl} + -DUSE_JPEGXL=OFF \ +%endif %if 0%{?rhel} %ifarch aarch64 -DUSE_64KB_PAGE_BLOCK=ON \ From b9ea0b1c48c3f1c88a8edf3e265d36ce40b95a5d Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Thu, 21 Dec 2023 09:22:23 -0600 Subject: [PATCH 098/200] Update to WebKitGTK 2.43.3 --- .gitignore | 1 + sources | 4 ++-- webkitgtk.spec | 3 ++- 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 8d77df6..28abcdf 100644 --- a/.gitignore +++ b/.gitignore @@ -29,3 +29,4 @@ /webkitgtk-2.42.2.tar.xz.asc /webkitgtk-2.43.1.tar.xz.asc /webkitgtk-2.43.2.tar.xz.asc +/webkitgtk-2.43.3.tar.xz.asc diff --git a/sources b/sources index 3d0aea5..7df34cc 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.43.2.tar.xz) = 81b756bf941765c2b772fab995272be1edc0474cbc80a3dd5f070b253c2ff1326f34bf51717e3ca7ffce0d20bef5816e55f5db4e5a86207d5306ab5f458b6dc2 -SHA512 (webkitgtk-2.43.2.tar.xz.asc) = ff029074d69f3ae0b1f4aaa4796c0b4afaa3137c650aa6ccada83f8c6b9e6f3ee7ed6c373b9af4977c05ad89a327dca3eea32ca3fcdbf0ea8e94dd0c22419fdd +SHA512 (webkitgtk-2.43.3.tar.xz) = 13cca1d6d29b516f1f5b7dbd0c023ef866f2b4015af86d4fc2656ba8ed217f751adb876b5674d88c8d1b09b42dc6c0ad40b2e685f947eccc82d93b9d32ca8eb9 +SHA512 (webkitgtk-2.43.3.tar.xz.asc) = 83126a9a53656f77127596bf9dd9597a39cdf5cc55bac215bf1ed253a8dcfd717ed14e2f46e838fadec5b8e0c49733c5bed80876b3e32b47ae8550fe44d10d38 diff --git a/webkitgtk.spec b/webkitgtk.spec index 73bb5be..e9f7732 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -18,7 +18,7 @@ %bcond_without docs Name: webkitgtk -Version: 2.43.2 +Version: 2.43.3 Release: %autorelease Summary: GTK web content engine library @@ -73,6 +73,7 @@ BuildRequires: openssl-devel BuildRequires: perl(English) BuildRequires: perl(FindBin) BuildRequires: perl(JSON::PP) +BuildRequires: perl(bigint) BuildRequires: python3 BuildRequires: ruby BuildRequires: rubygems From 9f3212f08f35a10b295252c84dd3a2e344363c65 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 27 Jan 2024 08:34:00 +0000 Subject: [PATCH 099/200] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From c8d620fff1e4c3c48389a91292c933020051bc23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= Date: Wed, 31 Jan 2024 16:26:07 +0100 Subject: [PATCH 100/200] Rebuilt for libavif 1.0.3 From cd7e45ea21ad35f131308a7c93dc3626b324f61c Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Fri, 2 Feb 2024 09:58:52 -0600 Subject: [PATCH 101/200] Update to 2.43.4 --- .gitignore | 1 + sources | 4 ++-- webkitgtk.spec | 3 +-- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.gitignore b/.gitignore index 28abcdf..d6a731c 100644 --- a/.gitignore +++ b/.gitignore @@ -30,3 +30,4 @@ /webkitgtk-2.43.1.tar.xz.asc /webkitgtk-2.43.2.tar.xz.asc /webkitgtk-2.43.3.tar.xz.asc +/webkitgtk-2.43.4.tar.xz.asc diff --git a/sources b/sources index 7df34cc..43988b5 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.43.3.tar.xz) = 13cca1d6d29b516f1f5b7dbd0c023ef866f2b4015af86d4fc2656ba8ed217f751adb876b5674d88c8d1b09b42dc6c0ad40b2e685f947eccc82d93b9d32ca8eb9 -SHA512 (webkitgtk-2.43.3.tar.xz.asc) = 83126a9a53656f77127596bf9dd9597a39cdf5cc55bac215bf1ed253a8dcfd717ed14e2f46e838fadec5b8e0c49733c5bed80876b3e32b47ae8550fe44d10d38 +SHA512 (webkitgtk-2.43.4.tar.xz) = 6246137deb76192f20bdd1b98e415a183e0c90edf357b08577fa82ce0d196da295c4edf1598b1edc15a258ad6c14997654b947e46e1ea65821c9e5ce6e1dda5c +SHA512 (webkitgtk-2.43.4.tar.xz.asc) = 25fb00babd4d6d0ef6463226561963972895f2320c86e9da1bdf06cb6acdc6cee1ad97380b418e645d20f98a1cd4ec37d20efa0cb75473a6d62ae0cae28ecce7 diff --git a/webkitgtk.spec b/webkitgtk.spec index e9f7732..0af2963 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -18,7 +18,7 @@ %bcond_without docs Name: webkitgtk -Version: 2.43.3 +Version: 2.43.4 Release: %autorelease Summary: GTK web content engine library @@ -109,7 +109,6 @@ BuildRequires: pkgconfig(libjpeg) BuildRequires: pkgconfig(libjxl) %endif BuildRequires: pkgconfig(libnotify) -BuildRequires: pkgconfig(libopenjp2) BuildRequires: pkgconfig(libpng) BuildRequires: pkgconfig(libseccomp) BuildRequires: pkgconfig(libsecret-1) From b852437da9b34943e366b1b881ae4b5939452330 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Tue, 6 Feb 2024 15:48:50 -0600 Subject: [PATCH 102/200] Add patch to maybe fix rhbz#2253099 --- display-vblank-monitor.patch | 1012 ++++++++++++++++++++++++++++++++++ webkitgtk.spec | 4 + 2 files changed, 1016 insertions(+) create mode 100644 display-vblank-monitor.patch diff --git a/display-vblank-monitor.patch b/display-vblank-monitor.patch new file mode 100644 index 0000000..12ef704 --- /dev/null +++ b/display-vblank-monitor.patch @@ -0,0 +1,1012 @@ +From fda6216679915707208bd7794ae22c0c92b808cd Mon Sep 17 00:00:00 2001 +From: Carlos Garcia Campos +Date: Mon, 5 Feb 2024 03:27:45 -0800 +Subject: [PATCH] [WPE] WPE Platform: add monitors API + https://bugs.webkit.org/show_bug.cgi?id=265639 + +Reviewed by Adrian Perez de Castro. + +Add monitors API with implementation for the wayland platform for now. +This API is used inside WebKit to set the screen properties, set the +platform display ID and get the refresh rate for display link. + +* Source/WebCore/platform/PlatformScreen.cpp: +* Source/WebCore/platform/ScreenProperties.h: +* Source/WebCore/platform/wpe/PlatformScreenWPE.cpp: +(WebCore::widgetDisplayID): +(WebCore::screenDepth): +(WebCore::screenDepthPerComponent): +(WebCore::screenIsMonochrome): +(WebCore::screenDPI): +(WebCore::screenRect): +(WebCore::screenAvailableRect): +(WebCore::setScreenDPIObserverHandler): Deleted. +* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in: +* Source/WebKit/Shared/WebPageCreationParameters.h: +* Source/WebKit/Shared/WebPageCreationParameters.serialization.in: +* Source/WebKit/Shared/WebProcessCreationParameters.h: +* Source/WebKit/Shared/WebProcessCreationParameters.serialization.in: +* Source/WebKit/SourcesGTK.txt: +* Source/WebKit/SourcesWPE.txt: +* Source/WebKit/UIProcess/API/wpe/WPEWebView.cpp: +(WKWPE::m_backend): +(WKWPE::View::~View): +(WKWPE::View::updateDisplayID): +* Source/WebKit/UIProcess/API/wpe/WPEWebView.h: +* Source/WebKit/UIProcess/WebPageProxy.cpp: +(WebKit::WebPageProxy::creationParameters): +* Source/WebKit/UIProcess/glib/DisplayVBlankMonitorDRM.cpp: +(WebKit::findCrtc): +(WebKit::DisplayVBlankMonitorDRM::create): +* Source/WebKit/UIProcess/glib/ScreenManager.cpp: Copied from Source/WebKit/UIProcess/gtk/ScreenManager.h. +(WebKit::ScreenManager::singleton): +(WebKit::ScreenManager::displayID const): +(WebKit::ScreenManager::monitor const): +(WebKit::ScreenManager::addMonitor): +(WebKit::ScreenManager::removeMonitor): +(WebKit::ScreenManager::propertiesDidChange const): +* Source/WebKit/UIProcess/glib/ScreenManager.h: Renamed from Source/WebKit/UIProcess/gtk/ScreenManager.h. +* Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp: +(WebKit::WebProcessPool::platformInitializeWebProcess): +* Source/WebKit/UIProcess/gtk/ScreenManagerGtk.cpp: Renamed from Source/WebKit/UIProcess/gtk/ScreenManager.cpp. +(WebKit::ScreenManager::generatePlatformDisplayID): +(WebKit::ScreenManager::ScreenManager): +(WebKit::ScreenManager::collectScreenProperties const): +* Source/WebKit/UIProcess/wpe/ScreenManagerWPE.cpp: Added. +(WebKit::ScreenManager::generatePlatformDisplayID): +(WebKit::ScreenManager::ScreenManager): +(WebKit::ScreenManager::collectScreenProperties const): +* Source/WebKit/WPEPlatform/CMakeLists.txt: +* Source/WebKit/WPEPlatform/wpe/WPEDisplay.cpp: +(wpe_display_class_init): +(wpe_display_get_n_monitors): +(wpe_display_get_monitor): +(wpe_display_monitor_added): +(wpe_display_monitor_removed): +(wpeDisplayDispose): Deleted. +* Source/WebKit/WPEPlatform/wpe/WPEDisplay.h: +* Source/WebKit/WPEPlatform/wpe/WPEMonitor.cpp: Added. +(wpeMonitorGetProperty): +(wpe_monitor_class_init): +(wpe_monitor_get_id): +(wpe_monitor_invalidate): +(wpe_monitor_get_x): +(wpe_monitor_get_y): +(wpe_monitor_set_position): +(wpe_monitor_get_width): +(wpe_monitor_get_height): +(wpe_monitor_set_size): +(wpe_monitor_get_physical_width): +(wpe_monitor_get_physical_height): +(wpe_monitor_set_physical_size): +(wpe_monitor_get_scale): +(wpe_monitor_set_scale): +(wpe_monitor_get_refresh_rate): +(wpe_monitor_set_refresh_rate): +* Source/WebKit/WPEPlatform/wpe/WPEMonitor.h: Added. +* Source/WebKit/WPEPlatform/wpe/WPEView.cpp: +(wpeViewGetProperty): +(wpe_view_class_init): +(wpe_view_get_monitor): +* Source/WebKit/WPEPlatform/wpe/WPEView.h: +* Source/WebKit/WPEPlatform/wpe/wayland/CMakeLists.txt: +* Source/WebKit/WPEPlatform/wpe/wayland/WPEDisplayWayland.cpp: +(wpeDisplayWaylandDispose): +(wpeDisplayWaylandGetNMonitors): +(wpeDisplayWaylandGetMonitor): +(wpeDisplayWaylandFindMonitor): +(wpe_display_wayland_class_init): +(wpeDisplayWaylandGetOutput): Deleted. +* Source/WebKit/WPEPlatform/wpe/wayland/WPEDisplayWaylandPrivate.h: +* Source/WebKit/WPEPlatform/wpe/wayland/WPEMonitorWayland.cpp: Added. +(wpeMonitorWaylandInvalidate): +(wpeMonitorWaylandDispose): +(wpe_monitor_wayland_class_init): +(wpe_monitor_wayland_get_wl_output): +* Source/WebKit/WPEPlatform/wpe/wayland/WPEMonitorWayland.h: Copied from Source/WebKit/WPEPlatform/wpe/wayland/wpe-wayland.h. +* Source/WebKit/WPEPlatform/wpe/wayland/WPEViewWayland.cpp: +(wpeViewWaylandConstructed): +(wpeViewWaylandDispose): +(wpeViewWaylandGetMonitor): +(wpe_view_wayland_class_init): +* Source/WebKit/WPEPlatform/wpe/wayland/wpe-wayland.h: +* Source/WebKit/WPEPlatform/wpe/wpe-platform.h: +* Source/WebKit/WebProcess/WebPage/WebPage.cpp: +(WebKit::m_historyItemClient): +* Source/WebKit/WebProcess/WebProcess.h: +* Source/WebKit/WebProcess/WebProcess.messages.in: +* Source/WebKit/WebProcess/glib/WebProcessGLib.cpp: +(WebKit::WebProcess::platformInitializeWebProcess): + +Canonical link: https://commits.webkit.org/274090@main +--- + Source/WebCore/platform/PlatformScreen.cpp | 4 +- + Source/WebCore/platform/ScreenProperties.h | 2 +- + .../platform/wpe/PlatformScreenWPE.cpp | 62 ++- + .../WebCoreArgumentCoders.serialization.in | 2 +- + .../WebKit/Shared/WebPageCreationParameters.h | 3 + + ...WebPageCreationParameters.serialization.in | 3 + + .../Shared/WebProcessCreationParameters.h | 4 +- + ...ProcessCreationParameters.serialization.in | 2 +- + Source/WebKit/SourcesGTK.txt | 3 +- + Source/WebKit/SourcesWPE.txt | 2 + + .../WebKit/UIProcess/API/wpe/WPEWebView.cpp | 19 + + Source/WebKit/UIProcess/API/wpe/WPEWebView.h | 5 + + .../mac/RemoteLayerTreeDrawingAreaProxyMac.mm | 2 + + Source/WebKit/UIProcess/WebPageProxy.cpp | 4 + + .../glib/DisplayVBlankMonitorDRM.cpp | 77 ++- + .../WebKit/UIProcess/glib/ScreenManager.cpp | 78 +++ + .../UIProcess/{gtk => glib}/ScreenManager.h | 26 +- + .../UIProcess/glib/WebProcessPoolGLib.cpp | 10 +- + ...ScreenManager.cpp => ScreenManagerGtk.cpp} | 45 +- + .../WebKit/UIProcess/wpe/ScreenManagerWPE.cpp | 95 ++++ + Source/WebKit/WPEPlatform/CMakeLists.txt | 2 + + Source/WebKit/WPEPlatform/wpe/WPEDisplay.cpp | 113 ++++ + Source/WebKit/WPEPlatform/wpe/WPEDisplay.h | 11 + + Source/WebKit/WPEPlatform/wpe/WPEMonitor.cpp | 527 ++++++++++++++++++ + Source/WebKit/WPEPlatform/wpe/WPEMonitor.h | 76 +++ + Source/WebKit/WPEPlatform/wpe/WPEView.cpp | 32 ++ + Source/WebKit/WPEPlatform/wpe/WPEView.h | 33 +- + .../WPEPlatform/wpe/wayland/CMakeLists.txt | 2 +- + .../wpe/wayland/WPEDisplayWayland.cpp | 54 +- + .../wpe/wayland/WPEDisplayWaylandPrivate.h | 4 +- + .../wpe/wayland/WPEMonitorWayland.cpp | 141 +++++ + .../wpe/wayland/WPEMonitorWayland.h | 46 ++ + .../wpe/wayland/WPEMonitorWaylandPrivate.h | 30 + + .../wpe/wayland/WPEViewWayland.cpp | 68 ++- + .../WPEPlatform/wpe/wayland/wpe-wayland.h | 1 + + Source/WebKit/WPEPlatform/wpe/wpe-platform.h | 1 + + Source/WebKit/WebProcess/WebPage/WebPage.cpp | 3 + + Source/WebKit/WebProcess/WebProcess.h | 2 +- + .../WebKit/WebProcess/WebProcess.messages.in | 2 +- + .../WebKit/WebProcess/glib/WebProcessGLib.cpp | 10 +- + 40 files changed, 1464 insertions(+), 142 deletions(-) + create mode 100644 Source/WebKit/UIProcess/glib/ScreenManager.cpp + rename Source/WebKit/UIProcess/{gtk => glib}/ScreenManager.h (71%) + rename Source/WebKit/UIProcess/gtk/{ScreenManager.cpp => ScreenManagerGtk.cpp} (81%) + create mode 100644 Source/WebKit/UIProcess/wpe/ScreenManagerWPE.cpp + create mode 100644 Source/WebKit/WPEPlatform/wpe/WPEMonitor.cpp + create mode 100644 Source/WebKit/WPEPlatform/wpe/WPEMonitor.h + create mode 100644 Source/WebKit/WPEPlatform/wpe/wayland/WPEMonitorWayland.cpp + create mode 100644 Source/WebKit/WPEPlatform/wpe/wayland/WPEMonitorWayland.h + create mode 100644 Source/WebKit/WPEPlatform/wpe/wayland/WPEMonitorWaylandPrivate.h + +diff --git a/Source/WebCore/platform/PlatformScreen.cpp b/Source/WebCore/platform/PlatformScreen.cpp +index 39fbdb1be924d..ae46341ba71c7 100644 +--- a/Source/WebCore/platform/PlatformScreen.cpp ++++ b/Source/WebCore/platform/PlatformScreen.cpp +@@ -26,7 +26,7 @@ + #include "config.h" + #include "PlatformScreen.h" + +-#if PLATFORM(COCOA) || PLATFORM(GTK) ++#if PLATFORM(COCOA) || PLATFORM(GTK) || (PLATFORM(WPE) && ENABLE(WPE_PLATFORM)) + + #include "ScreenProperties.h" + #include +@@ -72,4 +72,4 @@ const ScreenData* screenData(PlatformDisplayID screenDisplayID) + + } // namespace WebCore + +-#endif // PLATFORM(COCOA) || PLATFORM(GTK) ++#endif // PLATFORM(COCOA) || PLATFORM(GTK) || (PLATFORM(WPE) && ENABLE(WPE_PLATFORM)) +diff --git a/Source/WebCore/platform/ScreenProperties.h b/Source/WebCore/platform/ScreenProperties.h +index bfc75c3f1bbac..c6c8ef374d566 100644 +--- a/Source/WebCore/platform/ScreenProperties.h ++++ b/Source/WebCore/platform/ScreenProperties.h +@@ -52,6 +52,6 @@ struct ScreenData { + DynamicRangeMode preferredDynamicRangeMode { DynamicRangeMode::Standard }; + #endif +-#if PLATFORM(GTK) ++#if PLATFORM(GTK) || (PLATFORM(WPE) && ENABLE(WPE_PLATFORM)) + IntSize screenSize; // In millimeters. + double dpi; + #endif +diff --git a/Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in b/Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in +index 60cb2d48e462b..5c46fb7a2a1c1 100644 +--- a/Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in ++++ b/Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in +@@ -2239,7 +2239,7 @@ header: + WebCore::PlatformGPUID gpuID; + WebCore::DynamicRangeMode preferredDynamicRangeMode; + #endif +-#if PLATFORM(GTK) ++#if PLATFORM(GTK) || (PLATFORM(WPE) && ENABLE(WPE_PLATFORM)) + WebCore::IntSize screenSize; + double dpi; + #endif +diff --git a/Source/WebKit/Shared/WebPageCreationParameters.h b/Source/WebKit/Shared/WebPageCreationParameters.h +index 2ea7cff733553..fa75878f40592 100644 +--- a/Source/WebKit/Shared/WebPageCreationParameters.h ++++ b/Source/WebKit/Shared/WebPageCreationParameters.h +@@ -105,6 +105,9 @@ struct WebPageCreationParameters { + + std::optional viewExposedRect; + ++ std::optional displayID; ++ std::optional nominalFramesPerSecond; ++ + bool alwaysShowsHorizontalScroller; + bool alwaysShowsVerticalScroller; + +diff --git a/Source/WebKit/Shared/WebPageCreationParameters.serialization.in b/Source/WebKit/Shared/WebPageCreationParameters.serialization.in +index 12363533fca5e..5bee2a3eb5a87 100644 +--- a/Source/WebKit/Shared/WebPageCreationParameters.serialization.in ++++ b/Source/WebKit/Shared/WebPageCreationParameters.serialization.in +@@ -46,6 +46,9 @@ headers: "ArgumentCoders.h" + + std::optional viewExposedRect; + ++ std::optional displayID; ++ std::optional nominalFramesPerSecond; ++ + bool alwaysShowsHorizontalScroller; + bool alwaysShowsVerticalScroller; + +diff --git a/Source/WebKit/Shared/WebProcessCreationParameters.h b/Source/WebKit/Shared/WebProcessCreationParameters.h +index 85df7bc9ddcc3..d95844aacd23b 100644 +--- a/Source/WebKit/Shared/WebProcessCreationParameters.h ++++ b/Source/WebKit/Shared/WebProcessCreationParameters.h +@@ -42,7 +42,7 @@ + #include + #include + +-#if PLATFORM(COCOA) || PLATFORM(GTK) ++#if PLATFORM(COCOA) || PLATFORM(GTK) || (PLATFORM(WPE) && ENABLE(WPE_PLATFORM)) + #include + #endif + +@@ -169,7 +169,7 @@ struct WebProcessCreationParameters { + Vector mediaMIMETypes; + #endif + +-#if PLATFORM(COCOA) || PLATFORM(GTK) ++#if PLATFORM(COCOA) || PLATFORM(GTK) || (PLATFORM(WPE) && ENABLE(WPE_PLATFORM)) + WebCore::ScreenProperties screenProperties; + #endif + +diff --git a/Source/WebKit/Shared/WebProcessCreationParameters.serialization.in b/Source/WebKit/Shared/WebProcessCreationParameters.serialization.in +index 0b8265f8ff27d..2c4c7ccd31217 100644 +--- a/Source/WebKit/Shared/WebProcessCreationParameters.serialization.in ++++ b/Source/WebKit/Shared/WebProcessCreationParameters.serialization.in +@@ -118,7 +118,7 @@ + Vector mediaMIMETypes; + #endif + +-#if PLATFORM(COCOA) || PLATFORM(GTK) ++#if PLATFORM(COCOA) || PLATFORM(GTK) || (PLATFORM(WPE) && ENABLE(WPE_PLATFORM)) + WebCore::ScreenProperties screenProperties; + #endif + +diff --git a/Source/WebKit/SourcesGTK.txt b/Source/WebKit/SourcesGTK.txt +index 2db1af6d6140f..dbd2950cc54d6 100644 +--- a/Source/WebKit/SourcesGTK.txt ++++ b/Source/WebKit/SourcesGTK.txt +@@ -260,6 +260,7 @@ UIProcess/glib/DisplayLinkGLib.cpp + UIProcess/glib/DisplayVBlankMonitor.cpp + UIProcess/glib/DisplayVBlankMonitorDRM.cpp + UIProcess/glib/DisplayVBlankMonitorTimer.cpp ++UIProcess/glib/ScreenManager.cpp + UIProcess/glib/WebPageProxyGLib.cpp + UIProcess/glib/WebProcessPoolGLib.cpp + UIProcess/glib/WebProcessProxyGLib.cpp +@@ -278,7 +279,7 @@ UIProcess/gtk/KeyBindingTranslator.cpp + UIProcess/gtk/PointerLockManager.cpp @no-unify + UIProcess/gtk/PointerLockManagerWayland.cpp @no-unify + UIProcess/gtk/PointerLockManagerX11.cpp @no-unify +-UIProcess/gtk/ScreenManager.cpp @no-unify ++UIProcess/gtk/ScreenManagerGtk.cpp @no-unify + UIProcess/gtk/TextCheckerGtk.cpp @no-unify + UIProcess/gtk/ViewSnapshotStoreGtk3.cpp @no-unify + UIProcess/gtk/ViewSnapshotStoreGtk4.cpp @no-unify + +diff --git a/Source/WebKit/UIProcess/WebPageProxy.cpp b/Source/WebKit/UIProcess/WebPageProxy.cpp +index 9a2bae74232d0..c7612aeb06b73 100644 +--- a/Source/WebKit/UIProcess/WebPageProxy.cpp ++++ b/Source/WebKit/UIProcess/WebPageProxy.cpp +@@ -9800,6 +9800,10 @@ WebPageCreationParameters WebPageProxy::creationParameters(WebProcessProxy& proc + parameters.minimumUnobscuredSize = internals().minimumUnobscuredSize; + parameters.maximumUnobscuredSize = internals().maximumUnobscuredSize; + parameters.viewExposedRect = internals().viewExposedRect; ++ if (m_displayID) { ++ parameters.displayID = m_displayID; ++ parameters.nominalFramesPerSecond = drawingArea.displayNominalFramesPerSecond(); ++ } + parameters.alwaysShowsHorizontalScroller = m_alwaysShowsHorizontalScroller; + parameters.alwaysShowsVerticalScroller = m_alwaysShowsVerticalScroller; + parameters.suppressScrollbarAnimations = m_suppressScrollbarAnimations; +diff --git a/Source/WebKit/UIProcess/glib/DisplayVBlankMonitorDRM.cpp b/Source/WebKit/UIProcess/glib/DisplayVBlankMonitorDRM.cpp +index a74cb9be98513..c9c69df44cd22 100644 +--- a/Source/WebKit/UIProcess/glib/DisplayVBlankMonitorDRM.cpp ++++ b/Source/WebKit/UIProcess/glib/DisplayVBlankMonitorDRM.cpp +@@ -40,9 +40,12 @@ + #include + #include + +-#if PLATFORM(GTK) ++#if PLATFORM(GTK) || (PLATFORM(WPE) && ENABLE(WPE_PLATFORM)) + #include "ScreenManager.h" + #include ++#endif ++ ++#if PLATFORM(GTK) + #include + #endif + +@@ -52,15 +55,20 @@ + + namespace WebKit { + +-#if PLATFORM(GTK) +-static std::optional findCrtc(int fd, GdkMonitor* monitor) ++#if PLATFORM(GTK) || (PLATFORM(WPE) && ENABLE(WPE_PLATFORM)) ++static std::optional> findCrtc(int fd, PlatformMonitor* monitor) + { + drmModeRes* resources = drmModeGetResources(fd); + if (!resources) + return std::nullopt; + ++#if PLATFORM(GTK) + uint32_t widthMM = gdk_monitor_get_width_mm(monitor); + uint32_t heightMM = gdk_monitor_get_height_mm(monitor); ++#elif PLATFORM(WPE) ++ uint32_t widthMM = wpe_monitor_get_physical_width(monitor); ++ uint32_t heightMM = wpe_monitor_get_physical_height(monitor); ++#endif + + // First find connectors matching the size. + Vector connectors; +@@ -87,13 +95,18 @@ static std::optional findCrtc(int fd, GdkMonitor* monitor) + return std::nullopt; + } + +- std::optional returnValue; ++ std::optional> returnValue; + + // FIXME: if there are multiple connectors, check other properties. + if (drmModeEncoder* encoder = drmModeGetEncoder(fd, connectors[0]->encoder_id)) { + for (int i = 0; i < resources->count_crtcs; ++i) { + if (resources->crtcs[i] == encoder->crtc_id) { +- returnValue = i; ++#if PLATFORM(GTK) ++ auto refreshRate = gdk_monitor_get_refresh_rate(monitor); ++#elif PLATFORM(WPE) ++ auto refreshRate = wpe_monitor_get_refresh_rate(monitor); ++#endif ++ returnValue = { i, refreshRate }; + break; + } + } +@@ -107,7 +120,9 @@ static std::optional findCrtc(int fd, GdkMonitor* monitor) + + return returnValue; + } +-#elif PLATFORM(WPE) ++#endif ++ ++#if PLATFORM(WPE) + static std::optional> findCrtc(int fd) + { + drmModeRes* resources = drmModeGetResources(fd); +@@ -176,9 +191,32 @@ static int crtcBitmaskForIndex(uint32_t crtcIndex) + + std::unique_ptr DisplayVBlankMonitorDRM::create(PlatformDisplayID displayID) + { ++#if PLATFORM(WPE) && ENABLE(WPE_PLATFORM) ++ static bool usingWPEPlatformAPI = !!g_type_class_peek(WPE_TYPE_DISPLAY); ++#endif ++ ++#if PLATFORM(WPE) && ENABLE(WPE_PLATFORM) ++ PlatformMonitor* monitor = nullptr; ++ if (usingWPEPlatformAPI) { ++ monitor = ScreenManager::singleton().monitor(displayID ? displayID : WebCore::primaryScreenDisplayID()); ++ if (!monitor) { ++ RELEASE_LOG_FAULT(DisplayLink, "Could not create a vblank monitor for display %u: no monitor found", displayID); ++ return nullptr; ++ } ++ } ++#endif ++ ++#if PLATFORM(GTK) ++ auto* monitor = ScreenManager::singleton().monitor(displayID ? displayID : WebCore::primaryScreenDisplayID()); ++ if (!monitor) { ++ RELEASE_LOG_FAULT(DisplayLink, "Could not create a vblank monitor for display %u: no monitor found", displayID); ++ return nullptr; ++ } ++#endif ++ + #if PLATFORM(WPE) && ENABLE(WPE_PLATFORM) + String filename; +- if (g_type_class_peek(WPE_TYPE_DISPLAY)) ++ if (usingWPEPlatformAPI) + filename = String::fromUTF8(wpe_render_device()); + else + filename = WebCore::PlatformDisplay::sharedDisplay().drmDeviceFile(); +@@ -197,28 +235,21 @@ std::unique_ptr DisplayVBlankMonitorDRM::create(PlatformDi + } + + #if PLATFORM(GTK) +- auto* monitor = ScreenManager::singleton().monitor(displayID ? displayID : WebCore::primaryScreenDisplayID()); +- if (!monitor) { +- RELEASE_LOG_FAULT(DisplayLink, "Could not create a vblank monitor for display %u: no monitor found", displayID); +- return nullptr; +- } +- +- auto crtcIndex = findCrtc(fd.value(), monitor); +- if (!crtcIndex) { +- RELEASE_LOG_FAULT(DisplayLink, "Could not create a vblank monitor for display %u: no CRTC found", displayID); +- return nullptr; +- } +- +- auto crtcBitmask = crtcBitmaskForIndex(crtcIndex.value()); ++ auto crtcInfo = findCrtc(fd.value(), monitor); + #elif PLATFORM(WPE) ++#if ENABLE(WPE_PLATFORM) ++ auto crtcInfo = monitor ? findCrtc(fd.value(), monitor) : findCrtc(fd.value()); ++#else + auto crtcInfo = findCrtc(fd.value()); ++#endif ++#endif ++ + if (!crtcInfo) { + RELEASE_LOG_FAULT(DisplayLink, "Could not create a vblank monitor for display %u: no CRTC found", displayID); + return nullptr; + } + + auto crtcBitmask = crtcBitmaskForIndex(crtcInfo->first); +-#endif + + drmVBlank vblank; + vblank.request.type = static_cast(DRM_VBLANK_RELATIVE | crtcBitmask); +@@ -230,11 +261,7 @@ std::unique_ptr DisplayVBlankMonitorDRM::create(PlatformDi + return nullptr; + } + +-#if PLATFORM(GTK) +- return makeUnique(gdk_monitor_get_refresh_rate(monitor) / 1000, WTFMove(fd), crtcBitmask); +-#elif PLATFORM(WPE) + return makeUnique(crtcInfo->second / 1000, WTFMove(fd), crtcBitmask); +-#endif + } + + DisplayVBlankMonitorDRM::DisplayVBlankMonitorDRM(unsigned refreshRate, UnixFileDescriptor&& fd, int crtcBitmask) +diff --git a/Source/WebKit/UIProcess/glib/ScreenManager.cpp b/Source/WebKit/UIProcess/glib/ScreenManager.cpp +new file mode 100644 +index 0000000000000..52628e6ba9903 +--- /dev/null ++++ b/Source/WebKit/UIProcess/glib/ScreenManager.cpp +@@ -0,0 +1,78 @@ ++/* ++ * Copyright (C) 2023 Igalia S.L. ++ * ++ * Redistribution and use in source and binary forms, with or without ++ * modification, are permitted provided that the following conditions ++ * are met: ++ * 1. Redistributions of source code must retain the above copyright ++ * notice, this list of conditions and the following disclaimer. ++ * 2. Redistributions in binary form must reproduce the above copyright ++ * notice, this list of conditions and the following disclaimer in the ++ * documentation and/or other materials provided with the distribution. ++ * ++ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY ++ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE ++ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR ++ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR ++ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, ++ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, ++ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR ++ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY ++ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT ++ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE ++ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. ++ */ ++ ++#include "config.h" ++#include "ScreenManager.h" ++ ++#if PLATFORM(GTK) || (PLATFORM(WPE) && ENABLE(WPE_PLATFORM)) ++#include "WebProcessMessages.h" ++#include "WebProcessPool.h" ++ ++namespace WebKit { ++ ++ScreenManager& ScreenManager::singleton() ++{ ++ static NeverDestroyed manager; ++ return manager; ++} ++ ++PlatformDisplayID ScreenManager::displayID(PlatformMonitor* monitor) const ++{ ++ return m_monitorToDisplayIDMap.get(monitor); ++} ++ ++PlatformMonitor* ScreenManager::monitor(PlatformDisplayID displayID) const ++{ ++ for (const auto& iter : m_monitorToDisplayIDMap) { ++ if (iter.value == displayID) ++ return iter.key; ++ } ++ return nullptr; ++} ++ ++void ScreenManager::addMonitor(PlatformMonitor* monitor) ++{ ++ m_monitors.append(monitor); ++ m_monitorToDisplayIDMap.add(monitor, generatePlatformDisplayID(monitor)); ++} ++ ++void ScreenManager::removeMonitor(PlatformMonitor* monitor) ++{ ++ m_monitorToDisplayIDMap.remove(monitor); ++ m_monitors.removeFirstMatching([monitor](const auto& item) { ++ return item.get() == monitor; ++ }); ++} ++ ++void ScreenManager::propertiesDidChange() const ++{ ++ auto properties = collectScreenProperties(); ++ for (auto& pool : WebProcessPool::allProcessPools()) ++ pool->sendToAllProcesses(Messages::WebProcess::SetScreenProperties(properties)); ++} ++ ++} // namespace WebKit ++ ++#endif // PLATFORM(GTK) || (PLATFORM(WPE) && ENABLE(WPE_PLATFORM)) +diff --git a/Source/WebKit/UIProcess/gtk/ScreenManager.h b/Source/WebKit/UIProcess/glib/ScreenManager.h +similarity index 71% +rename from Source/WebKit/UIProcess/gtk/ScreenManager.h +rename to Source/WebKit/UIProcess/glib/ScreenManager.h +index e46fc1900bf3c..4fc1199e634b0 100644 +--- a/Source/WebKit/UIProcess/gtk/ScreenManager.h ++++ b/Source/WebKit/UIProcess/glib/ScreenManager.h +@@ -1,5 +1,5 @@ + /* +- * Copyright (C) 2023 Igalia S.L. ++ * Copyright (C) 2023,2024 Igalia S.L. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions +@@ -25,13 +25,21 @@ + + #pragma once + ++#if PLATFORM(GTK) || (PLATFORM(WPE) && ENABLE(WPE_PLATFORM)) ++ + #include + #include + #include + #include + #include + ++#if PLATFORM(GTK) + typedef struct _GdkMonitor GdkMonitor; ++using PlatformMonitor = GdkMonitor; ++#elif PLATFORM(WPE) && ENABLE(WPE_PLATFORM) ++typedef struct _WPEMonitor WPEMonitor; ++using PlatformMonitor = WPEMonitor; ++#endif + + namespace WebKit { + +@@ -43,20 +51,24 @@ class ScreenManager { + public: + static ScreenManager& singleton(); + +- PlatformDisplayID displayID(GdkMonitor*) const; +- GdkMonitor* monitor(PlatformDisplayID) const; ++ PlatformDisplayID displayID(PlatformMonitor*) const; ++ PlatformMonitor* monitor(PlatformDisplayID) const; + + WebCore::ScreenProperties collectScreenProperties() const; + + private: + ScreenManager(); + +- void addMonitor(GdkMonitor*); +- void removeMonitor(GdkMonitor*); ++ static PlatformDisplayID generatePlatformDisplayID(PlatformMonitor*); ++ ++ void addMonitor(PlatformMonitor*); ++ void removeMonitor(PlatformMonitor*); + void propertiesDidChange() const; + +- Vector, 1> m_monitors; +- HashMap m_monitorToDisplayIDMap; ++ Vector, 1> m_monitors; ++ HashMap m_monitorToDisplayIDMap; + }; + + } // namespace WebKit ++ ++#endif // PLATFORM(GTK) || (PLATFORM(WPE) && ENABLE(WPE_PLATFORM)) +diff --git a/Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp b/Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp +index d26efed5f6bd8..f62fef3f76288 100644 +--- a/Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp ++++ b/Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp +@@ -48,12 +48,15 @@ + #include + #endif + ++#if PLATFORM(GTK) || (PLATFORM(WPE) && ENABLE(WPE_PLATFORM)) ++#include "ScreenManager.h" ++#endif ++ + #if PLATFORM(GTK) + #if USE(EGL) + #include "AcceleratedBackingStoreDMABuf.h" + #endif + #include "GtkSettingsManager.h" +-#include "ScreenManager.h" + #endif + + #if PLATFORM(WPE) && ENABLE(WPE_PLATFORM) +@@ -160,6 +163,11 @@ void WebProcessPool::platformInitializeWebProcess(const WebProcessProxy& process + parameters.gtkSettings = GtkSettingsManager::singleton().settingsState(); + parameters.screenProperties = ScreenManager::singleton().collectScreenProperties(); + #endif ++ ++#if PLATFORM(WPE) && ENABLE(WPE_PLATFORM) ++ if (usingWPEPlatformAPI) ++ parameters.screenProperties = ScreenManager::singleton().collectScreenProperties(); ++#endif + } + + void WebProcessPool::platformInvalidateContext() +diff --git a/Source/WebKit/UIProcess/gtk/ScreenManager.cpp b/Source/WebKit/UIProcess/gtk/ScreenManagerGtk.cpp +similarity index 81% +rename from Source/WebKit/UIProcess/gtk/ScreenManager.cpp +rename to Source/WebKit/UIProcess/gtk/ScreenManagerGtk.cpp +index 0f628fcac6520..536accd95fee9 100644 +--- a/Source/WebKit/UIProcess/gtk/ScreenManager.cpp ++++ b/Source/WebKit/UIProcess/gtk/ScreenManagerGtk.cpp +@@ -27,8 +27,6 @@ + #include "ScreenManager.h" + + #include "GtkSettingsManager.h" +-#include "WebProcessMessages.h" +-#include "WebProcessPool.h" + #include + #include + #include +@@ -36,13 +34,7 @@ + namespace WebKit { + using namespace WebCore; + +-ScreenManager& ScreenManager::singleton() +-{ +- static NeverDestroyed manager; +- return manager; +-} +- +-static PlatformDisplayID generatePlatformDisplayID() ++PlatformDisplayID ScreenManager::generatePlatformDisplayID(GdkMonitor*) + { + static PlatformDisplayID id; + return ++id; +@@ -84,41 +76,6 @@ ScreenManager::ScreenManager() + #endif + } + +-PlatformDisplayID ScreenManager::displayID(GdkMonitor* monitor) const +-{ +- return m_monitorToDisplayIDMap.get(monitor); +-} +- +-GdkMonitor* ScreenManager::monitor(PlatformDisplayID displayID) const +-{ +- for (const auto& iter : m_monitorToDisplayIDMap) { +- if (iter.value == displayID) +- return iter.key; +- } +- return nullptr; +-} +- +-void ScreenManager::addMonitor(GdkMonitor* monitor) +-{ +- m_monitors.append(monitor); +- m_monitorToDisplayIDMap.add(monitor, generatePlatformDisplayID()); +-} +- +-void ScreenManager::removeMonitor(GdkMonitor* monitor) +-{ +- m_monitorToDisplayIDMap.remove(monitor); +- m_monitors.removeFirstMatching([monitor](const auto& item) { +- return item.get() == monitor; +- }); +-} +- +-void ScreenManager::propertiesDidChange() const +-{ +- auto properties = collectScreenProperties(); +- for (auto& pool : WebProcessPool::allProcessPools()) +- pool->sendToAllProcesses(Messages::WebProcess::SetScreenProperties(properties)); +-} +- + ScreenProperties ScreenManager::collectScreenProperties() const + { + #if USE(GTK4) + +diff --git a/Source/WebKit/WebProcess/WebPage/WebPage.cpp b/Source/WebKit/WebProcess/WebPage/WebPage.cpp +index 62c6599edb668..b443fc73cca46 100644 +--- a/Source/WebKit/WebProcess/WebPage/WebPage.cpp ++++ b/Source/WebKit/WebProcess/WebPage/WebPage.cpp +@@ -751,6 +751,9 @@ WebPage::WebPage(PageIdentifier pageID, WebPageCreationParameters&& parameters) + + updateAfterDrawingAreaCreation(parameters); + ++ if (parameters.displayID) ++ windowScreenDidChange(*parameters.displayID, parameters.nominalFramesPerSecond); ++ + WebStorageNamespaceProvider::incrementUseCount(sessionStorageNamespaceIdentifier()); + + updatePreferences(parameters.store); +diff --git a/Source/WebKit/WebProcess/WebProcess.h b/Source/WebKit/WebProcess/WebProcess.h +index 6873c9821f01f..686d385ab40ae 100644 +--- a/Source/WebKit/WebProcess/WebProcess.h ++++ b/Source/WebKit/WebProcess/WebProcess.h +@@ -604,7 +604,7 @@ class WebProcess : public AuxiliaryProcess + void displayConfigurationChanged(CGDirectDisplayID, CGDisplayChangeSummaryFlags); + #endif + +-#if PLATFORM(COCOA) || PLATFORM(GTK) ++#if PLATFORM(COCOA) || PLATFORM(GTK) || PLATFORM(WPE) + void setScreenProperties(const WebCore::ScreenProperties&); + #endif + +diff --git a/Source/WebKit/WebProcess/WebProcess.messages.in b/Source/WebKit/WebProcess/WebProcess.messages.in +index c03d868dd326e..4af7663e3501f 100644 +--- a/Source/WebKit/WebProcess/WebProcess.messages.in ++++ b/Source/WebKit/WebProcess/WebProcess.messages.in +@@ -109,7 +109,7 @@ messages -> WebProcess LegacyReceiver NotRefCounted { + MarkIsNoLongerPrewarmed() + GetActivePagesOriginsForTesting() -> (Vector activeOrigins) + +-#if PLATFORM(COCOA) || PLATFORM(GTK) ++#if PLATFORM(COCOA) || PLATFORM(GTK) || PLATFORM(WPE) + SetScreenProperties(struct WebCore::ScreenProperties screenProperties) + #endif + #if PLATFORM(MAC) +diff --git a/Source/WebKit/WebProcess/glib/WebProcessGLib.cpp b/Source/WebKit/WebProcess/glib/WebProcessGLib.cpp +index 52079a0b59523..99a3a8930ac33 100644 +--- a/Source/WebKit/WebProcess/glib/WebProcessGLib.cpp ++++ b/Source/WebKit/WebProcess/glib/WebProcessGLib.cpp +@@ -195,8 +195,16 @@ void WebProcess::platformInitializeWebProcess(WebProcessCreationParameters& para + + #if PLATFORM(GTK) + GtkSettingsManagerProxy::singleton().applySettings(WTFMove(parameters.gtkSettings)); ++#endif ++ ++#if PLATFORM(GTK) + WebCore::setScreenProperties(parameters.screenProperties); + #endif ++ ++#if PLATFORM(WPE) && ENABLE(WPE_PLATFORM) ++ if (!m_dmaBufRendererBufferMode.isEmpty()) ++ WebCore::setScreenProperties(parameters.screenProperties); ++#endif + } + + void WebProcess::platformSetWebsiteDataStoreParameters(WebProcessDataStoreParameters&&) +@@ -248,7 +256,7 @@ void WebProcess::releaseSystemMallocMemory() + #endif + } + +-#if PLATFORM(GTK) ++#if PLATFORM(GTK) || PLATFORM(WPE) + void WebProcess::setScreenProperties(const WebCore::ScreenProperties& properties) + { + WebCore::setScreenProperties(properties); + +From cad5d7e5ed760db4515ca25da8080fe5e85b7e90 Mon Sep 17 00:00:00 2001 +From: Carlos Garcia Campos +Date: Tue, 6 Feb 2024 01:26:25 -0800 +Subject: [PATCH] [GTK][WPE] Initialize display ID as early as possible + https://bugs.webkit.org/show_bug.cgi?id=268744 + +Reviewed by Adrian Perez de Castro. + +In GTK we currently get the display ID when the toplevel window is +realized and gets a monitor assigned. This is happening right after the +web page is initialized, which means we always create the web page with +0 display ID and right after that a window screen change happens. +Because of this we end up creating two display link monitors. We can +avoid this by initializing the web view display id as soon as possible +using the primary display ID, that in most of the cases will be then one +used when the monitor is assigned to the toplevel. + +This patch also ensures we never create a DRM vblank monitor when +display ID is 0, since that's never a valid monitor. We just +fallback to the timer vblank monitor in that case. + +* Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp: +(webkitWebViewBaseConstructed): +* Source/WebKit/UIProcess/API/wpe/WPEWebView.cpp: +(WKWPE::m_backend): +* Source/WebKit/UIProcess/glib/DisplayVBlankMonitor.cpp: +(WebKit::DisplayVBlankMonitor::create): +* Source/WebKit/UIProcess/glib/DisplayVBlankMonitorDRM.cpp: +(WebKit::DisplayVBlankMonitorDRM::create): +* Source/WebKit/UIProcess/glib/ScreenManager.h: +(WebKit::ScreenManager::primaryDisplayID const): +* Source/WebKit/UIProcess/gtk/ScreenManagerGtk.cpp: +(WebKit::ScreenManager::ScreenManager): +(WebKit::ScreenManager::updatePrimaryDisplayID): +(WebKit::ScreenManager::collectScreenProperties const): +* Source/WebKit/UIProcess/wpe/ScreenManagerWPE.cpp: +(WebKit::ScreenManager::ScreenManager): +(WebKit::ScreenManager::updatePrimaryDisplayID): +(WebKit::ScreenManager::collectScreenProperties const): + +Canonical link: https://commits.webkit.org/274136@main +--- + .../UIProcess/API/gtk/WebKitWebViewBase.cpp | 2 ++ + .../WebKit/UIProcess/API/wpe/WPEWebView.cpp | 9 ++++- + .../UIProcess/glib/DisplayVBlankMonitor.cpp | 4 +-- + .../glib/DisplayVBlankMonitorDRM.cpp | 5 ++- + Source/WebKit/UIProcess/glib/ScreenManager.h | 3 ++ + .../WebKit/UIProcess/gtk/ScreenManagerGtk.cpp | 35 +++++++++++++++---- + .../WebKit/UIProcess/wpe/ScreenManagerWPE.cpp | 18 +++++++--- + 7 files changed, 60 insertions(+), 16 deletions(-) + +diff --git a/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp b/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp +index 60727fc9e2ad3..55701f7211548 100644 +--- a/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp ++++ b/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp +@@ -2432,6 +2432,8 @@ static void webkitWebViewBaseConstructed(GObject* object) + }; + g_signal_connect_object(settings, "notify::gtk-theme-name", G_CALLBACK(callback), viewWidget, G_CONNECT_SWAPPED); + g_signal_connect_object(settings, "notify::gtk-application-prefer-dark-theme", G_CALLBACK(callback), viewWidget, G_CONNECT_SWAPPED); ++ ++ priv->displayID = ScreenManager::singleton().primaryDisplayID(); + } + + static void webkit_web_view_base_class_init(WebKitWebViewBaseClass* webkitWebViewBaseClass) +diff --git a/Source/WebKit/UIProcess/glib/DisplayVBlankMonitor.cpp b/Source/WebKit/UIProcess/glib/DisplayVBlankMonitor.cpp +index 1c286f0715ae5..ccb1ce062649e 100644 +--- a/Source/WebKit/UIProcess/glib/DisplayVBlankMonitor.cpp ++++ b/Source/WebKit/UIProcess/glib/DisplayVBlankMonitor.cpp +@@ -40,8 +40,8 @@ namespace WebKit { + + std::unique_ptr DisplayVBlankMonitor::create(PlatformDisplayID displayID) + { +- const char* forceTimer = getenv("WEBKIT_FORCE_VBLANK_TIMER"); +- if (forceTimer && strcmp(forceTimer, "0")) ++ static const char* forceTimer = getenv("WEBKIT_FORCE_VBLANK_TIMER"); ++ if (!displayID || (forceTimer && strcmp(forceTimer, "0"))) + return DisplayVBlankMonitorTimer::create(); + + #if USE(LIBDRM) +diff --git a/Source/WebKit/UIProcess/glib/DisplayVBlankMonitorDRM.cpp b/Source/WebKit/UIProcess/glib/DisplayVBlankMonitorDRM.cpp +index c9c69df44cd22..bbb7655a9539f 100644 +--- a/Source/WebKit/UIProcess/glib/DisplayVBlankMonitorDRM.cpp ++++ b/Source/WebKit/UIProcess/glib/DisplayVBlankMonitorDRM.cpp +@@ -42,7 +42,6 @@ + + #if PLATFORM(GTK) || (PLATFORM(WPE) && ENABLE(WPE_PLATFORM)) + #include "ScreenManager.h" +-#include + #endif + + #if PLATFORM(GTK) +@@ -198,7 +197,7 @@ std::unique_ptr DisplayVBlankMonitorDRM::create(PlatformDi + #if PLATFORM(WPE) && ENABLE(WPE_PLATFORM) + PlatformMonitor* monitor = nullptr; + if (usingWPEPlatformAPI) { +- monitor = ScreenManager::singleton().monitor(displayID ? displayID : WebCore::primaryScreenDisplayID()); ++ monitor = ScreenManager::singleton().monitor(displayID); + if (!monitor) { + RELEASE_LOG_FAULT(DisplayLink, "Could not create a vblank monitor for display %u: no monitor found", displayID); + return nullptr; +@@ -207,7 +206,7 @@ std::unique_ptr DisplayVBlankMonitorDRM::create(PlatformDi + #endif + + #if PLATFORM(GTK) +- auto* monitor = ScreenManager::singleton().monitor(displayID ? displayID : WebCore::primaryScreenDisplayID()); ++ auto* monitor = ScreenManager::singleton().monitor(displayID); + if (!monitor) { + RELEASE_LOG_FAULT(DisplayLink, "Could not create a vblank monitor for display %u: no monitor found", displayID); + return nullptr; +diff --git a/Source/WebKit/UIProcess/glib/ScreenManager.h b/Source/WebKit/UIProcess/glib/ScreenManager.h +index 4fc1199e634b0..3675fbf3bc72b 100644 +--- a/Source/WebKit/UIProcess/glib/ScreenManager.h ++++ b/Source/WebKit/UIProcess/glib/ScreenManager.h +@@ -53,6 +53,7 @@ class ScreenManager { + + PlatformDisplayID displayID(PlatformMonitor*) const; + PlatformMonitor* monitor(PlatformDisplayID) const; ++ PlatformDisplayID primaryDisplayID() const { return m_primaryDisplayID; } + + WebCore::ScreenProperties collectScreenProperties() const; + +@@ -63,10 +64,12 @@ class ScreenManager { + + void addMonitor(PlatformMonitor*); + void removeMonitor(PlatformMonitor*); ++ void updatePrimaryDisplayID(); + void propertiesDidChange() const; + + Vector, 1> m_monitors; + HashMap m_monitorToDisplayIDMap; ++ PlatformDisplayID m_primaryDisplayID { 0 }; + }; + + } // namespace WebKit +diff --git a/Source/WebKit/UIProcess/gtk/ScreenManagerGtk.cpp b/Source/WebKit/UIProcess/gtk/ScreenManagerGtk.cpp +index 536accd95fee9..39b61264e0431 100644 +--- a/Source/WebKit/UIProcess/gtk/ScreenManagerGtk.cpp ++++ b/Source/WebKit/UIProcess/gtk/ScreenManagerGtk.cpp +@@ -57,6 +57,7 @@ ScreenManager::ScreenManager() + auto monitor = adoptGRef(GDK_MONITOR(g_list_model_get_item(monitors, index + i))); + manager->addMonitor(monitor.get()); + } ++ manager->updatePrimaryDisplayID(); + manager->propertiesDidChange(); + }), this); + #else +@@ -67,20 +68,44 @@ ScreenManager::ScreenManager() + } + g_signal_connect(display, "monitor-added", G_CALLBACK(+[](GdkDisplay*, GdkMonitor* monitor, ScreenManager* manager) { + manager->addMonitor(monitor); ++ manager->updatePrimaryDisplayID(); + manager->propertiesDidChange(); + }), this); + g_signal_connect(display, "monitor-removed", G_CALLBACK(+[](GdkDisplay*, GdkMonitor* monitor, ScreenManager* manager) { + manager->removeMonitor(monitor); ++ manager->updatePrimaryDisplayID(); + manager->propertiesDidChange(); + }), this); + #endif ++ updatePrimaryDisplayID(); + } + +-ScreenProperties ScreenManager::collectScreenProperties() const ++void ScreenManager::updatePrimaryDisplayID() + { ++ auto* display = gdk_display_get_default(); + #if USE(GTK4) +- GdkMonitor* primaryMonitor = nullptr; ++ // GTK4 doesn't have the concept of primary monitor, so we always use the first one. ++ auto* monitors = gdk_display_get_monitors(display); ++ if (!g_list_model_get_n_items(monitors)) { ++ m_primaryDisplayID = 0; ++ return; ++ } ++ ++ auto monitor = adoptGRef(GDK_MONITOR(g_list_model_get_item(monitors, 0))); ++ m_primaryDisplayID = displayID(monitor.get()); + #else ++ auto* primaryMonitor = gdk_display_get_primary_monitor(display); ++ if (!primaryMonitor) { ++ if (gdk_display_get_n_monitors(display)) ++ primaryMonitor = gdk_display_get_monitor(display, 0); ++ } ++ m_primaryDisplayID = primaryMonitor ? displayID(primaryMonitor) : 0; ++#endif ++} ++ ++ScreenProperties ScreenManager::collectScreenProperties() const ++{ ++#if !USE(GTK4) + auto systemVisual = [](GdkDisplay* display) -> GdkVisual* { + if (auto* screen = gdk_display_get_default_screen(display)) + return gdk_screen_get_system_visual(screen); +@@ -89,15 +114,13 @@ ScreenProperties ScreenManager::collectScreenProperties() const + }; + + auto* display = gdk_display_get_default(); +- auto* primaryMonitor = gdk_display_get_primary_monitor(display); + #endif + + ScreenProperties properties; ++ properties.primaryDisplayID = m_primaryDisplayID; ++ + for (const auto& iter : m_monitorToDisplayIDMap) { + GdkMonitor* monitor = iter.key; +- if (!properties.primaryDisplayID && (!primaryMonitor || primaryMonitor == monitor)) +- properties.primaryDisplayID = iter.value; +- + ScreenData data; + GdkRectangle workArea; + monitorWorkArea(monitor, &workArea); diff --git a/webkitgtk.spec b/webkitgtk.spec index 0af2963..2413668 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -56,6 +56,10 @@ 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://bugs.webkit.org/show_bug.cgi?id=268744 +# https://bugzilla.redhat.com/show_bug.cgi?id=2253099 +Patch: display-vblank-monitor.patch + BuildRequires: bison BuildRequires: bubblewrap BuildRequires: cmake From 92dbb98196e0e9e50c21e367a500701df9c1a917 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Wed, 7 Feb 2024 08:43:02 -0600 Subject: [PATCH 103/200] Remove use of real-time scheduling on vblank thread https://bugzilla.redhat.com/show_bug.cgi?id=2253099 --- display-vblank-monitor.patch | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/display-vblank-monitor.patch b/display-vblank-monitor.patch index 12ef704..0422954 100644 --- a/display-vblank-monitor.patch +++ b/display-vblank-monitor.patch @@ -1010,3 +1010,36 @@ index 536accd95fee9..39b61264e0431 100644 ScreenData data; GdkRectangle workArea; monitorWorkArea(monitor, &workArea); + +From 0a61478183a9db5ee3be866b5106eabd336a0be1 Mon Sep 17 00:00:00 2001 +From: Carlos Garcia Campos +Date: Wed, 7 Feb 2024 05:34:01 -0800 +Subject: [PATCH] [GTK][WPE] Do not use real time priority for the display link + thread https://bugs.webkit.org/show_bug.cgi?id=268900 + +Reviewed by Michael Catanzaro. + +In some cases it can cause the rtkit daemon to kill the ui process due +to CPU usage limit. + +* Source/WebKit/UIProcess/glib/DisplayVBlankMonitor.cpp: +(WebKit::DisplayVBlankMonitor::startThreadIfNeeded): + +Canonical link: https://commits.webkit.org/274210@main +--- + Source/WebKit/UIProcess/glib/DisplayVBlankMonitor.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Source/WebKit/UIProcess/glib/DisplayVBlankMonitor.cpp b/Source/WebKit/UIProcess/glib/DisplayVBlankMonitor.cpp +index ccb1ce062649e..e225009c361ce 100644 +--- a/Source/WebKit/UIProcess/glib/DisplayVBlankMonitor.cpp ++++ b/Source/WebKit/UIProcess/glib/DisplayVBlankMonitor.cpp +@@ -97,7 +97,7 @@ bool DisplayVBlankMonitor::startThreadIfNeeded() + if (active) + m_handler(); + } +- }, ThreadType::Graphics, Thread::QOS::UserInteractive); ++ }, ThreadType::Graphics, Thread::QOS::Default); + return true; + } + From 0ee430763b06400a10c3da9fab0cc459a3bccfb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20M=2E=20Basto?= Date: Wed, 14 Feb 2024 02:50:09 +0000 Subject: [PATCH 104/200] Rebuild for jpegxl (libjxl) 0.9.2 with soname bump From 915328c4e3e23e45e7a3fdbcfff35082b7724f5c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20M=2E=20Basto?= Date: Wed, 13 Mar 2024 03:09:17 +0000 Subject: [PATCH 105/200] Rebuild for jpegxl (libjxl) 0.10.2 From d99a3321c03a9cb01daa99e0a8236f3d70cab465 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Sat, 16 Mar 2024 13:31:46 -0500 Subject: [PATCH 106/200] Update to 2.44.0 --- .gitignore | 1 + display-vblank-monitor.patch | 1045 ---------------------------------- sources | 4 +- webkitgtk.spec | 6 +- 4 files changed, 4 insertions(+), 1052 deletions(-) delete mode 100644 display-vblank-monitor.patch diff --git a/.gitignore b/.gitignore index d6a731c..e029434 100644 --- a/.gitignore +++ b/.gitignore @@ -31,3 +31,4 @@ /webkitgtk-2.43.2.tar.xz.asc /webkitgtk-2.43.3.tar.xz.asc /webkitgtk-2.43.4.tar.xz.asc +/webkitgtk-2.44.0.tar.xz.asc diff --git a/display-vblank-monitor.patch b/display-vblank-monitor.patch deleted file mode 100644 index 0422954..0000000 --- a/display-vblank-monitor.patch +++ /dev/null @@ -1,1045 +0,0 @@ -From fda6216679915707208bd7794ae22c0c92b808cd Mon Sep 17 00:00:00 2001 -From: Carlos Garcia Campos -Date: Mon, 5 Feb 2024 03:27:45 -0800 -Subject: [PATCH] [WPE] WPE Platform: add monitors API - https://bugs.webkit.org/show_bug.cgi?id=265639 - -Reviewed by Adrian Perez de Castro. - -Add monitors API with implementation for the wayland platform for now. -This API is used inside WebKit to set the screen properties, set the -platform display ID and get the refresh rate for display link. - -* Source/WebCore/platform/PlatformScreen.cpp: -* Source/WebCore/platform/ScreenProperties.h: -* Source/WebCore/platform/wpe/PlatformScreenWPE.cpp: -(WebCore::widgetDisplayID): -(WebCore::screenDepth): -(WebCore::screenDepthPerComponent): -(WebCore::screenIsMonochrome): -(WebCore::screenDPI): -(WebCore::screenRect): -(WebCore::screenAvailableRect): -(WebCore::setScreenDPIObserverHandler): Deleted. -* Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in: -* Source/WebKit/Shared/WebPageCreationParameters.h: -* Source/WebKit/Shared/WebPageCreationParameters.serialization.in: -* Source/WebKit/Shared/WebProcessCreationParameters.h: -* Source/WebKit/Shared/WebProcessCreationParameters.serialization.in: -* Source/WebKit/SourcesGTK.txt: -* Source/WebKit/SourcesWPE.txt: -* Source/WebKit/UIProcess/API/wpe/WPEWebView.cpp: -(WKWPE::m_backend): -(WKWPE::View::~View): -(WKWPE::View::updateDisplayID): -* Source/WebKit/UIProcess/API/wpe/WPEWebView.h: -* Source/WebKit/UIProcess/WebPageProxy.cpp: -(WebKit::WebPageProxy::creationParameters): -* Source/WebKit/UIProcess/glib/DisplayVBlankMonitorDRM.cpp: -(WebKit::findCrtc): -(WebKit::DisplayVBlankMonitorDRM::create): -* Source/WebKit/UIProcess/glib/ScreenManager.cpp: Copied from Source/WebKit/UIProcess/gtk/ScreenManager.h. -(WebKit::ScreenManager::singleton): -(WebKit::ScreenManager::displayID const): -(WebKit::ScreenManager::monitor const): -(WebKit::ScreenManager::addMonitor): -(WebKit::ScreenManager::removeMonitor): -(WebKit::ScreenManager::propertiesDidChange const): -* Source/WebKit/UIProcess/glib/ScreenManager.h: Renamed from Source/WebKit/UIProcess/gtk/ScreenManager.h. -* Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp: -(WebKit::WebProcessPool::platformInitializeWebProcess): -* Source/WebKit/UIProcess/gtk/ScreenManagerGtk.cpp: Renamed from Source/WebKit/UIProcess/gtk/ScreenManager.cpp. -(WebKit::ScreenManager::generatePlatformDisplayID): -(WebKit::ScreenManager::ScreenManager): -(WebKit::ScreenManager::collectScreenProperties const): -* Source/WebKit/UIProcess/wpe/ScreenManagerWPE.cpp: Added. -(WebKit::ScreenManager::generatePlatformDisplayID): -(WebKit::ScreenManager::ScreenManager): -(WebKit::ScreenManager::collectScreenProperties const): -* Source/WebKit/WPEPlatform/CMakeLists.txt: -* Source/WebKit/WPEPlatform/wpe/WPEDisplay.cpp: -(wpe_display_class_init): -(wpe_display_get_n_monitors): -(wpe_display_get_monitor): -(wpe_display_monitor_added): -(wpe_display_monitor_removed): -(wpeDisplayDispose): Deleted. -* Source/WebKit/WPEPlatform/wpe/WPEDisplay.h: -* Source/WebKit/WPEPlatform/wpe/WPEMonitor.cpp: Added. -(wpeMonitorGetProperty): -(wpe_monitor_class_init): -(wpe_monitor_get_id): -(wpe_monitor_invalidate): -(wpe_monitor_get_x): -(wpe_monitor_get_y): -(wpe_monitor_set_position): -(wpe_monitor_get_width): -(wpe_monitor_get_height): -(wpe_monitor_set_size): -(wpe_monitor_get_physical_width): -(wpe_monitor_get_physical_height): -(wpe_monitor_set_physical_size): -(wpe_monitor_get_scale): -(wpe_monitor_set_scale): -(wpe_monitor_get_refresh_rate): -(wpe_monitor_set_refresh_rate): -* Source/WebKit/WPEPlatform/wpe/WPEMonitor.h: Added. -* Source/WebKit/WPEPlatform/wpe/WPEView.cpp: -(wpeViewGetProperty): -(wpe_view_class_init): -(wpe_view_get_monitor): -* Source/WebKit/WPEPlatform/wpe/WPEView.h: -* Source/WebKit/WPEPlatform/wpe/wayland/CMakeLists.txt: -* Source/WebKit/WPEPlatform/wpe/wayland/WPEDisplayWayland.cpp: -(wpeDisplayWaylandDispose): -(wpeDisplayWaylandGetNMonitors): -(wpeDisplayWaylandGetMonitor): -(wpeDisplayWaylandFindMonitor): -(wpe_display_wayland_class_init): -(wpeDisplayWaylandGetOutput): Deleted. -* Source/WebKit/WPEPlatform/wpe/wayland/WPEDisplayWaylandPrivate.h: -* Source/WebKit/WPEPlatform/wpe/wayland/WPEMonitorWayland.cpp: Added. -(wpeMonitorWaylandInvalidate): -(wpeMonitorWaylandDispose): -(wpe_monitor_wayland_class_init): -(wpe_monitor_wayland_get_wl_output): -* Source/WebKit/WPEPlatform/wpe/wayland/WPEMonitorWayland.h: Copied from Source/WebKit/WPEPlatform/wpe/wayland/wpe-wayland.h. -* Source/WebKit/WPEPlatform/wpe/wayland/WPEViewWayland.cpp: -(wpeViewWaylandConstructed): -(wpeViewWaylandDispose): -(wpeViewWaylandGetMonitor): -(wpe_view_wayland_class_init): -* Source/WebKit/WPEPlatform/wpe/wayland/wpe-wayland.h: -* Source/WebKit/WPEPlatform/wpe/wpe-platform.h: -* Source/WebKit/WebProcess/WebPage/WebPage.cpp: -(WebKit::m_historyItemClient): -* Source/WebKit/WebProcess/WebProcess.h: -* Source/WebKit/WebProcess/WebProcess.messages.in: -* Source/WebKit/WebProcess/glib/WebProcessGLib.cpp: -(WebKit::WebProcess::platformInitializeWebProcess): - -Canonical link: https://commits.webkit.org/274090@main ---- - Source/WebCore/platform/PlatformScreen.cpp | 4 +- - Source/WebCore/platform/ScreenProperties.h | 2 +- - .../platform/wpe/PlatformScreenWPE.cpp | 62 ++- - .../WebCoreArgumentCoders.serialization.in | 2 +- - .../WebKit/Shared/WebPageCreationParameters.h | 3 + - ...WebPageCreationParameters.serialization.in | 3 + - .../Shared/WebProcessCreationParameters.h | 4 +- - ...ProcessCreationParameters.serialization.in | 2 +- - Source/WebKit/SourcesGTK.txt | 3 +- - Source/WebKit/SourcesWPE.txt | 2 + - .../WebKit/UIProcess/API/wpe/WPEWebView.cpp | 19 + - Source/WebKit/UIProcess/API/wpe/WPEWebView.h | 5 + - .../mac/RemoteLayerTreeDrawingAreaProxyMac.mm | 2 + - Source/WebKit/UIProcess/WebPageProxy.cpp | 4 + - .../glib/DisplayVBlankMonitorDRM.cpp | 77 ++- - .../WebKit/UIProcess/glib/ScreenManager.cpp | 78 +++ - .../UIProcess/{gtk => glib}/ScreenManager.h | 26 +- - .../UIProcess/glib/WebProcessPoolGLib.cpp | 10 +- - ...ScreenManager.cpp => ScreenManagerGtk.cpp} | 45 +- - .../WebKit/UIProcess/wpe/ScreenManagerWPE.cpp | 95 ++++ - Source/WebKit/WPEPlatform/CMakeLists.txt | 2 + - Source/WebKit/WPEPlatform/wpe/WPEDisplay.cpp | 113 ++++ - Source/WebKit/WPEPlatform/wpe/WPEDisplay.h | 11 + - Source/WebKit/WPEPlatform/wpe/WPEMonitor.cpp | 527 ++++++++++++++++++ - Source/WebKit/WPEPlatform/wpe/WPEMonitor.h | 76 +++ - Source/WebKit/WPEPlatform/wpe/WPEView.cpp | 32 ++ - Source/WebKit/WPEPlatform/wpe/WPEView.h | 33 +- - .../WPEPlatform/wpe/wayland/CMakeLists.txt | 2 +- - .../wpe/wayland/WPEDisplayWayland.cpp | 54 +- - .../wpe/wayland/WPEDisplayWaylandPrivate.h | 4 +- - .../wpe/wayland/WPEMonitorWayland.cpp | 141 +++++ - .../wpe/wayland/WPEMonitorWayland.h | 46 ++ - .../wpe/wayland/WPEMonitorWaylandPrivate.h | 30 + - .../wpe/wayland/WPEViewWayland.cpp | 68 ++- - .../WPEPlatform/wpe/wayland/wpe-wayland.h | 1 + - Source/WebKit/WPEPlatform/wpe/wpe-platform.h | 1 + - Source/WebKit/WebProcess/WebPage/WebPage.cpp | 3 + - Source/WebKit/WebProcess/WebProcess.h | 2 +- - .../WebKit/WebProcess/WebProcess.messages.in | 2 +- - .../WebKit/WebProcess/glib/WebProcessGLib.cpp | 10 +- - 40 files changed, 1464 insertions(+), 142 deletions(-) - create mode 100644 Source/WebKit/UIProcess/glib/ScreenManager.cpp - rename Source/WebKit/UIProcess/{gtk => glib}/ScreenManager.h (71%) - rename Source/WebKit/UIProcess/gtk/{ScreenManager.cpp => ScreenManagerGtk.cpp} (81%) - create mode 100644 Source/WebKit/UIProcess/wpe/ScreenManagerWPE.cpp - create mode 100644 Source/WebKit/WPEPlatform/wpe/WPEMonitor.cpp - create mode 100644 Source/WebKit/WPEPlatform/wpe/WPEMonitor.h - create mode 100644 Source/WebKit/WPEPlatform/wpe/wayland/WPEMonitorWayland.cpp - create mode 100644 Source/WebKit/WPEPlatform/wpe/wayland/WPEMonitorWayland.h - create mode 100644 Source/WebKit/WPEPlatform/wpe/wayland/WPEMonitorWaylandPrivate.h - -diff --git a/Source/WebCore/platform/PlatformScreen.cpp b/Source/WebCore/platform/PlatformScreen.cpp -index 39fbdb1be924d..ae46341ba71c7 100644 ---- a/Source/WebCore/platform/PlatformScreen.cpp -+++ b/Source/WebCore/platform/PlatformScreen.cpp -@@ -26,7 +26,7 @@ - #include "config.h" - #include "PlatformScreen.h" - --#if PLATFORM(COCOA) || PLATFORM(GTK) -+#if PLATFORM(COCOA) || PLATFORM(GTK) || (PLATFORM(WPE) && ENABLE(WPE_PLATFORM)) - - #include "ScreenProperties.h" - #include -@@ -72,4 +72,4 @@ const ScreenData* screenData(PlatformDisplayID screenDisplayID) - - } // namespace WebCore - --#endif // PLATFORM(COCOA) || PLATFORM(GTK) -+#endif // PLATFORM(COCOA) || PLATFORM(GTK) || (PLATFORM(WPE) && ENABLE(WPE_PLATFORM)) -diff --git a/Source/WebCore/platform/ScreenProperties.h b/Source/WebCore/platform/ScreenProperties.h -index bfc75c3f1bbac..c6c8ef374d566 100644 ---- a/Source/WebCore/platform/ScreenProperties.h -+++ b/Source/WebCore/platform/ScreenProperties.h -@@ -52,6 +52,6 @@ struct ScreenData { - DynamicRangeMode preferredDynamicRangeMode { DynamicRangeMode::Standard }; - #endif --#if PLATFORM(GTK) -+#if PLATFORM(GTK) || (PLATFORM(WPE) && ENABLE(WPE_PLATFORM)) - IntSize screenSize; // In millimeters. - double dpi; - #endif -diff --git a/Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in b/Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in -index 60cb2d48e462b..5c46fb7a2a1c1 100644 ---- a/Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in -+++ b/Source/WebKit/Shared/WebCoreArgumentCoders.serialization.in -@@ -2239,7 +2239,7 @@ header: - WebCore::PlatformGPUID gpuID; - WebCore::DynamicRangeMode preferredDynamicRangeMode; - #endif --#if PLATFORM(GTK) -+#if PLATFORM(GTK) || (PLATFORM(WPE) && ENABLE(WPE_PLATFORM)) - WebCore::IntSize screenSize; - double dpi; - #endif -diff --git a/Source/WebKit/Shared/WebPageCreationParameters.h b/Source/WebKit/Shared/WebPageCreationParameters.h -index 2ea7cff733553..fa75878f40592 100644 ---- a/Source/WebKit/Shared/WebPageCreationParameters.h -+++ b/Source/WebKit/Shared/WebPageCreationParameters.h -@@ -105,6 +105,9 @@ struct WebPageCreationParameters { - - std::optional viewExposedRect; - -+ std::optional displayID; -+ std::optional nominalFramesPerSecond; -+ - bool alwaysShowsHorizontalScroller; - bool alwaysShowsVerticalScroller; - -diff --git a/Source/WebKit/Shared/WebPageCreationParameters.serialization.in b/Source/WebKit/Shared/WebPageCreationParameters.serialization.in -index 12363533fca5e..5bee2a3eb5a87 100644 ---- a/Source/WebKit/Shared/WebPageCreationParameters.serialization.in -+++ b/Source/WebKit/Shared/WebPageCreationParameters.serialization.in -@@ -46,6 +46,9 @@ headers: "ArgumentCoders.h" - - std::optional viewExposedRect; - -+ std::optional displayID; -+ std::optional nominalFramesPerSecond; -+ - bool alwaysShowsHorizontalScroller; - bool alwaysShowsVerticalScroller; - -diff --git a/Source/WebKit/Shared/WebProcessCreationParameters.h b/Source/WebKit/Shared/WebProcessCreationParameters.h -index 85df7bc9ddcc3..d95844aacd23b 100644 ---- a/Source/WebKit/Shared/WebProcessCreationParameters.h -+++ b/Source/WebKit/Shared/WebProcessCreationParameters.h -@@ -42,7 +42,7 @@ - #include - #include - --#if PLATFORM(COCOA) || PLATFORM(GTK) -+#if PLATFORM(COCOA) || PLATFORM(GTK) || (PLATFORM(WPE) && ENABLE(WPE_PLATFORM)) - #include - #endif - -@@ -169,7 +169,7 @@ struct WebProcessCreationParameters { - Vector mediaMIMETypes; - #endif - --#if PLATFORM(COCOA) || PLATFORM(GTK) -+#if PLATFORM(COCOA) || PLATFORM(GTK) || (PLATFORM(WPE) && ENABLE(WPE_PLATFORM)) - WebCore::ScreenProperties screenProperties; - #endif - -diff --git a/Source/WebKit/Shared/WebProcessCreationParameters.serialization.in b/Source/WebKit/Shared/WebProcessCreationParameters.serialization.in -index 0b8265f8ff27d..2c4c7ccd31217 100644 ---- a/Source/WebKit/Shared/WebProcessCreationParameters.serialization.in -+++ b/Source/WebKit/Shared/WebProcessCreationParameters.serialization.in -@@ -118,7 +118,7 @@ - Vector mediaMIMETypes; - #endif - --#if PLATFORM(COCOA) || PLATFORM(GTK) -+#if PLATFORM(COCOA) || PLATFORM(GTK) || (PLATFORM(WPE) && ENABLE(WPE_PLATFORM)) - WebCore::ScreenProperties screenProperties; - #endif - -diff --git a/Source/WebKit/SourcesGTK.txt b/Source/WebKit/SourcesGTK.txt -index 2db1af6d6140f..dbd2950cc54d6 100644 ---- a/Source/WebKit/SourcesGTK.txt -+++ b/Source/WebKit/SourcesGTK.txt -@@ -260,6 +260,7 @@ UIProcess/glib/DisplayLinkGLib.cpp - UIProcess/glib/DisplayVBlankMonitor.cpp - UIProcess/glib/DisplayVBlankMonitorDRM.cpp - UIProcess/glib/DisplayVBlankMonitorTimer.cpp -+UIProcess/glib/ScreenManager.cpp - UIProcess/glib/WebPageProxyGLib.cpp - UIProcess/glib/WebProcessPoolGLib.cpp - UIProcess/glib/WebProcessProxyGLib.cpp -@@ -278,7 +279,7 @@ UIProcess/gtk/KeyBindingTranslator.cpp - UIProcess/gtk/PointerLockManager.cpp @no-unify - UIProcess/gtk/PointerLockManagerWayland.cpp @no-unify - UIProcess/gtk/PointerLockManagerX11.cpp @no-unify --UIProcess/gtk/ScreenManager.cpp @no-unify -+UIProcess/gtk/ScreenManagerGtk.cpp @no-unify - UIProcess/gtk/TextCheckerGtk.cpp @no-unify - UIProcess/gtk/ViewSnapshotStoreGtk3.cpp @no-unify - UIProcess/gtk/ViewSnapshotStoreGtk4.cpp @no-unify - -diff --git a/Source/WebKit/UIProcess/WebPageProxy.cpp b/Source/WebKit/UIProcess/WebPageProxy.cpp -index 9a2bae74232d0..c7612aeb06b73 100644 ---- a/Source/WebKit/UIProcess/WebPageProxy.cpp -+++ b/Source/WebKit/UIProcess/WebPageProxy.cpp -@@ -9800,6 +9800,10 @@ WebPageCreationParameters WebPageProxy::creationParameters(WebProcessProxy& proc - parameters.minimumUnobscuredSize = internals().minimumUnobscuredSize; - parameters.maximumUnobscuredSize = internals().maximumUnobscuredSize; - parameters.viewExposedRect = internals().viewExposedRect; -+ if (m_displayID) { -+ parameters.displayID = m_displayID; -+ parameters.nominalFramesPerSecond = drawingArea.displayNominalFramesPerSecond(); -+ } - parameters.alwaysShowsHorizontalScroller = m_alwaysShowsHorizontalScroller; - parameters.alwaysShowsVerticalScroller = m_alwaysShowsVerticalScroller; - parameters.suppressScrollbarAnimations = m_suppressScrollbarAnimations; -diff --git a/Source/WebKit/UIProcess/glib/DisplayVBlankMonitorDRM.cpp b/Source/WebKit/UIProcess/glib/DisplayVBlankMonitorDRM.cpp -index a74cb9be98513..c9c69df44cd22 100644 ---- a/Source/WebKit/UIProcess/glib/DisplayVBlankMonitorDRM.cpp -+++ b/Source/WebKit/UIProcess/glib/DisplayVBlankMonitorDRM.cpp -@@ -40,9 +40,12 @@ - #include - #include - --#if PLATFORM(GTK) -+#if PLATFORM(GTK) || (PLATFORM(WPE) && ENABLE(WPE_PLATFORM)) - #include "ScreenManager.h" - #include -+#endif -+ -+#if PLATFORM(GTK) - #include - #endif - -@@ -52,15 +55,20 @@ - - namespace WebKit { - --#if PLATFORM(GTK) --static std::optional findCrtc(int fd, GdkMonitor* monitor) -+#if PLATFORM(GTK) || (PLATFORM(WPE) && ENABLE(WPE_PLATFORM)) -+static std::optional> findCrtc(int fd, PlatformMonitor* monitor) - { - drmModeRes* resources = drmModeGetResources(fd); - if (!resources) - return std::nullopt; - -+#if PLATFORM(GTK) - uint32_t widthMM = gdk_monitor_get_width_mm(monitor); - uint32_t heightMM = gdk_monitor_get_height_mm(monitor); -+#elif PLATFORM(WPE) -+ uint32_t widthMM = wpe_monitor_get_physical_width(monitor); -+ uint32_t heightMM = wpe_monitor_get_physical_height(monitor); -+#endif - - // First find connectors matching the size. - Vector connectors; -@@ -87,13 +95,18 @@ static std::optional findCrtc(int fd, GdkMonitor* monitor) - return std::nullopt; - } - -- std::optional returnValue; -+ std::optional> returnValue; - - // FIXME: if there are multiple connectors, check other properties. - if (drmModeEncoder* encoder = drmModeGetEncoder(fd, connectors[0]->encoder_id)) { - for (int i = 0; i < resources->count_crtcs; ++i) { - if (resources->crtcs[i] == encoder->crtc_id) { -- returnValue = i; -+#if PLATFORM(GTK) -+ auto refreshRate = gdk_monitor_get_refresh_rate(monitor); -+#elif PLATFORM(WPE) -+ auto refreshRate = wpe_monitor_get_refresh_rate(monitor); -+#endif -+ returnValue = { i, refreshRate }; - break; - } - } -@@ -107,7 +120,9 @@ static std::optional findCrtc(int fd, GdkMonitor* monitor) - - return returnValue; - } --#elif PLATFORM(WPE) -+#endif -+ -+#if PLATFORM(WPE) - static std::optional> findCrtc(int fd) - { - drmModeRes* resources = drmModeGetResources(fd); -@@ -176,9 +191,32 @@ static int crtcBitmaskForIndex(uint32_t crtcIndex) - - std::unique_ptr DisplayVBlankMonitorDRM::create(PlatformDisplayID displayID) - { -+#if PLATFORM(WPE) && ENABLE(WPE_PLATFORM) -+ static bool usingWPEPlatformAPI = !!g_type_class_peek(WPE_TYPE_DISPLAY); -+#endif -+ -+#if PLATFORM(WPE) && ENABLE(WPE_PLATFORM) -+ PlatformMonitor* monitor = nullptr; -+ if (usingWPEPlatformAPI) { -+ monitor = ScreenManager::singleton().monitor(displayID ? displayID : WebCore::primaryScreenDisplayID()); -+ if (!monitor) { -+ RELEASE_LOG_FAULT(DisplayLink, "Could not create a vblank monitor for display %u: no monitor found", displayID); -+ return nullptr; -+ } -+ } -+#endif -+ -+#if PLATFORM(GTK) -+ auto* monitor = ScreenManager::singleton().monitor(displayID ? displayID : WebCore::primaryScreenDisplayID()); -+ if (!monitor) { -+ RELEASE_LOG_FAULT(DisplayLink, "Could not create a vblank monitor for display %u: no monitor found", displayID); -+ return nullptr; -+ } -+#endif -+ - #if PLATFORM(WPE) && ENABLE(WPE_PLATFORM) - String filename; -- if (g_type_class_peek(WPE_TYPE_DISPLAY)) -+ if (usingWPEPlatformAPI) - filename = String::fromUTF8(wpe_render_device()); - else - filename = WebCore::PlatformDisplay::sharedDisplay().drmDeviceFile(); -@@ -197,28 +235,21 @@ std::unique_ptr DisplayVBlankMonitorDRM::create(PlatformDi - } - - #if PLATFORM(GTK) -- auto* monitor = ScreenManager::singleton().monitor(displayID ? displayID : WebCore::primaryScreenDisplayID()); -- if (!monitor) { -- RELEASE_LOG_FAULT(DisplayLink, "Could not create a vblank monitor for display %u: no monitor found", displayID); -- return nullptr; -- } -- -- auto crtcIndex = findCrtc(fd.value(), monitor); -- if (!crtcIndex) { -- RELEASE_LOG_FAULT(DisplayLink, "Could not create a vblank monitor for display %u: no CRTC found", displayID); -- return nullptr; -- } -- -- auto crtcBitmask = crtcBitmaskForIndex(crtcIndex.value()); -+ auto crtcInfo = findCrtc(fd.value(), monitor); - #elif PLATFORM(WPE) -+#if ENABLE(WPE_PLATFORM) -+ auto crtcInfo = monitor ? findCrtc(fd.value(), monitor) : findCrtc(fd.value()); -+#else - auto crtcInfo = findCrtc(fd.value()); -+#endif -+#endif -+ - if (!crtcInfo) { - RELEASE_LOG_FAULT(DisplayLink, "Could not create a vblank monitor for display %u: no CRTC found", displayID); - return nullptr; - } - - auto crtcBitmask = crtcBitmaskForIndex(crtcInfo->first); --#endif - - drmVBlank vblank; - vblank.request.type = static_cast(DRM_VBLANK_RELATIVE | crtcBitmask); -@@ -230,11 +261,7 @@ std::unique_ptr DisplayVBlankMonitorDRM::create(PlatformDi - return nullptr; - } - --#if PLATFORM(GTK) -- return makeUnique(gdk_monitor_get_refresh_rate(monitor) / 1000, WTFMove(fd), crtcBitmask); --#elif PLATFORM(WPE) - return makeUnique(crtcInfo->second / 1000, WTFMove(fd), crtcBitmask); --#endif - } - - DisplayVBlankMonitorDRM::DisplayVBlankMonitorDRM(unsigned refreshRate, UnixFileDescriptor&& fd, int crtcBitmask) -diff --git a/Source/WebKit/UIProcess/glib/ScreenManager.cpp b/Source/WebKit/UIProcess/glib/ScreenManager.cpp -new file mode 100644 -index 0000000000000..52628e6ba9903 ---- /dev/null -+++ b/Source/WebKit/UIProcess/glib/ScreenManager.cpp -@@ -0,0 +1,78 @@ -+/* -+ * Copyright (C) 2023 Igalia S.L. -+ * -+ * Redistribution and use in source and binary forms, with or without -+ * modification, are permitted provided that the following conditions -+ * are met: -+ * 1. Redistributions of source code must retain the above copyright -+ * notice, this list of conditions and the following disclaimer. -+ * 2. Redistributions in binary form must reproduce the above copyright -+ * notice, this list of conditions and the following disclaimer in the -+ * documentation and/or other materials provided with the distribution. -+ * -+ * THIS SOFTWARE IS PROVIDED BY APPLE INC. ``AS IS'' AND ANY -+ * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -+ * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL APPLE INC. OR -+ * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, -+ * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, -+ * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR -+ * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY -+ * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT -+ * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE -+ * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -+ */ -+ -+#include "config.h" -+#include "ScreenManager.h" -+ -+#if PLATFORM(GTK) || (PLATFORM(WPE) && ENABLE(WPE_PLATFORM)) -+#include "WebProcessMessages.h" -+#include "WebProcessPool.h" -+ -+namespace WebKit { -+ -+ScreenManager& ScreenManager::singleton() -+{ -+ static NeverDestroyed manager; -+ return manager; -+} -+ -+PlatformDisplayID ScreenManager::displayID(PlatformMonitor* monitor) const -+{ -+ return m_monitorToDisplayIDMap.get(monitor); -+} -+ -+PlatformMonitor* ScreenManager::monitor(PlatformDisplayID displayID) const -+{ -+ for (const auto& iter : m_monitorToDisplayIDMap) { -+ if (iter.value == displayID) -+ return iter.key; -+ } -+ return nullptr; -+} -+ -+void ScreenManager::addMonitor(PlatformMonitor* monitor) -+{ -+ m_monitors.append(monitor); -+ m_monitorToDisplayIDMap.add(monitor, generatePlatformDisplayID(monitor)); -+} -+ -+void ScreenManager::removeMonitor(PlatformMonitor* monitor) -+{ -+ m_monitorToDisplayIDMap.remove(monitor); -+ m_monitors.removeFirstMatching([monitor](const auto& item) { -+ return item.get() == monitor; -+ }); -+} -+ -+void ScreenManager::propertiesDidChange() const -+{ -+ auto properties = collectScreenProperties(); -+ for (auto& pool : WebProcessPool::allProcessPools()) -+ pool->sendToAllProcesses(Messages::WebProcess::SetScreenProperties(properties)); -+} -+ -+} // namespace WebKit -+ -+#endif // PLATFORM(GTK) || (PLATFORM(WPE) && ENABLE(WPE_PLATFORM)) -diff --git a/Source/WebKit/UIProcess/gtk/ScreenManager.h b/Source/WebKit/UIProcess/glib/ScreenManager.h -similarity index 71% -rename from Source/WebKit/UIProcess/gtk/ScreenManager.h -rename to Source/WebKit/UIProcess/glib/ScreenManager.h -index e46fc1900bf3c..4fc1199e634b0 100644 ---- a/Source/WebKit/UIProcess/gtk/ScreenManager.h -+++ b/Source/WebKit/UIProcess/glib/ScreenManager.h -@@ -1,5 +1,5 @@ - /* -- * Copyright (C) 2023 Igalia S.L. -+ * Copyright (C) 2023,2024 Igalia S.L. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions -@@ -25,13 +25,21 @@ - - #pragma once - -+#if PLATFORM(GTK) || (PLATFORM(WPE) && ENABLE(WPE_PLATFORM)) -+ - #include - #include - #include - #include - #include - -+#if PLATFORM(GTK) - typedef struct _GdkMonitor GdkMonitor; -+using PlatformMonitor = GdkMonitor; -+#elif PLATFORM(WPE) && ENABLE(WPE_PLATFORM) -+typedef struct _WPEMonitor WPEMonitor; -+using PlatformMonitor = WPEMonitor; -+#endif - - namespace WebKit { - -@@ -43,20 +51,24 @@ class ScreenManager { - public: - static ScreenManager& singleton(); - -- PlatformDisplayID displayID(GdkMonitor*) const; -- GdkMonitor* monitor(PlatformDisplayID) const; -+ PlatformDisplayID displayID(PlatformMonitor*) const; -+ PlatformMonitor* monitor(PlatformDisplayID) const; - - WebCore::ScreenProperties collectScreenProperties() const; - - private: - ScreenManager(); - -- void addMonitor(GdkMonitor*); -- void removeMonitor(GdkMonitor*); -+ static PlatformDisplayID generatePlatformDisplayID(PlatformMonitor*); -+ -+ void addMonitor(PlatformMonitor*); -+ void removeMonitor(PlatformMonitor*); - void propertiesDidChange() const; - -- Vector, 1> m_monitors; -- HashMap m_monitorToDisplayIDMap; -+ Vector, 1> m_monitors; -+ HashMap m_monitorToDisplayIDMap; - }; - - } // namespace WebKit -+ -+#endif // PLATFORM(GTK) || (PLATFORM(WPE) && ENABLE(WPE_PLATFORM)) -diff --git a/Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp b/Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp -index d26efed5f6bd8..f62fef3f76288 100644 ---- a/Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp -+++ b/Source/WebKit/UIProcess/glib/WebProcessPoolGLib.cpp -@@ -48,12 +48,15 @@ - #include - #endif - -+#if PLATFORM(GTK) || (PLATFORM(WPE) && ENABLE(WPE_PLATFORM)) -+#include "ScreenManager.h" -+#endif -+ - #if PLATFORM(GTK) - #if USE(EGL) - #include "AcceleratedBackingStoreDMABuf.h" - #endif - #include "GtkSettingsManager.h" --#include "ScreenManager.h" - #endif - - #if PLATFORM(WPE) && ENABLE(WPE_PLATFORM) -@@ -160,6 +163,11 @@ void WebProcessPool::platformInitializeWebProcess(const WebProcessProxy& process - parameters.gtkSettings = GtkSettingsManager::singleton().settingsState(); - parameters.screenProperties = ScreenManager::singleton().collectScreenProperties(); - #endif -+ -+#if PLATFORM(WPE) && ENABLE(WPE_PLATFORM) -+ if (usingWPEPlatformAPI) -+ parameters.screenProperties = ScreenManager::singleton().collectScreenProperties(); -+#endif - } - - void WebProcessPool::platformInvalidateContext() -diff --git a/Source/WebKit/UIProcess/gtk/ScreenManager.cpp b/Source/WebKit/UIProcess/gtk/ScreenManagerGtk.cpp -similarity index 81% -rename from Source/WebKit/UIProcess/gtk/ScreenManager.cpp -rename to Source/WebKit/UIProcess/gtk/ScreenManagerGtk.cpp -index 0f628fcac6520..536accd95fee9 100644 ---- a/Source/WebKit/UIProcess/gtk/ScreenManager.cpp -+++ b/Source/WebKit/UIProcess/gtk/ScreenManagerGtk.cpp -@@ -27,8 +27,6 @@ - #include "ScreenManager.h" - - #include "GtkSettingsManager.h" --#include "WebProcessMessages.h" --#include "WebProcessPool.h" - #include - #include - #include -@@ -36,13 +34,7 @@ - namespace WebKit { - using namespace WebCore; - --ScreenManager& ScreenManager::singleton() --{ -- static NeverDestroyed manager; -- return manager; --} -- --static PlatformDisplayID generatePlatformDisplayID() -+PlatformDisplayID ScreenManager::generatePlatformDisplayID(GdkMonitor*) - { - static PlatformDisplayID id; - return ++id; -@@ -84,41 +76,6 @@ ScreenManager::ScreenManager() - #endif - } - --PlatformDisplayID ScreenManager::displayID(GdkMonitor* monitor) const --{ -- return m_monitorToDisplayIDMap.get(monitor); --} -- --GdkMonitor* ScreenManager::monitor(PlatformDisplayID displayID) const --{ -- for (const auto& iter : m_monitorToDisplayIDMap) { -- if (iter.value == displayID) -- return iter.key; -- } -- return nullptr; --} -- --void ScreenManager::addMonitor(GdkMonitor* monitor) --{ -- m_monitors.append(monitor); -- m_monitorToDisplayIDMap.add(monitor, generatePlatformDisplayID()); --} -- --void ScreenManager::removeMonitor(GdkMonitor* monitor) --{ -- m_monitorToDisplayIDMap.remove(monitor); -- m_monitors.removeFirstMatching([monitor](const auto& item) { -- return item.get() == monitor; -- }); --} -- --void ScreenManager::propertiesDidChange() const --{ -- auto properties = collectScreenProperties(); -- for (auto& pool : WebProcessPool::allProcessPools()) -- pool->sendToAllProcesses(Messages::WebProcess::SetScreenProperties(properties)); --} -- - ScreenProperties ScreenManager::collectScreenProperties() const - { - #if USE(GTK4) - -diff --git a/Source/WebKit/WebProcess/WebPage/WebPage.cpp b/Source/WebKit/WebProcess/WebPage/WebPage.cpp -index 62c6599edb668..b443fc73cca46 100644 ---- a/Source/WebKit/WebProcess/WebPage/WebPage.cpp -+++ b/Source/WebKit/WebProcess/WebPage/WebPage.cpp -@@ -751,6 +751,9 @@ WebPage::WebPage(PageIdentifier pageID, WebPageCreationParameters&& parameters) - - updateAfterDrawingAreaCreation(parameters); - -+ if (parameters.displayID) -+ windowScreenDidChange(*parameters.displayID, parameters.nominalFramesPerSecond); -+ - WebStorageNamespaceProvider::incrementUseCount(sessionStorageNamespaceIdentifier()); - - updatePreferences(parameters.store); -diff --git a/Source/WebKit/WebProcess/WebProcess.h b/Source/WebKit/WebProcess/WebProcess.h -index 6873c9821f01f..686d385ab40ae 100644 ---- a/Source/WebKit/WebProcess/WebProcess.h -+++ b/Source/WebKit/WebProcess/WebProcess.h -@@ -604,7 +604,7 @@ class WebProcess : public AuxiliaryProcess - void displayConfigurationChanged(CGDirectDisplayID, CGDisplayChangeSummaryFlags); - #endif - --#if PLATFORM(COCOA) || PLATFORM(GTK) -+#if PLATFORM(COCOA) || PLATFORM(GTK) || PLATFORM(WPE) - void setScreenProperties(const WebCore::ScreenProperties&); - #endif - -diff --git a/Source/WebKit/WebProcess/WebProcess.messages.in b/Source/WebKit/WebProcess/WebProcess.messages.in -index c03d868dd326e..4af7663e3501f 100644 ---- a/Source/WebKit/WebProcess/WebProcess.messages.in -+++ b/Source/WebKit/WebProcess/WebProcess.messages.in -@@ -109,7 +109,7 @@ messages -> WebProcess LegacyReceiver NotRefCounted { - MarkIsNoLongerPrewarmed() - GetActivePagesOriginsForTesting() -> (Vector activeOrigins) - --#if PLATFORM(COCOA) || PLATFORM(GTK) -+#if PLATFORM(COCOA) || PLATFORM(GTK) || PLATFORM(WPE) - SetScreenProperties(struct WebCore::ScreenProperties screenProperties) - #endif - #if PLATFORM(MAC) -diff --git a/Source/WebKit/WebProcess/glib/WebProcessGLib.cpp b/Source/WebKit/WebProcess/glib/WebProcessGLib.cpp -index 52079a0b59523..99a3a8930ac33 100644 ---- a/Source/WebKit/WebProcess/glib/WebProcessGLib.cpp -+++ b/Source/WebKit/WebProcess/glib/WebProcessGLib.cpp -@@ -195,8 +195,16 @@ void WebProcess::platformInitializeWebProcess(WebProcessCreationParameters& para - - #if PLATFORM(GTK) - GtkSettingsManagerProxy::singleton().applySettings(WTFMove(parameters.gtkSettings)); -+#endif -+ -+#if PLATFORM(GTK) - WebCore::setScreenProperties(parameters.screenProperties); - #endif -+ -+#if PLATFORM(WPE) && ENABLE(WPE_PLATFORM) -+ if (!m_dmaBufRendererBufferMode.isEmpty()) -+ WebCore::setScreenProperties(parameters.screenProperties); -+#endif - } - - void WebProcess::platformSetWebsiteDataStoreParameters(WebProcessDataStoreParameters&&) -@@ -248,7 +256,7 @@ void WebProcess::releaseSystemMallocMemory() - #endif - } - --#if PLATFORM(GTK) -+#if PLATFORM(GTK) || PLATFORM(WPE) - void WebProcess::setScreenProperties(const WebCore::ScreenProperties& properties) - { - WebCore::setScreenProperties(properties); - -From cad5d7e5ed760db4515ca25da8080fe5e85b7e90 Mon Sep 17 00:00:00 2001 -From: Carlos Garcia Campos -Date: Tue, 6 Feb 2024 01:26:25 -0800 -Subject: [PATCH] [GTK][WPE] Initialize display ID as early as possible - https://bugs.webkit.org/show_bug.cgi?id=268744 - -Reviewed by Adrian Perez de Castro. - -In GTK we currently get the display ID when the toplevel window is -realized and gets a monitor assigned. This is happening right after the -web page is initialized, which means we always create the web page with -0 display ID and right after that a window screen change happens. -Because of this we end up creating two display link monitors. We can -avoid this by initializing the web view display id as soon as possible -using the primary display ID, that in most of the cases will be then one -used when the monitor is assigned to the toplevel. - -This patch also ensures we never create a DRM vblank monitor when -display ID is 0, since that's never a valid monitor. We just -fallback to the timer vblank monitor in that case. - -* Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp: -(webkitWebViewBaseConstructed): -* Source/WebKit/UIProcess/API/wpe/WPEWebView.cpp: -(WKWPE::m_backend): -* Source/WebKit/UIProcess/glib/DisplayVBlankMonitor.cpp: -(WebKit::DisplayVBlankMonitor::create): -* Source/WebKit/UIProcess/glib/DisplayVBlankMonitorDRM.cpp: -(WebKit::DisplayVBlankMonitorDRM::create): -* Source/WebKit/UIProcess/glib/ScreenManager.h: -(WebKit::ScreenManager::primaryDisplayID const): -* Source/WebKit/UIProcess/gtk/ScreenManagerGtk.cpp: -(WebKit::ScreenManager::ScreenManager): -(WebKit::ScreenManager::updatePrimaryDisplayID): -(WebKit::ScreenManager::collectScreenProperties const): -* Source/WebKit/UIProcess/wpe/ScreenManagerWPE.cpp: -(WebKit::ScreenManager::ScreenManager): -(WebKit::ScreenManager::updatePrimaryDisplayID): -(WebKit::ScreenManager::collectScreenProperties const): - -Canonical link: https://commits.webkit.org/274136@main ---- - .../UIProcess/API/gtk/WebKitWebViewBase.cpp | 2 ++ - .../WebKit/UIProcess/API/wpe/WPEWebView.cpp | 9 ++++- - .../UIProcess/glib/DisplayVBlankMonitor.cpp | 4 +-- - .../glib/DisplayVBlankMonitorDRM.cpp | 5 ++- - Source/WebKit/UIProcess/glib/ScreenManager.h | 3 ++ - .../WebKit/UIProcess/gtk/ScreenManagerGtk.cpp | 35 +++++++++++++++---- - .../WebKit/UIProcess/wpe/ScreenManagerWPE.cpp | 18 +++++++--- - 7 files changed, 60 insertions(+), 16 deletions(-) - -diff --git a/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp b/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp -index 60727fc9e2ad3..55701f7211548 100644 ---- a/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp -+++ b/Source/WebKit/UIProcess/API/gtk/WebKitWebViewBase.cpp -@@ -2432,6 +2432,8 @@ static void webkitWebViewBaseConstructed(GObject* object) - }; - g_signal_connect_object(settings, "notify::gtk-theme-name", G_CALLBACK(callback), viewWidget, G_CONNECT_SWAPPED); - g_signal_connect_object(settings, "notify::gtk-application-prefer-dark-theme", G_CALLBACK(callback), viewWidget, G_CONNECT_SWAPPED); -+ -+ priv->displayID = ScreenManager::singleton().primaryDisplayID(); - } - - static void webkit_web_view_base_class_init(WebKitWebViewBaseClass* webkitWebViewBaseClass) -diff --git a/Source/WebKit/UIProcess/glib/DisplayVBlankMonitor.cpp b/Source/WebKit/UIProcess/glib/DisplayVBlankMonitor.cpp -index 1c286f0715ae5..ccb1ce062649e 100644 ---- a/Source/WebKit/UIProcess/glib/DisplayVBlankMonitor.cpp -+++ b/Source/WebKit/UIProcess/glib/DisplayVBlankMonitor.cpp -@@ -40,8 +40,8 @@ namespace WebKit { - - std::unique_ptr DisplayVBlankMonitor::create(PlatformDisplayID displayID) - { -- const char* forceTimer = getenv("WEBKIT_FORCE_VBLANK_TIMER"); -- if (forceTimer && strcmp(forceTimer, "0")) -+ static const char* forceTimer = getenv("WEBKIT_FORCE_VBLANK_TIMER"); -+ if (!displayID || (forceTimer && strcmp(forceTimer, "0"))) - return DisplayVBlankMonitorTimer::create(); - - #if USE(LIBDRM) -diff --git a/Source/WebKit/UIProcess/glib/DisplayVBlankMonitorDRM.cpp b/Source/WebKit/UIProcess/glib/DisplayVBlankMonitorDRM.cpp -index c9c69df44cd22..bbb7655a9539f 100644 ---- a/Source/WebKit/UIProcess/glib/DisplayVBlankMonitorDRM.cpp -+++ b/Source/WebKit/UIProcess/glib/DisplayVBlankMonitorDRM.cpp -@@ -42,7 +42,6 @@ - - #if PLATFORM(GTK) || (PLATFORM(WPE) && ENABLE(WPE_PLATFORM)) - #include "ScreenManager.h" --#include - #endif - - #if PLATFORM(GTK) -@@ -198,7 +197,7 @@ std::unique_ptr DisplayVBlankMonitorDRM::create(PlatformDi - #if PLATFORM(WPE) && ENABLE(WPE_PLATFORM) - PlatformMonitor* monitor = nullptr; - if (usingWPEPlatformAPI) { -- monitor = ScreenManager::singleton().monitor(displayID ? displayID : WebCore::primaryScreenDisplayID()); -+ monitor = ScreenManager::singleton().monitor(displayID); - if (!monitor) { - RELEASE_LOG_FAULT(DisplayLink, "Could not create a vblank monitor for display %u: no monitor found", displayID); - return nullptr; -@@ -207,7 +206,7 @@ std::unique_ptr DisplayVBlankMonitorDRM::create(PlatformDi - #endif - - #if PLATFORM(GTK) -- auto* monitor = ScreenManager::singleton().monitor(displayID ? displayID : WebCore::primaryScreenDisplayID()); -+ auto* monitor = ScreenManager::singleton().monitor(displayID); - if (!monitor) { - RELEASE_LOG_FAULT(DisplayLink, "Could not create a vblank monitor for display %u: no monitor found", displayID); - return nullptr; -diff --git a/Source/WebKit/UIProcess/glib/ScreenManager.h b/Source/WebKit/UIProcess/glib/ScreenManager.h -index 4fc1199e634b0..3675fbf3bc72b 100644 ---- a/Source/WebKit/UIProcess/glib/ScreenManager.h -+++ b/Source/WebKit/UIProcess/glib/ScreenManager.h -@@ -53,6 +53,7 @@ class ScreenManager { - - PlatformDisplayID displayID(PlatformMonitor*) const; - PlatformMonitor* monitor(PlatformDisplayID) const; -+ PlatformDisplayID primaryDisplayID() const { return m_primaryDisplayID; } - - WebCore::ScreenProperties collectScreenProperties() const; - -@@ -63,10 +64,12 @@ class ScreenManager { - - void addMonitor(PlatformMonitor*); - void removeMonitor(PlatformMonitor*); -+ void updatePrimaryDisplayID(); - void propertiesDidChange() const; - - Vector, 1> m_monitors; - HashMap m_monitorToDisplayIDMap; -+ PlatformDisplayID m_primaryDisplayID { 0 }; - }; - - } // namespace WebKit -diff --git a/Source/WebKit/UIProcess/gtk/ScreenManagerGtk.cpp b/Source/WebKit/UIProcess/gtk/ScreenManagerGtk.cpp -index 536accd95fee9..39b61264e0431 100644 ---- a/Source/WebKit/UIProcess/gtk/ScreenManagerGtk.cpp -+++ b/Source/WebKit/UIProcess/gtk/ScreenManagerGtk.cpp -@@ -57,6 +57,7 @@ ScreenManager::ScreenManager() - auto monitor = adoptGRef(GDK_MONITOR(g_list_model_get_item(monitors, index + i))); - manager->addMonitor(monitor.get()); - } -+ manager->updatePrimaryDisplayID(); - manager->propertiesDidChange(); - }), this); - #else -@@ -67,20 +68,44 @@ ScreenManager::ScreenManager() - } - g_signal_connect(display, "monitor-added", G_CALLBACK(+[](GdkDisplay*, GdkMonitor* monitor, ScreenManager* manager) { - manager->addMonitor(monitor); -+ manager->updatePrimaryDisplayID(); - manager->propertiesDidChange(); - }), this); - g_signal_connect(display, "monitor-removed", G_CALLBACK(+[](GdkDisplay*, GdkMonitor* monitor, ScreenManager* manager) { - manager->removeMonitor(monitor); -+ manager->updatePrimaryDisplayID(); - manager->propertiesDidChange(); - }), this); - #endif -+ updatePrimaryDisplayID(); - } - --ScreenProperties ScreenManager::collectScreenProperties() const -+void ScreenManager::updatePrimaryDisplayID() - { -+ auto* display = gdk_display_get_default(); - #if USE(GTK4) -- GdkMonitor* primaryMonitor = nullptr; -+ // GTK4 doesn't have the concept of primary monitor, so we always use the first one. -+ auto* monitors = gdk_display_get_monitors(display); -+ if (!g_list_model_get_n_items(monitors)) { -+ m_primaryDisplayID = 0; -+ return; -+ } -+ -+ auto monitor = adoptGRef(GDK_MONITOR(g_list_model_get_item(monitors, 0))); -+ m_primaryDisplayID = displayID(monitor.get()); - #else -+ auto* primaryMonitor = gdk_display_get_primary_monitor(display); -+ if (!primaryMonitor) { -+ if (gdk_display_get_n_monitors(display)) -+ primaryMonitor = gdk_display_get_monitor(display, 0); -+ } -+ m_primaryDisplayID = primaryMonitor ? displayID(primaryMonitor) : 0; -+#endif -+} -+ -+ScreenProperties ScreenManager::collectScreenProperties() const -+{ -+#if !USE(GTK4) - auto systemVisual = [](GdkDisplay* display) -> GdkVisual* { - if (auto* screen = gdk_display_get_default_screen(display)) - return gdk_screen_get_system_visual(screen); -@@ -89,15 +114,13 @@ ScreenProperties ScreenManager::collectScreenProperties() const - }; - - auto* display = gdk_display_get_default(); -- auto* primaryMonitor = gdk_display_get_primary_monitor(display); - #endif - - ScreenProperties properties; -+ properties.primaryDisplayID = m_primaryDisplayID; -+ - for (const auto& iter : m_monitorToDisplayIDMap) { - GdkMonitor* monitor = iter.key; -- if (!properties.primaryDisplayID && (!primaryMonitor || primaryMonitor == monitor)) -- properties.primaryDisplayID = iter.value; -- - ScreenData data; - GdkRectangle workArea; - monitorWorkArea(monitor, &workArea); - -From 0a61478183a9db5ee3be866b5106eabd336a0be1 Mon Sep 17 00:00:00 2001 -From: Carlos Garcia Campos -Date: Wed, 7 Feb 2024 05:34:01 -0800 -Subject: [PATCH] [GTK][WPE] Do not use real time priority for the display link - thread https://bugs.webkit.org/show_bug.cgi?id=268900 - -Reviewed by Michael Catanzaro. - -In some cases it can cause the rtkit daemon to kill the ui process due -to CPU usage limit. - -* Source/WebKit/UIProcess/glib/DisplayVBlankMonitor.cpp: -(WebKit::DisplayVBlankMonitor::startThreadIfNeeded): - -Canonical link: https://commits.webkit.org/274210@main ---- - Source/WebKit/UIProcess/glib/DisplayVBlankMonitor.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Source/WebKit/UIProcess/glib/DisplayVBlankMonitor.cpp b/Source/WebKit/UIProcess/glib/DisplayVBlankMonitor.cpp -index ccb1ce062649e..e225009c361ce 100644 ---- a/Source/WebKit/UIProcess/glib/DisplayVBlankMonitor.cpp -+++ b/Source/WebKit/UIProcess/glib/DisplayVBlankMonitor.cpp -@@ -97,7 +97,7 @@ bool DisplayVBlankMonitor::startThreadIfNeeded() - if (active) - m_handler(); - } -- }, ThreadType::Graphics, Thread::QOS::UserInteractive); -+ }, ThreadType::Graphics, Thread::QOS::Default); - return true; - } - diff --git a/sources b/sources index 43988b5..2a53c56 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.43.4.tar.xz) = 6246137deb76192f20bdd1b98e415a183e0c90edf357b08577fa82ce0d196da295c4edf1598b1edc15a258ad6c14997654b947e46e1ea65821c9e5ce6e1dda5c -SHA512 (webkitgtk-2.43.4.tar.xz.asc) = 25fb00babd4d6d0ef6463226561963972895f2320c86e9da1bdf06cb6acdc6cee1ad97380b418e645d20f98a1cd4ec37d20efa0cb75473a6d62ae0cae28ecce7 +SHA512 (webkitgtk-2.44.0.tar.xz) = fb40fe1002b368ce5b498d9f5bf76c1f275156d5ee3b17339b682fcb4ebfd711c8c337ae9dbe90382a72d2a04d49cff23133fc318ec74cd81ae9c5d01c206d2a +SHA512 (webkitgtk-2.44.0.tar.xz.asc) = e4c3da75318de3e06e74f4f6fdeb24b2a6f36eb206da089c218d6b7891666b491089a7e20433889816de12bcd7359b69eb0c658dacd27a51098732ec933249f0 diff --git a/webkitgtk.spec b/webkitgtk.spec index 2413668..e693865 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -18,7 +18,7 @@ %bcond_without docs Name: webkitgtk -Version: 2.43.4 +Version: 2.44.0 Release: %autorelease Summary: GTK web content engine library @@ -56,10 +56,6 @@ 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://bugs.webkit.org/show_bug.cgi?id=268744 -# https://bugzilla.redhat.com/show_bug.cgi?id=2253099 -Patch: display-vblank-monitor.patch - BuildRequires: bison BuildRequires: bubblewrap BuildRequires: cmake From 5d9918b45f64c6173e113ab6d3a1b5a1a46ee2e2 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Sat, 16 Mar 2024 19:45:26 -0500 Subject: [PATCH 107/200] Fix i686 build --- i686-build.patch | 17 +++++++++++++++++ webkitgtk.spec | 3 +++ 2 files changed, 20 insertions(+) create mode 100644 i686-build.patch diff --git a/i686-build.patch b/i686-build.patch new file mode 100644 index 0000000..937221b --- /dev/null +++ b/i686-build.patch @@ -0,0 +1,17 @@ +diff --git a/Source/WebCore/platform/Timer.cpp b/Source/WebCore/platform/Timer.cpp +index 4f7c0f5c39ca..0f3734cca247 100644 +--- a/Source/WebCore/platform/Timer.cpp ++++ b/Source/WebCore/platform/Timer.cpp +@@ -263,7 +263,11 @@ struct SameSizeAsTimer { + + WeakPtr timerAlignment; + double times[2]; +- void* pointers[3]; ++ void* pointers[2]; ++#if CPU(ADDRESS32) ++ uint8_t bitfields; ++#endif ++ void* pointer; + }; + + static_assert(sizeof(Timer) == sizeof(SameSizeAsTimer), "Timer should stay small"); diff --git a/webkitgtk.spec b/webkitgtk.spec index e693865..fc6f6af 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -56,6 +56,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://bugs.webkit.org/show_bug.cgi?id=271108 +Patch: i686-build.patch + BuildRequires: bison BuildRequires: bubblewrap BuildRequires: cmake From 862ac4af72dc161ed3efb19e3eb44353e4ba1944 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Thu, 11 Apr 2024 11:35:45 -0500 Subject: [PATCH 108/200] Remove RHEL conditions from spec file WebKitGTK is no longer part of ELN, so these are no longer needed. It's probably desired in EPEL, but extra dependencies can be packaged for EPEL. Note that -DUSE_64KB_PAGE_BLOCK=ON is also no longer needed because the relevant aarch64 builders are using Fedora and 4 KB page sizes. This significantly improves both security and performance of the aarch64 builds. --- webkitgtk.spec | 39 --------------------------------------- 1 file changed, 39 deletions(-) diff --git a/webkitgtk.spec b/webkitgtk.spec index fc6f6af..7087244 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -5,11 +5,6 @@ mkdir -p _license_files ; \ cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g') -# No libmanette in RHEL -%bcond gamepad %{undefined rhel} -%bcond avif %[%{undefined rhel} || %{defined epel}] -%bcond jpegxl %[%{undefined rhel} || %{defined epel}] - %global _lto_cflags %{nil} # Build documentation by default (use `rpmbuild --without docs` to override it). @@ -102,15 +97,11 @@ BuildRequires: pkgconfig(gtk4) BuildRequires: pkgconfig(harfbuzz) BuildRequires: pkgconfig(icu-uc) BuildRequires: pkgconfig(lcms2) -%if %{with avif} BuildRequires: pkgconfig(libavif) -%endif BuildRequires: pkgconfig(libdrm) BuildRequires: pkgconfig(libgcrypt) BuildRequires: pkgconfig(libjpeg) -%if %{with jpegxl} BuildRequires: pkgconfig(libjxl) -%endif BuildRequires: pkgconfig(libnotify) BuildRequires: pkgconfig(libpng) BuildRequires: pkgconfig(libseccomp) @@ -121,9 +112,7 @@ BuildRequires: pkgconfig(libtasn1) BuildRequires: pkgconfig(libwebp) BuildRequires: pkgconfig(libwoff2dec) BuildRequires: pkgconfig(libxslt) -%if %{with gamepad} BuildRequires: pkgconfig(manette-0.2) -%endif BuildRequires: pkgconfig(sqlite3) BuildRequires: pkgconfig(upower-glib) BuildRequires: pkgconfig(wayland-client) @@ -309,20 +298,6 @@ files for developing applications that use JavaScript engine from webkit2gtk-4.1 -DUSE_LIBBACKTRACE=OFF \ %if %{without docs} -DENABLE_DOCUMENTATION=OFF \ -%endif -%if %{without gamepad} - -DENABLE_GAMEPAD=OFF \ -%endif -%if %{without avif} - -DUSE_AVIF=OFF \ -%endif -%if %{without jpegxl} - -DUSE_JPEGXL=OFF \ -%endif -%if 0%{?rhel} -%ifarch aarch64 - -DUSE_64KB_PAGE_BLOCK=ON \ -%endif %endif %{nil} @@ -336,20 +311,6 @@ files for developing applications that use JavaScript engine from webkit2gtk-4.1 -DENABLE_WEBDRIVER=OFF \ %if %{without docs} -DENABLE_DOCUMENTATION=OFF \ -%endif -%if %{without gamepad} - -DENABLE_GAMEPAD=OFF \ -%endif -%if %{without avif} - -DUSE_AVIF=OFF \ -%endif -%if %{without jpegxl} - -DUSE_JPEGXL=OFF \ -%endif -%if 0%{?rhel} -%ifarch aarch64 - -DUSE_64KB_PAGE_BLOCK=ON \ -%endif %endif %{nil} From 56e83eb8d3dbc36a9afbc8f943a853130c5a04f1 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Thu, 11 Apr 2024 11:39:42 -0500 Subject: [PATCH 109/200] Attempt to reenable LTO Let's see whether this builds. Probably not. (Actually, it did build. Yippee!) --- webkitgtk.spec | 2 -- 1 file changed, 2 deletions(-) diff --git a/webkitgtk.spec b/webkitgtk.spec index 7087244..c1b6ea9 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -5,8 +5,6 @@ mkdir -p _license_files ; \ cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g') -%global _lto_cflags %{nil} - # Build documentation by default (use `rpmbuild --without docs` to override it). # This is used by Coverity. Coverity injects custom compiler warnings, but # any warning during WebKit docs build is fatal! From ba68f3ced91c2bf5ddc968c6975456a857938aca Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Thu, 11 Apr 2024 11:40:08 -0500 Subject: [PATCH 110/200] Update to 2.44.1 --- .gitignore | 1 + i686-build.patch | 17 ----------------- sources | 4 ++-- webkitgtk.spec | 5 +---- 4 files changed, 4 insertions(+), 23 deletions(-) delete mode 100644 i686-build.patch diff --git a/.gitignore b/.gitignore index e029434..a050297 100644 --- a/.gitignore +++ b/.gitignore @@ -32,3 +32,4 @@ /webkitgtk-2.43.3.tar.xz.asc /webkitgtk-2.43.4.tar.xz.asc /webkitgtk-2.44.0.tar.xz.asc +/webkitgtk-2.44.1.tar.xz.asc diff --git a/i686-build.patch b/i686-build.patch deleted file mode 100644 index 937221b..0000000 --- a/i686-build.patch +++ /dev/null @@ -1,17 +0,0 @@ -diff --git a/Source/WebCore/platform/Timer.cpp b/Source/WebCore/platform/Timer.cpp -index 4f7c0f5c39ca..0f3734cca247 100644 ---- a/Source/WebCore/platform/Timer.cpp -+++ b/Source/WebCore/platform/Timer.cpp -@@ -263,7 +263,11 @@ struct SameSizeAsTimer { - - WeakPtr timerAlignment; - double times[2]; -- void* pointers[3]; -+ void* pointers[2]; -+#if CPU(ADDRESS32) -+ uint8_t bitfields; -+#endif -+ void* pointer; - }; - - static_assert(sizeof(Timer) == sizeof(SameSizeAsTimer), "Timer should stay small"); diff --git a/sources b/sources index 2a53c56..f6daeb0 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.44.0.tar.xz) = fb40fe1002b368ce5b498d9f5bf76c1f275156d5ee3b17339b682fcb4ebfd711c8c337ae9dbe90382a72d2a04d49cff23133fc318ec74cd81ae9c5d01c206d2a -SHA512 (webkitgtk-2.44.0.tar.xz.asc) = e4c3da75318de3e06e74f4f6fdeb24b2a6f36eb206da089c218d6b7891666b491089a7e20433889816de12bcd7359b69eb0c658dacd27a51098732ec933249f0 +SHA512 (webkitgtk-2.44.1.tar.xz) = b1752303f9ee38ef98c1e5c0cad001d389eaedbbf07d13fed8699104e6e311cb47a9bed7089868cb92c53d2777aaff441147353da13123d5c8eee4adf8709169 +SHA512 (webkitgtk-2.44.1.tar.xz.asc) = 2d2ab4a903ff3e8eeb128b2e7a182d073fc12e14d4b8f2668aaafc638f194e2fa3cf707c040f679f320636c1398dd11df2b6e2941dd3580b8032ea30b604c711 diff --git a/webkitgtk.spec b/webkitgtk.spec index c1b6ea9..84ed34e 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -11,7 +11,7 @@ %bcond_without docs Name: webkitgtk -Version: 2.44.0 +Version: 2.44.1 Release: %autorelease Summary: GTK web content engine library @@ -49,9 +49,6 @@ 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://bugs.webkit.org/show_bug.cgi?id=271108 -Patch: i686-build.patch - BuildRequires: bison BuildRequires: bubblewrap BuildRequires: cmake From 72634a91c29e388095aea07f280587f22533a3d1 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Tue, 14 May 2024 08:43:45 -0500 Subject: [PATCH 111/200] Update to 2.45.2 --- .gitignore | 2 ++ sources | 4 ++-- webkitgtk-keys.gpg | Bin 2816 -> 4178 bytes webkitgtk.spec | 11 ++++++++--- 4 files changed, 12 insertions(+), 5 deletions(-) diff --git a/.gitignore b/.gitignore index a050297..47bc23e 100644 --- a/.gitignore +++ b/.gitignore @@ -33,3 +33,5 @@ /webkitgtk-2.43.4.tar.xz.asc /webkitgtk-2.44.0.tar.xz.asc /webkitgtk-2.44.1.tar.xz.asc +/webkitgtk-2.45.1.tar.xz.asc +/webkitgtk-2.45.2.tar.xz.asc diff --git a/sources b/sources index f6daeb0..9fcb250 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.44.1.tar.xz) = b1752303f9ee38ef98c1e5c0cad001d389eaedbbf07d13fed8699104e6e311cb47a9bed7089868cb92c53d2777aaff441147353da13123d5c8eee4adf8709169 -SHA512 (webkitgtk-2.44.1.tar.xz.asc) = 2d2ab4a903ff3e8eeb128b2e7a182d073fc12e14d4b8f2668aaafc638f194e2fa3cf707c040f679f320636c1398dd11df2b6e2941dd3580b8032ea30b604c711 +SHA512 (webkitgtk-2.45.2.tar.xz) = a662128de3345efaaa02d71d5e030f90fa20ebec736fc63fd267b16d463cc0f9fa7fc36b9ad15f5fda7d3bf0e5a019212147e2f8092302887d7807e9646c2893 +SHA512 (webkitgtk-2.45.2.tar.xz.asc) = 39ad0c0b645cec61741038cb4e2268e8b52cba33ceadd5e506fcf32d1bf7007b611fb9d8f0dc00db8af5a7a3196b78d34ae2e9903f32dedc68b4687610441a3d diff --git a/webkitgtk-keys.gpg b/webkitgtk-keys.gpg index 180e358ac0e97fa8d910e5e8c44ad83a2abba1ec..1852062e1fe3110f69dfb1614d590804949f1d1a 100644 GIT binary patch delta 2411 zcmZ|P_dgVl1IO`O+!+_4vq~ova*;jmbIPtW&q`$PL*fYGkiEGwLW#<_tgdjj>+G48 zD611985tqIkI#2JzTaQIf57|w)9dk!K#U-Xxga>i^~`y1ASa;7Gd3Fc(l&CGKMlS) z&}bB$d+%N66)o;f-6Gm7o>#X`&R3kx^t4FM6-nMgkL2fxzY^UJa zJ0*I1x`X{L;Ie!t-@v54t5N7ZnFbZ9vE-a<$H+m$BQq(Ud;()QFK#>qpzDN=%7 z&VTa0a79)<$40_*mh-4eJUgd$YR#3%lzJO51q2R8yv%gq_{7EBR>4$_Gu`^ksWe%E z-PoS(&__S6TnvHN_1@=6nY+Q%XKmawNLfx@9aei_fwEjFZ-X6{f^h10Y&zYCkrU>NmDDms&_rbEgu2O_wg* zF{t{ZLea@(;_~tok1uIEX(Cmf!tdCB&#$-Ww&N*BTeu(~QCcNI%R$>k&62xDJot1Y zi3^$}@#-#8DIdE6w-&J6#5jPt?m84jiAnrQ&00bpg}{LiHHfa4goKb12EWn@_eY%INLB;VCi^-46QE|&zyQkbOBx45e3M15DU zn4BjbKRVV`%kF;nWPU@@MVaOy)||M&bLcQmP1-|Y}Kye0d>bG%j3 zTrb0yiyy8=Lo^UlPx46S99;e6)$osA65a&NE6sf??zvs)my;fBF}vnpAu2baRC_jL zTKtlp1sBZ(<@?;iC?j9Y)7xbbNTHY$REZ!3Vp6fN6>NlnP`S-|IazpU#9e6$ljyXR;}XTtm2yQ2$UgICGm!-hODDhlk1*Rv?i_# z!PM<$i(fh|O+9PwTlHi^dY=$=cBj;Y%@k$%-ezeJ(#Sovd4i-}pkE=l}`rOteHt+Vd*nZ5%$n*K|GXd&rYS z@cU&p(MbKTIpZu?DneXqv+B_C=29@UC=yq{+0Opf2TNS4QoOU~+_am%=7Vc*JO~I` zUwBbx7#lU4ZR#(4&VyUd)GYTsH5dQE!VWd-xGVZImOU$>LA1oAO+nIlem?B=PQ0bO z$m)-v1_{W0p@jYcv)7~nUB0O>p>wNaH(Bw|UqsM1UzbC)UzI@;lPApI2bw#a*KR2N zEqW{xr(wk^%b)!(hSRCRprGgNu6rE?>KaaQtk$3 z*_Eg52 zs78S+QQ$C@)!U+T2aPe>p(DW zOyQsAB!JKmJ|HXL;=j2e{y%Tn|K-j9x^l$E2`Ee2vv||`C0tnAFShWlPX-z(ycImG z*jw}!ad#-m5v#=z8qeG|alg;Q)Mo$m`^UHK032ui%sJ#m4rynOGu2cV)>qZA&pr|! zLlZNO2+G%}Fn$#KBM(+9P!A|d3(tkP;g^3^|HoHxy9;;D-!1c|VTMa_6^_qt818dJza(Fx( zQE;NsHLK2z=rPqWgHYG;Ri2jmEj9SfWiHNkkhK11$v4_#>J`ZCTVS)|V&yG+T;0R9(h8J(L^YTinw93?(RuoH@9Y zW%tu$bkNZ>Qq#q?Y_6i79Qz&faJ&@}&m?#LGpDklrZ10kFr$l1S8M5`T&slBl3YPvTCQhN0!%EzPqNPZT}eiV)ik4r zOHJe$P{3DI!fj^InxP17e^}(M92v>Tz75EO_FGkpkH+g*ZD`FMH9-p^Udv~aUIIh^ z&ygeykk7WVNI#r(+5Kh#J6P2(G}wP{o(p*PKvMpqv2Y9iDg420w^)H@`{y=SDG0DN FLOAb=LL;RvPylQ;`|L|(dpZUqS%IO$>l3JDOA#aY|r$r3w0TL7O)GkOqV zx8~|6(iK}zA%3mhHY(--n+Le~5T8Ann~m2ENBTwYFKUcs#gm2#ZA4zWfM*2>8aU}< z0162Zk;PftI$6a8@nweJLJcZkvne zC!02mdM(F0> z8)dG6KNmLKFH7Ow8+6fo%Rs0*yljJ9!j`SKF?E1~E*6`A=0l=+pacC9H7~HR zXxPS;jyqHgvZ11O0x9Pr+MVz_s>kuq%YJ}sS2-%EnL=!1CKqc*Hj#OEWcR;wBD#;- zK9`0ob2$wI7nf9*c(@KMO1h>fjYaLk0#|V=C!4Y;DQRVSZ|r^&jd1vybQWv$vr^Z- z`Hf>Yq}*)Hn&S#|-?EwXgCUb_lMn(ce~4lP6A=OcA_W3WxI-=i8v_Ol2?z%R0tOWb z0tpHW1Qr4V0RkQY0vCV)3JDPN(<0F9MS{b-X#k+gi=M=eOW^!+W>BEH#$(w*lp|RH zpJL(QBj9KzyOMe}XbRF7Jl$0p;kf|~1WdR?E)WC&*%w>z>ot31p`h@JUyDEze{3{W z%y(p7FlXvfX((Md2ee`B$&Q4F webkitgtk-keys.gpg +# $ gpg --export --export-options export-minimal 013A0127AC9C65B34FFA62526C1009B693975393 5AA3BC334FD7E3369E7C77B291C559DBE4C9123B > webkitgtk-keys.gpg Source2: webkitgtk-keys.gpg BuildRequires: bison BuildRequires: bubblewrap +BuildRequires: clang BuildRequires: cmake BuildRequires: flex -BuildRequires: gcc-c++ BuildRequires: gettext BuildRequires: gi-docgen BuildRequires: git @@ -135,6 +138,7 @@ Recommends: gstreamer1-plugins-good Recommends: xdg-desktop-portal-gtk Provides: bundled(angle) Provides: bundled(pdfjs) +Provides: bundled(skia) Provides: bundled(xdgmime) Obsoletes: webkit2gtk5.0 < %{version}-%{release} @@ -154,6 +158,7 @@ Recommends: gstreamer1-plugins-good Recommends: xdg-desktop-portal-gtk Provides: bundled(angle) Provides: bundled(pdfjs) +Provides: bundled(skia) Provides: bundled(xdgmime) %description -n webkit2gtk4.1 From 98604192c5dad7f0d2a3945478429c122d8a1484 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Tue, 14 May 2024 16:44:18 -0500 Subject: [PATCH 112/200] Fix builds on i686, ppc64le, and s390x Each build failed for a different reason :( --- s390x-build.patch | 14 ++++++++++++++ webkitgtk.spec | 14 +++++++++++++- 2 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 s390x-build.patch diff --git a/s390x-build.patch b/s390x-build.patch new file mode 100644 index 0000000..b4748a1 --- /dev/null +++ b/s390x-build.patch @@ -0,0 +1,14 @@ +diff --git a/Source/WTF/wtf/simde/arm/neon.h b/Source/WTF/wtf/simde/arm/neon.h +index 1ecd8cf565f1..83b2e681d976 100644 +--- a/Source/WTF/wtf/simde/arm/neon.h ++++ b/Source/WTF/wtf/simde/arm/neon.h +@@ -8785,8 +8785,7 @@ SIMDE_BEGIN_DECLS_ + defined(SIMDE_X86_AVX512FP16_NATIVE) || \ + (defined(SIMDE_ARCH_X86_SSE2) && HEDLEY_GCC_VERSION_CHECK(12,0,0)) || \ + (defined(SIMDE_ARCH_AARCH64) && HEDLEY_GCC_VERSION_CHECK(7,0,0) && !defined(__cplusplus)) || \ +- ((defined(SIMDE_ARCH_X86) || defined(SIMDE_ARCH_AMD64)) && SIMDE_DETECT_CLANG_VERSION_CHECK(15,0,0)) || \ +- (!(defined(SIMDE_ARCH_X86) || defined(SIMDE_ARCH_AMD64)) && SIMDE_DETECT_CLANG_VERSION_CHECK(6,0,0))) || \ ++ ((defined(SIMDE_ARCH_X86) || defined(SIMDE_ARCH_AMD64)) && SIMDE_DETECT_CLANG_VERSION_CHECK(15,0,0))) || \ + defined(SIMDE_ARCH_RISCV_ZVFH) + /* We haven't found a better way to detect this. It seems like defining + * __STDC_WANT_IEC_60559_TYPES_EXT__, then including float.h, then diff --git a/webkitgtk.spec b/webkitgtk.spec index 537d256..3eea820 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -10,8 +10,16 @@ # any warning during WebKit docs build is fatal! %bcond_without docs -# https://skia.org/docs/user/build/#supported-and-preferred-compilers +# Clang is preferred: https://skia.org/docs/user/build/#supported-and-preferred-compilers +# However, it crashes on ppc64le. +%ifnarch ppc64le %global toolchain clang +%endif + +# We run out of memory if building with LTO enabled on i686. +%ifarch %{ix86} +%global _lto_cflags %{nil} +%endif Name: webkitgtk Version: 2.45.2 @@ -52,11 +60,15 @@ Source1: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz.asc # $ gpg --export --export-options export-minimal 013A0127AC9C65B34FFA62526C1009B693975393 5AA3BC334FD7E3369E7C77B291C559DBE4C9123B > webkitgtk-keys.gpg Source2: webkitgtk-keys.gpg +# https://bugs.webkit.org/show_bug.cgi?id=274086 +Patch: s390x-build.patch + BuildRequires: bison BuildRequires: bubblewrap BuildRequires: clang BuildRequires: cmake BuildRequires: flex +BuildRequires: gcc-c++ BuildRequires: gettext BuildRequires: gi-docgen BuildRequires: git From 337c45ada07972c8ea887265dac0a9c585ade3ea Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Sat, 25 May 2024 09:55:59 -0500 Subject: [PATCH 113/200] Add patch to fix excessive CPU usage But no build yet, because Fabio will do a new build soon for GStreamer 1.24 --- excessive-cpu-usage.patch | 53 +++++++++++++++++++++++++++++++++++++++ webkitgtk.spec | 3 +++ 2 files changed, 56 insertions(+) create mode 100644 excessive-cpu-usage.patch diff --git a/excessive-cpu-usage.patch b/excessive-cpu-usage.patch new file mode 100644 index 0000000..215e92e --- /dev/null +++ b/excessive-cpu-usage.patch @@ -0,0 +1,53 @@ +From c6f625d1c91df9986d79a928b01399dce4beb1cc Mon Sep 17 00:00:00 2001 +From: Michael Catanzaro +Date: Sat, 18 May 2024 08:25:37 -0500 +Subject: [PATCH] Revert "Cherry-pick 276798@main (f91aeb92bd8e). + https://bugs.webkit.org/show_bug.cgi?id=260455" + +Unreviewed. This reverts commit 30ad9a720e6b12a6c958fcef0d7dd3f52da485bd. + +See: https://bugs.webkit.org/show_bug.cgi?id=274261 +Canonical link: https://commits.webkit.org/274313.257@webkitglib/2.44 +--- + ...e-muted-scroll-and-seek-crash-expected.txt | 4 -- + ...ia-source-muted-scroll-and-seek-crash.html | 65 ------------------- + .../gstreamer/MediaPlayerPrivateGStreamer.cpp | 14 +--- + 3 files changed, 3 insertions(+), 80 deletions(-) + delete mode 100644 LayoutTests/media/media-source/media-source-muted-scroll-and-seek-crash-expected.txt + delete mode 100644 LayoutTests/media/media-source/media-source-muted-scroll-and-seek-crash.html + +diff --git a/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp b/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp +index 7b28083fae71..a5fb5d679153 100644 +--- a/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp ++++ b/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp +@@ -328,8 +328,8 @@ void MediaPlayerPrivateGStreamer::load(const String& urlString) + m_fillTimer.stop(); + + ASSERT(m_pipeline); +- setPlaybinURL(url); + setVisibleInViewport(player->isVisibleInViewport()); ++ setPlaybinURL(url); + + GST_DEBUG_OBJECT(pipeline(), "preload: %s", convertEnumerationToString(m_preload).utf8().data()); + if (m_preload == MediaPlayer::Preload::None && !isMediaSource()) { +@@ -4027,18 +4027,10 @@ void MediaPlayerPrivateGStreamer::setVisibleInViewport(bool isVisible) + if (!isVisible) { + GstState currentState; + gst_element_get_state(m_pipeline.get(), ¤tState, nullptr, 0); +- // WebKitMediaSrc cannot properly handle PAUSED -> READY -> PAUSED currently, so we have to avoid transitioning +- // back to READY when the player becomes visible. +- GstState minimumState = isMediaSource() ? GST_STATE_PAUSED : GST_STATE_READY; +- if (currentState >= minimumState) ++ if (currentState > GST_STATE_NULL) + m_invisiblePlayerState = currentState; + m_isVisibleInViewport = false; +- // Avoid setting the pipeline to PAUSED unless the playbin URL has already been set, +- // otherwise it will fail, and may leave the pipeline stuck on READY with PAUSE pending. +- if (!m_url.isValid()) +- return; +- [[maybe_unused]] auto setStateResult = gst_element_set_state(m_pipeline.get(), GST_STATE_PAUSED); +- ASSERT(setStateResult != GST_STATE_CHANGE_FAILURE); ++ gst_element_set_state(m_pipeline.get(), GST_STATE_PAUSED); + } else { + m_isVisibleInViewport = true; + if (m_invisiblePlayerState != GST_STATE_VOID_PENDING) diff --git a/webkitgtk.spec b/webkitgtk.spec index 3eea820..9cb3ef4 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -63,6 +63,9 @@ Source2: webkitgtk-keys.gpg # https://bugs.webkit.org/show_bug.cgi?id=274086 Patch: s390x-build.patch +# https://bugs.webkit.org/show_bug.cgi?id=274261 +Patch: excessive-cpu-usage.patch + BuildRequires: bison BuildRequires: bubblewrap BuildRequires: clang From aca76789afe6f8f51abc6fd5923c7223a270fcca Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Tue, 28 May 2024 10:57:49 -0500 Subject: [PATCH 114/200] Update to 2.45.3 --- .gitignore | 1 + excessive-cpu-usage.patch | 53 --------------------------------------- s390x-build.patch | 14 ----------- sources | 4 +-- webkitgtk.spec | 8 +----- 5 files changed, 4 insertions(+), 76 deletions(-) delete mode 100644 excessive-cpu-usage.patch delete mode 100644 s390x-build.patch diff --git a/.gitignore b/.gitignore index 47bc23e..4592a68 100644 --- a/.gitignore +++ b/.gitignore @@ -35,3 +35,4 @@ /webkitgtk-2.44.1.tar.xz.asc /webkitgtk-2.45.1.tar.xz.asc /webkitgtk-2.45.2.tar.xz.asc +/webkitgtk-2.45.3.tar.xz.asc diff --git a/excessive-cpu-usage.patch b/excessive-cpu-usage.patch deleted file mode 100644 index 215e92e..0000000 --- a/excessive-cpu-usage.patch +++ /dev/null @@ -1,53 +0,0 @@ -From c6f625d1c91df9986d79a928b01399dce4beb1cc Mon Sep 17 00:00:00 2001 -From: Michael Catanzaro -Date: Sat, 18 May 2024 08:25:37 -0500 -Subject: [PATCH] Revert "Cherry-pick 276798@main (f91aeb92bd8e). - https://bugs.webkit.org/show_bug.cgi?id=260455" - -Unreviewed. This reverts commit 30ad9a720e6b12a6c958fcef0d7dd3f52da485bd. - -See: https://bugs.webkit.org/show_bug.cgi?id=274261 -Canonical link: https://commits.webkit.org/274313.257@webkitglib/2.44 ---- - ...e-muted-scroll-and-seek-crash-expected.txt | 4 -- - ...ia-source-muted-scroll-and-seek-crash.html | 65 ------------------- - .../gstreamer/MediaPlayerPrivateGStreamer.cpp | 14 +--- - 3 files changed, 3 insertions(+), 80 deletions(-) - delete mode 100644 LayoutTests/media/media-source/media-source-muted-scroll-and-seek-crash-expected.txt - delete mode 100644 LayoutTests/media/media-source/media-source-muted-scroll-and-seek-crash.html - -diff --git a/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp b/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp -index 7b28083fae71..a5fb5d679153 100644 ---- a/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp -+++ b/Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp -@@ -328,8 +328,8 @@ void MediaPlayerPrivateGStreamer::load(const String& urlString) - m_fillTimer.stop(); - - ASSERT(m_pipeline); -- setPlaybinURL(url); - setVisibleInViewport(player->isVisibleInViewport()); -+ setPlaybinURL(url); - - GST_DEBUG_OBJECT(pipeline(), "preload: %s", convertEnumerationToString(m_preload).utf8().data()); - if (m_preload == MediaPlayer::Preload::None && !isMediaSource()) { -@@ -4027,18 +4027,10 @@ void MediaPlayerPrivateGStreamer::setVisibleInViewport(bool isVisible) - if (!isVisible) { - GstState currentState; - gst_element_get_state(m_pipeline.get(), ¤tState, nullptr, 0); -- // WebKitMediaSrc cannot properly handle PAUSED -> READY -> PAUSED currently, so we have to avoid transitioning -- // back to READY when the player becomes visible. -- GstState minimumState = isMediaSource() ? GST_STATE_PAUSED : GST_STATE_READY; -- if (currentState >= minimumState) -+ if (currentState > GST_STATE_NULL) - m_invisiblePlayerState = currentState; - m_isVisibleInViewport = false; -- // Avoid setting the pipeline to PAUSED unless the playbin URL has already been set, -- // otherwise it will fail, and may leave the pipeline stuck on READY with PAUSE pending. -- if (!m_url.isValid()) -- return; -- [[maybe_unused]] auto setStateResult = gst_element_set_state(m_pipeline.get(), GST_STATE_PAUSED); -- ASSERT(setStateResult != GST_STATE_CHANGE_FAILURE); -+ gst_element_set_state(m_pipeline.get(), GST_STATE_PAUSED); - } else { - m_isVisibleInViewport = true; - if (m_invisiblePlayerState != GST_STATE_VOID_PENDING) diff --git a/s390x-build.patch b/s390x-build.patch deleted file mode 100644 index b4748a1..0000000 --- a/s390x-build.patch +++ /dev/null @@ -1,14 +0,0 @@ -diff --git a/Source/WTF/wtf/simde/arm/neon.h b/Source/WTF/wtf/simde/arm/neon.h -index 1ecd8cf565f1..83b2e681d976 100644 ---- a/Source/WTF/wtf/simde/arm/neon.h -+++ b/Source/WTF/wtf/simde/arm/neon.h -@@ -8785,8 +8785,7 @@ SIMDE_BEGIN_DECLS_ - defined(SIMDE_X86_AVX512FP16_NATIVE) || \ - (defined(SIMDE_ARCH_X86_SSE2) && HEDLEY_GCC_VERSION_CHECK(12,0,0)) || \ - (defined(SIMDE_ARCH_AARCH64) && HEDLEY_GCC_VERSION_CHECK(7,0,0) && !defined(__cplusplus)) || \ -- ((defined(SIMDE_ARCH_X86) || defined(SIMDE_ARCH_AMD64)) && SIMDE_DETECT_CLANG_VERSION_CHECK(15,0,0)) || \ -- (!(defined(SIMDE_ARCH_X86) || defined(SIMDE_ARCH_AMD64)) && SIMDE_DETECT_CLANG_VERSION_CHECK(6,0,0))) || \ -+ ((defined(SIMDE_ARCH_X86) || defined(SIMDE_ARCH_AMD64)) && SIMDE_DETECT_CLANG_VERSION_CHECK(15,0,0))) || \ - defined(SIMDE_ARCH_RISCV_ZVFH) - /* We haven't found a better way to detect this. It seems like defining - * __STDC_WANT_IEC_60559_TYPES_EXT__, then including float.h, then diff --git a/sources b/sources index 9fcb250..51a8207 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.45.2.tar.xz) = a662128de3345efaaa02d71d5e030f90fa20ebec736fc63fd267b16d463cc0f9fa7fc36b9ad15f5fda7d3bf0e5a019212147e2f8092302887d7807e9646c2893 -SHA512 (webkitgtk-2.45.2.tar.xz.asc) = 39ad0c0b645cec61741038cb4e2268e8b52cba33ceadd5e506fcf32d1bf7007b611fb9d8f0dc00db8af5a7a3196b78d34ae2e9903f32dedc68b4687610441a3d +SHA512 (webkitgtk-2.45.3.tar.xz) = f2a5547356592bc6637e11128d8cd90f689f72cdd4f3032d1559afa77afc52ef7bf4532086a176be19e87106f56c86643a7ee6a176afc22c1df2b8a3d2a9ff67 +SHA512 (webkitgtk-2.45.3.tar.xz.asc) = e448369796918e8a438dde4cc0ac78ceba99ccd1c172863f3dd5e2f7d1e4ba67d41986d455f1fb9f4918511e63f9e7bcce53cf0aa3d66c2cf940a3d54ec4ac91 diff --git a/webkitgtk.spec b/webkitgtk.spec index 9cb3ef4..afad94e 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -22,7 +22,7 @@ %endif Name: webkitgtk -Version: 2.45.2 +Version: 2.45.3 Release: %autorelease Summary: GTK web content engine library @@ -60,12 +60,6 @@ Source1: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz.asc # $ gpg --export --export-options export-minimal 013A0127AC9C65B34FFA62526C1009B693975393 5AA3BC334FD7E3369E7C77B291C559DBE4C9123B > webkitgtk-keys.gpg Source2: webkitgtk-keys.gpg -# https://bugs.webkit.org/show_bug.cgi?id=274086 -Patch: s390x-build.patch - -# https://bugs.webkit.org/show_bug.cgi?id=274261 -Patch: excessive-cpu-usage.patch - BuildRequires: bison BuildRequires: bubblewrap BuildRequires: clang From bfa0e4c055985abdc707211f2a6a3552a36fbb8b Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Wed, 29 May 2024 06:57:46 -0500 Subject: [PATCH 115/200] Disable LTO, which is broken again Resolves: #2281612 --- webkitgtk.spec | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/webkitgtk.spec b/webkitgtk.spec index afad94e..74c2f97 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -16,10 +16,8 @@ %global toolchain clang %endif -# We run out of memory if building with LTO enabled on i686. -%ifarch %{ix86} +# https://bugzilla.redhat.com/show_bug.cgi?id=2281612 %global _lto_cflags %{nil} -%endif Name: webkitgtk Version: 2.45.3 From 8b92690ea5e20567c58ff85a3670d4f42b681b65 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Wed, 29 May 2024 16:59:07 -0500 Subject: [PATCH 116/200] Attempt to reenable LTO --- textdecorationpainter-lto-crash.patch | 40 +++++++++++++++++++++++++++ webkitgtk.spec | 7 ++++- 2 files changed, 46 insertions(+), 1 deletion(-) create mode 100644 textdecorationpainter-lto-crash.patch diff --git a/textdecorationpainter-lto-crash.patch b/textdecorationpainter-lto-crash.patch new file mode 100644 index 0000000..c22c13e --- /dev/null +++ b/textdecorationpainter-lto-crash.patch @@ -0,0 +1,40 @@ +https://bugs.webkit.org/show_bug.cgi?id=274780 + +diff --git a/Source/WebCore/rendering/TextDecorationPainter.cpp b/Source/WebCore/rendering/TextDecorationPainter.cpp +index 895c512156da..02d8f00d5aae 100644 +--- a/Source/WebCore/rendering/TextDecorationPainter.cpp ++++ b/Source/WebCore/rendering/TextDecorationPainter.cpp +@@ -128,25 +128,26 @@ static DashArray translateIntersectionPointsToSkipInkBoundaries(const DashArray& + // Step 2: Deal with intersecting ranges. + Vector> intermediateTuples; + if (tuples.size() >= 2) { +- intermediateTuples.append(*tuples.begin()); +- for (auto i = tuples.begin() + 1; i != tuples.end(); i++) { ++ intermediateTuples.append(tuples[0]); ++ for (size_t i = 1; i < tuples.size(); i++) { + float& firstEnd = intermediateTuples.last().second; +- float secondStart = i->first; +- float secondEnd = i->second; ++ float secondStart = tuples[i].first; ++ float secondEnd = tuples[i].second; + if (secondStart <= firstEnd && secondEnd <= firstEnd) { + // Ignore this range completely + } else if (secondStart <= firstEnd) + firstEnd = secondEnd; + else +- intermediateTuples.append(*i); ++ intermediateTuples.append(tuples[i]); + } + } else +- intermediateTuples = tuples; ++ intermediateTuples = WTFMove(tuples); + + // Step 3: Output the space between the ranges, but only if the space warrants an underline. + float previous = 0; + DashArray result; +- for (const auto& tuple : intermediateTuples) { ++ for (size_t i = 0; i < intermediateTuples.size(); i++) { ++ const auto& tuple = intermediateTuples[i]; + if (tuple.first - previous > dilationAmount) { + result.append(previous); + result.append(tuple.first); diff --git a/webkitgtk.spec b/webkitgtk.spec index 74c2f97..250a9f4 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -16,8 +16,10 @@ %global toolchain clang %endif -# https://bugzilla.redhat.com/show_bug.cgi?id=2281612 +# We run out of memory if building with LTO enabled on i686. +%ifarch %{ix86} %global _lto_cflags %{nil} +%endif Name: webkitgtk Version: 2.45.3 @@ -58,6 +60,9 @@ Source1: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz.asc # $ gpg --export --export-options export-minimal 013A0127AC9C65B34FFA62526C1009B693975393 5AA3BC334FD7E3369E7C77B291C559DBE4C9123B > webkitgtk-keys.gpg Source2: webkitgtk-keys.gpg +# https://bugs.webkit.org/show_bug.cgi?id=274780#c4 +Patch: textdecorationpainter-lto-crash.patch + BuildRequires: bison BuildRequires: bubblewrap BuildRequires: clang From 1d0634e7b67b71dfefdea17eb709562dac720831 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Tue, 25 Jun 2024 16:23:07 -0500 Subject: [PATCH 117/200] Update to WebKitGTK 2.45.4 --- .gitignore | 1 + sources | 4 +-- textdecorationpainter-lto-crash.patch | 40 --------------------------- webkitgtk.spec | 5 +--- 4 files changed, 4 insertions(+), 46 deletions(-) delete mode 100644 textdecorationpainter-lto-crash.patch diff --git a/.gitignore b/.gitignore index 4592a68..ae963a6 100644 --- a/.gitignore +++ b/.gitignore @@ -36,3 +36,4 @@ /webkitgtk-2.45.1.tar.xz.asc /webkitgtk-2.45.2.tar.xz.asc /webkitgtk-2.45.3.tar.xz.asc +/webkitgtk-2.45.4.tar.xz.asc diff --git a/sources b/sources index 51a8207..dfbdf6e 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.45.3.tar.xz) = f2a5547356592bc6637e11128d8cd90f689f72cdd4f3032d1559afa77afc52ef7bf4532086a176be19e87106f56c86643a7ee6a176afc22c1df2b8a3d2a9ff67 -SHA512 (webkitgtk-2.45.3.tar.xz.asc) = e448369796918e8a438dde4cc0ac78ceba99ccd1c172863f3dd5e2f7d1e4ba67d41986d455f1fb9f4918511e63f9e7bcce53cf0aa3d66c2cf940a3d54ec4ac91 +SHA512 (webkitgtk-2.45.4.tar.xz) = 96e2cc45cf33a2323797bda1dc7350cc2a82dbb1b0849ed1c9295cc02bc6d9233e3ed4aade8e4efeb19b3c1bda569bf6ae8c6e8780291493ae06ddc6513baabf +SHA512 (webkitgtk-2.45.4.tar.xz.asc) = 32f37c85ae6a1a3b80791662501c9f401637784e7a78ca7f909cd6119c9b8591716e919a86005a23422258a4130b9c5d849bae833402ffaef72bc480df6f60d2 diff --git a/textdecorationpainter-lto-crash.patch b/textdecorationpainter-lto-crash.patch deleted file mode 100644 index c22c13e..0000000 --- a/textdecorationpainter-lto-crash.patch +++ /dev/null @@ -1,40 +0,0 @@ -https://bugs.webkit.org/show_bug.cgi?id=274780 - -diff --git a/Source/WebCore/rendering/TextDecorationPainter.cpp b/Source/WebCore/rendering/TextDecorationPainter.cpp -index 895c512156da..02d8f00d5aae 100644 ---- a/Source/WebCore/rendering/TextDecorationPainter.cpp -+++ b/Source/WebCore/rendering/TextDecorationPainter.cpp -@@ -128,25 +128,26 @@ static DashArray translateIntersectionPointsToSkipInkBoundaries(const DashArray& - // Step 2: Deal with intersecting ranges. - Vector> intermediateTuples; - if (tuples.size() >= 2) { -- intermediateTuples.append(*tuples.begin()); -- for (auto i = tuples.begin() + 1; i != tuples.end(); i++) { -+ intermediateTuples.append(tuples[0]); -+ for (size_t i = 1; i < tuples.size(); i++) { - float& firstEnd = intermediateTuples.last().second; -- float secondStart = i->first; -- float secondEnd = i->second; -+ float secondStart = tuples[i].first; -+ float secondEnd = tuples[i].second; - if (secondStart <= firstEnd && secondEnd <= firstEnd) { - // Ignore this range completely - } else if (secondStart <= firstEnd) - firstEnd = secondEnd; - else -- intermediateTuples.append(*i); -+ intermediateTuples.append(tuples[i]); - } - } else -- intermediateTuples = tuples; -+ intermediateTuples = WTFMove(tuples); - - // Step 3: Output the space between the ranges, but only if the space warrants an underline. - float previous = 0; - DashArray result; -- for (const auto& tuple : intermediateTuples) { -+ for (size_t i = 0; i < intermediateTuples.size(); i++) { -+ const auto& tuple = intermediateTuples[i]; - if (tuple.first - previous > dilationAmount) { - result.append(previous); - result.append(tuple.first); diff --git a/webkitgtk.spec b/webkitgtk.spec index 250a9f4..030cc76 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -22,7 +22,7 @@ %endif Name: webkitgtk -Version: 2.45.3 +Version: 2.45.4 Release: %autorelease Summary: GTK web content engine library @@ -60,9 +60,6 @@ Source1: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz.asc # $ gpg --export --export-options export-minimal 013A0127AC9C65B34FFA62526C1009B693975393 5AA3BC334FD7E3369E7C77B291C559DBE4C9123B > webkitgtk-keys.gpg Source2: webkitgtk-keys.gpg -# https://bugs.webkit.org/show_bug.cgi?id=274780#c4 -Patch: textdecorationpainter-lto-crash.patch - BuildRequires: bison BuildRequires: bubblewrap BuildRequires: clang From 2d2a38514171f849da7aafc0dcf807380ff9cd94 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Wed, 26 Jun 2024 09:04:58 -0500 Subject: [PATCH 118/200] Restore the TextDecorationPainter crash patch --- textdecorationpainter-lto-crash.patch | 40 +++++++++++++++++++++++++++ webkitgtk.spec | 3 ++ 2 files changed, 43 insertions(+) create mode 100644 textdecorationpainter-lto-crash.patch diff --git a/textdecorationpainter-lto-crash.patch b/textdecorationpainter-lto-crash.patch new file mode 100644 index 0000000..c22c13e --- /dev/null +++ b/textdecorationpainter-lto-crash.patch @@ -0,0 +1,40 @@ +https://bugs.webkit.org/show_bug.cgi?id=274780 + +diff --git a/Source/WebCore/rendering/TextDecorationPainter.cpp b/Source/WebCore/rendering/TextDecorationPainter.cpp +index 895c512156da..02d8f00d5aae 100644 +--- a/Source/WebCore/rendering/TextDecorationPainter.cpp ++++ b/Source/WebCore/rendering/TextDecorationPainter.cpp +@@ -128,25 +128,26 @@ static DashArray translateIntersectionPointsToSkipInkBoundaries(const DashArray& + // Step 2: Deal with intersecting ranges. + Vector> intermediateTuples; + if (tuples.size() >= 2) { +- intermediateTuples.append(*tuples.begin()); +- for (auto i = tuples.begin() + 1; i != tuples.end(); i++) { ++ intermediateTuples.append(tuples[0]); ++ for (size_t i = 1; i < tuples.size(); i++) { + float& firstEnd = intermediateTuples.last().second; +- float secondStart = i->first; +- float secondEnd = i->second; ++ float secondStart = tuples[i].first; ++ float secondEnd = tuples[i].second; + if (secondStart <= firstEnd && secondEnd <= firstEnd) { + // Ignore this range completely + } else if (secondStart <= firstEnd) + firstEnd = secondEnd; + else +- intermediateTuples.append(*i); ++ intermediateTuples.append(tuples[i]); + } + } else +- intermediateTuples = tuples; ++ intermediateTuples = WTFMove(tuples); + + // Step 3: Output the space between the ranges, but only if the space warrants an underline. + float previous = 0; + DashArray result; +- for (const auto& tuple : intermediateTuples) { ++ for (size_t i = 0; i < intermediateTuples.size(); i++) { ++ const auto& tuple = intermediateTuples[i]; + if (tuple.first - previous > dilationAmount) { + result.append(previous); + result.append(tuple.first); diff --git a/webkitgtk.spec b/webkitgtk.spec index 030cc76..4865e4c 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -60,6 +60,9 @@ Source1: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz.asc # $ gpg --export --export-options export-minimal 013A0127AC9C65B34FFA62526C1009B693975393 5AA3BC334FD7E3369E7C77B291C559DBE4C9123B > webkitgtk-keys.gpg Source2: webkitgtk-keys.gpg +# https://bugs.webkit.org/show_bug.cgi?id=274780 +Patch: textdecorationpainter-lto-crash.patch + BuildRequires: bison BuildRequires: bubblewrap BuildRequires: clang From 65829197f6303de07c90391da812b4e7df5d55fe Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Wed, 3 Jul 2024 15:10:15 -0500 Subject: [PATCH 119/200] Drop downstream patch and disable LTO --- textdecorationpainter-lto-crash.patch | 40 --------------------------- webkitgtk.spec | 6 +--- 2 files changed, 1 insertion(+), 45 deletions(-) delete mode 100644 textdecorationpainter-lto-crash.patch diff --git a/textdecorationpainter-lto-crash.patch b/textdecorationpainter-lto-crash.patch deleted file mode 100644 index c22c13e..0000000 --- a/textdecorationpainter-lto-crash.patch +++ /dev/null @@ -1,40 +0,0 @@ -https://bugs.webkit.org/show_bug.cgi?id=274780 - -diff --git a/Source/WebCore/rendering/TextDecorationPainter.cpp b/Source/WebCore/rendering/TextDecorationPainter.cpp -index 895c512156da..02d8f00d5aae 100644 ---- a/Source/WebCore/rendering/TextDecorationPainter.cpp -+++ b/Source/WebCore/rendering/TextDecorationPainter.cpp -@@ -128,25 +128,26 @@ static DashArray translateIntersectionPointsToSkipInkBoundaries(const DashArray& - // Step 2: Deal with intersecting ranges. - Vector> intermediateTuples; - if (tuples.size() >= 2) { -- intermediateTuples.append(*tuples.begin()); -- for (auto i = tuples.begin() + 1; i != tuples.end(); i++) { -+ intermediateTuples.append(tuples[0]); -+ for (size_t i = 1; i < tuples.size(); i++) { - float& firstEnd = intermediateTuples.last().second; -- float secondStart = i->first; -- float secondEnd = i->second; -+ float secondStart = tuples[i].first; -+ float secondEnd = tuples[i].second; - if (secondStart <= firstEnd && secondEnd <= firstEnd) { - // Ignore this range completely - } else if (secondStart <= firstEnd) - firstEnd = secondEnd; - else -- intermediateTuples.append(*i); -+ intermediateTuples.append(tuples[i]); - } - } else -- intermediateTuples = tuples; -+ intermediateTuples = WTFMove(tuples); - - // Step 3: Output the space between the ranges, but only if the space warrants an underline. - float previous = 0; - DashArray result; -- for (const auto& tuple : intermediateTuples) { -+ for (size_t i = 0; i < intermediateTuples.size(); i++) { -+ const auto& tuple = intermediateTuples[i]; - if (tuple.first - previous > dilationAmount) { - result.append(previous); - result.append(tuple.first); diff --git a/webkitgtk.spec b/webkitgtk.spec index 4865e4c..69d0a10 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -17,9 +17,8 @@ %endif # We run out of memory if building with LTO enabled on i686. -%ifarch %{ix86} +# For other architectures, disable due to https://bugs.webkit.org/show_bug.cgi?id=274780 %global _lto_cflags %{nil} -%endif Name: webkitgtk Version: 2.45.4 @@ -60,9 +59,6 @@ Source1: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz.asc # $ gpg --export --export-options export-minimal 013A0127AC9C65B34FFA62526C1009B693975393 5AA3BC334FD7E3369E7C77B291C559DBE4C9123B > webkitgtk-keys.gpg Source2: webkitgtk-keys.gpg -# https://bugs.webkit.org/show_bug.cgi?id=274780 -Patch: textdecorationpainter-lto-crash.patch - BuildRequires: bison BuildRequires: bubblewrap BuildRequires: clang From ea3f8cbb694c056205fb185c46b0b0594823485f Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Fri, 12 Jul 2024 11:39:20 -0500 Subject: [PATCH 120/200] Update to 2.45.5 --- .gitignore | 1 + sources | 4 ++-- webkitgtk.spec | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index ae963a6..95efcdd 100644 --- a/.gitignore +++ b/.gitignore @@ -37,3 +37,4 @@ /webkitgtk-2.45.2.tar.xz.asc /webkitgtk-2.45.3.tar.xz.asc /webkitgtk-2.45.4.tar.xz.asc +/webkitgtk-2.45.5.tar.xz.asc diff --git a/sources b/sources index dfbdf6e..db21fa4 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.45.4.tar.xz) = 96e2cc45cf33a2323797bda1dc7350cc2a82dbb1b0849ed1c9295cc02bc6d9233e3ed4aade8e4efeb19b3c1bda569bf6ae8c6e8780291493ae06ddc6513baabf -SHA512 (webkitgtk-2.45.4.tar.xz.asc) = 32f37c85ae6a1a3b80791662501c9f401637784e7a78ca7f909cd6119c9b8591716e919a86005a23422258a4130b9c5d849bae833402ffaef72bc480df6f60d2 +SHA512 (webkitgtk-2.45.5.tar.xz.asc) = 083731cff10021d67208cd0d7abcfefdd7b483d65801ec5269d4fa38ae088ab567897f87542661675966636b36ab2d19cd0c65312e2655a4045319a3c6ec8bd0 +SHA512 (webkitgtk-2.45.5.tar.xz) = eeb3fd2b7203085794324ecc6819faf87e3fcaa8c271328699ec88ebc964d148aec9680ef7e2b67989349d080ef5548a5c59dc1f3bea0af0b8bb6a7c0a3da2c2 diff --git a/webkitgtk.spec b/webkitgtk.spec index 69d0a10..1ff2c4c 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -21,7 +21,7 @@ %global _lto_cflags %{nil} Name: webkitgtk -Version: 2.45.4 +Version: 2.45.5 Release: %autorelease Summary: GTK web content engine library From dd7877f95014f57f5eceb26b2460e299db044fd4 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 20 Jul 2024 09:13:34 +0000 Subject: [PATCH 121/200] Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild From 44f98a0ae6fa3f60c2cbdf720cadce3e975d5745 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Mon, 29 Jul 2024 13:11:25 -0500 Subject: [PATCH 122/200] Update to 2.45.6 --- .gitignore | 1 + sources | 4 ++-- webkitgtk.spec | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 95efcdd..898ab3a 100644 --- a/.gitignore +++ b/.gitignore @@ -38,3 +38,4 @@ /webkitgtk-2.45.3.tar.xz.asc /webkitgtk-2.45.4.tar.xz.asc /webkitgtk-2.45.5.tar.xz.asc +/webkitgtk-2.45.6.tar.xz.asc diff --git a/sources b/sources index db21fa4..96c7517 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.45.5.tar.xz.asc) = 083731cff10021d67208cd0d7abcfefdd7b483d65801ec5269d4fa38ae088ab567897f87542661675966636b36ab2d19cd0c65312e2655a4045319a3c6ec8bd0 -SHA512 (webkitgtk-2.45.5.tar.xz) = eeb3fd2b7203085794324ecc6819faf87e3fcaa8c271328699ec88ebc964d148aec9680ef7e2b67989349d080ef5548a5c59dc1f3bea0af0b8bb6a7c0a3da2c2 +SHA512 (webkitgtk-2.45.6.tar.xz) = 4cc6cf9083ec3600fda12aab7a85e50e7efacfb2d5b3cea699c0aeb2622f0aa14b4cf8bbd8bda97fc299907eeac472433ff61670fe3d53835b070f65c3deca8f +SHA512 (webkitgtk-2.45.6.tar.xz.asc) = 48e16a66deb21ba19b6fec3fd567f275e5275bbf5166e63c50c8b3b7c2f87b8e0bda10c9e47c53ce282c545b5062ee0960876f8d9833d9a58d836996f3d8e9bd diff --git a/webkitgtk.spec b/webkitgtk.spec index 1ff2c4c..ae0378b 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -21,7 +21,7 @@ %global _lto_cflags %{nil} Name: webkitgtk -Version: 2.45.5 +Version: 2.45.6 Release: %autorelease Summary: GTK web content engine library From 3d068f5592d10c0cfb51127f4bc68b4a2a1f658c Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Thu, 15 Aug 2024 12:48:31 -0500 Subject: [PATCH 123/200] Reenable LTO --- fix-lto.patch | 34 ++++++++++++++++++++++++++++++++++ webkitgtk.spec | 6 +++++- 2 files changed, 39 insertions(+), 1 deletion(-) create mode 100644 fix-lto.patch diff --git a/fix-lto.patch b/fix-lto.patch new file mode 100644 index 0000000..bd0df23 --- /dev/null +++ b/fix-lto.patch @@ -0,0 +1,34 @@ +From 5fe26f3ba7acd5d84d5010b746ca6a4618fccc6a Mon Sep 17 00:00:00 2001 +From: Adrian Perez de Castro +Date: Thu, 15 Aug 2024 13:41:45 +0300 +Subject: [PATCH] [WPE][GTK] Crash in + WebCore::TextDecorationPainter::paintBackgroundDecorations when compiled with + Clang with LTO enabled https://bugs.webkit.org/show_bug.cgi?id=274780 + +Reviewed by NOBODY (OOPS!). + +Clang seem to have some issue when inlining assignment and move +operators in LTO builds, generating code that tries to perform OOB +access to Vector data. Replacing an assignmenmt with a Vector::swap(), +which is semantically equivalent in this case (the moved-from object +is not used again in the function) workarounds the compiler issue. + +* Source/WebCore/rendering/TextDecorationPainter.cpp: +(WebCore::translateIntersectionPointsToSkipInkBoundaries): +--- + Source/WebCore/rendering/TextDecorationPainter.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Source/WebCore/rendering/TextDecorationPainter.cpp b/Source/WebCore/rendering/TextDecorationPainter.cpp +index 5c4e798d7aef..6c3951145f30 100644 +--- a/Source/WebCore/rendering/TextDecorationPainter.cpp ++++ b/Source/WebCore/rendering/TextDecorationPainter.cpp +@@ -141,7 +141,7 @@ static DashArray translateIntersectionPointsToSkipInkBoundaries(const DashArray& + intermediateTuples.append(*i); + } + } else +- intermediateTuples = tuples; ++ intermediateTuples.swap(tuples); + + // Step 3: Output the space between the ranges, but only if the space warrants an underline. + float previous = 0; diff --git a/webkitgtk.spec b/webkitgtk.spec index ae0378b..e6facbb 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -17,8 +17,9 @@ %endif # We run out of memory if building with LTO enabled on i686. -# For other architectures, disable due to https://bugs.webkit.org/show_bug.cgi?id=274780 +%ifarch %{ix86} %global _lto_cflags %{nil} +%endif Name: webkitgtk Version: 2.45.6 @@ -59,6 +60,9 @@ Source1: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz.asc # $ gpg --export --export-options export-minimal 013A0127AC9C65B34FFA62526C1009B693975393 5AA3BC334FD7E3369E7C77B291C559DBE4C9123B > webkitgtk-keys.gpg Source2: webkitgtk-keys.gpg +# https://github.com/WebKit/WebKit/pull/32240 +Patch0: fix-lto.patch + BuildRequires: bison BuildRequires: bubblewrap BuildRequires: clang From 7f54c2a997f5ee730336516f7fe649b2f9fd34bb Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Mon, 19 Aug 2024 15:02:52 -0500 Subject: [PATCH 124/200] Update to 2.45.90 --- .gitignore | 1 + fix-lto.patch | 34 ---------------------------------- sources | 4 ++-- webkitgtk.spec | 5 +---- 4 files changed, 4 insertions(+), 40 deletions(-) delete mode 100644 fix-lto.patch diff --git a/.gitignore b/.gitignore index 898ab3a..4fc6c16 100644 --- a/.gitignore +++ b/.gitignore @@ -39,3 +39,4 @@ /webkitgtk-2.45.4.tar.xz.asc /webkitgtk-2.45.5.tar.xz.asc /webkitgtk-2.45.6.tar.xz.asc +/webkitgtk-2.45.90.tar.xz.asc diff --git a/fix-lto.patch b/fix-lto.patch deleted file mode 100644 index bd0df23..0000000 --- a/fix-lto.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 5fe26f3ba7acd5d84d5010b746ca6a4618fccc6a Mon Sep 17 00:00:00 2001 -From: Adrian Perez de Castro -Date: Thu, 15 Aug 2024 13:41:45 +0300 -Subject: [PATCH] [WPE][GTK] Crash in - WebCore::TextDecorationPainter::paintBackgroundDecorations when compiled with - Clang with LTO enabled https://bugs.webkit.org/show_bug.cgi?id=274780 - -Reviewed by NOBODY (OOPS!). - -Clang seem to have some issue when inlining assignment and move -operators in LTO builds, generating code that tries to perform OOB -access to Vector data. Replacing an assignmenmt with a Vector::swap(), -which is semantically equivalent in this case (the moved-from object -is not used again in the function) workarounds the compiler issue. - -* Source/WebCore/rendering/TextDecorationPainter.cpp: -(WebCore::translateIntersectionPointsToSkipInkBoundaries): ---- - Source/WebCore/rendering/TextDecorationPainter.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Source/WebCore/rendering/TextDecorationPainter.cpp b/Source/WebCore/rendering/TextDecorationPainter.cpp -index 5c4e798d7aef..6c3951145f30 100644 ---- a/Source/WebCore/rendering/TextDecorationPainter.cpp -+++ b/Source/WebCore/rendering/TextDecorationPainter.cpp -@@ -141,7 +141,7 @@ static DashArray translateIntersectionPointsToSkipInkBoundaries(const DashArray& - intermediateTuples.append(*i); - } - } else -- intermediateTuples = tuples; -+ intermediateTuples.swap(tuples); - - // Step 3: Output the space between the ranges, but only if the space warrants an underline. - float previous = 0; diff --git a/sources b/sources index 96c7517..4ecd25a 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.45.6.tar.xz) = 4cc6cf9083ec3600fda12aab7a85e50e7efacfb2d5b3cea699c0aeb2622f0aa14b4cf8bbd8bda97fc299907eeac472433ff61670fe3d53835b070f65c3deca8f -SHA512 (webkitgtk-2.45.6.tar.xz.asc) = 48e16a66deb21ba19b6fec3fd567f275e5275bbf5166e63c50c8b3b7c2f87b8e0bda10c9e47c53ce282c545b5062ee0960876f8d9833d9a58d836996f3d8e9bd +SHA512 (webkitgtk-2.45.90.tar.xz) = 292ae001d4db73f25bef8c6d34e8eec696292736a64eb66ae8d10bda1100b3f21085864ac58d1fbad33f20abae2be7e155b9bd3434586645fe7cfe2424d7bccf +SHA512 (webkitgtk-2.45.90.tar.xz.asc) = 32eff945d3047dafd0c434e0cc9dd4d6159c9c6e4b0247be7503fa5068248d9153d0619cd4093bfcd7280e95a678211e251173de6e0b6d924ed9652813d1807a diff --git a/webkitgtk.spec b/webkitgtk.spec index e6facbb..56c3ca7 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -22,7 +22,7 @@ %endif Name: webkitgtk -Version: 2.45.6 +Version: 2.45.90 Release: %autorelease Summary: GTK web content engine library @@ -60,9 +60,6 @@ Source1: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz.asc # $ gpg --export --export-options export-minimal 013A0127AC9C65B34FFA62526C1009B693975393 5AA3BC334FD7E3369E7C77B291C559DBE4C9123B > webkitgtk-keys.gpg Source2: webkitgtk-keys.gpg -# https://github.com/WebKit/WebKit/pull/32240 -Patch0: fix-lto.patch - BuildRequires: bison BuildRequires: bubblewrap BuildRequires: clang From 2a0e6c39ec110395ad0f50db53e7012533141bea Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Mon, 26 Aug 2024 12:16:54 -0500 Subject: [PATCH 125/200] Update to 2.45.91 --- .gitignore | 1 + sources | 4 ++-- webkitgtk.spec | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 4fc6c16..4631608 100644 --- a/.gitignore +++ b/.gitignore @@ -40,3 +40,4 @@ /webkitgtk-2.45.5.tar.xz.asc /webkitgtk-2.45.6.tar.xz.asc /webkitgtk-2.45.90.tar.xz.asc +/webkitgtk-2.45.91.tar.xz.asc diff --git a/sources b/sources index 4ecd25a..f7b3210 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.45.90.tar.xz) = 292ae001d4db73f25bef8c6d34e8eec696292736a64eb66ae8d10bda1100b3f21085864ac58d1fbad33f20abae2be7e155b9bd3434586645fe7cfe2424d7bccf -SHA512 (webkitgtk-2.45.90.tar.xz.asc) = 32eff945d3047dafd0c434e0cc9dd4d6159c9c6e4b0247be7503fa5068248d9153d0619cd4093bfcd7280e95a678211e251173de6e0b6d924ed9652813d1807a +SHA512 (webkitgtk-2.45.91.tar.xz) = 670628b08028bb2bbf6d33534de3832998009ec0146d2dd7f0693953042145d01f120c8e0611fd6d47aed61416eae36de810c81aa2652eeee2d3517b03ea5d50 +SHA512 (webkitgtk-2.45.91.tar.xz.asc) = 78e2eecf3aaa2cbdf626708a68ce47fe209e69c63dfbc8d7701a6dd0e2f1c36be78b9f185ca705e9402d23ef3ef98843eeac4a34588bfdc596d4dfcd3171b022 diff --git a/webkitgtk.spec b/webkitgtk.spec index 56c3ca7..c0235ec 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -22,7 +22,7 @@ %endif Name: webkitgtk -Version: 2.45.90 +Version: 2.45.91 Release: %autorelease Summary: GTK web content engine library From 535cf00bbfb67ae160d4eef8a4fd7634e0021f84 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Tue, 3 Sep 2024 12:07:58 -0500 Subject: [PATCH 126/200] Update to 2.45.92 --- .gitignore | 1 + sources | 4 ++-- webkitgtk.spec | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 4631608..b546574 100644 --- a/.gitignore +++ b/.gitignore @@ -41,3 +41,4 @@ /webkitgtk-2.45.6.tar.xz.asc /webkitgtk-2.45.90.tar.xz.asc /webkitgtk-2.45.91.tar.xz.asc +/webkitgtk-2.45.92.tar.xz.asc diff --git a/sources b/sources index f7b3210..ae19551 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.45.91.tar.xz) = 670628b08028bb2bbf6d33534de3832998009ec0146d2dd7f0693953042145d01f120c8e0611fd6d47aed61416eae36de810c81aa2652eeee2d3517b03ea5d50 -SHA512 (webkitgtk-2.45.91.tar.xz.asc) = 78e2eecf3aaa2cbdf626708a68ce47fe209e69c63dfbc8d7701a6dd0e2f1c36be78b9f185ca705e9402d23ef3ef98843eeac4a34588bfdc596d4dfcd3171b022 +SHA512 (webkitgtk-2.45.92.tar.xz) = ccb06c7dfb4827afcfc558756700a9b2d484749e746ea86145b91759ca97d87910c230d6b23993ad250f83a8c532b74ace022aab0773f64b045d68879e9734a7 +SHA512 (webkitgtk-2.45.92.tar.xz.asc) = 558b011740f02f78316a668bbe873f82620d2272eccc361874b742e950e76534a5f46c3eea8a41987c140756189b072ad9b3d493775a68bca92e3e9ba70bb028 diff --git a/webkitgtk.spec b/webkitgtk.spec index c0235ec..5d46fbf 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -22,7 +22,7 @@ %endif Name: webkitgtk -Version: 2.45.91 +Version: 2.45.92 Release: %autorelease Summary: GTK web content engine library From 24e021e1026ccbb85e03e6f5ebb86aa72c0678bb Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Wed, 4 Sep 2024 14:14:49 -0500 Subject: [PATCH 127/200] Disable LTO on ppc64le --- webkitgtk.spec | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/webkitgtk.spec b/webkitgtk.spec index 5d46fbf..28d2da6 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -17,7 +17,9 @@ %endif # We run out of memory if building with LTO enabled on i686. -%ifarch %{ix86} +# Then on ppc64le we hit this error: +# lto-wrapper: fatal error: Too many copied sections: Operation not supported +%ifarch %{ix86} ppc64le %global _lto_cflags %{nil} %endif From 0c4f7535d1b9f83477ce7ac7a185997b98529774 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Mon, 9 Sep 2024 10:04:01 -0500 Subject: [PATCH 128/200] Revert use of -fdebug-types-section flag This fails to build on ppc64le. https://bugzilla.redhat.com/show_bug.cgi?id=2310828 --- debug-types-section.patch | 16 ++++++++++++++++ webkitgtk.spec | 3 +++ 2 files changed, 19 insertions(+) create mode 100644 debug-types-section.patch diff --git a/debug-types-section.patch b/debug-types-section.patch new file mode 100644 index 0000000..dcc2965 --- /dev/null +++ b/debug-types-section.patch @@ -0,0 +1,16 @@ +diff --git a/Source/cmake/WebKitCompilerFlags.cmake b/Source/cmake/WebKitCompilerFlags.cmake +index b84d6fa3eed44..8c91752f4f09d 100644 +--- a/Source/cmake/WebKitCompilerFlags.cmake ++++ b/Source/cmake/WebKitCompilerFlags.cmake +@@ -139,11 +139,6 @@ endif () + if (COMPILER_IS_GCC_OR_CLANG) + WEBKIT_APPEND_GLOBAL_COMPILER_FLAGS(-fno-strict-aliasing) + +- # Split debug information in ".debug_types" / ".debug_info" sections - this leads +- # to a smaller overall size of the debug information, and avoids linker relocation +- # errors on e.g. aarch64 (relocation R_AARCH64_ABS32 out of range: 4312197985 is not in [-2147483648, 4294967295]) +- WEBKIT_PREPEND_GLOBAL_COMPILER_FLAGS(-fdebug-types-section) +- + # clang-cl.exe impersonates cl.exe so some clang arguments like -fno-rtti are + # represented using cl.exe's options and should not be passed as flags, so + # we do not add -fno-rtti or -fno-exceptions for clang-cl diff --git a/webkitgtk.spec b/webkitgtk.spec index 28d2da6..cde8022 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -62,6 +62,9 @@ Source1: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz.asc # $ gpg --export --export-options export-minimal 013A0127AC9C65B34FFA62526C1009B693975393 5AA3BC334FD7E3369E7C77B291C559DBE4C9123B > webkitgtk-keys.gpg Source2: webkitgtk-keys.gpg +# https://bugzilla.redhat.com/show_bug.cgi?id=2310828 +Patch: debug-types-section.patch + BuildRequires: bison BuildRequires: bubblewrap BuildRequires: clang From 9bc4c62d44e643b16f02d12a94a55ede07dd1559 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Dan=20Hor=C3=A1k?= Date: Thu, 12 Sep 2024 11:26:27 +0000 Subject: [PATCH 129/200] enable build with clang on ppc64le Add a workaround for missing musttail implementation in clang on ppc64le to unblock building with clang. --- debug-types-section.patch | 16 ------------ webkitgtk-skia-musttail.patch | 49 +++++++++++++++++++++++++++++++++++ webkitgtk.spec | 12 +++------ 3 files changed, 53 insertions(+), 24 deletions(-) delete mode 100644 debug-types-section.patch create mode 100644 webkitgtk-skia-musttail.patch diff --git a/debug-types-section.patch b/debug-types-section.patch deleted file mode 100644 index dcc2965..0000000 --- a/debug-types-section.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff --git a/Source/cmake/WebKitCompilerFlags.cmake b/Source/cmake/WebKitCompilerFlags.cmake -index b84d6fa3eed44..8c91752f4f09d 100644 ---- a/Source/cmake/WebKitCompilerFlags.cmake -+++ b/Source/cmake/WebKitCompilerFlags.cmake -@@ -139,11 +139,6 @@ endif () - if (COMPILER_IS_GCC_OR_CLANG) - WEBKIT_APPEND_GLOBAL_COMPILER_FLAGS(-fno-strict-aliasing) - -- # Split debug information in ".debug_types" / ".debug_info" sections - this leads -- # to a smaller overall size of the debug information, and avoids linker relocation -- # errors on e.g. aarch64 (relocation R_AARCH64_ABS32 out of range: 4312197985 is not in [-2147483648, 4294967295]) -- WEBKIT_PREPEND_GLOBAL_COMPILER_FLAGS(-fdebug-types-section) -- - # clang-cl.exe impersonates cl.exe so some clang arguments like -fno-rtti are - # represented using cl.exe's options and should not be passed as flags, so - # we do not add -fno-rtti or -fno-exceptions for clang-cl diff --git a/webkitgtk-skia-musttail.patch b/webkitgtk-skia-musttail.patch new file mode 100644 index 0000000..f480d14 --- /dev/null +++ b/webkitgtk-skia-musttail.patch @@ -0,0 +1,49 @@ +diff -up webkitgtk-2.45.92/Source/ThirdParty/skia/include/private/base/SkFeatures.h.orig webkitgtk-2.45.92/Source/ThirdParty/skia/include/private/base/SkFeatures.h +--- webkitgtk-2.45.92/Source/ThirdParty/skia/include/private/base/SkFeatures.h.orig 2024-09-12 08:22:24.667260964 +0000 ++++ webkitgtk-2.45.92/Source/ThirdParty/skia/include/private/base/SkFeatures.h 2024-09-12 08:22:46.616832364 +0000 +@@ -69,6 +69,10 @@ + #define SK_CPU_LOONGARCH 1 + #endif + ++#if defined(__powerpc__) || defined (__powerpc64__) ++ #define SK_CPU_PPC 1 ++#endif ++ + /** + * SK_CPU_SSE_LEVEL + * +diff -up webkitgtk-2.45.92/Source/ThirdParty/skia/src/core/SkRasterPipeline.h.orig webkitgtk-2.45.92/Source/ThirdParty/skia/src/core/SkRasterPipeline.h +--- webkitgtk-2.45.92/Source/ThirdParty/skia/src/core/SkRasterPipeline.h.orig 2024-09-12 08:16:25.444163366 +0000 ++++ webkitgtk-2.45.92/Source/ThirdParty/skia/src/core/SkRasterPipeline.h 2024-09-12 08:16:43.603797893 +0000 +@@ -27,7 +27,7 @@ struct SkImageInfo; + struct skcms_TransferFunction; + + #if __has_cpp_attribute(clang::musttail) && !defined(__EMSCRIPTEN__) && !defined(SK_CPU_ARM32) && \ +- !defined(SK_CPU_LOONGARCH) ++ !defined(SK_CPU_LOONGARCH) && !defined(SK_CPU_PPC) + #define SK_HAS_MUSTTAIL 1 + #else + #define SK_HAS_MUSTTAIL 0 +diff -up webkitgtk-2.45.92/Source/ThirdParty/skia/modules/skcms/src/skcms_internals.h.orig webkitgtk-2.45.92/Source/ThirdParty/skia/modules/skcms/src/skcms_internals.h +--- webkitgtk-2.45.92/Source/ThirdParty/skia/modules/skcms/src/skcms_internals.h.orig 2024-09-12 08:49:09.985808211 +0000 ++++ webkitgtk-2.45.92/Source/ThirdParty/skia/modules/skcms/src/skcms_internals.h 2024-09-12 08:49:19.835612828 +0000 +@@ -48,6 +48,7 @@ extern "C" { + && !defined(__arm__) \ + && !defined(__riscv) \ + && !defined(__loongarch__) \ ++ && !defined(__powerpc__) \ + && !defined(_WIN32) && !defined(__SYMBIAN32__) + #define SKCMS_HAS_MUSTTAIL 1 + #endif +diff -up webkitgtk-2.45.92/Source/WTF/wtf/Compiler.h.orig webkitgtk-2.45.92/Source/WTF/wtf/Compiler.h +--- webkitgtk-2.45.92/Source/WTF/wtf/Compiler.h.orig 2024-09-12 09:14:10.775885415 +0000 ++++ webkitgtk-2.45.92/Source/WTF/wtf/Compiler.h 2024-09-12 09:15:27.264379291 +0000 +@@ -271,7 +271,7 @@ + /* MUST_TAIL_CALL */ + + #if !defined(MUST_TAIL_CALL) && defined(__cplusplus) && defined(__has_cpp_attribute) +-#if __has_cpp_attribute(clang::musttail) ++#if __has_cpp_attribute(clang::musttail) && !defined(__powerpc__) + #define MUST_TAIL_CALL [[clang::musttail]] + #endif + #endif diff --git a/webkitgtk.spec b/webkitgtk.spec index cde8022..b4d5a04 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -11,15 +11,10 @@ %bcond_without docs # Clang is preferred: https://skia.org/docs/user/build/#supported-and-preferred-compilers -# However, it crashes on ppc64le. -%ifnarch ppc64le %global toolchain clang -%endif # We run out of memory if building with LTO enabled on i686. -# Then on ppc64le we hit this error: -# lto-wrapper: fatal error: Too many copied sections: Operation not supported -%ifarch %{ix86} ppc64le +%ifarch %{ix86} %global _lto_cflags %{nil} %endif @@ -62,8 +57,9 @@ Source1: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz.asc # $ gpg --export --export-options export-minimal 013A0127AC9C65B34FFA62526C1009B693975393 5AA3BC334FD7E3369E7C77B291C559DBE4C9123B > webkitgtk-keys.gpg Source2: webkitgtk-keys.gpg -# https://bugzilla.redhat.com/show_bug.cgi?id=2310828 -Patch: debug-types-section.patch +# Work around a missing implementation of musttail in clang for ppc64le +# https://github.com/llvm/llvm-project/issues/108014 +Patch: webkitgtk-skia-musttail.patch BuildRequires: bison BuildRequires: bubblewrap From dc14ad6a0ec91a701377ff715ef415f74175cd50 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Tue, 17 Sep 2024 14:51:54 -0500 Subject: [PATCH 130/200] Upgrade to 2.46.0 --- .gitignore | 1 + sources | 4 ++-- webkitgtk.spec | 2 +- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index b546574..d72ee95 100644 --- a/.gitignore +++ b/.gitignore @@ -42,3 +42,4 @@ /webkitgtk-2.45.90.tar.xz.asc /webkitgtk-2.45.91.tar.xz.asc /webkitgtk-2.45.92.tar.xz.asc +/webkitgtk-2.46.0.tar.xz.asc diff --git a/sources b/sources index ae19551..87db38b 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.45.92.tar.xz) = ccb06c7dfb4827afcfc558756700a9b2d484749e746ea86145b91759ca97d87910c230d6b23993ad250f83a8c532b74ace022aab0773f64b045d68879e9734a7 -SHA512 (webkitgtk-2.45.92.tar.xz.asc) = 558b011740f02f78316a668bbe873f82620d2272eccc361874b742e950e76534a5f46c3eea8a41987c140756189b072ad9b3d493775a68bca92e3e9ba70bb028 +SHA512 (webkitgtk-2.46.0.tar.xz) = bdb6b9acd418d1eb45a7b7d2618bd6562798cce9147d3ae794d9f868956a2dddace5676592ababaa7da5bd38b29dbdeff1a8e092c4611cfb123a62e83c2cf9ae +SHA512 (webkitgtk-2.46.0.tar.xz.asc) = ad87727cae042cf8f5a41d92ae2fad38207417db8cdbfccc73ab4176be68480813bd54a0aacd2bc9309e9eeff4f1e413c217c5f5e08cf9363e763a4e94ab6c40 diff --git a/webkitgtk.spec b/webkitgtk.spec index b4d5a04..b41252e 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -19,7 +19,7 @@ %endif Name: webkitgtk -Version: 2.45.92 +Version: 2.46.0 Release: %autorelease Summary: GTK web content engine library From 70665b9a1b5227b3be2df423945db8ea63391159 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Tue, 17 Sep 2024 15:51:57 -0500 Subject: [PATCH 131/200] Remove unused GCC build dep --- webkitgtk.spec | 1 - 1 file changed, 1 deletion(-) diff --git a/webkitgtk.spec b/webkitgtk.spec index b41252e..a211f56 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -66,7 +66,6 @@ BuildRequires: bubblewrap BuildRequires: clang BuildRequires: cmake BuildRequires: flex -BuildRequires: gcc-c++ BuildRequires: gettext BuildRequires: gi-docgen BuildRequires: git From cb9c9e2943a758857e5f538e1fdb79afe1dbcf8e Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Tue, 17 Sep 2024 15:53:59 -0500 Subject: [PATCH 132/200] Update .gitignore This is an experiment. Will fedpkg allow this to remain simple? --- .gitignore | 45 +-------------------------------------------- 1 file changed, 1 insertion(+), 44 deletions(-) diff --git a/.gitignore b/.gitignore index d72ee95..3f6d409 100644 --- a/.gitignore +++ b/.gitignore @@ -1,45 +1,2 @@ /webkitgtk-*.tar.xz -/webkitgtk-2.37.1.tar.xz.asc -/webkitgtk-2.37.90.tar.xz.asc -/webkitgtk-2.37.91.tar.xz.asc -/webkitgtk-2.38.0.tar.xz.asc -/webkitgtk-2.38.1.tar.xz.asc -/webkitgtk-2.38.2.tar.xz.asc -/webkitgtk-2.39.1.tar.xz.asc -/webkitgtk-2.39.2.tar.xz.asc -/webkitgtk-2.39.3.tar.xz.asc -/webkitgtk-2.39.4.tar.xz.asc -/webkitgtk-2.39.5.tar.xz.asc -/webkitgtk-2.39.6.tar.xz.asc -/webkitgtk-2.39.7.tar.xz.asc -/webkitgtk-2.39.90.tar.xz.asc -/webkitgtk-2.39.91.tar.xz.asc -/webkitgtk-2.40.0.tar.xz.asc -/webkitgtk-2.41.1.tar.xz.asc -/webkitgtk-2.41.2.tar.xz.asc -/webkitgtk-2.41.3.tar.xz.asc -/webkitgtk-2.41.4.tar.xz.asc -/webkitgtk-2.41.5.tar.xz.asc -/webkitgtk-2.41.6.tar.xz.asc -/webkitgtk-2.41.90.tar.xz.asc -/webkitgtk-2.41.91.tar.xz.asc -/webkitgtk-2.41.92.tar.xz.asc -/webkitgtk-2.42.0.tar.xz.asc -/webkitgtk-2.42.1.tar.xz.asc -/webkitgtk-2.42.2.tar.xz.asc -/webkitgtk-2.43.1.tar.xz.asc -/webkitgtk-2.43.2.tar.xz.asc -/webkitgtk-2.43.3.tar.xz.asc -/webkitgtk-2.43.4.tar.xz.asc -/webkitgtk-2.44.0.tar.xz.asc -/webkitgtk-2.44.1.tar.xz.asc -/webkitgtk-2.45.1.tar.xz.asc -/webkitgtk-2.45.2.tar.xz.asc -/webkitgtk-2.45.3.tar.xz.asc -/webkitgtk-2.45.4.tar.xz.asc -/webkitgtk-2.45.5.tar.xz.asc -/webkitgtk-2.45.6.tar.xz.asc -/webkitgtk-2.45.90.tar.xz.asc -/webkitgtk-2.45.91.tar.xz.asc -/webkitgtk-2.45.92.tar.xz.asc -/webkitgtk-2.46.0.tar.xz.asc +/webkitgtk-*.tar.xz.asc From e67beaa132b25ad10fb361784c8ac43a8fa0e6f3 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Wed, 18 Sep 2024 10:48:17 -0500 Subject: [PATCH 133/200] Add missing BuildRequires Because explicit is better than implicit --- webkitgtk.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/webkitgtk.spec b/webkitgtk.spec index a211f56..134b3ff 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -121,6 +121,7 @@ BuildRequires: pkgconfig(libwoff2dec) BuildRequires: pkgconfig(libxslt) BuildRequires: pkgconfig(manette-0.2) BuildRequires: pkgconfig(sqlite3) +BuildRequires: pkgconfig(sysprof-capture-4) BuildRequires: pkgconfig(upower-glib) BuildRequires: pkgconfig(wayland-client) BuildRequires: pkgconfig(wayland-egl) From 3de6cb0f07695ae4faa3cf56d4777865bfd4f745 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Mon, 30 Sep 2024 15:47:06 -0500 Subject: [PATCH 134/200] Update to 2.46.1 --- sources | 4 ++-- webkitgtk.spec | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/sources b/sources index 87db38b..1c0d823 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.46.0.tar.xz) = bdb6b9acd418d1eb45a7b7d2618bd6562798cce9147d3ae794d9f868956a2dddace5676592ababaa7da5bd38b29dbdeff1a8e092c4611cfb123a62e83c2cf9ae -SHA512 (webkitgtk-2.46.0.tar.xz.asc) = ad87727cae042cf8f5a41d92ae2fad38207417db8cdbfccc73ab4176be68480813bd54a0aacd2bc9309e9eeff4f1e413c217c5f5e08cf9363e763a4e94ab6c40 +SHA512 (webkitgtk-2.46.1.tar.xz) = e1ac92305b1d1b034eea9be6aa22cfa260249562fa0af41f0ed5c76a36916bba432073e033f228978d84d0377f245642ff31cdec324565e83aa8c82d8ea0c1f5 +SHA512 (webkitgtk-2.46.1.tar.xz.asc) = a86b2f0d8dce366edeb15f64fd758a383e083224ecd98e3cc9635b590087444929f242ce83471611cb0cbda3227659758121aea46db34a8a3173f0c2f34243c9 diff --git a/webkitgtk.spec b/webkitgtk.spec index 134b3ff..bb08f6f 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -19,7 +19,7 @@ %endif Name: webkitgtk -Version: 2.46.0 +Version: 2.46.1 Release: %autorelease Summary: GTK web content engine library From f0d252c34ad0541573b50355c120d8b25d0c08b3 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Tue, 1 Oct 2024 11:47:27 -0500 Subject: [PATCH 135/200] Add patch to fix build with LLVM 19 --- llvm19.patch | 200 +++++++++++++++++++++++++++++++++++++++++++++++++ webkitgtk.spec | 3 + 2 files changed, 203 insertions(+) create mode 100644 llvm19.patch diff --git a/llvm19.patch b/llvm19.patch new file mode 100644 index 0000000..86aef9c --- /dev/null +++ b/llvm19.patch @@ -0,0 +1,200 @@ +From 762e2cc7f1ff4e9e2834ecc7b7aaa4c933d06e5b Mon Sep 17 00:00:00 2001 +From: Michael Catanzaro +Date: Tue, 1 Oct 2024 11:43:31 -0500 +Subject: [PATCH] Cherry-pick db9c6a9f5548. + https://bugs.webkit.org/show_bug.cgi?id=276633 + +Build broken with LLVM 19 +https://bugs.webkit.org/show_bug.cgi?id=280642 + +Reviewed by NOBODY (OOPS!). + +We need to replace several forward declarations with #include +statements to avoid "member access into incomplete type" errors. This +has revealed that many SVG headers are missing from the framework +headers and so are not available to derived sources. I don't attempt to +fix this comprehensively; this is just the minimum required to fix the +build. + +* Source/WebCore/CMakeLists.txt: +* Source/WebCore/Headers.cmake: +* Source/WebCore/Modules/webcodecs/WebCodecsVideoFrame.h: +--- + Source/WebCore/CMakeLists.txt | 2 + + Source/WebCore/Headers.cmake | 64 +++++++++++++++++++ + .../Modules/webcodecs/WebCodecsVideoFrame.h | 12 ++-- + 3 files changed, 72 insertions(+), 6 deletions(-) + +diff --git a/Source/WebCore/CMakeLists.txt b/Source/WebCore/CMakeLists.txt +index beca51b714ec..d3b6ff21c7ae 100644 +--- a/Source/WebCore/CMakeLists.txt ++++ b/Source/WebCore/CMakeLists.txt +@@ -2855,6 +2855,8 @@ WEBKIT_COMPUTE_SOURCES(WebCore) + target_precompile_headers(WebCore PRIVATE WebCorePrefix.h) + + list(APPEND WebCore_PRIVATE_FRAMEWORK_HEADERS ++ ${WebCore_DERIVED_SOURCES_DIR}/SVGNames.h ++ + Modules/WebGPU/InternalAPI/WebGPU.serialization.in + + Modules/indexeddb/IndexedDB.serialization.in +diff --git a/Source/WebCore/Headers.cmake b/Source/WebCore/Headers.cmake +index cfe691a05770..e6ddf2d9cff2 100644 +--- a/Source/WebCore/Headers.cmake ++++ b/Source/WebCore/Headers.cmake +@@ -846,6 +846,7 @@ set(WebCore_PRIVATE_FRAMEWORK_HEADERS + css/CSSFontPaletteValuesRule.h + css/CSSGridIntegerRepeatValue.h + css/CSSGroupingRule.h ++ css/CSSImageValue.h + css/CSSImportRule.h + css/CSSLineBoxContainValue.h + css/CSSMediaRule.h +@@ -873,6 +874,7 @@ set(WebCore_PRIVATE_FRAMEWORK_HEADERS + css/CSSVariableData.h + css/CSSVariableReferenceValue.h + css/Counter.h ++ css/DOMMatrix2DInit.h + css/DeprecatedCSSOMCounter.h + css/DeprecatedCSSOMPrimitiveValue.h + css/DeprecatedCSSOMRGBColor.h +@@ -925,6 +927,7 @@ set(WebCore_PRIVATE_FRAMEWORK_HEADERS + + css/typedom/CSSKeywordValue.h + css/typedom/CSSNumericValue.h ++ css/typedom/CSSStyleImageValue.h + css/typedom/CSSStyleValue.h + + css/typedom/numeric/CSSNumericBaseType.h +@@ -2539,17 +2542,41 @@ set(WebCore_PRIVATE_FRAMEWORK_HEADERS + style/StyleValidity.h + style/Styleable.h + ++ svg/SVGAngle.h ++ svg/SVGAngleValue.h + svg/SVGElement.h ++ svg/SVGGraphicsElement.h ++ svg/SVGImageElement.h ++ svg/SVGImageLoader.h ++ svg/SVGLength.h + svg/SVGLengthContext.h ++ svg/SVGLengthList.h + svg/SVGLengthValue.h ++ svg/SVGLocatable.h ++ svg/SVGMarkerTypes.h ++ svg/SVGMatrix.h ++ svg/SVGNumber.h ++ svg/SVGNumberList.h + svg/SVGParserUtilities.h + svg/SVGParsingError.h + svg/SVGPathByteStream.h + svg/SVGPathConsumer.h ++ svg/SVGPathSeg.h ++ svg/SVGPathSegList.h + svg/SVGPathUtilities.h ++ svg/SVGPoint.h ++ svg/SVGPointList.h ++ svg/SVGPreserveAspectRatio.h + svg/SVGPreserveAspectRatioValue.h ++ svg/SVGRect.h + svg/SVGStringList.h + svg/SVGTests.h ++ svg/SVGTransform.h ++ svg/SVGTransformDistance.h ++ svg/SVGTransformList.h ++ svg/SVGTransformValue.h ++ svg/SVGTransformable.h ++ svg/SVGURIReference.h + svg/SVGUnitTypes.h + + svg/graphics/SVGImageCache.h +@@ -2557,11 +2584,48 @@ set(WebCore_PRIVATE_FRAMEWORK_HEADERS + svg/graphics/filters/SVGFilter.h + svg/graphics/filters/SVGFilterExpression.h + ++ svg/properties/SVGAnimatedDecoratedProperty.h ++ svg/properties/SVGAnimatedPrimitiveProperty.h ++ svg/properties/SVGAnimatedProperty.h ++ svg/properties/SVGAnimatedPropertyAccessor.h ++ svg/properties/SVGAnimatedPropertyAccessorImpl.h ++ svg/properties/SVGAnimatedPropertyAnimator.h ++ svg/properties/SVGAnimatedPropertyAnimatorImpl.h ++ svg/properties/SVGAnimatedPropertyImpl.h ++ svg/properties/SVGAnimatedPropertyList.h ++ svg/properties/SVGAnimatedPropertyPairAccessor.h ++ svg/properties/SVGAnimatedPropertyPairAccessorImpl.h ++ svg/properties/SVGAnimatedPropertyPairAnimator.h ++ svg/properties/SVGAnimatedPropertyPairAnimatorImpl.h ++ svg/properties/SVGAnimatedString.h ++ svg/properties/SVGAnimatedValueProperty.h ++ svg/properties/SVGAnimationAdditiveFunction.h ++ svg/properties/SVGAnimationAdditiveListFunction.h ++ svg/properties/SVGAnimationAdditiveListFunctionImpl.h ++ svg/properties/SVGAnimationAdditiveValueFunction.h ++ svg/properties/SVGAnimationAdditiveValueFunctionImpl.h ++ svg/properties/SVGAnimationDiscreteFunction.h ++ svg/properties/SVGAnimationDiscreteFunctionImpl.h ++ svg/properties/SVGAnimationFunction.h ++ svg/properties/SVGAttributeAnimator.h ++ svg/properties/SVGDecoratedEnumeration.h ++ svg/properties/SVGDecoratedPrimitive.h ++ svg/properties/SVGDecoratedProperty.h + svg/properties/SVGList.h ++ svg/properties/SVGMemberAccessor.h ++ svg/properties/SVGPointerMemberAccessor.h + svg/properties/SVGPrimitiveList.h + svg/properties/SVGProperty.h ++ svg/properties/SVGPropertyAccessor.h ++ svg/properties/SVGPropertyAccessorImpl.h ++ svg/properties/SVGPropertyList.h + svg/properties/SVGPropertyOwner.h ++ svg/properties/SVGPropertyOwnerRegistry.h ++ svg/properties/SVGPropertyRegistry.h + svg/properties/SVGPropertyTraits.h ++ svg/properties/SVGSharedPrimitiveProperty.h ++ svg/properties/SVGValueProperty.h ++ svg/properties/SVGValuePropertyList.h + + testing/MockGamepad.h + testing/MockGamepadProvider.h +diff --git a/Source/WebCore/Modules/webcodecs/WebCodecsVideoFrame.h b/Source/WebCore/Modules/webcodecs/WebCodecsVideoFrame.h +index 286a2a32a0a3..03b5908976f8 100644 +--- a/Source/WebCore/Modules/webcodecs/WebCodecsVideoFrame.h ++++ b/Source/WebCore/Modules/webcodecs/WebCodecsVideoFrame.h +@@ -27,10 +27,16 @@ + + #if ENABLE(WEB_CODECS) + ++#include "CSSStyleImageValue.h" + #include "ContextDestructionObserver.h" + #include "DOMRectReadOnly.h" ++#include "HTMLCanvasElement.h" ++#include "HTMLImageElement.h" ++#include "HTMLVideoElement.h" + #include "JSDOMPromiseDeferredForward.h" ++#include "OffscreenCanvas.h" + #include "PlaneLayout.h" ++#include "SVGImageElement.h" + #include "VideoColorSpaceInit.h" + #include "WebCodecsAlphaOption.h" + #include "WebCodecsVideoFrameData.h" +@@ -38,16 +44,10 @@ + namespace WebCore { + + class BufferSource; +-class CSSStyleImageValue; + class DOMRectReadOnly; +-class HTMLCanvasElement; +-class HTMLImageElement; +-class HTMLVideoElement; + class ImageBitmap; + class ImageBuffer; + class NativeImage; +-class OffscreenCanvas; +-class SVGImageElement; + class VideoColorSpace; + + template class ExceptionOr; +-- +2.46.2 + diff --git a/webkitgtk.spec b/webkitgtk.spec index bb08f6f..e997196 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -61,6 +61,9 @@ Source2: webkitgtk-keys.gpg # https://github.com/llvm/llvm-project/issues/108014 Patch: webkitgtk-skia-musttail.patch +# https://bugs.webkit.org/show_bug.cgi?id=280642 +Patch: llvm19.patch + BuildRequires: bison BuildRequires: bubblewrap BuildRequires: clang From 4037c02354c25db5b0fa80b4712db7ea0423111b Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Mon, 21 Oct 2024 13:45:45 -0500 Subject: [PATCH 136/200] Update to 2.46.2 --- llvm19.patch | 200 ---------------------------------- sources | 4 +- webkitgtk-skia-musttail.patch | 49 --------- webkitgtk.spec | 9 +- 4 files changed, 3 insertions(+), 259 deletions(-) delete mode 100644 llvm19.patch delete mode 100644 webkitgtk-skia-musttail.patch diff --git a/llvm19.patch b/llvm19.patch deleted file mode 100644 index 86aef9c..0000000 --- a/llvm19.patch +++ /dev/null @@ -1,200 +0,0 @@ -From 762e2cc7f1ff4e9e2834ecc7b7aaa4c933d06e5b Mon Sep 17 00:00:00 2001 -From: Michael Catanzaro -Date: Tue, 1 Oct 2024 11:43:31 -0500 -Subject: [PATCH] Cherry-pick db9c6a9f5548. - https://bugs.webkit.org/show_bug.cgi?id=276633 - -Build broken with LLVM 19 -https://bugs.webkit.org/show_bug.cgi?id=280642 - -Reviewed by NOBODY (OOPS!). - -We need to replace several forward declarations with #include -statements to avoid "member access into incomplete type" errors. This -has revealed that many SVG headers are missing from the framework -headers and so are not available to derived sources. I don't attempt to -fix this comprehensively; this is just the minimum required to fix the -build. - -* Source/WebCore/CMakeLists.txt: -* Source/WebCore/Headers.cmake: -* Source/WebCore/Modules/webcodecs/WebCodecsVideoFrame.h: ---- - Source/WebCore/CMakeLists.txt | 2 + - Source/WebCore/Headers.cmake | 64 +++++++++++++++++++ - .../Modules/webcodecs/WebCodecsVideoFrame.h | 12 ++-- - 3 files changed, 72 insertions(+), 6 deletions(-) - -diff --git a/Source/WebCore/CMakeLists.txt b/Source/WebCore/CMakeLists.txt -index beca51b714ec..d3b6ff21c7ae 100644 ---- a/Source/WebCore/CMakeLists.txt -+++ b/Source/WebCore/CMakeLists.txt -@@ -2855,6 +2855,8 @@ WEBKIT_COMPUTE_SOURCES(WebCore) - target_precompile_headers(WebCore PRIVATE WebCorePrefix.h) - - list(APPEND WebCore_PRIVATE_FRAMEWORK_HEADERS -+ ${WebCore_DERIVED_SOURCES_DIR}/SVGNames.h -+ - Modules/WebGPU/InternalAPI/WebGPU.serialization.in - - Modules/indexeddb/IndexedDB.serialization.in -diff --git a/Source/WebCore/Headers.cmake b/Source/WebCore/Headers.cmake -index cfe691a05770..e6ddf2d9cff2 100644 ---- a/Source/WebCore/Headers.cmake -+++ b/Source/WebCore/Headers.cmake -@@ -846,6 +846,7 @@ set(WebCore_PRIVATE_FRAMEWORK_HEADERS - css/CSSFontPaletteValuesRule.h - css/CSSGridIntegerRepeatValue.h - css/CSSGroupingRule.h -+ css/CSSImageValue.h - css/CSSImportRule.h - css/CSSLineBoxContainValue.h - css/CSSMediaRule.h -@@ -873,6 +874,7 @@ set(WebCore_PRIVATE_FRAMEWORK_HEADERS - css/CSSVariableData.h - css/CSSVariableReferenceValue.h - css/Counter.h -+ css/DOMMatrix2DInit.h - css/DeprecatedCSSOMCounter.h - css/DeprecatedCSSOMPrimitiveValue.h - css/DeprecatedCSSOMRGBColor.h -@@ -925,6 +927,7 @@ set(WebCore_PRIVATE_FRAMEWORK_HEADERS - - css/typedom/CSSKeywordValue.h - css/typedom/CSSNumericValue.h -+ css/typedom/CSSStyleImageValue.h - css/typedom/CSSStyleValue.h - - css/typedom/numeric/CSSNumericBaseType.h -@@ -2539,17 +2542,41 @@ set(WebCore_PRIVATE_FRAMEWORK_HEADERS - style/StyleValidity.h - style/Styleable.h - -+ svg/SVGAngle.h -+ svg/SVGAngleValue.h - svg/SVGElement.h -+ svg/SVGGraphicsElement.h -+ svg/SVGImageElement.h -+ svg/SVGImageLoader.h -+ svg/SVGLength.h - svg/SVGLengthContext.h -+ svg/SVGLengthList.h - svg/SVGLengthValue.h -+ svg/SVGLocatable.h -+ svg/SVGMarkerTypes.h -+ svg/SVGMatrix.h -+ svg/SVGNumber.h -+ svg/SVGNumberList.h - svg/SVGParserUtilities.h - svg/SVGParsingError.h - svg/SVGPathByteStream.h - svg/SVGPathConsumer.h -+ svg/SVGPathSeg.h -+ svg/SVGPathSegList.h - svg/SVGPathUtilities.h -+ svg/SVGPoint.h -+ svg/SVGPointList.h -+ svg/SVGPreserveAspectRatio.h - svg/SVGPreserveAspectRatioValue.h -+ svg/SVGRect.h - svg/SVGStringList.h - svg/SVGTests.h -+ svg/SVGTransform.h -+ svg/SVGTransformDistance.h -+ svg/SVGTransformList.h -+ svg/SVGTransformValue.h -+ svg/SVGTransformable.h -+ svg/SVGURIReference.h - svg/SVGUnitTypes.h - - svg/graphics/SVGImageCache.h -@@ -2557,11 +2584,48 @@ set(WebCore_PRIVATE_FRAMEWORK_HEADERS - svg/graphics/filters/SVGFilter.h - svg/graphics/filters/SVGFilterExpression.h - -+ svg/properties/SVGAnimatedDecoratedProperty.h -+ svg/properties/SVGAnimatedPrimitiveProperty.h -+ svg/properties/SVGAnimatedProperty.h -+ svg/properties/SVGAnimatedPropertyAccessor.h -+ svg/properties/SVGAnimatedPropertyAccessorImpl.h -+ svg/properties/SVGAnimatedPropertyAnimator.h -+ svg/properties/SVGAnimatedPropertyAnimatorImpl.h -+ svg/properties/SVGAnimatedPropertyImpl.h -+ svg/properties/SVGAnimatedPropertyList.h -+ svg/properties/SVGAnimatedPropertyPairAccessor.h -+ svg/properties/SVGAnimatedPropertyPairAccessorImpl.h -+ svg/properties/SVGAnimatedPropertyPairAnimator.h -+ svg/properties/SVGAnimatedPropertyPairAnimatorImpl.h -+ svg/properties/SVGAnimatedString.h -+ svg/properties/SVGAnimatedValueProperty.h -+ svg/properties/SVGAnimationAdditiveFunction.h -+ svg/properties/SVGAnimationAdditiveListFunction.h -+ svg/properties/SVGAnimationAdditiveListFunctionImpl.h -+ svg/properties/SVGAnimationAdditiveValueFunction.h -+ svg/properties/SVGAnimationAdditiveValueFunctionImpl.h -+ svg/properties/SVGAnimationDiscreteFunction.h -+ svg/properties/SVGAnimationDiscreteFunctionImpl.h -+ svg/properties/SVGAnimationFunction.h -+ svg/properties/SVGAttributeAnimator.h -+ svg/properties/SVGDecoratedEnumeration.h -+ svg/properties/SVGDecoratedPrimitive.h -+ svg/properties/SVGDecoratedProperty.h - svg/properties/SVGList.h -+ svg/properties/SVGMemberAccessor.h -+ svg/properties/SVGPointerMemberAccessor.h - svg/properties/SVGPrimitiveList.h - svg/properties/SVGProperty.h -+ svg/properties/SVGPropertyAccessor.h -+ svg/properties/SVGPropertyAccessorImpl.h -+ svg/properties/SVGPropertyList.h - svg/properties/SVGPropertyOwner.h -+ svg/properties/SVGPropertyOwnerRegistry.h -+ svg/properties/SVGPropertyRegistry.h - svg/properties/SVGPropertyTraits.h -+ svg/properties/SVGSharedPrimitiveProperty.h -+ svg/properties/SVGValueProperty.h -+ svg/properties/SVGValuePropertyList.h - - testing/MockGamepad.h - testing/MockGamepadProvider.h -diff --git a/Source/WebCore/Modules/webcodecs/WebCodecsVideoFrame.h b/Source/WebCore/Modules/webcodecs/WebCodecsVideoFrame.h -index 286a2a32a0a3..03b5908976f8 100644 ---- a/Source/WebCore/Modules/webcodecs/WebCodecsVideoFrame.h -+++ b/Source/WebCore/Modules/webcodecs/WebCodecsVideoFrame.h -@@ -27,10 +27,16 @@ - - #if ENABLE(WEB_CODECS) - -+#include "CSSStyleImageValue.h" - #include "ContextDestructionObserver.h" - #include "DOMRectReadOnly.h" -+#include "HTMLCanvasElement.h" -+#include "HTMLImageElement.h" -+#include "HTMLVideoElement.h" - #include "JSDOMPromiseDeferredForward.h" -+#include "OffscreenCanvas.h" - #include "PlaneLayout.h" -+#include "SVGImageElement.h" - #include "VideoColorSpaceInit.h" - #include "WebCodecsAlphaOption.h" - #include "WebCodecsVideoFrameData.h" -@@ -38,16 +44,10 @@ - namespace WebCore { - - class BufferSource; --class CSSStyleImageValue; - class DOMRectReadOnly; --class HTMLCanvasElement; --class HTMLImageElement; --class HTMLVideoElement; - class ImageBitmap; - class ImageBuffer; - class NativeImage; --class OffscreenCanvas; --class SVGImageElement; - class VideoColorSpace; - - template class ExceptionOr; --- -2.46.2 - diff --git a/sources b/sources index 1c0d823..529f464 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.46.1.tar.xz) = e1ac92305b1d1b034eea9be6aa22cfa260249562fa0af41f0ed5c76a36916bba432073e033f228978d84d0377f245642ff31cdec324565e83aa8c82d8ea0c1f5 -SHA512 (webkitgtk-2.46.1.tar.xz.asc) = a86b2f0d8dce366edeb15f64fd758a383e083224ecd98e3cc9635b590087444929f242ce83471611cb0cbda3227659758121aea46db34a8a3173f0c2f34243c9 +SHA512 (webkitgtk-2.46.2.tar.xz) = 2031b61a776135279cc557d4fcf4115e14e0c84b638f04871c3f8fd790b5f587cf1774ed93f42c72d4f60f17bd0488d94e49a101e12cda20c91548b858c26b1a +SHA512 (webkitgtk-2.46.2.tar.xz.asc) = 034d95f628ddb231938a96fc61bdbc004b6b21ae517ceb6a8d1f4ac08c2cfecac8667f8b78dcaf43b89ff36b624540db5c0c3fe6b0517f099d741bb24dc0e074 diff --git a/webkitgtk-skia-musttail.patch b/webkitgtk-skia-musttail.patch deleted file mode 100644 index f480d14..0000000 --- a/webkitgtk-skia-musttail.patch +++ /dev/null @@ -1,49 +0,0 @@ -diff -up webkitgtk-2.45.92/Source/ThirdParty/skia/include/private/base/SkFeatures.h.orig webkitgtk-2.45.92/Source/ThirdParty/skia/include/private/base/SkFeatures.h ---- webkitgtk-2.45.92/Source/ThirdParty/skia/include/private/base/SkFeatures.h.orig 2024-09-12 08:22:24.667260964 +0000 -+++ webkitgtk-2.45.92/Source/ThirdParty/skia/include/private/base/SkFeatures.h 2024-09-12 08:22:46.616832364 +0000 -@@ -69,6 +69,10 @@ - #define SK_CPU_LOONGARCH 1 - #endif - -+#if defined(__powerpc__) || defined (__powerpc64__) -+ #define SK_CPU_PPC 1 -+#endif -+ - /** - * SK_CPU_SSE_LEVEL - * -diff -up webkitgtk-2.45.92/Source/ThirdParty/skia/src/core/SkRasterPipeline.h.orig webkitgtk-2.45.92/Source/ThirdParty/skia/src/core/SkRasterPipeline.h ---- webkitgtk-2.45.92/Source/ThirdParty/skia/src/core/SkRasterPipeline.h.orig 2024-09-12 08:16:25.444163366 +0000 -+++ webkitgtk-2.45.92/Source/ThirdParty/skia/src/core/SkRasterPipeline.h 2024-09-12 08:16:43.603797893 +0000 -@@ -27,7 +27,7 @@ struct SkImageInfo; - struct skcms_TransferFunction; - - #if __has_cpp_attribute(clang::musttail) && !defined(__EMSCRIPTEN__) && !defined(SK_CPU_ARM32) && \ -- !defined(SK_CPU_LOONGARCH) -+ !defined(SK_CPU_LOONGARCH) && !defined(SK_CPU_PPC) - #define SK_HAS_MUSTTAIL 1 - #else - #define SK_HAS_MUSTTAIL 0 -diff -up webkitgtk-2.45.92/Source/ThirdParty/skia/modules/skcms/src/skcms_internals.h.orig webkitgtk-2.45.92/Source/ThirdParty/skia/modules/skcms/src/skcms_internals.h ---- webkitgtk-2.45.92/Source/ThirdParty/skia/modules/skcms/src/skcms_internals.h.orig 2024-09-12 08:49:09.985808211 +0000 -+++ webkitgtk-2.45.92/Source/ThirdParty/skia/modules/skcms/src/skcms_internals.h 2024-09-12 08:49:19.835612828 +0000 -@@ -48,6 +48,7 @@ extern "C" { - && !defined(__arm__) \ - && !defined(__riscv) \ - && !defined(__loongarch__) \ -+ && !defined(__powerpc__) \ - && !defined(_WIN32) && !defined(__SYMBIAN32__) - #define SKCMS_HAS_MUSTTAIL 1 - #endif -diff -up webkitgtk-2.45.92/Source/WTF/wtf/Compiler.h.orig webkitgtk-2.45.92/Source/WTF/wtf/Compiler.h ---- webkitgtk-2.45.92/Source/WTF/wtf/Compiler.h.orig 2024-09-12 09:14:10.775885415 +0000 -+++ webkitgtk-2.45.92/Source/WTF/wtf/Compiler.h 2024-09-12 09:15:27.264379291 +0000 -@@ -271,7 +271,7 @@ - /* MUST_TAIL_CALL */ - - #if !defined(MUST_TAIL_CALL) && defined(__cplusplus) && defined(__has_cpp_attribute) --#if __has_cpp_attribute(clang::musttail) -+#if __has_cpp_attribute(clang::musttail) && !defined(__powerpc__) - #define MUST_TAIL_CALL [[clang::musttail]] - #endif - #endif diff --git a/webkitgtk.spec b/webkitgtk.spec index e997196..3ca2341 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -19,7 +19,7 @@ %endif Name: webkitgtk -Version: 2.46.1 +Version: 2.46.2 Release: %autorelease Summary: GTK web content engine library @@ -57,13 +57,6 @@ Source1: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz.asc # $ gpg --export --export-options export-minimal 013A0127AC9C65B34FFA62526C1009B693975393 5AA3BC334FD7E3369E7C77B291C559DBE4C9123B > webkitgtk-keys.gpg Source2: webkitgtk-keys.gpg -# Work around a missing implementation of musttail in clang for ppc64le -# https://github.com/llvm/llvm-project/issues/108014 -Patch: webkitgtk-skia-musttail.patch - -# https://bugs.webkit.org/show_bug.cgi?id=280642 -Patch: llvm19.patch - BuildRequires: bison BuildRequires: bubblewrap BuildRequires: clang From 89ffd39bfe8e22069acd8ab57da7492ea3bb5845 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Mon, 21 Oct 2024 15:01:56 -0500 Subject: [PATCH 137/200] Add bundled Provides for simde and simdutf --- webkitgtk.spec | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/webkitgtk.spec b/webkitgtk.spec index 3ca2341..f5cbc75 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -233,6 +233,8 @@ This package contains developer documentation for webkit2gtk4.1. %package -n javascriptcoregtk6.0 Summary: JavaScript engine from webkitgtk6.0 +Provides: bundled(simde) +Provides: bundled(simdutf) Obsoletes: javascriptcoregtk5.0 < %{version}-%{release} %description -n javascriptcoregtk6.0 @@ -240,6 +242,8 @@ This package contains the JavaScript engine from webkitgtk6.0. %package -n javascriptcoregtk4.1 Summary: JavaScript engine from webkit2gtk4.1 +Provides: bundled(simde) +Provides: bundled(simdutf) Obsoletes: webkit2gtk4.1-jsc < %{version}-%{release} %description -n javascriptcoregtk4.1 From 50cae696b7f601ef6bb45ef1a85a60e28e458b27 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Tue, 29 Oct 2024 16:03:55 -0500 Subject: [PATCH 138/200] Update to 2.47.1 --- sources | 4 ++-- webkitgtk.spec | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/sources b/sources index 529f464..f661e1d 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.46.2.tar.xz) = 2031b61a776135279cc557d4fcf4115e14e0c84b638f04871c3f8fd790b5f587cf1774ed93f42c72d4f60f17bd0488d94e49a101e12cda20c91548b858c26b1a -SHA512 (webkitgtk-2.46.2.tar.xz.asc) = 034d95f628ddb231938a96fc61bdbc004b6b21ae517ceb6a8d1f4ac08c2cfecac8667f8b78dcaf43b89ff36b624540db5c0c3fe6b0517f099d741bb24dc0e074 +SHA512 (webkitgtk-2.47.1.tar.xz) = db822c27ba322b8a548699fd46581dce2e775f8ec665a75b2c66815ef06e02f574d0e8d61a24c2f1b51c8ce4a2f8700cb59321c38de22862745a87774b0ab18e +SHA512 (webkitgtk-2.47.1.tar.xz.asc) = d7c9575542f5032dcb5cfcc64babe63fad038f331dc9f0db70cfcd07fa5fc141c0332ff0dfddf1d47478e3b2ba246433336441d4372760f12be8af0e5d7f1395 diff --git a/webkitgtk.spec b/webkitgtk.spec index f5cbc75..84e9ae9 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -19,7 +19,7 @@ %endif Name: webkitgtk -Version: 2.46.2 +Version: 2.47.1 Release: %autorelease Summary: GTK web content engine library From 1efbf7b66a1cfe885e16c9cc1f3737a5b8d33c7b Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Wed, 30 Oct 2024 11:33:30 -0500 Subject: [PATCH 139/200] Attempt to fix build on i686 and ppc64le --- i686-build.patch | 45 +++++++++++++++++++++++++++++++++++ webkitgtk-skia-musttail.patch | 39 ++++++++++++++++++++++++++++++ webkitgtk.spec | 6 +++++ 3 files changed, 90 insertions(+) create mode 100644 i686-build.patch create mode 100644 webkitgtk-skia-musttail.patch diff --git a/i686-build.patch b/i686-build.patch new file mode 100644 index 0000000..a455671 --- /dev/null +++ b/i686-build.patch @@ -0,0 +1,45 @@ +From bda228aea58acc5f578f4a35ab6ce6a5fa7d6edf Mon Sep 17 00:00:00 2001 +From: Michael Catanzaro +Date: Wed, 30 Oct 2024 11:31:18 -0500 +Subject: [PATCH] REGRESSION(282580@main): Static assertions failing in + CalculationTree.h and CSSCalcTree.h on i686 + https://bugs.webkit.org/show_bug.cgi?id=282288 + +Reviewed by NOBODY (OOPS!). + +The assertions incorrectly expect the size of the Child variants to be +larger than they actually are. This should be fine because presumably +the goal of the assertions is just to ensure the variants are small. + +* Source/WebCore/css/calc/CSSCalcTree.h: +* Source/WebCore/platform/calc/CalculationTree.h: +--- + Source/WebCore/css/calc/CSSCalcTree.h | 2 +- + Source/WebCore/platform/calc/CalculationTree.h | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/Source/WebCore/css/calc/CSSCalcTree.h b/Source/WebCore/css/calc/CSSCalcTree.h +index 4e5cfc1f75a0f..ee04eb99521a4 100644 +--- a/Source/WebCore/css/calc/CSSCalcTree.h ++++ b/Source/WebCore/css/calc/CSSCalcTree.h +@@ -768,7 +768,7 @@ struct AnchorSize { + + // MARK: Size assertions + +-static_assert(sizeof(Child) == 24); ++static_assert(sizeof(Child) <= 24, "Child should stay small"); + + // MARK: Reverse mappings + +diff --git a/Source/WebCore/platform/calc/CalculationTree.h b/Source/WebCore/platform/calc/CalculationTree.h +index 78f5d528f7d79..eead8a47333ff 100644 +--- a/Source/WebCore/platform/calc/CalculationTree.h ++++ b/Source/WebCore/platform/calc/CalculationTree.h +@@ -509,7 +509,7 @@ struct Blend { + bool operator==(const Blend&) const = default; + }; + +-static_assert(sizeof(Child) == 16); ++static_assert(sizeof(Child) <= 16, "Child should stay small"); + + // MARK: Construction diff --git a/webkitgtk-skia-musttail.patch b/webkitgtk-skia-musttail.patch new file mode 100644 index 0000000..440423d --- /dev/null +++ b/webkitgtk-skia-musttail.patch @@ -0,0 +1,39 @@ +diff -up webkitgtk-2.45.92/Source/ThirdParty/skia/include/private/base/SkFeatures.h.orig webkitgtk-2.45.92/Source/ThirdParty/skia/include/private/base/SkFeatures.h +--- webkitgtk-2.45.92/Source/ThirdParty/skia/include/private/base/SkFeatures.h.orig 2024-09-12 08:22:24.667260964 +0000 ++++ webkitgtk-2.45.92/Source/ThirdParty/skia/include/private/base/SkFeatures.h 2024-09-12 08:22:46.616832364 +0000 +@@ -69,6 +69,10 @@ + #define SK_CPU_LOONGARCH 1 + #endif + ++#if defined(__powerpc__) || defined (__powerpc64__) ++ #define SK_CPU_PPC 1 ++#endif ++ + /** + * SK_CPU_SSE_LEVEL + * +diff --git a/Source/ThirdParty/skia/src/core/SkRasterPipeline.h b/Source/ThirdParty/skia/src/core/SkRasterPipeline.h +index 55920612c8c2..59fe250f0fce 100644 +--- a/Source/ThirdParty/skia/src/core/SkRasterPipeline.h ++++ b/Source/ThirdParty/skia/src/core/SkRasterPipeline.h +@@ -27,7 +27,8 @@ struct SkImageInfo; + struct skcms_TransferFunction; + + #if __has_cpp_attribute(clang::musttail) && !defined(__EMSCRIPTEN__) && !defined(SK_CPU_ARM32) && \ +- !defined(SK_CPU_LOONGARCH) && !(defined(_WIN32) && defined(SK_BUILD_FOR_ANDROID_FRAMEWORK)) ++ !defined(SK_CPU_LOONGARCH) && !(defined(_WIN32) && defined(SK_BUILD_FOR_ANDROID_FRAMEWORK)) && \ ++ !defined(SK_CPU_PPC) + // [[clang::musttail]] is disabled for the Android version of Skia running on Windows as it + // causes crashes (This is probably related to http://crbug.com/1505442). + #define SK_HAS_MUSTTAIL 1 +diff -up webkitgtk-2.45.92/Source/ThirdParty/skia/modules/skcms/src/skcms_internals.h.orig webkitgtk-2.45.92/Source/ThirdParty/skia/modules/skcms/src/skcms_internals.h +--- webkitgtk-2.45.92/Source/ThirdParty/skia/modules/skcms/src/skcms_internals.h.orig 2024-09-12 08:49:09.985808211 +0000 ++++ webkitgtk-2.45.92/Source/ThirdParty/skia/modules/skcms/src/skcms_internals.h 2024-09-12 08:49:19.835612828 +0000 +@@ -48,6 +48,7 @@ extern "C" { + && !defined(__arm__) \ + && !defined(__riscv) \ + && !defined(__loongarch__) \ ++ && !defined(__powerpc__) \ + && !defined(_WIN32) && !defined(__SYMBIAN32__) + #define SKCMS_HAS_MUSTTAIL 1 + #endif diff --git a/webkitgtk.spec b/webkitgtk.spec index 84e9ae9..b5f553e 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -57,6 +57,12 @@ Source1: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz.asc # $ gpg --export --export-options export-minimal 013A0127AC9C65B34FFA62526C1009B693975393 5AA3BC334FD7E3369E7C77B291C559DBE4C9123B > webkitgtk-keys.gpg Source2: webkitgtk-keys.gpg +# https://github.com/llvm/llvm-project/issues/108014 +Patch: webkitgtk-skia-musttail.patch + +# https://bugs.webkit.org/show_bug.cgi?id=282288 +Patch: i686-build.patch + BuildRequires: bison BuildRequires: bubblewrap BuildRequires: clang From 1da6cf595e9b90797c8f6f7866595878f25d24bb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Miroslav=20Such=C3=BD?= Date: Fri, 8 Nov 2024 11:31:05 +0100 Subject: [PATCH 140/200] correct license formula add missing OR operator --- webkitgtk.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/webkitgtk.spec b/webkitgtk.spec index b5f553e..800d96a 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -39,7 +39,7 @@ Summary: GTK web content engine library # Source/ThirdParty/ANGLE/tools/flex-bison/third_party/m4sugar/m4sugar.m4 is GPL-3.0-only WITH Autoconf-exception-3.0 # Source/ThirdParty/pdfjs/web/images/annotation-paperclip.svg is MPL-2.0i # Source/ThirdParty/pdfjs/web/standard_fonts/LICENSE_LIBERATION is OFL-1.1 -# Source/ThirdParty/xdgmime/ is AFL-2.0 GPL-2.0-or-later +# Source/ThirdParty/xdgmime/ is AFL-2.0 OR GPL-2.0-or-later # Source/WebCore/dom/PseudoElement.h is BSD-Source-Code # Source/WebCore/dom/SecurityContext.cpp is BSD-2-Clause-Views # Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp is LGPL-2.1-or-later @@ -48,7 +48,7 @@ Summary: GTK web content engine library # Source/WTF/icu/LICENSE is ICU # Source/WTF/wtf/Markable.h is BSL-1.0 # The license tag and above comment is up to date as of WebKitGTK 2.42.2. -License: LGPL-2.1-only AND BSD-2-Clause AND BSD-3-Clause AND ISC AND bzip2-1.0.6 AND NCSA AND MIT AND GPL-2.0-only AND MPL-1.1 AND SunPro AND Unicode-TOU AND Apache-2.0 AND GPL-3.0-or-later WITH Bison-exception-2.2 AND GPL-3.0-only WITH Autoconf-exception-3.0 AND MPL-2.0 AND OFL-1.1 AND (AFL-2.0 GPL-2.0-or-later) AND BSD-Source-Code AND BSD-2-Clause-Views AND LGPL-2.1-or-later AND (NCSA OR MIT) AND Apache-2.0 WITH LLVM-exception AND ICU AND BSL-1.0 +License: LGPL-2.1-only AND BSD-2-Clause AND BSD-3-Clause AND ISC AND bzip2-1.0.6 AND NCSA AND MIT AND GPL-2.0-only AND MPL-1.1 AND SunPro AND Unicode-TOU AND Apache-2.0 AND GPL-3.0-or-later WITH Bison-exception-2.2 AND GPL-3.0-only WITH Autoconf-exception-3.0 AND MPL-2.0 AND OFL-1.1 AND (AFL-2.0 OR GPL-2.0-or-later) AND BSD-Source-Code AND BSD-2-Clause-Views AND LGPL-2.1-or-later AND (NCSA OR MIT) AND Apache-2.0 WITH LLVM-exception AND ICU AND BSL-1.0 URL: https://www.webkitgtk.org/ Source0: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz Source1: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz.asc From 4026e0ecdcca222fd9a46cf12f9f4297c81b0d79 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Tue, 26 Nov 2024 14:56:09 -0600 Subject: [PATCH 141/200] Upgrade to 2.47.2 --- i686-build.patch | 45 ----------------------------------- sources | 4 ++-- webkitgtk-skia-musttail.patch | 39 ------------------------------ webkitgtk.spec | 9 ++----- 4 files changed, 4 insertions(+), 93 deletions(-) delete mode 100644 i686-build.patch delete mode 100644 webkitgtk-skia-musttail.patch diff --git a/i686-build.patch b/i686-build.patch deleted file mode 100644 index a455671..0000000 --- a/i686-build.patch +++ /dev/null @@ -1,45 +0,0 @@ -From bda228aea58acc5f578f4a35ab6ce6a5fa7d6edf Mon Sep 17 00:00:00 2001 -From: Michael Catanzaro -Date: Wed, 30 Oct 2024 11:31:18 -0500 -Subject: [PATCH] REGRESSION(282580@main): Static assertions failing in - CalculationTree.h and CSSCalcTree.h on i686 - https://bugs.webkit.org/show_bug.cgi?id=282288 - -Reviewed by NOBODY (OOPS!). - -The assertions incorrectly expect the size of the Child variants to be -larger than they actually are. This should be fine because presumably -the goal of the assertions is just to ensure the variants are small. - -* Source/WebCore/css/calc/CSSCalcTree.h: -* Source/WebCore/platform/calc/CalculationTree.h: ---- - Source/WebCore/css/calc/CSSCalcTree.h | 2 +- - Source/WebCore/platform/calc/CalculationTree.h | 2 +- - 2 files changed, 2 insertions(+), 2 deletions(-) - -diff --git a/Source/WebCore/css/calc/CSSCalcTree.h b/Source/WebCore/css/calc/CSSCalcTree.h -index 4e5cfc1f75a0f..ee04eb99521a4 100644 ---- a/Source/WebCore/css/calc/CSSCalcTree.h -+++ b/Source/WebCore/css/calc/CSSCalcTree.h -@@ -768,7 +768,7 @@ struct AnchorSize { - - // MARK: Size assertions - --static_assert(sizeof(Child) == 24); -+static_assert(sizeof(Child) <= 24, "Child should stay small"); - - // MARK: Reverse mappings - -diff --git a/Source/WebCore/platform/calc/CalculationTree.h b/Source/WebCore/platform/calc/CalculationTree.h -index 78f5d528f7d79..eead8a47333ff 100644 ---- a/Source/WebCore/platform/calc/CalculationTree.h -+++ b/Source/WebCore/platform/calc/CalculationTree.h -@@ -509,7 +509,7 @@ struct Blend { - bool operator==(const Blend&) const = default; - }; - --static_assert(sizeof(Child) == 16); -+static_assert(sizeof(Child) <= 16, "Child should stay small"); - - // MARK: Construction diff --git a/sources b/sources index f661e1d..5b4b48b 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.47.1.tar.xz) = db822c27ba322b8a548699fd46581dce2e775f8ec665a75b2c66815ef06e02f574d0e8d61a24c2f1b51c8ce4a2f8700cb59321c38de22862745a87774b0ab18e -SHA512 (webkitgtk-2.47.1.tar.xz.asc) = d7c9575542f5032dcb5cfcc64babe63fad038f331dc9f0db70cfcd07fa5fc141c0332ff0dfddf1d47478e3b2ba246433336441d4372760f12be8af0e5d7f1395 +SHA512 (webkitgtk-2.47.2.tar.xz) = f822b3c7da5d3a3af8e2d263cbdb61819d2b7076c2cf0f8b8ff250e7b738a8f8271ea6e22d61651074033b2d5a0b35bd09f5b7aef35dd742252a31fa16d6a41b +SHA512 (webkitgtk-2.47.2.tar.xz.asc) = 809e16bbadfde896b2180ad500be24acc96aa29d15fe238d77a1096f1eedce40f88e9afe97fd506f81362c5a4a226219f5e9b2feb04a3712882be2fa3fac13aa diff --git a/webkitgtk-skia-musttail.patch b/webkitgtk-skia-musttail.patch deleted file mode 100644 index 440423d..0000000 --- a/webkitgtk-skia-musttail.patch +++ /dev/null @@ -1,39 +0,0 @@ -diff -up webkitgtk-2.45.92/Source/ThirdParty/skia/include/private/base/SkFeatures.h.orig webkitgtk-2.45.92/Source/ThirdParty/skia/include/private/base/SkFeatures.h ---- webkitgtk-2.45.92/Source/ThirdParty/skia/include/private/base/SkFeatures.h.orig 2024-09-12 08:22:24.667260964 +0000 -+++ webkitgtk-2.45.92/Source/ThirdParty/skia/include/private/base/SkFeatures.h 2024-09-12 08:22:46.616832364 +0000 -@@ -69,6 +69,10 @@ - #define SK_CPU_LOONGARCH 1 - #endif - -+#if defined(__powerpc__) || defined (__powerpc64__) -+ #define SK_CPU_PPC 1 -+#endif -+ - /** - * SK_CPU_SSE_LEVEL - * -diff --git a/Source/ThirdParty/skia/src/core/SkRasterPipeline.h b/Source/ThirdParty/skia/src/core/SkRasterPipeline.h -index 55920612c8c2..59fe250f0fce 100644 ---- a/Source/ThirdParty/skia/src/core/SkRasterPipeline.h -+++ b/Source/ThirdParty/skia/src/core/SkRasterPipeline.h -@@ -27,7 +27,8 @@ struct SkImageInfo; - struct skcms_TransferFunction; - - #if __has_cpp_attribute(clang::musttail) && !defined(__EMSCRIPTEN__) && !defined(SK_CPU_ARM32) && \ -- !defined(SK_CPU_LOONGARCH) && !(defined(_WIN32) && defined(SK_BUILD_FOR_ANDROID_FRAMEWORK)) -+ !defined(SK_CPU_LOONGARCH) && !(defined(_WIN32) && defined(SK_BUILD_FOR_ANDROID_FRAMEWORK)) && \ -+ !defined(SK_CPU_PPC) - // [[clang::musttail]] is disabled for the Android version of Skia running on Windows as it - // causes crashes (This is probably related to http://crbug.com/1505442). - #define SK_HAS_MUSTTAIL 1 -diff -up webkitgtk-2.45.92/Source/ThirdParty/skia/modules/skcms/src/skcms_internals.h.orig webkitgtk-2.45.92/Source/ThirdParty/skia/modules/skcms/src/skcms_internals.h ---- webkitgtk-2.45.92/Source/ThirdParty/skia/modules/skcms/src/skcms_internals.h.orig 2024-09-12 08:49:09.985808211 +0000 -+++ webkitgtk-2.45.92/Source/ThirdParty/skia/modules/skcms/src/skcms_internals.h 2024-09-12 08:49:19.835612828 +0000 -@@ -48,6 +48,7 @@ extern "C" { - && !defined(__arm__) \ - && !defined(__riscv) \ - && !defined(__loongarch__) \ -+ && !defined(__powerpc__) \ - && !defined(_WIN32) && !defined(__SYMBIAN32__) - #define SKCMS_HAS_MUSTTAIL 1 - #endif diff --git a/webkitgtk.spec b/webkitgtk.spec index 800d96a..ff548db 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -19,7 +19,7 @@ %endif Name: webkitgtk -Version: 2.47.1 +Version: 2.47.2 Release: %autorelease Summary: GTK web content engine library @@ -57,17 +57,12 @@ Source1: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz.asc # $ gpg --export --export-options export-minimal 013A0127AC9C65B34FFA62526C1009B693975393 5AA3BC334FD7E3369E7C77B291C559DBE4C9123B > webkitgtk-keys.gpg Source2: webkitgtk-keys.gpg -# https://github.com/llvm/llvm-project/issues/108014 -Patch: webkitgtk-skia-musttail.patch - -# https://bugs.webkit.org/show_bug.cgi?id=282288 -Patch: i686-build.patch - BuildRequires: bison BuildRequires: bubblewrap BuildRequires: clang BuildRequires: cmake BuildRequires: flex +BuildRequires: flite-devel BuildRequires: gettext BuildRequires: gi-docgen BuildRequires: git From 5085babe1ac3e8e7d53d9d3c26f05620c6a500b9 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Wed, 27 Nov 2024 13:35:54 -0600 Subject: [PATCH 142/200] Fix build on i686 --- i686-build.patch | 34 ++++++++++++++++++++++++++++++++++ webkitgtk.spec | 3 +++ 2 files changed, 37 insertions(+) create mode 100644 i686-build.patch diff --git a/i686-build.patch b/i686-build.patch new file mode 100644 index 0000000..6fe594b --- /dev/null +++ b/i686-build.patch @@ -0,0 +1,34 @@ +diff --git a/Source/WebCore/svg/SVGToOTFFontConversion.cpp b/Source/WebCore/svg/SVGToOTFFontConversion.cpp +index 73bb3f90c3ec..418067b1d93d 100644 +--- a/Source/WebCore/svg/SVGToOTFFontConversion.cpp ++++ b/Source/WebCore/svg/SVGToOTFFontConversion.cpp +@@ -166,10 +166,10 @@ private: + + void append32BitCode(ASCIILiteral code) + { +- m_result.append(code[0]); +- m_result.append(code[1]); +- m_result.append(code[2]); +- m_result.append(code[3]); ++ m_result.append(code[0UZ]); ++ m_result.append(code[1UZ]); ++ m_result.append(code[2UZ]); ++ m_result.append(code[3UZ]); + } + + void append16(uint16_t value) +@@ -1505,10 +1505,10 @@ void SVGToOTFFontConverter::appendTable(ASCIILiteral identifier, FontAppendingFu + m_result.append(0); + ASSERT(isFourByteAligned(m_result.size())); + size_t directoryEntryOffset = headerSize + m_tablesAppendedCount * directoryEntrySize; +- m_result[directoryEntryOffset] = identifier[0]; +- m_result[directoryEntryOffset + 1] = identifier[1]; +- m_result[directoryEntryOffset + 2] = identifier[2]; +- m_result[directoryEntryOffset + 3] = identifier[3]; ++ m_result[directoryEntryOffset] = identifier[0UZ]; ++ m_result[directoryEntryOffset + 1] = identifier[1UZ]; ++ m_result[directoryEntryOffset + 2] = identifier[2UZ]; ++ m_result[directoryEntryOffset + 3] = identifier[3UZ]; + overwrite32(directoryEntryOffset + 4, calculateChecksum(offset, m_result.size())); + overwrite32(directoryEntryOffset + 8, offset); + overwrite32(directoryEntryOffset + 12, unpaddedSize); diff --git a/webkitgtk.spec b/webkitgtk.spec index ff548db..43b333a 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -57,6 +57,9 @@ Source1: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz.asc # $ gpg --export --export-options export-minimal 013A0127AC9C65B34FFA62526C1009B693975393 5AA3BC334FD7E3369E7C77B291C559DBE4C9123B > webkitgtk-keys.gpg Source2: webkitgtk-keys.gpg +# https://bugs.webkit.org/show_bug.cgi?id=283768 +Patch: i686-build.patch + BuildRequires: bison BuildRequires: bubblewrap BuildRequires: clang From a75df5ef71f9db7f25cffd1fc3f8ea9919dd01af Mon Sep 17 00:00:00 2001 From: Mamoru TASAKA Date: Mon, 2 Dec 2024 07:02:18 +0900 Subject: [PATCH 143/200] Add BR: rubygem(getoptlong) explicitly for ruby3.4 --- webkitgtk.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/webkitgtk.spec b/webkitgtk.spec index 43b333a..85e97e8 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -82,6 +82,7 @@ BuildRequires: perl(bigint) BuildRequires: python3 BuildRequires: ruby BuildRequires: rubygems +BuildRequires: rubygem(getoptlong) BuildRequires: rubygem-json BuildRequires: unifdef BuildRequires: xdg-dbus-proxy From e054a63d21b6cdc809b40993f0e6c0bf7e71dc28 Mon Sep 17 00:00:00 2001 From: Pete Walter Date: Fri, 6 Dec 2024 16:26:50 +0000 Subject: [PATCH 144/200] Rebuild for ICU 76 From 31ae9e612f2cf28080581536f126d6227d80e6eb Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sun, 19 Jan 2025 14:52:38 +0000 Subject: [PATCH 145/200] Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild From 59dcd2129a725511d11d0e6cb94f550267b1254f Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Thu, 23 Jan 2025 13:04:03 -0600 Subject: [PATCH 146/200] Update to 2.47.3 --- i686-build.patch | 34 ---------------------------------- ipint-linker-error.patch | 13 +++++++++++++ sources | 4 ++-- webkitgtk.spec | 10 ++++++---- 4 files changed, 21 insertions(+), 40 deletions(-) delete mode 100644 i686-build.patch create mode 100644 ipint-linker-error.patch diff --git a/i686-build.patch b/i686-build.patch deleted file mode 100644 index 6fe594b..0000000 --- a/i686-build.patch +++ /dev/null @@ -1,34 +0,0 @@ -diff --git a/Source/WebCore/svg/SVGToOTFFontConversion.cpp b/Source/WebCore/svg/SVGToOTFFontConversion.cpp -index 73bb3f90c3ec..418067b1d93d 100644 ---- a/Source/WebCore/svg/SVGToOTFFontConversion.cpp -+++ b/Source/WebCore/svg/SVGToOTFFontConversion.cpp -@@ -166,10 +166,10 @@ private: - - void append32BitCode(ASCIILiteral code) - { -- m_result.append(code[0]); -- m_result.append(code[1]); -- m_result.append(code[2]); -- m_result.append(code[3]); -+ m_result.append(code[0UZ]); -+ m_result.append(code[1UZ]); -+ m_result.append(code[2UZ]); -+ m_result.append(code[3UZ]); - } - - void append16(uint16_t value) -@@ -1505,10 +1505,10 @@ void SVGToOTFFontConverter::appendTable(ASCIILiteral identifier, FontAppendingFu - m_result.append(0); - ASSERT(isFourByteAligned(m_result.size())); - size_t directoryEntryOffset = headerSize + m_tablesAppendedCount * directoryEntrySize; -- m_result[directoryEntryOffset] = identifier[0]; -- m_result[directoryEntryOffset + 1] = identifier[1]; -- m_result[directoryEntryOffset + 2] = identifier[2]; -- m_result[directoryEntryOffset + 3] = identifier[3]; -+ m_result[directoryEntryOffset] = identifier[0UZ]; -+ m_result[directoryEntryOffset + 1] = identifier[1UZ]; -+ m_result[directoryEntryOffset + 2] = identifier[2UZ]; -+ m_result[directoryEntryOffset + 3] = identifier[3UZ]; - overwrite32(directoryEntryOffset + 4, calculateChecksum(offset, m_result.size())); - overwrite32(directoryEntryOffset + 8, offset); - overwrite32(directoryEntryOffset + 12, unpaddedSize); diff --git a/ipint-linker-error.patch b/ipint-linker-error.patch new file mode 100644 index 0000000..7dbf3dc --- /dev/null +++ b/ipint-linker-error.patch @@ -0,0 +1,13 @@ +diff --git a/Source/JavaScriptCore/wasm/WasmIPIntSlowPaths.h b/Source/JavaScriptCore/wasm/WasmIPIntSlowPaths.h +index d9d51cf03f0c..9d4c249d8cb1 100644 +--- a/Source/JavaScriptCore/wasm/WasmIPIntSlowPaths.h ++++ b/Source/JavaScriptCore/wasm/WasmIPIntSlowPaths.h +@@ -111,7 +111,7 @@ WASM_IPINT_EXTERN_CPP_HIDDEN_DECL(call_indirect, CallFrame* callFrame, Wasm::Fun + // We can't use FunctionSpaceIndex here since ARMv7 ABI always passes structs on th stack... + WASM_IPINT_EXTERN_CPP_HIDDEN_DECL(prepare_call, unsigned functionSpaceIndex, EncodedJSValue* callee); + WASM_IPINT_EXTERN_CPP_HIDDEN_DECL(prepare_call_indirect, CallFrame* callFrame, Wasm::FunctionSpaceIndex* functionIndex, CallIndirectMetadata* call); +-WASM_IPINT_EXTERN_CPP_DECL(prepare_call_ref, CallFrame*, Wasm::TypeIndex, IPIntStackEntry*); ++WASM_IPINT_EXTERN_CPP_HIDDEN_DECL(prepare_call_ref, CallFrame*, Wasm::TypeIndex, IPIntStackEntry*); + + WASM_IPINT_EXTERN_CPP_HIDDEN_DECL(set_global_ref, uint32_t globalIndex, JSValue value); + WASM_IPINT_EXTERN_CPP_HIDDEN_DECL(get_global_64, unsigned); diff --git a/sources b/sources index 5b4b48b..22e2db0 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.47.2.tar.xz) = f822b3c7da5d3a3af8e2d263cbdb61819d2b7076c2cf0f8b8ff250e7b738a8f8271ea6e22d61651074033b2d5a0b35bd09f5b7aef35dd742252a31fa16d6a41b -SHA512 (webkitgtk-2.47.2.tar.xz.asc) = 809e16bbadfde896b2180ad500be24acc96aa29d15fe238d77a1096f1eedce40f88e9afe97fd506f81362c5a4a226219f5e9b2feb04a3712882be2fa3fac13aa +SHA512 (webkitgtk-2.47.3.tar.xz) = 85cfc189025f97b14c2fb720f1d2c37f295d08a365f385b6ce2828718cfec94ca2eefc60a3c0636f17684165f2ef7c7c925e0280d16f715d997a251ec2064c6f +SHA512 (webkitgtk-2.47.3.tar.xz.asc) = 16bd1a2a2f2946673ea0932b15ccf0c8278742b4e3fcbb56869f20ace8ae4033cb5a739ba134be7f1cecf536714f1f23d34db6610b45709652148389df8331bc diff --git a/webkitgtk.spec b/webkitgtk.spec index 85e97e8..ce55a34 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -11,7 +11,8 @@ %bcond_without docs # Clang is preferred: https://skia.org/docs/user/build/#supported-and-preferred-compilers -%global toolchain clang +# But it is broken due to https://bugzilla.redhat.com/show_bug.cgi?id=2341532 +#%%global toolchain clang # We run out of memory if building with LTO enabled on i686. %ifarch %{ix86} @@ -19,7 +20,7 @@ %endif Name: webkitgtk -Version: 2.47.2 +Version: 2.47.3 Release: %autorelease Summary: GTK web content engine library @@ -57,8 +58,8 @@ Source1: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz.asc # $ gpg --export --export-options export-minimal 013A0127AC9C65B34FFA62526C1009B693975393 5AA3BC334FD7E3369E7C77B291C559DBE4C9123B > webkitgtk-keys.gpg Source2: webkitgtk-keys.gpg -# https://bugs.webkit.org/show_bug.cgi?id=283768 -Patch: i686-build.patch +# https://bugs.webkit.org/show_bug.cgi?id=286433 +Patch: ipint-linker-error.patch BuildRequires: bison BuildRequires: bubblewrap @@ -92,6 +93,7 @@ BuildRequires: pkgconfig(cairo) BuildRequires: pkgconfig(egl) BuildRequires: pkgconfig(enchant-2) BuildRequires: pkgconfig(epoxy) +BuildRequires: pkgconfig(expat) BuildRequires: pkgconfig(fontconfig) BuildRequires: pkgconfig(freetype2) BuildRequires: pkgconfig(gbm) From b34411c4e169f76243af4ca8e969e0d1ff4cd87b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9rgio=20M=2E=20Basto?= Date: Sun, 2 Feb 2025 20:10:34 +0000 Subject: [PATCH 147/200] Rebuild for jpegxl (libjxl) 0.11.1 From b474392c33ea77f59470b73f2dc49da0a0e9ded4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Robert-Andr=C3=A9=20Mauchin?= Date: Sun, 9 Feb 2025 18:50:06 +0100 Subject: [PATCH 148/200] Restore clang toolchain --- webkitgtk.spec | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/webkitgtk.spec b/webkitgtk.spec index ce55a34..90d49df 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -11,8 +11,7 @@ %bcond_without docs # Clang is preferred: https://skia.org/docs/user/build/#supported-and-preferred-compilers -# But it is broken due to https://bugzilla.redhat.com/show_bug.cgi?id=2341532 -#%%global toolchain clang +%global toolchain clang # We run out of memory if building with LTO enabled on i686. %ifarch %{ix86} From 8e0b9e767909af78835dce021e40ee1fe64e8312 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Tue, 11 Feb 2025 11:14:28 -0600 Subject: [PATCH 149/200] Update to 2.47.4 --- ipint-linker-error.patch | 13 ------------- sources | 4 ++-- webkitgtk.spec | 5 +---- 3 files changed, 3 insertions(+), 19 deletions(-) delete mode 100644 ipint-linker-error.patch diff --git a/ipint-linker-error.patch b/ipint-linker-error.patch deleted file mode 100644 index 7dbf3dc..0000000 --- a/ipint-linker-error.patch +++ /dev/null @@ -1,13 +0,0 @@ -diff --git a/Source/JavaScriptCore/wasm/WasmIPIntSlowPaths.h b/Source/JavaScriptCore/wasm/WasmIPIntSlowPaths.h -index d9d51cf03f0c..9d4c249d8cb1 100644 ---- a/Source/JavaScriptCore/wasm/WasmIPIntSlowPaths.h -+++ b/Source/JavaScriptCore/wasm/WasmIPIntSlowPaths.h -@@ -111,7 +111,7 @@ WASM_IPINT_EXTERN_CPP_HIDDEN_DECL(call_indirect, CallFrame* callFrame, Wasm::Fun - // We can't use FunctionSpaceIndex here since ARMv7 ABI always passes structs on th stack... - WASM_IPINT_EXTERN_CPP_HIDDEN_DECL(prepare_call, unsigned functionSpaceIndex, EncodedJSValue* callee); - WASM_IPINT_EXTERN_CPP_HIDDEN_DECL(prepare_call_indirect, CallFrame* callFrame, Wasm::FunctionSpaceIndex* functionIndex, CallIndirectMetadata* call); --WASM_IPINT_EXTERN_CPP_DECL(prepare_call_ref, CallFrame*, Wasm::TypeIndex, IPIntStackEntry*); -+WASM_IPINT_EXTERN_CPP_HIDDEN_DECL(prepare_call_ref, CallFrame*, Wasm::TypeIndex, IPIntStackEntry*); - - WASM_IPINT_EXTERN_CPP_HIDDEN_DECL(set_global_ref, uint32_t globalIndex, JSValue value); - WASM_IPINT_EXTERN_CPP_HIDDEN_DECL(get_global_64, unsigned); diff --git a/sources b/sources index 22e2db0..44eeee9 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.47.3.tar.xz) = 85cfc189025f97b14c2fb720f1d2c37f295d08a365f385b6ce2828718cfec94ca2eefc60a3c0636f17684165f2ef7c7c925e0280d16f715d997a251ec2064c6f -SHA512 (webkitgtk-2.47.3.tar.xz.asc) = 16bd1a2a2f2946673ea0932b15ccf0c8278742b4e3fcbb56869f20ace8ae4033cb5a739ba134be7f1cecf536714f1f23d34db6610b45709652148389df8331bc +SHA512 (webkitgtk-2.47.4.tar.xz) = f063355008326d99eff34301ad96c129cc89946d9bf22a064c89066f1b699293d822436827a39b7e30ac2786f831e198cd643e992706e788492df345df5491fe +SHA512 (webkitgtk-2.47.4.tar.xz.asc) = 6d7f55cad41a4863fecabdc8408e3d26084035c7f57d4223d53bdb661d18132eea1b2845eccb626fa701d3df3b2cddf42557982167f8b9d186bf16742c6bce68 diff --git a/webkitgtk.spec b/webkitgtk.spec index 90d49df..c72d359 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -19,7 +19,7 @@ %endif Name: webkitgtk -Version: 2.47.3 +Version: 2.47.4 Release: %autorelease Summary: GTK web content engine library @@ -57,9 +57,6 @@ Source1: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz.asc # $ gpg --export --export-options export-minimal 013A0127AC9C65B34FFA62526C1009B693975393 5AA3BC334FD7E3369E7C77B291C559DBE4C9123B > webkitgtk-keys.gpg Source2: webkitgtk-keys.gpg -# https://bugs.webkit.org/show_bug.cgi?id=286433 -Patch: ipint-linker-error.patch - BuildRequires: bison BuildRequires: bubblewrap BuildRequires: clang From ad45dc979525a3a69314ff1c8a97b47ccbae848d Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Wed, 26 Feb 2025 10:17:21 -0600 Subject: [PATCH 150/200] Update to 2.47.90 --- sources | 4 ++-- webkitgtk.spec | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/sources b/sources index 44eeee9..bf2e7b6 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.47.4.tar.xz) = f063355008326d99eff34301ad96c129cc89946d9bf22a064c89066f1b699293d822436827a39b7e30ac2786f831e198cd643e992706e788492df345df5491fe -SHA512 (webkitgtk-2.47.4.tar.xz.asc) = 6d7f55cad41a4863fecabdc8408e3d26084035c7f57d4223d53bdb661d18132eea1b2845eccb626fa701d3df3b2cddf42557982167f8b9d186bf16742c6bce68 +SHA512 (webkitgtk-2.47.90.tar.xz) = cc8ee518cc2201bc063a9e1fa9dc8c0975d4c89a4d81e0fd04870a0e33e9c34ddc1de0ddff892e4fe4dc2affd6301aa68f11738e2c4aef5c0515fdfefc29c7d6 +SHA512 (webkitgtk-2.47.90.tar.xz.asc) = d51def3bc22a9995a0f4c192882f7c6a48f2f5648a4cb710070d517aad34940d13101fbd648244c0e1d35b44e2ebc45d610982cd5d9cdb060de79abb146f00cc diff --git a/webkitgtk.spec b/webkitgtk.spec index c72d359..9e9f19a 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -19,7 +19,7 @@ %endif Name: webkitgtk -Version: 2.47.4 +Version: 2.47.90 Release: %autorelease Summary: GTK web content engine library From 253cecd14af505ac2ea368c85d4195964d19a916 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Fri, 14 Mar 2025 14:38:21 -0500 Subject: [PATCH 151/200] Update to WebKitGTK 2.48.0 --- clang20.patch | 74 ++++++++++++++++++++++++++++++++++++++++++++++++++ sources | 4 +-- webkitgtk.spec | 5 +++- 3 files changed, 80 insertions(+), 3 deletions(-) create mode 100644 clang20.patch diff --git a/clang20.patch b/clang20.patch new file mode 100644 index 0000000..94e3b3c --- /dev/null +++ b/clang20.patch @@ -0,0 +1,74 @@ +From 80e8e5aad5d376df8ab953bd538c07b9af5c0c16 Mon Sep 17 00:00:00 2001 +From: Fujii Hironori +Date: Tue, 18 Mar 2025 10:25:47 +0900 +Subject: [PATCH] EnumTraits.h: error: no matching function for call to + 'enumName' with Clang 20 https://bugs.webkit.org/show_bug.cgi?id=289669 + +Reviewed by NOBODY (OOPS!). + +Clang 20 couldn't compile EnumTraits.h. + +> wtf/EnumTraits.h:212:33: note: candidate template ignored: invalid explicitly-specified argument for template parameter 'V' + +An invalid enum value can't be specifed to the template parameter `V`. + +> template constexpr std::span enumName() + +The upstream Magic Enum C++ has a template variable `is_enum_constexpr_static_cast_valid` to check a enum value is valid. + + +Imported the template variable. + +* Source/WTF/wtf/EnumTraits.h: +(WTF::enumName): +(WTF::makeEnumNames): +--- + Source/WTF/wtf/EnumTraits.h | 21 ++++++++++++++++++++- + 1 file changed, 20 insertions(+), 1 deletion(-) + +diff --git a/Source/WTF/wtf/EnumTraits.h b/Source/WTF/wtf/EnumTraits.h +index 0d33e39a93dd1..95e6318b6f1be 100644 +--- a/Source/WTF/wtf/EnumTraits.h ++++ b/Source/WTF/wtf/EnumTraits.h +@@ -152,6 +152,16 @@ constexpr bool isZeroBasedContiguousEnum() + #pragma clang diagnostic ignored "-Wenum-constexpr-conversion" + #endif + ++#if COMPILER(CLANG) && __clang_major__ >= 16 ++template ++inline constexpr bool isEnumConstexprStaticCastValid = false; ++template ++inline constexpr bool isEnumConstexprStaticCastValid(V)>>> = true; ++#else ++template ++inline constexpr bool isEnumConstexprStaticCastValid = true; ++#endif ++ + template + constexpr std::span enumTypeNameImpl() + { +@@ -215,6 +225,15 @@ constexpr std::span enumName() + return result; + } + ++template ++constexpr std::span enumName() ++{ ++ if constexpr (isEnumConstexprStaticCastValid) ++ return enumName(V)>(); ++ else ++ return { }; ++} ++ + template + constexpr std::underlying_type_t enumNamesMin() + { +@@ -264,7 +283,7 @@ constexpr auto makeEnumNames(std::index_sequence) + { + constexpr auto min = enumNamesMin(); + return std::array, sizeof...(Is)> { +- enumName(static_cast>(Is) + min)>()... ++ enumName>(Is) + min>()... + }; + } + diff --git a/sources b/sources index bf2e7b6..b39792c 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.47.90.tar.xz) = cc8ee518cc2201bc063a9e1fa9dc8c0975d4c89a4d81e0fd04870a0e33e9c34ddc1de0ddff892e4fe4dc2affd6301aa68f11738e2c4aef5c0515fdfefc29c7d6 -SHA512 (webkitgtk-2.47.90.tar.xz.asc) = d51def3bc22a9995a0f4c192882f7c6a48f2f5648a4cb710070d517aad34940d13101fbd648244c0e1d35b44e2ebc45d610982cd5d9cdb060de79abb146f00cc +SHA512 (webkitgtk-2.48.0.tar.xz) = 296d49f5d1eac94950d77fee098839b0d4a8eed8eb7dab793013755f499d2d0f7234a073afb30cf5d58eac107c6303ce3d9a7bfb8435fa40900d8178c281e529 +SHA512 (webkitgtk-2.48.0.tar.xz.asc) = 434acb020b8007062811a4c21d52f9a5f74438e62d4d6b1093360fb1e392689ae08c43b9ddcd495be62608afec25901c341aa97779365286e425df9726588016 diff --git a/webkitgtk.spec b/webkitgtk.spec index 9e9f19a..65c9d33 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -19,7 +19,7 @@ %endif Name: webkitgtk -Version: 2.47.90 +Version: 2.48.0 Release: %autorelease Summary: GTK web content engine library @@ -57,6 +57,9 @@ Source1: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz.asc # $ gpg --export --export-options export-minimal 013A0127AC9C65B34FFA62526C1009B693975393 5AA3BC334FD7E3369E7C77B291C559DBE4C9123B > webkitgtk-keys.gpg Source2: webkitgtk-keys.gpg +# https://bugs.webkit.org/show_bug.cgi?id=289669 +Patch: clang20.patch + BuildRequires: bison BuildRequires: bubblewrap BuildRequires: clang From 7b284015f854dbe231b2eff8618ab30cb040c1ca Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Wed, 2 Apr 2025 11:49:08 -0500 Subject: [PATCH 152/200] Update to WebKitGTK 2.48.1 --- clang20.patch | 74 -------------------------------------------------- sources | 4 +-- webkitgtk.spec | 5 +--- 3 files changed, 3 insertions(+), 80 deletions(-) delete mode 100644 clang20.patch diff --git a/clang20.patch b/clang20.patch deleted file mode 100644 index 94e3b3c..0000000 --- a/clang20.patch +++ /dev/null @@ -1,74 +0,0 @@ -From 80e8e5aad5d376df8ab953bd538c07b9af5c0c16 Mon Sep 17 00:00:00 2001 -From: Fujii Hironori -Date: Tue, 18 Mar 2025 10:25:47 +0900 -Subject: [PATCH] EnumTraits.h: error: no matching function for call to - 'enumName' with Clang 20 https://bugs.webkit.org/show_bug.cgi?id=289669 - -Reviewed by NOBODY (OOPS!). - -Clang 20 couldn't compile EnumTraits.h. - -> wtf/EnumTraits.h:212:33: note: candidate template ignored: invalid explicitly-specified argument for template parameter 'V' - -An invalid enum value can't be specifed to the template parameter `V`. - -> template constexpr std::span enumName() - -The upstream Magic Enum C++ has a template variable `is_enum_constexpr_static_cast_valid` to check a enum value is valid. - - -Imported the template variable. - -* Source/WTF/wtf/EnumTraits.h: -(WTF::enumName): -(WTF::makeEnumNames): ---- - Source/WTF/wtf/EnumTraits.h | 21 ++++++++++++++++++++- - 1 file changed, 20 insertions(+), 1 deletion(-) - -diff --git a/Source/WTF/wtf/EnumTraits.h b/Source/WTF/wtf/EnumTraits.h -index 0d33e39a93dd1..95e6318b6f1be 100644 ---- a/Source/WTF/wtf/EnumTraits.h -+++ b/Source/WTF/wtf/EnumTraits.h -@@ -152,6 +152,16 @@ constexpr bool isZeroBasedContiguousEnum() - #pragma clang diagnostic ignored "-Wenum-constexpr-conversion" - #endif - -+#if COMPILER(CLANG) && __clang_major__ >= 16 -+template -+inline constexpr bool isEnumConstexprStaticCastValid = false; -+template -+inline constexpr bool isEnumConstexprStaticCastValid(V)>>> = true; -+#else -+template -+inline constexpr bool isEnumConstexprStaticCastValid = true; -+#endif -+ - template - constexpr std::span enumTypeNameImpl() - { -@@ -215,6 +225,15 @@ constexpr std::span enumName() - return result; - } - -+template -+constexpr std::span enumName() -+{ -+ if constexpr (isEnumConstexprStaticCastValid) -+ return enumName(V)>(); -+ else -+ return { }; -+} -+ - template - constexpr std::underlying_type_t enumNamesMin() - { -@@ -264,7 +283,7 @@ constexpr auto makeEnumNames(std::index_sequence) - { - constexpr auto min = enumNamesMin(); - return std::array, sizeof...(Is)> { -- enumName(static_cast>(Is) + min)>()... -+ enumName>(Is) + min>()... - }; - } - diff --git a/sources b/sources index b39792c..013526c 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.48.0.tar.xz) = 296d49f5d1eac94950d77fee098839b0d4a8eed8eb7dab793013755f499d2d0f7234a073afb30cf5d58eac107c6303ce3d9a7bfb8435fa40900d8178c281e529 -SHA512 (webkitgtk-2.48.0.tar.xz.asc) = 434acb020b8007062811a4c21d52f9a5f74438e62d4d6b1093360fb1e392689ae08c43b9ddcd495be62608afec25901c341aa97779365286e425df9726588016 +SHA512 (webkitgtk-2.48.1.tar.xz) = b78a2ae7e51942c4606e6f2f574e86f107e0c44fc685d9eda41d309457a340b9d9b6fae39cdbc3cc7c9210237b110647216eafc6b6e9b0e577106e477cd06d38 +SHA512 (webkitgtk-2.48.1.tar.xz.asc) = 072c1ed45c8f4f3d93ba79d1aa17decb2389a6535391fc6927f97f6404c4bdce4599b2e580397da1f163cc28c1c4c93efbf1eda16584ca18010b362824e35d31 diff --git a/webkitgtk.spec b/webkitgtk.spec index 65c9d33..cc2f429 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -19,7 +19,7 @@ %endif Name: webkitgtk -Version: 2.48.0 +Version: 2.48.1 Release: %autorelease Summary: GTK web content engine library @@ -57,9 +57,6 @@ Source1: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz.asc # $ gpg --export --export-options export-minimal 013A0127AC9C65B34FFA62526C1009B693975393 5AA3BC334FD7E3369E7C77B291C559DBE4C9123B > webkitgtk-keys.gpg Source2: webkitgtk-keys.gpg -# https://bugs.webkit.org/show_bug.cgi?id=289669 -Patch: clang20.patch - BuildRequires: bison BuildRequires: bubblewrap BuildRequires: clang From f9a8d97ab5e53f3af19632d532f2261b57b77e7e Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Wed, 2 Apr 2025 15:05:52 -0500 Subject: [PATCH 153/200] Add patch to fix non-x86, non-ARM build --- denormal-disabler-build.patch | 12 ++++++++++++ webkitgtk.spec | 3 +++ 2 files changed, 15 insertions(+) create mode 100644 denormal-disabler-build.patch diff --git a/denormal-disabler-build.patch b/denormal-disabler-build.patch new file mode 100644 index 0000000..8660563 --- /dev/null +++ b/denormal-disabler-build.patch @@ -0,0 +1,12 @@ +diff --git a/Source/WebCore/platform/audio/DenormalDisabler.cpp b/Source/WebCore/platform/audio/DenormalDisabler.cpp +index 35715e663ce7..44ba08a33d5d 100644 +--- a/Source/WebCore/platform/audio/DenormalDisabler.cpp ++++ b/Source/WebCore/platform/audio/DenormalDisabler.cpp +@@ -91,7 +91,7 @@ DenormalDisabler::~DenormalDisabler() + } + } + #else +-DenormalDisabler::DenormalDisabler() = default ++DenormalDisabler::DenormalDisabler() = default; + DenormalDisabler::~DenormalDisabler() = default; + #endif diff --git a/webkitgtk.spec b/webkitgtk.spec index cc2f429..e93b6c3 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -57,6 +57,9 @@ Source1: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz.asc # $ gpg --export --export-options export-minimal 013A0127AC9C65B34FFA62526C1009B693975393 5AA3BC334FD7E3369E7C77B291C559DBE4C9123B > webkitgtk-keys.gpg Source2: webkitgtk-keys.gpg +# https://bugs.webkit.org/show_bug.cgi?id=286694 +Patch: denormal-disabler-build.patch + BuildRequires: bison BuildRequires: bubblewrap BuildRequires: clang From 3da2ea985ddd65d8223774e329347eb5b1387028 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Thu, 3 Apr 2025 09:08:25 -0500 Subject: [PATCH 154/200] Update to 2.49.1 --- denormal-disabler-build.patch | 12 ------------ sources | 4 ++-- webkitgtk.spec | 8 ++++---- 3 files changed, 6 insertions(+), 18 deletions(-) delete mode 100644 denormal-disabler-build.patch diff --git a/denormal-disabler-build.patch b/denormal-disabler-build.patch deleted file mode 100644 index 8660563..0000000 --- a/denormal-disabler-build.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff --git a/Source/WebCore/platform/audio/DenormalDisabler.cpp b/Source/WebCore/platform/audio/DenormalDisabler.cpp -index 35715e663ce7..44ba08a33d5d 100644 ---- a/Source/WebCore/platform/audio/DenormalDisabler.cpp -+++ b/Source/WebCore/platform/audio/DenormalDisabler.cpp -@@ -91,7 +91,7 @@ DenormalDisabler::~DenormalDisabler() - } - } - #else --DenormalDisabler::DenormalDisabler() = default -+DenormalDisabler::DenormalDisabler() = default; - DenormalDisabler::~DenormalDisabler() = default; - #endif diff --git a/sources b/sources index 013526c..76a56cc 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.48.1.tar.xz) = b78a2ae7e51942c4606e6f2f574e86f107e0c44fc685d9eda41d309457a340b9d9b6fae39cdbc3cc7c9210237b110647216eafc6b6e9b0e577106e477cd06d38 -SHA512 (webkitgtk-2.48.1.tar.xz.asc) = 072c1ed45c8f4f3d93ba79d1aa17decb2389a6535391fc6927f97f6404c4bdce4599b2e580397da1f163cc28c1c4c93efbf1eda16584ca18010b362824e35d31 +SHA512 (webkitgtk-2.49.1.tar.xz) = c78a00eaac351ca6f333a7fd864395ba99413df18ffab8596bc38b0b3085130faf83611cce095a3953e77d3bab2466df6401c0a732c20c59f843affb81a656c8 +SHA512 (webkitgtk-2.49.1.tar.xz.asc) = 7be4d36692094df058aed70936fe0c3a08219c45b0690d5d1ef4e69f21d3013dac64e3ca2e05db31ad0530802dda2059e6b8783b465f4d3dc1df9d833a1ec7ea diff --git a/webkitgtk.spec b/webkitgtk.spec index e93b6c3..0d18860 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -18,8 +18,11 @@ %global _lto_cflags %{nil} %endif +# FIXME: Disable LTO unconditionally until https://github.com/llvm/llvm-project/issues/134409 is fixed in Fedora +%global _lto_cflags %{nil} + Name: webkitgtk -Version: 2.48.1 +Version: 2.49.1 Release: %autorelease Summary: GTK web content engine library @@ -57,9 +60,6 @@ Source1: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz.asc # $ gpg --export --export-options export-minimal 013A0127AC9C65B34FFA62526C1009B693975393 5AA3BC334FD7E3369E7C77B291C559DBE4C9123B > webkitgtk-keys.gpg Source2: webkitgtk-keys.gpg -# https://bugs.webkit.org/show_bug.cgi?id=286694 -Patch: denormal-disabler-build.patch - BuildRequires: bison BuildRequires: bubblewrap BuildRequires: clang From f4536030c53a993d0931b3780c61c81d436be6c6 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Fri, 30 May 2025 16:01:27 -0500 Subject: [PATCH 155/200] Update to 2.49.2 --- gtk3-build.patch | 143 +++++++++++++++++++++++++++++++++++++++++++++++ sources | 4 +- webkitgtk.spec | 8 +-- 3 files changed, 149 insertions(+), 6 deletions(-) create mode 100644 gtk3-build.patch diff --git a/gtk3-build.patch b/gtk3-build.patch new file mode 100644 index 0000000..7f624f5 --- /dev/null +++ b/gtk3-build.patch @@ -0,0 +1,143 @@ +From e2e4647281ff5f666597e979f582ce780cb31604 Mon Sep 17 00:00:00 2001 +From: Michael Catanzaro +Date: Fri, 30 May 2025 15:35:03 -0500 +Subject: [PATCH] [GTK] 2.49.2 does not build for GTK 3 + https://bugs.webkit.org/show_bug.cgi?id=293816 + +Unreviewed build fixes. +--- + .../WebCore/Modules/mediastream/MediaStreamTrack.cpp | 6 ++++++ + Source/WebCore/Modules/mediastream/MediaStreamTrack.h | 2 +- + .../API/gtk/DOM/WebKitDOMCharacterData.cpp | 2 ++ + .../API/gtk/DOM/WebKitDOMDOMSelection.cpp | 10 +++++----- + .../InjectedBundle/API/gtk/DOM/WebKitDOMDeprecated.cpp | 1 + + .../WebCoreSupport/glib/WebEditorClientGLib.cpp | 1 + + Tools/TestWebKitAPI/Tests/WebKitGLib/TestUIClient.cpp | 2 +- + Tools/TestWebKitAPI/glib/WebKitGLib/TestMain.h | 2 ++ + 8 files changed, 19 insertions(+), 7 deletions(-) + +diff --git a/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp b/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp +index a401952f20b7..41df25b748e5 100644 +--- a/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp ++++ b/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp +@@ -31,6 +31,7 @@ + #if ENABLE(MEDIA_STREAM) + + #include "CommonAtomStrings.h" ++#include "ContextDestructionObserverInlines.h" + #include "Document.h" + #include "Event.h" + #include "EventNames.h" +@@ -645,6 +646,11 @@ Ref MediaStreamTrack::create(ScriptExecutionContext& context, + return track; + } + ++ScriptExecutionContext* MediaStreamTrack::scriptExecutionContext() const ++{ ++ return ActiveDOMObject::scriptExecutionContext(); ++} ++ + #if !RELEASE_LOG_DISABLED + WTFLogChannel& MediaStreamTrack::logChannel() const + { +diff --git a/Source/WebCore/Modules/mediastream/MediaStreamTrack.h b/Source/WebCore/Modules/mediastream/MediaStreamTrack.h +index 9beb8a93fc42..cd42ed010b4c 100644 +--- a/Source/WebCore/Modules/mediastream/MediaStreamTrack.h ++++ b/Source/WebCore/Modules/mediastream/MediaStreamTrack.h +@@ -189,7 +189,7 @@ class MediaStreamTrack + protected: + MediaStreamTrack(ScriptExecutionContext&, Ref&&); + +- ScriptExecutionContext* scriptExecutionContext() const final { return ActiveDOMObject::scriptExecutionContext(); } ++ ScriptExecutionContext* scriptExecutionContext() const final; + + private: + explicit MediaStreamTrack(MediaStreamTrack&); +diff --git a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCharacterData.cpp b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCharacterData.cpp +index 200689e76721..c1fec9da2d2c 100644 +--- a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCharacterData.cpp ++++ b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCharacterData.cpp +@@ -24,8 +24,10 @@ + #include "DOMObjectCache.h" + #include + #include ++#include + #include "GObjectEventListener.h" + #include ++#include + #include "WebKitDOMCharacterDataPrivate.h" + #include "WebKitDOMElementPrivate.h" + #include "WebKitDOMEventPrivate.h" +diff --git a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMSelection.cpp b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMSelection.cpp +index c5e283b08eab..2233726e3752 100644 +--- a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMSelection.cpp ++++ b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMSelection.cpp +@@ -397,7 +397,7 @@ void webkit_dom_dom_selection_set_base_and_extent(WebKitDOMDOMSelection* self, W + WebCore::DOMSelection* item = WebKit::core(self); + WebCore::Node* convertedBaseNode = WebKit::core(baseNode); + WebCore::Node* convertedExtentNode = WebKit::core(extentNode); +- item->setBaseAndExtent(convertedBaseNode, baseOffset, convertedExtentNode, extentOffset); ++ item->setBaseAndExtent(*convertedBaseNode, baseOffset, *convertedExtentNode, extentOffset); + } + + void webkit_dom_dom_selection_set_position(WebKitDOMDOMSelection* self, WebKitDOMNode* node, gulong offset) +@@ -500,7 +500,7 @@ WebKitDOMNode* webkit_dom_dom_selection_get_base_node(WebKitDOMDOMSelection* sel + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOM_SELECTION(self), 0); + WebCore::DOMSelection* item = WebKit::core(self); +- RefPtr gobjectResult = WTF::getPtr(item->baseNode()); ++ RefPtr gobjectResult = WTF::getPtr(item->anchorNode()); + return WebKit::kit(gobjectResult.get()); + } + +@@ -509,7 +509,7 @@ gulong webkit_dom_dom_selection_get_base_offset(WebKitDOMDOMSelection* self) + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOM_SELECTION(self), 0); + WebCore::DOMSelection* item = WebKit::core(self); +- gulong result = item->baseOffset(); ++ gulong result = item->anchorOffset(); + return result; + } + +@@ -518,7 +518,7 @@ WebKitDOMNode* webkit_dom_dom_selection_get_extent_node(WebKitDOMDOMSelection* s + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOM_SELECTION(self), 0); + WebCore::DOMSelection* item = WebKit::core(self); +- RefPtr gobjectResult = WTF::getPtr(item->extentNode()); ++ RefPtr gobjectResult = WTF::getPtr(item->focusNode()); + return WebKit::kit(gobjectResult.get()); + } + +@@ -527,7 +527,7 @@ gulong webkit_dom_dom_selection_get_extent_offset(WebKitDOMDOMSelection* self) + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_DOM_SELECTION(self), 0); + WebCore::DOMSelection* item = WebKit::core(self); +- gulong result = item->extentOffset(); ++ gulong result = item->focusOffset(); + return result; + } + +diff --git a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDeprecated.cpp b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDeprecated.cpp +index 472a8d0d00eb..10a093a4ef5d 100644 +--- a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDeprecated.cpp ++++ b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDeprecated.cpp +@@ -23,6 +23,7 @@ + #include + #include + #include ++#include + #include + #include + #include "WebKitDOMDocumentPrivate.h" +diff --git a/Source/WebKit/WebProcess/WebCoreSupport/glib/WebEditorClientGLib.cpp b/Source/WebKit/WebProcess/WebCoreSupport/glib/WebEditorClientGLib.cpp +index ab382eed0311..c0691f3fba51 100644 +--- a/Source/WebKit/WebProcess/WebCoreSupport/glib/WebEditorClientGLib.cpp ++++ b/Source/WebKit/WebProcess/WebCoreSupport/glib/WebEditorClientGLib.cpp +@@ -26,6 +26,7 @@ + #include + #include + #include ++#include + #include + #include + #include diff --git a/sources b/sources index 76a56cc..b377c05 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.49.1.tar.xz) = c78a00eaac351ca6f333a7fd864395ba99413df18ffab8596bc38b0b3085130faf83611cce095a3953e77d3bab2466df6401c0a732c20c59f843affb81a656c8 -SHA512 (webkitgtk-2.49.1.tar.xz.asc) = 7be4d36692094df058aed70936fe0c3a08219c45b0690d5d1ef4e69f21d3013dac64e3ca2e05db31ad0530802dda2059e6b8783b465f4d3dc1df9d833a1ec7ea +SHA512 (webkitgtk-2.49.2.tar.xz) = bd8a7b76492c83148d0004ebdef557caf10a166b0b61acb701eb5de8085ea1d0ac4b5ed662d219f7dbeb5462f904a91b07e985d57433ee1db3cb425a6996b2a1 +SHA512 (webkitgtk-2.49.2.tar.xz.asc) = 2261f6f212fc5fb33e5c81e8d114ec330719fe6c61df572a8de92484509db035197c9d493f9b8c9e9ac577e460ec7adb4ad1b8b23df2861fbf9ea4742d1a046b diff --git a/webkitgtk.spec b/webkitgtk.spec index 0d18860..23cd3d4 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -18,11 +18,8 @@ %global _lto_cflags %{nil} %endif -# FIXME: Disable LTO unconditionally until https://github.com/llvm/llvm-project/issues/134409 is fixed in Fedora -%global _lto_cflags %{nil} - Name: webkitgtk -Version: 2.49.1 +Version: 2.49.2 Release: %autorelease Summary: GTK web content engine library @@ -60,6 +57,9 @@ Source1: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz.asc # $ gpg --export --export-options export-minimal 013A0127AC9C65B34FFA62526C1009B693975393 5AA3BC334FD7E3369E7C77B291C559DBE4C9123B > webkitgtk-keys.gpg Source2: webkitgtk-keys.gpg +# https://bugs.webkit.org/show_bug.cgi?id=293816 +Patch: gtk3-build.patch + BuildRequires: bison BuildRequires: bubblewrap BuildRequires: clang From 5ed3c46814cf0d0907df87d3d992096b489cf862 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Sat, 31 May 2025 10:15:26 -0500 Subject: [PATCH 156/200] Attempt to fix build on i686 and s390x --- build.patch | 29 +++++++++++++++++++++++++++++ webkitgtk.spec | 3 +++ 2 files changed, 32 insertions(+) create mode 100644 build.patch diff --git a/build.patch b/build.patch new file mode 100644 index 0000000..1026311 --- /dev/null +++ b/build.patch @@ -0,0 +1,29 @@ +From 368a2890dc28047bb2b112cae170296edc3bcca3 Mon Sep 17 00:00:00 2001 +From: Michael Catanzaro +Date: Sat, 31 May 2025 10:13:02 -0500 +Subject: [PATCH] SmallSet.h:181:27: error: implicit instantiation of undefined + template 'std::numeric_limits' + https://bugs.webkit.org/show_bug.cgi?id=293853 + +Unreviewed build fix. + +* Source/WTF/wtf/SmallSet.h: +--- + Source/WTF/wtf/SmallSet.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/Source/WTF/wtf/SmallSet.h b/Source/WTF/wtf/SmallSet.h +index 65a5e48bfaa4..f1eaac631b16 100644 +--- a/Source/WTF/wtf/SmallSet.h ++++ b/Source/WTF/wtf/SmallSet.h +@@ -25,6 +25,7 @@ + + #pragma once + ++#include + #include + #include + #include +-- +2.49.0 + diff --git a/webkitgtk.spec b/webkitgtk.spec index 23cd3d4..67066c6 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -60,6 +60,9 @@ Source2: webkitgtk-keys.gpg # https://bugs.webkit.org/show_bug.cgi?id=293816 Patch: gtk3-build.patch +# https://bugs.webkit.org/show_bug.cgi?id=293853 +Patch: build.patch + BuildRequires: bison BuildRequires: bubblewrap BuildRequires: clang From 1f9a18deaf3972d94e1f1701edcc1409f9bf8b3f Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Sun, 1 Jun 2025 10:21:34 -0500 Subject: [PATCH 157/200] Another attempt to fix build on non-x86_64 --- build.patch | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/build.patch b/build.patch index 1026311..6e01444 100644 --- a/build.patch +++ b/build.patch @@ -27,3 +27,15 @@ index 65a5e48bfaa4..f1eaac631b16 100644 -- 2.49.0 +diff --git a/Source/WTF/wtf/WeakRandom.h b/Source/WTF/wtf/WeakRandom.h +index 22aa3a3163e4..bb3c5695e380 100644 +--- a/Source/WTF/wtf/WeakRandom.h ++++ b/Source/WTF/wtf/WeakRandom.h +@@ -30,7 +30,7 @@ + + #pragma once + +-#include ++#include + #include + #include From fcb218038fa212c957988b7a75b794c94fb46406 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Mon, 2 Jun 2025 08:48:04 -0500 Subject: [PATCH 158/200] Another attempt to fix build on non-x86_64 --- build.patch | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/build.patch b/build.patch index 6e01444..a607ac0 100644 --- a/build.patch +++ b/build.patch @@ -39,3 +39,16 @@ index 22aa3a3163e4..bb3c5695e380 100644 +#include #include #include + +diff --git a/Source/WTF/wtf/text/icu/UTextProvider.h b/Source/WTF/wtf/text/icu/UTextProvider.h +index e2f58542ecff..dc42629cac34 100644 +--- a/Source/WTF/wtf/text/icu/UTextProvider.h ++++ b/Source/WTF/wtf/text/icu/UTextProvider.h +@@ -25,6 +25,7 @@ + + #pragma once + ++#include + #include + + namespace WTF { From bc59d801763916b78c5c22e4a72a512eb28381ac Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Mon, 2 Jun 2025 09:39:37 -0500 Subject: [PATCH 159/200] Another attempt to fix build on non-x86_64 --- build.patch | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 72 insertions(+), 1 deletion(-) diff --git a/build.patch b/build.patch index a607ac0..3df43ec 100644 --- a/build.patch +++ b/build.patch @@ -27,6 +27,65 @@ index 65a5e48bfaa4..f1eaac631b16 100644 -- 2.49.0 +diff --git a/Source/JavaScriptCore/bytecode/SourceID.h b/Source/JavaScriptCore/bytecode/SourceID.h +index cfa489f29189..4e0e5f738db2 100644 +--- a/Source/JavaScriptCore/bytecode/SourceID.h ++++ b/Source/JavaScriptCore/bytecode/SourceID.h +@@ -25,6 +25,8 @@ + + #pragma once + ++#include ++ + namespace JSC { + + using SourceID = uint32_t; +diff --git a/Source/JavaScriptCore/jit/GdbJIT.cpp b/Source/JavaScriptCore/jit/GdbJIT.cpp +index f49de33b14fb..d574ff83ba0e 100644 +--- a/Source/JavaScriptCore/jit/GdbJIT.cpp ++++ b/Source/JavaScriptCore/jit/GdbJIT.cpp +@@ -28,7 +28,8 @@ + + #include + +-#if ENABLE(ASSEMBLER) && (OS(DARWIN) || OS(LINUX)) ++#if ENABLE(ASSEMBLER) ++#if OS(DARWIN) || OS(LINUX) + + #include "CallFrame.h" + #include "CallFrameInlines.h" +@@ -1492,4 +1493,5 @@ void GdbJIT::log(const CString&, MacroAssemblerCodeRef) { } + + } // namespace JSC + +-#endif // ENABLE(ASSEMBLER) && (OS(DARWIN) || OS(LINUX)) ++#endif // OS(DARWIN) || OS(LINUX) ++#endif // ENABLE(ASSEMBLER) +diff --git a/Source/JavaScriptCore/runtime/PureNaN.h b/Source/JavaScriptCore/runtime/PureNaN.h +index 8cab247c8d4a..f96f45b1b54b 100644 +--- a/Source/JavaScriptCore/runtime/PureNaN.h ++++ b/Source/JavaScriptCore/runtime/PureNaN.h +@@ -26,6 +26,7 @@ + #pragma once + + #include ++#include + #include + #include + +diff --git a/Source/JavaScriptCore/yarr/Yarr.h b/Source/JavaScriptCore/yarr/Yarr.h +index 87a554fff25d..1fca142b3b6b 100644 +--- a/Source/JavaScriptCore/yarr/Yarr.h ++++ b/Source/JavaScriptCore/yarr/Yarr.h +@@ -27,7 +27,7 @@ + + #pragma once + +-#include ++#include + #include "YarrErrorCode.h" + + namespace JSC { namespace Yarr { diff --git a/Source/WTF/wtf/WeakRandom.h b/Source/WTF/wtf/WeakRandom.h index 22aa3a3163e4..bb3c5695e380 100644 --- a/Source/WTF/wtf/WeakRandom.h @@ -39,7 +98,7 @@ index 22aa3a3163e4..bb3c5695e380 100644 +#include #include #include - + diff --git a/Source/WTF/wtf/text/icu/UTextProvider.h b/Source/WTF/wtf/text/icu/UTextProvider.h index e2f58542ecff..dc42629cac34 100644 --- a/Source/WTF/wtf/text/icu/UTextProvider.h @@ -52,3 +111,15 @@ index e2f58542ecff..dc42629cac34 100644 #include namespace WTF { +diff --git a/Source/WebCore/platform/DateComponents.h b/Source/WebCore/platform/DateComponents.h +index 50069f3890c1..afc401067ff5 100644 +--- a/Source/WebCore/platform/DateComponents.h ++++ b/Source/WebCore/platform/DateComponents.h +@@ -30,6 +30,7 @@ + + #pragma once + ++#include + #include + #include + #include From 66c24b384a3a83746359c461cbbecfb2bd6c29e6 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Tue, 3 Jun 2025 05:53:56 -0500 Subject: [PATCH 160/200] Fix build on s390x --- build.patch | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/build.patch b/build.patch index 3df43ec..a6dc0e8 100644 --- a/build.patch +++ b/build.patch @@ -123,3 +123,27 @@ index 50069f3890c1..afc401067ff5 100644 #include #include #include +diff --git a/Source/WebCore/platform/graphics/cairo/PatternCairo.cpp b/Source/WebCore/platform/graphics/cairo/PatternCairo.cpp +index a3fcd68ff8b7..f0192cc2d69f 100644 +--- a/Source/WebCore/platform/graphics/cairo/PatternCairo.cpp ++++ b/Source/WebCore/platform/graphics/cairo/PatternCairo.cpp +@@ -30,6 +30,7 @@ + + #include "CairoUtilities.h" + #include "GraphicsContext.h" ++#include "NativeImage.h" + + namespace WebCore { + +diff --git a/Source/WebCore/rendering/style/RenderStyleConstants.h b/Source/WebCore/rendering/style/RenderStyleConstants.h +index 50520bc3f2c0..db48b47f713f 100644 +--- a/Source/WebCore/rendering/style/RenderStyleConstants.h ++++ b/Source/WebCore/rendering/style/RenderStyleConstants.h +@@ -26,6 +26,7 @@ + #pragma once + + #include ++#include + #include + + namespace WTF { From 72c8cf7cd9c6a2c0b8b4037b89eef883a7b8874e Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Wed, 11 Jun 2025 14:04:07 -0500 Subject: [PATCH 161/200] Fix small scale factor in GTK 3 apps --- gtk3-scale-factor.patch | 30 ++++++++++++++++++++++++++++++ webkitgtk.spec | 3 +++ 2 files changed, 33 insertions(+) create mode 100644 gtk3-scale-factor.patch diff --git a/gtk3-scale-factor.patch b/gtk3-scale-factor.patch new file mode 100644 index 0000000..c6f5a9e --- /dev/null +++ b/gtk3-scale-factor.patch @@ -0,0 +1,30 @@ +From fe253715172d02456f4e1568a2e25cbca468129c Mon Sep 17 00:00:00 2001 +From: Carlos Garcia Campos +Date: Mon, 9 Jun 2025 06:55:17 -0700 +Subject: [PATCH] REGRESSION(293449@main): [GTK] rendering and fonts broken in + GTK 3 https://bugs.webkit.org/show_bug.cgi?id=294027 + +Reviewed by Michael Catanzaro. + +In 293449@main I moved the the code to get fopnt DPI from Web process to +UI process but I forgot the value received in the web process divided by +1024, so for GTK3 we need to multiply the value get. + +Canonical link: https://commits.webkit.org/295992@main +--- + Source/WebKit/UIProcess/gtk/SystemSettingsManagerProxyGtk.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Source/WebKit/UIProcess/gtk/SystemSettingsManagerProxyGtk.cpp b/Source/WebKit/UIProcess/gtk/SystemSettingsManagerProxyGtk.cpp +index 9ef483a6b0ab..349cd3d9efd7 100644 +--- a/Source/WebKit/UIProcess/gtk/SystemSettingsManagerProxyGtk.cpp ++++ b/Source/WebKit/UIProcess/gtk/SystemSettingsManagerProxyGtk.cpp +@@ -116,7 +116,7 @@ int SystemSettingsManagerProxy::xftDPI() const + // additional font scaling factor. + if (auto* display = gdk_display_get_default()) { + if (auto* screen = gdk_display_get_default_screen(display)) +- return gdk_screen_get_resolution(screen); ++ return gdk_screen_get_resolution(screen) * 1024; + } + #endif + int dpiSetting; diff --git a/webkitgtk.spec b/webkitgtk.spec index 67066c6..d8f43b7 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -63,6 +63,9 @@ Patch: gtk3-build.patch # https://bugs.webkit.org/show_bug.cgi?id=293853 Patch: build.patch +# https://bugs.webkit.org/show_bug.cgi?id=294027 +Patch: gtk3-scale-factor.patch + BuildRequires: bison BuildRequires: bubblewrap BuildRequires: clang From 94eac66f047a8b1ba9bb78f38a691267db54f9ee Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Fri, 27 Jun 2025 12:40:02 -0500 Subject: [PATCH 162/200] Update to 2.49.3 --- build.patch | 149 ------------ gtk3-build.patch | 528 ++++++++++++++++++++++++++++++---------- gtk3-scale-factor.patch | 30 --- sources | 4 +- webkitgtk.spec | 13 +- 5 files changed, 411 insertions(+), 313 deletions(-) delete mode 100644 build.patch delete mode 100644 gtk3-scale-factor.patch diff --git a/build.patch b/build.patch deleted file mode 100644 index a6dc0e8..0000000 --- a/build.patch +++ /dev/null @@ -1,149 +0,0 @@ -From 368a2890dc28047bb2b112cae170296edc3bcca3 Mon Sep 17 00:00:00 2001 -From: Michael Catanzaro -Date: Sat, 31 May 2025 10:13:02 -0500 -Subject: [PATCH] SmallSet.h:181:27: error: implicit instantiation of undefined - template 'std::numeric_limits' - https://bugs.webkit.org/show_bug.cgi?id=293853 - -Unreviewed build fix. - -* Source/WTF/wtf/SmallSet.h: ---- - Source/WTF/wtf/SmallSet.h | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/Source/WTF/wtf/SmallSet.h b/Source/WTF/wtf/SmallSet.h -index 65a5e48bfaa4..f1eaac631b16 100644 ---- a/Source/WTF/wtf/SmallSet.h -+++ b/Source/WTF/wtf/SmallSet.h -@@ -25,6 +25,7 @@ - - #pragma once - -+#include - #include - #include - #include --- -2.49.0 - -diff --git a/Source/JavaScriptCore/bytecode/SourceID.h b/Source/JavaScriptCore/bytecode/SourceID.h -index cfa489f29189..4e0e5f738db2 100644 ---- a/Source/JavaScriptCore/bytecode/SourceID.h -+++ b/Source/JavaScriptCore/bytecode/SourceID.h -@@ -25,6 +25,8 @@ - - #pragma once - -+#include -+ - namespace JSC { - - using SourceID = uint32_t; -diff --git a/Source/JavaScriptCore/jit/GdbJIT.cpp b/Source/JavaScriptCore/jit/GdbJIT.cpp -index f49de33b14fb..d574ff83ba0e 100644 ---- a/Source/JavaScriptCore/jit/GdbJIT.cpp -+++ b/Source/JavaScriptCore/jit/GdbJIT.cpp -@@ -28,7 +28,8 @@ - - #include - --#if ENABLE(ASSEMBLER) && (OS(DARWIN) || OS(LINUX)) -+#if ENABLE(ASSEMBLER) -+#if OS(DARWIN) || OS(LINUX) - - #include "CallFrame.h" - #include "CallFrameInlines.h" -@@ -1492,4 +1493,5 @@ void GdbJIT::log(const CString&, MacroAssemblerCodeRef) { } - - } // namespace JSC - --#endif // ENABLE(ASSEMBLER) && (OS(DARWIN) || OS(LINUX)) -+#endif // OS(DARWIN) || OS(LINUX) -+#endif // ENABLE(ASSEMBLER) -diff --git a/Source/JavaScriptCore/runtime/PureNaN.h b/Source/JavaScriptCore/runtime/PureNaN.h -index 8cab247c8d4a..f96f45b1b54b 100644 ---- a/Source/JavaScriptCore/runtime/PureNaN.h -+++ b/Source/JavaScriptCore/runtime/PureNaN.h -@@ -26,6 +26,7 @@ - #pragma once - - #include -+#include - #include - #include - -diff --git a/Source/JavaScriptCore/yarr/Yarr.h b/Source/JavaScriptCore/yarr/Yarr.h -index 87a554fff25d..1fca142b3b6b 100644 ---- a/Source/JavaScriptCore/yarr/Yarr.h -+++ b/Source/JavaScriptCore/yarr/Yarr.h -@@ -27,7 +27,7 @@ - - #pragma once - --#include -+#include - #include "YarrErrorCode.h" - - namespace JSC { namespace Yarr { -diff --git a/Source/WTF/wtf/WeakRandom.h b/Source/WTF/wtf/WeakRandom.h -index 22aa3a3163e4..bb3c5695e380 100644 ---- a/Source/WTF/wtf/WeakRandom.h -+++ b/Source/WTF/wtf/WeakRandom.h -@@ -30,7 +30,7 @@ - - #pragma once - --#include -+#include - #include - #include - -diff --git a/Source/WTF/wtf/text/icu/UTextProvider.h b/Source/WTF/wtf/text/icu/UTextProvider.h -index e2f58542ecff..dc42629cac34 100644 ---- a/Source/WTF/wtf/text/icu/UTextProvider.h -+++ b/Source/WTF/wtf/text/icu/UTextProvider.h -@@ -25,6 +25,7 @@ - - #pragma once - -+#include - #include - - namespace WTF { -diff --git a/Source/WebCore/platform/DateComponents.h b/Source/WebCore/platform/DateComponents.h -index 50069f3890c1..afc401067ff5 100644 ---- a/Source/WebCore/platform/DateComponents.h -+++ b/Source/WebCore/platform/DateComponents.h -@@ -30,6 +30,7 @@ - - #pragma once - -+#include - #include - #include - #include -diff --git a/Source/WebCore/platform/graphics/cairo/PatternCairo.cpp b/Source/WebCore/platform/graphics/cairo/PatternCairo.cpp -index a3fcd68ff8b7..f0192cc2d69f 100644 ---- a/Source/WebCore/platform/graphics/cairo/PatternCairo.cpp -+++ b/Source/WebCore/platform/graphics/cairo/PatternCairo.cpp -@@ -30,6 +30,7 @@ - - #include "CairoUtilities.h" - #include "GraphicsContext.h" -+#include "NativeImage.h" - - namespace WebCore { - -diff --git a/Source/WebCore/rendering/style/RenderStyleConstants.h b/Source/WebCore/rendering/style/RenderStyleConstants.h -index 50520bc3f2c0..db48b47f713f 100644 ---- a/Source/WebCore/rendering/style/RenderStyleConstants.h -+++ b/Source/WebCore/rendering/style/RenderStyleConstants.h -@@ -26,6 +26,7 @@ - #pragma once - - #include -+#include - #include - - namespace WTF { diff --git a/gtk3-build.patch b/gtk3-build.patch index 7f624f5..14a1dee 100644 --- a/gtk3-build.patch +++ b/gtk3-build.patch @@ -1,143 +1,425 @@ -From e2e4647281ff5f666597e979f582ce780cb31604 Mon Sep 17 00:00:00 2001 -From: Michael Catanzaro -Date: Fri, 30 May 2025 15:35:03 -0500 -Subject: [PATCH] [GTK] 2.49.2 does not build for GTK 3 - https://bugs.webkit.org/show_bug.cgi?id=293816 +From 38464a7003c6bf54820f6504fcd871892562c6a5 Mon Sep 17 00:00:00 2001 +From: Diego Pino Garcia +Date: Fri, 27 Jun 2025 08:58:20 -0700 +Subject: [PATCH] [GTK] Unreviewed, fix build after 296441@main + https://bugs.webkit.org/show_bug.cgi?id=294750 +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit -Unreviewed build fixes. +Fix build error: 'error: use of ‘window’ before deduction of ‘auto’'. + +* Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMWindow.cpp: +(webkit_dom_dom_window_webkit_message_handlers_post_message): + +Canonical link: https://commits.webkit.org/296729@main --- - .../WebCore/Modules/mediastream/MediaStreamTrack.cpp | 6 ++++++ - Source/WebCore/Modules/mediastream/MediaStreamTrack.h | 2 +- - .../API/gtk/DOM/WebKitDOMCharacterData.cpp | 2 ++ - .../API/gtk/DOM/WebKitDOMDOMSelection.cpp | 10 +++++----- - .../InjectedBundle/API/gtk/DOM/WebKitDOMDeprecated.cpp | 1 + - .../WebCoreSupport/glib/WebEditorClientGLib.cpp | 1 + - Tools/TestWebKitAPI/Tests/WebKitGLib/TestUIClient.cpp | 2 +- - Tools/TestWebKitAPI/glib/WebKitGLib/TestMain.h | 2 ++ - 8 files changed, 19 insertions(+), 7 deletions(-) + .../InjectedBundle/API/gtk/DOM/WebKitDOMDOMWindow.cpp | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) -diff --git a/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp b/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp -index a401952f20b7..41df25b748e5 100644 ---- a/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp -+++ b/Source/WebCore/Modules/mediastream/MediaStreamTrack.cpp -@@ -31,6 +31,7 @@ - #if ENABLE(MEDIA_STREAM) - - #include "CommonAtomStrings.h" -+#include "ContextDestructionObserverInlines.h" - #include "Document.h" - #include "Event.h" - #include "EventNames.h" -@@ -645,6 +646,11 @@ Ref MediaStreamTrack::create(ScriptExecutionContext& context, - return track; +diff --git a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMWindow.cpp b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMWindow.cpp +index faa6ac17b7e6..9ab5ef182740 100644 +--- a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMWindow.cpp ++++ b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMWindow.cpp +@@ -1048,14 +1048,14 @@ glong webkit_dom_dom_window_get_orientation(WebKitDOMDOMWindow* self) + #endif /* ENABLE(ORIENTATION_EVENTS) */ } -+ScriptExecutionContext* MediaStreamTrack::scriptExecutionContext() const -+{ -+ return ActiveDOMObject::scriptExecutionContext(); -+} -+ - #if !RELEASE_LOG_DISABLED - WTFLogChannel& MediaStreamTrack::logChannel() const +-gboolean webkit_dom_dom_window_webkit_message_handlers_post_message(WebKitDOMDOMWindow* window, const gchar* handlerName, const gchar* message) ++gboolean webkit_dom_dom_window_webkit_message_handlers_post_message(WebKitDOMDOMWindow* self, const gchar* handlerName, const gchar* message) { -diff --git a/Source/WebCore/Modules/mediastream/MediaStreamTrack.h b/Source/WebCore/Modules/mediastream/MediaStreamTrack.h -index 9beb8a93fc42..cd42ed010b4c 100644 ---- a/Source/WebCore/Modules/mediastream/MediaStreamTrack.h -+++ b/Source/WebCore/Modules/mediastream/MediaStreamTrack.h -@@ -189,7 +189,7 @@ class MediaStreamTrack - protected: - MediaStreamTrack(ScriptExecutionContext&, Ref&&); +- g_return_val_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(window), FALSE); ++ g_return_val_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(self), FALSE); + g_return_val_if_fail(handlerName, FALSE); + g_return_val_if_fail(message, FALSE); -- ScriptExecutionContext* scriptExecutionContext() const final { return ActiveDOMObject::scriptExecutionContext(); } -+ ScriptExecutionContext* scriptExecutionContext() const final; + #if ENABLE(USER_MESSAGE_HANDLERS) +- auto* window = WebKit::core(window); ++ auto* window = WebKit::core(self); + if (!window->shouldHaveWebKitNamespaceForWorld(WebCore::mainThreadNormalWorldSingleton())) + return FALSE; - private: - explicit MediaStreamTrack(MediaStreamTrack&); -diff --git a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCharacterData.cpp b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCharacterData.cpp -index 200689e76721..c1fec9da2d2c 100644 ---- a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCharacterData.cpp -+++ b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMCharacterData.cpp -@@ -24,8 +24,10 @@ - #include "DOMObjectCache.h" - #include - #include -+#include - #include "GObjectEventListener.h" - #include -+#include - #include "WebKitDOMCharacterDataPrivate.h" - #include "WebKitDOMElementPrivate.h" - #include "WebKitDOMEventPrivate.h" -diff --git a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMSelection.cpp b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMSelection.cpp -index c5e283b08eab..2233726e3752 100644 ---- a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMSelection.cpp -+++ b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMSelection.cpp -@@ -397,7 +397,7 @@ void webkit_dom_dom_selection_set_base_and_extent(WebKitDOMDOMSelection* self, W - WebCore::DOMSelection* item = WebKit::core(self); - WebCore::Node* convertedBaseNode = WebKit::core(baseNode); - WebCore::Node* convertedExtentNode = WebKit::core(extentNode); -- item->setBaseAndExtent(convertedBaseNode, baseOffset, convertedExtentNode, extentOffset); -+ item->setBaseAndExtent(*convertedBaseNode, baseOffset, *convertedExtentNode, extentOffset); + +From 31e27a58c3e3fe92faee345e0f626cf70070f422 Mon Sep 17 00:00:00 2001 +From: Diego Pino Garcia +Date: Fri, 27 Jun 2025 17:35:33 +0200 +Subject: [PATCH] [GTK3] Fix build after 296427@main + https://bugs.webkit.org/show_bug.cgi?id=289440 + +Reviewed by NOBODY (OOPS!). + +Rename setter/getter functions, according to changes in 296427@main. + +* Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBaseElement.cpp: +(webkit_dom_html_base_element_set_href): +* Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLButtonElement.cpp: +(webkit_dom_html_button_element_set_button_type): +* Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLCanvasElement.cpp: +(webkit_dom_html_canvas_element_set_width): +(webkit_dom_html_canvas_element_set_height): +* Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLElement.cpp: +(webkit_dom_html_element_set_dir): +* Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLEmbedElement.cpp: +(webkit_dom_html_embed_element_get_height): +(webkit_dom_html_embed_element_get_width): +* Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFormElement.cpp: +(webkit_dom_html_form_element_set_enctype): +(webkit_dom_html_form_element_set_encoding): +(webkit_dom_html_form_element_set_method): +* Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLImageElement.cpp: +(webkit_dom_html_image_element_set_height): +(webkit_dom_html_image_element_get_hspace): +(webkit_dom_html_image_element_get_vspace): +(webkit_dom_html_image_element_set_width): +* Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLInputElement.cpp: +(webkit_dom_html_input_element_set_height): +(webkit_dom_html_input_element_set_input_type): +(webkit_dom_html_input_element_get_default_value): +(webkit_dom_html_input_element_set_default_value): +(webkit_dom_html_input_element_set_width): +* Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLIElement.cpp: +(webkit_dom_html_li_element_get_value): +* Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOListElement.cpp: +(webkit_dom_html_o_list_element_set_start): +* Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLObjectElement.cpp: +(webkit_dom_html_object_element_get_hspace): +(webkit_dom_html_object_element_get_vspace): +* Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptionElement.cpp: +(webkit_dom_html_option_element_set_label): +(webkit_dom_html_option_element_set_value): +* Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLPreElement.cpp: +(webkit_dom_html_pre_element_get_width): +* Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableCellElement.cpp: +(webkit_dom_html_table_cell_element_set_scope): +* Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTextAreaElement.cpp: +(webkit_dom_html_text_area_element_set_default_value): +--- + .../API/gtk/DOM/WebKitDOMHTMLBaseElement.cpp | 2 +- + .../API/gtk/DOM/WebKitDOMHTMLButtonElement.cpp | 2 +- + .../API/gtk/DOM/WebKitDOMHTMLCanvasElement.cpp | 4 ++-- + .../API/gtk/DOM/WebKitDOMHTMLElement.cpp | 2 +- + .../API/gtk/DOM/WebKitDOMHTMLEmbedElement.cpp | 4 ++-- + .../API/gtk/DOM/WebKitDOMHTMLFormElement.cpp | 6 +++--- + .../API/gtk/DOM/WebKitDOMHTMLImageElement.cpp | 8 ++++---- + .../API/gtk/DOM/WebKitDOMHTMLInputElement.cpp | 10 +++++----- + .../API/gtk/DOM/WebKitDOMHTMLLIElement.cpp | 2 +- + .../API/gtk/DOM/WebKitDOMHTMLOListElement.cpp | 2 +- + .../API/gtk/DOM/WebKitDOMHTMLObjectElement.cpp | 4 ++-- + .../API/gtk/DOM/WebKitDOMHTMLOptionElement.cpp | 4 ++-- + .../API/gtk/DOM/WebKitDOMHTMLPreElement.cpp | 2 +- + .../API/gtk/DOM/WebKitDOMHTMLTableCellElement.cpp | 2 +- + .../API/gtk/DOM/WebKitDOMHTMLTextAreaElement.cpp | 2 +- + 15 files changed, 28 insertions(+), 28 deletions(-) + +diff --git a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBaseElement.cpp b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBaseElement.cpp +index 78d53de55852..be2f36ebeefd 100644 +--- a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBaseElement.cpp ++++ b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBaseElement.cpp +@@ -184,7 +184,7 @@ void webkit_dom_html_base_element_set_href(WebKitDOMHTMLBaseElement* self, const + g_return_if_fail(WEBKIT_DOM_IS_HTML_BASE_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLBaseElement* item = WebKit::core(self); +- item->setHref(WTF::AtomString::fromUTF8(value)); ++ item->setAttributeWithoutSynchronization(WebCore::HTMLNames::hrefAttr, WTF::AtomString::fromUTF8(value)); } - void webkit_dom_dom_selection_set_position(WebKitDOMDOMSelection* self, WebKitDOMNode* node, gulong offset) -@@ -500,7 +500,7 @@ WebKitDOMNode* webkit_dom_dom_selection_get_base_node(WebKitDOMDOMSelection* sel - WebCore::JSMainThreadNullState state; - g_return_val_if_fail(WEBKIT_DOM_IS_DOM_SELECTION(self), 0); - WebCore::DOMSelection* item = WebKit::core(self); -- RefPtr gobjectResult = WTF::getPtr(item->baseNode()); -+ RefPtr gobjectResult = WTF::getPtr(item->anchorNode()); - return WebKit::kit(gobjectResult.get()); + gchar* webkit_dom_html_base_element_get_target(WebKitDOMHTMLBaseElement* self) +diff --git a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLButtonElement.cpp b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLButtonElement.cpp +index 17e146e09bdf..09cb7ceb074f 100644 +--- a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLButtonElement.cpp ++++ b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLButtonElement.cpp +@@ -307,7 +307,7 @@ void webkit_dom_html_button_element_set_button_type(WebKitDOMHTMLButtonElement* + g_return_if_fail(WEBKIT_DOM_IS_HTML_BUTTON_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLButtonElement* item = WebKit::core(self); +- item->setType(WTF::AtomString::fromUTF8(value)); ++ item->setAttributeWithoutSynchronization(WebCore::HTMLNames::typeAttr, WTF::AtomString::fromUTF8(value)); } -@@ -509,7 +509,7 @@ gulong webkit_dom_dom_selection_get_base_offset(WebKitDOMDOMSelection* self) + gchar* webkit_dom_html_button_element_get_name(WebKitDOMHTMLButtonElement* self) +diff --git a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLCanvasElement.cpp b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLCanvasElement.cpp +index 0ca47d0ef1ee..dd8c7fc11a47 100644 +--- a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLCanvasElement.cpp ++++ b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLCanvasElement.cpp +@@ -181,7 +181,7 @@ void webkit_dom_html_canvas_element_set_width(WebKitDOMHTMLCanvasElement* self, WebCore::JSMainThreadNullState state; - g_return_val_if_fail(WEBKIT_DOM_IS_DOM_SELECTION(self), 0); - WebCore::DOMSelection* item = WebKit::core(self); -- gulong result = item->baseOffset(); -+ gulong result = item->anchorOffset(); + g_return_if_fail(WEBKIT_DOM_IS_HTML_CANVAS_ELEMENT(self)); + WebCore::HTMLCanvasElement* item = WebKit::core(self); +- item->setWidth(value); ++ item->setIntegralAttribute(WebCore::HTMLNames::widthAttr, value); + } + + glong webkit_dom_html_canvas_element_get_height(WebKitDOMHTMLCanvasElement* self) +@@ -198,7 +198,7 @@ void webkit_dom_html_canvas_element_set_height(WebKitDOMHTMLCanvasElement* self, + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_CANVAS_ELEMENT(self)); + WebCore::HTMLCanvasElement* item = WebKit::core(self); +- item->setHeight(value); ++ item->setUnsignedIntegralAttribute(WebCore::HTMLNames::heightAttr, value); + } + + G_GNUC_END_IGNORE_DEPRECATIONS; +diff --git a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLElement.cpp b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLElement.cpp +index 33667b56133b..18acbcf35e83 100644 +--- a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLElement.cpp ++++ b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLElement.cpp +@@ -447,7 +447,7 @@ void webkit_dom_html_element_set_dir(WebKitDOMHTMLElement* self, const gchar* va + g_return_if_fail(WEBKIT_DOM_IS_HTML_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLElement* item = WebKit::core(self); +- item->setDir(WTF::AtomString::fromUTF8(value)); ++ item->setAttributeWithoutSynchronization(WebCore::HTMLNames::dirAttr, WTF::AtomString::fromUTF8(value)); + } + + glong webkit_dom_html_element_get_tab_index(WebKitDOMHTMLElement* self) +diff --git a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLEmbedElement.cpp b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLEmbedElement.cpp +index b73741772853..efb2b7d98595 100644 +--- a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLEmbedElement.cpp ++++ b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLEmbedElement.cpp +@@ -260,7 +260,7 @@ glong webkit_dom_html_embed_element_get_height(WebKitDOMHTMLEmbedElement* self) + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_EMBED_ELEMENT(self), 0); + WebCore::HTMLEmbedElement* item = WebKit::core(self); +- glong result = item->getIntegralAttribute(WebCore::HTMLNames::heightAttr); ++ glong result = item->integralAttribute(WebCore::HTMLNames::heightAttr); return result; } -@@ -518,7 +518,7 @@ WebKitDOMNode* webkit_dom_dom_selection_get_extent_node(WebKitDOMDOMSelection* s +@@ -331,7 +331,7 @@ glong webkit_dom_html_embed_element_get_width(WebKitDOMHTMLEmbedElement* self) WebCore::JSMainThreadNullState state; - g_return_val_if_fail(WEBKIT_DOM_IS_DOM_SELECTION(self), 0); - WebCore::DOMSelection* item = WebKit::core(self); -- RefPtr gobjectResult = WTF::getPtr(item->extentNode()); -+ RefPtr gobjectResult = WTF::getPtr(item->focusNode()); - return WebKit::kit(gobjectResult.get()); - } - -@@ -527,7 +527,7 @@ gulong webkit_dom_dom_selection_get_extent_offset(WebKitDOMDOMSelection* self) - WebCore::JSMainThreadNullState state; - g_return_val_if_fail(WEBKIT_DOM_IS_DOM_SELECTION(self), 0); - WebCore::DOMSelection* item = WebKit::core(self); -- gulong result = item->extentOffset(); -+ gulong result = item->focusOffset(); + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_EMBED_ELEMENT(self), 0); + WebCore::HTMLEmbedElement* item = WebKit::core(self); +- glong result = item->getIntegralAttribute(WebCore::HTMLNames::widthAttr); ++ glong result = item->integralAttribute(WebCore::HTMLNames::widthAttr); return result; } -diff --git a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDeprecated.cpp b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDeprecated.cpp -index 472a8d0d00eb..10a093a4ef5d 100644 ---- a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDeprecated.cpp -+++ b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDeprecated.cpp -@@ -23,6 +23,7 @@ - #include - #include - #include -+#include - #include - #include - #include "WebKitDOMDocumentPrivate.h" -diff --git a/Source/WebKit/WebProcess/WebCoreSupport/glib/WebEditorClientGLib.cpp b/Source/WebKit/WebProcess/WebCoreSupport/glib/WebEditorClientGLib.cpp -index ab382eed0311..c0691f3fba51 100644 ---- a/Source/WebKit/WebProcess/WebCoreSupport/glib/WebEditorClientGLib.cpp -+++ b/Source/WebKit/WebProcess/WebCoreSupport/glib/WebEditorClientGLib.cpp -@@ -26,6 +26,7 @@ - #include - #include - #include -+#include - #include - #include - #include +diff --git a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFormElement.cpp b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFormElement.cpp +index a8bf64b52d77..aebf4887a2e7 100644 +--- a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFormElement.cpp ++++ b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFormElement.cpp +@@ -349,7 +349,7 @@ void webkit_dom_html_form_element_set_enctype(WebKitDOMHTMLFormElement* self, co + g_return_if_fail(WEBKIT_DOM_IS_HTML_FORM_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLFormElement* item = WebKit::core(self); +- item->setEnctype(WTF::AtomString::fromUTF8(value)); ++ item->setAttributeWithoutSynchronization(WebCore::HTMLNames::enctypeAttr, WTF::AtomString::fromUTF8(value)); + } + + gchar* webkit_dom_html_form_element_get_encoding(WebKitDOMHTMLFormElement* self) +@@ -367,7 +367,7 @@ void webkit_dom_html_form_element_set_encoding(WebKitDOMHTMLFormElement* self, c + g_return_if_fail(WEBKIT_DOM_IS_HTML_FORM_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLFormElement* item = WebKit::core(self); +- item->setEnctype(WTF::AtomString::fromUTF8(value)); ++ item->setAttributeWithoutSynchronization(WebCore::HTMLNames::enctypeAttr, WTF::AtomString::fromUTF8(value)); + } + + gchar* webkit_dom_html_form_element_get_method(WebKitDOMHTMLFormElement* self) +@@ -385,7 +385,7 @@ void webkit_dom_html_form_element_set_method(WebKitDOMHTMLFormElement* self, con + g_return_if_fail(WEBKIT_DOM_IS_HTML_FORM_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLFormElement* item = WebKit::core(self); +- item->setMethod(WTF::AtomString::fromUTF8(value)); ++ item->setAttributeWithoutSynchronization(WebCore::HTMLNames::methodAttr, WTF::AtomString::fromUTF8(value)); + } + + gchar* webkit_dom_html_form_element_get_name(WebKitDOMHTMLFormElement* self) +diff --git a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLImageElement.cpp b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLImageElement.cpp +index 2e3eed819328..39f9699379ed 100644 +--- a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLImageElement.cpp ++++ b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLImageElement.cpp +@@ -512,7 +512,7 @@ void webkit_dom_html_image_element_set_height(WebKitDOMHTMLImageElement* self, g + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_IMAGE_ELEMENT(self)); + WebCore::HTMLImageElement* item = WebKit::core(self); +- item->setHeight(value); ++ item->setUnsignedIntegralAttribute(WebCore::HTMLNames::heightAttr, value); + } + + glong webkit_dom_html_image_element_get_hspace(WebKitDOMHTMLImageElement* self) +@@ -520,7 +520,7 @@ glong webkit_dom_html_image_element_get_hspace(WebKitDOMHTMLImageElement* self) + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_IMAGE_ELEMENT(self), 0); + WebCore::HTMLImageElement* item = WebKit::core(self); +- glong result = item->getIntegralAttribute(WebCore::HTMLNames::hspaceAttr); ++ glong result = item->integralAttribute(WebCore::HTMLNames::hspaceAttr); + return result; + } + +@@ -608,7 +608,7 @@ glong webkit_dom_html_image_element_get_vspace(WebKitDOMHTMLImageElement* self) + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_IMAGE_ELEMENT(self), 0); + WebCore::HTMLImageElement* item = WebKit::core(self); +- glong result = item->getIntegralAttribute(WebCore::HTMLNames::vspaceAttr); ++ glong result = item->integralAttribute(WebCore::HTMLNames::vspaceAttr); + return result; + } + +@@ -634,7 +634,7 @@ void webkit_dom_html_image_element_set_width(WebKitDOMHTMLImageElement* self, gl + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_IMAGE_ELEMENT(self)); + WebCore::HTMLImageElement* item = WebKit::core(self); +- item->setWidth(value); ++ item->setIntegralAttribute(WebCore::HTMLNames::widthAttr, value); + } + + gboolean webkit_dom_html_image_element_get_complete(WebKitDOMHTMLImageElement* self) +diff --git a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLInputElement.cpp b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLInputElement.cpp +index 0752d05673da..2946b1020b4e 100644 +--- a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLInputElement.cpp ++++ b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLInputElement.cpp +@@ -692,7 +692,7 @@ void webkit_dom_html_input_element_set_height(WebKitDOMHTMLInputElement* self, g + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self)); + WebCore::HTMLInputElement* item = WebKit::core(self); +- item->setHeight(value); ++ item->setUnsignedIntegralAttribute(WebCore::HTMLNames::heightAttr, value); + } + + gboolean webkit_dom_html_input_element_get_indeterminate(WebKitDOMHTMLInputElement* self) +@@ -841,7 +841,7 @@ void webkit_dom_html_input_element_set_input_type(WebKitDOMHTMLInputElement* sel + g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLInputElement* item = WebKit::core(self); +- item->setType(WTF::AtomString::fromUTF8(value)); ++ item->setAttributeWithoutSynchronization(WebCore::HTMLNames::typeAttr, WTF::AtomString::fromUTF8(value)); + } + + gchar* webkit_dom_html_input_element_get_default_value(WebKitDOMHTMLInputElement* self) +@@ -849,7 +849,7 @@ gchar* webkit_dom_html_input_element_get_default_value(WebKitDOMHTMLInputElement + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self), 0); + WebCore::HTMLInputElement* item = WebKit::core(self); +- gchar* result = convertToUTF8String(item->defaultValue()); ++ gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::valueAttr)); + return result; + } + +@@ -859,7 +859,7 @@ void webkit_dom_html_input_element_set_default_value(WebKitDOMHTMLInputElement* + g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLInputElement* item = WebKit::core(self); +- item->setDefaultValue(WTF::AtomString::fromUTF8(value)); ++ item->setAttributeWithoutSynchronization(WebCore::HTMLNames::valueAttr, WTF::AtomString::fromUTF8(value)); + } + + gchar* webkit_dom_html_input_element_get_value(WebKitDOMHTMLInputElement* self) +@@ -895,7 +895,7 @@ void webkit_dom_html_input_element_set_width(WebKitDOMHTMLInputElement* self, gu + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self)); + WebCore::HTMLInputElement* item = WebKit::core(self); +- item->setWidth(value); ++ item->setIntegralAttribute(WebCore::HTMLNames::widthAttr, value); + } + + gboolean webkit_dom_html_input_element_get_will_validate(WebKitDOMHTMLInputElement* self) +diff --git a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLIElement.cpp b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLIElement.cpp +index c22096e26f4d..66df49397c6a 100644 +--- a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLIElement.cpp ++++ b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLIElement.cpp +@@ -192,7 +192,7 @@ glong webkit_dom_html_li_element_get_value(WebKitDOMHTMLLIElement* self) + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_LI_ELEMENT(self), 0); + WebCore::HTMLLIElement* item = WebKit::core(self); +- glong result = item->getIntegralAttribute(WebCore::HTMLNames::valueAttr); ++ glong result = item->integralAttribute(WebCore::HTMLNames::valueAttr); + return result; + } + +diff --git a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOListElement.cpp b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOListElement.cpp +index 022ebe840bbf..3036ea1152c3 100644 +--- a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOListElement.cpp ++++ b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOListElement.cpp +@@ -217,7 +217,7 @@ void webkit_dom_html_o_list_element_set_start(WebKitDOMHTMLOListElement* self, g + WebCore::JSMainThreadNullState state; + g_return_if_fail(WEBKIT_DOM_IS_HTML_O_LIST_ELEMENT(self)); + WebCore::HTMLOListElement* item = WebKit::core(self); +- item->setStartForBindings(value); ++ item->setIntegralAttribute(WebCore::HTMLNames::startAttr, value); + } + + gchar* webkit_dom_html_o_list_element_get_type_attr(WebKitDOMHTMLOListElement* self) +diff --git a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLObjectElement.cpp b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLObjectElement.cpp +index 3e2ad49c8d3b..690b1a0a9cee 100644 +--- a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLObjectElement.cpp ++++ b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLObjectElement.cpp +@@ -612,7 +612,7 @@ glong webkit_dom_html_object_element_get_hspace(WebKitDOMHTMLObjectElement* self + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_OBJECT_ELEMENT(self), 0); + WebCore::HTMLObjectElement* item = WebKit::core(self); +- glong result = item->getIntegralAttribute(WebCore::HTMLNames::hspaceAttr); ++ glong result = item->integralAttribute(WebCore::HTMLNames::hspaceAttr); + return result; + } + +@@ -694,7 +694,7 @@ glong webkit_dom_html_object_element_get_vspace(WebKitDOMHTMLObjectElement* self + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_OBJECT_ELEMENT(self), 0); + WebCore::HTMLObjectElement* item = WebKit::core(self); +- glong result = item->getIntegralAttribute(WebCore::HTMLNames::vspaceAttr); ++ glong result = item->integralAttribute(WebCore::HTMLNames::vspaceAttr); + return result; + } + +diff --git a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptionElement.cpp b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptionElement.cpp +index 7fa821976293..66b7e757fa30 100644 +--- a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptionElement.cpp ++++ b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptionElement.cpp +@@ -304,7 +304,7 @@ void webkit_dom_html_option_element_set_label(WebKitDOMHTMLOptionElement* self, + g_return_if_fail(WEBKIT_DOM_IS_HTML_OPTION_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLOptionElement* item = WebKit::core(self); +- item->setLabel(WTF::AtomString::fromUTF8(value)); ++ item->setAttributeWithoutSynchronization(WebCore::HTMLNames::labelAttr, WTF::AtomString::fromUTF8(value)); + } + + gboolean webkit_dom_html_option_element_get_default_selected(WebKitDOMHTMLOptionElement* self) +@@ -356,7 +356,7 @@ void webkit_dom_html_option_element_set_value(WebKitDOMHTMLOptionElement* self, + g_return_if_fail(WEBKIT_DOM_IS_HTML_OPTION_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLOptionElement* item = WebKit::core(self); +- item->setValue(WTF::AtomString::fromUTF8(value)); ++ item->setAttributeWithoutSynchronization(WebCore::HTMLNames::valueAttr, WTF::AtomString::fromUTF8(value)); + } + + gchar* webkit_dom_html_option_element_get_text(WebKitDOMHTMLOptionElement* self) +diff --git a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLPreElement.cpp b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLPreElement.cpp +index 10631d7ee645..bfdcc1007e9e 100644 +--- a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLPreElement.cpp ++++ b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLPreElement.cpp +@@ -174,7 +174,7 @@ glong webkit_dom_html_pre_element_get_width(WebKitDOMHTMLPreElement* self) + WebCore::JSMainThreadNullState state; + g_return_val_if_fail(WEBKIT_DOM_IS_HTML_PRE_ELEMENT(self), 0); + WebCore::HTMLPreElement* item = WebKit::core(self); +- glong result = item->getIntegralAttribute(WebCore::HTMLNames::widthAttr); ++ glong result = item->integralAttribute(WebCore::HTMLNames::widthAttr); + return result; + } + +diff --git a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableCellElement.cpp b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableCellElement.cpp +index 3c450258090a..41ca69eabd78 100644 +--- a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableCellElement.cpp ++++ b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableCellElement.cpp +@@ -642,7 +642,7 @@ void webkit_dom_html_table_cell_element_set_scope(WebKitDOMHTMLTableCellElement* + g_return_if_fail(WEBKIT_DOM_IS_HTML_TABLE_CELL_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLTableCellElement* item = WebKit::core(self); +- item->setScope(WTF::AtomString::fromUTF8(value)); ++ item->setAttributeWithoutSynchronization(WebCore::HTMLNames::scopeAttr, WTF::AtomString::fromUTF8(value)); + } + + G_GNUC_END_IGNORE_DEPRECATIONS; +diff --git a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTextAreaElement.cpp b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTextAreaElement.cpp +index d92030734699..4f4b62c6397e 100644 +--- a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTextAreaElement.cpp ++++ b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTextAreaElement.cpp +@@ -502,7 +502,7 @@ void webkit_dom_html_text_area_element_set_default_value(WebKitDOMHTMLTextAreaEl + g_return_if_fail(WEBKIT_DOM_IS_HTML_TEXT_AREA_ELEMENT(self)); + g_return_if_fail(value); + WebCore::HTMLTextAreaElement* item = WebKit::core(self); +- item->setDefaultValue(WTF::String::fromUTF8(value)); ++ item->setAttributeWithoutSynchronization(WebCore::HTMLNames::valueAttr, WTF::AtomString::fromUTF8(value)); + } + + gchar* webkit_dom_html_text_area_element_get_value(WebKitDOMHTMLTextAreaElement* self) diff --git a/gtk3-scale-factor.patch b/gtk3-scale-factor.patch deleted file mode 100644 index c6f5a9e..0000000 --- a/gtk3-scale-factor.patch +++ /dev/null @@ -1,30 +0,0 @@ -From fe253715172d02456f4e1568a2e25cbca468129c Mon Sep 17 00:00:00 2001 -From: Carlos Garcia Campos -Date: Mon, 9 Jun 2025 06:55:17 -0700 -Subject: [PATCH] REGRESSION(293449@main): [GTK] rendering and fonts broken in - GTK 3 https://bugs.webkit.org/show_bug.cgi?id=294027 - -Reviewed by Michael Catanzaro. - -In 293449@main I moved the the code to get fopnt DPI from Web process to -UI process but I forgot the value received in the web process divided by -1024, so for GTK3 we need to multiply the value get. - -Canonical link: https://commits.webkit.org/295992@main ---- - Source/WebKit/UIProcess/gtk/SystemSettingsManagerProxyGtk.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Source/WebKit/UIProcess/gtk/SystemSettingsManagerProxyGtk.cpp b/Source/WebKit/UIProcess/gtk/SystemSettingsManagerProxyGtk.cpp -index 9ef483a6b0ab..349cd3d9efd7 100644 ---- a/Source/WebKit/UIProcess/gtk/SystemSettingsManagerProxyGtk.cpp -+++ b/Source/WebKit/UIProcess/gtk/SystemSettingsManagerProxyGtk.cpp -@@ -116,7 +116,7 @@ int SystemSettingsManagerProxy::xftDPI() const - // additional font scaling factor. - if (auto* display = gdk_display_get_default()) { - if (auto* screen = gdk_display_get_default_screen(display)) -- return gdk_screen_get_resolution(screen); -+ return gdk_screen_get_resolution(screen) * 1024; - } - #endif - int dpiSetting; diff --git a/sources b/sources index b377c05..8a9e7a0 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.49.2.tar.xz) = bd8a7b76492c83148d0004ebdef557caf10a166b0b61acb701eb5de8085ea1d0ac4b5ed662d219f7dbeb5462f904a91b07e985d57433ee1db3cb425a6996b2a1 -SHA512 (webkitgtk-2.49.2.tar.xz.asc) = 2261f6f212fc5fb33e5c81e8d114ec330719fe6c61df572a8de92484509db035197c9d493f9b8c9e9ac577e460ec7adb4ad1b8b23df2861fbf9ea4742d1a046b +SHA512 (webkitgtk-2.49.3.tar.xz) = 991375bd293013065d0efe931858ec9e004fde5831b1726931916f19e777575583fb1f8b06cb9017f491c0dd4cf0d446ee22f9d4da84f28db9411a40bbd8d4a7 +SHA512 (webkitgtk-2.49.3.tar.xz.asc) = 60106258d8e1cc75cd967c1713bba0e88a85048e27882ce27cdd7c1213e9d902e07add6259837da162058c94bc0d3d38d3f4009c792b4b06554d99a464d4e755 diff --git a/webkitgtk.spec b/webkitgtk.spec index d8f43b7..7ca0317 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -19,7 +19,7 @@ %endif Name: webkitgtk -Version: 2.49.2 +Version: 2.49.3 Release: %autorelease Summary: GTK web content engine library @@ -57,14 +57,9 @@ Source1: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz.asc # $ gpg --export --export-options export-minimal 013A0127AC9C65B34FFA62526C1009B693975393 5AA3BC334FD7E3369E7C77B291C559DBE4C9123B > webkitgtk-keys.gpg Source2: webkitgtk-keys.gpg -# https://bugs.webkit.org/show_bug.cgi?id=293816 -Patch: gtk3-build.patch - -# https://bugs.webkit.org/show_bug.cgi?id=293853 -Patch: build.patch - -# https://bugs.webkit.org/show_bug.cgi?id=294027 -Patch: gtk3-scale-factor.patch +# https://commits.webkit.org/296729@main +# https://github.com/WebKit/WebKit/pull/47302 +Patch0: gtk3-build.patch BuildRequires: bison BuildRequires: bubblewrap From bb6ce8f764c46cd12add92f752eb6aff7dbf4c66 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 25 Jul 2025 20:21:05 +0000 Subject: [PATCH 163/200] Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild From 52eb35f0bc388cf8418ace4c5ea8cde9b6b9d41e Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Sun, 3 Aug 2025 13:39:45 -0500 Subject: [PATCH 164/200] Update to 2.49.4 --- gtk3-build.patch | 452 ++++------------------------------------------- sources | 4 +- webkitgtk.spec | 7 +- 3 files changed, 42 insertions(+), 421 deletions(-) diff --git a/gtk3-build.patch b/gtk3-build.patch index 14a1dee..a9fe613 100644 --- a/gtk3-build.patch +++ b/gtk3-build.patch @@ -1,425 +1,47 @@ -From 38464a7003c6bf54820f6504fcd871892562c6a5 Mon Sep 17 00:00:00 2001 -From: Diego Pino Garcia -Date: Fri, 27 Jun 2025 08:58:20 -0700 -Subject: [PATCH] [GTK] Unreviewed, fix build after 296441@main - https://bugs.webkit.org/show_bug.cgi?id=294750 -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit +From cc5fa20e86a3b76814abeb8d6726f0f6c3b66d62 Mon Sep 17 00:00:00 2001 +From: Miguel Gomez +Date: Thu, 31 Jul 2025 23:49:57 -0700 +Subject: [PATCH] REGRESSION(297498@main): [WPE] build broken when using API + 1.1 https://bugs.webkit.org/show_bug.cgi?id=296738 -Fix build error: 'error: use of ‘window’ before deduction of ‘auto’'. +Reviewed by Carlos Garcia Campos. -* Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMWindow.cpp: -(webkit_dom_dom_window_webkit_message_handlers_post_message): +Update the webkitJavascriptResultCreate() function so it receives a +WebKit::JavaScriptEvaluationResult&& parameter instead of a +WebCore::SerializedScriptValue& one. -Canonical link: https://commits.webkit.org/296729@main +Also, add a missing JavaScriptEvaluationResult.h include. + +* Source/WebKit/UIProcess/API/glib/WebKitJavascriptResult.cpp: +(webkitJavascriptResultCreate): + +Canonical link: https://commits.webkit.org/298116@main --- - .../InjectedBundle/API/gtk/DOM/WebKitDOMDOMWindow.cpp | 6 +++--- - 1 file changed, 3 insertions(+), 3 deletions(-) + Source/WebKit/UIProcess/API/glib/WebKitJavascriptResult.cpp | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) -diff --git a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMWindow.cpp b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMWindow.cpp -index faa6ac17b7e6..9ab5ef182740 100644 ---- a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMWindow.cpp -+++ b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMDOMWindow.cpp -@@ -1048,14 +1048,14 @@ glong webkit_dom_dom_window_get_orientation(WebKitDOMDOMWindow* self) - #endif /* ENABLE(ORIENTATION_EVENTS) */ - } +diff --git a/Source/WebKit/UIProcess/API/glib/WebKitJavascriptResult.cpp b/Source/WebKit/UIProcess/API/glib/WebKitJavascriptResult.cpp +index cc724bb49be6..c65a360e7c8e 100644 +--- a/Source/WebKit/UIProcess/API/glib/WebKitJavascriptResult.cpp ++++ b/Source/WebKit/UIProcess/API/glib/WebKitJavascriptResult.cpp +@@ -23,6 +23,7 @@ + #if !ENABLE(2022_GLIB_API) --gboolean webkit_dom_dom_window_webkit_message_handlers_post_message(WebKitDOMDOMWindow* window, const gchar* handlerName, const gchar* message) -+gboolean webkit_dom_dom_window_webkit_message_handlers_post_message(WebKitDOMDOMWindow* self, const gchar* handlerName, const gchar* message) + #include "APISerializedScriptValue.h" ++#include "JavaScriptEvaluationResult.h" + #include "WebKitJavascriptResultPrivate.h" + #include + #include +@@ -46,10 +47,10 @@ struct _WebKitJavascriptResult { + + G_DEFINE_BOXED_TYPE(WebKitJavascriptResult, webkit_javascript_result, webkit_javascript_result_ref, webkit_javascript_result_unref) + +-WebKitJavascriptResult* webkitJavascriptResultCreate(WebCore::SerializedScriptValue& serializedScriptValue) ++WebKitJavascriptResult* webkitJavascriptResultCreate(WebKit::JavaScriptEvaluationResult&& scriptResult) { -- g_return_val_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(window), FALSE); -+ g_return_val_if_fail(WEBKIT_DOM_IS_DOM_WINDOW(self), FALSE); - g_return_val_if_fail(handlerName, FALSE); - g_return_val_if_fail(message, FALSE); - - #if ENABLE(USER_MESSAGE_HANDLERS) -- auto* window = WebKit::core(window); -+ auto* window = WebKit::core(self); - if (!window->shouldHaveWebKitNamespaceForWorld(WebCore::mainThreadNormalWorldSingleton())) - return FALSE; - - -From 31e27a58c3e3fe92faee345e0f626cf70070f422 Mon Sep 17 00:00:00 2001 -From: Diego Pino Garcia -Date: Fri, 27 Jun 2025 17:35:33 +0200 -Subject: [PATCH] [GTK3] Fix build after 296427@main - https://bugs.webkit.org/show_bug.cgi?id=289440 - -Reviewed by NOBODY (OOPS!). - -Rename setter/getter functions, according to changes in 296427@main. - -* Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBaseElement.cpp: -(webkit_dom_html_base_element_set_href): -* Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLButtonElement.cpp: -(webkit_dom_html_button_element_set_button_type): -* Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLCanvasElement.cpp: -(webkit_dom_html_canvas_element_set_width): -(webkit_dom_html_canvas_element_set_height): -* Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLElement.cpp: -(webkit_dom_html_element_set_dir): -* Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLEmbedElement.cpp: -(webkit_dom_html_embed_element_get_height): -(webkit_dom_html_embed_element_get_width): -* Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFormElement.cpp: -(webkit_dom_html_form_element_set_enctype): -(webkit_dom_html_form_element_set_encoding): -(webkit_dom_html_form_element_set_method): -* Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLImageElement.cpp: -(webkit_dom_html_image_element_set_height): -(webkit_dom_html_image_element_get_hspace): -(webkit_dom_html_image_element_get_vspace): -(webkit_dom_html_image_element_set_width): -* Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLInputElement.cpp: -(webkit_dom_html_input_element_set_height): -(webkit_dom_html_input_element_set_input_type): -(webkit_dom_html_input_element_get_default_value): -(webkit_dom_html_input_element_set_default_value): -(webkit_dom_html_input_element_set_width): -* Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLIElement.cpp: -(webkit_dom_html_li_element_get_value): -* Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOListElement.cpp: -(webkit_dom_html_o_list_element_set_start): -* Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLObjectElement.cpp: -(webkit_dom_html_object_element_get_hspace): -(webkit_dom_html_object_element_get_vspace): -* Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptionElement.cpp: -(webkit_dom_html_option_element_set_label): -(webkit_dom_html_option_element_set_value): -* Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLPreElement.cpp: -(webkit_dom_html_pre_element_get_width): -* Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableCellElement.cpp: -(webkit_dom_html_table_cell_element_set_scope): -* Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTextAreaElement.cpp: -(webkit_dom_html_text_area_element_set_default_value): ---- - .../API/gtk/DOM/WebKitDOMHTMLBaseElement.cpp | 2 +- - .../API/gtk/DOM/WebKitDOMHTMLButtonElement.cpp | 2 +- - .../API/gtk/DOM/WebKitDOMHTMLCanvasElement.cpp | 4 ++-- - .../API/gtk/DOM/WebKitDOMHTMLElement.cpp | 2 +- - .../API/gtk/DOM/WebKitDOMHTMLEmbedElement.cpp | 4 ++-- - .../API/gtk/DOM/WebKitDOMHTMLFormElement.cpp | 6 +++--- - .../API/gtk/DOM/WebKitDOMHTMLImageElement.cpp | 8 ++++---- - .../API/gtk/DOM/WebKitDOMHTMLInputElement.cpp | 10 +++++----- - .../API/gtk/DOM/WebKitDOMHTMLLIElement.cpp | 2 +- - .../API/gtk/DOM/WebKitDOMHTMLOListElement.cpp | 2 +- - .../API/gtk/DOM/WebKitDOMHTMLObjectElement.cpp | 4 ++-- - .../API/gtk/DOM/WebKitDOMHTMLOptionElement.cpp | 4 ++-- - .../API/gtk/DOM/WebKitDOMHTMLPreElement.cpp | 2 +- - .../API/gtk/DOM/WebKitDOMHTMLTableCellElement.cpp | 2 +- - .../API/gtk/DOM/WebKitDOMHTMLTextAreaElement.cpp | 2 +- - 15 files changed, 28 insertions(+), 28 deletions(-) - -diff --git a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBaseElement.cpp b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBaseElement.cpp -index 78d53de55852..be2f36ebeefd 100644 ---- a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBaseElement.cpp -+++ b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLBaseElement.cpp -@@ -184,7 +184,7 @@ void webkit_dom_html_base_element_set_href(WebKitDOMHTMLBaseElement* self, const - g_return_if_fail(WEBKIT_DOM_IS_HTML_BASE_ELEMENT(self)); - g_return_if_fail(value); - WebCore::HTMLBaseElement* item = WebKit::core(self); -- item->setHref(WTF::AtomString::fromUTF8(value)); -+ item->setAttributeWithoutSynchronization(WebCore::HTMLNames::hrefAttr, WTF::AtomString::fromUTF8(value)); - } - - gchar* webkit_dom_html_base_element_get_target(WebKitDOMHTMLBaseElement* self) -diff --git a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLButtonElement.cpp b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLButtonElement.cpp -index 17e146e09bdf..09cb7ceb074f 100644 ---- a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLButtonElement.cpp -+++ b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLButtonElement.cpp -@@ -307,7 +307,7 @@ void webkit_dom_html_button_element_set_button_type(WebKitDOMHTMLButtonElement* - g_return_if_fail(WEBKIT_DOM_IS_HTML_BUTTON_ELEMENT(self)); - g_return_if_fail(value); - WebCore::HTMLButtonElement* item = WebKit::core(self); -- item->setType(WTF::AtomString::fromUTF8(value)); -+ item->setAttributeWithoutSynchronization(WebCore::HTMLNames::typeAttr, WTF::AtomString::fromUTF8(value)); - } - - gchar* webkit_dom_html_button_element_get_name(WebKitDOMHTMLButtonElement* self) -diff --git a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLCanvasElement.cpp b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLCanvasElement.cpp -index 0ca47d0ef1ee..dd8c7fc11a47 100644 ---- a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLCanvasElement.cpp -+++ b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLCanvasElement.cpp -@@ -181,7 +181,7 @@ void webkit_dom_html_canvas_element_set_width(WebKitDOMHTMLCanvasElement* self, - WebCore::JSMainThreadNullState state; - g_return_if_fail(WEBKIT_DOM_IS_HTML_CANVAS_ELEMENT(self)); - WebCore::HTMLCanvasElement* item = WebKit::core(self); -- item->setWidth(value); -+ item->setIntegralAttribute(WebCore::HTMLNames::widthAttr, value); - } - - glong webkit_dom_html_canvas_element_get_height(WebKitDOMHTMLCanvasElement* self) -@@ -198,7 +198,7 @@ void webkit_dom_html_canvas_element_set_height(WebKitDOMHTMLCanvasElement* self, - WebCore::JSMainThreadNullState state; - g_return_if_fail(WEBKIT_DOM_IS_HTML_CANVAS_ELEMENT(self)); - WebCore::HTMLCanvasElement* item = WebKit::core(self); -- item->setHeight(value); -+ item->setUnsignedIntegralAttribute(WebCore::HTMLNames::heightAttr, value); - } - - G_GNUC_END_IGNORE_DEPRECATIONS; -diff --git a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLElement.cpp b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLElement.cpp -index 33667b56133b..18acbcf35e83 100644 ---- a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLElement.cpp -+++ b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLElement.cpp -@@ -447,7 +447,7 @@ void webkit_dom_html_element_set_dir(WebKitDOMHTMLElement* self, const gchar* va - g_return_if_fail(WEBKIT_DOM_IS_HTML_ELEMENT(self)); - g_return_if_fail(value); - WebCore::HTMLElement* item = WebKit::core(self); -- item->setDir(WTF::AtomString::fromUTF8(value)); -+ item->setAttributeWithoutSynchronization(WebCore::HTMLNames::dirAttr, WTF::AtomString::fromUTF8(value)); - } - - glong webkit_dom_html_element_get_tab_index(WebKitDOMHTMLElement* self) -diff --git a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLEmbedElement.cpp b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLEmbedElement.cpp -index b73741772853..efb2b7d98595 100644 ---- a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLEmbedElement.cpp -+++ b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLEmbedElement.cpp -@@ -260,7 +260,7 @@ glong webkit_dom_html_embed_element_get_height(WebKitDOMHTMLEmbedElement* self) - WebCore::JSMainThreadNullState state; - g_return_val_if_fail(WEBKIT_DOM_IS_HTML_EMBED_ELEMENT(self), 0); - WebCore::HTMLEmbedElement* item = WebKit::core(self); -- glong result = item->getIntegralAttribute(WebCore::HTMLNames::heightAttr); -+ glong result = item->integralAttribute(WebCore::HTMLNames::heightAttr); + WebKitJavascriptResult* result = static_cast(fastMalloc(sizeof(WebKitJavascriptResult))); +- new (result) WebKitJavascriptResult(serializedScriptValue); ++ new (result) WebKitJavascriptResult(WTFMove(scriptResult)); return result; } -@@ -331,7 +331,7 @@ glong webkit_dom_html_embed_element_get_width(WebKitDOMHTMLEmbedElement* self) - WebCore::JSMainThreadNullState state; - g_return_val_if_fail(WEBKIT_DOM_IS_HTML_EMBED_ELEMENT(self), 0); - WebCore::HTMLEmbedElement* item = WebKit::core(self); -- glong result = item->getIntegralAttribute(WebCore::HTMLNames::widthAttr); -+ glong result = item->integralAttribute(WebCore::HTMLNames::widthAttr); - return result; - } - -diff --git a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFormElement.cpp b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFormElement.cpp -index a8bf64b52d77..aebf4887a2e7 100644 ---- a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFormElement.cpp -+++ b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLFormElement.cpp -@@ -349,7 +349,7 @@ void webkit_dom_html_form_element_set_enctype(WebKitDOMHTMLFormElement* self, co - g_return_if_fail(WEBKIT_DOM_IS_HTML_FORM_ELEMENT(self)); - g_return_if_fail(value); - WebCore::HTMLFormElement* item = WebKit::core(self); -- item->setEnctype(WTF::AtomString::fromUTF8(value)); -+ item->setAttributeWithoutSynchronization(WebCore::HTMLNames::enctypeAttr, WTF::AtomString::fromUTF8(value)); - } - - gchar* webkit_dom_html_form_element_get_encoding(WebKitDOMHTMLFormElement* self) -@@ -367,7 +367,7 @@ void webkit_dom_html_form_element_set_encoding(WebKitDOMHTMLFormElement* self, c - g_return_if_fail(WEBKIT_DOM_IS_HTML_FORM_ELEMENT(self)); - g_return_if_fail(value); - WebCore::HTMLFormElement* item = WebKit::core(self); -- item->setEnctype(WTF::AtomString::fromUTF8(value)); -+ item->setAttributeWithoutSynchronization(WebCore::HTMLNames::enctypeAttr, WTF::AtomString::fromUTF8(value)); - } - - gchar* webkit_dom_html_form_element_get_method(WebKitDOMHTMLFormElement* self) -@@ -385,7 +385,7 @@ void webkit_dom_html_form_element_set_method(WebKitDOMHTMLFormElement* self, con - g_return_if_fail(WEBKIT_DOM_IS_HTML_FORM_ELEMENT(self)); - g_return_if_fail(value); - WebCore::HTMLFormElement* item = WebKit::core(self); -- item->setMethod(WTF::AtomString::fromUTF8(value)); -+ item->setAttributeWithoutSynchronization(WebCore::HTMLNames::methodAttr, WTF::AtomString::fromUTF8(value)); - } - - gchar* webkit_dom_html_form_element_get_name(WebKitDOMHTMLFormElement* self) -diff --git a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLImageElement.cpp b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLImageElement.cpp -index 2e3eed819328..39f9699379ed 100644 ---- a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLImageElement.cpp -+++ b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLImageElement.cpp -@@ -512,7 +512,7 @@ void webkit_dom_html_image_element_set_height(WebKitDOMHTMLImageElement* self, g - WebCore::JSMainThreadNullState state; - g_return_if_fail(WEBKIT_DOM_IS_HTML_IMAGE_ELEMENT(self)); - WebCore::HTMLImageElement* item = WebKit::core(self); -- item->setHeight(value); -+ item->setUnsignedIntegralAttribute(WebCore::HTMLNames::heightAttr, value); - } - - glong webkit_dom_html_image_element_get_hspace(WebKitDOMHTMLImageElement* self) -@@ -520,7 +520,7 @@ glong webkit_dom_html_image_element_get_hspace(WebKitDOMHTMLImageElement* self) - WebCore::JSMainThreadNullState state; - g_return_val_if_fail(WEBKIT_DOM_IS_HTML_IMAGE_ELEMENT(self), 0); - WebCore::HTMLImageElement* item = WebKit::core(self); -- glong result = item->getIntegralAttribute(WebCore::HTMLNames::hspaceAttr); -+ glong result = item->integralAttribute(WebCore::HTMLNames::hspaceAttr); - return result; - } - -@@ -608,7 +608,7 @@ glong webkit_dom_html_image_element_get_vspace(WebKitDOMHTMLImageElement* self) - WebCore::JSMainThreadNullState state; - g_return_val_if_fail(WEBKIT_DOM_IS_HTML_IMAGE_ELEMENT(self), 0); - WebCore::HTMLImageElement* item = WebKit::core(self); -- glong result = item->getIntegralAttribute(WebCore::HTMLNames::vspaceAttr); -+ glong result = item->integralAttribute(WebCore::HTMLNames::vspaceAttr); - return result; - } - -@@ -634,7 +634,7 @@ void webkit_dom_html_image_element_set_width(WebKitDOMHTMLImageElement* self, gl - WebCore::JSMainThreadNullState state; - g_return_if_fail(WEBKIT_DOM_IS_HTML_IMAGE_ELEMENT(self)); - WebCore::HTMLImageElement* item = WebKit::core(self); -- item->setWidth(value); -+ item->setIntegralAttribute(WebCore::HTMLNames::widthAttr, value); - } - - gboolean webkit_dom_html_image_element_get_complete(WebKitDOMHTMLImageElement* self) -diff --git a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLInputElement.cpp b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLInputElement.cpp -index 0752d05673da..2946b1020b4e 100644 ---- a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLInputElement.cpp -+++ b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLInputElement.cpp -@@ -692,7 +692,7 @@ void webkit_dom_html_input_element_set_height(WebKitDOMHTMLInputElement* self, g - WebCore::JSMainThreadNullState state; - g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self)); - WebCore::HTMLInputElement* item = WebKit::core(self); -- item->setHeight(value); -+ item->setUnsignedIntegralAttribute(WebCore::HTMLNames::heightAttr, value); - } - - gboolean webkit_dom_html_input_element_get_indeterminate(WebKitDOMHTMLInputElement* self) -@@ -841,7 +841,7 @@ void webkit_dom_html_input_element_set_input_type(WebKitDOMHTMLInputElement* sel - g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self)); - g_return_if_fail(value); - WebCore::HTMLInputElement* item = WebKit::core(self); -- item->setType(WTF::AtomString::fromUTF8(value)); -+ item->setAttributeWithoutSynchronization(WebCore::HTMLNames::typeAttr, WTF::AtomString::fromUTF8(value)); - } - - gchar* webkit_dom_html_input_element_get_default_value(WebKitDOMHTMLInputElement* self) -@@ -849,7 +849,7 @@ gchar* webkit_dom_html_input_element_get_default_value(WebKitDOMHTMLInputElement - WebCore::JSMainThreadNullState state; - g_return_val_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self), 0); - WebCore::HTMLInputElement* item = WebKit::core(self); -- gchar* result = convertToUTF8String(item->defaultValue()); -+ gchar* result = convertToUTF8String(item->attributeWithoutSynchronization(WebCore::HTMLNames::valueAttr)); - return result; - } - -@@ -859,7 +859,7 @@ void webkit_dom_html_input_element_set_default_value(WebKitDOMHTMLInputElement* - g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self)); - g_return_if_fail(value); - WebCore::HTMLInputElement* item = WebKit::core(self); -- item->setDefaultValue(WTF::AtomString::fromUTF8(value)); -+ item->setAttributeWithoutSynchronization(WebCore::HTMLNames::valueAttr, WTF::AtomString::fromUTF8(value)); - } - - gchar* webkit_dom_html_input_element_get_value(WebKitDOMHTMLInputElement* self) -@@ -895,7 +895,7 @@ void webkit_dom_html_input_element_set_width(WebKitDOMHTMLInputElement* self, gu - WebCore::JSMainThreadNullState state; - g_return_if_fail(WEBKIT_DOM_IS_HTML_INPUT_ELEMENT(self)); - WebCore::HTMLInputElement* item = WebKit::core(self); -- item->setWidth(value); -+ item->setIntegralAttribute(WebCore::HTMLNames::widthAttr, value); - } - - gboolean webkit_dom_html_input_element_get_will_validate(WebKitDOMHTMLInputElement* self) -diff --git a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLIElement.cpp b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLIElement.cpp -index c22096e26f4d..66df49397c6a 100644 ---- a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLIElement.cpp -+++ b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLLIElement.cpp -@@ -192,7 +192,7 @@ glong webkit_dom_html_li_element_get_value(WebKitDOMHTMLLIElement* self) - WebCore::JSMainThreadNullState state; - g_return_val_if_fail(WEBKIT_DOM_IS_HTML_LI_ELEMENT(self), 0); - WebCore::HTMLLIElement* item = WebKit::core(self); -- glong result = item->getIntegralAttribute(WebCore::HTMLNames::valueAttr); -+ glong result = item->integralAttribute(WebCore::HTMLNames::valueAttr); - return result; - } - -diff --git a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOListElement.cpp b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOListElement.cpp -index 022ebe840bbf..3036ea1152c3 100644 ---- a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOListElement.cpp -+++ b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOListElement.cpp -@@ -217,7 +217,7 @@ void webkit_dom_html_o_list_element_set_start(WebKitDOMHTMLOListElement* self, g - WebCore::JSMainThreadNullState state; - g_return_if_fail(WEBKIT_DOM_IS_HTML_O_LIST_ELEMENT(self)); - WebCore::HTMLOListElement* item = WebKit::core(self); -- item->setStartForBindings(value); -+ item->setIntegralAttribute(WebCore::HTMLNames::startAttr, value); - } - - gchar* webkit_dom_html_o_list_element_get_type_attr(WebKitDOMHTMLOListElement* self) -diff --git a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLObjectElement.cpp b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLObjectElement.cpp -index 3e2ad49c8d3b..690b1a0a9cee 100644 ---- a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLObjectElement.cpp -+++ b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLObjectElement.cpp -@@ -612,7 +612,7 @@ glong webkit_dom_html_object_element_get_hspace(WebKitDOMHTMLObjectElement* self - WebCore::JSMainThreadNullState state; - g_return_val_if_fail(WEBKIT_DOM_IS_HTML_OBJECT_ELEMENT(self), 0); - WebCore::HTMLObjectElement* item = WebKit::core(self); -- glong result = item->getIntegralAttribute(WebCore::HTMLNames::hspaceAttr); -+ glong result = item->integralAttribute(WebCore::HTMLNames::hspaceAttr); - return result; - } - -@@ -694,7 +694,7 @@ glong webkit_dom_html_object_element_get_vspace(WebKitDOMHTMLObjectElement* self - WebCore::JSMainThreadNullState state; - g_return_val_if_fail(WEBKIT_DOM_IS_HTML_OBJECT_ELEMENT(self), 0); - WebCore::HTMLObjectElement* item = WebKit::core(self); -- glong result = item->getIntegralAttribute(WebCore::HTMLNames::vspaceAttr); -+ glong result = item->integralAttribute(WebCore::HTMLNames::vspaceAttr); - return result; - } - -diff --git a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptionElement.cpp b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptionElement.cpp -index 7fa821976293..66b7e757fa30 100644 ---- a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptionElement.cpp -+++ b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLOptionElement.cpp -@@ -304,7 +304,7 @@ void webkit_dom_html_option_element_set_label(WebKitDOMHTMLOptionElement* self, - g_return_if_fail(WEBKIT_DOM_IS_HTML_OPTION_ELEMENT(self)); - g_return_if_fail(value); - WebCore::HTMLOptionElement* item = WebKit::core(self); -- item->setLabel(WTF::AtomString::fromUTF8(value)); -+ item->setAttributeWithoutSynchronization(WebCore::HTMLNames::labelAttr, WTF::AtomString::fromUTF8(value)); - } - - gboolean webkit_dom_html_option_element_get_default_selected(WebKitDOMHTMLOptionElement* self) -@@ -356,7 +356,7 @@ void webkit_dom_html_option_element_set_value(WebKitDOMHTMLOptionElement* self, - g_return_if_fail(WEBKIT_DOM_IS_HTML_OPTION_ELEMENT(self)); - g_return_if_fail(value); - WebCore::HTMLOptionElement* item = WebKit::core(self); -- item->setValue(WTF::AtomString::fromUTF8(value)); -+ item->setAttributeWithoutSynchronization(WebCore::HTMLNames::valueAttr, WTF::AtomString::fromUTF8(value)); - } - - gchar* webkit_dom_html_option_element_get_text(WebKitDOMHTMLOptionElement* self) -diff --git a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLPreElement.cpp b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLPreElement.cpp -index 10631d7ee645..bfdcc1007e9e 100644 ---- a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLPreElement.cpp -+++ b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLPreElement.cpp -@@ -174,7 +174,7 @@ glong webkit_dom_html_pre_element_get_width(WebKitDOMHTMLPreElement* self) - WebCore::JSMainThreadNullState state; - g_return_val_if_fail(WEBKIT_DOM_IS_HTML_PRE_ELEMENT(self), 0); - WebCore::HTMLPreElement* item = WebKit::core(self); -- glong result = item->getIntegralAttribute(WebCore::HTMLNames::widthAttr); -+ glong result = item->integralAttribute(WebCore::HTMLNames::widthAttr); - return result; - } - -diff --git a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableCellElement.cpp b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableCellElement.cpp -index 3c450258090a..41ca69eabd78 100644 ---- a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableCellElement.cpp -+++ b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTableCellElement.cpp -@@ -642,7 +642,7 @@ void webkit_dom_html_table_cell_element_set_scope(WebKitDOMHTMLTableCellElement* - g_return_if_fail(WEBKIT_DOM_IS_HTML_TABLE_CELL_ELEMENT(self)); - g_return_if_fail(value); - WebCore::HTMLTableCellElement* item = WebKit::core(self); -- item->setScope(WTF::AtomString::fromUTF8(value)); -+ item->setAttributeWithoutSynchronization(WebCore::HTMLNames::scopeAttr, WTF::AtomString::fromUTF8(value)); - } - - G_GNUC_END_IGNORE_DEPRECATIONS; -diff --git a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTextAreaElement.cpp b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTextAreaElement.cpp -index d92030734699..4f4b62c6397e 100644 ---- a/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTextAreaElement.cpp -+++ b/Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLTextAreaElement.cpp -@@ -502,7 +502,7 @@ void webkit_dom_html_text_area_element_set_default_value(WebKitDOMHTMLTextAreaEl - g_return_if_fail(WEBKIT_DOM_IS_HTML_TEXT_AREA_ELEMENT(self)); - g_return_if_fail(value); - WebCore::HTMLTextAreaElement* item = WebKit::core(self); -- item->setDefaultValue(WTF::String::fromUTF8(value)); -+ item->setAttributeWithoutSynchronization(WebCore::HTMLNames::valueAttr, WTF::AtomString::fromUTF8(value)); - } - - gchar* webkit_dom_html_text_area_element_get_value(WebKitDOMHTMLTextAreaElement* self) diff --git a/sources b/sources index 8a9e7a0..9507c0a 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.49.3.tar.xz) = 991375bd293013065d0efe931858ec9e004fde5831b1726931916f19e777575583fb1f8b06cb9017f491c0dd4cf0d446ee22f9d4da84f28db9411a40bbd8d4a7 -SHA512 (webkitgtk-2.49.3.tar.xz.asc) = 60106258d8e1cc75cd967c1713bba0e88a85048e27882ce27cdd7c1213e9d902e07add6259837da162058c94bc0d3d38d3f4009c792b4b06554d99a464d4e755 +SHA512 (webkitgtk-2.49.4.tar.xz) = 86b7787855e030add9cc1a68bc0b0fcf52afffb4e411aa8f94214cc06a1908b64caf6279c1baabd1bdb5ecf22cbc221019cb671cedee020ea844bcf55f9c26ac +SHA512 (webkitgtk-2.49.4.tar.xz.asc) = 766133cec1bf09c8003c3c13e5e64729595670f36c245604d4b3879bf6c2ff61051f6f53dd38964836dd202abc98bc50e958c0d88079b32cc318cfd8c13010bf diff --git a/webkitgtk.spec b/webkitgtk.spec index 7ca0317..7df6d02 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -19,7 +19,7 @@ %endif Name: webkitgtk -Version: 2.49.3 +Version: 2.49.4 Release: %autorelease Summary: GTK web content engine library @@ -57,9 +57,8 @@ Source1: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz.asc # $ gpg --export --export-options export-minimal 013A0127AC9C65B34FFA62526C1009B693975393 5AA3BC334FD7E3369E7C77B291C559DBE4C9123B > webkitgtk-keys.gpg Source2: webkitgtk-keys.gpg -# https://commits.webkit.org/296729@main -# https://github.com/WebKit/WebKit/pull/47302 -Patch0: gtk3-build.patch +# https://github.com/WebKit/WebKit/pull/48770 +Patch: gtk3-build.patch BuildRequires: bison BuildRequires: bubblewrap From b90e2d1d6795f15a2c9586e22626520ce8246e13 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Mon, 4 Aug 2025 16:27:39 -0500 Subject: [PATCH 165/200] Add patch to fix build without bmalloc --- system-malloc-build.patch | 50 +++++++++++++++++++++++++++++++++++++++ webkitgtk.spec | 3 +++ 2 files changed, 53 insertions(+) create mode 100644 system-malloc-build.patch diff --git a/system-malloc-build.patch b/system-malloc-build.patch new file mode 100644 index 0000000..ae2358c --- /dev/null +++ b/system-malloc-build.patch @@ -0,0 +1,50 @@ +diff --git a/Source/WebKit/Platform/IPC/Connection.h b/Source/WebKit/Platform/IPC/Connection.h +index dd82d57ef958..2d35a5f620e0 100644 +--- a/Source/WebKit/Platform/IPC/Connection.h ++++ b/Source/WebKit/Platform/IPC/Connection.h +@@ -35,8 +35,6 @@ + #include "SyncRequestID.h" + #include "Timeout.h" + #include +-#include +-#include + #include + #include + #include +@@ -82,6 +80,11 @@ + #include + #endif + ++#if !USE(SYSTEM_MALLOC) ++#include ++#include ++#endif ++ + #if USE(UNIX_DOMAIN_SOCKETS) + #include + #endif +diff --git a/Source/WebKit/Platform/IPC/Decoder.h b/Source/WebKit/Platform/IPC/Decoder.h +index 11f0de4ae504..3d93c67aa300 100644 +--- a/Source/WebKit/Platform/IPC/Decoder.h ++++ b/Source/WebKit/Platform/IPC/Decoder.h +@@ -29,8 +29,6 @@ + #include "MessageNames.h" + #include "ReceiverMatcher.h" + #include "SyncRequestID.h" +-#include +-#include + #include + #include + #include +@@ -47,6 +45,11 @@ + #include "ImportanceAssertion.h" + #endif + ++#if !USE(SYSTEM_MALLOC) ++#include ++#include ++#endif ++ + #ifdef __OBJC__ + typedef Class ClassStructPtr; + #else diff --git a/webkitgtk.spec b/webkitgtk.spec index 7df6d02..e203de8 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -60,6 +60,9 @@ Source2: webkitgtk-keys.gpg # https://github.com/WebKit/WebKit/pull/48770 Patch: gtk3-build.patch +# https://bugs.webkit.org/show_bug.cgi?id=296888 +Patch: system-malloc-build.patch + BuildRequires: bison BuildRequires: bubblewrap BuildRequires: clang From aa09283b95791b6323afa6a2f8a37b2175852ae4 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Tue, 2 Sep 2025 12:31:32 -0500 Subject: [PATCH 166/200] Update to 2.49.90 --- gtk3-build.patch | 47 ------------------------------------ sources | 4 ++-- system-malloc-build.patch | 50 --------------------------------------- webkitgtk.spec | 8 +------ 4 files changed, 3 insertions(+), 106 deletions(-) delete mode 100644 gtk3-build.patch delete mode 100644 system-malloc-build.patch diff --git a/gtk3-build.patch b/gtk3-build.patch deleted file mode 100644 index a9fe613..0000000 --- a/gtk3-build.patch +++ /dev/null @@ -1,47 +0,0 @@ -From cc5fa20e86a3b76814abeb8d6726f0f6c3b66d62 Mon Sep 17 00:00:00 2001 -From: Miguel Gomez -Date: Thu, 31 Jul 2025 23:49:57 -0700 -Subject: [PATCH] REGRESSION(297498@main): [WPE] build broken when using API - 1.1 https://bugs.webkit.org/show_bug.cgi?id=296738 - -Reviewed by Carlos Garcia Campos. - -Update the webkitJavascriptResultCreate() function so it receives a -WebKit::JavaScriptEvaluationResult&& parameter instead of a -WebCore::SerializedScriptValue& one. - -Also, add a missing JavaScriptEvaluationResult.h include. - -* Source/WebKit/UIProcess/API/glib/WebKitJavascriptResult.cpp: -(webkitJavascriptResultCreate): - -Canonical link: https://commits.webkit.org/298116@main ---- - Source/WebKit/UIProcess/API/glib/WebKitJavascriptResult.cpp | 5 +++-- - 1 file changed, 3 insertions(+), 2 deletions(-) - -diff --git a/Source/WebKit/UIProcess/API/glib/WebKitJavascriptResult.cpp b/Source/WebKit/UIProcess/API/glib/WebKitJavascriptResult.cpp -index cc724bb49be6..c65a360e7c8e 100644 ---- a/Source/WebKit/UIProcess/API/glib/WebKitJavascriptResult.cpp -+++ b/Source/WebKit/UIProcess/API/glib/WebKitJavascriptResult.cpp -@@ -23,6 +23,7 @@ - #if !ENABLE(2022_GLIB_API) - - #include "APISerializedScriptValue.h" -+#include "JavaScriptEvaluationResult.h" - #include "WebKitJavascriptResultPrivate.h" - #include - #include -@@ -46,10 +47,10 @@ struct _WebKitJavascriptResult { - - G_DEFINE_BOXED_TYPE(WebKitJavascriptResult, webkit_javascript_result, webkit_javascript_result_ref, webkit_javascript_result_unref) - --WebKitJavascriptResult* webkitJavascriptResultCreate(WebCore::SerializedScriptValue& serializedScriptValue) -+WebKitJavascriptResult* webkitJavascriptResultCreate(WebKit::JavaScriptEvaluationResult&& scriptResult) - { - WebKitJavascriptResult* result = static_cast(fastMalloc(sizeof(WebKitJavascriptResult))); -- new (result) WebKitJavascriptResult(serializedScriptValue); -+ new (result) WebKitJavascriptResult(WTFMove(scriptResult)); - return result; - } - diff --git a/sources b/sources index 9507c0a..6702262 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.49.4.tar.xz) = 86b7787855e030add9cc1a68bc0b0fcf52afffb4e411aa8f94214cc06a1908b64caf6279c1baabd1bdb5ecf22cbc221019cb671cedee020ea844bcf55f9c26ac -SHA512 (webkitgtk-2.49.4.tar.xz.asc) = 766133cec1bf09c8003c3c13e5e64729595670f36c245604d4b3879bf6c2ff61051f6f53dd38964836dd202abc98bc50e958c0d88079b32cc318cfd8c13010bf +SHA512 (webkitgtk-2.49.90.tar.xz) = 8ea04d6c8fff85fd5a023092f8127d009e8db158ba4289ada8b0003ed807a9bd598e891c7513fc090380802a6abcae6a2b4621dbe81ddf362d371ef9cbd4c740 +SHA512 (webkitgtk-2.49.90.tar.xz.asc) = 6e41bb3b678fc7a9cffeb97ba29d4333bea6ff30abf0f65e9177552fefe14c4fe130143627ba8974d642b1a12da5917c649404ea1ce5ec8981856a20baddf295 diff --git a/system-malloc-build.patch b/system-malloc-build.patch deleted file mode 100644 index ae2358c..0000000 --- a/system-malloc-build.patch +++ /dev/null @@ -1,50 +0,0 @@ -diff --git a/Source/WebKit/Platform/IPC/Connection.h b/Source/WebKit/Platform/IPC/Connection.h -index dd82d57ef958..2d35a5f620e0 100644 ---- a/Source/WebKit/Platform/IPC/Connection.h -+++ b/Source/WebKit/Platform/IPC/Connection.h -@@ -35,8 +35,6 @@ - #include "SyncRequestID.h" - #include "Timeout.h" - #include --#include --#include - #include - #include - #include -@@ -82,6 +80,11 @@ - #include - #endif - -+#if !USE(SYSTEM_MALLOC) -+#include -+#include -+#endif -+ - #if USE(UNIX_DOMAIN_SOCKETS) - #include - #endif -diff --git a/Source/WebKit/Platform/IPC/Decoder.h b/Source/WebKit/Platform/IPC/Decoder.h -index 11f0de4ae504..3d93c67aa300 100644 ---- a/Source/WebKit/Platform/IPC/Decoder.h -+++ b/Source/WebKit/Platform/IPC/Decoder.h -@@ -29,8 +29,6 @@ - #include "MessageNames.h" - #include "ReceiverMatcher.h" - #include "SyncRequestID.h" --#include --#include - #include - #include - #include -@@ -47,6 +45,11 @@ - #include "ImportanceAssertion.h" - #endif - -+#if !USE(SYSTEM_MALLOC) -+#include -+#include -+#endif -+ - #ifdef __OBJC__ - typedef Class ClassStructPtr; - #else diff --git a/webkitgtk.spec b/webkitgtk.spec index e203de8..3db100b 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -19,7 +19,7 @@ %endif Name: webkitgtk -Version: 2.49.4 +Version: 2.49.90 Release: %autorelease Summary: GTK web content engine library @@ -57,12 +57,6 @@ Source1: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz.asc # $ gpg --export --export-options export-minimal 013A0127AC9C65B34FFA62526C1009B693975393 5AA3BC334FD7E3369E7C77B291C559DBE4C9123B > webkitgtk-keys.gpg Source2: webkitgtk-keys.gpg -# https://github.com/WebKit/WebKit/pull/48770 -Patch: gtk3-build.patch - -# https://bugs.webkit.org/show_bug.cgi?id=296888 -Patch: system-malloc-build.patch - BuildRequires: bison BuildRequires: bubblewrap BuildRequires: clang From d67dad2242b3ae3f96c0e2b9eaa0713e02245b36 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Wed, 17 Sep 2025 15:59:17 -0500 Subject: [PATCH 167/200] Update to 2.50.0 --- sources | 4 ++-- webkitgtk.spec | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/sources b/sources index 6702262..652580c 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.49.90.tar.xz) = 8ea04d6c8fff85fd5a023092f8127d009e8db158ba4289ada8b0003ed807a9bd598e891c7513fc090380802a6abcae6a2b4621dbe81ddf362d371ef9cbd4c740 -SHA512 (webkitgtk-2.49.90.tar.xz.asc) = 6e41bb3b678fc7a9cffeb97ba29d4333bea6ff30abf0f65e9177552fefe14c4fe130143627ba8974d642b1a12da5917c649404ea1ce5ec8981856a20baddf295 +SHA512 (webkitgtk-2.50.0.tar.xz) = 7e3a7ecdd71e21566b3e364ccb7573bec4f86c7cf5fbe5ce6f3fcbb1ed8e5674d9ed239b48fe330afe8f7370bbb323f6500f78a25f4572d8e02d7d274ec843b4 +SHA512 (webkitgtk-2.50.0.tar.xz.asc) = 68c62bd077f28816c0177e93fa01deae85619f55b510f204d57b59f6ae2d9c1bd1255c2dae4214e43ed2ef6c76f4cd42433f47af4146fcd1f14f707c7a377a80 diff --git a/webkitgtk.spec b/webkitgtk.spec index 3db100b..f86f09f 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -19,7 +19,7 @@ %endif Name: webkitgtk -Version: 2.49.90 +Version: 2.50.0 Release: %autorelease Summary: GTK web content engine library From 8e9ab98460a5cec9884d6790e79421e2be3d2e13 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Thu, 18 Sep 2025 13:34:53 -0500 Subject: [PATCH 168/200] Fix build on i686 --- i686-build.patch | 18 ++++++++++++++++++ webkitgtk.spec | 3 +++ 2 files changed, 21 insertions(+) create mode 100644 i686-build.patch diff --git a/i686-build.patch b/i686-build.patch new file mode 100644 index 0000000..13f98bc --- /dev/null +++ b/i686-build.patch @@ -0,0 +1,18 @@ +diff --git a/Source/JavaScriptCore/llint/LowLevelInterpreter.asm b/Source/JavaScriptCore/llint/LowLevelInterpreter.asm +index af53fe269664..237fd6aab9c8 100644 +--- a/Source/JavaScriptCore/llint/LowLevelInterpreter.asm ++++ b/Source/JavaScriptCore/llint/LowLevelInterpreter.asm +@@ -2958,6 +2958,13 @@ _wasm_ipint_call_return_location_wide16: + _wasm_ipint_call_return_location_wide32: + crash() + ++if C_LOOP and not JSVALUE64 ++_op_instanceof_return_location: ++_op_instanceof_return_location_wide16: ++_op_instanceof_return_location_wide32: ++ crash() ++end ++ + end # WEBASSEMBLY + + include? LowLevelInterpreterAdditions diff --git a/webkitgtk.spec b/webkitgtk.spec index f86f09f..2df6af7 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -57,6 +57,9 @@ Source1: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz.asc # $ gpg --export --export-options export-minimal 013A0127AC9C65B34FFA62526C1009B693975393 5AA3BC334FD7E3369E7C77B291C559DBE4C9123B > webkitgtk-keys.gpg Source2: webkitgtk-keys.gpg +# https://bugs.webkit.org/show_bug.cgi?id=299018 +Patch: i686-build.patch + BuildRequires: bison BuildRequires: bubblewrap BuildRequires: clang From 463777b07dee4c87e8e619b788f37d139983f411 Mon Sep 17 00:00:00 2001 From: Tom Stellard Date: Mon, 29 Sep 2025 22:02:02 +0000 Subject: [PATCH 169/200] Backport upstream patch to fix build with clang-22 --- 0001-Change-use-of-removed-intrinsic.patch | 38 ++++++++++++++++++++++ webkitgtk.spec | 10 ++++++ 2 files changed, 48 insertions(+) create mode 100644 0001-Change-use-of-removed-intrinsic.patch diff --git a/0001-Change-use-of-removed-intrinsic.patch b/0001-Change-use-of-removed-intrinsic.patch new file mode 100644 index 0000000..25afe4e --- /dev/null +++ b/0001-Change-use-of-removed-intrinsic.patch @@ -0,0 +1,38 @@ +From 135488419331644e59091ecc73e682299d3937a4 Mon Sep 17 00:00:00 2001 +From: Devon Loehr +Date: Fri, 15 Aug 2025 14:31:27 +0000 +Subject: [PATCH] Change use of removed intrinsic + +A recent LLVM change removed the __builtin_ia32_vcvtph2ps256 intrinsic +because it can be implemented using __builtin_shufflevector and/or +__builtin_convertvector. This CL changes skia to use convertvector as +to match. + +Bug: chromium:438445382 +Change-Id: I2ed16cd507d7feeafba4c082b3840cbdd6368dd9 +Reviewed-on: https://skia-review.googlesource.com/c/skcms/+/1038217 +Reviewed-by: Ben Wagner +Commit-Queue: Ben Wagner +Auto-Submit: Devon Loehr +--- + Source/ThirdParty/skia/modules/skcms/src/src/Transform_inl.h | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/Source/ThirdParty/skia/modules/skcms/src/Transform_inl.h b/Source/ThirdParty/skia/modules/skcms/src/Transform_inl.h +index bc10e7d..99faf25 100644 +--- a/Source/ThirdParty/skia/modules/skcms/src/Transform_inl.h ++++ b/Source/ThirdParty/skia/modules/skcms/src/Transform_inl.h +@@ -156,8 +156,8 @@ SI F F_from_Half(U16 half) { + #elif defined(USING_AVX512F) + return (F)_mm512_cvtph_ps((__m256i)half); + #elif defined(USING_AVX_F16C) +- typedef int16_t __attribute__((vector_size(16))) I16; +- return __builtin_ia32_vcvtph2ps256((I16)half); ++ typedef _Float16 __attribute__((vector_size(16))) F16; ++ return __builtin_convertvector((F16)half, F); + #else + U32 wide = cast(half); + // A half is 1-5-10 sign-exponent-mantissa, with 15 exponent bias. +-- +2.50.1 + diff --git a/webkitgtk.spec b/webkitgtk.spec index 2df6af7..12fa871 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -60,6 +60,16 @@ Source2: webkitgtk-keys.gpg # https://bugs.webkit.org/show_bug.cgi?id=299018 Patch: i686-build.patch +# Fix for building with clang-22 +# This patch comes from: +# https://skia.googlesource.com/skcms.git/+/135488419331644e59091ecc73e682299d3937a4 +# This was bundled into skia here: +# https://github.com/google/skia/commit/9ab05b08ae3e83c80ac69c69008ed1048e9a0923 +# Then bundled into webkit in this commit: +# https://github.com/WebKit/WebKit/commit/7257554fb8cae41212228361c22c15c2557a0cbb +# I would expect this fix to be part of the next webkit release. +Patch: 0001-Change-use-of-removed-intrinsic.patch + BuildRequires: bison BuildRequires: bubblewrap BuildRequires: clang From 70f01d15c869fd03b2dc13e3d6ef029a9f5744ae Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Fri, 10 Oct 2025 15:23:51 -0500 Subject: [PATCH 170/200] Update to 2.50.1 --- i686-build.patch | 18 ------------------ sources | 4 ++-- webkitgtk.spec | 5 +---- 3 files changed, 3 insertions(+), 24 deletions(-) delete mode 100644 i686-build.patch diff --git a/i686-build.patch b/i686-build.patch deleted file mode 100644 index 13f98bc..0000000 --- a/i686-build.patch +++ /dev/null @@ -1,18 +0,0 @@ -diff --git a/Source/JavaScriptCore/llint/LowLevelInterpreter.asm b/Source/JavaScriptCore/llint/LowLevelInterpreter.asm -index af53fe269664..237fd6aab9c8 100644 ---- a/Source/JavaScriptCore/llint/LowLevelInterpreter.asm -+++ b/Source/JavaScriptCore/llint/LowLevelInterpreter.asm -@@ -2958,6 +2958,13 @@ _wasm_ipint_call_return_location_wide16: - _wasm_ipint_call_return_location_wide32: - crash() - -+if C_LOOP and not JSVALUE64 -+_op_instanceof_return_location: -+_op_instanceof_return_location_wide16: -+_op_instanceof_return_location_wide32: -+ crash() -+end -+ - end # WEBASSEMBLY - - include? LowLevelInterpreterAdditions diff --git a/sources b/sources index 652580c..ff730c9 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.50.0.tar.xz) = 7e3a7ecdd71e21566b3e364ccb7573bec4f86c7cf5fbe5ce6f3fcbb1ed8e5674d9ed239b48fe330afe8f7370bbb323f6500f78a25f4572d8e02d7d274ec843b4 -SHA512 (webkitgtk-2.50.0.tar.xz.asc) = 68c62bd077f28816c0177e93fa01deae85619f55b510f204d57b59f6ae2d9c1bd1255c2dae4214e43ed2ef6c76f4cd42433f47af4146fcd1f14f707c7a377a80 +SHA512 (webkitgtk-2.50.1.tar.xz) = 4b7b6c5ae02f1dbcff26e7af4ee4e3cdd4435c61dfaf17c2981422358dea01cfba0ffe8c6f12c7864b6f1ee6c9906dfa64248bc95effed526e9ade3ad1292888 +SHA512 (webkitgtk-2.50.1.tar.xz.asc) = c430677ec8e147750f3dc69f2b6252da9bc9b4df61c0976213dea535be8973dc746b22137d508899d28095f58197e52ffa003ab2033b2c20a6c03d1a1b327e2c diff --git a/webkitgtk.spec b/webkitgtk.spec index 12fa871..e5d318a 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -19,7 +19,7 @@ %endif Name: webkitgtk -Version: 2.50.0 +Version: 2.50.1 Release: %autorelease Summary: GTK web content engine library @@ -57,9 +57,6 @@ Source1: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz.asc # $ gpg --export --export-options export-minimal 013A0127AC9C65B34FFA62526C1009B693975393 5AA3BC334FD7E3369E7C77B291C559DBE4C9123B > webkitgtk-keys.gpg Source2: webkitgtk-keys.gpg -# https://bugs.webkit.org/show_bug.cgi?id=299018 -Patch: i686-build.patch - # Fix for building with clang-22 # This patch comes from: # https://skia.googlesource.com/skcms.git/+/135488419331644e59091ecc73e682299d3937a4 From 759c43c95978e35f2f1409e8c103f3a229347863 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Wed, 29 Oct 2025 16:09:53 -0500 Subject: [PATCH 171/200] Update to WebKitGTK 2.51.1 --- 0001-Change-use-of-removed-intrinsic.patch | 38 ----------- i686-build.patch | 79 ++++++++++++++++++++++ no-file-prefix-map.patch | 15 ++++ sources | 4 +- webkitgtk.spec | 18 ++--- 5 files changed, 103 insertions(+), 51 deletions(-) delete mode 100644 0001-Change-use-of-removed-intrinsic.patch create mode 100644 i686-build.patch create mode 100644 no-file-prefix-map.patch diff --git a/0001-Change-use-of-removed-intrinsic.patch b/0001-Change-use-of-removed-intrinsic.patch deleted file mode 100644 index 25afe4e..0000000 --- a/0001-Change-use-of-removed-intrinsic.patch +++ /dev/null @@ -1,38 +0,0 @@ -From 135488419331644e59091ecc73e682299d3937a4 Mon Sep 17 00:00:00 2001 -From: Devon Loehr -Date: Fri, 15 Aug 2025 14:31:27 +0000 -Subject: [PATCH] Change use of removed intrinsic - -A recent LLVM change removed the __builtin_ia32_vcvtph2ps256 intrinsic -because it can be implemented using __builtin_shufflevector and/or -__builtin_convertvector. This CL changes skia to use convertvector as -to match. - -Bug: chromium:438445382 -Change-Id: I2ed16cd507d7feeafba4c082b3840cbdd6368dd9 -Reviewed-on: https://skia-review.googlesource.com/c/skcms/+/1038217 -Reviewed-by: Ben Wagner -Commit-Queue: Ben Wagner -Auto-Submit: Devon Loehr ---- - Source/ThirdParty/skia/modules/skcms/src/src/Transform_inl.h | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/Source/ThirdParty/skia/modules/skcms/src/Transform_inl.h b/Source/ThirdParty/skia/modules/skcms/src/Transform_inl.h -index bc10e7d..99faf25 100644 ---- a/Source/ThirdParty/skia/modules/skcms/src/Transform_inl.h -+++ b/Source/ThirdParty/skia/modules/skcms/src/Transform_inl.h -@@ -156,8 +156,8 @@ SI F F_from_Half(U16 half) { - #elif defined(USING_AVX512F) - return (F)_mm512_cvtph_ps((__m256i)half); - #elif defined(USING_AVX_F16C) -- typedef int16_t __attribute__((vector_size(16))) I16; -- return __builtin_ia32_vcvtph2ps256((I16)half); -+ typedef _Float16 __attribute__((vector_size(16))) F16; -+ return __builtin_convertvector((F16)half, F); - #else - U32 wide = cast(half); - // A half is 1-5-10 sign-exponent-mantissa, with 15 exponent bias. --- -2.50.1 - diff --git a/i686-build.patch b/i686-build.patch new file mode 100644 index 0000000..a5d1827 --- /dev/null +++ b/i686-build.patch @@ -0,0 +1,79 @@ +From f69f7075f71a90aef0a89f84a718e2ee4650d460 Mon Sep 17 00:00:00 2001 +From: Michael Catanzaro +Date: Wed, 29 Oct 2025 14:33:21 -0500 +Subject: [PATCH] [GTK] [2.51.1] Fails to build on i386: redefinition of 'a' + with a different type: 'const char *' vs 'const Latin1Character *' (aka + 'const unsigned char *') https://bugs.webkit.org/show_bug.cgi?id=301512 + +Reviewed by NOBODY (OOPS!). + +Unfortunately I renamed the parameters to exactly the same names as the +local variables. I prefer to not rename the parameters again, since +these are the best names for the other architectures, so let's change +the locals instead. +--- + Source/WTF/wtf/text/StringCommon.h | 28 ++++++++++++++-------------- + 1 file changed, 14 insertions(+), 14 deletions(-) + +diff --git a/Source/WTF/wtf/text/StringCommon.h b/Source/WTF/wtf/text/StringCommon.h +index 4e1e4ffbfdd8..e22d45610544 100644 +--- a/Source/WTF/wtf/text/StringCommon.h ++++ b/Source/WTF/wtf/text/StringCommon.h +@@ -246,24 +246,24 @@ ALWAYS_INLINE bool equal(const Latin1Character* a, std::span::max()); + unsigned length = b.size(); + +- const char* a = byteCast(a); +- const char* b = byteCast(b.data()); ++ const char* aString = byteCast(a); ++ const char* bString = byteCast(b.data()); + + unsigned wordLength = length >> 2; + for (unsigned i = 0; i != wordLength; ++i) { +- if (unalignedLoad(a) != unalignedLoad(b)) ++ if (unalignedLoad(aString) != unalignedLoad(bString)) + return false; +- a += sizeof(uint32_t); +- b += sizeof(uint32_t); ++ aString += sizeof(uint32_t); ++ bString += sizeof(uint32_t); + } + + length &= 3; + + if (length) { +- const Latin1Character* aRemainder = byteCast(a); +- const Latin1Character* bRemainder = byteCast(b); ++ const Latin1Character* aRemainder = byteCast(aString); ++ const Latin1Character* bRemainder = byteCast(bString); + +- for (unsigned i = 0; i < length; ++i) { ++ for (unsigned i = 0; i < length; ++i) { + if (aRemainder[i] != bRemainder[i]) + return false; + } +@@ -277,18 +277,18 @@ ALWAYS_INLINE bool equal(const char16_t* a, std::span b) + ASSERT(b.size() <= std::numeric_limits::max()); + unsigned length = b.size(); + +- const char* a = reinterpret_cast(a); +- const char* b = reinterpret_cast(b.data()); ++ const char* aString = reinterpret_cast(a); ++ const char* bString = reinterpret_cast(b.data()); + + unsigned wordLength = length >> 1; + for (unsigned i = 0; i != wordLength; ++i) { +- if (unalignedLoad(a) != unalignedLoad(b)) ++ if (unalignedLoad(aString) != unalignedLoad(bString)) + return false; +- a += sizeof(uint32_t); +- b += sizeof(uint32_t); ++ aString += sizeof(uint32_t); ++ bString += sizeof(uint32_t); + } + +- if (length & 1 && *reinterpret_cast(a) != *reinterpret_cast(b)) ++ if (length & 1 && *reinterpret_cast(aString) != *reinterpret_cast(bString)) + return false; + + return true; diff --git a/no-file-prefix-map.patch b/no-file-prefix-map.patch new file mode 100644 index 0000000..ef851db --- /dev/null +++ b/no-file-prefix-map.patch @@ -0,0 +1,15 @@ +diff --git a/Source/cmake/OptionsCommon.cmake b/Source/cmake/OptionsCommon.cmake +index f95e7fc85a3d..c1dd2ce4651f 100644 +--- a/Source/cmake/OptionsCommon.cmake ++++ b/Source/cmake/OptionsCommon.cmake +@@ -218,10 +218,6 @@ option(GCC_OFFLINEASM_SOURCE_MAP + "Produce debug line information for offlineasm-generated code" + ${GCC_OFFLINEASM_SOURCE_MAP_DEFAULT}) + +-# Record references to files using relative paths instead of absolute. +-# This helps both with reproducible builds and ccache hits. +-WEBKIT_APPEND_GLOBAL_COMPILER_FLAGS(-ffile-prefix-map=${CMAKE_SOURCE_DIR}=.) +- + option(USE_APPLE_ICU "Use Apple's internal ICU" ${APPLE}) + + # Enable the usage of OpenMP. diff --git a/sources b/sources index ff730c9..196b659 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.50.1.tar.xz) = 4b7b6c5ae02f1dbcff26e7af4ee4e3cdd4435c61dfaf17c2981422358dea01cfba0ffe8c6f12c7864b6f1ee6c9906dfa64248bc95effed526e9ade3ad1292888 -SHA512 (webkitgtk-2.50.1.tar.xz.asc) = c430677ec8e147750f3dc69f2b6252da9bc9b4df61c0976213dea535be8973dc746b22137d508899d28095f58197e52ffa003ab2033b2c20a6c03d1a1b327e2c +SHA512 (webkitgtk-2.51.1.tar.xz) = 64b9e6142d6329b307bcce832df24ad3b0e559d0ed66a71f8724043002b7570f930a5016c7c00336320206ffc5b8ad1d09496f5b1ddb9097b4a1022d4a4665ab +SHA512 (webkitgtk-2.51.1.tar.xz.asc) = b2123b7c42d8cdbfe2d6a02821224f9895bd9e6c4eaacb1a0df1bcf251fcbfe78347bee50da53b2e381374a911439901bcf6a39d68d38f8452451e3d92812dc8 diff --git a/webkitgtk.spec b/webkitgtk.spec index e5d318a..7550030 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -19,7 +19,7 @@ %endif Name: webkitgtk -Version: 2.50.1 +Version: 2.51.1 Release: %autorelease Summary: GTK web content engine library @@ -57,15 +57,11 @@ Source1: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz.asc # $ gpg --export --export-options export-minimal 013A0127AC9C65B34FFA62526C1009B693975393 5AA3BC334FD7E3369E7C77B291C559DBE4C9123B > webkitgtk-keys.gpg Source2: webkitgtk-keys.gpg -# Fix for building with clang-22 -# This patch comes from: -# https://skia.googlesource.com/skcms.git/+/135488419331644e59091ecc73e682299d3937a4 -# This was bundled into skia here: -# https://github.com/google/skia/commit/9ab05b08ae3e83c80ac69c69008ed1048e9a0923 -# Then bundled into webkit in this commit: -# https://github.com/WebKit/WebKit/commit/7257554fb8cae41212228361c22c15c2557a0cbb -# I would expect this fix to be part of the next webkit release. -Patch: 0001-Change-use-of-removed-intrinsic.patch +# https://bugs.webkit.org/show_bug.cgi?id=301512 +Patch: i686-build.patch + +# https://bugzilla.redhat.com/show_bug.cgi?id=2408418 +Patch: no-file-prefix-map.patch BuildRequires: bison BuildRequires: bubblewrap @@ -139,7 +135,7 @@ BuildRequires: pkgconfig(wayland-server) BuildRequires: pkgconfig(xt) # Filter out provides for private libraries -%global __provides_exclude_from ^(%{_libdir}/webkit2gtk-4\\.0/.*\\.so|%{_libdir}/webkit2gtk-4\\.1/.*\\.so|%{_libdir}/webkitgtk-6\\.0/.*\\.so)$ +%global __provides_exclude_from ^(%{_libdir}/webkit2gtk-4\\.1/.*\\.so|%{_libdir}/webkitgtk-6\\.0/.*\\.so)$ %description WebKitGTK is the port of the WebKit web rendering engine to the From 11bc4dad004fb9792e079293893ee502fdc7cdd1 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Thu, 6 Nov 2025 18:30:35 -0600 Subject: [PATCH 172/200] Use pushd/popd instead of overriding _vpath_builddir This seems nicer. --- webkitgtk.spec | 24 ++++++++++++++++-------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/webkitgtk.spec b/webkitgtk.spec index 7550030..5d25cd8 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -308,8 +308,9 @@ files for developing applications that use JavaScript engine from webkit2gtk-4.1 %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 \ +mkdir webkitgtk-6.0 +pushd webkitgtk-6.0 +%cmake -S .. \ -GNinja \ -DPORT=GTK \ -DCMAKE_BUILD_TYPE=Release \ @@ -319,9 +320,11 @@ files for developing applications that use JavaScript engine from webkit2gtk-4.1 -DENABLE_DOCUMENTATION=OFF \ %endif %{nil} +popd -%define _vpath_builddir %{_vendor}-%{_target_os}-build/webkit2gtk-4.1 -%cmake \ +mkdir webkit2gtk-4.1 +pushd webkit2gtk-4.1 +%cmake -S .. \ -GNinja \ -DPORT=GTK \ -DCMAKE_BUILD_TYPE=Release \ @@ -332,21 +335,26 @@ files for developing applications that use JavaScript engine from webkit2gtk-4.1 -DENABLE_DOCUMENTATION=OFF \ %endif %{nil} +popd -%define _vpath_builddir %{_vendor}-%{_target_os}-build/webkitgtk-6.0 +pushd webkitgtk-6.0 export NINJA_STATUS="[1/2][%f/%t %es] " %cmake_build %limit_build -m 3072 +popd -%define _vpath_builddir %{_vendor}-%{_target_os}-build/webkit2gtk-4.1 +pushd webkit2gtk-4.1 export NINJA_STATUS="[2/2][%f/%t %es] " %cmake_build %limit_build -m 3072 +popd %install -%define _vpath_builddir %{_vendor}-%{_target_os}-build/webkitgtk-6.0 +pushd webkitgtk-6.0 %cmake_install +popd -%define _vpath_builddir %{_vendor}-%{_target_os}-build/webkit2gtk-4.1 +pushd webkit2gtk-4.1 %cmake_install +popd %find_lang WebKitGTK-6.0 %find_lang WebKitGTK-4.1 From 86e5954ac4d0d40aa7a76b043c463d2969536717 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Wed, 19 Nov 2025 10:12:57 -0600 Subject: [PATCH 173/200] Update to 2.51.2 --- i686-build.patch | 79 ---------------------------------------- no-file-prefix-map.patch | 15 -------- s390x-build.patch | 43 ++++++++++++++++++++++ sources | 4 +- webkitgtk.spec | 9 ++--- 5 files changed, 48 insertions(+), 102 deletions(-) delete mode 100644 i686-build.patch delete mode 100644 no-file-prefix-map.patch create mode 100644 s390x-build.patch diff --git a/i686-build.patch b/i686-build.patch deleted file mode 100644 index a5d1827..0000000 --- a/i686-build.patch +++ /dev/null @@ -1,79 +0,0 @@ -From f69f7075f71a90aef0a89f84a718e2ee4650d460 Mon Sep 17 00:00:00 2001 -From: Michael Catanzaro -Date: Wed, 29 Oct 2025 14:33:21 -0500 -Subject: [PATCH] [GTK] [2.51.1] Fails to build on i386: redefinition of 'a' - with a different type: 'const char *' vs 'const Latin1Character *' (aka - 'const unsigned char *') https://bugs.webkit.org/show_bug.cgi?id=301512 - -Reviewed by NOBODY (OOPS!). - -Unfortunately I renamed the parameters to exactly the same names as the -local variables. I prefer to not rename the parameters again, since -these are the best names for the other architectures, so let's change -the locals instead. ---- - Source/WTF/wtf/text/StringCommon.h | 28 ++++++++++++++-------------- - 1 file changed, 14 insertions(+), 14 deletions(-) - -diff --git a/Source/WTF/wtf/text/StringCommon.h b/Source/WTF/wtf/text/StringCommon.h -index 4e1e4ffbfdd8..e22d45610544 100644 ---- a/Source/WTF/wtf/text/StringCommon.h -+++ b/Source/WTF/wtf/text/StringCommon.h -@@ -246,24 +246,24 @@ ALWAYS_INLINE bool equal(const Latin1Character* a, std::span::max()); - unsigned length = b.size(); - -- const char* a = byteCast(a); -- const char* b = byteCast(b.data()); -+ const char* aString = byteCast(a); -+ const char* bString = byteCast(b.data()); - - unsigned wordLength = length >> 2; - for (unsigned i = 0; i != wordLength; ++i) { -- if (unalignedLoad(a) != unalignedLoad(b)) -+ if (unalignedLoad(aString) != unalignedLoad(bString)) - return false; -- a += sizeof(uint32_t); -- b += sizeof(uint32_t); -+ aString += sizeof(uint32_t); -+ bString += sizeof(uint32_t); - } - - length &= 3; - - if (length) { -- const Latin1Character* aRemainder = byteCast(a); -- const Latin1Character* bRemainder = byteCast(b); -+ const Latin1Character* aRemainder = byteCast(aString); -+ const Latin1Character* bRemainder = byteCast(bString); - -- for (unsigned i = 0; i < length; ++i) { -+ for (unsigned i = 0; i < length; ++i) { - if (aRemainder[i] != bRemainder[i]) - return false; - } -@@ -277,18 +277,18 @@ ALWAYS_INLINE bool equal(const char16_t* a, std::span b) - ASSERT(b.size() <= std::numeric_limits::max()); - unsigned length = b.size(); - -- const char* a = reinterpret_cast(a); -- const char* b = reinterpret_cast(b.data()); -+ const char* aString = reinterpret_cast(a); -+ const char* bString = reinterpret_cast(b.data()); - - unsigned wordLength = length >> 1; - for (unsigned i = 0; i != wordLength; ++i) { -- if (unalignedLoad(a) != unalignedLoad(b)) -+ if (unalignedLoad(aString) != unalignedLoad(bString)) - return false; -- a += sizeof(uint32_t); -- b += sizeof(uint32_t); -+ aString += sizeof(uint32_t); -+ bString += sizeof(uint32_t); - } - -- if (length & 1 && *reinterpret_cast(a) != *reinterpret_cast(b)) -+ if (length & 1 && *reinterpret_cast(aString) != *reinterpret_cast(bString)) - return false; - - return true; diff --git a/no-file-prefix-map.patch b/no-file-prefix-map.patch deleted file mode 100644 index ef851db..0000000 --- a/no-file-prefix-map.patch +++ /dev/null @@ -1,15 +0,0 @@ -diff --git a/Source/cmake/OptionsCommon.cmake b/Source/cmake/OptionsCommon.cmake -index f95e7fc85a3d..c1dd2ce4651f 100644 ---- a/Source/cmake/OptionsCommon.cmake -+++ b/Source/cmake/OptionsCommon.cmake -@@ -218,10 +218,6 @@ option(GCC_OFFLINEASM_SOURCE_MAP - "Produce debug line information for offlineasm-generated code" - ${GCC_OFFLINEASM_SOURCE_MAP_DEFAULT}) - --# Record references to files using relative paths instead of absolute. --# This helps both with reproducible builds and ccache hits. --WEBKIT_APPEND_GLOBAL_COMPILER_FLAGS(-ffile-prefix-map=${CMAKE_SOURCE_DIR}=.) -- - option(USE_APPLE_ICU "Use Apple's internal ICU" ${APPLE}) - - # Enable the usage of OpenMP. diff --git a/s390x-build.patch b/s390x-build.patch new file mode 100644 index 0000000..9931dda --- /dev/null +++ b/s390x-build.patch @@ -0,0 +1,43 @@ +diff --git a/Source/WebKit/UIProcess/API/glib/WebKitFaviconDatabase.cpp b/Source/WebKit/UIProcess/API/glib/WebKitFaviconDatabase.cpp +index 82c878632ca3..14f24dc8df5a 100644 +--- a/Source/WebKit/UIProcess/API/glib/WebKitFaviconDatabase.cpp ++++ b/Source/WebKit/UIProcess/API/glib/WebKitFaviconDatabase.cpp +@@ -197,7 +197,7 @@ void webkitFaviconDatabaseGetFaviconInternal(WebKitFaviconDatabase* database, co + _("Unknown favicon for page %s"), pageURI.data()); + return; + } +- const auto& icon = icons.last(); ++ auto& icon = icons.last(); + #if USE(CAIRO) + g_task_return_pointer(task.get(), icon.leakRef(), reinterpret_cast(cairo_surface_destroy)); + #elif USE(SKIA) +diff --git a/Source/WebCore/platform/gtk/ScrollbarThemeGtk.cpp b/Source/WebCore/platform/gtk/ScrollbarThemeGtk.cpp +index 851ac8dcdefe..c6e1dfcdfa48 100644 +--- a/Source/WebCore/platform/gtk/ScrollbarThemeGtk.cpp ++++ b/Source/WebCore/platform/gtk/ScrollbarThemeGtk.cpp +@@ -509,10 +509,10 @@ ScrollbarButtonPressAction ScrollbarThemeGtk::handleMousePressEvent(Scrollbar&, + return ScrollbarButtonPressAction::None; + } + +-int ScrollbarThemeGtk::scrollbarThickness(ScrollbarWidth scrollbarWidth, ScrollbarExpansionState expansionState, OverlayScrollbarSizeRelevancy overlayRelevancy) ++int ScrollbarThemeGtk::scrollbarThickness(ScrollbarWidth scrollbarWidth, OverlayScrollbarSizeRelevancy overlayRelevancy) + { + if (!m_useSystemAppearance) +- return ScrollbarThemeAdwaita::scrollbarThickness(scrollbarWidth, expansionState, overlayRelevancy); ++ return ScrollbarThemeAdwaita::scrollbarThickness(scrollbarWidth, overlayRelevancy); + + if (scrollbarWidth == ScrollbarWidth::None || (usesOverlayScrollbars() && overlayRelevancy == OverlayScrollbarSizeRelevancy::IgnoreOverlayScrollbarSize)) + return 0; +diff --git a/Source/WebCore/platform/gtk/ScrollbarThemeGtk.h b/Source/WebCore/platform/gtk/ScrollbarThemeGtk.h +index 116c28339112..fffe1084f7b7 100644 +--- a/Source/WebCore/platform/gtk/ScrollbarThemeGtk.h ++++ b/Source/WebCore/platform/gtk/ScrollbarThemeGtk.h +@@ -45,7 +45,7 @@ private: + + bool paint(Scrollbar&, GraphicsContext&, const IntRect& damageRect) override; + ScrollbarButtonPressAction handleMousePressEvent(Scrollbar&, const PlatformMouseEvent&, ScrollbarPart) override; +- int scrollbarThickness(ScrollbarWidth = ScrollbarWidth::Auto, ScrollbarExpansionState = ScrollbarExpansionState::Expanded, OverlayScrollbarSizeRelevancy = OverlayScrollbarSizeRelevancy::IncludeOverlayScrollbarSize) override; ++ int scrollbarThickness(ScrollbarWidth = ScrollbarWidth::Auto, OverlayScrollbarSizeRelevancy = OverlayScrollbarSizeRelevancy::IncludeOverlayScrollbarSize) override; + int minimumThumbLength(Scrollbar&) override; + + void themeChanged() override; diff --git a/sources b/sources index 196b659..b43b620 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.51.1.tar.xz) = 64b9e6142d6329b307bcce832df24ad3b0e559d0ed66a71f8724043002b7570f930a5016c7c00336320206ffc5b8ad1d09496f5b1ddb9097b4a1022d4a4665ab -SHA512 (webkitgtk-2.51.1.tar.xz.asc) = b2123b7c42d8cdbfe2d6a02821224f9895bd9e6c4eaacb1a0df1bcf251fcbfe78347bee50da53b2e381374a911439901bcf6a39d68d38f8452451e3d92812dc8 +SHA512 (webkitgtk-2.51.2.tar.xz) = 34e8fae68c81c09397730a2bb00e45be26e3afd2745d4d0c4c6c16b2b5fb8284777c5a01a7b091b6bfccb2bdc314d6cbb17902a54cf1325263e08a94b03be646 +SHA512 (webkitgtk-2.51.2.tar.xz.asc) = eef9e059f08700ef44b7bbc750061a2cbb1a8e410043e2c11be9dbc87ae1cbb9db8dc8f6b46873849039cbf67fb68fc2bf6bd3f31b222e8bae57fc784229677b diff --git a/webkitgtk.spec b/webkitgtk.spec index 5d25cd8..d560856 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -19,7 +19,7 @@ %endif Name: webkitgtk -Version: 2.51.1 +Version: 2.51.2 Release: %autorelease Summary: GTK web content engine library @@ -57,11 +57,8 @@ Source1: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz.asc # $ gpg --export --export-options export-minimal 013A0127AC9C65B34FFA62526C1009B693975393 5AA3BC334FD7E3369E7C77B291C559DBE4C9123B > webkitgtk-keys.gpg Source2: webkitgtk-keys.gpg -# https://bugs.webkit.org/show_bug.cgi?id=301512 -Patch: i686-build.patch - -# https://bugzilla.redhat.com/show_bug.cgi?id=2408418 -Patch: no-file-prefix-map.patch +# https://bugs.webkit.org/show_bug.cgi?id=302896 +Patch: s390x-build.patch BuildRequires: bison BuildRequires: bubblewrap From ea0da612d3707975dec68633107f652f8679891f Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Tue, 25 Nov 2025 12:01:48 -0600 Subject: [PATCH 174/200] Add patch to fix frequent CSS crashes --- ...SSTransitionsForStyleableAndProperty.patch | 185 ++++++++++++++++++ webkitgtk.spec | 3 + 2 files changed, 188 insertions(+) create mode 100644 updateCSSTransitionsForStyleableAndProperty.patch diff --git a/updateCSSTransitionsForStyleableAndProperty.patch b/updateCSSTransitionsForStyleableAndProperty.patch new file mode 100644 index 0000000..9dc3ee7 --- /dev/null +++ b/updateCSSTransitionsForStyleableAndProperty.patch @@ -0,0 +1,185 @@ +From 48e68eb17fb7ecf1b9d25c4101f06a200a185e08 Mon Sep 17 00:00:00 2001 +From: Antoine Quint +Date: Tue, 18 Nov 2025 22:37:37 -0800 +Subject: [PATCH] REGRESSION(303073@main): Twitch pages crash after exiting + fullscreen on iPad https://bugs.webkit.org/show_bug.cgi?id=302713 + rdar://164913157 + +Reviewed by Antti Koivisto. + +We made `KeyframeEffectStack::sortedEffects()` return a const reference in 303073@main whereas previously it would return a copy of +the list of sorted effects. + +In the `updateCSSTransitionsForStyleableAndProperty()` function, called under `Style::TreeResolver::createAnimatedElementUpdate()`, +where we update transitions as part of an animation update, in order to determine the before-change style [0], we manually update +the underlying, non-animated style to the current state for animations that target the property in question. We use +`KeyframeEffectStack::sortedEffects()` to get the list of effects applied to the element we're processing, but we use a method, +`WebAnimation::resolve()`, to compute the animated styles that does more than just that, updating the finished state of the animation [1] +which may change whether the animation in question is considered relevant [2] and thus affect its membership in the effect list +we're iterating upon. + +One way to address this would be to make a copy of the effect list, but we should be able to iterate through the effect list here +without it changing from under us. To that end, we now use `KeyframeEffect::apply()` instead of `WebAnimation::resolve()`. This change +alone addresses the reported issue. + +However, this change yielded some test regressions in the WPT test `css/css-transitions/KeyframeEffect-setKeyframes.tentative.html`. +As it turns out, the current style of a transition was cached under an overridden implementation of `WebAnimation::resolve()` in the +`CSSTransition` class, and changing from calling `WebAnimation::resolve()` to `KeyframeEffect::apply()` meant that this style was no +longer current. It appears now that this approach was fragile, and also overkill since this transition current style is only ever used +in one of the branches of the CSS Transition update process and should be computed as requested. So on top of the change described above, +we now remove the CSS Transition current style caching, removing the `CSSTransition::m_currentStyle` member, in favor of computing it +directly as needed. + +[0] https://drafts.csswg.org/css-transitions-1/#before-change-style +[1] https://drafts.csswg.org/web-animations-1/#updating-the-finished-state +[2] https://drafts.csswg.org/web-animations-1/#relevant-animations-section + +* Source/WebCore/animation/CSSTransition.cpp: +(WebCore::CSSTransition::create): +(WebCore::CSSTransition::CSSTransition): +(WebCore::CSSTransition::resolve): Deleted. +* Source/WebCore/animation/CSSTransition.h: +* Source/WebCore/animation/WebAnimation.h: +* Source/WebCore/style/Styleable.cpp: +(WebCore::updateCSSTransitionsForStyleableAndProperty): + +Canonical link: https://commits.webkit.org/303234@main +--- + Source/WebCore/animation/CSSTransition.cpp | 12 ++---------- + Source/WebCore/animation/CSSTransition.h | 5 +---- + Source/WebCore/animation/WebAnimation.h | 2 +- + Source/WebCore/style/Styleable.cpp | 22 +++++++++++----------- + 4 files changed, 15 insertions(+), 26 deletions(-) + +diff --git a/Source/WebCore/animation/CSSTransition.cpp b/Source/WebCore/animation/CSSTransition.cpp +index bc481b7335683..12340765b4e07 100644 +--- a/Source/WebCore/animation/CSSTransition.cpp ++++ b/Source/WebCore/animation/CSSTransition.cpp +@@ -39,7 +39,7 @@ WTF_MAKE_TZONE_OR_ISO_ALLOCATED_IMPL(CSSTransition); + + Ref CSSTransition::create(const Styleable& owningElement, const AnimatableCSSProperty& property, MonotonicTime generationTime, const Style::Transition& backingStyleTransition, const RenderStyle& oldStyle, const RenderStyle& newStyle, Seconds delay, Seconds duration, const RenderStyle& reversingAdjustedStartStyle, double reversingShorteningFactor) + { +- auto result = adoptRef(*new CSSTransition(owningElement, property, generationTime, backingStyleTransition, oldStyle, newStyle, reversingAdjustedStartStyle, reversingShorteningFactor)); ++ auto result = adoptRef(*new CSSTransition(owningElement, property, generationTime, backingStyleTransition, newStyle, reversingAdjustedStartStyle, reversingShorteningFactor)); + result->initialize(&oldStyle, newStyle, { nullptr }); + result->setTimingProperties(delay, duration); + +@@ -48,12 +48,11 @@ Ref CSSTransition::create(const Styleable& owningElement, const A + return result; + } + +-CSSTransition::CSSTransition(const Styleable& styleable, const AnimatableCSSProperty& property, MonotonicTime generationTime, const Style::Transition& backingStyleTransition, const RenderStyle& oldStyle, const RenderStyle& targetStyle, const RenderStyle& reversingAdjustedStartStyle, double reversingShorteningFactor) ++CSSTransition::CSSTransition(const Styleable& styleable, const AnimatableCSSProperty& property, MonotonicTime generationTime, const Style::Transition& backingStyleTransition, const RenderStyle& targetStyle, const RenderStyle& reversingAdjustedStartStyle, double reversingShorteningFactor) + : StyleOriginatedAnimation(styleable) + , m_property(property) + , m_generationTime(generationTime) + , m_targetStyle(RenderStyle::clonePtr(targetStyle)) +- , m_currentStyle(RenderStyle::clonePtr(oldStyle)) + , m_reversingAdjustedStartStyle(RenderStyle::clonePtr(reversingAdjustedStartStyle)) + , m_reversingShorteningFactor(reversingShorteningFactor) + , m_backingStyleTransition(backingStyleTransition) +@@ -62,13 +61,6 @@ CSSTransition::CSSTransition(const Styleable& styleable, const AnimatableCSSProp + + CSSTransition::~CSSTransition() = default; + +-OptionSet CSSTransition::resolve(RenderStyle& targetStyle, const Style::ResolutionContext& resolutionContext, EndpointInclusiveActiveInterval endpointInclusiveActiveInterval) +-{ +- auto impact = StyleOriginatedAnimation::resolve(targetStyle, resolutionContext, endpointInclusiveActiveInterval); +- m_currentStyle = RenderStyle::clonePtr(targetStyle); +- return impact; +-} +- + void CSSTransition::animationDidFinish() + { + StyleOriginatedAnimation::animationDidFinish(); +diff --git a/Source/WebCore/animation/CSSTransition.h b/Source/WebCore/animation/CSSTransition.h +index 5ccd71c24287b..0b6cf0a9775ba 100644 +--- a/Source/WebCore/animation/CSSTransition.h ++++ b/Source/WebCore/animation/CSSTransition.h +@@ -50,17 +50,15 @@ class CSSTransition final : public StyleOriginatedAnimation { + AnimatableCSSProperty property() const { return m_property; } + MonotonicTime generationTime() const { return m_generationTime; } + const RenderStyle& targetStyle() const { return *m_targetStyle; } +- const RenderStyle& currentStyle() const { return *m_currentStyle; } + const RenderStyle& reversingAdjustedStartStyle() const { return *m_reversingAdjustedStartStyle; } + double reversingShorteningFactor() const { return m_reversingShorteningFactor; } + + const Style::Transition& backingStyleTransition() const { return m_backingStyleTransition; } + + private: +- CSSTransition(const Styleable&, const AnimatableCSSProperty&, MonotonicTime generationTime, const Style::Transition&, const RenderStyle& oldStyle, const RenderStyle& targetStyle, const RenderStyle& reversingAdjustedStartStyle, double); ++ CSSTransition(const Styleable&, const AnimatableCSSProperty&, MonotonicTime generationTime, const Style::Transition&, const RenderStyle& targetStyle, const RenderStyle& reversingAdjustedStartStyle, double); + void setTimingProperties(Seconds delay, Seconds duration); + Ref createEvent(const AtomString& eventType, std::optional scheduledTime, double elapsedTime, const std::optional&) final; +- OptionSet resolve(RenderStyle& targetStyle, const Style::ResolutionContext&, EndpointInclusiveActiveInterval = EndpointInclusiveActiveInterval::No) final; + void animationDidFinish() final; + bool isCSSTransition() const final { return true; } + +@@ -70,7 +68,6 @@ class CSSTransition final : public StyleOriginatedAnimation { + AnimatableCSSProperty m_property; + MonotonicTime m_generationTime; + std::unique_ptr m_targetStyle; +- std::unique_ptr m_currentStyle; + std::unique_ptr m_reversingAdjustedStartStyle; + double m_reversingShorteningFactor; + +diff --git a/Source/WebCore/animation/WebAnimation.h b/Source/WebCore/animation/WebAnimation.h +index b858674d51a93..51c16da743562 100644 +--- a/Source/WebCore/animation/WebAnimation.h ++++ b/Source/WebCore/animation/WebAnimation.h +@@ -157,7 +157,7 @@ class WebAnimation : public RefCounted, public EventTarget, public + bool needsTick() const; + virtual void tick(); + WEBCORE_EXPORT Seconds timeToNextTick() const; +- virtual OptionSet resolve(RenderStyle& targetStyle, const Style::ResolutionContext&, EndpointInclusiveActiveInterval = EndpointInclusiveActiveInterval::No); ++ OptionSet resolve(RenderStyle& targetStyle, const Style::ResolutionContext&, EndpointInclusiveActiveInterval = EndpointInclusiveActiveInterval::No); + void effectTargetDidChange(const std::optional& previousTarget, const std::optional& newTarget); + void acceleratedStateDidChange(); + void willChangeRenderer(); +diff --git a/Source/WebCore/style/Styleable.cpp b/Source/WebCore/style/Styleable.cpp +index b098d6eaf7585..3e657df868c60 100644 +--- a/Source/WebCore/style/Styleable.cpp ++++ b/Source/WebCore/style/Styleable.cpp +@@ -589,14 +589,6 @@ static void updateCSSTransitionsForStyleableAndProperty(const Styleable& styleab + hasMatchingTransitionProperty = true; + } + +- auto effectTargetsProperty = [&property](KeyframeEffect& effect) { +- if (effect.animatesProperty(property)) +- return true; +- if (auto* transition = dynamicDowncast(effect.animation())) +- return transition->property() == property; +- return false; +- }; +- + // https://drafts.csswg.org/css-transitions-1/#before-change-style + // Define the before-change style as the computed values of all properties on the element as of the previous style change event, except with + // any styles derived from declarative animations such as CSS Transitions, CSS Animations, and SMIL Animations updated to the current time. +@@ -605,8 +597,8 @@ static void updateCSSTransitionsForStyleableAndProperty(const Styleable& styleab + auto style = RenderStyle::clone(*lastStyleChangeEventStyle); + if (auto* keyframeEffectStack = styleable.keyframeEffectStack()) { + for (const auto& effect : keyframeEffectStack->sortedEffects()) { +- if (effectTargetsProperty(*effect)) +- Ref { *effect->animation() }->resolve(style, { nullptr }); ++ if (effect->animatesProperty(property)) ++ Ref { *effect }->apply(style, { nullptr }); + } + } + return style; +@@ -690,7 +682,15 @@ static void updateCSSTransitionsForStyleableAndProperty(const Styleable& styleab + ASSERT(hasMatchingTransitionProperty); + if (hasRunningTransition && !propertyInStyleMatchesValueForTransitionInMap(property, afterChangeStyle, styleable.ensureRunningTransitionsByProperty(), document)) { + auto previouslyRunningTransition = styleable.ensureRunningTransitionsByProperty().take(property); +- auto& previouslyRunningTransitionCurrentStyle = previouslyRunningTransition->currentStyle(); ++ auto previouslyRunningTransitionCurrentStyle = [&] { ++ if (auto* lastStyleChangeEventStyle = styleable.lastStyleChangeEventStyle()) { ++ auto style = RenderStyle::clone(*lastStyleChangeEventStyle); ++ ASSERT(previouslyRunningTransition->keyframeEffect()); ++ Ref { *previouslyRunningTransition->keyframeEffect() }->apply(style, { nullptr }); ++ return style; ++ } ++ return RenderStyle::clone(currentStyle); ++ }(); + // 4. If the element has a running transition for the property, there is a matching transition-property value, and the end value of the running + // transition is not equal to the value of the property in the after-change style, then: + if (Style::Interpolation::equals(property, previouslyRunningTransitionCurrentStyle, afterChangeStyle, document) || !propertyCanBeInterpolated(property, currentStyle, afterChangeStyle)) { diff --git a/webkitgtk.spec b/webkitgtk.spec index d560856..ee7481f 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -60,6 +60,9 @@ Source2: webkitgtk-keys.gpg # https://bugs.webkit.org/show_bug.cgi?id=302896 Patch: s390x-build.patch +# https://bugs.webkit.org/show_bug.cgi?id=303057 +Patch: updateCSSTransitionsForStyleableAndProperty.patch + BuildRequires: bison BuildRequires: bubblewrap BuildRequires: clang From dbaa715e88b916fb19db3ad17232407f7f389e4d Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Tue, 9 Dec 2025 14:38:21 -0600 Subject: [PATCH 175/200] Update to 2.51.3 --- s390x-build.patch | 85 ++++---- sources | 4 +- ...SSTransitionsForStyleableAndProperty.patch | 185 ------------------ webkitgtk.spec | 6 +- 4 files changed, 46 insertions(+), 234 deletions(-) delete mode 100644 updateCSSTransitionsForStyleableAndProperty.patch diff --git a/s390x-build.patch b/s390x-build.patch index 9931dda..f76da57 100644 --- a/s390x-build.patch +++ b/s390x-build.patch @@ -1,43 +1,44 @@ -diff --git a/Source/WebKit/UIProcess/API/glib/WebKitFaviconDatabase.cpp b/Source/WebKit/UIProcess/API/glib/WebKitFaviconDatabase.cpp -index 82c878632ca3..14f24dc8df5a 100644 ---- a/Source/WebKit/UIProcess/API/glib/WebKitFaviconDatabase.cpp -+++ b/Source/WebKit/UIProcess/API/glib/WebKitFaviconDatabase.cpp -@@ -197,7 +197,7 @@ void webkitFaviconDatabaseGetFaviconInternal(WebKitFaviconDatabase* database, co - _("Unknown favicon for page %s"), pageURI.data()); - return; - } -- const auto& icon = icons.last(); -+ auto& icon = icons.last(); - #if USE(CAIRO) - g_task_return_pointer(task.get(), icon.leakRef(), reinterpret_cast(cairo_surface_destroy)); - #elif USE(SKIA) -diff --git a/Source/WebCore/platform/gtk/ScrollbarThemeGtk.cpp b/Source/WebCore/platform/gtk/ScrollbarThemeGtk.cpp -index 851ac8dcdefe..c6e1dfcdfa48 100644 ---- a/Source/WebCore/platform/gtk/ScrollbarThemeGtk.cpp -+++ b/Source/WebCore/platform/gtk/ScrollbarThemeGtk.cpp -@@ -509,10 +509,10 @@ ScrollbarButtonPressAction ScrollbarThemeGtk::handleMousePressEvent(Scrollbar&, - return ScrollbarButtonPressAction::None; - } - --int ScrollbarThemeGtk::scrollbarThickness(ScrollbarWidth scrollbarWidth, ScrollbarExpansionState expansionState, OverlayScrollbarSizeRelevancy overlayRelevancy) -+int ScrollbarThemeGtk::scrollbarThickness(ScrollbarWidth scrollbarWidth, OverlayScrollbarSizeRelevancy overlayRelevancy) +diff --git a/Source/WebCore/platform/graphics/gbm/MemoryMappedGPUBuffer.cpp b/Source/WebCore/platform/graphics/gbm/MemoryMappedGPUBuffer.cpp +index 0def7031aad7..3e7b538936c7 100644 +--- a/Source/WebCore/platform/graphics/gbm/MemoryMappedGPUBuffer.cpp ++++ b/Source/WebCore/platform/graphics/gbm/MemoryMappedGPUBuffer.cpp +@@ -38,6 +38,7 @@ + #include + #include + #include ++#include + #include + #include + +From 4d3922444f561e253d4bb1cf5c771831d496d08f Mon Sep 17 00:00:00 2001 +From: Simon Pena +Date: Tue, 9 Dec 2025 04:45:06 -0800 +Subject: [PATCH] [GTK] Fix Cairo build + https://bugs.webkit.org/show_bug.cgi?id=303822 + +Unreviewed build fix. + +SharedBufferBuilder::take has been removed in 303790@main and needs to be +replaced with SharedBufferBuilder::takeBuffer here. + +* Source/WebKit/WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp: +(WebKit::WebPrintOperationGtk::endPrint): + +Canonical link: https://commits.webkit.org/304151@main +--- + Source/WebKit/WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Source/WebKit/WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp b/Source/WebKit/WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp +index f40ae478c1929..fc72a63faac46 100644 +--- a/Source/WebKit/WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp ++++ b/Source/WebKit/WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp +@@ -335,7 +335,7 @@ void WebPrintOperationGtk::endPage(cairo_t* cr) + void WebPrintOperationGtk::endPrint(cairo_t* cr) { - if (!m_useSystemAppearance) -- return ScrollbarThemeAdwaita::scrollbarThickness(scrollbarWidth, expansionState, overlayRelevancy); -+ return ScrollbarThemeAdwaita::scrollbarThickness(scrollbarWidth, overlayRelevancy); - - if (scrollbarWidth == ScrollbarWidth::None || (usesOverlayScrollbars() && overlayRelevancy == OverlayScrollbarSizeRelevancy::IgnoreOverlayScrollbarSize)) - return 0; -diff --git a/Source/WebCore/platform/gtk/ScrollbarThemeGtk.h b/Source/WebCore/platform/gtk/ScrollbarThemeGtk.h -index 116c28339112..fffe1084f7b7 100644 ---- a/Source/WebCore/platform/gtk/ScrollbarThemeGtk.h -+++ b/Source/WebCore/platform/gtk/ScrollbarThemeGtk.h -@@ -45,7 +45,7 @@ private: - - bool paint(Scrollbar&, GraphicsContext&, const IntRect& damageRect) override; - ScrollbarButtonPressAction handleMousePressEvent(Scrollbar&, const PlatformMouseEvent&, ScrollbarPart) override; -- int scrollbarThickness(ScrollbarWidth = ScrollbarWidth::Auto, ScrollbarExpansionState = ScrollbarExpansionState::Expanded, OverlayScrollbarSizeRelevancy = OverlayScrollbarSizeRelevancy::IncludeOverlayScrollbarSize) override; -+ int scrollbarThickness(ScrollbarWidth = ScrollbarWidth::Auto, OverlayScrollbarSizeRelevancy = OverlayScrollbarSizeRelevancy::IncludeOverlayScrollbarSize) override; - int minimumThumbLength(Scrollbar&) override; - - void themeChanged() override; + cairo_surface_finish(cairo_get_target(cr)); +- printDone(m_buffer.take(), { }); ++ printDone(m_buffer.takeBuffer(), { }); + } + #elif USE(SKIA) + void WebPrintOperationGtk::startPage(SkPictureRecorder& recorder) diff --git a/sources b/sources index b43b620..8768a9a 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.51.2.tar.xz) = 34e8fae68c81c09397730a2bb00e45be26e3afd2745d4d0c4c6c16b2b5fb8284777c5a01a7b091b6bfccb2bdc314d6cbb17902a54cf1325263e08a94b03be646 -SHA512 (webkitgtk-2.51.2.tar.xz.asc) = eef9e059f08700ef44b7bbc750061a2cbb1a8e410043e2c11be9dbc87ae1cbb9db8dc8f6b46873849039cbf67fb68fc2bf6bd3f31b222e8bae57fc784229677b +SHA512 (webkitgtk-2.51.3.tar.xz) = 478cc144fb17323d933d3f6259c3a2bd233d6768863034ef8904c9dc886f2ba185d54763cea59baff0d567f0b6d28f622eadb5a6f1598b03076bdd9b84998214 +SHA512 (webkitgtk-2.51.3.tar.xz.asc) = 0ab4a1516f365035c98b651ff7867147855db6f9fcc4cee189614940dc44e10e438390f7778c4f9e0f6e2d88af5e60e9a1301ce829706482523639ed1c440abc diff --git a/updateCSSTransitionsForStyleableAndProperty.patch b/updateCSSTransitionsForStyleableAndProperty.patch deleted file mode 100644 index 9dc3ee7..0000000 --- a/updateCSSTransitionsForStyleableAndProperty.patch +++ /dev/null @@ -1,185 +0,0 @@ -From 48e68eb17fb7ecf1b9d25c4101f06a200a185e08 Mon Sep 17 00:00:00 2001 -From: Antoine Quint -Date: Tue, 18 Nov 2025 22:37:37 -0800 -Subject: [PATCH] REGRESSION(303073@main): Twitch pages crash after exiting - fullscreen on iPad https://bugs.webkit.org/show_bug.cgi?id=302713 - rdar://164913157 - -Reviewed by Antti Koivisto. - -We made `KeyframeEffectStack::sortedEffects()` return a const reference in 303073@main whereas previously it would return a copy of -the list of sorted effects. - -In the `updateCSSTransitionsForStyleableAndProperty()` function, called under `Style::TreeResolver::createAnimatedElementUpdate()`, -where we update transitions as part of an animation update, in order to determine the before-change style [0], we manually update -the underlying, non-animated style to the current state for animations that target the property in question. We use -`KeyframeEffectStack::sortedEffects()` to get the list of effects applied to the element we're processing, but we use a method, -`WebAnimation::resolve()`, to compute the animated styles that does more than just that, updating the finished state of the animation [1] -which may change whether the animation in question is considered relevant [2] and thus affect its membership in the effect list -we're iterating upon. - -One way to address this would be to make a copy of the effect list, but we should be able to iterate through the effect list here -without it changing from under us. To that end, we now use `KeyframeEffect::apply()` instead of `WebAnimation::resolve()`. This change -alone addresses the reported issue. - -However, this change yielded some test regressions in the WPT test `css/css-transitions/KeyframeEffect-setKeyframes.tentative.html`. -As it turns out, the current style of a transition was cached under an overridden implementation of `WebAnimation::resolve()` in the -`CSSTransition` class, and changing from calling `WebAnimation::resolve()` to `KeyframeEffect::apply()` meant that this style was no -longer current. It appears now that this approach was fragile, and also overkill since this transition current style is only ever used -in one of the branches of the CSS Transition update process and should be computed as requested. So on top of the change described above, -we now remove the CSS Transition current style caching, removing the `CSSTransition::m_currentStyle` member, in favor of computing it -directly as needed. - -[0] https://drafts.csswg.org/css-transitions-1/#before-change-style -[1] https://drafts.csswg.org/web-animations-1/#updating-the-finished-state -[2] https://drafts.csswg.org/web-animations-1/#relevant-animations-section - -* Source/WebCore/animation/CSSTransition.cpp: -(WebCore::CSSTransition::create): -(WebCore::CSSTransition::CSSTransition): -(WebCore::CSSTransition::resolve): Deleted. -* Source/WebCore/animation/CSSTransition.h: -* Source/WebCore/animation/WebAnimation.h: -* Source/WebCore/style/Styleable.cpp: -(WebCore::updateCSSTransitionsForStyleableAndProperty): - -Canonical link: https://commits.webkit.org/303234@main ---- - Source/WebCore/animation/CSSTransition.cpp | 12 ++---------- - Source/WebCore/animation/CSSTransition.h | 5 +---- - Source/WebCore/animation/WebAnimation.h | 2 +- - Source/WebCore/style/Styleable.cpp | 22 +++++++++++----------- - 4 files changed, 15 insertions(+), 26 deletions(-) - -diff --git a/Source/WebCore/animation/CSSTransition.cpp b/Source/WebCore/animation/CSSTransition.cpp -index bc481b7335683..12340765b4e07 100644 ---- a/Source/WebCore/animation/CSSTransition.cpp -+++ b/Source/WebCore/animation/CSSTransition.cpp -@@ -39,7 +39,7 @@ WTF_MAKE_TZONE_OR_ISO_ALLOCATED_IMPL(CSSTransition); - - Ref CSSTransition::create(const Styleable& owningElement, const AnimatableCSSProperty& property, MonotonicTime generationTime, const Style::Transition& backingStyleTransition, const RenderStyle& oldStyle, const RenderStyle& newStyle, Seconds delay, Seconds duration, const RenderStyle& reversingAdjustedStartStyle, double reversingShorteningFactor) - { -- auto result = adoptRef(*new CSSTransition(owningElement, property, generationTime, backingStyleTransition, oldStyle, newStyle, reversingAdjustedStartStyle, reversingShorteningFactor)); -+ auto result = adoptRef(*new CSSTransition(owningElement, property, generationTime, backingStyleTransition, newStyle, reversingAdjustedStartStyle, reversingShorteningFactor)); - result->initialize(&oldStyle, newStyle, { nullptr }); - result->setTimingProperties(delay, duration); - -@@ -48,12 +48,11 @@ Ref CSSTransition::create(const Styleable& owningElement, const A - return result; - } - --CSSTransition::CSSTransition(const Styleable& styleable, const AnimatableCSSProperty& property, MonotonicTime generationTime, const Style::Transition& backingStyleTransition, const RenderStyle& oldStyle, const RenderStyle& targetStyle, const RenderStyle& reversingAdjustedStartStyle, double reversingShorteningFactor) -+CSSTransition::CSSTransition(const Styleable& styleable, const AnimatableCSSProperty& property, MonotonicTime generationTime, const Style::Transition& backingStyleTransition, const RenderStyle& targetStyle, const RenderStyle& reversingAdjustedStartStyle, double reversingShorteningFactor) - : StyleOriginatedAnimation(styleable) - , m_property(property) - , m_generationTime(generationTime) - , m_targetStyle(RenderStyle::clonePtr(targetStyle)) -- , m_currentStyle(RenderStyle::clonePtr(oldStyle)) - , m_reversingAdjustedStartStyle(RenderStyle::clonePtr(reversingAdjustedStartStyle)) - , m_reversingShorteningFactor(reversingShorteningFactor) - , m_backingStyleTransition(backingStyleTransition) -@@ -62,13 +61,6 @@ CSSTransition::CSSTransition(const Styleable& styleable, const AnimatableCSSProp - - CSSTransition::~CSSTransition() = default; - --OptionSet CSSTransition::resolve(RenderStyle& targetStyle, const Style::ResolutionContext& resolutionContext, EndpointInclusiveActiveInterval endpointInclusiveActiveInterval) --{ -- auto impact = StyleOriginatedAnimation::resolve(targetStyle, resolutionContext, endpointInclusiveActiveInterval); -- m_currentStyle = RenderStyle::clonePtr(targetStyle); -- return impact; --} -- - void CSSTransition::animationDidFinish() - { - StyleOriginatedAnimation::animationDidFinish(); -diff --git a/Source/WebCore/animation/CSSTransition.h b/Source/WebCore/animation/CSSTransition.h -index 5ccd71c24287b..0b6cf0a9775ba 100644 ---- a/Source/WebCore/animation/CSSTransition.h -+++ b/Source/WebCore/animation/CSSTransition.h -@@ -50,17 +50,15 @@ class CSSTransition final : public StyleOriginatedAnimation { - AnimatableCSSProperty property() const { return m_property; } - MonotonicTime generationTime() const { return m_generationTime; } - const RenderStyle& targetStyle() const { return *m_targetStyle; } -- const RenderStyle& currentStyle() const { return *m_currentStyle; } - const RenderStyle& reversingAdjustedStartStyle() const { return *m_reversingAdjustedStartStyle; } - double reversingShorteningFactor() const { return m_reversingShorteningFactor; } - - const Style::Transition& backingStyleTransition() const { return m_backingStyleTransition; } - - private: -- CSSTransition(const Styleable&, const AnimatableCSSProperty&, MonotonicTime generationTime, const Style::Transition&, const RenderStyle& oldStyle, const RenderStyle& targetStyle, const RenderStyle& reversingAdjustedStartStyle, double); -+ CSSTransition(const Styleable&, const AnimatableCSSProperty&, MonotonicTime generationTime, const Style::Transition&, const RenderStyle& targetStyle, const RenderStyle& reversingAdjustedStartStyle, double); - void setTimingProperties(Seconds delay, Seconds duration); - Ref createEvent(const AtomString& eventType, std::optional scheduledTime, double elapsedTime, const std::optional&) final; -- OptionSet resolve(RenderStyle& targetStyle, const Style::ResolutionContext&, EndpointInclusiveActiveInterval = EndpointInclusiveActiveInterval::No) final; - void animationDidFinish() final; - bool isCSSTransition() const final { return true; } - -@@ -70,7 +68,6 @@ class CSSTransition final : public StyleOriginatedAnimation { - AnimatableCSSProperty m_property; - MonotonicTime m_generationTime; - std::unique_ptr m_targetStyle; -- std::unique_ptr m_currentStyle; - std::unique_ptr m_reversingAdjustedStartStyle; - double m_reversingShorteningFactor; - -diff --git a/Source/WebCore/animation/WebAnimation.h b/Source/WebCore/animation/WebAnimation.h -index b858674d51a93..51c16da743562 100644 ---- a/Source/WebCore/animation/WebAnimation.h -+++ b/Source/WebCore/animation/WebAnimation.h -@@ -157,7 +157,7 @@ class WebAnimation : public RefCounted, public EventTarget, public - bool needsTick() const; - virtual void tick(); - WEBCORE_EXPORT Seconds timeToNextTick() const; -- virtual OptionSet resolve(RenderStyle& targetStyle, const Style::ResolutionContext&, EndpointInclusiveActiveInterval = EndpointInclusiveActiveInterval::No); -+ OptionSet resolve(RenderStyle& targetStyle, const Style::ResolutionContext&, EndpointInclusiveActiveInterval = EndpointInclusiveActiveInterval::No); - void effectTargetDidChange(const std::optional& previousTarget, const std::optional& newTarget); - void acceleratedStateDidChange(); - void willChangeRenderer(); -diff --git a/Source/WebCore/style/Styleable.cpp b/Source/WebCore/style/Styleable.cpp -index b098d6eaf7585..3e657df868c60 100644 ---- a/Source/WebCore/style/Styleable.cpp -+++ b/Source/WebCore/style/Styleable.cpp -@@ -589,14 +589,6 @@ static void updateCSSTransitionsForStyleableAndProperty(const Styleable& styleab - hasMatchingTransitionProperty = true; - } - -- auto effectTargetsProperty = [&property](KeyframeEffect& effect) { -- if (effect.animatesProperty(property)) -- return true; -- if (auto* transition = dynamicDowncast(effect.animation())) -- return transition->property() == property; -- return false; -- }; -- - // https://drafts.csswg.org/css-transitions-1/#before-change-style - // Define the before-change style as the computed values of all properties on the element as of the previous style change event, except with - // any styles derived from declarative animations such as CSS Transitions, CSS Animations, and SMIL Animations updated to the current time. -@@ -605,8 +597,8 @@ static void updateCSSTransitionsForStyleableAndProperty(const Styleable& styleab - auto style = RenderStyle::clone(*lastStyleChangeEventStyle); - if (auto* keyframeEffectStack = styleable.keyframeEffectStack()) { - for (const auto& effect : keyframeEffectStack->sortedEffects()) { -- if (effectTargetsProperty(*effect)) -- Ref { *effect->animation() }->resolve(style, { nullptr }); -+ if (effect->animatesProperty(property)) -+ Ref { *effect }->apply(style, { nullptr }); - } - } - return style; -@@ -690,7 +682,15 @@ static void updateCSSTransitionsForStyleableAndProperty(const Styleable& styleab - ASSERT(hasMatchingTransitionProperty); - if (hasRunningTransition && !propertyInStyleMatchesValueForTransitionInMap(property, afterChangeStyle, styleable.ensureRunningTransitionsByProperty(), document)) { - auto previouslyRunningTransition = styleable.ensureRunningTransitionsByProperty().take(property); -- auto& previouslyRunningTransitionCurrentStyle = previouslyRunningTransition->currentStyle(); -+ auto previouslyRunningTransitionCurrentStyle = [&] { -+ if (auto* lastStyleChangeEventStyle = styleable.lastStyleChangeEventStyle()) { -+ auto style = RenderStyle::clone(*lastStyleChangeEventStyle); -+ ASSERT(previouslyRunningTransition->keyframeEffect()); -+ Ref { *previouslyRunningTransition->keyframeEffect() }->apply(style, { nullptr }); -+ return style; -+ } -+ return RenderStyle::clone(currentStyle); -+ }(); - // 4. If the element has a running transition for the property, there is a matching transition-property value, and the end value of the running - // transition is not equal to the value of the property in the after-change style, then: - if (Style::Interpolation::equals(property, previouslyRunningTransitionCurrentStyle, afterChangeStyle, document) || !propertyCanBeInterpolated(property, currentStyle, afterChangeStyle)) { diff --git a/webkitgtk.spec b/webkitgtk.spec index ee7481f..b3a3ed7 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -19,7 +19,7 @@ %endif Name: webkitgtk -Version: 2.51.2 +Version: 2.51.3 Release: %autorelease Summary: GTK web content engine library @@ -57,12 +57,8 @@ Source1: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz.asc # $ gpg --export --export-options export-minimal 013A0127AC9C65B34FFA62526C1009B693975393 5AA3BC334FD7E3369E7C77B291C559DBE4C9123B > webkitgtk-keys.gpg Source2: webkitgtk-keys.gpg -# https://bugs.webkit.org/show_bug.cgi?id=302896 Patch: s390x-build.patch -# https://bugs.webkit.org/show_bug.cgi?id=303057 -Patch: updateCSSTransitionsForStyleableAndProperty.patch - BuildRequires: bison BuildRequires: bubblewrap BuildRequires: clang From 95247f68dfea276360c8aa6a6e3999629d1c6aa8 Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Fri, 19 Dec 2025 13:21:14 +0100 Subject: [PATCH 176/200] Update to 2.51.4 --- s390x-build.patch | 44 -------------------------------------------- sources | 4 ++-- webkitgtk.spec | 4 +--- 3 files changed, 3 insertions(+), 49 deletions(-) delete mode 100644 s390x-build.patch diff --git a/s390x-build.patch b/s390x-build.patch deleted file mode 100644 index f76da57..0000000 --- a/s390x-build.patch +++ /dev/null @@ -1,44 +0,0 @@ -diff --git a/Source/WebCore/platform/graphics/gbm/MemoryMappedGPUBuffer.cpp b/Source/WebCore/platform/graphics/gbm/MemoryMappedGPUBuffer.cpp -index 0def7031aad7..3e7b538936c7 100644 ---- a/Source/WebCore/platform/graphics/gbm/MemoryMappedGPUBuffer.cpp -+++ b/Source/WebCore/platform/graphics/gbm/MemoryMappedGPUBuffer.cpp -@@ -38,6 +38,7 @@ - #include - #include - #include -+#include - #include - #include - -From 4d3922444f561e253d4bb1cf5c771831d496d08f Mon Sep 17 00:00:00 2001 -From: Simon Pena -Date: Tue, 9 Dec 2025 04:45:06 -0800 -Subject: [PATCH] [GTK] Fix Cairo build - https://bugs.webkit.org/show_bug.cgi?id=303822 - -Unreviewed build fix. - -SharedBufferBuilder::take has been removed in 303790@main and needs to be -replaced with SharedBufferBuilder::takeBuffer here. - -* Source/WebKit/WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp: -(WebKit::WebPrintOperationGtk::endPrint): - -Canonical link: https://commits.webkit.org/304151@main ---- - Source/WebKit/WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/Source/WebKit/WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp b/Source/WebKit/WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp -index f40ae478c1929..fc72a63faac46 100644 ---- a/Source/WebKit/WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp -+++ b/Source/WebKit/WebProcess/WebPage/gtk/WebPrintOperationGtk.cpp -@@ -335,7 +335,7 @@ void WebPrintOperationGtk::endPage(cairo_t* cr) - void WebPrintOperationGtk::endPrint(cairo_t* cr) - { - cairo_surface_finish(cairo_get_target(cr)); -- printDone(m_buffer.take(), { }); -+ printDone(m_buffer.takeBuffer(), { }); - } - #elif USE(SKIA) - void WebPrintOperationGtk::startPage(SkPictureRecorder& recorder) diff --git a/sources b/sources index 8768a9a..037e1de 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.51.3.tar.xz) = 478cc144fb17323d933d3f6259c3a2bd233d6768863034ef8904c9dc886f2ba185d54763cea59baff0d567f0b6d28f622eadb5a6f1598b03076bdd9b84998214 -SHA512 (webkitgtk-2.51.3.tar.xz.asc) = 0ab4a1516f365035c98b651ff7867147855db6f9fcc4cee189614940dc44e10e438390f7778c4f9e0f6e2d88af5e60e9a1301ce829706482523639ed1c440abc +SHA512 (webkitgtk-2.51.4.tar.xz) = 024ce71e11c875ea156abd83818e0be2d7e2c04f2f1ee08d0151e809da9ba654d346ed286e68b682326f26b7ed17762c4978549bb71660087222e5e95a8da0af +SHA512 (webkitgtk-2.51.4.tar.xz.asc) = 5dcbd1b917c7c928c8b5de78bd4108eafa71ec304bc571777edb2fa65cb78be2769151cc11578b80bddc9a272d803a75be78eeaac58cea5bdb2199acb37dc348 diff --git a/webkitgtk.spec b/webkitgtk.spec index b3a3ed7..edb143a 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -19,7 +19,7 @@ %endif Name: webkitgtk -Version: 2.51.3 +Version: 2.51.4 Release: %autorelease Summary: GTK web content engine library @@ -57,8 +57,6 @@ Source1: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz.asc # $ gpg --export --export-options export-minimal 013A0127AC9C65B34FFA62526C1009B693975393 5AA3BC334FD7E3369E7C77B291C559DBE4C9123B > webkitgtk-keys.gpg Source2: webkitgtk-keys.gpg -Patch: s390x-build.patch - BuildRequires: bison BuildRequires: bubblewrap BuildRequires: clang From 1d1465855666361d58926ddbd03d1ec9a1b39d5c Mon Sep 17 00:00:00 2001 From: Tomas Popela Date: Fri, 19 Dec 2025 14:48:24 +0100 Subject: [PATCH 177/200] Fix build failure on s390x due tu missing sys/mman.h include /builddir/build/BUILD/webkitgtk-2.51.4-build/webkitgtk-2.51.4/Source/WebCore/platform/graphics/gbm/MemoryMappedGPUBuffer.cpp:273:50: error: use of undeclared identifier 'PROT_READ' 273 | m_mappedData = mmap(nullptr, m_mappedLength, PROT_READ | PROT_WRITE, MAP_SHARED, primaryPlaneDmaBufFD(), 0); | ^~~~~~~~~ /builddir/build/BUILD/webkitgtk-2.51.4-build/webkitgtk-2.51.4/Source/WebCore/platform/graphics/gbm/MemoryMappedGPUBuffer.cpp:273:62: error: use of undeclared identifier 'PROT_WRITE' 273 | m_mappedData = mmap(nullptr, m_mappedLength, PROT_READ | PROT_WRITE, MAP_SHARED, primaryPlaneDmaBufFD(), 0); | ^~~~~~~~~~ /builddir/build/BUILD/webkitgtk-2.51.4-build/webkitgtk-2.51.4/Source/WebCore/platform/graphics/gbm/MemoryMappedGPUBuffer.cpp:273:74: error: use of undeclared identifier 'MAP_SHARED' 273 | m_mappedData = mmap(nullptr, m_mappedLength, PROT_READ | PROT_WRITE, MAP_SHARED, primaryPlaneDmaBufFD(), 0); | ^~~~~~~~~~ /builddir/build/BUILD/webkitgtk-2.51.4-build/webkitgtk-2.51.4/Source/WebCore/platform/graphics/gbm/MemoryMappedGPUBuffer.cpp:274:25: error: use of undeclared identifier 'MAP_FAILED' 274 | if (m_mappedData == MAP_FAILED) { | ^~~~~~~~~~ /builddir/build/BUILD/webkitgtk-2.51.4-build/webkitgtk-2.51.4/Source/WebCore/platform/graphics/gbm/MemoryMappedGPUBuffer.cpp:288:5: error: use of undeclared identifier 'munmap' 288 | munmap(m_mappedData, m_mappedLength); | ^~~~~~ [skip changelog] --- missing-include-sys-mman.patch | 11 +++++++++++ webkitgtk.spec | 2 ++ 2 files changed, 13 insertions(+) create mode 100644 missing-include-sys-mman.patch diff --git a/missing-include-sys-mman.patch b/missing-include-sys-mman.patch new file mode 100644 index 0000000..fbd22d5 --- /dev/null +++ b/missing-include-sys-mman.patch @@ -0,0 +1,11 @@ +diff -up webkitgtk-2.51.4/Source/WebCore/platform/graphics/gbm/MemoryMappedGPUBuffer.cpp.mman webkitgtk-2.51.4/Source/WebCore/platform/graphics/gbm/MemoryMappedGPUBuffer.cpp +--- webkitgtk-2.51.4/Source/WebCore/platform/graphics/gbm/MemoryMappedGPUBuffer.cpp.mman 2025-12-19 14:46:53.228364429 +0100 ++++ webkitgtk-2.51.4/Source/WebCore/platform/graphics/gbm/MemoryMappedGPUBuffer.cpp 2025-12-19 14:45:22.643183356 +0100 +@@ -38,6 +38,7 @@ + #include + #include + #include ++#include + #include + #include + diff --git a/webkitgtk.spec b/webkitgtk.spec index edb143a..d3e410b 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -57,6 +57,8 @@ Source1: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz.asc # $ gpg --export --export-options export-minimal 013A0127AC9C65B34FFA62526C1009B693975393 5AA3BC334FD7E3369E7C77B291C559DBE4C9123B > webkitgtk-keys.gpg Source2: webkitgtk-keys.gpg +Patch: missing-include-sys-mman.patch + BuildRequires: bison BuildRequires: bubblewrap BuildRequires: clang From 19daf171bce994f1a7b63ce6aafa351f0bcb5c2f Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 17 Jan 2026 20:10:25 +0000 Subject: [PATCH 178/200] Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild From 2a7182ae4993ff8bfbf7c6bde89bdf6244965130 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Fri, 23 Jan 2026 12:13:12 -0600 Subject: [PATCH 179/200] Update to WebKitGTK 2.51.90 --- missing-include-sys-mman.patch | 11 ----------- sources | 4 ++-- webkitgtk.spec | 4 +--- 3 files changed, 3 insertions(+), 16 deletions(-) delete mode 100644 missing-include-sys-mman.patch diff --git a/missing-include-sys-mman.patch b/missing-include-sys-mman.patch deleted file mode 100644 index fbd22d5..0000000 --- a/missing-include-sys-mman.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff -up webkitgtk-2.51.4/Source/WebCore/platform/graphics/gbm/MemoryMappedGPUBuffer.cpp.mman webkitgtk-2.51.4/Source/WebCore/platform/graphics/gbm/MemoryMappedGPUBuffer.cpp ---- webkitgtk-2.51.4/Source/WebCore/platform/graphics/gbm/MemoryMappedGPUBuffer.cpp.mman 2025-12-19 14:46:53.228364429 +0100 -+++ webkitgtk-2.51.4/Source/WebCore/platform/graphics/gbm/MemoryMappedGPUBuffer.cpp 2025-12-19 14:45:22.643183356 +0100 -@@ -38,6 +38,7 @@ - #include - #include - #include -+#include - #include - #include - diff --git a/sources b/sources index 037e1de..5fe2a8b 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.51.4.tar.xz) = 024ce71e11c875ea156abd83818e0be2d7e2c04f2f1ee08d0151e809da9ba654d346ed286e68b682326f26b7ed17762c4978549bb71660087222e5e95a8da0af -SHA512 (webkitgtk-2.51.4.tar.xz.asc) = 5dcbd1b917c7c928c8b5de78bd4108eafa71ec304bc571777edb2fa65cb78be2769151cc11578b80bddc9a272d803a75be78eeaac58cea5bdb2199acb37dc348 +SHA512 (webkitgtk-2.51.90.tar.xz) = 948f25cf58aef0ba3d6976062eef33abc32afd669d50f0692a0bdaa14fbf999eeb290bede03d1e80acf74578159e5191f2563b3a8b46d2c904dffc9080b8f8ad +SHA512 (webkitgtk-2.51.90.tar.xz.asc) = 897aa416795c320aa644d1e89aa14a9e94722e8630464343906fc08b3a1defcc78a72e5a691a36c7430829773c7772ee674f88098c7647452ce35f2453117e79 diff --git a/webkitgtk.spec b/webkitgtk.spec index d3e410b..fe58ec4 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -19,7 +19,7 @@ %endif Name: webkitgtk -Version: 2.51.4 +Version: 2.51.90 Release: %autorelease Summary: GTK web content engine library @@ -57,8 +57,6 @@ Source1: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz.asc # $ gpg --export --export-options export-minimal 013A0127AC9C65B34FFA62526C1009B693975393 5AA3BC334FD7E3369E7C77B291C559DBE4C9123B > webkitgtk-keys.gpg Source2: webkitgtk-keys.gpg -Patch: missing-include-sys-mman.patch - BuildRequires: bison BuildRequires: bubblewrap BuildRequires: clang From f03151986f1fa384ccecb2bf346c802cc213d51c Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Sat, 24 Jan 2026 08:22:13 -0600 Subject: [PATCH 180/200] Fix build --- build.patch | 11 +++++++++++ webkitgtk.spec | 3 +++ 2 files changed, 14 insertions(+) create mode 100644 build.patch diff --git a/build.patch b/build.patch new file mode 100644 index 0000000..05e64ba --- /dev/null +++ b/build.patch @@ -0,0 +1,11 @@ +diff --git a/Source/WTF/wtf/VMTags.h b/Source/WTF/wtf/VMTags.h +index 4c06226db807..8f03351a20c9 100644 +--- a/Source/WTF/wtf/VMTags.h ++++ b/Source/WTF/wtf/VMTags.h +@@ -33,6 +33,7 @@ + #define VM_TAG_FOR_WEBASSEMBLY_MEMORY -1 + #define VM_TAG_FOR_EXECUTABLEALLOCATOR_MEMORY -1 + #define VM_TAG_FOR_ISOHEAP_MEMORY -1 ++#define VM_TAG_FOR_STRUCTUREALLOCATOR_MEMORY -1 + + #else diff --git a/webkitgtk.spec b/webkitgtk.spec index fe58ec4..fd49786 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -57,6 +57,9 @@ Source1: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz.asc # $ gpg --export --export-options export-minimal 013A0127AC9C65B34FFA62526C1009B693975393 5AA3BC334FD7E3369E7C77B291C559DBE4C9123B > webkitgtk-keys.gpg Source2: webkitgtk-keys.gpg +# https://bugs.webkit.org/show_bug.cgi?id=306109 +Patch: build.patch + BuildRequires: bison BuildRequires: bubblewrap BuildRequires: clang From acca7bb89edbbbd001d5f4f3e2f628a4f866dd35 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Sat, 7 Feb 2026 08:33:54 -0600 Subject: [PATCH 181/200] Update to 2.51.91 --- build.patch | 11 ----------- sources | 4 ++-- webkitgtk.spec | 5 +---- 3 files changed, 3 insertions(+), 17 deletions(-) delete mode 100644 build.patch diff --git a/build.patch b/build.patch deleted file mode 100644 index 05e64ba..0000000 --- a/build.patch +++ /dev/null @@ -1,11 +0,0 @@ -diff --git a/Source/WTF/wtf/VMTags.h b/Source/WTF/wtf/VMTags.h -index 4c06226db807..8f03351a20c9 100644 ---- a/Source/WTF/wtf/VMTags.h -+++ b/Source/WTF/wtf/VMTags.h -@@ -33,6 +33,7 @@ - #define VM_TAG_FOR_WEBASSEMBLY_MEMORY -1 - #define VM_TAG_FOR_EXECUTABLEALLOCATOR_MEMORY -1 - #define VM_TAG_FOR_ISOHEAP_MEMORY -1 -+#define VM_TAG_FOR_STRUCTUREALLOCATOR_MEMORY -1 - - #else diff --git a/sources b/sources index 5fe2a8b..0528580 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.51.90.tar.xz) = 948f25cf58aef0ba3d6976062eef33abc32afd669d50f0692a0bdaa14fbf999eeb290bede03d1e80acf74578159e5191f2563b3a8b46d2c904dffc9080b8f8ad -SHA512 (webkitgtk-2.51.90.tar.xz.asc) = 897aa416795c320aa644d1e89aa14a9e94722e8630464343906fc08b3a1defcc78a72e5a691a36c7430829773c7772ee674f88098c7647452ce35f2453117e79 +SHA512 (webkitgtk-2.51.91.tar.xz) = 0f911d11db8da301724a3e780e7dac225b63e6160860eb2136ec77c6b8aacca03835a6bb0740142ed27bc3715a93a4a4a9fc669c29a5d2e9a9d3ca7fc76697de +SHA512 (webkitgtk-2.51.91.tar.xz.asc) = 77ef7bfe8565f819fdee916d76405a28f31dd9f14ed35f2cfb9b3ed7cc75032e1d1fe202de22540eb77e55854e99a660663a74f67a29f496a33eff98641cc7c3 diff --git a/webkitgtk.spec b/webkitgtk.spec index fd49786..034fffd 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -19,7 +19,7 @@ %endif Name: webkitgtk -Version: 2.51.90 +Version: 2.51.91 Release: %autorelease Summary: GTK web content engine library @@ -57,9 +57,6 @@ Source1: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz.asc # $ gpg --export --export-options export-minimal 013A0127AC9C65B34FFA62526C1009B693975393 5AA3BC334FD7E3369E7C77B291C559DBE4C9123B > webkitgtk-keys.gpg Source2: webkitgtk-keys.gpg -# https://bugs.webkit.org/show_bug.cgi?id=306109 -Patch: build.patch - BuildRequires: bison BuildRequires: bubblewrap BuildRequires: clang From 55c35ad618aa19b6353221944eaf7a57c0195b10 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Sun, 1 Mar 2026 11:23:54 -0600 Subject: [PATCH 182/200] Update to 2.51.92 --- sources | 4 ++-- webkitgtk.spec | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/sources b/sources index 0528580..adb885a 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.51.91.tar.xz) = 0f911d11db8da301724a3e780e7dac225b63e6160860eb2136ec77c6b8aacca03835a6bb0740142ed27bc3715a93a4a4a9fc669c29a5d2e9a9d3ca7fc76697de -SHA512 (webkitgtk-2.51.91.tar.xz.asc) = 77ef7bfe8565f819fdee916d76405a28f31dd9f14ed35f2cfb9b3ed7cc75032e1d1fe202de22540eb77e55854e99a660663a74f67a29f496a33eff98641cc7c3 +SHA512 (webkitgtk-2.51.92.tar.xz) = 6aa8a904da8fb56a70bb0ce936c826781f0535ab63ff5cc302e830eab43bacb10c0f5c2100e4b40048318bd45d0b55c8e9fea7f7ffe8afa67a76acab352e5f8c +SHA512 (webkitgtk-2.51.92.tar.xz.asc) = 162485647a9eaba19171037de986f4e02298dbc37b5ddd3c9931149edc334ad02069088d043abeb570b3db263d391c29d958b03912b84c81c20ad672feb8650f diff --git a/webkitgtk.spec b/webkitgtk.spec index 034fffd..2c1177e 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -19,7 +19,7 @@ %endif Name: webkitgtk -Version: 2.51.91 +Version: 2.51.92 Release: %autorelease Summary: GTK web content engine library From d0e1c7dfa8035847c439ade40bfc03bae26f84f0 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Fri, 6 Mar 2026 09:51:26 -0600 Subject: [PATCH 183/200] Update to 2.51.93 --- sources | 4 ++-- webkitgtk.spec | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/sources b/sources index adb885a..b2306bd 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.51.92.tar.xz) = 6aa8a904da8fb56a70bb0ce936c826781f0535ab63ff5cc302e830eab43bacb10c0f5c2100e4b40048318bd45d0b55c8e9fea7f7ffe8afa67a76acab352e5f8c -SHA512 (webkitgtk-2.51.92.tar.xz.asc) = 162485647a9eaba19171037de986f4e02298dbc37b5ddd3c9931149edc334ad02069088d043abeb570b3db263d391c29d958b03912b84c81c20ad672feb8650f +SHA512 (webkitgtk-2.51.93.tar.xz) = a6db628536d9381b8bfc8b3ede7b7679e57ae8528fde584bccd9f98fde090d43bd571df95a4494e22fb93964072a8bff7708d840f15ef1cefd81b308edaaed5b +SHA512 (webkitgtk-2.51.93.tar.xz.asc) = 018d0aece934eafe5a88861238648fab9c818ff02f72a2c5f821ba7837b00aee8b8b412e2e346c5dd897c8a8100f79937b7cb912c4960f3880646e75fc4435d4 diff --git a/webkitgtk.spec b/webkitgtk.spec index 2c1177e..04d0999 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -19,7 +19,7 @@ %endif Name: webkitgtk -Version: 2.51.92 +Version: 2.51.93 Release: %autorelease Summary: GTK web content engine library From eea81f2f025d61fef2db8d8917b0619d80f81adf Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Sat, 21 Mar 2026 12:56:51 -0500 Subject: [PATCH 184/200] Update to 2.52.0 --- sources | 4 ++-- webkitgtk.spec | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/sources b/sources index b2306bd..3150e13 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.51.93.tar.xz) = a6db628536d9381b8bfc8b3ede7b7679e57ae8528fde584bccd9f98fde090d43bd571df95a4494e22fb93964072a8bff7708d840f15ef1cefd81b308edaaed5b -SHA512 (webkitgtk-2.51.93.tar.xz.asc) = 018d0aece934eafe5a88861238648fab9c818ff02f72a2c5f821ba7837b00aee8b8b412e2e346c5dd897c8a8100f79937b7cb912c4960f3880646e75fc4435d4 +SHA512 (webkitgtk-2.52.0.tar.xz) = acb9cb5748b7b7e3a28076116cfd5acc5136e14e416bbac5d318d21af7b20471a91fd4341a39cc8cd2dc04c997e5ab122ea8a2306bea9e66472445ac268aa28c +SHA512 (webkitgtk-2.52.0.tar.xz.asc) = f671823ea00f68558c6d57a1d3a5650ff47bcad0f50ad3f97844b267cad7cb5ce3046f0ad3dd62d0fdc994dbde1e01cda8bcd0d3b85bef9d3c053aa11b95d4bf diff --git a/webkitgtk.spec b/webkitgtk.spec index 04d0999..2e41de1 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -19,7 +19,7 @@ %endif Name: webkitgtk -Version: 2.51.93 +Version: 2.52.0 Release: %autorelease Summary: GTK web content engine library From 56d20d04c91ce2515d717ee99b22de3d834f84f5 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Tue, 24 Mar 2026 08:54:35 -0500 Subject: [PATCH 185/200] Correct license of m4sugar.m4 --- webkitgtk.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/webkitgtk.spec b/webkitgtk.spec index 2e41de1..3a31dd2 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -36,7 +36,7 @@ Summary: GTK web content engine library # Source/ThirdParty/ANGLE/include/CL/cl_d3d10.h is Apache-2.0 # Source/ThirdParty/ANGLE/include/GLES/gl.h is MIT-Khronos (not on list see https://github.com/spdx/license-list-XML/issues/2017) # Source/ThirdParty/ANGLE/src/compiler/preprocessor/preprocessor_tab_autogen.cpp is GPL-3.0-or-later WITH Bison-exception-2.2 -# Source/ThirdParty/ANGLE/tools/flex-bison/third_party/m4sugar/m4sugar.m4 is GPL-3.0-only WITH Autoconf-exception-3.0 +# Source/ThirdParty/ANGLE/tools/flex-bison/third_party/m4sugar/m4sugar.m4 is GPL-3.0-or-later WITH Autoconf-exception-3.0 # Source/ThirdParty/pdfjs/web/images/annotation-paperclip.svg is MPL-2.0i # Source/ThirdParty/pdfjs/web/standard_fonts/LICENSE_LIBERATION is OFL-1.1 # Source/ThirdParty/xdgmime/ is AFL-2.0 OR GPL-2.0-or-later @@ -48,7 +48,7 @@ Summary: GTK web content engine library # Source/WTF/icu/LICENSE is ICU # Source/WTF/wtf/Markable.h is BSL-1.0 # The license tag and above comment is up to date as of WebKitGTK 2.42.2. -License: LGPL-2.1-only AND BSD-2-Clause AND BSD-3-Clause AND ISC AND bzip2-1.0.6 AND NCSA AND MIT AND GPL-2.0-only AND MPL-1.1 AND SunPro AND Unicode-TOU AND Apache-2.0 AND GPL-3.0-or-later WITH Bison-exception-2.2 AND GPL-3.0-only WITH Autoconf-exception-3.0 AND MPL-2.0 AND OFL-1.1 AND (AFL-2.0 OR GPL-2.0-or-later) AND BSD-Source-Code AND BSD-2-Clause-Views AND LGPL-2.1-or-later AND (NCSA OR MIT) AND Apache-2.0 WITH LLVM-exception AND ICU AND BSL-1.0 +License: LGPL-2.1-only AND BSD-2-Clause AND BSD-3-Clause AND ISC AND bzip2-1.0.6 AND NCSA AND MIT AND GPL-2.0-only AND MPL-1.1 AND SunPro AND Unicode-TOU AND Apache-2.0 AND GPL-3.0-or-later WITH Bison-exception-2.2 AND GPL-3.0-or-later WITH Autoconf-exception-3.0 AND MPL-2.0 AND OFL-1.1 AND (AFL-2.0 OR GPL-2.0-or-later) AND BSD-Source-Code AND BSD-2-Clause-Views AND LGPL-2.1-or-later AND (NCSA OR MIT) AND Apache-2.0 WITH LLVM-exception AND ICU AND BSL-1.0 URL: https://www.webkitgtk.org/ Source0: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz Source1: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz.asc From 50dcf60ec5beb70566c8335c46c088b4b4a4c522 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Tue, 24 Mar 2026 09:04:22 -0500 Subject: [PATCH 186/200] Remove Unicode-TOU from license list --- webkitgtk.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/webkitgtk.spec b/webkitgtk.spec index 3a31dd2..a57cadc 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -32,7 +32,7 @@ Summary: GTK web content engine library # Source/JavaScriptCore/disassembler/zydis/* is MIT # Source/JavaScriptCore/runtime/JSDateMath.h is MPL 1.1/GPL 2.0/LGPL 2.1 # Source/JavaScriptCore/runtime/MathCommon.cpp is SunPro -# Source/JavaScriptCore/ucd/CaseFolding.txt is Unicode-TOU +# Source/JavaScriptCore/ucd/CaseFolding.txt is Unicode-TOU, which is unapproved, but the only copyrightable part is the comment at the top of the file, so seems safe to omit it # Source/ThirdParty/ANGLE/include/CL/cl_d3d10.h is Apache-2.0 # Source/ThirdParty/ANGLE/include/GLES/gl.h is MIT-Khronos (not on list see https://github.com/spdx/license-list-XML/issues/2017) # Source/ThirdParty/ANGLE/src/compiler/preprocessor/preprocessor_tab_autogen.cpp is GPL-3.0-or-later WITH Bison-exception-2.2 @@ -48,7 +48,7 @@ Summary: GTK web content engine library # Source/WTF/icu/LICENSE is ICU # Source/WTF/wtf/Markable.h is BSL-1.0 # The license tag and above comment is up to date as of WebKitGTK 2.42.2. -License: LGPL-2.1-only AND BSD-2-Clause AND BSD-3-Clause AND ISC AND bzip2-1.0.6 AND NCSA AND MIT AND GPL-2.0-only AND MPL-1.1 AND SunPro AND Unicode-TOU AND Apache-2.0 AND GPL-3.0-or-later WITH Bison-exception-2.2 AND GPL-3.0-or-later WITH Autoconf-exception-3.0 AND MPL-2.0 AND OFL-1.1 AND (AFL-2.0 OR GPL-2.0-or-later) AND BSD-Source-Code AND BSD-2-Clause-Views AND LGPL-2.1-or-later AND (NCSA OR MIT) AND Apache-2.0 WITH LLVM-exception AND ICU AND BSL-1.0 +License: LGPL-2.1-only AND BSD-2-Clause AND BSD-3-Clause AND ISC AND bzip2-1.0.6 AND NCSA AND MIT AND GPL-2.0-only AND MPL-1.1 AND SunPro AND Apache-2.0 AND GPL-3.0-or-later WITH Bison-exception-2.2 AND GPL-3.0-or-later WITH Autoconf-exception-3.0 AND MPL-2.0 AND OFL-1.1 AND (AFL-2.0 OR GPL-2.0-or-later) AND BSD-Source-Code AND BSD-2-Clause-Views AND LGPL-2.1-or-later AND (NCSA OR MIT) AND Apache-2.0 WITH LLVM-exception AND ICU AND BSL-1.0 URL: https://www.webkitgtk.org/ Source0: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz Source1: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz.asc From 7d652e77a53d255d28f5c71cae0b827d597cf81a Mon Sep 17 00:00:00 2001 From: Jan Grulich Date: Wed, 25 Mar 2026 14:35:39 +0100 Subject: [PATCH 187/200] Add configuration for release-monitoring --- monitoring.toml | 13 +++++++++++++ 1 file changed, 13 insertions(+) create mode 100644 monitoring.toml diff --git a/monitoring.toml b/monitoring.toml new file mode 100644 index 0000000..e80fbc5 --- /dev/null +++ b/monitoring.toml @@ -0,0 +1,13 @@ +# Enable/disable monitoring +monitoring = true +# Enable/disable filling bugzilla ticket for new release +# When disabled it will also disable scratch builds +bugzilla = true +# Enable/disable reporting only stable versions +# Stable versions are recognized based on release-monitoring.org project settings +stable_only = false +# Enable/disable reporting all new versions instead of the latest one +# Enabling this will disable scratch builds +all_versions = false +# Enable/disable scratch build for newly opened version +scratch_build = false From 4ed776f2736579ffce37da78da32bd791e0d29b8 Mon Sep 17 00:00:00 2001 From: Jan Grulich Date: Wed, 25 Mar 2026 18:55:52 +0100 Subject: [PATCH 188/200] Restore release monitoring to original behavior [skip changelog] --- monitoring.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/monitoring.toml b/monitoring.toml index e80fbc5..fc852a3 100644 --- a/monitoring.toml +++ b/monitoring.toml @@ -1,5 +1,5 @@ # Enable/disable monitoring -monitoring = true +monitoring = false # Enable/disable filling bugzilla ticket for new release # When disabled it will also disable scratch builds bugzilla = true From 4b570825a34ede071970270d17e10b0577285d41 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Sat, 28 Mar 2026 08:25:15 -0500 Subject: [PATCH 189/200] Update to 2.52.1 --- build.patch | 73 ++++++++++++++++++++++++++++++++++++++++++++++++++ sources | 4 +-- webkitgtk.spec | 5 +++- 3 files changed, 79 insertions(+), 3 deletions(-) create mode 100644 build.patch diff --git a/build.patch b/build.patch new file mode 100644 index 0000000..843ab9d --- /dev/null +++ b/build.patch @@ -0,0 +1,73 @@ +From fae54da171d3fdee238c33418c4779bccc9d5ecb Mon Sep 17 00:00:00 2001 +From: Claudio Saavedra +Date: Fri, 27 Mar 2026 22:09:02 +0200 +Subject: [PATCH] [GTK3] Fix the dom bindings build + https://bugs.webkit.org/show_bug.cgi?id=310915 + +Reviewed by NOBODY (OOPS!). + +305877.279@webkitglib/2.52 changed the signature of +UserMessageHandler::postMessage. Fix that so that +webkit_dom_dom_window_webkit_message_handlers_post_message() continues +to work as usual. + +* Source/WebCore/page/UserMessageHandler.cpp: +(WebCore::UserMessageHandler::postMessage): +* Source/WebCore/page/UserMessageHandler.h: +--- + Source/WebCore/page/UserMessageHandler.cpp | 16 +++++++++++----- + Source/WebCore/page/UserMessageHandler.h | 2 +- + 2 files changed, 12 insertions(+), 6 deletions(-) + +diff --git a/Source/WebCore/page/UserMessageHandler.cpp b/Source/WebCore/page/UserMessageHandler.cpp +index a82c2d47b263..1fa69a2e145f 100644 +--- a/Source/WebCore/page/UserMessageHandler.cpp ++++ b/Source/WebCore/page/UserMessageHandler.cpp +@@ -63,16 +63,20 @@ static bool passesSameOriginCheck(JSC::JSGlobalObject& globalObject, RefPtrisSameOriginAs(frameSecurityOrigin); + } + +-void UserMessageHandler::postMessage(JSC::JSGlobalObject& globalObject, JSC::JSValue value, Ref&& promise) ++ExceptionOr UserMessageHandler::postMessage(JSC::JSGlobalObject& globalObject, JSC::JSValue value, Ref&& promise) + { + // Check to see if the descriptor has been removed. This can happen if the host application has + // removed the named message handler at the WebKit2 API level. + RefPtr descriptor = m_descriptor; +- if (!descriptor) +- return promise->reject(Exception { ExceptionCode::InvalidAccessError }); ++ if (!descriptor) { ++ promise->reject(Exception { ExceptionCode::InvalidAccessError }); ++ return Exception { ExceptionCode::InvalidAccessError }; ++ } + +- if (!passesSameOriginCheck(globalObject, m_frame.get())) +- return promise->reject(Exception { ExceptionCode::InvalidAccessError, "Failed same-origin check."_s }); ++ if (!passesSameOriginCheck(globalObject, m_frame.get())) { ++ promise->reject(Exception { ExceptionCode::InvalidAccessError, "Failed same-origin check."_s }); ++ return Exception { ExceptionCode::InvalidAccessError }; ++ } + + descriptor->didPostMessage(*this, globalObject, value, [promise = WTF::move(promise)](JSC::JSValue result, const String& errorMessage) { + if (errorMessage.isNull()) +@@ -84,6 +88,8 @@ void UserMessageHandler::postMessage(JSC::JSGlobalObject& globalObject, JSC::JSV + JSC::JSLockHolder lock(globalObject); + promise->reject(JSC::createError(globalObject, errorMessage)); + }); ++ ++ return { }; + } + + ExceptionOr UserMessageHandler::postLegacySynchronousMessage(JSC::JSGlobalObject& globalObject, JSC::JSValue value) +diff --git a/Source/WebCore/page/UserMessageHandler.h b/Source/WebCore/page/UserMessageHandler.h +index ae49b223c2d6..4f59318abb25 100644 +--- a/Source/WebCore/page/UserMessageHandler.h ++++ b/Source/WebCore/page/UserMessageHandler.h +@@ -52,7 +52,7 @@ class UserMessageHandler : public RefCounted, public FrameDe + void ref() const final { RefCounted::ref(); } + void deref() const final { RefCounted::deref(); } + +- void postMessage(JSC::JSGlobalObject&, JSC::JSValue, Ref&&); ++ ExceptionOr postMessage(JSC::JSGlobalObject&, JSC::JSValue, Ref&&); + ExceptionOr postLegacySynchronousMessage(JSC::JSGlobalObject&, JSC::JSValue); + + const UserMessageHandlerDescriptor* descriptor() const { return m_descriptor.get(); } diff --git a/sources b/sources index 3150e13..6acc457 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.52.0.tar.xz) = acb9cb5748b7b7e3a28076116cfd5acc5136e14e416bbac5d318d21af7b20471a91fd4341a39cc8cd2dc04c997e5ab122ea8a2306bea9e66472445ac268aa28c -SHA512 (webkitgtk-2.52.0.tar.xz.asc) = f671823ea00f68558c6d57a1d3a5650ff47bcad0f50ad3f97844b267cad7cb5ce3046f0ad3dd62d0fdc994dbde1e01cda8bcd0d3b85bef9d3c053aa11b95d4bf +SHA512 (webkitgtk-2.52.1.tar.xz) = 2798e2d94bcdde954e5cacfbae68219918dc2f9fae357ae8289e54db9d2ae6553b98819f073d8421d207ac55b07ec3838211602b4aeda2de248d6861ba1b3421 +SHA512 (webkitgtk-2.52.1.tar.xz.asc) = 92e94dff4321b1879a8d7933d4cec7487771262a4e5b5b76db23d94fcb75d6b02ba64478479d74372ac71ba0e17022f9535bb4cf7639dba8aefc1c9942e97b36 diff --git a/webkitgtk.spec b/webkitgtk.spec index a57cadc..6eb2204 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -19,7 +19,7 @@ %endif Name: webkitgtk -Version: 2.52.0 +Version: 2.52.1 Release: %autorelease Summary: GTK web content engine library @@ -57,6 +57,9 @@ Source1: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz.asc # $ gpg --export --export-options export-minimal 013A0127AC9C65B34FFA62526C1009B693975393 5AA3BC334FD7E3369E7C77B291C559DBE4C9123B > webkitgtk-keys.gpg Source2: webkitgtk-keys.gpg +# https://bugs.webkit.org/show_bug.cgi?id=310915 +Patch: build.patch + BuildRequires: bison BuildRequires: bubblewrap BuildRequires: clang From bf4f89ef11f12a5b7f8958f0bca52279ef5abb67 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Fri, 17 Apr 2026 10:32:58 -0500 Subject: [PATCH 190/200] Update to 2.52.3 --- build.patch | 73 -------------------------------------------------- sources | 4 +-- webkitgtk.spec | 5 +--- 3 files changed, 3 insertions(+), 79 deletions(-) delete mode 100644 build.patch diff --git a/build.patch b/build.patch deleted file mode 100644 index 843ab9d..0000000 --- a/build.patch +++ /dev/null @@ -1,73 +0,0 @@ -From fae54da171d3fdee238c33418c4779bccc9d5ecb Mon Sep 17 00:00:00 2001 -From: Claudio Saavedra -Date: Fri, 27 Mar 2026 22:09:02 +0200 -Subject: [PATCH] [GTK3] Fix the dom bindings build - https://bugs.webkit.org/show_bug.cgi?id=310915 - -Reviewed by NOBODY (OOPS!). - -305877.279@webkitglib/2.52 changed the signature of -UserMessageHandler::postMessage. Fix that so that -webkit_dom_dom_window_webkit_message_handlers_post_message() continues -to work as usual. - -* Source/WebCore/page/UserMessageHandler.cpp: -(WebCore::UserMessageHandler::postMessage): -* Source/WebCore/page/UserMessageHandler.h: ---- - Source/WebCore/page/UserMessageHandler.cpp | 16 +++++++++++----- - Source/WebCore/page/UserMessageHandler.h | 2 +- - 2 files changed, 12 insertions(+), 6 deletions(-) - -diff --git a/Source/WebCore/page/UserMessageHandler.cpp b/Source/WebCore/page/UserMessageHandler.cpp -index a82c2d47b263..1fa69a2e145f 100644 ---- a/Source/WebCore/page/UserMessageHandler.cpp -+++ b/Source/WebCore/page/UserMessageHandler.cpp -@@ -63,16 +63,20 @@ static bool passesSameOriginCheck(JSC::JSGlobalObject& globalObject, RefPtrisSameOriginAs(frameSecurityOrigin); - } - --void UserMessageHandler::postMessage(JSC::JSGlobalObject& globalObject, JSC::JSValue value, Ref&& promise) -+ExceptionOr UserMessageHandler::postMessage(JSC::JSGlobalObject& globalObject, JSC::JSValue value, Ref&& promise) - { - // Check to see if the descriptor has been removed. This can happen if the host application has - // removed the named message handler at the WebKit2 API level. - RefPtr descriptor = m_descriptor; -- if (!descriptor) -- return promise->reject(Exception { ExceptionCode::InvalidAccessError }); -+ if (!descriptor) { -+ promise->reject(Exception { ExceptionCode::InvalidAccessError }); -+ return Exception { ExceptionCode::InvalidAccessError }; -+ } - -- if (!passesSameOriginCheck(globalObject, m_frame.get())) -- return promise->reject(Exception { ExceptionCode::InvalidAccessError, "Failed same-origin check."_s }); -+ if (!passesSameOriginCheck(globalObject, m_frame.get())) { -+ promise->reject(Exception { ExceptionCode::InvalidAccessError, "Failed same-origin check."_s }); -+ return Exception { ExceptionCode::InvalidAccessError }; -+ } - - descriptor->didPostMessage(*this, globalObject, value, [promise = WTF::move(promise)](JSC::JSValue result, const String& errorMessage) { - if (errorMessage.isNull()) -@@ -84,6 +88,8 @@ void UserMessageHandler::postMessage(JSC::JSGlobalObject& globalObject, JSC::JSV - JSC::JSLockHolder lock(globalObject); - promise->reject(JSC::createError(globalObject, errorMessage)); - }); -+ -+ return { }; - } - - ExceptionOr UserMessageHandler::postLegacySynchronousMessage(JSC::JSGlobalObject& globalObject, JSC::JSValue value) -diff --git a/Source/WebCore/page/UserMessageHandler.h b/Source/WebCore/page/UserMessageHandler.h -index ae49b223c2d6..4f59318abb25 100644 ---- a/Source/WebCore/page/UserMessageHandler.h -+++ b/Source/WebCore/page/UserMessageHandler.h -@@ -52,7 +52,7 @@ class UserMessageHandler : public RefCounted, public FrameDe - void ref() const final { RefCounted::ref(); } - void deref() const final { RefCounted::deref(); } - -- void postMessage(JSC::JSGlobalObject&, JSC::JSValue, Ref&&); -+ ExceptionOr postMessage(JSC::JSGlobalObject&, JSC::JSValue, Ref&&); - ExceptionOr postLegacySynchronousMessage(JSC::JSGlobalObject&, JSC::JSValue); - - const UserMessageHandlerDescriptor* descriptor() const { return m_descriptor.get(); } diff --git a/sources b/sources index 6acc457..5d2ff95 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.52.1.tar.xz) = 2798e2d94bcdde954e5cacfbae68219918dc2f9fae357ae8289e54db9d2ae6553b98819f073d8421d207ac55b07ec3838211602b4aeda2de248d6861ba1b3421 -SHA512 (webkitgtk-2.52.1.tar.xz.asc) = 92e94dff4321b1879a8d7933d4cec7487771262a4e5b5b76db23d94fcb75d6b02ba64478479d74372ac71ba0e17022f9535bb4cf7639dba8aefc1c9942e97b36 +SHA512 (webkitgtk-2.52.3.tar.xz.asc) = cb7f6dc0e2d65c763988e9a18c48ee6810d60a8d2351912bdd33358dcd2d46b994ba34f85c6f8315a34d5b5cb78bd2f0dcb78d076af58e657d1817fdd56f005d +SHA512 (webkitgtk-2.52.3.tar.xz) = 8007688e4eb5b465a6f50e05e89858f970f7bbaed45844b8f97175de1fb24e41e6d88f4f6b6299d5ae2ad4e19483da371ac16257d787626da29de7551fbd2a3c diff --git a/webkitgtk.spec b/webkitgtk.spec index 6eb2204..e92596a 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -19,7 +19,7 @@ %endif Name: webkitgtk -Version: 2.52.1 +Version: 2.52.3 Release: %autorelease Summary: GTK web content engine library @@ -57,9 +57,6 @@ Source1: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz.asc # $ gpg --export --export-options export-minimal 013A0127AC9C65B34FFA62526C1009B693975393 5AA3BC334FD7E3369E7C77B291C559DBE4C9123B > webkitgtk-keys.gpg Source2: webkitgtk-keys.gpg -# https://bugs.webkit.org/show_bug.cgi?id=310915 -Patch: build.patch - BuildRequires: bison BuildRequires: bubblewrap BuildRequires: clang From acc325cd204d6d1f70aefe5cdf98ec0bad4751db Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Fri, 8 May 2026 12:02:35 -0500 Subject: [PATCH 191/200] Update to 2.53.2 --- build.patch | 142 +++++++++++++++++++++++++++++++++++++++++++++++++ sources | 4 +- webkitgtk.spec | 6 ++- 3 files changed, 149 insertions(+), 3 deletions(-) create mode 100644 build.patch diff --git a/build.patch b/build.patch new file mode 100644 index 0000000..0810986 --- /dev/null +++ b/build.patch @@ -0,0 +1,142 @@ +--- webkitgtk/Source/JavaScriptCore/bytecode/ArithProfile.h ++++ webkitgtk/Source/JavaScriptCore/bytecode/ArithProfile.h +@@ -259,7 +259,7 @@ public: + return argObservedType().isEmpty(); + } + +- friend class JSC::LLIntOffsetsExtractor; ++ friend class LLIntOffsetsExtractor; + }; + + /* This class stores the following components in 16 bits: +@@ -384,7 +384,7 @@ public: + return lhsObservedType().isEmpty() && rhsObservedType().isEmpty(); + } + +- friend class JSC::LLIntOffsetsExtractor; ++ friend class LLIntOffsetsExtractor; + }; + + } // namespace JSC +--- webkitgtk/Source/JavaScriptCore/heap/Heap.cpp ++++ webkitgtk/Source/JavaScriptCore/heap/Heap.cpp +@@ -106,6 +106,7 @@ + #include + #include + #include ++#include + #include + #include + #include +--- webkitgtk/Source/JavaScriptCore/runtime/DeferredWorkTimer.cpp ++++ webkitgtk/Source/JavaScriptCore/runtime/DeferredWorkTimer.cpp +@@ -33,6 +33,7 @@ + #include "VM.h" + #include + #include ++#include + #include + + namespace JSC { +--- webkitgtk/Source/WebCore/inspector/agents/page/PageTimelineAgent.cpp ++++ webkitgtk/Source/WebCore/inspector/agents/page/PageTimelineAgent.cpp +@@ -42,6 +42,7 @@ + #include "RenderView.h" + #include "TimelineRecordFactory.h" + #include "WebDebuggerAgent.h" ++#include + + #if PLATFORM(IOS_FAMILY) + #include "WebCoreThreadInternal.h" +@@ -50,7 +51,6 @@ + + #if PLATFORM(COCOA) + #include "RunLoopObserver.h" +-#include + #endif + + namespace WebCore { +--- webkitgtk/Source/cmake/WebKitCommon.cmake ++++ webkitgtk/Source/cmake/WebKitCommon.cmake +@@ -100,13 +100,17 @@ if (NOT HAS_RUN_WEBKIT_COMMON) + else () + string(TOLOWER ${CMAKE_SYSTEM_PROCESSOR} LOWERCASE_CMAKE_SYSTEM_PROCESSOR) + endif () +- if (FORCE_32BIT OR ( +- LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "^(arm|aarch32|cortex-(a(5|7|8|9|1[2-7]|32)|m[0-9]|r[0-9]([^0-9]|$)))" +- AND NOT LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64|arm64)")) ++ if (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "^(arm|aarch32|cortex-(a(5|7|8|9|1[2-7]|32)|m[0-9]|r[0-9]([^0-9]|$)))" ++ AND NOT LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64|arm64)") + set(WTF_CPU_ARM 1) + set(CMAKE_SYSTEM_PROCESSOR "armv7l" CACHE INTERNAL "" FORCE) + elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64|arm64|cortex-(a|x|c))") +- set(WTF_CPU_ARM64 1) ++ if (FORCE_32BIT) ++ set(WTF_CPU_ARM 1) ++ set(CMAKE_SYSTEM_PROCESSOR "armv7l" CACHE INTERNAL "" FORCE) ++ else () ++ set(WTF_CPU_ARM64 1) ++ endif () + elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "^mips64") + set(WTF_CPU_MIPS64 1) + elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "^mips") +--- webkitgtk/Source/WebCore/CMakeLists.txt ++++ webkitgtk/Source/WebCore/CMakeLists.txt +@@ -3152,7 +3152,9 @@ endif () + # These files are very large and exhaust virtual memory on 32-bit ARM. + if (WTF_CPU_ARM AND NOT CMAKE_CROSSCOMPILING) + set(DerivedSources_COMPILE_OPTIONS -O0 -DRELEASE_WITHOUT_OPTIMIZATIONS=ON) +- set_source_files_properties(${WebCore_DERIVED_SOURCES_DIR}/JSDOMWindow.cpp PROPERTIES COMPILE_OPTIONS "${DerivedSources_COMPILE_OPTIONS}") ++ set_source_files_properties(${WebCore_DERIVED_SOURCES_DIR}/JSDOMWindow.cpp PROPERTIES ++ COMPILE_OPTIONS "${DerivedSources_COMPILE_OPTIONS}" ++ SKIP_PRECOMPILE_HEADERS ON) + endif () + + ADD_WEBKIT_PREFIX_HEADERS(WebCoreTestSupport testing/js/WebCoreTestSupportPrefix.h) +--- webkitgtk/Source/WebKit/CMakeLists.txt ++++ webkitgtk/Source/WebKit/CMakeLists.txt +@@ -982,8 +982,12 @@ add_custom_command( + # These files are very large and exhaust virtual memory on 32-bit ARM. + if (WTF_CPU_ARM AND NOT CMAKE_CROSSCOMPILING) + set(GeneratedSerializers_COMPILE_OPTIONS -O0 -DRELEASE_WITHOUT_OPTIMIZATIONS=ON) +- set_source_files_properties(${WebKit_DERIVED_SOURCES_DIR}/GeneratedSerializers.cpp PROPERTIES COMPILE_OPTIONS "${GeneratedSerializers_COMPILE_OPTIONS}") +- set_source_files_properties(${WebKit_DERIVED_SOURCES_DIR}/WebKitPlatformGeneratedSerializers.cpp PROPERTIES COMPILE_OPTIONS "${GeneratedSerializers_COMPILE_OPTIONS}") ++ set_source_files_properties(${WebKit_DERIVED_SOURCES_DIR}/GeneratedSerializers.cpp PROPERTIES ++ COMPILE_OPTIONS "${GeneratedSerializers_COMPILE_OPTIONS}" ++ SKIP_PRECOMPILE_HEADERS ON) ++ set_source_files_properties(${WebKit_DERIVED_SOURCES_DIR}/WebKitPlatformGeneratedSerializers.cpp PROPERTIES ++ COMPILE_OPTIONS "${GeneratedSerializers_COMPILE_OPTIONS}" ++ SKIP_PRECOMPILE_HEADERS ON) + endif () + + set(WebKit_JSON_RPC_PROTOCOL_GENERATOR_SCRIPTS + +From 64b91b261e8a3d1c39e2c5378ac2fb0a2e4761c8 Mon Sep 17 00:00:00 2001 +From: Alberto Garcia +Date: Wed, 6 May 2026 07:21:19 -0700 +Subject: [PATCH] WebResourceLoader.cpp: error: no member named 'pageSize' in + namespace 'WTF' https://bugs.webkit.org/show_bug.cgi?id=314196 + +Reviewed by Claudio Saavedra. + +Add the missing include for WTF::pageSize(). + +* Source/WebKit/WebProcess/Network/WebResourceLoader.cpp: + +Canonical link: https://commits.webkit.org/312692@main +--- + Source/WebKit/WebProcess/Network/WebResourceLoader.cpp | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/Source/WebKit/WebProcess/Network/WebResourceLoader.cpp b/Source/WebKit/WebProcess/Network/WebResourceLoader.cpp +index 24c2649b31ce..92c407cd8349 100644 +--- a/Source/WebKit/WebProcess/Network/WebResourceLoader.cpp ++++ b/Source/WebKit/WebProcess/Network/WebResourceLoader.cpp +@@ -59,6 +59,7 @@ + #include + #include + #include ++#include + #include + + #if ENABLE(CONTENT_EXTENSIONS) diff --git a/sources b/sources index 5d2ff95..8f89b45 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.52.3.tar.xz.asc) = cb7f6dc0e2d65c763988e9a18c48ee6810d60a8d2351912bdd33358dcd2d46b994ba34f85c6f8315a34d5b5cb78bd2f0dcb78d076af58e657d1817fdd56f005d -SHA512 (webkitgtk-2.52.3.tar.xz) = 8007688e4eb5b465a6f50e05e89858f970f7bbaed45844b8f97175de1fb24e41e6d88f4f6b6299d5ae2ad4e19483da371ac16257d787626da29de7551fbd2a3c +SHA512 (webkitgtk-2.53.2.tar.xz) = fefacd46fccaa85a53a1f746b1f5927067c44a7658c09bf8222b7609422f93d9c5773362836dc29281c82dd585a6d950d02f2c2c7a6876af9598ab627e85a130 +SHA512 (webkitgtk-2.53.2.tar.xz.asc) = 1dbf8e6f6c0106e344ebb50df929cbbe53a0a024eac5660ad64681737af9280b5127a54fc1bd2f2ebc6991e365d41c2de74ee3e0bf2fca4de35007cd50f78f57 diff --git a/webkitgtk.spec b/webkitgtk.spec index e92596a..70f99f4 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -19,7 +19,7 @@ %endif Name: webkitgtk -Version: 2.52.3 +Version: 2.53.2 Release: %autorelease Summary: GTK web content engine library @@ -57,6 +57,10 @@ Source1: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz.asc # $ gpg --export --export-options export-minimal 013A0127AC9C65B34FFA62526C1009B693975393 5AA3BC334FD7E3369E7C77B291C559DBE4C9123B > webkitgtk-keys.gpg Source2: webkitgtk-keys.gpg +# https://bugs.webkit.org/show_bug.cgi?id=314199 +# And also: https://github.com/WebKit/WebKit/pull/64367 +Patch: build.patch + BuildRequires: bison BuildRequires: bubblewrap BuildRequires: clang From f454be3fd1ebdcea6d5a86c5e9f446c0a72dcac3 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Mon, 11 May 2026 16:24:48 -0500 Subject: [PATCH 192/200] Revert "Update to 2.53.2" This reverts commit acc325cd204d6d1f70aefe5cdf98ec0bad4751db. Not yet ready for s390x. --- build.patch | 142 ------------------------------------------------- sources | 4 +- webkitgtk.spec | 6 +-- 3 files changed, 3 insertions(+), 149 deletions(-) delete mode 100644 build.patch diff --git a/build.patch b/build.patch deleted file mode 100644 index 0810986..0000000 --- a/build.patch +++ /dev/null @@ -1,142 +0,0 @@ ---- webkitgtk/Source/JavaScriptCore/bytecode/ArithProfile.h -+++ webkitgtk/Source/JavaScriptCore/bytecode/ArithProfile.h -@@ -259,7 +259,7 @@ public: - return argObservedType().isEmpty(); - } - -- friend class JSC::LLIntOffsetsExtractor; -+ friend class LLIntOffsetsExtractor; - }; - - /* This class stores the following components in 16 bits: -@@ -384,7 +384,7 @@ public: - return lhsObservedType().isEmpty() && rhsObservedType().isEmpty(); - } - -- friend class JSC::LLIntOffsetsExtractor; -+ friend class LLIntOffsetsExtractor; - }; - - } // namespace JSC ---- webkitgtk/Source/JavaScriptCore/heap/Heap.cpp -+++ webkitgtk/Source/JavaScriptCore/heap/Heap.cpp -@@ -106,6 +106,7 @@ - #include - #include - #include -+#include - #include - #include - #include ---- webkitgtk/Source/JavaScriptCore/runtime/DeferredWorkTimer.cpp -+++ webkitgtk/Source/JavaScriptCore/runtime/DeferredWorkTimer.cpp -@@ -33,6 +33,7 @@ - #include "VM.h" - #include - #include -+#include - #include - - namespace JSC { ---- webkitgtk/Source/WebCore/inspector/agents/page/PageTimelineAgent.cpp -+++ webkitgtk/Source/WebCore/inspector/agents/page/PageTimelineAgent.cpp -@@ -42,6 +42,7 @@ - #include "RenderView.h" - #include "TimelineRecordFactory.h" - #include "WebDebuggerAgent.h" -+#include - - #if PLATFORM(IOS_FAMILY) - #include "WebCoreThreadInternal.h" -@@ -50,7 +51,6 @@ - - #if PLATFORM(COCOA) - #include "RunLoopObserver.h" --#include - #endif - - namespace WebCore { ---- webkitgtk/Source/cmake/WebKitCommon.cmake -+++ webkitgtk/Source/cmake/WebKitCommon.cmake -@@ -100,13 +100,17 @@ if (NOT HAS_RUN_WEBKIT_COMMON) - else () - string(TOLOWER ${CMAKE_SYSTEM_PROCESSOR} LOWERCASE_CMAKE_SYSTEM_PROCESSOR) - endif () -- if (FORCE_32BIT OR ( -- LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "^(arm|aarch32|cortex-(a(5|7|8|9|1[2-7]|32)|m[0-9]|r[0-9]([^0-9]|$)))" -- AND NOT LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64|arm64)")) -+ if (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "^(arm|aarch32|cortex-(a(5|7|8|9|1[2-7]|32)|m[0-9]|r[0-9]([^0-9]|$)))" -+ AND NOT LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64|arm64)") - set(WTF_CPU_ARM 1) - set(CMAKE_SYSTEM_PROCESSOR "armv7l" CACHE INTERNAL "" FORCE) - elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64|arm64|cortex-(a|x|c))") -- set(WTF_CPU_ARM64 1) -+ if (FORCE_32BIT) -+ set(WTF_CPU_ARM 1) -+ set(CMAKE_SYSTEM_PROCESSOR "armv7l" CACHE INTERNAL "" FORCE) -+ else () -+ set(WTF_CPU_ARM64 1) -+ endif () - elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "^mips64") - set(WTF_CPU_MIPS64 1) - elseif (LOWERCASE_CMAKE_SYSTEM_PROCESSOR MATCHES "^mips") ---- webkitgtk/Source/WebCore/CMakeLists.txt -+++ webkitgtk/Source/WebCore/CMakeLists.txt -@@ -3152,7 +3152,9 @@ endif () - # These files are very large and exhaust virtual memory on 32-bit ARM. - if (WTF_CPU_ARM AND NOT CMAKE_CROSSCOMPILING) - set(DerivedSources_COMPILE_OPTIONS -O0 -DRELEASE_WITHOUT_OPTIMIZATIONS=ON) -- set_source_files_properties(${WebCore_DERIVED_SOURCES_DIR}/JSDOMWindow.cpp PROPERTIES COMPILE_OPTIONS "${DerivedSources_COMPILE_OPTIONS}") -+ set_source_files_properties(${WebCore_DERIVED_SOURCES_DIR}/JSDOMWindow.cpp PROPERTIES -+ COMPILE_OPTIONS "${DerivedSources_COMPILE_OPTIONS}" -+ SKIP_PRECOMPILE_HEADERS ON) - endif () - - ADD_WEBKIT_PREFIX_HEADERS(WebCoreTestSupport testing/js/WebCoreTestSupportPrefix.h) ---- webkitgtk/Source/WebKit/CMakeLists.txt -+++ webkitgtk/Source/WebKit/CMakeLists.txt -@@ -982,8 +982,12 @@ add_custom_command( - # These files are very large and exhaust virtual memory on 32-bit ARM. - if (WTF_CPU_ARM AND NOT CMAKE_CROSSCOMPILING) - set(GeneratedSerializers_COMPILE_OPTIONS -O0 -DRELEASE_WITHOUT_OPTIMIZATIONS=ON) -- set_source_files_properties(${WebKit_DERIVED_SOURCES_DIR}/GeneratedSerializers.cpp PROPERTIES COMPILE_OPTIONS "${GeneratedSerializers_COMPILE_OPTIONS}") -- set_source_files_properties(${WebKit_DERIVED_SOURCES_DIR}/WebKitPlatformGeneratedSerializers.cpp PROPERTIES COMPILE_OPTIONS "${GeneratedSerializers_COMPILE_OPTIONS}") -+ set_source_files_properties(${WebKit_DERIVED_SOURCES_DIR}/GeneratedSerializers.cpp PROPERTIES -+ COMPILE_OPTIONS "${GeneratedSerializers_COMPILE_OPTIONS}" -+ SKIP_PRECOMPILE_HEADERS ON) -+ set_source_files_properties(${WebKit_DERIVED_SOURCES_DIR}/WebKitPlatformGeneratedSerializers.cpp PROPERTIES -+ COMPILE_OPTIONS "${GeneratedSerializers_COMPILE_OPTIONS}" -+ SKIP_PRECOMPILE_HEADERS ON) - endif () - - set(WebKit_JSON_RPC_PROTOCOL_GENERATOR_SCRIPTS - -From 64b91b261e8a3d1c39e2c5378ac2fb0a2e4761c8 Mon Sep 17 00:00:00 2001 -From: Alberto Garcia -Date: Wed, 6 May 2026 07:21:19 -0700 -Subject: [PATCH] WebResourceLoader.cpp: error: no member named 'pageSize' in - namespace 'WTF' https://bugs.webkit.org/show_bug.cgi?id=314196 - -Reviewed by Claudio Saavedra. - -Add the missing include for WTF::pageSize(). - -* Source/WebKit/WebProcess/Network/WebResourceLoader.cpp: - -Canonical link: https://commits.webkit.org/312692@main ---- - Source/WebKit/WebProcess/Network/WebResourceLoader.cpp | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/Source/WebKit/WebProcess/Network/WebResourceLoader.cpp b/Source/WebKit/WebProcess/Network/WebResourceLoader.cpp -index 24c2649b31ce..92c407cd8349 100644 ---- a/Source/WebKit/WebProcess/Network/WebResourceLoader.cpp -+++ b/Source/WebKit/WebProcess/Network/WebResourceLoader.cpp -@@ -59,6 +59,7 @@ - #include - #include - #include -+#include - #include - - #if ENABLE(CONTENT_EXTENSIONS) diff --git a/sources b/sources index 8f89b45..5d2ff95 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.53.2.tar.xz) = fefacd46fccaa85a53a1f746b1f5927067c44a7658c09bf8222b7609422f93d9c5773362836dc29281c82dd585a6d950d02f2c2c7a6876af9598ab627e85a130 -SHA512 (webkitgtk-2.53.2.tar.xz.asc) = 1dbf8e6f6c0106e344ebb50df929cbbe53a0a024eac5660ad64681737af9280b5127a54fc1bd2f2ebc6991e365d41c2de74ee3e0bf2fca4de35007cd50f78f57 +SHA512 (webkitgtk-2.52.3.tar.xz.asc) = cb7f6dc0e2d65c763988e9a18c48ee6810d60a8d2351912bdd33358dcd2d46b994ba34f85c6f8315a34d5b5cb78bd2f0dcb78d076af58e657d1817fdd56f005d +SHA512 (webkitgtk-2.52.3.tar.xz) = 8007688e4eb5b465a6f50e05e89858f970f7bbaed45844b8f97175de1fb24e41e6d88f4f6b6299d5ae2ad4e19483da371ac16257d787626da29de7551fbd2a3c diff --git a/webkitgtk.spec b/webkitgtk.spec index 70f99f4..e92596a 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -19,7 +19,7 @@ %endif Name: webkitgtk -Version: 2.53.2 +Version: 2.52.3 Release: %autorelease Summary: GTK web content engine library @@ -57,10 +57,6 @@ Source1: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz.asc # $ gpg --export --export-options export-minimal 013A0127AC9C65B34FFA62526C1009B693975393 5AA3BC334FD7E3369E7C77B291C559DBE4C9123B > webkitgtk-keys.gpg Source2: webkitgtk-keys.gpg -# https://bugs.webkit.org/show_bug.cgi?id=314199 -# And also: https://github.com/WebKit/WebKit/pull/64367 -Patch: build.patch - BuildRequires: bison BuildRequires: bubblewrap BuildRequires: clang From e9cd5eaa76ba43b2964f47fb45b920f4ccbcfdf7 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Thu, 21 May 2026 09:52:41 -0500 Subject: [PATCH 193/200] Remove source files not included in binary RPM from license tag https://docs.fedoraproject.org/en-US/legal/license-field/#_source_package_files_not_included_in_binary_rpm https://gitlab.com/fedora/legal/fedora-license-data/-/work_items/729 --- webkitgtk.spec | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/webkitgtk.spec b/webkitgtk.spec index e92596a..58e2566 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -36,7 +36,6 @@ Summary: GTK web content engine library # Source/ThirdParty/ANGLE/include/CL/cl_d3d10.h is Apache-2.0 # Source/ThirdParty/ANGLE/include/GLES/gl.h is MIT-Khronos (not on list see https://github.com/spdx/license-list-XML/issues/2017) # Source/ThirdParty/ANGLE/src/compiler/preprocessor/preprocessor_tab_autogen.cpp is GPL-3.0-or-later WITH Bison-exception-2.2 -# Source/ThirdParty/ANGLE/tools/flex-bison/third_party/m4sugar/m4sugar.m4 is GPL-3.0-or-later WITH Autoconf-exception-3.0 # Source/ThirdParty/pdfjs/web/images/annotation-paperclip.svg is MPL-2.0i # Source/ThirdParty/pdfjs/web/standard_fonts/LICENSE_LIBERATION is OFL-1.1 # Source/ThirdParty/xdgmime/ is AFL-2.0 OR GPL-2.0-or-later @@ -45,10 +44,9 @@ Summary: GTK web content engine library # Source/WebKit/UIProcess/Launcher/glib/BubblewrapLauncher.cpp is LGPL-2.1-or-later # Source/WTF/LICENSE-libc++.txt is NCSA OR MIT # Source/WTF/LICENSE-LLVM.txt is Apache-2.0 WITH LLVM-exception -# Source/WTF/icu/LICENSE is ICU # Source/WTF/wtf/Markable.h is BSL-1.0 # The license tag and above comment is up to date as of WebKitGTK 2.42.2. -License: LGPL-2.1-only AND BSD-2-Clause AND BSD-3-Clause AND ISC AND bzip2-1.0.6 AND NCSA AND MIT AND GPL-2.0-only AND MPL-1.1 AND SunPro AND Apache-2.0 AND GPL-3.0-or-later WITH Bison-exception-2.2 AND GPL-3.0-or-later WITH Autoconf-exception-3.0 AND MPL-2.0 AND OFL-1.1 AND (AFL-2.0 OR GPL-2.0-or-later) AND BSD-Source-Code AND BSD-2-Clause-Views AND LGPL-2.1-or-later AND (NCSA OR MIT) AND Apache-2.0 WITH LLVM-exception AND ICU AND BSL-1.0 +License: LGPL-2.1-only AND BSD-2-Clause AND BSD-3-Clause AND ISC AND bzip2-1.0.6 AND NCSA AND MIT AND GPL-2.0-only AND MPL-1.1 AND SunPro AND Apache-2.0 AND GPL-3.0-or-later WITH Bison-exception-2.2 AND MPL-2.0 AND OFL-1.1 AND (AFL-2.0 OR GPL-2.0-or-later) AND BSD-Source-Code AND BSD-2-Clause-Views AND LGPL-2.1-or-later AND (NCSA OR MIT) AND Apache-2.0 WITH LLVM-exception AND BSL-1.0 URL: https://www.webkitgtk.org/ Source0: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz Source1: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz.asc From 111066fcffba1401dfaa22aa42586e383ee9d319 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Wed, 27 May 2026 13:17:30 -0500 Subject: [PATCH 194/200] Update to 2.53.3 --- skia-s390x.patch | 82 ++++++++++++++++++++++++++++++++++++++++++++++++ sources | 4 +-- webkitgtk.spec | 5 ++- 3 files changed, 88 insertions(+), 3 deletions(-) create mode 100644 skia-s390x.patch diff --git a/skia-s390x.patch b/skia-s390x.patch new file mode 100644 index 0000000..efc0e73 --- /dev/null +++ b/skia-s390x.patch @@ -0,0 +1,82 @@ +diff --git a/Source/ThirdParty/skia/include/core/SkTypes.h b/Source/ThirdParty/skia/include/core/SkTypes.h +index 79644da049ff..fc0646e21772 100644 +--- a/Source/ThirdParty/skia/include/core/SkTypes.h ++++ b/Source/ThirdParty/skia/include/core/SkTypes.h +@@ -33,6 +33,8 @@ + # undef SK_DIRECT3D + #endif + ++#if !defined(SK_R32_SHIFT) || !defined(SK_G32_SHIFT) || !defined(SK_B32_SHIFT) || !defined(SK_A32_SHIFT) ++ + // If SK_R32_SHIFT is set, we'll use that to choose RGBA or BGRA. + // If not, we'll default to RGBA everywhere except BGRA on Windows. + #if defined(SK_R32_SHIFT) +@@ -52,6 +54,8 @@ + #define SK_G32_SHIFT 8 + #define SK_A32_SHIFT 24 + ++#endif ++ + /** + * SK_PMCOLOR_BYTE_ORDER can be used to query the byte order of SkPMColor at compile time. + */ +diff --git a/Source/ThirdParty/skia/src/codec/SkCodecPriv.h b/Source/ThirdParty/skia/src/codec/SkCodecPriv.h +index c321fb77c0ae..a0a01cccd58a 100644 +--- a/Source/ThirdParty/skia/src/codec/SkCodecPriv.h ++++ b/Source/ThirdParty/skia/src/codec/SkCodecPriv.h +@@ -14,6 +14,7 @@ + #include "include/core/SkTypes.h" + #include "include/private/SkEncodedInfo.h" + #include "modules/skcms/skcms.h" ++#include "src/base/SkEndian.h" + #include "src/codec/SkColorPalette.h" + #include "src/core/SkColorData.h" + +diff --git a/Source/ThirdParty/skia/src/core/Sk4px.h b/Source/ThirdParty/skia/src/core/Sk4px.h +index d5d481e7e300..c7ef0bcd0ed0 100644 +--- a/Source/ThirdParty/skia/src/core/Sk4px.h ++++ b/Source/ThirdParty/skia/src/core/Sk4px.h +@@ -27,7 +27,9 @@ public: + + // RGBA rgba XYZW xyzw -> AAAA aaaa WWWW wwww + Sk4px alphas() const { ++#ifdef SK_CPU_LENDIAN + static_assert(SK_A32_SHIFT == 24, "This method assumes little-endian."); ++#endif + return Sk4px(skvx::shuffle<3,3,3,3, 7,7,7,7, 11,11,11,11, 15,15,15,15>(fV)); + } + Sk4px inv() const { return Sk4px(skvx::byte16(255) - fV); } +diff --git a/Source/ThirdParty/skia/src/core/SkColorPriv.h b/Source/ThirdParty/skia/src/core/SkColorPriv.h +index 45471c25529e..319fec78069b 100644 +--- a/Source/ThirdParty/skia/src/core/SkColorPriv.h ++++ b/Source/ThirdParty/skia/src/core/SkColorPriv.h +@@ -64,6 +64,20 @@ static inline U8CPU SkUnitScalarClampToByte(SkScalar x) { + * Here we enforce this constraint. + */ + ++#ifdef SK_CPU_BENDIAN ++ ++#define SK_RGBA_R32_SHIFT 24 ++#define SK_RGBA_G32_SHIFT 16 ++#define SK_RGBA_B32_SHIFT 8 ++#define SK_RGBA_A32_SHIFT 0 ++ ++#define SK_BGRA_B32_SHIFT 24 ++#define SK_BGRA_G32_SHIFT 16 ++#define SK_BGRA_R32_SHIFT 8 ++#define SK_BGRA_A32_SHIFT 0 ++ ++#else ++ + #define SK_RGBA_R32_SHIFT 0 + #define SK_RGBA_G32_SHIFT 8 + #define SK_RGBA_B32_SHIFT 16 +@@ -74,6 +88,8 @@ static inline U8CPU SkUnitScalarClampToByte(SkScalar x) { + #define SK_BGRA_R32_SHIFT 16 + #define SK_BGRA_A32_SHIFT 24 + ++#endif ++ + #if defined(SK_PMCOLOR_IS_RGBA) || defined(SK_PMCOLOR_IS_BGRA) + #error "Configure PMCOLOR by setting SK_R32_SHIFT." + #endif diff --git a/sources b/sources index 5d2ff95..79b0faa 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.52.3.tar.xz.asc) = cb7f6dc0e2d65c763988e9a18c48ee6810d60a8d2351912bdd33358dcd2d46b994ba34f85c6f8315a34d5b5cb78bd2f0dcb78d076af58e657d1817fdd56f005d -SHA512 (webkitgtk-2.52.3.tar.xz) = 8007688e4eb5b465a6f50e05e89858f970f7bbaed45844b8f97175de1fb24e41e6d88f4f6b6299d5ae2ad4e19483da371ac16257d787626da29de7551fbd2a3c +SHA512 (webkitgtk-2.53.3.tar.xz) = b871d28c932ac8888bf357ad8cfb31f3dc6376c4139922b393769f489795d0a090903538e807bd13232e3ff738c1f0951da68513aefbfbe97bfc548aaaa3bebc +SHA512 (webkitgtk-2.53.3.tar.xz.asc) = e5e593b7960bbdaea070086f5d335c988f857ac21f308b6a6dfdf6588ec19737591a32792d3b9d1c79458cff53f6f675110543b025d1fd36426bb542b003e309 diff --git a/webkitgtk.spec b/webkitgtk.spec index 58e2566..5bded67 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -19,7 +19,7 @@ %endif Name: webkitgtk -Version: 2.52.3 +Version: 2.53.3 Release: %autorelease Summary: GTK web content engine library @@ -55,6 +55,9 @@ Source1: https://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz.asc # $ gpg --export --export-options export-minimal 013A0127AC9C65B34FFA62526C1009B693975393 5AA3BC334FD7E3369E7C77B291C559DBE4C9123B > webkitgtk-keys.gpg Source2: webkitgtk-keys.gpg +# https://bugs.webkit.org/show_bug.cgi?id=312677 +Patch: skia-s390x.patch + BuildRequires: bison BuildRequires: bubblewrap BuildRequires: clang From 1bc1233c2c1c0357437abfca0e674a2108e712cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Franti=C5=A1ek=20Zatloukal?= Date: Mon, 8 Jun 2026 09:53:30 +0200 Subject: [PATCH 195/200] Rebuilt for icu 78.3 From e100ee7a17fa483c4993662c82978c958b4d96bc Mon Sep 17 00:00:00 2001 From: Yaakov Selkowitz Date: Fri, 12 Jun 2026 20:04:51 -0400 Subject: [PATCH 196/200] Rebuilt for openssl 4.0 From accfa5debd40e10f2d44ecec48185682f9669904 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Thu, 25 Jun 2026 09:27:24 -0500 Subject: [PATCH 197/200] Update to 2.53.4 --- sources | 4 ++-- webkitgtk.spec | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/sources b/sources index 79b0faa..29a1c68 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.53.3.tar.xz) = b871d28c932ac8888bf357ad8cfb31f3dc6376c4139922b393769f489795d0a090903538e807bd13232e3ff738c1f0951da68513aefbfbe97bfc548aaaa3bebc -SHA512 (webkitgtk-2.53.3.tar.xz.asc) = e5e593b7960bbdaea070086f5d335c988f857ac21f308b6a6dfdf6588ec19737591a32792d3b9d1c79458cff53f6f675110543b025d1fd36426bb542b003e309 +SHA512 (webkitgtk-2.53.4.tar.xz) = eb38ee899991bc1e48cd34406bbab52fbd3f8a7614033909ed1f4bf6e2d8784f0d9a05efeefe09a1456bc0e33ac3002246716476c7437e0a4f38c10d05add463 +SHA512 (webkitgtk-2.53.4.tar.xz.asc) = 4972dc1414060c4b1064cd3e6b17ccea1f12d105e73c8fade5b7a2e754abdf39abbce524dcfd0cb0b2b22984ae92ce7aafb22b3f539bb264c5699b0f4d360d93 diff --git a/webkitgtk.spec b/webkitgtk.spec index 5bded67..743baae 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -19,7 +19,7 @@ %endif Name: webkitgtk -Version: 2.53.3 +Version: 2.53.4 Release: %autorelease Summary: GTK web content engine library From 6a8a9af815a7eebba76c9d095d55c04c5d2cbe5c Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 17 Jul 2026 08:44:43 +0000 Subject: [PATCH 198/200] Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild From 705ab9cfa8ad2d9ad2d51a2cc3d00bf849cdf650 Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Fri, 7 Aug 2026 11:33:46 -0500 Subject: [PATCH 199/200] Update to 2.53.90 --- skia-s390x.patch | 2 +- sources | 4 ++-- webkitgtk.spec | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/skia-s390x.patch b/skia-s390x.patch index efc0e73..a3cfe53 100644 --- a/skia-s390x.patch +++ b/skia-s390x.patch @@ -28,7 +28,7 @@ index c321fb77c0ae..a0a01cccd58a 100644 #include "include/core/SkTypes.h" #include "include/private/SkEncodedInfo.h" #include "modules/skcms/skcms.h" -+#include "src/base/SkEndian.h" ++#include "src/core/SkEndian.h" #include "src/codec/SkColorPalette.h" #include "src/core/SkColorData.h" diff --git a/sources b/sources index 29a1c68..d2097b0 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.53.4.tar.xz) = eb38ee899991bc1e48cd34406bbab52fbd3f8a7614033909ed1f4bf6e2d8784f0d9a05efeefe09a1456bc0e33ac3002246716476c7437e0a4f38c10d05add463 -SHA512 (webkitgtk-2.53.4.tar.xz.asc) = 4972dc1414060c4b1064cd3e6b17ccea1f12d105e73c8fade5b7a2e754abdf39abbce524dcfd0cb0b2b22984ae92ce7aafb22b3f539bb264c5699b0f4d360d93 +SHA512 (webkitgtk-2.53.90.tar.xz) = 2e1783230f4e899288a8ce16419f22c0d498f2e4e5928582e34e51ccebb7297ad76efb8e8c37b23db10223e823178f815433cf0d6a610982f5f47a06b4f1edc4 +SHA512 (webkitgtk-2.53.90.tar.xz.asc) = 9bf524179ee9ad091708ed3a238671d87b65da17af5ae55638c331047aff1560180461c3602cac2141c4ba96826d11b24abaa6ac725450b4f1c93049e656acfa diff --git a/webkitgtk.spec b/webkitgtk.spec index 743baae..e4278a0 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -19,7 +19,7 @@ %endif Name: webkitgtk -Version: 2.53.4 +Version: 2.53.90 Release: %autorelease Summary: GTK web content engine library From 805944c3be1b35f62b970e6c7a631d5d42929abb Mon Sep 17 00:00:00 2001 From: Michael Catanzaro Date: Sat, 22 Aug 2026 09:02:57 -0500 Subject: [PATCH 200/200] Update to 2.53.91 --- sources | 4 ++-- webkitgtk.spec | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/sources b/sources index d2097b0..3934793 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (webkitgtk-2.53.90.tar.xz) = 2e1783230f4e899288a8ce16419f22c0d498f2e4e5928582e34e51ccebb7297ad76efb8e8c37b23db10223e823178f815433cf0d6a610982f5f47a06b4f1edc4 -SHA512 (webkitgtk-2.53.90.tar.xz.asc) = 9bf524179ee9ad091708ed3a238671d87b65da17af5ae55638c331047aff1560180461c3602cac2141c4ba96826d11b24abaa6ac725450b4f1c93049e656acfa +SHA512 (webkitgtk-2.53.91.tar.xz) = 0bb5ec4c75cf0dcd4ccc46b7cf8595722d447385b75ed6ec79333b56203f681077fa355600210edb4fe6344e4af2943c7fb5b1bff6e35a7ec1ea456d891a1951 +SHA512 (webkitgtk-2.53.91.tar.xz.asc) = 72f6f01f8f3e12228ee70202b9b9bda589c80a791086cde6d6af5f2f916b44877b984267c6a5970f4fe41ff7dac21bccfa7323f19d71f6fd3e4a87abb18be58c diff --git a/webkitgtk.spec b/webkitgtk.spec index e4278a0..1ebef07 100644 --- a/webkitgtk.spec +++ b/webkitgtk.spec @@ -19,7 +19,7 @@ %endif Name: webkitgtk -Version: 2.53.90 +Version: 2.53.91 Release: %autorelease Summary: GTK web content engine library