I'm also suing dunfell branch, I did a small modification in my_distro_version.bbclass: def my_distro_version(d): > import subprocess > project_path = d.getVar('MY_LAYER_BASE', True) > cmd = "git describe --tags" > proc = subprocess.Popen(cmd, stdout=subprocess.PIPE, shell=True, > cwd=project_path) > out, err = proc.communicate() > return out.decode("utf-8").rstrip() > MY_DISTRO_VERSION := "${@my_distro_version(d)}" Then in meta-mylayer/conf/distro/my_distro.conf I used: > INHERIT += "my_distro_version" > DISTRO_VERSION := "${MY_DISTRO_VERSION}" It seems to be working now :-) Thank you for the support :-) cheers, On Thu, Apr 28, 2022 at 1:32 PM wrote: > On Thu, Apr 28, 2022 at 01:25:03PM +0200, Ayoub Zaki wrote: > > Hi, > > > > thanks for the quick reply I tried your suggestion but I get: > > > > ERROR: Unable to parse Var > > Traceback (most recent call last): > > File "Var ", line 1, in > > bb.data_smart.ExpansionError: Failure expanding variable > > DISTRO_VERSION[:=], expression was ${@my_distro_version(d)} which > triggered > > exception NameError: name 'my_distro_version' is not defined > > Did you include the bbclass? > > > I think in this case the INHERIT doesn't work ! > > Well I have in distro config: > > require classes/distroversion.bbclass > > which has a single python function > > def get_distro_version(d, dirty=True, abbrev=None): > > which basically calls "git describe --always --dirty --abbrev=8", > the last one was added when git versions started behaving differently > and breaking reproducibility. > > And then distro config also has: > > DISTRO_VERSION := "${@get_distro_version(d)}" > > This works for me up to yocto 3.1 dunfell at least. > > Cheers, > > -Mikko