import webkit2gtk3-2.22.6-1.el8

This commit is contained in:
CentOS Sources 2019-05-07 05:28:11 -04:00 committed by Andrew Lukoshko
commit 14d204bf2b
8 changed files with 493 additions and 0 deletions

1
.gitignore vendored Normal file
View File

@ -0,0 +1 @@
SOURCES/webkitgtk-2.22.6.tar.xz

1
.webkit2gtk3.metadata Normal file
View File

@ -0,0 +1 @@
26a8f8951da03aa4dfc2c25257b6899ea3c2558f SOURCES/webkitgtk-2.22.6.tar.xz

View File

@ -0,0 +1,25 @@
From f00a16d3e3b83f1cfa7d66bfc2369254abec58d4 Mon Sep 17 00:00:00 2001
From: rpm-build <rpm-build>
Date: Thu, 6 Sep 2018 12:03:53 +0200
Subject: [PATCH] Fix the page size on aarch64
---
Source/JavaScriptCore/heap/MarkedBlock.h | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Source/JavaScriptCore/heap/MarkedBlock.h b/Source/JavaScriptCore/heap/MarkedBlock.h
index e240f0ae..6bf88692 100644
--- a/Source/JavaScriptCore/heap/MarkedBlock.h
+++ b/Source/JavaScriptCore/heap/MarkedBlock.h
@@ -68,7 +68,7 @@ public:
static constexpr size_t atomSize = 16; // bytes
// Block size must be at least as large as the system page size.
-#if CPU(PPC64) || CPU(PPC64LE) || CPU(PPC) || CPU(UNKNOWN)
+#if CPU(PPC64) || CPU(PPC64LE) || CPU(PPC) || CPU(ARM64) || CPU(UNKNOWN)
static constexpr size_t blockSize = 64 * KB;
#else
static constexpr size_t blockSize = 16 * KB;
--
2.17.1

View File

