diff --git a/0001-Make-grub-editenv-build-again.patch b/0001-Make-grub-editenv-build-again.patch new file mode 100644 index 0000000..5f54182 --- /dev/null +++ b/0001-Make-grub-editenv-build-again.patch @@ -0,0 +1,30 @@ +From b7a53a6db07b95a94a86a3ceec742a368328fbb1 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Fri, 4 Mar 2016 16:29:13 -0500 +Subject: [PATCH] Make grub-editenv build again. + +36212460d3565b18439a3a8130b28e6c97702c6a split how some of the mkimage +utility functions are defined, and they wind up being linked into +grub-editenv. Most utilities got fixed, but this one was missed. + +Signed-off-by: Peter Jones +--- + Makefile.util.def | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/Makefile.util.def b/Makefile.util.def +index 5598b03..a6d6f6f 100644 +--- a/Makefile.util.def ++++ b/Makefile.util.def +@@ -236,6 +236,8 @@ program = { + extra_dist = grub-core/osdep/unix/compress.c; + extra_dist = grub-core/osdep/basic/compress.c; + common = util/mkimage.c; ++ common = util/grub-mkimage32.c; ++ common = util/grub-mkimage64.c; + common = grub-core/osdep/config.c; + common = util/config.c; + common = util/resolve.c; +-- +2.5.0 + diff --git a/0074-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch b/0074-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch index c8a2be0..188c781 100644 --- a/0074-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch +++ b/0074-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch @@ -1,4 +1,4 @@ -From f1896dc881b276559079773ba666266979df2f74 Mon Sep 17 00:00:00 2001 +From 4e639612f9fc52febf43a070a845d4ab2d6c8c39 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 6 Oct 2015 16:09:25 -0400 Subject: [PATCH 74/85] Make any of the loaders that link in efi mode honor diff --git a/0075-Fix-security-issue-when-reading-username-and-passwor.patch b/0075-Fix-security-issue-when-reading-username-and-passwor.patch index ab2602e..c404544 100644 --- a/0075-Fix-security-issue-when-reading-username-and-passwor.patch +++ b/0075-Fix-security-issue-when-reading-username-and-passwor.patch @@ -1,4 +1,4 @@ -From a33e256429267872f469a2d3d1e36ac3721369b3 Mon Sep 17 00:00:00 2001 +From dda55cb76ec00d2c2adab83153a7e423f37a13cc Mon Sep 17 00:00:00 2001 From: Hector Marco-Gisbert Date: Fri, 13 Nov 2015 16:21:09 +0100 Subject: [PATCH 75/85] Fix security issue when reading username and password diff --git a/0076-Make-grub_fatal-also-backtrace.patch b/0076-Make-grub_fatal-also-backtrace.patch index 24c992e..779e3af 100644 --- a/0076-Make-grub_fatal-also-backtrace.patch +++ b/0076-Make-grub_fatal-also-backtrace.patch @@ -1,4 +1,4 @@ -From 9e51bd34baf8c705380abb4dc4b3847c11c93829 Mon Sep 17 00:00:00 2001 +From 306ae3bc0f75dd256369a7fd276e7514960ac1e5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 27 Jan 2016 09:22:42 -0500 Subject: [PATCH 76/85] Make grub_fatal() also backtrace. diff --git a/0077-Core-TPM-support.patch b/0077-Core-TPM-support.patch index 4020134..ea96ed1 100644 --- a/0077-Core-TPM-support.patch +++ b/0077-Core-TPM-support.patch @@ -1,4 +1,4 @@ -From 59e54f473afa4e4f67dde8f11a33cb8490496086 Mon Sep 17 00:00:00 2001 +From 2769effc6c6748bc052fba1ef056f947ec18ce13 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 14 Jul 2015 17:06:35 -0700 Subject: [PATCH 77/85] Core TPM support diff --git a/0078-Measure-kernel-initrd.patch b/0078-Measure-kernel-initrd.patch index b05e427..eb52887 100644 --- a/0078-Measure-kernel-initrd.patch +++ b/0078-Measure-kernel-initrd.patch @@ -1,4 +1,4 @@ -From 878a4bed6479ccfbde4ba8dc3c2c029f12fba708 Mon Sep 17 00:00:00 2001 +From bbe1cc401422d94afcafe038214ce913d9b6f62d Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Thu, 16 Jul 2015 15:22:34 -0700 Subject: [PATCH 78/85] Measure kernel + initrd diff --git a/0079-Add-BIOS-boot-measurement.patch b/0079-Add-BIOS-boot-measurement.patch index 4604476..3c3d3b2 100644 --- a/0079-Add-BIOS-boot-measurement.patch +++ b/0079-Add-BIOS-boot-measurement.patch @@ -1,4 +1,4 @@ -From b727ffaee53c9f3ee9ab1497441e378d77a5af6d Mon Sep 17 00:00:00 2001 +From e8bfb815e20c465300f35cdda330538f914db53f Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 15:48:51 -0700 Subject: [PATCH 79/85] Add BIOS boot measurement diff --git a/0080-Rework-linux-command.patch b/0080-Rework-linux-command.patch index d5ef0e8..1a9106d 100644 --- a/0080-Rework-linux-command.patch +++ b/0080-Rework-linux-command.patch @@ -1,4 +1,4 @@ -From 6ef376d234cf06ef3e92d77b03fa4060516a218c Mon Sep 17 00:00:00 2001 +From e0a789bd0dd376e62dbf42c42f878c42013a36f6 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 16:12:39 -0700 Subject: [PATCH 80/85] Rework linux command diff --git a/0081-Rework-linux16-command.patch b/0081-Rework-linux16-command.patch index fe5efa9..1d3cff5 100644 --- a/0081-Rework-linux16-command.patch +++ b/0081-Rework-linux16-command.patch @@ -1,4 +1,4 @@ -From 9992eed98ad0d7d66444185a9cd2c81df5b4e1b2 Mon Sep 17 00:00:00 2001 +From 63cb42a79b680f354397313345941ca614279be6 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 16:20:58 -0700 Subject: [PATCH 81/85] Rework linux16 command diff --git a/0082-Measure-kernel-and-initrd-on-BIOS-systems.patch b/0082-Measure-kernel-and-initrd-on-BIOS-systems.patch index 60ff8a8..ac04129 100644 --- a/0082-Measure-kernel-and-initrd-on-BIOS-systems.patch +++ b/0082-Measure-kernel-and-initrd-on-BIOS-systems.patch @@ -1,4 +1,4 @@ -From f4d862215e8d693018f419be33a0a3a7c3e79d29 Mon Sep 17 00:00:00 2001 +From abfa3755dd87461d33b884520747983ad938b4d4 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 16:28:29 -0700 Subject: [PATCH 82/85] Measure kernel and initrd on BIOS systems diff --git a/0083-Measure-the-kernel-commandline.patch b/0083-Measure-the-kernel-commandline.patch index d078457..05535c9 100644 --- a/0083-Measure-the-kernel-commandline.patch +++ b/0083-Measure-the-kernel-commandline.patch @@ -1,4 +1,4 @@ -From 6bcfc6f286d099a26cc0c7a00a6458d1d7993485 Mon Sep 17 00:00:00 2001 +From 97d4a9d6f5432130dde624c99e8402cb8b641394 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 16:32:29 -0700 Subject: [PATCH 83/85] Measure the kernel commandline diff --git a/0084-Measure-commands.patch b/0084-Measure-commands.patch index 6f8795b..2e05c46 100644 --- a/0084-Measure-commands.patch +++ b/0084-Measure-commands.patch @@ -1,4 +1,4 @@ -From 4f316cbb70563a26a8cb42ce5122c198cfd3636d Mon Sep 17 00:00:00 2001 +From 6bd3eaeac50254fdb0c6830fb4e1808a8ba465d6 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Mon, 10 Aug 2015 15:27:12 -0700 Subject: [PATCH 84/85] Measure commands diff --git a/0085-Measure-multiboot-images-and-modules.patch b/0085-Measure-multiboot-images-and-modules.patch index 80350d9..02250b9 100644 --- a/0085-Measure-multiboot-images-and-modules.patch +++ b/0085-Measure-multiboot-images-and-modules.patch @@ -1,4 +1,4 @@ -From 85e100453d04e56088e4b9782d2f06dc0122587f Mon Sep 17 00:00:00 2001 +From c2b1a3b2cb9ec3d9f8f0b45d6a7c8564d4d64742 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 1 Sep 2015 16:02:55 -0700 Subject: [PATCH 85/85] Measure multiboot images and modules diff --git a/grub.macros b/grub.macros new file mode 100644 index 0000000..269bae7 --- /dev/null +++ b/grub.macros @@ -0,0 +1,405 @@ +# vim:filetype=spec +# Modules always contain just 32-bit code +%global _libdir %{_exec_prefix}/lib +%global _binaries_in_noarch_packages_terminate_build 0 +#%%undefine _missing_build_ids_terminate_build +%{expand:%%{!?buildsubdir:%%global buildsubdir grub-%{tarversion}}} +%{expand:%%{!?_licensedir:%%global license %%%%doc}} + +%if %{?_with_ccache: 1}%{?!_with_ccache: 0} +%global cc_equals CC=/usr/%{_lib}/ccache/gcc +%else +%global cc_equals %{nil} +%endif + +%global with_efi_arch 0 +%global with_alt_efi_arch 0 +%global with_legacy_arch 0 +%global grubefiarch %{nil} +%global grublegacyarch %{nil} + +# sparc is always compiled 64 bit +%ifarch %{sparc} +%global target_cpu_name sparc64 +%global _target_platform %{target_cpu_name}-%{_vendor}-%{_target_os}%{?_gnu} +%global legacy_target_cpu_name %{_arch} +%global platform ieee1275 +%endif +# ppc is always compiled 64 bit +%ifarch ppc ppc64 ppc64le +%global target_cpu_name %{_arch} +%global legacy_target_cpu_name %{_arch} +%global _target_platform %{target_cpu_name}-%{_vendor}-%{_target_os}%{?_gnu} +%global platform ieee1275 +%endif + +%global efi_only aarch64 %{arm} +%global efi_arch x86_64 ia64 %{efi_only} +%ifnarch %{efi_arch} +%global no_efi_arch %{_arch} +%else +%global no_efi_arch blah_blah_blah_this_is_not_your_arch_blah_blah_blah +%endif + +### fixme +%ifarch aarch64 %{arm} +%global efi_modules " linux " +%else +%global efi_modules " backtrace usb usbserial_common usbserial_pl2303 usbserial_ftdi usbserial_usbdebug linuxefi " +%endif + +%ifarch x86_64 +%global efiarch x64 +%global target_cpu_name %{_arch} + +%global legacy_target_cpu_name i386 +%global platform pc + +%global alt_efi_arch ia32 +%global alt_target_cpu_name i386 +%global alt_platform efi +%endif + +%ifarch aarch64 +%global efiarch aa64 +%global target_cpu_name arm64 +%endif + +%ifarch %{arm} +%global efiarch arm +%global target_cpu_name arm +%endif + +%global _target_platform %{target_cpu_name}-%{_vendor}-%{_target_os}%{?_gnu} + +%global grub2_tools_files "grub2-tools-files.list" +%global grub2_tools_debugfiles_ignore "%{expand:%%{?buildsubdir:%%{buildsubdir}/}}grub2-tools-debugfiles.list" +%global grub2_tools_debugfiles "grub2-tools-debugfiles.list" +%global grub2_files "grub2-files.list" +%global grub2_debugfiles_ignore "%{expand:%%{?buildsubdir:%%{buildsubdir}/}}grub2-other-debugfiles.list" +%global grub2_debugfiles "grub2-debugfiles.list" +%global _find_debuginfo_opts \\\ + -l %{grub2_files} \\\ + -o %{grub2_debugfiles} \\\ + -l %{grub2_tools_files} \\\ + -o %{grub2_tools_debugfiles} \\\ + %{nil} + +%ifarch %{efi_arch} +%global with_efi_arch 1 +%global grubefiname grub%{efiarch}.efi +%global grubeficdname gcd%{efiarch}.efi +%global grubefiarch %{target_cpu_name}-efi +%endif + +%if 0%{?alt_efi_arch:1} +%global with_alt_efi_arch 1 +%global grubaltefiname grub%{alt_efi_arch}.efi +%global grubalteficdname gcd%{alt_efi_arch}.efi +%global grubaltefiarch %{alt_target_cpu_name}-efi +%endif + +# Figure out the right file path to use +%global efidir %(eval echo $(grep ^ID= /etc/os-release | sed -e 's/^ID=//' -e 's/rhel/redhat/')) +%global grub2_efi_files "grub2-efi-files.list" +%if 0 +%global grub2_efi_debugfiles_ignore "%{expand:%%{?buildsubdir:%%{buildsubdir}/}}%{name}-modules-%{grubefiarch}-debugfiles.list" +%global grub2_efi_debugfiles "%{name}-modules-%{grubefiarch}-debugfiles.list" +%global _find_debuginfo_opts %{_find_debuginfo_opts} \\\ + -l %{expand:%%{grub2_efi_files}} \\\ + -o %{expand:%%{grub2_efi_debugfiles}} \\\ + %{nil} +%else +%global _find_debuginfo_opts %{_find_debuginfo_opts} \\\ + %{nil} +%endif + +%ifnarch %{efi_only} +%global with_legacy_arch 1 +%global grublegacyarch %{legacy_target_cpu_name}-%{platform} +%global grub2_legacy_files "grub2-legacy-files.list" +%global grub2_legacy_debugfiles_ignore "%{expand:%%{?buildsubdir:%%{buildsubdir}/}}%{name}-modules-%{grublegacyarch}-debugfiles.list" +%global grub2_legacy_debugfiles "%{name}-modules-%{grublegacyarch}-debugfiles.list" +%global _find_debuginfo_opts %{_find_debuginfo_opts} \\\ + -l %{expand:%%{grub2_legacy_files}} \\\ + -o %{expand:%%{grub2_legacy_debugfiles}} \\\ + -l %{expand:%%{grub2_files}} \\\ + -o %{expand:%%{grub2_debugfiles}} \\\ + %{nil} +%endif + +%global efi_cflags %(echo %{optflags} | \\\ + sed \\\ + -e 's/-O./-g3/g' \\\ + -e 's/-fstack-protector[[:alpha:]-]\\+//g' \\\ + -e 's/-Wp,-D_FORTIFY_SOURCE=[[:digit:]]\\+//g' \\\ + -e 's/--param=ssp-buffer-size=4//g' \\\ + -e 's/-mregparm=3/-mregparm=4/g' \\\ + -e 's/-fexceptions//g' \\\ + -e 's/-fasynchronous-unwind-tables//g' \\\ + -e 's/^/ -fno-strict-aliasing /' ) %{nil} +%global legacy_cflags %(echo %{efi_cflags} | \\\ + sed \\\ + -e 's/-m64//g' \\\ + -e 's/-mcpu=power7/-mcpu=power6/g' \\\ + ) %{nil} + +%if 0 +%global debug_package %{nil} +%global __debug_package 1 +%global __debug_install_post \ + bash -x %{SOURCE2} %{?_missing_build_ids_terminate_build:--strict-build-id} %{?_include_minidebuginfo:-m} %{?_find_debuginfo_opts} "%{expand:%%{expand:%%%%{_builddir}/%%%%{?buildsubdir}}}" +%endif + +%global debug_package %{nil} +%global __debug_package 0 + +%define define_legacy_variant() \ +%if %{1} \ +%{expand:%%package %{2}} \ +Summary: Bootloader with support for Linux, Multiboot, and more \ +Group: System Environment/Base \ +Requires: %{name}-tools-%{1} = %{epoch}:%{version}-%{release}.%{arch}\ +Requires: %{name}-modules-%{1} = %{epoch}:%{version}-%{release}.noarch\ +Requires: gettext which file \ +Requires(pre): dracut \ +Requires(post): dracut \ +Obsoletes: grub2 <= 1:2.00-20%{?dist} \ +Suggests: os-prober >= 1.58-11 \ +Provides: %{name} = %{epoch}:%{version}-%{release}.%{arch} \ +%{expand:%%description %{2}} \ +%{desc} \ +This subpackage provides support for %{2} systems. \ +%endif \ +%{nil} + +%define define_efi_variant() \ +%if %{1} \ +%{expand:%%package %{2}} \ +Summary: GRUB for EFI systems. \ +Group: System Environment/Base \ +Suggests: %{name}-tools = %{epoch}:%{version}-%{release}.%{arch} \ +Provides: %{name}-efi = %{epoch}:%{version}-%{release}.%{arch} \ +%{expand:%%description %{2}} \ +%{desc} \ +This subpackage provides support for %{2} systems. \ +%{expand:%%{?!buildsubdir:%%define buildsubdir grub-%{2}-%{tarversion}}}\ +%{expand:%%package modules-%{2}} \ +Summary: Modules used to build custom grub.efi images \ +Group: System Environment/Base \ +BuildArch: noarch \ +Enhances: %{name}-tools-%{2} = %{epoch}:%{version}-%{release} \ +%{expand:%%description modules-%{2}} \ +%{desc} \ +This subpackage provides support for rebuilding your own grub.efi. \ +%{expand:%%package extras-%{2}} \ +Summary: Extras files used with EFI grub builds \ +Group: System Environment/Base \ +Enhances: %{name}-%{grubefiarch} = %{epoch}:%{version}-%{release} \ +%{expand:%%description extras-%{2}} \ +%{desc} \ +This subpackage provides extra optional components of grub on %{2} systems.\ +%endif \ +%{nil} + +%global do_setup() \ +%if %{1} \ +%setup -D -q -T -a 0 -n grub-%{tarversion} \ +cd grub-%{tarversion} \ +cp %{SOURCE4} unifont.pcf.gz \ +cp %{SOURCE6} .gitignore \ +git init \ +echo '![[:digit:]][[:digit:]]_*.in' > util/grub.d/.gitignore \ +echo '!*.[[:digit:]]' > util/.gitignore \ +git config user.email "%{name}-owner@fedoraproject.org" \ +git config user.name "Fedora Ninjas" \ +git config gc.auto 0 \ +git add . \ +git commit -a -q -m "%{tarversion} baseline." \ +git am %{patches} = 0.99-8 %endif -%endif -Requires: gettext which file -Requires: %{name}-tools = %{epoch}:%{version}-%{release} -Requires: os-prober >= 1.58-11 -Requires(pre): dracut -Requires(post): dracut +ExcludeArch: s390 s390x -ExcludeArch: s390 s390x %{arm} -Obsoletes: grub2 <= 1:2.00-20%{?dist} +%global desc \ +The GRand Unified Bootloader (GRUB) is a highly configurable and customizable\n\ +bootloader with modular architecture. It supports a rich variety of kernel\n\ +formats, file systems, computer architectures and hardware devices.\n\ +%{nil} %description -The GRand Unified Bootloader (GRUB) is a highly configurable and customizable -bootloader with modular architecture. It support rich varietyof kernel formats, -file systems, computer architectures and hardware devices. This subpackage -provides support for PC BIOS systems. +%{desc} + +%package debuginfo +Summary: Debug information for package grub2 +Group: Development/Debug -%ifarch %{efiarchs} -%package efi -Summary: GRUB for EFI systems. +%description debuginfo +This package provides debug information for package grub2. +Debug information is useful when developing applications that use this +package or when debugging this package. + +%package tools +Summary: Support tools for GRUB. Group: System Environment/Base -Requires: %{name}-tools = %{epoch}:%{version}-%{release} -Obsoletes: grub2-efi <= 1:2.00-20%{?dist} +Requires: gettext os-prober which file system-logos +Requires: %{name}-tools-minimal = %{epoch}:%{version}-%{release}.%{arch} -%description efi -The GRand Unified Bootloader (GRUB) is a highly configurable and customizable -bootloader with modular architecture. It support rich varietyof kernel formats, -file systems, computer architectures and hardware devices. This subpackage -provides support for EFI systems. +%description tools +%{desc} +This subpackage provides tools for support of all platforms. -%package efi-modules -Summary: Modules used to build custom grub.efi images +%package tools-minimal +Summary: Support tools for GRUB. Group: System Environment/Base -Requires: %{name}-tools = %{epoch}:%{version}-%{release} -Obsoletes: grub2-efi <= 1:2.00-20%{?dist} +Requires: gettext os-prober which file system-logos -%description efi-modules -The GRand Unified Bootloader (GRUB) is a highly configurable and customizable -bootloader with modular architecture. It support rich varietyof kernel formats, -file systems, computer architectures and hardware devices. This subpackage -provides support for rebuilding your own grub.efi on EFI systems. -%endif +%description tools-minimal +%{desc} +This subpackage provides tools for support of all platforms. -%package tools +%package tools-extra Summary: Support tools for GRUB. Group: System Environment/Base Requires: gettext os-prober which file system-logos -%description tools -The GRand Unified Bootloader (GRUB) is a highly configurable and customizable -bootloader with modular architecture. It support rich varietyof kernel formats, -file systems, computer architectures and hardware devices. This subpackage -provides tools for support of all platforms. +%description tools-extra +%{desc} +This subpackage provides tools for support of all platforms. + +%package modules-%{grublegacyarch} +Summary: Modules for %{name}-%{grublegacyarch} +Group: System Environment/Base +BuildArch: noarch +Supplements: %{name}-%{grublegacyarch} = %{epoch}:%{version}-%{release} + +%description modules-%{grublegacyarch} +%{desc} +This subpackage provides modules for use on %{grublegacyarch} systems. + +%package tools-%{grublegacyarch} +Summary: Support tools for GRUB. +Group: System Environment/Base +Requires: gettext os-prober which file system-logos +Requires: %{name}-tools-minimal = %{epoch}:%{version}-%{release}.%{arch} +Recommends: %{name}-tools = %{epoch}:%{version}-%{release}.%{arch} + +%description tools-%{grublegacyarch} +%{desc} +This subpackage provides tools for support of %{grublegacyarch} platforms. %package starfield-theme Summary: An example theme for GRUB. Group: System Environment/Base Requires: system-logos -Obsoletes: grub2 <= 1:2.00-20%{?dist} -Obsoletes: grub2-efi <= 1:2.00-20%{?dist} +BuildArch: noarch %description starfield-theme The GRand Unified Bootloader (GRUB) is a highly configurable and customizable @@ -159,190 +141,34 @@ bootloader with modular architecture. It support rich varietyof kernel formats, file systems, computer architectures and hardware devices. This subpackage provides an example theme for the grub screen. + +%define_efi_variant %{with_efi_arch} %{grubefiarch} %{grubefiname} %{grubeficdname} +%define_efi_variant %{with_alt_efi_arch} %{grubaltefiarch} %{grubaltefiname} %{grubalteficdname} +%define_legacy_variant %{with_legacy_arch} %{grublegacyarch} + %prep %setup -T -c -n grub-%{tarversion} -%ifarch %{efiarchs} -%setup -D -q -T -a 0 -n grub-%{tarversion} -cd grub-%{tarversion} -# place unifont in the '.' from which configure is run -cp %{SOURCE4} unifont.pcf.gz -cp %{SOURCE6} .gitignore -git init -echo '![[:digit:]][[:digit:]]_*.in' > util/grub.d/.gitignore -echo '!*.[[:digit:]]' > util/.gitignore -git config user.email "%{name}-owner@fedoraproject.org" -git config user.name "Fedora Ninjas" -git config gc.auto 0 -git add . -git commit -a -q -m "%{tarversion} baseline." -git am %{patches} util/grub.d/.gitignore -echo '!*.[[:digit:]]' > util/.gitignore -git config user.email "%{name}-owner@fedoraproject.org" -git config user.name "Fedora Ninjas" -git config gc.auto 0 -git add . -git commit -a -q -m "%{tarversion} baseline." -git am %{patches} ${RPM_BUILD_ROOT}%{_sysconfdir}/prelink.conf.d/grub2.conf -b /usr/sbin/grub2-sparc64-setup EOF -%ifarch %{efiarchs} -mkdir -p boot/efi/EFI/%{efidir}/ -ln -s /boot/efi/EFI/%{efidir}/grubenv boot/grub2/grubenv -%endif - # Don't run debuginfo on all the grub modules and whatnot; it just # rejects them, complains, and slows down extraction. %global finddebugroot "%{_builddir}/%{?buildsubdir}/debug" @@ -387,7 +208,7 @@ cp -a ${RPM_BUILD_ROOT}/usr/sbin %{finddebugroot}/usr/sbin %clean rm -rf $RPM_BUILD_ROOT -%pre tools +%pre tools-minimal if [ -f /boot/grub2/user.cfg ]; then if grep -q '^GRUB_PASSWORD=' /boot/grub2/user.cfg ; then sed -i 's/^GRUB_PASSWORD=/GRUB2_PASSWORD=/' /boot/grub2/user.cfg @@ -452,85 +273,91 @@ if [ "$1" = 0 ]; then /sbin/install-info --delete --info-dir=%{_infodir} %{_infodir}/%{name}-dev.info.gz || : fi +%if 0 %ifnarch %{efi_only} -%files -f grub.lang -%defattr(-,root,root,-) -%{_libdir}/grub/*-%{platform}/ +%files %{grublegacyarch} -f grub.lang %config(noreplace) %{_sysconfdir}/%{name}.cfg %ghost %config(noreplace) /boot/%{name}/grub.cfg %doc grub-%{tarversion}/COPYING %config(noreplace) %ghost /boot/grub2/grubenv %endif - -%ifarch %{efiarchs} -%files efi -%defattr(-,root,root,-) -%config(noreplace) %{_sysconfdir}/%{name}-efi.cfg -%attr(0755,root,root)/boot/efi/EFI/%{efidir} -%attr(0755,root,root)/boot/efi/EFI/%{efidir}/fonts -%ghost %config(noreplace) /boot/efi/EFI/%{efidir}/grub.cfg -%doc grub-%{tarversion}/COPYING -/boot/grub2/grubenv -# I know 0700 seems strange, but it lives on FAT so that's what it'll -# get no matter what we do. -%config(noreplace) %ghost %attr(0700,root,root)/boot/efi/EFI/%{efidir}/grubenv - -%files efi-modules -%defattr(-,root,root,-) -%{_libdir}/grub/%{grubefiarch} %endif -%files tools -f grub.lang +%files tools-minimal %defattr(-,root,root,-) %dir %{_libdir}/grub/ %dir %{_datarootdir}/grub/ %dir %{_datarootdir}/grub/themes +%{_sysconfdir}/prelink.conf.d/grub2.conf +%attr(0700,root,root) %dir %{_sysconfdir}/grub.d +%config %{_sysconfdir}/grub.d/??_* +%{_sysconfdir}/grub.d/README +%attr(0644,root,root) %ghost %config(noreplace) %{_sysconfdir}/default/grub %{_datarootdir}/grub/* -%{_sbindir}/%{name}-bios-setup -%{_sbindir}/%{name}-install -%{_sbindir}/%{name}-macbless %{_sbindir}/%{name}-mkconfig -%{_sbindir}/%{name}-ofpathname %{_sbindir}/%{name}-probe %{_sbindir}/%{name}-reboot %{_sbindir}/%{name}-rpm-sort -%{_sbindir}/%{name}-set-default %{_sbindir}/%{name}-setpassword -%{_sbindir}/%{name}-sparc64-setup +%{_sbindir}/%{name}-set-default %{_bindir}/%{name}-editenv %{_bindir}/%{name}-file +%{_bindir}/%{name}-mkpasswd-pbkdf2 +%{_bindir}/%{name}-mkrelpath +%{_bindir}/%{name}-script-check + +%files tools +%defattr(-,root,root,-) +%{_infodir}/%{name}* +%{_datarootdir}/bash-completion/completions/grub +%{_sbindir}/%{name}-install +%{_bindir}/%{name}-menulst2cfg +%{_datadir}/man/man?/* + +%if %{with_legacy_arch} +%files tools-%{grublegacyarch} +%defattr(-,root,root,-) +%{_sbindir}/%{name}-install +%ifarch %{ix86} x86_64 +%{_sbindir}/%{name}-bios-setup +%else +%exclude %{_sbindir}/%{name}-bios-setup +%endif +%ifarch %{sparc} +%{_sbindir}/%{name}-sparc64-setup +%else +%exclude %{_sbindir}/%{name}-sparc64-setup +%endif +%ifarch %{sparc} ppc ppc64 ppc64le +%{_sbindir}/%{name}-ofpathname +%else +%exclude %{_sbindir}/%{name}-ofpathname +%endif +%endif + +%files tools-extra +%{_sbindir}/%{name}-install +%{_sbindir}/%{name}-macbless %{_bindir}/%{name}-fstest %{_bindir}/%{name}-glue-efi %{_bindir}/%{name}-kbdcomp -%{_bindir}/%{name}-menulst2cfg %{_bindir}/%{name}-mkfont %{_bindir}/%{name}-mkimage %{_bindir}/%{name}-mklayout %{_bindir}/%{name}-mknetdir -%{_bindir}/%{name}-mkpasswd-pbkdf2 -%{_bindir}/%{name}-mkrelpath %ifnarch %{sparc} %{_bindir}/%{name}-mkrescue %endif %{_bindir}/%{name}-mkstandalone %{_bindir}/%{name}-render-label -%{_bindir}/%{name}-script-check %{_bindir}/%{name}-syslinux2cfg -%{_datarootdir}/bash-completion/completions/grub -%{_sysconfdir}/prelink.conf.d/grub2.conf -%attr(0700,root,root) %dir %{_sysconfdir}/grub.d -%config %{_sysconfdir}/grub.d/??_* -%{_sysconfdir}/grub.d/README -%attr(0644,root,root) %ghost %config(noreplace) %{_sysconfdir}/default/grub %{_sysconfdir}/sysconfig/grub %dir /boot/%{name} %dir /boot/%{name}/themes/ %dir /boot/%{name}/themes/system %exclude /boot/%{name}/themes/system/* %exclude %{_datarootdir}/grub/themes/ -%{_infodir}/%{name}* -%{_datadir}/man/man?/* -%doc grub-%{tarversion}/COPYING grub-%{tarversion}/INSTALL +%doc grub-%{tarversion}/INSTALL %doc grub-%{tarversion}/NEWS grub-%{tarversion}/README %doc grub-%{tarversion}/THANKS grub-%{tarversion}/TODO %doc grub-%{tarversion}/grub.html @@ -543,6 +370,13 @@ fi %dir %{_datarootdir}/grub/themes %{_datarootdir}/grub/themes/starfield +%files debuginfo -f debugfiles.list +%defattr(-,root,root) + +%define_efi_variant_files %{with_efi_arch} %{grubefiarch} %{grubefiname} %{grubeficdname} +%define_efi_variant_files %{with_alt_efi_arch} %{grubaltefiarch} %{grubaltefiname} %{grubalteficdname} +%define_legacy_variant_files %{with_legacy_arch} %{grublegacyarch} + %changelog * Fri Mar 04 2016 Peter Jones - 2.02-0.26 - Rebased to newer upstream (grub-2.02-beta3) for fedora-24