diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..90f2733 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +/webkitgtk-2.*.tar.xz diff --git a/dead.package b/dead.package deleted file mode 100644 index a60d10e..0000000 --- a/dead.package +++ /dev/null @@ -1 +0,0 @@ -https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org/message/AKVB363GFCHHJ5MTHGVYHYT6NLLTF5VM/ diff --git a/sources b/sources new file mode 100644 index 0000000..3390423 --- /dev/null +++ b/sources @@ -0,0 +1 @@ +e1a10b4730f501980e3681db9b0e5d25 webkitgtk-2.4.7.tar.xz diff --git a/webkit-1.1.14-nspluginwrapper.patch b/webkit-1.1.14-nspluginwrapper.patch new file mode 100644 index 0000000..0d3aa27 --- /dev/null +++ b/webkit-1.1.14-nspluginwrapper.patch @@ -0,0 +1,12 @@ +--- webkit-1.1.17/Source/WebCore/plugins/PluginDatabase.cpp.old 2009-12-01 15:22:10.000000000 +0000 ++++ webkit-1.1.17/Source/WebCore/plugins/PluginDatabase.cpp 2009-12-01 15:22:21.000000000 +0000 +@@ -357,6 +357,9 @@ Vector PluginDatabase::defaultPl + paths.append("/usr/lib64/mozilla/plugins"); + paths.append("/usr/lib/nsbrowser/plugins"); + paths.append("/usr/lib64/nsbrowser/plugins"); ++ /* And for nspluginwrapper */ ++ paths.append("/usr/lib64/mozilla/plugins-wrapped"); ++ paths.append("/usr/lib/mozilla/plugins-wrapped"); + + String mozHome(getenv("MOZILLA_HOME")); + mozHome.append("/plugins"); diff --git a/webkitgtk-2.4.1-cloop_fix.patch b/webkitgtk-2.4.1-cloop_fix.patch new file mode 100644 index 0000000..2675caf --- /dev/null +++ b/webkitgtk-2.4.1-cloop_fix.patch @@ -0,0 +1,199 @@ +diff -up webkitgtk-2.4.4/Source/JavaScriptCore/interpreter/ProtoCallFrame.h.cloop_fix webkitgtk-2.4.4/Source/JavaScriptCore/interpreter/ProtoCallFrame.h +--- webkitgtk-2.4.4/Source/JavaScriptCore/interpreter/ProtoCallFrame.h.cloop_fix 2014-07-23 14:15:45.497658648 +0200 ++++ webkitgtk-2.4.4/Source/JavaScriptCore/interpreter/ProtoCallFrame.h 2014-07-23 14:16:46.997687779 +0200 +@@ -36,7 +36,7 @@ struct ProtoCallFrame { + Register calleeValue; + Register argCountAndCodeOriginValue; + Register thisArg; +- size_t paddedArgCount; ++ uint32_t paddedArgCount; + JSValue *args; + + void init(CodeBlock*, JSScope*, JSObject*, JSValue, int, JSValue* otherArgs = 0); +@@ -53,7 +53,7 @@ struct ProtoCallFrame { + int argumentCountIncludingThis() const { return argCountAndCodeOriginValue.payload(); } + int argumentCount() const { return argumentCountIncludingThis() - 1; } + void setArgumentCountIncludingThis(int count) { argCountAndCodeOriginValue.payload() = count; } +- void setPaddedArgsCount(size_t argCount) { paddedArgCount = argCount; } ++ void setPaddedArgsCount(uint32_t argCount) { paddedArgCount = argCount; } + + void clearCurrentVPC() { argCountAndCodeOriginValue.tag() = 0; } + +diff -up webkitgtk-2.4.4/Source/JavaScriptCore/llint/LLIntSlowPaths.cpp.cloop_fix webkitgtk-2.4.4/Source/JavaScriptCore/llint/LLIntSlowPaths.cpp +--- webkitgtk-2.4.4/Source/JavaScriptCore/llint/LLIntSlowPaths.cpp.cloop_fix 2014-07-23 14:16:02.057667404 +0200 ++++ webkitgtk-2.4.4/Source/JavaScriptCore/llint/LLIntSlowPaths.cpp 2014-07-23 14:16:46.997687779 +0200 +@@ -1354,7 +1354,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(slot.cachedOffset()); + } + } + +@@ -1381,7 +1381,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(slot.cachedOffset()); + } + } + +diff -up webkitgtk-2.4.4/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm.cloop_fix webkitgtk-2.4.4/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm +--- webkitgtk-2.4.4/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm.cloop_fix 2014-07-23 14:16:13.047672325 +0200 ++++ webkitgtk-2.4.4/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm 2014-07-23 14:18:27.547721786 +0200 +@@ -282,7 +282,7 @@ macro doCallToJavaScript(makeCall, doRet + storep temp3, CodeBlock+4[cfr, temp1, 8] + btinz temp1, .copyHeaderLoop + +- loadi ProtoCallFrame::argCountAndCodeOriginValue[protoCallFrame], temp2 ++ loadi PayloadOffset + ProtoCallFrame::argCountAndCodeOriginValue[protoCallFrame], temp2 + subi 1, temp2 + loadi ProtoCallFrame::paddedArgCount[protoCallFrame], temp3 + subi 1, temp3 +@@ -321,7 +321,7 @@ macro doCallToJavaScript(makeCall, doRet + + .calleeFramePopped: + loadp Callee[cfr], temp3 # VM.topCallFrame +- loadp ScopeChain[cfr], temp4 ++ loadp ScopeChain + PayloadOffset[cfr], temp4 + storep temp4, [temp3] + + doReturn(extraStackSpace) +@@ -598,7 +598,7 @@ end + + + macro branchIfException(label) +- loadp ScopeChain[cfr], t3 ++ loadp ScopeChain + PayloadOffset[cfr], t3 + andp MarkedBlockMask, t3 + loadp MarkedBlock::m_weakSet + WeakSet::m_vm[t3], t3 + bieq VM::m_exception + TagOffset[t3], EmptyValueTag, .noException +@@ -2039,7 +2039,7 @@ _llint_op_catch: + # the interpreter's throw trampoline (see _llint_throw_trampoline). + # The throwing code must have known that we were throwing to the interpreter, + # and have set VM::targetInterpreterPCForThrow. +- loadp ScopeChain[cfr], t3 ++ loadp ScopeChain + PayloadOffset[cfr], t3 + andp MarkedBlockMask, t3 + loadp MarkedBlock::m_weakSet + WeakSet::m_vm[t3], t3 + loadp VM::callFrameForThrow[t3], cfr +@@ -2159,7 +2159,7 @@ macro nativeCallTrampoline(executableOff + andp MarkedBlockMask, t3 + loadp MarkedBlock::m_weakSet + WeakSet::m_vm[t3], t3 + elsif C_LOOP +- loadp ScopeChain[cfr], t3 ++ loadp ScopeChain + PayloadOffset[cfr], t3 + andp MarkedBlockMask, t3 + loadp MarkedBlock::m_weakSet + WeakSet::m_vm[t3], t3 + storep cfr, VM::topCallFrame[t3] +@@ -2172,7 +2172,7 @@ macro nativeCallTrampoline(executableOff + move t2, cfr + cloopCallNative executableOffsetToFunction[t1] + restoreReturnAddressBeforeReturn(t3) +- loadp ScopeChain[cfr], t3 ++ loadp ScopeChain + PayloadOffset[cfr], t3 + andp MarkedBlockMask, t3 + loadp MarkedBlock::m_weakSet + WeakSet::m_vm[t3], t3 + else +@@ -2212,7 +2212,7 @@ macro resolveScope() + addi 1, t2 + + .resolveScopeAfterActivationCheck: +- loadp ScopeChain[cfr], t0 ++ loadp ScopeChain + PayloadOffset[cfr], t0 + btiz t2, .resolveScopeLoopEnd + + .resolveScopeLoop: +@@ -2271,13 +2271,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) +@@ -2297,7 +2297,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) +@@ -2356,7 +2356,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 + +@@ -2374,7 +2374,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.4.4/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm.cloop_fix webkitgtk-2.4.4/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm +--- webkitgtk-2.4.4/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm.cloop_fix 2014-07-23 14:16:19.147675074 +0200 ++++ webkitgtk-2.4.4/Source/JavaScriptCore/llint/LowLevelInterpreter64.asm 2014-07-23 14:16:46.997687779 +0200 +@@ -171,7 +171,7 @@ macro doCallToJavaScript(makeCall, doRet + storep temp3, CodeBlock[cfr, temp1, 8] + btinz temp1, .copyHeaderLoop + +- loadi ProtoCallFrame::argCountAndCodeOriginValue[protoCallFrame], temp2 ++ loadi PayloadOffset + ProtoCallFrame::argCountAndCodeOriginValue[protoCallFrame], temp2 + subi 1, temp2 + loadi ProtoCallFrame::paddedArgCount[protoCallFrame], temp3 + subi 1, temp3 +@@ -2047,7 +2047,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) +@@ -2064,7 +2064,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) +@@ -2121,7 +2121,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 + +@@ -2138,7 +2138,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 + diff --git a/webkitgtk-2.4.1-ppc64_align.patch b/webkitgtk-2.4.1-ppc64_align.patch new file mode 100644 index 0000000..5186d60 --- /dev/null +++ b/webkitgtk-2.4.1-ppc64_align.patch @@ -0,0 +1,45 @@ +diff -up webkitgtk-2.4.2/Source/JavaScriptCore/heap/CopiedBlock.h.ppc64_align webkitgtk-2.4.2/Source/JavaScriptCore/heap/CopiedBlock.h +--- webkitgtk-2.4.2/Source/JavaScriptCore/heap/CopiedBlock.h.ppc64_align 2014-05-12 08:03:53.000000000 +0200 ++++ webkitgtk-2.4.2/Source/JavaScriptCore/heap/CopiedBlock.h 2014-05-14 15:16:36.946318596 +0200 +@@ -81,7 +81,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.4.2/Source/JavaScriptCore/interpreter/JSStack.cpp.ppc64_align webkitgtk-2.4.2/Source/JavaScriptCore/interpreter/JSStack.cpp +--- webkitgtk-2.4.2/Source/JavaScriptCore/interpreter/JSStack.cpp.ppc64_align 2014-05-12 08:03:53.000000000 +0200 ++++ webkitgtk-2.4.2/Source/JavaScriptCore/interpreter/JSStack.cpp 2014-05-14 15:17:35.617171141 +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); + updateStackLimit(highAddress()); + m_commitEnd = highAddress(); + +@@ -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(m_commitEnd) - reinterpret_cast(newEnd), commitSize); ++ size_t commitsize = pageSize(); ++ long delta = roundUpAllocationSize(reinterpret_cast(m_commitEnd) - reinterpret_cast(newEnd), commitsize); + if (reinterpret_cast(m_commitEnd) - delta <= reinterpret_cast(m_useableEnd)) + return false; + +@@ -134,7 +136,8 @@ void JSStack::enableErrorStackReserve() + + void JSStack::disableErrorStackReserve() + { +- char* useableEnd = reinterpret_cast(reservationEnd()) + commitSize; ++ size_t commitsize = pageSize(); ++ char* useableEnd = reinterpret_cast(reservationEnd()) + commitsize; + m_useableEnd = reinterpret_cast_ptr(useableEnd); + + // By the time we get here, we are guaranteed to be destructing the last diff --git a/webkitgtk-2.4.5-cloop_fix_32.patch b/webkitgtk-2.4.5-cloop_fix_32.patch new file mode 100644 index 0000000..96c53ad --- /dev/null +++ b/webkitgtk-2.4.5-cloop_fix_32.patch @@ -0,0 +1,31 @@ +diff -up webkitgtk-2.4.5/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm.cloop_fix_32 webkitgtk-2.4.5/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm +--- webkitgtk-2.4.5/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm.cloop_fix_32 2013-08-28 21:06:29.000000000 +0200 ++++ webkitgtk-2.4.5/Source/JavaScriptCore/llint/LowLevelInterpreter32_64.asm 2013-09-12 15:32:34.000000000 +0200 +@@ -1679,7 +1679,7 @@ _llint_op_next_pname: + loadi 20[PC], t2 + loadi PayloadOffset[cfr, t2, 8], t2 + loadp JSPropertyNameIterator::m_jsStrings[t2], t3 +- loadi [t3, t0, 8], t3 ++ loadi PayloadOffset[t3, t0, 8], t3 + addi 1, t0 + storei t0, PayloadOffset[cfr, t1, 8] + loadi 4[PC], t1 +diff -up webkitgtk-2.4.5/Source/JavaScriptCore/llint/LowLevelInterpreter.asm.cloop_fix_32 webkitgtk-2.4.5/Source/JavaScriptCore/llint/LowLevelInterpreter.asm +--- webkitgtk-2.4.5/Source/JavaScriptCore/llint/LowLevelInterpreter.asm.cloop_fix_32 2013-08-28 21:06:29.000000000 +0200 ++++ webkitgtk-2.4.5/Source/JavaScriptCore/llint/LowLevelInterpreter.asm 2013-09-12 15:32:34.000000000 +0200 +@@ -276,13 +276,13 @@ macro assertNotConstant(index) + end + + macro functionForCallCodeBlockGetter(targetRegister) +- loadp Callee[cfr], targetRegister ++ loadp Callee + PayloadOffset[cfr], targetRegister + loadp JSFunction::m_executable[targetRegister], targetRegister + loadp FunctionExecutable::m_codeBlockForCall[targetRegister], targetRegister + end + + macro functionForConstructCodeBlockGetter(targetRegister) +- loadp Callee[cfr], targetRegister ++ loadp Callee + PayloadOffset[cfr], targetRegister + loadp JSFunction::m_executable[targetRegister], targetRegister + loadp FunctionExecutable::m_codeBlockForConstruct[targetRegister], targetRegister + end diff --git a/webkitgtk-aarch64.patch b/webkitgtk-aarch64.patch new file mode 100644 index 0000000..7272bc1 --- /dev/null +++ b/webkitgtk-aarch64.patch @@ -0,0 +1,40 @@ +diff -up webkitgtk-2.4.5/Source/WTF/wtf/dtoa/utils.h.aarch64 webkitgtk-2.4.5/Source/WTF/wtf/dtoa/utils.h +--- webkitgtk-2.4.5/Source/WTF/wtf/dtoa/utils.h.aarch64 2014-09-02 11:39:15.782812173 +0200 ++++ webkitgtk-2.4.5/Source/WTF/wtf/dtoa/utils.h 2014-09-02 11:41:23.022637099 +0200 +@@ -49,7 +49,7 @@ + defined(__ARMEL__) || \ + defined(_MIPS_ARCH_MIPS32R2) + #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1 +-#elif CPU(MIPS) || CPU(PPC) || CPU(PPC64) || CPU(PPC64LE) || OS(WINCE) || CPU(SH4) || CPU(S390) || CPU(S390X) || CPU(IA64) || CPU(ALPHA) || CPU(ARM64) || CPU(HPPA) ++#elif CPU(MIPS) || CPU(PPC) || CPU(PPC64) || CPU(PPC64LE) || OS(WINCE) || CPU(SH4) || CPU(S390) || CPU(S390X) || CPU(IA64) || CPU(ALPHA) || CPU(AARCH64) || CPU(HPPA) + #define DOUBLE_CONVERSION_CORRECT_DOUBLE_OPERATIONS 1 + #elif defined(_M_IX86) || defined(__i386__) + #if defined(_WIN32) +diff -up webkitgtk-2.4.5/Source/WTF/wtf/Platform.h.aarch64 webkitgtk-2.4.5/Source/WTF/wtf/Platform.h +--- webkitgtk-2.4.5/Source/WTF/wtf/Platform.h.aarch64 2014-08-25 14:50:32.000000000 +0200 ++++ webkitgtk-2.4.5/Source/WTF/wtf/Platform.h 2014-09-02 11:40:40.925033307 +0200 +@@ -331,6 +331,14 @@ + #define WTF_CPU_NEEDS_ALIGNED_ACCESS 1 + #endif + ++/* CPU(AARCH64) - AArch64 */ ++#if defined(__aarch64__) ++#define WTF_CPU_AARCH64 1 ++#if defined(__AARCH64BE__) ++#define WTF_CPU_BIG_ENDIAN 1 ++#endif ++#endif ++ + /* ==== OS() - underlying operating system; only to be used for mandated low-level services like + virtual memory, not to choose a GUI toolkit ==== */ + +@@ -656,7 +664,8 @@ + || CPU(ARM64) \ + || CPU(S390X) \ + || CPU(PPC64) \ +- || CPU(PPC64LE) ++ || CPU(PPC64LE) \ ++ || CPU(AARCH64) + #define WTF_USE_JSVALUE64 1 + #else + #define WTF_USE_JSVALUE32_64 1 diff --git a/webkitgtk3.spec b/webkitgtk3.spec new file mode 100644 index 0000000..d4d2f51 --- /dev/null +++ b/webkitgtk3.spec @@ -0,0 +1,584 @@ +## 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: webkitgtk3 +Version: 2.4.7 +Release: 1%{?dist} +Summary: GTK+ Web content engine library + +Group: Development/Libraries +License: LGPLv2+ and BSD +URL: http://www.webkitgtk.org/ + +Source0: http://webkitgtk.org/releases/webkitgtk-%{version}.tar.xz + +Patch0: webkit-1.1.14-nspluginwrapper.patch +Patch1: webkitgtk-aarch64.patch +Patch2: webkitgtk-2.4.1-cloop_fix.patch +Patch3: webkitgtk-2.4.5-cloop_fix_32.patch +Patch4: webkitgtk-2.4.1-ppc64_align.patch + +BuildRequires: at-spi2-core-devel +BuildRequires: bison +BuildRequires: cairo-devel +BuildRequires: chrpath +BuildRequires: enchant-devel +BuildRequires: flex +BuildRequires: fontconfig-devel >= 2.5 +BuildRequires: freetype-devel +BuildRequires: geoclue2-devel +BuildRequires: gettext +BuildRequires: gperf +BuildRequires: gstreamer1-devel +BuildRequires: gstreamer1-plugins-base-devel +BuildRequires: gtk2-devel +BuildRequires: gtk3-devel >= 3.6 +BuildRequires: gtk-doc +BuildRequires: glib2-devel >= 2.36.0 +BuildRequires: harfbuzz-devel +BuildRequires: libsoup-devel >= 2.42.0 +BuildRequires: libicu-devel +BuildRequires: libjpeg-devel +BuildRequires: libpng-devel +BuildRequires: libsecret-devel +BuildRequires: libwebp-devel +BuildRequires: libxslt-devel +BuildRequires: libXt-devel +BuildRequires: pcre-devel +BuildRequires: sqlite-devel +BuildRequires: gobject-introspection-devel >= 1.32.0 +BuildRequires: perl-Switch +BuildRequires: ruby +BuildRequires: mesa-libGL-devel +%ifarch ppc +BuildRequires: libatomic +%endif +Requires: geoclue2 + +%description +WebKitGTK+ is the port of the portable web rendering engine WebKit to the +GTK+ platform. + +This package contains WebKitGTK+ for GTK+ 3. + +%package -n libwebkit2gtk +Summary: The libwebkit2gtk library +Group: Development/Libraries +Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: geoclue2 + +%description -n libwebkit2gtk +The libwebkit2gtk package contains the libwebkit2gtk library +that is part of %{name}. + +%package devel +Summary: Development files for %{name} +Group: Development/Libraries +Requires: %{name}%{?_isa} = %{version}-%{release} +Requires: libwebkit2gtk%{?_isa} = %{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} +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 .nspluginwrapper +%patch1 -p1 -b .aarch64 +%patch2 -p1 -b .cloop_fix +%ifarch ppc s390 +%patch3 -p1 -b .cloop_fix_32 +%endif +%ifarch %{power64} aarch64 ppc +%patch4 -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 %{arm} +# 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 WebKit2 build under ppc(32) with JIT disabled +%global optflags %{optflags} -Wl,-relax -latomic +%endif + +%ifarch s390 s390x ppc %{power64} aarch64 +%global optflags %{optflags} -DENABLE_YARR_JIT=0 +%endif + +%configure \ + --with-gtk=3.0 \ +%ifarch s390 s390x ppc %{power64} aarch64 + --disable-jit \ +%else + --enable-jit \ +%endif + --enable-introspection + +mkdir -p DerivedSources/webkit +mkdir -p DerivedSources/WebCore +mkdir -p DerivedSources/ANGLE +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} +install -m 755 Programs/MiniBrowser %{buildroot}%{_libexecdir}/%{name} + +# Remove lib64 rpaths +chrpath --delete %{buildroot}%{_bindir}/jsc-3 +chrpath --delete %{buildroot}%{_libdir}/libwebkitgtk-3.0.so +chrpath --delete %{buildroot}%{_libdir}/libwebkit2gtk-3.0.so +chrpath --delete %{buildroot}%{_libexecdir}/%{name}/GtkLauncher +chrpath --delete %{buildroot}%{_libexecdir}/%{name}/MiniBrowser +chrpath --delete %{buildroot}%{_libexecdir}/WebKitPluginProcess +chrpath --delete %{buildroot}%{_libexecdir}/WebKitWebProcess + +# Remove .la files +find $RPM_BUILD_ROOT%{_libdir} -name "*.la" -delete + +%find_lang WebKitGTK-3.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 -p /sbin/ldconfig + +%post -n libwebkit2gtk -p /sbin/ldconfig +%postun -n libwebkit2gtk -p /sbin/ldconfig + + +%files -f WebKitGTK-3.0.lang +%doc %{_pkgdocdir}/ +%{_libdir}/libwebkitgtk-3.0.so.* +%{_libdir}/libjavascriptcoregtk-3.0.so.* +%{_libdir}/girepository-1.0/WebKit-3.0.typelib +%{_libdir}/girepository-1.0/JavaScriptCore-3.0.typelib +%dir %{_libexecdir}/%{name} +%{_libexecdir}/%{name}/GtkLauncher +%{_datadir}/webkitgtk-3.0 + +%files -n libwebkit2gtk +%{_libdir}/libwebkit2gtk-3.0.so.* +%{_libdir}/webkit2gtk-3.0/ +%{_libdir}/girepository-1.0/WebKit2-3.0.typelib +%{_libdir}/girepository-1.0/WebKit2WebExtension-3.0.typelib +%{_libexecdir}/%{name}/MiniBrowser +%{_libexecdir}/WebKitNetworkProcess +%{_libexecdir}/WebKitPluginProcess +%{_libexecdir}/WebKitWebProcess + +%files devel +%{_bindir}/jsc-3 +%{_includedir}/webkitgtk-3.0 +%{_libdir}/libwebkitgtk-3.0.so +%{_libdir}/libwebkit2gtk-3.0.so +%{_libdir}/libjavascriptcoregtk-3.0.so +%{_libdir}/pkgconfig/webkitgtk-3.0.pc +%{_libdir}/pkgconfig/webkit2gtk-3.0.pc +%{_libdir}/pkgconfig/webkit2gtk-web-extension-3.0.pc +%{_libdir}/pkgconfig/javascriptcoregtk-3.0.pc +%{_datadir}/gir-1.0/WebKit-3.0.gir +%{_datadir}/gir-1.0/WebKit2-3.0.gir +%{_datadir}/gir-1.0/WebKit2WebExtension-3.0.gir +%{_datadir}/gir-1.0/JavaScriptCore-3.0.gir + +%files doc +%dir %{_datadir}/gtk-doc +%dir %{_datadir}/gtk-doc/html +%{_datadir}/gtk-doc/html/webkitgtk +%{_datadir}/gtk-doc/html/webkit2gtk +%{_datadir}/gtk-doc/html/webkitdomgtk + +%changelog +* Wed Oct 22 2014 Tomas Popela - 2.4.7-1 +- Update to 2.4.7 + +* Tue Oct 21 2014 Tomas Popela - 2.4.6-2 +- Disable the SSLv3 to address the POODLE vulnerability + +* Thu Oct 02 2014 Kalev Lember - 2.4.6-1 +- Update to 2.4.6 + +* Mon May 12 2014 Kalev Lember - 2.4.2-1 +- Update to 2.4.2 + +* Thu May 08 2014 Richard Hughes - 2.4.1-2 +- Update to 2.4.1 + +* Wed Dec 4 2013 Tomas Popela - 2.2.3-1 +- Update to 2.2.3 + +* Thu Nov 28 2013 Tomas Popela - 2.2.2-2 +- Fix for RH bug #1035764 - Crashes with certain Google Drive documents + +* Mon Nov 11 2013 Tomas Popela - 2.2.2-1 +- Update to 2.2.2 + +* Fri Oct 18 2013 Tomas Popela - 2.2.1-1 +- Update to 2.2.1 + +* Fri Sep 27 2013 Kalev Lember - 2.2.0-1 +- Update to 2.2.0 + +* Wed Sep 18 2013 Kalev Lember - 2.1.92-1 +- Update to 2.1.92 + +* Thu Sep 12 2013 Dan Horák - 2.1.91-2 +- rediff the ppc32 patch, it failed to apply on s390 + +* Wed Sep 11 2013 Kalev Lember - 2.1.91-1 +- Update to 2.1.91 + +* Fri Aug 30 2013 Karsten Hopp 2.1.90.1-2 +- modify ppc32 patch, the macro interpretResolveWithBase got removed + +* Fri Aug 30 2013 Kalev Lember - 2.1.90.1-1 +- Update to 2.1.90.1 + +* Wed Aug 28 2013 Kalev Lember - 2.1.90-1 +- Update to 2.1.90 +- Add missing at-spi2-core-devel build dep + +* Mon Aug 12 2013 Kalev Lember - 2.1.4-1 +- Update to 2.1.4 + +* Sat Aug 10 2013 Kalev Lember - 2.1.3-3 +- Switch to unversioned docdirs (#993890) + +* Sun Aug 04 2013 Fedora Release Engineering - 2.1.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild + +* Tue Jul 9 2013 Tomas Popela - 2.1.3-1 +- Update to 2.1.3 + +* Wed Jun 19 2013 Tomas Popela - 2.1.2-1 +- Update to 2.1.2 + +* Fri Jun 07 2013 Kalev Lember - 2.1.1-3 +- Link with harfbuzz-icu (split into separate library in harfbuzz 0.9.18) + +* Mon Jun 03 2013 Kalev Lember - 2.1.1-2 +- Remove glib-compile-schemas scriptlets: the schemas are no longer installed +- Add ldconfig calls to the libwebkit2gtk subpackage +- Remove rpath from MiniBrowser +- Re-enable full debuginfo (#861452) + +* Mon Jun 3 2013 Tomas Popela - 2.1.1-1 +- Update to 2.1.1 +- Drop unused patches + +* Mon May 13 2013 Tomas Popela - 2.0.2-1 +- Update to 2.0.2 + +* Mon May 6 2013 Matthias Clasen - 2.0.1-2 +- Split libwebkit2gtk off into a subpackage to avoid + pulling this 35M behemoth of a library onto the livecd + needlessly + +* Tue Apr 16 2013 Tomas Popela - 2.0.1-1 +- Update to 2.0.1 + +* Thu Apr 11 2013 Tomas Popela - 2.0.0-3 +- Add fix for broken GObject casting + +* Wed Apr 3 2013 Tomas Popela - 2.0.0-2 +- Apply double2intsPPC32.patch also on s390 + +* Wed Mar 27 2013 Tomas Popela - 2.0.0-1 +- Update to 2.0.0 +- Update BR versions +- Drop unused patches + +* Wed Mar 20 2013 Kalev Lember - 1.11.92-1 +- Update to 1.11.92 + +* Fri Mar 08 2013 Tomas Popela 1.11.91-1 +- Update to 1.11.91 +- Fix for RH bug #915990 - Seed segfaults in JSC::LLInt::CLoop::execute() + +* Mon Feb 25 2013 Tomas Popela 1.11.90-3 +- Fix for not building on ppc32 with JIT disabled + +* Sat Feb 23 2013 Kevin Fenzi 1.11.90-2 +- Add webkit2 MiniBrowser + +* Fri Feb 22 2013 Kalev Lember - 1.11.90-1 +- Update to 1.11.90 + +* Fri Feb 22 2013 Tomas Popela 1.11.5-5 +- Fix for not building on ppc32 with JIT disabled +- BR libatomic (needs gcc >= 4.8.0) for ppc32 + +* Mon Feb 18 2013 Tomas Popela 1.11.5-4 +- Backported fixes for not building with disabled JIT + +* Sat Feb 16 2013 Peter Robinson 1.11.5-3 +- Re-enable JIT on ARM (hopefully the gmail crash is fixed) + +* Thu Feb 14 2013 Tomas Popela 1.11.5-2 +- Add upstream patch for RH bug #908143 - AccessibilityTableRow::parentTable crash + +* Wed Feb 06 2013 Kalev Lember - 1.11.5-1 +- Update to 1.11.5 +- Drop upstreamed patches + +* Wed Jan 30 2013 Mamoru TASAKA - 1.11.4-5 +- Rebuild against new icu again + +* Sat Jan 26 2013 Kalev Lember - 1.11.4-4 +- Rebuilt for icu 50 + +* Fri Jan 25 2013 Kalev Lember - 1.11.4-3 +- Backport a fix for a crash in AccessibilityTableCell::parentTable() + +* Mon Jan 21 2013 Adam Tkac - 1.11.4-2 +- rebuild due to "jpeg8-ABI" feature drop + +* Wed Jan 16 2013 Kalev Lember - 1.11.4-1 +- Update to 1.11.4 +- Remove conditional pango deps; the build now uses harfbuzz directly +- BR libwebp-devel +- Drop upstreamed librt linking patch + +* Tue Dec 18 2012 Dan Horák - 1.11.2-3 +- fix 32-bit non-JIT arches + +* Tue Dec 18 2012 Dan Horák - 1.11.2-2 +- fix build for non-JIT arches + +* Sat Nov 24 2012 Kalev Lember - 1.11.2-1 +- Update to 1.11.2 +- Add a patch to explicitly link with librt + +* Wed Oct 17 2012 Kalev Lember - 1.10.1-1 +- Update to 1.10.1 +- Enable the parallel build +- Drop the upstreamed Geode-compatibility patch + +* Fri Oct 5 2012 Daniel Drake - 1.10.0-2 +- Restore compatibility with AMD Geode processors + +* Mon Sep 24 2012 Kalev Lember - 1.10.0-1 +- Update to 1.10.0 +- Adjust for webkit -> webkitgtk upstream tarball rename + +* Wed Sep 19 2012 Kalev Lember - 1.9.92-2 +- Build with gstreamer1 + +* Wed Sep 19 2012 Kalev Lember - 1.9.92-1 +- Update to 1.9.92 + +* Wed Sep 05 2012 Kalev Lember - 1.9.91-1 +- Update to 1.9.91 + +* Sun Sep 2 2012 Matthias Clasen - 1.9.90-2 +- Rebuild + +* Wed Aug 29 2012 Daniel Drake - 1.9.90-1 +- Update to latest release (#850520) + +* Thu Aug 9 2012 Daniel Drake - 1.9.5-2 +- Add upstream patch to fix build without JIT (#843428) +- Add upstream patch to fix build with latest gcc/bison + +* Wed Jul 18 2012 Kalev Lember - 1.9.5-1 +- Update to 1.9.5 +- Build with -g1 to avoid running into 4 GB ar format limit + +* Wed Jul 11 2012 Ville Skyttä - 1.9.4-3 +- Fix %%post scriptlet dependencies. + +* Wed Jul 04 2012 Dan Horák - 1.9.4-2 +- apply workaround for s390x until #835957 is resolved (static library archive > 4 GB) + +* Thu Jun 28 2012 Kalev Lember - 1.9.4-1 +- Update to 1.9.4 + +* Thu Jun 07 2012 Kalev Lember - 1.9.3-1 +- Update to 1.9.3 +- Build webkit2gtk and BR gtk2-devel for its plugin process + +* Tue May 15 2012 Karsten Hopp 1.8.1-3 +- disable JIT on PPC(64) as the autodetection enables it even if not supported + +* 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 + +* Tue Apr 24 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 + +* Wed Apr 18 2012 Peter Robinson - 1.8.0-3 +- Add upstream patch to fix crash when SSE2 isn't present +- Add upstream patch to flickering when some widgets are drawn + +* Mon Apr 09 2012 Kalev Lember - 1.8.0-2 +- Finish splitting out a -doc subpackage (#808917) + +* Wed Mar 28 2012 Richard Hughes - 1.8.0-1 +- Update to 1.8.0. + +* Sat Mar 24 2012 Dan Horák - 1.7.92-2 +- add ppc to low mem arches +- decrease debuginfo verbosity on s390 to save memory + +* Wed Mar 21 2012 Kalev Lember - 1.7.92-1 +- Update to 1.7.92 +- Don't pass --enable-geolocation to configure; it's now enabled by default + +* Thu Mar 15 2012 Karsten Hopp 1.7.91-2 +- disable jit on ppc(64) + +* Thu Mar 8 2012 Matthias Clasen - 1.7.91-1 +- Update to 1.7.91 + +* Tue Feb 28 2012 Peter Robinson - 1.7.5-3 +- Add ARM to and optimise compile flags for low mem arches + +* Mon Feb 20 2012 Dan Horák - 1.7.5-2 +- don't enable jit on s390(x) + +* Tue Feb 7 2012 Matthias Clasen - 1.7.5-1 +- Update to 1.7.5 + +* Tue Jan 17 2012 Matthias Clasen - 1.7.4-1 +- Update to 1.7.4 + +* Sat Jan 14 2012 Fedora Release Engineering - 1.7.3-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild + +* Tue Dec 20 2011 Matthias Clasen - 1.7.3-1 +- Update to 1.7.3 + +* Thu Nov 24 2011 Tomas Bzatek - 1.7.2-1 +- Update to 1.7.2 + +* Mon Nov 7 2011 Matthias Clasen 1.7.1-2 +- Rebuild against new libpng + +* Wed Nov 2 2011 Matthias Clasen 1.7.1-1 +- Update to 1.7.1 + +* Wed Oct 12 2011 Dan Horák 1.6.1-2 +- fix build on s390(x) + +* Wed Sep 28 2011 Ray Strode 1.6.1-1 +- Update to 1.6.1 + +* Fri Sep 09 2011 Caolán McNamara - 1.5.1-2 +- rebuild for icu 4.8.1 + +* Thu Jun 16 2011 Tomas Bzatek - 1.5.1-1 +- Update to 1.5.1 + +* Tue Jun 14 2011 Bastien Nocera 1.4.0-3 +- Rebuild against newer GTK+ + +* Wed May 11 2011 Cosimo Cecchi 1.4.0-2 +- Add a doc package for gtk-doc documentation + +* Tue Apr 26 2011 Matthias Clasen 1.4.0-1 +- Update to 1.4.0 + +* Tue Mar 22 2011 Matthias Clasen 1.3.13-1 +- Update to 1.3.13 + +* Thu Feb 10 2011 Matthias Clasen 1.3.10-3 +- Rebuild against newer gtk + +* Mon Feb 07 2011 Fedora Release Engineering - 1.3.11-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Wed Feb 2 2011 Matthias Clasen 1.3.11-1 +- 1.3.11 + +* Wed Feb 2 2011 Matthias Clasen 1.3.10-2 +- Rebuild against newer gtk + +* Mon Jan 10 2011 Matthias Clasen 1.3.10-1 +- Update to 1.3.10 + +* Sun Jan 9 2011 Matthias Clasen 1.3.9-1 +- Update to 1.3.9 + +* Fri Dec 3 2010 Matthias Clasen 1.3.7-2 +- Rebuild against new gtk + +* Wed Dec 1 2010 Matthias Clasen 1.3.7-1 +- Update to 1.3.7 + +* Thu Nov 11 2010 Matthias Clasen 1.3.6-1 +- Update to 1.3.6 +- Disable the s390 patch again :-( Upstream it, maybe ? + +* Thu Nov 11 2010 Dan Horák - 1.3.5-2 +- Updated and re-enabled the s390 patch + +* Mon Nov 1 2010 Matthias Clasen 1.3.5-1 +- Update to 1.3.5 + +* Wed Sep 29 2010 jkeating - 1.3.4-3 +- Rebuilt for gcc bug 634757 + +* Fri Sep 24 2010 Matthias Clasen 1.3.4-2 +- Enable JIT/patch for execmem +- Move inspector to the main package + +* Thu Sep 23 2010 Matthias Clasen 1.3.4-1 +- Update to 1.3.4 + +* Wed Aug 25 2010 Dan Horák - 1.3.3-4 +- Do not generate debug information to prevent linker memory exhaustion on s390 with its 2 GB address space + +* Wed Jul 21 2010 Dan Horák - 1.3.3-3 +- Fix build on s390(x) + +* Thu Jul 15 2010 Colin Walters - 1.3.3-2 +- Rebuild with new gobject-introspection + +* Fri Jul 9 2010 Matthias Clasen 1.3.2-2 +- Fix conflicting gettext domain with webkitgtk +- Drop the -doc subpackage + +* Thu Jul 1 2010 Matthias Clasen 1.3.2-1 +- Initial packaging