diff options
author | California Sullivan <california.l.sullivan@intel.com> | 2018-02-28 18:15:08 -0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2018-03-06 06:23:06 -0800 |
commit | 5d14ff6e25d3b334d4cc9363a6ddeb16f4c2911d (patch) | |
tree | abc14c50a725fd073bb76f01ebdfb8f65ea21400 | |
parent | 8e9a5350e51d4c3be5417e55e4fd1428f49f3d8b (diff) | |
download | openembedded-core-5d14ff6e25d3b334d4cc9363a6ddeb16f4c2911d.tar.gz openembedded-core-5d14ff6e25d3b334d4cc9363a6ddeb16f4c2911d.tar.bz2 openembedded-core-5d14ff6e25d3b334d4cc9363a6ddeb16f4c2911d.zip |
systemd-boot.bbclass: break out configuration creation
This class is useful on its own and can be used to create configuration
recipes.
Signed-off-by: California Sullivan <california.l.sullivan@intel.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
-rw-r--r-- | meta/classes/systemd-boot-cfg.bbclass | 71 | ||||
-rw-r--r-- | meta/classes/systemd-boot.bbclass | 70 |
2 files changed, 72 insertions, 69 deletions
diff --git a/meta/classes/systemd-boot-cfg.bbclass b/meta/classes/systemd-boot-cfg.bbclass new file mode 100644 index 0000000000..46eeae126a --- /dev/null +++ b/meta/classes/systemd-boot-cfg.bbclass @@ -0,0 +1,71 @@ +SYSTEMD_BOOT_CFG ?= "${S}/loader.conf" +SYSTEMD_BOOT_ENTRIES ?= "" +SYSTEMD_BOOT_TIMEOUT ?= "10" + +# Need UUID utility code. +inherit fs-uuid + +python build_efi_cfg() { + s = d.getVar("S") + labels = d.getVar('LABELS') + if not labels: + bb.debug(1, "LABELS not defined, nothing to do") + return + + if labels == []: + bb.debug(1, "No labels, nothing to do") + return + + cfile = d.getVar('SYSTEMD_BOOT_CFG') + cdir = os.path.dirname(cfile) + if not os.path.exists(cdir): + os.makedirs(cdir) + try: + cfgfile = open(cfile, 'w') + except OSError: + bb.fatal('Unable to open %s' % cfile) + + cfgfile.write('# Automatically created by OE\n') + cfgfile.write('default %s\n' % (labels.split()[0])) + timeout = d.getVar('SYSTEMD_BOOT_TIMEOUT') + if timeout: + cfgfile.write('timeout %s\n' % timeout) + else: + cfgfile.write('timeout 10\n') + cfgfile.close() + + for label in labels.split(): + localdata = d.createCopy() + + overrides = localdata.getVar('OVERRIDES') + if not overrides: + bb.fatal('OVERRIDES not defined') + + entryfile = "%s/%s.conf" % (s, label) + if not os.path.exists(s): + os.makedirs(s) + d.appendVar("SYSTEMD_BOOT_ENTRIES", " " + entryfile) + try: + entrycfg = open(entryfile, "w") + except OSError: + bb.fatal('Unable to open %s' % entryfile) + localdata.setVar('OVERRIDES', label + ':' + overrides) + + entrycfg.write('title %s\n' % label) + entrycfg.write('linux /vmlinuz\n') + + append = localdata.getVar('APPEND') + initrd = localdata.getVar('INITRD') + + if initrd: + entrycfg.write('initrd /initrd\n') + lb = label + if label == "install": + lb = "install-efi" + entrycfg.write('options LABEL=%s ' % lb) + if append: + append = replace_rootfs_uuid(d, append) + entrycfg.write('%s' % append) + entrycfg.write('\n') + entrycfg.close() +} diff --git a/meta/classes/systemd-boot.bbclass b/meta/classes/systemd-boot.bbclass index 937307076f..14538fe2d7 100644 --- a/meta/classes/systemd-boot.bbclass +++ b/meta/classes/systemd-boot.bbclass @@ -12,11 +12,6 @@ do_bootimg[depends] += "${MLPREFIX}systemd-boot:do_deploy" EFIDIR = "/EFI/BOOT" - -SYSTEMD_BOOT_CFG ?= "${S}/loader.conf" -SYSTEMD_BOOT_ENTRIES ?= "" -SYSTEMD_BOOT_TIMEOUT ?= "10" - # Need UUID utility code. inherit fs-uuid @@ -62,67 +57,4 @@ efi_hddimg_populate() { efi_populate $1 } -python build_efi_cfg() { - s = d.getVar("S") - labels = d.getVar('LABELS') - if not labels: - bb.debug(1, "LABELS not defined, nothing to do") - return - - if labels == []: - bb.debug(1, "No labels, nothing to do") - return - - cfile = d.getVar('SYSTEMD_BOOT_CFG') - cdir = os.path.dirname(cfile) - if not os.path.exists(cdir): - os.makedirs(cdir) - try: - cfgfile = open(cfile, 'w') - except OSError: - bb.fatal('Unable to open %s' % cfile) - - cfgfile.write('# Automatically created by OE\n') - cfgfile.write('default %s\n' % (labels.split()[0])) - timeout = d.getVar('SYSTEMD_BOOT_TIMEOUT') - if timeout: - cfgfile.write('timeout %s\n' % timeout) - else: - cfgfile.write('timeout 10\n') - cfgfile.close() - - for label in labels.split(): - localdata = d.createCopy() - - overrides = localdata.getVar('OVERRIDES') - if not overrides: - bb.fatal('OVERRIDES not defined') - - entryfile = "%s/%s.conf" % (s, label) - if not os.path.exists(s): - os.makedirs(s) - d.appendVar("SYSTEMD_BOOT_ENTRIES", " " + entryfile) - try: - entrycfg = open(entryfile, "w") - except OSError: - bb.fatal('Unable to open %s' % entryfile) - localdata.setVar('OVERRIDES', label + ':' + overrides) - - entrycfg.write('title %s\n' % label) - entrycfg.write('linux /vmlinuz\n') - - append = localdata.getVar('APPEND') - initrd = localdata.getVar('INITRD') - - if initrd: - entrycfg.write('initrd /initrd\n') - lb = label - if label == "install": - lb = "install-efi" - entrycfg.write('options LABEL=%s ' % lb) - if append: - append = replace_rootfs_uuid(d, append) - entrycfg.write('%s' % append) - entrycfg.write('\n') - entrycfg.close() -} +inherit systemd-boot-cfg |