summaryrefslogtreecommitdiff
path: root/extra/efibootmgr
diff options
context:
space:
mode:
Diffstat (limited to 'extra/efibootmgr')
-rwxr-xr-xextra/efibootmgr/PKGBUILD13
-rw-r--r--extra/efibootmgr/efibootmgr-tilt_slashes-func.patch61
2 files changed, 69 insertions, 5 deletions
diff --git a/extra/efibootmgr/PKGBUILD b/extra/efibootmgr/PKGBUILD
index c538a4a96..5b7f43f8c 100755
--- a/extra/efibootmgr/PKGBUILD
+++ b/extra/efibootmgr/PKGBUILD
@@ -1,11 +1,11 @@
-# $Id: PKGBUILD 185838 2013-05-19 14:37:47Z tpowa $
+# $Id: PKGBUILD 187100 2013-06-03 19:31:59Z tpowa $
# Maintainer: Tobias Powalowski <tpowa@archlinux.org>
# Contributor : Murtuza Akhtari <inxsible at gmail dot com>
# Contributor: Keshav P R <skodabenz at rocketmail dot com>
pkgname=efibootmgr
pkgver=0.6.0
-pkgrel=2
+pkgrel=3
pkgdesc="Tool to modify UEFI Firmware Boot Manager Variables."
arch=('i686' 'x86_64')
url="http://linux.dell.com/efibootmgr/"
@@ -15,7 +15,9 @@ makedepends=()
provides=()
options=(strip purge docs zipman !emptydirs)
-source=("http://linux.dell.com/efibootmgr/permalink/${pkgname}-${pkgver}.tar.gz")
+source=("http://linux.dell.com/efibootmgr/permalink/${pkgname}-${pkgver}.tar.gz"
+ "efibootmgr-tilt_slashes-func.patch"
+)
build () {
rm -rf ${srcdir}/efibootmgr-${pkgver}_build/ || true
@@ -23,7 +25,7 @@ build () {
cp -r ${srcdir}/efibootmgr-${pkgver} ${srcdir}/efibootmgr-${pkgver}_build
cd ${srcdir}/efibootmgr-${pkgver}_build/
-
+ patch -Np1 -i ${srcdir}/efibootmgr-tilt_slashes-func.patch
echo
CFLAGS= make
@@ -43,4 +45,5 @@ package() {
install -D -m644 ${srcdir}/efibootmgr-${pkgver}_build/src/man/man8/efibootmgr.8 ${pkgdir}/usr/share/man/man8/efibootmgr.8
}
-md5sums=('9e9a31d79e579644de83a14139b66d10')
+md5sums=('9e9a31d79e579644de83a14139b66d10'
+ '3622c0e978cf859cae60803a6b6a0c5e')
diff --git a/extra/efibootmgr/efibootmgr-tilt_slashes-func.patch b/extra/efibootmgr/efibootmgr-tilt_slashes-func.patch
new file mode 100644
index 000000000..ce857bb3c
--- /dev/null
+++ b/extra/efibootmgr/efibootmgr-tilt_slashes-func.patch
@@ -0,0 +1,61 @@
+diff --git a/src/efibootmgr/efibootmgr.c b/src/efibootmgr/efibootmgr.c
+index 236365a..9883961 100644
+--- a/src/efibootmgr/efibootmgr.c
++++ b/src/efibootmgr/efibootmgr.c
+@@ -803,6 +803,7 @@ usage()
+ printf("\t-V | --version return version and exit\n");
+ printf("\t-w | --write-signature write unique sig to MBR if needed\n");
+ printf("\t-@ | --append-binary-args file append extra args from file (use \"-\" for stdin)\n");
++ printf("\t | --help show help/usage\n");
+ }
+
+ static void
+@@ -863,6 +864,7 @@ parse_opts(int argc, char **argv)
+ {"version", no_argument, 0, 'V'},
+ {"write-signature", no_argument, 0, 'w'},
+ {"append-binary-args", required_argument, 0, '@'},
++ {"help", no_argument, 0, 2},
+ {0, 0, 0, 0}
+ };
+
+@@ -1014,6 +1016,10 @@ parse_opts(int argc, char **argv)
+ opts.write_signature = 1;
+ break;
+
++ case 2:
++ usage();
++ exit(1);
++
+ default:
+ usage();
+ exit(1);
+diff --git a/src/lib/efi.c b/src/lib/efi.c
+index a4ce5cf..8ef8be8 100644
+--- a/src/lib/efi.c
++++ b/src/lib/efi.c
+@@ -70,6 +70,16 @@ efi_guid_unparse(efi_guid_t *guid, char *out)
+ return out;
+ }
+
++char *
++tilt_slashes(char *s)
++{
++ char *p;
++ for (p = s; *p; p++)
++ if (*p == '/')
++ *p = '\\';
++ return s;
++}
++
+ void
+ set_fs_kernel_calls()
+ {
+@@ -535,7 +545,7 @@ char *make_disk_load_option(char *p, char *disk)
+ signature,
+ mbr_type, signature_type);
+
+- efichar_from_char(os_loader_path, opts.loader, sizeof(os_loader_path));
++ efichar_from_char(os_loader_path, tilt_slashes(opts.loader), sizeof(os_loader_path));
+ p += make_file_path_device_path (p, os_loader_path);
+ p += make_end_device_path (p);
+