grub 0.97-47lenny2

Robert Millan rmh at aybabtu.com
Fri Jan 16 21:56:46 UTC 2009


Hi,

Please consider unblocking grub 0.97-47lenny2.  Debdiff is attached, but
(aside from the changelog entry) is barely readable.  I'm including the
new xfs_freeze.diff separately.

-- 
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 grub-0.97/debian/changelog grub-0.97/debian/changelog
--- grub-0.97/debian/changelog
+++ grub-0.97/debian/changelog
@@ -1,3 +1,12 @@
+grub (0.97-47lenny2) unstable; urgency=high
+
+  * patches/xfs_freeze.diff: Replace with a new patch, which thaws XFS
+    inmediately after freezing it.  (Closes: #239111, #243835, #246111,
+    #309218, #425367) hopefully for good this time.  Thanks everyone
+    who sent their feedback, too many to list them here.
+
+ -- Robert Millan <rmh at aybabtu.com>  Fri, 16 Jan 2009 22:18:45 +0100
+
 grub (0.97-47lenny1) unstable; urgency=high
 
   * update-grub: Try to regenerate device.map when grub-probe fails (and
diff -u grub-0.97/debian/patches/xfs_freeze.diff grub-0.97/debian/patches/xfs_freeze.diff
--- grub-0.97/debian/patches/xfs_freeze.diff
+++ grub-0.97/debian/patches/xfs_freeze.diff
@@ -1,39 +1,21 @@
-
-Copyright: rmh
-Upstream: waiting to commit untill known to work
-
-diff -ur svn.old/util/grub-install.in svn/util/grub-install.in
---- svn.old/util/grub-install.in	2004-07-23 00:48:23.000000000 +0200
-+++ svn/util/grub-install.in	2004-07-26 23:25:59.000000000 +0200
-@@ -450,6 +450,20 @@
- # Create a safe temporary file.
+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`
  
-+# Sync to prevent GRUB from not finding stage files (notably, on XFS)
++# GRUB will try to verify that stage2 is accessible using its own
++# filesystem drivers.  Make sure it's committed to disk.
 +sync
 +
-+# XFS needs special magic
-+xfs_frozen=false
-+if which xfs_freeze > /dev/null ; then
-+  cat << EOF
-+Due to a bug in xfs_freeze, the following command might produce a segmentation
-+fault when ${grubdir} is not in an XFS filesystem. This error is harmless and
-+can be ignored.
-+EOF
-+  if xfs_freeze -f ${grubdir} ; then xfs_frozen=true ; fi
++# 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
 +
- # Now perform the installation.
- $grub_shell --batch $no_floppy --device-map=$device_map <<EOF >$log_file
- root $root_drive
-@@ -457,6 +471,10 @@
- quit
- EOF
- 
-+if ${xfs_frozen} ; then
-+  xfs_freeze -u ${grubdir}
-+fi
-+
- if grep "Error [0-9]*: " $log_file >/dev/null || test $debug = yes; then
-     cat $log_file 1>&2
-     exit 1
+ for file in ${grubdir}/stage1 ${grubdir}/stage2 ${grubdir}/*stage1_5; do
+     count=5
+     tmp=`echo $file | sed "s|^${grubdir}|${grub_prefix}|"`
-------------- next part --------------
A non-text attachment was scrubbed...
Name: xfs_freeze.diff
Type: text/x-diff
Size: 850 bytes
Desc: not available
Url : http://lists.alioth.debian.org/pipermail/pkg-grub-devel/attachments/20090116/9646b792/attachment.diff 


More information about the Pkg-grub-devel mailing list