-0.7.10 (?/??/2014):
+0.10.1 (??/??/201?):
+--------------------
+
+- The refind-install script can now be run as a symbolic link in Linux.
+ This enables creating a /usr/sbin/refind-install link in Linux packages,
+ with the binaries stashed wherever the package system likes them. This
+ feature does NOT work in OS X, but there's relatively little need for it
+ there.
+
+0.10.0 (11/8/2015):
+-------------------
+
+- Fixed bug that caused refind-install to not unmount the ESP when it
+ should under OS X.
+
+- Modified refind-install and mkrlconf scripts to use /proc/cmdline as
+ source for default boot options EXCEPT when refind-install receives the
+ --root option. In that case, refind-install continues to use
+ /etc/default/grub as the source of default options. The idea behind this
+ change is that it's more reliable to get boot options from /proc/cmdline
+ when the targeted system is the one that's booted; but --root would be
+ used from emergency disks or live CDs, in which case the current boot
+ options would be completely wrong, so extracting boot options from GRUB
+ files is the best bet for getting close to the right options.
+
+- Added "@/boot" to default also_scan_dirs setting. This makes kernels
+ show up on Btrfs volumes under Ubuntu (and perhaps others), at least when
+ the Btrfs driver is loaded.
+
+- Added new System Integrity Protection (SIP) rotation feature for Macs
+ running OS X 10.11 or later. This feature is disabled by default, except
+ on CD-R and USB flash drive images, on which it's enabled. To enable it,
+ you must make TWO changes to refind.conf: Uncomment the new "csr_values"
+ item and add "csr_rotate" to the "showtools" line (uncommenting it, too,
+ if it's commented out). If desired, you can set more values on
+ "csr_values"; these are comma-delimited one-byte hexadecimal values that
+ define various SIP states. When SIP/CSR rotation is activated, a new
+ shield icon appears among the tools. Selecting it causes the next defined
+ value to be set and a confirmation message to appear for three seconds.
+
+- Added display of current System Integrity Protection (SIP) mode to
+ "About" display.
+
+- Added mountesp script for OS X to (you guessed it!) mount the ESP.
+
+- Renamed support scripts: install.sh to refind-install, mvrefind.sh to
+ mvrefind, and mkrlconf.sh to mkrlconf.
+
+- New icons! The old ones were getting to be a jumbled mess of styles,
+ particularly for OS tags. I used the AwOken icon set
+ (http://alecive.deviantart.com/art/AwOken-163570862) for the core icons,
+ then expanded from there by creating my own icons and modifying icons for
+ Debian and Elementary OS. I'm also trying to keep better track of
+ copyrights and licenses on icons. Between that and some icons being for
+ OSes that probably see very little use (FreeDOS and eComstation, for
+ instance), a few OS icons have been lost. If you prefer the old icons,
+ you can continue to use them by upgrading rEFInd, renaming icons-backup
+ to something else (say, icons-classic), and then adding an "icons" line
+ in refind.conf to point to the old icons directory.
+
+- Changed from .zip to .tar.gz as source code archive format. I did this
+ because Linux is the only officially-supported build platform, and
+ tarballs are a more natural fit to a Linux environment. I'm leaving .zip,
+ .deb, and .rpm files as the formats for binary packages.
+
+- Added detection of System Integrity Protection (SIP; aka "rootless") mode
+ to OS X portion of install.sh script. When detected, and if no existing
+ rEFInd installation is found, the script now prints a warning and brief
+ instructions of how to enter the Recovery mode to install rEFInd and
+ suggests aborting the installation. (The user can override and attempt
+ installation anyhow.) If SIP is detected along with an existing rEFInd
+ installation, the script moderates the warning and explains that an
+ update of a working rEFInd will probably succeed, but that re-installing
+ to fix a broken rEFInd will probably fail.
+
+- Added new "spoof_osx_version" token, which takes an OS X version number
+ (such as "10.9") as an option. This feature, when enabled, causes rEFInd
+ to tell a Mac's firmware that the specified version of OS X is being
+ launched. This option is usually unnecessary, but it can help properly
+ initialize some hardware -- particularly secondary video devices. OTOH,
+ on some Macs it can cause hardware (notably keyboards and mice) to become
+ unresponsive, so you should not use this option unnecessarily.
+
+- Worked around an EFI bug that affected my 32-bit Mac Mini: That system
+ seems to have a broken EFI, or possibly a buggy CPU, that causes some
+ (but not all) conversions from floating-point to integer numbers to hang
+ the computer. Such operations were performed only in rEFInd's
+ graphics-resizing code, and so would manifest only when icons or
+ background images were resized. My fix eliminates the use of
+ floating-point operations in the affected function, which eliminates the
+ crashes. There may be some degradation in the quality of resized images,
+ though, particularly on 32-bit systems. (64-bit systems use larger
+ integers, which enable greater precision in my floating-point
+ workaround.)
+
+- Under OS X, install.sh can now be run from the recovery system. This may
+ help work around OS X 10.11's problems with System Integrity Protection,
+ since it should be possible to reboot into the recovery system to install
+ rEFInd without disabling SIP for the main installation, even for just one
+ boot.
+
+0.9.2 (9/19/2015):
+------------------
+
+- Added "--keepname" option to install.sh. This option causes install.sh
+ to keep refind_x64.efi named as such rather than rename it as grubx64.efi
+ when using Shim. This option is meaningful only if the --shim option is
+ also used. This option passes the refind_x64.efi filename as an option to
+ Shim, which overrides the default filename of grubx64.efi. A big caveat:
+ Only Shim 0.7 and later supports this feature. (Shim 0.4 also works if a
+ refind_x64.efi is referred to as "\refind_x64.efi" on the command line,
+ but the need for a leading backslash to refer to a file in the same
+ directory as Shim is so confusing and wrong that I cannot in good
+ conscience support it.) I've not seen signed Shim binaries between 0.4
+ and 0.7, so I don't know if any of them might work.
+
+- Implemented a workaround for a bug in Shim 0.8 that prevented
+ authentication of more than one binary. If any filesystem drivers were
+ installed, the first one would be verified, leaving rEFInd unable to
+ launch anything else unless it was signed by a key in the computer's main
+ Secure Boot db list.
+
+0.9.1 (9/13/2015):
+------------------
+
+- When rEFInd identifies the root (/) partition via the Freedesktop.org
+ Discoverable Partitions Specification, it now checks two of the
+ partition's attributes, as per the DPS (see
+ http://www.freedesktop.org/wiki/Specifications/DiscoverablePartitionsSpec/):
+ - The partition's read-only attribute determines whether to pass a "rw"
+ or "ro" option to the kernel.
+ - If the partition's do-not-automount flag is set, rEFInd will not pass
+ it as a "root=" option to the kernel. This flag can be used to remove
+ all but one partition from consideration as a root (/) partition if a
+ system has more than one with the correct type code.
+
+- Improved Freedesktop.org Discoverable Partitions Specification support:
+ Previously, if no refind_linux.conf file was present but an /etc/fstab
+ file was found, rEFInd ignored the Discoverable Partitions Specification
+ filesystem-type codes. This was fine if /etc/fstab contained a valid "/"
+ filesystem specification, but if that was absent, the result was no
+ "root=" specification being present. Under these circumstances
+ (refind_linux.conf absent, /etc/fstab present but lacking a "/" entry),
+ rEFInd now tries to identify a device to specify as "root=" via the
+ Discoverable Partitions Specification.
+
+- Fixed bug that caused "Found match!" and a prompt to press a key to
+ continue to be printed if any partition used the Freedesktop.org
+ Discoverable Partitions Specification root-partition GUID. (This
+ was leftover debugging/testing code that I somehow missed deleting.)
+
+- Added icon for Elementary OS.
+
+- Added /etc/lsb-release to files scanned for clues about the Linux
+ distribution. This file differentiates Mint and Elementary OS from Ubuntu
+ better than does /etc/os-release, and may also help with other
+ closely-related distributions.
+
+- Improvements to handling of case-insensitive string comparisons. These
+ are buggy on some EFIs, and such bugs affect things like dont_scan_*
+ blacklists, removal of rEFInd's own directory from scanning, matching of
+ keyword names in refind.conf, and even loading of icons. I've replaced
+ many calls to problematic functions with safer calls, which should help a
+ lot. There may still be problems on some systems with some computers,
+ though; as far as I can tell, the bugs are buried deep in some EFI
+ firmware, so I can only replace some of the most direct calls to
+ potentially buggy system calls.
+
+0.9.0 (7/26/2015):
+------------------
+
+- New icon for Kali Linux, submitted by Francesco D'Eugenio.
+
+- Minor code changes to ensure that rEFInd compiles with GCC 5.1. (Tested
+ with GNU-EFI on a Fedora 22 system; not yet tested with the TianoCore
+ EDK2.)
+
+- Added new "fold_linux_kernels" token to refind.conf. This option, when
+ active (the default) "folds" all Linux kernels in a directory into a
+ single entry on the rEFInd menu. The kernel with the most recent time
+ stamp is launched by default. To launch another kernel, you must press F2
+ or Insert; additional kernels appear as options on the first kernel's
+ submenu. To see the pre-0.9.0 behavior, you must set "fold_linux_kernels
+ false" (or one of its synonyms, "off" or "0"). The point of this option
+ is to help de-clutter the rEFInd main menu.
+
+- Added new Linux root (/) partition auto-discovery feature, based on
+ Freedesktop.org's Discoverable Partitions Spec (DPS)
+ (http://www.freedesktop.org/wiki/Specifications/DiscoverablePartitionsSpec/):
+ If no refind_linux.conf file or /etc/fstab file is found, and if a
+ partition with the correct DPS type code for the system architecture is
+ found, rEFInd adds "ro root=/dev/disk/by-partuuid/{GUID}" to the kernel
+ options. This will not help on LVM setups, and will get it right for only
+ one installation on systems with multiple Linux installations, but it may
+ help some users, if/when the DPS type codes become more common.
+
+- Fixed bug that caused a rEFInd crash if an empty refind_linux.conf
+ file was encountered.
+
+- The mkrlconf.sh script now checks the OS on which it's running, which
+ should help avoid confusion or problems by users who mistakenly run it
+ under OS X.
+
+- rEFInd now skips checking for various BIOS-mode boot sector signatures
+ when running on a UEFI-based PC; these checks are run only on Macs. This
+ may reduce startup time on systems with many partitions.
+
+- Fixed Debian debinstall script to work correctly on IA32 systems. It had
+ a bug that caused filesystem drivers and gptsync to not be packaged for
+ IA32.
+
+- Modified Debian postinst file to call install.sh with --localkeys option
+ if sbsign and openssl are available, even when NOT in Secure Boot mode or
+ if shim is not detected. This helps with my Ubuntu PPA when using custom
+ Secure Boot keys, since the PPA is delivered unsigned. (Users will have
+ to have added their own local keys to their firmware's db.) For
+ consistency, I've made the same change to the RPM .spec file.
+
+0.8.7 (3/1/2015):
+-----------------
+
+- Fixed install.sh bug that caused inappropriate installation under the
+ name bootx64.efi (or bootia32.efi) under Linux, with a failure to update
+ the boot entries in NVRAM, has been fixed.
+
+- Added identification of XFS as filesystem type in volume descriptions.
+
+- More fixes to filesystem type detection code. Previous version sometimes
+ identified FAT or NTFS (or anything with a boot loader) as a whole-disk
+ device rather than the correct filesystem type.
+
+- Added protections to the code to reduce the risk of crashes that might
+ occur when dereferencing NULL pointers in various situations.
+
+- I'm deprecating the use of filesystem numbers (as in "fs0:") because
+ they're unreliable -- filesystem numbers can change between boots and
+ might not be the same as those used in an EFI shell or other program.
+ Sooner or later I'll remove code supporting this feature. In the
+ meantime, if it doesn't work for you, please switch to using filesystem
+ labels, partition labels, or partition GUIDs.
+
+- Added detection of FreeBSD's BIOS-mode GPT boot loader. Previously,
+ rEFInd could detect FreeBSD's BIOS-mode MBR boot loader, which gave
+ FreeBSD an appropriate icon on Macs; but the BIOS-mode GPT boot loader
+ code is different, so some recent FreeBSD installations showed up with
+ generic grey diamond icons. This change creates FreeBSD icons instead.
+
+- Added "Secure Boot [active|inactive]" notice to "about" menu for x86
+ (32-bit) systems, since there are now a few 32-bit UEFI systems that
+ support Secure Boot. (AFAIK, these are mostly tablets and convertibles
+ such as the ASUS T100.)
+
+- Added KeyTool.efi and KeyTool-signed.efi to list of MOK managers. KeyTool
+ is the "super-deluxe" Secure Boot key and hash manager provided as part
+ of the efitools package.
+
+- Fixed more instances of "invalid parameter" errors on some EFIs.
+
+- Improved Secure Boot detection in install.sh.
+
+- install.sh should no longer complain when copying Shim or MokManager over
+ itself.
+
+0.8.6 (2/8/2015):
+-----------------
+
+- Removed special case of ignoring an HFS+ name of "HFS+ volume", since the
+ old rEFInd HFS+ driver that produced this name for all HFS+ volumes has
+ long since been updated to deliver a real name.
+
+- Addition of new Windows 8 OS icon. On Macs and for BIOS/legacy boots, the
+ new icon is now used for Windows Vista, 7, and 8, while the old one is
+ used for earlier versions of Windows. For EFI-mode boots, the new icon is
+ used universally.
+
+- If the NTFS driver is loaded, rEFInd now scans NTFS volumes on Macs for
+ the presence of Windows boot files, and removes any NTFS volume that
+ lacks such files from the BIOS/legacy boot list. This should help
+ unclutter the display on Macs that contain NTFS data partitions.
+
+- Fixed bug that caused misidentification of both whole disks and NTFS
+ volumes as being FAT. (This bug affected the identification of devices
+ and locations in the rEFInd menu, not actual access to devices.)
+
+- Code refactoring to clear out legacy-boot functions from the
+ ever-expanding refind/main.c file.
+
+- Added new "badges" option to the "hideui" token in refind.conf. This
+ option hides the device-type badges associated with the OS boot options.
+
+- Reverted rEFIt commit r472, introduced in rEFInd 0.8.5 to support more
+ BMP images because I've received bug reports that it's causing existing
+ selection images to fail to load.
+
+- Fixed install.sh bug that caused misidentification of installation
+ directory under OS X if an already-mounted ESP has spaces in its path.
+
+- Fixed Mac-specific install.sh bug that could cause misidentification of
+ the ESP on disks with partition numbers of 10 or above.
+
+
+0.8.5 (2/1/2015):
+-----------------
+
+- Added NTFS EFI filesystem driver.
+
+- Minor improvements to filesystem driver framework code.
+
+- Changes to
+
+- Fixed bug in Btrfs driver's address reference.
+
+- Improved install.sh to make it smarter about figuring out where to
+ install on Macs. Specifically, this version now upgrades existing
+ installations, if found (as it always has under Linux), rather than
+ blindly install to EFI/BOOT; it installs to EFI/refind if not existing
+ installation is found; it installs using the --shortform option to bless,
+ which seems to eliminate the 30-second delay problem; and it can handle
+ an HFS+ ESP, which it treats as a separate HFS+ volume (as if the user
+ had used --ownhfs). These changes do not affect behavior under Linux.
+
+- Added missing check of architecture type for several tools.
+
+- Applied rEFIt commit r472, which adds support for BMP images with negative
+ height fields, indicating that the image is NOT vertically flipped. This
+ commit and r467 were not incorporated in the original rEFInd because I
+ forked it from a Debian rEFIt package that had been patched to build
+ under GNU-EFI, and was apparently based on a slightly earlier version.
+
+- Applied rEFIt commit r467, which improves Mac handling of legacy boots
+ from other than the first hard disk.
+
+
+0.8.4 (12/8/2014):
+------------------
+
+- Tweaked default for dont_scan_volumes: Removed "Recovery HD". This change
+ better suits the needs of OS X 10.10 ("Yosemite") installations, but may
+ result in some stray Recovery HD entries on some Macs.
+
+- Updated icons for Fedora and Ubuntu and added an icon for Xubuntu.
+
+- Added new configuration option, "enable_and_lock_vmx", which sets an
+ Intel CPU feature that's required for some types of virtualization to
+ work. Most EFIs enable setting this feature in their own setup utilities,
+ but some (such as most Macs) don't.
+
+- If rEFInd can't locate an icons directory (either the default or one
+ specified by the icons_dir token), the program switches to text-only
+ mode.
+
+- If a loader contains the string "grub" and no other clue to the loader's
+ OS association exists, search for os_grub.{png|icns} (which is not
+ provided with rEFInd) or os_linux.{png|icns}. (Previous versions provided
+ a generic loader icon for GRUB.)
+
+- Fixed bug that caused dont_scan_files to not work with special-case
+ boot loaders (for OS X and Windows) when specifying the complete path to
+ the loader (e.g., EFI/Microsoft/Boot/bootmgfw.efi).
+
+- Added support for the iPXE network boot tool (see BUILDING.txt for
+ building and basic use instructions).
+
+0.8.3 (7/6/2014):
+-----------------
+
+- Added new feature: Setting "timeout = -1" in refind.conf causes rEFInd to
+ immediately boot the default option UNLESS a keypress is in the buffer
+ when rEFInd launches. In that case, if the keypress corresponds to a
+ shortcut key, the associated boot loader is launched; or if not, the menu
+ is displayed.
+
+- Added new icons for Clover boot loader and for Mythbuntu Linux
+ distribution.
+
+- rEFInd now displays the partition's label, when one is available, when
+ offering a BIOS-mode boot option for a partition with no filesystem
+ driver. This works only on Macs doing BIOS-mode booting.
+
+- Removed GPLv2 code from the FSW core files. This was done because the
+ Btrfs driver is derived from the GRUB Btrfs driver, which is licensed
+ under the GPLv3. Ironically, the GPLv2 and GPLv3 are incompatible
+ licenses, so ensuring that the Btrfs driver doesn't rely on GPLv2 code
+ was legally necessary. In most cases, I reverted to the original rEFIt
+ code, although I kept my own cache code; since I wrote it, I can
+ change its license to a BSD license.
+
+- Fixed bug that caused rEFInd to unload drivers immediately after loading
+ them. This didn't affect rEFInd's own drivers because they didn't include
+ the unload hooks, but it did affect some other drivers.
+
+- Changed default scan_all_linux_kernels setting from "false" to "true",
+ and commented the option out in refind.conf-sample. This should not
+ affect most people, since refind.conf-sample had this option commented
+ out, and most rEFInd users either use it that way or don't have Linux
+ kernels installed at all. I've made this change because I want rEFInd to
+ "do the right thing" by default in as many cases as possible. For a while
+ now, rEFInd has been excluding non-bootable files from its menu, and most
+ kernels "in the wild" now include the EFI stub. Thus, enabling this
+ support by default seems worthwhile. If you prefer to not scan Linux
+ kernels by default, simply uncomment the "scan_all_linux_kernels" line
+ and ensure it's set to "false".
+
+0.8.2.1 (6/8/2014):
-------------------
+- Removed stray bit of debugging code that caused a prompt to press a
+ key to appear at rEFInd startup.
+
+0.8.2 (6/8/2014):
+-----------------
+
+- Changed behavior when default_selection is not set: It now boots the
+ previously-booted loader, assuming it's still available; if not, rEFInd
+ boots the first loader (as it does now). Behavior is unchanged if
+ default_selection is set. Note that this behavior depends on the ability
+ of rEFInd to store an EFI variable in NVRAM. It therefore fails on
+ systems with flaky NVRAM storage. You can view the previously-booted
+ loader in the
+ /sys/firmware/efi/efivars/PreviousBoot-36d08fa7-cf0b-42f5-8f14-68df73ed3740
+ variable under Linux.
+
+- Added icon for Mageia Linux (os_mageia.png).
+
+- Fixed bug that could misidentify a not-quite-GUID as a GUID in a
+ manual boot stanza's "volume" line.
+
+- I've updated my personal build system, and therefore the rEFInd Makefiles
+ and related files, to use TianoCore UDK2014 rather than UDK2010.
+
+- Added "deep_uefi_legacy_scan" token. When not set (the default), rEFInd
+ does not modify EFI NVRAM settings when scanning for BIOS-mode boot
+ loaders on UEFI-based (non-Mac) computers. Some computers require
+ uncommenting this setting for rEFInd to reliably detect some BIOS-mode
+ boot devices. Passing "0", "off", or "false" as an option resets it to
+ the default value (useful in a loaded secondary configuration file to
+ override a setting in the main file).
+
+0.8.1 (5/15/2014):
+------------------
+
+- Fixed bug that could cause rEFInd to fail to detect boot loaders stored
+ on the root directory of a partition.
+
+- Added two new bitmap fonts to those distributed with rEFInd: Ubuntu Mono
+ and Nimbus Mono. Both come in 12-, 14-, 16-, and 24-point sizes.
+
+- Messages about pauses for scanning and re-scanning of boot loaders are
+ now suppressed when doing an initial delayed scan when scan_delay is 1
+ second.
+
+- Improved centering of legacy boot option descriptions on some systems'
+ screens.
+
+- Fixed bug that could cause a BIOS-mode boot to boot from an inappropriate
+ device if that device had an innately high boot priority (as set by the
+ firmware).
+
+- Changed icons from ICNS to PNG form. There are several reasons to do
+ this, all of them minor; but together they're enough to warrant a change.
+ PNG is more common, and therefore more accessible to most users --
+ particularly those who don't use OS X. The PNG files are smaller than
+ their ICNS equivalents. PNG supports a wider range of sizes (although I'm
+ not now using anything that ICNS doesn't support, I might in the future).
+ The icon-scaling support added a few versions ago makes ICNS's support
+ for multiple icon sizes relatively unimportant.
+
+- Reversed order of search for icons by extension: rEFInd now searches
+ for PNG files before ICNS files, rather than the other way around. This
+ makes it possible to override a volume icon for rEFInd by giving it the
+ name .VolumeIcon.png, even when a .VolumeIcon.icns file exists on the
+ volume and is used by OS X.
+
+- Fixed bug that caused .VolumeIcon.icns to take higher-than-intended
+ precedence in icon setting for OS X.
+
+- Chainloading to BIOS-mode boot loaders now works on UEFI-based PCs when
+ rEFInd is built with GNU-EFI, not just when built with Tianocore.
+
+0.8.0 (5/4/2014):
+-----------------
+
+- The "dont_scan_volumes" parameter now also works with legacy-boot
+ volumes. Unlike with EFI volumes, where the option you pass must exactly
+ match an entire volume name, when applied to legacy-boot volumes, it
+ matches any part of the description that appears beneath the item when
+ you select it in the rEFInd main menu.
+
+- Can now boot in legacy mode from second (and probably later) hard disks!
+
+- rEFInd now limits the length of the firmware name string shown in the
+ system information screen to 65 characters. This is done because at least
+ one EFI presents a longer string by default, and this causes the entire
+ information display to come up empty on 800x600 displays.
+
- rEFInd now uses the partition's name (as stored in the GPT data
structures) as a fallback for the filesystem's name if the latter can't
be found. Exceptions are if the partition name is one of three generic