Patrick Williams | c124f4f | 2015-09-15 14:41:29 -0500 | [diff] [blame] | 1 | inherit allarch |
| 2 | |
| 3 | SUMMARY = "Operating system identification" |
Brad Bishop | bba38f3 | 2018-08-23 16:11:46 +0800 | [diff] [blame] | 4 | DESCRIPTION = "The /usr/lib/os-release file contains operating system identification data." |
Patrick Williams | c124f4f | 2015-09-15 14:41:29 -0500 | [diff] [blame] | 5 | LICENSE = "MIT" |
Patrick Williams | c124f4f | 2015-09-15 14:41:29 -0500 | [diff] [blame] | 6 | INHIBIT_DEFAULT_DEPS = "1" |
| 7 | |
| 8 | do_fetch[noexec] = "1" |
| 9 | do_unpack[noexec] = "1" |
| 10 | do_patch[noexec] = "1" |
| 11 | do_configure[noexec] = "1" |
| 12 | |
| 13 | # Other valid fields: BUILD_ID ID_LIKE ANSI_COLOR CPE_NAME |
| 14 | # HOME_URL SUPPORT_URL BUG_REPORT_URL |
| 15 | OS_RELEASE_FIELDS = "ID ID_LIKE NAME VERSION VERSION_ID PRETTY_NAME" |
Andrew Geissler | 4b740dc | 2020-05-05 08:54:39 -0500 | [diff] [blame] | 16 | OS_RELEASE_UNQUOTED_FIELDS = "ID VERSION_ID VARIANT_ID" |
Patrick Williams | c124f4f | 2015-09-15 14:41:29 -0500 | [diff] [blame] | 17 | |
| 18 | ID = "${DISTRO}" |
| 19 | NAME = "${DISTRO_NAME}" |
| 20 | VERSION = "${DISTRO_VERSION}${@' (%s)' % DISTRO_CODENAME if 'DISTRO_CODENAME' in d else ''}" |
| 21 | VERSION_ID = "${DISTRO_VERSION}" |
| 22 | PRETTY_NAME = "${DISTRO_NAME} ${VERSION}" |
| 23 | BUILD_ID ?= "${DATETIME}" |
| 24 | BUILD_ID[vardepsexclude] = "DATETIME" |
| 25 | |
Andrew Geissler | 4b740dc | 2020-05-05 08:54:39 -0500 | [diff] [blame] | 26 | def sanitise_value(ver): |
| 27 | # unquoted fields like VERSION_ID should be (from os-release(5)): |
Patrick Williams | d8c66bc | 2016-06-20 12:57:21 -0500 | [diff] [blame] | 28 | # lower-case string (mostly numeric, no spaces or other characters |
| 29 | # outside of 0-9, a-z, ".", "_" and "-") |
| 30 | ret = ver.replace('+', '-').replace(' ','_') |
| 31 | return ret.lower() |
| 32 | |
Patrick Williams | c124f4f | 2015-09-15 14:41:29 -0500 | [diff] [blame] | 33 | python do_compile () { |
Patrick Williams | c124f4f | 2015-09-15 14:41:29 -0500 | [diff] [blame] | 34 | with open(d.expand('${B}/os-release'), 'w') as f: |
Brad Bishop | 6e60e8b | 2018-02-01 10:27:11 -0500 | [diff] [blame] | 35 | for field in d.getVar('OS_RELEASE_FIELDS').split(): |
Andrew Geissler | 4b740dc | 2020-05-05 08:54:39 -0500 | [diff] [blame] | 36 | unquotedFields = d.getVar('OS_RELEASE_UNQUOTED_FIELDS').split() |
Brad Bishop | 6e60e8b | 2018-02-01 10:27:11 -0500 | [diff] [blame] | 37 | value = d.getVar(field) |
Patrick Williams | c124f4f | 2015-09-15 14:41:29 -0500 | [diff] [blame] | 38 | if value: |
Andrew Geissler | 4b740dc | 2020-05-05 08:54:39 -0500 | [diff] [blame] | 39 | if field in unquotedFields: |
| 40 | value = sanitise_value(value) |
| 41 | f.write('{0}={1}\n'.format(field, value)) |
| 42 | else: |
| 43 | f.write('{0}="{1}"\n'.format(field, value)) |
Patrick Williams | c124f4f | 2015-09-15 14:41:29 -0500 | [diff] [blame] | 44 | } |
| 45 | do_compile[vardeps] += "${OS_RELEASE_FIELDS}" |
Patrick Williams | c124f4f | 2015-09-15 14:41:29 -0500 | [diff] [blame] | 46 | |
| 47 | do_install () { |
Brad Bishop | 6f8dcde | 2018-10-16 10:47:12 +0800 | [diff] [blame] | 48 | install -d ${D}${nonarch_libdir} ${D}${sysconfdir} |
| 49 | install -m 0644 os-release ${D}${nonarch_libdir}/ |
| 50 | lnr ${D}${nonarch_libdir}/os-release ${D}${sysconfdir}/os-release |
Patrick Williams | c124f4f | 2015-09-15 14:41:29 -0500 | [diff] [blame] | 51 | } |
Brad Bishop | bba38f3 | 2018-08-23 16:11:46 +0800 | [diff] [blame] | 52 | |
Patrick Williams | 213cb26 | 2021-08-07 19:21:33 -0500 | [diff] [blame] | 53 | FILES:${PN} += "${nonarch_libdir}/os-release" |