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.zip
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 install -Dp
-m0755
install.sh $RPM_BUILD_ROOT
/usr
/share
/refind
-%{version}/
90 # Copy documentation to /usr/share/doc/refind-%{version}
91 mkdir -p $RPM_BUILD_ROOT
/usr
/share
/doc
/refind
-%{version}
92 cp
-a docs
/* $RPM_BUILD_ROOT
/usr
/share
/doc
/refind
-%{version}/
93 install -Dp
-m0644 NEWS.txt COPYING.txt LICENSE.txt README.txt CREDITS.txt $RPM_BUILD_ROOT
/usr
/share
/doc
/refind
-%{version}
95 # Copy keys to /etc/refind.d/keys
96 mkdir -p $RPM_BUILD_ROOT
/etc
/refind.d
/keys
97 install -Dp
-m0644 keys
/* $RPM_BUILD_ROOT
/etc
/refind.d
/keys
99 # Copy scripts to /usr/sbin
100 mkdir -p $RPM_BUILD_ROOT
/usr
/sbin
101 install -Dp
-m0755 mkrlconf.sh $RPM_BUILD_ROOT
/usr
/sbin
/
102 install -Dp
-m0755 mvrefind.sh $RPM_BUILD_ROOT
/usr
/sbin
/
104 # Copy banners and fonts to /usr/share/refind-%{version}
105 cp
-a banners $RPM_BUILD_ROOT
/usr
/share
/refind
-%{version}/
106 cp
-a fonts $RPM_BUILD_ROOT
/usr
/share
/refind
-%{version}/
109 #rm -rf $RPM_BUILD_ROOT
112 %defattr(-,root
,root
-)
113 %doc /usr
/share
/doc
/refind
-%{version}
114 /usr
/sbin
/mkrlconf.sh
115 /usr
/sbin
/mvrefind.sh
116 /usr
/share
/refind
-%{version}
120 PATH
=$PATH
:/usr
/local/bin
121 # Remove any existing NVRAM entry for rEFInd, to avoid creating a duplicate.
122 ExistingEntry
=`efibootmgr | grep "rEFInd Boot Manager" | cut
-c
5-8`
123 if [[ -n $ExistingEntry
]] ; then
124 efibootmgr
--bootnum $ExistingEntry
--delete
-bootnum
&> /dev
/null
127 cd /usr
/share
/refind
-%{version}
129 if [[ -f
/sys
/firmware
/efi
/vars
/SecureBoot
-8be4df61
-93ca
-11d2
-aa0d
-00e098032b8c
/data
]] ; then
130 IsSecureBoot
=`od
-An
-t u1
/sys
/firmware
/efi
/vars
/SecureBoot
-8be4df61
-93ca
-11d2
-aa0d
-00e098032b8c
/data | tr
-d '
[[:space
:]]'`
134 # Note: Two find operations for ShimFile favors shim over PreLoader -- if both are
135 # present, the script uses shim rather than PreLoader.
136 declare ShimFile
=`find
/boot
-name shim\.efi
-o
-name shimx64\.efi
-o
-name PreLoader\.efi
2> /dev
/null | head
-n
1`
137 if [[ ! -n $ShimFile
]] ; then
138 declare ShimFile
=`find
/boot
-name PreLoader\.efi
2> /dev
/null | head
-n
1`
140 declare SBSign
=`which sbsign
2> /dev
/null`
141 declare OpenSSL
=`which openssl
2> /dev
/null`
143 # Run the rEFInd installation script. Do so with the --shim option
144 # if Secure Boot mode is suspected and if a shim program can be
145 # found, or without it if not. If the sbsign and openssl programs
146 # can be found, do the install using a local signing key. Note that
147 # this option is undesirable for a distribution, since it would
148 # then require the user to enroll an extra MOK. I'm including it
149 # here because I'm NOT a distribution maintainer, and I want to
150 # encourage users to use their own local keys.
151 if [[ $IsSecureBoot
== "
1"
&& -n $ShimFile
]] ; then
152 if [[ -n $SBSign
&& -n $OpenSSL
]] ; then
153 .
/install.sh
--shim $ShimFile
--localkeys
--yes
155 .
/install.sh
--shim $ShimFile
--yes
158 if [[ -n $SBSign
&& -n $OpenSSL
]] ; then
159 .
/install.sh
--localkeys
--yes
165 # CAUTION: Don't create a %preun or a %postun script that deletes the files
166 # installed by install.sh, since that script will run after an update, thus
167 # wiping out the just-updated files.
170 * Sun Mar
1 2015 R Smith
<rodsmith@rodsbooks.com
> - 0.8.7
171 - Updated spec file
for 0.8.7
172 * Sun Feb
8 2015 R Smith
<rodsmith@rodsbooks.com
> - 0.8.6
173 - Updated spec file
for 0.8.6
174 * Sun Feb
2 2015 R Smith
<rodsmith@rodsbooks.com
> - 0.8.5
175 - Updated spec file
for 0.8.5
176 * Mon Dec
8 2014 R Smith
<rodsmith@rodsbooks.com
> - 0.8.4
177 - Updated spec file
for 0.8.4
178 * Sun Jul
6 2014 R Smith
<rodsmith@rodsbooks.com
> - 0.8.3
179 - Updated spec file
for 0.8.3
180 * Sun Jun
8 2014 R Smith
<rodsmith@rodsbooks.com
> - 0.8.2
181 - Updated spec file
for 0.8.2
182 * Thu May
15 2014 R Smith
<rodsmith@rodsbooks.com
> - 0.8.1
183 - Updated spec file
for 0.8.1
184 * Sun May
4 2014 R Smith
<rodsmith@rodsbooks.com
> - 0.8.0
185 - Updated spec file
for 0.8.0
186 * Sun Apr
20 2014 R Smith
<rodsmith@rodsbooks.com
> - 0.7.9
187 - Updated spec file
for 0.7.9
188 * Sun Mar
9 2014 R Smith
<rodsmith@rodsbooks.com
> - 0.7.8
189 - Updated spec file
for 0.7.8
190 * Fri Jan
3 2014 R Smith
<rodsmith@rodsbooks.com
> - 0.7.7
191 - Created spec file
for 0.7.7 release