d9d99f
# vim:filetype=spec
d9d99f
# Modules always contain just 32-bit code
d9d99f
%global _libdir %{_exec_prefix}/lib
d9d99f
%global _binaries_in_noarch_packages_terminate_build 0
d9d99f
#%%undefine _missing_build_ids_terminate_build
d9d99f
%{expand:%%{!?buildsubdir:%%global buildsubdir grub-%{tarversion}}}
d9d99f
%{expand:%%{!?_licensedir:%%global license %%%%doc}}
d9d99f
d9d99f
%global _configure ../configure
d9d99f
d9d99f
%if %{?_with_ccache: 1}%{?!_with_ccache: 0}
d9d99f
%global cc_equals CC=/usr/%{_lib}/ccache/gcc
d9d99f
%else
d9d99f
%global cc_equals %{nil}
d9d99f
%endif
d9d99f
d9d99f
%global cflags_sed						\\\
d9d99f
	sed							\\\
d9d99f
		-e 's/-O. //g'					\\\
d9d99f
		-e 's/-fplugin=annobin //g'			\\\
d9d99f
		-e 's,-specs=/usr/lib/rpm/redhat/redhat-annobin-cc1 ,,g' \\\
d9d99f
		-e 's/-fstack-protector[[:alpha:]-]\\+//g'	\\\
d9d99f
		-e 's/-Wp,-D_FORTIFY_SOURCE=[[:digit:]]\\+//g'	\\\
d9d99f
		-e 's/--param=ssp-buffer-size=4//g'		\\\
d9d99f
		-e 's/-mregparm=3/-mregparm=4/g'		\\\
d9d99f
		-e 's/-fexceptions//g'				\\\
d9d99f
		-e 's/-fasynchronous-unwind-tables//g'		\\\
d9d99f
		-e 's/^/ -fno-strict-aliasing /'		\\\
d9d99f
		%{nil}
d9d99f
d9d99f
e0db32
%global host_cflags %{expand:%%(echo %{build_cflags} %{?_hardening_cflags} | %{cflags_sed})}
e0db32
%global legacy_host_cflags					\\\
e0db32
	%{expand:%%(echo %{host_cflags}	|			\\\
d9d99f
	%{cflags_sed}						\\\
d9d99f
		-e 's/-m64//g'					\\\
d9d99f
		-e 's/-mcpu=power[[:alnum:]]\\+/-mcpu=power6/g'	\\\
d9d99f
	)}
e0db32
%global efi_host_cflags %{expand:%%(echo %{host_cflags})}
e0db32
e0db32
%global target_cflags %{expand:%%(echo %{build_cflags} | %{cflags_sed})}
e0db32
%global legacy_target_cflags					\\\
e0db32
	%{expand:%%(echo %{target_cflags} | 			\\\
d9d99f
	%{cflags_sed}						\\\
d9d99f
		-e 's/-m64//g'					\\\
d9d99f
		-e 's/-mcpu=power[[:alnum:]]\\+/-mcpu=power6/g'	\\\
d9d99f
	)}
d9d99f
%global efi_target_cflags %{expand:%%(echo %{target_cflags})}
d9d99f
e0db32
%global ldflags_sed						\\\
e0db32
	sed							\\\
e0db32
		-e 's/^$//'					\\\
e0db32
		%{nil}
e0db32
e0db32
%global host_ldflags %{expand:%%(echo %{build_ldflags} %{?_hardening_ldflags} | %{ldflags_sed})}
e0db32
%global legacy_host_ldflags					    \\\
e0db32
	%{expand:%%(echo %{host_ldflags} |			    \\\
e0db32
	%{ldflags_sed}						    \\\
e0db32
	)}
e0db32
%global efi_host_ldflags %{expand:%%(echo %{host_ldflags})}
e0db32
e0db32
%global target_ldflags %{expand:%%(echo %{build_ldflags} -static | %{ldflags_sed})}
e0db32
%global legacy_target_ldflags					\\\
e0db32
	%{expand:%%(echo %{target_ldflags} | 			\\\
e0db32
	%{ldflags_sed}						\\\
e0db32
	)}
