Backport a patch from upstream to take care of build failure e.g.
| ../deps/v8/src/codegen/arm/cpu-arm.cc:38:16: error: write to reserved register 'R7'
| asm volatile("svc 0\n"
| ^
| 1 error generated.
Signed-off-by: Khem Raj <raj.khem@gmail.com>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
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>
* 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>
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>
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>
- 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>
- 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>
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>
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>
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>
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>
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>
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>
${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>
Section with information regarding few third-party components has been
removed from the LICENSE file:
https://github.com/nodejs/node/commit/f7c4e9489f0d72533.
Signed-off-by: Oleksandr Kravchuk <oleksandr.kravchuk@pelagicore.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
getVar() now defaults to expanding by default, thus remove the True
option from getVar() calls with a regex search and replace.
Search made with the following regex: getVar ?\(( ?[^,()]*), True\)
Signed-off-by: Joshua Lock <joshua.g.lock@intel.com>
The same code is used in the nodejs recipe from meta-nodejs
Signed-off-by: Pascal Bach <pascal.bach@siemens.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
LICENSE checksum updated due to change in ESLint copyright line:
- Copyright (c) 2013 Nicholas C. Zakas. All rights reserved.
+ Copyright jQuery Foundation and other contributors, https://jquery.org/
Signed-off-by: Jonathan Liu <net147@gmail.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
LICENSE checksum has changed due to OpenSSL copyright year being
bumped from 1998-2011 to 1998-2016.
Signed-off-by: Jonathan Liu <net147@gmail.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
LICENSE checksum has changed to fix a small error in the URL for the
npm public registry, changing the URL from "https://registry.npmjs.com"
to "https://registry.npmjs.org".
Signed-off-by: Jonathan Liu <net147@gmail.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Fixes CVE-2016-2086 and CVE-2016-2216.
LICENSE checksum changed because it was regenerated using the new
tools/license-builder.sh script but the licensing remains the same.
Signed-off-by: Jonathan Liu <net147@gmail.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Additionally, the LICENSE file changed as follows:
- npm is a package manager program located at deps/npm.
npm's license follows:
"""
- Copyright (c) Isaac Z. Schlueter
- All rights reserved.
-
- npm is released under the Artistic 2.0 License.
- The text of the License follows:
+ The npm application
+ Copyright (c) npm, Inc. and Contributors
+ Licensed on the terms of The Artistic License 2.0
+
+ Node package dependencies of the npm application
+ Copyright (c) their respective copyright owners
+ Licensed on their respective license terms
+
+ The npm public registry at https://registry.npmjs.com
+ and the npm website at https://www.npmjs.com
+ Operated by npm, Inc.
+ Use governed by terms published on https://www.npmjs.com
+
+ "Node.js"
+ Trademark Joyent, Inc., https://joyent.com
+ Neither npm nor npm, Inc. are affiliated with Joyent, Inc.
+
+ The Node.js application
+ Project of Node Foundation, https://nodejs.org
+
+ The npm Logo
+ Copyright (c) Mathias Pettersson and Brian Hammond
+
+ "Gubblebum Blocky" typeface
+ Copyright (c) Tjarda Koster, https://jelloween.deviantart.com
+ Used with permission
...
- "Node.js" and "node" trademark Joyent, Inc. npm is not officially
- part of the Node.js project, and is neither owned by nor
- officially affiliated with Joyent, Inc.
-
- Packages published in the npm registry (other than the Software and
- its included dependencies) are not part of npm itself, are the sole
- property of their respective maintainers, and are not covered by
- this license.
+ The following additional terms shall apply to use of the npm software, the npm
+ website, the npm repository and any other services or products offered by npm,
+ Inc.:
+
+ "Node.js" trademark Joyent, Inc. npm is not officially part of the Node.js
+ project, and is neither owned by nor affiliated with Joyent, Inc.
+
+ "npm" and "The npm Registry" are owned by npm, Inc. All rights reserved.
+
+ Modules published on the npm registry are not officially endorsed by npm, Inc.
+ or the Node.js project.
+
+ Data published to the npm registry is not part of npm itself, and is the sole
+ property of the publisher. While every effort is made to ensure accountability,
+ there is absolutely no guarantee, warrantee, or assertion expressed or implied
+ as to the quality, fitness for a specific purpose, or lack of malice in any
+ given npm package. Packages downloaded through the npm registry are
+ independently licensed and are not covered by this license.
+
+ Additional policies relating to, and restrictions on use of, npm products and
+ services are available on the npm website. All such policies and restrictions,
+ as updated from time to time, are hereby incorporated into this license
+ agreement. By using npm, you acknowledge your agreement to all such policies
+ and restrictions.
+
+ If you have a complaint about a package in the public npm registry, and cannot
+ resolve it with the package owner, please email support@npmjs.com and explain
+ the situation. See the [npm Dispute Resolution
+ policy](https://github.com/npm/policies/blob/master/disputes.md) for more
+ details.
- "npm Logo" created by Mathias Pettersson and Brian Hammond,
- used with permission.
+ Any data published to The npm Registry (including user account information) may
+ be removed or modified at the sole discretion of the npm server administrators.
+
+ "npm Logo" contributed by Mathias Pettersson and Brian Hammond,
+ use is subject to https://www.npmjs.com/policies/trademark
"Gubblebum Blocky" font
- Copyright (c) by Tjarda Koster, http://jelloween.deviantart.com
+ Copyright (c) by Tjarda Koster, https://jelloween.deviantart.com
included for use in the npm website and documentation,
used with permission.
- This program uses several Node.js modules contained in the node_modules/
+ This program uses several Node modules contained in the node_modules/
subdirectory, according to the terms of their respective licenses.
"""
Signed-off-by: Trevor Woerner <twoerner@gmail.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Remove old nodejs4_0.4.12 and update nodejs_0.12.7 to the latest stable
nodejs_4.2.3.
Nodejs is picky about which architectures it supports. The supported arch
mapping required some updating to bring it up to date with the current nodejs
code. Add COMPATIBLE_MACHINE entries so it only builds for the supported
architectures.
ARM cores that don't support at least VFP2 have been dropped:
https://groups.google.com/forum/#!topic/v8-users/aSOFbaAQvMk
"Due the increasing cost of the keeping the "no-VFPv2" port of V8 working
on ARM, we are planning on making 3.17 the last V8 release that that
supports ARM chips without VFPv2. Starting with the 3.18 release, the
minimal V8 requirements will increase to ARMv6 + VFPv2. In order to
simplify maintenance, we will also remove the "pre-VFP2" ARM code from the
V8 code base."
Additionally, gcc no longer supports a VFPv2 option:
https://gcc.gnu.org/onlinedocs/gcc/ARM-Options.html#index-mfpu-1460
Signed-off-by: Trevor Woerner <twoerner@gmail.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
bitbake nodejs
[snip]
sed: can't read /buildarea2/build/tmp/work/core2-64-poky-linux/nodejs/0.12.4-r0/image/usr/lib64/node_modules/npm/bin/npm-cli.js:
No such file or directory
[snip]
The node modules are not binary files. It doesn't make sense to install
them to /usr/lib64.
Use /usr/lib/node_modules instead of /usr/lib64/node_modules even on
multilib.
Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
* otherwise zlib license text provider isn't found:
WARNING: The license listed zlib was not in the licenses collected for liblinebreak
WARNING: liblinebreak: No generic license file exists for: zlib in any provider
[YOCTO #7584]
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
nodejs should use python from python-native package. On some hosts, the
default python is missing bz2 support.
Signed-off-by: Amy Fong <amy.fong@windriver.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Changes:
- rename SUMMARY with length > 80 to DESCRIPTION
- rename DESCRIPTION with length < 80 to (non present tag) SUMMARY
- drop final point character at the end of SUMMARY string
- remove trailing whitespace of SUMMARY line
Note: don't bump PR
Signed-off-by: Matthieu Crapet <Matthieu.Crapet@ingenico.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
* 0001-gcc-has-a-builtin-define-to-denote-hard-abi-when-in-.patch seems
to be resolved by https://chromiumcodereview.appspot.com/10713009
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
* This change is only aesthetic (unlike indentation in Python
tasks).
* Some recipes were using tabs.
* Some were using 8 spaces.
* Some were using mix or different number of spaces.
* Make them consistently use 4 spaces everywhere.
* Yocto styleguide advises to use tabs (but the only reason to keep
tabs is the need to update a lot of recipes). Lately this advice
was also merged into the styleguide on the OE wiki.
* Using 4 spaces in both types of tasks is better because it's less
error prone when someone is not sure if e.g.
do_generate_toolchain_file() is Python or shell task and also allows
to highlight every tab used in .bb, .inc, .bbappend, .bbclass as
potentially bad (shouldn't be used for indenting of multiline
variable assignments and cannot be used for Python tasks).
* Don't indent closing quote on multiline variables
we're quite inconsistent wheater it's first character on line
under opening quote or under first non-whitespace character in
previous line.
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
Acked-by: Koen Kooi <koen@dominion.thruhere.net>
Cloud9 needs the headers to build the o3-xml binary, using 0.8.x headers makes it crash.
This installs everything namespaced as 'node4' to avoid collisions.
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
* when building on machine with /bin/sh -> /bin/dash
DESTDIR is empty in install and it's trying to write to /usr/include and fails
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
The LICENSE checksum changed due to date changes and clarification on licenses of included "libraries" like the markdown parser
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>
In this way meta-oe recipes will be parsed correctly in yocto.
Signed-off-by: Andrei Gherzan <andrei@gherzan.ro>
Signed-off-by: Koen Kooi <koen@dominion.thruhere.net>