1 Summary: EFI boot manager software
6 URL: http
://www.rodsbooks.com
/refind
/
7 Group: System Environment
/Base
8 Source: refind
-src
-%version.zip
10 BuildRoot: %
(mktemp
-ud
%{_tmppath}/%{name}-%{version}-%{release}-XXXXXX
)
12 %define efiarch unknown
29 # Directory in which refind.key and refind.crt files are found for
30 # signing of binaries. If absent, binaries are copied unsigned.
31 %define keydir
/mnt
/refind
35 A graphical boot manager
for EFI
- and UEFI
-based computers
, such as all
36 Intel
-based Macs and recent
(most
2011 and later
) PCs. rEFInd presents a
37 boot menu showing all the EFI boot loaders on the EFI
-accessible
38 partitions
, and optionally BIOS
-bootable partitions on Macs. EFI
-compatbile
39 OSes
, including Linux
, provide boot loaders that rEFInd can detect and
40 launch. rEFInd can launch Linux EFI boot loaders such as ELILO
, GRUB
41 Legacy
, GRUB
2, and
3.3.0 and later kernels with EFI stub support. EFI
42 filesystem drivers
for ext2
/3/4fs
, ReiserFS
, HFS
+, and ISO
-9660 enable
43 rEFInd to
read boot loaders from these filesystems
, too. rEFInd's ability
44 to detect boot loaders at runtime makes it very easy to use
, particularly
45 when paired with Linux kernels that provide EFI stub support.
51 if [[ -d
/usr
/local/UDK2010
]] ; then
60 rm -rf $RPM_BUILD_ROOT
61 mkdir -p $RPM_BUILD_ROOT
/usr
/share
/refind
-%{version}/refind
/
63 # Copy the rEFInd binaries (rEFInd proper and drivers) to /usr/share/refind-%{version},
64 # including signing the binaries if sbsign is installed and a %{keydir}/refind.key file
66 declare SBSign
=`which sbsign
2> /dev
/null`
67 if [[ -f
%{keydir}/refind.key
&& -x $SBSign
]] ; then
68 $SBSign
--key
%{keydir}/refind.key --cert %{keydir}/refind.crt --output $RPM_BUILD_ROOT/usr/share/refind-%{version}/refind/refind_%{efiarch}.efi refind/refind_%{efiarch}.efi
69 mkdir -p $RPM_BUILD_ROOT
/usr
/share
/refind
-%{version}/refind/drivers_%{efiarch}
70 for File
in `ls drivers_
%{efiarch}/*_x64.efi`
; do
71 $SBSign
--key
%{keydir}/refind.key --cert %{keydir}/refind.crt --output $RPM_BUILD_ROOT/usr/share/refind-%{version}/refind
/$File $File
74 install -Dp
-m0644 refind
/refind
*.efi $RPM_BUILD_ROOT
/usr
/share
/refind
-%{version}/refind
/
75 cp
-a drivers_
* $RPM_BUILD_ROOT
/usr
/share
/refind
-%{version}/refind
/
78 # Copy configuration and support files to /usr/share/refind-%{version}
79 install -Dp
-m0644 refind.conf
-sample $RPM_BUILD_ROOT
/usr
/share
/refind
-%{version}/refind
/
80 cp
-a icons $RPM_BUILD_ROOT
/usr
/share
/refind
-%{version}/refind
/
81 install -Dp
-m0755
install.sh $RPM_BUILD_ROOT
/usr
/share
/refind
-%{version}/
83 # Copy documentation to /usr/share/doc/refind-%{version}
84 mkdir -p $RPM_BUILD_ROOT
/usr
/share
/doc
/refind
-%{version}
85 cp
-a docs
/* $RPM_BUILD_ROOT
/usr
/share
/doc
/refind
-%{version}/
86 install -Dp
-m0644 NEWS.txt COPYING.txt LICENSE.txt README.txt CREDITS.txt $RPM_BUILD_ROOT
/usr
/share
/doc
/refind
-%{version}
88 # Copy keys to /etc/refind.d/keys
89 mkdir -p $RPM_BUILD_ROOT
/etc
/refind.d
/keys
90 install -Dp
-m0644 keys
/* $RPM_BUILD_ROOT
/etc
/refind.d
/keys
92 # Copy mkrlconf.sh to /usr/sbin
93 mkdir -p $RPM_BUILD_ROOT
/usr
/sbin
94 install -Dp
-m0755 mkrlconf.sh $RPM_BUILD_ROOT
/usr
/sbin
/
97 rm -rf $RPM_BUILD_ROOT
100 %defattr(-,root
,root
-)
101 %doc /usr
/share
/doc
/refind
-%{version}
102 /usr
/sbin
/mkrlconf.sh
103 /usr
/share
/refind
-%{version}
107 PATH
=$PATH
:/usr
/local/bin
108 # Remove any existing NVRAM entry for rEFInd, to avoid creating a duplicate.
109 ExistingEntry
=`efibootmgr | grep "rEFInd Boot Manager" | cut
-c
5-8`
110 if [[ -n $ExistingEntry
]] ; then
111 efibootmgr
--bootnum $ExistingEntry
--delete
-bootnum
114 cd /usr
/share
/refind
-%{version}
116 declare VarFile
=`ls
-d
/sys
/firmware
/efi
/vars
/SecureBoot
* 2> /dev
/null`
117 declare ShimFile
=`find
/boot
-name shim\.efi
2> /dev
/null | grep
-v refind | head
-n
1`
118 declare SBSign
=`which sbsign
2> /dev
/null`
119 declare OpenSSL
=`which openssl
2> /dev
/null`
121 # Run the rEFInd installation script. Do so with the --shim option
122 # if Secure Boot mode is suspected and if a shim program can be
123 # found, or without it if not. If a shim installation is attempted
124 # and the sbsign and openssl programs can be found, do the install
125 # using a local signing key. Note that this option is undesirable
126 # for a distribution, since it would then require the user to
127 # enroll an extra MOK. I'm including it here because I'm NOT a
128 # distribution maintainer, and I want to encourage users to use
129 # their own local keys.
130 if [[ -n $VarFile
&& -n $ShimFile
]] ; then
131 if [[ -n $SBSign
&& -n $OpenSSL
]] ; then
132 .
/install.sh
--shim $ShimFile
--localkeys
--yes
134 .
/install.sh
--shim $ShimFile
--yes
140 # CAUTION: Don't create a %preun or a %postun script that deletes the files
141 # installed by install.sh, since that script will run after an update, thus
142 # wiping out the just-updated files.
145 * Mon Dec
31 2012 R Smith
<rodsmith@rodsbooks.com
> - 0.6.2-2
146 - Improved installation procedures
147 * Sun Dec
30 2012 R Smith
<rodsmith@rodsbooks.com
> - 0.6.2
148 - Created spec file
for 0.6.2 release