[arch-commits] Commit in cairo/trunk (3 files)

andyrtr at archlinux.org andyrtr at archlinux.org
Fri Oct 5 19:55:57 UTC 2012


    Date: Friday, October 5, 2012 @ 15:55:57
  Author: andyrtr
Revision: 168099

upgpkg: cairo 1.12.4-1

upstream update 1.12.4

Modified:
  cairo/trunk/PKGBUILD
Deleted:
  cairo/trunk/cairo-1.12.2-ignore-charset-for-non-cid-fonts.patch
  cairo/trunk/cairo-1.12.2-reduce-broken-stopped-edge-continuation.patch

------------------------------------------------------------+
 PKGBUILD                                                   |   39 -
 cairo-1.12.2-ignore-charset-for-non-cid-fonts.patch        |   37 -
 cairo-1.12.2-reduce-broken-stopped-edge-continuation.patch |  275 -----------
 3 files changed, 10 insertions(+), 341 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2012-10-05 19:23:53 UTC (rev 168098)
+++ PKGBUILD	2012-10-05 19:55:57 UTC (rev 168099)
@@ -3,44 +3,27 @@
 # Contributor: Brice Carpentier <brice at daknet.org>
 
 pkgname=cairo
-#_gitdate=20120426
-#_gitver=957a9cc619965178a8927d114fe852034fc2385c
-pkgver=1.12.2
-pkgrel=3
+pkgver=1.12.4
+pkgrel=1
 pkgdesc="Cairo vector graphics library"
 arch=(i686 x86_64)
 license=('LGPL' 'MPL')
 url="http://cairographics.org/"
-depends=('libpng' 'libxrender' 'fontconfig' 'pixman' 'glib2' 'sh')
+depends=('libpng' 'libxrender' 'libxext' 'fontconfig' 'pixman' 'glib2' 'sh')
 makedepends=('librsvg' 'poppler-glib' 'libspectre' 'gtk-doc') # 'libdrm')
 optdepends=('xcb-util: for XCB backend') # really needed?
 provides=('cairo-xcb')
 replaces=('cairo-xcb')
 options=('!libtool')
 source=(http://cairographics.org/releases/$pkgname-$pkgver.tar.xz
-        #$pkgname-$pkgver.tar.gz::http://cgit.freedesktop.org/cairo/snapshot/cairo-${_gitver}.tar.gz 
-        cairo-1.10.0-buggy_gradients.patch
-        cairo-1.12.2-reduce-broken-stopped-edge-continuation.patch
-        cairo-1.12.2-ignore-charset-for-non-cid-fonts.patch
-        #git_fixes.patch 
-)
-md5sums=('87649eb75789739d517c743e94879e51'
-         '9b323790dab003e228c6955633cb888e'
-         '75ec73746cfaefcbed0e9b2a9f76bf00'
-         '56f64466fd70ead732b00691464144f2')
-
+        cairo-1.10.0-buggy_gradients.patch)
+md5sums=('a64bb8774a1e476e5cdd69e635794dfb'
+         '9b323790dab003e228c6955633cb888e')
 build() {
   cd "$srcdir/$pkgname-$pkgver"
-  #cd ${srcdir}/${pkgname}-${_gitver}
   patch -Np1 -i ${srcdir}/cairo-1.10.0-buggy_gradients.patch
-  # https://bugs.freedesktop.org/show_bug.cgi?id=50852
-  patch -Np1 -i ${srcdir}/cairo-1.12.2-reduce-broken-stopped-edge-continuation.patch
-  # https://bugs.freedesktop.org/show_bug.cgi?id=51443
-  patch -Np1 -i ${srcdir}/cairo-1.12.2-ignore-charset-for-non-cid-fonts.patch
-  # status is 2012-04-26 last commit: image: Fix typo in _blit_spans()
-  #patch -Np1 -i ${srcdir}/git_fixes.patch
-  autoreconf -vfi
-  #./autogen.sh --prefix=/usr \
+
+#  autoreconf -vfi
   ./configure --prefix=/usr \
 	--sysconfdir=/etc \
 	--localstatedir=/var \
@@ -53,13 +36,11 @@
 }
 
 #check() {
-#  #cd "$srcdir/$pkgname-$pkgver"
-#  cd $srcdir/$pkgname-${_gitver}
-#  make -k check || /bin/true # 165 Passed, 316 Failed [3 crashed, 10 expected], 23 Skipped
+#  cd "$srcdir/$pkgname-$pkgver"
+#  make -k check || /bin/true # 134 Passed, 355 Failed [5 crashed, 11 expected], 26 Skipped
 #}
 
 package() {
   cd "$srcdir/$pkgname-$pkgver"
-  #cd $srcdir/$pkgname-${_gitver}
   make DESTDIR="$pkgdir" install
 }

