Commit Graph

112 Commits

Author SHA1 Message Date
André Draszik
b3b81507b7 nodejs: allow use of system brotli (and make default)
Use system brotli via PACKAGECONFIG by default. So far,
nodejs had been built using its embedded copy of brotli,
which we generally try to avoid, for the known reasons
(independent updates, cve & license checks, etc).

The nodejs patches to enable this have been submitted.
brotli is in meta-oe, so enabling this by default should
not be a problem.

Signed-off-by: André Draszik <andre.draszik@jci.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-03-03 11:40:40 -08:00
André Draszik
754b54699b nodejs: drop 'gyp' PACKAGECONFIG
During the python3 / nodejs update, the dependencies weren't updated, so
using system-gyp ends up trying to use the python2 version of system-
gyp, which will of course fail.
Fixing this to depend on the python3 version of gyp still doesn't
doesn't make things work, though:
    ERROR: nodejs-native-12.14.1-r0 do_configure: Execution of '.../nodejs-native/12.14.1-r0/temp/run.do_configure.26054' failed with exit code 1:
    gyp: Error importing pymod_do_mainmodule (ForEachFormat): No module named 'ForEachFormat' while loading dependencies of .../nodejs-native/12.14.1-r0/node-v12.14.1/node.gyp while trying to load .../nodejs-native/12.14.1-r0/node-v12.14.1/node.gyp
    Error running GYP

The reason is commit fff922afee6e ("deps,build: compute torque_outputs in v8.gyp")
in NodeJS v12, where they modified their bundled version of gyp to
become incompatible with the upstream version of gyp by adding extra /
unusual search paths to gyp.

Since I'm not sure how to deal with that when using system-gyp, and because
the original intention for using system-gyp was to make the previous nodejs
version compatible with python3 by ultimately switching to the python3 version
of system-gyp which isn't necessary anymore, and given nobody else seems to
be using this PACKAGECONFIG, just drop it.

Signed-off-by: André Draszik <andre.draszik@jci.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-03-03 11:40:40 -08:00
Khem Raj
354bedc9ab nodejs: Fix build on big-endian targets
Fixes
../deps/v8/src/runtime/runtime-utils.h:129:11: error: base operand of '->' has non-pointer type 'v8::internal::Object'
  129 |   return y->ptr() | (static_cast<ObjectPair>(x->ptr()) << 32);
      |           ^~

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Cc: Martin Jansa <Martin.Jansa@gmail.com>
Cc: Guillaume Burel <guillaume.burel@stormshield.eu>
2020-01-23 14:16:25 -08:00
Martin Jansa
50d550aa4e nodejs: upgrade to 12.14.1
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-01-23 14:16:25 -08:00
Martin Jansa
eaf9cfb018 nodejs: use python3native
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-01-23 14:16:25 -08:00
Guillaume Burel
feeb172d1a nodejs: 10.17.0 -> 12.14.0
- update Node.js to active 12.x LTS release 12.14.0.
- remove compatibility with gcc 4.8 (has been removed upstream)

Signed-off-by: Guillaume Burel <guillaume.burel@stormshield.eu>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-01-23 14:16:25 -08:00
Khem Raj
e4a2593a21 recipes: Replace using BBPATH with BBFILE_COLLECTIONS for meta-python2 check
BBPATH check actually does not work

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-01-22 19:21:39 -08:00
Khem Raj
8c0c7f0a37 recipes: Turn inherit classes from meta-py2 to conditional constructs
helps parsing without meta-py2 in mix

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-01-22 14:20:35 -08:00
Khem Raj
0a4faceed6 nodejs: Build only when meta-py2 is included
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-01-22 09:56:35 -08:00
Khem Raj
5057746583 meta-oe: Remove using python2
This change makes the parsing go though, we still might have build
issues, which will be reported in world builds seprately

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2020-01-22 09:56:34 -08:00
Andreas Müller
f0f6c0174d nodejs: Add PACKAGECONFIG share to allow other projects to use node as library
There are so many useful modules written for node.js I would like to use in
C++/Qt projects.

Run-tested both variants by installing node-red with npm and running it.

Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2019-12-01 22:29:59 -08:00
Khem Raj
86d4131dfa nodejs: libatomic patch should be target specific
host usually are using gcc/x86_64/aarch64 and all of them have gcc which
can support atomic intrinsics, but not all of them install libatomic by
default e.g. centos-7, so asking for libatomic unconditionally may not
work always

