]> code.delx.au - refind/commitdiff
0.6.8 version.
authorsrs5694 <srs5694@users.sourceforge.net>
Mon, 18 Mar 2013 22:16:12 +0000 (18:16 -0400)
committersrs5694 <srs5694@users.sourceforge.net>
Mon, 18 Mar 2013 22:16:12 +0000 (18:16 -0400)
24 files changed:
NEWS.txt
docs/refind/bootmode.html
docs/refind/configfile.html
docs/refind/drivers.html
docs/refind/features.html
docs/refind/getting.html
docs/refind/index.html
docs/refind/installing.html
docs/refind/linux.html
docs/refind/revisions.html
docs/refind/secureboot.html
docs/refind/themes.html
docs/refind/todo.html
docs/refind/using.html
filesystems/fsw_efi.c
install.sh
libeg/image.c
mkcdimage
refind.spec
refind/config.c
refind/global.h
refind/lib.c
refind/main.c
refind/menu.c

index ed90b3f1d72258c914629af355bda481c8c647c2..60935fc505fa1886151917eec4b3e58693fdbe58 100644 (file)
--- a/NEWS.txt
+++ b/NEWS.txt
@@ -1,5 +1,14 @@
-0.6.8 (?/?/2013):
------------------
+0.6.8 (3/18/2013):
+------------------
+
+- Added workaround for presumed EFI bug that was causing "Invalid
+  Parameter" errors when scanning for boot loaders on some computers.
+
+- Added search for an EFI shell called shell.efi in the root directory
+  (previously this name was only accepted in EFI\tools).
+
+- Fixed bug in install.sh that caused it to fail on some systems (Fedora
+  18, for instance) because of a problem identifying the ESP.
 
 - Fixed bug that caused icons named after boot loaders to not be used.
 
index c08bb36ff4b8868ba29075bb24c3852cb45494c2..c9120231b5f67b358845d6e52e9ce43c7da29264 100644 (file)
@@ -14,8 +14,8 @@
   <p class="subhead">by Roderick W. Smith, <a\r
 href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>\r
 \r
-<p>Originally written: 3/14/2013; last Web page update:\r
-2/3/2012, referencing rEFInd 0.6.7</p>\r
+<p>Originally written: 3/14/2012; last Web page update:\r
+3/18/2013, referencing rEFInd 0.6.8</p>\r
 \r
 \r
 <p>I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!</p>\r
index f32d333296331828e00c1ff830aeaa37c3760fa1..6a49a25d2e3dd40993c0b0cb454cdbc8809f217e 100644 (file)
@@ -15,7 +15,7 @@
 href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 
 <p>Originally written: 3/14/2012; last Web page update:
-2/3/2013, referencing rEFInd 0.6.7</p>
+3/18/2013, referencing rEFInd 0.6.8</p>
 
 
 <p>I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!</p>
index 579014cf975bef06f5290a5ba623c3a2d66d9692..cc8dd50a9742b798fcad37e1778deed08655f6fe 100644 (file)
@@ -15,7 +15,7 @@
 href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 
 <p>Originally written: 4/19/2012; last Web page update:
-2/3/2013, referencing rEFInd 0.6.7</p>
+3/18/2013, referencing rEFInd 0.6.8</p>
 
 
 <p>I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!</p>
index c074c07c08df867ad5608af24ac4c424c075e02a..9d75cca9ddaf32b846349ecae9b2f00b6658c46f 100644 (file)
@@ -15,7 +15,7 @@
 href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 
 <p>Originally written: 3/14/2012; last Web page update:
-2/3/2013, referencing rEFInd 0.6.7</p>
+3/18/2013, referencing rEFInd 0.6.8</p>
 
 <p>I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!</p>
 
index 54169862237e09d45c798be4599f9000cafd1318..bf8e718663464cfbedef387c80fc21a2d4097e84 100644 (file)
@@ -15,7 +15,7 @@ F<?xml version="1.0" encoding="utf-8" standalone="no"?>
 href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 
 <p>Originally written: 3/14/2012; last Web page update:
-2/8/2013, referencing rEFInd 0.6.7</p>
+3/18/2013, referencing rEFInd 0.6.8</p>
 
 <p>I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!</p>
 
