1 |
%ifarch %{ix86} |
2 |
%define efiarch ia32 |
3 |
%endif |
4 |
%ifarch x86_64 |
5 |
%define efiarch x64 |
6 |
%endif |
7 |
|
8 |
%define debug_package %{nil} |
9 |
|
10 |
Name: refind |
11 |
Version: 0.12.0 |
12 |
Release: %mkrel 3 |
13 |
Summary: EFI boot manager |
14 |
License: GPLv3 |
15 |
Group: System/Boot and Init |
16 |
URL: http://www.rodsbooks.com/refind/ |
17 |
Source0: https://sourceforge.net/projects/refind/files/%version/refind-src-%version.tar.gz |
18 |
# Replace old Mageia icon with current version |
19 |
Source1: os_mageia.png |
20 |
# Use Mageia dark blue background |
21 |
Source2: dark-blue-banner.png |
22 |
# Fix ESP mount point and GNU EFI library paths |
23 |
Patch0: mga-system-path-fixes.patch |
24 |
# Add --nvramonly option to refind-install |
25 |
Patch1: install-nvram-only.patch |
26 |
# Support 32-bit EFI on 64-bit O/S (and vice versa) |
27 |
Patch2: detect-efi-size.patch |
28 |
# GGC 10 synthesises a call to memmove, which isn't implemented. Work |
29 |
# round this by disabling that optimisation. |
30 |
Patch3: disable-gcc-memmove-opt.patch |
31 |
# Fix bug in refind-install script. |
32 |
Patch4: fix-install-early-exit.patch |
33 |
# Change default banner |
34 |
Patch5: use-dark-blue-banner.patch |
35 |
|
36 |
ExclusiveArch: %{ix86} x86_64 |
37 |
BuildRequires: gnu-efi-devel |
38 |
Provides: bootloader |
39 |
Requires: efibootmgr |
40 |
|
41 |
%description |
42 |
|
43 |
A graphical boot manager for EFI- and UEFI-based computers, such as all |
44 |
Intel-based Macs and recent (most 2011 and later) PCs. rEFInd presents a |
45 |
boot menu showing all the EFI boot loaders on the EFI-accessible |
46 |
partitions, and optionally BIOS-bootable partitions on Macs and BIOS boot |
47 |
entries on UEFI PCs with CSMs. EFI-compatible OSes, including Linux, |
48 |
provide boot loaders that rEFInd can detect and launch. rEFInd can launch |
49 |
Linux EFI boot loaders such as ELILO, GRUB Legacy, GRUB 2, and 3.3.0 and |
50 |
later kernels with EFI stub support. EFI file system drivers for ext2/3/4fs, |
51 |
ReiserFS, Btrfs, NTFS, HFS+, and ISO-9660 enable rEFInd to read boot |
52 |
loaders from these file systems, too. rEFInd's ability to detect boot |
53 |
loaders at run time makes it very easy to use, particularly when paired with |
54 |
Linux kernels that provide EFI stub support. |
55 |
|
56 |
%prep |
57 |
%autosetup -p1 |
58 |
cp %{SOURCE1} %{SOURCE2} icons/ |
59 |
|
60 |
%build |
61 |
make LIBDIR=%{_libdir} gnuefi |
62 |
make LIBDIR=%{_libdir} fs_gnuefi |
63 |
|
64 |
%install |
65 |
mkdir -p %{buildroot}%{_datadir}/%{name}/refind/ |
66 |
|
67 |
# Copy the rEFInd binaries (rEFInd proper and drivers) |
68 |
install -Dp -m0644 refind/refind*.efi %{buildroot}%{_datadir}/%{name}/refind/ |
69 |
mkdir -p %{buildroot}%{_datadir}/%{name}/refind/drivers_%{efiarch} |
70 |
cp -a drivers_%{efiarch}/* %{buildroot}%{_datadir}/%{name}/refind/drivers_%{efiarch}/ |
71 |
mkdir -p %{buildroot}%{_datadir}/%{name}/refind/tools_%{efiarch} |
72 |
install -Dp -m0644 gptsync/gptsync_%{efiarch}.efi %{buildroot}%{_datadir}/%{name}/refind/tools_%{efiarch}/gptsync_%{efiarch}.efi |
73 |
|
74 |
# Copy configuration and support files |
75 |
install -Dp -m0644 refind.conf-sample %{buildroot}%{_datadir}/%{name}/refind/ |
76 |
cp -a icons %{buildroot}%{_datadir}/%{name}/refind/ |
77 |
rm -rf %{buildroot}%{_datadir}/%{name}/refind/icons/svg |
78 |
install -Dp -m0755 refind-install %{buildroot}%{_datadir}/%{name}/ |
79 |
|
80 |
# Copy man pages |
81 |
mkdir -p %{buildroot}%{_mandir}/man8 |
82 |
install -Dp -m0644 docs/man/mvrefind.8 %{buildroot}%{_mandir}/man8 |
83 |
install -Dp -m0644 docs/man/mkrlconf.8 %{buildroot}%{_mandir}/man8 |
84 |
install -Dp -m0644 docs/man/refind-install.8 %{buildroot}%{_mandir}/man8 |
85 |
install -Dp -m0644 docs/man/refind-mkdefault.8 %{buildroot}%{_mandir}/man8 |
86 |
|
87 |
# Copy scripts |
88 |
mkdir -p %{buildroot}%{_sbindir} |
89 |
install -Dp -m0755 mkrlconf %{buildroot}%{_sbindir}/ |
90 |
install -Dp -m0755 mvrefind %{buildroot}%{_sbindir}/ |
91 |
install -Dp -m0755 refind-mkdefault %{buildroot}%{_sbindir}/ |
92 |
ln -sr %{buildroot}%{_datadir}/%{name}/refind-install %{buildroot}%{_sbindir} |
93 |
|
94 |
# Copy banners and fonts |
95 |
cp -a banners %{buildroot}%{_datadir}/%{name}/ |
96 |
cp -a fonts %{buildroot}%{_datadir}/%{name}/ |
97 |
|
98 |
# Create version file and urpmi README file |
99 |
echo %{version} > VERSION |
100 |
echo "Version %{version} of the rEFInd boot manager is now available." > README.urpmi |
101 |
echo "To install it in the ESP, either use drakboot or, as root user," >> README.urpmi |
102 |
echo "execute the command '/sbin/refind-install'." >> README.urpmi |
103 |
echo "If you are having no problems with booting your system, there is" >> README.urpmi |
104 |
echo "no need to install this update in the ESP." >> README.urpmi |
105 |
|
106 |
%files |
107 |
%doc NEWS.txt COPYING.txt LICENSE.txt README.txt CREDITS.txt docs/Styles docs/refind |
108 |
%doc VERSION README.urpmi |
109 |
%{_sbindir}/mkrlconf |
110 |
%{_sbindir}/mvrefind |
111 |
%{_sbindir}/refind-install |
112 |
%{_sbindir}/refind-mkdefault |
113 |
%{_datadir}/%{name} |
114 |
%{_mandir}/man8/* |