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
|
2015-02-15 19:15:29 +00:00
|
|
|
pkgver=0.12.0
|
2015-02-27 16:46:37 +00:00
|
|
|
_npmver=2.6.1
|
|
|
|
pkgrel=3
|
2012-01-27 02:19:01 +00:00
|
|
|
pkgdesc='Evented I/O for V8 javascript'
|
2012-01-27 02:23:27 +00:00
|
|
|
arch=('i686' 'x86_64' 'arm')
|
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')
|
2015-02-27 16:46:37 +00:00
|
|
|
depends=('openssl' 'zlib') # 'libuv' 'v8' 'c-ares')
|
2014-07-19 16:41:42 +00:00
|
|
|
makedepends=('python2' 'git' 'procps-ng')
|
2014-05-02 03:03:09 +00:00
|
|
|
optdepends=('python2: for node-gyp')
|
2013-03-30 13:53:39 +00:00
|
|
|
checkdepends=('curl')
|
2015-01-02 14:44:56 +00:00
|
|
|
options=('!emptydirs' '!strip')
|
2014-07-19 16:41:42 +00:00
|
|
|
source=("http://nodejs.org/dist/v$pkgver/node-v$pkgver.tar.gz"
|
|
|
|
git+https://github.com/npm/npm.git#tag=v$_npmver)
|
2015-02-15 19:15:29 +00:00
|
|
|
sha256sums=('9700e23af4e9b3643af48cef5f2ad20a1331ff531a12154eef2bfb0bb1682e32'
|
2014-07-19 16:41:42 +00:00
|
|
|
'SKIP')
|
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.
|
|
|
|
EABI=soft
|
|
|
|
CXXFLAGS="$CXXFLAGS -march=armv5t -mno-unaligned-access" ;
|
|
|
|
GYPFLAGS="-Darmeabi=soft -Dv8_can_use_vfp_instructions=false -Dv8_can_use_unaligned_accesses=false -Darmv7=0"
|
|
|
|
VFP3=off
|
|
|
|
VFP2=off
|
|
|
|
fi
|
|
|
|
if [ "$CARCH" == "armv6h" ]; then
|
|
|
|
EABI=hard
|
|
|
|
GYPFLAGS="-Darmeabi=hard -Dv8_use_arm_eabi_hardfloat=true -Dv8_can_use_vfp3_instructions=false -Dv8_can_use_vfp2_instructions=true -Darm7=0 -Darm_vfp=vfp"
|
|
|
|
VFP3=off
|
|
|
|
VFP2=on
|
|
|
|
fi
|
|
|
|
if [ "$CARCH" == "armv7h" ]; then
|
|
|
|
EABI=hard
|
|
|
|
GYPFLAGS="-Darmeabi=hard -Dv8_use_arm_eabi_hardfloat=true -Dv8_can_use_vfp3_instructions=true -Dv8_can_use_vfp2_instructions=true -Darm7=1"
|
|
|
|
VFP3=on
|
|
|
|
VFP2=on
|
|
|
|
fi
|
|
|
|
export CXXFLAGS
|
|
|
|
export GYPFLAGS
|
|
|
|
}
|
|
|
|
|
2013-05-15 14:33:50 +00:00
|
|
|
prepare() {
|
|
|
|
cd node-v$pkgver
|
2012-01-27 02:19:01 +00:00
|
|
|
|
2014-08-01 12:43:14 +00:00
|
|
|
# We need newer version of npm to fix bugs
|
2014-07-19 16:41:42 +00:00
|
|
|
rm -r deps/npm
|
|
|
|
ln -s "$srcdir/npm" deps
|
|
|
|
rm -r "$srcdir/npm/.git"
|
|
|
|
|
2012-01-27 02:19:01 +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_'python'_'python2'_" -i {} \;
|
|
|
|
find test -type f -exec sed -e "s|python |python2 |" -i {} \;
|
|
|
|
sed -i "s|python |python2 |" Makefile
|
2013-05-15 14:33:50 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
build() {
|
|
|
|
cd node-v$pkgver
|
2012-01-27 02:19:01 +00:00
|
|
|
|
|
|
|
export PYTHON=python2
|
2012-08-07 02:07:49 +00:00
|
|
|
|
2013-02-20 15:12:21 +00:00
|
|
|
set_flags_for_arm
|
2012-08-07 02:07:49 +00:00
|
|
|
|
2014-08-01 12:55:32 +00:00
|
|
|
# short-cutting python=python2 for GYP, as it will only be used here.
|
2012-11-21 17:48:04 +00:00
|
|
|
export PYTHON=python2
|
|
|
|
if [ ! -f "${srcdir}/python" ]; then
|
|
|
|
ln -s `which python2` ${srcdir}/python ;
|
|
|
|
fi
|
|
|
|
PATH="${srcdir}:$PATH";
|
|
|
|
export PATH ;
|
2012-08-07 02:07:49 +00:00
|
|
|
|
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
|
2012-02-05 04:34:24 +00:00
|
|
|
# https://gist.github.com/1574158
|
2012-02-05 02:06:11 +00:00
|
|
|
|
2012-01-27 02:19:01 +00:00
|
|
|
./configure \
|
2012-02-06 01:32:05 +00:00
|
|
|
--prefix=/usr \
|
2012-08-07 02:07:49 +00:00
|
|
|
--without-snapshot \
|
2014-08-02 00:07:01 +00:00
|
|
|
--with-arm-float-abi=$EABI \
|
2015-02-15 19:15:29 +00:00
|
|
|
--shared-openssl \
|
2015-02-27 16:46:37 +00:00
|
|
|
--shared-zlib
|
|
|
|
# --shared-libuv
|
2013-01-24 23:07:08 +00:00
|
|
|
# --shared-v8 \
|
|
|
|
# --shared-v8-libpath=/usr/lib \
|
|
|
|
# --shared-v8-includes=/usr/include
|
2012-11-21 17:48:04 +00:00
|
|
|
|
2012-01-27 02:19:01 +00:00
|
|
|
|
2013-01-11 13:33:47 +00:00
|
|
|
make
|
2014-07-19 16:41:42 +00:00
|
|
|
|
|
|
|
cd ../npm
|
|
|
|
../node-v$pkgver/node cli.js install ronn marked
|
|
|
|
PATH="$srcdir/node-v$pkgver:$PATH" make
|
2014-09-26 14:44:58 +00:00
|
|
|
../node-v$pkgver/node cli.js uninstall ronn marked marked-man
|
2012-01-27 02:19:01 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
check() {
|
|
|
|
cd node-v${pkgver}
|
|
|
|
|
2014-06-10 07:12:04 +00:00
|
|
|
make test || warning "Tests failed"
|
2012-01-27 02:19:01 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
package() {
|
|
|
|
cd node-v${pkgver}
|
|
|
|
|
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 docs as per user request
|
|
|
|
install -d ${pkgdir}/usr/share/doc/nodejs
|
2013-06-02 16:47:07 +00:00
|
|
|
cp -r doc/api/{*.html,assets} \
|
2012-01-27 02:19:01 +00:00
|
|
|
${pkgdir}/usr/share/doc/nodejs
|
|
|
|
|
2012-07-17 13:39:31 +00:00
|
|
|
# compress man pages
|
2013-04-24 19:21:34 +00:00
|
|
|
find "$pkgdir"/usr/lib/node_modules/npm/man -type f | xargs gzip -9
|
2012-07-17 13:39:31 +00:00
|
|
|
|
2012-01-27 02:19:01 +00:00
|
|
|
install -D -m644 LICENSE \
|
|
|
|
${pkgdir}/usr/share/licenses/nodejs/LICENSE
|
2014-05-06 08:33:13 +00:00
|
|
|
|
2014-07-19 16:41:42 +00:00
|
|
|
install -d "$pkgdir"/usr/share/man/{man1,man3,man5,man7}
|
|
|
|
for _dir in man1 man3 man5 man7; do
|
|
|
|
cd "$pkgdir"/usr/lib/node_modules/npm/man/$_dir
|
|
|
|
for _file in *; do
|
|
|
|
ln -s /usr/lib/node_modules/npm/man/$_dir/$_file "$pkgdir"/usr/share/man/$_dir/
|
|
|
|
done
|
|
|
|
done
|
|
|
|
|
2014-05-06 13:22:03 +00:00
|
|
|
ln -s /usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js "$pkgdir"/usr/bin/node-gyp
|
2012-01-27 02:19:01 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
# vim:set ts=2 sw=2 et:
|