# Contributor: William Pitcock # Contributor: Jose-Luis Rivas # Contributor: Jakub Jirutka # Contributor: Dave Esaias # Contributor: Tadahisa Kamijo # Maintainer: Jakub Jirutka # # secfixes: # 6.11.1-r0: # - CVE-2017-1000381 # global pkgname := 'nodejs' # Note: Update only to even-numbered versions (e.g. 6.y.z, 8.y.z)! # Odd-numbered versions are supported only for 9 months by upstream. global pkgver := '6.11.4' global pkgrel := '0' global pkgdesc := '"JavaScript runtime built on V8 engine - LTS version'" global url := '"http://nodejs.org/'" global arch := '"all'" global license := '"MIT'" global depends := '"ca-certificates'" global depends_dev := '"libuv'" # gold is needed for mksnapshot global makedepends := ""$depends_dev python2 openssl-dev zlib-dev libuv-dev linux-headers paxmark binutils-gold http-parser-dev ca-certificates c-ares-dev"" global subpackages := ""$pkgname-dev $pkgname-doc $pkgname-npm::noarch"" global provides := ""nodejs-lts=$pkgver"" # for backward compatibility global replaces := '"nodejs-current nodejs-lts'" # nodejs-lts for backward compatibility global source := ""https://nodejs.org/dist/v$pkgver/node-v$pkgver.tar.gz dont-run-gyp-files-for-bundled-deps.patch ppc-fix-musl-mcontext.patch"" global builddir := ""$srcdir/node-v$pkgver"" proc prepare { default_prepare # Remove bundled dependencies that we're not using. rm -rf deps/http_parser deps/openssl deps/uv deps/zlib } proc build { cd $builddir ./configure --prefix=/usr \ --shared-zlib \ --shared-libuv \ --shared-openssl \ --shared-http-parser \ --shared-cares \ --openssl-use-def-ca-store # We need run mksnapshot at build time so paxmark it early. make -C out mksnapshot BUILDTYPE=Release paxmark -m out/Release/mksnapshot make # paxmark so JIT works paxmark -m out/Release/node } # TODO Run provided test suite. proc check { cd "$builddir"/out/Release ./node -e 'console.log("Hello, world!")' ./node -e "require('assert').equal(process.versions.node, '$pkgver')" } proc package { cd $builddir make DESTDIR="$pkgdir" install # It's strange, but it really needs to be paxmarked again... paxmark -m "$pkgdir"/usr/bin/node cp -pr "$pkgdir"/usr/lib/node_modules/npm/man "$pkgdir"/usr/share var d = ''; for d in [doc html man] { rm -r "$pkgdir"/usr/lib/node_modules/npm/$d } } proc dev { global provides := ""nodejs-lts-dev=$pkgver"" # for backward compatibility default_dev # Remove some junk. rm -r "$subpkgdir"/usr/lib/node_modules rmdir -p "$subpkgdir"/usr/lib || : } proc npm { global pkgdesc := '"A package manager for JavaScript'" global depends := $pkgname global replaces := ""nodejs-current-npm $pkgname"" # $pkgname for backward compatibility mkdir -p "$subpkgdir"/usr/bin mv "$pkgdir"/usr/bin/npm "$subpkgdir"/usr/bin/ mkdir -p "$subpkgdir"/usr/lib/node_modules mv "$pkgdir"/usr/lib/node_modules/npm "$subpkgdir"/usr/lib/node_modules/ } global sha512sums := '"ab71d06b460dca4b1153796fa1824d87a49ea47f907e3934ab160c5276dc8f61f110839065e2e89daa1454a8abd586488d9e3d162009b76436b8630c720da25c node-v6.11.4.tar.gz a8be538158b7c96341a407acba30450ddc5c3ad764e7efe728d1ceff64efc3067b177855b9ef91b54400be6a02600d83da4c21a07ae9d7dc0774f92b2006ea8b dont-run-gyp-files-for-bundled-deps.patch 54a96cdc103bdffa9ba5283f59c64a35774e272f3a944d6475e3f669f95f7d75bcca6db3b12b9af76ea463f531763105aeabb302872652ced6a2bcb66f1eace0 ppc-fix-musl-mcontext.patch'" (CommandList children: [ (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:pkgname) op:Equal rhs:{(nodejs)} spids:[33])] spids: [33] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:pkgver) op:Equal rhs:{(6.11.4)} spids:[42])] spids: [42] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:pkgrel) op:Equal rhs:{(0)} spids:[45])] spids: [45] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pkgdesc) op: Equal rhs: {(DQ ("JavaScript runtime built on V8 engine - LTS version"))} spids: [48] ) ] spids: [48] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:url) op: Equal rhs: {(DQ ("http://nodejs.org/"))} spids: [53] ) ] spids: [53] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:arch) op:Equal rhs:{(DQ (all))} spids:[58])] spids: [58] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:license) op:Equal rhs:{(DQ (MIT))} spids:[63])] spids: [63] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:depends) op: Equal rhs: {(DQ (ca-certificates))} spids: [68] ) ] spids: [68] ) (Assignment keyword: Assign_None pairs: [(assign_pair lhs:(LhsName name:depends_dev) op:Equal rhs:{(DQ (libuv))} spids:[73])] spids: [73] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:makedepends) op: Equal rhs: { (DQ ($ VSub_Name "$depends_dev") (" python2 openssl-dev zlib-dev libuv-dev linux-headers\n") ("\tpaxmark binutils-gold http-parser-dev ca-certificates c-ares-dev") ) } spids: [81] ) ] spids: [81] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:subpackages) op: Equal rhs: { (DQ ($ VSub_Name "$pkgname") ("-dev ") ($ VSub_Name "$pkgname") ("-doc ") ($ VSub_Name "$pkgname") ("-npm::noarch") ) } spids: [88] ) ] spids: [88] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:provides) op: Equal rhs: {(DQ ("nodejs-lts=") ($ VSub_Name "$pkgver"))} spids: [98] ) ] spids: [98] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:replaces) op: Equal rhs: {(DQ ("nodejs-current nodejs-lts"))} spids: [107] ) ] spids: [107] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:source) op: Equal rhs: { (DQ ("https://nodejs.org/dist/v") ($ VSub_Name "$pkgver") (/node-v) ($ VSub_Name "$pkgver") (".tar.gz\n") ("\tdont-run-gyp-files-for-bundled-deps.patch\n") ("\tppc-fix-musl-mcontext.patch") ) } spids: [115] ) ] spids: [115] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:builddir) op: Equal rhs: {(DQ ($ VSub_Name "$srcdir") (/node-v) ($ VSub_Name "$pkgver"))} spids: [126] ) ] spids: [126] ) (FuncDef name: prepare body: (BraceGroup children: [ (C {(default_prepare)}) (C {(rm)} {(-rf)} {(deps/http_parser)} {(deps/openssl)} {(deps/uv)} {(deps/zlib)}) ] spids: [138] ) spids: [134 137] ) (FuncDef name: build body: (BraceGroup children: [ (C {(cd)} {(DQ ($ VSub_Name "$builddir"))}) (C {(./configure)} {(--prefix) (Lit_Other "=") (/usr)} {(--shared-zlib)} {(--shared-libuv)} {(--shared-openssl)} {(--shared-http-parser)} {(--shared-cares)} {(--openssl-use-def-ca-store)} ) (C {(make)} {(-C)} {(out)} {(mksnapshot)} {(Lit_VarLike "BUILDTYPE=") (Release)}) (C {(paxmark)} {(-m)} {(out/Release/mksnapshot)}) (C {(make)}) (C {(paxmark)} {(-m)} {(out/Release/node)}) ] spids: [168] ) spids: [164 167] ) (FuncDef name: check body: (BraceGroup children: [ (C {(cd)} {(DQ ($ VSub_Name "$builddir")) (/out/Release)}) (C {(./node)} {(-e)} {(SQ <"console.log(\"Hello, world!\")">)}) (C {(./node)} {(-e)} { (DQ ("require('assert').equal(process.versions.node, '") ($ VSub_Name "$pkgver") ("')")) } ) ] spids: [258] ) spids: [254 257] ) (FuncDef name: package body: (BraceGroup children: [ (C {(cd)} {(DQ ($ VSub_Name "$builddir"))}) (C {(make)} {(Lit_VarLike "DESTDIR=") (DQ ($ VSub_Name "$pkgdir"))} {(install)}) (C {(paxmark)} {(-m)} {(DQ ($ VSub_Name "$pkgdir")) (/usr/bin/node)}) (C {(cp)} {(-pr)} {(DQ ($ VSub_Name "$pkgdir")) (/usr/lib/node_modules/npm/man)} {(DQ ($ VSub_Name "$pkgdir")) (/usr/share)} ) (Sentence child: (Assignment keyword: Assign_Local pairs: [(assign_pair lhs:(LhsName name:d) op:Equal spids:[350])] spids: [348] ) terminator: ) (ForEach iter_name: d iter_words: [{(doc)} {(html)} {(man)}] do_arg_iter: False body: (DoGroup children: [ (C {(rm)} {(-r)} {(DQ ($ VSub_Name "$pkgdir")) (/usr/lib/node_modules/npm/) ($ VSub_Name "$d")} ) ] spids: [366 380] ) spids: [358 364] ) ] spids: [296] ) spids: [292 295] ) (FuncDef name: dev body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:provides) op: Equal rhs: {(DQ ("nodejs-lts-dev=") ($ VSub_Name "$pkgver"))} spids: [392] ) ] spids: [392] ) (C {(default_dev)}) (C {(rm)} {(-r)} {(DQ ($ VSub_Name "$subpkgdir")) (/usr/lib/node_modules)}) (AndOr children: [ (C {(rmdir)} {(-p)} {(DQ ($ VSub_Name "$subpkgdir")) (/usr/lib)}) (C {(Lit_Other ":")}) ] op_id: Op_DPipe ) ] spids: [389] ) spids: [385 388] ) (FuncDef name: npm body: (BraceGroup children: [ (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:pkgdesc) op: Equal rhs: {(DQ ("A package manager for JavaScript"))} spids: [444] ) ] spids: [444] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:depends) op: Equal rhs: {(DQ ($ VSub_Name "$pkgname"))} spids: [450] ) ] spids: [450] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:replaces) op: Equal rhs: {(DQ ("nodejs-current-npm ") ($ VSub_Name "$pkgname"))} spids: [456] ) ] spids: [456] ) (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$subpkgdir")) (/usr/bin)}) (C {(mv)} {(DQ ($ VSub_Name "$pkgdir")) (/usr/bin/npm)} {(DQ ($ VSub_Name "$subpkgdir")) (/usr/bin/)} ) (C {(mkdir)} {(-p)} {(DQ ($ VSub_Name "$subpkgdir")) (/usr/lib/node_modules)}) (C {(mv)} {(DQ ($ VSub_Name "$pkgdir")) (/usr/lib/node_modules/npm)} {(DQ ($ VSub_Name "$subpkgdir")) (/usr/lib/node_modules/)} ) ] spids: [441] ) spids: [437 440] ) (Assignment keyword: Assign_None pairs: [ (assign_pair lhs: (LhsName name:sha512sums) op: Equal rhs: { (DQ ( "ab71d06b460dca4b1153796fa1824d87a49ea47f907e3934ab160c5276dc8f61f110839065e2e89daa1454a8abd586488d9e3d162009b76436b8630c720da25c node-v6.11.4.tar.gz\n" ) ( "a8be538158b7c96341a407acba30450ddc5c3ad764e7efe728d1ceff64efc3067b177855b9ef91b54400be6a02600d83da4c21a07ae9d7dc0774f92b2006ea8b dont-run-gyp-files-for-bundled-deps.patch\n" ) ( "54a96cdc103bdffa9ba5283f59c64a35774e272f3a944d6475e3f669f95f7d75bcca6db3b12b9af76ea463f531763105aeabb302872652ced6a2bcb66f1eace0 ppc-fix-musl-mcontext.patch" ) ) } spids: [516] ) ] spids: [516] ) ] )