From: Claudius Heine <claudius.heine.ext@siemens.com>
To: "Maxim Yu. Osipov" <mosipov@ilbers.de>, isar-users@googlegroups.com
Cc: Silvano Cirujano Cuesta <silvano.cirujano-cuesta@siemens.com>
Subject: Re: [RFC PATCH 0/3] Reproducible build
Date: Thu, 14 Jun 2018 10:50:13 +0200 [thread overview]
Message-ID: <e610d738-9b3d-7256-a80c-cecde9028649@siemens.com> (raw)
In-Reply-To: <348ee070-a530-b594-b8dc-2d85a4fdc083@siemens.com>
Hi,
On 2018-06-11 15:51, [ext] Claudius Heine wrote:
> Hi,
>
> On 2018-06-11 10:45, [ext] Claudius Heine wrote:
>> Hi Maxim,
>>
>> On 2018-06-07 10:08, Maxim Yu. Osipov wrote:
>>> Hi Claudius,
>>>
>>> As far as I understood, 'apt-move' doesn't fit your requirements.
>>
>> The documented functionality of apt-move would fit the requirements,
>> but since its no longer maintained and has bugs that makes it
>> incompatible with debootstrap, it cannot be used.
>>
>>> Nevertheless, diagram illustrating the approach you propose would be
>>> be very helpful.
>>>
>>> As for diagram you attached to email below, honestly, it's rather
>>> difficult to understand it - too many arrows :(. It's worth to
>>> additionally describe the steps in text (and put corresponding
>>> numbers on the picture).
>>
>> Yes I know its a bit overwhelming with all those arrows. It was much
>> worse before and this is the result of much simplifications.
>>
>> But either way, since we cannot use apt-move I have to investigate
>> what is possible with reprepro and change the diagram accordingly.
>
> reprepro does provide many nice features that might be interesting to
> use. For instance the 'gensnapshot' command. This caused me to further
> redesign this approach as the diagram attached shows.
>
> I know this kind of diagram does not 100% the UML meaning, but I could
> not find a diagram type that really fits to what I want to show here.
>
> This time I try to explain a bit more about what those arrows mean and
> how to read this diagram.
>
> Dashed lines symbolizes dependencies between steps or 'packages' (in
> this case I mean those 'isar-bootstrap', 'buildchroot', 'recipes' and
> 'image'. So if they are followed from the 'debootstrap download' in the
> 'isar-bootstrap' package upwards, then this is the execution order. When
> the 'package import' component is reached the next 'package' in the
> dependency graph are started. This is 'buildchroot' or 'image'. Normally
> that is the buildchroot. Only if there are no recieps around that need a
> buildchroot it could be skipped. That means the last step to be executed
> is the 'finished' one.
>
> The arrows going out from those database things, mean that packages are
> used from their. Those arrows have the same arrow head as the dependency
> arrows. In this diagram I made the lines of the arrows that are going
> out from 'local partial upstream mirror' a bit thicker to better
> differentiate them from the other ones.
>
> The arrows that are going to 'to local mirror', 'to isar repository or
> 'create local snapshot' nodes have a slightly different arrow head.
> These arrows mean that there are debian packages that are added to repos.
>
> The basic idea it that after every step that installs or upgrades
> packages to the rootfs those packages are added to the local partial
> mirror. This can be done by first doing a download-only step adding it
> to the repo and then doing an install from the repo or the cache.
>
> I also changed how the repo is build. The current idea it to have one
> repository with 2 components. One component for all upstream packages
> and one for all isar built packages. When the snapshot is generated in
> the end it will create one containing both components.
>
> Maybe we should start adding the build time to all files in the deploy
> directory. This way we could add this to the name of the snapshot as
> well, so the association between those is made clear.
>
> What do you think?
This solution has one issue I can currently think of. It doesn't solve this:
>>> U3.4. Remove packages not used in any previous commit.
>>
>> I am currently not sure what you mean by that. Why would there be
packages
>> that aren't used in any previous commits?
>
> Bad wording, I meant just "remove unused packages".
We could solve that by always creating a fresh repository and add the
repository from the old build as primary source for the current one.
However, this is getting even more complex and I might need more
arrows... :/
It would be simple if we didn't need to combine this with updatability
of selected packages and automated fetching of new packages.
Cheers,
Claudius
>
> best regards,
> Claudius
>
>>
>> Claudius
>>
>>>
>>> Kind regards,
>>> Maxim.
>>>
>>> On 06/05/2018 12:42 PM, Claudius Heine wrote:
>>>> Hi,
>>>>
>>>> On 2018-06-04 18:05, [ext] Claudius Heine wrote:
>>>>> I will try to post a small graphic about this soon.
>>>>
>>>> I attached the design Jan and me came up with yesterday.
>>>>
>>>> Hopefully its understandable enough even with all those arrows
>>>> pointing around. I tried to vary the arrow lines and heads to
>>>> signify dependencies/execution order, using of repositories and
>>>> deploying packages to the repositories.
>>>>
>>>> The main point about this is that it will work with apt preferences
>>>> repository pinning and that we will try to move all installed
>>>> packages to the local cache after every step.
>>>>
>>>> I highlighted the new components in the diagram as green and the
>>>> changed components as light green.
>>>>
>>>> If this is the way we want to go then I would try to get a RFC
>>>> patchset started.
>>>>
>>>> Cheers,
>>>> Claudius
>>>>
>>>
>>>
>>
>
--
DENX Software Engineering GmbH, Managing Director: Wolfgang Denk
HRB 165235 Munich, Office: Kirchenstr.5, D-82194 Groebenzell, Germany
Phone: (+49)-8142-66989-54 Fax: (+49)-8142-66989-80 Email: ch@denx.de
next prev parent reply other threads:[~2018-06-14 8:50 UTC|newest]
Thread overview: 33+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-05-22 11:55 Idea for implementing reproducible builds Claudius Heine
2018-05-22 13:47 ` Andreas Reichel
2018-05-22 14:24 ` Claudius Heine
2018-05-22 22:32 ` Baurzhan Ismagulov
2018-05-23 8:22 ` Claudius Heine
2018-05-23 11:34 ` Claudius Heine
2018-06-04 11:48 ` Baurzhan Ismagulov
2018-05-23 6:32 ` [RFC PATCH 0/3] Reproducible build claudius.heine.ext
2018-05-23 6:32 ` [RFC PATCH 1/3] meta/isar-bootstrap-helper+dpkg.bbclass: bind mount /var/cache/apt/archives claudius.heine.ext
2018-05-23 6:32 ` [RFC PATCH 2/3] meta/classes/image: added isar_bootstrap_tarball task claudius.heine.ext
2018-05-23 6:32 ` [RFC PATCH 3/3] meta/isar-bootstrap: add 'do_restore_from_tarball' task claudius.heine.ext
2018-05-23 14:30 ` [RFC PATCH 0/3] Reproducible build Maxim Yu. Osipov
2018-05-23 15:20 ` Claudius Heine
2018-05-24 16:00 ` Henning Schild
2018-05-25 8:10 ` Claudius Heine
2018-05-25 11:57 ` Maxim Yu. Osipov
2018-05-25 17:04 ` Claudius Heine
2018-06-04 11:37 ` Baurzhan Ismagulov
2018-06-04 16:05 ` Claudius Heine
2018-06-05 10:42 ` Claudius Heine
2018-06-06 9:17 ` Claudius Heine
2018-06-06 14:20 ` Claudius Heine
2018-06-07 8:50 ` Baurzhan Ismagulov
2018-06-07 8:08 ` Maxim Yu. Osipov
2018-06-11 8:45 ` Claudius Heine
2018-06-11 13:51 ` Claudius Heine
2018-06-14 8:50 ` Claudius Heine [this message]
2018-06-20 4:20 ` Maxim Yu. Osipov
2018-06-20 8:12 ` Claudius Heine
2018-05-23 13:26 ` [RFC PATCH v2 " claudius.heine.ext
2018-05-23 13:26 ` [RFC PATCH v2 1/3] meta/isar-bootstrap-helper+dpkg.bbclass: bind mount /var/cache/apt/archives claudius.heine.ext
2018-05-23 13:26 ` [RFC PATCH v2 2/3] meta/classes/image: added isar_bootstrap_tarball task claudius.heine.ext
2018-05-23 13:26 ` [RFC PATCH v2 3/3] meta/isar-bootstrap: add 'do_restore_from_tarball' task claudius.heine.ext
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=e610d738-9b3d-7256-a80c-cecde9028649@siemens.com \
--to=claudius.heine.ext@siemens.com \
--cc=isar-users@googlegroups.com \
--cc=mosipov@ilbers.de \
--cc=silvano.cirujano-cuesta@siemens.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