diff options
Diffstat (limited to 'abs/core/perl_modules/perl-params-classify')
| -rw-r--r-- | abs/core/perl_modules/perl-params-classify/PKGBUILD | 44 | ||||
| -rw-r--r-- | abs/core/perl_modules/perl-params-classify/op-sibling-fixes.patch | 79 | 
2 files changed, 111 insertions, 12 deletions
diff --git a/abs/core/perl_modules/perl-params-classify/PKGBUILD b/abs/core/perl_modules/perl-params-classify/PKGBUILD index d0dae4a..caa6278 100644 --- a/abs/core/perl_modules/perl-params-classify/PKGBUILD +++ b/abs/core/perl_modules/perl-params-classify/PKGBUILD @@ -1,23 +1,43 @@ -# $Id: PKGBUILD 71821 2012-06-02 10:31:50Z bluewind $ +# $Id$  # Maintainer: Sergej Pupykin <pupykin.s+arch@gmail.com>  pkgname=perl-params-classify  pkgver=0.013 -pkgrel=2 +pkgrel=10  pkgdesc="argument type classification" -arch=(i686 x86_64) +arch=(x86_64)  license=('PerlArtistic')  url="http://search.cpan.org/~zefram/Params-Classify"  options=(!emptydirs) -depends=('perl>=5.10.1') -source=("http://search.cpan.org/CPAN/authors/id/Z/ZE/ZEFRAM/Params-Classify-$pkgver.tar.gz") -md5sums=('63d24fbec775472ada49d16bce4a9b1f') +depends=('perl') +makedepends=('perl-module-build') +source=("http://search.cpan.org/CPAN/authors/id/Z/ZE/ZEFRAM/Params-Classify-$pkgver.tar.gz" +        'op-sibling-fixes.patch') +md5sums=('63d24fbec775472ada49d16bce4a9b1f' +         '6a115714a269b34decf42fc445a2d0e0') + +prepare() { +  cd "$srcdir"/Params-Classify-$pkgver +  # https://rt.cpan.org/Public/Bug/Display.html?id=114490 +  patch -Np1 -i ../op-sibling-fixes.patch +}  build() { -  cd $srcdir/Params-Classify-$pkgver -  PERL_MM_USE_DEFAULT=1 perl Makefile.PL INSTALLDIRS=vendor -  make -  make install DESTDIR=${pkgdir} -  find ${pkgdir} -name perllocal.pod -delete -  find ${pkgdir} -name .packlist -delete +  cd "$srcdir"/Params-Classify-$pkgver +  perl Build.PL installdirs=vendor destdir="$pkgdir/" +  perl Build +} + +package() { +  cd "$srcdir"/Params-Classify-$pkgver +  perl Build install +  find "$pkgdir" -name perllocal.pod -delete +  find "$pkgdir" -name .packlist -delete +# template start; name=perl-binary-module-dependency; version=1; +if [[ $(find "$pkgdir/usr/lib/perl5/" -name "*.so") ]]; then +	_perlver_min=$(perl -e '$v = $^V->{version}; print $v->[0].".".($v->[1]);') +	_perlver_max=$(perl -e '$v = $^V->{version}; print $v->[0].".".($v->[1]+1);') +	depends+=("perl>=$_perlver_min" "perl<$_perlver_max") +fi +# template end;  } diff --git a/abs/core/perl_modules/perl-params-classify/op-sibling-fixes.patch b/abs/core/perl_modules/perl-params-classify/op-sibling-fixes.patch new file mode 100644 index 0000000..98dd25e --- /dev/null +++ b/abs/core/perl_modules/perl-params-classify/op-sibling-fixes.patch @@ -0,0 +1,79 @@ +--- Params-Classify-0.013a/lib/Params/Classify.xs	2010-11-16 15:35:47.000000000 -0500 ++++ Params-Classify-0.013b/lib/Params/Classify.xs	2017-03-26 15:38:12.384693301 -0400 +@@ -41,6 +41,26 @@ + # define FPTR2DPTR(t,x) ((t)(UV)(x)) + #endif /* !FPTR2DPTR */ +  ++#ifndef OpHAS_SIBLING ++#  define OpHAS_SIBLING(o)               (cBOOL((o)->op_sibling)) ++#endif ++ ++#ifndef OpSIBLING ++#  define OpSIBLING(o)                   (0 + (o)->op_sibling) ++#endif ++ ++#ifndef OpMORESIB_set ++#  define OpMORESIB_set(o, sib)          ((o)->op_sibling = (sib)) ++#endif ++ ++#ifndef OpLASTSIB_set ++#  define OpLASTSIB_set(o, parent)       ((o)->op_sibling = NULL) ++#endif ++ ++#ifndef OpMAYBESIB_set ++#  define OpMAYBESIB_set(o, sib, parent) ((o)->op_sibling = (sib)) ++#endif ++ + #ifndef ptr_table_new +  + struct q_ptr_tbl_ent { +@@ -625,8 +645,8 @@ + 	OP *(*ppfunc)(pTHX); + 	I32 cvflags; + 	pushop = cUNOPx(op)->op_first; +-	if(!pushop->op_sibling) pushop = cUNOPx(pushop)->op_first; +-	for(cvop = pushop; cvop->op_sibling; cvop = cvop->op_sibling) ; ++	if(!OpHAS_SIBLING(pushop)) pushop = cUNOPx(pushop)->op_first; ++	for(cvop = pushop; OpHAS_SIBLING(cvop); cvop = OpSIBLING(cvop)) ; + 	if(!(cvop->op_type == OP_RV2CV && + 			!(cvop->op_private & OPpENTERSUB_AMPER) && + 			(cv = rvop_cv(cUNOPx(cvop)->op_first)) && +@@ -635,20 +655,20 @@ + 		return nxck_entersub(aTHX_ op); + 	cvflags = CvXSUBANY(cv).any_i32; + 	op = nxck_entersub(aTHX_ op);   /* for prototype checking */ +-	aop = pushop->op_sibling; +-	bop = aop->op_sibling; ++	aop = OpSIBLING(pushop); ++	bop = OpSIBLING(aop); + 	if(bop == cvop) { + 		if(!(cvflags & PC_ALLOW_UNARY)) return op; + 		unary: +-		pushop->op_sibling = bop; +-		aop->op_sibling = NULL; ++		OpLASTSIB_set(pushop, bop); ++		OpLASTSIB_set(aop, NULL); + 		op_free(op); + 		op = newUNOP(OP_NULL, 0, aop); + 		op->op_type = OP_RAND; + 		op->op_ppaddr = ppfunc; + 		op->op_private = (U8)cvflags; + 		return op; +-	} else if(bop && bop->op_sibling == cvop) { ++	} else if(bop && OpSIBLING(op) == cvop) { + 		if(!(cvflags & PC_ALLOW_BINARY)) return op; + 		if(ppfunc == THX_pp_check_sclass && + 				(cvflags & PC_TYPE_MASK) == SCLASS_REF) { +@@ -667,9 +687,9 @@ + 			cvflags &= ~PC_TYPE_MASK; + 			ppfunc = THX_pp_check_dyn_battr; + 		} +-		pushop->op_sibling = cvop; +-		aop->op_sibling = NULL; +-		bop->op_sibling = NULL; ++		OpLASTSIB_set(pushop, cvop); ++		OpLASTSIB_set(aop, NULL); ++		OpLASTSIB_set(bop, NULL); + 		op_free(op); + 		op = newBINOP(OP_NULL, 0, aop, bop); + 		op->op_type = OP_RAND;  | 
