Hello community,

here is the log from the commit of package grub for openSUSE:Factory checked in 
at 2013-10-17 14:10:42
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/grub (Old)
 and      /work/SRC/openSUSE:Factory/.grub.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "grub"

Changes:
--------
--- /work/SRC/openSUSE:Factory/grub/grub.changes        2013-07-22 
14:51:17.000000000 +0200
+++ /work/SRC/openSUSE:Factory/.grub.new/grub.changes   2013-10-17 
14:10:42.000000000 +0200
@@ -1,0 +2,25 @@
+Wed Oct 16 16:19:00 UTC 2013 - [email protected]
+
+- pull fixes from SLES (bnc#830796)
+  + more unsigned-blocks-n-offsets
+  + more e2fs IDs -- rename patch accordingly
+    recognise-zen -> add-e2fs-slice-types
+  + look for protective MBR partition in all 4 slots
+  + grub-bigraid-failsafe:
+    try harder to provide a reasonable geometry on soft RAIDs
+- remove the wildcard patches for good:
+    stage2-dir-callback.diff
+    stage2-wildcard.diff
+    stage2-wildcard-zerowidth.diff
+    stage2-wildcard-doc.diff
+
+-------------------------------------------------------------------
+Wed Oct 16 15:01:30 UTC 2013 - [email protected]
+
+- restructure %post in order to fix
+  bnc#846163, bnc#844893, bnc#805732, bnc#682337
+  Only walk through the boot loader install logic 
+  if it is configured. Use fsync if available.
+- revert misguided "ncurses-devel" hackery (again!)
+
+-------------------------------------------------------------------

Old:
----
  recognise-zen
  stage2-dir-callback.diff
  stage2-wildcard-doc.diff
  stage2-wildcard-zerowidth.diff
  stage2-wildcard.diff

New:
----
  add-e2fs-slice-types
  grub-bigraid-failsafe

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ grub.spec ++++++
--- /var/tmp/diff_new_pack.jsafh8/_old  2013-10-17 14:10:46.000000000 +0200
+++ /var/tmp/diff_new_pack.jsafh8/_new  2013-10-17 14:10:46.000000000 +0200
@@ -27,8 +27,8 @@
 BuildRequires:  gcc41
 BuildRequires:  glibc-devel
 BuildRequires:  libncurses5
-%endif
 BuildRequires:  ncurses-devel
+%endif
 %if %suse_version >= 1230
 BuildRequires:  makeinfo
 %endif
@@ -54,14 +54,10 @@
 Patch13:        grub-a20.patch
 Patch14:        disk-by-ID
 Patch15:        e100-newIDs
-Patch16:        recognise-zen
+Patch16:        add-e2fs-slice-types
 Patch17:        grub-install-fix-UUID_LABEL
 Patch18:        ext2-support-256byte-inodes
 Patch19:        grub-read-gpt
-Patch20:        stage2-dir-callback.diff
-Patch21:        stage2-wildcard.diff
-Patch22:        stage2-wildcard-zerowidth.diff
-Patch23:        stage2-wildcard-doc.diff
 Patch24:        grub-%{version}-protexec.patch
 Patch25:        pacify-autoconf
 Patch26:        grub-grubonce-no-wait
@@ -78,6 +74,7 @@
 Patch43:        handle-incomplete-last-track
 Patch44:        no-MAP_GROWSDOWN
 Patch45:        grub-automake.patch
+Patch46:        grub-bigraid-failsafe
 Url:            http://www.gnu.org/software/grub/grub.en.html
 BuildRoot:      %{_tmppath}/%{name}-%{version}-build
 Summary:        Grand Unified Boot Loader
@@ -121,11 +118,6 @@
 %patch17 -p1
 %patch18 -p1
 %patch19 -p1
-# Disable the wildcard feature
-#%patch20 -p1
-#%patch21 -p1
-#%patch22 -p1
-#%patch23 -p1
 %patch24 -p1
 %patch25 -p1
 %patch26 -p1
@@ -142,6 +134,7 @@
 %patch43 -p1
 %patch44 -p1
 %patch45 -p1
+%patch46 -p1
 
 %build
 perl -pi -e 's,/usr/share/grub/i386-pc,/usr/lib/grub,' docs/grub.texi
@@ -219,17 +212,41 @@
 /boot/boot
 
 %post
+%install_info --info-dir=%{_infodir} %{_infodir}/%{name}.info.gz
+%install_info --info-dir=%{_infodir} %{_infodir}/multiboot.info.gz
+
+if [ -e /etc/sysconfig/bootloader ] ; then
+    source /etc/sysconfig/bootloader
+else
+    if test "$YAST_IS_RUNNING" != "instsys"; then
+       echo "grub postinstall: no /etc/sysconfig/bootloader"
+    fi
+    exit 0
+fi
+
+# bnc#682337
+if [ "x$LOADER_TYPE" != "xgrub" -o ! -r /etc/grub.conf ] ; then
+    echo "grub postinstall: grub is not the active boot loader"
+    exit 0
+fi
+
 # should anything go wrong the system will remain bootable :
 if [ -e /boot/grub/stage2 ] ; then
        mv /boot/grub/stage2{,.old}
 fi
 # copy especially stage2 over, because it will be modified in-place !
 cp -p /usr/lib/grub/*stage1*   /boot/grub 2>/dev/null || true
-%install_info --info-dir=%{_infodir} %{_infodir}/%{name}.info.gz
-%install_info --info-dir=%{_infodir} %{_infodir}/multiboot.info.gz
-#special hack for #46843
+# Avoid fragmentation on reiserfs.
 dd if=/usr/lib/grub/stage2 of=/boot/grub/stage2 bs=256k 
-sync
+# bnc#682337 -- Dr. Schroeder's special ointment:
+if [ -x /bin/fsync ]; then
+    fsync /boot/grub/stage2
+    fsync /boot/grub
+    fsync /boot
+    fsync /
+else
+    sync
+fi
 # sync may take much longer on XFS (Bug#223773)
 if test "$YAST_IS_RUNNING" != "instsys"; then
     bootpart=`df /boot/. 2>/dev/null | perl -ane '$F[0] =~ m,/dev/[^\s]*, && 
print $F[0]'`
@@ -238,21 +255,17 @@
     if [ -n "$XFS_FREEZE" ] ; then
       if [ "t_$ID_FS_TYPE" = "t_xfs" ]; then
             sync; sleep 5; sync;
-            ( xfs_freeze -f /boot;  xfs_freeze -u /boot ) > /dev/null 2>&1
+           # bnc#805732
+            (xfs_freeze -f /; xfs_freeze -f /boot; \
+               xfs_freeze -u /; xfs_freeze -u /boot ) > /dev/null 2>&1
       fi
     fi
 fi
-if [ -e /etc/sysconfig/bootloader ] ; then
-    source /etc/sysconfig/bootloader
-fi
-
-LOADER_TYPE=${LOADER_TYPE:-grub} 
 
 # command sequence to update-install stage1/stage2.
 # leave everything else alone !
-if [ "x$LOADER_TYPE" = "xgrub" -a -e /etc/grub.conf ] ; then
-       /usr/sbin/grub --batch < /etc/grub.conf >/dev/null 2>&1
-fi
+/usr/sbin/grub --batch < /etc/grub.conf >/dev/null 2>&1
+
 exit 0
 
 %changelog

++++++ add-e2fs-slice-types ++++++
Index: grub-0.97/stage2/fsys_ext2fs.c
===================================================================
--- grub-0.97.orig/stage2/fsys_ext2fs.c
+++ grub-0.97/stage2/fsys_ext2fs.c
@@ -257,6 +257,9 @@ ext2fs_mount (void)
   if ((((current_drive & 0x80) || (current_slice != 0))
        && (current_slice != PC_SLICE_TYPE_EXT2FS)
        && (current_slice != PC_SLICE_TYPE_LINUX_RAID)
+       && (current_slice != PC_SLICE_TYPE_ZEN)
+       && (current_slice != PC_SLICE_TYPE_ZEN_DISABLED)
+       && (current_slice != PC_SLICE_TYPE_OEM_RECOVERY)
        && (! IS_PC_SLICE_TYPE_BSD_WITH_FS (current_slice, FS_EXT2FS))
        && (! IS_PC_SLICE_TYPE_BSD_WITH_FS (current_slice, FS_OTHER)))
       || part_length < (SBLOCK + (sizeof (struct ext2_super_block) / 
DEV_BSIZE))
Index: grub-0.97/stage2/pc_slice.h
===================================================================
--- grub-0.97.orig/stage2/pc_slice.h
+++ grub-0.97/stage2/pc_slice.h
@@ -114,6 +114,9 @@
 #define PC_SLICE_TYPE_EXT2FS           0x83
 #define PC_SLICE_TYPE_LINUX_EXTENDED   0x85
 #define PC_SLICE_TYPE_VSTAFS           0x9e
+#define PC_SLICE_TYPE_ZEN              0xbc
+#define PC_SLICE_TYPE_ZEN_DISABLED     0xbd
+#define PC_SLICE_TYPE_OEM_RECOVERY     0x27
 #define PC_SLICE_TYPE_DELL_UTIL                0xde
 #define PC_SLICE_TYPE_LINUX_RAID       0xfd
 
++++++ grub-bigraid-failsafe ++++++
--- grub-0.97/lib/device.c.orig 2010-05-11 13:09:13.000000000 +0200
+++ grub-0.97/lib/device.c      2010-05-11 13:13:58.000000000 +0200
@@ -26,6 +26,8 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
+#include <stdint.h>
+#include <sys/mount.h>
 #include <ctype.h>
 #include <assert.h>
 #include <unistd.h>
@@ -153,12 +154,37 @@ get_drive_geometry (struct geometry *geo
   {
     struct hd_geometry hdg;
     unsigned long nr;
+    uint64_t size64;
     
     if (ioctl (fd, HDIO_GETGEO, &hdg))
       goto fail;
 
+    /* Provide some sanity for obsolete legacy code. This shouldn't
+     * be really necessary, but better safe than sorry.
+     */
+    if (hdg.heads == 0)
+      hdg.heads = 240;
+
+    if (hdg.sectors == 0)
+      hdg.sectors = 63;
+
+#ifdef BLKGETSIZE64
+    if (ioctl(fd, BLKGETSIZE64, &size64) == 0)
+      {
+        /* BLKGETSIZE64 returns the size of the device in octets. */
+        size64 >>= 9;
+       nr = (size64 < ~0UL)? size64 : ~0UL;
+      }
+    else
+#endif
     if (ioctl (fd, BLKGETSIZE, &nr))
-      goto fail;
+      {
+       /* If the device is big, then use all we can from it. */
+       if (errno == EFBIG)
+         nr = ~0UL;
+       else
+         goto fail;
+      }
     
     /* Got the geometry, so save it. */
     geom->cylinders = hdg.cylinders;
++++++ grub-read-gpt ++++++
--- /var/tmp/diff_new_pack.jsafh8/_old  2013-10-17 14:10:46.000000000 +0200
+++ /var/tmp/diff_new_pack.jsafh8/_new  2013-10-17 14:10:46.000000000 +0200
@@ -1,6 +1,6 @@
-diff -Nurp grub-0.97.old/stage2/builtins.c grub-0.97/stage2/builtins.c
---- grub-0.97.old/stage2/builtins.c    2008-11-05 17:39:17.000000000 +0100
-+++ grub-0.97/stage2/builtins.c        2008-11-05 17:40:36.000000000 +0100
+diff -Nurp grub-0.97.orig/stage2/builtins.c grub-0.97/stage2/builtins.c
+--- grub-0.97.orig/stage2/builtins.c   2011-09-12 11:48:25.000000000 +0200
++++ grub-0.97/stage2/builtins.c        2011-09-12 11:48:42.000000000 +0200
 @@ -1255,14 +1255,15 @@ find_func (char *arg, int flags)
    for (drive = 0x80; drive < 0x88; drive++)
      {
@@ -20,7 +20,7 @@
        {
          if (type != PC_SLICE_TYPE_NONE
              && ! IS_PC_SLICE_TYPE_BSD (type)
-@@ -2877,8 +2878,8 @@ parttype_func (char *arg, int flags)
+@@ -2880,8 +2881,8 @@ parttype_func (char *arg, int flags)
  {
    int new_type;
    unsigned long part = 0xFFFFFF;
@@ -31,7 +31,7 @@
    char mbr[512];
  
    /* Get the drive and the partition.  */
-@@ -2915,8 +2916,15 @@ parttype_func (char *arg, int flags)
+@@ -2918,8 +2919,15 @@ parttype_func (char *arg, int flags)
    /* Look for the partition.  */
    while (next_partition (current_drive, 0xFFFFFF, &part, &type,
                         &start, &len, &offset, &entry,
@@ -48,9 +48,9 @@
        if (part == current_partition)
        {
          /* Found.  */
-diff -Nurp grub-0.97.old/stage2/disk_io.c grub-0.97/stage2/disk_io.c
---- grub-0.97.old/stage2/disk_io.c     2008-11-05 17:39:17.000000000 +0100
-+++ grub-0.97/stage2/disk_io.c 2008-11-05 17:40:36.000000000 +0100
+diff -Nurp grub-0.97.orig/stage2/disk_io.c grub-0.97/stage2/disk_io.c
+--- grub-0.97.orig/stage2/disk_io.c    2011-09-12 11:48:25.000000000 +0200
++++ grub-0.97/stage2/disk_io.c 2011-09-12 11:51:24.000000000 +0200
 @@ -21,6 +21,7 @@
  
  #include <shared.h>
@@ -59,7 +59,7 @@
  
  #ifdef SUPPORT_NETBOOT
  # define GRUB 1
-@@ -502,8 +503,8 @@ int
+@@ -501,8 +502,8 @@ int
  set_partition_hidden_flag (int hidden)
  {
    unsigned long part = 0xFFFFFF;
@@ -70,7 +70,7 @@
    char mbr[512];
    
    /* The drive must be a hard disk.  */
-@@ -524,8 +525,15 @@ set_partition_hidden_flag (int hidden)
+@@ -523,8 +524,15 @@ set_partition_hidden_flag (int hidden)
    /* Look for the partition.  */
    while (next_partition (current_drive, 0xFFFFFF, &part, &type,           
                         &start, &len, &offset, &entry,
@@ -87,7 +87,7 @@
        if (part == current_partition)
        {
          /* Found.  */
-@@ -577,11 +585,14 @@ next_partition (unsigned long drive, uns
+@@ -576,11 +584,14 @@ next_partition (unsigned long drive, uns
                unsigned long *partition, int *type,
                unsigned long *start, unsigned long *len,
                unsigned long *offset, int *entry,
@@ -103,12 +103,17 @@
  
    /* Get next BSD partition in current PC slice.  */
    int next_bsd_partition (void)
-@@ -666,6 +677,40 @@ next_partition (unsigned long drive, uns
+@@ -665,6 +676,45 @@ next_partition (unsigned long drive, uns
          return 0;
        }
  
 +      /* If this is a GPT partition table, read it as such.  */
-+      if (*entry == -1 && *offset == 0 && PC_SLICE_TYPE (buf, 0) == 
PC_SLICE_TYPE_GPT)
++      if (*entry == -1 && *offset == 0 && 
++        (PC_SLICE_TYPE (buf, 0) == PC_SLICE_TYPE_GPT ||
++         PC_SLICE_TYPE (buf, 1) == PC_SLICE_TYPE_GPT ||
++         PC_SLICE_TYPE (buf, 2) == PC_SLICE_TYPE_GPT ||
++         PC_SLICE_TYPE (buf, 3) == PC_SLICE_TYPE_GPT  )
++        )
 +       {
 +         struct grub_gpt_header *hdr = (struct grub_gpt_header *) buf;
 +
@@ -144,7 +149,7 @@
        /* Increase the entry number.  */
        (*entry)++;
  
-@@ -710,6 +755,43 @@ next_partition (unsigned long drive, uns
+@@ -709,6 +759,43 @@ next_partition (unsigned long drive, uns
        return 1;
      }
  
@@ -188,7 +193,7 @@
    /* Start the body of this function.  */
    
  #ifndef STAGE1_5
-@@ -717,6 +799,9 @@ next_partition (unsigned long drive, uns
+@@ -716,6 +803,9 @@ next_partition (unsigned long drive, uns
      return 0;
  #endif
  
@@ -198,7 +203,7 @@
    /* If previous partition is a BSD partition or a PC slice which
       contains BSD partitions...  */
    if ((*partition != 0xFFFFFF && IS_PC_SLICE_TYPE_BSD (*type & 0xff))
-@@ -755,6 +840,9 @@ real_open_partition (int flags)
+@@ -754,6 +844,9 @@ real_open_partition (int flags)
    unsigned long dest_partition = current_partition;
    unsigned long part_offset;
    unsigned long ext_offset;
@@ -208,7 +213,7 @@
    int entry;
    char buf[SECTOR_SIZE];
    int bsd_part, pc_slice;
-@@ -766,7 +854,8 @@ real_open_partition (int flags)
+@@ -765,7 +858,8 @@ real_open_partition (int flags)
        int ret = next_partition (current_drive, dest_partition,
                                &current_partition, &current_slice,
                                &part_start, &part_length,
@@ -218,9 +223,9 @@
        bsd_part = (current_partition >> 8) & 0xFF;
        pc_slice = current_partition >> 16;
        return ret;
-diff -Nurp grub-0.97.old/stage2/gpt.h grub-0.97/stage2/gpt.h
---- grub-0.97.old/stage2/gpt.h 1970-01-01 01:00:00.000000000 +0100
-+++ grub-0.97/stage2/gpt.h     2008-11-05 17:40:36.000000000 +0100
+diff -Nurp grub-0.97.orig/stage2/gpt.h grub-0.97/stage2/gpt.h
+--- grub-0.97.orig/stage2/gpt.h        1970-01-01 01:00:00.000000000 +0100
++++ grub-0.97/stage2/gpt.h     2011-09-12 11:48:42.000000000 +0200
 @@ -0,0 +1,68 @@
 +/*
 + *  GRUB  --  GRand Unified Bootloader
@@ -290,20 +295,20 @@
 +       ((((entry) * (size) + 1) & (SECTOR_SIZE - 1)) - 1)
 +
 +#endif /* _GPT_H */
-diff -Nurp grub-0.97.old/stage2/pc_slice.h grub-0.97/stage2/pc_slice.h
---- grub-0.97.old/stage2/pc_slice.h    2008-11-05 17:39:17.000000000 +0100
-+++ grub-0.97/stage2/pc_slice.h        2008-11-05 17:40:36.000000000 +0100
+diff -Nurp grub-0.97.orig/stage2/pc_slice.h grub-0.97/stage2/pc_slice.h
+--- grub-0.97.orig/stage2/pc_slice.h   2011-09-12 11:48:25.000000000 +0200
++++ grub-0.97/stage2/pc_slice.h        2011-09-12 11:48:42.000000000 +0200
 @@ -117,6 +117,7 @@
- #define PC_SLICE_TYPE_ZEN             0xbc
  #define PC_SLICE_TYPE_ZEN_DISABLED    0xbd
+ #define PC_SLICE_TYPE_OEM_RECOVERY    0x27
  #define PC_SLICE_TYPE_DELL_UTIL               0xde
 +#define PC_SLICE_TYPE_GPT              0xee
  #define PC_SLICE_TYPE_LINUX_RAID      0xfd
  
  
-diff -Nurp grub-0.97.old/stage2/shared.h grub-0.97/stage2/shared.h
---- grub-0.97.old/stage2/shared.h      2008-11-05 17:39:17.000000000 +0100
-+++ grub-0.97/stage2/shared.h  2008-11-05 17:40:36.000000000 +0100
+diff -Nurp grub-0.97.orig/stage2/shared.h grub-0.97/stage2/shared.h
+--- grub-0.97.orig/stage2/shared.h     2011-09-12 11:48:25.000000000 +0200
++++ grub-0.97/stage2/shared.h  2011-09-12 11:48:42.000000000 +0200
 @@ -984,7 +984,9 @@ int next_partition (unsigned long drive,
                    unsigned long *partition, int *type,
                    unsigned long *start, unsigned long *len,

++++++ unsigned-blocks-n-offsets ++++++
--- /var/tmp/diff_new_pack.jsafh8/_old  2013-10-17 14:10:46.000000000 +0200
+++ /var/tmp/diff_new_pack.jsafh8/_new  2013-10-17 14:10:46.000000000 +0200
@@ -1,7 +1,91 @@
-Index: grub-0.97/stage2/disk_io.c
-===================================================================
---- grub-0.97.orig/stage2/disk_io.c
-+++ grub-0.97/stage2/disk_io.c
+diff -urp grub-0.97.orig/grub/asmstub.c grub-0.97/grub/asmstub.c
+--- grub-0.97.orig/grub/asmstub.c      2010-05-10 12:48:00.000000000 +0200
++++ grub-0.97/grub/asmstub.c   2010-05-10 12:54:54.000000000 +0200
+@@ -970,7 +970,7 @@ hex_dump (void *buf, size_t size)
+ 
+ int
+ biosdisk (int subfunc, int drive, struct geometry *geometry,
+-        int sector, int nsec, int segment)
++        unsigned sector, unsigned nsec, int segment)
+ {
+   char *buf;
+   int fd = geometry->flags;
+diff -urp grub-0.97.orig/stage2/bios.c grub-0.97/stage2/bios.c
+--- grub-0.97.orig/stage2/bios.c       2004-03-27 17:34:04.000000000 +0100
++++ grub-0.97/stage2/bios.c    2010-05-10 12:54:54.000000000 +0200
+@@ -47,7 +47,7 @@ extern int get_diskinfo_floppy (int driv
+    return the error number. Otherwise, return 0.  */
+ int
+ biosdisk (int read, int drive, struct geometry *geometry,
+-        int sector, int nsec, int segment)
++        unsigned sector, unsigned nsec, int segment)
+ {
+   int err;
+   
+diff -urp grub-0.97.orig/stage2/builtins.c grub-0.97/stage2/builtins.c
+--- grub-0.97.orig/stage2/builtins.c   2010-05-10 12:48:01.000000000 +0200
++++ grub-0.97/stage2/builtins.c        2010-05-10 12:54:54.000000000 +0200
+@@ -127,7 +127,7 @@ check_password (char *entered, char* exp
+ 
+ /* Print which sector is read when loading a file.  */
+ static void
+-disk_read_print_func (int sector, int offset, int length)
++disk_read_print_func (unsigned sector, unsigned offset, int length)
+ {
+   grub_printf ("[%d,%d,%d]", sector, offset, length);
+ }
+@@ -143,11 +143,11 @@ blocklist_func (char *arg, int flags)
+   int num_entries = 0;
+   int last_length = 0;
+ 
+-  auto void disk_read_blocklist_func (int sector, int offset, int length);
++  auto void disk_read_blocklist_func (unsigned sector, unsigned offset, int 
length);
+   
+   /* Collect contiguous blocks into one entry as many as possible,
+      and print the blocklist notation on the screen.  */
+-  auto void disk_read_blocklist_func (int sector, int offset, int length)
++  auto void disk_read_blocklist_func (unsigned sector, unsigned offset, int 
length)
+     {
+       if (num_sectors > 0)
+       {
+@@ -1821,11 +1821,11 @@ install_func (char *arg, int flags)
+   char *stage2_os_file = 0;
+ #endif /* GRUB_UTIL */
+   
+-  auto void disk_read_savesect_func (int sector, int offset, int length);
+-  auto void disk_read_blocklist_func (int sector, int offset, int length);
++  auto void disk_read_savesect_func (unsigned sector, unsigned offset, int 
length);
++  auto void disk_read_blocklist_func (unsigned sector, unsigned offset, int 
length);
+   
+   /* Save the first sector of Stage2 in STAGE2_SECT.  */
+-  auto void disk_read_savesect_func (int sector, int offset, int length)
++  auto void disk_read_savesect_func (unsigned sector, unsigned offset, int 
length)
+     {
+       if (debug)
+       printf ("[%d]", sector);
+@@ -1841,7 +1841,7 @@ install_func (char *arg, int flags)
+ 
+   /* Write SECTOR to INSTALLLIST, and update INSTALLADDR and
+      INSTALLSECT.  */
+-  auto void disk_read_blocklist_func (int sector, int offset, int length)
++  auto void disk_read_blocklist_func (unsigned sector, unsigned offset, int 
length)
+     {
+       if (debug)
+       printf("[%d]", sector);
+@@ -3307,8 +3307,8 @@ savedefault_func (char *arg, int flags)
+   int saved_lengths[2];
+ 
+   /* Save sector information about at most two sectors.  */
+-  auto void disk_read_savesect_func (int sector, int offset, int length);
+-  void disk_read_savesect_func (int sector, int offset, int length)
++  auto void disk_read_savesect_func (unsigned sector, unsigned offset, int 
length);
++  void disk_read_savesect_func (unsigned sector, unsigned offset, int length)
+     {
+       if (sector_count < 2)
+       {
+diff -urp grub-0.97.orig/stage2/disk_io.c grub-0.97/stage2/disk_io.c
+--- grub-0.97.orig/stage2/disk_io.c    2010-05-10 12:49:49.000000000 +0200
++++ grub-0.97/stage2/disk_io.c 2010-05-10 12:54:54.000000000 +0200
 @@ -125,8 +125,8 @@ int buf_track;
  struct geometry buf_geom;
  
@@ -22,6 +106,15 @@
  {
    int slen, sectors_per_vtrack;
    int sector_size_bits = grub_log2 (buf_geom.sector_size);
+@@ -148,7 +148,7 @@ rawread (int drive, int sector, int byte
+ 
+   while (byte_len > 0 && !errnum)
+     {
+-      int soff, num_sect, track, size = byte_len;
++      unsigned soff, num_sect, track, size = byte_len;
+       char *bufaddr;
+ 
+       /*
 @@ -168,7 +168,7 @@ rawread (int drive, int sector, int byte
        }
  
@@ -31,7 +124,17 @@
        {
          errnum = ERR_GEOM;
          return 0;
-@@ -292,13 +292,12 @@ rawread (int drive, int sector, int byte
+@@ -192,7 +192,8 @@ rawread (int drive, int sector, int byte
+ 
+       if (track != buf_track)
+       {
+-        int bios_err, read_start = track, read_len = sectors_per_vtrack;
++        int bios_err;
++        unsigned read_start = track, read_len = sectors_per_vtrack;
+ 
+         /*
+          *  If there's more than one read in this entire loop, then
+@@ -292,13 +293,12 @@ rawread (int drive, int sector, int byte
  
  
  int
@@ -47,7 +150,7 @@
          >= part_length))
      {
        errnum = ERR_OUTSIDE_PART;
-@@ -1734,14 +1733,14 @@ grub_open (char *filename)
+@@ -1734,14 +1734,14 @@ grub_open (char *filename)
  
  
  int
@@ -65,7 +168,7 @@
      len = filemax - filepos;
  
    /* if target file position is past the end of
-@@ -1831,9 +1830,9 @@ grub_read (char *buf, int len)
+@@ -1831,9 +1831,9 @@ grub_read (char *buf, int len)
  #ifndef STAGE1_5
  /* Reposition a file offset.  */
  int
@@ -77,10 +180,9 @@
      return -1;
  
    filepos = offset;
-Index: grub-0.97/stage2/filesys.h
-===================================================================
---- grub-0.97.orig/stage2/filesys.h
-+++ grub-0.97/stage2/filesys.h
+diff -urp grub-0.97.orig/stage2/filesys.h grub-0.97/stage2/filesys.h
+--- grub-0.97.orig/stage2/filesys.h    2010-05-10 12:49:49.000000000 +0200
++++ grub-0.97/stage2/filesys.h 2010-05-10 12:50:07.000000000 +0200
 @@ -52,7 +52,7 @@ int fat_dir (char *dirname);
  #ifdef FSYS_EXT2FS
  #define FSYS_EXT2FS_NUM 1
@@ -99,10 +201,9 @@
  int reiserfs_dir (char *dirname);
  int reiserfs_embed (int *start_sector, int needed_sectors);
  #if defined(__linux__) && defined (GRUB_UTIL)
-Index: grub-0.97/stage2/fsys_ext2fs.c
-===================================================================
---- grub-0.97.orig/stage2/fsys_ext2fs.c
-+++ grub-0.97/stage2/fsys_ext2fs.c
+diff -urp grub-0.97.orig/stage2/fsys_ext2fs.c grub-0.97/stage2/fsys_ext2fs.c
+--- grub-0.97.orig/stage2/fsys_ext2fs.c        2010-05-10 12:49:49.000000000 
+0200
++++ grub-0.97/stage2/fsys_ext2fs.c     2010-05-10 12:50:07.000000000 +0200
 @@ -22,7 +22,7 @@
  #include "shared.h"
  #include "filesys.h"
@@ -323,10 +424,9 @@
          {
              *rest = ch;
              return 0;
-Index: grub-0.97/stage2/fsys_reiserfs.c
-===================================================================
---- grub-0.97.orig/stage2/fsys_reiserfs.c
-+++ grub-0.97/stage2/fsys_reiserfs.c
+diff -urp grub-0.97.orig/stage2/fsys_reiserfs.c 
grub-0.97/stage2/fsys_reiserfs.c
+--- grub-0.97.orig/stage2/fsys_reiserfs.c      2010-05-10 12:49:49.000000000 
+0200
++++ grub-0.97/stage2/fsys_reiserfs.c   2010-05-10 12:50:07.000000000 +0200
 @@ -382,7 +382,7 @@ is_power_of_two (unsigned long word)
  }
  
@@ -445,10 +545,9 @@
          if (++link_count > MAX_LINK_COUNT)
            {
              errnum = ERR_SYMLINK_LOOP;
-Index: grub-0.97/stage2/fsys_vstafs.c
-===================================================================
---- grub-0.97.orig/stage2/fsys_vstafs.c
-+++ grub-0.97/stage2/fsys_vstafs.c
+diff -urp grub-0.97.orig/stage2/fsys_vstafs.c grub-0.97/stage2/fsys_vstafs.c
+--- grub-0.97.orig/stage2/fsys_vstafs.c        2010-05-10 12:49:49.000000000 
+0200
++++ grub-0.97/stage2/fsys_vstafs.c     2010-05-10 12:50:07.000000000 +0200
 @@ -39,7 +39,7 @@ static struct dir_entry *vstafs_nextdir
   * In f_sector we store the sector number in which the information about
   * the found file is.
@@ -458,10 +557,9 @@
  static int f_sector;
  
  int 
-Index: grub-0.97/stage2/shared.h
-===================================================================
---- grub-0.97.orig/stage2/shared.h
-+++ grub-0.97/stage2/shared.h
+diff -urp grub-0.97.orig/stage2/shared.h grub-0.97/stage2/shared.h
+--- grub-0.97.orig/stage2/shared.h     2010-05-10 12:49:49.000000000 +0200
++++ grub-0.97/stage2/shared.h  2010-05-10 12:54:54.000000000 +0200
 @@ -713,8 +713,8 @@ extern int buf_track;
  extern struct geometry buf_geom;
  
@@ -473,6 +571,15 @@
  
  /*
   *  Common BIOS/boot data.
+@@ -857,7 +857,7 @@ int checkkey (void);
+ /* Low-level disk I/O */
+ int get_diskinfo (int drive, struct geometry *geometry);
+ int biosdisk (int subfunc, int drive, struct geometry *geometry,
+-            int sector, int nsec, int segment);
++            unsigned sector, unsigned nsec, int segment);
+ void stop_floppy (void);
+ 
+ /* Command-line interface functions. */
 @@ -970,8 +970,8 @@ int gunzip_test_header (void);
  int gunzip_read (char *buf, int len);
  #endif /* NO_DECOMPRESSION */

-- 
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to