Overwrite a bblcass globally


Ayoub Zaki
 

Thanks for the idea of using BBPATH.

my change is kind of custom and I don't think someone else will make use of it. 


Cheers

On Tue, May 26, 2020 at 4:42 PM Quentin Schulz <quentin.schulz@...> wrote:
Hi Ayoub,

On Tue, May 26, 2020 at 04:36:13PM +0200, Ayoub Zaki via lists.yoctoproject.org wrote:
> Hi,
>
> I would like to make changes on systemd.bblcass in my layer.
>
> I can create new one e.g my-systemd.bbclass to overwrite the default one
> but this will not work since I want that ALL recipes in all layers I'm
> using to make usage of it.
>
> are there ways to achieve this?
>

BBPATH[1] is what's used to locate bbclasses. It's defined in your
conf/layer.conf.

You can either make sure your layer is parsed before the one having the
original systemd.bbclass (in BBLAYERS of conf/bblayers.conf) or prepend
to BBPATH instead of appending.

Although... It's usually bad practice because it means that if I were to use
two layers doing the same thing (overriding the same bbclass), the behavior
is kind of undefined depending on which order they are parsed.

Ideally, you should contribute back the modifications to upstream
systemd.bbclass, that way, no need to duplicate it and override it from
somewhere else.

[1] https://www.yoctoproject.org/docs/current/mega-manual/mega-manual.html#var-BBPATH

Cheers,
Quentin


Robert P. J. Day
 

On Tue, 26 May 2020, Ayoub Zaki via lists.yoctoproject.org wrote:

Hi,
I would like to make changes on systemd.bblcass in my layer. 

I can create new one e.g my-systemd.bbclass to overwrite the default
one but this will not work since I want that ALL recipes in all
layers I'm using to make usage of it.

are there ways to achieve this?
aside from whether there is a good way to do this, this seems to be
a really bad idea since recipes that inherit what they *think* is the
systemd class file will be getting something different; that's just
inviting all sorts of unintended bugs.

rday


Quentin Schulz
 

Hi Ayoub,

On Tue, May 26, 2020 at 04:36:13PM +0200, Ayoub Zaki via lists.yoctoproject.org wrote:
Hi,

I would like to make changes on systemd.bblcass in my layer.

I can create new one e.g my-systemd.bbclass to overwrite the default one
but this will not work since I want that ALL recipes in all layers I'm
using to make usage of it.

are there ways to achieve this?
BBPATH[1] is what's used to locate bbclasses. It's defined in your
conf/layer.conf.

You can either make sure your layer is parsed before the one having the
original systemd.bbclass (in BBLAYERS of conf/bblayers.conf) or prepend
to BBPATH instead of appending.

Although... It's usually bad practice because it means that if I were to use
two layers doing the same thing (overriding the same bbclass), the behavior
is kind of undefined depending on which order they are parsed.

Ideally, you should contribute back the modifications to upstream
systemd.bbclass, that way, no need to duplicate it and override it from
somewhere else.

[1] https://www.yoctoproject.org/docs/current/mega-manual/mega-manual.html#var-BBPATH

Cheers,
Quentin


Ayoub Zaki
 

Hi,

I would like to make changes on systemd.bblcass in my layer. 

I can create new one e.g my-systemd.bbclass to overwrite the default one but this will not work since I want that ALL recipes in all layers I'm using to make usage of it.

are there ways to achieve this?


Thank you !


Cheers