From 7ccdf1af0f6f1507c564414d27f552fdc4873b78 Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Tue, 18 May 2021 02:51:59 -0400 Subject: [PATCH] import webkit2gtk3-2.30.4-1.el8 --- .gitignore | 2 +- .webkit2gtk3.metadata | 2 +- SOURCES/aarch64-build.patch | 35 +++++++++ .../evolution-shared-secondary-process.patch | 14 ++-- SOURCES/webkit-aarch64_page_size.patch | 16 ---- SPECS/webkit2gtk3.spec | 73 ++++++++++++++----- 6 files changed, 98 insertions(+), 44 deletions(-) create mode 100644 SOURCES/aarch64-build.patch delete mode 100644 SOURCES/webkit-aarch64_page_size.patch diff --git a/.gitignore b/.gitignore index 981aa21..099dbb3 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1 @@ -SOURCES/webkitgtk-2.28.4.tar.xz +SOURCES/webkitgtk-2.30.4.tar.xz diff --git a/.webkit2gtk3.metadata b/.webkit2gtk3.metadata index 092c9f9..2431ebf 100644 --- a/.webkit2gtk3.metadata +++ b/.webkit2gtk3.metadata @@ -1 +1 @@ -70e9dd80647b30eaaf8a7f5b30d8869cd1254056 SOURCES/webkitgtk-2.28.4.tar.xz +330f45d7badf944fb01a3238ebb2ceaad8c2a91f SOURCES/webkitgtk-2.30.4.tar.xz diff --git a/SOURCES/aarch64-build.patch b/SOURCES/aarch64-build.patch new file mode 100644 index 0000000..2504f76 --- /dev/null +++ b/SOURCES/aarch64-build.patch @@ -0,0 +1,35 @@ +diff --git a/Source/JavaScriptCore/assembler/LinkBuffer.cpp b/Source/JavaScriptCore/assembler/LinkBuffer.cpp +index b6577a9e8c4e..7745793670b1 100644 +--- a/Source/JavaScriptCore/assembler/LinkBuffer.cpp ++++ b/Source/JavaScriptCore/assembler/LinkBuffer.cpp +@@ -374,6 +374,7 @@ void LinkBuffer::copyCompactAndLinkCode(MacroAssembler& macroAssembler, JITCompi + m_executableMemory->shrink(m_size); + } + ++#if ENABLE(JIT) + if (useFastJITPermissions()) { + ASSERT(codeOutData == outData); + if (UNLIKELY(Options::dumpJITMemoryPath())) +@@ -382,6 +383,10 @@ void LinkBuffer::copyCompactAndLinkCode(MacroAssembler& macroAssembler, JITCompi + ASSERT(codeOutData != outData); + performJITMemcpy(codeOutData, outData, m_size); + } ++#else ++ ASSERT(codeOutData != outData); ++ performJITMemcpy(codeOutData, outData, m_size); ++#endif + + jumpsToLink.clear(); + +diff --git a/Source/WTF/wtf/PlatformEnable.h b/Source/WTF/wtf/PlatformEnable.h +index 700f90adc6c3..f703d4239bc0 100644 +--- a/Source/WTF/wtf/PlatformEnable.h ++++ b/Source/WTF/wtf/PlatformEnable.h +@@ -871,6 +871,6 @@ + #error "ENABLE(WEBGL2) requires ENABLE(WEBGL)" + #endif + +-#if CPU(ARM64) && CPU(ADDRESS64) ++#if CPU(ARM64) && CPU(ADDRESS64) && ENABLE(JIT) + #define USE_JUMP_ISLANDS 1 + #endif diff --git a/SOURCES/evolution-shared-secondary-process.patch b/SOURCES/evolution-shared-secondary-process.patch index a506c0e..827d257 100644 --- a/SOURCES/evolution-shared-secondary-process.patch +++ b/SOURCES/evolution-shared-secondary-process.patch @@ -1,15 +1,13 @@ diff --git a/Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp b/Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp -index da25d96e35b5..242ce8c00eeb 100644 +index af43f9acfd24..3ac762417a98 100644 --- a/Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp +++ b/Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp -@@ -381,6 +381,10 @@ static void webkitWebContextConstructed(GObject* object) +@@ -397,7 +397,7 @@ static void webkitWebContextConstructed(GObject* object) + configuration.setProcessSwapsOnNavigation(priv->psonEnabled); + if (!priv->psonEnabled) { const char* useSingleWebProcess = getenv("WEBKIT_USE_SINGLE_WEB_PROCESS"); - if (useSingleWebProcess && strcmp(useSingleWebProcess, "0")) +- if (useSingleWebProcess && strcmp(useSingleWebProcess, "0")) ++ if ((useSingleWebProcess && strcmp(useSingleWebProcess, "0")) || !g_strcmp0(g_get_prgname(), "evolution")) configuration.setUsesSingleWebProcess(true); -+ else { -+ if (!g_strcmp0(g_get_prgname(), "evolution")) -+ configuration.setUsesSingleWebProcess(true); -+ } } - #endif diff --git a/SOURCES/webkit-aarch64_page_size.patch b/SOURCES/webkit-aarch64_page_size.patch deleted file mode 100644 index 6baf138..0000000 --- a/SOURCES/webkit-aarch64_page_size.patch +++ /dev/null @@ -1,16 +0,0 @@ -diff --git a/Source/WTF/wtf/PageBlock.h b/Source/WTF/wtf/PageBlock.h -index 33d9118d..3e99decf 100644 ---- a/Source/WTF/wtf/PageBlock.h -+++ b/Source/WTF/wtf/PageBlock.h -@@ -49,9 +49,9 @@ namespace WTF { - // Use 64 KiB for any unknown CPUs to be conservative. - #if OS(DARWIN) - constexpr size_t CeilingOnPageSize = 16 * KB; --#elif OS(WINDOWS) || CPU(MIPS) || CPU(MIPS64) || CPU(X86) || CPU(X86_64) || CPU(ARM) || CPU(ARM64) -+#elif OS(WINDOWS) || CPU(MIPS) || CPU(MIPS64) || CPU(X86) || CPU(X86_64) || CPU(ARM) - constexpr size_t CeilingOnPageSize = 4 * KB; --#elif CPU(UNKNOWN) || CPU(PPC) || CPU(PPC64) || CPU(PPC64LE) -+#elif CPU(UNKNOWN) || CPU(PPC) || CPU(PPC64) || CPU(PPC64LE) || CPU(ARM64) - constexpr size_t CeilingOnPageSize = 64 * KB; - #else - #error Must set CeilingOnPageSize in PageBlock.h when adding a new CPU architecture! diff --git a/SPECS/webkit2gtk3.spec b/SPECS/webkit2gtk3.spec index f1ac082..9cbafb3 100644 --- a/SPECS/webkit2gtk3.spec +++ b/SPECS/webkit2gtk3.spec @@ -5,8 +5,13 @@ mkdir -p _license_files ; \ cp -p %1 _license_files/$(echo '%1' | sed -e 's!/!.!g') +# 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: webkit2gtk3 -Version: 2.28.4 +Version: 2.30.4 Release: 1%{?dist} Summary: GTK Web content engine library @@ -14,10 +19,11 @@ License: LGPLv2 URL: http://www.webkitgtk.org/ Source0: http://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz -# https://bugs.webkit.org/show_bug.cgi?id=209360 -Patch0: webkit-aarch64_page_size.patch # https://bugs.webkit.org/show_bug.cgi?id=193749 -Patch1: evolution-shared-secondary-process.patch +Patch0: evolution-shared-secondary-process.patch + +# https://bugs.webkit.org/show_bug.cgi?id=219288 +Patch1: aarch64-build.patch BuildRequires: bison BuildRequires: bubblewrap @@ -51,7 +57,6 @@ BuildRequires: pkgconfig(enchant-2) %endif BuildRequires: pkgconfig(fontconfig) BuildRequires: pkgconfig(freetype2) -BuildRequires: pkgconfig(geoclue-2.0) BuildRequires: pkgconfig(gl) BuildRequires: pkgconfig(glib-2.0) BuildRequires: pkgconfig(glesv2) @@ -72,6 +77,7 @@ BuildRequires: pkgconfig(libpng) BuildRequires: pkgconfig(libseccomp) BuildRequires: pkgconfig(libsecret-1) BuildRequires: pkgconfig(libsoup-2.4) +BuildRequires: pkgconfig(libsystemd) BuildRequires: pkgconfig(libwebp) BuildRequires: pkgconfig(libwoff2dec) BuildRequires: pkgconfig(libxslt) @@ -82,10 +88,18 @@ BuildRequires: pkgconfig(wayland-egl) BuildRequires: pkgconfig(wayland-server) BuildRequires: pkgconfig(xt) -Requires: bubblewrap -Requires: geoclue2 +# These are hard requirements of WebKit's bubblewrap sandbox. +#Requires: bubblewrap #Requires: xdg-dbus-proxy +# If Geoclue is not running, the geolocation API will not work. +Recommends: geoclue2 + +# If no xdg-desktop-portal backend is installed, many features will be broken +# inside the sandbox. In particular, the -gtk backend has to be installed for +# desktop settings access, including font settings. +#Recommends: xdg-desktop-portal-gtk + # Obsolete libwebkit2gtk from the webkitgtk3 package Obsoletes: libwebkit2gtk < 2.5.0 Provides: libwebkit2gtk = %{version}-%{release} @@ -129,6 +143,7 @@ Provides: webkitgtk4-devel = %{version}-%{release} The %{name}-devel package contains libraries, build data, and header files for developing applications that use %{name}. +%if %{with docs} %package doc Summary: Documentation files for %{name} BuildArch: noarch @@ -138,6 +153,7 @@ Provides: webkitgtk4-doc = %{version}-%{release} %description doc This package contains developer documentation for %{name}. +%endif %package jsc Summary: JavaScript engine from %{name} @@ -181,8 +197,9 @@ rm -rf Source/ThirdParty/qunit/ %global optflags %(echo %{optflags} | sed 's/-g /-g1 /') %endif -# BMalloc and JIT are disabled on aarch64, because of the non-standard page size -# that's causing problems there (it's enabled on Fedora). +# bmalloc and JIT are disabled on aarch64 only in RHEL because of the nonstandard +# page size that's causing problems there. WebKit's build system sets appropriate +# defaults for all other architectures, and all other distros except RHEL. # # TODO: Package xdg-dbus-proxy for RHEL so we can enable bubblewrap sandbox. # TODO: Package libwpe and wpebackend-fdo for RHEL so we can enable WPE renderer. @@ -193,22 +210,22 @@ pushd %{_target_platform} -DPORT=GTK \ -DCMAKE_BUILD_TYPE=Release \ -DENABLE_BUBBLEWRAP_SANDBOX=OFF \ +%if %{with docs} -DENABLE_GTKDOC=ON \ +%endif -DENABLE_MINIBROWSER=ON \ -DUSE_WPE_RENDERER=OFF \ - -DPYTHON_EXECUTABLE=%{_bindir}/python3 \ -%ifarch s390x %{power64} aarch64 - -DENABLE_JIT=OFF \ - -DUSE_SYSTEM_MALLOC=ON \ +%if 0%{?rhel} +%ifarch aarch64 + -DUSE_64KB_PAGE_BLOCK=ON \ +%endif %endif .. popd # Show the build time in the status export NINJA_STATUS="[%f/%t][%e] " -# brew has run out of memory building WebKitGTK 2.28.4 with -j6, so -# use -j3 to reduce maximum memory usage. -%ninja_build -C %{_target_platform} -j3 +%ninja_build -C %{_target_platform} %install %ninja_install -C %{_target_platform} @@ -217,12 +234,10 @@ export NINJA_STATUS="[%f/%t][%e] " # Finally, copy over and rename various files for %%license inclusion %add_to_license_files Source/JavaScriptCore/COPYING.LIB -%add_to_license_files Source/JavaScriptCore/icu/LICENSE %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/compiler/LICENSE %add_to_license_files Source/ThirdParty/ANGLE/src/third_party/libXNVCtrl/LICENSE -%add_to_license_files Source/WebCore/icu/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 @@ -273,14 +288,36 @@ export NINJA_STATUS="[%f/%t][%e] " %dir %{_datadir}/gir-1.0 %{_datadir}/gir-1.0/JavaScriptCore-4.0.gir +%if %{with docs} %files doc %dir %{_datadir}/gtk-doc %dir %{_datadir}/gtk-doc/html %{_datadir}/gtk-doc/html/jsc-glib-4.0/ %{_datadir}/gtk-doc/html/webkit2gtk-4.0/ %{_datadir}/gtk-doc/html/webkitdomgtk-4.0/ +%endif %changelog +* Tue Dec 15 2020 Michael Catanzaro - 2.30.4-1 +- Update to 2.30.4 +- Related: #1883304 + +* Wed Nov 25 2020 Michael Catanzaro - 2.30.3-1 +- Update to 2.30.3 +- Related: #1883304 + +* Thu Oct 29 2020 Michael Catanzaro - 2.30.2-2 +- Try to fix coverity build by disabling docs (thanks to Kamil Dudka !) +- Related: #1883304 + +* Mon Oct 26 2020 Michael Catanzaro - 2.30.2-1 +- Update to 2.30.2 +- Related: #1883304 + +* Tue Oct 20 2020 Michael Catanzaro - 2.30.1-1 +- Update to 2.30.1 +- Related: #1883304 + * Mon Aug 03 2020 Michael Catanzaro - 2.28.4-1 - Update to 2.28.4 - Related: #1817143