efibootmgr: new package
authorErico Nunes <nunes.erico@gmail.com>
Thu, 21 Apr 2016 01:23:56 +0000 (22:23 -0300)
committerThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Sun, 12 Jun 2016 16:31:01 +0000 (18:31 +0200)
A Linux user-space application to modify the Intel Extensible Firmware
Interface (EFI) Boot Manager. This application can create and destroy
boot entries, change the boot order, change the next running boot
option, and more.

The only issue found was that it was trying to include headers from the
host, so $(STAGING_DIR) has been prepended to the include path so that
the package finds the right headers.

efibootmgr depends on the libraries provided by efivar.

Signed-off-by: Erico Nunes <nunes.erico@gmail.com>
[Thomas:
  - change the "depends on" for efivar to a "select", and propagate the
    relevant dependencies.
  - the license is GPLv2+, not GPLv2.
  - move the Makefile tweak to a post-patch hook rather than doing it as
    part of the build step.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
package/Config.in
package/efibootmgr/Config.in [new file with mode: 0644]
package/efibootmgr/efibootmgr.hash [new file with mode: 0644]
package/efibootmgr/efibootmgr.mk [new file with mode: 0644]

index efce72d43ddb728a4855c816759e361949f62188..03c67ce452fb737a0631fd15352e157ffb4fff18 100644 (file)
@@ -1658,6 +1658,7 @@ if BR2_PACKAGE_BUSYBOX_SHOW_OTHERS
 endif
        source "package/cgroupfs-mount/Config.in"
        source "package/dsp-tools/Config.in"
+       source "package/efibootmgr/Config.in"
        source "package/efivar/Config.in"
        source "package/emlog/Config.in"
        source "package/ftop/Config.in"
diff --git a/package/efibootmgr/Config.in b/package/efibootmgr/Config.in
new file mode 100644 (file)
index 0000000..cb1b18e
--- /dev/null
@@ -0,0 +1,16 @@
+config BR2_PACKAGE_EFIBOOTMGR
+       bool "efibootmgr"
+       depends on BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12 # efivar
+       depends on BR2_TOOLCHAIN_USES_GLIBC # efivar
+       select BR2_PACKAGE_EFIVAR
+       help
+         A Linux user-space application to modify the Intel Extensible
+         Firmware Interface (EFI) Boot Manager. This application can create
+         and destroy boot entries, change the boot order, change the next
+         running boot option, and more.
+
+         https://github.com/rhinstaller/efibootmgr
+
+comment "efibootmgr requires an (e)glibc toolchain w/ headers >= 3.12"
+       depends on !BR2_TOOLCHAIN_HEADERS_AT_LEAST_3_12 || \
+               !BR2_TOOLCHAIN_USES_GLIBC
diff --git a/package/efibootmgr/efibootmgr.hash b/package/efibootmgr/efibootmgr.hash
new file mode 100644 (file)
index 0000000..a789942
--- /dev/null
@@ -0,0 +1,2 @@
+# locally computed hash
+sha256 b180d7d6b377d24b0872869f2571e2700b618e4d7ebdc2133134a918efe2623b efibootmgr-efibootmgr-0.12.tar.gz
diff --git a/package/efibootmgr/efibootmgr.mk b/package/efibootmgr/efibootmgr.mk
new file mode 100644 (file)
index 0000000..a0c5646
--- /dev/null
@@ -0,0 +1,28 @@
+################################################################################
+#
+# efibootmgr
+#
+################################################################################
+
+EFIBOOTMGR_VERSION = efibootmgr-0.12
+EFIBOOTMGR_SITE = $(call github,rhinstaller,efibootmgr,$(EFIBOOTMGR_VERSION))
+EFIBOOTMGR_LICENSE = GPLv2+
+EFIBOOTMGR_LICENSE_FILES = COPYING
+EFIBOOTMGR_DEPENDENCIES = efivar
+
+define EFIBOOTMSR_PATCH_HEADER_PATH
+       $(SED) 's,-I/,-I$(STAGING_DIR)/,' $(@D)/Makefile
+endef
+
+EFIBOOTMGR_POST_PATCH_HOOKS += EFIBOOTMSR_PATCH_HEADER_PATH
+
+define EFIBOOTMGR_BUILD_CMDS
+       $(TARGET_MAKE_ENV) $(TARGET_CONFIGURE_OPTS) $(MAKE1) -C $(@D)
+endef
+
+define EFIBOOTMGR_INSTALL_TARGET_CMDS
+       $(INSTALL) -D -m 0755 $(@D)/src/efibootmgr/efibootmgr \
+               $(TARGET_DIR)/usr/bin/efibootmgr
+endef
+
+$(eval $(generic-package))