diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..c9d8869 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/webkitgtk-2.34.6.tar.xz +/webkitgtk-keys.gpg diff --git a/EMPTY b/EMPTY deleted file mode 100644 index 0519ecb..0000000 --- a/EMPTY +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file 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/evolution-shared-secondary-process.patch b/evolution-shared-secondary-process.patch new file mode 100644 index 0000000..22c2d00 --- /dev/null +++ b/evolution-shared-secondary-process.patch @@ -0,0 +1,14 @@ +diff --git a/Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp b/Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp +index bd2d4d20206f..0fe471bde384 100644 +--- a/Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp ++++ b/Source/WebKit/UIProcess/API/glib/WebKitWebContext.cpp +@@ -415,6 +415,9 @@ static void webkitWebContextConstructed(GObject* object) + g_clear_pointer(&priv->memoryPressureSettings, webkit_memory_pressure_settings_free); + } + ++ if (!g_strcmp0(g_get_prgname(), "evolution")) ++ configuration.setUsesSingleWebProcess(true); ++ + if (!priv->websiteDataManager) + priv->websiteDataManager = adoptGRef(webkit_website_data_manager_new("local-storage-directory", priv->localStorageDirectory.data(), nullptr)); + diff --git a/sources b/sources new file mode 100644 index 0000000..c9b4b53 --- /dev/null +++ b/sources @@ -0,0 +1,2 @@ +SHA512 (webkitgtk-2.34.6.tar.xz) = 57ab25af027ae39820622743c258f3e6d0af86376f2a4c3a8ede560ca6652c98c49056c716aace56291264c18164cb60395be9779a9d12455e6a0f7d2c197343 +SHA512 (webkitgtk-keys.gpg) = 0270af23e1b5a9c1d86899e7feed18481e0fa4a481abd076eae96b800492a84db2dfc0905f8b9b48a419c6f387c60f23caa497a410a041c13015f6275fe68785 diff --git a/webkit2gtk3.spec b/webkit2gtk3.spec new file mode 100644 index 0000000..d113401 --- /dev/null +++ b/webkit2gtk3.spec @@ -0,0 +1,463 @@ +## 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_license_files() \ + 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.34.6 +Release: 1%{?dist} +Summary: GTK Web content engine library + +License: LGPLv2 +URL: http://www.webkitgtk.org/ +Source0: http://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 + +# https://bugs.webkit.org/show_bug.cgi?id=193749 +Patch0: evolution-shared-secondary-process.patch + +# https://bugs.webkit.org/show_bug.cgi?id=217989 +# https://bugs.webkit.org/show_bug.cgi?id=227905 +Patch1: aarch64-page-size.patch + +BuildRequires: bison +BuildRequires: cmake +BuildRequires: flex +BuildRequires: gcc-c++ +BuildRequires: gettext +BuildRequires: git +BuildRequires: gperf +BuildRequires: gtk-doc +BuildRequires: hyphen-devel +BuildRequires: libatomic +BuildRequires: ninja-build +BuildRequires: perl-File-Copy-Recursive +BuildRequires: perl-JSON-PP +BuildRequires: perl-Switch +BuildRequires: python3 +BuildRequires: ruby +BuildRequires: rubygem-json +BuildRequires: rubygems + +BuildRequires: pkgconfig(atspi-2) +BuildRequires: pkgconfig(cairo) +BuildRequires: pkgconfig(egl) +%ifarch aarch64 s390x +# On aarch64 and s390x enchant-2 is not available (gnome-less) +BuildRequires: pkgconfig(enchant) +%else +BuildRequires: pkgconfig(enchant-2) +%endif +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(gstreamer-plugins-bad-1.0) +BuildRequires: pkgconfig(gtk+-3.0) +BuildRequires: pkgconfig(harfbuzz) +BuildRequires: pkgconfig(lcms2) +BuildRequires: pkgconfig(icu-uc) +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(libsystemd) +BuildRequires: pkgconfig(libtasn1) +BuildRequires: pkgconfig(libwebp) +BuildRequires: pkgconfig(libwoff2dec) +BuildRequires: pkgconfig(libxslt) +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(xt) + +# If Geoclue is not running, the geolocation API will not work. +Recommends: geoclue2 + +# Needed for various GStreamer elements. +Recommends: gstreamer1-plugins-bad-free +Recommends: gstreamer1-plugins-good + +# Obsolete libwebkit2gtk from the webkitgtk3 package +Obsoletes: libwebkit2gtk < 2.5.0 +Provides: libwebkit2gtk = %{version}-%{release} + +# This package was renamed, so obsolete the old webkitgtk4 package +Obsoletes: webkitgtk4 < %{version}-%{release} +Provides: webkitgtk4 = %{version}-%{release} + +# GTK+ 2 plugins support was removed in 2.25.3 +Obsoletes: webkit2gtk3-plugin-process-gtk2 < %{version}-%{release} +Provides: webkit2gtk3-plugin-process-gtk2 = %{version}-%{release} +Obsoletes: webkitgtk4-plugin-process-gtk2 < %{version}-%{release} +Provides: webkitgtk4-plugin-process-gtk2 = %{version}-%{release} + +# We're supposed to specify versions here, but these libraries don't do +# normal releases. Accordingly, they're not suitable to be system libs. +Provides: bundled(angle) +Provides: bundled(xdgmime) + +# Require the jsc subpackage +Requires: %{name}-jsc%{?_isa} = %{version}-%{release} + +# Filter out provides for private libraries +%global __provides_exclude_from ^%{_libdir}/webkit2gtk-4\\.0/.*\\.so$ + +%description +WebKitGTK is the port of the portable web rendering engine WebKit to the +GTK platform. + +This package contains WebKit2 based WebKitGTK for GTK 3. + +%package devel +Summary: Development files for %{name} +Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: %{name}-jsc%{?_isa} = %{version}-%{release} +Requires: %{name}-jsc-devel%{?_isa} = %{version}-%{release} +Obsoletes: webkitgtk4-devel < %{version}-%{release} +Provides: webkitgtk4-devel = %{version}-%{release} + +%description devel +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 +Requires: %{name} = %{version}-%{release} +Obsoletes: webkitgtk4-doc < %{version}-%{release} +Provides: webkitgtk4-doc = %{version}-%{release} + +%description doc +This package contains developer documentation for %{name}. +%endif + +%package jsc +Summary: JavaScript engine from %{name} +Obsoletes: webkitgtk4-jsc < %{version}-%{release} +Provides: webkitgtk4-jsc = %{version}-%{release} + +%description jsc +This package contains JavaScript engine from %{name}. + +%package jsc-devel +Summary: Development files for JavaScript engine from %{name} +Requires: %{name}-jsc%{?_isa} = %{version}-%{release} +Obsoletes: webkitgtk4-jsc-devel < %{version}-%{release} +Provides: webkitgtk4-jsc-devel = %{version}-%{release} + +%description jsc-devel +The %{name}-jsc-devel package contains libraries, build data, and header +files for developing applications that use JavaScript engine from %{name}. + +%prep +%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}' +%autosetup -p1 -n webkitgtk-%{version} -S git + +# Remove bundled libraries +rm -rf Source/ThirdParty/gtest/ +rm -rf Source/ThirdParty/qunit/ + +%build +# Increase the DIE limit so our debuginfo packages could 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 +# The _dwz_max_die_limit is being overridden by the arch specific ones from the +# redhat-rpm-config so we need to set the arch specific ones as well - now it +# is only needed for x86_64. +%global _dwz_max_die_limit_x86_64 250000000 + +# Decrease debuginfo even on ix86 because of: +# https://bugs.webkit.org/show_bug.cgi?id=140176 +%ifarch s390x %{arm} %{ix86} %{power64} %{mips} +# Decrease debuginfo verbosity to reduce memory consumption even more +%global optflags %(echo %{optflags} | sed 's/-g /-g1 /') +%endif + +# 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. +mkdir -p %{_target_platform} +pushd %{_target_platform} +%cmake \ + -GNinja \ + -DPORT=GTK \ + -DCMAKE_BUILD_TYPE=Release \ + -DENABLE_BUBBLEWRAP_SANDBOX=OFF \ + -DUSE_SOUP2=ON \ +%if %{with docs} + -DENABLE_GTKDOC=ON \ +%endif + -DENABLE_MINIBROWSER=ON \ + -DUSE_WPE_RENDERER=OFF \ + -DENABLE_GAMEPAD=OFF \ +%if 0%{?rhel} +%ifarch aarch64 + -DENABLE_JIT=OFF \ + -DUSE_SYSTEM_MALLOC=ON \ +%endif +%endif + .. +popd + +# Show the build time in the status +export NINJA_STATUS="[%f/%t][%e] " +%ninja_build -C %{_target_platform} + +%install +%ninja_install -C %{_target_platform} + +%find_lang WebKit2GTK-4.0 + +# Finally, copy over and rename various files for %%license inclusion +%add_to_license_files Source/JavaScriptCore/COPYING.LIB +%add_to_license_files Source/ThirdParty/ANGLE/LICENSE +%add_to_license_files Source/ThirdParty/ANGLE/src/common/third_party/smhasher/LICENSE +%add_to_license_files Source/ThirdParty/ANGLE/src/third_party/compiler/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 + +%files -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.* +%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 +%{_bindir}/WebKitWebDriver + +%files devel +%{_libexecdir}/webkit2gtk-4.0/MiniBrowser +%{_includedir}/webkitgtk-4.0/ +%exclude %{_includedir}/webkitgtk-4.0/JavaScriptCore +%{_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 jsc +%license _license_files/*JavaScriptCore* +%{_libdir}/libjavascriptcoregtk-4.0.so.* +%dir %{_libdir}/girepository-1.0 +%{_libdir}/girepository-1.0/JavaScriptCore-4.0.typelib + +%files jsc-devel +%{_libexecdir}/webkit2gtk-4.0/jsc +%dir %{_includedir}/webkitgtk-4.0 +%{_includedir}/webkitgtk-4.0/JavaScriptCore/ +%{_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} +%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 +* Thu Feb 17 2022 Michael Catanzaro - 2.34.6-1 +- Update to 2.34.6 + Related: #1985042 + +* Wed Feb 09 2022 Michael Catanzaro - 2.34.5-1 +- Update to 2.34.5 +- Related: #1985042 + +* Fri Jan 21 2022 Michael Catanzaro - 2.34.4-1 +- Update to 2.34.4 +- Resolves: #1985042 + +* Tue Sep 28 2021 Michael Catanzaro - 2.32.4-1 +- Update to 2.32.4 +- Related: #1985042 +- Resolves: #2006429 + +* Fri Jul 23 2021 Michael Catanzaro - 2.32.3-1 +- Update to 2.32.3 +- Related: #1937416 + +* Tue Jul 13 2021 Michael Catanzaro - 2.32.2-1 +- Update to 2.32.2 +- Related: #1937416 + +* Mon May 10 2021 Michael Catanzaro - 2.32.1-1 +- Update to 2.32.1 +- Related: #1937416 + +* Fri Apr 30 2021 Michael Catanzaro - 2.32.0-1 +- Update to 2.32.0 +- Related: #1937416 + +* 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 + +* Thu May 21 2020 Michael Catanzaro - 2.28.2-2 +- Related: rhbz#1817143 Properly remove webkit2gtk3-plugin-process-gtk2 package + +* Thu May 14 2020 Michael Catanzaro - 2.28.2-1 +- Resolves: rhbz#1817143 Update to 2.28.2 + +* Mon Oct 14 2019 Eike Rathke - 2.24.4-3 +- Related: rhbz#1748890 Bump NVR + +* Fri Sep 27 2019 Eike Rathke - 2.24.4-1 +- Resolves: rhbz#1748890 Update to 2.24.4 + +* Tue Jul 09 2019 Eike Rathke - 2.24.3-1 +- Resolves: rhbz#1728277 Update to 2.24.3 + +* Wed May 22 2019 Eike Rathke - 2.24.2-2 +- Related: rhbz#1696708 Use enchant instead of enchant-2 on aarch64 and s390x + +* Tue May 21 2019 Eike Rathke - 2.24.2-1 +- Resolves: rhbz#1696708 Rebase to 2.24.2 +- Resolves: rhbz#1592271 Switch to Python 3 for build + +* Tue Feb 12 2019 Eike Rathke - 2.22.6-1 +- Resolves: rhbz#1676489 Update to 2.22.6 + +* Fri Jan 25 2019 Eike Rathke - 2.22.5-2 +- Resolves: rhbz#1666984 Fix gigacage + +* Tue Dec 18 2018 Eike Rathke - 2.22.5-1 +- Update to 2.22.5 + +* Tue Oct 30 2018 Tomas Popela - 2.22.3-1 +- Update to 2.22.3 +- Resolves: rhbz#1641009 + +* Mon Sep 24 2018 Tomas Popela - 2.22.2-1 +- Update to 2.22.2 +- Resolves: rhbz#1625602 + +* Thu Sep 20 2018 Tomas Popela - 2.22.1-1 +- Update to 2.22.1 +- Resolves: rhbz#1625602 + +* Tue Sep 11 2018 Tomas Popela - 2.22.0-2 +- Backport patches from RHEL 7 +- Resolves: rhbz#1625602 + +* Wed Sep 05 2018 Tomas Popela - 2.22.0-1 +- Update to 2.22.0 +- Resolves: rhbz#1625602 + +* Tue Jul 17 2018 Tomas Popela - 2.20.3-3 +- Update the python2 patch + +* Mon Jun 18 2018 Tomas Popela - 2.20.3-3 +- Export the python2 env variable +- Resolves: rhbz#1592264 + +* Mon Jun 11 2018 Tomas Popela - 2.20.3-1 +- Update to 2.20.3 + +* Thu May 24 2018 Tomas Popela - 2.20.2-4 +- Explicitly specify python2 over python and add python2 to BR + +* Tue May 22 2018 Tomas Popela - 2.20.2-3 +- aarch64 on RHEL 8 does have a 64kb page size +- Resolves: rhbz#1578576 + +* Tue May 22 2018 Tomas Popela - 2.20.2-2 +- Temporary disable JIT and BMalloc on aarch64 due to Gigacage problems +- Resolves: rhbz#1578576 + +* Tue May 15 2018 Tomas Popela - 2.20.2-1 +- Update to 2.20.2 +- Resolves: rhbz#1577388 + +* Tue Apr 10 2018 Tomas Popela - 2.20.1-1 +- Update to 2.20.1 + +* Mon Mar 12 2018 Kalev Lember - 2.20.0-2 +- Bump webkitgtk4 obsoletes versions + +* Mon Mar 12 2018 Tomas Popela - 2.20.0-1 +- Update to 2.20.0 + +* Tue Mar 06 2018 Tomas Popela - 2.19.92-1 +- Update to 2.19.92 + +* Wed Feb 21 2018 Tomas Popela - 2.19.91-1 +- Update to 2.19.91 + +* Fri Feb 09 2018 Fedora Release Engineering - 2.19.90-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild + +* Mon Feb 05 2018 Tomas Popela - 2.19.90-1 +- Update to 2.19.90 + +* Tue Jan 30 2018 Tomas Popela - 2.19.6-3 +- Remove obsoleted ldconfig scriptlets + +* Wed Jan 17 2018 Tomas Popela - 2.19.6-1 +- Update to 2.19.6 + +* Thu Jan 11 2018 Tomas Popela - 2.19.5-2 +- This package was formerly named webkitgtk4 diff --git a/webkitgtk-2.34.6.tar.xz.asc b/webkitgtk-2.34.6.tar.xz.asc new file mode 100644 index 0000000..0d86d8f --- /dev/null +++ b/webkitgtk-2.34.6.tar.xz.asc @@ -0,0 +1,6 @@ +-----BEGIN PGP SIGNATURE----- + +iF0EABECAB0WIQRao7wzT9fjNp58d7KRxVnb5MkSOwUCYg5JzQAKCRCRxVnb5MkS +O2fTAJ0bM+z81IRILK3jrBeY2FvVF9XMgACffrCY/lTW8tvkhMt+xNQvn5aPLO4= +=duRI +-----END PGP SIGNATURE-----