From: Martin Jansa <martin.jansa@gmail.com>
To: openembedded-devel@lists.openembedded.org
Subject: Re: [PATCH 1/2] nodejs: Upgrade to 0.12.0
Date: Thu, 5 Mar 2015 15:17:06 +0100 [thread overview]
Message-ID: <20150305141706.GS2337@jama> (raw)
In-Reply-To: <1425518853-20124-1-git-send-email-raj.khem@gmail.com>
[-- Attachment #1: Type: text/plain, Size: 6948 bytes --]
On Thu, Mar 05, 2015 at 01:27:32AM +0000, Khem Raj wrote:
> Tested on mips1
>
> Change-Id: I54211c2c323dbec1d38eb526ae183775ba3241f1
> Signed-off-by: Khem Raj <raj.khem@gmail.com>
> ---
> meta-oe/recipes-devtools/nodejs/nodejs_0.12.0.bb | 83 ++++++++++++++++++++++++
> meta-oe/recipes-devtools/nodejs/nodejs_0.8.18.bb | 44 -------------
> 2 files changed, 83 insertions(+), 44 deletions(-)
> create mode 100644 meta-oe/recipes-devtools/nodejs/nodejs_0.12.0.bb
> delete mode 100644 meta-oe/recipes-devtools/nodejs/nodejs_0.8.18.bb
>
> diff --git a/meta-oe/recipes-devtools/nodejs/nodejs_0.12.0.bb b/meta-oe/recipes-devtools/nodejs/nodejs_0.12.0.bb
> new file mode 100644
> index 0000000..fae4b59
> --- /dev/null
> +++ b/meta-oe/recipes-devtools/nodejs/nodejs_0.12.0.bb
> @@ -0,0 +1,83 @@
> +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"
This breaks cloud9, but I'm willing to take this (because cloud9 was
blocking all nodejs upgrades for too long already), but can you please
fix this first:
nodejs-0.12.0: nodejs-npm requires /bin/bash, but no providers in its
RDEPENDS [file-rdeps]
btw: is it time to remove nodejs4 as well if nobody steps-up to fix cloud9?
> +SRC_URI = "http://nodejs.org/dist/v${PV}/node-v${PV}.tar.gz"
> +SRC_URI[md5sum] = "62c8d9c74c8f68193f60e4cba020eb48"
> +SRC_URI[sha256sum] = "9700e23af4e9b3643af48cef5f2ad20a1331ff531a12154eef2bfb0bb1682e32"
> +
> +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)}"
> +GYP_DEFINES_append_mipsel = " mips_arch_variant='r1' "
> +ARCHFLAGS ?= ""
> +
> +# 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
> + ./configure --prefix=${prefix} --without-snapshot --shared-openssl \
> + --dest-cpu="${@map_nodejs_arch(d.getVar('TARGET_ARCH', True), d)}" \
> + --dest-os=linux \
> + ${ARCHFLAGS}
> +}
> +
> +do_compile () {
> + export LD="${CXX}"
> + make 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 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}${libdir}/node_modules/npm/bin/npm-cli.js
> +}
> +
> +do_install_append_class-target() {
> + sed "1s^.*^#\!${bindir}/env node^g" -i ${D}${libdir}/node_modules/npm/bin/npm-cli.js
> +}
> +
> +RDEPENDS_${PN} = "curl"
> +RDEPENDS_${PN}_class-native = ""
> +
> +PACKAGES =+ "${PN}-npm"
> +FILES_${PN}-npm = "${libdir}/node_modules ${bindir}/npm"
> +RDEPENDS_${PN}-npm = "python-shell python-datetime python-subprocess python-textutils"
> +
> +PACKAGES =+ "${PN}-dtrace"
> +FILES_${PN}-dtrace = "${libdir}/dtrace"
> +
> +PACKAGES =+ "${PN}-systemtap"
> +FILES_${PN}-systemtap = "${datadir}/systemtap"
> +
> +
> +BBCLASSEXTEND = "native"
> diff --git a/meta-oe/recipes-devtools/nodejs/nodejs_0.8.18.bb b/meta-oe/recipes-devtools/nodejs/nodejs_0.8.18.bb
> deleted file mode 100644
> index 839bfa4..0000000
> --- a/meta-oe/recipes-devtools/nodejs/nodejs_0.8.18.bb
> +++ /dev/null
> @@ -1,44 +0,0 @@
> -SUMMARY = "nodeJS Evented I/O for V8 JavaScript"
> -HOMEPAGE = "http://nodejs.org"
> -LICENSE = "MIT & BSD"
> -LIC_FILES_CHKSUM = "file://LICENSE;md5=95a589a3257ab7dfe37d8a8379e3c72d"
> -
> -DEPENDS = "openssl"
> -
> -inherit pythonnative
> -
> -SRC_URI = "http://nodejs.org/dist/v${PV}/node-v${PV}.tar.gz \
> - file://0001-gcc-has-a-builtin-define-to-denote-hard-abi-when-in-.patch \
> -"
> -SRC_URI[md5sum] = "25ed6aa5710ac46b867ff3f17a4da1d6"
> -SRC_URI[sha256sum] = "1d63dd42f9bd22f087585ddf80a881c6acbe1664891b1dda3b71306fe9ae00f9"
> -
> -S = "${WORKDIR}/node-v${PV}"
> -
> -# v8 errors out if you have set CCACHE
> -CCACHE = ""
> -
> -ARCHFLAGS_arm = "${@bb.utils.contains('TUNE_FEATURES', 'callconvention-hard', '--with-arm-float-abi=hard', '--with-arm-float-abi=softfp', d)}"
> -ARCHFLAGS ?= ""
> -
> -# 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}"
> -
> - ./configure --prefix=${prefix} --without-snapshot ${ARCHFLAGS}
> -}
> -
> -do_compile () {
> - export LD="${CXX}"
> - make BUILDTYPE=Release
> -}
> -
> -do_install () {
> - oe_runmake install DESTDIR=${D}
> -}
> -
> -RDEPENDS_${PN} = "curl python-shell python-datetime python-subprocess python-crypt python-textutils python-netclient "
> -RDEPENDS_${PN}_class-native = ""
> -
> -FILES_${PN} += "${libdir}/node/wafadmin ${libdir}/node_modules ${libdir}/dtrace ${libdir}/*"
> -BBCLASSEXTEND = "native"
> --
> 2.1.4
>
> --
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-devel
--
Martin 'JaMa' Jansa jabber: Martin.Jansa@gmail.com
[-- Attachment #2: Digital signature --]
[-- Type: application/pgp-signature, Size: 188 bytes --]
next prev parent reply other threads:[~2015-03-05 14:17 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-03-05 1:27 [PATCH 1/2] nodejs: Upgrade to 0.12.0 Khem Raj
2015-03-05 1:27 ` [PATCH 2/2] lirc: Recommend to have lirc-plugins at runtime Khem Raj
2015-03-05 14:17 ` Martin Jansa [this message]
2015-03-05 14:28 ` [meta-oe][PATCH] cloud9, nodejs4: blacklist Martin Jansa
2015-03-05 15:48 ` [meta-oe][PATCHv2] " Martin Jansa
2015-03-07 10:25 ` [PATCH 1/2] nodejs: Upgrade to 0.12.0 Martin Jansa
2015-03-08 11:08 ` Khem Raj
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20150305141706.GS2337@jama \
--to=martin.jansa@gmail.com \
--cc=openembedded-devel@lists.openembedded.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.