grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH] fix grub-install from build directory


From: Andrey Borzenkov
Subject: [PATCH] fix grub-install from build directory
Date: Sun, 22 Sep 2013 20:22:20 +0400

1. grub-install exits early due to cp error

address@hidden:~/build/grub> LC_ALL=C sudo pkgdatadir=$PWD ./grub-install 
--grub-mkimage=./grub-mkimage --grub-setup=./grub-bios-setup 
--grub-probe=./grub-probe --grub-mkrelpath=./grub-mkrelpath 
--boot-directory=/boot/upstream -d $PWD/grub-core /dev/sda1
cp: omitting directory '/home/bor/build/grub/themes/starfield/src'
address@hidden:~/build/grub> echo $?
1

Explicitly skip non-plain files but emit a warning.

2. grub-install requires grub-editenv when installing in clean directory.

Add --grub-editenv option to grub-install to specify its location.

Signed-off-by: Andrey Borzenkov <address@hidden>

---
 util/grub-install.in     |  6 ++++++
 util/grub-install_header | 10 +++++++---
 2 files changed, 13 insertions(+), 3 deletions(-)

diff --git a/util/grub-install.in b/util/grub-install.in
index 1816bb1..acd516f 100644
--- a/util/grub-install.in
+++ b/util/grub-install.in
@@ -75,6 +75,7 @@ usage () {
     print_option_help "--grub-setup=$(gettext "FILE")" "$(gettext "use FILE as 
grub-setup")"
     print_option_help "--grub-mkrelpath=$(gettext "FILE")" "$(gettext "use 
FILE as grub-mkrelpath")"
     print_option_help "--grub-probe=$(gettext "FILE")" "$(gettext "use FILE as 
grub-probe")"
+    print_option_help "--grub-editenv=$(gettext "FILE")" "$(gettext "use FILE 
as grub-editenv")"
     # TRANSLATORS: "may break" doesn't just mean that option wouldn't have any
     # effect but that it will make the resulting install unbootable from HDD.
     print_option_help "--allow-floppy" "$(gettext "make the drive also 
bootable as floppy (default for fdX devices). May break on some BIOSes.")"
@@ -173,6 +174,11 @@ do
     --grub-probe=*)
        grub_probe="`echo "$option" | sed 's/--grub-probe=//'`" ;;
 
+    --grub-editenv)
+           grub_editenv="`argument "$option" "$@"`"; shift;;
+    --grub-editenv=*)
+       grub_editenv="`echo "$option" | sed 's/--grub-editenv=//'`" ;;
+
     --no-floppy)
        ;;
     --recheck)
diff --git a/util/grub-install_header b/util/grub-install_header
index cf7fa9d..26013fe 100644
--- a/util/grub-install_header
+++ b/util/grub-install_header
@@ -45,10 +45,14 @@ handler.lst video.lst crypto.lst terminal.lst"
 grub_mkimage="${bindir}/@grub_mkimage@"
 
 grub_compress_file () {
-    if [ "$compressor" != "" ] ; then
-        "$compressor" $compressor_opts "$1" > "$2"
+    if [ -f "$1" ] ; then
+       if [ "$compressor" != "" ] ; then
+           "$compressor" $compressor_opts "$1" > "$2"
+       else
+           cp -f "$1" "$2"
+       fi
     else
-        cp -f "$1" "$2"
+       gettext_printf "Skipping file \`%s': not a plain file\n" "$1" 1>&2
     fi
 }
 
-- 
tg: (37966d5..) u/grub-install-non-plain-files (depends on: master)



reply via email to

[Prev in Thread] Current Thread [Next in Thread]