# HG changeset patch # User Pascal Bellard # Date 1293206802 -3600 # Node ID 5af4ef0cffa1320a9e3e0ab59adce322d9a2da4c # Parent c753c126a746f13a12c8ba4e47b03eb049ba22ad grub4dos-linux: apply grub legacy patches diff -r c753c126a746 -r 5af4ef0cffa1 grub/stuff/dev_partition.diff --- a/grub/stuff/dev_partition.diff Fri Dec 24 16:38:35 2010 +0100 +++ b/grub/stuff/dev_partition.diff Fri Dec 24 17:06:42 2010 +0100 @@ -1,12 +1,13 @@ Partition can be ${dev}$num or ${dev}p$num --- grub-0.97/lib/device.c +++ grub-0.97/lib/device.c -@@ -867,6 +867,12 @@ +@@ -867,6 +867,13 @@ fd = open (dev, O_RDWR); if (fd < 0) { + strcpy (dev, map[drive]); + sprintf (dev + strlen(dev), "p%d", ((partition >> 16) & 0xFF) + 1); ++ fd = open (dev, O_RDWR); + } + + if (fd < 0) diff -r c753c126a746 -r 5af4ef0cffa1 grub4dos/receipt --- a/grub4dos/receipt Fri Dec 24 16:38:35 2010 +0100 +++ b/grub4dos/receipt Fri Dec 24 17:06:42 2010 +0100 @@ -14,6 +14,11 @@ compile_rules() { cd $src + for i in ../stuff/*.diff ; do + [ -f $(basename $i) ] && continue + patch -p1 < $i + touch $(basename $i) + done sh ./configure --prefix=/usr --infodir=/usr/share/info \ --without-curses --mandir=/usr/share/man \ $CONFIGURE_ARGS && diff -r c753c126a746 -r 5af4ef0cffa1 grub4dos/stuff/dev_partition.diff --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/grub4dos/stuff/dev_partition.diff Fri Dec 24 17:06:42 2010 +0100 @@ -0,0 +1,17 @@ +Partition can be ${dev}$num or ${dev}p$num +--- grub-0.97/lib/device.c ++++ grub-0.97/lib/device.c +@@ -867,6 +867,13 @@ + fd = open (dev, O_RDWR); + if (fd < 0) + { ++ strcpy (dev, map[drive]); ++ sprintf (dev + strlen(dev), "p%d", ((partition >> 16) & 0xFF) + 1); ++ fd = open (dev, O_RDWR); ++ } ++ ++ if (fd < 0) ++ { + errnum = ERR_NO_PART; + return 0; + } diff -r c753c126a746 -r 5af4ef0cffa1 grub4dos/stuff/xfs_freeze.diff --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/grub4dos/stuff/xfs_freeze.diff Fri Dec 24 17:06:42 2010 +0100 @@ -0,0 +1,21 @@ +diff -ur grub-0.97.old/util/grub-install.in grub-0.97/util/grub-install.in +--- grub-0.97.old/util/grub-install.in 2004-07-24 20:57:31.000000000 +0200 ++++ grub-0.97/util/grub-install.in 2009-01-16 22:15:46.000000000 +0100 +@@ -422,6 +422,17 @@ + test -n "$mkimg" && img_file=`$mkimg` + test -n "$mklog" && log_file=`$mklog` + ++# GRUB will try to verify that stage2 is accessible using its own ++# filesystem drivers. Make sure it's committed to disk. ++sync ++ ++# On XFS, sync() is not enough. ++if [ `grub-probe -t fs ${grubdir}` = "xfs" ] ; then ++ xfs_freeze -f ${grubdir} && xfs_freeze -u ${grubdir} ++ # We don't have set -e. If xfs_freeze failed, it's worth trying anyway, ++ # maybe we're lucky. ++fi ++ + for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do + count=5 + tmp=`echo $file | sed "s|^${grubdir}|${grub_prefix}|"`