From 8aa826ef31578d7d1738744c506d6996be92121a Mon Sep 17 00:00:00 2001 From: MCApollo <34170230+MCApollo@users.noreply.github.com> Date: Wed, 27 May 2020 00:57:51 -0500 Subject: Updates to NodeJS Bugs - dyld will refuse to load a dylib with a bad id path - import patch from nodejs-mobile to fix a bad sys call error --- data/nodejs/README | 32 -------------------------------- data/nodejs/_metadata/version | 2 +- data/nodejs/make.sh | 6 ++++++ data/nodejs/node-v12.17.0.tar.gz | Bin 0 -> 52417986 bytes data/nodejs/node-v12.3.1.tar.gz | Bin 49112048 -> 0 bytes data/nodejs/nodejs-mobile-filecopy.diff | 28 ++++++++++++++++++++++++++++ 6 files changed, 35 insertions(+), 33 deletions(-) delete mode 100644 data/nodejs/README create mode 100644 data/nodejs/node-v12.17.0.tar.gz delete mode 100644 data/nodejs/node-v12.3.1.tar.gz create mode 100644 data/nodejs/nodejs-mobile-filecopy.diff diff --git a/data/nodejs/README b/data/nodejs/README deleted file mode 100644 index 38aae846f..000000000 --- a/data/nodejs/README +++ /dev/null @@ -1,32 +0,0 @@ -MCApollo's Notes. - -In the case of linux, Clang 8 is required due to v8. - -TODO (if bored): fix the usage of libs for target on host toolchain. -I've disable/fixed the other issue for now (mksnapshot/want_seperate_toolchain). - -TODO: Fix the Makefile/install.py for a smoother install. - -TODO: Set all values uv cannot detect, like -os.cpus, os.hwfreq, the sysctl values are missing. - -TODO: Figure a less hacky way to get jitless working, -It doesn't work as v8 claims it should work or I'm doing something wrong. -Cleaner patches next time ^ - SIGCHLD will stop node. - --> Setting CS_DEBUGGED in unc0ver doesn't work as intented? - -Shoutouts: --> Coolstar/PPSSP maintainers, since I borrowed PPSSP's code to set CS_DEBUGGED. --> Shawn Presser's version of node for iOS - He didn't try for jit it seems, Xcode just sets CS_DEBUGGED - when running from Xcode and it works for him I guess. - https://github.com/shawwn/node/tree/ios-release?files=1 --> Node chakracore/nodejs-mobile maintainers for gyp edits and - leading me to try v8 node. - -Callouts: --> Screw Node's build system, that's all. - -Knock down one language, go to the next. diff --git a/data/nodejs/_metadata/version b/data/nodejs/_metadata/version index 9c028e25d..dfd39f4bf 100644 --- a/data/nodejs/_metadata/version +++ b/data/nodejs/_metadata/version @@ -1 +1 @@ -12.3.1 +12.17.0 diff --git a/data/nodejs/make.sh b/data/nodejs/make.sh index c3f4c737b..3e1d29dc4 100644 --- a/data/nodejs/make.sh +++ b/data/nodejs/make.sh @@ -33,3 +33,9 @@ make BUILDTYPE=Release DESTCPU=arm64 install DESTDIR="${PKG_DEST}" -j16 pkg: mkdir -p /usr/bin pkg: cp out/Release/node /usr/bin/ ldid -S"${PKG_DATA}/node.xml" "${PKG_DEST}/usr/bin/node" + +export INSTALL_NAME_TOOL="${PKG_TARG}-install_name_tool" +test command -v ${INSTALL_NAME_TOOL} &>/dev/null || \ + export INSTALL_NAME_TOOL="install_name_tool" +LIBNODE="$(echo ${PKG_DEST}/usr/lib/libnode.*.dylib)" +${INSTALL_NAME_TOOL} "${LIBNODE}" -id "/usr/lib/${LIBNODE##*/}" diff --git a/data/nodejs/node-v12.17.0.tar.gz b/data/nodejs/node-v12.17.0.tar.gz new file mode 100644 index 000000000..034f7ecf3 Binary files /dev/null and b/data/nodejs/node-v12.17.0.tar.gz differ diff --git a/data/nodejs/node-v12.3.1.tar.gz b/data/nodejs/node-v12.3.1.tar.gz deleted file mode 100644 index 7c8799095..000000000 Binary files a/data/nodejs/node-v12.3.1.tar.gz and /dev/null differ diff --git a/data/nodejs/nodejs-mobile-filecopy.diff b/data/nodejs/nodejs-mobile-filecopy.diff new file mode 100644 index 000000000..600d96c96 --- /dev/null +++ b/data/nodejs/nodejs-mobile-filecopy.diff @@ -0,0 +1,28 @@ +--- node-v12.17.0/deps/uv/src/unix/fs.c 2020-05-26 06:53:32.000000000 -0500 ++++ node-v12.17.0+iPhone/deps/uv/src/unix/fs.c 2020-05-27 00:54:19.883409601 -0500 +@@ -1102,6 +1102,17 @@ + } + + static ssize_t uv__fs_copyfile(uv_fs_t* req) { ++#if defined(__APPLE__) ++ /* On macOS, use the native copyfile(3). */ ++ copyfile_flags_t flags; ++ ++ flags = COPYFILE_ALL; ++ ++ if (req->flags & UV_FS_COPYFILE_EXCL) ++ flags |= COPYFILE_EXCL; ++ ++ return copyfile(req->path, req->new_path, NULL, flags); ++#else + uv_fs_t fs_req; + uv_file srcfd; + uv_file dstfd; +@@ -1258,6 +1269,7 @@ + + errno = UV__ERR(result); + return -1; ++#endif + } + + static void uv__to_stat(struct stat* src, uv_stat_t* dst) { -- cgit v1.2.3