All of lore.kernel.org
 help / color / mirror / Atom feed
From: California Sullivan <california.l.sullivan@intel.com>
To: openembedded-core@lists.openembedded.org
Subject: [PATCH RFC 17/18] systemd-boot: add package that installs to boot
Date: Tue, 19 Dec 2017 14:58:30 -0800	[thread overview]
Message-ID: <20171219225831.22587-18-california.l.sullivan@intel.com> (raw)
In-Reply-To: <20171219225831.22587-1-california.l.sullivan@intel.com>

If the EFI_PROVIDER is systemd-boot, install as boot(x64|ia32) as per
convention. If its not the EFI_PROVIDER, install as
systemd-boot(x64|ia32), as to not collide with other possible
bootloaders.

Signed-off-by: California Sullivan <california.l.sullivan@intel.com>
---
 meta/recipes-core/systemd/systemd-boot_234.bb | 28 ++++++++++++++++++++++++---
 1 file changed, 25 insertions(+), 3 deletions(-)

diff --git a/meta/recipes-core/systemd/systemd-boot_234.bb b/meta/recipes-core/systemd/systemd-boot_234.bb
index 7b18b25e35d..80b57a1d378 100644
--- a/meta/recipes-core/systemd/systemd-boot_234.bb
+++ b/meta/recipes-core/systemd/systemd-boot_234.bb
@@ -18,6 +18,26 @@ EXTRA_OECONF = " --enable-gnuefi \
                  EFI_CC='${EFI_CC}' \
                "
 
+# install to the image as boot*.efi if its the EFI_PROVIDER,
+# otherwise install as the full name.
+# This allows multiple bootloaders to coexist in a single image.
+python __anonymous () {
+    import re
+    target = d.getVar('TARGET_ARCH')
+    prefix = "" if d.getVar('EFI_PROVIDER', True) == "systemd-boot" else "systemd-"
+    if target == "x86_64":
+        systemdimage = prefix + "bootx64.efi"
+    else:
+        systemdimage = prefix + "bootia32.efi"
+    d.setVar("SYSTEMD_BOOT_IMAGE", systemdimage)
+    prefix = "systemd-" if prefix == "" else ""
+    d.setVar("SYSTEMD_BOOT_IMAGE_PREFIX", prefix)
+}
+
+FILES_${PN} = "/boot/EFI/BOOT/${SYSTEMD_BOOT_IMAGE}"
+
+RDEPENDS_${PN} += "virtual/systemd-bootconf"
+
 # Imported from the old gummiboot recipe
 TUNE_CCARGS_remove = "-mfpmath=sse"
 COMPATIBLE_HOST = "(x86_64.*|i.86.*)-linux"
@@ -29,12 +49,14 @@ do_compile() {
 		SYSTEMD_BOOT_EFI_ARCH="x64"
 	fi
 
-	oe_runmake systemd-boot${SYSTEMD_BOOT_EFI_ARCH}.efi
+	oe_runmake ${SYSTEMD_BOOT_IMAGE_PREFIX}${SYSTEMD_BOOT_IMAGE}
 }
 
 do_install() {
-	# Bypass systemd installation with a NOP
-	:
+	install -d ${D}/boot
+	install -d ${D}/boot/EFI
+	install -d ${D}/boot/EFI/BOOT
+	install ${B}/systemd-boot*.efi ${D}/boot/EFI/BOOT/${SYSTEMD_BOOT_IMAGE}
 }
 
 do_deploy () {
-- 
2.14.3



  parent reply	other threads:[~2017-12-19 22:58 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-12-19 22:58 [PATCH RFC 00/18] EFI boot partition improvements California Sullivan
2017-12-19 22:58 ` [PATCH RFC 01/18] fs-uuid.bbclass: rewrite get_fs_uuid function California Sullivan
2017-12-20  8:00   ` Martin Hundebøll
2017-12-19 22:58 ` [PATCH RFC 02/18] image.bbclass: Add fs-uuid bbclass California Sullivan
2017-12-19 22:58 ` [PATCH RFC 03/18] grub-efi.bbclass: split out configuration portion California Sullivan
2017-12-19 22:58 ` [PATCH RFC 04/18] grub: create recipe for configuration California Sullivan
2017-12-19 22:58 ` [PATCH RFC 05/18] grub-efi: install to /boot/ California Sullivan
2017-12-19 22:58 ` [PATCH RFC 06/18] grub-efi: if installed and EFI_PROVIDER, install as bootx64 or bootia32 California Sullivan
2017-12-19 22:58 ` [PATCH RFC 07/18] rootfs-postcommands: add rootfs postprocess command to avoid /boot/ duplication California Sullivan
2017-12-19 22:58 ` [PATCH RFC 08/18] packagegroup-core-boot: add bootloader to EFI systems California Sullivan
2017-12-19 22:58 ` [PATCH RFC 09/18] live-vm-common.bbclass: Don't use vmlinuz or VM_DEFAULT_KERNEL California Sullivan
2017-12-19 22:58 ` [PATCH RFC 10/18] grub-efi*.bbclass: don't reference vmlinuz California Sullivan
2017-12-19 22:58 ` [PATCH RFC 11/18] wic: add wks file to make use of new bootfs functionality California Sullivan
2017-12-19 22:58 ` [PATCH RFC 12/18] init-install-efi.sh: Update to support installing multiple kernels California Sullivan
2017-12-19 22:58 ` [PATCH RFC 13/18] syslinux.bbclass: don't use vmlinuz California Sullivan
2017-12-19 22:58 ` [PATCH RFC 14/18] systemd-boot.bbclass: break out configuration creation California Sullivan
2017-12-19 22:58 ` [PATCH RFC 15/18] systemd: add systemd-bootconf recipe California Sullivan
2017-12-19 22:58 ` [PATCH RFC 16/18] systemd-boot*.bbclass: Don't use vmlinuz California Sullivan
2017-12-19 22:58 ` California Sullivan [this message]
2017-12-19 22:58 ` [PATCH RFC 18/18] packagegroup-core-boot: add kernel for EFI systems California Sullivan
2017-12-19 23:03 ` ✗ patchtest: failure for EFI boot partition improvements Patchwork
2017-12-19 23:16 ` [PATCH RFC 00/18] " Cal Sullivan
2017-12-20 11:29 ` Alexander Kanavin

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20171219225831.22587-18-california.l.sullivan@intel.com \
    --to=california.l.sullivan@intel.com \
    --cc=openembedded-core@lists.openembedded.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.