From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with archive (Exim 4.43) id 1KcNdA-0008Gt-Fw for mharc-grub-devel@gnu.org; Sun, 07 Sep 2008 13:00:56 -0400 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1KcNd8-0008G7-Dx for grub-devel@gnu.org; Sun, 07 Sep 2008 13:00:54 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1KcNd6-0008FW-UE for grub-devel@gnu.org; Sun, 07 Sep 2008 13:00:53 -0400 Received: from [199.232.76.173] (port=41821 helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1KcNd6-0008FT-Mp for grub-devel@gnu.org; Sun, 07 Sep 2008 13:00:52 -0400 Received: from aybabtu.com ([69.60.117.155]:47134) by monty-python.gnu.org with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.60) (envelope-from ) id 1KcNd6-0006F6-DW for grub-devel@gnu.org; Sun, 07 Sep 2008 13:00:52 -0400 Received: from [192.168.10.10] (helo=thorin) by aybabtu.com with esmtps (TLS-1.0:RSA_AES_256_CBC_SHA1:32) (Exim 4.69) (envelope-from ) id 1KcNSO-0005o1-Lv for grub-devel@gnu.org; Sun, 07 Sep 2008 18:49:50 +0200 Received: from rmh by thorin with local (Exim 4.63) (envelope-from ) id 1KcNbQ-0002Ci-RI for grub-devel@gnu.org; Sun, 07 Sep 2008 18:59:08 +0200 Date: Sun, 7 Sep 2008 18:59:08 +0200 From: Robert Millan To: grub-devel@gnu.org Message-ID: <20080907165908.GA8373@thorin> MIME-Version: 1.0 Content-Type: multipart/mixed; boundary="IJpNTDwzlM2Ie8A6" Content-Disposition: inline Organization: free as in freedom X-Message-Flag: Worried about Outlook viruses? Switch to Thunderbird! www.mozilla.com/thunderbird X-Debbugs-No-Ack: true User-Agent: Mutt/1.5.13 (2006-08-11) X-detected-kernel: by monty-python.gnu.org: Genre and OS details not recognized. Subject: [PATCH] revert r1302 X-BeenThere: grub-devel@gnu.org X-Mailman-Version: 2.1.5 Precedence: list Reply-To: The development of GRUB 2 List-Id: The development of GRUB 2 List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 07 Sep 2008 17:00:55 -0000 --IJpNTDwzlM2Ie8A6 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline 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." --IJpNTDwzlM2Ie8A6 Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="revert_1302.diff" 2008-09-07 Robert Millan * 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 . - */ - -#include -#include -#include - -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 . - */ - -#include - -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++; } } --IJpNTDwzlM2Ie8A6--