net-libs/webkit-gtk: Remove security vulnerable SLOT=2 and SLOT=3

These slots are years old, unmaintained and vulnerable to hundreds of
bugs with a CVE assigned. Additionally there are some known unfixed
issues building against newer ICU. No interest in continued maintenance
of known hugely security vulnerable versions, thus with no consumers
remaining in main tree, this is going away now. Sorry.
If you need this, please think seriously ten times before you make it
available to yourself via an overlay, or use any software that requires
this security riddled version still.

Closes: https://bugs.gentoo.org/577068
This commit is contained in:
Mart Raudsepp
2018-03-25 22:04:12 +03:00
parent 0bc6fed8a9
commit c99899dde7
15 changed files with 1 additions and 783 deletions

View File

@@ -1,2 +1 @@
DIST webkitgtk-2.18.6.tar.xz 14829316 BLAKE2B 4c0140c17d513f064efe09aaefff434e3cbf2a88691c7916ed393bf9bd25a3cb5a1d4ea8699eb7e0d678d807293b66c4629e46df9088df9b4d122c554b280ead SHA512 375907d4c84e27aaa4b5df9a71424488c1b2ba0cf1d63e107d678c0f55f677996a80e9d9a9d4a412b40d1d0dde77b88464c54246cbafe70751042ec8a7bbe029
DIST webkitgtk-2.4.11.tar.xz 9869100 BLAKE2B 9b1351976dc753025e6aba86a40f97fdf58821a6a7af109140a18adc7a0e1d8c140711b48bceeb3c4c189e7d52f258520623c7d971c46b6f2572c0e1de0d0100 SHA512 2e2cf01a52b8593765a0a3c2d7f0ad306121660019eb402226bd2826c7d4666dab4e91ca6ccbd29abe0ad3993549f256ed1ab88de22e9c8516d5f40a4edd6bfb

View File

@@ -1,10 +0,0 @@
--- a/configure.ac.old 2013-03-02 09:22:53.791750644 +0200
+++ b/configure.ac 2013-03-02 09:24:56.725213764 +0200
@@ -24,6 +24,7 @@
m4_include([Source/autotools/SetupLibtool.m4])
m4_include([Source/autotools/ReadCommandLineArguments.m4])
m4_include([Source/autotools/FindDependencies.m4])
+GTK_DOC_CHECK([1.10])
m4_include([Source/autotools/SetupCompilerFlags.m4])
m4_include([Source/autotools/SetupAutoconfHeader.m4])

View File

@@ -1,67 +0,0 @@
Original from:
http://trac.macports.org/browser/trunk/dports/www/webkit-gtk/files/patch-quartz-WebCore-plugins-gtk-gtkxtbin.c.diff?format=txt
http://trac.macports.org/browser/trunk/dports/www/webkit-gtk/files/patch-quartz-WebCore-plugins-gtk-PluginViewGtk.cpp.diff?format=txt
Adapted for 1.6.1
--- Source/WebCore/plugins/gtk/PluginViewGtk.cpp
+++ Source/WebCore/plugins/gtk/PluginViewGtk.cpp
@@ -70,6 +70,8 @@
#endif
#include <gtk/gtk.h>
+#undef XP_UNIX
+
#if defined(XP_UNIX)
#include "RefPtrCairo.h"
#include "gtk2xtbin.h"
@@ -439,9 +441,9 @@
event->setDefaultHandled();
}
-#if defined(XP_UNIX)
void PluginView::handleFocusInEvent()
{
+#if defined(XP_UNIX)
if (!m_isStarted || m_status != PluginStatusLoadedSuccessfully)
return;
@@ -454,10 +456,12 @@
event.detail = NotifyDetailNone;
dispatchNPEvent(npEvent);
+#endif
}
void PluginView::handleFocusOutEvent()
{
+#if defined(XP_UNIX)
if (!m_isStarted || m_status != PluginStatusLoadedSuccessfully)
return;
@@ -470,8 +474,8 @@
event.detail = NotifyDetailNone;
dispatchNPEvent(npEvent);
-}
#endif
+}
void PluginView::setParent(ScrollView* parent)
{
--- Source/WebCore/plugins/gtk/gtk2xtbin.c
+++ Source/WebCore/plugins/gtk/gtk2xtbin.c
@@ -41,7 +41,7 @@
* The GtkXtBin widget allows for Xt toolkit code to be used
* inside a GTK application.
*/
-
+#if 0
#include "GtkVersioning.h"
#include "xembed.h"
#include "gtk2xtbin.h"
@@ -966,3 +966,4 @@
return;
}
+#endif

View File

