From 0e6e69f9b5fb67921c736f0ca76df9fc8abb54ec Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 26 Apr 2012 11:09:57 -0400 Subject: [PATCH] Various fixes from Mads Kiilerich --- .gitignore | 1 + grub-2.00-beta4-wronly.patch | 29 ++++++ ...-support-for-PowerMac-HFS-partitions.patch | 94 +++++++++++++++++++ grub2.spec | 24 +++-- sources | 2 + 5 files changed, 144 insertions(+), 6 deletions(-) create mode 100644 grub-2.00-beta4-wronly.patch create mode 100644 grub-2.00~beta4-add-support-for-PowerMac-HFS-partitions.patch diff --git a/.gitignore b/.gitignore index d479897..5055a3b 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ grub-*.tar.?z +/unifont-5.1.20080820.pcf.gz diff --git a/grub-2.00-beta4-wronly.patch b/grub-2.00-beta4-wronly.patch new file mode 100644 index 0000000..90b9c59 --- /dev/null +++ b/grub-2.00-beta4-wronly.patch @@ -0,0 +1,29 @@ +From 8e4aea82c6aba6b8b5ca68d74abafa3fe9486c36 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Thu, 19 Apr 2012 14:17:38 -0400 +Subject: [PATCH] Open device O_WRONLY in grub_util_biosdisk_write. + +revision 4225 introduced an error wherein the device we intend +to write to from e.g. grub2-bios-setup is opened read-only. The +immediate following write(2) call then fails with -EBADF. + +--- + grub-core/kern/emu/hostdisk.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/grub-core/kern/emu/hostdisk.c b/grub-core/kern/emu/hostdisk.c +index ea7eb3d..19748df 100644 +--- a/grub-core/kern/emu/hostdisk.c ++++ b/grub-core/kern/emu/hostdisk.c +@@ -1081,7 +1081,7 @@ grub_util_biosdisk_write (grub_disk_t disk, grub_disk_addr_t sector, + { + int fd; + grub_disk_addr_t max = ~0ULL; +- fd = open_device (disk, sector, O_RDONLY, &max); ++ fd = open_device (disk, sector, O_WRONLY, &max); + if (fd < 0) + return grub_errno; + +-- +1.7.10 + diff --git a/grub-2.00~beta4-add-support-for-PowerMac-HFS-partitions.patch b/grub-2.00~beta4-add-support-for-PowerMac-HFS-partitions.patch new file mode 100644 index 0000000..9ad7dde --- /dev/null +++ b/grub-2.00~beta4-add-support-for-PowerMac-HFS-partitions.patch @@ -0,0 +1,94 @@ +From f2dc76d4d82ac9bbe5ccb4e8ccc49c14e8574c20 Mon Sep 17 00:00:00 2001 +From: Fedora Ninjas +Date: Wed, 25 Apr 2012 13:09:15 +0200 +Subject: [PATCH 2/2] add support for PowerMac HFS partitions + +Signed-off-by: Fedora PPC secondary arch maintainer +--- + util/grub-install.in | 67 ++++++++++++++++++++++++++++++++------------------ + 1 files changed, 43 insertions(+), 24 deletions(-) + +diff --git a/util/grub-install.in b/util/grub-install.in +index 26be9d9..f1f9bae 100644 +--- a/util/grub-install.in ++++ b/util/grub-install.in +@@ -757,33 +757,52 @@ elif [ "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" = "i386-ieee1275" ] + + # If a install device is defined, copy the core.elf to PReP partition. + else +- if [ "$("${grub_probe}" -m "${device_map}" -d "${install_device}" -t msdos_parttype)" != "41" ]; then +- gettext "The chosen partition is not a PReP partition." 1>&2 +- echo 1>&2 +- exit 1 +- fi +- ++ if [ "$("${grub_probe}" -m "${device_map}" -d "${install_device}" -t msdos_parttype)" = "41" ]; then + if [ "$(file -s "${install_device}" -b | awk '{ print $1 }')" != ELF ] && ( cmp -s -n $(blockdev --getsize64 ${install_device}) /dev/zero "${install_device}" &>/dev/null ); then +- # Change boot device to the harddisk root +- boot_device="$ofpath" +- dd if="${grubdir}/${grub_modinfo_target_cpu}-$grub_modinfo_platform/core.${imgext}" of="${install_device}" status=noxfer || { +- gettext "Failed to copy Grub to the PReP partition." 1>&2 +- echo 1>&2 +- exit 1 +- } ++ # Change boot device to the harddisk root ++ boot_device="$ofpath" ++ dd if="${grubdir}/${grub_modinfo_target_cpu}-$grub_modinfo_platform/core.${imgext}" of="${install_device}" status=noxfer || { ++ gettext "Failed to copy Grub to the PReP partition." 1>&2 ++ echo 1>&2 ++ exit 1 ++ } + else +- gettext "The PReP partition is not empty. If you are sure you want to use it, run dd to clear it:" 1>&2 +- echo 1>&2 +- echo " dd if=/dev/zero of=${install_device}" +- exit 1 ++ gettext "The PReP partition is not empty. If you are sure you want to use it, run dd to clear it:" 1>&2 ++ echo 1>&2 ++ echo " dd if=/dev/zero of=${install_device}" ++ exit 1 + fi +- dev="`echo "${install_device}" | sed -e 's/\/dev\///' -e 's/[0-9]\+//'`" +- boot_device="`$ofpathname "$dev"`" || { +- # TRANSLATORS: "device tree path" is the name of the device +- # for IEEE1275 +- gettext_printf "Couldn't find IEEE1275 device tree path for %s.\nYou will have to set \`boot-device' variable manually.\n" "$dev" 1>&2 +- exit 1 +- } ++ dev="`echo "${install_device}" | sed -e 's/\/dev\///' -e 's/[0-9]\+//'`" ++ boot_device="`$ofpathname "$dev"`" || { ++ # TRANSLATORS: "device tree path" is the name of the device ++ # for IEEE1275 ++ gettext_printf "Couldn't find IEEE1275 device tree path for %s.\nYou will have to set \`boot-device' variable manually.\n" "$dev" 1>&2 ++ exit 1 ++ } ++ else ++ hmount ${install_device} >/dev/null 2>&1 ++ if [ $? -eq 0 ]; then ++ humount "${install_device}" ++ # Change boot device to the harddisk root ++ boot_device="$ofpath" ++ hmount "${install_device}" ++ hcopy "${grubdir}/${grub_modinfo_target_cpu}-$grub_modinfo_platform/core.${imgext}" ":" || { ++ gettext "Failed to copy Grub to the HFS partition." 1>&2 ++ gettext "Maybe the HFS partition is not empty. If you are sure you want to use it, run hformat to clear it:" 1>&2 ++ echo 1>&2 ++ echo " hformat ${install_device}" ++ exit 1 ++ } ++ humount "${install_device}" ++ # We're on PowerMac, it's either /dev/sdaX or /dev/hdaX: ++ dev="`echo "${install_device}" | sed -e 's/\/dev\/.da//'`" ++ boot_device="hd:${dev},core.${imgext}" ++ else ++ gettext "The chosen partition is neither a PReP nor a HFS partition." 1>&2 ++ echo 1>&2 ++ exit 1 ++ fi ++ fi + fi + + "$nvsetenv" boot-device "$boot_device" || { +-- +1.7.6.5 + diff --git a/grub2.spec b/grub2.spec index 26a4455..6a60ae6 100644 --- a/grub2.spec +++ b/grub2.spec @@ -16,13 +16,13 @@ %endif -%global tarversion 2.00~beta2 +%global tarversion 2.00~beta4 %undefine _missing_build_ids_terminate_build Name: grub2 Epoch: 1 Version: 2.0 -Release: 0.22%{?dist} +Release: 0.24%{?dist} Summary: Bootloader with support for Linux, Multiboot and more Group: System Environment/Base @@ -32,13 +32,15 @@ Obsoletes: grub < 1:0.98 Source0: ftp://alpha.gnu.org/gnu/grub/grub-%{tarversion}.tar.xz Source2: grub.default Source3: README.Fedora +Source4: http://unifoundry.com/unifont-5.1.20080820.pcf.gz Patch0: grub-1.99-handle-fwrite-return.patch Patch1: grub-1.99-grub_test_assert_printf.patch Patch2: grub-1.99-just-say-linux.patch Patch3: grub2-handle-initramfs-on-xen.patch -Patch9: grub-1.99-gcc-4.7.0.patch -Patch10: grub-1.99-Fix-tests-of-zeroed-partition.patch -Patch11: grub-1.99-ppc-terminfo.patch +Patch4: grub-1.99-Fix-tests-of-zeroed-partition.patch +Patch5: grub-1.99-ppc-terminfo.patch +Patch6: grub-2.00-beta4-wronly.patch +Patch7: grub-2.00~beta4-add-support-for-PowerMac-HFS-partitions.patch BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) @@ -86,6 +88,8 @@ echo foo echo bar cd grub-%{tarversion} cp %{SOURCE3} . +# place unifont in the '.' from which configure is run +cp %{SOURCE4} unifont.pcf.gz git init git config user.email "pjones@fedoraproject.org" git config user.name "Fedora Ninjas" @@ -98,6 +102,8 @@ mv grub-%{tarversion} grub-efi-%{tarversion} %setup -D -q -T -a 0 -n grub-%{tarversion} cd grub-%{tarversion} cp %{SOURCE3} . +# place unifont in the '.' from which configure is run +cp %{SOURCE4} unifont.pcf.gz git init git config user.email "pjones@fedoraproject.org" git config user.name "Fedora Ninjas" @@ -177,7 +183,6 @@ rm -fr $RPM_BUILD_ROOT cd grub-efi-%{tarversion} make DESTDIR=$RPM_BUILD_ROOT install mv $RPM_BUILD_ROOT/etc/bash_completion.d/grub $RPM_BUILD_ROOT/etc/bash_completion.d/grub-efi -sed s,grub/grub-mkconfig_lib,grub-efi/grub-mkconfig_lib, -i $RPM_BUILD_ROOT%{_sbindir}/grub2-efi-mkconfig # Ghost config file install -m 755 -d $RPM_BUILD_ROOT/boot/efi/EFI/redhat/ @@ -376,6 +381,13 @@ fi %endif %changelog +* Thu Apr 26 2012 Peter Jones - 2.0-0.24 +- Various fixes from Mads Kiilerich + +* Thu Apr 19 2012 Peter Jones - 2.0-0.23 +- Update to 2.00~beta4 +- Make fonts work so we can do graphics reasonably + * Thu Mar 29 2012 David Aquilina - 2.0-0.22 - Fix ieee1275 platform define for ppc diff --git a/sources b/sources index 1146a89..ee6f23d 100644 --- a/sources +++ b/sources @@ -1 +1,3 @@ 4509839183c4593ab49a2c6044c03f18 grub-2.00~beta2.tar.xz +8c28087c5fcb3188f1244b390efffdbe unifont-5.1.20080820.pcf.gz +6902a2b408038b8d3263a86536ac4652 grub-2.00~beta4.tar.xz