# Contributor: Matt Smith # Maintainer: Matt Smith global pkgname := 'py-docutils' global _pkgname := 'docutils' global pkgver := '0.13.1' global pkgrel := '0' global pkgdesc := '"Documentation Utilities for Python'" global url := '"http://docutils.sourceforge.net/'" global arch := '"noarch'" global license := '"Public Domain'" global depends := ""py3-$(pkgname#py-)"" global makedepends := '"python2-dev python3-dev py-setuptools'" global subpackages := ""py2-$(pkgname#py-):_py2 py3-$(pkgname#py-):_py3 $pkgname-doc::noarch"" global source := ""http://downloads.sourceforge.net/$_pkgname/$_pkgname-$pkgver.tar.gz"" global builddir := ""$srcdir/$_pkgname-$pkgver"" proc prepare { default_prepare || return 1 # Soure files are modified during build with 2to3 tool, so we must build # it separately for each Python version. var python = ''; for python in [python2 python3] { cp -r $builddir "$builddir-$python" || return 1 } } proc build { var python = ''; for python in [python2 python3] { cd "$builddir"-$python $python setup.py build || return 1 } } proc package { mkdir -p $pkgdir # Create unsuffixed symlinks for executables from py3 subpackage. cd "$builddir"/tools mkdir -p "$pkgdir"/usr/bin var name = ''; for name in [rst*.py] { ln -s $(name%.py)-3 "$pkgdir"/usr/bin/$(name%.py) } } proc _py2 { global replaces := $pkgname global depends := '"py2-pillow py2-roman'" _py python2 } proc _py3 { global depends := '"py3-pillow py3-roman'" _py python3 } proc _py { var python = $1 var pyver = $(1:6:1) global pkgdesc := ""$pkgdesc (for $python)"" global depends := ""$depends $python"" global install_if := ""$pkgname=$pkgver-r$pkgrel $python"" cd "$builddir"-$python $python setup.py install --prefix=/usr --root="$subpkgdir" # Remove .py extension and add version suffix to executable files. var path = ''; for path in ["$subpkgdir"/usr/bin/*.py] { mv $path $(path/.py/-$pyver) || return 1 } } proc doc { global pkgdesc := ""$pkgdesc (documentation)"" var docdir = ""$subpkgdir/usr/share/doc/$pkgname"" var licdir = ""$subpkgdir/usr/share/licenses/$pkgname"" cd $builddir mkdir -p $docdir cp -R docs/* "$docdir"/ || return 1 cp *.txt "$docdir"/ || return 1 mkdir -p $licdir rm -f licenses/docutils.conf cp licenses/* "$licdir"/ } global sha512sums := '"6a68b27dac3705ff532cb79d6b6808071206544a1c653e6a24d46971a5e10edffc7d275834eec4e80d948eb066bb099cae0195c0ab674e68747820e54f0ea64e docutils-0.13.1.tar.gz'" (CommandList children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:pkgname) op:Equal rhs:{(py-docutils)} spids:[6])] spids: [6] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:_pkgname) op:Equal rhs:{(docutils)} spids:[9])] spids: [9] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:pkgver) op:Equal rhs:{(0.13.1)} spids:[12])] spids: [12] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:pkgrel) op:Equal rhs:{(0)} spids:[15])] spids: [15] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pkgdesc) op: Equal rhs: {(DQ ("Documentation Utilities for Python"))} spids: [18] ) ] spids: [18] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:url) op: Equal rhs: {(DQ ("http://docutils.sourceforge.net/"))} spids: [23] ) ] spids: [23] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:arch) op:Equal rhs:{(DQ (noarch))} spids:[28])] spids: [28] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:license) op: Equal rhs: {(DQ ("Public Domain"))} spids: [33] ) ] spids: [33] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:depends) op: Equal rhs: { (DQ (py3-) (BracedVarSub token: suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(py-)}) spids: [41 45] ) ) } spids: [38] ) ] spids: [38] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:makedepends) op: Equal rhs: {(DQ ("python2-dev python3-dev py-setuptools"))} spids: [48] ) ] spids: [48] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:subpackages) op: Equal rhs: { (DQ (py2-) (BracedVarSub token: suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(py-)}) spids: [56 60] ) (":_py2 py3-") (BracedVarSub token: suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{(py-)}) spids: [62 66] ) (":_py3 ") ($ VSub_Name "$pkgname") ("-doc::noarch") ) } spids: [53] ) ] spids: [53] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:source) op: Equal rhs: { (DQ ("http://downloads.sourceforge.net/") ($ VSub_Name "$_pkgname") (/) ($ VSub_Name "$_pkgname") (-) ($ VSub_Name "$pkgver") (.tar.gz) ) } spids: [72] ) ] spids: [72] ) (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: [83] ) ] spids: [83] ) (FuncDef name: prepare body: (BraceGroup children: [ (AndOr children: [ (C {(default_prepare)}) (ControlFlow token: arg_word:{(1)}) ] op_id: Op_DPipe ) (Sentence child: (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:python) op:Equal spids:[120])] spids: [118] ) terminator: ) (ForEach iter_name: python iter_words: [{(python2)} {(python3)}] do_arg_iter: False body: (DoGroup children: [ (AndOr children: [ (C {(cp)} {(-r)} {(DQ ($ VSub_Name "$builddir"))} {(DQ ($ VSub_Name "$builddir") (-) ($ VSub_Name "$python"))} ) (ControlFlow token: arg_word: {(1)} ) ] op_id: Op_DPipe ) ] spids: [134 158] ) spids: [128 132] ) ] spids: [97] ) spids: [93 96] ) (FuncDef name: build body: (BraceGroup children: [ (Sentence child: (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:python) op:Equal spids:[172])] spids: [170] ) terminator: ) (ForEach iter_name: python iter_words: [{(python2)} {(python3)}] do_arg_iter: False body: (DoGroup children: [ (C {(cd)} {(DQ ($ VSub_Name "$builddir")) (-) ($ VSub_Name "$python")}) (AndOr children: [ (C {($ VSub_Name "$python")} {(setup.py)} {(build)}) (ControlFlow token: arg_word: {(1)} ) ] op_id: Op_DPipe ) ] spids: [186 211] ) spids: [180 184] ) ] spids: [167] ) spids: [163 166] ) (FuncDef name: package body: (BraceGroup children: [ (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$pkgdir"))}) (C {(cd)} {(DQ ($ VSub_Name "$builddir")) (/tools)}) (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$pkgdir")) (/usr/bin)}) (Sentence child: (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:name) op:Equal spids:[257])] spids: [255] ) terminator: ) (ForEach iter_name: name iter_words: [{(rst) (Lit_Other "*") (.py)}] do_arg_iter: False body: (DoGroup children: [ (C {(ln)} {(-s)} { (BracedVarSub token: suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(.py)}) spids: [278 282] ) (-3) } {(DQ ($ VSub_Name "$pkgdir")) (/usr/bin/) (BracedVarSub token: suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{(.py)}) spids: [289 293] ) } ) ] spids: [271 296] ) spids: [265 269] ) ] spids: [220] ) spids: [216 219] ) (FuncDef name: _py2 body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:replaces) op: Equal rhs: {(DQ ($ VSub_Name "$pkgname"))} spids: [308] ) ] spids: [308] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:depends) op: Equal rhs: {(DQ ("py2-pillow py2-roman"))} spids: [314] ) ] spids: [314] ) (C {(_py)} {(python2)}) ] spids: [305] ) spids: [301 304] ) (FuncDef name: _py3 body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:depends) op: Equal rhs: {(DQ ("py3-pillow py3-roman"))} spids: [334] ) ] spids: [334] ) (C {(_py)} {(python3)}) ] spids: [331] ) spids: [327 330] ) (FuncDef name: _py body: (BraceGroup children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:python) op: Equal rhs: {(DQ ($ VSub_Number "$1"))} spids: [356] ) ] spids: [354] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:pyver) op: Equal rhs: { (DQ (BracedVarSub token: suffix_op: (Slice begin: (ArithWord w:{(Lit_Digits 6)}) length: (ArithWord w:{(Lit_Digits 1)}) ) spids: [366 372] ) ) } spids: [364] ) ] spids: [362] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pkgdesc) op: Equal rhs: {(DQ ($ VSub_Name "$pkgdesc") (" (for ") ($ VSub_Name "$python") (")"))} spids: [376] ) ] spids: [376] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:depends) op: Equal rhs: {(DQ ($ VSub_Name "$depends") (" ") ($ VSub_Name "$python"))} spids: [385] ) ] spids: [385] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:install_if) op: Equal rhs: { (DQ ($ VSub_Name "$pkgname") ("=") ($ VSub_Name "$pkgver") (-r) ($ VSub_Name "$pkgrel") (" ") ($ VSub_Name "$python") ) } spids: [393] ) ] spids: [393] ) (C {(cd)} {(DQ ($ VSub_Name "$builddir")) (-) ($ VSub_Name "$python")}) (C {($ VSub_Name "$python")} {(setup.py)} {(install)} {(--prefix) (Lit_Other "=") (/usr)} {(--root) (Lit_Other "=") (DQ ($ VSub_Name "$subpkgdir"))} ) (Sentence child: (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:path) op:Equal spids:[439])] spids: [437] ) terminator: ) (ForEach iter_name: path iter_words: [{(DQ ($ VSub_Name "$subpkgdir")) (/usr/bin/) (Lit_Other "*") (.py)}] do_arg_iter: False body: (DoGroup children: [ (AndOr children: [ (C {(mv)} {(DQ ($ VSub_Name "$path"))} { (DQ (BracedVarSub token: suffix_op: (PatSub pat: {(.py)} replace: {(-) ($ VSub_Name "$pyver")} do_all: False do_prefix: False do_suffix: False ) spids: [466 473] ) ) } ) (ControlFlow token: arg_word: {(1)} ) ] op_id: Op_DPipe ) ] spids: [456 483] ) spids: [447 454] ) ] spids: [351] ) spids: [347 350] ) (FuncDef name: doc body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pkgdesc) op: Equal rhs: {(DQ ($ VSub_Name "$pkgdesc") (" (documentation)"))} spids: [495] ) ] spids: [495] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:docdir) op: Equal rhs: {(DQ ($ VSub_Name "$subpkgdir") (/usr/share/doc/) ($ VSub_Name "$pkgname"))} spids: [504] ) ] spids: [502] ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:licdir) op: Equal rhs: {(DQ ($ VSub_Name "$subpkgdir") (/usr/share/licenses/) ($ VSub_Name "$pkgname"))} spids: [514] ) ] spids: [512] ) (C {(cd)} {(DQ ($ VSub_Name "$builddir"))}) (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$docdir"))}) (AndOr children: [ (C {(cp)} {(-R)} {(docs/) (Lit_Other "*")} {(DQ ($ VSub_Name "$docdir")) (/)}) (ControlFlow token: arg_word:{(1)}) ] op_id: Op_DPipe ) (AndOr children: [ (C {(cp)} {(Lit_Other "*") (.txt)} {(DQ ($ VSub_Name "$docdir")) (/)}) (ControlFlow token: arg_word:{(1)}) ] op_id: Op_DPipe ) (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$licdir"))}) (C {(rm)} {(-f)} {(licenses/docutils.conf)}) (C {(cp)} {(licenses/) (Lit_Other "*")} {(DQ ($ VSub_Name "$licdir")) (/)}) ] spids: [492] ) spids: [488 491] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:sha512sums) op: Equal rhs: { (DQ ( "6a68b27dac3705ff532cb79d6b6808071206544a1c653e6a24d46971a5e10edffc7d275834eec4e80d948eb066bb099cae0195c0ab674e68747820e54f0ea64e docutils-0.13.1.tar.gz" ) ) } spids: [606] ) ] spids: [606] ) ] )