Hello community, here is the log from the commit of package perl-Cairo for openSUSE:Factory checked in at 2013-06-07 10:05:39 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/perl-Cairo (Old) and /work/SRC/openSUSE:Factory/.perl-Cairo.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "perl-Cairo" Changes: -------- --- /work/SRC/openSUSE:Factory/perl-Cairo/perl-Cairo.changes 2012-06-10 21:52:05.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.perl-Cairo.new/perl-Cairo.changes 2013-06-07 10:05:41.000000000 +0200 @@ -1,0 +2,57 @@ +Mon Jun 3 11:51:36 UTC 2013 - [email protected] + +- updated to 1.103 + * Hush a few compiler warnings + * Updated copyright date + + Overview of changes in Cairo 1.102 + ================================== + + * Fix building with perl <= 5.14 + * Prevent crashes on exit with Cairo::Path on perl 5.6. + + Overview of changes in Cairo 1.101 + ================================== + + * Properly specify our dependencies. + * Fix some erroneous POD links. + * Distribute a missing test file. + + Overview of changes in Cairo 1.100 + ================================== + + Since 1.08x (the previous stable series) + ---------------------------------------- + * Make "use Cairo x.yyy" work. This required renaming the old + Cairo::VERSION, a wrapper for CAIRO_VERSION, to Cairo::LIB_VERSION -- + but we kept the old way of calling it working. Cairo::version, + Cairo::version_string and Cairo::VERSION_ENCODE got the same treatment + for consistency. + * Auto-upgrade strings to utf8. Note that this means that calling + utf8::encode() on strings before passing them into Cairo will now + yield doubly-encoded and thus broken strings. Also, having + utf8-encoded literals in your code without an accompanying "use utf8" + line will also lead to double encoding. + * Expand and improve the README and META.yml files. + * Many compilation and test suite fixes. + + Since 1.091 + ----------- + * Do not assume that sizeof(void*) == sizeof(long) + * Calculate a string length more efficiently + * added updated README text for RT#74870 + * Created %meta_merge which follows v2 of meta-spec + + Overview of changes in Cairo 1.091 + ================================== + + * Auto-upgrade strings to utf8. Note that this means that calling + utf8::encode() on strings before passing them into Cairo will now + yield doubly-encoded and thus broken strings. Also, having + utf8-encoded literals in your code without an accompanying "use utf8" + line will also lead to double encoding. + * Fix compiling and testing against older versions of cairo. + * Make the test suite more robust. + * Removing perl-Cairo.diff + +------------------------------------------------------------------- Old: ---- Cairo-1.090.tar.gz perl-Cairo.diff New: ---- Cairo-1.103.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-Cairo.spec ++++++ --- /var/tmp/diff_new_pack.mCK223/_old 2013-06-07 10:05:42.000000000 +0200 +++ /var/tmp/diff_new_pack.mCK223/_new 2013-06-07 10:05:42.000000000 +0200 @@ -1,7 +1,7 @@ # # spec file for package perl-Cairo # -# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany. +# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed @@ -17,68 +17,47 @@ Name: perl-Cairo -Version: 1.090 +Version: 1.103 Release: 0 %define cpan_name Cairo -Summary: Perl interface to the cairo library +Summary: Perl interface to the cairo 2d vector graphics library License: LGPL-2.1+ Group: Development/Libraries/Perl Url: http://search.cpan.org/dist/Cairo/ -#Source: http://www.cpan.org/authors/id/T/TS/TSCH/Cairo-1.061.tar.gz -Source: %{cpan_name}-%{version}.tar.gz -Patch: perl-Cairo.diff +Source: http://www.cpan.org/authors/id/X/XA/XAOC/%{cpan_name}-%{version}.tar.gz +BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: perl BuildRequires: perl-macros BuildRequires: pkgconfig BuildRequires: perl(ExtUtils::Depends) >= 0.2 BuildRequires: perl(ExtUtils::PkgConfig) >= 1 -BuildRequires: perl(Test::Number::Delta) >= 1 BuildRequires: pkgconfig(cairo) -# -Requires: perl(ExtUtils::Depends) >= 0.2 -Requires: perl(ExtUtils::PkgConfig) >= 1 -BuildRoot: %{_tmppath}/%{name}-%{version}-build +#BuildRequires: perl(Cairo) +#BuildRequires: perl(Cairo::Context) +#BuildRequires: perl(Glib) +#BuildRequires: perl(Pango) %{perl_requires} %description -Cairo provides Perl bindings for the vector graphics library cairo. -It supports multiple output targets, including PNG, PDF and SVG. -Cairo produces identical output on all those targets. +Perl interface to the cairo 2d vector graphics library %prep %setup -q -n %{cpan_name}-%{version} -%patch %build -#disable some randomly failing tests -mv t/Cairo.t t/Cairo.tt -mv t/CairoFont.t t/CairoFont.tt -perl Makefile.PL INSTALLDIRS=vendor OPTIMIZE="%{optflags}" -make %{?_smp_mflags} +%{__perl} Makefile.PL INSTALLDIRS=vendor OPTIMIZE="%{optflags}" +%{__make} %{?_smp_mflags} %check -make test +%{__make} test %install %perl_make_install -### since 11.4 perl_process_packlist -### removes .packlist, perllocal.pod files -%if 0%{?suse_version} > 1130 %perl_process_packlist -%else -# do not perl_process_packlist -# remove .packlist file -rm -f %{buildroot}%perl_vendorarch/auto/Cairo/.packlist -# remove perllocal.pod file -rm -f %{buildroot}%perl_archlib/perllocal.pod -%endif %perl_gen_filelist -%clean -rm -rf %{buildroot} - %files -f %{name}.files -%defattr(-,root,root,-) -%doc LICENSE NEWS README TODO examples +%defattr(-,root,root,755) +%doc cairo-perl.typemap ChangeLog.pre-git doctypes examples LICENSE NEWS perl-Cairo.doap README TODO %changelog ++++++ Cairo-1.090.tar.gz -> Cairo-1.103.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cairo-1.090/Cairo.xs new/Cairo-1.103/Cairo.xs --- old/Cairo-1.090/Cairo.xs 2012-01-20 07:46:51.000000000 +0100 +++ new/Cairo-1.103/Cairo.xs 2013-02-03 07:07:45.000000000 +0100 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004-2012 by the cairo perl team (see the file README) + * Copyright (c) 2004-2013 by the cairo perl team (see the file README) * * Licensed under the LGPL, see LICENSE file for more information. * @@ -428,6 +428,7 @@ # The VERSION fallback is implemented in lib/Cairo.pm. int LIB_VERSION (...) CODE: + PERL_UNUSED_VAR (items); RETVAL = CAIRO_VERSION; OUTPUT: RETVAL @@ -438,6 +439,7 @@ PREINIT: int major, minor, micro; CODE: + PERL_UNUSED_VAR (ix); if (items == 3) { major = SvIV (ST (0)); minor = SvIV (ST (1)); @@ -460,6 +462,8 @@ lib_version = 1 C_ARGS: /* void */ + CLEANUP: + PERL_UNUSED_VAR (ix); # const char* cairo_version_string (); const char* cairo_version_string (class=NULL) @@ -467,6 +471,8 @@ lib_version_string = 1 C_ARGS: /* void */ + CLEANUP: + PERL_UNUSED_VAR (ix); # ---------------------------------------------------------------------------- # @@ -656,7 +662,7 @@ 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); +void cairo_select_font_face (cairo_t *cr, const char_utf8 *family, cairo_font_slant_t slant, cairo_font_weight_t weight); void cairo_set_font_size (cairo_t *cr, double size); @@ -694,7 +700,7 @@ #endif -void cairo_show_text (cairo_t * cr, const char * utf8); +void cairo_show_text (cairo_t * cr, const char_utf8 * utf8); ##void cairo_show_glyphs (cairo_t * cr, cairo_glyph_t * glyphs, int num_glyphs); void cairo_show_glyphs (cairo_t * cr, ...) @@ -727,6 +733,7 @@ if (!cairo_perl_sv_is_array_ref (clusters_sv)) croak ("text clusters must be an array ref"); + sv_utf8_upgrade (utf8_sv); utf8 = SvPV (utf8_sv, utf8_len); glyphs_av = (AV *) SvRV (glyphs_sv); @@ -771,8 +778,8 @@ void cairo_set_font_face (cairo_t *cr, cairo_font_face_t *font_face); -##void cairo_text_extents (cairo_t * cr, const unsigned char * utf8, cairo_text_extents_t * extents); -cairo_text_extents_t * cairo_text_extents (cairo_t * cr, const char * utf8) +##void cairo_text_extents (cairo_t * cr, const char * utf8, cairo_text_extents_t * extents); +cairo_text_extents_t * cairo_text_extents (cairo_t * cr, const char_utf8 * utf8) PREINIT: cairo_text_extents_t extents; CODE: @@ -798,7 +805,7 @@ OUTPUT: RETVAL -void cairo_text_path (cairo_t * cr, const char * utf8); +void cairo_text_path (cairo_t * cr, const char_utf8 * utf8); ##void cairo_glyph_path (cairo_t * cr, cairo_glyph_t * glyphs, int num_glyphs); void cairo_glyph_path (cairo_t * cr, ...) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cairo-1.090/CairoFont.xs new/Cairo-1.103/CairoFont.xs --- old/Cairo-1.090/CairoFont.xs 2011-11-27 08:56:45.000000000 +0100 +++ new/Cairo-1.103/CairoFont.xs 2012-04-28 21:56:21.000000000 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004-2005 by the cairo perl team (see the file README) + * Copyright (c) 2004-2005, 2012 by the cairo perl team (see the file README) * * Licensed under the LGPL, see LICENSE file for more information. * @@ -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; @@ -41,7 +45,7 @@ return package; #else - const char *package = cairo_perl_package_table_lookup (pattern); + const char *package = cairo_perl_package_table_lookup (face); return package ? package : "Cairo::FontFace"; #endif } @@ -81,11 +85,15 @@ # cairo_font_face_t * cairo_toy_font_face_create (const char *family, cairo_font_slant_t slant, cairo_font_weight_t weight) cairo_font_face_t_noinc * -cairo_toy_font_face_create (class, const char *family, cairo_font_slant_t slant, cairo_font_weight_t weight) +cairo_toy_font_face_create (class, const char_utf8 *family, cairo_font_slant_t slant, cairo_font_weight_t weight) C_ARGS: family, slant, weight + POSTCALL: +#if CAIRO_VERSION < CAIRO_VERSION_ENCODE(1, 2, 0) + cairo_perl_package_table_insert (RETVAL, "Cairo::ToyFontFace"); +#endif -const char * cairo_toy_font_face_get_family (cairo_font_face_t *font_face); +const char_utf8 * cairo_toy_font_face_get_family (cairo_font_face_t *font_face); cairo_font_slant_t cairo_toy_font_face_get_slant (cairo_font_face_t *font_face); @@ -101,6 +109,10 @@ cairo_scaled_font_t_noinc * cairo_scaled_font_create (class, cairo_font_face_t *font_face, const cairo_matrix_t *font_matrix, const cairo_matrix_t *ctm, const cairo_font_options_t *options) C_ARGS: font_face, font_matrix, ctm, options + POSTCALL: +#if CAIRO_VERSION < CAIRO_VERSION_ENCODE(1, 2, 0) + cairo_perl_package_table_insert (RETVAL, "Cairo::ScaledFont"); +#endif cairo_status_t cairo_scaled_font_status (cairo_scaled_font_t *scaled_font); @@ -123,7 +135,7 @@ #if CAIRO_VERSION >= CAIRO_VERSION_ENCODE(1, 2, 0) ##void cairo_scaled_font_text_extents (cairo_scaled_font_t *scaled_font, const char *utf8, cairo_text_extents_t *extents); -cairo_text_extents_t * cairo_scaled_font_text_extents (cairo_scaled_font_t *scaled_font, const char *utf8) +cairo_text_extents_t * cairo_scaled_font_text_extents (cairo_scaled_font_t *scaled_font, const char_utf8 *utf8) PREINIT: cairo_text_extents_t extents; CODE: @@ -166,6 +178,7 @@ cairo_text_cluster_flags_t cluster_flags; cairo_status_t status; PPCODE: + sv_utf8_upgrade (utf8_sv); utf8 = SvPV (utf8_sv, utf8_len); status = cairo_scaled_font_text_to_glyphs ( scaled_font, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cairo-1.090/CairoPath.xs new/Cairo-1.103/CairoPath.xs --- old/Cairo-1.090/CairoPath.xs 2011-11-27 08:56:45.000000000 +0100 +++ new/Cairo-1.103/CairoPath.xs 2012-12-07 23:45:06.000000000 +0100 @@ -323,6 +323,17 @@ MODULE = Cairo::Path PACKAGE = Cairo::Path::Data +#if PERL_REVISION <= 5 && PERL_VERSION <= 6 + +void DESTROY (SV * sv) + CODE: + /* Unset mg_ptr to prevent perl 5.6.x from trying to free it. */ + MAGIC *mg = cairo_perl_mg_find (SvRV (sv), PERL_MAGIC_ext); + if (mg) + mg->mg_ptr = NULL; + +#endif /* 5.6.x */ + SV * FETCH (SV * sv, const char * key) PREINIT: cairo_path_data_t * data; @@ -387,6 +398,17 @@ MODULE = Cairo::Path PACKAGE = Cairo::Path::Points +#if PERL_REVISION <= 5 && PERL_VERSION <= 6 + +void DESTROY (SV * sv) + CODE: + /* Unset mg_ptr to prevent perl 5.6.x from trying to free it. */ + MAGIC *mg = cairo_perl_mg_find (SvRV (sv), PERL_MAGIC_ext); + if (mg) + mg->mg_ptr = NULL; + +#endif /* 5.6.x */ + IV FETCHSIZE (SV * sv) PREINIT: cairo_path_data_t * data; @@ -435,6 +457,17 @@ MODULE = Cairo::Path PACKAGE = Cairo::Path::Point +#if PERL_REVISION <= 5 && PERL_VERSION <= 6 + +void DESTROY (SV * sv) + CODE: + /* Unset mg_ptr to prevent perl 5.6.x from trying to free it. */ + MAGIC *mg = cairo_perl_mg_find (SvRV (sv), PERL_MAGIC_ext); + if (mg) + mg->mg_ptr = NULL; + +#endif /* 5.6.x */ + IV FETCHSIZE (sv) CODE: RETVAL = 2; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cairo-1.090/CairoSurface.xs new/Cairo-1.103/CairoSurface.xs --- old/Cairo-1.090/CairoSurface.xs 2011-11-27 08:56:45.000000000 +0100 +++ new/Cairo-1.103/CairoSurface.xs 2012-06-19 02:37:59.000000000 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004-2006 by the cairo perl team (see the file README) + * Copyright (c) 2004-2006, 2012 by the cairo perl team (see the file README) * * Licensed under the LGPL, see LICENSE file for more information. * @@ -17,10 +17,10 @@ static HV *pointer_to_package = NULL; /* A hex character represents four bits in the address of a pointer, so we'll - * need BITS_PER_LONG/4 characters. That's sizeof (long) * 2. Add 2 for the - * "0x" part. Add 1 for the trailing \0. Reasoning courtesy of Robert Love. + * need BITS_PER_POINTER/4 characters. That's sizeof (void*) * 2. Add 2 for + * the "0x" part. Add 1 for the trailing \0. */ -#define MAX_KEY_LENGTH ((sizeof(long) * 2) + 2 + 1) +#define MAX_KEY_LENGTH ((sizeof(void*) * 2) + 2 + 1) /* This stuff is also used in CairoPattern.xs, hence no static on the * functions. @@ -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: @@ -275,7 +279,10 @@ SvREFCNT_dec (sv); } else { SV *retval = POPs; - memcpy (data, SvPV_nolen (retval), sv_len (retval)); + STRLEN len = 0; + const char *sv_data = SvPV (retval, len); + /* should we assert that len == length? */ + memcpy (data, sv_data, len); } PUTBACK; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cairo-1.090/MANIFEST new/Cairo-1.103/MANIFEST --- old/Cairo-1.090/MANIFEST 2012-01-20 08:05:24.000000000 +0100 +++ new/Cairo-1.103/MANIFEST 2013-02-03 07:37:57.000000000 +0100 @@ -40,6 +40,7 @@ perl-Cairo.doap ppport.h README +t/00-loading.t t/Cairo.t t/CairoFont.t t/CairoFt.t @@ -49,4 +50,5 @@ t/CairoRegion.t t/CairoSurface.t TODO -META.yml Module meta-data (added by MakeMaker) +META.yml Module YAML meta-data (added by MakeMaker) +META.json Module JSON meta-data (added by MakeMaker) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cairo-1.090/META.json new/Cairo-1.103/META.json --- old/Cairo-1.090/META.json 1970-01-01 01:00:00.000000000 +0100 +++ new/Cairo-1.103/META.json 2013-02-03 07:37:57.000000000 +0100 @@ -0,0 +1,56 @@ +{ + "abstract" : "Perl interface to the cairo 2d vector graphics library", + "author" : [ + "Cairo Perl Team <gtk-perl-list at gnome dot org>" + ], + "dynamic_config" : 1, + "generated_by" : "ExtUtils::MakeMaker version 6.62, CPAN::Meta::Converter version 2.112150", + "license" : [ + "lgpl_2_1" + ], + "meta-spec" : { + "url" : "http://search.cpan.org/perldoc?CPAN::Meta::Spec", + "version" : "2" + }, + "name" : "Cairo", + "no_index" : { + "directory" : [ + "t", + "inc" + ], + "file" : [ + "inc/MakeHelper.pm" + ] + }, + "prereqs" : { + "configure" : { + "requires" : { + "ExtUtils::Depends" : "0.2", + "ExtUtils::PkgConfig" : "1" + } + }, + "test" : { + "recommends" : { + "Test::Number::Delta" : "1" + } + } + }, + "release_status" : "stable", + "resources" : { + "bugtracker" : { + "mailto" : "bug-Cairo [at] rt.cpan.org", + "web" : "http://rt.cpan.org/Public/Dist/Display.html?Name=Cairo" + }, + "homepage" : "http://gtk2-perl.sourceforge.net", + "license" : [ + "http://www.gnu.org/licenses/lgpl-2.1.html" + ], + "repository" : { + "type" : "git", + "url" : "git://git.gnome.org/perl-Cairo", + "web" : "http://git.gnome.org/browse/perl-Cairo" + }, + "x_MailingList" : "https://mail.gnome.org/mailman/listinfo/gtk-perl-list" + }, + "version" : "1.103" +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cairo-1.090/META.yml new/Cairo-1.103/META.yml --- old/Cairo-1.090/META.yml 2012-01-20 08:05:24.000000000 +0100 +++ new/Cairo-1.103/META.yml 2013-02-03 07:37:57.000000000 +0100 @@ -1,27 +1,28 @@ ---- #YAML:1.0 -name: Cairo -version: 1.090 -abstract: Perl interface to the cairo 2d vector graphics library -author: [] -license: unknown -distribution_type: module +--- +abstract: 'Perl interface to the cairo 2d vector graphics library' +author: + - 'Cairo Perl Team <gtk-perl-list at gnome dot org>' +build_requires: {} configure_requires: - ExtUtils::Depends: 0.2 - ExtUtils::MakeMaker: 0 - ExtUtils::PkgConfig: 1 -build_requires: - ExtUtils::MakeMaker: 0 - Test::Number::Delta: 1 -requires: - ExtUtils::Depends: 0.2 - ExtUtils::PkgConfig: 1 -no_index: - directory: - - t - - inc - files: - - inc/MakeHelper.pm -generated_by: ExtUtils::MakeMaker version 6.57_05 + ExtUtils::Depends: 0.2 + ExtUtils::PkgConfig: 1 +dynamic_config: 1 +generated_by: 'ExtUtils::MakeMaker version 6.62, CPAN::Meta::Converter version 2.112150' +license: lgpl meta-spec: - url: http://module-build.sourceforge.net/META-spec-v1.4.html - version: 1.4 + url: http://module-build.sourceforge.net/META-spec-v1.4.html + version: 1.4 +name: Cairo +no_index: + directory: + - t + - inc + file: + - inc/MakeHelper.pm +resources: + bugtracker: http://rt.cpan.org/Public/Dist/Display.html?Name=Cairo + homepage: http://gtk2-perl.sourceforge.net + license: http://www.gnu.org/licenses/lgpl-2.1.html + repository: git://git.gnome.org/perl-Cairo + x_MailingList: https://mail.gnome.org/mailman/listinfo/gtk-perl-list +version: 1.103 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cairo-1.090/Makefile.PL new/Cairo-1.103/Makefile.PL --- old/Cairo-1.090/Makefile.PL 2012-01-20 07:47:14.000000000 +0100 +++ new/Cairo-1.103/Makefile.PL 2012-12-07 23:45:06.000000000 +0100 @@ -24,6 +24,47 @@ 'ExtUtils::PkgConfig' => 1.0, ); +my %meta_merge = ( + q(meta-spec) => { + version => '2', + url => 'http://search.cpan.org/perldoc?CPAN::Meta::Spec', + }, + author => + ['Cairo Perl Team <gtk-perl-list at gnome dot org>'], + release_status => 'stable', + # valid values: https://metacpan.org/module/CPAN::Meta::Spec#license + license => 'lgpl_2_1', + resources => { + license => 'http://www.gnu.org/licenses/lgpl-2.1.html', + homepage => 'http://gtk2-perl.sourceforge.net', + x_MailingList => + 'https://mail.gnome.org/mailman/listinfo/gtk-perl-list', + bugtracker => { + web => + 'http://rt.cpan.org/Public/Dist/Display.html?Name=Cairo', + mailto => 'bug-Cairo [at] rt.cpan.org', + }, + repository => { + url => 'git://git.gnome.org/perl-Cairo', + type => 'git', + web => 'http://git.gnome.org/browse/perl-Cairo', + }, + }, + prereqs => { + configure => { + requires => {%prereqs}, # no direct ref for 5.14 compatibility + }, + test => { + recommends => { + 'Test::Number::Delta' => 1.0, + }, + }, + }, + no_index => { + file => [qw(inc/MakeHelper.pm)], + }, +); + # ... thus we have to make sure they are installed. while ((my $module, my $version) = each(%prereqs)) { unless (eval "use $module $version; 1" ) { @@ -321,9 +362,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 +392,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,7 +404,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/], ); $enums{cairo_ps_level_t} = [qw/ @@ -532,25 +572,16 @@ $dep->save_config ('build/IFiles.pm'); WriteMakefile ( - NAME => 'Cairo', - VERSION_FROM => 'lib/Cairo.pm', - ABSTRACT_FROM => 'lib/Cairo.pm', - PREREQ_PM => \%prereqs, - XSPROTOARG => '-noprototypes', - FUNCLIST => \@exports, - DL_FUNCS => { Cairo=> [] }, - - $dep->get_makefile_vars, - - META_MERGE => { - configure_requires => \%prereqs, - build_requires => { - 'Test::Number::Delta' => 1.0, - }, - no_index => { - files => [qw(inc/MakeHelper.pm)], - }, - }, + NAME => 'Cairo', + #AUTHOR, LICENSE are now part of %meta_merge + VERSION_FROM => 'lib/Cairo.pm', + ABSTRACT_FROM => 'lib/Cairo.pm', + PREREQ_PM => \%prereqs, + XSPROTOARG => '-noprototypes', + FUNCLIST => \@exports, + DL_FUNCS => { Cairo=> [] }, + META_MERGE => \%meta_merge, + $dep->get_makefile_vars, ); sub MY::postamble diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cairo-1.090/NEWS new/Cairo-1.103/NEWS --- old/Cairo-1.090/NEWS 2012-01-20 07:54:11.000000000 +0100 +++ new/Cairo-1.103/NEWS 2013-02-03 07:07:45.000000000 +0100 @@ -1,3 +1,58 @@ +Overview of changes in Cairo 1.103 +================================== + +* Hush a few compiler warnings +* Updated copyright date + +Overview of changes in Cairo 1.102 +================================== + +* Fix building with perl <= 5.14 +* Prevent crashes on exit with Cairo::Path on perl 5.6. + +Overview of changes in Cairo 1.101 +================================== + +* Properly specify our dependencies. +* Fix some erroneous POD links. +* Distribute a missing test file. + +Overview of changes in Cairo 1.100 +================================== + +Since 1.08x (the previous stable series) +---------------------------------------- +* Make "use Cairo x.yyy" work. This required renaming the old + Cairo::VERSION, a wrapper for CAIRO_VERSION, to Cairo::LIB_VERSION -- + but we kept the old way of calling it working. Cairo::version, + Cairo::version_string and Cairo::VERSION_ENCODE got the same treatment + for consistency. +* Auto-upgrade strings to utf8. Note that this means that calling + utf8::encode() on strings before passing them into Cairo will now + yield doubly-encoded and thus broken strings. Also, having + utf8-encoded literals in your code without an accompanying "use utf8" + line will also lead to double encoding. +* Expand and improve the README and META.yml files. +* Many compilation and test suite fixes. + +Since 1.091 +----------- +* Do not assume that sizeof(void*) == sizeof(long) +* Calculate a string length more efficiently +* added updated README text for RT#74870 +* Created %meta_merge which follows v2 of meta-spec + +Overview of changes in Cairo 1.091 +================================== + +* Auto-upgrade strings to utf8. Note that this means that calling + utf8::encode() on strings before passing them into Cairo will now + yield doubly-encoded and thus broken strings. Also, having + utf8-encoded literals in your code without an accompanying "use utf8" + line will also lead to double encoding. +* Fix compiling and testing against older versions of cairo. +* Make the test suite more robust. + Overview of changes in Cairo 1.090 ================================== diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cairo-1.090/README new/Cairo-1.103/README --- old/Cairo-1.090/README 2012-01-20 07:44:14.000000000 +0100 +++ new/Cairo-1.103/README 2012-07-04 08:50:39.000000000 +0200 @@ -47,11 +47,74 @@ ExtUtils::PkgConfig >= 1.0 Test::Number::Delta >= 1.0 +HOW TO CONTACT US +----------------- +Homepage: http://gtk2-perl.sourceforge.net/ +Mailing list: gtk-perl-list [at] gnome.org +Mailing list archives: https://mail.gnome.org/archives/gtk-perl-list/ +IRC: irc://irc.gnome.org/#gtk-perl +E-mail bug submission via CPAN's RT: + bug-Cairo [at] rt.cpan.org +Web bug submission via gnome.org's bugzilla: + http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-perl + +Please do not contact any of the maintainers directly unless they ask you to. +The first point of contact for questions/problems/issues should always be the +mailing list. + BUG REPORTS ----------- +For help with problems, please contact the mailing list (above). If you +already know you have a bug, please file it with one of the bug trackers +below. With any problems and/or bug reports, it's always helpful for the +developers to have the following information: + +- A small script that demonstrates the problem; this is not required, however, + it will get your issue looked at much faster than a description of the + problem alone. +- Version of Perl (perl -v) +- Versions of Gtk2-Perl modules (Glib/Gtk2/Pango/Cairo) +- Optional, but nice to have: versions of GTK+ libraries on your system + (libglib, libgtk+, libpango, libcairo, etc.) + +There are multiple project bug trackers, please choose the one you are most +comfortable with using and/or already have an account for. + +Request Tracker: +- submitting bugs via the Web (requires a PAUSE account/Bitcard): + https://rt.cpan.org/Public/Bug/Report.html?Queue=Cairo +- submitting bugs via e-mail (open to anyone with e-mail): + bug-Cairo [at] rt.cpan.org + +Gnome's bugtracker: +- report bugs to the 'gnome-perl' product (requires login) + http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-perl + +PATCH SUBMISSION GUIDELINES +--------------------------- +You can send us patches by... +- E-mailing it to the mailing list (above); please use a pastebin service of + some kind for longer patchfiles (over say 20k in size). +- Those with gnome.org Git ID's can push trivial patches to git directly; if + you're not sure what a trivial patch is, please ask first on the mailing + list prior to pushing your commit. + +OBTAINING SOURCE FROM THE GNOME.ORG GIT REPO +-------------------------------------------- +Assuming you already have the 'git' command installed on your system, you can +use the 'git://' protocol: + +git clone git://git.gnome.org/perl-Cairo + +Or, read-only access via HTTP: + +git clone http://git.gnome.org/browse/perl-Cairo + +To update an existing clone of the source: + +git pull -Please report bugs to the gnome-perl product in GNOME's Bugzilla: -<http://bugzilla.gnome.org/enter_bug.cgi?product=gnome-perl> +Most Linux distros package the 'git' command in a package called 'git-core'. COPYRIGHT AND LICENSE --------------------- @@ -61,16 +124,5 @@ Ross McFarland rwmcfa1 at neces dot com Torsten Schoenfeld kaffeetisch at gmx dot de -This library is free software; you can redistribute it and/or modify it under -the terms of the GNU Library General Public License as published by the Free -Software Foundation; either version 2.1 of the License, or (at your option) any -later version. - -This library is distributed in the hope that it will be useful, but WITHOUT ANY -WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A -PARTICULAR PURPOSE. See the GNU Library General Public License for more -details. - -You should have received a copy of the GNU Library General Public License along -with this library; if not, write to the Free Software Foundation, Inc., -51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +See the LICENSE file in the top-level directory of this distribution for the +full license terms. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cairo-1.090/cairo-perl.h new/Cairo-1.103/cairo-perl.h --- old/Cairo-1.090/cairo-perl.h 2011-11-27 08:56:45.000000000 +0100 +++ new/Cairo-1.103/cairo-perl.h 2012-04-28 21:56:21.000000000 +0200 @@ -1,5 +1,5 @@ /* - * Copyright (c) 2004-2005 by the cairo perl team (see the file README) + * Copyright (c) 2004-2005, 2012 by the cairo perl team (see the file README) * * Licensed under the LGPL, see LICENSE file for more information. * @@ -112,4 +112,9 @@ #define newSVCairoFontFace(object) (cairo_font_face_to_sv (cairo_font_face_reference (object))) #define newSVCairoFontFace_noinc(object) (cairo_font_face_to_sv (object)) +/* + * Type aliases for the typemap + */ +typedef char char_utf8; + #endif /* _CAIRO_PERL_H_ */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cairo-1.090/cairo-perl.typemap new/Cairo-1.103/cairo-perl.typemap --- old/Cairo-1.090/cairo-perl.typemap 2011-11-27 08:56:45.000000000 +0100 +++ new/Cairo-1.103/cairo-perl.typemap 2012-04-28 21:56:21.000000000 +0200 @@ -1,10 +1,8 @@ # -# Copyright (c) 2004-2005 by the cairo perl team (see the file README) +# Copyright (c) 2004-2012 by the cairo perl team (see the file README) # # Licensed under the LGPL, see LICENSE file for more information. # -# $Id$ -# TYPEMAP @@ -12,6 +10,9 @@ # don't know const char *. const char * T_PV +char_utf8 * T_PV_UTF8 +const char_utf8 * T_PV_UTF8 + cairo_bool_t T_UV cairo_font_extents_t * T_CAIRO_FONT_EXTENTS @@ -22,9 +23,14 @@ FT_Face T_FT_FACE +# ----------------------------------------------------------------------------- INPUT +T_PV_UTF8 + sv_utf8_upgrade ($arg); + $var = ($type) SvPV_nolen ($arg); + T_CAIRO_GLYPH $var = SvCairoGlyph ($arg); @@ -34,8 +40,14 @@ T_CAIRO_PATH $var = SvCairoPath ($arg); +# ----------------------------------------------------------------------------- + OUTPUT +T_PV_UTF8 + sv_setpv ((SV*)$arg, $var); + SvUTF8_on ($arg); + T_CAIRO_FONT_EXTENTS $arg = newSVCairoFontExtents ($var); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cairo-1.090/examples/png/text.pl new/Cairo-1.103/examples/png/text.pl --- old/Cairo-1.090/examples/png/text.pl 2011-11-27 08:56:45.000000000 +0100 +++ new/Cairo-1.103/examples/png/text.pl 2012-04-28 21:56:21.000000000 +0200 @@ -2,13 +2,14 @@ use strict; use warnings; +use utf8; use Cairo; use constant { WIDTH => 450, HEIGHT => 600, - TEXT => 'hello, world', + TEXT => 'hëllø, wôrld', NUM_GLYPHS => 10, M_PI => 4 * atan2(1, 1), }; @@ -19,7 +20,7 @@ $cr->save; - my $extents = $cr->text_extents (TEXT); + my $extents = $cr->text_extents ($utf8); my $line_width = $cr->get_line_width; $cr->rectangle ($x + $extents->{x_bearing} - $line_width, $y + $extents->{y_bearing} - $line_width, diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cairo-1.090/lib/Cairo.pm new/Cairo-1.103/lib/Cairo.pm --- old/Cairo-1.090/lib/Cairo.pm 2012-01-20 08:04:11.000000000 +0100 +++ new/Cairo-1.103/lib/Cairo.pm 2013-02-03 07:07:45.000000000 +0100 @@ -1,5 +1,5 @@ # -# Copyright (c) 2004-2012 by the cairo perl team (see the file README) +# Copyright (c) 2004-2013 by the cairo perl team (see the file README) # # Licensed under the LGPL, see LICENSE file for more information. # @@ -14,7 +14,7 @@ our @ISA = qw/DynaLoader/; -our $VERSION = '1.090'; +our $VERSION = '1.103'; sub dl_load_flags { $^O eq 'darwin' ? 0x00 : 0x01 } @@ -1453,7 +1453,7 @@ =over -=item $callback: L<Cairo::WriteFunc> +=item $callback: I<Cairo::WriteFunc> =item $callback_data: scalar @@ -1525,7 +1525,7 @@ =over -=item $callback: L<Cairo::ReadFunc> +=item $callback: I<Cairo::ReadFunc> =item $callback_data: scalar @@ -1553,7 +1553,7 @@ =over -=item $callback: L<Cairo::WriteFunc> +=item $callback: I<Cairo::WriteFunc> =item $callback_data: scalar @@ -1585,7 +1585,7 @@ =over -=item $callback: L<Cairo::WriteFunc> +=item $callback: I<Cairo::WriteFunc> =item $callback_data: scalar @@ -1693,7 +1693,7 @@ =over -=item $callback: L<Cairo::WriteFunc> +=item $callback: I<Cairo::WriteFunc> =item $callback_data: scalar @@ -1742,7 +1742,7 @@ =item $version_code = Cairo->LIB_VERSION -Returns the version of libcairo that L<Cairo> was compiled against. +Returns the version of libcairo that Cairo was compiled against. =item $version_code = Cairo->LIB_VERSION_ENCODE ($major, $minor, $micro) @@ -1791,6 +1791,6 @@ =head1 COPYRIGHT -Copyright (C) 2004-2011 by the cairo perl team +Copyright (C) 2004-2013 by the cairo perl team =cut diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cairo-1.090/t/00-loading.t new/Cairo-1.103/t/00-loading.t --- old/Cairo-1.090/t/00-loading.t 1970-01-01 01:00:00.000000000 +0100 +++ new/Cairo-1.103/t/00-loading.t 2012-01-20 07:48:20.000000000 +0100 @@ -0,0 +1,35 @@ +#!/usr/bin/perl +# +# Copyright (c) 2004-2012 by the cairo perl team (see the file README) +# +# Licensed under the LGPL, see LICENSE file for more information. +# + +use strict; +use warnings; + +use Test::More tests => 18; + +BEGIN { + ok (! eval "use Cairo 2.000; 1"); + ok (eval "use Cairo 1.000; 1"); +} + +ok(defined Cairo::LIB_VERSION); +ok(defined Cairo::LIB_VERSION_ENCODE (1, 0, 0)); +ok(defined Cairo->LIB_VERSION); +ok(defined Cairo->LIB_VERSION_ENCODE (1, 0, 0)); +ok(defined Cairo::lib_version); +ok(defined Cairo::lib_version_string); +ok(defined Cairo->lib_version); +ok(defined Cairo->lib_version_string); + +# Deprecated names: +ok(defined Cairo::VERSION); +ok(defined Cairo::VERSION_ENCODE (1, 0, 0)); +ok(defined Cairo->VERSION); +ok(defined Cairo->VERSION_ENCODE (1, 0, 0)); +ok(defined Cairo::version); +ok(defined Cairo::version_string); +ok(defined Cairo->version); +ok(defined Cairo->version_string); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cairo-1.090/t/CairoFont.t new/Cairo-1.103/t/CairoFont.t --- old/Cairo-1.090/t/CairoFont.t 2011-11-27 08:56:45.000000000 +0100 +++ new/Cairo-1.103/t/CairoFont.t 2012-04-28 21:56:21.000000000 +0200 @@ -62,17 +62,17 @@ my $font = Cairo::ScaledFont->create ($face, $matrix, $ctm, $options); isa_ok ($font, 'Cairo::ScaledFont'); -$cr->set_scaled_font ($font); -is ($font->status, 'success'); -is ($cr->status, 'success'); - isa_ok ($font->extents, 'HASH'); isa_ok ($font->glyph_extents ({ index => 1, x => 2, y => 3 }), 'HASH'); SKIP: { - skip 'new stuff', 6 + skip 'new stuff', 8 unless Cairo::VERSION >= Cairo::VERSION_ENCODE (1, 2, 0); + $cr->set_scaled_font ($font); + is ($font->status, 'success'); + is ($cr->status, 'success'); + ok (defined $font->get_type); isa_ok ($font->text_extents('Bla'), 'HASH'); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Cairo-1.090/t/CairoPath.t new/Cairo-1.103/t/CairoPath.t --- old/Cairo-1.090/t/CairoPath.t 2011-11-27 08:56:45.000000000 +0100 +++ new/Cairo-1.103/t/CairoPath.t 2012-04-28 21:56:21.000000000 +0200 @@ -1,6 +1,6 @@ #!/usr/bin/perl # -# Copyright (c) 2004-2011 by the cairo perl team (see the file README) +# Copyright (c) 2004-2012 by the cairo perl team (see the file README) # # Licensed under the LGPL, see LICENSE file for more information. # @@ -11,7 +11,7 @@ use warnings; use Cairo; -use Test::More tests => 6; +use Test::More tests => 18; use constant IMG_WIDTH => 256; use constant IMG_HEIGHT => 256; @@ -34,14 +34,7 @@ ]; my $path = $cr->copy_path; -is_deeply ($path, $expected_path); - -sub paths_agree { - my ($cr, $path, $expected_path) = @_; - $cr->new_path; - $cr->append_path ($path); - is_deeply ($cr->copy_path, $expected_path); -} +paths_agree ($path, $expected_path); # Modifying single point values. foreach ($path, $expected_path) { @@ -51,21 +44,21 @@ $_->[2]{points}[2][0] = 99; $_->[2]{points}[2][1] = 1010; } -paths_agree ($cr, $path, $expected_path); +path_round_trip_ok ($cr, $path, $expected_path); # Modifying single points. foreach ($path, $expected_path) { $_->[1]{points}[0] = [333, 444]; $_->[2]{points}[2] = [77, 88]; } -paths_agree ($cr, $path, $expected_path); +path_round_trip_ok ($cr, $path, $expected_path); # Replacing all points. foreach ($path, $expected_path) { $_->[1]{points} = [[3333, 4444]]; $_->[2]{points} = [[55, 66], [77, 88], [99, 1010]]; } -paths_agree ($cr, $path, $expected_path); +path_round_trip_ok ($cr, $path, $expected_path); # Replacing and adding path segments. my @cloned_path = @{$path}; @@ -80,9 +73,24 @@ type => 'line-to', points => [[23, 42]] }; } -paths_agree ($cr, \@cloned_path, $expected_path); +path_round_trip_ok ($cr, \@cloned_path, $expected_path); # Passing bare arrays into Cairo. $cr->new_path; $cr->append_path ($expected_path); -is_deeply ($cr->copy_path, $expected_path); +paths_agree ($cr->copy_path, $expected_path); + +sub path_round_trip_ok { + my ($cr, $path, $expected_path) = @_; + $cr->new_path; + $cr->append_path ($path); + paths_agree ($cr->copy_path, $expected_path); +} + +sub paths_agree { + my ($path, $expected_path) = @_; + # Only the first three entries seem to be reliable across cairo versions. + for (0..2) { + is_deeply ($path->[$_], $expected_path->[$_]); + } +} -- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
