All of lore.kernel.org
 help / color / mirror / Atom feed
From: Richard Purdie <richard.purdie@linuxfoundation.org>
To: Steffen Sledz <sledz@dresearch-fe.de>
Cc: openembedded-devel <openembedded-devel@lists.openembedded.org>
Subject: Re: bitbake dependency cache problem
Date: Mon, 05 Mar 2012 05:28:23 -0800	[thread overview]
Message-ID: <1330954103.17022.15.camel@ted> (raw)
In-Reply-To: <4F4F7D9C.8070300@dresearch-fe.de>

On Thu, 2012-03-01 at 14:46 +0100, Steffen Sledz wrote:
> I'm working with oe-classic and BitBake Build Tool Core version
> 1.12.0, bitbake version 1.12.0.
> 
> Because of some special development requirements we like to generate
> the Package Version from the SVN Revision (not the Last Changed Rev!)
> of the bitbake recipe in the local workspace.
> 
> Therefor the recipe contains this:
> 
> ---------------->snip<-----------------
> PR = "r8"
> PV = "svnr${@svn_revision(d)}"
> 
> inherit svn-helper
> ---------------->snip<-----------------
> 
> The svn-helper.bbclass contains a little helper function to determine
> the needed value:
> 
> ---------------->snip<-----------------
> def svn_revision(d):
>      import subprocess
>      bbpath = os.path.dirname(bb.data.getVar('FILE',d,1))
>      return subprocess.check_output(["svn", "info", bbpath]).partition("Revision: ")[2].splitlines()[0]
> ---------------->snip<-----------------
> 
> After this changes i make a first build and everything works fine.
> Assuming the SVN Revsion is 42 a package called foo-svnr42-r8.ipk is
> generated.
> 
> Now i make an "svn update" inside the workspace and the SVN Revision
> increases to 66.
> 
> A call of "bitbake foo" now results in an "Tasks Summary: Attempted
> 1182 tasks of which 1182 didn't need to be rerun and 0 failed." an no
> new ipg is generated. :(
> 
> The log generated by "bitbake -DDDDDvvvvv foo" contains
> 
> ---------------->snip<-----------------
> DEBUG: providers for foo are: ['foo']
> NOTE: checking PREFERRED_PROVIDER_foo
> NOTE: checking PREFERRED_PROVIDER_foo-svnr42
> NOTE: checking PREFERRED_PROVIDER_foo-svnr42-r8
> ---------------->snip<-----------------
> 
> Why does bitbake not respects the new PV and generates a
> foo-svnr66-r8.ipk here???

Bitbake has no idea that the PV has changed and that it needs to ignore
the cache value and reparse the metadata for that file. The similar
example is when autorev is used with a source control system. You can
can see the code for this in lib/bb/fetch2/__init__.py in get_autorev().
In summary, if you set __BB_DONT_CACHE = "1" in your recipe, I think it
will do what you expect, at the cost that it will reparse the recipe
every time (which it has to in case PV changes).

Cheers,

Richard




  parent reply	other threads:[~2012-03-05 13:37 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-03-01 13:46 bitbake dependency cache problem Steffen Sledz
2012-03-05  7:55 ` Steffen Sledz
2012-03-05  7:55   ` Steffen Sledz
2012-03-05 13:28 ` Richard Purdie [this message]
2012-03-05 15:07   ` Steffen Sledz

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=1330954103.17022.15.camel@ted \
    --to=richard.purdie@linuxfoundation.org \
    --cc=openembedded-devel@lists.openembedded.org \
    --cc=sledz@dresearch-fe.de \
    /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.