From: Robert Millan <rmh@aybabtu.com>
To: grub-devel@gnu.org
Subject: [PATCH] revert r1302
Date: Sun, 7 Sep 2008 18:59:08 +0200 [thread overview]
Message-ID: <20080907165908.GA8373@thorin> (raw)
[-- Attachment #1: Type: text/plain, Size: 921 bytes --]
Hi,
r1302 was a change I introduced to make device.map work on non-i386. However,
with time it appears that it wasn't really a good idea. The powerpc version
is fragile (see #465365 for an example of breakage), and nobody's really into
maintaining the powerpc-ieee1275 port nowadays.
Then, at some point we started favouring UUIDs over hardcoded drive names in
device.map. As a result, even if your device.map names like hd0 are
meaningless on ieee1275, this won't matter because grub.cfg uses UUIDs to
access everything (and GRUB itself finds grub.cfg by asking the OFW).
So I propose reverting it (along with the changes that propagated to other
files). See attached patch.
--
Robert Millan
The DRM opt-in fallacy: "Your data belongs to us. We will decide when (and
how) you may access your data; but nobody's threatening your freedom: we
still allow you to remove your data and not access it at all."
[-- Attachment #2: revert_1302.diff --]
[-- Type: text/x-diff, Size: 9355 bytes --]
2008-09-07 Robert Millan <rmh@aybabtu.com>
* conf/i386-pc.rmk (grub_mkdevicemap_SOURCES): Remove
`util/i386/get_disk_name.c'.
* conf/i386-efi.rmk: Likewise.
* conf/x86_64-efi.rmk: Likewise.
* conf/i386-coreboot.rmk: Likewise.
* conf/i386-ieee1275.rmk: Likewise.
* conf/powerpc-ieee1275.rmk (grub_mkdevicemap_SOURCES): Remove
`util/ieee1275/get_disk_name.c'.
* include/grub/util/misc.h (grub_util_get_disk_name): Remove.
* util/ieee1275/get_disk_name.c: Remove file.
* util/i386/get_disk_name.c: Remove file.
* util/grub-mkdevicemap.c (make_device_map): Back to hardcoding
"hd%d" for device.map entries, rather than using
grub_util_get_disk_name().
Index: conf/i386-pc.rmk
===================================================================
--- conf/i386-pc.rmk (revision 1857)
+++ conf/i386-pc.rmk (working copy)
@@ -108,8 +108,7 @@ grub_setup_SOURCES = util/i386/pc/grub-s
grub_setup_init.c
# For grub-mkdevicemap.
-grub_mkdevicemap_SOURCES = util/grub-mkdevicemap.c util/misc.c \
- util/i386/get_disk_name.c
+grub_mkdevicemap_SOURCES = util/grub-mkdevicemap.c util/misc.c
# For grub-emu.
util/grub-emu.c_DEPENDENCIES = grub_emu_init.h
Index: conf/i386-efi.rmk
===================================================================
--- conf/i386-efi.rmk (revision 1857)
+++ conf/i386-efi.rmk (working copy)
@@ -28,8 +28,7 @@ util/i386/efi/grub-mkimage.c_DEPENDENCIE
# kern/fs.c kern/env.c fs/fshelp.c
# For grub-mkdevicemap.
-grub_mkdevicemap_SOURCES = util/grub-mkdevicemap.c util/misc.c \
- util/i386/get_disk_name.c
+grub_mkdevicemap_SOURCES = util/grub-mkdevicemap.c util/misc.c
# For grub-emu.
util/grub-emu.c_DEPENDENCIES = grub_emu_init.h
Index: conf/x86_64-efi.rmk
===================================================================
--- conf/x86_64-efi.rmk (revision 1857)
+++ conf/x86_64-efi.rmk (working copy)
@@ -30,8 +30,7 @@ grub_mkimage_SOURCES = util/i386/efi/gru
# kern/fs.c kern/env.c fs/fshelp.c
# For grub-mkdevicemap.
-grub_mkdevicemap_SOURCES = util/grub-mkdevicemap.c util/misc.c \
- util/i386/get_disk_name.c
+grub_mkdevicemap_SOURCES = util/grub-mkdevicemap.c util/misc.c
# For grub-emu.
util/grub-emu.c_DEPENDENCIES = grub_emu_init.h
Index: conf/i386-coreboot.rmk
===================================================================
--- conf/i386-coreboot.rmk (revision 1857)
+++ conf/i386-coreboot.rmk (working copy)
@@ -51,8 +51,7 @@ sbin_UTILITIES += grub-emu
endif
# For grub-mkdevicemap.
-grub_mkdevicemap_SOURCES = util/grub-mkdevicemap.c util/misc.c \
- util/i386/get_disk_name.c
+grub_mkdevicemap_SOURCES = util/grub-mkdevicemap.c util/misc.c
# For grub-emu.
util/grub-emu.c_DEPENDENCIES = grub_emu_init.h
Index: conf/powerpc-ieee1275.rmk
===================================================================
--- conf/powerpc-ieee1275.rmk (revision 1856)
+++ conf/powerpc-ieee1275.rmk (working copy)
@@ -34,8 +34,7 @@ sbin_UTILITIES += grub-emu
endif
# For grub-mkdevicemap.
-grub_mkdevicemap_SOURCES = util/grub-mkdevicemap.c util/misc.c \
- util/ieee1275/get_disk_name.c
+grub_mkdevicemap_SOURCES = util/grub-mkdevicemap.c util/misc.c
# For grub-emu
util/grub-emu.c_DEPENDENCIES = grub_emu_init.h
Index: conf/i386-ieee1275.rmk
===================================================================
--- conf/i386-ieee1275.rmk (revision 1857)
+++ conf/i386-ieee1275.rmk (working copy)
@@ -48,8 +48,7 @@ sbin_UTILITIES += grub-emu
endif
# For grub-mkdevicemap.
-grub_mkdevicemap_SOURCES = util/grub-mkdevicemap.c util/misc.c \
- util/i386/get_disk_name.c
+grub_mkdevicemap_SOURCES = util/grub-mkdevicemap.c util/misc.c
# For grub-emu.
util/grub-emu.c_DEPENDENCIES = grub_emu_init.h
Index: include/grub/util/misc.h
===================================================================
--- include/grub/util/misc.h (revision 1856)
+++ include/grub/util/misc.h (working copy)
@@ -56,7 +56,6 @@ void grub_util_load_image (const char *p
void grub_util_write_image (const char *img, size_t size, FILE *out);
void grub_util_write_image_at (const void *img, size_t size, off_t offset,
FILE *out);
-char *grub_util_get_disk_name (int disk, char *name);
#ifndef HAVE_ASPRINTF
Index: util/ieee1275/get_disk_name.c
===================================================================
--- util/ieee1275/get_disk_name.c (revision 1856)
+++ util/ieee1275/get_disk_name.c (working copy)
@@ -1,61 +0,0 @@
-/* get_disk_name.c */
-/*
- * GRUB -- GRand Unified Bootloader
- * Copyright (C) 2007 Free Software Foundation, Inc.
- *
- * GRUB is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * GRUB is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with GRUB. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <config.h>
-#include <stdio.h>
-#include <grub/util/misc.h>
-
-char *
-grub_util_get_disk_name (int disk __attribute__ ((unused)), char *name)
-{
- int p[2];
-
- char *line = NULL;
- size_t zero = 0;
- int len;
-
- pipe (p);
-
- switch (fork ())
- {
- case -1:
- perror ("fork");
- exit (1);
- case 0:
- close (1);
- dup (p[1]);
- close (p[0]);
- close (p[1]);
- execlp ("ofpathname", "ofpathname", "-a", name, NULL);
- perror ("execlp");
- default:
- close (0);
- dup (p[0]);
- close (p[0]);
- close (p[1]);
- }
-
- len = getline (&line, &zero, stdin);
- if (len < 2)
- grub_util_error ("ofpathname didn't print a meaningful alias name");
-
- line[len - 1] = '\0';
-
- return line;
-}
Index: util/i386/get_disk_name.c
===================================================================
--- util/i386/get_disk_name.c (revision 1856)
+++ util/i386/get_disk_name.c (working copy)
@@ -1,31 +0,0 @@
-/* get_disk_name.c */
-/*
- * GRUB -- GRand Unified Bootloader
- * Copyright (C) 2007 Free Software Foundation, Inc.
- *
- * GRUB is free software: you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation, either version 3 of the License, or
- * (at your option) any later version.
- *
- * GRUB is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with GRUB. If not, see <http://www.gnu.org/licenses/>.
- */
-
-#include <grub/util/misc.h>
-
-char *
-grub_util_get_disk_name (int disk, char *name __attribute__ ((unused)))
-{
- char *p;
-
- p = xmalloc (16);
- sprintf (p, "hd%d", disk);
-
- return p;
-}
Index: util/grub-mkdevicemap.c
===================================================================
--- util/grub-mkdevicemap.c (revision 1856)
+++ util/grub-mkdevicemap.c (working copy)
@@ -450,11 +450,8 @@ make_device_map (const char *device_map,
if (realpath (discn, name))
{
- char *p;
strcat (name, "/disc");
- p = grub_util_get_disk_name (num_hd, name);
- fprintf (fp, "(%s)\t%s\n", p, name);
- free (p);
+ fprintf (fp, "(hd%d)\t%s\n", num_hd, name);
}
num_hd++;
@@ -472,10 +469,7 @@ make_device_map (const char *device_map,
get_ide_disk_name (name, i);
if (check_device (name))
{
- char *p;
- p = grub_util_get_disk_name (num_hd, name);
- fprintf (fp, "(%s)\t%s\n", p, name);
- free (p);
+ fprintf (fp, "(hd%d)\t%s\n", num_hd, name);
num_hd++;
}
}
@@ -505,10 +499,7 @@ make_device_map (const char *device_map,
get_ataraid_disk_name (name, i);
if (check_device (name))
{
- char *p;
- p = grub_util_get_disk_name (num_hd, name);
- fprintf (fp, "(%s)\t%s\n", p, name);
- free (p);
+ fprintf (fp, "(hd%d)\t%s\n", num_hd, name);
num_hd++;
}
}
@@ -538,10 +529,7 @@ make_device_map (const char *device_map,
get_scsi_disk_name (name, i);
if (check_device (name))
{
- char *p;
- p = grub_util_get_disk_name (num_hd, name);
- fprintf (fp, "(%s)\t%s\n", p, name);
- free (p);
+ fprintf (fp, "(hd%d)\t%s\n", num_hd, name);
num_hd++;
}
}
@@ -564,10 +552,7 @@ make_device_map (const char *device_map,
get_dac960_disk_name (name, controller, drive);
if (check_device (name))
{
- char *p;
- p = grub_util_get_disk_name (num_hd, name);
- fprintf (fp, "(%s)\t%s\n", p, name);
- free (p);
+ fprintf (fp, "(hd%d)\t%s\n", num_hd, name);
num_hd++;
}
}
@@ -633,10 +618,7 @@ make_device_map (const char *device_map,
get_i2o_disk_name (name, unit);
if (check_device (name))
{
- char *p;
- p = grub_util_get_disk_name (num_hd, name);
- fprintf (fp, "(%s)\t%s\n", p, name);
- free (p);
+ fprintf (fp, "(hd%d)\t%s\n", num_hd, name);
num_hd++;
}
}
next reply other threads:[~2008-09-07 17:00 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-09-07 16:59 Robert Millan [this message]
2008-09-07 17:00 ` [PATCH] revert r1302 Robert Millan
2008-09-25 14:16 ` Robert Millan
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20080907165908.GA8373@thorin \
--to=rmh@aybabtu.com \
--cc=grub-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.