diff mbox series

os-release: Fix VERSION_CODENAME in case it is empty

Message ID 20240620130343.220397-1-dse@thaumatec.com
State Accepted, archived
Commit 70a0b8bc1d846c857be90ce2e97e60c5ee32558e
Headers show
Series os-release: Fix VERSION_CODENAME in case it is empty | expand

Commit Message

Daniel Semkowicz June 20, 2024, 1:03 p.m. UTC
If DISTRO_CODENAME was not set, VERSION_CODENAME field was populated
with unparsed string. This resulted in the following line in os-release
file:

  VERSION_CODENAME="${DISTRO_CODENAME}"

According to systemd documentation, this field is optional.
Fix the problem by setting VERSION_CODENAME conditionally, only if
DISTRO_CODENAME was set.

Signed-off-by: Daniel Semkowicz <dse@thaumatec.com>
---
 meta/recipes-core/os-release/os-release.bb | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

Martin Jansa June 20, 2024, 1:16 p.m. UTC | #1
If you want to set VERSION_CODENAME to empty you can just add:
DISTRO_CODENAME ??= ""
to make sure it's always expanded to at least empty string.

On Thu, Jun 20, 2024 at 3:04 PM Daniel Semkowicz via
lists.openembedded.org <dse=thaumatec.com@lists.openembedded.org>
wrote:
>
> If DISTRO_CODENAME was not set, VERSION_CODENAME field was populated
> with unparsed string. This resulted in the following line in os-release
> file:
>
>   VERSION_CODENAME="${DISTRO_CODENAME}"
>
> According to systemd documentation, this field is optional.
> Fix the problem by setting VERSION_CODENAME conditionally, only if
> DISTRO_CODENAME was set.
>
> Signed-off-by: Daniel Semkowicz <dse@thaumatec.com>
> ---
>  meta/recipes-core/os-release/os-release.bb | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/meta/recipes-core/os-release/os-release.bb b/meta/recipes-core/os-release/os-release.bb
> index 8906906bc3..93af08c182 100644
> --- a/meta/recipes-core/os-release/os-release.bb
> +++ b/meta/recipes-core/os-release/os-release.bb
> @@ -24,7 +24,7 @@ ID = "${DISTRO}"
>  NAME = "${DISTRO_NAME}"
>  VERSION = "${DISTRO_VERSION}${@' (%s)' % DISTRO_CODENAME if 'DISTRO_CODENAME' in d else ''}"
>  VERSION_ID = "${DISTRO_VERSION}"
> -VERSION_CODENAME = "${DISTRO_CODENAME}"
> +VERSION_CODENAME = "${@d.getVar('DISTRO_CODENAME') or ''}"
>  PRETTY_NAME = "${DISTRO_NAME} ${VERSION}"
>
>  # The vendor field is hardcoded to "openembedded" deliberately. We'd
> --
> 2.45.2
>
>
>
> -=-=-=-=-=-=-=-=-=-=-=-
> Links: You receive all messages sent to this group.
> View/Reply Online (#200952): https://lists.openembedded.org/g/openembedded-core/message/200952
> Mute This Topic: https://lists.openembedded.org/mt/106779331/3617156
> Group Owner: openembedded-core+owner@lists.openembedded.org
> Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [martin.jansa@gmail.com]
> -=-=-=-=-=-=-=-=-=-=-=-
>
Daniel Semkowicz June 20, 2024, 1:40 p.m. UTC | #2
Unfortunately, settings DISTRO_CODENAME to empty string triggers
VERSION variable to be suffixed with "()", because:

  VERSION = "${DISTRO_VERSION}${@' (%s)' % DISTRO_CODENAME if
'DISTRO_CODENAME' in d else ''}"

Which is not a desirable effect.

