grub2 1.96+20080724-10

Robert Millan rmh at aybabtu.com
Sat Sep 6 21:05:59 UTC 2008


Hi,

Please consider approving grub2 1.96+20080724-10.  debdiff attached.

Thanks!

-- 
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."
-------------- next part --------------
diff -u grub2-1.96+20080724/debian/changelog grub2-1.96+20080724/debian/changelog
--- grub2-1.96+20080724/debian/changelog
+++ grub2-1.96+20080724/debian/changelog
@@ -1,3 +1,14 @@
+grub2 (1.96+20080724-10) unstable; urgency=high
+
+  * patches/03_disable_floppies.diff: Free .drive struct member when skipping
+    floppy drives.  (Closes: #496040)
+  * patches/902_boot_blocklist_hack.diff: Support separate /boot when using
+    blocklists.  (Closes: #496820, #489287, #494589)
+  * patches/00_ntfs_insensitive.diff: They say NTFS is an insensitive fool.
+    It must be true! (use case insensitive match in NTFS) (Closes: #497889)
+
+ -- Robert Millan <rmh at aybabtu.com>  Sat,  6 Sep 2008 14:56:38 +0200
+
 grub2 (1.96+20080724-9) unstable; urgency=high
 
   [ Felix Zielcke ]
diff -u grub2-1.96+20080724/debian/patches/03_disable_floppies.diff grub2-1.96+20080724/debian/patches/03_disable_floppies.diff
--- grub2-1.96+20080724/debian/patches/03_disable_floppies.diff
+++ grub2-1.96+20080724/debian/patches/03_disable_floppies.diff
@@ -3,9 +3,11 @@
 
 An ugly kludge.  Should this be merged upstream?
 
---- util/biosdisk.c	2008-04-07 18:45:01.000000000 +0200
-+++ util/biosdisk.c	2008-04-10 10:52:32.000000000 +0200
-@@ -550,6 +550,16 @@ read_device_map (const char *dev_map)
+Index: util/biosdisk.c
+===================================================================
+--- util/biosdisk.c	(revision 1832)
++++ util/biosdisk.c	(working copy)
+@@ -544,6 +544,18 @@
  	  continue;
  	}
  
@@ -14,6 +16,8 @@
 +	  char *q = p + sizeof ("/dev/fd") - 1;
 +	  if (*q >= '0' && *q <= '9')
 +	    {
++	      free (map[drive].drive);
++	      map[drive].drive = NULL;
 +	      grub_util_info ("`%s' looks like a floppy drive, skipping", p);
 +	      continue;
 +	    }
diff -u grub2-1.96+20080724/debian/legacy/update-grub grub2-1.96+20080724/debian/legacy/update-grub
--- grub2-1.96+20080724/debian/legacy/update-grub
+++ grub2-1.96+20080724/debian/legacy/update-grub
@@ -115,7 +115,7 @@
 	if ! test -e ${device_map} ; then
 		echo quit | grub --batch --no-floppy --device-map=${device_map} > /dev/null
 	fi
-	grub-probe --device-map=${device_map} -t device $1
+	grub-probe --device-map=${device_map} -t device $1 2> /dev/null
 }
 
 # Usage: convert_raid1 os_device
@@ -152,7 +152,7 @@
 	if ! test -e ${device_map} ; then
 		echo quit | grub --batch --no-floppy --device-map=${device_map} > /dev/null
 	fi
-	GRUB_LEGACY_0_BASED_PARTITIONS=1 grub-probe --device-map=${device_map} -t drive -d "$1"
+	GRUB_LEGACY_0_BASED_PARTITIONS=1 grub-probe --device-map=${device_map} -t drive -d "$1" 2> /dev/null
 }
 
 # Usage: convert_default os_device
@@ -196,7 +196,7 @@
 kernel_dir=`make_system_path_relative_to_its_root /boot`
 
 # the "-t abstraction" check is a workaround untill #484297 is fixed
-if abstraction=`grub-probe -t abstraction --device ${root_device}` && [ "$abstraction" = "" ] && \
+if abstraction=`grub-probe -t abstraction --device ${root_device} 2> /dev/null` && [ "$abstraction" = "" ] && \
     root_uuid=`grub-probe --device-map=${device_map} --device ${root_device} --target=fs_uuid 2> /dev/null` && \
     test -e "/dev/disk/by-uuid/${root_uuid}" ; then
   linux_root_device=UUID=${root_uuid}
