]> TLD Linux GIT Repositories - packages/grub2.git/blobdiff - grub2.spec
- merged 2.12 from PLD
[packages/grub2.git] / grub2.spec
index 851a6306d089a2d4aa8acb03a882bcde6a55ffe8..4b4f121e6305eba10d20d829e4236a41e23ba921 100644 (file)
 #   - put grub-emu to subpackage if it is fixed
 #
 # Conditional build:
-%bcond_with    grubemu # build grub-emu debugging utility
-%bcond_without efiemu  # build efiemu runtimes
-%bcond_without pc      # do not build for PC BIOS platform
-%bcond_without efi     # do not build for EFI platform
-
-%ifnarch %{ix86} %{x8664}
-%undefine      with_pc
+%bcond_with    grubemu         # grub-emu debugging utility
+%bcond_without efiemu          # efiemu runtimes (64-bit efiemu on 32-bit boot platform)
+%bcond_with    unifont         # unifont based fonts
+%bcond_without arc             # MIPS ARC platform support
+%bcond_without coreboot        # coreboot/linuxbios platform support (x86/arm specific)
+%bcond_without efi             # EFI platform support
+%bcond_without ieee1275        # ieee1275 platform support (x86/ppc/sparc specific)
+%bcond_without loongson        # MIPS loongson platform support (mipsel specific)
+%bcond_without multiboot       # multiboot platform support (x86/arm specific)
+%bcond_without pc              # PC BIOS platform support (x86 specific)
+%bcond_without qemu            # qemu platform support (x86/mips specific)
+%bcond_without uboot           # ARM uBoot platform support
+%bcond_without xen             # Xen platform support (x86 specific)
+%bcond_without xen_pvh         # Xen PVH platform support (x86 specific)
+
+%ifnarch mips mipsel mips64 mips64el
+%undefine      with_arc
+%endif
+%ifnarch %{ix86} %{x8664} x32 %{arm}
+%undefine      with_coreboot
 %endif
-%ifnarch %{ix86} %{x8664}
+%ifnarch %{ix86} %{x8664} x32 %{arm} aarch64 ia64
 %undefine      with_efi
 %endif
+%ifnarch %{ix86} %{x8664} x32 ppc ppc64 sparc64
+%undefine      with_ieee1275
+%endif
+%ifnarch mipsel mips64el
+%undefine      with_loongson
+%endif
+%ifnarch %{ix86} %{x8664} x32
+%undefine      with_multiboot
+%undefine      with_pc
+%undefine      with_xen
+%undefine      with_xen_pvh
+%endif
+%ifnarch %{ix86} mips mipsel mips64 mips64el
+%undefine      with_qemu
+%endif
+%ifnarch %{arm}
+%undefine      with_uboot
+%endif
 
-%ifnarch %{x8664}
+# FIXME: x86_64-xen build is broken (as of 2.06)
+%ifarch %{x8664} x32
+%undefine      with_xen
+%endif
+
+# these require unifont
+%if %{without unifont}
+%undefine      with_coreboot
+%undefine      with_loongson
+%undefine      with_qemu
+%endif
+
+%ifnarch %{x8664} x32
 # non-x86_64 arch doesn't support this
 %undefine      with_efiemu
 %endif
 
 # the 'most natural' platform should go last
-%ifarch %{ix86} %{x8664}
-%define                platforms %{?with_efi:efi} %{?with_pc:pc}
+%ifarch %{ix86} %{x8664} x32
+%define                platforms %{?with_coreboot:coreboot} %{?with_ieee1275:ieee1275} %{?with_multiboot:multiboot} %{?with_qemu:qemu} %{?with_xen:xen} %{?with_xen_pvh:xen_pvh} %{?with_efi:efi} %{?with_pc:pc}
+%endif
+%ifarch %{arm}
+%define                platforms %{?with_coreboot:coreboot} %{?with_efi:efi} %{?with_uboot:uboot}
+%endif
+%ifarch aarch64 ia64 riscv32 riscv64
+%define                platforms efi
+%endif
+%ifarch mips mips64
+%define                platforms arc
+%endif
+%ifarch mipsel mips64el
+%define                platforms %{?with_arc:arc} %{?with_loongson:loongson}
+%endif
+%ifarch ppc ppc64 sparc64
+%define                platforms ieee1275
+%endif
+
+%ifarch %{ix86}
+%define        coreboot_arch   i386
+%define        efi_arch        i386
+%define        ieee1275_arch   i386
+%define        qemu_arch       i386
+%define        qemu_plat       qemu
+%define        xen_arch        i386
+%endif
+%ifarch %{x8664} x32
+%define        coreboot_arch   i386
+%define        efi_arch        x86_64
+%define        ieee1275_arch   i386
+%define        qemu_arch       i386
+%define        qemu_plat       qemu
+%define        xen_arch        x86_64
+%endif
+%ifarch %{arm}
+%define        coreboot_arch   arm
+%define        efi_arch        arm
+%endif
+%ifarch aarch64
+%define        efi_arch        arm64
+%endif
+%ifarch ia64
+%define        efi_arch        ia64
+%endif
+%ifarch mips mips64
+%define        arc_arch        mips
+%define        qemu_arch       mips
+%define        qemu_plat       qemu_mips
+%endif
+%ifarch mipsel mips64el
+%define        arc_arch        mipsel
+%define        qemu_arch       mipsel
+%define        qemu_plat       qemu_mips
+%endif
+%ifarch ppc ppc64
+%define        ieee1275_arch   powerpc
+%endif
+%ifarch riscv32
+%define        efi_arch        riscv32
+%endif
+%ifarch riscv64
+%define        efi_arch        riscv64
+%endif
+%ifarch sparc64
+%define        ieee1275_arch   sparc64
 %endif
 
