Hello community,
here is the log from the commit of package perl-Cairo
checked in at Thu May 17 11:51:29 CEST 2007.
--------
--- perl-Cairo/perl-Cairo.changes 2007-03-28 19:00:39.000000000 +0200
+++ /mounts/work_src_done/STABLE/perl-Cairo/perl-Cairo.changes 2007-05-15 16:18:15.000000000 +0200
@@ -1,0 +2,11 @@
+Tue May 15 16:12:57 CEST 2007 - anicka@suse.cz
+
+- update to 1.040
+ * t/CairoSurface.t: For now, skip tests that make cairo crash.
+ * Cairo.pm: Document new API. Mark functions that were added
+ after cairo 1.0.
+ * Cairo.xs: If CAIRO_PERL_DEBUG is true, call
+ cairo_debug_reset_static_data at exit.
+ * t/CairoSurface.t: Re-add the binding for cairo_surface_finish.
+
+-------------------------------------------------------------------
Old:
----
Cairo-1.023.tar.bz2
New:
----
Cairo-1.040.tar.bz2
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ perl-Cairo.spec ++++++
--- /var/tmp/diff_new_pack.Jo1943/_old 2007-05-17 11:50:53.000000000 +0200
+++ /var/tmp/diff_new_pack.Jo1943/_new 2007-05-17 11:50:53.000000000 +0200
@@ -1,5 +1,5 @@
#
-# spec file for package perl-Cairo (Version 1.023 )
+# spec file for package perl-Cairo (Version 1.040 )
#
# Copyright (c) 2007 SUSE LINUX Products GmbH, Nuernberg, Germany.
# This file and all modifications and additions to the pristine
@@ -11,8 +11,8 @@
# norootforbuild
Name: perl-Cairo
-Version: 1.023
-Release: 4
+Version: 1.040
+Release: 1
Requires: perl = %{perl_version} perl-ExtUtils-Depends perl-ExtUtils-PkgConfig
BuildRequires: cairo-devel perl-ExtUtils-Depends perl-ExtUtils-PkgConfig pkgconfig
Autoreqprov: on
@@ -66,6 +66,14 @@
/var/adm/perl-modules/%{name}
%changelog
+* Tue May 15 2007 - anicka@suse.cz
+- update to 1.040
+ * t/CairoSurface.t: For now, skip tests that make cairo crash.
+ * Cairo.pm: Document new API. Mark functions that were added
+ after cairo 1.0.
+ * Cairo.xs: If CAIRO_PERL_DEBUG is true, call
+ cairo_debug_reset_static_data at exit.
+ * t/CairoSurface.t: Re-add the binding for cairo_surface_finish.
* Wed Mar 28 2007 - anicka@suse.cz
- temporarily disable t/CairoSurface.t because cairo segfaults
when the test is run (reported as #258451)
++++++ Cairo-1.023.tar.bz2 -> Cairo-1.040.tar.bz2 ++++++
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/Cairo-1.023/CairoPattern.xs new/Cairo-1.040/CairoPattern.xs
--- old/Cairo-1.023/CairoPattern.xs 2006-11-11 21:03:31.000000000 +0100
+++ new/Cairo-1.040/CairoPattern.xs 2007-05-06 13:28:37.000000000 +0200
@@ -3,7 +3,7 @@
*
* Licensed under the LGPL, see LICENSE file for more information.
*
- * $Header: /cvs/cairo/cairo-perl/CairoPattern.xs,v 1.11 2006/08/10 17:34:40 tsch Exp $
+ * $Header: /cvs/cairo/cairo-perl/CairoPattern.xs,v 1.13 2007/05/06 11:28:37 tsch Exp $
*/
#include
@@ -108,6 +108,24 @@
cairo_perl_package_table_insert (RETVAL, "Cairo::SolidPattern");
#endif
+#if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 4, 0)
+
+## cairo_status_t cairo_pattern_get_rgba (cairo_pattern_t *pattern, double *red, double *green, double *blue, double *alpha);
+void cairo_pattern_get_rgba (cairo_pattern_t *pattern)
+ PREINIT:
+ cairo_status_t status;
+ double red, green, blue, alpha;
+ PPCODE:
+ status = cairo_pattern_get_rgba (pattern, &red, &green, &blue, &alpha);
+ CAIRO_PERL_CHECK_STATUS (status);
+ EXTEND (sp, 4);
+ PUSHs (sv_2mortal (newSVnv (red)));
+ PUSHs (sv_2mortal (newSVnv (green)));
+ PUSHs (sv_2mortal (newSVnv (blue)));
+ PUSHs (sv_2mortal (newSVnv (alpha)));
+
+#endif
+
# --------------------------------------------------------------------------- #
MODULE = Cairo::Pattern PACKAGE = Cairo::SurfacePattern PREFIX = cairo_pattern_
@@ -132,6 +150,20 @@
cairo_filter_t cairo_pattern_get_filter (cairo_pattern_t * pattern);
+#if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 4, 0)
+
+## cairo_status_t cairo_pattern_get_surface (cairo_pattern_t *pattern, cairo_surface_t **surface);
+cairo_surface_t * cairo_pattern_get_surface (cairo_pattern_t *pattern)
+ PREINIT:
+ cairo_status_t status;
+ CODE:
+ status = cairo_pattern_get_surface (pattern, &RETVAL);
+ CAIRO_PERL_CHECK_STATUS (status);
+ OUTPUT:
+ RETVAL
+
+#endif
+
# --------------------------------------------------------------------------- #
MODULE = Cairo::Pattern PACKAGE = Cairo::Gradient PREFIX = cairo_pattern_
@@ -143,6 +175,34 @@
void cairo_pattern_add_color_stop_rgba (cairo_pattern_t *pattern, double offset, double red, double green, double blue, double alpha);
+#if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 4, 0)
+
+## cairo_status_t cairo_pattern_get_color_stop_count (cairo_pattern_t *pattern, int *count);
+## cairo_status_t cairo_pattern_get_color_stop_rgba (cairo_pattern_t *pattern, int index, double *offset, double *red, double *green, double *blue, double *alpha);
+void cairo_pattern_get_color_stops (cairo_pattern_t *pattern)
+ PREINIT:
+ cairo_status_t status;
+ int count, i;
+ double offset, red, green, blue, alpha;
+ PPCODE:
+ status = cairo_pattern_get_color_stop_count (pattern, &count);
+ CAIRO_PERL_CHECK_STATUS (status);
+ EXTEND (sp, count);
+ for (i = 0; i < count; i++) {
+ AV *av;
+ status = cairo_pattern_get_color_stop_rgba (pattern, i, &offset, &red, &green, &blue, &alpha);
+ CAIRO_PERL_CHECK_STATUS (status);
+ av = newAV ();
+ av_push (av, newSVnv (offset));
+ av_push (av, newSVnv (red));
+ av_push (av, newSVnv (green));
+ av_push (av, newSVnv (blue));
+ av_push (av, newSVnv (alpha));
+ PUSHs (sv_2mortal (newRV_noinc ((SV *) av)));
+ }
+
+#endif
+
# --------------------------------------------------------------------------- #
MODULE = Cairo::Pattern PACKAGE = Cairo::LinearGradient PREFIX = cairo_pattern_
@@ -159,6 +219,24 @@
OUTPUT:
RETVAL
+#if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 4, 0)
+
+## cairo_status_t cairo_pattern_get_linear_points (cairo_pattern_t *pattern, double *x0, double *y0, double *x1, double *y1);
+void cairo_pattern_get_points (cairo_pattern_t *pattern)
+ PREINIT:
+ cairo_status_t status;
+ double x0, y0, x1, y1;
+ PPCODE:
+ status = cairo_pattern_get_linear_points (pattern, &x0, &y0, &x1, &y1);
+ CAIRO_PERL_CHECK_STATUS (status);
+ EXTEND (sp, 4);
+ PUSHs (sv_2mortal (newSVnv (x0)));
+ PUSHs (sv_2mortal (newSVnv (y0)));
+ PUSHs (sv_2mortal (newSVnv (x1)));
+ PUSHs (sv_2mortal (newSVnv (y1)));
+
+#endif
+
# --------------------------------------------------------------------------- #
MODULE = Cairo::Pattern PACKAGE = Cairo::RadialGradient PREFIX = cairo_pattern_
@@ -174,3 +252,23 @@
#endif
OUTPUT:
RETVAL
+
+#if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 4, 0)
+
+## cairo_status_t cairo_pattern_get_radial_circles (cairo_pattern_t *pattern, double *x0, double *y0, double *r0, double *x1, double *y1, double *r1)
+void cairo_pattern_get_circles (cairo_pattern_t *pattern)
+ PREINIT:
+ cairo_status_t status;
+ double x0, y0, r0, x1, y1, r1;
+ PPCODE:
+ status = cairo_pattern_get_radial_circles (pattern, &x0, &y0, &r0, &x1, &y1, &r1);
+ CAIRO_PERL_CHECK_STATUS (status);
+ EXTEND (sp, 6);
+ PUSHs (sv_2mortal (newSVnv (x0)));
+ PUSHs (sv_2mortal (newSVnv (y0)));
+ PUSHs (sv_2mortal (newSVnv (r0)));
+ PUSHs (sv_2mortal (newSVnv (x1)));
+ PUSHs (sv_2mortal (newSVnv (y1)));
+ PUSHs (sv_2mortal (newSVnv (r1)));
+
+#endif
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/Cairo-1.023/cairo-perl.h new/Cairo-1.040/cairo-perl.h
--- old/Cairo-1.023/cairo-perl.h 2006-11-09 20:35:10.000000000 +0100
+++ new/Cairo-1.040/cairo-perl.h 2007-05-06 13:28:37.000000000 +0200
@@ -3,7 +3,7 @@
*
* Licensed under the LGPL, see LICENSE file for more information.
*
- * $Header: /cvs/cairo/cairo-perl/cairo-perl.h,v 1.10 2006/07/15 14:41:11 tsch Exp $
+ * $Header: /cvs/cairo/cairo-perl/cairo-perl.h,v 1.12 2007/05/06 11:28:37 tsch Exp $
*
*/
@@ -46,15 +46,21 @@
/*
* custom struct handling
*/
-SV * newSVCairoFontExtents (cairo_font_extents_t * extents);
+SV * newSVCairoFontExtents (cairo_font_extents_t *extents);
-SV * newSVCairoTextExtents (cairo_text_extents_t * extents);
+SV * newSVCairoTextExtents (cairo_text_extents_t *extents);
-SV * newSVCairoGlyph (cairo_glyph_t * glyph);
-cairo_glyph_t * SvCairoGlyph (SV * sv);
+SV * newSVCairoGlyph (cairo_glyph_t *glyph);
+cairo_glyph_t * SvCairoGlyph (SV *sv);
-SV * newSVCairoPath (cairo_path_t * path);
-cairo_path_t * SvCairoPath (SV * sv);
+SV * newSVCairoPath (cairo_path_t *path);
+cairo_path_t * SvCairoPath (SV *sv);
+
+#if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 4, 0)
+
+SV * newSVCairoRectangle (cairo_rectangle_t *rectangle);
+
+#endif
/*
* special treatment for surfaces
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/Cairo-1.023/cairo-perl-private.h new/Cairo-1.040/cairo-perl-private.h
--- old/Cairo-1.023/cairo-perl-private.h 2006-11-11 21:03:31.000000000 +0100
+++ new/Cairo-1.040/cairo-perl-private.h 2006-11-09 20:43:43.000000000 +0100
@@ -3,13 +3,15 @@
*
* Licensed under the LGPL, see LICENSE file for more information.
*
- * $Header: /cvs/cairo/cairo-perl/cairo-perl-private.h,v 1.4 2006/08/10 17:34:40 tsch Exp $
+ * $Header: /cvs/cairo/cairo-perl/cairo-perl-private.h,v 1.5 2006/11/09 19:43:43 tsch Exp $
*
*/
#ifndef _CAIRO_PERL_PRIVATE_H_
#define _CAIRO_PERL_PRIVATE_H_
+void * cairo_perl_alloc_temp (int nbytes);
+
void cairo_perl_set_isa (const char * child_package, const char * parent_package);
cairo_matrix_t * cairo_perl_copy_matrix (cairo_matrix_t *matrix);
@@ -22,4 +24,11 @@
#endif
+#define CAIRO_PERL_CHECK_STATUS(status) \
+ if (CAIRO_STATUS_SUCCESS != status) { \
+ SV *errsv = get_sv ("@", TRUE); \
+ sv_setsv (errsv, newSVCairoStatus (status)); \
+ croak (Nullch); \
+ }
+
#endif /* _CAIRO_PERL_PRIVATE_H_ */
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/Cairo-1.023/Cairo.pm new/Cairo-1.040/Cairo.pm
--- old/Cairo-1.023/Cairo.pm 2007-02-25 13:17:41.000000000 +0100
+++ new/Cairo-1.040/Cairo.pm 2007-05-10 21:04:16.000000000 +0200
@@ -1,9 +1,9 @@
#
-# Copyright (c) 2004-2007 by the cairo perl team (see the file README)
+# Copyright (c) 2004-2006 by the cairo perl team (see the file README)
#
# Licensed under the LGPL, see LICENSE file for more information.
#
-# $Header: /cvs/cairo/cairo-perl/Cairo.pm,v 1.22.2.3 2007/02/25 12:17:41 tsch Exp $
+# $Header: /cvs/cairo/cairo-perl/Cairo.pm,v 1.26 2007/05/10 19:04:16 tsch Exp $
#
package Cairo;
@@ -14,7 +14,7 @@
our @ISA = qw/DynaLoader/;
-our $VERSION = '1.023';
+our $VERSION = '1.040';
sub dl_load_flags { $^O eq 'darwin' ? 0x00 : 0x01 }
@@ -93,9 +93,9 @@
=head4 $surface = $cr->get_target
-=head4 $cr->push_group
+=head4 $cr->push_group [1.2]
-=head4 $cr->push_group_with_content ($content)
+=head4 $cr->push_group_with_content ($content) [1.2]
=over
@@ -103,11 +103,11 @@
=back
-=head4 $pattern = $cr->pop_group
+=head4 $pattern = $cr->pop_group [1.2]
-=head4 $cr->pop_group_to_source
+=head4 $cr->pop_group_to_source [1.2]
-=head4 $surface = $cr->get_group_target
+=head4 $surface = $cr->get_group_target [1.2]
=head4 $cr->set_source_rgb ($red, $green, $blue)
@@ -217,7 +217,7 @@
=head4 $width = $cr->get_line_width
-=head4 $cr->set_miter_limit ($ limit)
+=head4 $cr->set_miter_limit ($limit)
=over
@@ -225,6 +225,8 @@
=back
+=head4 ($offset, @dashes) = $cr->get_dash [1.4]
+
=head4 $limit = $cr->get_miter_limit
=head4 $cr->set_operator ($op)
@@ -251,6 +253,10 @@
=head4 $cr->clip_preserve
+=head4 ($x1, $y1, $x2, $y2) = $cr->clip_extents [1.4]
+
+=head4 @rectangles = $cr->copy_clip_rectangle_list [1.4]
+
=head4 $cr->reset_clip
=head4 $cr->fill
@@ -391,7 +397,7 @@
=head4 $cr->new_path
-=head4 $cr->new_sub_path
+=head4 $cr->new_sub_path [1.2]
=head4 $cr->close_path
@@ -541,7 +547,7 @@
=head4 $status = $pattern->status
-=head4 $type = $pattern->get_type
+=head4 $type = $pattern->get_type [1.2]
=head4 $pattern->set_matrix ($matrix)
@@ -579,7 +585,7 @@
=back
-=head4 $matrix = $pattern->get_matrix
+=head4 ($r, $g, $b, $a) = $pattern->get_rgba [1.4]
=head4 $pattern = Cairo::SurfacePattern->create ($surface)
@@ -609,6 +615,8 @@
=head4 $filter = $pattern->get_filter
+=head4 $surface = $pattern->get_surface [1.4]
+
=head4 $pattern = Cairo::LinearGradient->create ($x0, $y0, $x1, $y1)
=over
@@ -623,6 +631,8 @@
=back
+=head4 ($x0, $y0, $x1, $y1) = $pattern->get_points [1.4]
+
=head4 $pattern = Cairo::RadialGradient->create ($cx0, $cy0, $radius0, $cx1, $cy1, $radius1)
=over
@@ -641,6 +651,8 @@
=back
+=head4 ($x0, $y0, $r0, $x1, $y1, $r1) = $pattern->get_circles [1.4]
+
=head4 $pattern->add_color_stop_rgb (double offset, double red, double green, double blue)
=over
@@ -671,6 +683,11 @@
=back
+=head4 @stops = $pattern->get_color_stops [1.4]
+
+A color stop is represented as an array reference with five elements: offset,
+red, green, blue, and alpha.
+
=cut
# --------------------------------------------------------------------------- #
@@ -818,7 +835,7 @@
=head4 $options = $cr->get_font_options
-=head4 $cr->set_scaled_font ($scaled_font)
+=head4 $cr->set_scaled_font ($scaled_font) [1.2]
=over
@@ -826,6 +843,8 @@
=back
+=head4 $scaled_font = $cr->get_scaled_font [1.4]
+
=head4 $cr->show_text ($utf8)
=over
@@ -888,7 +907,7 @@
=head4 $status = $font_face->status
-=head4 $type = $font_face->get_type
+=head4 $type = $font_face->get_type [1.2]
=cut
@@ -914,7 +933,7 @@
=head4 $extents = $scaled_font->extents
-=head4 $extents = $scaled_font->text_extents ($utf8)
+=head4 $extents = $scaled_font->text_extents ($utf8) [1.2]
=over
@@ -930,15 +949,15 @@
=back
-=head4 $font_face = $scaled_font->get_font_face
+=head4 $font_face = $scaled_font->get_font_face [1.2]
-=head4 $options = $scaled_font->get_font_options
+=head4 $options = $scaled_font->get_font_options [1.2]
-=head4 $font_matrix = $scaled_font->get_font_matrix
+=head4 $font_matrix = $scaled_font->get_font_matrix [1.2]
-=head4 $ctm = $scaled_font->get_ctm
+=head4 $ctm = $scaled_font->get_ctm [1.2]
-=head4 $type = $scaled_font->get_type
+=head4 $type = $scaled_font->get_type [1.2]
=cut
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/Cairo-1.023/CairoSurface.xs new/Cairo-1.040/CairoSurface.xs
--- old/Cairo-1.023/CairoSurface.xs 2006-11-23 20:13:01.000000000 +0100
+++ new/Cairo-1.040/CairoSurface.xs 2007-03-17 17:13:32.000000000 +0100
@@ -3,7 +3,7 @@
*
* Licensed under the LGPL, see LICENSE file for more information.
*
- * $Header: /cvs/cairo/cairo-perl/CairoSurface.xs,v 1.17.2.1 2006/11/23 19:13:01 tsch Exp $
+ * $Header: /cvs/cairo/cairo-perl/CairoSurface.xs,v 1.19 2007/03/17 16:13:32 tsch Exp $
*/
#include
@@ -257,6 +257,8 @@
}
#endif
+void cairo_surface_finish (cairo_surface_t *surface);
+
cairo_status_t cairo_surface_status (cairo_surface_t *surface);
void cairo_surface_set_device_offset (cairo_surface_t *surface, double x_offset, double y_offset);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/Cairo-1.023/Cairo.xs new/Cairo-1.040/Cairo.xs
--- old/Cairo-1.023/Cairo.xs 2006-11-11 21:03:31.000000000 +0100
+++ new/Cairo-1.040/Cairo.xs 2007-05-06 13:28:37.000000000 +0200
@@ -3,7 +3,7 @@
*
* Licensed under the LGPL, see LICENSE file for more information.
*
- * $Header: /cvs/cairo/cairo-perl/Cairo.xs,v 1.14 2006/08/10 17:34:40 tsch Exp $
+ * $Header: /cvs/cairo/cairo-perl/Cairo.xs,v 1.20 2007/05/06 11:28:37 tsch Exp $
*
*/
@@ -29,23 +29,6 @@
/* ------------------------------------------------------------------------- */
-#define DOUBLES_DECLARE \
- int i, n; double * pts;
-#define DOUBLES_SLURP_FROM_STACK(first) \
- n = (items - first); \
- pts = (double*)malloc (sizeof (double) * n); \
- if (!pts) \
- croak ("malloc failure for (%d) elements", n); \
- for (i = first ; i < items ; i++) { \
- pts[i-first] = SvIV (ST (i)); \
- }
-#define DOUBLES_LEN n
-#define DOUBLES_ARRAY pts
-#define DOUBLES_CLEANUP \
- free (pts);
-
-/* ------------------------------------------------------------------------- */
-
/* Copied from Glib/GType.xs. */
void
cairo_perl_set_isa (const char *child_package,
@@ -104,7 +87,7 @@
/* ------------------------------------------------------------------------- */
SV *
-newSVCairoFontExtents (cairo_font_extents_t * extents)
+newSVCairoFontExtents (cairo_font_extents_t *extents)
{
HV *hv;
double value;
@@ -135,7 +118,7 @@
/* ------------------------------------------------------------------------- */
SV *
-newSVCairoTextExtents (cairo_text_extents_t * extents)
+newSVCairoTextExtents (cairo_text_extents_t *extents)
{
HV *hv;
double value;
@@ -169,8 +152,8 @@
/* ------------------------------------------------------------------------- */
/* taken from Glib/Glib.xs */
-static void *
-alloc_temp (int nbytes)
+void *
+cairo_perl_alloc_temp (int nbytes)
{
dTHR;
SV * s;
@@ -183,7 +166,7 @@
}
SV *
-newSVCairoGlyph (cairo_glyph_t * glyph)
+newSVCairoGlyph (cairo_glyph_t *glyph)
{
HV *hv;
unsigned long index;
@@ -207,7 +190,7 @@
}
cairo_glyph_t *
-SvCairoGlyph (SV * sv)
+SvCairoGlyph (SV *sv)
{
HV *hv;
SV **value;
@@ -217,7 +200,7 @@
croak ("cairo_glyph_t must be a hash reference");
hv = (HV *) SvRV (sv);
- glyph = alloc_temp (sizeof (cairo_glyph_t));
+ glyph = cairo_perl_alloc_temp (sizeof (cairo_glyph_t));
value = hv_fetch (hv, "index", 5, 0);
if (value && SvOK (*value))
@@ -236,8 +219,38 @@
/* ------------------------------------------------------------------------- */
+#if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 4, 0)
+
+SV *
+newSVCairoRectangle (cairo_rectangle_t *rectangle)
+{
+ HV *hv;
+
+ if (!rectangle)
+ return &PL_sv_undef;
+
+ hv = newHV ();
+
+ hv_store (hv, "x", 1, newSVnv (rectangle->x), 0);
+ hv_store (hv, "y", 1, newSVnv (rectangle->y), 0);
+ hv_store (hv, "width", 5, newSVnv (rectangle->width), 0);
+ hv_store (hv, "height", 6, newSVnv (rectangle->height), 0);
+
+ return newRV_noinc ((SV *) hv);
+}
+
+#endif
+
+/* ------------------------------------------------------------------------- */
+
MODULE = Cairo PACKAGE = Cairo PREFIX = cairo_
+BOOT:
+#include "cairo-perl-boot.xsh"
+#if CAIRO_PERL_DEBUG
+ call_atexit ((ATEXIT_t) cairo_debug_reset_static_data, NULL);
+#endif
+
int VERSION (class=NULL)
CODE:
RETVAL = CAIRO_VERSION;
@@ -278,9 +291,6 @@
MODULE = Cairo PACKAGE = Cairo::Context PREFIX = cairo_
-BOOT:
-#include "cairo-perl-boot.xsh"
-
cairo_t_noinc * cairo_create (class, cairo_surface_t * target);
C_ARGS:
target
@@ -328,14 +338,27 @@
void cairo_set_line_join (cairo_t * cr, cairo_line_join_t line_join);
##void cairo_set_dash (cairo_t * cr, double * dashes, int ndash, double offset);
-void cairo_set_dash (cairo_t * cr, double offset, dash1, ...)
+void cairo_set_dash (cairo_t * cr, double offset, ...)
PREINIT:
- DOUBLES_DECLARE
+ int i, n;
+ double *pts;
CODE:
- DOUBLES_SLURP_FROM_STACK (2)
- cairo_set_dash (cr, DOUBLES_ARRAY, DOUBLES_LEN, offset);
+#define FIRST 2
+ n = (items - FIRST);
+ if (n == 0) {
+ pts = NULL;
+ } else {
+ pts = malloc (sizeof (double) * n);
+ if (!pts)
+ croak ("malloc failure for (%d) elements", n);
+ for (i = FIRST ; i < items ; i++)
+ pts[i - FIRST] = SvNV (ST (i));
+ }
+#undef FIRST
+ cairo_set_dash (cr, pts, n, offset);
CLEANUP:
- DOUBLES_CLEANUP
+ if (pts)
+ free (pts);
void cairo_set_miter_limit (cairo_t * cr, double limit);
@@ -419,6 +442,25 @@
void cairo_clip_preserve (cairo_t *cr);
+#if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 4, 0)
+
+##cairo_rectangle_list_t * cairo_copy_clip_rectangle_list (cairo_t *cr);
+void cairo_copy_clip_rectangle_list (cairo_t *cr)
+ PREINIT:
+ cairo_rectangle_list_t *list;
+ int i;
+ PPCODE:
+ list = cairo_copy_clip_rectangle_list (cr);
+ CAIRO_PERL_CHECK_STATUS (list->status);
+ EXTEND (sp, list->num_rectangles);
+ for (i = 0; i < list->num_rectangles; i++)
+ PUSHs (sv_2mortal (newSVCairoRectangle (&(list->rectangles[i]))));
+ cairo_rectangle_list_destroy (list);
+
+void cairo_clip_extents (cairo_t *cr, OUTLIST double x1, OUTLIST double y1, OUTLIST double x2, OUTLIST double y2);
+
+#endif
+
void cairo_reset_clip (cairo_t *cr);
void cairo_select_font_face (cairo_t *cr, const char *family, cairo_font_slant_t slant, cairo_font_weight_t weight);
@@ -453,6 +495,12 @@
#endif
+#if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 4, 0)
+
+cairo_scaled_font_t * cairo_get_scaled_font (cairo_t *cr);
+
+#endif
+
void cairo_show_text (cairo_t * cr, const char * utf8);
##void cairo_show_glyphs (cairo_t * cr, cairo_glyph_t * glyphs, int num_glyphs);
@@ -544,6 +592,32 @@
double cairo_get_miter_limit (cairo_t *cr);
+#if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 4, 0)
+
+## int cairo_get_dash_count (cairo_t *cr);
+## void cairo_get_dash (cairo_t *cr, double *dashes, double *offset);
+void cairo_get_dash (cairo_t *cr)
+ PREINIT:
+ int count, i;
+ double *dashes, offset;
+ PPCODE:
+ count = cairo_get_dash_count (cr);
+ if (count == 0) {
+ dashes = NULL;
+ } else {
+ dashes = malloc (sizeof (double) * count);
+ if (!dashes)
+ croak ("malloc failure for (%d) elements", count);
+ }
+ cairo_get_dash (cr, dashes, &offset);
+ EXTEND (sp, count + 1);
+ PUSHs (sv_2mortal (newSVnv (offset)));
+ for (i = 0; i < count; i++)
+ PUSHs (sv_2mortal (newSVnv (dashes[i])));
+ free (dashes);
+
+#endif
+
##void cairo_get_matrix (cairo_t *cr, cairo_matrix_t *matrix);
cairo_matrix_t * cairo_get_matrix (cairo_t *cr)
PREINIT:
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/Cairo-1.023/ChangeLog new/Cairo-1.040/ChangeLog
--- old/Cairo-1.023/ChangeLog 2007-02-25 13:17:18.000000000 +0100
+++ new/Cairo-1.040/ChangeLog 2007-05-10 21:05:17.000000000 +0200
@@ -1,38 +1,103 @@
-2007-02-25 tsch
+2007-05-10 tsch
- * Cairo.pm, NEWS, README: Stable release 1.023.
+ * Cairo.pm, NEWS, README: Stable release 1.040.
-2007-01-05 tsch
+2007-05-10 tsch
+
+ * t/CairoSurface.t: For now, skip tests that make cairo crash.
+
+2007-05-06 tsch
+
+ * Cairo.pm: Document new API. Mark functions that were added
+ after cairo 1.0.
+
+2007-05-06 tsch
+
+ * Cairo.xs
+ * CairoPattern.xs
+ * Makefile.PL
+ * cairo-perl.h
+ * t/Cairo.t
+ * t/CairoPattern.t: Use 1.4.0 in version checks.
+
+ * Cairo.xs: If CAIRO_PERL_DEBUG is true, call
+ cairo_debug_reset_static_data at exit.
+
+2007-03-17 tsch
+
+ * Cairo.xs
+ * t/Cairo.t: Wrap cairo_get_scaled_font.
+
+ * CairoSurface.xs
+ * t/CairoSurface.t: Re-add the binding for cairo_surface_finish.
+ It was orignally removed because its effect can also be achieved
+ by destroying the surface or letting it go out of scope. But
+ Oleksandr Alex Protasenko convinced me that it's still a good idea
+ to have it anyway, mainly for paginated surfaces like PDF and PS
+ which defer rendering as long as they can. With $surf->finish you
+ can more clearly express what you're intending to do than with
+ $surf = undef.
+
+ * examples/png-streams.pl: Fix indention.
+
+2007-01-21 tsch
+
+ * Cairo.pm, NEWS, README: Unstable release 1.031.
+
+2007-01-21 tsch
- Merge from HEAD:
+ * Cairo.xs: Track upstream API change: cairo_get_dash_count
+ returns the count directly; cairo_get_dash_count and
+ cairo_get_dash don't return a status anymore.
+
+2007-01-18 tsch
+
+ * t/Cairo.t, Cairo.xs: Track upstream API improvement:
+ cairo_copy_clip_rectangles -> cairo_copy_clip_rectangle_list.
+
+2007-01-05 tsch
* t/CairoSurface.t: Fix an endianness problem.
2006-12-30 tsch
- * Cairo.pm, NEWS, README: Stable release 1.022.
+ * MakeHelper.pm: Fix the valid-value lists in enum error messages.
-2006-12-30 tsch
+2006-12-28 tsch
- Merge from HEAD:
+ * Cairo.pm, NEWS, README: Unstable release 1.030.
- * MakeHelper.pm: Fix the valid-value lists in enum error messages.
+2006-12-28 tsch
-2006-11-23 tsch
+ * Cairo.xs, cairo-perl.h, t/Cairo.t: Wrap and test
+ cairo_copy_clip_rectangles and cairo_clip_extents.
- Merge from HEAD:
+2006-11-23 tsch
* CairoSurface.xs, t/CairoSurface.t: Make
Cairo::ImageSurface::get_data usable by specifying the buffer
length.
-2006-11-11 tsch
+ * MANIFEST, Makefile.PL, doctypes: Describe our types.
+
+ * NEWS: Merge from stable-1-0.
+
+2006-11-09 tsch
+
+ * Cairo.xs, cairo-perl-private.h: Export cairo_perl_alloc_temp
+ privately.
+
+ * Cairo.xs: Remove the DOUBLES_ macros and inline them. They were
+ used only in one place.
- * Cairo.pm, NEWS, README: Brown paper bag release 1.021.
+ * Cairo.xs, t/Cairo.t: Wrap cairo_get_dash.
-2006-11-11 tsch
+ * CairoPattern.xs, cairo-perl-private.h, t/CairoPattern.t: Wrap
+ cairo_pattern_get_rgba, cairo_pattern_get_surface,
+ cairo_pattern_get_color_stop_rgba, cairo_pattern_get_points, and
+ cairo_pattern_get_circles.
- * t/CairoSurface.t: Skip content tests on old cairo's.
+ * Makefile.PL: Support new cairo_status_t values.
2006-11-09 tsch
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/Cairo-1.023/doctypes new/Cairo-1.040/doctypes
--- old/Cairo-1.023/doctypes 1970-01-01 01:00:00.000000000 +0100
+++ new/Cairo-1.040/doctypes 2006-11-23 20:00:00.000000000 +0100
@@ -0,0 +1,2 @@
+cairo_t Cairo::Context
+cairo_font_options_t Cairo::FontOptions
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/Cairo-1.023/examples/png-streams.pl new/Cairo-1.040/examples/png-streams.pl
--- old/Cairo-1.023/examples/png-streams.pl 2006-11-09 20:35:10.000000000 +0100
+++ new/Cairo-1.040/examples/png-streams.pl 2007-03-17 17:13:32.000000000 +0100
@@ -1,6 +1,6 @@
#!/usr/bin/perl
-# $Id: png-streams.pl,v 1.1 2006/08/11 18:51:46 tsch Exp $
+# $Id: png-streams.pl,v 1.2 2007/03/17 16:13:32 tsch Exp $
use strict;
use warnings;
@@ -18,7 +18,7 @@
my $buffer;
if ($length != sysread ($rfh, $buffer, $length)) {
- die 'read-error';
+ die 'read-error';
}
return $buffer;
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/Cairo-1.023/Makefile.PL new/Cairo-1.040/Makefile.PL
--- old/Cairo-1.023/Makefile.PL 2006-11-11 21:03:31.000000000 +0100
+++ new/Cairo-1.040/Makefile.PL 2007-05-06 13:28:37.000000000 +0200
@@ -3,7 +3,7 @@
#
# Licensed under the LGPL, see LICENSE file for more information.
#
-# $Header: /cvs/cairo/cairo-perl/Makefile.PL,v 1.20 2006/08/27 12:42:32 tsch Exp $
+# $Header: /cvs/cairo/cairo-perl/Makefile.PL,v 1.23 2007/05/06 11:28:37 tsch Exp $
#
use strict;
@@ -207,7 +207,10 @@
/],
);
+# --------------------------------------------------------------------------- #
+
my $have_cairo_1_2 = ExtUtils::PkgConfig->atleast_version("cairo", "1.2.0");
+my $have_cairo_1_4 = ExtUtils::PkgConfig->atleast_version("cairo", "1.4.0");
if ($have_cairo_1_2) {
my %new = (
@@ -268,6 +271,21 @@
$enums{cairo_svg_version_t} = [];
}
+if ($have_cairo_1_4) {
+ my %new = (
+ cairo_status_t => [qw/CAIRO_STATUS_INVALID_INDEX
+ CAIRO_STATUS_CLIP_NOT_REPRESENTABLE/],
+ );
+
+ foreach my $enum (keys %new) {
+ foreach my $value (@{$new{$enum}}) {
+ push @{$enums{$enum}}, $value;
+ }
+ }
+}
+
+# --------------------------------------------------------------------------- #
+
my %enum_guards = (
cairo_svg_version_t => $backend_guards{cairo_svg_surface_t},
);
@@ -295,6 +313,7 @@
$dep->install (qw(cairo-perl.h
cairo-perl.typemap
+ doctypes
build/cairo-perl-auto.h
build/cairo-perl-auto.typemap));
$dep->save_config ('build/IFiles.pm');
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/Cairo-1.023/MakeHelper.pm new/Cairo-1.040/MakeHelper.pm
--- old/Cairo-1.023/MakeHelper.pm 2006-12-30 20:17:05.000000000 +0100
+++ new/Cairo-1.040/MakeHelper.pm 2006-12-30 20:16:31.000000000 +0100
@@ -2,7 +2,7 @@
# this is all hacky etc. it works so it's gonna stay for now. it is not and
# should not be installed.
#
-# $Header: /cvs/cairo/cairo-perl/MakeHelper.pm,v 1.10.2.1 2006/12/30 19:17:05 tsch Exp $
+# $Header: /cvs/cairo/cairo-perl/MakeHelper.pm,v 1.11 2006/12/30 19:16:31 tsch Exp $
#
package MakeHelper;
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/Cairo-1.023/MANIFEST new/Cairo-1.040/MANIFEST
--- old/Cairo-1.023/MANIFEST 2007-02-25 13:17:53.000000000 +0100
+++ new/Cairo-1.040/MANIFEST 2007-05-10 21:06:13.000000000 +0200
@@ -17,6 +17,7 @@
cairo-perl-private.h
cairo-perl.h
cairo-perl.typemap
+doctypes
examples/png-streams.pl
examples/png/README
examples/png/bevels.pl
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/Cairo-1.023/META.yml new/Cairo-1.040/META.yml
--- old/Cairo-1.023/META.yml 2007-02-25 13:17:53.000000000 +0100
+++ new/Cairo-1.040/META.yml 2007-05-10 21:06:13.000000000 +0200
@@ -1,6 +1,6 @@
--- #YAML:1.0
name: Cairo
-version: 1.023
+version: 1.040
abstract: Perl interface to the cairo library
license: ~
generated_by: ExtUtils::MakeMaker version 6.32
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/Cairo-1.023/NEWS new/Cairo-1.040/NEWS
--- old/Cairo-1.023/NEWS 2007-02-25 13:16:35.000000000 +0100
+++ new/Cairo-1.040/NEWS 2007-05-06 13:58:24.000000000 +0200
@@ -1,13 +1,26 @@
-Overview of changes in Cairo 1.023
+Overview of changes in Cairo 1.040
==================================
-* Fix a test failure related to endianness.
+* Re-add Cairo::Surface::finish.
+* Add support for cairo_get_scaled_font.
+* Document the new API.
-Overview of changes in Cairo 1.022
+Overview of changes in Cairo 1.031
==================================
+* Track upstream API improvements.
+* Fix enum error messages to display the correct list of allowed values.
+* Fix a endianness-related test failure.
+
+Overview of changes in Cairo 1.030
+==================================
+
+* Add support for new API:
+ - cairo_get_dash, cairo_copy_clip_rectangles, and cairo_clip_extents.
+ - cairo_pattern_get_rgba, cairo_pattern_get_surface,
+ cairo_pattern_get_color_stop_rgba, cairo_pattern_get_points, and
+ cairo_pattern_get_circles.
* Make Cairo::ImageSurface::get_data usable.
-* Fix the valid-value lists in enum error messages.
Overview of changes in Cairo 1.021
==================================
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/Cairo-1.023/README new/Cairo-1.040/README
--- old/Cairo-1.023/README 2007-02-25 13:15:53.000000000 +0100
+++ new/Cairo-1.040/README 2007-05-06 13:29:31.000000000 +0200
@@ -1,4 +1,4 @@
-Cairo version 1.023
+Cairo version 1.040
===================
Perl bindings to the cairo graphics library (http://www.cairographics.org).
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/Cairo-1.023/t/CairoPattern.t new/Cairo-1.040/t/CairoPattern.t
--- old/Cairo-1.023/t/CairoPattern.t 2006-11-11 21:03:31.000000000 +0100
+++ new/Cairo-1.040/t/CairoPattern.t 2007-05-06 13:28:37.000000000 +0200
@@ -3,13 +3,13 @@
#
# Licensed under the LGPL, see LICENSE file for more information.
#
-# $Header: /cvs/cairo/cairo-perl/t/CairoPattern.t,v 1.5 2006/08/10 17:34:40 tsch Exp $
+# $Header: /cvs/cairo/cairo-perl/t/CairoPattern.t,v 1.7 2007/05/06 11:28:37 tsch Exp $
#
use strict;
use warnings;
-use Test::More tests => 17;
+use Test::More tests => 25;
use constant {
IMG_WIDTH => 256,
@@ -60,5 +60,33 @@
skip 'new stuff', 1
unless Cairo::VERSION >= Cairo::VERSION_ENCODE (1, 2, 0);
+ my $pat = Cairo::RadialGradient->create (1, 2, 3, 4, 5, 6);
is ($pat->get_type, 'radial');
}
+
+SKIP: {
+ skip 'new stuff', 8,
+ unless Cairo::VERSION >= Cairo::VERSION_ENCODE (1, 4, 0);
+
+ my $pat = Cairo::SolidPattern->create_rgb(1.0, 0.0, 0.0);
+ my ($r, $g, $b, $a) = $pat->get_rgba;
+ is ($r, 1.0);
+ is ($g, 0.0);
+ is ($b, 0.0);
+ is ($a, 1.0);
+
+ my $surf = Cairo::ImageSurface->create ('rgb24', IMG_WIDTH, IMG_HEIGHT);
+ $pat = Cairo::SurfacePattern->create ($surf);
+ isa_ok ($pat->get_surface, 'Cairo::ImageSurface');
+
+ $pat = Cairo::LinearGradient->create (1, 2, 3, 4);
+ $pat->add_color_stop_rgba (0.25, 1, 0, 1, 0);
+ $pat->add_color_stop_rgba (0.75, 0, 1, 0, 1);
+ is_deeply ([$pat->get_color_stops], [[0.25, 1, 0, 1, 0], [0.75, 0, 1, 0, 1]]);
+
+ $pat = Cairo::LinearGradient->create (1.5, 2.5, 3.5, 4.5);
+ is_deeply ([$pat->get_points], [1.5, 2.5, 3.5, 4.5]);
+
+ $pat = Cairo::RadialGradient->create (1.5, 2.5, 3.5, 4.5, 5.5, 6.5);
+ is_deeply ([$pat->get_circles], [1.5, 2.5, 3.5, 4.5, 5.5, 6.5]);
+}
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/Cairo-1.023/t/CairoSurface.t new/Cairo-1.040/t/CairoSurface.t
--- old/Cairo-1.023/t/CairoSurface.t 2007-01-05 22:02:49.000000000 +0100
+++ new/Cairo-1.040/t/CairoSurface.t 2007-05-10 21:01:13.000000000 +0200
@@ -3,7 +3,7 @@
#
# Licensed under the LGPL, see LICENSE file for more information.
#
-# $Header: /cvs/cairo/cairo-perl/t/CairoSurface.t,v 1.17.2.3 2007/01/05 21:02:49 tsch Exp $
+# $Header: /cvs/cairo/cairo-perl/t/CairoSurface.t,v 1.21 2007/05/10 19:01:13 tsch Exp $
#
use strict;
@@ -68,6 +68,8 @@
}
}
+$surf->finish;
+
$surf = $surf->create_similar ('color', IMG_WIDTH, IMG_HEIGHT);
isa_ok ($surf, 'Cairo::ImageSurface');
isa_ok ($surf, 'Cairo::Surface');
@@ -245,8 +247,9 @@
SKIP: {
+ # FIXME: Re-enable this once the bug is fixed upstream.
skip 'create_for_stream on ps surfaces', 4
- unless Cairo::VERSION >= Cairo::VERSION_ENCODE (1, 2, 0);
+ unless 0; # Cairo::VERSION >= Cairo::VERSION_ENCODE (1, 2, 0);
$surf = Cairo::PsSurface->create_for_stream (sub {
my ($closure, $data) = @_;
@@ -272,14 +275,20 @@
unlink 'tmp.svg';
- $surf = Cairo::SvgSurface->create_for_stream (sub {
- my ($closure, $data) = @_;
- is ($closure, 'blub');
- like ($data, qr/xml/);
- die 'write-error';
- }, 'blub', IMG_WIDTH, IMG_HEIGHT);
- isa_ok ($surf, 'Cairo::SvgSurface');
- isa_ok ($surf, 'Cairo::Surface');
+ SKIP: {
+ # FIXME: Re-enable this once the bug is fixed upstream.
+ skip 'create_for_stream on svg surfaces', 4
+ unless 0;
+
+ $surf = Cairo::SvgSurface->create_for_stream (sub {
+ my ($closure, $data) = @_;
+ is ($closure, 'blub');
+ like ($data, qr/xml/);
+ die 'write-error';
+ }, 'blub', IMG_WIDTH, IMG_HEIGHT);
+ isa_ok ($surf, 'Cairo::SvgSurface');
+ isa_ok ($surf, 'Cairo::Surface');
+ }
my @versions = Cairo::SvgSurface::get_versions();
ok (scalar @versions > 0);
diff -urN --exclude=CVS --exclude=.cvsignore --exclude=.svn --exclude=.svnignore old/Cairo-1.023/t/Cairo.t new/Cairo-1.040/t/Cairo.t
--- old/Cairo-1.023/t/Cairo.t 2006-11-11 21:03:31.000000000 +0100
+++ new/Cairo-1.040/t/Cairo.t 2007-05-06 13:28:37.000000000 +0200
@@ -3,13 +3,13 @@
#
# Licensed under the LGPL, see LICENSE file for more information.
#
-# $Header: /cvs/cairo/cairo-perl/t/Cairo.t,v 1.9 2006/08/10 17:34:40 tsch Exp $
+# $Header: /cvs/cairo/cairo-perl/t/Cairo.t,v 1.14 2007/05/06 11:28:37 tsch Exp $
#
use strict;
use warnings;
-use Test::More tests => 56;
+use Test::More tests => 68;
use constant {
IMG_WIDTH => 256,
@@ -77,6 +77,22 @@
is ($cr->get_line_join, 'miter');
$cr->set_dash (0, 2, 4, 6, 4, 2);
+$cr->set_dash (0);
+
+SKIP: {
+ skip 'new stuff', 4
+ unless Cairo::VERSION >= Cairo::VERSION_ENCODE (1, 4, 0);
+
+ $cr->set_dash (0.5, 2.3, 4.5, 6.7, 4.5, 2.3);
+ my ($offset, @dashes) = $cr->get_dash;
+ is ($offset, 0.5);
+ is_deeply (\@dashes, [2.3, 4.5, 6.7, 4.5, 2.3]);
+
+ $cr->set_dash (0);
+ ($offset, @dashes) = $cr->get_dash;
+ is ($offset, 0);
+ is_deeply (\@dashes, []);
+}
$cr->set_miter_limit (2.2);
is ($cr->get_miter_limit, 2.2);
@@ -142,6 +158,26 @@
$cr->clip;
$cr->clip_preserve;
$cr->reset_clip;
+
+SKIP: {
+ skip 'new stuff', 7
+ unless Cairo::VERSION >= Cairo::VERSION_ENCODE (1, 4, 0);
+
+ $cr->rectangle (0, 0, 128, 128);
+ $cr->clip;
+
+ my @extents = $cr->clip_extents;
+ is (@extents, 4);
+ is ($extents[0], 0);
+ is ($extents[1], 0);
+ is ($extents[2], 128);
+ is ($extents[3], 128);
+
+ my @list = $cr->copy_clip_rectangle_list;
+ is (@list, 1);
+ is_deeply ($list[0], { x => 0, y => 0, width => 128, height => 128 });
+}
+
$cr->select_font_face ('Sans', 'normal', 'normal');
$cr->set_font_size (12);
@@ -197,6 +233,13 @@
$cr->set_scaled_font ($font);
}
+SKIP: {
+ skip 'new stuff', 1
+ unless Cairo::VERSION >= Cairo::VERSION_ENCODE (1, 4, 0);
+
+ isa_ok ($cr->get_scaled_font, 'Cairo::ScaledFont');
+}
+
isa_ok ($cr->get_source, 'Cairo::Pattern');
my @pnt = $cr->get_current_point;
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Remember to have fun...
---------------------------------------------------------------------
To unsubscribe, e-mail: opensuse-commit+unsubscribe@opensuse.org
For additional commands, e-mail: opensuse-commit+help@opensuse.org