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
74 mkdir -p $RPM_BUILD_ROOT
/usr
/share
/refind
-%{version}/refind/tools_%{efiarch}
75 $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
77 install -Dp
-m0644 refind
/refind
*.efi $RPM_BUILD_ROOT
/usr
/share
/refind
-%{version}/refind
/
78 mkdir -p $RPM_BUILD_ROOT
/usr
/share
/refind
-%{version}/refind/drivers_%{efiarch}
79 cp
-a drivers_
%{efiarch}/* $RPM_BUILD_ROOT/usr/share/refind-%{version}/refind/drivers_%{efiarch}/
80 mkdir -p $RPM_BUILD_ROOT
/usr
/share
/refind
-%{version}/refind/tools_%{efiarch}
81 install -Dp
-m0644 gptsync
/gptsync_
%{efiarch}.efi $RPM_BUILD_ROOT/usr/share/refind-%{version}/refind/tools_%{efiarch}/gptsync_%{efiarch}.efi
84 # Copy configuration and support files to /usr/share/refind-%{version}
85 install -Dp
-m0644 refind.conf
-sample $RPM_BUILD_ROOT
/usr
/share
/refind
-%{version}/refind
/
86 cp
-a icons $RPM_BUILD_ROOT
/usr
/share
/refind
-%{version}/refind
/
87 install -Dp
-m0755
install.sh $RPM_BUILD_ROOT
/usr
/share
/refind
-%{version}/
89 # Copy documentation to /usr/share/doc/refind-%{version}
90 mkdir -p $RPM_BUILD_ROOT
/usr
/share
/doc
/refind
-%{version}
91 cp
-a docs
/* $RPM_BUILD_ROOT
/usr
/share
/doc
/refind
-%{version}/
92 install -Dp
-m0644 NEWS.txt COPYING.txt LICENSE.txt README.txt CREDITS.txt $RPM_BUILD_ROOT
/usr
/share
/doc
/refind
-%{version}
94 # Copy keys to /etc/refind.d/keys
95 mkdir -p $RPM_BUILD_ROOT
/etc
/refind.d
/keys
96 install -Dp
-m0644 keys
/* $RPM_BUILD_ROOT
/etc
/refind.d
/keys
98 # Copy scripts to /usr/sbin
99 mkdir -p $RPM_BUILD_ROOT
/usr
/sbin
100 install -Dp
-m0755 mkrlconf.sh $RPM_BUILD_ROOT
/usr
/sbin
/
101 install -Dp
-m0755 mvrefind.sh $RPM_BUILD_ROOT
/usr
/sbin
/
103 # Copy banners and fonts to /usr/share/refind-%{version}
104 cp
-a banners $RPM_BUILD_ROOT
/usr
/share
/refind
-%{version}/
105 cp
-a fonts $RPM_BUILD_ROOT
/usr
/share
/refind
-%{version}/
108 #rm -rf $RPM_BUILD_ROOT
111 %defattr(-,root
,root
-)
112 %doc /usr
/share
/doc
/refind
-%{version}
113 /usr
/sbin
/mkrlconf.sh
114 /usr
/sbin
/mvrefind.sh
115 /usr
/share
/refind
-%{version}
119 PATH
=$PATH
:/usr
/local/bin
120 # Remove any existing NVRAM entry for rEFInd, to avoid creating a duplicate.
121 ExistingEntry
=`efibootmgr | grep "rEFInd Boot Manager" | cut
-c
5-8`
122 if [[ -n $ExistingEntry
]] ; then
123 efibootmgr
--bootnum $ExistingEntry
--delete
-bootnum
126 cd /usr
/share
/refind
-%{version}
128 declare VarFile
=`ls
-d
/sys
/firmware
/efi
/vars
/SecureBoot
* 2> /dev
/null`
129 declare ShimFile
=`find
/boot
-name shim\.efi
2> /dev
/null | head
-n
1`
130 if [[ ! -n $ShimFile
]] ; then
131 declare ShimFile
=`find
/boot
-name PreLoader\.efi
2> /dev
/null | head
-n
1`
133 declare SBSign
=`which sbsign
2> /dev
/null`
134 declare OpenSSL
=`which openssl
2> /dev
/null`
136 # Run the rEFInd installation script. Do so with the --shim option
137 # if Secure Boot mode is suspected and if a shim program can be
138 # found, or without it if not. If a shim installation is attempted
139 # and the sbsign and openssl programs can be found, do the install
140 # using a local signing key. Note that this option is undesirable
141 # for a distribution, since it would then require the user to
142 # enroll an extra MOK. I'm including it here because I'm NOT a
143 # distribution maintainer, and I want to encourage users to use
144 # their own local keys.
145 if [[ -n $VarFile
&& -n $ShimFile
]] ; then
146 if [[ -n $SBSign
&& -n $OpenSSL
]] ; then
147 .
/install.sh
--shim $ShimFile
--localkeys
--yes
149 .
/install.sh
--shim $ShimFile
--yes
155 # CAUTION: Don't create a %preun or a %postun script that deletes the files
156 # installed by install.sh, since that script will run after an update, thus
157 # wiping out the just-updated files.
160 * Sun Dec
15 2013 R Smith
<rodsmith@rodsbooks.com
> - 0.7.6
161 - Created spec file
for 0.7.6 release