-%define                rel     1
 Summary:       GRand Unified Bootloader
-Summary(de.UTF-8):     GRUB2 - ein Bootloader für x86
-Summary(hu.UTF-8):     GRUB2 - rendszerbetöltő x86 gépekhez
-Summary(pl.UTF-8):     GRUB2 - bootloader dla x86
+Summary(de.UTF-8):     GRUB2 - ein Bootloader für x86 und ppc
+Summary(hu.UTF-8):     GRUB2 - rendszerbetöltő x86 és ppc gépekhez
+Summary(pl.UTF-8):     GRUB2 - bootloader dla x86 i ppc
 Summary(pt_BR.UTF-8):  Gerenciador de inicialização GRUB2
 Name:          grub2
-Version:       2.02
-Release:       3
+Version:       2.12
+Release:       1
 License:       GPL v2
 Group:         Base
-Source0:       ftp://ftp.gnu.org/gnu/grub/grub-%{version}.tar.xz
-# Source0-md5: 8a4a2a95aac551fb0fba860ceabfa1d3
+Source0:       https://ftp.gnu.org/gnu/grub/grub-%{version}.tar.xz
+# Source0-md5: 60c564b1bdc39d8e43b3aab4bc0fb140
 Source1:       update-grub
 Source2:       update-grub.8
 Source3:       grub.sysconfig
@@ -54,56 +160,64 @@ Patch4:            tld-mkconfigdir.patch
 Patch5:                grub-mkconfig-diagnostics.patch
 Patch6:                posix.patch
 Patch7:                %{name}-fonts_path.patch
-Patch8:                add-vlan-tag-support.patch
 Patch9:                just-say-linux.patch
 Patch10:       ignore-kernel-symlinks.patch
 Patch11:       initrd-search.patch
 Patch12:       %{name}-cfg.patch
-Patch13:       efi-net-fix.patch
 Patch14:       blscfg.patch
 Patch15:       restricted.patch
-Patch16:       gcc8.patch
 URL:           http://www.gnu.org/software/grub/
-BuildRequires: autoconf >= 2.53
+BuildRequires: autoconf >= 2.64
 BuildRequires: automake >= 1:1.11.1-1
-BuildRequires: bison
-BuildRequires: device-mapper-devel
+BuildRequires: bison >= 2.3
+BuildRequires: device-mapper-devel >= 1.02.34
 BuildRequires: flex >= 2.5.35
 BuildRequires: fonts-TTF-DejaVu
-BuildRequires: freetype-devel >= 2
+%if %{with unifont}
+BuildRequires: fonts-misc-unifont
+%endif
+BuildRequires: freetype-devel >= 2.1.5
 BuildRequires: gawk
-BuildRequires: gcc >= 5:3.4
-BuildRequires: gettext-tools
+BuildRequires: gcc >= 6:5.1
+%ifarch %{x8664} x32
+%if %{with efiemu} || %{with coreboot} || %{with ieee1275} || %{with multiboot} || %{with pc} || %{with xen_pvh}
+BuildRequires: gcc-multilib-32 >= 6:5.1
+%endif
+%endif
+%ifarch x32
+%if %{with efiemu} || %{with efi}
+BuildRequires: gcc-multilib-64 >= 6:5.1
+%endif
+%endif
+BuildRequires: gettext-tools >= 0.18.3
 BuildRequires: glibc-localedb-all
 BuildRequires: glibc-static
 BuildRequires: help2man
-BuildRequires: libfuse-devel
+BuildRequires: libfuse3-devel
 BuildRequires: libtool
 BuildRequires: ncurses-devel
-BuildRequires: python
-BuildRequires: python-modules
+BuildRequires: pkgconfig
+BuildRequires: python3
+BuildRequires: python3-modules
 BuildRequires: rpm >= 4.4.9-56
