[OE-core] [PATCH] os-release: Adding a new recipe for operating system identification

Mark Hatle mark.hatle at windriver.com
Fri Aug 1 14:19:58 UTC 2014


While not exactly the same thing, there is a similar file being generated when 
LSB is enabled.  It can be used outside of the LSB configuration as well.

The recipe is simply 'lsb'.  It provides some basic initscript functions 
(required by the lsb) as well as the /etc/lsb-release file which is pretty close 
to the output below.

I have wondered in the past if we should add a similar file to what the LSB or 
below is doing to 'base-files'.

--Mark

On 8/1/14, 8:16 AM, Sujith H wrote:
> From: Sujith H <Sujith_Haridasan at mentor.com>
>
> The /etc/os-release will have the operating system identification data.
> Tested on target with systemd enabled. Here is the sample file looks
> in the file:
>
> ID=poky-ivi-systemd
> NAME=Yocto GENIVI Baseline (Poky/meta-ivi)
> VERSION=6.0+snapshot-20140721 (daisy)
> VERSION_ID=6.0+snapshot-20140721
> PRETTY_NAME=Yocto GENIVI Baseline (Poky/meta-ivi) 6.0+snapshot-20140721 (daisy)
>
> Signed-off-by: Christopher Larson <kergoth at gmail.com>
> Signed-off-by: Sujith H <Sujith_Haridasan at mentor.com>
> ---
>   meta/recipes-core/os-release/os-release.bb | 36 ++++++++++++++++++++++++++++++
>   1 file changed, 36 insertions(+)
>   create mode 100644 meta/recipes-core/os-release/os-release.bb
>
> diff --git a/meta/recipes-core/os-release/os-release.bb b/meta/recipes-core/os-release/os-release.bb
> new file mode 100644
> index 0000000..33e9581
> --- /dev/null
> +++ b/meta/recipes-core/os-release/os-release.bb
> @@ -0,0 +1,36 @@
> +inherit allarch
> +
> +SUMMARY = "Operating system identification"
> +DESCRIPTION = "The /etc/os-release file contains operating system identification data."
> +LICENSE = "MIT"
> +INHIBIT_DEFAULT_DEPS = "1"
> +
> +do_fetch[noexec] = "1"
> +do_unpack[noexec] = "1"
> +do_patch[noexec] = "1"
> +do_configure[noexec] = "1"
> +
> +# Other valid fields: BUILD_ID ID_LIKE ANSI_COLOR CPE_NAME
> +#                     HOME_URL SUPPORT_URL BUG_REPORT_URL
> +OS_RELEASE_FIELDS = "ID ID_LIKE NAME VERSION VERSION_ID PRETTY_NAME"
> +
> +ID = "${DISTRO}"
> +NAME = "${DISTRO_NAME}"
> +VERSION = "${DISTRO_VERSION}${@' (%s)' % DISTRO_CODENAME if 'DISTRO_CODENAME' in d else ''}"
> +VERSION_ID = "${DISTRO_VERSION}"
> +PRETTY_NAME = "${DISTRO_NAME} ${VERSION}"
> +BUILD_ID ?= "${DATETIME}"
> +
> +python do_compile () {
> +    with open(d.expand('${B}/os-release'), 'w') as f:
> +        for field in d.getVar('OS_RELEASE_FIELDS', True).split():
> +            value = d.getVar(field, True)
> +            if value:
> +                f.write('{0}={1}\n'.format(field, value))
> +}
> +do_compile[vardeps] += "${OS_RELEASE_FIELDS}"
> +
> +do_install () {
> +    install -d ${D}${sysconfdir}
> +    install -m 0644 os-release ${D}${sysconfdir}/
> +}
>




More information about the Openembedded-core mailing list