# Maintainer: Natanael Copa global pkgname := 'python2' # the python2-tkinter's pkgver needs to be synchronized with this. global pkgver := '2.7.14' global _verbase := $(pkgver%.*) global pkgrel := '0' global pkgdesc := '"A high-level scripting language'" global url := '"http://www.python.org'" global arch := '"all'" global license := '"custom'" global provides := ""python=$pkgver-r$pkgrel"" global replaces := '"python'" global subpackages := ""$pkgname-dbg $pkgname-dev $pkgname-doc $pkgname-tests py-gdbm:gdbm"" global depends := ''"" global makedepends := '"expat-dev libressl-dev zlib-dev ncurses-dev bzip2-dev gdbm-dev sqlite-dev libffi-dev readline-dev linux-headers paxmark'" global source := ""http://www.python.org/ftp/python/$pkgver/Python-$pkgver.tar.xz musl-find_library.patch unchecked-ioctl.patch"" global builddir := ""$srcdir/Python-$pkgver"" proc prepare { default_prepare # Make sure we use system libs rm -r Modules/expat Modules/_ctypes/libffi* Modules/zlib # make sure our /dev/shm is world writeable if ! touch /dev/shm/$pkgname-$pkgver { error "/dev/shm is not world writeable. this will cause a broken python2 build" return 1 } rm /dev/shm/$pkgname-$pkgver } proc build { cd $builddir export OPT="$CFLAGS" ./configure \ --build=$CBUILD \ --host=$CHOST \ --prefix=/usr \ --enable-shared \ --with-threads \ --enable-ipv6 \ --with-system-ffi \ --with-system-expat \ --with-system-zlib \ --enable-unicode=ucs4 make } proc package { cd $builddir make -j1 DESTDIR="$pkgdir" install install -Dm644 LICENSE "$pkgdir"/usr/share/licenses/$pkgname/LICENSE rm "$pkgdir/usr/bin/2to3" # we need to enable emutramp - needed for virt-manager # disable mprotect - needed for cffi paxmark -zm "$pkgdir"/usr/bin/python$_verbase } proc _mv_files { var i = '' for i in [@Argv] { mkdir -p "$subpkgdir"/$(i%/*) mv "$pkgdir"/$i "$subpkgdir"/$i } } proc dev { global provides := ""python-dev=$pkgver-r$pkgrel"" global replaces := '"python-dev'" # pyconfig.h is needed runtime so we move it back default_dev mkdir -p "$pkgdir"/usr/include/python$_verbase mv "$subpkgdir"/usr/include/python$_verbase/pyconfig.h \ "$pkgdir"/usr/include/python$_verbase/ } proc tests { global pkgdesc := '"The test modules from the main python package'" global provides := ""python-tests=$pkgver-r$pkgrel"" global replaces := '"python-tests'" cd $pkgdir _mv_files usr/lib/python*/*/test \ usr/lib/python*/test } proc gdbm { global pkgdesc := '"GNU dbm database support for Python'" global provides := ""python-gdbm=$pkgver-r$pkgrel"" global replaces := '"python-gdbm py-gdbm'" cd $pkgdir _mv_files $[find usr/lib -name '*gdbm*] } global sha512sums := '"78310b0be6388ffa15f29a80afb9ab3c03a572cb094e9da00cfe391afadb51696e41f592eb658d6a31a2f422fdac8a55214a382cbb8cfb43d4a127d5b35ea7f9 Python-2.7.14.tar.xz ab8eaa2858d5109049b1f9f553198d40e0ef8d78211ad6455f7b491af525bffb16738fed60fc84e960c4889568d25753b9e4a1494834fea48291b33f07000ec2 musl-find_library.patch 5a8e013a4132d71c4360771f130d27b37275ae59330cf9a75378dc8a11236017f540eb224f2a148984e82ca3fb6b29129375b1080ba05b81044faa717520ab82 unchecked-ioctl.patch'" (CommandList children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:pkgname) op:Equal rhs:{(python2)} spids:[4])] spids: [4] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:pkgver) op:Equal rhs:{(2.7.14)} spids:[10])] spids: [10] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:_verbase) op: Equal rhs: { (BracedVarSub token: suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(".*")}) spids: [14 18] ) } spids: [13] ) ] spids: [13] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:pkgrel) op:Equal rhs:{(0)} spids:[20])] spids: [20] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pkgdesc) op: Equal rhs: {(DQ ("A high-level scripting language"))} spids: [23] ) ] spids: [23] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:url) op: Equal rhs: {(DQ ("http://www.python.org"))} spids: [28] ) ] spids: [28] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:arch) op:Equal rhs:{(DQ (all))} spids:[33])] spids: [33] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:license) op:Equal rhs:{(DQ (custom))} spids:[38])] spids: [38] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:provides) op: Equal rhs: {(DQ ("python=") ($ VSub_Name "$pkgver") (-r) ($ VSub_Name "$pkgrel"))} spids: [43] ) ] spids: [43] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:replaces) op:Equal rhs:{(DQ (python))} spids:[51])] spids: [51] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:subpackages) op: Equal rhs: { (DQ ($ VSub_Name "$pkgname") ("-dbg ") ($ VSub_Name "$pkgname") ("-dev ") ($ VSub_Name "$pkgname") ("-doc ") ($ VSub_Name "$pkgname") ("-tests py-gdbm:gdbm") ) } spids: [56] ) ] spids: [56] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:depends) op:Equal rhs:{(DQ )} spids:[68])] spids: [68] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:makedepends) op: Equal rhs: { (DQ ("expat-dev libressl-dev zlib-dev ncurses-dev bzip2-dev\n") ("\tgdbm-dev sqlite-dev libffi-dev readline-dev linux-headers paxmark") ) } spids: [72] ) ] spids: [72] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:source) op: Equal rhs: { (DQ ("http://www.python.org/ftp/python/") ($ VSub_Name "$pkgver") (/Python-) ($ VSub_Name "$pkgver") (".tar.xz\n") ("\tmusl-find_library.patch\n") ("\tunchecked-ioctl.patch") ) } spids: [78] ) ] spids: [78] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:builddir) op: Equal rhs: {(DQ ($ VSub_Name "$srcdir") (/Python-) ($ VSub_Name "$pkgver"))} spids: [89] ) ] spids: [89] ) (FuncDef name: prepare body: (BraceGroup children: [ (C {(default_prepare)}) (C {(rm)} {(-r)} {(Modules/expat)} {(Modules/_ctypes/libffi) (Lit_Other "*")} {(Modules/zlib)}) (If arms: [ (if_arm cond: [ (Sentence child: (Pipeline children: [ (C {(touch)} {(/dev/shm/) ($ VSub_Name "$pkgname") (-) ($ VSub_Name "$pkgver")} ) ] negated: True ) terminator: ) ] action: [ (C {(error)} { (DQ ( "/dev/shm is not world writeable. this will cause a broken python2 build" ) ) } ) (ControlFlow token: arg_word:{(1)}) ] spids: [-1 141] ) ] spids: [-1 156] ) (C {(rm)} {(/dev/shm/) ($ VSub_Name "$pkgname") (-) ($ VSub_Name "$pkgver")}) ] spids: [101] ) spids: [97 100] ) (FuncDef name: build body: (BraceGroup children: [ (C {(cd)} {(DQ ($ VSub_Name "$builddir"))}) (C {(export)} {(Lit_VarLike "OPT=") (DQ ($ VSub_Name "$CFLAGS"))}) (C {(./configure)} {(--build) (Lit_Other "=") ($ VSub_Name "$CBUILD")} {(--host) (Lit_Other "=") ($ VSub_Name "$CHOST")} {(--prefix) (Lit_Other "=") (/usr)} {(--enable-shared)} {(--with-threads)} {(--enable-ipv6)} {(--with-system-ffi)} {(--with-system-expat)} {(--with-system-zlib)} {(--enable-unicode) (Lit_Other "=") (ucs4)} ) (C {(make)}) ] spids: [173] ) spids: [169 172] ) (FuncDef name: package body: (BraceGroup children: [ (C {(cd)} {(DQ ($ VSub_Name "$builddir"))}) (C {(make)} {(-j1)} {(Lit_VarLike "DESTDIR=") (DQ ($ VSub_Name "$pkgdir"))} {(install)}) (C {(install)} {(-Dm644)} {(LICENSE)} {(DQ ($ VSub_Name "$pkgdir")) (/usr/share/licenses/) ($ VSub_Name "$pkgname") (/LICENSE)} ) (C {(rm)} {(DQ ($ VSub_Name "$pkgdir") (/usr/bin/2to3))}) (C {(paxmark)} {(-zm)} {(DQ ($ VSub_Name "$pkgdir")) (/usr/bin/python) ($ VSub_Name "$_verbase")} ) ] spids: [251] ) spids: [247 250] ) (FuncDef name: _mv_files body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:i) op:Equal spids:[325])] spids: [323] ) (ForEach iter_name: i iter_words: [{(DQ ($ VSub_At "$@"))}] do_arg_iter: False body: (DoGroup children: [ (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$subpkgdir")) (/) (BracedVarSub token: suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(Lit_Slash /) ("*")}) spids: [350 355] ) } ) (C {(mv)} {(DQ ($ VSub_Name "$pkgdir")) (/) ($ VSub_Name "$i")} {(DQ ($ VSub_Name "$subpkgdir")) (/) ($ VSub_Name "$i")} ) ] spids: [339 373] ) spids: [333 337] ) ] spids: [320] ) spids: [316 319] ) (FuncDef name: dev body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:provides) op: Equal rhs: {(DQ ("python-dev=") ($ VSub_Name "$pkgver") (-r) ($ VSub_Name "$pkgrel"))} spids: [385] ) ] spids: [385] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:replaces) op: Equal rhs: {(DQ (python-dev))} spids: [394] ) ] spids: [394] ) (C {(default_dev)}) (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$pkgdir")) (/usr/include/python) ($ VSub_Name "$_verbase")} ) (C {(mv)} {(DQ ($ VSub_Name "$subpkgdir")) (/usr/include/python) ($ VSub_Name "$_verbase") (/pyconfig.h) } {(DQ ($ VSub_Name "$pkgdir")) (/usr/include/python) ($ VSub_Name "$_verbase") (/)} ) ] spids: [382] ) spids: [378 381] ) (FuncDef name: tests body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pkgdesc) op: Equal rhs: {(DQ ("The test modules from the main python package"))} spids: [447] ) ] spids: [447] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:provides) op: Equal rhs: {(DQ ("python-tests=") ($ VSub_Name "$pkgver") (-r) ($ VSub_Name "$pkgrel"))} spids: [453] ) ] spids: [453] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:replaces) op: Equal rhs: {(DQ (python-tests))} spids: [462] ) ] spids: [462] ) (C {(cd)} {(DQ ($ VSub_Name "$pkgdir"))}) (C {(_mv_files)} {(usr/lib/python) (Lit_Other "*") (/) (Lit_Other "*") (/test)} {(usr/lib/python) (Lit_Other "*") (/test)} ) ] spids: [444] ) spids: [440 443] ) (FuncDef name: gdbm body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pkgdesc) op: Equal rhs: {(DQ ("GNU dbm database support for Python"))} spids: [500] ) ] spids: [500] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:provides) op: Equal rhs: {(DQ ("python-gdbm=") ($ VSub_Name "$pkgver") (-r) ($ VSub_Name "$pkgrel"))} spids: [506] ) ] spids: [506] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:replaces) op: Equal rhs: {(DQ ("python-gdbm py-gdbm"))} spids: [515] ) ] spids: [515] ) (C {(cd)} {(DQ ($ VSub_Name "$pkgdir"))}) (C {(_mv_files)} { (CommandSubPart command_list: (CommandList children: [(C {(find)} {(usr/lib)} {(-name)} {(SQ <"*gdbm*">)})] ) left_token: spids: [531 541] ) } ) ] spids: [497] ) spids: [493 496] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:sha512sums) op: Equal rhs: { (DQ ( "78310b0be6388ffa15f29a80afb9ab3c03a572cb094e9da00cfe391afadb51696e41f592eb658d6a31a2f422fdac8a55214a382cbb8cfb43d4a127d5b35ea7f9 Python-2.7.14.tar.xz\n" ) ( "ab8eaa2858d5109049b1f9f553198d40e0ef8d78211ad6455f7b491af525bffb16738fed60fc84e960c4889568d25753b9e4a1494834fea48291b33f07000ec2 musl-find_library.patch\n" ) ( "5a8e013a4132d71c4360771f130d27b37275ae59330cf9a75378dc8a11236017f540eb224f2a148984e82ca3fb6b29129375b1080ba05b81044faa717520ab82 unchecked-ioctl.patch" ) ) } spids: [546] ) ] spids: [546] ) ] )