commit c130b320dd4f61848a5a7871c55f7f244e2d848e Author: Petr Písař <ppisar@xxxxxxxxxx> Date: Sun Jul 21 10:35:46 2013 +0200 Perl 5.18 compatibility Lexical-Var-0.007-perl_518.patch | 73 ++++++++++++++++++++++++++++++++++++++ perl-Lexical-Var.spec | 4 ++ 2 files changed, 77 insertions(+), 0 deletions(-) --- diff --git a/Lexical-Var-0.007-perl_518.patch b/Lexical-Var-0.007-perl_518.patch new file mode 100644 index 0000000..33772b4 --- /dev/null +++ b/Lexical-Var-0.007-perl_518.patch @@ -0,0 +1,73 @@ +diff -rup Lexical-Var-0.007-F6v6iu/lib/Lexical/Var.xs Lexical-Var-0.007-uRRqJL/lib/Lexical/Var.xs +--- Lexical-Var-0.007-F6v6iu/lib/Lexical/Var.xs 2012-02-04 00:58:09.000000000 -0800 ++++ Lexical-Var-0.007-uRRqJL/lib/Lexical/Var.xs 2012-10-21 07:03:18.000000000 -0700 +@@ -83,6 +83,18 @@ static SV *THX_newSV_type(pTHX_ svtype t + # define GV_NOTQUAL 0 + #endif /* !GV_NOTQUAL */ + ++#ifndef PadARRAY ++typedef AV PADNAMELIST; ++# if PERL_VERSION < 8 || (PERL_VERSION == 8 && !PERL_SUBVERSION) ++typedef AV PADLIST; ++typedef AV PAD; ++# endif ++# define PadlistARRAY(pl) ((PAD **)AvARRAY(pl)) ++# define PadlistNAMES(pl) (*PadlistARRAY(pl)) ++# define PadARRAY AvARRAY ++# define PadMAX AvFILLp ++#endif ++ + /* + * scalar classification + * +@@ -413,9 +425,10 @@ static U32 THX_pad_max(pTHX) + static CV *THX_find_compcv(pTHX_ char const *vari_word) + { + GV *compgv; +- CV *compcv; ++ CV *compcv = PL_compcv; + /* +- * Given that we're being invoked from a BEGIN block, ++ * We're being invoked from a BEGIN ++ * block. In perl 5.17.4 and earlier, + * PL_compcv here doesn't actually point to the sub + * being compiled. Instead it points to the BEGIN block. + * The code that we want to affect is the parent of that. +@@ -424,10 +437,13 @@ static CV *THX_find_compcv(pTHX_ char co + * runtime, or it can be non-null in a couple of + * other situations (require, string eval). + */ +- if(!(PL_compcv && CvSPECIAL(PL_compcv) && +- (compgv = CvGV(PL_compcv)) && ++ if(!(compcv && ++#if !PERL_VERSION_GE(5,17,5) ++ CvSPECIAL(compcv) && ++ (compgv = CvGV(compcv)) && + strEQ(GvNAME(compgv), "BEGIN") && +- (compcv = CvOUTSIDE(PL_compcv)) && ++ (compcv = CvOUTSIDE(compcv)) && ++#endif + CvPADLIST(compcv))) + croak("can't set up lexical %s outside compilation", + vari_word); +@@ -437,15 +453,15 @@ static CV *THX_find_compcv(pTHX_ char co + #define setup_pad(compcv, name) THX_setup_pad(aTHX_ compcv, name) + static void THX_setup_pad(pTHX_ CV *compcv, char const *name) + { +- AV *padlist = CvPADLIST(compcv); +- AV *padname = (AV*)*av_fetch(padlist, 0, 0); +- AV *padvar = (AV*)*av_fetch(padlist, 1, 0); ++ PADLIST *padlist = CvPADLIST(compcv); ++ PADNAMELIST *padname = PadlistNAMES(padlist); ++ PAD *padvar = PadlistARRAY(padlist)[1]; + PADOFFSET ouroffset; + SV *ourname, *ourvar; + HV *stash; +- ourvar = *av_fetch(padvar, AvFILLp(padvar) + 1, 1); ++ ourvar = *av_fetch(padvar, PadMAX(padvar) + 1, 1); + SvPADMY_on(ourvar); +- ouroffset = AvFILLp(padvar); ++ ouroffset = PadMAX(padvar); + ourname = newSV_type(SVt_PADNAME); + sv_setpv(ourname, name); + SvPAD_OUR_on(ourname); diff --git a/perl-Lexical-Var.spec b/perl-Lexical-Var.spec index a1d732a..6f7c78d 100644 --- a/perl-Lexical-Var.spec +++ b/perl-Lexical-Var.spec @@ -6,6 +6,8 @@ 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 +# Perl 5.18 compatibility, CPAN RT#80309 +Patch0: Lexical-Var-0.007-perl_518.patch BuildRequires: perl >= 0:5.006 BuildRequires: perl(ExtUtils::CBuilder) >= 0.15 BuildRequires: perl(Lexical::SealRequireHints) >= 0.006 @@ -26,6 +28,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" @@ -49,6 +52,7 @@ find $RPM_BUILD_ROOT -depth -type d -exec rmdir {} 2>/dev/null \; %changelog * Sun Jul 21 2013 Petr Pisar <ppisar@xxxxxxxxxx> - 0.007-5 - Perl 5.18 rebuild +- Perl 5.18 compatibility (CPAN RT#80309) * Thu Feb 14 2013 Fedora Release Engineering <rel-eng@xxxxxxxxxxxxxxxxxxxxxxx> - 0.007-4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild -- Fedora Extras Perl SIG http://www.fedoraproject.org/wiki/Extras/SIGs/Perl perl-devel mailing list perl-devel@xxxxxxxxxxxxxxxxxxxxxxx https://admin.fedoraproject.org/mailman/listinfo/perl-devel