Subject: | build/test failure on RHEL5.7 (cairo 1.2.4) |
submitted after brief exchange with Brian
I don't know which version of Fedora corresponds the
the versions of Red Hat I used.
This was the first time I'd tried installing Cairo.
on RHEL6.2, perl 5.14.2, cairo 1.8.8
Cairo builds and passes tests though do see
t/CairoSurface.t .. 1/88 unknown surface type 4096 encountered at t/CairoSurface.t line
234.
still builds and passes tests after applying attached patch
on RHEL5.7, perl 5.14.2, cairo 1.2.4
make failed with warnings about undefined symbols like CAIRO_FONT_TYPE_QUARTZ
applied a patch based on
https://rt.cpan.org/Public/Bug/Display.html?id=72576
now builds OK, but some tests fail
t/Cairo.t ......... ok
t/CairoFont.t ..... ok
t/CairoFt.t ....... skipped: need Cairo with FreeType support and Font::FreeType
t/CairoMatrix.t ... ok
t/CairoPath.t ..... 1/6
# Failed test at t/CairoPath.t line 43.
# Structures begin differing at:
# $got->[5] = Cairo::Path::Data=HASH(0x14a3b6d8)
# $expected->[5] = Does not exist
# Failed test at t/CairoPath.t line 43.
# Structures begin differing at:
# $got->[5] = Cairo::Path::Data=HASH(0x14a53220)
# $expected->[5] = Does not exist
# Failed test at t/CairoPath.t line 43.
# Structures begin differing at:
# $got->[5] = Cairo::Path::Data=HASH(0x14a53ac0)
# $expected->[5] = Does not exist
# Failed test at t/CairoPath.t line 43.
# Structures begin differing at:
# $got->[6] = Cairo::Path::Data=HASH(0x14a5ab28)
# $expected->[6] = Does not exist
# Failed test at t/CairoPath.t line 88.
# Structures begin differing at:
# $got->[6] = Cairo::Path::Data=HASH(0x14a5b158)
# $expected->[6] = Does not exist
# Looks like you failed 5 tests of 6.
t/CairoPath.t ..... Dubious, test returned 5 (wstat 1280, 0x500)
Failed 5/6 subtests
t/CairoPattern.t .. ok
t/CairoRegion.t ... skipped: need cairo 1.10
t/CairoSurface.t .. 1/88 libpng error: Write Error
libpng error: Write Error
libpng error: Read Error
t/CairoSurface.t .. ok
some debug output attached, captured from t/CairoPath.t via hack
sub paths_agree {
my ($cr, $path, $expected_path) = @_;
$cr->new_path;
$cr->append_path ($path);
open my $fh, '>/tmp/txc';
use Data::Dumper qw(Dumper);
print $fh Dumper($cr->copy_path);
print $fh Dumper($expected_path);
close $fh;
is_deeply ($cr->copy_path, $expected_path);
}
Subject: | Cairo-1.090.tar.gz.diff |
diff -u Cairo-1.090.orig/CairoFont.xs Cairo-1.090/CairoFont.xs
--- Cairo-1.090.orig/CairoFont.xs 2011-11-27 17:56:45.000000000 +1000
+++ Cairo-1.090/CairoFont.xs 2012-02-24 13:26:47.000000000 +1000
@@ -28,8 +28,12 @@
/* These aren't wrapped yet: */
case CAIRO_FONT_TYPE_WIN32:
+#if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 6, 0)
case CAIRO_FONT_TYPE_QUARTZ:
+#endif
+#if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 8, 0)
case CAIRO_FONT_TYPE_USER:
+#endif
package = "Cairo::FontFace";
break;
diff -u Cairo-1.090.orig/CairoSurface.xs Cairo-1.090/CairoSurface.xs
--- Cairo-1.090.orig/CairoSurface.xs 2011-11-27 17:56:45.000000000 +1000
+++ Cairo-1.090/CairoSurface.xs 2012-02-24 13:27:57.000000000 +1000
@@ -98,9 +98,13 @@
case CAIRO_SURFACE_TYPE_WIN32:
case CAIRO_SURFACE_TYPE_BEOS:
case CAIRO_SURFACE_TYPE_DIRECTFB:
+#if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 4, 0)
case CAIRO_SURFACE_TYPE_OS2:
+#endif
+#if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 6, 0)
case CAIRO_SURFACE_TYPE_WIN32_PRINTING:
case CAIRO_SURFACE_TYPE_QUARTZ_IMAGE:
+#endif
#if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 10, 0)
case CAIRO_SURFACE_TYPE_SCRIPT:
case CAIRO_SURFACE_TYPE_QT:
diff -u Cairo-1.090.orig/Makefile.PL Cairo-1.090/Makefile.PL
--- Cairo-1.090.orig/Makefile.PL 2012-01-20 16:47:14.000000000 +1000
+++ Cairo-1.090/Makefile.PL 2012-02-24 13:34:12.000000000 +1000
@@ -321,9 +321,6 @@
CAIRO_SURFACE_TYPE_BEOS
CAIRO_SURFACE_TYPE_DIRECTFB
CAIRO_SURFACE_TYPE_SVG
- CAIRO_SURFACE_TYPE_OS2
- CAIRO_SURFACE_TYPE_WIN32_PRINTING
- CAIRO_SURFACE_TYPE_QUARTZ_IMAGE
/];
$enums{cairo_svg_version_t} = [qw/
@@ -354,6 +351,7 @@
add_new_enum_values(
cairo_status_t => [qw/CAIRO_STATUS_INVALID_INDEX
CAIRO_STATUS_CLIP_NOT_REPRESENTABLE/],
+ cairo_surface_type_t => [qw/CAIRO_SURFACE_TYPE_OS2/],
);
push @exports, qw/newSVCairoRectangle
@@ -365,6 +363,8 @@
cairo_font_type_t => [qw/CAIRO_FONT_TYPE_QUARTZ/],
cairo_status_t => [qw/CAIRO_STATUS_TEMP_FILE_ERROR
CAIRO_STATUS_INVALID_STRIDE/],
+ cairo_surface_type_t => [qw/CAIRO_SURFACE_TYPE_WIN32_PRINTING
+ CAIRO_SURFACE_TYPE_QUARTZ_IMAGE/],
);
Common subdirectories: Cairo-1.090.orig/examples and Cairo-1.090/examples
Common subdirectories: Cairo-1.090.orig/inc and Cairo-1.090/inc
Common subdirectories: Cairo-1.090.orig/lib and Cairo-1.090/lib
Common subdirectories: Cairo-1.090.orig/t and Cairo-1.090/t
Subject: | cairo-rhel5-debug.txt |
$VAR1 = bless( [
bless( {
'type' => 'move-to',
'points' => bless( [
bless( [
'1',
'2'
], 'Cairo::Path::Point' )
], 'Cairo::Path::Points' )
}, 'Cairo::Path::Data' ),
bless( {
'type' => 'curve-to',
'points' => bless( [
bless( [
'55',
'66'
], 'Cairo::Path::Point' ),
bless( [
'77',
'88'
], 'Cairo::Path::Point' ),
bless( [
'99',
'1010'
], 'Cairo::Path::Point' )
], 'Cairo::Path::Points' )
}, 'Cairo::Path::Data' ),
bless( {
'type' => 'line-to',
'points' => bless( [
bless( [
'3333',
'4444'
], 'Cairo::Path::Point' )
], 'Cairo::Path::Points' )
}, 'Cairo::Path::Data' ),
bless( {
'type' => 'line-to',
'points' => bless( [
bless( [
'23',
'42'
], 'Cairo::Path::Point' )
], 'Cairo::Path::Points' )
}, 'Cairo::Path::Data' ),
bless( {
'type' => 'close-path',
'points' => bless( [], 'Cairo::Path::Points' )
}, 'Cairo::Path::Data' ),
bless( {
'type' => 'move-to',
'points' => bless( [
bless( [
'1',
'2'
], 'Cairo::Path::Point' )
], 'Cairo::Path::Points' )
}, 'Cairo::Path::Data' ),
bless( {
'type' => 'move-to',
'points' => bless( [
bless( [
'1',
'2'
], 'Cairo::Path::Point' )
], 'Cairo::Path::Points' )
}, 'Cairo::Path::Data' )
], 'Cairo::Path' );
$VAR1 = [
{
'points' => [
[
1,
2
]
],
'type' => 'move-to'
},
{
'points' => [
[
55,
66
],
[
77,
88
],
[
99,
1010
]
],
'type' => 'curve-to'
},
{
'points' => [
[
3333,
4444
]
],
'type' => 'line-to'
},
{
'points' => [
[
23,
42
]
],
'type' => 'line-to'
},
{
'points' => [],
'type' => 'close-path'
},
{
'points' => [
[
1,
2
]
],
'type' => 'move-to'
}
];