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