@@ -1,20 +0,0 @@
Index: webkitgtk/Source/WTF/wtf/Platform.h
===================================================================
--- webkitgtk.orig/Source/WTF/wtf/Platform.h
+++ webkitgtk/Source/WTF/wtf/Platform.h
@@ -72,6 +72,15 @@
#define WTF_CPU_BIG_ENDIAN 1
#endif
+/* CPU(HPPA) - HP PARISC */
+#if defined(__hppa__)
+#define WTF_CPU_HPPA 1
+#define WTF_CPU_BIG_ENDIAN 1
+#define ENABLE_JIT 0
+#define ENABLE_YARR_JIT 0
+#define ENABLE_ASSEMBLER 0
+#endif
+
/* CPU(IA64) - Itanium / IA-64 */
#if defined(__ia64__)
#define WTF_CPU_IA64 1

View File

@@ -1,12 +0,0 @@
--- a/Source/WTF/wtf/Platform.h 2014-02-25 00:33:16.561606810 +0100
+++ b/Source/WTF/wtf/Platform.h 2014-02-25 00:49:52.895512955 +0100
@@ -79,6 +79,9 @@
#if !defined(__LP64__)
#define WTF_CPU_IA64_32 1
#endif
+#define ENABLE_JIT 0
+#define ENABLE_YARR_JIT 0
+#define ENABLE_ASSEMBLER 0
#endif
/* CPU(MIPS) - MIPS 32-bit */

View File

