All of lore.kernel.org
 help / color / mirror / Atom feed
From: Derek Straka <straka.derek@gmail.com>
To: Alexander Kanavin <alexander.kanavin@linux.intel.com>
Cc: Yocto Project <yocto@yoctoproject.org>,
	openembedded-architecture
	<openembedded-architecture@lists.openembedded.org>,
	Doug Goldstein <cardoe@cardoe.com>,
	Otavio Salvador <otavio.salvador@ossystems.com.br>
Subject: Re: [Openembedded-architecture] Proposal: dealing with language-specific build tools/dependency management tools
Date: Fri, 10 Mar 2017 10:33:10 -0500	[thread overview]
Message-ID: <CADNbA1p-BM9NiEmXo8GpbiLLvykaR1crzN7a479D-y=vuuN0HA@mail.gmail.com> (raw)
In-Reply-To: <2ce1386b-e63b-4aea-0685-7abf949de115@linux.intel.com>

[-- Attachment #1: Type: text/plain, Size: 3549 bytes --]

On Fri, Mar 10, 2017 at 10:10 AM, Alexander Kanavin <
alexander.kanavin@linux.intel.com> wrote:

> On 03/10/2017 04:58 PM, Otavio Salvador wrote:
>
>> I'd like to avoid generating entire separate recipes though, because that
>>> implies your custom-written tool would be figuring out where the
>>> dependency
>>> source came from in the first place, and what are its own dependencies,
>>> when
>>> creating the recipe, which can be tricky, breakage-prone guesswork.
>>>
>>
>> In fact not; as you generate the recipes for the dependencies, it goes
>> recursively and is always good.
>>
>
> Would it also be true for npm, Rust, Go, and other languages that will
> come along? In your specific case the metadata may be easily available to
> parse and convert to recipe form, but this many not hold in other
> situations.
>
> npm fetcher for instance was a nightmare to write, from what I've heard:
>
> http://git.yoctoproject.org/cgit/cgit.cgi/poky/tree/bitbake/
> lib/bb/fetch2/npm.py
>
> I want to use existing tools (like 'npm install') for getting the stuff
>>> from
>>> the network - we don't really need full recipes, we just want to know the
>>> licenses of the dependencies, and, if possible, lock them down to a
>>> specific
>>> version.
>>>
>>
>> Well we initially thought this would suffice but consider a security
>> flaw. As many apps may be using different versions of same package it
>> becomes a nightmare to figure which ones are affected. If using
>> dependencies it is fine, for free.
>>
>
> The lockdown files would list the versions of the dependencies (if it is
> possible, which is not always true), so you can inspect those to see if
> something is vulnerable. In node.js or Go worlds the libraries are not
> reused between apps anyway, so it really doesn't matter if they're packaged
> as separate recipes or not (I didn't have time to check Rust, but as it's
> also using lockdown files, I believe the libraries are not reused either).
>
> I can chime in on how we do things in meta-rust.  Right now, each
application is statically linked against the crate library versions it
calls out.  At this point, the rust ABI is not stable between versions of
the compiler, so we made the conscious decision to avoid dynamic libraries
for the time being.  We acknowledge this does increase the file system
size, but we didn't want to have to deal with users trying to perform
package updates on individual shared objects.  We have our own cargo module
that we maintain that helps users generate their bitbake recipe for a given
package [1].  There was a small bit of work done on trying to create so
files, but it became an unmanageable version nightmare isn't supported
moving forward[2].  We also maintain our own custom fetcher for crates [3]
and ran into some issues getting it totally supported without integrating
it into the set of bitbake fetchers [4][5].

-Derek

[1] - https://github.com/meta-rust/meta-rust
[2] - https://github.com/cardoe/cargo-bitbake
[3] - https://github.com/meta-rust/meta-rust/tree/master/recipes-core
[4] - https://github.com/meta-rust/meta-rust/blob/master/lib/crate.py
[5] - https://github.com/meta-rust/meta-rust/issues/136
[6] - https://bugzilla.yoctoproject.org/show_bug.cgi?id=10867


Alex



>
> _______________________________________________
> Openembedded-architecture mailing list
> Openembedded-architecture@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-architecture
>

[-- Attachment #2: Type: text/html, Size: 5711 bytes --]

  reply	other threads:[~2017-03-10 15:33 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-03-10 13:49 Proposal: dealing with language-specific build tools/dependency management tools Alexander Kanavin
2017-03-10 14:30 ` [Openembedded-architecture] " Otavio Salvador
2017-03-10 14:48   ` Alexander Kanavin
2017-03-10 14:58     ` Otavio Salvador
2017-03-10 15:10       ` Alexander Kanavin
2017-03-10 15:33         ` Derek Straka [this message]
2017-03-10 15:35         ` Derek Straka
2017-03-13  8:25         ` Piotr Figiel
2017-03-13 17:51         ` Bruce, Henry
2017-03-16 10:25           ` Alexander Kanavin
2017-03-10 16:23       ` Mark Hatle
2017-03-10 20:37       ` Josef Holzmayr
2017-03-10 20:49 ` Trevor Woerner
2017-03-11 13:07   ` Josef Holzmayr
2017-03-13 20:58 ` Paul Eggleton
2017-03-16  8:17 ` [Openembedded-architecture] Sum up - " Josef Holzmayr
2017-03-16  9:30   ` Paul Barker
2017-03-16 10:35     ` Alexander Kanavin
2017-03-16 10:48       ` Jack Mitchell
2017-03-16 11:42         ` Alexander Kanavin
2017-03-16 11:47           ` Alexander Kanavin
2017-03-16 19:41         ` Patrick Ohly
2017-03-16 15:45       ` Mark Hatle
2017-03-16 15:43     ` Mark Hatle
2017-03-16 10:21   ` Alexander Kanavin

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='CADNbA1p-BM9NiEmXo8GpbiLLvykaR1crzN7a479D-y=vuuN0HA@mail.gmail.com' \
    --to=straka.derek@gmail.com \
    --cc=alexander.kanavin@linux.intel.com \
    --cc=cardoe@cardoe.com \
    --cc=openembedded-architecture@lists.openembedded.org \
    --cc=otavio.salvador@ossystems.com.br \
    --cc=yocto@yoctoproject.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.