|
|
f725e3 |
# vim:filetype=spec
|
|
|
f725e3 |
|
|
|
f725e3 |
%global flagday 1:2.02-0.65.el7_4
|
|
|
f725e3 |
|
|
|
f725e3 |
# Modules always contain just 32-bit code
|
|
|
f725e3 |
%global _libdir %{_exec_prefix}/lib
|
|
|
f725e3 |
%global _binaries_in_noarch_packages_terminate_build 0
|
|
|
f725e3 |
#%%undefine _missing_build_ids_terminate_build
|
|
|
f725e3 |
%{expand:%%{!?buildsubdir:%%global buildsubdir grub-%{tarversion}}}
|
|
|
f725e3 |
%{expand:%%{!?_licensedir:%%global license %%%%doc}}
|
|
|
f725e3 |
|
|
|
f725e3 |
%if %{?_with_ccache: 1}%{?!_with_ccache: 0}
|
|
|
f725e3 |
%global cc_equals CC=/usr/%{_lib}/ccache/gcc
|
|
|
f725e3 |
%else
|
|
|
f725e3 |
%global cc_equals %{nil}
|
|
|
f725e3 |
%endif
|
|
|
f725e3 |
|
|
|
f725e3 |
%global efi_cflags %(echo %{optflags} | \\\
|
|
|
f725e3 |
sed \\\
|
|
|
f725e3 |
-e 's/-O./-g3/g' \\\
|
|
|
f725e3 |
-e 's/-fstack-protector[[:alpha:]-]\\+//g' \\\
|
|
|
f725e3 |
-e 's/-Wp,-D_FORTIFY_SOURCE=[[:digit:]]\\+//g' \\\
|
|
|
f725e3 |
-e 's/--param=ssp-buffer-size=4//g' \\\
|
|
|
f725e3 |
-e 's/-mregparm=3/-mregparm=4/g' \\\
|
|
|
f725e3 |
-e 's/-fexceptions//g' \\\
|
|
|
f725e3 |
-e 's/-fasynchronous-unwind-tables//g' \\\
|
|
|
f725e3 |
-e 's/^/ -fno-strict-aliasing /' ) %{nil}
|
|
|
f725e3 |
%global legacy_cflags %(echo %{efi_cflags} | \\\
|
|
|
f725e3 |
sed \\\
|
|
|
f725e3 |
-e 's/-m64//g' \\\
|
|
|
f725e3 |
-e 's/-mcpu=power[[:alnum:]]\\+/-mcpu=power6/g' \\\
|
|
|
f725e3 |
) %{nil}
|
|
|
f725e3 |
|
|
|
f725e3 |
|
|
|
f725e3 |
%global with_efi_arch 0
|
|
|
f725e3 |
%global with_alt_efi_arch 0
|
|
|
f725e3 |
%global with_legacy_arch 0
|
|
|
f725e3 |
%global with_legacy_utils 0
|
|
|
f725e3 |
%global grubefiarch %{nil}
|
|
|
f725e3 |
%global grublegacyarch %{nil}
|
|
|
f725e3 |
|
|
|
f725e3 |
# sparc is always compiled 64 bit
|
|
|
f725e3 |
%ifarch %{sparc}
|
|
|
f725e3 |
%global target_cpu_name sparc64
|
|
|
f725e3 |
%global _target_platform %{target_cpu_name}-%{_vendor}-%{_target_os}%{?_gnu}
|
|
|
f725e3 |
%global legacy_target_cpu_name %{_arch}
|
|
|
f725e3 |
%global legacy_package_arch ieee1275
|
|
|
f725e3 |
%global platform ieee1275
|
|
|
f725e3 |
%endif
|
|
|
f725e3 |
# ppc is always compiled 64 bit
|
|
|
f725e3 |
%ifarch ppc ppc64 ppc64le
|
|
|
f725e3 |
%global target_cpu_name %{_arch}
|
|
|
f725e3 |
%global legacy_target_cpu_name powerpc
|
|
|
f725e3 |
%global legacy_package_arch %{_arch}
|
|
|
f725e3 |
%global legacy_grub_dir powerpc-ieee1275
|
|
|
f725e3 |
%global _target_platform %{target_cpu_name}-%{_vendor}-%{_target_os}%{?_gnu}
|
|
|
f725e3 |
%global platform ieee1275
|
|
|
f725e3 |
%endif
|
|
|
f725e3 |
|
|
|
f725e3 |
%global efi_only aarch64 %{arm}
|
|
|
f725e3 |
%global efi_arch x86_64 ia64 %{efi_only}
|
|
|
f725e3 |
%ifarch %{efi_arch}
|
|
|
f725e3 |
%global with_efi_arch 1
|
|
|
f725e3 |
%else
|
|
|
f725e3 |
%global with_efi_arch 0
|
|
|
f725e3 |
%endif
|
|
|
f725e3 |
%ifarch %{efi_only}
|
|
|
f725e3 |
%global with_efi_only 1
|
|
|
f725e3 |
%else
|
|
|
f725e3 |
%global with_efi_only 0
|
|
|
f725e3 |
%endif
|
|
|
f725e3 |
%{!?with_efi_arch:%global without_efi_arch 0}
|
|
|
f725e3 |
%{?with_efi_arch:%global without_efi_arch 1}
|
|
|
f725e3 |
%{!?with_efi_only:%global without_efi_only 0}
|
|
|
f725e3 |
%{?with_efi_only:%global without_efi_only 1}
|
|
|
f725e3 |
|
|
|
f725e3 |
### fixme
|
|
|
f725e3 |
%ifarch aarch64 %{arm}
|
|
|
f725e3 |
%global efi_modules " http linux "
|
|
|
f725e3 |
%else
|
|
|
f725e3 |
%global efi_modules " backtrace http linuxefi usb usbserial_common usbserial_pl2303 usbserial_ftdi usbserial_usbdebug "
|
|
|
f725e3 |
%endif
|
|
|
f725e3 |
|
|
|
f725e3 |
%ifarch x86_64
|
|
|
f725e3 |
%global efiarch x64
|
|
|
f725e3 |
%global target_cpu_name %{_arch}
|
|
|
f725e3 |
%global grub_target_name %{_arch}-efi
|
|
|
f725e3 |
%global package_arch efi-x64
|
|
|
f725e3 |
|
|
|
f725e3 |
%global legacy_target_cpu_name i386
|
|
|
f725e3 |
%global legacy_package_arch pc
|
|
|
f725e3 |
%global platform pc
|
|
|
f725e3 |
|
|
|
f725e3 |
%global alt_efi_arch ia32
|
|
|
f725e3 |
%global alt_target_cpu_name i386
|
|
|
f725e3 |
%global alt_grub_target_name i386-efi
|
|
|
f725e3 |
%global alt_platform efi
|
|
|
f725e3 |
%global alt_package_arch efi-ia32
|
|
|
f725e3 |
%global alt_efi_cflags %(echo %{efi_cflags} | \\\
|
|
|
f725e3 |
sed \\\
|
|
|
f725e3 |
-e 's/-m64//g' \\\
|
|
|
f725e3 |
) %{nil}
|
|
|
f725e3 |
%endif
|
|
|
f725e3 |
%ifarch %{ix86}
|
|
|
f725e3 |
%global target_cpu_name %{_arch}
|
|
|
f725e3 |
%global grub_target_name %{_arch}-pc
|
|
|
f725e3 |
|
|
|
f725e3 |
%global legacy_target_cpu_name i386
|
|
|
f725e3 |
%global legacy_package_arch pc
|
|
|
f725e3 |
%global platform pc
|
|
|
f725e3 |
|
|
|
f725e3 |
%global with_legacy_arch 0
|
|
|
f725e3 |
%endif
|
|
|
f725e3 |
|
|
|
f725e3 |
%ifarch aarch64
|
|
|
f725e3 |
%global efiarch aa64
|
|
|
f725e3 |
%global target_cpu_name aarch64
|
|
|
f725e3 |
%global grub_target_name arm64-efi
|
|
|
f725e3 |
%global package_arch efi-aa64
|
|
|
f725e3 |
%endif
|
|
|
f725e3 |
|
|
|
f725e3 |
%ifarch %{arm}
|
|
|
f725e3 |
%global efiarch arm
|
|
|
f725e3 |
%global target_cpu_name arm
|
|
|
f725e3 |
%global grub_target_name arm-efi
|
|
|
f725e3 |
%global package_arch efi-arm
|
|
|
f725e3 |
%endif
|
|
|
f725e3 |
|
|
|
f725e3 |
%global _target_platform %{target_cpu_name}-%{_vendor}-%{_target_os}%{?_gnu}
|
|
|
f725e3 |
%global _alt_target_platform %{alt_target_cpu_name}-%{_vendor}-%{_target_os}%{?_gnu}
|
|
|
f725e3 |
|
|
|
f725e3 |
%ifarch %{efi_arch}
|
|
|
f725e3 |
%global with_efi_arch 1
|
|
|
f725e3 |
%global grubefiname grub%{efiarch}.efi
|
|
|
f725e3 |
%global grubeficdname gcd%{efiarch}.efi
|
|
|
f725e3 |
%global grubefiarch %{target_cpu_name}-efi
|
|
|
f725e3 |
%endif
|
|
|
f725e3 |
|
|
|
f725e3 |
%if 0%{?alt_efi_arch:1}
|
|
|
f725e3 |
%global with_alt_efi_arch 1
|
|
|
f725e3 |
%global grubaltefiname grub%{alt_efi_arch}.efi
|
|
|
f725e3 |
%global grubalteficdname gcd%{alt_efi_arch}.efi
|
|
|
f725e3 |
%global grubaltefiarch %{alt_target_cpu_name}-efi
|
|
|
f725e3 |
%endif
|
|
|
f725e3 |
|
|
|
f725e3 |
# Figure out the right file path to use
|
|
|
f725e3 |
%global efidir %(eval echo $(grep ^ID= /etc/os-release | sed -e 's/^ID=//' -e 's/rhel/redhat/'))
|
|
|
f725e3 |
|
|
|
f725e3 |
%ifnarch %{efi_only}
|
|
|
f725e3 |
%global with_legacy_arch 1
|
|
|
f725e3 |
%global with_legacy_utils 1
|
|
|
f725e3 |
%global grublegacyarch %{legacy_target_cpu_name}-%{platform}
|
|
|
f725e3 |
%global moduledir %{legacy_target_cpu_name}-%{platform}
|
|
|
f725e3 |
%endif
|
|
|
f725e3 |
|
|
|
f725e3 |
%global evr %{epoch}:%{version}-%{release}
|
|
|
f725e3 |
|
|
|
f725e3 |
%if %{with_legacy_arch}
|
|
|
f725e3 |
%global with_efi_common 0
|
|
|
f725e3 |
%global with_legacy_common 1
|
|
|
f725e3 |
%else
|
|
|
f725e3 |
%global with_efi_common 1
|
|
|
f725e3 |
%global with_legacy_common 0
|
|
|
f725e3 |
%endif
|
|
|
f725e3 |
%ifarch %{ix86}
|
|
|
f725e3 |
%global with_efi_arch 0
|
|
|
f725e3 |
%global with_alt_efi_arch 0
|
|
|
f725e3 |
%global with_efi_common 0
|
|
|
f725e3 |
%global with_legacy_common 1
|
|
|
f725e3 |
%global with_legacy_utils 1
|
|
|
f725e3 |
%global with_legacy_arch 0
|
|
|
f725e3 |
%endif
|
|
|
f725e3 |
|
|
|
f725e3 |
%if 0%{with_efi_common}
|
|
|
f725e3 |
%global common_srcdir grub-%{grubefiarch}-%{tarversion}
|
|
|
f725e3 |
%endif
|
|
|
f725e3 |
%if 0%{with_legacy_common}
|
|
|
f725e3 |
%global common_srcdir grub-%{grublegacyarch}-%{tarversion}
|
|
|
f725e3 |
%endif
|
|
|
f725e3 |
|
|
|
f725e3 |
%define define_legacy_variant() \
|
|
|
f725e3 |
%{expand:%%package %{1}} \
|
|
|
f725e3 |
Summary: Bootloader with support for Linux, Multiboot, and more \
|
|
|
f725e3 |
Group: System Environment/Base \
|
|
|
f725e3 |
Requires: %{name}-common = %{evr} \
|
|
|
f725e3 |
Requires: %{name}-tools-minimal = %{evr} \
|
|
|
f725e3 |
Requires: %{name}-%{1}-modules = %{evr} \
|
|
|
f725e3 |
Requires: gettext which file \
|
|
|
f725e3 |
Requires: %{name}-tools-extra = %{evr} \
|
|
|
f725e3 |
Requires: %{name}-tools = %{evr} \
|
|
|
f725e3 |
Requires(pre): dracut \
|
|
|
f725e3 |
Requires(post): dracut \
|
|
|
f725e3 |
%{expand:%%description %{1}} \
|
|
|
f725e3 |
%{desc} \
|
|
|
f725e3 |
This subpackage provides support for %{1} systems. \
|
|
|
f725e3 |
\
|
|
|
f725e3 |
%{expand:%%{?!buildsubdir:%%define buildsubdir grub-%{1}-%{tarversion}}}\
|
|
|
f725e3 |
%{expand:%%package %{1}-modules} \
|
|
|
f725e3 |
Summary: Modules used to build custom grub images \
|
|
|
f725e3 |
Group: System Environment/Base \
|
|
|
f725e3 |
BuildArch: noarch \
|
|
|
f725e3 |
Requires: %{name}-common = %{evr} \
|
|
|
f725e3 |
%{expand:%%description %{1}-modules} \
|
|
|
f725e3 |
%{desc} \
|
|
|
f725e3 |
This subpackage provides support for rebuilding your own grub.efi. \
|
|
|
f725e3 |
\
|
|
|
f725e3 |
%{expand:%%{?!buildsubdir:%%define buildsubdir grub-%{1}-%{tarversion}}}\
|
|
|
f725e3 |
%{expand:%%package %{1}-tools} \
|
|
|
f725e3 |
Summary: Support tools for GRUB. \
|
|
|
f725e3 |
Group: System Environment/Base \
|
|
|
f725e3 |
Requires: gettext os-prober which file system-logos \
|
|
|
f725e3 |
Requires: %{name}-common = %{evr} \
|
|
|
f725e3 |
Requires: %{name}-tools-minimal = %{evr} \
|
|
|
f725e3 |
Requires: os-prober >= 1.58-11 \
|
|
|
f725e3 |
Requires: gettext which file \
|
|
|
f725e3 |
\
|
|
|
f725e3 |
%{expand:%%description %{1}-tools} \
|
|
|
f725e3 |
%{desc} \
|
|
|
f725e3 |
This subpackage provides tools for support of %{1} platforms. \
|
|
|
f725e3 |
%{nil}
|
|
|
f725e3 |
|
|
|
f725e3 |
%define define_efi_variant(p) \
|
|
|
f725e3 |
%{expand:%%package %{1}} \
|
|
|
f725e3 |
Summary: GRUB for EFI systems. \
|
|
|
f725e3 |
Group: System Environment/Base \
|
|
|
f725e3 |
Requires: %{name}-common = %{evr} \
|
|
|
f725e3 |
Requires: %{name}-tools-minimal >= %{evr} \
|
|
|
f725e3 |
Requires: %{name}-tools-extra = %{evr} \
|
|
|
f725e3 |
Requires: %{name}-tools = %{evr} \
|
|
|
f725e3 |
%{-p:Provides: %{name}-efi = %{evr}} \
|
|
|
f725e3 |
%{-p:Obsoletes: %{name}-efi <= %{flagday}} \
|
|
|
f725e3 |
\
|
|
|
f725e3 |
%{expand:%%description %{1}} \
|
|
|
f725e3 |
%{desc} \
|
|
|
f725e3 |
This subpackage provides support for %{1} systems. \
|
|
|
f725e3 |
\
|
|
|
f725e3 |
%{expand:%%{?!buildsubdir:%%define buildsubdir grub-%{1}-%{tarversion}}}\
|
|
|
f725e3 |
%{expand:%%package %{1}-modules} \
|
|
|
f725e3 |
Summary: Modules used to build custom grub.efi images \
|
|
|
f725e3 |
Group: System Environment/Base \
|
|
|
f725e3 |
BuildArch: noarch \
|
|
|
f725e3 |
Requires: %{name}-common = %{evr} \
|
|
|
f725e3 |
%{-p:Provides: %{name}-efi-modules = %{evr}} \
|
|
|
f725e3 |
%{-p:Obsoletes: %{name}-efi-modules <= %{flagday}} \
|
|
|
f725e3 |
%{expand:%%description %{1}-modules} \
|
|
|
f725e3 |
%{desc} \
|
|
|
f725e3 |
This subpackage provides support for rebuilding your own grub.efi. \
|
|
|
f725e3 |
\
|
|
|
f725e3 |
%{expand:%%package %{1}-cdboot} \
|
|
|
f725e3 |
Summary: Files used to boot removeable media with EFI \
|
|
|
f725e3 |
Group: System Environment/Base \
|
|
|
f725e3 |
Requires: %{name}-common = %{evr} \
|
|
|
f725e3 |
%{expand:%%description %{1}-cdboot} \
|
|
|
f725e3 |
%{desc} \
|
|
|
f725e3 |
This subpackage provides optional components of grub used with removeable media on %{1} systems.\
|
|
|
f725e3 |
%{nil}
|
|
|
f725e3 |
|
|
|
f725e3 |
%global do_common_setup() \
|
|
|
f725e3 |
%setup -D -q -T -a 0 -n grub-%{tarversion} \
|
|
|
f725e3 |
cd grub-%{tarversion} \
|
|
|
f725e3 |
rm -fv docs/*.info \
|
|
|
f725e3 |
cp %{SOURCE5} unifont.pcf.gz \
|
|
|
f725e3 |
cp %{SOURCE6} .gitignore \
|
|
|
f725e3 |
git init \
|
|
|
f725e3 |
echo '![[:digit:]][[:digit:]]_*.in' > util/grub.d/.gitignore \
|
|
|
f725e3 |
echo '!*.[[:digit:]]' > util/.gitignore \
|
|
|
f725e3 |
git config user.email "%{name}-owner@fedoraproject.org" \
|
|
|
f725e3 |
git config user.name "Fedora Ninjas" \
|
|
|
f725e3 |
git config gc.auto 0 \
|
|
|
f725e3 |
git add . \
|
|
|
f725e3 |
git commit -a -q -m "%{tarversion} baseline." \
|
|
|
f725e3 |
git am %%{patches}
|
|
|
f725e3 |
git config --unset user.email \
|
|
|
f725e3 |
git config --unset user.name \
|
|
|
f725e3 |
cd .. \
|
|
|
f725e3 |
%{nil}
|
|
|
f725e3 |
|
|
|
f725e3 |
%global do_setup() \
|
|
|
f725e3 |
cp -al grub-%{tarversion} grub-%{1}-%{tarversion} \
|
|
|
f725e3 |
%{nil}
|
|
|
f725e3 |
|
|
|
f725e3 |
%global do_common_build() \
|
|
|
f725e3 |
cd %{common_srcdir} \
|
|
|
f725e3 |
makeinfo --info --no-split -I docs -o docs/grub-dev.info \\\
|
|
|
f725e3 |
docs/grub-dev.texi \
|
|
|
f725e3 |
makeinfo --info --no-split -I docs -o docs/grub.info \\\
|
|
|
f725e3 |
docs/grub.texi \
|
|
|
f725e3 |
makeinfo --html --no-split -I docs -o docs/grub-dev.html \\\
|
|
|
f725e3 |
docs/grub-dev.texi \
|
|
|
f725e3 |
makeinfo --html --no-split -I docs -o docs/grub.html \\\
|
|
|
f725e3 |
docs/grub.texi \
|
|
|
f725e3 |
cd .. \
|
|
|
f725e3 |
%{nil}
|
|
|
f725e3 |
|
|
|
f725e3 |
%define do_efi_configure() \
|
|
|
f725e3 |
./autogen.sh \
|
|
|
f725e3 |
%configure \\\
|
|
|
f725e3 |
%{cc_equals} \\\
|
|
|
f725e3 |
CFLAGS="%{2}" \\\
|
|
|
f725e3 |
TARGET_LDFLAGS=-static \\\
|
|
|
f725e3 |
--with-platform=efi \\\
|
|
|
f725e3 |
--target=%{1} \\\
|
|
|
f725e3 |
--with-grubdir=%{name} \\\
|
|
|
f725e3 |
--program-transform-name=s,grub,%{name}, \\\
|
|
|
f725e3 |
--disable-grub-mount \\\
|
|
|
f725e3 |
--disable-werror \
|
|
|
f725e3 |
%{nil}
|
|
|
f725e3 |
|
|
|
f725e3 |
%define do_efi_build_modules() \
|
|
|
f725e3 |
make %{?_smp_mflags} ascii.h widthspec.h \
|
|
|
f725e3 |
make %{?_smp_mflags} -C grub-core \
|
|
|
f725e3 |
%{nil}
|
|
|
f725e3 |
|
|
|
f725e3 |
%define do_efi_build_all() \
|
|
|
f725e3 |
make %{?_smp_mflags} \
|
|
|
f725e3 |
%{nil}
|
|
|
f725e3 |
|
|
|
f725e3 |
%define do_efi_link_utils() \
|
|
|
f725e3 |
for x in grub-mkimage ; do \\\
|
|
|
f725e3 |
ln ../grub-%{1}-%{tarversion}/${x} ./ ; \\\
|
|
|
f725e3 |
done \
|
|
|
f725e3 |
%{nil}
|
|
|
f725e3 |
|
|
|
f725e3 |
%ifarch x86_64 aarch64
|
|
|
f725e3 |
%define mkimage() \
|
|
|
f725e3 |
%{4}./grub-mkimage -O %{1} -o %{2}.orig \\\
|
|
|
f725e3 |
-p /EFI/%{efidir} -d grub-core ${GRUB_MODULES} \
|
|
|
f725e3 |
%{4}./grub-mkimage -O %{1} -o %{3}.orig \\\
|
|
|
f725e3 |
-p /EFI/BOOT -d grub-core ${GRUB_MODULES} \
|
|
|
f725e3 |
%{expand:%%{pesign -s -i %{2}.orig -o %{2} -a %{5} -c %{6} -n %{7}}} \
|
|
|
f725e3 |
%{expand:%%{pesign -s -i %{3}.orig -o %{3} -a %{5} -c %{6} -n %{7}}} \
|
|
|
f725e3 |
%{nil}
|
|
|
f725e3 |
%else
|
|
|
f725e3 |
%define mkimage() \
|
|
|
f725e3 |
%{4}./grub-mkimage -O %{1} -o %{2} \\\
|
|
|
f725e3 |
-p /EFI/%{efidir} -d grub-core ${GRUB_MODULES} \
|
|
|
f725e3 |
%{4}./grub-mkimage -O %{1} -o %{3} \\\
|
|
|
f725e3 |
-p /EFI/BOOT -d grub-core ${GRUB_MODULES} \
|
|
|
f725e3 |
%{nil}
|
|
|
f725e3 |
%endif
|
|
|
f725e3 |
|
|
|
f725e3 |
%define do_efi_build_images() \
|
|
|
f725e3 |
GRUB_MODULES=" all_video boot btrfs cat chain configfile echo \\\
|
|
|
f725e3 |
efifwsetup efinet ext2 fat font gfxmenu gfxterm \\\
|
|
|
f725e3 |
gzio halt hfsplus iso9660 jpeg loadenv loopback \\\
|
|
|
f725e3 |
lvm mdraid09 mdraid1x minicmd normal part_apple \\\
|
|
|
f725e3 |
part_msdos part_gpt password_pbkdf2 png reboot \\\
|
|
|
752baa |
regexp search search_fs_uuid search_fs_file \\\
|
|
|
f725e3 |
search_label serial sleep syslinuxcfg test tftp \\\
|
|
|
f725e3 |
video xfs" \
|
|
|
f725e3 |
GRUB_MODULES+=%{efi_modules} \
|
|
|
f725e3 |
%{expand:%%{mkimage %{1} %{2} %{3} %{4} %{5} %{6} %{7}}} \
|
|
|
f725e3 |
%{nil}
|
|
|
f725e3 |
|
|
|
f725e3 |
%define do_primary_efi_build() \
|
|
|
f725e3 |
cd grub-%{1}-%{tarversion} \
|
|
|
f725e3 |
%{expand:%%do_efi_configure %%{4} %%{5}} \
|
|
|
f725e3 |
%do_efi_build_all \
|
|
|
f725e3 |
%{expand:%%do_efi_build_images %{grub_target_name} %{2} %{3} ./ %{6} %{7} %{8}}\
|
|
|
f725e3 |
cd .. \
|
|
|
f725e3 |
%{nil}
|
|
|
f725e3 |
|
|
|
f725e3 |
%define do_alt_efi_build() \
|
|
|
f725e3 |
cd grub-%{1}-%{tarversion} \
|
|
|
f725e3 |
%{expand:%%do_efi_configure %%{4} %%{5}} \
|
|
|
f725e3 |
%do_efi_build_modules \
|
|
|
f725e3 |
%{expand:%%do_efi_link_utils %{grubefiarch}} \
|
|
|
f725e3 |
%{expand:%%do_efi_build_images %{alt_grub_target_name} %{2} %{3} ../grub-%{grubefiarch}-%{tarversion}/ %{6} %{7} %{8}} \
|
|
|
f725e3 |
cd .. \
|
|
|
f725e3 |
%{nil}
|
|
|
f725e3 |
|
|
|
f725e3 |
%define do_legacy_build() \
|
|
|
f725e3 |
cd grub-%{1}-%{tarversion} \
|
|
|
f725e3 |
./autogen.sh \
|
|
|
f725e3 |
%configure \\\
|
|
|
f725e3 |
%{cc_equals} \\\
|
|
|
f725e3 |
CFLAGS="%{legacy_cflags}" \\\
|
|
|
f725e3 |
TARGET_LDFLAGS=-static \\\
|
|
|
f725e3 |
--with-platform=%{platform} \\\
|
|
|
f725e3 |
--target=%{_target_platform} \\\
|
|
|
f725e3 |
--with-grubdir=%{name} \\\
|
|
|
f725e3 |
--program-transform-name=s,grub,%{name}, \\\
|
|
|
f725e3 |
--disable-grub-mount \\\
|
|
|
f725e3 |
--disable-werror \
|
|
|
f725e3 |
make %{?_smp_mflags} \
|
|
|
f725e3 |
cd .. \
|
|
|
f725e3 |
%{nil}
|
|
|
f725e3 |
|
|
|
f725e3 |
%define do_alt_efi_install() \
|
|
|
f725e3 |
cd grub-%{1}-%{tarversion} \
|
|
|
f725e3 |
install -d -m 755 $RPM_BUILD_ROOT/usr/lib/grub/%{grubaltefiarch}/ \
|
|
|
f725e3 |
find . '(' -iname gdb_grub \\\
|
|
|
f725e3 |
-o -iname kernel.exec \\\
|
|
|
f725e3 |
-o -iname kernel.img \\\
|
|
|
f725e3 |
-o -iname config.h \\\
|
|
|
f725e3 |
-o -iname gmodule.pl \\\
|
|
|
f725e3 |
-o -iname modinfo.sh \\\
|
|
|
f725e3 |
-o -iname '*.lst' \\\
|
|
|
f725e3 |
-o -iname '*.mod' \\\
|
|
|
f725e3 |
')' \\\
|
|
|
f725e3 |
-exec cp {} $RPM_BUILD_ROOT/usr/lib/grub/%{grubaltefiarch}/ \\\; \
|
|
|
f725e3 |
find $RPM_BUILD_ROOT -iname "*.mod*" -exec chmod a-x {} '\;' \
|
|
|
f725e3 |
install -m 700 %{2} $RPM_BUILD_ROOT/boot/efi/EFI/%{efidir}/%{2} \
|
|
|
f725e3 |
install -m 700 %{3} $RPM_BUILD_ROOT/boot/efi/EFI/%{efidir}/%{3} \
|
|
|
f725e3 |
cd .. \
|
|
|
f725e3 |
%{nil}
|
|
|
f725e3 |
|
|
|
f725e3 |
%define do_efi_install() \
|
|
|
f725e3 |
cd grub-%{1}-%{tarversion} \
|
|
|
f725e3 |
install -m 700 -d $RPM_BUILD_ROOT/boot/efi/EFI/%{efidir}/ \
|
|
|
f725e3 |
install -m 700 -d $RPM_BUILD_ROOT/boot/grub2/ \
|
|
|
f725e3 |
make DESTDIR=$RPM_BUILD_ROOT install \
|
|
|
f725e3 |
if [ -f $RPM_BUILD_ROOT%{_infodir}/grub.info ]; then \
|
|
|
f725e3 |
rm -f $RPM_BUILD_ROOT%{_infodir}/grub.info \
|
|
|
f725e3 |
fi \
|
|
|
f725e3 |
if [ -f $RPM_BUILD_ROOT%{_infodir}/grub-dev.info ]; then \
|
|
|
f725e3 |
rm -f $RPM_BUILD_ROOT%{_infodir}/grub-dev.info \
|
|
|
f725e3 |
fi \
|
|
|
f725e3 |
find $RPM_BUILD_ROOT -iname "*.module" -exec chmod a-x {} '\;' \
|
|
|
f725e3 |
touch $RPM_BUILD_ROOT/boot/efi/EFI/%{efidir}/grub.cfg \
|
|
|
f725e3 |
ln -sf ../boot/efi/EFI/%{efidir}/grub.cfg \\\
|
|
|
f725e3 |
$RPM_BUILD_ROOT%{_sysconfdir}/%{name}-efi.cfg \
|
|
|
f725e3 |
install -m 700 %{2} $RPM_BUILD_ROOT/boot/efi/EFI/%{efidir}/%{2} \
|
|
|
f725e3 |
install -m 700 %{3} $RPM_BUILD_ROOT/boot/efi/EFI/%{efidir}/%{3} \
|
|
|
f725e3 |
install -D -m 700 unicode.pf2 \\\
|
|
|
f725e3 |
$RPM_BUILD_ROOT/boot/efi/EFI/%{efidir}/fonts/unicode.pf2\
|
|
|
f725e3 |
cd .. \
|
|
|
f725e3 |
%{nil}
|
|
|
f725e3 |
|
|
|
f725e3 |
%define do_legacy_install() \
|
|
|
f725e3 |
cd grub-%{1}-%{tarversion} \
|
|
|
f725e3 |
make DESTDIR=$RPM_BUILD_ROOT install \
|
|
|
f725e3 |
if [ -f $RPM_BUILD_ROOT%{_infodir}/grub.info ]; then \
|
|
|
f725e3 |
rm -f $RPM_BUILD_ROOT%{_infodir}/grub.info \
|
|
|
f725e3 |
fi \
|
|
|
f725e3 |
if [ -f $RPM_BUILD_ROOT%{_infodir}/grub-dev.info ]; then \
|
|
|
f725e3 |
rm -f $RPM_BUILD_ROOT%{_infodir}/grub-dev.info \
|
|
|
f725e3 |
fi \
|
|
|
f725e3 |
touch ${RPM_BUILD_ROOT}/boot/%{name}/grub.cfg \
|
|
|
f725e3 |
ln -s ../boot/%{name}/grub.cfg \\\
|
|
|
f725e3 |
${RPM_BUILD_ROOT}%{_sysconfdir}/grub2.cfg \
|
|
|
f725e3 |
cd .. \
|
|
|
f725e3 |
if [ -f $RPM_BUILD_ROOT/%{_libdir}/grub/%{1}/grub2.chrp ]; then \
|
|
|
f725e3 |
mv $RPM_BUILD_ROOT/%{_libdir}/grub/%{1}/grub2.chrp \\\
|
|
|
f725e3 |
$RPM_BUILD_ROOT/%{_libdir}/grub/%{1}/grub.chrp \
|
|
|
f725e3 |
fi \
|
|
|
f725e3 |
%{nil}
|
|
|
f725e3 |
|
|
|
f725e3 |
%define do_common_install() \
|
|
|
f725e3 |
cd %{common_srcdir} \
|
|
|
f725e3 |
install -d -m 0755 \\\
|
|
|
f725e3 |
$RPM_BUILD_ROOT%{_datarootdir}/locale/en\@quot \\\
|
|
|
f725e3 |
$RPM_BUILD_ROOT%{_datarootdir}/locale/en \\\
|
|
|
f725e3 |
$RPM_BUILD_ROOT%{_infodir}/ \
|
|
|
f725e3 |
cp -a $RPM_BUILD_ROOT%{_datarootdir}/locale/en\@quot \\\
|
|
|
f725e3 |
$RPM_BUILD_ROOT%{_datarootdir}/locale/en \
|
|
|
f725e3 |
cp docs/grub.info $RPM_BUILD_ROOT%{_infodir}/%{name}.info \
|
|
|
f725e3 |
cp docs/grub-dev.info \\\
|
|
|
f725e3 |
$RPM_BUILD_ROOT%{_infodir}/%{name}-dev.info \
|
|
|
f725e3 |
# Ghost config file \
|
|
|
f725e3 |
install -d -m 0700 ${RPM_BUILD_ROOT}/boot/efi/EFI/%{efidir}/ \
|
|
|
f725e3 |
install -d -m 0700 ${RPM_BUILD_ROOT}/boot/grub2/ \
|
|
|
f725e3 |
install -d -m 0755 ${RPM_BUILD_ROOT}/boot/%{name}/themes/system \
|
|
|
f725e3 |
install -d -m 0755 ${RPM_BUILD_ROOT}%{_sysconfdir}/default \
|
|
|
f725e3 |
install -d -m 0755 ${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig \
|
|
|
f725e3 |
touch ${RPM_BUILD_ROOT}%{_sysconfdir}/default/grub \
|
|
|
f725e3 |
ln -sf ../default/grub \\\
|
|
|
f725e3 |
${RPM_BUILD_ROOT}%{_sysconfdir}/sysconfig/grub \
|
|
|
f725e3 |
ln -sf ../efi/EFI/%{efidir}/grubenv \\\
|
|
|
f725e3 |
$RPM_BUILD_ROOT/boot/grub2/grubenv \
|
|
|
f725e3 |
cd .. \
|
|
|
f725e3 |
%{nil}
|
|
|
f725e3 |
|
|
|
f725e3 |
%define define_legacy_variant_files() \
|
|
|
f725e3 |
%{expand:%%files %{1}} \
|
|
|
f725e3 |
%defattr(-,root,root,-) \
|
|
|
f725e3 |
%config(noreplace) %{_sysconfdir}/%{name}.cfg \
|
|
|
f725e3 |
%ghost %config(noreplace) /boot/%{name}/grub.cfg \
|
|
|
f725e3 |
\
|
|
|
f725e3 |
%{expand:%%files %{1}-modules} \
|
|
|
f725e3 |
%defattr(-,root,root) \
|
|
|
f725e3 |
%dir %{_libdir}/grub/%{2}/ \
|
|
|
f725e3 |
%{_libdir}/grub/%{2}/* \
|
|
|
f725e3 |
%exclude %{_libdir}/grub/%{2}/*.module \
|
|
|
f725e3 |
%exclude %{_libdir}/grub/%{2}/{boot,boot_hybrid,cdboot,diskboot,lzma_decompress,pxeboot}.{image,img} \
|
|
|
f725e3 |
%exclude %{_libdir}/grub/%{2}/*.o \
|
|
|
f725e3 |
%{nil}
|
|
|
f725e3 |
|
|
|
f725e3 |
%define define_efi_variant_files() \
|
|
|
f725e3 |
%{expand:%%files %{1}} \
|
|
|
f725e3 |
%defattr(-,root,root,-) \
|
|
|
f725e3 |
%config(noreplace) %{_sysconfdir}/%{name}-efi.cfg \
|
|
|
f725e3 |
%dir %attr(0700,root,root)/boot/efi/EFI/%{efidir} \
|
|
|
f725e3 |
%attr(0700,root,root)/boot/efi/EFI/%{efidir}/%{2} \
|
|
|
f725e3 |
%attr(0700,root,root)/boot/efi/EFI/%{efidir}/fonts \
|
|
|
f725e3 |
%ghost %config(noreplace) %attr(0700,root,root)/boot/efi/EFI/%{efidir}/grub.cfg \
|
|
|
f725e3 |
/boot/grub2/grubenv \
|
|
|
f725e3 |
%ghost %config(noreplace) %attr(0700,root,root)/boot/efi/EFI/%{efidir}/grubenv \
|
|
|
f725e3 |
\
|
|
|
f725e3 |
%{expand:%%files %{1}-modules} \
|
|
|
f725e3 |
%defattr(-,root,root,-) \
|
|
|
f725e3 |
%dir %{_libdir}/grub/%{6}/ \
|
|
|
f725e3 |
%{_libdir}/grub/%{6}/* \
|
|
|
f725e3 |
%exclude %{_libdir}/grub/%{6}/*.module \
|
|
|
f725e3 |
\
|
|
|
f725e3 |
%{expand:%%files %{1}-cdboot} \
|
|
|
f725e3 |
%defattr(-,root,root,-) \
|
|
|
f725e3 |
%attr(0700,root,root)/boot/efi/EFI/%{efidir}/%{3} \
|
|
|
f725e3 |
%attr(0700,root,root)/boot/efi/EFI/%{efidir}/fonts \
|
|
|
f725e3 |
%{nil}
|