]> code.delx.au - refind/blobdiff - refind.spec
Fix for refind-install script to handle a wider range of disk devices,
[refind] / refind.spec
index 4ba63f7e9c80578f7d64b52667fcc01dbf668060..c3849cdaa4a11ca1b7e1ccc165cf40e902778a68 100644 (file)
@@ -1,12 +1,12 @@
 Summary: EFI boot manager software
 Name: refind
-Version: 0.6.8
+Version: 0.10.3
 Release: 1%{?dist}
 Summary: EFI boot manager software
 License: GPLv3
 URL: http://www.rodsbooks.com/refind/
 Group: System Environment/Base
-Source: refind-src-%version.zip
+Source: refind-src-%version.tar.gz
 Requires: efibootmgr
 BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
 
@@ -36,20 +36,21 @@ BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
 A graphical boot manager for EFI- and UEFI-based computers, such as all
 Intel-based Macs and recent (most 2011 and later) PCs. rEFInd presents a
 boot menu showing all the EFI boot loaders on the EFI-accessible
-partitions, and optionally BIOS-bootable partitions on Macs. EFI-compatbile
-OSes, including Linux, provide boot loaders that rEFInd can detect and
-launch. rEFInd can launch Linux EFI boot loaders such as ELILO, GRUB
-Legacy, GRUB 2, and 3.3.0 and later kernels with EFI stub support. EFI
-filesystem drivers for ext2/3/4fs, ReiserFS, HFS+, and ISO-9660 enable
-rEFInd to read boot loaders from these filesystems, too. rEFInd's ability
-to detect boot loaders at runtime makes it very easy to use, particularly
-when paired with Linux kernels that provide EFI stub support.
+partitions, and optionally BIOS-bootable partitions on Macs and BIOS boot
+entries on UEFI PCs with CSMs. EFI-compatible OSes, including Linux,
+provide boot loaders that rEFInd can detect and launch. rEFInd can launch
+Linux EFI boot loaders such as ELILO, GRUB Legacy, GRUB 2, and 3.3.0 and
+later kernels with EFI stub support. EFI filesystem drivers for ext2/3/4fs,
+ReiserFS, Btrfs, NTFS, HFS+, and ISO-9660 enable rEFInd to read boot
+loaders from these filesystems, too. rEFInd's ability to detect boot
+loaders at runtime makes it very easy to use, particularly when paired with
+Linux kernels that provide EFI stub support.
 
 %prep
 %setup -q
 
 %build
-if [[ -d /usr/local/UDK2010 ]] ; then
+if [[ -d /usr/local/UDK2014 ]] ; then
    make
    make fs
 else
@@ -71,30 +72,45 @@ if [[ -f %{keydir}/refind.key && -x $SBSign ]] ; then
    for File in `ls drivers_%{efiarch}/*_x64.efi` ; do
       $SBSign --key %{keydir}/refind.key --cert %{keydir}/refind.crt --output $RPM_BUILD_ROOT/usr/share/refind-%{version}/refind/$File $File
    done
