On Mon, Feb 17 2020 at 10:40 +0100, Michael Olbrich <m.olbr...@pengutronix.de> 
wrote:
> On Tue, Feb 04, 2020 at 08:53:57AM +0100, Ulrich Ölmann wrote:
>> From: Björn Esser <b.es...@pengutronix.de>
>> 
>> We also need to build a host-nodejs package first, as there
>> are some tools needed to be executable on the host system
>> during the intermediate cross-build process.
>> 
>> This package drops support for NPM, as we will be managing
>> Node.js packages with Yarn, which will be implemented in the
>> following commits.
>> 
>> The patches that are shipped along with this version of the
>> package have been taken from the SRPM of the Node.js-package
>> in Fedora. See:
>> 
>> https://src.fedoraproject.org/rpms/nodejs/c/f0e2a1ed4615?branch=master
>> 
>> Signed-off-by: Björn Esser <b.es...@pengutronix.de>
>> [uol: adjusted commit message, dropped CREDIT lines, removed shell usage &
>> inserted line break in build command]
>> Signed-off-by: Ulrich Ölmann <u.oelm...@pengutronix.de>
>
> /usr/bin/node has an rpath that does not exist: /usr/bin/lib.target

Added a corresponding patch in v6 of the patch series.

Best regards
Ulrich

