diff --git a/.gitignore b/.gitignore index f05b087..30ebe7c 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ /Mouse-[0-9.]*.tar.gz +/Mouse-v2.4.5.tar.gz diff --git a/Mouse-2.4.2-Fix-test-code.patch b/Mouse-2.4.2-Fix-test-code.patch deleted file mode 100644 index 142aedb..0000000 --- a/Mouse-2.4.2-Fix-test-code.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 43bd48014c89331cc0dadad78190890199469e81 Mon Sep 17 00:00:00 2001 -From: Syohei YOSHIDA -Date: Wed, 24 Jun 2015 18:02:57 +0900 -Subject: [PATCH 2/2] Fix test code -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -In original code, mismatching plan error is occurred. - -Signed-off-by: Petr Písař ---- - t/900_mouse_bugs/017_issue29.t | 9 ++++++--- - 1 file changed, 6 insertions(+), 3 deletions(-) - -diff --git a/t/900_mouse_bugs/017_issue29.t b/t/900_mouse_bugs/017_issue29.t -index 14c2900..bc93767 100644 ---- a/t/900_mouse_bugs/017_issue29.t -+++ b/t/900_mouse_bugs/017_issue29.t -@@ -3,10 +3,13 @@ - package main; - use strict; - use warnings; --use Test::More skip_all => 'See https://github.com/gfx/p5-Mouse/issues/29'; -- --use Test::Requires qw(threads); # XXX: ithreads is discuraged! -+use constant HAS_THREADS => eval{ require threads && require threads::shared }; -+use Test::More; - -+use if !HAS_THREADS, 'Test::More', -+ (skip_all => "This is a test for threads ($@)"); -+use if $Test::More::VERSION >= 2.00, 'Test::More', -+ (skip_all => "Test::Builder2 has bugs about threads"); - - { - package Foo; --- -2.1.0 - diff --git a/Mouse-2.4.2-Fix-thread-issue-for-Perl-5.22.0-or-higher.patch b/Mouse-2.4.2-Fix-thread-issue-for-Perl-5.22.0-or-higher.patch deleted file mode 100644 index f178e73..0000000 --- a/Mouse-2.4.2-Fix-thread-issue-for-Perl-5.22.0-or-higher.patch +++ /dev/null @@ -1,195 +0,0 @@ -From 40f345f8b69a863069b25c5f3aac22d8f677eb03 Mon Sep 17 00:00:00 2001 -From: Syohei YOSHIDA -Date: Wed, 24 Jun 2015 17:34:02 +0900 -Subject: [PATCH 1/2] Fix thread issue for Perl 5.22.0 or higher -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -Signed-off-by: Petr Písař ---- - mouse.h | 8 ++++++++ - xs-src/MouseAccessor.xs | 20 ++++++++++++-------- - xs-src/MouseTypeConstraints.xs | 17 +++++++++++------ - 3 files changed, 31 insertions(+), 14 deletions(-) - -diff --git a/mouse.h b/mouse.h -index b0c53ef..48792a2 100644 ---- a/mouse.h -+++ b/mouse.h -@@ -106,6 +106,14 @@ SV* mouse_av_at_safe(pTHX_ AV* const mi, I32 const ix); - #define MOUSE_mg_slot(mg) MOUSE_mg_obj(mg) - #define MOUSE_mg_xa(mg) ((AV*)MOUSE_mg_ptr(mg)) - -+static inline MAGIC *MOUSE_get_magic(CV *cv, MGVTBL *vtbl) -+{ -+#ifndef MULTIPLICITY -+ return (MAGIC*)(CvXSUBANY(cv).any_ptr); -+#else -+ return mg_findext((SV*)cv, PERL_MAGIC_ext, vtbl); -+#endif -+} - - /* mouse_instance.xs stuff */ - SV* mouse_instance_create (pTHX_ HV* const stash); -diff --git a/xs-src/MouseAccessor.xs b/xs-src/MouseAccessor.xs -index daf9cf1..11eb630 100644 ---- a/xs-src/MouseAccessor.xs -+++ b/xs-src/MouseAccessor.xs -@@ -122,7 +122,9 @@ mouse_accessor_generate(pTHX_ SV* const attr, XSUBADDR_t const accessor_impl){ - * although we use MAGIC for gc, we also store mg to - * CvXSUBANY for efficiency (gfx) - */ -+#ifndef MULTIPLICITY - CvXSUBANY(xsub).any_ptr = (void*)mg; -+#endif - - return xsub; - } -@@ -262,7 +264,7 @@ XS(XS_Mouse_accessor) - { - dVAR; dXSARGS; - dMOUSE_self; -- MAGIC* const mg = (MAGIC*)XSANY.any_ptr; -+ MAGIC* const mg = MOUSE_get_magic(cv, &mouse_accessor_vtbl); - - SP -= items; /* PPCODE */ - PUTBACK; -@@ -285,7 +287,7 @@ XS(XS_Mouse_reader) - { - dVAR; dXSARGS; - dMOUSE_self; -- MAGIC* const mg = (MAGIC*)XSANY.any_ptr; -+ MAGIC* const mg = MOUSE_get_magic(cv, &mouse_accessor_vtbl); - - if (items != 1) { - mouse_throw_error(MOUSE_mg_attribute(mg), NULL, -@@ -303,7 +305,7 @@ XS(XS_Mouse_writer) - { - dVAR; dXSARGS; - dMOUSE_self; -- MAGIC* const mg = (MAGIC*)XSANY.any_ptr; -+ MAGIC* const mg = MOUSE_get_magic(cv, &mouse_accessor_vtbl); - - if (items != 2) { - mouse_throw_error(MOUSE_mg_attribute(mg), NULL, -@@ -351,7 +353,9 @@ mouse_simple_accessor_generate(pTHX_ - * although we use MAGIC for gc, we also store mg to CvXSUBANY - * for efficiency (gfx) - */ -+#ifndef MULTIPLICITY - CvXSUBANY(xsub).any_ptr = (void*)mg; -+#endif - - return xsub; - } -@@ -360,7 +364,7 @@ XS(XS_Mouse_simple_reader) - { - dVAR; dXSARGS; - dMOUSE_self; -- MAGIC* const mg = (MAGIC*)XSANY.any_ptr; -+ MAGIC* const mg = MOUSE_get_magic(cv, &mouse_accessor_vtbl); - SV* value; - - if (items != 1) { -@@ -389,7 +393,7 @@ XS(XS_Mouse_simple_writer) - { - dVAR; dXSARGS; - dMOUSE_self; -- SV* const slot = MOUSE_mg_slot((MAGIC*)XSANY.any_ptr); -+ SV* const slot = MOUSE_mg_slot(MOUSE_get_magic(cv, &mouse_accessor_vtbl)); - - if (items != 2) { - croak("Expected exactly two argument for a writer of %"SVf, -@@ -404,7 +408,7 @@ XS(XS_Mouse_simple_clearer) - { - dVAR; dXSARGS; - dMOUSE_self; -- SV* const slot = MOUSE_mg_slot((MAGIC*)XSANY.any_ptr); -+ SV* const slot = MOUSE_mg_slot(MOUSE_get_magic(cv, &mouse_accessor_vtbl)); - SV* value; - - if (items != 1) { -@@ -421,7 +425,7 @@ XS(XS_Mouse_simple_predicate) - { - dVAR; dXSARGS; - dMOUSE_self; -- SV* const slot = MOUSE_mg_slot((MAGIC*)XSANY.any_ptr); -+ SV* const slot = MOUSE_mg_slot(MOUSE_get_magic(cv, &mouse_accessor_vtbl)); - - if (items != 1) { - croak("Expected exactly one argument for a predicate of %"SVf, slot); -@@ -435,7 +439,7 @@ XS(XS_Mouse_simple_predicate) - XS(XS_Mouse_inheritable_class_accessor) { - dVAR; dXSARGS; - dMOUSE_self; -- SV* const slot = MOUSE_mg_slot((MAGIC*)XSANY.any_ptr); -+ SV* const slot = MOUSE_mg_slot(MOUSE_get_magic(cv, &mouse_accessor_vtbl)); - SV* value; - HV* stash; - -diff --git a/xs-src/MouseTypeConstraints.xs b/xs-src/MouseTypeConstraints.xs -index d4b57a0..6d723ee 100644 ---- a/xs-src/MouseTypeConstraints.xs -+++ b/xs-src/MouseTypeConstraints.xs -@@ -24,6 +24,8 @@ typedef int (*check_fptr_t)(pTHX_ SV* const data, SV* const sv); - static - XSPROTO(XS_Mouse_constraint_check); - -+static MGVTBL mouse_util_type_constraints_vtbl; /* not used, only for identity */ -+ - /* - NOTE: mouse_tc_check() handles GETMAGIC - */ -@@ -33,9 +35,10 @@ mouse_tc_check(pTHX_ SV* const tc_code, SV* const sv) { - assert(SvTYPE(cv) == SVt_PVCV); - - if(CvXSUB(cv) == XS_Mouse_constraint_check){ /* built-in type constraints */ -- MAGIC* const mg = (MAGIC*)CvXSUBANY(cv).any_ptr; -- -+ MAGIC* const mg = MOUSE_get_magic(cv, &mouse_util_type_constraints_vtbl); -+#ifndef MULTIPLICITY - assert(CvXSUBANY(cv).any_ptr != NULL); -+#endif - assert(mg->mg_ptr != NULL); - - SvGETMAGIC(sv); -@@ -498,14 +501,13 @@ mouse_can_methods(pTHX_ AV* const methods, SV* const instance){ - return FALSE; - } - --static MGVTBL mouse_util_type_constraints_vtbl; /* not used, only for identity */ -- - static CV* - mouse_tc_generate(pTHX_ const char* const name, check_fptr_t const fptr, SV* const param) { - CV* xsub; -+ MAGIC* mg; - - xsub = newXS(name, XS_Mouse_constraint_check, __FILE__); -- CvXSUBANY(xsub).any_ptr = sv_magicext( -+ mg = sv_magicext( - (SV*)xsub, - param, /* mg_obj: refcnt will be increased */ - PERL_MAGIC_ext, -@@ -513,6 +515,9 @@ mouse_tc_generate(pTHX_ const char* const name, check_fptr_t const fptr, SV* con - (char*)fptr, /* mg_ptr */ - 0 /* mg_len: 0 for static data */ - ); -+#ifndef MULTIPLICITY -+ CvXSUBANY(xsub).any_ptr = (void*)mg; -+#endif - - if(!name){ - sv_2mortal((SV*)xsub); -@@ -569,7 +574,7 @@ static - XSPROTO(XS_Mouse_constraint_check) { - dVAR; - dXSARGS; -- MAGIC* const mg = (MAGIC*)XSANY.any_ptr; -+ MAGIC* const mg = MOUSE_get_magic(cv, &mouse_util_type_constraints_vtbl); - SV* sv; - - if(items < 1){ --- -2.1.0 - diff --git a/perl-Mouse.spec b/perl-Mouse.spec index 47b63f5..0a064df 100644 --- a/perl-Mouse.spec +++ b/perl-Mouse.spec @@ -1,20 +1,14 @@ Name: perl-Mouse Summary: Moose minus the antlers -Version: 2.4.2 -Release: 5%{?dist} +Version: 2.4.5 +Release: 1%{?dist} License: GPL+ or Artistic Group: Development/Libraries URL: http://search.cpan.org/dist/Mouse -Source0: http://search.cpan.org/CPAN/authors/id/G/GF/GFUJI/Mouse-%{version}.tar.gz +Source0: http://search.cpan.org/CPAN/authors/id/S/SY/SYOHEX/Mouse-v%{version}.tar.gz # The build of Data::Dump::Streamer fails with 5.21.x and higher # Disable the optional test to build Mouse with Perl 5.22 Patch0: Mouse-2.4.2-Disable-using-Data-Dump-Streamer.patch -# Fix interaction with threads in perl-5.22, not compatible with older perls, -# bug #1235938, -Patch1: Mouse-2.4.2-Fix-thread-issue-for-Perl-5.22.0-or-higher.patch -# Enable and correct threads test, not compatible with older perls, -# bug #1235938, -Patch2: Mouse-2.4.2-Fix-test-code.patch # Module Build BuildRequires: perl BuildRequires: perl(Devel::PPPort) >= 3.19 @@ -109,11 +103,9 @@ This module provides some useful test functions for Mouse based classes. It is an experimental first release, so comments and suggestions are very welcome. %prep -%setup -q -n Mouse-%{version} +%setup -q -n Mouse-v%{version} %if 0%(perl -e 'print $] >= 5.022') %patch0 -p1 -%patch1 -p1 -%patch2 -p1 %endif # Fix permissions @@ -177,6 +169,10 @@ find %{buildroot} -type f -name '*.bs' -a -size 0 -exec rm -f {} ';' %{_mandir}/man3/Test::Mouse.3* %changelog +* Sun Aug 16 2015 Emmanuel Seyman - 2.4.5-1 +- Update to 2.4.5 +- Drop upstreamed patches + * Fri Jun 26 2015 Petr Pisar - 2.4.2-5 - Fix interaction with threads in perl-5.22 (bug #1235938) diff --git a/sources b/sources index 55c33d6..a9e2fff 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -7abd3ab36026425dd035aecc53aa60b7 Mouse-2.4.2.tar.gz +2183f5bc16c7d37df5cf1dacf8ef88a1 Mouse-v2.4.5.tar.gz