1 Summary: EFI boot manager software
5 Summary: EFI boot manager software
7 URL: http
://www.rodsbooks.com
/refind
/
8 Group: System Environment
/Base
9 Source: refind
-src
-%version.tar.gz
11 BuildRoot: %
(mktemp
-ud
%{_tmppath}/%{name}-%{version}-%{release}-XXXXXX
)
13 %define efiarch unknown
30 # Directory in which refind.key and refind.crt files are found for
31 # signing of binaries. If absent, binaries are copied unsigned.
32 %define keydir
/mnt
/refind
36 A graphical boot manager
for EFI
- and UEFI
-based computers
, such as all
37 Intel
-based Macs and recent
(most
2011 and later
) PCs. rEFInd presents a
38 boot menu showing all the EFI boot loaders on the EFI
-accessible
39 partitions
, and optionally BIOS
-bootable partitions on Macs and BIOS boot
40 entries on UEFI PCs with CSMs. EFI
-compatbile OSes
, including Linux
,
41 provide boot loaders that rEFInd can detect and launch. rEFInd can launch
42 Linux EFI boot loaders such as ELILO
, GRUB Legacy
, GRUB
2, and
3.3.0 and
43 later kernels with EFI stub support. EFI filesystem drivers
for ext2
/3/4fs
,
44 ReiserFS
, Btrfs
, NTFS
, HFS
+, and ISO
-9660 enable rEFInd to
read boot
45 loaders from these filesystems
, too. rEFInd's ability to detect boot
46 loaders at runtime makes it very easy to use
, particularly when paired with
47 Linux kernels that provide EFI stub support.
53 if [[ -d
/usr
/local/UDK2014
]] ; then
62 rm -rf $RPM_BUILD_ROOT
63 mkdir -p $RPM_BUILD_ROOT
/usr
/share
/refind
-%{version}/refind
/
65 # Copy the rEFInd binaries (rEFInd proper and drivers) to /usr/share/refind-%{version},
66 # including signing the binaries if sbsign is installed and a %{keydir}/refind.key file
68 declare SBSign
=`which sbsign
2> /dev
/null`
69 if [[ -f
%{keydir}/refind.key
&& -x $SBSign
]] ; then
70 $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
71 mkdir -p $RPM_BUILD_ROOT
/usr
/share
/refind
-%{version}/refind/drivers_%{efiarch}
72 for File
in `ls drivers_
%{efiarch}/*_x64.efi`
; do
73 $SBSign
--key
%{keydir}/refind.key --cert %{keydir}/refind.crt --output $RPM_BUILD_ROOT/usr/share/refind-%{version}/refind
/$File $File
75 mkdir -p $RPM_BUILD_ROOT
/usr
/share
/refind
-%{version}/refind/tools_%{efiarch}
76 $SBSign
--key
%{keydir}/refind.key --cert %{keydir}/refind.crt --output $RPM_BUILD_ROOT/usr/share/refind-%{version}/refind/tools_%{efiarch}/gptsync_%{efiarch}.efi gptsync/gptsync_%{efiarch}.efi
78 install -Dp
-m0644 refind
/refind
*.efi $RPM_BUILD_ROOT
/usr
/share
/refind
-%{version}/refind
/
79 mkdir -p $RPM_BUILD_ROOT
/usr
/share
/refind
-%{version}/refind/drivers_%{efiarch}
80 cp
-a drivers_
%{efiarch}/* $RPM_BUILD_ROOT/usr/share/refind-%{version}/refind/drivers_%{efiarch}/
81 mkdir -p $RPM_BUILD_ROOT
/usr
/share
/refind
-%{version}/refind/tools_%{efiarch}
82 install -Dp
-m0644 gptsync
/gptsync_
%{efiarch}.efi $RPM_BUILD_ROOT/usr/share/refind-%{version}/refind/tools_%{efiarch}/gptsync_%{efiarch}.efi
85 # Copy configuration and support files to /usr/share/refind-%{version}
86 install -Dp
-m0644 refind.conf
-sample $RPM_BUILD_ROOT
/usr
/share
/refind
-%{version}/refind
/
87 cp
-a icons $RPM_BUILD_ROOT
/usr
/share
/refind
-%{version}/refind
/
88 rm -rf $RPM_BUILD_ROOT
/usr
/share
/refind
-%{version}/refind
/icons
/svg
89 install -Dp
-m0755 refind
-install $RPM_BUILD_ROOT
/usr
/share
/refind
-%{version}/
91 # Copy documentation to /usr/share/doc/refind-%{version}
92 mkdir -p $RPM_BUILD_ROOT
/usr
/share
/doc
/refind
-%{version}
93 cp
-a docs
/* $RPM_BUILD_ROOT
/usr
/share
/doc
/refind
-%{version}/
94 install -Dp
-m0644 NEWS.txt COPYING.txt LICENSE.txt README.txt CREDITS.txt $RPM_BUILD_ROOT
/usr
/share
/doc
/refind
-%{version}
96 # Copy keys to /etc/refind.d/keys
97 mkdir -p $RPM_BUILD_ROOT
/etc
/refind.d
/keys
98 install -Dp
-m0644 keys
/* $RPM_BUILD_ROOT
/etc
/refind.d
/keys
100 # Copy scripts to /usr/sbin
101 mkdir -p $RPM_BUILD_ROOT
/usr
/sbin
102 install -Dp
-m0755 mkrlconf $RPM_BUILD_ROOT
/usr
/sbin
/
103 install -Dp
-m0755 mvrefind $RPM_BUILD_ROOT
/usr
/sbin
/
105 # Copy banners and fonts to /usr/share/refind-%{version}
106 cp
-a banners $RPM_BUILD_ROOT
/usr
/share
/refind
-%{version}/
107 cp
-a fonts $RPM_BUILD_ROOT
/usr
/share
/refind
-%{version}/
110 #rm -rf $RPM_BUILD_ROOT
113 %defattr(-,root
,root
-)
114 %doc /usr
/share
/doc
/refind
-%{version}
117 /usr
/share
/refind
-%{version}
121 PATH
=$PATH
:/usr
/local/bin
122 # Remove any existing NVRAM entry for rEFInd, to avoid creating a duplicate.
123 ExistingEntry
=`efibootmgr | grep "rEFInd Boot Manager" | cut
-c
5-8`
124 if [[ -n $ExistingEntry
]] ; then
125 efibootmgr
--bootnum $ExistingEntry
--delete
-bootnum
&> /dev
/null
128 cd /usr
/share
/refind
-%{version}
130 if [[ -f
/sys
/firmware
/efi
/vars
/SecureBoot
-8be4df61
-93ca
-11d2
-aa0d
-00e098032b8c
/data
]] ; then
131 IsSecureBoot
=`od
-An
-t u1
/sys
/firmware
/efi
/vars
/SecureBoot
-8be4df61
-93ca
-11d2
-aa0d
-00e098032b8c
/data | tr
-d '
[[:space
:]]'`
135 # Note: Two find operations for ShimFile favors shim over PreLoader -- if both are
136 # present, the script uses shim rather than PreLoader.
137 declare ShimFile
=`find
/boot
-name shim\.efi
-o
-name shimx64\.efi
-o
-name PreLoader\.efi
2> /dev
/null | head
-n
1`
138 if [[ ! -n $ShimFile
]] ; then
139 declare ShimFile
=`find
/boot
-name PreLoader\.efi
2> /dev
/null | head
-n
1`
141 declare SBSign
=`which sbsign
2> /dev
/null`
142 declare OpenSSL
=`which openssl
2> /dev
/null`
144 # Run the rEFInd installation script. Do so with the --shim option
145 # if Secure Boot mode is suspected and if a shim program can be
146 # found, or without it if not. If the sbsign and openssl programs
147 # can be found, do the install using a local signing key. Note that
148 # this option is undesirable for a distribution, since it would
149 # then require the user to enroll an extra MOK. I'm including it
150 # here because I'm NOT a distribution maintainer, and I want to
151 # encourage users to use their own local keys.
152 if [[ $IsSecureBoot
== "
1"
&& -n $ShimFile
]] ; then
153 if [[ -n $SBSign
&& -n $OpenSSL
]] ; then
154 .
/refind
-install --shim $ShimFile
--localkeys
--yes
156 .
/refind
-install --shim $ShimFile
--yes
159 if [[ -n $SBSign
&& -n $OpenSSL
]] ; then
160 .
/refind
-install --localkeys
--yes
162 .
/refind
-install --yes
166 # CAUTION: Don't create a %preun or a %postun script that deletes the files
167 # installed by refind-install, since that script will run after an update,
168 # thus wiping out the just-updated files.
171 * Sat Sep
19 2015 R Smith
<rodsmith@rodsbooks.com
> - 0.9.2
172 - Updated spec file
for 0.9.2
173 * Sun Sep
13 2015 R Smith
<rodsmith@rodsbooks.com
> - 0.9.1
174 - Updated spec file
for 0.9.1
175 * Sun Jul
26 2015 R Smith
<rodsmith@rodsbooks.com
> - 0.9.0
176 - Updated spec file
for 0.9.0
177 * Sun Mar
1 2015 R Smith
<rodsmith@rodsbooks.com
> - 0.8.7
178 - Updated spec file
for 0.8.7
179 * Sun Feb
8 2015 R Smith
<rodsmith@rodsbooks.com
> - 0.8.6
180 - Updated spec file
for 0.8.6
181 * Sun Feb
2 2015 R Smith
<rodsmith@rodsbooks.com
> - 0.8.5
182 - Updated spec file
for 0.8.5
183 * Mon Dec
8 2014 R Smith
<rodsmith@rodsbooks.com
> - 0.8.4
184 - Updated spec file
for 0.8.4
185 * Sun Jul
6 2014 R Smith
<rodsmith@rodsbooks.com
> - 0.8.3
186 - Updated spec file
for 0.8.3
187 * Sun Jun
8 2014 R Smith
<rodsmith@rodsbooks.com
> - 0.8.2
188 - Updated spec file
for 0.8.2
189 * Thu May
15 2014 R Smith
<rodsmith@rodsbooks.com
> - 0.8.1
190 - Updated spec file
for 0.8.1
191 * Sun May
4 2014 R Smith
<rodsmith@rodsbooks.com
> - 0.8.0
192 - Updated spec file
for 0.8.0
193 * Sun Apr
20 2014 R Smith
<rodsmith@rodsbooks.com
> - 0.7.9
194 - Updated spec file
for 0.7.9
195 * Sun Mar
9 2014 R Smith
<rodsmith@rodsbooks.com
> - 0.7.8
196 - Updated spec file
for 0.7.8
197 * Fri Jan
3 2014 R Smith
<rodsmith@rodsbooks.com
> - 0.7.7
198 - Created spec file
for 0.7.7 release