Gentoo Archives: gentoo-commits

From: Alexandre Restovtsev <tetromino@×××××.com>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] proj/gnome:master commit in: net-libs/webkit-gtk/files/, net-libs/webkit-gtk/
Date: Fri, 06 Apr 2012 02:36:24
Message-Id: 1333679739.843751634fc300555c18e04451931d5018c69fc3.tetromino@gentoo
1 commit: 843751634fc300555c18e04451931d5018c69fc3
2 Author: Alexandre Rostovtsev <tetromino <AT> gentoo <DOT> org>
3 AuthorDate: Fri Apr 6 02:28:01 2012 +0000
4 Commit: Alexandre Restovtsev <tetromino <AT> gmail <DOT> com>
5 CommitDate: Fri Apr 6 02:35:39 2012 +0000
6 URL: http://git.overlays.gentoo.org/gitweb/?p=proj/gnome.git;a=commit;h=84375163
7
8 net-libs/webkit-gtk: 1.7.92 → 1.8.0
9
10 Enable optional webkit2 support, add patch for CVE-2011-3064, add
11 workaround for paludis --disable-dependency-tracking bug (#406117,
12 thanks to Maciej Piechotka).
13
14 ---
15 .../webkit-gtk-1.8.0-svgimagebuffer-clip.patch | 114 ++++++++++++++++++++
16 ...92-r200.ebuild => webkit-gtk-1.8.0-r200.ebuild} | 9 ++-
17 ...92-r300.ebuild => webkit-gtk-1.8.0-r300.ebuild} | 16 +++-
18 3 files changed, 135 insertions(+), 4 deletions(-)
19
20 diff --git a/net-libs/webkit-gtk/files/webkit-gtk-1.8.0-svgimagebuffer-clip.patch b/net-libs/webkit-gtk/files/webkit-gtk-1.8.0-svgimagebuffer-clip.patch
21 new file mode 100644
22 index 0000000..e93059f
23 --- /dev/null
24 +++ b/net-libs/webkit-gtk/files/webkit-gtk-1.8.0-svgimagebuffer-clip.patch
25 @@ -0,0 +1,114 @@
26 +Index: /trunk/Source/WebCore/ChangeLog
27 +===================================================================
28 +--- /trunk/Source/WebCore/ChangeLog (revision 110561)
29 ++++ /trunk/Source/WebCore/ChangeLog (revision 110563)
30 +@@ -1,2 +1,31 @@
31 ++2012-03-13 Stephen Chenney <schenney@××××××××.org>
32 ++
33 ++ Crash in WebCore::GraphicsContext::paintingDisabled
34 ++ https://bugs.webkit.org/show_bug.cgi?id=80669
35 ++
36 ++ Reviewed by Nikolas Zimmermann.
37 ++
38 ++ The SVGImageBufferTools::clipToImageBuffer method deletes the clip
39 ++ image when it thinks it is not needed. However, there are cases when
40 ++ it is in fact still needed, particularly when the clip buffer is
41 ++ coming from higher up in the stack where it may be needed again.
42 ++
43 ++ So this patch adds a flag to only allow deletion of the image buffer
44 ++ if it was created at the most recent call site.
45 ++
46 ++ Tests: svg/custom/circular-clip-path-references-crash-expected.svg
47 ++ svg/custom/circular-clip-path-references-crash.svg
48 ++
49 ++ * rendering/svg/RenderSVGResourceClipper.cpp:
50 ++ (WebCore::RenderSVGResourceClipper::applyClippingToContext):
51 ++ * rendering/svg/RenderSVGResourceGradient.cpp:
52 ++ (WebCore::clipToTextMask):
53 ++ * rendering/svg/RenderSVGResourceMasker.cpp:
54 ++ (WebCore::RenderSVGResourceMasker::applyResource):
55 ++ * rendering/svg/SVGImageBufferTools.cpp:
56 ++ (WebCore::SVGImageBufferTools::clipToImageBuffer):
57 ++ * rendering/svg/SVGImageBufferTools.h:
58 ++ (SVGImageBufferTools):
59 ++
60 + 2012-03-13 Gavin Peters <gavinp@××××××××.org>
61 +
62 +Index: /trunk/Source/WebCore/rendering/svg/SVGImageBufferTools.cpp
63 +===================================================================
64 +--- /trunk/Source/WebCore/rendering/svg/SVGImageBufferTools.cpp (revision 109016)
65 ++++ /trunk/Source/WebCore/rendering/svg/SVGImageBufferTools.cpp (revision 110563)
66 +@@ -122,5 +122,5 @@
67 + }
68 +
69 +-void SVGImageBufferTools::clipToImageBuffer(GraphicsContext* context, const AffineTransform& absoluteTransform, const FloatRect& targetRect, OwnPtr<ImageBuffer>& imageBuffer)
70 ++void SVGImageBufferTools::clipToImageBuffer(GraphicsContext* context, const AffineTransform& absoluteTransform, const FloatRect& targetRect, OwnPtr<ImageBuffer>& imageBuffer, bool safeToClear)
71 + {
72 + ASSERT(context);
73 +@@ -137,5 +137,5 @@
74 + // When nesting resources, with objectBoundingBox as content unit types, there's no use in caching the
75 + // resulting image buffer as the parent resource already caches the result.
76 +- if (!currentContentTransformation().isIdentity())
77 ++ if (safeToClear && !currentContentTransformation().isIdentity())
78 + imageBuffer.clear();
79 + }
80 +Index: /trunk/Source/WebCore/rendering/svg/RenderSVGResourceGradient.cpp
81 +===================================================================
82 +--- /trunk/Source/WebCore/rendering/svg/RenderSVGResourceGradient.cpp (revision 106108)
83 ++++ /trunk/Source/WebCore/rendering/svg/RenderSVGResourceGradient.cpp (revision 110563)
84 +@@ -99,5 +99,5 @@
85 +
86 + targetRect = textRootBlock->repaintRectInLocalCoordinates();
87 +- SVGImageBufferTools::clipToImageBuffer(context, absoluteTransform, targetRect, imageBuffer);
88 ++ SVGImageBufferTools::clipToImageBuffer(context, absoluteTransform, targetRect, imageBuffer, false);
89 +
90 + AffineTransform matrix;
91 +Index: /trunk/Source/WebCore/rendering/svg/RenderSVGResourceMasker.cpp
92 +===================================================================
93 +--- /trunk/Source/WebCore/rendering/svg/RenderSVGResourceMasker.cpp (revision 106108)
94 ++++ /trunk/Source/WebCore/rendering/svg/RenderSVGResourceMasker.cpp (revision 110563)
95 +@@ -87,5 +87,6 @@
96 + ASSERT_UNUSED(resourceMode, resourceMode == ApplyToDefaultMode);
97 +
98 +- if (!m_masker.contains(object))
99 ++ bool missingMaskerData = !m_masker.contains(object);
100 ++ if (missingMaskerData)
101 + m_masker.set(object, new MaskerData);
102 +
103 +@@ -117,5 +118,5 @@
104 + return false;
105 +
106 +- SVGImageBufferTools::clipToImageBuffer(context, absoluteTransform, repaintRect, maskerData->maskImage);
107 ++ SVGImageBufferTools::clipToImageBuffer(context, absoluteTransform, repaintRect, maskerData->maskImage, missingMaskerData);
108 + return true;
109 + }
110 +Index: /trunk/Source/WebCore/rendering/svg/SVGImageBufferTools.h
111 +===================================================================
112 +--- /trunk/Source/WebCore/rendering/svg/SVGImageBufferTools.h (revision 106157)
113 ++++ /trunk/Source/WebCore/rendering/svg/SVGImageBufferTools.h (revision 110563)
114 +@@ -43,5 +43,5 @@
115 +
116 + static void renderSubtreeToImageBuffer(ImageBuffer*, RenderObject*, const AffineTransform&);
117 +- static void clipToImageBuffer(GraphicsContext*, const AffineTransform& absoluteTransform, const FloatRect& targetRect, OwnPtr<ImageBuffer>&);
118 ++ static void clipToImageBuffer(GraphicsContext*, const AffineTransform& absoluteTransform, const FloatRect& targetRect, OwnPtr<ImageBuffer>&, bool safeToClear);
119 +
120 + static void calculateTransformationToOutermostSVGCoordinateSystem(const RenderObject*, AffineTransform& absoluteTransform);
121 +Index: /trunk/Source/WebCore/rendering/svg/RenderSVGResourceClipper.cpp
122 +===================================================================
123 +--- /trunk/Source/WebCore/rendering/svg/RenderSVGResourceClipper.cpp (revision 109097)
124 ++++ /trunk/Source/WebCore/rendering/svg/RenderSVGResourceClipper.cpp (revision 110563)
125 +@@ -156,5 +156,6 @@
126 + const FloatRect& repaintRect, GraphicsContext* context)
127 + {
128 +- if (!m_clipper.contains(object))
129 ++ bool missingClipperData = !m_clipper.contains(object);
130 ++ if (missingClipperData)
131 + m_clipper.set(object, new ClipperData);
132 +
133 +@@ -202,5 +203,5 @@
134 + return false;
135 +
136 +- SVGImageBufferTools::clipToImageBuffer(context, absoluteTransform, repaintRect, clipperData->clipMaskImage);
137 ++ SVGImageBufferTools::clipToImageBuffer(context, absoluteTransform, repaintRect, clipperData->clipMaskImage, missingClipperData);
138 + return true;
139 + }
140
141 diff --git a/net-libs/webkit-gtk/webkit-gtk-1.7.92-r200.ebuild b/net-libs/webkit-gtk/webkit-gtk-1.8.0-r200.ebuild
142 similarity index 94%
143 rename from net-libs/webkit-gtk/webkit-gtk-1.7.92-r200.ebuild
144 rename to net-libs/webkit-gtk/webkit-gtk-1.8.0-r200.ebuild
145 index 2ba8aef..999fe29 100644
146 --- a/net-libs/webkit-gtk/webkit-gtk-1.7.92-r200.ebuild
147 +++ b/net-libs/webkit-gtk/webkit-gtk-1.8.0-r200.ebuild
148 @@ -10,7 +10,7 @@ inherit autotools eutils flag-o-matic gnome2-utils pax-utils python virtualx
149 MY_P="webkit-${PV}"
150 DESCRIPTION="Open source web browser engine"
151 HOMEPAGE="http://www.webkitgtk.org/"
152 -SRC_URI="http://www.webkitgtk.org/${MY_P}.tar.xz"
153 +SRC_URI="http://www.webkitgtk.org/releases/${MY_P}.tar.xz"
154 #SRC_URI="mirror://gentoo/${P}.tar.xz"
155
156 LICENSE="LGPL-2 LGPL-2.1 BSD"
157 @@ -82,6 +82,9 @@ src_prepare() {
158 # TODO: FAILS TO APPLY!
159 #use sparc && epatch "${FILESDIR}"/${PN}-1.2.3-fix-pool-sparc.patch
160
161 + # CVE-2011-3064, https://bugzilla.redhat.com/show_bug.cgi?id=807596
162 + epatch "${FILESDIR}/${P}-svgimagebuffer-clip.patch"
163 +
164 # intermediate MacPorts hack while upstream bug is not fixed properly
165 # https://bugs.webkit.org/show_bug.cgi?id=28727
166 use aqua && epatch "${FILESDIR}"/${PN}-1.6.1-darwin-quartz.patch
167 @@ -127,6 +130,10 @@ src_prepare() {
168
169 # Prevent maintainer mode from being triggered during make
170 AT_M4DIR=Source/autotools eautoreconf
171 +
172 + # Ugly hack of a workaround for paludis braindamage, bug #406117
173 + # http://paludis.exherbo.org/trac/ticket/1230
174 + sed -e '/ --\(en\|dis\)able-dependency-tracking/ d' -i configure || die
175 }
176
177 src_configure() {
178
179 diff --git a/net-libs/webkit-gtk/webkit-gtk-1.7.92-r300.ebuild b/net-libs/webkit-gtk/webkit-gtk-1.8.0-r300.ebuild
180 similarity index 92%
181 rename from net-libs/webkit-gtk/webkit-gtk-1.7.92-r300.ebuild
182 rename to net-libs/webkit-gtk/webkit-gtk-1.8.0-r300.ebuild
183 index 743f185..7573a17 100644
184 --- a/net-libs/webkit-gtk/webkit-gtk-1.7.92-r300.ebuild
185 +++ b/net-libs/webkit-gtk/webkit-gtk-1.8.0-r300.ebuild
186 @@ -10,14 +10,14 @@ inherit autotools eutils flag-o-matic gnome2-utils pax-utils python virtualx
187 MY_P="webkit-${PV}"
188 DESCRIPTION="Open source web browser engine"
189 HOMEPAGE="http://www.webkitgtk.org/"
190 -SRC_URI="http://www.webkitgtk.org/${MY_P}.tar.xz"
191 +SRC_URI="http://www.webkitgtk.org/releases/${MY_P}.tar.xz"
192 #SRC_URI="mirror://gentoo/${P}.tar.xz"
193
194 LICENSE="LGPL-2 LGPL-2.1 BSD"
195 SLOT="3"
196 KEYWORDS="~alpha ~amd64 ~arm ~ia64 ~ppc ~ppc64 ~sparc ~x86 ~x86-fbsd ~x86-freebsd ~amd64-linux ~ia64-linux ~x86-linux ~x86-macos"
197 # geoclue
198 -IUSE="aqua coverage debug doc +geoloc +gstreamer +introspection +jit spell +webgl"
199 +IUSE="aqua coverage debug doc +geoloc +gstreamer +introspection +jit spell +webgl webkit2"
200 # bug 372493
201 REQUIRED_USE="introspection? ( gstreamer )"
202
203 @@ -50,6 +50,8 @@ RDEPEND="
204 spell? ( >=app-text/enchant-0.22 )
205
206 webgl? ( virtual/opengl )
207 +
208 + webkit2? ( >=x11-libs/gtk+-2.13:2 )
209 "
210 # paxctl needed for bug #407085
211 DEPEND="${RDEPEND}
212 @@ -66,6 +68,7 @@ DEPEND="${RDEPEND}
213 test? (
214 x11-themes/hicolor-icon-theme
215 jit? ( sys-apps/paxctl ) )
216 + webkit2? ( app-accessibility/at-spi2-core )
217 "
218 # Need real bison, not yacc
219
220 @@ -85,6 +88,9 @@ src_prepare() {
221 # TODO: FAILS TO APPLY!
222 #use sparc && epatch "${FILESDIR}"/${PN}-1.2.3-fix-pool-sparc.patch
223
224 + # CVE-2011-3064, https://bugzilla.redhat.com/show_bug.cgi?id=807596
225 + epatch "${FILESDIR}/${P}-svgimagebuffer-clip.patch"
226 +
227 # intermediate MacPorts hack while upstream bug is not fixed properly
228 # https://bugs.webkit.org/show_bug.cgi?id=28727
229 use aqua && epatch "${FILESDIR}"/${PN}-1.6.1-darwin-quartz.patch
230 @@ -130,6 +136,10 @@ src_prepare() {
231
232 # Prevent maintainer mode from being triggered during make
233 AT_M4DIR=Source/autotools eautoreconf
234 +
235 + # Ugly hack of a workaround for paludis braindamage, bug #406117
236 + # http://paludis.exherbo.org/trac/ticket/1230
237 + sed -e '/ --\(en\|dis\)able-dependency-tracking/ d' -i configure || die
238 }
239
240 src_configure() {
241 @@ -157,9 +167,9 @@ src_configure() {
242 $(use_enable gstreamer video)
243 $(use_enable jit)
244 $(use_enable webgl)
245 + $(use_enable webkit2)
246 --enable-web-sockets
247 --with-gtk=3.0
248 - --disable-webkit2
249 --enable-dependency-tracking
250 $(use aqua && echo "--with-font-backend=pango --with-target=quartz")"
251 # Aqua support in gtk3 is untested