Signed-off-by: Khem Raj <raj.khem@gmail.com>
Acked-by: Andreas Müller <schnitzeltony@gmail.com>
Acked-by: Tim Orling <timothy.t.orling@linux.intel.com>
2019-11-21 17:52:26 -08:00
André Draszik
5734546728 nodejs: support long directory names for ${B} / ${S}
Part of the NodeJS build builds V8, which at some stage tries to call
ar with all objects with *absolute* paths (and printf the command line
first).

This will fail if the build path is too long:
    make[1]: execvp: printf: Argument list too long
when trying to create Release/obj.target/deps/v8/gypfiles/libv8_base.a
via below gyp-generated out/Makefile rule:
    cmd_alink_thin = rm -f $@ && $(AR.$(TOOLSET)) crsT $@ $(filter %.o,$^)
i.e. something like
    printf rm -f Release/obj.target/deps/v8/gypfiles/libv8_base.a && arm-poky-linux-musleabi-gcc-ar crsT Release/obj.target/deps/v8/gypfiles/libv8_base.a ...

The above failure happened on a build-directory S with 204 characters
on a Jenkins machine.

While one could probably increase the ulimit on that specific machine,
that would be a pretty specific build machine fix which would need to
be applied everywhere, or switch to non-verbose builds / compilation,
but fortunately we can change all object references to be relative to
the build directory itself by setting the builddir_name make variable
and thus avoid the other two possible work-arounds.

Signed-off-by: André Draszik <git@andred.net>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2019-11-13 07:17:03 -08:00
André Draszik
c174217540 nodejs: use OE-provided compiler flags (arm)
This overrides yocto-provided build flags with its own, e.g we get
    arm-poky-linux-musleabi-g++  -mthumb -mfpu=neon -mfloat-abi=hard -mcpu=cortex-a7 \
                                 ... \
                                  -march=armv7-a -mfpu=neon -mfloat-abi=hard -marm

Causing the latter to override the former, and compiler warnings:
    cc1plus: warning: switch '-mcpu=cortex-a7' conflicts with '-march=armv7-a' switch

Patch this out, so that yocto-provided flags take precedence.
Note that in reality the same should probably be done for all the other
supported architectures, too.

Note that this also switches to Thumb(2) mode (in my case). No obvious
problems have been noted during compilation or runtime.

Upstream-Status: Inappropriate [oe-specific]
Signed-off-by: André Draszik <git@andred.net>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2019-11-13 07:17:03 -08:00
André Draszik
0d4a59268c nodejs: allow use of system gyp
Now that there is a gyp (python2) recipe in meta-python,
allow its use instead of the bundled one for when
meta-python is enabled.

At the same time, unconditionally inherit pythonnative
as in either case gyp actually uses python, and the
build machine's python and installed modules should
never be used.

Signed-off-by: André Draszik <git@andred.net>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2019-11-13 07:17:03 -08:00
André Draszik
0c6cdbe3db nodejs: delete all bundled deps in do_unpack() if needed
We can delete bundled deps where system-provided counterparts
should be used instead.
Amongst others, this ensures they are not used accidentally.

Signed-off-by: André Draszik <git@andred.net>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2019-11-13 07:17:03 -08:00
André Draszik
08956bdd89 nodejs: ensure to use correct compiler & flags always
NodeJS comes with an embedded, patched, version of gyp.

Normally, gyp supports compiling for the build machine, e.g.
native tools that need to be compiled to run during the build,
and for the host, using different variables, e.g. CC and
CC.host, etc.
Most of this has been patched out in the NodeJS version of gyp,
and essentially it only supports compiling using one compiler -
${CC}. This modification excludes LDFLAGS for native tools, and
those still evaluate LDFLAGS.host (only).

While this modified behaviour is OK for the OE use-case of building
native and target tools separately, it means that this recipe can
not work as-is with standard gyp, and wrong LDFLAGS are being used
for some of the tools compiled (torque) in either case.

By setting the make variables that gyp-generated makefiles inspect,
we support use of unpatched gyp, and we ensure that all tools
are compiled with correct LDFLAGS in either case.

This now also allows us to drop the patch that had been applied to
work-around this problem.

Signed-off-by: André Draszik <git@andred.net>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2019-11-13 07:17:03 -08:00
André Draszik
5abd5bccd5 nodejs: allow use of system nghttp2
We can't enable this by default, though, as nghttp2 is
in the meta-networking layer, which might not be enabled.

At least this gives people a simple way to do so if
they want.

Signed-off-by: André Draszik <git@andred.net>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2019-11-07 17:43:44 -08:00
André Draszik
8337a8bb1a nodejs: allow use of system libuv (and make default)
Use system libuv via PACKAGECONFIG by default. So far,
nodejs had been built using its embedded copy of libuv,
which we generally try to avoid, for the known reasons
(independent updates, cve & license checks, etc).

