From 4880102dbb5691cbb34d55eeb3b5f2ff00735c73 Mon Sep 17 00:00:00 2001 From: Raed Rizqie Date: Thu, 19 Jan 2023 08:52:44 +0800 Subject: [PATCH] nodejs: update to 18.13.0 --- ...move-.lib-suffix-on-linked-libraries.patch | 34 --- .../0025-Fix-globalPrefix-on-mingw.patch | 20 ++ .../0103-fix-unqualified-std-cast-call.patch | 11 - ...103-node-gyp-support-mingw-toolchain.patch | 280 ++++++++++++++++++ ...07-v8-disable-system-instrumentation.patch | 9 - mingw-w64-nodejs/PKGBUILD | 31 +- mingw-w64-nodejs/node-gyp | 12 + 7 files changed, 331 insertions(+), 66 deletions(-) create mode 100644 mingw-w64-nodejs/0025-Fix-globalPrefix-on-mingw.patch delete mode 100644 mingw-w64-nodejs/0103-fix-unqualified-std-cast-call.patch create mode 100644 mingw-w64-nodejs/0103-node-gyp-support-mingw-toolchain.patch create mode 100644 mingw-w64-nodejs/node-gyp diff --git a/mingw-w64-nodejs/0005-Remove-.lib-suffix-on-linked-libraries.patch b/mingw-w64-nodejs/0005-Remove-.lib-suffix-on-linked-libraries.patch index a7cd7d30e3..5c180a032a 100644 --- a/mingw-w64-nodejs/0005-Remove-.lib-suffix-on-linked-libraries.patch +++ b/mingw-w64-nodejs/0005-Remove-.lib-suffix-on-linked-libraries.patch @@ -159,39 +159,5 @@ diff --git a/node.gyp b/node.gyp ], }], ], -diff --git a/deps/npm/node_modules/node-gyp/addon.gypi b/deps/npm/node_modules/node-gyp/addon.gypi ---- a/deps/npm/node_modules/node-gyp/addon.gypi -+++ b/deps/npm/node_modules/node-gyp/addon.gypi -@@ -149,18 +149,18 @@ - }] - ], - 'libraries': [ -- '-lkernel32.lib', -- '-luser32.lib', -- '-lgdi32.lib', -- '-lwinspool.lib', -- '-lcomdlg32.lib', -- '-ladvapi32.lib', -- '-lshell32.lib', -- '-lole32.lib', -- '-loleaut32.lib', -- '-luuid.lib', -- '-lodbc32.lib', -- '-lDelayImp.lib', -+ '-lkernel32', -+ '-luser32', -+ '-lgdi32', -+ '-lwinspool', -+ '-lcomdlg32', -+ '-ladvapi32', -+ '-lshell32', -+ '-lole32', -+ '-loleaut32', -+ '-luuid', -+ '-lodbc32', -+ '-ldelayimp', - '-l"<(node_lib_file)"' - ], - 'msvs_disabled_warnings': [ -- 2.17.0.windows.1 diff --git a/mingw-w64-nodejs/0025-Fix-globalPrefix-on-mingw.patch b/mingw-w64-nodejs/0025-Fix-globalPrefix-on-mingw.patch new file mode 100644 index 0000000000..4d37c6a3d2 --- /dev/null +++ b/mingw-w64-nodejs/0025-Fix-globalPrefix-on-mingw.patch @@ -0,0 +1,20 @@ +diff -ur node-v18.13.0-orig/deps/npm/node_modules/@npmcli/config/lib/index.js node-v18.13.0/deps/npm/node_modules/@npmcli/config/lib/index.js +--- node-v18.13.0-orig/deps/npm/node_modules/@npmcli/config/lib/index.js 2023-01-06 06:46:44.000000000 +0800 ++++ node-v18.13.0/deps/npm/node_modules/@npmcli/config/lib/index.js 2023-01-26 18:36:41.757385400 +0800 +@@ -22,6 +22,7 @@ + const chown = promisify(fs.chown) + const unlink = promisify(fs.unlink) + const stat = promisify(fs.stat) ++const win = require('os').type() === 'Windows_NT' + + const hasOwnProperty = (obj, key) => + Object.prototype.hasOwnProperty.call(obj, key) +@@ -347,7 +348,7 @@ + + if (this.env.PREFIX) { + this.globalPrefix = this.env.PREFIX +- } else if (this.platform === 'win32') { ++ } else if (win) { + // c:\node\node.exe --> prefix=c:\node\ + this.globalPrefix = dirname(this.execPath) + } else { diff --git a/mingw-w64-nodejs/0103-fix-unqualified-std-cast-call.patch b/mingw-w64-nodejs/0103-fix-unqualified-std-cast-call.patch deleted file mode 100644 index 21c22f33c3..0000000000 --- a/mingw-w64-nodejs/0103-fix-unqualified-std-cast-call.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- node-v18.12.1-orig/src/node_http2.cc 2022-11-05 00:13:14.000000000 +0800 -+++ node-v18.12.1/src/node_http2.cc 2022-11-15 21:03:20.571885800 +0800 -@@ -644,7 +644,7 @@ - duration, - statistics_); - -- env()->SetImmediate([entry = move(entry)](Environment* env) { -+ env()->SetImmediate([entry = std::move(entry)](Environment* env) { - if (HasHttp2Observer(env)) - entry->Notify(env); - }); diff --git a/mingw-w64-nodejs/0103-node-gyp-support-mingw-toolchain.patch b/mingw-w64-nodejs/0103-node-gyp-support-mingw-toolchain.patch new file mode 100644 index 0000000000..3a309de0cc --- /dev/null +++ b/mingw-w64-nodejs/0103-node-gyp-support-mingw-toolchain.patch @@ -0,0 +1,280 @@ +diff -ur node-v18.13.0-orig/deps/npm/node_modules/node-gyp/addon.gypi node-v18.13.0/deps/npm/node_modules/node-gyp/addon.gypi +--- node-v18.13.0-orig/deps/npm/node_modules/node-gyp/addon.gypi 2023-01-06 06:46:44.000000000 +0800 ++++ node-v18.13.0/deps/npm/node_modules/node-gyp/addon.gypi 2023-01-26 19:00:07.257203100 +0800 +@@ -1,6 +1,6 @@ + { + 'variables' : { +- 'node_engine_include_dir%': 'deps/v8/include', ++ 'node_engine_include_dir%': 'include', + 'node_host_binary%': 'node', + 'node_with_ltcg%': 'true', + }, +@@ -19,11 +19,8 @@ + + 'include_dirs': [ + '<(node_root_dir)/include/node', +- '<(node_root_dir)/src', +- '<(node_root_dir)/deps/openssl/config', +- '<(node_root_dir)/deps/openssl/openssl/include', +- '<(node_root_dir)/deps/uv/include', +- '<(node_root_dir)/deps/zlib', ++ '<(node_root_dir)/include/openssl', ++ '<(node_root_dir)/include/uv', + '<(node_root_dir)/<(node_engine_include_dir)' + ], + 'defines!': [ +@@ -71,7 +68,7 @@ + # that the addon will work regardless of whether the node/iojs binary + # is named node.exe, iojs.exe, or something else. + 'conditions': [ +- [ 'OS=="win"', { ++ [ 'OS=="winmsvs"', { + 'defines': [ 'HOST_BINARY=\"<(node_host_binary)<(EXECUTABLE_SUFFIX)\"', ], + 'sources': [ + '<(node_gyp_dir)/src/win_delay_load_hook.cc', +@@ -148,20 +145,21 @@ + } + }] + ], ++ 'library_dirs': [ '<(node_root_dir)/lib' ], + 'libraries': [ +- '-lkernel32.lib', +- '-luser32.lib', +- '-lgdi32.lib', +- '-lwinspool.lib', +- '-lcomdlg32.lib', +- '-ladvapi32.lib', +- '-lshell32.lib', +- '-lole32.lib', +- '-loleaut32.lib', +- '-luuid.lib', +- '-lodbc32.lib', +- '-lDelayImp.lib', +- '-l"<(node_lib_file)"' ++ '-lkernel32', ++ '-luser32', ++ '-lgdi32', ++ '-lwinspool', ++ '-lcomdlg32', ++ '-ladvapi32', ++ '-lshell32', ++ '-lole32', ++ '-loleaut32', ++ '-luuid', ++ '-lodbc32', ++ '-ldelayimp', ++ '-lnode' + ], + 'msvs_disabled_warnings': [ + # warning C4251: 'node::ObjectWrap::handle_' : class 'v8::Persistent' +diff -ur node-v18.13.0-orig/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/__init__.py node-v18.13.0/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/__init__.py +--- node-v18.13.0-orig/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/__init__.py 2023-01-06 06:46:44.000000000 +0800 ++++ node-v18.13.0/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/__init__.py 2023-01-21 18:10:08.752679400 +0800 +@@ -495,7 +495,7 @@ + # Nothing in the variable, default based on platform. + if sys.platform == "darwin": + options.formats = ["xcode"] +- elif sys.platform in ("win32", "cygwin"): ++ elif sys.platform in ("win32", "cygwin") and not "GCC" in sys.version: + options.formats = ["msvs"] + else: + options.formats = ["make"] +diff -ur node-v18.13.0-orig/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/make.py node-v18.13.0/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/make.py +--- node-v18.13.0-orig/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/make.py 2023-01-06 06:46:44.000000000 +0800 ++++ node-v18.13.0/deps/npm/node_modules/node-gyp/gyp/pylib/gyp/generator/make.py 2023-01-21 18:10:08.768304000 +0800 +@@ -99,6 +99,8 @@ + default_variables.setdefault("OS", operating_system) + if flavor == "aix": + default_variables.setdefault("SHARED_LIB_SUFFIX", ".a") ++ if flavor == "win": ++ default_variables.setdefault("SHARED_LIB_SUFFIX", ".dll") + else: + default_variables.setdefault("SHARED_LIB_SUFFIX", ".so") + default_variables.setdefault("SHARED_LIB_DIR", "$(builddir)/lib.$(TOOLSET)") +@@ -141,6 +143,26 @@ + SPACE_REPLACEMENT = "?" + + ++LINK_COMMANDS_WINMINGW = """\ ++quiet_cmd_alink = AR($(TOOLSET)) $@ ++cmd_alink = rm -f $@ && $(AR.$(TOOLSET)) crs $@ $(filter %.o,$^) ++ ++quiet_cmd_alink_thin = AR($(TOOLSET)) $@ ++cmd_alink_thin = rm -f $@ && $(AR.$(TOOLSET)) crsT $@ $(filter %.o,$^) ++ ++# Due to circular dependencies between libraries :(, we wrap the ++# special "figure out circular dependencies" flags around the entire ++# input list during linking. ++quiet_cmd_link = LINK($(TOOLSET)) $@ ++cmd_link = $(LINK.$(TOOLSET)) -o $@ $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -Wl,--start-group $(LD_INPUTS) $(LIBS) -Wl,--end-group ++ ++quiet_cmd_solink = SOLINK($(TOOLSET)) $@ ++cmd_solink = $(LINK.$(TOOLSET)) -o $@ -shared $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -Wl,--out-implib,$(builddir)/$(@F).a -Wl,--whole-archive $(LD_INPUTS) -Wl,--no-whole-archive $(LIBS) ++ ++quiet_cmd_solink_module = SOLINK_MODULE($(TOOLSET)) $@ ++cmd_solink_module = $(LINK.$(TOOLSET)) -o $@ -shared $(GYP_LDFLAGS) $(LDFLAGS.$(TOOLSET)) -Wl,--out-implib,$(builddir)/$(@F).a -Wl,--start-group $(filter-out FORCE_DO_CMD, $^) -Wl,--end-group $(LIBS) ++""" ++ + LINK_COMMANDS_LINUX = """\ + quiet_cmd_alink = AR($(TOOLSET)) $@ + cmd_alink = rm -f $@ && $(AR.$(TOOLSET)) crs $@ $(filter %.o,$^) +@@ -1480,6 +1502,8 @@ + target_prefix = "lib" + if self.flavor == "aix": + target_ext = ".a" ++ elif self.flavor == "win": ++ target_ext = ".dll" + else: + target_ext = ".so" + elif self.type == "none": +@@ -2341,6 +2365,13 @@ + elif flavor == "openbsd": + copy_archive_arguments = "-pPRf" + header_params.update({"copy_archive_args": copy_archive_arguments}) ++ elif flavor == "win": ++ copy_archive_arguments = "-pPRf" ++ header_params.update( ++ { ++ "link_commands": LINK_COMMANDS_WINMINGW, ++ } ++ ) + elif flavor == "aix": + copy_archive_arguments = "-pPRf" + header_params.update( +diff -ur node-v18.13.0-orig/deps/npm/node_modules/node-gyp/lib/build.js node-v18.13.0/deps/npm/node_modules/node-gyp/lib/build.js +--- node-v18.13.0-orig/deps/npm/node_modules/node-gyp/lib/build.js 2023-01-06 06:46:44.000000000 +0800 ++++ node-v18.13.0/deps/npm/node_modules/node-gyp/lib/build.js 2023-01-26 19:00:23.142429500 +0800 +@@ -5,7 +5,7 @@ + const glob = require('glob') + const log = require('npmlog') + const which = require('which') +-const win = process.platform === 'win32' ++const win = require('os').type() === 'Windows_NT' + + function build (gyp, argv, callback) { + var platformMake = 'make' +@@ -185,7 +185,7 @@ + } + } + +- if (!win) { ++ if (!process.platform === 'win32') { + // Add build-time dependency symlinks (such as Python) to PATH + const buildBinsDir = path.resolve('build', 'node_gyp_bins') + process.env.PATH = `${buildBinsDir}:${process.env.PATH}` +diff -ur node-v18.13.0-orig/deps/npm/node_modules/node-gyp/lib/configure.js node-v18.13.0/deps/npm/node_modules/node-gyp/lib/configure.js +--- node-v18.13.0-orig/deps/npm/node_modules/node-gyp/lib/configure.js 2023-01-06 06:46:44.000000000 +0800 ++++ node-v18.13.0/deps/npm/node_modules/node-gyp/lib/configure.js 2023-01-25 18:49:18.884904700 +0800 +@@ -5,7 +5,7 @@ + const log = require('npmlog') + const os = require('os') + const processRelease = require('./process-release') +-const win = process.platform === 'win32' ++const win = os.type() === 'Windows_NT' + const findNodeDirectory = require('./find-node-directory') + const createConfigGypi = require('./create-config-gypi') + const msgFormat = require('util').format +@@ -87,7 +87,9 @@ + findVisualStudio(release.semver, gyp.opts.msvs_version, + createConfigFile) + } else { +- createPythonSymlink() ++ if (!process.platform === 'win32') { ++ createPythonSymlink() ++ } + createConfigFile() + } + }) +@@ -116,7 +118,7 @@ + if (err) { + return callback(err) + } +- if (process.platform === 'win32') { ++ if (win) { + process.env.GYP_MSVS_VERSION = Math.min(vsInfo.versionYear, 2015) + process.env.GYP_MSVS_OVERRIDE_PATH = vsInfo.path + } +@@ -230,8 +232,8 @@ + var nodeGypDir = path.resolve(__dirname, '..') + + var nodeLibFile = path.join(nodeDir, +- !gyp.opts.nodedir ? '<(target_arch)' : '$(Configuration)', +- release.name + '.lib') ++ 'lib', ++ 'lib' + release.name + '.dll.a') + + argv.push('-I', addonGypi) + argv.push('-I', commonGypi) +diff -ur node-v18.13.0-orig/deps/npm/node_modules/node-gyp/lib/create-config-gypi.js node-v18.13.0/deps/npm/node_modules/node-gyp/lib/create-config-gypi.js +--- node-v18.13.0-orig/deps/npm/node_modules/node-gyp/lib/create-config-gypi.js 2023-01-06 06:46:44.000000000 +0800 ++++ node-v18.13.0/deps/npm/node_modules/node-gyp/lib/create-config-gypi.js 2023-01-26 19:00:47.263254500 +0800 +@@ -3,6 +3,7 @@ + const fs = require('graceful-fs') + const log = require('npmlog') + const path = require('path') ++const win = require('os').type() === 'Windows_NT' + + function parseConfigGypi (config) { + // translated from tools/js2c.py of Node.js +@@ -78,7 +79,7 @@ + // disable -T "thin" static archives by default + variables.standalone_static_library = gyp.opts.thin ? 0 : 1 + +- if (process.platform === 'win32') { ++ if (win) { + defaults.msbuild_toolset = vsInfo.toolset + if (vsInfo.sdk) { + defaults.msvs_windows_target_platform_version = vsInfo.sdk +diff -ur node-v18.13.0-orig/deps/npm/node_modules/node-gyp/lib/find-node-directory.js node-v18.13.0/deps/npm/node_modules/node-gyp/lib/find-node-directory.js +--- node-v18.13.0-orig/deps/npm/node_modules/node-gyp/lib/find-node-directory.js 2023-01-06 06:46:44.000000000 +0800 ++++ node-v18.13.0/deps/npm/node_modules/node-gyp/lib/find-node-directory.js 2023-01-26 19:00:58.077942100 +0800 +@@ -2,6 +2,7 @@ + + const path = require('path') + const log = require('npmlog') ++const win = require('os').type() === 'Windows_NT' + + function findNodeDirectory (scriptLocation, processObj) { + // set dirname and process if not passed in +@@ -31,7 +32,7 @@ + // lib/node_modules/npm/node_modules/node-gyp/lib or + // node_modules/npm/node_modules/node-gyp/lib depending on the + // platform +- if (processObj.platform === 'win32') { ++ if (win) { + nodeRootDir = path.join(npmParentDirectory, '..') + } else { + nodeRootDir = path.join(npmParentDirectory, '../..') +@@ -49,7 +50,7 @@ + // If we are a recently built node, and the directory structure + // is that of a repository. If we are on Windows then we only need + // to go one level up, everything else, two +- if (processObj.platform === 'win32') { ++ if (win) { + nodeRootDir = path.join(nodeDir, '..') + } else { + nodeRootDir = path.join(nodeDir, '../..') +diff -ur node-v18.13.0-orig/deps/npm/node_modules/node-gyp/lib/find-python.js node-v18.13.0/deps/npm/node_modules/node-gyp/lib/find-python.js +--- node-v18.13.0-orig/deps/npm/node_modules/node-gyp/lib/find-python.js 2023-01-06 06:46:44.000000000 +0800 ++++ node-v18.13.0/deps/npm/node_modules/node-gyp/lib/find-python.js 2023-01-26 19:01:09.000324500 +0800 +@@ -4,7 +4,7 @@ + const semver = require('semver') + const cp = require('child_process') + const extend = require('util')._extend // eslint-disable-line +-const win = process.platform === 'win32' ++const win = require('os').type() === 'Windows_NT' + const logWithPrefix = require('./util').logWithPrefix + + const systemDrive = process.env.SystemDrive || 'C:' +diff -ur node-v18.13.0-orig/deps/npm/node_modules/node-gyp/lib/install.js node-v18.13.0/deps/npm/node_modules/node-gyp/lib/install.js +--- node-v18.13.0-orig/deps/npm/node_modules/node-gyp/lib/install.js 2023-01-06 06:46:44.000000000 +0800 ++++ node-v18.13.0/deps/npm/node_modules/node-gyp/lib/install.js 2023-01-21 18:10:08.830803300 +0800 +@@ -11,7 +11,7 @@ + const semver = require('semver') + const fetch = require('make-fetch-happen') + const processRelease = require('./process-release') +-const win = process.platform === 'win32' ++const win = os.type() === 'Windows_NT' + const streamPipeline = util.promisify(stream.pipeline) + + /** diff --git a/mingw-w64-nodejs/0107-v8-disable-system-instrumentation.patch b/mingw-w64-nodejs/0107-v8-disable-system-instrumentation.patch index 5a3b02d5b7..e1ce789303 100644 --- a/mingw-w64-nodejs/0107-v8-disable-system-instrumentation.patch +++ b/mingw-w64-nodejs/0107-v8-disable-system-instrumentation.patch @@ -9,15 +9,6 @@ # Sets the GUID for the ETW provider v8_etw_guid = "" -@@ -969,7 +969,7 @@ - if (v8_enable_swiss_name_dictionary) { - defines += [ "V8_ENABLE_SWISS_NAME_DICTIONARY" ] - } -- if (v8_enable_system_instrumentation) { -+ if (v8_enable_system_instrumentation && (is_msvs || is_mac) { - defines += [ "V8_ENABLE_SYSTEM_INSTRUMENTATION" ] - } - if (v8_etw_guid != "") { @@ -4857,7 +4861,7 @@ } diff --git a/mingw-w64-nodejs/PKGBUILD b/mingw-w64-nodejs/PKGBUILD index c847564e1d..295a0165f6 100644 --- a/mingw-w64-nodejs/PKGBUILD +++ b/mingw-w64-nodejs/PKGBUILD @@ -8,21 +8,21 @@ _realname=nodejs pkgbase=mingw-w64-${_realname} pkgname="${MINGW_PACKAGE_PREFIX}-${_realname}" -pkgver=18.12.1 -pkgrel=4 +pkgver=18.13.0 +pkgrel=1 pkgdesc="An open-source, cross-platform JavaScript runtime environment (mingw-w64)" arch=('any') mingw_arch=('mingw32' 'mingw64' 'ucrt64' 'clang64' 'clang32') url="https://nodejs.org/" license=('spdx:MIT') -makedepends=("${MINGW_PACKAGE_PREFIX}-python" +makedepends=("${MINGW_PACKAGE_PREFIX}-cc" "${MINGW_PACKAGE_PREFIX}-nasm" - "${MINGW_PACKAGE_PREFIX}-cc" "${MINGW_PACKAGE_PREFIX}-autotools") depends=("${MINGW_PACKAGE_PREFIX}-c-ares" "${MINGW_PACKAGE_PREFIX}-icu" "${MINGW_PACKAGE_PREFIX}-libuv" "${MINGW_PACKAGE_PREFIX}-openssl" + "${MINGW_PACKAGE_PREFIX}-python" "${MINGW_PACKAGE_PREFIX}-zlib" "winpty") options=('!emptydirs' '!strip' '!buildflags') @@ -43,15 +43,17 @@ source=("https://nodejs.org/dist/v${pkgver}/node-v${pkgver}.tar.xz" '0022-Disable-MSVC_HACK.patch' '0023-Make-sure-that-__rdtsc-is-declared.patch' '0024-Fix-gyp-mingw.patch' + '0025-Fix-globalPrefix-on-mingw.patch' '0101-node-buildflags-fixes.patch' '0102-set-cxx-standard-to-gnu.patch' - '0103-fix-unqualified-std-cast-call.patch' + '0103-node-gyp-support-mingw-toolchain.patch' '0104-v8-fix-static-assert-implementations.patch' '0105-v8-fix-conflicting-macros.patch' '0106-v8-support-clang-in-mingw-mode.patch' '0107-v8-disable-system-instrumentation.patch' '0108-v8-buildflags-fixes.patch' '0109-v8-builtin-deps-buildflags-fixes.patch' + 'node-gyp' 'node') prepare() { @@ -73,10 +75,11 @@ prepare() { patch -Np1 -i "${srcdir}/0022-Disable-MSVC_HACK.patch" patch -Np1 -i "${srcdir}/0023-Make-sure-that-__rdtsc-is-declared.patch" patch -Np1 -i "${srcdir}/0024-Fix-gyp-mingw.patch" + patch -Np1 -i "${srcdir}/0025-Fix-globalPrefix-on-mingw.patch" patch -Np1 -i "${srcdir}/0101-node-buildflags-fixes.patch" patch -Np1 -i "${srcdir}/0102-set-cxx-standard-to-gnu.patch" - patch -Np1 -i "${srcdir}/0103-fix-unqualified-std-cast-call.patch" + patch -Np1 -i "${srcdir}/0103-node-gyp-support-mingw-toolchain.patch" patch -Np1 -i "${srcdir}/0104-v8-fix-static-assert-implementations.patch" patch -Np1 -i "${srcdir}/0105-v8-fix-conflicting-macros.patch" patch -Np1 -i "${srcdir}/0106-v8-support-clang-in-mingw-mode.patch" @@ -98,6 +101,7 @@ build() { opt_cpu="x86" fi + MSYS2_ARG_CONV_EXCL="--prefix=" \ ./configure \ --prefix="${MINGW_PREFIX}" \ --dest-os=win \ @@ -139,19 +143,20 @@ package() { install -d "${pkgdir}${MINGW_PREFIX}/share/doc/nodejs" cp -r doc/api/{*.html,assets} "${pkgdir}${MINGW_PREFIX}/share/doc/nodejs" - mv -v "${pkgdir}$MINGW_PREFIX/bin/node"{.exe,_exe} + mv -v "${pkgdir}${MINGW_PREFIX}/bin/node"{.exe,_exe} install -Dm755 "${srcdir}/node" "${pkgdir}${MINGW_PREFIX}/bin/node" - mv -v "${pkgdir}$MINGW_PREFIX/bin/node"{_exe,.exe} + mv -v "${pkgdir}${MINGW_PREFIX}/bin/node"{_exe,.exe} + install -Dm755 "${srcdir}/node-gyp" "${pkgdir}${MINGW_PREFIX}/bin/node-gyp" install -Dm755 "${srcdir}/node-v${pkgver}/deps/npm/bin/npm.cmd" "${pkgdir}${MINGW_PREFIX}/bin/npm.cmd" install -Dm644 LICENSE "${pkgdir}${MINGW_PREFIX}/share/licenses/nodejs/LICENSE" } -sha256sums=('4fa406451bc52659a290e52cfdb2162a760bd549da4b8bbebe6a29f296d938df' +sha256sums=('fd4ac562e01d172896e3a959bd59552dbf647331c90d726f8d3471683dd3da68' '61023beecb4e1476c2bb177262a0c7f0847f50a1a09365b290df9e822ca8d881' 'cba59c2a92d75e01f8417da130269d34b1db13995b647a00a03de47ff2ccfe1c' - '94319eb9bdec87a5cf1ccaacabce6071f2f57be555d20ee4feac317988296730' + 'be2a9d695741e70ab2c8ab07fc0ccba5fe24f392cc1fb3658f91d54bb58c1ba3' '5797d5679b5515e55bc23d6d020eabffc588b3aa640350bb3b729dd5a23eb69b' 'ba7a4117f2224569766a7aba7dde1e4601e06ad1f1fc47916805e554f4d87385' '1cb8d957d299532499b72559dd78a71fe9ec5b1def789d85969b315db5e6b68f' @@ -165,13 +170,15 @@ sha256sums=('4fa406451bc52659a290e52cfdb2162a760bd549da4b8bbebe6a29f296d938df' '061eccf99a98396765fbf84d7f907ad6c72b3012bf6802425afeff242c9a3f9f' '0fc13940d798add4949a1bff0d7f14a8bdeb231d2cec5cd2a8df29aba6ac69e7' '595ff6ff3103b0998ece8b9d6d5e2c8ff7156a91c041239d46842d2694ae8e9d' + 'eed2d7503b4d33d830c9966ce87bc8b51781d0c95a674f88b41bb01724598fac' '34963cb754d38a67a0532ebb61f25001e24005ceab09f5002be7ea2f89fea257' 'f1f0f90b93b9ca19457ac2639e224ce6f1c5dd04b5ada16b2c1694e89e7706a8' - '2043f12dac52ad7cc4b4dd0dd94244fa324d6822d7475466aaf79948a47982e8' + '97bcfd6f6bc4aae81efeb200da96907a071043732d91e004d91609f19db3e297' 'f945c699e82805cb0cf37898c9cc8b91f0702290700b2c8ecba1ba52a5c8eb9f' '5a2b8525a434d7658df62751cd493793d7e5cc5bcf9a939431be931e55508898' 'f3ae2f1e0bf844d1131e195ad0aa266994271373795c83cca26b58a5e6d84ce7' - '7ceb86ffe552f2e3b8868da4eda49f3f189614c55b9becbc2f31b719dd9b2f05' + 'cef226046703de2170d2490d3473571b212db747e574111a27fa536f791a88f2' '1807c908fd57455b6a5ff3f98a69354cc55e69a9debb52a7d49c4a14aed3e358' '6df6d1a0a9ee09c896f6d7a9b5cbb93f9b538fbc493af1d0dc2d67ee6986f12b' + '401e87951824d2ce49c5292fd7af15507cf6577e7b52e867a5040ef903fe4c76' '284251ff443506cd61530a026afb421d0084e4ad25c037bcfe3a045246d729a2') diff --git a/mingw-w64-nodejs/node-gyp b/mingw-w64-nodejs/node-gyp new file mode 100644 index 0000000000..c81666013e --- /dev/null +++ b/mingw-w64-nodejs/node-gyp @@ -0,0 +1,12 @@ +#!/bin/sh +basedir=$(dirname "$(echo "$0" | sed -e 's,\\,/,g')") + +case `uname` in + *CYGWIN*|*MINGW*|*MSYS*) basedir=`cygpath -w "$basedir"`;; +esac + +if [ -x "$basedir/node" ]; then + exec "$basedir/node" "$basedir/../lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "$@" +else + exec node "$basedir/../lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "$@" +fi