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.11.2 |
12 |
Release: %mkrel 1 |
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 |
# Fix ESP mount point and GNU EFI library paths |
21 |
Patch0: mga-system-path-fixes.patch |
22 |
# Add --nvramonly option to refind-install |
23 |
Patch1: install-nvram-only.patch |
24 |
BuildRequires: gnu-efi-devel |
25 |
Requires: efibootmgr |
26 |
|
27 |
%description |
28 |
|
29 |
A graphical boot manager for EFI- and UEFI-based computers, such as all |
30 |
Intel-based Macs and recent (most 2011 and later) PCs. rEFInd presents a |
31 |
boot menu showing all the EFI boot loaders on the EFI-accessible |
32 |
partitions, and optionally BIOS-bootable partitions on Macs and BIOS boot |
33 |
entries on UEFI PCs with CSMs. EFI-compatible OSes, including Linux, |
34 |
provide boot loaders that rEFInd can detect and launch. rEFInd can launch |
35 |
Linux EFI boot loaders such as ELILO, GRUB Legacy, GRUB 2, and 3.3.0 and |
36 |
later kernels with EFI stub support. EFI file system drivers for ext2/3/4fs, |
37 |
ReiserFS, Btrfs, NTFS, HFS+, and ISO-9660 enable rEFInd to read boot |
38 |
loaders from these file systems, too. rEFInd's ability to detect boot |
39 |
loaders at run time makes it very easy to use, particularly when paired with |
40 |
Linux kernels that provide EFI stub support. |
41 |
|
42 |
%prep |
43 |
%autosetup -p1 |
44 |
cp %{SOURCE1} icons/ |
45 |
|
46 |
%build |
47 |
make LIBDIR=%{_libdir} gnuefi |
48 |
make LIBDIR=%{_libdir} fs_gnuefi |
49 |
|
50 |
%install |
51 |
mkdir -p %{buildroot}%{_datadir}/%{name}/refind/ |
52 |
|
53 |
# Copy the rEFInd binaries (rEFInd proper and drivers) |
54 |
install -Dp -m0644 refind/refind*.efi %{buildroot}%{_datadir}/%{name}/refind/ |
55 |
mkdir -p %{buildroot}%{_datadir}/%{name}/refind/drivers_%{efiarch} |
56 |
cp -a drivers_%{efiarch}/* %{buildroot}%{_datadir}/%{name}/refind/drivers_%{efiarch}/ |
57 |
mkdir -p %{buildroot}%{_datadir}/%{name}/refind/tools_%{efiarch} |
58 |
install -Dp -m0644 gptsync/gptsync_%{efiarch}.efi %{buildroot}%{_datadir}/%{name}/refind/tools_%{efiarch}/gptsync_%{efiarch}.efi |
59 |
|
60 |
# Copy configuration and support files |
61 |
install -Dp -m0644 refind.conf-sample %{buildroot}%{_datadir}/%{name}/refind/ |
62 |
cp -a icons %{buildroot}%{_datadir}/%{name}/refind/ |
63 |
rm -rf %{buildroot}%{_datadir}/%{name}/refind/icons/svg |
64 |
install -Dp -m0755 refind-install %{buildroot}%{_datadir}/%{name}/ |
65 |
|
66 |
# Copy man pages |
67 |
mkdir -p %{buildroot}%{_mandir}/man8 |
68 |
install -Dp -m0644 docs/man/mvrefind.8 %{buildroot}%{_mandir}/man8 |
69 |
install -Dp -m0644 docs/man/mkrlconf.8 %{buildroot}%{_mandir}/man8 |
70 |
install -Dp -m0644 docs/man/refind-install.8 %{buildroot}%{_mandir}/man8 |
71 |
install -Dp -m0644 docs/man/refind-mkdefault.8 %{buildroot}%{_mandir}/man8 |
72 |
|
73 |
# Copy scripts |
74 |
mkdir -p %{buildroot}%{_sbindir} |
75 |
install -Dp -m0755 mkrlconf %{buildroot}%{_sbindir}/ |
76 |
install -Dp -m0755 mvrefind %{buildroot}%{_sbindir}/ |
77 |
install -Dp -m0755 refind-mkdefault %{buildroot}%{_sbindir}/ |
78 |
ln -sr %{buildroot}%{_datadir}/%{name}/refind-install %{buildroot}%{_sbindir} |
79 |
|
80 |
# Copy banners and fonts |
81 |
cp -a banners %{buildroot}%{_datadir}/%{name}/ |
82 |
cp -a fonts %{buildroot}%{_datadir}/%{name}/ |
83 |
|
84 |
# Create version file and urpmi README files |
85 |
echo %{version} > VERSION |
86 |
|
87 |
echo "Version %{version} of the rEFInd boot manager has been installed in the ESP." > .README.installed |
88 |
|
89 |
echo "Version %{version} of the rEFInd boot manager is now available." > README.urpmi |
90 |
echo "To install it in the ESP, either use drakboot or, as root user," >> README.urpmi |
91 |
echo "execute the command '/sbin/refind-install'." >> README.urpmi |
92 |
echo "If you are having no problems with booting your system, there is" >> README.urpmi |
93 |
echo "no need to install this update in the ESP." >> README.urpmi |
94 |
|
95 |
%post |
96 |
if [ -d /boot/EFI/EFI ] ; then |
97 |
if [ ! -e /boot/EFI/EFI/refind ] ; then |
98 |
%{_sbindir}/refind-install --yes && cp %{_docdir}/%{name}/.README.installed %{_docdir}/%{name}/README.urpmi |
99 |
fi |
100 |
fi |
101 |
|
102 |
%files |
103 |
%doc NEWS.txt COPYING.txt LICENSE.txt README.txt CREDITS.txt docs/Styles docs/refind |
104 |
%doc VERSION README.urpmi .README.installed |
105 |
%{_sbindir}/mkrlconf |
106 |
%{_sbindir}/mvrefind |
107 |
%{_sbindir}/refind-install |
108 |
%{_sbindir}/refind-mkdefault |
109 |
%{_datadir}/%{name} |
110 |
%{_mandir}/man8/* |