All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] os-release: Adding a new recipe for operating system identification
@ 2014-08-01 13:16 Sujith H
  2014-08-01 14:19 ` Mark Hatle
  0 siblings, 1 reply; 3+ messages in thread
From: Sujith H @ 2014-08-01 13:16 UTC (permalink / raw)
  To: openembedded-core; +Cc: Sujith H

From: Sujith H <Sujith_Haridasan@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@gmail.com>
Signed-off-by: Sujith H <Sujith_Haridasan@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}/
+}
-- 
1.8.4



^ permalink raw reply related	[flat|nested] 3+ messages in thread

* Re: [PATCH] os-release: Adding a new recipe for operating system identification
  2014-08-01 13:16 [PATCH] os-release: Adding a new recipe for operating system identification Sujith H
@ 2014-08-01 14:19 ` Mark Hatle
  2014-08-03  3:19   ` akuster
  0 siblings, 1 reply; 3+ messages in thread
From: Mark Hatle @ 2014-08-01 14:19 UTC (permalink / raw)
  To: openembedded-core

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@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@gmail.com>
> Signed-off-by: Sujith H <Sujith_Haridasan@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}/
> +}
>



^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [PATCH] os-release: Adding a new recipe for operating system identification
  2014-08-01 14:19 ` Mark Hatle
@ 2014-08-03  3:19   ` akuster
  0 siblings, 0 replies; 3+ messages in thread
From: akuster @ 2014-08-03  3:19 UTC (permalink / raw)
  To: Mark Hatle, openembedded-core



On 08/01/2014 07:19 AM, Mark Hatle wrote:
> 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'.

That sound good to me. There seems to be a move in the community at 
large to support "/os-release".

         1. Announcement of /etc/os-release
            http://0pointer.de/blog/projects/os-release

         2. Common Platform Enumeration Specification
            http://cpe.mitre.org/specification/

         3. RFC3986 format
            https://tools.ietf.org/html/rfc3986


I tried the patch an it looks good.

many thanks,
Armin

>
> --Mark
>
> On 8/1/14, 8:16 AM, Sujith H wrote:
>> From: Sujith H <Sujith_Haridasan@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@gmail.com>
>> Signed-off-by: Sujith H <Sujith_Haridasan@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}/
>> +}
>>
>


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2014-08-03  3:19 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2014-08-01 13:16 [PATCH] os-release: Adding a new recipe for operating system identification Sujith H
2014-08-01 14:19 ` Mark Hatle
2014-08-03  3:19   ` akuster

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.