From c17b8d9f76325d5731333acc97ebec8dead044e9 Mon Sep 17 00:00:00 2001 From: Colin Walters Date: Mar 03 2017 15:34:53 +0000 Subject: Add patch for ppc64le grub2 --- diff --git a/0001-grub2-Use-linux16-only-on-x86-x86_64.patch b/0001-grub2-Use-linux16-only-on-x86-x86_64.patch new file mode 100644 index 0000000..66a94f9 --- /dev/null +++ b/0001-grub2-Use-linux16-only-on-x86-x86_64.patch @@ -0,0 +1,69 @@ +From 13ea6852c33caecaf64b43e0018536e5aa29eaca Mon Sep 17 00:00:00 2001 +From: Colin Walters +Date: Thu, 2 Mar 2017 21:30:10 -0500 +Subject: [PATCH] grub2: Use "linux16" only on x86/x86_64 + +Got a report that a Fedora Atomic Host built for ppc64le didn't work with the +`linux16`, it needed `linux`. See the comments for more links. +--- + src/libostree/ostree-bootloader-grub2.c | 30 ++++++++++++++++++++++++++++-- + 1 file changed, 28 insertions(+), 2 deletions(-) + +diff --git a/src/libostree/ostree-bootloader-grub2.c b/src/libostree/ostree-bootloader-grub2.c +index 0fbb098..e70517f 100644 +--- a/src/libostree/ostree-bootloader-grub2.c ++++ b/src/libostree/ostree-bootloader-grub2.c +@@ -29,6 +29,20 @@ + + #include + ++/* I only did some cursory research here, but it appears ++ * that we only want to use "linux16" for x86 platforms. ++ * At least, I got a report that "linux16" is definitely wrong ++ * for ppc64. See ++ * http://pkgs.fedoraproject.org/cgit/rpms/grub2.git/tree/0036-Use-linux16-when-appropriate-880840.patch?h=f25 ++ * https://bugzilla.redhat.com/show_bug.cgi?id=1108296 ++ * among others. ++ */ ++#if defined(__i386__) || defined(__x86_64__) ++#define GRUB2_USES_16 1 ++#else ++#define GRUB2_USES_16 0 ++#endif ++ + struct _OstreeBootloaderGrub2 + { + GObject parent_instance; +@@ -203,7 +217,13 @@ _ostree_bootloader_grub2_generate_config (OstreeSysroot *sysroot + if (is_efi) + g_string_append (output, "linuxefi "); + else +- g_string_append (output, "linux16 "); ++ { ++#if GRUB2_USES_16 ++ g_string_append (output, "linux16 "); ++#else ++ g_string_append (output, "linux "); ++#endif ++ } + g_string_append (output, kernel); + + options = ostree_bootconfig_parser_get (config, "options"); +@@ -220,7 +240,13 @@ _ostree_bootloader_grub2_generate_config (OstreeSysroot *sysroot + if (is_efi) + g_string_append (output, "initrdefi "); + else +- g_string_append (output, "initrd16 "); ++ { ++#if GRUB2_USES_16 ++ g_string_append (output, "initrd16 "); ++#else ++ g_string_append (output, "initrd "); ++#endif ++ } + g_string_append (output, initrd); + g_string_append_c (output, '\n'); + } +-- +2.9.3 + diff --git a/ostree.spec b/ostree.spec index 0186cb6..54d0bf9 100644 --- a/ostree.spec +++ b/ostree.spec @@ -1,7 +1,7 @@ Summary: Tool for managing bootable, immutable filesystem trees Name: ostree Version: 2017.2 -Release: 3%{?dist} +Release: 4%{?dist} #VCS: git:git://git.gnome.org/ostree Source0: https://github.com/ostreedev/%{name}/releases/download/v%{version}/libostree-%{version}.tar.xz Source1: 91-ostree.preset @@ -9,6 +9,7 @@ License: LGPLv2+ URL: https://ostree.readthedocs.io/en/latest/ Patch0: libmount-unref.patch +Patch1: 0001-grub2-Use-linux16-only-on-x86-x86_64.patch BuildRequires: git # We always run autogen.sh @@ -139,6 +140,9 @@ install -D -m 0644 %{SOURCE1} %{buildroot}%{_prefix}/lib/systemd/system-preset/9 %endif %changelog +* Fri Mar 03 2017 Colin Walters - 2017.2-4 +- Add patch for ppc64le grub2 + * Thu Feb 23 2017 Colin Walters - 2017.2-3 - Backport libmount unref patch