* grub-core/Makefile.core.def (xnu): Add file lzss.c
* grub-core/loader/lzss.c: New file.
* grub-core/loader/xnu.c (grub_xnu_load_driver): Close binaryfile
on Mach-O open failure.
* grub-core/loader/macho.c (grub_macho_close): Free uncompressedXX.
Don't free cmdsXX in uncompressedXX is set.
(grub_macho_file): Init new fields.
New argument is_64bit. All users updated.
Handle compressed. Error out if no suitable architecture is found.
Don't close file.
(grub_macho_open): New argument is_64bit. All users updated.
* grub-core/loader/macho32.c: Add defines for new fields.
* grub-core/loader/macho64.c: Likewise.
* grub-core/loader/machoXX.c (grub_macho_contains_macho): Make static.
(grub_macho_parse): Handle compressed.
Defer actual processing if compressed.
(grub_macho_cmds_iterate): Decompress if compressed. New argument
"filename". All users updated.
(grub_macho_size): New argument "filename". All users updated.
(grub_macho_get_entry_point): Likewise.
(grub_macho_load): Handle compressed.
* include/grub/macho.h (grub_macho_lzss_header): New struct.
(GRUB_MACHO_LZSS_OFFSET): New define.
(grub_decompress_lzss): New proto.
* include/grub/machoload.h (grub_macho_file): New fields to handle
compressed.
(grub_macho_contains_macho64): Remove proto.
(grub_macho_contains_macho32): Likewise.
* util/grub.d/30_os-prober.in: Use kernel cache if available.
available as a user override instead. Replace the gfxterm backend
check with a check that ${GRUB_PREFIX}/video.lst is non-empty.
* util/grub.d/00_header.in (load_video): New generated function.
Call it before loading gfxterm rather than loading
${GRUB_VIDEO_BACKEND}.
* util/grub.d/10_linux.in (linux_entry): Call load_video.
* util/grub.d/30_os-prober.in (osx_entry): Likewise.
* docs/grub.texi (Simple configuration): Document
GRUB_VIDEO_BACKEND.
Improve grub-mkconfig performance when there are several menu
entries on a single filesystem.
* util/grub.d/10_linux.in (linux_entry): Cache the output of
prepare_grub_to_access_device.
* util/grub.d/10_kfreebsd.in (kfreebsd_entry): Likewise.
* util/grub.d/30_os-prober.in: Likewise.
* util/grub.d/30_os-prober.in: Don't throw away stderr from
os-prober. Under normal operation, it does not print anything to
stderr; if it does, we need to debug it, and throwing away stderr
makes that excessively difficult.
* util/grub.d/30_os-prober.in: Fix a comment. Source
${libdir}/grub/grub-mkconfig_lib. Use prepare_grub_to_access_device
to set the root device. Place drivemap command in the generated
chain entry.
gfxpayload support
* commands/videotest.c (grub_cmd_videotest): use grub_video_set_mode
* include/grub/video.h (GRUB_VIDEO_MODE_TYPE_PURE_TEXT): new definition
(grub_video_setup): remove
(grub_video_set_mode): new prototype
* loader/i386/linux.c (DEFAULT_VIDEO_MODE): new definition
(vid_mode): remove
(linux_vesafb_res): compile only on PCBIOS
(grub_linux_boot): support gfxpayload
* loader/i386/pc/xnu.c (video_hook): new function
(grub_xnu_set_video): support gfxpayload
* term/gfxterm.c (DEFAULT_VIDEO_WIDTH): removed
(DEFAULT_VIDEO_HEIGHT): likewise
(DEFAULT_VIDEO_FLAGS): likewise
(DEFAULT_VIDEO_MODE): new definition
(video_hook): new function
(grub_gfxterm_init): use grub_video_set_mode
* util/grub.d/30_os-prober.in: remove explicit modesetting before
loading xnu
* video/video.c (grub_video_setup): removed
(grub_video_set_mode): new function based on grub_gfxterm_init and
grub_video_setup
* util/update-grub_lib.in: Copy to ...
* util/grub-mkconfig_lib.in: ... this. Update all users.
* util/update-grub_lib.in: Make it a stub to `grub-mkconfigig_lib.in'.
* util/update-grub.in: Rename to ...
* util/grub-mkconfig.in: ... this. Update all users. Remove `-y'
option. Add `--output' option to allow users to specify the generated
configuration file. Default to stdout.
(update_grub_dir): Rename to ...
(grub_mkconfig_dir): ... this.
(grub_cfg): Default to an empty string.
* conf/common.rmk (update-grub): Rename to ...
(grub-mkconfig): ... this.
(update-grub_lib): Copy to ...
(grub-mkconfig_lib): ... this.
(update-grub_SCRIPTS): Copy to ...
(grub-mkconfig_SCRIPTS): ... this. Update all users.
(update-grub_DATA): Rename to ...
(grub-mkconfig_DATA): ... this.
* util/grub.d/30_os-prober.in: New script. Use `os-prober' and
`linux-boot-prober' (if installed) to detect other operating
systems which are installed on the computer and add them to
the boot menu.
* conf/common.rmk: Build and install 30_os-prober.