Signed-off-by: André Draszik <git@andred.net>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2019-11-01 17:22:52 -07:00
Adrian Bunk
a0361dad8b nodejs: Upgrade 10.16.3 -> 10.17.0
Patch applied upstream removed.

Signed-off-by: Adrian Bunk <bunk@stusta.de>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2019-11-01 17:22:52 -07:00
André Draszik
76dd3dac1f nodejs: allow use of system c-ares (and make default)
Use system c-ares via PACKAGECONFIG by default. So far,
nodejs had been built using its embedded copy of c-ares,
which we generally try to avoid, for the known reasons
(independent updates, cve & license checks, etc).

Notes:
* otherwise nodejs uses its bundled version of c-ares
* the PACKAGECONFIG variable is 'ares' so as to be in
  line with other uses of this (wget & curl recipes in
  OE core)

Signed-off-by: André Draszik <git@andred.net>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2019-11-01 17:22:52 -07:00
Khem Raj
b4937b5d66 nodejs: Mark incompatible with risc-v
Arch is not yet supported

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2019-09-07 11:29:02 -07:00
Andrej Valek
a1a0e8d91e nodejs: 10.16.2 -> 10.16.3
- update nodejs to active 10.x LTS release 10.16.3
 - include fix multiple HTTP/2 vulnerabilities

Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2019-09-03 07:11:04 -07:00
Martin Jansa
080532ff85 nodejs: fix QA error about /usr/bin/python dependency
* fixes:
  ERROR: QA Issue:
  /usr/lib/node_modules/npm/node_modules/node-gyp/gyp/samples/samples
  contained in package nodejs-npm requires /usr/bin/python, but no
  providers found in RDEPENDS_nodejs-npm? [file-rdeps]

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2019-08-17 01:42:54 -07:00
Andrej Valek
58c865e46d nodejs: 10.16.0 -> 10.16.2
- update nodejs to active 10.x LTS release 10.16.2.
- add python running dependency due to samples.py requirements

Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2019-08-11 08:58:05 -07:00
Andrej Valek
2487a1e192 nodejs: 10.15.3 -> 10.16.0
Update nodejs to active 10.x LTS release 10.16.0.
- make dependencies configurable
License checksum changed due to added bundled dependencies to:
- siphash
- large_pages
- brotli

Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2019-07-10 09:24:32 -07:00
Brad Bishop
478c35bc01 nodejs: Update GCC 4.8 compat patch
GCC 4.8 compatibility was lost moving from 10.15.1 to 10.15.3.  Add
another wrapper for std::make_unique to restore it.

Signed-off-by: Brad Bishop <bradleyb@fuzziesquirrel.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2019-03-26 09:43:57 -07:00
Andreas Müller
3940350b0f nodejs: upgrade 10.15.1 -> 10.15.3
* 10.15.2 was a security release for CVE-2019-5737 [1]
* 10.15.3 was a bugfix release [2]

[1] https://github.com/nodejs/node/blob/master/doc/changelogs/CHANGELOG_V10.md#10.15.2
[2] https://github.com/nodejs/node/blob/master/doc/changelogs/CHANGELOG_V10.md#10.15.3

Signed-off-by: Andreas Müller <schnitzeltony@gmail.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2019-03-22 09:33:00 -07:00
Andrej Valek
f0c1ee77d9 nodejs: fix target ldflags using
- do not drop target LDFLAGS
  - even if the target LDFLAGS have been specified, tools like torque was
    linked with system libraries

Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2019-03-19 21:00:06 -07:00
Andrej Valek
bef21ed9aa nodejs: fix additional compatibility with older gcc
- replace all occurrences of std::make_unique with wrapper
 - sync indent level

Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2019-02-22 18:14:52 -08:00
Andrej Valek
1c8e4a679a nodejs 8.15.0 -> 10.15.1
Update nodejs to active 10.x LTS release 10.15.1.
- link atomic library
- make it compatible with gcc < 4.9

Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2019-02-17 12:40:56 -08:00
Matthijs Vader
41817d8ae1 nodejs 8.14.0 -> 8.15.0
Update nodejs to latest 8.x stable release 8.15.0.

Signed-off-by: Matthijs Vader <mvader@victronenergy.com>
Signed-off-by: Jeroen Hofstee <jhofstee@victronenergy.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2019-01-28 07:06:19 -08:00
Andrej Valek
7327e8aeea nodejs: 8.12.0 -> 8.14.0
Update nodejs to latest 8.x stable release 8.14.0.

Signed-off-by: Andrej Valek <andrej.valek@siemens.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2018-12-04 10:00:48 -08:00
Khem Raj
d7d0cc5227 nodejs: Enable system ICU support
Latest Chromium needs it during build

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2018-10-12 15:00:10 -07:00
Khem Raj
463fd3dff3 nodejs: Revert unintended changes (not ready yet)
We need to enable icu with intl support but this was accidentally
committed with last umip move patch

