diff --git a/graphics/cairo/Makefile b/graphics/cairo/Makefile index fc04df84465..b77935cbb34 100644 --- a/graphics/cairo/Makefile +++ b/graphics/cairo/Makefile @@ -1,25 +1,23 @@ -# $OpenBSD: Makefile,v 1.42 2012/09/26 15:04:09 sthen Exp $ +# $OpenBSD: Makefile,v 1.43 2012/11/12 12:29:07 eric Exp $ COMMENT= vector graphics library -DISTNAME= cairo-1.12.2 -SHARED_LIBS+= cairo 12.0 +DISTNAME= cairo-1.12.8 +SHARED_LIBS+= cairo 12.1 SHARED_LIBS+= cairo-gobject 1.0 SHARED_LIBS+= cairo-script-interpreter 1.0 CATEGORIES= graphics DPB_PROPERTIES= parallel EXTRACT_SUFX= .tar.xz -REVISION= 2 HOMEPAGE= http://cairographics.org/ MAINTAINER= Eric Faurot -WANTLIB= GL X11 Xau Xdamage Xdmcp Xext Xfixes Xrender \ - Xxf86vm c drm expat ffi fontconfig freetype \ - glib-2.0 gobject-2.0 gthread-2.0 m pcre pixman-1 \ - png pthread-stubs pthread stdc++ xcb xcb-render \ - xcb-shm z +WANTLIB= GL X11 Xau Xdamage Xdmcp Xext Xfixes Xrender Xxf86vm \ + drm expat ffi fontconfig freetype glib-2.0 gobject-2.0 \ + gthread-2.0 m pcre pixman-1 png pthread-stubs pthread \ + stdc++ xcb xcb-render xcb-shm z # LGPLv2.1 / MPL 1.1 PERMIT_PACKAGE_CDROM= Yes diff --git a/graphics/cairo/distinfo b/graphics/cairo/distinfo index 2c045c9a602..97ee1505ce7 100644 --- a/graphics/cairo/distinfo +++ b/graphics/cairo/distinfo @@ -1,2 +1,2 @@ -SHA256 (cairo-1.12.2.tar.xz) = t4a8SnBUK8sJ8tnRPl5qDIZAjL9tHt3l8N6Afuz5P5Y= -SIZE (cairo-1.12.2.tar.xz) = 42051584 +SHA256 (cairo-1.12.8.tar.xz) = j7tvxmEXq0EAutgwy0R5SX5TxvP6y5i/BcjSmFVOvdk= +SIZE (cairo-1.12.8.tar.xz) = 42113752 diff --git a/graphics/cairo/patches/patch-configure b/graphics/cairo/patches/patch-configure index d3871e41771..7009561c748 100644 --- a/graphics/cairo/patches/patch-configure +++ b/graphics/cairo/patches/patch-configure @@ -1,11 +1,11 @@ -$OpenBSD: patch-configure,v 1.10 2012/08/16 17:03:18 eric Exp $ +$OpenBSD: patch-configure,v 1.11 2012/11/12 12:29:07 eric Exp $ Use `Requires', not `Requires.private', because otherwise libraries required for linking aren't exposed. ---- configure.orig Sun Apr 29 14:49:59 2012 -+++ configure Mon Aug 6 00:31:32 2012 -@@ -17696,10 +17696,7 @@ if test "x$PKG_CONFIG" = x; then +--- configure.orig Mon Oct 22 06:08:43 2012 ++++ configure Wed Oct 24 03:51:46 2012 +@@ -17954,10 +17954,7 @@ if test "x$PKG_CONFIG" = x; then as_fn_error $? "pkg-config >= $PKGCONFIG_REQUIRED required but not found (http://pkgconfig.freedesktop.org/)" "$LINENO" 5 fi diff --git a/graphics/cairo/patches/patch-src_cairo-polygon-reduce_c b/graphics/cairo/patches/patch-src_cairo-polygon-reduce_c deleted file mode 100644 index e3c69c41d5c..00000000000 --- a/graphics/cairo/patches/patch-src_cairo-polygon-reduce_c +++ /dev/null @@ -1,265 +0,0 @@ -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. - -$OpenBSD: patch-src_cairo-polygon-reduce_c,v 1.1 2012/08/16 17:03:18 eric Exp $ ---- src/cairo-polygon-reduce.c.orig Thu Apr 19 14:17:58 2012 -+++ src/cairo-polygon-reduce.c Sun Aug 5 10:17:23 2012 -@@ -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_ - */ - 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; -+ if (fill_rule == CAIRO_FILL_RULE_WINDING) -+ mask = ~0; -+ else -+ mask = 1; - -- right = left->next; -- if (left->deferred.right == NULL) { -- while (right != NULL && right->deferred.right == NULL) -- right = right->next; -+ while (left != NULL) { -+ int in_out = left->edge.dir; - -- 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 (! skip) -- break; -- } -- -+ 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_e - - 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_e - 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_e - - _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_e - } - } - -- 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; - } diff --git a/graphics/cairo/patches/patch-util_cairo-fdr_Makefile_in b/graphics/cairo/patches/patch-util_cairo-fdr_Makefile_in index c76316722be..94618b58239 100644 --- a/graphics/cairo/patches/patch-util_cairo-fdr_Makefile_in +++ b/graphics/cairo/patches/patch-util_cairo-fdr_Makefile_in @@ -1,14 +1,12 @@ -$OpenBSD: patch-util_cairo-fdr_Makefile_in,v 1.1 2012/08/16 17:03:18 eric Exp $ ---- util/cairo-fdr/Makefile.in.orig Sun Apr 29 20:49:57 2012 -+++ util/cairo-fdr/Makefile.in Thu Aug 16 18:08:18 2012 -@@ -376,8 +376,8 @@ AM_CPPFLAGS = -I$(top_srcdir)/src \ +$OpenBSD: patch-util_cairo-fdr_Makefile_in,v 1.2 2012/11/12 12:29:07 eric Exp $ +--- util/cairo-fdr/Makefile.in.orig Mon Oct 22 06:08:40 2012 ++++ util/cairo-fdr/Makefile.in Wed Oct 24 03:52:52 2012 +@@ -379,7 +379,7 @@ AM_CPPFLAGS = -I$(top_srcdir)/src \ cairo_fdr_la_SOURCES = fdr.c cairo_fdr_la_CPPFLAGS = $(AM_CPPFLAGS) cairo_fdr_la_CFLAGS = $(CAIRO_CFLAGS) -cairo_fdr_la_LDFLAGS = -module -no-undefined --cairo_fdr_la_LIBADD = -ldl +cairo_fdr_la_LDFLAGS = -module -no-undefined -avoid-version -+cairo_fdr_la_LIBADD = + @CAIRO_HAS_DL_TRUE@cairo_fdr_la_LIBADD = -ldl all: all-am - .SUFFIXES: diff --git a/graphics/cairo/patches/patch-util_cairo-trace_Makefile_in b/graphics/cairo/patches/patch-util_cairo-trace_Makefile_in index 463f60ec9fd..d3f187b9557 100644 --- a/graphics/cairo/patches/patch-util_cairo-trace_Makefile_in +++ b/graphics/cairo/patches/patch-util_cairo-trace_Makefile_in @@ -1,7 +1,7 @@ -$OpenBSD: patch-util_cairo-trace_Makefile_in,v 1.1 2012/08/26 17:22:27 eric Exp $ ---- util/cairo-trace/Makefile.in.orig Sun Aug 26 14:51:26 2012 -+++ util/cairo-trace/Makefile.in Sun Aug 26 14:51:03 2012 -@@ -396,7 +396,7 @@ libcairo_trace_la_CPPFLAGS = -DCAIRO_TRACE_OUTDIR="\"$ +$OpenBSD: patch-util_cairo-trace_Makefile_in,v 1.2 2012/11/12 12:29:07 eric Exp $ +--- util/cairo-trace/Makefile.in.orig Mon Oct 22 06:08:41 2012 ++++ util/cairo-trace/Makefile.in Wed Oct 24 03:51:46 2012 +@@ -399,7 +399,7 @@ libcairo_trace_la_CPPFLAGS = -DCAIRO_TRACE_OUTDIR="\"$ $(AM_CPPFLAGS) libcairo_trace_la_CFLAGS = $(CAIRO_CFLAGS) $(real_pthread_CFLAGS)