Deleted: cairo-1.12.2-ignore-charset-for-non-cid-fonts.patch
===================================================================
--- cairo-1.12.2-ignore-charset-for-non-cid-fonts.patch	2012-10-05 19:23:53 UTC (rev 168098)
+++ cairo-1.12.2-ignore-charset-for-non-cid-fonts.patch	2012-10-05 19:55:57 UTC (rev 168099)
@@ -1,37 +0,0 @@
-From 2f1d6b27e8b78c77346a5b603114b54400e57d83 Mon Sep 17 00:00:00 2001
-From: Adrian Johnson <ajohnson at redneon.com>
-Date: Thu, 07 Jun 2012 09:48:52 +0000
-Subject: cff-subsetting: Ignore charset for non cid fonts
-
-Fixes crash in https://bugzilla.gnome.org/show_bug.cgi?id=677422
----
-diff --git a/src/cairo-cff-subset.c b/src/cairo-cff-subset.c
-index db6fdf7..6f0cd66 100644
---- a/src/cairo-cff-subset.c
-+++ b/src/cairo-cff-subset.c
-@@ -1178,14 +1178,16 @@ cairo_cff_font_read_top_dict (cairo_cff_font_t *font)
-         goto fail;
-     font->num_glyphs = _cairo_array_num_elements (&font->charstrings_index);
- 
--    operand = cff_dict_get_operands (font->top_dict, CHARSET_OP, &size);
--    if (font->is_cid && !operand)
--	return CAIRO_INT_STATUS_UNSUPPORTED;
-+    if (font->is_cid) {
-+	 operand = cff_dict_get_operands (font->top_dict, CHARSET_OP, &size);
-+	 if (!operand)
-+	      return CAIRO_INT_STATUS_UNSUPPORTED;
- 
--    decode_integer (operand, &offset);
--    font->charset = font->data + offset;
--    if (font->charset >= font->data_end)
--	return CAIRO_INT_STATUS_UNSUPPORTED;
-+	 decode_integer (operand, &offset);
-+	 font->charset = font->data + offset;
-+	 if (font->charset >= font->data_end)
-+	      return CAIRO_INT_STATUS_UNSUPPORTED;
-+    }
- 
-     if (!font->is_opentype)
-         cairo_cff_font_read_font_metrics (font, font->top_dict);
---
-cgit v0.9.0.2-2-gbebe

