14f0077de0
OBS-URL: https://build.opensuse.org/request/show/627614 OBS-URL: https://build.opensuse.org/package/show/Base:System/grub2?expand=0&rev=309
1211 lines
36 KiB
RPMSpec
1211 lines
36 KiB
RPMSpec
#
|
|
# spec file for package grub2
|
|
#
|
|
# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
|
|
#
|
|
# All modifications and additions to the file contributed by third parties
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
# upon. The license for this file, and modifications and additions to the
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
# license for the pristine package is not an Open Source License, in which
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
# published by the Open Source Initiative.
|
|
|
|
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
|
#
|
|
# needssslcertforbuild
|
|
|
|
|
|
Name: grub2
|
|
%ifarch x86_64 ppc64
|
|
BuildRequires: gcc-32bit
|
|
BuildRequires: glibc-32bit
|
|
BuildRequires: glibc-devel-32bit
|
|
%else
|
|
BuildRequires: gcc
|
|
BuildRequires: glibc-devel
|
|
%endif
|
|
BuildRequires: automake
|
|
BuildRequires: bison
|
|
BuildRequires: dejavu-fonts
|
|
BuildRequires: device-mapper-devel
|
|
BuildRequires: fdupes
|
|
BuildRequires: flex
|
|
BuildRequires: freetype2-devel
|
|
BuildRequires: fuse-devel
|
|
%if 0%{?suse_version} >= 1140
|
|
BuildRequires: gnu-unifont
|
|
%endif
|
|
BuildRequires: help2man
|
|
BuildRequires: xz
|
|
%if 0%{?suse_version} >= 1210
|
|
BuildRequires: makeinfo
|
|
%else
|
|
BuildRequires: texinfo
|
|
%endif
|
|
BuildRequires: python3
|
|
BuildRequires: xz-devel
|
|
%ifarch x86_64
|
|
%if 0%{?suse_version} >= 1230 || 0%{?suse_version} == 1110
|
|
BuildRequires: openssl >= 0.9.8
|
|
BuildRequires: pesign-obs-integration
|
|
%endif
|
|
%endif
|
|
%if 0%{?suse_version} >= 1210
|
|
# Package systemd services files grub2-once.service
|
|
BuildRequires: systemd-rpm-macros
|
|
%define has_systemd 1
|
|
%endif
|
|
%if 0%{?suse_version} > 1320
|
|
BuildRequires: update-bootloader-rpm-macros
|
|
%endif
|
|
|
|
# Modules code is dynamically loaded and collected from a _fixed_ path.
|
|
%define _libdir %{_exec_prefix}/lib
|
|
|
|
# Build grub2-emu everywhere (it may be "required" by 'grub2-once')
|
|
%define emu 1
|
|
|
|
%ifarch ppc ppc64 ppc64le
|
|
%define grubcpu powerpc
|
|
%define platform ieee1275
|
|
# emu does not build here yet... :-(
|
|
%define emu 0
|
|
%endif
|
|
|
|
%ifarch %{ix86} x86_64
|
|
%define grubcpu i386
|
|
%define platform pc
|
|
%endif
|
|
|
|
%ifarch s390x
|
|
%define grubcpu s390x
|
|
%define platform emu
|
|
%endif
|
|
|
|
%ifarch %{arm}
|
|
%define grubcpu arm
|
|
%define platform uboot
|
|
%endif
|
|
|
|
%ifarch aarch64
|
|
%define grubcpu arm64
|
|
%define platform efi
|
|
%define only_efi 1
|
|
%endif
|
|
|
|
%define grubarch %{grubcpu}-%{platform}
|
|
|
|
# build efi bootloader on some platforms only:
|
|
%if ! 0%{?efi:1}
|
|
%global efi %{ix86} x86_64 ia64 aarch64 %{arm}
|
|
%endif
|
|
|
|
%ifarch %{efi}
|
|
%ifarch %{ix86}
|
|
%define grubefiarch i386-efi
|
|
%else
|
|
%ifarch aarch64
|
|
%define grubefiarch arm64-efi
|
|
%else
|
|
%ifarch %{arm}
|
|
%define grubefiarch arm-efi
|
|
%else
|
|
%define grubefiarch %{_target_cpu}-efi
|
|
%endif
|
|
%endif
|
|
%endif
|
|
%endif
|
|
|
|
%ifarch %{ix86}
|
|
%define grubxenarch i386-xen
|
|
%endif
|
|
|
|
%ifarch x86_64
|
|
%define grubxenarch x86_64-xen
|
|
%endif
|
|
|
|
%if %{platform} == emu
|
|
# force %{emu} to 1, e.g. for s390
|
|
%define emu 1
|
|
%endif
|
|
|
|
%if 0%{?suse_version} == 1110
|
|
%define only_efi %{nil}
|
|
%define only_x86_64 %{nil}
|
|
%endif
|
|
|
|
Version: 2.02
|
|
Release: 0
|
|
Summary: Bootloader with support for Linux, Multiboot and more
|
|
License: GPL-3.0-or-later
|
|
Group: System/Boot
|
|
Url: http://www.gnu.org/software/grub/
|
|
%define rev 20120622
|
|
Source0: grub-%{version}.tar.xz
|
|
Source1: 90_persistent
|
|
Source2: grub.default
|
|
Source4: grub2.rpmlintrc
|
|
# rsync -Lrtvz translationproject.org::tp/latest/grub/ po
|
|
Source5: translations-20170427.tar.xz
|
|
Source6: grub2-once
|
|
Source7: 20_memtest86+
|
|
Source8: README.ibm3215
|
|
Source10: openSUSE-UEFI-CA-Certificate.crt
|
|
Source11: SLES-UEFI-CA-Certificate.crt
|
|
Source12: grub2-snapper-plugin.sh
|
|
Source14: 80_suse_btrfs_snapshot
|
|
Source15: grub2-once.service
|
|
Source16: grub2-xen-pv-firmware.cfg
|
|
# required hook for systemd-sleep (bsc#941758)
|
|
Source17: grub2-systemd-sleep.sh
|
|
Source18: grub2-check-default.sh
|
|
Source999: grub2-rpmlintrc
|
|
Source1000: PATCH_POLICY
|
|
Patch1: rename-grub-info-file-to-grub2.patch
|
|
Patch2: grub2-linux.patch
|
|
Patch3: use-grub2-as-a-package-name.patch
|
|
Patch4: info-dir-entry.patch
|
|
Patch6: grub2-iterate-and-hook-for-extended-partition.patch
|
|
Patch8: grub2-ppc-terminfo.patch
|
|
Patch9: grub2-GRUB_CMDLINE_LINUX_RECOVERY-for-recovery-mode.patch
|
|
Patch10: grub2-fix-error-terminal-gfxterm-isn-t-found.patch
|
|
Patch11: grub2-fix-build-with-flex-2.6.4.patch
|
|
Patch12: grub2-fix-menu-in-xen-host-server.patch
|
|
Patch15: not-display-menu-when-boot-once.patch
|
|
Patch17: grub2-pass-corret-root-for-nfsroot.patch
|
|
Patch18: grub2-fix-locale-en.mo.gz-not-found-error-message.patch
|
|
Patch19: grub2-efi-HP-workaround.patch
|
|
Patch21: grub2-secureboot-add-linuxefi.patch
|
|
Patch22: grub2-secureboot-use-linuxefi-on-uefi.patch
|
|
Patch23: grub2-secureboot-no-insmod-on-sb.patch
|
|
Patch24: grub2-secureboot-provide-linuxefi-config.patch
|
|
Patch25: grub2-secureboot-chainloader.patch
|
|
Patch26: grub2-secureboot-use-linuxefi-on-uefi-in-os-prober.patch
|
|
Patch27: grub2-linuxefi-fix-boot-params.patch
|
|
Patch35: grub2-linguas.sh-no-rsync.patch
|
|
Patch37: grub2-use-Unifont-for-starfield-theme-terminal.patch
|
|
Patch38: grub2-s390x-01-Changes-made-and-files-added-in-order-to-allow-s390x.patch
|
|
Patch39: grub2-s390x-02-kexec-module-added-to-emu.patch
|
|
Patch40: grub2-s390x-03-output-7-bit-ascii.patch
|
|
Patch41: grub2-s390x-04-grub2-install.patch
|
|
Patch42: grub2-s390x-05-grub2-mkconfig.patch
|
|
Patch43: grub2-use-rpmsort-for-version-sorting.patch
|
|
Patch53: grub2-getroot-treat-mdadm-ddf-as-simple-device.patch
|
|
Patch56: grub2-setup-try-fs-embed-if-mbr-gap-too-small.patch
|
|
Patch58: grub2-xen-linux16.patch
|
|
Patch59: grub2-efi-disable-video-cirrus-and-bochus.patch
|
|
Patch60: grub2-editenv-add-warning-message.patch
|
|
Patch61: grub2-vbe-blacklist-preferred-1440x900x32.patch
|
|
Patch64: grub2-grubenv-in-btrfs-header.patch
|
|
Patch65: grub2-mkconfig-aarch64.patch
|
|
Patch70: grub2-default-distributor.patch
|
|
Patch71: grub2-menu-unrestricted.patch
|
|
Patch72: grub2-mkconfig-arm.patch
|
|
Patch74: grub2-accept-empty-module.patch
|
|
Patch75: grub2-s390x-06-loadparm.patch
|
|
Patch76: grub2-s390x-07-add-image-param-for-zipl-setup.patch
|
|
Patch77: grub2-s390x-08-workaround-part-to-disk.patch
|
|
Patch78: grub2-commands-introduce-read_file-subcommand.patch
|
|
Patch79: grub2-efi-chainload-harder.patch
|
|
Patch80: grub2-emu-4-all.patch
|
|
Patch81: grub2-lvm-allocate-metadata-buffer-from-raw-contents.patch
|
|
Patch82: grub2-diskfilter-support-pv-without-metadatacopies.patch
|
|
Patch83: grub2-efi-uga-64bit-fb.patch
|
|
Patch84: grub2-s390x-09-improve-zipl-setup.patch
|
|
Patch85: grub2-getroot-scan-disk-pv.patch
|
|
Patch86: 0001-Fix-packed-not-aligned-error-on-GCC-8.patch
|
|
Patch87: 0001-Fix-PCIe-LER-when-GRUB2-accesses-non-enabled-MMIO-da.patch
|
|
Patch88: unix-exec-avoid-atexit-handlers-when-child-exits.patch
|
|
Patch89: 0001-xfs-Accept-filesystem-with-sparse-inodes.patch
|
|
# Btrfs snapshot booting related patches
|
|
Patch101: grub2-btrfs-01-add-ability-to-boot-from-subvolumes.patch
|
|
Patch102: grub2-btrfs-02-export-subvolume-envvars.patch
|
|
Patch103: grub2-btrfs-03-follow_default.patch
|
|
Patch104: grub2-btrfs-04-grub2-install.patch
|
|
Patch105: grub2-btrfs-05-grub2-mkconfig.patch
|
|
Patch106: grub2-btrfs-06-subvol-mount.patch
|
|
Patch107: grub2-btrfs-07-subvol-fallback.patch
|
|
Patch108: grub2-btrfs-08-workaround-snapshot-menu-default-entry.patch
|
|
Patch109: grub2-btrfs-09-get-default-subvolume.patch
|
|
Patch110: grub2-btrfs-10-config-directory.patch
|
|
# Support EFI xen loader
|
|
Patch120: grub2-efi-xen-chainload.patch
|
|
Patch121: grub2-efi-chainloader-root.patch
|
|
Patch122: grub2-efi-xen-cmdline.patch
|
|
Patch123: grub2-efi-xen-cfg-unquote.patch
|
|
Patch124: grub2-efi-xen-removable.patch
|
|
# Hidden menu entry and hotkey "t" for text console
|
|
Patch140: grub2-Add-hidden-menu-entries.patch
|
|
Patch141: grub2-SUSE-Add-the-t-hotkey.patch
|
|
# EFI free memory on exit fix (bsc#980739)
|
|
Patch150: grub2-efi-Move-grub_reboot-into-kernel.patch
|
|
Patch151: grub2-efi-Free-malloc-regions-on-exit.patch
|
|
# Linux root device related patches
|
|
Patch163: grub2-zipl-setup-fix-btrfs-multipledev.patch
|
|
Patch164: grub2-suse-remove-linux-root-param.patch
|
|
# PPC64 LE support
|
|
Patch205: grub2-ppc64le-disable-video.patch
|
|
Patch207: grub2-ppc64le-memory-map.patch
|
|
# PPC
|
|
Patch210: 0002-Add-Virtual-LAN-support.patch
|
|
Patch211: grub2-ppc64-cas-reboot-support.patch
|
|
Patch212: grub2-install-remove-useless-check-PReP-partition-is-empty.patch
|
|
Patch213: grub2-Fix-incorrect-netmask-on-ppc64.patch
|
|
Patch214: grub2-ieee1275-open-raw-mode.patch
|
|
Patch215: grub2-ppc64-cas-new-scope.patch
|
|
Patch233: grub2-use-stat-instead-of-udevadm-for-partition-lookup.patch
|
|
Patch234: fix-grub2-use-stat-instead-of-udevadm-for-partition-lookup-with-new-glibc.patch
|
|
Patch236: grub2-efi_gop-avoid-low-resolution.patch
|
|
# Support HTTP Boot IPv4 and IPv6 (fate#320129)
|
|
Patch280: 0001-misc-fix-invalid-character-recongition-in-strto-l.patch
|
|
Patch281: 0002-net-read-bracketed-ipv6-addrs-and-port-numbers.patch
|
|
Patch282: 0003-bootp-New-net_bootp6-command.patch
|
|
Patch283: 0004-efinet-UEFI-IPv6-PXE-support.patch
|
|
Patch284: 0005-grub.texi-Add-net_bootp6-doument.patch
|
|
Patch285: 0006-bootp-Add-processing-DHCPACK-packet-from-HTTP-Boot.patch
|
|
Patch286: 0007-efinet-Setting-network-from-UEFI-device-path.patch
|
|
Patch287: 0008-efinet-Setting-DNS-server-from-UEFI-protocol.patch
|
|
# Fix GOP BLT support (FATE#322332)
|
|
Patch311: grub2-efi-gop-add-blt.patch
|
|
# TPM Support (FATE#315831)
|
|
Patch400: 0001-tpm-Core-TPM-support.patch
|
|
Patch401: 0002-tpm-Measure-kernel-initrd.patch
|
|
Patch402: 0003-tpm-Add-BIOS-boot-measurement.patch
|
|
Patch403: 0004-tpm-Rework-linux-command.patch
|
|
Patch404: 0005-tpm-Rework-linux16-command.patch
|
|
Patch405: 0006-tpm-Measure-kernel-and-initrd-on-BIOS-systems.patch
|
|
Patch406: 0007-tpm-Measure-the-kernel-commandline.patch
|
|
Patch407: 0008-tpm-Measure-commands.patch
|
|
Patch408: 0009-tpm-Measure-multiboot-images-and-modules.patch
|
|
Patch409: 0010-tpm-Fix-boot-when-there-s-no-TPM.patch
|
|
Patch410: 0011-tpm-Fix-build-error.patch
|
|
Patch411: 0012-tpm-Build-tpm-as-module.patch
|
|
Patch412: 0013-tpm-i386-pc-diskboot-img.patch
|
|
# UEFI HTTP and related network protocol support (FATE#320130)
|
|
Patch420: 0001-add-support-for-UEFI-network-protocols.patch
|
|
Patch421: 0002-AUDIT-0-http-boot-tracker-bug.patch
|
|
# check if default entry need to be corrected for updated distributor version
|
|
# and/or use fallback entry if default kernel entry removed (bsc#1065349)
|
|
Patch430: grub2-mkconfig-default-entry-correction.patch
|
|
Patch431: grub2-s390x-10-keep-network-at-kexec.patch
|
|
# Use pkg-config to find Freetype2
|
|
Patch500: grub2-freetype-pkgconfig.patch
|
|
Patch501: grub2-btrfs-help-on-snapper-rollback.patch
|
|
|
|
Requires: gettext-runtime
|
|
%if 0%{?suse_version} >= 1140
|
|
%ifnarch s390x
|
|
Recommends: os-prober
|
|
%endif
|
|
# xorriso not available using grub2-mkrescue (bnc#812681)
|
|
Recommends: libburnia-tools
|
|
Recommends: mtools
|
|
%endif
|
|
Requires(post): /sbin/install-info
|
|
Requires(preun):/sbin/install-info
|
|
%if ! 0%{?only_efi:1}
|
|
Requires: grub2-%{grubarch} = %{version}-%{release}
|
|
%endif
|
|
|
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
|
|
|
%if 0%{?only_x86_64:1}
|
|
ExclusiveArch: x86_64
|
|
%else
|
|
ExclusiveArch: %{ix86} x86_64 ppc ppc64 ppc64le s390x aarch64 %{arm}
|
|
%endif
|
|
|
|
%description
|
|
This is the second version of the GRUB (Grand Unified Bootloader), a
|
|
highly configurable and customizable bootloader with modular
|
|
architecture. It support rich scale of kernel formats, file systems,
|
|
computer architectures and hardware devices.
|
|
|
|
This package includes user space utlities to manage GRUB on your system.
|
|
|
|
|
|
Authors:
|
|
--------
|
|
Gordon Matzigkeit
|
|
Yoshinori K. Okuji
|
|
Colin Watson
|
|
Colin D. Bennett
|
|
Vesa Jääskeläinen
|
|
Robert Millan
|
|
Carles Pina
|
|
|
|
%package branding-upstream
|
|
|
|
Summary: Upstream branding for GRUB2's graphical console
|
|
Group: System/Fhs
|
|
Requires: %{name} = %{version}-%{release}
|
|
|
|
%description branding-upstream
|
|
Upstream branding for GRUB2's graphical console
|
|
|
|
%if ! 0%{?only_efi:1}
|
|
%package %{grubarch}
|
|
|
|
Summary: Bootloader with support for Linux, Multiboot and more
|
|
Group: System/Boot
|
|
Requires: %{name} = %{version}-%{release}
|
|
Requires(post): %{name} = %{version}-%{release}
|
|
%if 0%{?update_bootloader_requires:1}
|
|
%update_bootloader_requires
|
|
%else
|
|
Requires: perl-Bootloader
|
|
Requires(post): perl-Bootloader
|
|
%endif
|
|
%ifarch s390x
|
|
# required utilities by grub2-s390x-04-grub2-install.patch
|
|
# use 'showconsole' to determine console device. (bnc#876743)
|
|
Requires: /sbin/showconsole
|
|
Requires: kexec-tools
|
|
# for /sbin/zipl used by grub2-zipl-setup
|
|
Requires: s390-tools
|
|
%endif
|
|
%ifarch ppc64 ppc64le
|
|
Requires: powerpc-utils
|
|
%endif
|
|
|
|
%description %{grubarch}
|
|
The GRand Unified Bootloader (GRUB) is a highly configurable and customizable
|
|
bootloader with modular architecture. It supports rich variety of kernel formats,
|
|
file systems, computer architectures and hardware devices. This subpackage
|
|
provides support for %{platform} systems.
|
|
|
|
%endif
|
|
|
|
%ifarch %{efi}
|
|
|
|
%package %{grubefiarch}
|
|
|
|
Summary: Bootloader with support for Linux, Multiboot and more
|
|
# Require efibootmgr
|
|
# Without it grub-install is broken so break the package as well if unavailable
|
|
Group: System/Boot
|
|
Requires: efibootmgr
|
|
Requires(post): efibootmgr
|
|
Requires: %{name} = %{version}-%{release}
|
|
Requires(post): %{name} = %{version}-%{release}
|
|
%if 0%{?update_bootloader_requires:1}
|
|
%update_bootloader_requires
|
|
%else
|
|
Requires: perl-Bootloader >= 0.706
|
|
Requires(post): perl-Bootloader >= 0.706
|
|
%endif
|
|
Provides: %{name}-efi = %{version}-%{release}
|
|
Obsoletes: %{name}-efi < %{version}-%{release}
|
|
|
|
%description %{grubefiarch}
|
|
The GRand Unified Bootloader (GRUB) is a highly configurable and customizable
|
|
bootloader with modular architecture. It supports rich variety of kernel formats,
|
|
file systems, computer architectures and hardware devices. This subpackage
|
|
provides support for EFI systems.
|
|
|
|
%endif
|
|
|
|
%ifarch %{ix86} x86_64
|
|
|
|
%package %{grubxenarch}
|
|
|
|
Summary: Bootloader with support for Linux, Multiboot and more
|
|
Group: System/Boot
|
|
Provides: %{name}-xen = %{version}-%{release}
|
|
Obsoletes: %{name}-xen < %{version}-%{release}
|
|
BuildArch: noarch
|
|
|
|
%description %{grubxenarch}
|
|
The GRand Unified Bootloader (GRUB) is a highly configurable and customizable
|
|
bootloader with modular architecture. It supports rich variety of kernel formats,
|
|
file systems, computer architectures and hardware devices. This subpackage
|
|
provides support for XEN systems.
|
|
|
|
%endif
|
|
|
|
%package snapper-plugin
|
|
|
|
Summary: Grub2's snapper plugin
|
|
Group: System/Fhs
|
|
Requires: %{name} = %{version}-%{release}
|
|
Requires: libxml2-tools
|
|
Supplements: packageand(snapper:grub2)
|
|
BuildArch: noarch
|
|
|
|
%description snapper-plugin
|
|
Grub2's snapper plugin for advanced btrfs snapshot boot menu management
|
|
|
|
%if 0%{?has_systemd:1}
|
|
%package systemd-sleep-plugin
|
|
|
|
Summary: Grub2's systemd-sleep plugin
|
|
Group: System/Fhs
|
|
Requires: grub2
|
|
Requires: util-linux
|
|
Supplements: packageand(systemd:grub2)
|
|
BuildArch: noarch
|
|
|
|
%description systemd-sleep-plugin
|
|
Grub2's systemd-sleep plugin for directly booting hibernated kernel image in
|
|
swap partition while in resuming
|
|
%endif
|
|
|
|
%prep
|
|
# We create (if we build for efi) two copies of the sources in the Builddir
|
|
%setup -q -n grub-%{version} -a 5
|
|
(cd po && ls *.po | cut -d. -f1 | xargs) >po/LINGUAS
|
|
%patch1 -p1
|
|
%patch2 -p1
|
|
%patch3 -p1
|
|
%patch4 -p1
|
|
%patch6 -p1
|
|
%patch8 -p1
|
|
%patch9 -p1
|
|
%patch10 -p1
|
|
%patch11 -p1
|
|
%patch12 -p1
|
|
%patch15 -p1
|
|
%patch17 -p1
|
|
%patch18 -p1
|
|
%patch19 -p1
|
|
%patch21 -p1
|
|
%patch22 -p1
|
|
%patch23 -p1
|
|
%patch24 -p1
|
|
%patch25 -p1
|
|
%patch26 -p1
|
|
%patch27 -p1
|
|
%patch35 -p1
|
|
%patch37 -p1
|
|
%patch38 -p1
|
|
%patch39 -p1
|
|
%patch40 -p1
|
|
%patch41 -p1
|
|
%patch42 -p1
|
|
%patch43 -p1
|
|
%patch53 -p1
|
|
%patch56 -p1
|
|
%patch58 -p1
|
|
%patch59 -p1
|
|
%patch60 -p1
|
|
%patch61 -p1
|
|
%patch64 -p1
|
|
%patch65 -p1
|
|
%patch70 -p1
|
|
%patch71 -p1
|
|
%patch72 -p1
|
|
%patch74 -p1
|
|
%patch75 -p1
|
|
%patch76 -p1
|
|
%patch77 -p1
|
|
%patch78 -p1
|
|
%patch79 -p1
|
|
%patch80 -p1
|
|
%patch81 -p1
|
|
%patch82 -p1
|
|
%patch83 -p1
|
|
%patch84 -p1
|
|
%patch85 -p1
|
|
%patch86 -p1
|
|
%patch87 -p1
|
|
%patch88 -p1
|
|
%patch89 -p1
|
|
%patch101 -p1
|
|
%patch102 -p1
|
|
%patch103 -p1
|
|
%patch104 -p1
|
|
%patch105 -p1
|
|
%patch106 -p1
|
|
%patch107 -p1
|
|
%patch108 -p1
|
|
%patch109 -p1
|
|
%patch110 -p1
|
|
%patch120 -p1
|
|
%patch121 -p1
|
|
%patch122 -p1
|
|
%patch123 -p1
|
|
%patch124 -p1
|
|
%patch140 -p1
|
|
%patch141 -p1
|
|
%patch150 -p1
|
|
%patch151 -p1
|
|
%patch163 -p1
|
|
%patch164 -p1
|
|
%patch205 -p1
|
|
%patch207 -p1
|
|
%patch210 -p1
|
|
%patch211 -p1
|
|
%patch212 -p1
|
|
%patch213 -p1
|
|
%patch214 -p1
|
|
%patch215 -p1
|
|
%patch233 -p1
|
|
%patch234 -p1
|
|
%patch236 -p1
|
|
%patch280 -p1
|
|
%patch281 -p1
|
|
%patch282 -p1
|
|
%patch283 -p1
|
|
%patch284 -p1
|
|
%patch285 -p1
|
|
%patch286 -p1
|
|
%patch287 -p1
|
|
%patch311 -p1
|
|
%patch400 -p1
|
|
%patch401 -p1
|
|
%patch402 -p1
|
|
%patch403 -p1
|
|
%patch404 -p1
|
|
%patch405 -p1
|
|
%patch406 -p1
|
|
%patch407 -p1
|
|
%patch408 -p1
|
|
%patch409 -p1
|
|
%patch410 -p1
|
|
%patch411 -p1
|
|
%patch412 -p1
|
|
%patch420 -p1
|
|
%patch421 -p1
|
|
%patch430 -p1
|
|
%patch431 -p1
|
|
%patch500 -p1
|
|
%patch501 -p1
|
|
|
|
%build
|
|
# patches above may update the timestamp of grub.texi
|
|
# and via build-aux/mdate-sh they end up in grub2.info, breaking build-compare
|
|
[ -z "$SOURCE_DATE_EPOCH" ] ||\
|
|
[ `stat -c %Y docs/grub.texi` -lt $SOURCE_DATE_EPOCH ] ||\
|
|
touch -d@$SOURCE_DATE_EPOCH docs/grub.texi
|
|
|
|
# This simplifies patch handling without need to use git to create patch
|
|
# that renames file
|
|
mv docs/grub.texi docs/grub2.texi
|
|
# This avoids attempt to rebuild potfiles which fails because necessary
|
|
# sources are not included in tarball
|
|
mv po/grub.pot po/%{name}.pot
|
|
|
|
# Generate po/LINGUAS for message catalogs ...
|
|
./linguas.sh
|
|
# ... and make sure new catalogs are actually created
|
|
rm -f po/stamp-po
|
|
|
|
cp %{SOURCE8} .
|
|
mkdir build
|
|
%ifarch %{efi}
|
|
mkdir build-efi
|
|
%endif
|
|
%ifarch %{ix86} x86_64
|
|
mkdir build-xen
|
|
%endif
|
|
%if %{emu}
|
|
mkdir build-emu
|
|
%endif
|
|
|
|
export PYTHON=%{_bindir}/python3
|
|
# autogen calls autoreconf -vi
|
|
./autogen.sh
|
|
# Not yet:
|
|
%define common_conf_options TARGET_LDFLAGS=-static --program-transform-name=s,grub,%{name},
|
|
# This does NOT work on SLE11:
|
|
%define _configure ../configure
|
|
|
|
# We don't want to let rpm override *FLAGS with default a.k.a bogus values.
|
|
CFLAGS="-fno-strict-aliasing -fno-inline-functions-called-once "
|
|
CXXFLAGS=" "
|
|
FFLAGS=" "
|
|
export CFLAGS CXXFLAGS FFLAGS
|
|
|
|
%if %{emu}
|
|
cd build-emu
|
|
%define arch_specific --enable-device-mapper --disable-grub-mount
|
|
TFLAGS="-fPIC"
|
|
|
|
# -static is needed so that autoconf script is able to link
|
|
# test that looks for _start symbol on 64 bit platforms
|
|
../configure TARGET_LDFLAGS=$TFLAGS \
|
|
--prefix=%{_prefix} \
|
|
--sysconfdir=%{_sysconfdir} \
|
|
--target=%{_target_platform} \
|
|
--with-platform=emu \
|
|
%{arch_specific} \
|
|
--program-transform-name=s,grub,%{name},
|
|
make %{?_smp_mflags}
|
|
cd ..
|
|
if [ "%{platform}" = "emu" ]; then
|
|
rmdir build
|
|
mv build-emu build
|
|
fi
|
|
%endif
|
|
|
|
%ifarch %{ix86} x86_64
|
|
cd build-xen
|
|
../configure \
|
|
TARGET_LDFLAGS=-static \
|
|
--prefix=%{_prefix} \
|
|
--sysconfdir=%{_sysconfdir} \
|
|
--target=%{_target_platform} \
|
|
--libdir=%{_libdir} \
|
|
--with-platform=xen \
|
|
--program-transform-name=s,grub,%{name},
|
|
make %{?_smp_mflags}
|
|
|
|
./grub-mkstandalone --grub-mkimage=./grub-mkimage -o grub.xen -O %{grubxenarch} -d grub-core/ "/boot/grub/grub.cfg=%{SOURCE16}"
|
|
|
|
cd ..
|
|
%endif
|
|
|
|
%ifarch %{efi}
|
|
cd build-efi
|
|
../configure \
|
|
TARGET_LDFLAGS=-static \
|
|
--prefix=%{_prefix} \
|
|
--sysconfdir=%{_sysconfdir} \
|
|
--target=%{_target_platform} \
|
|
--libdir=%{_libdir} \
|
|
--with-platform=efi \
|
|
--program-transform-name=s,grub,%{name},
|
|
make %{?_smp_mflags}
|
|
|
|
#TODO: add efifwsetup module
|
|
|
|
FS_MODULES="ext2 btrfs ext2 xfs jfs reiserfs"
|
|
CD_MODULES=" all_video boot cat chain configfile echo true \
|
|
efinet font gfxmenu gfxterm gzio halt iso9660 \
|
|
jpeg minicmd normal part_apple part_msdos part_gpt \
|
|
password_pbkdf2 png reboot search search_fs_uuid \
|
|
search_fs_file search_label sleep test video fat loadenv"
|
|
PXE_MODULES="efinet tftp http"
|
|
CRYPTO_MODULES="luks gcry_rijndael gcry_sha1 gcry_sha256"
|
|
|
|
%ifarch x86_64
|
|
CD_MODULES="${CD_MODULES} linuxefi"
|
|
%else
|
|
CD_MODULES="${CD_MODULES} linux"
|
|
%endif
|
|
|
|
GRUB_MODULES="${CD_MODULES} ${FS_MODULES} ${PXE_MODULES} ${CRYPTO_MODULES} mdraid09 mdraid1x lvm serial"
|
|
./grub-mkimage -O %{grubefiarch} -o grub.efi --prefix= \
|
|
-d grub-core ${GRUB_MODULES}
|
|
./grub-mkimage -O %{grubefiarch} -o grub-tpm.efi --prefix= \
|
|
-d grub-core ${GRUB_MODULES} tpm
|
|
#./grub-mkimage -O %{grubefiarch} -o grub.efi -d grub-core part_gpt hfsplus fat \
|
|
# ext2 btrfs normal chain boot configfile linux appleldr minicmd \
|
|
# loadbios reboot halt search font gfxterm
|
|
|
|
%ifarch x86_64
|
|
%if 0%{?suse_version} >= 1230 || 0%{?suse_version} == 1110
|
|
if test -e %{_sourcedir}/_projectcert.crt ; then
|
|
prjsubject=$(openssl x509 -in %{_sourcedir}/_projectcert.crt -noout -subject_hash)
|
|
prjissuer=$(openssl x509 -in %{_sourcedir}/_projectcert.crt -noout -issuer_hash)
|
|
opensusesubject=$(openssl x509 -in %{SOURCE10} -noout -subject_hash)
|
|
slessubject=$(openssl x509 -in %{SOURCE11} -noout -subject_hash)
|
|
if test "$prjissuer" = "$opensusesubject" ; then
|
|
cert=%{SOURCE10}
|
|
fi
|
|
if test "$prjissuer" = "$slessubject" ; then
|
|
cert=%{SOURCE11}
|
|
fi
|
|
if test "$prjsubject" = "$prjissuer" ; then
|
|
cert=%{_sourcedir}/_projectcert.crt
|
|
fi
|
|
fi
|
|
if test -z "$cert" ; then
|
|
echo "cannot identify project, assuming openSUSE signing"
|
|
cert=%{SOURCE10}
|
|
fi
|
|
|
|
openssl x509 -in $cert -outform DER -out grub.der
|
|
%endif
|
|
%endif
|
|
|
|
cd ..
|
|
%endif
|
|
|
|
%if ! 0%{?only_efi:1}
|
|
cd build
|
|
|
|
# 64-bit x86-64 machines use 32-bit boot loader
|
|
# (We cannot just redefine _target_cpu, as we'd get i386.rpm packages then)
|
|
%ifarch x86_64
|
|
%define _target_platform i386-%{_vendor}-%{_target_os}%{?_gnu}
|
|
%endif
|
|
|
|
%if %{platform} != "emu"
|
|
%define arch_specific --enable-device-mapper
|
|
TFLAGS="-static"
|
|
|
|
# -static is needed so that autoconf script is able to link
|
|
# test that looks for _start symbol on 64 bit platforms
|
|
../configure TARGET_LDFLAGS=$TFLAGS \
|
|
--prefix=%{_prefix} \
|
|
--sysconfdir=%{_sysconfdir} \
|
|
--target=%{_target_platform} \
|
|
--with-platform=%{platform} \
|
|
%{arch_specific} \
|
|
--program-transform-name=s,grub,%{name},
|
|
make %{?_smp_mflags}
|
|
%endif
|
|
cd ..
|
|
%endif
|
|
|
|
%install
|
|
|
|
%ifarch %{ix86} x86_64
|
|
cd build-xen
|
|
make DESTDIR=$RPM_BUILD_ROOT install
|
|
install -m 644 grub.xen $RPM_BUILD_ROOT%{_libdir}/%{name}/%{grubxenarch}/.
|
|
cd ..
|
|
%endif
|
|
|
|
%ifarch %{efi}
|
|
cd build-efi
|
|
make DESTDIR=$RPM_BUILD_ROOT install
|
|
|
|
install -m 644 grub.efi grub-tpm.efi $RPM_BUILD_ROOT%{_libdir}/%{name}/%{grubefiarch}/.
|
|
|
|
# Create grub.efi link to system efi directory
|
|
# This is for tools like kiwi not fiddling with the path
|
|
%if "%{grubefiarch}" == "x86_64-efi"
|
|
%define sysefidir %{_exec_prefix}/lib64/efi
|
|
%else
|
|
%define sysefidir %{_libdir}/efi
|
|
%endif
|
|
install -d $RPM_BUILD_ROOT%{sysefidir}
|
|
ln -sf ../../../%{_libdir}/%{name}/%{grubefiarch}/grub.efi $RPM_BUILD_ROOT%{sysefidir}/grub.efi
|
|
|
|
%ifarch x86_64
|
|
%if 0%{?suse_version} >= 1230 || 0%{?suse_version} == 1110
|
|
export BRP_PESIGN_FILES="%{_libdir}/%{name}/%{grubefiarch}/grub.efi %{_libdir}/%{name}/%{grubefiarch}/grub-tpm.efi"
|
|
install -m 444 grub.der $RPM_BUILD_ROOT%{sysefidir}/
|
|
%endif
|
|
%endif
|
|
|
|
cd ..
|
|
%endif
|
|
|
|
%if ! 0%{?only_efi:1}
|
|
cd build
|
|
make DESTDIR=$RPM_BUILD_ROOT install
|
|
cd ..
|
|
%endif
|
|
|
|
if [ -d build-emu/grub-core ]; then
|
|
cd build-emu/grub-core
|
|
install -m 755 grub-emu $RPM_BUILD_ROOT%{_bindir}/%{name}-emu
|
|
install -m 755 grub-emu-lite $RPM_BUILD_ROOT%{_bindir}/%{name}-emu-lite
|
|
install -m 644 grub-emu.1 $RPM_BUILD_ROOT%{_mandir}/man1/%{name}-emu.1
|
|
cd ../..
|
|
fi
|
|
|
|
# *.module files are installed with executable bits due to the way grub2 build
|
|
# system works. Clear executable bits to not confuse find-debuginfo.sh
|
|
find $RPM_BUILD_ROOT%{_libdir}/%{name} \
|
|
\( -name '*.module' -o -name '*.image' -o -name '*.exec' \) -print0 | \
|
|
xargs --no-run-if-empty -0 chmod a-x
|
|
|
|
# Script that makes part of grub.cfg persist across updates
|
|
install -m 755 %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/grub.d/
|
|
|
|
# Script to generate memtest86+ menu entry
|
|
install -m 755 %{SOURCE7} $RPM_BUILD_ROOT%{_sysconfdir}/grub.d/
|
|
|
|
# Ghost config file
|
|
install -d $RPM_BUILD_ROOT/boot/%{name}
|
|
touch $RPM_BUILD_ROOT/boot/%{name}/grub.cfg
|
|
|
|
# Remove devel files
|
|
rm $RPM_BUILD_ROOT/%{_libdir}/%{name}/*/*.h
|
|
%if 0%{?suse_version} >= 1140
|
|
rm $RPM_BUILD_ROOT%{_datadir}/%{name}/*.h
|
|
%endif
|
|
|
|
# Defaults
|
|
install -m 644 -D %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/default/grub
|
|
install -m 755 -D %{SOURCE6} $RPM_BUILD_ROOT%{_sbindir}/grub2-once
|
|
install -m 755 -D %{SOURCE12} $RPM_BUILD_ROOT%{_libdir}/snapper/plugins/grub
|
|
install -m 755 -D %{SOURCE14} $RPM_BUILD_ROOT%{_sysconfdir}/grub.d/80_suse_btrfs_snapshot
|
|
%if 0%{?has_systemd:1}
|
|
install -m 644 -D %{SOURCE15} $RPM_BUILD_ROOT%{_unitdir}/grub2-once.service
|
|
install -m 755 -D %{SOURCE17} $RPM_BUILD_ROOT%{_libdir}/systemd/system-sleep/grub2.sleep
|
|
%endif
|
|
install -m 755 -D %{SOURCE18} $RPM_BUILD_ROOT%{_sbindir}/grub2-check-default
|
|
|
|
R=$RPM_BUILD_ROOT
|
|
%ifarch %{ix86} x86_64
|
|
%else
|
|
rm -f $R%{_sysconfdir}/grub.d/20_memtest86+
|
|
%endif
|
|
|
|
%ifarch ppc ppc64 ppc64le
|
|
%else
|
|
rm -f $R%{_sysconfdir}/grub.d/20_ppc_terminfo
|
|
%endif
|
|
|
|
%ifarch s390x
|
|
mv $R%{_sysconfdir}/{grub.d,default}/zipl2grub.conf.in
|
|
chmod 600 $R%{_sysconfdir}/default/zipl2grub.conf.in
|
|
|
|
%define dracutlibdir %{_prefix}/lib/dracut
|
|
%define dracutgrubmoddir %{dracutlibdir}/modules.d/99grub2
|
|
install -m 755 -d $R%{dracutgrubmoddir}
|
|
for f in module-setup.sh grub2.sh; do
|
|
mv $R%{_libdir}/%{name}/%{grubarch}/dracut-$f $R%{dracutgrubmoddir}/$f
|
|
done
|
|
rm -f $R%{_sysconfdir}/grub.d/30_os-prober
|
|
|
|
perl -ni -e '
|
|
sub END() {
|
|
print "\n# on s390x always:\nGRUB_DISABLE_OS_PROBER=true\n";
|
|
}
|
|
if ( s{^#?(GRUB_TERMINAL)=(console|gfxterm)}{$1=console} ) {
|
|
$_ .= "GRUB_GFXPAYLOAD_LINUX=text\n";
|
|
}
|
|
if ( m{^# The resolution used on graphical} ||
|
|
m{^# # note that you can use only modes} ||
|
|
m{^# you can see them in real GRUB} ||
|
|
m{^#?GRUB_GFXMODE=} ) {
|
|
next;
|
|
}
|
|
s{openSUSE}{SUSE Linux Enterprise Server} if (m{^GRUB_DISTRIBUTOR});
|
|
print;
|
|
' $RPM_BUILD_ROOT%{_sysconfdir}/default/grub
|
|
%else
|
|
%endif
|
|
|
|
%find_lang %{name}
|
|
%fdupes %buildroot%{_bindir}
|
|
%fdupes %buildroot%{_libdir}
|
|
|
|
%pre
|
|
%service_add_pre grub2-once.service
|
|
|
|
%post
|
|
%service_add_post grub2-once.service
|
|
/sbin/install-info %{_infodir}/grub-dev.info %{_infodir}/dir || :
|
|
/sbin/install-info %{_infodir}/%{name}.info %{_infodir}/dir || :
|
|
|
|
%if ! 0%{?only_efi:1}
|
|
|
|
%post %{grubarch}
|
|
%if 0%{?update_bootloader_check_type_reinit_post:1}
|
|
%update_bootloader_check_type_reinit_post grub2
|
|
%else
|
|
# To check by current loader settings
|
|
if [ -f %{_sysconfdir}/sysconfig/bootloader ]; then
|
|
. %{_sysconfdir}/sysconfig/bootloader
|
|
fi
|
|
|
|
# If the grub is the current loader, we'll handle the grub2 testing entry
|
|
if [ "x${LOADER_TYPE}" = "xgrub" ]; then
|
|
|
|
exec >/dev/null 2>&1
|
|
|
|
# check if entry for grub2's core.img exists in the config
|
|
# if yes, we will correct obsoleted path and update grub2 stuff and config to make it work
|
|
# if no, do nothing
|
|
if [ -f /boot/grub/menu.lst ]; then
|
|
|
|
# If grub config contains obsolete core.img path, remove and use the new one
|
|
if /usr/bin/grep -l "^\s*kernel\s*.*/boot/%{name}/core.img" /boot/grub/menu.lst; then
|
|
/sbin/update-bootloader --remove --image /boot/%{name}/core.img || true
|
|
/sbin/update-bootloader --add --image /boot/%{name}/i386-pc/core.img --name "GNU GRUB 2" || true
|
|
fi
|
|
|
|
# Install grub2 stuff and config to make the grub2 testing entry to work with updated version
|
|
if /usr/bin/grep -l "^\s*kernel\s*.*/boot/%{name}/i386-pc/core.img" /boot/grub/menu.lst; then
|
|
# Determine the partition with /boot
|
|
BOOT_PARTITION=$(df -h /boot | sed -n '2s/[[:blank:]].*//p')
|
|
# Generate core.img, but don't let it be installed in boot sector
|
|
%{name}-install --no-bootsector $BOOT_PARTITION || true
|
|
# Create a working grub2 config, otherwise that entry is un-bootable
|
|
/usr/sbin/grub2-mkconfig -o /boot/%{name}/grub.cfg
|
|
fi
|
|
fi
|
|
|
|
elif [ "x${LOADER_TYPE}" = "xgrub2" ]; then
|
|
|
|
# It's enought to call update-bootloader to install grub2 and update it's config
|
|
# Use new --reinit, if not available use --refresh
|
|
# --reinit: install and update bootloader config
|
|
# --refresh: update bootloader config
|
|
/sbin/update-bootloader --reinit 2>&1 | grep -q 'Unknown option: reinit' &&
|
|
/sbin/update-bootloader --refresh || true
|
|
fi
|
|
%endif
|
|
|
|
%posttrans %{grubarch}
|
|
%{?update_bootloader_posttrans}
|
|
|
|
%endif
|
|
|
|
%ifarch %{efi}
|
|
|
|
%post %{grubefiarch}
|
|
%if 0%{?update_bootloader_check_type_reinit_post:1}
|
|
%update_bootloader_check_type_reinit_post grub2-efi
|
|
%else
|
|
# To check by current loader settings
|
|
if [ -f %{_sysconfdir}/sysconfig/bootloader ]; then
|
|
. %{_sysconfdir}/sysconfig/bootloader
|
|
fi
|
|
|
|
if [ "x${LOADER_TYPE}" = "xgrub2-efi" ]; then
|
|
|
|
if [ -d /boot/%{name}-efi ]; then
|
|
# Migrate settings to standard prefix /boot/grub2
|
|
for i in custom.cfg grubenv; do
|
|
[ -f /boot/%{name}-efi/$i ] && cp -a /boot/%{name}-efi/$i /boot/%{name} || :
|
|
done
|
|
|
|
fi
|
|
|
|
# It's enough to call update-bootloader to install grub2 and update it's config
|
|
# Use new --reinit, if not available use --refresh
|
|
# --reinit: install and update bootloader config
|
|
# --refresh: update bootloader config
|
|
/sbin/update-bootloader --reinit 2>&1 | grep -q 'Unknown option: reinit' &&
|
|
/sbin/update-bootloader --refresh || true
|
|
fi
|
|
|
|
if [ -d /boot/%{name}-efi ]; then
|
|
mv /boot/%{name}-efi /boot/%{name}-efi.rpmsave
|
|
fi
|
|
|
|
exit 0
|
|
%endif
|
|
|
|
%posttrans %{grubefiarch}
|
|
%{?update_bootloader_posttrans}
|
|
|
|
%endif
|
|
|
|
%preun
|
|
%service_del_preun grub2-once.service
|
|
if [ $1 = 0 ]; then
|
|
/sbin/install-info --delete %{_infodir}/grub-dev.info %{_infodir}/dir || :
|
|
/sbin/install-info --delete %{_infodir}/%{name}.info %{_infodir}/dir || :
|
|
|
|
# We did not add core.img to grub1 menu.lst in new update-bootloader macro as what
|
|
# the old %post ever did, then the %preun counterpart which removed the added core.img
|
|
# entry from old %post can be skipped entirely if having new macro in use.
|
|
%if ! 0%{?update_bootloader_posttrans:1}%{?only_efi:1}
|
|
# To check by current loader settings
|
|
if [ -f %{_sysconfdir}/sysconfig/bootloader ]; then
|
|
. %{_sysconfdir}/sysconfig/bootloader
|
|
fi
|
|
|
|
if [ "x${LOADER_TYPE}" = "xgrub" ]; then
|
|
|
|
exec >/dev/null 2>&1
|
|
|
|
if [ -f /boot/grub/menu.lst ]; then
|
|
|
|
# Remove grub2 testing entry in menu.lst if has any
|
|
for i in /boot/%{name}/core.img /boot/%{name}/i386-pc/core.img; do
|
|
if /usr/bin/grep -l "^\s*kernel\s*.*$i" /boot/grub/menu.lst; then
|
|
/sbin/update-bootloader --remove --image "$i" || true
|
|
fi
|
|
done
|
|
fi
|
|
|
|
# Cleanup config, to not confuse some tools determining bootloader in use
|
|
rm -f /boot/%{name}/grub.cfg
|
|
|
|
# Cleanup installed files
|
|
# Unless grub2 provides grub2-uninstall, we don't remove any file because
|
|
# we have no idea what's been installed. (And a blind remove is dangerous
|
|
# to remove user's or other package's file accidently ..)
|
|
fi
|
|
%endif
|
|
fi
|
|
|
|
%postun
|
|
%service_del_postun grub2-once.service
|
|
|
|
%files -f %{name}.lang
|
|
%defattr(-,root,root,-)
|
|
%license COPYING
|
|
%doc NEWS README
|
|
%doc THANKS TODO ChangeLog
|
|
%doc docs/autoiso.cfg docs/osdetect.cfg
|
|
%ifarch s390x
|
|
%doc README.ibm3215
|
|
%endif
|
|
%dir /boot/%{name}
|
|
%ghost /boot/%{name}/grub.cfg
|
|
%{_sysconfdir}/bash_completion.d/grub
|
|
%config(noreplace) %{_sysconfdir}/default/grub
|
|
%dir %{_sysconfdir}/grub.d
|
|
%{_sysconfdir}/grub.d/README
|
|
%config(noreplace) %{_sysconfdir}/grub.d/00_header
|
|
%config(noreplace) %{_sysconfdir}/grub.d/10_linux
|
|
%config(noreplace) %{_sysconfdir}/grub.d/20_linux_xen
|
|
%config(noreplace) %{_sysconfdir}/grub.d/40_custom
|
|
%config(noreplace) %{_sysconfdir}/grub.d/41_custom
|
|
%config(noreplace) %{_sysconfdir}/grub.d/90_persistent
|
|
%config(noreplace) %{_sysconfdir}/grub.d/95_textmode
|
|
%{_sbindir}/%{name}-install
|
|
%{_sbindir}/%{name}-mkconfig
|
|
%{_sbindir}/%{name}-once
|
|
%{_sbindir}/%{name}-probe
|
|
%{_sbindir}/%{name}-reboot
|
|
%{_sbindir}/%{name}-set-default
|
|
%{_sbindir}/%{name}-check-default
|
|
%{_bindir}/%{name}-editenv
|
|
%{_bindir}/%{name}-file
|
|
%{_bindir}/%{name}-fstest
|
|
%{_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
|
|
%{_bindir}/%{name}-mkrescue
|
|
%{_bindir}/%{name}-mkstandalone
|
|
%{_bindir}/%{name}-render-label
|
|
%{_bindir}/%{name}-script-check
|
|
%{_bindir}/%{name}-syslinux2cfg
|
|
%if 0%{?has_systemd:1}
|
|
%{_unitdir}/grub2-once.service
|
|
%endif
|
|
%dir %{_libdir}/%{name}
|
|
%dir %{_datadir}/%{name}
|
|
%dir %{_datadir}/%{name}/themes
|
|
%if 0%{?suse_version} >= 1140
|
|
%{_datadir}/%{name}/*.pf2
|
|
%endif
|
|
%{_datadir}/%{name}/grub-mkconfig_lib
|
|
%{_infodir}/grub-dev.info*
|
|
%{_infodir}/%{name}.info*
|
|
%{_mandir}/man1/%{name}-editenv.1.*
|
|
%{_mandir}/man1/%{name}-file.1.*
|
|
%{_mandir}/man1/%{name}-fstest.1.*
|
|
%{_mandir}/man1/%{name}-kbdcomp.1.*
|
|
%{_mandir}/man1/%{name}-menulst2cfg.1.*
|
|
%{_mandir}/man1/%{name}-mkfont.1.*
|
|
%{_mandir}/man1/%{name}-mkimage.1.*
|
|
%{_mandir}/man1/%{name}-mklayout.1.*
|
|
%{_mandir}/man1/%{name}-mknetdir.1.*
|
|
%{_mandir}/man1/%{name}-mkpasswd-pbkdf2.1.*
|
|
%{_mandir}/man1/%{name}-mkrelpath.1.*
|
|
%{_mandir}/man1/%{name}-mkrescue.1.*
|
|
%{_mandir}/man1/%{name}-mkstandalone.1.*
|
|
%{_mandir}/man1/%{name}-render-label.1.*
|
|
%{_mandir}/man1/%{name}-script-check.1.*
|
|
%{_mandir}/man1/%{name}-syslinux2cfg.1.*
|
|
%{_mandir}/man8/%{name}-install.8.*
|
|
%{_mandir}/man8/%{name}-mkconfig.8.*
|
|
%{_mandir}/man8/%{name}-probe.8.*
|
|
%{_mandir}/man8/%{name}-reboot.8.*
|
|
%{_mandir}/man8/%{name}-set-default.8.*
|
|
%if %{emu}
|
|
%{_bindir}/%{name}-emu*
|
|
%{_mandir}/man1/%{name}-emu.1.*
|
|
%endif
|
|
%ifnarch s390x
|
|
%config(noreplace) %{_sysconfdir}/grub.d/30_os-prober
|
|
%{_bindir}/%{name}-glue-efi
|
|
%{_bindir}/%{name}-mount
|
|
%{_sbindir}/%{name}-bios-setup
|
|
%{_sbindir}/%{name}-macbless
|
|
%{_sbindir}/%{name}-ofpathname
|
|
%{_sbindir}/%{name}-sparc64-setup
|
|
%{_mandir}/man1/%{name}-glue-efi.1.*
|
|
%{_mandir}/man1/%{name}-mount.1.*
|
|
%{_mandir}/man8/%{name}-bios-setup.8.*
|
|
%{_mandir}/man8/%{name}-macbless.8.*
|
|
%{_mandir}/man8/%{name}-ofpathname.8.*
|
|
%{_mandir}/man8/%{name}-sparc64-setup.8.*
|
|
%endif
|
|
|
|
%files branding-upstream
|
|
%defattr(-,root,root,-)
|
|
%{_datadir}/%{name}/themes/starfield
|
|
|
|
%if ! 0%{?only_efi:1}
|
|
|
|
%files %{grubarch}
|
|
%defattr(-,root,root,-)
|
|
%ifarch %{ix86} x86_64
|
|
%config(noreplace) %{_sysconfdir}/grub.d/20_memtest86+
|
|
%endif
|
|
%dir %{_libdir}/%{name}/%{grubarch}
|
|
%ifarch ppc ppc64 ppc64le
|
|
%config(noreplace) %{_sysconfdir}/grub.d/20_ppc_terminfo
|
|
# This is intentionally "grub.chrp" and not "%{name}.chrp"
|
|
%{_libdir}/%{name}/%{grubarch}/grub.chrp
|
|
%{_libdir}/%{name}/%{grubarch}/bootinfo.txt
|
|
%endif
|
|
%ifnarch ppc ppc64 ppc64le s390x %{arm}
|
|
%{_libdir}/%{name}/%{grubarch}/*.image
|
|
%endif
|
|
%{_libdir}/%{name}/%{grubarch}/*.img
|
|
%{_libdir}/%{name}/%{grubarch}/*.lst
|
|
%{_libdir}/%{name}/%{grubarch}/*.mod
|
|
%{_libdir}/%{name}/%{grubarch}/*.module
|
|
%ifarch x86_64
|
|
%{_libdir}/%{name}/%{grubarch}/efiemu*.o
|
|
%endif
|
|
%{_libdir}/%{name}/%{grubarch}/gdb_grub
|
|
%{_libdir}/%{name}/%{grubarch}/gmodule.pl
|
|
%{_libdir}/%{name}/%{grubarch}/kernel.exec
|
|
%{_libdir}/%{name}/%{grubarch}/modinfo.sh
|
|
%endif
|
|
%ifarch s390x
|
|
%{_sbindir}/%{name}-zipl-setup
|
|
%config(noreplace) %{_sysconfdir}/default/zipl2grub.conf.in
|
|
%{dracutlibdir}
|
|
%endif
|
|
|
|
%ifarch %{efi}
|
|
|
|
%files %{grubefiarch}
|
|
%defattr(-,root,root,-)
|
|
%dir %{_libdir}/%{name}/%{grubefiarch}
|
|
%{_libdir}/%{name}/%{grubefiarch}/grub.efi
|
|
%{_libdir}/%{name}/%{grubefiarch}/grub-tpm.efi
|
|
%{_libdir}/%{name}/%{grubefiarch}/*.img
|
|
%{_libdir}/%{name}/%{grubefiarch}/*.lst
|
|
%{_libdir}/%{name}/%{grubefiarch}/*.mod
|
|
%{_libdir}/%{name}/%{grubefiarch}/*.module
|
|
%{_libdir}/%{name}/%{grubefiarch}/gdb_grub
|
|
%{_libdir}/%{name}/%{grubefiarch}/gmodule.pl
|
|
%{_libdir}/%{name}/%{grubefiarch}/kernel.exec
|
|
%{_libdir}/%{name}/%{grubefiarch}/modinfo.sh
|
|
%dir %{sysefidir}
|
|
%{sysefidir}/grub.efi
|
|
|
|
%ifarch x86_64
|
|
%if 0%{?suse_version} >= 1230 || 0%{?suse_version} == 1110
|
|
%{sysefidir}/grub.der
|
|
%endif
|
|
%endif
|
|
%endif
|
|
|
|
%files snapper-plugin
|
|
%defattr(-,root,root,-)
|
|
%dir %{_libdir}/snapper
|
|
%dir %{_libdir}/snapper/plugins
|
|
%config(noreplace) %{_sysconfdir}/grub.d/80_suse_btrfs_snapshot
|
|
%{_libdir}/snapper/plugins/grub
|
|
|
|
%ifarch %{ix86} x86_64
|
|
%files %{grubxenarch}
|
|
%dir %{_libdir}/%{name}/%{grubxenarch}
|
|
%{_libdir}/%{name}/%{grubxenarch}/*
|
|
%endif
|
|
|
|
%if 0%{?has_systemd:1}
|
|
%files systemd-sleep-plugin
|
|
%defattr(-,root,root,-)
|
|
%dir %{_libdir}/systemd/system-sleep
|
|
%{_libdir}/systemd/system-sleep/grub2.sleep
|
|
%endif
|
|
|
|
%changelog
|