summaryrefslogtreecommitdiffstats
path: root/meta/recipes-core/os-release/os-release.bb
diff options
context:
space:
mode:
Diffstat (limited to 'meta/recipes-core/os-release/os-release.bb')
-rw-r--r--meta/recipes-core/os-release/os-release.bb44
1 files changed, 25 insertions, 19 deletions
diff --git a/meta/recipes-core/os-release/os-release.bb b/meta/recipes-core/os-release/os-release.bb
index db827602f3..637d059e8b 100644
--- a/meta/recipes-core/os-release/os-release.bb
+++ b/meta/recipes-core/os-release/os-release.bb
@@ -1,9 +1,8 @@
inherit allarch
SUMMARY = "Operating system identification"
-DESCRIPTION = "The /etc/os-release file contains operating system identification data."
+DESCRIPTION = "The /usr/lib/os-release file contains operating system identification data."
LICENSE = "MIT"
-LIC_FILES_CHKSUM = "file://${COREBASE}/meta/COPYING.MIT;md5=3da9cfbcb788c80a0384361b4de20420"
INHIBIT_DEFAULT_DEPS = "1"
do_fetch[noexec] = "1"
@@ -13,7 +12,10 @@ 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"
+OS_RELEASE_FIELDS = "\
+ ID ID_LIKE NAME VERSION VERSION_ID PRETTY_NAME DISTRO_CODENAME \
+"
+OS_RELEASE_UNQUOTED_FIELDS = "ID VERSION_ID VARIANT_ID"
ID = "${DISTRO}"
NAME = "${DISTRO_NAME}"
@@ -23,27 +25,31 @@ PRETTY_NAME = "${DISTRO_NAME} ${VERSION}"
BUILD_ID ?= "${DATETIME}"
BUILD_ID[vardepsexclude] = "DATETIME"
+def sanitise_value(ver):
+ # unquoted fields like VERSION_ID should be (from os-release(5)):
+ # lower-case string (mostly numeric, no spaces or other characters
+ # outside of 0-9, a-z, ".", "_" and "-")
+ ret = ver.replace('+', '-').replace(' ','_')
+ return ret.lower()
+
python do_compile () {
- import shutil
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)
+ for field in d.getVar('OS_RELEASE_FIELDS').split():
+ unquotedFields = d.getVar('OS_RELEASE_UNQUOTED_FIELDS').split()
+ value = d.getVar(field)
if value:
- f.write('{0}={1}\n'.format(field, value))
- if d.getVar('RPM_SIGN_PACKAGES', True) == '1':
- rpm_gpg_pubkey = d.getVar('RPM_GPG_PUBKEY', True)
- bb.utils.mkdirhier('${B}/rpm-gpg')
- distro_version = d.getVar('DISTRO_VERSION', True) or "oe.0"
- shutil.copy2(rpm_gpg_pubkey, d.expand('${B}/rpm-gpg/RPM-GPG-KEY-%s' % distro_version))
+ if field in unquotedFields:
+ value = sanitise_value(value)
+ f.write('{0}={1}\n'.format(field, value))
+ else:
+ 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}/
-
- if [ -d "rpm-gpg" ]; then
- install -d "${D}${sysconfdir}/pki"
- cp -r "rpm-gpg" "${D}${sysconfdir}/pki/"
- fi
+ install -d ${D}${nonarch_libdir} ${D}${sysconfdir}
+ install -m 0644 os-release ${D}${nonarch_libdir}/
+ ln -rs ${D}${nonarch_libdir}/os-release ${D}${sysconfdir}/os-release
}
+
+FILES:${PN} += "${nonarch_libdir}/os-release"