summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--resources/grub/patch/0002-lib-syslinux_parse-add-support-for-vesa-menu.c32.patch209
-rwxr-xr-xresources/scripts/helpers/download/grub7
2 files changed, 1 insertions, 215 deletions
diff --git a/resources/grub/patch/0002-lib-syslinux_parse-add-support-for-vesa-menu.c32.patch b/resources/grub/patch/0002-lib-syslinux_parse-add-support-for-vesa-menu.c32.patch
deleted file mode 100644
index 69bdde5..0000000
--- a/resources/grub/patch/0002-lib-syslinux_parse-add-support-for-vesa-menu.c32.patch
+++ /dev/null
@@ -1,209 +0,0 @@
-From 191aeee1b67ff30d6c868320a51cb9fb766874be Mon Sep 17 00:00:00 2001
-From: Lunar <lunar@torproject.org>
-Date: Fri, 13 Feb 2015 22:08:11 +0100
-Subject: [PATCH] lib/syslinux_parse: add support for (vesa)menu.c32
-
-Fixes Savannah bug #44238.
----
- grub-core/lib/syslinux_parse.c | 165 ++++++++++++++++++++++++++---------------
- 1 file changed, 107 insertions(+), 58 deletions(-)
-
-diff --git a/grub-core/lib/syslinux_parse.c b/grub-core/lib/syslinux_parse.c
-index 22389eb..153260b 100644
---- a/grub-core/lib/syslinux_parse.c
-+++ b/grub-core/lib/syslinux_parse.c
-@@ -840,6 +840,82 @@ simplify_filename (char *str)
- }
-
- static grub_err_t
-+print_config (struct output_buffer *outbuf,
-+ struct syslinux_menu *menu,
-+ const char *filename, const char *basedir)
-+{
-+ struct syslinux_menu *menuptr;
-+ grub_err_t err = GRUB_ERR_NONE;
-+ char *new_cwd = NULL;
-+ char *new_target_cwd = NULL;
-+ char *newname = NULL;
-+ int depth = 0;
-+
-+ new_cwd = get_read_filename (menu, basedir);
-+ if (!new_cwd)
-+ {
-+ err = grub_errno;
-+ goto out;
-+ }
-+ new_target_cwd = get_target_filename (menu, basedir);
-+ if (!new_target_cwd)
-+ {
-+ err = grub_errno;
-+ goto out;
-+ }
-+ newname = get_read_filename (menu, filename);
-+ if (!newname)
-+ {
-+ err = grub_errno;
-+ goto out;
-+ }
-+ simplify_filename (newname);
-+
-+ print_string ("#");
-+ print_file (outbuf, menu, filename, NULL);
-+ print_string (" ");
-+ print (outbuf, newname, grub_strlen (newname));
-+ print_string (":\n");
-+
-+ for (menuptr = menu; menuptr; menuptr = menuptr->parent, depth++)
-+ if (grub_strcmp (menuptr->filename, newname) == 0
-+ || depth > 20)
-+ break;
-+ if (menuptr)
-+ {
-+ print_string (" syslinux_configfile -r ");
-+ print_file (outbuf, menu, "/", NULL);
-+ print_string (" -c ");
-+ print_file (outbuf, menu, basedir, NULL);
-+ print_string (" ");
-+ print_file (outbuf, menu, filename, NULL);
-+ print_string ("\n");
-+ }
-+ else
-+ {
-+ err = config_file (outbuf, menu->root_read_directory,
-+ menu->root_target_directory, new_cwd, new_target_cwd,
-+ newname, menu, menu->flavour);
-+ if (err == GRUB_ERR_FILE_NOT_FOUND
-+ || err == GRUB_ERR_BAD_FILENAME)
-+ {
-+ grub_errno = err = GRUB_ERR_NONE;
-+ print_string ("# File ");
-+ err = print (outbuf, newname, grub_strlen (newname));
-+ if (err)
-+ goto out;
-+ print_string (" not found\n");
-+ }
-+ }
-+
-+ out:
-+ grub_free (newname);
-+ grub_free (new_cwd);
-+ grub_free (new_target_cwd);
-+ return err;
-+}
-+
-+static grub_err_t
- write_entry (struct output_buffer *outbuf,
- struct syslinux_menu *menu,
- struct syslinux_menuentry *curentry)
-@@ -1227,6 +1303,36 @@ write_entry (struct output_buffer *outbuf,
- break;
- }
-
-+ if (grub_strcasecmp (basename, "menu.c32") == 0 ||
-+ grub_strcasecmp (basename, "vesamenu.c32") == 0)
-+ {
-+ char *ptr;
-+ char *end;
-+
-+ ptr = curentry->append;
-+ if (!ptr)
-+ return grub_errno;
-+
-+ while (*ptr)
-+ {
-+ end = ptr;
-+ for (end = ptr; *end && !grub_isspace (*end); end++);
-+ if (*end)
-+ *end++ = '\0';
-+
-+ /* "~" is supposed to be current file, so let's skip it */
-+ if (grub_strcmp (ptr, "~") != 0)
-+ {
-+ err = print_config (outbuf, menu, ptr, "");
-+ if (err != GRUB_ERR_NONE)
-+ break;
-+ }
-+ for (ptr = end; *ptr && grub_isspace (*ptr); ptr++);
-+ }
-+ err = GRUB_ERR_NONE;
-+ break;
-+ }
-+
- /* FIXME: gdb, GFXBoot, Hdt, Ifcpu, Ifplop, Kbdmap,
- FIXME: Linux, Lua, Meminfo, rosh, Sanbboot */
-
-@@ -1239,70 +1345,13 @@ write_entry (struct output_buffer *outbuf,
- }
- case KERNEL_CONFIG:
- {
-- char *new_cwd, *new_target_cwd;
- const char *ap;
- ap = curentry->append;
- if (!ap)
- ap = curentry->argument;
- if (!ap)
- ap = "";
-- new_cwd = get_read_filename (menu, ap);
-- if (!new_cwd)
-- return grub_errno;
-- new_target_cwd = get_target_filename (menu, ap);
-- if (!new_target_cwd)
-- return grub_errno;
--
-- struct syslinux_menu *menuptr;
-- char *newname;
-- int depth = 0;
--
-- newname = get_read_filename (menu, curentry->kernel_file);
-- if (!newname)
-- return grub_errno;
-- simplify_filename (newname);
--
-- print_string ("#");
-- print_file (outbuf, menu, curentry->kernel_file, NULL);
-- print_string (" ");
-- print (outbuf, newname, grub_strlen (newname));
-- print_string (":\n");
--
-- for (menuptr = menu; menuptr; menuptr = menuptr->parent, depth++)
-- if (grub_strcmp (menuptr->filename, newname) == 0
-- || depth > 20)
-- break;
-- if (menuptr)
-- {
-- print_string (" syslinux_configfile -r ");
-- print_file (outbuf, menu, "/", NULL);
-- print_string (" -c ");
-- print_file (outbuf, menu, ap, NULL);
-- print_string (" ");
-- print_file (outbuf, menu, curentry->kernel_file, NULL);
-- print_string ("\n");
-- }
-- else
-- {
-- err = config_file (outbuf, menu->root_read_directory,
-- menu->root_target_directory, new_cwd, new_target_cwd,
-- newname, menu, menu->flavour);
-- if (err == GRUB_ERR_FILE_NOT_FOUND
-- || err == GRUB_ERR_BAD_FILENAME)
-- {
-- grub_errno = err = GRUB_ERR_NONE;
-- print_string ("# File ");
-- err = print (outbuf, newname, grub_strlen (newname));
-- if (err)
-- return err;
-- print_string (" not found\n");
-- }
-- if (err)
-- return err;
-- }
-- grub_free (newname);
-- grub_free (new_cwd);
-- grub_free (new_target_cwd);
-+ print_config (outbuf, menu, curentry->kernel_file, ap);
- }
- break;
- case KERNEL_NO_KERNEL:
---
-1.9.1
-
diff --git a/resources/scripts/helpers/download/grub b/resources/scripts/helpers/download/grub
index 70835f2..45414dc 100755
--- a/resources/scripts/helpers/download/grub
+++ b/resources/scripts/helpers/download/grub
@@ -45,7 +45,7 @@ cd "grub/"
# Reset to the last commit that was tested
# ------------------------------------------------------------------------------
-git reset --hard fa07d919d1ff868b18d8a42276d094b63a58e299
+git reset --hard afd0f21b2027310fda52b00ac1b964041d39a363
# Apply patches
# ------------------------------------------------------------------------------
@@ -53,11 +53,6 @@ git reset --hard fa07d919d1ff868b18d8a42276d094b63a58e299
# Replace "GNU GRUB version" in GRUB screen with "FREE AS IN FREEDOM"
git am "../resources/grub/patch/0001-grub-core-normal-main.c-Display-FREE-AS-IN-FREEDOM-n.patch"
-# See 0002-lib-syslinux_parse-add-support-for-vesa-menu.c32.patch
-# Wait for it or an improved version of it to be merged, then update GRUB and delete the patch file
-# https://people.torproject.org/~lunar/volatile/2015-03-17-e3Yp1d7FifQ/0001-lib-syslinux_parse-add-support-for-vesa-menu.c32.patch
-git am "../resources/grub/patch/0002-lib-syslinux_parse-add-support-for-vesa-menu.c32.patch"
-
cd "../"
printf "\n\n"