Hello community, here is the log from the commit of package perl-Glib-Object-Introspection for openSUSE:Factory checked in at 2015-08-25 07:20:00 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/perl-Glib-Object-Introspection (Old) and /work/SRC/openSUSE:Factory/.perl-Glib-Object-Introspection.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "perl-Glib-Object-Introspection" Changes: -------- --- /work/SRC/openSUSE:Factory/perl-Glib-Object-Introspection/perl-Glib-Object-Introspection.changes 2015-04-02 16:03:09.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.perl-Glib-Object-Introspection.new/perl-Glib-Object-Introspection.changes 2015-08-25 08:54:03.000000000 +0200 @@ -1,0 +2,8 @@ +Thu Aug 20 17:47:01 UTC 2015 - sor.alexei@meowr.ru + +- Update to 0.030: + * Avoid repeating setting up a library as this can lead to issues. + * Add some missing version guards to the tests. + * Add t/variants.t to MANIFEST. + +------------------------------------------------------------------- Old: ---- Glib-Object-Introspection-0.029.tar.gz New: ---- Glib-Object-Introspection-0.030.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ perl-Glib-Object-Introspection.spec ++++++ --- /var/tmp/diff_new_pack.U9hkp9/_old 2015-08-25 08:54:04.000000000 +0200 +++ /var/tmp/diff_new_pack.U9hkp9/_new 2015-08-25 08:54:04.000000000 +0200 @@ -18,7 +18,7 @@ %define cpan_name Glib-Object-Introspection Name: perl-Glib-Object-Introspection -Version: 0.029 +Version: 0.030 Release: 0 Summary: GObject Introspection bindings for Perl License: LGPL-2.1+ ++++++ Glib-Object-Introspection-0.029.tar.gz -> Glib-Object-Introspection-0.030.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Glib-Object-Introspection-0.029/MANIFEST new/Glib-Object-Introspection-0.030/MANIFEST --- old/Glib-Object-Introspection-0.029/MANIFEST 2015-03-26 01:01:22.000000000 +0100 +++ new/Glib-Object-Introspection-0.030/MANIFEST 2015-08-10 02:51:51.000000000 +0200 @@ -44,6 +44,7 @@ t/objects.t t/structs.t t/values.t +t/variants.t t/vfunc-chaining.t t/vfunc-ref-counting.t META.yml Module YAML meta-data (added by MakeMaker) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Glib-Object-Introspection-0.029/META.json new/Glib-Object-Introspection-0.030/META.json --- old/Glib-Object-Introspection-0.029/META.json 2015-03-26 01:01:21.000000000 +0100 +++ new/Glib-Object-Introspection-0.030/META.json 2015-08-10 02:51:51.000000000 +0200 @@ -4,7 +4,7 @@ "Glib::Object::Introspection Team <gtk-perl-list at gnome dot org>" ], "dynamic_config" : 1, - "generated_by" : "ExtUtils::MakeMaker version 7.04, CPAN::Meta::Converter version 2.143240", + "generated_by" : "ExtUtils::MakeMaker version 7.04, CPAN::Meta::Converter version 2.150001", "license" : [ "lgpl_2_1" ], @@ -66,5 +66,5 @@ "x_IRC" : "irc://irc.gimp.org/#gtk-perl", "x_MailingList" : "https://mail.gnome.org/mailman/listinfo/gtk-perl-list" }, - "version" : "0.029" + "version" : "0.030" } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Glib-Object-Introspection-0.029/META.yml new/Glib-Object-Introspection-0.030/META.yml --- old/Glib-Object-Introspection-0.029/META.yml 2015-03-26 01:01:21.000000000 +0100 +++ new/Glib-Object-Introspection-0.030/META.yml 2015-08-10 02:51:51.000000000 +0200 @@ -10,7 +10,7 @@ ExtUtils::PkgConfig: '1' Glib: '1.31' dynamic_config: 1 -generated_by: 'ExtUtils::MakeMaker version 7.04, CPAN::Meta::Converter version 2.143240' +generated_by: 'ExtUtils::MakeMaker version 7.04, CPAN::Meta::Converter version 2.150001' license: lgpl meta-spec: url: http://module-build.sourceforge.net/META-spec-v1.4.html @@ -36,4 +36,4 @@ homepage: http://gtk2-perl.sourceforge.net license: http://www.gnu.org/licenses/lgpl-2.1.html repository: git://git.gnome.org/perl-Glib-Object-Introspection -version: '0.029' +version: '0.030' diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Glib-Object-Introspection-0.029/NEWS new/Glib-Object-Introspection-0.030/NEWS --- old/Glib-Object-Introspection-0.029/NEWS 2015-03-26 00:58:41.000000000 +0100 +++ new/Glib-Object-Introspection-0.030/NEWS 2015-08-10 02:50:37.000000000 +0200 @@ -1,3 +1,10 @@ +Overview of changes in Glib::Object::Introspection 0.030 +======================================================== + +* Avoid repeating setting up a library as this can lead to issues. +* Add some missing version guards to the tests +* Added t/variants.t to MANIFEST + Overview of changes in Glib::Object::Introspection 0.029 ======================================================== diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Glib-Object-Introspection-0.029/gperl-i11n-vfunc-object.c new/Glib-Object-Introspection-0.030/gperl-i11n-vfunc-object.c --- old/Glib-Object-Introspection-0.029/gperl-i11n-vfunc-object.c 2015-03-26 00:44:57.000000000 +0100 +++ new/Glib-Object-Introspection-0.030/gperl-i11n-vfunc-object.c 2015-08-10 02:02:13.000000000 +0200 @@ -47,7 +47,7 @@ * struct member. */ HV * stash = gv_stashpv (target_package, 0); GV * slot = gv_fetchmethod (stash, perl_method_name); - if (!slot) { + if (!slot || !GvCV (slot)) { dwarn ("skipping vfunc %s.%s because it has no implementation\n", g_base_info_get_name (info), vfunc_name); g_base_info_unref (vfunc_info); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Glib-Object-Introspection-0.029/lib/Glib/Object/Introspection.pm new/Glib-Object-Introspection-0.030/lib/Glib/Object/Introspection.pm --- old/Glib-Object-Introspection-0.029/lib/Glib/Object/Introspection.pm 2015-03-26 00:59:23.000000000 +0100 +++ new/Glib-Object-Introspection-0.030/lib/Glib/Object/Introspection.pm 2015-08-10 02:12:32.000000000 +0200 @@ -19,7 +19,7 @@ use warnings; use Glib; -our $VERSION = '0.029'; +our $VERSION = '0.030'; use Carp; $Carp::Internal{(__PACKAGE__)}++; @@ -28,6 +28,7 @@ XSLoader::load(__PACKAGE__, $VERSION); my @OBJECT_PACKAGES_WITH_VFUNCS; +my %SEEN; our %_FORBIDDEN_SUB_NAMES = map { $_ => 1 } qw/AUTOLOAD CLONE DESTROY BEGIN UNITCHECK CHECK INIT END/; our %_BASENAME_TO_PACKAGE; @@ -68,6 +69,14 @@ my $search_path = $params{search_path} || undef; my $name_corrections = $params{name_corrections} || {}; + # Avoid repeating setting up a library as this can lead to issues, e.g., due + # to types being registered more than once with perl-Glib. In particular, + # the lazy-loading mechanism of Glib::Object is not prepared to handle + # repeated type registrations. + if ($SEEN{$basename}{$version}{$package}++) { + return; + } + $_BASENAME_TO_PACKAGE{$basename} = $package; my %shift_package_name_for = exists $params{class_static_methods} @@ -177,9 +186,11 @@ foreach my $packaged_signal (@use_generic_signal_marshaller_for) { __PACKAGE__->_use_generic_signal_marshaller_for (@$packaged_signal); } + + return; } -sub INIT { +INIT { no strict qw(refs); # Hook up the implemented vfuncs first. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Glib-Object-Introspection-0.029/t/arrays.t new/Glib-Object-Introspection-0.030/t/arrays.t --- old/Glib-Object-Introspection-0.029/t/arrays.t 2015-03-26 00:44:57.000000000 +0100 +++ new/Glib-Object-Introspection-0.030/t/arrays.t 2015-08-10 02:02:13.000000000 +0200 @@ -60,7 +60,11 @@ my $byte_array_ref = [0, ord '1', 0xFF, ord '3']; # Init-like. -is_deeply ([GI::init_function ([qw/a b c/])], [Glib::TRUE, [qw/a b/]]); +SKIP: { + skip 'init-like', 1 + unless check_gi_version (1, 32, 0); + is_deeply ([GI::init_function ([qw/a b c/])], [Glib::TRUE, [qw/a b/]]); +} # Fixed size. is_deeply (GI::array_fixed_int_return (), $int_array_ref); @@ -72,70 +76,90 @@ is_deeply (GI::array_fixed_inout ($int_array_ref), [reverse @$int_array_ref]); # Variable size. -is_deeply (GI::array_return (), $int_array_ref); -is_deeply ([GI::array_return_etc (23, 42)], [[23, 0, 1, 42], 23+42]); -GI::array_in ($int_array_ref); -GI::array_in_len_before ($int_array_ref); -GI::array_in_len_zero_terminated ($int_array_ref); -GI::array_string_in ([qw/foo bar/]); -GI::array_uint8_in ([map { ord } qw/a b c d/]); -GI::array_struct_in ($boxed_array_ref); -GI::array_struct_value_in ($boxed_array_ref); -GI::array_struct_take_in ($boxed_array_ref); -is ($boxed_array_ref->[2]->long_, 3); -GI::array_simple_struct_in ([map { { long_ => $_ } } (1, 2, 3)]); -GI::multi_array_key_value_in ([qw/one two three/], - [map { Glib::Object::Introspection::GValueWrapper->new ('Glib::Int', $_) } (1, 2, 3)]); -GI::array_enum_in ([qw/value1 value2 value3/]); -GI::array_in_guint64_len ($int_array_ref); -GI::array_in_guint8_len ($int_array_ref); -is_deeply (GI::array_out (), $int_array_ref); -is_deeply ([GI::array_out_etc (23, 42)], [[23, 0, 1, 42], 23+42]); -is_deeply (GI::array_inout ($int_array_ref), [-2..2]); -is_deeply ([GI::array_inout_etc (23, $int_array_ref, 42)], [[23, -1, 0, 1, 42], 23+42]); -GI::array_in_nonzero_nonlen (23, [map { ord } qw/a b c d/]); +SKIP: { + skip 'variable size', 7 + unless check_gi_version (1, 36, 0); + is_deeply (GI::array_return (), $int_array_ref); + is_deeply ([GI::array_return_etc (23, 42)], [[23, 0, 1, 42], 23+42]); + GI::array_in ($int_array_ref); + GI::array_in_len_before ($int_array_ref); + GI::array_in_len_zero_terminated ($int_array_ref); + GI::array_string_in ([qw/foo bar/]); + GI::array_uint8_in ([map { ord } qw/a b c d/]); + GI::array_struct_in ($boxed_array_ref); + GI::array_struct_value_in ($boxed_array_ref); + GI::array_struct_take_in ($boxed_array_ref); + is ($boxed_array_ref->[2]->long_, 3); + GI::array_simple_struct_in ([map { { long_ => $_ } } (1, 2, 3)]); + GI::multi_array_key_value_in ([qw/one two three/], + [map { Glib::Object::Introspection::GValueWrapper->new ('Glib::Int', $_) } (1, 2, 3)]); + GI::array_enum_in ([qw/value1 value2 value3/]); + GI::array_in_guint64_len ($int_array_ref); + GI::array_in_guint8_len ($int_array_ref); + is_deeply (GI::array_out (), $int_array_ref); + is_deeply ([GI::array_out_etc (23, 42)], [[23, 0, 1, 42], 23+42]); + is_deeply (GI::array_inout ($int_array_ref), [-2..2]); + is_deeply ([GI::array_inout_etc (23, $int_array_ref, 42)], [[23, -1, 0, 1, 42], 23+42]); + GI::array_in_nonzero_nonlen (23, [map { ord } qw/a b c d/]); +} # Zero-terminated. -is_deeply (GI::array_zero_terminated_return (), $string_array_ref); -is (GI::array_zero_terminated_return_null (), undef); -is_deeply ([map { $_->long_ } @{GI::array_zero_terminated_return_struct ()}], - [42, 43, 44]); -GI::array_zero_terminated_in ($string_array_ref); -is_deeply (GI::array_zero_terminated_out (), $string_array_ref); -is_deeply (GI::array_zero_terminated_inout ($string_array_ref), [qw/-1 0 1 2/]); -# The variant stuff is tested in variants.t. +SKIP: { + skip 'zero-terminated', 5 + unless check_gi_version (1, 32, 0); + is_deeply (GI::array_zero_terminated_return (), $string_array_ref); + is (GI::array_zero_terminated_return_null (), undef); + is_deeply ([map { $_->long_ } @{GI::array_zero_terminated_return_struct ()}], + [42, 43, 44]); + GI::array_zero_terminated_in ($string_array_ref); + is_deeply (GI::array_zero_terminated_out (), $string_array_ref); + is_deeply (GI::array_zero_terminated_inout ($string_array_ref), [qw/-1 0 1 2/]); + # The variant stuff is tested in variants.t. +} # GArray. -is_deeply (GI::garray_int_none_return (), $int_array_ref); -is_deeply (GI::garray_uint64_none_return (), [0, "18446744073709551615"]); -is_deeply (GI::garray_utf8_none_return (), $string_array_ref); -is_deeply (GI::garray_utf8_container_return (), $string_array_ref); -is_deeply (GI::garray_utf8_full_return (), $string_array_ref); -GI::garray_int_none_in ($int_array_ref); -GI::garray_uint64_none_in ([0, "18446744073709551615"]); -GI::garray_utf8_none_in ($string_array_ref); -is_deeply (GI::garray_utf8_none_out (), $string_array_ref); -is_deeply (GI::garray_utf8_container_out (), $string_array_ref); -is_deeply (GI::garray_utf8_full_out (), $string_array_ref); -# FIXME: is_deeply (GI::garray_utf8_full_out_caller_allocated (), $string_array_ref); -is_deeply (GI::garray_utf8_none_inout ($string_array_ref), [-2..1]); -is_deeply (GI::garray_utf8_container_inout ($string_array_ref), [-2..1]); -# FIXME: This leaks. See https://bugzilla.gnome.org/show_bug.cgi?id=745336. -is_deeply (GI::garray_utf8_full_inout ($string_array_ref), [-2..1]); +SKIP: { + skip 'GArray', 11 + unless check_gi_version (1, 34, 0); + is_deeply (GI::garray_int_none_return (), $int_array_ref); + is_deeply (GI::garray_uint64_none_return (), [0, "18446744073709551615"]); + is_deeply (GI::garray_utf8_none_return (), $string_array_ref); + is_deeply (GI::garray_utf8_container_return (), $string_array_ref); + is_deeply (GI::garray_utf8_full_return (), $string_array_ref); + GI::garray_int_none_in ($int_array_ref); + GI::garray_uint64_none_in ([0, "18446744073709551615"]); + GI::garray_utf8_none_in ($string_array_ref); + is_deeply (GI::garray_utf8_none_out (), $string_array_ref); + is_deeply (GI::garray_utf8_container_out (), $string_array_ref); + is_deeply (GI::garray_utf8_full_out (), $string_array_ref); + # FIXME: is_deeply (GI::garray_utf8_full_out_caller_allocated (), $string_array_ref); + is_deeply (GI::garray_utf8_none_inout ($string_array_ref), [-2..1]); + is_deeply (GI::garray_utf8_container_inout ($string_array_ref), [-2..1]); + # FIXME: This leaks. See https://bugzilla.gnome.org/show_bug.cgi?id=745336. + is_deeply (GI::garray_utf8_full_inout ($string_array_ref), [-2..1]); +} # GPtrArray. -is_deeply (GI::gptrarray_utf8_none_return (), $string_array_ref); -is_deeply (GI::gptrarray_utf8_container_return (), $string_array_ref); -is_deeply (GI::gptrarray_utf8_full_return (), $string_array_ref); -GI::gptrarray_utf8_none_in ($string_array_ref); -is_deeply (GI::gptrarray_utf8_none_out (), $string_array_ref); -is_deeply (GI::gptrarray_utf8_container_out (), $string_array_ref); -is_deeply (GI::gptrarray_utf8_full_out (), $string_array_ref); -is_deeply (GI::gptrarray_utf8_none_inout ($string_array_ref), [-2..1]); -is_deeply (GI::gptrarray_utf8_container_inout ($string_array_ref), [-2..1]); -# FIXME: This leaks. See https://bugzilla.gnome.org/show_bug.cgi?id=745336. -is_deeply (GI::gptrarray_utf8_full_inout ($string_array_ref), [-2..1]); +SKIP: { + skip 'GPtrArray', 9 + unless check_gi_version (0, 12, 0); + is_deeply (GI::gptrarray_utf8_none_return (), $string_array_ref); + is_deeply (GI::gptrarray_utf8_container_return (), $string_array_ref); + is_deeply (GI::gptrarray_utf8_full_return (), $string_array_ref); + GI::gptrarray_utf8_none_in ($string_array_ref); + is_deeply (GI::gptrarray_utf8_none_out (), $string_array_ref); + is_deeply (GI::gptrarray_utf8_container_out (), $string_array_ref); + is_deeply (GI::gptrarray_utf8_full_out (), $string_array_ref); + is_deeply (GI::gptrarray_utf8_none_inout ($string_array_ref), [-2..1]); + is_deeply (GI::gptrarray_utf8_container_inout ($string_array_ref), [-2..1]); + # FIXME: This leaks. See https://bugzilla.gnome.org/show_bug.cgi?id=745336. + is_deeply (GI::gptrarray_utf8_full_inout ($string_array_ref), [-2..1]); +} # GByteArray. -is_deeply (GI::bytearray_full_return (), $byte_array_ref); -GI::bytearray_none_in ($byte_array_ref); +SKIP: { + skip 'GByteArray', 1 + unless check_gi_version (0, 12, 0); + is_deeply (GI::bytearray_full_return (), $byte_array_ref); + GI::bytearray_none_in ($byte_array_ref); +} diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/Glib-Object-Introspection-0.029/t/variants.t new/Glib-Object-Introspection-0.030/t/variants.t --- old/Glib-Object-Introspection-0.029/t/variants.t 1970-01-01 01:00:00.000000000 +0100 +++ new/Glib-Object-Introspection-0.030/t/variants.t 2015-08-10 02:02:13.000000000 +0200 @@ -0,0 +1,26 @@ +#!/usr/bin/env perl + +BEGIN { require './t/inc/setup.pl' }; + +use strict; +use warnings; +use utf8; + +if (check_gi_version (1, 32, 0)) { + plan tests => 6; +} else { + plan skip_all => 'Need gobject-introspection 1.32.0'; +} + +my $v1 = Glib::Variant->new ("i", 27); +my $v2 = Glib::Variant->new ("s", "Hello"); + +check_variants (GI::array_gvariant_none_in ([$v1, $v2])); +check_variants (GI::array_gvariant_container_in ([$v1, $v2])); +check_variants (GI::array_gvariant_full_in ([$v1, $v2])); + +sub check_variants { + my ($v1, $v2) = @{$_[0]}; + is ($v1->get ("i"), 27); + is ($v2->get ("s"), "Hello"); +}