Signed-off-by: Khem Raj <raj.khem@gmail.com>
2018-10-08 08:35:34 -07:00
Hongxu Jia
9254a77848 umip: fix recipe location typo
Since `36983fe umip: move to meta-networking' applied,
it was moved to invalid location.

Fix prior partial move to meta-networking

Signed-off-by: Hongxu Jia <hongxu.jia@windriver.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2018-10-07 21:45:20 -07:00
Hong Liu
fd805b91a7 nodejs: upgrade to 8.12.0
Upgrade nodejs from 8.11.4 to 8.12.0.

Signed-off-by: Hong Liu <hongl.fnst@cn.fujitsu.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2018-09-25 22:24:15 -07:00
Hong Liu
e427280262 nodejs: 8.11.3 -> 8.11.4
Upgrade nodejs from 8.11.3 to 8.11.4

Signed-off-by: Hong Liu <hongl.fnst@cn.fujitsu.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2018-08-28 09:36:28 -07:00
Pascal Bach
a19bb52b0a nodejs: update to 8.11.3
Fixes the following CVEs:
- CVE-2018-7167
- CVE-2018-7161
- CVE-2018-1000168

Signed-off-by: Pascal Bach <pascal.bach@siemens.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2018-07-03 17:42:25 -07:00
Pascal Bach
2ac1799a19 nodejs: 8.9.4 -> 8.11.2
Node.js > 8.10 also compile with OpenSSL 1.1

License check sum changes because typo fix in LICENSE file.
No license change.

Signed-off-by: Pascal Bach <pascal.bach@siemens.com>
Signed-off-by: Khem Raj <raj.khem@gmail.com>
2018-06-08 00:57:29 -07:00
Trevor Woerner
154d1cc863 nodejs: add extra RDEPENDS for building
If you want to perform an "npm install" and a module needs to be compiled,
these additional packages need to be on the target otherwise the compile might
fail with one or more of the following error messages:

	ImportError: No module named compiler.ast
	ImportError: No module named filecmp
	ImportError: No module named multiprocessing

Signed-off-by: Trevor Woerner <twoerner@gmail.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
2018-03-12 10:01:16 -07:00
Parthiban Nallathambi
00909ae732 nodejs: Update from 8.9.0 -> 8.9.4
Update nodejs to latest stable release 8.9.4

Signed-off-by: Parthiban Nallathambi <pn@denx.de>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
2018-03-01 16:12:55 -08:00
Gunnar Mills
74880c1464 nodejs: Add support for building on ppc64le
ppc64le is a little-endian mode of ppc64.
Nodejs determines the endianness of the system and
since it already supports bi-endian ppc64, just pass
nodejs "ppc64" when the TARGET_ARCH is ppc64le.

Signed-off-by: Gunnar Mills <gmills@linux.vnet.ibm.com>
Signed-off-by: Armin Kuster <akuster808@gmail.com>
2018-03-01 16:12:55 -08:00
Davis, Michael
23f1ed8d4e nodejs: Update to 8.9.0
Update nodejs to latest stable release 8.9.0.

Signed-off-by: Armin Kuster <akuster808@gmail.com>
2017-11-15 16:34:05 -08:00
Jonathan Liu
2d3b8c99d7 nodejs: Update to 8.7.0
LICENSE checksum updated due to copyright and formatting changes.

Signed-off-by: Jonathan Liu <net147@gmail.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2017-10-27 16:39:33 +00:00
Jonathan Liu
09d5d09762 nodejs: Remove unreferenced patches
Signed-off-by: Jonathan Liu <net147@gmail.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2017-10-27 16:39:33 +00:00
Jonathan Liu
af0d0f8939 nodejs: Add npx to nodejs-npm package
${bindir}/npx is a symbolic link to npm-cli.js in the npm module.
This avoids the nodejs package depending on nodejs-npm.

Signed-off-by: Jonathan Liu <net147@gmail.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2017-10-17 10:32:03 +00:00
Khem Raj
3f37748ee8 nodejs: Upgrade to 8.4.0
Signed-off-by: Khem Raj <raj.khem@gmail.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2017-08-31 10:18:33 +02:00
fan.xin
aa2ca3e2d6 nodejs: update to 4.8.3
Signed-off-by: Fan Xin <fan.xin@jp.fujitsu.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2017-06-05 11:01:46 +02:00
Pascal Bach
881ac49a9c nodejs: update to 4.8.2
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
2017-04-26 20:13:32 +02:00