e0db32
%global efi_target_ldflags %{expand:%%(echo %{target_ldflags})}
e0db32
d9d99f
%global with_efi_arch 0
d9d99f
%global with_alt_efi_arch 0
d9d99f
%global with_legacy_arch 0
d9d99f
%global grubefiarch %{nil}
d9d99f
%global grublegacyarch %{nil}
d9d99f
d9d99f
# sparc is always compiled 64 bit
d9d99f
%ifarch %{sparc}
d9d99f
%global target_cpu_name sparc64
d9d99f
%global _target_platform %{target_cpu_name}-%{_vendor}-%{_target_os}%{?_gnu}
d9d99f
%global legacy_target_cpu_name %{_arch}
d9d99f
%global legacy_package_arch ieee1275
d9d99f
%global platform ieee1275
d9d99f
%endif
d9d99f
# ppc is always compiled 64 bit
d9d99f
%ifarch ppc ppc64 ppc64le
d9d99f
%global target_cpu_name %{_arch}
d9d99f
%global legacy_target_cpu_name powerpc
d9d99f
%global legacy_package_arch %{_arch}
d9d99f
%global legacy_grub_dir powerpc-ieee1275
d9d99f
%global _target_platform %{target_cpu_name}-%{_vendor}-%{_target_os}%{?_gnu}
d9d99f
%global platform ieee1275
d9d99f
%endif
d9d99f
d9d99f
d9d99f
%global efi_only aarch64 %{arm}
d9d99f
%global efi_arch x86_64 ia64 %{efi_only}
d9d99f
%ifarch %{efi_arch}
d9d99f
%global with_efi_arch 1
d9d99f
%else
d9d99f
%global with_efi_arch 0
d9d99f
%endif
d9d99f
%ifarch %{efi_only}
d9d99f
%global with_efi_only 1
d9d99f
%else
d9d99f
%global with_efi_only 0
d9d99f
%endif
d9d99f
%{!?with_efi_arch:%global without_efi_arch 0}
d9d99f
%{?with_efi_arch:%global without_efi_arch 1}
d9d99f
%{!?with_efi_only:%global without_efi_only 0}
d9d99f
%{?with_efi_only:%global without_efi_only 1}
d9d99f
d9d99f
### fixme
d9d99f
%ifarch aarch64 %{arm}
d9d99f
%global platform_modules " "
d9d99f
%else
d9d99f
%global platform_modules " backtrace chain usb usbserial_common usbserial_pl2303 usbserial_ftdi usbserial_usbdebug "
d9d99f
%endif
d9d99f
d9d99f
%ifarch aarch64 %{arm}
d9d99f
%global legacy_provides -l
d9d99f
%endif
d9d99f
d9d99f
%ifarch %{ix86}
d9d99f
%global efiarch ia32
d9d99f
%global target_cpu_name i386
d9d99f
%global grub_target_name i386-efi
d9d99f
%global package_arch efi-ia32
d9d99f
d9d99f
%global legacy_target_cpu_name i386
d9d99f
%global legacy_package_arch pc
d9d99f
%global platform pc
d9d99f
%endif
d9d99f
d9d99f
%ifarch x86_64
d9d99f
%global efiarch x64
d9d99f
%global target_cpu_name %{_arch}
d9d99f
%global grub_target_name %{_arch}-efi
d9d99f
%global package_arch efi-x64
d9d99f
d9d99f
%global legacy_target_cpu_name i386
d9d99f
%global legacy_package_arch pc
d9d99f
%global platform pc
d9d99f
d9d99f
%global alt_efi_arch ia32
d9d99f
%global alt_target_cpu_name i386
d9d99f
%global alt_grub_target_name i386-efi
d9d99f
%global alt_platform efi
d9d99f
%global alt_package_arch efi-ia32
d9d99f
d9d99f
%global alt_efi_host_cflags %{expand:%%(echo %{efi_host_cflags})}
d9d99f
%global alt_efi_target_cflags					\\\
d9d99f
	%{expand:%%(echo %{target_cflags} |			\\\
d9d99f
	%{cflags_sed}						\\\
d9d99f
		-e 's/-m64//g'					\\\
d9d99f
	)}