+BuildRequires: rpm-build >= 4.6
 BuildRequires: rpmbuild(macros) >= 1.213
 BuildRequires: sed >= 4.0
 BuildRequires: tar >= 1:1.22
 BuildRequires: texinfo
 BuildRequires: xz
 BuildRequires: xz-devel
-%ifarch %{x8664}
-BuildRequires: /usr/lib/libc.so
-BuildRequires: gcc-multilib
-%endif
 Requires:      %{name}-platform = %{version}-%{release}
 Requires:      issue
 Requires:      which
-%ifarch %{ix86} %{x8664}
+%ifarch %{ix86} %{x8664} x32
 Suggests:      %{name}-platform-pc
 %endif
 Suggests:      cdrkit-mkisofs
 Suggests:      os-prober
 Provides:      bootloader
 Conflicts:     grub
-ExclusiveArch: %{ix86} %{x8664}
+ExclusiveArch: %{ix86} %{x8664} x32 %{arm} aarch64 ia64 mips mipsel mips64 mips64el ppc ppc64 riscv32 riscv64 sparc64
 BuildRoot:     %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
 
 %define                _sbindir        /sbin
@@ -213,7 +327,9 @@ avançados e que querem mais recursos de seu boot loader.
 Summary:       bash-completion for GRUB
 Summary(pl.UTF-8):     Bashowe uzupełnianie nazw dla GRUB-a
 Group:         Applications/Shells
+Requires:      %{name} = %{version}-%{release}
 Requires:      bash-completion
+BuildArch:     noarch
 
 %description -n bash-completion-%{name}
 This package provides bash-completion for GRUB.
@@ -221,22 +337,50 @@ This package provides bash-completion for GRUB.
 %description -n bash-completion-%{name} -l pl.UTF-8
 Pakiet ten dostarcza bashowe uzupełnianie nazw dla GRUB-a.
 
-%package platform-pc
-Summary:       PC BIOS platform support for GRUB
-Summary(pl.UTF-8):     Obsługa platformy PC BIOS dla GRUB-a
+%package fonts
+Summary:       Fonts for GRUB
+Summary(pl.UTF-8):     Fonty dla GRUB-a
+Group:         Base
+Requires:      %{name} = %{version}-%{release}
+
+%description fonts
+Fonts for GRUB.
+
+%description fonts -l pl.UTF-8
+Fonty dla GRUB-a.
+
+%package platform-arc
+Summary:       MIPS ARC platform support for GRUB
+Summary(pl.UTF-8):     Obsługa platformy MIPS ARC dla GRUB-a
 Group:         Base
+Requires:      %{name} = %{version}-%{release}
 Provides:      %{name}-platform = %{version}-%{release}
 
-%description platform-pc
-PC BIOS platform support for GRUB.
+%description platform-arc
+MIPS ARC platform support for GRUB.
 
-%description platform-pc -l pl.UTF-8
-Obsługa platformy PC BIOS dla GRUB-a.
+%description platform-arc -l pl.UTF-8
+Obsługa platformy MIPS ARC dla GRUB-a.
+
+%package platform-coreboot
+Summary:       Coreboot (LinuxBIOS) platform support for GRUB
+Summary(pl.UTF-8):     Obsługa platformy Coreboot (LinuxBIOS) dla GRUB-a
+Group:         Base
+Requires:      %{name} = %{version}-%{release}
+Requires:      %{name}-fonts = %{version}-%{release}
+Provides:      %{name}-platform = %{version}-%{release}
+
+%description platform-coreboot
+Coreboot (LinuxBIOS) platform support for GRUB.
+
+%description platform-coreboot -l pl.UTF-8
+Obsługa platformy Coreboot (LinuxBIOS) dla GRUB-a.
 
 %package platform-efi
 Summary:       (U)EFI platform support for GRUB
 Summary(pl.UTF-8):     Obsługa platformy (U)EFI dla GRUB-a
 Group:         Base
+Requires:      %{name} = %{version}-%{release}
 Suggests:      efibootmgr
 Provides:      %{name}-platform = %{version}-%{release}
 
@@ -246,6 +390,112 @@ Provides: %{name}-platform = %{version}-%{release}
 %description platform-efi -l pl.UTF-8
 Obsługa platformy (U)EFI dla GRUB-a.
 