@@ -1,20 +0,0 @@
Description: Fix wide pointer issues on ia64 (closes: #642750).
Author: Stephan Schreiber <info@fs-driver.org>
Index: webkitgtk/Source/WTF/wtf/Platform.h
===================================================================
--- webkitgtk.orig/Source/WTF/wtf/Platform.h
+++ webkitgtk/Source/WTF/wtf/Platform.h
@@ -705,6 +705,13 @@
#define ENABLE_JIT 1
#endif
+/* FIXME: The fast malloc implementation is broken on Itanium / IA64 because
+ some memory barriers are missing in the thread-unsafe code around the
+ pagemap_cache_ object. */
+#if CPU(IA64) || CPU(IA64_32)
+#define USE_SYSTEM_MALLOC 1
+#endif
+
/* The JIT is enabled by default on all x86, x86-64, ARM & MIPS platforms except Win64. */
#if !defined(ENABLE_JIT) \
&& (CPU(X86) || CPU(X86_64) || CPU(ARM) || CPU(ARM64) || CPU(MIPS)) \

View File

@@ -1,11 +0,0 @@
diff -purN a/Source/WebCore/platform/gtk/RenderThemeGtk2.cpp b/Source/WebCore/platform/gtk/RenderThemeGtk2.cpp
--- a/Source/WebCore/platform/gtk/RenderThemeGtk2.cpp 2016-03-14 08:09:01.000000000 +0100
+++ b/Source/WebCore/platform/gtk/RenderThemeGtk2.cpp 2016-04-10 19:43:00.215345381 +0200
@@ -40,6 +40,7 @@
#include "PaintInfo.h"
#include "PlatformContextCairo.h"
#include "RenderElement.h"
+#include "RenderBox.h"
#include "TextDirection.h"
#include "UserAgentStyleSheets.h"
#include "WidgetRenderingContext.h"

View File

@@ -1,32 +0,0 @@
$OpenBSD: patch-Source_WebKit2_Platform_IPC_Connection_h,v 1.2 2014/07/14 21:13:31 ajacoutot Exp $
https://bugs.webkit.org/show_bug.cgi?id=130837
--- a/Source/WebKit2/Platform/IPC/Connection.h.orig Fri Jul 4 11:06:55 2014
+++ b/Source/WebKit2/Platform/IPC/Connection.h Mon Jul 14 19:31:35 2014
@@ -216,7 +216,11 @@ class Connection : public ThreadSafeRefCounted<Connect
Client* m_client;
bool m_isServer;
+#if CPU(PPC)
+ uint64_t m_syncRequestID;
+#else
std::atomic<uint64_t> m_syncRequestID;
+#endif
bool m_onlySendMessagesAsDispatchWhenWaitingForSyncReplyWhenProcessingSuchAMessage;
bool m_shouldExitOnSyncMessageSendFailure;
$OpenBSD: patch-Source_WebKit2_UIProcess_StatisticsRequest_cpp,v 1.3 2014/03/27 22:03:48 landry Exp $
https://bugs.webkit.org/show_bug.cgi?id=130837
--- a/Source/WebKit2/UIProcess/StatisticsRequest.cpp.orig Thu Mar 27 21:13:49 2014
+++ b/Source/WebKit2/UIProcess/StatisticsRequest.cpp Thu Mar 27 21:14:23 2014
@@ -44,7 +44,11 @@ StatisticsRequest::~StatisticsRequest()
uint64_t StatisticsRequest::addOutstandingRequest()
{
+#if CPU(PPC)
+ static int64_t uniqueRequestID;
+#else
static std::atomic<int64_t> uniqueRequestID;
+#endif
uint64_t requestID = ++uniqueRequestID;
m_outstandingRequests.add(requestID);

View File

@@ -1,30 +0,0 @@
http://bugs.gentoo.org/481688
http://trac.webkit.org/changeset/166490/trunk/Source/WebCore/platform/image-decoders/jpeg/JPEGImageDecoder.cpp
--- a/Source/WebCore/platform/image-decoders/jpeg/JPEGImageDecoder.cpp
+++ b/Source/WebCore/platform/image-decoders/jpeg/JPEGImageDecoder.cpp
@@ -334,5 +334,5 @@
case JPEG_HEADER:
// Read file parameters with jpeg_read_header().
- if (jpeg_read_header(&m_info, true) == JPEG_SUSPENDED)
+ if (jpeg_read_header(&m_info, TRUE) == JPEG_SUSPENDED)
return false; // I/O suspension.
@@ -420,7 +420,7 @@
m_info.dct_method = dctMethod();
m_info.dither_mode = ditherMode();
- m_info.do_fancy_upsampling = doFancyUpsampling();
- m_info.enable_2pass_quant = false;
- m_info.do_block_smoothing = true;
+ m_info.do_fancy_upsampling = doFancyUpsampling() ? TRUE : FALSE;
+ m_info.enable_2pass_quant = FALSE;
+ m_info.do_block_smoothing = TRUE;
// Start decompressor.
@@ -573,5 +573,5 @@
// called, then we have hit the end of the buffer. A return value of false
// indicates that we have no data to supply yet.
- return false;
+ return FALSE;
}

View File

@@ -1,11 +0,0 @@
--- webkitgtk-2.4.6.orig/Source/WebCore/platform/graphics/OpenGLShims.cpp 2014-09-26 11:40:44.000000000 +0400
+++ webkitgtk-2.4.6.orig/Source/WebCore/platform/graphics/OpenGLShims.cpp 2014-10-13 15:38:38.496444600 +0400
@@ -17,7 +17,7 @@
*/
#include "config.h"
-#if USE(3D_GRAPHICS) || defined(QT_OPENGL_SHIMS)
+#if USE(3D_GRAPHICS) || defined(QT_OPENGL_SHIMS) || USE(EGL) || USE(GLX)
#define DISABLE_SHIMS
#include "OpenGLShims.h"

View File

@@ -1,29 +0,0 @@
Fedora patch fixes build failure for gcc-6 (abs/fabs ambifuity)
https://bugs.webkit.org/show_bug.cgi?id=159124#c1
https://bugs.gentoo.org/show_bug.cgi?id=592048
diff -Nur webkitgtk-2.4.9.orig/Source/WebCore/platform/gtk/GtkClickCounter.cpp webkitgtk-2.4.9/Source/WebCore/platform/gtk/GtkClickCounter.cpp
--- webkitgtk-2.4.9.orig/Source/WebCore/platform/gtk/GtkClickCounter.cpp 2015-05-20 03:03:24.000000000 -0600
+++ webkitgtk-2.4.9/Source/WebCore/platform/gtk/GtkClickCounter.cpp 2016-02-07 11:30:42.392686308 -0700
@@ -85,8 +85,8 @@
guint32 eventTime = getEventTime(event);
if ((event->type == GDK_2BUTTON_PRESS || event->type == GDK_3BUTTON_PRESS)
- || ((abs(buttonEvent->x - m_previousClickPoint.x()) < doubleClickDistance)
- && (abs(buttonEvent->y - m_previousClickPoint.y()) < doubleClickDistance)
+ || ((fabs(buttonEvent->x - m_previousClickPoint.x()) < doubleClickDistance)
+ && (fabs(buttonEvent->y - m_previousClickPoint.y()) < doubleClickDistance)
&& (eventTime - m_previousClickTime < static_cast<guint>(doubleClickTime))
&& (buttonEvent->button == m_previousClickButton)))
m_currentClickCount++;
diff -Nur webkitgtk-2.4.9.orig/Source/WebCore/platform/gtk/LocalizedStringsGtk.cpp webkitgtk-2.4.9/Source/WebCore/platform/gtk/LocalizedStringsGtk.cpp
--- webkitgtk-2.4.9.orig/Source/WebCore/platform/gtk/LocalizedStringsGtk.cpp 2015-05-20 03:03:24.000000000 -0600
+++ webkitgtk-2.4.9/Source/WebCore/platform/gtk/LocalizedStringsGtk.cpp 2016-02-07 11:49:36.384691005 -0700
@@ -659,7 +659,7 @@
if (!std::isfinite(time))
return String::fromUTF8(_("indefinite time"));
- int seconds = static_cast<int>(abs(time));
+ int seconds = static_cast<int>(fabs(time));
int days = seconds / (60 * 60 * 24);
int hours = seconds / (60 * 60);
int minutes = (seconds / 60) % 60;

View File

@@ -8,7 +8,6 @@
<use>
<flag name="coverage">Enable code coverage support</flag>
<flag name="egl">Enable EGL support</flag>
<flag name="geoloc">Enable geolocation support through <pkg>app-misc/geoclue</pkg></flag>
<flag name="geolocation">Enable geolocation support through <pkg>app-misc/geoclue</pkg></flag>
<flag name="gles2">Enable GLESv2 support</flag>
<flag name="nsplugin">Enable full nsplugin support (GTK2 plugins)</flag>

View File

@@ -1,275 +0,0 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI="6"
PYTHON_COMPAT=( python2_7 )
USE_RUBY="ruby20 ruby21 ruby22 ruby23"
inherit autotools check-reqs flag-o-matic gnome2 pax-utils python-any-r1 ruby-single toolchain-funcs versionator virtualx
MY_P="webkitgtk-${PV}"
DESCRIPTION="Open source web browser engine"
HOMEPAGE="http://www.webkitgtk.org/"
SRC_URI="http://www.webkitgtk.org/releases/${MY_P}.tar.xz"
LICENSE="LGPL-2+ BSD"
SLOT="3/25" # soname version of libwebkit2gtk-3.0
KEYWORDS="~alpha amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~x86-macos"
IUSE="aqua coverage debug +egl +geolocation gles2 gnome-keyring +gstreamer +introspection +jit +opengl spell wayland +webgl +X"
# bugs 372493, 416331
REQUIRED_USE="
geolocation? ( introspection )
gles2? ( egl )
introspection? ( gstreamer )
webgl? ( ^^ ( gles2 opengl ) )
!webgl? ( ?? ( gles2 opengl ) )
|| ( aqua wayland X )
"
# use sqlite, svg by default
# Aqua support in gtk3 is untested
# gtk2 is needed for plugin process support
# gtk3-3.10 required for wayland
# gtk3-3.20 is needed to ensure we get fixed theming:
# https://bugzilla.gnome.org/show_bug.cgi?id=757503
RDEPEND="
dev-db/sqlite:3=
>=dev-libs/glib-2.36:2
>=dev-libs/icu-3.8.1-r1:=
>=dev-libs/libxml2-2.6:2
>=dev-libs/libxslt-1.1.7
>=media-libs/fontconfig-2.5:1.0
>=media-libs/freetype-2.4.2:2
>=media-libs/harfbuzz-0.9.7:=[icu(+)]
>=media-libs/libpng-1.4:0=
media-libs/libwebp:=
>=net-libs/libsoup-2.42:2.4[introspection?]
virtual/jpeg:0=
>=x11-libs/cairo-1.10:=[X?]
>=x11-libs/gtk+-3.20.0:3[X?,aqua?,introspection?]
>=x11-libs/pango-1.30.0
>=x11-libs/gtk+-2.24.10:2
egl? ( media-libs/mesa[egl] )
geolocation? ( >=app-misc/geoclue-2.1.5:2.0 )
gles2? ( media-libs/mesa[gles2] )
gnome-keyring? ( app-crypt/libsecret )
gstreamer? (
>=media-libs/gstreamer-1.2:1.0
>=media-libs/gst-plugins-base-1.2:1.0 )
introspection? ( >=dev-libs/gobject-introspection-1.32.0:= )
opengl? ( virtual/opengl )
spell? ( >=app-text/enchant-0.22:= )
wayland? ( >=x11-libs/gtk+-3.10:3[wayland] )
webgl? (
x11-libs/cairo[opengl]
x11-libs/libXcomposite
x11-libs/libXdamage )
X? (
x11-libs/libX11
x11-libs/libXrender
x11-libs/libXt )
"
# paxctl needed for bug #407085
# Need real bison, not yacc
DEPEND="${RDEPEND}
${PYTHON_DEPS}
${RUBY_DEPS}
>=dev-lang/perl-5.10
>=app-accessibility/at-spi2-core-2.5.3
>=dev-libs/atk-2.8.0
>=dev-util/gtk-doc-am-1.10
>=dev-util/gperf-3.0.1
>=sys-devel/bison-2.4.3
>=sys-devel/flex-2.5.34
|| ( >=sys-devel/gcc-4.7 >=sys-devel/clang-3.3 )
sys-devel/gettext
>=sys-devel/make-3.82-r4
virtual/pkgconfig
geolocation? ( dev-util/gdbus-codegen )
introspection? ( jit? ( sys-apps/paxctl ) )
test? (
dev-lang/python:2.7
dev-python/pygobject:3[python_targets_python2_7]
x11-themes/hicolor-icon-theme
jit? ( sys-apps/paxctl ) )
"
S="${WORKDIR}/${MY_P}"
CHECKREQS_DISK_BUILD="18G" # and even this might not be enough, bug #417307
pkg_pretend() {
if [[ ${MERGE_TYPE} != "binary" ]] && is-flagq "-g*" && ! is-flagq "-g*0" ; then
einfo "Checking for sufficient disk space to build ${PN} with debugging CFLAGS"
check-reqs_pkg_pretend
fi
if [[ ${MERGE_TYPE} != "binary" ]] && ! test-flag-CXX -std=c++11; then
die "You need at least GCC 4.7.x or Clang >= 3.3 for C++11-specific compiler flags"
fi
}
pkg_setup() {
# Check whether any of the debugging flags is enabled
if [[ ${MERGE_TYPE} != "binary" ]] && is-flagq "-g*" && ! is-flagq "-g*0" ; then
if is-flagq "-ggdb" && [[ ${WEBKIT_GTK_GGDB} != "yes" ]]; then
replace-flags -ggdb -g
ewarn "Replacing \"-ggdb\" with \"-g\" in your CFLAGS."
ewarn "Building ${PN} with \"-ggdb\" produces binaries which are too"
ewarn "large for current binutils releases (bug #432784) and has very"
ewarn "high temporary build space and memory requirements."
ewarn "If you really want to build ${PN} with \"-ggdb\", add"
ewarn "WEBKIT_GTK_GGDB=yes"
ewarn "to your make.conf file."
fi
einfo "You need to have at least 18GB of temporary build space available"
einfo "to build ${PN} with debugging CFLAGS. Note that it might still"
einfo "not be enough, as the total space requirements depend on the flags"
einfo "(-ggdb vs -g1) and enabled features."
check-reqs_pkg_setup
fi
[[ ${MERGE_TYPE} = "binary" ]] || python-any-r1_pkg_setup
}
src_prepare() {
# intermediate MacPorts hack while upstream bug is not fixed properly
# https://bugs.webkit.org/show_bug.cgi?id=28727
use aqua && eapply "${FILESDIR}"/${PN}-1.6.1-darwin-quartz.patch
# Leave optimization level to user CFLAGS
# FORTIFY_SOURCE is enabled by default in Gentoo
sed -e 's/-O[012]//g' \
-e 's/-D_FORTIFY_SOURCE=2//g' \
-i Source/autotools/SetupCompilerFlags.m4 || die
# bug #459978, upstream bug #113397
eapply "${FILESDIR}"/${PN}-1.11.90-gtk-docize-fix.patch
# Debian patches to fix support for some arches
# https://bugs.webkit.org/show_bug.cgi?id=129540
eapply "${FILESDIR}"/${PN}-2.2.5-{hppa,ia64}-platform.patch
# https://bugs.webkit.org/show_bug.cgi?id=129542
eapply "${FILESDIR}"/${PN}-2.4.1-ia64-malloc.patch
# Fix building on ppc (from OpenBSD, only needed on slot 3)
# https://bugs.webkit.org/show_bug.cgi?id=130837
eapply "${FILESDIR}"/${PN}-2.4.4-atomic-ppc.patch
# Fix build with recent libjpeg, bug #481688
# https://bugs.webkit.org/show_bug.cgi?id=122412
eapply "${FILESDIR}"/${PN}-2.4.4-jpeg-9a.patch
# Fix building with --disable-webgl, bug #500966
# https://bugs.webkit.org/show_bug.cgi?id=131267
eapply "${FILESDIR}"/${PN}-2.4.7-disable-webgl.patch
# https://bugs.webkit.org/show_bug.cgi?id=156510
eapply "${FILESDIR}"/${PN}-2.4.11-video-web-audio.patch
# https://bugs.webkit.org/show_bug.cgi?id=159124#c1
eapply "${FILESDIR}"/${PN}-2.4.9-gcc-6.patch
AT_M4DIR=Source/autotools eautoreconf
gnome2_src_prepare
}
src_configure() {
# Respect CC, otherwise fails on prefix #395875
tc-export CC
# Arches without JIT support also need this to really disable it in all places
use jit || append-cppflags -DENABLE_JIT=0 -DENABLE_YARR_JIT=0 -DENABLE_ASSEMBLER=0
# It does not compile on alpha without this in LDFLAGS
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=648761
use alpha && append-ldflags "-Wl,--no-relax"
# Sigbuses on SPARC with mcpu and co., bug #???
use sparc && filter-flags "-mvis"
# https://bugs.webkit.org/show_bug.cgi?id=42070 , #301634
use ppc64 && append-flags "-mminimal-toc"
# Try to use less memory, bug #469942 (see Fedora .spec for reference)
# --no-keep-memory doesn't work on ia64, bug #502492
if ! use ia64; then
append-ldflags "-Wl,--no-keep-memory"
fi
if ! $(tc-getLD) --version | grep -q "GNU gold"; then
append-ldflags "-Wl,--reduce-memory-overheads"
fi
local ruby_interpreter=""
if has_version "virtual/rubygems[ruby_targets_ruby23]"; then
ruby_interpreter="RUBY=$(type -P ruby23)"
elif has_version "virtual/rubygems[ruby_targets_ruby22]"; then
ruby_interpreter="RUBY=$(type -P ruby22)"
elif has_version "virtual/rubygems[ruby_targets_ruby21]"; then
ruby_interpreter="RUBY=$(type -P ruby21)"
else
ruby_interpreter="RUBY=$(type -P ruby20)"
fi
# TODO: Check Web Audio support
# should somehow let user select between them?
#
# * Aqua support in gtk3 is untested
# * dependency-tracking is required so parallel builds won't fail
gnome2_src_configure \
$(use_enable aqua quartz-target) \
$(use_enable coverage) \
$(use_enable debug) \
$(use_enable egl) \
$(use_enable geolocation) \
$(use_enable gles2) \
$(use_enable gnome-keyring credential_storage) \
$(use_enable gstreamer video) \
$(use_enable gstreamer web-audio) \
$(use_enable introspection) \
$(use_enable jit) \
$(use_enable opengl glx) \
$(use_enable spell spellcheck) \
$(use_enable webgl) \
$(use_enable webgl accelerated-compositing) \
$(use_enable wayland wayland-target) \
$(use_enable X x11-target) \
--with-gtk=3.0 \
--enable-dependency-tracking \
--disable-gtk-doc \
${ruby_interpreter}
}
src_test() {
# Tests expect an out-of-source build in WebKitBuild
ln -s . WebKitBuild || die "ln failed"
# Prevents test failures on PaX systems
use jit && pax-mark m $(list-paxables Programs/*[Tt]ests/*) # Programs/unittests/.libs/test*
# Tests need virtualx, bug #294691, bug #310695
# Parallel tests sometimes fail
virtx emake -j1 check
}
src_install() {
DOCS="ChangeLog NEWS" # other ChangeLog files handled by src_install
# https://bugs.webkit.org/show_bug.cgi?id=129242
MAKEOPTS="${MAKEOPTS} -j1" gnome2_src_install
newdoc Source/WebKit/gtk/ChangeLog ChangeLog.gtk
newdoc Source/JavaScriptCore/ChangeLog ChangeLog.JavaScriptCore
newdoc Source/WebCore/ChangeLog ChangeLog.WebCore
# Prevents crashes on PaX systems, bug #522808
use jit && pax-mark m "${ED}usr/bin/jsc-3" "${ED}usr/libexec/WebKitWebProcess"
pax-mark m "${ED}usr/libexec/WebKitPluginProcess"
}

View File

@@ -1,262 +0,0 @@
# Copyright 1999-2017 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
EAPI="6"
PYTHON_COMPAT=( python2_7 )
USE_RUBY="ruby20 ruby21 ruby22 ruby23"
inherit autotools check-reqs flag-o-matic gnome2 pax-utils python-any-r1 ruby-single toolchain-funcs versionator virtualx
MY_P="webkitgtk-${PV}"
DESCRIPTION="Open source web browser engine"
HOMEPAGE="http://www.webkitgtk.org/"
SRC_URI="http://www.webkitgtk.org/releases/${MY_P}.tar.xz"
LICENSE="LGPL-2+ BSD"
SLOT="2" # no usable subslot
KEYWORDS="~alpha amd64 ~arm ~ia64 ~mips ~ppc ~ppc64 ~sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~x86-macos"
IUSE="aqua coverage debug +egl +geoloc gles2 gnome-keyring +gstreamer +introspection +jit +opengl spell +webgl +X"
# bugs 372493, 416331
REQUIRED_USE="
geoloc? ( introspection )
gles2? ( egl )
introspection? ( gstreamer )
webgl? ( ^^ ( gles2 opengl ) )
!webgl? ( ?? ( gles2 opengl ) )
|| ( aqua X )
"
# use sqlite, svg by default
RDEPEND="
dev-db/sqlite:3=
>=dev-libs/glib-2.36:2
>=dev-libs/icu-3.8.1-r1:=
>=dev-libs/libxml2-2.6:2
>=dev-libs/libxslt-1.1.7
>=media-libs/fontconfig-2.5:1.0
>=media-libs/freetype-2.4.2:2
>=media-libs/harfbuzz-0.9.7:=[icu(+)]
>=media-libs/libpng-1.4:0=
media-libs/libwebp:=
>=net-libs/libsoup-2.42:2.4[introspection?]
virtual/jpeg:0=
>=x11-libs/cairo-1.10:=[X]
>=x11-libs/gtk+-2.24.10:2[aqua?,introspection?]
x11-libs/libXrender
x11-libs/libXt
>=x11-libs/pango-1.30.0
egl? ( media-libs/mesa[egl] )
geoloc? ( >=app-misc/geoclue-2.1.5:2.0 )
gles2? ( media-libs/mesa[gles2] )
gnome-keyring? ( app-crypt/libsecret )
gstreamer? (
>=media-libs/gstreamer-1.2:1.0
>=media-libs/gst-plugins-base-1.2:1.0 )
introspection? ( >=dev-libs/gobject-introspection-1.32.0:= )
opengl? ( virtual/opengl )
spell? ( >=app-text/enchant-0.22:= )
webgl? (
x11-libs/cairo[opengl]
x11-libs/libXcomposite
x11-libs/libXdamage )
"
# paxctl needed for bug #407085
# Need real bison, not yacc
DEPEND="${RDEPEND}
${PYTHON_DEPS}
${RUBY_DEPS}
>=dev-lang/perl-5.10
>=dev-libs/atk-2.8.0
>=dev-util/gtk-doc-am-1.10
>=dev-util/gperf-3.0.1
>=sys-devel/bison-2.4.3
>=sys-devel/flex-2.5.34
|| ( >=sys-devel/gcc-4.7 >=sys-devel/clang-3.3 )
sys-devel/gettext
>=sys-devel/make-3.82-r4
virtual/pkgconfig
geoloc? ( dev-util/gdbus-codegen )
introspection? ( jit? ( sys-apps/paxctl ) )
test? (
dev-lang/python:2.7
dev-python/pygobject:3[python_targets_python2_7]
x11-themes/hicolor-icon-theme
jit? ( sys-apps/paxctl ) )
"
S="${WORKDIR}/${MY_P}"
CHECKREQS_DISK_BUILD="18G" # and even this might not be enough, bug #417307
pkg_pretend() {
if [[ ${MERGE_TYPE} != "binary" ]] && is-flagq "-g*" && ! is-flagq "-g*0" ; then
einfo "Checking for sufficient disk space to build ${PN} with debugging CFLAGS"
check-reqs_pkg_pretend
fi
if [[ ${MERGE_TYPE} != "binary" ]] && ! test-flag-CXX -std=c++11; then
die "You need at least GCC 4.7.x or Clang >= 3.3 for C++11-specific compiler flags"
fi
}
pkg_setup() {
# Check whether any of the debugging flags is enabled
if [[ ${MERGE_TYPE} != "binary" ]] && is-flagq "-g*" && ! is-flagq "-g*0" ; then
if is-flagq "-ggdb" && [[ ${WEBKIT_GTK_GGDB} != "yes" ]]; then
replace-flags -ggdb -g
ewarn "Replacing \"-ggdb\" with \"-g\" in your CFLAGS."
ewarn "Building ${PN} with \"-ggdb\" produces binaries which are too"
ewarn "large for current binutils releases (bug #432784) and has very"
ewarn "high temporary build space and memory requirements."
ewarn "If you really want to build ${PN} with \"-ggdb\", add"
ewarn "WEBKIT_GTK_GGDB=yes"
ewarn "to your make.conf file."
fi
einfo "You need to have at least 18GB of temporary build space available"
einfo "to build ${PN} with debugging CFLAGS. Note that it might still"
einfo "not be enough, as the total space requirements depend on the flags"
einfo "(-ggdb vs -g1) and enabled features."
check-reqs_pkg_setup
fi
[[ ${MERGE_TYPE} = "binary" ]] || python-any-r1_pkg_setup
}
src_prepare() {
# intermediate MacPorts hack while upstream bug is not fixed properly
# https://bugs.webkit.org/show_bug.cgi?id=28727
use aqua && eapply "${FILESDIR}"/${PN}-1.6.1-darwin-quartz.patch
# Leave optimization level to user CFLAGS
# FORTIFY_SOURCE is enabled by default in Gentoo
sed -e 's/-O[012]//g' \
-e 's/-D_FORTIFY_SOURCE=2//g' \
-i Source/autotools/SetupCompilerFlags.m4 || die
# bug #459978, upstream bug #113397
eapply "${FILESDIR}"/${PN}-1.11.90-gtk-docize-fix.patch
# Debian patches to fix support for some arches
# https://bugs.webkit.org/show_bug.cgi?id=129540
eapply "${FILESDIR}"/${PN}-2.2.5-{hppa,ia64}-platform.patch
# https://bugs.webkit.org/show_bug.cgi?id=129542
eapply "${FILESDIR}"/${PN}-2.4.1-ia64-malloc.patch
# Fix build with recent libjpeg, bug #481688
# https://bugs.webkit.org/show_bug.cgi?id=122412
eapply "${FILESDIR}"/${PN}-2.4.4-jpeg-9a.patch
# Fix building with --disable-webgl, bug #500966
# https://bugs.webkit.org/show_bug.cgi?id=131267
eapply "${FILESDIR}"/${PN}-2.4.7-disable-webgl.patch
# https://bugs.webkit.org/show_bug.cgi?id=156510
eapply "${FILESDIR}"/${PN}-2.4.11-video-web-audio.patch
# https://bugs.webkit.org/show_bug.cgi?id=159124#c1
eapply "${FILESDIR}"/${PN}-2.4.9-gcc-6.patch
AT_M4DIR=Source/autotools eautoreconf
gnome2_src_prepare
}
src_configure() {
# Respect CC, otherwise fails on prefix #395875
tc-export CC
# Arches without JIT support also need this to really disable it in all places
use jit || append-cppflags -DENABLE_JIT=0 -DENABLE_YARR_JIT=0 -DENABLE_ASSEMBLER=0
# It does not compile on alpha without this in LDFLAGS
# https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=648761
use alpha && append-ldflags "-Wl,--no-relax"
# Sigbuses on SPARC with mcpu and co., bug #???
use sparc && filter-flags "-mvis"
# https://bugs.webkit.org/show_bug.cgi?id=42070 , #301634
use ppc64 && append-flags "-mminimal-toc"
# Try to use less memory, bug #469942 (see Fedora .spec for reference)
# --no-keep-memory doesn't work on ia64, bug #502492
if ! use ia64; then
append-ldflags "-Wl,--no-keep-memory"
fi
if ! $(tc-getLD) --version | grep -q "GNU gold"; then
append-ldflags "-Wl,--reduce-memory-overheads"
fi
local ruby_interpreter=""
if has_version "virtual/rubygems[ruby_targets_ruby23]"; then
ruby_interpreter="RUBY=$(type -P ruby23)"
elif has_version "virtual/rubygems[ruby_targets_ruby22]"; then
ruby_interpreter="RUBY=$(type -P ruby22)"
elif has_version "virtual/rubygems[ruby_targets_ruby21]"; then
ruby_interpreter="RUBY=$(type -P ruby21)"
else
ruby_interpreter="RUBY=$(type -P ruby20)"
fi
# TODO: Check Web Audio support
# should somehow let user select between them?
#
# * dependency-tracking is required so parallel builds won't fail
gnome2_src_configure \
$(use_enable aqua quartz-target) \
$(use_enable coverage) \
$(use_enable debug) \
$(use_enable egl) \
$(use_enable geoloc geolocation) \
$(use_enable gles2) \
$(use_enable gnome-keyring credential_storage) \
$(use_enable gstreamer video) \
$(use_enable gstreamer web-audio) \
$(use_enable introspection) \
$(use_enable jit) \
$(use_enable opengl glx) \
$(use_enable spell spellcheck) \
$(use_enable webgl) \
$(use_enable webgl accelerated-compositing) \
$(use_enable X x11-target) \
--with-gtk=2.0 \
--disable-webkit2 \
--enable-dependency-tracking \
--disable-gtk-doc \
${ruby_interpreter}
}
src_test() {
# Tests expect an out-of-source build in WebKitBuild
ln -s . WebKitBuild || die "ln failed"
# Prevents test failures on PaX systems
use jit && pax-mark m $(list-paxables Programs/*[Tt]ests/*) # Programs/unittests/.libs/test*
# Tests need virtualx, bug #294691, bug #310695
# Parallel tests sometimes fail
virtx emake -j1 check
}
src_install() {
DOCS="ChangeLog NEWS" # other ChangeLog files handled by src_install
# https://bugs.webkit.org/show_bug.cgi?id=129242
MAKEOPTS="${MAKEOPTS} -j1" gnome2_src_install
newdoc Source/WebKit/gtk/ChangeLog ChangeLog.gtk
newdoc Source/JavaScriptCore/ChangeLog ChangeLog.JavaScriptCore
newdoc Source/WebCore/ChangeLog ChangeLog.WebCore
# Prevents crashes on PaX systems
use jit && pax-mark m "${ED}usr/bin/jsc-1"
# File collisions with slot 3
# bug #402699, https://bugs.webkit.org/show_bug.cgi?id=78134
rm -rf "${ED}usr/share/gtk-doc" || die
}

View File

@@ -643,9 +643,8 @@ sys-cluster/ganglia-web
# Old net-libs/webkit-gtk SLOTs have hundreds of known security issues.
# Use the security safe net-libs webkit-gtk SLOT=4 instead via
# libraries and applications ported to gtk3 and webkit2gtk API.
# Masked for removal in 30 days. Bug #577068.
# Please keep this package.mask entry until at least 25th May 2018 for
# extra notification of the security vulnerabilities.
# extra notification of the security vulnerabilities. Bug #577068.
net-libs/webkit-gtk:2
net-libs/webkit-gtk:3