summaryrefslogtreecommitdiff
path: root/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_12.20.2.bb
diff options
context:
space:
mode:
authorAndrew Geissler <geissonator@yahoo.com>2021-03-06 00:23:11 +0300
committerBrad Bishop <bradleyb@fuzziesquirrel.com>2021-03-15 14:02:06 +0300
commit97771a30474a164ca08efd09209692a1fb8a4574 (patch)
treee350c1e654a41e7a090a1c6fe64f01d69bd28ac3 /meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_12.20.2.bb
parent8b1392834def7d17263b45bd1aab35759235fb3e (diff)
downloadopenbmc-97771a30474a164ca08efd09209692a1fb8a4574.tar.xz
meta-openembedded: subtree update:7206f7f5bc..98175fd0cc
Adam Miartus (4): libcereal: update to newer version libcereal: pick up additional licenses of cereal components libcereal: add dev package that can be included into toolchain sdk cereal: Remove Alejandro Hernandez Samaniego (2): freerdp: Upgrade 2.2.0 -> 2.3.0 remmina: Upgrade 1.4.10 -> 1.4.11 Anatol Belski (2): abseil-cpp: Relax build requirements grpc: Upgrade 1.24.3 -> 1.35.0 Andrei Gherzan (1): nss: Fix warnings generated by getcwd Bartosz Golaszewski (1): pydbus-manager: new package Carlos Rafael Giani (2): pipewire: Move to meta-multimedia pipewire: Rework 0.3 recipe and upgrade to 0.3.22 Christian B. Sørensen (1): libgpiod: packageqa problem => static python lib to ${PN}-staticdev Clément Péron (2): grpc: Add PackageConfig to build only required plugins grpc: remove gflags dependency Diego Santa Cruz (1): php: split out phpdbg into a separate package Enrico Jörns (1): python3-aiohttp: add missing RDEPENDS on python3-typing-extensions Gianfranco (1): mosquitto: Upgrade 2.0.7 -> 2.0.8 Hongxu Jia (1): lvm2/libdevmapper: 2.03.06 -> 2.03.11 Kai Kang (2): xfsprogs: 5.9.0 -> 5.10.0 libinih: install header files without prefix dir inih Khem Raj (39): yelp-xsl: Mark native libxml2 in rdeps liburing: Do not build examples on risc/musl aom: Disable neon on arm when not present in TUNE_FEATURES python3-grpcio: Upgrade to 1.35.0 python3-grpcio-tools: Upgrade to 1.35.0 recipes: Update common-licenses references to match new names openldap: Refresh patches to remove fuzz abseil-cpp: Remove libexecinfo band-aid for musl nss: Add powerpc64 little endian support luajit: Upgrade to latest on v2.1 release influxdb: Generate checksums for term module libauthen-sasl-perl,libhtml-tree-perl: allow PERL_USE_UNSAFE_INC dvb-apps: Allow insecure inc paths glog: Upgrade to 0.4.0 mpd: Upgrade to 0.22 series mbedtls: Fix gcc11 stringop-overflow warning v4l-utils: Package systemd fragment for systemd-udevd.service.d mpich: Upgrade to 3.4.1 srt: Backport fix for missing <limits> header gerbera: Update to 1.7.0 nautilus: Drop use of volatile vlc: Fix build with gcc 11 squid: Include <limits> for using std::numeric_limits minifi-cpp: include limits header for numeric_limits definition opencv: Upgrade to 4.5.1 mozjs: Drop using JS_VOLATILE_ARM opengl-es-cts: Disable -Wuninitialized for external/amber grpc: Upgrade to 1.36.1 mongodb: Include <optional> c++ header libyui,libyui-ncurses: Upgrade to 4.0.0 libyui-ncurses: Disable Werror libyui: Adopt to new cmake option to disable Werror libyui-ncurses: Pass -DNCURSES_WIDECHAR in CXXFLAGS gimp: Add missing dependencies gimp: Disable svg icons on arm libcamera: Update to latest abseil-cpp: Ask for C++14 std explicitly opencv: Add packageconfig for building tests opencv: Remove duplicate patch Leon Anavi (30): python3-h5py: Upgrade 2.10.0 -> 3.1.0 python3-transitions: Upgrade 0.8.6 -> 0.8.7 python3-tabulate: Upgrade 0.8.7 -> 0.8.9 python3-pyperclip: Upgrade 1.8.1 -> 1.8.2 python3-elementpath: Upgrade 2.1.3 -> 2.1.4 python3-mpmath: Upgrade 1.1.0 -> 1.2.1 python3-prompt-toolkit: Upgrade 3.0.14 -> 3.0.16 python3-pkgconfig: Upgrade 1.5.1 -> 1.5.2 python3-mypy: Upgrade 0.800 -> 0.812 python3-typeguard: Upgrade 2.11.0 -> 2.11.1 python3-httplib2: Upgrade 0.18.1 -> 0.19.0 python3-autobahn: Upgrade 20.12.3 -> 21.2.1 python3-iso8601: Upgrade 0.1.13 -> 0.1.14 python3-alembic: Upgrade 1.5.4 -> 1.5.5 python3-txaio: Upgrade 20.12.1 -> 21.2.1 python3-watchdog: Upgrade 2.0.0 -> 2.0.2 python3-rsa: Upgrade 4.7 -> 4.7.1 python3-pandas: Upgrade 1.2.1 -> 1.2.2 python3-cffi: Upgrade 1.14.4 -> 1.14.5 python3-pymisp: Upgrade 2.4.137.3 -> 2.4.138 python3-pytest-runner: Upgrade 5.2 -> 5.3.0 python3-markdown: Upgrade 3.3.3 -> 3.3.4 python3-pulsectl: Upgrade 20.5.1 -> 21.2.0 python3-cvxopt: Upgrade 1.2.5 -> 1.2.6 python3-rsa: Upgrade 4.7.1 -> 4.7.2 python3-pyzmq: Upgrade 22.0.2 -> 22.0.3 python3-tqdm: Upgrade 4.57.0 -> 4.58.0 python3-autobahn: Upgrade 21.2.1 -> 21.2.2 python3-aiohttp: Upgrade 3.7.3 -> 3.7.4 python3-semantic-version: Add recipe Matteo Croce (1): recipes-kernel: add libbpf Michael Vetter (1): jasper: upgrade 2.0.24 -> 2.0.25 Mingli Yu (3): crash: add support for lockless ringbuffer gtkmm3: use relative path mcelog: Upgrade to 175 Oleksandr Kravchuk (21): rfkill: update to 1.0 python3-idna: update to 3.1 python3-pika: update to 1.2.0 python3-protobuf: update to 3.14.0 python3-pychromecast: update to 8.1.0 python3-pykickstart: update to 3.32 python3-watchdog: update to 2.0.0 wolfssl: updae to 4.7.0 ncmpc: update to 0.45 rocksdb: update to 6.15.5 stm32flash: update to 0.6 python3-astroid: update to 2.5 python3-configargparse: update to 1.3 python3-cryptography-vectors: update to 3.4.6 python3-periphery: update to 2.3.0 python3-sentry-sdk: update to 0.20.3 python3-soupsieve: update to 2.2 python3-supervisor: update to 4.2.1 python3-tqdm: update 4.57.0 python3-typeguard: update to 2.11.0 python3-xmlschema: update to 1.5.1 Oleksiy Obitotskyy (2): wireshark-src: improve reproducibility smartmontools: Improve reproducibility Patrick Williams (2): boost-url: update to latest catch2: upgrade to 2.13.4 Peter Kjellerstedt (1): librcereal: A couple of improvements Randy MacLeod (2): libssh2: remove the recipe since it moved to oe-core libgit2: remove the recipe since it moved to oe-core Ross Burton (1): python3-intelhex: add recipe for the intelhex package Sean Nyekjaer (3): nodejs: 12.20.1 -> 12.20.2 zstd: split bin into separate package can-utils: split into more packages Ulrich ?lmann (1): v4l-utils: update to 1.20.0 Wang Mingyu (7): stunnel: upgrade 5.57 -> 5.58 iwd: upgrade 1.11 -> 1.12 protobuf: upgrade 3.14.0 -> 3.15.2 redis-plus-plus: upgrade 1.2.1 -> 1.2.2 tesseract-lang: upgrade 4.0.0 -> 4.1.0 gphoto2: upgrade 2.5.26 -> 2.5.27 libgphoto2: upgrade 2.5.26 -> 2.5.27 Yanfei Xu (1): lmbench: Install cache command and fix typos in manual page Yi Fan Yu (4): rsyslog: upgrade 8.2006.0->8.2012.0 tcpdump: update 4.9.3 -> 4.99.0 rsyslog: Add imhttp to packageconfig rsyslog: Update 8.2012.0 -> 8.2102.0 Yi Zhao (1): vsftpd: allow newfstatat and pselect6 syscalls in the seccomp sandbox akuster (1): softhsm: update to 2.6.1 and align zangrc (11): fuse3: upgrade 3.10.1 -> 3.10.2 enca: upgrade 1.9 -> 1.19 gensio: upgrade 2.2.3 -> 2.2.4 lcms: upgrade 2.11 -> 2.12 libburn: upgrade 1.5.2 -> 1.5.4 opensaf: upgrade 5.20.11 -> 5.21.03 openvpn: upgrade 2.5.0 -> 2.5.1 strongswan: upgrade 5.9.1 -> 5.9.2 wireguard-tools: upgrade 1.0.20200827 -> 1.0.20210223 hwdata: upgrade 0.343 -> 0.345 mailcap: upgrade 2.1.49 -> 2.1.52 zhengruoqin (7): libjcat: upgrade 0.1.4 -> 0.1.6 postgresql: upgrade 13.1 -> 13.2 ser2net: upgrade 4.3.0 -> 4.3.3 Fix do_package error when enable multilib. nano: upgrade 5.5 -> 5.6 qpdf: upgrade 10.0.4 -> 10.2.0 sigrok-cli: upgrade 0.7.1 -> 0.7.2 Signed-off-by: Andrew Geissler <geissonator@yahoo.com> Change-Id: Ibbbafaa846b1dcc3c03ac585e7d5075826e4ee37
Diffstat (limited to 'meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_12.20.2.bb')
-rw-r--r--meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_12.20.2.bb161
1 files changed, 161 insertions, 0 deletions
diff --git a/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_12.20.2.bb b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_12.20.2.bb
new file mode 100644
index 0000000000..6acc36b4fb
--- /dev/null
+++ b/meta-openembedded/meta-oe/recipes-devtools/nodejs/nodejs_12.20.2.bb
@@ -0,0 +1,161 @@
+DESCRIPTION = "nodeJS Evented I/O for V8 JavaScript"
+HOMEPAGE = "http://nodejs.org"
+LICENSE = "MIT & BSD & Artistic-2.0"
+LIC_FILES_CHKSUM = "file://LICENSE;md5=8c66ff8861d9f96076a7cb61e3d75f54"
+
+DEPENDS = "openssl"
+DEPENDS_append_class-target = " nodejs-native"
+
+inherit pkgconfig python3native
+
+COMPATIBLE_MACHINE_armv4 = "(!.*armv4).*"
+COMPATIBLE_MACHINE_armv5 = "(!.*armv5).*"
+COMPATIBLE_MACHINE_mips64 = "(!.*mips64).*"
+
+COMPATIBLE_HOST_riscv64 = "null"
+COMPATIBLE_HOST_riscv32 = "null"
+
+SRC_URI = "http://nodejs.org/dist/v${PV}/node-v${PV}.tar.xz \
+ file://0001-Disable-running-gyp-files-for-bundled-deps.patch \
+ file://0003-Install-both-binaries-and-use-libdir.patch \
+ file://0004-v8-don-t-override-ARM-CFLAGS.patch \
+ file://big-endian.patch \
+ file://mips-warnings.patch \
+ file://0001-Remove-use-of-register-r7-because-llvm-now-issues-an.patch \
+ "
+SRC_URI_append_class-target = " \
+ file://0002-Using-native-binaries.patch \
+ "
+SRC_URI[sha256sum] = "961ad600f0706c396390ebc7767fb01d5e3792a5022dc2e7774796756eec6d3c"
+
+S = "${WORKDIR}/node-v${PV}"
+
+# v8 errors out if you have set CCACHE
+CCACHE = ""
+
+def map_nodejs_arch(a, d):
+ import re
+
+ if re.match('i.86$', a): return 'ia32'
+ elif re.match('x86_64$', a): return 'x64'
+ elif re.match('aarch64$', a): return 'arm64'
+ elif re.match('(powerpc64|ppc64le)$', a): return 'ppc64'
+ elif re.match('powerpc$', a): return 'ppc'
+ return a
+
+ARCHFLAGS_arm = "${@bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', '--with-arm-float-abi=hard', '--with-arm-float-abi=softfp', d)} \
+ ${@bb.utils.contains('TUNE_FEATURES', 'neon', '--with-arm-fpu=neon', \
+ bb.utils.contains('TUNE_FEATURES', 'vfpv3d16', '--with-arm-fpu=vfpv3-d16', \
+ bb.utils.contains('TUNE_FEATURES', 'vfpv3', '--with-arm-fpu=vfpv3', \
+ '--with-arm-fpu=vfp', d), d), d)}"
+GYP_DEFINES_append_mipsel = " mips_arch_variant='r1' "
+ARCHFLAGS ?= ""
+
+PACKAGECONFIG ??= "ares brotli icu zlib"
+
+PACKAGECONFIG[ares] = "--shared-cares,,c-ares"
+PACKAGECONFIG[brotli] = "--shared-brotli,,brotli"
+PACKAGECONFIG[icu] = "--with-intl=system-icu,--without-intl,icu"
+PACKAGECONFIG[libuv] = "--shared-libuv,,libuv"
+PACKAGECONFIG[nghttp2] = "--shared-nghttp2,,nghttp2"
+PACKAGECONFIG[shared] = "--shared"
+PACKAGECONFIG[zlib] = "--shared-zlib,,zlib"
+
+# We don't want to cross-compile during target compile,
+# and we need to use the right flags during host compile,
+# too.
+EXTRA_OEMAKE = "\
+ CC.host='${CC}' \
+ CFLAGS.host='${CPPFLAGS} ${CFLAGS}' \
+ CXX.host='${CXX}' \
+ CXXFLAGS.host='${CPPFLAGS} ${CXXFLAGS}' \
+ LDFLAGS.host='${LDFLAGS}' \
+ AR.host='${AR}' \
+ \
+ builddir_name=./ \
+"
+
+python do_unpack() {
+ import shutil
+
+ bb.build.exec_func('base_do_unpack', d)
+
+ shutil.rmtree(d.getVar('S') + '/deps/openssl', True)
+ if 'ares' in d.getVar('PACKAGECONFIG'):
+ shutil.rmtree(d.getVar('S') + '/deps/cares', True)
+ if 'brotli' in d.getVar('PACKAGECONFIG'):
+ shutil.rmtree(d.getVar('S') + '/deps/brotli', True)
+ if 'libuv' in d.getVar('PACKAGECONFIG'):
+ shutil.rmtree(d.getVar('S') + '/deps/uv', True)
+ if 'nghttp2' in d.getVar('PACKAGECONFIG'):
+ shutil.rmtree(d.getVar('S') + '/deps/nghttp2', True)
+ if 'zlib' in d.getVar('PACKAGECONFIG'):
+ shutil.rmtree(d.getVar('S') + '/deps/zlib', True)
+}
+
+# Node is way too cool to use proper autotools, so we install two wrappers to forcefully inject proper arch cflags to workaround gypi
+do_configure () {
+ export LD="${CXX}"
+ GYP_DEFINES="${GYP_DEFINES}" export GYP_DEFINES
+ # $TARGET_ARCH settings don't match --dest-cpu settings
+ python3 configure.py --prefix=${prefix} --cross-compiling --without-snapshot --shared-openssl \
+ --without-dtrace \
+ --without-etw \
+ --dest-cpu="${@map_nodejs_arch(d.getVar('TARGET_ARCH'), d)}" \
+ --dest-os=linux \
+ --libdir=${D}${libdir} \
+ ${ARCHFLAGS} \
+ ${PACKAGECONFIG_CONFARGS}
+}
+
+do_compile () {
+ export LD="${CXX}"
+ oe_runmake BUILDTYPE=Release
+}
+
+do_install () {
+ oe_runmake install DESTDIR=${D}
+
+ # wasn't updated since 2009 and is the only thing requiring python2 in runtime
+ # ERROR: nodejs-12.14.1-r0 do_package_qa: 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]
+ rm -f ${D}${exec_prefix}/lib/node_modules/npm/node_modules/node-gyp/gyp/samples/samples
+}
+
+do_install_append_class-native() {
+ # use node from PATH instead of absolute path to sysroot
+ # node-v0.10.25/tools/install.py is using:
+ # shebang = os.path.join(node_prefix, 'bin/node')
+ # update_shebang(link_path, shebang)
+ # and node_prefix can be very long path to bindir in native sysroot and
+ # when it exceeds 128 character shebang limit it's stripped to incorrect path
+ # and npm fails to execute like in this case with 133 characters show in log.do_install:
+ # updating shebang of /home/jenkins/workspace/build-webos-nightly/device/qemux86/label/open-webos-builder/BUILD-qemux86/work/x86_64-linux/nodejs-native/0.10.15-r0/image/home/jenkins/workspace/build-webos-nightly/device/qemux86/label/open-webos-builder/BUILD-qemux86/sysroots/x86_64-linux/usr/bin/npm to /home/jenkins/workspace/build-webos-nightly/device/qemux86/label/open-webos-builder/BUILD-qemux86/sysroots/x86_64-linux/usr/bin/node
+ # /usr/bin/npm is symlink to /usr/lib/node_modules/npm/bin/npm-cli.js
+ # use sed on npm-cli.js because otherwise symlink is replaced with normal file and
+ # npm-cli.js continues to use old shebang
+ sed "1s^.*^#\!/usr/bin/env node^g" -i ${D}${exec_prefix}/lib/node_modules/npm/bin/npm-cli.js
+
+ # Install the native binaries to provide it within sysroot for the target compilation
+ install -d ${D}${bindir}
+ install -m 0755 ${S}/out/Release/torque ${D}${bindir}/torque
+ install -m 0755 ${S}/out/Release/bytecode_builtins_list_generator ${D}${bindir}/bytecode_builtins_list_generator
+ if ${@bb.utils.contains('PACKAGECONFIG','icu','true','false',d)}; then
+ install -m 0755 ${S}/out/Release/gen-regexp-special-case ${D}${bindir}/gen-regexp-special-case
+ fi
+ install -m 0755 ${S}/out/Release/mkcodecache ${D}${bindir}/mkcodecache
+ install -m 0755 ${S}/out/Release/node_mksnapshot ${D}${bindir}/node_mksnapshot
+}
+
+do_install_append_class-target() {
+ sed "1s^.*^#\!${bindir}/env node^g" -i ${D}${exec_prefix}/lib/node_modules/npm/bin/npm-cli.js
+}
+
+PACKAGES =+ "${PN}-npm"
+FILES_${PN}-npm = "${exec_prefix}/lib/node_modules ${bindir}/npm ${bindir}/npx"
+RDEPENDS_${PN}-npm = "bash python3-core python3-shell python3-datetime \
+ python3-misc python3-multiprocessing"
+
+PACKAGES =+ "${PN}-systemtap"
+FILES_${PN}-systemtap = "${datadir}/systemtap"
+
+BBCLASSEXTEND = "native"