+%package platform-ieee1275
+Summary:       IEEE 1275 (OpenFirmware) platform support for GRUB
+Summary(pl.UTF-8):     Obsługa platformy IEEE 1275 (OpenFirmware) dla GRUB-a
+Group:         Base
+Requires:      %{name} = %{version}-%{release}
+Provides:      %{name}-platform = %{version}-%{release}
+
+%description platform-ieee1275
+IEEE 1275 (OpenFirmware) platform support for GRUB.
+
+%description platform-ieee1275 -l pl.UTF-8
+Obsługa platformy IEEE 1275 (OpenFirmware) dla GRUB-a.
+
+%package platform-loongson
+Summary:       MIPS Loongson platform support for GRUB
+Summary(pl.UTF-8):     Obsługa platformy MIPS Loongson dla GRUB-a
+Group:         Base
+Requires:      %{name} = %{version}-%{release}
+Requires:      %{name}-fonts = %{version}-%{release}
+Provides:      %{name}-platform = %{version}-%{release}
+
+%description platform-loongson
+MIPS Loongson (yeelong, fuloong) platform support for GRUB.
+
+%description platform-loongson -l pl.UTF-8
+Obsługa platformy MIPS Loongson (yeelong, fuloong) dla GRUB-a.
+
+%package platform-multiboot
+Summary:       Multiboot platform support for GRUB
+Summary(pl.UTF-8):     Obsługa platformy Multiboot dla GRUB-a
+Group:         Base
+Requires:      %{name} = %{version}-%{release}
+Provides:      %{name}-platform = %{version}-%{release}
+
+%description platform-multiboot
+Multiboot platform support for GRUB.
+
+%description platform-multiboot -l pl.UTF-8
+Obsługa platformy Multiboot dla GRUB-a.
+
+%package platform-pc
+Summary:       PC BIOS platform support for GRUB
+Summary(pl.UTF-8):     Obsługa platformy PC BIOS dla GRUB-a
+Group:         Base
+Requires:      %{name} = %{version}-%{release}
+Provides:      %{name}-platform = %{version}-%{release}
+
+%description platform-pc
+PC BIOS platform support for GRUB.
+
+%description platform-pc -l pl.UTF-8
+Obsługa platformy PC BIOS dla GRUB-a.
+
+%package platform-qemu
+Summary:       Qemu platform support for GRUB
+Summary(pl.UTF-8):     Obsługa platformy Qemu dla GRUB-a
+Group:         Base
+Requires:      %{name} = %{version}-%{release}
+Requires:      %{name}-fonts = %{version}-%{release}
+Provides:      %{name}-platform = %{version}-%{release}
+
+%description platform-qemu
+Qemu platform support for GRUB.
+
+%description platform-qemu -l pl.UTF-8
+Obsługa platformy Qemu dla GRUB-a.
+
+%package platform-uboot
+Summary:       ARM uBoot platform support for GRUB
+Summary(pl.UTF-8):     Obsługa platformy ARM uBoot dla GRUB-a
+Group:         Base
+Requires:      %{name} = %{version}-%{release}
+Provides:      %{name}-platform = %{version}-%{release}
+
+%description platform-uboot
+ARM uBoot platform support for GRUB.
+
+%description platform-uboot -l pl.UTF-8
+Obsługa platformy ARM uBoot dla GRUB-a.
+
+%package platform-xen
+Summary:       Xen platform support for GRUB
+Summary(pl.UTF-8):     Obsługa platformy Xen dla GRUB-a
+Group:         Base
+Requires:      %{name} = %{version}-%{release}
+Provides:      %{name}-platform = %{version}-%{release}
+
+%description platform-xen
+Xen platform support for GRUB.
+
+%description platform-xen -l pl.UTF-8
+Obsługa platformy Xen dla GRUB-a.
+
+%package platform-xen_pvh
+Summary:       Xen PVH platform support for GRUB
+Summary(pl.UTF-8):     Obsługa platformy Xen PVH dla GRUB-a
+Group:         Base
+Requires:      %{name} = %{version}-%{release}
+Provides:      %{name}-platform = %{version}-%{release}
+
+%description platform-xen_pvh
+Xen PVH platform support for GRUB.
+
+%description platform-xen_pvh -l pl.UTF-8
+Obsługa platformy Xen PVH dla GRUB-a.
+
 %package mkfont
 Summary:       GRUB font files converter
 Summary(pl.UTF-8):     Konwerter plików fontów GRUB-a
@@ -260,6 +510,7 @@ Program do konwersji popularnych formatów plików fontów do PF2.
 %package theme-starfield
 Summary:       starfield theme for GRUB
 Summary(pl.UTF-8):     Motyw starfield dla GRUB-a
+Requires:      %{name} = %{version}-%{release}
 Group:         Base
 
 %description theme-starfield
@@ -277,19 +528,21 @@ Motyw starfield dla GRUB-a.
 %patch5 -p1
 %patch6 -p1
 %patch7 -p1
-%patch8 -p1
 %patch9 -p1
 %patch10 -p1
 %patch11 -p1
-%patch12 -p1
-%patch13 -p1
+%patch12 -p0
 %patch14 -p1
 %patch15 -p1
-%patch16 -p1
 
 # we don't have C.utf-8 and need an UTF-8 locale for build
 sed -i -e 's/LC_ALL=C.UTF-8/LC_ALL=en_US.utf-8/g' po/Makefile* po/Rules*
 
