[Top][All Lists]
[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: |
Thu, 12 Feb 2009 19:23:50 +0100 |
User-agent: |
Thunderbird 2.0.0.19 (X11/20090105) |
Here I attach updated version
Regards
Vladimir 'phcoder' Serbinenko
phcoder wrote:
Sorry, Changelog entry was wrong:
+2009-02-04 Vladimir Serbinenko <address@hidden>
+
+ Add prefix option for grub-setup
+
+ * util/i386/pc/grub-setup.c (main): Add -p option.
+ (setup): additional argument prefix_dir
Thanks
Vladimir 'phcoder' Serbinenko
phcoder wrote:
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: util/i386/pc/grub-install.in
===================================================================
--- util/i386/pc/grub-install.in (revision 1989)
+++ util/i386/pc/grub-install.in (working copy)
@@ -295,7 +295,7 @@
$grub_mkimage --output=${grubdir}/core.img
--prefix=${prefix_drive}${relative_grubdir} $modules || exit 1
# Now perform the installation.
- $grub_setup ${setup_verbose} --directory=${grubdir}
--device-map=${device_map} \
+ $grub_setup ${setup_verbose} --directory=${grubdir}
--prefix=${relative_grubdir} --device-map=${device_map} \
${install_device} || exit 1
else
$grub_mkimage -d ${pkglibdir} --output=/boot/multiboot.img
--prefix=${prefix_drive}${relative_grubdir} $modules || exit 1
Index: util/i386/pc/grub-setup.c
===================================================================
--- util/i386/pc/grub-setup.c (revision 1989)
+++ 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 ();
@@ -518,6 +519,7 @@
{"core-image", required_argument, 0, 'c'},
{"directory", required_argument, 0, 'd'},
{"device-map", required_argument, 0, 'm'},
+ {"prefix", required_argument, 0, 'p'},
{"root-device", required_argument, 0, 'r'},
{"help", no_argument, 0, 'h'},
{"version", no_argument, 0, 'V'},
@@ -540,6 +542,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 +551,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 +579,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 +587,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 +608,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 +735,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 +745,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 +757,7 @@
free (boot_file);
free (core_file);
free (dir);
+ free (prefix_dir);
free (dev_map);
free (root_dev);
free (dest_dev);
Index: ChangeLog
===================================================================
--- ChangeLog (revision 1989)
+++ ChangeLog (working copy)
@@ -1,3 +1,104 @@
+2009-02-12 Vladimir Serbinenko <address@hidden>
+
+ Add prefix option for grub-setup
+
+ * util/i386/pc/grub-setup.c (main): Add -p option.
+ (setup): additional argument prefix_dir
+ * util/i386/pc/grub-install.in: pass prefix option to grub-setup
+
2009-02-11 Robert Millan <address@hidden>
* util/grub.d/00_header.in: Update old reference to `font' command.