wok rev 19250

Split "cairo-tools" from "cairo"; split "cairo-gl-tools" from "cairo-gl"; check dependencies.
author Aleksej Bobylev <al.bobylev@gmail.com>
date Wed Jun 29 15:02:04 2016 +0300 (2016-06-29)
parents faaf4f7a0acc
children 9d1b90ff4cae
files cairo-dev/receipt cairo-gl-dev/receipt cairo-gl-tools/receipt cairo-gl/receipt cairo-gl/stuff/cairo-1.10.0-buggy_gradients.patch cairo-gl/stuff/cairo-1.12.2-reduce-broken-stopped-edge-continuation.patch cairo-gl/stuff/cairo-respect-fontconfig.patch cairo-tools/receipt cairo/receipt cairo/stuff/cairo-1.10.0-buggy_gradients.patch cairo/stuff/cairo-1.12.2-reduce-broken-stopped-edge-continuation.patch cairo/stuff/cairo-respect-fontconfig.patch
line diff
     1.1 --- a/cairo-dev/receipt	Wed Jun 29 13:38:09 2016 +0200
     1.2 +++ b/cairo-dev/receipt	Wed Jun 29 15:02:04 2016 +0300
     1.3 @@ -3,15 +3,17 @@
     1.4  PACKAGE="cairo-dev"
     1.5  VERSION="1.14.4"
     1.6  CATEGORY="development"
     1.7 -SHORT_DESC="2D graphics library devel files."
     1.8 +SHORT_DESC="2D graphics library, development files"
     1.9  MAINTAINER="pankso@slitaz.org"
    1.10  LICENSE="MPL LGPL2.1"
    1.11 -WEB_SITE="http://www.cairographics.org/"
    1.12 -WANTED="cairo"
    1.13 +WEB_SITE="https://www.cairographics.org/"
    1.14  HOST_ARCH="i486 arm"
    1.15  
    1.16 -DEPENDS="pixman-dev xorg-libXrender-dev xorg-libXext-dev glib-dev libxcb-dev \
    1.17 -xcb-util-dev cairo fontconfig-dev freetype-dev libpng-dev expat-dev pkg-config"
    1.18 +WANTED="cairo"
    1.19 +DEPENDS="cairo cairo-tools bzip2 fontconfig-dev freetype-dev glib-dev \
    1.20 +harfbuzz-dev libffi-dev libpng-dev libxcb-dev libxml2-dev pcre-dev pixman-dev \
    1.21 +xorg-libX11-dev xorg-libXau-dev xorg-libXdmcp-dev xorg-libXext-dev \
    1.22 +xorg-libXrender-dev"
    1.23  
    1.24  # Rules to gen a SliTaz package suitable for Tazpkg.
    1.25  genpkg_rules()
     2.1 --- a/cairo-gl-dev/receipt	Wed Jun 29 13:38:09 2016 +0200
     2.2 +++ b/cairo-gl-dev/receipt	Wed Jun 29 15:02:04 2016 +0300
     2.3 @@ -3,16 +3,18 @@
     2.4  PACKAGE="cairo-gl-dev"
     2.5  VERSION="1.14.4"
     2.6  CATEGORY="development"
     2.7 -SHORT_DESC="2D graphics library devel files with GL support."
     2.8 +SHORT_DESC="2D graphics library with GL support, development files"
     2.9  MAINTAINER="pankso@slitaz.org"
    2.10  LICENSE="MPL LGPL2.1"
    2.11 -WEB_SITE="http://www.cairographics.org/"
    2.12 -WANTED="cairo-gl"
    2.13 +WEB_SITE="https://www.cairographics.org/"
    2.14  HOST_ARCH="i486"
    2.15  
    2.16 -DEPENDS="pixman-dev xorg-libXrender-dev glib-dev libxcb-dev xcb-util-dev \
    2.17 -cairo fontconfig-dev freetype-dev libpng-dev expat-dev pkg-config \
    2.18 -mesa-wayland-dev"
    2.19 +WANTED="cairo-gl"
    2.20 +DEPENDS="cairo-gl cairo-gl-tools fontconfig-dev freetype-dev glib-dev \
    2.21 +harfbuzz-dev libdrm-dev libffi-dev libpng-dev libxcb-dev libxml2-dev \
    2.22 +mesa-wayland-dev pcre-dev pixman-dev udev-dev wayland-dev xorg-libX11-dev \
    2.23 +xorg-libXau-dev xorg-libXdamage-dev xorg-libXdmcp-dev xorg-libXext-dev \
    2.24 +xorg-libXfixes-dev xorg-libXrender-dev xorg-libXxf86vm-dev"
    2.25  
    2.26  # Rules to gen a SliTaz package suitable for Tazpkg.
    2.27  genpkg_rules()
     3.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.2 +++ b/cairo-gl-tools/receipt	Wed Jun 29 15:02:04 2016 +0300
     3.3 @@ -0,0 +1,21 @@
     3.4 +# SliTaz package receipt.
     3.5 +
     3.6 +PACKAGE="cairo-gl-tools"
     3.7 +VERSION="1.14.4"
     3.8 +CATEGORY="development"
     3.9 +SHORT_DESC="2D graphics library, development tools"
    3.10 +MAINTAINER="al.bobylev@gmail.com"
    3.11 +LICENSE="MPL LGPL2.1"
    3.12 +WEB_SITE="https://www.cairographics.org/"
    3.13 +HOST_ARCH="i486 arm"
    3.14 +
    3.15 +WANTED="cairo-gl"
    3.16 +DEPENDS="cairo-gl libbfd wayland"
    3.17 +
    3.18 +# Rules to gen a SliTaz package suitable for Tazpkg.
    3.19 +genpkg_rules()
    3.20 +{
    3.21 +	mkdir -p $fs/usr/lib/cairo
    3.22 +	cp -a $install/usr/bin $fs/usr
    3.23 +	cp -a $install/usr/lib/cairo/*.so* $fs/usr/lib/cairo
    3.24 +}
     4.1 --- a/cairo-gl/receipt	Wed Jun 29 13:38:09 2016 +0200
     4.2 +++ b/cairo-gl/receipt	Wed Jun 29 15:02:04 2016 +0300
     4.3 @@ -3,21 +3,25 @@
     4.4  PACKAGE="cairo-gl"
     4.5  VERSION="1.14.4"
     4.6  CATEGORY="x-window"
     4.7 -SHORT_DESC="2D graphics library with GL support."
     4.8 +SHORT_DESC="2D graphics library with GL support"
     4.9  MAINTAINER="pankso@slitaz.org"
    4.10  LICENSE="MPL LGPL2.1"
    4.11  SOURCE="cairo"
    4.12  TARBALL="$SOURCE-$VERSION.tar.xz"
    4.13 -WEB_SITE="http://www.cairographics.org/"
    4.14 -WGET_URL="http://cairographics.org/releases/$TARBALL"
    4.15 +WEB_SITE="https://www.cairographics.org/"
    4.16 +WGET_URL="${WEB_SITE}releases/$TARBALL"
    4.17  #HOST_ARCH="arm i486"
    4.18  
    4.19 -DEPENDS="glib pixman libpng zlib expat fontconfig freetype xorg-libX11 \
    4.20 -xorg-libXau xorg-libXdmcp xorg-libXrender xcb-util libxcb mesa-wayland"
    4.21 +DEPENDS="bzlib fontconfig freetype glib glibc-base harfbuzz libdrm libffi \
    4.22 +libpng libxcb libxml2 mesa mesa-wayland pcre pixman udev xorg-libX11 \
    4.23 +xorg-libXau xorg-libXdamage xorg-libXdmcp xorg-libXext xorg-libXfixes \
    4.24 +xorg-libXrender xorg-libXxf86vm zlib"
    4.25  BUILD_DEPENDS="pkg-config glib-dev libpng-dev zlib-dev fontconfig-dev \
    4.26  freetype-dev xorg-libX11-dev pixman-dev xorg-libXau-dev xorg-libXdmcp-dev \
    4.27  xorg-libXrender-dev xcb-util-dev libxcb-dev expat-dev libxml2-dev \
    4.28  mesa-wayland-dev wayland-dev udev-dev xorg-libXxf86vm-dev libdrm-dev"
    4.29 +SPLIT="cairo-gl-tools"
    4.30 +SIBLINGS="cairo"
    4.31  
    4.32  # Handle cross compilation
    4.33  case "$ARCH" in
    4.34 @@ -27,17 +31,14 @@
    4.35  # Rules to configure and make the package.
    4.36  compile_rules()
    4.37  {
    4.38 -	patch -Np1 -i $stuff/cairo-1.10.0-buggy_gradients.patch
    4.39 -	# https://bugs.freedesktop.org/show_bug.cgi?id=50852
    4.40 -	patch -Np1 -i $stuff/cairo-1.12.2-reduce-broken-stopped-edge-continuation.patch
    4.41  	./configure \
    4.42  		--prefix=/usr \
    4.43 -		--with-html-dir=/usr/share/doc \
    4.44  		--enable-xcb \
    4.45 +		--enable-xlib-xcb \
    4.46  		--enable-tee \
    4.47  		--enable-gl \
    4.48  		--disable-static \
    4.49 - 		$CONFIGURE_ARGS &&
    4.50 +		$CONFIGURE_ARGS &&
    4.51  	make $MAKEFLAGS &&
    4.52  	make DESTDIR=$DESTDIR install
    4.53  }
    4.54 @@ -48,4 +49,3 @@
    4.55  	mkdir -p $fs/usr/lib
    4.56  	cp -a $install/usr/lib/*.so* $fs/usr/lib
    4.57  }
    4.58 -
     5.1 --- a/cairo-gl/stuff/cairo-1.10.0-buggy_gradients.patch	Wed Jun 29 13:38:09 2016 +0200
     5.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.3 @@ -1,13 +0,0 @@
     5.4 ---- a/src/cairo-xlib-display.c.ubuntu	2010-08-04 11:57:49.000000000 +0200
     5.5 -+++ b/src/cairo-xlib-display.c	2010-08-04 11:58:28.000000000 +0200
     5.6 -@@ -353,11 +353,7 @@
     5.7 -     /* Prior to Render 0.10, there is no protocol support for gradients and
     5.8 -      * we call function stubs instead, which would silently consume the drawing.
     5.9 -      */
    5.10 --#if RENDER_MAJOR == 0 && RENDER_MINOR < 10
    5.11 -     display->buggy_gradients = TRUE;
    5.12 --#else
    5.13 --    display->buggy_gradients = FALSE;
    5.14 --#endif
    5.15 -     display->buggy_pad_reflect = FALSE;
    5.16 -     display->buggy_repeat = FALSE;
     6.1 --- a/cairo-gl/stuff/cairo-1.12.2-reduce-broken-stopped-edge-continuation.patch	Wed Jun 29 13:38:09 2016 +0200
     6.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     6.3 @@ -1,275 +0,0 @@
     6.4 -From f228769dfe5a8b5d73c49a41e95e31ed73a77fb3 Mon Sep 17 00:00:00 2001
     6.5 -From: Chris Wilson <chris@chris-wilson.co.uk>
     6.6 -Date: Fri, 08 Jun 2012 16:22:41 +0000
     6.7 -Subject: polygon-reduce: Reduce broken stopped-edge continuation
     6.8 -
     6.9 -This is hopefully a lesser used path and the attempted optimisation to
    6.10 -continue a stopped edge with a colinear stopped edge highly unlikely and
    6.11 -lost in the noise of the general inefficiency of the routine. As it was
    6.12 -broken, rather than attempt to rectify the "optimisation" remove it.
    6.13 -
    6.14 -Reported-by: Evangelos Foutras <evangelos@foutrelis.com>
    6.15 -Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=50852
    6.16 -Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
    6.17 ----
    6.18 -diff --git a/src/cairo-polygon-reduce.c b/src/cairo-polygon-reduce.c
    6.19 -index 8758070..ea457fe 100644
    6.20 ---- a/src/cairo-polygon-reduce.c
    6.21 -+++ b/src/cairo-polygon-reduce.c
    6.22 -@@ -42,6 +42,8 @@
    6.23 - #include "cairo-freelist-private.h"
    6.24 - #include "cairo-combsort-inline.h"
    6.25 -
    6.26 -+#define DEBUG_POLYGON 0
    6.27 -+
    6.28 - typedef cairo_point_t cairo_bo_point32_t;
    6.29 -
    6.30 - typedef struct _cairo_bo_intersect_ordinate {
    6.31 -@@ -114,7 +116,6 @@ typedef struct _cairo_bo_event_queue {
    6.32 -
    6.33 - typedef struct _cairo_bo_sweep_line {
    6.34 -     cairo_bo_edge_t *head;
    6.35 --    cairo_bo_edge_t *stopped;
    6.36 -     int32_t current_y;
    6.37 -     cairo_bo_edge_t *current_edge;
    6.38 - } cairo_bo_sweep_line_t;
    6.39 -@@ -476,8 +477,8 @@ edges_compare_x_for_y (const cairo_bo_edge_t *a,
    6.40 - static inline int
    6.41 - _line_equal (const cairo_line_t *a, const cairo_line_t *b)
    6.42 - {
    6.43 --    return a->p1.x == b->p1.x && a->p1.y == b->p1.y &&
    6.44 --           a->p2.x == b->p2.x && a->p2.y == b->p2.y;
    6.45 -+    return (a->p1.x == b->p1.x && a->p1.y == b->p1.y &&
    6.46 -+	    a->p2.x == b->p2.x && a->p2.y == b->p2.y);
    6.47 - }
    6.48 -
    6.49 - static int
    6.50 -@@ -1024,7 +1025,6 @@ static void
    6.51 - _cairo_bo_sweep_line_init (cairo_bo_sweep_line_t *sweep_line)
    6.52 - {
    6.53 -     sweep_line->head = NULL;
    6.54 --    sweep_line->stopped = NULL;
    6.55 -     sweep_line->current_y = INT32_MIN;
    6.56 -     sweep_line->current_edge = NULL;
    6.57 - }
    6.58 -@@ -1139,6 +1139,8 @@ edges_colinear (const cairo_bo_edge_t *a, const cairo_bo_edge_t *b)
    6.59 -      */
    6.60 -     if (a->edge.line.p1.y == b->edge.line.p1.y) {
    6.61 -	return a->edge.line.p1.x == b->edge.line.p1.x;
    6.62 -+    } else if (a->edge.line.p2.y == b->edge.line.p2.y) {
    6.63 -+	return a->edge.line.p2.x == b->edge.line.p2.x;
    6.64 -     } else if (a->edge.line.p1.y < b->edge.line.p1.y) {
    6.65 -	return edge_compare_for_y_against_x (b,
    6.66 -					     a->edge.line.p1.y,
    6.67 -@@ -1205,82 +1207,48 @@ _active_edges_to_polygon (cairo_bo_edge_t		*left,
    6.68 -			  cairo_polygon_t	        *polygon)
    6.69 - {
    6.70 -     cairo_bo_edge_t *right;
    6.71 -+    unsigned int mask;
    6.72 -
    6.73 --    if (fill_rule == CAIRO_FILL_RULE_WINDING) {
    6.74 --	while (left != NULL) {
    6.75 --	    int in_out = left->edge.dir;
    6.76 --
    6.77 --	    right = left->next;
    6.78 --	    if (left->deferred.right == NULL) {
    6.79 --		while (right != NULL && right->deferred.right == NULL)
    6.80 --		    right = right->next;
    6.81 --
    6.82 --		if (right != NULL && edges_colinear (left, right)) {
    6.83 --		    /* continuation on left */
    6.84 --		    left->deferred = right->deferred;
    6.85 --		    right->deferred.right = NULL;
    6.86 --		}
    6.87 --	    }
    6.88 --
    6.89 --	    right = left->next;
    6.90 --	    while (right != NULL) {
    6.91 --		if (right->deferred.right != NULL)
    6.92 --		    _cairo_bo_edge_end (right, top, polygon);
    6.93 --
    6.94 --		in_out += right->edge.dir;
    6.95 --		if (in_out == 0) {
    6.96 --		    cairo_bo_edge_t *next;
    6.97 --		    cairo_bool_t skip = FALSE;
    6.98 --
    6.99 --		    /* skip co-linear edges */
   6.100 --		    next = right->next;
   6.101 --		    if (next != NULL)
   6.102 --			skip = edges_colinear (right, next);
   6.103 -+    if (fill_rule == CAIRO_FILL_RULE_WINDING)
   6.104 -+	mask = ~0;
   6.105 -+    else
   6.106 -+	mask = 1;
   6.107 -
   6.108 --		    if (! skip)
   6.109 --			break;
   6.110 --		}
   6.111 -+    while (left != NULL) {
   6.112 -+	int in_out = left->edge.dir;
   6.113 -
   6.114 -+	right = left->next;
   6.115 -+	if (left->deferred.right == NULL) {
   6.116 -+	    while (right != NULL && right->deferred.right == NULL)
   6.117 -		right = right->next;
   6.118 --	    }
   6.119 --
   6.120 --	    _cairo_bo_edge_start_or_continue (left, right, top, polygon);
   6.121 -
   6.122 --	    left = right;
   6.123 --	    if (left != NULL)
   6.124 --		left = left->next;
   6.125 -+	    if (right != NULL && edges_colinear (left, right)) {
   6.126 -+		/* continuation on left */
   6.127 -+		left->deferred = right->deferred;
   6.128 -+		right->deferred.right = NULL;
   6.129 -+	    }
   6.130 -	}
   6.131 --    } else {
   6.132 --	while (left != NULL) {
   6.133 --	    int in_out = 0;
   6.134 -
   6.135 --	    right = left->next;
   6.136 --	    while (right != NULL) {
   6.137 --		if (right->deferred.right != NULL)
   6.138 --		    _cairo_bo_edge_end (right, top, polygon);
   6.139 -+	right = left->next;
   6.140 -+	while (right != NULL) {
   6.141 -+	    if (right->deferred.right != NULL)
   6.142 -+		_cairo_bo_edge_end (right, top, polygon);
   6.143 -
   6.144 --		if ((in_out++ & 1) == 0) {
   6.145 --		    cairo_bo_edge_t *next;
   6.146 --		    cairo_bool_t skip = FALSE;
   6.147 --
   6.148 --		    /* skip co-linear edges */
   6.149 --		    next = right->next;
   6.150 --		    if (next != NULL)
   6.151 --			skip = edges_colinear (right, next);
   6.152 --
   6.153 --		    if (! skip)
   6.154 --			break;
   6.155 --		}
   6.156 --
   6.157 --		right = right->next;
   6.158 -+	    in_out += right->edge.dir;
   6.159 -+	    if ((in_out & mask) == 0) {
   6.160 -+		/* skip co-linear edges */
   6.161 -+		if (right->next == NULL || !edges_colinear (right, right->next))
   6.162 -+		    break;
   6.163 -	    }
   6.164 -
   6.165 --	    _cairo_bo_edge_start_or_continue (left, right, top, polygon);
   6.166 --
   6.167 --	    left = right;
   6.168 --	    if (left != NULL)
   6.169 --		left = left->next;
   6.170 -+	    right = right->next;
   6.171 -	}
   6.172 -+
   6.173 -+	_cairo_bo_edge_start_or_continue (left, right, top, polygon);
   6.174 -+
   6.175 -+	left = right;
   6.176 -+	if (left != NULL)
   6.177 -+	    left = left->next;
   6.178 -     }
   6.179 - }
   6.180 -
   6.181 -@@ -1303,12 +1271,6 @@ _cairo_bentley_ottmann_tessellate_bo_edges (cairo_bo_event_t   **start_events,
   6.182 -
   6.183 -     while ((event = _cairo_bo_event_dequeue (&event_queue))) {
   6.184 -	if (event->point.y != sweep_line.current_y) {
   6.185 --	    for (e1 = sweep_line.stopped; e1; e1 = e1->next) {
   6.186 --		if (e1->deferred.right != NULL)
   6.187 --		     _cairo_bo_edge_end (e1, e1->edge.bottom, polygon);
   6.188 --	    }
   6.189 --	    sweep_line.stopped = NULL;
   6.190 --
   6.191 -	    _active_edges_to_polygon (sweep_line.head,
   6.192 -				      sweep_line.current_y,
   6.193 -				      fill_rule, polygon);
   6.194 -@@ -1328,23 +1290,6 @@ _cairo_bentley_ottmann_tessellate_bo_edges (cairo_bo_event_t   **start_events,
   6.195 -	    if (unlikely (status))
   6.196 -		goto unwind;
   6.197 -
   6.198 --	    /* check to see if this is a continuation of a stopped edge */
   6.199 --	    /* XXX change to an infinitesimal lengthening rule */
   6.200 --	    for (left = sweep_line.stopped; left; left = left->next) {
   6.201 --		if (e1->edge.top <= left->edge.bottom &&
   6.202 --		    edges_colinear (e1, left))
   6.203 --		{
   6.204 --		    e1->deferred = left->deferred;
   6.205 --		    if (left->prev != NULL)
   6.206 --			left->prev = left->next;
   6.207 --		    else
   6.208 --			sweep_line.stopped = left->next;
   6.209 --		    if (left->next != NULL)
   6.210 --			left->next->prev = left->prev;
   6.211 --		    break;
   6.212 --		}
   6.213 --	    }
   6.214 --
   6.215 -	    left = e1->prev;
   6.216 -	    right = e1->next;
   6.217 -
   6.218 -@@ -1371,14 +1316,8 @@ _cairo_bentley_ottmann_tessellate_bo_edges (cairo_bo_event_t   **start_events,
   6.219 -
   6.220 -	    _cairo_bo_sweep_line_delete (&sweep_line, e1);
   6.221 -
   6.222 --	    /* first, check to see if we have a continuation via a fresh edge */
   6.223 --	    if (e1->deferred.right != NULL) {
   6.224 --		e1->next = sweep_line.stopped;
   6.225 --		if (sweep_line.stopped != NULL)
   6.226 --		    sweep_line.stopped->prev = e1;
   6.227 --		sweep_line.stopped = e1;
   6.228 --		e1->prev = NULL;
   6.229 --	    }
   6.230 -+	    if (e1->deferred.right != NULL)
   6.231 -+		_cairo_bo_edge_end (e1, e1->edge.bottom, polygon);
   6.232 -
   6.233 -	    if (left != NULL && right != NULL) {
   6.234 -		status = _cairo_bo_event_queue_insert_if_intersect_below_current_y (&event_queue, left, right);
   6.235 -@@ -1420,10 +1359,6 @@ _cairo_bentley_ottmann_tessellate_bo_edges (cairo_bo_event_t   **start_events,
   6.236 -	}
   6.237 -     }
   6.238 -
   6.239 --    for (e1 = sweep_line.stopped; e1; e1 = e1->next) {
   6.240 --	if (e1->deferred.right != NULL)
   6.241 --	    _cairo_bo_edge_end (e1, e1->edge.bottom, polygon);
   6.242 --    }
   6.243 -  unwind:
   6.244 -     _cairo_bo_event_queue_fini (&event_queue);
   6.245 -
   6.246 -@@ -1447,6 +1382,12 @@ _cairo_polygon_reduce (cairo_polygon_t *polygon,
   6.247 -     if (unlikely (0 == num_events))
   6.248 -	return CAIRO_STATUS_SUCCESS;
   6.249 -
   6.250 -+    if (DEBUG_POLYGON) {
   6.251 -+	FILE *file = fopen ("reduce_in.txt", "w");
   6.252 -+	_cairo_debug_print_polygon (file, polygon);
   6.253 -+	fclose (file);
   6.254 -+    }
   6.255 -+
   6.256 -     events = stack_events;
   6.257 -     event_ptrs = stack_event_ptrs;
   6.258 -     if (num_events > ARRAY_LENGTH (stack_events)) {
   6.259 -@@ -1482,10 +1423,16 @@ _cairo_polygon_reduce (cairo_polygon_t *polygon,
   6.260 -							 num_events,
   6.261 -							 fill_rule,
   6.262 -							 polygon);
   6.263 --     polygon->num_limits = num_limits;
   6.264 -+    polygon->num_limits = num_limits;
   6.265 -
   6.266 -     if (events != stack_events)
   6.267 -	free (events);
   6.268 -
   6.269 -+    if (DEBUG_POLYGON) {
   6.270 -+	FILE *file = fopen ("reduce_out.txt", "w");
   6.271 -+	_cairo_debug_print_polygon (file, polygon);
   6.272 -+	fclose (file);
   6.273 -+    }
   6.274 -+
   6.275 -     return status;
   6.276 - }
   6.277 ---
   6.278 -cgit v0.9.0.2-2-gbebe
     7.1 --- a/cairo-gl/stuff/cairo-respect-fontconfig.patch	Wed Jun 29 13:38:09 2016 +0200
     7.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     7.3 @@ -1,21 +0,0 @@
     7.4 -diff -Nur cairo-1.8.6.orig/src/cairo-ft-font.c cairo-1.8.6/src/cairo-ft-font.c
     7.5 ---- cairo-1.8.6.orig/src/cairo-ft-font.c	2008-12-12 20:48:04.000000000 +0800
     7.6 -+++ cairo-1.8.6/src/cairo-ft-font.c	2009-02-20 14:56:57.000000000 +0800
     7.7 -@@ -1448,8 +1448,15 @@
     7.8 -     if (options->base.hint_style == CAIRO_HINT_STYLE_DEFAULT)
     7.9 - 	options->base.hint_style = other->base.hint_style;
    7.10 - 
    7.11 --    if (other->base.hint_style == CAIRO_HINT_STYLE_NONE)
    7.12 --	options->base.hint_style = CAIRO_HINT_STYLE_NONE;
    7.13 -+    //if (other->base.hint_style == CAIRO_HINT_STYLE_NONE)
    7.14 -+	//options->base.hint_style = CAIRO_HINT_STYLE_NONE;
    7.15 -+
    7.16 -+	if (other->base.hint_style == CAIRO_HINT_STYLE_NONE ||
    7.17 -+		other->base.hint_style == CAIRO_HINT_STYLE_SLIGHT ||
    7.18 -+		other->base.hint_style == CAIRO_HINT_STYLE_MEDIUM ||
    7.19 -+		other->base.hint_style == CAIRO_HINT_STYLE_FULL) {
    7.20 -+	options->base.hint_style = other->base.hint_style;
    7.21 -+	}
    7.22 - 
    7.23 -     if (options->base.antialias == CAIRO_ANTIALIAS_NONE) {
    7.24 - 	if (options->base.hint_style == CAIRO_HINT_STYLE_NONE)
     8.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     8.2 +++ b/cairo-tools/receipt	Wed Jun 29 15:02:04 2016 +0300
     8.3 @@ -0,0 +1,21 @@
     8.4 +# SliTaz package receipt.
     8.5 +
     8.6 +PACKAGE="cairo-tools"
     8.7 +VERSION="1.14.4"
     8.8 +CATEGORY="development"
     8.9 +SHORT_DESC="2D graphics library, development tools"
    8.10 +MAINTAINER="al.bobylev@gmail.com"
    8.11 +LICENSE="MPL LGPL2.1"
    8.12 +WEB_SITE="https://www.cairographics.org/"
    8.13 +HOST_ARCH="i486 arm"
    8.14 +
    8.15 +WANTED="cairo"
    8.16 +DEPENDS="cairo libbfd"
    8.17 +
    8.18 +# Rules to gen a SliTaz package suitable for Tazpkg.
    8.19 +genpkg_rules()
    8.20 +{
    8.21 +	mkdir -p $fs/usr/lib/cairo
    8.22 +	cp -a $install/usr/bin $fs/usr
    8.23 +	cp -a $install/usr/lib/cairo/*.so* $fs/usr/lib/cairo
    8.24 +}
     9.1 --- a/cairo/receipt	Wed Jun 29 13:38:09 2016 +0200
     9.2 +++ b/cairo/receipt	Wed Jun 29 15:02:04 2016 +0300
     9.3 @@ -3,19 +3,22 @@
     9.4  PACKAGE="cairo"
     9.5  VERSION="1.14.4"
     9.6  CATEGORY="x-window"
     9.7 -SHORT_DESC="2D graphics library."
     9.8 +SHORT_DESC="2D graphics library"
     9.9  MAINTAINER="pankso@slitaz.org"
    9.10  LICENSE="MPL LGPL2.1"
    9.11  TARBALL="$PACKAGE-$VERSION.tar.xz"
    9.12 -WEB_SITE="http://www.cairographics.org/"
    9.13 -WGET_URL="http://cairographics.org/releases/$TARBALL"
    9.14 +WEB_SITE="https://www.cairographics.org/"
    9.15 +WGET_URL="${WEB_SITE}releases/$TARBALL"
    9.16  HOST_ARCH="i486 arm"
    9.17  
    9.18 -DEPENDS="glib pixman libpng zlib expat fontconfig freetype xorg-libX11 \
    9.19 -xorg-libXau xorg-libXdmcp xorg-libXrender xcb-util libxcb"
    9.20 +DEPENDS="bzlib fontconfig freetype glib glibc-base harfbuzz libffi libpng \
    9.21 +libxcb libxml2 pcre pixman xorg-libX11 xorg-libXau xorg-libXdmcp xorg-libXext \
    9.22 +xorg-libXrender zlib"
    9.23  BUILD_DEPENDS="pkg-config glib-dev libpng-dev zlib-dev fontconfig-dev \
    9.24  freetype-dev xorg-libX11-dev pixman-dev xorg-libXau-dev xorg-libXdmcp-dev \
    9.25  xorg-libXrender-dev xcb-util-dev libxcb-dev expat-dev libxml2-dev"
    9.26 +SPLIT="cairo-tools"
    9.27 +SIBLINGS="cairo-gl"
    9.28  
    9.29  # Handle cross compilation
    9.30  case "$ARCH" in
    9.31 @@ -25,15 +28,13 @@
    9.32  # Rules to configure and make the package.
    9.33  compile_rules()
    9.34  {
    9.35 -	cd $src
    9.36  	./configure \
    9.37  		--prefix=/usr \
    9.38 - 		--mandir=/usr/share/man \
    9.39 -		--with-html-dir=/usr/share/doc \
    9.40  		--enable-xcb \
    9.41 +		--enable-xlib-xcb \
    9.42  		--enable-tee \
    9.43  		--disable-static \
    9.44 - 		$CONFIGURE_ARGS &&
    9.45 +		$CONFIGURE_ARGS &&
    9.46  	make $MAKEFLAGS &&
    9.47  	make DESTDIR=$DESTDIR install
    9.48  }
    9.49 @@ -41,8 +42,6 @@
    9.50  # Rules to gen a SliTaz package suitable for Tazpkg.
    9.51  genpkg_rules()
    9.52  {
    9.53 -	mkdir -p $fs/usr/lib/cairo
    9.54 -	cp -a $install/usr/bin	$fs/usr
    9.55 +	mkdir -p $fs/usr/lib
    9.56  	cp -a $install/usr/lib/*.so* $fs/usr/lib
    9.57 -	cp -a $install/usr/lib/cairo/*.so* $fs/usr/lib/cairo
    9.58  }
    10.1 --- a/cairo/stuff/cairo-1.10.0-buggy_gradients.patch	Wed Jun 29 13:38:09 2016 +0200
    10.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    10.3 @@ -1,13 +0,0 @@
    10.4 ---- a/src/cairo-xlib-display.c.ubuntu	2010-08-04 11:57:49.000000000 +0200
    10.5 -+++ b/src/cairo-xlib-display.c	2010-08-04 11:58:28.000000000 +0200
    10.6 -@@ -353,11 +353,7 @@
    10.7 -     /* Prior to Render 0.10, there is no protocol support for gradients and
    10.8 -      * we call function stubs instead, which would silently consume the drawing.
    10.9 -      */
   10.10 --#if RENDER_MAJOR == 0 && RENDER_MINOR < 10
   10.11 -     display->buggy_gradients = TRUE;
   10.12 --#else
   10.13 --    display->buggy_gradients = FALSE;
   10.14 --#endif
   10.15 -     display->buggy_pad_reflect = FALSE;
   10.16 -     display->buggy_repeat = FALSE;
    11.1 --- a/cairo/stuff/cairo-1.12.2-reduce-broken-stopped-edge-continuation.patch	Wed Jun 29 13:38:09 2016 +0200
    11.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    11.3 @@ -1,275 +0,0 @@
    11.4 -From f228769dfe5a8b5d73c49a41e95e31ed73a77fb3 Mon Sep 17 00:00:00 2001
    11.5 -From: Chris Wilson <chris@chris-wilson.co.uk>
    11.6 -Date: Fri, 08 Jun 2012 16:22:41 +0000
    11.7 -Subject: polygon-reduce: Reduce broken stopped-edge continuation
    11.8 -
    11.9 -This is hopefully a lesser used path and the attempted optimisation to
   11.10 -continue a stopped edge with a colinear stopped edge highly unlikely and
   11.11 -lost in the noise of the general inefficiency of the routine. As it was
   11.12 -broken, rather than attempt to rectify the "optimisation" remove it.
   11.13 -
   11.14 -Reported-by: Evangelos Foutras <evangelos@foutrelis.com>
   11.15 -Bugzilla: https://bugs.freedesktop.org/show_bug.cgi?id=50852
   11.16 -Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
   11.17 ----
   11.18 -diff --git a/src/cairo-polygon-reduce.c b/src/cairo-polygon-reduce.c
   11.19 -index 8758070..ea457fe 100644
   11.20 ---- a/src/cairo-polygon-reduce.c
   11.21 -+++ b/src/cairo-polygon-reduce.c
   11.22 -@@ -42,6 +42,8 @@
   11.23 - #include "cairo-freelist-private.h"
   11.24 - #include "cairo-combsort-inline.h"
   11.25 -
   11.26 -+#define DEBUG_POLYGON 0
   11.27 -+
   11.28 - typedef cairo_point_t cairo_bo_point32_t;
   11.29 -
   11.30 - typedef struct _cairo_bo_intersect_ordinate {
   11.31 -@@ -114,7 +116,6 @@ typedef struct _cairo_bo_event_queue {
   11.32 -
   11.33 - typedef struct _cairo_bo_sweep_line {
   11.34 -     cairo_bo_edge_t *head;
   11.35 --    cairo_bo_edge_t *stopped;
   11.36 -     int32_t current_y;
   11.37 -     cairo_bo_edge_t *current_edge;
   11.38 - } cairo_bo_sweep_line_t;
   11.39 -@@ -476,8 +477,8 @@ edges_compare_x_for_y (const cairo_bo_edge_t *a,
   11.40 - static inline int
   11.41 - _line_equal (const cairo_line_t *a, const cairo_line_t *b)
   11.42 - {
   11.43 --    return a->p1.x == b->p1.x && a->p1.y == b->p1.y &&
   11.44 --           a->p2.x == b->p2.x && a->p2.y == b->p2.y;
   11.45 -+    return (a->p1.x == b->p1.x && a->p1.y == b->p1.y &&
   11.46 -+	    a->p2.x == b->p2.x && a->p2.y == b->p2.y);
   11.47 - }
   11.48 -
   11.49 - static int
   11.50 -@@ -1024,7 +1025,6 @@ static void
   11.51 - _cairo_bo_sweep_line_init (cairo_bo_sweep_line_t *sweep_line)
   11.52 - {
   11.53 -     sweep_line->head = NULL;
   11.54 --    sweep_line->stopped = NULL;
   11.55 -     sweep_line->current_y = INT32_MIN;
   11.56 -     sweep_line->current_edge = NULL;
   11.57 - }
   11.58 -@@ -1139,6 +1139,8 @@ edges_colinear (const cairo_bo_edge_t *a, const cairo_bo_edge_t *b)
   11.59 -      */
   11.60 -     if (a->edge.line.p1.y == b->edge.line.p1.y) {
   11.61 -	return a->edge.line.p1.x == b->edge.line.p1.x;
   11.62 -+    } else if (a->edge.line.p2.y == b->edge.line.p2.y) {
   11.63 -+	return a->edge.line.p2.x == b->edge.line.p2.x;
   11.64 -     } else if (a->edge.line.p1.y < b->edge.line.p1.y) {
   11.65 -	return edge_compare_for_y_against_x (b,
   11.66 -					     a->edge.line.p1.y,
   11.67 -@@ -1205,82 +1207,48 @@ _active_edges_to_polygon (cairo_bo_edge_t		*left,
   11.68 -			  cairo_polygon_t	        *polygon)
   11.69 - {
   11.70 -     cairo_bo_edge_t *right;
   11.71 -+    unsigned int mask;
   11.72 -
   11.73 --    if (fill_rule == CAIRO_FILL_RULE_WINDING) {
   11.74 --	while (left != NULL) {
   11.75 --	    int in_out = left->edge.dir;
   11.76 --
   11.77 --	    right = left->next;
   11.78 --	    if (left->deferred.right == NULL) {
   11.79 --		while (right != NULL && right->deferred.right == NULL)
   11.80 --		    right = right->next;
   11.81 --
   11.82 --		if (right != NULL && edges_colinear (left, right)) {
   11.83 --		    /* continuation on left */
   11.84 --		    left->deferred = right->deferred;
   11.85 --		    right->deferred.right = NULL;
   11.86 --		}
   11.87 --	    }
   11.88 --
   11.89 --	    right = left->next;
   11.90 --	    while (right != NULL) {
   11.91 --		if (right->deferred.right != NULL)
   11.92 --		    _cairo_bo_edge_end (right, top, polygon);
   11.93 --
   11.94 --		in_out += right->edge.dir;
   11.95 --		if (in_out == 0) {
   11.96 --		    cairo_bo_edge_t *next;
   11.97 --		    cairo_bool_t skip = FALSE;
   11.98 --
   11.99 --		    /* skip co-linear edges */
  11.100 --		    next = right->next;
  11.101 --		    if (next != NULL)
  11.102 --			skip = edges_colinear (right, next);
  11.103 -+    if (fill_rule == CAIRO_FILL_RULE_WINDING)
  11.104 -+	mask = ~0;
  11.105 -+    else
  11.106 -+	mask = 1;
  11.107 -
  11.108 --		    if (! skip)
  11.109 --			break;
  11.110 --		}
  11.111 -+    while (left != NULL) {
  11.112 -+	int in_out = left->edge.dir;
  11.113 -
  11.114 -+	right = left->next;
  11.115 -+	if (left->deferred.right == NULL) {
  11.116 -+	    while (right != NULL && right->deferred.right == NULL)
  11.117 -		right = right->next;
  11.118 --	    }
  11.119 --
  11.120 --	    _cairo_bo_edge_start_or_continue (left, right, top, polygon);
  11.121 -
  11.122 --	    left = right;
  11.123 --	    if (left != NULL)
  11.124 --		left = left->next;
  11.125 -+	    if (right != NULL && edges_colinear (left, right)) {
  11.126 -+		/* continuation on left */
  11.127 -+		left->deferred = right->deferred;
  11.128 -+		right->deferred.right = NULL;
  11.129 -+	    }
  11.130 -	}
  11.131 --    } else {
  11.132 --	while (left != NULL) {
  11.133 --	    int in_out = 0;
  11.134 -
  11.135 --	    right = left->next;
  11.136 --	    while (right != NULL) {
  11.137 --		if (right->deferred.right != NULL)
  11.138 --		    _cairo_bo_edge_end (right, top, polygon);
  11.139 -+	right = left->next;
  11.140 -+	while (right != NULL) {
  11.141 -+	    if (right->deferred.right != NULL)
  11.142 -+		_cairo_bo_edge_end (right, top, polygon);
  11.143 -
  11.144 --		if ((in_out++ & 1) == 0) {
  11.145 --		    cairo_bo_edge_t *next;
  11.146 --		    cairo_bool_t skip = FALSE;
  11.147 --
  11.148 --		    /* skip co-linear edges */
  11.149 --		    next = right->next;
  11.150 --		    if (next != NULL)
  11.151 --			skip = edges_colinear (right, next);
  11.152 --
  11.153 --		    if (! skip)
  11.154 --			break;
  11.155 --		}
  11.156 --
  11.157 --		right = right->next;
  11.158 -+	    in_out += right->edge.dir;
  11.159 -+	    if ((in_out & mask) == 0) {
  11.160 -+		/* skip co-linear edges */
  11.161 -+		if (right->next == NULL || !edges_colinear (right, right->next))
  11.162 -+		    break;
  11.163 -	    }
  11.164 -
  11.165 --	    _cairo_bo_edge_start_or_continue (left, right, top, polygon);
  11.166 --
  11.167 --	    left = right;
  11.168 --	    if (left != NULL)
  11.169 --		left = left->next;
  11.170 -+	    right = right->next;
  11.171 -	}
  11.172 -+
  11.173 -+	_cairo_bo_edge_start_or_continue (left, right, top, polygon);
  11.174 -+
  11.175 -+	left = right;
  11.176 -+	if (left != NULL)
  11.177 -+	    left = left->next;
  11.178 -     }
  11.179 - }
  11.180 -
  11.181 -@@ -1303,12 +1271,6 @@ _cairo_bentley_ottmann_tessellate_bo_edges (cairo_bo_event_t   **start_events,
  11.182 -
  11.183 -     while ((event = _cairo_bo_event_dequeue (&event_queue))) {
  11.184 -	if (event->point.y != sweep_line.current_y) {
  11.185 --	    for (e1 = sweep_line.stopped; e1; e1 = e1->next) {
  11.186 --		if (e1->deferred.right != NULL)
  11.187 --		     _cairo_bo_edge_end (e1, e1->edge.bottom, polygon);
  11.188 --	    }
  11.189 --	    sweep_line.stopped = NULL;
  11.190 --
  11.191 -	    _active_edges_to_polygon (sweep_line.head,
  11.192 -				      sweep_line.current_y,
  11.193 -				      fill_rule, polygon);
  11.194 -@@ -1328,23 +1290,6 @@ _cairo_bentley_ottmann_tessellate_bo_edges (cairo_bo_event_t   **start_events,
  11.195 -	    if (unlikely (status))
  11.196 -		goto unwind;
  11.197 -
  11.198 --	    /* check to see if this is a continuation of a stopped edge */
  11.199 --	    /* XXX change to an infinitesimal lengthening rule */
  11.200 --	    for (left = sweep_line.stopped; left; left = left->next) {
  11.201 --		if (e1->edge.top <= left->edge.bottom &&
  11.202 --		    edges_colinear (e1, left))
  11.203 --		{
  11.204 --		    e1->deferred = left->deferred;
  11.205 --		    if (left->prev != NULL)
  11.206 --			left->prev = left->next;
  11.207 --		    else
  11.208 --			sweep_line.stopped = left->next;
  11.209 --		    if (left->next != NULL)
  11.210 --			left->next->prev = left->prev;
  11.211 --		    break;
  11.212 --		}
  11.213 --	    }
  11.214 --
  11.215 -	    left = e1->prev;
  11.216 -	    right = e1->next;
  11.217 -
  11.218 -@@ -1371,14 +1316,8 @@ _cairo_bentley_ottmann_tessellate_bo_edges (cairo_bo_event_t   **start_events,
  11.219 -
  11.220 -	    _cairo_bo_sweep_line_delete (&sweep_line, e1);
  11.221 -
  11.222 --	    /* first, check to see if we have a continuation via a fresh edge */
  11.223 --	    if (e1->deferred.right != NULL) {
  11.224 --		e1->next = sweep_line.stopped;
  11.225 --		if (sweep_line.stopped != NULL)
  11.226 --		    sweep_line.stopped->prev = e1;
  11.227 --		sweep_line.stopped = e1;
  11.228 --		e1->prev = NULL;
  11.229 --	    }
  11.230 -+	    if (e1->deferred.right != NULL)
  11.231 -+		_cairo_bo_edge_end (e1, e1->edge.bottom, polygon);
  11.232 -
  11.233 -	    if (left != NULL && right != NULL) {
  11.234 -		status = _cairo_bo_event_queue_insert_if_intersect_below_current_y (&event_queue, left, right);
  11.235 -@@ -1420,10 +1359,6 @@ _cairo_bentley_ottmann_tessellate_bo_edges (cairo_bo_event_t   **start_events,
  11.236 -	}
  11.237 -     }
  11.238 -
  11.239 --    for (e1 = sweep_line.stopped; e1; e1 = e1->next) {
  11.240 --	if (e1->deferred.right != NULL)
  11.241 --	    _cairo_bo_edge_end (e1, e1->edge.bottom, polygon);
  11.242 --    }
  11.243 -  unwind:
  11.244 -     _cairo_bo_event_queue_fini (&event_queue);
  11.245 -
  11.246 -@@ -1447,6 +1382,12 @@ _cairo_polygon_reduce (cairo_polygon_t *polygon,
  11.247 -     if (unlikely (0 == num_events))
  11.248 -	return CAIRO_STATUS_SUCCESS;
  11.249 -
  11.250 -+    if (DEBUG_POLYGON) {
  11.251 -+	FILE *file = fopen ("reduce_in.txt", "w");
  11.252 -+	_cairo_debug_print_polygon (file, polygon);
  11.253 -+	fclose (file);
  11.254 -+    }
  11.255 -+
  11.256 -     events = stack_events;
  11.257 -     event_ptrs = stack_event_ptrs;
  11.258 -     if (num_events > ARRAY_LENGTH (stack_events)) {
  11.259 -@@ -1482,10 +1423,16 @@ _cairo_polygon_reduce (cairo_polygon_t *polygon,
  11.260 -							 num_events,
  11.261 -							 fill_rule,
  11.262 -							 polygon);
  11.263 --     polygon->num_limits = num_limits;
  11.264 -+    polygon->num_limits = num_limits;
  11.265 -
  11.266 -     if (events != stack_events)
  11.267 -	free (events);
  11.268 -
  11.269 -+    if (DEBUG_POLYGON) {
  11.270 -+	FILE *file = fopen ("reduce_out.txt", "w");
  11.271 -+	_cairo_debug_print_polygon (file, polygon);
  11.272 -+	fclose (file);
  11.273 -+    }
  11.274 -+
  11.275 -     return status;
  11.276 - }
  11.277 ---
  11.278 -cgit v0.9.0.2-2-gbebe
    12.1 --- a/cairo/stuff/cairo-respect-fontconfig.patch	Wed Jun 29 13:38:09 2016 +0200
    12.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    12.3 @@ -1,21 +0,0 @@
    12.4 -diff -Nur cairo-1.8.6.orig/src/cairo-ft-font.c cairo-1.8.6/src/cairo-ft-font.c
    12.5 ---- cairo-1.8.6.orig/src/cairo-ft-font.c	2008-12-12 20:48:04.000000000 +0800
    12.6 -+++ cairo-1.8.6/src/cairo-ft-font.c	2009-02-20 14:56:57.000000000 +0800
    12.7 -@@ -1448,8 +1448,15 @@
    12.8 -     if (options->base.hint_style == CAIRO_HINT_STYLE_DEFAULT)
    12.9 - 	options->base.hint_style = other->base.hint_style;
   12.10 - 
   12.11 --    if (other->base.hint_style == CAIRO_HINT_STYLE_NONE)
   12.12 --	options->base.hint_style = CAIRO_HINT_STYLE_NONE;
   12.13 -+    //if (other->base.hint_style == CAIRO_HINT_STYLE_NONE)
   12.14 -+	//options->base.hint_style = CAIRO_HINT_STYLE_NONE;
   12.15 -+
   12.16 -+	if (other->base.hint_style == CAIRO_HINT_STYLE_NONE ||
   12.17 -+		other->base.hint_style == CAIRO_HINT_STYLE_SLIGHT ||
   12.18 -+		other->base.hint_style == CAIRO_HINT_STYLE_MEDIUM ||
   12.19 -+		other->base.hint_style == CAIRO_HINT_STYLE_FULL) {
   12.20 -+	options->base.hint_style = other->base.hint_style;
   12.21 -+	}
   12.22 - 
   12.23 -     if (options->base.antialias == CAIRO_ANTIALIAS_NONE) {
   12.24 - 	if (options->base.hint_style == CAIRO_HINT_STYLE_NONE)