All of lore.kernel.org
 help / color / mirror / Atom feed
From: Richard Purdie <rpurdie@rpsys.net>
To: openembedded-devel@lists.openembedded.org
Subject: Re: Checksums in Bitbake
Date: Wed, 24 Mar 2010 21:46:07 +0000	[thread overview]
Message-ID: <1269467167.1681.169.camel@rex> (raw)
In-Reply-To: <ac9c93b11003241317y2f6a6bbbs78936ee603d8ce3b@mail.gmail.com>

On Wed, 2010-03-24 at 21:17 +0100, Frans Meulenbroeks wrote:
> 2010/3/24 Chris Larson <clarson@kergoth.com>:
> > On Wed, Mar 24, 2010 at 8:15 AM, Frans Meulenbroeks <
> > fransmeulenbroeks@gmail.com> wrote:
> >
> >> Interesting ideas.
> >> I need to let this digest a little  bit.
> >>
> >> Some initial thougths
> >> The checksum should also depend on the checksum of the underlying
> >> packages. E.g. if A depends on B and the checksum of B changes it
> >> should trigger a rebuild of A.
> >>
> >
> > I don't think this is a very good idea, personally.  As an option, perhaps,
> > but we do things the way we do for a reason, just because a dep of mine is
> > rebuilt doesn't automatically require that I be rebuilt.  I'd suggest moving
> > to an alternative which encodes the library ABI and incorporates that into
> > the hashes of things that depend upon it, but we can certainly do what you
> > want as an optional feature.
> 
> If a dep is rebuild there is a reason for it (bug fix, packaging
> changed, changes in exported files etc etc).
> This might impact the using recipe.
> If baking a file does not result in a rebuild when a dependency is
> changed, probably a warning should be given.
> 
> Encoding the library ABI is only part of the job. You'd also have to
> take the .h files a package exports into account as constants in it
> could be changed.
> And even the using package could change its behaviour (e.g. because
> configure runs differently).
> Note also that if we abandon PR we do not really have an easy
> mechanism to force recompilation of a package (if a depenency changed
> and we want to force a rebuild).

Its worth noting you can enable this now with BB_STAMP_POLICY. I see
something similar being the likely outcome with checksums. Some people
will want the full dependency tree, some people won't. We can support
both just as we do now.

> > Global variables should absolutely be included, imo.  The reason for going
> > with a blacklist rather than a whitelist approach is to, as richard says,
> > make it less error prone.  It ensures that the failure mode is something
> > being rebuilt, rather than using possibly incorrect binaries.  I'd rather it
> > take a bit longer to build than result in questionable output.  If
> > calculating the checksum time becomes a concern, which I doubt, you could
> > hash the configuration metadata at ConfigParsed time and incorporate that
> > hash into the hash generated of the recipe.  This could increase the
> > likelihood of collisions, but I'm not too worried.  Let's get things
> > working, and determine the bottlenecks at that point.
> 
> Agree, but as changes in vars are less likely we could consider having
> something to DISTRO_PR.
> My nightmare is that if I am going to build console-image (about 3000
> tasks) that it goes to check 3000 times if my TMPDIR is not changed.
> Some caching will definitely be needed

The checksums are likely to be constructed at parsing time. Compared to
the cost of building the datastore I'm hopeful the cost of building the
checksum will be low. The current caching algorithms will rebuild the
checksums when needed just fine.

Cheers,

Richard





  reply	other threads:[~2010-03-24 21:49 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-03-24 13:27 Checksums in Bitbake Richard Purdie
2010-03-24 15:15 ` Frans Meulenbroeks
2010-03-24 15:51   ` Chris Larson
2010-03-24 20:17     ` Frans Meulenbroeks
2010-03-24 21:46       ` Richard Purdie [this message]
2010-03-25  7:45         ` Frans Meulenbroeks
2010-03-27 18:31           ` Reproducible builds (Was Re: Checksums in Bitbake) GNUtoo
2010-03-27 18:54             ` Tom Rini
2010-03-27 19:14               ` Koen Kooi
2010-03-29 10:42             ` Sander van Grieken

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=1269467167.1681.169.camel@rex \
    --to=rpurdie@rpsys.net \
    --cc=openembedded-devel@lists.openembedded.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.