d9d99f
%endif
d9d99f
d9d99f
%ifarch aarch64
d9d99f
%global efiarch aa64
d9d99f
%global target_cpu_name aarch64
d9d99f
%global grub_target_name arm64-efi
d9d99f
%global package_arch efi-aa64
d9d99f
%endif
d9d99f
d9d99f
%ifarch %{arm}
d9d99f
%global efiarch arm
d9d99f
%global target_cpu_name arm
d9d99f
%global grub_target_name arm-efi
d9d99f
%global package_arch efi-arm
d9d99f
%global efi_target_cflags						\\\
d9d99f
	%{expand:%%(echo %{optflags} |					\\\
d9d99f
	%{cflags_sed}							\\\
d9d99f
		-e 's/-march=armv7-a[[:alnum:]+-]*/&+nofp/g'		\\\
d9d99f
		-e 's/-mfpu=[[:alnum:]-]\\+//g'				\\\
d9d99f
		-e 's/-mfloat-abi=[[:alpha:]]\\+/-mfloat-abi=soft/g'	\\\
d9d99f
	)}
d9d99f
%endif
d9d99f
d9d99f
%global _target_platform %{target_cpu_name}-%{_vendor}-%{_target_os}%{?_gnu}
d9d99f
%global _alt_target_platform %{alt_target_cpu_name}-%{_vendor}-%{_target_os}%{?_gnu}
d9d99f
d9d99f
%ifarch %{efi_arch}
d9d99f
%global with_efi_arch 1
d9d99f
%global grubefiname grub%{efiarch}.efi
d9d99f
%global grubeficdname gcd%{efiarch}.efi
d9d99f
%global grubefiarch %{target_cpu_name}-efi
d9d99f
%ifarch %{ix86}
d9d99f
%global with_efi_modules 0
d9d99f
%global without_efi_modules 1
d9d99f
%else
d9d99f
%global with_efi_modules 1
d9d99f
%global without_efi_modules 0
d9d99f
%endif
d9d99f
%endif
d9d99f
d9d99f
%if 0%{?alt_efi_arch:1}
d9d99f
%global with_alt_efi_arch 1
d9d99f
%global grubaltefiname grub%{alt_efi_arch}.efi
d9d99f
%global grubalteficdname gcd%{alt_efi_arch}.efi
d9d99f
%global grubaltefiarch %{alt_target_cpu_name}-efi
d9d99f
%endif
d9d99f
d9d99f
%ifnarch %{efi_only}
d9d99f
%global with_legacy_arch 1
d9d99f
%global grublegacyarch %{legacy_target_cpu_name}-%{platform}
d9d99f
%global moduledir %{legacy_target_cpu_name}-%{platform}
d9d99f
%endif
d9d99f
d9d99f
%global evr %{epoch}:%{version}-%{release}
d9d99f
d9d99f
%ifarch x86_64
d9d99f
%global with_efi_common 1
d9d99f
%global with_legacy_modules 0
d9d99f
%global with_legacy_common 0
d9d99f
%else
d9d99f
%global with_efi_common 0
d9d99f
%global with_legacy_common 1
d9d99f
%global with_legacy_modules 1
d9d99f
%endif
d9d99f
d9d99f
%define define_legacy_variant()						\
d9d99f
%{expand:%%package %%{1}}						\
d9d99f
Summary:	Bootloader with support for Linux, Multiboot, and more	\
d9d99f
Group:		System Environment/Base					\
d9d99f
Provides:	%{name} = %{evr}					\
d9d99f
Obsoletes:	%{name} < %{evr}					\
d9d99f
Requires:	%{name}-common = %{evr}					\
d9d99f
Requires:	%{name}-tools-minimal = %{evr}				\
d9d99f
Requires:	%{name}-%{1}-modules = %{evr}				\
d9d99f
Requires:	gettext which file					\
d9d99f
Requires:	%{name}-tools-extra = %{evr}				\
d9d99f
Requires:	%{name}-tools = %{evr}					\
d9d99f
Requires(pre):	dracut							\
d9d99f
Requires(post): dracut							\
d9d99f
%{expand:%%description %%{1}}						\
d9d99f
%{desc}									\
d9d99f
This subpackage provides support for %%{1} systems.			\
d9d99f
									\
d9d99f
%{expand:%%{?!buildsubdir:%%define buildsubdir grub-%%{1}-%{tarversion}}}\
d9d99f
%{expand:%%if 0%%{with_legacy_modules}					\
d9d99f
%%package %%{1}-modules							\
d9d99f
Summary:	Modules used to build custom grub images		\
d9d99f
Group:		System Environment/Base					\
d9d99f
BuildArch:	noarch							\
d9d99f
Requires:	%%{name}-common = %%{evr}				\
d9d99f
%%description %%{1}-modules						\
d9d99f
%%{desc}								\
d9d99f
This subpackage provides support for rebuilding your own grub.efi.	\
d9d99f
%%endif									\
d9d99f
}									\
d9d99f
									\