> Michael
>
>> ---
>> v1 --> v2: fix configure flags for host-nodejs
>> v2 --> v3: add missing patches, remove obsolete patches
>> Range-diff of v5 against v4:
>> 1:  e08d21cc0be1 ! 1:  440fed72eaf9 nodejs: version bump 6.9.5 -> 12.14.1 LTS
>>     @@ Commit message
>>          
>> https://src.fedoraproject.org/rpms/nodejs/c/f0e2a1ed4615?branch=master
>> 
>>          Signed-off-by: Björn Esser <b.es...@pengutronix.de>
>>     +    [uol: adjusted commit message, dropped CREDIT lines, removed shell 
>> usage &
>>     +    inserted line break in build command]
>>     +    Signed-off-by: Ulrich Ölmann <u.oelm...@pengutronix.de>
>> 
>>       ## patches/node-v12.14.1/0001-Disable-running-gyp-on-shared-deps.patch 
>> (new) ##
>>      @@
>>     @@ rules/host-nodejs.make
>>       #
>>       # Copyright (C) 2015 by Michael Grzeschik <m...@pengutronix.de>
>>      +# Copyright (C) 2019 by Björn Esser <b...@pengutronix.de>
>>     -+#
>>     -+# See CREDITS for details about who has contributed to this project.
>>       #
>>       # For further information about the PTXdist project and license 
>> conditions
>>       # see the README file.
>>     @@ rules/nodejs.make
>>       #
>>       # Copyright (C) 2015 by Michael Grzeschik <m...@pengutronix.de>
>>      +# Copyright (C) 2019 by Björn Esser <b...@pengutronix.de>
>>     -+#
>>     -+# See CREDITS for details about who has contributed to this project.
>>       #
>>       # For further information about the PTXdist project and license 
>> conditions
>>       # see the README file.
>>     @@ rules/nodejs.make: NODEJS_ARM_FLOAT_ABI = $(shell ptxd_cross_cc_v | 
>> sed -n "s/CO
>>      +#      # to the pre-built host tool binaries, which are different for
>>      +#      # each individual checkout of a BSP.  -_-
>>      +       $(foreach f,$(NODEJS_HOST_TOOLS), \
>>     -+               $(shell sed -i -e 
>> "s#<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)$(f)<(EXECUTABLE_SUFFIX)#$(PTXDIST_SYSROOT_HOST)/bin/$(f)#"
>>  $(NODEJS_DIR)/node.gyp $(NODEJS_DIR)/tools/v8_gypfiles/v8.gyp) \
>>     -+       )
>>     ++               sed -i -e 
>> "s#<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)$(f)<(EXECUTABLE_SUFFIX)#$(PTXDIST_SYSROOT_HOST)/bin/$(f)#"
>>  \
>>     ++                       $(NODEJS_DIR)/node.gyp 
>> $(NODEJS_DIR)/tools/v8_gypfiles/v8.gyp $(ptx/nl))
>>      +
>>      +       @$(call world/prepare, NODEJS)
>>      +
>> 
>>  ...1-Disable-running-gyp-on-shared-deps.patch |  25 ++++
>>  ...Install-both-binaries-and-use-libdir.patch |  83 ++++++++++++
>>  patches/node-v12.14.1/series                  |   5 +
>>  ...build-from-source-option-to-npmunbox.patch |  31 -----
>>  patches/npmbox-2.6.1/series                   |   4 -
>>  rules/host-nodejs.in                          |   2 +
>>  rules/host-nodejs.make                        |  39 +++---
>>  rules/nodejs.in                               |  54 ++------
>>  rules/nodejs.make                             | 119 ++++++------------
>>  9 files changed, 185 insertions(+), 177 deletions(-)
>>  create mode 100644 
>> patches/node-v12.14.1/0001-Disable-running-gyp-on-shared-deps.patch
>>  create mode 100644 
>> patches/node-v12.14.1/0002-Install-both-binaries-and-use-libdir.patch
>>  create mode 100644 patches/node-v12.14.1/series
>>  delete mode 100644 
>> patches/npmbox-2.6.1/0001-npmbox-add-build-from-source-option-to-npmunbox.patch
>>  delete mode 100644 patches/npmbox-2.6.1/series
>> 
>> diff --git 
>> a/patches/node-v12.14.1/0001-Disable-running-gyp-on-shared-deps.patch 
>> b/patches/node-v12.14.1/0001-Disable-running-gyp-on-shared-deps.patch
>> new file mode 100644
>> index 000000000000..58d46a8f4167
>> --- /dev/null
>> +++ b/patches/node-v12.14.1/0001-Disable-running-gyp-on-shared-deps.patch
>> @@ -0,0 +1,25 @@
>> +From: Zuzana Svetlikova <zsvet...@redhat.com>
>> +Date: Thu, 27 Apr 2017 14:25:42 +0200
>> +Subject: [PATCH] Disable running gyp on shared deps
>> +
>> +---
>> + Makefile | 6 +++---
>> + 1 file changed, 3 insertions(+), 3 deletions(-)
>> +
>> +diff --git a/Makefile b/Makefile
>> +index 56f53582d1f4..2fb80e742637 100644
>> +--- a/Makefile
>> ++++ b/Makefile
>> +@@ -141,9 +141,9 @@ test-code-cache: with-code-cache
>> +    echo "'test-code-cache' target is a noop"
>> + 
>> + out/Makefile: config.gypi common.gypi node.gyp \
>> +-   deps/uv/uv.gyp deps/http_parser/http_parser.gyp deps/zlib/zlib.gyp \
>> +-   tools/v8_gypfiles/toolchain.gypi tools/v8_gypfiles/features.gypi \
>> +-   tools/v8_gypfiles/inspector.gypi tools/v8_gypfiles/v8.gyp
>> ++  deps/http_parser/http_parser.gyp \
>> ++  tools/v8_gypfiles/toolchain.gypi tools/v8_gypfiles/features.gypi \
>> ++  tools/v8_gypfiles/inspector.gypi tools/v8_gypfiles/v8.gyp
>> +    $(PYTHON) tools/gyp_node.py -f make
>> + 
>> + # node_version.h is listed because the N-API version is taken from there
>> diff --git 
>> a/patches/node-v12.14.1/0002-Install-both-binaries-and-use-libdir.patch 
>> b/patches/node-v12.14.1/0002-Install-both-binaries-and-use-libdir.patch
>> new file mode 100644
>> index 000000000000..38c3c96503f1
>> --- /dev/null
>> +++ b/patches/node-v12.14.1/0002-Install-both-binaries-and-use-libdir.patch
>> @@ -0,0 +1,83 @@
>> +From: Elliott Sales de Andrade <quantum.anal...@gmail.com>
>> +Date: Tue, 19 Mar 2019 23:22:40 -0400
>> +Subject: [PATCH] Install both binaries and use libdir.
>> +
>> +This allows us to build with a shared library for other users while
>> +still providing the normal executable.
>> +
>> +Signed-off-by: Elliott Sales de Andrade <quantum.anal...@gmail.com>
>> +---
>> + configure.py     |  7 +++++++
>> + tools/install.py | 31 ++++++++++++++-----------------
>> + 2 files changed, 21 insertions(+), 17 deletions(-)
>> +
>> +diff --git a/configure.py b/configure.py
>> +index 20cce214dbb1..e2d78a2a51ef 100755
>> +--- a/configure.py
>> ++++ b/configure.py
>> +@@ -559,6 +559,12 @@ parser.add_option('--shared',
>> +     help='compile shared library for embedding node in another project. ' +
>> +          '(This mode is not officially supported for regular 
>> applications)')
>> + 
>> ++parser.add_option('--libdir',
>> ++    action='store',
>> ++    dest='libdir',
>> ++    default='lib',
>> ++    help='a directory to install the shared library into')
>> ++
>> + parser.add_option('--without-v8-platform',
>> +     action='store_true',
>> +     dest='without_v8_platform',
>> +@@ -1103,6 +1109,7 @@ def configure_node(o):
>> +   if o['variables']['want_separate_host_toolset'] == 0:
>> +     o['variables']['node_code_cache'] = 'yes' # For testing
>> +   o['variables']['node_shared'] = b(options.shared)
>> ++  o['variables']['libdir'] = options.libdir
>> +   node_module_version = getmoduleversion.get_version()
>> + 
>> +   if sys.platform == 'darwin':
>> +diff --git a/tools/install.py b/tools/install.py
>> +index 655802980a6e..fe4723bf1501 100755
>> +--- a/tools/install.py
>> ++++ b/tools/install.py
>> +@@ -121,26 +121,23 @@ def subdir_files(path, dest, action):
>> + 
>> + def files(action):
>> +   is_windows = sys.platform == 'win32'
>> +-  output_file = 'node'
>> +   output_prefix = 'out/Release/'
>> ++  output_libprefix = output_prefix
>> + 
>> +-  if 'false' == variables.get('node_shared'):
>> +-    if is_windows:
>> +-      output_file += '.exe'
>> ++  if is_windows:
>> ++    output_bin = 'node.exe'
>> ++    output_lib = 'node.dll'
>> +   else:
>> +-    if is_windows:
>> +-      output_file += '.dll'
>> +-    else:
>> +-      output_file = 'lib' + output_file + '.' + 
>> variables.get('shlib_suffix')
>> +-      # GYP will output to lib.target except on OS X, this is hardcoded
>> +-      # in its source - see the _InstallableTargetInstallPath function.
>> +-      if sys.platform != 'darwin':
>> +-        output_prefix += 'lib.target/'
>> +-
>> +-  if 'false' == variables.get('node_shared'):
>> +-    action([output_prefix + output_file], 'bin/' + output_file)
>> +-  else:
>> +-    action([output_prefix + output_file], 'lib/' + output_file)
>> ++    output_bin = 'node'
>> ++    output_lib = 'libnode.' + variables.get('shlib_suffix')
>> ++    # GYP will output to lib.target except on OS X, this is hardcoded
>> ++    # in its source - see the _InstallableTargetInstallPath function.
>> ++    if sys.platform != 'darwin':
>> ++      output_libprefix += 'lib.target/'
>> ++
>> ++  action([output_prefix + output_bin], 'bin/' + output_bin)
>> ++  if 'true' == variables.get('node_shared'):
>> ++    action([output_libprefix + output_lib], variables.get('libdir') + '/' 
>> + output_lib)
>> + 
>> +   if 'true' == variables.get('node_use_dtrace'):
>> +     action(['out/Release/node.d'], 'lib/dtrace/node.d')
>> diff --git a/patches/node-v12.14.1/series b/patches/node-v12.14.1/series
>> new file mode 100644
>> index 000000000000..f04c4243f9ad
>> --- /dev/null
>> +++ b/patches/node-v12.14.1/series
>> @@ -0,0 +1,5 @@
>> +# generated by git-ptx-patches
>> +#tag:base --start-number 1
>> +0001-Disable-running-gyp-on-shared-deps.patch
>> +0002-Install-both-binaries-and-use-libdir.patch
>> +# b42ea3192f53366dd53d306dcc1bec97  - git-ptx-patches magic
>> diff --git 
>> a/patches/npmbox-2.6.1/0001-npmbox-add-build-from-source-option-to-npmunbox.patch
>>  
>> b/patches/npmbox-2.6.1/0001-npmbox-add-build-from-source-option-to-npmunbox.patch
>> deleted file mode 100644
>> index 1e34b0dd3eba..000000000000
>> --- 
>> a/patches/npmbox-2.6.1/0001-npmbox-add-build-from-source-option-to-npmunbox.patch
>> +++ /dev/null
>> @@ -1,31 +0,0 @@
>> -From: Michael Grzeschik <m.grzesc...@pengutronix.de>
>> -Date: Wed, 22 Jul 2015 18:18:59 +0200
>> -Subject: [PATCH] npmbox: add build from source option to npmunbox
>> -
>> -Signed-off-by: Michael Grzeschik <m.grzesc...@pengutronix.de>
>> ----
>> - lib/node_modules/npmbox/npmunbox.js | 4 +++-
>> - 1 file changed, 3 insertions(+), 1 deletion(-)
>> -
>> -diff --git a/lib/node_modules/npmbox/npmunbox.js 
>> b/lib/node_modules/npmbox/npmunbox.js
>> -index 66d6ef3..1cdc375 100644
>> ---- a/lib/node_modules/npmbox/npmunbox.js
>> -+++ b/lib/node_modules/npmbox/npmunbox.js
>> -@@ -43,6 +43,7 @@ if (args.length<1 || argv.help) {
>> -    console.log("  -O, -save-optional   npm --save-optional swtich.");
>> -    console.log("  -B, -save-bundle     npm --save-bundle swtich.");
>> -    console.log("  -E, -save-exact      npm --save-exact swtich.");
>> -+   console.log("  -b, -build-from-source      npm --build-from-source 
>> swtich.");
>> -    console.log("");
>> -    process.exit(0);
>> - }
>> -@@ -55,7 +56,8 @@ var options = {
>> -    "save-dev": argv.D || argv["save-dev"] || false,
>> -    "save-optional": argv.O || argv["save-optional"] || false,
>> -    "save-bundle": argv.B || argv["save-bundle"] || false,
>> --   "save-exact": argv.E || argv["save-exact"] || false
>> -+   "save-exact": argv.E || argv["save-exact"] || false,
>> -+   "build-from-source": argv.b || argv["build-from-source"] || false
>> - };
>> - if (argv.C || argv.prefix) options.prefix = argv.C || argv.prefix;
>> - 
>> diff --git a/patches/npmbox-2.6.1/series b/patches/npmbox-2.6.1/series
>> deleted file mode 100644
>> index 0e8cfa98b0d9..000000000000
>> --- a/patches/npmbox-2.6.1/series
>> +++ /dev/null
>> @@ -1,4 +0,0 @@
>> -# generated by git-ptx-patches
>> -#tag:base --start-number 1
>> -0001-npmbox-add-build-from-source-option-to-npmunbox.patch
>> -# 1fc845f15dff1b0b44df5cf3183e8d63  - git-ptx-patches magic
>> diff --git a/rules/host-nodejs.in b/rules/host-nodejs.in
>> index 6ea0dd519c96..527e7d427bee 100644
>> --- a/rules/host-nodejs.in
>> +++ b/rules/host-nodejs.in
>> @@ -3,4 +3,6 @@
>>  config HOST_NODEJS
>>      tristate
>>      default y if ALLYES
>> +    select HOST_C_ARES
>>      select HOST_OPENSSL
>> +    select HOST_ZLIB
>> diff --git a/rules/host-nodejs.make b/rules/host-nodejs.make
>> index 432cf930c714..c24ee8572468 100644
>> --- a/rules/host-nodejs.make
>> +++ b/rules/host-nodejs.make
>> @@ -1,6 +1,7 @@
>>  # -*-makefile-*-
>>  #
>>  # Copyright (C) 2015 by Michael Grzeschik <m...@pengutronix.de>
>> +# Copyright (C) 2019 by Björn Esser <b...@pengutronix.de>
>>  #
>>  # For further information about the PTXdist project and license conditions
>>  # see the README file.
>> @@ -11,32 +12,27 @@
>>  #
>>  HOST_PACKAGES-$(PTXCONF_HOST_NODEJS) += host-nodejs
>>  
>> -#
>> -# Paths and names
>> -#
>> -HOST_NODEJS_NPMBOX_VERSION  := 2.6.1
>> -HOST_NODEJS_NPMBOX_MD5              := 2779b99e3427cd49bbf28a236d871028
>> -HOST_NODEJS_NPMBOX          := npmbox-$(HOST_NODEJS_NPMBOX_VERSION)
>> -HOST_NODEJS_NPMBOX_SUFFIX   := tar.bz2
>> -HOST_NODEJS_NPMBOX_URL              := 
>> http://www.pengutronix.de/software/ptxdist/temporary-src/$(HOST_NODEJS_NPMBOX).$(HOST_NODEJS_NPMBOX_SUFFIX)
>> -HOST_NODEJS_NPMBOX_SOURCE   := 
>> $(SRCDIR)/$(HOST_NODEJS_NPMBOX).$(HOST_NODEJS_NPMBOX_SUFFIX)
>> -$(HOST_NODEJS_NPMBOX_SOURCE)        := HOST_NODEJS_NPMBOX
>> -HOST_NODEJS_NPMBOX_DIR              = $(HOST_NODEJS_PKGDIR)
>> -HOST_NODEJS_NPMBOX_STRIP_LEVEL      := 0
>> -
>> -HOST_NODEJS_SOURCES         += $(HOST_NODEJS_NPMBOX_SOURCE)
>> +# Always run the preprocessor locally.
>> +HOST_NODEJS_COMPILE_ENV     := \
>> +    ICECC_REMOTE_CPP=0
>>  
>>  # 
>> ----------------------------------------------------------------------------
>>  # Prepare
>>  # 
>> ----------------------------------------------------------------------------
>>  
>> -HOST_NODEJS_CONF_TOOL := autoconf
>> -HOST_NODEJS_CONF_OPT := \
>> +HOST_NODEJS_CONF_TOOL       := autoconf
>> +HOST_NODEJS_CONF_OPT        := \
>>      $(HOST_AUTOCONF) \
>>      --prefix=/ \
>> +    --no-cross-compiling \
>>      --dest-os=linux \
>> +    --without-dtrace \
>> +    --without-etw \
>> +    --without-npm \
>> +    --shared \
>>      --shared-openssl \
>>      --shared-zlib \
>> +    --shared-cares \
>>      --with-intl=none \
>>      --without-snapshot
>>  
>> @@ -47,10 +43,13 @@ HOST_NODEJS_CONF_OPT := \
>>  $(STATEDIR)/host-nodejs.install:
>>      @$(call targetinfo)
>>      @$(call install, HOST_NODEJS)
>> -    @sed "1s^.*^#\!/usr/bin/env node^g" \
>> -            -i $(HOST_NODEJS_PKGDIR)/lib/node_modules/npm/bin/npm-cli.js
>> -    @$(call extract, HOST_NODEJS_NPMBOX)
>> -    @$(call world/patchin, HOST_NODEJS_NPMBOX)
>> +
>> +#   # Needed to cross-compile for target.
>> +    @install -pm 0755 
>> $(HOST_NODEJS_DIR)/out/Release/bytecode_builtins_list_generator 
>> $(HOST_NODEJS_PKGDIR)/bin/
>> +    @install -pm 0755 $(HOST_NODEJS_DIR)/out/Release/mkcodecache 
>> $(HOST_NODEJS_PKGDIR)/bin/
>> +    @install -pm 0755 $(HOST_NODEJS_DIR)/out/Release/node_mksnapshot 
>> $(HOST_NODEJS_PKGDIR)/bin/
>> +    @install -pm 0755 $(HOST_NODEJS_DIR)/out/Release/torque 
>> $(HOST_NODEJS_PKGDIR)/bin/
>> +
>>      @$(call touch)
>>  
>>  # vim: syntax=make
>> diff --git a/rules/nodejs.in b/rules/nodejs.in
>> index e4ac11568bcc..6d23f94ef8b7 100644
>> --- a/rules/nodejs.in
>> +++ b/rules/nodejs.in
>> @@ -1,48 +1,20 @@
>> -## SECTION=staging
>> -## old section:
>> -### SECTION=bytecode_engines
>> +## SECTION=bytecode_engines
>>  
>>  menuconfig NODEJS
>>      tristate
>> -    prompt "nodejs                        "
>> +    prompt "Node.js                       "
>>      select HOST_NODEJS
>> +    select C_ARES
>> +    select LIBUV
>>      select OPENSSL
>>      select ZLIB
>>      help
>> -      evented I/O for V8 javascript
>> -
>> -      Node.js is a platform built on Chrome's JavaScript runtime
>> -      for easily building fast, scalable network
>> -      applications. Node.js uses an event-driven, non-blocking I/O
>> -      model that makes it lightweight and efficient, perfect for
>> -      data-intensive real-time applications that run across
>> -      distributed devices.
>> -
>> -      STAGING: remove in ptxdist-2020.06.0
>> -      Old version that need to be updated. Fails to build with gcc >= 7.x.
>> -
>> -
>> -if NODEJS
>> -
>> -config NODEJS_NPM
>> -    bool
>> -    prompt "install npm on target"
>> -
>> -config NODEJS_MODULE_LIST
>> -    string
>> -    prompt "install nodejs packages"
>> -    help
>> -      A list of Node.js packages including version (e.g. express@4.13.0).
>> -      'ptxdist make nodejs-get' will download the packages and create a
>> -      npmbox file for each package. Note: The packages are stored in
>> -      local_src/ and should be part of the BSP. Downloading a package
>> -      again may result in different content.
>> -
>> -config NODEJS_MODULE_MD5
>> -    string
>> -    prompt "nodejs packages md5 sums"
>> -    help
>> -      A md5 sum for each npmbox file of the packages listed in
>> -      NODEJS_MODULE_LIST.
>> -
>> -endif
>> +      Node.js is an open-source, cross-platform, JavaScript runtime
>> +      environment that executes JavaScript code outside of a browser.
>> +      Node.js lets developers use JavaScript to write command line
>> +      tools and for server-side scripting—running scripts server-side
>> +      to produce dynamic web page content before the page is sent to
>> +      the user's web browser. Consequently, Node.js represents a
>> +      "JavaScript everywhere" paradigm, unifying web-application
>> +      development around a single programming language, rather than
>> +      different languages for server- and client-side scripts.
>> diff --git a/rules/nodejs.make b/rules/nodejs.make
>> index 03098b18080c..a9433bd0687a 100644
>> --- a/rules/nodejs.make
>> +++ b/rules/nodejs.make
>> @@ -1,6 +1,7 @@
>>  # -*-makefile-*-
>>  #
>>  # Copyright (C) 2015 by Michael Grzeschik <m...@pengutronix.de>
>> +# Copyright (C) 2019 by Björn Esser <b...@pengutronix.de>
>>  #
>>  # For further information about the PTXdist project and license conditions
>>  # see the README file.
>> @@ -16,19 +17,24 @@ endif
>>  #
>>  # Paths and names
>>  #
>> -NODEJS_VERSION      := v6.9.5
>> -NODEJS_MD5  := a2a820b797fb69ffb259b479c7f5df32
>> -NODEJS              := node-$(NODEJS_VERSION)
>> -NODEJS_SUFFIX       := tar.gz
>> -NODEJS_URL  := 
>> http://nodejs.org/dist/$(NODEJS_VERSION)/$(NODEJS).$(NODEJS_SUFFIX)
>> -NODEJS_SOURCE       := $(SRCDIR)/$(NODEJS).$(NODEJS_SUFFIX)
>> -NODEJS_DIR  := $(BUILDDIR)/$(NODEJS)
>> -NODEJS_LICENSE      := unknown
>> -
>> -NODEJS_SRCDIR               := $(PTXDIST_WORKSPACE)/local_src
>> -NODEJS_MODULE_LIST  := $(call remove_quotes, $(PTXCONF_NODEJS_MODULE_LIST))
>> -NODEJS_NPMBOXES             := $(foreach module,$(NODEJS_MODULE_LIST), \
>> -    $(addprefix $(NODEJS_SRCDIR)/,$(addsuffix .npmbox,$(module))))
>> +NODEJS_VERSION              := v12.14.1
>> +NODEJS_MD5          := 1c78a75f5c95321f533ecccca695e814
>> +NODEJS                      := node-$(NODEJS_VERSION)
>> +NODEJS_SUFFIX               := tar.xz
>> +NODEJS_URL          := 
>> http://nodejs.org/dist/$(NODEJS_VERSION)/$(NODEJS).$(NODEJS_SUFFIX)
>> +NODEJS_SOURCE               := $(SRCDIR)/$(NODEJS).$(NODEJS_SUFFIX)
>> +NODEJS_DIR          := $(BUILDDIR)/$(NODEJS)
>> +NODEJS_LICENSE              := MIT
>> +NODEJS_LICENSE_FILES        := \
>> +        file://LICENSE;md5=be4d5107c64dc3d7c57e3797e1a0674b
>> +
>> +NODEJS_HOST_TOOLS   := \
>> +    bytecode_builtins_list_generator \
>> +    gen-regexp-special-case \
>> +    mkcodecache \
>> +    mksnapshot \
>> +    node_mksnapshot \
>> +    torque
>>  
>>  node/env = \
>>      $(CROSS_ENV) \
>> @@ -39,47 +45,6 @@ node/env = \
>>      npm_config_nodedir=$(NODEJS_DIR) \
>>      $(1)
>>  
>> -# remove version number from package string
>> -define rmversion
>> -$(shell echo $(1) | sed 's-\<\([^ @]*\)@[^ @]*\>-\1-g')
>> -endef
>> -
>> -# 
>> ----------------------------------------------------------------------------
>> -# Get
>> -# 
>> ----------------------------------------------------------------------------
>> -
>> -nodejs-get: $(NODEJS_NPMBOXES)
>> -PHONY += nodejs-get
>> -
>> -$(NODEJS_SRCDIR)/%.npmbox:| $(STATEDIR)/host-nodejs.install.post
>> -    @$(call targetinfo)
>> -    mkdir -p $(NODEJS_SRCDIR)
>> -    cd $(NODEJS_SRCDIR) && \
>> -            $(call node/env, npmbox $(*) --verbose)
>> -
>> -# Map package sources and md5sums for world/check_src
>> -NODEJS_MODULE_MD5   := $(call remove_quotes, $(PTXCONF_NODEJS_MODULE_MD5))
>> -define def_mod
>> -$(call rmversion,$(1))_SOURCE       := $(addprefix 
>> $(NODEJS_SRCDIR)/,$(addsuffix .npmbox,$(1)))
>> -$(call rmversion,$(1))_MD5  := $(firstword $(NODEJS_MODULE_MD5))
>> -NODEJS_MODULE_MD5 := $(filter-out $(firstword 
>> $(NODEJS_MODULE_MD5)),$(NODEJS_MODULE_MD5))
>> -endef
>> -$(foreach module,$(NODEJS_MODULE_LIST),$(eval $(call def_mod,$(module))))
>> -
>> -$(STATEDIR)/nodejs.get:
>> -    @$(call targetinfo)
>> -    @$(call world/get, NODEJS)
>> -    @$(call world/check_src, NODEJS)
>> -    @$(foreach npmbox,$(NODEJS_NPMBOXES), \
>> -            if [ ! -e $(npmbox) ]; then \
>> -                    echo "NodeJS modules must be downloaded with 'ptxdist 
>> make nodejs-get'"; \
>> -                    echo ; \
>> -                    exit 1; \
>> -            fi;)
>> -    @$(foreach module,$(NODEJS_MODULE_LIST), \
>> -            $(call world/check_src, $(call rmversion,$(module)))$(ptx/nl))
>> -    @$(call touch)
>> -
>>  # 
>> ----------------------------------------------------------------------------
>>  # Prepare
>>  # 
>> ----------------------------------------------------------------------------
>> @@ -99,33 +64,37 @@ NODEJS_ARM_FLOAT_ABI = $(shell ptxd_cross_cc_v | sed -n 
>> "s/COLLECT_GCC_OPTIONS=.
>>  NODEJS_ARM_FPU = $(shell ptxd_cross_cc_v | sed -n 
>> "s/COLLECT_GCC_OPTIONS=.*'-mfpu=\([^']*\)'.*/\1/p" | tail -n1)
>>  endif
>>  
>> -NODEJS_CONF_TOOL := autoconf
>> -# Use '=' to delay $(shell ...) calls until this is needed
>> -NODEJS_CONF_OPT = \
>> +NODEJS_CONF_OPT := \
>>      --prefix=/usr \
>>      --dest-cpu=$(NODEJS_ARCH) \
>> +    --no-cross-compiling \
>>      --dest-os=linux \
>>      $(call 
>> ptx/ifdef,PTXCONF_ARCH_ARM,--with-arm-float-abi=$(NODEJS_ARM_FLOAT_ABI)) \
>>      $(call ptx/ifdef,PTXCONF_ARCH_ARM,--with-arm-fpu=$(NODEJS_ARM_FPU)) \
>>      --without-dtrace \
>> -    $(call ptx/ifdef,PTXCONF_NODEJS_NPM,,--without-npm) \
>> +    --without-etw \
>> +    --without-npm \
>> +    --shared \
>> +    --shared-libuv \
>>      --shared-openssl \
>>      --shared-zlib \
>> +    --shared-cares \
>>      --with-intl=none \
>>      --without-snapshot
>>  
>> -# 
>> ----------------------------------------------------------------------------
>> -# Install
>> -# 
>> ----------------------------------------------------------------------------
>> -
>> -$(STATEDIR)/nodejs.install:
>> +$(STATEDIR)/nodejs.prepare:
>>      @$(call targetinfo)
>> -    @$(call install, NODEJS)
>> -    @$(foreach npmbox, $(NODEJS_NPMBOXES), \
>> -            cd $(NODEJS_PKGDIR)/usr/lib/ && \
>> -            $(call node/env, npmunbox -build-from-source 
>> $(npmbox))$(ptx/nl))
>> -    @$(call touch)
>>  
>> +#   # Using a patch here isn't enough, as we need absolute paths
>> +#   # to the pre-built host tool binaries, which are different for
>> +#   # each individual checkout of a BSP.  -_-
>> +    $(foreach f,$(NODEJS_HOST_TOOLS), \
>> +            sed -i -e 
>> "s#<(PRODUCT_DIR)/<(EXECUTABLE_PREFIX)$(f)<(EXECUTABLE_SUFFIX)#$(PTXDIST_SYSROOT_HOST)/bin/$(f)#"
>>  \
>> +                    $(NODEJS_DIR)/node.gyp 
>> $(NODEJS_DIR)/tools/v8_gypfiles/v8.gyp $(ptx/nl))
>> +
>> +    @$(call world/prepare, NODEJS)
>> +
>> +    @$(call touch)
>>  
>>  # 
>> ----------------------------------------------------------------------------
>>  # Target-Install
>> @@ -141,23 +110,11 @@ $(STATEDIR)/nodejs.targetinstall:
>>      @$(call install_fixup, nodejs,DESCRIPTION,missing)
>>  
>>      @$(call install_copy, nodejs, 0, 0, 0755, -, /usr/bin/node)
>> +    @$(call install_lib, nodejs, 0, 0, 0644, libnode)
>>  
>>  #   # the place node searches for packages
>>      @$(call install_link, nodejs, node_modules, /usr/lib/node)
>>  
>> -ifdef PTXCONF_NODEJS_NPM
>> -    @$(call install_link, nodejs, ../lib/node_modules/npm/bin/npm-cli.js, 
>> /usr/bin/npm)
>> -    @$(call install_tree, nodejs, 0, 0, -, /usr/lib/node_modules/npm/lib/)
>> -    @$(call install_tree, nodejs, 0, 0, -, /usr/lib/node_modules/npm/bin)
>> -    @$(call install_tree, nodejs, 0, 0, -, 
>> /usr/lib/node_modules/npm/scripts)
>> -    @$(call install_tree, nodejs, 0, 0, -, 
>> /usr/lib/node_modules/npm/node_modules)
>> -    @$(call install_copy, nodejs, 0, 0, 0644, -, 
>> /usr/lib/node_modules/npm/package.json)
>> -endif
>> -
>> -ifneq ($(NODEJS_MODULE_LIST),)
>> -    @$(foreach module, $(call rmversion, $(NODEJS_MODULE_LIST)), \
>> -            $(call install_tree, nodejs, 0, 0, -, 
>> /usr/lib/node_modules/$(module))$(ptx/nl))
>> -endif
>>      @$(call install_finish, nodejs)
>>  
>>      @$(call touch)
>> -- 
>> 2.25.0
>> 
>> 
>> _______________________________________________
>> ptxdist mailing list
>> ptxdist@pengutronix.de
-- 
Pengutronix e.K.                           | Ulrich Ölmann               |
Industrial Linux Solutions                 | http://www.pengutronix.de/  |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0    |
Amtsgericht Hildesheim, HRA 2686           | Fax:   +49-5121-206917-5555 |

_______________________________________________
ptxdist mailing list
ptxdist@pengutronix.de

Reply via email to