[oe] [PATCH] [v2] added recipe for nodejs

AJ ONeal coolaj86 at gmail.com
Fri Aug 27 17:40:29 UTC 2010


Upstream is making some changes so that my patches probably won't be
necessary.

I'm going to wait a week or two and I'll resubmit once node-v0.2.1 comes out
which will most likely include the changes.

AJ ONeal

On Thu, Aug 26, 2010 at 11:54 PM, AJ ONeal <coolaj86 at gmail.com> wrote:

> I'll resubmit this weekend and put that patch tutorial on the wiki too.
>
> AJ ONeal
>
>
>
> On Thu, Aug 26, 2010 at 10:04 PM, Khem Raj <raj.khem at gmail.com> wrote:
>
>> On (24/08/10 01:57), Paul Menzel wrote:
>> > Dear AJ,
>> >
>> >
>> > sorry I overlooked that message. I will reply to your other message
>> > tomorrow.
>> >
>> >
>> > Am Montag, den 23.08.2010, 17:22 -0600 schrieb AJ ONeal:
>> > > bump
>> > >
>> > > AJ ONeal
>> > >
>> > > On Sat, Aug 21, 2010 at 9:28 PM, AJ ONeal <coolaj86 at gmail.com> wrote:
>> > >
>> > > > ---
>> >
>> > After this line a short summary of the changes compared to previous
>> > iterations would be great. Git will ignore this when applying the patch
>> > but it eases the work of the reviewers.
>> >
>> > > >  recipes/nodejs/files/libev-cross-cc.patch          |   18
>> ++++++++++++
>> > > >  recipes/nodejs/files/node-cross-cc.patch           |   14
>> ++++++++++
>> > > >  .../node-dont-include-hosts-usr-include.patch      |   22
>> +++++++++++++++
>> > > >  recipes/nodejs/nodejs_0.2.0.bb                     |   28
>> > > > ++++++++++++++++++++
>> > > >  4 files changed, 82 insertions(+), 0 deletions(-)
>> > > >  create mode 100644 recipes/nodejs/files/libev-cross-cc.patch
>> > > >  create mode 100644 recipes/nodejs/files/node-cross-cc.patch
>> > > >  create mode 100644
>> > > > recipes/nodejs/files/node-dont-include-hosts-usr-include.patch
>> > > >  create mode 100644 recipes/nodejs/nodejs_0.2.0.bb
>> > > >
>> > > > diff --git a/recipes/nodejs/files/libev-cross-cc.patch
>> > > > b/recipes/nodejs/files/libev-cross-cc.patch
>> > > > new file mode 100644
>> > > > index 0000000..446015b
>> > > > --- /dev/null
>> > > > +++ b/recipes/nodejs/files/libev-cross-cc.patch
>> > > > @@ -0,0 +1,18 @@
>> > > > +diff --git node-v0.2.0/deps/libev/wscript.orig
>> > > > node-v0.2.0/deps/libev/wscript
>> > > > +index 19e7bb2..f0a3d3b 100644
>> > > > +--- node-v0.2.0/deps/libev/wscript.orig
>> > > > ++++ node-v0.2.0/deps/libev/wscript
>> > > > +@@ -52,7 +52,12 @@ def configure(conf):
>> > > > +           return 0;
>> > > > +       }
>> > > > +   """
>> > > > +-  conf.check_cc(fragment=code, define_name="HAVE_CLOCK_SYSCALL",
>> > > > execute=True,
>> > > > ++  # TODO determine this dynamically
>> > > > ++  CROSS = True
>> > > > ++  execute = True
>> > > > ++  if CROSS:
>> > > > ++    execute = False
>> > > > ++  conf.check_cc(fragment=code, define_name="HAVE_CLOCK_SYSCALL",
>> > > > execute=execute,
>> > > > +                 msg="Checking for SYS_clock_gettime")
>> > > > +
>> > > > +   have_librt = conf.check(lib='rt', uselib_store='RT')
>> > > > diff --git a/recipes/nodejs/files/node-cross-cc.patch
>> > > > b/recipes/nodejs/files/node-cross-cc.patch
>> > > > new file mode 100644
>> > > > index 0000000..48a6226
>> > > > --- /dev/null
>> > > > +++ b/recipes/nodejs/files/node-cross-cc.patch
>> > > > @@ -0,0 +1,14 @@
>> > > > +diff --git node-v0.2.0/wscript.orig node-v0.2.0/wscript
>> > > > +index df9ef53..a55d464 100644
>> > > > +--- node-v0.2.0/wscript.orig
>> > > > ++++ node-v0.2.0/wscript
>> > > > +@@ -326,6 +326,9 @@ def v8_cmd(bld, variant):
>> > > > +   arch = ""
>> > > > +   if bld.env['DEST_CPU'] == 'x86_64':
>> > > > +     arch = "arch=x64"
>> > > > ++  # XXX Better support cross-compilation
>> > > > ++  else:
>> > > > ++    arch = "arch=" + bld.env['DEST_CPU']
>> > > > +
>> > > > +   if variant == "default":
>> > > > +     mode = "release"
>> > > > diff --git
>> a/recipes/nodejs/files/node-dont-include-hosts-usr-include.patch
>> > > > b/recipes/nodejs/files/node-dont-include-hosts-usr-include.patch
>> > > > new file mode 100644
>> > > > index 0000000..edbf7c4
>> > > > --- /dev/null
>> > > > +++ b/recipes/nodejs/files/node-dont-include-hosts-usr-include.patch
>> > > > @@ -0,0 +1,22 @@
>> > > > +diff --git node-v0.2.0/wscript.orig node-v0.2.0/wscript
>> > > > +index 3c5ebc5..905bd58 100644
>> > > > +--- node-v0.2.0/wscript.orig
>> > > > ++++ node-v0.2.0/wscript
>> > > > +@@ -162,11 +162,12 @@ def configure(conf):
>> > > > +   if Options.options.efence:
>> > > > +     conf.check(lib='efence', libpath=['/usr/lib',
>> '/usr/local/lib'],
>> > > > uselib_store='EFENCE')
>> > > > +
>> > > > +-  if not conf.check(lib="execinfo", includes=['/usr/include',
>> > > > '/usr/local/include'], libpath=['/usr/lib', '/usr/local/lib'],
>> > > > uselib_store="EXECINFO"):
>> > > > +-    # Note on Darwin/OS X: This will fail, but will still be used
>> as the
>> > > > +-    # execinfo stuff are part of the standard library.
>> > > > +-    if sys.platform.startswith("freebsd"):
>> > > > +-      conf.fatal("Install the libexecinfo port from
>> > > > /usr/ports/devel/libexecinfo.")
>> > > > ++  # OpenEmbedded doesn't like us checking here
>> > > > ++  #if not conf.check(lib="execinfo", includes=['/usr/include',
>> > > > '/usr/local/include'], libpath=['/usr/lib', '/usr/local/lib'],
>> > > > uselib_store="EXECINFO"):
>> > > > ++  #  # Note on Darwin/OS X: This will fail, but will still be used
>> as the
>> > > > ++  #  # execinfo stuff are part of the standard library.
>> > > > ++  #  if sys.platform.startswith("freebsd"):
>> > > > ++  #    conf.fatal("Install the libexecinfo port from
>> > > > /usr/ports/devel/libexecinfo.")
>> > > > +
>> > > > +   if not Options.options.without_ssl:
>> > > > +     if conf.check_cfg(package='openssl',
>> >
>> > Did you sent these patches upstream? Maybe document that in the patch
>> > headers. There is also a page in the Wiki regarding this.
>> >
>> > > > diff --git a/recipes/nodejs/nodejs_0.2.0.bb b/recipes/nodejs/
>> > > > nodejs_0.2.0.bb
>> > > > new file mode 100644
>> > > > index 0000000..83bfa2e
>> > > > --- /dev/null
>> > > > +++ b/recipes/nodejs/nodejs_0.2.0.bb
>> > > > @@ -0,0 +1,28 @@
>> > > > +DESCRIPTION = "nodeJS Evented I/O for V8 JavaScript"
>> > > > +HOMEPAGE = "http://nodejs.org"
>> > > > +LICENSE = "MIT"
>> > > > +DEPENDS = "openssl"
>> > > > +SRC_URI = " \
>> > > > +  http://nodejs.org/dist/node-v${PV}.tar.gz<http://nodejs.org/dist/node-v$%7BPV%7D.tar.gz>\
>> > > > +  file://node-cross-cc.patch \
>> > > > +  file://libev-cross-cc.patch \
>> > > > +  file://node-dont-include-hosts-usr-include.patch \
>> > > > +"
>> > > > +#file://libev-arm-cross.patch \
>> >
>> > Is that commented line needed?
>> >
>> > > > +SRC_URI[md5sum] = "99a6dacc44b3f9c6ec376ccb446dd0b8"
>> > > > +SRC_URI[sha256sum] =
>> > > > "3d3eff9287c9917af4044f3cef99ae5b17946710a71e83039de4fcb4b0a26631"
>> > > > +S = "${WORKDIR}/node-v${PV}"
>> > > > +do_configure () {
>> > > > +  ./configure --prefix=${D} --without-snapshot
>> > > > +}
>> >
>> > Can you use `EXTRA_OECONF` (Do `git grep EXTRA_OECONF` in the repository
>> > to get examples.)
>>
>> its ok. Since its override the do_configure
>>
>> >
>> > I think you might need `inherit autotools`, but I am not sure.
>>
>>
>> no this package does not use autotools it not needed.
>>
>> >
>> > > > +do_compile () {
>> > > > +  make
>> > > > +}
>> >
>> > Is that needed? What about Frans’ suggestion?
>>
>> should use oe_runmake instea of bare make to exploit parallelism.
>>
>> >
>> > > > +do_install () {
>> > > > +  #oe_runmake install # doesn't install to correct location
>> > > > +
>> > > > +  # This works
>> > > > +  install -d ${D}${bindir}/
>> > > > +  install -m 0755 ${S}/node ${D}${bindir}/
>> > > > +}
>> > > > +FILES_${PN} = "${bindir}/node"
>> >
>> > Why is that needed?
>> >
>> > I am a beginner, so I hope my comments are correct. If so please submit
>> > a v3 and do not forget your Signed-off-by line.
>>
>> right.
>> >
>> >
>> > Thanks,
>> >
>> > Paul
>>
>>
>>
>> > _______________________________________________
>> > Openembedded-devel mailing list
>> > Openembedded-devel at lists.openembedded.org
>> > http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
>>
>>
>> _______________________________________________
>> Openembedded-devel mailing list
>> Openembedded-devel at lists.openembedded.org
>> http://lists.linuxtogo.org/cgi-bin/mailman/listinfo/openembedded-devel
>>
>
>



More information about the Openembedded-devel mailing list