Libart_LGPL: Remove old version.

We only use the versions by TDE now.

Signed-off-by: Chris <xchrisx@uber.space>
pull/148/head
Chris 4 years ago
parent 1921c77796
commit 29250efaf4

@ -1,4 +0,0 @@
AUX 0001-gentoo-do-not-build-tests-if-not-required.patch 529 SHA256 15eae8cfbe4e8218be9dadd5e6a77830d7b47d4732499dd0a1ba4b325ef51f3c SHA512 6efe371e2a51211698ca0ae9c3c498331ea69342a3be2cf98a9ad060aa062738d6b49830f4c5f65529bb14df5993f516fb14d4c977e9d2263158819ed8c7d67d WHIRLPOOL 2a598d0d2d487592ed0125bef51cfb8c5e4d645fb9011f250e11cec4b65629a9219e884dc5d6e3ee567fb1e135bd52d5f393fd8ed1cc71f508c8de843040890f
AUX 0002-TDE-fix-a-number-of-problems.patch 11281 SHA256 faa31cb9cfe45539f1b478d9f6792651b913525db8492d9aab980e784f92ee0a SHA512 6ea308b5857e8339994dd1530962c2dd8d225f4f3b553d65003266c84eb79095f7a79c52fba2469e8683aa47f2db0d85dbb1841945ed2fe6d78a4c7efd1662a7 WHIRLPOOL 8a623b5247f8f4002fc28c578b8cd2d16bef7b6c939056f294011b14227d14e6e7c3b4ec07b7191bf7e7a2d80c4e23a9d8368e1aaa8390921dbd16a0d52f4bd7
AUX 0003-TDE-Clean-up-debug-spew.patch 3607 SHA256 5a1b797b31623bc0b79a51ac15c6573e70fd76306c114f7e781bc8295c9888c8 SHA512 83c651c9e7ac6cdcb28b9a2e1a7542150bfec522e9b9bb05f4679830621164a4e49a4a2e881765e1edf1efcb0a8af9b6252cc004dd33628ea59dd03ca4a8c8d3 WHIRLPOOL 823a59a127709ff2c023e739553ca99749a18786a13c817645159373506cebd45fd17b58529add2b3770fceef529ca04384a818c8621aca0bf441997a55356dd
DIST libart_lgpl-2.3.21.tar.bz2 329102 SHA256 fdc11e74c10fc9ffe4188537e2b370c0abacca7d89021d4d303afdf7fd7476fa SHA512 8a632a6a4da59e5e8c02ec2f5a57e36d182b325b46513765425e5f171ff9ae326af1b133725beba28f7e76654309e001aee9bace727b5b4c8589405256a3c020 WHIRLPOOL 1e524326519b5e8b12a6bc708bcd9c8e9789a79d2a3cd6bf71fd526b6868407436af7d5b00ece7e41b7ea7419cb700ef0b417e7f22ebcfe4aace2cbfa02bcd80

@ -1,22 +0,0 @@
From f2288355d0709b183b749b10ca0a3c6587cd2ddc Mon Sep 17 00:00:00 2001
From: Gilles Dartiguelongue <eva@gentoo.org>
Date: Tue, 6 Apr 2010 15:11:46 +0200
Subject: [PATCH 1/3] gentoo: do not build tests if not required
---
Makefile.am | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/Makefile.am b/Makefile.am
index aec6c5d..95952da 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,4 +1,4 @@
-noinst_PROGRAMS = testart testuta
+check_PROGRAMS = testart testuta
bin_SCRIPTS = \
libart2-config
--
1.8.1.5

