Compare commits

...
Sign in to create a new pull request.

16 commits

Author SHA1 Message Date
Michael Catanzaro
703f9dfa3e Add certificate verification patches 2015-03-17 15:49:46 -05:00
Tomas Popela
a776858044 Disable the SSLv3 to address the POODLE vulnerability 2014-10-21 10:26:54 +02:00
Tomas Popela
d270419321 Update to 2.2.8 2014-10-01 13:41:29 +02:00
Tomas Popela
e83281d5cd Fix CLoop on s390 and ppc 2014-07-23 16:39:55 +02:00
Tomas Popela
fcab65587b Fix CLoop on s390x and ppc64
Disable yarr jit through flag and don't use patch for it
2014-05-15 13:29:21 +02:00
Tomas Popela
f44d0f68f5 Update to 2.2.7 2014-05-05 09:28:26 +02:00
Tomas Popela
d4816d06b7 Update to 2.2.6 2014-03-19 16:10:39 +01:00
Tomas Popela
8bd2290864 Update to 2.2.5 2014-02-19 09:41:39 +01:00
Tomas Popela
5d789c17d4 Enable full debuginfo on s390x 2014-02-18 09:23:26 +01:00
Tomas Popela
8acc6e2a75 Update to 2.2.4 2014-01-21 15:41:08 +01:00
Richard Hughes
de65fc3157 Add %{?_isa} to the libwebkit2gtk subpackage
This ensures that dnf does the right thing if the metadata gets out of sync.
2013-12-05 14:36:14 +00:00
Tomas Popela
6f6f3c3b59 Remove unneeded patch 2013-12-04 15:28:35 +01:00
Tomas Popela
ebcd466fd1 Update to 2.2.3 2013-12-04 15:19:05 +01:00
Tomas Popela
11fb1f0df2 Fix for RH bug #1035764 - Crashes with certain Google Drive documents 2013-11-28 13:34:21 +01:00
Tomas Popela
efa190af33 Update to 2.2.2 2013-11-11 14:20:11 +01:00
Tomas Popela
1f735db3e3 Update to 2.2.1 2013-10-18 15:00:15 +02:00
10 changed files with 403 additions and 22 deletions

8
.gitignore vendored
View file

@ -45,3 +45,11 @@ webkit-1.3.3.tar.gz
/webkitgtk-2.1.91.tar.xz
/webkitgtk-2.1.92.tar.xz
/webkitgtk-2.2.0.tar.xz
/webkitgtk-2.2.1.tar.xz
/webkitgtk-2.2.2.tar.xz
/webkitgtk-2.2.3.tar.xz
/webkitgtk-2.2.4.tar.xz
/webkitgtk-2.2.5.tar.xz
/webkitgtk-2.2.6.tar.xz
/webkitgtk-2.2.7.tar.xz
/webkitgtk-2.2.8.tar.xz

View file

@ -1 +1 @@
9c337812667c4885ebe29a54084dcd4c webkitgtk-2.2.0.tar.xz
047f13fabc67003c9019e75a494c3faf webkitgtk-2.2.8.tar.xz

View file

@ -1,12 +0,0 @@
diff -up webkitgtk-2.1.1/Source/WTF/wtf/Platform.h.yarr webkitgtk-2.1.1/Source/WTF/wtf/Platform.h
--- webkitgtk-2.1.1/Source/WTF/wtf/Platform.h.yarr 2013-05-29 15:41:14.572995439 +0200
+++ webkitgtk-2.1.1/Source/WTF/wtf/Platform.h 2013-05-29 15:42:04.434993292 +0200
@@ -823,7 +823,7 @@
#define ENABLE_REGEXP_TRACING 0
/* Yet Another Regex Runtime - turned on by default for JIT enabled ports. */
-#if !defined(ENABLE_YARR_JIT) && (ENABLE(JIT) || ENABLE(LLINT_C_LOOP)) && !(OS(QNX) && PLATFORM(QT))
+#if !defined(ENABLE_YARR_JIT) && ENABLE(JIT) && ENABLE(LLINT_C_LOOP) && !(OS(QNX) && PLATFORM(QT))
#define ENABLE_YARR_JIT 1
/* Setting this flag compares JIT results with interpreter results. */

View file