+   mkdir -p $RPM_BUILD_ROOT/usr/share/refind-%{version}/refind/tools_%{efiarch}
+   $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
 else
    install -Dp -m0644 refind/refind*.efi $RPM_BUILD_ROOT/usr/share/refind-%{version}/refind/
    mkdir -p $RPM_BUILD_ROOT/usr/share/refind-%{version}/refind/drivers_%{efiarch}
    cp -a drivers_%{efiarch}/* $RPM_BUILD_ROOT/usr/share/refind-%{version}/refind/drivers_%{efiarch}/
+   mkdir -p $RPM_BUILD_ROOT/usr/share/refind-%{version}/refind/tools_%{efiarch}
+   install -Dp -m0644 gptsync/gptsync_%{efiarch}.efi $RPM_BUILD_ROOT/usr/share/refind-%{version}/refind/tools_%{efiarch}/gptsync_%{efiarch}.efi
 fi
 
 # Copy configuration and support files to /usr/share/refind-%{version}
 install -Dp -m0644 refind.conf-sample $RPM_BUILD_ROOT/usr/share/refind-%{version}/refind/
 cp -a icons $RPM_BUILD_ROOT/usr/share/refind-%{version}/refind/
-install -Dp -m0755 install.sh $RPM_BUILD_ROOT/usr/share/refind-%{version}/
+rm -rf $RPM_BUILD_ROOT/usr/share/refind-%{version}/refind/icons/svg
+install -Dp -m0755 refind-install $RPM_BUILD_ROOT/usr/share/refind-%{version}/
 
 # Copy documentation to /usr/share/doc/refind-%{version}
 mkdir -p $RPM_BUILD_ROOT/usr/share/doc/refind-%{version}
-cp -a docs/* $RPM_BUILD_ROOT/usr/share/doc/refind-%{version}/
+cp -a docs/Styles $RPM_BUILD_ROOT/usr/share/doc/refind-%{version}/
+cp -a docs/refind $RPM_BUILD_ROOT/usr/share/doc/refind-%{version}/
 install -Dp -m0644 NEWS.txt COPYING.txt LICENSE.txt README.txt CREDITS.txt $RPM_BUILD_ROOT/usr/share/doc/refind-%{version}
 
+# Copy man pages to /usr/share/man/man8
+mkdir -p $RPM_BUILD_ROOT/usr/share/man/man8
+install -Dp -m0644 docs/man/mvrefind.8 $RPM_BUILD_ROOT/usr/share/man/man8
+install -Dp -m0644 docs/man/mkrlconf.8 $RPM_BUILD_ROOT/usr/share/man/man8
+install -Dp -m0644 docs/man/refind-install.8 $RPM_BUILD_ROOT/usr/share/man/man8
+install -Dp -m0644 docs/man/refind-mkdefault.8 $RPM_BUILD_ROOT/usr/share/man/man8
+
 # Copy keys to /etc/refind.d/keys
 mkdir -p $RPM_BUILD_ROOT/etc/refind.d/keys
 install -Dp -m0644 keys/* $RPM_BUILD_ROOT/etc/refind.d/keys
 
 # Copy scripts to /usr/sbin
 mkdir -p $RPM_BUILD_ROOT/usr/sbin
-install -Dp -m0755 mkrlconf.sh $RPM_BUILD_ROOT/usr/sbin/
-install -Dp -m0755 mvrefind.sh $RPM_BUILD_ROOT/usr/sbin/
+install -Dp -m0755 mkrlconf $RPM_BUILD_ROOT/usr/sbin/
+install -Dp -m0755 mvrefind $RPM_BUILD_ROOT/usr/sbin/
+install -Dp -m0755 refind-mkdefault $RPM_BUILD_ROOT/usr/sbin/
+ln -sr $RPM_BUILD_ROOT/usr/share/refind-%{version}/refind-install $RPM_BUILD_ROOT/usr/sbin
 
 # Copy banners and fonts to /usr/share/refind-%{version}
 cp -a banners $RPM_BUILD_ROOT/usr/share/refind-%{version}/
@@ -106,8 +122,11 @@ cp -a fonts $RPM_BUILD_ROOT/usr/share/refind-%{version}/
 %files
 %defattr(-,root,root -)
 %doc /usr/share/doc/refind-%{version}
-/usr/sbin/mkrlconf.sh
-/usr/sbin/mvrefind.sh
+%doc /usr/share/man/man8
+/usr/sbin/mkrlconf
+/usr/sbin/mvrefind
+/usr/sbin/refind-install
+/usr/sbin/refind-mkdefault
 /usr/share/refind-%{version}
 /etc/refind.d/
 
@@ -116,39 +135,81 @@ PATH=$PATH:/usr/local/bin
 # Remove any existing NVRAM entry for rEFInd, to avoid creating a duplicate.
 ExistingEntry=`efibootmgr | grep "rEFInd Boot Manager" | cut -c 5-8`
 if [[ -n $ExistingEntry ]] ; then
-   efibootmgr --bootnum $ExistingEntry --delete-bootnum
+   efibootmgr --bootnum $ExistingEntry --delete-bootnum &> /dev/null
 fi
 
 cd /usr/share/refind-%{version}
 
-declare VarFile=`ls -d /sys/firmware/efi/vars/SecureBoot* 2> /dev/null`
-declare ShimFile=`find /boot -name shim\.efi 2> /dev/null | head -n 1`
+if [[ -f /sys/firmware/efi/vars/SecureBoot-8be4df61-93ca-11d2-aa0d-00e098032b8c/data ]] ; then
+   IsSecureBoot=`od -An -t u1 /sys/firmware/efi/vars/SecureBoot-8be4df61-93ca-11d2-aa0d-00e098032b8c/data | tr -d '[[:space:]]'`
+else
+   IsSecureBoot="0"
+fi
+# Note: Two find operations for ShimFile favors shim over PreLoader -- if both are
+# present, the script uses shim rather than PreLoader.
+declare ShimFile=`find /boot -name shim\.efi -o -name shimx64\.efi -o -name PreLoader\.efi 2> /dev/null | head -n 1`
+if [[ ! -n $ShimFile ]] ; then
+   declare ShimFile=`find /boot -name PreLoader\.efi 2> /dev/null | head -n 1`
+fi
 declare SBSign=`which sbsign 2> /dev/null`
 declare OpenSSL=`which openssl 2> /dev/null`
 
 # Run the rEFInd installation script. Do so with the --shim option
 # if Secure Boot mode is suspected and if a shim program can be
-# found, or without it if not. If a shim installation is attempted
-# and the sbsign and openssl programs can be found, do the install
-# using a local signing key. Note that this option is undesirable
-# for a distribution, since it would then require the user to
-# enroll an extra MOK. I'm including it here because I'm NOT a
-# distribution maintainer, and I want to encourage users to use
-# their own local keys.
-if [[ -n $VarFile && -n $ShimFile ]] ; then
+# found, or without it if not. If the sbsign and openssl programs
+# can be found, do the install using a local signing key. Note that
+# this option is undesirable for a distribution, since it would
+# then require the user to enroll an extra MOK. I'm including it
+# here because I'm NOT a distribution maintainer, and I want to
+# encourage users to use their own local keys.
+if [[ $IsSecureBoot == "1" && -n $ShimFile ]] ; then
    if [[ -n $SBSign && -n $OpenSSL ]] ; then
-      ./install.sh --shim $ShimFile --localkeys --yes
+      ./refind-install --shim $ShimFile --localkeys --yes
    else
-      ./install.sh --shim $ShimFile --yes
+      ./refind-install --shim $ShimFile --yes
    fi
 else
-   ./install.sh --yes
+   ./refind-install --yes
 fi
 
 # CAUTION: Don't create a %preun or a %postun script that deletes the files
-# installed by install.sh, since that script will run after an update, thus
-# wiping out the just-updated files.
+# installed by refind-install, since that script will run after an update,
+# thus wiping out the just-updated files.
 
 %changelog
-* Sun Feb 3 2013 R Smith <rodsmith@rodsbooks.com> - 0.6.7
-- Created spec file for 0.6.7 release
+* Sun Apr 24 2016 R Smith <rodsmith@rodsbooks.com> - 0.10.3
+- Updated spec file for 0.10.3
+* Tue Jan 26 2016 R Smith <rodsmith@rodsbooks.com> - 0.10.2
+- Updated spec file for 0.10.2
+* Sat Dec 12 2015 R Smith <rodsmith@rodsbooks.com> - 0.10.1
+- Updated spec file for 0.10.1
+* Sun Nov 8 2015 R Smith <rodsmith@rodsbooks.com> - 0.10.0
+- Updated spec file for 0.10.0
+* Sat Sep 19 2015 R Smith <rodsmith@rodsbooks.com> - 0.9.2
+- Updated spec file for 0.9.2
+* Sun Sep 13 2015 R Smith <rodsmith@rodsbooks.com> - 0.9.1
+- Updated spec file for 0.9.1
+* Sun Jul 26 2015 R Smith <rodsmith@rodsbooks.com> - 0.9.0
+- Updated spec file for 0.9.0
+* Sun Mar 1 2015 R Smith <rodsmith@rodsbooks.com> - 0.8.7
+- Updated spec file for 0.8.7
+* Sun Feb 8 2015 R Smith <rodsmith@rodsbooks.com> - 0.8.6
+- Updated spec file for 0.8.6
+* Sun Feb 1 2015 R Smith <rodsmith@rodsbooks.com> - 0.8.5
+- Updated spec file for 0.8.5
+* Mon Dec 8 2014 R Smith <rodsmith@rodsbooks.com> - 0.8.4
+- Updated spec file for 0.8.4
+* Sun Jul 6 2014 R Smith <rodsmith@rodsbooks.com> - 0.8.3
+- Updated spec file for 0.8.3
+* Sun Jun 8 2014 R Smith <rodsmith@rodsbooks.com> - 0.8.2
+- Updated spec file for 0.8.2
+* Thu May 15 2014 R Smith <rodsmith@rodsbooks.com> - 0.8.1
+- Updated spec file for 0.8.1
+* Sun May 4 2014 R Smith <rodsmith@rodsbooks.com> - 0.8.0
+- Updated spec file for 0.8.0
+* Sun Apr 20 2014 R Smith <rodsmith@rodsbooks.com> - 0.7.9
+- Updated spec file for 0.7.9
+* Sun Mar 9 2014 R Smith <rodsmith@rodsbooks.com> - 0.7.8
+- Updated spec file for 0.7.8
+* Fri Jan 3 2014 R Smith <rodsmith@rodsbooks.com> - 0.7.7
+- Created spec file for 0.7.7 release