# Maintainer: Natanael Copa # Contributor: Leonardo Arena # Contributor: Valery Kartel global pkgname := 'perl' global pkgver := '5.26.1' global pkgrel := '1' global pkgdesc := '"Larry Wall's Practical Extraction and Report Language'" global url := '"http://www.perl.org/'" global arch := '"all'" global license := '"Artistic GPL2'" global options := '"!fhs'" global depends := ''"" global depends_dev := '"perl-utils'" global makedepends := '"bzip2-dev zlib-dev'" global subpackages := ""$pkgname-doc $pkgname-dev $pkgname-utils::noarch miniperl"" global source := ""http://www.cpan.org/src/5.0/perl-$pkgver.tar.gz "" # secfixes: # 5.26.1-r0: # - CVE-2017-12837 # - CVE-2017-12883 global builddir := ""$srcdir/$pkgname-$pkgver"" global _privlib := '/usr/share/perl5/core_perl' global _archlib := '/usr/lib/perl5/core_perl' proc prepare { chmod +w "$builddir"/*.c default_prepare || return 1 cd $builddir sed -e 's/less -R/less/g' \ -e 's/libswanted="\(.*\) nsl\(.*\)"/libswanted="\1\2"/g' \ -i ./Configure || return 1 # Ensure that we never accidentally bundle zlib or bzip2 rm -rf cpan/Compress-Raw-Zlib/zlib-src rm -rf cpan/Compress-Raw-Bzip2/bzip2-src sed -i '/\(bzip2\|zlib\)-src/d' MANIFEST } proc build { cd $builddir global BUILD_ZLIB := '0' global BUILD_BZIP2 := '0' global BZIP2_LIB := '/usr/lib' global BZIP2_INCLUDE := '/usr/inculde' export BUILD_ZLIB BUILD_BZIP2 BZIP2_LIB BZIP2_INCLUDE ./Configure -des \ -Dcccdlflags='-fPIC' \ -Dcccdlflags='-fPIC' \ -Dccdlflags='-rdynamic' \ -Dprefix=/usr \ -Dprivlib=$_privlib \ -Darchlib=$_archlib \ -Dvendorprefix=/usr \ -Dvendorlib=/usr/share/perl5/vendor_perl \ -Dvendorarch=/usr/lib/perl5/vendor_perl \ -Dsiteprefix=/usr/local \ -Dsitelib=/usr/local/share/perl5/site_perl \ -Dsitearch=/usr/local/lib/perl5/site_perl \ -Dlocincpth=' ' \ -Doptimize="$CFLAGS" \ -Duselargefiles \ -Dusethreads \ -Duseshrplib \ -Dd_semctl_semun \ -Dman1dir=/usr/share/man/man1 \ -Dman3dir=/usr/share/man/man3 \ -Dinstallman1dir=/usr/share/man/man1 \ -Dinstallman3dir=/usr/share/man/man3 \ -Dman1ext='1' \ -Dman3ext='3pm' \ -Dcf_by='Alpine' \ -Ud_csh \ -Dusenm \ || return 1 make libperl.so && make || return 1 } proc package { cd $builddir make DESTDIR="$pkgdir" install if test -n $[find $pkgdir/usr/local -type f] { error "files found under /usr/local" return 1 } find $pkgdir -name '.*' -delete } proc miniperl { install -Dm755 "$builddir"/$subpkgname \ "$subpkgdir"/usr/bin/$subpkgname || return 1 } proc doc { default_doc var file = ''; for file in [$[find $pkgdir -name "*.pod]] { file := $(file#$pkgdir/) mkdir -p "$subpkgdir"/$(file%/*) || return 1 mv "$pkgdir"/$file "$subpkgdir"/$file || return 1 } } proc dev { mkdir -p "$subpkgdir"/usr/bin "$subpkgdir"/$_archlib "$subpkgdir"/$_privlib mv "$pkgdir"/$_archlib/Devel "$subpkgdir"/$_archlib/ mv "$pkgdir"/$_privlib/Encode "$subpkgdir"/$_privlib/ mv "$pkgdir"/usr/bin/h2xs \ "$pkgdir"/usr/bin/perlivp \ "$pkgdir"/usr/bin/enc2xs \ "$pkgdir"/usr/bin/xsubpp \ "$subpkgdir"/usr/bin/ default_dev } proc utils { global pkgdesc := ""$pkgdesc (misc utilities)"" global depends := $pkgname mkdir -p "$subpkgdir"/usr/bin var file = '' for file in [\ corelist \ cpan \ encguess \ libnetcfg \ h2ph \ instmodsh \ json_pp \ perlbug \ perlthanks \ piconv \ pl2pm \ prove \ ptar \ ptardiff \ ptargrep \ shasum \ splain \ zipdetails] { mv "$pkgdir"/usr/bin/$file "$subpkgdir"/usr/bin/ || return 1 } } global sha512sums := '"098a08f1dd0dbc065cc2d93752a5b320e63d665a80392f7c4d83e807f05762d34c70c99d80bc8085512f5653f9a4b54edb5a8973aba240d41c211ebbd630209f perl-5.26.1.tar.gz'" (CommandList children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:pkgname) op:Equal rhs:{(perl)} spids:[9])] spids: [9] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:pkgver) op:Equal rhs:{(5.26.1)} spids:[12])] spids: [12] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:pkgrel) op:Equal rhs:{(1)} spids:[15])] spids: [15] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pkgdesc) op: Equal rhs: {(DQ ("Larry Wall's Practical Extraction and Report Language"))} spids: [18] ) ] spids: [18] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:url) op: Equal rhs: {(DQ ("http://www.perl.org/"))} spids: [23] ) ] spids: [23] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:arch) op:Equal rhs:{(DQ (all))} spids:[28])] spids: [28] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:license) op: Equal rhs: {(DQ ("Artistic GPL2"))} spids: [33] ) ] spids: [33] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:options) op:Equal rhs:{(DQ ("!fhs"))} spids:[38])] spids: [38] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:depends) op:Equal rhs:{(DQ )} spids:[43])] spids: [43] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:depends_dev) op: Equal rhs: {(DQ (perl-utils))} spids: [47] ) ] spids: [47] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:makedepends) op: Equal rhs: {(DQ ("bzip2-dev zlib-dev"))} spids: [52] ) ] spids: [52] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:subpackages) op: Equal rhs: { (DQ ($ VSub_Name "$pkgname") ("-doc ") ($ VSub_Name "$pkgname") ("-dev ") ($ VSub_Name "$pkgname") ("-utils::noarch miniperl") ) } spids: [57] ) ] spids: [57] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:source) op: Equal rhs: {(DQ ("http://www.cpan.org/src/5.0/perl-") ($ VSub_Name "$pkgver") (".tar.gz\n") ("\t"))} spids: [67] ) ] spids: [67] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:builddir) op: Equal rhs: {(DQ ($ VSub_Name "$srcdir") (/) ($ VSub_Name "$pkgname") (-) ($ VSub_Name "$pkgver"))} spids: [89] ) ] spids: [89] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:_privlib) op: Equal rhs: {(/usr/share/perl5/core_perl)} spids: [99] ) ] spids: [99] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:_archlib) op: Equal rhs: {(/usr/lib/perl5/core_perl)} spids: [102] ) ] spids: [102] ) (FuncDef name: prepare body: (BraceGroup children: [ (C {(chmod)} {(Lit_Other "+") (w)} {(DQ ($ VSub_Name "$builddir")) (/) (Lit_Other "*") (.c)}) (AndOr children: [ (C {(default_prepare)}) (ControlFlow token: arg_word:{(1)}) ] op_id: Op_DPipe ) (C {(cd)} {(DQ ($ VSub_Name "$builddir"))}) (AndOr children: [ (C {(sed)} {(-e)} {(SQ <"s/less -R/less/g">)} {(-e)} {(SQ <"s/libswanted=\"\\(.*\\) nsl\\(.*\\)\"/libswanted=\"\\1\\2\"/g">)} {(-i)} {(./Configure)} ) (ControlFlow token: arg_word:{(1)}) ] op_id: Op_DPipe ) (C {(rm)} {(-rf)} {(cpan/Compress-Raw-Zlib/zlib-src)}) (C {(rm)} {(-rf)} {(cpan/Compress-Raw-Bzip2/bzip2-src)}) (C {(sed)} {(-i)} {(SQ <"/\\(bzip2\\|zlib\\)-src/d">)} {(MANIFEST)}) ] spids: [110] ) spids: [106 109] ) (FuncDef name: build body: (BraceGroup children: [ (C {(cd)} {(DQ ($ VSub_Name "$builddir"))}) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:BUILD_ZLIB) op:Equal rhs:{(0)} spids:[218])] spids: [218] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:BUILD_BZIP2) op:Equal rhs:{(0)} spids:[222])] spids: [222] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BZIP2_LIB) op: Equal rhs: {(/usr/lib)} spids: [226] ) ] spids: [226] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:BZIP2_INCLUDE) op: Equal rhs: {(/usr/inculde)} spids: [230] ) ] spids: [230] ) (C {(export)} {(BUILD_ZLIB)} {(BUILD_BZIP2)} {(BZIP2_LIB)} {(BZIP2_INCLUDE)}) (AndOr children: [ (C {(./Configure)} {(-des)} {(-Dcccdlflags) (Lit_Other "=") (SQ <-fPIC>)} {(-Dcccdlflags) (Lit_Other "=") (SQ <-fPIC>)} {(-Dccdlflags) (Lit_Other "=") (SQ <-rdynamic>)} {(-Dprefix) (Lit_Other "=") (/usr)} {(-Dprivlib) (Lit_Other "=") ($ VSub_Name "$_privlib")} {(-Darchlib) (Lit_Other "=") ($ VSub_Name "$_archlib")} {(-Dvendorprefix) (Lit_Other "=") (/usr)} {(-Dvendorlib) (Lit_Other "=") (/usr/share/perl5/vendor_perl)} {(-Dvendorarch) (Lit_Other "=") (/usr/lib/perl5/vendor_perl)} {(-Dsiteprefix) (Lit_Other "=") (/usr/local)} {(-Dsitelib) (Lit_Other "=") (/usr/local/share/perl5/site_perl)} {(-Dsitearch) (Lit_Other "=") (/usr/local/lib/perl5/site_perl)} {(-Dlocincpth) (Lit_Other "=") (SQ <" ">)} {(-Doptimize) (Lit_Other "=") (DQ ($ VSub_Name "$CFLAGS"))} {(-Duselargefiles)} {(-Dusethreads)} {(-Duseshrplib)} {(-Dd_semctl_semun)} {(-Dman1dir) (Lit_Other "=") (/usr/share/man/man1)} {(-Dman3dir) (Lit_Other "=") (/usr/share/man/man3)} {(-Dinstallman1dir) (Lit_Other "=") (/usr/share/man/man1)} {(-Dinstallman3dir) (Lit_Other "=") (/usr/share/man/man3)} {(-Dman1ext) (Lit_Other "=") (SQ <1>)} {(-Dman3ext) (Lit_Other "=") (SQ <3pm>)} {(-Dcf_by) (Lit_Other "=") (SQ )} {(-Ud_csh)} {(-Dusenm)} ) (ControlFlow token: arg_word:{(1)}) ] op_id: Op_DPipe ) (AndOr children: [ (C {(make)} {(libperl.so)}) (AndOr children: [(C {(make)}) (ControlFlow token: arg_word:{(1)})] op_id: Op_DPipe ) ] op_id: Op_DAmp ) ] spids: [208] ) spids: [204 207] ) (FuncDef name: package body: (BraceGroup children: [ (C {(cd)} {(DQ ($ VSub_Name "$builddir"))}) (C {(make)} {(Lit_VarLike "DESTDIR=") (DQ ($ VSub_Name "$pkgdir"))} {(install)}) (If arms: [ (if_arm cond: [ (Sentence child: (C {(Lit_Other "[")} {(-n)} { (DQ (CommandSubPart command_list: (CommandList children: [ (C {(find)} {($ VSub_Name "$pkgdir") (/usr/local)} {(-type)} {(f)}) ] ) left_token: spids: [473 482] ) ) } {(Lit_Other "]")} ) terminator: ) ] action: [ (C {(error)} {(DQ ("files found under /usr/local"))}) (ControlFlow token: arg_word:{(1)}) ] spids: [-1 488] ) ] spids: [-1 503] ) (C {(find)} {(DQ ($ VSub_Name "$pkgdir"))} {(-name)} {(SQ <".*">)} {(-delete)}) ] spids: [446] ) spids: [442 445] ) (FuncDef name: miniperl body: (BraceGroup children: [ (AndOr children: [ (C {(install)} {(-Dm755)} {(DQ ($ VSub_Name "$builddir")) (/) ($ VSub_Name "$subpkgname")} {(DQ ($ VSub_Name "$subpkgdir")) (/usr/bin/) ($ VSub_Name "$subpkgname")} ) (ControlFlow token: arg_word:{(1)}) ] op_id: Op_DPipe ) ] spids: [527] ) spids: [523 526] ) (FuncDef name: doc body: (BraceGroup children: [ (C {(default_doc)}) (Sentence child: (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:file) op:Equal spids:[569])] spids: [567] ) terminator: ) (ForEach iter_name: file iter_words: [ { (CommandSubPart command_list: (CommandList children: [ (C {(find)} {(DQ ($ VSub_Name "$pkgdir"))} {(-name)} {(DQ ("*.pod"))}) ] ) left_token: spids: [578 590] ) } ] do_arg_iter: False body: (DoGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:file) op: Equal rhs: { (BracedVarSub token: suffix_op: (StringUnary op_id: VOp1_Pound arg_word: {($ VSub_Name "$pkgdir") (Lit_Slash /)} ) spids: [597 602] ) } spids: [596] ) ] spids: [596] ) (AndOr children: [ (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$subpkgdir")) (/) (BracedVarSub token: suffix_op: (StringUnary op_id: VOp1_Percent arg_word: {(Lit_Slash /) ("*")} ) spids: [613 618] ) } ) (ControlFlow token: arg_word: {(1)} ) ] op_id: Op_DPipe ) (AndOr children: [ (C {(mv)} {(DQ ($ VSub_Name "$pkgdir")) (/) ($ VSub_Name "$file")} {(DQ ($ VSub_Name "$subpkgdir")) (/) ($ VSub_Name "$file")} ) (ControlFlow token: arg_word: {(1)} ) ] op_id: Op_DPipe ) ] spids: [593 648] ) spids: [577 591] ) ] spids: [561] ) spids: [557 560] ) (FuncDef name: dev body: (BraceGroup children: [ (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$subpkgdir")) (/usr/bin)} {(DQ ($ VSub_Name "$subpkgdir")) (/) ($ VSub_Name "$_archlib")} {(DQ ($ VSub_Name "$subpkgdir")) (/) ($ VSub_Name "$_privlib")} ) (C {(mv)} {(DQ ($ VSub_Name "$pkgdir")) (/) ($ VSub_Name "$_archlib") (/Devel)} {(DQ ($ VSub_Name "$subpkgdir")) (/) ($ VSub_Name "$_archlib") (/)} ) (C {(mv)} {(DQ ($ VSub_Name "$pkgdir")) (/) ($ VSub_Name "$_privlib") (/Encode)} {(DQ ($ VSub_Name "$subpkgdir")) (/) ($ VSub_Name "$_privlib") (/)} ) (C {(mv)} {(DQ ($ VSub_Name "$pkgdir")) (/usr/bin/h2xs)} {(DQ ($ VSub_Name "$pkgdir")) (/usr/bin/perlivp)} {(DQ ($ VSub_Name "$pkgdir")) (/usr/bin/enc2xs)} {(DQ ($ VSub_Name "$pkgdir")) (/usr/bin/xsubpp)} {(DQ ($ VSub_Name "$subpkgdir")) (/usr/bin/)} ) (C {(default_dev)}) ] spids: [657] ) spids: [653 656] ) (FuncDef name: utils body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pkgdesc) op: Equal rhs: {(DQ ($ VSub_Name "$pkgdesc") (" (misc utilities)"))} spids: [766] ) ] spids: [766] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:depends) op: Equal rhs: {(DQ ($ VSub_Name "$pkgname"))} spids: [773] ) ] spids: [773] ) (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$subpkgdir")) (/usr/bin)}) (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:file) op:Equal spids:[791])] spids: [789] ) (ForEach iter_name: file iter_words: [ {(corelist)} {(cpan)} {(encguess)} {(libnetcfg)} {(h2ph)} {(instmodsh)} {(json_pp)} {(perlbug)} {(perlthanks)} {(piconv)} {(pl2pm)} {(prove)} {(ptar)} {(ptardiff)} {(ptargrep)} {(shasum)} {(splain)} {(zipdetails)} ] do_arg_iter: False body: (DoGroup children: [ (AndOr children: [ (C {(mv)} {(DQ ($ VSub_Name "$pkgdir")) (/usr/bin/) ($ VSub_Name "$file")} {(DQ ($ VSub_Name "$subpkgdir")) (/usr/bin/)} ) (ControlFlow token: arg_word: {(1)} ) ] op_id: Op_DPipe ) ] spids: [873 896] ) spids: [799 -1] ) ] spids: [763] ) spids: [759 762] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:sha512sums) op: Equal rhs: { (DQ ( "098a08f1dd0dbc065cc2d93752a5b320e63d665a80392f7c4d83e807f05762d34c70c99d80bc8085512f5653f9a4b54edb5a8973aba240d41c211ebbd630209f perl-5.26.1.tar.gz" ) ) } spids: [901] ) ] spids: [901] ) ] )