+# missing in tarball
+cat > grub-core/extra_deps.lst <<EOF
+depends bli part_gpt
+EOF
+
 %build
 # if gold is used then grub doesn't even boot
 # https://savannah.gnu.org/bugs/?34539
@@ -298,7 +551,7 @@ install -d our-ld
 ln -f -s /usr/bin/ld.bfd our-ld/ld
 export PATH=$(pwd)/our-ld:$PATH
 
-## not only the typicall autotools stuff
+## not only the typical autotools stuff
 #./autogen.sh
 
 #{__gettextize}
@@ -311,18 +564,21 @@ for platform in %{platforms} ; do
        install -d build-${platform}
        cd build-${platform}
 
-       if [ "$platform" != "efi" ] ; then
-               platform_opts="--enable-efiemu%{!?with_efiemu:=no}"
-       else
-               platform_opts=""
-       fi
+       platform_opts=""
+       case platform in
+               coreboot|ieee1275|multiboot|pc|qemu|xen_pvh)
+                       platform_opts="--enable-efiemu%{!?with_efiemu:=no}"
+                       ;;
+       esac
 
        ln -f -s ../configure .
        # mawk stalls at ./genmoddep.awk, so force gawk
        AWK=gawk \
        %configure \
+               PYTHON="%{__python3}" \
                --with-platform=${platform} \
                --disable-werror \
+               --enable-grub-themes \
        %if %{with grubemu}
                --enable-grub-emu-usb \
                --enable-grub-emu-sdl \
@@ -374,10 +630,12 @@ cp -p %{SOURCE3} $RPM_BUILD_ROOT/etc/sysconfig/grub
 rm -f $RPM_BUILD_ROOT%{_infodir}/dir
 
 # platform specific, unnecessarily always installed
-%ifnarch %{ix86} %{x8664}
+%ifnarch %{ix86} %{x8664} x32
 %{__rm} $RPM_BUILD_ROOT{%{_sbindir}/grub-bios-setup,%{_mandir}/man8/grub-bios-setup.8}
 %endif
+%ifnarch sparc64
 %{__rm} $RPM_BUILD_ROOT{%{_sbindir}/grub-sparc64-setup,%{_mandir}/man8/grub-sparc64-setup.8}
+%endif
 
 # core.img - bootable image generated by grub-mkimage(1) via grub-install(1)
 touch $RPM_BUILD_ROOT%{_grubdir}/core.img
@@ -399,15 +657,15 @@ rm -rf $RPM_BUILD_ROOT
 %triggerpostun -- %{name} < 2.00-2
 # Note this trigger on version upgrade needed only for upgrade from
 # old grub2 packages which contained modules in /boot/grub
-# or were built with optimizations enabled
-# don't do anything on --downgrade
+# or were built with optimizations enabled.
+# Don't do anything on --downgrade.
 if [ $1 -le 1 ]; then
        exit 0
 fi
 echo "Grub was upgraded, trying to setup it to boot sector"
 /sbin/grub-install '(hd0)' || :
 
-%triggerpostun -- %{name} < 1.99-7.3
+# -- %{name} < 1.99-7.3
 # migrate /etc/grub.d/custom.cfg.rpmsave  -> /boot/grub/custom.cfg
 if [ -f %{_sysconfdir}/grub.d/custom.cfg.rpmsave ]; then
        cp -f %{_grubdir}/custom.cfg{,.rpmnew}
@@ -416,7 +674,7 @@ fi
 
 %files -f grub.lang
 %defattr(644,root,root,755)
-%doc AUTHORS NEWS README THANKS TODO
+%doc AUTHORS ChangeLog NEWS README THANKS TODO
 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/grub
 %attr(755,root,root) %{_sbindir}/grub-editenv
 %attr(755,root,root) %{_sbindir}/grub-fstest
@@ -441,16 +699,17 @@ fi
 %attr(755,root,root) %{_sbindir}/grub-set-default
 %attr(755,root,root) %{_sbindir}/grub-syslinux2cfg
 %attr(755,root,root) %{_sbindir}/update-grub
-%ifarch %{ix86} %{x8664}
+%ifarch %{ix86} %{x8664} x32
 %attr(755,root,root) %{_sbindir}/grub-bios-setup
 %{_mandir}/man8/grub-bios-setup.8*
 %endif
-%ifarch %{ix86} %{x8664}
 %attr(755,root,root) %{_sbindir}/grub-mkimage
 %{_mandir}/man1/grub-mkimage.1*
-%else
 %attr(755,root,root) %{_sbindir}/grub-probe
 %{_mandir}/man8/grub-probe.8*