@ -0,0 +1,15 @@
diff -up webkitgtk-2.20.4/Source/WebCore/accessibility/AccessibilityRenderObject.cpp.atk_continuation_crash webkitgtk-2.20.4/Source/WebCore/accessibility/AccessibilityRenderObject.cpp
--- webkitgtk-2.20.4/Source/WebCore/accessibility/AccessibilityRenderObject.cpp.atk_continuation_crash 2018-02-20 09:25:28.000000000 +0100
+++ webkitgtk-2.20.4/Source/WebCore/accessibility/AccessibilityRenderObject.cpp 2018-08-07 11:43:19.438679595 +0200
@@ -381,8 +381,9 @@ AccessibilityObject* AccessibilityRender
// Case 5: node has no next sibling, and its parent is an inline with a continuation.
// Case 5.1: After case 4, (the element was inline w/ continuation but had no sibling), then check it's parent.
- if (!nextSibling && isInlineWithContinuation(*m_renderer->parent())) {
- auto& continuation = *downcast<RenderInline>(*m_renderer->parent()).continuation();
+ auto parent = m_renderer->parent();
+ if (!nextSibling && parent && isInlineWithContinuation(*parent)) {
+ auto& continuation = *downcast<RenderInline>(*parent).continuation();
// Case 5a: continuation is a block - in this case the block itself is the next sibling.
if (is<RenderBlock>(continuation))

View File

@ -0,0 +1,25 @@
diff --git a/Source/WebCore/accessibility/AccessibilityObject.cpp b/Source/WebCore/accessibility/AccessibilityObject.cpp
index f10a1519..523dfd46 100644
--- a/Source/WebCore/accessibility/AccessibilityObject.cpp
+++ b/Source/WebCore/accessibility/AccessibilityObject.cpp
@@ -70,6 +70,7 @@
#include "RenderWidget.h"
#include "RenderedPosition.h"
#include "RuntimeEnabledFeatures.h"
+#include "ScriptDisallowedScope.h"
#include "Settings.h"
#include "TextCheckerClient.h"
#include "TextCheckingHelper.h"
@@ -1783,7 +1784,11 @@ void AccessibilityObject::updateBackingStore()
// Updating the layout may delete this object.
RefPtr<AccessibilityObject> protectedThis(this);
if (auto* document = this->document()) {
- if (!document->view()->layoutContext().isInRenderTreeLayout() && !document->inRenderTreeUpdate() && !document->inStyleRecalc())
+ if (!document->view()->layoutContext().isInRenderTreeLayout()
+ && !document->inRenderTreeUpdate()
+ && !document->inStyleRecalc()
+ && ScriptDisallowedScope::InMainThread::isScriptAllowed())
+
document->updateLayoutIgnorePendingStylesheets();
}
updateChildrenIfNecessary();

View File

@ -0,0 +1,30 @@
diff -up webkitgtk-2.14.7/Source/JavaScriptCore/bytecode/CodeBlock.cpp.b132333 webkitgtk-2.14.7/Source/JavaScriptCore/bytecode/CodeBlock.cpp
--- webkitgtk-2.14.7/Source/JavaScriptCore/bytecode/CodeBlock.cpp.b132333 2017-02-07 09:05:07.000000000 +0100
+++ webkitgtk-2.14.7/Source/JavaScriptCore/bytecode/CodeBlock.cpp 2017-06-16 10:34:57.859748036 +0200
@@ -2186,7 +2186,12 @@ void CodeBlock::finishCreation(VM& vm, S
instructions[i + 5].u.watchpointSet = op.watchpointSet;
else if (op.structure)
instructions[i + 5].u.structure.set(vm, this, op.structure);
- instructions[i + 6].u.pointer = reinterpret_cast<void*>(op.operand);
+
+ if (op.type == ClosureVar || op.type == ClosureVarWithVarInjectionChecks || op.type == GlobalProperty || op.type == GlobalPropertyWithVarInjectionChecks || op.type == ModuleVar)
+ instructions[i + 6].u.operand = op.operand;
+ else
+ instructions[i + 6].u.pointer = reinterpret_cast<void*>(op.operand);
+
break;
}
@@ -2222,7 +2227,11 @@ void CodeBlock::finishCreation(VM& vm, S
op.watchpointSet->invalidate(vm, PutToScopeFireDetail(this, ident));
} else if (op.structure)
instructions[i + 5].u.structure.set(vm, this, op.structure);
- instructions[i + 6].u.pointer = reinterpret_cast<void*>(op.operand);
+
+ if (op.type == ClosureVar || op.type == ClosureVarWithVarInjectionChecks || op.type == GlobalProperty || op.type == GlobalPropertyWithVarInjectionChecks || op.type == ModuleVar)
+ instructions[i + 6].u.operand = op.operand;
+ else
+ instructions[i + 6].u.pointer = reinterpret_cast<void*>(op.operand);
break;
}

View File

@ -0,0 +1,37 @@
From 494e4abb7a5130376d3cdb41a5e3963650b8659f Mon Sep 17 00:00:00 2001
From: rpm-build <rpm-build>
Date: Mon, 16 Jul 2018 06:34:53 +0200
Subject: [PATCH] Fix the broken build due to python2
/builddir/build/BUILD/webkitgtk-2.21.4/Tools/gtk/generate-gtkdoc
/usr/bin/env: 'python': No such file or directory
---
Source/WebInspectorUI/Scripts/copy-user-interface-resources.pl | 2 +-
Tools/gtk/generate-gtkdoc | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/Source/WebInspectorUI/Scripts/copy-user-interface-resources.pl b/Source/WebInspectorUI/Scripts/copy-user-interface-resources.pl
index 4bb7037d..3071b45f 100755
--- a/Source/WebInspectorUI/Scripts/copy-user-interface-resources.pl
+++ b/Source/WebInspectorUI/Scripts/copy-user-interface-resources.pl
@@ -155,7 +155,7 @@ my $inspectorLicense = <<'EOF';
EOF
my $perl = $^X;
-my $python = ($OSNAME =~ /cygwin/) ? "/usr/bin/python" : "python";
+my $python = ($OSNAME =~ /cygwin/) ? "/usr/bin/python2" : "python2";
my $derivedSourcesDir = $ENV{'DERIVED_SOURCES_DIR'};
my $scriptsRoot = File::Spec->catdir($ENV{'SRCROOT'}, 'Scripts');
my $sharedScriptsRoot = File::Spec->catdir($ENV{'JAVASCRIPTCORE_PRIVATE_HEADERS_DIR'});
diff --git a/Tools/gtk/generate-gtkdoc b/Tools/gtk/generate-gtkdoc
index 45c23dfb..a3f82984 100755
--- a/Tools/gtk/generate-gtkdoc
+++ b/Tools/gtk/generate-gtkdoc
@@ -1,4 +1,4 @@
-#!/usr/bin/env python
+#!/usr/bin/env python2.7
# Copyright (C) 2011 Igalia S.L.
#
# This library is free software; you can redistribute it and/or
--
2.17.1

359
SPECS/webkit2gtk3.spec Normal file
View File

@ -0,0 +1,359 @@
## 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')
Name: webkit2gtk3
Version: 2.22.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
# https://bugs.webkit.org/show_bug.cgi?id=132333
Patch0: webkit-cloop_big_endians.patch
# Explicitly specify python2 over python
Patch1: webkit-python2.patch
Patch2: webkit-aarch64_page_size.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1591638
Patch3: webkit-atk_crash.patch
# https://bugzilla.redhat.com/show_bug.cgi?id=1503624
Patch4: webkit-atk_continuation_crash.patch
BuildRequires: at-spi2-core-devel
BuildRequires: bison
BuildRequires: cairo-devel
BuildRequires: cmake
BuildRequires: enchant-devel
BuildRequires: flex
BuildRequires: fontconfig-devel
BuildRequires: freetype-devel
BuildRequires: git
BuildRequires: geoclue2-devel
BuildRequires: gettext
BuildRequires: glib2-devel
BuildRequires: gnutls-devel
BuildRequires: gobject-introspection-devel
BuildRequires: gperf
BuildRequires: gstreamer1-devel
BuildRequires: gstreamer1-plugins-base-devel
BuildRequires: gstreamer1-plugins-bad-free-devel
BuildRequires: gtk2-devel
BuildRequires: gtk3-devel
BuildRequires: gtk-doc
BuildRequires: harfbuzz-devel
BuildRequires: hyphen-devel
BuildRequires: libicu-devel
BuildRequires: libjpeg-devel
BuildRequires: libnotify-devel
BuildRequires: libpng-devel
BuildRequires: libsecret-devel
BuildRequires: libsoup-devel
BuildRequires: libwebp-devel
BuildRequires: libxslt-devel
BuildRequires: libXt-devel
BuildRequires: libwayland-client-devel
BuildRequires: libwayland-egl-devel
BuildRequires: libwayland-server-devel
BuildRequires: mesa-libEGL-devel
BuildRequires: mesa-libGL-devel
BuildRequires: mesa-libGLES-devel
BuildRequires: pcre-devel
BuildRequires: perl-File-Copy-Recursive
BuildRequires: perl-JSON-PP
BuildRequires: perl-Switch
BuildRequires: python2
BuildRequires: ruby
BuildRequires: rubygems
BuildRequires: sqlite-devel
BuildRequires: upower-devel
BuildRequires: woff2-devel
Requires: geoclue2
# 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}
# We're supposed to specify versions here, but these crap Google libs don't do
# normal releases. Accordingly, they're not suitable to be system libs.
Provides: bundled(angle)
# Require the jsc subpackage
Requires: %{name}-jsc%{?_isa} = %{version}-%{release}
# Recommend the support for the GTK+ 2 based NPAPI plugins
Recommends: %{name}-plugin-process-gtk2%{?_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}.
%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}.
%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}.
%package plugin-process-gtk2
Summary: GTK+ 2 based NPAPI plugins support for %{name}
Requires: %{name}-jsc%{?_isa} = %{version}-%{release}
Obsoletes: %{name} < 2.12.0-3
Obsoletes: webkitgtk4-plugin-process-gtk2 < %{version}-%{release}
Provides: webkitgtk4-plugin-process-gtk2 = %{version}-%{release}
%description plugin-process-gtk2
Support for the GTK+ 2 based NPAPI plugins (such as Adobe Flash) for %{name}.
%prep
%autosetup -p1 -n webkitgtk-%{version} -S git
# Remove bundled libraries
rm -rf Source/ThirdParty/gtest/
rm -rf Source/ThirdParty/qunit/
%build
export RHEL_ALLOW_PYTHON2_FOR_BUILD=1
# 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, because of the non-standard page size
# that's causing problems there (it's enabled on Fedora)
mkdir -p %{_target_platform}
pushd %{_target_platform}
%cmake \
-DPORT=GTK \
-DCMAKE_BUILD_TYPE=Release \
-DENABLE_GTKDOC=ON \
-DENABLE_MINIBROWSER=ON \
%ifarch s390x %{power64} aarch64
-DENABLE_JIT=OFF \
-DUSE_SYSTEM_MALLOC=ON \
%endif
..
popd
# Remove the static amount of jobs once
# https://projects.engineering.redhat.com/browse/BREW-2146 is resolved
# make %{?_smp_mflags} -C %{_target_platform}
make -j6 -C %{_target_platform}
%install
%make_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/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
%add_to_license_files Source/WebInspectorUI/UserInterface/External/CodeMirror/LICENSE
%add_to_license_files Source/WebInspectorUI/UserInterface/External/ESLint/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
%exclude %{_libexecdir}/webkit2gtk-4.0/WebKitPluginProcess2
%{_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
%files plugin-process-gtk2
%{_libexecdir}/webkit2gtk-4.0/WebKitPluginProcess2
%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/
%changelog
* Tue Feb 12 2019 Eike Rathke <erack@redhat.com> - 2.22.6-1
- Resolves: rhbz#1676489 Update to 2.22.6
* Fri Jan 25 2019 Eike Rathke <erack@redhat.com> - 2.22.5-2
- Resolves: rhbz#1666984 Fix gigacage
* Tue Dec 18 2018 Eike Rathke <erack@redhat.com> - 2.22.5-1
- Update to 2.22.5
* Tue Oct 30 2018 Tomas Popela <tpopela@redhat.com> - 2.22.3-1
- Update to 2.22.3
- Resolves: rhbz#1641009
* Mon Sep 24 2018 Tomas Popela <tpopela@redhat.com> - 2.22.2-1
- Update to 2.22.2
- Resolves: rhbz#1625602
* Thu Sep 20 2018 Tomas Popela <tpopela@redhat.com> - 2.22.1-1
- Update to 2.22.1
- Resolves: rhbz#1625602
* Tue Sep 11 2018 Tomas Popela <tpopela@redhat.com> - 2.22.0-2
- Backport patches from RHEL 7
- Resolves: rhbz#1625602
* Wed Sep 05 2018 Tomas Popela <tpopela@redhat.com> - 2.22.0-1
- Update to 2.22.0
- Resolves: rhbz#1625602
* Tue Jul 17 2018 Tomas Popela <tpopela@redhat.com> - 2.20.3-3
- Update the python2 patch
* Mon Jun 18 2018 Tomas Popela <tpopela@redhat.com> - 2.20.3-3
- Export the python2 env variable
- Resolves: rhbz#1592264
* Mon Jun 11 2018 Tomas Popela <tpopela@redhat.com> - 2.20.3-1
- Update to 2.20.3
* Thu May 24 2018 Tomas Popela <tpopela@redhat.com> - 2.20.2-4
- Explicitly specify python2 over python and add python2 to BR
* Tue May 22 2018 Tomas Popela <tpopela@redhat.com> - 2.20.2-3
- aarch64 on RHEL 8 does have a 64kb page size
- Resolves: rhbz#1578576
* Tue May 22 2018 Tomas Popela <tpopela@redhat.com> - 2.20.2-2
- Temporary disable JIT and BMalloc on aarch64 due to Gigacage problems
- Resolves: rhbz#1578576
* Tue May 15 2018 Tomas Popela <tpopela@redhat.com> - 2.20.2-1
- Update to 2.20.2
- Resolves: rhbz#1577388
* Tue Apr 10 2018 Tomas Popela <tpopela@redhat.com> - 2.20.1-1
- Update to 2.20.1
* Mon Mar 12 2018 Kalev Lember <klember@redhat.com> - 2.20.0-2
- Bump webkitgtk4 obsoletes versions
* Mon Mar 12 2018 Tomas Popela <tpopela@redhat.com> - 2.20.0-1
- Update to 2.20.0
* Tue Mar 06 2018 Tomas Popela <tpopela@redhat.com> - 2.19.92-1
- Update to 2.19.92
* Wed Feb 21 2018 Tomas Popela <tpopela@redhat.com> - 2.19.91-1
- Update to 2.19.91
* Fri Feb 09 2018 Fedora Release Engineering <releng@fedoraproject.org> - 2.19.90-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
* Mon Feb 05 2018 Tomas Popela <tpopela@redhat.com> - 2.19.90-1
- Update to 2.19.90
* Tue Jan 30 2018 Tomas Popela <tpopela@redhat.com> - 2.19.6-3
- Remove obsoleted ldconfig scriptlets
* Wed Jan 17 2018 Tomas Popela <tpopela@redhat.com> - 2.19.6-1
- Update to 2.19.6
* Thu Jan 11 2018 Tomas Popela <tpopela@redhat.com> - 2.19.5-2
- This package was formerly named webkitgtk4