Deleted: cairo-1.12.2-reduce-broken-stopped-edge-continuation.patch
===================================================================
--- cairo-1.12.2-reduce-broken-stopped-edge-continuation.patch	2012-10-05 19:23:53 UTC (rev 168098)
+++ cairo-1.12.2-reduce-broken-stopped-edge-continuation.patch	2012-10-05 19:55:57 UTC (rev 168099)
@@ -1,275 +0,0 @@
-From f228769dfe5a8b5d73c49a41e95e31ed73a77fb3 Mon Sep 17 00:00:00 2001
-From: Chris Wilson <chris at chris-wilson.co.uk>
-Date: Fri, 08 Jun 2012 16:22:41 +0000
-Subject: polygon-reduce: Reduce broken stopped-edge continuation
-
-This is hopefully a lesser used path and the attempted optimisation to
-continue a stopped edge with a colinear stopped edge highly unlikely and
-lost in the noise of the general inefficiency of the routine. As it was
-broken, rather than attempt to rectify the "optimisation" remove it.
-
-Reported-by: Evangelos Foutras <evangelos at foutrelis.com>
-Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=50852
-Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
----
-diff --git a/src/cairo-polygon-reduce.c b/src/cairo-polygon-reduce.c
-index 8758070..ea457fe 100644
---- a/src/cairo-polygon-reduce.c
-+++ b/src/cairo-polygon-reduce.c
-@@ -42,6 +42,8 @@
- #include "cairo-freelist-private.h"
- #include "cairo-combsort-inline.h"
- 
-+#define DEBUG_POLYGON 0
-+
- typedef cairo_point_t cairo_bo_point32_t;
- 
- typedef struct _cairo_bo_intersect_ordinate {
-@@ -114,7 +116,6 @@ typedef struct _cairo_bo_event_queue {
- 
- typedef struct _cairo_bo_sweep_line {
-     cairo_bo_edge_t *head;
--    cairo_bo_edge_t *stopped;
-     int32_t current_y;
-     cairo_bo_edge_t *current_edge;
- } cairo_bo_sweep_line_t;
-@@ -476,8 +477,8 @@ edges_compare_x_for_y (const cairo_bo_edge_t *a,
- static inline int
- _line_equal (const cairo_line_t *a, const cairo_line_t *b)
- {
--    return a->p1.x == b->p1.x && a->p1.y == b->p1.y &&
--           a->p2.x == b->p2.x && a->p2.y == b->p2.y;
-+    return (a->p1.x == b->p1.x && a->p1.y == b->p1.y &&
-+	    a->p2.x == b->p2.x && a->p2.y == b->p2.y);
- }
- 
- static int
-@@ -1024,7 +1025,6 @@ static void
- _cairo_bo_sweep_line_init (cairo_bo_sweep_line_t *sweep_line)
- {
-     sweep_line->head = NULL;
--    sweep_line->stopped = NULL;
-     sweep_line->current_y = INT32_MIN;
-     sweep_line->current_edge = NULL;
- }
-@@ -1139,6 +1139,8 @@ edges_colinear (const cairo_bo_edge_t *a, const cairo_bo_edge_t *b)
-      */
-     if (a->edge.line.p1.y == b->edge.line.p1.y) {
- 	return a->edge.line.p1.x == b->edge.line.p1.x;
-+    } else if (a->edge.line.p2.y == b->edge.line.p2.y) {
-+	return a->edge.line.p2.x == b->edge.line.p2.x;
-     } else if (a->edge.line.p1.y < b->edge.line.p1.y) {
- 	return edge_compare_for_y_against_x (b,
- 					     a->edge.line.p1.y,
-@@ -1205,82 +1207,48 @@ _active_edges_to_polygon (cairo_bo_edge_t		*left,
- 			  cairo_polygon_t	        *polygon)
- {
-     cairo_bo_edge_t *right;
-+    unsigned int mask;
- 
--    if (fill_rule == CAIRO_FILL_RULE_WINDING) {
--	while (left != NULL) {
--	    int in_out = left->edge.dir;
--
--	    right = left->next;
--	    if (left->deferred.right == NULL) {
--		while (right != NULL && right->deferred.right == NULL)
--		    right = right->next;
--
--		if (right != NULL && edges_colinear (left, right)) {
--		    /* continuation on left */
--		    left->deferred = right->deferred;
--		    right->deferred.right = NULL;
--		}
--	    }
--
--	    right = left->next;
--	    while (right != NULL) {
--		if (right->deferred.right != NULL)
--		    _cairo_bo_edge_end (right, top, polygon);
--
--		in_out += right->edge.dir;
--		if (in_out == 0) {
--		    cairo_bo_edge_t *next;
--		    cairo_bool_t skip = FALSE;
--
--		    /* skip co-linear edges */
--		    next = right->next;
--		    if (next != NULL)
--			skip = edges_colinear (right, next);
-+    if (fill_rule == CAIRO_FILL_RULE_WINDING)
-+	mask = ~0;
-+    else
-+	mask = 1;
- 
--		    if (! skip)
--			break;
--		}
-+    while (left != NULL) {
-+	int in_out = left->edge.dir;
- 
-+	right = left->next;
-+	if (left->deferred.right == NULL) {
-+	    while (right != NULL && right->deferred.right == NULL)
- 		right = right->next;
--	    }
--
--	    _cairo_bo_edge_start_or_continue (left, right, top, polygon);
- 
--	    left = right;
--	    if (left != NULL)
--		left = left->next;
-+	    if (right != NULL && edges_colinear (left, right)) {
-+		/* continuation on left */
-+		left->deferred = right->deferred;
-+		right->deferred.right = NULL;
-+	    }
- 	}
--    } else {
--	while (left != NULL) {
--	    int in_out = 0;
- 
--	    right = left->next;
--	    while (right != NULL) {
--		if (right->deferred.right != NULL)
--		    _cairo_bo_edge_end (right, top, polygon);
-+	right = left->next;
-+	while (right != NULL) {
-+	    if (right->deferred.right != NULL)
-+		_cairo_bo_edge_end (right, top, polygon);
- 
--		if ((in_out++ & 1) == 0) {
--		    cairo_bo_edge_t *next;
--		    cairo_bool_t skip = FALSE;
--
--		    /* skip co-linear edges */
--		    next = right->next;
--		    if (next != NULL)
--			skip = edges_colinear (right, next);
--
--		    if (! skip)
--			break;
--		}
--
--		right = right->next;
-+	    in_out += right->edge.dir;
-+	    if ((in_out & mask) == 0) {
-+		/* skip co-linear edges */
-+		if (right->next == NULL || !edges_colinear (right, right->next))
-+		    break;
- 	    }
- 
--	    _cairo_bo_edge_start_or_continue (left, right, top, polygon);
--
--	    left = right;
--	    if (left != NULL)
--		left = left->next;
-+	    right = right->next;
- 	}
-+
-+	_cairo_bo_edge_start_or_continue (left, right, top, polygon);
-+
-+	left = right;
-+	if (left != NULL)
-+	    left = left->next;
-     }
- }
- 
-@@ -1303,12 +1271,6 @@ _cairo_bentley_ottmann_tessellate_bo_edges (cairo_bo_event_t   **start_events,
- 
-     while ((event = _cairo_bo_event_dequeue (&event_queue))) {
- 	if (event->point.y != sweep_line.current_y) {
--	    for (e1 = sweep_line.stopped; e1; e1 = e1->next) {
--		if (e1->deferred.right != NULL)
--		     _cairo_bo_edge_end (e1, e1->edge.bottom, polygon);
--	    }
--	    sweep_line.stopped = NULL;
--
- 	    _active_edges_to_polygon (sweep_line.head,
- 				      sweep_line.current_y,
- 				      fill_rule, polygon);
-@@ -1328,23 +1290,6 @@ _cairo_bentley_ottmann_tessellate_bo_edges (cairo_bo_event_t   **start_events,
- 	    if (unlikely (status))
- 		goto unwind;
- 
--	    /* check to see if this is a continuation of a stopped edge */
--	    /* XXX change to an infinitesimal lengthening rule */
--	    for (left = sweep_line.stopped; left; left = left->next) {
--		if (e1->edge.top <= left->edge.bottom &&
--		    edges_colinear (e1, left))
--		{
--		    e1->deferred = left->deferred;
--		    if (left->prev != NULL)
--			left->prev = left->next;
--		    else
--			sweep_line.stopped = left->next;
--		    if (left->next != NULL)
--			left->next->prev = left->prev;
--		    break;
--		}
--	    }
--
- 	    left = e1->prev;
- 	    right = e1->next;
- 
-@@ -1371,14 +1316,8 @@ _cairo_bentley_ottmann_tessellate_bo_edges (cairo_bo_event_t   **start_events,
- 
- 	    _cairo_bo_sweep_line_delete (&sweep_line, e1);
- 
--	    /* first, check to see if we have a continuation via a fresh edge */
--	    if (e1->deferred.right != NULL) {
--		e1->next = sweep_line.stopped;
--		if (sweep_line.stopped != NULL)
--		    sweep_line.stopped->prev = e1;
--		sweep_line.stopped = e1;
--		e1->prev = NULL;
--	    }
-+	    if (e1->deferred.right != NULL)
-+		_cairo_bo_edge_end (e1, e1->edge.bottom, polygon);
- 
- 	    if (left != NULL && right != NULL) {
- 		status = _cairo_bo_event_queue_insert_if_intersect_below_current_y (&event_queue, left, right);
-@@ -1420,10 +1359,6 @@ _cairo_bentley_ottmann_tessellate_bo_edges (cairo_bo_event_t   **start_events,
- 	}
-     }
- 
--    for (e1 = sweep_line.stopped; e1; e1 = e1->next) {
--	if (e1->deferred.right != NULL)
--	    _cairo_bo_edge_end (e1, e1->edge.bottom, polygon);
--    }
-  unwind:
-     _cairo_bo_event_queue_fini (&event_queue);
- 
-@@ -1447,6 +1382,12 @@ _cairo_polygon_reduce (cairo_polygon_t *polygon,
-     if (unlikely (0 == num_events))
- 	return CAIRO_STATUS_SUCCESS;
- 
-+    if (DEBUG_POLYGON) {
-+	FILE *file = fopen ("reduce_in.txt", "w");
-+	_cairo_debug_print_polygon (file, polygon);
-+	fclose (file);
-+    }
-+
-     events = stack_events;
-     event_ptrs = stack_event_ptrs;
-     if (num_events > ARRAY_LENGTH (stack_events)) {
-@@ -1482,10 +1423,16 @@ _cairo_polygon_reduce (cairo_polygon_t *polygon,
- 							 num_events,
- 							 fill_rule,
- 							 polygon);
--     polygon->num_limits = num_limits;
-+    polygon->num_limits = num_limits;
- 
-     if (events != stack_events)
- 	free (events);
- 
-+    if (DEBUG_POLYGON) {
-+	FILE *file = fopen ("reduce_out.txt", "w");
-+	_cairo_debug_print_polygon (file, polygon);
-+	fclose (file);
-+    }
-+
-     return status;
- }
---
-cgit v0.9.0.2-2-gbebe




More information about the arch-commits mailing list