+%ifarch sparc64
+%attr(755,root,root) %{_sbindir}/grub-sparc64-setup
+%{_mandir}/man8/grub-sparc64-setup.8*
 %endif
 %{_mandir}/man1/grub-editenv.1*
 %{_mandir}/man1/grub-file.1*
@@ -486,8 +745,8 @@ fi
 # XXX: check this locale dir location and if it is neccesaary to exist on /boot
 
 %dir %{_libexecdir}/locale
-%config(noreplace) %verify(not md5 mtime size) %{_grubdir}/grub.cfg
-%config(noreplace) %verify(not md5 mtime size) %{_grubdir}/custom.cfg
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_grubdir}/grub.cfg
+%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_grubdir}/custom.cfg
 
 # generated by grub at runtime
 %ghost %{_grubdir}/device.map
@@ -499,66 +758,208 @@ fi
 %attr(755,root,root) /lib/grub.d/00_header
 %attr(755,root,root) /lib/grub.d/10_linux
 %attr(755,root,root) /lib/grub.d/20_linux_xen
+%attr(755,root,root) /lib/grub.d/25_bli
 %attr(755,root,root) /lib/grub.d/30_os-prober
 %attr(755,root,root) /lib/grub.d/41_custom
 
-# these are now installed only on matching hosts
-#%attr(755,root,root) /lib/grub.d/10_hurd
-#%attr(755,root,root) /lib/grub.d/10_illumos
-#%attr(755,root,root) /lib/grub.d/10_kfreebsd
-#%attr(755,root,root) /lib/grub.d/10_netbsd
-#%attr(755,root,root) /lib/grub.d/10_xnu
+%{_infodir}/grub*.info*
 
-%ifarch %{ix86} %{x8664}
-%attr(755,root,root) %{_sbindir}/grub-probe
-%{_mandir}/man8/grub-probe.8*
+%dir %{_datadir}/grub/themes
+
+%files -n bash-completion-%{name}
+%defattr(644,root,root,755)
+/etc/bash_completion.d/grub
+
+%if %{with unifont}
+%files fonts
+%defattr(644,root,root,755)
+%{_libexecdir}/ascii.h
+%{_libexecdir}/ascii.pf2
+%{_libexecdir}/euro.pf2
+%{_libexecdir}/unicode.pf2
+%{_libexecdir}/widthspec.h
 %endif
 