only in patch2:
unchanged:
--- grub2-1.96+20080724.orig/debian/patches/902_boot_blocklist_hack.diff
+++ grub2-1.96+20080724/debian/patches/902_boot_blocklist_hack.diff
@@ -0,0 +1,20 @@
+Index: util/i386/pc/grub-setup.c
+===================================================================
+--- util/i386/pc/grub-setup.c	(revision 1836)
++++ util/i386/pc/grub-setup.c	(working copy)
+@@ -383,6 +383,15 @@
+       grub_disk_cache_invalidate_all ();
+       
+       file = grub_file_open (core_path_dev);
++
++      if (grub_errno == GRUB_ERR_FILE_NOT_FOUND)
++	{
++	  /* Clean the previous grub_errno */
++	  grub_errno = GRUB_ERR_NONE;
++	  strcpy (core_path_dev, "/grub/core.img");
++	  file = grub_file_open (core_path_dev);
++	}
++      
+       if (file)
+ 	{
+ 	  if (grub_file_size (file) != core_size)
only in patch2:
unchanged:
--- grub2-1.96+20080724.orig/debian/patches/00_ntfs_insensitive.diff
+++ grub2-1.96+20080724/debian/patches/00_ntfs_insensitive.diff
@@ -0,0 +1,102 @@
+2008-09-05  Bean  <bean123ch at gmail.com>
+
+	* fs/fshelp.c (grub_fshelp_find_file): Handle case insensitive names.
+
+	* fs/ntfs.c (list_file): Ignore names in DOS namespace, set the case
+	insensitive bit for names in Win32 and Win32 & DOS namespace.
+
+	* include/grub/fshelp.h (GRUB_FSHELP_CASE_INSENSITIVE): New macro.
+
+	* include/grub/types.h (LONG_MAX): Likewise.
+
+Index: fs/ntfs.c
+===================================================================
+--- fs/ntfs.c	(revision 1851)
++++ fs/ntfs.c	(revision 1852)
+@@ -575,13 +575,20 @@
+ 
+   while (1)
+     {
+-      char *ustr;
++      char *ustr, namespace;
++
+       if (pos[0xC] & 2)		/* end signature */
+ 	break;
+ 
+-      np = pos + 0x52;
+-      ns = (unsigned char) *(np - 2);
+-      if (ns)
++      np = pos + 0x50;
++      ns = (unsigned char) *(np++);
++      namespace = *(np++);
++
++      /*
++       *  Ignore files in DOS namespace, as they will reappear as Win32
++       *  names.
++       */
++      if ((ns) && (namespace != 2))
+ 	{
+ 	  enum grub_fshelp_filetype type;
+ 	  struct grub_ntfs_file *fdiro;
+@@ -610,6 +617,9 @@
+ 	  *grub_utf16_to_utf8 ((grub_uint8_t *) ustr, (grub_uint16_t *) np,
+ 			       ns) = '\0';
+ 
++          if (namespace)
++            type |= GRUB_FSHELP_CASE_INSENSITIVE;
++
+ 	  if (hook (ustr, type, fdiro))
+ 	    {
+ 	      grub_free (ustr);
+Index: fs/fshelp.c
+===================================================================
+--- fs/fshelp.c	(revision 1851)
++++ fs/fshelp.c	(revision 1852)
+@@ -80,14 +80,17 @@
+ 				    enum grub_fshelp_filetype filetype,
+ 				    grub_fshelp_node_t node)
+ 	{
+-	  if (type == GRUB_FSHELP_UNKNOWN || grub_strcmp (name, filename))
++	  if (filetype == GRUB_FSHELP_UNKNOWN ||
++              (grub_strcmp (name, filename) &&
++               (! (filetype & GRUB_FSHELP_CASE_INSENSITIVE) ||
++                grub_strncasecmp (name, filename, LONG_MAX))))
+ 	    {
+ 	      grub_free (node);
+ 	      return 0;
+ 	    }
+ 	  
+ 	  /* The node is found, stop iterating over the nodes.  */
+-	  type = filetype;
++	  type = filetype & ~GRUB_FSHELP_CASE_INSENSITIVE;
+ 	  oldnode = currnode;
+ 	  currnode = node;
+ 	  
+Index: include/grub/types.h
+===================================================================
+--- include/grub/types.h	(revision 1851)
++++ include/grub/types.h	(revision 1852)
+@@ -94,8 +94,10 @@
+ 
+ #if GRUB_CPU_SIZEOF_VOID_P == 8
+ # define ULONG_MAX 18446744073709551615UL
++# define LONG_MAX 9223372036854775807UL
+ #else
+ # define ULONG_MAX 4294967295UL
++# define LONG_MAX 2147483647UL
+ #endif
+ 
+ /* The type for representing a file offset.  */
+Index: include/grub/fshelp.h
+===================================================================
+--- include/grub/fshelp.h	(revision 1851)
++++ include/grub/fshelp.h	(revision 1852)
+@@ -26,6 +26,8 @@
+ 
+ typedef struct grub_fshelp_node *grub_fshelp_node_t;
+ 
++#define GRUB_FSHELP_CASE_INSENSITIVE	0x100
++
+ enum grub_fshelp_filetype
+   {
+     GRUB_FSHELP_UNKNOWN,


More information about the Pkg-grub-devel mailing list