grub-devel
[Top][All Lists]
Advanced

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

Re: [PATCH] Allow to install in non-default prefixes


From: phcoder
Subject: Re: [PATCH] Allow to install in non-default prefixes
Date: Sun, 01 Feb 2009 20:11:14 +0100
User-agent: Thunderbird 2.0.0.19 (X11/20090105)

After speaking with daChaac on IRC some problems with patch were identified. Fixed now
Thanks daChaac.
phcoder

phcoder wrote:
This patch adds -p option for grub-setup on i386-pc. Without it install to any prefix different from /boot/grub failed
Thank
Vladimir 'phcoder' Serbinenko


Index: ChangeLog
===================================================================
--- ChangeLog   (revision 1966)
+++ ChangeLog   (working copy)
@@ -1,3 +1,9 @@
+2009-02-01  Vladimir Serbinenko  <address@hidden>
+
+       Add prefix option for grub-setup
+
+       * util/i386/pc/grub-setup.c (grub_video_vbe_scroll): Add -p option.
+
 2009-02-01  Vesa Jääskeläinen  <address@hidden>
 
        Base on patch on bug #24154 created by Tomas Tintera

Index: util/i386/pc/grub-setup.c
===================================================================
--- util/i386/pc/grub-setup.c   (revision 1966)
+++ util/i386/pc/grub-setup.c   (working copy)
@@ -94,6 +94,7 @@
 
 static void
 setup (const char *dir,
+       const char *prefix_dir,
        const char *boot_file, const char *core_file,
        const char *root, const char *dest, int must_embed)
 {
@@ -373,7 +374,7 @@
   
   /* Make sure that GRUB reads the identical image as the OS.  */
   tmp_img = xmalloc (core_size);
-  core_path_dev = grub_util_get_path (DEFAULT_DIRECTORY, core_file);
+  core_path_dev = grub_util_get_path (prefix_dir, core_file);
   
   /* It is a Good Thing to sync two times.  */
   sync ();
@@ -540,6 +541,7 @@
   -b, --boot-image=FILE   use FILE as the boot image [default=%s]\n\
   -c, --core-image=FILE   use FILE as the core image [default=%s]\n\
   -d, --directory=DIR     use GRUB files in the directory DIR [default=%s]\n\
+  -p, --prefix=DIR        specify the name of GRUB directory relative to 
partition root [default=%s]\n \
   -m, --device-map=FILE   use FILE as the device map [default=%s]\n\
   -r, --root-device=DEV   use DEV as the root device [default=guessed]\n\
   -h, --help              display this message and exit\n\
@@ -548,7 +550,8 @@
 \n\
 Report bugs to <%s>.\n\
 ",
-           DEFAULT_BOOT_FILE, DEFAULT_CORE_FILE, DEFAULT_DIRECTORY,
+           DEFAULT_BOOT_FILE, DEFAULT_CORE_FILE, DEFAULT_DIRECTORY, 
+           DEFAULT_DIRECTORY,
            DEFAULT_DEVICE_MAP, PACKAGE_BUGREPORT);
 
   exit (status);
@@ -575,6 +578,7 @@
   char *dev_map = 0;
   char *root_dev = 0;
   char *dest_dev;
+  char *prefix_dir = 0;
   int must_embed = 0;
   
   progname = "grub-setup";
@@ -582,7 +586,7 @@
   /* Check for options.  */
   while (1)
     {
-      int c = getopt_long (argc, argv, "b:c:d:m:r:hVv", options, 0);
+      int c = getopt_long (argc, argv, "p:b:c:d:m:r:hVv", options, 0);
 
       if (c == -1)
        break;
@@ -603,6 +607,13 @@
            core_file = xstrdup (optarg);
            break;
 
+         case 'p':
+           if (prefix_dir)
+             free (prefix_dir);
+
+           prefix_dir = xstrdup (optarg);
+           break;
+
          case 'd':
            if (dir)
              free (dir);
@@ -723,6 +734,7 @@
       for (i = 0; devicelist[i]; i++)
        {
          setup (dir ? : DEFAULT_DIRECTORY,
+                prefix_dir ? : DEFAULT_DIRECTORY,
                 boot_file ? : DEFAULT_BOOT_FILE,
                 core_file ? : DEFAULT_CORE_FILE,
                 root_dev, grub_util_get_grub_dev (devicelist[i]), 1);
@@ -732,6 +744,7 @@
 #endif
   /* Do the real work.  */
     setup (dir ? : DEFAULT_DIRECTORY,
+          prefix_dir ? : DEFAULT_DIRECTORY,
           boot_file ? : DEFAULT_BOOT_FILE,
           core_file ? : DEFAULT_CORE_FILE,
           root_dev, dest_dev, must_embed);
@@ -743,6 +756,7 @@
   free (boot_file);
   free (core_file);
   free (dir);
+  free (prefix_dir);
   free (dev_map);
   free (root_dev);
   free (dest_dev);

reply via email to

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