@@ -98,7 +98,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 <ul>
 
 <li><b><a
-    href="http://sourceforge.net/projects/refind/files/0.6.7/refind-src-0.6.7.zip/download">A
+    href="http://sourceforge.net/projects/refind/files/0.6.8/refind-src-0.6.8.zip/download">A
     source code zip file</a></b>&mdash;This is useful if you want to compile
     the software locally. Note that I use Linux with the <a
     href="https://sourceforge.net/projects/tianocore/">TianoCore EFI
@@ -107,7 +107,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
     development tools are also supported.</li>
 
 <li><b><a
-    href="http://sourceforge.net/projects/refind/files/0.6.7/refind-bin-0.6.7.zip/download">A
+    href="http://sourceforge.net/projects/refind/files/0.6.8/refind-bin-0.6.8.zip/download">A
     binary zip file</a></b>&mdash;Download this if you want to install
     rEFInd and/or its filesystem drivers on an <i>x</i>86 or <i>x</i>86-64
     computer and have no need to test rEFInd first by booting it on an
@@ -117,7 +117,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
     href="installing.html">Installing rEFInd</a> page.</li>
 
 <li><b><a
-    href="http://sourceforge.net/projects/refind/files/0.6.7/refind-0.6.7-1.x86_64.rpm/download">A
+    href="http://sourceforge.net/projects/refind/files/0.6.8/refind-0.6.8-1.x86_64.rpm/download">A
     binary RPM file</a></b>&mdash;If you use an RPM-based <i>x</i>86-64
     Linux system such as Fedora or openSUSE, you can install the binary RPM
     package rather than use the binary zip file. (I don't provide an
@@ -126,13 +126,13 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
     rEFInd</a> page) as part of the installation process. Distribution
     maintainers can examine the <tt>refind.spec</tt> file in the source
     package and tweak it to their needs. The <a
-    href="http://sourceforge.net/projects/refind/files/0.6.7/refind-0.6.7-1.src.rpm/download">source
+    href="http://sourceforge.net/projects/refind/files/0.6.8/refind-0.6.8-1.src.rpm/download">source
     RPM file</a> might or might not build on your system as-is; it relies
     on assumptions about the locations of the GNU-EFI development
     files.</li>
 
 <li><b><a
-    href="http://sourceforge.net/projects/refind/files/0.6.7/refind_0.6.7-1_amd64.deb/download">A
+    href="http://sourceforge.net/projects/refind/files/0.6.8/refind_0.6.8-1_amd64.deb/download">A
     binary Debian package</a></b>&mdash;If you use an <i>x</i>86-64 version
     of Debian, Ubuntu, Mint, or another Debian-based distribution, you can
     install from this package, which was converted from the binary RPM
@@ -154,7 +154,7 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 <p class="sidebar"><b>Note:</b> At the moment, neither the bootable CD-R image file nor the bootable USB flash drive image file supports booting with Secure Boot active.</p>
 
 <li><b><a
