[yocto] (solved) Re: adding specific config files

JC jc at vtkloud.com
Thu Sep 5 06:09:59 PDT 2013


Hi Paul

On 05/09/2013 12:00, Paul Eggleton wrote:
> On Thursday 05 September 2013 11:45:26 JC wrote:
>> On 05/09/2013 11:32, Paul Eggleton wrote:
>>> Unfortunately we have to have a fixed configuration for smart during
>>> do_rootfs, so it has to be written to. I think though that rather than
>>> trying to install a configuration file for smart using a separate recipe,
>>> I would suggest modifying the smart configuration at the end of do_rootfs
>>> to add the configuration elements you need. The way to do this would be
>>> to define a shell function that you can add a call to in
>>> ROOTFS_POSTPROCESS_COMMAND that will run smart:
>>>
>>> add_extra_smart_config() {
>>>
>>> 	smart --data-dir=${IMAGE_ROOTFS}/var/lib/smart channel --add rpmsys
>>> 	type=rpm-sys -y>
>>> }
>>> ROOTFS_POSTPROCESS_COMMAND += "add_extra_smart_config; "
>>>
>>> You can put the above in the image recipe itself or in a class that your
>>> image recipe inherits.
>>>
>>> Cheers,
>>> Paul
>> Thanks, I'm going to try it !!
>>
>> Assuming I don't want to create a new image (i still haven't exactly
>> figured how to do this in a clean way), where should I append this code ?
> To be honest I always recommend people create their own image recipes
> whatever they are doing since image recipes are usually trivial and
> almost always need to be customised. The easiest way to do this is to
> copy an existing image recipe and name it and modify it as you prefer.
>
>> How can I make it dependend on the "package-management" feature?
> If "package-management" is not in IMAGE_FEATURES the smart config gets deleted
> anyway so this will have no effect. However, if desired you can use an inline
> python expression within the shell function to do things conditionally, e.g.
>
> if ${@base_contains("IMAGE_FEATURES", "package-management", "true", "false", d)}; then
> ...
> fi
>
> It's important to realise though that the evaluation of the inline
> python happens when the expression is parsed, not when the shell
> function it is executed; by the time the shell function executes the
> expression will have been converted to its result.
>


This worked perfectly. Just a slight append : your need to "install -d" 
the /var/lib/smartpm directory, otherwise it seems it's not created. Not 
a big deal anyway


Thanks again !!

Jay



More information about the yocto mailing list