nodejs: Do not use a shared libuv
authorFredrik Fornwall <fredrik@fornwall.net>
Wed, 21 Sep 2016 21:49:02 +0000 (17:49 -0400)
committerFredrik Fornwall <fredrik@fornwall.net>
Wed, 21 Sep 2016 21:49:02 +0000 (17:49 -0400)
Using a shared libuv for node does not work when dlopen():ing
shared libraries in node packages which uses libuv symbols
without linking to libuv explicitly, as the Android linker does
not use linked libraries on dlopen() to resolve symbols due to
historical reasons.

Fixes #462.

packages/nodejs/build.sh

index e58a317..97f1137 100644 (file)
@@ -1,8 +1,12 @@
 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=6.6.0
+TERMUX_PKG_BUILD_REVISION=1
 TERMUX_PKG_SRCURL=https://nodejs.org/dist/v${TERMUX_PKG_VERSION}/node-v${TERMUX_PKG_VERSION}.tar.gz
-TERMUX_PKG_DEPENDS="openssl, libuv, c-ares"
+# Note that we do not use a shared libuv to avoid an issue with the Android
+# linker, which does not use symbols of linked shared libraries when resolving
+# symbols on dlopen(). See https://github.com/termux/termux-packages/issues/462.
+TERMUX_PKG_DEPENDS="openssl, c-ares"
 TERMUX_PKG_RM_AFTER_INSTALL="lib/node_modules/npm/html lib/node_modules/npm/make.bat share/systemtap lib/dtrace"
 TERMUX_PKG_BUILD_IN_SRC=yes
 
@@ -33,7 +37,7 @@ termux_step_configure () {
                --prefix=$TERMUX_PREFIX \
                --dest-cpu=$DEST_CPU \
                --dest-os=android \
-               --shared-openssl --shared-zlib --shared-libuv --shared-cares \
+               --shared-openssl --shared-zlib --shared-cares \
                --without-snapshot \
                --without-intl \
                --without-inspector \