@ -1,402 +0,0 @@
From 12ea00aa1898e33a467e2d8e18b6ebad43a181f3 Mon Sep 17 00:00:00 2001
From: Golubev Alexander <fatzer2@gmail.com>
Date: Thu, 15 Aug 2013 02:08:26 +0400
Subject: [PATCH 2/3] TDE: fix a number of problems
Conflicts:
art_config.h
---
ChangeLog | 2 +
README | 14 ++++++
art_render_gradient.c | 28 ++++++++++++
art_render_gradient.h | 3 +-
art_vpath_bpath.c | 119 ++++++++++++++++++++++++--------------------------
gen_art_config.sh.in | 6 +++
libart-config.in | 13 +++++-
testart.c | 6 +++
8 files changed, 127 insertions(+), 64 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 6861cf3..e274c9c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,5 @@
+*** PLEASE SEE THE GIT COMMIT LOG FOR NEWER CHANGES ***
+
2009-01-14 Fridrich Strba <fridrich.strba@bluewin.ch>
* gen_art_config.c: remove
diff --git a/README b/README
index 882527e..a88ec40 100644
--- a/README
+++ b/README
@@ -17,3 +17,17 @@ For more information about libart, see the web page:
There's also a libart tutorial available at
http://www.gnome.org/~mathieu/libart/libart.html
+======================================================================
+
+NOTE: The TDE project has take over maintinance of this library,
+starting with the sources from the final upstream release v2.3.21.
+
+This allows the TDE project to resolve remaining issues that cause
+problems or crashes within TDE.
+
+This patched library is only available under the terms of the
+GPL/LGPL, and is NOT for sale by the original author as mentioned
+above, as patch copyright has NOT been transferred to the original
+author and we have no plans to do so.
+
+======================================================================
diff --git a/art_render_gradient.c b/art_render_gradient.c
index bf93c6f..008d61a 100644
--- a/art_render_gradient.c
+++ b/art_render_gradient.c
@@ -30,7 +30,9 @@
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
+#if 0
#include <assert.h>
+#endif
/* Hack to find out how to define alloca on different platforms.
* Modified version of glib/galloca.h.
@@ -203,7 +205,9 @@ calc_color_at (ArtGradientStop *stops,
}
printf ("WARNING! bad ix %d in calc_color_at() [internal error]\n", ix);
+#if 0
assert (0);
+#endif
}
static void
@@ -331,6 +335,7 @@ art_render_gradient_linear_render_8 (ArtRenderCallback *self,
printf ("Initial ix: %d\n", ix);
#endif
+#if 0
assert (ix > 0);
assert (ix < n_stops);
assert ((stops[ix-1].offset <= offset_fraction + EPSILON) ||
@@ -344,6 +349,17 @@ art_render_gradient_linear_render_8 (ArtRenderCallback *self,
assert ((offset_fraction != stops[ix].offset) ||
(d_offset <= 0.0));
*/
+#else
+ if (!( (ix > 0) && (ix < n_stops)
+ && ((stops[ix-1].offset <= offset_fraction + EPSILON) ||
+ ((stops[ix].offset > (1.0 - EPSILON))
+ && (offset_fraction < EPSILON /* == 0.0*/)))
+ && (offset_fraction <= stops[ix].offset)))
+ {
+ printf ("art_render_gradient.c:%d: Old assert() failed!\n", __LINE__);
+ return;
+ }
+#endif
while (width > 0)
{
@@ -663,6 +679,18 @@ art_render_gradient_radial_render (ArtRenderCallback *self, ArtRender *render,
z = b_a + sqrt (rad);
else
z = b_a;
+
+ if (gradient->spread == ART_GRADIENT_PAD)
+ z = z;
+ else if (gradient->spread == ART_GRADIENT_REPEAT)
+ z = z - floor (z);
+ else /* (gradient->spread == ART_GRADIENT_REFLECT) */
+ {
+ double tmp;
+
+ tmp = z - 2 * floor (0.5 * z);
+ z = tmp > 1 ? 2 - tmp : tmp;
+ }
art_render_gradient_setpix (render, bufp, n_stops, stops, z);
bufp += pixstride;
b_a += db_a;
diff --git a/art_render_gradient.h b/art_render_gradient.h
index ef5da95..7e8e0c8 100644
--- a/art_render_gradient.h
+++ b/art_render_gradient.h
@@ -52,14 +52,15 @@ struct _ArtGradientLinear {
double a;
double b;
double c;
- ArtGradientSpread spread;
int n_stops;
ArtGradientStop *stops;
+ ArtGradientSpread spread;
};
struct _ArtGradientRadial {
double affine[6]; /* transforms user coordinates to unit circle */
double fx, fy; /* focal point in unit circle coords */
+ ArtGradientSpread spread;
int n_stops;
ArtGradientStop *stops;
};
diff --git a/art_vpath_bpath.c b/art_vpath_bpath.c
index 3f9afe7..2459f23 100644
--- a/art_vpath_bpath.c
+++ b/art_vpath_bpath.c
@@ -123,18 +123,6 @@ art_vpath_render_bez (ArtVpath **p_vpath, int *pn, int *pn_max,
double x3, double y3,
double flatness)
{
- double x3_0, y3_0;
- double z3_0_dot;
- double z1_dot, z2_dot;
- double z1_perp, z2_perp;
- double max_perp_sq;
-
- double x_m, y_m;
- double xa1, ya1;
- double xa2, ya2;
- double xb1, yb1;
- double xb2, yb2;
-
/* It's possible to optimize this routine a fair amount.
First, once the _dot conditions are met, they will also be met in
@@ -157,70 +145,79 @@ art_vpath_render_bez (ArtVpath **p_vpath, int *pn, int *pn_max,
just that I have this undying quest for more speed...
*/
-
- x3_0 = x3 - x0;
- y3_0 = y3 - y0;
-
- /* z3_0_dot is dist z0-z3 squared */
- z3_0_dot = x3_0 * x3_0 + y3_0 * y3_0;
-
- if (z3_0_dot < 0.001)
+ do
{
- /* if start and end point are almost identical, the flatness tests
- * don't work properly, so fall back on testing whether both of
- * the other two control points are the same as the start point,
- * too.
- */
- if (hypot(x1 - x0, y1 - y0) < 0.001
- && hypot(x2 - x0, y2 - y0) < 0.001)
- goto nosubdivide;
- else
- goto subdivide;
- }
+ /* don't subdivide inside this */
+ double x3_0, y3_0;
+ double z3_0_dot;
+ double z1_dot, z2_dot;
+ double z1_perp, z2_perp;
+ double max_perp_sq;
- /* we can avoid subdivision if:
+ x3_0 = x3 - x0;
+ y3_0 = y3 - y0;
- z1 has distance no more than flatness from the z0-z3 line
+ /* z3_0_dot is dist z0-z3 squared */
+ z3_0_dot = x3_0 * x3_0 + y3_0 * y3_0;
- z1 is no more z0'ward than flatness past z0-z3
+ if (z3_0_dot > 0.001)
+ {
+ /* we can avoid subdivision if:
- z1 is more z0'ward than z3'ward on the line traversing z0-z3
+ z1 has distance no more than flatness from the z0-z3 line
- and correspondingly for z2 */
+ z1 is no more z0'ward than flatness past z0-z3
- /* perp is distance from line, multiplied by dist z0-z3 */
- max_perp_sq = flatness * flatness * z3_0_dot;
+ z1 is more z0'ward than z3'ward on the line traversing z0-z3
- z1_perp = (y1 - y0) * x3_0 - (x1 - x0) * y3_0;
- if (z1_perp * z1_perp > max_perp_sq)
- goto subdivide;
+ and correspondingly for z2 */
- z2_perp = (y3 - y2) * x3_0 - (x3 - x2) * y3_0;
- if (z2_perp * z2_perp > max_perp_sq)
- goto subdivide;
+ /* perp is distance from line, multiplied by dist z0-z3 */
+ max_perp_sq = flatness * flatness * z3_0_dot;
- z1_dot = (x1 - x0) * x3_0 + (y1 - y0) * y3_0;
- if (z1_dot < 0 && z1_dot * z1_dot > max_perp_sq)
- goto subdivide;
+ z1_perp = (y1 - y0) * x3_0 - (x1 - x0) * y3_0;
+ if (z1_perp * z1_perp > max_perp_sq)
+ break;
- z2_dot = (x3 - x2) * x3_0 + (y3 - y2) * y3_0;
- if (z2_dot < 0 && z2_dot * z2_dot > max_perp_sq)
- goto subdivide;
+ z2_perp = (y3 - y2) * x3_0 - (x3 - x2) * y3_0;
+ if (z2_perp * z2_perp > max_perp_sq)
+ break;
- if (z1_dot + z1_dot > z3_0_dot)
- goto subdivide;
+ z1_dot = (x1 - x0) * x3_0 + (y1 - y0) * y3_0;
+ if (z1_dot < 0 && z1_dot * z1_dot > max_perp_sq)
+ break;
- if (z2_dot + z2_dot > z3_0_dot)
- goto subdivide;
+ if (z1_dot + z1_dot > z3_0_dot)
+ break;
-
- nosubdivide:
- /* don't subdivide */
- art_vpath_add_point (p_vpath, pn, pn_max,
- ART_LINETO, x3, y3);
- return;
+ z2_dot = (x3 - x2) * x3_0 + (y3 - y2) * y3_0;
+ if (z2_dot < 0 && z2_dot * z2_dot > max_perp_sq)
+ break;
- subdivide:
+ if (z2_dot + z2_dot > z3_0_dot)
+ break;
+ }
+ else
+ {
+ /* if start and end point are almost identical, the flatness tests
+ * don't work properly, so fall back on testing whether both of
+ * the other two control points are the same as the start point,
+ * too.
+ */
+ if (hypot(x1 - x0, y1 - y0) > 0.001
+ || hypot(x2 - x0, y2 - y0) > 0.001)
+ break;
+ }
+
+ art_vpath_add_point (p_vpath, pn, pn_max,
+ ART_LINETO, x3, y3);
+ return;
+ } while (0);
+ double x_m, y_m;
+ double xa1, ya1;
+ double xa2, ya2;
+ double xb1, yb1;
+ double xb2, yb2;
xa1 = (x0 + x1) * 0.5;
ya1 = (y0 + y1) * 0.5;
diff --git a/gen_art_config.sh.in b/gen_art_config.sh.in
index 79843bc..8c525bd 100644
--- a/gen_art_config.sh.in
+++ b/gen_art_config.sh.in
@@ -8,6 +8,9 @@
echo "/* Automatically generated by gen_art_config */"
echo
+echo "#ifndef _ART_CONFIG_H_"
+echo "#define _ART_CONFIG_H_"
+echo
echo "#define ART_SIZEOF_CHAR @ART_SIZEOF_CHAR@"
echo "#define ART_SIZEOF_SHORT @ART_SIZEOF_SHORT@"
echo "#define ART_SIZEOF_INT @ART_SIZEOF_INT@"
@@ -39,5 +42,8 @@ else
fi
fi
+echo
+echo "#endif /* _ART_CONFIG_H_ */"
+
exit 0
}
diff --git a/libart-config.in b/libart-config.in
index 0a2f3a9..e32f010 100644
--- a/libart-config.in
+++ b/libart-config.in
@@ -3,6 +3,8 @@
prefix=@prefix@
exec_prefix=@exec_prefix@
exec_prefix_set=no
+libs=""
+output_libs=no
usage="\
Usage: libart-config [--prefix[=DIR]] [--exec-prefix[=DIR]] [--version] [--libs] [--cflags]"
@@ -43,8 +45,11 @@ while test $# -gt 0; do
echo $includes
;;
--libs)
- libdirs=-L@libdir@
- echo $libdirs -lart_lgpl_2 -lm
+ libs="$libs -L@libdir@ -lart_lgpl_2"
+ output_libs=yes
+ ;;
+ --static)
+ libs="$libs -lm"
;;
*)
echo "${usage}" 1>&2
@@ -54,3 +59,7 @@ while test $# -gt 0; do
shift
done
+if test $output_libs = yes ; then
+ echo $libs
+fi
+
diff --git a/testart.c b/testart.c
index f20b292..994c7ba 100644
--- a/testart.c
+++ b/testart.c
@@ -228,6 +228,7 @@ make_testpat (void)
art_free (vpath3);
#else
svp2 = art_svp_from_vpath (vpath2);
+ art_free (vpath2);
#endif
#if 1
@@ -361,6 +362,7 @@ test_dist (void)
4,
0.5);
#endif
+ art_free (vpath);
art_rgb_svp_aa (svp, 0, 0, 512, 512,
0xffe0a0, 0x100040,
@@ -431,10 +433,12 @@ test_render_gradient (art_u8 *buf)
vpath = randstar (50);
svp = art_svp_from_vpath (vpath);
+ art_free (vpath);
render = art_render_new (0, 0, 512, 512, buf, 512 * 3, 3, 8, ART_ALPHA_NONE,
NULL);
art_render_svp (render, svp);
+ art_svp_free (svp);
art_render_gradient_linear (render, &gradient, ART_FILTER_NEAREST);
art_render_invoke (render);
@@ -467,6 +471,7 @@ test_render_rad_gradient (art_u8 *buf)
vpath = randstar (50);
svp = art_svp_from_vpath (vpath);
+ art_free (vpath);
render = art_render_new (0, 0, 512, 512, buf, 512 * 3, 3, 8, ART_ALPHA_NONE,
NULL);
@@ -489,6 +494,7 @@ test_gradient (void)
vpath = randstar (50);
svp = art_svp_from_vpath (vpath);
+ art_free (vpath);
for (i = 0; i < n_iter; i++)
{
--
1.8.1.5

@ -1,120 +0,0 @@
From 2d8f80350005641824e90447234352dc311a3c9d Mon Sep 17 00:00:00 2001
From: Golubev Alexander <fatzer2@gmail.com>
Date: Thu, 15 Aug 2013 02:10:16 +0400
Subject: [PATCH 3/3] TDE: Clean up debug spew
Clean up README file
---
README | 2 +-
art_render_gradient.c | 28 ++++------------------------
art_render_gradient.h | 2 +-
art_svp_intersect.c | 2 ++
4 files changed, 8 insertions(+), 26 deletions(-)
diff --git a/README b/README
index a88ec40..dc912f9 100644
--- a/README
+++ b/README
@@ -19,7 +19,7 @@ http://www.gnome.org/~mathieu/libart/libart.html
======================================================================
-NOTE: The TDE project has take over maintinance of this library,
+NOTE: The TDE project has taken over maintenance of this library,
starting with the sources from the final upstream release v2.3.21.
This allows the TDE project to resolve remaining issues that cause
diff --git a/art_render_gradient.c b/art_render_gradient.c
index 008d61a..c0638f8 100644
--- a/art_render_gradient.c
+++ b/art_render_gradient.c
@@ -30,9 +30,6 @@
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
-#if 0
-#include <assert.h>
-#endif
/* Hack to find out how to define alloca on different platforms.
* Modified version of glib/galloca.h.
@@ -205,9 +202,6 @@ calc_color_at (ArtGradientStop *stops,
}
printf ("WARNING! bad ix %d in calc_color_at() [internal error]\n", ix);
-#if 0
- assert (0);
-#endif
}
static void
@@ -334,33 +328,19 @@ art_render_gradient_linear_render_8 (ArtRenderCallback *self,
#ifdef DEBUG_SPEW
printf ("Initial ix: %d\n", ix);
#endif
-
-#if 0
- assert (ix > 0);
- assert (ix < n_stops);
- assert ((stops[ix-1].offset <= offset_fraction + EPSILON) ||
- ((stops[ix].offset > (1.0 - EPSILON)) && (offset_fraction < EPSILON /* == 0.0*/)));
- assert (offset_fraction <= stops[ix].offset);
- /* FIXME: These asserts may be broken, it is for now
- safer to not use them. Should be fixed!
- See bug #121850
- assert ((offset_fraction != stops[ix-1].offset) ||
- (d_offset >= 0.0));
- assert ((offset_fraction != stops[ix].offset) ||
- (d_offset <= 0.0));
- */
-#else
+
if (!( (ix > 0) && (ix < n_stops)
&& ((stops[ix-1].offset <= offset_fraction + EPSILON) ||
((stops[ix].offset > (1.0 - EPSILON))
&& (offset_fraction < EPSILON /* == 0.0*/)))
&& (offset_fraction <= stops[ix].offset)))
{
+#ifdef DEBUG_SPEW
printf ("art_render_gradient.c:%d: Old assert() failed!\n", __LINE__);
+#endif
return;
}
-#endif
-
+
while (width > 0)
{
#ifdef DEBUG_SPEW
diff --git a/art_render_gradient.h b/art_render_gradient.h
index 7e8e0c8..79ed4f8 100644
--- a/art_render_gradient.h
+++ b/art_render_gradient.h
@@ -60,9 +60,9 @@ struct _ArtGradientLinear {
struct _ArtGradientRadial {
double affine[6]; /* transforms user coordinates to unit circle */
double fx, fy; /* focal point in unit circle coords */
- ArtGradientSpread spread;
int n_stops;
ArtGradientStop *stops;
+ ArtGradientSpread spread;
};
struct _ArtGradientStop {
diff --git a/art_svp_intersect.c b/art_svp_intersect.c
index 4ece5f4..69ddd39 100644
--- a/art_svp_intersect.c
+++ b/art_svp_intersect.c
@@ -601,7 +601,9 @@ art_svp_intersect_add_horiz (ArtIntersectCtx *ctx, ArtActiveSeg *seg)
#ifdef CHEAP_SANITYCHECK
if (seg->flags & ART_ACTIVE_FLAGS_IN_HORIZ)
{
+#ifdef VERBOSE
art_warn ("*** attempt to put segment in horiz list twice\n");
+#endif
return;
}
seg->flags |= ART_ACTIVE_FLAGS_IN_HORIZ;
--
1.8.1.5

@ -1,47 +0,0 @@
# Copyright 1999-2017 Gentoo Foundation
# Copyright 2020 The Trinity Desktop Project
# Distributed under the terms of the GNU General Public License v2
EAPI="5"
GCONF_DEBUG="no"
GNOME_TARBALL_SUFFIX="bz2"
inherit autotools eutils gnome2
DESCRIPTION="a LGPL version of libart"
HOMEPAGE="http://www.levien.com/libart"
LICENSE="LGPL-2.1"
SLOT="0"
KEYWORDS="alpha amd64 arm hppa ia64 m68k ~mips ppc ppc64 s390 sh sparc x86 ~amd64-fbsd ~x86-fbsd ~amd64-linux ~x86-linux ~ppc-macos ~x86-macos ~sparc-solaris ~x64-solaris ~x86-solaris"
DEPEND="virtual/pkgconfig"
# The provided tests are interactive only
RESTRICT="test"
DOCS="AUTHORS ChangeLog NEWS README"
pkg_setup() {
G2CONF="${G2CONF} --disable-static"
}
src_prepare() {
gnome2_src_prepare
# Fix crosscompiling, bug #185684
rm "${S}"/art_config.h
# NOTE patch is removed automake should handle it
# Do not build tests if not required
epatch "$FILESDIR/0001-gentoo-do-not-build-tests-if-not-required.patch"
# apply TDE patches
epatch "$FILESDIR/0002-TDE-fix-a-number-of-problems.patch"
epatch "$FILESDIR/0003-TDE-Clean-up-debug-spew.patch"
# apply user-provided patches
epatch_user
AT_NOELIBTOOLIZE=yes eautoreconf
}
Loading…
Cancel
Save