From: Baurzhan Ismagulov <ibr@radix50.net>
To: isar-users@googlegroups.com
Subject: Re: [RFC PATCH 0/3] Reproducible build
Date: Mon, 4 Jun 2018 13:37:36 +0200 [thread overview]
Message-ID: <20180604113736.GD5657@yssyq.radix50.net> (raw)
In-Reply-To: <3a6032fee718de6cf44fff4e8051a8c7a89a6471.camel@denx.de>
Hello Claudius,
On Fri, May 25, 2018 at 07:04:53PM +0200, Claudius Heine wrote:
> - Idea 0: Store tarball of debootstrap output with filled apt cache and use
> that to restore isar-bootstrap.
> - Idea 1: Generate a repository from the cache and use that for the next
> debootstrap run.
> - Idea 2: Like idea 1 but with aptly. And then use aptly to manage packages.
> - Idea 3: Create a whole repo mirror with aptly or similar and strip unused
> packages later.
> - Idea 4: Create a whole repo mirror with aptly or similar and import used
> package into a new repo.
> - Idea 5: Implementing a 'caching proxy' feature in aptly.
> - Idea 6: Implementing a caching proxy feature in isar.
Thanks for summarizing, this makes it easier to communicate.
Some general points first:
* I'm ok with a partial implementation that goes in the right direction.
* I'd really like to see user docs, also in RFC, because UX is a part of the
design. It shows what use cases the change covers and how it does that.
Regarding the implementation, I think idea 1 is the right way to go. Today, we
operate with pure Debian inputs -- packages and metadata -- to build our
outputs. Debian inputs are what we should store.
> Because of the contra arguments 'whole local mirror' and 'different apt
> repo urls are used' I would got for 0 and 5.
Idea 1 is very similar to your current implementation and is achievable with
dpkg-scanpackages and debootstrapping.
I'm not proposing the whole mirror, just the packages you debootstrap +
dpkg-scanpackages.
Our actual problem is:
1. Getting the list of packages we need.
2. Fetching and managing them locally.
Proxying is a quick approach to avoid solving the problem rather than
addressing it. Also, it wouldn't support all Debian's fetch methods.
> Critique 1: Similar to my 'simple solution' but adds the creation of an
> additional repository to it. -> higher complexity
> Pro: debootstrap process is done on every build.
> Con: Different apt repo urls are used.
> For me that is a no-go, because that means the configuration
> is different between the initial and subsequent builds.
IIUC, this is also the case with your current implementation. You build without
or with ISAR_BOOTSTRAP_TARBALL. This could be changed to building with or
without e.g. ISAR_BOOTSTRAP_SOURCE containing a complete sources.list line.
> How to add new packages later? (maybe like partial update?)
With the tarball, you suggest deleting and starting from scratch for now. For
the first step, I'd suggest to limit the usage to that. That is possible with
idea 1, too.
In the future, we'd need some tool. FWIW, I'm currently not aware of a tool
that does both (1) and (2) above or is sufficiently suitable for that. So, I
think we should work with Debian to get introspection on debootstrap and
apt-get and work on the tool for (2). Cooperating with some project would be
nice, but isn't a requirement for me.
> How to handle multiple repos?
> => map all repos from initial run to the local one.
Currently, you suggest to use multiple tarballs. With idea 1, you could provide
multiple directories.
FWIW, Alex's implementation [1] did (1) and (2) in a Debian way in a single
repo, without duplication.
> And then what? => cannot be reverted, loss of information
It doesn't have to be reverted. Maintaining that manually would be
time-consuming, but that is what people are forced to do today anyway. The
feature would ease that burden till partial mirror management is implemented.
So, I'd be happy to review patches with:
1. Package directory as output, dpkg-scanpackages, and debootstrap on every
build.
2. User docs giving an example of initial usage, versioning, and one update
(e.g., deleting everything and starting from scratch). I agree that we don't
impose versioning tools on our users, but we should demonstrate one simple
working setup, even if with binary artifacts in git.
References:
1. https://groups.google.com/forum/#!topic/isar-users/QQUsVmSaAGk
With kind regards,
Baurzhan.
next prev parent reply other threads:[~2018-06-04 11:37 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 [this message]
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
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=20180604113736.GD5657@yssyq.radix50.net \
--to=ibr@radix50.net \
--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