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

Sujith H sujith.h at gmail.com
Fri Aug 1 13:16:41 UTC 2014


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}/
+}
-- 
1.8.4




More information about the Openembedded-core mailing list