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."
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 <[EMAIL PROTECTED]> 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 <[EMAIL PROTECTED]> + + * 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,