-%{_infodir}/grub*.info*
+%if %{with arc}
+%files platform-arc
+%defattr(644,root,root,755)
+%dir %{_libexecdir}/%{arc_arch}-arc
+%{_libexecdir}/%{arc_arch}-arc/modinfo.sh
+%{_libexecdir}/%{arc_arch}-arc/*.lst
+%{_libexecdir}/%{arc_arch}-arc/*.mod
+%{_libexecdir}/%{arc_arch}-arc/*.module
+%{_libexecdir}/%{arc_arch}-arc/config.h
+%{_libexecdir}/%{arc_arch}-arc/gdb_grub
+%{_libexecdir}/%{arc_arch}-arc/gdb_helper.py
+%{_libexecdir}/%{arc_arch}-arc/kernel.exec
+%{_libexecdir}/%{arc_arch}-arc/kernel.img
+%endif
 
-%dir %{_datadir}/grub/themes
+%if %{with coreboot}
+%files platform-coreboot
+%defattr(644,root,root,755)
+%dir %{_libexecdir}/%{coreboot_arch}-coreboot
+%{_libexecdir}/%{coreboot_arch}-coreboot/modinfo.sh
+%{_libexecdir}/%{coreboot_arch}-coreboot/*.lst
+%{_libexecdir}/%{coreboot_arch}-coreboot/*.mod
+%{_libexecdir}/%{coreboot_arch}-coreboot/*.module
+%{_libexecdir}/%{coreboot_arch}-coreboot/config.h
+%{_libexecdir}/%{coreboot_arch}-coreboot/gdb_grub
+%{_libexecdir}/%{coreboot_arch}-coreboot/gdb_helper.py
+%{_libexecdir}/%{coreboot_arch}-coreboot/kernel.exec
+%{_libexecdir}/%{coreboot_arch}-coreboot/kernel.img
+%if %{with efiemu}
+%{_libexecdir}/%{coreboot_arch}-coreboot/efiemu*.o
+%endif
+%endif
+
+%if %{with efi}
+%files platform-efi
+%defattr(644,root,root,755)
+%attr(755,root,root) /lib/grub.d/30_uefi-firmware
+%dir %{_libexecdir}/%{efi_arch}-efi
+%{_libexecdir}/%{efi_arch}-efi/modinfo.sh
+%{_libexecdir}/%{efi_arch}-efi/*.lst
+%{_libexecdir}/%{efi_arch}-efi/*.mod
+%{_libexecdir}/%{efi_arch}-efi/*.module
+%{_libexecdir}/%{efi_arch}-efi/config.h
+%{_libexecdir}/%{efi_arch}-efi/gdb_grub
+%{_libexecdir}/%{efi_arch}-efi/gdb_helper.py
+%{_libexecdir}/%{efi_arch}-efi/kernel.exec
+%{_libexecdir}/%{efi_arch}-efi/kernel.img
+%endif
+
+%if %{with ieee1275}
+%files platform-ieee1275
+%defattr(644,root,root,755)
+%dir %{_libexecdir}/%{ieee1275_arch}-ieee1275
+%{_libexecdir}/%{ieee1275_arch}-ieee1275/modinfo.sh
+%{_libexecdir}/%{ieee1275_arch}-ieee1275/*.lst
+%{_libexecdir}/%{ieee1275_arch}-ieee1275/*.mod
+%{_libexecdir}/%{ieee1275_arch}-ieee1275/*.module
+%{_libexecdir}/%{ieee1275_arch}-ieee1275/config.h
+%{_libexecdir}/%{ieee1275_arch}-ieee1275/gdb_grub
+%{_libexecdir}/%{ieee1275_arch}-ieee1275/gdb_helper.py
+%{_libexecdir}/%{ieee1275_arch}-ieee1275/kernel.exec
+%{_libexecdir}/%{ieee1275_arch}-ieee1275/kernel.img
+%if %{with efiemu}
+%{_libexecdir}/%{ieee1275_arch}-ieee1275/efiemu*.o
+%endif
+%endif
+
+%if %{with multiboot}
+%files platform-multiboot
+%defattr(644,root,root,755)
+%dir %{_libexecdir}/i386-multiboot
+%{_libexecdir}/i386-multiboot/modinfo.sh
+%{_libexecdir}/i386-multiboot/*.lst
+%{_libexecdir}/i386-multiboot/*.mod
+%{_libexecdir}/i386-multiboot/*.module
+%{_libexecdir}/i386-multiboot/config.h
+%{_libexecdir}/i386-multiboot/gdb_grub
+%{_libexecdir}/i386-multiboot/gdb_helper.py
+%{_libexecdir}/i386-multiboot/kernel.exec
+%{_libexecdir}/i386-multiboot/kernel.img
+%if %{with efiemu}
+%{_libexecdir}/i386-multiboot/efiemu*.o
+%endif
+%endif
 
 %if %{with pc}
 %files platform-pc
 %defattr(644,root,root,755)
-%dir %{_libexecdir}/*-pc
-%{_libexecdir}/*-pc/modinfo.sh
-%{_libexecdir}/*-pc/*.exec
-%{_libexecdir}/*-pc/*.image
-%{_libexecdir}/*-pc/*.lst
-%{_libexecdir}/*-pc/*.mod
-%{_libexecdir}/*-pc/*.module
-%{_libexecdir}/*-pc/lzma_decompress.img
-%{_libexecdir}/*-pc/config.h
-%{_libexecdir}/*-pc/gdb_grub
-%{_libexecdir}/*-pc/gmodule.pl
+%dir %{_libexecdir}/i386-pc
+%{_libexecdir}/i386-pc/modinfo.sh
+%{_libexecdir}/i386-pc/*.lst
+%{_libexecdir}/i386-pc/*.mod
+%{_libexecdir}/i386-pc/*.module
+%{_libexecdir}/i386-pc/config.h
+%{_libexecdir}/i386-pc/gdb_grub
+%{_libexecdir}/i386-pc/gdb_helper.py
+%{_libexecdir}/i386-pc/boot.image
+%{_libexecdir}/i386-pc/boot.img
+%{_libexecdir}/i386-pc/boot_hybrid.image
+%{_libexecdir}/i386-pc/boot_hybrid.img
+%{_libexecdir}/i386-pc/cdboot.image
+%{_libexecdir}/i386-pc/cdboot.img
+%{_libexecdir}/i386-pc/diskboot.image
+%{_libexecdir}/i386-pc/diskboot.img
+%{_libexecdir}/i386-pc/kernel.exec
+%{_libexecdir}/i386-pc/kernel.img
+%{_libexecdir}/i386-pc/lnxboot.image
+%{_libexecdir}/i386-pc/lnxboot.img
+%{_libexecdir}/i386-pc/lzma_decompress.image
+%{_libexecdir}/i386-pc/lzma_decompress.img
+%{_libexecdir}/i386-pc/pxeboot.image
+%{_libexecdir}/i386-pc/pxeboot.img
 %if %{with efiemu}
-%{_libexecdir}/*-pc/efiemu*.o
+%{_libexecdir}/i386-pc/efiemu*.o
 %endif
-%{_libexecdir}/*-pc/kernel.img
-%ifarch %{ix86} %{x8664}
-%{_libexecdir}/*-pc/boot.img
-%{_libexecdir}/*-pc/boot_hybrid.img
-%{_libexecdir}/*-pc/cdboot.img
-%{_libexecdir}/*-pc/diskboot.img
-%{_libexecdir}/*-pc/lnxboot.img
-%{_libexecdir}/*-pc/pxeboot.img
 %endif
+
+%if %{with qemu}
+%files platform-qemu
+%defattr(644,root,root,755)
+%dir %{_libexecdir}/%{qemu_arch}-%{qemu_plat}
+%{_libexecdir}/%{qemu_arch}-%{qemu_plat}/modinfo.sh
+%{_libexecdir}/%{qemu_arch}-%{qemu_plat}/*.lst
+%{_libexecdir}/%{qemu_arch}-%{qemu_plat}/*.mod
+%{_libexecdir}/%{qemu_arch}-%{qemu_plat}/*.module
+%{_libexecdir}/%{qemu_arch}-%{qemu_plat}/config.h
+%{_libexecdir}/%{qemu_arch}-%{qemu_plat}/gdb_grub
+%{_libexecdir}/%{qemu_arch}-%{qemu_plat}/gdb_helper.py
+%{_libexecdir}/%{qemu_arch}-%{qemu_plat}/boot.image
+%{_libexecdir}/%{qemu_arch}-%{qemu_plat}/boot.img
+%{_libexecdir}/%{qemu_arch}-%{qemu_plat}/kernel.exec
+%{_libexecdir}/%{qemu_arch}-%{qemu_plat}/kernel.img
 %endif
 
-%if %{with efi}
-%files platform-efi
+%if %{with uboot}
+%files platform-uboot
+%defattr(644,root,root,755)
+%dir %{_libexecdir}/arm-uboot
+%{_libexecdir}/arm-uboot/modinfo.sh
+%{_libexecdir}/arm-uboot/*.lst
+%{_libexecdir}/arm-uboot/*.mod
+%{_libexecdir}/arm-uboot/*.module
+%{_libexecdir}/arm-uboot/config.h
+%{_libexecdir}/arm-uboot/gdb_grub
+%{_libexecdir}/arm-uboot/gdb_helper.py
+%{_libexecdir}/arm-uboot/kernel.exec
+%{_libexecdir}/arm-uboot/kernel.img
+%endif
+
+%if %{with xen}
+%files platform-xen
 %defattr(644,root,root,755)
-%dir %{_libexecdir}/*-efi
-%{_libexecdir}/*-efi/modinfo.sh
-%{_libexecdir}/*-efi/*.exec
-%{_libexecdir}/*-efi/*.lst
-%{_libexecdir}/*-efi/*.mod
-%{_libexecdir}/*-efi/*.module
-%{_libexecdir}/*-efi/config.h
-%{_libexecdir}/*-efi/gdb_grub
-%{_libexecdir}/*-efi/gmodule.pl
-%{_libexecdir}/*-efi/kernel.img
+%dir %{_libexecdir}/%{xen_arch}-xen
+%{_libexecdir}/%{xen_arch}-xen/modinfo.sh
+%{_libexecdir}/%{xen_arch}-xen/*.lst
+%{_libexecdir}/%{xen_arch}-xen/*.mod
+%{_libexecdir}/%{xen_arch}-xen/*.module
+%{_libexecdir}/%{xen_arch}-xen/config.h
+%{_libexecdir}/%{xen_arch}-xen/gdb_grub
+%{_libexecdir}/%{xen_arch}-xen/gdb_helper.py
+%{_libexecdir}/%{xen_arch}-xen/kernel.exec
+%{_libexecdir}/%{xen_arch}-xen/kernel.img
+%endif
+
+%if %{with xen_pvh}
+%files platform-xen_pvh
+%defattr(644,root,root,755)
+%dir %{_libexecdir}/i386-xen_pvh
+%{_libexecdir}/i386-xen_pvh/modinfo.sh
+%{_libexecdir}/i386-xen_pvh/*.lst
+%{_libexecdir}/i386-xen_pvh/*.mod
+%{_libexecdir}/i386-xen_pvh/*.module
+%{_libexecdir}/i386-xen_pvh/config.h
+%{_libexecdir}/i386-xen_pvh/gdb_grub
+%{_libexecdir}/i386-xen_pvh/gdb_helper.py
+%{_libexecdir}/i386-xen_pvh/kernel.exec
+%{_libexecdir}/i386-xen_pvh/kernel.img
+%if %{with efiemu}
+%{_libexecdir}/i386-xen_pvh/efiemu*.o
+%endif
 %endif
 
 %files mkfont
@@ -569,7 +970,3 @@ fi
 %files theme-starfield
 %defattr(644,root,root,755)
 %{_datadir}/grub/themes/starfield
-
-%files -n bash-completion-%{name}
-%defattr(644,root,root,755)
-/etc/bash_completion.d/grub