]> code.delx.au - refind/blobdiff - NEWS.txt
Fixed uninitialized-pointer bug that manifested as a crash with
[refind] / NEWS.txt
index 1ffbed417221fef7ecc1a85dbda21c6bb74edde9..4c0579dea4f60b9374d83ca134062a90c6428e9e 100644 (file)
--- a/NEWS.txt
+++ b/NEWS.txt
@@ -1,3 +1,293 @@
+0.10.4 (?/??/2016):
+-------------------
+
+- Fixed bug that could cause program crash on startup. (In practice, it
+  manifested with GNU-EFI starting with version 3.0.3 or 3.0.4.)
+
+- An anonymous contributor has provided support for touch screens. This
+  support requires that the "enable_touch" token be used in refind.conf.
+  Note, however, that not all tablet computers have EFIs that provide the
+  necessary support in the firmware.
+
+- Martin Whitaker contributed 64-bit support to the ext4fs driver, which
+  makes it compatible with ext4fs as written by some recent Linux
+  distributions.
+
+- Tweaked refind-install to do a better job of detecting disks other
+  than /dev/sd? and /dev/hd? devices.
+
+0.10.3 (4/24/2016):
+-------------------
+
+- Altered RPM & Debian installation scripts so as to NOT call sbsign if
+  Secure Boot is disabled. This is a response to Ubuntu bug #1574372
+  (https://bugs.launchpad.net/ubuntu/+source/sbsigntool/+bug/1574372): In
+  Ubuntu 16.04, the sbsign program is segfaulting randomly, which prevents
+  proper installation of the program. This change at least permits proper
+  installation IF Secure Boot is disabled.
+
+- Changed description of BIOS/CSM/legacy OS loaders on Macs to include the
+  string "(Legacy)", so as to more easily identify BIOS/CSM/legacy-mode OSes
+  in the rEFInd main menu.
+
+- Added recognition of the fwupx64.efi file as a firmware update tool.
+  This filename is excluded from the first-row launchers, and is instead
+  presented on the second row, controlled by the "fwupdate" item on the
+  "showtools" option line. It's enabled by default. Note that it's still a
+  bit unclear to me how this tool is supposed to be used. rEFInd launches it
+  with no options, but if it should take options, this will have to be
+  changed in the future.
+
+- Tightened exclusion of shell binary filenames from boot loader scan.
+  Previously, any filename containing the substring "shell" was excluded
+  from scans. Now it's tighter; only files matching one of the filenames in
+  the constant SHELL_NAMES in main.c are excluded. This change will enable
+  programs with names that include "shell", but that aren't in rEFInd's
+  SHELL_NAMES list, such as "shelly.efi", to be shown in the rEFInd main
+  menu.
+
+- Fixed bug in NTFS driver that caused it to hang (and thus hang the
+  computer) in some situations, particularly when a file on an NTFS volume
+  had many fragments and when the computer's CSM was activated. (Fix
+  courtesy of "S L.")
+
+- Modified SIP/CSR rotation code: If the csr-active-config EFI variable is
+  missing AND the firmware is Apple (as identified by the string "Apple"
+  being present in the ST->FirmwareVendor string), rEFInd treats the
+  computer as one on which SIP is available and set to the "enabled" state
+  (0x10). The upshot is that the SIP/CSR tool will appear if the showtools
+  and csr_values options are set appropriately in refind.conf, even if the
+  csr-active-config variable is missing from the NVRAM. The point of this
+  change is that I've received reports of some Macs that run OS X 10.11 but
+  that lack this variable. OS X acts as if SIP were enabled, but rEFInd is
+  then unable to disable SIP. This change gives rEFInd the ability to
+  disable SIP on such systems. The drawback is that the variable might be
+  set on some systems that don't run OS X 10.11. This should be harmless
+  from a technical point of view, but the presence of SIP indicators in
+  rEFInd could be confusing.
+
+- Added refind-mkdefault script to simplify resetting rEFInd as the default
+  boot program in Linux. The intent is to run this after GRUB, Windows, OS
+  X, or some other tool takes over as the primary boot manager. It can be
+  called from a startup script to handle this task automatically.
+
+0.10.2 (1/26/2016):
+-------------------
+
+- Fixed bug in refind-install that caused mountesp to be installed as a FILE
+  called /usr/local/bin on OS X if the /usr/local/bin directory did not
+  already exist.
+
+- Fixed bug in mvrefind that caused it to fail to move bootmgfw.efi in
+  some situations, and another that caused it to give the resulting NVRAM
+  entry the default rEFInd name of "rEFInd Boot Manager," rather than the
+  intended "Windows Boot Manager" (to work around bugs in some EFIs).
+
+- Worked around bug/quirk in some EFIs (in HP ProBook 6470b laptop, at
+  least) that prevented EFI filesystem drivers from working. (Drivers would
+  load but not provide access to filesystems.)
+
+- Fixed refind-install bug that caused --usedefault option to not work in OS
+  X. (This bug did not affect Linux.)
+
+- Improved Secure Boot detection in refind-install in Linux.
+
+- Fixed bug that caused custom volume badges (vol_*.png) to be read only
+  from default location ("icons" subdirectory), effectively eliminating the
+  ability to adjust them.
+
+- Added centos.crt and centos.cer public key files.
+
+0.10.1 (12/12/2015):
+--------------------
+
+- Change to PPA version: Installing the PPA now queries the user about
+  whether to install to the ESP. Upgrades will remember the initial
+  selection.
+
+- Modified time-based sorting of loaders in a single directory to push
+  anything starting with "vmlinuz-0-rescue" to the end of the list. Fedora
+  gives its rescue kernels filenames that begin with that string, and if
+  such a kernel happens to be the most recent, treating it normally will
+  cause it to become the default when kernel folding is in use. This is
+  almost certainly undesirable, so this change keeps the rescue kernel at
+  the end of the list instead, which is saner.
+
+- Significantly reworked the project's Makefiles. This should have no
+  impact on ordinary users, and even most developers should barely notice
+  it; but it should make future extensions to additional platforms or
+  building in different environments easier.
+
+- Added workaround to gptsync for issue with some Macs' EFIs that caused
+  the program to skip through all prompts, thus accepting the default
+  option. This would normally cause gptsync to do nothing.
+
+- Added type code 53746F72-6167-11AA-AA11-00306543ECAC (Apple Core Storage,
+  gdisk type AF05) to list of partition types recognized by gptsync.
+
+- Removed Luxi Sans Mono font, since I discovered it was not open source;
+  and changed the default font from Nimbus Mono to Liberation Mono.
+
+- Added support for compiling rEFInd for ARM64 (aka AARCH64 or aa64). This
+  works with both GNU-EFI and Tianocore UDK2014.SP1.P1. This support is
+  currently poorly tested. In particular, I used QEMU on an x86-64 computer
+  to create a virtualized ARM64 environment; I've not yet tested on a real
+  computer. I couldn't get QEMU to create a video card, so I used a serial
+  terminal, which means that the graphics features are untested -- I ran
+  rEFInd with "textonly" uncommented in refind.conf. I've tested the ext4fs
+  driver but no other drivers, although they all compile. (So does gptsync,
+  although it's unlikely to be useful on ARM64.) Some rEFInd features are
+  meaningless on ARM64, such as BIOS-mode boot support, anything geared
+  toward Macs (csr_values/csr_rotate, spoof_osx_version, etc.), and
+  enable_and_lock_vmx.
+
+- Fixed bug that caused rEFInd to fail to scan EFI boot loaders on
+  removable media when rEFInd itself was launched from the fallback
+  filename.
+
+- Moved detailed descriptions of refind-install from installing.html to
+  a refind-install man page. To keep this information Web-accessible, I've
+  also created HTML versions of the three man pages and linked them into
+  the HTML documentation.
+
+- Updated LodePNG to latest version (20151024).
+
+- Fixed bugs in mkrlconf and in refind-install that could cause some kernel
+  options to be excluded from refind_linux.conf. There were two trouble
+  conditions:
+  - Previously, these scripts assumed that the first option in
+    /proc/cmdline was the kernel's filename, but this isn't always the
+    case. (In particular, when gummiboot launches the kernel, this is not
+    true. It might be an incorrect assumption in some other cases, too.)
+    The fix involves checking for likely signs of a kernel filename before
+    discarding this first option.
+  - These scripts cut the "initrd=*" option from /proc/cmdline, but the
+    call to "sed" was overzealous and cut until the end of input. This
+    usually worked, since the initrd= option was usually last on the line;
+    but if it wasn't, any options following initrd= would be lost.
+
+- Added "kernel*" as a matching pattern for Linux kernels, since this is
+  what Gentoo uses by default.
+
+- 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):
 ------------------