diff --git a/Lexical-Var-0.009-Fix-RT-101058.patch b/Lexical-Var-0.009-Fix-RT-101058.patch new file mode 100644 index 0000000..5df9972 --- /dev/null +++ b/Lexical-Var-0.009-Fix-RT-101058.patch @@ -0,0 +1,59 @@ +diff -rup Lexical-Var-0.009-ubeeQC-orig/lib/Lexical/Var.xs Lexical-Var-0.009-ubeeQC/lib/Lexical/Var.xs +--- Lexical-Var-0.009-ubeeQC-orig/lib/Lexical/Var.xs 2013-08-25 11:51:34.000000000 -0700 ++++ Lexical-Var-0.009-ubeeQC/lib/Lexical/Var.xs 2014-12-21 10:58:32.000000000 -0800 +@@ -62,7 +62,12 @@ typedef AV PAD; + #endif /* !COP_SEQ_RANGE_LOW */ + + #ifndef COP_SEQ_RANGE_LOW_set +-# if PERL_VERSION_GE(5,9,5) ++# ifdef newPADNAMEpvn ++# define COP_SEQ_RANGE_LOW_set(sv,val) \ ++ do { (sv)->xpadn_low = (val); } while(0) ++# define COP_SEQ_RANGE_HIGH_set(sv,val) \ ++ do { (sv)->xpadn_high = (val); } while(0) ++# elif PERL_VERSION_GE(5,9,5) + # define COP_SEQ_RANGE_LOW_set(sv,val) \ + do { ((XPVNV*)SvANY(sv))->xnv_u.xpad_cop_seq.xlow = val; } while(0) + # define COP_SEQ_RANGE_HIGH_set(sv,val) \ +@@ -95,6 +100,12 @@ static SV *THX_newSV_type(pTHX_ svtype t + # define GV_NOTQUAL 0 + #endif /* !GV_NOTQUAL */ + ++#ifndef padnamelist_store ++ /* Note that the return values are different. If we ever call it in non- ++ void context, we would have to change it to *av_store. */ ++# define padnamelist_store av_store ++#endif ++ + /* + * scalar classification + * +@@ -460,13 +471,18 @@ static void THX_setup_pad(pTHX_ CV *comp + PADNAMELIST *padname = PadlistNAMES(padlist); + PAD *padvar = PadlistARRAY(padlist)[1]; + PADOFFSET ouroffset; +- SV *ourname, *ourvar; ++ PADNAME *ourname; ++ SV *ourvar; + HV *stash; + ourvar = *av_fetch(padvar, PadMAX(padvar) + 1, 1); + SvPADMY_on(ourvar); + ouroffset = PadMAX(padvar); ++#ifdef newPADNAMEpvn ++ ourname = newPADNAMEpvn(name, strlen(name)); ++#else + ourname = newSV_type(SVt_PADNAME); + sv_setpv(ourname, name); ++#endif + SvPAD_OUR_on(ourname); + stash = name[0] == '$' ? stash_lex_sv : + name[0] == '@' ? stash_lex_av : stash_lex_hv; +@@ -474,7 +490,7 @@ static void THX_setup_pad(pTHX_ CV *comp + COP_SEQ_RANGE_LOW_set(ourname, PL_cop_seqmax); + COP_SEQ_RANGE_HIGH_set(ourname, pad_max()); + PL_cop_seqmax++; +- av_store(padname, ouroffset, ourname); ++ padnamelist_store(padname, ouroffset, ourname); + #ifdef PadnamelistMAXNAMED + PadnamelistMAXNAMED(padname) = ouroffset; + #endif /* PadnamelistMAXNAMED */ diff --git a/perl-Lexical-Var.spec b/perl-Lexical-Var.spec index 92cb55b..c8129c1 100644 --- a/perl-Lexical-Var.spec +++ b/perl-Lexical-Var.spec @@ -1,11 +1,13 @@ Name: perl-Lexical-Var Version: 0.009 -Release: 4%{?dist} +Release: 5%{?dist} Summary: Static variables without name space pollution License: GPL+ or Artistic Group: Development/Libraries URL: http://search.cpan.org/dist/Lexical-Var/ Source0: http://www.cpan.org/authors/id/Z/ZE/ZEFRAM/Lexical-Var-%{version}.tar.gz +# Update code to work with Perl 5.21.x (CPAN RT#101058) +Patch0: Lexical-Var-0.009-Fix-RT-101058.patch BuildRequires: perl >= 0:5.006 BuildRequires: perl(Module::Build) BuildRequires: perl(strict) @@ -30,6 +32,7 @@ infrastructure for modules that manage name spaces. %prep %setup -q -n Lexical-Var-%{version} +%patch0 -p1 %build perl Build.PL installdirs=vendor optimize="$RPM_OPT_FLAGS" @@ -50,6 +53,9 @@ find $RPM_BUILD_ROOT -type f -name '*.bs' -size 0 -exec rm -f {} \; %{_mandir}/man3/* %changelog +* Mon May 11 2015 Jitka Plesnikova - 0.009-5 +- Fix CPAN RT#101058 + * Thu Aug 28 2014 Jitka Plesnikova - 0.009-4 - Perl 5.20 rebuild