From 24095302aaa3ddd81726783f37cda972e781c575 Mon Sep 17 00:00:00 2001 From: Felix Fietkau Date: Wed, 12 Mar 2014 11:21:16 +0000 Subject: [PATCH] grub2: update to 2.02-beta2, fixes mac os x 10.9 support (and many other things) Signed-off-by: Felix Fietkau SVN-Revision: 39889 --- package/boot/grub2/Makefile | 8 +- .../grub2/patches/100-grub_setup_root.patch | 133 ++++++++++++------ .../grub2/patches/200-fix-gets-removal.patch | 17 +-- .../boot/grub2/patches/200-grub_musl.patch | 22 --- 4 files changed, 100 insertions(+), 80 deletions(-) delete mode 100644 package/boot/grub2/patches/200-grub_musl.patch diff --git a/package/boot/grub2/Makefile b/package/boot/grub2/Makefile index 20dced94801..6b4cc7d70b5 100644 --- a/package/boot/grub2/Makefile +++ b/package/boot/grub2/Makefile @@ -9,12 +9,12 @@ include $(TOPDIR)/rules.mk include $(INCLUDE_DIR)/kernel.mk PKG_NAME:=grub -PKG_VERSION:=2.00 +PKG_VERSION:=2.02~beta2 PKG_RELEASE:=1 -PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz -PKG_SOURCE_URL:=@GNU/grub -PKG_MD5SUM:=e927540b6eda8b024fb0391eeaa4091c +PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.xz +PKG_SOURCE_URL:=http://alpha.gnu.org/gnu/grub +PKG_MD5SUM:=be62932eade308a364ea4bbc91295930 HOST_BUILD_PARALLEL:=1 PKG_BUILD_DEPENDS:=grub2/host diff --git a/package/boot/grub2/patches/100-grub_setup_root.patch b/package/boot/grub2/patches/100-grub_setup_root.patch index 7775b2a22ef..9619c410b84 100644 --- a/package/boot/grub2/patches/100-grub_setup_root.patch +++ b/package/boot/grub2/patches/100-grub_setup_root.patch @@ -1,41 +1,6 @@ --- a/util/grub-setup.c +++ b/util/grub-setup.c -@@ -141,12 +141,11 @@ write_rootdev (char *core_img, grub_devi - static void - setup (const char *dir, - const char *boot_file, const char *core_file, -- const char *dest, int force, -+ const char *root, const char *dest, int force, - int fs_probe, int allow_floppy) - { - char *boot_path, *core_path, *core_path_dev, *core_path_dev_full; - char *boot_img, *core_img; -- char *root = 0; - size_t boot_size, core_size; - grub_uint16_t core_sectors; - grub_device_t root_dev = 0, dest_dev, core_dev; -@@ -253,7 +252,10 @@ setup (const char *dir, - - core_dev = dest_dev; - -- { -+ if (root) -+ root_dev = grub_device_open(root); -+ -+ if (!root_dev) { - char **root_devices = grub_guess_root_devices (dir); - char **cur; - int found = 0; -@@ -263,6 +265,8 @@ setup (const char *dir, - char *drive; - grub_device_t try_dev; - -+ if (root_dev) -+ break; - drive = grub_util_get_grub_dev (*cur); - if (!drive) - continue; -@@ -956,6 +960,8 @@ static struct argp_option options[] = { +@@ -87,6 +87,8 @@ static struct argp_option options[] = { N_("install even if problems are detected"), 0}, {"skip-fs-probe",'s',0, 0, N_("do not probe for filesystems in DEVICE"), 0}, @@ -44,7 +9,7 @@ {"verbose", 'v', 0, 0, N_("print verbose messages."), 0}, {"allow-floppy", 'a', 0, 0, /* TRANSLATORS: The potential breakage isn't limited to floppies but it's -@@ -993,6 +999,7 @@ struct arguments +@@ -130,6 +132,7 @@ struct arguments char *core_file; char *dir; char *dev_map; @@ -52,7 +17,7 @@ int force; int fs_probe; int allow_floppy; -@@ -1040,6 +1047,13 @@ argp_parser (int key, char *arg, struct +@@ -178,6 +181,13 @@ argp_parser (int key, char *arg, struct arguments->dev_map = xstrdup (arg); break; @@ -66,12 +31,88 @@ case 'f': arguments->force = 1; break; -@@ -1172,7 +1186,7 @@ main (int argc, char *argv[]) - setup (arguments.dir ? : DEFAULT_DIRECTORY, - arguments.boot_file ? : DEFAULT_BOOT_FILE, - arguments.core_file ? : DEFAULT_CORE_FILE, -- dest_dev, arguments.force, -+ arguments.root_dev, dest_dev, arguments.force, - arguments.fs_probe, arguments.allow_floppy); +@@ -313,7 +323,7 @@ main (int argc, char *argv[]) + GRUB_SETUP_FUNC (arguments.dir ? : DEFAULT_DIRECTORY, + arguments.boot_file ? : DEFAULT_BOOT_FILE, + arguments.core_file ? : DEFAULT_CORE_FILE, +- dest_dev, arguments.force, ++ arguments.root_dev, dest_dev, arguments.force, + arguments.fs_probe, arguments.allow_floppy, + arguments.add_rs_codes); - /* Free resources. */ +--- a/util/setup.c ++++ b/util/setup.c +@@ -247,13 +247,12 @@ identify_partmap (grub_disk_t disk __att + void + SETUP (const char *dir, + const char *boot_file, const char *core_file, +- const char *dest, int force, ++ const char *root, const char *dest, int force, + int fs_probe, int allow_floppy, + int add_rs_codes __attribute__ ((unused))) /* unused on sparc64 */ + { + char *core_path; + char *boot_img, *core_img, *boot_path; +- char *root = 0; + size_t boot_size, core_size; + #ifdef GRUB_SETUP_BIOS + grub_uint16_t core_sectors; +@@ -307,7 +306,10 @@ SETUP (const char *dir, + + core_dev = dest_dev; + +- { ++ if (root) ++ root_dev = grub_device_open(root); ++ ++ if (!root_dev) { + char **root_devices = grub_guess_root_devices (dir); + char **cur; + int found = 0; +@@ -317,6 +319,8 @@ SETUP (const char *dir, + char *drive; + grub_device_t try_dev; + ++ if (root_dev) ++ break; + drive = grub_util_get_grub_dev (*cur); + if (!drive) + continue; +--- a/include/grub/util/install.h ++++ b/include/grub/util/install.h +@@ -182,13 +182,13 @@ grub_install_get_image_target (const cha + void + grub_util_bios_setup (const char *dir, + const char *boot_file, const char *core_file, +- const char *dest, int force, ++ const char *root, const char *dest, int force, + int fs_probe, int allow_floppy, + int add_rs_codes); + void + grub_util_sparc_setup (const char *dir, + const char *boot_file, const char *core_file, +- const char *dest, int force, ++ const char *root, const char *dest, int force, + int fs_probe, int allow_floppy, + int add_rs_codes); + +--- a/util/grub-install.c ++++ b/util/grub-install.c +@@ -1660,7 +1660,7 @@ main (int argc, char *argv[]) + /* Now perform the installation. */ + if (install_bootsector) + grub_util_bios_setup (platdir, "boot.img", "core.img", +- install_drive, force, ++ NULL, install_drive, force, + fs_probe, allow_floppy, add_rs_codes); + break; + } +@@ -1686,7 +1686,7 @@ main (int argc, char *argv[]) + /* Now perform the installation. */ + if (install_bootsector) + grub_util_sparc_setup (platdir, "boot.img", "core.img", +- install_device, force, ++ NULL, install_device, force, + fs_probe, allow_floppy, + 0 /* unused */ ); + break; diff --git a/package/boot/grub2/patches/200-fix-gets-removal.patch b/package/boot/grub2/patches/200-fix-gets-removal.patch index 4370fb5a9a3..737fb975bf7 100644 --- a/package/boot/grub2/patches/200-fix-gets-removal.patch +++ b/package/boot/grub2/patches/200-fix-gets-removal.patch @@ -1,15 +1,16 @@ --- a/grub-core/gnulib/stdio.in.h +++ b/grub-core/gnulib/stdio.in.h -@@ -137,12 +137,6 @@ - "use gnulib module fflush for portable POSIX compliance"); +@@ -695,13 +695,6 @@ _GL_WARN_ON_USE (getline, "getline is un + # endif #endif -/* It is very rare that the developer ever has full control of stdin, -- so any use of gets warrants an unconditional warning. Assume it is -- always declared, since it is required by C89. */ +- so any use of gets warrants an unconditional warning; besides, C11 +- removed it. */ -#undef gets --_GL_WARN_ON_USE (gets, "gets is a security hole - use fgets instead"); +-#if HAVE_RAW_DECL_GETS +-#endif - - #if @GNULIB_FOPEN@ - # if @REPLACE_FOPEN@ - # if !(defined __cplusplus && defined GNULIB_NAMESPACE) + + #if @GNULIB_OBSTACK_PRINTF@ || @GNULIB_OBSTACK_PRINTF_POSIX@ + struct obstack; diff --git a/package/boot/grub2/patches/200-grub_musl.patch b/package/boot/grub2/patches/200-grub_musl.patch deleted file mode 100644 index b1ff63af1f1..00000000000 --- a/package/boot/grub2/patches/200-grub_musl.patch +++ /dev/null @@ -1,22 +0,0 @@ -diff -urN grub-2.00/build-aux/config.sub grub-2.00.new/build-aux/config.sub ---- grub-2.00/build-aux/config.sub 2012-06-18 23:08:46.000000000 +0200 -+++ grub-2.00.new/build-aux/config.sub 2012-11-22 14:12:12.190748353 +0100 -@@ -126,7 +126,8 @@ - linux-uclibc* | uclinux-uclibc* | uclinux-gnu* | kfreebsd*-gnu* | \ - knetbsd*-gnu* | netbsd*-gnu* | \ - kopensolaris*-gnu* | \ -- storm-chaos* | os2-emx* | rtmk-nova*) -+ storm-chaos* | os2-emx* | rtmk-nova* | \ -+ linux-musl*) - os=-$maybe_os - basic_machine=`echo $1 | sed 's/^\(.*\)-\([^-]*-[^-]*\)$/\1/'` - ;; -@@ -1360,7 +1361,7 @@ - | -chorusos* | -chorusrdb* | -cegcc* \ - | -cygwin* | -msys* | -pe* | -psos* | -moss* | -proelf* | -rtems* \ - | -mingw32* | -linux-gnu* | -linux-android* \ -- | -linux-newlib* | -linux-uclibc* \ -+ | -linux-newlib* | -linux-uclibc* | -linux-musl* \ - | -uxpv* | -beos* | -mpeix* | -udk* \ - | -interix* | -uwin* | -mks* | -rhapsody* | -darwin* | -opened* \ - | -openstep* | -oskit* | -conix* | -pw32* | -nonstopux* \