From: Henning Schild <henning.schild@siemens.com>
To: Alexander Smirnov <asmirnov@ilbers.de>
Cc: <isar-users@googlegroups.com>
Subject: Re: [RFC][PATCH 0/3] Experiments with .dsc backend
Date: Wed, 2 May 2018 10:19:33 +0200 [thread overview]
Message-ID: <20180502101933.78da7849@md1pvb1c.ad001.siemens.net> (raw)
In-Reply-To: <e677f4f4-de07-0481-a133-91ab8e7a7a8d@ilbers.de>
Am Fri, 27 Apr 2018 18:46:17 +0300
schrieb Alexander Smirnov <asmirnov@ilbers.de>:
> On 04/23/2018 07:03 PM, Henning Schild wrote:
> > Am Mon, 23 Apr 2018 18:26:10 +0300
> > schrieb Alexander Smirnov <asmirnov@ilbers.de>:
> >
> >> On 04/23/2018 05:36 PM, Henning Schild wrote:
> >>> Am Mon, 23 Apr 2018 16:21:43 +0300
> >>> schrieb Alexander Smirnov <asmirnov@ilbers.de>:
> >>>
> >>>> Hi everybody,
> >>>>
> >>>> as it was planned initially, one of the Isar feature is the
> >>>> ability to rebuild original Debian packages with/without
> >>>> customizations. Doing this manually in classical Yocto/OE style
> >>>> requires manual setting of lots of variables and having a copy of
> >>>> Debian patch (*.debian.tar.xz) for this package in your recipe's
> >>>> folder. Maintenance of this system becomes very complicated.
> >>>>
> >>>> I performed a small research regarding bitbake capabilities and
> >>>> found an interesting trick: during bitbake parsing stage (in
> >>>> anonymous tasks) we could re-construct whole recipe (including
> >>>> tasks and variable), and this snapshot will be stored in recipe's
> >>>> dynamic context, that is used during pipeline execution.
> >>>>
> >>>> This series is just a PoC, lots of issues are still open, like:
> >>>> - Patching upstream packages
> >>>> - Automatic cross-recipe dependency detection to avoid
> >>>> duplications in recipe and debian/control files
> >>>> - etc...
> >>>>
> >>>> To test this series just run:
> >>>>
> >>>> $ bitbake hello
> >>>>
> >>>> After build, in hello workdir there will be a newly-baked
> >>>> identical copy of upstream package :-)
> >>>
> >>> Interesting idea, but my personal feeling is that Isar already
> >>> uses a lot of bitbake magic and we should maybe try to avoid
> >>> introducing more where feasible.
> >>>
> >>
> >> Bitbake was designed for Open Embedded, so it doesn't consider our
> >> Isar/Debian usecases. And roughly speaking, bitbake usage in Isar
> >> is a kind of hack at all. In such questions, I'd more prefer to
> >> focus on the features we need and extend bitbake, instead of
> >> applying Yocto philosophy to Isar. But this also is only my
> >> personal feeling.
> >>>> Feedbacks, ideas, proposals are welcome!
> >>>
> >>> So my feedback would be that the .dsc to recipe step should be put
> >>> in a helper tool in the scripts directory. People that want to
> >>> modifiy upstream packages would generate an isar-recipe with the
> >>> tool once. Modifications in the form of patches could go on top.
> >>> Or would this limit the envisioned feature in any way?
> >>
> >> IMHO this is undesired behavior:
> >> - Extra step to generate new recipes
> >
> > Yes, but you can see it.
>
> For now I'd like to try keeping user interface as it is. In general,
> generated files are hard to maintain, especially when you mix them
> with repository content (generate them inside existing meta). If you
> generate these files in a separate meta - then you need to add this
> meta to build, it's also extra step. Moreover in this case the
> default clear source tree is inconsistent, generated part is missed
> by default.
>
> Anyway this approach could be an option if I'll get in stuck with
> current implementation.
>
> >
> >> - Extra step to add these recipes to build
> >
> > No, not really. You will have to mention your recipe somewhere if
> > you want it in your image. What is does and how does not change
> > that fact.
> >
> > BTW, did you try overloading something like an essential package?
> > Think of something that is in buildchroot and needs to be updated
> > in there. (libc in the worst case ...)
>
> Not yet, probably I posted here too early. This is only PoC for
> automatic .dsc parsing. Application use-cases are in todo. Probably
> it makes sense to come with them, so we will have real cases to
> discuss :-)
>
> >
> >> - Headache with maintenance: you touch some dsc -> you need to
> >> regenerate new recipes etc...
> >
> > True, but major changes in the upstream package will probably make
> > your patches not apply anymore. So i suspect headache here as well,
> > the one thing you do with such a tool is story copies of possibly
> > outdated dscs, which indeed is a bad idea.
> > So the online recipe generation is probably the way to go.
> >
>
> In case of any Debian update you anyway have to specify new .dsc
> file, because the previous one will be removed (until you use local
> mirror). So automatic support of customized upstream package.. It's a
> kind of "I want to believe" :-(
>
> So, let me think a bit more about user interface and use-cases.
>
> >> - You should somehow/somewhere list of .dsc files
> >> So this looks like a completely new ecosystem.
> >>
> >> .dsc is standard format to describe Debian source packages. So
> >> anyway, to be Debian compliant Isar should support this format.
> >>
> >>>
> >>> I also fear that this could complicate the reproducable build
> >>> story.
> >>
> >> In general this doesn't affect reproducibility at all. The key
> >> difference from typical recipe (build from tarball), that SRC_URI
> >> is derived dynamically from .dsc file during parsing stage. The
> >> remaining part of the pipeline stays untouched.
> >
> > It affects it because we will have to redirect every fetch to a
> > local cache, and it introduces fetching.
>
> Sorry, could you please explain what you mean here? What is the
> difference of calling do_fetch and call fetcher manually?
At the moment there is no difference. But patches that introduce
reproducability might modify do_fetch to handle caching centrally.
Maybe it will be done in another way, so just something to keep in mind.
Henning
> Alex
>
> >
> > Henning
> >
> >>>
> >>> Henning
> >>>
> >>>> With best regards,
> >>>> Alex
> >>>>
> >>>> Alexander Smirnov (3):
> >>>> buildchroot: Include texinfo to base system
> >>>> classes/dsc: Basic Debian .dsc backend implementation
> >>>> recipes-debian: Add example recipe to test Debian .dsc
> >>>> support
> >>>>
> >>>> meta-isar/recipes-debian/hello/hello.bb | 10 ++
> >>>> meta/classes/debian-dsc.bbclass | 112
> >>>> +++++++++++++++++++++++
> >>>> meta/recipes-devtools/buildchroot/buildchroot.bb | 3 +- 3 files
> >>>> changed, 124 insertions(+), 1 deletion(-) create mode 100644
> >>>> meta-isar/recipes-debian/hello/hello.bb create mode 100644
> >>>> meta/classes/debian-dsc.bbclass
> >>>>
> >>>
> >
next prev parent reply other threads:[~2018-05-02 8:19 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-04-23 13:21 Alexander Smirnov
2018-04-23 13:21 ` [RFC][PATCH 1/3] buildchroot: Include texinfo to base system Alexander Smirnov
2018-04-23 13:21 ` [RFC][PATCH 2/3] classes/dsc: Basic Debian .dsc backend implementation Alexander Smirnov
2018-04-23 15:04 ` Henning Schild
2018-04-23 16:11 ` Alexander Smirnov
2018-04-23 17:27 ` Henning Schild
2018-04-25 10:11 ` Jan Kiszka
2018-05-08 17:40 ` Henning Schild
2018-04-23 13:21 ` [RFC][PATCH 3/3] recipes-debian: Add example recipe to test Debian .dsc support Alexander Smirnov
2018-04-23 14:36 ` [RFC][PATCH 0/3] Experiments with .dsc backend Henning Schild
2018-04-23 15:26 ` Alexander Smirnov
2018-04-23 16:03 ` Henning Schild
2018-04-27 15:46 ` Alexander Smirnov
2018-05-02 8:19 ` Henning Schild [this message]
2018-05-08 17:37 ` Henning Schild
2018-05-08 18:31 ` Alexander Smirnov
2018-05-09 7:37 ` Henning Schild
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=20180502101933.78da7849@md1pvb1c.ad001.siemens.net \
--to=henning.schild@siemens.com \
--cc=asmirnov@ilbers.de \
--cc=isar-users@googlegroups.com \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox