# Maintainer: Felix Yan # Contributor Bartłomiej Piotrowski # Contributor: Thomas Dziedzic < gostrc at gmail > # Contributor: James Campos # Contributor: BlackEagle < ike DOT devolder AT gmail DOT com > # Contributor: Dongsheng Cai # Contributor: Masutu Subric # Contributor: TIanyi Cui # Contributor: Jason Plum pkgname=nodejs pkgver=8.3.0 pkgrel=1 pkgdesc='Evented I/O for V8 javascript' arch=('i686' 'x86_64') url='http://nodejs.org/' license=('MIT') provides=('nodejs-node-gyp') depends=('openssl-1.0' 'zlib' 'icu' 'libuv' 'http-parser' 'c-ares') # 'v8') makedepends=('python2' 'procps-ng') optdepends=('npm: nodejs package manager') source=("nodejs-$pkgver.tar.gz::https://github.com/nodejs/node/archive/v$pkgver.tar.gz" '0001-arm-fixes.patch') sha512sums=('d3d92d0c5ce39f3f359ea9504c86f71c9f7fcfcd2c4fde9cc0881a840f762cb90e3589afe7190d65e20369fc051deaa0150bf3f632fa728cad80bdb0ae344f6f' '4811e1d9bc0e03458072cad6af9284e3ceb6c74005ae00e3407c18d0e6eae0bce2edcbdbe547975ade916c1bcdb2bb53101edce2afeca0bcac84d8807934fc8c') set_flags_for_arm() { if [ "$CARCH" == "arm" ]; then # CXXFLAGS is here to bash it over the head. It has a bad habit. CONFIG="--with-arm-float-abi=soft" CXXFLAGS="$CXXFLAGS -march=armv5t -mno-unaligned-access" ; GYPFLAGS="-Darm_thumb -Darm_float_abi=soft -Darm_version=5 -Darm_fpu= -Darm_test_noprobe=on" fi if [ "$CARCH" == "armv6h" ]; then CONFIG="--with-arm-float-abi=hard" GYPFLAGS="-Darm_thumb -Darm_float_abi=hard -Darm_version=6 -Darm_fpu=vfpv2" fi if [ "$CARCH" == "armv7h" ]; then CONFIG="--with-arm-float-abi=hard --with-arm-fpu=vfpv3-d16" GYPFLAGS="-Darm_thumb -Darm_float_abi=hard -Darm_version=7 -Darm_fpu=vfpv3-d16" fi export CXXFLAGS export GYPFLAGS } prepare() { cd node-$pkgver patch -p1 -i ../0001-arm-fixes.patch msg 'Fixing for python2 name' find -type f -exec sed \ -e 's_^#!/usr/bin/env python$_&2_' \ -e 's_^\(#!/usr/bin/python2\).[45]$_\1_' \ -e 's_^#!/usr/bin/python$_&2_' \ -e 's_^\( *exec \+\)python\( \+.*\)$_\1python2\2_'\ -e 's_^\(.*\)python\( \+-c \+.*\)$_\1python2\2_'\ -e "s_'python'_'python2'_" -i {} \; find test/ -type f -exec sed 's_python _python2 _' -i {} \; } build() { cd node-$pkgver export PKG_CONFIG_PATH=/usr/lib/openssl-1.0/pkgconfig export PYTHON=python2 set_flags_for_arm # short-cutting python=python2 for GYP, as it will only be used here. export PYTHON=python2 if [ ! -f "${srcdir}/python" ]; then ln -s `which python2` ${srcdir}/python ; fi PATH="${srcdir}:$PATH"; export PATH ; # we're going to attept to make use of this example # https://github.com/joyent/node/issues/2131#issuecomment-3208846 # https://gist.github.com/1574158 ./configure \ --prefix=/usr \ --with-intl=system-icu \ --without-npm \ --without-snapshot \ --shared-openssl \ --shared-zlib \ --shared-libuv \ --shared-http-parser \ --shared-cares \ ${CONFIG} # --shared-v8 \ # --shared-v8-libpath=/usr/lib \ # --shared-v8-includes=/usr/include [ "$CARCH" == "arm" ] && sed -i 's/vfpv3//' config.gypi [ "$CARCH" == "armv6h" ] && sed -i 's/vfpv3/vfp/' config.gypi make } check() { cd node-$pkgver # Expected failure: https://github.com/nodejs/node/issues/11627 make test || warning "Tests failed" } package() { cd node-$pkgver # suppress re-compile(with out customized flags) by 'make install'. set_flags_for_arm make DESTDIR=${pkgdir} install install -D -m644 LICENSE \ ${pkgdir}/usr/share/licenses/nodejs/LICENSE } # vim:set ts=2 sw=2 et: