# Maintainer: Natanael Copa global pkgname := 'ncurses' global pkgver := '6.0_p20170930' global _ver := "$(pkgver%_p*)-$(pkgver#*_p)" global pkgrel := '0' global pkgdesc := '"Console display library'" global url := '"http://www.gnu.org/software/ncurses/'" global arch := '"all'" global license := 'MIT' global depends := '' global makedepends_build := '"ncurses'" global source := ""http://invisible-mirror.net/archives/ncurses/current/ncurses-$_ver.tgz"" global subpackages := ""$pkgname-static $pkgname-dev $pkgname-doc $pkgname-terminfo-base:base $pkgname-terminfo $pkgname-libs"" global builddir := ""$srcdir"/ncurses-$_ver" # secfixes: # 6.0_p20170701-r0: # - CVE-2017-10684 proc build { cd $builddir ./configure \ --build=$CBUILD \ --host=$CHOST \ --mandir=/usr/share/man \ --without-ada \ --disable-termcap \ --disable-rpath-hack \ --with-pkg-config-libdir=/usr/lib/pkgconfig \ --without-cxx-binding \ --with-terminfo-dirs="/etc/terminfo:/usr/share/terminfo" \ --enable-pc-files \ --with-shared \ --enable-widec \ || return 1 make || return 1 } proc package { cd $builddir make -j1 DESTDIR="$pkgdir" install || return 1 # Install basic terms in /etc/terminfo for i in [ansi console dumb linux rxvt screen sun vt52 vt100 vt102 \ vt200 vt220 xterm xterm-color xterm-xfree86] { var termfile = $[find "$pkgdir"/usr/share/terminfo/ -name $i !2 >/dev/null] || true var basedir = $[basename $[dirname $termfile]] test -z $termfile && continue install -d "$pkgdir"/etc/terminfo/$basedir mv $(termfile) "$pkgdir"/etc/terminfo/$basedir/ ln -s ../../../../etc/terminfo/$basedir/$i \ "$pkgdir"/usr/share/terminfo/$basedir/$i } } proc dev { default_dev # force link against *w.so for lib in [ncurses ncurses++ form panel menu] { echo "INPUT(-l$(lib)w)" > "$subpkgdir"/usr/lib/lib$(lib).so ln -s $(lib)w.pc "$subpkgdir"/usr/lib/pkgconfig/$(lib).pc } # link curses -> ncurses echo "INPUT(-lncursesw)" > "$subpkgdir"/usr/lib/libcursesw.so ln -s libncurses.so "$subpkgdir"/usr/lib/libcurses.so } proc terminfo { global depends := ""$pkgname-terminfo-base"" rm -rf $subpkgdir mkdir -p $subpkgdir/usr/share mv $pkgdir/usr/share/terminfo $subpkgdir/usr/share } proc libs { global pkgdesc := '"Ncurses libraries'" global depends := ""$pkgname-terminfo-base"" global provides := ""ncurses-widec-libs=$pkgver-r$pkgrel"" mkdir -p "$subpkgdir"/usr/ mv "$pkgdir"/usr/lib "$subpkgdir"/usr/ } proc base { global pkgdesc := '"Descriptions of common terminals'" mkdir -p "$subpkgdir"/etc mv "$pkgdir"/etc/terminfo "$subpkgdir"/etc/ } proc static { global pkgdesc := '"Static libraries for the ncurses library'" mkdir -p "$subpkgdir"/usr/lib mv "$pkgdir"/usr/lib/*.a "$subpkgdir"/usr/lib/ } global sha512sums := '"7d5a8785b135e356d449776d96348bb9f4557e65d30bca81607a86492b591f13c4951969215ebdd0ba95f2e7816d653a7a9d5173716f481929e31b0dee1276a8 ncurses-6.0-20170930.tgz'" (CommandList children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:pkgname) op:Equal rhs:{(ncurses)} spids:[3])] spids: [3] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:pkgver) op:Equal rhs:{(6.0_p20170930)} spids:[6])] spids: [6] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:_ver) op: Equal rhs: { (BracedVarSub token: suffix_op: (StringUnary op_id:VOp1_Percent arg_word:{("_p*")}) spids: [10 14] ) (-) (BracedVarSub token: suffix_op: (StringUnary op_id:VOp1_Pound arg_word:{("*_p")}) spids: [16 20] ) } spids: [9] ) ] spids: [9] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:pkgrel) op:Equal rhs:{(0)} spids:[22])] spids: [22] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pkgdesc) op: Equal rhs: {(DQ ("Console display library"))} spids: [25] ) ] spids: [25] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:url) op: Equal rhs: {(DQ ("http://www.gnu.org/software/ncurses/"))} spids: [30] ) ] spids: [30] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:arch) op:Equal rhs:{(DQ (all))} spids:[35])] spids: [35] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:license) op:Equal rhs:{(MIT)} spids:[40])] spids: [40] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:depends) op:Equal rhs:{(SQ )} spids:[43])] spids: [43] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:makedepends_build) op: Equal rhs: {(DQ (ncurses))} spids: [45] ) ] spids: [45] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:source) op: Equal rhs: { (DQ ("http://invisible-mirror.net/archives/ncurses/current/ncurses-") ($ VSub_Name "$_ver") (.tgz) ) } spids: [50] ) ] spids: [50] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:subpackages) op: Equal rhs: { (DQ ($ VSub_Name "$pkgname") ("-static ") ($ VSub_Name "$pkgname") ("-dev ") ($ VSub_Name "$pkgname") ("-doc\n") ("\t") ($ VSub_Name "$pkgname") ("-terminfo-base:base ") ($ VSub_Name "$pkgname") ("-terminfo ") ($ VSub_Name "$pkgname") (-libs) ) } spids: [57] ) ] spids: [57] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:builddir) op: Equal rhs: {(DQ ($ VSub_Name "$srcdir")) (/ncurses-) ($ VSub_Name "$_ver")} spids: [75] ) ] spids: [75] ) (FuncDef name: build body: (BraceGroup children: [ (C {(cd)} {(DQ ($ VSub_Name "$builddir"))}) (AndOr children: [ (C {(./configure)} {(--build) (Lit_Other "=") ($ VSub_Name "$CBUILD")} {(--host) (Lit_Other "=") ($ VSub_Name "$CHOST")} {(--mandir) (Lit_Other "=") (/usr/share/man)} {(--without-ada)} {(--disable-termcap)} {(--disable-rpath-hack)} {(--with-pkg-config-libdir) (Lit_Other "=") (/usr/lib/pkgconfig)} {(--without-cxx-binding)} {(--with-terminfo-dirs) (Lit_Other "=") (DQ ("/etc/terminfo:/usr/share/terminfo"))} {(--enable-pc-files)} {(--with-shared)} {(--enable-widec)} ) (ControlFlow token: arg_word:{(1)}) ] op_id: Op_DPipe ) (AndOr children: [(C {(make)}) (ControlFlow token: arg_word:{(1)})] op_id: Op_DPipe ) ] spids: [97] ) spids: [93 96] ) (FuncDef name: package body: (BraceGroup children: [ (C {(cd)} {(DQ ($ VSub_Name "$builddir"))}) (AndOr children: [ (C {(make)} {(-j1)} {(Lit_VarLike "DESTDIR=") (DQ ($ VSub_Name "$pkgdir"))} {(install)}) (ControlFlow token: arg_word:{(1)}) ] op_id: Op_DPipe ) (ForEach iter_name: i iter_words: [ {(ansi)} {(console)} {(dumb)} {(linux)} {(rxvt)} {(screen)} {(sun)} {(vt52)} {(vt100)} {(vt102)} {(vt200)} {(vt220)} {(xterm)} {(xterm-color)} {(xterm-xfree86)} ] do_arg_iter: False body: (DoGroup children: [ (AndOr children: [ (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:termfile) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (SimpleCommand words: [ {(find)} {(DQ ($ VSub_Name "$pkgdir")) (/usr/share/terminfo/)} {(-name)} {(DQ ($ VSub_Name "$i"))} ] redirects: [ (Redir op_id: Redir_Great fd: 2 arg_word: {(/dev/null)} spids: [286] ) ] ) ] ) left_token: spids: [272 288] ) } spids: [271] ) ] spids: [269] ) (C {(true)}) ] op_id: Op_DPipe ) (Assignment keyword: Assign_Local pairs: [ (assign_pair lhs: (LhsName name:basedir) op: Equal rhs: { (CommandSubPart command_list: (CommandList children: [ (C {(basename)} { (CommandSubPart command_list: (CommandList children: [ (C {(dirname)} {(DQ ($ VSub_Name "$termfile"))}) ] ) left_token: spids: [301 307] ) } ) ] ) left_token: spids: [298 308] ) } spids: [297] ) ] spids: [295] ) (AndOr children: [ (C {(Lit_Other "[")} {(-z)} {(DQ ($ VSub_Name "$termfile"))} {(Lit_Other "]")}) (ControlFlow token:) ] op_id: Op_DAmp ) (C {(install)} {(-d)} {(DQ ($ VSub_Name "$pkgdir")) (/etc/terminfo/) ($ VSub_Name "$basedir")} ) (C {(mv)} {(${ VSub_Name termfile)} {(DQ ($ VSub_Name "$pkgdir")) (/etc/terminfo/) ($ VSub_Name "$basedir") (/)} ) (C {(ln)} {(-s)} {(../../../../etc/terminfo/) ($ VSub_Name "$basedir") (/) ($ VSub_Name "$i")} {(DQ ($ VSub_Name "$pkgdir")) (/usr/share/terminfo/) ($ VSub_Name "$basedir") (/) ($ VSub_Name "$i")} ) ] spids: [266 373] ) spids: [232 264] ) ] spids: [194] ) spids: [190 193] ) (FuncDef name: dev body: (BraceGroup children: [ (C {(default_dev)}) (ForEach iter_name: lib iter_words: [ {(ncurses)} {(ncurses) (Lit_Other "+") (Lit_Other "+")} {(form)} {(panel)} {(menu)} ] do_arg_iter: False body: (DoGroup children: [ (SimpleCommand words: [{(echo)} {(DQ ("INPUT(-l") (${ VSub_Name lib) ("w)"))}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name "$subpkgdir")) (/usr/lib/lib) (${ VSub_Name lib) (.so)} spids: [424] ) ] ) (C {(ln)} {(-s)} {(${ VSub_Name lib) (w.pc)} {(DQ ($ VSub_Name "$subpkgdir")) (/usr/lib/pkgconfig/) (${ VSub_Name lib) (.pc)} ) ] spids: [411 455] ) spids: [397 409] ) (SimpleCommand words: [{(echo)} {(DQ ("INPUT(-lncursesw)"))}] redirects: [ (Redir op_id: Redir_Great fd: -1 arg_word: {(DQ ($ VSub_Name "$subpkgdir")) (/usr/lib/libcursesw.so)} spids: [468] ) ] ) (C {(ln)} {(-s)} {(libncurses.so)} {(DQ ($ VSub_Name "$subpkgdir")) (/usr/lib/libcurses.so)}) ] spids: [382] ) spids: [378 381] ) (FuncDef name: terminfo body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:depends) op: Equal rhs: {(DQ ($ VSub_Name "$pkgname") (-terminfo-base))} spids: [497] ) ] spids: [497] ) (C {(rm)} {(-rf)} {($ VSub_Name "$subpkgdir")}) (C {(mkdir)} {(-p)} {($ VSub_Name "$subpkgdir") (/usr/share)}) (C {(mv)} {($ VSub_Name "$pkgdir") (/usr/share/terminfo)} {($ VSub_Name "$subpkgdir") (/usr/share)} ) ] spids: [494] ) spids: [490 493] ) (FuncDef name: libs body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pkgdesc) op: Equal rhs: {(DQ ("Ncurses libraries"))} spids: [537] ) ] spids: [537] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:depends) op: Equal rhs: {(DQ ($ VSub_Name "$pkgname") (-terminfo-base))} spids: [543] ) ] spids: [543] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:provides) op: Equal rhs: { (DQ ("ncurses-widec-libs=") ($ VSub_Name "$pkgver") (-r) ($ VSub_Name "$pkgrel")) } spids: [550] ) ] spids: [550] ) (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$subpkgdir")) (/usr/)}) (C {(mv)} {(DQ ($ VSub_Name "$pkgdir")) (/usr/lib)} {(DQ ($ VSub_Name "$subpkgdir")) (/usr/)} ) ] spids: [534] ) spids: [530 533] ) (FuncDef name: base body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pkgdesc) op: Equal rhs: {(DQ ("Descriptions of common terminals"))} spids: [592] ) ] spids: [592] ) (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$subpkgdir")) (/etc)}) (C {(mv)} {(DQ ($ VSub_Name "$pkgdir")) (/etc/terminfo)} {(DQ ($ VSub_Name "$subpkgdir")) (/etc/)} ) ] spids: [589] ) spids: [585 588] ) (FuncDef name: static body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pkgdesc) op: Equal rhs: {(DQ ("Static libraries for the ncurses library"))} spids: [630] ) ] spids: [630] ) (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$subpkgdir")) (/usr/lib)}) (C {(mv)} {(DQ ($ VSub_Name "$pkgdir")) (/usr/lib/) (Lit_Other "*") (.a)} {(DQ ($ VSub_Name "$subpkgdir")) (/usr/lib/)} ) ] spids: [627] ) spids: [623 626] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:sha512sums) op: Equal rhs: { (DQ ( "7d5a8785b135e356d449776d96348bb9f4557e65d30bca81607a86492b591f13c4951969215ebdd0ba95f2e7816d653a7a9d5173716f481929e31b0dee1276a8 ncurses-6.0-20170930.tgz" ) ) } spids: [663] ) ] spids: [663] ) ] )