@ -0,0 +1,114 @@
diff -up webkitgtk-2.2.7/Source/JavaScriptCore/llint/LLIntSlowPaths.cpp.cloop_fix webkitgtk-2.2.7/Source/JavaScriptCore/llint/LLIntSlowPaths.cpp
--- webkitgtk-2.2.7/Source/JavaScriptCore/llint/LLIntSlowPaths.cpp.cloop_fix 2014-07-23 14:39:17.415362841 +0200
+++ webkitgtk-2.2.7/Source/JavaScriptCore/llint/LLIntSlowPaths.cpp 2014-07-23 14:39:25.223470839 +0200
@@ -1303,7 +1303,7 @@ LLINT_SLOW_PATH_DECL(slow_path_get_from_
CodeBlock* codeBlock = exec->codeBlock();
ConcurrentJITLocker locker(codeBlock->m_lock);
pc[5].u.structure.set(exec->vm(), codeBlock->ownerExecutable(), scope->structure());
- pc[6].u.operand = slot.cachedOffset();
+ pc[6].u.pointer = reinterpret_cast<void*>(slot.cachedOffset());
}
}
@@ -1330,7 +1330,7 @@ LLINT_SLOW_PATH_DECL(slow_path_put_to_sc
if (slot.isCacheable() && slot.base() == scope && scope->structure()->propertyAccessesAreCacheable()) {
ConcurrentJITLocker locker(codeBlock->m_lock);
pc[5].u.structure.set(exec->vm(), codeBlock->ownerExecutable(), scope->structure());
- pc[6].u.operand = slot.cachedOffset();
+ pc[6].u.pointer = reinterpret_cast<void*>(slot.cachedOffset());
}
}
diff -up webkitgtk-2.2.7/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm.cloop_fix webkitgtk-2.2.7/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm
--- webkitgtk-2.2.7/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm.cloop_fix 2014-07-23 14:38:36.285793957 +0200
+++ webkitgtk-2.2.7/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm 2014-07-23 14:40:48.134614849 +0200
@@ -1889,7 +1889,7 @@ macro resolveScope()
addi 1, t2
.resolveScopeAfterActivationCheck:
- loadp ScopeChain[cfr], t0
+ loadp ScopeChain + PayloadOffset[cfr], t0
btiz t2, .resolveScopeLoopEnd
.resolveScopeLoop:
@@ -1948,13 +1948,13 @@ _llint_op_resolve_scope:
macro loadWithStructureCheck(operand, slowPath)
loadisFromInstruction(operand, t0)
- loadp [cfr, t0, 8], t0
+ loadp PayloadOffset[cfr, t0, 8], t0
loadpFromInstruction(5, t1)
bpneq JSCell::m_structure[t0], t1, slowPath
end
macro getProperty()
- loadisFromInstruction(6, t3)
+ loadpFromInstruction(6, t3)
loadPropertyAtVariableOffset(t3, t0, t1, t2)
valueProfile(t1, t2, 28, t0)
loadisFromInstruction(1, t0)
@@ -1974,7 +1974,7 @@ end
macro getClosureVar()
loadp JSVariableObject::m_registers[t0], t0
- loadisFromInstruction(6, t3)
+ loadpFromInstruction(6, t3)
loadp TagOffset[t0, t3, 8], t1
loadp PayloadOffset[t0, t3, 8], t2
valueProfile(t1, t2, 28, t0)
@@ -2033,7 +2033,7 @@ _llint_op_get_from_scope:
macro putProperty()
loadisFromInstruction(3, t1)
loadConstantOrVariable(t1, t2, t3)
- loadisFromInstruction(6, t1)
+ loadpFromInstruction(6, t1)
storePropertyAtVariableOffset(t1, t0, t2, t3)
end
@@ -2049,7 +2049,7 @@ macro putClosureVar()
loadisFromInstruction(3, t1)
loadConstantOrVariable(t1, t2, t3)
loadp JSVariableObject::m_registers[t0], t0
- loadisFromInstruction(6, t1)
+ loadpFromInstruction(6, t1)
storei t2, TagOffset[t0, t1, 8]
storei t3, PayloadOffset[t0, t1, 8]
end
diff -up webkitgtk-2.2.7/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm.cloop_fix webkitgtk-2.2.7/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm
--- webkitgtk-2.2.7/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm.cloop_fix 2014-07-23 14:38:20.610577145 +0200
+++ webkitgtk-2.2.7/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm 2014-07-23 14:39:25.224470853 +0200
@@ -1750,7 +1750,7 @@ macro loadWithStructureCheck(operand, sl
end
macro getProperty()
- loadisFromInstruction(6, t1)
+ loadpFromInstruction(6, t1)
loadPropertyAtVariableOffset(t1, t0, t2)
valueProfile(t2, 7, t0)
loadisFromInstruction(1, t0)
@@ -1767,7 +1767,7 @@ end
macro getClosureVar()
loadp JSVariableObject::m_registers[t0], t0
- loadisFromInstruction(6, t1)
+ loadpFromInstruction(6, t1)
loadq [t0, t1, 8], t0
valueProfile(t0, 7, t1)
loadisFromInstruction(1, t1)
@@ -1824,7 +1824,7 @@ _llint_op_get_from_scope:
macro putProperty()
loadisFromInstruction(3, t1)
loadConstantOrVariable(t1, t2)
- loadisFromInstruction(6, t1)
+ loadpFromInstruction(6, t1)
storePropertyAtVariableOffset(t1, t0, t2)
end
@@ -1839,7 +1839,7 @@ macro putClosureVar()
loadisFromInstruction(3, t1)
loadConstantOrVariable(t1, t2)
loadp JSVariableObject::m_registers[t0], t0
- loadisFromInstruction(6, t1)
+ loadpFromInstruction(6, t1)
storeq t2, [t0, t1, 8]
end

View file

@ -0,0 +1,45 @@
diff -up webkitgtk-2.2.7/Source/JavaScriptCore/heap/CopiedBlock.h.ppc64_align webkitgtk-2.2.7/Source/JavaScriptCore/heap/CopiedBlock.h
--- webkitgtk-2.2.7/Source/JavaScriptCore/heap/CopiedBlock.h.ppc64_align 2014-05-07 10:37:02.784916768 +0200
+++ webkitgtk-2.2.7/Source/JavaScriptCore/heap/CopiedBlock.h 2014-05-07 10:37:12.989046714 +0200
@@ -77,7 +77,7 @@ public:
size_t size();
size_t capacity();
- static const size_t blockSize = 32 * KB;
+ static const size_t blockSize = 64 * KB;
bool hasWorkList();
CopyWorkList& workList();
diff -up webkitgtk-2.2.7/Source/JavaScriptCore/interpreter/JSStack.cpp.ppc64_align webkitgtk-2.2.7/Source/JavaScriptCore/interpreter/JSStack.cpp
--- webkitgtk-2.2.7/Source/JavaScriptCore/interpreter/JSStack.cpp.ppc64_align 2014-05-07 10:41:27.450289748 +0200
+++ webkitgtk-2.2.7/Source/JavaScriptCore/interpreter/JSStack.cpp 2014-05-07 10:44:15.672468824 +0200
@@ -49,7 +49,8 @@ JSStack::JSStack(VM& vm, size_t capacity
{
ASSERT(capacity && isPageAligned(capacity));
- m_reservation = PageReservation::reserve(roundUpAllocationSize(capacity * sizeof(Register), commitSize), OSAllocator::JSVMStackPages);
+ size_t commitsize = pageSize();
+ m_reservation = PageReservation::reserve(roundUpAllocationSize(capacity * sizeof(Register), commitsize), OSAllocator::JSVMStackPages);
m_end = static_cast<Register*>(m_reservation.base());
m_commitEnd = static_cast<Register*>(m_reservation.base());
@@ -78,7 +79,8 @@ bool JSStack::growSlowCase(Register* new
// Compute the chunk size of additional memory to commit, and see if we
// have it is still within our budget. If not, we'll fail to grow and
// return false.
- long delta = roundUpAllocationSize(reinterpret_cast<char*>(newEnd) - reinterpret_cast<char*>(m_commitEnd), commitSize);
+ size_t commitsize = pageSize();
+ long delta = roundUpAllocationSize(reinterpret_cast<char*>(newEnd) - reinterpret_cast<char*>(m_commitEnd), commitsize);
if (reinterpret_cast<char*>(m_commitEnd) + delta > reinterpret_cast<char*>(m_useableEnd))
return false;
@@ -134,7 +136,8 @@ void JSStack::enableErrorStackReserve()
void JSStack::disableErrorStackReserve()
{
- char* useableEnd = reinterpret_cast<char*>(reservationEnd()) - commitSize;
+ size_t commitsize = pageSize();
+ char* useableEnd = reinterpret_cast<char*>(reservationEnd()) - commitsize;
m_useableEnd = reinterpret_cast_ptr<Register*>(useableEnd);
// By the time we get here, we are guaranteed to be destructing the last

View file

@ -0,0 +1,78 @@
--- a/Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp
+++ b/Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp
@@ -307,4 +307,29 @@
}
+static bool handleUnignoredTLSErrors(ResourceHandle* handle, SoupMessage* message)
+{
+ if (gIgnoreSSLErrors)
+ return false;
+
+ GTlsCertificate* certificate = nullptr;
+ GTlsCertificateFlags tlsErrors = static_cast<GTlsCertificateFlags>(0);
+ soup_message_get_https_status(message, &certificate, &tlsErrors);
+ if (!tlsErrors)
+ return false;
+
+ String lowercaseHostURL = handle->firstRequest().url().host().lower();
+ if (allowsAnyHTTPSCertificateHosts().contains(lowercaseHostURL))
+ return false;
+
+ // We aren't ignoring errors globally, but the user may have already decided to accept this certificate.
+ auto it = clientCertificates().find(lowercaseHostURL);
+ if (it != clientCertificates().end() && it->value.contains(certificate))
+ return false;
+
+ ResourceHandleInternal* d = handle->getInternal();
+ handle->client()->didFail(handle, ResourceError::tlsError(d->m_soupRequest.get(), tlsErrors, certificate));
+ return true;
+}
+
static void gotHeadersCallback(SoupMessage* message, gpointer data)
{
@@ -312,4 +337,9 @@
if (!handle || handle->cancelledOrClientless())
return;
+
+ if (handleUnignoredTLSErrors(handle, message)) {
+ handle->cancel();
+ return;
+ }
ResourceHandleInternal* d = handle->getInternal();
@@ -570,25 +600,4 @@
}
-static bool handleUnignoredTLSErrors(ResourceHandle* handle)
-{
- ResourceHandleInternal* d = handle->getInternal();
- const ResourceResponse& response = d->m_response;
-
- if (!response.soupMessageTLSErrors() || gIgnoreSSLErrors)
- return false;
-
- String lowercaseHostURL = handle->firstRequest().url().host().lower();
- if (allowsAnyHTTPSCertificateHosts().contains(lowercaseHostURL))
- return false;
-
- // We aren't ignoring errors globally, but the user may have already decided to accept this certificate.
- CertificatesMap::iterator i = clientCertificates().find(lowercaseHostURL);
- if (i != clientCertificates().end() && i->value.contains(response.soupMessageCertificate()))
- return false;
-
- handle->client()->didFail(handle, ResourceError::tlsError(d->m_soupRequest.get(), response.soupMessageTLSErrors(), response.soupMessageCertificate()));
- return true;
-}
-
static void nextMultipartResponsePartCallback(GObject* /*source*/, GAsyncResult* result, gpointer data)
{
@@ -676,9 +685,4 @@
}
d->m_response.updateFromSoupMessage(soupMessage);
-
- if (handleUnignoredTLSErrors(handle.get())) {
- cleanupSoupRequestOperation(handle.get());
- return;
- }
if (SOUP_STATUS_IS_REDIRECTION(soupMessage->status_code) && shouldRedirect(handle.get())) {

View file

@ -0,0 +1,32 @@
--- a/Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp
+++ b/Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp
@@ -331,5 +331,5 @@
}
-static void gotHeadersCallback(SoupMessage* message, gpointer data)
+static void tlsErrorsChangedCallback(SoupMessage* message, GParamSpec*, gpointer data)
{
ResourceHandle* handle = static_cast<ResourceHandle*>(data);
@@ -337,8 +337,13 @@
return;
- if (handleUnignoredTLSErrors(handle, message)) {
+ if (handleUnignoredTLSErrors(handle, message))
handle->cancel();
- return;
- }
+}
+
+static void gotHeadersCallback(SoupMessage* message, gpointer data)
+{
+ ResourceHandle* handle = static_cast<ResourceHandle*>(data);
+ if (!handle || handle->cancelledOrClientless())
+ return;
ResourceHandleInternal* d = handle->getInternal();
@@ -935,4 +940,5 @@
soup_message_headers_set_content_length(soupMessage->request_headers, 0);
+ g_signal_connect(d->m_soupMessage.get(), "notify::tls-errors", G_CALLBACK(tlsErrorsChangedCallback), handle);
g_signal_connect(d->m_soupMessage.get(), "got-headers", G_CALLBACK(gotHeadersCallback), handle);
g_signal_connect(d->m_soupMessage.get(), "wrote-body-data", G_CALLBACK(wroteBodyDataCallback), handle);

View file

@ -0,0 +1,23 @@
diff -up webkitgtk-2.2.8/Source/WebKit2/gtk/MainGtk.cpp.poodle webkitgtk-2.2.8/Source/WebKit2/gtk/MainGtk.cpp
--- webkitgtk-2.2.8/Source/WebKit2/gtk/MainGtk.cpp.poodle 2014-10-21 10:08:32.851222903 +0200
+++ webkitgtk-2.2.8/Source/WebKit2/gtk/MainGtk.cpp 2014-10-21 10:08:31.234199110 +0200
@@ -26,7 +26,19 @@
#include "WebProcessMainGtk.h"
+#include <cstdlib>
+
int main(int argc, char** argv)
{
+ // Disable SSLv3 very early because it is practically impossible to safely
+ // use setenv() when multiple threads are running, as another thread calling
+ // getenv() could cause a crash, and many functions use getenv() internally.
+ // This workaround will stop working if glib-networking switches away from
+ // GnuTLS or simply stops parsing this variable. We intentionally do not
+ // overwrite this priority string if it's already set by the user.
+ // Keep this in sync with NetworkMainUnix.cpp.
+ // https://bugzilla.gnome.org/show_bug.cgi?id=738633
+ setenv("G_TLS_GNUTLS_PRIORITY", "NORMAL:%COMPAT:!VERS-SSL3.0", 0);
+
return WebKit::WebProcessMainGtk(argc, argv);
}

View file

@ -0,0 +1,35 @@
--- a/Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp
+++ b/Source/WebCore/platform/network/soup/ResourceHandleSoup.cpp
@@ -681,4 +681,15 @@
if (soupMessage) {
+ if (handle->shouldContentSniff() && soupMessage->status_code != SOUP_STATUS_NOT_MODIFIED) {
+ const char* sniffedType = soup_request_get_content_type(d->m_soupRequest.get());
+ d->m_response.setSniffedContentType(sniffedType);
+ }
+ d->m_response.updateFromSoupMessage(soupMessage);
+
+ if (handleUnignoredTLSErrors(handle.get())) {
+ cleanupSoupRequestOperation(handle.get());
+ return;
+ }
+
if (SOUP_STATUS_IS_REDIRECTION(soupMessage->status_code) && shouldRedirect(handle.get())) {
d->m_inputStream = inputStream;
@@ -687,16 +698,4 @@
return;
}
-
- if (handle->shouldContentSniff() && soupMessage->status_code != SOUP_STATUS_NOT_MODIFIED) {
- const char* sniffedType = soup_request_get_content_type(d->m_soupRequest.get());
- d->m_response.setSniffedContentType(sniffedType);
- }
- d->m_response.updateFromSoupMessage(soupMessage);
-
- if (handleUnignoredTLSErrors(handle.get())) {
- cleanupSoupRequestOperation(handle.get());
- return;
- }
-
} else {
d->m_response.setURL(handle->firstRequest().url());

View file

@ -6,8 +6,8 @@
cp -p %1 %{buildroot}%{_pkgdocdir}/$(echo '%1' | sed -e 's!/!.!g')
Name: webkitgtk3
Version: 2.2.0
Release: 1%{?dist}
Version: 2.2.8
Release: 3%{?dist}
Summary: GTK+ Web content engine library
Group: Development/Libraries
@ -17,11 +17,18 @@ URL: http://www.webkitgtk.org/
Source0: http://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz
Patch0: webkit-1.1.14-nspluginwrapper.patch
# workarounds for non-JIT arches
# https://bugs.webkit.org/show_bug.cgi?id=104270
Patch1: webkitgtk-2.1.1-yarr.patch
# https://bugs.webkit.org/show_bug.cgi?id=103128
Patch4: webkit-2.1.90-double2intsPPC32.patch
Patch5: webkitgtk-2.2.7-cloop_fix.patch
Patch6: webkitgtk-2.2.7-ppc64_align.patch
# https://bugs.webkit.org/show_bug.cgi?id=137859
Patch7: webkitgtk-2.2.8-poodle.patch
# https://bugs.webkit.org/show_bug.cgi?id=121548
Patch8: webkitgtk-2.2.8-tls-errors-always-ignored.patch
# https://bugs.webkit.org/show_bug.cgi?id=137300
Patch9: webkitgtk-2.2.8-http-auth-before-certificate-verification.patch
# http://seclists.org/oss-sec/2015/q1/871
Patch10: webkitgtk-2.2.8-late-certificate-verification.patch
BuildRequires: at-spi2-core-devel
BuildRequires: bison
@ -65,7 +72,7 @@ This package contains WebKitGTK+ for GTK+ 3.
%package -n libwebkit2gtk
Summary: The libwebkit2gtk library
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
Requires: %{name}%{?_isa} = %{version}-%{release}
%description -n libwebkit2gtk
The libwebkit2gtk package contains the libwebkit2gtk library
@ -74,7 +81,7 @@ that is part of %{name}.
%package devel
Summary: Development files for %{name}
Group: Development/Libraries
Requires: %{name} = %{version}-%{release}
Requires: %{name}%{?_isa} = %{version}-%{release}
%description devel
The %{name}-devel package contains libraries, build data, and header
@ -92,20 +99,31 @@ This package contains developer documentation for %{name}.
%prep
%setup -qn "webkitgtk-%{version}"
%patch0 -p1 -b .nspluginwrapper
%patch1 -p1 -b .yarr
%patch5 -p1 -b .cloop_fix
%patch7 -p1 -b .poodle
%patch8 -p1 -b .no_certificate_failures
%patch9 -p1 -b .late_certificate_verification1
%patch10 -p1 -b .late_certificate_verification2
%ifarch ppc s390
%patch4 -p1 -b .double2intsPPC32
%endif
%ifarch ppc64 ppc
%patch6 -p1 -b .ppc64_align
%endif
%build
# Use linker flags to reduce memory consumption
%global optflags %{optflags} -Wl,--no-keep-memory -Wl,--reduce-memory-overheads
%ifarch s390 s390x %{arm}
%ifarch s390 %{arm}
# Decrease debuginfo verbosity to reduce memory consumption even more
%global optflags %(echo %{optflags} | sed 's/-g /-g1 /')
%endif
%ifarch s390 s390x ppc ppc64 aarch64
%global optflags %{optflags} -DENABLE_YARR_JIT=0
%endif
%ifarch ppc
# Use linker flag -relax to get WebKit2 build under ppc(32) with JIT disabled
%global optflags %{optflags} -Wl,-relax
@ -211,6 +229,46 @@ find $RPM_BUILD_ROOT%{_libdir} -name "*.la" -delete
%changelog
* Tue Mar 17 2015 Michael Catanzaro <mcatanzaro@gnome.org> - 2.2.8-3
- Add certificate verification patches
* Tue Oct 21 2014 Tomas Popela <tpopela@redhat.com> - 2.2.8-2
- Disable the SSLv3 to address the POODLE vulnerability
* Wed Oct 01 2014 Tomas Popela <tpopela@redhat.com> - 2.2.8-1
- Update to 2.2.8
* Wed Jul 23 2014 Tomas Popela <tpopela@redhat.com> - 2.2.7-3
- Fix CLoop on s390 and ppc
* Wed May 7 2014 Tomas Popela <tpopela@redhat.com> - 2.2.7-2
- Fix CLoop on s390x and ppc64
- Disable yarr jit through flag and don't use patch for it
* Mon May 5 2014 Tomas Popela <tpopela@redhat.com> - 2.2.7-1
- Update to 2.2.7
* Wed Mar 19 2014 Tomas Popela <tpopela@redhat.com> - 2.2.6-1
- Update to 2.2.6
* Tue Feb 18 2014 Tomas Popela <tpopela@redhat.com> - 2.2.4-2
- Enable full debuginfo on s390x
* Tue Jan 21 2014 Tomas Popela <tpopela@redhat.com> - 2.2.4-1
- Update to 2.2.4
* Wed Dec 4 2013 Tomas Popela <tpopela@redhat.com> - 2.2.3-1
- Update to 2.2.3
* Thu Nov 28 2013 Tomas Popela <tpopela@redhat.com> - 2.2.2-2
- Fix for RH bug #1035764 - Crashes with certain Google Drive documents
* Mon Nov 11 2013 Tomas Popela <tpopela@redhat.com> - 2.2.2-1
- Update to 2.2.2
* Fri Oct 18 2013 Tomas Popela <tpopela@redhat.com> - 2.2.1-1
- Update to 2.2.1
* Fri Sep 27 2013 Kalev Lember <kalevlember@gmail.com> - 2.2.0-1
- Update to 2.2.0