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. EFI
-compatbile
40 OSes
, including Linux
, provide boot loaders that rEFInd can detect and
41 launch. rEFInd can launch Linux EFI boot loaders such as ELILO
, GRUB
42 Legacy
, GRUB
2, and
3.3.0 and later kernels with EFI stub support. EFI
43 filesystem drivers
for ext2
/3/4fs
, ReiserFS
, HFS
+, and ISO
-9660 enable
44 rEFInd to
read boot loaders from these filesystems
, too. rEFInd's ability
45 to detect boot loaders at runtime makes it very easy to use
, particularly
46 when paired with Linux kernels that provide EFI stub support.
52 if [[ -d
/usr
/local/UDK2010
]] ; then
61 rm -rf $RPM_BUILD_ROOT
62 mkdir -p $RPM_BUILD_ROOT
/usr
/share
/refind
-%{version}/refind
/
64 # Copy the rEFInd binaries (rEFInd proper and drivers) to /usr/share/refind-%{version},
65 # including signing the binaries if sbsign is installed and a %{keydir}/refind.key file
67 declare SBSign
=`which sbsign
2> /dev
/null`
68 if [[ -f
%{keydir}/refind.key
&& -x $SBSign
]] ; then
69 $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
70 mkdir -p $RPM_BUILD_ROOT
/usr
/share
/refind
-%{version}/refind/drivers_%{efiarch}
71 for File
in `ls drivers_
%{efiarch}/*_x64.efi`
; do
72 $SBSign
--key
%{keydir}/refind.key --cert %{keydir}/refind.crt --output $RPM_BUILD_ROOT/usr/share/refind-%{version}/refind
/$File $File
75 install -Dp
-m0644 refind
/refind
*.efi $RPM_BUILD_ROOT
/usr
/share
/refind
-%{version}/refind
/
76 mkdir -p $RPM_BUILD_ROOT
/usr
/share
/refind
-%{version}/refind/drivers_%{efiarch}
77 cp
-a drivers_
%{efiarch}/* $RPM_BUILD_ROOT/usr/share/refind-%{version}/refind/drivers_%{efiarch}/
80 # Copy configuration and support files to /usr/share/refind-%{version}
81 install -Dp
-m0644 refind.conf
-sample $RPM_BUILD_ROOT
/usr
/share
/refind
-%{version}/refind
/
82 cp
-a icons $RPM_BUILD_ROOT
/usr
/share
/refind
-%{version}/refind
/
83 install -Dp
-m0755
install.sh $RPM_BUILD_ROOT
/usr
/share
/refind
-%{version}/
85 # Copy documentation to /usr/share/doc/refind-%{version}
86 mkdir -p $RPM_BUILD_ROOT
/usr
/share
/doc
/refind
-%{version}
87 cp
-a docs
/* $RPM_BUILD_ROOT
/usr
/share
/doc
/refind
-%{version}/
88 install -Dp
-m0644 NEWS.txt COPYING.txt LICENSE.txt README.txt CREDITS.txt $RPM_BUILD_ROOT
/usr
/share
/doc
/refind
-%{version}
90 # Copy keys to /etc/refind.d/keys
91 mkdir -p $RPM_BUILD_ROOT
/etc
/refind.d
/keys
92 install -Dp
-m0644 keys
/* $RPM_BUILD_ROOT
/etc
/refind.d
/keys
94 # Copy scripts to /usr/sbin
95 mkdir -p $RPM_BUILD_ROOT
/usr
/sbin
96 install -Dp
-m0755 mkrlconf.sh $RPM_BUILD_ROOT
/usr
/sbin
/
97 install -Dp
-m0755 mvrefind.sh $RPM_BUILD_ROOT
/usr
/sbin
/
99 # Copy banners and fonts to /usr/share/refind-%{version}
100 cp
-a banners $RPM_BUILD_ROOT
/usr
/share
/refind
-%{version}/
101 cp
-a fonts $RPM_BUILD_ROOT
/usr
/share
/refind
-%{version}/
104 #rm -rf $RPM_BUILD_ROOT
107 %defattr(-,root
,root
-)
108 %doc /usr
/share
/doc
/refind
-%{version}
109 /usr
/sbin
/mkrlconf.sh
110 /usr
/sbin
/mvrefind.sh
111 /usr
/share
/refind
-%{version}
115 PATH
=$PATH
:/usr
/local/bin
116 # Remove any existing NVRAM entry for rEFInd, to avoid creating a duplicate.
117 ExistingEntry
=`efibootmgr | grep "rEFInd Boot Manager" | cut
-c
5-8`
118 if [[ -n $ExistingEntry
]] ; then
119 efibootmgr
--bootnum $ExistingEntry
--delete
-bootnum
122 cd /usr
/share
/refind
-%{version}
124 declare VarFile
=`ls
-d
/sys
/firmware
/efi
/vars
/SecureBoot
* 2> /dev
/null`
125 declare ShimFile
=`find
/boot
-name shim\.efi
2> /dev
/null | head
-n
1`
126 declare SBSign
=`which sbsign
2> /dev
/null`
127 declare OpenSSL
=`which openssl
2> /dev
/null`
129 # Run the rEFInd installation script. Do so with the --shim option
130 # if Secure Boot mode is suspected and if a shim program can be
131 # found, or without it if not. If a shim installation is attempted
132 # and the sbsign and openssl programs can be found, do the install
133 # using a local signing key. Note that this option is undesirable
134 # for a distribution, since it would then require the user to
135 # enroll an extra MOK. I'm including it here because I'm NOT a
136 # distribution maintainer, and I want to encourage users to use
137 # their own local keys.
138 if [[ -n $VarFile
&& -n $ShimFile
]] ; then
139 if [[ -n $SBSign
&& -n $OpenSSL
]] ; then
140 .
/install.sh
--shim $ShimFile
--localkeys
--yes
142 .
/install.sh
--shim $ShimFile
--yes
148 # CAUTION: Don't create a %preun or a %postun script that deletes the files
149 # installed by install.sh, since that script will run after an update, thus
150 # wiping out the just-updated files.
153 * Sun Feb
3 2013 R Smith
<rodsmith@rodsbooks.com
> - 0.6.7
154 - Created spec file
for 0.6.7 release