PKGBUILDs/community/nodejs/PKGBUILD

122 lines
3.7 KiB
Bash
Raw Normal View History

2014-09-28 13:07:04 +00:00
# Maintainer: Felix Yan <felixonmars@archlinux.org>
# Contributor Bartłomiej Piotrowski <bpiotrowski@archlinux.org>
# Contributor: Thomas Dziedzic < gostrc at gmail >
2012-01-27 02:19:01 +00:00
# Contributor: James Campos <james.r.campos@gmail.com>
# Contributor: BlackEagle < ike DOT devolder AT gmail DOT com >
# Contributor: Dongsheng Cai <dongsheng at moodle dot com>
# Contributor: Masutu Subric <masutu.arch at googlemail dot com>
# Contributor: TIanyi Cui <tianyicui@gmail.com>
2013-01-11 13:33:47 +00:00
# Contributor: Jason Plum <jplum@archlinuxarm.org>
2012-01-27 02:19:01 +00:00
pkgname=nodejs
2017-09-13 05:03:51 +00:00
pkgver=8.5.0
2017-06-06 18:43:27 +00:00
pkgrel=1
2012-01-27 02:19:01 +00:00
pkgdesc='Evented I/O for V8 javascript'
2015-09-17 00:01:46 +00:00
arch=('i686' 'x86_64')
2012-01-27 02:19:01 +00:00
url='http://nodejs.org/'
license=('MIT')
2014-05-06 08:33:13 +00:00
provides=('nodejs-node-gyp')
2017-04-24 19:11:39 +00:00
depends=('openssl-1.0' 'zlib' 'icu' 'libuv' 'http-parser' 'c-ares') # 'v8')
makedepends=('python2' 'procps-ng')
2015-05-08 12:43:59 +00:00
optdepends=('npm: nodejs package manager')
2017-04-24 19:11:39 +00:00
source=("nodejs-$pkgver.tar.gz::https://github.com/nodejs/node/archive/v$pkgver.tar.gz"
2015-09-17 00:01:46 +00:00
'0001-arm-fixes.patch')
2017-09-13 05:03:51 +00:00
sha512sums=('70c5052b644004743a20e02db2de42c527d0b999a158601ccb80644b9d7df9bfb98a19a170c9b35f50baf2958ae5397a78c73c523d79b0a49e9e6d55222b9149'
2017-05-03 16:36:45 +00:00
'4811e1d9bc0e03458072cad6af9284e3ceb6c74005ae00e3407c18d0e6eae0bce2edcbdbe547975ade916c1bcdb2bb53101edce2afeca0bcac84d8807934fc8c')
2012-01-27 02:19:01 +00:00
2013-02-20 15:12:21 +00:00
set_flags_for_arm() {
if [ "$CARCH" == "arm" ]; then
# CXXFLAGS is here to bash it over the head. It has a bad habit.
2015-09-17 01:10:51 +00:00
CONFIG="--with-arm-float-abi=soft"
2013-02-20 15:12:21 +00:00
CXXFLAGS="$CXXFLAGS -march=armv5t -mno-unaligned-access" ;
2015-04-04 04:39:00 +00:00
GYPFLAGS="-Darm_thumb -Darm_float_abi=soft -Darm_version=5 -Darm_fpu= -Darm_test_noprobe=on"
2013-02-20 15:12:21 +00:00
fi
if [ "$CARCH" == "armv6h" ]; then
2015-09-17 01:10:51 +00:00
CONFIG="--with-arm-float-abi=hard"
2015-04-04 04:39:00 +00:00
GYPFLAGS="-Darm_thumb -Darm_float_abi=hard -Darm_version=6 -Darm_fpu=vfpv2"
2013-02-20 15:12:21 +00:00
fi
if [ "$CARCH" == "armv7h" ]; then
2015-11-25 08:10:54 +00:00
CONFIG="--with-arm-float-abi=hard --with-arm-fpu=vfpv3-d16"
2015-04-04 04:39:00 +00:00
GYPFLAGS="-Darm_thumb -Darm_float_abi=hard -Darm_version=7 -Darm_fpu=vfpv3-d16"
2013-02-20 15:12:21 +00:00
fi
export CXXFLAGS
export GYPFLAGS
}
2013-05-15 14:33:50 +00:00
prepare() {
2017-04-24 19:11:39 +00:00
cd node-$pkgver
2012-01-27 02:19:01 +00:00
2015-09-17 00:01:46 +00:00
patch -p1 -i ../0001-arm-fixes.patch
2015-04-04 04:39:00 +00:00
2015-09-16 18:41:44 +00:00
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 {} \;
2013-05-15 14:33:50 +00:00
}
2015-04-04 04:39:00 +00:00
2013-05-15 14:33:50 +00:00
build() {
2017-04-24 19:11:39 +00:00
cd node-$pkgver
2012-01-27 02:19:01 +00:00
2017-04-24 19:11:39 +00:00
export PKG_CONFIG_PATH=/usr/lib/openssl-1.0/pkgconfig
2012-01-27 02:19:01 +00:00
export PYTHON=python2
2013-02-20 15:12:21 +00:00
set_flags_for_arm
2014-08-01 12:55:32 +00:00
# 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 ;
2012-02-05 02:06:11 +00:00
# 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
2012-02-05 02:06:11 +00:00
2012-01-27 02:19:01 +00:00
./configure \
--prefix=/usr \
2015-05-08 12:43:59 +00:00
--with-intl=system-icu \
--without-npm \
--without-snapshot \
2015-02-15 19:15:29 +00:00
--shared-openssl \
2015-09-17 01:10:51 +00:00
--shared-zlib \
2015-10-13 12:11:28 +00:00
--shared-libuv \
--shared-http-parser \
2016-11-09 13:31:30 +00:00
--shared-cares \
2015-09-17 01:10:51 +00:00
${CONFIG}
2013-01-24 23:07:08 +00:00
# --shared-v8 \
# --shared-v8-libpath=/usr/lib \
# --shared-v8-includes=/usr/include
2015-04-04 04:39:00 +00:00
[ "$CARCH" == "arm" ] && sed -i 's/vfpv3//' config.gypi
[ "$CARCH" == "armv6h" ] && sed -i 's/vfpv3/vfp/' config.gypi
2012-01-27 02:19:01 +00:00
2015-04-04 04:39:00 +00:00
make
2012-01-27 02:19:01 +00:00
}
check() {
2017-04-24 19:11:39 +00:00
cd node-$pkgver
2017-03-02 13:19:02 +00:00
# Expected failure: https://github.com/nodejs/node/issues/11627
make test || warning "Tests failed"
2012-01-27 02:19:01 +00:00
}
package() {
2017-04-24 19:11:39 +00:00
cd node-$pkgver
2012-01-27 02:19:01 +00:00
2013-02-20 15:12:21 +00:00
# suppress re-compile(with out customized flags) by 'make install'.
set_flags_for_arm
2012-01-27 02:19:01 +00:00
make DESTDIR=${pkgdir} install
install -D -m644 LICENSE \
${pkgdir}/usr/share/licenses/nodejs/LICENSE
}
# vim:set ts=2 sw=2 et: