Re: [yocto] Pre-installing node.js packages

2019-07-16 Thread Jean-marie Lemetayer
Hi,

You can check this link: https://wiki.yoctoproject.org/wiki/TipsAndTricks/NPM

I have recently added some fixes concerning npm. But I still have
some issues using devtool: e.g the lockdown.json generation using
the npm lockdown module is erroneous.

I have no time for now, but I have planned to upstream some fixes.

- Original Message -
From: "Andy Pont" 
To: "Yocto-mailing-list" 
Sent: Tuesday, July 16, 2019 5:03:27 PM
Subject: [yocto] Pre-installing node.js packages

Hello,

Is there a way to add node.js packages into a build?  I’m trying to 
avoid having to include npm and compiler into my target image.

-Andy.

-- 
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto
-- 
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


[yocto] [npm] duplicate code

2019-10-03 Thread Jean-marie Lemetayer
Hi all,

I am planning to do some work on npm and recipetool.

I have seen that there is some duplicate code between 
bitbake/lib/bb/fetch2/npm.py and scripts/lib/recipetool/create_npm.py but there 
is some inconsistencies.

Here is an example, the _parse_view() function which I patched recently has 
differ:
https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/bitbake/lib/bb/fetch2/npm.py#n157
https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/scripts/lib/recipetool/create_npm.py#n244

I think merging this "npm utility functions" is a good idea. But where ?

I think about creating a new file: bitbake/lib/bb/npm_utils.py

Or maybe use the existing bitbake/lib/bb/utils.py ?

What do you think ?


Jean-Marie LEMETAYER
Enthusiast embedded systems engineer
Savoir-faire Linux
-- 
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


Re: [yocto] [npm] duplicate code

2019-10-04 Thread Jean-marie Lemetayer
Hi Stefan,

I have recently worked on a yocto project using npm and I have seen some 
issues. I have solved a few but only for bitbake:
https://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=eecba41822e86b69ebdb9cbc8fbfd512ad9a47d7
https://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=a34d0d539e5fdf341541fb628652d22289e80512
https://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=e90cd2ed61b93ee7e290e7e592f1f0242ab5c281
https://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=a35abe31dc23916fd06afdb3a5e22a81ef3df579

As I have more time now, I wanted to continue my work by fixing devtool / 
recipetool.

I have also checked the bugzilla for issues that I could fix / that should be 
tested again:
https://bugzilla.yoctoproject.org/show_bug.cgi?id=10515
https://bugzilla.yoctoproject.org/show_bug.cgi?id=10760
https://bugzilla.yoctoproject.org/show_bug.cgi?id=11028
https://bugzilla.yoctoproject.org/show_bug.cgi?id=11029
https://bugzilla.yoctoproject.org/show_bug.cgi?id=12534
https://bugzilla.yoctoproject.org/show_bug.cgi?id=13415

I ended up with this todo list:
 - merge the duplicate code between bitbake and recipetool
 - fix the npm package name handling in recipetool
 - fix the npm package version handling in recipetool
 - fix the lockdown.json file generation in recipetool
 - create an example nodejs application to test all these cases
 - update the wiki using this example application:
   https://wiki.yoctoproject.org/wiki/TipsAndTricks/NPM

Finally, in my recent project, we were using angular (https://angular.io) for 
the front-end. I have planned to add the work done to support angular 
applications in yocto (angular.bbclass) and update recipetool to handle them.

Your work sounds very interesting. The good point is that npm-shrinkwrap.json 
and lockdown.json files (which have generation issues btw) will no longer be 
required. But projects using npm can have a lot of dependencies (e.g. the 
angular example app have 1053 dependencies). Is recipetool will be handling the 
whole recipes creation in one time ?

Is it possible to see your work ? A public fork would be nice. I would gladly 
help you / test your work / add my fixes if needed.

Best regards,
Jean-Marie Lemetayer

- Mail original -
De: "Stefan Herbrechtsmeier" 
À: "Yocto-mailing-list" 
Envoyé: Vendredi 4 Octobre 2019 08:53:10
Objet: Re: [yocto] [npm] duplicate code

Hi Jean-Marie,

what work do you plan to do on npm and recipetool?

I have start to rework the complete npm integration to synchronize it 
with other languages like python. I replace the bitbake npm fetch with 
the wget fetcher and download the npm tgz files direct. The idea is to 
handle every package as a separate recipe and move the package 
dependencies into the recipes. Therefore I parse the package.json and 
the npm server json to create a recipe.

Regards
   Stefan


Am 03.10.19 um 17:37 schrieb Jean-marie Lemetayer:
> Hi all,
> 
> I am planning to do some work on npm and recipetool.
> 
> I have seen that there is some duplicate code between 
> bitbake/lib/bb/fetch2/npm.py and scripts/lib/recipetool/create_npm.py but 
> there is some inconsistencies.
> 
> Here is an example, the _parse_view() function which I patched recently has 
> differ:
> https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/bitbake/lib/bb/fetch2/npm.py#n157
> https://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/scripts/lib/recipetool/create_npm.py#n244
> 
> I think merging this "npm utility functions" is a good idea. But where ?
> 
> I think about creating a new file: bitbake/lib/bb/npm_utils.py
> 
> Or maybe use the existing bitbake/lib/bb/utils.py ?
> 
> What do you think ?
> 
> 
> Jean-Marie LEMETAYER
> Enthusiast embedded systems engineer
> Savoir-faire Linux
> 

-- 
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto
-- 
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


Re: [yocto] [npm] duplicate code

2019-10-07 Thread Jean-marie Lemetayer
Hi Stefan,

I thought about your idea of using Yocto to manage NPM package dependencies and 
I ran into an issue. NPM projects can have multiple dependencies on a single 
package, and sometimes with multiple versions. NPM will manage this by creating 
sub 'node_modules' tree.

Here is an example with a newly created angular application. The app depends on 
3 different version of 'ansi-regex'. NPM will install the packages this way:
node_modules/ansi-regex @ 2.1.1
node_modules/cliui/node_modules/ansi-regex @ 3.0.0
node_modules/inquirer/node_modules/ansi-regex @ 4.1.0
node_modules/string-width/node_modules/ansi-regex @ 3.0.0
node_modules/@angular/compiler-cli/node_modules/ansi-regex @ 4.1.0

How can you handle that with Yocto ? I am not sure but I think it is not 
possible.

For that reason I think I will base my developments on the master branch.

- Mail original -
> De: "Stefan Herbrechtsmeier" 
> À: "Jean-marie Lemetayer" 
> Cc: "Yocto-mailing-list" , "Savoir-faire Linux 
> Rennes" 
> Envoyé: Vendredi 4 Octobre 2019 16:55:47
> Objet: Re: [yocto] [npm] duplicate code

> Hi Jean-Marie,
> 
> Am 04.10.19 um 14:37 schrieb Jean-marie Lemetayer:
>> > I have recently worked on a yocto project using npm and I have seen some 
>> > issues.
>> > I have solved a few but only for bitbake:
>> https://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=eecba41822e86b69ebdb9cbc8fbfd512ad9a47d7
>> https://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=a34d0d539e5fdf341541fb628652d22289e80512
>> https://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=e90cd2ed61b93ee7e290e7e592f1f0242ab5c281
>> https://git.yoctoproject.org/cgit/cgit.cgi/poky/commit/?id=a35abe31dc23916fd06afdb3a5e22a81ef3df579
>> 
>> As I have more time now, I wanted to continue my work by fixing devtool /
>> recipetool.
>> 
>> I have also checked the bugzilla for issues that I could fix / that should be
>> tested again:
>> https://bugzilla.yoctoproject.org/show_bug.cgi?id=10515
>> https://bugzilla.yoctoproject.org/show_bug.cgi?id=10760
>> https://bugzilla.yoctoproject.org/show_bug.cgi?id=11028
>> https://bugzilla.yoctoproject.org/show_bug.cgi?id=11029
>> https://bugzilla.yoctoproject.org/show_bug.cgi?id=12534
>> https://bugzilla.yoctoproject.org/show_bug.cgi?id=13415
>> 
>> I ended up with this todo list:
>>   - merge the duplicate code between bitbake and recipetool
>>   - fix the npm package name handling in recipetool
>>   - fix the npm package version handling in recipetool
>>   - fix the lockdown.json file generation in recipetool
>>   - create an example nodejs application to test all these cases
>>   - update the wiki using this example application:
>>     https://wiki.yoctoproject.org/wiki/TipsAndTricks/NPM
>> 
>> Finally, in my recent project, we were using angular (https://angular.io) for
>> the front-end. I have planned to add the work done to support angular
>> applications in yocto (angular.bbclass) and update recipetool to handle them.
> 
> Do you want to build an angular application? In this case you have to
> produce a machine (independent) package via a native npm build because
> you need to run the angular compiler on the build machine.

Yes, I have an 'angular-cli_x.y.z.bb' and an 'angular.bbclass' which depends on 
'angular-cli-native'. I have planned to upstream this work.

> 
>> 
>> Your work sounds very interesting. The good point is that npm-shrinkwrap.json
>> and lockdown.json files (which have generation issues btw) will no longer be
>> required. But projects using npm can have a lot of dependencies (e.g. the
>> angular example app have 1053 dependencies).
> 
> A lot of dependencies are the problem at the moment. But many
> dependencies are not update frequently and my current solution assume
> that I can always use the latest version per major release version
> 
>> Is recipetool will be handling the whole recipes creation in one time ?
> 
> That's the problem at the moment. I don't manage to build multiple
> recipes from one recipetool run. Therefore I have a two stage approach.
> I use recipetool to build exact one recipe. A second script generates a
> list of all dependencies and call recipetool per package if the recipe
> doesn't already exist. This works but the run time is very high.
> 
>> Is it possible to see your work ? A public fork would be nice. I would gladly
>> help you / test your work / add my fixes if needed.
> 
> I only have a unfinished Proof of Concept. If you like I could clean it
> up a bit and post it on github as a separate layer.

Like I said at the start of this email, I will not base my dev on yours. But I 
am still interested by seeing your work.

Best regards,
Jean-Marie
-- 
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


Re: [yocto] nodejs npm qemux86_64

2019-11-08 Thread Jean-Marie LEMETAYER
Hi Jonas,

I am currently refactoring / updating the npm handling in Yocto:
http://lists.openembedded.org/pipermail/openembedded-core/2019-October/288352.html
http://lists.openembedded.org/pipermail/bitbake-devel/2019-October/020449.html

Your point is very interesting, I will take it into account for the next 
patchset version.

Best regards,
Jean-Marie

- On Nov 7, 2019, at 10:56 PM, Jonas Andersson jonaskganders...@gmail.com 
wrote:

> Hi,
> 
> I have installation problems for npm recipes.
> Using Yocto thud and machine=qemux86_64(wrlinux-x), but as I can see it this
> concerns all
> use of npm.bbclass for 64-bits system.
> 
> The problem seems to be the use of ${libdir} in npm.bbclass, when 64 bit is 
> used
> this expands to lib64.
> npm install --prefix ${D}${prefix} installs to /usr/lib/node_modules which is
> not
> in sync with the following mv ${D}${libdir}/node_modules ${D}${libdir}/node.
> 
> I made an quick fix by replacing ${libdir} by ${prefix}/lib/, but as I see it
> nodejs packages never is installed to lib64 in any other system as I can find
> information about.
> 
> So the question is if the use of ${libdir} is bad and the path should always 
> be
> to /lib/?
> 
> Best regards
> Jonas
> 
> 
> --
> ___
> yocto mailing list
> yocto@yoctoproject.org
> https://lists.yoctoproject.org/listinfo/yocto
-- 
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto


Re: [yocto] nodejs npm qemux86_64

2019-11-08 Thread Jean-Marie LEMETAYER
Actually I just update my patchset to use ${nonarch_libdir} instead of 
${libdir}.

This will be on the next patchset version.

For your information you can check the meta/conf/bitbake.conf file for others 
target filesystem paths.

Best regards,
Jean-Marie

On Nov 8, 2019, at 10:46 AM, Jean-Marie LEMETAYER 
jean-marie.lemeta...@savoirfairelinux.com wrote:
> Hi Jonas,
> 
> I am currently refactoring / updating the npm handling in Yocto:
> http://lists.openembedded.org/pipermail/openembedded-core/2019-October/288352.html
> http://lists.openembedded.org/pipermail/bitbake-devel/2019-October/020449.html
> 
> Your point is very interesting, I will take it into account for the next
> patchset version.
> 
> Best regards,
> Jean-Marie
> 
> On Nov 7, 2019, at 10:56 PM, Jonas Andersson jonaskganders...@gmail.com wrote:
>> Hi,
>> 
>> I have installation problems for npm recipes.
>> Using Yocto thud and machine=qemux86_64(wrlinux-x), but as I can see it this
>> concerns all
>> use of npm.bbclass for 64-bits system.
>> 
>> The problem seems to be the use of ${libdir} in npm.bbclass, when 64 bit is 
>> used
>> this expands to lib64.
>> npm install --prefix ${D}${prefix} installs to /usr/lib/node_modules which is
>> not
>> in sync with the following mv ${D}${libdir}/node_modules ${D}${libdir}/node.
>> 
>> I made an quick fix by replacing ${libdir} by ${prefix}/lib/, but as I see it
>> nodejs packages never is installed to lib64 in any other system as I can find
>> information about.
>> 
>> So the question is if the use of ${libdir} is bad and the path should always 
>> be
>> to /lib/?
>> 
>> Best regards
>> Jonas
-- 
___
yocto mailing list
yocto@yoctoproject.org
https://lists.yoctoproject.org/listinfo/yocto