d9d99f
%{expand:%%{?!buildsubdir:%%define buildsubdir grub-%%{1}-%{tarversion}}}\
d9d99f
%{expand:%%package %%{1}-tools}						\
d9d99f
Summary:	Support tools for GRUB.					\
d9d99f
Group:		System Environment/Base					\
d9d99f
Requires:	gettext os-prober which file system-logos		\
d9d99f
Requires:	%{name}-common = %{evr}					\
d9d99f
Requires:	%{name}-tools-minimal = %{evr}				\
d9d99f
Requires:	os-prober >= 1.58-11					\
d9d99f
Requires:	gettext which file					\
d9d99f
									\
d9d99f
%{expand:%%description %%{1}-tools}					\
d9d99f
%{desc}									\
d9d99f
This subpackage provides tools for support of %%{1} platforms.		\
d9d99f
%{nil}
d9d99f
d9d99f
%define define_efi_variant(o)						\
d9d99f
%{expand:%%package %{1}}						\
d9d99f
Summary:	GRUB for EFI systems.					\
d9d99f
Group:		System Environment/Base					\
d9d99f
Requires:	efi-filesystem						\
d9d99f
Requires:	%{name}-common = %{evr}					\
d9d99f
Requires:	%{name}-tools-minimal >= %{evr}				\
d9d99f
Requires:	%{name}-tools-extra = %{evr}				\
d9d99f
Requires:	%{name}-tools = %{evr}					\
d9d99f
Provides:	%{name}-efi = %{evr}					\
d9d99f
%{?legacy_provides:Provides:	%{name} = %{evr}}			\
d9d99f
%{-o:Obsoletes:	%{name}-efi < %{evr}}					\
d9d99f
									\
d9d99f
%{expand:%%description %{1}}						\
d9d99f
%{desc}									\
d9d99f
This subpackage provides support for %{1} systems.			\
d9d99f
									\
d9d99f
%{expand:%%{?!buildsubdir:%%define buildsubdir grub-%{1}-%{tarversion}}}\
d9d99f
%{expand:%if 0%{?with_efi_modules}					\
d9d99f
%{expand:%%package %{1}-modules}					\
d9d99f
Summary:	Modules used to build custom grub.efi images		\
d9d99f
Group:		System Environment/Base					\
d9d99f
BuildArch:	noarch							\
d9d99f
Requires:	%{name}-common = %{evr}					\
d9d99f
Provides:	%{name}-efi-modules = %{evr}				\
d9d99f
Obsoletes:	%{name}-efi-modules < %{evr}				\
d9d99f
%{expand:%%description %{1}-modules}					\
d9d99f
%{desc}									\
d9d99f
This subpackage provides support for rebuilding your own grub.efi.	\
d9d99f
%endif}									\
d9d99f
									\
