nodejs cleanup and add
cover nodejs cleanup and add
The current stable version of nodejs is 4.2.2.
Currently there are two nodejs recipes from which to choose: nodejs, and nodejs4. A user would naturally assume nodejs4 refers to version 4.2.2, but they would be wrong. Nodejs4 refers to version 0.4.12.
Cleanup the current nodejs naming and include a new recipe for the latest stable version.
Trevor Woerner (2):
nodejs: cleanup
nodejs: add recipe for latest stable
.../enable-armv5e-build.patch | 0
.../{nodejs => nodejs-0.12.7}/no-registry.patch | 0
.../libev-cross-cc_0.4.12.patch | 0
meta-oe/recipes-devtools/nodejs/nodejs.inc | 80 ++++++++++++++++++++++
meta-oe/recipes-devtools/nodejs/nodejs_0.12.7.bb | 74 +-------------------
.../nodejs/{nodejs4_0.4.12.bb => nodejs_0.4.12.bb} | 2 +-
meta-oe/recipes-devtools/nodejs/nodejs_4.2.2.bb | 9 +++
7 files changed, 92 insertions(+), 73 deletions(-)
rename meta-oe/recipes-devtools/nodejs/{nodejs => nodejs-0.12.7}/enable-armv5e-build.patch (100%)
rename meta-oe/recipes-devtools/nodejs/{nodejs => nodejs-0.12.7}/no-registry.patch (100%)
rename meta-oe/recipes-devtools/nodejs/{nodejs4 => nodejs-0.4.12}/libev-cross-cc_0.4.12.patch (100%)
create mode 100644 meta-oe/recipes-devtools/nodejs/nodejs.inc
rename meta-oe/recipes-devtools/nodejs/{nodejs4_0.4.12.bb => nodejs_0.4.12.bb} (87%)
create mode 100644 meta-oe/recipes-devtools/nodejs/nodejs_4.2.2.bbSignature · 1 line
2.6.0.rc3
PATCH 1/2 nodejs: cleanup
Currently the latest stable version of node.js is 4.2.2. Also, currently, there are two nodejs recipes: one for nodejs and one for nodejs4. A user would naturally assume nodejs4 would be for the latest stable, but they would be wrong. Nodejs4 refers to version 0.4.12.
Cleanup the node recipes such that there are two nodejs recipes from which to choose. A user can select between them using the regular PREFERRED_VERSION_nodejs notation.
---
.../enable-armv5e-build.patch | 0
.../{nodejs => nodejs-0.12.7}/no-registry.patch | 0
.../libev-cross-cc_0.4.12.patch | 0
meta-oe/recipes-devtools/nodejs/nodejs.inc | 80 ++++++++++++++++++++++
meta-oe/recipes-devtools/nodejs/nodejs_0.12.7.bb | 74 +-------------------
.../nodejs/{nodejs4_0.4.12.bb => nodejs_0.4.12.bb} | 2 +-
6 files changed, 83 insertions(+), 73 deletions(-)
rename meta-oe/recipes-devtools/nodejs/{nodejs => nodejs-0.12.7}/enable-armv5e-build.patch (100%)
rename meta-oe/recipes-devtools/nodejs/{nodejs => nodejs-0.12.7}/no-registry.patch (100%)
rename meta-oe/recipes-devtools/nodejs/{nodejs4 => nodejs-0.4.12}/libev-cross-cc_0.4.12.patch (100%)
create mode 100644 meta-oe/recipes-devtools/nodejs/nodejs.inc
rename meta-oe/recipes-devtools/nodejs/{nodejs4_0.4.12.bb => nodejs_0.4.12.bb} (87%)meta-oe/recipes-devtools/nodejs/nodejs-0.12.7/enable-armv5e-build.patch renamed from meta-oe/recipes-devtools/nodejs/nodejs/enable-armv5e-build.patch +0 -0
meta-oe/recipes-devtools/nodejs/nodejs-0.12.7/no-registry.patch renamed from meta-oe/recipes-devtools/nodejs/nodejs/no-registry.patch +0 -0
meta-oe/recipes-devtools/nodejs/nodejs-0.4.12/libev-cross-cc_0.4.12.patch renamed from meta-oe/recipes-devtools/nodejs/nodejs4/libev-cross-cc_0.4.12.patch +0 -0
meta-oe/recipes-devtools/nodejs/nodejs.inc new file +80 -0
80 lines not on this page · raw message
meta-oe/recipes-devtools/nodejs/nodejs_0.12.7.bb +2 -72
81 lines not on this page · raw message
meta-oe/recipes-devtools/nodejs/nodejs_0.4.12.bb renamed from meta-oe/recipes-devtools/nodejs/nodejs4_0.4.12.bb +1 -1
@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM = "file://LICENSE;md5=d6237f3a840aef5b7880fb4e49eecfe5" DEPENDS = "openssl" -PNBLACKLIST[nodejs4] ?= "Used only by currently blacklisted cloud9 and fails to build for qemuarm with thumb: error: #error For thumb inter-working we require an architecture which supports blx" +PNBLACKLIST[nodejs_0.4.12] ?= "Used only by currently blacklisted cloud9 and fails to build for qemuarm with thumb: error: #error For thumb inter-working we require an architecture which supports blx" SRC_URI = " \ http://nodejs.org/dist/node-v${PV}.tar.gz \
Signature · 1 line
2.6.0.rc3
Re: [meta-oe][PATCH 1/2] nodejs: cleanup
Quoted 1 line
A user would
naturally assume nodejs4 would be for the latest stable, but they would be wrong. Nodejs4 refers to version 0.4.12.
It was using different recipe name intentionally, because both versions were meant to be built and installed in parallel, because some other recipes (like cloud9 mentioned in PNBLACKLIST) were (maybe still are) only with the older version 0.4.*.
As it was already PNBLACKLISTed I wouldn't mind removing it completely and replacing 0.12.7 with new version (without introducing the .inc) file.
One-version-to-rule-them-all is even more useful here as different nodejs versions aren't compatible with other recipes, so you cannot just change PREFERRED_VERSION and hope to build world.
Regards,
Quoted 285 lines · Trevor Woerner
Currently the latest stable version of node.js is 4.2.2. Also, currently, there are two nodejs recipes: one for nodejs and one for nodejs4. A user would
naturally assume nodejs4 would be for the latest stable, but they would be wrong. Nodejs4 refers to version 0.4.12.Cleanup the node recipes such that there are two nodejs recipes from which to
choose. A user can select between them using the regularPREFERRED_VERSION_nodejsnotation.Signed-off-by Trevor Woerner <[email protected]>--- .../enable-armv5e-build.patch | 0 .../{nodejs => nodejs-0.12.7}/no-registry.patch | 0 .../libev-cross-cc_0.4.12.patch | 0 meta-oe/recipes-devtools/nodejs/nodejs.inc | 80 ++++++++++++++++++++++ meta-oe/recipes-devtools/nodejs/nodejs_0.12.7.bb | 74 +------------------- .../nodejs/{nodejs4_0.4.12.bb => nodejs_0.4.12.bb} | 2 +- 6 files changed, 83 insertions(+), 73 deletions(-) rename meta-oe/recipes-devtools/nodejs/{nodejs => nodejs-0.12.7}/enable-armv5e-build.patch (100%) rename meta-oe/recipes-devtools/nodejs/{nodejs => nodejs-0.12.7}/no-registry.patch (100%) rename meta-oe/recipes-devtools/nodejs/{nodejs4 => nodejs-0.4.12}/libev-cross-cc_0.4.12.patch (100%) create mode 100644 meta-oe/recipes-devtools/nodejs/nodejs.inc rename meta-oe/recipes-devtools/nodejs/{nodejs4_0.4.12.bb =>nodejs_0.4.12.bb} (87%)
diff --git
a/meta-oe/recipes-devtools/nodejs/nodejs/enable-armv5e-build.patchb/meta-oe/recipes-devtools/nodejs/nodejs-0.12.7/enable-armv5e-build.patchsimilarity index 100%
rename frommeta-oe/recipes-devtools/nodejs/nodejs/enable-armv5e-build.patchrename tometa-oe/recipes-devtools/nodejs/nodejs-0.12.7/enable-armv5e-build.patchmeta-oe/recipes-devtools/nodejs/nodejs-0.12.7/no-registry.patch renamed from meta-oe/recipes-devtools/nodejs/nodejs/no-registry.patch +0
-0diff --git
a/meta-oe/recipes-devtools/nodejs/nodejs4/libev-cross-cc_0.4.12.patchb/meta-oe/recipes-devtools/nodejs/nodejs-0.4.12/libev-cross-cc_0.4.12.patchsimilarity index 100%
rename frommeta-oe/recipes-devtools/nodejs/nodejs4/libev-cross-cc_0.4.12.patchrename tometa-oe/recipes-devtools/nodejs/nodejs-0.4.12/libev-cross-cc_0.4.12.patchmeta-oe/recipes-devtools/nodejs/nodejs.inc new file +13
-0@@ -0,0 +1,80 @@ +DESCRIPTION = "nodeJS Evented I/O for V8 JavaScript" +HOMEPAGE = "http://nodejs.org" +LICENSE = "MIT & BSD & Artistic-2.0" +LIC_FILES_CHKSUM = "file://LICENSE;md5=14115ff11211df04b031ec7d40b6d31b" + +DEPENDS = "openssl" + +SRC_URI = "http://nodejs.org/dist/v${PV}/node-v${PV}.tar.gz \ + file://enable-armv5e-build.patch \ + file://no-registry.patch \ +" +SRC_URI[md5sum] = "5523ec4347d7fe6b0f6dda1d1c7799d5" +SRC_URI[sha256sum] ="
b23d64df051c9c969b0c583f802d5d71de342e53067127a5061415be7e12f39d"meta-oe/recipes-devtools/nodejs/nodejs.inc new file +16
-0+ +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('p(pc|owerpc)(|64)', a): return 'ppc' + elif re.match('i.86$', a): return 'ia32' + elif re.match('x86_64$', a): return 'x64' + elif re.match('arm64$', a): return 'arm' + return a + +ARCHFLAGS_arm = "${@bb.utils.contains('TUNE_FEATURES','callconvention-hard', '--with-arm-float-abi=hard', '--with-arm-float-abi=softfp', d)}"
meta-oe/recipes-devtools/nodejs/nodejs.inc new file +4
-0+GYP_DEFINES_append_mipsel = " mips_arch_variant='r1' " +ARCHFLAGS ?= "" + +# Node is way too cool to use proper autotools, so we install twowrappers to forcefully inject proper arch cflags to workaround gypi
meta-oe/recipes-devtools/nodejs/nodejs.inc new file +6
-0+do_configure () { + export LD="${CXX}" + GYP_DEFINES="${GYP_DEFINES}" export GYP_DEFINES + # $TARGET_ARCH settings don't match --dest-cpu settings + ./configure --prefix=${prefix} --without-snapshot --shared-openssl \ + --dest-cpu="${@map_nodejs_arch(d.getVar('TARGET_ARCH',True), d)}" \
meta-oe/recipes-devtools/nodejs/nodejs.inc new file +19
-0+ --dest-os=linux \ + ${ARCHFLAGS} +} + +do_compile () { + export LD="${CXX}" + oe_runmake BUILDTYPE=Release +} + +do_install () { + oe_runmake install DESTDIR=${D} +} + +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 sysrootand
+ # 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/npmto/home/jenkins/workspace/build-webos-nightly/device/qemux86/label/open-webos-builder/BUILD-qemux86/sysroots/x86_64-linux/usr/bin/nodemeta-oe/recipes-devtools/nodejs/nodejs.inc new file +2
-0+ # /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 withnormal file and
meta-oe/recipes-devtools/nodejs/nodejs.inc new file +2
-0+ # 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
meta-oe/recipes-devtools/nodejs/nodejs.inc new file +4
-0+} + +do_install_append_class-target() { + sed "1s^.*^#\!${bindir}/env node^g" -i${D}${exec_prefix}/lib/node_modules/npm/bin/npm-cli.js
meta-oe/recipes-devtools/nodejs/nodejs.inc new file +5
-0+} + +PACKAGES =+ "${PN}-npm" +FILES_${PN}-npm = "${exec_prefix}/lib/node_modules ${bindir}/npm" +RDEPENDS_${PN}-npm = "bash python-shell python-datetime python-subprocesspython-textutils"
meta-oe/recipes-devtools/nodejs/nodejs.inc new file +6
-0+ +PACKAGES =+ "${PN}-systemtap" +FILES_${PN}-systemtap = "${datadir}/systemtap" + + +BBCLASSEXTEND = "native"meta-oe/recipes-devtools/nodejs/nodejs_0.12.7.bb +2
-5@@ -1,9 +1,6 @@ -DESCRIPTION = "nodeJS Evented I/O for V8 JavaScript" -HOMEPAGE = "http://nodejs.org" -LICENSE = "MIT & BSD & Artistic-2.0" -LIC_FILES_CHKSUM = "file://LICENSE;md5=14115ff11211df04b031ec7d40b6d31b" +require nodejs.inc -DEPENDS = "openssl" +LIC_FILES_CHKSUM = "file://LICENSE;md5=14115ff11211df04b031ec7d40b6d31b" SRC_URI = "http://nodejs.org/dist/v${PV}/node-v${PV}.tar.gz \ file://enable-armv5e-build.patch \@@ -11,70 +8,3 @@ SRC_URI = " http://nodejs.org/dist/v${PV}/node-v${PV}.tar.gz \ " SRC_URI[md5sum] = "5523ec4347d7fe6b0f6dda1d1c7799d5" SRC_URI[sha256sum] ="
b23d64df051c9c969b0c583f802d5d71de342e53067127a5061415be7e12f39d"meta-oe/recipes-devtools/nodejs/nodejs_0.12.7.bb +0
-16- -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('p(pc|owerpc)(|64)', a): return 'ppc' - elif re.match('i.86$', a): return 'ia32' - elif re.match('x86_64$', a): return 'x64' - elif re.match('arm64$', a): return 'arm' - return a - -ARCHFLAGS_arm = "${@bb.utils.contains('TUNE_FEATURES','callconvention-hard', '--with-arm-float-abi=hard', '--with-arm-float-abi=softfp', d)}"
meta-oe/recipes-devtools/nodejs/nodejs_0.12.7.bb +0
-4-GYP_DEFINES_append_mipsel = " mips_arch_variant='r1' " -ARCHFLAGS ?= "" - -# Node is way too cool to use proper autotools, so we install twowrappers to forcefully inject proper arch cflags to workaround gypi
meta-oe/recipes-devtools/nodejs/nodejs_0.12.7.bb +0
-6-do_configure () { - export LD="${CXX}" - GYP_DEFINES="${GYP_DEFINES}" export GYP_DEFINES - # $TARGET_ARCH settings don't match --dest-cpu settings - ./configure --prefix=${prefix} --without-snapshot --shared-openssl \ - --dest-cpu="${@map_nodejs_arch(d.getVar('TARGET_ARCH',True), d)}" \
meta-oe/recipes-devtools/nodejs/nodejs_0.12.7.bb +0
-19- --dest-os=linux \ - ${ARCHFLAGS} -} - -do_compile () { - export LD="${CXX}" - oe_runmake BUILDTYPE=Release -} - -do_install () { - oe_runmake install DESTDIR=${D} -} - -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 sysrootand
- # 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/npmto/home/jenkins/workspace/build-webos-nightly/device/qemux86/label/open-webos-builder/BUILD-qemux86/sysroots/x86_64-linux/usr/bin/nodemeta-oe/recipes-devtools/nodejs/nodejs_0.12.7.bb +0
-2- # /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 withnormal file and
meta-oe/recipes-devtools/nodejs/nodejs_0.12.7.bb +0
-2- # 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
meta-oe/recipes-devtools/nodejs/nodejs_0.12.7.bb +0
-4-} - -do_install_append_class-target() { - sed "1s^.*^#\!${bindir}/env node^g" -i${D}${exec_prefix}/lib/node_modules/npm/bin/npm-cli.js
meta-oe/recipes-devtools/nodejs/nodejs_0.12.7.bb +0
-5-} - -PACKAGES =+ "${PN}-npm" -FILES_${PN}-npm = "${exec_prefix}/lib/node_modules ${bindir}/npm" -RDEPENDS_${PN}-npm = "bash python-shell python-datetime python-subprocesspython-textutils"
meta-oe/recipes-devtools/nodejs/nodejs_0.12.7.bb +0
-6- -PACKAGES =+ "${PN}-systemtap" -FILES_${PN}-systemtap = "${datadir}/systemtap" - - -BBCLASSEXTEND = "native"meta-oe/recipes-devtools/nodejs/nodejs_0.4.12.bb renamed from meta-oe/recipes-devtools/nodejs/nodejs4_0.4.12.bb +0
-0@@ -5,7 +5,7 @@ LIC_FILES_CHKSUM ="file://LICENSE;md5=d6237f3a840aef5b7880fb4e49eecfe5"
DEPENDS = "openssl"
-PNBLACKLIST[nodejs4] ?= "Used only by currently blacklisted cloud9 and fails to build for qemuarm with thumb: error: #error For thumb inter-working we require an architecture which supports blx" +PNBLACKLIST[nodejs_0.4.12] ?= "Used only by currently blacklisted cloud9 and fails to build for qemuarm with thumb: error: #error For thumb inter-working we require an architecture which supports blx"
SRC_URI = " \ http://nodejs.org/dist/node-v${PV}.tar.gz \--
2.6.0.rc3
Re: [meta-oe][PATCH 1/2] nodejs: cleanup
Quoted 2 lines · Martin Jansa
As it was already PNBLACKLISTed I wouldn't mind removing it completely and replacing 0.12.7 with new version (without introducing the .inc) file.
Thanks for providing the background info, I was wondering why it was implemented this way.
I'll submit a v2 where everything is replaced with 4.2.2.
Thanks
PATCH 2/2 nodejs: add recipe for latest stable
In reply to Trevor WoernerThe latest stable version of nodejs is 4.2.2; add a recipe to make it available.
--- meta-oe/recipes-devtools/nodejs/nodejs_4.2.2.bb | 9 +++++++++ 1 file changed, 9 insertions(+) create mode 100644 meta-oe/recipes-devtools/nodejs/nodejs_4.2.2.bb
meta-oe/recipes-devtools/nodejs/nodejs_4.2.2.bb new file +9 -0
@@ -0,0 +1,9 @@ +require nodejs.inc + +LIC_FILES_CHKSUM = "file://LICENSE;md5=ee90ba97d933fc8d56e97812b7dd62e9" + +SRC_URI = " \ + http://nodejs.org/dist/v${PV}/node-v${PV}.tar.gz \ + " +SRC_URI[md5sum] = "7c46c158e4c9a44cfbd039951c13dfe6" +SRC_URI[sha256sum] = "00e709353435b436b5bbf5e62272ebb15fe801065422c4c2afe2b93456210cb1"
Signature · 1 line
2.6.0.rc3