On Thu, Jun 20, 2024 at 3:16 PM Martin Jansa <martin.jansa@gmail.com> wrote:
>
> If you want to set VERSION_CODENAME to empty you can just add:
> DISTRO_CODENAME ??= ""
> to make sure it's always expanded to at least empty string.
>
> On Thu, Jun 20, 2024 at 3:04 PM Daniel Semkowicz via
> lists.openembedded.org <dse=thaumatec.com@lists.openembedded.org>
> wrote:
> >
> > If DISTRO_CODENAME was not set, VERSION_CODENAME field was populated
> > with unparsed string. This resulted in the following line in os-release
> > file:
> >
> >   VERSION_CODENAME="${DISTRO_CODENAME}"
> >
> > According to systemd documentation, this field is optional.
> > Fix the problem by setting VERSION_CODENAME conditionally, only if
> > DISTRO_CODENAME was set.
> >
> > Signed-off-by: Daniel Semkowicz <dse@thaumatec.com>
> > ---
> >  meta/recipes-core/os-release/os-release.bb | 2 +-
> >  1 file changed, 1 insertion(+), 1 deletion(-)
> >
> > diff --git a/meta/recipes-core/os-release/os-release.bb b/meta/recipes-core/os-release/os-release.bb
> > index 8906906bc3..93af08c182 100644
> > --- a/meta/recipes-core/os-release/os-release.bb
> > +++ b/meta/recipes-core/os-release/os-release.bb
> > @@ -24,7 +24,7 @@ ID = "${DISTRO}"
> >  NAME = "${DISTRO_NAME}"
> >  VERSION = "${DISTRO_VERSION}${@' (%s)' % DISTRO_CODENAME if 'DISTRO_CODENAME' in d else ''}"
> >  VERSION_ID = "${DISTRO_VERSION}"
> > -VERSION_CODENAME = "${DISTRO_CODENAME}"
> > +VERSION_CODENAME = "${@d.getVar('DISTRO_CODENAME') or ''}"
> >  PRETTY_NAME = "${DISTRO_NAME} ${VERSION}"
> >
> >  # The vendor field is hardcoded to "openembedded" deliberately. We'd
> > --
> > 2.45.2
> >
> >
> >
> > -=-=-=-=-=-=-=-=-=-=-=-
> > Links: You receive all messages sent to this group.
> > View/Reply Online (#200952): https://lists.openembedded.org/g/openembedded-core/message/200952
> > Mute This Topic: https://lists.openembedded.org/mt/106779331/3617156
> > Group Owner: openembedded-core+owner@lists.openembedded.org
> > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [martin.jansa@gmail.com]
> > -=-=-=-=-=-=-=-=-=-=-=-
> >
Daniel Semkowicz June 28, 2024, 7:46 a.m. UTC | #3
Hello Steve,

Would it be possible to backport this fix to scarthgap branch? The same
problem occurs also there.

Commit on master branch: 70a0b8bc1d846c857be90ce2e97e60c5ee32558e

Best regards
Daniel Semkowicz

On Thu, Jun 20, 2024 at 3:40 PM Daniel Semkowicz <dse@thaumatec.com> wrote:
>
> Unfortunately, settings DISTRO_CODENAME to empty string triggers
> VERSION variable to be suffixed with "()", because:
>
>   VERSION = "${DISTRO_VERSION}${@' (%s)' % DISTRO_CODENAME if
> 'DISTRO_CODENAME' in d else ''}"
>
> Which is not a desirable effect.
>
> On Thu, Jun 20, 2024 at 3:16 PM Martin Jansa <martin.jansa@gmail.com> wrote:
> >
> > If you want to set VERSION_CODENAME to empty you can just add:
> > DISTRO_CODENAME ??= ""
> > to make sure it's always expanded to at least empty string.
> >
> > On Thu, Jun 20, 2024 at 3:04 PM Daniel Semkowicz via
> > lists.openembedded.org <dse=thaumatec.com@lists.openembedded.org>
> > wrote:
> > >
> > > If DISTRO_CODENAME was not set, VERSION_CODENAME field was populated
> > > with unparsed string. This resulted in the following line in os-release
> > > file:
> > >
> > >   VERSION_CODENAME="${DISTRO_CODENAME}"
> > >
> > > According to systemd documentation, this field is optional.
> > > Fix the problem by setting VERSION_CODENAME conditionally, only if
> > > DISTRO_CODENAME was set.
> > >
> > > Signed-off-by: Daniel Semkowicz <dse@thaumatec.com>
> > > ---
> > >  meta/recipes-core/os-release/os-release.bb | 2 +-
> > >  1 file changed, 1 insertion(+), 1 deletion(-)
> > >
> > > diff --git a/meta/recipes-core/os-release/os-release.bb b/meta/recipes-core/os-release/os-release.bb
> > > index 8906906bc3..93af08c182 100644
> > > --- a/meta/recipes-core/os-release/os-release.bb
> > > +++ b/meta/recipes-core/os-release/os-release.bb
> > > @@ -24,7 +24,7 @@ ID = "${DISTRO}"
> > >  NAME = "${DISTRO_NAME}"
> > >  VERSION = "${DISTRO_VERSION}${@' (%s)' % DISTRO_CODENAME if 'DISTRO_CODENAME' in d else ''}"
> > >  VERSION_ID = "${DISTRO_VERSION}"
> > > -VERSION_CODENAME = "${DISTRO_CODENAME}"
> > > +VERSION_CODENAME = "${@d.getVar('DISTRO_CODENAME') or ''}"
> > >  PRETTY_NAME = "${DISTRO_NAME} ${VERSION}"
> > >
> > >  # The vendor field is hardcoded to "openembedded" deliberately. We'd
> > > --
> > > 2.45.2
> > >
> > >
> > >
> > > -=-=-=-=-=-=-=-=-=-=-=-
> > > Links: You receive all messages sent to this group.
> > > View/Reply Online (#200952): https://lists.openembedded.org/g/openembedded-core/message/200952
> > > Mute This Topic: https://lists.openembedded.org/mt/106779331/3617156
> > > Group Owner: openembedded-core+owner@lists.openembedded.org
> > > Unsubscribe: https://lists.openembedded.org/g/openembedded-core/unsub [martin.jansa@gmail.com]
> > > -=-=-=-=-=-=-=-=-=-=-=-
> > >
diff mbox series

Patch

diff --git a/meta/recipes-core/os-release/os-release.bb b/meta/recipes-core/os-release/os-release.bb
index 8906906bc3..93af08c182 100644
--- a/meta/recipes-core/os-release/os-release.bb
+++ b/meta/recipes-core/os-release/os-release.bb
@@ -24,7 +24,7 @@  ID = "${DISTRO}"
 NAME = "${DISTRO_NAME}"
 VERSION = "${DISTRO_VERSION}${@' (%s)' % DISTRO_CODENAME if 'DISTRO_CODENAME' in d else ''}"
 VERSION_ID = "${DISTRO_VERSION}"
-VERSION_CODENAME = "${DISTRO_CODENAME}"
+VERSION_CODENAME = "${@d.getVar('DISTRO_CODENAME') or ''}"
 PRETTY_NAME = "${DISTRO_NAME} ${VERSION}"
 
 # The vendor field is hardcoded to "openembedded" deliberately. We'd