d9d99f
%{expand:%%package %{1}-cdboot}						\
d9d99f
Summary:	Files used to boot removeable media with EFI		\
d9d99f
Group:		System Environment/Base					\
d9d99f
Requires:	%{name}-common = %{evr}					\
d9d99f
Provides:	%{name}-efi-cdboot = %{evr}				\
d9d99f
%{expand:%%description %{1}-cdboot}					\
d9d99f
%{desc}									\
d9d99f
This subpackage provides optional components of grub used with removeable media on %{1} systems.\
d9d99f
%{nil}
d9d99f
d9d99f
%global do_common_setup()					\
d9d99f
%setup -q -n grub-%{tarversion}					\
d9d99f
rm -fv docs/*.info						\
d9d99f
cp %{SOURCE6} .gitignore					\
d9d99f
cp %{SOURCE8} ./grub-core/tests/strtoull_test.c			\
d9d99f
git init							\
d9d99f
echo '![[:digit:]][[:digit:]]_*.in' > util/grub.d/.gitignore	\
d9d99f
echo '!*.[[:digit:]]' > util/.gitignore				\
d9d99f
echo '!config.h' > include/grub/emu/.gitignore			\
d9d99f
git config user.email "%{name}-owner@fedoraproject.org"		\
d9d99f
git config user.name "Fedora Ninjas"				\
d9d99f
git config gc.auto 0						\
d9d99f
rm -f configure							\
d9d99f
git add .							\
d9d99f
git commit -a -q -m "%{tarversion} baseline."			\
d9d99f
git apply --index --whitespace=nowarn %{SOURCE3}		\
d9d99f
git commit -a -q -m "%{tarversion} master."			\
d9d99f
git am --whitespace=nowarn %%{patches} 
d9d99f
autoreconf -vi							\
d9d99f
git add .							\
d9d99f
git commit -a -q -m "autoreconf"				\
d9d99f
autoconf							\
d9d99f
PYTHON=python3 ./autogen.sh					\
d9d99f
%{nil}
d9d99f
d9d99f
%define do_efi_configure()					\
d9d99f
%configure							\\\
d9d99f
	%{cc_equals}						\\\
e0db32
	HOST_CFLAGS="%{3}"					\\\
e0db32
	HOST_CPPFLAGS="-I$(pwd)"				\\\
e0db32
	HOST_LDFLAGS="%{efi_host_ldflags}"			\\\
e0db32
	TARGET_CFLAGS="%{2}"					\\\
e0db32
	TARGET_CPPFLAGS="-I$(pwd)"				\\\
e0db32
	TARGET_LDFLAGS="%{efi_target_ldflags}"			\\\
d9d99f
	--with-platform=efi					\\\
d9d99f
	--with-utils=host					\\\
d9d99f
	--target=%{1}						\\\
d9d99f
	--with-grubdir=%{name}					\\\
d9d99f
	--program-transform-name=s,grub,%{name},		\\\
d9d99f
	--disable-grub-mount					\\\
d9d99f
	--disable-werror || ( cat config.log ; exit 1 )		\
d9d99f
git add .							\
d9d99f
git commit -m "After efi configure"				\
d9d99f
%{nil}
d9d99f
d9d99f
%define do_efi_build_modules()					\
d9d99f
make %{?_smp_mflags} ascii.h widthspec.h			\
d9d99f
make %{?_smp_mflags} -C grub-core				\
d9d99f
%{nil}
d9d99f
d9d99f
%define do_efi_build_all()					\
d9d99f
make %{?_smp_mflags}						\
d9d99f
%{nil}
d9d99f
d9d99f
%define do_efi_link_utils()					\
d9d99f
for x in grub-mkimage ; do					\\\
d9d99f
	ln ../grub-%{1}-%{tarversion}/${x} ./ ;			\\\
d9d99f
done								\
d9d99f
%{nil}
d9d99f
d9d99f
%ifarch x86_64 aarch64 %{arm}
d9d99f
%define mkimage()						\
d9d99f
%{4}./grub-mkimage -O %{1} -o %{2}.orig				\\\
d9d99f
	-p /EFI/%{efi_vendor} -d grub-core ${GRUB_MODULES}	\
d9d99f
%{4}./grub-mkimage -O %{1} -o %{3}.orig				\\\
d9d99f
	-p /EFI/BOOT -d grub-core ${GRUB_MODULES}		\
d9d99f
%{expand:%%{pesign -s -i %%{2}.orig -o %%{2} -a %%{5} -c %%{6} -n %%{7}}}	\
d9d99f
%{expand:%%{pesign -s -i %%{3}.orig -o %%{3} -a %%{5} -c %%{6} -n %%{7}}}	\
d9d99f
%{nil}
d9d99f
%else
d9d99f
%define mkimage()						\
d9d99f
%{4}./grub-mkimage -O %{1} -o %{2}				\\\
d9d99f
	-p /EFI/%{efi_vendor} -d grub-core ${GRUB_MODULES}	\
d9d99f
%{4}./grub-mkimage -O %{1} -o %{3}				\\\
d9d99f
	-p /EFI/BOOT -d grub-core ${GRUB_MODULES}		\
d9d99f
%{nil}
d9d99f
%endif
d9d99f
d9d99f
%define do_efi_build_images()					\
d9d99f
GRUB_MODULES="	all_video boot blscfg btrfs			\\\
d9d99f
		cat configfile					\\\
d9d99f
		echo efi_netfs efifwsetup efinet ext2		\\\
d9d99f
		fat font gfxmenu gfxterm gzio			\\\
d9d99f
		halt hfsplus http iso9660 jpeg			\\\
d9d99f
		loadenv loopback linux lvm lsefi lsefimmap	\\\
d9d99f
		mdraid09 mdraid1x minicmd net			\\\
d9d99f
		normal part_apple part_msdos part_gpt		\\\
d9d99f
		password_pbkdf2 png reboot			\\\
c63c17
		regexp search search_fs_uuid search_fs_file	\\\
d9d99f
		search_label serial sleep syslinuxcfg test tftp	\\\
d9d99f
		video xfs"					\
d9d99f
GRUB_MODULES+=%{platform_modules}				\
d9d99f
%{expand:%%{mkimage %{1} %{2} %{3} %{4} %{5} %{6} %{7}}}	\
d9d99f
%{nil}
d9d99f
d9d99f
%define do_primary_efi_build()					\
d9d99f
cd grub-%{1}-%{tarversion}					\
d9d99f
%{expand:%%do_efi_configure %%{4} %%{5} %%{6}}			\
d9d99f
%do_efi_build_all						\
d9d99f
%{expand:%%do_efi_build_images %{grub_target_name} %{2} %{3} ./ %{7} %{8} %{9}} \
d9d99f
cd ..								\
d9d99f
%{nil}
d9d99f
d9d99f
%define do_alt_efi_build()					\
d9d99f
cd grub-%{1}-%{tarversion}					\
d9d99f
%{expand:%%do_efi_configure %%{4} %%{5} %%{6}}			\
d9d99f
%do_efi_build_modules						\
d9d99f
%{expand:%%do_efi_link_utils %{grubefiarch}}			\
d9d99f
%{expand:%%do_efi_build_images %{alt_grub_target_name} %{2} %{3} ../grub-%{grubefiarch}-%{tarversion}/ %{7} %{8} %{9}} \
d9d99f
cd ..								\
d9d99f
%{nil}
d9d99f
d9d99f
%define do_legacy_build()					\
d9d99f
cd grub-%{1}-%{tarversion}					\
d9d99f
%configure							\\\
d9d99f
	%{cc_equals}						\\\
e0db32
	HOST_CFLAGS="%{legacy_host_cflags}"			\\\
e0db32
	HOST_CPPFLAGS="-I$(pwd)"				\\\
e0db32
	HOST_LDFLAGS="%{legacy_host_ldflags}"			\\\
e0db32
	TARGET_CFLAGS="%{legacy_target_cflags}"			\\\
e0db32
	TARGET_CPPFLAGS="-I$(pwd)"				\\\
e0db32
	TARGET_LDFLAGS="%{legacy_target_ldflags}"		\\\
d9d99f
	--with-platform=%{platform}				\\\
d9d99f
	--with-utils=host					\\\
d9d99f
	--target=%{_target_platform}				\\\
d9d99f
	--with-grubdir=%{name}					\\\
d9d99f
	--program-transform-name=s,grub,%{name},		\\\
d9d99f
	--disable-grub-mount					\\\
d9d99f
	--disable-werror || ( cat config.log ; exit 1 )		\
d9d99f
git add .							\
e0db32
git commit -m "After legacy configure"				\
d9d99f
make %{?_smp_mflags}						\
d9d99f
cd ..								\
d9d99f
%{nil}
d9d99f
d9d99f
%define do_alt_efi_install()					\
d9d99f
cd grub-%{1}-%{tarversion}					\
d9d99f
install -d -m 755 $RPM_BUILD_ROOT/usr/lib/grub/%{grubaltefiarch}/ \
d9d99f
find . '(' -iname gdb_grub					\\\
d9d99f
	-o -iname kernel.exec					\\\
d9d99f
	-o -iname kernel.img					\\\
d9d99f
	-o -iname config.h					\\\
d9d99f
	-o -iname gmodule.pl					\\\
d9d99f
	-o -iname modinfo.sh					\\\
d9d99f
	-o -iname '*.lst'					\\\
d9d99f
	-o -iname '*.mod'					\\\
d9d99f
	')'							\\\
d9d99f
	-exec cp {} $RPM_BUILD_ROOT/usr/lib/grub/%{grubaltefiarch}/ \\\; \
d9d99f
find $RPM_BUILD_ROOT -type f -iname "*.mod*" -exec chmod a-x {} '\;'	\
d9d99f
install -m 700 %{2} $RPM_BUILD_ROOT%{efi_esp_dir}/%{2}	\
d9d99f
install -m 700 %{3} $RPM_BUILD_ROOT%{efi_esp_dir}/%{3} \
d9d99f
cd ..								\
d9d99f
%{nil}
d9d99f
d9d99f
%define do_efi_install()					\
d9d99f
cd grub-%{1}-%{tarversion}					\
d9d99f
make DESTDIR=$RPM_BUILD_ROOT install				\
d9d99f
if [ -f $RPM_BUILD_ROOT%{_infodir}/grub.info ]; then		\
d9d99f
	rm -f $RPM_BUILD_ROOT%{_infodir}/grub.info		\
d9d99f
fi								\
d9d99f
if [ -f $RPM_BUILD_ROOT%{_infodir}/grub-dev.info ]; then	\
d9d99f
	rm -f $RPM_BUILD_ROOT%{_infodir}/grub-dev.info		\
d9d99f
fi								\
d9d99f
find $RPM_BUILD_ROOT -iname "*.module" -exec chmod a-x {} '\;'	\
d9d99f
touch $RPM_BUILD_ROOT%{efi_esp_dir}/grub.cfg			\
d9d99f
ln -sf ..%{efi_esp_dir}/grub.cfg				\\\
d9d99f
	$RPM_BUILD_ROOT%{_sysconfdir}/%{name}-efi.cfg		\
d9d99f
install -m 700 %{2} $RPM_BUILD_ROOT%{efi_esp_dir}/%{2}		\
d9d99f
install -m 700 %{3} $RPM_BUILD_ROOT%{efi_esp_dir}/%{3}		\
d9d99f
install -D -m 700 unicode.pf2					\\\
d9d99f
	$RPM_BUILD_ROOT%{efi_esp_dir}/fonts/unicode.pf2		\
d9d99f
${RPM_BUILD_ROOT}/%{_bindir}/%{name}-editenv			\\\
d9d99f
	${RPM_BUILD_ROOT}%{efi_esp_dir}/grubenv create		\
d9d99f
ln -sf ../efi/EFI/%{efi_vendor}/grubenv				\\\
d9d99f
	$RPM_BUILD_ROOT/boot/grub2/grubenv			\
d9d99f
cd ..								\
d9d99f
%{nil}
d9d99f
d9d99f
%define do_legacy_install()					\
d9d99f
cd grub-%{1}-%{tarversion}					\
d9d99f
make DESTDIR=$RPM_BUILD_ROOT install				\
d9d99f
if [ -f $RPM_BUILD_ROOT%{_infodir}/grub.info ]; then		\
d9d99f
	rm -f $RPM_BUILD_ROOT%{_infodir}/grub.info		\
d9d99f
fi								\
d9d99f
if [ -f $RPM_BUILD_ROOT%{_infodir}/grub-dev.info ]; then	\
d9d99f
	rm -f $RPM_BUILD_ROOT%{_infodir}/grub-dev.info		\
d9d99f
fi								\
d9d99f
ln -s ../boot/%{name}/grub.cfg					\\\
d9d99f
	${RPM_BUILD_ROOT}%{_sysconfdir}/grub2.cfg		\
d9d99f
if [ -f $RPM_BUILD_ROOT/%{_libdir}/grub/%{1}/grub2.chrp ]; then \
d9d99f
	mv $RPM_BUILD_ROOT/%{_libdir}/grub/%{1}/grub2.chrp	\\\
d9d99f
	   $RPM_BUILD_ROOT/%{_libdir}/grub/%{1}/grub.chrp	\
d9d99f
fi								\
d9d99f
if [ %{3} -eq 0 ]; then						\
d9d99f
	${RPM_BUILD_ROOT}/%{_bindir}/%{name}-editenv		\\\
d9d99f
		${RPM_BUILD_ROOT}/boot/%{name}/grubenv create	\
d9d99f
fi								\
d9d99f
cd ..								\
d9d99f
%{nil}
d9d99f
d9d99f
%define do_common_install()					\
d9d99f
install -d -m 0755 						\\\
d9d99f
	$RPM_BUILD_ROOT%{_datarootdir}/locale/en\@quot		\\\
d9d99f
	$RPM_BUILD_ROOT%{_datarootdir}/locale/en		\\\
d9d99f
	$RPM_BUILD_ROOT%{_infodir}/				\
d9d99f
cp -a $RPM_BUILD_ROOT%{_datarootdir}/locale/en\@quot		\\\
d9d99f
	$RPM_BUILD_ROOT%{_datarootdir}/locale/en		\
d9d99f
cp docs/grub.info $RPM_BUILD_ROOT%{_infodir}/%{name}.info	\
d9d99f
cp docs/grub-dev.info						\\\
d9d99f
	$RPM_BUILD_ROOT%{_infodir}/%{name}-dev.info		\
d9d99f
install -d -m 0700 ${RPM_BUILD_ROOT}%{efi_esp_dir}/		\
d9d99f
install -d -m 0700 ${RPM_BUILD_ROOT}/boot/grub2/		\
d9d99f
install -d -m 0700 ${RPM_BUILD_ROOT}/boot/loader/entries	\
d9d99f
install -d -m 0700 ${RPM_BUILD_ROOT}/boot/%{name}/themes/system	\
d9d99f
install -d -m 0700 ${RPM_BUILD_ROOT}%{_sysconfdir}/default	\
d9d99f
install -d -m 0700 ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig	\
d9d99f
touch ${RPM_BUILD_ROOT}%{_sysconfdir}/default/grub		\
d9d99f
ln -sf ../default/grub						\\\
d9d99f
	${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig/grub		\
d9d99f
touch ${RPM_BUILD_ROOT}/boot/%{name}/grub.cfg			\
d9d99f
%{nil}
d9d99f
d9d99f
%define define_legacy_variant_files()				\
d9d99f
%{expand:%%files %{1}}						\
d9d99f
%defattr(-,root,root,-)						\
d9d99f
%config(noreplace) %{_sysconfdir}/%{name}.cfg			\
d9d99f
%ghost %config(noreplace) /boot/%{name}/grub.cfg		\
d9d99f
%dir %attr(0700,root,root)/boot/loader/entries			\
d9d99f
								\
d9d99f
%{expand:%if 0%{?with_legacy_modules}				\
d9d99f
%{expand:%%files %{1}-modules}					\
d9d99f
%defattr(-,root,root)						\
d9d99f
%dir %{_libdir}/grub/%{2}/					\
d9d99f
%{_libdir}/grub/%{2}/*						\
d9d99f
%exclude %{_libdir}/grub/%{2}/*.module				\
d9d99f
%exclude %{_libdir}/grub/%{2}/{boot,boot_hybrid,cdboot,diskboot,lzma_decompress,pxeboot}.image \
d9d99f
%exclude %{_libdir}/grub/%{2}/*.o				\
d9d99f
%else								\
d9d99f
%%exclude %%{_libdir}/grub/%%{grublegacyarch}/*			\
d9d99f
%endif}								\
d9d99f
%{nil}
d9d99f
d9d99f
%define define_efi_variant_files()				\
d9d99f
%{expand:%%files %{1}}						\
d9d99f
%defattr(0700,root,root,-)					\
d9d99f
%config(noreplace) %{_sysconfdir}/%{name}-efi.cfg		\
d9d99f
%attr(0700,root,root)%{efi_esp_dir}/%{2}			\
d9d99f
%dir %attr(0700,root,root)%{efi_esp_dir}/fonts			\
d9d99f
%dir %attr(0700,root,root)/boot/loader/entries			\
d9d99f
%ghost %config(noreplace) %attr(0700,root,root)%{efi_esp_dir}/grub.cfg	\
e0db32
%config(noreplace) /boot/grub2/grubenv					\
d9d99f
%ghost %config(noreplace) %attr(0700,root,root)%{efi_esp_dir}/grubenv	\
d9d99f
%{expand:%if 0%{?without_efi_modules}				\
d9d99f
%exclude %{_libdir}/grub/%{6}					\
d9d99f
%exclude %{_libdir}/grub/%{6}/*					\
d9d99f
%endif}								\
d9d99f
								\
d9d99f
%{expand:%if 0%{?with_efi_modules}				\
d9d99f
%{expand:%%files %{1}-modules}					\
d9d99f
%defattr(-,root,root,-)						\
d9d99f
%dir %{_libdir}/grub/%{6}/					\
d9d99f
%{_libdir}/grub/%{6}/*						\
d9d99f
%exclude %{_libdir}/grub/%{6}/*.module				\
d9d99f
%endif}								\
d9d99f
								\
d9d99f
%{expand:%%files %{1}-cdboot}					\
d9d99f
%defattr(0700,root,root,-)					\
d9d99f
%attr(0700,root,root)%{efi_esp_dir}/%{3}			\
d9d99f
%attr(0700,root,root)%{efi_esp_dir}/fonts			\
d9d99f
%{nil}