[grub/f17] Workaround Apple CD oddities (mjg59)

Peter Jones pjones at fedoraproject.org
Fri Apr 13 21:03:10 UTC 2012


commit eb1920b18f38a4413df5d62e0e14575bc5b47fa0
Author: Peter Jones <pjones at redhat.com>
Date:   Fri Apr 13 17:03:03 2012 -0400

    Workaround Apple CD oddities (mjg59)

 grub-fedora-17.patch |   40 ++++++++++++++++++++++++++++++----------
 grub.spec            |    5 ++++-
 2 files changed, 34 insertions(+), 11 deletions(-)
---
diff --git a/grub-fedora-17.patch b/grub-fedora-17.patch
index 00c55a7..a6e17cf 100644
--- a/grub-fedora-17.patch
+++ b/grub-fedora-17.patch
@@ -1,11 +1,11 @@
 From: Peter Jones <pjones at redhat.com>" 
-Date: Tue Mar 27 14:11:00 EDT 2012
+Date: Fri Apr 13 17:02:02 EDT 2012
 Subject: [PATCH] Changes from grub-0.97 to fedora-17
 
 This patch is a bundle of the changes between grub-0.97 and fedora-17.
 It can be reginerated from the git repository at:
 
-http://git.kernel.org/?p=boot/grub-fedora/grub-fedora.git;a=summary
+git://github.com/vathpela/grub-fedora.git
 
 Using the command:
 
@@ -37,7 +37,7 @@ git diff grub-0.97 fedora-17
  efi/efichainloader.c           |  265 +
  efi/eficon.c                   |  306 +
  efi/eficore.c                  |  241 +
- efi/efidisk.c                  |  783 ++++
+ efi/efidisk.c                  |  801 ++++
  efi/efidp.c                    |  999 +++++
  efi/efigraph.c                 | 1501 ++++++++
  efi/efimain.c                  |  129 
@@ -96,7 +96,7 @@ git diff grub-0.97 fedora-17
  lib/.gitignore                 |    2 
  lib/Makefile.in                |  416 --
  lib/device.c                   |  360 +
- makediff                       |   19 
+ makediff                       |   21 
  netboot/.gitignore             |    2 
  netboot/Makefile.in            | 1091 -----
  netboot/etherboot.h            |   34 
@@ -153,7 +153,7 @@ git diff grub-0.97 fedora-17
  util/Makefile.in               |  478 --
  util/grub-crypt.in             |   80 
  util/grub-install.in           |  334 +
- 142 files changed, 26259 insertions(+), 17652 deletions(-)
+ 142 files changed, 26279 insertions(+), 17652 deletions(-)
 
 diff --git a/.gitignore b/.gitignore
 new file mode 100644
@@ -12537,10 +12537,10 @@ index 0000000..8abea7d
 +
 diff --git a/efi/efidisk.c b/efi/efidisk.c
 new file mode 100644
-index 0000000..3f69798
+index 0000000..6a505f3
 --- /dev/null
 +++ b/efi/efidisk.c
-@@ -0,0 +1,783 @@
+@@ -0,0 +1,801 @@
 +/*
 + *  GRUB  --  GRand Unified Bootloader
 + *  Copyright (C) 2006  Free Software Foundation, Inc.
@@ -13065,6 +13065,7 @@ index 0000000..3f69798
 +    {
 +      grub_efi_uint8_t type = GRUB_EFI_DEVICE_PATH_TYPE (dp1);
 +      grub_efi_uint8_t subtype = GRUB_EFI_DEVICE_PATH_SUBTYPE(dp1);
++      grub_efi_uint16_t len = GRUB_EFI_DEVICE_PATH_LENGTH (dp);
 +
 +      if (type == GRUB_EFI_MEDIA_DEVICE_PATH_TYPE &&
 +	      subtype == GRUB_EFI_CDROM_DEVICE_PATH_SUBTYPE)
@@ -13075,6 +13076,23 @@ index 0000000..3f69798
 +	  dp1->length[1] = 0;
 +	}
 +
++      if (type == GRUB_EFI_MEDIA_DEVICE_PATH_TYPE &&
++	  subtype == GRUB_EFI_HARD_DRIVE_DEVICE_PATH_SUBTYPE)
++	{
++	  grub_efi_hard_drive_device_path_t temp_hd;
++	  grub_memcpy (&temp_hd, dp1, len);
++	  if (temp_hd.signature_type == 0 && temp_hd.mbr_type >= 0x10) {
++	    /*
++	     * Apple Parttion Map CDs appear as hard drives with non-spec
++	     * partition type fields. Fix them up.
++	     */
++	    dp1->type = GRUB_EFI_END_DEVICE_PATH_TYPE;
++	    dp1->subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE;
++	    dp1->length[0] = 4;
++	    dp1->length[1] = 0;
++	  }
++	}
++
 +      if (GRUB_EFI_END_ENTIRE_DEVICE_PATH (dp1))
 +	break;
 +
@@ -33120,11 +33138,12 @@ index d0663b3..50540bc 100644
      {
 diff --git a/makediff b/makediff
 new file mode 100755
-index 0000000..f9bce4c
+index 0000000..a8f5f04
 --- /dev/null
 +++ b/makediff
-@@ -0,0 +1,19 @@
+@@ -0,0 +1,21 @@
 +#!/bin/bash
++(
 +cat << EOF
 +From: Peter Jones <pjones at redhat.com>" 
 +Date: $(date)
@@ -33133,7 +33152,7 @@ index 0000000..f9bce4c
 +This patch is a bundle of the changes between grub-0.97 and fedora-17.
 +It can be reginerated from the git repository at:
 +
-+http://git.kernel.org/?p=boot/grub-fedora/grub-fedora.git;a=summary
++git://github.com/vathpela/grub-fedora.git
 +
 +Using the command:
 +
@@ -33143,6 +33162,7 @@ index 0000000..f9bce4c
 +git diff grub-0.97 fedora-17 | diffstat -p1
 +echo
 +git diff grub-0.97 fedora-17
++) | cat
 diff --git a/netboot/.gitignore b/netboot/.gitignore
 new file mode 100644
 index 0000000..5d89f6d
diff --git a/grub.spec b/grub.spec
index fae575d..9347de7 100644
--- a/grub.spec
+++ b/grub.spec
@@ -1,6 +1,6 @@
 Name: grub
 Version: 0.97
-Release: 88%{?dist}
+Release: 89%{?dist}
 Epoch: 1
 Summary: Grand Unified Boot Loader.
 Group: System Environment/Base
@@ -120,6 +120,9 @@ fi
 /sbin/grub-crypt
 
 %changelog
+* Fri Apr 13 2012 Peter Jones <pjones at redhat.com> - 0.97-89
+- Workaround Apple CD oddities (mjg59)
+
 * Tue Mar 27 2012 Peter Jones <pjones at redhat.com> - 0.97-88
 - Add directory listing to uefifs
 - Add -fno-reorder-functions for EFI builds


More information about the scm-commits mailing list