All of lore.kernel.org
 help / color / mirror / Atom feed
From: Robert Millan <rmh@aybabtu.com>
To: grub-devel@gnu.org
Subject: Re: [PATCH] revert r1302
Date: Thu, 25 Sep 2008 16:16:15 +0200	[thread overview]
Message-ID: <20080925141615.GA3719@thorin> (raw)
In-Reply-To: <20080907165908.GA8373@thorin>


Committed.

On Sun, Sep 07, 2008 at 06:59:08PM +0200, Robert Millan wrote:
> 
> 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."

> 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++;
>  	  }
>        }

> _______________________________________________
> Grub-devel mailing list
> Grub-devel@gnu.org
> http://lists.gnu.org/mailman/listinfo/grub-devel


-- 
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."



      parent reply	other threads:[~2008-09-25 14:18 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-09-07 16:59 [PATCH] revert r1302 Robert Millan
2008-09-07 17:00 ` Robert Millan
2008-09-25 14:16 ` Robert Millan [this message]

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=20080925141615.GA3719@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.