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 | 2390b1b | 2022-11-03 13:47:49 -0500 | [diff] [blame] | 5 | HOMEPAGE = "https://www.freedesktop.org/software/systemd/man/os-release.html" |
Patrick Williams | c124f4f | 2015-09-15 14:41:29 -0500 | [diff] [blame] | 6 | LICENSE = "MIT" |
Patrick Williams | c124f4f | 2015-09-15 14:41:29 -0500 | [diff] [blame] | 7 | INHIBIT_DEFAULT_DEPS = "1" |
| 8 | |
| 9 | do_fetch[noexec] = "1" |
| 10 | do_unpack[noexec] = "1" |
| 11 | do_patch[noexec] = "1" |
| 12 | do_configure[noexec] = "1" |
| 13 | |
Patrick Williams | 2390b1b | 2022-11-03 13:47:49 -0500 | [diff] [blame] | 14 | # See: https://www.freedesktop.org/software/systemd/man/os-release.html |
Patrick Williams | c124f4f | 2015-09-15 14:41:29 -0500 | [diff] [blame] | 15 | # Other valid fields: BUILD_ID ID_LIKE ANSI_COLOR CPE_NAME |
| 16 | # HOME_URL SUPPORT_URL BUG_REPORT_URL |
Andrew Geissler | 595f630 | 2022-01-24 19:11:47 +0000 | [diff] [blame] | 17 | OS_RELEASE_FIELDS = "\ |
Patrick Williams | 2390b1b | 2022-11-03 13:47:49 -0500 | [diff] [blame] | 18 | ID ID_LIKE NAME VERSION VERSION_ID VERSION_CODENAME PRETTY_NAME \ |
Andrew Geissler | 595f630 | 2022-01-24 19:11:47 +0000 | [diff] [blame] | 19 | " |
Andrew Geissler | 4b740dc | 2020-05-05 08:54:39 -0500 | [diff] [blame] | 20 | OS_RELEASE_UNQUOTED_FIELDS = "ID VERSION_ID VARIANT_ID" |
Patrick Williams | c124f4f | 2015-09-15 14:41:29 -0500 | [diff] [blame] | 21 | |
| 22 | ID = "${DISTRO}" |
| 23 | NAME = "${DISTRO_NAME}" |
| 24 | VERSION = "${DISTRO_VERSION}${@' (%s)' % DISTRO_CODENAME if 'DISTRO_CODENAME' in d else ''}" |
| 25 | VERSION_ID = "${DISTRO_VERSION}" |
Patrick Williams | 2390b1b | 2022-11-03 13:47:49 -0500 | [diff] [blame] | 26 | VERSION_CODENAME = "${DISTRO_CODENAME}" |
Patrick Williams | c124f4f | 2015-09-15 14:41:29 -0500 | [diff] [blame] | 27 | PRETTY_NAME = "${DISTRO_NAME} ${VERSION}" |
| 28 | BUILD_ID ?= "${DATETIME}" |
| 29 | BUILD_ID[vardepsexclude] = "DATETIME" |
| 30 | |
Andrew Geissler | 4b740dc | 2020-05-05 08:54:39 -0500 | [diff] [blame] | 31 | def sanitise_value(ver): |
| 32 | # unquoted fields like VERSION_ID should be (from os-release(5)): |
Patrick Williams | d8c66bc | 2016-06-20 12:57:21 -0500 | [diff] [blame] | 33 | # lower-case string (mostly numeric, no spaces or other characters |
| 34 | # outside of 0-9, a-z, ".", "_" and "-") |
| 35 | ret = ver.replace('+', '-').replace(' ','_') |
| 36 | return ret.lower() |
| 37 | |
Patrick Williams | c124f4f | 2015-09-15 14:41:29 -0500 | [diff] [blame] | 38 | python do_compile () { |
Patrick Williams | c124f4f | 2015-09-15 14:41:29 -0500 | [diff] [blame] | 39 | with open(d.expand('${B}/os-release'), 'w') as f: |
Brad Bishop | 6e60e8b | 2018-02-01 10:27:11 -0500 | [diff] [blame] | 40 | for field in d.getVar('OS_RELEASE_FIELDS').split(): |
Andrew Geissler | 4b740dc | 2020-05-05 08:54:39 -0500 | [diff] [blame] | 41 | unquotedFields = d.getVar('OS_RELEASE_UNQUOTED_FIELDS').split() |
Brad Bishop | 6e60e8b | 2018-02-01 10:27:11 -0500 | [diff] [blame] | 42 | value = d.getVar(field) |
Patrick Williams | c124f4f | 2015-09-15 14:41:29 -0500 | [diff] [blame] | 43 | if value: |
Andrew Geissler | 4b740dc | 2020-05-05 08:54:39 -0500 | [diff] [blame] | 44 | if field in unquotedFields: |
| 45 | value = sanitise_value(value) |
| 46 | f.write('{0}={1}\n'.format(field, value)) |
| 47 | else: |
| 48 | f.write('{0}="{1}"\n'.format(field, value)) |
Patrick Williams | c124f4f | 2015-09-15 14:41:29 -0500 | [diff] [blame] | 49 | } |
| 50 | do_compile[vardeps] += "${OS_RELEASE_FIELDS}" |
Patrick Williams | c124f4f | 2015-09-15 14:41:29 -0500 | [diff] [blame] | 51 | |
| 52 | do_install () { |
Brad Bishop | 6f8dcde | 2018-10-16 10:47:12 +0800 | [diff] [blame] | 53 | install -d ${D}${nonarch_libdir} ${D}${sysconfdir} |
| 54 | install -m 0644 os-release ${D}${nonarch_libdir}/ |
Andrew Geissler | 595f630 | 2022-01-24 19:11:47 +0000 | [diff] [blame] | 55 | ln -rs ${D}${nonarch_libdir}/os-release ${D}${sysconfdir}/os-release |
Patrick Williams | de0582f | 2022-04-08 10:23:27 -0500 | [diff] [blame] | 56 | ln -rs ${D}${nonarch_libdir}/os-release ${D}${sysconfdir}/initrd-release |
Patrick Williams | c124f4f | 2015-09-15 14:41:29 -0500 | [diff] [blame] | 57 | } |
Brad Bishop | bba38f3 | 2018-08-23 16:11:46 +0800 | [diff] [blame] | 58 | |
Patrick Williams | de0582f | 2022-04-08 10:23:27 -0500 | [diff] [blame] | 59 | FILES:${PN} = "${sysconfdir}/os-release ${nonarch_libdir}/os-release" |
| 60 | |
| 61 | PACKAGES += "${PN}-initrd" |
| 62 | FILES:${PN}-initrd = "${sysconfdir}/initrd-release" |
| 63 | RDEPENDS:${PN}-initrd += "${PN}" |