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