From fa80612ca2524a28dc639ad88c38d834acda4189 Mon Sep 17 00:00:00 2001 From: Fredrik Fornwall Date: Sat, 25 Jul 2015 18:03:43 -0400 Subject: [PATCH 1/1] nodejs: Patches for getting npm to work --- packages/nodejs/build.sh | 1 + packages/nodejs/npm-avoid-chown.patch | 17 +++++++++++++++++ packages/nodejs/npm-tmp-patch.patch | 12 ++++++++++++ 3 files changed, 30 insertions(+) create mode 100644 packages/nodejs/npm-avoid-chown.patch create mode 100644 packages/nodejs/npm-tmp-patch.patch diff --git a/packages/nodejs/build.sh b/packages/nodejs/build.sh index 901600e2..66da1ccc 100644 --- a/packages/nodejs/build.sh +++ b/packages/nodejs/build.sh @@ -1,6 +1,7 @@ TERMUX_PKG_HOMEPAGE=http://nodejs.org/ TERMUX_PKG_DESCRIPTION="Platform built on Chrome's JavaScript runtime for easily building fast, scalable network applications" TERMUX_PKG_VERSION=0.12.7 +TERMUX_PKG_BUILD_REVISION=1 TERMUX_PKG_SRCURL=http://nodejs.org/dist/v${TERMUX_PKG_VERSION}/node-v${TERMUX_PKG_VERSION}.tar.gz TERMUX_PKG_EXTRA_CONFIGURE_ARGS="--dest-os=android --shared-openssl --shared-zlib --shared-cares --shared-libuv --without-snapshot" TERMUX_PKG_DEPENDS="c-ares, openssl, libuv" diff --git a/packages/nodejs/npm-avoid-chown.patch b/packages/nodejs/npm-avoid-chown.patch new file mode 100644 index 00000000..6c452ee2 --- /dev/null +++ b/packages/nodejs/npm-avoid-chown.patch @@ -0,0 +1,17 @@ +Termux is effectively a single-user system so chown:ing +does not make much sense. + +Without this patch npm fails with EPERM on chown +for cache.json when first building the local index. +diff -u -r ../node-v0.12.7/deps/npm/lib/cache/update-index.js ./deps/npm/lib/cache/update-index.js +--- ../node-v0.12.7/deps/npm/lib/cache/update-index.js 2015-07-09 18:41:19.000000000 -0400 ++++ ./deps/npm/lib/cache/update-index.js 2015-07-24 20:45:21.078116384 -0400 +@@ -4,7 +4,7 @@ + var assert = require('assert') + var path = require('path') + var mkdir = require('mkdirp') +-var chownr = require('chownr') ++var chownr = function(path, uid, gid, cb) { cb(null); } + var npm = require('../npm.js') + var log = require('npmlog') + var cacheFile = require('npm-cache-filename') diff --git a/packages/nodejs/npm-tmp-patch.patch b/packages/nodejs/npm-tmp-patch.patch new file mode 100644 index 00000000..ac8a760f --- /dev/null +++ b/packages/nodejs/npm-tmp-patch.patch @@ -0,0 +1,12 @@ +diff -u -r ../node-v0.12.7/deps/npm/node_modules/osenv/node_modules/os-tmpdir/index.js ./deps/npm/node_modules/osenv/node_modules/os-tmpdir/index.js +--- ../node-v0.12.7/deps/npm/node_modules/osenv/node_modules/os-tmpdir/index.js 2015-07-09 18:41:19.000000000 -0400 ++++ ./deps/npm/node_modules/osenv/node_modules/os-tmpdir/index.js 2015-07-24 20:56:42.278310940 -0400 +@@ -14,7 +14,7 @@ + path = process.env.TMPDIR || + process.env.TMP || + process.env.TEMP || +- '/tmp'; ++ '@TERMUX_PREFIX@/tmp'; + } + + if (trailingSlashRe.test(path)) { -- 2.11.0