summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVyacheslav Yurkov <uvv.mail@gmail.com>2020-04-30 16:03:40 +0200
committerSteve Sakoman <steve@sakoman.com>2020-05-07 14:27:49 -1000
commitea39b2edecc00cc2340328893cdfbefed5d3b981 (patch)
tree3d638f8cb759af9698fe0342bfac1ab984c0226b
parente63a38ca6ea95c0dbc79d5024c0cec31062d2e39 (diff)
downloadopenembedded-core-contrib-ea39b2edecc00cc2340328893cdfbefed5d3b981.tar.gz
os-release: sanitize required fields
Currently only VERSION_ID field is sanitized, but os-release (5) has more fields with the same requirement. Moreover, those fields come unquoted in most distributions, because quotes are not needed for a values without whitespaces. Signed-off-by: Vyacheslav Yurkov <uvv.mail@gmail.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org> Signed-off-by: Steve Sakoman <steve@sakoman.com>
-rw-r--r--meta/recipes-core/os-release/os-release.bb14
1 files changed, 9 insertions, 5 deletions
diff --git a/meta/recipes-core/os-release/os-release.bb b/meta/recipes-core/os-release/os-release.bb
index d5793c6fed..a29d678125 100644
--- a/meta/recipes-core/os-release/os-release.bb
+++ b/meta/recipes-core/os-release/os-release.bb
@@ -13,6 +13,7 @@ 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_UNQUOTED_FIELDS = "ID VERSION_ID VARIANT_ID"
ID = "${DISTRO}"
NAME = "${DISTRO_NAME}"
@@ -22,8 +23,8 @@ PRETTY_NAME = "${DISTRO_NAME} ${VERSION}"
BUILD_ID ?= "${DATETIME}"
BUILD_ID[vardepsexclude] = "DATETIME"
-def sanitise_version(ver):
- # VERSION_ID should be (from os-release(5)):
+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(' ','_')
@@ -32,11 +33,14 @@ def sanitise_version(ver):
python do_compile () {
with open(d.expand('${B}/os-release'), 'w') as f:
for field in d.getVar('OS_RELEASE_FIELDS').split():
+ unquotedFields = d.getVar('OS_RELEASE_UNQUOTED_FIELDS').split()
value = d.getVar(field)
- if value and field == 'VERSION_ID':
- value = sanitise_version(value)
if value:
- f.write('{0}="{1}"\n'.format(field, value))
+ 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}"