On 23-08-16 17:32, Richard Purdie wrote:
> On Tue, 2016-08-23 at 15:15 +0000, Peter Kjellerstedt wrote:
>> This is the first I heard about limits to recipes that inherit
>> allarch
>> and also use RDEPENDS. So after I read the above, I went and read the
>> documentation for the allarch class, which unfortunately did not make
>> my understanding much clearer.
>>
>> Am I to understand that a recipe that inherits allarch cannot have
>> runtime dependencies on packages that are built differently per
>> architecture or MACHINE? If so, what can it have runtime dependencies
>> on? Only other allarch recipes? What are the design limitations
>> behind this and is there anything that could be done to change the
>> situation?
>
> It can depend on them, only if you add it to the list of dependencies
> in layer.conf, either SIGGEN_EXCLUDERECIPES_ABISAFE or
> SIGGEN_EXCLUDE_SAFE_RECIPE_DEPS. The implication of that is that if
> one of these recipes changes, the dependency will not be rebuilt, so
> you have to be careful about things like these packages getting
> renamed.
>
> Its basically a choice, we can have allarch packages and accept we
> can't always rebuild them through the sstate hash changes, or we don't
> have allarch packages at all (or have packages that can't have non
> -allarch dependencies).
First time I've heard about this limitation, I don't understand what's this
about either. I've been telling people to put their arch or machine specific
code into a seperate package and RDEPEND on it from an allarch package that
holds the Python code that calls into that.
We haven't seen any problems with that.
So what is the bad thing that would happen if we don't set the
SIGGEN_EXCLUDE... variables in the layer.conf file?
>> As an example, say that I have a recipe that only installs a static
>> script, so inheriting allarch is a natural thing to do. However, for
>> this script to work it must call a binary built by another recipe so
>> it of course RDEPENDS on that other package. Are you saying this is
>> wrong? Because that sounds odd to me as it severely limits the
>> usefulness of the allarch class.
>
> You can do this if and only if you list it in layer.conf.
>
>> Another example would be a recipe that installs a static Perl script.
>> Can it not inherit allarch while also have a runtime dependency on
>> perl?
>>
>> If the above is true, why are there no QA tests or similar that catch
>> these kind of problems?
>
> We do have sstate hash tests in oe-selftest which would highlight such
> a problem.
>
> There are various open bugs complaining about this situation however
> I've yet to come up with a way which solves the problem perfectly, much
> as I'd like to.
I'm totally in the dark as to what should go where now.
Given the situation above, a recipe called "static-perl-script.bb" that
requires the "perl" interpreter, what should we put into layer.conf then?
Kind regards,
Mike Looijmans
System Expert

|
TOPIC
Products |
|
|
|
Materiaalweg
4 |
|
|
|
5681
RJ Best |
T: |
+31 (0) 499 33
69 69 |
|
Postbus
440 |
E: |
mike.looijmans@topicproducts.com |
|
5680 AK
Best |
W: |
www.topicproducts.com |
| The Netherlands |
|
|
|


Please consider the environment before printing this
e-mail
Topic zoekt gedreven (embedded) software specialisten!