-    href="http://sourceforge.net/projects/refind/files/0.6.7/refind-cd-0.6.7.zip/download">A
+    href="http://sourceforge.net/projects/refind/files/0.6.8/refind-cd-0.6.8.zip/download">A
     CD-R image file</a></b>&mdash;This download contains the same files as
     the binary zip file, but you can burn it to a CD-R to test rEFInd
     (and its filesystem drivers) without installing it first. (It boots on
@@ -178,7 +178,7 @@ on <tt>/dev/sdd</tt>. This procedure should work even on a BIOS-booted
 computer.</p>
 
 <li><b><a
-    href="http://sourceforge.net/projects/refind/files/0.6.7/refind-flashdrive-0.6.7.zip/download">A
+    href="http://sourceforge.net/projects/refind/files/0.6.8/refind-flashdrive-0.6.8.zip/download">A
     USB flash drive image file</a></b>&mdash;Although you     can create
     your own rEFInd USB flash drive, you may find it easier to download
     this version and copy it to your USB drive with <tt>dd</tt> or some
index d32651d0bcfc7f2bfa4d968e3fb80bf54d921580..a89b34ac2d5d70088dadc1502f51a48d793ec6ee 100644 (file)
@@ -15,7 +15,7 @@
 href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 
 <p>Originally written: 3/14/2012; last Web page update:
-2/3/2013, referencing rEFInd 0.6.7</p>
+3/18/2013, referencing rEFInd 0.6.8</p>
 
 
 <p>I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!</p>
@@ -166,6 +166,8 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 
 <li>Matthew J. Garrett, the developer of the shim boot loader to manage Secure Boot, maintains <a href="http://mjg59.dreamwidth.org/">a blog</a> in which he often writes about EFI issues.</li>
 
+<li>J. A. Watson has a <a href="http://www.zdnet.com/the-refind-boot-loader-for-uefi-systems-7000010275/">review of rEFInd on an HP laptop</a> on ZDNet. He had serious problems because of the HP's UEFI bugs, but finally got it to work.</li>
+
 </ul></li> <!-- Informational Web pages -->
 
 <li><b>Additional programs</b>
index 733f7b645e6ca34f58407faf11fd75230e28ca9c..bf62d5bf3d0774238288a97b381e0cb5401458cf 100644 (file)
@@ -15,7 +15,7 @@
 href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 
 <p>Originally written: 3/14/2012; last Web page update:
-2/11/2013, referencing rEFInd 0.6.7</p>
+3/18/2013, referencing rEFInd 0.6.8</p>
 
 
 <p>I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!</p>
index 0b88e5ad2c085b60f175119d9bc0822b8733e31e..18768f540e83b84e68e7fc39e1e5f51fcb290f9b 100644 (file)
@@ -15,7 +15,7 @@
 href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 
 <p>Originally written: 3/19/2012; last Web page update:
-2/3/2013, referencing rEFInd 0.6.7</p>
+3/18/2013, referencing rEFInd 0.6.8</p>
 
 
 <p>I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!</p>
index 6afc69de7d6b369604b3b51bb703845f9c3d34eb..b05ec6fc474e61878bec2b233c7777902fb55f17 100644 (file)
@@ -14,7 +14,7 @@
 <p class="subhead">by Roderick W. Smith, <a
 href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 
-<p>Last Web page update: 2/3/2013</p>
+<p>Last Web page update: 3/18/2013</p>
 
 <p>I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!</p>
 
@@ -92,6 +92,8 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 
 <ul>
 
+<li><b>0.6.8 (3/18/2013)</b>&mdash;This version fixes a few obscure bugs but adds only one minor new feature. Most notably, it fixes a problem that caused "Invalid Parameter" errors to appear when scanning for boot loaders on some systems; fixes a bug that caused icons defined in files named after boot loaders to not appear; and fixes a bug in the <tt>install.sh</tt> script that caused the script to fail on some systems. It also enables you to name a shell <tt>shell.efi</tt> in the root directory (previously only <tt>shell_<i>arch</i>.efi</tt> worked in the root directory, although <tt>shell.efi</tt> worked in the <tt>EFI/tools</tt> directory).</li>
+
 <li><b>0.6.7 (2/3/2013)</b>&mdash;This version fixes a few bugs and adds some minor features relating to Secure Boot. Bug fixes include keeping rEFInd out of its own menu when it's launched as <tt>EFI/Microsoft/Boot/bootmgfw.efi</tt>; keeping the <tt>dont_scan_volumes</tt> option out of the <tt>also_scan_dirs</tt> list; a fix for <tt>dont_scan_volumes</tt> so that it applies to the OS X boot loader; and a fix for a bug that caused PNG files in a user-specified icons directory to be ignored if an ICNS file was available in the standard icons directory. New features include support for the Linux Foundation's <tt>HashTool.efi</tt> as a MOK utility, scanning for MOK utilities on all volumes, and a more verbose error message when a Secure Boot authentication failure occurs.</li>
 
 <li><b>0.6.6 (1/26/2013)</b>&mdash;This version includes two new features and a number of minor bug fixes. The first new feature is support for changing rEFInd's font via the <tt>font</tt> token in <tt>refind.conf</tt>. You're limited to monospace fonts that are encoded as PNG files; you can't use variable-width fonts or normal font files like TrueType fonts. The fonts support only ASCII characters. See the <a href="themes.html#fonts">fonts section on the Theming rEFInd page</a> for details. I've also changed the default font to a slightly larger one that's anti-aliased. The second new feature is that rEFInd now detects when the <tt>EFI/BOOT/bootx64.efi</tt> (or <tt>EFI/BOOT/bootia32.efi</tt> on 32-bit systems) boot loader is a duplicate of another boot loader, and automatically excludes it from the OS list. This is useful on systems that boot with Windows, since Windows tends to install its boot loader twice, once using the <tt>EFI/BOOT/bootx64.efi</tt> filename. Bug fixes are described in the <tt>NEWS.txt</tt> file, and include fixes for bugs that prevented manual boot stanzas in included configuration files from being detected; that caused an <tt>ASSERT</tt> error to appear on the screen on some systems if <tt>default_selection</tt> was not set; the caused <tt>Binary is whitelisted</tt> messages to persist on the screen when loading signed EFI drivers with Secure Boot active; that caused rEFInd to ignore <tt>icon</tt> tokens in <tt>refind.conf</tt> manual boot stanzas; and that caused the <tt>install.sh</tt> script to fail to update drivers when rEFInd was installed to <tt>EFI/BOOT</tt>.</li>
index 4ab752540bed1e36105cef6befd8353660ea925b..f93e9273a9d3bdc1513284db6d46a39fb49c35e2 100644 (file)
@@ -15,7 +15,7 @@
 href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 
 <p>Originally written: 11/13/2012; last Web page update:
-2/3/2013, referencing rEFInd 0.6.7</p>
+3/18/2013, referencing rEFInd 0.6.8</p>
 
 
 <p>I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!</p>
@@ -126,7 +126,7 @@ described on this page currently supports only <i>x</i>86-64, not
 
 <p>Through 2012, it became obvious that Secure Boot would be a feature that was controlled, to a large extent, by Microsoft. This is because Microsoft requires that non-server computers that display Windows 8 logos ship with Secure Boot enabled. As a practical matter, this also means that such computers ship with Microsoft's keys in their firmware. In the absence of an industry-standard body to manage the signing of Secure Boot keys, this means that Microsoft's key is the only one that's more-or-less guaranteed to be installed on the computer, thus blocking the ability to boot any OS that lacks a boot path through Microsoft's signing key.</p>
 
-<p class="sidebar"><b>Note:</b> The <a href="http://www.linuxfoundation.org">Linux Foundation</a> is on the verge of releasing a signed version of their <a href="http://www.linuxfoundation.org/news-media/blogs/browse/2012/10/linux-foundation-uefi-secure-boot-system-open-source">PreBootloader,</a> which will function something like shim; however, where shim requires signing all binaries that don't already have valid Secure Boot keys and managing a small number of keys, PreBootloader requires registering every authorized binary. I'll update this documentation when PreBootloader is released in a signed form.</p>
+<p class="sidebar"><b>Note:</b> The <a href="http://www.linuxfoundation.org">Linux Foundation</a> has released a signed version of their <a href="http://blog.hansenpartnership.com/linux-foundation-secure-boot-system-released/">PreBootloader,</a> which functions something like shim; however, where shim requires signing all binaries that don't already have valid Secure Boot keys and managing a small number of keys, PreBootloader requires registering every authorized binary. I haven't had the chance to revise this documentation to cover PreBootloader, but you may want to use it instead of shim if you want to manage a small number of binaries that are not already signed with a Secure Boot key, MOK, or a key built into a signed version of shim.</p>
 
 <p>Fortunately, Microsoft will sign third-party binaries with their key&mdash;or more precisely, with a key that Microsoft uses to sign third-party binaries. (Microsoft uses another key to sign its own binaries, and some devices, such as the Microsoft Surface tablet, lack the third-party Microsoft key.) A payment of $99 to Verisign enables a software distributor to sign as many binaries as desired. Red Hat (Fedora), Novell (SUSE), and Canonical (Ubuntu) have all announced plans to take advantage of this system. Unfortunately, using a third-party signing service is an awkward solution for open source software. In fact, for this very reason Red Hat has developed a program that it calls <i>shim</i> that essentially shifts the Secure Boot "train" from Microsoft's proprietary "track" to one that's more friendly to open source authors. Shim is signed by Microsoft and redirects the boot process to another boot loader that can be signed with keys that the distribution maintains and that are built into shim. Fedora 18 also uses this system. SUSE has announced that it will use the same system, as does Ubuntu with version 12.10 and later. SUSE has contributed to the shim approach by providing expansions to shim that support a set of keys that users can maintain themselves. These keys are known as Machine Owner Keys (MOKs), and managing them is described later, in <a href="#mok">Managing MOKs.</a> To reiterate, then, there are potentially three ways to sign a binary that will get it launched on a computer that uses shim:</p>
 
index 4ab26031fc6455916ba4cabb909b32ebe069b810..e5115aff4dd7161b608de2ebfdea6503e43c85da 100644 (file)
@@ -15,7 +15,7 @@
 href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 
 <p>Originally written: 4/19/2012; last Web page update:
-2/3/2013, referencing rEFInd 0.6.7</p>
+3/18/2013, referencing rEFInd 0.6.8</p>
 
 
 <p>I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!</p>
index 00f3be45441967d3afad5062f8d2687867ef38bf..cea9202452b18f37266eb7a0aee3ea79006a7095 100644 (file)
@@ -15,7 +15,7 @@
 href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 
 <p>Originally written: 3/14/2012; last Web page update:
-2/3/2013, referencing rEFInd 0.6.7</p>
+3/18/2013, referencing rEFInd 0.6.8</p>
 
 
 <p>I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!</p>
@@ -245,6 +245,11 @@ href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
     <li>The code is in need of review to search for memory leaks and
        similar problems.</li>
 
+    <li>If the user has a Linux software RAID 1 array, rEFInd will detect
+       kernels or boot loaders in RAID 1 twice. This could be fixed by
+       adding a check for duplicate filesystem UUIDs to the
+       partition-scanning code.</li>
+
     </ul></li> <!-- Known bugs -->
 
 <li><b>New features I'd like to add:</b>
index ebb2acff08f841310037b79fa7dfece0a2a70d87..cd37ea4938a5cb687ef14faf4b8a054f85ca8337 100644 (file)
@@ -15,7 +15,7 @@
 href="mailto:rodsmith@rodsbooks.com">rodsmith@rodsbooks.com</a></p>
 
 <p>Originally written: 3/14/2012; last Web page update:
-2/3/2013, referencing rEFInd 0.6.7</p>
+3/18/2013, referencing rEFInd 0.6.8</p>
 
 
 <p>I'm a technical writer and consultant specializing in Linux technologies. This Web page is provided free of charge and with no annoying outside ads; however, I did take time to prepare it, and Web hosting does cost money. If you find this Web page useful, please consider making a small donation to help keep this site up and running. Thanks!</p>
index 6ac67f417254b5265818992046abba7523716aff..67c7186be7b27aa2bf3587148c3f99bbd956240f 100644 (file)
@@ -98,7 +98,7 @@ EFI_GUID gEfiFileSystemVolumeLabelInfoIdGuid = EFI_FILE_SYSTEM_VOLUME_LABEL_INFO
 /** Helper macro for stringification. */
 #define FSW_EFI_STRINGIFY(x) #x
 /** Expands to the EFI driver name given the file system type name. */
-#define FSW_EFI_DRIVER_NAME(t) L"rEFInd 0.6.7 " FSW_EFI_STRINGIFY(t) L" File System Driver"
+#define FSW_EFI_DRIVER_NAME(t) L"rEFInd 0.6.8 " FSW_EFI_STRINGIFY(t) L" File System Driver"
 
 // function prototypes
 
index 1e668710b3e0706d6d5963947f722f8247f2bcc1..4d0c398f2d94dadb03448e43afaeb253559fbf99 100755 (executable)
@@ -29,6 +29,7 @@
 #
 # Revision history:
 #
+# 0.6.8   -- Bug fix: ESP scan now uses "uniq".
 # 0.6.6   -- Bug fix: Upgrade drivers when installed to EFI/BOOT. Also enable
 #            copying shim.efi and MokManager.efi over themselves.
 # 0.6.4   -- Copies ext2 driver rather than ext4 driver for ext2/3fs
@@ -594,7 +595,7 @@ FindLinuxESP() {
    fi
    InstallDir=`echo $EspLine | cut -d " " -f 6`
    if [[ -n $InstallDir ]] ; then
-      EspFilesystem=`grep $InstallDir /etc/mtab | cut -d " " -f 3`
+      EspFilesystem=`grep $InstallDir /etc/mtab | uniq | cut -d " " -f 3`
    fi
    if [[ $EspFilesystem != 'vfat' ]] ; then
       echo "$RootDir/boot/efi doesn't seem to be on a VFAT filesystem. The ESP must be"
index 88829a546c149597c002dc5ae80779330b310251..c529da931b9212d0a1ec8c7ea3a108660dad2b73 100644 (file)
@@ -85,9 +85,10 @@ EG_IMAGE * egCreateFilledImage(IN UINTN Width, IN UINTN Height, IN BOOLEAN HasAl
 
 EG_IMAGE * egCopyImage(IN EG_IMAGE *Image)
 {
-    EG_IMAGE        *NewImage;
+    EG_IMAGE        *NewImage = NULL;
 
-    NewImage = egCreateImage(Image->Width, Image->Height, Image->HasAlpha);
+    if (Image != NULL)
+       NewImage = egCreateImage(Image->Width, Image->Height, Image->HasAlpha);
     if (NewImage == NULL)
         return NULL;
 
index 4dc8b0bb2d39d50302c17d6894ed1410439ecf95..934199a8af4b5f6c13f8c2c41be78e5859bb5b1f 100755 (executable)
--- a/mkcdimage
+++ b/mkcdimage
@@ -65,7 +65,7 @@ mkdosfs -n "ElTorito" refind-bin-$Version.img
 mcopy -irefind-bin-$Version.img -s EFI shell*.efi ::/
 
 # Make the ISO-9660 image file....
-mkisofs -A "Bootable rEFInd" -V "rEFInd $Version" -volset "rEFInd $Version" \
+mkisofs -A "Bootable rEFInd" -V "rEFInd_$Version" -volset "rEFInd_$Version" \
     -J -r -v -x ./lost+found -o ../../refind-cd-$Version.iso \
     -eltorito-alt-boot -efi-boot refind-bin-$Version.img \
     -no-emul-boot ./
index d4b0fe9de9166a6ace59337a8d73ad0089723e82..4ba63f7e9c80578f7d64b52667fcc01dbf668060 100644 (file)
@@ -1,6 +1,6 @@
 Summary: EFI boot manager software
 Name: refind
-Version: 0.6.7
+Version: 0.6.8
 Release: 1%{?dist}
 Summary: EFI boot manager software
 License: GPLv3
index c18e979d4c7dd331501ca8151a937255c5adf768..871b0e69e538ab2f4d7637aac9dcd8bd52ff20a3 100644 (file)
@@ -497,6 +497,9 @@ VOID ReadConfig(CHAR16 *FileName)
            else
               GlobalConfig.RequestedScreenHeight = 0;
 
+        } else if (StriCmp(TokenList[0], L"screensaver") == 0) {
+           HandleInt(TokenList, TokenCount, &(GlobalConfig.ScreensaverTime));
+
         } else if (StriCmp(TokenList[0], L"use_graphics_for") == 0) {
            GlobalConfig.GraphicsFor = 0;
            for (i = 1; i < TokenCount; i++) {
index edf9244c52ac69326521e44084462c4abcb99a1f..0aad5f10f3c7d1c195477d954eb2ba12a1db57b6 100644 (file)
@@ -229,6 +229,7 @@ typedef struct {
    UINTN       GraphicsFor;
    UINTN       LegacyType;
    UINTN       ScanDelay;
+   UINTN       ScreensaverTime;
    CHAR16      *BannerFileName;
    EG_IMAGE    *ScreenBackground;
    CHAR16      *SelectionSmallFileName;
index 66dbe00e21fd967858cd5764a5d31b287040a52b..601038c741f63100dfd847df5d06cda4ba839b28 100644 (file)
@@ -1151,13 +1151,15 @@ EFI_STATUS DirNextEntry(IN EFI_FILE *Directory, IN OUT EFI_FILE_INFO **DirEntry,
             LastBufferSize = BufferSize;
         }
         if (EFI_ERROR(Status)) {
-            FreePool(Buffer);
+            MyFreePool(Buffer);
+            Buffer = NULL;
             break;
         }
 
         // check for end of listing
         if (BufferSize == 0) {    // end of directory listing
-            FreePool(Buffer);
+            MyFreePool(Buffer);
+            Buffer = NULL;
             break;
         }
 
@@ -1273,7 +1275,6 @@ BOOLEAN DirIterNext(IN OUT REFIT_DIR_ITER *DirIter, IN UINTN FilterMode, IN CHAR
             while (KeepGoing && (OnePattern = FindCommaDelimited(FilePattern, i++)) != NULL) {
                if (MetaiMatch(DirIter->LastFileInfo->FileName, OnePattern))
                    KeepGoing = FALSE;
-//               Print(L"%s did%s match %s\n", DirIter->LastFileInfo->FileName, KeepGoing ? L" not" : L"", OnePattern);
             } // while
             // else continue loop
         } else
index d115ae23ff67ce7b383f746bb39b51e1d6380e7d..ba1d8508cac1b8cc8d55e9dbf919f93713252ad4 100644 (file)
 
 #define MACOSX_LOADER_PATH      L"System\\Library\\CoreServices\\boot.efi"
 #if defined (EFIX64)
-#define SHELL_NAMES             L"\\EFI\\tools\\shell.efi,\\EFI\\tools\\shellx64.efi,\\shellx64.efi"
+#define SHELL_NAMES             L"\\EFI\\tools\\shell.efi,\\EFI\\tools\\shellx64.efi,\\shell.efi,\\shellx64.efi"
 #define DRIVER_DIRS             L"drivers,drivers_x64"
 #define FALLBACK_FULLNAME       L"EFI\\BOOT\\bootx64.efi"
 #define FALLBACK_BASENAME       L"bootx64.efi"
 #elif defined (EFI32)
-#define SHELL_NAMES             L"\\EFI\\tools\\shell.efi,\\EFI\\tools\\shellia32.efi,\\shellia32.efi"
+#define SHELL_NAMES             L"\\EFI\\tools\\shell.efi,\\EFI\\tools\\shellia32.efi,\\shell.efi,\\shellia32.efi"
 #define DRIVER_DIRS             L"drivers,drivers_ia32"
 #define FALLBACK_FULLNAME       L"EFI\\BOOT\\bootia32.efi"
 #define FALLBACK_BASENAME       L"bootia32.efi"
 #else
-#define SHELL_NAMES             L"\\EFI\\tools\\shell.efi"
+#define SHELL_NAMES             L"\\EFI\\tools\\shell.efi,\\shell.efi"
 #define DRIVER_DIRS             L"drivers"
 #define FALLBACK_FULLNAME       L"EFI\\BOOT\\boot.efi" /* Not really correct */
 #define FALLBACK_BASENAME       L"boot.efi"            /* Not really correct */
@@ -110,7 +110,7 @@ static REFIT_MENU_SCREEN MainMenu       = { L"Main Menu", NULL, 0, NULL, 0, NULL
                                             L"Insert or F2 for more options; Esc to refresh" };
 static REFIT_MENU_SCREEN AboutMenu      = { L"About", NULL, 0, NULL, 0, NULL, 0, NULL, L"Press Enter to return to main menu", L"" };
 
-REFIT_CONFIG GlobalConfig = { FALSE, FALSE, 0, 0, 0, DONT_CHANGE_TEXT_MODE, 20, 0, 0, GRAPHICS_FOR_OSX, LEGACY_TYPE_MAC, 0,
+REFIT_CONFIG GlobalConfig = { FALSE, FALSE, 0, 0, 0, DONT_CHANGE_TEXT_MODE, 20, 0, 0, GRAPHICS_FOR_OSX, LEGACY_TYPE_MAC, 0, 0,
                               NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL,
                               {TAG_SHELL, TAG_APPLE_RECOVERY, TAG_MOK_TOOL, TAG_ABOUT, TAG_SHUTDOWN, TAG_REBOOT, 0, 0, 0, 0, 0 }};
 
@@ -132,7 +132,7 @@ static VOID AboutrEFInd(VOID)
 
     if (AboutMenu.EntryCount == 0) {
         AboutMenu.TitleImage = BuiltinIcon(BUILTIN_ICON_FUNC_ABOUT);
-        AddMenuInfoLine(&AboutMenu, L"rEFInd Version 0.6.7.1");
+        AddMenuInfoLine(&AboutMenu, L"rEFInd Version 0.6.8");
         AddMenuInfoLine(&AboutMenu, L"");
         AddMenuInfoLine(&AboutMenu, L"Copyright (c) 2006-2010 Christoph Pfisterer");
         AddMenuInfoLine(&AboutMenu, L"Copyright (c) 2012 Roderick W. Smith");
@@ -1064,21 +1064,27 @@ static BOOLEAN ScanLoaderDir(IN REFIT_VOLUME *Volume, IN CHAR16 *Path, IN CHAR16
           } // if
           MyFreePool(Extension);
        } // while
+
        NewLoader = LoaderList;
        while (NewLoader != NULL) {
           AddLoaderEntry(NewLoader->FileName, NULL, Volume);
           NewLoader = NewLoader->NextEntry;
        } // while
+
        CleanUpLoaderList(LoaderList);
        Status = DirIterClose(&DirIter);
-       if (Status != EFI_NOT_FOUND) {
+       // NOTE: EFI_INVALID_PARAMETER really is an error that should be reported;
+       // but I've gotten reports from users who are getting this error occasionally
+       // and I can't find anything wrong or reproduce the problem, so I'm putting
+       // it down to buggy EFI implementations and ignoring that particular error....
+       if ((Status != EFI_NOT_FOUND) && (Status != EFI_INVALID_PARAMETER)) {
           if (Path)
              SPrint(FileName, 255, L"while scanning the %s directory", Path);
           else
              StrCpy(FileName, L"while scanning the root directory");
           CheckError(Status, FileName);
        } // if (Status != EFI_NOT_FOUND)
-    } // if not scanning our own directory
+    } // if not scanning a blacklisted directory
 
     return FoundFallbackDuplicate;
 } /* static VOID ScanLoaderDir() */
@@ -1091,11 +1097,9 @@ static VOID ScanEfiFiles(REFIT_VOLUME *Volume) {
    UINTN                   i, Length;
    BOOLEAN                 ScanFallbackLoader = TRUE;
 
-//   Print(L"Entering ScanEfiFiles(), GlobalConfig.ScanAllLinux = %s\n", GlobalConfig.ScanAllLinux ? L"TRUE" : L"FALSE");
    MatchPatterns = StrDuplicate(LOADER_MATCH_PATTERNS);
    if (GlobalConfig.ScanAllLinux)
       MergeStrings(&MatchPatterns, LINUX_MATCH_PATTERNS, L',');
-//   Print(L"MatchPatterns = '%s'\n", MatchPatterns);
 
    if ((Volume->RootDir != NULL) && (Volume->VolName != NULL)) {
       // check for Mac OS X boot loader
index 668b646838c621be6c70bf22fc2f6530d560a3f1..ff8f1a648dada7aae67332931c3805a535c3f4a2 100644 (file)
@@ -412,8 +412,9 @@ static UINTN RunGenericMenu(IN REFIT_MENU_SCREEN *Screen, IN MENU_STYLE_FUNC Sty
             } else if (HaveTimeout) {
                 refit_call1_wrapper(BS->Stall, 100000); // Pause for 100 ms
                 TimeoutCountdown--;
-            } else
+            } else {
                 refit_call3_wrapper(BS->WaitForEvent, 1, &ST->ConIn->WaitForKey, &index);
+            }
             continue;
         }
         if (HaveTimeout) {