From: Steffen Sledz <sledz@dresearch-fe.de>
To: Richard Purdie <richard.purdie@linuxfoundation.org>
Cc: bitbake-devel@lists.openembedded.org,
openembedded-devel <openembedded-devel@lists.openembedded.org>
Subject: Re: bitbake dependency cache problem
Date: Mon, 05 Mar 2012 16:07:16 +0100 [thread overview]
Message-ID: <4F54D6A4.9080904@dresearch-fe.de> (raw)
In-Reply-To: <1330954103.17022.15.camel@ted>
On 05.03.2012 14:28, Richard Purdie wrote:
> 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).
This solution seems to work. :)
Thx,
Steffen
--
DResearch Fahrzeugelektronik GmbH
Otto-Schmirgal-Str. 3, 10319 Berlin, Germany
Tel: +49 30 515932-237 mailto:sledz@dresearch-fe.de
Fax: +49 30 515932-299
Geschäftsführer: Dr. Michael Weber, Werner Mögle;
Amtsgericht Berlin Charlottenburg; HRB 130120 B;
Ust.-IDNr. DE273952058
prev parent reply other threads:[~2012-03-05 15:15 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
2012-03-05 15:07 ` Steffen Sledz [this message]
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=4F54D6A4.9080904@dresearch-fe.de \
--to=sledz@dresearch-fe.de \
--cc=bitbake-devel@lists.openembedded.org \
--cc=openembedded-devel@lists.openembedded.org \
--cc=richard.purdie@linuxfoundation.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.