From 81987f4958403e617c0ce367a8e87e5c9dc54614 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 27 Feb 2018 13:56:41 -0500 Subject: [PATCH 01/45] Update grub2 for f28 - Try to fix things for new compiler madness. I really don't know why gcc decided __attribute__((packed)) on a "typedef struct" should imply __attribute__((align (1))) and that it should have a warning that it does so. The obvious behavior would be to keep the alignment of the first element unless it's used in another object or type that /also/ hask the packed attribute. Why should it change the default alignment at all? - Merge in the BLS patches Javier and I wrote. - Attempt to fix pmtimer initialization failures to not be super duper slow. Signed-off-by: Peter Jones --- 0001-Bump-version-to-2.03.patch | 8 +- 0002-Remove-bashisms-from-tests.patch | 26 +- 0003-fs-tester-make-sh-compatible.patch | 6 +- 0004-support-busybox-date.patch | 8 +- ...retrieve-fstime-when-it-s-not-useful.patch | 6 +- 0006-Support-lseek64.patch | 8 +- 0007-Use-SHELL-rather-than-bin-sh.patch | 6 +- 0008-po-Use-SHELL-rather-than-bin-sh.patch | 6 +- 0009-Add-termux-path-to-dict.patch | 6 +- 0010-Fix-shebang-for-termux.patch | 124 +- 0011-Add-strtoull-test.patch | 6 +- ...x-behaviour-on-chars-between-9-and-a.patch | 8 +- 0013-Add-Virtual-LAN-support.patch | 18 +- ...out-to-mkimage_generate_elfXX-rather.patch | 54 +- ...r-arm-uboot-code-to-make-it-genereic.patch | 427 +- ...-parts-that-are-platform-independent.patch | 50 +- ...-Rename-uboot-halt.c-to-dummy-halt.c.patch | 6 +- ...ame-uboot-datetime-to-dummy-datetime.patch | 8 +- 0019-arm-coreboot-Start-new-port.patch | 522 +- ...upport-for-device-tree-based-drivers.patch | 443 +- ...-coreboot-Support-for-vexpress-timer.patch | 6 +- 0022-arm-coreboot-Export-FDT-routines.patch | 6 +- ...-Split-protocol-from-controller-code.patch | 41 +- ...reboot-Support-keyboard-for-vexpress.patch | 36 +- ...m_coreboot-Support-grub-mkstandalone.patch | 72 +- ...oreboot-Support-loading-linux-images.patch | 8 +- 0027-arm_coreboot-Support-DMA.patch | 90 +- 0028-ehci-Split-core-code-from-PCI-part.patch | 10 +- 0029-arm_coreboot-Support-EHCI.patch | 40 +- ...n-FDT-nodes-with-compatible-property.patch | 6 +- ...ty-to-send-receive-messages-on-paren.patch | 8 +- 0032-rk3288_spi-Add-SPI-driver.patch | 12 +- ...eboot-Add-Chromebook-keyboard-driver.patch | 10 +- 0034-Missing-parts-of-previous-commit.patch | 8 +- ...-cbmemc-to-support-updated-console-f.patch | 6 +- ...t_keyboard-Fix-falco-chromebook-case.patch | 8 +- 0037-sparc64-Close-cdboot-ihandle.patch | 6 +- ...-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch | 6 +- ...p-option-support-in-xen_module-comma.patch | 6 +- ...inux_xen.in-Add-xen_boot-command-sup.patch | 6 +- ...-introduction-of-Xen-boot-commands-i.patch | 6 +- ...se-devspec-to-determine-the-OBP-path.patch | 6 +- ...unt-ext2-3-4-filesystems-that-have-t.patch | 10 +- 0044-ehci-Fix-compilation-for-amd64.patch | 6 +- ...-compilation-for-ppc-sparc-and-arm64.patch | 6 +- 0046-ehci-Fix-compilation-on-i386.patch | 6 +- 0047-crypto-Fix-use-after-free.patch | 6 +- 0048-arm-efi-Fix-compilation.patch | 6 +- 0049-fdt-silence-clang-warning.patch | 6 +- 0050-Fix-a-segfault-in-lsefi.patch | 6 +- ...t-typedef-and-use-grub_size_t-instea.patch | 6 +- ...x-reading-label-lvd.ident-is-dstring.patch | 6 +- ...b-core-fs-udf.c-Add-support-for-UUID.patch | 6 +- ...orriso-presence-before-doing-anythin.patch | 6 +- 0055-Fail-if-xorriso-failed.patch | 6 +- ...efi-refactor-grub_efi_allocate_pages.patch | 8 +- 0057-Remove-grub_efi_allocate_pages.patch | 40 +- 0058-efi-move-fdt-helper-library.patch | 12 +- 0059-efi-Add-GRUB_PE32_MAGIC-definition.patch | 10 +- ...inux-loader-improve-type-portability.patch | 8 +- ...allocation-type-to-GRUB_EFI_LOADER_C.patch | 6 +- ...RM_-definitions-when-handling-term-c.patch | 30 +- ...B_GZ-prefix-to-gzio-specific-defines.patch | 6 +- 0064-info-in-builddir.patch | 6 +- 0065-re-write-.gitignore.patch | 22 +- ...ient-architecture-CAS-reboot-support.patch | 12 +- ...nsole-display-attr-when-clear-screen.patch | 6 +- ...video-support-for-IBM-power-machines.patch | 10 +- ...when-generating-configuration-by-gru.patch | 6 +- 0070-Move-bash-completion-script-922997.patch | 8 +- 0071-Update-to-minilzo-2.08.patch | 8870 ++++++++--------- ...o-include-entries-by-title-not-just-.patch | 6 +- 0073-Add-GRUB_DISABLE_UUID.patch | 10 +- 0074-Make-exit-take-a-return-code.patch | 32 +- ...pot-as-binary-so-git-won-t-try-to-di.patch | 6 +- ...es-load-an-env-block-from-a-variable.patch | 8 +- ...HCP-client-ID-and-UUID-options-added.patch | 8 +- ...-trim-arp-packets-with-abnormal-size.patch | 6 +- ...Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch | 6 +- ...UEFI-operating-systems-returned-by-o.patch | 6 +- 0081-Migrate-PPC-from-Yaboot-to-Grub2.patch | 8 +- 0082-Add-fw_path-variable-revised.patch | 8 +- 0083-Add-support-for-linuxefi.patch | 14 +- ...xefi-and-initrdefi-where-appropriate.patch | 6 +- ...w-insmod-when-secure-boot-is-enabled.patch | 10 +- ...-hex-hex-straight-through-unmolested.patch | 10 +- 0087-Add-X-option-to-printf-functions.patch | 6 +- ...for-specific-config-file-for-netboot.patch | 10 +- ...g-module-to-parse-Boot-Loader-Specif.patch | 8 +- 0090-Don-t-write-messages-to-the-screen.patch | 74 +- 0091-Don-t-print-GNU-GRUB-header.patch | 6 +- 0092-Don-t-add-to-highlighted-row.patch | 6 +- 0093-Message-string-cleanups.patch | 6 +- ...ing-now-that-we-aren-t-displaying-it.patch | 6 +- ...t-indentation-for-the-term-help-text.patch | 6 +- 0096-Indent-menu-entries.patch | 6 +- 0097-Fix-margins.patch | 6 +- ...-1-for-our-right-hand-margin-so-line.patch | 6 +- ...-Use-linux16-when-appropriate-880840.patch | 6 +- 0100-Enable-pager-by-default.-985860.patch | 6 +- ...-on-serial-so-don-t-tell-the-user-to.patch | 6 +- ...n-t-say-GNU-Linux-in-generated-menus.patch | 8 +- ...-Don-t-draw-a-border-around-the-menu.patch | 6 +- ...andard-margin-for-the-timeout-string.patch | 6 +- ...rame-to-list-of-relocations-stripped.patch | 6 +- ...rk-with-our-changes-for-linux16-and-.patch | 6 +- ...on-t-print-during-fdt-loading-method.patch | 6 +- ...spaces-when-we-re-doing-our-cmdline-.patch | 6 +- ...password-to-boot-entries-generated-b.patch | 6 +- 0110-Don-t-emit-Booting-.-message.patch | 8 +- ...f-man-pages-with-slightly-nicer-ones.patch | 146 +- ...ix-when-fallback-searching-for-grub-.patch | 6 +- ...-before-grub.cfg-on-tftp-config-file.patch | 22 +- ...ert-function-to-support-NVMe-devices.patch | 6 +- ...M-Mustang-device-tree-for-hardware-t.patch | 6 +- ...device-tree-from-the-grub-default-fi.patch | 8 +- ...P-protocol-for-exclusive-use-by-grub.patch | 6 +- ...P-protocol-for-exclusive-use-by-grub.patch | 6 +- 0119-Add-grub_util_readlink.patch | 726 +- ...se-symlinks-including-those-across-d.patch | 8 +- ...CLASS-in-10_linux-from-etc-os-releas.patch | 6 +- ...t-ordering-for-.debug-and-rescue-ker.patch | 6 +- 0123-Load-arm-with-SB-enabled.patch | 143 +- 0124-Try-prefix-if-fw_path-doesn-t-work.patch | 36 +- ...-grub.cfg-netboot-selection-order-11.patch | 8 +- ...-Package-Sort-for-grub2-mkconfig-112.patch | 178 +- 0127-Handle-rssd-storage-devices.patch | 8 +- ...x16-initrd16-and-linuxefi-initrdefi-.patch | 8 +- ...fig-construct-titles-that-look-like-.patch | 8 +- ...ly-grub2-password-config-tool-985962.patch | 70 +- ...fig-construct-titles-that-look-like-.patch | 19 +- ...-configure.ac-and-grub-rpm-sort-play.patch | 16 +- 0133-tcp-add-window-scaling-support.patch | 8 +- ...net-retransmit-if-our-device-is-busy.patch | 8 +- ...out-actually-using-the-configured-ne.patch | 16 +- ...r-for-the-first-exclusive-reopen-of-.patch | 8 +- ...ue-when-reading-username-and-passwor.patch | 10 +- ...ub-password-will-not-be-read-1290803.patch | 8 +- ...ub-setpassword-documentation-1290799.patch | 10 +- ...le-issue-in-grub-setpassword-1294243.patch | 8 +- ...rsistent-RAM-and-unknown-possible-fu.patch | 8 +- 0142-efiemu-Fix-compilation-failure.patch | 8 +- ...P-protocol-for-exclusive-use-by-grub.patch | 8 +- 0144-Add-a-url-parser.patch | 16 +- ...net-and-bootp-add-support-for-dhcpv6.patch | 18 +- ...rnel-settings-and-use-it-in-10_linux.patch | 84 +- 0147-Normalize-slashes-in-tftp-paths.patch | 8 +- 0148-Fix-malformed-tftp-packets.patch | 8 +- 0149-Fix-race-in-EFI-validation.patch | 8 +- ...1374141-fix-incorrect-mask-for-ppc64.patch | 8 +- ...art-of-chainloader-target-if-present.patch | 8 +- ...ecureboot-support-on-efi-chainloader.patch | 10 +- ...loaders-that-link-in-efi-mode-honor-.patch | 68 +- 0154-Make-grub_fatal-also-backtrace.patch | 16 +- 0155-Rework-linux-command.patch | 8 +- 0156-Rework-linux16-command.patch | 8 +- 0157-Make-grub-editenv-build-again.patch | 8 +- ...ix-up-some-man-pages-rpmdiff-noticed.patch | 14 +- ...-work-some-intricacies-of-PE-loading.patch | 10 +- ...-of-efi-chainload-so-non-sb-cases-wo.patch | 60 +- ...-double-free-on-verification-failure.patch | 8 +- ...machine-type-test-in-30_os-prober.in.patch | 8 +- ...fix-wrong-sanity-check-in-relocate_c.patch | 8 +- ...truncate-overlong-relocation-section.patch | 8 +- 0165-linuxefi-minor-cleanups.patch | 8 +- ...rch-64-on-32-boot-in-linuxefi-loader.patch | 42 +- 0167-Fix-up-linux-params-usage.patch | 8 +- 0168-Make-exit-take-a-return-code.patch | 10 +- ...fdt-has-address-cells-and-size-cells.patch | 8 +- ...rintf-in-the-secure-boot-verify-code.patch | 8 +- ...fo-pages-say-grub2-where-appropriate.patch | 10 +- ...more-debug-info-in-our-module-loader.patch | 8 +- ...-chainloader-entries-don-t-try-any-x.patch | 8 +- ...-Add-ability-to-boot-from-subvolumes.patch | 71 +- ...port-btrfs_subvol-and-btrfs_subvolid.patch | 8 +- 0176-grub2-btrfs-03-follow_default.patch | 8 +- 0177-grub2-btrfs-04-grub2-install.patch | 42 +- 0178-grub2-btrfs-05-grub2-mkconfig.patch | 16 +- 0179-grub2-btrfs-06-subvol-mount.patch | 46 +- ...ootable-Snapshot-submenu-in-grub.cfg.patch | 8 +- ...subvol-name-scheme-to-support-old-sn.patch | 8 +- ...-correctly-with-btrfs-snapshots-bsc-.patch | 8 +- ...ocate_pool-and-grub_efi_free_pool-wr.patch | 8 +- ...fi_.-memory-helpers-where-reasonable.patch | 8 +- 0185-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch | 10 +- ...c-sized-arrays-since-we-don-t-build-.patch | 8 +- 0187-don-t-ignore-const.patch | 8 +- 0188-don-t-use-int-for-efi-status.patch | 8 +- ...INIT-declare-its-function-prototypes.patch | 8 +- ...p-some-errors-in-the-linuxefi-loader.patch | 8 +- 0191-editenv-handle-relative-symlinks.patch | 8 +- ...e-libgrub.pp-depend-on-config-util.h.patch | 8 +- ...-efi-as-HFS-on-ppc-machines-in-grub-.patch | 8 +- ...20_linux_xen.in-Add-xen_boot-command.patch | 8 +- ...-figure-out-whether-multiboot2-shoul.patch | 8 +- ...d-xen-or-multiboot-2-modules-as-need.patch | 8 +- ...lt-tsc-calibration-method-to-pmtimer.patch | 8 +- ...-calibration-not-take-51-seconds-to-.patch | 181 +- 0199-align-struct-efi_variable-better.patch | 36 + 0200-Add-quicksort-implementation.patch | 325 + ...nd-support-to-parse-BootLoaderSpec-c.patch | 1140 +++ 0202-Add-BLS-support-to-grub-mkconfig.patch | 169 + ...d-grub_exit-definition-for-grub-emu-.patch | 36 + ...-backtrace-on-grub_abort-for-grub-em.patch | 30 + ...-blscfg-command-for-the-emu-platform.patch | 167 + ...nux-and-initrd-commands-for-grub-emu.patch | 354 + grub.patches | 8 + grub2.spec | 13 +- 208 files changed, 9316 insertions(+), 7185 deletions(-) create mode 100644 0199-align-struct-efi_variable-better.patch create mode 100644 0200-Add-quicksort-implementation.patch create mode 100644 0201-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch create mode 100644 0202-Add-BLS-support-to-grub-mkconfig.patch create mode 100644 0203-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch create mode 100644 0204-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch create mode 100644 0205-Enable-blscfg-command-for-the-emu-platform.patch create mode 100644 0206-Add-linux-and-initrd-commands-for-grub-emu.patch diff --git a/0001-Bump-version-to-2.03.patch b/0001-Bump-version-to-2.03.patch index 361f6e29..392d0b8f 100644 --- a/0001-Bump-version-to-2.03.patch +++ b/0001-Bump-version-to-2.03.patch @@ -1,7 +1,7 @@ From b0bad6fd9449d3333fe1ab58953c0e6c1ce12c0d Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Wed, 3 May 2017 11:55:52 +0200 -Subject: [PATCH 001/198] Bump version to 2.03 +Subject: [PATCH 001/206] Bump version to 2.03 --- configure.ac | 2 +- @@ -9,7 +9,7 @@ Subject: [PATCH 001/198] Bump version to 2.03 2 files changed, 99 insertions(+), 99 deletions(-) diff --git a/configure.ac b/configure.ac -index edd184154..d10d8adac 100644 +index edd184154f7..d10d8adac58 100644 --- a/configure.ac +++ b/configure.ac @@ -31,7 +31,7 @@ dnl (such as BUILD_CC, BUILD_CFLAGS, etc.) for the build type and variables @@ -22,7 +22,7 @@ index edd184154..d10d8adac 100644 AC_CONFIG_AUX_DIR([build-aux]) diff --git a/grub-core/tests/checksums.h b/grub-core/tests/checksums.h -index 68d8ce7c7..921e57ff4 100644 +index 68d8ce7c775..921e57ff48d 100644 --- a/grub-core/tests/checksums.h +++ b/grub-core/tests/checksums.h @@ -1,101 +1,101 @@ @@ -226,5 +226,5 @@ index 68d8ce7c7..921e57ff4 100644 { "videotest", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0x7033079c, 0x7033079c, 0x7033079c, 0x7033079c, 0x7033079c, }, 5 }, { "videotest", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xff583fbf, 0xff583fbf, 0xff583fbf, 0xff583fbf, 0xff583fbf, }, 5 }, -- -2.14.3 +2.15.0 diff --git a/0002-Remove-bashisms-from-tests.patch b/0002-Remove-bashisms-from-tests.patch index 13c7601b..9294e3f1 100644 --- a/0002-Remove-bashisms-from-tests.patch +++ b/0002-Remove-bashisms-from-tests.patch @@ -1,7 +1,7 @@ From 5a0c548ba388b343b0bb6d2a38888e7eac5bbb96 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 03:47:13 +0300 -Subject: [PATCH 002/198] Remove bashisms from tests. +Subject: [PATCH 002/206] Remove bashisms from tests. Those tests don't actually need bash. Just use common shebang. --- @@ -19,7 +19,7 @@ Those tests don't actually need bash. Just use common shebang. 11 files changed, 11 insertions(+), 11 deletions(-) diff --git a/tests/grub_cmd_date.in b/tests/grub_cmd_date.in -index a459353e8..0d8162e98 100644 +index a459353e8a5..0d8162e98b0 100644 --- a/tests/grub_cmd_date.in +++ b/tests/grub_cmd_date.in @@ -1,4 +1,4 @@ @@ -29,7 +29,7 @@ index a459353e8..0d8162e98 100644 . "@builddir@/grub-core/modinfo.sh" diff --git a/tests/grub_cmd_regexp.in b/tests/grub_cmd_regexp.in -index e7e625701..7e9ab86aa 100644 +index e7e62570115..7e9ab86aabb 100644 --- a/tests/grub_cmd_regexp.in +++ b/tests/grub_cmd_regexp.in @@ -1,4 +1,4 @@ @@ -39,7 +39,7 @@ index e7e625701..7e9ab86aa 100644 # Run GRUB script in a Qemu instance diff --git a/tests/grub_cmd_set_date.in b/tests/grub_cmd_set_date.in -index c594ae3fc..2f518dd9e 100644 +index c594ae3fc14..2f518dd9e34 100644 --- a/tests/grub_cmd_set_date.in +++ b/tests/grub_cmd_set_date.in @@ -1,4 +1,4 @@ @@ -49,7 +49,7 @@ index c594ae3fc..2f518dd9e 100644 . "@builddir@/grub-core/modinfo.sh" diff --git a/tests/grub_cmd_sleep.in b/tests/grub_cmd_sleep.in -index eb362aa24..05b8f6b73 100644 +index eb362aa2439..05b8f6b73fa 100644 --- a/tests/grub_cmd_sleep.in +++ b/tests/grub_cmd_sleep.in @@ -1,4 +1,4 @@ @@ -59,7 +59,7 @@ index eb362aa24..05b8f6b73 100644 . "@builddir@/grub-core/modinfo.sh" diff --git a/tests/grub_cmd_test.in b/tests/grub_cmd_test.in -index 6269891c9..49ae8a9c8 100644 +index 6269891c9ee..49ae8a9c830 100644 --- a/tests/grub_cmd_test.in +++ b/tests/grub_cmd_test.in @@ -1,4 +1,4 @@ @@ -69,7 +69,7 @@ index 6269891c9..49ae8a9c8 100644 # create a randome file empty="`mktemp "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"`" || exit 1 diff --git a/tests/grub_cmd_tr.in b/tests/grub_cmd_tr.in -index 3fb15e35c..0e8d645eb 100644 +index 3fb15e35c8a..0e8d645eb6b 100644 --- a/tests/grub_cmd_tr.in +++ b/tests/grub_cmd_tr.in @@ -1,4 +1,4 @@ @@ -79,7 +79,7 @@ index 3fb15e35c..0e8d645eb 100644 # Run GRUB script in a Qemu instance # Copyright (C) 2010 Free Software Foundation, Inc. diff --git a/tests/grub_func_test.in b/tests/grub_func_test.in -index c8cc26376..b32f24466 100644 +index c8cc2637633..b32f2446659 100644 --- a/tests/grub_func_test.in +++ b/tests/grub_func_test.in @@ -1,4 +1,4 @@ @@ -89,7 +89,7 @@ index c8cc26376..b32f24466 100644 . "@builddir@/grub-core/modinfo.sh" diff --git a/tests/grub_script_blockarg.in b/tests/grub_script_blockarg.in -index 2765b61ac..63b60a2ea 100644 +index 2765b61acbb..63b60a2ea06 100644 --- a/tests/grub_script_blockarg.in +++ b/tests/grub_script_blockarg.in @@ -1,4 +1,4 @@ @@ -99,7 +99,7 @@ index 2765b61ac..63b60a2ea 100644 # Run GRUB script in a Qemu instance # Copyright (C) 2010 Free Software Foundation, Inc. diff --git a/tests/grub_script_expansion.in b/tests/grub_script_expansion.in -index e46401c4c..2b7829568 100644 +index e46401c4c9f..2b782956838 100644 --- a/tests/grub_script_expansion.in +++ b/tests/grub_script_expansion.in @@ -1,4 +1,4 @@ @@ -109,7 +109,7 @@ index e46401c4c..2b7829568 100644 # Run GRUB script in a Qemu instance diff --git a/tests/help_test.in b/tests/help_test.in -index e780924ef..aa9645835 100644 +index e780924ef7b..aa96458355b 100644 --- a/tests/help_test.in +++ b/tests/help_test.in @@ -1,4 +1,4 @@ @@ -119,7 +119,7 @@ index e780924ef..aa9645835 100644 . "@builddir@/grub-core/modinfo.sh" diff --git a/tests/test_sha512sum.in b/tests/test_sha512sum.in -index d5ef7f9ea..80ebdc59f 100644 +index d5ef7f9ea62..80ebdc59fd5 100644 --- a/tests/test_sha512sum.in +++ b/tests/test_sha512sum.in @@ -1,4 +1,4 @@ @@ -129,5 +129,5 @@ index d5ef7f9ea..80ebdc59f 100644 # create a randome file file="`mktemp "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"`" || exit 1 -- -2.14.3 +2.15.0 diff --git a/0003-fs-tester-make-sh-compatible.patch b/0003-fs-tester-make-sh-compatible.patch index b46edafe..8f8e1f64 100644 --- a/0003-fs-tester-make-sh-compatible.patch +++ b/0003-fs-tester-make-sh-compatible.patch @@ -1,14 +1,14 @@ From 37865c2c4ad26cd5e947b08abf1fde8145699919 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 14:35:59 +0300 -Subject: [PATCH 003/198] fs-tester: make sh-compatible +Subject: [PATCH 003/206] fs-tester: make sh-compatible --- tests/util/grub-fs-tester.in | 306 ++++++++++++++++++++++++------------------- 1 file changed, 169 insertions(+), 137 deletions(-) diff --git a/tests/util/grub-fs-tester.in b/tests/util/grub-fs-tester.in -index 2337771a1..4515d165e 100644 +index 2337771a1b9..4515d165e6e 100644 --- a/tests/util/grub-fs-tester.in +++ b/tests/util/grub-fs-tester.in @@ -1,4 +1,4 @@ @@ -742,5 +742,5 @@ index 2337771a1..4515d165e 100644 if [ x"$fs" = x"zfs" ]; then rmdir "$MNTPOINTRW"/"grub fs" || true -- -2.14.3 +2.15.0 diff --git a/0004-support-busybox-date.patch b/0004-support-busybox-date.patch index bc17c60d..40cfeedc 100644 --- a/0004-support-busybox-date.patch +++ b/0004-support-busybox-date.patch @@ -1,7 +1,7 @@ From b43b8cacc813c2c15347de1e35cc88d9aa912d22 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 14:31:36 +0300 -Subject: [PATCH 004/198] support busybox date. +Subject: [PATCH 004/206] support busybox date. Busybox date doesn't understand weekdays in -d input, so strip them beforehand. @@ -11,7 +11,7 @@ so strip them beforehand. 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/tests/grub_cmd_date.in b/tests/grub_cmd_date.in -index 0d8162e98..60f039ebc 100644 +index 0d8162e98b0..60f039ebc8b 100644 --- a/tests/grub_cmd_date.in +++ b/tests/grub_cmd_date.in @@ -9,7 +9,7 @@ if [ "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" = sparc64-ieee1275 ]; @@ -24,7 +24,7 @@ index 0d8162e98..60f039ebc 100644 ndt="$(date -u +%s)" diff --git a/tests/grub_cmd_sleep.in b/tests/grub_cmd_sleep.in -index 05b8f6b73..ac51d4209 100644 +index 05b8f6b73fa..ac51d42098e 100644 --- a/tests/grub_cmd_sleep.in +++ b/tests/grub_cmd_sleep.in @@ -11,8 +11,8 @@ fi @@ -39,5 +39,5 @@ index 05b8f6b73..ac51d4209 100644 # Ignore QEMU bug if [ "${grub_modinfo_target_cpu}" = arm ] && [ $((dt2 - dt1)) -ge 15 ] && [ $((dt2 - dt1)) -le 17 ]; then -- -2.14.3 +2.15.0 diff --git a/0005-Don-t-retrieve-fstime-when-it-s-not-useful.patch b/0005-Don-t-retrieve-fstime-when-it-s-not-useful.patch index 9d409d70..3fa9c323 100644 --- a/0005-Don-t-retrieve-fstime-when-it-s-not-useful.patch +++ b/0005-Don-t-retrieve-fstime-when-it-s-not-useful.patch @@ -1,14 +1,14 @@ From 6dec3a26b37e128ded5d912e08abc5cee1592499 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 21:24:05 +0300 -Subject: [PATCH 005/198] Don't retrieve fstime when it's not useful. +Subject: [PATCH 005/206] Don't retrieve fstime when it's not useful. --- tests/util/grub-fs-tester.in | 48 ++++++++++++++++++++++---------------------- 1 file changed, 24 insertions(+), 24 deletions(-) diff --git a/tests/util/grub-fs-tester.in b/tests/util/grub-fs-tester.in -index 4515d165e..bf47305f3 100644 +index 4515d165e6e..bf47305f3e8 100644 --- a/tests/util/grub-fs-tester.in +++ b/tests/util/grub-fs-tester.in @@ -1328,31 +1328,31 @@ for LOGSECSIZE in $(range "$MINLOGSECSIZE" "$MAXLOGSECSIZE" 1); do @@ -68,5 +68,5 @@ index 4515d165e..bf47305f3 100644 if [ x$NOHARDLINK != xy ]; then -- -2.14.3 +2.15.0 diff --git a/0006-Support-lseek64.patch b/0006-Support-lseek64.patch index 6d01bd3e..c97be550 100644 --- a/0006-Support-lseek64.patch +++ b/0006-Support-lseek64.patch @@ -1,7 +1,7 @@ From 608bec51128008afb81c9e3f297283e9f830a146 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 20:21:05 +0300 -Subject: [PATCH 006/198] Support lseek64. +Subject: [PATCH 006/206] Support lseek64. Android doesn't have 64-bit off_t, so use off64_t instead. --- @@ -10,7 +10,7 @@ Android doesn't have 64-bit off_t, so use off64_t instead. 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac -index d10d8adac..e0262e159 100644 +index d10d8adac58..e0262e159f0 100644 --- a/configure.ac +++ b/configure.ac @@ -373,7 +373,10 @@ case "$host_os" in @@ -26,7 +26,7 @@ index d10d8adac..e0262e159 100644 if test x$USE_NLS = xno; then diff --git a/grub-core/osdep/unix/hostdisk.c b/grub-core/osdep/unix/hostdisk.c -index 2a8c5882e..5450cf416 100644 +index 2a8c5882e3d..5450cf4166e 100644 --- a/grub-core/osdep/unix/hostdisk.c +++ b/grub-core/osdep/unix/hostdisk.c @@ -77,11 +77,19 @@ grub_util_get_fd_size (grub_util_fd_t fd, const char *name, unsigned *log_secsiz @@ -50,5 +50,5 @@ index 2a8c5882e..5450cf416 100644 } -- -2.14.3 +2.15.0 diff --git a/0007-Use-SHELL-rather-than-bin-sh.patch b/0007-Use-SHELL-rather-than-bin-sh.patch index 9dbb5efd..5ff446f8 100644 --- a/0007-Use-SHELL-rather-than-bin-sh.patch +++ b/0007-Use-SHELL-rather-than-bin-sh.patch @@ -1,7 +1,7 @@ From c2ea443446b7feea868e54f94a87781f69820375 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 00:55:30 +0300 -Subject: [PATCH 007/198] Use $(SHELL) rather than /bin/sh. +Subject: [PATCH 007/206] Use $(SHELL) rather than /bin/sh. /bin/sh doesn't exist under termux. --- @@ -9,7 +9,7 @@ Subject: [PATCH 007/198] Use $(SHELL) rather than /bin/sh. 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am -index 04e9395fd..809a8aa26 100644 +index 04e9395fd94..809a8aa26bf 100644 --- a/grub-core/Makefile.am +++ b/grub-core/Makefile.am @@ -278,7 +278,7 @@ BUILT_SOURCES += symlist.h @@ -22,5 +22,5 @@ index 04e9395fd..809a8aa26 100644 CLEANFILES += symlist.c BUILT_SOURCES += symlist.c -- -2.14.3 +2.15.0 diff --git a/0008-po-Use-SHELL-rather-than-bin-sh.patch b/0008-po-Use-SHELL-rather-than-bin-sh.patch index 9543b076..45f7f0a5 100644 --- a/0008-po-Use-SHELL-rather-than-bin-sh.patch +++ b/0008-po-Use-SHELL-rather-than-bin-sh.patch @@ -1,7 +1,7 @@ From 4341f82af0b61d3dfbe675670d4105dc759c0df3 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 14:54:03 +0300 -Subject: [PATCH 008/198] po: Use @SHELL@ rather than /bin/sh. +Subject: [PATCH 008/206] po: Use @SHELL@ rather than /bin/sh. /bin/sh might not exist. --- @@ -9,7 +9,7 @@ Subject: [PATCH 008/198] po: Use @SHELL@ rather than /bin/sh. 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/po/Makefile.in.in b/po/Makefile.in.in -index 3619458e8..e68e9da84 100644 +index 3619458e85f..e68e9da843d 100644 --- a/po/Makefile.in.in +++ b/po/Makefile.in.in @@ -15,7 +15,7 @@ PACKAGE = @PACKAGE@ @@ -22,5 +22,5 @@ index 3619458e8..e68e9da84 100644 srcdir = @srcdir@ -- -2.14.3 +2.15.0 diff --git a/0009-Add-termux-path-to-dict.patch b/0009-Add-termux-path-to-dict.patch index 96cf1a2a..6181723d 100644 --- a/0009-Add-termux-path-to-dict.patch +++ b/0009-Add-termux-path-to-dict.patch @@ -1,14 +1,14 @@ From 1073ddb12078f3c8edbdb74bb8f5afc674983f40 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 14:52:48 +0300 -Subject: [PATCH 009/198] Add termux path to dict. +Subject: [PATCH 009/206] Add termux path to dict. --- tests/util/grub-fs-tester.in | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/util/grub-fs-tester.in b/tests/util/grub-fs-tester.in -index bf47305f3..468d9e785 100644 +index bf47305f3e8..468d9e7856d 100644 --- a/tests/util/grub-fs-tester.in +++ b/tests/util/grub-fs-tester.in @@ -259,7 +259,7 @@ for LOGSECSIZE in $(range "$MINLOGSECSIZE" "$MAXLOGSECSIZE" 1); do @@ -21,5 +21,5 @@ index bf47305f3..468d9e785 100644 CFILESRC="$cand" break -- -2.14.3 +2.15.0 diff --git a/0010-Fix-shebang-for-termux.patch b/0010-Fix-shebang-for-termux.patch index a71faf3d..065444de 100644 --- a/0010-Fix-shebang-for-termux.patch +++ b/0010-Fix-shebang-for-termux.patch @@ -1,7 +1,7 @@ From a827807a1330d5ad619faa103bc7f12d89fc8bee Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Sun, 22 Jan 2017 20:22:34 +0300 -Subject: [PATCH 010/198] Fix shebang for termux. +Subject: [PATCH 010/206] Fix shebang for termux. Termux doesn't have a /bin/sh. So we needto use $SHELL. Keep /bin/sh as much as possible. @@ -69,7 +69,7 @@ Keep /bin/sh as much as possible. 60 files changed, 69 insertions(+), 59 deletions(-) diff --git a/configure.ac b/configure.ac -index e0262e159..ee2c86537 100644 +index e0262e159f0..ee2c86537e9 100644 --- a/configure.ac +++ b/configure.ac @@ -459,6 +459,16 @@ case "$build_os" in @@ -90,7 +90,7 @@ index e0262e159..ee2c86537 100644 gl_INIT diff --git a/grub-core/genmod.sh.in b/grub-core/genmod.sh.in -index 03cc3b7f6..3de06ee01 100644 +index 03cc3b7f69e..3de06ee018f 100644 --- a/grub-core/genmod.sh.in +++ b/grub-core/genmod.sh.in @@ -1,4 +1,4 @@ @@ -100,7 +100,7 @@ index 03cc3b7f6..3de06ee01 100644 # Copyright (C) 2010 Free Software Foundation, Inc. diff --git a/grub-core/gensyminfo.sh.in b/grub-core/gensyminfo.sh.in -index 2e8716b42..9bc767532 100644 +index 2e8716b425c..9bc7675327a 100644 --- a/grub-core/gensyminfo.sh.in +++ b/grub-core/gensyminfo.sh.in @@ -1,4 +1,4 @@ @@ -110,7 +110,7 @@ index 2e8716b42..9bc767532 100644 # Copyright (C) 2010 Free Software Foundation, Inc. diff --git a/grub-core/modinfo.sh.in b/grub-core/modinfo.sh.in -index faf0ad30e..f6cd657ce 100644 +index faf0ad30edb..f6cd657ce0f 100644 --- a/grub-core/modinfo.sh.in +++ b/grub-core/modinfo.sh.in @@ -1,4 +1,4 @@ @@ -120,7 +120,7 @@ index faf0ad30e..f6cd657ce 100644 # User-controllable options grub_modinfo_target_cpu=@target_cpu@ diff --git a/tests/ahci_test.in b/tests/ahci_test.in -index 1d01d1f59..7df560462 100644 +index 1d01d1f59a0..7df56046201 100644 --- a/tests/ahci_test.in +++ b/tests/ahci_test.in @@ -1,4 +1,4 @@ @@ -130,7 +130,7 @@ index 1d01d1f59..7df560462 100644 # # GRUB is free software: you can redistribute it and/or modify diff --git a/tests/btrfs_test.in b/tests/btrfs_test.in -index c55d9477f..2b37ddd33 100644 +index c55d9477f78..2b37ddd3324 100644 --- a/tests/btrfs_test.in +++ b/tests/btrfs_test.in @@ -1,4 +1,4 @@ @@ -140,7 +140,7 @@ index c55d9477f..2b37ddd33 100644 set -e diff --git a/tests/cdboot_test.in b/tests/cdboot_test.in -index 1cc901977..75acdfedb 100644 +index 1cc901977c2..75acdfedb7f 100644 --- a/tests/cdboot_test.in +++ b/tests/cdboot_test.in @@ -1,4 +1,4 @@ @@ -150,7 +150,7 @@ index 1cc901977..75acdfedb 100644 # # GRUB is free software: you can redistribute it and/or modify diff --git a/tests/core_compress_test.in b/tests/core_compress_test.in -index 1003587cc..9d216ebcf 100644 +index 1003587ccca..9d216ebcff6 100644 --- a/tests/core_compress_test.in +++ b/tests/core_compress_test.in @@ -1,4 +1,4 @@ @@ -160,7 +160,7 @@ index 1003587cc..9d216ebcf 100644 # # GRUB is free software: you can redistribute it and/or modify diff --git a/tests/cpio_test.in b/tests/cpio_test.in -index 0b09db549..5742cf17b 100644 +index 0b09db549f0..5742cf17b9d 100644 --- a/tests/cpio_test.in +++ b/tests/cpio_test.in @@ -1,4 +1,4 @@ @@ -170,7 +170,7 @@ index 0b09db549..5742cf17b 100644 set -e diff --git a/tests/ehci_test.in b/tests/ehci_test.in -index 7dd8d3e8f..b197f8cdc 100644 +index 7dd8d3e8fbd..b197f8cdc92 100644 --- a/tests/ehci_test.in +++ b/tests/ehci_test.in @@ -1,4 +1,4 @@ @@ -180,7 +180,7 @@ index 7dd8d3e8f..b197f8cdc 100644 # # GRUB is free software: you can redistribute it and/or modify diff --git a/tests/example_scripted_test.in b/tests/example_scripted_test.in -index 09633e893..783b7f138 100644 +index 09633e89341..783b7f13853 100644 --- a/tests/example_scripted_test.in +++ b/tests/example_scripted_test.in @@ -1,4 +1,4 @@ @@ -190,7 +190,7 @@ index 09633e893..783b7f138 100644 true diff --git a/tests/exfat_test.in b/tests/exfat_test.in -index fc1a0fe5e..cd3cd4cb2 100644 +index fc1a0fe5ec0..cd3cd4cb2f7 100644 --- a/tests/exfat_test.in +++ b/tests/exfat_test.in @@ -1,4 +1,4 @@ @@ -200,7 +200,7 @@ index fc1a0fe5e..cd3cd4cb2 100644 set -e diff --git a/tests/ext234_test.in b/tests/ext234_test.in -index c986960a8..892b99cbd 100644 +index c986960a8be..892b99cbdf6 100644 --- a/tests/ext234_test.in +++ b/tests/ext234_test.in @@ -1,4 +1,4 @@ @@ -210,7 +210,7 @@ index c986960a8..892b99cbd 100644 set -e diff --git a/tests/fat_test.in b/tests/fat_test.in -index 1d132b517..b6b4748ca 100644 +index 1d132b51703..b6b4748ca69 100644 --- a/tests/fat_test.in +++ b/tests/fat_test.in @@ -1,4 +1,4 @@ @@ -220,7 +220,7 @@ index 1d132b517..b6b4748ca 100644 set -e diff --git a/tests/fddboot_test.in b/tests/fddboot_test.in -index a59645b7f..2d7dfc889 100644 +index a59645b7f87..2d7dfc8891f 100644 --- a/tests/fddboot_test.in +++ b/tests/fddboot_test.in @@ -1,4 +1,4 @@ @@ -230,7 +230,7 @@ index a59645b7f..2d7dfc889 100644 # # GRUB is free software: you can redistribute it and/or modify diff --git a/tests/file_filter_test.in b/tests/file_filter_test.in -index 8909e4021..bfb638227 100644 +index 8909e4021fb..bfb6382274e 100644 --- a/tests/file_filter_test.in +++ b/tests/file_filter_test.in @@ -1,4 +1,4 @@ @@ -240,7 +240,7 @@ index 8909e4021..bfb638227 100644 # # GRUB is free software: you can redistribute it and/or modify diff --git a/tests/gettext_strings_test.in b/tests/gettext_strings_test.in -index 5c305e75b..813999ebe 100644 +index 5c305e75b7e..813999ebe6e 100644 --- a/tests/gettext_strings_test.in +++ b/tests/gettext_strings_test.in @@ -1,4 +1,4 @@ @@ -250,7 +250,7 @@ index 5c305e75b..813999ebe 100644 cd '@srcdir@' diff --git a/tests/grub_cmd_date.in b/tests/grub_cmd_date.in -index 60f039ebc..f7c9ca004 100644 +index 60f039ebc8b..f7c9ca00432 100644 --- a/tests/grub_cmd_date.in +++ b/tests/grub_cmd_date.in @@ -1,4 +1,4 @@ @@ -260,7 +260,7 @@ index 60f039ebc..f7c9ca004 100644 . "@builddir@/grub-core/modinfo.sh" diff --git a/tests/grub_cmd_regexp.in b/tests/grub_cmd_regexp.in -index 7e9ab86aa..6520bd6d7 100644 +index 7e9ab86aabb..6520bd6d79a 100644 --- a/tests/grub_cmd_regexp.in +++ b/tests/grub_cmd_regexp.in @@ -1,4 +1,4 @@ @@ -270,7 +270,7 @@ index 7e9ab86aa..6520bd6d7 100644 # Run GRUB script in a Qemu instance diff --git a/tests/grub_cmd_set_date.in b/tests/grub_cmd_set_date.in -index 2f518dd9e..aac120a6c 100644 +index 2f518dd9e34..aac120a6c52 100644 --- a/tests/grub_cmd_set_date.in +++ b/tests/grub_cmd_set_date.in @@ -1,4 +1,4 @@ @@ -280,7 +280,7 @@ index 2f518dd9e..aac120a6c 100644 . "@builddir@/grub-core/modinfo.sh" diff --git a/tests/grub_cmd_sleep.in b/tests/grub_cmd_sleep.in -index ac51d4209..8797f6632 100644 +index ac51d42098e..8797f663284 100644 --- a/tests/grub_cmd_sleep.in +++ b/tests/grub_cmd_sleep.in @@ -1,4 +1,4 @@ @@ -290,7 +290,7 @@ index ac51d4209..8797f6632 100644 . "@builddir@/grub-core/modinfo.sh" diff --git a/tests/grub_cmd_test.in b/tests/grub_cmd_test.in -index 49ae8a9c8..3399eb292 100644 +index 49ae8a9c830..3399eb29294 100644 --- a/tests/grub_cmd_test.in +++ b/tests/grub_cmd_test.in @@ -1,4 +1,4 @@ @@ -300,7 +300,7 @@ index 49ae8a9c8..3399eb292 100644 # create a randome file empty="`mktemp "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"`" || exit 1 diff --git a/tests/grub_cmd_tr.in b/tests/grub_cmd_tr.in -index 0e8d645eb..bed469c03 100644 +index 0e8d645eb6b..bed469c03dd 100644 --- a/tests/grub_cmd_tr.in +++ b/tests/grub_cmd_tr.in @@ -1,4 +1,4 @@ @@ -310,7 +310,7 @@ index 0e8d645eb..bed469c03 100644 # Run GRUB script in a Qemu instance # Copyright (C) 2010 Free Software Foundation, Inc. diff --git a/tests/grub_func_test.in b/tests/grub_func_test.in -index b32f24466..c67f9e422 100644 +index b32f2446659..c67f9e42253 100644 --- a/tests/grub_func_test.in +++ b/tests/grub_func_test.in @@ -1,4 +1,4 @@ @@ -320,7 +320,7 @@ index b32f24466..c67f9e422 100644 . "@builddir@/grub-core/modinfo.sh" diff --git a/tests/grub_script_blanklines.in b/tests/grub_script_blanklines.in -index 89ed763d3..bd8735491 100644 +index 89ed763d3f4..bd8735491be 100644 --- a/tests/grub_script_blanklines.in +++ b/tests/grub_script_blanklines.in @@ -1,4 +1,4 @@ @@ -330,7 +330,7 @@ index 89ed763d3..bd8735491 100644 @builddir@/grub-script-check < Date: Wed, 3 May 2017 12:58:15 +0200 -Subject: [PATCH 011/198] Add strtoull test. +Subject: [PATCH 011/206] Add strtoull test. --- grub-core/Makefile.core.def | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 2dfa22a92..8dcd0e5a9 100644 +index 2dfa22a9271..8dcd0e5a998 100644 --- a/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def @@ -1961,6 +1961,11 @@ module = { @@ -24,5 +24,5 @@ index 2dfa22a92..8dcd0e5a9 100644 name = setjmp_test; common = tests/setjmp_test.c; -- -2.14.3 +2.15.0 diff --git a/0012-strtoull-Fix-behaviour-on-chars-between-9-and-a.patch b/0012-strtoull-Fix-behaviour-on-chars-between-9-and-a.patch index dfb6c45b..9eb0a3e7 100644 --- a/0012-strtoull-Fix-behaviour-on-chars-between-9-and-a.patch +++ b/0012-strtoull-Fix-behaviour-on-chars-between-9-and-a.patch @@ -1,7 +1,7 @@ From dc6e1b5af83eb1c4290baf97c2d221c0865127be Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Wed, 10 Aug 2016 17:49:42 +0200 -Subject: [PATCH 012/198] strtoull: Fix behaviour on chars between '9' and 'a'. +Subject: [PATCH 012/206] strtoull: Fix behaviour on chars between '9' and 'a'. Reported by: Aaron Miller --- @@ -10,7 +10,7 @@ Reported by: Aaron Miller 2 files changed, 18 insertions(+), 8 deletions(-) diff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c -index d1a54df6c..3b633d51f 100644 +index d1a54df6c12..3b633d51f4c 100644 --- a/grub-core/kern/misc.c +++ b/grub-core/kern/misc.c @@ -391,12 +391,13 @@ grub_strtoull (const char *str, char **end, int base) @@ -34,7 +34,7 @@ index d1a54df6c..3b633d51f 100644 found = 1; diff --git a/grub-core/tests/lib/functional_test.c b/grub-core/tests/lib/functional_test.c -index d4822a124..96781fb39 100644 +index d4822a12456..96781fb39b5 100644 --- a/grub-core/tests/lib/functional_test.c +++ b/grub-core/tests/lib/functional_test.c @@ -26,14 +26,23 @@ GRUB_MOD_LICENSE ("GPLv3+"); @@ -64,5 +64,5 @@ index d4822a124..96781fb39 100644 ok = ok && !grub_test_run (test); grub_errno = 0; -- -2.14.3 +2.15.0 diff --git a/0013-Add-Virtual-LAN-support.patch b/0013-Add-Virtual-LAN-support.patch index 1e71f51e..a9cbd4b0 100644 --- a/0013-Add-Virtual-LAN-support.patch +++ b/0013-Add-Virtual-LAN-support.patch @@ -1,7 +1,7 @@ From d9f7de0ae3c0c09cff7257c55418450261f3e082 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Mon, 23 Dec 2013 12:32:02 -0200 -Subject: [PATCH 013/198] Add Virtual LAN support. +Subject: [PATCH 013/206] Add Virtual LAN support. This patch adds support for virtual LAN (VLAN) tagging. VLAN tagging allows multiple VLANs in a bridged network to share the same physical network link @@ -26,7 +26,7 @@ http://en.wikipedia.org/wiki/IEEE_802.1Q 7 files changed, 92 insertions(+), 20 deletions(-) diff --git a/grub-core/net/arp.c b/grub-core/net/arp.c -index 4b68c4151..54306e3b1 100644 +index 4b68c4151a1..54306e3b16d 100644 --- a/grub-core/net/arp.c +++ b/grub-core/net/arp.c @@ -111,8 +111,8 @@ grub_net_arp_send_request (struct grub_net_network_level_interface *inf, @@ -56,7 +56,7 @@ index 4b68c4151..54306e3b1 100644 if (grub_net_addr_cmp (&inf->address, &target_addr) == 0 && arp_packet->op == grub_cpu_to_be16_compile_time (ARP_REQUEST)) diff --git a/grub-core/net/drivers/ieee1275/ofnet.c b/grub-core/net/drivers/ieee1275/ofnet.c -index a78d164db..002446be1 100644 +index a78d164db1a..002446be1c3 100644 --- a/grub-core/net/drivers/ieee1275/ofnet.c +++ b/grub-core/net/drivers/ieee1275/ofnet.c @@ -153,11 +153,11 @@ grub_ieee1275_parse_bootpath (const char *devpath, char *bootpath, @@ -96,7 +96,7 @@ index a78d164db..002446be1 100644 if (gateway_addr.ipv4 != 0) diff --git a/grub-core/net/ethernet.c b/grub-core/net/ethernet.c -index c397b1b34..4d7ceed6f 100644 +index c397b1b348c..4d7ceed6f93 100644 --- a/grub-core/net/ethernet.c +++ b/grub-core/net/ethernet.c @@ -18,6 +18,7 @@ @@ -192,7 +192,7 @@ index c397b1b34..4d7ceed6f 100644 grub_netbuff_free (nb); return GRUB_ERR_NONE; diff --git a/grub-core/net/ip.c b/grub-core/net/ip.c -index aba4f8908..7c95cc746 100644 +index aba4f89087b..7c95cc7464a 100644 --- a/grub-core/net/ip.c +++ b/grub-core/net/ip.c @@ -228,12 +228,13 @@ handle_dgram (struct grub_net_buff *nb, @@ -294,7 +294,7 @@ index aba4f8908..7c95cc746 100644 grub_netbuff_free (nb); return GRUB_ERR_NONE; diff --git a/include/grub/net.h b/include/grub/net.h -index 2192fa186..1096b2432 100644 +index 2192fa18628..1096b24322e 100644 --- a/include/grub/net.h +++ b/include/grub/net.h @@ -291,6 +291,7 @@ struct grub_net_network_level_interface @@ -313,7 +313,7 @@ index 2192fa186..1096b2432 100644 + #endif /* ! GRUB_NET_HEADER */ diff --git a/include/grub/net/arp.h b/include/grub/net/arp.h -index bb1703622..8d9d08113 100644 +index bb1703622e1..8d9d081134f 100644 --- a/include/grub/net/arp.h +++ b/include/grub/net/arp.h @@ -22,10 +22,11 @@ @@ -331,7 +331,7 @@ index bb1703622..8d9d08113 100644 #endif diff --git a/include/grub/net/ip.h b/include/grub/net/ip.h -index dcceaa568..ab9d68f98 100644 +index dcceaa56894..ab9d68f9825 100644 --- a/include/grub/net/ip.h +++ b/include/grub/net/ip.h @@ -48,7 +48,8 @@ grub_err_t @@ -345,5 +345,5 @@ index dcceaa568..ab9d68f98 100644 grub_err_t grub_net_send_ip_packet (struct grub_net_network_level_interface *inf, -- -2.14.3 +2.15.0 diff --git a/0014-mkimage-Pass-layout-to-mkimage_generate_elfXX-rather.patch b/0014-mkimage-Pass-layout-to-mkimage_generate_elfXX-rather.patch index a30d8df5..95611313 100644 --- a/0014-mkimage-Pass-layout-to-mkimage_generate_elfXX-rather.patch +++ b/0014-mkimage-Pass-layout-to-mkimage_generate_elfXX-rather.patch @@ -1,41 +1,19 @@ From a35ac854308b0af7c86c2c7b199f6abdfa2110b0 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 17:32:15 +0200 -Subject: [PATCH 014/198] mkimage: Pass layout to mkimage_generate_elfXX rather +Subject: [PATCH 014/206] mkimage: Pass layout to mkimage_generate_elfXX rather than some fields. This allows easier extension of this function without having too long of arguments list. --- - include/grub/util/mkimage.h | 8 ++++---- util/grub-mkimagexx.c | 35 ++++++++++++++++++----------------- util/mkimage.c | 4 ++-- + include/grub/util/mkimage.h | 8 ++++---- 3 files changed, 24 insertions(+), 23 deletions(-) -diff --git a/include/grub/util/mkimage.h b/include/grub/util/mkimage.h -index 1a18708a8..b3a5ca132 100644 ---- a/include/grub/util/mkimage.h -+++ b/include/grub/util/mkimage.h -@@ -51,13 +51,13 @@ grub_mkimage_load_image64 (const char *kernel_path, - void - grub_mkimage_generate_elf32 (const struct grub_install_image_target_desc *image_target, - int note, char **core_img, size_t *core_size, -- Elf32_Addr target_addr, grub_size_t align, -- size_t kernel_size, size_t bss_size); -+ Elf32_Addr target_addr, -+ struct grub_mkimage_layout *layout); - void - grub_mkimage_generate_elf64 (const struct grub_install_image_target_desc *image_target, - int note, char **core_img, size_t *core_size, -- Elf64_Addr target_addr, grub_size_t align, -- size_t kernel_size, size_t bss_size); -+ Elf64_Addr target_addr, -+ struct grub_mkimage_layout *layout); - - struct grub_install_image_target_desc - { diff --git a/util/grub-mkimagexx.c b/util/grub-mkimagexx.c -index e63f148e4..3fab93e20 100644 +index e63f148e48c..3fab93e2088 100644 --- a/util/grub-mkimagexx.c +++ b/util/grub-mkimagexx.c @@ -185,8 +185,8 @@ grub_arm_reloc_jump24 (grub_uint32_t *target, Elf32_Addr sym_addr) @@ -147,7 +125,7 @@ index e63f148e4..3fab93e20 100644 shdr->sh_size = grub_host_to_target32 (XEN_NOTE_SIZE); shdr->sh_link = grub_host_to_target32 (0); diff --git a/util/mkimage.c b/util/mkimage.c -index 9ad4cfe42..528166c87 100644 +index 9ad4cfe4223..528166c87ac 100644 --- a/util/mkimage.c +++ b/util/mkimage.c @@ -1638,10 +1638,10 @@ grub_install_generate_image (const char *dir, const char *prefix, @@ -163,6 +141,28 @@ index 9ad4cfe42..528166c87 100644 } break; } +diff --git a/include/grub/util/mkimage.h b/include/grub/util/mkimage.h +index 1a18708a89c..b3a5ca132bc 100644 +--- a/include/grub/util/mkimage.h ++++ b/include/grub/util/mkimage.h +@@ -51,13 +51,13 @@ grub_mkimage_load_image64 (const char *kernel_path, + void + grub_mkimage_generate_elf32 (const struct grub_install_image_target_desc *image_target, + int note, char **core_img, size_t *core_size, +- Elf32_Addr target_addr, grub_size_t align, +- size_t kernel_size, size_t bss_size); ++ Elf32_Addr target_addr, ++ struct grub_mkimage_layout *layout); + void + grub_mkimage_generate_elf64 (const struct grub_install_image_target_desc *image_target, + int note, char **core_img, size_t *core_size, +- Elf64_Addr target_addr, grub_size_t align, +- size_t kernel_size, size_t bss_size); ++ Elf64_Addr target_addr, ++ struct grub_mkimage_layout *layout); + + struct grub_install_image_target_desc + { -- -2.14.3 +2.15.0 diff --git a/0015-Refactor-arm-uboot-code-to-make-it-genereic.patch b/0015-Refactor-arm-uboot-code-to-make-it-genereic.patch index 9983fb95..262141bb 100644 --- a/0015-Refactor-arm-uboot-code-to-make-it-genereic.patch +++ b/0015-Refactor-arm-uboot-code-to-make-it-genereic.patch @@ -1,26 +1,26 @@ From d08c9685149e7788001ac9a209baa1d84c3628e0 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 17:47:57 +0200 -Subject: [PATCH 015/198] Refactor arm-uboot code to make it genereic. +Subject: [PATCH 015/206] Refactor arm-uboot code to make it genereic. arm-coreboot startup code can be very similar to arm-uboot but current code has U-Boot specific references. So split U-Boot part from generic part. --- grub-core/Makefile.core.def | 4 +- - grub-core/kern/arm/{uboot => }/startup.S | 64 ++++------------------------ grub-core/kern/arm/uboot/init.c | 70 ++++++++++++++++++++++++++++++ - grub-core/kern/arm/uboot/uboot.S | 73 ++++++++++++++++++++++++++++++++ grub-core/kern/uboot/init.c | 16 ------- grub-core/kern/uboot/uboot.c | 35 --------------- include/grub/arm/startup.h | 16 +++++++ - 7 files changed, 170 insertions(+), 108 deletions(-) - rename grub-core/kern/arm/{uboot => }/startup.S (77%) + grub-core/kern/arm/{uboot => }/startup.S | 66 ++++------------------------- + grub-core/kern/arm/uboot/uboot.S | 73 ++++++++++++++++++++++++++++++++ + 7 files changed, 171 insertions(+), 109 deletions(-) create mode 100644 grub-core/kern/arm/uboot/init.c - create mode 100644 grub-core/kern/arm/uboot/uboot.S create mode 100644 include/grub/arm/startup.h + rename grub-core/kern/arm/{uboot => }/startup.S (77%) + create mode 100644 grub-core/kern/arm/uboot/uboot.S diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 8dcd0e5a9..fb59a7b1d 100644 +index 8dcd0e5a998..fb59a7b1d6a 100644 --- a/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def @@ -105,7 +105,7 @@ kernel = { @@ -41,102 +41,9 @@ index 8dcd0e5a9..fb59a7b1d 100644 terminfoinkernel = term/terminfo.c; terminfoinkernel = term/tparm.c; -diff --git a/grub-core/kern/arm/uboot/startup.S b/grub-core/kern/arm/startup.S -similarity index 77% -rename from grub-core/kern/arm/uboot/startup.S -rename to grub-core/kern/arm/startup.S -index 5efaae16e..640837cba 100644 ---- a/grub-core/kern/arm/uboot/startup.S -+++ b/grub-core/kern/arm/startup.S -@@ -86,7 +86,7 @@ FUNCTION(codestart) - @ Stack pointer used as start address for signature probing - mov r12, sp - adr sp, entry_state -- push {r1-r12,lr} @ store U-Boot context (sp in r12) -+ push {r0-r12,lr} @ store U-Boot context (sp in r12) - - adr r1, _start - ldr r0, bss_start_ptr @ src -@@ -153,69 +153,21 @@ reloc_done: - - b EXT_C(grub_main) - -- /* -- * uboot_syscall(): -- * This function is effectively a veneer, so it cannot -- * modify the stack or corrupt any registers other than -- * r12 (ip). Furthermore it needs to restore r8 for -- * U-Boot (Global Data Pointer) and preserve it for Grub. -- */ --FUNCTION(grub_uboot_syscall) -- str r8, transition_space -- str lr, transition_space + 4 -- str r9, transition_space + 8 -- -- ldr r8, gd_backup -- ldr r9, gd_backup + 4 -- -- bl do_syscall -- -- ldr r8, transition_space -- ldr lr, transition_space + 4 -- ldr r9, transition_space + 8 -- -- bx lr --do_syscall: -- -- ldr ip, grub_uboot_syscall_ptr -- bx ip -- --FUNCTION(grub_uboot_return) -- adr sp, entry_state_end -- pop {r4-r12, lr} -- mov sp, r12 -- bx lr -- -- - .align 3 --@ U-boot context stack space --entry_state_end: --VARIABLE(grub_uboot_machine_type) -+@ U-boot/coreboot context stack space -+VARIABLE(grub_arm_saved_registers) -+ .long 0 @ r0 - .long 0 @ r1 --VARIABLE(grub_uboot_boot_data) - .long 0 @ r2 - .long 0 @ r3 - .long 0 @ r4 - .long 0 @ r5 - .long 0 @ r6 - .long 0 @ r7 --gd_backup: -- .long 0 @ r8 - U-Boot global data pointer up to 2013-09-21 -- .long 0 @ r9 - U-Boot global data pointer 2013-09-21 onwards -+ .long 0 @ r8 -+ .long 0 @ r9 - .long 0 @ r10 - .long 0 @ r11 --VARIABLE(grub_uboot_search_hint)@ U-Boot stack pointer - -- .long 0 @ also API signature address hint. -- .long 0 @ lr --entry_state: @ backup for U-Boot context -- --@ GRUB context stack space --transition_space: -- .long 0 @ r8 -+ .long 0 @ sp - .long 0 @ lr -- .long 0 @ r9 -- --VARIABLE(grub_uboot_syscall_ptr) -- .long 0 @ -- -- END -+entry_state: diff --git a/grub-core/kern/arm/uboot/init.c b/grub-core/kern/arm/uboot/init.c new file mode 100644 -index 000000000..2a6aa3fdd +index 00000000000..2a6aa3fdd3d --- /dev/null +++ b/grub-core/kern/arm/uboot/init.c @@ -0,0 +1,70 @@ @@ -210,9 +117,213 @@ index 000000000..2a6aa3fdd + + return 0; +} +diff --git a/grub-core/kern/uboot/init.c b/grub-core/kern/uboot/init.c +index 5dcc106ed9b..3e338645c57 100644 +--- a/grub-core/kern/uboot/init.c ++++ b/grub-core/kern/uboot/init.c +@@ -36,30 +36,14 @@ + extern char __bss_start[]; + extern char _end[]; + extern grub_size_t grub_total_module_size; +-extern int (*grub_uboot_syscall_ptr) (int, int *, ...); + static unsigned long timer_start; + +-extern grub_uint32_t grub_uboot_machine_type; +-extern grub_addr_t grub_uboot_boot_data; +- + void + grub_exit (void) + { + grub_uboot_return (0); + } + +-grub_uint32_t +-grub_uboot_get_machine_type (void) +-{ +- return grub_uboot_machine_type; +-} +- +-grub_addr_t +-grub_uboot_get_boot_data (void) +-{ +- return grub_uboot_boot_data; +-} +- + static grub_uint64_t + uboot_timer_ms (void) + { +diff --git a/grub-core/kern/uboot/uboot.c b/grub-core/kern/uboot/uboot.c +index 6800a4beb1c..cf0168e62dd 100644 +--- a/grub-core/kern/uboot/uboot.c ++++ b/grub-core/kern/uboot/uboot.c +@@ -39,48 +39,13 @@ + * returns: 0 if the call not found, 1 if serviced + */ + +-extern int (*grub_uboot_syscall_ptr) (int, int *, ...); + extern int grub_uboot_syscall (int, int *, ...); +-extern grub_addr_t grub_uboot_search_hint; + + static struct sys_info uboot_sys_info; + static struct mem_region uboot_mem_info[5]; + static struct device_info * devices; + static int num_devices; + +-int +-grub_uboot_api_init (void) +-{ +- struct api_signature *start, *end; +- struct api_signature *p; +- +- if (grub_uboot_search_hint) +- { +- /* Extended search range to work around Trim Slice U-Boot issue */ +- start = (struct api_signature *) ((grub_uboot_search_hint & ~0x000fffff) +- - 0x00500000); +- end = +- (struct api_signature *) ((grub_addr_t) start + UBOOT_API_SEARCH_LEN - +- API_SIG_MAGLEN + 0x00500000); +- } +- else +- { +- start = 0; +- end = (struct api_signature *) (256 * 1024 * 1024); +- } +- +- /* Structure alignment is (at least) 8 bytes */ +- for (p = start; p < end; p = (void *) ((grub_addr_t) p + 8)) +- { +- if (grub_memcmp (&(p->magic), API_SIG_MAGIC, API_SIG_MAGLEN) == 0) +- { +- grub_uboot_syscall_ptr = p->syscall; +- return p->version; +- } +- } +- +- return 0; +-} + + /* + * All functions below are wrappers around the grub_uboot_syscall() function +diff --git a/include/grub/arm/startup.h b/include/grub/arm/startup.h +new file mode 100644 +index 00000000000..9afb6c57c0b +--- /dev/null ++++ b/include/grub/arm/startup.h +@@ -0,0 +1,16 @@ ++#ifndef GRUB_STARTUP_CPU_HEADER ++#define GRUB_STARTUP_CPU_HEADER ++ ++struct grub_arm_startup_registers ++{ ++ /* registers 0-11 */ ++ /* for U-boot r[1] is machine type */ ++ /* for U-boot r[2] is boot data */ ++ grub_uint32_t r[12]; ++ grub_uint32_t sp; ++ grub_uint32_t lr; ++}; ++ ++extern struct grub_arm_startup_registers grub_arm_saved_registers; ++ ++#endif +diff --git a/grub-core/kern/arm/uboot/startup.S b/grub-core/kern/arm/startup.S +similarity index 77% +rename from grub-core/kern/arm/uboot/startup.S +rename to grub-core/kern/arm/startup.S +index 5efaae16e83..640837cba51 100644 +--- a/grub-core/kern/arm/uboot/startup.S ++++ b/grub-core/kern/arm/startup.S +@@ -86,7 +86,7 @@ FUNCTION(codestart) + @ Stack pointer used as start address for signature probing + mov r12, sp + adr sp, entry_state +- push {r1-r12,lr} @ store U-Boot context (sp in r12) ++ push {r0-r12,lr} @ store U-Boot context (sp in r12) + + adr r1, _start + ldr r0, bss_start_ptr @ src +@@ -153,69 +153,21 @@ reloc_done: + + b EXT_C(grub_main) + +- /* +- * uboot_syscall(): +- * This function is effectively a veneer, so it cannot +- * modify the stack or corrupt any registers other than +- * r12 (ip). Furthermore it needs to restore r8 for +- * U-Boot (Global Data Pointer) and preserve it for Grub. +- */ +-FUNCTION(grub_uboot_syscall) +- str r8, transition_space +- str lr, transition_space + 4 +- str r9, transition_space + 8 +- +- ldr r8, gd_backup +- ldr r9, gd_backup + 4 +- +- bl do_syscall +- +- ldr r8, transition_space +- ldr lr, transition_space + 4 +- ldr r9, transition_space + 8 +- +- bx lr +-do_syscall: +- +- ldr ip, grub_uboot_syscall_ptr +- bx ip +- +-FUNCTION(grub_uboot_return) +- adr sp, entry_state_end +- pop {r4-r12, lr} +- mov sp, r12 +- bx lr +- +- + .align 3 +-@ U-boot context stack space +-entry_state_end: +-VARIABLE(grub_uboot_machine_type) ++@ U-boot/coreboot context stack space ++VARIABLE(grub_arm_saved_registers) ++ .long 0 @ r0 + .long 0 @ r1 +-VARIABLE(grub_uboot_boot_data) + .long 0 @ r2 + .long 0 @ r3 + .long 0 @ r4 + .long 0 @ r5 + .long 0 @ r6 + .long 0 @ r7 +-gd_backup: +- .long 0 @ r8 - U-Boot global data pointer up to 2013-09-21 +- .long 0 @ r9 - U-Boot global data pointer 2013-09-21 onwards +- .long 0 @ r10 +- .long 0 @ r11 +-VARIABLE(grub_uboot_search_hint)@ U-Boot stack pointer - +- .long 0 @ also API signature address hint. +- .long 0 @ lr +-entry_state: @ backup for U-Boot context +- +-@ GRUB context stack space +-transition_space: + .long 0 @ r8 +- .long 0 @ lr + .long 0 @ r9 +- +-VARIABLE(grub_uboot_syscall_ptr) +- .long 0 @ +- +- END ++ .long 0 @ r10 ++ .long 0 @ r11 ++ .long 0 @ sp ++ .long 0 @ lr ++entry_state: diff --git a/grub-core/kern/arm/uboot/uboot.S b/grub-core/kern/arm/uboot/uboot.S new file mode 100644 -index 000000000..d128775f1 +index 00000000000..d128775f19e --- /dev/null +++ b/grub-core/kern/arm/uboot/uboot.S @@ -0,0 +1,73 @@ @@ -289,116 +400,6 @@ index 000000000..d128775f1 + .long 0 @ + + END -diff --git a/grub-core/kern/uboot/init.c b/grub-core/kern/uboot/init.c -index 5dcc106ed..3e338645c 100644 ---- a/grub-core/kern/uboot/init.c -+++ b/grub-core/kern/uboot/init.c -@@ -36,30 +36,14 @@ - extern char __bss_start[]; - extern char _end[]; - extern grub_size_t grub_total_module_size; --extern int (*grub_uboot_syscall_ptr) (int, int *, ...); - static unsigned long timer_start; - --extern grub_uint32_t grub_uboot_machine_type; --extern grub_addr_t grub_uboot_boot_data; -- - void - grub_exit (void) - { - grub_uboot_return (0); - } - --grub_uint32_t --grub_uboot_get_machine_type (void) --{ -- return grub_uboot_machine_type; --} -- --grub_addr_t --grub_uboot_get_boot_data (void) --{ -- return grub_uboot_boot_data; --} -- - static grub_uint64_t - uboot_timer_ms (void) - { -diff --git a/grub-core/kern/uboot/uboot.c b/grub-core/kern/uboot/uboot.c -index 6800a4beb..cf0168e62 100644 ---- a/grub-core/kern/uboot/uboot.c -+++ b/grub-core/kern/uboot/uboot.c -@@ -39,48 +39,13 @@ - * returns: 0 if the call not found, 1 if serviced - */ - --extern int (*grub_uboot_syscall_ptr) (int, int *, ...); - extern int grub_uboot_syscall (int, int *, ...); --extern grub_addr_t grub_uboot_search_hint; - - static struct sys_info uboot_sys_info; - static struct mem_region uboot_mem_info[5]; - static struct device_info * devices; - static int num_devices; - --int --grub_uboot_api_init (void) --{ -- struct api_signature *start, *end; -- struct api_signature *p; -- -- if (grub_uboot_search_hint) -- { -- /* Extended search range to work around Trim Slice U-Boot issue */ -- start = (struct api_signature *) ((grub_uboot_search_hint & ~0x000fffff) -- - 0x00500000); -- end = -- (struct api_signature *) ((grub_addr_t) start + UBOOT_API_SEARCH_LEN - -- API_SIG_MAGLEN + 0x00500000); -- } -- else -- { -- start = 0; -- end = (struct api_signature *) (256 * 1024 * 1024); -- } -- -- /* Structure alignment is (at least) 8 bytes */ -- for (p = start; p < end; p = (void *) ((grub_addr_t) p + 8)) -- { -- if (grub_memcmp (&(p->magic), API_SIG_MAGIC, API_SIG_MAGLEN) == 0) -- { -- grub_uboot_syscall_ptr = p->syscall; -- return p->version; -- } -- } -- -- return 0; --} - - /* - * All functions below are wrappers around the grub_uboot_syscall() function -diff --git a/include/grub/arm/startup.h b/include/grub/arm/startup.h -new file mode 100644 -index 000000000..9afb6c57c ---- /dev/null -+++ b/include/grub/arm/startup.h -@@ -0,0 +1,16 @@ -+#ifndef GRUB_STARTUP_CPU_HEADER -+#define GRUB_STARTUP_CPU_HEADER -+ -+struct grub_arm_startup_registers -+{ -+ /* registers 0-11 */ -+ /* for U-boot r[1] is machine type */ -+ /* for U-boot r[2] is boot data */ -+ grub_uint32_t r[12]; -+ grub_uint32_t sp; -+ grub_uint32_t lr; -+}; -+ -+extern struct grub_arm_startup_registers grub_arm_saved_registers; -+ -+#endif -- -2.14.3 +2.15.0 diff --git a/0016-coreboot-Split-parts-that-are-platform-independent.patch b/0016-coreboot-Split-parts-that-are-platform-independent.patch index 4fb20297..82b8407f 100644 --- a/0016-coreboot-Split-parts-that-are-platform-independent.patch +++ b/0016-coreboot-Split-parts-that-are-platform-independent.patch @@ -1,12 +1,11 @@ From 461bfab7b7e47fd0a76bf6076a438af1b7e2184a Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 19:06:22 +0200 -Subject: [PATCH 016/198] coreboot: Split parts that are platform-independent. +Subject: [PATCH 016/206] coreboot: Split parts that are platform-independent. We currently assume that coreboot is always i386, it's no longer the case, so split i386-coreboot parts from generic coreboot code. --- - grub-core/Makefile.am | 2 +- grub-core/Makefile.core.def | 6 +- grub-core/commands/i386/coreboot/cb_timestamps.c | 2 +- grub-core/commands/i386/coreboot/cbls.c | 2 +- @@ -16,27 +15,15 @@ so split i386-coreboot parts from generic coreboot code. grub-core/term/i386/coreboot/cbmemc.c | 2 +- grub-core/video/{i386 => }/coreboot/cbfb.c | 2 +- include/grub/{i386 => }/coreboot/lbio.h | 9 +++ + grub-core/Makefile.am | 2 +- 10 files changed, 99 insertions(+), 55 deletions(-) create mode 100644 grub-core/kern/coreboot/cbtable.c rename grub-core/kern/{i386 => }/coreboot/mmap.c (97%) rename grub-core/video/{i386 => }/coreboot/cbfb.c (99%) rename include/grub/{i386 => }/coreboot/lbio.h (93%) -diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am -index 809a8aa26..781d0ffbf 100644 ---- a/grub-core/Makefile.am -+++ b/grub-core/Makefile.am -@@ -112,7 +112,7 @@ endif - - if COND_i386_coreboot - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/tsc.h --KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/coreboot/lbio.h -+KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/coreboot/lbio.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/video.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/video_fb.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/gfxterm.h diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index fb59a7b1d..45ed0fa6b 100644 +index fb59a7b1d6a..45ed0fa6b1c 100644 --- a/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def @@ -166,7 +166,7 @@ kernel = { @@ -68,7 +55,7 @@ index fb59a7b1d..45ed0fa6b 100644 enable = i386_efi; enable = i386_qemu; diff --git a/grub-core/commands/i386/coreboot/cb_timestamps.c b/grub-core/commands/i386/coreboot/cb_timestamps.c -index e72f38d6e..e97ea6bed 100644 +index e72f38d6e05..e97ea6bed98 100644 --- a/grub-core/commands/i386/coreboot/cb_timestamps.c +++ b/grub-core/commands/i386/coreboot/cb_timestamps.c @@ -20,7 +20,7 @@ @@ -81,7 +68,7 @@ index e72f38d6e..e97ea6bed 100644 GRUB_MOD_LICENSE ("GPLv3+"); diff --git a/grub-core/commands/i386/coreboot/cbls.c b/grub-core/commands/i386/coreboot/cbls.c -index e0a10596f..102291f42 100644 +index e0a10596fe2..102291f424a 100644 --- a/grub-core/commands/i386/coreboot/cbls.c +++ b/grub-core/commands/i386/coreboot/cbls.c @@ -20,7 +20,7 @@ @@ -95,7 +82,7 @@ index e0a10596f..102291f42 100644 GRUB_MOD_LICENSE ("GPLv3+"); diff --git a/grub-core/kern/coreboot/cbtable.c b/grub-core/kern/coreboot/cbtable.c new file mode 100644 -index 000000000..996d3f407 +index 00000000000..996d3f40738 --- /dev/null +++ b/grub-core/kern/coreboot/cbtable.c @@ -0,0 +1,70 @@ @@ -173,7 +160,7 @@ diff --git a/grub-core/kern/i386/coreboot/mmap.c b/grub-core/kern/coreboot/mmap. similarity index 97% rename from grub-core/kern/i386/coreboot/mmap.c rename to grub-core/kern/coreboot/mmap.c -index 4d29f6b7d..caf8f7cef 100644 +index 4d29f6b7d90..caf8f7cef1b 100644 --- a/grub-core/kern/i386/coreboot/mmap.c +++ b/grub-core/kern/coreboot/mmap.c @@ -16,8 +16,8 @@ @@ -204,7 +191,7 @@ index 4d29f6b7d..caf8f7cef 100644 /* Multiboot mmaps match with the coreboot mmap definition. Therefore, we can just pass type diff --git a/grub-core/kern/i386/coreboot/cbtable.c b/grub-core/kern/i386/coreboot/cbtable.c -index 1669bc0ca..34a2b59be 100644 +index 1669bc0ca23..34a2b59be1f 100644 --- a/grub-core/kern/i386/coreboot/cbtable.c +++ b/grub-core/kern/i386/coreboot/cbtable.c @@ -17,7 +17,7 @@ @@ -283,7 +270,7 @@ index 1669bc0ca..34a2b59be 100644 return 0; } diff --git a/grub-core/term/i386/coreboot/cbmemc.c b/grub-core/term/i386/coreboot/cbmemc.c -index 25e64a05c..129248c7f 100644 +index 25e64a05c03..129248c7f47 100644 --- a/grub-core/term/i386/coreboot/cbmemc.c +++ b/grub-core/term/i386/coreboot/cbmemc.c @@ -23,7 +23,7 @@ @@ -299,7 +286,7 @@ diff --git a/grub-core/video/i386/coreboot/cbfb.c b/grub-core/video/coreboot/cbf similarity index 99% rename from grub-core/video/i386/coreboot/cbfb.c rename to grub-core/video/coreboot/cbfb.c -index dede0c37e..9af81fa5b 100644 +index dede0c37ea3..9af81fa5b01 100644 --- a/grub-core/video/i386/coreboot/cbfb.c +++ b/grub-core/video/coreboot/cbfb.c @@ -25,7 +25,7 @@ @@ -315,7 +302,7 @@ diff --git a/include/grub/i386/coreboot/lbio.h b/include/grub/coreboot/lbio.h similarity index 93% rename from include/grub/i386/coreboot/lbio.h rename to include/grub/coreboot/lbio.h -index 1c3fa6f19..5076d36c7 100644 +index 1c3fa6f1953..5076d36c71b 100644 --- a/include/grub/i386/coreboot/lbio.h +++ b/include/grub/coreboot/lbio.h @@ -20,6 +20,9 @@ @@ -339,6 +326,19 @@ index 1c3fa6f19..5076d36c7 100644 +grub_linuxbios_check_signature (grub_linuxbios_table_header_t tbl_header); + #endif +diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am +index 809a8aa26bf..781d0ffbf75 100644 +--- a/grub-core/Makefile.am ++++ b/grub-core/Makefile.am +@@ -112,7 +112,7 @@ endif + + if COND_i386_coreboot + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/tsc.h +-KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/coreboot/lbio.h ++KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/coreboot/lbio.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/video.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/video_fb.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/gfxterm.h -- -2.14.3 +2.15.0 diff --git a/0017-Rename-uboot-halt.c-to-dummy-halt.c.patch b/0017-Rename-uboot-halt.c-to-dummy-halt.c.patch index 6559451e..576afa6f 100644 --- a/0017-Rename-uboot-halt.c-to-dummy-halt.c.patch +++ b/0017-Rename-uboot-halt.c-to-dummy-halt.c.patch @@ -1,7 +1,7 @@ From 1daa716c7017f1858de117a20a31da66815435c5 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 19:31:55 +0200 -Subject: [PATCH 017/198] Rename uboot/halt.c to dummy/halt.c. +Subject: [PATCH 017/206] Rename uboot/halt.c to dummy/halt.c. It's not U-Boot specific and it's a stub. --- @@ -11,7 +11,7 @@ It's not U-Boot specific and it's a stub. rename grub-core/lib/{uboot => dummy}/halt.c (100%) diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 45ed0fa6b..2a38bd4bc 100644 +index 45ed0fa6b1c..2a38bd4bc8a 100644 --- a/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def @@ -841,7 +841,7 @@ module = { @@ -28,5 +28,5 @@ similarity index 100% rename from grub-core/lib/uboot/halt.c rename to grub-core/lib/dummy/halt.c -- -2.14.3 +2.15.0 diff --git a/0018-Rename-uboot-datetime-to-dummy-datetime.patch b/0018-Rename-uboot-datetime-to-dummy-datetime.patch index a0ca5db4..e9ef326a 100644 --- a/0018-Rename-uboot-datetime-to-dummy-datetime.patch +++ b/0018-Rename-uboot-datetime-to-dummy-datetime.patch @@ -1,7 +1,7 @@ From 9808c3ef956c6472a96790b60cf74f4eaa742010 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 19:37:29 +0200 -Subject: [PATCH 018/198] Rename uboot/datetime to dummy/datetime. +Subject: [PATCH 018/206] Rename uboot/datetime to dummy/datetime. It's just a stub and is not UBoot-specific. --- @@ -11,7 +11,7 @@ It's just a stub and is not UBoot-specific. rename grub-core/lib/{uboot => dummy}/datetime.c (91%) diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 2a38bd4bc..6540dc951 100644 +index 2a38bd4bc8a..6540dc951d4 100644 --- a/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def @@ -1552,7 +1552,7 @@ module = { @@ -27,7 +27,7 @@ diff --git a/grub-core/lib/uboot/datetime.c b/grub-core/lib/dummy/datetime.c similarity index 91% rename from grub-core/lib/uboot/datetime.c rename to grub-core/lib/dummy/datetime.c -index 4be716928..cf693fc6b 100644 +index 4be716928a5..cf693fc6b62 100644 --- a/grub-core/lib/uboot/datetime.c +++ b/grub-core/lib/dummy/datetime.c @@ -18,7 +18,6 @@ @@ -54,5 +54,5 @@ index 4be716928..cf693fc6b 100644 + "can\'t set datetime on this machine"); } -- -2.14.3 +2.15.0 diff --git a/0019-arm-coreboot-Start-new-port.patch b/0019-arm-coreboot-Start-new-port.patch index 933a595f..7b94f383 100644 --- a/0019-arm-coreboot-Start-new-port.patch +++ b/0019-arm-coreboot-Start-new-port.patch @@ -1,37 +1,37 @@ From 24e37a885269bdec9b27babf1da0bba3692d55c0 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 20:53:28 +0200 -Subject: [PATCH 019/198] arm-coreboot: Start new port. +Subject: [PATCH 019/206] arm-coreboot: Start new port. --- configure.ac | 2 + - gentpl.py | 8 ++- - grub-core/Makefile.am | 10 +++ grub-core/Makefile.core.def | 18 ++++- grub-core/kern/arm/coreboot/cbtable.c | 40 +++++++++++ - grub-core/kern/arm/coreboot/coreboot.S | 44 ++++++++++++ grub-core/kern/arm/coreboot/init.c | 127 +++++++++++++++++++++++++++++++++ grub-core/kern/arm/coreboot/timer.c | 65 +++++++++++++++++ - grub-core/kern/arm/startup.S | 4 ++ grub-core/kern/coreboot/cbtable.c | 2 + grub-core/lib/dummy/reboot.c | 32 +++++++++ grub-core/loader/arm/linux.c | 3 + + util/grub-mkimagexx.c | 19 +++-- + util/mkimage.c | 41 ++++++++++- include/grub/arm/coreboot/console.h | 29 ++++++++ include/grub/arm/coreboot/kernel.h | 44 ++++++++++++ include/grub/offsets.h | 6 ++ - util/grub-mkimagexx.c | 19 +++-- - util/mkimage.c | 41 ++++++++++- + grub-core/kern/arm/coreboot/coreboot.S | 44 ++++++++++++ + grub-core/kern/arm/startup.S | 4 ++ + gentpl.py | 8 ++- + grub-core/Makefile.am | 10 +++ 17 files changed, 482 insertions(+), 12 deletions(-) create mode 100644 grub-core/kern/arm/coreboot/cbtable.c - create mode 100644 grub-core/kern/arm/coreboot/coreboot.S create mode 100644 grub-core/kern/arm/coreboot/init.c create mode 100644 grub-core/kern/arm/coreboot/timer.c create mode 100644 grub-core/lib/dummy/reboot.c create mode 100644 include/grub/arm/coreboot/console.h create mode 100644 include/grub/arm/coreboot/kernel.h + create mode 100644 grub-core/kern/arm/coreboot/coreboot.S diff --git a/configure.ac b/configure.ac -index ee2c86537..571f7a0b5 100644 +index ee2c86537e9..571f7a0b5aa 100644 --- a/configure.ac +++ b/configure.ac @@ -167,6 +167,7 @@ case "$target_cpu"-"$platform" in @@ -50,69 +50,8 @@ index ee2c86537..571f7a0b5 100644 AM_CONDITIONAL([COND_arm_efi], [test x$target_cpu = xarm -a x$platform = xefi]) AM_CONDITIONAL([COND_arm64], [test x$target_cpu = xarm64 ]) AM_CONDITIONAL([COND_arm64_efi], [test x$target_cpu = xarm64 -a x$platform = xefi]) -diff --git a/gentpl.py b/gentpl.py -index f08bcc404..ed268178b 100644 ---- a/gentpl.py -+++ b/gentpl.py -@@ -31,7 +31,8 @@ GRUB_PLATFORMS = [ "emu", "i386_pc", "i386_efi", "i386_qemu", "i386_coreboot", - "i386_xen", "x86_64_xen", - "mips_loongson", "sparc64_ieee1275", - "powerpc_ieee1275", "mips_arc", "ia64_efi", -- "mips_qemu_mips", "arm_uboot", "arm_efi", "arm64_efi" ] -+ "mips_qemu_mips", "arm_uboot", "arm_efi", "arm64_efi", -+ "arm_coreboot"] - - GROUPS = {} - -@@ -44,7 +45,7 @@ GROUPS["x86"] = GROUPS["i386"] + GROUPS["x86_64"] - GROUPS["mips"] = [ "mips_loongson", "mips_qemu_mips", "mips_arc" ] - GROUPS["sparc64"] = [ "sparc64_ieee1275" ] - GROUPS["powerpc"] = [ "powerpc_ieee1275" ] --GROUPS["arm"] = [ "arm_uboot", "arm_efi" ] -+GROUPS["arm"] = [ "arm_uboot", "arm_efi", "arm_coreboot" ] - GROUPS["arm64"] = [ "arm64_efi" ] - - # Groups based on firmware -@@ -52,6 +53,7 @@ GROUPS["efi"] = [ "i386_efi", "x86_64_efi", "ia64_efi", "arm_efi", "arm64_efi" - GROUPS["ieee1275"] = [ "i386_ieee1275", "sparc64_ieee1275", "powerpc_ieee1275" ] - GROUPS["uboot"] = [ "arm_uboot" ] - GROUPS["xen"] = [ "i386_xen", "x86_64_xen" ] -+GROUPS["coreboot"] = [ "i386_coreboot", "arm_coreboot" ] - - # emu is a special case so many core functionality isn't needed on this platform - GROUPS["noemu"] = GRUB_PLATFORMS[:]; GROUPS["noemu"].remove("emu") -@@ -64,7 +66,7 @@ GROUPS["pci"] = GROUPS["x86"] + ["mips_loongson"] - GROUPS["usb"] = GROUPS["pci"] - - # If gfxterm is main output console integrate it into kernel --GROUPS["videoinkernel"] = ["mips_loongson", "i386_coreboot" ] -+GROUPS["videoinkernel"] = ["mips_loongson", "i386_coreboot", "arm_coreboot" ] - GROUPS["videomodules"] = GRUB_PLATFORMS[:]; - for i in GROUPS["videoinkernel"]: GROUPS["videomodules"].remove(i) - -diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am -index 781d0ffbf..bec058554 100644 ---- a/grub-core/Makefile.am -+++ b/grub-core/Makefile.am -@@ -239,6 +239,16 @@ KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/lib/arg.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/arm/system.h - endif - -+if COND_arm_coreboot -+KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/arm/system.h -+KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/video.h -+KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/video_fb.h -+KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/gfxterm.h -+KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/font.h -+KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/bufio.h -+KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/arm/coreboot/kernel.h -+endif -+ - if COND_arm_efi - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/arm/efi/loader.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/efi.h diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 6540dc951..411dca46b 100644 +index 6540dc951d4..411dca46bf2 100644 --- a/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def @@ -92,6 +92,8 @@ kernel = { @@ -199,7 +138,7 @@ index 6540dc951..411dca46b 100644 sparc64_ieee1275 = lib/ieee1275/cmos.c; diff --git a/grub-core/kern/arm/coreboot/cbtable.c b/grub-core/kern/arm/coreboot/cbtable.c new file mode 100644 -index 000000000..8a655bb5c +index 00000000000..8a655bb5cc2 --- /dev/null +++ b/grub-core/kern/arm/coreboot/cbtable.c @@ -0,0 +1,40 @@ @@ -243,59 +182,9 @@ index 000000000..8a655bb5c + + return table_header; +} -diff --git a/grub-core/kern/arm/coreboot/coreboot.S b/grub-core/kern/arm/coreboot/coreboot.S -new file mode 100644 -index 000000000..a1104526c ---- /dev/null -+++ b/grub-core/kern/arm/coreboot/coreboot.S -@@ -0,0 +1,44 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2016 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#include -+ -+ .file "coreboot.S" -+ .text -+ .syntax unified -+#if !defined (__thumb2__) -+ .arch armv7a -+ .arm -+#else -+ .arch armv7 -+ .thumb -+#endif -+ -+FUNCTION(grub_arm_pfr1) -+ mrc p15, 0, r0, c0, c1, 1 -+ bx lr -+ -+FUNCTION(grub_armv7_get_timer_value) -+ isb -+ mrrc p15, 1, r0, r1, c14 -+ bx lr -+ -+FUNCTION(grub_armv7_get_timer_frequency) -+ mrc p15, 0, r0, c14, c0, 0 -+ bx lr -+ diff --git a/grub-core/kern/arm/coreboot/init.c b/grub-core/kern/arm/coreboot/init.c new file mode 100644 -index 000000000..51ecaceb0 +index 00000000000..51ecaceb005 --- /dev/null +++ b/grub-core/kern/arm/coreboot/init.c @@ -0,0 +1,127 @@ @@ -428,7 +317,7 @@ index 000000000..51ecaceb0 +} diff --git a/grub-core/kern/arm/coreboot/timer.c b/grub-core/kern/arm/coreboot/timer.c new file mode 100644 -index 000000000..ebefb99d5 +index 00000000000..ebefb99d58f --- /dev/null +++ b/grub-core/kern/arm/coreboot/timer.c @@ -0,0 +1,65 @@ @@ -497,37 +386,8 @@ index 000000000..ebefb99d5 + if (!have_timer) + grub_fatal ("No timer found"); +} -diff --git a/grub-core/kern/arm/startup.S b/grub-core/kern/arm/startup.S -index 640837cba..3946fe8e1 100644 ---- a/grub-core/kern/arm/startup.S -+++ b/grub-core/kern/arm/startup.S -@@ -24,6 +24,7 @@ - * GRUB is called from U-Boot as a Linux Kernel type image, which - * means among other things that it always enters in ARM state. - * -+ * coreboot starts in ARM mode as well. - * - * Overview of GRUB image layout: - * -@@ -127,6 +128,8 @@ reloc_done: - - str r1, EXT_C(grub_modbase) - -+ /* Coreboot already places modules at right place. */ -+#ifndef GRUB_MACHINE_COREBOOT - add r1, r1, r2 - add r0, r0, r2 - sub r1, r1, #4 -@@ -136,6 +139,7 @@ reloc_done: - str r3, [r1], #-4 @ *dst-- = r3 - subs r2, #4 @ remaining -= 4 - bne 1b @ while remaining != 0 -+#endif - - @ Since we _are_ the C run-time, we need to manually zero the BSS - @ region before continuing diff --git a/grub-core/kern/coreboot/cbtable.c b/grub-core/kern/coreboot/cbtable.c -index 996d3f407..aec63dbd1 100644 +index 996d3f40738..aec63dbd120 100644 --- a/grub-core/kern/coreboot/cbtable.c +++ b/grub-core/kern/coreboot/cbtable.c @@ -23,6 +23,8 @@ @@ -541,7 +401,7 @@ index 996d3f407..aec63dbd1 100644 grub_linuxbios_check_signature (grub_linuxbios_table_header_t tbl_header) diff --git a/grub-core/lib/dummy/reboot.c b/grub-core/lib/dummy/reboot.c new file mode 100644 -index 000000000..b8cbed8f8 +index 00000000000..b8cbed8f811 --- /dev/null +++ b/grub-core/lib/dummy/reboot.c @@ -0,0 +1,32 @@ @@ -578,7 +438,7 @@ index 000000000..b8cbed8f8 + while (1); +} diff --git a/grub-core/loader/arm/linux.c b/grub-core/loader/arm/linux.c -index 5b39f02bb..01374ee78 100644 +index 5b39f02bb2e..01374ee78fa 100644 --- a/grub-core/loader/arm/linux.c +++ b/grub-core/loader/arm/linux.c @@ -31,6 +31,8 @@ @@ -595,110 +455,8 @@ index 5b39f02bb..01374ee78 100644 grub_unregister_command (cmd_devicetree); } +#endif -diff --git a/include/grub/arm/coreboot/console.h b/include/grub/arm/coreboot/console.h -new file mode 100644 -index 000000000..13a14b783 ---- /dev/null -+++ b/include/grub/arm/coreboot/console.h -@@ -0,0 +1,29 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2009 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#ifndef GRUB_MACHINE_CONSOLE_HEADER -+#define GRUB_MACHINE_CONSOLE_HEADER 1 -+ -+void grub_video_coreboot_fb_init (void); -+void grub_video_coreboot_fb_early_init (void); -+void grub_video_coreboot_fb_late_init (void); -+void grub_video_coreboot_fb_fini (void); -+ -+extern struct grub_linuxbios_table_framebuffer *grub_video_coreboot_fbtable; -+ -+#endif /* ! GRUB_MACHINE_CONSOLE_HEADER */ -diff --git a/include/grub/arm/coreboot/kernel.h b/include/grub/arm/coreboot/kernel.h -new file mode 100644 -index 000000000..09cd7fe32 ---- /dev/null -+++ b/include/grub/arm/coreboot/kernel.h -@@ -0,0 +1,44 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2013 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#ifndef GRUB_KERNEL_MACHINE_HEADER -+#define GRUB_KERNEL_MACHINE_HEADER 1 -+ -+#ifndef ASM_FILE -+ -+#include -+#include -+ -+struct grub_fdt_board -+{ -+ const char *vendor, *part; -+ const grub_uint8_t *dtb; -+ grub_size_t dtb_size; -+}; -+ -+extern struct grub_fdt_board grub_fdt_boards[]; -+void grub_machine_timer_init (void); -+void grub_pl050_init (void); -+void -+grub_cros_init (void); -+extern grub_addr_t EXPORT_VAR (start_of_ram); -+#endif /* ! ASM_FILE */ -+ -+#define GRUB_KERNEL_MACHINE_STACK_SIZE GRUB_KERNEL_ARM_STACK_SIZE -+ -+#endif /* ! GRUB_KERNEL_MACHINE_HEADER */ -diff --git a/include/grub/offsets.h b/include/grub/offsets.h -index c88c86d4d..bf0689fc9 100644 ---- a/include/grub/offsets.h -+++ b/include/grub/offsets.h -@@ -122,6 +122,12 @@ - #define GRUB_KERNEL_ARM_UBOOT_MOD_ALIGN 0x8 - #define GRUB_KERNEL_ARM_UBOOT_TOTAL_MODULE_SIZE 0x4 - -+#define GRUB_KERNEL_ARM_COREBOOT_MOD_ALIGN 0x8 -+#define GRUB_KERNEL_ARM_COREBOOT_TOTAL_MODULE_SIZE 0x4 -+ -+#define GRUB_KERNEL_ARM_STACK_SIZE 0x40000 -+#define GRUB_KERNEL_ARM_COREBOOT_MOD_GAP (GRUB_KERNEL_ARM_STACK_SIZE + 1024) -+ - /* Minimal gap between _end and the start of the modules. It's a hack - for PowerMac to prevent "CLAIM failed" error. The real fix is to - rewrite grub-mkimage to generate valid ELF files. */ diff --git a/util/grub-mkimagexx.c b/util/grub-mkimagexx.c -index 3fab93e20..a2bb05439 100644 +index 3fab93e2088..a2bb05439f0 100644 --- a/util/grub-mkimagexx.c +++ b/util/grub-mkimagexx.c @@ -87,7 +87,8 @@ struct fixup_block_list @@ -764,7 +522,7 @@ index 3fab93e20..a2bb05439 100644 { if (grub_target_to_host32 (s->sh_type) == SHT_NOBITS) diff --git a/util/mkimage.c b/util/mkimage.c -index 528166c87..6aa77ed73 100644 +index 528166c87ac..6aa77ed7367 100644 --- a/util/mkimage.c +++ b/util/mkimage.c @@ -533,6 +533,45 @@ static const struct grub_install_image_target_desc image_targets[] = @@ -822,6 +580,248 @@ index 528166c87..6aa77ed73 100644 grub_util_error (_("kernel image is too big (0x%x > 0x%x)"), (unsigned) layout.kernel_size + (unsigned) layout.bss_size + GRUB_KERNEL_I386_PC_LINK_ADDR, +diff --git a/include/grub/arm/coreboot/console.h b/include/grub/arm/coreboot/console.h +new file mode 100644 +index 00000000000..13a14b78383 +--- /dev/null ++++ b/include/grub/arm/coreboot/console.h +@@ -0,0 +1,29 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2009 Free Software Foundation, Inc. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++#ifndef GRUB_MACHINE_CONSOLE_HEADER ++#define GRUB_MACHINE_CONSOLE_HEADER 1 ++ ++void grub_video_coreboot_fb_init (void); ++void grub_video_coreboot_fb_early_init (void); ++void grub_video_coreboot_fb_late_init (void); ++void grub_video_coreboot_fb_fini (void); ++ ++extern struct grub_linuxbios_table_framebuffer *grub_video_coreboot_fbtable; ++ ++#endif /* ! GRUB_MACHINE_CONSOLE_HEADER */ +diff --git a/include/grub/arm/coreboot/kernel.h b/include/grub/arm/coreboot/kernel.h +new file mode 100644 +index 00000000000..09cd7fe328c +--- /dev/null ++++ b/include/grub/arm/coreboot/kernel.h +@@ -0,0 +1,44 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2013 Free Software Foundation, Inc. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++#ifndef GRUB_KERNEL_MACHINE_HEADER ++#define GRUB_KERNEL_MACHINE_HEADER 1 ++ ++#ifndef ASM_FILE ++ ++#include ++#include ++ ++struct grub_fdt_board ++{ ++ const char *vendor, *part; ++ const grub_uint8_t *dtb; ++ grub_size_t dtb_size; ++}; ++ ++extern struct grub_fdt_board grub_fdt_boards[]; ++void grub_machine_timer_init (void); ++void grub_pl050_init (void); ++void ++grub_cros_init (void); ++extern grub_addr_t EXPORT_VAR (start_of_ram); ++#endif /* ! ASM_FILE */ ++ ++#define GRUB_KERNEL_MACHINE_STACK_SIZE GRUB_KERNEL_ARM_STACK_SIZE ++ ++#endif /* ! GRUB_KERNEL_MACHINE_HEADER */ +diff --git a/include/grub/offsets.h b/include/grub/offsets.h +index c88c86d4d2e..bf0689fc99a 100644 +--- a/include/grub/offsets.h ++++ b/include/grub/offsets.h +@@ -122,6 +122,12 @@ + #define GRUB_KERNEL_ARM_UBOOT_MOD_ALIGN 0x8 + #define GRUB_KERNEL_ARM_UBOOT_TOTAL_MODULE_SIZE 0x4 + ++#define GRUB_KERNEL_ARM_COREBOOT_MOD_ALIGN 0x8 ++#define GRUB_KERNEL_ARM_COREBOOT_TOTAL_MODULE_SIZE 0x4 ++ ++#define GRUB_KERNEL_ARM_STACK_SIZE 0x40000 ++#define GRUB_KERNEL_ARM_COREBOOT_MOD_GAP (GRUB_KERNEL_ARM_STACK_SIZE + 1024) ++ + /* Minimal gap between _end and the start of the modules. It's a hack + for PowerMac to prevent "CLAIM failed" error. The real fix is to + rewrite grub-mkimage to generate valid ELF files. */ +diff --git a/grub-core/kern/arm/coreboot/coreboot.S b/grub-core/kern/arm/coreboot/coreboot.S +new file mode 100644 +index 00000000000..a1104526c15 +--- /dev/null ++++ b/grub-core/kern/arm/coreboot/coreboot.S +@@ -0,0 +1,44 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2016 Free Software Foundation, Inc. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++#include ++ ++ .file "coreboot.S" ++ .text ++ .syntax unified ++#if !defined (__thumb2__) ++ .arch armv7a ++ .arm ++#else ++ .arch armv7 ++ .thumb ++#endif ++ ++FUNCTION(grub_arm_pfr1) ++ mrc p15, 0, r0, c0, c1, 1 ++ bx lr ++ ++FUNCTION(grub_armv7_get_timer_value) ++ isb ++ mrrc p15, 1, r0, r1, c14 ++ bx lr ++ ++FUNCTION(grub_armv7_get_timer_frequency) ++ mrc p15, 0, r0, c14, c0, 0 ++ bx lr ++ +diff --git a/grub-core/kern/arm/startup.S b/grub-core/kern/arm/startup.S +index 640837cba51..3946fe8e183 100644 +--- a/grub-core/kern/arm/startup.S ++++ b/grub-core/kern/arm/startup.S +@@ -24,6 +24,7 @@ + * GRUB is called from U-Boot as a Linux Kernel type image, which + * means among other things that it always enters in ARM state. + * ++ * coreboot starts in ARM mode as well. + * + * Overview of GRUB image layout: + * +@@ -127,6 +128,8 @@ reloc_done: + + str r1, EXT_C(grub_modbase) + ++ /* Coreboot already places modules at right place. */ ++#ifndef GRUB_MACHINE_COREBOOT + add r1, r1, r2 + add r0, r0, r2 + sub r1, r1, #4 +@@ -136,6 +139,7 @@ reloc_done: + str r3, [r1], #-4 @ *dst-- = r3 + subs r2, #4 @ remaining -= 4 + bne 1b @ while remaining != 0 ++#endif + + @ Since we _are_ the C run-time, we need to manually zero the BSS + @ region before continuing +diff --git a/gentpl.py b/gentpl.py +index f08bcc404f6..ed268178b4d 100644 +--- a/gentpl.py ++++ b/gentpl.py +@@ -31,7 +31,8 @@ GRUB_PLATFORMS = [ "emu", "i386_pc", "i386_efi", "i386_qemu", "i386_coreboot", + "i386_xen", "x86_64_xen", + "mips_loongson", "sparc64_ieee1275", + "powerpc_ieee1275", "mips_arc", "ia64_efi", +- "mips_qemu_mips", "arm_uboot", "arm_efi", "arm64_efi" ] ++ "mips_qemu_mips", "arm_uboot", "arm_efi", "arm64_efi", ++ "arm_coreboot"] + + GROUPS = {} + +@@ -44,7 +45,7 @@ GROUPS["x86"] = GROUPS["i386"] + GROUPS["x86_64"] + GROUPS["mips"] = [ "mips_loongson", "mips_qemu_mips", "mips_arc" ] + GROUPS["sparc64"] = [ "sparc64_ieee1275" ] + GROUPS["powerpc"] = [ "powerpc_ieee1275" ] +-GROUPS["arm"] = [ "arm_uboot", "arm_efi" ] ++GROUPS["arm"] = [ "arm_uboot", "arm_efi", "arm_coreboot" ] + GROUPS["arm64"] = [ "arm64_efi" ] + + # Groups based on firmware +@@ -52,6 +53,7 @@ GROUPS["efi"] = [ "i386_efi", "x86_64_efi", "ia64_efi", "arm_efi", "arm64_efi" + GROUPS["ieee1275"] = [ "i386_ieee1275", "sparc64_ieee1275", "powerpc_ieee1275" ] + GROUPS["uboot"] = [ "arm_uboot" ] + GROUPS["xen"] = [ "i386_xen", "x86_64_xen" ] ++GROUPS["coreboot"] = [ "i386_coreboot", "arm_coreboot" ] + + # emu is a special case so many core functionality isn't needed on this platform + GROUPS["noemu"] = GRUB_PLATFORMS[:]; GROUPS["noemu"].remove("emu") +@@ -64,7 +66,7 @@ GROUPS["pci"] = GROUPS["x86"] + ["mips_loongson"] + GROUPS["usb"] = GROUPS["pci"] + + # If gfxterm is main output console integrate it into kernel +-GROUPS["videoinkernel"] = ["mips_loongson", "i386_coreboot" ] ++GROUPS["videoinkernel"] = ["mips_loongson", "i386_coreboot", "arm_coreboot" ] + GROUPS["videomodules"] = GRUB_PLATFORMS[:]; + for i in GROUPS["videoinkernel"]: GROUPS["videomodules"].remove(i) + +diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am +index 781d0ffbf75..bec0585549a 100644 +--- a/grub-core/Makefile.am ++++ b/grub-core/Makefile.am +@@ -239,6 +239,16 @@ KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/lib/arg.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/arm/system.h + endif + ++if COND_arm_coreboot ++KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/arm/system.h ++KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/video.h ++KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/video_fb.h ++KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/gfxterm.h ++KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/font.h ++KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/bufio.h ++KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/arm/coreboot/kernel.h ++endif ++ + if COND_arm_efi + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/arm/efi/loader.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/efi.h -- -2.14.3 +2.15.0 diff --git a/0020-Add-support-for-device-tree-based-drivers.patch b/0020-Add-support-for-device-tree-based-drivers.patch index f29234a8..238a2092 100644 --- a/0020-Add-support-for-device-tree-based-drivers.patch +++ b/0020-Add-support-for-device-tree-based-drivers.patch @@ -1,66 +1,28 @@ From fcbb723d4b1f7ad4687191562621dd0eb25f4d9e Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:19:59 +0200 -Subject: [PATCH 020/198] Add support for device-tree-based drivers. +Subject: [PATCH 020/206] Add support for device-tree-based drivers. --- - conf/Makefile.common | 4 +- - grub-core/Makefile.am | 10 ++ grub-core/Makefile.core.def | 2 + grub-core/bus/fdt.c | 255 +++++++++++++++++++++++++++++++++++++ grub-core/kern/arm/coreboot/init.c | 20 +++ - grub-core/lib/fdt.c | 142 +++++++++++++++------ + grub-core/lib/fdt.c | 152 ++++++++++++++++------ + util/grub-install-common.c | 2 +- + util/grub-mkimage.c | 11 +- + util/mkimage.c | 24 +++- include/grub/fdt.h | 23 ++-- include/grub/fdtbus.h | 73 +++++++++++ include/grub/kernel.h | 3 +- include/grub/util/install.h | 2 +- - util/grub-install-common.c | 2 +- - util/grub-mkimage.c | 11 +- - util/mkimage.c | 24 +++- - 13 files changed, 519 insertions(+), 52 deletions(-) + conf/Makefile.common | 4 +- + grub-core/Makefile.am | 10 ++ + 13 files changed, 524 insertions(+), 57 deletions(-) create mode 100644 grub-core/bus/fdt.c create mode 100644 include/grub/fdtbus.h -diff --git a/conf/Makefile.common b/conf/Makefile.common -index 11296b550..311da61c6 100644 ---- a/conf/Makefile.common -+++ b/conf/Makefile.common -@@ -86,9 +86,11 @@ CPPFLAGS_TERMINAL_LIST += '-Dgrub_term_register_output(...)=OUTPUT_TERMINAL_LIST - CPPFLAGS_COMMAND_LIST = '-Dgrub_register_command(...)=COMMAND_LIST_MARKER(__VA_ARGS__)' - CPPFLAGS_COMMAND_LIST += '-Dgrub_register_extcmd(...)=EXTCOMMAND_LIST_MARKER(__VA_ARGS__)' - CPPFLAGS_COMMAND_LIST += '-Dgrub_register_command_p1(...)=P1COMMAND_LIST_MARKER(__VA_ARGS__)' -+CPPFLAGS_FDT_LIST := '-Dgrub_fdtbus_register(...)=FDT_DRIVER_LIST_MARKER(__VA_ARGS__)' - CPPFLAGS_MARKER = $(CPPFLAGS_FS_LIST) $(CPPFLAGS_VIDEO_LIST) \ - $(CPPFLAGS_PARTTOOL_LIST) $(CPPFLAGS_PARTMAP_LIST) \ -- $(CPPFLAGS_TERMINAL_LIST) $(CPPFLAGS_COMMAND_LIST) -+ $(CPPFLAGS_TERMINAL_LIST) $(CPPFLAGS_COMMAND_LIST) \ -+ $(CPPFLAGS_FDT_LIST) - - # Define these variables to calm down automake - -diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am -index bec058554..fc6ca3051 100644 ---- a/grub-core/Makefile.am -+++ b/grub-core/Makefile.am -@@ -368,6 +368,16 @@ terminal.lst: $(MARKER_FILES) - platform_DATA += terminal.lst - CLEANFILES += terminal.lst - -+fdt.lst: $(MARKER_FILES) -+ (for pp in $^; do \ -+ b=`basename $$pp .marker`; \ -+ sed -n \ -+ -e "/FDT_DRIVER_LIST_MARKER *( *\"/{s/.*( *\"\([^\"]*\)\".*/i\1: $$b/;p;}" \ -+ -e "/FDT_DRIVER_LIST_MARKER *( *\"/{s/.*( *\"\([^\"]*\)\".*/o\1: $$b/;p;}" $$pp; \ -+ done) | sort -u > $@ -+platform_DATA += fdt.lst -+CLEANFILES += fdt.lst -+ - parttool.lst: $(MARKER_FILES) - (for pp in $^; do \ - b=`basename $$pp .marker`; \ diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 411dca46b..77d0b019e 100644 +index 411dca46bf2..77d0b019eb2 100644 --- a/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def @@ -158,6 +158,8 @@ kernel = { @@ -74,7 +36,7 @@ index 411dca46b..77d0b019e 100644 terminfoinkernel = term/tparm.c; diff --git a/grub-core/bus/fdt.c b/grub-core/bus/fdt.c new file mode 100644 -index 000000000..6fb077000 +index 00000000000..6fb077000a5 --- /dev/null +++ b/grub-core/bus/fdt.c @@ -0,0 +1,255 @@ @@ -334,7 +296,7 @@ index 000000000..6fb077000 + return dtb; +} diff --git a/grub-core/kern/arm/coreboot/init.c b/grub-core/kern/arm/coreboot/init.c -index 51ecaceb0..aec75c672 100644 +index 51ecaceb005..aec75c672a2 100644 --- a/grub-core/kern/arm/coreboot/init.c +++ b/grub-core/kern/arm/coreboot/init.c @@ -33,6 +33,7 @@ @@ -379,7 +341,7 @@ index 51ecaceb0..aec75c672 100644 } diff --git a/grub-core/lib/fdt.c b/grub-core/lib/fdt.c -index b5d520f20..bdc630244 100644 +index b5d520f2088..bdc6302448d 100644 --- a/grub-core/lib/fdt.c +++ b/grub-core/lib/fdt.c @@ -102,13 +102,13 @@ static grub_uint32_t *get_next_node (const void *fdt, char *node_name) @@ -429,44 +391,18 @@ index b5d520f20..bdc630244 100644 { if (size < sizeof (grub_fdt_header_t) || (grub_fdt_get_totalsize (fdt) > size) -@@ -295,41 +295,29 @@ int grub_fdt_check_header (void *fdt, unsigned int size) +@@ -295,52 +295,104 @@ int grub_fdt_check_header (void *fdt, unsigned int size) return 0; } --/* Find a direct sub-node of a given parent node. */ --int grub_fdt_find_subnode (const void *fdt, unsigned int parentoffset, -- const char *name) +static const grub_uint32_t * +advance_token (const void *fdt, const grub_uint32_t *token, const grub_uint32_t *end, int skip_current) - { -- grub_uint32_t *token, *end; -- char *node_name; -- -- if (parentoffset & 0x3) -- return -1; -- token = (void *) ((grub_addr_t) fdt + grub_fdt_get_off_dt_struct(fdt) -- + parentoffset); -- end = (void *) struct_end (fdt); -- if ((token >= end) || (grub_be_to_cpu32(*token) != FDT_BEGIN_NODE)) -- return -1; -- SKIP_NODE_NAME(node_name, token, end); -- while (token < end) ++{ + for (; token < end; skip_current = 0) - { -- switch (grub_be_to_cpu32(*token)) ++ { + switch (grub_be_to_cpu32 (*token)) - { - case FDT_BEGIN_NODE: -- node_name = (char *) (token + 1); -- if (node_name + grub_strlen (name) >= (char *) end) -- return -1; -- if (!grub_strcmp (node_name, name)) -- return (int) ((grub_addr_t) token - (grub_addr_t) fdt -- - grub_fdt_get_off_dt_struct (fdt)); -- token = get_next_node (fdt, node_name); -- if (!token) -- return -1; -- break; ++ { ++ case FDT_BEGIN_NODE: + if (skip_current) + { + token = get_next_node (fdt, (char *) (token + 1)); @@ -477,24 +413,21 @@ index b5d520f20..bdc630244 100644 + if (ptr >= (char *) end) + return 0; + return token; - case FDT_PROP: - /* Skip property token and following data (len, nameoff and property - value). */ - if (token >= end - 1) -- return -1; ++ case FDT_PROP: ++ /* Skip property token and following data (len, nameoff and property ++ value). */ ++ if (token >= end - 1) + return 0; - token += prop_entry_size(grub_be_to_cpu32(*(token + 1))) - / sizeof(*token); - break; -@@ -337,10 +325,74 @@ int grub_fdt_find_subnode (const void *fdt, unsigned int parentoffset, - token++; - break; - default: -- return -1; ++ token += prop_entry_size(grub_be_to_cpu32(*(token + 1))) ++ / sizeof(*token); ++ break; ++ case FDT_NOP: ++ token++; ++ break; ++ default: + return 0; - } - } -- return -1; ++ } ++ } + return 0; +} + @@ -528,22 +461,55 @@ index b5d520f20..bdc630244 100644 + - grub_fdt_get_off_dt_struct (fdt)); +} + -+/* Find a direct sub-node of a given parent node. */ -+int grub_fdt_find_subnode (const void *fdt, unsigned int parentoffset, -+ const char *name) -+{ + /* Find a direct sub-node of a given parent node. */ + int grub_fdt_find_subnode (const void *fdt, unsigned int parentoffset, + const char *name) + { +- grub_uint32_t *token, *end; +- char *node_name; + const grub_uint32_t *token, *end; + const char *node_name; + int skip_current = 0; -+ -+ if (parentoffset & 0x3) -+ return -1; + + if (parentoffset & 0x3) + return -1; +- token = (void *) ((grub_addr_t) fdt + grub_fdt_get_off_dt_struct(fdt) + token = (const void *) ((grub_addr_t) fdt + grub_fdt_get_off_dt_struct(fdt) -+ + parentoffset); + + parentoffset); +- end = (void *) struct_end (fdt); + end = (const void *) struct_end (fdt); -+ if ((token >= end) || (grub_be_to_cpu32(*token) != FDT_BEGIN_NODE)) -+ return -1; -+ SKIP_NODE_NAME(node_name, token, end); + if ((token >= end) || (grub_be_to_cpu32(*token) != FDT_BEGIN_NODE)) + return -1; + SKIP_NODE_NAME(node_name, token, end); +- while (token < end) +- { +- switch (grub_be_to_cpu32(*token)) +- { +- case FDT_BEGIN_NODE: +- node_name = (char *) (token + 1); +- if (node_name + grub_strlen (name) >= (char *) end) +- return -1; +- if (!grub_strcmp (node_name, name)) +- return (int) ((grub_addr_t) token - (grub_addr_t) fdt +- - grub_fdt_get_off_dt_struct (fdt)); +- token = get_next_node (fdt, node_name); +- if (!token) +- return -1; +- break; +- case FDT_PROP: +- /* Skip property token and following data (len, nameoff and property +- value). */ +- if (token >= end - 1) +- return -1; +- token += prop_entry_size(grub_be_to_cpu32(*(token + 1))) +- / sizeof(*token); +- break; +- case FDT_NOP: +- token++; +- break; +- default: +- return -1; +- } + while (1) { + token = advance_token (fdt, token, end, skip_current); + if (!token) @@ -553,7 +519,8 @@ index b5d520f20..bdc630244 100644 + if (grub_strcmp (node_name, name) == 0) + return (int) ((grub_addr_t) token - (grub_addr_t) fdt + - grub_fdt_get_off_dt_struct (fdt)); -+ } + } +- return -1; +} + +const char * @@ -588,8 +555,117 @@ index b5d520f20..bdc630244 100644 int grub_fdt_set_prop (void *fdt, unsigned int nodeoffset, const char *name, const void *val, grub_uint32_t len) { +diff --git a/util/grub-install-common.c b/util/grub-install-common.c +index 452b230daed..8539ff3484d 100644 +--- a/util/grub-install-common.c ++++ b/util/grub-install-common.c +@@ -499,7 +499,7 @@ grub_install_make_image_wrap_file (const char *dir, const char *prefix, + grub_install_generate_image (dir, prefix, fp, outname, + modules.entries, memdisk_path, + pubkeys, npubkeys, config_path, tgt, +- note, compression); ++ note, compression, 0); + while (dc--) + grub_install_pop_module (); + } +diff --git a/util/grub-mkimage.c b/util/grub-mkimage.c +index aba19d21b9a..98d24cc06ea 100644 +--- a/util/grub-mkimage.c ++++ b/util/grub-mkimage.c +@@ -71,6 +71,7 @@ static struct argp_option options[] = { + N_("embed FILE as a memdisk image\n" + "Implies `-p (memdisk)/boot/grub' and overrides any prefix supplied previously," + " but the prefix itself can be overridden by later options"), 0}, ++ {"dtb", 'D', N_("FILE"), 0, N_("embed FILE as a device tree (DTB)\n"), 0}, + /* TRANSLATORS: "embed" is a verb (command description). "*/ + {"config", 'c', N_("FILE"), 0, N_("embed FILE as an early config"), 0}, + /* TRANSLATORS: "embed" is a verb (command description). "*/ +@@ -117,6 +118,7 @@ struct arguments + char *dir; + char *prefix; + char *memdisk; ++ char *dtb; + char **pubkeys; + size_t npubkeys; + char *font; +@@ -176,6 +178,13 @@ argp_parser (int key, char *arg, struct argp_state *state) + arguments->prefix = xstrdup ("(memdisk)/boot/grub"); + break; + ++ case 'D': ++ if (arguments->dtb) ++ free (arguments->dtb); ++ ++ arguments->dtb = xstrdup (arg); ++ break; ++ + case 'k': + arguments->pubkeys = xrealloc (arguments->pubkeys, + sizeof (arguments->pubkeys[0]) +@@ -300,7 +309,7 @@ main (int argc, char *argv[]) + arguments.memdisk, arguments.pubkeys, + arguments.npubkeys, arguments.config, + arguments.image_target, arguments.note, +- arguments.comp); ++ arguments.comp, arguments.dtb); + + grub_util_file_sync (fp); + fclose (fp); +diff --git a/util/mkimage.c b/util/mkimage.c +index 6aa77ed7367..e22d82afa61 100644 +--- a/util/mkimage.c ++++ b/util/mkimage.c +@@ -777,13 +777,12 @@ grub_install_generate_image (const char *dir, const char *prefix, + char *memdisk_path, char **pubkey_paths, + size_t npubkeys, char *config_path, + const struct grub_install_image_target_desc *image_target, +- int note, +- grub_compression_t comp) ++ int note, grub_compression_t comp, const char *dtb_path) + { + char *kernel_img, *core_img; + size_t total_module_size, core_size; + size_t memdisk_size = 0, config_size = 0; +- size_t prefix_size = 0; ++ size_t prefix_size = 0, dtb_size = 0; + char *kernel_path; + size_t offset; + struct grub_util_path_list *path_list, *p; +@@ -828,6 +827,12 @@ grub_install_generate_image (const char *dir, const char *prefix, + total_module_size += memdisk_size + sizeof (struct grub_module_header); + } + ++ if (dtb_path) ++ { ++ dtb_size = ALIGN_UP(grub_util_get_image_size (dtb_path), 4); ++ total_module_size += dtb_size + sizeof (struct grub_module_header); ++ } ++ + if (config_path) + { + config_size = ALIGN_ADDR (grub_util_get_image_size (config_path) + 1); +@@ -950,6 +955,19 @@ grub_install_generate_image (const char *dir, const char *prefix, + offset += memdisk_size; + } + ++ if (dtb_path) ++ { ++ struct grub_module_header *header; ++ ++ header = (struct grub_module_header *) (kernel_img + offset); ++ header->type = grub_host_to_target32 (OBJ_TYPE_DTB); ++ header->size = grub_host_to_target32 (dtb_size + sizeof (*header)); ++ offset += sizeof (*header); ++ ++ grub_util_load_image (dtb_path, kernel_img + offset); ++ offset += dtb_size; ++ } ++ + if (config_path) + { + struct grub_module_header *header; diff --git a/include/grub/fdt.h b/include/grub/fdt.h -index fdfca75bf..75525fa31 100644 +index fdfca75bf48..75525fa317c 100644 --- a/include/grub/fdt.h +++ b/include/grub/fdt.h @@ -20,6 +20,7 @@ @@ -633,7 +709,7 @@ index fdfca75bf..75525fa31 100644 grub_uint32_t _val = grub_cpu_to_be32(val); \ diff --git a/include/grub/fdtbus.h b/include/grub/fdtbus.h new file mode 100644 -index 000000000..985837e55 +index 00000000000..985837e55f6 --- /dev/null +++ b/include/grub/fdtbus.h @@ -0,0 +1,73 @@ @@ -711,7 +787,7 @@ index 000000000..985837e55 + +#endif diff --git a/include/grub/kernel.h b/include/grub/kernel.h -index 20ddf2da2..ecd88ca72 100644 +index 20ddf2da297..ecd88ca72c6 100644 --- a/include/grub/kernel.h +++ b/include/grub/kernel.h @@ -28,7 +28,8 @@ enum @@ -725,7 +801,7 @@ index 20ddf2da2..ecd88ca72 100644 /* The module header. */ diff --git a/include/grub/util/install.h b/include/grub/util/install.h -index 5ca4811cd..6abd288c3 100644 +index 5ca4811cd13..6abd288c313 100644 --- a/include/grub/util/install.h +++ b/include/grub/util/install.h @@ -176,7 +176,7 @@ grub_install_generate_image (const char *dir, const char *prefix, @@ -737,115 +813,44 @@ index 5ca4811cd..6abd288c3 100644 const struct grub_install_image_target_desc * grub_install_get_image_target (const char *arg); -diff --git a/util/grub-install-common.c b/util/grub-install-common.c -index 452b230da..8539ff348 100644 ---- a/util/grub-install-common.c -+++ b/util/grub-install-common.c -@@ -499,7 +499,7 @@ grub_install_make_image_wrap_file (const char *dir, const char *prefix, - grub_install_generate_image (dir, prefix, fp, outname, - modules.entries, memdisk_path, - pubkeys, npubkeys, config_path, tgt, -- note, compression); -+ note, compression, 0); - while (dc--) - grub_install_pop_module (); - } -diff --git a/util/grub-mkimage.c b/util/grub-mkimage.c -index aba19d21b..98d24cc06 100644 ---- a/util/grub-mkimage.c -+++ b/util/grub-mkimage.c -@@ -71,6 +71,7 @@ static struct argp_option options[] = { - N_("embed FILE as a memdisk image\n" - "Implies `-p (memdisk)/boot/grub' and overrides any prefix supplied previously," - " but the prefix itself can be overridden by later options"), 0}, -+ {"dtb", 'D', N_("FILE"), 0, N_("embed FILE as a device tree (DTB)\n"), 0}, - /* TRANSLATORS: "embed" is a verb (command description). "*/ - {"config", 'c', N_("FILE"), 0, N_("embed FILE as an early config"), 0}, - /* TRANSLATORS: "embed" is a verb (command description). "*/ -@@ -117,6 +118,7 @@ struct arguments - char *dir; - char *prefix; - char *memdisk; -+ char *dtb; - char **pubkeys; - size_t npubkeys; - char *font; -@@ -176,6 +178,13 @@ argp_parser (int key, char *arg, struct argp_state *state) - arguments->prefix = xstrdup ("(memdisk)/boot/grub"); - break; +diff --git a/conf/Makefile.common b/conf/Makefile.common +index 11296b550a7..311da61c6c5 100644 +--- a/conf/Makefile.common ++++ b/conf/Makefile.common +@@ -86,9 +86,11 @@ CPPFLAGS_TERMINAL_LIST += '-Dgrub_term_register_output(...)=OUTPUT_TERMINAL_LIST + CPPFLAGS_COMMAND_LIST = '-Dgrub_register_command(...)=COMMAND_LIST_MARKER(__VA_ARGS__)' + CPPFLAGS_COMMAND_LIST += '-Dgrub_register_extcmd(...)=EXTCOMMAND_LIST_MARKER(__VA_ARGS__)' + CPPFLAGS_COMMAND_LIST += '-Dgrub_register_command_p1(...)=P1COMMAND_LIST_MARKER(__VA_ARGS__)' ++CPPFLAGS_FDT_LIST := '-Dgrub_fdtbus_register(...)=FDT_DRIVER_LIST_MARKER(__VA_ARGS__)' + CPPFLAGS_MARKER = $(CPPFLAGS_FS_LIST) $(CPPFLAGS_VIDEO_LIST) \ + $(CPPFLAGS_PARTTOOL_LIST) $(CPPFLAGS_PARTMAP_LIST) \ +- $(CPPFLAGS_TERMINAL_LIST) $(CPPFLAGS_COMMAND_LIST) ++ $(CPPFLAGS_TERMINAL_LIST) $(CPPFLAGS_COMMAND_LIST) \ ++ $(CPPFLAGS_FDT_LIST) -+ case 'D': -+ if (arguments->dtb) -+ free (arguments->dtb); -+ -+ arguments->dtb = xstrdup (arg); -+ break; -+ - case 'k': - arguments->pubkeys = xrealloc (arguments->pubkeys, - sizeof (arguments->pubkeys[0]) -@@ -300,7 +309,7 @@ main (int argc, char *argv[]) - arguments.memdisk, arguments.pubkeys, - arguments.npubkeys, arguments.config, - arguments.image_target, arguments.note, -- arguments.comp); -+ arguments.comp, arguments.dtb); + # Define these variables to calm down automake - grub_util_file_sync (fp); - fclose (fp); -diff --git a/util/mkimage.c b/util/mkimage.c -index 6aa77ed73..e22d82afa 100644 ---- a/util/mkimage.c -+++ b/util/mkimage.c -@@ -777,13 +777,12 @@ grub_install_generate_image (const char *dir, const char *prefix, - char *memdisk_path, char **pubkey_paths, - size_t npubkeys, char *config_path, - const struct grub_install_image_target_desc *image_target, -- int note, -- grub_compression_t comp) -+ int note, grub_compression_t comp, const char *dtb_path) - { - char *kernel_img, *core_img; - size_t total_module_size, core_size; - size_t memdisk_size = 0, config_size = 0; -- size_t prefix_size = 0; -+ size_t prefix_size = 0, dtb_size = 0; - char *kernel_path; - size_t offset; - struct grub_util_path_list *path_list, *p; -@@ -828,6 +827,12 @@ grub_install_generate_image (const char *dir, const char *prefix, - total_module_size += memdisk_size + sizeof (struct grub_module_header); - } +diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am +index bec0585549a..fc6ca305147 100644 +--- a/grub-core/Makefile.am ++++ b/grub-core/Makefile.am +@@ -368,6 +368,16 @@ terminal.lst: $(MARKER_FILES) + platform_DATA += terminal.lst + CLEANFILES += terminal.lst -+ if (dtb_path) -+ { -+ dtb_size = ALIGN_UP(grub_util_get_image_size (dtb_path), 4); -+ total_module_size += dtb_size + sizeof (struct grub_module_header); -+ } ++fdt.lst: $(MARKER_FILES) ++ (for pp in $^; do \ ++ b=`basename $$pp .marker`; \ ++ sed -n \ ++ -e "/FDT_DRIVER_LIST_MARKER *( *\"/{s/.*( *\"\([^\"]*\)\".*/i\1: $$b/;p;}" \ ++ -e "/FDT_DRIVER_LIST_MARKER *( *\"/{s/.*( *\"\([^\"]*\)\".*/o\1: $$b/;p;}" $$pp; \ ++ done) | sort -u > $@ ++platform_DATA += fdt.lst ++CLEANFILES += fdt.lst + - if (config_path) - { - config_size = ALIGN_ADDR (grub_util_get_image_size (config_path) + 1); -@@ -950,6 +955,19 @@ grub_install_generate_image (const char *dir, const char *prefix, - offset += memdisk_size; - } - -+ if (dtb_path) -+ { -+ struct grub_module_header *header; -+ -+ header = (struct grub_module_header *) (kernel_img + offset); -+ header->type = grub_host_to_target32 (OBJ_TYPE_DTB); -+ header->size = grub_host_to_target32 (dtb_size + sizeof (*header)); -+ offset += sizeof (*header); -+ -+ grub_util_load_image (dtb_path, kernel_img + offset); -+ offset += dtb_size; -+ } -+ - if (config_path) - { - struct grub_module_header *header; + parttool.lst: $(MARKER_FILES) + (for pp in $^; do \ + b=`basename $$pp .marker`; \ -- -2.14.3 +2.15.0 diff --git a/0021-arm-coreboot-Support-for-vexpress-timer.patch b/0021-arm-coreboot-Support-for-vexpress-timer.patch index 33f3fdb5..ec127de7 100644 --- a/0021-arm-coreboot-Support-for-vexpress-timer.patch +++ b/0021-arm-coreboot-Support-for-vexpress-timer.patch @@ -1,14 +1,14 @@ From 5a865b37866ee8cd64c080bc6fb1e537f8e2b3c6 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:26:36 +0200 -Subject: [PATCH 021/198] arm-coreboot: Support for vexpress timer. +Subject: [PATCH 021/206] arm-coreboot: Support for vexpress timer. --- grub-core/kern/arm/coreboot/timer.c | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/grub-core/kern/arm/coreboot/timer.c b/grub-core/kern/arm/coreboot/timer.c -index ebefb99d5..d97b844f8 100644 +index ebefb99d58f..d97b844f848 100644 --- a/grub-core/kern/arm/coreboot/timer.c +++ b/grub-core/kern/arm/coreboot/timer.c @@ -21,6 +21,7 @@ @@ -69,5 +69,5 @@ index ebefb99d5..d97b844f8 100644 try_generic_timer (); if (!have_timer) -- -2.14.3 +2.15.0 diff --git a/0022-arm-coreboot-Export-FDT-routines.patch b/0022-arm-coreboot-Export-FDT-routines.patch index 621b2d61..467e14d9 100644 --- a/0022-arm-coreboot-Export-FDT-routines.patch +++ b/0022-arm-coreboot-Export-FDT-routines.patch @@ -1,7 +1,7 @@ From ac6b41b89fbb82a3ba843a7ed19115d81432b604 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:29:48 +0200 -Subject: [PATCH 022/198] arm-coreboot: Export FDT routines. +Subject: [PATCH 022/206] arm-coreboot: Export FDT routines. We need to use them from modules as well. --- @@ -9,7 +9,7 @@ We need to use them from modules as well. 1 file changed, 2 insertions(+) diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am -index fc6ca3051..147e6959c 100644 +index fc6ca305147..147e6959c97 100644 --- a/grub-core/Makefile.am +++ b/grub-core/Makefile.am @@ -246,7 +246,9 @@ KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/video_fb.h @@ -23,5 +23,5 @@ index fc6ca3051..147e6959c 100644 if COND_arm_efi -- -2.14.3 +2.15.0 diff --git a/0023-at_keyboard-Split-protocol-from-controller-code.patch b/0023-at_keyboard-Split-protocol-from-controller-code.patch index 2baa8c55..5ed6e57d 100644 --- a/0023-at_keyboard-Split-protocol-from-controller-code.patch +++ b/0023-at_keyboard-Split-protocol-from-controller-code.patch @@ -1,22 +1,22 @@ From 216950a4eea1a1ead1c28eaca94e34ea2ef2ad19 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:41:22 +0200 -Subject: [PATCH 023/198] at_keyboard: Split protocol from controller code. +Subject: [PATCH 023/206] at_keyboard: Split protocol from controller code. On vexpress controller is different but protocol is the same, so reuse the code. --- grub-core/Makefile.core.def | 3 + - grub-core/term/at_keyboard.c | 426 +++---------------------------------------- - grub-core/term/ps2.c | 387 +++++++++++++++++++++++++++++++++++++++ + grub-core/term/at_keyboard.c | 428 +++---------------------------------------- + grub-core/term/ps2.c | 387 ++++++++++++++++++++++++++++++++++++++ include/grub/at_keyboard.h | 4 - include/grub/ps2.h | 43 +++++ - 5 files changed, 462 insertions(+), 401 deletions(-) + 5 files changed, 463 insertions(+), 402 deletions(-) create mode 100644 grub-core/term/ps2.c create mode 100644 include/grub/ps2.h diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 77d0b019e..6ade6e950 100644 +index 77d0b019eb2..6ade6e95057 100644 --- a/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def @@ -251,6 +251,7 @@ kernel = { @@ -44,7 +44,7 @@ index 77d0b019e..6ade6e950 100644 }; diff --git a/grub-core/term/at_keyboard.c b/grub-core/term/at_keyboard.c -index b4ea9ff7e..3ab4e205f 100644 +index b4ea9ff7e63..3ab4e205f40 100644 --- a/grub-core/term/at_keyboard.c +++ b/grub-core/term/at_keyboard.c @@ -22,212 +22,21 @@ @@ -71,13 +71,10 @@ index b4ea9ff7e..3ab4e205f 100644 static grub_uint8_t grub_keyboard_controller_orig; static grub_uint8_t grub_keyboard_orig_set; -static grub_uint8_t current_set; -+struct grub_ps2_state ps2_state; -+ -+static int ping_sent; - - static void - grub_keyboard_controller_init (void); - +- +-static void +-grub_keyboard_controller_init (void); +- -static const grub_uint8_t set1_mapping[128] = - { - /* 0x00 */ 0 /* Unused */, GRUB_KEYBOARD_KEY_ESCAPE, @@ -258,9 +255,13 @@ index b4ea9ff7e..3ab4e205f 100644 - {0x7a, GRUB_KEYBOARD_KEY_NPAGE}, - {0x7d, GRUB_KEYBOARD_KEY_PPAGE}, - }; -- --static int ping_sent; -- ++struct grub_ps2_state ps2_state; + + static int ping_sent; + ++static void ++grub_keyboard_controller_init (void); ++ static void keyboard_controller_wait_until_ready (void) { @@ -567,7 +568,7 @@ index b4ea9ff7e..3ab4e205f 100644 } diff --git a/grub-core/term/ps2.c b/grub-core/term/ps2.c new file mode 100644 -index 000000000..7ae4e9f2f +index 00000000000..7ae4e9f2f8c --- /dev/null +++ b/grub-core/term/ps2.c @@ -0,0 +1,387 @@ @@ -959,7 +960,7 @@ index 000000000..7ae4e9f2f + } +} diff --git a/include/grub/at_keyboard.h b/include/grub/at_keyboard.h -index b4f8ff0a0..b031523eb 100644 +index b4f8ff0a061..b031523eb7d 100644 --- a/include/grub/at_keyboard.h +++ b/include/grub/at_keyboard.h @@ -27,10 +27,6 @@ @@ -975,7 +976,7 @@ index b4f8ff0a0..b031523eb 100644 #define KEYBOARD_SCANCODE(x) ((x) & 0x7f) diff --git a/include/grub/ps2.h b/include/grub/ps2.h new file mode 100644 -index 000000000..4f2e527e4 +index 00000000000..4f2e527e497 --- /dev/null +++ b/include/grub/ps2.h @@ -0,0 +1,43 @@ @@ -1023,5 +1024,5 @@ index 000000000..4f2e527e4 + +#endif -- -2.14.3 +2.15.0 diff --git a/0024-arm_coreboot-Support-keyboard-for-vexpress.patch b/0024-arm_coreboot-Support-keyboard-for-vexpress.patch index 65b38deb..dace31a4 100644 --- a/0024-arm_coreboot-Support-keyboard-for-vexpress.patch +++ b/0024-arm_coreboot-Support-keyboard-for-vexpress.patch @@ -1,30 +1,18 @@ From 848bed9d92cf20e9f25db4c69a20efad23996ca0 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:42:37 +0200 -Subject: [PATCH 024/198] arm_coreboot: Support keyboard for vexpress. +Subject: [PATCH 024/206] arm_coreboot: Support keyboard for vexpress. --- - grub-core/Makefile.am | 1 + grub-core/Makefile.core.def | 3 + grub-core/kern/arm/coreboot/init.c | 1 + grub-core/term/arm/pl050.c | 189 +++++++++++++++++++++++++++++++++++++ + grub-core/Makefile.am | 1 + 4 files changed, 194 insertions(+) create mode 100644 grub-core/term/arm/pl050.c -diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am -index 147e6959c..a2aaf9f54 100644 ---- a/grub-core/Makefile.am -+++ b/grub-core/Makefile.am -@@ -240,6 +240,7 @@ KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/arm/system.h - endif - - if COND_arm_coreboot -+KERNEL_HEADER_FILES += $(top_builddir)/include/grub/keyboard_layouts.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/arm/system.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/video.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/video_fb.h diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 6ade6e950..6be6e7f61 100644 +index 6ade6e95057..6be6e7f61ee 100644 --- a/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def @@ -160,6 +160,9 @@ kernel = { @@ -38,7 +26,7 @@ index 6ade6e950..6be6e7f61 100644 terminfoinkernel = term/terminfo.c; terminfoinkernel = term/tparm.c; diff --git a/grub-core/kern/arm/coreboot/init.c b/grub-core/kern/arm/coreboot/init.c -index aec75c672..a06ccb72f 100644 +index aec75c672a2..a06ccb72f42 100644 --- a/grub-core/kern/arm/coreboot/init.c +++ b/grub-core/kern/arm/coreboot/init.c @@ -133,6 +133,7 @@ grub_machine_init (void) @@ -51,7 +39,7 @@ index aec75c672..a06ccb72f 100644 void diff --git a/grub-core/term/arm/pl050.c b/grub-core/term/arm/pl050.c new file mode 100644 -index 000000000..e4cda3056 +index 00000000000..e4cda305666 --- /dev/null +++ b/grub-core/term/arm/pl050.c @@ -0,0 +1,189 @@ @@ -244,6 +232,18 @@ index 000000000..e4cda3056 +{ + grub_fdtbus_register (&pl050); +} +diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am +index 147e6959c97..a2aaf9f54b0 100644 +--- a/grub-core/Makefile.am ++++ b/grub-core/Makefile.am +@@ -240,6 +240,7 @@ KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/arm/system.h + endif + + if COND_arm_coreboot ++KERNEL_HEADER_FILES += $(top_builddir)/include/grub/keyboard_layouts.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/arm/system.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/video.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/video_fb.h -- -2.14.3 +2.15.0 diff --git a/0025-arm_coreboot-Support-grub-mkstandalone.patch b/0025-arm_coreboot-Support-grub-mkstandalone.patch index 182c7229..ae99cb81 100644 --- a/0025-arm_coreboot-Support-grub-mkstandalone.patch +++ b/0025-arm_coreboot-Support-grub-mkstandalone.patch @@ -1,47 +1,16 @@ From 3edabad8fefb112cc4b2d43be6e97d43c909ceee Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:59:48 +0200 -Subject: [PATCH 025/198] arm_coreboot: Support grub-mkstandalone. +Subject: [PATCH 025/206] arm_coreboot: Support grub-mkstandalone. --- - include/grub/util/install.h | 6 +++++- util/grub-install-common.c | 12 ++++++++++-- util/grub-install.c | 7 +++++++ + include/grub/util/install.h | 6 +++++- 3 files changed, 22 insertions(+), 3 deletions(-) -diff --git a/include/grub/util/install.h b/include/grub/util/install.h -index 6abd288c3..5910b0c09 100644 ---- a/include/grub/util/install.h -+++ b/include/grub/util/install.h -@@ -29,6 +29,8 @@ - #define GRUB_INSTALL_OPTIONS \ - { "modules", GRUB_INSTALL_OPTIONS_MODULES, N_("MODULES"), \ - 0, N_("pre-load specified modules MODULES"), 1 }, \ -+ { "dtb", GRUB_INSTALL_OPTIONS_DTB, N_("FILE"), \ -+ 0, N_("embed a specific DTB"), 1 }, \ - { "install-modules", GRUB_INSTALL_OPTIONS_INSTALL_MODULES, \ - N_("MODULES"), 0, \ - N_("install only MODULES and their dependencies [default=all]"), 1 }, \ -@@ -99,6 +101,7 @@ enum grub_install_plat - GRUB_INSTALL_PLATFORM_I386_XEN, - GRUB_INSTALL_PLATFORM_X86_64_XEN, - GRUB_INSTALL_PLATFORM_ARM64_EFI, -+ GRUB_INSTALL_PLATFORM_ARM_COREBOOT, - GRUB_INSTALL_PLATFORM_MAX - }; - -@@ -115,7 +118,8 @@ enum grub_install_options { - GRUB_INSTALL_OPTIONS_LOCALE_DIRECTORY, - GRUB_INSTALL_OPTIONS_THEMES_DIRECTORY, - GRUB_INSTALL_OPTIONS_GRUB_MKIMAGE, -- GRUB_INSTALL_OPTIONS_INSTALL_CORE_COMPRESS -+ GRUB_INSTALL_OPTIONS_INSTALL_CORE_COMPRESS, -+ GRUB_INSTALL_OPTIONS_DTB - }; - - extern char *grub_install_source_directory; diff --git a/util/grub-install-common.c b/util/grub-install-common.c -index 8539ff348..9e3e358c9 100644 +index 8539ff3484d..9e3e358c96a 100644 --- a/util/grub-install-common.c +++ b/util/grub-install-common.c @@ -73,6 +73,7 @@ grub_install_help_filter (int key, const char *text, @@ -94,7 +63,7 @@ index 8539ff348..9e3e358c9 100644 char * diff --git a/util/grub-install.c b/util/grub-install.c -index 9074d3e9e..75e3e5ba6 100644 +index 9074d3e9e52..75e3e5ba6f0 100644 --- a/util/grub-install.c +++ b/util/grub-install.c @@ -486,6 +486,7 @@ have_bootdev (enum grub_install_plat pl) @@ -153,6 +122,37 @@ index 9074d3e9e..75e3e5ba6 100644 case GRUB_INSTALL_PLATFORM_I386_MULTIBOOT: case GRUB_INSTALL_PLATFORM_MIPSEL_ARC: case GRUB_INSTALL_PLATFORM_ARM_UBOOT: +diff --git a/include/grub/util/install.h b/include/grub/util/install.h +index 6abd288c313..5910b0c09bc 100644 +--- a/include/grub/util/install.h ++++ b/include/grub/util/install.h +@@ -29,6 +29,8 @@ + #define GRUB_INSTALL_OPTIONS \ + { "modules", GRUB_INSTALL_OPTIONS_MODULES, N_("MODULES"), \ + 0, N_("pre-load specified modules MODULES"), 1 }, \ ++ { "dtb", GRUB_INSTALL_OPTIONS_DTB, N_("FILE"), \ ++ 0, N_("embed a specific DTB"), 1 }, \ + { "install-modules", GRUB_INSTALL_OPTIONS_INSTALL_MODULES, \ + N_("MODULES"), 0, \ + N_("install only MODULES and their dependencies [default=all]"), 1 }, \ +@@ -99,6 +101,7 @@ enum grub_install_plat + GRUB_INSTALL_PLATFORM_I386_XEN, + GRUB_INSTALL_PLATFORM_X86_64_XEN, + GRUB_INSTALL_PLATFORM_ARM64_EFI, ++ GRUB_INSTALL_PLATFORM_ARM_COREBOOT, + GRUB_INSTALL_PLATFORM_MAX + }; + +@@ -115,7 +118,8 @@ enum grub_install_options { + GRUB_INSTALL_OPTIONS_LOCALE_DIRECTORY, + GRUB_INSTALL_OPTIONS_THEMES_DIRECTORY, + GRUB_INSTALL_OPTIONS_GRUB_MKIMAGE, +- GRUB_INSTALL_OPTIONS_INSTALL_CORE_COMPRESS ++ GRUB_INSTALL_OPTIONS_INSTALL_CORE_COMPRESS, ++ GRUB_INSTALL_OPTIONS_DTB + }; + + extern char *grub_install_source_directory; -- -2.14.3 +2.15.0 diff --git a/0026-arm_coreboot-Support-loading-linux-images.patch b/0026-arm_coreboot-Support-loading-linux-images.patch index a0783878..4a11ebdb 100644 --- a/0026-arm_coreboot-Support-loading-linux-images.patch +++ b/0026-arm_coreboot-Support-loading-linux-images.patch @@ -1,7 +1,7 @@ From 656c3b0d7fbe23f0e1ab561c8faa4ac4a37364d1 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 22:00:06 +0200 -Subject: [PATCH 026/198] arm_coreboot: Support loading linux images. +Subject: [PATCH 026/206] arm_coreboot: Support loading linux images. --- grub-core/loader/arm/linux.c | 132 ++++++++++++++++++++++--------------------- @@ -9,7 +9,7 @@ Subject: [PATCH 026/198] arm_coreboot: Support loading linux images. 2 files changed, 83 insertions(+), 65 deletions(-) diff --git a/grub-core/loader/arm/linux.c b/grub-core/loader/arm/linux.c -index 01374ee78..260cbf068 100644 +index 01374ee78fa..260cbf06861 100644 --- a/grub-core/loader/arm/linux.c +++ b/grub-core/loader/arm/linux.c @@ -31,8 +31,6 @@ @@ -271,7 +271,7 @@ index 01374ee78..260cbf068 100644 } -#endif diff --git a/include/grub/arm/linux.h b/include/grub/arm/linux.h -index a66caad13..f217f8281 100644 +index a66caad13db..f217f8281ad 100644 --- a/include/grub/arm/linux.h +++ b/include/grub/arm/linux.h @@ -46,6 +46,22 @@ grub_arm_firmware_get_machine_type (void) @@ -298,5 +298,5 @@ index a66caad13..f217f8281 100644 #define FDT_ADDITIONAL_ENTRIES_SIZE 0x300 -- -2.14.3 +2.15.0 diff --git a/0027-arm_coreboot-Support-DMA.patch b/0027-arm_coreboot-Support-DMA.patch index 4c40b93d..cdf961cb 100644 --- a/0027-arm_coreboot-Support-DMA.patch +++ b/0027-arm_coreboot-Support-DMA.patch @@ -1,36 +1,24 @@ From 265292f2b0da0eb414c409871ba0f94a99ec33c1 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 22:06:04 +0200 -Subject: [PATCH 027/198] arm_coreboot: Support DMA. +Subject: [PATCH 027/206] arm_coreboot: Support DMA. This is needed to support USB and some other busses. --- - grub-core/Makefile.am | 1 + grub-core/Makefile.core.def | 1 + grub-core/kern/arm/cache.c | 34 ++++++++++++++++++++++ - grub-core/kern/arm/cache_armv7.S | 12 ++++++++ grub-core/kern/arm/coreboot/dma.c | 59 +++++++++++++++++++++++++++++++++++++++ include/grub/cache.h | 7 ++--- include/grub/dma.h | 44 +++++++++++++++++++++++++++++ include/grub/pci.h | 22 +-------------- + grub-core/kern/arm/cache_armv7.S | 12 ++++++++ + grub-core/Makefile.am | 1 + 8 files changed, 155 insertions(+), 25 deletions(-) create mode 100644 grub-core/kern/arm/coreboot/dma.c create mode 100644 include/grub/dma.h -diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am -index a2aaf9f54..104513847 100644 ---- a/grub-core/Makefile.am -+++ b/grub-core/Makefile.am -@@ -248,6 +248,7 @@ KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/gfxterm.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/font.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/bufio.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/fdt.h -+KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/dma.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/arm/coreboot/kernel.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/fdtbus.h - endif diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 6be6e7f61..e4f253a20 100644 +index 6be6e7f61ee..e4f253a205e 100644 --- a/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def @@ -163,6 +163,7 @@ kernel = { @@ -42,7 +30,7 @@ index 6be6e7f61..e4f253a20 100644 terminfoinkernel = term/terminfo.c; terminfoinkernel = term/tparm.c; diff --git a/grub-core/kern/arm/cache.c b/grub-core/kern/arm/cache.c -index 34154ccdb..af1c4bbf5 100644 +index 34154ccdb0e..af1c4bbf544 100644 --- a/grub-core/kern/arm/cache.c +++ b/grub-core/kern/arm/cache.c @@ -29,6 +29,8 @@ void grub_arm_clean_dcache_range_armv6 (grub_addr_t start, grub_addr_t end, @@ -93,32 +81,9 @@ index 34154ccdb..af1c4bbf5 100644 void grub_arm_disable_caches_mmu (void) { -diff --git a/grub-core/kern/arm/cache_armv7.S b/grub-core/kern/arm/cache_armv7.S -index 1ef2754af..5ae76a3d8 100644 ---- a/grub-core/kern/arm/cache_armv7.S -+++ b/grub-core/kern/arm/cache_armv7.S -@@ -33,6 +33,18 @@ - # define ISB isb - #define ARMV7 1 - -+FUNCTION(grub_arm_clean_dcache_range_poc_armv7) -+ DSB -+ @ Clean data cache for range to point-of-coherence -+1: cmp r0, r1 -+ bge 2f -+ mcr p15, 0, r0, c7, c14, 1 @ DCCMVAC -+ add r0, r0, r2 @ Next line -+ b 1b -+2: DSB -+ bx lr -+ -+ - @ r0 - CLIDR - @ r1 - LoC - @ r2 - current level diff --git a/grub-core/kern/arm/coreboot/dma.c b/grub-core/kern/arm/coreboot/dma.c new file mode 100644 -index 000000000..2c2a62789 +index 00000000000..2c2a6278904 --- /dev/null +++ b/grub-core/kern/arm/coreboot/dma.c @@ -0,0 +1,59 @@ @@ -182,7 +147,7 @@ index 000000000..2c2a62789 +} + diff --git a/include/grub/cache.h b/include/grub/cache.h -index fc669dfd1..1c98ce270 100644 +index fc669dfd189..1c98ce270b6 100644 --- a/include/grub/cache.h +++ b/include/grub/cache.h @@ -34,15 +34,14 @@ void EXPORT_FUNC(grub_arch_sync_caches) (void *address, grub_size_t len); @@ -206,7 +171,7 @@ index fc669dfd1..1c98ce270 100644 diff --git a/include/grub/dma.h b/include/grub/dma.h new file mode 100644 -index 000000000..19992ebc1 +index 00000000000..19992ebc131 --- /dev/null +++ b/include/grub/dma.h @@ -0,0 +1,44 @@ @@ -255,7 +220,7 @@ index 000000000..19992ebc1 + +#endif diff --git a/include/grub/pci.h b/include/grub/pci.h -index 70d9a0513..262c89b74 100644 +index 70d9a05131b..262c89b748b 100644 --- a/include/grub/pci.h +++ b/include/grub/pci.h @@ -142,27 +142,7 @@ grub_pci_address_t EXPORT_FUNC(grub_pci_make_address) (grub_pci_device_t dev, @@ -287,6 +252,41 @@ index 70d9a0513..262c89b74 100644 grub_uint8_t EXPORT_FUNC (grub_pci_find_capability) (grub_pci_device_t dev, grub_uint8_t cap); +diff --git a/grub-core/kern/arm/cache_armv7.S b/grub-core/kern/arm/cache_armv7.S +index 1ef2754af8a..5ae76a3d819 100644 +--- a/grub-core/kern/arm/cache_armv7.S ++++ b/grub-core/kern/arm/cache_armv7.S +@@ -33,6 +33,18 @@ + # define ISB isb + #define ARMV7 1 + ++FUNCTION(grub_arm_clean_dcache_range_poc_armv7) ++ DSB ++ @ Clean data cache for range to point-of-coherence ++1: cmp r0, r1 ++ bge 2f ++ mcr p15, 0, r0, c7, c14, 1 @ DCCMVAC ++ add r0, r0, r2 @ Next line ++ b 1b ++2: DSB ++ bx lr ++ ++ + @ r0 - CLIDR + @ r1 - LoC + @ r2 - current level +diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am +index a2aaf9f54b0..10451384720 100644 +--- a/grub-core/Makefile.am ++++ b/grub-core/Makefile.am +@@ -248,6 +248,7 @@ KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/gfxterm.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/font.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/bufio.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/fdt.h ++KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/dma.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/arm/coreboot/kernel.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/fdtbus.h + endif -- -2.14.3 +2.15.0 diff --git a/0028-ehci-Split-core-code-from-PCI-part.patch b/0028-ehci-Split-core-code-from-PCI-part.patch index 074849ff..346ca6e7 100644 --- a/0028-ehci-Split-core-code-from-PCI-part.patch +++ b/0028-ehci-Split-core-code-from-PCI-part.patch @@ -1,7 +1,7 @@ From 058df7b5a9cc7aaa9872eaa916b715544a8f9840 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 22:10:26 +0200 -Subject: [PATCH 028/198] ehci: Split core code from PCI part. +Subject: [PATCH 028/206] ehci: Split core code from PCI part. On ARM often EHCI is present without PCI and just declared in device tree. So splitcore from PCI part. @@ -13,7 +13,7 @@ tree. So splitcore from PCI part. create mode 100644 grub-core/bus/usb/ehci-pci.c diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index e4f253a20..4745eb4d9 100644 +index e4f253a205e..4745eb4d93e 100644 --- a/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def @@ -593,6 +593,7 @@ module = { @@ -26,7 +26,7 @@ index e4f253a20..4745eb4d9 100644 diff --git a/grub-core/bus/usb/ehci-pci.c b/grub-core/bus/usb/ehci-pci.c new file mode 100644 -index 000000000..65e6cb574 +index 00000000000..65e6cb57438 --- /dev/null +++ b/grub-core/bus/usb/ehci-pci.c @@ -0,0 +1,208 @@ @@ -239,7 +239,7 @@ index 000000000..65e6cb574 + grub_pci_iterate (grub_ehci_pci_iter, NULL); +} diff --git a/grub-core/bus/usb/ehci.c b/grub-core/bus/usb/ehci.c -index 5f4297bb2..c772e7654 100644 +index 5f4297bb21e..c772e76546e 100644 --- a/grub-core/bus/usb/ehci.c +++ b/grub-core/bus/usb/ehci.c @@ -22,13 +22,10 @@ @@ -567,5 +567,5 @@ index 5f4297bb2..c772e7654 100644 grub_usb_controller_dev_register (&usb_controller); grub_boot_time ("EHCI driver registered"); -- -2.14.3 +2.15.0 diff --git a/0029-arm_coreboot-Support-EHCI.patch b/0029-arm_coreboot-Support-EHCI.patch index 6da884a9..b9c852d5 100644 --- a/0029-arm_coreboot-Support-EHCI.patch +++ b/0029-arm_coreboot-Support-EHCI.patch @@ -1,32 +1,19 @@ From d11ced1e1fb93676942e51618eb53c140f541890 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 22:14:28 +0200 -Subject: [PATCH 029/198] arm_coreboot: Support EHCI. +Subject: [PATCH 029/206] arm_coreboot: Support EHCI. --- - gentpl.py | 2 +- grub-core/Makefile.core.def | 2 ++ grub-core/bus/usb/ehci-fdt.c | 45 ++++++++++++++++++++++++++++++++++++++++++++ grub-core/bus/usb/usbtrans.c | 2 +- include/grub/usb.h | 4 ++++ + gentpl.py | 2 +- 5 files changed, 53 insertions(+), 2 deletions(-) create mode 100644 grub-core/bus/usb/ehci-fdt.c -diff --git a/gentpl.py b/gentpl.py -index ed268178b..da67965a4 100644 ---- a/gentpl.py -+++ b/gentpl.py -@@ -63,7 +63,7 @@ GROUPS["cmos"] = GROUPS["x86"][:] + ["mips_loongson", "mips_qemu_mips", - "sparc64_ieee1275", "powerpc_ieee1275"] - GROUPS["cmos"].remove("i386_efi"); GROUPS["cmos"].remove("x86_64_efi"); - GROUPS["pci"] = GROUPS["x86"] + ["mips_loongson"] --GROUPS["usb"] = GROUPS["pci"] -+GROUPS["usb"] = GROUPS["pci"] + ["arm_coreboot"] - - # If gfxterm is main output console integrate it into kernel - GROUPS["videoinkernel"] = ["mips_loongson", "i386_coreboot", "arm_coreboot" ] diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 4745eb4d9..5ce506597 100644 +index 4745eb4d93e..5ce506597a6 100644 --- a/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def @@ -593,8 +593,10 @@ module = { @@ -42,7 +29,7 @@ index 4745eb4d9..5ce506597 100644 module = { diff --git a/grub-core/bus/usb/ehci-fdt.c b/grub-core/bus/usb/ehci-fdt.c new file mode 100644 -index 000000000..29b50bdd5 +index 00000000000..29b50bdd5c3 --- /dev/null +++ b/grub-core/bus/usb/ehci-fdt.c @@ -0,0 +1,45 @@ @@ -92,7 +79,7 @@ index 000000000..29b50bdd5 + grub_fdtbus_register (&ehci); +} diff --git a/grub-core/bus/usb/usbtrans.c b/grub-core/bus/usb/usbtrans.c -index 9266e4931..85f081fff 100644 +index 9266e49311c..85f081fffb3 100644 --- a/grub-core/bus/usb/usbtrans.c +++ b/grub-core/bus/usb/usbtrans.c @@ -18,7 +18,7 @@ @@ -105,7 +92,7 @@ index 9266e4931..85f081fff 100644 #include #include diff --git a/include/grub/usb.h b/include/grub/usb.h -index 11d96481f..512ae1dd0 100644 +index 11d96481ff6..512ae1dd0e6 100644 --- a/include/grub/usb.h +++ b/include/grub/usb.h @@ -321,5 +321,9 @@ grub_usb_err_t @@ -118,6 +105,19 @@ index 11d96481f..512ae1dd0 100644 +grub_ehci_pci_scan (void); #endif /* GRUB_USB_H */ +diff --git a/gentpl.py b/gentpl.py +index ed268178b4d..da67965a41a 100644 +--- a/gentpl.py ++++ b/gentpl.py +@@ -63,7 +63,7 @@ GROUPS["cmos"] = GROUPS["x86"][:] + ["mips_loongson", "mips_qemu_mips", + "sparc64_ieee1275", "powerpc_ieee1275"] + GROUPS["cmos"].remove("i386_efi"); GROUPS["cmos"].remove("x86_64_efi"); + GROUPS["pci"] = GROUPS["x86"] + ["mips_loongson"] +-GROUPS["usb"] = GROUPS["pci"] ++GROUPS["usb"] = GROUPS["pci"] + ["arm_coreboot"] + + # If gfxterm is main output console integrate it into kernel + GROUPS["videoinkernel"] = ["mips_loongson", "i386_coreboot", "arm_coreboot" ] -- -2.14.3 +2.15.0 diff --git a/0030-Fix-bug-on-FDT-nodes-with-compatible-property.patch b/0030-Fix-bug-on-FDT-nodes-with-compatible-property.patch index 8a48760d..35a4dc1f 100644 --- a/0030-Fix-bug-on-FDT-nodes-with-compatible-property.patch +++ b/0030-Fix-bug-on-FDT-nodes-with-compatible-property.patch @@ -1,14 +1,14 @@ From 4f8471532d454b2db96434c28bf7105ed69e0f4d Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 08:39:40 +0200 -Subject: [PATCH 030/198] Fix bug on FDT nodes with compatible property +Subject: [PATCH 030/206] Fix bug on FDT nodes with compatible property --- grub-core/bus/fdt.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/grub-core/bus/fdt.c b/grub-core/bus/fdt.c -index 6fb077000..34d535457 100644 +index 6fb077000a5..34d53545732 100644 --- a/grub-core/bus/fdt.c +++ b/grub-core/bus/fdt.c @@ -43,6 +43,8 @@ is_compatible (struct grub_fdtbus_driver *driver, @@ -21,5 +21,5 @@ index 6fb077000..34d535457 100644 while (compatible < compatible_end) { -- -2.14.3 +2.15.0 diff --git a/0031-fdtbus-Add-ability-to-send-receive-messages-on-paren.patch b/0031-fdtbus-Add-ability-to-send-receive-messages-on-paren.patch index 3abaa3d0..e669ab49 100644 --- a/0031-fdtbus-Add-ability-to-send-receive-messages-on-paren.patch +++ b/0031-fdtbus-Add-ability-to-send-receive-messages-on-paren.patch @@ -1,7 +1,7 @@ From c4313c812dc14e82a774b580b5e34d40e7f3fae6 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 08:40:29 +0200 -Subject: [PATCH 031/198] fdtbus: Add ability to send/receive messages on +Subject: [PATCH 031/206] fdtbus: Add ability to send/receive messages on parent busses. --- @@ -10,7 +10,7 @@ Subject: [PATCH 031/198] fdtbus: Add ability to send/receive messages on 2 files changed, 34 insertions(+), 19 deletions(-) diff --git a/grub-core/bus/fdt.c b/grub-core/bus/fdt.c -index 34d535457..135da497b 100644 +index 34d53545732..135da497ba6 100644 --- a/grub-core/bus/fdt.c +++ b/grub-core/bus/fdt.c @@ -25,30 +25,22 @@ static grub_size_t root_address_cells, root_size_cells; @@ -87,7 +87,7 @@ index 34d535457..135da497b 100644 } } diff --git a/include/grub/fdtbus.h b/include/grub/fdtbus.h -index 985837e55..f519c40ec 100644 +index 985837e55f6..f519c40ec35 100644 --- a/include/grub/fdtbus.h +++ b/include/grub/fdtbus.h @@ -22,7 +22,13 @@ @@ -130,5 +130,5 @@ index 985837e55..f519c40ec 100644 /* dtb is assumed to be unfreeable and must remain valid for lifetime of GRUB. -- -2.14.3 +2.15.0 diff --git a/0032-rk3288_spi-Add-SPI-driver.patch b/0032-rk3288_spi-Add-SPI-driver.patch index 2414c85d..faa0d4c7 100644 --- a/0032-rk3288_spi-Add-SPI-driver.patch +++ b/0032-rk3288_spi-Add-SPI-driver.patch @@ -1,7 +1,7 @@ From b0b1b81a11f8bae8ab9e8edd87ac3f4f7949d03b Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 08:42:14 +0200 -Subject: [PATCH 032/198] rk3288_spi: Add SPI driver +Subject: [PATCH 032/206] rk3288_spi: Add SPI driver --- grub-core/Makefile.core.def | 1 + @@ -12,7 +12,7 @@ Subject: [PATCH 032/198] rk3288_spi: Add SPI driver create mode 100644 grub-core/bus/spi/rk3288_spi.c diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 5ce506597..d2239f171 100644 +index 5ce506597a6..d2239f1718d 100644 --- a/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def @@ -162,6 +162,7 @@ kernel = { @@ -25,7 +25,7 @@ index 5ce506597..d2239f171 100644 diff --git a/grub-core/bus/spi/rk3288_spi.c b/grub-core/bus/spi/rk3288_spi.c new file mode 100644 -index 000000000..aacb79ffe +index 00000000000..aacb79ffef1 --- /dev/null +++ b/grub-core/bus/spi/rk3288_spi.c @@ -0,0 +1,103 @@ @@ -133,7 +133,7 @@ index 000000000..aacb79ffe + grub_fdtbus_register (&spi); +} diff --git a/grub-core/kern/arm/coreboot/init.c b/grub-core/kern/arm/coreboot/init.c -index a06ccb72f..0126ff638 100644 +index a06ccb72f42..0126ff6381a 100644 --- a/grub-core/kern/arm/coreboot/init.c +++ b/grub-core/kern/arm/coreboot/init.c @@ -132,6 +132,8 @@ grub_machine_init (void) @@ -146,7 +146,7 @@ index a06ccb72f..0126ff638 100644 grub_pl050_init (); } diff --git a/include/grub/arm/coreboot/kernel.h b/include/grub/arm/coreboot/kernel.h -index 09cd7fe32..269505342 100644 +index 09cd7fe328c..26950534270 100644 --- a/include/grub/arm/coreboot/kernel.h +++ b/include/grub/arm/coreboot/kernel.h @@ -34,8 +34,8 @@ struct grub_fdt_board @@ -161,5 +161,5 @@ index 09cd7fe32..269505342 100644 #endif /* ! ASM_FILE */ -- -2.14.3 +2.15.0 diff --git a/0033-arm_coreboot-Add-Chromebook-keyboard-driver.patch b/0033-arm_coreboot-Add-Chromebook-keyboard-driver.patch index df17282a..3e0c23d4 100644 --- a/0033-arm_coreboot-Add-Chromebook-keyboard-driver.patch +++ b/0033-arm_coreboot-Add-Chromebook-keyboard-driver.patch @@ -1,7 +1,7 @@ From 5c3fd1b135bd73c8e3467b9b635b25ca4d360a19 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 08:47:34 +0200 -Subject: [PATCH 033/198] arm_coreboot: Add Chromebook keyboard driver. +Subject: [PATCH 033/206] arm_coreboot: Add Chromebook keyboard driver. --- grub-core/term/arm/cros.c | 125 +++++++++++++++++++++++ @@ -14,7 +14,7 @@ Subject: [PATCH 033/198] arm_coreboot: Add Chromebook keyboard driver. diff --git a/grub-core/term/arm/cros.c b/grub-core/term/arm/cros.c new file mode 100644 -index 000000000..1ff9f8ccf +index 00000000000..1ff9f8ccfb8 --- /dev/null +++ b/grub-core/term/arm/cros.c @@ -0,0 +1,125 @@ @@ -145,7 +145,7 @@ index 000000000..1ff9f8ccf +} diff --git a/grub-core/term/arm/cros_ec.c b/grub-core/term/arm/cros_ec.c new file mode 100644 -index 000000000..f4144818b +index 00000000000..f4144818b5b --- /dev/null +++ b/grub-core/term/arm/cros_ec.c @@ -0,0 +1,238 @@ @@ -389,7 +389,7 @@ index 000000000..f4144818b + diff --git a/include/grub/arm/cros_ec.h b/include/grub/arm/cros_ec.h new file mode 100644 -index 000000000..45a372572 +index 00000000000..45a372572a5 --- /dev/null +++ b/include/grub/arm/cros_ec.h @@ -0,0 +1,21 @@ @@ -415,5 +415,5 @@ index 000000000..45a372572 + +#endif -- -2.14.3 +2.15.0 diff --git a/0034-Missing-parts-of-previous-commit.patch b/0034-Missing-parts-of-previous-commit.patch index c13996df..620ae27a 100644 --- a/0034-Missing-parts-of-previous-commit.patch +++ b/0034-Missing-parts-of-previous-commit.patch @@ -1,7 +1,7 @@ From c6eaa982d12e3cfc5465dda5ea372774188b6b81 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 09:02:15 +0200 -Subject: [PATCH 034/198] Missing parts of previous commit +Subject: [PATCH 034/206] Missing parts of previous commit --- grub-core/Makefile.core.def | 2 ++ @@ -9,7 +9,7 @@ Subject: [PATCH 034/198] Missing parts of previous commit 2 files changed, 3 insertions(+) diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index d2239f171..1d86bd22e 100644 +index d2239f1718d..1d86bd22e04 100644 --- a/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def @@ -162,6 +162,8 @@ kernel = { @@ -22,7 +22,7 @@ index d2239f171..1d86bd22e 100644 arm_coreboot = commands/keylayouts.c; arm_coreboot = kern/arm/coreboot/dma.c; diff --git a/grub-core/kern/arm/coreboot/init.c b/grub-core/kern/arm/coreboot/init.c -index 0126ff638..8d8c5b829 100644 +index 0126ff6381a..8d8c5b8291e 100644 --- a/grub-core/kern/arm/coreboot/init.c +++ b/grub-core/kern/arm/coreboot/init.c @@ -135,6 +135,7 @@ grub_machine_init (void) @@ -34,5 +34,5 @@ index 0126ff638..8d8c5b829 100644 } -- -2.14.3 +2.15.0 diff --git a/0035-coreboot-Changed-cbmemc-to-support-updated-console-f.patch b/0035-coreboot-Changed-cbmemc-to-support-updated-console-f.patch index c2bc1685..41c8bd2d 100644 --- a/0035-coreboot-Changed-cbmemc-to-support-updated-console-f.patch +++ b/0035-coreboot-Changed-cbmemc-to-support-updated-console-f.patch @@ -1,7 +1,7 @@ From 70b555a52a065b2beb91e6fc97a6b358c931b303 Mon Sep 17 00:00:00 2001 From: Julius Werner Date: Tue, 9 May 2017 09:03:02 +0200 -Subject: [PATCH 035/198] coreboot: Changed cbmemc to support updated console +Subject: [PATCH 035/206] coreboot: Changed cbmemc to support updated console format from coreboot. --- @@ -9,7 +9,7 @@ Subject: [PATCH 035/198] coreboot: Changed cbmemc to support updated console 1 file changed, 35 insertions(+), 15 deletions(-) diff --git a/grub-core/term/i386/coreboot/cbmemc.c b/grub-core/term/i386/coreboot/cbmemc.c -index 129248c7f..cea9b8431 100644 +index 129248c7f47..cea9b84315b 100644 --- a/grub-core/term/i386/coreboot/cbmemc.c +++ b/grub-core/term/i386/coreboot/cbmemc.c @@ -29,11 +29,14 @@ @@ -94,5 +94,5 @@ index 129248c7f..cea9b8431 100644 } -- -2.14.3 +2.15.0 diff --git a/0036-at_keyboard-Fix-falco-chromebook-case.patch b/0036-at_keyboard-Fix-falco-chromebook-case.patch index 5251a4a2..4fae41d8 100644 --- a/0036-at_keyboard-Fix-falco-chromebook-case.patch +++ b/0036-at_keyboard-Fix-falco-chromebook-case.patch @@ -1,7 +1,7 @@ From c4b8bec5fee4e30a165fd14a188cf3ab8eccd095 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 14:27:52 +0200 -Subject: [PATCH 036/198] at_keyboard: Fix falco chromebook case. +Subject: [PATCH 036/206] at_keyboard: Fix falco chromebook case. EC is slow, so we need few delays for it to toggle the bits correctly. @@ -12,7 +12,7 @@ Command to enable clock and keyboard were not sent. 2 files changed, 16 insertions(+), 9 deletions(-) diff --git a/grub-core/term/at_keyboard.c b/grub-core/term/at_keyboard.c -index 3ab4e205f..f0a986eb1 100644 +index 3ab4e205f40..f0a986eb176 100644 --- a/grub-core/term/at_keyboard.c +++ b/grub-core/term/at_keyboard.c @@ -40,6 +40,8 @@ grub_keyboard_controller_init (void); @@ -69,7 +69,7 @@ index 3ab4e205f..f0a986eb1 100644 write_mode (2); ps2_state.current_set = query_mode (); diff --git a/include/grub/at_keyboard.h b/include/grub/at_keyboard.h -index b031523eb..bcb4d9ba7 100644 +index b031523eb7d..bcb4d9ba78f 100644 --- a/include/grub/at_keyboard.h +++ b/include/grub/at_keyboard.h @@ -23,9 +23,11 @@ @@ -85,5 +85,5 @@ index b031523eb..bcb4d9ba7 100644 #define KEYBOARD_ISMAKE(x) !((x) & 0x80) #define KEYBOARD_ISREADY(x) ((x) & 0x01) -- -2.14.3 +2.15.0 diff --git a/0037-sparc64-Close-cdboot-ihandle.patch b/0037-sparc64-Close-cdboot-ihandle.patch index f8d979b3..b1703ff1 100644 --- a/0037-sparc64-Close-cdboot-ihandle.patch +++ b/0037-sparc64-Close-cdboot-ihandle.patch @@ -1,7 +1,7 @@ From bd4e40aadded7093908d786d03b4acf60b7b1707 Mon Sep 17 00:00:00 2001 From: Eric Snowberg Date: Thu, 11 May 2017 18:42:23 -0700 -Subject: [PATCH 037/198] sparc64: Close cdboot ihandle +Subject: [PATCH 037/206] sparc64: Close cdboot ihandle The ihandle is left open with a cd-core image. This will cause a delay booting grub from a virtual cdrom in a LDOM. It will also cause problems @@ -16,7 +16,7 @@ Reviewed-by: Daniel Kiper 1 file changed, 10 insertions(+) diff --git a/grub-core/boot/sparc64/ieee1275/boot.S b/grub-core/boot/sparc64/ieee1275/boot.S -index 586efb401..9ea9b4e06 100644 +index 586efb4014e..9ea9b4e0662 100644 --- a/grub-core/boot/sparc64/ieee1275/boot.S +++ b/grub-core/boot/sparc64/ieee1275/boot.S @@ -69,6 +69,10 @@ prom_seek_name: .asciz "seek" @@ -44,5 +44,5 @@ index 586efb401..9ea9b4e06 100644 mov 512, %o3 #endif -- -2.14.3 +2.15.0 diff --git a/0038-arm64-xen_boot-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch b/0038-arm64-xen_boot-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch index 70ef5b38..9702794c 100644 --- a/0038-arm64-xen_boot-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch +++ b/0038-arm64-xen_boot-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch @@ -1,7 +1,7 @@ From ae5817f1dcbf0b99f7a849f56afe442165317840 Mon Sep 17 00:00:00 2001 From: Julien Grall Date: Fri, 19 Feb 2016 16:28:52 +0000 -Subject: [PATCH 038/198] arm64/xen_boot: Fix Xen boot using GRUB2 on AARCH64 +Subject: [PATCH 038/206] arm64/xen_boot: Fix Xen boot using GRUB2 on AARCH64 Xen is currently crashing because of malformed compatible property for the boot module. This is because the property string is not @@ -15,7 +15,7 @@ Reviewed-by: Daniel Kiper 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grub-core/loader/arm64/xen_boot.c b/grub-core/loader/arm64/xen_boot.c -index a914eb8e2..8ae43d7e8 100644 +index a914eb8e2df..8ae43d7e894 100644 --- a/grub-core/loader/arm64/xen_boot.c +++ b/grub-core/loader/arm64/xen_boot.c @@ -156,7 +156,7 @@ prepare_xen_module_params (struct xen_boot_binary *module, void *xen_boot_fdt) @@ -28,5 +28,5 @@ index a914eb8e2..8ae43d7e8 100644 return grub_error (GRUB_ERR_IO, "failed to update FDT"); -- -2.14.3 +2.15.0 diff --git a/0039-arm64-Add-nounzip-option-support-in-xen_module-comma.patch b/0039-arm64-Add-nounzip-option-support-in-xen_module-comma.patch index 0df0fd39..05bfcf04 100644 --- a/0039-arm64-Add-nounzip-option-support-in-xen_module-comma.patch +++ b/0039-arm64-Add-nounzip-option-support-in-xen_module-comma.patch @@ -1,7 +1,7 @@ From 8eed7be8a61c295df700e918744a984162378ca9 Mon Sep 17 00:00:00 2001 From: Fu Wei Date: Sun, 14 May 2017 15:43:45 +0800 -Subject: [PATCH 039/198] arm64: Add "--nounzip" option support in xen_module +Subject: [PATCH 039/206] arm64: Add "--nounzip" option support in xen_module command This patch adds "--nounzip" option support in order to @@ -18,7 +18,7 @@ Reviewed-by: Daniel Kiper 1 file changed, 16 insertions(+) diff --git a/grub-core/loader/arm64/xen_boot.c b/grub-core/loader/arm64/xen_boot.c -index 8ae43d7e8..27ede46ca 100644 +index 8ae43d7e894..27ede46cac5 100644 --- a/grub-core/loader/arm64/xen_boot.c +++ b/grub-core/loader/arm64/xen_boot.c @@ -379,6 +379,20 @@ grub_cmd_xen_module (grub_command_t cmd __attribute__((unused)), @@ -52,5 +52,5 @@ index 8ae43d7e8..27ede46ca 100644 if (!file) goto fail; -- -2.14.3 +2.15.0 diff --git a/0040-util-grub.d-20_linux_xen.in-Add-xen_boot-command-sup.patch b/0040-util-grub.d-20_linux_xen.in-Add-xen_boot-command-sup.patch index 0e6b2d70..eff0106d 100644 --- a/0040-util-grub.d-20_linux_xen.in-Add-xen_boot-command-sup.patch +++ b/0040-util-grub.d-20_linux_xen.in-Add-xen_boot-command-sup.patch @@ -1,7 +1,7 @@ From d33045ce7ffcb7c1e4a60c14d5ca64b36e3c5abe Mon Sep 17 00:00:00 2001 From: Fu Wei Date: Sun, 14 May 2017 15:43:46 +0800 -Subject: [PATCH 040/198] util/grub.d/20_linux_xen.in: Add xen_boot command +Subject: [PATCH 040/206] util/grub.d/20_linux_xen.in: Add xen_boot command support for aarch64 This patch adds the support of xen_boot command for aarch64: @@ -20,7 +20,7 @@ Reviewed-by: Daniel Kiper 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in -index c48af948d..c002fc9f9 100644 +index c48af948d6e..c002fc9f946 100644 --- a/util/grub.d/20_linux_xen.in +++ b/util/grub.d/20_linux_xen.in @@ -122,16 +122,16 @@ linux_entry () @@ -59,5 +59,5 @@ index c48af948d..c002fc9f9 100644 linux=`version_find_latest $list` gettext_printf "Found linux image: %s\n" "$linux" >&2 -- -2.14.3 +2.15.0 diff --git a/0041-arm64-Update-the-introduction-of-Xen-boot-commands-i.patch b/0041-arm64-Update-the-introduction-of-Xen-boot-commands-i.patch index b3658ed8..a43e3c09 100644 --- a/0041-arm64-Update-the-introduction-of-Xen-boot-commands-i.patch +++ b/0041-arm64-Update-the-introduction-of-Xen-boot-commands-i.patch @@ -1,7 +1,7 @@ From 26c2f306fd425d2c0348023b8dcb7eb40a01851a Mon Sep 17 00:00:00 2001 From: Fu Wei Date: Sun, 14 May 2017 15:43:47 +0800 -Subject: [PATCH 041/198] arm64: Update the introduction of Xen boot commands +Subject: [PATCH 041/206] arm64: Update the introduction of Xen boot commands in docs/grub.texi delete: xen_linux, xen_initrd, xen_xsm @@ -27,7 +27,7 @@ Reviewed-by: Daniel Kiper 1 file changed, 13 insertions(+), 25 deletions(-) diff --git a/docs/grub.texi b/docs/grub.texi -index e935af33e..a0c4b9e4e 100644 +index e935af33ea5..a0c4b9e4e8e 100644 --- a/docs/grub.texi +++ b/docs/grub.texi @@ -3873,11 +3873,9 @@ you forget a command, you can run the command @command{help} @@ -89,5 +89,5 @@ index e935af33e..a0c4b9e4e 100644 @section The list of networking commands -- -2.14.3 +2.15.0 diff --git a/0042-sparc64-Don-t-use-devspec-to-determine-the-OBP-path.patch b/0042-sparc64-Don-t-use-devspec-to-determine-the-OBP-path.patch index 4e7b1c67..24332093 100644 --- a/0042-sparc64-Don-t-use-devspec-to-determine-the-OBP-path.patch +++ b/0042-sparc64-Don-t-use-devspec-to-determine-the-OBP-path.patch @@ -1,7 +1,7 @@ From f8679cedff703b437171f4708d46adbfcff80a65 Mon Sep 17 00:00:00 2001 From: Eric Snowberg Date: Thu, 18 May 2017 17:10:22 -0600 -Subject: [PATCH 042/198] sparc64: Don't use devspec to determine the OBP path +Subject: [PATCH 042/206] sparc64: Don't use devspec to determine the OBP path Don't use devspec to determine the OBP path on SPARC hardware. Within all versions of Linux on SPARC, the devspec returns one of three values: @@ -28,7 +28,7 @@ Reviewed-by: Daniel Kiper 1 file changed, 3 insertions(+) diff --git a/grub-core/osdep/linux/ofpath.c b/grub-core/osdep/linux/ofpath.c -index a79682a5e..dce4e59d0 100644 +index a79682a5e31..dce4e59d081 100644 --- a/grub-core/osdep/linux/ofpath.c +++ b/grub-core/osdep/linux/ofpath.c @@ -120,6 +120,8 @@ find_obppath (const char *sysfs_path_orig) @@ -49,5 +49,5 @@ index a79682a5e..dce4e59d0 100644 if (fd < 0 || fstat (fd, &st) < 0) { -- -2.14.3 +2.15.0 diff --git a/0043-Allow-GRUB-to-mount-ext2-3-4-filesystems-that-have-t.patch b/0043-Allow-GRUB-to-mount-ext2-3-4-filesystems-that-have-t.patch index 14a8f428..7fc05dc9 100644 --- a/0043-Allow-GRUB-to-mount-ext2-3-4-filesystems-that-have-t.patch +++ b/0043-Allow-GRUB-to-mount-ext2-3-4-filesystems-that-have-t.patch @@ -1,7 +1,7 @@ From 734668238fcc0ef691a080839e04f33854fa133a Mon Sep 17 00:00:00 2001 From: Eric Biggers Date: Thu, 29 Jun 2017 13:27:49 +0000 -Subject: [PATCH 043/198] Allow GRUB to mount ext2/3/4 filesystems that have +Subject: [PATCH 043/206] Allow GRUB to mount ext2/3/4 filesystems that have the encryption feature. On such a filesystem, inodes may have EXT4_ENCRYPT_FLAG set. @@ -30,7 +30,7 @@ Signed-off-by: Eric Biggers 3 files changed, 33 insertions(+), 1 deletion(-) diff --git a/grub-core/fs/ext2.c b/grub-core/fs/ext2.c -index cdce63bcc..b8ad75a0f 100644 +index cdce63bcc9d..b8ad75a0ff7 100644 --- a/grub-core/fs/ext2.c +++ b/grub-core/fs/ext2.c @@ -102,6 +102,7 @@ GRUB_MOD_LICENSE ("GPLv3+"); @@ -99,7 +99,7 @@ index cdce63bcc..b8ad75a0f 100644 grub_free (fdiro); diff --git a/tests/ext234_test.in b/tests/ext234_test.in -index 892b99cbd..4f1eb527e 100644 +index 892b99cbdf6..4f1eb527eb2 100644 --- a/tests/ext234_test.in +++ b/tests/ext234_test.in @@ -30,3 +30,4 @@ fi @@ -108,7 +108,7 @@ index 892b99cbd..4f1eb527e 100644 "@builddir@/grub-fs-tester" ext4_metabg +"@builddir@/grub-fs-tester" ext4_encrypt diff --git a/tests/util/grub-fs-tester.in b/tests/util/grub-fs-tester.in -index 88cbe7365..fd7e0f14b 100644 +index 88cbe7365e9..fd7e0f14b68 100644 --- a/tests/util/grub-fs-tester.in +++ b/tests/util/grub-fs-tester.in @@ -156,6 +156,12 @@ for LOGSECSIZE in $(range "$MINLOGSECSIZE" "$MAXLOGSECSIZE" 1); do @@ -136,5 +136,5 @@ index 88cbe7365..fd7e0f14b 100644 MKE2FS_DEVICE_SECTSIZE=$SECSIZE "mkfs.$fs" -b $BLKSIZE -L "$FSLABEL" -q "${MOUNTDEVICE}" ;; xxfs) -- -2.14.3 +2.15.0 diff --git a/0044-ehci-Fix-compilation-for-amd64.patch b/0044-ehci-Fix-compilation-for-amd64.patch index 987f9d56..79dcd29f 100644 --- a/0044-ehci-Fix-compilation-for-amd64.patch +++ b/0044-ehci-Fix-compilation-for-amd64.patch @@ -1,14 +1,14 @@ From edb37fb30bbc8a3b6bec67911c7200e4eb071127 Mon Sep 17 00:00:00 2001 From: phcoder Date: Sun, 9 Jul 2017 20:58:31 +0200 -Subject: [PATCH 044/198] ehci: Fix compilation for amd64 +Subject: [PATCH 044/206] ehci: Fix compilation for amd64 --- grub-core/bus/usb/ehci.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/grub-core/bus/usb/ehci.c b/grub-core/bus/usb/ehci.c -index c772e7654..7b7061f53 100644 +index c772e76546e..7b7061f5335 100644 --- a/grub-core/bus/usb/ehci.c +++ b/grub-core/bus/usb/ehci.c @@ -504,8 +504,8 @@ grub_ehci_init_device (volatile void *regs) @@ -34,5 +34,5 @@ index c772e7654..7b7061f53 100644 grub_ehci_oper_read32 (e, GRUB_EHCI_COMMAND)); grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: STATUS: %08x\n", -- -2.14.3 +2.15.0 diff --git a/0045-cache-Fix-compilation-for-ppc-sparc-and-arm64.patch b/0045-cache-Fix-compilation-for-ppc-sparc-and-arm64.patch index f8debbdc..255bfc97 100644 --- a/0045-cache-Fix-compilation-for-ppc-sparc-and-arm64.patch +++ b/0045-cache-Fix-compilation-for-ppc-sparc-and-arm64.patch @@ -1,14 +1,14 @@ From d8901e3ba115d705c9c08ecedd201aca8b4867b8 Mon Sep 17 00:00:00 2001 From: phcoder Date: Sun, 9 Jul 2017 20:59:15 +0200 -Subject: [PATCH 045/198] cache: Fix compilation for ppc, sparc and arm64 +Subject: [PATCH 045/206] cache: Fix compilation for ppc, sparc and arm64 --- include/grub/cache.h | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/include/grub/cache.h b/include/grub/cache.h -index 1c98ce270..ccfa717e6 100644 +index 1c98ce270b6..ccfa717e669 100644 --- a/include/grub/cache.h +++ b/include/grub/cache.h @@ -34,7 +34,9 @@ void EXPORT_FUNC(grub_arch_sync_caches) (void *address, grub_size_t len); @@ -23,5 +23,5 @@ index 1c98ce270..ccfa717e6 100644 grub_arch_sync_dma_caches (volatile void *address __attribute__ ((unused)), grub_size_t len __attribute__ ((unused))) -- -2.14.3 +2.15.0 diff --git a/0046-ehci-Fix-compilation-on-i386.patch b/0046-ehci-Fix-compilation-on-i386.patch index 4cf29d2c..e8744630 100644 --- a/0046-ehci-Fix-compilation-on-i386.patch +++ b/0046-ehci-Fix-compilation-on-i386.patch @@ -1,14 +1,14 @@ From 284afab081ef7ed7db2c59151853aa3c92d988f2 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Sun, 9 Jul 2017 21:31:19 +0200 -Subject: [PATCH 046/198] ehci: Fix compilation on i386 +Subject: [PATCH 046/206] ehci: Fix compilation on i386 --- grub-core/bus/usb/ehci.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/grub-core/bus/usb/ehci.c b/grub-core/bus/usb/ehci.c -index 7b7061f53..d966fc210 100644 +index 7b7061f5335..d966fc21002 100644 --- a/grub-core/bus/usb/ehci.c +++ b/grub-core/bus/usb/ehci.c @@ -505,7 +505,7 @@ grub_ehci_init_device (volatile void *regs) @@ -30,5 +30,5 @@ index 7b7061f53..d966fc210 100644 grub_ehci_oper_read32 (e, GRUB_EHCI_COMMAND)); grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: STATUS: %08x\n", -- -2.14.3 +2.15.0 diff --git a/0047-crypto-Fix-use-after-free.patch b/0047-crypto-Fix-use-after-free.patch index a03d3dfb..1f75e306 100644 --- a/0047-crypto-Fix-use-after-free.patch +++ b/0047-crypto-Fix-use-after-free.patch @@ -1,7 +1,7 @@ From a0fe0c26aa8a1c0ad66d9527611bd726b849c623 Mon Sep 17 00:00:00 2001 From: AppChecker Date: Sun, 9 Jul 2017 21:57:35 +0200 -Subject: [PATCH 047/198] crypto: Fix use after free. +Subject: [PATCH 047/206] crypto: Fix use after free. Reported by: AppChecker Transformed to patch by: Satish Govindarajan @@ -10,7 +10,7 @@ Transformed to patch by: Satish Govindarajan 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grub-core/normal/crypto.c b/grub-core/normal/crypto.c -index 2bfd67c8e..e6d345f33 100644 +index 2bfd67c8ef3..e6d345f3345 100644 --- a/grub-core/normal/crypto.c +++ b/grub-core/normal/crypto.c @@ -147,8 +147,8 @@ read_crypto_list (const char *prefix) @@ -24,5 +24,5 @@ index 2bfd67c8e..e6d345f33 100644 } cur->next = crypto_specs; -- -2.14.3 +2.15.0 diff --git a/0048-arm-efi-Fix-compilation.patch b/0048-arm-efi-Fix-compilation.patch index 6d0725f2..293fae2d 100644 --- a/0048-arm-efi-Fix-compilation.patch +++ b/0048-arm-efi-Fix-compilation.patch @@ -1,14 +1,14 @@ From cb8b7e4e36bf32dccbbba8252aa44ad3ada4fbc1 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Sun, 9 Jul 2017 21:48:37 +0000 -Subject: [PATCH 048/198] arm-efi: Fix compilation +Subject: [PATCH 048/206] arm-efi: Fix compilation --- grub-core/loader/arm/linux.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/grub-core/loader/arm/linux.c b/grub-core/loader/arm/linux.c -index 260cbf068..e64c79a95 100644 +index 260cbf06861..e64c79a9577 100644 --- a/grub-core/loader/arm/linux.c +++ b/grub-core/loader/arm/linux.c @@ -252,12 +252,12 @@ linux_boot (void) @@ -37,5 +37,5 @@ index 260cbf068..e64c79a95 100644 } -- -2.14.3 +2.15.0 diff --git a/0049-fdt-silence-clang-warning.patch b/0049-fdt-silence-clang-warning.patch index dddfc1c3..b14fa02d 100644 --- a/0049-fdt-silence-clang-warning.patch +++ b/0049-fdt-silence-clang-warning.patch @@ -1,14 +1,14 @@ From 68d54b55f49249c5e0517bf189f0f3df7ee6a36f Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 10 Jul 2017 01:34:22 +0000 -Subject: [PATCH 049/198] fdt: silence clang warning. +Subject: [PATCH 049/206] fdt: silence clang warning. --- grub-core/lib/fdt.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/grub-core/lib/fdt.c b/grub-core/lib/fdt.c -index bdc630244..2705f2629 100644 +index bdc6302448d..2705f2629b9 100644 --- a/grub-core/lib/fdt.c +++ b/grub-core/lib/fdt.c @@ -309,7 +309,8 @@ advance_token (const void *fdt, const grub_uint32_t *token, const grub_uint32_t @@ -22,5 +22,5 @@ index bdc630244..2705f2629 100644 return 0; return token; -- -2.14.3 +2.15.0 diff --git a/0050-Fix-a-segfault-in-lsefi.patch b/0050-Fix-a-segfault-in-lsefi.patch index 5b5a7475..61bf11a2 100644 --- a/0050-Fix-a-segfault-in-lsefi.patch +++ b/0050-Fix-a-segfault-in-lsefi.patch @@ -1,7 +1,7 @@ From e8ab5a1a9e2889eb59d1fa494ba441a53698dcd2 Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Wed, 19 Jul 2017 15:47:41 -0400 -Subject: [PATCH 050/198] Fix a segfault in lsefi +Subject: [PATCH 050/206] Fix a segfault in lsefi when protocols_per_handle returns error, we can't use the pointers we passed to it, and that includes trusting num_protocols. @@ -13,7 +13,7 @@ Reviewed-by: Daniel Kiper 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/grub-core/commands/efi/lsefi.c b/grub-core/commands/efi/lsefi.c -index d901c3892..d1ce99af4 100644 +index d901c389263..d1ce99af438 100644 --- a/grub-core/commands/efi/lsefi.c +++ b/grub-core/commands/efi/lsefi.c @@ -109,8 +109,10 @@ grub_cmd_lsefi (grub_command_t cmd __attribute__ ((unused)), @@ -29,5 +29,5 @@ index d901c3892..d1ce99af4 100644 { for (k = 0; k < ARRAY_SIZE (known_protocols); k++) -- -2.14.3 +2.15.0 diff --git a/0051-zfs-remove-size_t-typedef-and-use-grub_size_t-instea.patch b/0051-zfs-remove-size_t-typedef-and-use-grub_size_t-instea.patch index a4386814..674da494 100644 --- a/0051-zfs-remove-size_t-typedef-and-use-grub_size_t-instea.patch +++ b/0051-zfs-remove-size_t-typedef-and-use-grub_size_t-instea.patch @@ -1,7 +1,7 @@ From fa42786264cef98c56e972b3bb6b8448000e1c70 Mon Sep 17 00:00:00 2001 From: Pete Batard Date: Thu, 3 Aug 2017 15:46:15 +0100 -Subject: [PATCH 051/198] zfs: remove size_t typedef and use grub_size_t +Subject: [PATCH 051/206] zfs: remove size_t typedef and use grub_size_t instead * Prevents some toolchains from issuing a warning on size_t redef. @@ -10,7 +10,7 @@ Subject: [PATCH 051/198] zfs: remove size_t typedef and use grub_size_t 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/grub-core/fs/zfs/zfs_lz4.c b/grub-core/fs/zfs/zfs_lz4.c -index 2f73449f0..5453822d0 100644 +index 2f73449f0d4..5453822d025 100644 --- a/grub-core/fs/zfs/zfs_lz4.c +++ b/grub-core/fs/zfs/zfs_lz4.c @@ -73,7 +73,6 @@ static int LZ4_uncompress_unknownOutputSize(const char *source, char *dest, @@ -55,5 +55,5 @@ index 2f73449f0..5453822d0 100644 const int dec2 = 0; #endif -- -2.14.3 +2.15.0 diff --git a/0052-udf-Fix-reading-label-lvd.ident-is-dstring.patch b/0052-udf-Fix-reading-label-lvd.ident-is-dstring.patch index f91d4000..48a6051e 100644 --- a/0052-udf-Fix-reading-label-lvd.ident-is-dstring.patch +++ b/0052-udf-Fix-reading-label-lvd.ident-is-dstring.patch @@ -1,7 +1,7 @@ From 76188809d5ca40c5285b0ab202b5edea7be3f04d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pali=20Roh=C3=A1r?= Date: Thu, 22 Jun 2017 14:33:17 +0200 -Subject: [PATCH 052/198] udf: Fix reading label, lvd.ident is dstring +Subject: [PATCH 052/206] udf: Fix reading label, lvd.ident is dstring UDF dstring has stored length in the last byte of buffer. Therefore last byte is not part of recorded characters. And empty string in dstring is @@ -11,7 +11,7 @@ encoded as empty buffer, including first byte (compression id). 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/grub-core/fs/udf.c b/grub-core/fs/udf.c -index 839bff889..258745633 100644 +index 839bff88963..2587456336e 100644 --- a/grub-core/fs/udf.c +++ b/grub-core/fs/udf.c @@ -860,6 +860,25 @@ read_string (const grub_uint8_t *raw, grub_size_t sz, char *outbuf) @@ -50,5 +50,5 @@ index 839bff889..258745633 100644 } else -- -2.14.3 +2.15.0 diff --git a/0053-grub-core-fs-udf.c-Add-support-for-UUID.patch b/0053-grub-core-fs-udf.c-Add-support-for-UUID.patch index 9b184a73..cc843bc1 100644 --- a/0053-grub-core-fs-udf.c-Add-support-for-UUID.patch +++ b/0053-grub-core-fs-udf.c-Add-support-for-UUID.patch @@ -1,7 +1,7 @@ From 435fa75e01ef40917239c7f775e505e86f70d202 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pali=20Roh=C3=A1r?= Date: Thu, 22 Jun 2017 14:42:16 +0200 -Subject: [PATCH 053/198] * grub-core/fs/udf.c: Add support for UUID +Subject: [PATCH 053/206] * grub-core/fs/udf.c: Add support for UUID Use same algorithm as in libblkid from util-linux v2.30. @@ -27,7 +27,7 @@ format.exe set only first 8 as hexadecimal and remaining as fixed 1 file changed, 120 insertions(+), 1 deletion(-) diff --git a/grub-core/fs/udf.c b/grub-core/fs/udf.c -index 258745633..00a16098b 100644 +index 2587456336e..00a16098b47 100644 --- a/grub-core/fs/udf.c +++ b/grub-core/fs/udf.c @@ -321,6 +321,32 @@ struct grub_udf_partmap @@ -187,5 +187,5 @@ index 258745633..00a16098b 100644 .reserved_first_sector = 1, .blocklist_install = 1, -- -2.14.3 +2.15.0 diff --git a/0054-mkrescue-Check-xorriso-presence-before-doing-anythin.patch b/0054-mkrescue-Check-xorriso-presence-before-doing-anythin.patch index 8da198c9..27b01815 100644 --- a/0054-mkrescue-Check-xorriso-presence-before-doing-anythin.patch +++ b/0054-mkrescue-Check-xorriso-presence-before-doing-anythin.patch @@ -1,7 +1,7 @@ From 9e962fd3c42081e2eef1f99a0eaab38fd04d2620 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 7 Aug 2017 18:05:17 +0200 -Subject: [PATCH 054/198] mkrescue: Check xorriso presence before doing +Subject: [PATCH 054/206] mkrescue: Check xorriso presence before doing anything else. mkrescue can't do anything useful without xorriso, so abort early if it's @@ -11,7 +11,7 @@ not available. 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/util/grub-mkrescue.c b/util/grub-mkrescue.c -index 238d4840e..38f154397 100644 +index 238d4840e2f..38f1543974e 100644 --- a/util/grub-mkrescue.c +++ b/util/grub-mkrescue.c @@ -323,6 +323,7 @@ check_xorriso (const char *val) @@ -46,5 +46,5 @@ index 238d4840e..38f154397 100644 grub_hostfs_init (); grub_host_init (); -- -2.14.3 +2.15.0 diff --git a/0055-Fail-if-xorriso-failed.patch b/0055-Fail-if-xorriso-failed.patch index e01cb136..dc9ef57e 100644 --- a/0055-Fail-if-xorriso-failed.patch +++ b/0055-Fail-if-xorriso-failed.patch @@ -1,7 +1,7 @@ From e66dc5d71ebfc9763420a76c274e6980d54641c3 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 7 Aug 2017 18:08:39 +0200 -Subject: [PATCH 055/198] Fail if xorriso failed. +Subject: [PATCH 055/206] Fail if xorriso failed. If xorriso failed most likely we didn't generate a meaningful image. --- @@ -9,7 +9,7 @@ If xorriso failed most likely we didn't generate a meaningful image. 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/util/grub-mkrescue.c b/util/grub-mkrescue.c -index 38f154397..9545945d8 100644 +index 38f1543974e..9545945d8f3 100644 --- a/util/grub-mkrescue.c +++ b/util/grub-mkrescue.c @@ -429,6 +429,7 @@ main (int argc, char *argv[]) @@ -40,5 +40,5 @@ index 38f154397..9545945d8 100644 grub_util_unlink_recursive (iso9660_dir); -- -2.14.3 +2.15.0 diff --git a/0056-efi-refactor-grub_efi_allocate_pages.patch b/0056-efi-refactor-grub_efi_allocate_pages.patch index b0480d8b..6323600c 100644 --- a/0056-efi-refactor-grub_efi_allocate_pages.patch +++ b/0056-efi-refactor-grub_efi_allocate_pages.patch @@ -1,7 +1,7 @@ From dd5fde2df83c5c03b7ba04d2cc5b7be96de8da7b Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:23 +0100 -Subject: [PATCH 056/198] efi: refactor grub_efi_allocate_pages +Subject: [PATCH 056/206] efi: refactor grub_efi_allocate_pages Expose a new function, grub_efi_allocate_pages_real(), making it possible to specify allocation type and memory type as supported by the UEFI @@ -20,7 +20,7 @@ Signed-off-by: Leif Lindholm 2 files changed, 29 insertions(+), 22 deletions(-) diff --git a/grub-core/kern/efi/mm.c b/grub-core/kern/efi/mm.c -index 20a47aaf5..d88bc5e43 100644 +index 20a47aaf5d0..d88bc5e4326 100644 --- a/grub-core/kern/efi/mm.c +++ b/grub-core/kern/efi/mm.c @@ -51,36 +51,20 @@ int grub_efi_is_finished = 0; @@ -100,7 +100,7 @@ index 20a47aaf5..d88bc5e43 100644 void grub_efi_free_pages (grub_efi_physical_address_t address, diff --git a/include/grub/efi/efi.h b/include/grub/efi/efi.h -index e9c601f34..b4cbebf38 100644 +index e9c601f3410..b4cbebf3828 100644 --- a/include/grub/efi/efi.h +++ b/include/grub/efi/efi.h @@ -38,6 +38,11 @@ void *EXPORT_FUNC(grub_efi_open_protocol) (grub_efi_handle_t handle, @@ -116,5 +116,5 @@ index e9c601f34..b4cbebf38 100644 grub_efi_uintn_t pages); void EXPORT_FUNC(grub_efi_free_pages) (grub_efi_physical_address_t address, -- -2.14.3 +2.15.0 diff --git a/0057-Remove-grub_efi_allocate_pages.patch b/0057-Remove-grub_efi_allocate_pages.patch index c4f87c28..d94124c2 100644 --- a/0057-Remove-grub_efi_allocate_pages.patch +++ b/0057-Remove-grub_efi_allocate_pages.patch @@ -1,7 +1,7 @@ From 4bc909bf89f5b4ff86c9e4e609d4fe0c11a66b0c Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 7 Aug 2017 18:33:29 +0200 -Subject: [PATCH 057/198] Remove grub_efi_allocate_pages. +Subject: [PATCH 057/206] Remove grub_efi_allocate_pages. grub_efi_allocate_pages Essentially does 2 unrelated things: * Allocate at fixed address. @@ -21,7 +21,7 @@ value which is wrong as 0 is a perfectly valid fixed adress to allocate at. 8 files changed, 32 insertions(+), 34 deletions(-) diff --git a/grub-core/kern/arm/efi/misc.c b/grub-core/kern/arm/efi/misc.c -index 7cd41842a..c95e8299d 100644 +index 7cd41842ae7..c95e8299d42 100644 --- a/grub-core/kern/arm/efi/misc.c +++ b/grub-core/kern/arm/efi/misc.c @@ -146,7 +146,7 @@ grub_efi_allocate_loader_memory (grub_uint32_t min_offset, grub_uint32_t size) @@ -43,7 +43,7 @@ index 7cd41842a..c95e8299d 100644 return GRUB_ERR_OUT_OF_MEMORY; diff --git a/grub-core/kern/efi/mm.c b/grub-core/kern/efi/mm.c -index d88bc5e43..b97b05fe8 100644 +index d88bc5e4326..b97b05fe825 100644 --- a/grub-core/kern/efi/mm.c +++ b/grub-core/kern/efi/mm.c @@ -83,20 +83,19 @@ grub_efi_allocate_pages_real (grub_efi_physical_address_t address, @@ -51,8 +51,16 @@ index d88bc5e43..b97b05fe8 100644 void * -grub_efi_allocate_pages (grub_efi_physical_address_t address, -- grub_efi_uintn_t pages) +grub_efi_allocate_any_pages (grub_efi_uintn_t pages) ++{ ++ return grub_efi_allocate_pages_real (GRUB_EFI_MAX_USABLE_ADDRESS, ++ pages, GRUB_EFI_ALLOCATE_MAX_ADDRESS, ++ GRUB_EFI_LOADER_DATA); ++} ++ ++void * ++grub_efi_allocate_fixed (grub_efi_physical_address_t address, + grub_efi_uintn_t pages) { - grub_efi_allocate_type_t alloctype; - @@ -63,16 +71,8 @@ index d88bc5e43..b97b05fe8 100644 - } - else - alloctype = GRUB_EFI_ALLOCATE_ADDRESS; -+ return grub_efi_allocate_pages_real (GRUB_EFI_MAX_USABLE_ADDRESS, -+ pages, GRUB_EFI_ALLOCATE_MAX_ADDRESS, -+ GRUB_EFI_LOADER_DATA); -+} - +- - return grub_efi_allocate_pages_real (address, pages, alloctype, -+void * -+grub_efi_allocate_fixed (grub_efi_physical_address_t address, -+ grub_efi_uintn_t pages) -+{ + return grub_efi_allocate_pages_real (address, pages, + GRUB_EFI_ALLOCATE_ADDRESS, GRUB_EFI_LOADER_DATA); @@ -107,7 +107,7 @@ index d88bc5e43..b97b05fe8 100644 grub_fatal ("cannot allocate memory"); diff --git a/grub-core/loader/arm64/fdt.c b/grub-core/loader/arm64/fdt.c -index db49cf649..368001696 100644 +index db49cf64991..368001696ee 100644 --- a/grub-core/loader/arm64/fdt.c +++ b/grub-core/loader/arm64/fdt.c @@ -50,7 +50,7 @@ grub_fdt_load (grub_size_t additional_size) @@ -120,7 +120,7 @@ index db49cf649..368001696 100644 return NULL; diff --git a/grub-core/loader/arm64/linux.c b/grub-core/loader/arm64/linux.c -index 9519d2e4d..ee3fcaa86 100644 +index 9519d2e4d3e..ee3fcaa86ae 100644 --- a/grub-core/loader/arm64/linux.c +++ b/grub-core/loader/arm64/linux.c @@ -148,8 +148,7 @@ grub_arm64_uefi_boot_image (grub_addr_t addr, grub_size_t size, char *args) @@ -152,7 +152,7 @@ index 9519d2e4d..ee3fcaa86 100644 (long long) GRUB_EFI_BYTES_TO_PAGES (kernel_size)); if (!kernel_addr) diff --git a/grub-core/loader/arm64/xen_boot.c b/grub-core/loader/arm64/xen_boot.c -index 27ede46ca..6c145a771 100644 +index 27ede46cac5..6c145a771ee 100644 --- a/grub-core/loader/arm64/xen_boot.c +++ b/grub-core/loader/arm64/xen_boot.c @@ -324,10 +324,9 @@ xen_boot_binary_load (struct xen_boot_binary *binary, grub_file_t file, @@ -170,7 +170,7 @@ index 27ede46ca..6c145a771 100644 { grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("out of memory")); diff --git a/grub-core/loader/ia64/efi/linux.c b/grub-core/loader/ia64/efi/linux.c -index efaa42ccd..750330d45 100644 +index efaa42ccdd2..750330d4572 100644 --- a/grub-core/loader/ia64/efi/linux.c +++ b/grub-core/loader/ia64/efi/linux.c @@ -252,7 +252,7 @@ allocate_pages (grub_uint64_t align, grub_uint64_t size_pages, @@ -219,7 +219,7 @@ index efaa42ccd..750330d45 100644 { grub_error (GRUB_ERR_OUT_OF_MEMORY, "cannot allocate pages"); diff --git a/include/grub/autoefi.h b/include/grub/autoefi.h -index b75591176..b7a252e07 100644 +index b75591176eb..b7a252e079e 100644 --- a/include/grub/autoefi.h +++ b/include/grub/autoefi.h @@ -55,7 +55,7 @@ static inline grub_err_t grub_autoefi_prepare (void) @@ -232,7 +232,7 @@ index b75591176..b7a252e07 100644 # define grub_autoefi_finish_boot_services grub_efiemu_finish_boot_services # define EFI_PRESENT 1 diff --git a/include/grub/efi/efi.h b/include/grub/efi/efi.h -index b4cbebf38..3fa082816 100644 +index b4cbebf3828..3fa082816ca 100644 --- a/include/grub/efi/efi.h +++ b/include/grub/efi/efi.h @@ -43,8 +43,10 @@ EXPORT_FUNC(grub_efi_allocate_pages_real) (grub_efi_physical_address_t address, @@ -248,5 +248,5 @@ index b4cbebf38..3fa082816 100644 grub_efi_uintn_t pages); int -- -2.14.3 +2.15.0 diff --git a/0058-efi-move-fdt-helper-library.patch b/0058-efi-move-fdt-helper-library.patch index 48f7ffb1..54933386 100644 --- a/0058-efi-move-fdt-helper-library.patch +++ b/0058-efi-move-fdt-helper-library.patch @@ -1,7 +1,7 @@ From 8c9465fac901caac6802d6872a1374518b001517 Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:24 +0100 -Subject: [PATCH 058/198] efi: move fdt helper library +Subject: [PATCH 058/206] efi: move fdt helper library There is nothing ARM64 (or even ARM) specific about the efi fdt helper library, which is used for locating or overriding a firmware-provided @@ -22,7 +22,7 @@ Signed-off-by: Leif Lindholm rename include/grub/{arm64 => efi}/fdtload.h (100%) diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 1d86bd22e..a65c27f7f 100644 +index 1d86bd22e04..a65c27f7ff2 100644 --- a/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def @@ -1707,7 +1707,7 @@ module = { @@ -35,7 +35,7 @@ index 1d86bd22e..a65c27f7f 100644 enable = fdt; }; diff --git a/grub-core/loader/arm64/linux.c b/grub-core/loader/arm64/linux.c -index ee3fcaa86..3e2f9b742 100644 +index ee3fcaa86ae..3e2f9b74296 100644 --- a/grub-core/loader/arm64/linux.c +++ b/grub-core/loader/arm64/linux.c @@ -26,8 +26,8 @@ @@ -49,7 +49,7 @@ index ee3fcaa86..3e2f9b742 100644 #include #include diff --git a/grub-core/loader/arm64/xen_boot.c b/grub-core/loader/arm64/xen_boot.c -index 6c145a771..c95d6c5a8 100644 +index 6c145a771ee..c95d6c5a868 100644 --- a/grub-core/loader/arm64/xen_boot.c +++ b/grub-core/loader/arm64/xen_boot.c @@ -27,9 +27,9 @@ @@ -67,7 +67,7 @@ diff --git a/grub-core/loader/arm64/fdt.c b/grub-core/loader/efi/fdt.c similarity index 99% rename from grub-core/loader/arm64/fdt.c rename to grub-core/loader/efi/fdt.c -index 368001696..091e9ddf4 100644 +index 368001696ee..091e9ddf43d 100644 --- a/grub-core/loader/arm64/fdt.c +++ b/grub-core/loader/efi/fdt.c @@ -18,12 +18,12 @@ @@ -89,5 +89,5 @@ similarity index 100% rename from include/grub/arm64/fdtload.h rename to include/grub/efi/fdtload.h -- -2.14.3 +2.15.0 diff --git a/0059-efi-Add-GRUB_PE32_MAGIC-definition.patch b/0059-efi-Add-GRUB_PE32_MAGIC-definition.patch index 5c119c23..bd04a4cc 100644 --- a/0059-efi-Add-GRUB_PE32_MAGIC-definition.patch +++ b/0059-efi-Add-GRUB_PE32_MAGIC-definition.patch @@ -1,7 +1,7 @@ From c5841ba7f0d14c193f20854e7e55b4f7ce9207d5 Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:25 +0100 -Subject: [PATCH 059/198] efi: Add GRUB_PE32_MAGIC definition +Subject: [PATCH 059/206] efi: Add GRUB_PE32_MAGIC definition Add a generic GRUB_PE32_MAGIC definition for the PE 'MZ' tag and delete the existing one in arm64/linux.h. @@ -16,7 +16,7 @@ Signed-off-by: Leif Lindholm 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/grub-core/loader/arm64/linux.c b/grub-core/loader/arm64/linux.c -index 3e2f9b742..a652ee908 100644 +index 3e2f9b74296..a652ee9088e 100644 --- a/grub-core/loader/arm64/linux.c +++ b/grub-core/loader/arm64/linux.c @@ -52,7 +52,7 @@ grub_arm64_uefi_check_image (struct grub_arm64_linux_kernel_header * lh) @@ -29,7 +29,7 @@ index 3e2f9b742..a652ee908 100644 N_("plain image kernel not supported - rebuild with CONFIG_(U)EFI_STUB enabled")); diff --git a/include/grub/arm64/linux.h b/include/grub/arm64/linux.h -index 1ea23696e..a981df5d1 100644 +index 1ea23696e7a..a981df5d15f 100644 --- a/include/grub/arm64/linux.h +++ b/include/grub/arm64/linux.h @@ -23,8 +23,6 @@ @@ -42,7 +42,7 @@ index 1ea23696e..a981df5d1 100644 struct grub_arm64_linux_kernel_header { diff --git a/include/grub/efi/pe32.h b/include/grub/efi/pe32.h -index f79c36c02..7d44732d2 100644 +index f79c36c026e..7d44732d2c3 100644 --- a/include/grub/efi/pe32.h +++ b/include/grub/efi/pe32.h @@ -45,6 +45,8 @@ @@ -55,5 +55,5 @@ index f79c36c02..7d44732d2 100644 But some examples (such as EFI drivers in the Intel Sample Implementation) use 32 bytes (0x20) instead, and it seems -- -2.14.3 +2.15.0 diff --git a/0060-arm64-linux-loader-improve-type-portability.patch b/0060-arm64-linux-loader-improve-type-portability.patch index 15055d75..967aa602 100644 --- a/0060-arm64-linux-loader-improve-type-portability.patch +++ b/0060-arm64-linux-loader-improve-type-portability.patch @@ -1,7 +1,7 @@ From 91212e0aa07e704a61e4540c18a27f149f5e51c3 Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:26 +0100 -Subject: [PATCH 060/198] arm64 linux loader: improve type portability +Subject: [PATCH 060/206] arm64 linux loader: improve type portability In preparation for turning this into a common loader for 32-bit and 64-bit platforms, ensure the code will compile cleanly for either. @@ -13,7 +13,7 @@ Signed-off-by: Leif Lindholm 2 files changed, 10 insertions(+), 13 deletions(-) diff --git a/grub-core/loader/arm64/linux.c b/grub-core/loader/arm64/linux.c -index a652ee908..746edd104 100644 +index a652ee9088e..746edd10415 100644 --- a/grub-core/loader/arm64/linux.c +++ b/grub-core/loader/arm64/linux.c @@ -57,8 +57,6 @@ grub_arm64_uefi_check_image (struct grub_arm64_linux_kernel_header * lh) @@ -74,7 +74,7 @@ index a652ee908..746edd104 100644 return grub_errno; diff --git a/grub-core/loader/efi/fdt.c b/grub-core/loader/efi/fdt.c -index 091e9ddf4..17212c38d 100644 +index 091e9ddf43d..17212c38d0b 100644 --- a/grub-core/loader/efi/fdt.c +++ b/grub-core/loader/efi/fdt.c @@ -32,12 +32,12 @@ void * @@ -111,5 +111,5 @@ index 091e9ddf4..17212c38d 100644 fdt = NULL; } -- -2.14.3 +2.15.0 diff --git a/0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch b/0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch index c57853c7..285e8604 100644 --- a/0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch +++ b/0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch @@ -1,7 +1,7 @@ From f826330683675f0deb55b58fd229afd7d65fb053 Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:32 +0100 -Subject: [PATCH 061/198] efi: change heap allocation type to +Subject: [PATCH 061/206] efi: change heap allocation type to GRUB_EFI_LOADER_CODE With upcoming changes to EDK2, allocations of type EFI_LOADER_DATA may @@ -17,7 +17,7 @@ Signed-off-by: Leif Lindholm 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/grub-core/kern/efi/mm.c b/grub-core/kern/efi/mm.c -index b97b05fe8..ac2a4c556 100644 +index b97b05fe825..ac2a4c556b8 100644 --- a/grub-core/kern/efi/mm.c +++ b/grub-core/kern/efi/mm.c @@ -403,7 +403,9 @@ add_memory_regions (grub_efi_memory_descriptor_t *memory_map, @@ -32,5 +32,5 @@ index b97b05fe8..ac2a4c556 100644 grub_fatal ("cannot allocate conventional memory %p with %u pages", (void *) ((grub_addr_t) start), -- -2.14.3 +2.15.0 diff --git a/0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch b/0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch index aa04fed1..e446af49 100644 --- a/0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch +++ b/0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch @@ -1,7 +1,7 @@ From bdd89d239cd9b4089630bfb5ec862aab8086dca2 Mon Sep 17 00:00:00 2001 From: Pete Batard Date: Mon, 7 Aug 2017 16:20:30 +0100 -Subject: [PATCH 062/198] core: use GRUB_TERM_ definitions when handling term +Subject: [PATCH 062/206] core: use GRUB_TERM_ definitions when handling term characters * Also use hex value for GRUB_TERM_ESC as '\e' is not in the C standard and is not understood by some compilers @@ -22,7 +22,7 @@ Subject: [PATCH 062/198] core: use GRUB_TERM_ definitions when handling term 13 files changed, 25 insertions(+), 24 deletions(-) diff --git a/grub-core/commands/keylayouts.c b/grub-core/commands/keylayouts.c -index f4b773020..f35d3a369 100644 +index f4b7730208a..f35d3a369ba 100644 --- a/grub-core/commands/keylayouts.c +++ b/grub-core/commands/keylayouts.c @@ -40,7 +40,7 @@ static struct grub_keyboard_layout layout_us = { @@ -46,7 +46,7 @@ index f4b773020..f35d3a369 100644 /* According to usage table 0x31 should be mapped to '/' but testing with real keyboard shows that 0x32 is remapped to '/'. diff --git a/grub-core/commands/menuentry.c b/grub-core/commands/menuentry.c -index 58d4dadf6..2c5363da7 100644 +index 58d4dadf6ee..2c5363da7f5 100644 --- a/grub-core/commands/menuentry.c +++ b/grub-core/commands/menuentry.c @@ -52,8 +52,8 @@ static struct @@ -61,7 +61,7 @@ index 58d4dadf6..2c5363da7 100644 {"insert", GRUB_TERM_KEY_INSERT}, {"f1", GRUB_TERM_KEY_F1}, diff --git a/grub-core/lib/crypto.c b/grub-core/lib/crypto.c -index 683a8aaa7..ca334d5a4 100644 +index 683a8aaa711..ca334d5a40e 100644 --- a/grub-core/lib/crypto.c +++ b/grub-core/lib/crypto.c @@ -462,7 +462,7 @@ grub_password_get (char buf[], unsigned buf_size) @@ -83,7 +83,7 @@ index 683a8aaa7..ca334d5a4 100644 #endif diff --git a/grub-core/normal/auth.c b/grub-core/normal/auth.c -index 7338f8245..6be678c0d 100644 +index 7338f8245e3..6be678c0de1 100644 --- a/grub-core/normal/auth.c +++ b/grub-core/normal/auth.c @@ -166,13 +166,13 @@ grub_username_get (char buf[], unsigned buf_size) @@ -112,7 +112,7 @@ index 7338f8245..6be678c0d 100644 grub_err_t diff --git a/grub-core/normal/cmdline.c b/grub-core/normal/cmdline.c -index a36180d75..c037d5050 100644 +index a36180d7530..c037d5050ed 100644 --- a/grub-core/normal/cmdline.c +++ b/grub-core/normal/cmdline.c @@ -626,12 +626,12 @@ grub_cmdline_get (const char *prompt_translated) @@ -131,7 +131,7 @@ index a36180d75..c037d5050 100644 { lpos--; diff --git a/grub-core/normal/menu.c b/grub-core/normal/menu.c -index 719e2fb1c..e7a83c2d6 100644 +index 719e2fb1c26..e7a83c2d6e2 100644 --- a/grub-core/normal/menu.c +++ b/grub-core/normal/menu.c @@ -763,7 +763,7 @@ run_menu (grub_menu_t menu, int nested, int *auto_boot) @@ -144,7 +144,7 @@ index 719e2fb1c..e7a83c2d6 100644 { menu_fini (); diff --git a/grub-core/normal/menu_entry.c b/grub-core/normal/menu_entry.c -index eeeee5580..cdf3590a3 100644 +index eeeee5580ab..cdf3590a364 100644 --- a/grub-core/normal/menu_entry.c +++ b/grub-core/normal/menu_entry.c @@ -1403,7 +1403,7 @@ grub_menu_entry_run (grub_menu_entry_t entry) @@ -157,7 +157,7 @@ index eeeee5580..cdf3590a3 100644 return; diff --git a/grub-core/term/efi/console.c b/grub-core/term/efi/console.c -index 7d31095b1..02f64ea74 100644 +index 7d31095b1ef..02f64ea7441 100644 --- a/grub-core/term/efi/console.c +++ b/grub-core/term/efi/console.c @@ -104,7 +104,7 @@ const unsigned efi_codes[] = @@ -170,7 +170,7 @@ index 7d31095b1..02f64ea74 100644 static int diff --git a/grub-core/term/i386/pc/console.c b/grub-core/term/i386/pc/console.c -index 28de46b57..f6142a2de 100644 +index 28de46b576a..f6142a2dea8 100644 --- a/grub-core/term/i386/pc/console.c +++ b/grub-core/term/i386/pc/console.c @@ -204,7 +204,7 @@ static int @@ -183,7 +183,7 @@ index 28de46b57..f6142a2de 100644 struct grub_bios_int_registers regs; unsigned i; diff --git a/grub-core/term/terminfo.c b/grub-core/term/terminfo.c -index f0d3e3deb..d317efa36 100644 +index f0d3e3debc6..d317efa368d 100644 --- a/grub-core/term/terminfo.c +++ b/grub-core/term/terminfo.c @@ -426,12 +426,12 @@ grub_terminfo_readkey (struct grub_term_input *term, int *keys, int *len, @@ -221,7 +221,7 @@ index f0d3e3deb..d317efa36 100644 && grub_get_time_ms () - data->last_key_time < 1000 && (data->last_key & GRUB_TERM_EXTENDED)) diff --git a/grub-core/tests/cmdline_cat_test.c b/grub-core/tests/cmdline_cat_test.c -index f1e21439e..baea7688a 100644 +index f1e21439e2b..baea7688a1d 100644 --- a/grub-core/tests/cmdline_cat_test.c +++ b/grub-core/tests/cmdline_cat_test.c @@ -103,7 +103,7 @@ cmdline_cat_test (void) @@ -234,7 +234,7 @@ index f1e21439e..baea7688a 100644 grub_video_checksum ("cmdline_cat"); diff --git a/grub-core/tests/gfxterm_menu.c b/grub-core/tests/gfxterm_menu.c -index 8f63dc27a..12836fb96 100644 +index 8f63dc27a35..12836fb9659 100644 --- a/grub-core/tests/gfxterm_menu.c +++ b/grub-core/tests/gfxterm_menu.c @@ -146,7 +146,7 @@ gfxterm_menu (void) @@ -247,7 +247,7 @@ index 8f63dc27a..12836fb96 100644 grub_video_checksum (tests[j].name); diff --git a/include/grub/term.h b/include/grub/term.h -index 5ffb38f69..8117e2a24 100644 +index 5ffb38f69aa..8117e2a24da 100644 --- a/include/grub/term.h +++ b/include/grub/term.h @@ -55,7 +55,8 @@ @@ -261,5 +261,5 @@ index 5ffb38f69..8117e2a24 100644 #define GRUB_TERM_BACKSPACE '\b' -- -2.14.3 +2.15.0 diff --git a/0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch b/0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch index 0b1f7599..fe6c90bc 100644 --- a/0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch +++ b/0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch @@ -1,7 +1,7 @@ From 1deebd85ef87cc581e995ce0a51dc0802ac9c367 Mon Sep 17 00:00:00 2001 From: Pete Batard Date: Mon, 7 Aug 2017 16:23:12 +0100 -Subject: [PATCH 063/198] io: add a GRUB_GZ prefix to gzio specific defines +Subject: [PATCH 063/206] io: add a GRUB_GZ prefix to gzio specific defines * This is done to avoid a conflict with a PACKED define in the EDK2 --- @@ -9,7 +9,7 @@ Subject: [PATCH 063/198] io: add a GRUB_GZ prefix to gzio specific defines 1 file changed, 20 insertions(+), 20 deletions(-) diff --git a/grub-core/io/gzio.c b/grub-core/io/gzio.c -index 0f2ea6bd8..a8e33033b 100644 +index 0f2ea6bd845..a8e33033bf8 100644 --- a/grub-core/io/gzio.c +++ b/grub-core/io/gzio.c @@ -140,24 +140,24 @@ eat_field (grub_file_t file, int len) @@ -81,5 +81,5 @@ index 0f2ea6bd8..a8e33033b 100644 /* TRANSLATORS: It's about given file having some strange format, not complete lack of gzip support. */ -- -2.14.3 +2.15.0 diff --git a/0064-info-in-builddir.patch b/0064-info-in-builddir.patch index aee3f39a..720cc3ad 100644 --- a/0064-info-in-builddir.patch +++ b/0064-info-in-builddir.patch @@ -1,14 +1,14 @@ From 5cf0df8753c19e83251c7244cafe38869a65060f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 8 Aug 2017 13:08:59 -0400 -Subject: [PATCH 064/198] info-in-builddir +Subject: [PATCH 064/206] info-in-builddir --- docs/Makefile.am | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/Makefile.am b/docs/Makefile.am -index 93eb39627..e396ba10f 100644 +index 93eb3962765..e396ba10f46 100644 --- a/docs/Makefile.am +++ b/docs/Makefile.am @@ -1,4 +1,4 @@ @@ -18,5 +18,5 @@ index 93eb39627..e396ba10f 100644 # AM_MAKEINFOFLAGS = --no-split --no-validate info_TEXINFOS = grub.texi grub-dev.texi -- -2.14.3 +2.15.0 diff --git a/0065-re-write-.gitignore.patch b/0065-re-write-.gitignore.patch index e9192f88..419fc927 100644 --- a/0065-re-write-.gitignore.patch +++ b/0065-re-write-.gitignore.patch @@ -1,7 +1,7 @@ From ff9da35fd789354cc1490b75893e765771808352 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 8 Aug 2017 12:48:04 -0400 -Subject: [PATCH 065/198] re-write .gitignore +Subject: [PATCH 065/206] re-write .gitignore --- .gitignore | 352 ++++++++++++-------------------------- @@ -24,7 +24,7 @@ Subject: [PATCH 065/198] re-write .gitignore create mode 100644 util/bash-completion.d/.gitignore diff --git a/.gitignore b/.gitignore -index eca17bec9..d95fac578 100644 +index eca17bec9b8..d95fac5789c 100644 --- a/.gitignore +++ b/.gitignore @@ -1,249 +1,121 @@ @@ -391,7 +391,7 @@ index eca17bec9..d95fac578 100644 +/stamp-h.in diff --git a/build-aux/.gitignore b/build-aux/.gitignore new file mode 100644 -index 000000000..f2f17aab9 +index 00000000000..f2f17aab9ff --- /dev/null +++ b/build-aux/.gitignore @@ -0,0 +1,9 @@ @@ -406,7 +406,7 @@ index 000000000..f2f17aab9 +/texinfo.tex diff --git a/docs/.gitignore b/docs/.gitignore new file mode 100644 -index 000000000..91aee84d3 +index 00000000000..91aee84d3e9 --- /dev/null +++ b/docs/.gitignore @@ -0,0 +1,4 @@ @@ -416,7 +416,7 @@ index 000000000..91aee84d3 +/version*.texi diff --git a/grub-core/.gitignore b/grub-core/.gitignore new file mode 100644 -index 000000000..c738ac6c6 +index 00000000000..c738ac6c649 --- /dev/null +++ b/grub-core/.gitignore @@ -0,0 +1,15 @@ @@ -437,7 +437,7 @@ index 000000000..c738ac6c6 +/trigtables.c diff --git a/grub-core/gnulib/.gitignore b/grub-core/gnulib/.gitignore new file mode 100644 -index 000000000..29e199c2d +index 00000000000..29e199c2db4 --- /dev/null +++ b/grub-core/gnulib/.gitignore @@ -0,0 +1,22 @@ @@ -465,14 +465,14 @@ index 000000000..29e199c2d +/wctype.h diff --git a/grub-core/lib/.gitignore b/grub-core/lib/.gitignore new file mode 100644 -index 000000000..681545914 +index 00000000000..68154591404 --- /dev/null +++ b/grub-core/lib/.gitignore @@ -0,0 +1 @@ +/libgcrypt-grub/ diff --git a/include/grub/gcrypt/.gitignore b/include/grub/gcrypt/.gitignore new file mode 100644 -index 000000000..8fbf56462 +index 00000000000..8fbf5646246 --- /dev/null +++ b/include/grub/gcrypt/.gitignore @@ -0,0 +1,2 @@ @@ -480,7 +480,7 @@ index 000000000..8fbf56462 +gcrypt.h diff --git a/po/.gitignore b/po/.gitignore new file mode 100644 -index 000000000..97b679c31 +index 00000000000..97b679c3138 --- /dev/null +++ b/po/.gitignore @@ -0,0 +1,4 @@ @@ -490,11 +490,11 @@ index 000000000..97b679c31 +/stamp-po diff --git a/util/bash-completion.d/.gitignore b/util/bash-completion.d/.gitignore new file mode 100644 -index 000000000..b7e1eb124 +index 00000000000..b7e1eb12428 --- /dev/null +++ b/util/bash-completion.d/.gitignore @@ -0,0 +1 @@ +grub -- -2.14.3 +2.15.0 diff --git a/0066-IBM-client-architecture-CAS-reboot-support.patch b/0066-IBM-client-architecture-CAS-reboot-support.patch index 4ca3e07f..56a631b4 100644 --- a/0066-IBM-client-architecture-CAS-reboot-support.patch +++ b/0066-IBM-client-architecture-CAS-reboot-support.patch @@ -1,7 +1,7 @@ From 34423216f8f3d7ce6086e2f1ee9869407e6a2221 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Thu, 20 Sep 2012 18:07:39 -0300 -Subject: [PATCH 066/198] IBM client architecture (CAS) reboot support +Subject: [PATCH 066/206] IBM client architecture (CAS) reboot support This is an implementation of IBM client architecture (CAS) reboot for GRUB. @@ -25,7 +25,7 @@ parameters 4 files changed, 90 insertions(+) diff --git a/grub-core/kern/ieee1275/openfw.c b/grub-core/kern/ieee1275/openfw.c -index ddb778340..6db8b9865 100644 +index ddb778340e4..6db8b986551 100644 --- a/grub-core/kern/ieee1275/openfw.c +++ b/grub-core/kern/ieee1275/openfw.c @@ -561,3 +561,65 @@ grub_ieee1275_canonicalise_devname (const char *path) @@ -95,7 +95,7 @@ index ddb778340..6db8b9865 100644 + return 0; +} diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c -index 78a70a8bf..249e19bc7 100644 +index 78a70a8bf47..249e19bc788 100644 --- a/grub-core/normal/main.c +++ b/grub-core/normal/main.c @@ -33,6 +33,9 @@ @@ -132,7 +132,7 @@ index 78a70a8bf..249e19bc7 100644 grub_errno = GRUB_ERR_NONE; } diff --git a/grub-core/script/execute.c b/grub-core/script/execute.c -index a8502d907..ab78ca87f 100644 +index a8502d90711..ab78ca87f90 100644 --- a/grub-core/script/execute.c +++ b/grub-core/script/execute.c @@ -27,6 +27,9 @@ @@ -157,7 +157,7 @@ index a8502d907..ab78ca87f 100644 { char *line; diff --git a/include/grub/ieee1275/ieee1275.h b/include/grub/ieee1275/ieee1275.h -index 8e4251303..9f26c69a2 100644 +index 8e425130327..9f26c69a2df 100644 --- a/include/grub/ieee1275/ieee1275.h +++ b/include/grub/ieee1275/ieee1275.h @@ -234,6 +234,8 @@ int EXPORT_FUNC(grub_ieee1275_devalias_next) (struct grub_ieee1275_devalias *ali @@ -170,5 +170,5 @@ index 8e4251303..9f26c69a2 100644 #define FOR_IEEE1275_DEVALIASES(alias) for (grub_ieee1275_devalias_init_iterator (&(alias)); grub_ieee1275_devalias_next (&(alias));) -- -2.14.3 +2.15.0 diff --git a/0067-for-ppc-reset-console-display-attr-when-clear-screen.patch b/0067-for-ppc-reset-console-display-attr-when-clear-screen.patch index 200f5b04..5e26ad56 100644 --- a/0067-for-ppc-reset-console-display-attr-when-clear-screen.patch +++ b/0067-for-ppc-reset-console-display-attr-when-clear-screen.patch @@ -1,7 +1,7 @@ From 070dc282d3cc6602571296e90945df9d4671aecb Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Wed, 24 Apr 2013 10:51:48 -0300 -Subject: [PATCH 067/198] for ppc, reset console display attr when clear screen +Subject: [PATCH 067/206] for ppc, reset console display attr when clear screen v2: Also use \x0c instead of a literal ^L to make future patches less awkward. @@ -15,7 +15,7 @@ Signed-off-by: Peter Jones 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grub-core/term/terminfo.c b/grub-core/term/terminfo.c -index d317efa36..29df35e6d 100644 +index d317efa368d..29df35e6d20 100644 --- a/grub-core/term/terminfo.c +++ b/grub-core/term/terminfo.c @@ -151,7 +151,7 @@ grub_terminfo_set_current (struct grub_term_output *term, @@ -28,5 +28,5 @@ index d317efa36..29df35e6d 100644 data->reverse_video_off = grub_strdup ("\e[m"); if (grub_strcmp ("ieee1275", str) == 0) -- -2.14.3 +2.15.0 diff --git a/0068-Disable-GRUB-video-support-for-IBM-power-machines.patch b/0068-Disable-GRUB-video-support-for-IBM-power-machines.patch index 7a17eef7..d28e94ac 100644 --- a/0068-Disable-GRUB-video-support-for-IBM-power-machines.patch +++ b/0068-Disable-GRUB-video-support-for-IBM-power-machines.patch @@ -1,7 +1,7 @@ From 4e31478fdf4cda470305c1bb2acb9b820e790757 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 11 Jun 2013 15:14:05 -0300 -Subject: [PATCH 068/198] Disable GRUB video support for IBM power machines +Subject: [PATCH 068/206] Disable GRUB video support for IBM power machines Should fix the problem in bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=973205 @@ -12,7 +12,7 @@ https://bugzilla.redhat.com/show_bug.cgi?id=973205 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/grub-core/kern/ieee1275/cmain.c b/grub-core/kern/ieee1275/cmain.c -index 3e12e6b24..3e14f5393 100644 +index 3e12e6b24e1..3e14f539368 100644 --- a/grub-core/kern/ieee1275/cmain.c +++ b/grub-core/kern/ieee1275/cmain.c @@ -90,7 +90,10 @@ grub_ieee1275_find_options (void) @@ -28,7 +28,7 @@ index 3e12e6b24..3e14f5393 100644 /* Old Macs have no key repeat, newer ones have fully working one. The ones inbetween when repeated key generates an escaoe sequence diff --git a/grub-core/video/ieee1275.c b/grub-core/video/ieee1275.c -index 17a3dbbb5..b8e4b3feb 100644 +index 17a3dbbb575..b8e4b3feb32 100644 --- a/grub-core/video/ieee1275.c +++ b/grub-core/video/ieee1275.c @@ -352,9 +352,12 @@ static struct grub_video_adapter grub_video_ieee1275_adapter = @@ -48,7 +48,7 @@ index 17a3dbbb5..b8e4b3feb 100644 GRUB_MOD_FINI(ieee1275_fb) diff --git a/include/grub/ieee1275/ieee1275.h b/include/grub/ieee1275/ieee1275.h -index 9f26c69a2..ab4f284c3 100644 +index 9f26c69a2df..ab4f284c341 100644 --- a/include/grub/ieee1275/ieee1275.h +++ b/include/grub/ieee1275/ieee1275.h @@ -146,6 +146,8 @@ enum grub_ieee1275_flag @@ -61,5 +61,5 @@ index 9f26c69a2..ab4f284c3 100644 extern int EXPORT_FUNC(grub_ieee1275_test_flag) (enum grub_ieee1275_flag flag); -- -2.14.3 +2.15.0 diff --git a/0069-Honor-a-symlink-when-generating-configuration-by-gru.patch b/0069-Honor-a-symlink-when-generating-configuration-by-gru.patch index eae9b9ca..15dd2f63 100644 --- a/0069-Honor-a-symlink-when-generating-configuration-by-gru.patch +++ b/0069-Honor-a-symlink-when-generating-configuration-by-gru.patch @@ -1,7 +1,7 @@ From 35535549324923af7fecf79cc739baba48246f21 Mon Sep 17 00:00:00 2001 From: Marcel Kolaja Date: Tue, 21 Jan 2014 10:57:08 -0500 -Subject: [PATCH 069/198] Honor a symlink when generating configuration by +Subject: [PATCH 069/206] Honor a symlink when generating configuration by grub2-mkconfig Honor a symlink when generating configuration by grub2-mkconfig, so that @@ -11,7 +11,7 @@ the -o option follows it rather than overwriting it with a regular file. 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in -index f8496d28b..3b070fd76 100644 +index f8496d28bdf..3b070fd7632 100644 --- a/util/grub-mkconfig.in +++ b/util/grub-mkconfig.in @@ -276,7 +276,8 @@ and /etc/grub.d/* files or please file a bug report with @@ -25,5 +25,5 @@ index f8496d28b..3b070fd76 100644 fi -- -2.14.3 +2.15.0 diff --git a/0070-Move-bash-completion-script-922997.patch b/0070-Move-bash-completion-script-922997.patch index f1428feb..ee0e467e 100644 --- a/0070-Move-bash-completion-script-922997.patch +++ b/0070-Move-bash-completion-script-922997.patch @@ -1,7 +1,7 @@ From 999bbc2002275efce284aed6e1e31b3ca351fa19 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 3 Apr 2013 14:35:34 -0400 -Subject: [PATCH 070/198] Move bash completion script (#922997) +Subject: [PATCH 070/206] Move bash completion script (#922997) Apparently these go in a new place now. --- @@ -10,7 +10,7 @@ Apparently these go in a new place now. 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac -index 571f7a0b5..9ae97f026 100644 +index 571f7a0b5aa..9ae97f026ab 100644 --- a/configure.ac +++ b/configure.ac @@ -288,6 +288,14 @@ AC_SUBST(grubdirname) @@ -39,7 +39,7 @@ index 571f7a0b5..9ae97f026 100644 if test "x$target_alias" != x && test "x$host_alias" != "x$target_alias"; then tmp_ac_tool_prefix="$ac_tool_prefix" diff --git a/util/bash-completion.d/Makefile.am b/util/bash-completion.d/Makefile.am -index 136287cf1..61108f054 100644 +index 136287cf1bf..61108f05429 100644 --- a/util/bash-completion.d/Makefile.am +++ b/util/bash-completion.d/Makefile.am @@ -6,7 +6,6 @@ EXTRA_DIST = $(bash_completion_source) @@ -51,5 +51,5 @@ index 136287cf1..61108f054 100644 $(bash_completion_script): $(bash_completion_source) $(top_builddir)/config.status -- -2.14.3 +2.15.0 diff --git a/0071-Update-to-minilzo-2.08.patch b/0071-Update-to-minilzo-2.08.patch index 19e0a5f2..ec5d258e 100644 --- a/0071-Update-to-minilzo-2.08.patch +++ b/0071-Update-to-minilzo-2.08.patch @@ -1,3367 +1,20 @@ From c0977f7fd42e16cc568af7ae667a2aeda85eb583 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Dec 2014 15:36:09 -0500 -Subject: [PATCH 071/198] Update to minilzo-2.08 +Subject: [PATCH 071/206] Update to minilzo-2.08 This fixes CVE-2014-4607 - lzo: lzo1x_decompress_safe() integer overflow Signed-off-by: Peter Jones --- + grub-core/lib/minilzo/minilzo.c | 3801 +++++++++++++++++++++++++++------------ grub-core/lib/minilzo/lzoconf.h | 216 ++- - grub-core/lib/minilzo/lzodefs.h | 2450 +++++++++++++++++------- - grub-core/lib/minilzo/minilzo.c | 3953 +++++++++++++++++++++++++++------------ + grub-core/lib/minilzo/lzodefs.h | 2320 ++++++++++++++++++------ grub-core/lib/minilzo/minilzo.h | 21 +- - 4 files changed, 4630 insertions(+), 2010 deletions(-) + 4 files changed, 4489 insertions(+), 1869 deletions(-) -diff --git a/grub-core/lib/minilzo/lzoconf.h b/grub-core/lib/minilzo/lzoconf.h -index 1d0fe14fc..61be29c5d 100644 ---- a/grub-core/lib/minilzo/lzoconf.h -+++ b/grub-core/lib/minilzo/lzoconf.h -@@ -2,22 +2,7 @@ - - This file is part of the LZO real-time data compression library. - -- Copyright (C) 2011 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2010 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2009 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2008 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2007 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2006 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2005 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2004 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2003 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2002 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2001 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2000 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 1999 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 1998 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 1997 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 1996 Markus Franz Xaver Johannes Oberhumer -+ Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer - All Rights Reserved. - - The LZO library is free software; you can redistribute it and/or -@@ -44,9 +29,9 @@ - #ifndef __LZOCONF_H_INCLUDED - #define __LZOCONF_H_INCLUDED 1 - --#define LZO_VERSION 0x2050 --#define LZO_VERSION_STRING "2.05" --#define LZO_VERSION_DATE "Apr 23 2011" -+#define LZO_VERSION 0x2080 -+#define LZO_VERSION_STRING "2.08" -+#define LZO_VERSION_DATE "Jun 29 2014" - - /* internal Autoconf configuration file - only used when building LZO */ - #if defined(LZO_HAVE_CONFIG_H) -@@ -63,7 +48,7 @@ - #if !defined(CHAR_BIT) || (CHAR_BIT != 8) - # error "invalid CHAR_BIT" - #endif --#if !defined(UCHAR_MAX) || !defined(UINT_MAX) || !defined(ULONG_MAX) -+#if !defined(UCHAR_MAX) || !defined(USHRT_MAX) || !defined(UINT_MAX) || !defined(ULONG_MAX) - # error "check your compiler installation" - #endif - #if (USHRT_MAX < 1) || (UINT_MAX < 1) || (ULONG_MAX < 1) -@@ -85,14 +70,6 @@ extern "C" { - // some core defines - ************************************************************************/ - --#if !defined(LZO_UINT32_C) --# if (UINT_MAX < LZO_0xffffffffL) --# define LZO_UINT32_C(c) c ## UL --# else --# define LZO_UINT32_C(c) ((c) + 0U) --# endif --#endif -- - /* memory checkers */ - #if !defined(__LZO_CHECKER) - # if defined(__BOUNDS_CHECKING_ON) -@@ -111,28 +88,31 @@ extern "C" { - // integral and pointer types - ************************************************************************/ - --/* lzo_uint should match size_t */ -+/* lzo_uint must match size_t */ - #if !defined(LZO_UINT_MAX) --# if defined(LZO_ABI_LLP64) /* WIN64 */ --# if defined(LZO_OS_WIN64) -+# if (LZO_ABI_LLP64) -+# if (LZO_OS_WIN64) - typedef unsigned __int64 lzo_uint; - typedef __int64 lzo_int; - # else -- typedef unsigned long long lzo_uint; -- typedef long long lzo_int; -+ typedef lzo_ullong_t lzo_uint; -+ typedef lzo_llong_t lzo_int; - # endif -+# define LZO_SIZEOF_LZO_UINT 8 - # define LZO_UINT_MAX 0xffffffffffffffffull - # define LZO_INT_MAX 9223372036854775807LL - # define LZO_INT_MIN (-1LL - LZO_INT_MAX) --# elif defined(LZO_ABI_IP32L64) /* MIPS R5900 */ -+# elif (LZO_ABI_IP32L64) /* MIPS R5900 */ - typedef unsigned int lzo_uint; - typedef int lzo_int; -+# define LZO_SIZEOF_LZO_UINT LZO_SIZEOF_INT - # define LZO_UINT_MAX UINT_MAX - # define LZO_INT_MAX INT_MAX - # define LZO_INT_MIN INT_MIN - # elif (ULONG_MAX >= LZO_0xffffffffL) - typedef unsigned long lzo_uint; - typedef long lzo_int; -+# define LZO_SIZEOF_LZO_UINT LZO_SIZEOF_LONG - # define LZO_UINT_MAX ULONG_MAX - # define LZO_INT_MAX LONG_MAX - # define LZO_INT_MIN LONG_MIN -@@ -141,63 +121,22 @@ extern "C" { - # endif - #endif - --/* Integral types with 32 bits or more. */ --#if !defined(LZO_UINT32_MAX) --# if (UINT_MAX >= LZO_0xffffffffL) -- typedef unsigned int lzo_uint32; -- typedef int lzo_int32; --# define LZO_UINT32_MAX UINT_MAX --# define LZO_INT32_MAX INT_MAX --# define LZO_INT32_MIN INT_MIN --# elif (ULONG_MAX >= LZO_0xffffffffL) -- typedef unsigned long lzo_uint32; -- typedef long lzo_int32; --# define LZO_UINT32_MAX ULONG_MAX --# define LZO_INT32_MAX LONG_MAX --# define LZO_INT32_MIN LONG_MIN --# else --# error "lzo_uint32" --# endif --#endif -- --/* Integral types with exactly 64 bits. */ --#if !defined(LZO_UINT64_MAX) --# if (LZO_UINT_MAX >= LZO_0xffffffffL) --# if ((((LZO_UINT_MAX) >> 31) >> 31) == 3) --# define lzo_uint64 lzo_uint --# define lzo_int64 lzo_int --# define LZO_UINT64_MAX LZO_UINT_MAX --# define LZO_INT64_MAX LZO_INT_MAX --# define LZO_INT64_MIN LZO_INT_MIN --# endif --# elif (ULONG_MAX >= LZO_0xffffffffL) --# if ((((ULONG_MAX) >> 31) >> 31) == 3) -- typedef unsigned long lzo_uint64; -- typedef long lzo_int64; --# define LZO_UINT64_MAX ULONG_MAX --# define LZO_INT64_MAX LONG_MAX --# define LZO_INT64_MIN LONG_MIN --# endif --# endif --#endif -- --/* The larger type of lzo_uint and lzo_uint32. */ --#if (LZO_UINT_MAX >= LZO_UINT32_MAX) -+/* The larger type of lzo_uint and lzo_uint32_t. */ -+#if (LZO_SIZEOF_LZO_UINT >= 4) - # define lzo_xint lzo_uint - #else --# define lzo_xint lzo_uint32 -+# define lzo_xint lzo_uint32_t - #endif - --/* Memory model that allows to access memory at offsets of lzo_uint. */ --#if !defined(__LZO_MMODEL) --# if (LZO_UINT_MAX <= UINT_MAX) --# define __LZO_MMODEL /*empty*/ --# elif defined(LZO_HAVE_MM_HUGE_PTR) --# define __LZO_MMODEL_HUGE 1 --# define __LZO_MMODEL __huge --# else --# define __LZO_MMODEL /*empty*/ --# endif -+typedef int lzo_bool; -+ -+/* sanity checks */ -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_uint) == LZO_SIZEOF_LZO_UINT) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_xint) >= sizeof(lzo_uint)) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_xint) >= sizeof(lzo_uint32_t)) -+ -+#ifndef __LZO_MMODEL -+#define __LZO_MMODEL /*empty*/ - #endif - - /* no typedef here because of const-pointer issues */ -@@ -206,21 +145,52 @@ extern "C" { - #define lzo_voidp void __LZO_MMODEL * - #define lzo_shortp short __LZO_MMODEL * - #define lzo_ushortp unsigned short __LZO_MMODEL * --#define lzo_uint32p lzo_uint32 __LZO_MMODEL * --#define lzo_int32p lzo_int32 __LZO_MMODEL * --#if defined(LZO_UINT64_MAX) --#define lzo_uint64p lzo_uint64 __LZO_MMODEL * --#define lzo_int64p lzo_int64 __LZO_MMODEL * --#endif --#define lzo_uintp lzo_uint __LZO_MMODEL * - #define lzo_intp lzo_int __LZO_MMODEL * -+#define lzo_uintp lzo_uint __LZO_MMODEL * - #define lzo_xintp lzo_xint __LZO_MMODEL * - #define lzo_voidpp lzo_voidp __LZO_MMODEL * - #define lzo_bytepp lzo_bytep __LZO_MMODEL * --/* deprecated - use 'lzo_bytep' instead of 'lzo_byte *' */ --#define lzo_byte unsigned char __LZO_MMODEL - --typedef int lzo_bool; -+#define lzo_int8_tp lzo_int8_t __LZO_MMODEL * -+#define lzo_uint8_tp lzo_uint8_t __LZO_MMODEL * -+#define lzo_int16_tp lzo_int16_t __LZO_MMODEL * -+#define lzo_uint16_tp lzo_uint16_t __LZO_MMODEL * -+#define lzo_int32_tp lzo_int32_t __LZO_MMODEL * -+#define lzo_uint32_tp lzo_uint32_t __LZO_MMODEL * -+#if defined(lzo_int64_t) -+#define lzo_int64_tp lzo_int64_t __LZO_MMODEL * -+#define lzo_uint64_tp lzo_uint64_t __LZO_MMODEL * -+#endif -+ -+/* Older LZO versions used to support ancient systems and memory models -+ * like 16-bit MSDOS with __huge pointers and Cray PVP, but these -+ * obsolete configurations are not supported any longer. -+ */ -+#if defined(__LZO_MMODEL_HUGE) -+#error "__LZO_MMODEL_HUGE is unsupported" -+#endif -+#if (LZO_MM_PVP) -+#error "LZO_MM_PVP is unsupported" -+#endif -+#if (LZO_SIZEOF_INT < 4) -+#error "LZO_SIZEOF_INT < 4 is unsupported" -+#endif -+#if (__LZO_UINTPTR_T_IS_POINTER) -+#error "__LZO_UINTPTR_T_IS_POINTER is unsupported" -+#endif -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(int) >= 4) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_uint) >= 4) -+/* Strange configurations where sizeof(lzo_uint) != sizeof(size_t) should -+ * work but have not received much testing lately, so be strict here. -+ */ -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_uint) == sizeof(size_t)) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_uint) == sizeof(ptrdiff_t)) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_uint) == sizeof(lzo_uintptr_t)) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(void *) == sizeof(lzo_uintptr_t)) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(char *) == sizeof(lzo_uintptr_t)) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(long *) == sizeof(lzo_uintptr_t)) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(void *) == sizeof(lzo_voidp)) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(char *) == sizeof(lzo_bytep)) - - - /*********************************************************************** -@@ -315,7 +285,7 @@ struct lzo_callback_t - /* a progress indicator callback function (set to 0 to disable) */ - lzo_progress_func_t nprogress; - -- /* NOTE: the first parameter "self" of the nalloc/nfree/nprogress -+ /* INFO: the first parameter "self" of the nalloc/nfree/nprogress - * callbacks points back to this struct, so you are free to store - * some extra info in the following variables. */ - lzo_voidp user1; -@@ -343,6 +313,9 @@ struct lzo_callback_t - #define LZO_E_INPUT_NOT_CONSUMED (-8) - #define LZO_E_NOT_YET_IMPLEMENTED (-9) /* [not used right now] */ - #define LZO_E_INVALID_ARGUMENT (-10) -+#define LZO_E_INVALID_ALIGNMENT (-11) /* pointer argument is not properly aligned */ -+#define LZO_E_OUTPUT_NOT_CONSUMED (-12) -+#define LZO_E_INTERNAL_ERROR (-99) - - - #ifndef lzo_sizeof_dict_t -@@ -356,7 +329,7 @@ struct lzo_callback_t - * compiler's view of various types are consistent. - */ - #define lzo_init() __lzo_init_v2(LZO_VERSION,(int)sizeof(short),(int)sizeof(int),\ -- (int)sizeof(long),(int)sizeof(lzo_uint32),(int)sizeof(lzo_uint),\ -+ (int)sizeof(long),(int)sizeof(lzo_uint32_t),(int)sizeof(lzo_uint),\ - (int)lzo_sizeof_dict_t,(int)sizeof(char *),(int)sizeof(lzo_voidp),\ - (int)sizeof(lzo_callback_t)) - LZO_EXTERN(int) __lzo_init_v2(unsigned,int,int,int,int,int,int,int,int,int); -@@ -379,18 +352,22 @@ LZO_EXTERN(lzo_voidp) - lzo_memset(lzo_voidp buf, int c, lzo_uint len); - - /* checksum functions */ --LZO_EXTERN(lzo_uint32) -- lzo_adler32(lzo_uint32 c, const lzo_bytep buf, lzo_uint len); --LZO_EXTERN(lzo_uint32) -- lzo_crc32(lzo_uint32 c, const lzo_bytep buf, lzo_uint len); --LZO_EXTERN(const lzo_uint32p) -+LZO_EXTERN(lzo_uint32_t) -+ lzo_adler32(lzo_uint32_t c, const lzo_bytep buf, lzo_uint len); -+LZO_EXTERN(lzo_uint32_t) -+ lzo_crc32(lzo_uint32_t c, const lzo_bytep buf, lzo_uint len); -+LZO_EXTERN(const lzo_uint32_tp) - lzo_get_crc32_table(void); - - /* misc. */ - LZO_EXTERN(int) _lzo_config_check(void); --typedef union { lzo_bytep p; lzo_uint u; } __lzo_pu_u; --typedef union { lzo_bytep p; lzo_uint32 u32; } __lzo_pu32_u; --typedef union { void *vp; lzo_bytep bp; lzo_uint u; lzo_uint32 u32; unsigned long l; } lzo_align_t; -+typedef union { -+ lzo_voidp a00; lzo_bytep a01; lzo_uint a02; lzo_xint a03; lzo_uintptr_t a04; -+ void *a05; unsigned char *a06; unsigned long a07; size_t a08; ptrdiff_t a09; -+#if defined(lzo_int64_t) -+ lzo_uint64_t a10; -+#endif -+} lzo_align_t; - - /* align a char pointer on a boundary that is a multiple of 'size' */ - LZO_EXTERN(unsigned) __lzo_align_gap(const lzo_voidp p, lzo_uint size); -@@ -399,9 +376,30 @@ LZO_EXTERN(unsigned) __lzo_align_gap(const lzo_voidp p, lzo_uint size); - - - /*********************************************************************** --// deprecated macros - only for backward compatibility with LZO v1.xx -+// deprecated macros - only for backward compatibility - ************************************************************************/ - -+/* deprecated - use 'lzo_bytep' instead of 'lzo_byte *' */ -+#define lzo_byte unsigned char -+/* deprecated type names */ -+#define lzo_int32 lzo_int32_t -+#define lzo_uint32 lzo_uint32_t -+#define lzo_int32p lzo_int32_t __LZO_MMODEL * -+#define lzo_uint32p lzo_uint32_t __LZO_MMODEL * -+#define LZO_INT32_MAX LZO_INT32_C(2147483647) -+#define LZO_UINT32_MAX LZO_UINT32_C(4294967295) -+#if defined(lzo_int64_t) -+#define lzo_int64 lzo_int64_t -+#define lzo_uint64 lzo_uint64_t -+#define lzo_int64p lzo_int64_t __LZO_MMODEL * -+#define lzo_uint64p lzo_uint64_t __LZO_MMODEL * -+#define LZO_INT64_MAX LZO_INT64_C(9223372036854775807) -+#define LZO_UINT64_MAX LZO_UINT64_C(18446744073709551615) -+#endif -+/* deprecated types */ -+typedef union { lzo_bytep a; lzo_uint b; } __lzo_pu_u; -+typedef union { lzo_bytep a; lzo_uint32_t b; } __lzo_pu32_u; -+ - #if defined(LZO_CFG_COMPAT) - - #define __LZOCONF_H 1 -@@ -443,4 +441,4 @@ LZO_EXTERN(unsigned) __lzo_align_gap(const lzo_voidp p, lzo_uint size); - #endif /* already included */ - - --/* vim:set ts=4 et: */ -+/* vim:set ts=4 sw=4 et: */ -diff --git a/grub-core/lib/minilzo/lzodefs.h b/grub-core/lib/minilzo/lzodefs.h -index 0e40e332a..f4ae9487e 100644 ---- a/grub-core/lib/minilzo/lzodefs.h -+++ b/grub-core/lib/minilzo/lzodefs.h -@@ -2,22 +2,7 @@ - - This file is part of the LZO real-time data compression library. - -- Copyright (C) 2011 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2010 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2009 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2008 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2007 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2006 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2005 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2004 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2003 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2002 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2001 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 2000 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 1999 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 1998 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 1997 Markus Franz Xaver Johannes Oberhumer -- Copyright (C) 1996 Markus Franz Xaver Johannes Oberhumer -+ Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer - All Rights Reserved. - - The LZO library is free software; you can redistribute it and/or -@@ -47,12 +32,6 @@ - #if defined(__CYGWIN32__) && !defined(__CYGWIN__) - # define __CYGWIN__ __CYGWIN32__ - #endif --#if defined(__IBMCPP__) && !defined(__IBMC__) --# define __IBMC__ __IBMCPP__ --#endif --#if defined(__ICL) && defined(_WIN32) && !defined(__INTEL_COMPILER) --# define __INTEL_COMPILER __ICL --#endif - #if 1 && defined(__INTERIX) && defined(__GNUC__) && !defined(_ALL_SOURCE) - # define _ALL_SOURCE 1 - #endif -@@ -61,19 +40,30 @@ - # define __LONG_MAX__ 9223372036854775807L - # endif - #endif --#if defined(__INTEL_COMPILER) && defined(__linux__) -+#if !defined(LZO_CFG_NO_DISABLE_WUNDEF) -+#if defined(__ARMCC_VERSION) -+# pragma diag_suppress 193 -+#elif defined(__clang__) && defined(__clang_minor__) -+# pragma clang diagnostic ignored "-Wundef" -+#elif defined(__INTEL_COMPILER) - # pragma warning(disable: 193) --#endif --#if defined(__KEIL__) && defined(__C166__) --# pragma warning disable = 322 --#elif 0 && defined(__C251__) -+#elif defined(__KEIL__) && defined(__C166__) - # pragma warning disable = 322 --#endif --#if defined(_MSC_VER) && !defined(__INTEL_COMPILER) && !defined(__MWERKS__) --# if (_MSC_VER >= 1300) -+#elif defined(__GNUC__) && defined(__GNUC_MINOR__) && !defined(__PATHSCALE__) -+# if ((__GNUC__-0) >= 5 || ((__GNUC__-0) == 4 && (__GNUC_MINOR__-0) >= 2)) -+# pragma GCC diagnostic ignored "-Wundef" -+# endif -+#elif defined(_MSC_VER) && !defined(__clang__) && !defined(__INTEL_COMPILER) && !defined(__MWERKS__) -+# if ((_MSC_VER-0) >= 1300) - # pragma warning(disable: 4668) - # endif - #endif -+#endif -+#if 0 && defined(__POCC__) && defined(_WIN32) -+# if (__POCC__ >= 400) -+# pragma warn(disable: 2216) -+# endif -+#endif - #if 0 && defined(__WATCOMC__) - # if (__WATCOMC__ >= 1050) && (__WATCOMC__ < 1060) - # pragma warning 203 9 -@@ -82,13 +72,29 @@ - #if defined(__BORLANDC__) && defined(__MSDOS__) && !defined(__FLAT__) - # pragma option -h - #endif -+#if !(LZO_CFG_NO_DISABLE_WCRTNONSTDC) -+#ifndef _CRT_NONSTDC_NO_DEPRECATE -+#define _CRT_NONSTDC_NO_DEPRECATE 1 -+#endif -+#ifndef _CRT_NONSTDC_NO_WARNINGS -+#define _CRT_NONSTDC_NO_WARNINGS 1 -+#endif -+#ifndef _CRT_SECURE_NO_DEPRECATE -+#define _CRT_SECURE_NO_DEPRECATE 1 -+#endif -+#ifndef _CRT_SECURE_NO_WARNINGS -+#define _CRT_SECURE_NO_WARNINGS 1 -+#endif -+#endif - #if 0 --#define LZO_0xffffL 0xfffful --#define LZO_0xffffffffL 0xfffffffful -+#define LZO_0xffffUL 0xfffful -+#define LZO_0xffffffffUL 0xfffffffful - #else --#define LZO_0xffffL 65535ul --#define LZO_0xffffffffL 4294967295ul -+#define LZO_0xffffUL 65535ul -+#define LZO_0xffffffffUL 4294967295ul - #endif -+#define LZO_0xffffL LZO_0xffffUL -+#define LZO_0xffffffffL LZO_0xffffffffUL - #if (LZO_0xffffL == LZO_0xffffffffL) - # error "your preprocessor is broken 1" - #endif -@@ -103,6 +109,13 @@ - # error "your preprocessor is broken 4" - #endif - #endif -+#if defined(__COUNTER__) -+# ifndef LZO_CFG_USE_COUNTER -+# define LZO_CFG_USE_COUNTER 1 -+# endif -+#else -+# undef LZO_CFG_USE_COUNTER -+#endif - #if (UINT_MAX == LZO_0xffffL) - #if defined(__ZTC__) && defined(__I86__) && !defined(__OS2__) - # if !defined(MSDOS) -@@ -233,14 +246,31 @@ - #endif - #define LZO_PP_STRINGIZE(x) #x - #define LZO_PP_MACRO_EXPAND(x) LZO_PP_STRINGIZE(x) -+#define LZO_PP_CONCAT0() /*empty*/ -+#define LZO_PP_CONCAT1(a) a - #define LZO_PP_CONCAT2(a,b) a ## b - #define LZO_PP_CONCAT3(a,b,c) a ## b ## c - #define LZO_PP_CONCAT4(a,b,c,d) a ## b ## c ## d - #define LZO_PP_CONCAT5(a,b,c,d,e) a ## b ## c ## d ## e -+#define LZO_PP_CONCAT6(a,b,c,d,e,f) a ## b ## c ## d ## e ## f -+#define LZO_PP_CONCAT7(a,b,c,d,e,f,g) a ## b ## c ## d ## e ## f ## g -+#define LZO_PP_ECONCAT0() LZO_PP_CONCAT0() -+#define LZO_PP_ECONCAT1(a) LZO_PP_CONCAT1(a) - #define LZO_PP_ECONCAT2(a,b) LZO_PP_CONCAT2(a,b) - #define LZO_PP_ECONCAT3(a,b,c) LZO_PP_CONCAT3(a,b,c) - #define LZO_PP_ECONCAT4(a,b,c,d) LZO_PP_CONCAT4(a,b,c,d) - #define LZO_PP_ECONCAT5(a,b,c,d,e) LZO_PP_CONCAT5(a,b,c,d,e) -+#define LZO_PP_ECONCAT6(a,b,c,d,e,f) LZO_PP_CONCAT6(a,b,c,d,e,f) -+#define LZO_PP_ECONCAT7(a,b,c,d,e,f,g) LZO_PP_CONCAT7(a,b,c,d,e,f,g) -+#define LZO_PP_EMPTY /*empty*/ -+#define LZO_PP_EMPTY0() /*empty*/ -+#define LZO_PP_EMPTY1(a) /*empty*/ -+#define LZO_PP_EMPTY2(a,b) /*empty*/ -+#define LZO_PP_EMPTY3(a,b,c) /*empty*/ -+#define LZO_PP_EMPTY4(a,b,c,d) /*empty*/ -+#define LZO_PP_EMPTY5(a,b,c,d,e) /*empty*/ -+#define LZO_PP_EMPTY6(a,b,c,d,e,f) /*empty*/ -+#define LZO_PP_EMPTY7(a,b,c,d,e,f,g) /*empty*/ - #if 1 - #define LZO_CPP_STRINGIZE(x) #x - #define LZO_CPP_MACRO_EXPAND(x) LZO_CPP_STRINGIZE(x) -@@ -248,12 +278,16 @@ - #define LZO_CPP_CONCAT3(a,b,c) a ## b ## c - #define LZO_CPP_CONCAT4(a,b,c,d) a ## b ## c ## d - #define LZO_CPP_CONCAT5(a,b,c,d,e) a ## b ## c ## d ## e -+#define LZO_CPP_CONCAT6(a,b,c,d,e,f) a ## b ## c ## d ## e ## f -+#define LZO_CPP_CONCAT7(a,b,c,d,e,f,g) a ## b ## c ## d ## e ## f ## g - #define LZO_CPP_ECONCAT2(a,b) LZO_CPP_CONCAT2(a,b) - #define LZO_CPP_ECONCAT3(a,b,c) LZO_CPP_CONCAT3(a,b,c) - #define LZO_CPP_ECONCAT4(a,b,c,d) LZO_CPP_CONCAT4(a,b,c,d) - #define LZO_CPP_ECONCAT5(a,b,c,d,e) LZO_CPP_CONCAT5(a,b,c,d,e) -+#define LZO_CPP_ECONCAT6(a,b,c,d,e,f) LZO_CPP_CONCAT6(a,b,c,d,e,f) -+#define LZO_CPP_ECONCAT7(a,b,c,d,e,f,g) LZO_CPP_CONCAT7(a,b,c,d,e,f,g) - #endif --#define __LZO_MASK_GEN(o,b) (((((o) << ((b)-1)) - (o)) << 1) + (o)) -+#define __LZO_MASK_GEN(o,b) (((((o) << ((b)-!!(b))) - (o)) << 1) + (o)*!!(b)) - #if 1 && defined(__cplusplus) - # if !defined(__STDC_CONSTANT_MACROS) - # define __STDC_CONSTANT_MACROS 1 -@@ -263,9 +297,13 @@ - # endif - #endif - #if defined(__cplusplus) --# define LZO_EXTERN_C extern "C" -+# define LZO_EXTERN_C extern "C" -+# define LZO_EXTERN_C_BEGIN extern "C" { -+# define LZO_EXTERN_C_END } - #else --# define LZO_EXTERN_C extern -+# define LZO_EXTERN_C extern -+# define LZO_EXTERN_C_BEGIN /*empty*/ -+# define LZO_EXTERN_C_END /*empty*/ - #endif - #if !defined(__LZO_OS_OVERRIDE) - #if (LZO_OS_FREESTANDING) -@@ -366,12 +404,12 @@ - #elif defined(__VMS) - # define LZO_OS_VMS 1 - # define LZO_INFO_OS "vms" --#elif ((defined(__mips__) && defined(__R5900__)) || defined(__MIPS_PSX2__)) -+#elif (defined(__mips__) && defined(__R5900__)) || defined(__MIPS_PSX2__) - # define LZO_OS_CONSOLE 1 - # define LZO_OS_CONSOLE_PS2 1 - # define LZO_INFO_OS "console" - # define LZO_INFO_OS_CONSOLE "ps2" --#elif (defined(__mips__) && defined(__psp__)) -+#elif defined(__mips__) && defined(__psp__) - # define LZO_OS_CONSOLE 1 - # define LZO_OS_CONSOLE_PSP 1 - # define LZO_INFO_OS "console" -@@ -399,9 +437,18 @@ - # elif defined(__linux__) || defined(__linux) || defined(__LINUX__) - # define LZO_OS_POSIX_LINUX 1 - # define LZO_INFO_OS_POSIX "linux" --# elif defined(__APPLE__) || defined(__MACOS__) --# define LZO_OS_POSIX_MACOSX 1 --# define LZO_INFO_OS_POSIX "macosx" -+# elif defined(__APPLE__) && defined(__MACH__) -+# if ((__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__-0) >= 20000) -+# define LZO_OS_POSIX_DARWIN 1040 -+# define LZO_INFO_OS_POSIX "darwin_iphone" -+# elif ((__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__-0) >= 1040) -+# define LZO_OS_POSIX_DARWIN __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ -+# define LZO_INFO_OS_POSIX "darwin" -+# else -+# define LZO_OS_POSIX_DARWIN 1 -+# define LZO_INFO_OS_POSIX "darwin" -+# endif -+# define LZO_OS_POSIX_MACOSX LZO_OS_POSIX_DARWIN - # elif defined(__minix__) || defined(__minix) - # define LZO_OS_POSIX_MINIX 1 - # define LZO_INFO_OS_POSIX "minix" -@@ -436,18 +483,18 @@ - #endif - #if (LZO_OS_DOS16 || LZO_OS_OS216 || LZO_OS_WIN16) - # if (UINT_MAX != LZO_0xffffL) --# error "this should not happen" -+# error "unexpected configuration - check your compiler defines" - # endif - # if (ULONG_MAX != LZO_0xffffffffL) --# error "this should not happen" -+# error "unexpected configuration - check your compiler defines" - # endif - #endif - #if (LZO_OS_DOS32 || LZO_OS_OS2 || LZO_OS_WIN32 || LZO_OS_WIN64) - # if (UINT_MAX != LZO_0xffffffffL) --# error "this should not happen" -+# error "unexpected configuration - check your compiler defines" - # endif - # if (ULONG_MAX != LZO_0xffffffffL) --# error "this should not happen" -+# error "unexpected configuration - check your compiler defines" - # endif - #endif - #if defined(CIL) && defined(_GNUCC) && defined(__GNUC__) -@@ -463,59 +510,65 @@ - # define LZO_INFO_CC "sdcc" - # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(SDCC) - #elif defined(__PATHSCALE__) && defined(__PATHCC_PATCHLEVEL__) --# define LZO_CC_PATHSCALE (__PATHCC__ * 0x10000L + __PATHCC_MINOR__ * 0x100 + __PATHCC_PATCHLEVEL__) -+# define LZO_CC_PATHSCALE (__PATHCC__ * 0x10000L + (__PATHCC_MINOR__-0) * 0x100 + (__PATHCC_PATCHLEVEL__-0)) - # define LZO_INFO_CC "Pathscale C" - # define LZO_INFO_CCVER __PATHSCALE__ --#elif defined(__INTEL_COMPILER) --# define LZO_CC_INTELC 1 -+# if defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__) -+# define LZO_CC_PATHSCALE_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0)) -+# endif -+#elif defined(__INTEL_COMPILER) && ((__INTEL_COMPILER-0) > 0) -+# define LZO_CC_INTELC __INTEL_COMPILER - # define LZO_INFO_CC "Intel C" - # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__INTEL_COMPILER) --# if defined(_WIN32) || defined(_WIN64) --# define LZO_CC_SYNTAX_MSC 1 --# else --# define LZO_CC_SYNTAX_GNUC 1 -+# if defined(_MSC_VER) && ((_MSC_VER-0) > 0) -+# define LZO_CC_INTELC_MSC _MSC_VER -+# elif defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__) -+# define LZO_CC_INTELC_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0)) - # endif - #elif defined(__POCC__) && defined(_WIN32) - # define LZO_CC_PELLESC 1 - # define LZO_INFO_CC "Pelles C" - # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__POCC__) --#elif defined(__clang__) && defined(__llvm__) && defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__) -+#elif defined(__ARMCC_VERSION) && defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__) - # if defined(__GNUC_PATCHLEVEL__) --# define LZO_CC_CLANG_GNUC (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100 + __GNUC_PATCHLEVEL__) -+# define LZO_CC_ARMCC_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0)) - # else --# define LZO_CC_CLANG_GNUC (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100) -+# define LZO_CC_ARMCC_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100) - # endif -+# define LZO_CC_ARMCC __ARMCC_VERSION -+# define LZO_INFO_CC "ARM C Compiler" -+# define LZO_INFO_CCVER __VERSION__ -+#elif defined(__clang__) && defined(__llvm__) && defined(__VERSION__) - # if defined(__clang_major__) && defined(__clang_minor__) && defined(__clang_patchlevel__) --# define LZO_CC_CLANG_CLANG (__clang_major__ * 0x10000L + __clang_minor__ * 0x100 + __clang_patchlevel__) -+# define LZO_CC_CLANG (__clang_major__ * 0x10000L + (__clang_minor__-0) * 0x100 + (__clang_patchlevel__-0)) - # else --# define LZO_CC_CLANG_CLANG 0x010000L -+# define LZO_CC_CLANG 0x010000L -+# endif -+# if defined(_MSC_VER) && ((_MSC_VER-0) > 0) -+# define LZO_CC_CLANG_MSC _MSC_VER -+# elif defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__) -+# define LZO_CC_CLANG_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0)) - # endif --# define LZO_CC_CLANG LZO_CC_CLANG_GNUC - # define LZO_INFO_CC "clang" - # define LZO_INFO_CCVER __VERSION__ - #elif defined(__llvm__) && defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__) - # if defined(__GNUC_PATCHLEVEL__) --# define LZO_CC_LLVM_GNUC (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100 + __GNUC_PATCHLEVEL__) -+# define LZO_CC_LLVM_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0)) - # else --# define LZO_CC_LLVM_GNUC (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100) -+# define LZO_CC_LLVM_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100) - # endif - # define LZO_CC_LLVM LZO_CC_LLVM_GNUC - # define LZO_INFO_CC "llvm-gcc" - # define LZO_INFO_CCVER __VERSION__ --#elif defined(__GNUC__) && defined(__VERSION__) --# if defined(__GNUC_MINOR__) && defined(__GNUC_PATCHLEVEL__) --# define LZO_CC_GNUC (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100 + __GNUC_PATCHLEVEL__) --# elif defined(__GNUC_MINOR__) --# define LZO_CC_GNUC (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100) --# else --# define LZO_CC_GNUC (__GNUC__ * 0x10000L) --# endif --# define LZO_INFO_CC "gcc" --# define LZO_INFO_CCVER __VERSION__ - #elif defined(__ACK__) && defined(_ACK) - # define LZO_CC_ACK 1 - # define LZO_INFO_CC "Amsterdam Compiler Kit C" - # define LZO_INFO_CCVER "unknown" -+#elif defined(__ARMCC_VERSION) && !defined(__GNUC__) -+# define LZO_CC_ARMCC __ARMCC_VERSION -+# define LZO_CC_ARMCC_ARMCC __ARMCC_VERSION -+# define LZO_INFO_CC "ARM C Compiler" -+# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__ARMCC_VERSION) - #elif defined(__AZTEC_C__) - # define LZO_CC_AZTECC 1 - # define LZO_INFO_CC "Aztec C" -@@ -540,10 +593,23 @@ - # define LZO_CC_DECC 1 - # define LZO_INFO_CC "DEC C" - # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__DECC) -+#elif (defined(__ghs) || defined(__ghs__)) && defined(__GHS_VERSION_NUMBER) && ((__GHS_VERSION_NUMBER-0) > 0) -+# define LZO_CC_GHS 1 -+# define LZO_INFO_CC "Green Hills C" -+# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__GHS_VERSION_NUMBER) -+# if defined(_MSC_VER) && ((_MSC_VER-0) > 0) -+# define LZO_CC_GHS_MSC _MSC_VER -+# elif defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__) -+# define LZO_CC_GHS_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0)) -+# endif - #elif defined(__HIGHC__) - # define LZO_CC_HIGHC 1 - # define LZO_INFO_CC "MetaWare High C" - # define LZO_INFO_CCVER "unknown" -+#elif defined(__HP_aCC) && ((__HP_aCC-0) > 0) -+# define LZO_CC_HPACC __HP_aCC -+# define LZO_INFO_CC "HP aCC" -+# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__HP_aCC) - #elif defined(__IAR_SYSTEMS_ICC__) - # define LZO_CC_IARC 1 - # define LZO_INFO_CC "IAR C" -@@ -552,10 +618,14 @@ - # else - # define LZO_INFO_CCVER "unknown" - # endif --#elif defined(__IBMC__) --# define LZO_CC_IBMC 1 -+#elif defined(__IBMC__) && ((__IBMC__-0) > 0) -+# define LZO_CC_IBMC __IBMC__ - # define LZO_INFO_CC "IBM C" - # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__IBMC__) -+#elif defined(__IBMCPP__) && ((__IBMCPP__-0) > 0) -+# define LZO_CC_IBMC __IBMCPP__ -+# define LZO_INFO_CC "IBM C" -+# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__IBMCPP__) - #elif defined(__KEIL__) && defined(__C166__) - # define LZO_CC_KEILC 1 - # define LZO_INFO_CC "Keil C" -@@ -572,16 +642,8 @@ - # else - # define LZO_INFO_CCVER "unknown" - # endif --#elif defined(_MSC_VER) --# define LZO_CC_MSC 1 --# define LZO_INFO_CC "Microsoft C" --# if defined(_MSC_FULL_VER) --# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(_MSC_VER) "." LZO_PP_MACRO_EXPAND(_MSC_FULL_VER) --# else --# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(_MSC_VER) --# endif --#elif defined(__MWERKS__) --# define LZO_CC_MWERKS 1 -+#elif defined(__MWERKS__) && ((__MWERKS__-0) > 0) -+# define LZO_CC_MWERKS __MWERKS__ - # define LZO_INFO_CC "Metrowerks C" - # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__MWERKS__) - #elif (defined(__NDPC__) || defined(__NDPX__)) && defined(__i386) -@@ -592,6 +654,15 @@ - # define LZO_CC_PACIFICC 1 - # define LZO_INFO_CC "Pacific C" - # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__PACIFIC__) -+#elif defined(__PGI) && defined(__PGIC__) && defined(__PGIC_MINOR__) -+# if defined(__PGIC_PATCHLEVEL__) -+# define LZO_CC_PGI (__PGIC__ * 0x10000L + (__PGIC_MINOR__-0) * 0x100 + (__PGIC_PATCHLEVEL__-0)) -+# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__PGIC__) "." LZO_PP_MACRO_EXPAND(__PGIC_MINOR__) "." LZO_PP_MACRO_EXPAND(__PGIC_PATCHLEVEL__) -+# else -+# define LZO_CC_PGI (__PGIC__ * 0x10000L + (__PGIC_MINOR__-0) * 0x100) -+# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__PGIC__) "." LZO_PP_MACRO_EXPAND(__PGIC_MINOR__) ".0" -+# endif -+# define LZO_INFO_CC "Portland Group PGI C" - #elif defined(__PGI) && (defined(__linux__) || defined(__WIN32__)) - # define LZO_CC_PGI 1 - # define LZO_INFO_CC "Portland Group PGI C" -@@ -606,7 +677,7 @@ - # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__SC__) - #elif defined(__SUNPRO_C) - # define LZO_INFO_CC "SunPro C" --# if ((__SUNPRO_C)+0 > 0) -+# if ((__SUNPRO_C-0) > 0) - # define LZO_CC_SUNPROC __SUNPRO_C - # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__SUNPRO_C) - # else -@@ -615,7 +686,7 @@ - # endif - #elif defined(__SUNPRO_CC) - # define LZO_INFO_CC "SunPro C" --# if ((__SUNPRO_CC)+0 > 0) -+# if ((__SUNPRO_CC-0) > 0) - # define LZO_CC_SUNPROC __SUNPRO_CC - # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__SUNPRO_CC) - # else -@@ -641,16 +712,46 @@ - #elif defined(__ZTC__) - # define LZO_CC_ZORTECHC 1 - # define LZO_INFO_CC "Zortech C" --# if (__ZTC__ == 0x310) -+# if ((__ZTC__-0) == 0x310) - # define LZO_INFO_CCVER "0x310" - # else - # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__ZTC__) - # endif -+#elif defined(__GNUC__) && defined(__VERSION__) -+# if defined(__GNUC_MINOR__) && defined(__GNUC_PATCHLEVEL__) -+# define LZO_CC_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0)) -+# elif defined(__GNUC_MINOR__) -+# define LZO_CC_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100) -+# else -+# define LZO_CC_GNUC (__GNUC__ * 0x10000L) -+# endif -+# define LZO_INFO_CC "gcc" -+# define LZO_INFO_CCVER __VERSION__ -+#elif defined(_MSC_VER) && ((_MSC_VER-0) > 0) -+# define LZO_CC_MSC _MSC_VER -+# define LZO_INFO_CC "Microsoft C" -+# if defined(_MSC_FULL_VER) -+# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(_MSC_VER) "." LZO_PP_MACRO_EXPAND(_MSC_FULL_VER) -+# else -+# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(_MSC_VER) -+# endif - #else - # define LZO_CC_UNKNOWN 1 - # define LZO_INFO_CC "unknown" - # define LZO_INFO_CCVER "unknown" - #endif -+#if (LZO_CC_GNUC) && defined(__OPEN64__) -+# if defined(__OPENCC__) && defined(__OPENCC_MINOR__) && defined(__OPENCC_PATCHLEVEL__) -+# define LZO_CC_OPEN64 (__OPENCC__ * 0x10000L + (__OPENCC_MINOR__-0) * 0x100 + (__OPENCC_PATCHLEVEL__-0)) -+# define LZO_CC_OPEN64_GNUC LZO_CC_GNUC -+# endif -+#endif -+#if (LZO_CC_GNUC) && defined(__PCC__) -+# if defined(__PCC__) && defined(__PCC_MINOR__) && defined(__PCC_MINORMINOR__) -+# define LZO_CC_PCC (__PCC__ * 0x10000L + (__PCC_MINOR__-0) * 0x100 + (__PCC_MINORMINOR__-0)) -+# define LZO_CC_PCC_GNUC LZO_CC_GNUC -+# endif -+#endif - #if 0 && (LZO_CC_MSC && (_MSC_VER >= 1200)) && !defined(_MSC_FULL_VER) - # error "LZO_CC_MSC: _MSC_FULL_VER is not defined" - #endif -@@ -668,8 +769,10 @@ - # define LZO_INFO_ARCH "generic" - #elif (LZO_OS_DOS16 || LZO_OS_OS216 || LZO_OS_WIN16) - # define LZO_ARCH_I086 1 --# define LZO_ARCH_IA16 1 - # define LZO_INFO_ARCH "i086" -+#elif defined(__aarch64__) -+# define LZO_ARCH_ARM64 1 -+# define LZO_INFO_ARCH "arm64" - #elif defined(__alpha__) || defined(__alpha) || defined(_M_ALPHA) - # define LZO_ARCH_ALPHA 1 - # define LZO_INFO_ARCH "alpha" -@@ -685,10 +788,10 @@ - # define LZO_INFO_ARCH "arm_thumb" - #elif defined(__IAR_SYSTEMS_ICC__) && defined(__ICCARM__) - # define LZO_ARCH_ARM 1 --# if defined(__CPU_MODE__) && ((__CPU_MODE__)+0 == 1) -+# if defined(__CPU_MODE__) && ((__CPU_MODE__-0) == 1) - # define LZO_ARCH_ARM_THUMB 1 - # define LZO_INFO_ARCH "arm_thumb" --# elif defined(__CPU_MODE__) && ((__CPU_MODE__)+0 == 2) -+# elif defined(__CPU_MODE__) && ((__CPU_MODE__-0) == 2) - # define LZO_INFO_ARCH "arm" - # else - # define LZO_INFO_ARCH "arm" -@@ -806,53 +909,147 @@ - # error "FIXME - missing define for CPU architecture" - #endif - #if 1 && (LZO_ARCH_UNKNOWN) && (LZO_OS_WIN32) --# error "FIXME - missing WIN32 define for CPU architecture" -+# error "FIXME - missing LZO_OS_WIN32 define for CPU architecture" - #endif - #if 1 && (LZO_ARCH_UNKNOWN) && (LZO_OS_WIN64) --# error "FIXME - missing WIN64 define for CPU architecture" -+# error "FIXME - missing LZO_OS_WIN64 define for CPU architecture" - #endif - #if (LZO_OS_OS216 || LZO_OS_WIN16) - # define LZO_ARCH_I086PM 1 --# define LZO_ARCH_IA16PM 1 - #elif 1 && (LZO_OS_DOS16 && defined(BLX286)) - # define LZO_ARCH_I086PM 1 --# define LZO_ARCH_IA16PM 1 - #elif 1 && (LZO_OS_DOS16 && defined(DOSX286)) - # define LZO_ARCH_I086PM 1 --# define LZO_ARCH_IA16PM 1 - #elif 1 && (LZO_OS_DOS16 && LZO_CC_BORLANDC && defined(__DPMI16__)) - # define LZO_ARCH_I086PM 1 --# define LZO_ARCH_IA16PM 1 - #endif --#if (LZO_ARCH_ARM_THUMB) && !(LZO_ARCH_ARM) --# error "this should not happen" -+#if (LZO_ARCH_AMD64 && !LZO_ARCH_X64) -+# define LZO_ARCH_X64 1 -+#elif (!LZO_ARCH_AMD64 && LZO_ARCH_X64) && defined(__LZO_ARCH_OVERRIDE) -+# define LZO_ARCH_AMD64 1 -+#endif -+#if (LZO_ARCH_ARM64 && !LZO_ARCH_AARCH64) -+# define LZO_ARCH_AARCH64 1 -+#elif (!LZO_ARCH_ARM64 && LZO_ARCH_AARCH64) && defined(__LZO_ARCH_OVERRIDE) -+# define LZO_ARCH_ARM64 1 -+#endif -+#if (LZO_ARCH_I386 && !LZO_ARCH_X86) -+# define LZO_ARCH_X86 1 -+#elif (!LZO_ARCH_I386 && LZO_ARCH_X86) && defined(__LZO_ARCH_OVERRIDE) -+# define LZO_ARCH_I386 1 -+#endif -+#if (LZO_ARCH_AMD64 && !LZO_ARCH_X64) || (!LZO_ARCH_AMD64 && LZO_ARCH_X64) -+# error "unexpected configuration - check your compiler defines" -+#endif -+#if (LZO_ARCH_ARM64 && !LZO_ARCH_AARCH64) || (!LZO_ARCH_ARM64 && LZO_ARCH_AARCH64) -+# error "unexpected configuration - check your compiler defines" -+#endif -+#if (LZO_ARCH_I386 && !LZO_ARCH_X86) || (!LZO_ARCH_I386 && LZO_ARCH_X86) -+# error "unexpected configuration - check your compiler defines" -+#endif -+#if (LZO_ARCH_ARM_THUMB && !LZO_ARCH_ARM) -+# error "unexpected configuration - check your compiler defines" -+#endif -+#if (LZO_ARCH_ARM_THUMB1 && !LZO_ARCH_ARM_THUMB) -+# error "unexpected configuration - check your compiler defines" -+#endif -+#if (LZO_ARCH_ARM_THUMB2 && !LZO_ARCH_ARM_THUMB) -+# error "unexpected configuration - check your compiler defines" - #endif --#if (LZO_ARCH_I086PM) && !(LZO_ARCH_I086) --# error "this should not happen" -+#if (LZO_ARCH_ARM_THUMB1 && LZO_ARCH_ARM_THUMB2) -+# error "unexpected configuration - check your compiler defines" -+#endif -+#if (LZO_ARCH_I086PM && !LZO_ARCH_I086) -+# error "unexpected configuration - check your compiler defines" - #endif - #if (LZO_ARCH_I086) - # if (UINT_MAX != LZO_0xffffL) --# error "this should not happen" -+# error "unexpected configuration - check your compiler defines" - # endif - # if (ULONG_MAX != LZO_0xffffffffL) --# error "this should not happen" -+# error "unexpected configuration - check your compiler defines" - # endif - #endif - #if (LZO_ARCH_I386) - # if (UINT_MAX != LZO_0xffffL) && defined(__i386_int16__) --# error "this should not happen" -+# error "unexpected configuration - check your compiler defines" - # endif - # if (UINT_MAX != LZO_0xffffffffL) && !defined(__i386_int16__) --# error "this should not happen" -+# error "unexpected configuration - check your compiler defines" - # endif - # if (ULONG_MAX != LZO_0xffffffffL) --# error "this should not happen" -+# error "unexpected configuration - check your compiler defines" -+# endif -+#endif -+#if (LZO_ARCH_AMD64 || LZO_ARCH_I386) -+# if !defined(LZO_TARGET_FEATURE_SSE2) -+# if defined(__SSE2__) -+# define LZO_TARGET_FEATURE_SSE2 1 -+# elif defined(_MSC_VER) && ((defined(_M_IX86_FP) && ((_M_IX86_FP)+0 >= 2)) || defined(_M_AMD64)) -+# define LZO_TARGET_FEATURE_SSE2 1 -+# endif -+# endif -+# if !defined(LZO_TARGET_FEATURE_SSSE3) -+# if (LZO_TARGET_FEATURE_SSE2) -+# if defined(__SSSE3__) -+# define LZO_TARGET_FEATURE_SSSE3 1 -+# elif defined(_MSC_VER) && defined(__AVX__) -+# define LZO_TARGET_FEATURE_SSSE3 1 -+# endif -+# endif -+# endif -+# if !defined(LZO_TARGET_FEATURE_SSE4_2) -+# if (LZO_TARGET_FEATURE_SSSE3) -+# if defined(__SSE4_2__) -+# define LZO_TARGET_FEATURE_SSE4_2 1 -+# endif -+# endif -+# endif -+# if !defined(LZO_TARGET_FEATURE_AVX) -+# if (LZO_TARGET_FEATURE_SSSE3) -+# if defined(__AVX__) -+# define LZO_TARGET_FEATURE_AVX 1 -+# endif -+# endif -+# endif -+# if !defined(LZO_TARGET_FEATURE_AVX2) -+# if (LZO_TARGET_FEATURE_AVX) -+# if defined(__AVX2__) -+# define LZO_TARGET_FEATURE_AVX2 1 -+# endif -+# endif -+# endif -+#endif -+#if (LZO_TARGET_FEATURE_SSSE3 && !(LZO_TARGET_FEATURE_SSE2)) -+# error "unexpected configuration - check your compiler defines" -+#endif -+#if (LZO_TARGET_FEATURE_SSE4_2 && !(LZO_TARGET_FEATURE_SSSE3)) -+# error "unexpected configuration - check your compiler defines" -+#endif -+#if (LZO_TARGET_FEATURE_AVX && !(LZO_TARGET_FEATURE_SSSE3)) -+# error "unexpected configuration - check your compiler defines" -+#endif -+#if (LZO_TARGET_FEATURE_AVX2 && !(LZO_TARGET_FEATURE_AVX)) -+# error "unexpected configuration - check your compiler defines" -+#endif -+#if (LZO_ARCH_ARM) -+# if !defined(LZO_TARGET_FEATURE_NEON) -+# if defined(__ARM_NEON__) -+# define LZO_TARGET_FEATURE_NEON 1 -+# endif -+# endif -+#elif (LZO_ARCH_ARM64) -+# if !defined(LZO_TARGET_FEATURE_NEON) -+# if 1 -+# define LZO_TARGET_FEATURE_NEON 1 -+# endif - # endif - #endif --#if !defined(__LZO_MM_OVERRIDE) -+#if 0 -+#elif !defined(__LZO_MM_OVERRIDE) - #if (LZO_ARCH_I086) - #if (UINT_MAX != LZO_0xffffL) --# error "this should not happen" -+# error "unexpected configuration - check your compiler defines" - #endif - #if defined(__TINY__) || defined(M_I86TM) || defined(_M_I86TM) - # define LZO_MM_TINY 1 -@@ -879,7 +1076,7 @@ - #elif (LZO_CC_ZORTECHC && defined(__VCM__)) - # define LZO_MM_LARGE 1 - #else --# error "unknown memory model" -+# error "unknown LZO_ARCH_I086 memory model" - #endif - #if (LZO_OS_DOS16 || LZO_OS_OS216 || LZO_OS_WIN16) - #define LZO_HAVE_MM_HUGE_PTR 1 -@@ -902,10 +1099,10 @@ - #endif - #if (LZO_ARCH_I086PM) && !(LZO_HAVE_MM_HUGE_PTR) - # if (LZO_OS_DOS16) --# error "this should not happen" -+# error "unexpected configuration - check your compiler defines" - # elif (LZO_CC_ZORTECHC) - # else --# error "this should not happen" -+# error "unexpected configuration - check your compiler defines" - # endif - #endif - #ifdef __cplusplus -@@ -937,7 +1134,7 @@ extern "C" { - #endif - #elif (LZO_ARCH_C166) - #if !defined(__MODEL__) --# error "FIXME - C166 __MODEL__" -+# error "FIXME - LZO_ARCH_C166 __MODEL__" - #elif ((__MODEL__) == 0) - # define LZO_MM_SMALL 1 - #elif ((__MODEL__) == 1) -@@ -951,11 +1148,11 @@ extern "C" { - #elif ((__MODEL__) == 5) - # define LZO_MM_XSMALL 1 - #else --# error "FIXME - C166 __MODEL__" -+# error "FIXME - LZO_ARCH_C166 __MODEL__" - #endif - #elif (LZO_ARCH_MCS251) - #if !defined(__MODEL__) --# error "FIXME - MCS251 __MODEL__" -+# error "FIXME - LZO_ARCH_MCS251 __MODEL__" - #elif ((__MODEL__) == 0) - # define LZO_MM_SMALL 1 - #elif ((__MODEL__) == 2) -@@ -967,11 +1164,11 @@ extern "C" { - #elif ((__MODEL__) == 5) - # define LZO_MM_XSMALL 1 - #else --# error "FIXME - MCS251 __MODEL__" -+# error "FIXME - LZO_ARCH_MCS251 __MODEL__" - #endif - #elif (LZO_ARCH_MCS51) - #if !defined(__MODEL__) --# error "FIXME - MCS51 __MODEL__" -+# error "FIXME - LZO_ARCH_MCS51 __MODEL__" - #elif ((__MODEL__) == 1) - # define LZO_MM_SMALL 1 - #elif ((__MODEL__) == 2) -@@ -983,7 +1180,7 @@ extern "C" { - #elif ((__MODEL__) == 5) - # define LZO_MM_XSMALL 1 - #else --# error "FIXME - MCS51 __MODEL__" -+# error "FIXME - LZO_ARCH_MCS51 __MODEL__" - #endif - #elif (LZO_ARCH_CRAY_PVP) - # define LZO_MM_PVP 1 -@@ -1010,462 +1207,270 @@ extern "C" { - # error "unknown memory model" - #endif - #endif --#if defined(SIZEOF_SHORT) --# define LZO_SIZEOF_SHORT (SIZEOF_SHORT) -+#if !defined(__lzo_gnuc_extension__) -+#if (LZO_CC_GNUC >= 0x020800ul) -+# define __lzo_gnuc_extension__ __extension__ -+#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) -+# define __lzo_gnuc_extension__ __extension__ -+#elif (LZO_CC_IBMC >= 600) -+# define __lzo_gnuc_extension__ __extension__ -+#else - #endif --#if defined(SIZEOF_INT) --# define LZO_SIZEOF_INT (SIZEOF_INT) - #endif --#if defined(SIZEOF_LONG) --# define LZO_SIZEOF_LONG (SIZEOF_LONG) -+#if !defined(__lzo_gnuc_extension__) -+# define __lzo_gnuc_extension__ /*empty*/ - #endif --#if defined(SIZEOF_LONG_LONG) --# define LZO_SIZEOF_LONG_LONG (SIZEOF_LONG_LONG) -+#if !defined(LZO_CFG_USE_NEW_STYLE_CASTS) && defined(__cplusplus) && 0 -+# if (LZO_CC_GNUC && (LZO_CC_GNUC < 0x020800ul)) -+# define LZO_CFG_USE_NEW_STYLE_CASTS 0 -+# elif (LZO_CC_INTELC && (__INTEL_COMPILER < 1200)) -+# define LZO_CFG_USE_NEW_STYLE_CASTS 0 -+# else -+# define LZO_CFG_USE_NEW_STYLE_CASTS 1 -+# endif - #endif --#if defined(SIZEOF___INT16) --# define LZO_SIZEOF___INT16 (SIZEOF___INT16) -+#if !defined(LZO_CFG_USE_NEW_STYLE_CASTS) -+# define LZO_CFG_USE_NEW_STYLE_CASTS 0 - #endif --#if defined(SIZEOF___INT32) --# define LZO_SIZEOF___INT32 (SIZEOF___INT32) -+#if !defined(__cplusplus) -+# if defined(LZO_CFG_USE_NEW_STYLE_CASTS) -+# undef LZO_CFG_USE_NEW_STYLE_CASTS -+# endif -+# define LZO_CFG_USE_NEW_STYLE_CASTS 0 - #endif --#if defined(SIZEOF___INT64) --# define LZO_SIZEOF___INT64 (SIZEOF___INT64) -+#if !defined(LZO_REINTERPRET_CAST) -+# if (LZO_CFG_USE_NEW_STYLE_CASTS) -+# define LZO_REINTERPRET_CAST(t,e) (reinterpret_cast (e)) -+# endif - #endif --#if defined(SIZEOF_VOID_P) --# define LZO_SIZEOF_VOID_P (SIZEOF_VOID_P) -+#if !defined(LZO_REINTERPRET_CAST) -+# define LZO_REINTERPRET_CAST(t,e) ((t) (e)) - #endif --#if defined(SIZEOF_SIZE_T) --# define LZO_SIZEOF_SIZE_T (SIZEOF_SIZE_T) -+#if !defined(LZO_STATIC_CAST) -+# if (LZO_CFG_USE_NEW_STYLE_CASTS) -+# define LZO_STATIC_CAST(t,e) (static_cast (e)) -+# endif - #endif --#if defined(SIZEOF_PTRDIFF_T) --# define LZO_SIZEOF_PTRDIFF_T (SIZEOF_PTRDIFF_T) -+#if !defined(LZO_STATIC_CAST) -+# define LZO_STATIC_CAST(t,e) ((t) (e)) - #endif --#define __LZO_LSR(x,b) (((x)+0ul) >> (b)) --#if !defined(LZO_SIZEOF_SHORT) --# if (LZO_ARCH_CRAY_PVP) --# define LZO_SIZEOF_SHORT 8 --# elif (USHRT_MAX == LZO_0xffffL) --# define LZO_SIZEOF_SHORT 2 --# elif (__LZO_LSR(USHRT_MAX,7) == 1) --# define LZO_SIZEOF_SHORT 1 --# elif (__LZO_LSR(USHRT_MAX,15) == 1) --# define LZO_SIZEOF_SHORT 2 --# elif (__LZO_LSR(USHRT_MAX,31) == 1) --# define LZO_SIZEOF_SHORT 4 --# elif (__LZO_LSR(USHRT_MAX,63) == 1) --# define LZO_SIZEOF_SHORT 8 --# elif (__LZO_LSR(USHRT_MAX,127) == 1) --# define LZO_SIZEOF_SHORT 16 --# else --# error "LZO_SIZEOF_SHORT" --# endif -+#if !defined(LZO_STATIC_CAST2) -+# define LZO_STATIC_CAST2(t1,t2,e) LZO_STATIC_CAST(t1, LZO_STATIC_CAST(t2, e)) - #endif --#if !defined(LZO_SIZEOF_INT) --# if (LZO_ARCH_CRAY_PVP) --# define LZO_SIZEOF_INT 8 --# elif (UINT_MAX == LZO_0xffffL) --# define LZO_SIZEOF_INT 2 --# elif (UINT_MAX == LZO_0xffffffffL) --# define LZO_SIZEOF_INT 4 --# elif (__LZO_LSR(UINT_MAX,7) == 1) --# define LZO_SIZEOF_INT 1 --# elif (__LZO_LSR(UINT_MAX,15) == 1) --# define LZO_SIZEOF_INT 2 --# elif (__LZO_LSR(UINT_MAX,31) == 1) --# define LZO_SIZEOF_INT 4 --# elif (__LZO_LSR(UINT_MAX,63) == 1) --# define LZO_SIZEOF_INT 8 --# elif (__LZO_LSR(UINT_MAX,127) == 1) --# define LZO_SIZEOF_INT 16 --# else --# error "LZO_SIZEOF_INT" -+#if !defined(LZO_UNCONST_CAST) -+# if (LZO_CFG_USE_NEW_STYLE_CASTS) -+# define LZO_UNCONST_CAST(t,e) (const_cast (e)) -+# elif (LZO_HAVE_MM_HUGE_PTR) -+# define LZO_UNCONST_CAST(t,e) ((t) (e)) -+# elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE) -+# define LZO_UNCONST_CAST(t,e) ((t) ((void *) ((lzo_uintptr_t) ((const void *) (e))))) - # endif - #endif --#if !defined(LZO_SIZEOF_LONG) --# if (ULONG_MAX == LZO_0xffffffffL) --# define LZO_SIZEOF_LONG 4 --# elif (__LZO_LSR(ULONG_MAX,7) == 1) --# define LZO_SIZEOF_LONG 1 --# elif (__LZO_LSR(ULONG_MAX,15) == 1) --# define LZO_SIZEOF_LONG 2 --# elif (__LZO_LSR(ULONG_MAX,31) == 1) --# define LZO_SIZEOF_LONG 4 --# elif (__LZO_LSR(ULONG_MAX,63) == 1) --# define LZO_SIZEOF_LONG 8 --# elif (__LZO_LSR(ULONG_MAX,127) == 1) --# define LZO_SIZEOF_LONG 16 --# else --# error "LZO_SIZEOF_LONG" -+#if !defined(LZO_UNCONST_CAST) -+# define LZO_UNCONST_CAST(t,e) ((t) ((void *) ((const void *) (e)))) -+#endif -+#if !defined(LZO_UNCONST_VOLATILE_CAST) -+# if (LZO_CFG_USE_NEW_STYLE_CASTS) -+# define LZO_UNCONST_VOLATILE_CAST(t,e) (const_cast (e)) -+# elif (LZO_HAVE_MM_HUGE_PTR) -+# define LZO_UNCONST_VOLATILE_CAST(t,e) ((t) (e)) -+# elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE) -+# define LZO_UNCONST_VOLATILE_CAST(t,e) ((t) ((volatile void *) ((lzo_uintptr_t) ((volatile const void *) (e))))) - # endif - #endif --#if !defined(LZO_SIZEOF_LONG_LONG) && !defined(LZO_SIZEOF___INT64) --#if (LZO_SIZEOF_LONG > 0 && LZO_SIZEOF_LONG < 8) --# if defined(__LONG_MAX__) && defined(__LONG_LONG_MAX__) --# if (LZO_CC_GNUC >= 0x030300ul) --# if ((__LONG_MAX__)+0 == (__LONG_LONG_MAX__)+0) --# define LZO_SIZEOF_LONG_LONG LZO_SIZEOF_LONG --# elif (__LZO_LSR(__LONG_LONG_MAX__,30) == 1) --# define LZO_SIZEOF_LONG_LONG 4 --# endif --# endif -+#if !defined(LZO_UNCONST_VOLATILE_CAST) -+# define LZO_UNCONST_VOLATILE_CAST(t,e) ((t) ((volatile void *) ((volatile const void *) (e)))) -+#endif -+#if !defined(LZO_UNVOLATILE_CAST) -+# if (LZO_CFG_USE_NEW_STYLE_CASTS) -+# define LZO_UNVOLATILE_CAST(t,e) (const_cast (e)) -+# elif (LZO_HAVE_MM_HUGE_PTR) -+# define LZO_UNVOLATILE_CAST(t,e) ((t) (e)) -+# elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE) -+# define LZO_UNVOLATILE_CAST(t,e) ((t) ((void *) ((lzo_uintptr_t) ((volatile void *) (e))))) - # endif - #endif -+#if !defined(LZO_UNVOLATILE_CAST) -+# define LZO_UNVOLATILE_CAST(t,e) ((t) ((void *) ((volatile void *) (e)))) - #endif --#if !defined(LZO_SIZEOF_LONG_LONG) && !defined(LZO_SIZEOF___INT64) --#if (LZO_SIZEOF_LONG > 0 && LZO_SIZEOF_LONG < 8) --#if (LZO_ARCH_I086 && LZO_CC_DMC) --#elif (LZO_CC_CILLY) && defined(__GNUC__) --# define LZO_SIZEOF_LONG_LONG 8 --#elif (LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE) --# define LZO_SIZEOF_LONG_LONG 8 --#elif ((LZO_OS_WIN32 || LZO_OS_WIN64 || defined(_WIN32)) && LZO_CC_MSC && (_MSC_VER >= 1400)) --# define LZO_SIZEOF_LONG_LONG 8 --#elif (LZO_OS_WIN64 || defined(_WIN64)) --# define LZO_SIZEOF___INT64 8 --#elif (LZO_ARCH_I386 && (LZO_CC_DMC)) --# define LZO_SIZEOF_LONG_LONG 8 --#elif (LZO_ARCH_I386 && (LZO_CC_SYMANTECC && (__SC__ >= 0x700))) --# define LZO_SIZEOF_LONG_LONG 8 --#elif (LZO_ARCH_I386 && (LZO_CC_INTELC && defined(__linux__))) --# define LZO_SIZEOF_LONG_LONG 8 --#elif (LZO_ARCH_I386 && (LZO_CC_MWERKS || LZO_CC_PELLESC || LZO_CC_PGI || LZO_CC_SUNPROC)) --# define LZO_SIZEOF_LONG_LONG 8 --#elif (LZO_ARCH_I386 && (LZO_CC_INTELC || LZO_CC_MSC)) --# define LZO_SIZEOF___INT64 8 --#elif ((LZO_OS_WIN32 || defined(_WIN32)) && (LZO_CC_MSC)) --# define LZO_SIZEOF___INT64 8 --#elif (LZO_ARCH_I386 && (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0520))) --# define LZO_SIZEOF___INT64 8 --#elif (LZO_ARCH_I386 && (LZO_CC_WATCOMC && (__WATCOMC__ >= 1100))) --# define LZO_SIZEOF___INT64 8 --#elif (LZO_CC_WATCOMC && defined(_INTEGRAL_MAX_BITS) && (_INTEGRAL_MAX_BITS == 64)) --# define LZO_SIZEOF___INT64 8 --#elif (LZO_OS_OS400 || defined(__OS400__)) && defined(__LLP64_IFC__) --# define LZO_SIZEOF_LONG_LONG 8 --#elif (defined(__vms) || defined(__VMS)) && (__INITIAL_POINTER_SIZE+0 == 64) --# define LZO_SIZEOF_LONG_LONG 8 --#elif (LZO_CC_SDCC) && (LZO_SIZEOF_INT == 2) --#elif 1 && defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) --# define LZO_SIZEOF_LONG_LONG 8 -+#if !defined(LZO_UNVOLATILE_CONST_CAST) -+# if (LZO_CFG_USE_NEW_STYLE_CASTS) -+# define LZO_UNVOLATILE_CONST_CAST(t,e) (const_cast (e)) -+# elif (LZO_HAVE_MM_HUGE_PTR) -+# define LZO_UNVOLATILE_CONST_CAST(t,e) ((t) (e)) -+# elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE) -+# define LZO_UNVOLATILE_CONST_CAST(t,e) ((t) ((const void *) ((lzo_uintptr_t) ((volatile const void *) (e))))) -+# endif - #endif -+#if !defined(LZO_UNVOLATILE_CONST_CAST) -+# define LZO_UNVOLATILE_CONST_CAST(t,e) ((t) ((const void *) ((volatile const void *) (e)))) - #endif -+#if !defined(LZO_PCAST) -+# if (LZO_HAVE_MM_HUGE_PTR) -+# define LZO_PCAST(t,e) ((t) (e)) -+# endif - #endif --#if defined(__cplusplus) && (LZO_CC_GNUC) --# if (LZO_CC_GNUC < 0x020800ul) --# undef LZO_SIZEOF_LONG_LONG -+#if !defined(LZO_PCAST) -+# define LZO_PCAST(t,e) LZO_STATIC_CAST(t, LZO_STATIC_CAST(void *, e)) -+#endif -+#if !defined(LZO_CCAST) -+# if (LZO_HAVE_MM_HUGE_PTR) -+# define LZO_CCAST(t,e) ((t) (e)) - # endif - #endif --#if (LZO_CFG_NO_LONG_LONG) || defined(__NO_LONG_LONG) --# undef LZO_SIZEOF_LONG_LONG -+#if !defined(LZO_CCAST) -+# define LZO_CCAST(t,e) LZO_STATIC_CAST(t, LZO_STATIC_CAST(const void *, e)) - #endif --#if !defined(LZO_SIZEOF_VOID_P) --#if (LZO_ARCH_I086) --# define __LZO_WORDSIZE 2 --# if (LZO_MM_TINY || LZO_MM_SMALL || LZO_MM_MEDIUM) --# define LZO_SIZEOF_VOID_P 2 --# elif (LZO_MM_COMPACT || LZO_MM_LARGE || LZO_MM_HUGE) --# define LZO_SIZEOF_VOID_P 4 --# else --# error "LZO_MM" -+#if !defined(LZO_ICONV) -+# define LZO_ICONV(t,e) LZO_STATIC_CAST(t, e) -+#endif -+#if !defined(LZO_ICAST) -+# define LZO_ICAST(t,e) LZO_STATIC_CAST(t, e) -+#endif -+#if !defined(LZO_ITRUNC) -+# define LZO_ITRUNC(t,e) LZO_STATIC_CAST(t, e) -+#endif -+#if !defined(__lzo_cte) -+# if (LZO_CC_MSC || LZO_CC_WATCOMC) -+# define __lzo_cte(e) ((void)0,(e)) -+# elif 1 -+# define __lzo_cte(e) ((void)0,(e)) - # endif --#elif (LZO_ARCH_AVR || LZO_ARCH_Z80) --# define __LZO_WORDSIZE 1 --# define LZO_SIZEOF_VOID_P 2 --#elif (LZO_ARCH_C166 || LZO_ARCH_MCS51 || LZO_ARCH_MCS251 || LZO_ARCH_MSP430) --# define LZO_SIZEOF_VOID_P 2 --#elif (LZO_ARCH_H8300) --# if defined(__NORMAL_MODE__) --# define __LZO_WORDSIZE 4 --# define LZO_SIZEOF_VOID_P 2 --# elif defined(__H8300H__) || defined(__H8300S__) || defined(__H8300SX__) --# define __LZO_WORDSIZE 4 --# define LZO_SIZEOF_VOID_P 4 --# else --# define __LZO_WORDSIZE 2 --# define LZO_SIZEOF_VOID_P 2 --# endif --# if (LZO_CC_GNUC && (LZO_CC_GNUC < 0x040000ul)) && (LZO_SIZEOF_INT == 4) --# define LZO_SIZEOF_SIZE_T LZO_SIZEOF_INT --# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_INT --# endif --#elif (LZO_ARCH_M16C) --# define __LZO_WORDSIZE 2 --# if defined(__m32c_cpu__) || defined(__m32cm_cpu__) --# define LZO_SIZEOF_VOID_P 4 --# else --# define LZO_SIZEOF_VOID_P 2 --# endif --#elif (LZO_SIZEOF_LONG == 8) && ((defined(__mips__) && defined(__R5900__)) || defined(__MIPS_PSX2__)) --# define __LZO_WORDSIZE 8 --# define LZO_SIZEOF_VOID_P 4 --#elif defined(__LLP64__) || defined(__LLP64) || defined(_LLP64) || defined(_WIN64) --# define __LZO_WORDSIZE 8 --# define LZO_SIZEOF_VOID_P 8 --#elif (LZO_OS_OS400 || defined(__OS400__)) && defined(__LLP64_IFC__) --# define LZO_SIZEOF_VOID_P LZO_SIZEOF_LONG --# define LZO_SIZEOF_SIZE_T LZO_SIZEOF_LONG --# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_LONG --#elif (LZO_OS_OS400 || defined(__OS400__)) --# define __LZO_WORDSIZE LZO_SIZEOF_LONG --# define LZO_SIZEOF_VOID_P 16 --# define LZO_SIZEOF_SIZE_T LZO_SIZEOF_LONG --# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_LONG --#elif (defined(__vms) || defined(__VMS)) && (__INITIAL_POINTER_SIZE+0 == 64) --# define LZO_SIZEOF_VOID_P 8 --# define LZO_SIZEOF_SIZE_T LZO_SIZEOF_LONG --# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_LONG --#elif (LZO_ARCH_SPU) --# if 0 --# define __LZO_WORDSIZE 16 --# endif --# define LZO_SIZEOF_VOID_P 4 --#else --# define LZO_SIZEOF_VOID_P LZO_SIZEOF_LONG - #endif -+#if !defined(__lzo_cte) -+# define __lzo_cte(e) (e) - #endif --#if !defined(LZO_WORDSIZE) --# if defined(__LZO_WORDSIZE) --# define LZO_WORDSIZE __LZO_WORDSIZE -+#if !defined(LZO_BLOCK_BEGIN) -+# define LZO_BLOCK_BEGIN do { -+# define LZO_BLOCK_END } while __lzo_cte(0) -+#endif -+#if !defined(LZO_UNUSED) -+# if (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0600)) -+# define LZO_UNUSED(var) ((void) &var) -+# elif (LZO_CC_BORLANDC || LZO_CC_HIGHC || LZO_CC_NDPC || LZO_CC_PELLESC || LZO_CC_TURBOC) -+# define LZO_UNUSED(var) if (&var) ; else -+# elif (LZO_CC_CLANG && (LZO_CC_CLANG >= 0x030200ul)) -+# define LZO_UNUSED(var) ((void) &var) -+# elif (LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE) -+# define LZO_UNUSED(var) ((void) var) -+# elif (LZO_CC_MSC && (_MSC_VER < 900)) -+# define LZO_UNUSED(var) if (&var) ; else -+# elif (LZO_CC_KEILC) -+# define LZO_UNUSED(var) {LZO_EXTERN_C int lzo_unused__[1-2*!(sizeof(var)>0)];} -+# elif (LZO_CC_PACIFICC) -+# define LZO_UNUSED(var) ((void) sizeof(var)) -+# elif (LZO_CC_WATCOMC) && defined(__cplusplus) -+# define LZO_UNUSED(var) ((void) var) - # else --# define LZO_WORDSIZE LZO_SIZEOF_VOID_P -+# define LZO_UNUSED(var) ((void) &var) - # endif - #endif --#if !defined(LZO_SIZEOF_SIZE_T) --#if (LZO_ARCH_I086 || LZO_ARCH_M16C) --# define LZO_SIZEOF_SIZE_T 2 --#else --# define LZO_SIZEOF_SIZE_T LZO_SIZEOF_VOID_P --#endif --#endif --#if !defined(LZO_SIZEOF_PTRDIFF_T) --#if (LZO_ARCH_I086) --# if (LZO_MM_TINY || LZO_MM_SMALL || LZO_MM_MEDIUM || LZO_MM_HUGE) --# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_VOID_P --# elif (LZO_MM_COMPACT || LZO_MM_LARGE) --# if (LZO_CC_BORLANDC || LZO_CC_TURBOC) --# define LZO_SIZEOF_PTRDIFF_T 4 --# else --# define LZO_SIZEOF_PTRDIFF_T 2 --# endif -+#if !defined(LZO_UNUSED_FUNC) -+# if (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0600)) -+# define LZO_UNUSED_FUNC(func) ((void) func) -+# elif (LZO_CC_BORLANDC || LZO_CC_NDPC || LZO_CC_TURBOC) -+# define LZO_UNUSED_FUNC(func) if (func) ; else -+# elif (LZO_CC_CLANG || LZO_CC_LLVM) -+# define LZO_UNUSED_FUNC(func) ((void) &func) -+# elif (LZO_CC_MSC && (_MSC_VER < 900)) -+# define LZO_UNUSED_FUNC(func) if (func) ; else -+# elif (LZO_CC_MSC) -+# define LZO_UNUSED_FUNC(func) ((void) &func) -+# elif (LZO_CC_KEILC || LZO_CC_PELLESC) -+# define LZO_UNUSED_FUNC(func) {LZO_EXTERN_C int lzo_unused_func__[1-2*!(sizeof((int)func)>0)];} - # else --# error "LZO_MM" -+# define LZO_UNUSED_FUNC(func) ((void) func) - # endif --#else --# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_SIZE_T --#endif - #endif --#if (LZO_ABI_NEUTRAL_ENDIAN) --# undef LZO_ABI_BIG_ENDIAN --# undef LZO_ABI_LITTLE_ENDIAN --#elif !(LZO_ABI_BIG_ENDIAN) && !(LZO_ABI_LITTLE_ENDIAN) --#if (LZO_ARCH_ALPHA) && (LZO_ARCH_CRAY_MPP) --# define LZO_ABI_BIG_ENDIAN 1 --#elif (LZO_ARCH_IA64) && (LZO_OS_POSIX_LINUX || LZO_OS_WIN64) --# define LZO_ABI_LITTLE_ENDIAN 1 --#elif (LZO_ARCH_ALPHA || LZO_ARCH_AMD64 || LZO_ARCH_BLACKFIN || LZO_ARCH_CRIS || LZO_ARCH_I086 || LZO_ARCH_I386 || LZO_ARCH_MSP430) --# define LZO_ABI_LITTLE_ENDIAN 1 --#elif (LZO_ARCH_AVR32 || LZO_ARCH_M68K || LZO_ARCH_S390) --# define LZO_ABI_BIG_ENDIAN 1 --#elif 1 && defined(__IAR_SYSTEMS_ICC__) && defined(__LITTLE_ENDIAN__) --# if (__LITTLE_ENDIAN__ == 1) --# define LZO_ABI_LITTLE_ENDIAN 1 -+#if !defined(LZO_UNUSED_LABEL) -+# if (LZO_CC_CLANG >= 0x020800ul) -+# define LZO_UNUSED_LABEL(l) (__lzo_gnuc_extension__ ((void) ((const void *) &&l))) -+# elif (LZO_CC_ARMCC || LZO_CC_CLANG || LZO_CC_INTELC || LZO_CC_WATCOMC) -+# define LZO_UNUSED_LABEL(l) if __lzo_cte(0) goto l - # else --# define LZO_ABI_BIG_ENDIAN 1 -+# define LZO_UNUSED_LABEL(l) switch (0) case 1:goto l - # endif --#elif 1 && defined(__BIG_ENDIAN__) && !defined(__LITTLE_ENDIAN__) --# define LZO_ABI_BIG_ENDIAN 1 --#elif 1 && defined(__LITTLE_ENDIAN__) && !defined(__BIG_ENDIAN__) --# define LZO_ABI_LITTLE_ENDIAN 1 --#elif 1 && (LZO_ARCH_ARM) && defined(__ARMEB__) && !defined(__ARMEL__) --# define LZO_ABI_BIG_ENDIAN 1 --#elif 1 && (LZO_ARCH_ARM) && defined(__ARMEL__) && !defined(__ARMEB__) --# define LZO_ABI_LITTLE_ENDIAN 1 --#elif 1 && (LZO_ARCH_MIPS) && defined(__MIPSEB__) && !defined(__MIPSEL__) --# define LZO_ABI_BIG_ENDIAN 1 --#elif 1 && (LZO_ARCH_MIPS) && defined(__MIPSEL__) && !defined(__MIPSEB__) --# define LZO_ABI_LITTLE_ENDIAN 1 --#endif --#endif --#if (LZO_ABI_BIG_ENDIAN) && (LZO_ABI_LITTLE_ENDIAN) --# error "this should not happen" --#endif --#if (LZO_ABI_BIG_ENDIAN) --# define LZO_INFO_ABI_ENDIAN "be" --#elif (LZO_ABI_LITTLE_ENDIAN) --# define LZO_INFO_ABI_ENDIAN "le" --#elif (LZO_ABI_NEUTRAL_ENDIAN) --# define LZO_INFO_ABI_ENDIAN "neutral" --#endif --#if (LZO_SIZEOF_INT == 1 && LZO_SIZEOF_LONG == 2 && LZO_SIZEOF_VOID_P == 2) --# define LZO_ABI_I8LP16 1 --# define LZO_INFO_ABI_PM "i8lp16" --#elif (LZO_SIZEOF_INT == 2 && LZO_SIZEOF_LONG == 2 && LZO_SIZEOF_VOID_P == 2) --# define LZO_ABI_ILP16 1 --# define LZO_INFO_ABI_PM "ilp16" --#elif (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_LONG == 4 && LZO_SIZEOF_VOID_P == 4) --# define LZO_ABI_ILP32 1 --# define LZO_INFO_ABI_PM "ilp32" --#elif (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_LONG == 4 && LZO_SIZEOF_VOID_P == 8 && LZO_SIZEOF_SIZE_T == 8) --# define LZO_ABI_LLP64 1 --# define LZO_INFO_ABI_PM "llp64" --#elif (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_LONG == 8 && LZO_SIZEOF_VOID_P == 8) --# define LZO_ABI_LP64 1 --# define LZO_INFO_ABI_PM "lp64" --#elif (LZO_SIZEOF_INT == 8 && LZO_SIZEOF_LONG == 8 && LZO_SIZEOF_VOID_P == 8) --# define LZO_ABI_ILP64 1 --# define LZO_INFO_ABI_PM "ilp64" --#elif (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_LONG == 8 && LZO_SIZEOF_VOID_P == 4) --# define LZO_ABI_IP32L64 1 --# define LZO_INFO_ABI_PM "ip32l64" - #endif --#if !defined(__LZO_LIBC_OVERRIDE) --#if (LZO_LIBC_NAKED) --# define LZO_INFO_LIBC "naked" --#elif (LZO_LIBC_FREESTANDING) --# define LZO_INFO_LIBC "freestanding" --#elif (LZO_LIBC_MOSTLY_FREESTANDING) --# define LZO_INFO_LIBC "mfreestanding" --#elif (LZO_LIBC_ISOC90) --# define LZO_INFO_LIBC "isoc90" --#elif (LZO_LIBC_ISOC99) --# define LZO_INFO_LIBC "isoc99" --#elif defined(__dietlibc__) --# define LZO_LIBC_DIETLIBC 1 --# define LZO_INFO_LIBC "dietlibc" --#elif defined(_NEWLIB_VERSION) --# define LZO_LIBC_NEWLIB 1 --# define LZO_INFO_LIBC "newlib" --#elif defined(__UCLIBC__) && defined(__UCLIBC_MAJOR__) && defined(__UCLIBC_MINOR__) --# if defined(__UCLIBC_SUBLEVEL__) --# define LZO_LIBC_UCLIBC (__UCLIBC_MAJOR__ * 0x10000L + __UCLIBC_MINOR__ * 0x100 + __UCLIBC_SUBLEVEL__) -+#if !defined(LZO_DEFINE_UNINITIALIZED_VAR) -+# if 0 -+# define LZO_DEFINE_UNINITIALIZED_VAR(type,var,init) type var -+# elif 0 && (LZO_CC_GNUC) -+# define LZO_DEFINE_UNINITIALIZED_VAR(type,var,init) type var = var - # else --# define LZO_LIBC_UCLIBC 0x00090bL -+# define LZO_DEFINE_UNINITIALIZED_VAR(type,var,init) type var = init - # endif --# define LZO_INFO_LIBC "uclibc" --#elif defined(__GLIBC__) && defined(__GLIBC_MINOR__) --# define LZO_LIBC_GLIBC (__GLIBC__ * 0x10000L + __GLIBC_MINOR__ * 0x100) --# define LZO_INFO_LIBC "glibc" --#elif (LZO_CC_MWERKS) && defined(__MSL__) --# define LZO_LIBC_MSL __MSL__ --# define LZO_INFO_LIBC "msl" --#elif 1 && defined(__IAR_SYSTEMS_ICC__) --# define LZO_LIBC_ISOC90 1 --# define LZO_INFO_LIBC "isoc90" --#else --# define LZO_LIBC_DEFAULT 1 --# define LZO_INFO_LIBC "default" --#endif --#endif --#if !defined(__lzo_gnuc_extension__) --#if (LZO_CC_GNUC >= 0x020800ul) --# define __lzo_gnuc_extension__ __extension__ --#elif (LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) --# define __lzo_gnuc_extension__ __extension__ --#else --# define __lzo_gnuc_extension__ /*empty*/ --#endif --#endif --#if !defined(__lzo_ua_volatile) --# define __lzo_ua_volatile volatile --#endif --#if !defined(__lzo_alignof) --#if (LZO_CC_CILLY || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || LZO_CC_PGI) --# define __lzo_alignof(e) __alignof__(e) --#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 700)) --# define __lzo_alignof(e) __alignof__(e) --#elif (LZO_CC_MSC && (_MSC_VER >= 1300)) --# define __lzo_alignof(e) __alignof(e) --#elif (LZO_CC_SUNPROC && (LZO_CC_SUNPROC >= 0x5100)) --# define __lzo_alignof(e) __alignof__(e) --#endif --#endif --#if defined(__lzo_alignof) --# define __lzo_HAVE_alignof 1 --#endif --#if !defined(__lzo_constructor) --#if (LZO_CC_GNUC >= 0x030400ul) --# define __lzo_constructor __attribute__((__constructor__,__used__)) --#elif (LZO_CC_GNUC >= 0x020700ul) --# define __lzo_constructor __attribute__((__constructor__)) --#elif (LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) --# define __lzo_constructor __attribute__((__constructor__)) --#endif --#endif --#if defined(__lzo_constructor) --# define __lzo_HAVE_constructor 1 --#endif --#if !defined(__lzo_destructor) --#if (LZO_CC_GNUC >= 0x030400ul) --# define __lzo_destructor __attribute__((__destructor__,__used__)) --#elif (LZO_CC_GNUC >= 0x020700ul) --# define __lzo_destructor __attribute__((__destructor__)) --#elif (LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) --# define __lzo_destructor __attribute__((__destructor__)) --#endif --#endif --#if defined(__lzo_destructor) --# define __lzo_HAVE_destructor 1 --#endif --#if (__lzo_HAVE_destructor) && !(__lzo_HAVE_constructor) --# error "this should not happen" - #endif - #if !defined(__lzo_inline) - #if (LZO_CC_TURBOC && (__TURBOC__ <= 0x0295)) - #elif defined(__cplusplus) - # define __lzo_inline inline -+#elif defined(__STDC_VERSION__) && (__STDC_VERSION__-0 >= 199901L) -+# define __lzo_inline inline - #elif (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0550)) - # define __lzo_inline __inline --#elif (LZO_CC_CILLY || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || LZO_CC_PGI) -+#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CILLY || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || LZO_CC_PGI) - # define __lzo_inline __inline__ - #elif (LZO_CC_DMC) - # define __lzo_inline __inline -+#elif (LZO_CC_GHS) -+# define __lzo_inline __inline__ -+#elif (LZO_CC_IBMC >= 600) -+# define __lzo_inline __inline__ - #elif (LZO_CC_INTELC) - # define __lzo_inline __inline - #elif (LZO_CC_MWERKS && (__MWERKS__ >= 0x2405)) - # define __lzo_inline __inline - #elif (LZO_CC_MSC && (_MSC_VER >= 900)) - # define __lzo_inline __inline --#elif (LZO_CC_SUNPROC && (LZO_CC_SUNPROC >= 0x5100)) -+#elif (LZO_CC_SUNPROC >= 0x5100) - # define __lzo_inline __inline__ --#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) --# define __lzo_inline inline - #endif - #endif - #if defined(__lzo_inline) -+# ifndef __lzo_HAVE_inline - # define __lzo_HAVE_inline 1 -+# endif - #else - # define __lzo_inline /*empty*/ - #endif - #if !defined(__lzo_forceinline) - #if (LZO_CC_GNUC >= 0x030200ul) - # define __lzo_forceinline __inline__ __attribute__((__always_inline__)) --#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 450) && LZO_CC_SYNTAX_MSC) -+#elif (LZO_CC_IBMC >= 700) -+# define __lzo_forceinline __inline__ __attribute__((__always_inline__)) -+#elif (LZO_CC_INTELC_MSC && (__INTEL_COMPILER >= 450)) - # define __lzo_forceinline __forceinline --#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 800) && LZO_CC_SYNTAX_GNUC) -+#elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 800)) - # define __lzo_forceinline __inline__ __attribute__((__always_inline__)) --#elif (LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) -+#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) - # define __lzo_forceinline __inline__ __attribute__((__always_inline__)) - #elif (LZO_CC_MSC && (_MSC_VER >= 1200)) - # define __lzo_forceinline __forceinline --#elif (LZO_CC_SUNPROC && (LZO_CC_SUNPROC >= 0x5100)) -+#elif (LZO_CC_PGI >= 0x0d0a00ul) -+# define __lzo_forceinline __inline__ __attribute__((__always_inline__)) -+#elif (LZO_CC_SUNPROC >= 0x5100) - # define __lzo_forceinline __inline__ __attribute__((__always_inline__)) - #endif - #endif - #if defined(__lzo_forceinline) -+# ifndef __lzo_HAVE_forceinline - # define __lzo_HAVE_forceinline 1 -+# endif - #else --# define __lzo_forceinline /*empty*/ -+# define __lzo_forceinline __lzo_inline - #endif - #if !defined(__lzo_noinline) - #if 1 && (LZO_ARCH_I386) && (LZO_CC_GNUC >= 0x040000ul) && (LZO_CC_GNUC < 0x040003ul) - # define __lzo_noinline __attribute__((__noinline__,__used__)) - #elif (LZO_CC_GNUC >= 0x030200ul) - # define __lzo_noinline __attribute__((__noinline__)) --#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 600) && LZO_CC_SYNTAX_MSC) -+#elif (LZO_CC_IBMC >= 700) -+# define __lzo_noinline __attribute__((__noinline__)) -+#elif (LZO_CC_INTELC_MSC && (__INTEL_COMPILER >= 600)) - # define __lzo_noinline __declspec(noinline) --#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 800) && LZO_CC_SYNTAX_GNUC) -+#elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 800)) - # define __lzo_noinline __attribute__((__noinline__)) --#elif (LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) -+#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) - # define __lzo_noinline __attribute__((__noinline__)) - #elif (LZO_CC_MSC && (_MSC_VER >= 1300)) - # define __lzo_noinline __declspec(noinline) -@@ -1474,179 +1479,409 @@ extern "C" { - # else - # define __lzo_noinline __declspec(noinline) - # endif --#elif (LZO_CC_SUNPROC && (LZO_CC_SUNPROC >= 0x5100)) -+#elif (LZO_CC_PGI >= 0x0d0a00ul) -+# define __lzo_noinline __attribute__((__noinline__)) -+#elif (LZO_CC_SUNPROC >= 0x5100) - # define __lzo_noinline __attribute__((__noinline__)) - #endif - #endif - #if defined(__lzo_noinline) -+# ifndef __lzo_HAVE_noinline - # define __lzo_HAVE_noinline 1 -+# endif - #else - # define __lzo_noinline /*empty*/ - #endif - #if (__lzo_HAVE_forceinline || __lzo_HAVE_noinline) && !(__lzo_HAVE_inline) --# error "this should not happen" -+# error "unexpected configuration - check your compiler defines" - #endif --#if !defined(__lzo_noreturn) --#if (LZO_CC_GNUC >= 0x020700ul) --# define __lzo_noreturn __attribute__((__noreturn__)) --#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 450) && LZO_CC_SYNTAX_MSC) --# define __lzo_noreturn __declspec(noreturn) --#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 600) && LZO_CC_SYNTAX_GNUC) --# define __lzo_noreturn __attribute__((__noreturn__)) --#elif (LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) --# define __lzo_noreturn __attribute__((__noreturn__)) --#elif (LZO_CC_MSC && (_MSC_VER >= 1200)) --# define __lzo_noreturn __declspec(noreturn) -+#if !defined(__lzo_static_inline) -+#if (LZO_CC_IBMC) -+# define __lzo_static_inline __lzo_gnuc_extension__ static __lzo_inline - #endif - #endif --#if defined(__lzo_noreturn) --# define __lzo_HAVE_noreturn 1 --#else --# define __lzo_noreturn /*empty*/ -+#if !defined(__lzo_static_inline) -+# define __lzo_static_inline static __lzo_inline - #endif --#if !defined(__lzo_nothrow) --#if (LZO_CC_GNUC >= 0x030300ul) --# define __lzo_nothrow __attribute__((__nothrow__)) --#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 450) && LZO_CC_SYNTAX_MSC) && defined(__cplusplus) --# define __lzo_nothrow __declspec(nothrow) --#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 900) && LZO_CC_SYNTAX_GNUC) --# define __lzo_nothrow __attribute__((__nothrow__)) --#elif (LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) --# define __lzo_nothrow __attribute__((__nothrow__)) --#elif (LZO_CC_MSC && (_MSC_VER >= 1200)) && defined(__cplusplus) -+#if !defined(__lzo_static_forceinline) -+#if (LZO_CC_IBMC) -+# define __lzo_static_forceinline __lzo_gnuc_extension__ static __lzo_forceinline -+#endif -+#endif -+#if !defined(__lzo_static_forceinline) -+# define __lzo_static_forceinline static __lzo_forceinline -+#endif -+#if !defined(__lzo_static_noinline) -+#if (LZO_CC_IBMC) -+# define __lzo_static_noinline __lzo_gnuc_extension__ static __lzo_noinline -+#endif -+#endif -+#if !defined(__lzo_static_noinline) -+# define __lzo_static_noinline static __lzo_noinline -+#endif -+#if !defined(__lzo_c99_extern_inline) -+#if defined(__GNUC_GNU_INLINE__) -+# define __lzo_c99_extern_inline __lzo_inline -+#elif defined(__GNUC_STDC_INLINE__) -+# define __lzo_c99_extern_inline extern __lzo_inline -+#elif defined(__STDC_VERSION__) && (__STDC_VERSION__-0 >= 199901L) -+# define __lzo_c99_extern_inline extern __lzo_inline -+#endif -+#if !defined(__lzo_c99_extern_inline) && (__lzo_HAVE_inline) -+# define __lzo_c99_extern_inline __lzo_inline -+#endif -+#endif -+#if defined(__lzo_c99_extern_inline) -+# ifndef __lzo_HAVE_c99_extern_inline -+# define __lzo_HAVE_c99_extern_inline 1 -+# endif -+#else -+# define __lzo_c99_extern_inline /*empty*/ -+#endif -+#if !defined(__lzo_may_alias) -+#if (LZO_CC_GNUC >= 0x030400ul) -+# define __lzo_may_alias __attribute__((__may_alias__)) -+#elif (LZO_CC_CLANG >= 0x020900ul) -+# define __lzo_may_alias __attribute__((__may_alias__)) -+#elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 1210)) && 0 -+# define __lzo_may_alias __attribute__((__may_alias__)) -+#elif (LZO_CC_PGI >= 0x0d0a00ul) && 0 -+# define __lzo_may_alias __attribute__((__may_alias__)) -+#endif -+#endif -+#if defined(__lzo_may_alias) -+# ifndef __lzo_HAVE_may_alias -+# define __lzo_HAVE_may_alias 1 -+# endif -+#else -+# define __lzo_may_alias /*empty*/ -+#endif -+#if !defined(__lzo_noreturn) -+#if (LZO_CC_GNUC >= 0x020700ul) -+# define __lzo_noreturn __attribute__((__noreturn__)) -+#elif (LZO_CC_IBMC >= 700) -+# define __lzo_noreturn __attribute__((__noreturn__)) -+#elif (LZO_CC_INTELC_MSC && (__INTEL_COMPILER >= 450)) -+# define __lzo_noreturn __declspec(noreturn) -+#elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 600)) -+# define __lzo_noreturn __attribute__((__noreturn__)) -+#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) -+# define __lzo_noreturn __attribute__((__noreturn__)) -+#elif (LZO_CC_MSC && (_MSC_VER >= 1200)) -+# define __lzo_noreturn __declspec(noreturn) -+#elif (LZO_CC_PGI >= 0x0d0a00ul) -+# define __lzo_noreturn __attribute__((__noreturn__)) -+#endif -+#endif -+#if defined(__lzo_noreturn) -+# ifndef __lzo_HAVE_noreturn -+# define __lzo_HAVE_noreturn 1 -+# endif -+#else -+# define __lzo_noreturn /*empty*/ -+#endif -+#if !defined(__lzo_nothrow) -+#if (LZO_CC_GNUC >= 0x030300ul) -+# define __lzo_nothrow __attribute__((__nothrow__)) -+#elif (LZO_CC_INTELC_MSC && (__INTEL_COMPILER >= 450)) && defined(__cplusplus) -+# define __lzo_nothrow __declspec(nothrow) -+#elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 900)) -+# define __lzo_nothrow __attribute__((__nothrow__)) -+#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) -+# define __lzo_nothrow __attribute__((__nothrow__)) -+#elif (LZO_CC_MSC && (_MSC_VER >= 1200)) && defined(__cplusplus) - # define __lzo_nothrow __declspec(nothrow) - #endif - #endif - #if defined(__lzo_nothrow) -+# ifndef __lzo_HAVE_nothrow - # define __lzo_HAVE_nothrow 1 -+# endif - #else - # define __lzo_nothrow /*empty*/ - #endif - #if !defined(__lzo_restrict) - #if (LZO_CC_GNUC >= 0x030400ul) - # define __lzo_restrict __restrict__ --#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 600) && LZO_CC_SYNTAX_GNUC) -+#elif (LZO_CC_IBMC >= 800) && !defined(__cplusplus) - # define __lzo_restrict __restrict__ --#elif (LZO_CC_CLANG || LZO_CC_LLVM) -+#elif (LZO_CC_IBMC >= 1210) -+# define __lzo_restrict __restrict__ -+#elif (LZO_CC_INTELC_MSC && (__INTEL_COMPILER >= 600)) -+#elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 600)) -+# define __lzo_restrict __restrict__ -+#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM) - # define __lzo_restrict __restrict__ - #elif (LZO_CC_MSC && (_MSC_VER >= 1400)) - # define __lzo_restrict __restrict -+#elif (LZO_CC_PGI >= 0x0d0a00ul) -+# define __lzo_restrict __restrict__ - #endif - #endif - #if defined(__lzo_restrict) -+# ifndef __lzo_HAVE_restrict - # define __lzo_HAVE_restrict 1 -+# endif - #else - # define __lzo_restrict /*empty*/ - #endif -+#if !defined(__lzo_alignof) -+#if (LZO_CC_ARMCC || LZO_CC_CILLY || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || LZO_CC_PGI) -+# define __lzo_alignof(e) __alignof__(e) -+#elif (LZO_CC_GHS) && !defined(__cplusplus) -+# define __lzo_alignof(e) __alignof__(e) -+#elif (LZO_CC_IBMC >= 600) -+# define __lzo_alignof(e) (__lzo_gnuc_extension__ __alignof__(e)) -+#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 700)) -+# define __lzo_alignof(e) __alignof__(e) -+#elif (LZO_CC_MSC && (_MSC_VER >= 1300)) -+# define __lzo_alignof(e) __alignof(e) -+#elif (LZO_CC_SUNPROC >= 0x5100) -+# define __lzo_alignof(e) __alignof__(e) -+#endif -+#endif -+#if defined(__lzo_alignof) -+# ifndef __lzo_HAVE_alignof -+# define __lzo_HAVE_alignof 1 -+# endif -+#endif -+#if !defined(__lzo_struct_packed) -+#if (LZO_CC_CLANG && (LZO_CC_CLANG < 0x020800ul)) && defined(__cplusplus) -+#elif (LZO_CC_GNUC && (LZO_CC_GNUC < 0x020700ul)) -+#elif (LZO_CC_GNUC && (LZO_CC_GNUC < 0x020800ul)) && defined(__cplusplus) -+#elif (LZO_CC_PCC && (LZO_CC_PCC < 0x010100ul)) -+#elif (LZO_CC_SUNPROC && (LZO_CC_SUNPROC < 0x5110)) && !defined(__cplusplus) -+#elif (LZO_CC_GNUC >= 0x030400ul) && !(LZO_CC_PCC_GNUC) && (LZO_ARCH_AMD64 || LZO_ARCH_I386) -+# define __lzo_struct_packed(s) struct s { -+# define __lzo_struct_packed_end() } __attribute__((__gcc_struct__,__packed__)); -+# define __lzo_struct_packed_ma_end() } __lzo_may_alias __attribute__((__gcc_struct__,__packed__)); -+#elif (LZO_CC_ARMCC || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_INTELC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || (LZO_CC_PGI >= 0x0d0a00ul) || (LZO_CC_SUNPROC >= 0x5100)) -+# define __lzo_struct_packed(s) struct s { -+# define __lzo_struct_packed_end() } __attribute__((__packed__)); -+# define __lzo_struct_packed_ma_end() } __lzo_may_alias __attribute__((__packed__)); -+#elif (LZO_CC_IBMC >= 700) -+# define __lzo_struct_packed(s) __lzo_gnuc_extension__ struct s { -+# define __lzo_struct_packed_end() } __attribute__((__packed__)); -+# define __lzo_struct_packed_ma_end() } __lzo_may_alias __attribute__((__packed__)); -+#elif (LZO_CC_INTELC_MSC) || (LZO_CC_MSC && (_MSC_VER >= 1300)) -+# define __lzo_struct_packed(s) __pragma(pack(push,1)) struct s { -+# define __lzo_struct_packed_end() } __pragma(pack(pop)); -+#elif (LZO_CC_WATCOMC && (__WATCOMC__ >= 900)) -+# define __lzo_struct_packed(s) _Packed struct s { -+# define __lzo_struct_packed_end() }; -+#endif -+#endif -+#if defined(__lzo_struct_packed) && !defined(__lzo_struct_packed_ma) -+# define __lzo_struct_packed_ma(s) __lzo_struct_packed(s) -+#endif -+#if defined(__lzo_struct_packed_end) && !defined(__lzo_struct_packed_ma_end) -+# define __lzo_struct_packed_ma_end() __lzo_struct_packed_end() -+#endif -+#if !defined(__lzo_byte_struct) -+#if defined(__lzo_struct_packed) -+# define __lzo_byte_struct(s,n) __lzo_struct_packed(s) unsigned char a[n]; __lzo_struct_packed_end() -+# define __lzo_byte_struct_ma(s,n) __lzo_struct_packed_ma(s) unsigned char a[n]; __lzo_struct_packed_ma_end() -+#elif (LZO_CC_CILLY || LZO_CC_CLANG || LZO_CC_PGI || (LZO_CC_SUNPROC >= 0x5100)) -+# define __lzo_byte_struct(s,n) struct s { unsigned char a[n]; } __attribute__((__packed__)); -+# define __lzo_byte_struct_ma(s,n) struct s { unsigned char a[n]; } __lzo_may_alias __attribute__((__packed__)); -+#endif -+#endif -+#if defined(__lzo_byte_struct) && !defined(__lzo_byte_struct_ma) -+# define __lzo_byte_struct_ma(s,n) __lzo_byte_struct(s,n) -+#endif -+#if !defined(__lzo_struct_align16) && (__lzo_HAVE_alignof) -+#if (LZO_CC_GNUC && (LZO_CC_GNUC < 0x030000ul)) -+#elif (LZO_CC_CLANG && (LZO_CC_CLANG < 0x020800ul)) && defined(__cplusplus) -+#elif (LZO_CC_CILLY || LZO_CC_PCC) -+#elif (LZO_CC_INTELC_MSC) || (LZO_CC_MSC && (_MSC_VER >= 1300)) -+# define __lzo_struct_align16(s) struct __declspec(align(16)) s { -+# define __lzo_struct_align16_end() }; -+# define __lzo_struct_align32(s) struct __declspec(align(32)) s { -+# define __lzo_struct_align32_end() }; -+# define __lzo_struct_align64(s) struct __declspec(align(64)) s { -+# define __lzo_struct_align64_end() }; -+#elif (LZO_CC_ARMCC || LZO_CC_CLANG || LZO_CC_GNUC || (LZO_CC_IBMC >= 700) || LZO_CC_INTELC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE) -+# define __lzo_struct_align16(s) struct s { -+# define __lzo_struct_align16_end() } __attribute__((__aligned__(16))); -+# define __lzo_struct_align32(s) struct s { -+# define __lzo_struct_align32_end() } __attribute__((__aligned__(32))); -+# define __lzo_struct_align64(s) struct s { -+# define __lzo_struct_align64_end() } __attribute__((__aligned__(64))); -+#endif -+#endif -+#if !defined(__lzo_union_um) -+#if (LZO_CC_CLANG && (LZO_CC_CLANG < 0x020800ul)) && defined(__cplusplus) -+#elif (LZO_CC_GNUC && (LZO_CC_GNUC < 0x020700ul)) -+#elif (LZO_CC_GNUC && (LZO_CC_GNUC < 0x020800ul)) && defined(__cplusplus) -+#elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER < 810)) -+#elif (LZO_CC_PCC && (LZO_CC_PCC < 0x010100ul)) -+#elif (LZO_CC_SUNPROC && (LZO_CC_SUNPROC < 0x5110)) && !defined(__cplusplus) -+#elif (LZO_CC_ARMCC || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_INTELC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || (LZO_CC_PGI >= 0x0d0a00ul) || (LZO_CC_SUNPROC >= 0x5100)) -+# define __lzo_union_am(s) union s { -+# define __lzo_union_am_end() } __lzo_may_alias; -+# define __lzo_union_um(s) union s { -+# define __lzo_union_um_end() } __lzo_may_alias __attribute__((__packed__)); -+#elif (LZO_CC_IBMC >= 700) -+# define __lzo_union_am(s) __lzo_gnuc_extension__ union s { -+# define __lzo_union_am_end() } __lzo_may_alias; -+# define __lzo_union_um(s) __lzo_gnuc_extension__ union s { -+# define __lzo_union_um_end() } __lzo_may_alias __attribute__((__packed__)); -+#elif (LZO_CC_INTELC_MSC) || (LZO_CC_MSC && (_MSC_VER >= 1300)) -+# define __lzo_union_um(s) __pragma(pack(push,1)) union s { -+# define __lzo_union_um_end() } __pragma(pack(pop)); -+#elif (LZO_CC_WATCOMC && (__WATCOMC__ >= 900)) -+# define __lzo_union_um(s) _Packed union s { -+# define __lzo_union_um_end() }; -+#endif -+#endif -+#if !defined(__lzo_union_am) -+# define __lzo_union_am(s) union s { -+# define __lzo_union_am_end() }; -+#endif -+#if !defined(__lzo_constructor) -+#if (LZO_CC_GNUC >= 0x030400ul) -+# define __lzo_constructor __attribute__((__constructor__,__used__)) -+#elif (LZO_CC_GNUC >= 0x020700ul) -+# define __lzo_constructor __attribute__((__constructor__)) -+#elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 800)) -+# define __lzo_constructor __attribute__((__constructor__,__used__)) -+#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) -+# define __lzo_constructor __attribute__((__constructor__)) -+#endif -+#endif -+#if defined(__lzo_constructor) -+# ifndef __lzo_HAVE_constructor -+# define __lzo_HAVE_constructor 1 -+# endif -+#endif -+#if !defined(__lzo_destructor) -+#if (LZO_CC_GNUC >= 0x030400ul) -+# define __lzo_destructor __attribute__((__destructor__,__used__)) -+#elif (LZO_CC_GNUC >= 0x020700ul) -+# define __lzo_destructor __attribute__((__destructor__)) -+#elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 800)) -+# define __lzo_destructor __attribute__((__destructor__,__used__)) -+#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) -+# define __lzo_destructor __attribute__((__destructor__)) -+#endif -+#endif -+#if defined(__lzo_destructor) -+# ifndef __lzo_HAVE_destructor -+# define __lzo_HAVE_destructor 1 -+# endif -+#endif -+#if (__lzo_HAVE_destructor) && !(__lzo_HAVE_constructor) -+# error "unexpected configuration - check your compiler defines" -+#endif - #if !defined(__lzo_likely) && !defined(__lzo_unlikely) - #if (LZO_CC_GNUC >= 0x030200ul) - # define __lzo_likely(e) (__builtin_expect(!!(e),1)) - # define __lzo_unlikely(e) (__builtin_expect(!!(e),0)) -+#elif (LZO_CC_IBMC >= 1010) -+# define __lzo_likely(e) (__builtin_expect(!!(e),1)) -+# define __lzo_unlikely(e) (__builtin_expect(!!(e),0)) - #elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 800)) - # define __lzo_likely(e) (__builtin_expect(!!(e),1)) - # define __lzo_unlikely(e) (__builtin_expect(!!(e),0)) --#elif (LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) -+#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) - # define __lzo_likely(e) (__builtin_expect(!!(e),1)) - # define __lzo_unlikely(e) (__builtin_expect(!!(e),0)) - #endif - #endif - #if defined(__lzo_likely) -+# ifndef __lzo_HAVE_likely - # define __lzo_HAVE_likely 1 -+# endif - #else - # define __lzo_likely(e) (e) - #endif - #if defined(__lzo_unlikely) -+# ifndef __lzo_HAVE_unlikely - # define __lzo_HAVE_unlikely 1 -+# endif - #else - # define __lzo_unlikely(e) (e) - #endif --#if !defined(LZO_UNUSED) --# if (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0600)) --# define LZO_UNUSED(var) ((void) &var) --# elif (LZO_CC_BORLANDC || LZO_CC_HIGHC || LZO_CC_NDPC || LZO_CC_PELLESC || LZO_CC_TURBOC) --# define LZO_UNUSED(var) if (&var) ; else --# elif (LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE) --# define LZO_UNUSED(var) ((void) var) --# elif (LZO_CC_MSC && (_MSC_VER < 900)) --# define LZO_UNUSED(var) if (&var) ; else --# elif (LZO_CC_KEILC) --# define LZO_UNUSED(var) {extern int __lzo_unused[1-2*!(sizeof(var)>0)];} --# elif (LZO_CC_PACIFICC) --# define LZO_UNUSED(var) ((void) sizeof(var)) --# elif (LZO_CC_WATCOMC) && defined(__cplusplus) --# define LZO_UNUSED(var) ((void) var) -+#if !defined(__lzo_static_unused_void_func) -+# if 1 && (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || (LZO_CC_GNUC >= 0x020700ul) || LZO_CC_INTELC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || LZO_CC_PGI) -+# define __lzo_static_unused_void_func(f) static void __attribute__((__unused__)) f(void) - # else --# define LZO_UNUSED(var) ((void) &var) -+# define __lzo_static_unused_void_func(f) static __lzo_inline void f(void) - # endif - #endif --#if !defined(LZO_UNUSED_FUNC) --# if (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0600)) --# define LZO_UNUSED_FUNC(func) ((void) func) --# elif (LZO_CC_BORLANDC || LZO_CC_NDPC || LZO_CC_TURBOC) --# define LZO_UNUSED_FUNC(func) if (func) ; else --# elif (LZO_CC_CLANG || LZO_CC_LLVM) --# define LZO_UNUSED_FUNC(func) ((void) &func) --# elif (LZO_CC_MSC && (_MSC_VER < 900)) --# define LZO_UNUSED_FUNC(func) if (func) ; else --# elif (LZO_CC_MSC) --# define LZO_UNUSED_FUNC(func) ((void) &func) --# elif (LZO_CC_KEILC || LZO_CC_PELLESC) --# define LZO_UNUSED_FUNC(func) {extern int __lzo_unused[1-2*!(sizeof((int)func)>0)];} -+#if !defined(__lzo_loop_forever) -+# if (LZO_CC_IBMC) -+# define __lzo_loop_forever() LZO_BLOCK_BEGIN for (;;) { ; } LZO_BLOCK_END - # else --# define LZO_UNUSED_FUNC(func) ((void) func) -+# define __lzo_loop_forever() do { ; } while __lzo_cte(1) - # endif - #endif --#if !defined(LZO_UNUSED_LABEL) --# if (LZO_CC_WATCOMC) && defined(__cplusplus) --# define LZO_UNUSED_LABEL(l) switch(0) case 1:goto l --# elif (LZO_CC_CLANG || LZO_CC_INTELC || LZO_CC_WATCOMC) --# define LZO_UNUSED_LABEL(l) if (0) goto l --# else --# define LZO_UNUSED_LABEL(l) switch(0) case 1:goto l --# endif -+#if !defined(__lzo_unreachable) -+#if (LZO_CC_CLANG && (LZO_CC_CLANG >= 0x020800ul)) -+# define __lzo_unreachable() __builtin_unreachable(); -+#elif (LZO_CC_GNUC >= 0x040500ul) -+# define __lzo_unreachable() __builtin_unreachable(); -+#elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 1300)) && 1 -+# define __lzo_unreachable() __builtin_unreachable(); - #endif --#if !defined(LZO_DEFINE_UNINITIALIZED_VAR) -+#endif -+#if defined(__lzo_unreachable) -+# ifndef __lzo_HAVE_unreachable -+# define __lzo_HAVE_unreachable 1 -+# endif -+#else - # if 0 --# define LZO_DEFINE_UNINITIALIZED_VAR(type,var,init) type var --# elif 0 && (LZO_CC_GNUC) --# define LZO_DEFINE_UNINITIALIZED_VAR(type,var,init) type var = var -+# define __lzo_unreachable() ((void)0); - # else --# define LZO_DEFINE_UNINITIALIZED_VAR(type,var,init) type var = init -+# define __lzo_unreachable() __lzo_loop_forever(); - # endif - #endif --#if !defined(LZO_UNCONST_CAST) --# if 0 && defined(__cplusplus) --# define LZO_UNCONST_CAST(t,e) (const_cast (e)) --# elif (LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE) --# define LZO_UNCONST_CAST(t,e) ((t) ((void *) ((char *) ((lzo_uintptr_t) ((const void *) (e)))))) --# else --# define LZO_UNCONST_CAST(t,e) ((t) ((void *) ((char *) ((const void *) (e))))) --# endif -+#ifndef __LZO_CTA_NAME -+#if (LZO_CFG_USE_COUNTER) -+# define __LZO_CTA_NAME(a) LZO_PP_ECONCAT2(a,__COUNTER__) -+#else -+# define __LZO_CTA_NAME(a) LZO_PP_ECONCAT2(a,__LINE__) -+#endif - #endif - #if !defined(LZO_COMPILE_TIME_ASSERT_HEADER) - # if (LZO_CC_AZTECC || LZO_CC_ZORTECHC) --# define LZO_COMPILE_TIME_ASSERT_HEADER(e) extern int __lzo_cta[1-!(e)]; -+# define LZO_COMPILE_TIME_ASSERT_HEADER(e) LZO_EXTERN_C_BEGIN extern int __LZO_CTA_NAME(lzo_cta__)[1-!(e)]; LZO_EXTERN_C_END - # elif (LZO_CC_DMC || LZO_CC_SYMANTECC) --# define LZO_COMPILE_TIME_ASSERT_HEADER(e) extern int __lzo_cta[1u-2*!(e)]; -+# define LZO_COMPILE_TIME_ASSERT_HEADER(e) LZO_EXTERN_C_BEGIN extern int __LZO_CTA_NAME(lzo_cta__)[1u-2*!(e)]; LZO_EXTERN_C_END - # elif (LZO_CC_TURBOC && (__TURBOC__ == 0x0295)) --# define LZO_COMPILE_TIME_ASSERT_HEADER(e) extern int __lzo_cta[1-!(e)]; -+# define LZO_COMPILE_TIME_ASSERT_HEADER(e) LZO_EXTERN_C_BEGIN extern int __LZO_CTA_NAME(lzo_cta__)[1-!(e)]; LZO_EXTERN_C_END -+# elif (LZO_CC_CLANG && (LZO_CC_CLANG < 0x020900ul)) && defined(__cplusplus) -+# define LZO_COMPILE_TIME_ASSERT_HEADER(e) LZO_EXTERN_C_BEGIN int __LZO_CTA_NAME(lzo_cta_f__)(int [1-2*!(e)]); LZO_EXTERN_C_END -+# elif (LZO_CC_GNUC) && defined(__CHECKER__) && defined(__SPARSE_CHECKER__) -+# define LZO_COMPILE_TIME_ASSERT_HEADER(e) LZO_EXTERN_C_BEGIN enum {__LZO_CTA_NAME(lzo_cta_e__)=1/!!(e)} __attribute__((__unused__)); LZO_EXTERN_C_END - # else --# define LZO_COMPILE_TIME_ASSERT_HEADER(e) extern int __lzo_cta[1-2*!(e)]; -+# define LZO_COMPILE_TIME_ASSERT_HEADER(e) LZO_EXTERN_C_BEGIN extern int __LZO_CTA_NAME(lzo_cta__)[1-2*!(e)]; LZO_EXTERN_C_END - # endif - #endif - #if !defined(LZO_COMPILE_TIME_ASSERT) - # if (LZO_CC_AZTECC) --# define LZO_COMPILE_TIME_ASSERT(e) {typedef int __lzo_cta_t[1-!(e)];} -+# define LZO_COMPILE_TIME_ASSERT(e) {typedef int __LZO_CTA_NAME(lzo_cta_t__)[1-!(e)];} - # elif (LZO_CC_DMC || LZO_CC_PACIFICC || LZO_CC_SYMANTECC || LZO_CC_ZORTECHC) - # define LZO_COMPILE_TIME_ASSERT(e) switch(0) case 1:case !(e):break; -+# elif (LZO_CC_GNUC) && defined(__CHECKER__) && defined(__SPARSE_CHECKER__) -+# define LZO_COMPILE_TIME_ASSERT(e) {(void) (0/!!(e));} -+# elif (LZO_CC_GNUC >= 0x040700ul) && (LZO_CFG_USE_COUNTER) && defined(__cplusplus) -+# define LZO_COMPILE_TIME_ASSERT(e) {enum {__LZO_CTA_NAME(lzo_cta_e__)=1/!!(e)} __attribute__((__unused__));} -+# elif (LZO_CC_GNUC >= 0x040700ul) -+# define LZO_COMPILE_TIME_ASSERT(e) {typedef int __LZO_CTA_NAME(lzo_cta_t__)[1-2*!(e)] __attribute__((__unused__));} - # elif (LZO_CC_MSC && (_MSC_VER < 900)) - # define LZO_COMPILE_TIME_ASSERT(e) switch(0) case 1:case !(e):break; - # elif (LZO_CC_TURBOC && (__TURBOC__ == 0x0295)) - # define LZO_COMPILE_TIME_ASSERT(e) switch(0) case 1:case !(e):break; - # else --# define LZO_COMPILE_TIME_ASSERT(e) {typedef int __lzo_cta_t[1-2*!(e)];} -+# define LZO_COMPILE_TIME_ASSERT(e) {typedef int __LZO_CTA_NAME(lzo_cta_t__)[1-2*!(e)];} - # endif - #endif -+LZO_COMPILE_TIME_ASSERT_HEADER(1 == 1) -+#if defined(__cplusplus) -+extern "C" { LZO_COMPILE_TIME_ASSERT_HEADER(2 == 2) } -+#endif -+LZO_COMPILE_TIME_ASSERT_HEADER(3 == 3) - #if (LZO_ARCH_I086 || LZO_ARCH_I386) && (LZO_OS_DOS16 || LZO_OS_DOS32 || LZO_OS_OS2 || LZO_OS_OS216 || LZO_OS_WIN16 || LZO_OS_WIN32 || LZO_OS_WIN64) - # if (LZO_CC_GNUC || LZO_CC_HIGHC || LZO_CC_NDPC || LZO_CC_PACIFICC) - # elif (LZO_CC_DMC || LZO_CC_SYMANTECC || LZO_CC_ZORTECHC) -@@ -1681,99 +1916,654 @@ extern "C" { - # elif defined(_MT) - # define __lzo_cdecl_sighandler _far _cdecl - # else --# define __lzo_cdecl_sighandler _cdecl -+# define __lzo_cdecl_sighandler _cdecl -+# endif -+# else -+# define __lzo_cdecl_sighandler __cdecl -+# endif -+#elif (LZO_ARCH_I386) && (LZO_CC_WATCOMC) -+# define __lzo_cdecl __cdecl -+#elif (LZO_ARCH_M68K && LZO_OS_TOS && (LZO_CC_PUREC || LZO_CC_TURBOC)) -+# define __lzo_cdecl cdecl -+#endif -+#if !defined(__lzo_cdecl) -+# define __lzo_cdecl /*empty*/ -+#endif -+#if !defined(__lzo_cdecl_atexit) -+# define __lzo_cdecl_atexit /*empty*/ -+#endif -+#if !defined(__lzo_cdecl_main) -+# define __lzo_cdecl_main /*empty*/ -+#endif -+#if !defined(__lzo_cdecl_qsort) -+# define __lzo_cdecl_qsort /*empty*/ -+#endif -+#if !defined(__lzo_cdecl_sighandler) -+# define __lzo_cdecl_sighandler /*empty*/ -+#endif -+#if !defined(__lzo_cdecl_va) -+# define __lzo_cdecl_va __lzo_cdecl -+#endif -+#if !(LZO_CFG_NO_WINDOWS_H) -+#if !defined(LZO_HAVE_WINDOWS_H) -+#if (LZO_OS_CYGWIN || (LZO_OS_EMX && defined(__RSXNT__)) || LZO_OS_WIN32 || LZO_OS_WIN64) -+# if (LZO_CC_WATCOMC && (__WATCOMC__ < 1000)) -+# elif (LZO_OS_WIN32 && LZO_CC_GNUC) && defined(__PW32__) -+# elif ((LZO_OS_CYGWIN || defined(__MINGW32__)) && (LZO_CC_GNUC && (LZO_CC_GNUC < 0x025f00ul))) -+# else -+# define LZO_HAVE_WINDOWS_H 1 -+# endif -+#endif -+#endif -+#endif -+#ifndef LZO_SIZEOF_SHORT -+#if defined(SIZEOF_SHORT) -+# define LZO_SIZEOF_SHORT (SIZEOF_SHORT) -+#elif defined(__SIZEOF_SHORT__) -+# define LZO_SIZEOF_SHORT (__SIZEOF_SHORT__) -+#endif -+#endif -+#ifndef LZO_SIZEOF_INT -+#if defined(SIZEOF_INT) -+# define LZO_SIZEOF_INT (SIZEOF_INT) -+#elif defined(__SIZEOF_INT__) -+# define LZO_SIZEOF_INT (__SIZEOF_INT__) -+#endif -+#endif -+#ifndef LZO_SIZEOF_LONG -+#if defined(SIZEOF_LONG) -+# define LZO_SIZEOF_LONG (SIZEOF_LONG) -+#elif defined(__SIZEOF_LONG__) -+# define LZO_SIZEOF_LONG (__SIZEOF_LONG__) -+#endif -+#endif -+#ifndef LZO_SIZEOF_LONG_LONG -+#if defined(SIZEOF_LONG_LONG) -+# define LZO_SIZEOF_LONG_LONG (SIZEOF_LONG_LONG) -+#elif defined(__SIZEOF_LONG_LONG__) -+# define LZO_SIZEOF_LONG_LONG (__SIZEOF_LONG_LONG__) -+#endif -+#endif -+#ifndef LZO_SIZEOF___INT16 -+#if defined(SIZEOF___INT16) -+# define LZO_SIZEOF___INT16 (SIZEOF___INT16) -+#endif -+#endif -+#ifndef LZO_SIZEOF___INT32 -+#if defined(SIZEOF___INT32) -+# define LZO_SIZEOF___INT32 (SIZEOF___INT32) -+#endif -+#endif -+#ifndef LZO_SIZEOF___INT64 -+#if defined(SIZEOF___INT64) -+# define LZO_SIZEOF___INT64 (SIZEOF___INT64) -+#endif -+#endif -+#ifndef LZO_SIZEOF_VOID_P -+#if defined(SIZEOF_VOID_P) -+# define LZO_SIZEOF_VOID_P (SIZEOF_VOID_P) -+#elif defined(__SIZEOF_POINTER__) -+# define LZO_SIZEOF_VOID_P (__SIZEOF_POINTER__) -+#endif -+#endif -+#ifndef LZO_SIZEOF_SIZE_T -+#if defined(SIZEOF_SIZE_T) -+# define LZO_SIZEOF_SIZE_T (SIZEOF_SIZE_T) -+#elif defined(__SIZEOF_SIZE_T__) -+# define LZO_SIZEOF_SIZE_T (__SIZEOF_SIZE_T__) -+#endif -+#endif -+#ifndef LZO_SIZEOF_PTRDIFF_T -+#if defined(SIZEOF_PTRDIFF_T) -+# define LZO_SIZEOF_PTRDIFF_T (SIZEOF_PTRDIFF_T) -+#elif defined(__SIZEOF_PTRDIFF_T__) -+# define LZO_SIZEOF_PTRDIFF_T (__SIZEOF_PTRDIFF_T__) -+#endif -+#endif -+#define __LZO_LSR(x,b) (((x)+0ul) >> (b)) -+#if !defined(LZO_SIZEOF_SHORT) -+# if (LZO_ARCH_CRAY_PVP) -+# define LZO_SIZEOF_SHORT 8 -+# elif (USHRT_MAX == LZO_0xffffL) -+# define LZO_SIZEOF_SHORT 2 -+# elif (__LZO_LSR(USHRT_MAX,7) == 1) -+# define LZO_SIZEOF_SHORT 1 -+# elif (__LZO_LSR(USHRT_MAX,15) == 1) -+# define LZO_SIZEOF_SHORT 2 -+# elif (__LZO_LSR(USHRT_MAX,31) == 1) -+# define LZO_SIZEOF_SHORT 4 -+# elif (__LZO_LSR(USHRT_MAX,63) == 1) -+# define LZO_SIZEOF_SHORT 8 -+# elif (__LZO_LSR(USHRT_MAX,127) == 1) -+# define LZO_SIZEOF_SHORT 16 -+# else -+# error "LZO_SIZEOF_SHORT" -+# endif -+#endif -+LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_SHORT == sizeof(short)) -+#if !defined(LZO_SIZEOF_INT) -+# if (LZO_ARCH_CRAY_PVP) -+# define LZO_SIZEOF_INT 8 -+# elif (UINT_MAX == LZO_0xffffL) -+# define LZO_SIZEOF_INT 2 -+# elif (UINT_MAX == LZO_0xffffffffL) -+# define LZO_SIZEOF_INT 4 -+# elif (__LZO_LSR(UINT_MAX,7) == 1) -+# define LZO_SIZEOF_INT 1 -+# elif (__LZO_LSR(UINT_MAX,15) == 1) -+# define LZO_SIZEOF_INT 2 -+# elif (__LZO_LSR(UINT_MAX,31) == 1) -+# define LZO_SIZEOF_INT 4 -+# elif (__LZO_LSR(UINT_MAX,63) == 1) -+# define LZO_SIZEOF_INT 8 -+# elif (__LZO_LSR(UINT_MAX,127) == 1) -+# define LZO_SIZEOF_INT 16 -+# else -+# error "LZO_SIZEOF_INT" -+# endif -+#endif -+LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_INT == sizeof(int)) -+#if !defined(LZO_SIZEOF_LONG) -+# if (ULONG_MAX == LZO_0xffffffffL) -+# define LZO_SIZEOF_LONG 4 -+# elif (__LZO_LSR(ULONG_MAX,7) == 1) -+# define LZO_SIZEOF_LONG 1 -+# elif (__LZO_LSR(ULONG_MAX,15) == 1) -+# define LZO_SIZEOF_LONG 2 -+# elif (__LZO_LSR(ULONG_MAX,31) == 1) -+# define LZO_SIZEOF_LONG 4 -+# elif (__LZO_LSR(ULONG_MAX,39) == 1) -+# define LZO_SIZEOF_LONG 5 -+# elif (__LZO_LSR(ULONG_MAX,63) == 1) -+# define LZO_SIZEOF_LONG 8 -+# elif (__LZO_LSR(ULONG_MAX,127) == 1) -+# define LZO_SIZEOF_LONG 16 -+# else -+# error "LZO_SIZEOF_LONG" -+# endif -+#endif -+LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_LONG == sizeof(long)) -+#if !defined(LZO_SIZEOF_LONG_LONG) && !defined(LZO_SIZEOF___INT64) -+#if (LZO_SIZEOF_LONG > 0 && LZO_SIZEOF_LONG < 8) -+# if defined(__LONG_MAX__) && defined(__LONG_LONG_MAX__) -+# if (LZO_CC_GNUC >= 0x030300ul) -+# if ((__LONG_MAX__-0) == (__LONG_LONG_MAX__-0)) -+# define LZO_SIZEOF_LONG_LONG LZO_SIZEOF_LONG -+# elif (__LZO_LSR(__LONG_LONG_MAX__,30) == 1) -+# define LZO_SIZEOF_LONG_LONG 4 -+# endif -+# endif -+# endif -+#endif -+#endif -+#if !defined(LZO_SIZEOF_LONG_LONG) && !defined(LZO_SIZEOF___INT64) -+#if (LZO_SIZEOF_LONG > 0 && LZO_SIZEOF_LONG < 8) -+#if (LZO_ARCH_I086 && LZO_CC_DMC) -+#elif (LZO_CC_CILLY) && defined(__GNUC__) -+# define LZO_SIZEOF_LONG_LONG 8 -+#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE) -+# define LZO_SIZEOF_LONG_LONG 8 -+#elif ((LZO_OS_WIN32 || LZO_OS_WIN64 || defined(_WIN32)) && LZO_CC_MSC && (_MSC_VER >= 1400)) -+# define LZO_SIZEOF_LONG_LONG 8 -+#elif (LZO_OS_WIN64 || defined(_WIN64)) -+# define LZO_SIZEOF___INT64 8 -+#elif (LZO_ARCH_I386 && (LZO_CC_DMC)) -+# define LZO_SIZEOF_LONG_LONG 8 -+#elif (LZO_ARCH_I386 && (LZO_CC_SYMANTECC && (__SC__ >= 0x700))) -+# define LZO_SIZEOF_LONG_LONG 8 -+#elif (LZO_ARCH_I386 && (LZO_CC_INTELC && defined(__linux__))) -+# define LZO_SIZEOF_LONG_LONG 8 -+#elif (LZO_ARCH_I386 && (LZO_CC_MWERKS || LZO_CC_PELLESC || LZO_CC_PGI || LZO_CC_SUNPROC)) -+# define LZO_SIZEOF_LONG_LONG 8 -+#elif (LZO_ARCH_I386 && (LZO_CC_INTELC || LZO_CC_MSC)) -+# define LZO_SIZEOF___INT64 8 -+#elif ((LZO_OS_WIN32 || defined(_WIN32)) && (LZO_CC_MSC)) -+# define LZO_SIZEOF___INT64 8 -+#elif (LZO_ARCH_I386 && (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0520))) -+# define LZO_SIZEOF___INT64 8 -+#elif (LZO_ARCH_I386 && (LZO_CC_WATCOMC && (__WATCOMC__ >= 1100))) -+# define LZO_SIZEOF___INT64 8 -+#elif (LZO_CC_GHS && defined(__LLONG_BIT) && ((__LLONG_BIT-0) == 64)) -+# define LZO_SIZEOF_LONG_LONG 8 -+#elif (LZO_CC_WATCOMC && defined(_INTEGRAL_MAX_BITS) && ((_INTEGRAL_MAX_BITS-0) == 64)) -+# define LZO_SIZEOF___INT64 8 -+#elif (LZO_OS_OS400 || defined(__OS400__)) && defined(__LLP64_IFC__) -+# define LZO_SIZEOF_LONG_LONG 8 -+#elif (defined(__vms) || defined(__VMS)) && ((__INITIAL_POINTER_SIZE-0) == 64) -+# define LZO_SIZEOF_LONG_LONG 8 -+#elif (LZO_CC_SDCC) && (LZO_SIZEOF_INT == 2) -+#elif 1 && defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) -+# define LZO_SIZEOF_LONG_LONG 8 -+#endif -+#endif -+#endif -+#if defined(__cplusplus) && (LZO_CC_GNUC) -+# if (LZO_CC_GNUC < 0x020800ul) -+# undef LZO_SIZEOF_LONG_LONG -+# endif -+#endif -+#if (LZO_CFG_NO_LONG_LONG) -+# undef LZO_SIZEOF_LONG_LONG -+#elif defined(__NO_LONG_LONG) -+# undef LZO_SIZEOF_LONG_LONG -+#elif defined(_NO_LONGLONG) -+# undef LZO_SIZEOF_LONG_LONG -+#endif -+#if !defined(LZO_WORDSIZE) -+#if (LZO_ARCH_ALPHA) -+# define LZO_WORDSIZE 8 -+#elif (LZO_ARCH_AMD64) -+# define LZO_WORDSIZE 8 -+#elif (LZO_ARCH_AVR) -+# define LZO_WORDSIZE 1 -+#elif (LZO_ARCH_H8300) -+# if defined(__NORMAL_MODE__) -+# define LZO_WORDSIZE 4 -+# elif defined(__H8300H__) || defined(__H8300S__) || defined(__H8300SX__) -+# define LZO_WORDSIZE 4 -+# else -+# define LZO_WORDSIZE 2 -+# endif -+#elif (LZO_ARCH_I086) -+# define LZO_WORDSIZE 2 -+#elif (LZO_ARCH_IA64) -+# define LZO_WORDSIZE 8 -+#elif (LZO_ARCH_M16C) -+# define LZO_WORDSIZE 2 -+#elif (LZO_ARCH_SPU) -+# define LZO_WORDSIZE 4 -+#elif (LZO_ARCH_Z80) -+# define LZO_WORDSIZE 1 -+#elif (LZO_SIZEOF_LONG == 8) && ((defined(__mips__) && defined(__R5900__)) || defined(__MIPS_PSX2__)) -+# define LZO_WORDSIZE 8 -+#elif (LZO_OS_OS400 || defined(__OS400__)) -+# define LZO_WORDSIZE 8 -+#elif (defined(__vms) || defined(__VMS)) && (__INITIAL_POINTER_SIZE+0 == 64) -+# define LZO_WORDSIZE 8 -+#endif -+#endif -+#if !defined(LZO_SIZEOF_VOID_P) -+#if defined(__ILP32__) || defined(__ILP32) || defined(_ILP32) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(int) == 4) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(long) == 4) -+# define LZO_SIZEOF_VOID_P 4 -+#elif defined(__ILP64__) || defined(__ILP64) || defined(_ILP64) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(int) == 8) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(long) == 8) -+# define LZO_SIZEOF_VOID_P 8 -+#elif defined(__LLP64__) || defined(__LLP64) || defined(_LLP64) || defined(_WIN64) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(long) == 4) -+# define LZO_SIZEOF_VOID_P 8 -+#elif defined(__LP64__) || defined(__LP64) || defined(_LP64) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(long) == 8) -+# define LZO_SIZEOF_VOID_P 8 -+#elif (LZO_ARCH_AVR) -+# define LZO_SIZEOF_VOID_P 2 -+#elif (LZO_ARCH_C166 || LZO_ARCH_MCS51 || LZO_ARCH_MCS251 || LZO_ARCH_MSP430) -+# define LZO_SIZEOF_VOID_P 2 -+#elif (LZO_ARCH_H8300) -+# if defined(__NORMAL_MODE__) -+# define LZO_SIZEOF_VOID_P 2 -+# elif defined(__H8300H__) || defined(__H8300S__) || defined(__H8300SX__) -+# define LZO_SIZEOF_VOID_P 4 -+# else -+# define LZO_SIZEOF_VOID_P 2 -+# endif -+# if (LZO_CC_GNUC && (LZO_CC_GNUC < 0x040000ul)) && (LZO_SIZEOF_INT == 4) -+# define LZO_SIZEOF_SIZE_T LZO_SIZEOF_INT -+# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_INT -+# endif -+#elif (LZO_ARCH_I086) -+# if (LZO_MM_TINY || LZO_MM_SMALL || LZO_MM_MEDIUM) -+# define LZO_SIZEOF_VOID_P 2 -+# elif (LZO_MM_COMPACT || LZO_MM_LARGE || LZO_MM_HUGE) -+# define LZO_SIZEOF_VOID_P 4 -+# else -+# error "invalid LZO_ARCH_I086 memory model" -+# endif -+#elif (LZO_ARCH_M16C) -+# if defined(__m32c_cpu__) || defined(__m32cm_cpu__) -+# define LZO_SIZEOF_VOID_P 4 -+# else -+# define LZO_SIZEOF_VOID_P 2 -+# endif -+#elif (LZO_ARCH_SPU) -+# define LZO_SIZEOF_VOID_P 4 -+#elif (LZO_ARCH_Z80) -+# define LZO_SIZEOF_VOID_P 2 -+#elif (LZO_SIZEOF_LONG == 8) && ((defined(__mips__) && defined(__R5900__)) || defined(__MIPS_PSX2__)) -+# define LZO_SIZEOF_VOID_P 4 -+#elif (LZO_OS_OS400 || defined(__OS400__)) -+# if defined(__LLP64_IFC__) -+# define LZO_SIZEOF_VOID_P 8 -+# define LZO_SIZEOF_SIZE_T LZO_SIZEOF_LONG -+# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_LONG -+# else -+# define LZO_SIZEOF_VOID_P 16 -+# define LZO_SIZEOF_SIZE_T LZO_SIZEOF_LONG -+# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_LONG -+# endif -+#elif (defined(__vms) || defined(__VMS)) && (__INITIAL_POINTER_SIZE+0 == 64) -+# define LZO_SIZEOF_VOID_P 8 -+# define LZO_SIZEOF_SIZE_T LZO_SIZEOF_LONG -+# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_LONG -+#endif -+#endif -+#if !defined(LZO_SIZEOF_VOID_P) -+# define LZO_SIZEOF_VOID_P LZO_SIZEOF_LONG -+#endif -+LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_VOID_P == sizeof(void *)) -+#if !defined(LZO_SIZEOF_SIZE_T) -+#if (LZO_ARCH_I086 || LZO_ARCH_M16C) -+# define LZO_SIZEOF_SIZE_T 2 -+#endif -+#endif -+#if !defined(LZO_SIZEOF_SIZE_T) -+# define LZO_SIZEOF_SIZE_T LZO_SIZEOF_VOID_P -+#endif -+#if defined(offsetof) -+LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_SIZE_T == sizeof(size_t)) -+#endif -+#if !defined(LZO_SIZEOF_PTRDIFF_T) -+#if (LZO_ARCH_I086) -+# if (LZO_MM_TINY || LZO_MM_SMALL || LZO_MM_MEDIUM || LZO_MM_HUGE) -+# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_VOID_P -+# elif (LZO_MM_COMPACT || LZO_MM_LARGE) -+# if (LZO_CC_BORLANDC || LZO_CC_TURBOC) -+# define LZO_SIZEOF_PTRDIFF_T 4 -+# else -+# define LZO_SIZEOF_PTRDIFF_T 2 - # endif - # else --# define __lzo_cdecl_sighandler __cdecl -+# error "invalid LZO_ARCH_I086 memory model" - # endif --#elif (LZO_ARCH_I386) && (LZO_CC_WATCOMC) --# define __lzo_cdecl __cdecl --#elif (LZO_ARCH_M68K && LZO_OS_TOS && (LZO_CC_PUREC || LZO_CC_TURBOC)) --# define __lzo_cdecl cdecl - #endif --#if !defined(__lzo_cdecl) --# define __lzo_cdecl /*empty*/ - #endif --#if !defined(__lzo_cdecl_atexit) --# define __lzo_cdecl_atexit /*empty*/ -+#if !defined(LZO_SIZEOF_PTRDIFF_T) -+# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_SIZE_T - #endif --#if !defined(__lzo_cdecl_main) --# define __lzo_cdecl_main /*empty*/ -+#if defined(offsetof) -+LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_PTRDIFF_T == sizeof(ptrdiff_t)) - #endif --#if !defined(__lzo_cdecl_qsort) --# define __lzo_cdecl_qsort /*empty*/ -+#if !defined(LZO_WORDSIZE) -+# define LZO_WORDSIZE LZO_SIZEOF_VOID_P - #endif --#if !defined(__lzo_cdecl_sighandler) --# define __lzo_cdecl_sighandler /*empty*/ -+#if (LZO_ABI_NEUTRAL_ENDIAN) -+# undef LZO_ABI_BIG_ENDIAN -+# undef LZO_ABI_LITTLE_ENDIAN -+#elif !(LZO_ABI_BIG_ENDIAN) && !(LZO_ABI_LITTLE_ENDIAN) -+#if (LZO_ARCH_ALPHA) && (LZO_ARCH_CRAY_MPP) -+# define LZO_ABI_BIG_ENDIAN 1 -+#elif (LZO_ARCH_IA64) && (LZO_OS_POSIX_LINUX || LZO_OS_WIN64) -+# define LZO_ABI_LITTLE_ENDIAN 1 -+#elif (LZO_ARCH_ALPHA || LZO_ARCH_AMD64 || LZO_ARCH_BLACKFIN || LZO_ARCH_CRIS || LZO_ARCH_I086 || LZO_ARCH_I386 || LZO_ARCH_MSP430) -+# define LZO_ABI_LITTLE_ENDIAN 1 -+#elif (LZO_ARCH_AVR32 || LZO_ARCH_M68K || LZO_ARCH_S390 || LZO_ARCH_SPU) -+# define LZO_ABI_BIG_ENDIAN 1 -+#elif 1 && defined(__IAR_SYSTEMS_ICC__) && defined(__LITTLE_ENDIAN__) -+# if (__LITTLE_ENDIAN__ == 1) -+# define LZO_ABI_LITTLE_ENDIAN 1 -+# else -+# define LZO_ABI_BIG_ENDIAN 1 -+# endif -+#elif 1 && defined(__BIG_ENDIAN__) && !defined(__LITTLE_ENDIAN__) -+# define LZO_ABI_BIG_ENDIAN 1 -+#elif 1 && defined(__LITTLE_ENDIAN__) && !defined(__BIG_ENDIAN__) -+# define LZO_ABI_LITTLE_ENDIAN 1 -+#elif 1 && (LZO_ARCH_ARM) && defined(__ARMEB__) && !defined(__ARMEL__) -+# define LZO_ABI_BIG_ENDIAN 1 -+#elif 1 && (LZO_ARCH_ARM) && defined(__ARMEL__) && !defined(__ARMEB__) -+# define LZO_ABI_LITTLE_ENDIAN 1 -+#elif 1 && (LZO_ARCH_ARM && LZO_CC_ARMCC_ARMCC) -+# if defined(__BIG_ENDIAN) && defined(__LITTLE_ENDIAN) -+# error "unexpected configuration - check your compiler defines" -+# elif defined(__BIG_ENDIAN) -+# define LZO_ABI_BIG_ENDIAN 1 -+# else -+# define LZO_ABI_LITTLE_ENDIAN 1 -+# endif -+# define LZO_ABI_LITTLE_ENDIAN 1 -+#elif 1 && (LZO_ARCH_ARM64) && defined(__AARCH64EB__) && !defined(__AARCH64EL__) -+# define LZO_ABI_BIG_ENDIAN 1 -+#elif 1 && (LZO_ARCH_ARM64) && defined(__AARCH64EL__) && !defined(__AARCH64EB__) -+# define LZO_ABI_LITTLE_ENDIAN 1 -+#elif 1 && (LZO_ARCH_MIPS) && defined(__MIPSEB__) && !defined(__MIPSEL__) -+# define LZO_ABI_BIG_ENDIAN 1 -+#elif 1 && (LZO_ARCH_MIPS) && defined(__MIPSEL__) && !defined(__MIPSEB__) -+# define LZO_ABI_LITTLE_ENDIAN 1 - #endif --#if !defined(__lzo_cdecl_va) --# define __lzo_cdecl_va __lzo_cdecl - #endif --#if !(LZO_CFG_NO_WINDOWS_H) --#if (LZO_OS_CYGWIN || (LZO_OS_EMX && defined(__RSXNT__)) || LZO_OS_WIN32 || LZO_OS_WIN64) --# if (LZO_CC_WATCOMC && (__WATCOMC__ < 1000)) --# elif (LZO_OS_WIN32 && LZO_CC_GNUC) && defined(__PW32__) --# elif ((LZO_OS_CYGWIN || defined(__MINGW32__)) && (LZO_CC_GNUC && (LZO_CC_GNUC < 0x025f00ul))) -+#if (LZO_ABI_BIG_ENDIAN) && (LZO_ABI_LITTLE_ENDIAN) -+# error "unexpected configuration - check your compiler defines" -+#endif -+#if (LZO_ABI_BIG_ENDIAN) -+# define LZO_INFO_ABI_ENDIAN "be" -+#elif (LZO_ABI_LITTLE_ENDIAN) -+# define LZO_INFO_ABI_ENDIAN "le" -+#elif (LZO_ABI_NEUTRAL_ENDIAN) -+# define LZO_INFO_ABI_ENDIAN "neutral" -+#endif -+#if (LZO_SIZEOF_INT == 1 && LZO_SIZEOF_LONG == 2 && LZO_SIZEOF_VOID_P == 2) -+# define LZO_ABI_I8LP16 1 -+# define LZO_INFO_ABI_PM "i8lp16" -+#elif (LZO_SIZEOF_INT == 2 && LZO_SIZEOF_LONG == 2 && LZO_SIZEOF_VOID_P == 2) -+# define LZO_ABI_ILP16 1 -+# define LZO_INFO_ABI_PM "ilp16" -+#elif (LZO_SIZEOF_INT == 2 && LZO_SIZEOF_LONG == 4 && LZO_SIZEOF_VOID_P == 4) -+# define LZO_ABI_LP32 1 -+# define LZO_INFO_ABI_PM "lp32" -+#elif (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_LONG == 4 && LZO_SIZEOF_VOID_P == 4) -+# define LZO_ABI_ILP32 1 -+# define LZO_INFO_ABI_PM "ilp32" -+#elif (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_LONG == 4 && LZO_SIZEOF_VOID_P == 8 && LZO_SIZEOF_SIZE_T == 8) -+# define LZO_ABI_LLP64 1 -+# define LZO_INFO_ABI_PM "llp64" -+#elif (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_LONG == 8 && LZO_SIZEOF_VOID_P == 8) -+# define LZO_ABI_LP64 1 -+# define LZO_INFO_ABI_PM "lp64" -+#elif (LZO_SIZEOF_INT == 8 && LZO_SIZEOF_LONG == 8 && LZO_SIZEOF_VOID_P == 8) -+# define LZO_ABI_ILP64 1 -+# define LZO_INFO_ABI_PM "ilp64" -+#elif (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_LONG == 8 && LZO_SIZEOF_VOID_P == 4) -+# define LZO_ABI_IP32L64 1 -+# define LZO_INFO_ABI_PM "ip32l64" -+#endif -+#if 0 -+#elif !defined(__LZO_LIBC_OVERRIDE) -+#if (LZO_LIBC_NAKED) -+# define LZO_INFO_LIBC "naked" -+#elif (LZO_LIBC_FREESTANDING) -+# define LZO_INFO_LIBC "freestanding" -+#elif (LZO_LIBC_MOSTLY_FREESTANDING) -+# define LZO_INFO_LIBC "mfreestanding" -+#elif (LZO_LIBC_ISOC90) -+# define LZO_INFO_LIBC "isoc90" -+#elif (LZO_LIBC_ISOC99) -+# define LZO_INFO_LIBC "isoc99" -+#elif (LZO_CC_ARMCC_ARMCC) && defined(__ARMCLIB_VERSION) -+# define LZO_LIBC_ISOC90 1 -+# define LZO_INFO_LIBC "isoc90" -+#elif defined(__dietlibc__) -+# define LZO_LIBC_DIETLIBC 1 -+# define LZO_INFO_LIBC "dietlibc" -+#elif defined(_NEWLIB_VERSION) -+# define LZO_LIBC_NEWLIB 1 -+# define LZO_INFO_LIBC "newlib" -+#elif defined(__UCLIBC__) && defined(__UCLIBC_MAJOR__) && defined(__UCLIBC_MINOR__) -+# if defined(__UCLIBC_SUBLEVEL__) -+# define LZO_LIBC_UCLIBC (__UCLIBC_MAJOR__ * 0x10000L + (__UCLIBC_MINOR__-0) * 0x100 + (__UCLIBC_SUBLEVEL__-0)) - # else --# define LZO_HAVE_WINDOWS_H 1 -+# define LZO_LIBC_UCLIBC 0x00090bL - # endif -+# define LZO_INFO_LIBC "uc" "libc" -+#elif defined(__GLIBC__) && defined(__GLIBC_MINOR__) -+# define LZO_LIBC_GLIBC (__GLIBC__ * 0x10000L + (__GLIBC_MINOR__-0) * 0x100) -+# define LZO_INFO_LIBC "glibc" -+#elif (LZO_CC_MWERKS) && defined(__MSL__) -+# define LZO_LIBC_MSL __MSL__ -+# define LZO_INFO_LIBC "msl" -+#elif 1 && defined(__IAR_SYSTEMS_ICC__) -+# define LZO_LIBC_ISOC90 1 -+# define LZO_INFO_LIBC "isoc90" -+#else -+# define LZO_LIBC_DEFAULT 1 -+# define LZO_INFO_LIBC "default" -+#endif -+#endif -+#if (LZO_ARCH_I386 && (LZO_OS_DOS32 || LZO_OS_WIN32) && (LZO_CC_DMC || LZO_CC_INTELC || LZO_CC_MSC || LZO_CC_PELLESC)) -+# define LZO_ASM_SYNTAX_MSC 1 -+#elif (LZO_OS_WIN64 && (LZO_CC_DMC || LZO_CC_INTELC || LZO_CC_MSC || LZO_CC_PELLESC)) -+#elif (LZO_ARCH_I386 && LZO_CC_GNUC && (LZO_CC_GNUC == 0x011f00ul)) -+#elif (LZO_ARCH_I386 && (LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_INTELC || LZO_CC_PATHSCALE)) -+# define LZO_ASM_SYNTAX_GNUC 1 -+#elif (LZO_ARCH_AMD64 && (LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_INTELC || LZO_CC_PATHSCALE)) -+# define LZO_ASM_SYNTAX_GNUC 1 -+#elif (LZO_CC_GNUC) -+# define LZO_ASM_SYNTAX_GNUC 1 -+#endif -+#if (LZO_ASM_SYNTAX_GNUC) -+#if (LZO_ARCH_I386 && LZO_CC_GNUC && (LZO_CC_GNUC < 0x020000ul)) -+# define __LZO_ASM_CLOBBER "ax" -+# define __LZO_ASM_CLOBBER_LIST_CC /*empty*/ -+# define __LZO_ASM_CLOBBER_LIST_CC_MEMORY /*empty*/ -+# define __LZO_ASM_CLOBBER_LIST_EMPTY /*empty*/ -+#elif (LZO_CC_INTELC && (__INTEL_COMPILER < 1000)) -+# define __LZO_ASM_CLOBBER "memory" -+# define __LZO_ASM_CLOBBER_LIST_CC /*empty*/ -+# define __LZO_ASM_CLOBBER_LIST_CC_MEMORY : "memory" -+# define __LZO_ASM_CLOBBER_LIST_EMPTY /*empty*/ -+#else -+# define __LZO_ASM_CLOBBER "cc", "memory" -+# define __LZO_ASM_CLOBBER_LIST_CC : "cc" -+# define __LZO_ASM_CLOBBER_LIST_CC_MEMORY : "cc", "memory" -+# define __LZO_ASM_CLOBBER_LIST_EMPTY /*empty*/ - #endif - #endif - #if (LZO_ARCH_ALPHA) --# define LZO_OPT_AVOID_UINT_INDEX 1 --# define LZO_OPT_AVOID_SHORT 1 --# define LZO_OPT_AVOID_USHORT 1 -+# define LZO_OPT_AVOID_UINT_INDEX 1 - #elif (LZO_ARCH_AMD64) --# define LZO_OPT_AVOID_INT_INDEX 1 --# define LZO_OPT_AVOID_UINT_INDEX 1 --# define LZO_OPT_UNALIGNED16 1 --# define LZO_OPT_UNALIGNED32 1 --# define LZO_OPT_UNALIGNED64 1 --#elif (LZO_ARCH_ARM && LZO_ARCH_ARM_THUMB) -+# define LZO_OPT_AVOID_INT_INDEX 1 -+# define LZO_OPT_AVOID_UINT_INDEX 1 -+# ifndef LZO_OPT_UNALIGNED16 -+# define LZO_OPT_UNALIGNED16 1 -+# endif -+# ifndef LZO_OPT_UNALIGNED32 -+# define LZO_OPT_UNALIGNED32 1 -+# endif -+# ifndef LZO_OPT_UNALIGNED64 -+# define LZO_OPT_UNALIGNED64 1 -+# endif - #elif (LZO_ARCH_ARM) --# define LZO_OPT_AVOID_SHORT 1 --# define LZO_OPT_AVOID_USHORT 1 -+# if defined(__ARM_FEATURE_UNALIGNED) -+# ifndef LZO_OPT_UNALIGNED16 -+# define LZO_OPT_UNALIGNED16 1 -+# endif -+# ifndef LZO_OPT_UNALIGNED32 -+# define LZO_OPT_UNALIGNED32 1 -+# endif -+# elif defined(__TARGET_ARCH_ARM) && ((__TARGET_ARCH_ARM+0) >= 7) -+# ifndef LZO_OPT_UNALIGNED16 -+# define LZO_OPT_UNALIGNED16 1 -+# endif -+# ifndef LZO_OPT_UNALIGNED32 -+# define LZO_OPT_UNALIGNED32 1 -+# endif -+# elif defined(__TARGET_ARCH_ARM) && ((__TARGET_ARCH_ARM+0) >= 6) && !defined(__TARGET_PROFILE_M) -+# ifndef LZO_OPT_UNALIGNED16 -+# define LZO_OPT_UNALIGNED16 1 -+# endif -+# ifndef LZO_OPT_UNALIGNED32 -+# define LZO_OPT_UNALIGNED32 1 -+# endif -+# endif -+#elif (LZO_ARCH_ARM64) -+# ifndef LZO_OPT_UNALIGNED16 -+# define LZO_OPT_UNALIGNED16 1 -+# endif -+# ifndef LZO_OPT_UNALIGNED32 -+# define LZO_OPT_UNALIGNED32 1 -+# endif -+# ifndef LZO_OPT_UNALIGNED64 -+# define LZO_OPT_UNALIGNED64 1 -+# endif - #elif (LZO_ARCH_CRIS) --# define LZO_OPT_UNALIGNED16 1 --# define LZO_OPT_UNALIGNED32 1 -+# ifndef LZO_OPT_UNALIGNED16 -+# define LZO_OPT_UNALIGNED16 1 -+# endif -+# ifndef LZO_OPT_UNALIGNED32 -+# define LZO_OPT_UNALIGNED32 1 -+# endif - #elif (LZO_ARCH_I386) --# define LZO_OPT_UNALIGNED16 1 --# define LZO_OPT_UNALIGNED32 1 -+# ifndef LZO_OPT_UNALIGNED16 -+# define LZO_OPT_UNALIGNED16 1 -+# endif -+# ifndef LZO_OPT_UNALIGNED32 -+# define LZO_OPT_UNALIGNED32 1 -+# endif - #elif (LZO_ARCH_IA64) --# define LZO_OPT_AVOID_INT_INDEX 1 --# define LZO_OPT_AVOID_UINT_INDEX 1 --# define LZO_OPT_PREFER_POSTINC 1 -+# define LZO_OPT_AVOID_INT_INDEX 1 -+# define LZO_OPT_AVOID_UINT_INDEX 1 -+# define LZO_OPT_PREFER_POSTINC 1 - #elif (LZO_ARCH_M68K) --# define LZO_OPT_PREFER_POSTINC 1 --# define LZO_OPT_PREFER_PREDEC 1 -+# define LZO_OPT_PREFER_POSTINC 1 -+# define LZO_OPT_PREFER_PREDEC 1 - # if defined(__mc68020__) && !defined(__mcoldfire__) --# define LZO_OPT_UNALIGNED16 1 --# define LZO_OPT_UNALIGNED32 1 -+# ifndef LZO_OPT_UNALIGNED16 -+# define LZO_OPT_UNALIGNED16 1 -+# endif -+# ifndef LZO_OPT_UNALIGNED32 -+# define LZO_OPT_UNALIGNED32 1 -+# endif - # endif - #elif (LZO_ARCH_MIPS) --# define LZO_OPT_AVOID_UINT_INDEX 1 -+# define LZO_OPT_AVOID_UINT_INDEX 1 - #elif (LZO_ARCH_POWERPC) --# define LZO_OPT_PREFER_PREINC 1 --# define LZO_OPT_PREFER_PREDEC 1 -+# define LZO_OPT_PREFER_PREINC 1 -+# define LZO_OPT_PREFER_PREDEC 1 - # if (LZO_ABI_BIG_ENDIAN) --# define LZO_OPT_UNALIGNED16 1 --# define LZO_OPT_UNALIGNED32 1 -+# ifndef LZO_OPT_UNALIGNED16 -+# define LZO_OPT_UNALIGNED16 1 -+# endif -+# ifndef LZO_OPT_UNALIGNED32 -+# define LZO_OPT_UNALIGNED32 1 -+# endif -+# if (LZO_WORDSIZE == 8) -+# ifndef LZO_OPT_UNALIGNED64 -+# define LZO_OPT_UNALIGNED64 1 -+# endif -+# endif - # endif - #elif (LZO_ARCH_S390) --# define LZO_OPT_UNALIGNED16 1 --# define LZO_OPT_UNALIGNED32 1 --# if (LZO_SIZEOF_SIZE_T == 8) --# define LZO_OPT_UNALIGNED64 1 -+# ifndef LZO_OPT_UNALIGNED16 -+# define LZO_OPT_UNALIGNED16 1 -+# endif -+# ifndef LZO_OPT_UNALIGNED32 -+# define LZO_OPT_UNALIGNED32 1 -+# endif -+# if (LZO_WORDSIZE == 8) -+# ifndef LZO_OPT_UNALIGNED64 -+# define LZO_OPT_UNALIGNED64 1 -+# endif - # endif - #elif (LZO_ARCH_SH) --# define LZO_OPT_PREFER_POSTINC 1 --# define LZO_OPT_PREFER_PREDEC 1 -+# define LZO_OPT_PREFER_POSTINC 1 -+# define LZO_OPT_PREFER_PREDEC 1 - #endif - #ifndef LZO_CFG_NO_INLINE_ASM --#if (LZO_CC_LLVM) -+#if (LZO_ABI_NEUTRAL_ENDIAN) || (LZO_ARCH_GENERIC) -+# define LZO_CFG_NO_INLINE_ASM 1 -+#elif (LZO_CC_LLVM) - # define LZO_CFG_NO_INLINE_ASM 1 - #endif - #endif -+#if (LZO_CFG_NO_INLINE_ASM) -+# undef LZO_ASM_SYNTAX_MSC -+# undef LZO_ASM_SYNTAX_GNUC -+# undef __LZO_ASM_CLOBBER -+# undef __LZO_ASM_CLOBBER_LIST_CC -+# undef __LZO_ASM_CLOBBER_LIST_CC_MEMORY -+# undef __LZO_ASM_CLOBBER_LIST_EMPTY -+#endif - #ifndef LZO_CFG_NO_UNALIGNED - #if (LZO_ABI_NEUTRAL_ENDIAN) || (LZO_ARCH_GENERIC) - # define LZO_CFG_NO_UNALIGNED 1 -@@ -1784,25 +2574,6 @@ extern "C" { - # undef LZO_OPT_UNALIGNED32 - # undef LZO_OPT_UNALIGNED64 - #endif --#if (LZO_CFG_NO_INLINE_ASM) --#elif (LZO_ARCH_I386 && (LZO_OS_DOS32 || LZO_OS_WIN32) && (LZO_CC_DMC || LZO_CC_INTELC || LZO_CC_MSC || LZO_CC_PELLESC)) --# define LZO_ASM_SYNTAX_MSC 1 --#elif (LZO_OS_WIN64 && (LZO_CC_DMC || LZO_CC_INTELC || LZO_CC_MSC || LZO_CC_PELLESC)) --#elif (LZO_ARCH_I386 && LZO_CC_GNUC && (LZO_CC_GNUC == 0x011f00ul)) --#elif (LZO_ARCH_I386 && (LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_INTELC || LZO_CC_PATHSCALE)) --# define LZO_ASM_SYNTAX_GNUC 1 --#elif (LZO_ARCH_AMD64 && (LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_INTELC || LZO_CC_PATHSCALE)) --# define LZO_ASM_SYNTAX_GNUC 1 --#endif --#if (LZO_ASM_SYNTAX_GNUC) --#if (LZO_ARCH_I386 && LZO_CC_GNUC && (LZO_CC_GNUC < 0x020000ul)) --# define __LZO_ASM_CLOBBER "ax" --#elif (LZO_CC_INTELC) --# define __LZO_ASM_CLOBBER "memory" --#else --# define __LZO_ASM_CLOBBER "cc", "memory" --#endif --#endif - #if defined(__LZO_INFOSTR_MM) - #elif (LZO_MM_FLAT) && (defined(__LZO_INFOSTR_PM) || defined(LZO_INFO_ABI_PM)) - # define __LZO_INFOSTR_MM "" -@@ -1846,7 +2617,382 @@ extern "C" { - #define LZO_INFO_STRING \ - LZO_INFO_ARCH __LZO_INFOSTR_MM __LZO_INFOSTR_PM __LZO_INFOSTR_ENDIAN \ - " " __LZO_INFOSTR_OSNAME __LZO_INFOSTR_LIBC " " LZO_INFO_CC __LZO_INFOSTR_CCVER -+#if !(LZO_CFG_SKIP_LZO_TYPES) -+#if (!(LZO_SIZEOF_SHORT+0 > 0 && LZO_SIZEOF_INT+0 > 0 && LZO_SIZEOF_LONG+0 > 0)) -+# error "missing defines for sizes" -+#endif -+#if (!(LZO_SIZEOF_PTRDIFF_T+0 > 0 && LZO_SIZEOF_SIZE_T+0 > 0 && LZO_SIZEOF_VOID_P+0 > 0)) -+# error "missing defines for sizes" -+#endif -+#if !defined(lzo_llong_t) -+#if (LZO_SIZEOF_LONG_LONG+0 > 0) -+__lzo_gnuc_extension__ typedef long long lzo_llong_t__; -+__lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__; -+# define lzo_llong_t lzo_llong_t__ -+# define lzo_ullong_t lzo_ullong_t__ -+#endif -+#endif -+#if !defined(lzo_int16e_t) -+#if (LZO_SIZEOF_LONG == 2) -+# define lzo_int16e_t long -+# define lzo_uint16e_t unsigned long -+#elif (LZO_SIZEOF_INT == 2) -+# define lzo_int16e_t int -+# define lzo_uint16e_t unsigned int -+#elif (LZO_SIZEOF_SHORT == 2) -+# define lzo_int16e_t short int -+# define lzo_uint16e_t unsigned short int -+#elif 1 && !(LZO_CFG_TYPE_NO_MODE_HI) && (LZO_CC_CLANG || (LZO_CC_GNUC >= 0x025f00ul) || LZO_CC_LLVM) -+ typedef int lzo_int16e_hi_t__ __attribute__((__mode__(__HI__))); -+ typedef unsigned int lzo_uint16e_hi_t__ __attribute__((__mode__(__HI__))); -+# define lzo_int16e_t lzo_int16e_hi_t__ -+# define lzo_uint16e_t lzo_uint16e_hi_t__ -+#elif (LZO_SIZEOF___INT16 == 2) -+# define lzo_int16e_t __int16 -+# define lzo_uint16e_t unsigned __int16 -+#else -+#endif -+#endif -+#if defined(lzo_int16e_t) -+# define LZO_SIZEOF_LZO_INT16E_T 2 -+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int16e_t) == 2) -+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int16e_t) == LZO_SIZEOF_LZO_INT16E_T) -+#endif -+#if !defined(lzo_int32e_t) -+#if (LZO_SIZEOF_LONG == 4) -+# define lzo_int32e_t long int -+# define lzo_uint32e_t unsigned long int -+#elif (LZO_SIZEOF_INT == 4) -+# define lzo_int32e_t int -+# define lzo_uint32e_t unsigned int -+#elif (LZO_SIZEOF_SHORT == 4) -+# define lzo_int32e_t short int -+# define lzo_uint32e_t unsigned short int -+#elif (LZO_SIZEOF_LONG_LONG == 4) -+# define lzo_int32e_t lzo_llong_t -+# define lzo_uint32e_t lzo_ullong_t -+#elif 1 && !(LZO_CFG_TYPE_NO_MODE_SI) && (LZO_CC_CLANG || (LZO_CC_GNUC >= 0x025f00ul) || LZO_CC_LLVM) && (__INT_MAX__+0 > 2147483647L) -+ typedef int lzo_int32e_si_t__ __attribute__((__mode__(__SI__))); -+ typedef unsigned int lzo_uint32e_si_t__ __attribute__((__mode__(__SI__))); -+# define lzo_int32e_t lzo_int32e_si_t__ -+# define lzo_uint32e_t lzo_uint32e_si_t__ -+#elif 1 && !(LZO_CFG_TYPE_NO_MODE_SI) && (LZO_CC_GNUC >= 0x025f00ul) && defined(__AVR__) && (__LONG_MAX__+0 == 32767L) -+ typedef int lzo_int32e_si_t__ __attribute__((__mode__(__SI__))); -+ typedef unsigned int lzo_uint32e_si_t__ __attribute__((__mode__(__SI__))); -+# define lzo_int32e_t lzo_int32e_si_t__ -+# define lzo_uint32e_t lzo_uint32e_si_t__ -+# define LZO_INT32_C(c) (c##LL) -+# define LZO_UINT32_C(c) (c##ULL) -+#elif (LZO_SIZEOF___INT32 == 4) -+# define lzo_int32e_t __int32 -+# define lzo_uint32e_t unsigned __int32 -+#else -+#endif -+#endif -+#if defined(lzo_int32e_t) -+# define LZO_SIZEOF_LZO_INT32E_T 4 -+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32e_t) == 4) -+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32e_t) == LZO_SIZEOF_LZO_INT32E_T) -+#endif -+#if !defined(lzo_int64e_t) -+#if (LZO_SIZEOF___INT64 == 8) -+# if (LZO_CC_BORLANDC) && !(LZO_CFG_TYPE_PREFER___INT64) -+# define LZO_CFG_TYPE_PREFER___INT64 1 -+# endif -+#endif -+#if (LZO_SIZEOF_INT == 8) && (LZO_SIZEOF_INT < LZO_SIZEOF_LONG) -+# define lzo_int64e_t int -+# define lzo_uint64e_t unsigned int -+# define LZO_SIZEOF_LZO_INT64E_T LZO_SIZEOF_INT -+#elif (LZO_SIZEOF_LONG == 8) -+# define lzo_int64e_t long int -+# define lzo_uint64e_t unsigned long int -+# define LZO_SIZEOF_LZO_INT64E_T LZO_SIZEOF_LONG -+#elif (LZO_SIZEOF_LONG_LONG == 8) && !(LZO_CFG_TYPE_PREFER___INT64) -+# define lzo_int64e_t lzo_llong_t -+# define lzo_uint64e_t lzo_ullong_t -+# if (LZO_CC_BORLANDC) -+# define LZO_INT64_C(c) ((c) + 0ll) -+# define LZO_UINT64_C(c) ((c) + 0ull) -+# elif 0 -+# define LZO_INT64_C(c) (__lzo_gnuc_extension__ (c##LL)) -+# define LZO_UINT64_C(c) (__lzo_gnuc_extension__ (c##ULL)) -+# else -+# define LZO_INT64_C(c) (c##LL) -+# define LZO_UINT64_C(c) (c##ULL) -+# endif -+# define LZO_SIZEOF_LZO_INT64E_T LZO_SIZEOF_LONG_LONG -+#elif (LZO_SIZEOF___INT64 == 8) -+# define lzo_int64e_t __int64 -+# define lzo_uint64e_t unsigned __int64 -+# if (LZO_CC_BORLANDC) -+# define LZO_INT64_C(c) ((c) + 0i64) -+# define LZO_UINT64_C(c) ((c) + 0ui64) -+# else -+# define LZO_INT64_C(c) (c##i64) -+# define LZO_UINT64_C(c) (c##ui64) -+# endif -+# define LZO_SIZEOF_LZO_INT64E_T LZO_SIZEOF___INT64 -+#else -+#endif -+#endif -+#if defined(lzo_int64e_t) -+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64e_t) == 8) -+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64e_t) == LZO_SIZEOF_LZO_INT64E_T) -+#endif -+#if !defined(lzo_int32l_t) -+#if defined(lzo_int32e_t) -+# define lzo_int32l_t lzo_int32e_t -+# define lzo_uint32l_t lzo_uint32e_t -+# define LZO_SIZEOF_LZO_INT32L_T LZO_SIZEOF_LZO_INT32E_T -+#elif (LZO_SIZEOF_INT >= 4) && (LZO_SIZEOF_INT < LZO_SIZEOF_LONG) -+# define lzo_int32l_t int -+# define lzo_uint32l_t unsigned int -+# define LZO_SIZEOF_LZO_INT32L_T LZO_SIZEOF_INT -+#elif (LZO_SIZEOF_LONG >= 4) -+# define lzo_int32l_t long int -+# define lzo_uint32l_t unsigned long int -+# define LZO_SIZEOF_LZO_INT32L_T LZO_SIZEOF_LONG -+#else -+# error "lzo_int32l_t" -+#endif -+#endif -+#if 1 -+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32l_t) >= 4) -+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32l_t) == LZO_SIZEOF_LZO_INT32L_T) -+#endif -+#if !defined(lzo_int64l_t) -+#if defined(lzo_int64e_t) -+# define lzo_int64l_t lzo_int64e_t -+# define lzo_uint64l_t lzo_uint64e_t -+# define LZO_SIZEOF_LZO_INT64L_T LZO_SIZEOF_LZO_INT64E_T -+#else -+#endif -+#endif -+#if defined(lzo_int64l_t) -+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64l_t) >= 8) -+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64l_t) == LZO_SIZEOF_LZO_INT64L_T) -+#endif -+#if !defined(lzo_int32f_t) -+#if (LZO_SIZEOF_SIZE_T >= 8) -+# define lzo_int32f_t lzo_int64l_t -+# define lzo_uint32f_t lzo_uint64l_t -+# define LZO_SIZEOF_LZO_INT32F_T LZO_SIZEOF_LZO_INT64L_T -+#else -+# define lzo_int32f_t lzo_int32l_t -+# define lzo_uint32f_t lzo_uint32l_t -+# define LZO_SIZEOF_LZO_INT32F_T LZO_SIZEOF_LZO_INT32L_T -+#endif -+#endif -+#if 1 -+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32f_t) >= 4) -+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32f_t) == LZO_SIZEOF_LZO_INT32F_T) -+#endif -+#if !defined(lzo_int64f_t) -+#if defined(lzo_int64l_t) -+# define lzo_int64f_t lzo_int64l_t -+# define lzo_uint64f_t lzo_uint64l_t -+# define LZO_SIZEOF_LZO_INT64F_T LZO_SIZEOF_LZO_INT64L_T -+#else -+#endif -+#endif -+#if defined(lzo_int64f_t) -+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64f_t) >= 8) -+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64f_t) == LZO_SIZEOF_LZO_INT64F_T) -+#endif -+#if !defined(lzo_intptr_t) -+#if 1 && (LZO_OS_OS400 && (LZO_SIZEOF_VOID_P == 16)) -+# define __LZO_INTPTR_T_IS_POINTER 1 -+ typedef char* lzo_intptr_t; -+ typedef char* lzo_uintptr_t; -+# define lzo_intptr_t lzo_intptr_t -+# define lzo_uintptr_t lzo_uintptr_t -+# define LZO_SIZEOF_LZO_INTPTR_T LZO_SIZEOF_VOID_P -+#elif (LZO_CC_MSC && (_MSC_VER >= 1300) && (LZO_SIZEOF_VOID_P == 4) && (LZO_SIZEOF_INT == 4)) -+ typedef __w64 int lzo_intptr_t; -+ typedef __w64 unsigned int lzo_uintptr_t; -+# define lzo_intptr_t lzo_intptr_t -+# define lzo_uintptr_t lzo_uintptr_t -+# define LZO_SIZEOF_LZO_INTPTR_T LZO_SIZEOF_INT -+#elif (LZO_SIZEOF_SHORT == LZO_SIZEOF_VOID_P) && (LZO_SIZEOF_INT > LZO_SIZEOF_VOID_P) -+# define lzo_intptr_t short -+# define lzo_uintptr_t unsigned short -+# define LZO_SIZEOF_LZO_INTPTR_T LZO_SIZEOF_SHORT -+#elif (LZO_SIZEOF_INT >= LZO_SIZEOF_VOID_P) && (LZO_SIZEOF_INT < LZO_SIZEOF_LONG) -+# define lzo_intptr_t int -+# define lzo_uintptr_t unsigned int -+# define LZO_SIZEOF_LZO_INTPTR_T LZO_SIZEOF_INT -+#elif (LZO_SIZEOF_LONG >= LZO_SIZEOF_VOID_P) -+# define lzo_intptr_t long -+# define lzo_uintptr_t unsigned long -+# define LZO_SIZEOF_LZO_INTPTR_T LZO_SIZEOF_LONG -+#elif (LZO_SIZEOF_LZO_INT64L_T >= LZO_SIZEOF_VOID_P) -+# define lzo_intptr_t lzo_int64l_t -+# define lzo_uintptr_t lzo_uint64l_t -+# define LZO_SIZEOF_LZO_INTPTR_T LZO_SIZEOF_LZO_INT64L_T -+#else -+# error "lzo_intptr_t" -+#endif -+#endif -+#if 1 -+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_intptr_t) >= sizeof(void *)) -+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_intptr_t) == sizeof(lzo_uintptr_t)) -+#endif -+#if !defined(lzo_word_t) -+#if defined(LZO_WORDSIZE) && (LZO_WORDSIZE+0 > 0) -+#if (LZO_WORDSIZE == LZO_SIZEOF_LZO_INTPTR_T) && !(__LZO_INTPTR_T_IS_POINTER) -+# define lzo_word_t lzo_uintptr_t -+# define lzo_sword_t lzo_intptr_t -+# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_LZO_INTPTR_T -+#elif (LZO_WORDSIZE == LZO_SIZEOF_LONG) -+# define lzo_word_t unsigned long -+# define lzo_sword_t long -+# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_LONG -+#elif (LZO_WORDSIZE == LZO_SIZEOF_INT) -+# define lzo_word_t unsigned int -+# define lzo_sword_t int -+# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_INT -+#elif (LZO_WORDSIZE == LZO_SIZEOF_SHORT) -+# define lzo_word_t unsigned short -+# define lzo_sword_t short -+# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_SHORT -+#elif (LZO_WORDSIZE == 1) -+# define lzo_word_t unsigned char -+# define lzo_sword_t signed char -+# define LZO_SIZEOF_LZO_WORD_T 1 -+#elif (LZO_WORDSIZE == LZO_SIZEOF_LZO_INT64L_T) -+# define lzo_word_t lzo_uint64l_t -+# define lzo_sword_t lzo_int64l_t -+# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_LZO_INT64L_T -+#elif (LZO_ARCH_SPU) && (LZO_CC_GNUC) -+#if 0 -+ typedef unsigned lzo_word_t __attribute__((__mode__(__V16QI__))); -+ typedef int lzo_sword_t __attribute__((__mode__(__V16QI__))); -+# define lzo_word_t lzo_word_t -+# define lzo_sword_t lzo_sword_t -+# define LZO_SIZEOF_LZO_WORD_T 16 -+#endif -+#else -+# error "lzo_word_t" -+#endif -+#endif -+#endif -+#if 1 && defined(lzo_word_t) -+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_word_t) == LZO_WORDSIZE) -+ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_sword_t) == LZO_WORDSIZE) -+#endif -+#if 1 -+#define lzo_int8_t signed char -+#define lzo_uint8_t unsigned char -+#define LZO_SIZEOF_LZO_INT8_T 1 -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int8_t) == 1) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int8_t) == sizeof(lzo_uint8_t)) -+#endif -+#if defined(lzo_int16e_t) -+#define lzo_int16_t lzo_int16e_t -+#define lzo_uint16_t lzo_uint16e_t -+#define LZO_SIZEOF_LZO_INT16_T LZO_SIZEOF_LZO_INT16E_T -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int16_t) == 2) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int16_t) == sizeof(lzo_uint16_t)) -+#endif -+#if defined(lzo_int32e_t) -+#define lzo_int32_t lzo_int32e_t -+#define lzo_uint32_t lzo_uint32e_t -+#define LZO_SIZEOF_LZO_INT32_T LZO_SIZEOF_LZO_INT32E_T -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32_t) == 4) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32_t) == sizeof(lzo_uint32_t)) -+#endif -+#if defined(lzo_int64e_t) -+#define lzo_int64_t lzo_int64e_t -+#define lzo_uint64_t lzo_uint64e_t -+#define LZO_SIZEOF_LZO_INT64_T LZO_SIZEOF_LZO_INT64E_T -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64_t) == 8) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64_t) == sizeof(lzo_uint64_t)) -+#endif -+#if 1 -+#define lzo_int_least32_t lzo_int32l_t -+#define lzo_uint_least32_t lzo_uint32l_t -+#define LZO_SIZEOF_LZO_INT_LEAST32_T LZO_SIZEOF_LZO_INT32L_T -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_least32_t) >= 4) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_least32_t) == sizeof(lzo_uint_least32_t)) -+#endif -+#if defined(lzo_int64l_t) -+#define lzo_int_least64_t lzo_int64l_t -+#define lzo_uint_least64_t lzo_uint64l_t -+#define LZO_SIZEOF_LZO_INT_LEAST64_T LZO_SIZEOF_LZO_INT64L_T -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_least64_t) >= 8) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_least64_t) == sizeof(lzo_uint_least64_t)) -+#endif -+#if 1 -+#define lzo_int_fast32_t lzo_int32f_t -+#define lzo_uint_fast32_t lzo_uint32f_t -+#define LZO_SIZEOF_LZO_INT_FAST32_T LZO_SIZEOF_LZO_INT32F_T -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_fast32_t) >= 4) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_fast32_t) == sizeof(lzo_uint_fast32_t)) -+#endif -+#if defined(lzo_int64f_t) -+#define lzo_int_fast64_t lzo_int64f_t -+#define lzo_uint_fast64_t lzo_uint64f_t -+#define LZO_SIZEOF_LZO_INT_FAST64_T LZO_SIZEOF_LZO_INT64F_T -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_fast64_t) >= 8) -+LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_fast64_t) == sizeof(lzo_uint_fast64_t)) -+#endif -+#if !defined(LZO_INT16_C) -+# if (LZO_BROKEN_INTEGRAL_CONSTANTS) && (LZO_SIZEOF_INT >= 2) -+# define LZO_INT16_C(c) ((c) + 0) -+# define LZO_UINT16_C(c) ((c) + 0U) -+# elif (LZO_BROKEN_INTEGRAL_CONSTANTS) && (LZO_SIZEOF_LONG >= 2) -+# define LZO_INT16_C(c) ((c) + 0L) -+# define LZO_UINT16_C(c) ((c) + 0UL) -+# elif (LZO_SIZEOF_INT >= 2) -+# define LZO_INT16_C(c) (c) -+# define LZO_UINT16_C(c) (c##U) -+# elif (LZO_SIZEOF_LONG >= 2) -+# define LZO_INT16_C(c) (c##L) -+# define LZO_UINT16_C(c) (c##UL) -+# else -+# error "LZO_INT16_C" -+# endif -+#endif -+#if !defined(LZO_INT32_C) -+# if (LZO_BROKEN_INTEGRAL_CONSTANTS) && (LZO_SIZEOF_INT >= 4) -+# define LZO_INT32_C(c) ((c) + 0) -+# define LZO_UINT32_C(c) ((c) + 0U) -+# elif (LZO_BROKEN_INTEGRAL_CONSTANTS) && (LZO_SIZEOF_LONG >= 4) -+# define LZO_INT32_C(c) ((c) + 0L) -+# define LZO_UINT32_C(c) ((c) + 0UL) -+# elif (LZO_SIZEOF_INT >= 4) -+# define LZO_INT32_C(c) (c) -+# define LZO_UINT32_C(c) (c##U) -+# elif (LZO_SIZEOF_LONG >= 4) -+# define LZO_INT32_C(c) (c##L) -+# define LZO_UINT32_C(c) (c##UL) -+# elif (LZO_SIZEOF_LONG_LONG >= 4) -+# define LZO_INT32_C(c) (c##LL) -+# define LZO_UINT32_C(c) (c##ULL) -+# else -+# error "LZO_INT32_C" -+# endif -+#endif -+#if !defined(LZO_INT64_C) && defined(lzo_int64l_t) -+# if (LZO_BROKEN_INTEGRAL_CONSTANTS) && (LZO_SIZEOF_INT >= 8) -+# define LZO_INT64_C(c) ((c) + 0) -+# define LZO_UINT64_C(c) ((c) + 0U) -+# elif (LZO_BROKEN_INTEGRAL_CONSTANTS) && (LZO_SIZEOF_LONG >= 8) -+# define LZO_INT64_C(c) ((c) + 0L) -+# define LZO_UINT64_C(c) ((c) + 0UL) -+# elif (LZO_SIZEOF_INT >= 8) -+# define LZO_INT64_C(c) (c) -+# define LZO_UINT64_C(c) (c##U) -+# elif (LZO_SIZEOF_LONG >= 8) -+# define LZO_INT64_C(c) (c##L) -+# define LZO_UINT64_C(c) (c##UL) -+# else -+# error "LZO_INT64_C" -+# endif -+#endif -+#endif - - #endif /* already included */ - --/* vim:set ts=4 et: */ -+/* vim:set ts=4 sw=4 et: */ diff --git a/grub-core/lib/minilzo/minilzo.c b/grub-core/lib/minilzo/minilzo.c -index 25a1f68b3..ab2be5f4f 100644 +index 25a1f68b3b5..ab2be5f4fd0 100644 --- a/grub-core/lib/minilzo/minilzo.c +++ b/grub-core/lib/minilzo/minilzo.c @@ -2,22 +2,7 @@ @@ -3415,10 +68,10 @@ index 25a1f68b3..ab2be5f4f 100644 # pragma warning(disable: 193) -#endif -#if defined(__KEIL__) && defined(__C166__) --# pragma warning disable = 322 --#elif 0 && defined(__C251__) +#elif defined(__KEIL__) && defined(__C166__) # pragma warning disable = 322 +-#elif 0 && defined(__C251__) +-# pragma warning disable = 322 -#endif -#if defined(_MSC_VER) && !defined(__INTEL_COMPILER) && !defined(__MWERKS__) -# if (_MSC_VER >= 1300) @@ -3902,7 +555,9 @@ index 25a1f68b3..ab2be5f4f 100644 +# define LZO_ARCH_X64 1 +#elif (!LZO_ARCH_AMD64 && LZO_ARCH_X64) && defined(__LZO_ARCH_OVERRIDE) +# define LZO_ARCH_AMD64 1 -+#endif + #endif +-#if (LZO_ARCH_I086PM) && !(LZO_ARCH_I086) +-# error "this should not happen" +#if (LZO_ARCH_ARM64 && !LZO_ARCH_AARCH64) +# define LZO_ARCH_AARCH64 1 +#elif (!LZO_ARCH_ARM64 && LZO_ARCH_AARCH64) && defined(__LZO_ARCH_OVERRIDE) @@ -3930,9 +585,7 @@ index 25a1f68b3..ab2be5f4f 100644 +#endif +#if (LZO_ARCH_ARM_THUMB2 && !LZO_ARCH_ARM_THUMB) +# error "unexpected configuration - check your compiler defines" - #endif --#if (LZO_ARCH_I086PM) && !(LZO_ARCH_I086) --# error "this should not happen" ++#endif +#if (LZO_ARCH_ARM_THUMB1 && LZO_ARCH_ARM_THUMB2) +# error "unexpected configuration - check your compiler defines" +#endif @@ -3961,8 +614,9 @@ index 25a1f68b3..ab2be5f4f 100644 # if (ULONG_MAX != LZO_0xffffffffL) -# error "this should not happen" +# error "unexpected configuration - check your compiler defines" -+# endif -+#endif + # endif + #endif +-#if !defined(__LZO_MM_OVERRIDE) +#if (LZO_ARCH_AMD64 || LZO_ARCH_I386) +# if !defined(LZO_TARGET_FEATURE_SSE2) +# if defined(__SSE2__) @@ -4025,9 +679,8 @@ index 25a1f68b3..ab2be5f4f 100644 +# if 1 +# define LZO_TARGET_FEATURE_NEON 1 +# endif - # endif - #endif --#if !defined(__LZO_MM_OVERRIDE) ++# endif ++#endif +#if 0 +#elif !defined(__LZO_MM_OVERRIDE) #if (LZO_ARCH_I086) @@ -4105,12 +758,10 @@ index 25a1f68b3..ab2be5f4f 100644 #endif #elif (LZO_ARCH_CRAY_PVP) # define LZO_MM_PVP 1 -@@ -1030,462 +1227,270 @@ extern "C" { +@@ -1030,35 +1227,818 @@ extern "C" { # error "unknown memory model" #endif #endif --#if defined(SIZEOF_SHORT) --# define LZO_SIZEOF_SHORT (SIZEOF_SHORT) +#if !defined(__lzo_gnuc_extension__) +#if (LZO_CC_GNUC >= 0x020800ul) +# define __lzo_gnuc_extension__ __extension__ @@ -4119,17 +770,11 @@ index 25a1f68b3..ab2be5f4f 100644 +#elif (LZO_CC_IBMC >= 600) +# define __lzo_gnuc_extension__ __extension__ +#else - #endif --#if defined(SIZEOF_INT) --# define LZO_SIZEOF_INT (SIZEOF_INT) - #endif --#if defined(SIZEOF_LONG) --# define LZO_SIZEOF_LONG (SIZEOF_LONG) ++#endif ++#endif +#if !defined(__lzo_gnuc_extension__) +# define __lzo_gnuc_extension__ /*empty*/ - #endif --#if defined(SIZEOF_LONG_LONG) --# define LZO_SIZEOF_LONG_LONG (SIZEOF_LONG_LONG) ++#endif +#if !defined(LZO_CFG_USE_NEW_STYLE_CASTS) && defined(__cplusplus) && 0 +# if (LZO_CC_GNUC && (LZO_CC_GNUC < 0x020800ul)) +# define LZO_CFG_USE_NEW_STYLE_CASTS 0 @@ -4138,85 +783,35 @@ index 25a1f68b3..ab2be5f4f 100644 +# else +# define LZO_CFG_USE_NEW_STYLE_CASTS 1 +# endif - #endif --#if defined(SIZEOF___INT16) --# define LZO_SIZEOF___INT16 (SIZEOF___INT16) ++#endif +#if !defined(LZO_CFG_USE_NEW_STYLE_CASTS) +# define LZO_CFG_USE_NEW_STYLE_CASTS 0 - #endif --#if defined(SIZEOF___INT32) --# define LZO_SIZEOF___INT32 (SIZEOF___INT32) ++#endif +#if !defined(__cplusplus) +# if defined(LZO_CFG_USE_NEW_STYLE_CASTS) +# undef LZO_CFG_USE_NEW_STYLE_CASTS +# endif +# define LZO_CFG_USE_NEW_STYLE_CASTS 0 - #endif --#if defined(SIZEOF___INT64) --# define LZO_SIZEOF___INT64 (SIZEOF___INT64) ++#endif +#if !defined(LZO_REINTERPRET_CAST) +# if (LZO_CFG_USE_NEW_STYLE_CASTS) +# define LZO_REINTERPRET_CAST(t,e) (reinterpret_cast (e)) +# endif - #endif --#if defined(SIZEOF_VOID_P) --# define LZO_SIZEOF_VOID_P (SIZEOF_VOID_P) ++#endif +#if !defined(LZO_REINTERPRET_CAST) +# define LZO_REINTERPRET_CAST(t,e) ((t) (e)) - #endif --#if defined(SIZEOF_SIZE_T) --# define LZO_SIZEOF_SIZE_T (SIZEOF_SIZE_T) ++#endif +#if !defined(LZO_STATIC_CAST) +# if (LZO_CFG_USE_NEW_STYLE_CASTS) +# define LZO_STATIC_CAST(t,e) (static_cast (e)) +# endif - #endif --#if defined(SIZEOF_PTRDIFF_T) --# define LZO_SIZEOF_PTRDIFF_T (SIZEOF_PTRDIFF_T) ++#endif +#if !defined(LZO_STATIC_CAST) +# define LZO_STATIC_CAST(t,e) ((t) (e)) - #endif --#define __LZO_LSR(x,b) (((x)+0ul) >> (b)) --#if !defined(LZO_SIZEOF_SHORT) --# if (LZO_ARCH_CRAY_PVP) --# define LZO_SIZEOF_SHORT 8 --# elif (USHRT_MAX == LZO_0xffffL) --# define LZO_SIZEOF_SHORT 2 --# elif (__LZO_LSR(USHRT_MAX,7) == 1) --# define LZO_SIZEOF_SHORT 1 --# elif (__LZO_LSR(USHRT_MAX,15) == 1) --# define LZO_SIZEOF_SHORT 2 --# elif (__LZO_LSR(USHRT_MAX,31) == 1) --# define LZO_SIZEOF_SHORT 4 --# elif (__LZO_LSR(USHRT_MAX,63) == 1) --# define LZO_SIZEOF_SHORT 8 --# elif (__LZO_LSR(USHRT_MAX,127) == 1) --# define LZO_SIZEOF_SHORT 16 --# else --# error "LZO_SIZEOF_SHORT" --# endif ++#endif +#if !defined(LZO_STATIC_CAST2) +# define LZO_STATIC_CAST2(t1,t2,e) LZO_STATIC_CAST(t1, LZO_STATIC_CAST(t2, e)) - #endif --#if !defined(LZO_SIZEOF_INT) --# if (LZO_ARCH_CRAY_PVP) --# define LZO_SIZEOF_INT 8 --# elif (UINT_MAX == LZO_0xffffL) --# define LZO_SIZEOF_INT 2 --# elif (UINT_MAX == LZO_0xffffffffL) --# define LZO_SIZEOF_INT 4 --# elif (__LZO_LSR(UINT_MAX,7) == 1) --# define LZO_SIZEOF_INT 1 --# elif (__LZO_LSR(UINT_MAX,15) == 1) --# define LZO_SIZEOF_INT 2 --# elif (__LZO_LSR(UINT_MAX,31) == 1) --# define LZO_SIZEOF_INT 4 --# elif (__LZO_LSR(UINT_MAX,63) == 1) --# define LZO_SIZEOF_INT 8 --# elif (__LZO_LSR(UINT_MAX,127) == 1) --# define LZO_SIZEOF_INT 16 --# else --# error "LZO_SIZEOF_INT" ++#endif +#if !defined(LZO_UNCONST_CAST) +# if (LZO_CFG_USE_NEW_STYLE_CASTS) +# define LZO_UNCONST_CAST(t,e) (const_cast (e)) @@ -4224,23 +819,8 @@ index 25a1f68b3..ab2be5f4f 100644 +# define LZO_UNCONST_CAST(t,e) ((t) (e)) +# elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE) +# define LZO_UNCONST_CAST(t,e) ((t) ((void *) ((lzo_uintptr_t) ((const void *) (e))))) - # endif - #endif --#if !defined(LZO_SIZEOF_LONG) --# if (ULONG_MAX == LZO_0xffffffffL) --# define LZO_SIZEOF_LONG 4 --# elif (__LZO_LSR(ULONG_MAX,7) == 1) --# define LZO_SIZEOF_LONG 1 --# elif (__LZO_LSR(ULONG_MAX,15) == 1) --# define LZO_SIZEOF_LONG 2 --# elif (__LZO_LSR(ULONG_MAX,31) == 1) --# define LZO_SIZEOF_LONG 4 --# elif (__LZO_LSR(ULONG_MAX,63) == 1) --# define LZO_SIZEOF_LONG 8 --# elif (__LZO_LSR(ULONG_MAX,127) == 1) --# define LZO_SIZEOF_LONG 16 --# else --# error "LZO_SIZEOF_LONG" ++# endif ++#endif +#if !defined(LZO_UNCONST_CAST) +# define LZO_UNCONST_CAST(t,e) ((t) ((void *) ((const void *) (e)))) +#endif @@ -4251,18 +831,8 @@ index 25a1f68b3..ab2be5f4f 100644 +# define LZO_UNCONST_VOLATILE_CAST(t,e) ((t) (e)) +# elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE) +# define LZO_UNCONST_VOLATILE_CAST(t,e) ((t) ((volatile void *) ((lzo_uintptr_t) ((volatile const void *) (e))))) - # endif - #endif --#if !defined(LZO_SIZEOF_LONG_LONG) && !defined(LZO_SIZEOF___INT64) --#if (LZO_SIZEOF_LONG > 0 && LZO_SIZEOF_LONG < 8) --# if defined(__LONG_MAX__) && defined(__LONG_LONG_MAX__) --# if (LZO_CC_GNUC >= 0x030300ul) --# if ((__LONG_MAX__)+0 == (__LONG_LONG_MAX__)+0) --# define LZO_SIZEOF_LONG_LONG LZO_SIZEOF_LONG --# elif (__LZO_LSR(__LONG_LONG_MAX__,30) == 1) --# define LZO_SIZEOF_LONG_LONG 4 --# endif --# endif ++# endif ++#endif +#if !defined(LZO_UNCONST_VOLATILE_CAST) +# define LZO_UNCONST_VOLATILE_CAST(t,e) ((t) ((volatile void *) ((volatile const void *) (e)))) +#endif @@ -4273,47 +843,11 @@ index 25a1f68b3..ab2be5f4f 100644 +# define LZO_UNVOLATILE_CAST(t,e) ((t) (e)) +# elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE) +# define LZO_UNVOLATILE_CAST(t,e) ((t) ((void *) ((lzo_uintptr_t) ((volatile void *) (e))))) - # endif - #endif ++# endif ++#endif +#if !defined(LZO_UNVOLATILE_CAST) +# define LZO_UNVOLATILE_CAST(t,e) ((t) ((void *) ((volatile void *) (e)))) - #endif --#if !defined(LZO_SIZEOF_LONG_LONG) && !defined(LZO_SIZEOF___INT64) --#if (LZO_SIZEOF_LONG > 0 && LZO_SIZEOF_LONG < 8) --#if (LZO_ARCH_I086 && LZO_CC_DMC) --#elif (LZO_CC_CILLY) && defined(__GNUC__) --# define LZO_SIZEOF_LONG_LONG 8 --#elif (LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE) --# define LZO_SIZEOF_LONG_LONG 8 --#elif ((LZO_OS_WIN32 || LZO_OS_WIN64 || defined(_WIN32)) && LZO_CC_MSC && (_MSC_VER >= 1400)) --# define LZO_SIZEOF_LONG_LONG 8 --#elif (LZO_OS_WIN64 || defined(_WIN64)) --# define LZO_SIZEOF___INT64 8 --#elif (LZO_ARCH_I386 && (LZO_CC_DMC)) --# define LZO_SIZEOF_LONG_LONG 8 --#elif (LZO_ARCH_I386 && (LZO_CC_SYMANTECC && (__SC__ >= 0x700))) --# define LZO_SIZEOF_LONG_LONG 8 --#elif (LZO_ARCH_I386 && (LZO_CC_INTELC && defined(__linux__))) --# define LZO_SIZEOF_LONG_LONG 8 --#elif (LZO_ARCH_I386 && (LZO_CC_MWERKS || LZO_CC_PELLESC || LZO_CC_PGI || LZO_CC_SUNPROC)) --# define LZO_SIZEOF_LONG_LONG 8 --#elif (LZO_ARCH_I386 && (LZO_CC_INTELC || LZO_CC_MSC)) --# define LZO_SIZEOF___INT64 8 --#elif ((LZO_OS_WIN32 || defined(_WIN32)) && (LZO_CC_MSC)) --# define LZO_SIZEOF___INT64 8 --#elif (LZO_ARCH_I386 && (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0520))) --# define LZO_SIZEOF___INT64 8 --#elif (LZO_ARCH_I386 && (LZO_CC_WATCOMC && (__WATCOMC__ >= 1100))) --# define LZO_SIZEOF___INT64 8 --#elif (LZO_CC_WATCOMC && defined(_INTEGRAL_MAX_BITS) && (_INTEGRAL_MAX_BITS == 64)) --# define LZO_SIZEOF___INT64 8 --#elif (LZO_OS_OS400 || defined(__OS400__)) && defined(__LLP64_IFC__) --# define LZO_SIZEOF_LONG_LONG 8 --#elif (defined(__vms) || defined(__VMS)) && (__INITIAL_POINTER_SIZE+0 == 64) --# define LZO_SIZEOF_LONG_LONG 8 --#elif (LZO_CC_SDCC) && (LZO_SIZEOF_INT == 2) --#elif 1 && defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) --# define LZO_SIZEOF_LONG_LONG 8 ++#endif +#if !defined(LZO_UNVOLATILE_CONST_CAST) +# if (LZO_CFG_USE_NEW_STYLE_CASTS) +# define LZO_UNVOLATILE_CONST_CAST(t,e) (const_cast (e)) @@ -4322,40 +856,26 @@ index 25a1f68b3..ab2be5f4f 100644 +# elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE) +# define LZO_UNVOLATILE_CONST_CAST(t,e) ((t) ((const void *) ((lzo_uintptr_t) ((volatile const void *) (e))))) +# endif - #endif ++#endif +#if !defined(LZO_UNVOLATILE_CONST_CAST) +# define LZO_UNVOLATILE_CONST_CAST(t,e) ((t) ((const void *) ((volatile const void *) (e)))) - #endif ++#endif +#if !defined(LZO_PCAST) +# if (LZO_HAVE_MM_HUGE_PTR) +# define LZO_PCAST(t,e) ((t) (e)) +# endif - #endif --#if defined(__cplusplus) && (LZO_CC_GNUC) --# if (LZO_CC_GNUC < 0x020800ul) --# undef LZO_SIZEOF_LONG_LONG ++#endif +#if !defined(LZO_PCAST) +# define LZO_PCAST(t,e) LZO_STATIC_CAST(t, LZO_STATIC_CAST(void *, e)) +#endif +#if !defined(LZO_CCAST) +# if (LZO_HAVE_MM_HUGE_PTR) +# define LZO_CCAST(t,e) ((t) (e)) - # endif - #endif --#if (LZO_CFG_NO_LONG_LONG) || defined(__NO_LONG_LONG) --# undef LZO_SIZEOF_LONG_LONG ++# endif ++#endif +#if !defined(LZO_CCAST) +# define LZO_CCAST(t,e) LZO_STATIC_CAST(t, LZO_STATIC_CAST(const void *, e)) - #endif --#if !defined(LZO_SIZEOF_VOID_P) --#if (LZO_ARCH_I086) --# define __LZO_WORDSIZE 2 --# if (LZO_MM_TINY || LZO_MM_SMALL || LZO_MM_MEDIUM) --# define LZO_SIZEOF_VOID_P 2 --# elif (LZO_MM_COMPACT || LZO_MM_LARGE || LZO_MM_HUGE) --# define LZO_SIZEOF_VOID_P 4 --# else --# error "LZO_MM" ++#endif +#if !defined(LZO_ICONV) +# define LZO_ICONV(t,e) LZO_STATIC_CAST(t, e) +#endif @@ -4370,67 +890,11 @@ index 25a1f68b3..ab2be5f4f 100644 +# define __lzo_cte(e) ((void)0,(e)) +# elif 1 +# define __lzo_cte(e) ((void)0,(e)) - # endif --#elif (LZO_ARCH_AVR || LZO_ARCH_Z80) --# define __LZO_WORDSIZE 1 --# define LZO_SIZEOF_VOID_P 2 --#elif (LZO_ARCH_C166 || LZO_ARCH_MCS51 || LZO_ARCH_MCS251 || LZO_ARCH_MSP430) --# define LZO_SIZEOF_VOID_P 2 --#elif (LZO_ARCH_H8300) --# if defined(__NORMAL_MODE__) --# define __LZO_WORDSIZE 4 --# define LZO_SIZEOF_VOID_P 2 --# elif defined(__H8300H__) || defined(__H8300S__) || defined(__H8300SX__) --# define __LZO_WORDSIZE 4 --# define LZO_SIZEOF_VOID_P 4 --# else --# define __LZO_WORDSIZE 2 --# define LZO_SIZEOF_VOID_P 2 --# endif --# if (LZO_CC_GNUC && (LZO_CC_GNUC < 0x040000ul)) && (LZO_SIZEOF_INT == 4) --# define LZO_SIZEOF_SIZE_T LZO_SIZEOF_INT --# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_INT --# endif --#elif (LZO_ARCH_M16C) --# define __LZO_WORDSIZE 2 --# if defined(__m32c_cpu__) || defined(__m32cm_cpu__) --# define LZO_SIZEOF_VOID_P 4 --# else --# define LZO_SIZEOF_VOID_P 2 --# endif --#elif (LZO_SIZEOF_LONG == 8) && ((defined(__mips__) && defined(__R5900__)) || defined(__MIPS_PSX2__)) --# define __LZO_WORDSIZE 8 --# define LZO_SIZEOF_VOID_P 4 --#elif defined(__LLP64__) || defined(__LLP64) || defined(_LLP64) || defined(_WIN64) --# define __LZO_WORDSIZE 8 --# define LZO_SIZEOF_VOID_P 8 --#elif (LZO_OS_OS400 || defined(__OS400__)) && defined(__LLP64_IFC__) --# define LZO_SIZEOF_VOID_P LZO_SIZEOF_LONG --# define LZO_SIZEOF_SIZE_T LZO_SIZEOF_LONG --# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_LONG --#elif (LZO_OS_OS400 || defined(__OS400__)) --# define __LZO_WORDSIZE LZO_SIZEOF_LONG --# define LZO_SIZEOF_VOID_P 16 --# define LZO_SIZEOF_SIZE_T LZO_SIZEOF_LONG --# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_LONG --#elif (defined(__vms) || defined(__VMS)) && (__INITIAL_POINTER_SIZE+0 == 64) --# define LZO_SIZEOF_VOID_P 8 --# define LZO_SIZEOF_SIZE_T LZO_SIZEOF_LONG --# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_LONG --#elif (LZO_ARCH_SPU) --# if 0 --# define __LZO_WORDSIZE 16 --# endif --# define LZO_SIZEOF_VOID_P 4 --#else --# define LZO_SIZEOF_VOID_P LZO_SIZEOF_LONG - #endif ++# endif ++#endif +#if !defined(__lzo_cte) +# define __lzo_cte(e) (e) - #endif --#if !defined(LZO_WORDSIZE) --# if defined(__LZO_WORDSIZE) --# define LZO_WORDSIZE __LZO_WORDSIZE ++#endif +#if !defined(LZO_BLOCK_BEGIN) +# define LZO_BLOCK_BEGIN do { +# define LZO_BLOCK_END } while __lzo_cte(0) @@ -4452,28 +916,10 @@ index 25a1f68b3..ab2be5f4f 100644 +# define LZO_UNUSED(var) ((void) sizeof(var)) +# elif (LZO_CC_WATCOMC) && defined(__cplusplus) +# define LZO_UNUSED(var) ((void) var) - # else --# define LZO_WORDSIZE LZO_SIZEOF_VOID_P ++# else +# define LZO_UNUSED(var) ((void) &var) - # endif - #endif --#if !defined(LZO_SIZEOF_SIZE_T) --#if (LZO_ARCH_I086 || LZO_ARCH_M16C) --# define LZO_SIZEOF_SIZE_T 2 --#else --# define LZO_SIZEOF_SIZE_T LZO_SIZEOF_VOID_P --#endif --#endif --#if !defined(LZO_SIZEOF_PTRDIFF_T) --#if (LZO_ARCH_I086) --# if (LZO_MM_TINY || LZO_MM_SMALL || LZO_MM_MEDIUM || LZO_MM_HUGE) --# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_VOID_P --# elif (LZO_MM_COMPACT || LZO_MM_LARGE) --# if (LZO_CC_BORLANDC || LZO_CC_TURBOC) --# define LZO_SIZEOF_PTRDIFF_T 4 --# else --# define LZO_SIZEOF_PTRDIFF_T 2 --# endif ++# endif ++#endif +#if !defined(LZO_UNUSED_FUNC) +# if (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0600)) +# define LZO_UNUSED_FUNC(func) ((void) func) @@ -4487,320 +933,131 @@ index 25a1f68b3..ab2be5f4f 100644 +# define LZO_UNUSED_FUNC(func) ((void) &func) +# elif (LZO_CC_KEILC || LZO_CC_PELLESC) +# define LZO_UNUSED_FUNC(func) {LZO_EXTERN_C int lzo_unused_func__[1-2*!(sizeof((int)func)>0)];} - # else --# error "LZO_MM" ++# else +# define LZO_UNUSED_FUNC(func) ((void) func) - # endif --#else --# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_SIZE_T --#endif - #endif --#if (LZO_ABI_NEUTRAL_ENDIAN) --# undef LZO_ABI_BIG_ENDIAN --# undef LZO_ABI_LITTLE_ENDIAN --#elif !(LZO_ABI_BIG_ENDIAN) && !(LZO_ABI_LITTLE_ENDIAN) --#if (LZO_ARCH_ALPHA) && (LZO_ARCH_CRAY_MPP) --# define LZO_ABI_BIG_ENDIAN 1 --#elif (LZO_ARCH_IA64) && (LZO_OS_POSIX_LINUX || LZO_OS_WIN64) --# define LZO_ABI_LITTLE_ENDIAN 1 --#elif (LZO_ARCH_ALPHA || LZO_ARCH_AMD64 || LZO_ARCH_BLACKFIN || LZO_ARCH_CRIS || LZO_ARCH_I086 || LZO_ARCH_I386 || LZO_ARCH_MSP430) --# define LZO_ABI_LITTLE_ENDIAN 1 --#elif (LZO_ARCH_AVR32 || LZO_ARCH_M68K || LZO_ARCH_S390) --# define LZO_ABI_BIG_ENDIAN 1 --#elif 1 && defined(__IAR_SYSTEMS_ICC__) && defined(__LITTLE_ENDIAN__) --# if (__LITTLE_ENDIAN__ == 1) --# define LZO_ABI_LITTLE_ENDIAN 1 ++# endif ++#endif +#if !defined(LZO_UNUSED_LABEL) +# if (LZO_CC_CLANG >= 0x020800ul) +# define LZO_UNUSED_LABEL(l) (__lzo_gnuc_extension__ ((void) ((const void *) &&l))) +# elif (LZO_CC_ARMCC || LZO_CC_CLANG || LZO_CC_INTELC || LZO_CC_WATCOMC) +# define LZO_UNUSED_LABEL(l) if __lzo_cte(0) goto l - # else --# define LZO_ABI_BIG_ENDIAN 1 ++# else +# define LZO_UNUSED_LABEL(l) switch (0) case 1:goto l - # endif --#elif 1 && defined(__BIG_ENDIAN__) && !defined(__LITTLE_ENDIAN__) --# define LZO_ABI_BIG_ENDIAN 1 --#elif 1 && defined(__LITTLE_ENDIAN__) && !defined(__BIG_ENDIAN__) --# define LZO_ABI_LITTLE_ENDIAN 1 --#elif 1 && (LZO_ARCH_ARM) && defined(__ARMEB__) && !defined(__ARMEL__) --# define LZO_ABI_BIG_ENDIAN 1 --#elif 1 && (LZO_ARCH_ARM) && defined(__ARMEL__) && !defined(__ARMEB__) --# define LZO_ABI_LITTLE_ENDIAN 1 --#elif 1 && (LZO_ARCH_MIPS) && defined(__MIPSEB__) && !defined(__MIPSEL__) --# define LZO_ABI_BIG_ENDIAN 1 --#elif 1 && (LZO_ARCH_MIPS) && defined(__MIPSEL__) && !defined(__MIPSEB__) --# define LZO_ABI_LITTLE_ENDIAN 1 --#endif --#endif --#if (LZO_ABI_BIG_ENDIAN) && (LZO_ABI_LITTLE_ENDIAN) --# error "this should not happen" --#endif --#if (LZO_ABI_BIG_ENDIAN) --# define LZO_INFO_ABI_ENDIAN "be" --#elif (LZO_ABI_LITTLE_ENDIAN) --# define LZO_INFO_ABI_ENDIAN "le" --#elif (LZO_ABI_NEUTRAL_ENDIAN) --# define LZO_INFO_ABI_ENDIAN "neutral" --#endif --#if (LZO_SIZEOF_INT == 1 && LZO_SIZEOF_LONG == 2 && LZO_SIZEOF_VOID_P == 2) --# define LZO_ABI_I8LP16 1 --# define LZO_INFO_ABI_PM "i8lp16" --#elif (LZO_SIZEOF_INT == 2 && LZO_SIZEOF_LONG == 2 && LZO_SIZEOF_VOID_P == 2) --# define LZO_ABI_ILP16 1 --# define LZO_INFO_ABI_PM "ilp16" --#elif (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_LONG == 4 && LZO_SIZEOF_VOID_P == 4) --# define LZO_ABI_ILP32 1 --# define LZO_INFO_ABI_PM "ilp32" --#elif (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_LONG == 4 && LZO_SIZEOF_VOID_P == 8 && LZO_SIZEOF_SIZE_T == 8) --# define LZO_ABI_LLP64 1 --# define LZO_INFO_ABI_PM "llp64" --#elif (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_LONG == 8 && LZO_SIZEOF_VOID_P == 8) --# define LZO_ABI_LP64 1 --# define LZO_INFO_ABI_PM "lp64" --#elif (LZO_SIZEOF_INT == 8 && LZO_SIZEOF_LONG == 8 && LZO_SIZEOF_VOID_P == 8) --# define LZO_ABI_ILP64 1 --# define LZO_INFO_ABI_PM "ilp64" --#elif (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_LONG == 8 && LZO_SIZEOF_VOID_P == 4) --# define LZO_ABI_IP32L64 1 --# define LZO_INFO_ABI_PM "ip32l64" - #endif --#if !defined(__LZO_LIBC_OVERRIDE) --#if (LZO_LIBC_NAKED) --# define LZO_INFO_LIBC "naked" --#elif (LZO_LIBC_FREESTANDING) --# define LZO_INFO_LIBC "freestanding" --#elif (LZO_LIBC_MOSTLY_FREESTANDING) --# define LZO_INFO_LIBC "mfreestanding" --#elif (LZO_LIBC_ISOC90) --# define LZO_INFO_LIBC "isoc90" --#elif (LZO_LIBC_ISOC99) --# define LZO_INFO_LIBC "isoc99" --#elif defined(__dietlibc__) --# define LZO_LIBC_DIETLIBC 1 --# define LZO_INFO_LIBC "dietlibc" --#elif defined(_NEWLIB_VERSION) --# define LZO_LIBC_NEWLIB 1 --# define LZO_INFO_LIBC "newlib" --#elif defined(__UCLIBC__) && defined(__UCLIBC_MAJOR__) && defined(__UCLIBC_MINOR__) --# if defined(__UCLIBC_SUBLEVEL__) --# define LZO_LIBC_UCLIBC (__UCLIBC_MAJOR__ * 0x10000L + __UCLIBC_MINOR__ * 0x100 + __UCLIBC_SUBLEVEL__) ++# endif ++#endif +#if !defined(LZO_DEFINE_UNINITIALIZED_VAR) +# if 0 +# define LZO_DEFINE_UNINITIALIZED_VAR(type,var,init) type var +# elif 0 && (LZO_CC_GNUC) +# define LZO_DEFINE_UNINITIALIZED_VAR(type,var,init) type var = var - # else --# define LZO_LIBC_UCLIBC 0x00090bL ++# else +# define LZO_DEFINE_UNINITIALIZED_VAR(type,var,init) type var = init - # endif --# define LZO_INFO_LIBC "uclibc" --#elif defined(__GLIBC__) && defined(__GLIBC_MINOR__) --# define LZO_LIBC_GLIBC (__GLIBC__ * 0x10000L + __GLIBC_MINOR__ * 0x100) --# define LZO_INFO_LIBC "glibc" --#elif (LZO_CC_MWERKS) && defined(__MSL__) --# define LZO_LIBC_MSL __MSL__ --# define LZO_INFO_LIBC "msl" --#elif 1 && defined(__IAR_SYSTEMS_ICC__) --# define LZO_LIBC_ISOC90 1 --# define LZO_INFO_LIBC "isoc90" --#else --# define LZO_LIBC_DEFAULT 1 --# define LZO_INFO_LIBC "default" --#endif --#endif --#if !defined(__lzo_gnuc_extension__) --#if (LZO_CC_GNUC >= 0x020800ul) --# define __lzo_gnuc_extension__ __extension__ --#elif (LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) --# define __lzo_gnuc_extension__ __extension__ --#else --# define __lzo_gnuc_extension__ /*empty*/ --#endif --#endif --#if !defined(__lzo_ua_volatile) --# define __lzo_ua_volatile volatile --#endif --#if !defined(__lzo_alignof) --#if (LZO_CC_CILLY || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || LZO_CC_PGI) --# define __lzo_alignof(e) __alignof__(e) --#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 700)) --# define __lzo_alignof(e) __alignof__(e) --#elif (LZO_CC_MSC && (_MSC_VER >= 1300)) --# define __lzo_alignof(e) __alignof(e) --#elif (LZO_CC_SUNPROC && (LZO_CC_SUNPROC >= 0x5100)) --# define __lzo_alignof(e) __alignof__(e) --#endif --#endif --#if defined(__lzo_alignof) --# define __lzo_HAVE_alignof 1 --#endif --#if !defined(__lzo_constructor) --#if (LZO_CC_GNUC >= 0x030400ul) --# define __lzo_constructor __attribute__((__constructor__,__used__)) --#elif (LZO_CC_GNUC >= 0x020700ul) --# define __lzo_constructor __attribute__((__constructor__)) --#elif (LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) --# define __lzo_constructor __attribute__((__constructor__)) --#endif --#endif --#if defined(__lzo_constructor) --# define __lzo_HAVE_constructor 1 --#endif --#if !defined(__lzo_destructor) --#if (LZO_CC_GNUC >= 0x030400ul) --# define __lzo_destructor __attribute__((__destructor__,__used__)) --#elif (LZO_CC_GNUC >= 0x020700ul) --# define __lzo_destructor __attribute__((__destructor__)) --#elif (LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) --# define __lzo_destructor __attribute__((__destructor__)) --#endif --#endif --#if defined(__lzo_destructor) --# define __lzo_HAVE_destructor 1 --#endif --#if (__lzo_HAVE_destructor) && !(__lzo_HAVE_constructor) --# error "this should not happen" - #endif - #if !defined(__lzo_inline) - #if (LZO_CC_TURBOC && (__TURBOC__ <= 0x0295)) - #elif defined(__cplusplus) - # define __lzo_inline inline ++# endif ++#endif ++#if !defined(__lzo_inline) ++#if (LZO_CC_TURBOC && (__TURBOC__ <= 0x0295)) ++#elif defined(__cplusplus) ++# define __lzo_inline inline +#elif defined(__STDC_VERSION__) && (__STDC_VERSION__-0 >= 199901L) +# define __lzo_inline inline - #elif (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0550)) - # define __lzo_inline __inline --#elif (LZO_CC_CILLY || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || LZO_CC_PGI) ++#elif (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0550)) ++# define __lzo_inline __inline +#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CILLY || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || LZO_CC_PGI) - # define __lzo_inline __inline__ - #elif (LZO_CC_DMC) - # define __lzo_inline __inline ++# define __lzo_inline __inline__ ++#elif (LZO_CC_DMC) ++# define __lzo_inline __inline +#elif (LZO_CC_GHS) +# define __lzo_inline __inline__ +#elif (LZO_CC_IBMC >= 600) +# define __lzo_inline __inline__ - #elif (LZO_CC_INTELC) - # define __lzo_inline __inline - #elif (LZO_CC_MWERKS && (__MWERKS__ >= 0x2405)) - # define __lzo_inline __inline - #elif (LZO_CC_MSC && (_MSC_VER >= 900)) - # define __lzo_inline __inline --#elif (LZO_CC_SUNPROC && (LZO_CC_SUNPROC >= 0x5100)) ++#elif (LZO_CC_INTELC) ++# define __lzo_inline __inline ++#elif (LZO_CC_MWERKS && (__MWERKS__ >= 0x2405)) ++# define __lzo_inline __inline ++#elif (LZO_CC_MSC && (_MSC_VER >= 900)) ++# define __lzo_inline __inline +#elif (LZO_CC_SUNPROC >= 0x5100) - # define __lzo_inline __inline__ --#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) --# define __lzo_inline inline - #endif - #endif - #if defined(__lzo_inline) ++# define __lzo_inline __inline__ ++#endif ++#endif ++#if defined(__lzo_inline) +# ifndef __lzo_HAVE_inline - # define __lzo_HAVE_inline 1 ++# define __lzo_HAVE_inline 1 +# endif - #else - # define __lzo_inline /*empty*/ - #endif - #if !defined(__lzo_forceinline) - #if (LZO_CC_GNUC >= 0x030200ul) - # define __lzo_forceinline __inline__ __attribute__((__always_inline__)) --#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 450) && LZO_CC_SYNTAX_MSC) ++#else ++# define __lzo_inline /*empty*/ ++#endif ++#if !defined(__lzo_forceinline) ++#if (LZO_CC_GNUC >= 0x030200ul) ++# define __lzo_forceinline __inline__ __attribute__((__always_inline__)) +#elif (LZO_CC_IBMC >= 700) +# define __lzo_forceinline __inline__ __attribute__((__always_inline__)) +#elif (LZO_CC_INTELC_MSC && (__INTEL_COMPILER >= 450)) - # define __lzo_forceinline __forceinline --#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 800) && LZO_CC_SYNTAX_GNUC) ++# define __lzo_forceinline __forceinline +#elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 800)) - # define __lzo_forceinline __inline__ __attribute__((__always_inline__)) --#elif (LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) ++# define __lzo_forceinline __inline__ __attribute__((__always_inline__)) +#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) - # define __lzo_forceinline __inline__ __attribute__((__always_inline__)) - #elif (LZO_CC_MSC && (_MSC_VER >= 1200)) - # define __lzo_forceinline __forceinline --#elif (LZO_CC_SUNPROC && (LZO_CC_SUNPROC >= 0x5100)) ++# define __lzo_forceinline __inline__ __attribute__((__always_inline__)) ++#elif (LZO_CC_MSC && (_MSC_VER >= 1200)) ++# define __lzo_forceinline __forceinline +#elif (LZO_CC_PGI >= 0x0d0a00ul) +# define __lzo_forceinline __inline__ __attribute__((__always_inline__)) +#elif (LZO_CC_SUNPROC >= 0x5100) - # define __lzo_forceinline __inline__ __attribute__((__always_inline__)) - #endif - #endif - #if defined(__lzo_forceinline) ++# define __lzo_forceinline __inline__ __attribute__((__always_inline__)) ++#endif ++#endif ++#if defined(__lzo_forceinline) +# ifndef __lzo_HAVE_forceinline - # define __lzo_HAVE_forceinline 1 ++# define __lzo_HAVE_forceinline 1 +# endif - #else --# define __lzo_forceinline /*empty*/ ++#else +# define __lzo_forceinline __lzo_inline - #endif - #if !defined(__lzo_noinline) - #if 1 && (LZO_ARCH_I386) && (LZO_CC_GNUC >= 0x040000ul) && (LZO_CC_GNUC < 0x040003ul) - # define __lzo_noinline __attribute__((__noinline__,__used__)) - #elif (LZO_CC_GNUC >= 0x030200ul) - # define __lzo_noinline __attribute__((__noinline__)) --#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 600) && LZO_CC_SYNTAX_MSC) ++#endif ++#if !defined(__lzo_noinline) ++#if 1 && (LZO_ARCH_I386) && (LZO_CC_GNUC >= 0x040000ul) && (LZO_CC_GNUC < 0x040003ul) ++# define __lzo_noinline __attribute__((__noinline__,__used__)) ++#elif (LZO_CC_GNUC >= 0x030200ul) ++# define __lzo_noinline __attribute__((__noinline__)) +#elif (LZO_CC_IBMC >= 700) +# define __lzo_noinline __attribute__((__noinline__)) +#elif (LZO_CC_INTELC_MSC && (__INTEL_COMPILER >= 600)) - # define __lzo_noinline __declspec(noinline) --#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 800) && LZO_CC_SYNTAX_GNUC) ++# define __lzo_noinline __declspec(noinline) +#elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 800)) - # define __lzo_noinline __attribute__((__noinline__)) --#elif (LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) ++# define __lzo_noinline __attribute__((__noinline__)) +#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) - # define __lzo_noinline __attribute__((__noinline__)) - #elif (LZO_CC_MSC && (_MSC_VER >= 1300)) - # define __lzo_noinline __declspec(noinline) -@@ -1494,179 +1499,409 @@ extern "C" { - # else - # define __lzo_noinline __declspec(noinline) - # endif --#elif (LZO_CC_SUNPROC && (LZO_CC_SUNPROC >= 0x5100)) ++# define __lzo_noinline __attribute__((__noinline__)) ++#elif (LZO_CC_MSC && (_MSC_VER >= 1300)) ++# define __lzo_noinline __declspec(noinline) ++#elif (LZO_CC_MWERKS && (__MWERKS__ >= 0x3200) && (LZO_OS_WIN32 || LZO_OS_WIN64)) ++# if defined(__cplusplus) ++# else ++# define __lzo_noinline __declspec(noinline) ++# endif +#elif (LZO_CC_PGI >= 0x0d0a00ul) +# define __lzo_noinline __attribute__((__noinline__)) +#elif (LZO_CC_SUNPROC >= 0x5100) - # define __lzo_noinline __attribute__((__noinline__)) - #endif - #endif - #if defined(__lzo_noinline) ++# define __lzo_noinline __attribute__((__noinline__)) ++#endif ++#endif ++#if defined(__lzo_noinline) +# ifndef __lzo_HAVE_noinline - # define __lzo_HAVE_noinline 1 ++# define __lzo_HAVE_noinline 1 +# endif - #else - # define __lzo_noinline /*empty*/ - #endif - #if (__lzo_HAVE_forceinline || __lzo_HAVE_noinline) && !(__lzo_HAVE_inline) --# error "this should not happen" ++#else ++# define __lzo_noinline /*empty*/ ++#endif ++#if (__lzo_HAVE_forceinline || __lzo_HAVE_noinline) && !(__lzo_HAVE_inline) +# error "unexpected configuration - check your compiler defines" - #endif --#if !defined(__lzo_noreturn) --#if (LZO_CC_GNUC >= 0x020700ul) --# define __lzo_noreturn __attribute__((__noreturn__)) --#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 450) && LZO_CC_SYNTAX_MSC) --# define __lzo_noreturn __declspec(noreturn) --#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 600) && LZO_CC_SYNTAX_GNUC) --# define __lzo_noreturn __attribute__((__noreturn__)) --#elif (LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) --# define __lzo_noreturn __attribute__((__noreturn__)) --#elif (LZO_CC_MSC && (_MSC_VER >= 1200)) --# define __lzo_noreturn __declspec(noreturn) ++#endif +#if !defined(__lzo_static_inline) +#if (LZO_CC_IBMC) +# define __lzo_static_inline __lzo_gnuc_extension__ static __lzo_inline - #endif - #endif --#if defined(__lzo_noreturn) --# define __lzo_HAVE_noreturn 1 --#else --# define __lzo_noreturn /*empty*/ ++#endif ++#endif +#if !defined(__lzo_static_inline) +# define __lzo_static_inline static __lzo_inline - #endif --#if !defined(__lzo_nothrow) --#if (LZO_CC_GNUC >= 0x030300ul) --# define __lzo_nothrow __attribute__((__nothrow__)) --#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 450) && LZO_CC_SYNTAX_MSC) && defined(__cplusplus) --# define __lzo_nothrow __declspec(nothrow) --#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 900) && LZO_CC_SYNTAX_GNUC) --# define __lzo_nothrow __attribute__((__nothrow__)) --#elif (LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) ++#endif +#if !defined(__lzo_static_forceinline) +#if (LZO_CC_IBMC) +# define __lzo_static_forceinline __lzo_gnuc_extension__ static __lzo_forceinline @@ -4886,45 +1143,43 @@ index 25a1f68b3..ab2be5f4f 100644 +#elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 900)) +# define __lzo_nothrow __attribute__((__nothrow__)) +#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) - # define __lzo_nothrow __attribute__((__nothrow__)) - #elif (LZO_CC_MSC && (_MSC_VER >= 1200)) && defined(__cplusplus) - # define __lzo_nothrow __declspec(nothrow) - #endif - #endif - #if defined(__lzo_nothrow) ++# define __lzo_nothrow __attribute__((__nothrow__)) ++#elif (LZO_CC_MSC && (_MSC_VER >= 1200)) && defined(__cplusplus) ++# define __lzo_nothrow __declspec(nothrow) ++#endif ++#endif ++#if defined(__lzo_nothrow) +# ifndef __lzo_HAVE_nothrow - # define __lzo_HAVE_nothrow 1 ++# define __lzo_HAVE_nothrow 1 +# endif - #else - # define __lzo_nothrow /*empty*/ - #endif - #if !defined(__lzo_restrict) - #if (LZO_CC_GNUC >= 0x030400ul) - # define __lzo_restrict __restrict__ --#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 600) && LZO_CC_SYNTAX_GNUC) ++#else ++# define __lzo_nothrow /*empty*/ ++#endif ++#if !defined(__lzo_restrict) ++#if (LZO_CC_GNUC >= 0x030400ul) ++# define __lzo_restrict __restrict__ +#elif (LZO_CC_IBMC >= 800) && !defined(__cplusplus) - # define __lzo_restrict __restrict__ --#elif (LZO_CC_CLANG || LZO_CC_LLVM) ++# define __lzo_restrict __restrict__ +#elif (LZO_CC_IBMC >= 1210) +# define __lzo_restrict __restrict__ +#elif (LZO_CC_INTELC_MSC && (__INTEL_COMPILER >= 600)) +#elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 600)) +# define __lzo_restrict __restrict__ +#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM) - # define __lzo_restrict __restrict__ - #elif (LZO_CC_MSC && (_MSC_VER >= 1400)) - # define __lzo_restrict __restrict ++# define __lzo_restrict __restrict__ ++#elif (LZO_CC_MSC && (_MSC_VER >= 1400)) ++# define __lzo_restrict __restrict +#elif (LZO_CC_PGI >= 0x0d0a00ul) +# define __lzo_restrict __restrict__ - #endif - #endif - #if defined(__lzo_restrict) ++#endif ++#endif ++#if defined(__lzo_restrict) +# ifndef __lzo_HAVE_restrict - # define __lzo_HAVE_restrict 1 ++# define __lzo_HAVE_restrict 1 +# endif - #else - # define __lzo_restrict /*empty*/ - #endif ++#else ++# define __lzo_restrict /*empty*/ ++#endif +#if !defined(__lzo_alignof) +#if (LZO_CC_ARMCC || LZO_CC_CILLY || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || LZO_CC_PGI) +# define __lzo_alignof(e) __alignof__(e) @@ -5073,88 +1328,49 @@ index 25a1f68b3..ab2be5f4f 100644 +#if (__lzo_HAVE_destructor) && !(__lzo_HAVE_constructor) +# error "unexpected configuration - check your compiler defines" +#endif - #if !defined(__lzo_likely) && !defined(__lzo_unlikely) - #if (LZO_CC_GNUC >= 0x030200ul) - # define __lzo_likely(e) (__builtin_expect(!!(e),1)) - # define __lzo_unlikely(e) (__builtin_expect(!!(e),0)) ++#if !defined(__lzo_likely) && !defined(__lzo_unlikely) ++#if (LZO_CC_GNUC >= 0x030200ul) ++# define __lzo_likely(e) (__builtin_expect(!!(e),1)) ++# define __lzo_unlikely(e) (__builtin_expect(!!(e),0)) +#elif (LZO_CC_IBMC >= 1010) +# define __lzo_likely(e) (__builtin_expect(!!(e),1)) +# define __lzo_unlikely(e) (__builtin_expect(!!(e),0)) - #elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 800)) - # define __lzo_likely(e) (__builtin_expect(!!(e),1)) - # define __lzo_unlikely(e) (__builtin_expect(!!(e),0)) --#elif (LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) ++#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 800)) ++# define __lzo_likely(e) (__builtin_expect(!!(e),1)) ++# define __lzo_unlikely(e) (__builtin_expect(!!(e),0)) +#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) - # define __lzo_likely(e) (__builtin_expect(!!(e),1)) - # define __lzo_unlikely(e) (__builtin_expect(!!(e),0)) - #endif - #endif - #if defined(__lzo_likely) ++# define __lzo_likely(e) (__builtin_expect(!!(e),1)) ++# define __lzo_unlikely(e) (__builtin_expect(!!(e),0)) ++#endif ++#endif ++#if defined(__lzo_likely) +# ifndef __lzo_HAVE_likely - # define __lzo_HAVE_likely 1 ++# define __lzo_HAVE_likely 1 +# endif - #else - # define __lzo_likely(e) (e) - #endif - #if defined(__lzo_unlikely) ++#else ++# define __lzo_likely(e) (e) ++#endif ++#if defined(__lzo_unlikely) +# ifndef __lzo_HAVE_unlikely - # define __lzo_HAVE_unlikely 1 ++# define __lzo_HAVE_unlikely 1 +# endif - #else - # define __lzo_unlikely(e) (e) - #endif --#if !defined(LZO_UNUSED) --# if (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0600)) --# define LZO_UNUSED(var) ((void) &var) --# elif (LZO_CC_BORLANDC || LZO_CC_HIGHC || LZO_CC_NDPC || LZO_CC_PELLESC || LZO_CC_TURBOC) --# define LZO_UNUSED(var) if (&var) ; else --# elif (LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE) --# define LZO_UNUSED(var) ((void) var) --# elif (LZO_CC_MSC && (_MSC_VER < 900)) --# define LZO_UNUSED(var) if (&var) ; else --# elif (LZO_CC_KEILC) --# define LZO_UNUSED(var) {extern int __lzo_unused[1-2*!(sizeof(var)>0)];} --# elif (LZO_CC_PACIFICC) --# define LZO_UNUSED(var) ((void) sizeof(var)) --# elif (LZO_CC_WATCOMC) && defined(__cplusplus) --# define LZO_UNUSED(var) ((void) var) ++#else ++# define __lzo_unlikely(e) (e) ++#endif +#if !defined(__lzo_static_unused_void_func) +# if 1 && (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || (LZO_CC_GNUC >= 0x020700ul) || LZO_CC_INTELC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || LZO_CC_PGI) +# define __lzo_static_unused_void_func(f) static void __attribute__((__unused__)) f(void) - # else --# define LZO_UNUSED(var) ((void) &var) ++# else +# define __lzo_static_unused_void_func(f) static __lzo_inline void f(void) - # endif - #endif --#if !defined(LZO_UNUSED_FUNC) --# if (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0600)) --# define LZO_UNUSED_FUNC(func) ((void) func) --# elif (LZO_CC_BORLANDC || LZO_CC_NDPC || LZO_CC_TURBOC) --# define LZO_UNUSED_FUNC(func) if (func) ; else --# elif (LZO_CC_CLANG || LZO_CC_LLVM) --# define LZO_UNUSED_FUNC(func) ((void) &func) --# elif (LZO_CC_MSC && (_MSC_VER < 900)) --# define LZO_UNUSED_FUNC(func) if (func) ; else --# elif (LZO_CC_MSC) --# define LZO_UNUSED_FUNC(func) ((void) &func) --# elif (LZO_CC_KEILC || LZO_CC_PELLESC) --# define LZO_UNUSED_FUNC(func) {extern int __lzo_unused[1-2*!(sizeof((int)func)>0)];} ++# endif ++#endif +#if !defined(__lzo_loop_forever) +# if (LZO_CC_IBMC) +# define __lzo_loop_forever() LZO_BLOCK_BEGIN for (;;) { ; } LZO_BLOCK_END - # else --# define LZO_UNUSED_FUNC(func) ((void) func) ++# else +# define __lzo_loop_forever() do { ; } while __lzo_cte(1) - # endif - #endif --#if !defined(LZO_UNUSED_LABEL) --# if (LZO_CC_WATCOMC) && defined(__cplusplus) --# define LZO_UNUSED_LABEL(l) switch(0) case 1:goto l --# elif (LZO_CC_CLANG || LZO_CC_INTELC || LZO_CC_WATCOMC) --# define LZO_UNUSED_LABEL(l) if (0) goto l --# else --# define LZO_UNUSED_LABEL(l) switch(0) case 1:goto l --# endif ++# endif ++#endif +#if !defined(__lzo_unreachable) +#if (LZO_CC_CLANG && (LZO_CC_CLANG >= 0x020800ul)) +# define __lzo_unreachable() __builtin_unreachable(); @@ -5162,293 +1378,288 @@ index 25a1f68b3..ab2be5f4f 100644 +# define __lzo_unreachable() __builtin_unreachable(); +#elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 1300)) && 1 +# define __lzo_unreachable() __builtin_unreachable(); - #endif --#if !defined(LZO_DEFINE_UNINITIALIZED_VAR) ++#endif +#endif +#if defined(__lzo_unreachable) +# ifndef __lzo_HAVE_unreachable +# define __lzo_HAVE_unreachable 1 +# endif +#else - # if 0 --# define LZO_DEFINE_UNINITIALIZED_VAR(type,var,init) type var --# elif 0 && (LZO_CC_GNUC) --# define LZO_DEFINE_UNINITIALIZED_VAR(type,var,init) type var = var ++# if 0 +# define __lzo_unreachable() ((void)0); - # else --# define LZO_DEFINE_UNINITIALIZED_VAR(type,var,init) type var = init ++# else +# define __lzo_unreachable() __lzo_loop_forever(); - # endif - #endif --#if !defined(LZO_UNCONST_CAST) --# if 0 && defined(__cplusplus) --# define LZO_UNCONST_CAST(t,e) (const_cast (e)) --# elif (LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE) --# define LZO_UNCONST_CAST(t,e) ((t) ((void *) ((char *) ((lzo_uintptr_t) ((const void *) (e)))))) --# else --# define LZO_UNCONST_CAST(t,e) ((t) ((void *) ((char *) ((const void *) (e))))) --# endif ++# endif ++#endif +#ifndef __LZO_CTA_NAME +#if (LZO_CFG_USE_COUNTER) +# define __LZO_CTA_NAME(a) LZO_PP_ECONCAT2(a,__COUNTER__) +#else +# define __LZO_CTA_NAME(a) LZO_PP_ECONCAT2(a,__LINE__) +#endif - #endif - #if !defined(LZO_COMPILE_TIME_ASSERT_HEADER) - # if (LZO_CC_AZTECC || LZO_CC_ZORTECHC) --# define LZO_COMPILE_TIME_ASSERT_HEADER(e) extern int __lzo_cta[1-!(e)]; ++#endif ++#if !defined(LZO_COMPILE_TIME_ASSERT_HEADER) ++# if (LZO_CC_AZTECC || LZO_CC_ZORTECHC) +# define LZO_COMPILE_TIME_ASSERT_HEADER(e) LZO_EXTERN_C_BEGIN extern int __LZO_CTA_NAME(lzo_cta__)[1-!(e)]; LZO_EXTERN_C_END - # elif (LZO_CC_DMC || LZO_CC_SYMANTECC) --# define LZO_COMPILE_TIME_ASSERT_HEADER(e) extern int __lzo_cta[1u-2*!(e)]; ++# elif (LZO_CC_DMC || LZO_CC_SYMANTECC) +# define LZO_COMPILE_TIME_ASSERT_HEADER(e) LZO_EXTERN_C_BEGIN extern int __LZO_CTA_NAME(lzo_cta__)[1u-2*!(e)]; LZO_EXTERN_C_END - # elif (LZO_CC_TURBOC && (__TURBOC__ == 0x0295)) --# define LZO_COMPILE_TIME_ASSERT_HEADER(e) extern int __lzo_cta[1-!(e)]; ++# elif (LZO_CC_TURBOC && (__TURBOC__ == 0x0295)) +# define LZO_COMPILE_TIME_ASSERT_HEADER(e) LZO_EXTERN_C_BEGIN extern int __LZO_CTA_NAME(lzo_cta__)[1-!(e)]; LZO_EXTERN_C_END +# elif (LZO_CC_CLANG && (LZO_CC_CLANG < 0x020900ul)) && defined(__cplusplus) +# define LZO_COMPILE_TIME_ASSERT_HEADER(e) LZO_EXTERN_C_BEGIN int __LZO_CTA_NAME(lzo_cta_f__)(int [1-2*!(e)]); LZO_EXTERN_C_END +# elif (LZO_CC_GNUC) && defined(__CHECKER__) && defined(__SPARSE_CHECKER__) +# define LZO_COMPILE_TIME_ASSERT_HEADER(e) LZO_EXTERN_C_BEGIN enum {__LZO_CTA_NAME(lzo_cta_e__)=1/!!(e)} __attribute__((__unused__)); LZO_EXTERN_C_END - # else --# define LZO_COMPILE_TIME_ASSERT_HEADER(e) extern int __lzo_cta[1-2*!(e)]; ++# else +# define LZO_COMPILE_TIME_ASSERT_HEADER(e) LZO_EXTERN_C_BEGIN extern int __LZO_CTA_NAME(lzo_cta__)[1-2*!(e)]; LZO_EXTERN_C_END - # endif - #endif - #if !defined(LZO_COMPILE_TIME_ASSERT) - # if (LZO_CC_AZTECC) --# define LZO_COMPILE_TIME_ASSERT(e) {typedef int __lzo_cta_t[1-!(e)];} ++# endif ++#endif ++#if !defined(LZO_COMPILE_TIME_ASSERT) ++# if (LZO_CC_AZTECC) +# define LZO_COMPILE_TIME_ASSERT(e) {typedef int __LZO_CTA_NAME(lzo_cta_t__)[1-!(e)];} - # elif (LZO_CC_DMC || LZO_CC_PACIFICC || LZO_CC_SYMANTECC || LZO_CC_ZORTECHC) - # define LZO_COMPILE_TIME_ASSERT(e) switch(0) case 1:case !(e):break; ++# elif (LZO_CC_DMC || LZO_CC_PACIFICC || LZO_CC_SYMANTECC || LZO_CC_ZORTECHC) ++# define LZO_COMPILE_TIME_ASSERT(e) switch(0) case 1:case !(e):break; +# elif (LZO_CC_GNUC) && defined(__CHECKER__) && defined(__SPARSE_CHECKER__) +# define LZO_COMPILE_TIME_ASSERT(e) {(void) (0/!!(e));} +# elif (LZO_CC_GNUC >= 0x040700ul) && (LZO_CFG_USE_COUNTER) && defined(__cplusplus) +# define LZO_COMPILE_TIME_ASSERT(e) {enum {__LZO_CTA_NAME(lzo_cta_e__)=1/!!(e)} __attribute__((__unused__));} +# elif (LZO_CC_GNUC >= 0x040700ul) +# define LZO_COMPILE_TIME_ASSERT(e) {typedef int __LZO_CTA_NAME(lzo_cta_t__)[1-2*!(e)] __attribute__((__unused__));} - # elif (LZO_CC_MSC && (_MSC_VER < 900)) - # define LZO_COMPILE_TIME_ASSERT(e) switch(0) case 1:case !(e):break; - # elif (LZO_CC_TURBOC && (__TURBOC__ == 0x0295)) - # define LZO_COMPILE_TIME_ASSERT(e) switch(0) case 1:case !(e):break; - # else --# define LZO_COMPILE_TIME_ASSERT(e) {typedef int __lzo_cta_t[1-2*!(e)];} ++# elif (LZO_CC_MSC && (_MSC_VER < 900)) ++# define LZO_COMPILE_TIME_ASSERT(e) switch(0) case 1:case !(e):break; ++# elif (LZO_CC_TURBOC && (__TURBOC__ == 0x0295)) ++# define LZO_COMPILE_TIME_ASSERT(e) switch(0) case 1:case !(e):break; ++# else +# define LZO_COMPILE_TIME_ASSERT(e) {typedef int __LZO_CTA_NAME(lzo_cta_t__)[1-2*!(e)];} - # endif - #endif ++# endif ++#endif +LZO_COMPILE_TIME_ASSERT_HEADER(1 == 1) +#if defined(__cplusplus) +extern "C" { LZO_COMPILE_TIME_ASSERT_HEADER(2 == 2) } +#endif +LZO_COMPILE_TIME_ASSERT_HEADER(3 == 3) - #if (LZO_ARCH_I086 || LZO_ARCH_I386) && (LZO_OS_DOS16 || LZO_OS_DOS32 || LZO_OS_OS2 || LZO_OS_OS216 || LZO_OS_WIN16 || LZO_OS_WIN32 || LZO_OS_WIN64) - # if (LZO_CC_GNUC || LZO_CC_HIGHC || LZO_CC_NDPC || LZO_CC_PACIFICC) - # elif (LZO_CC_DMC || LZO_CC_SYMANTECC || LZO_CC_ZORTECHC) -@@ -1730,6 +1965,7 @@ extern "C" { - # define __lzo_cdecl_va __lzo_cdecl - #endif - #if !(LZO_CFG_NO_WINDOWS_H) ++#if (LZO_ARCH_I086 || LZO_ARCH_I386) && (LZO_OS_DOS16 || LZO_OS_DOS32 || LZO_OS_OS2 || LZO_OS_OS216 || LZO_OS_WIN16 || LZO_OS_WIN32 || LZO_OS_WIN64) ++# if (LZO_CC_GNUC || LZO_CC_HIGHC || LZO_CC_NDPC || LZO_CC_PACIFICC) ++# elif (LZO_CC_DMC || LZO_CC_SYMANTECC || LZO_CC_ZORTECHC) ++# define __lzo_cdecl __cdecl ++# define __lzo_cdecl_atexit /*empty*/ ++# define __lzo_cdecl_main __cdecl ++# if (LZO_OS_OS2 && (LZO_CC_DMC || LZO_CC_SYMANTECC)) ++# define __lzo_cdecl_qsort __pascal ++# elif (LZO_OS_OS2 && (LZO_CC_ZORTECHC)) ++# define __lzo_cdecl_qsort _stdcall ++# else ++# define __lzo_cdecl_qsort __cdecl ++# endif ++# elif (LZO_CC_WATCOMC) ++# define __lzo_cdecl __cdecl ++# else ++# define __lzo_cdecl __cdecl ++# define __lzo_cdecl_atexit __cdecl ++# define __lzo_cdecl_main __cdecl ++# define __lzo_cdecl_qsort __cdecl ++# endif ++# if (LZO_CC_GNUC || LZO_CC_HIGHC || LZO_CC_NDPC || LZO_CC_PACIFICC || LZO_CC_WATCOMC) ++# elif (LZO_OS_OS2 && (LZO_CC_DMC || LZO_CC_SYMANTECC)) ++# define __lzo_cdecl_sighandler __pascal ++# elif (LZO_OS_OS2 && (LZO_CC_ZORTECHC)) ++# define __lzo_cdecl_sighandler _stdcall ++# elif (LZO_CC_MSC && (_MSC_VER >= 1400)) && defined(_M_CEE_PURE) ++# define __lzo_cdecl_sighandler __clrcall ++# elif (LZO_CC_MSC && (_MSC_VER >= 600 && _MSC_VER < 700)) ++# if defined(_DLL) ++# define __lzo_cdecl_sighandler _far _cdecl _loadds ++# elif defined(_MT) ++# define __lzo_cdecl_sighandler _far _cdecl ++# else ++# define __lzo_cdecl_sighandler _cdecl ++# endif ++# else ++# define __lzo_cdecl_sighandler __cdecl ++# endif ++#elif (LZO_ARCH_I386) && (LZO_CC_WATCOMC) ++# define __lzo_cdecl __cdecl ++#elif (LZO_ARCH_M68K && LZO_OS_TOS && (LZO_CC_PUREC || LZO_CC_TURBOC)) ++# define __lzo_cdecl cdecl ++#endif ++#if !defined(__lzo_cdecl) ++# define __lzo_cdecl /*empty*/ ++#endif ++#if !defined(__lzo_cdecl_atexit) ++# define __lzo_cdecl_atexit /*empty*/ ++#endif ++#if !defined(__lzo_cdecl_main) ++# define __lzo_cdecl_main /*empty*/ ++#endif ++#if !defined(__lzo_cdecl_qsort) ++# define __lzo_cdecl_qsort /*empty*/ ++#endif ++#if !defined(__lzo_cdecl_sighandler) ++# define __lzo_cdecl_sighandler /*empty*/ ++#endif ++#if !defined(__lzo_cdecl_va) ++# define __lzo_cdecl_va __lzo_cdecl ++#endif ++#if !(LZO_CFG_NO_WINDOWS_H) +#if !defined(LZO_HAVE_WINDOWS_H) - #if (LZO_OS_CYGWIN || (LZO_OS_EMX && defined(__RSXNT__)) || LZO_OS_WIN32 || LZO_OS_WIN64) - # if (LZO_CC_WATCOMC && (__WATCOMC__ < 1000)) - # elif (LZO_OS_WIN32 && LZO_CC_GNUC) && defined(__PW32__) -@@ -1739,60 +1975,614 @@ extern "C" { - # endif - #endif - #endif ++#if (LZO_OS_CYGWIN || (LZO_OS_EMX && defined(__RSXNT__)) || LZO_OS_WIN32 || LZO_OS_WIN64) ++# if (LZO_CC_WATCOMC && (__WATCOMC__ < 1000)) ++# elif (LZO_OS_WIN32 && LZO_CC_GNUC) && defined(__PW32__) ++# elif ((LZO_OS_CYGWIN || defined(__MINGW32__)) && (LZO_CC_GNUC && (LZO_CC_GNUC < 0x025f00ul))) ++# else ++# define LZO_HAVE_WINDOWS_H 1 ++# endif ++#endif ++#endif +#endif +#ifndef LZO_SIZEOF_SHORT -+#if defined(SIZEOF_SHORT) -+# define LZO_SIZEOF_SHORT (SIZEOF_SHORT) + #if defined(SIZEOF_SHORT) + # define LZO_SIZEOF_SHORT (SIZEOF_SHORT) +#elif defined(__SIZEOF_SHORT__) +# define LZO_SIZEOF_SHORT (__SIZEOF_SHORT__) -+#endif + #endif +#endif +#ifndef LZO_SIZEOF_INT -+#if defined(SIZEOF_INT) -+# define LZO_SIZEOF_INT (SIZEOF_INT) + #if defined(SIZEOF_INT) + # define LZO_SIZEOF_INT (SIZEOF_INT) +#elif defined(__SIZEOF_INT__) +# define LZO_SIZEOF_INT (__SIZEOF_INT__) -+#endif + #endif +#endif +#ifndef LZO_SIZEOF_LONG -+#if defined(SIZEOF_LONG) -+# define LZO_SIZEOF_LONG (SIZEOF_LONG) + #if defined(SIZEOF_LONG) + # define LZO_SIZEOF_LONG (SIZEOF_LONG) +#elif defined(__SIZEOF_LONG__) +# define LZO_SIZEOF_LONG (__SIZEOF_LONG__) -+#endif + #endif +#endif +#ifndef LZO_SIZEOF_LONG_LONG -+#if defined(SIZEOF_LONG_LONG) -+# define LZO_SIZEOF_LONG_LONG (SIZEOF_LONG_LONG) + #if defined(SIZEOF_LONG_LONG) + # define LZO_SIZEOF_LONG_LONG (SIZEOF_LONG_LONG) +#elif defined(__SIZEOF_LONG_LONG__) +# define LZO_SIZEOF_LONG_LONG (__SIZEOF_LONG_LONG__) -+#endif + #endif +#endif +#ifndef LZO_SIZEOF___INT16 -+#if defined(SIZEOF___INT16) -+# define LZO_SIZEOF___INT16 (SIZEOF___INT16) -+#endif + #if defined(SIZEOF___INT16) + # define LZO_SIZEOF___INT16 (SIZEOF___INT16) + #endif +#endif +#ifndef LZO_SIZEOF___INT32 -+#if defined(SIZEOF___INT32) -+# define LZO_SIZEOF___INT32 (SIZEOF___INT32) -+#endif + #if defined(SIZEOF___INT32) + # define LZO_SIZEOF___INT32 (SIZEOF___INT32) + #endif +#endif +#ifndef LZO_SIZEOF___INT64 -+#if defined(SIZEOF___INT64) -+# define LZO_SIZEOF___INT64 (SIZEOF___INT64) -+#endif + #if defined(SIZEOF___INT64) + # define LZO_SIZEOF___INT64 (SIZEOF___INT64) + #endif +#endif +#ifndef LZO_SIZEOF_VOID_P -+#if defined(SIZEOF_VOID_P) -+# define LZO_SIZEOF_VOID_P (SIZEOF_VOID_P) + #if defined(SIZEOF_VOID_P) + # define LZO_SIZEOF_VOID_P (SIZEOF_VOID_P) +#elif defined(__SIZEOF_POINTER__) +# define LZO_SIZEOF_VOID_P (__SIZEOF_POINTER__) -+#endif + #endif +#endif +#ifndef LZO_SIZEOF_SIZE_T -+#if defined(SIZEOF_SIZE_T) -+# define LZO_SIZEOF_SIZE_T (SIZEOF_SIZE_T) + #if defined(SIZEOF_SIZE_T) + # define LZO_SIZEOF_SIZE_T (SIZEOF_SIZE_T) +#elif defined(__SIZEOF_SIZE_T__) +# define LZO_SIZEOF_SIZE_T (__SIZEOF_SIZE_T__) -+#endif + #endif +#endif +#ifndef LZO_SIZEOF_PTRDIFF_T -+#if defined(SIZEOF_PTRDIFF_T) -+# define LZO_SIZEOF_PTRDIFF_T (SIZEOF_PTRDIFF_T) + #if defined(SIZEOF_PTRDIFF_T) + # define LZO_SIZEOF_PTRDIFF_T (SIZEOF_PTRDIFF_T) +#elif defined(__SIZEOF_PTRDIFF_T__) +# define LZO_SIZEOF_PTRDIFF_T (__SIZEOF_PTRDIFF_T__) +#endif -+#endif -+#define __LZO_LSR(x,b) (((x)+0ul) >> (b)) -+#if !defined(LZO_SIZEOF_SHORT) -+# if (LZO_ARCH_CRAY_PVP) -+# define LZO_SIZEOF_SHORT 8 -+# elif (USHRT_MAX == LZO_0xffffL) -+# define LZO_SIZEOF_SHORT 2 -+# elif (__LZO_LSR(USHRT_MAX,7) == 1) -+# define LZO_SIZEOF_SHORT 1 -+# elif (__LZO_LSR(USHRT_MAX,15) == 1) -+# define LZO_SIZEOF_SHORT 2 -+# elif (__LZO_LSR(USHRT_MAX,31) == 1) -+# define LZO_SIZEOF_SHORT 4 -+# elif (__LZO_LSR(USHRT_MAX,63) == 1) -+# define LZO_SIZEOF_SHORT 8 -+# elif (__LZO_LSR(USHRT_MAX,127) == 1) -+# define LZO_SIZEOF_SHORT 16 -+# else -+# error "LZO_SIZEOF_SHORT" -+# endif -+#endif + #endif + #define __LZO_LSR(x,b) (((x)+0ul) >> (b)) + #if !defined(LZO_SIZEOF_SHORT) +@@ -1080,6 +2060,7 @@ extern "C" { + # error "LZO_SIZEOF_SHORT" + # endif + #endif +LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_SHORT == sizeof(short)) -+#if !defined(LZO_SIZEOF_INT) -+# if (LZO_ARCH_CRAY_PVP) -+# define LZO_SIZEOF_INT 8 -+# elif (UINT_MAX == LZO_0xffffL) -+# define LZO_SIZEOF_INT 2 -+# elif (UINT_MAX == LZO_0xffffffffL) -+# define LZO_SIZEOF_INT 4 -+# elif (__LZO_LSR(UINT_MAX,7) == 1) -+# define LZO_SIZEOF_INT 1 -+# elif (__LZO_LSR(UINT_MAX,15) == 1) -+# define LZO_SIZEOF_INT 2 -+# elif (__LZO_LSR(UINT_MAX,31) == 1) -+# define LZO_SIZEOF_INT 4 -+# elif (__LZO_LSR(UINT_MAX,63) == 1) -+# define LZO_SIZEOF_INT 8 -+# elif (__LZO_LSR(UINT_MAX,127) == 1) -+# define LZO_SIZEOF_INT 16 -+# else -+# error "LZO_SIZEOF_INT" -+# endif -+#endif + #if !defined(LZO_SIZEOF_INT) + # if (LZO_ARCH_CRAY_PVP) + # define LZO_SIZEOF_INT 8 +@@ -1101,6 +2082,7 @@ extern "C" { + # error "LZO_SIZEOF_INT" + # endif + #endif +LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_INT == sizeof(int)) -+#if !defined(LZO_SIZEOF_LONG) -+# if (ULONG_MAX == LZO_0xffffffffL) -+# define LZO_SIZEOF_LONG 4 -+# elif (__LZO_LSR(ULONG_MAX,7) == 1) -+# define LZO_SIZEOF_LONG 1 -+# elif (__LZO_LSR(ULONG_MAX,15) == 1) -+# define LZO_SIZEOF_LONG 2 -+# elif (__LZO_LSR(ULONG_MAX,31) == 1) -+# define LZO_SIZEOF_LONG 4 + #if !defined(LZO_SIZEOF_LONG) + # if (ULONG_MAX == LZO_0xffffffffL) + # define LZO_SIZEOF_LONG 4 +@@ -1110,6 +2092,8 @@ extern "C" { + # define LZO_SIZEOF_LONG 2 + # elif (__LZO_LSR(ULONG_MAX,31) == 1) + # define LZO_SIZEOF_LONG 4 +# elif (__LZO_LSR(ULONG_MAX,39) == 1) +# define LZO_SIZEOF_LONG 5 -+# elif (__LZO_LSR(ULONG_MAX,63) == 1) -+# define LZO_SIZEOF_LONG 8 -+# elif (__LZO_LSR(ULONG_MAX,127) == 1) -+# define LZO_SIZEOF_LONG 16 -+# else -+# error "LZO_SIZEOF_LONG" -+# endif -+#endif + # elif (__LZO_LSR(ULONG_MAX,63) == 1) + # define LZO_SIZEOF_LONG 8 + # elif (__LZO_LSR(ULONG_MAX,127) == 1) +@@ -1118,11 +2102,12 @@ extern "C" { + # error "LZO_SIZEOF_LONG" + # endif + #endif +LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_LONG == sizeof(long)) -+#if !defined(LZO_SIZEOF_LONG_LONG) && !defined(LZO_SIZEOF___INT64) -+#if (LZO_SIZEOF_LONG > 0 && LZO_SIZEOF_LONG < 8) -+# if defined(__LONG_MAX__) && defined(__LONG_LONG_MAX__) -+# if (LZO_CC_GNUC >= 0x030300ul) + #if !defined(LZO_SIZEOF_LONG_LONG) && !defined(LZO_SIZEOF___INT64) + #if (LZO_SIZEOF_LONG > 0 && LZO_SIZEOF_LONG < 8) + # if defined(__LONG_MAX__) && defined(__LONG_LONG_MAX__) + # if (LZO_CC_GNUC >= 0x030300ul) +-# if ((__LONG_MAX__)+0 == (__LONG_LONG_MAX__)+0) +# if ((__LONG_MAX__-0) == (__LONG_LONG_MAX__-0)) -+# define LZO_SIZEOF_LONG_LONG LZO_SIZEOF_LONG -+# elif (__LZO_LSR(__LONG_LONG_MAX__,30) == 1) -+# define LZO_SIZEOF_LONG_LONG 4 -+# endif -+# endif -+# endif -+#endif -+#endif -+#if !defined(LZO_SIZEOF_LONG_LONG) && !defined(LZO_SIZEOF___INT64) -+#if (LZO_SIZEOF_LONG > 0 && LZO_SIZEOF_LONG < 8) -+#if (LZO_ARCH_I086 && LZO_CC_DMC) -+#elif (LZO_CC_CILLY) && defined(__GNUC__) -+# define LZO_SIZEOF_LONG_LONG 8 + # define LZO_SIZEOF_LONG_LONG LZO_SIZEOF_LONG + # elif (__LZO_LSR(__LONG_LONG_MAX__,30) == 1) + # define LZO_SIZEOF_LONG_LONG 4 +@@ -1136,7 +2121,7 @@ extern "C" { + #if (LZO_ARCH_I086 && LZO_CC_DMC) + #elif (LZO_CC_CILLY) && defined(__GNUC__) + # define LZO_SIZEOF_LONG_LONG 8 +-#elif (LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE) +#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE) -+# define LZO_SIZEOF_LONG_LONG 8 -+#elif ((LZO_OS_WIN32 || LZO_OS_WIN64 || defined(_WIN32)) && LZO_CC_MSC && (_MSC_VER >= 1400)) -+# define LZO_SIZEOF_LONG_LONG 8 -+#elif (LZO_OS_WIN64 || defined(_WIN64)) -+# define LZO_SIZEOF___INT64 8 -+#elif (LZO_ARCH_I386 && (LZO_CC_DMC)) -+# define LZO_SIZEOF_LONG_LONG 8 -+#elif (LZO_ARCH_I386 && (LZO_CC_SYMANTECC && (__SC__ >= 0x700))) -+# define LZO_SIZEOF_LONG_LONG 8 -+#elif (LZO_ARCH_I386 && (LZO_CC_INTELC && defined(__linux__))) -+# define LZO_SIZEOF_LONG_LONG 8 -+#elif (LZO_ARCH_I386 && (LZO_CC_MWERKS || LZO_CC_PELLESC || LZO_CC_PGI || LZO_CC_SUNPROC)) -+# define LZO_SIZEOF_LONG_LONG 8 -+#elif (LZO_ARCH_I386 && (LZO_CC_INTELC || LZO_CC_MSC)) -+# define LZO_SIZEOF___INT64 8 -+#elif ((LZO_OS_WIN32 || defined(_WIN32)) && (LZO_CC_MSC)) -+# define LZO_SIZEOF___INT64 8 -+#elif (LZO_ARCH_I386 && (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0520))) -+# define LZO_SIZEOF___INT64 8 -+#elif (LZO_ARCH_I386 && (LZO_CC_WATCOMC && (__WATCOMC__ >= 1100))) -+# define LZO_SIZEOF___INT64 8 + # define LZO_SIZEOF_LONG_LONG 8 + #elif ((LZO_OS_WIN32 || LZO_OS_WIN64 || defined(_WIN32)) && LZO_CC_MSC && (_MSC_VER >= 1400)) + # define LZO_SIZEOF_LONG_LONG 8 +@@ -1158,11 +2143,13 @@ extern "C" { + # define LZO_SIZEOF___INT64 8 + #elif (LZO_ARCH_I386 && (LZO_CC_WATCOMC && (__WATCOMC__ >= 1100))) + # define LZO_SIZEOF___INT64 8 +-#elif (LZO_CC_WATCOMC && defined(_INTEGRAL_MAX_BITS) && (_INTEGRAL_MAX_BITS == 64)) +#elif (LZO_CC_GHS && defined(__LLONG_BIT) && ((__LLONG_BIT-0) == 64)) +# define LZO_SIZEOF_LONG_LONG 8 +#elif (LZO_CC_WATCOMC && defined(_INTEGRAL_MAX_BITS) && ((_INTEGRAL_MAX_BITS-0) == 64)) -+# define LZO_SIZEOF___INT64 8 -+#elif (LZO_OS_OS400 || defined(__OS400__)) && defined(__LLP64_IFC__) -+# define LZO_SIZEOF_LONG_LONG 8 + # define LZO_SIZEOF___INT64 8 + #elif (LZO_OS_OS400 || defined(__OS400__)) && defined(__LLP64_IFC__) + # define LZO_SIZEOF_LONG_LONG 8 +-#elif (defined(__vms) || defined(__VMS)) && (__INITIAL_POINTER_SIZE+0 == 64) +#elif (defined(__vms) || defined(__VMS)) && ((__INITIAL_POINTER_SIZE-0) == 64) -+# define LZO_SIZEOF_LONG_LONG 8 -+#elif (LZO_CC_SDCC) && (LZO_SIZEOF_INT == 2) -+#elif 1 && defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) -+# define LZO_SIZEOF_LONG_LONG 8 -+#endif -+#endif -+#endif -+#if defined(__cplusplus) && (LZO_CC_GNUC) -+# if (LZO_CC_GNUC < 0x020800ul) -+# undef LZO_SIZEOF_LONG_LONG -+# endif -+#endif + # define LZO_SIZEOF_LONG_LONG 8 + #elif (LZO_CC_SDCC) && (LZO_SIZEOF_INT == 2) + #elif 1 && defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) +@@ -1175,87 +2162,127 @@ extern "C" { + # undef LZO_SIZEOF_LONG_LONG + # endif + #endif +-#if (LZO_CFG_NO_LONG_LONG) || defined(__NO_LONG_LONG) +#if (LZO_CFG_NO_LONG_LONG) +# undef LZO_SIZEOF_LONG_LONG +#elif defined(__NO_LONG_LONG) +# undef LZO_SIZEOF_LONG_LONG +#elif defined(_NO_LONGLONG) -+# undef LZO_SIZEOF_LONG_LONG -+#endif + # undef LZO_SIZEOF_LONG_LONG + #endif +-#if !defined(LZO_SIZEOF_VOID_P) +-#if (LZO_ARCH_I086) +-# define __LZO_WORDSIZE 2 +-# if (LZO_MM_TINY || LZO_MM_SMALL || LZO_MM_MEDIUM) +-# define LZO_SIZEOF_VOID_P 2 +-# elif (LZO_MM_COMPACT || LZO_MM_LARGE || LZO_MM_HUGE) +-# define LZO_SIZEOF_VOID_P 4 +#if !defined(LZO_WORDSIZE) +#if (LZO_ARCH_ALPHA) +# define LZO_WORDSIZE 8 @@ -5461,9 +1672,12 @@ index 25a1f68b3..ab2be5f4f 100644 +# define LZO_WORDSIZE 4 +# elif defined(__H8300H__) || defined(__H8300S__) || defined(__H8300SX__) +# define LZO_WORDSIZE 4 -+# else + # else +-# error "LZO_MM" +# define LZO_WORDSIZE 2 -+# endif + # endif +-#elif (LZO_ARCH_AVR || LZO_ARCH_Z80) +-# define __LZO_WORDSIZE 1 +#elif (LZO_ARCH_I086) +# define LZO_WORDSIZE 2 +#elif (LZO_ARCH_IA64) @@ -5498,21 +1712,24 @@ index 25a1f68b3..ab2be5f4f 100644 +LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(long) == 8) +# define LZO_SIZEOF_VOID_P 8 +#elif (LZO_ARCH_AVR) -+# define LZO_SIZEOF_VOID_P 2 -+#elif (LZO_ARCH_C166 || LZO_ARCH_MCS51 || LZO_ARCH_MCS251 || LZO_ARCH_MSP430) -+# define LZO_SIZEOF_VOID_P 2 -+#elif (LZO_ARCH_H8300) -+# if defined(__NORMAL_MODE__) -+# define LZO_SIZEOF_VOID_P 2 -+# elif defined(__H8300H__) || defined(__H8300S__) || defined(__H8300SX__) -+# define LZO_SIZEOF_VOID_P 4 -+# else -+# define LZO_SIZEOF_VOID_P 2 -+# endif -+# if (LZO_CC_GNUC && (LZO_CC_GNUC < 0x040000ul)) && (LZO_SIZEOF_INT == 4) -+# define LZO_SIZEOF_SIZE_T LZO_SIZEOF_INT -+# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_INT -+# endif + # define LZO_SIZEOF_VOID_P 2 + #elif (LZO_ARCH_C166 || LZO_ARCH_MCS51 || LZO_ARCH_MCS251 || LZO_ARCH_MSP430) + # define LZO_SIZEOF_VOID_P 2 + #elif (LZO_ARCH_H8300) + # if defined(__NORMAL_MODE__) +-# define __LZO_WORDSIZE 4 + # define LZO_SIZEOF_VOID_P 2 + # elif defined(__H8300H__) || defined(__H8300S__) || defined(__H8300SX__) +-# define __LZO_WORDSIZE 4 + # define LZO_SIZEOF_VOID_P 4 + # else +-# define __LZO_WORDSIZE 2 + # define LZO_SIZEOF_VOID_P 2 + # endif + # if (LZO_CC_GNUC && (LZO_CC_GNUC < 0x040000ul)) && (LZO_SIZEOF_INT == 4) + # define LZO_SIZEOF_SIZE_T LZO_SIZEOF_INT + # define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_INT + # endif +#elif (LZO_ARCH_I086) +# if (LZO_MM_TINY || LZO_MM_SMALL || LZO_MM_MEDIUM) +# define LZO_SIZEOF_VOID_P 2 @@ -5521,99 +1738,116 @@ index 25a1f68b3..ab2be5f4f 100644 +# else +# error "invalid LZO_ARCH_I086 memory model" +# endif -+#elif (LZO_ARCH_M16C) -+# if defined(__m32c_cpu__) || defined(__m32cm_cpu__) -+# define LZO_SIZEOF_VOID_P 4 -+# else -+# define LZO_SIZEOF_VOID_P 2 -+# endif + #elif (LZO_ARCH_M16C) +-# define __LZO_WORDSIZE 2 + # if defined(__m32c_cpu__) || defined(__m32cm_cpu__) + # define LZO_SIZEOF_VOID_P 4 + # else + # define LZO_SIZEOF_VOID_P 2 + # endif +#elif (LZO_ARCH_SPU) +# define LZO_SIZEOF_VOID_P 4 +#elif (LZO_ARCH_Z80) +# define LZO_SIZEOF_VOID_P 2 -+#elif (LZO_SIZEOF_LONG == 8) && ((defined(__mips__) && defined(__R5900__)) || defined(__MIPS_PSX2__)) -+# define LZO_SIZEOF_VOID_P 4 -+#elif (LZO_OS_OS400 || defined(__OS400__)) + #elif (LZO_SIZEOF_LONG == 8) && ((defined(__mips__) && defined(__R5900__)) || defined(__MIPS_PSX2__)) +-# define __LZO_WORDSIZE 8 + # define LZO_SIZEOF_VOID_P 4 +-#elif defined(__LLP64__) || defined(__LLP64) || defined(_LLP64) || defined(_WIN64) +-# define __LZO_WORDSIZE 8 +-# define LZO_SIZEOF_VOID_P 8 +-#elif (LZO_OS_OS400 || defined(__OS400__)) && defined(__LLP64_IFC__) +-# define LZO_SIZEOF_VOID_P LZO_SIZEOF_LONG +-# define LZO_SIZEOF_SIZE_T LZO_SIZEOF_LONG +-# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_LONG + #elif (LZO_OS_OS400 || defined(__OS400__)) +-# define __LZO_WORDSIZE LZO_SIZEOF_LONG +-# define LZO_SIZEOF_VOID_P 16 +-# define LZO_SIZEOF_SIZE_T LZO_SIZEOF_LONG +-# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_LONG +-#elif (defined(__vms) || defined(__VMS)) && (__INITIAL_POINTER_SIZE+0 == 64) +-# define LZO_SIZEOF_VOID_P 8 +-# define LZO_SIZEOF_SIZE_T LZO_SIZEOF_LONG +-# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_LONG +-#elif (LZO_ARCH_SPU) +-# if 0 +-# define __LZO_WORDSIZE 16 +-# endif +-# define LZO_SIZEOF_VOID_P 4 +-#else +-# define LZO_SIZEOF_VOID_P LZO_SIZEOF_LONG +-#endif +-#endif +-#if !defined(LZO_WORDSIZE) +-# if defined(__LZO_WORDSIZE) +-# define LZO_WORDSIZE __LZO_WORDSIZE +# if defined(__LLP64_IFC__) +# define LZO_SIZEOF_VOID_P 8 +# define LZO_SIZEOF_SIZE_T LZO_SIZEOF_LONG +# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_LONG -+# else + # else +-# define LZO_WORDSIZE LZO_SIZEOF_VOID_P +# define LZO_SIZEOF_VOID_P 16 +# define LZO_SIZEOF_SIZE_T LZO_SIZEOF_LONG +# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_LONG -+# endif + # endif +#elif (defined(__vms) || defined(__VMS)) && (__INITIAL_POINTER_SIZE+0 == 64) +# define LZO_SIZEOF_VOID_P 8 +# define LZO_SIZEOF_SIZE_T LZO_SIZEOF_LONG +# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_LONG -+#endif + #endif +#endif +#if !defined(LZO_SIZEOF_VOID_P) +# define LZO_SIZEOF_VOID_P LZO_SIZEOF_LONG +#endif +LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_VOID_P == sizeof(void *)) -+#if !defined(LZO_SIZEOF_SIZE_T) -+#if (LZO_ARCH_I086 || LZO_ARCH_M16C) -+# define LZO_SIZEOF_SIZE_T 2 + #if !defined(LZO_SIZEOF_SIZE_T) + #if (LZO_ARCH_I086 || LZO_ARCH_M16C) + # define LZO_SIZEOF_SIZE_T 2 +-#else +#endif +#endif +#if !defined(LZO_SIZEOF_SIZE_T) -+# define LZO_SIZEOF_SIZE_T LZO_SIZEOF_VOID_P -+#endif + # define LZO_SIZEOF_SIZE_T LZO_SIZEOF_VOID_P + #endif +#if defined(offsetof) +LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_SIZE_T == sizeof(size_t)) -+#endif -+#if !defined(LZO_SIZEOF_PTRDIFF_T) -+#if (LZO_ARCH_I086) -+# if (LZO_MM_TINY || LZO_MM_SMALL || LZO_MM_MEDIUM || LZO_MM_HUGE) -+# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_VOID_P -+# elif (LZO_MM_COMPACT || LZO_MM_LARGE) -+# if (LZO_CC_BORLANDC || LZO_CC_TURBOC) -+# define LZO_SIZEOF_PTRDIFF_T 4 -+# else -+# define LZO_SIZEOF_PTRDIFF_T 2 -+# endif -+# else + #endif + #if !defined(LZO_SIZEOF_PTRDIFF_T) + #if (LZO_ARCH_I086) +@@ -1268,11 +2295,18 @@ extern "C" { + # define LZO_SIZEOF_PTRDIFF_T 2 + # endif + # else +-# error "LZO_MM" +# error "invalid LZO_ARCH_I086 memory model" -+# endif + # endif +-#else +#endif +#endif +#if !defined(LZO_SIZEOF_PTRDIFF_T) -+# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_SIZE_T -+#endif + # define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_SIZE_T + #endif +#if defined(offsetof) +LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_PTRDIFF_T == sizeof(ptrdiff_t)) +#endif +#if !defined(LZO_WORDSIZE) +# define LZO_WORDSIZE LZO_SIZEOF_VOID_P -+#endif -+#if (LZO_ABI_NEUTRAL_ENDIAN) -+# undef LZO_ABI_BIG_ENDIAN -+# undef LZO_ABI_LITTLE_ENDIAN -+#elif !(LZO_ABI_BIG_ENDIAN) && !(LZO_ABI_LITTLE_ENDIAN) -+#if (LZO_ARCH_ALPHA) && (LZO_ARCH_CRAY_MPP) -+# define LZO_ABI_BIG_ENDIAN 1 -+#elif (LZO_ARCH_IA64) && (LZO_OS_POSIX_LINUX || LZO_OS_WIN64) -+# define LZO_ABI_LITTLE_ENDIAN 1 -+#elif (LZO_ARCH_ALPHA || LZO_ARCH_AMD64 || LZO_ARCH_BLACKFIN || LZO_ARCH_CRIS || LZO_ARCH_I086 || LZO_ARCH_I386 || LZO_ARCH_MSP430) -+# define LZO_ABI_LITTLE_ENDIAN 1 + #endif + #if (LZO_ABI_NEUTRAL_ENDIAN) + # undef LZO_ABI_BIG_ENDIAN +@@ -1284,7 +2318,7 @@ extern "C" { + # define LZO_ABI_LITTLE_ENDIAN 1 + #elif (LZO_ARCH_ALPHA || LZO_ARCH_AMD64 || LZO_ARCH_BLACKFIN || LZO_ARCH_CRIS || LZO_ARCH_I086 || LZO_ARCH_I386 || LZO_ARCH_MSP430) + # define LZO_ABI_LITTLE_ENDIAN 1 +-#elif (LZO_ARCH_AVR32 || LZO_ARCH_M68K || LZO_ARCH_S390) +#elif (LZO_ARCH_AVR32 || LZO_ARCH_M68K || LZO_ARCH_S390 || LZO_ARCH_SPU) -+# define LZO_ABI_BIG_ENDIAN 1 -+#elif 1 && defined(__IAR_SYSTEMS_ICC__) && defined(__LITTLE_ENDIAN__) -+# if (__LITTLE_ENDIAN__ == 1) -+# define LZO_ABI_LITTLE_ENDIAN 1 -+# else -+# define LZO_ABI_BIG_ENDIAN 1 -+# endif -+#elif 1 && defined(__BIG_ENDIAN__) && !defined(__LITTLE_ENDIAN__) -+# define LZO_ABI_BIG_ENDIAN 1 -+#elif 1 && defined(__LITTLE_ENDIAN__) && !defined(__BIG_ENDIAN__) -+# define LZO_ABI_LITTLE_ENDIAN 1 -+#elif 1 && (LZO_ARCH_ARM) && defined(__ARMEB__) && !defined(__ARMEL__) -+# define LZO_ABI_BIG_ENDIAN 1 -+#elif 1 && (LZO_ARCH_ARM) && defined(__ARMEL__) && !defined(__ARMEB__) -+# define LZO_ABI_LITTLE_ENDIAN 1 + # define LZO_ABI_BIG_ENDIAN 1 + #elif 1 && defined(__IAR_SYSTEMS_ICC__) && defined(__LITTLE_ENDIAN__) + # if (__LITTLE_ENDIAN__ == 1) +@@ -1300,6 +2334,19 @@ extern "C" { + # define LZO_ABI_BIG_ENDIAN 1 + #elif 1 && (LZO_ARCH_ARM) && defined(__ARMEL__) && !defined(__ARMEB__) + # define LZO_ABI_LITTLE_ENDIAN 1 +#elif 1 && (LZO_ARCH_ARM && LZO_CC_ARMCC_ARMCC) +# if defined(__BIG_ENDIAN) && defined(__LITTLE_ENDIAN) +# error "unexpected configuration - check your compiler defines" @@ -5627,89 +1861,430 @@ index 25a1f68b3..ab2be5f4f 100644 +# define LZO_ABI_BIG_ENDIAN 1 +#elif 1 && (LZO_ARCH_ARM64) && defined(__AARCH64EL__) && !defined(__AARCH64EB__) +# define LZO_ABI_LITTLE_ENDIAN 1 -+#elif 1 && (LZO_ARCH_MIPS) && defined(__MIPSEB__) && !defined(__MIPSEL__) -+# define LZO_ABI_BIG_ENDIAN 1 -+#elif 1 && (LZO_ARCH_MIPS) && defined(__MIPSEL__) && !defined(__MIPSEB__) -+# define LZO_ABI_LITTLE_ENDIAN 1 -+#endif -+#endif -+#if (LZO_ABI_BIG_ENDIAN) && (LZO_ABI_LITTLE_ENDIAN) + #elif 1 && (LZO_ARCH_MIPS) && defined(__MIPSEB__) && !defined(__MIPSEL__) + # define LZO_ABI_BIG_ENDIAN 1 + #elif 1 && (LZO_ARCH_MIPS) && defined(__MIPSEL__) && !defined(__MIPSEB__) +@@ -1307,7 +2354,7 @@ extern "C" { + #endif + #endif + #if (LZO_ABI_BIG_ENDIAN) && (LZO_ABI_LITTLE_ENDIAN) +-# error "this should not happen" +# error "unexpected configuration - check your compiler defines" -+#endif -+#if (LZO_ABI_BIG_ENDIAN) -+# define LZO_INFO_ABI_ENDIAN "be" -+#elif (LZO_ABI_LITTLE_ENDIAN) -+# define LZO_INFO_ABI_ENDIAN "le" -+#elif (LZO_ABI_NEUTRAL_ENDIAN) -+# define LZO_INFO_ABI_ENDIAN "neutral" -+#endif -+#if (LZO_SIZEOF_INT == 1 && LZO_SIZEOF_LONG == 2 && LZO_SIZEOF_VOID_P == 2) -+# define LZO_ABI_I8LP16 1 -+# define LZO_INFO_ABI_PM "i8lp16" -+#elif (LZO_SIZEOF_INT == 2 && LZO_SIZEOF_LONG == 2 && LZO_SIZEOF_VOID_P == 2) -+# define LZO_ABI_ILP16 1 -+# define LZO_INFO_ABI_PM "ilp16" + #endif + #if (LZO_ABI_BIG_ENDIAN) + # define LZO_INFO_ABI_ENDIAN "be" +@@ -1322,6 +2369,9 @@ extern "C" { + #elif (LZO_SIZEOF_INT == 2 && LZO_SIZEOF_LONG == 2 && LZO_SIZEOF_VOID_P == 2) + # define LZO_ABI_ILP16 1 + # define LZO_INFO_ABI_PM "ilp16" +#elif (LZO_SIZEOF_INT == 2 && LZO_SIZEOF_LONG == 4 && LZO_SIZEOF_VOID_P == 4) +# define LZO_ABI_LP32 1 +# define LZO_INFO_ABI_PM "lp32" -+#elif (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_LONG == 4 && LZO_SIZEOF_VOID_P == 4) -+# define LZO_ABI_ILP32 1 -+# define LZO_INFO_ABI_PM "ilp32" -+#elif (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_LONG == 4 && LZO_SIZEOF_VOID_P == 8 && LZO_SIZEOF_SIZE_T == 8) -+# define LZO_ABI_LLP64 1 -+# define LZO_INFO_ABI_PM "llp64" -+#elif (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_LONG == 8 && LZO_SIZEOF_VOID_P == 8) -+# define LZO_ABI_LP64 1 -+# define LZO_INFO_ABI_PM "lp64" -+#elif (LZO_SIZEOF_INT == 8 && LZO_SIZEOF_LONG == 8 && LZO_SIZEOF_VOID_P == 8) -+# define LZO_ABI_ILP64 1 -+# define LZO_INFO_ABI_PM "ilp64" -+#elif (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_LONG == 8 && LZO_SIZEOF_VOID_P == 4) -+# define LZO_ABI_IP32L64 1 -+# define LZO_INFO_ABI_PM "ip32l64" -+#endif + #elif (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_LONG == 4 && LZO_SIZEOF_VOID_P == 4) + # define LZO_ABI_ILP32 1 + # define LZO_INFO_ABI_PM "ilp32" +@@ -1338,7 +2388,8 @@ extern "C" { + # define LZO_ABI_IP32L64 1 + # define LZO_INFO_ABI_PM "ip32l64" + #endif +-#if !defined(__LZO_LIBC_OVERRIDE) +#if 0 +#elif !defined(__LZO_LIBC_OVERRIDE) -+#if (LZO_LIBC_NAKED) -+# define LZO_INFO_LIBC "naked" -+#elif (LZO_LIBC_FREESTANDING) -+# define LZO_INFO_LIBC "freestanding" -+#elif (LZO_LIBC_MOSTLY_FREESTANDING) -+# define LZO_INFO_LIBC "mfreestanding" -+#elif (LZO_LIBC_ISOC90) -+# define LZO_INFO_LIBC "isoc90" -+#elif (LZO_LIBC_ISOC99) -+# define LZO_INFO_LIBC "isoc99" + #if (LZO_LIBC_NAKED) + # define LZO_INFO_LIBC "naked" + #elif (LZO_LIBC_FREESTANDING) +@@ -1349,6 +2400,9 @@ extern "C" { + # define LZO_INFO_LIBC "isoc90" + #elif (LZO_LIBC_ISOC99) + # define LZO_INFO_LIBC "isoc99" +#elif (LZO_CC_ARMCC_ARMCC) && defined(__ARMCLIB_VERSION) +# define LZO_LIBC_ISOC90 1 +# define LZO_INFO_LIBC "isoc90" -+#elif defined(__dietlibc__) -+# define LZO_LIBC_DIETLIBC 1 -+# define LZO_INFO_LIBC "dietlibc" -+#elif defined(_NEWLIB_VERSION) -+# define LZO_LIBC_NEWLIB 1 -+# define LZO_INFO_LIBC "newlib" -+#elif defined(__UCLIBC__) && defined(__UCLIBC_MAJOR__) && defined(__UCLIBC_MINOR__) -+# if defined(__UCLIBC_SUBLEVEL__) + #elif defined(__dietlibc__) + # define LZO_LIBC_DIETLIBC 1 + # define LZO_INFO_LIBC "dietlibc" +@@ -1357,13 +2411,13 @@ extern "C" { + # define LZO_INFO_LIBC "newlib" + #elif defined(__UCLIBC__) && defined(__UCLIBC_MAJOR__) && defined(__UCLIBC_MINOR__) + # if defined(__UCLIBC_SUBLEVEL__) +-# define LZO_LIBC_UCLIBC (__UCLIBC_MAJOR__ * 0x10000L + __UCLIBC_MINOR__ * 0x100 + __UCLIBC_SUBLEVEL__) +# define LZO_LIBC_UCLIBC (__UCLIBC_MAJOR__ * 0x10000L + (__UCLIBC_MINOR__-0) * 0x100 + (__UCLIBC_SUBLEVEL__-0)) -+# else -+# define LZO_LIBC_UCLIBC 0x00090bL -+# endif + # else + # define LZO_LIBC_UCLIBC 0x00090bL + # endif +-# define LZO_INFO_LIBC "uclibc" +# define LZO_INFO_LIBC "uc" "libc" -+#elif defined(__GLIBC__) && defined(__GLIBC_MINOR__) + #elif defined(__GLIBC__) && defined(__GLIBC_MINOR__) +-# define LZO_LIBC_GLIBC (__GLIBC__ * 0x10000L + __GLIBC_MINOR__ * 0x100) +# define LZO_LIBC_GLIBC (__GLIBC__ * 0x10000L + (__GLIBC_MINOR__-0) * 0x100) -+# define LZO_INFO_LIBC "glibc" -+#elif (LZO_CC_MWERKS) && defined(__MSL__) -+# define LZO_LIBC_MSL __MSL__ -+# define LZO_INFO_LIBC "msl" -+#elif 1 && defined(__IAR_SYSTEMS_ICC__) -+# define LZO_LIBC_ISOC90 1 -+# define LZO_INFO_LIBC "isoc90" -+#else -+# define LZO_LIBC_DEFAULT 1 -+# define LZO_INFO_LIBC "default" -+#endif -+#endif + # define LZO_INFO_LIBC "glibc" + #elif (LZO_CC_MWERKS) && defined(__MSL__) + # define LZO_LIBC_MSL __MSL__ +@@ -1376,423 +2430,159 @@ extern "C" { + # define LZO_INFO_LIBC "default" + #endif + #endif +-#if !defined(__lzo_gnuc_extension__) +-#if (LZO_CC_GNUC >= 0x020800ul) +-# define __lzo_gnuc_extension__ __extension__ +-#elif (LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) +-# define __lzo_gnuc_extension__ __extension__ +-#else +-# define __lzo_gnuc_extension__ /*empty*/ +-#endif +-#endif +-#if !defined(__lzo_ua_volatile) +-# define __lzo_ua_volatile volatile +-#endif +-#if !defined(__lzo_alignof) +-#if (LZO_CC_CILLY || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || LZO_CC_PGI) +-# define __lzo_alignof(e) __alignof__(e) +-#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 700)) +-# define __lzo_alignof(e) __alignof__(e) +-#elif (LZO_CC_MSC && (_MSC_VER >= 1300)) +-# define __lzo_alignof(e) __alignof(e) +-#elif (LZO_CC_SUNPROC && (LZO_CC_SUNPROC >= 0x5100)) +-# define __lzo_alignof(e) __alignof__(e) +-#endif +-#endif +-#if defined(__lzo_alignof) +-# define __lzo_HAVE_alignof 1 +-#endif +-#if !defined(__lzo_constructor) +-#if (LZO_CC_GNUC >= 0x030400ul) +-# define __lzo_constructor __attribute__((__constructor__,__used__)) +-#elif (LZO_CC_GNUC >= 0x020700ul) +-# define __lzo_constructor __attribute__((__constructor__)) +-#elif (LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) +-# define __lzo_constructor __attribute__((__constructor__)) +-#endif +-#endif +-#if defined(__lzo_constructor) +-# define __lzo_HAVE_constructor 1 +-#endif +-#if !defined(__lzo_destructor) +-#if (LZO_CC_GNUC >= 0x030400ul) +-# define __lzo_destructor __attribute__((__destructor__,__used__)) +-#elif (LZO_CC_GNUC >= 0x020700ul) +-# define __lzo_destructor __attribute__((__destructor__)) +-#elif (LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) +-# define __lzo_destructor __attribute__((__destructor__)) +-#endif +-#endif +-#if defined(__lzo_destructor) +-# define __lzo_HAVE_destructor 1 +-#endif +-#if (__lzo_HAVE_destructor) && !(__lzo_HAVE_constructor) +-# error "this should not happen" +-#endif +-#if !defined(__lzo_inline) +-#if (LZO_CC_TURBOC && (__TURBOC__ <= 0x0295)) +-#elif defined(__cplusplus) +-# define __lzo_inline inline +-#elif (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0550)) +-# define __lzo_inline __inline +-#elif (LZO_CC_CILLY || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || LZO_CC_PGI) +-# define __lzo_inline __inline__ +-#elif (LZO_CC_DMC) +-# define __lzo_inline __inline +-#elif (LZO_CC_INTELC) +-# define __lzo_inline __inline +-#elif (LZO_CC_MWERKS && (__MWERKS__ >= 0x2405)) +-# define __lzo_inline __inline +-#elif (LZO_CC_MSC && (_MSC_VER >= 900)) +-# define __lzo_inline __inline +-#elif (LZO_CC_SUNPROC && (LZO_CC_SUNPROC >= 0x5100)) +-# define __lzo_inline __inline__ +-#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) +-# define __lzo_inline inline +-#endif +-#endif +-#if defined(__lzo_inline) +-# define __lzo_HAVE_inline 1 +-#else +-# define __lzo_inline /*empty*/ +-#endif +-#if !defined(__lzo_forceinline) +-#if (LZO_CC_GNUC >= 0x030200ul) +-# define __lzo_forceinline __inline__ __attribute__((__always_inline__)) +-#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 450) && LZO_CC_SYNTAX_MSC) +-# define __lzo_forceinline __forceinline +-#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 800) && LZO_CC_SYNTAX_GNUC) +-# define __lzo_forceinline __inline__ __attribute__((__always_inline__)) +-#elif (LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) +-# define __lzo_forceinline __inline__ __attribute__((__always_inline__)) +-#elif (LZO_CC_MSC && (_MSC_VER >= 1200)) +-# define __lzo_forceinline __forceinline +-#elif (LZO_CC_SUNPROC && (LZO_CC_SUNPROC >= 0x5100)) +-# define __lzo_forceinline __inline__ __attribute__((__always_inline__)) +-#endif +-#endif +-#if defined(__lzo_forceinline) +-# define __lzo_HAVE_forceinline 1 +-#else +-# define __lzo_forceinline /*empty*/ +-#endif +-#if !defined(__lzo_noinline) +-#if 1 && (LZO_ARCH_I386) && (LZO_CC_GNUC >= 0x040000ul) && (LZO_CC_GNUC < 0x040003ul) +-# define __lzo_noinline __attribute__((__noinline__,__used__)) +-#elif (LZO_CC_GNUC >= 0x030200ul) +-# define __lzo_noinline __attribute__((__noinline__)) +-#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 600) && LZO_CC_SYNTAX_MSC) +-# define __lzo_noinline __declspec(noinline) +-#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 800) && LZO_CC_SYNTAX_GNUC) +-# define __lzo_noinline __attribute__((__noinline__)) +-#elif (LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) +-# define __lzo_noinline __attribute__((__noinline__)) +-#elif (LZO_CC_MSC && (_MSC_VER >= 1300)) +-# define __lzo_noinline __declspec(noinline) +-#elif (LZO_CC_MWERKS && (__MWERKS__ >= 0x3200) && (LZO_OS_WIN32 || LZO_OS_WIN64)) +-# if defined(__cplusplus) +-# else +-# define __lzo_noinline __declspec(noinline) +-# endif +-#elif (LZO_CC_SUNPROC && (LZO_CC_SUNPROC >= 0x5100)) +-# define __lzo_noinline __attribute__((__noinline__)) +-#endif +-#endif +-#if defined(__lzo_noinline) +-# define __lzo_HAVE_noinline 1 +-#else +-# define __lzo_noinline /*empty*/ +-#endif +-#if (__lzo_HAVE_forceinline || __lzo_HAVE_noinline) && !(__lzo_HAVE_inline) +-# error "this should not happen" +-#endif +-#if !defined(__lzo_noreturn) +-#if (LZO_CC_GNUC >= 0x020700ul) +-# define __lzo_noreturn __attribute__((__noreturn__)) +-#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 450) && LZO_CC_SYNTAX_MSC) +-# define __lzo_noreturn __declspec(noreturn) +-#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 600) && LZO_CC_SYNTAX_GNUC) +-# define __lzo_noreturn __attribute__((__noreturn__)) +-#elif (LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) +-# define __lzo_noreturn __attribute__((__noreturn__)) +-#elif (LZO_CC_MSC && (_MSC_VER >= 1200)) +-# define __lzo_noreturn __declspec(noreturn) +-#endif +-#endif +-#if defined(__lzo_noreturn) +-# define __lzo_HAVE_noreturn 1 +-#else +-# define __lzo_noreturn /*empty*/ +-#endif +-#if !defined(__lzo_nothrow) +-#if (LZO_CC_GNUC >= 0x030300ul) +-# define __lzo_nothrow __attribute__((__nothrow__)) +-#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 450) && LZO_CC_SYNTAX_MSC) && defined(__cplusplus) +-# define __lzo_nothrow __declspec(nothrow) +-#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 900) && LZO_CC_SYNTAX_GNUC) +-# define __lzo_nothrow __attribute__((__nothrow__)) +-#elif (LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) +-# define __lzo_nothrow __attribute__((__nothrow__)) +-#elif (LZO_CC_MSC && (_MSC_VER >= 1200)) && defined(__cplusplus) +-# define __lzo_nothrow __declspec(nothrow) +-#endif +-#endif +-#if defined(__lzo_nothrow) +-# define __lzo_HAVE_nothrow 1 +-#else +-# define __lzo_nothrow /*empty*/ +-#endif +-#if !defined(__lzo_restrict) +-#if (LZO_CC_GNUC >= 0x030400ul) +-# define __lzo_restrict __restrict__ +-#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 600) && LZO_CC_SYNTAX_GNUC) +-# define __lzo_restrict __restrict__ +-#elif (LZO_CC_CLANG || LZO_CC_LLVM) +-# define __lzo_restrict __restrict__ +-#elif (LZO_CC_MSC && (_MSC_VER >= 1400)) +-# define __lzo_restrict __restrict +-#endif +-#endif +-#if defined(__lzo_restrict) +-# define __lzo_HAVE_restrict 1 +-#else +-# define __lzo_restrict /*empty*/ +-#endif +-#if !defined(__lzo_likely) && !defined(__lzo_unlikely) +-#if (LZO_CC_GNUC >= 0x030200ul) +-# define __lzo_likely(e) (__builtin_expect(!!(e),1)) +-# define __lzo_unlikely(e) (__builtin_expect(!!(e),0)) +-#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 800)) +-# define __lzo_likely(e) (__builtin_expect(!!(e),1)) +-# define __lzo_unlikely(e) (__builtin_expect(!!(e),0)) +-#elif (LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) +-# define __lzo_likely(e) (__builtin_expect(!!(e),1)) +-# define __lzo_unlikely(e) (__builtin_expect(!!(e),0)) +-#endif +-#endif +-#if defined(__lzo_likely) +-# define __lzo_HAVE_likely 1 +-#else +-# define __lzo_likely(e) (e) +-#endif +-#if defined(__lzo_unlikely) +-# define __lzo_HAVE_unlikely 1 +-#else +-# define __lzo_unlikely(e) (e) +-#endif +-#if !defined(LZO_UNUSED) +-# if (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0600)) +-# define LZO_UNUSED(var) ((void) &var) +-# elif (LZO_CC_BORLANDC || LZO_CC_HIGHC || LZO_CC_NDPC || LZO_CC_PELLESC || LZO_CC_TURBOC) +-# define LZO_UNUSED(var) if (&var) ; else +-# elif (LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE) +-# define LZO_UNUSED(var) ((void) var) +-# elif (LZO_CC_MSC && (_MSC_VER < 900)) +-# define LZO_UNUSED(var) if (&var) ; else +-# elif (LZO_CC_KEILC) +-# define LZO_UNUSED(var) {extern int __lzo_unused[1-2*!(sizeof(var)>0)];} +-# elif (LZO_CC_PACIFICC) +-# define LZO_UNUSED(var) ((void) sizeof(var)) +-# elif (LZO_CC_WATCOMC) && defined(__cplusplus) +-# define LZO_UNUSED(var) ((void) var) +-# else +-# define LZO_UNUSED(var) ((void) &var) +-# endif +-#endif +-#if !defined(LZO_UNUSED_FUNC) +-# if (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0600)) +-# define LZO_UNUSED_FUNC(func) ((void) func) +-# elif (LZO_CC_BORLANDC || LZO_CC_NDPC || LZO_CC_TURBOC) +-# define LZO_UNUSED_FUNC(func) if (func) ; else +-# elif (LZO_CC_CLANG || LZO_CC_LLVM) +-# define LZO_UNUSED_FUNC(func) ((void) &func) +-# elif (LZO_CC_MSC && (_MSC_VER < 900)) +-# define LZO_UNUSED_FUNC(func) if (func) ; else +-# elif (LZO_CC_MSC) +-# define LZO_UNUSED_FUNC(func) ((void) &func) +-# elif (LZO_CC_KEILC || LZO_CC_PELLESC) +-# define LZO_UNUSED_FUNC(func) {extern int __lzo_unused[1-2*!(sizeof((int)func)>0)];} +-# else +-# define LZO_UNUSED_FUNC(func) ((void) func) +-# endif +-#endif +-#if !defined(LZO_UNUSED_LABEL) +-# if (LZO_CC_WATCOMC) && defined(__cplusplus) +-# define LZO_UNUSED_LABEL(l) switch(0) case 1:goto l +-# elif (LZO_CC_CLANG || LZO_CC_INTELC || LZO_CC_WATCOMC) +-# define LZO_UNUSED_LABEL(l) if (0) goto l +-# else +-# define LZO_UNUSED_LABEL(l) switch(0) case 1:goto l +-# endif +-#endif +-#if !defined(LZO_DEFINE_UNINITIALIZED_VAR) +-# if 0 +-# define LZO_DEFINE_UNINITIALIZED_VAR(type,var,init) type var +-# elif 0 && (LZO_CC_GNUC) +-# define LZO_DEFINE_UNINITIALIZED_VAR(type,var,init) type var = var +-# else +-# define LZO_DEFINE_UNINITIALIZED_VAR(type,var,init) type var = init +-# endif +-#endif +-#if !defined(LZO_UNCONST_CAST) +-# if 0 && defined(__cplusplus) +-# define LZO_UNCONST_CAST(t,e) (const_cast (e)) +-# elif (LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE) +-# define LZO_UNCONST_CAST(t,e) ((t) ((void *) ((char *) ((lzo_uintptr_t) ((const void *) (e)))))) +-# else +-# define LZO_UNCONST_CAST(t,e) ((t) ((void *) ((char *) ((const void *) (e))))) +-# endif +-#endif +-#if !defined(LZO_COMPILE_TIME_ASSERT_HEADER) +-# if (LZO_CC_AZTECC || LZO_CC_ZORTECHC) +-# define LZO_COMPILE_TIME_ASSERT_HEADER(e) extern int __lzo_cta[1-!(e)]; +-# elif (LZO_CC_DMC || LZO_CC_SYMANTECC) +-# define LZO_COMPILE_TIME_ASSERT_HEADER(e) extern int __lzo_cta[1u-2*!(e)]; +-# elif (LZO_CC_TURBOC && (__TURBOC__ == 0x0295)) +-# define LZO_COMPILE_TIME_ASSERT_HEADER(e) extern int __lzo_cta[1-!(e)]; +-# else +-# define LZO_COMPILE_TIME_ASSERT_HEADER(e) extern int __lzo_cta[1-2*!(e)]; +-# endif +-#endif +-#if !defined(LZO_COMPILE_TIME_ASSERT) +-# if (LZO_CC_AZTECC) +-# define LZO_COMPILE_TIME_ASSERT(e) {typedef int __lzo_cta_t[1-!(e)];} +-# elif (LZO_CC_DMC || LZO_CC_PACIFICC || LZO_CC_SYMANTECC || LZO_CC_ZORTECHC) +-# define LZO_COMPILE_TIME_ASSERT(e) switch(0) case 1:case !(e):break; +-# elif (LZO_CC_MSC && (_MSC_VER < 900)) +-# define LZO_COMPILE_TIME_ASSERT(e) switch(0) case 1:case !(e):break; +-# elif (LZO_CC_TURBOC && (__TURBOC__ == 0x0295)) +-# define LZO_COMPILE_TIME_ASSERT(e) switch(0) case 1:case !(e):break; +-# else +-# define LZO_COMPILE_TIME_ASSERT(e) {typedef int __lzo_cta_t[1-2*!(e)];} +-# endif +-#endif +-#if (LZO_ARCH_I086 || LZO_ARCH_I386) && (LZO_OS_DOS16 || LZO_OS_DOS32 || LZO_OS_OS2 || LZO_OS_OS216 || LZO_OS_WIN16 || LZO_OS_WIN32 || LZO_OS_WIN64) +-# if (LZO_CC_GNUC || LZO_CC_HIGHC || LZO_CC_NDPC || LZO_CC_PACIFICC) +-# elif (LZO_CC_DMC || LZO_CC_SYMANTECC || LZO_CC_ZORTECHC) +-# define __lzo_cdecl __cdecl +-# define __lzo_cdecl_atexit /*empty*/ +-# define __lzo_cdecl_main __cdecl +-# if (LZO_OS_OS2 && (LZO_CC_DMC || LZO_CC_SYMANTECC)) +-# define __lzo_cdecl_qsort __pascal +-# elif (LZO_OS_OS2 && (LZO_CC_ZORTECHC)) +-# define __lzo_cdecl_qsort _stdcall +-# else +-# define __lzo_cdecl_qsort __cdecl +-# endif +-# elif (LZO_CC_WATCOMC) +-# define __lzo_cdecl __cdecl +-# else +-# define __lzo_cdecl __cdecl +-# define __lzo_cdecl_atexit __cdecl +-# define __lzo_cdecl_main __cdecl +-# define __lzo_cdecl_qsort __cdecl +-# endif +-# if (LZO_CC_GNUC || LZO_CC_HIGHC || LZO_CC_NDPC || LZO_CC_PACIFICC || LZO_CC_WATCOMC) +-# elif (LZO_OS_OS2 && (LZO_CC_DMC || LZO_CC_SYMANTECC)) +-# define __lzo_cdecl_sighandler __pascal +-# elif (LZO_OS_OS2 && (LZO_CC_ZORTECHC)) +-# define __lzo_cdecl_sighandler _stdcall +-# elif (LZO_CC_MSC && (_MSC_VER >= 1400)) && defined(_M_CEE_PURE) +-# define __lzo_cdecl_sighandler __clrcall +-# elif (LZO_CC_MSC && (_MSC_VER >= 600 && _MSC_VER < 700)) +-# if defined(_DLL) +-# define __lzo_cdecl_sighandler _far _cdecl _loadds +-# elif defined(_MT) +-# define __lzo_cdecl_sighandler _far _cdecl +-# else +-# define __lzo_cdecl_sighandler _cdecl +-# endif +-# else +-# define __lzo_cdecl_sighandler __cdecl +-# endif +-#elif (LZO_ARCH_I386) && (LZO_CC_WATCOMC) +-# define __lzo_cdecl __cdecl +-#elif (LZO_ARCH_M68K && LZO_OS_TOS && (LZO_CC_PUREC || LZO_CC_TURBOC)) +-# define __lzo_cdecl cdecl +-#endif +-#if !defined(__lzo_cdecl) +-# define __lzo_cdecl /*empty*/ +-#endif +-#if !defined(__lzo_cdecl_atexit) +-# define __lzo_cdecl_atexit /*empty*/ +-#endif +-#if !defined(__lzo_cdecl_main) +-# define __lzo_cdecl_main /*empty*/ +-#endif +-#if !defined(__lzo_cdecl_qsort) +-# define __lzo_cdecl_qsort /*empty*/ +-#endif +-#if !defined(__lzo_cdecl_sighandler) +-# define __lzo_cdecl_sighandler /*empty*/ +-#endif +-#if !defined(__lzo_cdecl_va) +-# define __lzo_cdecl_va __lzo_cdecl +-#endif +-#if !(LZO_CFG_NO_WINDOWS_H) +-#if (LZO_OS_CYGWIN || (LZO_OS_EMX && defined(__RSXNT__)) || LZO_OS_WIN32 || LZO_OS_WIN64) +-# if (LZO_CC_WATCOMC && (__WATCOMC__ < 1000)) +-# elif (LZO_OS_WIN32 && LZO_CC_GNUC) && defined(__PW32__) +-# elif ((LZO_OS_CYGWIN || defined(__MINGW32__)) && (LZO_CC_GNUC && (LZO_CC_GNUC < 0x025f00ul))) +-# else +-# define LZO_HAVE_WINDOWS_H 1 +-# endif +#if (LZO_ARCH_I386 && (LZO_OS_DOS32 || LZO_OS_WIN32) && (LZO_CC_DMC || LZO_CC_INTELC || LZO_CC_MSC || LZO_CC_PELLESC)) +# define LZO_ASM_SYNTAX_MSC 1 +#elif (LZO_OS_WIN64 && (LZO_CC_DMC || LZO_CC_INTELC || LZO_CC_MSC || LZO_CC_PELLESC)) @@ -5737,8 +2312,8 @@ index 25a1f68b3..ab2be5f4f 100644 +# define __LZO_ASM_CLOBBER_LIST_CC : "cc" +# define __LZO_ASM_CLOBBER_LIST_CC_MEMORY : "cc", "memory" +# define __LZO_ASM_CLOBBER_LIST_EMPTY /*empty*/ -+#endif -+#endif + #endif + #endif #if (LZO_ARCH_ALPHA) -# define LZO_OPT_AVOID_UINT_INDEX 1 -# define LZO_OPT_AVOID_SHORT 1 @@ -6375,7 +2950,7 @@ index 25a1f68b3..ab2be5f4f 100644 #endif #if (LZO_CC_SUNPROC) -@@ -1937,48 +3074,15 @@ extern "C" { +@@ -1937,49 +3074,16 @@ extern "C" { #endif #endif @@ -6401,8 +2976,10 @@ index 25a1f68b3..ab2be5f4f 100644 -# define ACC_PTR_FP_OFF(x) (((const unsigned __far*)&(x))[0]) -# define ACC_PTR_FP_SEG(x) (((const unsigned __far*)&(x))[1]) -# define ACC_PTR_MK_FP(s,o) ((void __far*)(((unsigned long)(s)<<16)+(unsigned)(o))) --#endif -- ++#if defined(LZO_HAVE_CONFIG_H) ++# define LZO_CFG_NO_CONFIG_HEADER 1 + #endif + -#if !defined(lzo_uintptr_t) -# if defined(__LZO_MMODEL_HUGE) -# define lzo_uintptr_t unsigned long @@ -6421,13 +2998,12 @@ index 25a1f68b3..ab2be5f4f 100644 -# else -# define lzo_uintptr_t size_t -# endif -+#if defined(LZO_HAVE_CONFIG_H) -+# define LZO_CFG_NO_CONFIG_HEADER 1 - #endif +-#endif -LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_uintptr_t) >= sizeof(lzo_voidp)) - +- #if 1 && !defined(LZO_CFG_FREESTANDING) #if 1 && !defined(HAVE_STRING_H) + #define HAVE_STRING_H 1 @@ -2002,6 +3106,23 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_uintptr_t) >= sizeof(lzo_voidp)) #include #endif @@ -6452,7 +3028,7 @@ index 25a1f68b3..ab2be5f4f 100644 #if (LZO_CFG_FREESTANDING) # undef HAVE_MEMCMP # undef HAVE_MEMCPY -@@ -2012,169 +3133,635 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_uintptr_t) >= sizeof(lzo_voidp)) +@@ -2012,28 +3133,28 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_uintptr_t) >= sizeof(lzo_voidp)) #if !(HAVE_MEMCMP) # undef memcmp # define memcmp(a,b,c) lzo_memcmp(a,b,c) @@ -6485,40 +3061,31 @@ index 25a1f68b3..ab2be5f4f 100644 # undef lzo_memset # define lzo_memset(a,b,c) memset(a,b,c) #endif +@@ -2058,27 +3179,29 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_uintptr_t) >= sizeof(lzo_voidp)) + # define BOUNDS_CHECKING_OFF_IN_EXPR(expr) (expr) + #endif + +-#if !defined(__lzo_inline) +-# define __lzo_inline /*empty*/ +-#endif +-#if !defined(__lzo_forceinline) +-# define __lzo_forceinline /*empty*/ +-#endif +-#if !defined(__lzo_noinline) +-# define __lzo_noinline /*empty*/ +-#endif +- + #if (LZO_CFG_PGO) +-# undef __acc_likely +-# undef __acc_unlikely + # undef __lzo_likely + # undef __lzo_unlikely +-# define __acc_likely(e) (e) +-# define __acc_unlikely(e) (e) + # define __lzo_likely(e) (e) + # define __lzo_unlikely(e) (e) + #endif --#undef NDEBUG --#if (LZO_CFG_FREESTANDING) --# undef LZO_DEBUG --# define NDEBUG 1 --# undef assert --# define assert(e) ((void)0) -+#undef NDEBUG -+#if (LZO_CFG_FREESTANDING) -+# undef LZO_DEBUG -+# define NDEBUG 1 -+# undef assert -+# define assert(e) ((void)0) -+#else -+# if !defined(LZO_DEBUG) -+# define NDEBUG 1 -+# endif -+# include -+#endif -+ -+#if 0 && defined(__BOUNDS_CHECKING_ON) -+# include -+#else -+# define BOUNDS_CHECKING_OFF_DURING(stmt) stmt -+# define BOUNDS_CHECKING_OFF_IN_EXPR(expr) (expr) -+#endif -+ -+#if (LZO_CFG_PGO) -+# undef __lzo_likely -+# undef __lzo_unlikely -+# define __lzo_likely(e) (e) -+# define __lzo_unlikely(e) (e) -+#endif -+ +#undef _ +#undef __ +#undef ___ @@ -6535,36 +3102,92 @@ index 25a1f68b3..ab2be5f4f 100644 +#undef _s4 +#undef _ww + -+#if 1 -+# define LZO_BYTE(x) ((unsigned char) (x)) -+#else -+# define LZO_BYTE(x) ((unsigned char) ((x) & 0xff)) -+#endif -+ -+#define LZO_MAX(a,b) ((a) >= (b) ? (a) : (b)) -+#define LZO_MIN(a,b) ((a) <= (b) ? (a) : (b)) -+#define LZO_MAX3(a,b,c) ((a) >= (b) ? LZO_MAX(a,c) : LZO_MAX(b,c)) -+#define LZO_MIN3(a,b,c) ((a) <= (b) ? LZO_MIN(a,c) : LZO_MIN(b,c)) -+ -+#define lzo_sizeof(type) ((lzo_uint) (sizeof(type))) -+ -+#define LZO_HIGH(array) ((lzo_uint) (sizeof(array)/sizeof(*(array)))) -+ -+#define LZO_SIZE(bits) (1u << (bits)) -+#define LZO_MASK(bits) (LZO_SIZE(bits) - 1) -+ -+#define LZO_USIZE(bits) ((lzo_uint) 1 << (bits)) -+#define LZO_UMASK(bits) (LZO_USIZE(bits) - 1) -+ -+#if !defined(DMUL) -+#if 0 -+ + #if 1 + # define LZO_BYTE(x) ((unsigned char) (x)) + #else +@@ -2097,84 +3220,548 @@ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_uintptr_t) >= sizeof(lzo_voidp)) + #define LZO_SIZE(bits) (1u << (bits)) + #define LZO_MASK(bits) (LZO_SIZE(bits) - 1) + +-#define LZO_LSIZE(bits) (1ul << (bits)) +-#define LZO_LMASK(bits) (LZO_LSIZE(bits) - 1) +- + #define LZO_USIZE(bits) ((lzo_uint) 1 << (bits)) + #define LZO_UMASK(bits) (LZO_USIZE(bits) - 1) + + #if !defined(DMUL) + #if 0 + +-# define DMUL(a,b) ((lzo_xint) ((lzo_uint32)(a) * (lzo_uint32)(b))) +# define DMUL(a,b) ((lzo_xint) ((lzo_uint32_t)(a) * (lzo_uint32_t)(b))) -+#else -+# define DMUL(a,b) ((lzo_xint) ((a) * (b))) -+#endif -+#endif -+ + #else + # define DMUL(a,b) ((lzo_xint) ((a) * (b))) + #endif + #endif + +-#if 1 && (LZO_ARCH_AMD64 || LZO_ARCH_I386 || LZO_ARCH_POWERPC) +-# if (LZO_SIZEOF_SHORT == 2) +-# define LZO_UNALIGNED_OK_2 1 +-# endif +-# if (LZO_SIZEOF_INT == 4) +-# define LZO_UNALIGNED_OK_4 1 +-# endif +-#endif +-#if 1 && (LZO_ARCH_AMD64) +-# if defined(LZO_UINT64_MAX) +-# define LZO_UNALIGNED_OK_8 1 +-# endif +-#endif +-#if (LZO_CFG_NO_UNALIGNED) +-# undef LZO_UNALIGNED_OK_2 +-# undef LZO_UNALIGNED_OK_4 +-# undef LZO_UNALIGNED_OK_8 +-#endif +- +-#undef UA_GET16 +-#undef UA_SET16 +-#undef UA_COPY16 +-#undef UA_GET32 +-#undef UA_SET32 +-#undef UA_COPY32 +-#undef UA_GET64 +-#undef UA_SET64 +-#undef UA_COPY64 +-#if defined(LZO_UNALIGNED_OK_2) +- LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(unsigned short) == 2) +-# if 1 && defined(ACC_UA_COPY16) +-# define UA_GET16 ACC_UA_GET16 +-# define UA_SET16 ACC_UA_SET16 +-# define UA_COPY16 ACC_UA_COPY16 +-# else +-# define UA_GET16(p) (* (__lzo_ua_volatile const lzo_ushortp) (__lzo_ua_volatile const lzo_voidp) (p)) +-# define UA_SET16(p,v) ((* (__lzo_ua_volatile lzo_ushortp) (__lzo_ua_volatile lzo_voidp) (p)) = (unsigned short) (v)) +-# define UA_COPY16(d,s) UA_SET16(d, UA_GET16(s)) +-# endif +-#endif +-#if defined(LZO_UNALIGNED_OK_4) || defined(LZO_ALIGNED_OK_4) +- LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_uint32) == 4) +-# if 1 && defined(ACC_UA_COPY32) +-# define UA_GET32 ACC_UA_GET32 +-# define UA_SET32 ACC_UA_SET32 +-# define UA_COPY32 ACC_UA_COPY32 +-# else +-# define UA_GET32(p) (* (__lzo_ua_volatile const lzo_uint32p) (__lzo_ua_volatile const lzo_voidp) (p)) +-# define UA_SET32(p,v) ((* (__lzo_ua_volatile lzo_uint32p) (__lzo_ua_volatile lzo_voidp) (p)) = (lzo_uint32) (v)) +-# define UA_COPY32(d,s) UA_SET32(d, UA_GET32(s)) +-# endif +-#endif +-#if defined(LZO_UNALIGNED_OK_8) +- LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_uint64) == 8) +-# if 1 && defined(ACC_UA_COPY64) +-# define UA_GET64 ACC_UA_GET64 +-# define UA_SET64 ACC_UA_SET64 +-# define UA_COPY64 ACC_UA_COPY64 +-# else +-# define UA_GET64(p) (* (__lzo_ua_volatile const lzo_uint64p) (__lzo_ua_volatile const lzo_voidp) (p)) +-# define UA_SET64(p,v) ((* (__lzo_ua_volatile lzo_uint64p) (__lzo_ua_volatile lzo_voidp) (p)) = (lzo_uint64) (v)) +-# define UA_COPY64(d,s) UA_SET64(d, UA_GET64(s)) +-# endif +#ifndef __LZO_FUNC_H +#define __LZO_FUNC_H 1 + @@ -6866,32 +3489,18 @@ index 25a1f68b3..ab2be5f4f 100644 + unsigned long vv; + __asm__("lhbrx %0,0,%1" : "=r" (vv) : "r" (s), "m" (*s)); + v = (lzo_uint16_t) vv; - #else --# if !defined(LZO_DEBUG) --# define NDEBUG 1 --# endif --# include ++#else + const lzo_memops_TU1p s = (const lzo_memops_TU1p) ss; + v = (lzo_uint16_t) (((lzo_uint16_t)s[0]) | ((lzo_uint16_t)s[1] << 8)); - #endif -- --#if 0 && defined(__BOUNDS_CHECKING_ON) --# include ++#endif + return v; +} +#if (LZO_OPT_UNALIGNED16) && (LZO_ABI_LITTLE_ENDIAN) +#define LZO_MEMOPS_GET_LE16(ss) * (const lzo_memops_TU2p) (const lzo_memops_TU0p) (ss) - #else --# define BOUNDS_CHECKING_OFF_DURING(stmt) stmt --# define BOUNDS_CHECKING_OFF_IN_EXPR(expr) (expr) ++#else +#define LZO_MEMOPS_GET_LE16(ss) lzo_memops_get_le16(ss) - #endif - --#if !defined(__lzo_inline) --# define __lzo_inline /*empty*/ --#endif --#if !defined(__lzo_forceinline) --# define __lzo_forceinline /*empty*/ ++#endif ++ +__lzo_static_forceinline lzo_uint32_t lzo_memops_get_le32(const lzo_voidp ss) +{ + lzo_uint32_t v; @@ -6905,32 +3514,19 @@ index 25a1f68b3..ab2be5f4f 100644 +#else + const lzo_memops_TU1p s = (const lzo_memops_TU1p) ss; + v = (lzo_uint32_t) (((lzo_uint32_t)s[0]) | ((lzo_uint32_t)s[1] << 8) | ((lzo_uint32_t)s[2] << 16) | ((lzo_uint32_t)s[3] << 24)); - #endif --#if !defined(__lzo_noinline) --# define __lzo_noinline /*empty*/ ++#endif + return v; +} +#if (LZO_OPT_UNALIGNED32) && (LZO_ABI_LITTLE_ENDIAN) +#define LZO_MEMOPS_GET_LE32(ss) * (const lzo_memops_TU4p) (const lzo_memops_TU0p) (ss) +#else +#define LZO_MEMOPS_GET_LE32(ss) lzo_memops_get_le32(ss) - #endif - --#if (LZO_CFG_PGO) --# undef __acc_likely --# undef __acc_unlikely --# undef __lzo_likely --# undef __lzo_unlikely --# define __acc_likely(e) (e) --# define __acc_unlikely(e) (e) --# define __lzo_likely(e) (e) --# define __lzo_unlikely(e) (e) ++#endif ++ +#if (LZO_OPT_UNALIGNED64) && (LZO_ABI_LITTLE_ENDIAN) +#define LZO_MEMOPS_GET_LE64(ss) * (const lzo_memops_TU8p) (const lzo_memops_TU0p) (ss) - #endif - --#if 1 --# define LZO_BYTE(x) ((unsigned char) (x)) ++#endif ++ +__lzo_static_forceinline lzo_uint16_t lzo_memops_get_ne16(const lzo_voidp ss) +{ + lzo_uint16_t v; @@ -6939,17 +3535,10 @@ index 25a1f68b3..ab2be5f4f 100644 +} +#if (LZO_OPT_UNALIGNED16) +#define LZO_MEMOPS_GET_NE16(ss) * (const lzo_memops_TU2p) (const lzo_memops_TU0p) (ss) - #else --# define LZO_BYTE(x) ((unsigned char) ((x) & 0xff)) ++#else +#define LZO_MEMOPS_GET_NE16(ss) lzo_memops_get_ne16(ss) - #endif - --#define LZO_MAX(a,b) ((a) >= (b) ? (a) : (b)) --#define LZO_MIN(a,b) ((a) <= (b) ? (a) : (b)) --#define LZO_MAX3(a,b,c) ((a) >= (b) ? LZO_MAX(a,c) : LZO_MAX(b,c)) --#define LZO_MIN3(a,b,c) ((a) <= (b) ? LZO_MIN(a,c) : LZO_MIN(b,c)) -- --#define lzo_sizeof(type) ((lzo_uint) (sizeof(type))) ++#endif ++ +__lzo_static_forceinline lzo_uint32_t lzo_memops_get_ne32(const lzo_voidp ss) +{ + lzo_uint32_t v; @@ -6961,14 +3550,11 @@ index 25a1f68b3..ab2be5f4f 100644 +#else +#define LZO_MEMOPS_GET_NE32(ss) lzo_memops_get_ne32(ss) +#endif - --#define LZO_HIGH(array) ((lzo_uint) (sizeof(array)/sizeof(*(array)))) ++ +#if (LZO_OPT_UNALIGNED64) +#define LZO_MEMOPS_GET_NE64(ss) * (const lzo_memops_TU8p) (const lzo_memops_TU0p) (ss) +#endif - --#define LZO_SIZE(bits) (1u << (bits)) --#define LZO_MASK(bits) (LZO_SIZE(bits) - 1) ++ +__lzo_static_forceinline void lzo_memops_put_le16(lzo_voidp dd, lzo_uint16_t vv) +{ +#if (LZO_ABI_LITTLE_ENDIAN) @@ -6988,9 +3574,7 @@ index 25a1f68b3..ab2be5f4f 100644 +#else +#define LZO_MEMOPS_PUT_LE16(dd,vv) lzo_memops_put_le16(dd,vv) +#endif - --#define LZO_LSIZE(bits) (1ul << (bits)) --#define LZO_LMASK(bits) (LZO_LSIZE(bits) - 1) ++ +__lzo_static_forceinline void lzo_memops_put_le32(lzo_voidp dd, lzo_uint32_t vv) +{ +#if (LZO_ABI_LITTLE_ENDIAN) @@ -7012,9 +3596,7 @@ index 25a1f68b3..ab2be5f4f 100644 +#else +#define LZO_MEMOPS_PUT_LE32(dd,vv) lzo_memops_put_le32(dd,vv) +#endif - --#define LZO_USIZE(bits) ((lzo_uint) 1 << (bits)) --#define LZO_UMASK(bits) (LZO_USIZE(bits) - 1) ++ +__lzo_static_forceinline void lzo_memops_put_ne16(lzo_voidp dd, lzo_uint16_t vv) +{ + LZO_MEMOPS_COPY2(dd, &vv); @@ -7024,9 +3606,7 @@ index 25a1f68b3..ab2be5f4f 100644 +#else +#define LZO_MEMOPS_PUT_NE16(dd,vv) lzo_memops_put_ne16(dd,vv) +#endif - --#if !defined(DMUL) --#if 0 ++ +__lzo_static_forceinline void lzo_memops_put_ne32(lzo_voidp dd, lzo_uint32_t vv) +{ + LZO_MEMOPS_COPY4(dd, &vv); @@ -7036,14 +3616,12 @@ index 25a1f68b3..ab2be5f4f 100644 +#else +#define LZO_MEMOPS_PUT_NE32(dd,vv) lzo_memops_put_ne32(dd,vv) +#endif - --# define DMUL(a,b) ((lzo_xint) ((lzo_uint32)(a) * (lzo_uint32)(b))) ++ +#if 1 && (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || (LZO_CC_GNUC >= 0x020700ul) || LZO_CC_INTELC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || LZO_CC_PGI) +static void __attribute__((__unused__)) - #else --# define DMUL(a,b) ((lzo_xint) ((a) * (b))) ++#else +__lzo_static_forceinline void - #endif ++#endif +lzo_memops_unused_funcs(void) +{ + LZO_UNUSED_FUNC(lzo_memops_get_le16); @@ -7057,79 +3635,20 @@ index 25a1f68b3..ab2be5f4f 100644 + LZO_UNUSED_FUNC(lzo_memops_unused_funcs); +} + - #endif - --#if 1 && (LZO_ARCH_AMD64 || LZO_ARCH_I386 || LZO_ARCH_POWERPC) --# if (LZO_SIZEOF_SHORT == 2) --# define LZO_UNALIGNED_OK_2 1 --# endif --# if (LZO_SIZEOF_INT == 4) --# define LZO_UNALIGNED_OK_4 1 --# endif ++#endif ++ +#ifndef UA_SET1 +#define UA_SET1 LZO_MEMOPS_SET1 - #endif --#if 1 && (LZO_ARCH_AMD64) --# if defined(LZO_UINT64_MAX) --# define LZO_UNALIGNED_OK_8 1 --# endif ++#endif +#ifndef UA_SET2 +#define UA_SET2 LZO_MEMOPS_SET2 - #endif --#if (LZO_CFG_NO_UNALIGNED) --# undef LZO_UNALIGNED_OK_2 --# undef LZO_UNALIGNED_OK_4 --# undef LZO_UNALIGNED_OK_8 --#endif -- --#undef UA_GET16 --#undef UA_SET16 --#undef UA_COPY16 --#undef UA_GET32 --#undef UA_SET32 --#undef UA_COPY32 --#undef UA_GET64 --#undef UA_SET64 --#undef UA_COPY64 --#if defined(LZO_UNALIGNED_OK_2) -- LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(unsigned short) == 2) --# if 1 && defined(ACC_UA_COPY16) --# define UA_GET16 ACC_UA_GET16 --# define UA_SET16 ACC_UA_SET16 --# define UA_COPY16 ACC_UA_COPY16 --# else --# define UA_GET16(p) (* (__lzo_ua_volatile const lzo_ushortp) (__lzo_ua_volatile const lzo_voidp) (p)) --# define UA_SET16(p,v) ((* (__lzo_ua_volatile lzo_ushortp) (__lzo_ua_volatile lzo_voidp) (p)) = (unsigned short) (v)) --# define UA_COPY16(d,s) UA_SET16(d, UA_GET16(s)) --# endif ++#endif +#ifndef UA_SET3 +#define UA_SET3 LZO_MEMOPS_SET3 - #endif --#if defined(LZO_UNALIGNED_OK_4) || defined(LZO_ALIGNED_OK_4) -- LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_uint32) == 4) --# if 1 && defined(ACC_UA_COPY32) --# define UA_GET32 ACC_UA_GET32 --# define UA_SET32 ACC_UA_SET32 --# define UA_COPY32 ACC_UA_COPY32 --# else --# define UA_GET32(p) (* (__lzo_ua_volatile const lzo_uint32p) (__lzo_ua_volatile const lzo_voidp) (p)) --# define UA_SET32(p,v) ((* (__lzo_ua_volatile lzo_uint32p) (__lzo_ua_volatile lzo_voidp) (p)) = (lzo_uint32) (v)) --# define UA_COPY32(d,s) UA_SET32(d, UA_GET32(s)) --# endif ++#endif +#ifndef UA_SET4 +#define UA_SET4 LZO_MEMOPS_SET4 - #endif --#if defined(LZO_UNALIGNED_OK_8) -- LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_uint64) == 8) --# if 1 && defined(ACC_UA_COPY64) --# define UA_GET64 ACC_UA_GET64 --# define UA_SET64 ACC_UA_SET64 --# define UA_COPY64 ACC_UA_COPY64 --# else --# define UA_GET64(p) (* (__lzo_ua_volatile const lzo_uint64p) (__lzo_ua_volatile const lzo_voidp) (p)) --# define UA_SET64(p,v) ((* (__lzo_ua_volatile lzo_uint64p) (__lzo_ua_volatile lzo_voidp) (p)) = (lzo_uint64) (v)) --# define UA_COPY64(d,s) UA_SET64(d, UA_GET64(s)) --# endif ++#endif +#ifndef UA_MOVE1 +#define UA_MOVE1 LZO_MEMOPS_MOVE1 +#endif @@ -7239,7 +3758,6 @@ index 25a1f68b3..ab2be5f4f 100644 -#if defined(LZO_UINT64_MAX) - lzo_int64 a_lzo_int64; - lzo_uint64 a_lzo_uint64; --#endif + lzo_xint a_lzo_xint; + lzo_int16_t a_lzo_int16_t; + lzo_uint16_t a_lzo_uint16_t; @@ -7248,7 +3766,7 @@ index 25a1f68b3..ab2be5f4f 100644 +#if defined(lzo_uint64_t) + lzo_int64_t a_lzo_int64_t; + lzo_uint64_t a_lzo_uint64_t; -+#endif + #endif + size_t a_size_t; ptrdiff_t a_ptrdiff_t; lzo_uintptr_t a_lzo_uintptr_t; @@ -7426,7 +3944,9 @@ index 25a1f68b3..ab2be5f4f 100644 -#define ACC_WANT_ACC_CHK_CH 1 -#undef ACCCHK_ASSERT -- ++#define LZO_WANT_ACC_CHK_CH 1 ++#undef LZOCHK_ASSERT + - ACCCHK_ASSERT_IS_SIGNED_T(lzo_int) - ACCCHK_ASSERT_IS_UNSIGNED_T(lzo_uint) - @@ -7438,30 +3958,34 @@ index 25a1f68b3..ab2be5f4f 100644 - ACCCHK_ASSERT(sizeof(lzo_uint64) == 8) - ACCCHK_ASSERT_IS_SIGNED_T(lzo_int64) - ACCCHK_ASSERT_IS_UNSIGNED_T(lzo_uint64) --#endif -- --#if !defined(__LZO_UINTPTR_T_IS_POINTER) -- ACCCHK_ASSERT_IS_UNSIGNED_T(lzo_uintptr_t) --#endif -- ACCCHK_ASSERT(sizeof(lzo_uintptr_t) >= sizeof(lzo_voidp)) -- -- ACCCHK_ASSERT_IS_UNSIGNED_T(lzo_xint) -- ACCCHK_ASSERT(sizeof(lzo_xint) >= sizeof(lzo_uint32)) -- ACCCHK_ASSERT(sizeof(lzo_xint) >= sizeof(lzo_uint)) -- ACCCHK_ASSERT(sizeof(lzo_xint) == sizeof(lzo_uint32) || sizeof(lzo_xint) == sizeof(lzo_uint)) -+#define LZO_WANT_ACC_CHK_CH 1 -+#undef LZOCHK_ASSERT - + LZOCHK_ASSERT((LZO_UINT32_C(1) << (int)(8*sizeof(LZO_UINT32_C(1))-1)) > 0) + LZOCHK_ASSERT_IS_SIGNED_T(lzo_int) + LZOCHK_ASSERT_IS_UNSIGNED_T(lzo_uint) +#if !(__LZO_UINTPTR_T_IS_POINTER) + LZOCHK_ASSERT_IS_UNSIGNED_T(lzo_uintptr_t) #endif --#undef ACCCHK_ASSERT + LZOCHK_ASSERT(sizeof(lzo_uintptr_t) >= sizeof(lzo_voidp)) + LZOCHK_ASSERT_IS_UNSIGNED_T(lzo_xint) +-#if !defined(__LZO_UINTPTR_T_IS_POINTER) +- ACCCHK_ASSERT_IS_UNSIGNED_T(lzo_uintptr_t) + #endif +- ACCCHK_ASSERT(sizeof(lzo_uintptr_t) >= sizeof(lzo_voidp)) +- +- ACCCHK_ASSERT_IS_UNSIGNED_T(lzo_xint) +- ACCCHK_ASSERT(sizeof(lzo_xint) >= sizeof(lzo_uint32)) +- ACCCHK_ASSERT(sizeof(lzo_xint) >= sizeof(lzo_uint)) +- ACCCHK_ASSERT(sizeof(lzo_xint) == sizeof(lzo_uint32) || sizeof(lzo_xint) == sizeof(lzo_uint)) ++#undef LZOCHK_ASSERT + ++union lzo_config_check_union { ++ lzo_uint a[2]; ++ unsigned char b[2*LZO_MAX(8,sizeof(lzo_uint))]; ++#if defined(lzo_uint64_t) ++ lzo_uint64_t c[2]; + #endif +-#undef ACCCHK_ASSERT +- -#if 0 -#define WANT_lzo_bitops_clz32 1 -#define WANT_lzo_bitops_clz64 1 @@ -7510,9 +4034,8 @@ index 25a1f68b3..ab2be5f4f 100644 - return (unsigned) r; -} -#define lzo_bitops_ctz64 lzo_bitops_ctz64 - #endif -+#undef LZOCHK_ASSERT - +-#endif +- -#elif (LZO_CC_CLANG || (LZO_CC_GNUC >= 0x030400ul) || (LZO_CC_INTELC && (__INTEL_COMPILER >= 1000)) || LZO_CC_LLVM) -#if !defined(lzo_bitops_clz32) && defined(WANT_lzo_bitops_clz32) -#define lzo_bitops_clz32(v) ((unsigned) __builtin_clz(v)) @@ -7532,12 +4055,7 @@ index 25a1f68b3..ab2be5f4f 100644 -#if !defined(lzo_bitops_popcount32) && defined(WANT_lzo_bitops_popcount64) && defined(LZO_UINT64_MAX) -#define lzo_bitops_popcount64(v) ((unsigned) __builtin_popcountll(v)) -#endif -+union lzo_config_check_union { -+ lzo_uint a[2]; -+ unsigned char b[2*LZO_MAX(8,sizeof(lzo_uint))]; -+#if defined(lzo_uint64_t) -+ lzo_uint64_t c[2]; - #endif +-#endif +}; #if 0 @@ -7551,14 +4069,13 @@ index 25a1f68b3..ab2be5f4f 100644 - lzo_xint a[2]; unsigned char b[2*LZO_MAX(8,sizeof(lzo_xint))]; -#if defined(LZO_UNALIGNED_OK_8) - lzo_uint64 c[2]; --#endif -- unsigned short x[2]; lzo_uint32 y[2]; lzo_uint z[2]; -- } u; +#if (LZO_CC_CLANG && (LZO_CC_CLANG >= 0x030100ul && LZO_CC_CLANG < 0x030300ul)) +# if 0 + volatile +# endif -+#endif + #endif +- unsigned short x[2]; lzo_uint32 y[2]; lzo_uint z[2]; +- } u; + union lzo_config_check_union u; lzo_voidp p; + unsigned r = 1; @@ -7612,43 +4129,17 @@ index 25a1f68b3..ab2be5f4f 100644 + r &= UA_GET_LE32(p) == LZO_UINT32_C(0x83828180); +#if (LZO_ABI_BIG_ENDIAN) + r &= UA_GET_NE32(p) == LZO_UINT32_C(0x80818283); - #endif --#if defined(LZO_UNALIGNED_OK_8) ++#endif +#if (LZO_ABI_LITTLE_ENDIAN) + r &= UA_GET_NE32(p) == LZO_UINT32_C(0x83828180); -+#endif + #endif +-#if defined(LZO_UNALIGNED_OK_8) +#if defined(UA_GET_NE64) u.c[0] = u.c[1] = 0; - u.b[0] = 5; u.b[sizeof(lzo_uint64) + 1] = 6; + u.b[0] = 5; u.b[9] = 6; p = u2p(&u, 1); - r &= ((* (lzo_uint64p) p) == 0); --#endif --#if defined(lzo_bitops_clz32) -- { unsigned i; lzo_uint32 v = 1; -- for (i = 0; i < 31; i++, v <<= 1) -- r &= lzo_bitops_clz32(v) == 31 - i; -- } --#endif --#if defined(lzo_bitops_clz64) -- { unsigned i; lzo_uint64 v = 1; -- for (i = 0; i < 63; i++, v <<= 1) -- r &= lzo_bitops_clz64(v) == 63 - i; -- } --#endif --#if defined(lzo_bitops_ctz32) -- { unsigned i; lzo_uint32 v = 1; -- for (i = 0; i < 31; i++, v <<= 1) -- r &= lzo_bitops_ctz32(v) == i; -- } --#endif --#if defined(lzo_bitops_ctz64) -- { unsigned i; lzo_uint64 v = 1; -- for (i = 0; i < 63; i++, v <<= 1) -- r &= lzo_bitops_ctz64(v) == i; -- } --#endif --#endif + u.c[0] = u.c[1] = 0; + r &= UA_GET_NE64(p) == 0; +#if defined(UA_GET_LE64) @@ -7656,36 +4147,56 @@ index 25a1f68b3..ab2be5f4f 100644 + u.b[1] = 128; + r &= UA_GET_LE64(p) == 128; +#endif -+#endif + #endif +-#if defined(lzo_bitops_clz32) +- { unsigned i; lzo_uint32 v = 1; +- for (i = 0; i < 31; i++, v <<= 1) +- r &= lzo_bitops_clz32(v) == 31 - i; +- } +#if defined(lzo_bitops_ctlz32) + { unsigned i = 0; lzo_uint32_t v; + for (v = 1; v != 0 && r == 1; v <<= 1, i++) { + r &= lzo_bitops_ctlz32(v) == 31 - i; + r &= lzo_bitops_ctlz32_func(v) == 31 - i; + }} -+#endif + #endif +-#if defined(lzo_bitops_clz64) +- { unsigned i; lzo_uint64 v = 1; +- for (i = 0; i < 63; i++, v <<= 1) +- r &= lzo_bitops_clz64(v) == 63 - i; +- } +#if defined(lzo_bitops_ctlz64) + { unsigned i = 0; lzo_uint64_t v; + for (v = 1; v != 0 && r == 1; v <<= 1, i++) { + r &= lzo_bitops_ctlz64(v) == 63 - i; + r &= lzo_bitops_ctlz64_func(v) == 63 - i; + }} -+#endif + #endif +-#if defined(lzo_bitops_ctz32) +- { unsigned i; lzo_uint32 v = 1; +- for (i = 0; i < 31; i++, v <<= 1) +- r &= lzo_bitops_ctz32(v) == i; +- } +#if defined(lzo_bitops_cttz32) + { unsigned i = 0; lzo_uint32_t v; + for (v = 1; v != 0 && r == 1; v <<= 1, i++) { + r &= lzo_bitops_cttz32(v) == i; + r &= lzo_bitops_cttz32_func(v) == i; + }} -+#endif + #endif +-#if defined(lzo_bitops_ctz64) +- { unsigned i; lzo_uint64 v = 1; +- for (i = 0; i < 63; i++, v <<= 1) +- r &= lzo_bitops_ctz64(v) == i; +- } +#if defined(lzo_bitops_cttz64) + { unsigned i = 0; lzo_uint64_t v; + for (v = 1; v != 0 && r == 1; v <<= 1, i++) { + r &= lzo_bitops_cttz64(v) == i; + r &= lzo_bitops_cttz64_func(v) == i; + }} -+#endif -+#endif + #endif + #endif + LZO_UNUSED_FUNC(lzo_bitops_unused_funcs); return r == 1 ? LZO_E_OK : LZO_E_ERROR; @@ -8739,8 +5250,3219 @@ index 25a1f68b3..ab2be5f4f 100644 /***** End of minilzo.c *****/ - +diff --git a/grub-core/lib/minilzo/lzoconf.h b/grub-core/lib/minilzo/lzoconf.h +index 1d0fe14fcda..61be29c5dc2 100644 +--- a/grub-core/lib/minilzo/lzoconf.h ++++ b/grub-core/lib/minilzo/lzoconf.h +@@ -2,22 +2,7 @@ + + This file is part of the LZO real-time data compression library. + +- Copyright (C) 2011 Markus Franz Xaver Johannes Oberhumer +- Copyright (C) 2010 Markus Franz Xaver Johannes Oberhumer +- Copyright (C) 2009 Markus Franz Xaver Johannes Oberhumer +- Copyright (C) 2008 Markus Franz Xaver Johannes Oberhumer +- Copyright (C) 2007 Markus Franz Xaver Johannes Oberhumer +- Copyright (C) 2006 Markus Franz Xaver Johannes Oberhumer +- Copyright (C) 2005 Markus Franz Xaver Johannes Oberhumer +- Copyright (C) 2004 Markus Franz Xaver Johannes Oberhumer +- Copyright (C) 2003 Markus Franz Xaver Johannes Oberhumer +- Copyright (C) 2002 Markus Franz Xaver Johannes Oberhumer +- Copyright (C) 2001 Markus Franz Xaver Johannes Oberhumer +- Copyright (C) 2000 Markus Franz Xaver Johannes Oberhumer +- Copyright (C) 1999 Markus Franz Xaver Johannes Oberhumer +- Copyright (C) 1998 Markus Franz Xaver Johannes Oberhumer +- Copyright (C) 1997 Markus Franz Xaver Johannes Oberhumer +- Copyright (C) 1996 Markus Franz Xaver Johannes Oberhumer ++ Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer + All Rights Reserved. + + The LZO library is free software; you can redistribute it and/or +@@ -44,9 +29,9 @@ + #ifndef __LZOCONF_H_INCLUDED + #define __LZOCONF_H_INCLUDED 1 + +-#define LZO_VERSION 0x2050 +-#define LZO_VERSION_STRING "2.05" +-#define LZO_VERSION_DATE "Apr 23 2011" ++#define LZO_VERSION 0x2080 ++#define LZO_VERSION_STRING "2.08" ++#define LZO_VERSION_DATE "Jun 29 2014" + + /* internal Autoconf configuration file - only used when building LZO */ + #if defined(LZO_HAVE_CONFIG_H) +@@ -63,7 +48,7 @@ + #if !defined(CHAR_BIT) || (CHAR_BIT != 8) + # error "invalid CHAR_BIT" + #endif +-#if !defined(UCHAR_MAX) || !defined(UINT_MAX) || !defined(ULONG_MAX) ++#if !defined(UCHAR_MAX) || !defined(USHRT_MAX) || !defined(UINT_MAX) || !defined(ULONG_MAX) + # error "check your compiler installation" + #endif + #if (USHRT_MAX < 1) || (UINT_MAX < 1) || (ULONG_MAX < 1) +@@ -85,14 +70,6 @@ extern "C" { + // some core defines + ************************************************************************/ + +-#if !defined(LZO_UINT32_C) +-# if (UINT_MAX < LZO_0xffffffffL) +-# define LZO_UINT32_C(c) c ## UL +-# else +-# define LZO_UINT32_C(c) ((c) + 0U) +-# endif +-#endif +- + /* memory checkers */ + #if !defined(__LZO_CHECKER) + # if defined(__BOUNDS_CHECKING_ON) +@@ -111,28 +88,31 @@ extern "C" { + // integral and pointer types + ************************************************************************/ + +-/* lzo_uint should match size_t */ ++/* lzo_uint must match size_t */ + #if !defined(LZO_UINT_MAX) +-# if defined(LZO_ABI_LLP64) /* WIN64 */ +-# if defined(LZO_OS_WIN64) ++# if (LZO_ABI_LLP64) ++# if (LZO_OS_WIN64) + typedef unsigned __int64 lzo_uint; + typedef __int64 lzo_int; + # else +- typedef unsigned long long lzo_uint; +- typedef long long lzo_int; ++ typedef lzo_ullong_t lzo_uint; ++ typedef lzo_llong_t lzo_int; + # endif ++# define LZO_SIZEOF_LZO_UINT 8 + # define LZO_UINT_MAX 0xffffffffffffffffull + # define LZO_INT_MAX 9223372036854775807LL + # define LZO_INT_MIN (-1LL - LZO_INT_MAX) +-# elif defined(LZO_ABI_IP32L64) /* MIPS R5900 */ ++# elif (LZO_ABI_IP32L64) /* MIPS R5900 */ + typedef unsigned int lzo_uint; + typedef int lzo_int; ++# define LZO_SIZEOF_LZO_UINT LZO_SIZEOF_INT + # define LZO_UINT_MAX UINT_MAX + # define LZO_INT_MAX INT_MAX + # define LZO_INT_MIN INT_MIN + # elif (ULONG_MAX >= LZO_0xffffffffL) + typedef unsigned long lzo_uint; + typedef long lzo_int; ++# define LZO_SIZEOF_LZO_UINT LZO_SIZEOF_LONG + # define LZO_UINT_MAX ULONG_MAX + # define LZO_INT_MAX LONG_MAX + # define LZO_INT_MIN LONG_MIN +@@ -141,63 +121,22 @@ extern "C" { + # endif + #endif + +-/* Integral types with 32 bits or more. */ +-#if !defined(LZO_UINT32_MAX) +-# if (UINT_MAX >= LZO_0xffffffffL) +- typedef unsigned int lzo_uint32; +- typedef int lzo_int32; +-# define LZO_UINT32_MAX UINT_MAX +-# define LZO_INT32_MAX INT_MAX +-# define LZO_INT32_MIN INT_MIN +-# elif (ULONG_MAX >= LZO_0xffffffffL) +- typedef unsigned long lzo_uint32; +- typedef long lzo_int32; +-# define LZO_UINT32_MAX ULONG_MAX +-# define LZO_INT32_MAX LONG_MAX +-# define LZO_INT32_MIN LONG_MIN +-# else +-# error "lzo_uint32" +-# endif +-#endif +- +-/* Integral types with exactly 64 bits. */ +-#if !defined(LZO_UINT64_MAX) +-# if (LZO_UINT_MAX >= LZO_0xffffffffL) +-# if ((((LZO_UINT_MAX) >> 31) >> 31) == 3) +-# define lzo_uint64 lzo_uint +-# define lzo_int64 lzo_int +-# define LZO_UINT64_MAX LZO_UINT_MAX +-# define LZO_INT64_MAX LZO_INT_MAX +-# define LZO_INT64_MIN LZO_INT_MIN +-# endif +-# elif (ULONG_MAX >= LZO_0xffffffffL) +-# if ((((ULONG_MAX) >> 31) >> 31) == 3) +- typedef unsigned long lzo_uint64; +- typedef long lzo_int64; +-# define LZO_UINT64_MAX ULONG_MAX +-# define LZO_INT64_MAX LONG_MAX +-# define LZO_INT64_MIN LONG_MIN +-# endif +-# endif +-#endif +- +-/* The larger type of lzo_uint and lzo_uint32. */ +-#if (LZO_UINT_MAX >= LZO_UINT32_MAX) ++/* The larger type of lzo_uint and lzo_uint32_t. */ ++#if (LZO_SIZEOF_LZO_UINT >= 4) + # define lzo_xint lzo_uint + #else +-# define lzo_xint lzo_uint32 ++# define lzo_xint lzo_uint32_t + #endif + +-/* Memory model that allows to access memory at offsets of lzo_uint. */ +-#if !defined(__LZO_MMODEL) +-# if (LZO_UINT_MAX <= UINT_MAX) +-# define __LZO_MMODEL /*empty*/ +-# elif defined(LZO_HAVE_MM_HUGE_PTR) +-# define __LZO_MMODEL_HUGE 1 +-# define __LZO_MMODEL __huge +-# else +-# define __LZO_MMODEL /*empty*/ +-# endif ++typedef int lzo_bool; ++ ++/* sanity checks */ ++LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_uint) == LZO_SIZEOF_LZO_UINT) ++LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_xint) >= sizeof(lzo_uint)) ++LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_xint) >= sizeof(lzo_uint32_t)) ++ ++#ifndef __LZO_MMODEL ++#define __LZO_MMODEL /*empty*/ + #endif + + /* no typedef here because of const-pointer issues */ +@@ -206,21 +145,52 @@ extern "C" { + #define lzo_voidp void __LZO_MMODEL * + #define lzo_shortp short __LZO_MMODEL * + #define lzo_ushortp unsigned short __LZO_MMODEL * +-#define lzo_uint32p lzo_uint32 __LZO_MMODEL * +-#define lzo_int32p lzo_int32 __LZO_MMODEL * +-#if defined(LZO_UINT64_MAX) +-#define lzo_uint64p lzo_uint64 __LZO_MMODEL * +-#define lzo_int64p lzo_int64 __LZO_MMODEL * +-#endif +-#define lzo_uintp lzo_uint __LZO_MMODEL * + #define lzo_intp lzo_int __LZO_MMODEL * ++#define lzo_uintp lzo_uint __LZO_MMODEL * + #define lzo_xintp lzo_xint __LZO_MMODEL * + #define lzo_voidpp lzo_voidp __LZO_MMODEL * + #define lzo_bytepp lzo_bytep __LZO_MMODEL * +-/* deprecated - use 'lzo_bytep' instead of 'lzo_byte *' */ +-#define lzo_byte unsigned char __LZO_MMODEL + +-typedef int lzo_bool; ++#define lzo_int8_tp lzo_int8_t __LZO_MMODEL * ++#define lzo_uint8_tp lzo_uint8_t __LZO_MMODEL * ++#define lzo_int16_tp lzo_int16_t __LZO_MMODEL * ++#define lzo_uint16_tp lzo_uint16_t __LZO_MMODEL * ++#define lzo_int32_tp lzo_int32_t __LZO_MMODEL * ++#define lzo_uint32_tp lzo_uint32_t __LZO_MMODEL * ++#if defined(lzo_int64_t) ++#define lzo_int64_tp lzo_int64_t __LZO_MMODEL * ++#define lzo_uint64_tp lzo_uint64_t __LZO_MMODEL * ++#endif ++ ++/* Older LZO versions used to support ancient systems and memory models ++ * like 16-bit MSDOS with __huge pointers and Cray PVP, but these ++ * obsolete configurations are not supported any longer. ++ */ ++#if defined(__LZO_MMODEL_HUGE) ++#error "__LZO_MMODEL_HUGE is unsupported" ++#endif ++#if (LZO_MM_PVP) ++#error "LZO_MM_PVP is unsupported" ++#endif ++#if (LZO_SIZEOF_INT < 4) ++#error "LZO_SIZEOF_INT < 4 is unsupported" ++#endif ++#if (__LZO_UINTPTR_T_IS_POINTER) ++#error "__LZO_UINTPTR_T_IS_POINTER is unsupported" ++#endif ++LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(int) >= 4) ++LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_uint) >= 4) ++/* Strange configurations where sizeof(lzo_uint) != sizeof(size_t) should ++ * work but have not received much testing lately, so be strict here. ++ */ ++LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_uint) == sizeof(size_t)) ++LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_uint) == sizeof(ptrdiff_t)) ++LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_uint) == sizeof(lzo_uintptr_t)) ++LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(void *) == sizeof(lzo_uintptr_t)) ++LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(char *) == sizeof(lzo_uintptr_t)) ++LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(long *) == sizeof(lzo_uintptr_t)) ++LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(void *) == sizeof(lzo_voidp)) ++LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(char *) == sizeof(lzo_bytep)) + + + /*********************************************************************** +@@ -315,7 +285,7 @@ struct lzo_callback_t + /* a progress indicator callback function (set to 0 to disable) */ + lzo_progress_func_t nprogress; + +- /* NOTE: the first parameter "self" of the nalloc/nfree/nprogress ++ /* INFO: the first parameter "self" of the nalloc/nfree/nprogress + * callbacks points back to this struct, so you are free to store + * some extra info in the following variables. */ + lzo_voidp user1; +@@ -343,6 +313,9 @@ struct lzo_callback_t + #define LZO_E_INPUT_NOT_CONSUMED (-8) + #define LZO_E_NOT_YET_IMPLEMENTED (-9) /* [not used right now] */ + #define LZO_E_INVALID_ARGUMENT (-10) ++#define LZO_E_INVALID_ALIGNMENT (-11) /* pointer argument is not properly aligned */ ++#define LZO_E_OUTPUT_NOT_CONSUMED (-12) ++#define LZO_E_INTERNAL_ERROR (-99) + + + #ifndef lzo_sizeof_dict_t +@@ -356,7 +329,7 @@ struct lzo_callback_t + * compiler's view of various types are consistent. + */ + #define lzo_init() __lzo_init_v2(LZO_VERSION,(int)sizeof(short),(int)sizeof(int),\ +- (int)sizeof(long),(int)sizeof(lzo_uint32),(int)sizeof(lzo_uint),\ ++ (int)sizeof(long),(int)sizeof(lzo_uint32_t),(int)sizeof(lzo_uint),\ + (int)lzo_sizeof_dict_t,(int)sizeof(char *),(int)sizeof(lzo_voidp),\ + (int)sizeof(lzo_callback_t)) + LZO_EXTERN(int) __lzo_init_v2(unsigned,int,int,int,int,int,int,int,int,int); +@@ -379,18 +352,22 @@ LZO_EXTERN(lzo_voidp) + lzo_memset(lzo_voidp buf, int c, lzo_uint len); + + /* checksum functions */ +-LZO_EXTERN(lzo_uint32) +- lzo_adler32(lzo_uint32 c, const lzo_bytep buf, lzo_uint len); +-LZO_EXTERN(lzo_uint32) +- lzo_crc32(lzo_uint32 c, const lzo_bytep buf, lzo_uint len); +-LZO_EXTERN(const lzo_uint32p) ++LZO_EXTERN(lzo_uint32_t) ++ lzo_adler32(lzo_uint32_t c, const lzo_bytep buf, lzo_uint len); ++LZO_EXTERN(lzo_uint32_t) ++ lzo_crc32(lzo_uint32_t c, const lzo_bytep buf, lzo_uint len); ++LZO_EXTERN(const lzo_uint32_tp) + lzo_get_crc32_table(void); + + /* misc. */ + LZO_EXTERN(int) _lzo_config_check(void); +-typedef union { lzo_bytep p; lzo_uint u; } __lzo_pu_u; +-typedef union { lzo_bytep p; lzo_uint32 u32; } __lzo_pu32_u; +-typedef union { void *vp; lzo_bytep bp; lzo_uint u; lzo_uint32 u32; unsigned long l; } lzo_align_t; ++typedef union { ++ lzo_voidp a00; lzo_bytep a01; lzo_uint a02; lzo_xint a03; lzo_uintptr_t a04; ++ void *a05; unsigned char *a06; unsigned long a07; size_t a08; ptrdiff_t a09; ++#if defined(lzo_int64_t) ++ lzo_uint64_t a10; ++#endif ++} lzo_align_t; + + /* align a char pointer on a boundary that is a multiple of 'size' */ + LZO_EXTERN(unsigned) __lzo_align_gap(const lzo_voidp p, lzo_uint size); +@@ -399,9 +376,30 @@ LZO_EXTERN(unsigned) __lzo_align_gap(const lzo_voidp p, lzo_uint size); + + + /*********************************************************************** +-// deprecated macros - only for backward compatibility with LZO v1.xx ++// deprecated macros - only for backward compatibility + ************************************************************************/ + ++/* deprecated - use 'lzo_bytep' instead of 'lzo_byte *' */ ++#define lzo_byte unsigned char ++/* deprecated type names */ ++#define lzo_int32 lzo_int32_t ++#define lzo_uint32 lzo_uint32_t ++#define lzo_int32p lzo_int32_t __LZO_MMODEL * ++#define lzo_uint32p lzo_uint32_t __LZO_MMODEL * ++#define LZO_INT32_MAX LZO_INT32_C(2147483647) ++#define LZO_UINT32_MAX LZO_UINT32_C(4294967295) ++#if defined(lzo_int64_t) ++#define lzo_int64 lzo_int64_t ++#define lzo_uint64 lzo_uint64_t ++#define lzo_int64p lzo_int64_t __LZO_MMODEL * ++#define lzo_uint64p lzo_uint64_t __LZO_MMODEL * ++#define LZO_INT64_MAX LZO_INT64_C(9223372036854775807) ++#define LZO_UINT64_MAX LZO_UINT64_C(18446744073709551615) ++#endif ++/* deprecated types */ ++typedef union { lzo_bytep a; lzo_uint b; } __lzo_pu_u; ++typedef union { lzo_bytep a; lzo_uint32_t b; } __lzo_pu32_u; ++ + #if defined(LZO_CFG_COMPAT) + + #define __LZOCONF_H 1 +@@ -443,4 +441,4 @@ LZO_EXTERN(unsigned) __lzo_align_gap(const lzo_voidp p, lzo_uint size); + #endif /* already included */ + + +-/* vim:set ts=4 et: */ ++/* vim:set ts=4 sw=4 et: */ +diff --git a/grub-core/lib/minilzo/lzodefs.h b/grub-core/lib/minilzo/lzodefs.h +index 0e40e332a8d..f4ae9487ebe 100644 +--- a/grub-core/lib/minilzo/lzodefs.h ++++ b/grub-core/lib/minilzo/lzodefs.h +@@ -2,22 +2,7 @@ + + This file is part of the LZO real-time data compression library. + +- Copyright (C) 2011 Markus Franz Xaver Johannes Oberhumer +- Copyright (C) 2010 Markus Franz Xaver Johannes Oberhumer +- Copyright (C) 2009 Markus Franz Xaver Johannes Oberhumer +- Copyright (C) 2008 Markus Franz Xaver Johannes Oberhumer +- Copyright (C) 2007 Markus Franz Xaver Johannes Oberhumer +- Copyright (C) 2006 Markus Franz Xaver Johannes Oberhumer +- Copyright (C) 2005 Markus Franz Xaver Johannes Oberhumer +- Copyright (C) 2004 Markus Franz Xaver Johannes Oberhumer +- Copyright (C) 2003 Markus Franz Xaver Johannes Oberhumer +- Copyright (C) 2002 Markus Franz Xaver Johannes Oberhumer +- Copyright (C) 2001 Markus Franz Xaver Johannes Oberhumer +- Copyright (C) 2000 Markus Franz Xaver Johannes Oberhumer +- Copyright (C) 1999 Markus Franz Xaver Johannes Oberhumer +- Copyright (C) 1998 Markus Franz Xaver Johannes Oberhumer +- Copyright (C) 1997 Markus Franz Xaver Johannes Oberhumer +- Copyright (C) 1996 Markus Franz Xaver Johannes Oberhumer ++ Copyright (C) 1996-2014 Markus Franz Xaver Johannes Oberhumer + All Rights Reserved. + + The LZO library is free software; you can redistribute it and/or +@@ -47,12 +32,6 @@ + #if defined(__CYGWIN32__) && !defined(__CYGWIN__) + # define __CYGWIN__ __CYGWIN32__ + #endif +-#if defined(__IBMCPP__) && !defined(__IBMC__) +-# define __IBMC__ __IBMCPP__ +-#endif +-#if defined(__ICL) && defined(_WIN32) && !defined(__INTEL_COMPILER) +-# define __INTEL_COMPILER __ICL +-#endif + #if 1 && defined(__INTERIX) && defined(__GNUC__) && !defined(_ALL_SOURCE) + # define _ALL_SOURCE 1 + #endif +@@ -61,19 +40,30 @@ + # define __LONG_MAX__ 9223372036854775807L + # endif + #endif +-#if defined(__INTEL_COMPILER) && defined(__linux__) ++#if !defined(LZO_CFG_NO_DISABLE_WUNDEF) ++#if defined(__ARMCC_VERSION) ++# pragma diag_suppress 193 ++#elif defined(__clang__) && defined(__clang_minor__) ++# pragma clang diagnostic ignored "-Wundef" ++#elif defined(__INTEL_COMPILER) + # pragma warning(disable: 193) +-#endif +-#if defined(__KEIL__) && defined(__C166__) ++#elif defined(__KEIL__) && defined(__C166__) + # pragma warning disable = 322 +-#elif 0 && defined(__C251__) +-# pragma warning disable = 322 +-#endif +-#if defined(_MSC_VER) && !defined(__INTEL_COMPILER) && !defined(__MWERKS__) +-# if (_MSC_VER >= 1300) ++#elif defined(__GNUC__) && defined(__GNUC_MINOR__) && !defined(__PATHSCALE__) ++# if ((__GNUC__-0) >= 5 || ((__GNUC__-0) == 4 && (__GNUC_MINOR__-0) >= 2)) ++# pragma GCC diagnostic ignored "-Wundef" ++# endif ++#elif defined(_MSC_VER) && !defined(__clang__) && !defined(__INTEL_COMPILER) && !defined(__MWERKS__) ++# if ((_MSC_VER-0) >= 1300) + # pragma warning(disable: 4668) + # endif + #endif ++#endif ++#if 0 && defined(__POCC__) && defined(_WIN32) ++# if (__POCC__ >= 400) ++# pragma warn(disable: 2216) ++# endif ++#endif + #if 0 && defined(__WATCOMC__) + # if (__WATCOMC__ >= 1050) && (__WATCOMC__ < 1060) + # pragma warning 203 9 +@@ -82,13 +72,29 @@ + #if defined(__BORLANDC__) && defined(__MSDOS__) && !defined(__FLAT__) + # pragma option -h + #endif ++#if !(LZO_CFG_NO_DISABLE_WCRTNONSTDC) ++#ifndef _CRT_NONSTDC_NO_DEPRECATE ++#define _CRT_NONSTDC_NO_DEPRECATE 1 ++#endif ++#ifndef _CRT_NONSTDC_NO_WARNINGS ++#define _CRT_NONSTDC_NO_WARNINGS 1 ++#endif ++#ifndef _CRT_SECURE_NO_DEPRECATE ++#define _CRT_SECURE_NO_DEPRECATE 1 ++#endif ++#ifndef _CRT_SECURE_NO_WARNINGS ++#define _CRT_SECURE_NO_WARNINGS 1 ++#endif ++#endif + #if 0 +-#define LZO_0xffffL 0xfffful +-#define LZO_0xffffffffL 0xfffffffful ++#define LZO_0xffffUL 0xfffful ++#define LZO_0xffffffffUL 0xfffffffful + #else +-#define LZO_0xffffL 65535ul +-#define LZO_0xffffffffL 4294967295ul ++#define LZO_0xffffUL 65535ul ++#define LZO_0xffffffffUL 4294967295ul + #endif ++#define LZO_0xffffL LZO_0xffffUL ++#define LZO_0xffffffffL LZO_0xffffffffUL + #if (LZO_0xffffL == LZO_0xffffffffL) + # error "your preprocessor is broken 1" + #endif +@@ -103,6 +109,13 @@ + # error "your preprocessor is broken 4" + #endif + #endif ++#if defined(__COUNTER__) ++# ifndef LZO_CFG_USE_COUNTER ++# define LZO_CFG_USE_COUNTER 1 ++# endif ++#else ++# undef LZO_CFG_USE_COUNTER ++#endif + #if (UINT_MAX == LZO_0xffffL) + #if defined(__ZTC__) && defined(__I86__) && !defined(__OS2__) + # if !defined(MSDOS) +@@ -233,14 +246,31 @@ + #endif + #define LZO_PP_STRINGIZE(x) #x + #define LZO_PP_MACRO_EXPAND(x) LZO_PP_STRINGIZE(x) ++#define LZO_PP_CONCAT0() /*empty*/ ++#define LZO_PP_CONCAT1(a) a + #define LZO_PP_CONCAT2(a,b) a ## b + #define LZO_PP_CONCAT3(a,b,c) a ## b ## c + #define LZO_PP_CONCAT4(a,b,c,d) a ## b ## c ## d + #define LZO_PP_CONCAT5(a,b,c,d,e) a ## b ## c ## d ## e ++#define LZO_PP_CONCAT6(a,b,c,d,e,f) a ## b ## c ## d ## e ## f ++#define LZO_PP_CONCAT7(a,b,c,d,e,f,g) a ## b ## c ## d ## e ## f ## g ++#define LZO_PP_ECONCAT0() LZO_PP_CONCAT0() ++#define LZO_PP_ECONCAT1(a) LZO_PP_CONCAT1(a) + #define LZO_PP_ECONCAT2(a,b) LZO_PP_CONCAT2(a,b) + #define LZO_PP_ECONCAT3(a,b,c) LZO_PP_CONCAT3(a,b,c) + #define LZO_PP_ECONCAT4(a,b,c,d) LZO_PP_CONCAT4(a,b,c,d) + #define LZO_PP_ECONCAT5(a,b,c,d,e) LZO_PP_CONCAT5(a,b,c,d,e) ++#define LZO_PP_ECONCAT6(a,b,c,d,e,f) LZO_PP_CONCAT6(a,b,c,d,e,f) ++#define LZO_PP_ECONCAT7(a,b,c,d,e,f,g) LZO_PP_CONCAT7(a,b,c,d,e,f,g) ++#define LZO_PP_EMPTY /*empty*/ ++#define LZO_PP_EMPTY0() /*empty*/ ++#define LZO_PP_EMPTY1(a) /*empty*/ ++#define LZO_PP_EMPTY2(a,b) /*empty*/ ++#define LZO_PP_EMPTY3(a,b,c) /*empty*/ ++#define LZO_PP_EMPTY4(a,b,c,d) /*empty*/ ++#define LZO_PP_EMPTY5(a,b,c,d,e) /*empty*/ ++#define LZO_PP_EMPTY6(a,b,c,d,e,f) /*empty*/ ++#define LZO_PP_EMPTY7(a,b,c,d,e,f,g) /*empty*/ + #if 1 + #define LZO_CPP_STRINGIZE(x) #x + #define LZO_CPP_MACRO_EXPAND(x) LZO_CPP_STRINGIZE(x) +@@ -248,12 +278,16 @@ + #define LZO_CPP_CONCAT3(a,b,c) a ## b ## c + #define LZO_CPP_CONCAT4(a,b,c,d) a ## b ## c ## d + #define LZO_CPP_CONCAT5(a,b,c,d,e) a ## b ## c ## d ## e ++#define LZO_CPP_CONCAT6(a,b,c,d,e,f) a ## b ## c ## d ## e ## f ++#define LZO_CPP_CONCAT7(a,b,c,d,e,f,g) a ## b ## c ## d ## e ## f ## g + #define LZO_CPP_ECONCAT2(a,b) LZO_CPP_CONCAT2(a,b) + #define LZO_CPP_ECONCAT3(a,b,c) LZO_CPP_CONCAT3(a,b,c) + #define LZO_CPP_ECONCAT4(a,b,c,d) LZO_CPP_CONCAT4(a,b,c,d) + #define LZO_CPP_ECONCAT5(a,b,c,d,e) LZO_CPP_CONCAT5(a,b,c,d,e) ++#define LZO_CPP_ECONCAT6(a,b,c,d,e,f) LZO_CPP_CONCAT6(a,b,c,d,e,f) ++#define LZO_CPP_ECONCAT7(a,b,c,d,e,f,g) LZO_CPP_CONCAT7(a,b,c,d,e,f,g) + #endif +-#define __LZO_MASK_GEN(o,b) (((((o) << ((b)-1)) - (o)) << 1) + (o)) ++#define __LZO_MASK_GEN(o,b) (((((o) << ((b)-!!(b))) - (o)) << 1) + (o)*!!(b)) + #if 1 && defined(__cplusplus) + # if !defined(__STDC_CONSTANT_MACROS) + # define __STDC_CONSTANT_MACROS 1 +@@ -263,9 +297,13 @@ + # endif + #endif + #if defined(__cplusplus) +-# define LZO_EXTERN_C extern "C" ++# define LZO_EXTERN_C extern "C" ++# define LZO_EXTERN_C_BEGIN extern "C" { ++# define LZO_EXTERN_C_END } + #else +-# define LZO_EXTERN_C extern ++# define LZO_EXTERN_C extern ++# define LZO_EXTERN_C_BEGIN /*empty*/ ++# define LZO_EXTERN_C_END /*empty*/ + #endif + #if !defined(__LZO_OS_OVERRIDE) + #if (LZO_OS_FREESTANDING) +@@ -366,12 +404,12 @@ + #elif defined(__VMS) + # define LZO_OS_VMS 1 + # define LZO_INFO_OS "vms" +-#elif ((defined(__mips__) && defined(__R5900__)) || defined(__MIPS_PSX2__)) ++#elif (defined(__mips__) && defined(__R5900__)) || defined(__MIPS_PSX2__) + # define LZO_OS_CONSOLE 1 + # define LZO_OS_CONSOLE_PS2 1 + # define LZO_INFO_OS "console" + # define LZO_INFO_OS_CONSOLE "ps2" +-#elif (defined(__mips__) && defined(__psp__)) ++#elif defined(__mips__) && defined(__psp__) + # define LZO_OS_CONSOLE 1 + # define LZO_OS_CONSOLE_PSP 1 + # define LZO_INFO_OS "console" +@@ -399,9 +437,18 @@ + # elif defined(__linux__) || defined(__linux) || defined(__LINUX__) + # define LZO_OS_POSIX_LINUX 1 + # define LZO_INFO_OS_POSIX "linux" +-# elif defined(__APPLE__) || defined(__MACOS__) +-# define LZO_OS_POSIX_MACOSX 1 +-# define LZO_INFO_OS_POSIX "macosx" ++# elif defined(__APPLE__) && defined(__MACH__) ++# if ((__ENVIRONMENT_IPHONE_OS_VERSION_MIN_REQUIRED__-0) >= 20000) ++# define LZO_OS_POSIX_DARWIN 1040 ++# define LZO_INFO_OS_POSIX "darwin_iphone" ++# elif ((__ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__-0) >= 1040) ++# define LZO_OS_POSIX_DARWIN __ENVIRONMENT_MAC_OS_X_VERSION_MIN_REQUIRED__ ++# define LZO_INFO_OS_POSIX "darwin" ++# else ++# define LZO_OS_POSIX_DARWIN 1 ++# define LZO_INFO_OS_POSIX "darwin" ++# endif ++# define LZO_OS_POSIX_MACOSX LZO_OS_POSIX_DARWIN + # elif defined(__minix__) || defined(__minix) + # define LZO_OS_POSIX_MINIX 1 + # define LZO_INFO_OS_POSIX "minix" +@@ -436,18 +483,18 @@ + #endif + #if (LZO_OS_DOS16 || LZO_OS_OS216 || LZO_OS_WIN16) + # if (UINT_MAX != LZO_0xffffL) +-# error "this should not happen" ++# error "unexpected configuration - check your compiler defines" + # endif + # if (ULONG_MAX != LZO_0xffffffffL) +-# error "this should not happen" ++# error "unexpected configuration - check your compiler defines" + # endif + #endif + #if (LZO_OS_DOS32 || LZO_OS_OS2 || LZO_OS_WIN32 || LZO_OS_WIN64) + # if (UINT_MAX != LZO_0xffffffffL) +-# error "this should not happen" ++# error "unexpected configuration - check your compiler defines" + # endif + # if (ULONG_MAX != LZO_0xffffffffL) +-# error "this should not happen" ++# error "unexpected configuration - check your compiler defines" + # endif + #endif + #if defined(CIL) && defined(_GNUCC) && defined(__GNUC__) +@@ -463,59 +510,65 @@ + # define LZO_INFO_CC "sdcc" + # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(SDCC) + #elif defined(__PATHSCALE__) && defined(__PATHCC_PATCHLEVEL__) +-# define LZO_CC_PATHSCALE (__PATHCC__ * 0x10000L + __PATHCC_MINOR__ * 0x100 + __PATHCC_PATCHLEVEL__) ++# define LZO_CC_PATHSCALE (__PATHCC__ * 0x10000L + (__PATHCC_MINOR__-0) * 0x100 + (__PATHCC_PATCHLEVEL__-0)) + # define LZO_INFO_CC "Pathscale C" + # define LZO_INFO_CCVER __PATHSCALE__ +-#elif defined(__INTEL_COMPILER) +-# define LZO_CC_INTELC 1 ++# if defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__) ++# define LZO_CC_PATHSCALE_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0)) ++# endif ++#elif defined(__INTEL_COMPILER) && ((__INTEL_COMPILER-0) > 0) ++# define LZO_CC_INTELC __INTEL_COMPILER + # define LZO_INFO_CC "Intel C" + # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__INTEL_COMPILER) +-# if defined(_WIN32) || defined(_WIN64) +-# define LZO_CC_SYNTAX_MSC 1 +-# else +-# define LZO_CC_SYNTAX_GNUC 1 ++# if defined(_MSC_VER) && ((_MSC_VER-0) > 0) ++# define LZO_CC_INTELC_MSC _MSC_VER ++# elif defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__) ++# define LZO_CC_INTELC_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0)) + # endif + #elif defined(__POCC__) && defined(_WIN32) + # define LZO_CC_PELLESC 1 + # define LZO_INFO_CC "Pelles C" + # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__POCC__) +-#elif defined(__clang__) && defined(__llvm__) && defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__) ++#elif defined(__ARMCC_VERSION) && defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__) + # if defined(__GNUC_PATCHLEVEL__) +-# define LZO_CC_CLANG_GNUC (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100 + __GNUC_PATCHLEVEL__) ++# define LZO_CC_ARMCC_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0)) + # else +-# define LZO_CC_CLANG_GNUC (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100) ++# define LZO_CC_ARMCC_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100) + # endif ++# define LZO_CC_ARMCC __ARMCC_VERSION ++# define LZO_INFO_CC "ARM C Compiler" ++# define LZO_INFO_CCVER __VERSION__ ++#elif defined(__clang__) && defined(__llvm__) && defined(__VERSION__) + # if defined(__clang_major__) && defined(__clang_minor__) && defined(__clang_patchlevel__) +-# define LZO_CC_CLANG_CLANG (__clang_major__ * 0x10000L + __clang_minor__ * 0x100 + __clang_patchlevel__) ++# define LZO_CC_CLANG (__clang_major__ * 0x10000L + (__clang_minor__-0) * 0x100 + (__clang_patchlevel__-0)) + # else +-# define LZO_CC_CLANG_CLANG 0x010000L ++# define LZO_CC_CLANG 0x010000L ++# endif ++# if defined(_MSC_VER) && ((_MSC_VER-0) > 0) ++# define LZO_CC_CLANG_MSC _MSC_VER ++# elif defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__) ++# define LZO_CC_CLANG_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0)) + # endif +-# define LZO_CC_CLANG LZO_CC_CLANG_GNUC + # define LZO_INFO_CC "clang" + # define LZO_INFO_CCVER __VERSION__ + #elif defined(__llvm__) && defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__) + # if defined(__GNUC_PATCHLEVEL__) +-# define LZO_CC_LLVM_GNUC (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100 + __GNUC_PATCHLEVEL__) ++# define LZO_CC_LLVM_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0)) + # else +-# define LZO_CC_LLVM_GNUC (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100) ++# define LZO_CC_LLVM_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100) + # endif + # define LZO_CC_LLVM LZO_CC_LLVM_GNUC + # define LZO_INFO_CC "llvm-gcc" + # define LZO_INFO_CCVER __VERSION__ +-#elif defined(__GNUC__) && defined(__VERSION__) +-# if defined(__GNUC_MINOR__) && defined(__GNUC_PATCHLEVEL__) +-# define LZO_CC_GNUC (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100 + __GNUC_PATCHLEVEL__) +-# elif defined(__GNUC_MINOR__) +-# define LZO_CC_GNUC (__GNUC__ * 0x10000L + __GNUC_MINOR__ * 0x100) +-# else +-# define LZO_CC_GNUC (__GNUC__ * 0x10000L) +-# endif +-# define LZO_INFO_CC "gcc" +-# define LZO_INFO_CCVER __VERSION__ + #elif defined(__ACK__) && defined(_ACK) + # define LZO_CC_ACK 1 + # define LZO_INFO_CC "Amsterdam Compiler Kit C" + # define LZO_INFO_CCVER "unknown" ++#elif defined(__ARMCC_VERSION) && !defined(__GNUC__) ++# define LZO_CC_ARMCC __ARMCC_VERSION ++# define LZO_CC_ARMCC_ARMCC __ARMCC_VERSION ++# define LZO_INFO_CC "ARM C Compiler" ++# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__ARMCC_VERSION) + #elif defined(__AZTEC_C__) + # define LZO_CC_AZTECC 1 + # define LZO_INFO_CC "Aztec C" +@@ -540,10 +593,23 @@ + # define LZO_CC_DECC 1 + # define LZO_INFO_CC "DEC C" + # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__DECC) ++#elif (defined(__ghs) || defined(__ghs__)) && defined(__GHS_VERSION_NUMBER) && ((__GHS_VERSION_NUMBER-0) > 0) ++# define LZO_CC_GHS 1 ++# define LZO_INFO_CC "Green Hills C" ++# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__GHS_VERSION_NUMBER) ++# if defined(_MSC_VER) && ((_MSC_VER-0) > 0) ++# define LZO_CC_GHS_MSC _MSC_VER ++# elif defined(__GNUC__) && defined(__GNUC_MINOR__) && defined(__VERSION__) ++# define LZO_CC_GHS_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0)) ++# endif + #elif defined(__HIGHC__) + # define LZO_CC_HIGHC 1 + # define LZO_INFO_CC "MetaWare High C" + # define LZO_INFO_CCVER "unknown" ++#elif defined(__HP_aCC) && ((__HP_aCC-0) > 0) ++# define LZO_CC_HPACC __HP_aCC ++# define LZO_INFO_CC "HP aCC" ++# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__HP_aCC) + #elif defined(__IAR_SYSTEMS_ICC__) + # define LZO_CC_IARC 1 + # define LZO_INFO_CC "IAR C" +@@ -552,10 +618,14 @@ + # else + # define LZO_INFO_CCVER "unknown" + # endif +-#elif defined(__IBMC__) +-# define LZO_CC_IBMC 1 ++#elif defined(__IBMC__) && ((__IBMC__-0) > 0) ++# define LZO_CC_IBMC __IBMC__ + # define LZO_INFO_CC "IBM C" + # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__IBMC__) ++#elif defined(__IBMCPP__) && ((__IBMCPP__-0) > 0) ++# define LZO_CC_IBMC __IBMCPP__ ++# define LZO_INFO_CC "IBM C" ++# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__IBMCPP__) + #elif defined(__KEIL__) && defined(__C166__) + # define LZO_CC_KEILC 1 + # define LZO_INFO_CC "Keil C" +@@ -572,16 +642,8 @@ + # else + # define LZO_INFO_CCVER "unknown" + # endif +-#elif defined(_MSC_VER) +-# define LZO_CC_MSC 1 +-# define LZO_INFO_CC "Microsoft C" +-# if defined(_MSC_FULL_VER) +-# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(_MSC_VER) "." LZO_PP_MACRO_EXPAND(_MSC_FULL_VER) +-# else +-# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(_MSC_VER) +-# endif +-#elif defined(__MWERKS__) +-# define LZO_CC_MWERKS 1 ++#elif defined(__MWERKS__) && ((__MWERKS__-0) > 0) ++# define LZO_CC_MWERKS __MWERKS__ + # define LZO_INFO_CC "Metrowerks C" + # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__MWERKS__) + #elif (defined(__NDPC__) || defined(__NDPX__)) && defined(__i386) +@@ -592,6 +654,15 @@ + # define LZO_CC_PACIFICC 1 + # define LZO_INFO_CC "Pacific C" + # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__PACIFIC__) ++#elif defined(__PGI) && defined(__PGIC__) && defined(__PGIC_MINOR__) ++# if defined(__PGIC_PATCHLEVEL__) ++# define LZO_CC_PGI (__PGIC__ * 0x10000L + (__PGIC_MINOR__-0) * 0x100 + (__PGIC_PATCHLEVEL__-0)) ++# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__PGIC__) "." LZO_PP_MACRO_EXPAND(__PGIC_MINOR__) "." LZO_PP_MACRO_EXPAND(__PGIC_PATCHLEVEL__) ++# else ++# define LZO_CC_PGI (__PGIC__ * 0x10000L + (__PGIC_MINOR__-0) * 0x100) ++# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__PGIC__) "." LZO_PP_MACRO_EXPAND(__PGIC_MINOR__) ".0" ++# endif ++# define LZO_INFO_CC "Portland Group PGI C" + #elif defined(__PGI) && (defined(__linux__) || defined(__WIN32__)) + # define LZO_CC_PGI 1 + # define LZO_INFO_CC "Portland Group PGI C" +@@ -606,7 +677,7 @@ + # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__SC__) + #elif defined(__SUNPRO_C) + # define LZO_INFO_CC "SunPro C" +-# if ((__SUNPRO_C)+0 > 0) ++# if ((__SUNPRO_C-0) > 0) + # define LZO_CC_SUNPROC __SUNPRO_C + # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__SUNPRO_C) + # else +@@ -615,7 +686,7 @@ + # endif + #elif defined(__SUNPRO_CC) + # define LZO_INFO_CC "SunPro C" +-# if ((__SUNPRO_CC)+0 > 0) ++# if ((__SUNPRO_CC-0) > 0) + # define LZO_CC_SUNPROC __SUNPRO_CC + # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__SUNPRO_CC) + # else +@@ -641,16 +712,46 @@ + #elif defined(__ZTC__) + # define LZO_CC_ZORTECHC 1 + # define LZO_INFO_CC "Zortech C" +-# if (__ZTC__ == 0x310) ++# if ((__ZTC__-0) == 0x310) + # define LZO_INFO_CCVER "0x310" + # else + # define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(__ZTC__) + # endif ++#elif defined(__GNUC__) && defined(__VERSION__) ++# if defined(__GNUC_MINOR__) && defined(__GNUC_PATCHLEVEL__) ++# define LZO_CC_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100 + (__GNUC_PATCHLEVEL__-0)) ++# elif defined(__GNUC_MINOR__) ++# define LZO_CC_GNUC (__GNUC__ * 0x10000L + (__GNUC_MINOR__-0) * 0x100) ++# else ++# define LZO_CC_GNUC (__GNUC__ * 0x10000L) ++# endif ++# define LZO_INFO_CC "gcc" ++# define LZO_INFO_CCVER __VERSION__ ++#elif defined(_MSC_VER) && ((_MSC_VER-0) > 0) ++# define LZO_CC_MSC _MSC_VER ++# define LZO_INFO_CC "Microsoft C" ++# if defined(_MSC_FULL_VER) ++# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(_MSC_VER) "." LZO_PP_MACRO_EXPAND(_MSC_FULL_VER) ++# else ++# define LZO_INFO_CCVER LZO_PP_MACRO_EXPAND(_MSC_VER) ++# endif + #else + # define LZO_CC_UNKNOWN 1 + # define LZO_INFO_CC "unknown" + # define LZO_INFO_CCVER "unknown" + #endif ++#if (LZO_CC_GNUC) && defined(__OPEN64__) ++# if defined(__OPENCC__) && defined(__OPENCC_MINOR__) && defined(__OPENCC_PATCHLEVEL__) ++# define LZO_CC_OPEN64 (__OPENCC__ * 0x10000L + (__OPENCC_MINOR__-0) * 0x100 + (__OPENCC_PATCHLEVEL__-0)) ++# define LZO_CC_OPEN64_GNUC LZO_CC_GNUC ++# endif ++#endif ++#if (LZO_CC_GNUC) && defined(__PCC__) ++# if defined(__PCC__) && defined(__PCC_MINOR__) && defined(__PCC_MINORMINOR__) ++# define LZO_CC_PCC (__PCC__ * 0x10000L + (__PCC_MINOR__-0) * 0x100 + (__PCC_MINORMINOR__-0)) ++# define LZO_CC_PCC_GNUC LZO_CC_GNUC ++# endif ++#endif + #if 0 && (LZO_CC_MSC && (_MSC_VER >= 1200)) && !defined(_MSC_FULL_VER) + # error "LZO_CC_MSC: _MSC_FULL_VER is not defined" + #endif +@@ -668,8 +769,10 @@ + # define LZO_INFO_ARCH "generic" + #elif (LZO_OS_DOS16 || LZO_OS_OS216 || LZO_OS_WIN16) + # define LZO_ARCH_I086 1 +-# define LZO_ARCH_IA16 1 + # define LZO_INFO_ARCH "i086" ++#elif defined(__aarch64__) ++# define LZO_ARCH_ARM64 1 ++# define LZO_INFO_ARCH "arm64" + #elif defined(__alpha__) || defined(__alpha) || defined(_M_ALPHA) + # define LZO_ARCH_ALPHA 1 + # define LZO_INFO_ARCH "alpha" +@@ -685,10 +788,10 @@ + # define LZO_INFO_ARCH "arm_thumb" + #elif defined(__IAR_SYSTEMS_ICC__) && defined(__ICCARM__) + # define LZO_ARCH_ARM 1 +-# if defined(__CPU_MODE__) && ((__CPU_MODE__)+0 == 1) ++# if defined(__CPU_MODE__) && ((__CPU_MODE__-0) == 1) + # define LZO_ARCH_ARM_THUMB 1 + # define LZO_INFO_ARCH "arm_thumb" +-# elif defined(__CPU_MODE__) && ((__CPU_MODE__)+0 == 2) ++# elif defined(__CPU_MODE__) && ((__CPU_MODE__-0) == 2) + # define LZO_INFO_ARCH "arm" + # else + # define LZO_INFO_ARCH "arm" +@@ -806,53 +909,147 @@ + # error "FIXME - missing define for CPU architecture" + #endif + #if 1 && (LZO_ARCH_UNKNOWN) && (LZO_OS_WIN32) +-# error "FIXME - missing WIN32 define for CPU architecture" ++# error "FIXME - missing LZO_OS_WIN32 define for CPU architecture" + #endif + #if 1 && (LZO_ARCH_UNKNOWN) && (LZO_OS_WIN64) +-# error "FIXME - missing WIN64 define for CPU architecture" ++# error "FIXME - missing LZO_OS_WIN64 define for CPU architecture" + #endif + #if (LZO_OS_OS216 || LZO_OS_WIN16) + # define LZO_ARCH_I086PM 1 +-# define LZO_ARCH_IA16PM 1 + #elif 1 && (LZO_OS_DOS16 && defined(BLX286)) + # define LZO_ARCH_I086PM 1 +-# define LZO_ARCH_IA16PM 1 + #elif 1 && (LZO_OS_DOS16 && defined(DOSX286)) + # define LZO_ARCH_I086PM 1 +-# define LZO_ARCH_IA16PM 1 + #elif 1 && (LZO_OS_DOS16 && LZO_CC_BORLANDC && defined(__DPMI16__)) + # define LZO_ARCH_I086PM 1 +-# define LZO_ARCH_IA16PM 1 + #endif +-#if (LZO_ARCH_ARM_THUMB) && !(LZO_ARCH_ARM) +-# error "this should not happen" ++#if (LZO_ARCH_AMD64 && !LZO_ARCH_X64) ++# define LZO_ARCH_X64 1 ++#elif (!LZO_ARCH_AMD64 && LZO_ARCH_X64) && defined(__LZO_ARCH_OVERRIDE) ++# define LZO_ARCH_AMD64 1 + #endif +-#if (LZO_ARCH_I086PM) && !(LZO_ARCH_I086) +-# error "this should not happen" ++#if (LZO_ARCH_ARM64 && !LZO_ARCH_AARCH64) ++# define LZO_ARCH_AARCH64 1 ++#elif (!LZO_ARCH_ARM64 && LZO_ARCH_AARCH64) && defined(__LZO_ARCH_OVERRIDE) ++# define LZO_ARCH_ARM64 1 ++#endif ++#if (LZO_ARCH_I386 && !LZO_ARCH_X86) ++# define LZO_ARCH_X86 1 ++#elif (!LZO_ARCH_I386 && LZO_ARCH_X86) && defined(__LZO_ARCH_OVERRIDE) ++# define LZO_ARCH_I386 1 ++#endif ++#if (LZO_ARCH_AMD64 && !LZO_ARCH_X64) || (!LZO_ARCH_AMD64 && LZO_ARCH_X64) ++# error "unexpected configuration - check your compiler defines" ++#endif ++#if (LZO_ARCH_ARM64 && !LZO_ARCH_AARCH64) || (!LZO_ARCH_ARM64 && LZO_ARCH_AARCH64) ++# error "unexpected configuration - check your compiler defines" ++#endif ++#if (LZO_ARCH_I386 && !LZO_ARCH_X86) || (!LZO_ARCH_I386 && LZO_ARCH_X86) ++# error "unexpected configuration - check your compiler defines" ++#endif ++#if (LZO_ARCH_ARM_THUMB && !LZO_ARCH_ARM) ++# error "unexpected configuration - check your compiler defines" ++#endif ++#if (LZO_ARCH_ARM_THUMB1 && !LZO_ARCH_ARM_THUMB) ++# error "unexpected configuration - check your compiler defines" ++#endif ++#if (LZO_ARCH_ARM_THUMB2 && !LZO_ARCH_ARM_THUMB) ++# error "unexpected configuration - check your compiler defines" ++#endif ++#if (LZO_ARCH_ARM_THUMB1 && LZO_ARCH_ARM_THUMB2) ++# error "unexpected configuration - check your compiler defines" ++#endif ++#if (LZO_ARCH_I086PM && !LZO_ARCH_I086) ++# error "unexpected configuration - check your compiler defines" + #endif + #if (LZO_ARCH_I086) + # if (UINT_MAX != LZO_0xffffL) +-# error "this should not happen" ++# error "unexpected configuration - check your compiler defines" + # endif + # if (ULONG_MAX != LZO_0xffffffffL) +-# error "this should not happen" ++# error "unexpected configuration - check your compiler defines" + # endif + #endif + #if (LZO_ARCH_I386) + # if (UINT_MAX != LZO_0xffffL) && defined(__i386_int16__) +-# error "this should not happen" ++# error "unexpected configuration - check your compiler defines" + # endif + # if (UINT_MAX != LZO_0xffffffffL) && !defined(__i386_int16__) +-# error "this should not happen" ++# error "unexpected configuration - check your compiler defines" + # endif + # if (ULONG_MAX != LZO_0xffffffffL) +-# error "this should not happen" ++# error "unexpected configuration - check your compiler defines" + # endif + #endif +-#if !defined(__LZO_MM_OVERRIDE) ++#if (LZO_ARCH_AMD64 || LZO_ARCH_I386) ++# if !defined(LZO_TARGET_FEATURE_SSE2) ++# if defined(__SSE2__) ++# define LZO_TARGET_FEATURE_SSE2 1 ++# elif defined(_MSC_VER) && ((defined(_M_IX86_FP) && ((_M_IX86_FP)+0 >= 2)) || defined(_M_AMD64)) ++# define LZO_TARGET_FEATURE_SSE2 1 ++# endif ++# endif ++# if !defined(LZO_TARGET_FEATURE_SSSE3) ++# if (LZO_TARGET_FEATURE_SSE2) ++# if defined(__SSSE3__) ++# define LZO_TARGET_FEATURE_SSSE3 1 ++# elif defined(_MSC_VER) && defined(__AVX__) ++# define LZO_TARGET_FEATURE_SSSE3 1 ++# endif ++# endif ++# endif ++# if !defined(LZO_TARGET_FEATURE_SSE4_2) ++# if (LZO_TARGET_FEATURE_SSSE3) ++# if defined(__SSE4_2__) ++# define LZO_TARGET_FEATURE_SSE4_2 1 ++# endif ++# endif ++# endif ++# if !defined(LZO_TARGET_FEATURE_AVX) ++# if (LZO_TARGET_FEATURE_SSSE3) ++# if defined(__AVX__) ++# define LZO_TARGET_FEATURE_AVX 1 ++# endif ++# endif ++# endif ++# if !defined(LZO_TARGET_FEATURE_AVX2) ++# if (LZO_TARGET_FEATURE_AVX) ++# if defined(__AVX2__) ++# define LZO_TARGET_FEATURE_AVX2 1 ++# endif ++# endif ++# endif ++#endif ++#if (LZO_TARGET_FEATURE_SSSE3 && !(LZO_TARGET_FEATURE_SSE2)) ++# error "unexpected configuration - check your compiler defines" ++#endif ++#if (LZO_TARGET_FEATURE_SSE4_2 && !(LZO_TARGET_FEATURE_SSSE3)) ++# error "unexpected configuration - check your compiler defines" ++#endif ++#if (LZO_TARGET_FEATURE_AVX && !(LZO_TARGET_FEATURE_SSSE3)) ++# error "unexpected configuration - check your compiler defines" ++#endif ++#if (LZO_TARGET_FEATURE_AVX2 && !(LZO_TARGET_FEATURE_AVX)) ++# error "unexpected configuration - check your compiler defines" ++#endif ++#if (LZO_ARCH_ARM) ++# if !defined(LZO_TARGET_FEATURE_NEON) ++# if defined(__ARM_NEON__) ++# define LZO_TARGET_FEATURE_NEON 1 ++# endif ++# endif ++#elif (LZO_ARCH_ARM64) ++# if !defined(LZO_TARGET_FEATURE_NEON) ++# if 1 ++# define LZO_TARGET_FEATURE_NEON 1 ++# endif ++# endif ++#endif ++#if 0 ++#elif !defined(__LZO_MM_OVERRIDE) + #if (LZO_ARCH_I086) + #if (UINT_MAX != LZO_0xffffL) +-# error "this should not happen" ++# error "unexpected configuration - check your compiler defines" + #endif + #if defined(__TINY__) || defined(M_I86TM) || defined(_M_I86TM) + # define LZO_MM_TINY 1 +@@ -879,7 +1076,7 @@ + #elif (LZO_CC_ZORTECHC && defined(__VCM__)) + # define LZO_MM_LARGE 1 + #else +-# error "unknown memory model" ++# error "unknown LZO_ARCH_I086 memory model" + #endif + #if (LZO_OS_DOS16 || LZO_OS_OS216 || LZO_OS_WIN16) + #define LZO_HAVE_MM_HUGE_PTR 1 +@@ -902,10 +1099,10 @@ + #endif + #if (LZO_ARCH_I086PM) && !(LZO_HAVE_MM_HUGE_PTR) + # if (LZO_OS_DOS16) +-# error "this should not happen" ++# error "unexpected configuration - check your compiler defines" + # elif (LZO_CC_ZORTECHC) + # else +-# error "this should not happen" ++# error "unexpected configuration - check your compiler defines" + # endif + #endif + #ifdef __cplusplus +@@ -937,7 +1134,7 @@ extern "C" { + #endif + #elif (LZO_ARCH_C166) + #if !defined(__MODEL__) +-# error "FIXME - C166 __MODEL__" ++# error "FIXME - LZO_ARCH_C166 __MODEL__" + #elif ((__MODEL__) == 0) + # define LZO_MM_SMALL 1 + #elif ((__MODEL__) == 1) +@@ -951,11 +1148,11 @@ extern "C" { + #elif ((__MODEL__) == 5) + # define LZO_MM_XSMALL 1 + #else +-# error "FIXME - C166 __MODEL__" ++# error "FIXME - LZO_ARCH_C166 __MODEL__" + #endif + #elif (LZO_ARCH_MCS251) + #if !defined(__MODEL__) +-# error "FIXME - MCS251 __MODEL__" ++# error "FIXME - LZO_ARCH_MCS251 __MODEL__" + #elif ((__MODEL__) == 0) + # define LZO_MM_SMALL 1 + #elif ((__MODEL__) == 2) +@@ -967,11 +1164,11 @@ extern "C" { + #elif ((__MODEL__) == 5) + # define LZO_MM_XSMALL 1 + #else +-# error "FIXME - MCS251 __MODEL__" ++# error "FIXME - LZO_ARCH_MCS251 __MODEL__" + #endif + #elif (LZO_ARCH_MCS51) + #if !defined(__MODEL__) +-# error "FIXME - MCS51 __MODEL__" ++# error "FIXME - LZO_ARCH_MCS51 __MODEL__" + #elif ((__MODEL__) == 1) + # define LZO_MM_SMALL 1 + #elif ((__MODEL__) == 2) +@@ -983,7 +1180,7 @@ extern "C" { + #elif ((__MODEL__) == 5) + # define LZO_MM_XSMALL 1 + #else +-# error "FIXME - MCS51 __MODEL__" ++# error "FIXME - LZO_ARCH_MCS51 __MODEL__" + #endif + #elif (LZO_ARCH_CRAY_PVP) + # define LZO_MM_PVP 1 +@@ -1010,35 +1207,818 @@ extern "C" { + # error "unknown memory model" + #endif + #endif ++#if !defined(__lzo_gnuc_extension__) ++#if (LZO_CC_GNUC >= 0x020800ul) ++# define __lzo_gnuc_extension__ __extension__ ++#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) ++# define __lzo_gnuc_extension__ __extension__ ++#elif (LZO_CC_IBMC >= 600) ++# define __lzo_gnuc_extension__ __extension__ ++#else ++#endif ++#endif ++#if !defined(__lzo_gnuc_extension__) ++# define __lzo_gnuc_extension__ /*empty*/ ++#endif ++#if !defined(LZO_CFG_USE_NEW_STYLE_CASTS) && defined(__cplusplus) && 0 ++# if (LZO_CC_GNUC && (LZO_CC_GNUC < 0x020800ul)) ++# define LZO_CFG_USE_NEW_STYLE_CASTS 0 ++# elif (LZO_CC_INTELC && (__INTEL_COMPILER < 1200)) ++# define LZO_CFG_USE_NEW_STYLE_CASTS 0 ++# else ++# define LZO_CFG_USE_NEW_STYLE_CASTS 1 ++# endif ++#endif ++#if !defined(LZO_CFG_USE_NEW_STYLE_CASTS) ++# define LZO_CFG_USE_NEW_STYLE_CASTS 0 ++#endif ++#if !defined(__cplusplus) ++# if defined(LZO_CFG_USE_NEW_STYLE_CASTS) ++# undef LZO_CFG_USE_NEW_STYLE_CASTS ++# endif ++# define LZO_CFG_USE_NEW_STYLE_CASTS 0 ++#endif ++#if !defined(LZO_REINTERPRET_CAST) ++# if (LZO_CFG_USE_NEW_STYLE_CASTS) ++# define LZO_REINTERPRET_CAST(t,e) (reinterpret_cast (e)) ++# endif ++#endif ++#if !defined(LZO_REINTERPRET_CAST) ++# define LZO_REINTERPRET_CAST(t,e) ((t) (e)) ++#endif ++#if !defined(LZO_STATIC_CAST) ++# if (LZO_CFG_USE_NEW_STYLE_CASTS) ++# define LZO_STATIC_CAST(t,e) (static_cast (e)) ++# endif ++#endif ++#if !defined(LZO_STATIC_CAST) ++# define LZO_STATIC_CAST(t,e) ((t) (e)) ++#endif ++#if !defined(LZO_STATIC_CAST2) ++# define LZO_STATIC_CAST2(t1,t2,e) LZO_STATIC_CAST(t1, LZO_STATIC_CAST(t2, e)) ++#endif ++#if !defined(LZO_UNCONST_CAST) ++# if (LZO_CFG_USE_NEW_STYLE_CASTS) ++# define LZO_UNCONST_CAST(t,e) (const_cast (e)) ++# elif (LZO_HAVE_MM_HUGE_PTR) ++# define LZO_UNCONST_CAST(t,e) ((t) (e)) ++# elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE) ++# define LZO_UNCONST_CAST(t,e) ((t) ((void *) ((lzo_uintptr_t) ((const void *) (e))))) ++# endif ++#endif ++#if !defined(LZO_UNCONST_CAST) ++# define LZO_UNCONST_CAST(t,e) ((t) ((void *) ((const void *) (e)))) ++#endif ++#if !defined(LZO_UNCONST_VOLATILE_CAST) ++# if (LZO_CFG_USE_NEW_STYLE_CASTS) ++# define LZO_UNCONST_VOLATILE_CAST(t,e) (const_cast (e)) ++# elif (LZO_HAVE_MM_HUGE_PTR) ++# define LZO_UNCONST_VOLATILE_CAST(t,e) ((t) (e)) ++# elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE) ++# define LZO_UNCONST_VOLATILE_CAST(t,e) ((t) ((volatile void *) ((lzo_uintptr_t) ((volatile const void *) (e))))) ++# endif ++#endif ++#if !defined(LZO_UNCONST_VOLATILE_CAST) ++# define LZO_UNCONST_VOLATILE_CAST(t,e) ((t) ((volatile void *) ((volatile const void *) (e)))) ++#endif ++#if !defined(LZO_UNVOLATILE_CAST) ++# if (LZO_CFG_USE_NEW_STYLE_CASTS) ++# define LZO_UNVOLATILE_CAST(t,e) (const_cast (e)) ++# elif (LZO_HAVE_MM_HUGE_PTR) ++# define LZO_UNVOLATILE_CAST(t,e) ((t) (e)) ++# elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE) ++# define LZO_UNVOLATILE_CAST(t,e) ((t) ((void *) ((lzo_uintptr_t) ((volatile void *) (e))))) ++# endif ++#endif ++#if !defined(LZO_UNVOLATILE_CAST) ++# define LZO_UNVOLATILE_CAST(t,e) ((t) ((void *) ((volatile void *) (e)))) ++#endif ++#if !defined(LZO_UNVOLATILE_CONST_CAST) ++# if (LZO_CFG_USE_NEW_STYLE_CASTS) ++# define LZO_UNVOLATILE_CONST_CAST(t,e) (const_cast (e)) ++# elif (LZO_HAVE_MM_HUGE_PTR) ++# define LZO_UNVOLATILE_CONST_CAST(t,e) ((t) (e)) ++# elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE) ++# define LZO_UNVOLATILE_CONST_CAST(t,e) ((t) ((const void *) ((lzo_uintptr_t) ((volatile const void *) (e))))) ++# endif ++#endif ++#if !defined(LZO_UNVOLATILE_CONST_CAST) ++# define LZO_UNVOLATILE_CONST_CAST(t,e) ((t) ((const void *) ((volatile const void *) (e)))) ++#endif ++#if !defined(LZO_PCAST) ++# if (LZO_HAVE_MM_HUGE_PTR) ++# define LZO_PCAST(t,e) ((t) (e)) ++# endif ++#endif ++#if !defined(LZO_PCAST) ++# define LZO_PCAST(t,e) LZO_STATIC_CAST(t, LZO_STATIC_CAST(void *, e)) ++#endif ++#if !defined(LZO_CCAST) ++# if (LZO_HAVE_MM_HUGE_PTR) ++# define LZO_CCAST(t,e) ((t) (e)) ++# endif ++#endif ++#if !defined(LZO_CCAST) ++# define LZO_CCAST(t,e) LZO_STATIC_CAST(t, LZO_STATIC_CAST(const void *, e)) ++#endif ++#if !defined(LZO_ICONV) ++# define LZO_ICONV(t,e) LZO_STATIC_CAST(t, e) ++#endif ++#if !defined(LZO_ICAST) ++# define LZO_ICAST(t,e) LZO_STATIC_CAST(t, e) ++#endif ++#if !defined(LZO_ITRUNC) ++# define LZO_ITRUNC(t,e) LZO_STATIC_CAST(t, e) ++#endif ++#if !defined(__lzo_cte) ++# if (LZO_CC_MSC || LZO_CC_WATCOMC) ++# define __lzo_cte(e) ((void)0,(e)) ++# elif 1 ++# define __lzo_cte(e) ((void)0,(e)) ++# endif ++#endif ++#if !defined(__lzo_cte) ++# define __lzo_cte(e) (e) ++#endif ++#if !defined(LZO_BLOCK_BEGIN) ++# define LZO_BLOCK_BEGIN do { ++# define LZO_BLOCK_END } while __lzo_cte(0) ++#endif ++#if !defined(LZO_UNUSED) ++# if (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0600)) ++# define LZO_UNUSED(var) ((void) &var) ++# elif (LZO_CC_BORLANDC || LZO_CC_HIGHC || LZO_CC_NDPC || LZO_CC_PELLESC || LZO_CC_TURBOC) ++# define LZO_UNUSED(var) if (&var) ; else ++# elif (LZO_CC_CLANG && (LZO_CC_CLANG >= 0x030200ul)) ++# define LZO_UNUSED(var) ((void) &var) ++# elif (LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE) ++# define LZO_UNUSED(var) ((void) var) ++# elif (LZO_CC_MSC && (_MSC_VER < 900)) ++# define LZO_UNUSED(var) if (&var) ; else ++# elif (LZO_CC_KEILC) ++# define LZO_UNUSED(var) {LZO_EXTERN_C int lzo_unused__[1-2*!(sizeof(var)>0)];} ++# elif (LZO_CC_PACIFICC) ++# define LZO_UNUSED(var) ((void) sizeof(var)) ++# elif (LZO_CC_WATCOMC) && defined(__cplusplus) ++# define LZO_UNUSED(var) ((void) var) ++# else ++# define LZO_UNUSED(var) ((void) &var) ++# endif ++#endif ++#if !defined(LZO_UNUSED_FUNC) ++# if (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0600)) ++# define LZO_UNUSED_FUNC(func) ((void) func) ++# elif (LZO_CC_BORLANDC || LZO_CC_NDPC || LZO_CC_TURBOC) ++# define LZO_UNUSED_FUNC(func) if (func) ; else ++# elif (LZO_CC_CLANG || LZO_CC_LLVM) ++# define LZO_UNUSED_FUNC(func) ((void) &func) ++# elif (LZO_CC_MSC && (_MSC_VER < 900)) ++# define LZO_UNUSED_FUNC(func) if (func) ; else ++# elif (LZO_CC_MSC) ++# define LZO_UNUSED_FUNC(func) ((void) &func) ++# elif (LZO_CC_KEILC || LZO_CC_PELLESC) ++# define LZO_UNUSED_FUNC(func) {LZO_EXTERN_C int lzo_unused_func__[1-2*!(sizeof((int)func)>0)];} ++# else ++# define LZO_UNUSED_FUNC(func) ((void) func) ++# endif ++#endif ++#if !defined(LZO_UNUSED_LABEL) ++# if (LZO_CC_CLANG >= 0x020800ul) ++# define LZO_UNUSED_LABEL(l) (__lzo_gnuc_extension__ ((void) ((const void *) &&l))) ++# elif (LZO_CC_ARMCC || LZO_CC_CLANG || LZO_CC_INTELC || LZO_CC_WATCOMC) ++# define LZO_UNUSED_LABEL(l) if __lzo_cte(0) goto l ++# else ++# define LZO_UNUSED_LABEL(l) switch (0) case 1:goto l ++# endif ++#endif ++#if !defined(LZO_DEFINE_UNINITIALIZED_VAR) ++# if 0 ++# define LZO_DEFINE_UNINITIALIZED_VAR(type,var,init) type var ++# elif 0 && (LZO_CC_GNUC) ++# define LZO_DEFINE_UNINITIALIZED_VAR(type,var,init) type var = var ++# else ++# define LZO_DEFINE_UNINITIALIZED_VAR(type,var,init) type var = init ++# endif ++#endif ++#if !defined(__lzo_inline) ++#if (LZO_CC_TURBOC && (__TURBOC__ <= 0x0295)) ++#elif defined(__cplusplus) ++# define __lzo_inline inline ++#elif defined(__STDC_VERSION__) && (__STDC_VERSION__-0 >= 199901L) ++# define __lzo_inline inline ++#elif (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0550)) ++# define __lzo_inline __inline ++#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CILLY || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || LZO_CC_PGI) ++# define __lzo_inline __inline__ ++#elif (LZO_CC_DMC) ++# define __lzo_inline __inline ++#elif (LZO_CC_GHS) ++# define __lzo_inline __inline__ ++#elif (LZO_CC_IBMC >= 600) ++# define __lzo_inline __inline__ ++#elif (LZO_CC_INTELC) ++# define __lzo_inline __inline ++#elif (LZO_CC_MWERKS && (__MWERKS__ >= 0x2405)) ++# define __lzo_inline __inline ++#elif (LZO_CC_MSC && (_MSC_VER >= 900)) ++# define __lzo_inline __inline ++#elif (LZO_CC_SUNPROC >= 0x5100) ++# define __lzo_inline __inline__ ++#endif ++#endif ++#if defined(__lzo_inline) ++# ifndef __lzo_HAVE_inline ++# define __lzo_HAVE_inline 1 ++# endif ++#else ++# define __lzo_inline /*empty*/ ++#endif ++#if !defined(__lzo_forceinline) ++#if (LZO_CC_GNUC >= 0x030200ul) ++# define __lzo_forceinline __inline__ __attribute__((__always_inline__)) ++#elif (LZO_CC_IBMC >= 700) ++# define __lzo_forceinline __inline__ __attribute__((__always_inline__)) ++#elif (LZO_CC_INTELC_MSC && (__INTEL_COMPILER >= 450)) ++# define __lzo_forceinline __forceinline ++#elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 800)) ++# define __lzo_forceinline __inline__ __attribute__((__always_inline__)) ++#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) ++# define __lzo_forceinline __inline__ __attribute__((__always_inline__)) ++#elif (LZO_CC_MSC && (_MSC_VER >= 1200)) ++# define __lzo_forceinline __forceinline ++#elif (LZO_CC_PGI >= 0x0d0a00ul) ++# define __lzo_forceinline __inline__ __attribute__((__always_inline__)) ++#elif (LZO_CC_SUNPROC >= 0x5100) ++# define __lzo_forceinline __inline__ __attribute__((__always_inline__)) ++#endif ++#endif ++#if defined(__lzo_forceinline) ++# ifndef __lzo_HAVE_forceinline ++# define __lzo_HAVE_forceinline 1 ++# endif ++#else ++# define __lzo_forceinline __lzo_inline ++#endif ++#if !defined(__lzo_noinline) ++#if 1 && (LZO_ARCH_I386) && (LZO_CC_GNUC >= 0x040000ul) && (LZO_CC_GNUC < 0x040003ul) ++# define __lzo_noinline __attribute__((__noinline__,__used__)) ++#elif (LZO_CC_GNUC >= 0x030200ul) ++# define __lzo_noinline __attribute__((__noinline__)) ++#elif (LZO_CC_IBMC >= 700) ++# define __lzo_noinline __attribute__((__noinline__)) ++#elif (LZO_CC_INTELC_MSC && (__INTEL_COMPILER >= 600)) ++# define __lzo_noinline __declspec(noinline) ++#elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 800)) ++# define __lzo_noinline __attribute__((__noinline__)) ++#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) ++# define __lzo_noinline __attribute__((__noinline__)) ++#elif (LZO_CC_MSC && (_MSC_VER >= 1300)) ++# define __lzo_noinline __declspec(noinline) ++#elif (LZO_CC_MWERKS && (__MWERKS__ >= 0x3200) && (LZO_OS_WIN32 || LZO_OS_WIN64)) ++# if defined(__cplusplus) ++# else ++# define __lzo_noinline __declspec(noinline) ++# endif ++#elif (LZO_CC_PGI >= 0x0d0a00ul) ++# define __lzo_noinline __attribute__((__noinline__)) ++#elif (LZO_CC_SUNPROC >= 0x5100) ++# define __lzo_noinline __attribute__((__noinline__)) ++#endif ++#endif ++#if defined(__lzo_noinline) ++# ifndef __lzo_HAVE_noinline ++# define __lzo_HAVE_noinline 1 ++# endif ++#else ++# define __lzo_noinline /*empty*/ ++#endif ++#if (__lzo_HAVE_forceinline || __lzo_HAVE_noinline) && !(__lzo_HAVE_inline) ++# error "unexpected configuration - check your compiler defines" ++#endif ++#if !defined(__lzo_static_inline) ++#if (LZO_CC_IBMC) ++# define __lzo_static_inline __lzo_gnuc_extension__ static __lzo_inline ++#endif ++#endif ++#if !defined(__lzo_static_inline) ++# define __lzo_static_inline static __lzo_inline ++#endif ++#if !defined(__lzo_static_forceinline) ++#if (LZO_CC_IBMC) ++# define __lzo_static_forceinline __lzo_gnuc_extension__ static __lzo_forceinline ++#endif ++#endif ++#if !defined(__lzo_static_forceinline) ++# define __lzo_static_forceinline static __lzo_forceinline ++#endif ++#if !defined(__lzo_static_noinline) ++#if (LZO_CC_IBMC) ++# define __lzo_static_noinline __lzo_gnuc_extension__ static __lzo_noinline ++#endif ++#endif ++#if !defined(__lzo_static_noinline) ++# define __lzo_static_noinline static __lzo_noinline ++#endif ++#if !defined(__lzo_c99_extern_inline) ++#if defined(__GNUC_GNU_INLINE__) ++# define __lzo_c99_extern_inline __lzo_inline ++#elif defined(__GNUC_STDC_INLINE__) ++# define __lzo_c99_extern_inline extern __lzo_inline ++#elif defined(__STDC_VERSION__) && (__STDC_VERSION__-0 >= 199901L) ++# define __lzo_c99_extern_inline extern __lzo_inline ++#endif ++#if !defined(__lzo_c99_extern_inline) && (__lzo_HAVE_inline) ++# define __lzo_c99_extern_inline __lzo_inline ++#endif ++#endif ++#if defined(__lzo_c99_extern_inline) ++# ifndef __lzo_HAVE_c99_extern_inline ++# define __lzo_HAVE_c99_extern_inline 1 ++# endif ++#else ++# define __lzo_c99_extern_inline /*empty*/ ++#endif ++#if !defined(__lzo_may_alias) ++#if (LZO_CC_GNUC >= 0x030400ul) ++# define __lzo_may_alias __attribute__((__may_alias__)) ++#elif (LZO_CC_CLANG >= 0x020900ul) ++# define __lzo_may_alias __attribute__((__may_alias__)) ++#elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 1210)) && 0 ++# define __lzo_may_alias __attribute__((__may_alias__)) ++#elif (LZO_CC_PGI >= 0x0d0a00ul) && 0 ++# define __lzo_may_alias __attribute__((__may_alias__)) ++#endif ++#endif ++#if defined(__lzo_may_alias) ++# ifndef __lzo_HAVE_may_alias ++# define __lzo_HAVE_may_alias 1 ++# endif ++#else ++# define __lzo_may_alias /*empty*/ ++#endif ++#if !defined(__lzo_noreturn) ++#if (LZO_CC_GNUC >= 0x020700ul) ++# define __lzo_noreturn __attribute__((__noreturn__)) ++#elif (LZO_CC_IBMC >= 700) ++# define __lzo_noreturn __attribute__((__noreturn__)) ++#elif (LZO_CC_INTELC_MSC && (__INTEL_COMPILER >= 450)) ++# define __lzo_noreturn __declspec(noreturn) ++#elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 600)) ++# define __lzo_noreturn __attribute__((__noreturn__)) ++#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) ++# define __lzo_noreturn __attribute__((__noreturn__)) ++#elif (LZO_CC_MSC && (_MSC_VER >= 1200)) ++# define __lzo_noreturn __declspec(noreturn) ++#elif (LZO_CC_PGI >= 0x0d0a00ul) ++# define __lzo_noreturn __attribute__((__noreturn__)) ++#endif ++#endif ++#if defined(__lzo_noreturn) ++# ifndef __lzo_HAVE_noreturn ++# define __lzo_HAVE_noreturn 1 ++# endif ++#else ++# define __lzo_noreturn /*empty*/ ++#endif ++#if !defined(__lzo_nothrow) ++#if (LZO_CC_GNUC >= 0x030300ul) ++# define __lzo_nothrow __attribute__((__nothrow__)) ++#elif (LZO_CC_INTELC_MSC && (__INTEL_COMPILER >= 450)) && defined(__cplusplus) ++# define __lzo_nothrow __declspec(nothrow) ++#elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 900)) ++# define __lzo_nothrow __attribute__((__nothrow__)) ++#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) ++# define __lzo_nothrow __attribute__((__nothrow__)) ++#elif (LZO_CC_MSC && (_MSC_VER >= 1200)) && defined(__cplusplus) ++# define __lzo_nothrow __declspec(nothrow) ++#endif ++#endif ++#if defined(__lzo_nothrow) ++# ifndef __lzo_HAVE_nothrow ++# define __lzo_HAVE_nothrow 1 ++# endif ++#else ++# define __lzo_nothrow /*empty*/ ++#endif ++#if !defined(__lzo_restrict) ++#if (LZO_CC_GNUC >= 0x030400ul) ++# define __lzo_restrict __restrict__ ++#elif (LZO_CC_IBMC >= 800) && !defined(__cplusplus) ++# define __lzo_restrict __restrict__ ++#elif (LZO_CC_IBMC >= 1210) ++# define __lzo_restrict __restrict__ ++#elif (LZO_CC_INTELC_MSC && (__INTEL_COMPILER >= 600)) ++#elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 600)) ++# define __lzo_restrict __restrict__ ++#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM) ++# define __lzo_restrict __restrict__ ++#elif (LZO_CC_MSC && (_MSC_VER >= 1400)) ++# define __lzo_restrict __restrict ++#elif (LZO_CC_PGI >= 0x0d0a00ul) ++# define __lzo_restrict __restrict__ ++#endif ++#endif ++#if defined(__lzo_restrict) ++# ifndef __lzo_HAVE_restrict ++# define __lzo_HAVE_restrict 1 ++# endif ++#else ++# define __lzo_restrict /*empty*/ ++#endif ++#if !defined(__lzo_alignof) ++#if (LZO_CC_ARMCC || LZO_CC_CILLY || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || LZO_CC_PGI) ++# define __lzo_alignof(e) __alignof__(e) ++#elif (LZO_CC_GHS) && !defined(__cplusplus) ++# define __lzo_alignof(e) __alignof__(e) ++#elif (LZO_CC_IBMC >= 600) ++# define __lzo_alignof(e) (__lzo_gnuc_extension__ __alignof__(e)) ++#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 700)) ++# define __lzo_alignof(e) __alignof__(e) ++#elif (LZO_CC_MSC && (_MSC_VER >= 1300)) ++# define __lzo_alignof(e) __alignof(e) ++#elif (LZO_CC_SUNPROC >= 0x5100) ++# define __lzo_alignof(e) __alignof__(e) ++#endif ++#endif ++#if defined(__lzo_alignof) ++# ifndef __lzo_HAVE_alignof ++# define __lzo_HAVE_alignof 1 ++# endif ++#endif ++#if !defined(__lzo_struct_packed) ++#if (LZO_CC_CLANG && (LZO_CC_CLANG < 0x020800ul)) && defined(__cplusplus) ++#elif (LZO_CC_GNUC && (LZO_CC_GNUC < 0x020700ul)) ++#elif (LZO_CC_GNUC && (LZO_CC_GNUC < 0x020800ul)) && defined(__cplusplus) ++#elif (LZO_CC_PCC && (LZO_CC_PCC < 0x010100ul)) ++#elif (LZO_CC_SUNPROC && (LZO_CC_SUNPROC < 0x5110)) && !defined(__cplusplus) ++#elif (LZO_CC_GNUC >= 0x030400ul) && !(LZO_CC_PCC_GNUC) && (LZO_ARCH_AMD64 || LZO_ARCH_I386) ++# define __lzo_struct_packed(s) struct s { ++# define __lzo_struct_packed_end() } __attribute__((__gcc_struct__,__packed__)); ++# define __lzo_struct_packed_ma_end() } __lzo_may_alias __attribute__((__gcc_struct__,__packed__)); ++#elif (LZO_CC_ARMCC || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_INTELC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || (LZO_CC_PGI >= 0x0d0a00ul) || (LZO_CC_SUNPROC >= 0x5100)) ++# define __lzo_struct_packed(s) struct s { ++# define __lzo_struct_packed_end() } __attribute__((__packed__)); ++# define __lzo_struct_packed_ma_end() } __lzo_may_alias __attribute__((__packed__)); ++#elif (LZO_CC_IBMC >= 700) ++# define __lzo_struct_packed(s) __lzo_gnuc_extension__ struct s { ++# define __lzo_struct_packed_end() } __attribute__((__packed__)); ++# define __lzo_struct_packed_ma_end() } __lzo_may_alias __attribute__((__packed__)); ++#elif (LZO_CC_INTELC_MSC) || (LZO_CC_MSC && (_MSC_VER >= 1300)) ++# define __lzo_struct_packed(s) __pragma(pack(push,1)) struct s { ++# define __lzo_struct_packed_end() } __pragma(pack(pop)); ++#elif (LZO_CC_WATCOMC && (__WATCOMC__ >= 900)) ++# define __lzo_struct_packed(s) _Packed struct s { ++# define __lzo_struct_packed_end() }; ++#endif ++#endif ++#if defined(__lzo_struct_packed) && !defined(__lzo_struct_packed_ma) ++# define __lzo_struct_packed_ma(s) __lzo_struct_packed(s) ++#endif ++#if defined(__lzo_struct_packed_end) && !defined(__lzo_struct_packed_ma_end) ++# define __lzo_struct_packed_ma_end() __lzo_struct_packed_end() ++#endif ++#if !defined(__lzo_byte_struct) ++#if defined(__lzo_struct_packed) ++# define __lzo_byte_struct(s,n) __lzo_struct_packed(s) unsigned char a[n]; __lzo_struct_packed_end() ++# define __lzo_byte_struct_ma(s,n) __lzo_struct_packed_ma(s) unsigned char a[n]; __lzo_struct_packed_ma_end() ++#elif (LZO_CC_CILLY || LZO_CC_CLANG || LZO_CC_PGI || (LZO_CC_SUNPROC >= 0x5100)) ++# define __lzo_byte_struct(s,n) struct s { unsigned char a[n]; } __attribute__((__packed__)); ++# define __lzo_byte_struct_ma(s,n) struct s { unsigned char a[n]; } __lzo_may_alias __attribute__((__packed__)); ++#endif ++#endif ++#if defined(__lzo_byte_struct) && !defined(__lzo_byte_struct_ma) ++# define __lzo_byte_struct_ma(s,n) __lzo_byte_struct(s,n) ++#endif ++#if !defined(__lzo_struct_align16) && (__lzo_HAVE_alignof) ++#if (LZO_CC_GNUC && (LZO_CC_GNUC < 0x030000ul)) ++#elif (LZO_CC_CLANG && (LZO_CC_CLANG < 0x020800ul)) && defined(__cplusplus) ++#elif (LZO_CC_CILLY || LZO_CC_PCC) ++#elif (LZO_CC_INTELC_MSC) || (LZO_CC_MSC && (_MSC_VER >= 1300)) ++# define __lzo_struct_align16(s) struct __declspec(align(16)) s { ++# define __lzo_struct_align16_end() }; ++# define __lzo_struct_align32(s) struct __declspec(align(32)) s { ++# define __lzo_struct_align32_end() }; ++# define __lzo_struct_align64(s) struct __declspec(align(64)) s { ++# define __lzo_struct_align64_end() }; ++#elif (LZO_CC_ARMCC || LZO_CC_CLANG || LZO_CC_GNUC || (LZO_CC_IBMC >= 700) || LZO_CC_INTELC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE) ++# define __lzo_struct_align16(s) struct s { ++# define __lzo_struct_align16_end() } __attribute__((__aligned__(16))); ++# define __lzo_struct_align32(s) struct s { ++# define __lzo_struct_align32_end() } __attribute__((__aligned__(32))); ++# define __lzo_struct_align64(s) struct s { ++# define __lzo_struct_align64_end() } __attribute__((__aligned__(64))); ++#endif ++#endif ++#if !defined(__lzo_union_um) ++#if (LZO_CC_CLANG && (LZO_CC_CLANG < 0x020800ul)) && defined(__cplusplus) ++#elif (LZO_CC_GNUC && (LZO_CC_GNUC < 0x020700ul)) ++#elif (LZO_CC_GNUC && (LZO_CC_GNUC < 0x020800ul)) && defined(__cplusplus) ++#elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER < 810)) ++#elif (LZO_CC_PCC && (LZO_CC_PCC < 0x010100ul)) ++#elif (LZO_CC_SUNPROC && (LZO_CC_SUNPROC < 0x5110)) && !defined(__cplusplus) ++#elif (LZO_CC_ARMCC || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_INTELC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || (LZO_CC_PGI >= 0x0d0a00ul) || (LZO_CC_SUNPROC >= 0x5100)) ++# define __lzo_union_am(s) union s { ++# define __lzo_union_am_end() } __lzo_may_alias; ++# define __lzo_union_um(s) union s { ++# define __lzo_union_um_end() } __lzo_may_alias __attribute__((__packed__)); ++#elif (LZO_CC_IBMC >= 700) ++# define __lzo_union_am(s) __lzo_gnuc_extension__ union s { ++# define __lzo_union_am_end() } __lzo_may_alias; ++# define __lzo_union_um(s) __lzo_gnuc_extension__ union s { ++# define __lzo_union_um_end() } __lzo_may_alias __attribute__((__packed__)); ++#elif (LZO_CC_INTELC_MSC) || (LZO_CC_MSC && (_MSC_VER >= 1300)) ++# define __lzo_union_um(s) __pragma(pack(push,1)) union s { ++# define __lzo_union_um_end() } __pragma(pack(pop)); ++#elif (LZO_CC_WATCOMC && (__WATCOMC__ >= 900)) ++# define __lzo_union_um(s) _Packed union s { ++# define __lzo_union_um_end() }; ++#endif ++#endif ++#if !defined(__lzo_union_am) ++# define __lzo_union_am(s) union s { ++# define __lzo_union_am_end() }; ++#endif ++#if !defined(__lzo_constructor) ++#if (LZO_CC_GNUC >= 0x030400ul) ++# define __lzo_constructor __attribute__((__constructor__,__used__)) ++#elif (LZO_CC_GNUC >= 0x020700ul) ++# define __lzo_constructor __attribute__((__constructor__)) ++#elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 800)) ++# define __lzo_constructor __attribute__((__constructor__,__used__)) ++#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) ++# define __lzo_constructor __attribute__((__constructor__)) ++#endif ++#endif ++#if defined(__lzo_constructor) ++# ifndef __lzo_HAVE_constructor ++# define __lzo_HAVE_constructor 1 ++# endif ++#endif ++#if !defined(__lzo_destructor) ++#if (LZO_CC_GNUC >= 0x030400ul) ++# define __lzo_destructor __attribute__((__destructor__,__used__)) ++#elif (LZO_CC_GNUC >= 0x020700ul) ++# define __lzo_destructor __attribute__((__destructor__)) ++#elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 800)) ++# define __lzo_destructor __attribute__((__destructor__,__used__)) ++#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) ++# define __lzo_destructor __attribute__((__destructor__)) ++#endif ++#endif ++#if defined(__lzo_destructor) ++# ifndef __lzo_HAVE_destructor ++# define __lzo_HAVE_destructor 1 ++# endif ++#endif ++#if (__lzo_HAVE_destructor) && !(__lzo_HAVE_constructor) ++# error "unexpected configuration - check your compiler defines" ++#endif ++#if !defined(__lzo_likely) && !defined(__lzo_unlikely) ++#if (LZO_CC_GNUC >= 0x030200ul) ++# define __lzo_likely(e) (__builtin_expect(!!(e),1)) ++# define __lzo_unlikely(e) (__builtin_expect(!!(e),0)) ++#elif (LZO_CC_IBMC >= 1010) ++# define __lzo_likely(e) (__builtin_expect(!!(e),1)) ++# define __lzo_unlikely(e) (__builtin_expect(!!(e),0)) ++#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 800)) ++# define __lzo_likely(e) (__builtin_expect(!!(e),1)) ++# define __lzo_unlikely(e) (__builtin_expect(!!(e),0)) ++#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) ++# define __lzo_likely(e) (__builtin_expect(!!(e),1)) ++# define __lzo_unlikely(e) (__builtin_expect(!!(e),0)) ++#endif ++#endif ++#if defined(__lzo_likely) ++# ifndef __lzo_HAVE_likely ++# define __lzo_HAVE_likely 1 ++# endif ++#else ++# define __lzo_likely(e) (e) ++#endif ++#if defined(__lzo_unlikely) ++# ifndef __lzo_HAVE_unlikely ++# define __lzo_HAVE_unlikely 1 ++# endif ++#else ++# define __lzo_unlikely(e) (e) ++#endif ++#if !defined(__lzo_static_unused_void_func) ++# if 1 && (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || (LZO_CC_GNUC >= 0x020700ul) || LZO_CC_INTELC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || LZO_CC_PGI) ++# define __lzo_static_unused_void_func(f) static void __attribute__((__unused__)) f(void) ++# else ++# define __lzo_static_unused_void_func(f) static __lzo_inline void f(void) ++# endif ++#endif ++#if !defined(__lzo_loop_forever) ++# if (LZO_CC_IBMC) ++# define __lzo_loop_forever() LZO_BLOCK_BEGIN for (;;) { ; } LZO_BLOCK_END ++# else ++# define __lzo_loop_forever() do { ; } while __lzo_cte(1) ++# endif ++#endif ++#if !defined(__lzo_unreachable) ++#if (LZO_CC_CLANG && (LZO_CC_CLANG >= 0x020800ul)) ++# define __lzo_unreachable() __builtin_unreachable(); ++#elif (LZO_CC_GNUC >= 0x040500ul) ++# define __lzo_unreachable() __builtin_unreachable(); ++#elif (LZO_CC_INTELC_GNUC && (__INTEL_COMPILER >= 1300)) && 1 ++# define __lzo_unreachable() __builtin_unreachable(); ++#endif ++#endif ++#if defined(__lzo_unreachable) ++# ifndef __lzo_HAVE_unreachable ++# define __lzo_HAVE_unreachable 1 ++# endif ++#else ++# if 0 ++# define __lzo_unreachable() ((void)0); ++# else ++# define __lzo_unreachable() __lzo_loop_forever(); ++# endif ++#endif ++#ifndef __LZO_CTA_NAME ++#if (LZO_CFG_USE_COUNTER) ++# define __LZO_CTA_NAME(a) LZO_PP_ECONCAT2(a,__COUNTER__) ++#else ++# define __LZO_CTA_NAME(a) LZO_PP_ECONCAT2(a,__LINE__) ++#endif ++#endif ++#if !defined(LZO_COMPILE_TIME_ASSERT_HEADER) ++# if (LZO_CC_AZTECC || LZO_CC_ZORTECHC) ++# define LZO_COMPILE_TIME_ASSERT_HEADER(e) LZO_EXTERN_C_BEGIN extern int __LZO_CTA_NAME(lzo_cta__)[1-!(e)]; LZO_EXTERN_C_END ++# elif (LZO_CC_DMC || LZO_CC_SYMANTECC) ++# define LZO_COMPILE_TIME_ASSERT_HEADER(e) LZO_EXTERN_C_BEGIN extern int __LZO_CTA_NAME(lzo_cta__)[1u-2*!(e)]; LZO_EXTERN_C_END ++# elif (LZO_CC_TURBOC && (__TURBOC__ == 0x0295)) ++# define LZO_COMPILE_TIME_ASSERT_HEADER(e) LZO_EXTERN_C_BEGIN extern int __LZO_CTA_NAME(lzo_cta__)[1-!(e)]; LZO_EXTERN_C_END ++# elif (LZO_CC_CLANG && (LZO_CC_CLANG < 0x020900ul)) && defined(__cplusplus) ++# define LZO_COMPILE_TIME_ASSERT_HEADER(e) LZO_EXTERN_C_BEGIN int __LZO_CTA_NAME(lzo_cta_f__)(int [1-2*!(e)]); LZO_EXTERN_C_END ++# elif (LZO_CC_GNUC) && defined(__CHECKER__) && defined(__SPARSE_CHECKER__) ++# define LZO_COMPILE_TIME_ASSERT_HEADER(e) LZO_EXTERN_C_BEGIN enum {__LZO_CTA_NAME(lzo_cta_e__)=1/!!(e)} __attribute__((__unused__)); LZO_EXTERN_C_END ++# else ++# define LZO_COMPILE_TIME_ASSERT_HEADER(e) LZO_EXTERN_C_BEGIN extern int __LZO_CTA_NAME(lzo_cta__)[1-2*!(e)]; LZO_EXTERN_C_END ++# endif ++#endif ++#if !defined(LZO_COMPILE_TIME_ASSERT) ++# if (LZO_CC_AZTECC) ++# define LZO_COMPILE_TIME_ASSERT(e) {typedef int __LZO_CTA_NAME(lzo_cta_t__)[1-!(e)];} ++# elif (LZO_CC_DMC || LZO_CC_PACIFICC || LZO_CC_SYMANTECC || LZO_CC_ZORTECHC) ++# define LZO_COMPILE_TIME_ASSERT(e) switch(0) case 1:case !(e):break; ++# elif (LZO_CC_GNUC) && defined(__CHECKER__) && defined(__SPARSE_CHECKER__) ++# define LZO_COMPILE_TIME_ASSERT(e) {(void) (0/!!(e));} ++# elif (LZO_CC_GNUC >= 0x040700ul) && (LZO_CFG_USE_COUNTER) && defined(__cplusplus) ++# define LZO_COMPILE_TIME_ASSERT(e) {enum {__LZO_CTA_NAME(lzo_cta_e__)=1/!!(e)} __attribute__((__unused__));} ++# elif (LZO_CC_GNUC >= 0x040700ul) ++# define LZO_COMPILE_TIME_ASSERT(e) {typedef int __LZO_CTA_NAME(lzo_cta_t__)[1-2*!(e)] __attribute__((__unused__));} ++# elif (LZO_CC_MSC && (_MSC_VER < 900)) ++# define LZO_COMPILE_TIME_ASSERT(e) switch(0) case 1:case !(e):break; ++# elif (LZO_CC_TURBOC && (__TURBOC__ == 0x0295)) ++# define LZO_COMPILE_TIME_ASSERT(e) switch(0) case 1:case !(e):break; ++# else ++# define LZO_COMPILE_TIME_ASSERT(e) {typedef int __LZO_CTA_NAME(lzo_cta_t__)[1-2*!(e)];} ++# endif ++#endif ++LZO_COMPILE_TIME_ASSERT_HEADER(1 == 1) ++#if defined(__cplusplus) ++extern "C" { LZO_COMPILE_TIME_ASSERT_HEADER(2 == 2) } ++#endif ++LZO_COMPILE_TIME_ASSERT_HEADER(3 == 3) ++#if (LZO_ARCH_I086 || LZO_ARCH_I386) && (LZO_OS_DOS16 || LZO_OS_DOS32 || LZO_OS_OS2 || LZO_OS_OS216 || LZO_OS_WIN16 || LZO_OS_WIN32 || LZO_OS_WIN64) ++# if (LZO_CC_GNUC || LZO_CC_HIGHC || LZO_CC_NDPC || LZO_CC_PACIFICC) ++# elif (LZO_CC_DMC || LZO_CC_SYMANTECC || LZO_CC_ZORTECHC) ++# define __lzo_cdecl __cdecl ++# define __lzo_cdecl_atexit /*empty*/ ++# define __lzo_cdecl_main __cdecl ++# if (LZO_OS_OS2 && (LZO_CC_DMC || LZO_CC_SYMANTECC)) ++# define __lzo_cdecl_qsort __pascal ++# elif (LZO_OS_OS2 && (LZO_CC_ZORTECHC)) ++# define __lzo_cdecl_qsort _stdcall ++# else ++# define __lzo_cdecl_qsort __cdecl ++# endif ++# elif (LZO_CC_WATCOMC) ++# define __lzo_cdecl __cdecl ++# else ++# define __lzo_cdecl __cdecl ++# define __lzo_cdecl_atexit __cdecl ++# define __lzo_cdecl_main __cdecl ++# define __lzo_cdecl_qsort __cdecl ++# endif ++# if (LZO_CC_GNUC || LZO_CC_HIGHC || LZO_CC_NDPC || LZO_CC_PACIFICC || LZO_CC_WATCOMC) ++# elif (LZO_OS_OS2 && (LZO_CC_DMC || LZO_CC_SYMANTECC)) ++# define __lzo_cdecl_sighandler __pascal ++# elif (LZO_OS_OS2 && (LZO_CC_ZORTECHC)) ++# define __lzo_cdecl_sighandler _stdcall ++# elif (LZO_CC_MSC && (_MSC_VER >= 1400)) && defined(_M_CEE_PURE) ++# define __lzo_cdecl_sighandler __clrcall ++# elif (LZO_CC_MSC && (_MSC_VER >= 600 && _MSC_VER < 700)) ++# if defined(_DLL) ++# define __lzo_cdecl_sighandler _far _cdecl _loadds ++# elif defined(_MT) ++# define __lzo_cdecl_sighandler _far _cdecl ++# else ++# define __lzo_cdecl_sighandler _cdecl ++# endif ++# else ++# define __lzo_cdecl_sighandler __cdecl ++# endif ++#elif (LZO_ARCH_I386) && (LZO_CC_WATCOMC) ++# define __lzo_cdecl __cdecl ++#elif (LZO_ARCH_M68K && LZO_OS_TOS && (LZO_CC_PUREC || LZO_CC_TURBOC)) ++# define __lzo_cdecl cdecl ++#endif ++#if !defined(__lzo_cdecl) ++# define __lzo_cdecl /*empty*/ ++#endif ++#if !defined(__lzo_cdecl_atexit) ++# define __lzo_cdecl_atexit /*empty*/ ++#endif ++#if !defined(__lzo_cdecl_main) ++# define __lzo_cdecl_main /*empty*/ ++#endif ++#if !defined(__lzo_cdecl_qsort) ++# define __lzo_cdecl_qsort /*empty*/ ++#endif ++#if !defined(__lzo_cdecl_sighandler) ++# define __lzo_cdecl_sighandler /*empty*/ ++#endif ++#if !defined(__lzo_cdecl_va) ++# define __lzo_cdecl_va __lzo_cdecl ++#endif ++#if !(LZO_CFG_NO_WINDOWS_H) ++#if !defined(LZO_HAVE_WINDOWS_H) ++#if (LZO_OS_CYGWIN || (LZO_OS_EMX && defined(__RSXNT__)) || LZO_OS_WIN32 || LZO_OS_WIN64) ++# if (LZO_CC_WATCOMC && (__WATCOMC__ < 1000)) ++# elif (LZO_OS_WIN32 && LZO_CC_GNUC) && defined(__PW32__) ++# elif ((LZO_OS_CYGWIN || defined(__MINGW32__)) && (LZO_CC_GNUC && (LZO_CC_GNUC < 0x025f00ul))) ++# else ++# define LZO_HAVE_WINDOWS_H 1 ++# endif ++#endif ++#endif ++#endif ++#ifndef LZO_SIZEOF_SHORT + #if defined(SIZEOF_SHORT) + # define LZO_SIZEOF_SHORT (SIZEOF_SHORT) ++#elif defined(__SIZEOF_SHORT__) ++# define LZO_SIZEOF_SHORT (__SIZEOF_SHORT__) + #endif ++#endif ++#ifndef LZO_SIZEOF_INT + #if defined(SIZEOF_INT) + # define LZO_SIZEOF_INT (SIZEOF_INT) ++#elif defined(__SIZEOF_INT__) ++# define LZO_SIZEOF_INT (__SIZEOF_INT__) + #endif ++#endif ++#ifndef LZO_SIZEOF_LONG + #if defined(SIZEOF_LONG) + # define LZO_SIZEOF_LONG (SIZEOF_LONG) ++#elif defined(__SIZEOF_LONG__) ++# define LZO_SIZEOF_LONG (__SIZEOF_LONG__) + #endif ++#endif ++#ifndef LZO_SIZEOF_LONG_LONG + #if defined(SIZEOF_LONG_LONG) + # define LZO_SIZEOF_LONG_LONG (SIZEOF_LONG_LONG) ++#elif defined(__SIZEOF_LONG_LONG__) ++# define LZO_SIZEOF_LONG_LONG (__SIZEOF_LONG_LONG__) + #endif ++#endif ++#ifndef LZO_SIZEOF___INT16 + #if defined(SIZEOF___INT16) + # define LZO_SIZEOF___INT16 (SIZEOF___INT16) + #endif ++#endif ++#ifndef LZO_SIZEOF___INT32 + #if defined(SIZEOF___INT32) + # define LZO_SIZEOF___INT32 (SIZEOF___INT32) + #endif ++#endif ++#ifndef LZO_SIZEOF___INT64 + #if defined(SIZEOF___INT64) + # define LZO_SIZEOF___INT64 (SIZEOF___INT64) + #endif ++#endif ++#ifndef LZO_SIZEOF_VOID_P + #if defined(SIZEOF_VOID_P) + # define LZO_SIZEOF_VOID_P (SIZEOF_VOID_P) ++#elif defined(__SIZEOF_POINTER__) ++# define LZO_SIZEOF_VOID_P (__SIZEOF_POINTER__) + #endif ++#endif ++#ifndef LZO_SIZEOF_SIZE_T + #if defined(SIZEOF_SIZE_T) + # define LZO_SIZEOF_SIZE_T (SIZEOF_SIZE_T) ++#elif defined(__SIZEOF_SIZE_T__) ++# define LZO_SIZEOF_SIZE_T (__SIZEOF_SIZE_T__) + #endif ++#endif ++#ifndef LZO_SIZEOF_PTRDIFF_T + #if defined(SIZEOF_PTRDIFF_T) + # define LZO_SIZEOF_PTRDIFF_T (SIZEOF_PTRDIFF_T) ++#elif defined(__SIZEOF_PTRDIFF_T__) ++# define LZO_SIZEOF_PTRDIFF_T (__SIZEOF_PTRDIFF_T__) ++#endif + #endif + #define __LZO_LSR(x,b) (((x)+0ul) >> (b)) + #if !defined(LZO_SIZEOF_SHORT) +@@ -1060,6 +2040,7 @@ extern "C" { + # error "LZO_SIZEOF_SHORT" + # endif + #endif ++LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_SHORT == sizeof(short)) + #if !defined(LZO_SIZEOF_INT) + # if (LZO_ARCH_CRAY_PVP) + # define LZO_SIZEOF_INT 8 +@@ -1081,6 +2062,7 @@ extern "C" { + # error "LZO_SIZEOF_INT" + # endif + #endif ++LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_INT == sizeof(int)) + #if !defined(LZO_SIZEOF_LONG) + # if (ULONG_MAX == LZO_0xffffffffL) + # define LZO_SIZEOF_LONG 4 +@@ -1090,6 +2072,8 @@ extern "C" { + # define LZO_SIZEOF_LONG 2 + # elif (__LZO_LSR(ULONG_MAX,31) == 1) + # define LZO_SIZEOF_LONG 4 ++# elif (__LZO_LSR(ULONG_MAX,39) == 1) ++# define LZO_SIZEOF_LONG 5 + # elif (__LZO_LSR(ULONG_MAX,63) == 1) + # define LZO_SIZEOF_LONG 8 + # elif (__LZO_LSR(ULONG_MAX,127) == 1) +@@ -1098,11 +2082,12 @@ extern "C" { + # error "LZO_SIZEOF_LONG" + # endif + #endif ++LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_LONG == sizeof(long)) + #if !defined(LZO_SIZEOF_LONG_LONG) && !defined(LZO_SIZEOF___INT64) + #if (LZO_SIZEOF_LONG > 0 && LZO_SIZEOF_LONG < 8) + # if defined(__LONG_MAX__) && defined(__LONG_LONG_MAX__) + # if (LZO_CC_GNUC >= 0x030300ul) +-# if ((__LONG_MAX__)+0 == (__LONG_LONG_MAX__)+0) ++# if ((__LONG_MAX__-0) == (__LONG_LONG_MAX__-0)) + # define LZO_SIZEOF_LONG_LONG LZO_SIZEOF_LONG + # elif (__LZO_LSR(__LONG_LONG_MAX__,30) == 1) + # define LZO_SIZEOF_LONG_LONG 4 +@@ -1116,7 +2101,7 @@ extern "C" { + #if (LZO_ARCH_I086 && LZO_CC_DMC) + #elif (LZO_CC_CILLY) && defined(__GNUC__) + # define LZO_SIZEOF_LONG_LONG 8 +-#elif (LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE) ++#elif (LZO_CC_ARMCC_GNUC || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE) + # define LZO_SIZEOF_LONG_LONG 8 + #elif ((LZO_OS_WIN32 || LZO_OS_WIN64 || defined(_WIN32)) && LZO_CC_MSC && (_MSC_VER >= 1400)) + # define LZO_SIZEOF_LONG_LONG 8 +@@ -1138,11 +2123,13 @@ extern "C" { + # define LZO_SIZEOF___INT64 8 + #elif (LZO_ARCH_I386 && (LZO_CC_WATCOMC && (__WATCOMC__ >= 1100))) + # define LZO_SIZEOF___INT64 8 +-#elif (LZO_CC_WATCOMC && defined(_INTEGRAL_MAX_BITS) && (_INTEGRAL_MAX_BITS == 64)) ++#elif (LZO_CC_GHS && defined(__LLONG_BIT) && ((__LLONG_BIT-0) == 64)) ++# define LZO_SIZEOF_LONG_LONG 8 ++#elif (LZO_CC_WATCOMC && defined(_INTEGRAL_MAX_BITS) && ((_INTEGRAL_MAX_BITS-0) == 64)) + # define LZO_SIZEOF___INT64 8 + #elif (LZO_OS_OS400 || defined(__OS400__)) && defined(__LLP64_IFC__) + # define LZO_SIZEOF_LONG_LONG 8 +-#elif (defined(__vms) || defined(__VMS)) && (__INITIAL_POINTER_SIZE+0 == 64) ++#elif (defined(__vms) || defined(__VMS)) && ((__INITIAL_POINTER_SIZE-0) == 64) + # define LZO_SIZEOF_LONG_LONG 8 + #elif (LZO_CC_SDCC) && (LZO_SIZEOF_INT == 2) + #elif 1 && defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) +@@ -1155,87 +2142,127 @@ extern "C" { + # undef LZO_SIZEOF_LONG_LONG + # endif + #endif +-#if (LZO_CFG_NO_LONG_LONG) || defined(__NO_LONG_LONG) ++#if (LZO_CFG_NO_LONG_LONG) ++# undef LZO_SIZEOF_LONG_LONG ++#elif defined(__NO_LONG_LONG) ++# undef LZO_SIZEOF_LONG_LONG ++#elif defined(_NO_LONGLONG) + # undef LZO_SIZEOF_LONG_LONG + #endif +-#if !defined(LZO_SIZEOF_VOID_P) +-#if (LZO_ARCH_I086) +-# define __LZO_WORDSIZE 2 +-# if (LZO_MM_TINY || LZO_MM_SMALL || LZO_MM_MEDIUM) +-# define LZO_SIZEOF_VOID_P 2 +-# elif (LZO_MM_COMPACT || LZO_MM_LARGE || LZO_MM_HUGE) +-# define LZO_SIZEOF_VOID_P 4 ++#if !defined(LZO_WORDSIZE) ++#if (LZO_ARCH_ALPHA) ++# define LZO_WORDSIZE 8 ++#elif (LZO_ARCH_AMD64) ++# define LZO_WORDSIZE 8 ++#elif (LZO_ARCH_AVR) ++# define LZO_WORDSIZE 1 ++#elif (LZO_ARCH_H8300) ++# if defined(__NORMAL_MODE__) ++# define LZO_WORDSIZE 4 ++# elif defined(__H8300H__) || defined(__H8300S__) || defined(__H8300SX__) ++# define LZO_WORDSIZE 4 + # else +-# error "LZO_MM" ++# define LZO_WORDSIZE 2 + # endif +-#elif (LZO_ARCH_AVR || LZO_ARCH_Z80) +-# define __LZO_WORDSIZE 1 ++#elif (LZO_ARCH_I086) ++# define LZO_WORDSIZE 2 ++#elif (LZO_ARCH_IA64) ++# define LZO_WORDSIZE 8 ++#elif (LZO_ARCH_M16C) ++# define LZO_WORDSIZE 2 ++#elif (LZO_ARCH_SPU) ++# define LZO_WORDSIZE 4 ++#elif (LZO_ARCH_Z80) ++# define LZO_WORDSIZE 1 ++#elif (LZO_SIZEOF_LONG == 8) && ((defined(__mips__) && defined(__R5900__)) || defined(__MIPS_PSX2__)) ++# define LZO_WORDSIZE 8 ++#elif (LZO_OS_OS400 || defined(__OS400__)) ++# define LZO_WORDSIZE 8 ++#elif (defined(__vms) || defined(__VMS)) && (__INITIAL_POINTER_SIZE+0 == 64) ++# define LZO_WORDSIZE 8 ++#endif ++#endif ++#if !defined(LZO_SIZEOF_VOID_P) ++#if defined(__ILP32__) || defined(__ILP32) || defined(_ILP32) ++LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(int) == 4) ++LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(long) == 4) ++# define LZO_SIZEOF_VOID_P 4 ++#elif defined(__ILP64__) || defined(__ILP64) || defined(_ILP64) ++LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(int) == 8) ++LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(long) == 8) ++# define LZO_SIZEOF_VOID_P 8 ++#elif defined(__LLP64__) || defined(__LLP64) || defined(_LLP64) || defined(_WIN64) ++LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(long) == 4) ++# define LZO_SIZEOF_VOID_P 8 ++#elif defined(__LP64__) || defined(__LP64) || defined(_LP64) ++LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(long) == 8) ++# define LZO_SIZEOF_VOID_P 8 ++#elif (LZO_ARCH_AVR) + # define LZO_SIZEOF_VOID_P 2 + #elif (LZO_ARCH_C166 || LZO_ARCH_MCS51 || LZO_ARCH_MCS251 || LZO_ARCH_MSP430) + # define LZO_SIZEOF_VOID_P 2 + #elif (LZO_ARCH_H8300) + # if defined(__NORMAL_MODE__) +-# define __LZO_WORDSIZE 4 + # define LZO_SIZEOF_VOID_P 2 + # elif defined(__H8300H__) || defined(__H8300S__) || defined(__H8300SX__) +-# define __LZO_WORDSIZE 4 + # define LZO_SIZEOF_VOID_P 4 + # else +-# define __LZO_WORDSIZE 2 + # define LZO_SIZEOF_VOID_P 2 + # endif + # if (LZO_CC_GNUC && (LZO_CC_GNUC < 0x040000ul)) && (LZO_SIZEOF_INT == 4) + # define LZO_SIZEOF_SIZE_T LZO_SIZEOF_INT + # define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_INT + # endif ++#elif (LZO_ARCH_I086) ++# if (LZO_MM_TINY || LZO_MM_SMALL || LZO_MM_MEDIUM) ++# define LZO_SIZEOF_VOID_P 2 ++# elif (LZO_MM_COMPACT || LZO_MM_LARGE || LZO_MM_HUGE) ++# define LZO_SIZEOF_VOID_P 4 ++# else ++# error "invalid LZO_ARCH_I086 memory model" ++# endif + #elif (LZO_ARCH_M16C) +-# define __LZO_WORDSIZE 2 + # if defined(__m32c_cpu__) || defined(__m32cm_cpu__) + # define LZO_SIZEOF_VOID_P 4 + # else + # define LZO_SIZEOF_VOID_P 2 + # endif ++#elif (LZO_ARCH_SPU) ++# define LZO_SIZEOF_VOID_P 4 ++#elif (LZO_ARCH_Z80) ++# define LZO_SIZEOF_VOID_P 2 + #elif (LZO_SIZEOF_LONG == 8) && ((defined(__mips__) && defined(__R5900__)) || defined(__MIPS_PSX2__)) +-# define __LZO_WORDSIZE 8 + # define LZO_SIZEOF_VOID_P 4 +-#elif defined(__LLP64__) || defined(__LLP64) || defined(_LLP64) || defined(_WIN64) +-# define __LZO_WORDSIZE 8 +-# define LZO_SIZEOF_VOID_P 8 +-#elif (LZO_OS_OS400 || defined(__OS400__)) && defined(__LLP64_IFC__) +-# define LZO_SIZEOF_VOID_P LZO_SIZEOF_LONG +-# define LZO_SIZEOF_SIZE_T LZO_SIZEOF_LONG +-# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_LONG + #elif (LZO_OS_OS400 || defined(__OS400__)) +-# define __LZO_WORDSIZE LZO_SIZEOF_LONG +-# define LZO_SIZEOF_VOID_P 16 +-# define LZO_SIZEOF_SIZE_T LZO_SIZEOF_LONG +-# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_LONG +-#elif (defined(__vms) || defined(__VMS)) && (__INITIAL_POINTER_SIZE+0 == 64) +-# define LZO_SIZEOF_VOID_P 8 +-# define LZO_SIZEOF_SIZE_T LZO_SIZEOF_LONG +-# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_LONG +-#elif (LZO_ARCH_SPU) +-# if 0 +-# define __LZO_WORDSIZE 16 +-# endif +-# define LZO_SIZEOF_VOID_P 4 +-#else +-# define LZO_SIZEOF_VOID_P LZO_SIZEOF_LONG +-#endif +-#endif +-#if !defined(LZO_WORDSIZE) +-# if defined(__LZO_WORDSIZE) +-# define LZO_WORDSIZE __LZO_WORDSIZE ++# if defined(__LLP64_IFC__) ++# define LZO_SIZEOF_VOID_P 8 ++# define LZO_SIZEOF_SIZE_T LZO_SIZEOF_LONG ++# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_LONG + # else +-# define LZO_WORDSIZE LZO_SIZEOF_VOID_P ++# define LZO_SIZEOF_VOID_P 16 ++# define LZO_SIZEOF_SIZE_T LZO_SIZEOF_LONG ++# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_LONG + # endif ++#elif (defined(__vms) || defined(__VMS)) && (__INITIAL_POINTER_SIZE+0 == 64) ++# define LZO_SIZEOF_VOID_P 8 ++# define LZO_SIZEOF_SIZE_T LZO_SIZEOF_LONG ++# define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_LONG + #endif ++#endif ++#if !defined(LZO_SIZEOF_VOID_P) ++# define LZO_SIZEOF_VOID_P LZO_SIZEOF_LONG ++#endif ++LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_VOID_P == sizeof(void *)) + #if !defined(LZO_SIZEOF_SIZE_T) + #if (LZO_ARCH_I086 || LZO_ARCH_M16C) + # define LZO_SIZEOF_SIZE_T 2 +-#else ++#endif ++#endif ++#if !defined(LZO_SIZEOF_SIZE_T) + # define LZO_SIZEOF_SIZE_T LZO_SIZEOF_VOID_P + #endif ++#if defined(offsetof) ++LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_SIZE_T == sizeof(size_t)) + #endif + #if !defined(LZO_SIZEOF_PTRDIFF_T) + #if (LZO_ARCH_I086) +@@ -1248,11 +2275,18 @@ extern "C" { + # define LZO_SIZEOF_PTRDIFF_T 2 + # endif + # else +-# error "LZO_MM" ++# error "invalid LZO_ARCH_I086 memory model" + # endif +-#else ++#endif ++#endif ++#if !defined(LZO_SIZEOF_PTRDIFF_T) + # define LZO_SIZEOF_PTRDIFF_T LZO_SIZEOF_SIZE_T + #endif ++#if defined(offsetof) ++LZO_COMPILE_TIME_ASSERT_HEADER(LZO_SIZEOF_PTRDIFF_T == sizeof(ptrdiff_t)) ++#endif ++#if !defined(LZO_WORDSIZE) ++# define LZO_WORDSIZE LZO_SIZEOF_VOID_P + #endif + #if (LZO_ABI_NEUTRAL_ENDIAN) + # undef LZO_ABI_BIG_ENDIAN +@@ -1264,7 +2298,7 @@ extern "C" { + # define LZO_ABI_LITTLE_ENDIAN 1 + #elif (LZO_ARCH_ALPHA || LZO_ARCH_AMD64 || LZO_ARCH_BLACKFIN || LZO_ARCH_CRIS || LZO_ARCH_I086 || LZO_ARCH_I386 || LZO_ARCH_MSP430) + # define LZO_ABI_LITTLE_ENDIAN 1 +-#elif (LZO_ARCH_AVR32 || LZO_ARCH_M68K || LZO_ARCH_S390) ++#elif (LZO_ARCH_AVR32 || LZO_ARCH_M68K || LZO_ARCH_S390 || LZO_ARCH_SPU) + # define LZO_ABI_BIG_ENDIAN 1 + #elif 1 && defined(__IAR_SYSTEMS_ICC__) && defined(__LITTLE_ENDIAN__) + # if (__LITTLE_ENDIAN__ == 1) +@@ -1280,6 +2314,19 @@ extern "C" { + # define LZO_ABI_BIG_ENDIAN 1 + #elif 1 && (LZO_ARCH_ARM) && defined(__ARMEL__) && !defined(__ARMEB__) + # define LZO_ABI_LITTLE_ENDIAN 1 ++#elif 1 && (LZO_ARCH_ARM && LZO_CC_ARMCC_ARMCC) ++# if defined(__BIG_ENDIAN) && defined(__LITTLE_ENDIAN) ++# error "unexpected configuration - check your compiler defines" ++# elif defined(__BIG_ENDIAN) ++# define LZO_ABI_BIG_ENDIAN 1 ++# else ++# define LZO_ABI_LITTLE_ENDIAN 1 ++# endif ++# define LZO_ABI_LITTLE_ENDIAN 1 ++#elif 1 && (LZO_ARCH_ARM64) && defined(__AARCH64EB__) && !defined(__AARCH64EL__) ++# define LZO_ABI_BIG_ENDIAN 1 ++#elif 1 && (LZO_ARCH_ARM64) && defined(__AARCH64EL__) && !defined(__AARCH64EB__) ++# define LZO_ABI_LITTLE_ENDIAN 1 + #elif 1 && (LZO_ARCH_MIPS) && defined(__MIPSEB__) && !defined(__MIPSEL__) + # define LZO_ABI_BIG_ENDIAN 1 + #elif 1 && (LZO_ARCH_MIPS) && defined(__MIPSEL__) && !defined(__MIPSEB__) +@@ -1287,7 +2334,7 @@ extern "C" { + #endif + #endif + #if (LZO_ABI_BIG_ENDIAN) && (LZO_ABI_LITTLE_ENDIAN) +-# error "this should not happen" ++# error "unexpected configuration - check your compiler defines" + #endif + #if (LZO_ABI_BIG_ENDIAN) + # define LZO_INFO_ABI_ENDIAN "be" +@@ -1302,6 +2349,9 @@ extern "C" { + #elif (LZO_SIZEOF_INT == 2 && LZO_SIZEOF_LONG == 2 && LZO_SIZEOF_VOID_P == 2) + # define LZO_ABI_ILP16 1 + # define LZO_INFO_ABI_PM "ilp16" ++#elif (LZO_SIZEOF_INT == 2 && LZO_SIZEOF_LONG == 4 && LZO_SIZEOF_VOID_P == 4) ++# define LZO_ABI_LP32 1 ++# define LZO_INFO_ABI_PM "lp32" + #elif (LZO_SIZEOF_INT == 4 && LZO_SIZEOF_LONG == 4 && LZO_SIZEOF_VOID_P == 4) + # define LZO_ABI_ILP32 1 + # define LZO_INFO_ABI_PM "ilp32" +@@ -1318,7 +2368,8 @@ extern "C" { + # define LZO_ABI_IP32L64 1 + # define LZO_INFO_ABI_PM "ip32l64" + #endif +-#if !defined(__LZO_LIBC_OVERRIDE) ++#if 0 ++#elif !defined(__LZO_LIBC_OVERRIDE) + #if (LZO_LIBC_NAKED) + # define LZO_INFO_LIBC "naked" + #elif (LZO_LIBC_FREESTANDING) +@@ -1329,6 +2380,9 @@ extern "C" { + # define LZO_INFO_LIBC "isoc90" + #elif (LZO_LIBC_ISOC99) + # define LZO_INFO_LIBC "isoc99" ++#elif (LZO_CC_ARMCC_ARMCC) && defined(__ARMCLIB_VERSION) ++# define LZO_LIBC_ISOC90 1 ++# define LZO_INFO_LIBC "isoc90" + #elif defined(__dietlibc__) + # define LZO_LIBC_DIETLIBC 1 + # define LZO_INFO_LIBC "dietlibc" +@@ -1337,13 +2391,13 @@ extern "C" { + # define LZO_INFO_LIBC "newlib" + #elif defined(__UCLIBC__) && defined(__UCLIBC_MAJOR__) && defined(__UCLIBC_MINOR__) + # if defined(__UCLIBC_SUBLEVEL__) +-# define LZO_LIBC_UCLIBC (__UCLIBC_MAJOR__ * 0x10000L + __UCLIBC_MINOR__ * 0x100 + __UCLIBC_SUBLEVEL__) ++# define LZO_LIBC_UCLIBC (__UCLIBC_MAJOR__ * 0x10000L + (__UCLIBC_MINOR__-0) * 0x100 + (__UCLIBC_SUBLEVEL__-0)) + # else + # define LZO_LIBC_UCLIBC 0x00090bL + # endif +-# define LZO_INFO_LIBC "uclibc" ++# define LZO_INFO_LIBC "uc" "libc" + #elif defined(__GLIBC__) && defined(__GLIBC_MINOR__) +-# define LZO_LIBC_GLIBC (__GLIBC__ * 0x10000L + __GLIBC_MINOR__ * 0x100) ++# define LZO_LIBC_GLIBC (__GLIBC__ * 0x10000L + (__GLIBC_MINOR__-0) * 0x100) + # define LZO_INFO_LIBC "glibc" + #elif (LZO_CC_MWERKS) && defined(__MSL__) + # define LZO_LIBC_MSL __MSL__ +@@ -1356,423 +2410,159 @@ extern "C" { + # define LZO_INFO_LIBC "default" + #endif + #endif +-#if !defined(__lzo_gnuc_extension__) +-#if (LZO_CC_GNUC >= 0x020800ul) +-# define __lzo_gnuc_extension__ __extension__ +-#elif (LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) +-# define __lzo_gnuc_extension__ __extension__ +-#else +-# define __lzo_gnuc_extension__ /*empty*/ +-#endif +-#endif +-#if !defined(__lzo_ua_volatile) +-# define __lzo_ua_volatile volatile +-#endif +-#if !defined(__lzo_alignof) +-#if (LZO_CC_CILLY || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || LZO_CC_PGI) +-# define __lzo_alignof(e) __alignof__(e) +-#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 700)) +-# define __lzo_alignof(e) __alignof__(e) +-#elif (LZO_CC_MSC && (_MSC_VER >= 1300)) +-# define __lzo_alignof(e) __alignof(e) +-#elif (LZO_CC_SUNPROC && (LZO_CC_SUNPROC >= 0x5100)) +-# define __lzo_alignof(e) __alignof__(e) +-#endif +-#endif +-#if defined(__lzo_alignof) +-# define __lzo_HAVE_alignof 1 +-#endif +-#if !defined(__lzo_constructor) +-#if (LZO_CC_GNUC >= 0x030400ul) +-# define __lzo_constructor __attribute__((__constructor__,__used__)) +-#elif (LZO_CC_GNUC >= 0x020700ul) +-# define __lzo_constructor __attribute__((__constructor__)) +-#elif (LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) +-# define __lzo_constructor __attribute__((__constructor__)) +-#endif +-#endif +-#if defined(__lzo_constructor) +-# define __lzo_HAVE_constructor 1 +-#endif +-#if !defined(__lzo_destructor) +-#if (LZO_CC_GNUC >= 0x030400ul) +-# define __lzo_destructor __attribute__((__destructor__,__used__)) +-#elif (LZO_CC_GNUC >= 0x020700ul) +-# define __lzo_destructor __attribute__((__destructor__)) +-#elif (LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) +-# define __lzo_destructor __attribute__((__destructor__)) +-#endif +-#endif +-#if defined(__lzo_destructor) +-# define __lzo_HAVE_destructor 1 +-#endif +-#if (__lzo_HAVE_destructor) && !(__lzo_HAVE_constructor) +-# error "this should not happen" +-#endif +-#if !defined(__lzo_inline) +-#if (LZO_CC_TURBOC && (__TURBOC__ <= 0x0295)) +-#elif defined(__cplusplus) +-# define __lzo_inline inline +-#elif (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0550)) +-# define __lzo_inline __inline +-#elif (LZO_CC_CILLY || LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE || LZO_CC_PGI) +-# define __lzo_inline __inline__ +-#elif (LZO_CC_DMC) +-# define __lzo_inline __inline +-#elif (LZO_CC_INTELC) +-# define __lzo_inline __inline +-#elif (LZO_CC_MWERKS && (__MWERKS__ >= 0x2405)) +-# define __lzo_inline __inline +-#elif (LZO_CC_MSC && (_MSC_VER >= 900)) +-# define __lzo_inline __inline +-#elif (LZO_CC_SUNPROC && (LZO_CC_SUNPROC >= 0x5100)) +-# define __lzo_inline __inline__ +-#elif defined(__STDC_VERSION__) && (__STDC_VERSION__ >= 199901L) +-# define __lzo_inline inline +-#endif +-#endif +-#if defined(__lzo_inline) +-# define __lzo_HAVE_inline 1 +-#else +-# define __lzo_inline /*empty*/ +-#endif +-#if !defined(__lzo_forceinline) +-#if (LZO_CC_GNUC >= 0x030200ul) +-# define __lzo_forceinline __inline__ __attribute__((__always_inline__)) +-#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 450) && LZO_CC_SYNTAX_MSC) +-# define __lzo_forceinline __forceinline +-#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 800) && LZO_CC_SYNTAX_GNUC) +-# define __lzo_forceinline __inline__ __attribute__((__always_inline__)) +-#elif (LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) +-# define __lzo_forceinline __inline__ __attribute__((__always_inline__)) +-#elif (LZO_CC_MSC && (_MSC_VER >= 1200)) +-# define __lzo_forceinline __forceinline +-#elif (LZO_CC_SUNPROC && (LZO_CC_SUNPROC >= 0x5100)) +-# define __lzo_forceinline __inline__ __attribute__((__always_inline__)) +-#endif +-#endif +-#if defined(__lzo_forceinline) +-# define __lzo_HAVE_forceinline 1 +-#else +-# define __lzo_forceinline /*empty*/ +-#endif +-#if !defined(__lzo_noinline) +-#if 1 && (LZO_ARCH_I386) && (LZO_CC_GNUC >= 0x040000ul) && (LZO_CC_GNUC < 0x040003ul) +-# define __lzo_noinline __attribute__((__noinline__,__used__)) +-#elif (LZO_CC_GNUC >= 0x030200ul) +-# define __lzo_noinline __attribute__((__noinline__)) +-#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 600) && LZO_CC_SYNTAX_MSC) +-# define __lzo_noinline __declspec(noinline) +-#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 800) && LZO_CC_SYNTAX_GNUC) +-# define __lzo_noinline __attribute__((__noinline__)) +-#elif (LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) +-# define __lzo_noinline __attribute__((__noinline__)) +-#elif (LZO_CC_MSC && (_MSC_VER >= 1300)) +-# define __lzo_noinline __declspec(noinline) +-#elif (LZO_CC_MWERKS && (__MWERKS__ >= 0x3200) && (LZO_OS_WIN32 || LZO_OS_WIN64)) +-# if defined(__cplusplus) +-# else +-# define __lzo_noinline __declspec(noinline) +-# endif +-#elif (LZO_CC_SUNPROC && (LZO_CC_SUNPROC >= 0x5100)) +-# define __lzo_noinline __attribute__((__noinline__)) +-#endif +-#endif +-#if defined(__lzo_noinline) +-# define __lzo_HAVE_noinline 1 +-#else +-# define __lzo_noinline /*empty*/ +-#endif +-#if (__lzo_HAVE_forceinline || __lzo_HAVE_noinline) && !(__lzo_HAVE_inline) +-# error "this should not happen" +-#endif +-#if !defined(__lzo_noreturn) +-#if (LZO_CC_GNUC >= 0x020700ul) +-# define __lzo_noreturn __attribute__((__noreturn__)) +-#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 450) && LZO_CC_SYNTAX_MSC) +-# define __lzo_noreturn __declspec(noreturn) +-#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 600) && LZO_CC_SYNTAX_GNUC) +-# define __lzo_noreturn __attribute__((__noreturn__)) +-#elif (LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) +-# define __lzo_noreturn __attribute__((__noreturn__)) +-#elif (LZO_CC_MSC && (_MSC_VER >= 1200)) +-# define __lzo_noreturn __declspec(noreturn) +-#endif +-#endif +-#if defined(__lzo_noreturn) +-# define __lzo_HAVE_noreturn 1 +-#else +-# define __lzo_noreturn /*empty*/ +-#endif +-#if !defined(__lzo_nothrow) +-#if (LZO_CC_GNUC >= 0x030300ul) +-# define __lzo_nothrow __attribute__((__nothrow__)) +-#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 450) && LZO_CC_SYNTAX_MSC) && defined(__cplusplus) +-# define __lzo_nothrow __declspec(nothrow) +-#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 900) && LZO_CC_SYNTAX_GNUC) +-# define __lzo_nothrow __attribute__((__nothrow__)) +-#elif (LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) +-# define __lzo_nothrow __attribute__((__nothrow__)) +-#elif (LZO_CC_MSC && (_MSC_VER >= 1200)) && defined(__cplusplus) +-# define __lzo_nothrow __declspec(nothrow) +-#endif +-#endif +-#if defined(__lzo_nothrow) +-# define __lzo_HAVE_nothrow 1 +-#else +-# define __lzo_nothrow /*empty*/ +-#endif +-#if !defined(__lzo_restrict) +-#if (LZO_CC_GNUC >= 0x030400ul) +-# define __lzo_restrict __restrict__ +-#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 600) && LZO_CC_SYNTAX_GNUC) +-# define __lzo_restrict __restrict__ +-#elif (LZO_CC_CLANG || LZO_CC_LLVM) +-# define __lzo_restrict __restrict__ +-#elif (LZO_CC_MSC && (_MSC_VER >= 1400)) +-# define __lzo_restrict __restrict +-#endif +-#endif +-#if defined(__lzo_restrict) +-# define __lzo_HAVE_restrict 1 +-#else +-# define __lzo_restrict /*empty*/ +-#endif +-#if !defined(__lzo_likely) && !defined(__lzo_unlikely) +-#if (LZO_CC_GNUC >= 0x030200ul) +-# define __lzo_likely(e) (__builtin_expect(!!(e),1)) +-# define __lzo_unlikely(e) (__builtin_expect(!!(e),0)) +-#elif (LZO_CC_INTELC && (__INTEL_COMPILER >= 800)) +-# define __lzo_likely(e) (__builtin_expect(!!(e),1)) +-# define __lzo_unlikely(e) (__builtin_expect(!!(e),0)) +-#elif (LZO_CC_CLANG || LZO_CC_LLVM || LZO_CC_PATHSCALE) +-# define __lzo_likely(e) (__builtin_expect(!!(e),1)) +-# define __lzo_unlikely(e) (__builtin_expect(!!(e),0)) +-#endif +-#endif +-#if defined(__lzo_likely) +-# define __lzo_HAVE_likely 1 +-#else +-# define __lzo_likely(e) (e) +-#endif +-#if defined(__lzo_unlikely) +-# define __lzo_HAVE_unlikely 1 +-#else +-# define __lzo_unlikely(e) (e) +-#endif +-#if !defined(LZO_UNUSED) +-# if (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0600)) +-# define LZO_UNUSED(var) ((void) &var) +-# elif (LZO_CC_BORLANDC || LZO_CC_HIGHC || LZO_CC_NDPC || LZO_CC_PELLESC || LZO_CC_TURBOC) +-# define LZO_UNUSED(var) if (&var) ; else +-# elif (LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE) +-# define LZO_UNUSED(var) ((void) var) +-# elif (LZO_CC_MSC && (_MSC_VER < 900)) +-# define LZO_UNUSED(var) if (&var) ; else +-# elif (LZO_CC_KEILC) +-# define LZO_UNUSED(var) {extern int __lzo_unused[1-2*!(sizeof(var)>0)];} +-# elif (LZO_CC_PACIFICC) +-# define LZO_UNUSED(var) ((void) sizeof(var)) +-# elif (LZO_CC_WATCOMC) && defined(__cplusplus) +-# define LZO_UNUSED(var) ((void) var) +-# else +-# define LZO_UNUSED(var) ((void) &var) +-# endif +-#endif +-#if !defined(LZO_UNUSED_FUNC) +-# if (LZO_CC_BORLANDC && (__BORLANDC__ >= 0x0600)) +-# define LZO_UNUSED_FUNC(func) ((void) func) +-# elif (LZO_CC_BORLANDC || LZO_CC_NDPC || LZO_CC_TURBOC) +-# define LZO_UNUSED_FUNC(func) if (func) ; else +-# elif (LZO_CC_CLANG || LZO_CC_LLVM) +-# define LZO_UNUSED_FUNC(func) ((void) &func) +-# elif (LZO_CC_MSC && (_MSC_VER < 900)) +-# define LZO_UNUSED_FUNC(func) if (func) ; else +-# elif (LZO_CC_MSC) +-# define LZO_UNUSED_FUNC(func) ((void) &func) +-# elif (LZO_CC_KEILC || LZO_CC_PELLESC) +-# define LZO_UNUSED_FUNC(func) {extern int __lzo_unused[1-2*!(sizeof((int)func)>0)];} +-# else +-# define LZO_UNUSED_FUNC(func) ((void) func) +-# endif +-#endif +-#if !defined(LZO_UNUSED_LABEL) +-# if (LZO_CC_WATCOMC) && defined(__cplusplus) +-# define LZO_UNUSED_LABEL(l) switch(0) case 1:goto l +-# elif (LZO_CC_CLANG || LZO_CC_INTELC || LZO_CC_WATCOMC) +-# define LZO_UNUSED_LABEL(l) if (0) goto l +-# else +-# define LZO_UNUSED_LABEL(l) switch(0) case 1:goto l +-# endif +-#endif +-#if !defined(LZO_DEFINE_UNINITIALIZED_VAR) +-# if 0 +-# define LZO_DEFINE_UNINITIALIZED_VAR(type,var,init) type var +-# elif 0 && (LZO_CC_GNUC) +-# define LZO_DEFINE_UNINITIALIZED_VAR(type,var,init) type var = var +-# else +-# define LZO_DEFINE_UNINITIALIZED_VAR(type,var,init) type var = init +-# endif +-#endif +-#if !defined(LZO_UNCONST_CAST) +-# if 0 && defined(__cplusplus) +-# define LZO_UNCONST_CAST(t,e) (const_cast (e)) +-# elif (LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_LLVM || LZO_CC_PATHSCALE) +-# define LZO_UNCONST_CAST(t,e) ((t) ((void *) ((char *) ((lzo_uintptr_t) ((const void *) (e)))))) +-# else +-# define LZO_UNCONST_CAST(t,e) ((t) ((void *) ((char *) ((const void *) (e))))) +-# endif +-#endif +-#if !defined(LZO_COMPILE_TIME_ASSERT_HEADER) +-# if (LZO_CC_AZTECC || LZO_CC_ZORTECHC) +-# define LZO_COMPILE_TIME_ASSERT_HEADER(e) extern int __lzo_cta[1-!(e)]; +-# elif (LZO_CC_DMC || LZO_CC_SYMANTECC) +-# define LZO_COMPILE_TIME_ASSERT_HEADER(e) extern int __lzo_cta[1u-2*!(e)]; +-# elif (LZO_CC_TURBOC && (__TURBOC__ == 0x0295)) +-# define LZO_COMPILE_TIME_ASSERT_HEADER(e) extern int __lzo_cta[1-!(e)]; +-# else +-# define LZO_COMPILE_TIME_ASSERT_HEADER(e) extern int __lzo_cta[1-2*!(e)]; +-# endif +-#endif +-#if !defined(LZO_COMPILE_TIME_ASSERT) +-# if (LZO_CC_AZTECC) +-# define LZO_COMPILE_TIME_ASSERT(e) {typedef int __lzo_cta_t[1-!(e)];} +-# elif (LZO_CC_DMC || LZO_CC_PACIFICC || LZO_CC_SYMANTECC || LZO_CC_ZORTECHC) +-# define LZO_COMPILE_TIME_ASSERT(e) switch(0) case 1:case !(e):break; +-# elif (LZO_CC_MSC && (_MSC_VER < 900)) +-# define LZO_COMPILE_TIME_ASSERT(e) switch(0) case 1:case !(e):break; +-# elif (LZO_CC_TURBOC && (__TURBOC__ == 0x0295)) +-# define LZO_COMPILE_TIME_ASSERT(e) switch(0) case 1:case !(e):break; +-# else +-# define LZO_COMPILE_TIME_ASSERT(e) {typedef int __lzo_cta_t[1-2*!(e)];} +-# endif +-#endif +-#if (LZO_ARCH_I086 || LZO_ARCH_I386) && (LZO_OS_DOS16 || LZO_OS_DOS32 || LZO_OS_OS2 || LZO_OS_OS216 || LZO_OS_WIN16 || LZO_OS_WIN32 || LZO_OS_WIN64) +-# if (LZO_CC_GNUC || LZO_CC_HIGHC || LZO_CC_NDPC || LZO_CC_PACIFICC) +-# elif (LZO_CC_DMC || LZO_CC_SYMANTECC || LZO_CC_ZORTECHC) +-# define __lzo_cdecl __cdecl +-# define __lzo_cdecl_atexit /*empty*/ +-# define __lzo_cdecl_main __cdecl +-# if (LZO_OS_OS2 && (LZO_CC_DMC || LZO_CC_SYMANTECC)) +-# define __lzo_cdecl_qsort __pascal +-# elif (LZO_OS_OS2 && (LZO_CC_ZORTECHC)) +-# define __lzo_cdecl_qsort _stdcall +-# else +-# define __lzo_cdecl_qsort __cdecl +-# endif +-# elif (LZO_CC_WATCOMC) +-# define __lzo_cdecl __cdecl +-# else +-# define __lzo_cdecl __cdecl +-# define __lzo_cdecl_atexit __cdecl +-# define __lzo_cdecl_main __cdecl +-# define __lzo_cdecl_qsort __cdecl +-# endif +-# if (LZO_CC_GNUC || LZO_CC_HIGHC || LZO_CC_NDPC || LZO_CC_PACIFICC || LZO_CC_WATCOMC) +-# elif (LZO_OS_OS2 && (LZO_CC_DMC || LZO_CC_SYMANTECC)) +-# define __lzo_cdecl_sighandler __pascal +-# elif (LZO_OS_OS2 && (LZO_CC_ZORTECHC)) +-# define __lzo_cdecl_sighandler _stdcall +-# elif (LZO_CC_MSC && (_MSC_VER >= 1400)) && defined(_M_CEE_PURE) +-# define __lzo_cdecl_sighandler __clrcall +-# elif (LZO_CC_MSC && (_MSC_VER >= 600 && _MSC_VER < 700)) +-# if defined(_DLL) +-# define __lzo_cdecl_sighandler _far _cdecl _loadds +-# elif defined(_MT) +-# define __lzo_cdecl_sighandler _far _cdecl +-# else +-# define __lzo_cdecl_sighandler _cdecl +-# endif +-# else +-# define __lzo_cdecl_sighandler __cdecl +-# endif +-#elif (LZO_ARCH_I386) && (LZO_CC_WATCOMC) +-# define __lzo_cdecl __cdecl +-#elif (LZO_ARCH_M68K && LZO_OS_TOS && (LZO_CC_PUREC || LZO_CC_TURBOC)) +-# define __lzo_cdecl cdecl +-#endif +-#if !defined(__lzo_cdecl) +-# define __lzo_cdecl /*empty*/ +-#endif +-#if !defined(__lzo_cdecl_atexit) +-# define __lzo_cdecl_atexit /*empty*/ +-#endif +-#if !defined(__lzo_cdecl_main) +-# define __lzo_cdecl_main /*empty*/ +-#endif +-#if !defined(__lzo_cdecl_qsort) +-# define __lzo_cdecl_qsort /*empty*/ +-#endif +-#if !defined(__lzo_cdecl_sighandler) +-# define __lzo_cdecl_sighandler /*empty*/ +-#endif +-#if !defined(__lzo_cdecl_va) +-# define __lzo_cdecl_va __lzo_cdecl +-#endif +-#if !(LZO_CFG_NO_WINDOWS_H) +-#if (LZO_OS_CYGWIN || (LZO_OS_EMX && defined(__RSXNT__)) || LZO_OS_WIN32 || LZO_OS_WIN64) +-# if (LZO_CC_WATCOMC && (__WATCOMC__ < 1000)) +-# elif (LZO_OS_WIN32 && LZO_CC_GNUC) && defined(__PW32__) +-# elif ((LZO_OS_CYGWIN || defined(__MINGW32__)) && (LZO_CC_GNUC && (LZO_CC_GNUC < 0x025f00ul))) +-# else +-# define LZO_HAVE_WINDOWS_H 1 +-# endif ++#if (LZO_ARCH_I386 && (LZO_OS_DOS32 || LZO_OS_WIN32) && (LZO_CC_DMC || LZO_CC_INTELC || LZO_CC_MSC || LZO_CC_PELLESC)) ++# define LZO_ASM_SYNTAX_MSC 1 ++#elif (LZO_OS_WIN64 && (LZO_CC_DMC || LZO_CC_INTELC || LZO_CC_MSC || LZO_CC_PELLESC)) ++#elif (LZO_ARCH_I386 && LZO_CC_GNUC && (LZO_CC_GNUC == 0x011f00ul)) ++#elif (LZO_ARCH_I386 && (LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_INTELC || LZO_CC_PATHSCALE)) ++# define LZO_ASM_SYNTAX_GNUC 1 ++#elif (LZO_ARCH_AMD64 && (LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_INTELC || LZO_CC_PATHSCALE)) ++# define LZO_ASM_SYNTAX_GNUC 1 ++#elif (LZO_CC_GNUC) ++# define LZO_ASM_SYNTAX_GNUC 1 ++#endif ++#if (LZO_ASM_SYNTAX_GNUC) ++#if (LZO_ARCH_I386 && LZO_CC_GNUC && (LZO_CC_GNUC < 0x020000ul)) ++# define __LZO_ASM_CLOBBER "ax" ++# define __LZO_ASM_CLOBBER_LIST_CC /*empty*/ ++# define __LZO_ASM_CLOBBER_LIST_CC_MEMORY /*empty*/ ++# define __LZO_ASM_CLOBBER_LIST_EMPTY /*empty*/ ++#elif (LZO_CC_INTELC && (__INTEL_COMPILER < 1000)) ++# define __LZO_ASM_CLOBBER "memory" ++# define __LZO_ASM_CLOBBER_LIST_CC /*empty*/ ++# define __LZO_ASM_CLOBBER_LIST_CC_MEMORY : "memory" ++# define __LZO_ASM_CLOBBER_LIST_EMPTY /*empty*/ ++#else ++# define __LZO_ASM_CLOBBER "cc", "memory" ++# define __LZO_ASM_CLOBBER_LIST_CC : "cc" ++# define __LZO_ASM_CLOBBER_LIST_CC_MEMORY : "cc", "memory" ++# define __LZO_ASM_CLOBBER_LIST_EMPTY /*empty*/ + #endif + #endif + #if (LZO_ARCH_ALPHA) +-# define LZO_OPT_AVOID_UINT_INDEX 1 +-# define LZO_OPT_AVOID_SHORT 1 +-# define LZO_OPT_AVOID_USHORT 1 ++# define LZO_OPT_AVOID_UINT_INDEX 1 + #elif (LZO_ARCH_AMD64) +-# define LZO_OPT_AVOID_INT_INDEX 1 +-# define LZO_OPT_AVOID_UINT_INDEX 1 +-# define LZO_OPT_UNALIGNED16 1 +-# define LZO_OPT_UNALIGNED32 1 +-# define LZO_OPT_UNALIGNED64 1 +-#elif (LZO_ARCH_ARM && LZO_ARCH_ARM_THUMB) ++# define LZO_OPT_AVOID_INT_INDEX 1 ++# define LZO_OPT_AVOID_UINT_INDEX 1 ++# ifndef LZO_OPT_UNALIGNED16 ++# define LZO_OPT_UNALIGNED16 1 ++# endif ++# ifndef LZO_OPT_UNALIGNED32 ++# define LZO_OPT_UNALIGNED32 1 ++# endif ++# ifndef LZO_OPT_UNALIGNED64 ++# define LZO_OPT_UNALIGNED64 1 ++# endif + #elif (LZO_ARCH_ARM) +-# define LZO_OPT_AVOID_SHORT 1 +-# define LZO_OPT_AVOID_USHORT 1 ++# if defined(__ARM_FEATURE_UNALIGNED) ++# ifndef LZO_OPT_UNALIGNED16 ++# define LZO_OPT_UNALIGNED16 1 ++# endif ++# ifndef LZO_OPT_UNALIGNED32 ++# define LZO_OPT_UNALIGNED32 1 ++# endif ++# elif defined(__TARGET_ARCH_ARM) && ((__TARGET_ARCH_ARM+0) >= 7) ++# ifndef LZO_OPT_UNALIGNED16 ++# define LZO_OPT_UNALIGNED16 1 ++# endif ++# ifndef LZO_OPT_UNALIGNED32 ++# define LZO_OPT_UNALIGNED32 1 ++# endif ++# elif defined(__TARGET_ARCH_ARM) && ((__TARGET_ARCH_ARM+0) >= 6) && !defined(__TARGET_PROFILE_M) ++# ifndef LZO_OPT_UNALIGNED16 ++# define LZO_OPT_UNALIGNED16 1 ++# endif ++# ifndef LZO_OPT_UNALIGNED32 ++# define LZO_OPT_UNALIGNED32 1 ++# endif ++# endif ++#elif (LZO_ARCH_ARM64) ++# ifndef LZO_OPT_UNALIGNED16 ++# define LZO_OPT_UNALIGNED16 1 ++# endif ++# ifndef LZO_OPT_UNALIGNED32 ++# define LZO_OPT_UNALIGNED32 1 ++# endif ++# ifndef LZO_OPT_UNALIGNED64 ++# define LZO_OPT_UNALIGNED64 1 ++# endif + #elif (LZO_ARCH_CRIS) +-# define LZO_OPT_UNALIGNED16 1 +-# define LZO_OPT_UNALIGNED32 1 ++# ifndef LZO_OPT_UNALIGNED16 ++# define LZO_OPT_UNALIGNED16 1 ++# endif ++# ifndef LZO_OPT_UNALIGNED32 ++# define LZO_OPT_UNALIGNED32 1 ++# endif + #elif (LZO_ARCH_I386) +-# define LZO_OPT_UNALIGNED16 1 +-# define LZO_OPT_UNALIGNED32 1 ++# ifndef LZO_OPT_UNALIGNED16 ++# define LZO_OPT_UNALIGNED16 1 ++# endif ++# ifndef LZO_OPT_UNALIGNED32 ++# define LZO_OPT_UNALIGNED32 1 ++# endif + #elif (LZO_ARCH_IA64) +-# define LZO_OPT_AVOID_INT_INDEX 1 +-# define LZO_OPT_AVOID_UINT_INDEX 1 +-# define LZO_OPT_PREFER_POSTINC 1 ++# define LZO_OPT_AVOID_INT_INDEX 1 ++# define LZO_OPT_AVOID_UINT_INDEX 1 ++# define LZO_OPT_PREFER_POSTINC 1 + #elif (LZO_ARCH_M68K) +-# define LZO_OPT_PREFER_POSTINC 1 +-# define LZO_OPT_PREFER_PREDEC 1 ++# define LZO_OPT_PREFER_POSTINC 1 ++# define LZO_OPT_PREFER_PREDEC 1 + # if defined(__mc68020__) && !defined(__mcoldfire__) +-# define LZO_OPT_UNALIGNED16 1 +-# define LZO_OPT_UNALIGNED32 1 ++# ifndef LZO_OPT_UNALIGNED16 ++# define LZO_OPT_UNALIGNED16 1 ++# endif ++# ifndef LZO_OPT_UNALIGNED32 ++# define LZO_OPT_UNALIGNED32 1 ++# endif + # endif + #elif (LZO_ARCH_MIPS) +-# define LZO_OPT_AVOID_UINT_INDEX 1 ++# define LZO_OPT_AVOID_UINT_INDEX 1 + #elif (LZO_ARCH_POWERPC) +-# define LZO_OPT_PREFER_PREINC 1 +-# define LZO_OPT_PREFER_PREDEC 1 ++# define LZO_OPT_PREFER_PREINC 1 ++# define LZO_OPT_PREFER_PREDEC 1 + # if (LZO_ABI_BIG_ENDIAN) +-# define LZO_OPT_UNALIGNED16 1 +-# define LZO_OPT_UNALIGNED32 1 ++# ifndef LZO_OPT_UNALIGNED16 ++# define LZO_OPT_UNALIGNED16 1 ++# endif ++# ifndef LZO_OPT_UNALIGNED32 ++# define LZO_OPT_UNALIGNED32 1 ++# endif ++# if (LZO_WORDSIZE == 8) ++# ifndef LZO_OPT_UNALIGNED64 ++# define LZO_OPT_UNALIGNED64 1 ++# endif ++# endif + # endif + #elif (LZO_ARCH_S390) +-# define LZO_OPT_UNALIGNED16 1 +-# define LZO_OPT_UNALIGNED32 1 +-# if (LZO_SIZEOF_SIZE_T == 8) +-# define LZO_OPT_UNALIGNED64 1 ++# ifndef LZO_OPT_UNALIGNED16 ++# define LZO_OPT_UNALIGNED16 1 ++# endif ++# ifndef LZO_OPT_UNALIGNED32 ++# define LZO_OPT_UNALIGNED32 1 ++# endif ++# if (LZO_WORDSIZE == 8) ++# ifndef LZO_OPT_UNALIGNED64 ++# define LZO_OPT_UNALIGNED64 1 ++# endif + # endif + #elif (LZO_ARCH_SH) +-# define LZO_OPT_PREFER_POSTINC 1 +-# define LZO_OPT_PREFER_PREDEC 1 ++# define LZO_OPT_PREFER_POSTINC 1 ++# define LZO_OPT_PREFER_PREDEC 1 + #endif + #ifndef LZO_CFG_NO_INLINE_ASM +-#if (LZO_CC_LLVM) ++#if (LZO_ABI_NEUTRAL_ENDIAN) || (LZO_ARCH_GENERIC) + # define LZO_CFG_NO_INLINE_ASM 1 ++#elif (LZO_CC_LLVM) ++# define LZO_CFG_NO_INLINE_ASM 1 ++#endif + #endif ++#if (LZO_CFG_NO_INLINE_ASM) ++# undef LZO_ASM_SYNTAX_MSC ++# undef LZO_ASM_SYNTAX_GNUC ++# undef __LZO_ASM_CLOBBER ++# undef __LZO_ASM_CLOBBER_LIST_CC ++# undef __LZO_ASM_CLOBBER_LIST_CC_MEMORY ++# undef __LZO_ASM_CLOBBER_LIST_EMPTY + #endif + #ifndef LZO_CFG_NO_UNALIGNED + #if (LZO_ABI_NEUTRAL_ENDIAN) || (LZO_ARCH_GENERIC) +@@ -1784,25 +2574,6 @@ extern "C" { + # undef LZO_OPT_UNALIGNED32 + # undef LZO_OPT_UNALIGNED64 + #endif +-#if (LZO_CFG_NO_INLINE_ASM) +-#elif (LZO_ARCH_I386 && (LZO_OS_DOS32 || LZO_OS_WIN32) && (LZO_CC_DMC || LZO_CC_INTELC || LZO_CC_MSC || LZO_CC_PELLESC)) +-# define LZO_ASM_SYNTAX_MSC 1 +-#elif (LZO_OS_WIN64 && (LZO_CC_DMC || LZO_CC_INTELC || LZO_CC_MSC || LZO_CC_PELLESC)) +-#elif (LZO_ARCH_I386 && LZO_CC_GNUC && (LZO_CC_GNUC == 0x011f00ul)) +-#elif (LZO_ARCH_I386 && (LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_INTELC || LZO_CC_PATHSCALE)) +-# define LZO_ASM_SYNTAX_GNUC 1 +-#elif (LZO_ARCH_AMD64 && (LZO_CC_CLANG || LZO_CC_GNUC || LZO_CC_INTELC || LZO_CC_PATHSCALE)) +-# define LZO_ASM_SYNTAX_GNUC 1 +-#endif +-#if (LZO_ASM_SYNTAX_GNUC) +-#if (LZO_ARCH_I386 && LZO_CC_GNUC && (LZO_CC_GNUC < 0x020000ul)) +-# define __LZO_ASM_CLOBBER "ax" +-#elif (LZO_CC_INTELC) +-# define __LZO_ASM_CLOBBER "memory" +-#else +-# define __LZO_ASM_CLOBBER "cc", "memory" +-#endif +-#endif + #if defined(__LZO_INFOSTR_MM) + #elif (LZO_MM_FLAT) && (defined(__LZO_INFOSTR_PM) || defined(LZO_INFO_ABI_PM)) + # define __LZO_INFOSTR_MM "" +@@ -1846,7 +2617,382 @@ extern "C" { + #define LZO_INFO_STRING \ + LZO_INFO_ARCH __LZO_INFOSTR_MM __LZO_INFOSTR_PM __LZO_INFOSTR_ENDIAN \ + " " __LZO_INFOSTR_OSNAME __LZO_INFOSTR_LIBC " " LZO_INFO_CC __LZO_INFOSTR_CCVER ++#if !(LZO_CFG_SKIP_LZO_TYPES) ++#if (!(LZO_SIZEOF_SHORT+0 > 0 && LZO_SIZEOF_INT+0 > 0 && LZO_SIZEOF_LONG+0 > 0)) ++# error "missing defines for sizes" ++#endif ++#if (!(LZO_SIZEOF_PTRDIFF_T+0 > 0 && LZO_SIZEOF_SIZE_T+0 > 0 && LZO_SIZEOF_VOID_P+0 > 0)) ++# error "missing defines for sizes" ++#endif ++#if !defined(lzo_llong_t) ++#if (LZO_SIZEOF_LONG_LONG+0 > 0) ++__lzo_gnuc_extension__ typedef long long lzo_llong_t__; ++__lzo_gnuc_extension__ typedef unsigned long long lzo_ullong_t__; ++# define lzo_llong_t lzo_llong_t__ ++# define lzo_ullong_t lzo_ullong_t__ ++#endif ++#endif ++#if !defined(lzo_int16e_t) ++#if (LZO_SIZEOF_LONG == 2) ++# define lzo_int16e_t long ++# define lzo_uint16e_t unsigned long ++#elif (LZO_SIZEOF_INT == 2) ++# define lzo_int16e_t int ++# define lzo_uint16e_t unsigned int ++#elif (LZO_SIZEOF_SHORT == 2) ++# define lzo_int16e_t short int ++# define lzo_uint16e_t unsigned short int ++#elif 1 && !(LZO_CFG_TYPE_NO_MODE_HI) && (LZO_CC_CLANG || (LZO_CC_GNUC >= 0x025f00ul) || LZO_CC_LLVM) ++ typedef int lzo_int16e_hi_t__ __attribute__((__mode__(__HI__))); ++ typedef unsigned int lzo_uint16e_hi_t__ __attribute__((__mode__(__HI__))); ++# define lzo_int16e_t lzo_int16e_hi_t__ ++# define lzo_uint16e_t lzo_uint16e_hi_t__ ++#elif (LZO_SIZEOF___INT16 == 2) ++# define lzo_int16e_t __int16 ++# define lzo_uint16e_t unsigned __int16 ++#else ++#endif ++#endif ++#if defined(lzo_int16e_t) ++# define LZO_SIZEOF_LZO_INT16E_T 2 ++ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int16e_t) == 2) ++ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int16e_t) == LZO_SIZEOF_LZO_INT16E_T) ++#endif ++#if !defined(lzo_int32e_t) ++#if (LZO_SIZEOF_LONG == 4) ++# define lzo_int32e_t long int ++# define lzo_uint32e_t unsigned long int ++#elif (LZO_SIZEOF_INT == 4) ++# define lzo_int32e_t int ++# define lzo_uint32e_t unsigned int ++#elif (LZO_SIZEOF_SHORT == 4) ++# define lzo_int32e_t short int ++# define lzo_uint32e_t unsigned short int ++#elif (LZO_SIZEOF_LONG_LONG == 4) ++# define lzo_int32e_t lzo_llong_t ++# define lzo_uint32e_t lzo_ullong_t ++#elif 1 && !(LZO_CFG_TYPE_NO_MODE_SI) && (LZO_CC_CLANG || (LZO_CC_GNUC >= 0x025f00ul) || LZO_CC_LLVM) && (__INT_MAX__+0 > 2147483647L) ++ typedef int lzo_int32e_si_t__ __attribute__((__mode__(__SI__))); ++ typedef unsigned int lzo_uint32e_si_t__ __attribute__((__mode__(__SI__))); ++# define lzo_int32e_t lzo_int32e_si_t__ ++# define lzo_uint32e_t lzo_uint32e_si_t__ ++#elif 1 && !(LZO_CFG_TYPE_NO_MODE_SI) && (LZO_CC_GNUC >= 0x025f00ul) && defined(__AVR__) && (__LONG_MAX__+0 == 32767L) ++ typedef int lzo_int32e_si_t__ __attribute__((__mode__(__SI__))); ++ typedef unsigned int lzo_uint32e_si_t__ __attribute__((__mode__(__SI__))); ++# define lzo_int32e_t lzo_int32e_si_t__ ++# define lzo_uint32e_t lzo_uint32e_si_t__ ++# define LZO_INT32_C(c) (c##LL) ++# define LZO_UINT32_C(c) (c##ULL) ++#elif (LZO_SIZEOF___INT32 == 4) ++# define lzo_int32e_t __int32 ++# define lzo_uint32e_t unsigned __int32 ++#else ++#endif ++#endif ++#if defined(lzo_int32e_t) ++# define LZO_SIZEOF_LZO_INT32E_T 4 ++ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32e_t) == 4) ++ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32e_t) == LZO_SIZEOF_LZO_INT32E_T) ++#endif ++#if !defined(lzo_int64e_t) ++#if (LZO_SIZEOF___INT64 == 8) ++# if (LZO_CC_BORLANDC) && !(LZO_CFG_TYPE_PREFER___INT64) ++# define LZO_CFG_TYPE_PREFER___INT64 1 ++# endif ++#endif ++#if (LZO_SIZEOF_INT == 8) && (LZO_SIZEOF_INT < LZO_SIZEOF_LONG) ++# define lzo_int64e_t int ++# define lzo_uint64e_t unsigned int ++# define LZO_SIZEOF_LZO_INT64E_T LZO_SIZEOF_INT ++#elif (LZO_SIZEOF_LONG == 8) ++# define lzo_int64e_t long int ++# define lzo_uint64e_t unsigned long int ++# define LZO_SIZEOF_LZO_INT64E_T LZO_SIZEOF_LONG ++#elif (LZO_SIZEOF_LONG_LONG == 8) && !(LZO_CFG_TYPE_PREFER___INT64) ++# define lzo_int64e_t lzo_llong_t ++# define lzo_uint64e_t lzo_ullong_t ++# if (LZO_CC_BORLANDC) ++# define LZO_INT64_C(c) ((c) + 0ll) ++# define LZO_UINT64_C(c) ((c) + 0ull) ++# elif 0 ++# define LZO_INT64_C(c) (__lzo_gnuc_extension__ (c##LL)) ++# define LZO_UINT64_C(c) (__lzo_gnuc_extension__ (c##ULL)) ++# else ++# define LZO_INT64_C(c) (c##LL) ++# define LZO_UINT64_C(c) (c##ULL) ++# endif ++# define LZO_SIZEOF_LZO_INT64E_T LZO_SIZEOF_LONG_LONG ++#elif (LZO_SIZEOF___INT64 == 8) ++# define lzo_int64e_t __int64 ++# define lzo_uint64e_t unsigned __int64 ++# if (LZO_CC_BORLANDC) ++# define LZO_INT64_C(c) ((c) + 0i64) ++# define LZO_UINT64_C(c) ((c) + 0ui64) ++# else ++# define LZO_INT64_C(c) (c##i64) ++# define LZO_UINT64_C(c) (c##ui64) ++# endif ++# define LZO_SIZEOF_LZO_INT64E_T LZO_SIZEOF___INT64 ++#else ++#endif ++#endif ++#if defined(lzo_int64e_t) ++ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64e_t) == 8) ++ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64e_t) == LZO_SIZEOF_LZO_INT64E_T) ++#endif ++#if !defined(lzo_int32l_t) ++#if defined(lzo_int32e_t) ++# define lzo_int32l_t lzo_int32e_t ++# define lzo_uint32l_t lzo_uint32e_t ++# define LZO_SIZEOF_LZO_INT32L_T LZO_SIZEOF_LZO_INT32E_T ++#elif (LZO_SIZEOF_INT >= 4) && (LZO_SIZEOF_INT < LZO_SIZEOF_LONG) ++# define lzo_int32l_t int ++# define lzo_uint32l_t unsigned int ++# define LZO_SIZEOF_LZO_INT32L_T LZO_SIZEOF_INT ++#elif (LZO_SIZEOF_LONG >= 4) ++# define lzo_int32l_t long int ++# define lzo_uint32l_t unsigned long int ++# define LZO_SIZEOF_LZO_INT32L_T LZO_SIZEOF_LONG ++#else ++# error "lzo_int32l_t" ++#endif ++#endif ++#if 1 ++ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32l_t) >= 4) ++ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32l_t) == LZO_SIZEOF_LZO_INT32L_T) ++#endif ++#if !defined(lzo_int64l_t) ++#if defined(lzo_int64e_t) ++# define lzo_int64l_t lzo_int64e_t ++# define lzo_uint64l_t lzo_uint64e_t ++# define LZO_SIZEOF_LZO_INT64L_T LZO_SIZEOF_LZO_INT64E_T ++#else ++#endif ++#endif ++#if defined(lzo_int64l_t) ++ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64l_t) >= 8) ++ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64l_t) == LZO_SIZEOF_LZO_INT64L_T) ++#endif ++#if !defined(lzo_int32f_t) ++#if (LZO_SIZEOF_SIZE_T >= 8) ++# define lzo_int32f_t lzo_int64l_t ++# define lzo_uint32f_t lzo_uint64l_t ++# define LZO_SIZEOF_LZO_INT32F_T LZO_SIZEOF_LZO_INT64L_T ++#else ++# define lzo_int32f_t lzo_int32l_t ++# define lzo_uint32f_t lzo_uint32l_t ++# define LZO_SIZEOF_LZO_INT32F_T LZO_SIZEOF_LZO_INT32L_T ++#endif ++#endif ++#if 1 ++ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32f_t) >= 4) ++ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32f_t) == LZO_SIZEOF_LZO_INT32F_T) ++#endif ++#if !defined(lzo_int64f_t) ++#if defined(lzo_int64l_t) ++# define lzo_int64f_t lzo_int64l_t ++# define lzo_uint64f_t lzo_uint64l_t ++# define LZO_SIZEOF_LZO_INT64F_T LZO_SIZEOF_LZO_INT64L_T ++#else ++#endif ++#endif ++#if defined(lzo_int64f_t) ++ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64f_t) >= 8) ++ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64f_t) == LZO_SIZEOF_LZO_INT64F_T) ++#endif ++#if !defined(lzo_intptr_t) ++#if 1 && (LZO_OS_OS400 && (LZO_SIZEOF_VOID_P == 16)) ++# define __LZO_INTPTR_T_IS_POINTER 1 ++ typedef char* lzo_intptr_t; ++ typedef char* lzo_uintptr_t; ++# define lzo_intptr_t lzo_intptr_t ++# define lzo_uintptr_t lzo_uintptr_t ++# define LZO_SIZEOF_LZO_INTPTR_T LZO_SIZEOF_VOID_P ++#elif (LZO_CC_MSC && (_MSC_VER >= 1300) && (LZO_SIZEOF_VOID_P == 4) && (LZO_SIZEOF_INT == 4)) ++ typedef __w64 int lzo_intptr_t; ++ typedef __w64 unsigned int lzo_uintptr_t; ++# define lzo_intptr_t lzo_intptr_t ++# define lzo_uintptr_t lzo_uintptr_t ++# define LZO_SIZEOF_LZO_INTPTR_T LZO_SIZEOF_INT ++#elif (LZO_SIZEOF_SHORT == LZO_SIZEOF_VOID_P) && (LZO_SIZEOF_INT > LZO_SIZEOF_VOID_P) ++# define lzo_intptr_t short ++# define lzo_uintptr_t unsigned short ++# define LZO_SIZEOF_LZO_INTPTR_T LZO_SIZEOF_SHORT ++#elif (LZO_SIZEOF_INT >= LZO_SIZEOF_VOID_P) && (LZO_SIZEOF_INT < LZO_SIZEOF_LONG) ++# define lzo_intptr_t int ++# define lzo_uintptr_t unsigned int ++# define LZO_SIZEOF_LZO_INTPTR_T LZO_SIZEOF_INT ++#elif (LZO_SIZEOF_LONG >= LZO_SIZEOF_VOID_P) ++# define lzo_intptr_t long ++# define lzo_uintptr_t unsigned long ++# define LZO_SIZEOF_LZO_INTPTR_T LZO_SIZEOF_LONG ++#elif (LZO_SIZEOF_LZO_INT64L_T >= LZO_SIZEOF_VOID_P) ++# define lzo_intptr_t lzo_int64l_t ++# define lzo_uintptr_t lzo_uint64l_t ++# define LZO_SIZEOF_LZO_INTPTR_T LZO_SIZEOF_LZO_INT64L_T ++#else ++# error "lzo_intptr_t" ++#endif ++#endif ++#if 1 ++ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_intptr_t) >= sizeof(void *)) ++ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_intptr_t) == sizeof(lzo_uintptr_t)) ++#endif ++#if !defined(lzo_word_t) ++#if defined(LZO_WORDSIZE) && (LZO_WORDSIZE+0 > 0) ++#if (LZO_WORDSIZE == LZO_SIZEOF_LZO_INTPTR_T) && !(__LZO_INTPTR_T_IS_POINTER) ++# define lzo_word_t lzo_uintptr_t ++# define lzo_sword_t lzo_intptr_t ++# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_LZO_INTPTR_T ++#elif (LZO_WORDSIZE == LZO_SIZEOF_LONG) ++# define lzo_word_t unsigned long ++# define lzo_sword_t long ++# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_LONG ++#elif (LZO_WORDSIZE == LZO_SIZEOF_INT) ++# define lzo_word_t unsigned int ++# define lzo_sword_t int ++# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_INT ++#elif (LZO_WORDSIZE == LZO_SIZEOF_SHORT) ++# define lzo_word_t unsigned short ++# define lzo_sword_t short ++# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_SHORT ++#elif (LZO_WORDSIZE == 1) ++# define lzo_word_t unsigned char ++# define lzo_sword_t signed char ++# define LZO_SIZEOF_LZO_WORD_T 1 ++#elif (LZO_WORDSIZE == LZO_SIZEOF_LZO_INT64L_T) ++# define lzo_word_t lzo_uint64l_t ++# define lzo_sword_t lzo_int64l_t ++# define LZO_SIZEOF_LZO_WORD_T LZO_SIZEOF_LZO_INT64L_T ++#elif (LZO_ARCH_SPU) && (LZO_CC_GNUC) ++#if 0 ++ typedef unsigned lzo_word_t __attribute__((__mode__(__V16QI__))); ++ typedef int lzo_sword_t __attribute__((__mode__(__V16QI__))); ++# define lzo_word_t lzo_word_t ++# define lzo_sword_t lzo_sword_t ++# define LZO_SIZEOF_LZO_WORD_T 16 ++#endif ++#else ++# error "lzo_word_t" ++#endif ++#endif ++#endif ++#if 1 && defined(lzo_word_t) ++ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_word_t) == LZO_WORDSIZE) ++ LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_sword_t) == LZO_WORDSIZE) ++#endif ++#if 1 ++#define lzo_int8_t signed char ++#define lzo_uint8_t unsigned char ++#define LZO_SIZEOF_LZO_INT8_T 1 ++LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int8_t) == 1) ++LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int8_t) == sizeof(lzo_uint8_t)) ++#endif ++#if defined(lzo_int16e_t) ++#define lzo_int16_t lzo_int16e_t ++#define lzo_uint16_t lzo_uint16e_t ++#define LZO_SIZEOF_LZO_INT16_T LZO_SIZEOF_LZO_INT16E_T ++LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int16_t) == 2) ++LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int16_t) == sizeof(lzo_uint16_t)) ++#endif ++#if defined(lzo_int32e_t) ++#define lzo_int32_t lzo_int32e_t ++#define lzo_uint32_t lzo_uint32e_t ++#define LZO_SIZEOF_LZO_INT32_T LZO_SIZEOF_LZO_INT32E_T ++LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32_t) == 4) ++LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int32_t) == sizeof(lzo_uint32_t)) ++#endif ++#if defined(lzo_int64e_t) ++#define lzo_int64_t lzo_int64e_t ++#define lzo_uint64_t lzo_uint64e_t ++#define LZO_SIZEOF_LZO_INT64_T LZO_SIZEOF_LZO_INT64E_T ++LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64_t) == 8) ++LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int64_t) == sizeof(lzo_uint64_t)) ++#endif ++#if 1 ++#define lzo_int_least32_t lzo_int32l_t ++#define lzo_uint_least32_t lzo_uint32l_t ++#define LZO_SIZEOF_LZO_INT_LEAST32_T LZO_SIZEOF_LZO_INT32L_T ++LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_least32_t) >= 4) ++LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_least32_t) == sizeof(lzo_uint_least32_t)) ++#endif ++#if defined(lzo_int64l_t) ++#define lzo_int_least64_t lzo_int64l_t ++#define lzo_uint_least64_t lzo_uint64l_t ++#define LZO_SIZEOF_LZO_INT_LEAST64_T LZO_SIZEOF_LZO_INT64L_T ++LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_least64_t) >= 8) ++LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_least64_t) == sizeof(lzo_uint_least64_t)) ++#endif ++#if 1 ++#define lzo_int_fast32_t lzo_int32f_t ++#define lzo_uint_fast32_t lzo_uint32f_t ++#define LZO_SIZEOF_LZO_INT_FAST32_T LZO_SIZEOF_LZO_INT32F_T ++LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_fast32_t) >= 4) ++LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_fast32_t) == sizeof(lzo_uint_fast32_t)) ++#endif ++#if defined(lzo_int64f_t) ++#define lzo_int_fast64_t lzo_int64f_t ++#define lzo_uint_fast64_t lzo_uint64f_t ++#define LZO_SIZEOF_LZO_INT_FAST64_T LZO_SIZEOF_LZO_INT64F_T ++LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_fast64_t) >= 8) ++LZO_COMPILE_TIME_ASSERT_HEADER(sizeof(lzo_int_fast64_t) == sizeof(lzo_uint_fast64_t)) ++#endif ++#if !defined(LZO_INT16_C) ++# if (LZO_BROKEN_INTEGRAL_CONSTANTS) && (LZO_SIZEOF_INT >= 2) ++# define LZO_INT16_C(c) ((c) + 0) ++# define LZO_UINT16_C(c) ((c) + 0U) ++# elif (LZO_BROKEN_INTEGRAL_CONSTANTS) && (LZO_SIZEOF_LONG >= 2) ++# define LZO_INT16_C(c) ((c) + 0L) ++# define LZO_UINT16_C(c) ((c) + 0UL) ++# elif (LZO_SIZEOF_INT >= 2) ++# define LZO_INT16_C(c) (c) ++# define LZO_UINT16_C(c) (c##U) ++# elif (LZO_SIZEOF_LONG >= 2) ++# define LZO_INT16_C(c) (c##L) ++# define LZO_UINT16_C(c) (c##UL) ++# else ++# error "LZO_INT16_C" ++# endif ++#endif ++#if !defined(LZO_INT32_C) ++# if (LZO_BROKEN_INTEGRAL_CONSTANTS) && (LZO_SIZEOF_INT >= 4) ++# define LZO_INT32_C(c) ((c) + 0) ++# define LZO_UINT32_C(c) ((c) + 0U) ++# elif (LZO_BROKEN_INTEGRAL_CONSTANTS) && (LZO_SIZEOF_LONG >= 4) ++# define LZO_INT32_C(c) ((c) + 0L) ++# define LZO_UINT32_C(c) ((c) + 0UL) ++# elif (LZO_SIZEOF_INT >= 4) ++# define LZO_INT32_C(c) (c) ++# define LZO_UINT32_C(c) (c##U) ++# elif (LZO_SIZEOF_LONG >= 4) ++# define LZO_INT32_C(c) (c##L) ++# define LZO_UINT32_C(c) (c##UL) ++# elif (LZO_SIZEOF_LONG_LONG >= 4) ++# define LZO_INT32_C(c) (c##LL) ++# define LZO_UINT32_C(c) (c##ULL) ++# else ++# error "LZO_INT32_C" ++# endif ++#endif ++#if !defined(LZO_INT64_C) && defined(lzo_int64l_t) ++# if (LZO_BROKEN_INTEGRAL_CONSTANTS) && (LZO_SIZEOF_INT >= 8) ++# define LZO_INT64_C(c) ((c) + 0) ++# define LZO_UINT64_C(c) ((c) + 0U) ++# elif (LZO_BROKEN_INTEGRAL_CONSTANTS) && (LZO_SIZEOF_LONG >= 8) ++# define LZO_INT64_C(c) ((c) + 0L) ++# define LZO_UINT64_C(c) ((c) + 0UL) ++# elif (LZO_SIZEOF_INT >= 8) ++# define LZO_INT64_C(c) (c) ++# define LZO_UINT64_C(c) (c##U) ++# elif (LZO_SIZEOF_LONG >= 8) ++# define LZO_INT64_C(c) (c##L) ++# define LZO_UINT64_C(c) (c##UL) ++# else ++# error "LZO_INT64_C" ++# endif ++#endif ++#endif + + #endif /* already included */ + +-/* vim:set ts=4 et: */ ++/* vim:set ts=4 sw=4 et: */ diff --git a/grub-core/lib/minilzo/minilzo.h b/grub-core/lib/minilzo/minilzo.h -index 74fefa9fe..793745467 100644 +index 74fefa9fe20..79374546748 100644 --- a/grub-core/lib/minilzo/minilzo.h +++ b/grub-core/lib/minilzo/minilzo.h @@ -2,22 +2,7 @@ @@ -8786,5 +8508,5 @@ index 74fefa9fe..793745467 100644 -- -2.14.3 +2.15.0 diff --git a/0072-Allow-fallback-to-include-entries-by-title-not-just-.patch b/0072-Allow-fallback-to-include-entries-by-title-not-just-.patch index 2d56ef63..d9c58f5b 100644 --- a/0072-Allow-fallback-to-include-entries-by-title-not-just-.patch +++ b/0072-Allow-fallback-to-include-entries-by-title-not-just-.patch @@ -1,7 +1,7 @@ From 15e9ccc8abd5621107788bea6ae6f2bdb27a3ed3 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 5 Sep 2014 10:07:04 -0400 -Subject: [PATCH 072/198] Allow "fallback" to include entries by title, not +Subject: [PATCH 072/206] Allow "fallback" to include entries by title, not just number. Resolves: rhbz#1026084 @@ -12,7 +12,7 @@ Signed-off-by: Peter Jones 1 file changed, 58 insertions(+), 27 deletions(-) diff --git a/grub-core/normal/menu.c b/grub-core/normal/menu.c -index e7a83c2d6..d2f64b05e 100644 +index e7a83c2d6e2..d2f64b05e0a 100644 --- a/grub-core/normal/menu.c +++ b/grub-core/normal/menu.c @@ -163,16 +163,41 @@ grub_menu_set_timeout (int timeout) @@ -140,5 +140,5 @@ index e7a83c2d6..d2f64b05e 100644 static int get_entry_number (grub_menu_t menu, const char *name) -- -2.14.3 +2.15.0 diff --git a/0073-Add-GRUB_DISABLE_UUID.patch b/0073-Add-GRUB_DISABLE_UUID.patch index a8faaf9b..b4383eb8 100644 --- a/0073-Add-GRUB_DISABLE_UUID.patch +++ b/0073-Add-GRUB_DISABLE_UUID.patch @@ -1,7 +1,7 @@ From 87602724b509a60628623baabf5a2c7741a68884 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Sep 2014 16:49:25 -0400 -Subject: [PATCH 073/198] Add GRUB_DISABLE_UUID. +Subject: [PATCH 073/206] Add GRUB_DISABLE_UUID. This will cause "search --fs-uuid --set=root ..." not to be generated by grub2-mkconfig, and instead simply attempt to use the grub device name @@ -15,7 +15,7 @@ Signed-off-by: Peter Jones 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/docs/grub.texi b/docs/grub.texi -index a0c4b9e4e..6fdd2a041 100644 +index a0c4b9e4e8e..6fdd2a041f7 100644 --- a/docs/grub.texi +++ b/docs/grub.texi @@ -1409,6 +1409,13 @@ disable the use of UUIDs, set this option to @samp{true}. @@ -33,7 +33,7 @@ index a0c4b9e4e..6fdd2a041 100644 If graphical video support is required, either because the @samp{gfxterm} graphical terminal is in use or because @samp{GRUB_GFXPAYLOAD_LINUX} is set, diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in -index 3b070fd76..c088b7054 100644 +index 3b070fd7632..c088b705442 100644 --- a/util/grub-mkconfig.in +++ b/util/grub-mkconfig.in @@ -133,11 +133,11 @@ fi @@ -73,7 +73,7 @@ index 3b070fd76..c088b7054 100644 GRUB_GFXMODE \ GRUB_BACKGROUND \ diff --git a/util/grub-mkconfig_lib.in b/util/grub-mkconfig_lib.in -index 60b31cadd..cf35e4174 100644 +index 60b31caddeb..cf35e417470 100644 --- a/util/grub-mkconfig_lib.in +++ b/util/grub-mkconfig_lib.in @@ -156,7 +156,7 @@ prepare_grub_to_access_device () @@ -95,5 +95,5 @@ index 60b31cadd..cf35e4174 100644 else echo $device |sed 's, ,_,g' -- -2.14.3 +2.15.0 diff --git a/0074-Make-exit-take-a-return-code.patch b/0074-Make-exit-take-a-return-code.patch index 48ac129c..7c9cf525 100644 --- a/0074-Make-exit-take-a-return-code.patch +++ b/0074-Make-exit-take-a-return-code.patch @@ -1,7 +1,7 @@ From 68d514b51b81911d8359d7825618112dae4a44d9 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 26 Feb 2014 21:49:12 -0500 -Subject: [PATCH 074/198] Make "exit" take a return code. +Subject: [PATCH 074/206] Make "exit" take a return code. This adds "exit" with a return code. With this patch, any "exit" command /may/ include a return code, and on platforms that support @@ -27,7 +27,7 @@ Signed-off-by: Peter Jones 14 files changed, 39 insertions(+), 21 deletions(-) diff --git a/grub-core/commands/minicmd.c b/grub-core/commands/minicmd.c -index a3a118241..b25ca4b9f 100644 +index a3a11824172..b25ca4b9f17 100644 --- a/grub-core/commands/minicmd.c +++ b/grub-core/commands/minicmd.c @@ -176,12 +176,24 @@ grub_mini_cmd_lsmod (struct grub_command *cmd __attribute__ ((unused)), @@ -60,7 +60,7 @@ index a3a118241..b25ca4b9f 100644 } diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c -index d467785fc..684ca93f8 100644 +index d467785fc6c..684ca93f8f4 100644 --- a/grub-core/kern/efi/efi.c +++ b/grub-core/kern/efi/efi.c @@ -155,11 +155,16 @@ grub_efi_get_loaded_image (grub_efi_handle_t image_handle) @@ -83,7 +83,7 @@ index d467785fc..684ca93f8 100644 } diff --git a/grub-core/kern/emu/main.c b/grub-core/kern/emu/main.c -index 425bb9603..55ea5a11c 100644 +index 425bb960347..55ea5a11ccd 100644 --- a/grub-core/kern/emu/main.c +++ b/grub-core/kern/emu/main.c @@ -67,7 +67,7 @@ grub_reboot (void) @@ -96,7 +96,7 @@ index 425bb9603..55ea5a11c 100644 grub_reboot (); } diff --git a/grub-core/kern/emu/misc.c b/grub-core/kern/emu/misc.c -index 76661337f..82012a72f 100644 +index 76661337f10..82012a72fcb 100644 --- a/grub-core/kern/emu/misc.c +++ b/grub-core/kern/emu/misc.c @@ -137,9 +137,10 @@ xasprintf (const char *fmt, ...) @@ -113,7 +113,7 @@ index 76661337f..82012a72f 100644 #endif diff --git a/grub-core/kern/i386/coreboot/init.c b/grub-core/kern/i386/coreboot/init.c -index 3314f027f..36f9134b7 100644 +index 3314f027fec..36f9134b7b7 100644 --- a/grub-core/kern/i386/coreboot/init.c +++ b/grub-core/kern/i386/coreboot/init.c @@ -41,7 +41,7 @@ extern grub_uint8_t _end[]; @@ -126,7 +126,7 @@ index 3314f027f..36f9134b7 100644 /* We can't use grub_fatal() in this function. This would create an infinite loop, since grub_fatal() calls grub_abort() which in turn calls grub_exit(). */ diff --git a/grub-core/kern/i386/qemu/init.c b/grub-core/kern/i386/qemu/init.c -index 271b6fbfa..9fafe98f0 100644 +index 271b6fbfabd..9fafe98f015 100644 --- a/grub-core/kern/i386/qemu/init.c +++ b/grub-core/kern/i386/qemu/init.c @@ -42,7 +42,7 @@ extern grub_uint8_t _end[]; @@ -139,7 +139,7 @@ index 271b6fbfa..9fafe98f0 100644 /* We can't use grub_fatal() in this function. This would create an infinite loop, since grub_fatal() calls grub_abort() which in turn calls grub_exit(). */ diff --git a/grub-core/kern/ieee1275/init.c b/grub-core/kern/ieee1275/init.c -index 12590225e..e69c0133e 100644 +index 12590225eca..e69c0133e69 100644 --- a/grub-core/kern/ieee1275/init.c +++ b/grub-core/kern/ieee1275/init.c @@ -68,7 +68,7 @@ grub_addr_t grub_ieee1275_original_stack; @@ -152,7 +152,7 @@ index 12590225e..e69c0133e 100644 grub_ieee1275_exit (); } diff --git a/grub-core/kern/mips/arc/init.c b/grub-core/kern/mips/arc/init.c -index 3834a1490..86b3a25ec 100644 +index 3834a149093..86b3a25ec40 100644 --- a/grub-core/kern/mips/arc/init.c +++ b/grub-core/kern/mips/arc/init.c @@ -276,7 +276,7 @@ grub_halt (void) @@ -165,7 +165,7 @@ index 3834a1490..86b3a25ec 100644 GRUB_ARC_FIRMWARE_VECTOR->exit (); diff --git a/grub-core/kern/mips/loongson/init.c b/grub-core/kern/mips/loongson/init.c -index 7b96531b9..dff598ca7 100644 +index 7b96531b983..dff598ca7b0 100644 --- a/grub-core/kern/mips/loongson/init.c +++ b/grub-core/kern/mips/loongson/init.c @@ -304,7 +304,7 @@ grub_halt (void) @@ -178,7 +178,7 @@ index 7b96531b9..dff598ca7 100644 grub_halt (); } diff --git a/grub-core/kern/mips/qemu_mips/init.c b/grub-core/kern/mips/qemu_mips/init.c -index be88b77d2..8b6c55ffc 100644 +index be88b77d22d..8b6c55ffc01 100644 --- a/grub-core/kern/mips/qemu_mips/init.c +++ b/grub-core/kern/mips/qemu_mips/init.c @@ -75,7 +75,7 @@ grub_machine_fini (int flags __attribute__ ((unused))) @@ -191,7 +191,7 @@ index be88b77d2..8b6c55ffc 100644 grub_halt (); } diff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c -index 3b633d51f..952411d5d 100644 +index 3b633d51f4c..952411d5dc6 100644 --- a/grub-core/kern/misc.c +++ b/grub-core/kern/misc.c @@ -1095,7 +1095,7 @@ grub_abort (void) @@ -204,7 +204,7 @@ index 3b633d51f..952411d5d 100644 void diff --git a/grub-core/kern/uboot/init.c b/grub-core/kern/uboot/init.c -index 3e338645c..be2a5be1d 100644 +index 3e338645c57..be2a5be1d07 100644 --- a/grub-core/kern/uboot/init.c +++ b/grub-core/kern/uboot/init.c @@ -39,9 +39,9 @@ extern grub_size_t grub_total_module_size; @@ -229,7 +229,7 @@ index 3e338645c..be2a5be1d 100644 else if (ver > API_SIG_VERSION) { diff --git a/grub-core/kern/xen/init.c b/grub-core/kern/xen/init.c -index 0559c033c..fce526d41 100644 +index 0559c033c3d..fce526d417b 100644 --- a/grub-core/kern/xen/init.c +++ b/grub-core/kern/xen/init.c @@ -549,7 +549,7 @@ grub_machine_init (void) @@ -242,7 +242,7 @@ index 0559c033c..fce526d41 100644 struct sched_shutdown arg; diff --git a/include/grub/misc.h b/include/grub/misc.h -index 2a9f87cc2..062081437 100644 +index 2a9f87cc255..06208143779 100644 --- a/include/grub/misc.h +++ b/include/grub/misc.h @@ -334,7 +334,7 @@ int EXPORT_FUNC(grub_vsnprintf) (char *str, grub_size_t n, const char *fmt, @@ -255,5 +255,5 @@ index 2a9f87cc2..062081437 100644 grub_uint64_t d, grub_uint64_t *r); -- -2.14.3 +2.15.0 diff --git a/0075-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch b/0075-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch index ceb5435f..0065b739 100644 --- a/0075-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch +++ b/0075-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch @@ -1,7 +1,7 @@ From 126f6952b853ea67e784650ed12f365ab7988f51 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 22 Jul 2015 11:21:01 -0400 -Subject: [PATCH 075/198] Mark po/exclude.pot as binary so git won't try to +Subject: [PATCH 075/206] Mark po/exclude.pot as binary so git won't try to diff nonprintables. Signed-off-by: Peter Jones @@ -12,11 +12,11 @@ Signed-off-by: Peter Jones diff --git a/.gitattributes b/.gitattributes new file mode 100644 -index 000000000..33ffaa404 +index 00000000000..33ffaa40460 --- /dev/null +++ b/.gitattributes @@ -0,0 +1 @@ +po/exclude.pot binary -- -2.14.3 +2.15.0 diff --git a/0076-Make-efi-machines-load-an-env-block-from-a-variable.patch b/0076-Make-efi-machines-load-an-env-block-from-a-variable.patch index 50c6437e..000c33d4 100644 --- a/0076-Make-efi-machines-load-an-env-block-from-a-variable.patch +++ b/0076-Make-efi-machines-load-an-env-block-from-a-variable.patch @@ -1,7 +1,7 @@ From 506b52759b2b2ad46e7b389979fcbaa78d68dab9 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 7 Dec 2015 14:20:49 -0500 -Subject: [PATCH 076/198] Make efi machines load an env block from a variable +Subject: [PATCH 076/206] Make efi machines load an env block from a variable Signed-off-by: Peter Jones --- @@ -10,7 +10,7 @@ Signed-off-by: Peter Jones 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index a65c27f7f..1eb86bed3 100644 +index a65c27f7ff2..1eb86bed33b 100644 --- a/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def @@ -191,6 +191,7 @@ kernel = { @@ -22,7 +22,7 @@ index a65c27f7f..1eb86bed3 100644 i386_multiboot = kern/i386/pc/acpi.c; i386_coreboot = kern/acpi.c; diff --git a/grub-core/kern/efi/init.c b/grub-core/kern/efi/init.c -index 2c31847bf..f7782b6e1 100644 +index 2c31847bf6d..f7782b6e114 100644 --- a/grub-core/kern/efi/init.c +++ b/grub-core/kern/efi/init.c @@ -25,9 +25,40 @@ @@ -80,5 +80,5 @@ index 2c31847bf..f7782b6e1 100644 char **path); -- -2.14.3 +2.15.0 diff --git a/0077-DHCP-client-ID-and-UUID-options-added.patch b/0077-DHCP-client-ID-and-UUID-options-added.patch index 5cdc9290..f391b42a 100644 --- a/0077-DHCP-client-ID-and-UUID-options-added.patch +++ b/0077-DHCP-client-ID-and-UUID-options-added.patch @@ -1,7 +1,7 @@ From 8a0b654a520e407da69e0cf64f3dd6bb7cf86240 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 27 Nov 2012 17:18:53 -0200 -Subject: [PATCH 077/198] DHCP client ID and UUID options added. +Subject: [PATCH 077/206] DHCP client ID and UUID options added. --- grub-core/net/bootp.c | 87 ++++++++++++++++++++++++++++++++++++++++++++++----- @@ -9,7 +9,7 @@ Subject: [PATCH 077/198] DHCP client ID and UUID options added. 2 files changed, 81 insertions(+), 8 deletions(-) diff --git a/grub-core/net/bootp.c b/grub-core/net/bootp.c -index 9e2fdb795..f03eeab2f 100644 +index 9e2fdb795f5..f03eeab2fb4 100644 --- a/grub-core/net/bootp.c +++ b/grub-core/net/bootp.c @@ -25,6 +25,49 @@ @@ -128,7 +128,7 @@ index 9e2fdb795..f03eeab2f 100644 grub_cmd_dhcpopt (struct grub_command *cmd __attribute__ ((unused)), int argc, char **args) diff --git a/include/grub/net.h b/include/grub/net.h -index 1096b2432..e266bae23 100644 +index 1096b24322e..e266bae23f4 100644 --- a/include/grub/net.h +++ b/include/grub/net.h @@ -457,6 +457,8 @@ enum @@ -141,5 +141,5 @@ index 1096b2432..e266bae23 100644 }; -- -2.14.3 +2.15.0 diff --git a/0078-trim-arp-packets-with-abnormal-size.patch b/0078-trim-arp-packets-with-abnormal-size.patch index c2f62d0a..5e4a36b9 100644 --- a/0078-trim-arp-packets-with-abnormal-size.patch +++ b/0078-trim-arp-packets-with-abnormal-size.patch @@ -1,7 +1,7 @@ From c0fa21c8898437747ce093884e6aba48d45ac329 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Wed, 5 Feb 2014 09:42:42 -0200 -Subject: [PATCH 078/198] trim arp packets with abnormal size +Subject: [PATCH 078/206] trim arp packets with abnormal size GRUB uses arp request to create the arp response. If the incoming packet is foobared, GRUB needs to trim the arp response packet before sending it. @@ -10,7 +10,7 @@ is foobared, GRUB needs to trim the arp response packet before sending it. 1 file changed, 6 insertions(+) diff --git a/grub-core/net/arp.c b/grub-core/net/arp.c -index 54306e3b1..2083b5a4b 100644 +index 54306e3b16d..2083b5a4b91 100644 --- a/grub-core/net/arp.c +++ b/grub-core/net/arp.c @@ -150,6 +150,12 @@ grub_net_arp_receive (struct grub_net_buff *nb, struct grub_net_card *card, @@ -27,5 +27,5 @@ index 54306e3b1..2083b5a4b 100644 struct grub_net_buff nb_reply; struct arppkt *arp_reply; -- -2.14.3 +2.15.0 diff --git a/0079-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch b/0079-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch index 4a7c8860..5b4028fc 100644 --- a/0079-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch +++ b/0079-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch @@ -1,7 +1,7 @@ From 60262dc77512d017974f38768d7492b4588d54f0 Mon Sep 17 00:00:00 2001 From: Prarit Bhargava Date: Wed, 12 Mar 2014 10:58:16 -0400 -Subject: [PATCH 079/198] Fix bad test on GRUB_DISABLE_SUBMENU. +Subject: [PATCH 079/206] Fix bad test on GRUB_DISABLE_SUBMENU. The file /etc/grub.d/10_linux does @@ -20,7 +20,7 @@ Resolves: rhbz#1063414 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index de9044c7f..cf6331f2a 100644 +index de9044c7f28..cf6331f2a51 100644 --- a/util/grub.d/10_linux.in +++ b/util/grub.d/10_linux.in @@ -224,7 +224,11 @@ while [ "x$list" != "x" ] ; do @@ -37,5 +37,5 @@ index de9044c7f..cf6331f2a 100644 "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" -- -2.14.3 +2.15.0 diff --git a/0080-Add-support-for-UEFI-operating-systems-returned-by-o.patch b/0080-Add-support-for-UEFI-operating-systems-returned-by-o.patch index c87fe7ca..a2e234da 100644 --- a/0080-Add-support-for-UEFI-operating-systems-returned-by-o.patch +++ b/0080-Add-support-for-UEFI-operating-systems-returned-by-o.patch @@ -1,7 +1,7 @@ From 699b7db9cabfe5e2dd48e61fcb079a91df3af4a7 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Wed, 12 Jun 2013 11:51:49 -0400 -Subject: [PATCH 080/198] Add support for UEFI operating systems returned by +Subject: [PATCH 080/206] Add support for UEFI operating systems returned by os-prober os-prober returns UEFI operating systems in the form: @@ -15,7 +15,7 @@ contrast to legacy OSes, where path is the device string. Handle this case. 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/util/grub.d/30_os-prober.in b/util/grub.d/30_os-prober.in -index 515a68c7a..9b8f5968e 100644 +index 515a68c7aa0..9b8f5968e2d 100644 --- a/util/grub.d/30_os-prober.in +++ b/util/grub.d/30_os-prober.in @@ -328,8 +328,23 @@ EOF @@ -46,5 +46,5 @@ index 515a68c7a..9b8f5968e 100644 esac done -- -2.14.3 +2.15.0 diff --git a/0081-Migrate-PPC-from-Yaboot-to-Grub2.patch b/0081-Migrate-PPC-from-Yaboot-to-Grub2.patch index de58e27b..307a763d 100644 --- a/0081-Migrate-PPC-from-Yaboot-to-Grub2.patch +++ b/0081-Migrate-PPC-from-Yaboot-to-Grub2.patch @@ -1,7 +1,7 @@ From 91b2efdd5e9c3b0784d0a70282407324f07a30b8 Mon Sep 17 00:00:00 2001 From: Mark Hamzy Date: Wed, 28 Mar 2012 14:46:41 -0500 -Subject: [PATCH 081/198] Migrate PPC from Yaboot to Grub2 +Subject: [PATCH 081/206] Migrate PPC from Yaboot to Grub2 Add configuration support for serial terminal consoles. This will set the maximum screen size so that text is not overwritten. @@ -12,7 +12,7 @@ maximum screen size so that text is not overwritten. create mode 100644 util/grub.d/20_ppc_terminfo.in diff --git a/Makefile.util.def b/Makefile.util.def -index f9caccb97..6d452da02 100644 +index f9caccb9780..6d452da029f 100644 --- a/Makefile.util.def +++ b/Makefile.util.def @@ -486,6 +486,13 @@ script = { @@ -31,7 +31,7 @@ index f9caccb97..6d452da02 100644 common = util/grub.d/30_os-prober.in; diff --git a/util/grub.d/20_ppc_terminfo.in b/util/grub.d/20_ppc_terminfo.in new file mode 100644 -index 000000000..10d665868 +index 00000000000..10d66586820 --- /dev/null +++ b/util/grub.d/20_ppc_terminfo.in @@ -0,0 +1,114 @@ @@ -150,5 +150,5 @@ index 000000000..10d665868 + terminfo -g ${X}x${Y} ${TERMINAL} +EOF -- -2.14.3 +2.15.0 diff --git a/0082-Add-fw_path-variable-revised.patch b/0082-Add-fw_path-variable-revised.patch index b6a4eef4..cd65ba57 100644 --- a/0082-Add-fw_path-variable-revised.patch +++ b/0082-Add-fw_path-variable-revised.patch @@ -1,7 +1,7 @@ From bcb1f1a6a5530ecbc4b674e61acbb406592714c6 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Wed, 19 Sep 2012 21:22:55 -0300 -Subject: [PATCH 082/198] Add fw_path variable (revised) +Subject: [PATCH 082/206] Add fw_path variable (revised) This patch makes grub look for its config file on efi where the app was found. It was originally written by Matthew Garrett, and adapted to fix the @@ -14,7 +14,7 @@ https://bugzilla.redhat.com/show_bug.cgi?id=857936 2 files changed, 30 insertions(+), 8 deletions(-) diff --git a/grub-core/kern/main.c b/grub-core/kern/main.c -index 9cad0c448..8ab7794c4 100644 +index 9cad0c4485c..8ab7794c47b 100644 --- a/grub-core/kern/main.c +++ b/grub-core/kern/main.c @@ -127,16 +127,15 @@ grub_set_prefix_and_root (void) @@ -41,7 +41,7 @@ index 9cad0c448..8ab7794c4 100644 } diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c -index 249e19bc7..759c475c4 100644 +index 249e19bc788..759c475c4d9 100644 --- a/grub-core/normal/main.c +++ b/grub-core/normal/main.c @@ -338,7 +338,30 @@ grub_cmd_normal (struct grub_command *cmd __attribute__ ((unused)), @@ -77,5 +77,5 @@ index 249e19bc7..759c475c4 100644 prefix = grub_env_get ("prefix"); if (prefix) -- -2.14.3 +2.15.0 diff --git a/0083-Add-support-for-linuxefi.patch b/0083-Add-support-for-linuxefi.patch index 260a980a..5bb75c2b 100644 --- a/0083-Add-support-for-linuxefi.patch +++ b/0083-Add-support-for-linuxefi.patch @@ -1,7 +1,7 @@ From 28136df7d90f865a8030a0ff6513dacb3096dc10 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 10 Jul 2012 11:58:52 -0400 -Subject: [PATCH 083/198] Add support for linuxefi +Subject: [PATCH 083/206] Add support for linuxefi --- grub-core/Makefile.core.def | 8 + @@ -13,7 +13,7 @@ Subject: [PATCH 083/198] Add support for linuxefi create mode 100644 grub-core/loader/i386/efi/linux.c diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 1eb86bed3..c653c71c5 100644 +index 1eb86bed33b..c653c71c594 100644 --- a/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def @@ -1764,6 +1764,14 @@ module = { @@ -32,7 +32,7 @@ index 1eb86bed3..c653c71c5 100644 name = chain; efi = loader/efi/chainloader.c; diff --git a/grub-core/kern/efi/mm.c b/grub-core/kern/efi/mm.c -index ac2a4c556..f5440cb1d 100644 +index ac2a4c556b8..f5440cb1df9 100644 --- a/grub-core/kern/efi/mm.c +++ b/grub-core/kern/efi/mm.c @@ -49,6 +49,38 @@ static grub_efi_uintn_t finish_desc_size; @@ -76,7 +76,7 @@ index ac2a4c556..f5440cb1d 100644 grub_efi_allocate_pages_real (grub_efi_physical_address_t address, diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c new file mode 100644 -index 000000000..b79e6320b +index 00000000000..b79e6320ba9 --- /dev/null +++ b/grub-core/loader/i386/efi/linux.c @@ -0,0 +1,371 @@ @@ -452,7 +452,7 @@ index 000000000..b79e6320b + grub_unregister_command (cmd_initrd); +} diff --git a/include/grub/efi/efi.h b/include/grub/efi/efi.h -index 3fa082816..91e29ce66 100644 +index 3fa082816ca..91e29ce66f1 100644 --- a/include/grub/efi/efi.h +++ b/include/grub/efi/efi.h @@ -47,6 +47,9 @@ EXPORT_FUNC(grub_efi_allocate_fixed) (grub_efi_physical_address_t address, @@ -466,7 +466,7 @@ index 3fa082816..91e29ce66 100644 grub_efi_uintn_t pages); int diff --git a/include/grub/i386/linux.h b/include/grub/i386/linux.h -index da0ca3b83..fc36bdaf3 100644 +index da0ca3b83cd..fc36bdaf367 100644 --- a/include/grub/i386/linux.h +++ b/include/grub/i386/linux.h @@ -139,6 +139,7 @@ struct linux_kernel_header @@ -478,5 +478,5 @@ index da0ca3b83..fc36bdaf3 100644 /* Boot parameters for Linux based on 2.6.12. This is used by the setup -- -2.14.3 +2.15.0 diff --git a/0084-Use-linuxefi-and-initrdefi-where-appropriate.patch b/0084-Use-linuxefi-and-initrdefi-where-appropriate.patch index 9794bef5..3c0be259 100644 --- a/0084-Use-linuxefi-and-initrdefi-where-appropriate.patch +++ b/0084-Use-linuxefi-and-initrdefi-where-appropriate.patch @@ -1,14 +1,14 @@ From e915644108ed022ad0cc5d2d987f116d2605bcf2 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 16 Jul 2012 18:57:11 -0400 -Subject: [PATCH 084/198] Use "linuxefi" and "initrdefi" where appropriate. +Subject: [PATCH 084/206] Use "linuxefi" and "initrdefi" where appropriate. --- util/grub.d/10_linux.in | 18 ++++++++++++++++-- 1 file changed, 16 insertions(+), 2 deletions(-) diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index cf6331f2a..8ccf012f7 100644 +index cf6331f2a51..8ccf012f747 100644 --- a/util/grub.d/10_linux.in +++ b/util/grub.d/10_linux.in @@ -129,17 +129,31 @@ linux_entry () @@ -46,5 +46,5 @@ index cf6331f2a..8ccf012f7 100644 sed "s/^/$submenu_indentation/" << EOF } -- -2.14.3 +2.15.0 diff --git a/0085-Don-t-allow-insmod-when-secure-boot-is-enabled.patch b/0085-Don-t-allow-insmod-when-secure-boot-is-enabled.patch index 4af2ddef..3edfe4ce 100644 --- a/0085-Don-t-allow-insmod-when-secure-boot-is-enabled.patch +++ b/0085-Don-t-allow-insmod-when-secure-boot-is-enabled.patch @@ -1,7 +1,7 @@ From b1eb9a8b9aa961bf6b6f40d6b4d22a5741f29ae4 Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Tue, 23 Oct 2012 10:40:49 -0400 -Subject: [PATCH 085/198] Don't allow insmod when secure boot is enabled. +Subject: [PATCH 085/206] Don't allow insmod when secure boot is enabled. Hi, @@ -23,7 +23,7 @@ moves the check into grub_dl_load_file. 3 files changed, 51 insertions(+) diff --git a/grub-core/kern/dl.c b/grub-core/kern/dl.c -index e394cd96f..621070918 100644 +index e394cd96f8c..621070918d4 100644 --- a/grub-core/kern/dl.c +++ b/grub-core/kern/dl.c @@ -32,12 +32,21 @@ @@ -69,7 +69,7 @@ index e394cd96f..621070918 100644 file = grub_file_open (filename); diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c -index 684ca93f8..2588b481e 100644 +index 684ca93f8f4..2588b481e76 100644 --- a/grub-core/kern/efi/efi.c +++ b/grub-core/kern/efi/efi.c @@ -269,6 +269,34 @@ grub_efi_get_variable (const char *var, const grub_efi_guid_t *guid, @@ -108,7 +108,7 @@ index 684ca93f8..2588b481e 100644 /* Search the mods section from the PE32/PE32+ image. This code uses diff --git a/include/grub/efi/efi.h b/include/grub/efi/efi.h -index 91e29ce66..bb3ab7dfd 100644 +index 91e29ce66f1..bb3ab7dfdeb 100644 --- a/include/grub/efi/efi.h +++ b/include/grub/efi/efi.h @@ -83,6 +83,7 @@ EXPORT_FUNC (grub_efi_set_variable) (const char *var, @@ -120,5 +120,5 @@ index 91e29ce66..bb3ab7dfd 100644 EXPORT_FUNC (grub_efi_compare_device_paths) (const grub_efi_device_path_t *dp1, const grub_efi_device_path_t *dp2); -- -2.14.3 +2.15.0 diff --git a/0086-Pass-x-hex-hex-straight-through-unmolested.patch b/0086-Pass-x-hex-hex-straight-through-unmolested.patch index 119fa904..c6887aed 100644 --- a/0086-Pass-x-hex-hex-straight-through-unmolested.patch +++ b/0086-Pass-x-hex-hex-straight-through-unmolested.patch @@ -1,7 +1,7 @@ From cc8be4cafeb5a0af779afe5d2856da434c165612 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 1 Oct 2012 13:24:37 -0400 -Subject: [PATCH 086/198] Pass "\x[[:hex:]][[:hex:]]" straight through +Subject: [PATCH 086/206] Pass "\x[[:hex:]][[:hex:]]" straight through unmolested. --- @@ -11,7 +11,7 @@ Subject: [PATCH 086/198] Pass "\x[[:hex:]][[:hex:]]" straight through 3 files changed, 84 insertions(+), 9 deletions(-) diff --git a/grub-core/commands/wildcard.c b/grub-core/commands/wildcard.c -index 9b4e72766..02c46f9fd 100644 +index 9b4e72766ff..02c46f9fdfa 100644 --- a/grub-core/commands/wildcard.c +++ b/grub-core/commands/wildcard.c @@ -462,6 +462,12 @@ check_file (const char *dir, const char *basename) @@ -45,7 +45,7 @@ index 9b4e72766..02c46f9fd 100644 *optr++ = iptr[1]; iptr += 2; diff --git a/grub-core/lib/cmdline.c b/grub-core/lib/cmdline.c -index d5e10ee87..0a5b2afb9 100644 +index d5e10ee8798..0a5b2afb94b 100644 --- a/grub-core/lib/cmdline.c +++ b/grub-core/lib/cmdline.c @@ -20,6 +20,12 @@ @@ -104,7 +104,7 @@ index d5e10ee87..0a5b2afb9 100644 *buf++ = *c; diff --git a/grub-core/script/execute.c b/grub-core/script/execute.c -index ab78ca87f..cf6cd6601 100644 +index ab78ca87f90..cf6cd6601d6 100644 --- a/grub-core/script/execute.c +++ b/grub-core/script/execute.c @@ -55,6 +55,12 @@ static struct grub_script_scope *scope = 0; @@ -179,5 +179,5 @@ index ab78ca87f..cf6cd6601 100644 case '$': if (escaped) -- -2.14.3 +2.15.0 diff --git a/0087-Add-X-option-to-printf-functions.patch b/0087-Add-X-option-to-printf-functions.patch index 928141cc..f2e78cd2 100644 --- a/0087-Add-X-option-to-printf-functions.patch +++ b/0087-Add-X-option-to-printf-functions.patch @@ -1,14 +1,14 @@ From d3e9800ae2fe7c0ed2d7795eae2be17a66e625ff Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 27 Nov 2012 16:58:39 -0200 -Subject: [PATCH 087/198] Add %X option to printf functions. +Subject: [PATCH 087/206] Add %X option to printf functions. --- grub-core/kern/misc.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c -index 952411d5d..8344526be 100644 +index 952411d5dc6..8344526be7f 100644 --- a/grub-core/kern/misc.c +++ b/grub-core/kern/misc.c @@ -588,7 +588,7 @@ grub_divmod64 (grub_uint64_t n, grub_uint64_t d, grub_uint64_t *r) @@ -54,5 +54,5 @@ index 952411d5d..8344526be 100644 case 'd': { -- -2.14.3 +2.15.0 diff --git a/0088-Search-for-specific-config-file-for-netboot.patch b/0088-Search-for-specific-config-file-for-netboot.patch index 8a4a61a9..5f17a244 100644 --- a/0088-Search-for-specific-config-file-for-netboot.patch +++ b/0088-Search-for-specific-config-file-for-netboot.patch @@ -1,7 +1,7 @@ From 30c15e39be47d60f6a4a45628a687911a9f11091 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 27 Nov 2012 17:22:07 -0200 -Subject: [PATCH 088/198] Search for specific config file for netboot +Subject: [PATCH 088/206] Search for specific config file for netboot This patch implements a search for a specific configuration when the config file is on a remoteserver. It uses the following order: @@ -22,7 +22,7 @@ https://bugzilla.redhat.com/show_bug.cgi?id=873406 3 files changed, 135 insertions(+), 4 deletions(-) diff --git a/grub-core/net/net.c b/grub-core/net/net.c -index 10773fc34..0769bf850 100644 +index 10773fc3435..0769bf850d3 100644 --- a/grub-core/net/net.c +++ b/grub-core/net/net.c @@ -1735,6 +1735,124 @@ grub_net_restore_hw (void) @@ -151,7 +151,7 @@ index 10773fc34..0769bf850 100644 static grub_command_t cmd_addaddr, cmd_deladdr, cmd_addroute, cmd_delroute; diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c -index 759c475c4..b2654ef62 100644 +index 759c475c4d9..b2654ef62e8 100644 --- a/grub-core/normal/main.c +++ b/grub-core/normal/main.c @@ -33,6 +33,7 @@ @@ -187,7 +187,7 @@ index 759c475c4..b2654ef62 100644 grub_enter_normal_mode (config); grub_free (config); diff --git a/include/grub/net.h b/include/grub/net.h -index e266bae23..50d62ab0c 100644 +index e266bae23f4..50d62ab0c8c 100644 --- a/include/grub/net.h +++ b/include/grub/net.h @@ -566,4 +566,7 @@ extern char *grub_net_default_server; @@ -199,5 +199,5 @@ index e266bae23..50d62ab0c 100644 + #endif /* ! GRUB_NET_HEADER */ -- -2.14.3 +2.15.0 diff --git a/0089-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch b/0089-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch index 65c4f937..a946e908 100644 --- a/0089-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch +++ b/0089-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch @@ -1,7 +1,7 @@ From 266c7e797971879dc229594556a687a79c92d3b6 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Tue, 22 Jan 2013 06:31:38 +0100 -Subject: [PATCH 089/198] blscfg: add blscfg module to parse Boot Loader +Subject: [PATCH 089/206] blscfg: add blscfg module to parse Boot Loader Specification snippets http://www.freedesktop.org/wiki/Specifications/BootLoaderSpec @@ -21,7 +21,7 @@ Signed-off-by: Peter Jones create mode 100644 grub-core/commands/blscfg.c diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index c653c71c5..7f3d5a2bf 100644 +index c653c71c594..7f3d5a2bfe6 100644 --- a/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def @@ -768,6 +768,14 @@ module = { @@ -41,7 +41,7 @@ index c653c71c5..7f3d5a2bf 100644 common = commands/boot.c; diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c new file mode 100644 -index 000000000..4274aca5a +index 00000000000..4274aca5a9d --- /dev/null +++ b/grub-core/commands/blscfg.c @@ -0,0 +1,201 @@ @@ -247,5 +247,5 @@ index 000000000..4274aca5a + grub_unregister_extcmd (cmd); +} -- -2.14.3 +2.15.0 diff --git a/0090-Don-t-write-messages-to-the-screen.patch b/0090-Don-t-write-messages-to-the-screen.patch index 736c8c92..ab238d04 100644 --- a/0090-Don-t-write-messages-to-the-screen.patch +++ b/0090-Don-t-write-messages-to-the-screen.patch @@ -1,51 +1,21 @@ From 6609ba848331d9153c554bb52f2ef0a33531cf55 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 13:30:20 -0400 -Subject: [PATCH 090/198] Don't write messages to the screen +Subject: [PATCH 090/206] Don't write messages to the screen Writing messages to the screen before the menus or boot splash happens so quickly it looks like something is wrong and isn't very appealing. --- - grub-core/boot/i386/pc/boot.S | 3 --- - grub-core/boot/i386/pc/diskboot.S | 5 ----- grub-core/gettext/gettext.c | 25 +++++-------------------- grub-core/kern/main.c | 5 ----- + grub-core/boot/i386/pc/boot.S | 3 --- + grub-core/boot/i386/pc/diskboot.S | 5 ----- util/grub.d/10_linux.in | 7 ------- 5 files changed, 5 insertions(+), 40 deletions(-) -diff --git a/grub-core/boot/i386/pc/boot.S b/grub-core/boot/i386/pc/boot.S -index 2bd0b2d28..ea167fe12 100644 ---- a/grub-core/boot/i386/pc/boot.S -+++ b/grub-core/boot/i386/pc/boot.S -@@ -249,9 +249,6 @@ real_start: - /* save drive reference first thing! */ - pushw %dx - -- /* print a notification message on the screen */ -- MSG(notification_string) -- - /* set %si to the disk address packet */ - movw $disk_address_packet, %si - -diff --git a/grub-core/boot/i386/pc/diskboot.S b/grub-core/boot/i386/pc/diskboot.S -index 1ee4cf5b2..c8b87ed29 100644 ---- a/grub-core/boot/i386/pc/diskboot.S -+++ b/grub-core/boot/i386/pc/diskboot.S -@@ -50,11 +50,6 @@ _start: - /* save drive reference first thing! */ - pushw %dx - -- /* print a notification message on the screen */ -- pushw %si -- MSG(notification_string) -- popw %si -- - /* this sets up for the first run through "bootloop" */ - movw $LOCAL(firstlist), %di - diff --git a/grub-core/gettext/gettext.c b/grub-core/gettext/gettext.c -index 4880cefe3..b22e1bcc9 100644 +index 4880cefe3f8..b22e1bcc94b 100644 --- a/grub-core/gettext/gettext.c +++ b/grub-core/gettext/gettext.c @@ -434,16 +434,12 @@ static char * @@ -127,7 +97,7 @@ index 4880cefe3..b22e1bcc9 100644 grub_register_variable_hook ("locale_dir", NULL, read_main); grub_register_variable_hook ("secondary_locale_dir", NULL, read_secondary); diff --git a/grub-core/kern/main.c b/grub-core/kern/main.c -index 8ab7794c4..da47b18b5 100644 +index 8ab7794c47b..da47b18b50e 100644 --- a/grub-core/kern/main.c +++ b/grub-core/kern/main.c @@ -268,11 +268,6 @@ grub_main (void) @@ -142,8 +112,38 @@ index 8ab7794c4..da47b18b5 100644 grub_load_config (); grub_boot_time ("Before loading embedded modules."); +diff --git a/grub-core/boot/i386/pc/boot.S b/grub-core/boot/i386/pc/boot.S +index 2bd0b2d2866..ea167fe1206 100644 +--- a/grub-core/boot/i386/pc/boot.S ++++ b/grub-core/boot/i386/pc/boot.S +@@ -249,9 +249,6 @@ real_start: + /* save drive reference first thing! */ + pushw %dx + +- /* print a notification message on the screen */ +- MSG(notification_string) +- + /* set %si to the disk address packet */ + movw $disk_address_packet, %si + +diff --git a/grub-core/boot/i386/pc/diskboot.S b/grub-core/boot/i386/pc/diskboot.S +index 1ee4cf5b2e0..c8b87ed293c 100644 +--- a/grub-core/boot/i386/pc/diskboot.S ++++ b/grub-core/boot/i386/pc/diskboot.S +@@ -50,11 +50,6 @@ _start: + /* save drive reference first thing! */ + pushw %dx + +- /* print a notification message on the screen */ +- pushw %si +- MSG(notification_string) +- popw %si +- + /* this sets up for the first run through "bootloop" */ + movw $LOCAL(firstlist), %di + diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index 8ccf012f7..a3d9711d6 100644 +index 8ccf012f747..a3d9711d607 100644 --- a/util/grub.d/10_linux.in +++ b/util/grub.d/10_linux.in @@ -128,29 +128,22 @@ linux_entry () @@ -177,5 +177,5 @@ index 8ccf012f7..a3d9711d6 100644 EOF fi -- -2.14.3 +2.15.0 diff --git a/0091-Don-t-print-GNU-GRUB-header.patch b/0091-Don-t-print-GNU-GRUB-header.patch index b93af732..9a03f2d6 100644 --- a/0091-Don-t-print-GNU-GRUB-header.patch +++ b/0091-Don-t-print-GNU-GRUB-header.patch @@ -1,7 +1,7 @@ From 95aeba5fe67ad11a995eb8e583708a722b8bdeb9 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 13:53:48 -0400 -Subject: [PATCH 091/198] Don't print GNU GRUB header +Subject: [PATCH 091/206] Don't print GNU GRUB header No one cares. --- @@ -9,7 +9,7 @@ No one cares. 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c -index b2654ef62..f57b7508a 100644 +index b2654ef62e8..f57b7508a76 100644 --- a/grub-core/normal/main.c +++ b/grub-core/normal/main.c @@ -202,15 +202,16 @@ read_config_file (const char *config) @@ -41,5 +41,5 @@ index b2654ef62..f57b7508a 100644 static void -- -2.14.3 +2.15.0 diff --git a/0092-Don-t-add-to-highlighted-row.patch b/0092-Don-t-add-to-highlighted-row.patch index 4c1e810b..4ab4c753 100644 --- a/0092-Don-t-add-to-highlighted-row.patch +++ b/0092-Don-t-add-to-highlighted-row.patch @@ -1,7 +1,7 @@ From aca25c56911ece3e4d82ae9edbde6c705c1eaacc Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 17:49:45 -0400 -Subject: [PATCH 092/198] Don't add '*' to highlighted row +Subject: [PATCH 092/206] Don't add '*' to highlighted row It is already highlighted. --- @@ -9,7 +9,7 @@ It is already highlighted. 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grub-core/normal/menu_text.c b/grub-core/normal/menu_text.c -index e22bb91f6..a3d1f23f6 100644 +index e22bb91f6e8..a3d1f23f68f 100644 --- a/grub-core/normal/menu_text.c +++ b/grub-core/normal/menu_text.c @@ -242,7 +242,7 @@ print_entry (int y, int highlight, grub_menu_entry_t entry, @@ -22,5 +22,5 @@ index e22bb91f6..a3d1f23f6 100644 grub_print_ucs4_menu (unicode_title, unicode_title + len, -- -2.14.3 +2.15.0 diff --git a/0093-Message-string-cleanups.patch b/0093-Message-string-cleanups.patch index cd23a84b..d76f9956 100644 --- a/0093-Message-string-cleanups.patch +++ b/0093-Message-string-cleanups.patch @@ -1,7 +1,7 @@ From eef343ff642b42f0e46eb5e8ff5d89fef375f4a2 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 11:09:04 -0400 -Subject: [PATCH 093/198] Message string cleanups +Subject: [PATCH 093/206] Message string cleanups Make use of terminology consistent. Remove jargon. --- @@ -9,7 +9,7 @@ Make use of terminology consistent. Remove jargon. 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/grub-core/normal/menu_text.c b/grub-core/normal/menu_text.c -index a3d1f23f6..64a83862f 100644 +index a3d1f23f68f..64a83862f66 100644 --- a/grub-core/normal/menu_text.c +++ b/grub-core/normal/menu_text.c @@ -157,9 +157,8 @@ print_message (int nested, int edit, struct grub_term_output *term, int dry_run) @@ -67,5 +67,5 @@ index a3d1f23f6..64a83862f 100644 { grub_print_error (); -- -2.14.3 +2.15.0 diff --git a/0094-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch b/0094-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch index c67e9fef..b52ff30a 100644 --- a/0094-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch +++ b/0094-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch @@ -1,14 +1,14 @@ From c2e1e09485a5773dc3639d34eadc3a07ebce8fe5 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:08:23 -0400 -Subject: [PATCH 094/198] Fix border spacing now that we aren't displaying it +Subject: [PATCH 094/206] Fix border spacing now that we aren't displaying it --- grub-core/normal/menu_text.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/grub-core/normal/menu_text.c b/grub-core/normal/menu_text.c -index 64a83862f..1062d64ee 100644 +index 64a83862f66..1062d64ee29 100644 --- a/grub-core/normal/menu_text.c +++ b/grub-core/normal/menu_text.c @@ -331,12 +331,12 @@ grub_menu_init_page (int nested, int edit, @@ -28,5 +28,5 @@ index 64a83862f..1062d64ee 100644 geo->timeout_lines = 2; -- -2.14.3 +2.15.0 diff --git a/0095-Use-the-correct-indentation-for-the-term-help-text.patch b/0095-Use-the-correct-indentation-for-the-term-help-text.patch index d47f7bd0..69f97b55 100644 --- a/0095-Use-the-correct-indentation-for-the-term-help-text.patch +++ b/0095-Use-the-correct-indentation-for-the-term-help-text.patch @@ -1,7 +1,7 @@ From e29b4dd346fa10dc6a073239ef1ed8fb32a0c838 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:08:49 -0400 -Subject: [PATCH 095/198] Use the correct indentation for the term help text +Subject: [PATCH 095/206] Use the correct indentation for the term help text That is consistent with the menu help text --- @@ -9,7 +9,7 @@ That is consistent with the menu help text 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c -index f57b7508a..0ce59fdc3 100644 +index f57b7508a76..0ce59fdc3f0 100644 --- a/grub-core/normal/main.c +++ b/grub-core/normal/main.c @@ -426,8 +426,8 @@ grub_normal_reader_init (int nested) @@ -24,5 +24,5 @@ index f57b7508a..0ce59fdc3 100644 grub_print_message_indented (msg_formatted, 0, 0, term); grub_putcode ('\n', term); -- -2.14.3 +2.15.0 diff --git a/0096-Indent-menu-entries.patch b/0096-Indent-menu-entries.patch index 4885cd6c..cb787de3 100644 --- a/0096-Indent-menu-entries.patch +++ b/0096-Indent-menu-entries.patch @@ -1,14 +1,14 @@ From a67be6e17cd318ad3d4a669efb2b8c5f6e76c003 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:30:55 -0400 -Subject: [PATCH 096/198] Indent menu entries +Subject: [PATCH 096/206] Indent menu entries --- grub-core/normal/menu_text.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/grub-core/normal/menu_text.c b/grub-core/normal/menu_text.c -index 1062d64ee..ecc60f99f 100644 +index 1062d64ee29..ecc60f99fc3 100644 --- a/grub-core/normal/menu_text.c +++ b/grub-core/normal/menu_text.c @@ -239,7 +239,8 @@ print_entry (int y, int highlight, grub_menu_entry_t entry, @@ -22,5 +22,5 @@ index 1062d64ee..ecc60f99f 100644 grub_print_ucs4_menu (unicode_title, unicode_title + len, -- -2.14.3 +2.15.0 diff --git a/0097-Fix-margins.patch b/0097-Fix-margins.patch index 8e93f578..c1dd251b 100644 --- a/0097-Fix-margins.patch +++ b/0097-Fix-margins.patch @@ -1,14 +1,14 @@ From 8e5a006c6c48002f3debd99f4c377b443f9f8369 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:59:36 -0400 -Subject: [PATCH 097/198] Fix margins +Subject: [PATCH 097/206] Fix margins --- grub-core/normal/menu_text.c | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/grub-core/normal/menu_text.c b/grub-core/normal/menu_text.c -index ecc60f99f..0e43f2c10 100644 +index ecc60f99fc3..0e43f2c10cc 100644 --- a/grub-core/normal/menu_text.c +++ b/grub-core/normal/menu_text.c @@ -333,17 +333,15 @@ grub_menu_init_page (int nested, int edit, @@ -33,5 +33,5 @@ index ecc60f99f..0e43f2c10 100644 - geo->timeout_lines /* timeout */ - 1 /* empty final line */; -- -2.14.3 +2.15.0 diff --git a/0098-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch b/0098-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch index 94dc83ae..5f00334d 100644 --- a/0098-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch +++ b/0098-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch @@ -1,7 +1,7 @@ From 01757871cb2a7355a7f67e80f77a57fecba26f54 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 21 Jun 2013 14:44:08 -0400 -Subject: [PATCH 098/198] Use -2 instead of -1 for our right-hand margin, so +Subject: [PATCH 098/206] Use -2 instead of -1 for our right-hand margin, so linewrapping works (#976643). Signed-off-by: Peter Jones @@ -10,7 +10,7 @@ Signed-off-by: Peter Jones 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grub-core/normal/menu_text.c b/grub-core/normal/menu_text.c -index 0e43f2c10..537d4bf86 100644 +index 0e43f2c10cc..537d4bf86ff 100644 --- a/grub-core/normal/menu_text.c +++ b/grub-core/normal/menu_text.c @@ -334,7 +334,7 @@ grub_menu_init_page (int nested, int edit, @@ -23,5 +23,5 @@ index 0e43f2c10..537d4bf86 100644 geo->first_entry_y = 3; /* three empty lines*/ -- -2.14.3 +2.15.0 diff --git a/0099-Use-linux16-when-appropriate-880840.patch b/0099-Use-linux16-when-appropriate-880840.patch index bcaea52b..860446f7 100644 --- a/0099-Use-linux16-when-appropriate-880840.patch +++ b/0099-Use-linux16-when-appropriate-880840.patch @@ -1,7 +1,7 @@ From ac001b7b4cc1819186fbe2bc695cbe58d2077d0f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 28 Oct 2013 10:05:07 -0400 -Subject: [PATCH 099/198] Use linux16 when appropriate (#880840) +Subject: [PATCH 099/206] Use linux16 when appropriate (#880840) The kernel group really would prefer that we use the 16 bit entry point on x86 bios machines. @@ -14,7 +14,7 @@ Signed-off-by: Peter Jones 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index a3d9711d6..f3bf6acd8 100644 +index a3d9711d607..f3bf6acd856 100644 --- a/util/grub.d/10_linux.in +++ b/util/grub.d/10_linux.in @@ -76,6 +76,11 @@ linux_entry () @@ -48,5 +48,5 @@ index a3d9711d6..f3bf6acd8 100644 fi fi -- -2.14.3 +2.15.0 diff --git a/0100-Enable-pager-by-default.-985860.patch b/0100-Enable-pager-by-default.-985860.patch index 5d9fa833..cf496de2 100644 --- a/0100-Enable-pager-by-default.-985860.patch +++ b/0100-Enable-pager-by-default.-985860.patch @@ -1,7 +1,7 @@ From cc60fb5b7693dabcf100c910d42b3ffe1816597f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 28 Oct 2013 10:09:27 -0400 -Subject: [PATCH 100/198] Enable pager by default. (#985860) +Subject: [PATCH 100/206] Enable pager by default. (#985860) Signed-off-by: Peter Jones --- @@ -9,7 +9,7 @@ Signed-off-by: Peter Jones 1 file changed, 2 insertions(+) diff --git a/util/grub.d/00_header.in b/util/grub.d/00_header.in -index 93a90233e..858b526c9 100644 +index 93a90233ead..858b526c925 100644 --- a/util/grub.d/00_header.in +++ b/util/grub.d/00_header.in @@ -43,6 +43,8 @@ if [ "x${GRUB_DEFAULT_BUTTON}" = "xsaved" ] ; then GRUB_DEFAULT_BUTTON='${saved_ @@ -22,5 +22,5 @@ index 93a90233e..858b526c9 100644 load_env fi -- -2.14.3 +2.15.0 diff --git a/0101-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch b/0101-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch index bae0ac19..3aac91bd 100644 --- a/0101-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch +++ b/0101-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch @@ -1,7 +1,7 @@ From f1cb6c5a7640406294b7dffab3c5e4a4afdaf745 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 28 Oct 2013 10:13:27 -0400 -Subject: [PATCH 101/198] F10 doesn't work on serial, so don't tell the user to +Subject: [PATCH 101/206] F10 doesn't work on serial, so don't tell the user to hit it (#987443) Signed-off-by: Peter Jones @@ -10,7 +10,7 @@ Signed-off-by: Peter Jones 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grub-core/normal/menu_text.c b/grub-core/normal/menu_text.c -index 537d4bf86..452d55bf9 100644 +index 537d4bf86ff..452d55bf9ff 100644 --- a/grub-core/normal/menu_text.c +++ b/grub-core/normal/menu_text.c @@ -157,7 +157,7 @@ print_message (int nested, int edit, struct grub_term_output *term, int dry_run) @@ -23,5 +23,5 @@ index 537d4bf86..452d55bf9 100644 STANDARD_MARGIN, STANDARD_MARGIN, term, dry_run); -- -2.14.3 +2.15.0 diff --git a/0102-Don-t-say-GNU-Linux-in-generated-menus.patch b/0102-Don-t-say-GNU-Linux-in-generated-menus.patch index f3c37dee..d389e16e 100644 --- a/0102-Don-t-say-GNU-Linux-in-generated-menus.patch +++ b/0102-Don-t-say-GNU-Linux-in-generated-menus.patch @@ -1,7 +1,7 @@ From 13c028af4104555993650dd9a26dd633c516d23f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 14 Mar 2011 14:27:42 -0400 -Subject: [PATCH 102/198] Don't say "GNU/Linux" in generated menus. +Subject: [PATCH 102/206] Don't say "GNU/Linux" in generated menus. --- util/grub.d/10_linux.in | 4 ++-- @@ -9,7 +9,7 @@ Subject: [PATCH 102/198] Don't say "GNU/Linux" in generated menus. 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index f3bf6acd8..ef52cf3db 100644 +index f3bf6acd856..ef52cf3dbbb 100644 --- a/util/grub.d/10_linux.in +++ b/util/grub.d/10_linux.in @@ -29,9 +29,9 @@ export TEXTDOMAINDIR="@localedir@" @@ -25,7 +25,7 @@ index f3bf6acd8..ef52cf3db 100644 fi diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in -index c002fc9f9..54f1ec8a2 100644 +index c002fc9f946..54f1ec8a2fd 100644 --- a/util/grub.d/20_linux_xen.in +++ b/util/grub.d/20_linux_xen.in @@ -29,9 +29,9 @@ export TEXTDOMAINDIR="@localedir@" @@ -41,5 +41,5 @@ index c002fc9f9..54f1ec8a2 100644 fi -- -2.14.3 +2.15.0 diff --git a/0103-Don-t-draw-a-border-around-the-menu.patch b/0103-Don-t-draw-a-border-around-the-menu.patch index d84dfbf4..ad298378 100644 --- a/0103-Don-t-draw-a-border-around-the-menu.patch +++ b/0103-Don-t-draw-a-border-around-the-menu.patch @@ -1,7 +1,7 @@ From 8b51cba8f5587746d1559bd6ec957db3e185c049 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 16:47:33 -0400 -Subject: [PATCH 103/198] Don't draw a border around the menu +Subject: [PATCH 103/206] Don't draw a border around the menu It looks cleaner without it. --- @@ -9,7 +9,7 @@ It looks cleaner without it. 1 file changed, 43 deletions(-) diff --git a/grub-core/normal/menu_text.c b/grub-core/normal/menu_text.c -index 452d55bf9..1ed2bd92c 100644 +index 452d55bf9ff..1ed2bd92cf8 100644 --- a/grub-core/normal/menu_text.c +++ b/grub-core/normal/menu_text.c @@ -108,47 +108,6 @@ grub_print_message_indented (const char *msg, int margin_left, int margin_right, @@ -70,5 +70,5 @@ index 452d55bf9..1ed2bd92c 100644 grub_term_highlight_color = old_color_highlight; geo->timeout_y = geo->first_entry_y + geo->num_entries -- -2.14.3 +2.15.0 diff --git a/0104-Use-the-standard-margin-for-the-timeout-string.patch b/0104-Use-the-standard-margin-for-the-timeout-string.patch index 07a3c23d..c374c303 100644 --- a/0104-Use-the-standard-margin-for-the-timeout-string.patch +++ b/0104-Use-the-standard-margin-for-the-timeout-string.patch @@ -1,7 +1,7 @@ From 137250b0ef67150568074da35c568c6c649899f6 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 10:52:32 -0400 -Subject: [PATCH 104/198] Use the standard margin for the timeout string +Subject: [PATCH 104/206] Use the standard margin for the timeout string So that it aligns with the other messages --- @@ -9,7 +9,7 @@ So that it aligns with the other messages 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/grub-core/normal/menu_text.c b/grub-core/normal/menu_text.c -index 1ed2bd92c..7681f7d28 100644 +index 1ed2bd92cf8..7681f7d2893 100644 --- a/grub-core/normal/menu_text.c +++ b/grub-core/normal/menu_text.c @@ -372,7 +372,7 @@ grub_menu_init_page (int nested, int edit, @@ -39,5 +39,5 @@ index 1ed2bd92c..7681f7d28 100644 } -- -2.14.3 +2.15.0 diff --git a/0105-Add-.eh_frame-to-list-of-relocations-stripped.patch b/0105-Add-.eh_frame-to-list-of-relocations-stripped.patch index cd5ec1a7..096bd998 100644 --- a/0105-Add-.eh_frame-to-list-of-relocations-stripped.patch +++ b/0105-Add-.eh_frame-to-list-of-relocations-stripped.patch @@ -1,14 +1,14 @@ From 0464db837a67b88a761f100391b135a70b7054eb Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Mon, 13 Jan 2014 21:50:59 -0500 -Subject: [PATCH 105/198] Add .eh_frame to list of relocations stripped +Subject: [PATCH 105/206] Add .eh_frame to list of relocations stripped --- conf/Makefile.common | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/conf/Makefile.common b/conf/Makefile.common -index 311da61c6..044ab3abe 100644 +index 311da61c6c5..044ab3abe88 100644 --- a/conf/Makefile.common +++ b/conf/Makefile.common @@ -38,7 +38,7 @@ CFLAGS_KERNEL = $(CFLAGS_PLATFORM) -ffreestanding @@ -21,5 +21,5 @@ index 311da61c6..044ab3abe 100644 CFLAGS_MODULE = $(CFLAGS_PLATFORM) -ffreestanding LDFLAGS_MODULE = $(LDFLAGS_PLATFORM) -nostdlib $(TARGET_LDFLAGS_OLDMAGIC) -Wl,-r,-d -- -2.14.3 +2.15.0 diff --git a/0106-Make-10_linux-work-with-our-changes-for-linux16-and-.patch b/0106-Make-10_linux-work-with-our-changes-for-linux16-and-.patch index 23c67fa4..4261262a 100644 --- a/0106-Make-10_linux-work-with-our-changes-for-linux16-and-.patch +++ b/0106-Make-10_linux-work-with-our-changes-for-linux16-and-.patch @@ -1,7 +1,7 @@ From fb582651ea4568d7226f96e6b618ad795430c842 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jan 2014 13:12:23 -0500 -Subject: [PATCH 106/198] Make 10_linux work with our changes for linux16 and +Subject: [PATCH 106/206] Make 10_linux work with our changes for linux16 and linuxefi on aarch64 Signed-off-by: Peter Jones @@ -10,7 +10,7 @@ Signed-off-by: Peter Jones 1 file changed, 28 insertions(+), 3 deletions(-) diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index ef52cf3db..191aebe80 100644 +index ef52cf3dbbb..191aebe80bb 100644 --- a/util/grub.d/10_linux.in +++ b/util/grub.d/10_linux.in @@ -77,8 +77,18 @@ linux_entry () @@ -81,5 +81,5 @@ index ef52cf3db..191aebe80 100644 for i in "${dirname}/config-${version}" "${dirname}/config-${alt_version}" "/etc/kernels/kernel-config-${version}" ; do if test -e "${i}" ; then -- -2.14.3 +2.15.0 diff --git a/0107-Don-t-print-during-fdt-loading-method.patch b/0107-Don-t-print-during-fdt-loading-method.patch index 383cf925..75c5a4d3 100644 --- a/0107-Don-t-print-during-fdt-loading-method.patch +++ b/0107-Don-t-print-during-fdt-loading-method.patch @@ -1,7 +1,7 @@ From 40e56a4c2e879f5efcbcc36cf6a88ee1cb39d607 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jan 2014 16:15:46 -0500 -Subject: [PATCH 107/198] Don't print during fdt loading method. +Subject: [PATCH 107/206] Don't print during fdt loading method. Signed-off-by: Peter Jones --- @@ -9,7 +9,7 @@ Signed-off-by: Peter Jones 1 file changed, 2 deletions(-) diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index 191aebe80..452a9f69d 100644 +index 191aebe80bb..452a9f69d28 100644 --- a/util/grub.d/10_linux.in +++ b/util/grub.d/10_linux.in @@ -164,9 +164,7 @@ EOF @@ -23,5 +23,5 @@ index 191aebe80..452a9f69d 100644 EOF fi -- -2.14.3 +2.15.0 diff --git a/0108-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch b/0108-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch index 6450831b..eb27d207 100644 --- a/0108-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch +++ b/0108-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch @@ -1,7 +1,7 @@ From ff25c6034ab8213d911414e666b7d44bc44496aa Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Mon, 30 Jun 2014 14:16:46 -0400 -Subject: [PATCH 108/198] Don't munge raw spaces when we're doing our cmdline +Subject: [PATCH 108/206] Don't munge raw spaces when we're doing our cmdline escaping (#923374) Signed-off-by: Peter Jones @@ -10,7 +10,7 @@ Signed-off-by: Peter Jones 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/grub-core/lib/cmdline.c b/grub-core/lib/cmdline.c -index 0a5b2afb9..970ea868c 100644 +index 0a5b2afb94b..970ea868c14 100644 --- a/grub-core/lib/cmdline.c +++ b/grub-core/lib/cmdline.c @@ -97,16 +97,7 @@ int grub_create_loader_cmdline (int argc, char *argv[], char *buf, @@ -32,5 +32,5 @@ index 0a5b2afb9..970ea868c 100644 { *buf++ = *c++; -- -2.14.3 +2.15.0 diff --git a/0109-Don-t-require-a-password-to-boot-entries-generated-b.patch b/0109-Don-t-require-a-password-to-boot-entries-generated-b.patch index 413442b5..81fa7e36 100644 --- a/0109-Don-t-require-a-password-to-boot-entries-generated-b.patch +++ b/0109-Don-t-require-a-password-to-boot-entries-generated-b.patch @@ -1,7 +1,7 @@ From 2df38f07986a91d2a06cb3e432f9121d9f678f89 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 11 Feb 2014 11:14:50 -0500 -Subject: [PATCH 109/198] Don't require a password to boot entries generated by +Subject: [PATCH 109/206] Don't require a password to boot entries generated by grub-mkconfig. When we set a password, we just want that to mean you can't /edit/ an entry. @@ -14,7 +14,7 @@ Signed-off-by: Peter Jones 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index 452a9f69d..79a747ebd 100644 +index 452a9f69d28..79a747ebd4d 100644 --- a/util/grub.d/10_linux.in +++ b/util/grub.d/10_linux.in @@ -26,7 +26,7 @@ datarootdir="@datarootdir@" @@ -27,5 +27,5 @@ index 452a9f69d..79a747ebd 100644 if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then OS="$(sed 's, release .*$,,g' /etc/system-release)" -- -2.14.3 +2.15.0 diff --git a/0110-Don-t-emit-Booting-.-message.patch b/0110-Don-t-emit-Booting-.-message.patch index f4d06792..323b051c 100644 --- a/0110-Don-t-emit-Booting-.-message.patch +++ b/0110-Don-t-emit-Booting-.-message.patch @@ -1,7 +1,7 @@ From a72d4819fb7275cbf65b5de901c50d076bf861fd Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 18 Feb 2014 09:37:49 -0500 -Subject: [PATCH 110/198] Don't emit "Booting ..." message. +Subject: [PATCH 110/206] Don't emit "Booting ..." message. UI team still hates this stuff, so we're disabling it for RHEL 7. @@ -14,7 +14,7 @@ Signed-off-by: Peter Jones 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/grub-core/normal/menu.c b/grub-core/normal/menu.c -index d2f64b05e..5e2f5283d 100644 +index d2f64b05e0a..5e2f5283d3d 100644 --- a/grub-core/normal/menu.c +++ b/grub-core/normal/menu.c @@ -838,12 +838,14 @@ run_menu (grub_menu_t menu, int nested, int *auto_boot) @@ -34,7 +34,7 @@ index d2f64b05e..5e2f5283d 100644 /* Callback invoked when a default menu entry executed because of a timeout diff --git a/grub-core/normal/menu_entry.c b/grub-core/normal/menu_entry.c -index cdf3590a3..5785f67ee 100644 +index cdf3590a364..5785f67ee1c 100644 --- a/grub-core/normal/menu_entry.c +++ b/grub-core/normal/menu_entry.c @@ -1167,9 +1167,6 @@ run (struct screen *screen) @@ -48,5 +48,5 @@ index cdf3590a3..5785f67ee 100644 errs_before = grub_err_printed_errors; -- -2.14.3 +2.15.0 diff --git a/0111-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch b/0111-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch index ec3f88e7..1d49bbce 100644 --- a/0111-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch +++ b/0111-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch @@ -1,12 +1,12 @@ From 6412d775976361b52c0914f6e5e3b0a4b99cdba9 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 4 Mar 2014 11:00:23 -0500 -Subject: [PATCH 111/198] Replace a lot of man pages with slightly nicer ones. +Subject: [PATCH 111/206] Replace a lot of man pages with slightly nicer ones. Replace a bunch of machine generated ones with ones that look nicer. --- - conf/Makefile.extra-dist | 1 - configure.ac | 23 ++++++ + conf/Makefile.extra-dist | 1 - docs/Makefile.am | 2 - docs/man/grub-bios-setup.h2m | 6 -- docs/man/grub-editenv.h2m | 5 -- @@ -121,20 +121,8 @@ Replace a bunch of machine generated ones with ones that look nicer. create mode 100644 util/grub-set-default.8 create mode 100644 util/grub-sparc64-setup.8 -diff --git a/conf/Makefile.extra-dist b/conf/Makefile.extra-dist -index b16bd9253..39eb94bde 100644 ---- a/conf/Makefile.extra-dist -+++ b/conf/Makefile.extra-dist -@@ -11,7 +11,6 @@ EXTRA_DIST += unicode - EXTRA_DIST += util/import_gcry.py - EXTRA_DIST += util/import_unicode.py - --EXTRA_DIST += docs/man - EXTRA_DIST += docs/autoiso.cfg - EXTRA_DIST += docs/grub.cfg - EXTRA_DIST += docs/osdetect.cfg diff --git a/configure.ac b/configure.ac -index 9ae97f026..0cb971a92 100644 +index 9ae97f026ab..0cb971a92c5 100644 --- a/configure.ac +++ b/configure.ac @@ -70,6 +70,29 @@ grub_TRANSFORM([grub-set-default]) @@ -167,8 +155,20 @@ index 9ae97f026..0cb971a92 100644 # Optimization flag. Allow user to override. if test "x$TARGET_CFLAGS" = x; then +diff --git a/conf/Makefile.extra-dist b/conf/Makefile.extra-dist +index b16bd925320..39eb94bded6 100644 +--- a/conf/Makefile.extra-dist ++++ b/conf/Makefile.extra-dist +@@ -11,7 +11,6 @@ EXTRA_DIST += unicode + EXTRA_DIST += util/import_gcry.py + EXTRA_DIST += util/import_unicode.py + +-EXTRA_DIST += docs/man + EXTRA_DIST += docs/autoiso.cfg + EXTRA_DIST += docs/grub.cfg + EXTRA_DIST += docs/osdetect.cfg diff --git a/docs/Makefile.am b/docs/Makefile.am -index e396ba10f..0669729cc 100644 +index e396ba10f46..0669729cc57 100644 --- a/docs/Makefile.am +++ b/docs/Makefile.am @@ -5,5 +5,3 @@ info_TEXINFOS = grub.texi grub-dev.texi @@ -179,7 +179,7 @@ index e396ba10f..0669729cc 100644 - diff --git a/docs/man/grub-bios-setup.h2m b/docs/man/grub-bios-setup.h2m deleted file mode 100644 -index ac6ede362..000000000 +index ac6ede36296..00000000000 --- a/docs/man/grub-bios-setup.h2m +++ /dev/null @@ -1,6 +0,0 @@ @@ -191,7 +191,7 @@ index ac6ede362..000000000 -.BR grub-mkrescue (1) diff --git a/docs/man/grub-editenv.h2m b/docs/man/grub-editenv.h2m deleted file mode 100644 -index 3859d3d4c..000000000 +index 3859d3d4c4f..00000000000 --- a/docs/man/grub-editenv.h2m +++ /dev/null @@ -1,5 +0,0 @@ @@ -202,7 +202,7 @@ index 3859d3d4c..000000000 -.BR grub-set-default (8) diff --git a/docs/man/grub-emu.h2m b/docs/man/grub-emu.h2m deleted file mode 100644 -index ef1c00065..000000000 +index ef1c000656a..00000000000 --- a/docs/man/grub-emu.h2m +++ /dev/null @@ -1,6 +0,0 @@ @@ -214,7 +214,7 @@ index ef1c00065..000000000 -rather than this program. diff --git a/docs/man/grub-file.h2m b/docs/man/grub-file.h2m deleted file mode 100644 -index e09bb4d31..000000000 +index e09bb4d3101..00000000000 --- a/docs/man/grub-file.h2m +++ /dev/null @@ -1,2 +0,0 @@ @@ -222,7 +222,7 @@ index e09bb4d31..000000000 -grub-file \- check file type diff --git a/docs/man/grub-fstest.h2m b/docs/man/grub-fstest.h2m deleted file mode 100644 -index 9676b159a..000000000 +index 9676b159afd..00000000000 --- a/docs/man/grub-fstest.h2m +++ /dev/null @@ -1,4 +0,0 @@ @@ -232,7 +232,7 @@ index 9676b159a..000000000 -.BR grub-probe (8) diff --git a/docs/man/grub-glue-efi.h2m b/docs/man/grub-glue-efi.h2m deleted file mode 100644 -index c1c6ded49..000000000 +index c1c6ded49ff..00000000000 --- a/docs/man/grub-glue-efi.h2m +++ /dev/null @@ -1,4 +0,0 @@ @@ -242,7 +242,7 @@ index c1c6ded49..000000000 -grub-glue-efi processes ia32 and amd64 EFI images and glues them according to Apple format. diff --git a/docs/man/grub-install.h2m b/docs/man/grub-install.h2m deleted file mode 100644 -index 8cbbc87a0..000000000 +index 8cbbc87a0f2..00000000000 --- a/docs/man/grub-install.h2m +++ /dev/null @@ -1,6 +0,0 @@ @@ -254,7 +254,7 @@ index 8cbbc87a0..000000000 -.BR grub-mkrescue (1) diff --git a/docs/man/grub-kbdcomp.h2m b/docs/man/grub-kbdcomp.h2m deleted file mode 100644 -index d81f9157e..000000000 +index d81f9157e01..00000000000 --- a/docs/man/grub-kbdcomp.h2m +++ /dev/null @@ -1,10 +0,0 @@ @@ -270,7 +270,7 @@ index d81f9157e..000000000 -.BR grub-mklayout (8) diff --git a/docs/man/grub-macbless.h2m b/docs/man/grub-macbless.h2m deleted file mode 100644 -index 0197c0087..000000000 +index 0197c0087d7..00000000000 --- a/docs/man/grub-macbless.h2m +++ /dev/null @@ -1,4 +0,0 @@ @@ -280,7 +280,7 @@ index 0197c0087..000000000 -.BR grub-install (1) diff --git a/docs/man/grub-macho2img.h2m b/docs/man/grub-macho2img.h2m deleted file mode 100644 -index d79aaeed8..000000000 +index d79aaeed8f9..00000000000 --- a/docs/man/grub-macho2img.h2m +++ /dev/null @@ -1,4 +0,0 @@ @@ -290,7 +290,7 @@ index d79aaeed8..000000000 -.BR grub-mkimage (1) diff --git a/docs/man/grub-menulst2cfg.h2m b/docs/man/grub-menulst2cfg.h2m deleted file mode 100644 -index c2e0055ed..000000000 +index c2e0055ed7e..00000000000 --- a/docs/man/grub-menulst2cfg.h2m +++ /dev/null @@ -1,4 +0,0 @@ @@ -300,7 +300,7 @@ index c2e0055ed..000000000 -.BR grub-mkconfig (8) diff --git a/docs/man/grub-mkconfig.h2m b/docs/man/grub-mkconfig.h2m deleted file mode 100644 -index 9b42f8130..000000000 +index 9b42f813010..00000000000 --- a/docs/man/grub-mkconfig.h2m +++ /dev/null @@ -1,4 +0,0 @@ @@ -310,7 +310,7 @@ index 9b42f8130..000000000 -.BR grub-install (8) diff --git a/docs/man/grub-mkfont.h2m b/docs/man/grub-mkfont.h2m deleted file mode 100644 -index d46fe600e..000000000 +index d46fe600eca..00000000000 --- a/docs/man/grub-mkfont.h2m +++ /dev/null @@ -1,4 +0,0 @@ @@ -320,7 +320,7 @@ index d46fe600e..000000000 -.BR grub-mkconfig (8) diff --git a/docs/man/grub-mkimage.h2m b/docs/man/grub-mkimage.h2m deleted file mode 100644 -index f0fbc2bb1..000000000 +index f0fbc2bb197..00000000000 --- a/docs/man/grub-mkimage.h2m +++ /dev/null @@ -1,6 +0,0 @@ @@ -332,7 +332,7 @@ index f0fbc2bb1..000000000 -.BR grub-mknetdir (8) diff --git a/docs/man/grub-mklayout.h2m b/docs/man/grub-mklayout.h2m deleted file mode 100644 -index 1e43409c0..000000000 +index 1e43409c0ab..00000000000 --- a/docs/man/grub-mklayout.h2m +++ /dev/null @@ -1,10 +0,0 @@ @@ -348,7 +348,7 @@ index 1e43409c0..000000000 -.BR grub-mkconfig (8) diff --git a/docs/man/grub-mknetdir.h2m b/docs/man/grub-mknetdir.h2m deleted file mode 100644 -index a2ef13ec1..000000000 +index a2ef13ec111..00000000000 --- a/docs/man/grub-mknetdir.h2m +++ /dev/null @@ -1,4 +0,0 @@ @@ -358,7 +358,7 @@ index a2ef13ec1..000000000 -.BR grub-mkimage (1) diff --git a/docs/man/grub-mkpasswd-pbkdf2.h2m b/docs/man/grub-mkpasswd-pbkdf2.h2m deleted file mode 100644 -index 4d202f3da..000000000 +index 4d202f3da7e..00000000000 --- a/docs/man/grub-mkpasswd-pbkdf2.h2m +++ /dev/null @@ -1,4 +0,0 @@ @@ -368,7 +368,7 @@ index 4d202f3da..000000000 -.BR grub-mkconfig (8) diff --git a/docs/man/grub-mkrelpath.h2m b/docs/man/grub-mkrelpath.h2m deleted file mode 100644 -index d01f3961e..000000000 +index d01f3961e3f..00000000000 --- a/docs/man/grub-mkrelpath.h2m +++ /dev/null @@ -1,4 +0,0 @@ @@ -378,7 +378,7 @@ index d01f3961e..000000000 -.BR grub-probe (8) diff --git a/docs/man/grub-mkrescue.h2m b/docs/man/grub-mkrescue.h2m deleted file mode 100644 -index a427f02e3..000000000 +index a427f02e3c6..00000000000 --- a/docs/man/grub-mkrescue.h2m +++ /dev/null @@ -1,4 +0,0 @@ @@ -388,7 +388,7 @@ index a427f02e3..000000000 -.BR grub-mkimage (1) diff --git a/docs/man/grub-mkstandalone.h2m b/docs/man/grub-mkstandalone.h2m deleted file mode 100644 -index c77313978..000000000 +index c77313978ad..00000000000 --- a/docs/man/grub-mkstandalone.h2m +++ /dev/null @@ -1,4 +0,0 @@ @@ -398,7 +398,7 @@ index c77313978..000000000 -.BR grub-mkimage (1) diff --git a/docs/man/grub-mount.h2m b/docs/man/grub-mount.h2m deleted file mode 100644 -index 8d168982d..000000000 +index 8d168982d72..00000000000 --- a/docs/man/grub-mount.h2m +++ /dev/null @@ -1,2 +0,0 @@ @@ -406,7 +406,7 @@ index 8d168982d..000000000 -grub-mount \- export GRUB filesystem with FUSE diff --git a/docs/man/grub-ofpathname.h2m b/docs/man/grub-ofpathname.h2m deleted file mode 100644 -index 74b43eea0..000000000 +index 74b43eea039..00000000000 --- a/docs/man/grub-ofpathname.h2m +++ /dev/null @@ -1,4 +0,0 @@ @@ -416,7 +416,7 @@ index 74b43eea0..000000000 -.BR grub-probe (8) diff --git a/docs/man/grub-pe2elf.h2m b/docs/man/grub-pe2elf.h2m deleted file mode 100644 -index 7ca29bd70..000000000 +index 7ca29bd703c..00000000000 --- a/docs/man/grub-pe2elf.h2m +++ /dev/null @@ -1,4 +0,0 @@ @@ -426,7 +426,7 @@ index 7ca29bd70..000000000 -.BR grub-mkimage (1) diff --git a/docs/man/grub-probe.h2m b/docs/man/grub-probe.h2m deleted file mode 100644 -index 6e1ffdcf9..000000000 +index 6e1ffdcf937..00000000000 --- a/docs/man/grub-probe.h2m +++ /dev/null @@ -1,4 +0,0 @@ @@ -436,7 +436,7 @@ index 6e1ffdcf9..000000000 -.BR grub-fstest (1) diff --git a/docs/man/grub-reboot.h2m b/docs/man/grub-reboot.h2m deleted file mode 100644 -index e4acace65..000000000 +index e4acace65ce..00000000000 --- a/docs/man/grub-reboot.h2m +++ /dev/null @@ -1,5 +0,0 @@ @@ -447,7 +447,7 @@ index e4acace65..000000000 -.BR grub-editenv (1) diff --git a/docs/man/grub-render-label.h2m b/docs/man/grub-render-label.h2m deleted file mode 100644 -index 50ae5247c..000000000 +index 50ae5247c05..00000000000 --- a/docs/man/grub-render-label.h2m +++ /dev/null @@ -1,3 +0,0 @@ @@ -456,7 +456,7 @@ index 50ae5247c..000000000 - diff --git a/docs/man/grub-script-check.h2m b/docs/man/grub-script-check.h2m deleted file mode 100644 -index 365368267..000000000 +index 3653682671a..00000000000 --- a/docs/man/grub-script-check.h2m +++ /dev/null @@ -1,4 +0,0 @@ @@ -466,7 +466,7 @@ index 365368267..000000000 -.BR grub-mkconfig (8) diff --git a/docs/man/grub-set-default.h2m b/docs/man/grub-set-default.h2m deleted file mode 100644 -index 7945001c1..000000000 +index 7945001c154..00000000000 --- a/docs/man/grub-set-default.h2m +++ /dev/null @@ -1,5 +0,0 @@ @@ -477,7 +477,7 @@ index 7945001c1..000000000 -.BR grub-editenv (1) diff --git a/docs/man/grub-sparc64-setup.h2m b/docs/man/grub-sparc64-setup.h2m deleted file mode 100644 -index 18f803a50..000000000 +index 18f803a50db..00000000000 --- a/docs/man/grub-sparc64-setup.h2m +++ /dev/null @@ -1,6 +0,0 @@ @@ -489,7 +489,7 @@ index 18f803a50..000000000 -.BR grub-mkrescue (1) diff --git a/docs/man/grub-syslinux2cfg.h2m b/docs/man/grub-syslinux2cfg.h2m deleted file mode 100644 -index ad25c8ab7..000000000 +index ad25c8ab753..00000000000 --- a/docs/man/grub-syslinux2cfg.h2m +++ /dev/null @@ -1,4 +0,0 @@ @@ -498,7 +498,7 @@ index ad25c8ab7..000000000 -[SEE ALSO] -.BR grub-menulst2cfg (8) diff --git a/gentpl.py b/gentpl.py -index da67965a4..bf8439fa7 100644 +index da67965a41a..bf8439fa743 100644 --- a/gentpl.py +++ b/gentpl.py @@ -802,10 +802,7 @@ def manpage(defn, adddeps): @@ -515,7 +515,7 @@ index da67965a4..bf8439fa7 100644 diff --git a/util/grub-bios-setup.8 b/util/grub-bios-setup.8 new file mode 100644 -index 000000000..56f582b3d +index 00000000000..56f582b3d75 --- /dev/null +++ b/util/grub-bios-setup.8 @@ -0,0 +1,54 @@ @@ -575,7 +575,7 @@ index 000000000..56f582b3d +.BR "info grub" diff --git a/util/grub-editenv.1 b/util/grub-editenv.1 new file mode 100644 -index 000000000..d28ba03ba +index 00000000000..d28ba03ba42 --- /dev/null +++ b/util/grub-editenv.1 @@ -0,0 +1,46 @@ @@ -627,7 +627,7 @@ index 000000000..d28ba03ba +.BR "info grub" diff --git a/util/grub-file.1 b/util/grub-file.1 new file mode 100644 -index 000000000..b29cb3278 +index 00000000000..b29cb327889 --- /dev/null +++ b/util/grub-file.1 @@ -0,0 +1,165 @@ @@ -798,7 +798,7 @@ index 000000000..b29cb3278 +.BR "info grub" diff --git a/util/grub-fstest.1 b/util/grub-fstest.1 new file mode 100644 -index 000000000..792fa7863 +index 00000000000..792fa78634c --- /dev/null +++ b/util/grub-fstest.1 @@ -0,0 +1,99 @@ @@ -903,7 +903,7 @@ index 000000000..792fa7863 +.BR "info grub" diff --git a/util/grub-glue-efi.1 b/util/grub-glue-efi.1 new file mode 100644 -index 000000000..72bd555d5 +index 00000000000..72bd555d577 --- /dev/null +++ b/util/grub-glue-efi.1 @@ -0,0 +1,31 @@ @@ -940,7 +940,7 @@ index 000000000..72bd555d5 +.BR "info grub" diff --git a/util/grub-install.8 b/util/grub-install.8 new file mode 100644 -index 000000000..76272a39d +index 00000000000..76272a39d2e --- /dev/null +++ b/util/grub-install.8 @@ -0,0 +1,129 @@ @@ -1075,7 +1075,7 @@ index 000000000..76272a39d +.BR "info grub" diff --git a/util/grub-kbdcomp.1 b/util/grub-kbdcomp.1 new file mode 100644 -index 000000000..0bb969a5b +index 00000000000..0bb969a5b43 --- /dev/null +++ b/util/grub-kbdcomp.1 @@ -0,0 +1,19 @@ @@ -1100,7 +1100,7 @@ index 000000000..0bb969a5b +.BR "info grub" diff --git a/util/grub-macbless.1 b/util/grub-macbless.1 new file mode 100644 -index 000000000..41a96186f +index 00000000000..41a96186f70 --- /dev/null +++ b/util/grub-macbless.1 @@ -0,0 +1,22 @@ @@ -1128,7 +1128,7 @@ index 000000000..41a96186f +.BR "info grub" diff --git a/util/grub-menulst2cfg.1 b/util/grub-menulst2cfg.1 new file mode 100644 -index 000000000..91e2ef871 +index 00000000000..91e2ef87113 --- /dev/null +++ b/util/grub-menulst2cfg.1 @@ -0,0 +1,12 @@ @@ -1146,7 +1146,7 @@ index 000000000..91e2ef871 +.BR "info grub" diff --git a/util/grub-mkconfig.8 b/util/grub-mkconfig.8 new file mode 100644 -index 000000000..a2d1f577b +index 00000000000..a2d1f577b9b --- /dev/null +++ b/util/grub-mkconfig.8 @@ -0,0 +1,17 @@ @@ -1169,7 +1169,7 @@ index 000000000..a2d1f577b +.BR "info grub" diff --git a/util/grub-mkfont.1 b/util/grub-mkfont.1 new file mode 100644 -index 000000000..349485798 +index 00000000000..3494857987d --- /dev/null +++ b/util/grub-mkfont.1 @@ -0,0 +1,87 @@ @@ -1262,7 +1262,7 @@ index 000000000..349485798 +.BR "info grub" diff --git a/util/grub-mkimage.1 b/util/grub-mkimage.1 new file mode 100644 -index 000000000..4dea4f545 +index 00000000000..4dea4f54597 --- /dev/null +++ b/util/grub-mkimage.1 @@ -0,0 +1,95 @@ @@ -1363,7 +1363,7 @@ index 000000000..4dea4f545 +.BR "info grub" diff --git a/util/grub-mklayout.1 b/util/grub-mklayout.1 new file mode 100644 -index 000000000..d1bbc2ec5 +index 00000000000..d1bbc2ec515 --- /dev/null +++ b/util/grub-mklayout.1 @@ -0,0 +1,27 @@ @@ -1396,7 +1396,7 @@ index 000000000..d1bbc2ec5 +.BR "info grub" diff --git a/util/grub-mknetdir.1 b/util/grub-mknetdir.1 new file mode 100644 -index 000000000..fa7e8d4ef +index 00000000000..fa7e8d4ef0d --- /dev/null +++ b/util/grub-mknetdir.1 @@ -0,0 +1,12 @@ @@ -1414,7 +1414,7 @@ index 000000000..fa7e8d4ef +.BR "info grub" diff --git a/util/grub-mkpasswd-pbkdf2.1 b/util/grub-mkpasswd-pbkdf2.1 new file mode 100644 -index 000000000..73c437c15 +index 00000000000..73c437c15d8 --- /dev/null +++ b/util/grub-mkpasswd-pbkdf2.1 @@ -0,0 +1,27 @@ @@ -1447,7 +1447,7 @@ index 000000000..73c437c15 +.BR "info grub" diff --git a/util/grub-mkrelpath.1 b/util/grub-mkrelpath.1 new file mode 100644 -index 000000000..85f111362 +index 00000000000..85f1113621d --- /dev/null +++ b/util/grub-mkrelpath.1 @@ -0,0 +1,12 @@ @@ -1465,7 +1465,7 @@ index 000000000..85f111362 +.BR "info grub" diff --git a/util/grub-mkrescue.1 b/util/grub-mkrescue.1 new file mode 100644 -index 000000000..4ed9fc723 +index 00000000000..4ed9fc723fd --- /dev/null +++ b/util/grub-mkrescue.1 @@ -0,0 +1,123 @@ @@ -1594,7 +1594,7 @@ index 000000000..4ed9fc723 +.BR "info grub" diff --git a/util/grub-mkstandalone.1 b/util/grub-mkstandalone.1 new file mode 100644 -index 000000000..ba2d2bdf2 +index 00000000000..ba2d2bdf279 --- /dev/null +++ b/util/grub-mkstandalone.1 @@ -0,0 +1,100 @@ @@ -1700,7 +1700,7 @@ index 000000000..ba2d2bdf2 +.BR "info grub" diff --git a/util/grub-ofpathname.8 b/util/grub-ofpathname.8 new file mode 100644 -index 000000000..bf3743aeb +index 00000000000..bf3743aeba1 --- /dev/null +++ b/util/grub-ofpathname.8 @@ -0,0 +1,12 @@ @@ -1718,7 +1718,7 @@ index 000000000..bf3743aeb +.BR "info grub" diff --git a/util/grub-probe.8 b/util/grub-probe.8 new file mode 100644 -index 000000000..04e26c832 +index 00000000000..04e26c832bb --- /dev/null +++ b/util/grub-probe.8 @@ -0,0 +1,80 @@ @@ -1804,7 +1804,7 @@ index 000000000..04e26c832 +.BR "info grub" diff --git a/util/grub-reboot.8 b/util/grub-reboot.8 new file mode 100644 -index 000000000..faa5e4eec +index 00000000000..faa5e4eece2 --- /dev/null +++ b/util/grub-reboot.8 @@ -0,0 +1,21 @@ @@ -1831,7 +1831,7 @@ index 000000000..faa5e4eec +.BR "info grub" diff --git a/util/grub-render-label.1 b/util/grub-render-label.1 new file mode 100644 -index 000000000..4d51c8abf +index 00000000000..4d51c8abf01 --- /dev/null +++ b/util/grub-render-label.1 @@ -0,0 +1,51 @@ @@ -1888,7 +1888,7 @@ index 000000000..4d51c8abf +.BR "info grub" diff --git a/util/grub-script-check.1 b/util/grub-script-check.1 new file mode 100644 -index 000000000..0f1f625b0 +index 00000000000..0f1f625b05d --- /dev/null +++ b/util/grub-script-check.1 @@ -0,0 +1,21 @@ @@ -1915,7 +1915,7 @@ index 000000000..0f1f625b0 +.BR "info grub" diff --git a/util/grub-set-default.8 b/util/grub-set-default.8 new file mode 100644 -index 000000000..a96265a15 +index 00000000000..a96265a1509 --- /dev/null +++ b/util/grub-set-default.8 @@ -0,0 +1,21 @@ @@ -1942,7 +1942,7 @@ index 000000000..a96265a15 +.BR "info grub" diff --git a/util/grub-sparc64-setup.8 b/util/grub-sparc64-setup.8 new file mode 100644 -index 000000000..37ea2dd5e +index 00000000000..37ea2dd5eaa --- /dev/null +++ b/util/grub-sparc64-setup.8 @@ -0,0 +1,12 @@ @@ -1959,5 +1959,5 @@ index 000000000..37ea2dd5e +.SH SEE ALSO +.BR "info grub" -- -2.14.3 +2.15.0 diff --git a/0112-use-fw_path-prefix-when-fallback-searching-for-grub-.patch b/0112-use-fw_path-prefix-when-fallback-searching-for-grub-.patch index 039918e3..5811d02c 100644 --- a/0112-use-fw_path-prefix-when-fallback-searching-for-grub-.patch +++ b/0112-use-fw_path-prefix-when-fallback-searching-for-grub-.patch @@ -1,7 +1,7 @@ From acf4cfa6d1691a9476b36949af7e296080c88d25 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Wed, 19 Feb 2014 15:58:43 -0500 -Subject: [PATCH 112/198] use fw_path prefix when fallback searching for grub +Subject: [PATCH 112/206] use fw_path prefix when fallback searching for grub config When PXE booting via UEFI firmware, grub was searching for grub.cfg @@ -18,7 +18,7 @@ Signed-off-by: Mark Salter 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c -index 0ce59fdc3..a3713efcd 100644 +index 0ce59fdc3f0..a3713efcd90 100644 --- a/grub-core/normal/main.c +++ b/grub-core/normal/main.c @@ -343,7 +343,7 @@ grub_cmd_normal (struct grub_command *cmd __attribute__ ((unused)), @@ -41,5 +41,5 @@ index 0ce59fdc3..a3713efcd 100644 { grub_size_t config_len; -- -2.14.3 +2.15.0 diff --git a/0113-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch b/0113-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch index d6b73579..15ade646 100644 --- a/0113-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch +++ b/0113-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch @@ -1,7 +1,7 @@ From b7aa57a2f879d185888e4d47f77a1a30370973f9 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 6 Mar 2014 11:51:33 -0500 -Subject: [PATCH 113/198] Try mac/guid/etc before grub.cfg on tftp config +Subject: [PATCH 113/206] Try mac/guid/etc before grub.cfg on tftp config files. Signed-off-by: Peter Jones @@ -10,7 +10,7 @@ Signed-off-by: Peter Jones 1 file changed, 43 insertions(+), 37 deletions(-) diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c -index a3713efcd..7d9c4f09b 100644 +index a3713efcd90..7d9c4f09b9b 100644 --- a/grub-core/normal/main.c +++ b/grub-core/normal/main.c @@ -341,53 +341,59 @@ grub_cmd_normal (struct grub_command *cmd __attribute__ ((unused)), @@ -60,26 +60,26 @@ index a3713efcd..7d9c4f09b 100644 + config_len = grub_strlen (prefix) + + sizeof ("/grub.cfg-XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"); + config = grub_malloc (config_len); -+ -+ if (! config) -+ goto quit; - if (! config) - goto quit; -+ grub_snprintf (config, config_len, "%s/grub.cfg", prefix); ++ if (! config) ++ goto quit; - grub_snprintf (config, config_len, "%s/grub.cfg", prefix); -+ grub_net_search_configfile (config); ++ grub_snprintf (config, config_len, "%s/grub.cfg", prefix); - if (grub_strncmp (prefix + 1, "tftp", sizeof ("tftp") - 1) == 0) - grub_net_search_configfile (config); ++ grub_net_search_configfile (config); + +- grub_enter_normal_mode (config); +- grub_free (config); + grub_enter_normal_mode (config); + grub_free (config); + config = NULL; + } - -- grub_enter_normal_mode (config); -- grub_free (config); ++ + if (!config) + { + config = grub_xasprintf ("%s/grub.cfg", prefix); @@ -111,5 +111,5 @@ index a3713efcd..7d9c4f09b 100644 else grub_enter_normal_mode (argv[0]); -- -2.14.3 +2.15.0 diff --git a/0114-Fix-convert-function-to-support-NVMe-devices.patch b/0114-Fix-convert-function-to-support-NVMe-devices.patch index 100df73f..123fda37 100644 --- a/0114-Fix-convert-function-to-support-NVMe-devices.patch +++ b/0114-Fix-convert-function-to-support-NVMe-devices.patch @@ -1,7 +1,7 @@ From 69946054baab92385b9f6518cc78e94810b40c48 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 18 Feb 2014 11:34:00 -0500 -Subject: [PATCH 114/198] Fix convert function to support NVMe devices +Subject: [PATCH 114/206] Fix convert function to support NVMe devices This is adapted from the patch at https://bugzilla.redhat.com/show_bug.cgi?id=1019660 , which is against @@ -18,7 +18,7 @@ Signed-off-by: Peter Jones 1 file changed, 19 insertions(+) diff --git a/util/getroot.c b/util/getroot.c -index 847406fba..fa3460d6c 100644 +index 847406fbab0..fa3460d6cd8 100644 --- a/util/getroot.c +++ b/util/getroot.c @@ -153,6 +153,7 @@ convert_system_partition_to_system_disk (const char *os_dev, int *is_part) @@ -55,5 +55,5 @@ index 847406fba..fa3460d6c 100644 return grub_util_devmapper_part_to_disk (&st, is_part, os_dev); -- -2.14.3 +2.15.0 diff --git a/0115-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch b/0115-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch index 4640109c..52b919f0 100644 --- a/0115-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch +++ b/0115-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch @@ -1,7 +1,7 @@ From f168a0803d8d35e431ef6888755f9b2622304846 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Mon, 10 Feb 2014 16:13:10 -0500 -Subject: [PATCH 115/198] Switch to use APM Mustang device tree, for hardware +Subject: [PATCH 115/206] Switch to use APM Mustang device tree, for hardware testing. Signed-off-by: David A. Marlin @@ -10,7 +10,7 @@ Signed-off-by: David A. Marlin 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index 79a747ebd..462b461ff 100644 +index 79a747ebd4d..462b461ff49 100644 --- a/util/grub.d/10_linux.in +++ b/util/grub.d/10_linux.in @@ -232,8 +232,8 @@ while [ "x$list" != "x" ] ; do @@ -25,5 +25,5 @@ index 79a747ebd..462b461ff 100644 fi done -- -2.14.3 +2.15.0 diff --git a/0116-Use-the-default-device-tree-from-the-grub-default-fi.patch b/0116-Use-the-default-device-tree-from-the-grub-default-fi.patch index 1d37990b..aecdde0d 100644 --- a/0116-Use-the-default-device-tree-from-the-grub-default-fi.patch +++ b/0116-Use-the-default-device-tree-from-the-grub-default-fi.patch @@ -1,7 +1,7 @@ From 6ec36777aae0c4afd98f67f22d4d511b447dbb02 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Wed, 12 Feb 2014 14:54:04 -0500 -Subject: [PATCH 116/198] Use the default device tree from the grub default +Subject: [PATCH 116/206] Use the default device tree from the grub default file instead of hardcoding a value. @@ -13,7 +13,7 @@ Signed-off-by: David A. Marlin 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in -index c088b7054..9d595ac05 100644 +index c088b705442..9d595ac058a 100644 --- a/util/grub-mkconfig.in +++ b/util/grub-mkconfig.in @@ -235,7 +235,8 @@ export GRUB_DEFAULT \ @@ -27,7 +27,7 @@ index c088b7054..9d595ac05 100644 if test "x${grub_cfg}" != "x"; then rm -f "${grub_cfg}.new" diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index 462b461ff..a9692a0c2 100644 +index 462b461ff49..a9692a0c2a2 100644 --- a/util/grub.d/10_linux.in +++ b/util/grub.d/10_linux.in @@ -232,8 +232,8 @@ while [ "x$list" != "x" ] ; do @@ -42,5 +42,5 @@ index 462b461ff..a9692a0c2 100644 fi done -- -2.14.3 +2.15.0 diff --git a/0117-reopen-SNP-protocol-for-exclusive-use-by-grub.patch b/0117-reopen-SNP-protocol-for-exclusive-use-by-grub.patch index e8599ae0..d80b766c 100644 --- a/0117-reopen-SNP-protocol-for-exclusive-use-by-grub.patch +++ b/0117-reopen-SNP-protocol-for-exclusive-use-by-grub.patch @@ -1,14 +1,14 @@ From debcbbacd18bfbbcbd5fd9dce947f2cbce09c916 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Sat, 15 Feb 2014 15:10:22 -0500 -Subject: [PATCH 117/198] reopen SNP protocol for exclusive use by grub +Subject: [PATCH 117/206] reopen SNP protocol for exclusive use by grub --- grub-core/net/drivers/efi/efinet.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/grub-core/net/drivers/efi/efinet.c b/grub-core/net/drivers/efi/efinet.c -index 5388f952b..ea0e0ca36 100644 +index 5388f952ba9..ea0e0ca360e 100644 --- a/grub-core/net/drivers/efi/efinet.c +++ b/grub-core/net/drivers/efi/efinet.c @@ -330,6 +330,7 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, @@ -42,5 +42,5 @@ index 5388f952b..ea0e0ca36 100644 } } -- -2.14.3 +2.15.0 diff --git a/0118-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch b/0118-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch index 6a9f00ae..f0240731 100644 --- a/0118-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch +++ b/0118-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch @@ -1,7 +1,7 @@ From 88892eedb9beb9d8c295329fad87edb339e4e27c Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 4 Mar 2016 15:13:59 -0500 -Subject: [PATCH 118/198] Revert "reopen SNP protocol for exclusive use by +Subject: [PATCH 118/206] Revert "reopen SNP protocol for exclusive use by grub" This reverts commit a3f2c756ce34c9666bddef35e3b3b85ccecdcffc , which is @@ -17,7 +17,7 @@ Signed-off-by: Peter Jones 1 file changed, 16 deletions(-) diff --git a/grub-core/net/drivers/efi/efinet.c b/grub-core/net/drivers/efi/efinet.c -index ea0e0ca36..5388f952b 100644 +index ea0e0ca360e..5388f952ba9 100644 --- a/grub-core/net/drivers/efi/efinet.c +++ b/grub-core/net/drivers/efi/efinet.c @@ -330,7 +330,6 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, @@ -51,5 +51,5 @@ index ea0e0ca36..5388f952b 100644 } } -- -2.14.3 +2.15.0 diff --git a/0119-Add-grub_util_readlink.patch b/0119-Add-grub_util_readlink.patch index 5dfac40f..fcc09468 100644 --- a/0119-Add-grub_util_readlink.patch +++ b/0119-Add-grub_util_readlink.patch @@ -1,7 +1,7 @@ From 9c1af9c0a44353f6b72691456a4a2883246b6346 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 3 Sep 2014 10:01:03 -0400 -Subject: [PATCH 119/198] Add grub_util_readlink() +Subject: [PATCH 119/206] Add grub_util_readlink() Add grub_util_readlink(). This requires pulling in stat and readlink from gnulib, which pulls in stat and related headers, but after that the @@ -10,20 +10,20 @@ implementation is straightforward. Signed-off-by: Peter Jones Reviewed-by: Adam Jackson --- - grub-core/gnulib/Makefile.am | 177 +++++++- grub-core/gnulib/gettimeofday.c | 154 +++++++ - grub-core/gnulib/pathmax.h | 83 ++++ grub-core/gnulib/readlink.c | 74 ++++ grub-core/gnulib/stat.c | 138 +++++++ + grub-core/osdep/windows/hostdisk.c | 6 + + grub-core/gnulib/pathmax.h | 83 ++++ grub-core/gnulib/sys_stat.in.h | 732 ++++++++++++++++++++++++++++++++++ grub-core/gnulib/sys_time.in.h | 213 ++++++++++ grub-core/gnulib/sys_types.in.h | 2 + grub-core/gnulib/time.h | 586 +++++++++++++++++++++++++++ grub-core/gnulib/time.in.h | 274 +++++++++++++ - grub-core/osdep/windows/hostdisk.c | 6 + include/grub/osdep/hostfile_aros.h | 6 + include/grub/osdep/hostfile_unix.h | 6 + include/grub/osdep/hostfile_windows.h | 2 + + grub-core/gnulib/Makefile.am | 177 +++++++- m4/gettimeofday.m4 | 138 +++++++ m4/gnulib-cache.m4 | 3 +- m4/gnulib-comp.m4 | 49 +++ @@ -36,9 +36,9 @@ Reviewed-by: Adam Jackson m4/time_h.m4 | 118 ++++++ 24 files changed, 3295 insertions(+), 2 deletions(-) create mode 100644 grub-core/gnulib/gettimeofday.c - create mode 100644 grub-core/gnulib/pathmax.h create mode 100644 grub-core/gnulib/readlink.c create mode 100644 grub-core/gnulib/stat.c + create mode 100644 grub-core/gnulib/pathmax.h create mode 100644 grub-core/gnulib/sys_stat.in.h create mode 100644 grub-core/gnulib/sys_time.in.h create mode 100644 grub-core/gnulib/time.h @@ -52,239 +52,9 @@ Reviewed-by: Adam Jackson create mode 100644 m4/sys_time_h.m4 create mode 100644 m4/time_h.m4 -diff --git a/grub-core/gnulib/Makefile.am b/grub-core/gnulib/Makefile.am -index 3444397fe..b7c5e60e1 100644 ---- a/grub-core/gnulib/Makefile.am -+++ b/grub-core/gnulib/Makefile.am -@@ -21,7 +21,7 @@ - # the same distribution terms as the rest of that program. - # - # Generated by gnulib-tool. --# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=grub-core/gnulib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --no-conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files argp error fnmatch getdelim getline gettext progname regex -+# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=grub-core/gnulib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --no-conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files argp error fnmatch getdelim getline gettext progname readlink regex - - AUTOMAKE_OPTIONS = 1.5 gnits subdir-objects - -@@ -326,6 +326,15 @@ libgnu_a_SOURCES += gettext.h - - ## end gnulib module gettext-h - -+## begin gnulib module gettimeofday -+ -+ -+EXTRA_DIST += gettimeofday.c -+ -+EXTRA_libgnu_a_SOURCES += gettimeofday.c -+ -+## end gnulib module gettimeofday -+ - ## begin gnulib module havelib - - -@@ -596,6 +605,13 @@ EXTRA_libgnu_a_SOURCES += nl_langinfo.c - - ## end gnulib module nl_langinfo - -+## begin gnulib module pathmax -+ -+ -+EXTRA_DIST += pathmax.h -+ -+## end gnulib module pathmax -+ - ## begin gnulib module progname - - libgnu_a_SOURCES += progname.h progname.c -@@ -611,6 +627,15 @@ EXTRA_libgnu_a_SOURCES += rawmemchr.c - - ## end gnulib module rawmemchr - -+## begin gnulib module readlink -+ -+ -+EXTRA_DIST += readlink.c -+ -+EXTRA_libgnu_a_SOURCES += readlink.c -+ -+## end gnulib module readlink -+ - ## begin gnulib module realloc-posix - - -@@ -725,6 +750,15 @@ EXTRA_DIST += $(top_srcdir)/build-aux/snippet/warn-on-use.h - - ## end gnulib module snippet/warn-on-use - -+## begin gnulib module stat -+ -+ -+EXTRA_DIST += stat.c -+ -+EXTRA_libgnu_a_SOURCES += stat.c -+ -+## end gnulib module stat -+ - ## begin gnulib module stdalign - - BUILT_SOURCES += $(STDALIGN_H) -@@ -1280,6 +1314,102 @@ libgnu_a_SOURCES += strnlen1.h strnlen1.c - - ## end gnulib module strnlen1 - -+## begin gnulib module sys_stat -+ -+BUILT_SOURCES += sys/stat.h -+ -+# We need the following in order to create when the system -+# has one that is incomplete. -+sys/stat.h: sys_stat.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) -+ $(AM_V_at)$(MKDIR_P) sys -+ $(AM_V_GEN)rm -f $@-t $@ && \ -+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ -+ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -+ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -+ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -+ -e 's|@''NEXT_SYS_STAT_H''@|$(NEXT_SYS_STAT_H)|g' \ -+ -e 's|@''WINDOWS_64_BIT_ST_SIZE''@|$(WINDOWS_64_BIT_ST_SIZE)|g' \ -+ -e 's/@''GNULIB_FCHMODAT''@/$(GNULIB_FCHMODAT)/g' \ -+ -e 's/@''GNULIB_FSTAT''@/$(GNULIB_FSTAT)/g' \ -+ -e 's/@''GNULIB_FSTATAT''@/$(GNULIB_FSTATAT)/g' \ -+ -e 's/@''GNULIB_FUTIMENS''@/$(GNULIB_FUTIMENS)/g' \ -+ -e 's/@''GNULIB_LCHMOD''@/$(GNULIB_LCHMOD)/g' \ -+ -e 's/@''GNULIB_LSTAT''@/$(GNULIB_LSTAT)/g' \ -+ -e 's/@''GNULIB_MKDIRAT''@/$(GNULIB_MKDIRAT)/g' \ -+ -e 's/@''GNULIB_MKFIFO''@/$(GNULIB_MKFIFO)/g' \ -+ -e 's/@''GNULIB_MKFIFOAT''@/$(GNULIB_MKFIFOAT)/g' \ -+ -e 's/@''GNULIB_MKNOD''@/$(GNULIB_MKNOD)/g' \ -+ -e 's/@''GNULIB_MKNODAT''@/$(GNULIB_MKNODAT)/g' \ -+ -e 's/@''GNULIB_STAT''@/$(GNULIB_STAT)/g' \ -+ -e 's/@''GNULIB_UTIMENSAT''@/$(GNULIB_UTIMENSAT)/g' \ -+ -e 's|@''HAVE_FCHMODAT''@|$(HAVE_FCHMODAT)|g' \ -+ -e 's|@''HAVE_FSTATAT''@|$(HAVE_FSTATAT)|g' \ -+ -e 's|@''HAVE_FUTIMENS''@|$(HAVE_FUTIMENS)|g' \ -+ -e 's|@''HAVE_LCHMOD''@|$(HAVE_LCHMOD)|g' \ -+ -e 's|@''HAVE_LSTAT''@|$(HAVE_LSTAT)|g' \ -+ -e 's|@''HAVE_MKDIRAT''@|$(HAVE_MKDIRAT)|g' \ -+ -e 's|@''HAVE_MKFIFO''@|$(HAVE_MKFIFO)|g' \ -+ -e 's|@''HAVE_MKFIFOAT''@|$(HAVE_MKFIFOAT)|g' \ -+ -e 's|@''HAVE_MKNOD''@|$(HAVE_MKNOD)|g' \ -+ -e 's|@''HAVE_MKNODAT''@|$(HAVE_MKNODAT)|g' \ -+ -e 's|@''HAVE_UTIMENSAT''@|$(HAVE_UTIMENSAT)|g' \ -+ -e 's|@''REPLACE_FSTAT''@|$(REPLACE_FSTAT)|g' \ -+ -e 's|@''REPLACE_FSTATAT''@|$(REPLACE_FSTATAT)|g' \ -+ -e 's|@''REPLACE_FUTIMENS''@|$(REPLACE_FUTIMENS)|g' \ -+ -e 's|@''REPLACE_LSTAT''@|$(REPLACE_LSTAT)|g' \ -+ -e 's|@''REPLACE_MKDIR''@|$(REPLACE_MKDIR)|g' \ -+ -e 's|@''REPLACE_MKFIFO''@|$(REPLACE_MKFIFO)|g' \ -+ -e 's|@''REPLACE_MKNOD''@|$(REPLACE_MKNOD)|g' \ -+ -e 's|@''REPLACE_STAT''@|$(REPLACE_STAT)|g' \ -+ -e 's|@''REPLACE_UTIMENSAT''@|$(REPLACE_UTIMENSAT)|g' \ -+ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -+ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -+ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ -+ < $(srcdir)/sys_stat.in.h; \ -+ } > $@-t && \ -+ mv $@-t $@ -+MOSTLYCLEANFILES += sys/stat.h sys/stat.h-t -+MOSTLYCLEANDIRS += sys -+ -+EXTRA_DIST += sys_stat.in.h -+ -+## end gnulib module sys_stat -+ -+## begin gnulib module sys_time -+ -+BUILT_SOURCES += sys/time.h -+ -+# We need the following in order to create when the system -+# doesn't have one that works with the given compiler. -+sys/time.h: sys_time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) -+ $(AM_V_at)$(MKDIR_P) sys -+ $(AM_V_GEN)rm -f $@-t $@ && \ -+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ -+ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -+ -e 's/@''HAVE_SYS_TIME_H''@/$(HAVE_SYS_TIME_H)/g' \ -+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -+ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -+ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -+ -e 's|@''NEXT_SYS_TIME_H''@|$(NEXT_SYS_TIME_H)|g' \ -+ -e 's/@''GNULIB_GETTIMEOFDAY''@/$(GNULIB_GETTIMEOFDAY)/g' \ -+ -e 's|@''HAVE_WINSOCK2_H''@|$(HAVE_WINSOCK2_H)|g' \ -+ -e 's/@''HAVE_GETTIMEOFDAY''@/$(HAVE_GETTIMEOFDAY)/g' \ -+ -e 's/@''HAVE_STRUCT_TIMEVAL''@/$(HAVE_STRUCT_TIMEVAL)/g' \ -+ -e 's/@''REPLACE_GETTIMEOFDAY''@/$(REPLACE_GETTIMEOFDAY)/g' \ -+ -e 's/@''REPLACE_STRUCT_TIMEVAL''@/$(REPLACE_STRUCT_TIMEVAL)/g' \ -+ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -+ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -+ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ -+ < $(srcdir)/sys_time.in.h; \ -+ } > $@-t && \ -+ mv $@-t $@ -+MOSTLYCLEANFILES += sys/time.h sys/time.h-t -+ -+EXTRA_DIST += sys_time.in.h -+ -+## end gnulib module sys_time -+ - ## begin gnulib module sys_types - - BUILT_SOURCES += sys/types.h -@@ -1334,6 +1464,51 @@ EXTRA_DIST += sysexits.in.h - - ## end gnulib module sysexits - -+## begin gnulib module time -+ -+BUILT_SOURCES += time.h -+ -+# We need the following in order to create when the system -+# doesn't have one that works with the given compiler. -+time.h: time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) -+ $(AM_V_GEN)rm -f $@-t $@ && \ -+ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ -+ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ -+ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ -+ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ -+ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ -+ -e 's|@''NEXT_TIME_H''@|$(NEXT_TIME_H)|g' \ -+ -e 's/@''GNULIB_GETTIMEOFDAY''@/$(GNULIB_GETTIMEOFDAY)/g' \ -+ -e 's/@''GNULIB_MKTIME''@/$(GNULIB_MKTIME)/g' \ -+ -e 's/@''GNULIB_NANOSLEEP''@/$(GNULIB_NANOSLEEP)/g' \ -+ -e 's/@''GNULIB_STRPTIME''@/$(GNULIB_STRPTIME)/g' \ -+ -e 's/@''GNULIB_TIMEGM''@/$(GNULIB_TIMEGM)/g' \ -+ -e 's/@''GNULIB_TIME_R''@/$(GNULIB_TIME_R)/g' \ -+ -e 's|@''HAVE_DECL_LOCALTIME_R''@|$(HAVE_DECL_LOCALTIME_R)|g' \ -+ -e 's|@''HAVE_NANOSLEEP''@|$(HAVE_NANOSLEEP)|g' \ -+ -e 's|@''HAVE_STRPTIME''@|$(HAVE_STRPTIME)|g' \ -+ -e 's|@''HAVE_TIMEGM''@|$(HAVE_TIMEGM)|g' \ -+ -e 's|@''REPLACE_GMTIME''@|$(REPLACE_GMTIME)|g' \ -+ -e 's|@''REPLACE_LOCALTIME''@|$(REPLACE_LOCALTIME)|g' \ -+ -e 's|@''REPLACE_LOCALTIME_R''@|$(REPLACE_LOCALTIME_R)|g' \ -+ -e 's|@''REPLACE_MKTIME''@|$(REPLACE_MKTIME)|g' \ -+ -e 's|@''REPLACE_NANOSLEEP''@|$(REPLACE_NANOSLEEP)|g' \ -+ -e 's|@''REPLACE_TIMEGM''@|$(REPLACE_TIMEGM)|g' \ -+ -e 's|@''PTHREAD_H_DEFINES_STRUCT_TIMESPEC''@|$(PTHREAD_H_DEFINES_STRUCT_TIMESPEC)|g' \ -+ -e 's|@''SYS_TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(SYS_TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \ -+ -e 's|@''TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \ -+ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ -+ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ -+ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ -+ < $(srcdir)/time.in.h; \ -+ } > $@-t && \ -+ mv $@-t $@ -+MOSTLYCLEANFILES += time.h time.h-t -+ -+EXTRA_DIST += time.in.h -+ -+## end gnulib module time -+ - ## begin gnulib module unistd - - BUILT_SOURCES += unistd.h diff --git a/grub-core/gnulib/gettimeofday.c b/grub-core/gnulib/gettimeofday.c new file mode 100644 -index 000000000..8b2058e8c +index 00000000000..8b2058e8c87 --- /dev/null +++ b/grub-core/gnulib/gettimeofday.c @@ -0,0 +1,154 @@ @@ -442,98 +212,9 @@ index 000000000..8b2058e8c + +#endif +} -diff --git a/grub-core/gnulib/pathmax.h b/grub-core/gnulib/pathmax.h -new file mode 100644 -index 000000000..33fc3553d ---- /dev/null -+++ b/grub-core/gnulib/pathmax.h -@@ -0,0 +1,83 @@ -+/* Define PATH_MAX somehow. Requires sys/types.h. -+ Copyright (C) 1992, 1999, 2001, 2003, 2005, 2009-2014 Free Software -+ Foundation, Inc. -+ -+ This program is free software; you can redistribute it and/or modify -+ it under the terms of the GNU General Public License as published by -+ the Free Software Foundation; either version 3, or (at your option) -+ any later version. -+ -+ This program is distributed in the hope that it will be useful, -+ but WITHOUT ANY WARRANTY; without even the implied warranty of -+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ GNU General Public License for more details. -+ -+ You should have received a copy of the GNU General Public License -+ along with this program; if not, see . */ -+ -+#ifndef _PATHMAX_H -+# define _PATHMAX_H -+ -+/* POSIX:2008 defines PATH_MAX to be the maximum number of bytes in a filename, -+ including the terminating NUL byte. -+ -+ PATH_MAX is not defined on systems which have no limit on filename length, -+ such as GNU/Hurd. -+ -+ This file does *not* define PATH_MAX always. Programs that use this file -+ can handle the GNU/Hurd case in several ways: -+ - Either with a package-wide handling, or with a per-file handling, -+ - Either through a -+ #ifdef PATH_MAX -+ or through a fallback like -+ #ifndef PATH_MAX -+ # define PATH_MAX 8192 -+ #endif -+ or through a fallback like -+ #ifndef PATH_MAX -+ # define PATH_MAX pathconf ("/", _PC_PATH_MAX) -+ #endif -+ */ -+ -+# include -+ -+# include -+ -+# ifndef _POSIX_PATH_MAX -+# define _POSIX_PATH_MAX 256 -+# endif -+ -+/* Don't include sys/param.h if it already has been. */ -+# if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN -+# include -+# endif -+ -+# if !defined PATH_MAX && defined MAXPATHLEN -+# define PATH_MAX MAXPATHLEN -+# endif -+ -+# ifdef __hpux -+/* On HP-UX, PATH_MAX designates the maximum number of bytes in a filename, -+ *not* including the terminating NUL byte, and is set to 1023. -+ Additionally, when _XOPEN_SOURCE is defined to 500 or more, PATH_MAX is -+ not defined at all any more. */ -+# undef PATH_MAX -+# define PATH_MAX 1024 -+# endif -+ -+# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ -+/* The page "Naming Files, Paths, and Namespaces" on msdn.microsoft.com, -+ section "Maximum Path Length Limitation", -+ -+ explains that the maximum size of a filename, including the terminating -+ NUL byte, is 260 = 3 + 256 + 1. -+ This is the same value as -+ - FILENAME_MAX in , -+ - _MAX_PATH in , -+ - MAX_PATH in . -+ Undefine the original value, because mingw's gets it wrong. */ -+# undef PATH_MAX -+# define PATH_MAX 260 -+# endif -+ -+#endif /* _PATHMAX_H */ diff --git a/grub-core/gnulib/readlink.c b/grub-core/gnulib/readlink.c new file mode 100644 -index 000000000..4c4963951 +index 00000000000..4c496395176 --- /dev/null +++ b/grub-core/gnulib/readlink.c @@ -0,0 +1,74 @@ @@ -613,7 +294,7 @@ index 000000000..4c4963951 +#endif /* HAVE_READLINK */ diff --git a/grub-core/gnulib/stat.c b/grub-core/gnulib/stat.c new file mode 100644 -index 000000000..35f4b0b1a +index 00000000000..35f4b0b1a51 --- /dev/null +++ b/grub-core/gnulib/stat.c @@ -0,0 +1,138 @@ @@ -755,9 +436,115 @@ index 000000000..35f4b0b1a +#endif /* REPLACE_FUNC_STAT_DIR */ + return result; +} +diff --git a/grub-core/osdep/windows/hostdisk.c b/grub-core/osdep/windows/hostdisk.c +index 85507af88e3..6f49df465d7 100644 +--- a/grub-core/osdep/windows/hostdisk.c ++++ b/grub-core/osdep/windows/hostdisk.c +@@ -353,6 +353,12 @@ grub_util_mkdir (const char *dir) + free (windows_name); + } + ++ssize_t ++grub_util_readlink (const char *name, char *buf, size_t bufsize) ++{ ++ return readlink(name, buf, bufsize); ++} ++ + int + grub_util_rename (const char *from, const char *to) + { +diff --git a/grub-core/gnulib/pathmax.h b/grub-core/gnulib/pathmax.h +new file mode 100644 +index 00000000000..33fc3553d75 +--- /dev/null ++++ b/grub-core/gnulib/pathmax.h +@@ -0,0 +1,83 @@ ++/* Define PATH_MAX somehow. Requires sys/types.h. ++ Copyright (C) 1992, 1999, 2001, 2003, 2005, 2009-2014 Free Software ++ Foundation, Inc. ++ ++ This program is free software; you can redistribute it and/or modify ++ it under the terms of the GNU General Public License as published by ++ the Free Software Foundation; either version 3, or (at your option) ++ any later version. ++ ++ This program is distributed in the hope that it will be useful, ++ but WITHOUT ANY WARRANTY; without even the implied warranty of ++ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ GNU General Public License for more details. ++ ++ You should have received a copy of the GNU General Public License ++ along with this program; if not, see . */ ++ ++#ifndef _PATHMAX_H ++# define _PATHMAX_H ++ ++/* POSIX:2008 defines PATH_MAX to be the maximum number of bytes in a filename, ++ including the terminating NUL byte. ++ ++ PATH_MAX is not defined on systems which have no limit on filename length, ++ such as GNU/Hurd. ++ ++ This file does *not* define PATH_MAX always. Programs that use this file ++ can handle the GNU/Hurd case in several ways: ++ - Either with a package-wide handling, or with a per-file handling, ++ - Either through a ++ #ifdef PATH_MAX ++ or through a fallback like ++ #ifndef PATH_MAX ++ # define PATH_MAX 8192 ++ #endif ++ or through a fallback like ++ #ifndef PATH_MAX ++ # define PATH_MAX pathconf ("/", _PC_PATH_MAX) ++ #endif ++ */ ++ ++# include ++ ++# include ++ ++# ifndef _POSIX_PATH_MAX ++# define _POSIX_PATH_MAX 256 ++# endif ++ ++/* Don't include sys/param.h if it already has been. */ ++# if defined HAVE_SYS_PARAM_H && !defined PATH_MAX && !defined MAXPATHLEN ++# include ++# endif ++ ++# if !defined PATH_MAX && defined MAXPATHLEN ++# define PATH_MAX MAXPATHLEN ++# endif ++ ++# ifdef __hpux ++/* On HP-UX, PATH_MAX designates the maximum number of bytes in a filename, ++ *not* including the terminating NUL byte, and is set to 1023. ++ Additionally, when _XOPEN_SOURCE is defined to 500 or more, PATH_MAX is ++ not defined at all any more. */ ++# undef PATH_MAX ++# define PATH_MAX 1024 ++# endif ++ ++# if (defined _WIN32 || defined __WIN32__) && ! defined __CYGWIN__ ++/* The page "Naming Files, Paths, and Namespaces" on msdn.microsoft.com, ++ section "Maximum Path Length Limitation", ++ ++ explains that the maximum size of a filename, including the terminating ++ NUL byte, is 260 = 3 + 256 + 1. ++ This is the same value as ++ - FILENAME_MAX in , ++ - _MAX_PATH in , ++ - MAX_PATH in . ++ Undefine the original value, because mingw's gets it wrong. */ ++# undef PATH_MAX ++# define PATH_MAX 260 ++# endif ++ ++#endif /* _PATHMAX_H */ diff --git a/grub-core/gnulib/sys_stat.in.h b/grub-core/gnulib/sys_stat.in.h new file mode 100644 -index 000000000..b47a7ff0a +index 00000000000..b47a7ff0ae7 --- /dev/null +++ b/grub-core/gnulib/sys_stat.in.h @@ -0,0 +1,732 @@ @@ -1495,7 +1282,7 @@ index 000000000..b47a7ff0a +#endif diff --git a/grub-core/gnulib/sys_time.in.h b/grub-core/gnulib/sys_time.in.h new file mode 100644 -index 000000000..30057ad49 +index 00000000000..30057ad49fd --- /dev/null +++ b/grub-core/gnulib/sys_time.in.h @@ -0,0 +1,213 @@ @@ -1713,7 +1500,7 @@ index 000000000..30057ad49 +#endif /* _CYGWIN_SYS_TIME_H */ +#endif /* _@GUARD_PREFIX@_SYS_TIME_H */ diff --git a/grub-core/gnulib/sys_types.in.h b/grub-core/gnulib/sys_types.in.h -index d7da35623..9520c0903 100644 +index d7da35623b1..9520c09030c 100644 --- a/grub-core/gnulib/sys_types.in.h +++ b/grub-core/gnulib/sys_types.in.h @@ -23,7 +23,9 @@ @@ -1728,7 +1515,7 @@ index d7da35623..9520c0903 100644 #define _@GUARD_PREFIX@_SYS_TYPES_H diff --git a/grub-core/gnulib/time.h b/grub-core/gnulib/time.h new file mode 100644 -index 000000000..b9203d556 +index 00000000000..b9203d5569a --- /dev/null +++ b/grub-core/gnulib/time.h @@ -0,0 +1,586 @@ @@ -2320,7 +2107,7 @@ index 000000000..b9203d556 +#endif diff --git a/grub-core/gnulib/time.in.h b/grub-core/gnulib/time.in.h new file mode 100644 -index 000000000..81abdf46e +index 00000000000..81abdf46e0b --- /dev/null +++ b/grub-core/gnulib/time.in.h @@ -0,0 +1,274 @@ @@ -2598,25 +2385,8 @@ index 000000000..81abdf46e +# endif + +#endif -diff --git a/grub-core/osdep/windows/hostdisk.c b/grub-core/osdep/windows/hostdisk.c -index 85507af88..6f49df465 100644 ---- a/grub-core/osdep/windows/hostdisk.c -+++ b/grub-core/osdep/windows/hostdisk.c -@@ -353,6 +353,12 @@ grub_util_mkdir (const char *dir) - free (windows_name); - } - -+ssize_t -+grub_util_readlink (const char *name, char *buf, size_t bufsize) -+{ -+ return readlink(name, buf, bufsize); -+} -+ - int - grub_util_rename (const char *from, const char *to) - { diff --git a/include/grub/osdep/hostfile_aros.h b/include/grub/osdep/hostfile_aros.h -index a059c0fa4..161fbb7bd 100644 +index a059c0fa40a..161fbb7bdfd 100644 --- a/include/grub/osdep/hostfile_aros.h +++ b/include/grub/osdep/hostfile_aros.h @@ -68,6 +68,12 @@ grub_util_rename (const char *from, const char *to) @@ -2633,7 +2403,7 @@ index a059c0fa4..161fbb7bd 100644 struct grub_util_fd diff --git a/include/grub/osdep/hostfile_unix.h b/include/grub/osdep/hostfile_unix.h -index 9ffe46fa3..17cd3aa8b 100644 +index 9ffe46fa3ca..17cd3aa8b30 100644 --- a/include/grub/osdep/hostfile_unix.h +++ b/include/grub/osdep/hostfile_unix.h @@ -71,6 +71,12 @@ grub_util_rename (const char *from, const char *to) @@ -2650,7 +2420,7 @@ index 9ffe46fa3..17cd3aa8b 100644 #if defined (__NetBSD__) diff --git a/include/grub/osdep/hostfile_windows.h b/include/grub/osdep/hostfile_windows.h -index bf6451b6d..8c92d0591 100644 +index bf6451b6db4..8c92d0591bb 100644 --- a/include/grub/osdep/hostfile_windows.h +++ b/include/grub/osdep/hostfile_windows.h @@ -41,6 +41,8 @@ typedef struct grub_util_fd_dir *grub_util_fd_dir_t; @@ -2662,9 +2432,239 @@ index bf6451b6d..8c92d0591 100644 int grub_util_unlink (const char *name); void +diff --git a/grub-core/gnulib/Makefile.am b/grub-core/gnulib/Makefile.am +index 3444397fe37..b7c5e60e1c3 100644 +--- a/grub-core/gnulib/Makefile.am ++++ b/grub-core/gnulib/Makefile.am +@@ -21,7 +21,7 @@ + # the same distribution terms as the rest of that program. + # + # Generated by gnulib-tool. +-# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=grub-core/gnulib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --no-conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files argp error fnmatch getdelim getline gettext progname regex ++# Reproduce by: gnulib-tool --import --dir=. --lib=libgnu --source-base=grub-core/gnulib --m4-base=m4 --doc-base=doc --tests-base=tests --aux-dir=build-aux --no-conditional-dependencies --no-libtool --macro-prefix=gl --no-vc-files argp error fnmatch getdelim getline gettext progname readlink regex + + AUTOMAKE_OPTIONS = 1.5 gnits subdir-objects + +@@ -326,6 +326,15 @@ libgnu_a_SOURCES += gettext.h + + ## end gnulib module gettext-h + ++## begin gnulib module gettimeofday ++ ++ ++EXTRA_DIST += gettimeofday.c ++ ++EXTRA_libgnu_a_SOURCES += gettimeofday.c ++ ++## end gnulib module gettimeofday ++ + ## begin gnulib module havelib + + +@@ -596,6 +605,13 @@ EXTRA_libgnu_a_SOURCES += nl_langinfo.c + + ## end gnulib module nl_langinfo + ++## begin gnulib module pathmax ++ ++ ++EXTRA_DIST += pathmax.h ++ ++## end gnulib module pathmax ++ + ## begin gnulib module progname + + libgnu_a_SOURCES += progname.h progname.c +@@ -611,6 +627,15 @@ EXTRA_libgnu_a_SOURCES += rawmemchr.c + + ## end gnulib module rawmemchr + ++## begin gnulib module readlink ++ ++ ++EXTRA_DIST += readlink.c ++ ++EXTRA_libgnu_a_SOURCES += readlink.c ++ ++## end gnulib module readlink ++ + ## begin gnulib module realloc-posix + + +@@ -725,6 +750,15 @@ EXTRA_DIST += $(top_srcdir)/build-aux/snippet/warn-on-use.h + + ## end gnulib module snippet/warn-on-use + ++## begin gnulib module stat ++ ++ ++EXTRA_DIST += stat.c ++ ++EXTRA_libgnu_a_SOURCES += stat.c ++ ++## end gnulib module stat ++ + ## begin gnulib module stdalign + + BUILT_SOURCES += $(STDALIGN_H) +@@ -1280,6 +1314,102 @@ libgnu_a_SOURCES += strnlen1.h strnlen1.c + + ## end gnulib module strnlen1 + ++## begin gnulib module sys_stat ++ ++BUILT_SOURCES += sys/stat.h ++ ++# We need the following in order to create when the system ++# has one that is incomplete. ++sys/stat.h: sys_stat.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) ++ $(AM_V_at)$(MKDIR_P) sys ++ $(AM_V_GEN)rm -f $@-t $@ && \ ++ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ++ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ ++ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ ++ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ ++ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ ++ -e 's|@''NEXT_SYS_STAT_H''@|$(NEXT_SYS_STAT_H)|g' \ ++ -e 's|@''WINDOWS_64_BIT_ST_SIZE''@|$(WINDOWS_64_BIT_ST_SIZE)|g' \ ++ -e 's/@''GNULIB_FCHMODAT''@/$(GNULIB_FCHMODAT)/g' \ ++ -e 's/@''GNULIB_FSTAT''@/$(GNULIB_FSTAT)/g' \ ++ -e 's/@''GNULIB_FSTATAT''@/$(GNULIB_FSTATAT)/g' \ ++ -e 's/@''GNULIB_FUTIMENS''@/$(GNULIB_FUTIMENS)/g' \ ++ -e 's/@''GNULIB_LCHMOD''@/$(GNULIB_LCHMOD)/g' \ ++ -e 's/@''GNULIB_LSTAT''@/$(GNULIB_LSTAT)/g' \ ++ -e 's/@''GNULIB_MKDIRAT''@/$(GNULIB_MKDIRAT)/g' \ ++ -e 's/@''GNULIB_MKFIFO''@/$(GNULIB_MKFIFO)/g' \ ++ -e 's/@''GNULIB_MKFIFOAT''@/$(GNULIB_MKFIFOAT)/g' \ ++ -e 's/@''GNULIB_MKNOD''@/$(GNULIB_MKNOD)/g' \ ++ -e 's/@''GNULIB_MKNODAT''@/$(GNULIB_MKNODAT)/g' \ ++ -e 's/@''GNULIB_STAT''@/$(GNULIB_STAT)/g' \ ++ -e 's/@''GNULIB_UTIMENSAT''@/$(GNULIB_UTIMENSAT)/g' \ ++ -e 's|@''HAVE_FCHMODAT''@|$(HAVE_FCHMODAT)|g' \ ++ -e 's|@''HAVE_FSTATAT''@|$(HAVE_FSTATAT)|g' \ ++ -e 's|@''HAVE_FUTIMENS''@|$(HAVE_FUTIMENS)|g' \ ++ -e 's|@''HAVE_LCHMOD''@|$(HAVE_LCHMOD)|g' \ ++ -e 's|@''HAVE_LSTAT''@|$(HAVE_LSTAT)|g' \ ++ -e 's|@''HAVE_MKDIRAT''@|$(HAVE_MKDIRAT)|g' \ ++ -e 's|@''HAVE_MKFIFO''@|$(HAVE_MKFIFO)|g' \ ++ -e 's|@''HAVE_MKFIFOAT''@|$(HAVE_MKFIFOAT)|g' \ ++ -e 's|@''HAVE_MKNOD''@|$(HAVE_MKNOD)|g' \ ++ -e 's|@''HAVE_MKNODAT''@|$(HAVE_MKNODAT)|g' \ ++ -e 's|@''HAVE_UTIMENSAT''@|$(HAVE_UTIMENSAT)|g' \ ++ -e 's|@''REPLACE_FSTAT''@|$(REPLACE_FSTAT)|g' \ ++ -e 's|@''REPLACE_FSTATAT''@|$(REPLACE_FSTATAT)|g' \ ++ -e 's|@''REPLACE_FUTIMENS''@|$(REPLACE_FUTIMENS)|g' \ ++ -e 's|@''REPLACE_LSTAT''@|$(REPLACE_LSTAT)|g' \ ++ -e 's|@''REPLACE_MKDIR''@|$(REPLACE_MKDIR)|g' \ ++ -e 's|@''REPLACE_MKFIFO''@|$(REPLACE_MKFIFO)|g' \ ++ -e 's|@''REPLACE_MKNOD''@|$(REPLACE_MKNOD)|g' \ ++ -e 's|@''REPLACE_STAT''@|$(REPLACE_STAT)|g' \ ++ -e 's|@''REPLACE_UTIMENSAT''@|$(REPLACE_UTIMENSAT)|g' \ ++ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ ++ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ ++ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ ++ < $(srcdir)/sys_stat.in.h; \ ++ } > $@-t && \ ++ mv $@-t $@ ++MOSTLYCLEANFILES += sys/stat.h sys/stat.h-t ++MOSTLYCLEANDIRS += sys ++ ++EXTRA_DIST += sys_stat.in.h ++ ++## end gnulib module sys_stat ++ ++## begin gnulib module sys_time ++ ++BUILT_SOURCES += sys/time.h ++ ++# We need the following in order to create when the system ++# doesn't have one that works with the given compiler. ++sys/time.h: sys_time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) ++ $(AM_V_at)$(MKDIR_P) sys ++ $(AM_V_GEN)rm -f $@-t $@ && \ ++ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */'; \ ++ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ ++ -e 's/@''HAVE_SYS_TIME_H''@/$(HAVE_SYS_TIME_H)/g' \ ++ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ ++ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ ++ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ ++ -e 's|@''NEXT_SYS_TIME_H''@|$(NEXT_SYS_TIME_H)|g' \ ++ -e 's/@''GNULIB_GETTIMEOFDAY''@/$(GNULIB_GETTIMEOFDAY)/g' \ ++ -e 's|@''HAVE_WINSOCK2_H''@|$(HAVE_WINSOCK2_H)|g' \ ++ -e 's/@''HAVE_GETTIMEOFDAY''@/$(HAVE_GETTIMEOFDAY)/g' \ ++ -e 's/@''HAVE_STRUCT_TIMEVAL''@/$(HAVE_STRUCT_TIMEVAL)/g' \ ++ -e 's/@''REPLACE_GETTIMEOFDAY''@/$(REPLACE_GETTIMEOFDAY)/g' \ ++ -e 's/@''REPLACE_STRUCT_TIMEVAL''@/$(REPLACE_STRUCT_TIMEVAL)/g' \ ++ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ ++ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ ++ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ ++ < $(srcdir)/sys_time.in.h; \ ++ } > $@-t && \ ++ mv $@-t $@ ++MOSTLYCLEANFILES += sys/time.h sys/time.h-t ++ ++EXTRA_DIST += sys_time.in.h ++ ++## end gnulib module sys_time ++ + ## begin gnulib module sys_types + + BUILT_SOURCES += sys/types.h +@@ -1334,6 +1464,51 @@ EXTRA_DIST += sysexits.in.h + + ## end gnulib module sysexits + ++## begin gnulib module time ++ ++BUILT_SOURCES += time.h ++ ++# We need the following in order to create when the system ++# doesn't have one that works with the given compiler. ++time.h: time.in.h $(top_builddir)/config.status $(CXXDEFS_H) $(ARG_NONNULL_H) $(WARN_ON_USE_H) ++ $(AM_V_GEN)rm -f $@-t $@ && \ ++ { echo '/* DO NOT EDIT! GENERATED AUTOMATICALLY! */' && \ ++ sed -e 's|@''GUARD_PREFIX''@|GL|g' \ ++ -e 's|@''INCLUDE_NEXT''@|$(INCLUDE_NEXT)|g' \ ++ -e 's|@''PRAGMA_SYSTEM_HEADER''@|@PRAGMA_SYSTEM_HEADER@|g' \ ++ -e 's|@''PRAGMA_COLUMNS''@|@PRAGMA_COLUMNS@|g' \ ++ -e 's|@''NEXT_TIME_H''@|$(NEXT_TIME_H)|g' \ ++ -e 's/@''GNULIB_GETTIMEOFDAY''@/$(GNULIB_GETTIMEOFDAY)/g' \ ++ -e 's/@''GNULIB_MKTIME''@/$(GNULIB_MKTIME)/g' \ ++ -e 's/@''GNULIB_NANOSLEEP''@/$(GNULIB_NANOSLEEP)/g' \ ++ -e 's/@''GNULIB_STRPTIME''@/$(GNULIB_STRPTIME)/g' \ ++ -e 's/@''GNULIB_TIMEGM''@/$(GNULIB_TIMEGM)/g' \ ++ -e 's/@''GNULIB_TIME_R''@/$(GNULIB_TIME_R)/g' \ ++ -e 's|@''HAVE_DECL_LOCALTIME_R''@|$(HAVE_DECL_LOCALTIME_R)|g' \ ++ -e 's|@''HAVE_NANOSLEEP''@|$(HAVE_NANOSLEEP)|g' \ ++ -e 's|@''HAVE_STRPTIME''@|$(HAVE_STRPTIME)|g' \ ++ -e 's|@''HAVE_TIMEGM''@|$(HAVE_TIMEGM)|g' \ ++ -e 's|@''REPLACE_GMTIME''@|$(REPLACE_GMTIME)|g' \ ++ -e 's|@''REPLACE_LOCALTIME''@|$(REPLACE_LOCALTIME)|g' \ ++ -e 's|@''REPLACE_LOCALTIME_R''@|$(REPLACE_LOCALTIME_R)|g' \ ++ -e 's|@''REPLACE_MKTIME''@|$(REPLACE_MKTIME)|g' \ ++ -e 's|@''REPLACE_NANOSLEEP''@|$(REPLACE_NANOSLEEP)|g' \ ++ -e 's|@''REPLACE_TIMEGM''@|$(REPLACE_TIMEGM)|g' \ ++ -e 's|@''PTHREAD_H_DEFINES_STRUCT_TIMESPEC''@|$(PTHREAD_H_DEFINES_STRUCT_TIMESPEC)|g' \ ++ -e 's|@''SYS_TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(SYS_TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \ ++ -e 's|@''TIME_H_DEFINES_STRUCT_TIMESPEC''@|$(TIME_H_DEFINES_STRUCT_TIMESPEC)|g' \ ++ -e '/definitions of _GL_FUNCDECL_RPL/r $(CXXDEFS_H)' \ ++ -e '/definition of _GL_ARG_NONNULL/r $(ARG_NONNULL_H)' \ ++ -e '/definition of _GL_WARN_ON_USE/r $(WARN_ON_USE_H)' \ ++ < $(srcdir)/time.in.h; \ ++ } > $@-t && \ ++ mv $@-t $@ ++MOSTLYCLEANFILES += time.h time.h-t ++ ++EXTRA_DIST += time.in.h ++ ++## end gnulib module time ++ + ## begin gnulib module unistd + + BUILT_SOURCES += unistd.h diff --git a/m4/gettimeofday.m4 b/m4/gettimeofday.m4 new file mode 100644 -index 000000000..1c2d66ee2 +index 00000000000..1c2d66ee261 --- /dev/null +++ b/m4/gettimeofday.m4 @@ -0,0 +1,138 @@ @@ -2807,7 +2807,7 @@ index 000000000..1c2d66ee2 + AC_CHECK_FUNCS([_ftime]) +]) diff --git a/m4/gnulib-cache.m4 b/m4/gnulib-cache.m4 -index 408918440..ef2ec5bcc 100644 +index 408918440b6..ef2ec5bcce0 100644 --- a/m4/gnulib-cache.m4 +++ b/m4/gnulib-cache.m4 @@ -27,7 +27,7 @@ @@ -2828,7 +2828,7 @@ index 408918440..ef2ec5bcc 100644 ]) gl_AVOID([]) diff --git a/m4/gnulib-comp.m4 b/m4/gnulib-comp.m4 -index 7a19f60d8..66fd0eda9 100644 +index 7a19f60d85e..66fd0eda901 100644 --- a/m4/gnulib-comp.m4 +++ b/m4/gnulib-comp.m4 @@ -60,10 +60,13 @@ AC_DEFUN([gl_EARLY], @@ -3035,7 +3035,7 @@ index 7a19f60d8..66fd0eda9 100644 m4/vasnprintf.m4 diff --git a/m4/largefile.m4 b/m4/largefile.m4 new file mode 100644 -index 000000000..a1b564ad9 +index 00000000000..a1b564ad9af --- /dev/null +++ b/m4/largefile.m4 @@ -0,0 +1,146 @@ @@ -3187,7 +3187,7 @@ index 000000000..a1b564ad9 +]) diff --git a/m4/pathmax.m4 b/m4/pathmax.m4 new file mode 100644 -index 000000000..114f91f04 +index 00000000000..114f91f04b5 --- /dev/null +++ b/m4/pathmax.m4 @@ -0,0 +1,42 @@ @@ -3235,7 +3235,7 @@ index 000000000..114f91f04 +]) diff --git a/m4/readlink.m4 b/m4/readlink.m4 new file mode 100644 -index 000000000..f9ce868c2 +index 00000000000..f9ce868c2e4 --- /dev/null +++ b/m4/readlink.m4 @@ -0,0 +1,71 @@ @@ -3312,7 +3312,7 @@ index 000000000..f9ce868c2 +]) diff --git a/m4/stat.m4 b/m4/stat.m4 new file mode 100644 -index 000000000..1ae327b36 +index 00000000000..1ae327b3684 --- /dev/null +++ b/m4/stat.m4 @@ -0,0 +1,71 @@ @@ -3389,7 +3389,7 @@ index 000000000..1ae327b36 +AC_DEFUN([gl_PREREQ_STAT], [:]) diff --git a/m4/sys_stat_h.m4 b/m4/sys_stat_h.m4 new file mode 100644 -index 000000000..eaa7642ba +index 00000000000..eaa7642ba31 --- /dev/null +++ b/m4/sys_stat_h.m4 @@ -0,0 +1,96 @@ @@ -3491,7 +3491,7 @@ index 000000000..eaa7642ba +]) diff --git a/m4/sys_time_h.m4 b/m4/sys_time_h.m4 new file mode 100644 -index 000000000..5c79300f8 +index 00000000000..5c79300f8ec --- /dev/null +++ b/m4/sys_time_h.m4 @@ -0,0 +1,110 @@ @@ -3607,7 +3607,7 @@ index 000000000..5c79300f8 +]) diff --git a/m4/time_h.m4 b/m4/time_h.m4 new file mode 100644 -index 000000000..9852778f9 +index 00000000000..9852778f9a5 --- /dev/null +++ b/m4/time_h.m4 @@ -0,0 +1,118 @@ @@ -3730,5 +3730,5 @@ index 000000000..9852778f9 + REPLACE_LOCALTIME=0; AC_SUBST([REPLACE_LOCALTIME]) +]) -- -2.14.3 +2.15.0 diff --git a/0120-Make-editenv-chase-symlinks-including-those-across-d.patch b/0120-Make-editenv-chase-symlinks-including-those-across-d.patch index a19f196a..faee07b9 100644 --- a/0120-Make-editenv-chase-symlinks-including-those-across-d.patch +++ b/0120-Make-editenv-chase-symlinks-including-those-across-d.patch @@ -1,7 +1,7 @@ From 5c54e71e4b4a3f8fbfedd5eca821238a7d80b491 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 3 Sep 2014 10:38:00 -0400 -Subject: [PATCH 120/198] Make editenv chase symlinks including those across +Subject: [PATCH 120/206] Make editenv chase symlinks including those across devices. This lets us make /boot/grub2/grubenv a symlink to @@ -17,7 +17,7 @@ Reviewed-by: Adam Jackson 2 files changed, 53 insertions(+), 2 deletions(-) diff --git a/Makefile.util.def b/Makefile.util.def -index 6d452da02..206110458 100644 +index 6d452da029f..20611045893 100644 --- a/Makefile.util.def +++ b/Makefile.util.def @@ -230,8 +230,17 @@ program = { @@ -39,7 +39,7 @@ index 6d452da02..206110458 100644 ldadd = libgrubgcry.a; ldadd = libgrubkern.a; diff --git a/util/editenv.c b/util/editenv.c -index c6f8d2298..d8d1dad6a 100644 +index c6f8d2298c3..d8d1dad6ab9 100644 --- a/util/editenv.c +++ b/util/editenv.c @@ -37,6 +37,7 @@ grub_util_create_envblk_file (const char *name) @@ -102,5 +102,5 @@ index c6f8d2298..d8d1dad6a 100644 + free (rename_target); } -- -2.14.3 +2.15.0 diff --git a/0121-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch b/0121-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch index e9a586b9..822a806f 100644 --- a/0121-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch +++ b/0121-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch @@ -1,7 +1,7 @@ From 7ca8e2b9e23a3588654d53a8e84bb22743896f80 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Sep 2014 14:23:23 -0400 -Subject: [PATCH 121/198] Generate OS and CLASS in 10_linux from +Subject: [PATCH 121/206] Generate OS and CLASS in 10_linux from /etc/os-release This makes us use pretty names in the titles we generate in @@ -15,7 +15,7 @@ Signed-off-by: Peter Jones 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index a9692a0c2..c6627268c 100644 +index a9692a0c2a2..c6627268cca 100644 --- a/util/grub.d/10_linux.in +++ b/util/grub.d/10_linux.in @@ -29,7 +29,8 @@ export TEXTDOMAINDIR="@localedir@" @@ -29,5 +29,5 @@ index a9692a0c2..c6627268c 100644 OS="${GRUB_DISTRIBUTOR}" CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr 'A-Z' 'a-z' | cut -d' ' -f1|LC_ALL=C sed 's,[^[:alnum:]_],_,g') ${CLASS}" -- -2.14.3 +2.15.0 diff --git a/0122-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch b/0122-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch index 71dc18c5..357ec723 100644 --- a/0122-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch +++ b/0122-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch @@ -1,7 +1,7 @@ From e84a66eb07c96db182d57f4d40ff7c607a0e5296 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Sep 2014 15:52:08 -0400 -Subject: [PATCH 122/198] Minimize the sort ordering for .debug and -rescue- +Subject: [PATCH 122/206] Minimize the sort ordering for .debug and -rescue- kernels. Resolves: rhbz#1065360 @@ -11,7 +11,7 @@ Signed-off-by: Peter Jones 1 file changed, 8 insertions(+) diff --git a/util/grub-mkconfig_lib.in b/util/grub-mkconfig_lib.in -index cf35e4174..10fabee5e 100644 +index cf35e417470..10fabee5e14 100644 --- a/util/grub-mkconfig_lib.in +++ b/util/grub-mkconfig_lib.in @@ -248,6 +248,14 @@ version_test_gt () @@ -30,5 +30,5 @@ index cf35e4174..10fabee5e 100644 version_test_numeric "$version_test_gt_a" "$version_test_gt_cmp" "$version_test_gt_b" return "$?" -- -2.14.3 +2.15.0 diff --git a/0123-Load-arm-with-SB-enabled.patch b/0123-Load-arm-with-SB-enabled.patch index f4dd7b6b..aac767b0 100644 --- a/0123-Load-arm-with-SB-enabled.patch +++ b/0123-Load-arm-with-SB-enabled.patch @@ -1,7 +1,7 @@ -From 87206b6fc4fcb9ac5fb5778ec7c9fbb4ef1841b7 Mon Sep 17 00:00:00 2001 +From b68b3292d6a5aa057a39b8098bcd1299a210921c Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 18 Sep 2014 11:26:14 -0400 -Subject: [PATCH 123/198] Load arm with SB enabled. +Subject: [PATCH 123/206] Load arm with SB enabled. Make sure we actually try to validate secure boot on this platform (even though we're not shipping it enabled by default.) @@ -11,17 +11,17 @@ kernel command line, because we can't call systab->bs->LoadImage() if SB is enabled. --- grub-core/Makefile.core.def | 3 + - grub-core/loader/arm64/linux.c | 116 ++++++++++++++++++++------------------ - grub-core/loader/efi/linux.c | 65 +++++++++++++++++++++ - grub-core/loader/i386/efi/linux.c | 39 +------------ + grub-core/loader/arm64/linux.c | 121 ++++++++++++++++++++------------------ + grub-core/loader/efi/linux.c | 65 ++++++++++++++++++++ + grub-core/loader/i386/efi/linux.c | 39 +----------- include/grub/arm64/linux.h | 7 +++ include/grub/efi/linux.h | 31 ++++++++++ - 6 files changed, 171 insertions(+), 90 deletions(-) + 6 files changed, 173 insertions(+), 93 deletions(-) create mode 100644 grub-core/loader/efi/linux.c create mode 100644 include/grub/efi/linux.h diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 7f3d5a2bf..5ae70204c 100644 +index 7f3d5a2bfe6..5ae70204cd2 100644 --- a/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def @@ -1709,6 +1709,8 @@ module = { @@ -42,7 +42,7 @@ index 7f3d5a2bf..5ae70204c 100644 enable = x86_64_efi; }; diff --git a/grub-core/loader/arm64/linux.c b/grub-core/loader/arm64/linux.c -index 746edd104..03ff83563 100644 +index 746edd10415..33345d37534 100644 --- a/grub-core/loader/arm64/linux.c +++ b/grub-core/loader/arm64/linux.c @@ -28,6 +28,7 @@ @@ -71,41 +71,20 @@ index 746edd104..03ff83563 100644 void *fdt; -@@ -100,6 +103,25 @@ finalize_params_linux (void) +@@ -100,79 +103,73 @@ finalize_params_linux (void) if (grub_fdt_install() != GRUB_ERR_NONE) goto failure; -+ grub_dprintf ("linux", "Installed/updated FDT configuration table @ %p\n", -+ fdt); -+ -+ /* Convert command line to UCS-2 */ -+ loaded_image = grub_efi_get_loaded_image (grub_efi_image_handle); -+ if (!loaded_image) -+ goto failure; -+ -+ loaded_image->load_options_size = len = -+ (grub_strlen (linux_args) + 1) * sizeof (grub_efi_char16_t); -+ loaded_image->load_options = -+ grub_efi_allocate_any_pages (GRUB_EFI_BYTES_TO_PAGES (loaded_image->load_options_size)); -+ if (!loaded_image->load_options) -+ return grub_error(GRUB_ERR_BAD_OS, "failed to create kernel parameters"); -+ -+ loaded_image->load_options_size = -+ 2 * grub_utf8_to_utf16 (loaded_image->load_options, len, -+ (grub_uint8_t *) linux_args, len, NULL); -+ - return GRUB_ERR_NONE; - - failure: -@@ -107,72 +129,47 @@ failure: - return grub_error(GRUB_ERR_BAD_OS, "failed to install/update FDT"); - } - +- return GRUB_ERR_NONE; +- +-failure: +- grub_fdt_unload(); +- return grub_error(GRUB_ERR_BAD_OS, "failed to install/update FDT"); +-} +- -grub_err_t -grub_arm64_uefi_boot_image (grub_addr_t addr, grub_size_t size, char *args) -+static void -+free_params (void) - { +-{ - grub_efi_memory_mapped_device_path_t *mempath; - grub_efi_handle_t image_handle; - grub_efi_boot_services_t *b; @@ -123,8 +102,7 @@ index 746edd104..03ff83563 100644 - mempath[0].memory_type = GRUB_EFI_LOADER_DATA; - mempath[0].start_address = addr; - mempath[0].end_address = addr + size; -+ grub_efi_loaded_image_t *loaded_image = NULL; - +- - mempath[1].header.type = GRUB_EFI_END_DEVICE_PATH_TYPE; - mempath[1].header.subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE; - mempath[1].header.length = sizeof (grub_efi_device_path_t); @@ -135,6 +113,50 @@ index 746edd104..03ff83563 100644 - (void *) addr, size, &image_handle); - if (status != GRUB_EFI_SUCCESS) - return grub_error (GRUB_ERR_BAD_OS, "cannot load image"); +- +- grub_dprintf ("linux", "linux command line: '%s'\n", args); ++ grub_dprintf ("linux", "Installed/updated FDT configuration table @ %p\n", ++ fdt); + + /* Convert command line to UCS-2 */ +- loaded_image = grub_efi_get_loaded_image (image_handle); ++ loaded_image = grub_efi_get_loaded_image (grub_efi_image_handle); ++ if (!loaded_image) ++ goto failure; ++ + loaded_image->load_options_size = len = +- (grub_strlen (args) + 1) * sizeof (grub_efi_char16_t); ++ (grub_strlen (linux_args) + 1) * sizeof (grub_efi_char16_t); + loaded_image->load_options = + grub_efi_allocate_any_pages (GRUB_EFI_BYTES_TO_PAGES (loaded_image->load_options_size)); + if (!loaded_image->load_options) +- return grub_errno; ++ return grub_error(GRUB_ERR_BAD_OS, "failed to create kernel parameters"); + + loaded_image->load_options_size = + 2 * grub_utf8_to_utf16 (loaded_image->load_options, len, +- (grub_uint8_t *) args, len, NULL); ++ (grub_uint8_t *) linux_args, len, NULL); + +- grub_dprintf ("linux", "starting image %p\n", image_handle); +- status = b->start_image (image_handle, 0, NULL); ++ return GRUB_ERR_NONE; + +- /* When successful, not reached */ +- b->unload_image (image_handle); +- grub_efi_free_pages ((grub_addr_t) loaded_image->load_options, +- GRUB_EFI_BYTES_TO_PAGES (loaded_image->load_options_size)); ++failure: ++ grub_fdt_unload(); ++ return grub_error(GRUB_ERR_BAD_OS, "failed to install/update FDT"); ++} + +- return grub_errno; ++static void ++free_params (void) ++{ ++ grub_efi_loaded_image_t *loaded_image = NULL; ++ + loaded_image = grub_efi_get_loaded_image (grub_efi_image_handle); + if (loaded_image) + { @@ -146,40 +168,21 @@ index 746edd104..03ff83563 100644 + loaded_image->load_options_size = 0; + } +} - -- grub_dprintf ("linux", "linux command line: '%s'\n", args); ++ +grub_err_t +grub_arm64_uefi_boot_image (grub_addr_t addr, grub_size_t size, char *args) +{ + grub_err_t retval; - -- /* Convert command line to UCS-2 */ -- loaded_image = grub_efi_get_loaded_image (image_handle); -- loaded_image->load_options_size = len = -- (grub_strlen (args) + 1) * sizeof (grub_efi_char16_t); -- loaded_image->load_options = -- grub_efi_allocate_any_pages (GRUB_EFI_BYTES_TO_PAGES (loaded_image->load_options_size)); -- if (!loaded_image->load_options) ++ + retval = finalize_params_linux (); + if (retval != GRUB_ERR_NONE) - return grub_errno; - -- loaded_image->load_options_size = -- 2 * grub_utf8_to_utf16 (loaded_image->load_options, len, -- (grub_uint8_t *) args, len, NULL); -- -- grub_dprintf ("linux", "starting image %p\n", image_handle); -- status = b->start_image (image_handle, 0, NULL); ++ return grub_errno; ++ + grub_dprintf ("linux", "linux command line: '%s'\n", args); - -- /* When successful, not reached */ -- b->unload_image (image_handle); -- grub_efi_free_pages ((grub_addr_t) loaded_image->load_options, -- GRUB_EFI_BYTES_TO_PAGES (loaded_image->load_options_size)); ++ + retval = grub_efi_linux_boot ((char *)kernel_addr, handover_offset, + kernel_addr); - -- return grub_errno; ++ + /* Never reached... */ + free_params(); + return retval; @@ -224,7 +227,7 @@ index 746edd104..03ff83563 100644 if (!linux_args) diff --git a/grub-core/loader/efi/linux.c b/grub-core/loader/efi/linux.c new file mode 100644 -index 000000000..aea378adf +index 00000000000..aea378adf5c --- /dev/null +++ b/grub-core/loader/efi/linux.c @@ -0,0 +1,65 @@ @@ -294,7 +297,7 @@ index 000000000..aea378adf + return GRUB_ERR_BUG; +} diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c -index b79e6320b..e5b778577 100644 +index b79e6320ba9..e5b778577f9 100644 --- a/grub-core/loader/i386/efi/linux.c +++ b/grub-core/loader/i386/efi/linux.c @@ -26,6 +26,7 @@ @@ -361,7 +364,7 @@ index b79e6320b..e5b778577 100644 static grub_err_t diff --git a/include/grub/arm64/linux.h b/include/grub/arm64/linux.h -index a981df5d1..0df384133 100644 +index a981df5d15f..0df38413338 100644 --- a/include/grub/arm64/linux.h +++ b/include/grub/arm64/linux.h @@ -20,6 +20,7 @@ @@ -386,7 +389,7 @@ index a981df5d1..0df384133 100644 #endif /* ! GRUB_LINUX_CPU_HEADER */ diff --git a/include/grub/efi/linux.h b/include/grub/efi/linux.h new file mode 100644 -index 000000000..d9ede3677 +index 00000000000..d9ede36773b --- /dev/null +++ b/include/grub/efi/linux.h @@ -0,0 +1,31 @@ @@ -422,5 +425,5 @@ index 000000000..d9ede3677 + +#endif /* ! GRUB_EFI_LINUX_HEADER */ -- -2.14.3 +2.15.0 diff --git a/0124-Try-prefix-if-fw_path-doesn-t-work.patch b/0124-Try-prefix-if-fw_path-doesn-t-work.patch index ce9979e3..4470f3c4 100644 --- a/0124-Try-prefix-if-fw_path-doesn-t-work.patch +++ b/0124-Try-prefix-if-fw_path-doesn-t-work.patch @@ -1,19 +1,19 @@ -From 2d50086f8689da717502383fc3f29678493a054b Mon Sep 17 00:00:00 2001 +From fb91332cc8f381b7dea94fbc3db4d9e92a7959c1 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 3 Oct 2014 11:08:03 -0400 -Subject: [PATCH 124/198] Try $prefix if $fw_path doesn't work. +Subject: [PATCH 124/206] Try $prefix if $fw_path doesn't work. Related: rhbz#1148652 Signed-off-by: Peter Jones --- - grub-core/kern/ieee1275/init.c | 30 ++++++----- + grub-core/kern/ieee1275/init.c | 28 +++++----- grub-core/net/net.c | 2 +- - grub-core/normal/main.c | 118 ++++++++++++++++++++--------------------- + grub-core/normal/main.c | 120 ++++++++++++++++++++--------------------- 3 files changed, 75 insertions(+), 75 deletions(-) diff --git a/grub-core/kern/ieee1275/init.c b/grub-core/kern/ieee1275/init.c -index e69c0133e..4dfa41a37 100644 +index e69c0133e69..4dfa41a37d5 100644 --- a/grub-core/kern/ieee1275/init.c +++ b/grub-core/kern/ieee1275/init.c @@ -138,23 +138,25 @@ grub_machine_get_bootlocation (char **device, char **path) @@ -35,11 +35,10 @@ index e69c0133e..4dfa41a37 100644 { - *lastslash = '\0'; - grub_translate_ieee1275_path (filename); -- ++ char *lastslash = grub_strrchr (filename, '\\'); + - *path = filename; - } -+ char *lastslash = grub_strrchr (filename, '\\'); -+ + /* Truncate at last directory. */ + if (lastslash) + { @@ -57,7 +56,7 @@ index e69c0133e..4dfa41a37 100644 } diff --git a/grub-core/net/net.c b/grub-core/net/net.c -index 0769bf850..16d2ce06d 100644 +index 0769bf850d3..16d2ce06d5a 100644 --- a/grub-core/net/net.c +++ b/grub-core/net/net.c @@ -1850,7 +1850,7 @@ grub_net_search_configfile (char *config) @@ -70,7 +69,7 @@ index 0769bf850..16d2ce06d 100644 static struct grub_preboot *fini_hnd; diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c -index 7d9c4f09b..b69f9e738 100644 +index 7d9c4f09b9b..b69f9e738fa 100644 --- a/grub-core/normal/main.c +++ b/grub-core/normal/main.c @@ -331,74 +331,72 @@ grub_enter_normal_mode (const char *config) @@ -131,10 +130,7 @@ index 7d9c4f09b..b69f9e738 100644 int argc, char *argv[]) { - if (argc == 0) -+ if (argc) -+ grub_enter_normal_mode (argv[0]); -+ else - { +- { - /* Guess the config filename. It is necessary to make CONFIG static, - so that it won't get broken by longjmp. */ - char *config; @@ -191,6 +187,12 @@ index 7d9c4f09b..b69f9e738 100644 - { - grub_enter_normal_mode (0); - } +- } +- else ++ if (argc) + grub_enter_normal_mode (argv[0]); ++ else ++ { + /* Guess the config filename. */ + grub_err_t err; + err = grub_try_normal ("fw_path"); @@ -198,14 +200,12 @@ index 7d9c4f09b..b69f9e738 100644 + err = grub_try_normal ("prefix"); + if (err == GRUB_ERR_FILE_NOT_FOUND) + grub_enter_normal_mode (0); - } -- else -- grub_enter_normal_mode (argv[0]); ++ } -quit: return 0; } -- -2.14.3 +2.15.0 diff --git a/0125-Update-info-with-grub.cfg-netboot-selection-order-11.patch b/0125-Update-info-with-grub.cfg-netboot-selection-order-11.patch index f4306456..630958ef 100644 --- a/0125-Update-info-with-grub.cfg-netboot-selection-order-11.patch +++ b/0125-Update-info-with-grub.cfg-netboot-selection-order-11.patch @@ -1,7 +1,7 @@ -From ce7e8db6a534b0b3653ec8a20bdd5550500706f4 Mon Sep 17 00:00:00 2001 +From ba1c8a307d0a3f2a606b3c3a6e1619504c47d3da Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Mon, 16 Mar 2015 16:34:51 -0400 -Subject: [PATCH 125/198] Update info with grub.cfg netboot selection order +Subject: [PATCH 125/206] Update info with grub.cfg netboot selection order (#1148650) Added documentation to the grub info page that specifies the order @@ -13,7 +13,7 @@ Resolves rhbz#1148650 1 file changed, 42 insertions(+) diff --git a/docs/grub.texi b/docs/grub.texi -index 6fdd2a041..15a90b26e 100644 +index 6fdd2a041f7..15a90b26e4d 100644 --- a/docs/grub.texi +++ b/docs/grub.texi @@ -2414,6 +2414,48 @@ grub-mknetdir --net-directory=/srv/tftp --subdir=/boot/grub -d /usr/lib/grub/i38 @@ -66,5 +66,5 @@ index 6fdd2a041..15a90b26e 100644 @samp{(tftp)} device. -- -2.14.3 +2.15.0 diff --git a/0126-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch b/0126-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch index 31bc5be7..3df7e2f6 100644 --- a/0126-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch +++ b/0126-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch @@ -1,7 +1,7 @@ -From 3bafdc90cd92f95c0dbc373ae9f408d5f6883ec3 Mon Sep 17 00:00:00 2001 +From 786e54febcc536a1b8a5fa2fbe0828eb3c66d792 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Mon, 16 Mar 2015 14:14:19 -0400 -Subject: [PATCH 126/198] Use Distribution Package Sort for grub2-mkconfig +Subject: [PATCH 126/206] Use Distribution Package Sort for grub2-mkconfig (#1124074) Users reported that newly installed kernels on their systems installed @@ -11,58 +11,18 @@ use the rpm-sort library to sort kernels instead. Resolves rhbz#1124074 --- - .gitignore | 2 + - Makefile.util.def | 16 +++ configure.ac | 29 +++++ + Makefile.util.def | 16 +++ + util/grub-rpm-sort.c | 281 ++++++++++++++++++++++++++++++++++++++++++++++ + .gitignore | 2 + util/grub-mkconfig_lib.in | 8 +- util/grub-rpm-sort.8 | 12 ++ - util/grub-rpm-sort.c | 281 ++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 347 insertions(+), 1 deletion(-) - create mode 100644 util/grub-rpm-sort.8 create mode 100644 util/grub-rpm-sort.c + create mode 100644 util/grub-rpm-sort.8 -diff --git a/.gitignore b/.gitignore -index d95fac578..1c8537129 100644 ---- a/.gitignore -+++ b/.gitignore -@@ -101,6 +101,8 @@ grub-*.tar.* - /grub*-reboot.8 - /grub*-render-label - /grub*-render-label.1 -+/grub*-rpm-sort -+/grub*-rpm-sort.8 - /grub*-script-check - /grub*-script-check.1 - /grub*-set-default -diff --git a/Makefile.util.def b/Makefile.util.def -index 206110458..d846b81b5 100644 ---- a/Makefile.util.def -+++ b/Makefile.util.def -@@ -684,6 +684,22 @@ program = { - ldadd = '$(LIBINTL) $(LIBDEVMAPPER) $(LIBUTIL) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)'; - }; - -+program = { -+ name = grub-rpm-sort; -+ mansection = 8; -+ installdir = sbin; -+ -+ common = grub-core/kern/emu/misc.c; -+ common = grub-core/kern/emu/argp_common.c; -+ common = grub-core/osdep/init.c; -+ common = util/misc.c; -+ common = util/grub-rpm-sort.c; -+ -+ ldadd = grub-core/gnulib/libgnu.a; -+ ldadd = libgrubkern.a; -+ ldadd = '$(LIBDEVMAPPER) $(LIBRPM)'; -+}; -+ - script = { - name = grub-mkconfig; - common = util/grub-mkconfig.in; diff --git a/configure.ac b/configure.ac -index 0cb971a92..49427cbf9 100644 +index 0cb971a92c5..49427cbf989 100644 --- a/configure.ac +++ b/configure.ac @@ -65,6 +65,7 @@ grub_TRANSFORM([grub-mkrelpath]) @@ -115,53 +75,36 @@ index 0cb971a92..49427cbf9 100644 LIBGEOM= if test x$host_kernel = xkfreebsd; then AC_CHECK_LIB([geom], [geom_gettree], [], -diff --git a/util/grub-mkconfig_lib.in b/util/grub-mkconfig_lib.in -index 10fabee5e..954844d2d 100644 ---- a/util/grub-mkconfig_lib.in -+++ b/util/grub-mkconfig_lib.in -@@ -213,6 +213,12 @@ version_sort () - esac - } +diff --git a/Makefile.util.def b/Makefile.util.def +index 20611045893..d846b81b5f9 100644 +--- a/Makefile.util.def ++++ b/Makefile.util.def +@@ -684,6 +684,22 @@ program = { + ldadd = '$(LIBINTL) $(LIBDEVMAPPER) $(LIBUTIL) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)'; + }; -+if [ "x$RPMLIB" = x ]; then -+ kernel_sort=version_sort -+else -+ kernel_sort="${sbindir}/grub-rpm-sort" -+fi ++program = { ++ name = grub-rpm-sort; ++ mansection = 8; ++ installdir = sbin; + - version_test_numeric () - { - version_test_numeric_a="$1" -@@ -229,7 +235,7 @@ version_test_numeric () - version_test_numeric_a="$version_test_numeric_b" - version_test_numeric_b="$version_test_numeric_c" - fi -- if (echo "$version_test_numeric_a" ; echo "$version_test_numeric_b") | version_sort | head -n 1 | grep -qx "$version_test_numeric_b" ; then -+ if (echo "$version_test_numeric_a" ; echo "$version_test_numeric_b") | "$kernel_sort" | head -n 1 | grep -qx "$version_test_numeric_b" ; then - return 0 - else - return 1 -diff --git a/util/grub-rpm-sort.8 b/util/grub-rpm-sort.8 -new file mode 100644 -index 000000000..8ce214884 ---- /dev/null -+++ b/util/grub-rpm-sort.8 -@@ -0,0 +1,12 @@ -+.TH GRUB-RPM-SORT 8 "Wed Feb 26 2014" -+.SH NAME -+\fBgrub-rpm-sort\fR \(em Sort input according to RPM version compare. ++ common = grub-core/kern/emu/misc.c; ++ common = grub-core/kern/emu/argp_common.c; ++ common = grub-core/osdep/init.c; ++ common = util/misc.c; ++ common = util/grub-rpm-sort.c; + -+.SH SYNOPSIS -+\fBgrub-rpm-sort\fR [OPTIONS]. ++ ldadd = grub-core/gnulib/libgnu.a; ++ ldadd = libgrubkern.a; ++ ldadd = '$(LIBDEVMAPPER) $(LIBRPM)'; ++}; + -+.SH DESCRIPTION -+You should not normally run this program directly. Use grub-mkconfig instead. -+ -+.SH SEE ALSO -+.BR "info grub" + script = { + name = grub-mkconfig; + common = util/grub-mkconfig.in; diff --git a/util/grub-rpm-sort.c b/util/grub-rpm-sort.c new file mode 100644 -index 000000000..f33bd1ed5 +index 00000000000..f33bd1ed568 --- /dev/null +++ b/util/grub-rpm-sort.c @@ -0,0 +1,281 @@ @@ -446,6 +389,63 @@ index 000000000..f33bd1ed5 + + return 0; +} +diff --git a/.gitignore b/.gitignore +index d95fac5789c..1c85371298c 100644 +--- a/.gitignore ++++ b/.gitignore +@@ -101,6 +101,8 @@ grub-*.tar.* + /grub*-reboot.8 + /grub*-render-label + /grub*-render-label.1 ++/grub*-rpm-sort ++/grub*-rpm-sort.8 + /grub*-script-check + /grub*-script-check.1 + /grub*-set-default +diff --git a/util/grub-mkconfig_lib.in b/util/grub-mkconfig_lib.in +index 10fabee5e14..954844d2d95 100644 +--- a/util/grub-mkconfig_lib.in ++++ b/util/grub-mkconfig_lib.in +@@ -213,6 +213,12 @@ version_sort () + esac + } + ++if [ "x$RPMLIB" = x ]; then ++ kernel_sort=version_sort ++else ++ kernel_sort="${sbindir}/grub-rpm-sort" ++fi ++ + version_test_numeric () + { + version_test_numeric_a="$1" +@@ -229,7 +235,7 @@ version_test_numeric () + version_test_numeric_a="$version_test_numeric_b" + version_test_numeric_b="$version_test_numeric_c" + fi +- if (echo "$version_test_numeric_a" ; echo "$version_test_numeric_b") | version_sort | head -n 1 | grep -qx "$version_test_numeric_b" ; then ++ if (echo "$version_test_numeric_a" ; echo "$version_test_numeric_b") | "$kernel_sort" | head -n 1 | grep -qx "$version_test_numeric_b" ; then + return 0 + else + return 1 +diff --git a/util/grub-rpm-sort.8 b/util/grub-rpm-sort.8 +new file mode 100644 +index 00000000000..8ce21488448 +--- /dev/null ++++ b/util/grub-rpm-sort.8 +@@ -0,0 +1,12 @@ ++.TH GRUB-RPM-SORT 8 "Wed Feb 26 2014" ++.SH NAME ++\fBgrub-rpm-sort\fR \(em Sort input according to RPM version compare. ++ ++.SH SYNOPSIS ++\fBgrub-rpm-sort\fR [OPTIONS]. ++ ++.SH DESCRIPTION ++You should not normally run this program directly. Use grub-mkconfig instead. ++ ++.SH SEE ALSO ++.BR "info grub" -- -2.14.3 +2.15.0 diff --git a/0127-Handle-rssd-storage-devices.patch b/0127-Handle-rssd-storage-devices.patch index 0993e71a..db8b6b17 100644 --- a/0127-Handle-rssd-storage-devices.patch +++ b/0127-Handle-rssd-storage-devices.patch @@ -1,7 +1,7 @@ -From 8f42cdcaaffec149276d2a5a3faa2540432edc4c Mon Sep 17 00:00:00 2001 +From 1099d0d8767fa9487c5a18667b2142ab9248f882 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 30 Jun 2015 15:50:41 -0400 -Subject: [PATCH 127/198] Handle rssd storage devices. +Subject: [PATCH 127/206] Handle rssd storage devices. Resolves: rhbz#1087962 @@ -11,7 +11,7 @@ Signed-off-by: Peter Jones 1 file changed, 13 insertions(+) diff --git a/grub-core/osdep/linux/getroot.c b/grub-core/osdep/linux/getroot.c -index 90d92d3ad..6d9f4e5fa 100644 +index 90d92d3ad5c..6d9f4e5faa2 100644 --- a/grub-core/osdep/linux/getroot.c +++ b/grub-core/osdep/linux/getroot.c @@ -921,6 +921,19 @@ grub_util_part_to_disk (const char *os_dev, struct stat *st, @@ -35,5 +35,5 @@ index 90d92d3ad..6d9f4e5fa 100644 if ((strncmp ("loop", p, 4) == 0) && p[4] >= '0' && p[4] <= '9') { -- -2.14.3 +2.15.0 diff --git a/0128-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch b/0128-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch index f8286f86..52929fe6 100644 --- a/0128-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch +++ b/0128-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch @@ -1,7 +1,7 @@ -From 1daf969815f1487e02a78725e592b4d973641a4f Mon Sep 17 00:00:00 2001 +From 3602fba26df0d9fc04bae72d26d866ec9d1e24a6 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 27 Oct 2014 09:22:55 -0400 -Subject: [PATCH 128/198] Try to emit linux16/initrd16 and linuxefi/initrdefi +Subject: [PATCH 128/206] Try to emit linux16/initrd16 and linuxefi/initrdefi in 30-os_prober. Resolves: rhbz#1108296 @@ -12,7 +12,7 @@ Signed-off-by: Peter Jones 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/util/grub.d/30_os-prober.in b/util/grub.d/30_os-prober.in -index 9b8f5968e..dc98eace9 100644 +index 9b8f5968e2d..dc98eace934 100644 --- a/util/grub.d/30_os-prober.in +++ b/util/grub.d/30_os-prober.in @@ -141,6 +141,28 @@ for OS in ${OSPROBED} ; do @@ -73,5 +73,5 @@ index 9b8f5968e..dc98eace9 100644 fi cat << EOF -- -2.14.3 +2.15.0 diff --git a/0129-Make-grub2-mkconfig-construct-titles-that-look-like-.patch b/0129-Make-grub2-mkconfig-construct-titles-that-look-like-.patch index 93fe76e1..3005603d 100644 --- a/0129-Make-grub2-mkconfig-construct-titles-that-look-like-.patch +++ b/0129-Make-grub2-mkconfig-construct-titles-that-look-like-.patch @@ -1,7 +1,7 @@ -From 114b6f132798b8819e899e3dc7988519dedc07e2 Mon Sep 17 00:00:00 2001 +From 1f85eacec7da97aa6dd6344d382d947631c991f9 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 28 Apr 2015 11:15:03 -0400 -Subject: [PATCH 129/198] Make grub2-mkconfig construct titles that look like +Subject: [PATCH 129/206] Make grub2-mkconfig construct titles that look like the ones we want elsewhere. Resolves: rhbz#1215839 @@ -12,7 +12,7 @@ Signed-off-by: Peter Jones 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index c6627268c..121524185 100644 +index c6627268cca..1215241859b 100644 --- a/util/grub.d/10_linux.in +++ b/util/grub.d/10_linux.in @@ -68,6 +68,15 @@ case x"$GRUB_FS" in @@ -50,5 +50,5 @@ index c6627268c..121524185 100644 echo "menuentry '$(echo "$title" | grub_quote)' ${CLASS} \$menuentry_id_option 'gnulinux-$version-$type-$boot_device_id' {" | sed "s/^/$submenu_indentation/" else -- -2.14.3 +2.15.0 diff --git a/0130-Add-friendly-grub2-password-config-tool-985962.patch b/0130-Add-friendly-grub2-password-config-tool-985962.patch index 104346f8..f3f1045d 100644 --- a/0130-Add-friendly-grub2-password-config-tool-985962.patch +++ b/0130-Add-friendly-grub2-password-config-tool-985962.patch @@ -1,7 +1,7 @@ -From b970cde9a609dce14c52145aaa61b87299f55086 Mon Sep 17 00:00:00 2001 +From 9cc251c72ee63c82565c917fa32301c593e6f099 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Thu, 25 Jun 2015 11:13:11 -0400 -Subject: [PATCH 130/198] Add friendly grub2 password config tool (#985962) +Subject: [PATCH 130/206] Add friendly grub2 password config tool (#985962) Provided a tool for users to reset the grub2 root user password without having to alter the grub.cfg. The hashed password now @@ -9,9 +9,9 @@ lives in a root-only-readable configuration file. Resolves: rhbz#985962 --- - .gitignore | 2 + - Makefile.util.def | 13 +++++ configure.ac | 1 + + Makefile.util.def | 13 +++++ + .gitignore | 2 + util/grub-mkconfig.in | 2 + util/grub-setpassword.8 | 28 +++++++++++ util/grub-setpassword.in | 123 +++++++++++++++++++++++++++++++++++++++++++++++ @@ -21,21 +21,20 @@ Resolves: rhbz#985962 create mode 100644 util/grub-setpassword.in create mode 100644 util/grub.d/01_users.in -diff --git a/.gitignore b/.gitignore -index 1c8537129..387e3554c 100644 ---- a/.gitignore -+++ b/.gitignore -@@ -107,6 +107,8 @@ grub-*.tar.* - /grub*-script-check.1 - /grub*-set-default - /grub*-set-default.8 -+/grub*-setsetpassword -+/grub*-setsetpassword.8 - /grub*-shell - /grub*-shell-tester - /grub*-sparc64-setup +diff --git a/configure.ac b/configure.ac +index 49427cbf989..1960840048f 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -65,6 +65,7 @@ grub_TRANSFORM([grub-mkrelpath]) + grub_TRANSFORM([grub-mkrescue]) + grub_TRANSFORM([grub-probe]) + grub_TRANSFORM([grub-reboot]) ++grub_TRANSFORM([grub-setpassword]) + grub_TRANSFORM([grub-rpm-sort]) + grub_TRANSFORM([grub-script-check]) + grub_TRANSFORM([grub-set-default]) diff --git a/Makefile.util.def b/Makefile.util.def -index d846b81b5..226c46b2d 100644 +index d846b81b5f9..226c46b2d79 100644 --- a/Makefile.util.def +++ b/Makefile.util.def @@ -439,6 +439,12 @@ script = { @@ -65,20 +64,21 @@ index d846b81b5..226c46b2d 100644 script = { name = grub-mkconfig_lib; common = util/grub-mkconfig_lib.in; -diff --git a/configure.ac b/configure.ac -index 49427cbf9..196084004 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -65,6 +65,7 @@ grub_TRANSFORM([grub-mkrelpath]) - grub_TRANSFORM([grub-mkrescue]) - grub_TRANSFORM([grub-probe]) - grub_TRANSFORM([grub-reboot]) -+grub_TRANSFORM([grub-setpassword]) - grub_TRANSFORM([grub-rpm-sort]) - grub_TRANSFORM([grub-script-check]) - grub_TRANSFORM([grub-set-default]) +diff --git a/.gitignore b/.gitignore +index 1c85371298c..387e3554cd5 100644 +--- a/.gitignore ++++ b/.gitignore +@@ -107,6 +107,8 @@ grub-*.tar.* + /grub*-script-check.1 + /grub*-set-default + /grub*-set-default.8 ++/grub*-setsetpassword ++/grub*-setsetpassword.8 + /grub*-shell + /grub*-shell-tester + /grub*-sparc64-setup diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in -index 9d595ac05..fb8724708 100644 +index 9d595ac058a..fb8724708b5 100644 --- a/util/grub-mkconfig.in +++ b/util/grub-mkconfig.in @@ -263,6 +263,8 @@ for i in "${grub_mkconfig_dir}"/* ; do @@ -92,7 +92,7 @@ index 9d595ac05..fb8724708 100644 echo diff --git a/util/grub-setpassword.8 b/util/grub-setpassword.8 new file mode 100644 -index 000000000..49200a848 +index 00000000000..49200a848b7 --- /dev/null +++ b/util/grub-setpassword.8 @@ -0,0 +1,28 @@ @@ -126,7 +126,7 @@ index 000000000..49200a848 +.BR "info grub2-mkpasswd-pbkdf2" diff --git a/util/grub-setpassword.in b/util/grub-setpassword.in new file mode 100644 -index 000000000..dd76f00fc +index 00000000000..dd76f00fc0e --- /dev/null +++ b/util/grub-setpassword.in @@ -0,0 +1,123 @@ @@ -255,7 +255,7 @@ index 000000000..dd76f00fc +echo "GRUB2_PASSWORD=${MYPASS}" > "${grubdir}/user.cfg" diff --git a/util/grub.d/01_users.in b/util/grub.d/01_users.in new file mode 100644 -index 000000000..db2f44bfb +index 00000000000..db2f44bfb78 --- /dev/null +++ b/util/grub.d/01_users.in @@ -0,0 +1,11 @@ @@ -271,5 +271,5 @@ index 000000000..db2f44bfb +fi +EOF -- -2.14.3 +2.15.0 diff --git a/0131-Make-grub2-mkconfig-construct-titles-that-look-like-.patch b/0131-Make-grub2-mkconfig-construct-titles-that-look-like-.patch index 48d26f47..2abdc4b6 100644 --- a/0131-Make-grub2-mkconfig-construct-titles-that-look-like-.patch +++ b/0131-Make-grub2-mkconfig-construct-titles-that-look-like-.patch @@ -1,18 +1,18 @@ -From 28c26e2c86d4b1218004d9e73ba3350704548e32 Mon Sep 17 00:00:00 2001 +From 039291e02021dc5c48a32a2c971475fbc6ac3fda Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 28 Apr 2015 11:15:03 -0400 -Subject: [PATCH 131/198] Make grub2-mkconfig construct titles that look like +Subject: [PATCH 131/206] Make grub2-mkconfig construct titles that look like the ones we want elsewhere. Resolves: rhbz#1215839 Signed-off-by: Peter Jones --- - util/grub.d/10_linux.in | 34 +++++++++++++++++++++++----------- - 1 file changed, 23 insertions(+), 11 deletions(-) + util/grub.d/10_linux.in | 32 ++++++++++++++++++++++---------- + 1 file changed, 22 insertions(+), 10 deletions(-) diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index 121524185..584ad1f46 100644 +index 1215241859b..584ad1f4639 100644 --- a/util/grub.d/10_linux.in +++ b/util/grub.d/10_linux.in @@ -70,11 +70,28 @@ esac @@ -21,14 +21,13 @@ index 121524185..584ad1f46 100644 { - local OS_NAME="$(eval $(grep ^NAME= /etc/os-release) ; echo ${NAME})" - local OS_VERS="$(eval $(grep ^VERSION= /etc/os-release) ; echo ${VERSION})" -- -- local titlestr="${OS_NAME} (%s) ${OS_VERS}" -- echo -n ${titlestr} + local title_type + local version + local OS_NAME + local OS_VERS -+ + +- local titlestr="${OS_NAME} (%s) ${OS_VERS}" +- echo -n ${titlestr} + title_type=$1 && shift + version=$1 && shift + @@ -64,5 +63,5 @@ index 121524185..584ad1f46 100644 replacement_title="$(echo "Advanced options for ${OS}" | sed 's,>,>>,g')>$(echo "$title" | sed 's,>,>>,g')" quoted="$(echo "$GRUB_ACTUAL_DEFAULT" | grub_quote)" -- -2.14.3 +2.15.0 diff --git a/0132-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch b/0132-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch index 295896eb..4d26f996 100644 --- a/0132-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch +++ b/0132-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch @@ -1,7 +1,7 @@ -From 000e91150ac5831e54e0cd1176c113f5358a7876 Mon Sep 17 00:00:00 2001 +From edefa278bdaefe29877307ab40cc8c8497e5794c Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 3 Aug 2015 11:46:42 -0400 -Subject: [PATCH 132/198] Try to make sure configure.ac and grub-rpm-sort play +Subject: [PATCH 132/206] Try to make sure configure.ac and grub-rpm-sort play nice. Apparently the test for whether to use grub-rpm-sort and also the @@ -16,7 +16,7 @@ Signed-off-by: Peter Jones 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/configure.ac b/configure.ac -index 196084004..3c4b9a19b 100644 +index 1960840048f..3c4b9a19b10 100644 --- a/configure.ac +++ b/configure.ac @@ -1795,7 +1795,7 @@ AC_SUBST([LIBDEVMAPPER]) @@ -29,7 +29,7 @@ index 196084004..3c4b9a19b 100644 fi diff --git a/util/grub-mkconfig_lib.in b/util/grub-mkconfig_lib.in -index 954844d2d..9c410eae4 100644 +index 954844d2d95..9c410eae493 100644 --- a/util/grub-mkconfig_lib.in +++ b/util/grub-mkconfig_lib.in @@ -33,6 +33,9 @@ fi @@ -47,15 +47,15 @@ index 954844d2d..9c410eae4 100644 } -if [ "x$RPMLIB" = x ]; then -- kernel_sort=version_sort +if [ "x$grub_rpm_sort" != x -a -x "$grub_rpm_sort" ]; then + kernel_sort="$grub_rpm_sort" - else ++else + kernel_sort=version_sort +-else - kernel_sort="${sbindir}/grub-rpm-sort" -+ kernel_sort=version_sort fi version_test_numeric () -- -2.14.3 +2.15.0 diff --git a/0133-tcp-add-window-scaling-support.patch b/0133-tcp-add-window-scaling-support.patch index 237a1a89..ce68b836 100644 --- a/0133-tcp-add-window-scaling-support.patch +++ b/0133-tcp-add-window-scaling-support.patch @@ -1,7 +1,7 @@ -From e6aef714ded4e1b93464368eae39f7354e0053e6 Mon Sep 17 00:00:00 2001 +From 414415beb12da752ac9458635d0ec8f34a7ee2fb Mon Sep 17 00:00:00 2001 From: Josef Bacik Date: Wed, 12 Aug 2015 08:57:55 -0700 -Subject: [PATCH 133/198] tcp: add window scaling support +Subject: [PATCH 133/206] tcp: add window scaling support Sometimes we have to provision boxes across regions, such as California to Sweden. The http server has a 10 minute timeout, so if we can't get our 250mb @@ -17,7 +17,7 @@ Signed-off-by: Josef Bacik 1 file changed, 29 insertions(+), 13 deletions(-) diff --git a/grub-core/net/tcp.c b/grub-core/net/tcp.c -index e8ad34b84..7d4b82262 100644 +index e8ad34b84d4..7d4b822626d 100644 --- a/grub-core/net/tcp.c +++ b/grub-core/net/tcp.c @@ -106,6 +106,18 @@ struct tcphdr @@ -86,5 +86,5 @@ index e8ad34b84..7d4b82262 100644 tcp_socket_register (socket); -- -2.14.3 +2.15.0 diff --git a/0134-efinet-retransmit-if-our-device-is-busy.patch b/0134-efinet-retransmit-if-our-device-is-busy.patch index 69038804..e4a97685 100644 --- a/0134-efinet-retransmit-if-our-device-is-busy.patch +++ b/0134-efinet-retransmit-if-our-device-is-busy.patch @@ -1,7 +1,7 @@ -From 44d4ff84eddb7cc679b8bfa6799824df6d43d413 Mon Sep 17 00:00:00 2001 +From f0d62522c10f25e2e9fc9bcd51bc0dbf14b6d9c7 Mon Sep 17 00:00:00 2001 From: Josef Bacik Date: Mon, 31 Aug 2015 13:34:35 -0400 -Subject: [PATCH 134/198] efinet: retransmit if our device is busy +Subject: [PATCH 134/206] efinet: retransmit if our device is busy When I fixed the txbuf handling I ripped out the retransmission code since it was flooding our network when we had the buggy behavior. Turns out this was too @@ -16,7 +16,7 @@ Signed-off-by: Josef Bacik 1 file changed, 10 insertions(+) diff --git a/grub-core/net/drivers/efi/efinet.c b/grub-core/net/drivers/efi/efinet.c -index 5388f952b..3f112438a 100644 +index 5388f952ba9..3f112438a93 100644 --- a/grub-core/net/drivers/efi/efinet.c +++ b/grub-core/net/drivers/efi/efinet.c @@ -38,6 +38,7 @@ send_card_buffer (struct grub_net_card *dev, @@ -44,5 +44,5 @@ index 5388f952b..3f112438a 100644 return grub_error (GRUB_ERR_TIMEOUT, N_("couldn't send network packet")); -- -2.14.3 +2.15.0 diff --git a/0135-Be-more-aggro-about-actually-using-the-configured-ne.patch b/0135-Be-more-aggro-about-actually-using-the-configured-ne.patch index 320cea5f..f4469181 100644 --- a/0135-Be-more-aggro-about-actually-using-the-configured-ne.patch +++ b/0135-Be-more-aggro-about-actually-using-the-configured-ne.patch @@ -1,7 +1,7 @@ -From 457789395b36baa8348b4594f9dc9fc2e8c5ef6c Mon Sep 17 00:00:00 2001 +From 8448d685b7748afe147be063cbd5fe0beb8bfec5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 11 Sep 2015 17:30:49 -0400 -Subject: [PATCH 135/198] Be more aggro about actually using the *configured* +Subject: [PATCH 135/206] Be more aggro about actually using the *configured* network device. Right now we use any SNP device with the same mac+IP block, but when @@ -18,7 +18,7 @@ Signed-off-by: Peter Jones 2 files changed, 102 insertions(+), 26 deletions(-) diff --git a/grub-core/net/drivers/efi/efinet.c b/grub-core/net/drivers/efi/efinet.c -index 3f112438a..a3ce4c67c 100644 +index 3f112438a93..a3ce4c67cce 100644 --- a/grub-core/net/drivers/efi/efinet.c +++ b/grub-core/net/drivers/efi/efinet.c @@ -239,46 +239,85 @@ grub_efinet_get_device_handle (struct grub_net_card *card) @@ -39,7 +39,8 @@ index 3f112438a..a3ce4c67c 100644 - int i = 0; + grub_efi_device_path_t *pdp = NULL, *pp = NULL, *pc = NULL; + int ret = 0; -+ + +- /* Find handles which support the disk io interface. */ + if (preferred) + { + grub_efi_device_path_t *pdpc; @@ -49,8 +50,7 @@ index 3f112438a..a3ce4c67c 100644 + grub_print_error (); + return -1; + } - -- /* Find handles which support the disk io interface. */ ++ + for (; ! GRUB_EFI_END_ENTIRE_DEVICE_PATH (pdpc); + pdpc = GRUB_EFI_NEXT_DEVICE_PATH (pdpc)) + { @@ -205,7 +205,7 @@ index 3f112438a..a3ce4c67c 100644 if (! cdp) continue; diff --git a/include/grub/efi/api.h b/include/grub/efi/api.h -index c7c9f0e1d..97b9aa7a4 100644 +index c7c9f0e1db1..97b9aa7a4d7 100644 --- a/include/grub/efi/api.h +++ b/include/grub/efi/api.h @@ -622,6 +622,10 @@ typedef struct grub_efi_device_path grub_efi_device_path_t; @@ -220,5 +220,5 @@ index c7c9f0e1d..97b9aa7a4 100644 #define GRUB_EFI_DEVICE_PATH_SUBTYPE(dp) ((dp)->subtype) #define GRUB_EFI_DEVICE_PATH_LENGTH(dp) ((dp)->length) -- -2.14.3 +2.15.0 diff --git a/0136-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch b/0136-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch index 00651e62..55bf64fe 100644 --- a/0136-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch +++ b/0136-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch @@ -1,7 +1,7 @@ -From cc02f809a13a9efa0f3c6295f7dd0ea29cc030b9 Mon Sep 17 00:00:00 2001 +From c760d9ce51010c408c9cca513c5f307e9f94912a Mon Sep 17 00:00:00 2001 From: RHEL Ninjas Date: Fri, 25 Sep 2015 16:24:23 +0900 -Subject: [PATCH 136/198] efinet: add filter for the first exclusive reopen of +Subject: [PATCH 136/206] efinet: add filter for the first exclusive reopen of SNP --- @@ -9,7 +9,7 @@ Subject: [PATCH 136/198] efinet: add filter for the first exclusive reopen of 1 file changed, 39 insertions(+) diff --git a/grub-core/net/drivers/efi/efinet.c b/grub-core/net/drivers/efi/efinet.c -index a3ce4c67c..b870d3f19 100644 +index a3ce4c67cce..b870d3f1938 100644 --- a/grub-core/net/drivers/efi/efinet.c +++ b/grub-core/net/drivers/efi/efinet.c @@ -465,6 +465,45 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, @@ -59,5 +59,5 @@ index a3ce4c67c..b870d3f19 100644 } } -- -2.14.3 +2.15.0 diff --git a/0137-Fix-security-issue-when-reading-username-and-passwor.patch b/0137-Fix-security-issue-when-reading-username-and-passwor.patch index 585fd2dd..d7df5488 100644 --- a/0137-Fix-security-issue-when-reading-username-and-passwor.patch +++ b/0137-Fix-security-issue-when-reading-username-and-passwor.patch @@ -1,7 +1,7 @@ -From 1f03d841b2872f5118fc7cbde39f0f19021d16ae Mon Sep 17 00:00:00 2001 +From 4ebcd25c8f7860c83a99cc420f63611437acf9f1 Mon Sep 17 00:00:00 2001 From: Hector Marco-Gisbert Date: Fri, 13 Nov 2015 16:21:09 +0100 -Subject: [PATCH 137/198] Fix security issue when reading username and password +Subject: [PATCH 137/206] Fix security issue when reading username and password This patch fixes two integer underflows at: * grub-core/lib/crypto.c @@ -17,7 +17,7 @@ Signed-off-by: Ismael Ripoll-Ripoll 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/grub-core/lib/crypto.c b/grub-core/lib/crypto.c -index ca334d5a4..e6c78d16d 100644 +index ca334d5a40e..e6c78d16d39 100644 --- a/grub-core/lib/crypto.c +++ b/grub-core/lib/crypto.c @@ -468,7 +468,7 @@ grub_password_get (char buf[], unsigned buf_size) @@ -30,7 +30,7 @@ index ca334d5a4..e6c78d16d 100644 if (cur_len) cur_len--; diff --git a/grub-core/normal/auth.c b/grub-core/normal/auth.c -index 6be678c0d..c35ce9724 100644 +index 6be678c0de1..c35ce972473 100644 --- a/grub-core/normal/auth.c +++ b/grub-core/normal/auth.c @@ -172,7 +172,7 @@ grub_username_get (char buf[], unsigned buf_size) @@ -43,5 +43,5 @@ index 6be678c0d..c35ce9724 100644 if (cur_len) { -- -2.14.3 +2.15.0 diff --git a/0138-Warn-if-grub-password-will-not-be-read-1290803.patch b/0138-Warn-if-grub-password-will-not-be-read-1290803.patch index 21e62b45..11f47971 100644 --- a/0138-Warn-if-grub-password-will-not-be-read-1290803.patch +++ b/0138-Warn-if-grub-password-will-not-be-read-1290803.patch @@ -1,7 +1,7 @@ -From d2367e799a35076aa94b940ee04c88df616f9278 Mon Sep 17 00:00:00 2001 +From 591aa70d3437b3db7fe56975fe1b54b9431a21cd Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Mon, 22 Feb 2016 15:30:05 -0500 -Subject: [PATCH 138/198] Warn if grub password will not be read (#1290803) +Subject: [PATCH 138/206] Warn if grub password will not be read (#1290803) It is possible for a system to have never run grub-mkconfig and add the section that reads the user.cfg file which contains a user set GRUB @@ -14,7 +14,7 @@ Resolves: rhbz#1290803 1 file changed, 5 insertions(+) diff --git a/util/grub-setpassword.in b/util/grub-setpassword.in -index dd76f00fc..fb9d3a3b6 100644 +index dd76f00fc0e..fb9d3a3b6f9 100644 --- a/util/grub-setpassword.in +++ b/util/grub-setpassword.in @@ -121,3 +121,8 @@ fi @@ -27,5 +27,5 @@ index dd76f00fc..fb9d3a3b6 100644 + echo "Update your configuration with @grub_mkconfig@ to support this feature." +fi -- -2.14.3 +2.15.0 diff --git a/0139-Clean-up-grub-setpassword-documentation-1290799.patch b/0139-Clean-up-grub-setpassword-documentation-1290799.patch index 71b73caa..234b9773 100644 --- a/0139-Clean-up-grub-setpassword-documentation-1290799.patch +++ b/0139-Clean-up-grub-setpassword-documentation-1290799.patch @@ -1,7 +1,7 @@ -From 2166377a018bc26bc565fecf76d31057a3533603 Mon Sep 17 00:00:00 2001 +From 44db37cb0cf9d8156717bea09407d28d85517f7e Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Tue, 26 Jan 2016 10:28:35 -0500 -Subject: [PATCH 139/198] Clean up grub-setpassword documentation (#1290799) +Subject: [PATCH 139/206] Clean up grub-setpassword documentation (#1290799) The output for --help had some errors. Corrected those and polished the text to be a little easier to follow. Carried verbage over to man page @@ -14,7 +14,7 @@ Resolves: rhbz#1290799 2 files changed, 8 insertions(+), 9 deletions(-) diff --git a/util/grub-setpassword.8 b/util/grub-setpassword.8 -index 49200a848..dc91dd669 100644 +index 49200a848b7..dc91dd6697b 100644 --- a/util/grub-setpassword.8 +++ b/util/grub-setpassword.8 @@ -19,7 +19,7 @@ Display program usage and exit. @@ -27,7 +27,7 @@ index 49200a848..dc91dd669 100644 .SH SEE ALSO diff --git a/util/grub-setpassword.in b/util/grub-setpassword.in -index fb9d3a3b6..c8c0fa419 100644 +index fb9d3a3b6f9..c8c0fa4199d 100644 --- a/util/grub-setpassword.in +++ b/util/grub-setpassword.in @@ -16,15 +16,14 @@ grub_mkpasswd="${bindir}/@grub_mkpasswd_pbkdf2@" @@ -54,5 +54,5 @@ index fb9d3a3b6..c8c0fa419 100644 Report bugs at https://bugzilla.redhat.com. EOF -- -2.14.3 +2.15.0 diff --git a/0140-Fix-locale-issue-in-grub-setpassword-1294243.patch b/0140-Fix-locale-issue-in-grub-setpassword-1294243.patch index 4a8f9722..3878df06 100644 --- a/0140-Fix-locale-issue-in-grub-setpassword-1294243.patch +++ b/0140-Fix-locale-issue-in-grub-setpassword-1294243.patch @@ -1,7 +1,7 @@ -From 27f304a75c966a1daad262d34c84c7de0c5dab69 Mon Sep 17 00:00:00 2001 +From 124d4da3a6e4e747ab958614cf81c6c71753d36b Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Fri, 29 Jan 2016 16:56:11 -0500 -Subject: [PATCH 140/198] Fix locale issue in grub-setpassword (#1294243) +Subject: [PATCH 140/206] Fix locale issue in grub-setpassword (#1294243) A shell substitution was expecting non-translated output to grab the hashed password and put it in the user.cfg file. Modified code to force @@ -13,7 +13,7 @@ Resolves: rhbz#1294243 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/util/grub-setpassword.in b/util/grub-setpassword.in -index c8c0fa419..d7924af51 100644 +index c8c0fa4199d..d7924af5192 100644 --- a/util/grub-setpassword.in +++ b/util/grub-setpassword.in @@ -104,7 +104,7 @@ getpass() { @@ -26,5 +26,5 @@ index c8c0fa419..d7924af51 100644 sed -e "s/PBKDF2 hash of your password is //" } -- -2.14.3 +2.15.0 diff --git a/0141-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch b/0141-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch index 43c7dcb2..221d7333 100644 --- a/0141-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch +++ b/0141-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch @@ -1,7 +1,7 @@ -From cd5e17c01c996bcf446e16978e37569aa0d889dd Mon Sep 17 00:00:00 2001 +From a2777060620735d6b59cf04e9ee866a205f06091 Mon Sep 17 00:00:00 2001 From: Robert Elliott Date: Fri, 22 Jan 2016 13:32:30 +0100 -Subject: [PATCH 141/198] efiemu: Handle persistent RAM and unknown possible +Subject: [PATCH 141/206] efiemu: Handle persistent RAM and unknown possible future additions. (cherry picked from commit ae3b83a4d4df75a01198a2fed7542391e7c449e0) @@ -12,7 +12,7 @@ Resolves: rhbz#1288608 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/grub-core/efiemu/mm.c b/grub-core/efiemu/mm.c -index 52a032f7b..92e7df7e5 100644 +index 52a032f7b2e..92e7df7e501 100644 --- a/grub-core/efiemu/mm.c +++ b/grub-core/efiemu/mm.c @@ -410,8 +410,8 @@ fill_hook (grub_uint64_t addr, grub_uint64_t size, grub_memory_type_t type, @@ -27,5 +27,5 @@ index 52a032f7b..92e7df7e5 100644 GRUB_EFI_PERSISTENT_MEMORY); default: -- -2.14.3 +2.15.0 diff --git a/0142-efiemu-Fix-compilation-failure.patch b/0142-efiemu-Fix-compilation-failure.patch index 5e682149..a0d839d2 100644 --- a/0142-efiemu-Fix-compilation-failure.patch +++ b/0142-efiemu-Fix-compilation-failure.patch @@ -1,7 +1,7 @@ -From 54e9e666d32c0a18a7cc529cda86686462f04151 Mon Sep 17 00:00:00 2001 +From cff986aeb1735ff5d9f4f0021faf2beda10b9dae Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Fri, 22 Jan 2016 14:10:30 +0100 -Subject: [PATCH 142/198] efiemu: Fix compilation failure +Subject: [PATCH 142/206] efiemu: Fix compilation failure (cherry picked from commit b6a03dfd327489d53ee07c6d7d593b99c7b7cb62) @@ -11,7 +11,7 @@ Resolves: rhbz#1288608 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/grub-core/efiemu/mm.c b/grub-core/efiemu/mm.c -index 92e7df7e5..52a032f7b 100644 +index 92e7df7e501..52a032f7b2e 100644 --- a/grub-core/efiemu/mm.c +++ b/grub-core/efiemu/mm.c @@ -410,8 +410,8 @@ fill_hook (grub_uint64_t addr, grub_uint64_t size, grub_memory_type_t type, @@ -26,5 +26,5 @@ index 92e7df7e5..52a032f7b 100644 GRUB_EFI_PERSISTENT_MEMORY); default: -- -2.14.3 +2.15.0 diff --git a/0143-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch b/0143-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch index a20e12b4..6478f611 100644 --- a/0143-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch +++ b/0143-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch @@ -1,7 +1,7 @@ -From e5df22a8207a4b09c7bc89a7ac92719a529c2a63 Mon Sep 17 00:00:00 2001 +From 5a20f597edbd69907a61a361fa8aff918b2c6864 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 7 Apr 2016 10:58:06 -0400 -Subject: [PATCH 143/198] Revert "reopen SNP protocol for exclusive use by +Subject: [PATCH 143/206] Revert "reopen SNP protocol for exclusive use by grub" I *think* this should have been replaced by upstream's @@ -15,7 +15,7 @@ This reverts commit 147daeab22db793978f952b6f0d832919a1b0081. 1 file changed, 39 deletions(-) diff --git a/grub-core/net/drivers/efi/efinet.c b/grub-core/net/drivers/efi/efinet.c -index b870d3f19..a3ce4c67c 100644 +index b870d3f1938..a3ce4c67cce 100644 --- a/grub-core/net/drivers/efi/efinet.c +++ b/grub-core/net/drivers/efi/efinet.c @@ -465,45 +465,6 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, @@ -65,5 +65,5 @@ index b870d3f19..a3ce4c67c 100644 } } -- -2.14.3 +2.15.0 diff --git a/0144-Add-a-url-parser.patch b/0144-Add-a-url-parser.patch index 13537da5..3296e4e2 100644 --- a/0144-Add-a-url-parser.patch +++ b/0144-Add-a-url-parser.patch @@ -1,7 +1,7 @@ -From 283d44e07b5c02cd87a0eec5cdd596306a9c1b41 Mon Sep 17 00:00:00 2001 +From 956b3cd5f9669a0cdbf4607973e12540d09ccc18 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jun 2016 16:18:44 -0400 -Subject: [PATCH 144/198] Add a url parser. +Subject: [PATCH 144/206] Add a url parser. This patch adds a url parser that can parse http, https, tftp, and tftps urls, and is easily extensible to handle more types. @@ -20,7 +20,7 @@ Signed-off-by: Peter Jones create mode 100644 include/grub/net/url.h diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 5ae70204c..4857a1e5f 100644 +index 5ae70204cd2..4857a1e5f61 100644 --- a/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def @@ -2199,6 +2199,7 @@ module = { @@ -32,7 +32,7 @@ index 5ae70204c..4857a1e5f 100644 module = { diff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c -index 8344526be..f1fab7000 100644 +index 8344526be7f..f1fab700048 100644 --- a/grub-core/kern/misc.c +++ b/grub-core/kern/misc.c @@ -296,6 +296,19 @@ grub_strrchr (const char *s, int c) @@ -57,7 +57,7 @@ index 8344526be..f1fab7000 100644 { diff --git a/grub-core/net/url.c b/grub-core/net/url.c new file mode 100644 -index 000000000..146858284 +index 00000000000..146858284cd --- /dev/null +++ b/grub-core/net/url.c @@ -0,0 +1,861 @@ @@ -923,7 +923,7 @@ index 000000000..146858284 +} +#endif diff --git a/include/grub/misc.h b/include/grub/misc.h -index 062081437..4737da1ea 100644 +index 06208143779..4737da1eaa9 100644 --- a/include/grub/misc.h +++ b/include/grub/misc.h @@ -85,6 +85,7 @@ int EXPORT_FUNC(grub_strncmp) (const char *s1, const char *s2, grub_size_t n); @@ -987,7 +987,7 @@ index 062081437..4737da1ea 100644 { diff --git a/include/grub/net/url.h b/include/grub/net/url.h new file mode 100644 -index 000000000..a215fa27d +index 00000000000..a215fa27d0a --- /dev/null +++ b/include/grub/net/url.h @@ -0,0 +1,28 @@ @@ -1020,5 +1020,5 @@ index 000000000..a215fa27d + +#endif /* GRUB_URL_HEADER */ -- -2.14.3 +2.15.0 diff --git a/0145-efinet-and-bootp-add-support-for-dhcpv6.patch b/0145-efinet-and-bootp-add-support-for-dhcpv6.patch index 122e92b7..67dbfb76 100644 --- a/0145-efinet-and-bootp-add-support-for-dhcpv6.patch +++ b/0145-efinet-and-bootp-add-support-for-dhcpv6.patch @@ -1,7 +1,7 @@ -From 89b9b60f3bf638786a686eb86344a73523168034 Mon Sep 17 00:00:00 2001 +From 7456c9e2715a2e272a9e3d5fb2ae7e14c2edf3f6 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 8 Jun 2016 21:03:37 -0400 -Subject: [PATCH 145/198] efinet and bootp: add support for dhcpv6 +Subject: [PATCH 145/206] efinet and bootp: add support for dhcpv6 Signed-off-by: Peter Jones --- @@ -14,7 +14,7 @@ Signed-off-by: Peter Jones 6 files changed, 480 insertions(+), 14 deletions(-) diff --git a/grub-core/net/bootp.c b/grub-core/net/bootp.c -index f03eeab2f..da3e45446 100644 +index f03eeab2fb4..da3e454466b 100644 --- a/grub-core/net/bootp.c +++ b/grub-core/net/bootp.c @@ -23,6 +23,7 @@ @@ -206,7 +206,7 @@ index f03eeab2f..da3e45446 100644 grub_net_process_dhcp (struct grub_net_buff *nb, struct grub_net_card *card) diff --git a/grub-core/net/drivers/efi/efinet.c b/grub-core/net/drivers/efi/efinet.c -index a3ce4c67c..329024b6f 100644 +index a3ce4c67cce..329024b6f2c 100644 --- a/grub-core/net/drivers/efi/efinet.c +++ b/grub-core/net/drivers/efi/efinet.c @@ -18,11 +18,15 @@ @@ -319,7 +319,7 @@ index a3ce4c67c..329024b6f 100644 } } diff --git a/grub-core/net/net.c b/grub-core/net/net.c -index 16d2ce06d..4be228d95 100644 +index 16d2ce06d5a..4be228d9576 100644 --- a/grub-core/net/net.c +++ b/grub-core/net/net.c @@ -955,6 +955,78 @@ grub_net_network_level_interface_register (struct grub_net_network_level_interfa @@ -402,7 +402,7 @@ index 16d2ce06d..4be228d95 100644 grub_err_t grub_net_add_ipv4_local (struct grub_net_network_level_interface *inter, diff --git a/grub-core/net/tftp.c b/grub-core/net/tftp.c -index 7d90bf66e..1157524fc 100644 +index 7d90bf66e76..1157524fc50 100644 --- a/grub-core/net/tftp.c +++ b/grub-core/net/tftp.c @@ -379,19 +379,23 @@ tftp_open (struct grub_file *file, const char *filename) @@ -430,7 +430,7 @@ index 7d90bf66e..1157524fc 100644 grub_free (data); return grub_errno; diff --git a/include/grub/efi/api.h b/include/grub/efi/api.h -index 97b9aa7a4..02488ec35 100644 +index 97b9aa7a4d7..02488ec35ae 100644 --- a/include/grub/efi/api.h +++ b/include/grub/efi/api.h @@ -572,10 +572,16 @@ typedef void *grub_efi_handle_t; @@ -585,7 +585,7 @@ index 97b9aa7a4..02488ec35 100644 typedef struct grub_efi_pxe diff --git a/include/grub/net.h b/include/grub/net.h -index 50d62ab0c..f8f3ec13a 100644 +index 50d62ab0c8c..f8f3ec13acc 100644 --- a/include/grub/net.h +++ b/include/grub/net.h @@ -442,6 +442,51 @@ struct grub_net_bootp_packet @@ -663,5 +663,5 @@ index 50d62ab0c..f8f3ec13a 100644 grub_net_add_ipv4_local (struct grub_net_network_level_interface *inf, int mask); -- -2.14.3 +2.15.0 diff --git a/0146-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch b/0146-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch index 6358372f..01030898 100644 --- a/0146-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch +++ b/0146-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch @@ -1,7 +1,7 @@ -From 38b9ded25e7f0b2b0265759bbf3a69e07df50eb9 Mon Sep 17 00:00:00 2001 +From 37208e75eac8c1f17598d75b4c340e3af735d23c Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 23 Jun 2016 11:01:39 -0400 -Subject: [PATCH 146/198] Add grub-get-kernel-settings and use it in 10_linux +Subject: [PATCH 146/206] Add grub-get-kernel-settings and use it in 10_linux This patch adds grub-get-kernel-settings, which reads the system kernel installation configuration from /etc/sysconfig/kernel, and outputs @@ -11,9 +11,9 @@ debug stanzas. Resolves: rhbz#1226325 --- - .gitignore | 2 + - Makefile.util.def | 7 +++ configure.ac | 2 + + Makefile.util.def | 7 +++ + .gitignore | 2 + util/bash-completion.d/grub-completion.bash.in | 22 ++++++++ util/grub-get-kernel-settings.3 | 20 +++++++ util/grub-get-kernel-settings.in | 78 ++++++++++++++++++++++++++ @@ -23,39 +23,8 @@ Resolves: rhbz#1226325 create mode 100644 util/grub-get-kernel-settings.3 create mode 100644 util/grub-get-kernel-settings.in -diff --git a/.gitignore b/.gitignore -index 387e3554c..9f258735a 100644 ---- a/.gitignore -+++ b/.gitignore -@@ -64,6 +64,8 @@ grub-*.tar.* - /grub*-fs-tester - /grub*-fstest - /grub*-fstest.1 -+/grub*-get-kernel-settings -+/grub*-get-kernel-settings.3 - /grub*-glue-efi - /grub*-glue-efi.1 - /grub*-install -diff --git a/Makefile.util.def b/Makefile.util.def -index 226c46b2d..ed27351eb 100644 ---- a/Makefile.util.def -+++ b/Makefile.util.def -@@ -713,6 +713,13 @@ script = { - installdir = sbin; - }; - -+script = { -+ name = grub-get-kernel-settings; -+ common = util/grub-get-kernel-settings.in; -+ mansection = 3; -+ installdir = sbin; -+}; -+ - script = { - name = grub-set-default; - common = util/grub-set-default.in; diff --git a/configure.ac b/configure.ac -index 3c4b9a19b..40be70019 100644 +index 3c4b9a19b10..40be70019e2 100644 --- a/configure.ac +++ b/configure.ac @@ -58,6 +58,7 @@ grub_TRANSFORM([grub-install]) @@ -74,8 +43,39 @@ index 3c4b9a19b..40be70019 100644 grub_TRANSFORM([grub-glue-efi.3]) grub_TRANSFORM([grub-install.1]) grub_TRANSFORM([grub-kbdcomp.3]) +diff --git a/Makefile.util.def b/Makefile.util.def +index 226c46b2d79..ed27351eb47 100644 +--- a/Makefile.util.def ++++ b/Makefile.util.def +@@ -713,6 +713,13 @@ script = { + installdir = sbin; + }; + ++script = { ++ name = grub-get-kernel-settings; ++ common = util/grub-get-kernel-settings.in; ++ mansection = 3; ++ installdir = sbin; ++}; ++ + script = { + name = grub-set-default; + common = util/grub-set-default.in; +diff --git a/.gitignore b/.gitignore +index 387e3554cd5..9f258735aaa 100644 +--- a/.gitignore ++++ b/.gitignore +@@ -64,6 +64,8 @@ grub-*.tar.* + /grub*-fs-tester + /grub*-fstest + /grub*-fstest.1 ++/grub*-get-kernel-settings ++/grub*-get-kernel-settings.3 + /grub*-glue-efi + /grub*-glue-efi.1 + /grub*-install diff --git a/util/bash-completion.d/grub-completion.bash.in b/util/bash-completion.d/grub-completion.bash.in -index 44bf135b9..5c4acd496 100644 +index 44bf135b9f8..5c4acd496d4 100644 --- a/util/bash-completion.d/grub-completion.bash.in +++ b/util/bash-completion.d/grub-completion.bash.in @@ -264,6 +264,28 @@ have ${__grub_sparc64_setup_program} && \ @@ -109,7 +109,7 @@ index 44bf135b9..5c4acd496 100644 # diff --git a/util/grub-get-kernel-settings.3 b/util/grub-get-kernel-settings.3 new file mode 100644 -index 000000000..ba33330e2 +index 00000000000..ba33330e28d --- /dev/null +++ b/util/grub-get-kernel-settings.3 @@ -0,0 +1,20 @@ @@ -135,7 +135,7 @@ index 000000000..ba33330e2 +.BR "info grub" diff --git a/util/grub-get-kernel-settings.in b/util/grub-get-kernel-settings.in new file mode 100644 -index 000000000..120462198 +index 00000000000..12046219878 --- /dev/null +++ b/util/grub-get-kernel-settings.in @@ -0,0 +1,78 @@ @@ -218,7 +218,7 @@ index 000000000..120462198 + echo export GRUB_LINUX_DEBUG_TITLE_POSTFIX +fi diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in -index fb8724708..e32de5ef3 100644 +index fb8724708b5..e32de5ef361 100644 --- a/util/grub-mkconfig.in +++ b/util/grub-mkconfig.in @@ -45,6 +45,7 @@ grub_probe="${sbindir}/@grub_probe@" @@ -239,7 +239,7 @@ index fb8724708..e32de5ef3 100644 GRUB_DEVICE_UUID="$GRUB_DEVICE_UUID_GENERATED" fi diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index 584ad1f46..c9bf223f2 100644 +index 584ad1f4639..c9bf223f273 100644 --- a/util/grub.d/10_linux.in +++ b/util/grub.d/10_linux.in @@ -101,7 +101,8 @@ linux_entry () @@ -299,5 +299,5 @@ index 584ad1f46..c9bf223f2 100644 fi -- -2.14.3 +2.15.0 diff --git a/0147-Normalize-slashes-in-tftp-paths.patch b/0147-Normalize-slashes-in-tftp-paths.patch index 9d63df57..a2b142bf 100644 --- a/0147-Normalize-slashes-in-tftp-paths.patch +++ b/0147-Normalize-slashes-in-tftp-paths.patch @@ -1,7 +1,7 @@ -From 17fc1314e398d7ab2f3ae5a6d1114543653e8a91 Mon Sep 17 00:00:00 2001 +From ff268e842592a60d07e4ea39e8e7bae0c8d22611 Mon Sep 17 00:00:00 2001 From: Lenny Szubowicz Date: Mon, 29 Aug 2016 11:04:48 -0400 -Subject: [PATCH 147/198] Normalize slashes in tftp paths. +Subject: [PATCH 147/206] Normalize slashes in tftp paths. Some tftp servers do not handle multiple consecutive slashes correctly; this patch avoids sending tftp requests with non-normalized paths. @@ -12,7 +12,7 @@ Signed-off-by: Peter Jones 1 file changed, 23 insertions(+), 1 deletion(-) diff --git a/grub-core/net/tftp.c b/grub-core/net/tftp.c -index 1157524fc..5ca0a96a6 100644 +index 1157524fc50..5ca0a96a6f6 100644 --- a/grub-core/net/tftp.c +++ b/grub-core/net/tftp.c @@ -300,6 +300,25 @@ destroy_pq (tftp_data_t data) @@ -54,5 +54,5 @@ index 1157524fc..5ca0a96a6 100644 rrq += grub_strlen (filename) + 1; -- -2.14.3 +2.15.0 diff --git a/0148-Fix-malformed-tftp-packets.patch b/0148-Fix-malformed-tftp-packets.patch index eb70fadc..e8b0c84c 100644 --- a/0148-Fix-malformed-tftp-packets.patch +++ b/0148-Fix-malformed-tftp-packets.patch @@ -1,7 +1,7 @@ -From 94758538586b3fb2602d41c5ccc0b58769a09933 Mon Sep 17 00:00:00 2001 +From 700684eaa76046ceaca607877c897c50c7fbddb5 Mon Sep 17 00:00:00 2001 From: Mark Salter Date: Tue, 7 Mar 2017 18:26:17 -0500 -Subject: [PATCH 148/198] Fix malformed tftp packets +Subject: [PATCH 148/206] Fix malformed tftp packets 0088-Normalize-slashes-in-tftp-paths.patch collapses multiple contiguous slashes in a filename into one slash in the tftp packet filename field. @@ -16,7 +16,7 @@ Signed-off-by: Mark Salter 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/grub-core/net/tftp.c b/grub-core/net/tftp.c -index 5ca0a96a6..dcd824943 100644 +index 5ca0a96a6f6..dcd82494309 100644 --- a/grub-core/net/tftp.c +++ b/grub-core/net/tftp.c @@ -360,8 +360,8 @@ tftp_open (struct grub_file *file, const char *filename) @@ -31,5 +31,5 @@ index 5ca0a96a6..dcd824943 100644 grub_strcpy (rrq, "octet"); rrqlen += grub_strlen ("octet") + 1; -- -2.14.3 +2.15.0 diff --git a/0149-Fix-race-in-EFI-validation.patch b/0149-Fix-race-in-EFI-validation.patch index 862108a2..8039f94d 100644 --- a/0149-Fix-race-in-EFI-validation.patch +++ b/0149-Fix-race-in-EFI-validation.patch @@ -1,14 +1,14 @@ -From bb2ea94b6dcccec798e8728c51d53786f2fe0d2c Mon Sep 17 00:00:00 2001 +From 1b21ff557074e5c2ecbabce06921e03986c09553 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 14 Jul 2015 16:58:51 -0700 -Subject: [PATCH 149/198] Fix race in EFI validation +Subject: [PATCH 149/206] Fix race in EFI validation --- grub-core/loader/i386/efi/linux.c | 44 ++++++++++----------------------------- 1 file changed, 11 insertions(+), 33 deletions(-) diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c -index e5b778577..7ccf32d9d 100644 +index e5b778577f9..7ccf32d9d45 100644 --- a/grub-core/loader/i386/efi/linux.c +++ b/grub-core/loader/i386/efi/linux.c @@ -154,7 +154,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), @@ -93,5 +93,5 @@ index e5b778577..7ccf32d9d 100644 { grub_dl_unref (my_mod); -- -2.14.3 +2.15.0 diff --git a/0150-bz1374141-fix-incorrect-mask-for-ppc64.patch b/0150-bz1374141-fix-incorrect-mask-for-ppc64.patch index 2dd5b560..568a886a 100644 --- a/0150-bz1374141-fix-incorrect-mask-for-ppc64.patch +++ b/0150-bz1374141-fix-incorrect-mask-for-ppc64.patch @@ -1,7 +1,7 @@ -From 09a5e37fe9bbe1b7cf7fe0a1211e06de555b0b54 Mon Sep 17 00:00:00 2001 +From 210bb34a3b86403b3109c77e4f4db26b4e6cee95 Mon Sep 17 00:00:00 2001 From: Masahiro Matsuya Date: Sat, 29 Oct 2016 08:35:26 +0900 -Subject: [PATCH 150/198] bz1374141 fix incorrect mask for ppc64 +Subject: [PATCH 150/206] bz1374141 fix incorrect mask for ppc64 The netmask configured in firmware is not respected on ppc64 (big endian). When 255.255.252.0 is set as netmask in firmware, the following is the value of bootpath string in grub_ieee1275_parse_bootpath(). @@ -30,7 +30,7 @@ The count of zero with __builtin_clz can be 22. (clz counts the number of one bi 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/grub-core/net/drivers/ieee1275/ofnet.c b/grub-core/net/drivers/ieee1275/ofnet.c -index 002446be1..3df75357a 100644 +index 002446be1c3..3df75357a70 100644 --- a/grub-core/net/drivers/ieee1275/ofnet.c +++ b/grub-core/net/drivers/ieee1275/ofnet.c @@ -220,8 +220,7 @@ grub_ieee1275_parse_bootpath (const char *devpath, char *bootpath, @@ -44,5 +44,5 @@ index 002446be1..3df75357a 100644 if (gateway_addr.ipv4 != 0) -- -2.14.3 +2.15.0 diff --git a/0151-Use-device-part-of-chainloader-target-if-present.patch b/0151-Use-device-part-of-chainloader-target-if-present.patch index 8b8cef86..b26121b8 100644 --- a/0151-Use-device-part-of-chainloader-target-if-present.patch +++ b/0151-Use-device-part-of-chainloader-target-if-present.patch @@ -1,7 +1,7 @@ -From 79da61bd99b4cd4c817eeb022bd9f7d3e1d38258 Mon Sep 17 00:00:00 2001 +From a7ff45890757a0edbd80fadb0e182d65d980d781 Mon Sep 17 00:00:00 2001 From: Raymund Will Date: Fri, 10 Apr 2015 01:45:02 -0400 -Subject: [PATCH 151/198] Use device part of chainloader target, if present. +Subject: [PATCH 151/206] Use device part of chainloader target, if present. Otherwise chainloading is restricted to '$root', which might not even be readable by EFI! @@ -15,7 +15,7 @@ Signed-off-by: Peter Jones 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c -index adc856366..14ce6ddd7 100644 +index adc85636633..14ce6ddd7ad 100644 --- a/grub-core/loader/efi/chainloader.c +++ b/grub-core/loader/efi/chainloader.c @@ -223,8 +223,11 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), @@ -33,5 +33,5 @@ index adc856366..14ce6ddd7 100644 goto fail; -- -2.14.3 +2.15.0 diff --git a/0152-Add-secureboot-support-on-efi-chainloader.patch b/0152-Add-secureboot-support-on-efi-chainloader.patch index 367b9610..26bda00e 100644 --- a/0152-Add-secureboot-support-on-efi-chainloader.patch +++ b/0152-Add-secureboot-support-on-efi-chainloader.patch @@ -1,7 +1,7 @@ -From cffa3c44d259122720382c8d2c08ff3e57b00de4 Mon Sep 17 00:00:00 2001 +From 8bd6b4f718d84a51b845eb403fe8c95fedfde853 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 6 Oct 2015 13:04:37 -0400 -Subject: [PATCH 152/198] Add secureboot support on efi chainloader +Subject: [PATCH 152/206] Add secureboot support on efi chainloader Expand the chainloader to be able to verify the image by means of shim lock protocol. The PE/COFF image is loaded and relocated by the @@ -22,7 +22,7 @@ Signed-off-by: Peter Jones 2 files changed, 595 insertions(+), 37 deletions(-) diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c -index 14ce6ddd7..87a91e16f 100644 +index 14ce6ddd7ad..87a91e16f17 100644 --- a/grub-core/loader/efi/chainloader.c +++ b/grub-core/loader/efi/chainloader.c @@ -32,6 +32,8 @@ @@ -758,7 +758,7 @@ index 14ce6ddd7..87a91e16f 100644 return grub_errno; diff --git a/include/grub/efi/pe32.h b/include/grub/efi/pe32.h -index 7d44732d2..6e24dae2c 100644 +index 7d44732d2c3..6e24dae2cb6 100644 --- a/include/grub/efi/pe32.h +++ b/include/grub/efi/pe32.h @@ -214,7 +214,11 @@ struct grub_pe64_optional_header @@ -796,5 +796,5 @@ index 7d44732d2..6e24dae2c 100644 { grub_uint32_t page_rva; -- -2.14.3 +2.15.0 diff --git a/0153-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch b/0153-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch index 07cce9db..69edeafb 100644 --- a/0153-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch +++ b/0153-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch @@ -1,7 +1,7 @@ -From a59984e248881a8c47d0c6035ce3dc062fa2113f Mon Sep 17 00:00:00 2001 +From de9e4f818527846f4a9cbfeb3d0bb3c7a64aae5c Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 6 Oct 2015 16:09:25 -0400 -Subject: [PATCH 153/198] Make any of the loaders that link in efi mode honor +Subject: [PATCH 153/206] Make any of the loaders that link in efi mode honor secure boot. And in this case "honor" means "even if somebody does link this in, they @@ -9,7 +9,6 @@ won't register commands if SB is enabled." Signed-off-by: Peter Jones --- - grub-core/Makefile.am | 1 + grub-core/Makefile.core.def | 1 + grub-core/commands/iorw.c | 7 +++++ grub-core/commands/memrw.c | 7 +++++ @@ -28,6 +27,7 @@ Signed-off-by: Peter Jones include/grub/mips/linux.h | 0 include/grub/powerpc/linux.h | 0 include/grub/sparc64/linux.h | 0 + grub-core/Makefile.am | 1 + 19 files changed, 146 insertions(+), 29 deletions(-) create mode 100644 grub-core/kern/efi/sb.c create mode 100644 include/grub/efi/sb.h @@ -36,20 +36,8 @@ Signed-off-by: Peter Jones create mode 100644 include/grub/powerpc/linux.h create mode 100644 include/grub/sparc64/linux.h -diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am -index 104513847..f7b4d29b0 100644 ---- a/grub-core/Makefile.am -+++ b/grub-core/Makefile.am -@@ -71,6 +71,7 @@ KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/command.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/device.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/disk.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/dl.h -+KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/sb.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/env.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/env_private.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/err.h diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 4857a1e5f..75a7ab344 100644 +index 4857a1e5f61..75a7ab3441d 100644 --- a/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def @@ -196,6 +196,7 @@ kernel = { @@ -61,7 +49,7 @@ index 4857a1e5f..75a7ab344 100644 x86 = kern/i386/tsc.c; x86 = kern/i386/tsc_pit.c; diff --git a/grub-core/commands/iorw.c b/grub-core/commands/iorw.c -index a0c164e54..41a7f3f04 100644 +index a0c164e54f0..41a7f3f0466 100644 --- a/grub-core/commands/iorw.c +++ b/grub-core/commands/iorw.c @@ -23,6 +23,7 @@ @@ -93,7 +81,7 @@ index a0c164e54..41a7f3f04 100644 grub_unregister_extcmd (cmd_read_word); grub_unregister_extcmd (cmd_read_dword); diff --git a/grub-core/commands/memrw.c b/grub-core/commands/memrw.c -index 98769eadb..088cbe9e2 100644 +index 98769eadb34..088cbe9e2bc 100644 --- a/grub-core/commands/memrw.c +++ b/grub-core/commands/memrw.c @@ -22,6 +22,7 @@ @@ -125,7 +113,7 @@ index 98769eadb..088cbe9e2 100644 grub_unregister_extcmd (cmd_read_word); grub_unregister_extcmd (cmd_read_dword); diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c -index 2588b481e..684ca93f8 100644 +index 2588b481e76..684ca93f8f4 100644 --- a/grub-core/kern/efi/efi.c +++ b/grub-core/kern/efi/efi.c @@ -269,34 +269,6 @@ grub_efi_get_variable (const char *var, const grub_efi_guid_t *guid, @@ -165,7 +153,7 @@ index 2588b481e..684ca93f8 100644 /* Search the mods section from the PE32/PE32+ image. This code uses diff --git a/grub-core/kern/efi/sb.c b/grub-core/kern/efi/sb.c new file mode 100644 -index 000000000..a41b6c5b8 +index 00000000000..a41b6c5b851 --- /dev/null +++ b/grub-core/kern/efi/sb.c @@ -0,0 +1,58 @@ @@ -228,7 +216,7 @@ index 000000000..a41b6c5b8 +#endif +} diff --git a/grub-core/loader/efi/appleloader.c b/grub-core/loader/efi/appleloader.c -index 74888c463..69c2a10d3 100644 +index 74888c463ba..69c2a10d351 100644 --- a/grub-core/loader/efi/appleloader.c +++ b/grub-core/loader/efi/appleloader.c @@ -24,6 +24,7 @@ @@ -259,7 +247,7 @@ index 74888c463..69c2a10d3 100644 grub_unregister_command (cmd); } diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c -index 87a91e16f..aee8e6bec 100644 +index 87a91e16f17..aee8e6becf6 100644 --- a/grub-core/loader/efi/chainloader.c +++ b/grub-core/loader/efi/chainloader.c @@ -34,6 +34,7 @@ @@ -271,7 +259,7 @@ index 87a91e16f..aee8e6bec 100644 #include #include diff --git a/grub-core/loader/i386/bsd.c b/grub-core/loader/i386/bsd.c -index 7f96515da..87709aa23 100644 +index 7f96515da65..87709aa23e8 100644 --- a/grub-core/loader/i386/bsd.c +++ b/grub-core/loader/i386/bsd.c @@ -38,6 +38,7 @@ @@ -303,7 +291,7 @@ index 7f96515da..87709aa23 100644 grub_unregister_extcmd (cmd_openbsd); grub_unregister_extcmd (cmd_netbsd); diff --git a/grub-core/loader/i386/linux.c b/grub-core/loader/i386/linux.c -index 083f9417c..b2438547d 100644 +index 083f9417cb6..b2438547dd0 100644 --- a/grub-core/loader/i386/linux.c +++ b/grub-core/loader/i386/linux.c @@ -35,6 +35,7 @@ @@ -335,7 +323,7 @@ index 083f9417c..b2438547d 100644 grub_unregister_command (cmd_initrd); } diff --git a/grub-core/loader/i386/pc/linux.c b/grub-core/loader/i386/pc/linux.c -index a293b17aa..91283157e 100644 +index a293b17aa10..91283157e30 100644 --- a/grub-core/loader/i386/pc/linux.c +++ b/grub-core/loader/i386/pc/linux.c @@ -35,6 +35,7 @@ @@ -367,7 +355,7 @@ index a293b17aa..91283157e 100644 grub_unregister_command (cmd_initrd); } diff --git a/grub-core/loader/multiboot.c b/grub-core/loader/multiboot.c -index bd9d5b3e6..fb044a60c 100644 +index bd9d5b3e698..fb044a60c79 100644 --- a/grub-core/loader/multiboot.c +++ b/grub-core/loader/multiboot.c @@ -42,6 +42,7 @@ @@ -399,7 +387,7 @@ index bd9d5b3e6..fb044a60c 100644 grub_unregister_command (cmd_module); } diff --git a/grub-core/loader/xnu.c b/grub-core/loader/xnu.c -index c9885b1bc..df8dfdb4b 100644 +index c9885b1bcd7..df8dfdb4ba0 100644 --- a/grub-core/loader/xnu.c +++ b/grub-core/loader/xnu.c @@ -33,6 +33,7 @@ @@ -431,7 +419,7 @@ index c9885b1bc..df8dfdb4b 100644 grub_unregister_command (cmd_resume); #endif diff --git a/include/grub/efi/efi.h b/include/grub/efi/efi.h -index bb3ab7dfd..91e29ce66 100644 +index bb3ab7dfdeb..91e29ce66f1 100644 --- a/include/grub/efi/efi.h +++ b/include/grub/efi/efi.h @@ -83,7 +83,6 @@ EXPORT_FUNC (grub_efi_set_variable) (const char *var, @@ -444,7 +432,7 @@ index bb3ab7dfd..91e29ce66 100644 const grub_efi_device_path_t *dp2); diff --git a/include/grub/efi/sb.h b/include/grub/efi/sb.h new file mode 100644 -index 000000000..9629fbb0f +index 00000000000..9629fbb0f9e --- /dev/null +++ b/include/grub/efi/sb.h @@ -0,0 +1,29 @@ @@ -479,16 +467,28 @@ index 000000000..9629fbb0f +#endif /* ! GRUB_EFI_SB_HEADER */ diff --git a/include/grub/ia64/linux.h b/include/grub/ia64/linux.h new file mode 100644 -index 000000000..e69de29bb +index 00000000000..e69de29bb2d diff --git a/include/grub/mips/linux.h b/include/grub/mips/linux.h new file mode 100644 -index 000000000..e69de29bb +index 00000000000..e69de29bb2d diff --git a/include/grub/powerpc/linux.h b/include/grub/powerpc/linux.h new file mode 100644 -index 000000000..e69de29bb +index 00000000000..e69de29bb2d diff --git a/include/grub/sparc64/linux.h b/include/grub/sparc64/linux.h new file mode 100644 -index 000000000..e69de29bb +index 00000000000..e69de29bb2d +diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am +index 10451384720..f7b4d29b0b3 100644 +--- a/grub-core/Makefile.am ++++ b/grub-core/Makefile.am +@@ -71,6 +71,7 @@ KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/command.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/device.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/disk.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/dl.h ++KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/sb.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/env.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/env_private.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/err.h -- -2.14.3 +2.15.0 diff --git a/0154-Make-grub_fatal-also-backtrace.patch b/0154-Make-grub_fatal-also-backtrace.patch index 63a50c1a..009358e8 100644 --- a/0154-Make-grub_fatal-also-backtrace.patch +++ b/0154-Make-grub_fatal-also-backtrace.patch @@ -1,7 +1,7 @@ -From 37e08ec93e219ece7547b3d4bdbd594eb691fe1a Mon Sep 17 00:00:00 2001 +From 40796ff76628edf757056788564200957f9e3fbc Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 27 Jan 2016 09:22:42 -0500 -Subject: [PATCH 154/198] Make grub_fatal() also backtrace. +Subject: [PATCH 154/206] Make grub_fatal() also backtrace. --- grub-core/Makefile.core.def | 3 ++ @@ -13,7 +13,7 @@ Subject: [PATCH 154/198] Make grub_fatal() also backtrace. create mode 100644 grub-core/lib/arm64/backtrace.c diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 75a7ab344..3a5d450f3 100644 +index 75a7ab3441d..3a5d450f3d0 100644 --- a/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def @@ -175,6 +175,9 @@ kernel = { @@ -27,7 +27,7 @@ index 75a7ab344..3a5d450f3 100644 i386_xen = kern/i386/dl.c; diff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c -index f1fab7000..5ce89a40c 100644 +index f1fab700048..5ce89a40c68 100644 --- a/grub-core/kern/misc.c +++ b/grub-core/kern/misc.c @@ -24,6 +24,7 @@ @@ -55,7 +55,7 @@ index f1fab7000..5ce89a40c 100644 #endif diff --git a/grub-core/lib/arm64/backtrace.c b/grub-core/lib/arm64/backtrace.c new file mode 100644 -index 000000000..1079b5380 +index 00000000000..1079b5380e1 --- /dev/null +++ b/grub-core/lib/arm64/backtrace.c @@ -0,0 +1,62 @@ @@ -122,7 +122,7 @@ index 000000000..1079b5380 +} + diff --git a/grub-core/lib/backtrace.c b/grub-core/lib/backtrace.c -index 825a8800e..c0ad6ab8b 100644 +index 825a8800e25..c0ad6ab8be1 100644 --- a/grub-core/lib/backtrace.c +++ b/grub-core/lib/backtrace.c @@ -29,6 +29,7 @@ GRUB_MOD_LICENSE ("GPLv3+"); @@ -142,7 +142,7 @@ index 825a8800e..c0ad6ab8b 100644 } diff --git a/grub-core/lib/i386/backtrace.c b/grub-core/lib/i386/backtrace.c -index c3e03c727..c67273db3 100644 +index c3e03c7275c..c67273db3ae 100644 --- a/grub-core/lib/i386/backtrace.c +++ b/grub-core/lib/i386/backtrace.c @@ -15,11 +15,23 @@ @@ -171,5 +171,5 @@ index c3e03c727..c67273db3 100644 #include #include -- -2.14.3 +2.15.0 diff --git a/0155-Rework-linux-command.patch b/0155-Rework-linux-command.patch index be04b0af..77b5feff 100644 --- a/0155-Rework-linux-command.patch +++ b/0155-Rework-linux-command.patch @@ -1,7 +1,7 @@ -From b7c180177336f1979385e02651ba41f7ee79fefc Mon Sep 17 00:00:00 2001 +From 7bdb69cdbb54a400837f098d8cdf1a0cdd23f6ca Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 16:12:39 -0700 -Subject: [PATCH 155/198] Rework linux command +Subject: [PATCH 155/206] Rework linux command We want a single buffer that contains the entire kernel image in order to perform a TPM measurement. Allocate one and copy the entire kernel into it @@ -11,7 +11,7 @@ before pulling out the individual blocks later on. 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/grub-core/loader/i386/linux.c b/grub-core/loader/i386/linux.c -index b2438547d..e4b8342f5 100644 +index b2438547dd0..e4b8342f5d0 100644 --- a/grub-core/loader/i386/linux.c +++ b/grub-core/loader/i386/linux.c @@ -681,12 +681,13 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), @@ -103,5 +103,5 @@ index b2438547d..e4b8342f5 100644 grub_file_close (file); -- -2.14.3 +2.15.0 diff --git a/0156-Rework-linux16-command.patch b/0156-Rework-linux16-command.patch index 6359ee5c..af422c26 100644 --- a/0156-Rework-linux16-command.patch +++ b/0156-Rework-linux16-command.patch @@ -1,7 +1,7 @@ -From 60e7a1d746e39f10808a1cbd2c4928624026fbf1 Mon Sep 17 00:00:00 2001 +From 4b7dc10875d95fde420bf62b75ed86d37bb1b172 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 16:20:58 -0700 -Subject: [PATCH 156/198] Rework linux16 command +Subject: [PATCH 156/206] Rework linux16 command We want a single buffer that contains the entire kernel image in order to perform a TPM measurement. Allocate one and copy the entire kernel int it @@ -11,7 +11,7 @@ before pulling out the individual blocks later on. 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/grub-core/loader/i386/pc/linux.c b/grub-core/loader/i386/pc/linux.c -index 91283157e..b864e5403 100644 +index 91283157e30..b864e540333 100644 --- a/grub-core/loader/i386/pc/linux.c +++ b/grub-core/loader/i386/pc/linux.c @@ -124,13 +124,14 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), @@ -97,5 +97,5 @@ index 91283157e..b864e5403 100644 grub_file_close (file); -- -2.14.3 +2.15.0 diff --git a/0157-Make-grub-editenv-build-again.patch b/0157-Make-grub-editenv-build-again.patch index 0e7cbee0..c168cb42 100644 --- a/0157-Make-grub-editenv-build-again.patch +++ b/0157-Make-grub-editenv-build-again.patch @@ -1,7 +1,7 @@ -From 587b65a7c706440b5e8592922d36173cb77e6b6e Mon Sep 17 00:00:00 2001 +From 7b698517977e63271f2692e623263de3fe57a8c8 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 4 Mar 2016 16:29:13 -0500 -Subject: [PATCH 157/198] Make grub-editenv build again. +Subject: [PATCH 157/206] Make grub-editenv build again. 36212460d3565b18439a3a8130b28e6c97702c6a split how some of the mkimage utility functions are defined, and they wind up being linked into @@ -13,7 +13,7 @@ Signed-off-by: Peter Jones 1 file changed, 2 insertions(+) diff --git a/Makefile.util.def b/Makefile.util.def -index ed27351eb..38cdf4ccc 100644 +index ed27351eb47..38cdf4ccc09 100644 --- a/Makefile.util.def +++ b/Makefile.util.def @@ -236,6 +236,8 @@ program = { @@ -26,5 +26,5 @@ index ed27351eb..38cdf4ccc 100644 common = util/config.c; common = util/resolve.c; -- -2.14.3 +2.15.0 diff --git a/0158-Fix-up-some-man-pages-rpmdiff-noticed.patch b/0158-Fix-up-some-man-pages-rpmdiff-noticed.patch index 2a4f71a7..987f6764 100644 --- a/0158-Fix-up-some-man-pages-rpmdiff-noticed.patch +++ b/0158-Fix-up-some-man-pages-rpmdiff-noticed.patch @@ -1,7 +1,7 @@ -From c3d456a824ccf8c728cae4f50254239bafaf50a1 Mon Sep 17 00:00:00 2001 +From 908d355bba83df8000b313681e2e0ccdd7b8d1c2 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 23 Sep 2014 09:58:49 -0400 -Subject: [PATCH 158/198] Fix up some man pages rpmdiff noticed. +Subject: [PATCH 158/206] Fix up some man pages rpmdiff noticed. --- configure.ac | 2 ++ @@ -13,7 +13,7 @@ Subject: [PATCH 158/198] Fix up some man pages rpmdiff noticed. create mode 100644 util/grub-syslinux2cfg.1 diff --git a/configure.ac b/configure.ac -index 40be70019..ae371a97d 100644 +index 40be70019e2..ae371a97d30 100644 --- a/configure.ac +++ b/configure.ac @@ -80,6 +80,7 @@ grub_TRANSFORM([grub-get-kernel-settings.3]) @@ -34,7 +34,7 @@ index 40be70019..ae371a97d 100644 if test "x$TARGET_CFLAGS" = x; then diff --git a/util/grub-macbless.8 b/util/grub-macbless.8 new file mode 100644 -index 000000000..ae842f3a6 +index 00000000000..ae842f3a606 --- /dev/null +++ b/util/grub-macbless.8 @@ -0,0 +1,26 @@ @@ -65,7 +65,7 @@ index 000000000..ae842f3a6 +.SH SEE ALSO +.BR "info grub" diff --git a/util/grub-mkimage.1 b/util/grub-mkimage.1 -index 4dea4f545..0eaaafe50 100644 +index 4dea4f54597..0eaaafe505b 100644 --- a/util/grub-mkimage.1 +++ b/util/grub-mkimage.1 @@ -17,7 +17,7 @@ @@ -79,7 +79,7 @@ index 4dea4f545..0eaaafe50 100644 .TP diff --git a/util/grub-syslinux2cfg.1 b/util/grub-syslinux2cfg.1 new file mode 100644 -index 000000000..853094827 +index 00000000000..85309482718 --- /dev/null +++ b/util/grub-syslinux2cfg.1 @@ -0,0 +1,65 @@ @@ -149,5 +149,5 @@ index 000000000..853094827 +.SH SEE ALSO +.BR "info grub" -- -2.14.3 +2.15.0 diff --git a/0159-Re-work-some-intricacies-of-PE-loading.patch b/0159-Re-work-some-intricacies-of-PE-loading.patch index a4c37139..8898f69e 100644 --- a/0159-Re-work-some-intricacies-of-PE-loading.patch +++ b/0159-Re-work-some-intricacies-of-PE-loading.patch @@ -1,7 +1,7 @@ -From 982d11a87ce05b6e4305b03a29945843311007d0 Mon Sep 17 00:00:00 2001 +From 4ce01aac79b9a2858e243626d1aec43c8ab39c1d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 9 Jun 2016 12:22:29 -0400 -Subject: [PATCH 159/198] Re-work some intricacies of PE loading. +Subject: [PATCH 159/206] Re-work some intricacies of PE loading. The PE spec is not a well written document, and awesomely every place where there's an ambiguous way to read something, Windows' bootmgfw.efi @@ -12,7 +12,7 @@ takes a different read than either of them. 2 files changed, 152 insertions(+), 36 deletions(-) diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c -index aee8e6bec..4b77a7d5a 100644 +index aee8e6becf6..4b77a7d5adb 100644 --- a/grub-core/loader/efi/chainloader.c +++ b/grub-core/loader/efi/chainloader.c @@ -301,7 +301,7 @@ image_is_64_bit (grub_pe_header_t *pe_hdr) @@ -293,7 +293,7 @@ index aee8e6bec..4b77a7d5a 100644 efi_call_1 (b->free_pool, buffer); diff --git a/include/grub/efi/pe32.h b/include/grub/efi/pe32.h -index 6e24dae2c..c03cc599f 100644 +index 6e24dae2cb6..c03cc599f63 100644 --- a/include/grub/efi/pe32.h +++ b/include/grub/efi/pe32.h @@ -229,12 +229,18 @@ struct grub_pe32_section_table @@ -349,5 +349,5 @@ index 6e24dae2c..c03cc599f 100644 struct grub_pe32_header -- -2.14.3 +2.15.0 diff --git a/0160-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch b/0160-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch index 89d404b9..eb147094 100644 --- a/0160-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch +++ b/0160-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch @@ -1,7 +1,7 @@ -From 91943cb164e03979132310784ad802ea9dc3bbd9 Mon Sep 17 00:00:00 2001 +From 56562c289db5c67b9705feca4e8e61200b04d48b Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 10 Jun 2016 14:06:15 -0400 -Subject: [PATCH 160/198] Rework even more of efi chainload so non-sb cases +Subject: [PATCH 160/206] Rework even more of efi chainload so non-sb cases work right. This ensures that if shim protocol is not loaded, or is loaded but shim @@ -44,14 +44,14 @@ Signed-off-by: Peter Jones --- grub-core/kern/efi/sb.c | 14 +++-- grub-core/loader/arm64/linux.c | 4 +- - grub-core/loader/efi/chainloader.c | 122 ++++++++++++++++++++++--------------- + grub-core/loader/efi/chainloader.c | 124 ++++++++++++++++++++++--------------- grub-core/loader/efi/linux.c | 13 ++-- grub-core/loader/i386/efi/linux.c | 10 ++- include/grub/efi/linux.h | 2 +- - 6 files changed, 102 insertions(+), 63 deletions(-) + 6 files changed, 103 insertions(+), 64 deletions(-) diff --git a/grub-core/kern/efi/sb.c b/grub-core/kern/efi/sb.c -index a41b6c5b8..d74778b0c 100644 +index a41b6c5b851..d74778b0cac 100644 --- a/grub-core/kern/efi/sb.c +++ b/grub-core/kern/efi/sb.c @@ -36,14 +36,20 @@ grub_efi_secure_boot (void) @@ -80,10 +80,10 @@ index a41b6c5b8..d74778b0c 100644 if (*secure_boot && !*setup_mode) ret = 1; diff --git a/grub-core/loader/arm64/linux.c b/grub-core/loader/arm64/linux.c -index 03ff83563..34f34e65a 100644 +index 33345d37534..ad39a301527 100644 --- a/grub-core/loader/arm64/linux.c +++ b/grub-core/loader/arm64/linux.c -@@ -248,6 +248,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), +@@ -247,6 +247,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), grub_file_t file = 0; struct grub_arm64_linux_kernel_header lh; struct grub_arm64_linux_pe_header *pe; @@ -91,7 +91,7 @@ index 03ff83563..34f34e65a 100644 grub_dl_ref (my_mod); -@@ -292,7 +293,8 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), +@@ -291,7 +292,8 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), grub_dprintf ("linux", "kernel @ %p\n", kernel_addr); @@ -102,7 +102,7 @@ index 03ff83563..34f34e65a 100644 grub_error (GRUB_ERR_INVALID_COMMAND, N_("%s has invalid signature"), argv[0]); goto fail; diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c -index 4b77a7d5a..b977c7b55 100644 +index 4b77a7d5adb..b977c7b5573 100644 --- a/grub-core/loader/efi/chainloader.c +++ b/grub-core/loader/efi/chainloader.c @@ -182,7 +182,6 @@ make_file_path (grub_efi_device_path_t *dp, const char *filename) @@ -143,7 +143,7 @@ index 4b77a7d5a..b977c7b55 100644 if (adjust == 0) return GRUB_EFI_SUCCESS; -@@ -514,17 +512,24 @@ handle_image (void *data, grub_efi_uint32_t datasize) +@@ -514,18 +512,25 @@ handle_image (void *data, grub_efi_uint32_t datasize) grub_uint32_t section_alignment; grub_uint32_t buffer_size; int found_entry_point = 0; @@ -152,26 +152,28 @@ index 4b77a7d5a..b977c7b55 100644 b = grub_efi_system_table->boot_services; - if (read_header (data, datasize, &context)) +- { +- grub_dprintf ("chain", "Succeed to read header\n"); +- } +- else + rc = read_header (data, datasize, &context); + if (rc < 0) { -- grub_dprintf ("chain", "Succeed to read header\n"); -+ grub_dprintf ("chain", "Failed to read header\n"); -+ goto error_exit; -+ } + grub_dprintf ("chain", "Failed to read header\n"); + goto error_exit; + } + else if (rc == 0) + { + grub_dprintf ("chain", "Secure Boot is not enabled\n"); + return 0; - } - else - { -- grub_dprintf ("chain", "Failed to read header\n"); -- goto error_exit; ++ } ++ else ++ { + grub_dprintf ("chain", "Header read without error\n"); - } ++ } /* + * The spec says, uselessly, of SectionAlignment: @@ -547,7 +552,7 @@ handle_image (void *data, grub_efi_uint32_t datasize) section_alignment = 4096; @@ -296,7 +298,10 @@ index 4b77a7d5a..b977c7b55 100644 - - goto fail; - } -- ++ grub_load_and_start_image(boot_image); ++ grub_file_close (file); ++ grub_loader_set (grub_chainloader_boot, grub_chainloader_unload, 0); + - /* LoadImage does not set a device handler when the image is - loaded from memory, so it is necessary to set it explicitly here. - This is a mess. */ @@ -307,10 +312,7 @@ index 4b77a7d5a..b977c7b55 100644 - goto fail; - } - loaded_image->device_handle = dev_handle; -+ grub_load_and_start_image(boot_image); -+ grub_file_close (file); -+ grub_loader_set (grub_chainloader_boot, grub_chainloader_unload, 0); - +- - if (cmdline) - { - loaded_image->load_options = cmdline; @@ -331,7 +333,7 @@ index 4b77a7d5a..b977c7b55 100644 grub_device_close (dev); diff --git a/grub-core/loader/efi/linux.c b/grub-core/loader/efi/linux.c -index aea378adf..8890bdf05 100644 +index aea378adf5c..8890bdf059a 100644 --- a/grub-core/loader/efi/linux.c +++ b/grub-core/loader/efi/linux.c @@ -33,21 +33,24 @@ struct grub_efi_shim_lock @@ -365,7 +367,7 @@ index aea378adf..8890bdf05 100644 typedef void (*handover_func) (void *, grub_efi_system_table_t *, void *); diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c -index 7ccf32d9d..82f75b7f3 100644 +index 7ccf32d9d45..82f75b7f3ab 100644 --- a/grub-core/loader/i386/efi/linux.c +++ b/grub-core/loader/i386/efi/linux.c @@ -155,6 +155,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), @@ -397,7 +399,7 @@ index 7ccf32d9d..82f75b7f3 100644 goto fail; } diff --git a/include/grub/efi/linux.h b/include/grub/efi/linux.h -index d9ede3677..0033d9305 100644 +index d9ede36773b..0033d9305a9 100644 --- a/include/grub/efi/linux.h +++ b/include/grub/efi/linux.h @@ -22,7 +22,7 @@ @@ -410,5 +412,5 @@ index d9ede3677..0033d9305 100644 grub_err_t EXPORT_FUNC(grub_efi_linux_boot) (void *kernel_address, grub_off_t offset, -- -2.14.3 +2.15.0 diff --git a/0161-linuxefi-fix-double-free-on-verification-failure.patch b/0161-linuxefi-fix-double-free-on-verification-failure.patch index c3ec3b29..acdcba12 100644 --- a/0161-linuxefi-fix-double-free-on-verification-failure.patch +++ b/0161-linuxefi-fix-double-free-on-verification-failure.patch @@ -1,7 +1,7 @@ -From 0e8eb89517d9621b2595f7d2b152f711309600ee Mon Sep 17 00:00:00 2001 +From 10ea5c02de8a66720847b46e98fe14e3f7d19199 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jun 2016 09:50:25 -0400 -Subject: [PATCH 161/198] linuxefi: fix double free on verification failure. +Subject: [PATCH 161/206] linuxefi: fix double free on verification failure. Signed-off-by: Peter Jones --- @@ -9,7 +9,7 @@ Signed-off-by: Peter Jones 1 file changed, 1 deletion(-) diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c -index 82f75b7f3..010bf982d 100644 +index 82f75b7f3ab..010bf982d80 100644 --- a/grub-core/loader/i386/efi/linux.c +++ b/grub-core/loader/i386/efi/linux.c @@ -191,7 +191,6 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), @@ -21,5 +21,5 @@ index 82f75b7f3..010bf982d 100644 } -- -2.14.3 +2.15.0 diff --git a/0162-fix-machine-type-test-in-30_os-prober.in.patch b/0162-fix-machine-type-test-in-30_os-prober.in.patch index 1ae6f173..7c60fd28 100644 --- a/0162-fix-machine-type-test-in-30_os-prober.in.patch +++ b/0162-fix-machine-type-test-in-30_os-prober.in.patch @@ -1,7 +1,7 @@ -From 5661d4a67e4b13da0dc375946f07a56bb577e0f4 Mon Sep 17 00:00:00 2001 +From dd66269a4bdece11f6ea1744da6b1a36b5acb663 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 11 Jul 2016 13:36:45 -0400 -Subject: [PATCH 162/198] fix machine type test in 30_os-prober.in +Subject: [PATCH 162/206] fix machine type test in 30_os-prober.in Signed-off-by: Peter Jones --- @@ -9,7 +9,7 @@ Signed-off-by: Peter Jones 1 file changed, 1 insertion(+) diff --git a/util/grub.d/30_os-prober.in b/util/grub.d/30_os-prober.in -index dc98eace9..e40274fc0 100644 +index dc98eace934..e40274fc0f4 100644 --- a/util/grub.d/30_os-prober.in +++ b/util/grub.d/30_os-prober.in @@ -144,6 +144,7 @@ for OS in ${OSPROBED} ; do @@ -21,5 +21,5 @@ index dc98eace9..e40274fc0 100644 i?86|x86_64) sixteenbit="16" -- -2.14.3 +2.15.0 diff --git a/0163-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch b/0163-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch index a96effde..ea9b51ab 100644 --- a/0163-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch +++ b/0163-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch @@ -1,7 +1,7 @@ -From a8b65c0ac1e2ddd001e8b837c798f1b135f2a522 Mon Sep 17 00:00:00 2001 +From 1543d9204f0bd32c3c06da2b55c7d531a88a0c95 Mon Sep 17 00:00:00 2001 From: Laszlo Ersek Date: Mon, 21 Nov 2016 15:34:00 +0100 -Subject: [PATCH 163/198] efi/chainloader: fix wrong sanity check in +Subject: [PATCH 163/206] efi/chainloader: fix wrong sanity check in relocate_coff() In relocate_coff(), the relocation entries are parsed from the original @@ -22,7 +22,7 @@ Tested-by: Juan Orti 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c -index b977c7b55..d5ab21d09 100644 +index b977c7b5573..d5ab21d09c3 100644 --- a/grub-core/loader/efi/chainloader.c +++ b/grub-core/loader/efi/chainloader.c @@ -401,7 +401,7 @@ relocate_coff (pe_coff_loader_image_context_t *context, @@ -35,5 +35,5 @@ index b977c7b55..d5ab21d09 100644 grub_error (GRUB_ERR_BAD_ARGUMENT, "Reloc entry %d overflows binary", n); -- -2.14.3 +2.15.0 diff --git a/0164-efi-chainloader-truncate-overlong-relocation-section.patch b/0164-efi-chainloader-truncate-overlong-relocation-section.patch index 39de070b..42185085 100644 --- a/0164-efi-chainloader-truncate-overlong-relocation-section.patch +++ b/0164-efi-chainloader-truncate-overlong-relocation-section.patch @@ -1,7 +1,7 @@ -From a503341b2bb28a86d940305fb91e3c3827e15f0f Mon Sep 17 00:00:00 2001 +From ffcf6eb1050f80efee9df9dd7e2377f7379d0f9a Mon Sep 17 00:00:00 2001 From: Laszlo Ersek Date: Wed, 23 Nov 2016 06:27:09 +0100 -Subject: [PATCH 164/198] efi/chainloader: truncate overlong relocation section +Subject: [PATCH 164/206] efi/chainloader: truncate overlong relocation section The UEFI Windows 7 boot loader ("EFI/Microsoft/Boot/bootmgfw.efi", SHA1 31b410e029bba87d2068c65a80b88882f9f8ea25) has inconsistent headers. @@ -63,7 +63,7 @@ Signed-off-by: Laszlo Ersek 1 file changed, 21 insertions(+), 5 deletions(-) diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c -index d5ab21d09..7826e794a 100644 +index d5ab21d09c3..7826e794ad9 100644 --- a/grub-core/loader/efi/chainloader.c +++ b/grub-core/loader/efi/chainloader.c @@ -596,7 +596,7 @@ handle_image (void *data, grub_efi_uint32_t datasize) @@ -109,5 +109,5 @@ index d5ab21d09..7826e794a 100644 grub_dprintf ("chain", " section is not reloc section?\n"); grub_dprintf ("chain", " rds: 0x%08x, vs: %08x\n", -- -2.14.3 +2.15.0 diff --git a/0165-linuxefi-minor-cleanups.patch b/0165-linuxefi-minor-cleanups.patch index 6795bbb1..176e32c6 100644 --- a/0165-linuxefi-minor-cleanups.patch +++ b/0165-linuxefi-minor-cleanups.patch @@ -1,7 +1,7 @@ -From 2d1e45c97ab97cc924769095521664192e8196ed Mon Sep 17 00:00:00 2001 +From 242d81d7af4fa50070cc7bd44b9f38a25248080b Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Feb 2017 16:31:52 -0500 -Subject: [PATCH 165/198] linuxefi: minor cleanups +Subject: [PATCH 165/206] linuxefi: minor cleanups Signed-off-by: Peter Jones --- @@ -9,7 +9,7 @@ Signed-off-by: Peter Jones 1 file changed, 20 insertions(+), 10 deletions(-) diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c -index 010bf982d..8b5a817b9 100644 +index 010bf982d80..8b5a817b9d1 100644 --- a/grub-core/loader/i386/efi/linux.c +++ b/grub-core/loader/i386/efi/linux.c @@ -61,13 +61,18 @@ grub_linuxefi_unload (void) @@ -85,5 +85,5 @@ index 010bf982d..8b5a817b9 100644 return grub_errno; } -- -2.14.3 +2.15.0 diff --git a/0166-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch b/0166-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch index 143c6a37..24a8ebaa 100644 --- a/0166-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch +++ b/0166-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch @@ -1,19 +1,19 @@ -From 7f34f8d670e4dccf341de5acf388cfa79c7361fd Mon Sep 17 00:00:00 2001 +From 6fe073f4eed1a287314e7581b955a39d069b5d35 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Feb 2017 16:18:54 -0500 -Subject: [PATCH 166/198] Handle multi-arch (64-on-32) boot in linuxefi loader. +Subject: [PATCH 166/206] Handle multi-arch (64-on-32) boot in linuxefi loader. Allow booting 64-bit kernels on 32-bit EFI on x86. Signed-off-by: Peter Jones --- - grub-core/loader/efi/linux.c | 9 ++- - grub-core/loader/i386/efi/linux.c | 114 +++++++++++++++++++++++++++----------- + grub-core/loader/efi/linux.c | 9 +++- + grub-core/loader/i386/efi/linux.c | 110 +++++++++++++++++++++++++++----------- include/grub/i386/linux.h | 7 ++- - 3 files changed, 95 insertions(+), 35 deletions(-) + 3 files changed, 93 insertions(+), 33 deletions(-) diff --git a/grub-core/loader/efi/linux.c b/grub-core/loader/efi/linux.c -index 8890bdf05..2a7024134 100644 +index 8890bdf059a..2a7024134da 100644 --- a/grub-core/loader/efi/linux.c +++ b/grub-core/loader/efi/linux.c @@ -56,12 +56,17 @@ grub_linuxefi_secure_validate (void *data, grub_uint32_t size) @@ -37,7 +37,7 @@ index 8890bdf05..2a7024134 100644 return GRUB_ERR_BUG; diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c -index 8b5a817b9..bed5919ca 100644 +index 8b5a817b9d1..bed5919cab3 100644 --- a/grub-core/loader/i386/efi/linux.c +++ b/grub-core/loader/i386/efi/linux.c @@ -44,14 +44,10 @@ static char *linux_cmdline; @@ -103,14 +103,12 @@ index 8b5a817b9..bed5919ca 100644 } - grub_memset (params, 0, 16384); -- -- grub_memcpy (&lh, kernel, sizeof (lh)); -- -- if (lh.boot_flag != grub_cpu_to_le16 (0xaa55)) + grub_dprintf ("linuxefi", "params = %p\n", (unsigned long) params); -+ + +- grub_memcpy (&lh, kernel, sizeof (lh)); + grub_memset (params, 0, sizeof(*params)); -+ + +- if (lh.boot_flag != grub_cpu_to_le16 (0xaa55)) + setup_header_end_offset = *((grub_uint8_t *)kernel + 0x201); + grub_dprintf ("linuxefi", "copying %d bytes from %p to %p\n", + MIN(0x202+setup_header_end_offset,sizeof (*params)) - 0x1f1, @@ -152,8 +150,6 @@ index 8b5a817b9..bed5919ca 100644 goto fail; } -- linux_cmdline = grub_efi_allocate_pages_max(0x3fffffff, -- BYTES_TO_PAGES(lh.cmdline_size + 1)); +#if defined(__x86_64__) || defined(__aarch64__) + grub_dprintf ("linuxefi", "checking lh->xloadflags\n"); + if (!(lh->xloadflags & LINUX_XLF_KERNEL_64)) @@ -172,9 +168,11 @@ index 8b5a817b9..bed5919ca 100644 + goto fail; + } +#endif - ++ + grub_dprintf ("linuxefi", "setting up cmdline\n"); -+ linux_cmdline = grub_efi_allocate_pages_max(0x3fffffff, + linux_cmdline = grub_efi_allocate_pages_max(0x3fffffff, +- BYTES_TO_PAGES(lh.cmdline_size + 1)); +- + BYTES_TO_PAGES(lh->cmdline_size + 1)); if (!linux_cmdline) { @@ -234,15 +232,15 @@ index 8b5a817b9..bed5919ca 100644 - params->type_of_loader = 0x21; + grub_dprintf ("linuxefi", "setting lh->type_of_loader\n"); + lh->type_of_loader = 0x6; - -- fail: ++ + grub_dprintf ("linuxefi", "setting lh->ext_loader_{type,ver}\n"); + params->ext_loader_type = 0; + params->ext_loader_ver = 2; + grub_dprintf("linuxefi", "kernel_mem: %p handover_offset: %08x\n", + kernel_mem, handover_offset); -+ fail: + fail: +- if (file) grub_file_close (file); @@ -256,7 +254,7 @@ index 8b5a817b9..bed5919ca 100644 if (kernel_mem && !loaded) grub_efi_free_pages ((grub_efi_physical_address_t)(grub_addr_t)kernel_mem, diff --git a/include/grub/i386/linux.h b/include/grub/i386/linux.h -index fc36bdaf3..110ecf806 100644 +index fc36bdaf367..110ecf806fb 100644 --- a/include/grub/i386/linux.h +++ b/include/grub/i386/linux.h @@ -130,7 +130,12 @@ struct linux_kernel_header @@ -274,5 +272,5 @@ index fc36bdaf3..110ecf806 100644 grub_uint32_t hardware_subarch; grub_uint64_t hardware_subarch_data; -- -2.14.3 +2.15.0 diff --git a/0167-Fix-up-linux-params-usage.patch b/0167-Fix-up-linux-params-usage.patch index 1244c531..9ea52ff9 100644 --- a/0167-Fix-up-linux-params-usage.patch +++ b/0167-Fix-up-linux-params-usage.patch @@ -1,7 +1,7 @@ -From 45a648d1dc7a63cbff180848ca6ab6e26365de11 Mon Sep 17 00:00:00 2001 +From b90a1afe2d3af828cccd291cb09b8cda2fc581dc Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 30 May 2017 14:16:07 -0400 -Subject: [PATCH 167/198] Fix up linux params usage... +Subject: [PATCH 167/206] Fix up linux params usage... Signed-off-by: Peter Jones --- @@ -9,7 +9,7 @@ Signed-off-by: Peter Jones 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/grub-core/loader/i386/linux.c b/grub-core/loader/i386/linux.c -index e4b8342f5..c9e89310b 100644 +index e4b8342f5d0..c9e89310bdd 100644 --- a/grub-core/loader/i386/linux.c +++ b/grub-core/loader/i386/linux.c @@ -680,6 +680,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), @@ -39,5 +39,5 @@ index e4b8342f5..c9e89310b 100644 linux_params.type_of_loader = GRUB_LINUX_BOOT_LOADER_TYPE; -- -2.14.3 +2.15.0 diff --git a/0168-Make-exit-take-a-return-code.patch b/0168-Make-exit-take-a-return-code.patch index c0941473..d6bbfb85 100644 --- a/0168-Make-exit-take-a-return-code.patch +++ b/0168-Make-exit-take-a-return-code.patch @@ -1,7 +1,7 @@ -From 71af399a49085b805028f1faadda16b503ce46a0 Mon Sep 17 00:00:00 2001 +From 65473fe6fe5bc08a874eb433c3da3e7181250822 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 26 Feb 2014 21:49:12 -0500 -Subject: [PATCH 168/198] Make "exit" take a return code. +Subject: [PATCH 168/206] Make "exit" take a return code. This adds "exit" with a return code. With this patch, any "exit" command /may/ include a return code, and on platforms that support @@ -15,7 +15,7 @@ Signed-off-by: Peter Jones 2 files changed, 15 insertions(+) diff --git a/grub-core/kern/emu/main.c b/grub-core/kern/emu/main.c -index 55ea5a11c..7e47ec812 100644 +index 55ea5a11ccd..7e47ec81263 100644 --- a/grub-core/kern/emu/main.c +++ b/grub-core/kern/emu/main.c @@ -72,6 +72,12 @@ grub_exit (int retval __attribute__((unused))) @@ -32,7 +32,7 @@ index 55ea5a11c..7e47ec812 100644 grub_machine_init (void) { diff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c -index 5ce89a40c..04371ac49 100644 +index 5ce89a40c68..04371ac49f2 100644 --- a/grub-core/kern/misc.c +++ b/grub-core/kern/misc.c @@ -1120,6 +1120,15 @@ grub_abort (void) @@ -52,5 +52,5 @@ index 5ce89a40c..04371ac49 100644 grub_fatal (const char *fmt, ...) { -- -2.14.3 +2.15.0 diff --git a/0169-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch b/0169-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch index 7c9568bb..6d11c9b2 100644 --- a/0169-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch +++ b/0169-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch @@ -1,7 +1,7 @@ -From 6246598c06a27ca40a6101e39fb788d1a02976d7 Mon Sep 17 00:00:00 2001 +From a90a7d236fcfa01bd09e34fdec5782c6509c6578 Mon Sep 17 00:00:00 2001 From: Mark Salter Date: Mon, 17 Apr 2017 08:44:29 -0400 -Subject: [PATCH 169/198] arm64: make sure fdt has #address-cells and +Subject: [PATCH 169/206] arm64: make sure fdt has #address-cells and #size-cells properties Recent upstream changes to kexec-tools relies on #address-cells @@ -14,7 +14,7 @@ make sure they exist. 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/grub-core/loader/arm64/linux.c b/grub-core/loader/arm64/linux.c -index 34f34e65a..530c4ba2d 100644 +index ad39a301527..59ff9cc05b4 100644 --- a/grub-core/loader/arm64/linux.c +++ b/grub-core/loader/arm64/linux.c @@ -79,7 +79,21 @@ finalize_params_linux (void) @@ -41,5 +41,5 @@ index 34f34e65a..530c4ba2d 100644 if (node < 1) goto failure; -- -2.14.3 +2.15.0 diff --git a/0170-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch b/0170-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch index eda242c7..59c2098a 100644 --- a/0170-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch +++ b/0170-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch @@ -1,7 +1,7 @@ -From c293c4a99ef27e210014b4c87f0330df40571a4c Mon Sep 17 00:00:00 2001 +From 5c94dbb64c3ffa6394be00cd185e111151fbe6f1 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 9 May 2016 14:15:17 -0400 -Subject: [PATCH 170/198] Add some grub_dprintf() in the secure boot verify +Subject: [PATCH 170/206] Add some grub_dprintf() in the secure boot verify code. Signed-off-by: Peter Jones @@ -10,7 +10,7 @@ Signed-off-by: Peter Jones 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/grub-core/loader/efi/linux.c b/grub-core/loader/efi/linux.c -index 2a7024134..7fe7201a3 100644 +index 2a7024134da..7fe7201a388 100644 --- a/grub-core/loader/efi/linux.c +++ b/grub-core/loader/efi/linux.c @@ -43,12 +43,22 @@ grub_linuxefi_secure_validate (void *data, grub_uint32_t size) @@ -40,5 +40,5 @@ index 2a7024134..7fe7201a3 100644 return -1; } -- -2.14.3 +2.15.0 diff --git a/0171-Make-our-info-pages-say-grub2-where-appropriate.patch b/0171-Make-our-info-pages-say-grub2-where-appropriate.patch index 887e7601..c2ba2483 100644 --- a/0171-Make-our-info-pages-say-grub2-where-appropriate.patch +++ b/0171-Make-our-info-pages-say-grub2-where-appropriate.patch @@ -1,7 +1,7 @@ -From 12e056f068df6a17ddee61959a3d5da409366a91 Mon Sep 17 00:00:00 2001 +From 53bdb9166fd78f0c703292529a1b674b2c5a58c7 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 6 May 2016 18:43:08 -0400 -Subject: [PATCH 171/198] Make our info pages say "grub2" where appropriate. +Subject: [PATCH 171/206] Make our info pages say "grub2" where appropriate. This needs to be hooked up to --program-transform=, but I haven't had time. @@ -13,7 +13,7 @@ Signed-off-by: Peter Jones 2 files changed, 161 insertions(+), 161 deletions(-) diff --git a/docs/grub-dev.texi b/docs/grub-dev.texi -index a9f4de631..3ce827ab7 100644 +index a9f4de6318c..3ce827ab726 100644 --- a/docs/grub-dev.texi +++ b/docs/grub-dev.texi @@ -1,7 +1,7 @@ @@ -35,7 +35,7 @@ index a9f4de631..3ce827ab7 100644 @setchapternewpage odd diff --git a/docs/grub.texi b/docs/grub.texi -index 15a90b26e..f28c4cd52 100644 +index 15a90b26e4d..f28c4cd5247 100644 --- a/docs/grub.texi +++ b/docs/grub.texi @@ -1,7 +1,7 @@ @@ -1012,5 +1012,5 @@ index 15a90b26e..f28c4cd52 100644 @table @option @item --help -- -2.14.3 +2.15.0 diff --git a/0172-print-more-debug-info-in-our-module-loader.patch b/0172-print-more-debug-info-in-our-module-loader.patch index 0b0c1fbe..9e58733d 100644 --- a/0172-print-more-debug-info-in-our-module-loader.patch +++ b/0172-print-more-debug-info-in-our-module-loader.patch @@ -1,7 +1,7 @@ -From 10d3df4413dde0edf41ba1adeba50ef62577d967 Mon Sep 17 00:00:00 2001 +From ecb06a3cb18f13882faeef81011396fac5594d71 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 1 May 2017 11:19:40 -0400 -Subject: [PATCH 172/198] print more debug info in our module loader. +Subject: [PATCH 172/206] print more debug info in our module loader. Signed-off-by: Peter Jones --- @@ -9,7 +9,7 @@ Signed-off-by: Peter Jones 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c -index 684ca93f8..1f3ac5e1d 100644 +index 684ca93f8f4..1f3ac5e1d08 100644 --- a/grub-core/kern/efi/efi.c +++ b/grub-core/kern/efi/efi.c @@ -304,13 +304,23 @@ grub_efi_modules_addr (void) @@ -40,5 +40,5 @@ index 684ca93f8..1f3ac5e1d 100644 } -- -2.14.3 +2.15.0 diff --git a/0173-macos-just-build-chainloader-entries-don-t-try-any-x.patch b/0173-macos-just-build-chainloader-entries-don-t-try-any-x.patch index 81f07964..82b5f194 100644 --- a/0173-macos-just-build-chainloader-entries-don-t-try-any-x.patch +++ b/0173-macos-just-build-chainloader-entries-don-t-try-any-x.patch @@ -1,7 +1,7 @@ -From f92f6c050e5c1bfc3146dd674dc37ac12cbb1c76 Mon Sep 17 00:00:00 2001 +From d58a3e5545c0a3245fdd9a05b6696c619d98fe84 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 24 May 2017 12:42:32 -0400 -Subject: [PATCH 173/198] macos: just build chainloader entries, don't try any +Subject: [PATCH 173/206] macos: just build chainloader entries, don't try any xnu xnu. Since our bugs tell us that the xnu boot entries really just don't work @@ -21,7 +21,7 @@ Signed-off-by: Peter Jones 1 file changed, 18 insertions(+), 60 deletions(-) diff --git a/util/grub.d/30_os-prober.in b/util/grub.d/30_os-prober.in -index e40274fc0..d979de198 100644 +index e40274fc0f4..d979de1982a 100644 --- a/util/grub.d/30_os-prober.in +++ b/util/grub.d/30_os-prober.in @@ -42,68 +42,25 @@ if [ -z "${OSPROBED}" ] ; then @@ -124,5 +124,5 @@ index e40274fc0..d979de198 100644 hurd) onstr="$(gettext_printf "(on %s)" "${DEVICE}")" -- -2.14.3 +2.15.0 diff --git a/0174-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch b/0174-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch index c825be9f..bf525079 100644 --- a/0174-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch +++ b/0174-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch @@ -1,7 +1,7 @@ -From 1a7e8fd6eaff05a32889e48e9fae6f9c80219a04 Mon Sep 17 00:00:00 2001 +From 1b996230e31c4f854c42d71a1697a063a6a06808 Mon Sep 17 00:00:00 2001 From: Jeff Mahoney Date: Wed, 18 Dec 2013 09:57:04 +0000 -Subject: [PATCH 174/198] grub2/btrfs: Add ability to boot from subvolumes +Subject: [PATCH 174/206] grub2/btrfs: Add ability to boot from subvolumes This patch adds the ability to specify a different root on a btrfs filesystem too boot from other than the default one. @@ -19,12 +19,12 @@ variable and loading the config file from the subvolume. Signed-off-by: Jeff Mahoney --- - grub-core/fs/btrfs.c | 548 +++++++++++++++++++++++++++++++++++++++++++++++++-- + grub-core/fs/btrfs.c | 552 +++++++++++++++++++++++++++++++++++++++++++++++++-- include/grub/btrfs.h | 1 + - 2 files changed, 531 insertions(+), 18 deletions(-) + 2 files changed, 533 insertions(+), 20 deletions(-) diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c -index 4849c1ceb..38facf3cb 100644 +index 4849c1ceb65..38facf3cb8b 100644 --- a/grub-core/fs/btrfs.c +++ b/grub-core/fs/btrfs.c @@ -29,6 +29,9 @@ @@ -314,40 +314,45 @@ index 4849c1ceb..38facf3cb 100644 } continue; } -@@ -1673,6 +1867,20 @@ grub_btrfs_read (grub_file_t file, char *buf, grub_size_t len) +@@ -1673,18 +1867,10 @@ grub_btrfs_read (grub_file_t file, char *buf, grub_size_t len) data->tree, file->offset, buf, len); } +-static grub_err_t +-grub_btrfs_uuid (grub_device_t device, char **uuid) +static char * +btrfs_unparse_uuid(struct grub_btrfs_data *data) -+{ + { +- struct grub_btrfs_data *data; +- +- *uuid = NULL; +- +- data = grub_btrfs_mount (device); +- if (!data) +- return grub_errno; +- +- *uuid = grub_xasprintf ("%04x%04x-%04x-%04x-%04x-%04x%04x%04x", + return grub_xasprintf ("%04x%04x-%04x-%04x-%04x-%04x%04x%04x", -+ grub_be_to_cpu16 (data->sblock.uuid[0]), -+ grub_be_to_cpu16 (data->sblock.uuid[1]), -+ grub_be_to_cpu16 (data->sblock.uuid[2]), -+ grub_be_to_cpu16 (data->sblock.uuid[3]), -+ grub_be_to_cpu16 (data->sblock.uuid[4]), -+ grub_be_to_cpu16 (data->sblock.uuid[5]), -+ grub_be_to_cpu16 (data->sblock.uuid[6]), -+ grub_be_to_cpu16 (data->sblock.uuid[7])); + grub_be_to_cpu16 (data->sblock.uuid[0]), + grub_be_to_cpu16 (data->sblock.uuid[1]), + grub_be_to_cpu16 (data->sblock.uuid[2]), +@@ -1693,6 +1879,20 @@ grub_btrfs_uuid (grub_device_t device, char **uuid) + grub_be_to_cpu16 (data->sblock.uuid[5]), + grub_be_to_cpu16 (data->sblock.uuid[6]), + grub_be_to_cpu16 (data->sblock.uuid[7])); +} + - static grub_err_t - grub_btrfs_uuid (grub_device_t device, char **uuid) - { -@@ -1684,15 +1892,7 @@ grub_btrfs_uuid (grub_device_t device, char **uuid) - if (!data) - return grub_errno; - -- *uuid = grub_xasprintf ("%04x%04x-%04x-%04x-%04x-%04x%04x%04x", -- grub_be_to_cpu16 (data->sblock.uuid[0]), -- grub_be_to_cpu16 (data->sblock.uuid[1]), -- grub_be_to_cpu16 (data->sblock.uuid[2]), -- grub_be_to_cpu16 (data->sblock.uuid[3]), -- grub_be_to_cpu16 (data->sblock.uuid[4]), -- grub_be_to_cpu16 (data->sblock.uuid[5]), -- grub_be_to_cpu16 (data->sblock.uuid[6]), -- grub_be_to_cpu16 (data->sblock.uuid[7])); ++static grub_err_t ++grub_btrfs_uuid (grub_device_t device, char **uuid) ++{ ++ struct grub_btrfs_data *data; ++ ++ *uuid = NULL; ++ ++ data = grub_btrfs_mount (device); ++ if (!data) ++ return grub_errno; ++ + *uuid = btrfs_unparse_uuid(data); grub_btrfs_unmount (data); @@ -685,7 +690,7 @@ index 4849c1ceb..38facf3cb 100644 + +// vim: si et sw=2: diff --git a/include/grub/btrfs.h b/include/grub/btrfs.h -index 9d93fb6c1..234ad9767 100644 +index 9d93fb6c182..234ad976771 100644 --- a/include/grub/btrfs.h +++ b/include/grub/btrfs.h @@ -29,6 +29,7 @@ enum @@ -697,5 +702,5 @@ index 9d93fb6c1..234ad9767 100644 }; -- -2.14.3 +2.15.0 diff --git a/0175-export-btrfs_subvol-and-btrfs_subvolid.patch b/0175-export-btrfs_subvol-and-btrfs_subvolid.patch index 6e0edd89..d6e7d470 100644 --- a/0175-export-btrfs_subvol-and-btrfs_subvolid.patch +++ b/0175-export-btrfs_subvol-and-btrfs_subvolid.patch @@ -1,7 +1,7 @@ -From e32ed89b520f2cbe6303ba78242cb1c645ab8cb6 Mon Sep 17 00:00:00 2001 +From 4d9c208da7d1bd1a88cdb814bd3fb226349aa4dc Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Wed, 18 Dec 2013 09:57:04 +0000 -Subject: [PATCH 175/198] export btrfs_subvol and btrfs_subvolid +Subject: [PATCH 175/206] export btrfs_subvol and btrfs_subvolid We should export btrfs_subvol and btrfs_subvolid to have both visible to subsidiary configuration files loaded using configfile. @@ -12,7 +12,7 @@ Signed-off-by: Michael Chang 1 file changed, 2 insertions(+) diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c -index 38facf3cb..396296166 100644 +index 38facf3cb8b..3962961666e 100644 --- a/grub-core/fs/btrfs.c +++ b/grub-core/fs/btrfs.c @@ -2273,6 +2273,8 @@ GRUB_MOD_INIT (btrfs) @@ -25,5 +25,5 @@ index 38facf3cb..396296166 100644 GRUB_MOD_FINI (btrfs) -- -2.14.3 +2.15.0 diff --git a/0176-grub2-btrfs-03-follow_default.patch b/0176-grub2-btrfs-03-follow_default.patch index dc1e498f..ee09d42c 100644 --- a/0176-grub2-btrfs-03-follow_default.patch +++ b/0176-grub2-btrfs-03-follow_default.patch @@ -1,14 +1,14 @@ -From 6c59dbc93e8757b6b79d93e3e3cd97a506778682 Mon Sep 17 00:00:00 2001 +From 9dbffec98eb6aaf3c020d32f4e50c0a478f76c4c Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 21 Aug 2014 03:39:11 +0000 -Subject: [PATCH 176/198] grub2-btrfs-03-follow_default +Subject: [PATCH 176/206] grub2-btrfs-03-follow_default --- grub-core/fs/btrfs.c | 107 ++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 76 insertions(+), 31 deletions(-) diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c -index 396296166..2c462584e 100644 +index 3962961666e..2c462584e91 100644 --- a/grub-core/fs/btrfs.c +++ b/grub-core/fs/btrfs.c @@ -920,6 +920,7 @@ grub_btrfs_mount (grub_device_t dev) @@ -195,5 +195,5 @@ index 396296166..2c462584e 100644 GRUB_MOD_FINI (btrfs) -- -2.14.3 +2.15.0 diff --git a/0177-grub2-btrfs-04-grub2-install.patch b/0177-grub2-btrfs-04-grub2-install.patch index f16a4b14..c23ce2c8 100644 --- a/0177-grub2-btrfs-04-grub2-install.patch +++ b/0177-grub2-btrfs-04-grub2-install.patch @@ -1,19 +1,19 @@ -From fab60e6bf20b1759145eab3056846dfba3610a62 Mon Sep 17 00:00:00 2001 +From 3c9245b695f3abcab701dfb4dee9a04a49a5ec8d Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 21 Aug 2014 03:39:11 +0000 -Subject: [PATCH 177/198] grub2-btrfs-04-grub2-install +Subject: [PATCH 177/206] grub2-btrfs-04-grub2-install --- grub-core/osdep/linux/getroot.c | 7 +++++++ grub-core/osdep/unix/config.c | 17 +++++++++++++++-- - include/grub/emu/config.h | 1 + util/config.c | 10 ++++++++++ util/grub-install.c | 15 +++++++++++++++ util/grub-mkrelpath.c | 6 ++++++ + include/grub/emu/config.h | 1 + 6 files changed, 54 insertions(+), 2 deletions(-) diff --git a/grub-core/osdep/linux/getroot.c b/grub-core/osdep/linux/getroot.c -index 6d9f4e5fa..5d50dd6f8 100644 +index 6d9f4e5faa2..5d50dd6f8dc 100644 --- a/grub-core/osdep/linux/getroot.c +++ b/grub-core/osdep/linux/getroot.c @@ -376,6 +376,7 @@ get_btrfs_fs_prefix (const char *mount_path) @@ -38,7 +38,7 @@ index 6d9f4e5fa..5d50dd6f8 100644 else if (!retry && grub_strcmp (entries[i].fstype, "autofs") == 0) { diff --git a/grub-core/osdep/unix/config.c b/grub-core/osdep/unix/config.c -index 65effa9f3..b637c58ef 100644 +index 65effa9f3a7..b637c58efb7 100644 --- a/grub-core/osdep/unix/config.c +++ b/grub-core/osdep/unix/config.c @@ -82,6 +82,19 @@ grub_util_load_config (struct grub_util_config *cfg) @@ -72,20 +72,8 @@ index 65effa9f3..b637c58ef 100644 argv[2] = script; argv[3] = '\0'; -diff --git a/include/grub/emu/config.h b/include/grub/emu/config.h -index 875d5896c..c9a7e5f4a 100644 ---- a/include/grub/emu/config.h -+++ b/include/grub/emu/config.h -@@ -37,6 +37,7 @@ struct grub_util_config - { - int is_cryptodisk_enabled; - char *grub_distributor; -+ int is_suse_btrfs_snapshot_enabled; - }; - - void diff --git a/util/config.c b/util/config.c -index ebcdd8f5e..f044a880a 100644 +index ebcdd8f5e22..f044a880a76 100644 --- a/util/config.c +++ b/util/config.c @@ -42,6 +42,16 @@ grub_util_parse_config (FILE *f, struct grub_util_config *cfg, int simple) @@ -106,7 +94,7 @@ index ebcdd8f5e..f044a880a 100644 sizeof ("GRUB_DISTRIBUTOR=") - 1) == 0) { diff --git a/util/grub-install.c b/util/grub-install.c -index 75e3e5ba6..036fe1822 100644 +index 75e3e5ba6f0..036fe1822e0 100644 --- a/util/grub-install.c +++ b/util/grub-install.c @@ -816,6 +816,8 @@ fill_core_services (const char *core_services) @@ -146,7 +134,7 @@ index 75e3e5ba6..036fe1822 100644 char *install_drive = NULL; diff --git a/util/grub-mkrelpath.c b/util/grub-mkrelpath.c -index 47a241a39..5db7a9a7d 100644 +index 47a241a391b..5db7a9a7d97 100644 --- a/util/grub-mkrelpath.c +++ b/util/grub-mkrelpath.c @@ -40,9 +40,12 @@ struct arguments @@ -172,6 +160,18 @@ index 47a241a39..5db7a9a7d 100644 case ARGP_KEY_ARG: if (state->arg_num == 0) arguments->pathname = xstrdup (arg); +diff --git a/include/grub/emu/config.h b/include/grub/emu/config.h +index 875d5896ce1..c9a7e5f4ade 100644 +--- a/include/grub/emu/config.h ++++ b/include/grub/emu/config.h +@@ -37,6 +37,7 @@ struct grub_util_config + { + int is_cryptodisk_enabled; + char *grub_distributor; ++ int is_suse_btrfs_snapshot_enabled; + }; + + void -- -2.14.3 +2.15.0 diff --git a/0178-grub2-btrfs-05-grub2-mkconfig.patch b/0178-grub2-btrfs-05-grub2-mkconfig.patch index 46a9ce24..2c22a0b5 100644 --- a/0178-grub2-btrfs-05-grub2-mkconfig.patch +++ b/0178-grub2-btrfs-05-grub2-mkconfig.patch @@ -1,7 +1,7 @@ -From 54f7769a22e9f82a9c894746e61d86f33d226218 Mon Sep 17 00:00:00 2001 +From 2d588223e2beb9af35ed05e57d19563f9aaf19ac Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 21 Aug 2014 03:39:11 +0000 -Subject: [PATCH 178/198] grub2-btrfs-05-grub2-mkconfig +Subject: [PATCH 178/206] grub2-btrfs-05-grub2-mkconfig --- util/grub-mkconfig.in | 3 ++- @@ -12,7 +12,7 @@ Subject: [PATCH 178/198] grub2-btrfs-05-grub2-mkconfig 5 files changed, 37 insertions(+), 2 deletions(-) diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in -index e32de5ef3..3b0bfe403 100644 +index e32de5ef361..3b0bfe40308 100644 --- a/util/grub-mkconfig.in +++ b/util/grub-mkconfig.in @@ -239,7 +239,8 @@ export GRUB_DEFAULT \ @@ -26,7 +26,7 @@ index e32de5ef3..3b0bfe403 100644 if test "x${grub_cfg}" != "x"; then rm -f "${grub_cfg}.new" diff --git a/util/grub-mkconfig_lib.in b/util/grub-mkconfig_lib.in -index 9c410eae4..2fb4f4f81 100644 +index 9c410eae493..2fb4f4f8143 100644 --- a/util/grub-mkconfig_lib.in +++ b/util/grub-mkconfig_lib.in @@ -52,7 +52,11 @@ grub_warn () @@ -42,7 +42,7 @@ index 9c410eae4..2fb4f4f81 100644 is_path_readable_by_grub () diff --git a/util/grub.d/00_header.in b/util/grub.d/00_header.in -index 858b526c9..e2a533001 100644 +index 858b526c925..e2a53300126 100644 --- a/util/grub.d/00_header.in +++ b/util/grub.d/00_header.in @@ -27,6 +27,14 @@ export TEXTDOMAINDIR="@localedir@" @@ -88,7 +88,7 @@ index 858b526c9..e2a533001 100644 +EOF +fi diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index c9bf223f2..7e78ad336 100644 +index c9bf223f273..7e78ad33636 100644 --- a/util/grub.d/10_linux.in +++ b/util/grub.d/10_linux.in @@ -56,10 +56,14 @@ fi @@ -107,7 +107,7 @@ index c9bf223f2..7e78ad336 100644 xzfs) rpool=`${grub_probe} --device ${GRUB_DEVICE} --target=fs_label 2>/dev/null || true` diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in -index 54f1ec8a2..462f8e1f8 100644 +index 54f1ec8a2fd..462f8e1f819 100644 --- a/util/grub.d/20_linux_xen.in +++ b/util/grub.d/20_linux_xen.in @@ -63,10 +63,14 @@ fi @@ -126,5 +126,5 @@ index 54f1ec8a2..462f8e1f8 100644 xzfs) rpool=`${grub_probe} --device ${GRUB_DEVICE} --target=fs_label 2>/dev/null || true` -- -2.14.3 +2.15.0 diff --git a/0179-grub2-btrfs-06-subvol-mount.patch b/0179-grub2-btrfs-06-subvol-mount.patch index ba6a364f..a0e4bc2c 100644 --- a/0179-grub2-btrfs-06-subvol-mount.patch +++ b/0179-grub2-btrfs-06-subvol-mount.patch @@ -1,17 +1,17 @@ -From a27ef49601c7c4c58dc23663df1e0c1c960481af Mon Sep 17 00:00:00 2001 +From 75976884b9382d2445e328d354dad7c78a502d16 Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Fri, 22 May 2015 11:45:25 +0000 -Subject: [PATCH 179/198] grub2-btrfs-06-subvol-mount +Subject: [PATCH 179/206] grub2-btrfs-06-subvol-mount --- grub-core/fs/btrfs.c | 195 +++++++++++++++++++++++++++++++++++++++- grub-core/osdep/linux/getroot.c | 148 +++++++++++++++++++++++++++++- - include/grub/emu/getroot.h | 5 ++ util/grub-install.c | 49 ++++++++++ + include/grub/emu/getroot.h | 5 ++ 4 files changed, 392 insertions(+), 5 deletions(-) diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c -index 2c462584e..d111147e8 100644 +index 2c462584e91..d111147e836 100644 --- a/grub-core/fs/btrfs.c +++ b/grub-core/fs/btrfs.c @@ -32,6 +32,7 @@ @@ -277,7 +277,7 @@ index 2c462584e..d111147e8 100644 grub_cmd_btrfs_list_subvols, 0, "[-p|-n] [-o var] DEVICE", diff --git a/grub-core/osdep/linux/getroot.c b/grub-core/osdep/linux/getroot.c -index 5d50dd6f8..4c5a13022 100644 +index 5d50dd6f8dc..4c5a13022dc 100644 --- a/grub-core/osdep/linux/getroot.c +++ b/grub-core/osdep/linux/getroot.c @@ -107,6 +107,14 @@ struct btrfs_ioctl_search_key @@ -459,24 +459,8 @@ index 5d50dd6f8..4c5a13022 100644 char * grub_make_system_path_relative_to_its_root_os (const char *path) { -diff --git a/include/grub/emu/getroot.h b/include/grub/emu/getroot.h -index 73fa2d34a..9c642ae3f 100644 ---- a/include/grub/emu/getroot.h -+++ b/include/grub/emu/getroot.h -@@ -53,6 +53,11 @@ char ** - grub_find_root_devices_from_mountinfo (const char *dir, char **relroot); - #endif - -+#ifdef __linux__ -+char * -+grub_util_get_btrfs_subvol (const char *path, char **mount_path); -+#endif -+ - /* Devmapper functions provided by getroot_devmapper.c. */ - void - grub_util_pull_devmapper (const char *os_dev); diff --git a/util/grub-install.c b/util/grub-install.c -index 036fe1822..cd84a72b9 100644 +index 036fe1822e0..cd84a72b97b 100644 --- a/util/grub-install.c +++ b/util/grub-install.c @@ -1534,6 +1534,55 @@ main (int argc, char *argv[]) @@ -535,6 +519,22 @@ index 036fe1822..cd84a72b9 100644 char mkimage_target[200]; const char *core_name = NULL; +diff --git a/include/grub/emu/getroot.h b/include/grub/emu/getroot.h +index 73fa2d34abb..9c642ae3fe3 100644 +--- a/include/grub/emu/getroot.h ++++ b/include/grub/emu/getroot.h +@@ -53,6 +53,11 @@ char ** + grub_find_root_devices_from_mountinfo (const char *dir, char **relroot); + #endif + ++#ifdef __linux__ ++char * ++grub_util_get_btrfs_subvol (const char *path, char **mount_path); ++#endif ++ + /* Devmapper functions provided by getroot_devmapper.c. */ + void + grub_util_pull_devmapper (const char *os_dev); -- -2.14.3 +2.15.0 diff --git a/0180-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch b/0180-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch index 6d440578..bc52fd65 100644 --- a/0180-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch +++ b/0180-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch @@ -1,7 +1,7 @@ -From 24ffe7f751ba5ca1fcaef235f104c385091af25f Mon Sep 17 00:00:00 2001 +From 01f78b61c49b62aeb5cd27f3cbc479d4177ccf7d Mon Sep 17 00:00:00 2001 From: Dusty Mabe Date: Sat, 18 Jul 2015 15:38:08 +0000 -Subject: [PATCH 180/198] No more "Bootable Snapshot" submenu in grub.cfg. +Subject: [PATCH 180/206] No more "Bootable Snapshot" submenu in grub.cfg. This breaks grubby (run on kernel upgrades) because grubby just does a search for "menuentry". @@ -10,7 +10,7 @@ does a search for "menuentry". 1 file changed, 12 deletions(-) diff --git a/util/grub.d/00_header.in b/util/grub.d/00_header.in -index e2a533001..8a16fea34 100644 +index e2a53300126..8a16fea347e 100644 --- a/util/grub.d/00_header.in +++ b/util/grub.d/00_header.in @@ -366,15 +366,3 @@ fi @@ -30,5 +30,5 @@ index e2a533001..8a16fea34 100644 -EOF -fi -- -2.14.3 +2.15.0 diff --git a/0181-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch b/0181-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch index 03ae1593..7cd45eee 100644 --- a/0181-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch +++ b/0181-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch @@ -1,7 +1,7 @@ -From 7cfb7a4b2d8c90ef6aa17c32b059eb2c5ed45b3d Mon Sep 17 00:00:00 2001 +From 47d4b57eb561b27af62427721a7e1fdef55129f0 Mon Sep 17 00:00:00 2001 From: Andrei Borzenkov Date: Tue, 21 Jun 2016 16:44:17 +0000 -Subject: [PATCH 181/198] Fallback to old subvol name scheme to support old +Subject: [PATCH 181/206] Fallback to old subvol name scheme to support old snapshot config Ref: bsc#953538 @@ -10,7 +10,7 @@ Ref: bsc#953538 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c -index d111147e8..a5c000805 100644 +index d111147e836..a5c000805a7 100644 --- a/grub-core/fs/btrfs.c +++ b/grub-core/fs/btrfs.c @@ -924,11 +924,41 @@ lookup_root_by_name(struct grub_btrfs_data *data, const char *path) @@ -57,5 +57,5 @@ index d111147e8..a5c000805 100644 if (btrfs_default_subvolid) return lookup_root_by_id(data, btrfs_default_subvolid); -- -2.14.3 +2.15.0 diff --git a/0182-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch b/0182-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch index baa00d4b..5a9e4cea 100644 --- a/0182-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch +++ b/0182-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch @@ -1,7 +1,7 @@ -From c7fb2b491daae42caa1395d724b956f6f2f892af Mon Sep 17 00:00:00 2001 +From 0155b776ecb917863e1f8d842ff39cdaf56e9131 Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 11 May 2017 08:56:57 +0000 -Subject: [PATCH 182/198] Grub not working correctly with btrfs snapshots +Subject: [PATCH 182/206] Grub not working correctly with btrfs snapshots (bsc#1026511) --- @@ -9,7 +9,7 @@ Subject: [PATCH 182/198] Grub not working correctly with btrfs snapshots 1 file changed, 238 insertions(+) diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c -index a5c000805..3cd947219 100644 +index a5c000805a7..3cd9472197c 100644 --- a/grub-core/fs/btrfs.c +++ b/grub-core/fs/btrfs.c @@ -2446,6 +2446,238 @@ out: @@ -272,5 +272,5 @@ index a5c000805..3cd947219 100644 subvol_set_env); grub_register_variable_hook ("btrfs_subvolid", subvolid_get_env, -- -2.14.3 +2.15.0 diff --git a/0183-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch b/0183-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch index 68208523..7312ce29 100644 --- a/0183-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch +++ b/0183-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch @@ -1,7 +1,7 @@ -From ac370b7bd9060c8e2aaaf91c2099ca89b8b65f14 Mon Sep 17 00:00:00 2001 +From 448e9bedfc0b3047ba0ef584c3f1ecffb986ea62 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 1 Jun 2017 09:59:56 -0400 -Subject: [PATCH 183/198] Add grub_efi_allocate_pool() and grub_efi_free_pool() +Subject: [PATCH 183/206] Add grub_efi_allocate_pool() and grub_efi_free_pool() wrappers. Signed-off-by: Peter Jones @@ -10,7 +10,7 @@ Signed-off-by: Peter Jones 1 file changed, 32 insertions(+), 4 deletions(-) diff --git a/include/grub/efi/efi.h b/include/grub/efi/efi.h -index 91e29ce66..68326d96f 100644 +index 91e29ce66f1..68326d96f5a 100644 --- a/include/grub/efi/efi.h +++ b/include/grub/efi/efi.h @@ -24,6 +24,10 @@ @@ -71,5 +71,5 @@ index 91e29ce66..68326d96f 100644 struct grub_net_card; -- -2.14.3 +2.15.0 diff --git a/0184-Use-grub_efi_.-memory-helpers-where-reasonable.patch b/0184-Use-grub_efi_.-memory-helpers-where-reasonable.patch index f25a3582..e527daad 100644 --- a/0184-Use-grub_efi_.-memory-helpers-where-reasonable.patch +++ b/0184-Use-grub_efi_.-memory-helpers-where-reasonable.patch @@ -1,7 +1,7 @@ -From 81550ebac8fea549c1bbc149688be17ce195bc08 Mon Sep 17 00:00:00 2001 +From 5d867f35242d3a4efd97bf6466309ab3172794ff Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 1 Jun 2017 10:06:38 -0400 -Subject: [PATCH 184/198] Use grub_efi_...() memory helpers where reasonable. +Subject: [PATCH 184/206] Use grub_efi_...() memory helpers where reasonable. This uses grub_efi_allocate_pool(), grub_efi_free_pool(), and grub_efi_free_pages() instead of open-coded efi_call_N() calls, so we @@ -13,7 +13,7 @@ Signed-off-by: Peter Jones 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c -index 7826e794a..d2557b38d 100644 +index 7826e794ad9..d2557b38dce 100644 --- a/grub-core/loader/efi/chainloader.c +++ b/grub-core/loader/efi/chainloader.c @@ -65,7 +65,7 @@ grub_chainloader_unload (void) @@ -105,5 +105,5 @@ index 7826e794a..d2557b38d 100644 if (cmdline) grub_free (cmdline); -- -2.14.3 +2.15.0 diff --git a/0185-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch b/0185-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch index ba5df435..a3cdcbae 100644 --- a/0185-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch +++ b/0185-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch @@ -1,7 +1,7 @@ -From ab3ef81acf4ee5cdf7a1e21db794cdb2e71c49a5 Mon Sep 17 00:00:00 2001 +From c7b270e4214ef01f84c56411b388162f40f15b59 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 1 Jun 2017 10:07:50 -0400 -Subject: [PATCH 185/198] Add PRIxGRUB_EFI_STATUS and use it. +Subject: [PATCH 185/206] Add PRIxGRUB_EFI_STATUS and use it. This avoids syntax checkers getting confused about if it's llx or lx. @@ -12,7 +12,7 @@ Signed-off-by: Peter Jones 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c -index d2557b38d..2c62faa29 100644 +index d2557b38dce..2c62faa2943 100644 --- a/grub-core/loader/efi/chainloader.c +++ b/grub-core/loader/efi/chainloader.c @@ -783,7 +783,8 @@ handle_image (void *data, grub_efi_uint32_t datasize) @@ -26,7 +26,7 @@ index d2557b38d..2c62faa29 100644 efi_status = grub_efi_free_pool (buffer); diff --git a/include/grub/efi/api.h b/include/grub/efi/api.h -index 02488ec35..ddc5ecfb0 100644 +index 02488ec35ae..ddc5ecfb03d 100644 --- a/include/grub/efi/api.h +++ b/include/grub/efi/api.h @@ -527,6 +527,14 @@ typedef grub_uint8_t grub_efi_char8_t; @@ -45,5 +45,5 @@ index 02488ec35..ddc5ecfb0 100644 #define GRUB_EFI_ERROR_CODE(value) \ ((((grub_efi_status_t) 1) << (sizeof (grub_efi_status_t) * 8 - 1)) | (value)) -- -2.14.3 +2.15.0 diff --git a/0186-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch b/0186-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch index a781cdf4..2ea63327 100644 --- a/0186-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch +++ b/0186-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch @@ -1,7 +1,7 @@ -From 8bda2ce6ce3a91a0d84b0489679522add72780ef Mon Sep 17 00:00:00 2001 +From 9430a7f210803daaef67f9dd113a4217292e42da Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:42:57 -0400 -Subject: [PATCH 186/198] Don't use dynamic sized arrays since we don't build +Subject: [PATCH 186/206] Don't use dynamic sized arrays since we don't build with -std=c99 --- @@ -9,7 +9,7 @@ Subject: [PATCH 186/198] Don't use dynamic sized arrays since we don't build 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/grub-core/net/net.c b/grub-core/net/net.c -index 4be228d95..fa3e29126 100644 +index 4be228d9576..fa3e2912643 100644 --- a/grub-core/net/net.c +++ b/grub-core/net/net.c @@ -1853,14 +1853,25 @@ grub_net_search_configfile (char *config) @@ -42,5 +42,5 @@ index 4be228d95..fa3e29126 100644 { grub_strcpy (suffix, client_uuid); -- -2.14.3 +2.15.0 diff --git a/0187-don-t-ignore-const.patch b/0187-don-t-ignore-const.patch index 070f8e93..65aa1553 100644 --- a/0187-don-t-ignore-const.patch +++ b/0187-don-t-ignore-const.patch @@ -1,14 +1,14 @@ -From 47309830cd0c84bbb565004bd06d5aef3c9c0f57 Mon Sep 17 00:00:00 2001 +From 99eebaec7e4c79bae548385de3892af23c28c6ca Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:43:22 -0400 -Subject: [PATCH 187/198] don't ignore const +Subject: [PATCH 187/206] don't ignore const --- grub-core/net/tftp.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grub-core/net/tftp.c b/grub-core/net/tftp.c -index dcd824943..f90071353 100644 +index dcd82494309..f90071353ad 100644 --- a/grub-core/net/tftp.c +++ b/grub-core/net/tftp.c @@ -307,7 +307,7 @@ static void @@ -21,5 +21,5 @@ index dcd824943..f90071353 100644 while (*src != '\0') { -- -2.14.3 +2.15.0 diff --git a/0188-don-t-use-int-for-efi-status.patch b/0188-don-t-use-int-for-efi-status.patch index 4a3514ef..9b65887c 100644 --- a/0188-don-t-use-int-for-efi-status.patch +++ b/0188-don-t-use-int-for-efi-status.patch @@ -1,14 +1,14 @@ -From 1e16b840df6b6d1cfb3429fbac8440b507ff07a6 Mon Sep 17 00:00:00 2001 +From fad5bdf5359d1f3e2ad962cc3fe0e15d26a3df6a Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:44:59 -0400 -Subject: [PATCH 188/198] don't use int for efi status +Subject: [PATCH 188/206] don't use int for efi status --- grub-core/kern/efi/efi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c -index 1f3ac5e1d..2b60a6e27 100644 +index 1f3ac5e1d08..2b60a6e27ea 100644 --- a/grub-core/kern/efi/efi.c +++ b/grub-core/kern/efi/efi.c @@ -157,7 +157,7 @@ grub_efi_get_loaded_image (grub_efi_handle_t image_handle) @@ -21,5 +21,5 @@ index 1f3ac5e1d..2b60a6e27 100644 if (retval == 0) rc = GRUB_EFI_SUCCESS; -- -2.14.3 +2.15.0 diff --git a/0189-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch b/0189-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch index 8e6aece1..001dfd9a 100644 --- a/0189-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch +++ b/0189-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch @@ -1,14 +1,14 @@ -From 9e5389a4074b38ef9d27177b40092fca515b2d2b Mon Sep 17 00:00:00 2001 +From cc0a1afb1d30df68168c48968fb13134d897d561 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:46:23 -0400 -Subject: [PATCH 189/198] make GRUB_MOD_INIT() declare its function prototypes. +Subject: [PATCH 189/206] make GRUB_MOD_INIT() declare its function prototypes. --- include/grub/dl.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/grub/dl.h b/include/grub/dl.h -index 2bca56ce0..b1ed3c333 100644 +index 2bca56ce0e8..b1ed3c33317 100644 --- a/include/grub/dl.h +++ b/include/grub/dl.h @@ -54,6 +54,7 @@ grub_mod_fini (void) @@ -28,5 +28,5 @@ index 2bca56ce0..b1ed3c333 100644 grub_##name##_fini (void) { grub_mod_fini (); } \ static void \ -- -2.14.3 +2.15.0 diff --git a/0190-Clean-up-some-errors-in-the-linuxefi-loader.patch b/0190-Clean-up-some-errors-in-the-linuxefi-loader.patch index 6a80da74..8565027e 100644 --- a/0190-Clean-up-some-errors-in-the-linuxefi-loader.patch +++ b/0190-Clean-up-some-errors-in-the-linuxefi-loader.patch @@ -1,7 +1,7 @@ -From 1351ba7ec388e9449b209c76fad61e6b9792044e Mon Sep 17 00:00:00 2001 +From 819eceb4c94e8463f4d2edb381a04bf0020d68a9 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 24 May 2017 15:58:18 -0400 -Subject: [PATCH 190/198] Clean up some errors in the linuxefi loader +Subject: [PATCH 190/206] Clean up some errors in the linuxefi loader Signed-off-by: Peter Jones --- @@ -9,7 +9,7 @@ Signed-off-by: Peter Jones 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c -index bed5919ca..6db5d0bf3 100644 +index bed5919cab3..6db5d0bf3a0 100644 --- a/grub-core/loader/i386/efi/linux.c +++ b/grub-core/loader/i386/efi/linux.c @@ -161,8 +161,8 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), @@ -65,5 +65,5 @@ index bed5919ca..6db5d0bf3 100644 linux_cmdline, BYTES_TO_PAGES(lh->cmdline_size + 1)); -- -2.14.3 +2.15.0 diff --git a/0191-editenv-handle-relative-symlinks.patch b/0191-editenv-handle-relative-symlinks.patch index fefaa390..4fd872bf 100644 --- a/0191-editenv-handle-relative-symlinks.patch +++ b/0191-editenv-handle-relative-symlinks.patch @@ -1,7 +1,7 @@ -From 9141af91bed0d27afa0f87ed6ac5965bed6f791a Mon Sep 17 00:00:00 2001 +From 4233b690a911f16f6da04cd8f3fffbe114c369b9 Mon Sep 17 00:00:00 2001 From: Jonathan Lebon Date: Mon, 14 Aug 2017 14:37:20 -0400 -Subject: [PATCH 191/198] editenv: handle relative symlinks +Subject: [PATCH 191/206] editenv: handle relative symlinks Handle symlinks with targets relative to the containing dir. This ensures that the rename operation does not depend on the cwd. @@ -14,7 +14,7 @@ Signed-off-by: Jonathan Lebon 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/util/editenv.c b/util/editenv.c -index d8d1dad6a..41bc7cb1c 100644 +index d8d1dad6ab9..41bc7cb1c9a 100644 --- a/util/editenv.c +++ b/util/editenv.c @@ -28,6 +28,7 @@ @@ -49,5 +49,5 @@ index d8d1dad6a..41bc7cb1c 100644 int rc = grub_util_rename (namenew, rename_target); -- -2.14.3 +2.15.0 diff --git a/0192-Make-libgrub.pp-depend-on-config-util.h.patch b/0192-Make-libgrub.pp-depend-on-config-util.h.patch index eb789c12..053ec0f1 100644 --- a/0192-Make-libgrub.pp-depend-on-config-util.h.patch +++ b/0192-Make-libgrub.pp-depend-on-config-util.h.patch @@ -1,7 +1,7 @@ -From 210eb8d06d2b1db324ef0e158000c4590035fea3 Mon Sep 17 00:00:00 2001 +From 8a140f441ad2b3901757ce5500d043cd45d04c23 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 23 Aug 2017 10:37:27 -0400 -Subject: [PATCH 192/198] Make libgrub.pp depend on config-util.h +Subject: [PATCH 192/206] Make libgrub.pp depend on config-util.h If you build with "make -j48" a lot, sometimes you see: @@ -31,7 +31,7 @@ Signed-off-by: Peter Jones 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Makefile.am b/Makefile.am -index 7795baeb6..c7b0e6a9c 100644 +index 7795baeb654..c7b0e6a9c46 100644 --- a/Makefile.am +++ b/Makefile.am @@ -37,7 +37,7 @@ grub_script.yy.c: grub_script.yy.h @@ -44,5 +44,5 @@ index 7795baeb6..c7b0e6a9c 100644 -D'GRUB_MOD_INIT(x)=@MARKER@x@' $^ > $@ || (rm -f $@; exit 1) CLEANFILES += libgrub.pp -- -2.14.3 +2.15.0 diff --git a/0193-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch b/0193-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch index 32320702..17b1d8df 100644 --- a/0193-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch +++ b/0193-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch @@ -1,7 +1,7 @@ -From d47f8b7d1d9bf708cfd989d20cc0fd87ba72c058 Mon Sep 17 00:00:00 2001 +From 89ed2838bec91a26f6797702e637e48737c4fb0f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 20 Apr 2017 13:29:06 -0400 -Subject: [PATCH 193/198] Don't guess /boot/efi/ as HFS+ on ppc machines in +Subject: [PATCH 193/206] Don't guess /boot/efi/ as HFS+ on ppc machines in grub-install This should never be trying this, and since we've consolidated the @@ -16,7 +16,7 @@ Signed-off-by: Peter Jones 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/util/grub-install.c b/util/grub-install.c -index cd84a72b9..48f2abc3e 100644 +index cd84a72b97b..48f2abc3ea5 100644 --- a/util/grub-install.c +++ b/util/grub-install.c @@ -1159,18 +1159,8 @@ main (int argc, char *argv[]) @@ -40,5 +40,5 @@ index cd84a72b9..48f2abc3e 100644 { free (d); -- -2.14.3 +2.15.0 diff --git a/0194-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch b/0194-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch index 5fd55b43..5a91c416 100644 --- a/0194-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch +++ b/0194-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch @@ -1,7 +1,7 @@ -From 40e6d913ad65d357a13205d3392f613ac52508c2 Mon Sep 17 00:00:00 2001 +From a39fb79b9424d5390b3940676ed441199c419048 Mon Sep 17 00:00:00 2001 From: Konrad Rzeszutek Wilk Date: Mon, 28 Aug 2017 13:51:14 -0400 -Subject: [PATCH 194/198] Fix util/grub.d/20_linux_xen.in: Add xen_boot command +Subject: [PATCH 194/206] Fix util/grub.d/20_linux_xen.in: Add xen_boot command support for aarch64 Commit d33045ce7ffcb7c1e4a60c14d5ca64b36e3c5abe introduced @@ -36,7 +36,7 @@ Signed-off-by: Konrad Rzeszutek Wilk 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in -index 462f8e1f8..9b1bd7169 100644 +index 462f8e1f819..9b1bd716965 100644 --- a/util/grub.d/20_linux_xen.in +++ b/util/grub.d/20_linux_xen.in @@ -210,13 +210,12 @@ while [ "x${xen_list}" != "x" ] ; do @@ -58,5 +58,5 @@ index 462f8e1f8..9b1bd7169 100644 while [ "x$list" != "x" ] ; do linux=`version_find_latest $list` -- -2.14.3 +2.15.0 diff --git a/0195-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch b/0195-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch index d5ac4420..c806e566 100644 --- a/0195-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch +++ b/0195-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch @@ -1,7 +1,7 @@ -From ac0fa764dfdd5e45ccda6f91c6e136e84e284c4a Mon Sep 17 00:00:00 2001 +From 940c62edc168e3b7715b04a30c0bd8a1a423c5e1 Mon Sep 17 00:00:00 2001 From: Konrad Rzeszutek Wilk Date: Mon, 28 Aug 2017 13:59:12 -0400 -Subject: [PATCH 195/198] Use grub-file to figure out whether multiboot2 should +Subject: [PATCH 195/206] Use grub-file to figure out whether multiboot2 should be used for Xen.gz The multiboot2 is much more preferable than multiboot. Especiall @@ -14,7 +14,7 @@ Signed-off-by: Konrad Rzeszutek Wilk 1 file changed, 4 insertions(+) diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in -index 9b1bd7169..fae1ffe94 100644 +index 9b1bd716965..fae1ffe9494 100644 --- a/util/grub.d/20_linux_xen.in +++ b/util/grub.d/20_linux_xen.in @@ -216,6 +216,10 @@ while [ "x${xen_list}" != "x" ] ; do @@ -29,5 +29,5 @@ index 9b1bd7169..fae1ffe94 100644 while [ "x$list" != "x" ] ; do linux=`version_find_latest $list` -- -2.14.3 +2.15.0 diff --git a/0196-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch b/0196-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch index 8a63c9c6..d032a771 100644 --- a/0196-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch +++ b/0196-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch @@ -1,7 +1,7 @@ -From b0260d2f586390b19294f5b98194c9e78a33ccad Mon Sep 17 00:00:00 2001 +From 58884ecfeb0304a0495e0f312b5f5b878ec9c94c Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 19 Oct 2017 11:29:11 -0400 -Subject: [PATCH 196/198] 20_linux_xen: load xen or multiboot{,2} modules as +Subject: [PATCH 196/206] 20_linux_xen: load xen or multiboot{,2} modules as needed. Signed-off-by: Peter Jones @@ -10,7 +10,7 @@ Signed-off-by: Peter Jones 1 file changed, 3 insertions(+) diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in -index fae1ffe94..fc53bd542 100644 +index fae1ffe9494..fc53bd54231 100644 --- a/util/grub.d/20_linux_xen.in +++ b/util/grub.d/20_linux_xen.in @@ -126,6 +126,8 @@ linux_entry () @@ -31,5 +31,5 @@ index fae1ffe94..fc53bd542 100644 EOF fi -- -2.14.3 +2.15.0 diff --git a/0197-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch b/0197-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch index 06448a56..efa1360d 100644 --- a/0197-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch +++ b/0197-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch @@ -1,7 +1,7 @@ -From 5b1b2603175923e8d1eac701308d220ac39ad8c7 Mon Sep 17 00:00:00 2001 +From 5ccff1d133f501355b03fb756f859ccde07b5e5c Mon Sep 17 00:00:00 2001 From: "David E. Box" Date: Fri, 15 Sep 2017 15:37:05 -0700 -Subject: [PATCH 197/198] tsc: Change default tsc calibration method to pmtimer +Subject: [PATCH 197/206] tsc: Change default tsc calibration method to pmtimer on EFI systems On efi systems, make pmtimer based tsc calibration the default over the @@ -15,7 +15,7 @@ Reviewed-by: Daniel Kiper 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grub-core/kern/i386/tsc.c b/grub-core/kern/i386/tsc.c -index 2e85289d8..f266eb131 100644 +index 2e85289d848..f266eb13185 100644 --- a/grub-core/kern/i386/tsc.c +++ b/grub-core/kern/i386/tsc.c @@ -68,7 +68,7 @@ grub_tsc_init (void) @@ -28,5 +28,5 @@ index 2e85289d8..f266eb131 100644 (void) (grub_tsc_calibrate_from_pmtimer () || grub_tsc_calibrate_from_pit () || calibrate_tsc_hardcode()); #else -- -2.14.3 +2.15.0 diff --git a/0198-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch b/0198-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch index dda57272..bb5fc4e5 100644 --- a/0198-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch +++ b/0198-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch @@ -1,7 +1,7 @@ -From 8df97294d653219ad03ac031c01b723ed7f6556d Mon Sep 17 00:00:00 2001 +From af98540752f32d95b565f856b15b4655b04e5cfc Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 7 Nov 2017 17:12:17 -0500 -Subject: [PATCH 198/198] Make pmtimer tsc calibration not take 51 seconds to +Subject: [PATCH 198/206] Make pmtimer tsc calibration not take 51 seconds to fail. On my laptop running at 2.4GHz, if I run a VM where tsc calibration @@ -10,7 +10,7 @@ to do so (as measured with the stopwatch on my phone), with a tsc delta of 0x1cd1c85300, or around 125 billion cycles. If instead of trying to wait for 5-200ms to show up on the pmtimer, we try -to wait for 5-200us, it decides it's broken in ~0x7998f9e TSCs, aka ~2 +to wait for 5-200us, it decides it's broken in ~0x2626aa0 TSCs, aka ~2.4 million cycles, or more or less instantly. Additionally, this reading the pmtimer was returning 0xffffffff anyway, @@ -18,55 +18,130 @@ and that's obviously an invalid return. I've added a check for that and 0 so we don't bother waiting for the test if what we're seeing is dead pins with no response at all. +If "debug" is includes "pmtimer", you will see one of the following +three outcomes. If pmtimer gives all 0 or all 1 bits, you will see: + +kern/i386/tsc_pmtimer.c:77: pmtimer: 0xffffff bad_reads: 1 +kern/i386/tsc_pmtimer.c:77: pmtimer: 0xffffff bad_reads: 2 +kern/i386/tsc_pmtimer.c:77: pmtimer: 0xffffff bad_reads: 3 +kern/i386/tsc_pmtimer.c:77: pmtimer: 0xffffff bad_reads: 4 +kern/i386/tsc_pmtimer.c:77: pmtimer: 0xffffff bad_reads: 5 +kern/i386/tsc_pmtimer.c:77: pmtimer: 0xffffff bad_reads: 6 +kern/i386/tsc_pmtimer.c:77: pmtimer: 0xffffff bad_reads: 7 +kern/i386/tsc_pmtimer.c:77: pmtimer: 0xffffff bad_reads: 8 +kern/i386/tsc_pmtimer.c:77: pmtimer: 0xffffff bad_reads: 9 +kern/i386/tsc_pmtimer.c:77: pmtimer: 0xffffff bad_reads: 10 +kern/i386/tsc_pmtimer.c:78: timer is broken; giving up. + +This outcome was tested using qemu+kvm with UEFI (OVMF) firmware and +these options: -machine pc-q35-2.10 -cpu Broadwell-noTSX + +If pmtimer gives any other bit patterns but is not actually marching +forward fast enough to use for clock calibration, you will see: + +kern/i386/tsc_pmtimer.c:121: pmtimer delta is 0x0 (1904 iterations) +kern/i386/tsc_pmtimer.c:124: tsc delta is implausible: 0x2626aa0 + +This outcome was tested using grub compiled with GRUB_PMTIMER_IGNORE_BAD_READS +defined (so as not to trip the bad read test) using qemu+kvm with UEFI +(OVMF) firmware, and these options: -machine pc-q35-2.10 -cpu Broadwell-noTSX + +If pmtimer actually works, you'll see something like: + +kern/i386/tsc_pmtimer.c:121: pmtimer delta is 0x0 (1904 iterations) +kern/i386/tsc_pmtimer.c:124: tsc delta is implausible: 0x2626aa0 + +This outcome was tested using qemu+kvm with UEFI (OVMF) firmware, and +these options: -machine pc-i440fx-2.4 -cpu Broadwell-noTSX + +I've also tested this outcome on a real Intel Xeon E3-1275v3 on an Intel +Server Board S1200V3RPS using the SDV.RP.B8 "Release" build here: +https://firmware.intel.com/sites/default/files/UEFIDevKit_S1200RP_vB8.zip + Signed-off-by: Peter Jones --- - grub-core/kern/i386/tsc_pmtimer.c | 43 ++++++++++++++++++++++++++++++--------- - 1 file changed, 33 insertions(+), 10 deletions(-) + grub-core/kern/i386/tsc_pmtimer.c | 109 +++++++++++++++++++++++++++++++------- + 1 file changed, 89 insertions(+), 20 deletions(-) diff --git a/grub-core/kern/i386/tsc_pmtimer.c b/grub-core/kern/i386/tsc_pmtimer.c -index c9c361699..609402b83 100644 +index c9c36169978..ca15c3aacd7 100644 --- a/grub-core/kern/i386/tsc_pmtimer.c +++ b/grub-core/kern/i386/tsc_pmtimer.c -@@ -38,30 +38,53 @@ grub_pmtimer_wait_count_tsc (grub_port_t pmtimer, +@@ -28,40 +28,101 @@ + #include + #include + ++/* ++ * Define GRUB_PMTIMER_IGNORE_BAD_READS if you're trying to test a timer that's ++ * present but doesn't keep time well. ++ */ ++// #define GRUB_PMTIMER_IGNORE_BAD_READS ++ + grub_uint64_t + grub_pmtimer_wait_count_tsc (grub_port_t pmtimer, + grub_uint16_t num_pm_ticks) + { + grub_uint32_t start; +- grub_uint32_t last; +- grub_uint32_t cur, end; ++ grub_uint64_t cur, end; grub_uint64_t start_tsc; grub_uint64_t end_tsc; - int num_iter = 0; +- int num_iter = 0; ++ unsigned int num_iter = 0; ++#ifndef GRUB_PMTIMER_IGNORE_BAD_READS + int bad_reads = 0; ++#endif - start = grub_inl (pmtimer) & 0xffffff; -+ start = grub_inl (pmtimer) & 0x3fff; - last = start; +- last = start; ++ /* ++ * Some timers are 24-bit and some are 32-bit, but it doesn't make much ++ * difference to us. Caring which one we have isn't really worth it since ++ * the low-order digits will give us enough data to calibrate TSC. So just ++ * mask the top-order byte off. ++ */ ++ cur = start = grub_inl (pmtimer) & 0xffffffUL; end = start + num_pm_ticks; start_tsc = grub_get_tsc (); while (1) { - cur = grub_inl (pmtimer) & 0xffffff; -+ cur = grub_inl (pmtimer); +- if (cur < last) +- cur |= 0x1000000; +- num_iter++; ++ cur &= 0xffffffffff000000ULL; ++ cur |= grub_inl (pmtimer) & 0xffffffUL; + -+ /* If we get 10 reads in a row that are obviously dead pins, there's no -+ reason to do this thousands of times. ++ end_tsc = grub_get_tsc(); ++ ++#ifndef GRUB_PMTIMER_IGNORE_BAD_READS ++ /* ++ * If we get 10 reads in a row that are obviously dead pins, there's no ++ * reason to do this thousands of times. + */ -+ if (cur == 0xffffffff || cur == 0) ++ if (cur == 0xffffffUL || cur == 0) + { + bad_reads++; -+ grub_dprintf ("pmtimer", "cur: 0x%08x bad_reads: %d\n", cur, bad_reads); ++ grub_dprintf ("pmtimer", ++ "pmtimer: 0x%"PRIxGRUB_UINT64_T" bad_reads: %d\n", ++ cur, bad_reads); ++ grub_dprintf ("pmtimer", "timer is broken; giving up.\n"); + + if (bad_reads == 10) + return 0; + } -+ else if (bad_reads) -+ bad_reads = 0; ++#endif + -+ cur &= 0x3fff; ++ if (cur < start) ++ cur += 0x1000000; + - if (cur < last) -- cur |= 0x1000000; -+ cur |= 0x4000; - num_iter++; if (cur >= end) { - end_tsc = grub_get_tsc (); -+ grub_dprintf ("pmtimer", "tsc delta is 0x%016lx\n", +- end_tsc = grub_get_tsc (); ++ grub_dprintf ("pmtimer", "pmtimer delta is 0x%"PRIxGRUB_UINT64_T"\n", ++ cur - start); ++ grub_dprintf ("pmtimer", "tsc delta is 0x%"PRIxGRUB_UINT64_T"\n", + end_tsc - start_tsc); return end_tsc - start_tsc; } @@ -74,23 +149,67 @@ index c9c361699..609402b83 100644 - 50000000 TSCs is between 5 ms (10GHz) and 200 ms (250 MHz) - if after this time we still don't have 1 ms on pmtimer, then - pmtimer is broken. -+ /* Check for broken PM timer. 5000 TSCs is between 5us (10GHz) and -+ 200us (250 MHz). If after this time we still don't have 1us on -+ pmtimer, then pmtimer is broken. ++ ++ /* ++ * Check for broken PM timer. 1ms at 10GHz should be 1E+7 TSCs; at ++ * 250MHz it should be 2.5E6. So if after 4E+7 TSCs on a 10GHz machine, ++ * we should have seen pmtimer show 4ms of change (i.e. cur =~ ++ * start+14320); on a 250MHz machine that should be 16ms (start+57280). ++ * If after this a time we still don't have 1ms on pmtimer, then pmtimer ++ * is broken. ++ * ++ * Likewise, if our code is perfectly efficient and introduces no delays ++ * whatsoever, on a 10GHz system we should see a TSC delta of 3580 in ++ * ~3580 iterations. On a 250MHz machine that should be ~900 iterations. ++ * ++ * With those factors in mind, there are two limits here. There's a hard ++ * limit here at 8x our desired pm timer delta, picked as an arbitrarily ++ * large value that's still not a lot of time to humans, because if we ++ * get that far this is either an implausibly fast machine or the pmtimer ++ * is not running. And there's another limit on 4x our 10GHz tsc delta ++ * without seeing cur converge on our target value. */ - if ((num_iter & 0xffffff) == 0 && grub_get_tsc () - start_tsc > 5000000) { - return 0; - } -+ end_tsc = grub_get_tsc(); -+ if ((num_iter & 0x3fff) == 0 && end_tsc - start_tsc > 5000) ++ if ((++num_iter > (grub_uint32_t)num_pm_ticks << 3UL) || ++ end_tsc - start_tsc > 40000000) + { -+ grub_dprintf ("pmtimer", "tsc delta is 0x%016lx\n", ++ grub_dprintf ("pmtimer", ++ "pmtimer delta is 0x%"PRIxGRUB_UINT64_T" (%u iterations)\n", ++ cur - start, num_iter); ++ grub_dprintf ("pmtimer", ++ "tsc delta is implausible: 0x%"PRIxGRUB_UINT64_T"\n", + end_tsc - start_tsc); + return 0; + } } } +@@ -74,12 +135,20 @@ grub_tsc_calibrate_from_pmtimer (void) + + fadt = grub_acpi_find_fadt (); + if (!fadt) +- return 0; ++ { ++ grub_dprintf ("pmtimer", "No FADT found; not using pmtimer.\n"); ++ return 0; ++ } + pmtimer = fadt->pmtimer; + if (!pmtimer) +- return 0; ++ { ++ grub_dprintf ("pmtimer", "FADT does not specify pmtimer; skipping.\n"); ++ return 0; ++ } + +- /* It's 3.579545 MHz clock. Wait 1 ms. */ ++ /* ++ * It's 3.579545 MHz clock. Wait 1 ms. ++ */ + tsc_diff = grub_pmtimer_wait_count_tsc (pmtimer, 3580); + if (tsc_diff == 0) + return 0; -- -2.14.3 +2.15.0 diff --git a/0199-align-struct-efi_variable-better.patch b/0199-align-struct-efi_variable-better.patch new file mode 100644 index 00000000..3cea0b8d --- /dev/null +++ b/0199-align-struct-efi_variable-better.patch @@ -0,0 +1,36 @@ +From c4369d658d7a0f372e7378e119f7a16dc7d93624 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Tue, 27 Feb 2018 13:55:35 -0500 +Subject: [PATCH 199/206] align struct efi_variable better... + +--- + include/grub/efiemu/runtime.h | 2 +- + include/grub/types.h | 1 + + 2 files changed, 2 insertions(+), 1 deletion(-) + +diff --git a/include/grub/efiemu/runtime.h b/include/grub/efiemu/runtime.h +index 9b6b729f4cc..856774a7c34 100644 +--- a/include/grub/efiemu/runtime.h ++++ b/include/grub/efiemu/runtime.h +@@ -33,5 +33,5 @@ struct efi_variable + grub_uint32_t namelen; + grub_uint32_t size; + grub_efi_uint32_t attributes; +-} GRUB_PACKED; ++} GRUB_PACKED GRUB_ALIGNED(8); + #endif /* ! GRUB_EFI_EMU_RUNTIME_HEADER */ +diff --git a/include/grub/types.h b/include/grub/types.h +index b93e4820194..f6a9723971d 100644 +--- a/include/grub/types.h ++++ b/include/grub/types.h +@@ -29,6 +29,7 @@ + #else + #define GRUB_PACKED __attribute__ ((packed)) + #endif ++#define GRUB_ALIGNED(x) __attribute__((aligned (x))) + + #ifdef GRUB_BUILD + # define GRUB_CPU_SIZEOF_VOID_P BUILD_SIZEOF_VOID_P +-- +2.15.0 + diff --git a/0200-Add-quicksort-implementation.patch b/0200-Add-quicksort-implementation.patch new file mode 100644 index 00000000..0b41fac5 --- /dev/null +++ b/0200-Add-quicksort-implementation.patch @@ -0,0 +1,325 @@ +From 99be2c048e5cc307cc4daa03a7916cc794b1bcc4 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Fri, 9 Dec 2016 15:39:47 -0500 +Subject: [PATCH 200/206] Add quicksort implementation + +This will be used to sort the boot menu entries that are read from +the BootLoaderSpec config files. +--- + grub-core/kern/qsort.c | 279 +++++++++++++++++++++++++++++++++++++++++++++++++ + include/grub/misc.h | 15 +++ + 2 files changed, 294 insertions(+) + create mode 100644 grub-core/kern/qsort.c + +diff --git a/grub-core/kern/qsort.c b/grub-core/kern/qsort.c +new file mode 100644 +index 00000000000..7f3fc9ffdae +--- /dev/null ++++ b/grub-core/kern/qsort.c +@@ -0,0 +1,279 @@ ++/* quicksort ++ * This file from the GNU C Library. ++ * Copyright (C) 1991-2016 Free Software Foundation, Inc. ++ * Written by Douglas C. Schmidt (schmidt@ics.uci.edu). ++ * ++ * GRUB -- GRand Unified Bootloader ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++/* If you consider tuning this algorithm, you should consult first: ++ Engineering a sort function; Jon Bentley and M. Douglas McIlroy; ++ Software - Practice and Experience; Vol. 23 (11), 1249-1265, 1993. */ ++ ++#include ++#include ++#include ++ ++#define CHAR_BIT 8 ++ ++/* Byte-wise swap two items of size SIZE. */ ++#define SWAP(a, b, size) \ ++ do \ ++ { \ ++ grub_size_t __size = (size); \ ++ char *__a = (a), *__b = (b); \ ++ do \ ++ { \ ++ char __tmp = *__a; \ ++ *__a++ = *__b; \ ++ *__b++ = __tmp; \ ++ } while (--__size > 0); \ ++ } while (0) ++ ++/* Discontinue quicksort algorithm when partition gets below this size. ++ This particular magic number was chosen to work best on a Sun 4/260. */ ++#define MAX_THRESH 4 ++ ++/* Stack node declarations used to store unfulfilled partition obligations. */ ++typedef struct ++ { ++ char *lo; ++ char *hi; ++ } stack_node; ++ ++/* The next 4 #defines implement a very fast in-line stack abstraction. */ ++/* The stack needs log (total_elements) entries (we could even subtract ++ log(MAX_THRESH)). Since total_elements has type grub_size_t, we get as ++ upper bound for log (total_elements): ++ bits per byte (CHAR_BIT) * sizeof(grub_size_t). */ ++#define STACK_SIZE (CHAR_BIT * sizeof(grub_size_t)) ++#define PUSH(low, high) ((void) ((top->lo = (low)), (top->hi = (high)), ++top)) ++#define POP(low, high) ((void) (--top, (low = top->lo), (high = top->hi))) ++#define STACK_NOT_EMPTY (stack < top) ++ ++ ++/* Order size using quicksort. This implementation incorporates ++ four optimizations discussed in Sedgewick: ++ ++ 1. Non-recursive, using an explicit stack of pointer that store the ++ next array partition to sort. To save time, this maximum amount ++ of space required to store an array of SIZE_MAX is allocated on the ++ stack. Assuming a 32-bit (64 bit) integer for grub_size_t, this needs ++ only 32 * sizeof(stack_node) == 256 bytes (for 64 bit: 1024 bytes). ++ Pretty cheap, actually. ++ ++ 2. Chose the pivot element using a median-of-three decision tree. ++ This reduces the probability of selecting a bad pivot value and ++ eliminates certain extraneous comparisons. ++ ++ 3. Only quicksorts TOTAL_ELEMS / MAX_THRESH partitions, leaving ++ insertion sort to order the MAX_THRESH items within each partition. ++ This is a big win, since insertion sort is faster for small, mostly ++ sorted array segments. ++ ++ 4. The larger of the two sub-partitions is always pushed onto the ++ stack first, with the algorithm then concentrating on the ++ smaller partition. This *guarantees* no more than log (total_elems) ++ stack size is needed (actually O(1) in this case)! */ ++ ++void ++grub_qsort (void *const pbase, grub_size_t total_elems, grub_size_t size, ++ grub_compar_d_fn_t cmp, void *arg) ++{ ++ char *base_ptr = (char *) pbase; ++ ++ const grub_size_t max_thresh = MAX_THRESH * size; ++ ++ if (total_elems == 0) ++ /* Avoid lossage with unsigned arithmetic below. */ ++ return; ++ ++ if (total_elems > MAX_THRESH) ++ { ++ char *lo = base_ptr; ++ char *hi = &lo[size * (total_elems - 1)]; ++ stack_node stack[STACK_SIZE]; ++ stack_node *top = stack; ++ ++ PUSH (NULL, NULL); ++ ++ while (STACK_NOT_EMPTY) ++ { ++ char *left_ptr; ++ char *right_ptr; ++ ++ /* Select median value from among LO, MID, and HI. Rearrange ++ LO and HI so the three values are sorted. This lowers the ++ probability of picking a pathological pivot value and ++ skips a comparison for both the LEFT_PTR and RIGHT_PTR in ++ the while loops. */ ++ ++ char *mid = lo + size * ((hi - lo) / size >> 1); ++ ++ if ((*cmp) ((void *) mid, (void *) lo, arg) < 0) ++ SWAP (mid, lo, size); ++ if ((*cmp) ((void *) hi, (void *) mid, arg) < 0) ++ SWAP (mid, hi, size); ++ else ++ goto jump_over; ++ if ((*cmp) ((void *) mid, (void *) lo, arg) < 0) ++ SWAP (mid, lo, size); ++ jump_over:; ++ ++ left_ptr = lo + size; ++ right_ptr = hi - size; ++ ++ /* Here's the famous ``collapse the walls'' section of quicksort. ++ Gotta like those tight inner loops! They are the main reason ++ that this algorithm runs much faster than others. */ ++ do ++ { ++ while ((*cmp) ((void *) left_ptr, (void *) mid, arg) < 0) ++ left_ptr += size; ++ ++ while ((*cmp) ((void *) mid, (void *) right_ptr, arg) < 0) ++ right_ptr -= size; ++ ++ if (left_ptr < right_ptr) ++ { ++ SWAP (left_ptr, right_ptr, size); ++ if (mid == left_ptr) ++ mid = right_ptr; ++ else if (mid == right_ptr) ++ mid = left_ptr; ++ left_ptr += size; ++ right_ptr -= size; ++ } ++ else if (left_ptr == right_ptr) ++ { ++ left_ptr += size; ++ right_ptr -= size; ++ break; ++ } ++ } ++ while (left_ptr <= right_ptr); ++ ++ /* Set up pointers for next iteration. First determine whether ++ left and right partitions are below the threshold size. If so, ++ ignore one or both. Otherwise, push the larger partition's ++ bounds on the stack and continue sorting the smaller one. */ ++ ++ if ((grub_size_t) (right_ptr - lo) <= max_thresh) ++ { ++ if ((grub_size_t) (hi - left_ptr) <= max_thresh) ++ /* Ignore both small partitions. */ ++ POP (lo, hi); ++ else ++ /* Ignore small left partition. */ ++ lo = left_ptr; ++ } ++ else if ((grub_size_t) (hi - left_ptr) <= max_thresh) ++ /* Ignore small right partition. */ ++ hi = right_ptr; ++ else if ((right_ptr - lo) > (hi - left_ptr)) ++ { ++ /* Push larger left partition indices. */ ++ PUSH (lo, right_ptr); ++ lo = left_ptr; ++ } ++ else ++ { ++ /* Push larger right partition indices. */ ++ PUSH (left_ptr, hi); ++ hi = right_ptr; ++ } ++ } ++ } ++ ++ /* Once the BASE_PTR array is partially sorted by quicksort the rest ++ is completely sorted using insertion sort, since this is efficient ++ for partitions below MAX_THRESH size. BASE_PTR points to the beginning ++ of the array to sort, and END_PTR points at the very last element in ++ the array (*not* one beyond it!). */ ++ ++#define min(x, y) ((x) < (y) ? (x) : (y)) ++ ++ { ++ char *const end_ptr = &base_ptr[size * (total_elems - 1)]; ++ char *tmp_ptr = base_ptr; ++ char *thresh = min(end_ptr, base_ptr + max_thresh); ++ char *run_ptr; ++ ++ /* Find smallest element in first threshold and place it at the ++ array's beginning. This is the smallest array element, ++ and the operation speeds up insertion sort's inner loop. */ ++ ++ for (run_ptr = tmp_ptr + size; run_ptr <= thresh; run_ptr += size) ++ if ((*cmp) ((void *) run_ptr, (void *) tmp_ptr, arg) < 0) ++ tmp_ptr = run_ptr; ++ ++ if (tmp_ptr != base_ptr) ++ SWAP (tmp_ptr, base_ptr, size); ++ ++ /* Insertion sort, running from left-hand-side up to right-hand-side. */ ++ ++ run_ptr = base_ptr + size; ++ while ((run_ptr += size) <= end_ptr) ++ { ++ tmp_ptr = run_ptr - size; ++ while ((*cmp) ((void *) run_ptr, (void *) tmp_ptr, arg) < 0) ++ tmp_ptr -= size; ++ ++ tmp_ptr += size; ++ if (tmp_ptr != run_ptr) ++ { ++ char *trav; ++ ++ trav = run_ptr + size; ++ while (--trav >= run_ptr) ++ { ++ char c = *trav; ++ char *hi, *lo; ++ ++ for (hi = lo = trav; (lo -= size) >= tmp_ptr; hi = lo) ++ *hi = *lo; ++ *hi = c; ++ } ++ } ++ } ++ } ++} ++ ++void * ++grub_bsearch (const void *key, const void *base, grub_size_t nmemb, grub_size_t size, ++ grub_compar_d_fn_t compar, void *state) ++{ ++ grub_size_t l, u, idx; ++ const void *p; ++ int comparison; ++ ++ l = 0; ++ u = nmemb; ++ while (l < u) ++ { ++ idx = (l + u) / 2; ++ p = (void *) (((const char *) base) + (idx * size)); ++ comparison = (*compar) (key, p, state); ++ if (comparison < 0) ++ u = idx; ++ else if (comparison > 0) ++ l = idx + 1; ++ else ++ return (void *) p; ++ } ++ ++ return NULL; ++} +diff --git a/include/grub/misc.h b/include/grub/misc.h +index 4737da1eaa9..3d55bafd64e 100644 +--- a/include/grub/misc.h ++++ b/include/grub/misc.h +@@ -506,4 +506,19 @@ void EXPORT_FUNC(grub_real_boot_time) (const char *file, + #define grub_max(a, b) (((a) > (b)) ? (a) : (b)) + #define grub_min(a, b) (((a) < (b)) ? (a) : (b)) + ++typedef int (*grub_compar_d_fn_t) (const void *p0, const void *p1, void *state); ++ ++void *EXPORT_FUNC(grub_bsearch) (const void *key, ++ const void *base, ++ grub_size_t nmemb, ++ grub_size_t size, ++ grub_compar_d_fn_t compar, ++ void *state); ++ ++void EXPORT_FUNC(grub_qsort) (void *const pbase, ++ grub_size_t total_elems, ++ grub_size_t size, ++ grub_compar_d_fn_t cmp, ++ void *state); ++ + #endif /* ! GRUB_MISC_HEADER */ +-- +2.15.0 + diff --git a/0201-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch b/0201-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch new file mode 100644 index 00000000..54f488bc --- /dev/null +++ b/0201-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch @@ -0,0 +1,1140 @@ +From ae50bd922b174a6cbb513a4cd703a4f8a94aeddb Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Fri, 9 Dec 2016 15:40:58 -0500 +Subject: [PATCH 201/206] Add blscfg command support to parse BootLoaderSpec + config fragments + +The BootLoaderSpec (BLS) defines a scheme where different bootloaders can +share a format for boot items and a configuration directory that accepts +these common configurations as drop-in files. + +GRUB2 already has a blscfg modle that can parse the config snippets using +the bls_import command, change it to blscfg and improve the BLS support. +--- + grub-core/Makefile.core.def | 4 +- + grub-core/commands/blscfg.c | 786 ++++++++++++++++++++++++++++++++++++++++--- + grub-core/commands/loadenv.c | 77 +---- + grub-core/commands/loadenv.h | 93 +++++ + include/grub/compiler.h | 2 + + 5 files changed, 830 insertions(+), 132 deletions(-) + create mode 100644 grub-core/commands/loadenv.h + +diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def +index 3a5d450f3d0..0ca0bdad412 100644 +--- a/grub-core/Makefile.core.def ++++ b/grub-core/Makefile.core.def +@@ -129,6 +129,7 @@ kernel = { + common = kern/rescue_parser.c; + common = kern/rescue_reader.c; + common = kern/term.c; ++ common = kern/qsort.c; + + noemu = kern/compiler-rt.c; + noemu = kern/mm.c; +@@ -775,8 +776,7 @@ module = { + module = { + name = blscfg; + common = commands/blscfg.c; +- enable = i386_efi; +- enable = x86_64_efi; ++ enable = efi; + enable = i386_pc; + }; + +diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c +index 4274aca5a9d..87e7d9a4c64 100644 +--- a/grub-core/commands/blscfg.c ++++ b/grub-core/commands/blscfg.c +@@ -30,32 +30,405 @@ + #include + #include + #include ++#include + + GRUB_MOD_LICENSE ("GPLv3+"); + ++#include "loadenv.h" ++ ++#define GRUB_BLS_CONFIG_PATH "/loader/entries/" ++#define GRUB_BOOT_DEVICE "($root)" + #ifdef GRUB_MACHINE_EFI + #define GRUB_LINUX_CMD "linuxefi" + #define GRUB_INITRD_CMD "initrdefi" +-#define GRUB_BLS_CONFIG_PATH "/EFI/fedora/loader/entries/" +-#define GRUB_BOOT_DEVICE "($boot)" + #else + #define GRUB_LINUX_CMD "linux" + #define GRUB_INITRD_CMD "initrd" +-#define GRUB_BLS_CONFIG_PATH "/loader/entries/" +-#define GRUB_BOOT_DEVICE "($root)" + #endif + +-static int parse_entry ( ++#define grub_free(x) ({grub_dprintf("blscfg", "%s freeing %p\n", __func__, x); grub_free(x); }) ++ ++struct keyval ++{ ++ const char *key; ++ char *val; ++}; ++ ++struct bls_entry ++{ ++ struct keyval **keyvals; ++ int nkeyvals; ++}; ++ ++static struct bls_entry **entries; ++static int nentries; ++ ++static struct bls_entry *bls_new_entry(void) ++{ ++ struct bls_entry **new_entries; ++ struct bls_entry *entry; ++ int new_n = nentries + 1; ++ ++ new_entries = grub_realloc (entries, new_n * sizeof (struct bls_entry *)); ++ if (!new_entries) ++ { ++ grub_error (GRUB_ERR_OUT_OF_MEMORY, ++ "couldn't find space for BLS entry list"); ++ return NULL; ++ } ++ ++ entries = new_entries; ++ ++ entry = grub_malloc (sizeof (*entry)); ++ if (!entry) ++ { ++ grub_error (GRUB_ERR_OUT_OF_MEMORY, ++ "couldn't find space for BLS entry list"); ++ return NULL; ++ } ++ ++ grub_memset (entry, 0, sizeof (*entry)); ++ entries[nentries] = entry; ++ ++ nentries = new_n; ++ ++ return entry; ++} ++ ++static int bls_add_keyval(struct bls_entry *entry, char *key, char *val) ++{ ++ char *k, *v; ++ struct keyval **kvs, *kv; ++ int new_n = entry->nkeyvals + 1; ++ ++ kvs = grub_realloc (entry->keyvals, new_n * sizeof (struct keyval *)); ++ if (!kvs) ++ return grub_error (GRUB_ERR_OUT_OF_MEMORY, ++ "couldn't find space for BLS entry"); ++ entry->keyvals = kvs; ++ ++ kv = grub_malloc (sizeof (struct keyval)); ++ if (!kv) ++ return grub_error (GRUB_ERR_OUT_OF_MEMORY, ++ "couldn't find space for BLS entry"); ++ ++ k = grub_strdup (key); ++ if (!k) ++ { ++ grub_free (kv); ++ return grub_error (GRUB_ERR_OUT_OF_MEMORY, ++ "couldn't find space for BLS entry"); ++ } ++ ++ v = grub_strdup (val); ++ if (!v) ++ { ++ grub_free (k); ++ grub_free (kv); ++ return grub_error (GRUB_ERR_OUT_OF_MEMORY, ++ "couldn't find space for BLS entry"); ++ } ++ ++ kv->key = k; ++ kv->val = v; ++ ++ entry->keyvals[entry->nkeyvals] = kv; ++ grub_dprintf("blscfg", "new keyval at %p:%p:%p\n", entry->keyvals[entry->nkeyvals], k, v); ++ entry->nkeyvals = new_n; ++ ++ return 0; ++} ++ ++static void bls_free_entry(struct bls_entry *entry) ++{ ++ int i; ++ ++ grub_dprintf("blscfg", "%s got here\n", __func__); ++ for (i = 0; i < entry->nkeyvals; i++) ++ { ++ struct keyval *kv = entry->keyvals[i]; ++ grub_free ((void *)kv->key); ++ grub_free (kv->val); ++ grub_free (kv); ++ } ++ ++ grub_free (entry->keyvals); ++ grub_memset (entry, 0, sizeof (*entry)); ++ grub_free (entry); ++} ++ ++static int keyval_cmp (const void *p0, const void *p1, ++ void *state UNUSED) ++{ ++ const struct keyval *kv0 = *(struct keyval * const *)p0; ++ const struct keyval *kv1 = *(struct keyval * const *)p1; ++ int rc; ++ ++ rc = grub_strcmp(kv0->key, kv1->key); ++ ++ return rc; ++} ++ ++/* Find they value of the key named by keyname. If there are allowed to be ++ * more than one, pass a pointer to an int set to -1 the first time, and pass ++ * the same pointer through each time after, and it'll return them in sorted ++ * order. */ ++static char *bls_get_val(struct bls_entry *entry, const char *keyname, int *last) ++{ ++ char *foo = (char *)""; ++ struct keyval *kv = NULL, **kvp, key = {keyname, foo}, *keyp = &key; ++ ++ /* if we've already found an entry that matches, just iterate */ ++ if (last && *last >= 0) ++ { ++ int next = ++last[0]; ++ ++ if (next == entry->nkeyvals) ++ { ++done: ++ *last = -1; ++ return NULL; ++ } ++ ++ kv = entry->keyvals[next]; ++ if (grub_strcmp (keyname, kv->key)) ++ goto done; ++ ++ return kv->val; ++ } ++ ++ kvp = grub_bsearch(&keyp, &entry->keyvals[0], entry->nkeyvals, ++ sizeof (struct keyval *), keyval_cmp, NULL); ++ if (kvp) ++ kv = *kvp; ++ ++ if (kv) ++ { ++ /* if we've got uninitialized but present state, track back until we find ++ * the first match */ ++ if (last) ++ { ++ grub_dprintf("blscfg", "%s trying to find another entry because last was set\n", __func__); ++ /* figure out the position of this entry in the array */ ++ int idx; ++ for (idx = 0 ; idx < entry->nkeyvals; idx++) ++ if (entry->keyvals[idx] == kv) ++ break; ++ *last = idx; ++ ++ while (idx > 0) ++ { ++ struct keyval *kvtmp = entry->keyvals[idx-1]; ++ if (idx == 0 || grub_strcmp (keyname, kvtmp->key)) ++ { ++ /* if we're at the start, or if the previous entry doesn't ++ * match, then we're done */ ++ *last = idx; ++ break; ++ } ++ else ++ /* but if it does match, keep going backwards */ ++ idx--; ++ } ++ } ++ ++ return kv->val; ++ } ++ return NULL; ++} ++ ++#define goto_return(x) ({ ret = (x); goto finish; }) ++ ++/* compare alpha and numeric segments of two versions */ ++/* return 1: a is newer than b */ ++/* 0: a and b are the same version */ ++/* -1: b is newer than a */ ++static int vercmp(const char * a, const char * b) ++{ ++ char oldch1, oldch2; ++ char *abuf, *bbuf; ++ char *str1, *str2; ++ char * one, * two; ++ int rc; ++ int isnum; ++ int ret = 0; ++ ++ grub_dprintf("blscfg", "%s got here\n", __func__); ++ if (!grub_strcmp(a, b)) ++ return 0; ++ ++ abuf = grub_malloc(grub_strlen(a) + 1); ++ bbuf = grub_malloc(grub_strlen(b) + 1); ++ str1 = abuf; ++ str2 = bbuf; ++ grub_strcpy(str1, a); ++ grub_strcpy(str2, b); ++ ++ one = str1; ++ two = str2; ++ ++ /* loop through each version segment of str1 and str2 and compare them */ ++ while (*one || *two) { ++ while (*one && !grub_isalnum(*one) && *one != '~') one++; ++ while (*two && !grub_isalnum(*two) && *two != '~') two++; ++ ++ /* handle the tilde separator, it sorts before everything else */ ++ if (*one == '~' || *two == '~') { ++ if (*one != '~') goto_return (1); ++ if (*two != '~') goto_return (-1); ++ one++; ++ two++; ++ continue; ++ } ++ ++ /* If we ran to the end of either, we are finished with the loop */ ++ if (!(*one && *two)) break; ++ ++ str1 = one; ++ str2 = two; ++ ++ /* grab first completely alpha or completely numeric segment */ ++ /* leave one and two pointing to the start of the alpha or numeric */ ++ /* segment and walk str1 and str2 to end of segment */ ++ if (grub_isdigit(*str1)) { ++ while (*str1 && grub_isdigit(*str1)) str1++; ++ while (*str2 && grub_isdigit(*str2)) str2++; ++ isnum = 1; ++ } else { ++ while (*str1 && grub_isalpha(*str1)) str1++; ++ while (*str2 && grub_isalpha(*str2)) str2++; ++ isnum = 0; ++ } ++ ++ /* save character at the end of the alpha or numeric segment */ ++ /* so that they can be restored after the comparison */ ++ oldch1 = *str1; ++ *str1 = '\0'; ++ oldch2 = *str2; ++ *str2 = '\0'; ++ ++ /* this cannot happen, as we previously tested to make sure that */ ++ /* the first string has a non-null segment */ ++ if (one == str1) goto_return(-1); /* arbitrary */ ++ ++ /* take care of the case where the two version segments are */ ++ /* different types: one numeric, the other alpha (i.e. empty) */ ++ /* numeric segments are always newer than alpha segments */ ++ /* XXX See patch #60884 (and details) from bugzilla #50977. */ ++ if (two == str2) goto_return (isnum ? 1 : -1); ++ ++ if (isnum) { ++ grub_size_t onelen, twolen; ++ /* this used to be done by converting the digit segments */ ++ /* to ints using atoi() - it's changed because long */ ++ /* digit segments can overflow an int - this should fix that. */ ++ ++ /* throw away any leading zeros - it's a number, right? */ ++ while (*one == '0') one++; ++ while (*two == '0') two++; ++ ++ /* whichever number has more digits wins */ ++ onelen = grub_strlen(one); ++ twolen = grub_strlen(two); ++ if (onelen > twolen) goto_return (1); ++ if (twolen > onelen) goto_return (-1); ++ } ++ ++ /* grub_strcmp will return which one is greater - even if the two */ ++ /* segments are alpha or if they are numeric. don't return */ ++ /* if they are equal because there might be more segments to */ ++ /* compare */ ++ rc = grub_strcmp(one, two); ++ if (rc) goto_return (rc < 1 ? -1 : 1); ++ ++ /* restore character that was replaced by null above */ ++ *str1 = oldch1; ++ one = str1; ++ *str2 = oldch2; ++ two = str2; ++ } ++ ++ /* this catches the case where all numeric and alpha segments have */ ++ /* compared identically but the segment sepparating characters were */ ++ /* different */ ++ if ((!*one) && (!*two)) goto_return (0); ++ ++ /* whichever version still has characters left over wins */ ++ if (!*one) goto_return (-1); else goto_return (1); ++ ++finish: ++ grub_free (abuf); ++ grub_free (bbuf); ++ return ret; ++} ++ ++typedef int (*void_cmp_t)(void *, void *); ++ ++static int nulcmp(char *s0, char *s1, void_cmp_t cmp) ++{ ++ grub_dprintf("blscfg", "%s got here\n", __func__); ++ if (s1 && !s0) ++ return 1; ++ if (s0 && !s1) ++ return -1; ++ if (!s0 && !s1) ++ return 0; ++ if (cmp) ++ return cmp(s0, s1); ++ return grub_strcmp(s0, s1); ++} ++ ++static int ++bls_keyval_cmp(struct bls_entry *e0, struct bls_entry *e1, const char *keyname) ++{ ++ char *val0, *val1; ++ ++ val0 = bls_get_val (e0, keyname, NULL); ++ val1 = bls_get_val (e1, keyname, NULL); ++ ++ if (val1 && !val0) ++ return 1; ++ ++ if (val0 && !val1) ++ return -1; ++ ++ if (!val0 && !val1) ++ return 0; ++ ++ return nulcmp(val0, val1, (void_cmp_t)vercmp); ++} ++ ++static int bls_cmp(const void *p0, const void *p1, void *state UNUSED) ++{ ++ struct bls_entry * e0 = *(struct bls_entry **)p0; ++ struct bls_entry * e1 = *(struct bls_entry **)p1; ++ int rc = 0; ++ ++ rc = bls_keyval_cmp (e0, e1, "id"); ++ ++ if (rc == 0) ++ rc = bls_keyval_cmp (e0, e1, "title"); ++ ++ if (rc == 0) ++ rc = bls_keyval_cmp (e0, e1, "linux"); ++ ++ return rc; ++} ++ ++static int read_entry ( + const char *filename, +- const struct grub_dirhook_info *info __attribute__ ((unused)), +- void *data __attribute__ ((unused))) ++ const struct grub_dirhook_info *info UNUSED, ++ void *data) + { + grub_size_t n; + char *p; + grub_file_t f = NULL; + grub_off_t sz; +- char *title = NULL, *options = NULL, *clinux = NULL, *initrd = NULL, *src = NULL; +- const char *args[2] = { NULL, NULL }; ++ struct bls_entry *entry; ++ const char *dirname= (const char *)data; ++ const char *devid = grub_env_get ("boot"); ++ ++ grub_dprintf ("blscfg", "filename: \"%s\"\n", filename); + + if (filename[0] == '.') + return 0; +@@ -67,7 +440,7 @@ static int parse_entry ( + if (grub_strcmp (filename + n - 5, ".conf") != 0) + return 0; + +- p = grub_xasprintf (GRUB_BLS_CONFIG_PATH "%s", filename); ++ p = grub_xasprintf ("(%s)%s/%s", devid, dirname, filename); + + f = grub_file_open (p); + if (!f) +@@ -77,54 +450,169 @@ static int parse_entry ( + if (sz == GRUB_FILE_SIZE_UNKNOWN || sz > 1024*1024) + goto finish; + ++ entry = bls_new_entry(); ++ if (!entry) ++ goto finish; ++ + for (;;) + { + char *buf; ++ char *separator; ++ int rc; + + buf = grub_file_getline (f); + if (!buf) + break; + +- if (grub_strncmp (buf, "title ", 6) == 0) +- { +- grub_free (title); +- title = grub_strdup (buf + 6); +- if (!title) +- goto finish; +- } +- else if (grub_strncmp (buf, "options ", 8) == 0) +- { +- grub_free (options); +- options = grub_strdup (buf + 8); +- if (!options) +- goto finish; +- } +- else if (grub_strncmp (buf, "linux ", 6) == 0) +- { +- grub_free (clinux); +- clinux = grub_strdup (buf + 6); +- if (!clinux) +- goto finish; +- } +- else if (grub_strncmp (buf, "initrd ", 7) == 0) ++ while (buf && buf[0] && (buf[0] == ' ' || buf[0] == '\t')) ++ buf++; ++ if (buf[0] == '#') ++ continue; ++ ++ separator = grub_strchr (buf, ' '); ++ ++ if (!separator) ++ separator = grub_strchr (buf, '\t'); ++ ++ if (!separator || separator[1] == '\0') + { +- grub_free (initrd); +- initrd = grub_strdup (buf + 7); +- if (!initrd) +- goto finish; ++ grub_free (buf); ++ break; + } + +- grub_free(buf); ++ separator[0] = '\0'; ++ ++ rc = bls_add_keyval (entry, buf, separator+1); ++ grub_free (buf); ++ if (rc < 0) ++ break; ++ } ++ ++ grub_qsort(&entry->keyvals[0], entry->nkeyvals, sizeof (struct keyval *), ++ keyval_cmp, NULL); ++ ++finish: ++ grub_free (p); ++ ++ if (f) ++ grub_file_close (f); ++ ++ return 0; ++} ++ ++static grub_envblk_t saved_env = NULL; ++ ++static int ++save_var (const char *name, const char *value, void *whitelist UNUSED) ++{ ++ const char *val = grub_env_get (name); ++ grub_dprintf("blscfg", "saving \"%s\"\n", name); ++ ++ if (val) ++ grub_envblk_set (saved_env, name, value); ++ ++ return 0; ++} ++ ++static int ++unset_var (const char *name, const char *value UNUSED, void *whitelist) ++{ ++ grub_dprintf("blscfg", "restoring \"%s\"\n", name); ++ if (! whitelist) ++ { ++ grub_env_unset (name); ++ return 0; + } + +- if (!linux) ++ if (test_whitelist_membership (name, ++ (const grub_env_whitelist_t *) whitelist)) ++ grub_env_unset (name); ++ ++ return 0; ++} ++ ++static char **bls_make_list (struct bls_entry *entry, const char *key, int *num) ++{ ++ int last = -1; ++ char *val; ++ ++ int nlist = 0; ++ char **list = NULL; ++ ++ list = grub_malloc (sizeof (char *)); ++ if (!list) ++ return NULL; ++ list[0] = NULL; ++ ++ while (1) ++ { ++ char **new; ++ ++ val = bls_get_val (entry, key, &last); ++ if (!val) ++ break; ++ ++ new = grub_realloc (list, (nlist + 2) * sizeof (char *)); ++ if (!new) ++ break; ++ ++ list = new; ++ list[nlist++] = val; ++ list[nlist] = NULL; ++ } ++ ++ if (num) ++ *num = nlist; ++ ++ return list; ++} ++ ++static void create_entry (struct bls_entry *entry, const char *cfgfile) ++{ ++ int argc = 0; ++ const char **argv = NULL; ++ ++ char *title = NULL; ++ char *clinux = NULL; ++ char *options = NULL; ++ char *initrd = NULL; ++ char *id = NULL; ++ char *hotkey = NULL; ++ ++ char *users = NULL; ++ char **classes = NULL; ++ ++ char **args = NULL; ++ ++ char *src = NULL; ++ int i; ++ ++ grub_dprintf("blscfg", "%s got here\n", __func__); ++ clinux = bls_get_val (entry, "linux", NULL); ++ if (!clinux) + { +- grub_printf ("Skipping file %s with no 'linux' key.", p); ++ grub_dprintf ("blscfg", "Skipping file %s with no 'linux' key.\n", cfgfile); + goto finish; + } + +- args[0] = title ? title : filename; ++ title = bls_get_val (entry, "title", NULL); ++ options = bls_get_val (entry, "options", NULL); ++ initrd = bls_get_val (entry, "initrd", NULL); ++ id = bls_get_val (entry, "id", NULL); + ++ hotkey = bls_get_val (entry, "grub_hotkey", NULL); ++ users = bls_get_val (entry, "grub_users", NULL); ++ classes = bls_make_list (entry, "grub_class", NULL); ++ args = bls_make_list (entry, "grub_arg", &argc); ++ ++ argc += 1; ++ argv = grub_malloc ((argc + 1) * sizeof (char *)); ++ argv[0] = title ? title : clinux; ++ for (i = 1; i < argc; i++) ++ argv[i] = args[i-1]; ++ argv[argc] = NULL; ++ ++ grub_dprintf("blscfg", "adding menu entry for \"%s\"\n", title); + src = grub_xasprintf ("load_video\n" + "set gfx_payload=keep\n" + "insmod gzio\n" +@@ -133,40 +621,217 @@ static int parse_entry ( + GRUB_BOOT_DEVICE, clinux, options ? " " : "", options ? options : "", + initrd ? GRUB_INITRD_CMD " " : "", initrd ? GRUB_BOOT_DEVICE : "", initrd ? initrd : "", initrd ? "\n" : ""); + +- grub_normal_add_menu_entry (1, args, NULL, NULL, "bls", NULL, NULL, src, 0); ++ grub_normal_add_menu_entry (argc, argv, classes, id, users, hotkey, NULL, src, 0); + + finish: +- grub_free (p); +- grub_free (title); +- grub_free (options); +- grub_free (clinux); +- grub_free (initrd); +- grub_free (src); ++ if (classes) ++ grub_free (classes); ++ grub_dprintf("blscfg", "%s got here\n", __func__); ++ if (args) ++ grub_free (args); ++ ++ if (argv) ++ grub_free (argv); ++ ++ if (src) ++ grub_free (src); ++ grub_dprintf("blscfg", "%s got here\n", __func__); ++} ++ ++struct find_entry_info { ++ grub_device_t dev; ++ grub_fs_t fs; ++ int efi; ++}; ++ ++/* ++ * filename: if the directory is /EFI/something/ , filename is "something" ++ * info: unused ++ * data: the filesystem object the file is on. ++ */ ++static int find_entry (const char *filename, ++ const struct grub_dirhook_info *dirhook_info UNUSED, ++ void *data) ++{ ++ struct find_entry_info *info = (struct find_entry_info *)data; ++ grub_file_t f = NULL; ++ char *grubenv_path = NULL; ++ grub_envblk_t env = NULL; ++ char *default_blsdir = NULL; ++ const char *blsdir = NULL; ++ char *saved_env_buf = NULL; ++ int r = 0; ++ const char *devid = grub_env_get ("boot"); ++ ++ grub_dprintf("blscfg", "%s got here\n", __func__); ++ if (!grub_strcmp (filename, ".") || ++ !grub_strcmp (filename, "..")) ++ return 0; ++ ++ if (info->efi && !grub_strcasecmp (filename, "boot")) ++ return 0; ++ ++ saved_env_buf = grub_malloc (512); ++ ++ // set a default blsdir ++ if (info->efi) ++ default_blsdir = grub_xasprintf ("/EFI/%s%s", filename, ++ GRUB_BLS_CONFIG_PATH); ++ else ++ default_blsdir = grub_xasprintf ("%s", GRUB_BLS_CONFIG_PATH); ++ ++ grub_env_set ("blsdir", default_blsdir); ++ grub_dprintf ("blscfg", "default_blsdir: \"%s\"\n", default_blsdir); ++ ++ /* ++ * try to load a grubenv from /EFI/wherever/grubenv ++ */ ++ if (info->efi) ++ grubenv_path = grub_xasprintf ("(%s)/EFI/%s/grubenv", devid, filename); ++ else ++ grubenv_path = grub_xasprintf ("(%s)/grub2/grubenv", devid); ++ ++ grub_dprintf ("blscfg", "looking for \"%s\"\n", grubenv_path); ++ f = grub_file_open (grubenv_path); ++ ++ grub_dprintf ("blscfg", "%s it\n", f ? "found" : "did not find"); ++ grub_free (grubenv_path); ++ if (f) ++ { ++ grub_off_t sz; ++ ++ grub_dprintf ("blscfg", "getting size\n"); ++ sz = grub_file_size (f); ++ if (sz == GRUB_FILE_SIZE_UNKNOWN || sz > 1024*1024) ++ goto finish; ++ ++ grub_dprintf ("blscfg", "reading env\n"); ++ env = read_envblk_file (f); ++ if (!env) ++ goto finish; ++ grub_dprintf ("blscfg", "read env file\n"); ++ ++ grub_memset (saved_env_buf, '#', 512); ++ grub_memcpy (saved_env_buf, GRUB_ENVBLK_SIGNATURE, ++ sizeof (GRUB_ENVBLK_SIGNATURE)); ++ grub_dprintf ("blscfg", "saving env\n"); ++ saved_env = grub_envblk_open (saved_env_buf, 512); ++ if (!saved_env) ++ goto finish; ++ ++ // save everything listed in "env" with values from our existing grub env ++ grub_envblk_iterate (env, NULL, save_var); ++ // set everything from our loaded grubenv into the real grub env ++ grub_envblk_iterate (env, NULL, set_var); ++ } ++ else ++ { ++ grub_err_t e; ++ grub_dprintf ("blscfg", "no such file\n"); ++ do ++ { ++ e = grub_error_pop(); ++ } while (e); ++ ++ } ++ ++ blsdir = grub_env_get ("blsdir"); ++ if (!blsdir) ++ goto finish; ++ ++ grub_dprintf ("blscfg", "blsdir: \"%s\"\n", blsdir); ++ if (blsdir[0] != '/' && info->efi) ++ blsdir = grub_xasprintf ("/EFI/%s/%s/", filename, blsdir); ++ else ++ blsdir = grub_strdup (blsdir); ++ ++ if (!blsdir) ++ goto finish; ++ ++ grub_dprintf ("blscfg", "blsdir: \"%s\"\n", blsdir); ++ r = info->fs->dir (info->dev, blsdir, read_entry, (char *)blsdir); ++ if (r != 0) { ++ grub_dprintf ("blscfg", "read_entry returned error\n"); ++ grub_err_t e; ++ do ++ { ++ e = grub_error_pop(); ++ } while (e); ++ } ++ ++ grub_dprintf ("blscfg", "Sorting %d entries\n", nentries); ++ grub_qsort(&entries[0], nentries, sizeof (struct bls_entry *), bls_cmp, NULL); ++ ++ grub_dprintf ("blscfg", "%s Creating %d entries from bls\n", __func__, nentries); ++ for (r = nentries - 1; r >= 0; r--) ++ create_entry(entries[r], filename); ++ ++ for (r = 0; r < nentries; r++) ++ bls_free_entry (entries[r]); ++finish: ++ nentries = 0; ++ grub_free (entries); ++ ++ grub_free ((char *)blsdir); ++ ++ grub_env_unset ("blsdir"); ++ ++ if (saved_env) ++ { ++ // remove everything from the real environment that's defined in env ++ grub_envblk_iterate (env, NULL, unset_var); ++ ++ // re-set the things from our original environment ++ grub_envblk_iterate (saved_env, NULL, set_var); ++ grub_envblk_close (saved_env); ++ saved_env = NULL; ++ } ++ else if (saved_env_buf) ++ { ++ // if we have a saved environment, grub_envblk_close() freed this. ++ grub_free (saved_env_buf); ++ } ++ ++ if (env) ++ grub_envblk_close (env); + + if (f) + grub_file_close (f); + ++ grub_free (default_blsdir); ++ + return 0; + } + + static grub_err_t +-grub_cmd_bls_import (grub_extcmd_context_t ctxt __attribute__ ((unused)), +- int argc __attribute__ ((unused)), +- char **args __attribute__ ((unused))) ++grub_cmd_blscfg (grub_extcmd_context_t ctxt UNUSED, ++ int argc UNUSED, ++ char **args UNUSED) + { + grub_fs_t fs; + grub_device_t dev; + static grub_err_t r; + const char *devid; ++ struct find_entry_info info = ++ { ++ .dev = NULL, ++ .fs = NULL, ++ .efi = 0, ++ }; + +- devid = grub_env_get ("root"); ++ ++ grub_dprintf ("blscfg", "finding boot\n"); ++ devid = grub_env_get ("boot"); + if (!devid) +- return grub_error (GRUB_ERR_FILE_NOT_FOUND, N_("variable `%s' isn't set"), "root"); ++ return grub_error (GRUB_ERR_FILE_NOT_FOUND, ++ N_("variable `%s' isn't set"), "boot"); + ++ grub_dprintf ("blscfg", "opening %s\n", devid); + dev = grub_device_open (devid); + if (!dev) + return grub_errno; + ++ grub_dprintf ("blscfg", "probing fs\n"); + fs = grub_fs_probe (dev); + if (!fs) + { +@@ -174,7 +839,17 @@ grub_cmd_bls_import (grub_extcmd_context_t ctxt __attribute__ ((unused)), + goto finish; + } + +- r = fs->dir (dev, GRUB_BLS_CONFIG_PATH, parse_entry, NULL); ++ info.dev = dev; ++ info.fs = fs; ++#ifdef GRUB_MACHINE_EFI ++ info.efi = 1; ++ grub_dprintf ("blscfg", "scanning /EFI/\n"); ++ r = fs->dir (dev, "/EFI/", find_entry, &info); ++#else ++ info.efi = 0; ++ grub_dprintf ("blscfg", "scanning %s\n", GRUB_BLS_CONFIG_PATH); ++ r = fs->dir (dev, "/", find_entry, &info); ++#endif + + finish: + if (dev) +@@ -187,8 +862,9 @@ static grub_extcmd_t cmd; + + GRUB_MOD_INIT(bls) + { +- cmd = grub_register_extcmd ("bls_import", +- grub_cmd_bls_import, ++ grub_dprintf("blscfg", "%s got here\n", __func__); ++ cmd = grub_register_extcmd ("blscfg", ++ grub_cmd_blscfg, + 0, + NULL, + N_("Import Boot Loader Specification snippets."), +diff --git a/grub-core/commands/loadenv.c b/grub-core/commands/loadenv.c +index acd93d123ed..91c99456091 100644 +--- a/grub-core/commands/loadenv.c ++++ b/grub-core/commands/loadenv.c +@@ -28,6 +28,8 @@ + #include + #include + ++#include "loadenv.h" ++ + GRUB_MOD_LICENSE ("GPLv3+"); + + static const struct grub_arg_option options[] = +@@ -84,81 +86,6 @@ open_envblk_file (char *filename, int untrusted) + return file; + } + +-static grub_envblk_t +-read_envblk_file (grub_file_t file) +-{ +- grub_off_t offset = 0; +- char *buf; +- grub_size_t size = grub_file_size (file); +- grub_envblk_t envblk; +- +- buf = grub_malloc (size); +- if (! buf) +- return 0; +- +- while (size > 0) +- { +- grub_ssize_t ret; +- +- ret = grub_file_read (file, buf + offset, size); +- if (ret <= 0) +- { +- grub_free (buf); +- return 0; +- } +- +- size -= ret; +- offset += ret; +- } +- +- envblk = grub_envblk_open (buf, offset); +- if (! envblk) +- { +- grub_free (buf); +- grub_error (GRUB_ERR_BAD_FILE_TYPE, "invalid environment block"); +- return 0; +- } +- +- return envblk; +-} +- +-struct grub_env_whitelist +-{ +- grub_size_t len; +- char **list; +-}; +-typedef struct grub_env_whitelist grub_env_whitelist_t; +- +-static int +-test_whitelist_membership (const char* name, +- const grub_env_whitelist_t* whitelist) +-{ +- grub_size_t i; +- +- for (i = 0; i < whitelist->len; i++) +- if (grub_strcmp (name, whitelist->list[i]) == 0) +- return 1; /* found it */ +- +- return 0; /* not found */ +-} +- +-/* Helper for grub_cmd_load_env. */ +-static int +-set_var (const char *name, const char *value, void *whitelist) +-{ +- if (! whitelist) +- { +- grub_env_set (name, value); +- return 0; +- } +- +- if (test_whitelist_membership (name, +- (const grub_env_whitelist_t *) whitelist)) +- grub_env_set (name, value); +- +- return 0; +-} +- + static grub_err_t + grub_cmd_load_env (grub_extcmd_context_t ctxt, int argc, char **args) + { +diff --git a/grub-core/commands/loadenv.h b/grub-core/commands/loadenv.h +new file mode 100644 +index 00000000000..952f46121bd +--- /dev/null ++++ b/grub-core/commands/loadenv.h +@@ -0,0 +1,93 @@ ++/* loadenv.c - command to load/save environment variable. */ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2008,2009,2010 Free Software Foundation, Inc. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++static grub_envblk_t UNUSED ++read_envblk_file (grub_file_t file) ++{ ++ grub_off_t offset = 0; ++ char *buf; ++ grub_size_t size = grub_file_size (file); ++ grub_envblk_t envblk; ++ ++ buf = grub_malloc (size); ++ if (! buf) ++ return 0; ++ ++ while (size > 0) ++ { ++ grub_ssize_t ret; ++ ++ ret = grub_file_read (file, buf + offset, size); ++ if (ret <= 0) ++ { ++ grub_free (buf); ++ return 0; ++ } ++ ++ size -= ret; ++ offset += ret; ++ } ++ ++ envblk = grub_envblk_open (buf, offset); ++ if (! envblk) ++ { ++ grub_free (buf); ++ grub_error (GRUB_ERR_BAD_FILE_TYPE, "invalid environment block"); ++ return 0; ++ } ++ ++ return envblk; ++} ++ ++struct grub_env_whitelist ++{ ++ grub_size_t len; ++ char **list; ++}; ++typedef struct grub_env_whitelist grub_env_whitelist_t; ++ ++static int UNUSED ++test_whitelist_membership (const char* name, ++ const grub_env_whitelist_t* whitelist) ++{ ++ grub_size_t i; ++ ++ for (i = 0; i < whitelist->len; i++) ++ if (grub_strcmp (name, whitelist->list[i]) == 0) ++ return 1; /* found it */ ++ ++ return 0; /* not found */ ++} ++ ++/* Helper for grub_cmd_load_env. */ ++static int UNUSED ++set_var (const char *name, const char *value, void *whitelist) ++{ ++ if (! whitelist) ++ { ++ grub_env_set (name, value); ++ return 0; ++ } ++ ++ if (test_whitelist_membership (name, ++ (const grub_env_whitelist_t *) whitelist)) ++ grub_env_set (name, value); ++ ++ return 0; ++} +diff --git a/include/grub/compiler.h b/include/grub/compiler.h +index c9e1d7a73dc..9859ff4cc79 100644 +--- a/include/grub/compiler.h ++++ b/include/grub/compiler.h +@@ -48,4 +48,6 @@ + # define WARN_UNUSED_RESULT + #endif + ++#define UNUSED __attribute__((__unused__)) ++ + #endif /* ! GRUB_COMPILER_HEADER */ +-- +2.15.0 + diff --git a/0202-Add-BLS-support-to-grub-mkconfig.patch b/0202-Add-BLS-support-to-grub-mkconfig.patch new file mode 100644 index 00000000..99a532a2 --- /dev/null +++ b/0202-Add-BLS-support-to-grub-mkconfig.patch @@ -0,0 +1,169 @@ +From 3f54a7a23b2d239ccee7e13ee3b699e085f54301 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Fri, 9 Dec 2016 15:40:29 -0500 +Subject: [PATCH 202/206] Add BLS support to grub-mkconfig + +GRUB now has BootLoaderSpec support, the user can choose to use this by +setting GRUB_ENABLE_BLSCFG to true in /etc/default/grub. On this setup, +the boot menu entries are not added to the grub.cfg, instead BLS config +files are parsed by blscfg command and the entries created dynamically. +--- + util/grub-mkconfig.in | 3 ++- + util/grub-mkconfig_lib.in | 29 +++++++++++++++++++---------- + util/grub.d/10_linux.in | 36 ++++++++++++++++++++++++++++++++++-- + 3 files changed, 55 insertions(+), 13 deletions(-) + +diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in +index 3b0bfe40308..760fe08727f 100644 +--- a/util/grub-mkconfig.in ++++ b/util/grub-mkconfig.in +@@ -240,7 +240,8 @@ export GRUB_DEFAULT \ + GRUB_OS_PROBER_SKIP_LIST \ + GRUB_DISABLE_SUBMENU \ + GRUB_DEFAULT_DTB \ +- SUSE_BTRFS_SNAPSHOT_BOOTING ++ SUSE_BTRFS_SNAPSHOT_BOOTING \ ++ GRUB_ENABLE_BLSCFG + + if test "x${grub_cfg}" != "x"; then + rm -f "${grub_cfg}.new" +diff --git a/util/grub-mkconfig_lib.in b/util/grub-mkconfig_lib.in +index 2fb4f4f8143..70dc8d57e92 100644 +--- a/util/grub-mkconfig_lib.in ++++ b/util/grub-mkconfig_lib.in +@@ -30,6 +30,9 @@ fi + if test "x$grub_file" = x; then + grub_file="${bindir}/@grub_file@" + fi ++if test "x$grub_editenv" = x; then ++ grub_editenv="${bindir}/@grub_editenv@" ++fi + if test "x$grub_mkrelpath" = x; then + grub_mkrelpath="${bindir}/@grub_mkrelpath@" + fi +@@ -127,10 +130,16 @@ EOF + + prepare_grub_to_access_device () + { ++ local device=$1 && shift ++ if [ "$#" -gt 0 ]; then ++ local variable=$1 && shift ++ else ++ local variable=root ++ fi + old_ifs="$IFS" + IFS=' + ' +- partmap="`"${grub_probe}" --device $@ --target=partmap`" ++ partmap="`"${grub_probe}" --device ${device} --target=partmap`" + for module in ${partmap} ; do + case "${module}" in + netbsd | openbsd) +@@ -141,34 +150,34 @@ prepare_grub_to_access_device () + done + + # Abstraction modules aren't auto-loaded. +- abstraction="`"${grub_probe}" --device $@ --target=abstraction`" ++ abstraction="`"${grub_probe}" --device ${device} --target=abstraction`" + for module in ${abstraction} ; do + echo "insmod ${module}" + done + +- fs="`"${grub_probe}" --device $@ --target=fs`" ++ fs="`"${grub_probe}" --device ${device} --target=fs`" + for module in ${fs} ; do + echo "insmod ${module}" + done + + if [ x$GRUB_ENABLE_CRYPTODISK = xy ]; then +- for uuid in `"${grub_probe}" --device $@ --target=cryptodisk_uuid`; do ++ for uuid in `"${grub_probe}" --device ${device} --target=cryptodisk_uuid`; do + echo "cryptomount -u $uuid" + done + fi + + # If there's a filesystem UUID that GRUB is capable of identifying, use it; + # otherwise set root as per value in device.map. +- fs_hint="`"${grub_probe}" --device $@ --target=compatibility_hint`" ++ fs_hint="`"${grub_probe}" --device ${device} --target=compatibility_hint`" + if [ "x$fs_hint" != x ]; then +- echo "set root='$fs_hint'" ++ echo "set ${variable}='$fs_hint'" + fi +- if [ "x$GRUB_DISABLE_UUID" != "xtrue" ] && fs_uuid="`"${grub_probe}" --device $@ --target=fs_uuid 2> /dev/null`" ; then +- hints="`"${grub_probe}" --device $@ --target=hints_string 2> /dev/null`" || hints= ++ if [ "x$GRUB_DISABLE_UUID" != "xtrue" ] && fs_uuid="`"${grub_probe}" --device ${device} --target=fs_uuid 2> /dev/null`" ; then ++ hints="`"${grub_probe}" --device ${device} --target=hints_string 2> /dev/null`" || hints= + echo "if [ x\$feature_platform_search_hint = xy ]; then" +- echo " search --no-floppy --fs-uuid --set=root ${hints} ${fs_uuid}" ++ echo " search --no-floppy --fs-uuid --set=${variable} ${hints} ${fs_uuid}" + echo "else" +- echo " search --no-floppy --fs-uuid --set=root ${fs_uuid}" ++ echo " search --no-floppy --fs-uuid --set=${variable} ${fs_uuid}" + echo "fi" + fi + IFS="$old_ifs" +diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in +index 7e78ad33636..68f631772c3 100644 +--- a/util/grub.d/10_linux.in ++++ b/util/grub.d/10_linux.in +@@ -126,6 +126,33 @@ linux_entry () + if [ -z "$boot_device_id" ]; then + boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")" + fi ++ ++ if [ "x${GRUB_ENABLE_BLSCFG}" = "xtrue" ]; then ++ if [ x$dirname = x/ ]; then ++ if [ -z "${prepare_root_cache}" ]; then ++ prepare_grub_to_access_device ${GRUB_DEVICE} ++ fi ++ else ++ if [ -z "${prepare_boot_cache}" ]; then ++ prepare_grub_to_access_device ${GRUB_DEVICE_BOOT} ++ fi ++ fi ++ ++ bootefi_device="`${grub_probe} --target=device /boot/efi/`" ++ prepare_grub_to_access_device ${bootefi_device} boot ++ ++ cat << EOF ++blscfg ++if [ -s \$prefix/grubenv ]; then ++ load_env ++fi ++EOF ++ ++ ${grub_editenv} - set kernelopts="root=${linux_root_device_thisversion} ro ${args}" ++ ++ exit 0 ++ fi ++ + if [ x$type != xsimple ] ; then + title=$(mktitle "$type" "$version") + if [ x"$title" = x"$GRUB_ACTUAL_DEFAULT" ] || [ x"Previous Linux versions>$title" = x"$GRUB_ACTUAL_DEFAULT" ]; then +@@ -236,7 +263,10 @@ submenu_indentation="" + is_top_level=true + while [ "x$list" != "x" ] ; do + linux=`version_find_latest $list` +- gettext_printf "Found linux image: %s\n" "$linux" >&2 ++ if [ "x${GRUB_ENABLE_BLSCFG}" != "xtrue" ]; then ++ gettext_printf "Found linux image: %s\n" "$linux" >&2 ++ fi ++ + basename=`basename $linux` + dirname=`dirname $linux` + rel_dirname=`make_system_path_relative_to_its_root $dirname` +@@ -281,7 +311,9 @@ while [ "x$list" != "x" ] ; do + fi + + if test -n "${initrd}" ; then +- gettext_printf "Found initrd image: %s\n" "${dirname}/${initrd}" >&2 ++ if [ "x${GRUB_ENABLE_BLSCFG}" != "xtrue" ]; then ++ gettext_printf "Found initrd image: %s\n" "${dirname}/${initrd}" >&2 ++ fi + elif test -z "${initramfs}" ; then + # "UUID=" and "ZFS=" magic is parsed by initrd or initramfs. Since there's + # no initrd or builtin initramfs, it can't work here. +-- +2.15.0 + diff --git a/0203-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch b/0203-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch new file mode 100644 index 00000000..c3a7b74f --- /dev/null +++ b/0203-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch @@ -0,0 +1,36 @@ +From 1706e90ed0c2634b6f06e97fa1c7057278a7096b Mon Sep 17 00:00:00 2001 +From: Javier Martinez Canillas +Date: Tue, 6 Feb 2018 11:02:09 +0100 +Subject: [PATCH 203/206] Remove duplicated grub_exit() definition for grub-emu + platform + +The grub_exit() function signature was changed on all platforms to take a +return code, but latter on a following commit the grub_exit() for the emu +platform was duplicated. It causes a build error so remove the duplicated +function definition. + +Signed-off-by: Javier Martinez Canillas +--- + grub-core/kern/emu/main.c | 6 ------ + 1 file changed, 6 deletions(-) + +diff --git a/grub-core/kern/emu/main.c b/grub-core/kern/emu/main.c +index 7e47ec81263..55ea5a11ccd 100644 +--- a/grub-core/kern/emu/main.c ++++ b/grub-core/kern/emu/main.c +@@ -72,12 +72,6 @@ grub_exit (int retval __attribute__((unused))) + grub_reboot (); + } + +-void +-grub_exit (int retval __attribute__((unused))) +-{ +- grub_reboot (); +-} +- + void + grub_machine_init (void) + { +-- +2.15.0 + diff --git a/0204-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch b/0204-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch new file mode 100644 index 00000000..30d3f4b3 --- /dev/null +++ b/0204-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch @@ -0,0 +1,30 @@ +From 6bebad4c7172ba23d3994828945b21ed74bcc6c2 Mon Sep 17 00:00:00 2001 +From: Javier Martinez Canillas +Date: Tue, 6 Feb 2018 11:16:28 +0100 +Subject: [PATCH 204/206] Don't attempt to backtrace on grub_abort() for + grub-emu + +The emu platform doesn't have a grub_backtrace() implementation, so this +causes a build error. Don't attempt to call this when building grub-emu. + +Signed-off-by: Javier Martinez Canillas +--- + grub-core/kern/misc.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c +index 04371ac49f2..636f97e1ba1 100644 +--- a/grub-core/kern/misc.c ++++ b/grub-core/kern/misc.c +@@ -1103,7 +1103,7 @@ static void __attribute__ ((noreturn)) + grub_abort (void) + { + #ifndef GRUB_UTIL +-#if defined(__i386__) || defined(__x86_64__) ++#if (defined(__i386__) || defined(__x86_64__)) && !defined(GRUB_MACHINE_EMU) + grub_backtrace(); + #endif + #endif +-- +2.15.0 + diff --git a/0205-Enable-blscfg-command-for-the-emu-platform.patch b/0205-Enable-blscfg-command-for-the-emu-platform.patch new file mode 100644 index 00000000..bcb2b930 --- /dev/null +++ b/0205-Enable-blscfg-command-for-the-emu-platform.patch @@ -0,0 +1,167 @@ +From 32679a10c1297104cf89ba53f238b4233ba922ce Mon Sep 17 00:00:00 2001 +From: Javier Martinez Canillas +Date: Fri, 2 Feb 2018 11:36:29 +0100 +Subject: [PATCH 205/206] Enable blscfg command for the emu platform + +Allow grub-emu to call a blscfg command. This may be useful for platforms +that don't support GRUB, so grub-emu can be used to parse the BLS configs +and kexec a new kernel using that information. + +Signed-off-by: Javier Martinez Canillas +--- + grub-core/Makefile.core.def | 1 + + grub-core/commands/blscfg.c | 46 +++++++++++++++++++++++++++++++++++---------- + 2 files changed, 37 insertions(+), 10 deletions(-) + +diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def +index 0ca0bdad412..420cbf0a024 100644 +--- a/grub-core/Makefile.core.def ++++ b/grub-core/Makefile.core.def +@@ -778,6 +778,7 @@ module = { + common = commands/blscfg.c; + enable = efi; + enable = i386_pc; ++ enable = emu; + }; + + module = { +diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c +index 87e7d9a4c64..12104d490ec 100644 +--- a/grub-core/commands/blscfg.c ++++ b/grub-core/commands/blscfg.c +@@ -37,7 +37,12 @@ GRUB_MOD_LICENSE ("GPLv3+"); + #include "loadenv.h" + + #define GRUB_BLS_CONFIG_PATH "/loader/entries/" ++#ifdef GRUB_MACHINE_EMU ++#define GRUB_BOOT_DEVICE "/boot" ++#else + #define GRUB_BOOT_DEVICE "($root)" ++#endif ++ + #ifdef GRUB_MACHINE_EFI + #define GRUB_LINUX_CMD "linuxefi" + #define GRUB_INITRD_CMD "initrdefi" +@@ -46,6 +51,13 @@ GRUB_MOD_LICENSE ("GPLv3+"); + #define GRUB_INITRD_CMD "initrd" + #endif + ++enum ++ { ++ PLATFORM_EFI, ++ PLATFORM_EMU, ++ PLATFORM_BIOS, ++ }; ++ + #define grub_free(x) ({grub_dprintf("blscfg", "%s freeing %p\n", __func__, x); grub_free(x); }) + + struct keyval +@@ -641,7 +653,7 @@ finish: + struct find_entry_info { + grub_device_t dev; + grub_fs_t fs; +- int efi; ++ int platform; + }; + + /* +@@ -668,13 +680,16 @@ static int find_entry (const char *filename, + !grub_strcmp (filename, "..")) + return 0; + +- if (info->efi && !grub_strcasecmp (filename, "boot")) ++ if (info->platform == PLATFORM_EFI && !grub_strcasecmp (filename, "boot")) + return 0; + + saved_env_buf = grub_malloc (512); + + // set a default blsdir +- if (info->efi) ++ if (info->platform == PLATFORM_EMU) ++ default_blsdir = grub_xasprintf ("%s%s", GRUB_BOOT_DEVICE, ++ GRUB_BLS_CONFIG_PATH); ++ else if (info->platform == PLATFORM_EFI) + default_blsdir = grub_xasprintf ("/EFI/%s%s", filename, + GRUB_BLS_CONFIG_PATH); + else +@@ -686,7 +701,7 @@ static int find_entry (const char *filename, + /* + * try to load a grubenv from /EFI/wherever/grubenv + */ +- if (info->efi) ++ if (info->platform == PLATFORM_EFI) + grubenv_path = grub_xasprintf ("(%s)/EFI/%s/grubenv", devid, filename); + else + grubenv_path = grub_xasprintf ("(%s)/grub2/grubenv", devid); +@@ -740,7 +755,7 @@ static int find_entry (const char *filename, + goto finish; + + grub_dprintf ("blscfg", "blsdir: \"%s\"\n", blsdir); +- if (blsdir[0] != '/' && info->efi) ++ if (blsdir[0] != '/' && info->platform == PLATFORM_EFI) + blsdir = grub_xasprintf ("/EFI/%s/%s/", filename, blsdir); + else + blsdir = grub_strdup (blsdir); +@@ -816,15 +831,21 @@ grub_cmd_blscfg (grub_extcmd_context_t ctxt UNUSED, + { + .dev = NULL, + .fs = NULL, +- .efi = 0, ++ .platform = PLATFORM_BIOS, + }; + + + grub_dprintf ("blscfg", "finding boot\n"); ++ ++#ifdef GRUB_MACHINE_EMU ++ devid = "host"; ++ grub_env_set ("boot", devid); ++#else + devid = grub_env_get ("boot"); + if (!devid) + return grub_error (GRUB_ERR_FILE_NOT_FOUND, + N_("variable `%s' isn't set"), "boot"); ++#endif + + grub_dprintf ("blscfg", "opening %s\n", devid); + dev = grub_device_open (devid); +@@ -842,11 +863,16 @@ grub_cmd_blscfg (grub_extcmd_context_t ctxt UNUSED, + info.dev = dev; + info.fs = fs; + #ifdef GRUB_MACHINE_EFI +- info.efi = 1; ++ info.platform = PLATFORM_EFI; + grub_dprintf ("blscfg", "scanning /EFI/\n"); + r = fs->dir (dev, "/EFI/", find_entry, &info); ++#elif GRUB_MACHINE_EMU ++ info.platform = PLATFORM_EMU; ++ grub_dprintf ("blscfg", "scanning %s%s\n", GRUB_BOOT_DEVICE, ++ GRUB_BLS_CONFIG_PATH); ++ r = fs->dir (dev, "/boot/loader/", ++ find_entry, &info); + #else +- info.efi = 0; + grub_dprintf ("blscfg", "scanning %s\n", GRUB_BLS_CONFIG_PATH); + r = fs->dir (dev, "/", find_entry, &info); + #endif +@@ -860,7 +886,7 @@ finish: + + static grub_extcmd_t cmd; + +-GRUB_MOD_INIT(bls) ++GRUB_MOD_INIT(blscfg) + { + grub_dprintf("blscfg", "%s got here\n", __func__); + cmd = grub_register_extcmd ("blscfg", +@@ -871,7 +897,7 @@ GRUB_MOD_INIT(bls) + NULL); + } + +-GRUB_MOD_FINI(bls) ++GRUB_MOD_FINI(blscfg) + { + grub_unregister_extcmd (cmd); + } +-- +2.15.0 + diff --git a/0206-Add-linux-and-initrd-commands-for-grub-emu.patch b/0206-Add-linux-and-initrd-commands-for-grub-emu.patch new file mode 100644 index 00000000..32395502 --- /dev/null +++ b/0206-Add-linux-and-initrd-commands-for-grub-emu.patch @@ -0,0 +1,354 @@ +From b22a512b55d4234c7ae2610fe78a70e97ad66918 Mon Sep 17 00:00:00 2001 +From: Michael Chang +Date: Tue, 6 Feb 2018 09:09:00 +0100 +Subject: [PATCH 206/206] Add linux and initrd commands for grub-emu + +When using grub-emu, the linux and initrd commands are used as arguments +to the kexec command line tool, to allow booting the selected menu entry. +--- + grub-core/Makefile.core.def | 2 +- + grub-core/kern/emu/main.c | 4 + + grub-core/kern/emu/misc.c | 18 ++++- + grub-core/loader/emu/linux.c | 172 +++++++++++++++++++++++++++++++++++++++++++ + include/grub/emu/exec.h | 4 +- + include/grub/emu/hostfile.h | 3 +- + include/grub/emu/misc.h | 3 + + grub-core/Makefile.am | 1 + + 8 files changed, 203 insertions(+), 4 deletions(-) + create mode 100644 grub-core/loader/emu/linux.c + +diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def +index 420cbf0a024..533e1408f74 100644 +--- a/grub-core/Makefile.core.def ++++ b/grub-core/Makefile.core.def +@@ -1715,10 +1715,10 @@ module = { + arm = loader/arm/linux.c; + arm64 = loader/arm64/linux.c; + arm64 = loader/efi/linux.c; ++ emu = loader/emu/linux.c; + fdt = lib/fdt.c; + common = loader/linux.c; + common = lib/cmdline.c; +- enable = noemu; + }; + + module = { +diff --git a/grub-core/kern/emu/main.c b/grub-core/kern/emu/main.c +index 55ea5a11ccd..846fe9715ec 100644 +--- a/grub-core/kern/emu/main.c ++++ b/grub-core/kern/emu/main.c +@@ -107,6 +107,7 @@ static struct argp_option options[] = { + N_("use GRUB files in the directory DIR [default=%s]"), 0}, + {"verbose", 'v', 0, 0, N_("print verbose messages."), 0}, + {"hold", 'H', N_("SECS"), OPTION_ARG_OPTIONAL, N_("wait until a debugger will attach"), 0}, ++ {"kexec", 'X', 0, 0, N_("try the untryable."), 0}, + { 0, 0, 0, 0, 0, 0 } + }; + +@@ -164,6 +165,9 @@ argp_parser (int key, char *arg, struct argp_state *state) + case 'v': + verbosity++; + break; ++ case 'X': ++ grub_util_set_kexecute(); ++ break; + + case ARGP_KEY_ARG: + { +diff --git a/grub-core/kern/emu/misc.c b/grub-core/kern/emu/misc.c +index 82012a72fcb..3d3a4a4a975 100644 +--- a/grub-core/kern/emu/misc.c ++++ b/grub-core/kern/emu/misc.c +@@ -37,6 +37,7 @@ + #include + + int verbosity; ++int kexecute; + + void + grub_util_warn (const char *fmt, ...) +@@ -80,7 +81,7 @@ grub_util_error (const char *fmt, ...) + vfprintf (stderr, fmt, ap); + va_end (ap); + fprintf (stderr, ".\n"); +- exit (1); ++ grub_exit (1); + } + + void * +@@ -140,6 +141,9 @@ void + __attribute__ ((noreturn)) + grub_exit (int rc) + { ++#if defined (GRUB_KERNEL) ++ grub_reboot(); ++#endif + exit (rc < 0 ? 1 : rc); + } + #endif +@@ -201,3 +205,15 @@ grub_util_load_image (const char *path, char *buf) + + fclose (fp); + } ++ ++void ++grub_util_set_kexecute(void) ++{ ++ kexecute++; ++} ++ ++int ++grub_util_get_kexecute(void) ++{ ++ return kexecute; ++} +diff --git a/grub-core/loader/emu/linux.c b/grub-core/loader/emu/linux.c +new file mode 100644 +index 00000000000..fda9e00d24c +--- /dev/null ++++ b/grub-core/loader/emu/linux.c +@@ -0,0 +1,172 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2006,2007,2008,2009,2010 Free Software Foundation, Inc. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++#include ++#include ++#include ++#include ++ ++#include ++#include ++#include ++ ++GRUB_MOD_LICENSE ("GPLv3+"); ++ ++static grub_dl_t my_mod; ++ ++static char *kernel_path; ++static char *initrd_path; ++static char *boot_cmdline; ++ ++static grub_err_t ++grub_linux_boot (void) ++{ ++ grub_err_t rc = GRUB_ERR_NONE; ++ char *initrd_param; ++ const char *kexec[] = { "kexec", "-l", kernel_path, boot_cmdline, NULL, NULL }; ++ const char *systemctl[] = { "systemctl", "kexec", NULL }; ++ int kexecute = grub_util_get_kexecute(); ++ ++ if (initrd_path) { ++ initrd_param = grub_xasprintf("--initrd=%s", initrd_path); ++ kexec[3] = initrd_param; ++ kexec[4] = boot_cmdline; ++ } else { ++ initrd_param = grub_xasprintf("%s", ""); ++ } ++ ++ grub_printf("%serforming 'kexec -l %s %s %s'\n", ++ (kexecute) ? "P" : "Not p", ++ kernel_path, initrd_param, boot_cmdline); ++ ++ if (kexecute) ++ rc = grub_util_exec(kexec); ++ ++ grub_free(initrd_param); ++ ++ if (rc != GRUB_ERR_NONE) { ++ grub_error (rc, N_("Error trying to perform kexec load operation.")); ++ grub_sleep (3); ++ return rc; ++ } ++ if (kexecute < 1) ++ grub_fatal (N_("Use '"PACKAGE"-emu --kexec' to force a system restart.")); ++ ++ grub_printf("Performing 'systemctl kexec' (%s) ", ++ (kexecute==1) ? "do-or-die" : "just-in-case"); ++ rc = grub_util_exec (systemctl); ++ ++ if (kexecute == 1) ++ grub_fatal (N_("Error trying to perform 'systemctl kexec'")); ++ ++ /* need to check read-only root before resetting hard!? */ ++ grub_printf("Performing 'kexec -e'"); ++ kexec[1] = "-e"; ++ kexec[2] = NULL; ++ rc = grub_util_exec(kexec); ++ if ( rc != GRUB_ERR_NONE ) ++ grub_fatal (N_("Error trying to directly perform 'kexec -e'.")); ++ ++ return rc; ++} ++ ++static grub_err_t ++grub_linux_unload (void) ++{ ++ grub_dl_unref (my_mod); ++ if ( boot_cmdline != NULL ) ++ grub_free (boot_cmdline); ++ boot_cmdline = NULL; ++ return GRUB_ERR_NONE; ++} ++ ++static grub_err_t ++grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), int argc, char *argv[]) ++{ ++ int i; ++ char *tempstr; ++ ++ grub_dl_ref (my_mod); ++ ++ if (argc == 0) ++ return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("filename expected")); ++ ++ if ( !grub_util_is_regular(argv[0]) ) ++ return grub_error(GRUB_ERR_FILE_NOT_FOUND, N_("Cannot find kernel file %s"), argv[0]); ++ ++ if ( kernel_path != NULL ) ++ grub_free(kernel_path); ++ ++ kernel_path = grub_xasprintf("%s", argv[0]); ++ ++ if ( boot_cmdline != NULL ) { ++ grub_free(boot_cmdline); ++ boot_cmdline = NULL; ++ } ++ ++ if ( argc > 1 ) ++ { ++ boot_cmdline = grub_xasprintf("--command-line=%s", argv[1]); ++ for ( i = 2; i < argc; i++ ) { ++ tempstr = grub_xasprintf("%s %s", boot_cmdline, argv[i]); ++ grub_free(boot_cmdline); ++ boot_cmdline = tempstr; ++ } ++ } ++ ++ grub_loader_set (grub_linux_boot, grub_linux_unload, 0); ++ ++ return GRUB_ERR_NONE; ++} ++ ++static grub_err_t ++grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), int argc, char *argv[]) ++{ ++ if (argc == 0) ++ return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("filename expected")); ++ ++ if ( !grub_util_is_regular(argv[0]) ) ++ return grub_error(GRUB_ERR_FILE_NOT_FOUND, N_("Cannot find initrd file %s"), argv[0]); ++ ++ if ( initrd_path != NULL ) ++ grub_free(initrd_path); ++ ++ initrd_path = grub_xasprintf("%s", argv[0]); ++ ++ grub_dl_unref (my_mod); ++ ++ return GRUB_ERR_NONE; ++} ++ ++static grub_command_t cmd_linux, cmd_initrd; ++ ++GRUB_MOD_INIT(linux) ++{ ++ cmd_linux = grub_register_command ("linux", grub_cmd_linux, 0, N_("Load Linux.")); ++ cmd_initrd = grub_register_command ("initrd", grub_cmd_initrd, 0, N_("Load initrd.")); ++ my_mod = mod; ++ kernel_path = NULL; ++ initrd_path = NULL; ++ boot_cmdline = NULL; ++} ++ ++GRUB_MOD_FINI(linux) ++{ ++ grub_unregister_command (cmd_linux); ++ grub_unregister_command (cmd_initrd); ++} +diff --git a/include/grub/emu/exec.h b/include/grub/emu/exec.h +index d1073ef86af..1b61b4a2e5d 100644 +--- a/include/grub/emu/exec.h ++++ b/include/grub/emu/exec.h +@@ -23,6 +23,8 @@ + #include + + #include ++#include ++ + pid_t + grub_util_exec_pipe (const char *const *argv, int *fd); + pid_t +@@ -32,7 +34,7 @@ int + grub_util_exec_redirect_all (const char *const *argv, const char *stdin_file, + const char *stdout_file, const char *stderr_file); + int +-grub_util_exec (const char *const *argv); ++EXPORT_FUNC(grub_util_exec) (const char *const *argv); + int + grub_util_exec_redirect (const char *const *argv, const char *stdin_file, + const char *stdout_file); +diff --git a/include/grub/emu/hostfile.h b/include/grub/emu/hostfile.h +index 8e37d5acb42..12c937a1af9 100644 +--- a/include/grub/emu/hostfile.h ++++ b/include/grub/emu/hostfile.h +@@ -22,6 +22,7 @@ + #include + #include + #include ++#include + #include + + int +@@ -29,7 +30,7 @@ grub_util_is_directory (const char *path); + int + grub_util_is_special_file (const char *path); + int +-grub_util_is_regular (const char *path); ++EXPORT_FUNC(grub_util_is_regular) (const char *path); + + char * + grub_util_path_concat (size_t n, ...); +diff --git a/include/grub/emu/misc.h b/include/grub/emu/misc.h +index df6085bcb7c..a653132e36a 100644 +--- a/include/grub/emu/misc.h ++++ b/include/grub/emu/misc.h +@@ -60,6 +60,9 @@ void EXPORT_FUNC(grub_util_warn) (const char *fmt, ...) __attribute__ ((format ( + void EXPORT_FUNC(grub_util_info) (const char *fmt, ...) __attribute__ ((format (__printf__, 1, 2))); + void EXPORT_FUNC(grub_util_error) (const char *fmt, ...) __attribute__ ((format (__printf__, 1, 2), noreturn)); + ++void EXPORT_FUNC(grub_util_set_kexecute) (void); ++int EXPORT_FUNC(grub_util_get_kexecute) (void) WARN_UNUSED_RESULT; ++ + grub_uint64_t EXPORT_FUNC (grub_util_get_cpu_time_ms) (void); + + #ifdef HAVE_DEVICE_MAPPER +diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am +index f7b4d29b0b3..75e8715e631 100644 +--- a/grub-core/Makefile.am ++++ b/grub-core/Makefile.am +@@ -275,6 +275,7 @@ KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/emu/net.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/emu/hostdisk.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/emu/hostfile.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/extcmd.h ++KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/emu/exec.h + if COND_GRUB_EMU_SDL + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/sdl.h + endif +-- +2.15.0 + diff --git a/grub.patches b/grub.patches index cae311ae..ff973fe7 100644 --- a/grub.patches +++ b/grub.patches @@ -196,3 +196,11 @@ Patch0195: 0195-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch Patch0196: 0196-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch Patch0197: 0197-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch Patch0198: 0198-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch +Patch0199: 0199-align-struct-efi_variable-better.patch +Patch0200: 0200-Add-quicksort-implementation.patch +Patch0201: 0201-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch +Patch0202: 0202-Add-BLS-support-to-grub-mkconfig.patch +Patch0203: 0203-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch +Patch0204: 0204-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch +Patch0205: 0205-Enable-blscfg-command-for-the-emu-platform.patch +Patch0206: 0206-Add-linux-and-initrd-commands-for-grub-emu.patch diff --git a/grub2.spec b/grub2.spec index 3511bddd..7cc6f418 100644 --- a/grub2.spec +++ b/grub2.spec @@ -7,7 +7,7 @@ Name: grub2 Epoch: 1 Version: 2.02 -Release: 25%{?dist} +Release: 26%{?dist} Summary: Bootloader with support for Linux, Multiboot and more Group: System Environment/Base License: GPLv3+ @@ -451,6 +451,17 @@ fi %endif %changelog +* Wed Feb 28 2018 Peter Jones - 2.02-26 +- Try to fix things for new compiler madness. + I really don't know why gcc decided __attribute__((packed)) on a "typedef + struct" should imply __attribute__((align (1))) and that it should have a + warning that it does so. The obvious behavior would be to keep the alignment + of the first element unless it's used in another object or type that /also/ + hask the packed attribute. Why should it change the default alignment at + all? +- Merge in the BLS patches Javier and I wrote. +- Attempt to fix pmtimer initialization failures to not be super duper slow. + * Fri Feb 09 2018 Igor Gnatenko - Escape macros in %%changelog From 4497b0da96a9427c3c90525ea7c4f936ee2e9c10 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 6 Mar 2018 14:46:09 -0500 Subject: [PATCH 02/45] Build the blscfg module in on EFI builds. Signed-off-by: Peter Jones --- grub.macros | 3 ++- grub2.spec | 5 ++++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/grub.macros b/grub.macros index 425012af..61f1b8cd 100644 --- a/grub.macros +++ b/grub.macros @@ -338,7 +338,8 @@ done \ %endif %define do_efi_build_images() \ -GRUB_MODULES=" all_video boot btrfs cat chain configfile echo \\\ +GRUB_MODULES=" all_video boot blscfg btrfs \\\ + cat chain configfile echo \\\ efifwsetup efinet ext2 fat font gfxmenu gfxterm \\\ gzio halt hfsplus iso9660 jpeg loadenv loopback \\\ lvm lsefi mdraid09 mdraid1x minicmd \\\ diff --git a/grub2.spec b/grub2.spec index 7cc6f418..8cbd4163 100644 --- a/grub2.spec +++ b/grub2.spec @@ -7,7 +7,7 @@ Name: grub2 Epoch: 1 Version: 2.02 -Release: 26%{?dist} +Release: 27%{?dist} Summary: Bootloader with support for Linux, Multiboot and more Group: System Environment/Base License: GPLv3+ @@ -451,6 +451,9 @@ fi %endif %changelog +* Tue Mar 06 2018 Peter Jones - 2.02-27 +- Build the blscfg module in on EFI builds. + * Wed Feb 28 2018 Peter Jones - 2.02-26 - Try to fix things for new compiler madness. I really don't know why gcc decided __attribute__((packed)) on a "typedef From 4a0d9d88abec8e762e5528b353bb283c3d01257b Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Fri, 9 Mar 2018 11:20:12 +0100 Subject: [PATCH 03/45] Add kernel-install scripts Install a 20-grubby.install and 90-loaderentry.install kernel-install scripts in /etc/kernel/install.d so these have higher precedence than the ones installed in /usr/lib/kernel/install.d by the systemd pkg. If GRUB 2 pkg isn't installed, then the systemd scripts are executed on kernel installation and removal. Signed-off-by: Javier Martinez Canillas --- 20-grub.install | 99 +++++++++++++++++++++++++++++++++++++++++++++++++ grub2.spec | 14 ++++++- 2 files changed, 112 insertions(+), 1 deletion(-) create mode 100755 20-grub.install diff --git a/20-grub.install b/20-grub.install new file mode 100755 index 00000000..7613562f --- /dev/null +++ b/20-grub.install @@ -0,0 +1,99 @@ +#!/bin/bash + +[[ -f /etc/default/grub ]] && . /etc/default/grub +[[ -f /etc/os-release ]] && . /etc/os-release + +COMMAND="$1" +KERNEL_VERSION="$2" +BOOT_DIR_ABS="$3" +KERNEL_IMAGE="$4" + +KERNEL_DIR="${KERNEL_IMAGE%/*}" + +MACHINE_ID=$KERNEL_INSTALL_MACHINE_ID + +# Remove it, since for grub2 the images are always installed in /boot +rm -rf "${BOOT_DIR_ABS%/*}" + +BLS_DIR="/boot/loader/entries" +if [ -d /sys/firmware/efi ]; then + BLS_DIR="/boot/efi/EFI/${ID}/loader/entries" +fi + +[[ "$KERNEL_VERSION" == *\+* ]] && flavor=-"${KERNEL_VERSION##*+}" +case "$COMMAND" in + add) + if [[ "${KERNEL_DIR}" != "/boot" ]]; then + for i in \ + "$KERNEL_IMAGE" \ + "$KERNEL_DIR"/System.map \ + "$KERNEL_DIR"/config \ + "$KERNEL_DIR"/zImage.stub \ + "$KERNEL_DIR"/dtb \ + ; do + [[ -e "$i" ]] || continue + cp -aT "$i" "/boot/${i##*/}-${KERNEL_VERSION}" + command -v restorecon &>/dev/null && \ + restorecon -R "/boot/${i##*/}-${KERNEL_VERSION}" + done + # hmac is .vmlinuz-.hmac so needs a special treatment + i="$KERNEL_DIR/.${KERNEL_IMAGE##*/}.hmac" + if [[ -e "$i" ]]; then + cp -a "$i" "/boot/.${KERNEL_IMAGE##*/}-${KERNEL_VERSION}.hmac" + command -v restorecon &>/dev/null && \ + restorecon "/boot/.${KERNEL_IMAGE##*/}-${KERNEL_VERSION}.hmac" + fi + fi + + if [[ "x${GRUB_ENABLE_BLSCFG}" = "xtrue" ]] || [[ ! -f /sbin/new-kernel-pkg ]]; then + [[ -d "$BLS_DIR" ]] || mkdir -p "$BLS_DIR" + if [[ ! -f "${KERNEL_DIR}/bls.conf" ]]; then + + if [ "${flavor}" = "-debug" ]; then + debugname=" with debugging" + else + debugname="" + fi + + cat >"${KERNEL_DIR}/bls.conf" <.hmac so needs a special treatment + rm -f "/boot/.vmlinuz-${KERNEL_VERSION}.hmac" + + exit 0 + fi + + /sbin/new-kernel-pkg --package "kernel${flavor+-$flavor}" --rminitrd --rmmoddep --remove "$KERNEL_VERSION" || exit $? + # If grubby is used there's no need to run other installation plugins + exit 77 + ;; + *) + ;; +esac diff --git a/grub2.spec b/grub2.spec index 8cbd4163..ffaa4952 100644 --- a/grub2.spec +++ b/grub2.spec @@ -7,7 +7,7 @@ Name: grub2 Epoch: 1 Version: 2.02 -Release: 27%{?dist} +Release: 28%{?dist} Summary: Bootloader with support for Linux, Multiboot and more Group: System Environment/Base License: GPLv3+ @@ -21,6 +21,7 @@ Source4: http://unifoundry.com/unifont-5.1.20080820.pcf.gz Source5: theme.tar.bz2 Source6: gitignore Source8: strtoull_test.c +Source9: 20-grub.install %include %{SOURCE1} @@ -211,6 +212,11 @@ cat << EOF > ${RPM_BUILD_ROOT}%{_sysconfdir}/prelink.conf.d/grub2.conf -b /usr/sbin/grub2-sparc64-setup EOF +# Install kernel-install scripts +install -Dm0755 -t %{buildroot}%{_prefix}/lib/kernel/install.d/ %{SOURCE9} +ln -sf /dev/null %{buildroot}%{_sysconfdir}/kernel/install.d/20-grubby.install +ln -sf /dev/null %{buildroot}%{_sysconfdir}/kernel/install.d/90-loaderentry.install + # Don't run debuginfo on all the grub modules and whatnot; it just # rejects them, complains, and slows down extraction. %global finddebugroot "%{_builddir}/%{?buildsubdir}/debug" @@ -303,6 +309,9 @@ fi %dir %{_datarootdir}/grub/themes/ %exclude %{_datarootdir}/grub/themes/* %attr(0700,root,root) %dir %{_sysconfdir}/grub.d +%{_prefix}/lib/kernel/install.d/20-grub.install +%{_sysconfdir}/kernel/install.d/20-grubby.install +%{_sysconfdir}/kernel/install.d/90-loaderentry.install %dir %{_datarootdir}/grub %exclude %{_datarootdir}/grub/* %dir /boot/%{name} @@ -451,6 +460,9 @@ fi %endif %changelog +* Fri Mar 09 2018 Javier Martinez Canillas - 2.02-28 +- Install kernel-install scripts. + * Tue Mar 06 2018 Peter Jones - 2.02-27 - Build the blscfg module in on EFI builds. From 2e4660d8c64bf066bb4b065f4896d429b338311c Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 15 Mar 2018 15:05:59 -0400 Subject: [PATCH 04/45] blscfg scripts Install kernel-install scripts. (javierm) Add grub2-switch-to-blscfg Signed-off-by: Peter Jones --- 0001-Bump-version-to-2.03.patch | 2 +- 0002-Remove-bashisms-from-tests.patch | 2 +- 0003-fs-tester-make-sh-compatible.patch | 2 +- 0004-support-busybox-date.patch | 2 +- ...retrieve-fstime-when-it-s-not-useful.patch | 2 +- 0006-Support-lseek64.patch | 2 +- 0007-Use-SHELL-rather-than-bin-sh.patch | 2 +- 0008-po-Use-SHELL-rather-than-bin-sh.patch | 2 +- 0009-Add-termux-path-to-dict.patch | 2 +- 0010-Fix-shebang-for-termux.patch | 2 +- 0011-Add-strtoull-test.patch | 2 +- ...x-behaviour-on-chars-between-9-and-a.patch | 2 +- 0013-Add-Virtual-LAN-support.patch | 2 +- ...out-to-mkimage_generate_elfXX-rather.patch | 2 +- ...r-arm-uboot-code-to-make-it-genereic.patch | 2 +- ...-parts-that-are-platform-independent.patch | 2 +- ...-Rename-uboot-halt.c-to-dummy-halt.c.patch | 2 +- ...ame-uboot-datetime-to-dummy-datetime.patch | 2 +- 0019-arm-coreboot-Start-new-port.patch | 2 +- ...upport-for-device-tree-based-drivers.patch | 2 +- ...-coreboot-Support-for-vexpress-timer.patch | 2 +- 0022-arm-coreboot-Export-FDT-routines.patch | 2 +- ...-Split-protocol-from-controller-code.patch | 2 +- ...reboot-Support-keyboard-for-vexpress.patch | 2 +- ...m_coreboot-Support-grub-mkstandalone.patch | 2 +- ...oreboot-Support-loading-linux-images.patch | 2 +- 0027-arm_coreboot-Support-DMA.patch | 2 +- 0028-ehci-Split-core-code-from-PCI-part.patch | 2 +- 0029-arm_coreboot-Support-EHCI.patch | 2 +- ...n-FDT-nodes-with-compatible-property.patch | 2 +- ...ty-to-send-receive-messages-on-paren.patch | 2 +- 0032-rk3288_spi-Add-SPI-driver.patch | 2 +- ...eboot-Add-Chromebook-keyboard-driver.patch | 2 +- 0034-Missing-parts-of-previous-commit.patch | 2 +- ...-cbmemc-to-support-updated-console-f.patch | 2 +- ...t_keyboard-Fix-falco-chromebook-case.patch | 2 +- 0037-sparc64-Close-cdboot-ihandle.patch | 2 +- ...-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch | 2 +- ...p-option-support-in-xen_module-comma.patch | 2 +- ...inux_xen.in-Add-xen_boot-command-sup.patch | 2 +- ...-introduction-of-Xen-boot-commands-i.patch | 2 +- ...se-devspec-to-determine-the-OBP-path.patch | 2 +- ...unt-ext2-3-4-filesystems-that-have-t.patch | 2 +- 0044-ehci-Fix-compilation-for-amd64.patch | 2 +- ...-compilation-for-ppc-sparc-and-arm64.patch | 2 +- 0046-ehci-Fix-compilation-on-i386.patch | 2 +- 0047-crypto-Fix-use-after-free.patch | 2 +- 0048-arm-efi-Fix-compilation.patch | 2 +- 0049-fdt-silence-clang-warning.patch | 2 +- 0050-Fix-a-segfault-in-lsefi.patch | 2 +- ...t-typedef-and-use-grub_size_t-instea.patch | 2 +- ...x-reading-label-lvd.ident-is-dstring.patch | 2 +- ...b-core-fs-udf.c-Add-support-for-UUID.patch | 2 +- ...orriso-presence-before-doing-anythin.patch | 2 +- 0055-Fail-if-xorriso-failed.patch | 2 +- ...efi-refactor-grub_efi_allocate_pages.patch | 2 +- 0057-Remove-grub_efi_allocate_pages.patch | 2 +- 0058-efi-move-fdt-helper-library.patch | 2 +- 0059-efi-Add-GRUB_PE32_MAGIC-definition.patch | 2 +- ...inux-loader-improve-type-portability.patch | 2 +- ...allocation-type-to-GRUB_EFI_LOADER_C.patch | 2 +- ...RM_-definitions-when-handling-term-c.patch | 2 +- ...B_GZ-prefix-to-gzio-specific-defines.patch | 2 +- 0064-info-in-builddir.patch | 2 +- 0065-re-write-.gitignore.patch | 2 +- ...ient-architecture-CAS-reboot-support.patch | 2 +- ...nsole-display-attr-when-clear-screen.patch | 2 +- ...video-support-for-IBM-power-machines.patch | 2 +- ...when-generating-configuration-by-gru.patch | 2 +- 0070-Move-bash-completion-script-922997.patch | 2 +- 0071-Update-to-minilzo-2.08.patch | 2 +- ...o-include-entries-by-title-not-just-.patch | 2 +- 0073-Add-GRUB_DISABLE_UUID.patch | 2 +- 0074-Make-exit-take-a-return-code.patch | 2 +- ...pot-as-binary-so-git-won-t-try-to-di.patch | 2 +- ...es-load-an-env-block-from-a-variable.patch | 2 +- ...HCP-client-ID-and-UUID-options-added.patch | 2 +- ...-trim-arp-packets-with-abnormal-size.patch | 8 +- ...Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch | 4 +- ...UEFI-operating-systems-returned-by-o.patch | 4 +- 0081-Migrate-PPC-from-Yaboot-to-Grub2.patch | 4 +- 0082-Add-fw_path-variable-revised.patch | 4 +- 0083-Add-support-for-linuxefi.patch | 4 +- ...xefi-and-initrdefi-where-appropriate.patch | 4 +- ...w-insmod-when-secure-boot-is-enabled.patch | 4 +- ...-hex-hex-straight-through-unmolested.patch | 4 +- 0087-Add-X-option-to-printf-functions.patch | 4 +- ...for-specific-config-file-for-netboot.patch | 4 +- ...g-module-to-parse-Boot-Loader-Specif.patch | 4 +- 0090-Don-t-write-messages-to-the-screen.patch | 4 +- 0091-Don-t-print-GNU-GRUB-header.patch | 4 +- 0092-Don-t-add-to-highlighted-row.patch | 4 +- 0093-Message-string-cleanups.patch | 4 +- ...ing-now-that-we-aren-t-displaying-it.patch | 4 +- ...t-indentation-for-the-term-help-text.patch | 4 +- 0096-Indent-menu-entries.patch | 4 +- 0097-Fix-margins.patch | 4 +- ...-1-for-our-right-hand-margin-so-line.patch | 4 +- ...-Use-linux16-when-appropriate-880840.patch | 4 +- 0100-Enable-pager-by-default.-985860.patch | 4 +- ...-on-serial-so-don-t-tell-the-user-to.patch | 4 +- ...n-t-say-GNU-Linux-in-generated-menus.patch | 4 +- ...-Don-t-draw-a-border-around-the-menu.patch | 4 +- ...andard-margin-for-the-timeout-string.patch | 4 +- ...rame-to-list-of-relocations-stripped.patch | 4 +- ...rk-with-our-changes-for-linux16-and-.patch | 4 +- ...on-t-print-during-fdt-loading-method.patch | 4 +- ...spaces-when-we-re-doing-our-cmdline-.patch | 4 +- ...password-to-boot-entries-generated-b.patch | 4 +- 0110-Don-t-emit-Booting-.-message.patch | 4 +- ...f-man-pages-with-slightly-nicer-ones.patch | 4 +- ...ix-when-fallback-searching-for-grub-.patch | 4 +- ...-before-grub.cfg-on-tftp-config-file.patch | 4 +- ...ert-function-to-support-NVMe-devices.patch | 4 +- ...M-Mustang-device-tree-for-hardware-t.patch | 4 +- ...device-tree-from-the-grub-default-fi.patch | 4 +- ...P-protocol-for-exclusive-use-by-grub.patch | 4 +- ...P-protocol-for-exclusive-use-by-grub.patch | 4 +- 0119-Add-grub_util_readlink.patch | 4 +- ...se-symlinks-including-those-across-d.patch | 4 +- ...CLASS-in-10_linux-from-etc-os-releas.patch | 4 +- ...t-ordering-for-.debug-and-rescue-ker.patch | 4 +- 0123-Load-arm-with-SB-enabled.patch | 4 +- 0124-Try-prefix-if-fw_path-doesn-t-work.patch | 4 +- ...-grub.cfg-netboot-selection-order-11.patch | 4 +- ...-Package-Sort-for-grub2-mkconfig-112.patch | 4 +- 0127-Handle-rssd-storage-devices.patch | 4 +- ...x16-initrd16-and-linuxefi-initrdefi-.patch | 4 +- ...fig-construct-titles-that-look-like-.patch | 4 +- ...ly-grub2-password-config-tool-985962.patch | 4 +- ...fig-construct-titles-that-look-like-.patch | 4 +- ...-configure.ac-and-grub-rpm-sort-play.patch | 4 +- 0133-tcp-add-window-scaling-support.patch | 4 +- ...net-retransmit-if-our-device-is-busy.patch | 4 +- ...out-actually-using-the-configured-ne.patch | 4 +- ...r-for-the-first-exclusive-reopen-of-.patch | 4 +- ...ue-when-reading-username-and-passwor.patch | 4 +- ...ub-password-will-not-be-read-1290803.patch | 4 +- ...ub-setpassword-documentation-1290799.patch | 4 +- ...le-issue-in-grub-setpassword-1294243.patch | 4 +- ...rsistent-RAM-and-unknown-possible-fu.patch | 4 +- 0142-efiemu-Fix-compilation-failure.patch | 4 +- ...P-protocol-for-exclusive-use-by-grub.patch | 4 +- 0144-Add-a-url-parser.patch | 4 +- ...net-and-bootp-add-support-for-dhcpv6.patch | 4 +- ...rnel-settings-and-use-it-in-10_linux.patch | 4 +- 0147-Normalize-slashes-in-tftp-paths.patch | 4 +- 0148-Fix-malformed-tftp-packets.patch | 4 +- 0149-Fix-race-in-EFI-validation.patch | 4 +- ...1374141-fix-incorrect-mask-for-ppc64.patch | 4 +- ...art-of-chainloader-target-if-present.patch | 4 +- ...ecureboot-support-on-efi-chainloader.patch | 4 +- ...loaders-that-link-in-efi-mode-honor-.patch | 4 +- 0154-Make-grub_fatal-also-backtrace.patch | 4 +- 0155-Rework-linux-command.patch | 4 +- 0156-Rework-linux16-command.patch | 4 +- 0157-Make-grub-editenv-build-again.patch | 4 +- ...ix-up-some-man-pages-rpmdiff-noticed.patch | 4 +- ...-work-some-intricacies-of-PE-loading.patch | 4 +- ...-of-efi-chainload-so-non-sb-cases-wo.patch | 4 +- ...-double-free-on-verification-failure.patch | 4 +- ...machine-type-test-in-30_os-prober.in.patch | 4 +- ...fix-wrong-sanity-check-in-relocate_c.patch | 4 +- ...truncate-overlong-relocation-section.patch | 4 +- 0165-linuxefi-minor-cleanups.patch | 4 +- ...rch-64-on-32-boot-in-linuxefi-loader.patch | 4 +- 0167-Fix-up-linux-params-usage.patch | 4 +- 0168-Make-exit-take-a-return-code.patch | 4 +- ...fdt-has-address-cells-and-size-cells.patch | 4 +- ...rintf-in-the-secure-boot-verify-code.patch | 4 +- ...fo-pages-say-grub2-where-appropriate.patch | 4 +- ...more-debug-info-in-our-module-loader.patch | 8 +- ...-chainloader-entries-don-t-try-any-x.patch | 4 +- ...-Add-ability-to-boot-from-subvolumes.patch | 4 +- ...port-btrfs_subvol-and-btrfs_subvolid.patch | 4 +- 0176-grub2-btrfs-03-follow_default.patch | 4 +- 0177-grub2-btrfs-04-grub2-install.patch | 4 +- 0178-grub2-btrfs-05-grub2-mkconfig.patch | 4 +- 0179-grub2-btrfs-06-subvol-mount.patch | 4 +- ...ootable-Snapshot-submenu-in-grub.cfg.patch | 4 +- ...subvol-name-scheme-to-support-old-sn.patch | 4 +- ...-correctly-with-btrfs-snapshots-bsc-.patch | 4 +- ...ocate_pool-and-grub_efi_free_pool-wr.patch | 4 +- ...fi_.-memory-helpers-where-reasonable.patch | 4 +- 0185-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch | 4 +- ...c-sized-arrays-since-we-don-t-build-.patch | 4 +- 0187-don-t-ignore-const.patch | 4 +- 0188-don-t-use-int-for-efi-status.patch | 6 +- ...INIT-declare-its-function-prototypes.patch | 4 +- ...p-some-errors-in-the-linuxefi-loader.patch | 4 +- 0191-editenv-handle-relative-symlinks.patch | 4 +- ...e-libgrub.pp-depend-on-config-util.h.patch | 4 +- ...-efi-as-HFS-on-ppc-machines-in-grub-.patch | 4 +- ...20_linux_xen.in-Add-xen_boot-command.patch | 4 +- ...-figure-out-whether-multiboot2-shoul.patch | 4 +- ...d-xen-or-multiboot-2-modules-as-need.patch | 4 +- ...lt-tsc-calibration-method-to-pmtimer.patch | 4 +- ...-calibration-not-take-51-seconds-to-.patch | 4 +- 0199-align-struct-efi_variable-better.patch | 4 +- 0200-Add-quicksort-implementation.patch | 4 +- ...nd-support-to-parse-BootLoaderSpec-c.patch | 18 +- 0202-Add-BLS-support-to-grub-mkconfig.patch | 4 +- ...d-grub_exit-definition-for-grub-emu-.patch | 4 +- ...-backtrace-on-grub_abort-for-grub-em.patch | 4 +- ...-blscfg-command-for-the-emu-platform.patch | 14 +- ...nux-and-initrd-commands-for-grub-emu.patch | 4 +- 0207-Fix-the-efidir-in-grub-setpassword.patch | 27 + 0208-Add-grub2-switch-to-blscfg.patch | 348 ++++++++ 0209-Add-grub_debug_enabled.patch | 63 ++ 0210-make-better-backtraces.patch | 842 ++++++++++++++++++ ...w-our-startup-message-if-debug-is-se.patch | 27 + ...-some-minor-include-path-weirdnesses.patch | 140 +++ ...it-possible-to-enabled-build-id-sha1.patch | 64 ++ ...f-grub_dprintf-without-the-file-line.patch | 14 +- ...dprintf-that-tells-us-load-addresses.patch | 22 +- ...ect-.file-directives-in-our-.S-files.patch | 455 ---------- ...compiler-to-do-annoying-things-with-.patch | 88 -- 10006-Try-it-in-gentpl-again.patch | 66 -- 20-grub.install | 74 +- grub.macros | 22 +- grub.patches | 9 + grub2.spec | 29 +- 222 files changed, 1960 insertions(+), 1034 deletions(-) create mode 100644 0207-Fix-the-efidir-in-grub-setpassword.patch create mode 100644 0208-Add-grub2-switch-to-blscfg.patch create mode 100644 0209-Add-grub_debug_enabled.patch create mode 100644 0210-make-better-backtraces.patch create mode 100644 0211-normal-don-t-draw-our-startup-message-if-debug-is-se.patch create mode 100644 0212-Work-around-some-minor-include-path-weirdnesses.patch create mode 100644 0213-Make-it-possible-to-enabled-build-id-sha1.patch rename 10004-Add-grub_qdprintf-grub_dprintf-without-the-file-lin.patch => 0214-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch (81%) rename 10005-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch => 0215-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch (90%) delete mode 100644 10001-Put-the-correct-.file-directives-in-our-.S-files.patch delete mode 100644 10003-Don-t-tell-the-compiler-to-do-annoying-things-with-.patch delete mode 100644 10006-Try-it-in-gentpl-again.patch diff --git a/0001-Bump-version-to-2.03.patch b/0001-Bump-version-to-2.03.patch index 392d0b8f..91769e5d 100644 --- a/0001-Bump-version-to-2.03.patch +++ b/0001-Bump-version-to-2.03.patch @@ -1,7 +1,7 @@ From b0bad6fd9449d3333fe1ab58953c0e6c1ce12c0d Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Wed, 3 May 2017 11:55:52 +0200 -Subject: [PATCH 001/206] Bump version to 2.03 +Subject: [PATCH 001/215] Bump version to 2.03 --- configure.ac | 2 +- diff --git a/0002-Remove-bashisms-from-tests.patch b/0002-Remove-bashisms-from-tests.patch index 9294e3f1..0f18e26b 100644 --- a/0002-Remove-bashisms-from-tests.patch +++ b/0002-Remove-bashisms-from-tests.patch @@ -1,7 +1,7 @@ From 5a0c548ba388b343b0bb6d2a38888e7eac5bbb96 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 03:47:13 +0300 -Subject: [PATCH 002/206] Remove bashisms from tests. +Subject: [PATCH 002/215] Remove bashisms from tests. Those tests don't actually need bash. Just use common shebang. --- diff --git a/0003-fs-tester-make-sh-compatible.patch b/0003-fs-tester-make-sh-compatible.patch index 8f8e1f64..cac83631 100644 --- a/0003-fs-tester-make-sh-compatible.patch +++ b/0003-fs-tester-make-sh-compatible.patch @@ -1,7 +1,7 @@ From 37865c2c4ad26cd5e947b08abf1fde8145699919 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 14:35:59 +0300 -Subject: [PATCH 003/206] fs-tester: make sh-compatible +Subject: [PATCH 003/215] fs-tester: make sh-compatible --- tests/util/grub-fs-tester.in | 306 ++++++++++++++++++++++++------------------- diff --git a/0004-support-busybox-date.patch b/0004-support-busybox-date.patch index 40cfeedc..339b81f6 100644 --- a/0004-support-busybox-date.patch +++ b/0004-support-busybox-date.patch @@ -1,7 +1,7 @@ From b43b8cacc813c2c15347de1e35cc88d9aa912d22 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 14:31:36 +0300 -Subject: [PATCH 004/206] support busybox date. +Subject: [PATCH 004/215] support busybox date. Busybox date doesn't understand weekdays in -d input, so strip them beforehand. diff --git a/0005-Don-t-retrieve-fstime-when-it-s-not-useful.patch b/0005-Don-t-retrieve-fstime-when-it-s-not-useful.patch index 3fa9c323..8842bb8b 100644 --- a/0005-Don-t-retrieve-fstime-when-it-s-not-useful.patch +++ b/0005-Don-t-retrieve-fstime-when-it-s-not-useful.patch @@ -1,7 +1,7 @@ From 6dec3a26b37e128ded5d912e08abc5cee1592499 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 21:24:05 +0300 -Subject: [PATCH 005/206] Don't retrieve fstime when it's not useful. +Subject: [PATCH 005/215] Don't retrieve fstime when it's not useful. --- tests/util/grub-fs-tester.in | 48 ++++++++++++++++++++++---------------------- diff --git a/0006-Support-lseek64.patch b/0006-Support-lseek64.patch index c97be550..97167080 100644 --- a/0006-Support-lseek64.patch +++ b/0006-Support-lseek64.patch @@ -1,7 +1,7 @@ From 608bec51128008afb81c9e3f297283e9f830a146 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 20:21:05 +0300 -Subject: [PATCH 006/206] Support lseek64. +Subject: [PATCH 006/215] Support lseek64. Android doesn't have 64-bit off_t, so use off64_t instead. --- diff --git a/0007-Use-SHELL-rather-than-bin-sh.patch b/0007-Use-SHELL-rather-than-bin-sh.patch index 5ff446f8..d1adee52 100644 --- a/0007-Use-SHELL-rather-than-bin-sh.patch +++ b/0007-Use-SHELL-rather-than-bin-sh.patch @@ -1,7 +1,7 @@ From c2ea443446b7feea868e54f94a87781f69820375 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 00:55:30 +0300 -Subject: [PATCH 007/206] Use $(SHELL) rather than /bin/sh. +Subject: [PATCH 007/215] Use $(SHELL) rather than /bin/sh. /bin/sh doesn't exist under termux. --- diff --git a/0008-po-Use-SHELL-rather-than-bin-sh.patch b/0008-po-Use-SHELL-rather-than-bin-sh.patch index 45f7f0a5..0c8db1c3 100644 --- a/0008-po-Use-SHELL-rather-than-bin-sh.patch +++ b/0008-po-Use-SHELL-rather-than-bin-sh.patch @@ -1,7 +1,7 @@ From 4341f82af0b61d3dfbe675670d4105dc759c0df3 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 14:54:03 +0300 -Subject: [PATCH 008/206] po: Use @SHELL@ rather than /bin/sh. +Subject: [PATCH 008/215] po: Use @SHELL@ rather than /bin/sh. /bin/sh might not exist. --- diff --git a/0009-Add-termux-path-to-dict.patch b/0009-Add-termux-path-to-dict.patch index 6181723d..b32b08ef 100644 --- a/0009-Add-termux-path-to-dict.patch +++ b/0009-Add-termux-path-to-dict.patch @@ -1,7 +1,7 @@ From 1073ddb12078f3c8edbdb74bb8f5afc674983f40 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 14:52:48 +0300 -Subject: [PATCH 009/206] Add termux path to dict. +Subject: [PATCH 009/215] Add termux path to dict. --- tests/util/grub-fs-tester.in | 2 +- diff --git a/0010-Fix-shebang-for-termux.patch b/0010-Fix-shebang-for-termux.patch index 065444de..2db886c9 100644 --- a/0010-Fix-shebang-for-termux.patch +++ b/0010-Fix-shebang-for-termux.patch @@ -1,7 +1,7 @@ From a827807a1330d5ad619faa103bc7f12d89fc8bee Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Sun, 22 Jan 2017 20:22:34 +0300 -Subject: [PATCH 010/206] Fix shebang for termux. +Subject: [PATCH 010/215] Fix shebang for termux. Termux doesn't have a /bin/sh. So we needto use $SHELL. Keep /bin/sh as much as possible. diff --git a/0011-Add-strtoull-test.patch b/0011-Add-strtoull-test.patch index 0efdf3fa..769aeec5 100644 --- a/0011-Add-strtoull-test.patch +++ b/0011-Add-strtoull-test.patch @@ -1,7 +1,7 @@ From ede6c9689395499f98a4c14d76b97151b4de5f54 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Wed, 3 May 2017 12:58:15 +0200 -Subject: [PATCH 011/206] Add strtoull test. +Subject: [PATCH 011/215] Add strtoull test. --- grub-core/Makefile.core.def | 5 +++++ diff --git a/0012-strtoull-Fix-behaviour-on-chars-between-9-and-a.patch b/0012-strtoull-Fix-behaviour-on-chars-between-9-and-a.patch index 9eb0a3e7..5122a07a 100644 --- a/0012-strtoull-Fix-behaviour-on-chars-between-9-and-a.patch +++ b/0012-strtoull-Fix-behaviour-on-chars-between-9-and-a.patch @@ -1,7 +1,7 @@ From dc6e1b5af83eb1c4290baf97c2d221c0865127be Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Wed, 10 Aug 2016 17:49:42 +0200 -Subject: [PATCH 012/206] strtoull: Fix behaviour on chars between '9' and 'a'. +Subject: [PATCH 012/215] strtoull: Fix behaviour on chars between '9' and 'a'. Reported by: Aaron Miller --- diff --git a/0013-Add-Virtual-LAN-support.patch b/0013-Add-Virtual-LAN-support.patch index a9cbd4b0..ead5af48 100644 --- a/0013-Add-Virtual-LAN-support.patch +++ b/0013-Add-Virtual-LAN-support.patch @@ -1,7 +1,7 @@ From d9f7de0ae3c0c09cff7257c55418450261f3e082 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Mon, 23 Dec 2013 12:32:02 -0200 -Subject: [PATCH 013/206] Add Virtual LAN support. +Subject: [PATCH 013/215] Add Virtual LAN support. This patch adds support for virtual LAN (VLAN) tagging. VLAN tagging allows multiple VLANs in a bridged network to share the same physical network link diff --git a/0014-mkimage-Pass-layout-to-mkimage_generate_elfXX-rather.patch b/0014-mkimage-Pass-layout-to-mkimage_generate_elfXX-rather.patch index 95611313..48c69010 100644 --- a/0014-mkimage-Pass-layout-to-mkimage_generate_elfXX-rather.patch +++ b/0014-mkimage-Pass-layout-to-mkimage_generate_elfXX-rather.patch @@ -1,7 +1,7 @@ From a35ac854308b0af7c86c2c7b199f6abdfa2110b0 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 17:32:15 +0200 -Subject: [PATCH 014/206] mkimage: Pass layout to mkimage_generate_elfXX rather +Subject: [PATCH 014/215] mkimage: Pass layout to mkimage_generate_elfXX rather than some fields. This allows easier extension of this function without having too long of diff --git a/0015-Refactor-arm-uboot-code-to-make-it-genereic.patch b/0015-Refactor-arm-uboot-code-to-make-it-genereic.patch index 262141bb..e4cf2d97 100644 --- a/0015-Refactor-arm-uboot-code-to-make-it-genereic.patch +++ b/0015-Refactor-arm-uboot-code-to-make-it-genereic.patch @@ -1,7 +1,7 @@ From d08c9685149e7788001ac9a209baa1d84c3628e0 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 17:47:57 +0200 -Subject: [PATCH 015/206] Refactor arm-uboot code to make it genereic. +Subject: [PATCH 015/215] Refactor arm-uboot code to make it genereic. arm-coreboot startup code can be very similar to arm-uboot but current code has U-Boot specific references. So split U-Boot part from generic part. diff --git a/0016-coreboot-Split-parts-that-are-platform-independent.patch b/0016-coreboot-Split-parts-that-are-platform-independent.patch index 82b8407f..7b54b53b 100644 --- a/0016-coreboot-Split-parts-that-are-platform-independent.patch +++ b/0016-coreboot-Split-parts-that-are-platform-independent.patch @@ -1,7 +1,7 @@ From 461bfab7b7e47fd0a76bf6076a438af1b7e2184a Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 19:06:22 +0200 -Subject: [PATCH 016/206] coreboot: Split parts that are platform-independent. +Subject: [PATCH 016/215] coreboot: Split parts that are platform-independent. We currently assume that coreboot is always i386, it's no longer the case, so split i386-coreboot parts from generic coreboot code. diff --git a/0017-Rename-uboot-halt.c-to-dummy-halt.c.patch b/0017-Rename-uboot-halt.c-to-dummy-halt.c.patch index 576afa6f..2e40e3b7 100644 --- a/0017-Rename-uboot-halt.c-to-dummy-halt.c.patch +++ b/0017-Rename-uboot-halt.c-to-dummy-halt.c.patch @@ -1,7 +1,7 @@ From 1daa716c7017f1858de117a20a31da66815435c5 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 19:31:55 +0200 -Subject: [PATCH 017/206] Rename uboot/halt.c to dummy/halt.c. +Subject: [PATCH 017/215] Rename uboot/halt.c to dummy/halt.c. It's not U-Boot specific and it's a stub. --- diff --git a/0018-Rename-uboot-datetime-to-dummy-datetime.patch b/0018-Rename-uboot-datetime-to-dummy-datetime.patch index e9ef326a..4a334771 100644 --- a/0018-Rename-uboot-datetime-to-dummy-datetime.patch +++ b/0018-Rename-uboot-datetime-to-dummy-datetime.patch @@ -1,7 +1,7 @@ From 9808c3ef956c6472a96790b60cf74f4eaa742010 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 19:37:29 +0200 -Subject: [PATCH 018/206] Rename uboot/datetime to dummy/datetime. +Subject: [PATCH 018/215] Rename uboot/datetime to dummy/datetime. It's just a stub and is not UBoot-specific. --- diff --git a/0019-arm-coreboot-Start-new-port.patch b/0019-arm-coreboot-Start-new-port.patch index 7b94f383..f11b1654 100644 --- a/0019-arm-coreboot-Start-new-port.patch +++ b/0019-arm-coreboot-Start-new-port.patch @@ -1,7 +1,7 @@ From 24e37a885269bdec9b27babf1da0bba3692d55c0 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 20:53:28 +0200 -Subject: [PATCH 019/206] arm-coreboot: Start new port. +Subject: [PATCH 019/215] arm-coreboot: Start new port. --- configure.ac | 2 + diff --git a/0020-Add-support-for-device-tree-based-drivers.patch b/0020-Add-support-for-device-tree-based-drivers.patch index 238a2092..52c96da4 100644 --- a/0020-Add-support-for-device-tree-based-drivers.patch +++ b/0020-Add-support-for-device-tree-based-drivers.patch @@ -1,7 +1,7 @@ From fcbb723d4b1f7ad4687191562621dd0eb25f4d9e Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:19:59 +0200 -Subject: [PATCH 020/206] Add support for device-tree-based drivers. +Subject: [PATCH 020/215] Add support for device-tree-based drivers. --- grub-core/Makefile.core.def | 2 + diff --git a/0021-arm-coreboot-Support-for-vexpress-timer.patch b/0021-arm-coreboot-Support-for-vexpress-timer.patch index ec127de7..445bd269 100644 --- a/0021-arm-coreboot-Support-for-vexpress-timer.patch +++ b/0021-arm-coreboot-Support-for-vexpress-timer.patch @@ -1,7 +1,7 @@ From 5a865b37866ee8cd64c080bc6fb1e537f8e2b3c6 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:26:36 +0200 -Subject: [PATCH 021/206] arm-coreboot: Support for vexpress timer. +Subject: [PATCH 021/215] arm-coreboot: Support for vexpress timer. --- grub-core/kern/arm/coreboot/timer.c | 36 ++++++++++++++++++++++++++++++++++++ diff --git a/0022-arm-coreboot-Export-FDT-routines.patch b/0022-arm-coreboot-Export-FDT-routines.patch index 467e14d9..23159344 100644 --- a/0022-arm-coreboot-Export-FDT-routines.patch +++ b/0022-arm-coreboot-Export-FDT-routines.patch @@ -1,7 +1,7 @@ From ac6b41b89fbb82a3ba843a7ed19115d81432b604 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:29:48 +0200 -Subject: [PATCH 022/206] arm-coreboot: Export FDT routines. +Subject: [PATCH 022/215] arm-coreboot: Export FDT routines. We need to use them from modules as well. --- diff --git a/0023-at_keyboard-Split-protocol-from-controller-code.patch b/0023-at_keyboard-Split-protocol-from-controller-code.patch index 5ed6e57d..01c33fed 100644 --- a/0023-at_keyboard-Split-protocol-from-controller-code.patch +++ b/0023-at_keyboard-Split-protocol-from-controller-code.patch @@ -1,7 +1,7 @@ From 216950a4eea1a1ead1c28eaca94e34ea2ef2ad19 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:41:22 +0200 -Subject: [PATCH 023/206] at_keyboard: Split protocol from controller code. +Subject: [PATCH 023/215] at_keyboard: Split protocol from controller code. On vexpress controller is different but protocol is the same, so reuse the code. diff --git a/0024-arm_coreboot-Support-keyboard-for-vexpress.patch b/0024-arm_coreboot-Support-keyboard-for-vexpress.patch index dace31a4..e6ecae34 100644 --- a/0024-arm_coreboot-Support-keyboard-for-vexpress.patch +++ b/0024-arm_coreboot-Support-keyboard-for-vexpress.patch @@ -1,7 +1,7 @@ From 848bed9d92cf20e9f25db4c69a20efad23996ca0 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:42:37 +0200 -Subject: [PATCH 024/206] arm_coreboot: Support keyboard for vexpress. +Subject: [PATCH 024/215] arm_coreboot: Support keyboard for vexpress. --- grub-core/Makefile.core.def | 3 + diff --git a/0025-arm_coreboot-Support-grub-mkstandalone.patch b/0025-arm_coreboot-Support-grub-mkstandalone.patch index ae99cb81..639fba55 100644 --- a/0025-arm_coreboot-Support-grub-mkstandalone.patch +++ b/0025-arm_coreboot-Support-grub-mkstandalone.patch @@ -1,7 +1,7 @@ From 3edabad8fefb112cc4b2d43be6e97d43c909ceee Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:59:48 +0200 -Subject: [PATCH 025/206] arm_coreboot: Support grub-mkstandalone. +Subject: [PATCH 025/215] arm_coreboot: Support grub-mkstandalone. --- util/grub-install-common.c | 12 ++++++++++-- diff --git a/0026-arm_coreboot-Support-loading-linux-images.patch b/0026-arm_coreboot-Support-loading-linux-images.patch index 4a11ebdb..f90aa0e9 100644 --- a/0026-arm_coreboot-Support-loading-linux-images.patch +++ b/0026-arm_coreboot-Support-loading-linux-images.patch @@ -1,7 +1,7 @@ From 656c3b0d7fbe23f0e1ab561c8faa4ac4a37364d1 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 22:00:06 +0200 -Subject: [PATCH 026/206] arm_coreboot: Support loading linux images. +Subject: [PATCH 026/215] arm_coreboot: Support loading linux images. --- grub-core/loader/arm/linux.c | 132 ++++++++++++++++++++++--------------------- diff --git a/0027-arm_coreboot-Support-DMA.patch b/0027-arm_coreboot-Support-DMA.patch index cdf961cb..098d25c9 100644 --- a/0027-arm_coreboot-Support-DMA.patch +++ b/0027-arm_coreboot-Support-DMA.patch @@ -1,7 +1,7 @@ From 265292f2b0da0eb414c409871ba0f94a99ec33c1 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 22:06:04 +0200 -Subject: [PATCH 027/206] arm_coreboot: Support DMA. +Subject: [PATCH 027/215] arm_coreboot: Support DMA. This is needed to support USB and some other busses. --- diff --git a/0028-ehci-Split-core-code-from-PCI-part.patch b/0028-ehci-Split-core-code-from-PCI-part.patch index 346ca6e7..7433947d 100644 --- a/0028-ehci-Split-core-code-from-PCI-part.patch +++ b/0028-ehci-Split-core-code-from-PCI-part.patch @@ -1,7 +1,7 @@ From 058df7b5a9cc7aaa9872eaa916b715544a8f9840 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 22:10:26 +0200 -Subject: [PATCH 028/206] ehci: Split core code from PCI part. +Subject: [PATCH 028/215] ehci: Split core code from PCI part. On ARM often EHCI is present without PCI and just declared in device tree. So splitcore from PCI part. diff --git a/0029-arm_coreboot-Support-EHCI.patch b/0029-arm_coreboot-Support-EHCI.patch index b9c852d5..efd79d60 100644 --- a/0029-arm_coreboot-Support-EHCI.patch +++ b/0029-arm_coreboot-Support-EHCI.patch @@ -1,7 +1,7 @@ From d11ced1e1fb93676942e51618eb53c140f541890 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 22:14:28 +0200 -Subject: [PATCH 029/206] arm_coreboot: Support EHCI. +Subject: [PATCH 029/215] arm_coreboot: Support EHCI. --- grub-core/Makefile.core.def | 2 ++ diff --git a/0030-Fix-bug-on-FDT-nodes-with-compatible-property.patch b/0030-Fix-bug-on-FDT-nodes-with-compatible-property.patch index 35a4dc1f..c243f64b 100644 --- a/0030-Fix-bug-on-FDT-nodes-with-compatible-property.patch +++ b/0030-Fix-bug-on-FDT-nodes-with-compatible-property.patch @@ -1,7 +1,7 @@ From 4f8471532d454b2db96434c28bf7105ed69e0f4d Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 08:39:40 +0200 -Subject: [PATCH 030/206] Fix bug on FDT nodes with compatible property +Subject: [PATCH 030/215] Fix bug on FDT nodes with compatible property --- grub-core/bus/fdt.c | 2 ++ diff --git a/0031-fdtbus-Add-ability-to-send-receive-messages-on-paren.patch b/0031-fdtbus-Add-ability-to-send-receive-messages-on-paren.patch index e669ab49..c977a389 100644 --- a/0031-fdtbus-Add-ability-to-send-receive-messages-on-paren.patch +++ b/0031-fdtbus-Add-ability-to-send-receive-messages-on-paren.patch @@ -1,7 +1,7 @@ From c4313c812dc14e82a774b580b5e34d40e7f3fae6 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 08:40:29 +0200 -Subject: [PATCH 031/206] fdtbus: Add ability to send/receive messages on +Subject: [PATCH 031/215] fdtbus: Add ability to send/receive messages on parent busses. --- diff --git a/0032-rk3288_spi-Add-SPI-driver.patch b/0032-rk3288_spi-Add-SPI-driver.patch index faa0d4c7..00dac2ee 100644 --- a/0032-rk3288_spi-Add-SPI-driver.patch +++ b/0032-rk3288_spi-Add-SPI-driver.patch @@ -1,7 +1,7 @@ From b0b1b81a11f8bae8ab9e8edd87ac3f4f7949d03b Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 08:42:14 +0200 -Subject: [PATCH 032/206] rk3288_spi: Add SPI driver +Subject: [PATCH 032/215] rk3288_spi: Add SPI driver --- grub-core/Makefile.core.def | 1 + diff --git a/0033-arm_coreboot-Add-Chromebook-keyboard-driver.patch b/0033-arm_coreboot-Add-Chromebook-keyboard-driver.patch index 3e0c23d4..a6b81f25 100644 --- a/0033-arm_coreboot-Add-Chromebook-keyboard-driver.patch +++ b/0033-arm_coreboot-Add-Chromebook-keyboard-driver.patch @@ -1,7 +1,7 @@ From 5c3fd1b135bd73c8e3467b9b635b25ca4d360a19 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 08:47:34 +0200 -Subject: [PATCH 033/206] arm_coreboot: Add Chromebook keyboard driver. +Subject: [PATCH 033/215] arm_coreboot: Add Chromebook keyboard driver. --- grub-core/term/arm/cros.c | 125 +++++++++++++++++++++++ diff --git a/0034-Missing-parts-of-previous-commit.patch b/0034-Missing-parts-of-previous-commit.patch index 620ae27a..9c00e963 100644 --- a/0034-Missing-parts-of-previous-commit.patch +++ b/0034-Missing-parts-of-previous-commit.patch @@ -1,7 +1,7 @@ From c6eaa982d12e3cfc5465dda5ea372774188b6b81 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 09:02:15 +0200 -Subject: [PATCH 034/206] Missing parts of previous commit +Subject: [PATCH 034/215] Missing parts of previous commit --- grub-core/Makefile.core.def | 2 ++ diff --git a/0035-coreboot-Changed-cbmemc-to-support-updated-console-f.patch b/0035-coreboot-Changed-cbmemc-to-support-updated-console-f.patch index 41c8bd2d..4fad8500 100644 --- a/0035-coreboot-Changed-cbmemc-to-support-updated-console-f.patch +++ b/0035-coreboot-Changed-cbmemc-to-support-updated-console-f.patch @@ -1,7 +1,7 @@ From 70b555a52a065b2beb91e6fc97a6b358c931b303 Mon Sep 17 00:00:00 2001 From: Julius Werner Date: Tue, 9 May 2017 09:03:02 +0200 -Subject: [PATCH 035/206] coreboot: Changed cbmemc to support updated console +Subject: [PATCH 035/215] coreboot: Changed cbmemc to support updated console format from coreboot. --- diff --git a/0036-at_keyboard-Fix-falco-chromebook-case.patch b/0036-at_keyboard-Fix-falco-chromebook-case.patch index 4fae41d8..d40b4b03 100644 --- a/0036-at_keyboard-Fix-falco-chromebook-case.patch +++ b/0036-at_keyboard-Fix-falco-chromebook-case.patch @@ -1,7 +1,7 @@ From c4b8bec5fee4e30a165fd14a188cf3ab8eccd095 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 14:27:52 +0200 -Subject: [PATCH 036/206] at_keyboard: Fix falco chromebook case. +Subject: [PATCH 036/215] at_keyboard: Fix falco chromebook case. EC is slow, so we need few delays for it to toggle the bits correctly. diff --git a/0037-sparc64-Close-cdboot-ihandle.patch b/0037-sparc64-Close-cdboot-ihandle.patch index b1703ff1..2fc9ab43 100644 --- a/0037-sparc64-Close-cdboot-ihandle.patch +++ b/0037-sparc64-Close-cdboot-ihandle.patch @@ -1,7 +1,7 @@ From bd4e40aadded7093908d786d03b4acf60b7b1707 Mon Sep 17 00:00:00 2001 From: Eric Snowberg Date: Thu, 11 May 2017 18:42:23 -0700 -Subject: [PATCH 037/206] sparc64: Close cdboot ihandle +Subject: [PATCH 037/215] sparc64: Close cdboot ihandle The ihandle is left open with a cd-core image. This will cause a delay booting grub from a virtual cdrom in a LDOM. It will also cause problems diff --git a/0038-arm64-xen_boot-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch b/0038-arm64-xen_boot-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch index 9702794c..4829c487 100644 --- a/0038-arm64-xen_boot-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch +++ b/0038-arm64-xen_boot-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch @@ -1,7 +1,7 @@ From ae5817f1dcbf0b99f7a849f56afe442165317840 Mon Sep 17 00:00:00 2001 From: Julien Grall Date: Fri, 19 Feb 2016 16:28:52 +0000 -Subject: [PATCH 038/206] arm64/xen_boot: Fix Xen boot using GRUB2 on AARCH64 +Subject: [PATCH 038/215] arm64/xen_boot: Fix Xen boot using GRUB2 on AARCH64 Xen is currently crashing because of malformed compatible property for the boot module. This is because the property string is not diff --git a/0039-arm64-Add-nounzip-option-support-in-xen_module-comma.patch b/0039-arm64-Add-nounzip-option-support-in-xen_module-comma.patch index 05bfcf04..42897ffa 100644 --- a/0039-arm64-Add-nounzip-option-support-in-xen_module-comma.patch +++ b/0039-arm64-Add-nounzip-option-support-in-xen_module-comma.patch @@ -1,7 +1,7 @@ From 8eed7be8a61c295df700e918744a984162378ca9 Mon Sep 17 00:00:00 2001 From: Fu Wei Date: Sun, 14 May 2017 15:43:45 +0800 -Subject: [PATCH 039/206] arm64: Add "--nounzip" option support in xen_module +Subject: [PATCH 039/215] arm64: Add "--nounzip" option support in xen_module command This patch adds "--nounzip" option support in order to diff --git a/0040-util-grub.d-20_linux_xen.in-Add-xen_boot-command-sup.patch b/0040-util-grub.d-20_linux_xen.in-Add-xen_boot-command-sup.patch index eff0106d..14669942 100644 --- a/0040-util-grub.d-20_linux_xen.in-Add-xen_boot-command-sup.patch +++ b/0040-util-grub.d-20_linux_xen.in-Add-xen_boot-command-sup.patch @@ -1,7 +1,7 @@ From d33045ce7ffcb7c1e4a60c14d5ca64b36e3c5abe Mon Sep 17 00:00:00 2001 From: Fu Wei Date: Sun, 14 May 2017 15:43:46 +0800 -Subject: [PATCH 040/206] util/grub.d/20_linux_xen.in: Add xen_boot command +Subject: [PATCH 040/215] util/grub.d/20_linux_xen.in: Add xen_boot command support for aarch64 This patch adds the support of xen_boot command for aarch64: diff --git a/0041-arm64-Update-the-introduction-of-Xen-boot-commands-i.patch b/0041-arm64-Update-the-introduction-of-Xen-boot-commands-i.patch index a43e3c09..e0f5d1ce 100644 --- a/0041-arm64-Update-the-introduction-of-Xen-boot-commands-i.patch +++ b/0041-arm64-Update-the-introduction-of-Xen-boot-commands-i.patch @@ -1,7 +1,7 @@ From 26c2f306fd425d2c0348023b8dcb7eb40a01851a Mon Sep 17 00:00:00 2001 From: Fu Wei Date: Sun, 14 May 2017 15:43:47 +0800 -Subject: [PATCH 041/206] arm64: Update the introduction of Xen boot commands +Subject: [PATCH 041/215] arm64: Update the introduction of Xen boot commands in docs/grub.texi delete: xen_linux, xen_initrd, xen_xsm diff --git a/0042-sparc64-Don-t-use-devspec-to-determine-the-OBP-path.patch b/0042-sparc64-Don-t-use-devspec-to-determine-the-OBP-path.patch index 24332093..40ad9a9e 100644 --- a/0042-sparc64-Don-t-use-devspec-to-determine-the-OBP-path.patch +++ b/0042-sparc64-Don-t-use-devspec-to-determine-the-OBP-path.patch @@ -1,7 +1,7 @@ From f8679cedff703b437171f4708d46adbfcff80a65 Mon Sep 17 00:00:00 2001 From: Eric Snowberg Date: Thu, 18 May 2017 17:10:22 -0600 -Subject: [PATCH 042/206] sparc64: Don't use devspec to determine the OBP path +Subject: [PATCH 042/215] sparc64: Don't use devspec to determine the OBP path Don't use devspec to determine the OBP path on SPARC hardware. Within all versions of Linux on SPARC, the devspec returns one of three values: diff --git a/0043-Allow-GRUB-to-mount-ext2-3-4-filesystems-that-have-t.patch b/0043-Allow-GRUB-to-mount-ext2-3-4-filesystems-that-have-t.patch index 7fc05dc9..390f3801 100644 --- a/0043-Allow-GRUB-to-mount-ext2-3-4-filesystems-that-have-t.patch +++ b/0043-Allow-GRUB-to-mount-ext2-3-4-filesystems-that-have-t.patch @@ -1,7 +1,7 @@ From 734668238fcc0ef691a080839e04f33854fa133a Mon Sep 17 00:00:00 2001 From: Eric Biggers Date: Thu, 29 Jun 2017 13:27:49 +0000 -Subject: [PATCH 043/206] Allow GRUB to mount ext2/3/4 filesystems that have +Subject: [PATCH 043/215] Allow GRUB to mount ext2/3/4 filesystems that have the encryption feature. On such a filesystem, inodes may have EXT4_ENCRYPT_FLAG set. diff --git a/0044-ehci-Fix-compilation-for-amd64.patch b/0044-ehci-Fix-compilation-for-amd64.patch index 79dcd29f..9063fa45 100644 --- a/0044-ehci-Fix-compilation-for-amd64.patch +++ b/0044-ehci-Fix-compilation-for-amd64.patch @@ -1,7 +1,7 @@ From edb37fb30bbc8a3b6bec67911c7200e4eb071127 Mon Sep 17 00:00:00 2001 From: phcoder Date: Sun, 9 Jul 2017 20:58:31 +0200 -Subject: [PATCH 044/206] ehci: Fix compilation for amd64 +Subject: [PATCH 044/215] ehci: Fix compilation for amd64 --- grub-core/bus/usb/ehci.c | 8 ++++---- diff --git a/0045-cache-Fix-compilation-for-ppc-sparc-and-arm64.patch b/0045-cache-Fix-compilation-for-ppc-sparc-and-arm64.patch index 255bfc97..2c978dc9 100644 --- a/0045-cache-Fix-compilation-for-ppc-sparc-and-arm64.patch +++ b/0045-cache-Fix-compilation-for-ppc-sparc-and-arm64.patch @@ -1,7 +1,7 @@ From d8901e3ba115d705c9c08ecedd201aca8b4867b8 Mon Sep 17 00:00:00 2001 From: phcoder Date: Sun, 9 Jul 2017 20:59:15 +0200 -Subject: [PATCH 045/206] cache: Fix compilation for ppc, sparc and arm64 +Subject: [PATCH 045/215] cache: Fix compilation for ppc, sparc and arm64 --- include/grub/cache.h | 4 +++- diff --git a/0046-ehci-Fix-compilation-on-i386.patch b/0046-ehci-Fix-compilation-on-i386.patch index e8744630..ed7551bc 100644 --- a/0046-ehci-Fix-compilation-on-i386.patch +++ b/0046-ehci-Fix-compilation-on-i386.patch @@ -1,7 +1,7 @@ From 284afab081ef7ed7db2c59151853aa3c92d988f2 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Sun, 9 Jul 2017 21:31:19 +0200 -Subject: [PATCH 046/206] ehci: Fix compilation on i386 +Subject: [PATCH 046/215] ehci: Fix compilation on i386 --- grub-core/bus/usb/ehci.c | 4 ++-- diff --git a/0047-crypto-Fix-use-after-free.patch b/0047-crypto-Fix-use-after-free.patch index 1f75e306..3a418a37 100644 --- a/0047-crypto-Fix-use-after-free.patch +++ b/0047-crypto-Fix-use-after-free.patch @@ -1,7 +1,7 @@ From a0fe0c26aa8a1c0ad66d9527611bd726b849c623 Mon Sep 17 00:00:00 2001 From: AppChecker Date: Sun, 9 Jul 2017 21:57:35 +0200 -Subject: [PATCH 047/206] crypto: Fix use after free. +Subject: [PATCH 047/215] crypto: Fix use after free. Reported by: AppChecker Transformed to patch by: Satish Govindarajan diff --git a/0048-arm-efi-Fix-compilation.patch b/0048-arm-efi-Fix-compilation.patch index 293fae2d..d7b401cb 100644 --- a/0048-arm-efi-Fix-compilation.patch +++ b/0048-arm-efi-Fix-compilation.patch @@ -1,7 +1,7 @@ From cb8b7e4e36bf32dccbbba8252aa44ad3ada4fbc1 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Sun, 9 Jul 2017 21:48:37 +0000 -Subject: [PATCH 048/206] arm-efi: Fix compilation +Subject: [PATCH 048/215] arm-efi: Fix compilation --- grub-core/loader/arm/linux.c | 8 ++++---- diff --git a/0049-fdt-silence-clang-warning.patch b/0049-fdt-silence-clang-warning.patch index b14fa02d..85f2db02 100644 --- a/0049-fdt-silence-clang-warning.patch +++ b/0049-fdt-silence-clang-warning.patch @@ -1,7 +1,7 @@ From 68d54b55f49249c5e0517bf189f0f3df7ee6a36f Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 10 Jul 2017 01:34:22 +0000 -Subject: [PATCH 049/206] fdt: silence clang warning. +Subject: [PATCH 049/215] fdt: silence clang warning. --- grub-core/lib/fdt.c | 3 ++- diff --git a/0050-Fix-a-segfault-in-lsefi.patch b/0050-Fix-a-segfault-in-lsefi.patch index 61bf11a2..fc7703ce 100644 --- a/0050-Fix-a-segfault-in-lsefi.patch +++ b/0050-Fix-a-segfault-in-lsefi.patch @@ -1,7 +1,7 @@ From e8ab5a1a9e2889eb59d1fa494ba441a53698dcd2 Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Wed, 19 Jul 2017 15:47:41 -0400 -Subject: [PATCH 050/206] Fix a segfault in lsefi +Subject: [PATCH 050/215] Fix a segfault in lsefi when protocols_per_handle returns error, we can't use the pointers we passed to it, and that includes trusting num_protocols. diff --git a/0051-zfs-remove-size_t-typedef-and-use-grub_size_t-instea.patch b/0051-zfs-remove-size_t-typedef-and-use-grub_size_t-instea.patch index 674da494..0a0fe177 100644 --- a/0051-zfs-remove-size_t-typedef-and-use-grub_size_t-instea.patch +++ b/0051-zfs-remove-size_t-typedef-and-use-grub_size_t-instea.patch @@ -1,7 +1,7 @@ From fa42786264cef98c56e972b3bb6b8448000e1c70 Mon Sep 17 00:00:00 2001 From: Pete Batard Date: Thu, 3 Aug 2017 15:46:15 +0100 -Subject: [PATCH 051/206] zfs: remove size_t typedef and use grub_size_t +Subject: [PATCH 051/215] zfs: remove size_t typedef and use grub_size_t instead * Prevents some toolchains from issuing a warning on size_t redef. diff --git a/0052-udf-Fix-reading-label-lvd.ident-is-dstring.patch b/0052-udf-Fix-reading-label-lvd.ident-is-dstring.patch index 48a6051e..7aa0f12a 100644 --- a/0052-udf-Fix-reading-label-lvd.ident-is-dstring.patch +++ b/0052-udf-Fix-reading-label-lvd.ident-is-dstring.patch @@ -1,7 +1,7 @@ From 76188809d5ca40c5285b0ab202b5edea7be3f04d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pali=20Roh=C3=A1r?= Date: Thu, 22 Jun 2017 14:33:17 +0200 -Subject: [PATCH 052/206] udf: Fix reading label, lvd.ident is dstring +Subject: [PATCH 052/215] udf: Fix reading label, lvd.ident is dstring UDF dstring has stored length in the last byte of buffer. Therefore last byte is not part of recorded characters. And empty string in dstring is diff --git a/0053-grub-core-fs-udf.c-Add-support-for-UUID.patch b/0053-grub-core-fs-udf.c-Add-support-for-UUID.patch index cc843bc1..ad500252 100644 --- a/0053-grub-core-fs-udf.c-Add-support-for-UUID.patch +++ b/0053-grub-core-fs-udf.c-Add-support-for-UUID.patch @@ -1,7 +1,7 @@ From 435fa75e01ef40917239c7f775e505e86f70d202 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pali=20Roh=C3=A1r?= Date: Thu, 22 Jun 2017 14:42:16 +0200 -Subject: [PATCH 053/206] * grub-core/fs/udf.c: Add support for UUID +Subject: [PATCH 053/215] * grub-core/fs/udf.c: Add support for UUID Use same algorithm as in libblkid from util-linux v2.30. diff --git a/0054-mkrescue-Check-xorriso-presence-before-doing-anythin.patch b/0054-mkrescue-Check-xorriso-presence-before-doing-anythin.patch index 27b01815..92be0c97 100644 --- a/0054-mkrescue-Check-xorriso-presence-before-doing-anythin.patch +++ b/0054-mkrescue-Check-xorriso-presence-before-doing-anythin.patch @@ -1,7 +1,7 @@ From 9e962fd3c42081e2eef1f99a0eaab38fd04d2620 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 7 Aug 2017 18:05:17 +0200 -Subject: [PATCH 054/206] mkrescue: Check xorriso presence before doing +Subject: [PATCH 054/215] mkrescue: Check xorriso presence before doing anything else. mkrescue can't do anything useful without xorriso, so abort early if it's diff --git a/0055-Fail-if-xorriso-failed.patch b/0055-Fail-if-xorriso-failed.patch index dc9ef57e..44e8c159 100644 --- a/0055-Fail-if-xorriso-failed.patch +++ b/0055-Fail-if-xorriso-failed.patch @@ -1,7 +1,7 @@ From e66dc5d71ebfc9763420a76c274e6980d54641c3 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 7 Aug 2017 18:08:39 +0200 -Subject: [PATCH 055/206] Fail if xorriso failed. +Subject: [PATCH 055/215] Fail if xorriso failed. If xorriso failed most likely we didn't generate a meaningful image. --- diff --git a/0056-efi-refactor-grub_efi_allocate_pages.patch b/0056-efi-refactor-grub_efi_allocate_pages.patch index 6323600c..fe332c0c 100644 --- a/0056-efi-refactor-grub_efi_allocate_pages.patch +++ b/0056-efi-refactor-grub_efi_allocate_pages.patch @@ -1,7 +1,7 @@ From dd5fde2df83c5c03b7ba04d2cc5b7be96de8da7b Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:23 +0100 -Subject: [PATCH 056/206] efi: refactor grub_efi_allocate_pages +Subject: [PATCH 056/215] efi: refactor grub_efi_allocate_pages Expose a new function, grub_efi_allocate_pages_real(), making it possible to specify allocation type and memory type as supported by the UEFI diff --git a/0057-Remove-grub_efi_allocate_pages.patch b/0057-Remove-grub_efi_allocate_pages.patch index d94124c2..1a1a6610 100644 --- a/0057-Remove-grub_efi_allocate_pages.patch +++ b/0057-Remove-grub_efi_allocate_pages.patch @@ -1,7 +1,7 @@ From 4bc909bf89f5b4ff86c9e4e609d4fe0c11a66b0c Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 7 Aug 2017 18:33:29 +0200 -Subject: [PATCH 057/206] Remove grub_efi_allocate_pages. +Subject: [PATCH 057/215] Remove grub_efi_allocate_pages. grub_efi_allocate_pages Essentially does 2 unrelated things: * Allocate at fixed address. diff --git a/0058-efi-move-fdt-helper-library.patch b/0058-efi-move-fdt-helper-library.patch index 54933386..45701879 100644 --- a/0058-efi-move-fdt-helper-library.patch +++ b/0058-efi-move-fdt-helper-library.patch @@ -1,7 +1,7 @@ From 8c9465fac901caac6802d6872a1374518b001517 Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:24 +0100 -Subject: [PATCH 058/206] efi: move fdt helper library +Subject: [PATCH 058/215] efi: move fdt helper library There is nothing ARM64 (or even ARM) specific about the efi fdt helper library, which is used for locating or overriding a firmware-provided diff --git a/0059-efi-Add-GRUB_PE32_MAGIC-definition.patch b/0059-efi-Add-GRUB_PE32_MAGIC-definition.patch index bd04a4cc..922de546 100644 --- a/0059-efi-Add-GRUB_PE32_MAGIC-definition.patch +++ b/0059-efi-Add-GRUB_PE32_MAGIC-definition.patch @@ -1,7 +1,7 @@ From c5841ba7f0d14c193f20854e7e55b4f7ce9207d5 Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:25 +0100 -Subject: [PATCH 059/206] efi: Add GRUB_PE32_MAGIC definition +Subject: [PATCH 059/215] efi: Add GRUB_PE32_MAGIC definition Add a generic GRUB_PE32_MAGIC definition for the PE 'MZ' tag and delete the existing one in arm64/linux.h. diff --git a/0060-arm64-linux-loader-improve-type-portability.patch b/0060-arm64-linux-loader-improve-type-portability.patch index 967aa602..d86de75a 100644 --- a/0060-arm64-linux-loader-improve-type-portability.patch +++ b/0060-arm64-linux-loader-improve-type-portability.patch @@ -1,7 +1,7 @@ From 91212e0aa07e704a61e4540c18a27f149f5e51c3 Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:26 +0100 -Subject: [PATCH 060/206] arm64 linux loader: improve type portability +Subject: [PATCH 060/215] arm64 linux loader: improve type portability In preparation for turning this into a common loader for 32-bit and 64-bit platforms, ensure the code will compile cleanly for either. diff --git a/0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch b/0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch index 285e8604..f725ebda 100644 --- a/0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch +++ b/0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch @@ -1,7 +1,7 @@ From f826330683675f0deb55b58fd229afd7d65fb053 Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:32 +0100 -Subject: [PATCH 061/206] efi: change heap allocation type to +Subject: [PATCH 061/215] efi: change heap allocation type to GRUB_EFI_LOADER_CODE With upcoming changes to EDK2, allocations of type EFI_LOADER_DATA may diff --git a/0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch b/0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch index e446af49..a8a0056a 100644 --- a/0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch +++ b/0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch @@ -1,7 +1,7 @@ From bdd89d239cd9b4089630bfb5ec862aab8086dca2 Mon Sep 17 00:00:00 2001 From: Pete Batard Date: Mon, 7 Aug 2017 16:20:30 +0100 -Subject: [PATCH 062/206] core: use GRUB_TERM_ definitions when handling term +Subject: [PATCH 062/215] core: use GRUB_TERM_ definitions when handling term characters * Also use hex value for GRUB_TERM_ESC as '\e' is not in the C standard and is not understood by some compilers diff --git a/0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch b/0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch index fe6c90bc..8738ce1b 100644 --- a/0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch +++ b/0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch @@ -1,7 +1,7 @@ From 1deebd85ef87cc581e995ce0a51dc0802ac9c367 Mon Sep 17 00:00:00 2001 From: Pete Batard Date: Mon, 7 Aug 2017 16:23:12 +0100 -Subject: [PATCH 063/206] io: add a GRUB_GZ prefix to gzio specific defines +Subject: [PATCH 063/215] io: add a GRUB_GZ prefix to gzio specific defines * This is done to avoid a conflict with a PACKED define in the EDK2 --- diff --git a/0064-info-in-builddir.patch b/0064-info-in-builddir.patch index 720cc3ad..68c8e995 100644 --- a/0064-info-in-builddir.patch +++ b/0064-info-in-builddir.patch @@ -1,7 +1,7 @@ From 5cf0df8753c19e83251c7244cafe38869a65060f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 8 Aug 2017 13:08:59 -0400 -Subject: [PATCH 064/206] info-in-builddir +Subject: [PATCH 064/215] info-in-builddir --- docs/Makefile.am | 2 +- diff --git a/0065-re-write-.gitignore.patch b/0065-re-write-.gitignore.patch index 419fc927..664de872 100644 --- a/0065-re-write-.gitignore.patch +++ b/0065-re-write-.gitignore.patch @@ -1,7 +1,7 @@ From ff9da35fd789354cc1490b75893e765771808352 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 8 Aug 2017 12:48:04 -0400 -Subject: [PATCH 065/206] re-write .gitignore +Subject: [PATCH 065/215] re-write .gitignore --- .gitignore | 352 ++++++++++++-------------------------- diff --git a/0066-IBM-client-architecture-CAS-reboot-support.patch b/0066-IBM-client-architecture-CAS-reboot-support.patch index 56a631b4..160d17bf 100644 --- a/0066-IBM-client-architecture-CAS-reboot-support.patch +++ b/0066-IBM-client-architecture-CAS-reboot-support.patch @@ -1,7 +1,7 @@ From 34423216f8f3d7ce6086e2f1ee9869407e6a2221 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Thu, 20 Sep 2012 18:07:39 -0300 -Subject: [PATCH 066/206] IBM client architecture (CAS) reboot support +Subject: [PATCH 066/215] IBM client architecture (CAS) reboot support This is an implementation of IBM client architecture (CAS) reboot for GRUB. diff --git a/0067-for-ppc-reset-console-display-attr-when-clear-screen.patch b/0067-for-ppc-reset-console-display-attr-when-clear-screen.patch index 5e26ad56..5073fd97 100644 --- a/0067-for-ppc-reset-console-display-attr-when-clear-screen.patch +++ b/0067-for-ppc-reset-console-display-attr-when-clear-screen.patch @@ -1,7 +1,7 @@ From 070dc282d3cc6602571296e90945df9d4671aecb Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Wed, 24 Apr 2013 10:51:48 -0300 -Subject: [PATCH 067/206] for ppc, reset console display attr when clear screen +Subject: [PATCH 067/215] for ppc, reset console display attr when clear screen v2: Also use \x0c instead of a literal ^L to make future patches less awkward. diff --git a/0068-Disable-GRUB-video-support-for-IBM-power-machines.patch b/0068-Disable-GRUB-video-support-for-IBM-power-machines.patch index d28e94ac..9c7a23bf 100644 --- a/0068-Disable-GRUB-video-support-for-IBM-power-machines.patch +++ b/0068-Disable-GRUB-video-support-for-IBM-power-machines.patch @@ -1,7 +1,7 @@ From 4e31478fdf4cda470305c1bb2acb9b820e790757 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 11 Jun 2013 15:14:05 -0300 -Subject: [PATCH 068/206] Disable GRUB video support for IBM power machines +Subject: [PATCH 068/215] Disable GRUB video support for IBM power machines Should fix the problem in bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=973205 diff --git a/0069-Honor-a-symlink-when-generating-configuration-by-gru.patch b/0069-Honor-a-symlink-when-generating-configuration-by-gru.patch index 15dd2f63..2da0f6af 100644 --- a/0069-Honor-a-symlink-when-generating-configuration-by-gru.patch +++ b/0069-Honor-a-symlink-when-generating-configuration-by-gru.patch @@ -1,7 +1,7 @@ From 35535549324923af7fecf79cc739baba48246f21 Mon Sep 17 00:00:00 2001 From: Marcel Kolaja Date: Tue, 21 Jan 2014 10:57:08 -0500 -Subject: [PATCH 069/206] Honor a symlink when generating configuration by +Subject: [PATCH 069/215] Honor a symlink when generating configuration by grub2-mkconfig Honor a symlink when generating configuration by grub2-mkconfig, so that diff --git a/0070-Move-bash-completion-script-922997.patch b/0070-Move-bash-completion-script-922997.patch index ee0e467e..7547df32 100644 --- a/0070-Move-bash-completion-script-922997.patch +++ b/0070-Move-bash-completion-script-922997.patch @@ -1,7 +1,7 @@ From 999bbc2002275efce284aed6e1e31b3ca351fa19 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 3 Apr 2013 14:35:34 -0400 -Subject: [PATCH 070/206] Move bash completion script (#922997) +Subject: [PATCH 070/215] Move bash completion script (#922997) Apparently these go in a new place now. --- diff --git a/0071-Update-to-minilzo-2.08.patch b/0071-Update-to-minilzo-2.08.patch index ec5d258e..32d0c714 100644 --- a/0071-Update-to-minilzo-2.08.patch +++ b/0071-Update-to-minilzo-2.08.patch @@ -1,7 +1,7 @@ From c0977f7fd42e16cc568af7ae667a2aeda85eb583 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Dec 2014 15:36:09 -0500 -Subject: [PATCH 071/206] Update to minilzo-2.08 +Subject: [PATCH 071/215] Update to minilzo-2.08 This fixes CVE-2014-4607 - lzo: lzo1x_decompress_safe() integer overflow diff --git a/0072-Allow-fallback-to-include-entries-by-title-not-just-.patch b/0072-Allow-fallback-to-include-entries-by-title-not-just-.patch index d9c58f5b..0fb86044 100644 --- a/0072-Allow-fallback-to-include-entries-by-title-not-just-.patch +++ b/0072-Allow-fallback-to-include-entries-by-title-not-just-.patch @@ -1,7 +1,7 @@ From 15e9ccc8abd5621107788bea6ae6f2bdb27a3ed3 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 5 Sep 2014 10:07:04 -0400 -Subject: [PATCH 072/206] Allow "fallback" to include entries by title, not +Subject: [PATCH 072/215] Allow "fallback" to include entries by title, not just number. Resolves: rhbz#1026084 diff --git a/0073-Add-GRUB_DISABLE_UUID.patch b/0073-Add-GRUB_DISABLE_UUID.patch index b4383eb8..aa2cd130 100644 --- a/0073-Add-GRUB_DISABLE_UUID.patch +++ b/0073-Add-GRUB_DISABLE_UUID.patch @@ -1,7 +1,7 @@ From 87602724b509a60628623baabf5a2c7741a68884 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Sep 2014 16:49:25 -0400 -Subject: [PATCH 073/206] Add GRUB_DISABLE_UUID. +Subject: [PATCH 073/215] Add GRUB_DISABLE_UUID. This will cause "search --fs-uuid --set=root ..." not to be generated by grub2-mkconfig, and instead simply attempt to use the grub device name diff --git a/0074-Make-exit-take-a-return-code.patch b/0074-Make-exit-take-a-return-code.patch index 7c9cf525..7c6494ef 100644 --- a/0074-Make-exit-take-a-return-code.patch +++ b/0074-Make-exit-take-a-return-code.patch @@ -1,7 +1,7 @@ From 68d514b51b81911d8359d7825618112dae4a44d9 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 26 Feb 2014 21:49:12 -0500 -Subject: [PATCH 074/206] Make "exit" take a return code. +Subject: [PATCH 074/215] Make "exit" take a return code. This adds "exit" with a return code. With this patch, any "exit" command /may/ include a return code, and on platforms that support diff --git a/0075-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch b/0075-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch index 0065b739..490c6f2f 100644 --- a/0075-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch +++ b/0075-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch @@ -1,7 +1,7 @@ From 126f6952b853ea67e784650ed12f365ab7988f51 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 22 Jul 2015 11:21:01 -0400 -Subject: [PATCH 075/206] Mark po/exclude.pot as binary so git won't try to +Subject: [PATCH 075/215] Mark po/exclude.pot as binary so git won't try to diff nonprintables. Signed-off-by: Peter Jones diff --git a/0076-Make-efi-machines-load-an-env-block-from-a-variable.patch b/0076-Make-efi-machines-load-an-env-block-from-a-variable.patch index 000c33d4..1b748e09 100644 --- a/0076-Make-efi-machines-load-an-env-block-from-a-variable.patch +++ b/0076-Make-efi-machines-load-an-env-block-from-a-variable.patch @@ -1,7 +1,7 @@ From 506b52759b2b2ad46e7b389979fcbaa78d68dab9 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 7 Dec 2015 14:20:49 -0500 -Subject: [PATCH 076/206] Make efi machines load an env block from a variable +Subject: [PATCH 076/215] Make efi machines load an env block from a variable Signed-off-by: Peter Jones --- diff --git a/0077-DHCP-client-ID-and-UUID-options-added.patch b/0077-DHCP-client-ID-and-UUID-options-added.patch index f391b42a..5d9814bb 100644 --- a/0077-DHCP-client-ID-and-UUID-options-added.patch +++ b/0077-DHCP-client-ID-and-UUID-options-added.patch @@ -1,7 +1,7 @@ From 8a0b654a520e407da69e0cf64f3dd6bb7cf86240 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 27 Nov 2012 17:18:53 -0200 -Subject: [PATCH 077/206] DHCP client ID and UUID options added. +Subject: [PATCH 077/215] DHCP client ID and UUID options added. --- grub-core/net/bootp.c | 87 ++++++++++++++++++++++++++++++++++++++++++++++----- diff --git a/0078-trim-arp-packets-with-abnormal-size.patch b/0078-trim-arp-packets-with-abnormal-size.patch index 5e4a36b9..1f0dbe90 100644 --- a/0078-trim-arp-packets-with-abnormal-size.patch +++ b/0078-trim-arp-packets-with-abnormal-size.patch @@ -1,7 +1,7 @@ -From c0fa21c8898437747ce093884e6aba48d45ac329 Mon Sep 17 00:00:00 2001 +From cffad45026af9a05a0509daf593fa87148a3de66 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Wed, 5 Feb 2014 09:42:42 -0200 -Subject: [PATCH 078/206] trim arp packets with abnormal size +Subject: [PATCH 078/215] trim arp packets with abnormal size GRUB uses arp request to create the arp response. If the incoming packet is foobared, GRUB needs to trim the arp response packet before sending it. @@ -10,7 +10,7 @@ is foobared, GRUB needs to trim the arp response packet before sending it. 1 file changed, 6 insertions(+) diff --git a/grub-core/net/arp.c b/grub-core/net/arp.c -index 54306e3b16d..2083b5a4b91 100644 +index 54306e3b16d..d1c69ed2b55 100644 --- a/grub-core/net/arp.c +++ b/grub-core/net/arp.c @@ -150,6 +150,12 @@ grub_net_arp_receive (struct grub_net_buff *nb, struct grub_net_card *card, @@ -19,7 +19,7 @@ index 54306e3b16d..2083b5a4b91 100644 { + if ((nb->tail - nb->data) > 50) + { -+ grub_dprintf ("net", "arp packet with abnormal size (%d bytes).\n", ++ grub_dprintf ("net", "arp packet with abnormal size (%ld bytes).\n", + nb->tail - nb->data); + nb->tail = nb->data + 50; + } diff --git a/0079-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch b/0079-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch index 5b4028fc..7b9b377d 100644 --- a/0079-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch +++ b/0079-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch @@ -1,7 +1,7 @@ -From 60262dc77512d017974f38768d7492b4588d54f0 Mon Sep 17 00:00:00 2001 +From 97b0254d8f3de9a51aa3df570d862bbb8dbd044b Mon Sep 17 00:00:00 2001 From: Prarit Bhargava Date: Wed, 12 Mar 2014 10:58:16 -0400 -Subject: [PATCH 079/206] Fix bad test on GRUB_DISABLE_SUBMENU. +Subject: [PATCH 079/215] Fix bad test on GRUB_DISABLE_SUBMENU. The file /etc/grub.d/10_linux does diff --git a/0080-Add-support-for-UEFI-operating-systems-returned-by-o.patch b/0080-Add-support-for-UEFI-operating-systems-returned-by-o.patch index a2e234da..eab1c98b 100644 --- a/0080-Add-support-for-UEFI-operating-systems-returned-by-o.patch +++ b/0080-Add-support-for-UEFI-operating-systems-returned-by-o.patch @@ -1,7 +1,7 @@ -From 699b7db9cabfe5e2dd48e61fcb079a91df3af4a7 Mon Sep 17 00:00:00 2001 +From cf5302cca4a0daf5eb9b058243e6f56e63ab58dc Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Wed, 12 Jun 2013 11:51:49 -0400 -Subject: [PATCH 080/206] Add support for UEFI operating systems returned by +Subject: [PATCH 080/215] Add support for UEFI operating systems returned by os-prober os-prober returns UEFI operating systems in the form: diff --git a/0081-Migrate-PPC-from-Yaboot-to-Grub2.patch b/0081-Migrate-PPC-from-Yaboot-to-Grub2.patch index 307a763d..e53be1e2 100644 --- a/0081-Migrate-PPC-from-Yaboot-to-Grub2.patch +++ b/0081-Migrate-PPC-from-Yaboot-to-Grub2.patch @@ -1,7 +1,7 @@ -From 91b2efdd5e9c3b0784d0a70282407324f07a30b8 Mon Sep 17 00:00:00 2001 +From 4fbdca3b8a359170032882db53646cc4bfd17f6b Mon Sep 17 00:00:00 2001 From: Mark Hamzy Date: Wed, 28 Mar 2012 14:46:41 -0500 -Subject: [PATCH 081/206] Migrate PPC from Yaboot to Grub2 +Subject: [PATCH 081/215] Migrate PPC from Yaboot to Grub2 Add configuration support for serial terminal consoles. This will set the maximum screen size so that text is not overwritten. diff --git a/0082-Add-fw_path-variable-revised.patch b/0082-Add-fw_path-variable-revised.patch index cd65ba57..2e72ba16 100644 --- a/0082-Add-fw_path-variable-revised.patch +++ b/0082-Add-fw_path-variable-revised.patch @@ -1,7 +1,7 @@ -From bcb1f1a6a5530ecbc4b674e61acbb406592714c6 Mon Sep 17 00:00:00 2001 +From ebd364c3aabe4e484243ccf6e276563416b3f244 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Wed, 19 Sep 2012 21:22:55 -0300 -Subject: [PATCH 082/206] Add fw_path variable (revised) +Subject: [PATCH 082/215] Add fw_path variable (revised) This patch makes grub look for its config file on efi where the app was found. It was originally written by Matthew Garrett, and adapted to fix the diff --git a/0083-Add-support-for-linuxefi.patch b/0083-Add-support-for-linuxefi.patch index 5bb75c2b..19c6c233 100644 --- a/0083-Add-support-for-linuxefi.patch +++ b/0083-Add-support-for-linuxefi.patch @@ -1,7 +1,7 @@ -From 28136df7d90f865a8030a0ff6513dacb3096dc10 Mon Sep 17 00:00:00 2001 +From e1243befd2bc84b3c85100bece1424529dedafb4 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 10 Jul 2012 11:58:52 -0400 -Subject: [PATCH 083/206] Add support for linuxefi +Subject: [PATCH 083/215] Add support for linuxefi --- grub-core/Makefile.core.def | 8 + diff --git a/0084-Use-linuxefi-and-initrdefi-where-appropriate.patch b/0084-Use-linuxefi-and-initrdefi-where-appropriate.patch index 3c0be259..45514270 100644 --- a/0084-Use-linuxefi-and-initrdefi-where-appropriate.patch +++ b/0084-Use-linuxefi-and-initrdefi-where-appropriate.patch @@ -1,7 +1,7 @@ -From e915644108ed022ad0cc5d2d987f116d2605bcf2 Mon Sep 17 00:00:00 2001 +From 859cdda8e3c026eb132ad15320222a7ef89d8940 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 16 Jul 2012 18:57:11 -0400 -Subject: [PATCH 084/206] Use "linuxefi" and "initrdefi" where appropriate. +Subject: [PATCH 084/215] Use "linuxefi" and "initrdefi" where appropriate. --- util/grub.d/10_linux.in | 18 ++++++++++++++++-- diff --git a/0085-Don-t-allow-insmod-when-secure-boot-is-enabled.patch b/0085-Don-t-allow-insmod-when-secure-boot-is-enabled.patch index 3edfe4ce..c6d27c1c 100644 --- a/0085-Don-t-allow-insmod-when-secure-boot-is-enabled.patch +++ b/0085-Don-t-allow-insmod-when-secure-boot-is-enabled.patch @@ -1,7 +1,7 @@ -From b1eb9a8b9aa961bf6b6f40d6b4d22a5741f29ae4 Mon Sep 17 00:00:00 2001 +From a7dd90b084d0e6d10e8f1892651d8c20c079c99d Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Tue, 23 Oct 2012 10:40:49 -0400 -Subject: [PATCH 085/206] Don't allow insmod when secure boot is enabled. +Subject: [PATCH 085/215] Don't allow insmod when secure boot is enabled. Hi, diff --git a/0086-Pass-x-hex-hex-straight-through-unmolested.patch b/0086-Pass-x-hex-hex-straight-through-unmolested.patch index c6887aed..4ff53134 100644 --- a/0086-Pass-x-hex-hex-straight-through-unmolested.patch +++ b/0086-Pass-x-hex-hex-straight-through-unmolested.patch @@ -1,7 +1,7 @@ -From cc8be4cafeb5a0af779afe5d2856da434c165612 Mon Sep 17 00:00:00 2001 +From 66e04779bda094f385e8bbbe3523501821b830e4 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 1 Oct 2012 13:24:37 -0400 -Subject: [PATCH 086/206] Pass "\x[[:hex:]][[:hex:]]" straight through +Subject: [PATCH 086/215] Pass "\x[[:hex:]][[:hex:]]" straight through unmolested. --- diff --git a/0087-Add-X-option-to-printf-functions.patch b/0087-Add-X-option-to-printf-functions.patch index f2e78cd2..1f9d307d 100644 --- a/0087-Add-X-option-to-printf-functions.patch +++ b/0087-Add-X-option-to-printf-functions.patch @@ -1,7 +1,7 @@ -From d3e9800ae2fe7c0ed2d7795eae2be17a66e625ff Mon Sep 17 00:00:00 2001 +From 85d1de365ee5f0fb5409a3b1d895204262a7a068 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 27 Nov 2012 16:58:39 -0200 -Subject: [PATCH 087/206] Add %X option to printf functions. +Subject: [PATCH 087/215] Add %X option to printf functions. --- grub-core/kern/misc.c | 7 +++++-- diff --git a/0088-Search-for-specific-config-file-for-netboot.patch b/0088-Search-for-specific-config-file-for-netboot.patch index 5f17a244..dc905b65 100644 --- a/0088-Search-for-specific-config-file-for-netboot.patch +++ b/0088-Search-for-specific-config-file-for-netboot.patch @@ -1,7 +1,7 @@ -From 30c15e39be47d60f6a4a45628a687911a9f11091 Mon Sep 17 00:00:00 2001 +From 4b15dd15153b2e7070ae37736c3094223fa3a01d Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 27 Nov 2012 17:22:07 -0200 -Subject: [PATCH 088/206] Search for specific config file for netboot +Subject: [PATCH 088/215] Search for specific config file for netboot This patch implements a search for a specific configuration when the config file is on a remoteserver. It uses the following order: diff --git a/0089-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch b/0089-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch index a946e908..d1c71312 100644 --- a/0089-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch +++ b/0089-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch @@ -1,7 +1,7 @@ -From 266c7e797971879dc229594556a687a79c92d3b6 Mon Sep 17 00:00:00 2001 +From cb7f166adef2b0acc52fa0b506621295a1408702 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Tue, 22 Jan 2013 06:31:38 +0100 -Subject: [PATCH 089/206] blscfg: add blscfg module to parse Boot Loader +Subject: [PATCH 089/215] blscfg: add blscfg module to parse Boot Loader Specification snippets http://www.freedesktop.org/wiki/Specifications/BootLoaderSpec diff --git a/0090-Don-t-write-messages-to-the-screen.patch b/0090-Don-t-write-messages-to-the-screen.patch index ab238d04..e3ee391e 100644 --- a/0090-Don-t-write-messages-to-the-screen.patch +++ b/0090-Don-t-write-messages-to-the-screen.patch @@ -1,7 +1,7 @@ -From 6609ba848331d9153c554bb52f2ef0a33531cf55 Mon Sep 17 00:00:00 2001 +From 472265de61af84149ba89a91072317e15298caa1 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 13:30:20 -0400 -Subject: [PATCH 090/206] Don't write messages to the screen +Subject: [PATCH 090/215] Don't write messages to the screen Writing messages to the screen before the menus or boot splash happens so quickly it looks like something is wrong and isn't diff --git a/0091-Don-t-print-GNU-GRUB-header.patch b/0091-Don-t-print-GNU-GRUB-header.patch index 9a03f2d6..9a4d584a 100644 --- a/0091-Don-t-print-GNU-GRUB-header.patch +++ b/0091-Don-t-print-GNU-GRUB-header.patch @@ -1,7 +1,7 @@ -From 95aeba5fe67ad11a995eb8e583708a722b8bdeb9 Mon Sep 17 00:00:00 2001 +From 2b9d1073c695f0363202a00586e1994432d23347 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 13:53:48 -0400 -Subject: [PATCH 091/206] Don't print GNU GRUB header +Subject: [PATCH 091/215] Don't print GNU GRUB header No one cares. --- diff --git a/0092-Don-t-add-to-highlighted-row.patch b/0092-Don-t-add-to-highlighted-row.patch index 4ab4c753..e6888a7c 100644 --- a/0092-Don-t-add-to-highlighted-row.patch +++ b/0092-Don-t-add-to-highlighted-row.patch @@ -1,7 +1,7 @@ -From aca25c56911ece3e4d82ae9edbde6c705c1eaacc Mon Sep 17 00:00:00 2001 +From 7cb577925e3d40869b9748afa5060b178ba88abd Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 17:49:45 -0400 -Subject: [PATCH 092/206] Don't add '*' to highlighted row +Subject: [PATCH 092/215] Don't add '*' to highlighted row It is already highlighted. --- diff --git a/0093-Message-string-cleanups.patch b/0093-Message-string-cleanups.patch index d76f9956..aa94bba5 100644 --- a/0093-Message-string-cleanups.patch +++ b/0093-Message-string-cleanups.patch @@ -1,7 +1,7 @@ -From eef343ff642b42f0e46eb5e8ff5d89fef375f4a2 Mon Sep 17 00:00:00 2001 +From 67803e1ea2884a1ff8ecbb1cc9371fa63c9a7544 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 11:09:04 -0400 -Subject: [PATCH 093/206] Message string cleanups +Subject: [PATCH 093/215] Message string cleanups Make use of terminology consistent. Remove jargon. --- diff --git a/0094-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch b/0094-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch index b52ff30a..022940fb 100644 --- a/0094-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch +++ b/0094-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch @@ -1,7 +1,7 @@ -From c2e1e09485a5773dc3639d34eadc3a07ebce8fe5 Mon Sep 17 00:00:00 2001 +From 7857716e067795304fc788813e427fac3f9624d7 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:08:23 -0400 -Subject: [PATCH 094/206] Fix border spacing now that we aren't displaying it +Subject: [PATCH 094/215] Fix border spacing now that we aren't displaying it --- grub-core/normal/menu_text.c | 6 +++--- diff --git a/0095-Use-the-correct-indentation-for-the-term-help-text.patch b/0095-Use-the-correct-indentation-for-the-term-help-text.patch index 69f97b55..a5a7ec4c 100644 --- a/0095-Use-the-correct-indentation-for-the-term-help-text.patch +++ b/0095-Use-the-correct-indentation-for-the-term-help-text.patch @@ -1,7 +1,7 @@ -From e29b4dd346fa10dc6a073239ef1ed8fb32a0c838 Mon Sep 17 00:00:00 2001 +From 9ecf176aa2951d848ca2d0ab23e663b2ddc1b336 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:08:49 -0400 -Subject: [PATCH 095/206] Use the correct indentation for the term help text +Subject: [PATCH 095/215] Use the correct indentation for the term help text That is consistent with the menu help text --- diff --git a/0096-Indent-menu-entries.patch b/0096-Indent-menu-entries.patch index cb787de3..6e170305 100644 --- a/0096-Indent-menu-entries.patch +++ b/0096-Indent-menu-entries.patch @@ -1,7 +1,7 @@ -From a67be6e17cd318ad3d4a669efb2b8c5f6e76c003 Mon Sep 17 00:00:00 2001 +From 62af3df5904d4fff7e8c4bab0a90aae6752be432 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:30:55 -0400 -Subject: [PATCH 096/206] Indent menu entries +Subject: [PATCH 096/215] Indent menu entries --- grub-core/normal/menu_text.c | 3 ++- diff --git a/0097-Fix-margins.patch b/0097-Fix-margins.patch index c1dd251b..2f3abc58 100644 --- a/0097-Fix-margins.patch +++ b/0097-Fix-margins.patch @@ -1,7 +1,7 @@ -From 8e5a006c6c48002f3debd99f4c377b443f9f8369 Mon Sep 17 00:00:00 2001 +From aa23d4d1be22a7255f9faa3bac39a5d29c2de9f2 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:59:36 -0400 -Subject: [PATCH 097/206] Fix margins +Subject: [PATCH 097/215] Fix margins --- grub-core/normal/menu_text.c | 8 +++----- diff --git a/0098-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch b/0098-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch index 5f00334d..9f8f715d 100644 --- a/0098-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch +++ b/0098-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch @@ -1,7 +1,7 @@ -From 01757871cb2a7355a7f67e80f77a57fecba26f54 Mon Sep 17 00:00:00 2001 +From cc0abdf469be06b17879f19b26c73b916f479b28 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 21 Jun 2013 14:44:08 -0400 -Subject: [PATCH 098/206] Use -2 instead of -1 for our right-hand margin, so +Subject: [PATCH 098/215] Use -2 instead of -1 for our right-hand margin, so linewrapping works (#976643). Signed-off-by: Peter Jones diff --git a/0099-Use-linux16-when-appropriate-880840.patch b/0099-Use-linux16-when-appropriate-880840.patch index 860446f7..4f3f2237 100644 --- a/0099-Use-linux16-when-appropriate-880840.patch +++ b/0099-Use-linux16-when-appropriate-880840.patch @@ -1,7 +1,7 @@ -From ac001b7b4cc1819186fbe2bc695cbe58d2077d0f Mon Sep 17 00:00:00 2001 +From 9b332449552b4c8afbe2d0e30b795d93c2ac733f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 28 Oct 2013 10:05:07 -0400 -Subject: [PATCH 099/206] Use linux16 when appropriate (#880840) +Subject: [PATCH 099/215] Use linux16 when appropriate (#880840) The kernel group really would prefer that we use the 16 bit entry point on x86 bios machines. diff --git a/0100-Enable-pager-by-default.-985860.patch b/0100-Enable-pager-by-default.-985860.patch index cf496de2..ac7e3bcd 100644 --- a/0100-Enable-pager-by-default.-985860.patch +++ b/0100-Enable-pager-by-default.-985860.patch @@ -1,7 +1,7 @@ -From cc60fb5b7693dabcf100c910d42b3ffe1816597f Mon Sep 17 00:00:00 2001 +From 24b186833aad3f456111b7f9d3806065dbb95a2e Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 28 Oct 2013 10:09:27 -0400 -Subject: [PATCH 100/206] Enable pager by default. (#985860) +Subject: [PATCH 100/215] Enable pager by default. (#985860) Signed-off-by: Peter Jones --- diff --git a/0101-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch b/0101-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch index 3aac91bd..1cd55563 100644 --- a/0101-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch +++ b/0101-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch @@ -1,7 +1,7 @@ -From f1cb6c5a7640406294b7dffab3c5e4a4afdaf745 Mon Sep 17 00:00:00 2001 +From 3635e1f8f5925e9c5ba54e9bbe79503d78177ea4 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 28 Oct 2013 10:13:27 -0400 -Subject: [PATCH 101/206] F10 doesn't work on serial, so don't tell the user to +Subject: [PATCH 101/215] F10 doesn't work on serial, so don't tell the user to hit it (#987443) Signed-off-by: Peter Jones diff --git a/0102-Don-t-say-GNU-Linux-in-generated-menus.patch b/0102-Don-t-say-GNU-Linux-in-generated-menus.patch index d389e16e..e0988403 100644 --- a/0102-Don-t-say-GNU-Linux-in-generated-menus.patch +++ b/0102-Don-t-say-GNU-Linux-in-generated-menus.patch @@ -1,7 +1,7 @@ -From 13c028af4104555993650dd9a26dd633c516d23f Mon Sep 17 00:00:00 2001 +From c3bd10791d0ecc17cd8243de8eea4cd683ae2bdb Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 14 Mar 2011 14:27:42 -0400 -Subject: [PATCH 102/206] Don't say "GNU/Linux" in generated menus. +Subject: [PATCH 102/215] Don't say "GNU/Linux" in generated menus. --- util/grub.d/10_linux.in | 4 ++-- diff --git a/0103-Don-t-draw-a-border-around-the-menu.patch b/0103-Don-t-draw-a-border-around-the-menu.patch index ad298378..4f82836f 100644 --- a/0103-Don-t-draw-a-border-around-the-menu.patch +++ b/0103-Don-t-draw-a-border-around-the-menu.patch @@ -1,7 +1,7 @@ -From 8b51cba8f5587746d1559bd6ec957db3e185c049 Mon Sep 17 00:00:00 2001 +From 79e679458cc2e70d0097cfc702668976fe1fdc5d Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 16:47:33 -0400 -Subject: [PATCH 103/206] Don't draw a border around the menu +Subject: [PATCH 103/215] Don't draw a border around the menu It looks cleaner without it. --- diff --git a/0104-Use-the-standard-margin-for-the-timeout-string.patch b/0104-Use-the-standard-margin-for-the-timeout-string.patch index c374c303..6b1cc61c 100644 --- a/0104-Use-the-standard-margin-for-the-timeout-string.patch +++ b/0104-Use-the-standard-margin-for-the-timeout-string.patch @@ -1,7 +1,7 @@ -From 137250b0ef67150568074da35c568c6c649899f6 Mon Sep 17 00:00:00 2001 +From a82ffe034724bb20b062bba9606654d0e3919acc Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 10:52:32 -0400 -Subject: [PATCH 104/206] Use the standard margin for the timeout string +Subject: [PATCH 104/215] Use the standard margin for the timeout string So that it aligns with the other messages --- diff --git a/0105-Add-.eh_frame-to-list-of-relocations-stripped.patch b/0105-Add-.eh_frame-to-list-of-relocations-stripped.patch index 096bd998..288c6321 100644 --- a/0105-Add-.eh_frame-to-list-of-relocations-stripped.patch +++ b/0105-Add-.eh_frame-to-list-of-relocations-stripped.patch @@ -1,7 +1,7 @@ -From 0464db837a67b88a761f100391b135a70b7054eb Mon Sep 17 00:00:00 2001 +From 35cdd6b929d5f63750bb214a53e1c75b31dcae99 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Mon, 13 Jan 2014 21:50:59 -0500 -Subject: [PATCH 105/206] Add .eh_frame to list of relocations stripped +Subject: [PATCH 105/215] Add .eh_frame to list of relocations stripped --- conf/Makefile.common | 2 +- diff --git a/0106-Make-10_linux-work-with-our-changes-for-linux16-and-.patch b/0106-Make-10_linux-work-with-our-changes-for-linux16-and-.patch index 4261262a..71a45c50 100644 --- a/0106-Make-10_linux-work-with-our-changes-for-linux16-and-.patch +++ b/0106-Make-10_linux-work-with-our-changes-for-linux16-and-.patch @@ -1,7 +1,7 @@ -From fb582651ea4568d7226f96e6b618ad795430c842 Mon Sep 17 00:00:00 2001 +From 3f5daaa46d0a5eb390a74da40abe54d385d308cf Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jan 2014 13:12:23 -0500 -Subject: [PATCH 106/206] Make 10_linux work with our changes for linux16 and +Subject: [PATCH 106/215] Make 10_linux work with our changes for linux16 and linuxefi on aarch64 Signed-off-by: Peter Jones diff --git a/0107-Don-t-print-during-fdt-loading-method.patch b/0107-Don-t-print-during-fdt-loading-method.patch index 75c5a4d3..5a0c770a 100644 --- a/0107-Don-t-print-during-fdt-loading-method.patch +++ b/0107-Don-t-print-during-fdt-loading-method.patch @@ -1,7 +1,7 @@ -From 40e56a4c2e879f5efcbcc36cf6a88ee1cb39d607 Mon Sep 17 00:00:00 2001 +From 276027c67b27f2ee557ca9e2492c779a5f76cb9b Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jan 2014 16:15:46 -0500 -Subject: [PATCH 107/206] Don't print during fdt loading method. +Subject: [PATCH 107/215] Don't print during fdt loading method. Signed-off-by: Peter Jones --- diff --git a/0108-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch b/0108-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch index eb27d207..3b0a4062 100644 --- a/0108-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch +++ b/0108-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch @@ -1,7 +1,7 @@ -From ff25c6034ab8213d911414e666b7d44bc44496aa Mon Sep 17 00:00:00 2001 +From 25add18bbc13249a2ce32f4e9b0de512ecc1fe4b Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Mon, 30 Jun 2014 14:16:46 -0400 -Subject: [PATCH 108/206] Don't munge raw spaces when we're doing our cmdline +Subject: [PATCH 108/215] Don't munge raw spaces when we're doing our cmdline escaping (#923374) Signed-off-by: Peter Jones diff --git a/0109-Don-t-require-a-password-to-boot-entries-generated-b.patch b/0109-Don-t-require-a-password-to-boot-entries-generated-b.patch index 81fa7e36..14c9e026 100644 --- a/0109-Don-t-require-a-password-to-boot-entries-generated-b.patch +++ b/0109-Don-t-require-a-password-to-boot-entries-generated-b.patch @@ -1,7 +1,7 @@ -From 2df38f07986a91d2a06cb3e432f9121d9f678f89 Mon Sep 17 00:00:00 2001 +From 9b109204ee0d1888d64d553849798ee57af1809f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 11 Feb 2014 11:14:50 -0500 -Subject: [PATCH 109/206] Don't require a password to boot entries generated by +Subject: [PATCH 109/215] Don't require a password to boot entries generated by grub-mkconfig. When we set a password, we just want that to mean you can't /edit/ an entry. diff --git a/0110-Don-t-emit-Booting-.-message.patch b/0110-Don-t-emit-Booting-.-message.patch index 323b051c..b08d66fa 100644 --- a/0110-Don-t-emit-Booting-.-message.patch +++ b/0110-Don-t-emit-Booting-.-message.patch @@ -1,7 +1,7 @@ -From a72d4819fb7275cbf65b5de901c50d076bf861fd Mon Sep 17 00:00:00 2001 +From 68f1935b5c6f66afbf9d6990615946c44f3d54cb Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 18 Feb 2014 09:37:49 -0500 -Subject: [PATCH 110/206] Don't emit "Booting ..." message. +Subject: [PATCH 110/215] Don't emit "Booting ..." message. UI team still hates this stuff, so we're disabling it for RHEL 7. diff --git a/0111-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch b/0111-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch index 1d49bbce..f2b77906 100644 --- a/0111-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch +++ b/0111-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch @@ -1,7 +1,7 @@ -From 6412d775976361b52c0914f6e5e3b0a4b99cdba9 Mon Sep 17 00:00:00 2001 +From 6cdf99aa53970695fbf5c002fa288e1044571ca7 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 4 Mar 2014 11:00:23 -0500 -Subject: [PATCH 111/206] Replace a lot of man pages with slightly nicer ones. +Subject: [PATCH 111/215] Replace a lot of man pages with slightly nicer ones. Replace a bunch of machine generated ones with ones that look nicer. --- diff --git a/0112-use-fw_path-prefix-when-fallback-searching-for-grub-.patch b/0112-use-fw_path-prefix-when-fallback-searching-for-grub-.patch index 5811d02c..843ae6f0 100644 --- a/0112-use-fw_path-prefix-when-fallback-searching-for-grub-.patch +++ b/0112-use-fw_path-prefix-when-fallback-searching-for-grub-.patch @@ -1,7 +1,7 @@ -From acf4cfa6d1691a9476b36949af7e296080c88d25 Mon Sep 17 00:00:00 2001 +From f72c593c32ecba7b10ceb4c63ca8ec48f60c3ccf Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Wed, 19 Feb 2014 15:58:43 -0500 -Subject: [PATCH 112/206] use fw_path prefix when fallback searching for grub +Subject: [PATCH 112/215] use fw_path prefix when fallback searching for grub config When PXE booting via UEFI firmware, grub was searching for grub.cfg diff --git a/0113-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch b/0113-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch index 15ade646..68d0bb63 100644 --- a/0113-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch +++ b/0113-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch @@ -1,7 +1,7 @@ -From b7aa57a2f879d185888e4d47f77a1a30370973f9 Mon Sep 17 00:00:00 2001 +From 09265872f163e6dfe1aa319ac40e8090f31830f7 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 6 Mar 2014 11:51:33 -0500 -Subject: [PATCH 113/206] Try mac/guid/etc before grub.cfg on tftp config +Subject: [PATCH 113/215] Try mac/guid/etc before grub.cfg on tftp config files. Signed-off-by: Peter Jones diff --git a/0114-Fix-convert-function-to-support-NVMe-devices.patch b/0114-Fix-convert-function-to-support-NVMe-devices.patch index 123fda37..f2302cde 100644 --- a/0114-Fix-convert-function-to-support-NVMe-devices.patch +++ b/0114-Fix-convert-function-to-support-NVMe-devices.patch @@ -1,7 +1,7 @@ -From 69946054baab92385b9f6518cc78e94810b40c48 Mon Sep 17 00:00:00 2001 +From 39976a692a9350b1293f209953426830ddde2ad6 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 18 Feb 2014 11:34:00 -0500 -Subject: [PATCH 114/206] Fix convert function to support NVMe devices +Subject: [PATCH 114/215] Fix convert function to support NVMe devices This is adapted from the patch at https://bugzilla.redhat.com/show_bug.cgi?id=1019660 , which is against diff --git a/0115-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch b/0115-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch index 52b919f0..d70eb2af 100644 --- a/0115-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch +++ b/0115-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch @@ -1,7 +1,7 @@ -From f168a0803d8d35e431ef6888755f9b2622304846 Mon Sep 17 00:00:00 2001 +From 05d7e199d3f48cf9fd9b2af877cfe37c498f0874 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Mon, 10 Feb 2014 16:13:10 -0500 -Subject: [PATCH 115/206] Switch to use APM Mustang device tree, for hardware +Subject: [PATCH 115/215] Switch to use APM Mustang device tree, for hardware testing. Signed-off-by: David A. Marlin diff --git a/0116-Use-the-default-device-tree-from-the-grub-default-fi.patch b/0116-Use-the-default-device-tree-from-the-grub-default-fi.patch index aecdde0d..4787c624 100644 --- a/0116-Use-the-default-device-tree-from-the-grub-default-fi.patch +++ b/0116-Use-the-default-device-tree-from-the-grub-default-fi.patch @@ -1,7 +1,7 @@ -From 6ec36777aae0c4afd98f67f22d4d511b447dbb02 Mon Sep 17 00:00:00 2001 +From b2ad2a3b4a4bc998003c1275709f0677c39503a9 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Wed, 12 Feb 2014 14:54:04 -0500 -Subject: [PATCH 116/206] Use the default device tree from the grub default +Subject: [PATCH 116/215] Use the default device tree from the grub default file instead of hardcoding a value. diff --git a/0117-reopen-SNP-protocol-for-exclusive-use-by-grub.patch b/0117-reopen-SNP-protocol-for-exclusive-use-by-grub.patch index d80b766c..06836018 100644 --- a/0117-reopen-SNP-protocol-for-exclusive-use-by-grub.patch +++ b/0117-reopen-SNP-protocol-for-exclusive-use-by-grub.patch @@ -1,7 +1,7 @@ -From debcbbacd18bfbbcbd5fd9dce947f2cbce09c916 Mon Sep 17 00:00:00 2001 +From 5d87e5b1697c28d55348486cb3c704b467c8e798 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Sat, 15 Feb 2014 15:10:22 -0500 -Subject: [PATCH 117/206] reopen SNP protocol for exclusive use by grub +Subject: [PATCH 117/215] reopen SNP protocol for exclusive use by grub --- grub-core/net/drivers/efi/efinet.c | 16 ++++++++++++++++ diff --git a/0118-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch b/0118-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch index f0240731..a014023a 100644 --- a/0118-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch +++ b/0118-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch @@ -1,7 +1,7 @@ -From 88892eedb9beb9d8c295329fad87edb339e4e27c Mon Sep 17 00:00:00 2001 +From f00ca4e03561840f116642c7100df6dc6395209d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 4 Mar 2016 15:13:59 -0500 -Subject: [PATCH 118/206] Revert "reopen SNP protocol for exclusive use by +Subject: [PATCH 118/215] Revert "reopen SNP protocol for exclusive use by grub" This reverts commit a3f2c756ce34c9666bddef35e3b3b85ccecdcffc , which is diff --git a/0119-Add-grub_util_readlink.patch b/0119-Add-grub_util_readlink.patch index fcc09468..1e31817b 100644 --- a/0119-Add-grub_util_readlink.patch +++ b/0119-Add-grub_util_readlink.patch @@ -1,7 +1,7 @@ -From 9c1af9c0a44353f6b72691456a4a2883246b6346 Mon Sep 17 00:00:00 2001 +From ffc123b7ab4fe37da16d4c62d87255f8c5c14b9f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 3 Sep 2014 10:01:03 -0400 -Subject: [PATCH 119/206] Add grub_util_readlink() +Subject: [PATCH 119/215] Add grub_util_readlink() Add grub_util_readlink(). This requires pulling in stat and readlink from gnulib, which pulls in stat and related headers, but after that the diff --git a/0120-Make-editenv-chase-symlinks-including-those-across-d.patch b/0120-Make-editenv-chase-symlinks-including-those-across-d.patch index faee07b9..ed1735ca 100644 --- a/0120-Make-editenv-chase-symlinks-including-those-across-d.patch +++ b/0120-Make-editenv-chase-symlinks-including-those-across-d.patch @@ -1,7 +1,7 @@ -From 5c54e71e4b4a3f8fbfedd5eca821238a7d80b491 Mon Sep 17 00:00:00 2001 +From fb903fc1587b582e23e44811dc8c4ed359806028 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 3 Sep 2014 10:38:00 -0400 -Subject: [PATCH 120/206] Make editenv chase symlinks including those across +Subject: [PATCH 120/215] Make editenv chase symlinks including those across devices. This lets us make /boot/grub2/grubenv a symlink to diff --git a/0121-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch b/0121-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch index 822a806f..3fea624d 100644 --- a/0121-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch +++ b/0121-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch @@ -1,7 +1,7 @@ -From 7ca8e2b9e23a3588654d53a8e84bb22743896f80 Mon Sep 17 00:00:00 2001 +From 5948f763fc01d7f29923e94ef9b1ed923b11ff1a Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Sep 2014 14:23:23 -0400 -Subject: [PATCH 121/206] Generate OS and CLASS in 10_linux from +Subject: [PATCH 121/215] Generate OS and CLASS in 10_linux from /etc/os-release This makes us use pretty names in the titles we generate in diff --git a/0122-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch b/0122-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch index 357ec723..bbb693bf 100644 --- a/0122-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch +++ b/0122-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch @@ -1,7 +1,7 @@ -From e84a66eb07c96db182d57f4d40ff7c607a0e5296 Mon Sep 17 00:00:00 2001 +From 547d0c60f28c026801af2ada3e0995d0ecc22c35 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Sep 2014 15:52:08 -0400 -Subject: [PATCH 122/206] Minimize the sort ordering for .debug and -rescue- +Subject: [PATCH 122/215] Minimize the sort ordering for .debug and -rescue- kernels. Resolves: rhbz#1065360 diff --git a/0123-Load-arm-with-SB-enabled.patch b/0123-Load-arm-with-SB-enabled.patch index aac767b0..936126c0 100644 --- a/0123-Load-arm-with-SB-enabled.patch +++ b/0123-Load-arm-with-SB-enabled.patch @@ -1,7 +1,7 @@ -From b68b3292d6a5aa057a39b8098bcd1299a210921c Mon Sep 17 00:00:00 2001 +From c03bf04fd9e3192bec942a7adee23b5377ea81dc Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 18 Sep 2014 11:26:14 -0400 -Subject: [PATCH 123/206] Load arm with SB enabled. +Subject: [PATCH 123/215] Load arm with SB enabled. Make sure we actually try to validate secure boot on this platform (even though we're not shipping it enabled by default.) diff --git a/0124-Try-prefix-if-fw_path-doesn-t-work.patch b/0124-Try-prefix-if-fw_path-doesn-t-work.patch index 4470f3c4..8168a00c 100644 --- a/0124-Try-prefix-if-fw_path-doesn-t-work.patch +++ b/0124-Try-prefix-if-fw_path-doesn-t-work.patch @@ -1,7 +1,7 @@ -From fb91332cc8f381b7dea94fbc3db4d9e92a7959c1 Mon Sep 17 00:00:00 2001 +From 0c98cb57eb1a34ec29f719e3a798f5b20c6a4082 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 3 Oct 2014 11:08:03 -0400 -Subject: [PATCH 124/206] Try $prefix if $fw_path doesn't work. +Subject: [PATCH 124/215] Try $prefix if $fw_path doesn't work. Related: rhbz#1148652 diff --git a/0125-Update-info-with-grub.cfg-netboot-selection-order-11.patch b/0125-Update-info-with-grub.cfg-netboot-selection-order-11.patch index 630958ef..dcdbd049 100644 --- a/0125-Update-info-with-grub.cfg-netboot-selection-order-11.patch +++ b/0125-Update-info-with-grub.cfg-netboot-selection-order-11.patch @@ -1,7 +1,7 @@ -From ba1c8a307d0a3f2a606b3c3a6e1619504c47d3da Mon Sep 17 00:00:00 2001 +From d446fed131fadd00d0daab0654c7d9e14442d451 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Mon, 16 Mar 2015 16:34:51 -0400 -Subject: [PATCH 125/206] Update info with grub.cfg netboot selection order +Subject: [PATCH 125/215] Update info with grub.cfg netboot selection order (#1148650) Added documentation to the grub info page that specifies the order diff --git a/0126-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch b/0126-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch index 3df7e2f6..3a45d6bb 100644 --- a/0126-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch +++ b/0126-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch @@ -1,7 +1,7 @@ -From 786e54febcc536a1b8a5fa2fbe0828eb3c66d792 Mon Sep 17 00:00:00 2001 +From e62ab1057d87e2a1e3c7fcf6b134f86ec24f2eac Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Mon, 16 Mar 2015 14:14:19 -0400 -Subject: [PATCH 126/206] Use Distribution Package Sort for grub2-mkconfig +Subject: [PATCH 126/215] Use Distribution Package Sort for grub2-mkconfig (#1124074) Users reported that newly installed kernels on their systems installed diff --git a/0127-Handle-rssd-storage-devices.patch b/0127-Handle-rssd-storage-devices.patch index db8b6b17..5b555b75 100644 --- a/0127-Handle-rssd-storage-devices.patch +++ b/0127-Handle-rssd-storage-devices.patch @@ -1,7 +1,7 @@ -From 1099d0d8767fa9487c5a18667b2142ab9248f882 Mon Sep 17 00:00:00 2001 +From 8d3f2f0f389efbb9ed5da0c4f90fc82d104163c1 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 30 Jun 2015 15:50:41 -0400 -Subject: [PATCH 127/206] Handle rssd storage devices. +Subject: [PATCH 127/215] Handle rssd storage devices. Resolves: rhbz#1087962 diff --git a/0128-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch b/0128-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch index 52929fe6..46411138 100644 --- a/0128-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch +++ b/0128-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch @@ -1,7 +1,7 @@ -From 3602fba26df0d9fc04bae72d26d866ec9d1e24a6 Mon Sep 17 00:00:00 2001 +From e5ed14fb98e18d173f9396103aca65351e4e67e2 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 27 Oct 2014 09:22:55 -0400 -Subject: [PATCH 128/206] Try to emit linux16/initrd16 and linuxefi/initrdefi +Subject: [PATCH 128/215] Try to emit linux16/initrd16 and linuxefi/initrdefi in 30-os_prober. Resolves: rhbz#1108296 diff --git a/0129-Make-grub2-mkconfig-construct-titles-that-look-like-.patch b/0129-Make-grub2-mkconfig-construct-titles-that-look-like-.patch index 3005603d..0d158e06 100644 --- a/0129-Make-grub2-mkconfig-construct-titles-that-look-like-.patch +++ b/0129-Make-grub2-mkconfig-construct-titles-that-look-like-.patch @@ -1,7 +1,7 @@ -From 1f85eacec7da97aa6dd6344d382d947631c991f9 Mon Sep 17 00:00:00 2001 +From 75c3d5fedb92fcf107b594216655c29bb20cbebc Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 28 Apr 2015 11:15:03 -0400 -Subject: [PATCH 129/206] Make grub2-mkconfig construct titles that look like +Subject: [PATCH 129/215] Make grub2-mkconfig construct titles that look like the ones we want elsewhere. Resolves: rhbz#1215839 diff --git a/0130-Add-friendly-grub2-password-config-tool-985962.patch b/0130-Add-friendly-grub2-password-config-tool-985962.patch index f3f1045d..8539b668 100644 --- a/0130-Add-friendly-grub2-password-config-tool-985962.patch +++ b/0130-Add-friendly-grub2-password-config-tool-985962.patch @@ -1,7 +1,7 @@ -From 9cc251c72ee63c82565c917fa32301c593e6f099 Mon Sep 17 00:00:00 2001 +From d03d08a8ba14eddda515907cafc640fb1dbe0874 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Thu, 25 Jun 2015 11:13:11 -0400 -Subject: [PATCH 130/206] Add friendly grub2 password config tool (#985962) +Subject: [PATCH 130/215] Add friendly grub2 password config tool (#985962) Provided a tool for users to reset the grub2 root user password without having to alter the grub.cfg. The hashed password now diff --git a/0131-Make-grub2-mkconfig-construct-titles-that-look-like-.patch b/0131-Make-grub2-mkconfig-construct-titles-that-look-like-.patch index 2abdc4b6..24d46935 100644 --- a/0131-Make-grub2-mkconfig-construct-titles-that-look-like-.patch +++ b/0131-Make-grub2-mkconfig-construct-titles-that-look-like-.patch @@ -1,7 +1,7 @@ -From 039291e02021dc5c48a32a2c971475fbc6ac3fda Mon Sep 17 00:00:00 2001 +From 7d9c29023e6c242306ae008a984245037655a23c Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 28 Apr 2015 11:15:03 -0400 -Subject: [PATCH 131/206] Make grub2-mkconfig construct titles that look like +Subject: [PATCH 131/215] Make grub2-mkconfig construct titles that look like the ones we want elsewhere. Resolves: rhbz#1215839 diff --git a/0132-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch b/0132-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch index 4d26f996..f80922e0 100644 --- a/0132-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch +++ b/0132-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch @@ -1,7 +1,7 @@ -From edefa278bdaefe29877307ab40cc8c8497e5794c Mon Sep 17 00:00:00 2001 +From e97b5c4ec2f11ac544c3c1de8fa5b84ac24d9536 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 3 Aug 2015 11:46:42 -0400 -Subject: [PATCH 132/206] Try to make sure configure.ac and grub-rpm-sort play +Subject: [PATCH 132/215] Try to make sure configure.ac and grub-rpm-sort play nice. Apparently the test for whether to use grub-rpm-sort and also the diff --git a/0133-tcp-add-window-scaling-support.patch b/0133-tcp-add-window-scaling-support.patch index ce68b836..b12c31fc 100644 --- a/0133-tcp-add-window-scaling-support.patch +++ b/0133-tcp-add-window-scaling-support.patch @@ -1,7 +1,7 @@ -From 414415beb12da752ac9458635d0ec8f34a7ee2fb Mon Sep 17 00:00:00 2001 +From df119e7a941f0e1329181d33d63349375b9b56d9 Mon Sep 17 00:00:00 2001 From: Josef Bacik Date: Wed, 12 Aug 2015 08:57:55 -0700 -Subject: [PATCH 133/206] tcp: add window scaling support +Subject: [PATCH 133/215] tcp: add window scaling support Sometimes we have to provision boxes across regions, such as California to Sweden. The http server has a 10 minute timeout, so if we can't get our 250mb diff --git a/0134-efinet-retransmit-if-our-device-is-busy.patch b/0134-efinet-retransmit-if-our-device-is-busy.patch index e4a97685..80861603 100644 --- a/0134-efinet-retransmit-if-our-device-is-busy.patch +++ b/0134-efinet-retransmit-if-our-device-is-busy.patch @@ -1,7 +1,7 @@ -From f0d62522c10f25e2e9fc9bcd51bc0dbf14b6d9c7 Mon Sep 17 00:00:00 2001 +From d4f94fc4cd48954f757d6efb82311eb3256389e4 Mon Sep 17 00:00:00 2001 From: Josef Bacik Date: Mon, 31 Aug 2015 13:34:35 -0400 -Subject: [PATCH 134/206] efinet: retransmit if our device is busy +Subject: [PATCH 134/215] efinet: retransmit if our device is busy When I fixed the txbuf handling I ripped out the retransmission code since it was flooding our network when we had the buggy behavior. Turns out this was too diff --git a/0135-Be-more-aggro-about-actually-using-the-configured-ne.patch b/0135-Be-more-aggro-about-actually-using-the-configured-ne.patch index f4469181..7b8a400d 100644 --- a/0135-Be-more-aggro-about-actually-using-the-configured-ne.patch +++ b/0135-Be-more-aggro-about-actually-using-the-configured-ne.patch @@ -1,7 +1,7 @@ -From 8448d685b7748afe147be063cbd5fe0beb8bfec5 Mon Sep 17 00:00:00 2001 +From d4eb7984ad8938e50764c541f0e8f4c8d6d012f8 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 11 Sep 2015 17:30:49 -0400 -Subject: [PATCH 135/206] Be more aggro about actually using the *configured* +Subject: [PATCH 135/215] Be more aggro about actually using the *configured* network device. Right now we use any SNP device with the same mac+IP block, but when diff --git a/0136-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch b/0136-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch index 55bf64fe..a8ef9fe3 100644 --- a/0136-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch +++ b/0136-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch @@ -1,7 +1,7 @@ -From c760d9ce51010c408c9cca513c5f307e9f94912a Mon Sep 17 00:00:00 2001 +From fdbc8b81c9f3bbef64298dbf1f5230eda0cda02f Mon Sep 17 00:00:00 2001 From: RHEL Ninjas Date: Fri, 25 Sep 2015 16:24:23 +0900 -Subject: [PATCH 136/206] efinet: add filter for the first exclusive reopen of +Subject: [PATCH 136/215] efinet: add filter for the first exclusive reopen of SNP --- diff --git a/0137-Fix-security-issue-when-reading-username-and-passwor.patch b/0137-Fix-security-issue-when-reading-username-and-passwor.patch index d7df5488..b956aac0 100644 --- a/0137-Fix-security-issue-when-reading-username-and-passwor.patch +++ b/0137-Fix-security-issue-when-reading-username-and-passwor.patch @@ -1,7 +1,7 @@ -From 4ebcd25c8f7860c83a99cc420f63611437acf9f1 Mon Sep 17 00:00:00 2001 +From fa4b152860e04053ee1cae6b70237a1975473a81 Mon Sep 17 00:00:00 2001 From: Hector Marco-Gisbert Date: Fri, 13 Nov 2015 16:21:09 +0100 -Subject: [PATCH 137/206] Fix security issue when reading username and password +Subject: [PATCH 137/215] Fix security issue when reading username and password This patch fixes two integer underflows at: * grub-core/lib/crypto.c diff --git a/0138-Warn-if-grub-password-will-not-be-read-1290803.patch b/0138-Warn-if-grub-password-will-not-be-read-1290803.patch index 11f47971..6b02dc83 100644 --- a/0138-Warn-if-grub-password-will-not-be-read-1290803.patch +++ b/0138-Warn-if-grub-password-will-not-be-read-1290803.patch @@ -1,7 +1,7 @@ -From 591aa70d3437b3db7fe56975fe1b54b9431a21cd Mon Sep 17 00:00:00 2001 +From c8ed108d2f3f9b57add84e282fef6e39634aec99 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Mon, 22 Feb 2016 15:30:05 -0500 -Subject: [PATCH 138/206] Warn if grub password will not be read (#1290803) +Subject: [PATCH 138/215] Warn if grub password will not be read (#1290803) It is possible for a system to have never run grub-mkconfig and add the section that reads the user.cfg file which contains a user set GRUB diff --git a/0139-Clean-up-grub-setpassword-documentation-1290799.patch b/0139-Clean-up-grub-setpassword-documentation-1290799.patch index 234b9773..4523c188 100644 --- a/0139-Clean-up-grub-setpassword-documentation-1290799.patch +++ b/0139-Clean-up-grub-setpassword-documentation-1290799.patch @@ -1,7 +1,7 @@ -From 44db37cb0cf9d8156717bea09407d28d85517f7e Mon Sep 17 00:00:00 2001 +From 884c7f7b14633fc47d5cada7f02df6fb5176b224 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Tue, 26 Jan 2016 10:28:35 -0500 -Subject: [PATCH 139/206] Clean up grub-setpassword documentation (#1290799) +Subject: [PATCH 139/215] Clean up grub-setpassword documentation (#1290799) The output for --help had some errors. Corrected those and polished the text to be a little easier to follow. Carried verbage over to man page diff --git a/0140-Fix-locale-issue-in-grub-setpassword-1294243.patch b/0140-Fix-locale-issue-in-grub-setpassword-1294243.patch index 3878df06..b01f4441 100644 --- a/0140-Fix-locale-issue-in-grub-setpassword-1294243.patch +++ b/0140-Fix-locale-issue-in-grub-setpassword-1294243.patch @@ -1,7 +1,7 @@ -From 124d4da3a6e4e747ab958614cf81c6c71753d36b Mon Sep 17 00:00:00 2001 +From 5f3812d1820b13137b5c79b135a6b790cb78ae60 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Fri, 29 Jan 2016 16:56:11 -0500 -Subject: [PATCH 140/206] Fix locale issue in grub-setpassword (#1294243) +Subject: [PATCH 140/215] Fix locale issue in grub-setpassword (#1294243) A shell substitution was expecting non-translated output to grab the hashed password and put it in the user.cfg file. Modified code to force diff --git a/0141-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch b/0141-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch index 221d7333..ec3d2c09 100644 --- a/0141-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch +++ b/0141-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch @@ -1,7 +1,7 @@ -From a2777060620735d6b59cf04e9ee866a205f06091 Mon Sep 17 00:00:00 2001 +From a7a38221a7f4593a9abb5f422d0dd349866ed029 Mon Sep 17 00:00:00 2001 From: Robert Elliott Date: Fri, 22 Jan 2016 13:32:30 +0100 -Subject: [PATCH 141/206] efiemu: Handle persistent RAM and unknown possible +Subject: [PATCH 141/215] efiemu: Handle persistent RAM and unknown possible future additions. (cherry picked from commit ae3b83a4d4df75a01198a2fed7542391e7c449e0) diff --git a/0142-efiemu-Fix-compilation-failure.patch b/0142-efiemu-Fix-compilation-failure.patch index a0d839d2..e9293f8f 100644 --- a/0142-efiemu-Fix-compilation-failure.patch +++ b/0142-efiemu-Fix-compilation-failure.patch @@ -1,7 +1,7 @@ -From cff986aeb1735ff5d9f4f0021faf2beda10b9dae Mon Sep 17 00:00:00 2001 +From 1da43f34f211772fbda36ef6fd81e1cbde37eae7 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Fri, 22 Jan 2016 14:10:30 +0100 -Subject: [PATCH 142/206] efiemu: Fix compilation failure +Subject: [PATCH 142/215] efiemu: Fix compilation failure (cherry picked from commit b6a03dfd327489d53ee07c6d7d593b99c7b7cb62) diff --git a/0143-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch b/0143-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch index 6478f611..9882d3a8 100644 --- a/0143-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch +++ b/0143-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch @@ -1,7 +1,7 @@ -From 5a20f597edbd69907a61a361fa8aff918b2c6864 Mon Sep 17 00:00:00 2001 +From 9b93a986a68502c1ab2303efd7469fda0c5709cf Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 7 Apr 2016 10:58:06 -0400 -Subject: [PATCH 143/206] Revert "reopen SNP protocol for exclusive use by +Subject: [PATCH 143/215] Revert "reopen SNP protocol for exclusive use by grub" I *think* this should have been replaced by upstream's diff --git a/0144-Add-a-url-parser.patch b/0144-Add-a-url-parser.patch index 3296e4e2..d09e9bf8 100644 --- a/0144-Add-a-url-parser.patch +++ b/0144-Add-a-url-parser.patch @@ -1,7 +1,7 @@ -From 956b3cd5f9669a0cdbf4607973e12540d09ccc18 Mon Sep 17 00:00:00 2001 +From 520e6078ff9e3fbf1edf687e51597dac98c07d56 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jun 2016 16:18:44 -0400 -Subject: [PATCH 144/206] Add a url parser. +Subject: [PATCH 144/215] Add a url parser. This patch adds a url parser that can parse http, https, tftp, and tftps urls, and is easily extensible to handle more types. diff --git a/0145-efinet-and-bootp-add-support-for-dhcpv6.patch b/0145-efinet-and-bootp-add-support-for-dhcpv6.patch index 67dbfb76..711390e9 100644 --- a/0145-efinet-and-bootp-add-support-for-dhcpv6.patch +++ b/0145-efinet-and-bootp-add-support-for-dhcpv6.patch @@ -1,7 +1,7 @@ -From 7456c9e2715a2e272a9e3d5fb2ae7e14c2edf3f6 Mon Sep 17 00:00:00 2001 +From 0bdcc68529fe2f3cdf92173fadffd2f9a6476b9b Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 8 Jun 2016 21:03:37 -0400 -Subject: [PATCH 145/206] efinet and bootp: add support for dhcpv6 +Subject: [PATCH 145/215] efinet and bootp: add support for dhcpv6 Signed-off-by: Peter Jones --- diff --git a/0146-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch b/0146-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch index 01030898..0e14e80a 100644 --- a/0146-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch +++ b/0146-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch @@ -1,7 +1,7 @@ -From 37208e75eac8c1f17598d75b4c340e3af735d23c Mon Sep 17 00:00:00 2001 +From dcadcc9070f778654eb704fc0907e261996ef76e Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 23 Jun 2016 11:01:39 -0400 -Subject: [PATCH 146/206] Add grub-get-kernel-settings and use it in 10_linux +Subject: [PATCH 146/215] Add grub-get-kernel-settings and use it in 10_linux This patch adds grub-get-kernel-settings, which reads the system kernel installation configuration from /etc/sysconfig/kernel, and outputs diff --git a/0147-Normalize-slashes-in-tftp-paths.patch b/0147-Normalize-slashes-in-tftp-paths.patch index a2b142bf..f145c9bd 100644 --- a/0147-Normalize-slashes-in-tftp-paths.patch +++ b/0147-Normalize-slashes-in-tftp-paths.patch @@ -1,7 +1,7 @@ -From ff268e842592a60d07e4ea39e8e7bae0c8d22611 Mon Sep 17 00:00:00 2001 +From 130783c1e461b64befbf0fa8c9002ef763606105 Mon Sep 17 00:00:00 2001 From: Lenny Szubowicz Date: Mon, 29 Aug 2016 11:04:48 -0400 -Subject: [PATCH 147/206] Normalize slashes in tftp paths. +Subject: [PATCH 147/215] Normalize slashes in tftp paths. Some tftp servers do not handle multiple consecutive slashes correctly; this patch avoids sending tftp requests with non-normalized paths. diff --git a/0148-Fix-malformed-tftp-packets.patch b/0148-Fix-malformed-tftp-packets.patch index e8b0c84c..b076e7a8 100644 --- a/0148-Fix-malformed-tftp-packets.patch +++ b/0148-Fix-malformed-tftp-packets.patch @@ -1,7 +1,7 @@ -From 700684eaa76046ceaca607877c897c50c7fbddb5 Mon Sep 17 00:00:00 2001 +From af0e4fc8f9cd844c44c969c0991269ec9ab01a62 Mon Sep 17 00:00:00 2001 From: Mark Salter Date: Tue, 7 Mar 2017 18:26:17 -0500 -Subject: [PATCH 148/206] Fix malformed tftp packets +Subject: [PATCH 148/215] Fix malformed tftp packets 0088-Normalize-slashes-in-tftp-paths.patch collapses multiple contiguous slashes in a filename into one slash in the tftp packet filename field. diff --git a/0149-Fix-race-in-EFI-validation.patch b/0149-Fix-race-in-EFI-validation.patch index 8039f94d..7edb4299 100644 --- a/0149-Fix-race-in-EFI-validation.patch +++ b/0149-Fix-race-in-EFI-validation.patch @@ -1,7 +1,7 @@ -From 1b21ff557074e5c2ecbabce06921e03986c09553 Mon Sep 17 00:00:00 2001 +From d5339007d0ffdaf6e8a4e9702e7cec447b118804 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 14 Jul 2015 16:58:51 -0700 -Subject: [PATCH 149/206] Fix race in EFI validation +Subject: [PATCH 149/215] Fix race in EFI validation --- grub-core/loader/i386/efi/linux.c | 44 ++++++++++----------------------------- diff --git a/0150-bz1374141-fix-incorrect-mask-for-ppc64.patch b/0150-bz1374141-fix-incorrect-mask-for-ppc64.patch index 568a886a..6ef4ca6c 100644 --- a/0150-bz1374141-fix-incorrect-mask-for-ppc64.patch +++ b/0150-bz1374141-fix-incorrect-mask-for-ppc64.patch @@ -1,7 +1,7 @@ -From 210bb34a3b86403b3109c77e4f4db26b4e6cee95 Mon Sep 17 00:00:00 2001 +From eea2b6113c2f17ed5755b23242457948025bfd33 Mon Sep 17 00:00:00 2001 From: Masahiro Matsuya Date: Sat, 29 Oct 2016 08:35:26 +0900 -Subject: [PATCH 150/206] bz1374141 fix incorrect mask for ppc64 +Subject: [PATCH 150/215] bz1374141 fix incorrect mask for ppc64 The netmask configured in firmware is not respected on ppc64 (big endian). When 255.255.252.0 is set as netmask in firmware, the following is the value of bootpath string in grub_ieee1275_parse_bootpath(). diff --git a/0151-Use-device-part-of-chainloader-target-if-present.patch b/0151-Use-device-part-of-chainloader-target-if-present.patch index b26121b8..00e8a8bb 100644 --- a/0151-Use-device-part-of-chainloader-target-if-present.patch +++ b/0151-Use-device-part-of-chainloader-target-if-present.patch @@ -1,7 +1,7 @@ -From a7ff45890757a0edbd80fadb0e182d65d980d781 Mon Sep 17 00:00:00 2001 +From d08c1a531d80b4e14a7bfeb0d762125f4fab1317 Mon Sep 17 00:00:00 2001 From: Raymund Will Date: Fri, 10 Apr 2015 01:45:02 -0400 -Subject: [PATCH 151/206] Use device part of chainloader target, if present. +Subject: [PATCH 151/215] Use device part of chainloader target, if present. Otherwise chainloading is restricted to '$root', which might not even be readable by EFI! diff --git a/0152-Add-secureboot-support-on-efi-chainloader.patch b/0152-Add-secureboot-support-on-efi-chainloader.patch index 26bda00e..4339b4e7 100644 --- a/0152-Add-secureboot-support-on-efi-chainloader.patch +++ b/0152-Add-secureboot-support-on-efi-chainloader.patch @@ -1,7 +1,7 @@ -From 8bd6b4f718d84a51b845eb403fe8c95fedfde853 Mon Sep 17 00:00:00 2001 +From 729766b6416f6ca13c694ce220c3b2156ced1691 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 6 Oct 2015 13:04:37 -0400 -Subject: [PATCH 152/206] Add secureboot support on efi chainloader +Subject: [PATCH 152/215] Add secureboot support on efi chainloader Expand the chainloader to be able to verify the image by means of shim lock protocol. The PE/COFF image is loaded and relocated by the diff --git a/0153-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch b/0153-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch index 69edeafb..69e4f6d2 100644 --- a/0153-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch +++ b/0153-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch @@ -1,7 +1,7 @@ -From de9e4f818527846f4a9cbfeb3d0bb3c7a64aae5c Mon Sep 17 00:00:00 2001 +From fe18b297027c4976d11b87f1b5adc07a7565cdee Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 6 Oct 2015 16:09:25 -0400 -Subject: [PATCH 153/206] Make any of the loaders that link in efi mode honor +Subject: [PATCH 153/215] Make any of the loaders that link in efi mode honor secure boot. And in this case "honor" means "even if somebody does link this in, they diff --git a/0154-Make-grub_fatal-also-backtrace.patch b/0154-Make-grub_fatal-also-backtrace.patch index 009358e8..c981530e 100644 --- a/0154-Make-grub_fatal-also-backtrace.patch +++ b/0154-Make-grub_fatal-also-backtrace.patch @@ -1,7 +1,7 @@ -From 40796ff76628edf757056788564200957f9e3fbc Mon Sep 17 00:00:00 2001 +From b2fd6377486d66ced5fd82325c3ee8e11f4f1176 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 27 Jan 2016 09:22:42 -0500 -Subject: [PATCH 154/206] Make grub_fatal() also backtrace. +Subject: [PATCH 154/215] Make grub_fatal() also backtrace. --- grub-core/Makefile.core.def | 3 ++ diff --git a/0155-Rework-linux-command.patch b/0155-Rework-linux-command.patch index 77b5feff..1e0bf084 100644 --- a/0155-Rework-linux-command.patch +++ b/0155-Rework-linux-command.patch @@ -1,7 +1,7 @@ -From 7bdb69cdbb54a400837f098d8cdf1a0cdd23f6ca Mon Sep 17 00:00:00 2001 +From 4fec1bb24e09f36366c62196285392a674d259d3 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 16:12:39 -0700 -Subject: [PATCH 155/206] Rework linux command +Subject: [PATCH 155/215] Rework linux command We want a single buffer that contains the entire kernel image in order to perform a TPM measurement. Allocate one and copy the entire kernel into it diff --git a/0156-Rework-linux16-command.patch b/0156-Rework-linux16-command.patch index af422c26..b4d4bec4 100644 --- a/0156-Rework-linux16-command.patch +++ b/0156-Rework-linux16-command.patch @@ -1,7 +1,7 @@ -From 4b7dc10875d95fde420bf62b75ed86d37bb1b172 Mon Sep 17 00:00:00 2001 +From 7d6ce3346f32a67e07fd3fda9ad65ac76f600628 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 16:20:58 -0700 -Subject: [PATCH 156/206] Rework linux16 command +Subject: [PATCH 156/215] Rework linux16 command We want a single buffer that contains the entire kernel image in order to perform a TPM measurement. Allocate one and copy the entire kernel int it diff --git a/0157-Make-grub-editenv-build-again.patch b/0157-Make-grub-editenv-build-again.patch index c168cb42..6c45045d 100644 --- a/0157-Make-grub-editenv-build-again.patch +++ b/0157-Make-grub-editenv-build-again.patch @@ -1,7 +1,7 @@ -From 7b698517977e63271f2692e623263de3fe57a8c8 Mon Sep 17 00:00:00 2001 +From 4e0105392434bac9f10ac79a820a69098abec2f5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 4 Mar 2016 16:29:13 -0500 -Subject: [PATCH 157/206] Make grub-editenv build again. +Subject: [PATCH 157/215] Make grub-editenv build again. 36212460d3565b18439a3a8130b28e6c97702c6a split how some of the mkimage utility functions are defined, and they wind up being linked into diff --git a/0158-Fix-up-some-man-pages-rpmdiff-noticed.patch b/0158-Fix-up-some-man-pages-rpmdiff-noticed.patch index 987f6764..34ff80a6 100644 --- a/0158-Fix-up-some-man-pages-rpmdiff-noticed.patch +++ b/0158-Fix-up-some-man-pages-rpmdiff-noticed.patch @@ -1,7 +1,7 @@ -From 908d355bba83df8000b313681e2e0ccdd7b8d1c2 Mon Sep 17 00:00:00 2001 +From 7779112786e3f892e05b9d293299dd7ef151d9dd Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 23 Sep 2014 09:58:49 -0400 -Subject: [PATCH 158/206] Fix up some man pages rpmdiff noticed. +Subject: [PATCH 158/215] Fix up some man pages rpmdiff noticed. --- configure.ac | 2 ++ diff --git a/0159-Re-work-some-intricacies-of-PE-loading.patch b/0159-Re-work-some-intricacies-of-PE-loading.patch index 8898f69e..80b55d99 100644 --- a/0159-Re-work-some-intricacies-of-PE-loading.patch +++ b/0159-Re-work-some-intricacies-of-PE-loading.patch @@ -1,7 +1,7 @@ -From 4ce01aac79b9a2858e243626d1aec43c8ab39c1d Mon Sep 17 00:00:00 2001 +From 9ca2908ab56bc32052b2f01bda6a35a190e39bae Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 9 Jun 2016 12:22:29 -0400 -Subject: [PATCH 159/206] Re-work some intricacies of PE loading. +Subject: [PATCH 159/215] Re-work some intricacies of PE loading. The PE spec is not a well written document, and awesomely every place where there's an ambiguous way to read something, Windows' bootmgfw.efi diff --git a/0160-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch b/0160-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch index eb147094..ad9732d8 100644 --- a/0160-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch +++ b/0160-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch @@ -1,7 +1,7 @@ -From 56562c289db5c67b9705feca4e8e61200b04d48b Mon Sep 17 00:00:00 2001 +From d8441e12feab1ae94f11849d1bcc5e73abb69231 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 10 Jun 2016 14:06:15 -0400 -Subject: [PATCH 160/206] Rework even more of efi chainload so non-sb cases +Subject: [PATCH 160/215] Rework even more of efi chainload so non-sb cases work right. This ensures that if shim protocol is not loaded, or is loaded but shim diff --git a/0161-linuxefi-fix-double-free-on-verification-failure.patch b/0161-linuxefi-fix-double-free-on-verification-failure.patch index acdcba12..c19f8f9e 100644 --- a/0161-linuxefi-fix-double-free-on-verification-failure.patch +++ b/0161-linuxefi-fix-double-free-on-verification-failure.patch @@ -1,7 +1,7 @@ -From 10ea5c02de8a66720847b46e98fe14e3f7d19199 Mon Sep 17 00:00:00 2001 +From e432d9b485112f0d35fd623e4b2467a3d788a38f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jun 2016 09:50:25 -0400 -Subject: [PATCH 161/206] linuxefi: fix double free on verification failure. +Subject: [PATCH 161/215] linuxefi: fix double free on verification failure. Signed-off-by: Peter Jones --- diff --git a/0162-fix-machine-type-test-in-30_os-prober.in.patch b/0162-fix-machine-type-test-in-30_os-prober.in.patch index 7c60fd28..73d59b3a 100644 --- a/0162-fix-machine-type-test-in-30_os-prober.in.patch +++ b/0162-fix-machine-type-test-in-30_os-prober.in.patch @@ -1,7 +1,7 @@ -From dd66269a4bdece11f6ea1744da6b1a36b5acb663 Mon Sep 17 00:00:00 2001 +From 33faccd6c6f23774bbbbc83731a712a7bed76c3f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 11 Jul 2016 13:36:45 -0400 -Subject: [PATCH 162/206] fix machine type test in 30_os-prober.in +Subject: [PATCH 162/215] fix machine type test in 30_os-prober.in Signed-off-by: Peter Jones --- diff --git a/0163-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch b/0163-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch index ea9b51ab..f21f9aba 100644 --- a/0163-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch +++ b/0163-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch @@ -1,7 +1,7 @@ -From 1543d9204f0bd32c3c06da2b55c7d531a88a0c95 Mon Sep 17 00:00:00 2001 +From ab9c2a7711858b2300abf802230c044db55c5171 Mon Sep 17 00:00:00 2001 From: Laszlo Ersek Date: Mon, 21 Nov 2016 15:34:00 +0100 -Subject: [PATCH 163/206] efi/chainloader: fix wrong sanity check in +Subject: [PATCH 163/215] efi/chainloader: fix wrong sanity check in relocate_coff() In relocate_coff(), the relocation entries are parsed from the original diff --git a/0164-efi-chainloader-truncate-overlong-relocation-section.patch b/0164-efi-chainloader-truncate-overlong-relocation-section.patch index 42185085..a2005bd2 100644 --- a/0164-efi-chainloader-truncate-overlong-relocation-section.patch +++ b/0164-efi-chainloader-truncate-overlong-relocation-section.patch @@ -1,7 +1,7 @@ -From ffcf6eb1050f80efee9df9dd7e2377f7379d0f9a Mon Sep 17 00:00:00 2001 +From 243bfac3395d76a7fc7344c5471e49ea41689233 Mon Sep 17 00:00:00 2001 From: Laszlo Ersek Date: Wed, 23 Nov 2016 06:27:09 +0100 -Subject: [PATCH 164/206] efi/chainloader: truncate overlong relocation section +Subject: [PATCH 164/215] efi/chainloader: truncate overlong relocation section The UEFI Windows 7 boot loader ("EFI/Microsoft/Boot/bootmgfw.efi", SHA1 31b410e029bba87d2068c65a80b88882f9f8ea25) has inconsistent headers. diff --git a/0165-linuxefi-minor-cleanups.patch b/0165-linuxefi-minor-cleanups.patch index 176e32c6..4b422ace 100644 --- a/0165-linuxefi-minor-cleanups.patch +++ b/0165-linuxefi-minor-cleanups.patch @@ -1,7 +1,7 @@ -From 242d81d7af4fa50070cc7bd44b9f38a25248080b Mon Sep 17 00:00:00 2001 +From ea34d6d6755dcd818fe6e74526a58a4f818f711a Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Feb 2017 16:31:52 -0500 -Subject: [PATCH 165/206] linuxefi: minor cleanups +Subject: [PATCH 165/215] linuxefi: minor cleanups Signed-off-by: Peter Jones --- diff --git a/0166-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch b/0166-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch index 24a8ebaa..25d964f3 100644 --- a/0166-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch +++ b/0166-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch @@ -1,7 +1,7 @@ -From 6fe073f4eed1a287314e7581b955a39d069b5d35 Mon Sep 17 00:00:00 2001 +From 543b4c21f3bf43b8919bd4b47195ebb542b73733 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Feb 2017 16:18:54 -0500 -Subject: [PATCH 166/206] Handle multi-arch (64-on-32) boot in linuxefi loader. +Subject: [PATCH 166/215] Handle multi-arch (64-on-32) boot in linuxefi loader. Allow booting 64-bit kernels on 32-bit EFI on x86. diff --git a/0167-Fix-up-linux-params-usage.patch b/0167-Fix-up-linux-params-usage.patch index 9ea52ff9..a4f0b059 100644 --- a/0167-Fix-up-linux-params-usage.patch +++ b/0167-Fix-up-linux-params-usage.patch @@ -1,7 +1,7 @@ -From b90a1afe2d3af828cccd291cb09b8cda2fc581dc Mon Sep 17 00:00:00 2001 +From 02a30356c3a09ac0959abdc4a29b88a59e1f1ac1 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 30 May 2017 14:16:07 -0400 -Subject: [PATCH 167/206] Fix up linux params usage... +Subject: [PATCH 167/215] Fix up linux params usage... Signed-off-by: Peter Jones --- diff --git a/0168-Make-exit-take-a-return-code.patch b/0168-Make-exit-take-a-return-code.patch index d6bbfb85..55f0cce2 100644 --- a/0168-Make-exit-take-a-return-code.patch +++ b/0168-Make-exit-take-a-return-code.patch @@ -1,7 +1,7 @@ -From 65473fe6fe5bc08a874eb433c3da3e7181250822 Mon Sep 17 00:00:00 2001 +From 874de3a91070b6f056434f2fce48d778ff84c665 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 26 Feb 2014 21:49:12 -0500 -Subject: [PATCH 168/206] Make "exit" take a return code. +Subject: [PATCH 168/215] Make "exit" take a return code. This adds "exit" with a return code. With this patch, any "exit" command /may/ include a return code, and on platforms that support diff --git a/0169-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch b/0169-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch index 6d11c9b2..3679fb2e 100644 --- a/0169-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch +++ b/0169-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch @@ -1,7 +1,7 @@ -From a90a7d236fcfa01bd09e34fdec5782c6509c6578 Mon Sep 17 00:00:00 2001 +From a327d2275238e8dd54ec8599d2d158e9cdd7693c Mon Sep 17 00:00:00 2001 From: Mark Salter Date: Mon, 17 Apr 2017 08:44:29 -0400 -Subject: [PATCH 169/206] arm64: make sure fdt has #address-cells and +Subject: [PATCH 169/215] arm64: make sure fdt has #address-cells and #size-cells properties Recent upstream changes to kexec-tools relies on #address-cells diff --git a/0170-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch b/0170-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch index 59c2098a..b427808b 100644 --- a/0170-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch +++ b/0170-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch @@ -1,7 +1,7 @@ -From 5c94dbb64c3ffa6394be00cd185e111151fbe6f1 Mon Sep 17 00:00:00 2001 +From 848a699f96e8529a30a47670051c5cb1f1a91d66 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 9 May 2016 14:15:17 -0400 -Subject: [PATCH 170/206] Add some grub_dprintf() in the secure boot verify +Subject: [PATCH 170/215] Add some grub_dprintf() in the secure boot verify code. Signed-off-by: Peter Jones diff --git a/0171-Make-our-info-pages-say-grub2-where-appropriate.patch b/0171-Make-our-info-pages-say-grub2-where-appropriate.patch index c2ba2483..daf68635 100644 --- a/0171-Make-our-info-pages-say-grub2-where-appropriate.patch +++ b/0171-Make-our-info-pages-say-grub2-where-appropriate.patch @@ -1,7 +1,7 @@ -From 53bdb9166fd78f0c703292529a1b674b2c5a58c7 Mon Sep 17 00:00:00 2001 +From 004821d9e309f65e4ff533f66787663fe2a54eac Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 6 May 2016 18:43:08 -0400 -Subject: [PATCH 171/206] Make our info pages say "grub2" where appropriate. +Subject: [PATCH 171/215] Make our info pages say "grub2" where appropriate. This needs to be hooked up to --program-transform=, but I haven't had time. diff --git a/0172-print-more-debug-info-in-our-module-loader.patch b/0172-print-more-debug-info-in-our-module-loader.patch index 9e58733d..dc6cf343 100644 --- a/0172-print-more-debug-info-in-our-module-loader.patch +++ b/0172-print-more-debug-info-in-our-module-loader.patch @@ -1,7 +1,7 @@ -From ecb06a3cb18f13882faeef81011396fac5594d71 Mon Sep 17 00:00:00 2001 +From 6025b0afe64157eb922d562e85f1734b7ce800c9 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 1 May 2017 11:19:40 -0400 -Subject: [PATCH 172/206] print more debug info in our module loader. +Subject: [PATCH 172/215] print more debug info in our module loader. Signed-off-by: Peter Jones --- @@ -9,7 +9,7 @@ Signed-off-by: Peter Jones 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c -index 684ca93f8f4..1f3ac5e1d08 100644 +index 684ca93f8f4..866fc20e162 100644 --- a/grub-core/kern/efi/efi.c +++ b/grub-core/kern/efi/efi.c @@ -304,13 +304,23 @@ grub_efi_modules_addr (void) @@ -29,7 +29,7 @@ index 684ca93f8f4..1f3ac5e1d08 100644 + if (section->name[0] != '.' && info->magic != GRUB_MODULE_MAGIC) + { + grub_dprintf("sections", -+ "section %d has bad magic %08lx, should be %08lx\n", ++ "section %d has bad magic %08x, should be %08x\n", + i, info->magic, GRUB_MODULE_MAGIC); + return 0; + } diff --git a/0173-macos-just-build-chainloader-entries-don-t-try-any-x.patch b/0173-macos-just-build-chainloader-entries-don-t-try-any-x.patch index 82b5f194..f25b758d 100644 --- a/0173-macos-just-build-chainloader-entries-don-t-try-any-x.patch +++ b/0173-macos-just-build-chainloader-entries-don-t-try-any-x.patch @@ -1,7 +1,7 @@ -From d58a3e5545c0a3245fdd9a05b6696c619d98fe84 Mon Sep 17 00:00:00 2001 +From 21539770394174892fe90ab9ce09a4d9a7e2a676 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 24 May 2017 12:42:32 -0400 -Subject: [PATCH 173/206] macos: just build chainloader entries, don't try any +Subject: [PATCH 173/215] macos: just build chainloader entries, don't try any xnu xnu. Since our bugs tell us that the xnu boot entries really just don't work diff --git a/0174-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch b/0174-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch index bf525079..95c2f806 100644 --- a/0174-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch +++ b/0174-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch @@ -1,7 +1,7 @@ -From 1b996230e31c4f854c42d71a1697a063a6a06808 Mon Sep 17 00:00:00 2001 +From ba06fbb797dff2261df7d211484c98905447ddb6 Mon Sep 17 00:00:00 2001 From: Jeff Mahoney Date: Wed, 18 Dec 2013 09:57:04 +0000 -Subject: [PATCH 174/206] grub2/btrfs: Add ability to boot from subvolumes +Subject: [PATCH 174/215] grub2/btrfs: Add ability to boot from subvolumes This patch adds the ability to specify a different root on a btrfs filesystem too boot from other than the default one. diff --git a/0175-export-btrfs_subvol-and-btrfs_subvolid.patch b/0175-export-btrfs_subvol-and-btrfs_subvolid.patch index d6e7d470..e5b6e702 100644 --- a/0175-export-btrfs_subvol-and-btrfs_subvolid.patch +++ b/0175-export-btrfs_subvol-and-btrfs_subvolid.patch @@ -1,7 +1,7 @@ -From 4d9c208da7d1bd1a88cdb814bd3fb226349aa4dc Mon Sep 17 00:00:00 2001 +From c2d51bfc2fedf707ec4bc8cca9a10cb1100c6888 Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Wed, 18 Dec 2013 09:57:04 +0000 -Subject: [PATCH 175/206] export btrfs_subvol and btrfs_subvolid +Subject: [PATCH 175/215] export btrfs_subvol and btrfs_subvolid We should export btrfs_subvol and btrfs_subvolid to have both visible to subsidiary configuration files loaded using configfile. diff --git a/0176-grub2-btrfs-03-follow_default.patch b/0176-grub2-btrfs-03-follow_default.patch index ee09d42c..ddccdb1f 100644 --- a/0176-grub2-btrfs-03-follow_default.patch +++ b/0176-grub2-btrfs-03-follow_default.patch @@ -1,7 +1,7 @@ -From 9dbffec98eb6aaf3c020d32f4e50c0a478f76c4c Mon Sep 17 00:00:00 2001 +From afc0024ac644e80552c808e8b8def04fd7f89918 Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 21 Aug 2014 03:39:11 +0000 -Subject: [PATCH 176/206] grub2-btrfs-03-follow_default +Subject: [PATCH 176/215] grub2-btrfs-03-follow_default --- grub-core/fs/btrfs.c | 107 ++++++++++++++++++++++++++++++++++++--------------- diff --git a/0177-grub2-btrfs-04-grub2-install.patch b/0177-grub2-btrfs-04-grub2-install.patch index c23ce2c8..f4aadd8a 100644 --- a/0177-grub2-btrfs-04-grub2-install.patch +++ b/0177-grub2-btrfs-04-grub2-install.patch @@ -1,7 +1,7 @@ -From 3c9245b695f3abcab701dfb4dee9a04a49a5ec8d Mon Sep 17 00:00:00 2001 +From a5cb6219b1f4abb50cbe0254ee6a2850e379854f Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 21 Aug 2014 03:39:11 +0000 -Subject: [PATCH 177/206] grub2-btrfs-04-grub2-install +Subject: [PATCH 177/215] grub2-btrfs-04-grub2-install --- grub-core/osdep/linux/getroot.c | 7 +++++++ diff --git a/0178-grub2-btrfs-05-grub2-mkconfig.patch b/0178-grub2-btrfs-05-grub2-mkconfig.patch index 2c22a0b5..01aa8f4d 100644 --- a/0178-grub2-btrfs-05-grub2-mkconfig.patch +++ b/0178-grub2-btrfs-05-grub2-mkconfig.patch @@ -1,7 +1,7 @@ -From 2d588223e2beb9af35ed05e57d19563f9aaf19ac Mon Sep 17 00:00:00 2001 +From 3312b0eab4773f09b00d294e3438d6cf881d62ef Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 21 Aug 2014 03:39:11 +0000 -Subject: [PATCH 178/206] grub2-btrfs-05-grub2-mkconfig +Subject: [PATCH 178/215] grub2-btrfs-05-grub2-mkconfig --- util/grub-mkconfig.in | 3 ++- diff --git a/0179-grub2-btrfs-06-subvol-mount.patch b/0179-grub2-btrfs-06-subvol-mount.patch index a0e4bc2c..b689f027 100644 --- a/0179-grub2-btrfs-06-subvol-mount.patch +++ b/0179-grub2-btrfs-06-subvol-mount.patch @@ -1,7 +1,7 @@ -From 75976884b9382d2445e328d354dad7c78a502d16 Mon Sep 17 00:00:00 2001 +From 421b1facc21a25ca28a48c9dd323c48c5ce8a46b Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Fri, 22 May 2015 11:45:25 +0000 -Subject: [PATCH 179/206] grub2-btrfs-06-subvol-mount +Subject: [PATCH 179/215] grub2-btrfs-06-subvol-mount --- grub-core/fs/btrfs.c | 195 +++++++++++++++++++++++++++++++++++++++- diff --git a/0180-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch b/0180-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch index bc52fd65..2de45d29 100644 --- a/0180-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch +++ b/0180-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch @@ -1,7 +1,7 @@ -From 01f78b61c49b62aeb5cd27f3cbc479d4177ccf7d Mon Sep 17 00:00:00 2001 +From 1eeea190cf2e134fddb448c7b55e6c82697f3f72 Mon Sep 17 00:00:00 2001 From: Dusty Mabe Date: Sat, 18 Jul 2015 15:38:08 +0000 -Subject: [PATCH 180/206] No more "Bootable Snapshot" submenu in grub.cfg. +Subject: [PATCH 180/215] No more "Bootable Snapshot" submenu in grub.cfg. This breaks grubby (run on kernel upgrades) because grubby just does a search for "menuentry". diff --git a/0181-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch b/0181-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch index 7cd45eee..cced964e 100644 --- a/0181-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch +++ b/0181-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch @@ -1,7 +1,7 @@ -From 47d4b57eb561b27af62427721a7e1fdef55129f0 Mon Sep 17 00:00:00 2001 +From 5f9e9d0d069b416175a2102edc574ffb9d523978 Mon Sep 17 00:00:00 2001 From: Andrei Borzenkov Date: Tue, 21 Jun 2016 16:44:17 +0000 -Subject: [PATCH 181/206] Fallback to old subvol name scheme to support old +Subject: [PATCH 181/215] Fallback to old subvol name scheme to support old snapshot config Ref: bsc#953538 diff --git a/0182-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch b/0182-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch index 5a9e4cea..d264e248 100644 --- a/0182-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch +++ b/0182-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch @@ -1,7 +1,7 @@ -From 0155b776ecb917863e1f8d842ff39cdaf56e9131 Mon Sep 17 00:00:00 2001 +From 158b6b3987ed402ddcb6d0568acbb60cc7a01aac Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 11 May 2017 08:56:57 +0000 -Subject: [PATCH 182/206] Grub not working correctly with btrfs snapshots +Subject: [PATCH 182/215] Grub not working correctly with btrfs snapshots (bsc#1026511) --- diff --git a/0183-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch b/0183-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch index 7312ce29..d94f80c6 100644 --- a/0183-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch +++ b/0183-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch @@ -1,7 +1,7 @@ -From 448e9bedfc0b3047ba0ef584c3f1ecffb986ea62 Mon Sep 17 00:00:00 2001 +From bdc07d05d0eeb39f0c90e7f8f6850016ebc4bf6b Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 1 Jun 2017 09:59:56 -0400 -Subject: [PATCH 183/206] Add grub_efi_allocate_pool() and grub_efi_free_pool() +Subject: [PATCH 183/215] Add grub_efi_allocate_pool() and grub_efi_free_pool() wrappers. Signed-off-by: Peter Jones diff --git a/0184-Use-grub_efi_.-memory-helpers-where-reasonable.patch b/0184-Use-grub_efi_.-memory-helpers-where-reasonable.patch index e527daad..c6d2c8bb 100644 --- a/0184-Use-grub_efi_.-memory-helpers-where-reasonable.patch +++ b/0184-Use-grub_efi_.-memory-helpers-where-reasonable.patch @@ -1,7 +1,7 @@ -From 5d867f35242d3a4efd97bf6466309ab3172794ff Mon Sep 17 00:00:00 2001 +From 0e6c1a61c5a7c38bd04a0d494dade62bc2c8cd43 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 1 Jun 2017 10:06:38 -0400 -Subject: [PATCH 184/206] Use grub_efi_...() memory helpers where reasonable. +Subject: [PATCH 184/215] Use grub_efi_...() memory helpers where reasonable. This uses grub_efi_allocate_pool(), grub_efi_free_pool(), and grub_efi_free_pages() instead of open-coded efi_call_N() calls, so we diff --git a/0185-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch b/0185-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch index a3cdcbae..25cb3127 100644 --- a/0185-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch +++ b/0185-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch @@ -1,7 +1,7 @@ -From c7b270e4214ef01f84c56411b388162f40f15b59 Mon Sep 17 00:00:00 2001 +From 4759e79a841a9d7eab743e67715459d3a864a29f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 1 Jun 2017 10:07:50 -0400 -Subject: [PATCH 185/206] Add PRIxGRUB_EFI_STATUS and use it. +Subject: [PATCH 185/215] Add PRIxGRUB_EFI_STATUS and use it. This avoids syntax checkers getting confused about if it's llx or lx. diff --git a/0186-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch b/0186-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch index 2ea63327..1340df49 100644 --- a/0186-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch +++ b/0186-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch @@ -1,7 +1,7 @@ -From 9430a7f210803daaef67f9dd113a4217292e42da Mon Sep 17 00:00:00 2001 +From c7bb1be13a759a55216c99662d660614a161c37f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:42:57 -0400 -Subject: [PATCH 186/206] Don't use dynamic sized arrays since we don't build +Subject: [PATCH 186/215] Don't use dynamic sized arrays since we don't build with -std=c99 --- diff --git a/0187-don-t-ignore-const.patch b/0187-don-t-ignore-const.patch index 65aa1553..536b3aa2 100644 --- a/0187-don-t-ignore-const.patch +++ b/0187-don-t-ignore-const.patch @@ -1,7 +1,7 @@ -From 99eebaec7e4c79bae548385de3892af23c28c6ca Mon Sep 17 00:00:00 2001 +From 3eb59abe528f660e24e004a99b86686ea2f022c5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:43:22 -0400 -Subject: [PATCH 187/206] don't ignore const +Subject: [PATCH 187/215] don't ignore const --- grub-core/net/tftp.c | 2 +- diff --git a/0188-don-t-use-int-for-efi-status.patch b/0188-don-t-use-int-for-efi-status.patch index 9b65887c..d6d7ab74 100644 --- a/0188-don-t-use-int-for-efi-status.patch +++ b/0188-don-t-use-int-for-efi-status.patch @@ -1,14 +1,14 @@ -From fad5bdf5359d1f3e2ad962cc3fe0e15d26a3df6a Mon Sep 17 00:00:00 2001 +From d4517c646fb4617a9ac162489b2fbaf9c2fcdd7b Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:44:59 -0400 -Subject: [PATCH 188/206] don't use int for efi status +Subject: [PATCH 188/215] don't use int for efi status --- grub-core/kern/efi/efi.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c -index 1f3ac5e1d08..2b60a6e27ea 100644 +index 866fc20e162..91f75fdb89a 100644 --- a/grub-core/kern/efi/efi.c +++ b/grub-core/kern/efi/efi.c @@ -157,7 +157,7 @@ grub_efi_get_loaded_image (grub_efi_handle_t image_handle) diff --git a/0189-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch b/0189-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch index 001dfd9a..ba95ce02 100644 --- a/0189-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch +++ b/0189-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch @@ -1,7 +1,7 @@ -From cc0a1afb1d30df68168c48968fb13134d897d561 Mon Sep 17 00:00:00 2001 +From 72eb71bcadf8f35851b15632e8ef4ad1d0a64513 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:46:23 -0400 -Subject: [PATCH 189/206] make GRUB_MOD_INIT() declare its function prototypes. +Subject: [PATCH 189/215] make GRUB_MOD_INIT() declare its function prototypes. --- include/grub/dl.h | 2 ++ diff --git a/0190-Clean-up-some-errors-in-the-linuxefi-loader.patch b/0190-Clean-up-some-errors-in-the-linuxefi-loader.patch index 8565027e..75c290f2 100644 --- a/0190-Clean-up-some-errors-in-the-linuxefi-loader.patch +++ b/0190-Clean-up-some-errors-in-the-linuxefi-loader.patch @@ -1,7 +1,7 @@ -From 819eceb4c94e8463f4d2edb381a04bf0020d68a9 Mon Sep 17 00:00:00 2001 +From e240faaa432ad7ba3f7ced51b983d8d663a83460 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 24 May 2017 15:58:18 -0400 -Subject: [PATCH 190/206] Clean up some errors in the linuxefi loader +Subject: [PATCH 190/215] Clean up some errors in the linuxefi loader Signed-off-by: Peter Jones --- diff --git a/0191-editenv-handle-relative-symlinks.patch b/0191-editenv-handle-relative-symlinks.patch index 4fd872bf..d09fe09f 100644 --- a/0191-editenv-handle-relative-symlinks.patch +++ b/0191-editenv-handle-relative-symlinks.patch @@ -1,7 +1,7 @@ -From 4233b690a911f16f6da04cd8f3fffbe114c369b9 Mon Sep 17 00:00:00 2001 +From 9778fafba22ec67f97bb35a34980230966ebe0de Mon Sep 17 00:00:00 2001 From: Jonathan Lebon Date: Mon, 14 Aug 2017 14:37:20 -0400 -Subject: [PATCH 191/206] editenv: handle relative symlinks +Subject: [PATCH 191/215] editenv: handle relative symlinks Handle symlinks with targets relative to the containing dir. This ensures that the rename operation does not depend on the cwd. diff --git a/0192-Make-libgrub.pp-depend-on-config-util.h.patch b/0192-Make-libgrub.pp-depend-on-config-util.h.patch index 053ec0f1..952df61f 100644 --- a/0192-Make-libgrub.pp-depend-on-config-util.h.patch +++ b/0192-Make-libgrub.pp-depend-on-config-util.h.patch @@ -1,7 +1,7 @@ -From 8a140f441ad2b3901757ce5500d043cd45d04c23 Mon Sep 17 00:00:00 2001 +From b8baf7070cc80fc44ee998a4748029c893f5ab13 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 23 Aug 2017 10:37:27 -0400 -Subject: [PATCH 192/206] Make libgrub.pp depend on config-util.h +Subject: [PATCH 192/215] Make libgrub.pp depend on config-util.h If you build with "make -j48" a lot, sometimes you see: diff --git a/0193-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch b/0193-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch index 17b1d8df..b17c9018 100644 --- a/0193-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch +++ b/0193-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch @@ -1,7 +1,7 @@ -From 89ed2838bec91a26f6797702e637e48737c4fb0f Mon Sep 17 00:00:00 2001 +From 385f38332007339ac7dd3e3e551c54faa3c32dbc Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 20 Apr 2017 13:29:06 -0400 -Subject: [PATCH 193/206] Don't guess /boot/efi/ as HFS+ on ppc machines in +Subject: [PATCH 193/215] Don't guess /boot/efi/ as HFS+ on ppc machines in grub-install This should never be trying this, and since we've consolidated the diff --git a/0194-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch b/0194-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch index 5a91c416..57f576db 100644 --- a/0194-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch +++ b/0194-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch @@ -1,7 +1,7 @@ -From a39fb79b9424d5390b3940676ed441199c419048 Mon Sep 17 00:00:00 2001 +From 733966aa9d241a0987a7097eca74b0f58b426833 Mon Sep 17 00:00:00 2001 From: Konrad Rzeszutek Wilk Date: Mon, 28 Aug 2017 13:51:14 -0400 -Subject: [PATCH 194/206] Fix util/grub.d/20_linux_xen.in: Add xen_boot command +Subject: [PATCH 194/215] Fix util/grub.d/20_linux_xen.in: Add xen_boot command support for aarch64 Commit d33045ce7ffcb7c1e4a60c14d5ca64b36e3c5abe introduced diff --git a/0195-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch b/0195-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch index c806e566..b188d96f 100644 --- a/0195-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch +++ b/0195-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch @@ -1,7 +1,7 @@ -From 940c62edc168e3b7715b04a30c0bd8a1a423c5e1 Mon Sep 17 00:00:00 2001 +From d592ef69ef92e3f7a414577af70678be706ff8c8 Mon Sep 17 00:00:00 2001 From: Konrad Rzeszutek Wilk Date: Mon, 28 Aug 2017 13:59:12 -0400 -Subject: [PATCH 195/206] Use grub-file to figure out whether multiboot2 should +Subject: [PATCH 195/215] Use grub-file to figure out whether multiboot2 should be used for Xen.gz The multiboot2 is much more preferable than multiboot. Especiall diff --git a/0196-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch b/0196-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch index d032a771..06a2ba22 100644 --- a/0196-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch +++ b/0196-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch @@ -1,7 +1,7 @@ -From 58884ecfeb0304a0495e0f312b5f5b878ec9c94c Mon Sep 17 00:00:00 2001 +From ae2759407aad1b5cfee90299ef0a6f53ca4d3d9a Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 19 Oct 2017 11:29:11 -0400 -Subject: [PATCH 196/206] 20_linux_xen: load xen or multiboot{,2} modules as +Subject: [PATCH 196/215] 20_linux_xen: load xen or multiboot{,2} modules as needed. Signed-off-by: Peter Jones diff --git a/0197-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch b/0197-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch index efa1360d..a493ecdb 100644 --- a/0197-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch +++ b/0197-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch @@ -1,7 +1,7 @@ -From 5ccff1d133f501355b03fb756f859ccde07b5e5c Mon Sep 17 00:00:00 2001 +From d88a8ff86cb9c360bc92b75db69e5024b1e814cc Mon Sep 17 00:00:00 2001 From: "David E. Box" Date: Fri, 15 Sep 2017 15:37:05 -0700 -Subject: [PATCH 197/206] tsc: Change default tsc calibration method to pmtimer +Subject: [PATCH 197/215] tsc: Change default tsc calibration method to pmtimer on EFI systems On efi systems, make pmtimer based tsc calibration the default over the diff --git a/0198-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch b/0198-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch index bb5fc4e5..97ea542f 100644 --- a/0198-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch +++ b/0198-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch @@ -1,7 +1,7 @@ -From af98540752f32d95b565f856b15b4655b04e5cfc Mon Sep 17 00:00:00 2001 +From ee10486cadcae785711ccc7c46dac24a500be8fc Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 7 Nov 2017 17:12:17 -0500 -Subject: [PATCH 198/206] Make pmtimer tsc calibration not take 51 seconds to +Subject: [PATCH 198/215] Make pmtimer tsc calibration not take 51 seconds to fail. On my laptop running at 2.4GHz, if I run a VM where tsc calibration diff --git a/0199-align-struct-efi_variable-better.patch b/0199-align-struct-efi_variable-better.patch index 3cea0b8d..16fb9cae 100644 --- a/0199-align-struct-efi_variable-better.patch +++ b/0199-align-struct-efi_variable-better.patch @@ -1,7 +1,7 @@ -From c4369d658d7a0f372e7378e119f7a16dc7d93624 Mon Sep 17 00:00:00 2001 +From cfcacf01ed042f6354c5d4249bdc6d883d04b330 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 27 Feb 2018 13:55:35 -0500 -Subject: [PATCH 199/206] align struct efi_variable better... +Subject: [PATCH 199/215] align struct efi_variable better... --- include/grub/efiemu/runtime.h | 2 +- diff --git a/0200-Add-quicksort-implementation.patch b/0200-Add-quicksort-implementation.patch index 0b41fac5..f3de7024 100644 --- a/0200-Add-quicksort-implementation.patch +++ b/0200-Add-quicksort-implementation.patch @@ -1,7 +1,7 @@ -From 99be2c048e5cc307cc4daa03a7916cc794b1bcc4 Mon Sep 17 00:00:00 2001 +From f46dc44957a3a31a86a215d43f3971fa4ca97318 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 9 Dec 2016 15:39:47 -0500 -Subject: [PATCH 200/206] Add quicksort implementation +Subject: [PATCH 200/215] Add quicksort implementation This will be used to sort the boot menu entries that are read from the BootLoaderSpec config files. diff --git a/0201-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch b/0201-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch index 54f488bc..04f5fe27 100644 --- a/0201-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch +++ b/0201-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch @@ -1,7 +1,7 @@ -From ae50bd922b174a6cbb513a4cd703a4f8a94aeddb Mon Sep 17 00:00:00 2001 +From de3430a0a616a9600ccac0f0a9df661446661999 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 9 Dec 2016 15:40:58 -0500 -Subject: [PATCH 201/206] Add blscfg command support to parse BootLoaderSpec +Subject: [PATCH 201/215] Add blscfg command support to parse BootLoaderSpec config fragments The BootLoaderSpec (BLS) defines a scheme where different bootloaders can @@ -12,11 +12,11 @@ GRUB2 already has a blscfg modle that can parse the config snippets using the bls_import command, change it to blscfg and improve the BLS support. --- grub-core/Makefile.core.def | 4 +- - grub-core/commands/blscfg.c | 786 ++++++++++++++++++++++++++++++++++++++++--- + grub-core/commands/blscfg.c | 788 ++++++++++++++++++++++++++++++++++++++++--- grub-core/commands/loadenv.c | 77 +---- grub-core/commands/loadenv.h | 93 +++++ include/grub/compiler.h | 2 + - 5 files changed, 830 insertions(+), 132 deletions(-) + 5 files changed, 832 insertions(+), 132 deletions(-) create mode 100644 grub-core/commands/loadenv.h diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def @@ -42,7 +42,7 @@ index 3a5d450f3d0..0ca0bdad412 100644 }; diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c -index 4274aca5a9d..87e7d9a4c64 100644 +index 4274aca5a9d..9ab45631465 100644 --- a/grub-core/commands/blscfg.c +++ b/grub-core/commands/blscfg.c @@ -30,32 +30,405 @@ @@ -669,7 +669,7 @@ index 4274aca5a9d..87e7d9a4c64 100644 src = grub_xasprintf ("load_video\n" "set gfx_payload=keep\n" "insmod gzio\n" -@@ -133,40 +621,217 @@ static int parse_entry ( +@@ -133,40 +621,219 @@ static int parse_entry ( GRUB_BOOT_DEVICE, clinux, options ? " " : "", options ? options : "", initrd ? GRUB_INITRD_CMD " " : "", initrd ? GRUB_BOOT_DEVICE : "", initrd ? initrd : "", initrd ? "\n" : ""); @@ -829,7 +829,9 @@ index 4274aca5a9d..87e7d9a4c64 100644 + bls_free_entry (entries[r]); +finish: + nentries = 0; ++ + grub_free (entries); ++ entries = NULL; + + grub_free ((char *)blsdir); + @@ -899,7 +901,7 @@ index 4274aca5a9d..87e7d9a4c64 100644 fs = grub_fs_probe (dev); if (!fs) { -@@ -174,7 +839,17 @@ grub_cmd_bls_import (grub_extcmd_context_t ctxt __attribute__ ((unused)), +@@ -174,7 +841,17 @@ grub_cmd_bls_import (grub_extcmd_context_t ctxt __attribute__ ((unused)), goto finish; } @@ -918,7 +920,7 @@ index 4274aca5a9d..87e7d9a4c64 100644 finish: if (dev) -@@ -187,8 +862,9 @@ static grub_extcmd_t cmd; +@@ -187,8 +864,9 @@ static grub_extcmd_t cmd; GRUB_MOD_INIT(bls) { diff --git a/0202-Add-BLS-support-to-grub-mkconfig.patch b/0202-Add-BLS-support-to-grub-mkconfig.patch index 99a532a2..0dd0536b 100644 --- a/0202-Add-BLS-support-to-grub-mkconfig.patch +++ b/0202-Add-BLS-support-to-grub-mkconfig.patch @@ -1,7 +1,7 @@ -From 3f54a7a23b2d239ccee7e13ee3b699e085f54301 Mon Sep 17 00:00:00 2001 +From 83e296e519bbb551e06a6d011daaa16bbfee8b86 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 9 Dec 2016 15:40:29 -0500 -Subject: [PATCH 202/206] Add BLS support to grub-mkconfig +Subject: [PATCH 202/215] Add BLS support to grub-mkconfig GRUB now has BootLoaderSpec support, the user can choose to use this by setting GRUB_ENABLE_BLSCFG to true in /etc/default/grub. On this setup, diff --git a/0203-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch b/0203-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch index c3a7b74f..1143f7d4 100644 --- a/0203-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch +++ b/0203-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch @@ -1,7 +1,7 @@ -From 1706e90ed0c2634b6f06e97fa1c7057278a7096b Mon Sep 17 00:00:00 2001 +From 5ee3b4f17f20848f8cddff1313fbd99048b46036 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 6 Feb 2018 11:02:09 +0100 -Subject: [PATCH 203/206] Remove duplicated grub_exit() definition for grub-emu +Subject: [PATCH 203/215] Remove duplicated grub_exit() definition for grub-emu platform The grub_exit() function signature was changed on all platforms to take a diff --git a/0204-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch b/0204-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch index 30d3f4b3..13a331f8 100644 --- a/0204-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch +++ b/0204-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch @@ -1,7 +1,7 @@ -From 6bebad4c7172ba23d3994828945b21ed74bcc6c2 Mon Sep 17 00:00:00 2001 +From a0029e01e10b5077c88aa56b12314ace5e9c3e4e Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 6 Feb 2018 11:16:28 +0100 -Subject: [PATCH 204/206] Don't attempt to backtrace on grub_abort() for +Subject: [PATCH 204/215] Don't attempt to backtrace on grub_abort() for grub-emu The emu platform doesn't have a grub_backtrace() implementation, so this diff --git a/0205-Enable-blscfg-command-for-the-emu-platform.patch b/0205-Enable-blscfg-command-for-the-emu-platform.patch index bcb2b930..30c0cde4 100644 --- a/0205-Enable-blscfg-command-for-the-emu-platform.patch +++ b/0205-Enable-blscfg-command-for-the-emu-platform.patch @@ -1,7 +1,7 @@ -From 32679a10c1297104cf89ba53f238b4233ba922ce Mon Sep 17 00:00:00 2001 +From ad586ac13d32bd610c86aaa3d8972101371476eb Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Fri, 2 Feb 2018 11:36:29 +0100 -Subject: [PATCH 205/206] Enable blscfg command for the emu platform +Subject: [PATCH 205/215] Enable blscfg command for the emu platform Allow grub-emu to call a blscfg command. This may be useful for platforms that don't support GRUB, so grub-emu can be used to parse the BLS configs @@ -26,7 +26,7 @@ index 0ca0bdad412..420cbf0a024 100644 module = { diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c -index 87e7d9a4c64..12104d490ec 100644 +index 9ab45631465..e5617c3bc6c 100644 --- a/grub-core/commands/blscfg.c +++ b/grub-core/commands/blscfg.c @@ -37,7 +37,12 @@ GRUB_MOD_LICENSE ("GPLv3+"); @@ -102,7 +102,7 @@ index 87e7d9a4c64..12104d490ec 100644 blsdir = grub_xasprintf ("/EFI/%s/%s/", filename, blsdir); else blsdir = grub_strdup (blsdir); -@@ -816,15 +831,21 @@ grub_cmd_blscfg (grub_extcmd_context_t ctxt UNUSED, +@@ -818,15 +833,21 @@ grub_cmd_blscfg (grub_extcmd_context_t ctxt UNUSED, { .dev = NULL, .fs = NULL, @@ -125,7 +125,7 @@ index 87e7d9a4c64..12104d490ec 100644 grub_dprintf ("blscfg", "opening %s\n", devid); dev = grub_device_open (devid); -@@ -842,11 +863,16 @@ grub_cmd_blscfg (grub_extcmd_context_t ctxt UNUSED, +@@ -844,11 +865,16 @@ grub_cmd_blscfg (grub_extcmd_context_t ctxt UNUSED, info.dev = dev; info.fs = fs; #ifdef GRUB_MACHINE_EFI @@ -144,7 +144,7 @@ index 87e7d9a4c64..12104d490ec 100644 grub_dprintf ("blscfg", "scanning %s\n", GRUB_BLS_CONFIG_PATH); r = fs->dir (dev, "/", find_entry, &info); #endif -@@ -860,7 +886,7 @@ finish: +@@ -862,7 +888,7 @@ finish: static grub_extcmd_t cmd; @@ -153,7 +153,7 @@ index 87e7d9a4c64..12104d490ec 100644 { grub_dprintf("blscfg", "%s got here\n", __func__); cmd = grub_register_extcmd ("blscfg", -@@ -871,7 +897,7 @@ GRUB_MOD_INIT(bls) +@@ -873,7 +899,7 @@ GRUB_MOD_INIT(bls) NULL); } diff --git a/0206-Add-linux-and-initrd-commands-for-grub-emu.patch b/0206-Add-linux-and-initrd-commands-for-grub-emu.patch index 32395502..3c2cb6eb 100644 --- a/0206-Add-linux-and-initrd-commands-for-grub-emu.patch +++ b/0206-Add-linux-and-initrd-commands-for-grub-emu.patch @@ -1,7 +1,7 @@ -From b22a512b55d4234c7ae2610fe78a70e97ad66918 Mon Sep 17 00:00:00 2001 +From cc17b5318a72426969bf50748056ae526f0011b9 Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Tue, 6 Feb 2018 09:09:00 +0100 -Subject: [PATCH 206/206] Add linux and initrd commands for grub-emu +Subject: [PATCH 206/215] Add linux and initrd commands for grub-emu When using grub-emu, the linux and initrd commands are used as arguments to the kexec command line tool, to allow booting the selected menu entry. diff --git a/0207-Fix-the-efidir-in-grub-setpassword.patch b/0207-Fix-the-efidir-in-grub-setpassword.patch new file mode 100644 index 00000000..88dca6cb --- /dev/null +++ b/0207-Fix-the-efidir-in-grub-setpassword.patch @@ -0,0 +1,27 @@ +From bb0547998b22e6c8c675fc67dda6ae1ddf3cf890 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Thu, 15 Mar 2018 14:12:54 -0400 +Subject: [PATCH 207/215] Fix the efidir in grub-setpassword + +Signed-off-by: Peter Jones +--- + util/grub-setpassword.in | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/util/grub-setpassword.in b/util/grub-setpassword.in +index d7924af5192..cf70257eed6 100644 +--- a/util/grub-setpassword.in ++++ b/util/grub-setpassword.in +@@ -1,7 +1,8 @@ + #!/bin/sh -e + ++EFIDIR=$(grep ^ID= /etc/os-release | sed -e 's/^ID=//' -e 's/rhel/redhat/') + if [ -d /sys/firmware/efi/efivars/ ]; then +- grubdir=`echo "/@bootdirname@/efi/EFI/redhat/" | sed 's,//*,/,g'` ++ grubdir=`echo "/@bootdirname@/efi/EFI/${EFIDIR}/" | sed 's,//*,/,g'` + else + grubdir=`echo "/@bootdirname@/@grubdirname@" | sed 's,//*,/,g'` + fi +-- +2.15.0 + diff --git a/0208-Add-grub2-switch-to-blscfg.patch b/0208-Add-grub2-switch-to-blscfg.patch new file mode 100644 index 00000000..a6e44a88 --- /dev/null +++ b/0208-Add-grub2-switch-to-blscfg.patch @@ -0,0 +1,348 @@ +From 4db80106d593b4af6ba76d885e900b65a8e58868 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Thu, 15 Mar 2018 14:12:40 -0400 +Subject: [PATCH 208/215] Add grub2-switch-to-blscfg + +Signed-off-by: Peter Jones +--- + Makefile.util.def | 7 ++ + .gitignore | 2 + + util/grub-switch-to-blscfg.8 | 25 ++++ + util/grub-switch-to-blscfg.in | 262 ++++++++++++++++++++++++++++++++++++++++++ + 4 files changed, 296 insertions(+) + create mode 100644 util/grub-switch-to-blscfg.8 + create mode 100644 util/grub-switch-to-blscfg.in + +diff --git a/Makefile.util.def b/Makefile.util.def +index 38cdf4ccc09..fe392c24351 100644 +--- a/Makefile.util.def ++++ b/Makefile.util.def +@@ -1341,6 +1341,13 @@ program = { + ldadd = '$(LIBINTL) $(LIBDEVMAPPER) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)'; + }; + ++script = { ++ name = grub-switch-to-blscfg; ++ common = util/grub-switch-to-blscfg.in; ++ mansection = 8; ++ installdir = sbin; ++}; ++ + program = { + name = grub-glue-efi; + mansection = 1; +diff --git a/.gitignore b/.gitignore +index 9f258735aaa..4a945596fea 100644 +--- a/.gitignore ++++ b/.gitignore +@@ -117,6 +117,8 @@ grub-*.tar.* + /grub*-sparc64-setup.8 + /grub*-syslinux2cfg + /grub*-syslinux2cfg.1 ++/grub*-switch-to-blscfg ++/grub*-switch-to-blscfg.8 + /grub_fstest.pp + /grub_fstest_init.c + /grub_fstest_init.lst +diff --git a/util/grub-switch-to-blscfg.8 b/util/grub-switch-to-blscfg.8 +new file mode 100644 +index 00000000000..134dfc62a7b +--- /dev/null ++++ b/util/grub-switch-to-blscfg.8 +@@ -0,0 +1,25 @@ ++.TH GRUB-SWITCH-TO-BLSCFG 1 "Wed Feb 26 2014" ++.SH NAME ++\fBgrub-switch-to-blscfg\fR \(em Switch to using BLS config files. ++ ++.SH SYNOPSIS ++\fBgrub-switch-to-blscfg\fR [--grub-directory=\fIDIR\fR] [--config-file=\fIFILE\fR] [--grub-defaults=\fIFILE\fR] ++ ++.SH DESCRIPTION ++\fBgrub-switch-to-blscfg\fR reconfigures grub-mkconfig to use BLS-style config files, and then regenerates the GRUB configuration. ++ ++.SH OPTIONS ++.TP ++--grub-directory=\fIDIR\fR ++Search for grub.cfg under \fIDIR\fR. The default value is \fI/boot/efi/EFI/\fBVENDOR\fR on UEFI machines and \fI/boot/grub2\fR elsewhere. ++ ++.TP ++--config-file=\fIFILE\fR ++The grub config file to use. The default value is \fI/etc/grub2-efi.cfg\fR on UEFI machines and \fI/etc/grub2.cfg\fR elsewhere. Symbolic links will be followed. ++ ++.TP ++--grub-defaults=\fIFILE\fR ++The defaults file for grub-mkconfig. The default value is \fI/etc/default/grub\fR. ++ ++.SH SEE ALSO ++.BR "info grub" +diff --git a/util/grub-switch-to-blscfg.in b/util/grub-switch-to-blscfg.in +new file mode 100644 +index 00000000000..3ae5e4ea8d0 +--- /dev/null ++++ b/util/grub-switch-to-blscfg.in +@@ -0,0 +1,262 @@ ++#! /bin/sh ++# ++# Set a default boot entry for GRUB. ++# Copyright (C) 2004,2009 Free Software Foundation, Inc. ++# ++# GRUB is free software: you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation, either version 3 of the License, or ++# (at your option) any later version. ++# ++# GRUB is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with GRUB. If not, see . ++ ++#set -eu ++ ++# Initialize some variables. ++prefix=@prefix@ ++exec_prefix=@exec_prefix@ ++bindir=@bindir@ ++sysconfdir="@sysconfdir@" ++PACKAGE_NAME=@PACKAGE_NAME@ ++PACKAGE_VERSION=@PACKAGE_VERSION@ ++datarootdir="@datarootdir@" ++datadir="@datadir@" ++if [ ! -v pkgdatadir ]; then ++ pkgdatadir="${datadir}/@PACKAGE@" ++fi ++ ++self=`basename $0` ++ ++grub_editenv=${bindir}/@grub_editenv@ ++etcdefaultgrub=/etc/default/grub ++ ++EFIDIR=$(grep ^ID= /etc/os-release | sed -e 's/^ID=//' -e 's/rhel/redhat/') ++if [ -d /sys/firmware/efi/efivars/ ]; then ++ startlink=/etc/grub2-efi.cfg ++ grubdir=`echo "/@bootdirname@/efi/EFI/${EFIDIR}/" | sed 's,//*,/,g'` ++ blsdir=`echo "/@bootdirname@/efi/EFI/${EFIDIR}/loader/entries" | sed 's,//*,/,g'` ++else ++ startlink=/etc/grub2.cfg ++ grubdir=`echo "/@bootdirname@/@grubdirname@" | sed 's,//*,/,g'` ++ blsdir=`echo "/@bootdirname@" | sed 's,//*,/,g'` ++fi ++ ++backupsuffix=.bak ++ ++export TEXTDOMAIN=@PACKAGE@ ++export TEXTDOMAINDIR="@localedir@" ++ ++. "${pkgdatadir}/grub-mkconfig_lib" ++ ++# Usage: usage ++# Print the usage. ++usage () { ++ gettext_printf "Usage: %s\n" "$self" ++ gettext "Switch to BLS config files.\n"; echo ++ echo ++ print_option_help "-h, --help" "$(gettext "print this message and exit")" ++ print_option_help "-V, --version" "$(gettext "print the version information and exit")" ++ echo ++ print_option_help "--backup-suffix=$(gettext "SUFFIX")" "$backupsuffix" ++ print_option_help "--bls-directory=$(gettext "DIR")" "$blsdir" ++ print_option_help "--config-file=$(gettext "FILE")" "$startlink" ++ print_option_help "--grub-defaults=$(gettext "FILE")" "$etcdefaultgrub" ++ print_option_help "--grub-directory=$(gettext "DIR")" "$grubdir" ++ # echo ++ # gettext "Report bugs to ."; echo ++} ++ ++argument () { ++ opt=$1 ++ shift ++ ++ if test $# -eq 0; then ++ gettext_printf "%s: option requires an argument -- \`%s'\n" "$self" "$opt" 1>&2 ++ exit 1 ++ fi ++ echo $1 ++} ++ ++# Check the arguments. ++while test $# -gt 0 ++do ++ option=$1 ++ shift ++ ++ case "$option" in ++ -h | --help) ++ usage ++ exit 0 ;; ++ -V | --version) ++ echo "$self (${PACKAGE_NAME}) ${PACKAGE_VERSION}" ++ exit 0 ;; ++ ++ --backup-suffix) ++ backupsuffix=`argument $option "$@"` ++ shift ++ ;; ++ --backup-suffix=*) ++ backupsuffix=`echo "$option" | sed 's/--backup-suffix=//'` ++ ;; ++ ++ --bls-directory) ++ blsdir=`argument $option "$@"` ++ shift ++ ;; ++ --bls-directory=*) ++ blsdir=`echo "$option" | sed 's/--bls-directory=//'` ++ ;; ++ ++ --config-file) ++ startlink=`argument $option "$@"` ++ shift ++ ;; ++ --config-file=*) ++ startlink=`echo "$option" | sed 's/--config-file=//'` ++ ;; ++ ++ --grub-defaults) ++ etcdefaultgrub=`argument $option "$@"` ++ shift ++ ;; ++ --grub-defaults=*) ++ etcdefaultgrub=`echo "$option" | sed 's/--grub-defaults=//'` ++ ;; ++ ++ --grub-directory) ++ grubdir=`argument $option "$@"` ++ shift ++ ;; ++ --grub-directory=*) ++ grubdir=`echo "$option" | sed 's/--grub-directory=//'` ++ ;; ++ ++ *) ++ gettext_printf "Unrecognized option \`%s'\n" "$option" 1>&2 ++ usage ++ exit 1 ++ ;; ++ esac ++done ++ ++find_grub_cfg() { ++ local candidate="" ++ while [[ -e "${candidate}" || $# -gt 0 ]] ++ do ++ if [[ ! -e "${candidate}" ]] ; then ++ candidate="$1" ++ shift ++ fi ++ ++ if [[ -L "${candidate}" ]]; then ++ candidate="$(realpath "${candidate}")" ++ fi ++ ++ if [[ -f "${candidate}" ]]; then ++ export GRUB_CONFIG_FILE="${candidate}" ++ return 0 ++ fi ++ done ++ return 1 ++} ++ ++if ! find_grub_cfg ${startlink} ${grubdir}/grub.cfg ; then ++ gettext_printf "Couldn't find config file\n" 1>&2 ++ exit 1 ++fi ++ ++if [[ ! -d "${blsdir}" ]]; then ++ install -m 700 -d "${blsdir}" ++fi ++ ++if [[ -f /etc/machine-id ]]; then ++ MACHINE_ID=$(cat /etc/machine-id) ++else ++ MACHINE_ID=$(dmesg | sha256sum) ++fi ++ ++mkbls() { ++ local kernelver=$1 && shift ++ local datetime=$1 && shift ++ ++ local debugname="" ++ local flavor="" ++ ++ if [[ "$kernelver" == *\+* ]] ; then ++ local flavor=-"${kernelver##*+}" ++ if [[ "${flavor}" == "-debug" ]]; then ++ local debugname=" with debugging" ++ fi ++ fi ++ ( ++ source /etc/os-release ++ ++ cat <"${bls_target}" ++ fi ++done ++ ++GENERATE=0 ++if grep '^GRUB_ENABLE_BLSCFG=.*' "${etcdefaultgrub}" \ ++ | grep -vq '^GRUB_ENABLE_BLSCFG="*true"*\s*$' ; then ++ if ! sed -i"${backupsuffix}" \ ++ -e 's,^GRUB_ENABLE_BLSCFG=.*,GRUB_ENABLE_BLSCFG=true,' \ ++ "${etcdefaultgrub}" ; then ++ gettext_printf "Updating %s failed\n" "${etcdefaultgrub}" ++ exit 1 ++ fi ++ GENERATE=1 ++elif ! grep -q '^GRUB_ENABLE_BLSCFG=.*' "${etcdefaultgrub}" ; then ++ if ! echo 'GRUB_ENABLE_BLSCFG=true' >> "${etcdefaultgrub}" ; then ++ gettext_printf "Updating %s failed\n" "${etcdefaultgrub}" ++ exit 1 ++ fi ++ GENERATE=1 ++fi ++ ++if [[ "${GENERATE}" -eq 1 ]] ; then ++ cp -af "${GRUB_CONFIG_FILE}" "${GRUB_CONFIG_FILE}${backupsuffix}" ++ if ! grub2-mkconfig -o "${GRUB_CONFIG_FILE}" ; then ++ cp -af "${GRUB_CONFIG_FILE}${backupsuffix}" "${GRUB_CONFIG_FILE}" ++ sed -i"${backupsuffix}" \ ++ -e 's,^GRUB_ENABLE_BLSCFG=.*,GRUB_ENABLE_BLSCFG=false,' \ ++ /etc/default/grub ++ gettext_printf "Updating %s failed\n" "${GRUB_CONFIG_FILE}" ++ exit 1 ++ fi ++fi ++ ++# Bye. ++exit 0 +-- +2.15.0 + diff --git a/0209-Add-grub_debug_enabled.patch b/0209-Add-grub_debug_enabled.patch new file mode 100644 index 00000000..0f654725 --- /dev/null +++ b/0209-Add-grub_debug_enabled.patch @@ -0,0 +1,63 @@ +From 337affc3480f637d3a8199376e89e146d694682f Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Thu, 30 Nov 2017 15:11:39 -0500 +Subject: [PATCH 209/215] Add grub_debug_enabled() + +--- + grub-core/kern/misc.c | 21 ++++++++++++++++----- + include/grub/misc.h | 1 + + 2 files changed, 17 insertions(+), 5 deletions(-) + +diff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c +index 636f97e1ba1..e758ab3416d 100644 +--- a/grub-core/kern/misc.c ++++ b/grub-core/kern/misc.c +@@ -159,17 +159,28 @@ int grub_err_printf (const char *fmt, ...) + __attribute__ ((alias("grub_printf"))); + #endif + ++int ++grub_debug_enabled (const char * condition) ++{ ++ const char *debug; ++ ++ debug = grub_env_get ("debug"); ++ if (!debug) ++ return 0; ++ ++ if (grub_strword (debug, "all") || grub_strword (debug, condition)) ++ return 1; ++ ++ return 0; ++} ++ + void + grub_real_dprintf (const char *file, const int line, const char *condition, + const char *fmt, ...) + { + va_list args; +- const char *debug = grub_env_get ("debug"); + +- if (! debug) +- return; +- +- if (grub_strword (debug, "all") || grub_strword (debug, condition)) ++ if (grub_debug_enabled (condition)) + { + grub_printf ("%s:%d: ", file, line); + va_start (args, fmt); +diff --git a/include/grub/misc.h b/include/grub/misc.h +index 3d55bafd64e..493e328d968 100644 +--- a/include/grub/misc.h ++++ b/include/grub/misc.h +@@ -367,6 +367,7 @@ grub_puts (const char *s) + } + + int EXPORT_FUNC(grub_puts_) (const char *s); ++int EXPORT_FUNC(grub_debug_enabled) (const char *condition); + void EXPORT_FUNC(grub_real_dprintf) (const char *file, + const int line, + const char *condition, +-- +2.15.0 + diff --git a/0210-make-better-backtraces.patch b/0210-make-better-backtraces.patch new file mode 100644 index 00000000..1c89b395 --- /dev/null +++ b/0210-make-better-backtraces.patch @@ -0,0 +1,842 @@ +From f13f45bf974917112907e46854c0571b66c484bf Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Mon, 6 Nov 2017 18:31:56 -0500 +Subject: [PATCH 210/215] make better backtraces + +Signed-off-by: Peter Jones +--- + grub-core/Makefile.core.def | 15 ++-- + grub-core/{lib => commands}/backtrace.c | 2 +- + grub-core/gdb/cstub.c | 1 - + grub-core/kern/arm64/backtrace.c | 75 ++++++++++++++++++++ + grub-core/kern/backtrace.c | 83 ++++++++++++++++++++++ + grub-core/kern/dl.c | 45 ++++++++++++ + grub-core/kern/i386/backtrace.c | 120 ++++++++++++++++++++++++++++++++ + grub-core/kern/i386/pc/init.c | 4 +- + grub-core/kern/misc.c | 13 ++-- + grub-core/kern/mm.c | 6 +- + grub-core/lib/arm64/backtrace.c | 62 ----------------- + grub-core/lib/i386/backtrace.c | 78 --------------------- + include/grub/backtrace.h | 10 ++- + include/grub/dl.h | 2 + + include/grub/kernel.h | 3 + + grub-core/kern/arm/efi/startup.S | 2 + + grub-core/kern/arm/startup.S | 2 + + grub-core/kern/arm64/efi/startup.S | 2 + + grub-core/kern/i386/qemu/startup.S | 3 +- + grub-core/kern/ia64/efi/startup.S | 3 +- + grub-core/kern/sparc64/ieee1275/crt0.S | 3 +- + grub-core/Makefile.am | 1 + + 22 files changed, 370 insertions(+), 165 deletions(-) + rename grub-core/{lib => commands}/backtrace.c (98%) + create mode 100644 grub-core/kern/arm64/backtrace.c + create mode 100644 grub-core/kern/backtrace.c + create mode 100644 grub-core/kern/i386/backtrace.c + delete mode 100644 grub-core/lib/arm64/backtrace.c + delete mode 100644 grub-core/lib/i386/backtrace.c + +diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def +index 533e1408f74..77f0f3d8f46 100644 +--- a/grub-core/Makefile.core.def ++++ b/grub-core/Makefile.core.def +@@ -130,6 +130,12 @@ kernel = { + common = kern/rescue_reader.c; + common = kern/term.c; + common = kern/qsort.c; ++ common = kern/backtrace.c; ++ ++ x86 = kern/i386/backtrace.c; ++ i386_xen = kern/i386/backtrace.c; ++ x86_64_xen = kern/i386/backtrace.c; ++ arm64 = kern/arm64/backtrace.c; + + noemu = kern/compiler-rt.c; + noemu = kern/mm.c; +@@ -176,9 +182,6 @@ kernel = { + + softdiv = lib/division.c; + +- x86 = lib/i386/backtrace.c; +- x86 = lib/backtrace.c; +- + i386 = kern/i386/dl.c; + i386_xen = kern/i386/dl.c; + +@@ -2293,13 +2296,11 @@ module = { + + module = { + name = backtrace; +- x86 = lib/i386/backtrace.c; +- i386_xen = lib/i386/backtrace.c; +- x86_64_xen = lib/i386/backtrace.c; +- common = lib/backtrace.c; ++ common = commands/backtrace.c; + enable = x86; + enable = i386_xen; + enable = x86_64_xen; ++ enable = arm64; + }; + + module = { +diff --git a/grub-core/lib/backtrace.c b/grub-core/commands/backtrace.c +similarity index 98% +rename from grub-core/lib/backtrace.c +rename to grub-core/commands/backtrace.c +index c0ad6ab8be1..8b5ec3913b5 100644 +--- a/grub-core/lib/backtrace.c ++++ b/grub-core/commands/backtrace.c +@@ -54,7 +54,7 @@ grub_cmd_backtrace (grub_command_t cmd __attribute__ ((unused)), + int argc __attribute__ ((unused)), + char **args __attribute__ ((unused))) + { +- grub_backtrace (); ++ grub_backtrace (1); + return 0; + } + +diff --git a/grub-core/gdb/cstub.c b/grub-core/gdb/cstub.c +index b64acd70fee..99281472d36 100644 +--- a/grub-core/gdb/cstub.c ++++ b/grub-core/gdb/cstub.c +@@ -215,7 +215,6 @@ grub_gdb_trap (int trap_no) + grub_printf ("Unhandled exception 0x%x at ", trap_no); + grub_backtrace_print_address ((void *) grub_gdb_regs[PC]); + grub_printf ("\n"); +- grub_backtrace_pointer ((void *) grub_gdb_regs[EBP]); + grub_fatal ("Unhandled exception"); + } + +diff --git a/grub-core/kern/arm64/backtrace.c b/grub-core/kern/arm64/backtrace.c +new file mode 100644 +index 00000000000..a4af6e4e006 +--- /dev/null ++++ b/grub-core/kern/arm64/backtrace.c +@@ -0,0 +1,75 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2009 Free Software Foundation, Inc. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++void ++grub_backtrace_pointer (void *frame, unsigned long skip) ++{ ++ do ++ { ++ const char *name = NULL; ++ char *addr; ++ ++ void *ret = __builtin_return_address (skip); ++ frame = __builtin_frame_address (skip); ++ if (ret) ++ ret = __builtin_extract_return_addr (ret); ++ ++ grub_dprintf ("backtrace", "frame address:%p return address:%p\n", frame, ret); ++ if (!ret) ++ break; ++ ++ name = grub_get_symbol_by_addr (ret, 1); ++ if (name) ++ addr = grub_resolve_symbol (name); ++ grub_backtrace_print_address (ret); ++ ++ if (addr && addr != ret) ++ grub_printf (" %s() %p+%p \n", name ? name : "unknown", addr, ++ (char *)((char *)ret - addr)); ++ else ++ grub_printf(" %s() %p \n", name ? name : "unknown", addr); ++ } while (frame); ++} ++ ++asm ("\t.global \"_text\"\n" ++ "_text:\n" ++ "\t.quad .text\n" ++ "\t.global \"_data\"\n" ++ "_data:\n" ++ "\t.quad .data\n" ++ ); ++ ++extern grub_uint64_t _text; ++extern grub_uint64_t _data; ++ ++void ++grub_backtrace_arch (unsigned long skip) ++{ ++ grub_printf ("Backtrace (.text %p .data %p):\n", ++ (void *)_text, (void *)_data); ++ skip += 1; ++ grub_backtrace_pointer(__builtin_frame_address(skip), skip); ++} +diff --git a/grub-core/kern/backtrace.c b/grub-core/kern/backtrace.c +new file mode 100644 +index 00000000000..363b0e7e766 +--- /dev/null ++++ b/grub-core/kern/backtrace.c +@@ -0,0 +1,83 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2009 Free Software Foundation, Inc. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++GRUB_MOD_LICENSE ("GPLv3+"); ++ ++static void ++grub_backtrace_print_address_default (void *addr) ++{ ++ grub_dl_t mod; ++ void *start_addr; ++ ++ FOR_DL_MODULES (mod) ++ { ++ grub_dl_segment_t segment; ++ for (segment = mod->segment; segment; segment = segment->next) ++ if (segment->addr <= addr && (grub_uint8_t *) segment->addr ++ + segment->size > (grub_uint8_t *) addr) ++ { ++ grub_printf ("%s.%x+%" PRIxGRUB_SIZE, mod->name, ++ segment->section, ++ (grub_size_t) ++ ((grub_uint8_t *)addr - (grub_uint8_t *)segment->addr)); ++ return; ++ } ++ } ++ ++ start_addr = grub_resolve_symbol ("_start"); ++ if (start_addr && start_addr < addr) ++ grub_printf ("kernel+%" PRIxGRUB_SIZE, ++ (grub_size_t) ++ ((grub_uint8_t *)addr - (grub_uint8_t *)start_addr)); ++ else ++ grub_printf ("%p", addr); ++} ++ ++void ++grub_backtrace_print_address (void *addr) ++ __attribute__((__weak__, ++ __alias__(("grub_backtrace_print_address_default")))); ++ ++static void ++grub_backtrace_arch_default(unsigned long skip) ++{ ++ grub_backtrace_pointer(__builtin_frame_address(0), skip + 1); ++} ++ ++void grub_backtrace_arch (unsigned long skip) ++ __attribute__((__weak__, __alias__(("grub_backtrace_arch_default")))); ++ ++void grub_backtrace (unsigned long skip) ++{ ++ grub_backtrace_arch(skip + 1); ++} ++ ++void grub_debug_backtrace (const char * const debug, ++ unsigned long skip) ++{ ++ if (grub_debug_enabled (debug)) ++ grub_backtrace (skip + 1); ++} +diff --git a/grub-core/kern/dl.c b/grub-core/kern/dl.c +index 621070918d4..5028d157c46 100644 +--- a/grub-core/kern/dl.c ++++ b/grub-core/kern/dl.c +@@ -124,6 +124,50 @@ grub_dl_resolve_symbol (const char *name) + return 0; + } + ++void * ++grub_resolve_symbol (const char *name) ++{ ++ grub_symbol_t sym; ++ ++ sym = grub_dl_resolve_symbol (name); ++ if (sym) ++ return sym->addr; ++ return NULL; ++} ++ ++const char * ++grub_get_symbol_by_addr(const void *addr, int isfunc) ++{ ++ unsigned int i; ++ grub_symbol_t before = NULL, after = NULL; ++ for (i = 0; i < GRUB_SYMTAB_SIZE; i++) ++ { ++ grub_symbol_t sym; ++ for (sym = grub_symtab[i]; sym; sym = sym->next) ++ { ++ //grub_printf ("addr 0x%08llx symbol %s\n", (unsigned long long)sym->addr, sym->name); ++ if (sym->addr > addr) ++ { ++ if (!after || sym->addr > after->addr) ++ after = sym; ++ } ++ ++ if (isfunc != sym->isfunc) ++ continue; ++ if (sym->addr > addr) ++ continue; ++ ++ if ((!before && sym->addr <= addr) || (before && before->addr <= sym->addr)) ++ before = sym; ++ } ++ } ++ ++ if (before && addr < after->addr) ++ return before->name; ++ ++ return NULL; ++} ++ + /* Register a symbol with the name NAME and the address ADDR. */ + grub_err_t + grub_dl_register_symbol (const char *name, void *addr, int isfunc, +@@ -336,6 +380,7 @@ grub_dl_resolve_symbols (grub_dl_t mod, Elf_Ehdr *e) + const char *str; + Elf_Word size, entsize; + ++ grub_dprintf ("modules", "Resolving symbols for \"%s\"\n", mod->name); + for (i = 0, s = (Elf_Shdr *) ((char *) e + e->e_shoff); + i < e->e_shnum; + i++, s = (Elf_Shdr *) ((char *) s + e->e_shentsize)) +diff --git a/grub-core/kern/i386/backtrace.c b/grub-core/kern/i386/backtrace.c +new file mode 100644 +index 00000000000..75db596a167 +--- /dev/null ++++ b/grub-core/kern/i386/backtrace.c +@@ -0,0 +1,120 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2009 Free Software Foundation, Inc. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#define MAX_STACK_FRAME 102400 ++ ++void ++grub_backtrace_pointer (void *frame, unsigned long skip) ++{ ++ void **ebp = (void **)frame; ++ unsigned long x = 0; ++ ++ while (ebp) ++ { ++ void **next_ebp = (void **)ebp[0]; ++ const char *name = NULL; ++ char *addr = NULL; ++ ++ grub_dprintf("backtrace", "ebp is %p next_ebp is %p\n", ebp, next_ebp); ++ ++ if (x >= skip) ++ { ++ name = grub_get_symbol_by_addr (ebp[1], 1); ++ if (name) ++ addr = grub_resolve_symbol (name); ++ grub_backtrace_print_address (ebp[1]); ++ ++ if (addr && addr != ebp[1]) ++ grub_printf (" %s() %p+%p \n", name ? name : "unknown", addr, ++ (char *)((char *)ebp[1] - addr)); ++ else ++ grub_printf(" %s() %p \n", name ? name : "unknown", addr); ++ ++#if 0 ++ grub_printf ("("); ++ for (i = 0, arg = ebp[2]; arg != next_ebp && i < 12; arg++, i++) ++ grub_printf ("%p,", arg); ++ grub_printf (")\n"); ++#endif ++ } ++ ++ x += 1; ++ ++ if (next_ebp < ebp || next_ebp - ebp > MAX_STACK_FRAME || next_ebp == ebp) ++ { ++ //grub_printf ("Invalid stack frame at %p (%p)\n", ebp, next_ebp); ++ break; ++ } ++ ebp = next_ebp; ++ } ++} ++ ++#if defined (__x86_64__) ++asm ("\t.global \"_text\"\n" ++ "_text:\n" ++ "\t.quad .text\n" ++ "\t.global \"_data\"\n" ++ "_data:\n" ++ "\t.quad .data\n" ++ ); ++#elif defined(__i386__) ++asm ("\t.global \"_text\"\n" ++ "_text:\n" ++ "\t.long .text\n" ++ "\t.global \"_data\"\n" ++ "_data:\n" ++ "\t.long .data\n" ++ ); ++#else ++#warning I dunno... ++#endif ++ ++extern unsigned long _text; ++extern unsigned long _data; ++ ++void ++grub_backtrace_arch (unsigned long skip) ++{ ++ grub_printf ("Backtrace (.text %p .data %p):\n", ++ (void *)_text, (void *)_data); ++ skip += 1; ++#if defined (__x86_64__) ++ asm volatile ("movq %%rbp, %%rdi\n" ++ "movq %0, %%rsi\n" ++ "call " EXT_C("grub_backtrace_pointer") ++ : ++ : "r" (skip)); ++#elif defined(__i386__) ++ asm volatile ("addl $8, %%esp\n" ++ "pushl %0\n" ++ "pushl %%ebp\n" ++ "call " EXT_C("grub_backtrace_pointer") ++ : ++ : "r" (skip)); ++#else ++ grub_backtrace_pointer(__builtin_frame_address(0), skip); ++#endif ++} +diff --git a/grub-core/kern/i386/pc/init.c b/grub-core/kern/i386/pc/init.c +index 27bc68b8a53..b51d0abfa6e 100644 +--- a/grub-core/kern/i386/pc/init.c ++++ b/grub-core/kern/i386/pc/init.c +@@ -153,7 +153,7 @@ compact_mem_regions (void) + } + + grub_addr_t grub_modbase; +-extern grub_uint8_t _start[], _edata[]; ++extern grub_uint8_t _edata[]; + + /* Helper for grub_machine_init. */ + static int +@@ -217,7 +217,7 @@ grub_machine_init (void) + /* This has to happen before any BIOS calls. */ + grub_via_workaround_init (); + +- grub_modbase = GRUB_MEMORY_MACHINE_DECOMPRESSION_ADDR + (_edata - _start); ++ grub_modbase = GRUB_MEMORY_MACHINE_DECOMPRESSION_ADDR + (_edata - (grub_uint8_t *)_start); + + /* Initialize the console as early as possible. */ + grub_console_init (); +diff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c +index e758ab3416d..5c2d2039d0b 100644 +--- a/grub-core/kern/misc.c ++++ b/grub-core/kern/misc.c +@@ -1110,15 +1110,15 @@ grub_xasprintf (const char *fmt, ...) + } + + /* Abort GRUB. This function does not return. */ +-static void __attribute__ ((noreturn)) ++static inline void __attribute__ ((noreturn)) + grub_abort (void) + { +-#ifndef GRUB_UTIL +-#if (defined(__i386__) || defined(__x86_64__)) && !defined(GRUB_MACHINE_EMU) +- grub_backtrace(); ++#if !defined(GRUB_MACHINE_EMU) && !defined(GRUB_UTIL) ++ grub_backtrace (1); ++#else ++ grub_printf ("\n"); + #endif +-#endif +- grub_printf ("\nAborted."); ++ grub_printf ("Aborted."); + + #ifndef GRUB_UTIL + if (grub_term_inputs) +@@ -1145,6 +1145,7 @@ grub_fatal (const char *fmt, ...) + { + va_list ap; + ++ grub_printf ("\n"); + va_start (ap, fmt); + grub_vprintf (_(fmt), ap); + va_end (ap); +diff --git a/grub-core/kern/mm.c b/grub-core/kern/mm.c +index ee88ff61187..002cbfa4f3d 100644 +--- a/grub-core/kern/mm.c ++++ b/grub-core/kern/mm.c +@@ -95,13 +95,13 @@ get_header_from_pointer (void *ptr, grub_mm_header_t *p, grub_mm_region_t *r) + break; + + if (! *r) +- grub_fatal ("out of range pointer %p", ptr); ++ grub_fatal ("out of range pointer %p\n", ptr); + + *p = (grub_mm_header_t) ptr - 1; + if ((*p)->magic == GRUB_MM_FREE_MAGIC) +- grub_fatal ("double free at %p", *p); ++ grub_fatal ("double free at %p\n", *p); + if ((*p)->magic != GRUB_MM_ALLOC_MAGIC) +- grub_fatal ("alloc magic is broken at %p: %lx", *p, ++ grub_fatal ("alloc magic is broken at %p: %lx\n", *p, + (unsigned long) (*p)->magic); + } + +diff --git a/grub-core/lib/arm64/backtrace.c b/grub-core/lib/arm64/backtrace.c +deleted file mode 100644 +index 1079b5380e1..00000000000 +--- a/grub-core/lib/arm64/backtrace.c ++++ /dev/null +@@ -1,62 +0,0 @@ +-/* +- * GRUB -- GRand Unified Bootloader +- * Copyright (C) 2009 Free Software Foundation, Inc. +- * +- * GRUB is free software: you can redistribute it and/or modify +- * it under the terms of the GNU General Public License as published by +- * the Free Software Foundation, either version 3 of the License, or +- * (at your option) any later version. +- * +- * GRUB is distributed in the hope that it will be useful, +- * but WITHOUT ANY WARRANTY; without even the implied warranty of +- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- * GNU General Public License for more details. +- * +- * You should have received a copy of the GNU General Public License +- * along with GRUB. If not, see . +- */ +- +-#include +-#include +-#include +-#include +-#include +-#include +-#include +- +-#define MAX_STACK_FRAME 102400 +- +-void +-grub_backtrace_pointer (int frame) +-{ +- while (1) +- { +- void *lp = __builtin_return_address (frame); +- if (!lp) +- break; +- +- lp = __builtin_extract_return_addr (lp); +- +- grub_printf ("%p: ", lp); +- grub_backtrace_print_address (lp); +- grub_printf (" ("); +- for (i = 0; i < 2; i++) +- grub_printf ("%p,", ((void **)ptr) [i + 2]); +- grub_printf ("%p)\n", ((void **)ptr) [i + 2]); +- nptr = *(void **)ptr; +- if (nptr < ptr || (void **) nptr - (void **) ptr > MAX_STACK_FRAME +- || nptr == ptr) +- { +- grub_printf ("Invalid stack frame at %p (%p)\n", ptr, nptr); +- break; +- } +- ptr = nptr; +- } +-} +- +-void +-grub_backtrace (void) +-{ +- grub_backtrace_pointer (1); +-} +- +diff --git a/grub-core/lib/i386/backtrace.c b/grub-core/lib/i386/backtrace.c +deleted file mode 100644 +index c67273db3ae..00000000000 +--- a/grub-core/lib/i386/backtrace.c ++++ /dev/null +@@ -1,78 +0,0 @@ +-/* +- * GRUB -- GRand Unified Bootloader +- * Copyright (C) 2009 Free Software Foundation, Inc. +- * +- * GRUB is free software: you can redistribute it and/or modify +- * it under the terms of the GNU General Public License as published by +- * the Free Software Foundation, either version 3 of the License, or +- * (at your option) any later version. +- * +- * GRUB is distributed in the hope that it will be useful, +- * but WITHOUT ANY WARRANTY; without even the implied warranty of +- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- * GNU General Public License for more details. +- * +- * You should have received a copy of the GNU General Public License +- * along with GRUB. If not, see . +- */ +-#include +-#ifdef GRUB_UTIL +-#define REALLY_GRUB_UTIL GRUB_UTIL +-#undef GRUB_UTIL +-#endif +- +-#include +-#include +- +-#ifdef REALLY_GRUB_UTIL +-#define GRUB_UTIL REALLY_GRUB_UTIL +-#undef REALLY_GRUB_UTIL +-#endif +- +-#include +-#include +-#include +-#include +-#include +-#include +- +-#define MAX_STACK_FRAME 102400 +- +-void +-grub_backtrace_pointer (void *ebp) +-{ +- void *ptr, *nptr; +- unsigned i; +- +- ptr = ebp; +- while (1) +- { +- grub_printf ("%p: ", ptr); +- grub_backtrace_print_address (((void **) ptr)[1]); +- grub_printf (" ("); +- for (i = 0; i < 2; i++) +- grub_printf ("%p,", ((void **)ptr) [i + 2]); +- grub_printf ("%p)\n", ((void **)ptr) [i + 2]); +- nptr = *(void **)ptr; +- if (nptr < ptr || (void **) nptr - (void **) ptr > MAX_STACK_FRAME +- || nptr == ptr) +- { +- grub_printf ("Invalid stack frame at %p (%p)\n", ptr, nptr); +- break; +- } +- ptr = nptr; +- } +-} +- +-void +-grub_backtrace (void) +-{ +-#ifdef __x86_64__ +- asm volatile ("movq %%rbp, %%rdi\n" +- "callq *%%rax": :"a"(grub_backtrace_pointer)); +-#else +- asm volatile ("movl %%ebp, %%eax\n" +- "calll *%%ecx": :"c"(grub_backtrace_pointer)); +-#endif +-} +- +diff --git a/include/grub/backtrace.h b/include/grub/backtrace.h +index 395519762f0..759918ebefd 100644 +--- a/include/grub/backtrace.h ++++ b/include/grub/backtrace.h +@@ -19,8 +19,14 @@ + #ifndef GRUB_BACKTRACE_HEADER + #define GRUB_BACKTRACE_HEADER 1 + +-void grub_backtrace (void); +-void grub_backtrace_pointer (void *ptr); ++#include ++#include ++ ++void EXPORT_FUNC(grub_debug_backtrace) (const char * const debug, ++ unsigned long skip); ++void EXPORT_FUNC(grub_backtrace) (unsigned long skip); ++void grub_backtrace_arch (unsigned long skip); ++void grub_backtrace_pointer (void *ptr, unsigned long skip); + void grub_backtrace_print_address (void *addr); + + #endif +diff --git a/include/grub/dl.h b/include/grub/dl.h +index b1ed3c33317..7b5bfb07ce6 100644 +--- a/include/grub/dl.h ++++ b/include/grub/dl.h +@@ -244,6 +244,8 @@ grub_dl_get (const char *name) + + #endif + ++void * EXPORT_FUNC(grub_resolve_symbol) (const char *name); ++const char * EXPORT_FUNC(grub_get_symbol_by_addr) (const void *addr, int isfunc); + grub_err_t grub_dl_register_symbol (const char *name, void *addr, + int isfunc, grub_dl_t mod); + +diff --git a/include/grub/kernel.h b/include/grub/kernel.h +index ecd88ca72c6..ae69218af20 100644 +--- a/include/grub/kernel.h ++++ b/include/grub/kernel.h +@@ -108,6 +108,9 @@ grub_addr_t grub_modules_get_end (void); + + #endif + ++void EXPORT_FUNC(start) (void); ++void EXPORT_FUNC(_start) (void); ++ + /* The start point of the C code. */ + void grub_main (void) __attribute__ ((noreturn)); + +diff --git a/grub-core/kern/arm/efi/startup.S b/grub-core/kern/arm/efi/startup.S +index 9f8265315a9..f3bc41f9d0f 100644 +--- a/grub-core/kern/arm/efi/startup.S ++++ b/grub-core/kern/arm/efi/startup.S +@@ -23,6 +23,8 @@ + .file "startup.S" + .text + .arm ++ .globl start, _start ++FUNCTION(start) + FUNCTION(_start) + /* + * EFI_SYSTEM_TABLE and EFI_HANDLE are passed in r1/r0. +diff --git a/grub-core/kern/arm/startup.S b/grub-core/kern/arm/startup.S +index 3946fe8e183..5679a1d00ad 100644 +--- a/grub-core/kern/arm/startup.S ++++ b/grub-core/kern/arm/startup.S +@@ -48,6 +48,8 @@ + + .text + .arm ++ .globl start, _start ++FUNCTION(start) + FUNCTION(_start) + b codestart + +diff --git a/grub-core/kern/arm64/efi/startup.S b/grub-core/kern/arm64/efi/startup.S +index 666a7ee3c92..41676bdb2b8 100644 +--- a/grub-core/kern/arm64/efi/startup.S ++++ b/grub-core/kern/arm64/efi/startup.S +@@ -19,7 +19,9 @@ + #include + + .file "startup.S" ++ .globl start, _start + .text ++FUNCTION(start) + FUNCTION(_start) + /* + * EFI_SYSTEM_TABLE and EFI_HANDLE are passed in x1/x0. +diff --git a/grub-core/kern/i386/qemu/startup.S b/grub-core/kern/i386/qemu/startup.S +index 0d89858d9b3..939f182fc74 100644 +--- a/grub-core/kern/i386/qemu/startup.S ++++ b/grub-core/kern/i386/qemu/startup.S +@@ -24,7 +24,8 @@ + + .text + .code32 +- .globl _start ++ .globl start, _start ++start: + _start: + jmp codestart + +diff --git a/grub-core/kern/ia64/efi/startup.S b/grub-core/kern/ia64/efi/startup.S +index d75c6d7cc74..8f2a593e529 100644 +--- a/grub-core/kern/ia64/efi/startup.S ++++ b/grub-core/kern/ia64/efi/startup.S +@@ -24,8 +24,9 @@ + .psr lsb + .lsb + +- .global _start ++ .global start, _start + .proc _start ++start: + _start: + alloc loc0=ar.pfs,2,4,0,0 + mov loc1=rp +diff --git a/grub-core/kern/sparc64/ieee1275/crt0.S b/grub-core/kern/sparc64/ieee1275/crt0.S +index 03b916f0534..701bf63abcf 100644 +--- a/grub-core/kern/sparc64/ieee1275/crt0.S ++++ b/grub-core/kern/sparc64/ieee1275/crt0.S +@@ -22,7 +22,8 @@ + + .text + .align 4 +- .globl _start ++ .globl start, _start ++start: + _start: + ba codestart + mov %o4, %o0 +diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am +index 75e8715e631..5c7a2c8f808 100644 +--- a/grub-core/Makefile.am ++++ b/grub-core/Makefile.am +@@ -66,6 +66,7 @@ CLEANFILES += grub_script.yy.c grub_script.yy.h + + include $(srcdir)/Makefile.core.am + ++KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/backtrace.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/cache.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/command.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/device.h +-- +2.15.0 + diff --git a/0211-normal-don-t-draw-our-startup-message-if-debug-is-se.patch b/0211-normal-don-t-draw-our-startup-message-if-debug-is-se.patch new file mode 100644 index 00000000..9c7f28e1 --- /dev/null +++ b/0211-normal-don-t-draw-our-startup-message-if-debug-is-se.patch @@ -0,0 +1,27 @@ +From e4fcaa3907622f1dc597fd1186af06b0bad932bd Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Thu, 9 Nov 2017 15:58:52 -0500 +Subject: [PATCH 211/215] normal: don't draw our startup message if debug is + set + +--- + grub-core/normal/main.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/grub-core/normal/main.c b/grub-core/normal/main.c +index b69f9e738fa..04ae9ed02f6 100644 +--- a/grub-core/normal/main.c ++++ b/grub-core/normal/main.c +@@ -419,6 +419,9 @@ grub_normal_reader_init (int nested) + const char *msg_esc = _("ESC at any time exits."); + char *msg_formatted; + ++ if (grub_env_get ("debug") != NULL) ++ return 0; ++ + msg_formatted = grub_xasprintf (_("Minimal BASH-like line editing is supported. For " + "the first word, TAB lists possible command completions. Anywhere " + "else TAB lists possible device or file completions. %s"), +-- +2.15.0 + diff --git a/0212-Work-around-some-minor-include-path-weirdnesses.patch b/0212-Work-around-some-minor-include-path-weirdnesses.patch new file mode 100644 index 00000000..f997f9b4 --- /dev/null +++ b/0212-Work-around-some-minor-include-path-weirdnesses.patch @@ -0,0 +1,140 @@ +From 3bc207ca33d89282116932a951ddefdc9c2fc1cd Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Fri, 16 Mar 2018 13:28:57 -0400 +Subject: [PATCH 212/215] Work around some minor include path weirdnesses + +Signed-off-by: Peter Jones +--- + include/grub/arm/efi/console.h | 24 ++++++++++++++++++++++++ + include/grub/arm64/efi/console.h | 24 ++++++++++++++++++++++++ + include/grub/i386/efi/console.h | 24 ++++++++++++++++++++++++ + include/grub/x86_64/efi/console.h | 24 ++++++++++++++++++++++++ + 4 files changed, 96 insertions(+) + create mode 100644 include/grub/arm/efi/console.h + create mode 100644 include/grub/arm64/efi/console.h + create mode 100644 include/grub/i386/efi/console.h + create mode 100644 include/grub/x86_64/efi/console.h + +diff --git a/include/grub/arm/efi/console.h b/include/grub/arm/efi/console.h +new file mode 100644 +index 00000000000..1592f6f76b5 +--- /dev/null ++++ b/include/grub/arm/efi/console.h +@@ -0,0 +1,24 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2002,2005,2006,2007 Free Software Foundation, Inc. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++#ifndef GRUB_ARM_EFI_CONSOLE_H ++#define GRUB_ARM_EFI_CONSOLE_H ++ ++#include ++ ++#endif /* ! GRUB_ARM_EFI_CONSOLE_H */ +diff --git a/include/grub/arm64/efi/console.h b/include/grub/arm64/efi/console.h +new file mode 100644 +index 00000000000..95689339384 +--- /dev/null ++++ b/include/grub/arm64/efi/console.h +@@ -0,0 +1,24 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2002,2005,2006,2007 Free Software Foundation, Inc. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++#ifndef GRUB_ARM64_EFI_CONSOLE_H ++#define GRUB_ARM64_EFI_CONSOLE_H ++ ++#include ++ ++#endif /* ! GRUB_ARM64_EFI_CONSOLE_H */ +diff --git a/include/grub/i386/efi/console.h b/include/grub/i386/efi/console.h +new file mode 100644 +index 00000000000..9231375cb07 +--- /dev/null ++++ b/include/grub/i386/efi/console.h +@@ -0,0 +1,24 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2002,2005,2006,2007 Free Software Foundation, Inc. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++#ifndef GRUB_I386_EFI_CONSOLE_H ++#define GRUB_I386_EFI_CONSOLE_H ++ ++#include ++ ++#endif /* ! GRUB_I386_EFI_CONSOLE_H */ +diff --git a/include/grub/x86_64/efi/console.h b/include/grub/x86_64/efi/console.h +new file mode 100644 +index 00000000000..dba9d8678d0 +--- /dev/null ++++ b/include/grub/x86_64/efi/console.h +@@ -0,0 +1,24 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2002,2005,2006,2007 Free Software Foundation, Inc. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++#ifndef GRUB_X86_64_EFI_CONSOLE_H ++#define GRUB_X86_64_EFI_CONSOLE_H ++ ++#include ++ ++#endif /* ! GRUB_X86_64_EFI_CONSOLE_H */ +-- +2.15.0 + diff --git a/0213-Make-it-possible-to-enabled-build-id-sha1.patch b/0213-Make-it-possible-to-enabled-build-id-sha1.patch new file mode 100644 index 00000000..c8ca9b65 --- /dev/null +++ b/0213-Make-it-possible-to-enabled-build-id-sha1.patch @@ -0,0 +1,64 @@ +From bec4e099932427999e0171368ff582663d6d3d93 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Thu, 25 Jun 2015 15:41:06 -0400 +Subject: [PATCH 213/215] Make it possible to enabled --build-id=sha1 + +Signed-off-by: Peter Jones +--- + configure.ac | 8 ++++++++ + acinclude.m4 | 19 +++++++++++++++++++ + 2 files changed, 27 insertions(+) + +diff --git a/configure.ac b/configure.ac +index ae371a97d30..498741dfeba 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1385,7 +1385,15 @@ grub_PROG_TARGET_CC + if test "x$TARGET_APPLE_LINKER" != x1 ; then + grub_PROG_OBJCOPY_ABSOLUTE + fi ++ ++AC_ARG_ENABLE([build-id], ++ [AS_HELP_STRING([--enable-build-id], ++ [ask the linker to supply build-id notes (default=no)])]) ++if test x$enable_build_id = xyes; then ++grub_PROG_LD_BUILD_ID_SHA1 ++else + grub_PROG_LD_BUILD_ID_NONE ++fi + if test "x$target_cpu" = xi386; then + if test "$platform" != emu && test "x$TARGET_APPLE_LINKER" != x1 ; then + if test ! -z "$TARGET_IMG_LDSCRIPT"; then +diff --git a/acinclude.m4 b/acinclude.m4 +index 78cdf6e1d01..242e829ff23 100644 +--- a/acinclude.m4 ++++ b/acinclude.m4 +@@ -136,6 +136,25 @@ if test "x$grub_cv_prog_ld_build_id_none" = xyes; then + fi + ]) + ++dnl Supply --build-id=sha1 to ld if building modules. ++dnl This suppresses warnings from ld on some systems ++AC_DEFUN([grub_PROG_LD_BUILD_ID_SHA1], ++[AC_MSG_CHECKING([whether linker accepts --build-id=sha1]) ++AC_CACHE_VAL(grub_cv_prog_ld_build_id_sha1, ++[save_LDFLAGS="$LDFLAGS" ++LDFLAGS="$LDFLAGS -Wl,--build-id=sha1" ++AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])], ++ [grub_cv_prog_ld_build_id_sha1=yes], ++ [grub_cv_prog_ld_build_id_sha1=no]) ++LDFLAGS="$save_LDFLAGS" ++]) ++AC_MSG_RESULT([$grub_cv_prog_ld_build_id_sha1]) ++ ++if test "x$grub_cv_prog_ld_build_id_sha1" = xyes; then ++ TARGET_LDFLAGS="$TARGET_LDFLAGS -Wl,--build-id=sha1" ++fi ++]) ++ + dnl Check nm + AC_DEFUN([grub_PROG_NM_WORKS], + [AC_MSG_CHECKING([whether nm works]) +-- +2.15.0 + diff --git a/10004-Add-grub_qdprintf-grub_dprintf-without-the-file-lin.patch b/0214-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch similarity index 81% rename from 10004-Add-grub_qdprintf-grub_dprintf-without-the-file-lin.patch rename to 0214-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch index d83eeac0..d4182c0b 100644 --- a/10004-Add-grub_qdprintf-grub_dprintf-without-the-file-lin.patch +++ b/0214-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch @@ -1,7 +1,7 @@ -From 5e50fc35ba1c2f03cc9ccbd6ae2f49dcb0ffd560 Mon Sep 17 00:00:00 2001 +From 6a6d76e77ab7ba139816f9eb9315962f07fe0691 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Sun, 28 Jun 2015 13:09:58 -0400 -Subject: [PATCH 10004/10006] Add grub_qdprintf() - grub_dprintf() without the +Subject: [PATCH 214/215] Add grub_qdprintf() - grub_dprintf() without the file+line number. This just makes copy+paste of our debug loading info easier. @@ -13,10 +13,10 @@ Signed-off-by: Peter Jones 2 files changed, 20 insertions(+) diff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c -index d7dcd97..8e12a62 100644 +index 5c2d2039d0b..0e89c483d5e 100644 --- a/grub-core/kern/misc.c +++ b/grub-core/kern/misc.c -@@ -179,6 +179,24 @@ grub_real_dprintf (const char *file, const int line, const char *condition, +@@ -190,6 +190,24 @@ grub_real_dprintf (const char *file, const int line, const char *condition, } } @@ -42,10 +42,10 @@ index d7dcd97..8e12a62 100644 int diff --git a/include/grub/misc.h b/include/grub/misc.h -index 0620814..4cb1ba5 100644 +index 493e328d968..4607e8defa9 100644 --- a/include/grub/misc.h +++ b/include/grub/misc.h -@@ -326,6 +326,8 @@ void EXPORT_FUNC(grub_real_dprintf) (const char *file, +@@ -372,6 +372,8 @@ void EXPORT_FUNC(grub_real_dprintf) (const char *file, const int line, const char *condition, const char *fmt, ...) __attribute__ ((format (GNU_PRINTF, 4, 5))); @@ -55,5 +55,5 @@ index 0620814..4cb1ba5 100644 int EXPORT_FUNC(grub_snprintf) (char *str, grub_size_t n, const char *fmt, ...) __attribute__ ((format (GNU_PRINTF, 3, 4))); -- -2.5.0 +2.15.0 diff --git a/10005-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch b/0215-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch similarity index 90% rename from 10005-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch rename to 0215-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch index c3785c9f..10ffcba1 100644 --- a/10005-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch +++ b/0215-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch @@ -1,7 +1,7 @@ -From f936ec025e26ed98ae25786a2d931035cf482949 Mon Sep 17 00:00:00 2001 +From 2c0e3b593751a7f96c66899ca4a0ac75fc10fb12 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 25 Jun 2015 15:11:36 -0400 -Subject: [PATCH] Make a "gdb" dprintf that tells us load addresses. +Subject: [PATCH 215/215] Make a "gdb" dprintf that tells us load addresses. This makes a grub_dprintf() call during platform init and during module loading that tells us the virtual addresses of the .text and .data @@ -20,10 +20,10 @@ Signed-off-by: Peter Jones 4 files changed, 78 insertions(+), 4 deletions(-) diff --git a/grub-core/kern/dl.c b/grub-core/kern/dl.c -index 6210709..a314ac7 100644 +index 5028d157c46..eb8b969cded 100644 --- a/grub-core/kern/dl.c +++ b/grub-core/kern/dl.c -@@ -456,6 +456,23 @@ grub_dl_find_section (Elf_Ehdr *e, const char *name) +@@ -501,6 +501,23 @@ grub_dl_find_section (Elf_Ehdr *e, const char *name) return s; return NULL; } @@ -47,7 +47,7 @@ index 6210709..a314ac7 100644 /* Me, Vladimir Serbinenko, hereby I add this module check as per new GNU module policy. Note that this license check is informative only. -@@ -599,6 +616,37 @@ grub_dl_relocate_symbols (grub_dl_t mod, void *ehdr) +@@ -644,6 +661,37 @@ grub_dl_relocate_symbols (grub_dl_t mod, void *ehdr) return GRUB_ERR_NONE; } @@ -85,7 +85,7 @@ index 6210709..a314ac7 100644 /* Load a module from core memory. */ grub_dl_t -@@ -658,6 +706,8 @@ grub_dl_load_core_noinit (void *addr, grub_size_t size) +@@ -703,6 +751,8 @@ grub_dl_load_core_noinit (void *addr, grub_size_t size) grub_dprintf ("modules", "module name: %s\n", mod->name); grub_dprintf ("modules", "init function: %p\n", mod->init); @@ -95,7 +95,7 @@ index 6210709..a314ac7 100644 { grub_dl_unload (mod); diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c -index 1f3ac5e..d70d091 100644 +index 91f75fdb89a..621251242e1 100644 --- a/grub-core/kern/efi/efi.c +++ b/grub-core/kern/efi/efi.c @@ -274,7 +274,7 @@ grub_efi_get_variable (const char *var, const grub_efi_guid_t *guid, @@ -117,7 +117,7 @@ index 1f3ac5e..d70d091 100644 } diff --git a/grub-core/kern/efi/init.c b/grub-core/kern/efi/init.c -index f7782b6..79243b3 100644 +index f7782b6e114..79243b364a1 100644 --- a/grub-core/kern/efi/init.c +++ b/grub-core/kern/efi/init.c @@ -59,10 +59,33 @@ grub_efi_env_init (void) @@ -164,10 +164,10 @@ index f7782b6..79243b3 100644 } diff --git a/include/grub/efi/efi.h b/include/grub/efi/efi.h -index 4f3c1a4..77ef79b 100644 +index 68326d96f5a..6702b312040 100644 --- a/include/grub/efi/efi.h +++ b/include/grub/efi/efi.h -@@ -115,7 +115,7 @@ extern void (*EXPORT_VAR(grub_efi_net_config)) (grub_efi_handle_t hnd, +@@ -126,7 +126,7 @@ extern void (*EXPORT_VAR(grub_efi_net_config)) (grub_efi_handle_t hnd, void *EXPORT_FUNC(grub_efi_get_firmware_fdt)(void); #endif @@ -177,5 +177,5 @@ index 4f3c1a4..77ef79b 100644 void grub_efi_mm_init (void); void grub_efi_mm_fini (void); -- -2.13.0 +2.15.0 diff --git a/10001-Put-the-correct-.file-directives-in-our-.S-files.patch b/10001-Put-the-correct-.file-directives-in-our-.S-files.patch deleted file mode 100644 index d06775a8..00000000 --- a/10001-Put-the-correct-.file-directives-in-our-.S-files.patch +++ /dev/null @@ -1,455 +0,0 @@ -From 1b2af2de1b5d9d5780cf6803124c18f460466c3c Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Tue, 21 Jul 2015 20:30:00 -0400 -Subject: [PATCH 10001/10006] Put the correct .file directives in our .S files. - -The wrong path makes generating debuginfo not work correctly. - -Signed-off-by: Peter Jones ---- - grub-core/boot/i386/pc/boot.S | 2 +- - grub-core/boot/i386/pc/cdboot.S | 2 +- - grub-core/boot/i386/pc/diskboot.S | 2 +- - grub-core/boot/i386/pc/lnxboot.S | 2 +- - grub-core/boot/i386/pc/pxeboot.S | 2 +- - grub-core/boot/i386/pc/startup_raw.S | 2 +- - grub-core/efiemu/runtime/efiemu.S | 2 +- - grub-core/kern/arm/cache.S | 2 +- - grub-core/kern/arm/cache_armv6.S | 2 +- - grub-core/kern/arm/cache_armv7.S | 4 ++-- - grub-core/kern/arm/compiler-rt.S | 2 +- - grub-core/kern/arm/efi/startup.S | 2 +- - grub-core/kern/arm64/cache_flush.S | 2 +- - grub-core/kern/arm64/efi/startup.S | 2 +- - grub-core/kern/i386/coreboot/startup.S | 2 +- - grub-core/kern/i386/efi/startup.S | 2 +- - grub-core/kern/i386/ieee1275/startup.S | 2 +- - grub-core/kern/i386/pc/startup.S | 2 +- - grub-core/kern/i386/xen/startup.S | 2 +- - grub-core/kern/sparc64/cache.S | 2 +- - grub-core/kern/x86_64/efi/callwrap.S | 2 +- - grub-core/kern/x86_64/efi/startup.S | 2 +- - grub-core/kern/x86_64/xen/startup.S | 2 +- - grub-core/lib/arm/setjmp.S | 2 +- - grub-core/lib/arm64/setjmp.S | 2 +- - grub-core/lib/i386/setjmp.S | 2 +- - grub-core/lib/ia64/setjmp.S | 2 +- - grub-core/lib/mips/setjmp.S | 2 +- - grub-core/lib/powerpc/setjmp.S | 2 +- - grub-core/lib/sparc64/setjmp.S | 2 +- - grub-core/lib/x86_64/setjmp.S | 2 +- - 31 files changed, 32 insertions(+), 32 deletions(-) - -diff --git a/grub-core/boot/i386/pc/boot.S b/grub-core/boot/i386/pc/boot.S -index c1df86d..8eb8fc8 100644 ---- a/grub-core/boot/i386/pc/boot.S -+++ b/grub-core/boot/i386/pc/boot.S -@@ -112,7 +112,7 @@ cylinder_start: - /* more space... */ - .endm - -- .file "boot.S" -+ .file "grub-core/boot/i386/pc/boot.S" - - .text - -diff --git a/grub-core/boot/i386/pc/cdboot.S b/grub-core/boot/i386/pc/cdboot.S -index de4f809..d30b4be 100644 ---- a/grub-core/boot/i386/pc/cdboot.S -+++ b/grub-core/boot/i386/pc/cdboot.S -@@ -22,7 +22,7 @@ - #include - #include - -- .file "cdboot.S" -+ .file "grub-core/boot/i386/pc/cdboot.S" - - #define CODE_ADDR 0x6000 - #define DATA_ADDR ((GRUB_BOOT_MACHINE_KERNEL_ADDR) + 0x200) -diff --git a/grub-core/boot/i386/pc/diskboot.S b/grub-core/boot/i386/pc/diskboot.S -index 05dd7fa..9c0b32a 100644 ---- a/grub-core/boot/i386/pc/diskboot.S -+++ b/grub-core/boot/i386/pc/diskboot.S -@@ -27,7 +27,7 @@ - - #define MSG(x) movw $x, %si; call LOCAL(message) - -- .file "diskboot.S" -+ .file "grub-core/boot/i386/pc/diskboot.S" - - .text - -diff --git a/grub-core/boot/i386/pc/lnxboot.S b/grub-core/boot/i386/pc/lnxboot.S -index 2dda0e0..ca8e2b9 100644 ---- a/grub-core/boot/i386/pc/lnxboot.S -+++ b/grub-core/boot/i386/pc/lnxboot.S -@@ -23,7 +23,7 @@ - #include - #include - -- .file "lnxboot.S" -+ .file "grub-core/boot/i386/pc/lnxboot.S" - - #define CODE_ADDR 0x6000 - #define CODE_SECTORS 1 -diff --git a/grub-core/boot/i386/pc/pxeboot.S b/grub-core/boot/i386/pc/pxeboot.S -index b695b24..d200c69 100644 ---- a/grub-core/boot/i386/pc/pxeboot.S -+++ b/grub-core/boot/i386/pc/pxeboot.S -@@ -18,7 +18,7 @@ - - #include - -- .file "pxeboot.S" -+ .file "grub-core/boot/i386/pc/pxeboot.S" - .text - - /* Start with the prehistoric environment... */ -diff --git a/grub-core/boot/i386/pc/startup_raw.S b/grub-core/boot/i386/pc/startup_raw.S -index 8bce798..ded7060 100644 ---- a/grub-core/boot/i386/pc/startup_raw.S -+++ b/grub-core/boot/i386/pc/startup_raw.S -@@ -25,7 +25,7 @@ - - #define ABS(x) ((x) - LOCAL (base) + GRUB_BOOT_MACHINE_KERNEL_ADDR + 0x200) - -- .file "startup_raw.S" -+ .file "grub-core/boot/i386/pc/startup_raw.S" - - .text - -diff --git a/grub-core/efiemu/runtime/efiemu.S b/grub-core/efiemu/runtime/efiemu.S -index b502314..cca0e6c 100644 ---- a/grub-core/efiemu/runtime/efiemu.S -+++ b/grub-core/efiemu/runtime/efiemu.S -@@ -30,7 +30,7 @@ - * - */ - -- .file "efiemu.S" -+ .file "grub-core/efiemu/runtime/efiemu.S" - .text - - FUNCTION (efiemu_get_time) -diff --git a/grub-core/kern/arm/cache.S b/grub-core/kern/arm/cache.S -index 354a069..85f93dd 100644 ---- a/grub-core/kern/arm/cache.S -+++ b/grub-core/kern/arm/cache.S -@@ -18,7 +18,7 @@ - - #include - -- .file "cache.S" -+ .file "grub-core/kern/arm/cache.S" - .text - .syntax unified - #if !defined (__thumb2__) || !defined (ARMV7) -diff --git a/grub-core/kern/arm/cache_armv6.S b/grub-core/kern/arm/cache_armv6.S -index dfaded0..4e592b3 100644 ---- a/grub-core/kern/arm/cache_armv6.S -+++ b/grub-core/kern/arm/cache_armv6.S -@@ -18,7 +18,7 @@ - - #include - -- .file "cache_armv6.S" -+ .file "grub-core/kern/arm/cache_armv6.S" - .text - .syntax unified - .arm -diff --git a/grub-core/kern/arm/cache_armv7.S b/grub-core/kern/arm/cache_armv7.S -index 1ef2754..bb4f0ad 100644 ---- a/grub-core/kern/arm/cache_armv7.S -+++ b/grub-core/kern/arm/cache_armv7.S -@@ -18,7 +18,7 @@ - - #include - -- .file "cache_armv7.S" -+ .file "grub-core/kern/arm/cache_armv7.S" - .text - .syntax unified - #if !defined (__thumb2__) -@@ -123,4 +123,4 @@ clean_invalidate_dcache: - pop {r4-r12, lr} - bx lr - --#include "cache.S" -\ No newline at end of file -+#include "cache.S" -diff --git a/grub-core/kern/arm/compiler-rt.S b/grub-core/kern/arm/compiler-rt.S -index 645b42f..8b9168d 100644 ---- a/grub-core/kern/arm/compiler-rt.S -+++ b/grub-core/kern/arm/compiler-rt.S -@@ -19,7 +19,7 @@ - #include - #include - -- .file "misc.S" -+ .file "grub-core/kern/arm/compiler-rt.S" - .text - .syntax unified - #if !defined (__thumb2__) -diff --git a/grub-core/kern/arm/efi/startup.S b/grub-core/kern/arm/efi/startup.S -index 9f82653..09009f3 100644 ---- a/grub-core/kern/arm/efi/startup.S -+++ b/grub-core/kern/arm/efi/startup.S -@@ -20,7 +20,7 @@ - - #include - -- .file "startup.S" -+ .file "grub-core/kern/arm/efi/startup.S" - .text - .arm - FUNCTION(_start) -diff --git a/grub-core/kern/arm64/cache_flush.S b/grub-core/kern/arm64/cache_flush.S -index e064f7e..bf8192b 100644 ---- a/grub-core/kern/arm64/cache_flush.S -+++ b/grub-core/kern/arm64/cache_flush.S -@@ -18,7 +18,7 @@ - - #include - -- .file "cache_flush.S" -+ .file "grub-core/kern/arm64/cache_flush.S" - .text - - /* -diff --git a/grub-core/kern/arm64/efi/startup.S b/grub-core/kern/arm64/efi/startup.S -index 666a7ee..82b566c 100644 ---- a/grub-core/kern/arm64/efi/startup.S -+++ b/grub-core/kern/arm64/efi/startup.S -@@ -18,7 +18,7 @@ - - #include - -- .file "startup.S" -+ .file "grub-core/kern/arm64/efi/startup.S" - .text - FUNCTION(_start) - /* -diff --git a/grub-core/kern/i386/coreboot/startup.S b/grub-core/kern/i386/coreboot/startup.S -index c848654..7bdbfcc 100644 ---- a/grub-core/kern/i386/coreboot/startup.S -+++ b/grub-core/kern/i386/coreboot/startup.S -@@ -31,7 +31,7 @@ - * with "ret $N" where N is ((the number of arguments) - 3) * 4. - */ - -- .file "startup.S" -+ .file "grub-core/kern/i386/coreboot/startup.S" - .text - .globl start, _start - start: -diff --git a/grub-core/kern/i386/efi/startup.S b/grub-core/kern/i386/efi/startup.S -index fc5ea3d..5f27e07 100644 ---- a/grub-core/kern/i386/efi/startup.S -+++ b/grub-core/kern/i386/efi/startup.S -@@ -20,7 +20,7 @@ - #include - #include - -- .file "startup.S" -+ .file "grub-core/kern/i386/efi/startup.S" - .text - .globl start, _start - start: -diff --git a/grub-core/kern/i386/ieee1275/startup.S b/grub-core/kern/i386/ieee1275/startup.S -index 245583b..ae6476c 100644 ---- a/grub-core/kern/i386/ieee1275/startup.S -+++ b/grub-core/kern/i386/ieee1275/startup.S -@@ -30,7 +30,7 @@ - * with "ret $N" where N is ((the number of arguments) - 3) * 4. - */ - -- .file "startup.S" -+ .file "grub-core/kern/i386/ieee1275/startup.S" - .text - .globl start, _start - -diff --git a/grub-core/kern/i386/pc/startup.S b/grub-core/kern/i386/pc/startup.S -index b8a9b33..e7eb91c 100644 ---- a/grub-core/kern/i386/pc/startup.S -+++ b/grub-core/kern/i386/pc/startup.S -@@ -48,7 +48,7 @@ - #include - #endif - -- .file "startup.S" -+ .file "grub-core/kern/i386/pc/startup.S" - - .text - -diff --git a/grub-core/kern/i386/xen/startup.S b/grub-core/kern/i386/xen/startup.S -index fbe8300..52b2926 100644 ---- a/grub-core/kern/i386/xen/startup.S -+++ b/grub-core/kern/i386/xen/startup.S -@@ -20,7 +20,7 @@ - #include - #include - -- .file "startup.S" -+ .file "grub-core/kern/i386/xen/startup.S" - .text - .globl start, _start - .code32 -diff --git a/grub-core/kern/sparc64/cache.S b/grub-core/kern/sparc64/cache.S -index 1a16add..15cfadf 100644 ---- a/grub-core/kern/sparc64/cache.S -+++ b/grub-core/kern/sparc64/cache.S -@@ -19,7 +19,7 @@ - - #include - -- .file "cache.S" -+ .file "grub-core/kern/sparc64/cache.S" - - .text - -diff --git a/grub-core/kern/x86_64/efi/callwrap.S b/grub-core/kern/x86_64/efi/callwrap.S -index 1337fd9..ba6f306 100644 ---- a/grub-core/kern/x86_64/efi/callwrap.S -+++ b/grub-core/kern/x86_64/efi/callwrap.S -@@ -32,7 +32,7 @@ - * - */ - -- .file "callwrap.S" -+ .file "grub-core/kern/x86_64/efi/callwrap.S" - .text - - FUNCTION(efi_wrap_0) -diff --git a/grub-core/kern/x86_64/efi/startup.S b/grub-core/kern/x86_64/efi/startup.S -index 9357e5c..d223648 100644 ---- a/grub-core/kern/x86_64/efi/startup.S -+++ b/grub-core/kern/x86_64/efi/startup.S -@@ -20,7 +20,7 @@ - #include - #include - -- .file "startup.S" -+ .file "grub-core/kern/x86_64/efi/startup.S" - .text - .globl start, _start - .code64 -diff --git a/grub-core/kern/x86_64/xen/startup.S b/grub-core/kern/x86_64/xen/startup.S -index 21a139f..cc74fe9 100644 ---- a/grub-core/kern/x86_64/xen/startup.S -+++ b/grub-core/kern/x86_64/xen/startup.S -@@ -20,7 +20,7 @@ - #include - #include - -- .file "startup.S" -+ .file "grub-core/kern/x86_64/xen/startup.S" - .text - .globl start, _start - .code64 -diff --git a/grub-core/lib/arm/setjmp.S b/grub-core/lib/arm/setjmp.S -index a5373d3..6f58685 100644 ---- a/grub-core/lib/arm/setjmp.S -+++ b/grub-core/lib/arm/setjmp.S -@@ -19,7 +19,7 @@ - #include - #include - -- .file "setjmp.S" -+ .file "grub-core/lib/arm/setjmp.S" - - GRUB_MOD_LICENSE "GPLv3+" - -diff --git a/grub-core/lib/arm64/setjmp.S b/grub-core/lib/arm64/setjmp.S -index ffcabf6..7755d06 100644 ---- a/grub-core/lib/arm64/setjmp.S -+++ b/grub-core/lib/arm64/setjmp.S -@@ -19,7 +19,7 @@ - #include - #include - -- .file "setjmp.S" -+ .file "grub-core/lib/arm64/setjmp.S" - GRUB_MOD_LICENSE "GPLv3+" - .text - -diff --git a/grub-core/lib/i386/setjmp.S b/grub-core/lib/i386/setjmp.S -index 0b0740f..08271c9 100644 ---- a/grub-core/lib/i386/setjmp.S -+++ b/grub-core/lib/i386/setjmp.S -@@ -19,7 +19,7 @@ - #include - #include - -- .file "setjmp.S" -+ .file "grub-core/lib/i386/setjmp.S" - - GRUB_MOD_LICENSE "GPLv3+" - -diff --git a/grub-core/lib/ia64/setjmp.S b/grub-core/lib/ia64/setjmp.S -index a0382d8..dba2cbf 100644 ---- a/grub-core/lib/ia64/setjmp.S -+++ b/grub-core/lib/ia64/setjmp.S -@@ -67,7 +67,7 @@ - #include - #include - -- .file "setjmp.S" -+ .file "grub-core/lib/ia64/setjmp.S" - - GRUB_MOD_LICENSE "GPLv2+" - -diff --git a/grub-core/lib/mips/setjmp.S b/grub-core/lib/mips/setjmp.S -index 895235b..fa9c16e 100644 ---- a/grub-core/lib/mips/setjmp.S -+++ b/grub-core/lib/mips/setjmp.S -@@ -20,7 +20,7 @@ - #include - #include - -- .file "setjmp.S" -+ .file "grub-core/lib/mips/setjmp.S" - - GRUB_MOD_LICENSE "GPLv3+" - -diff --git a/grub-core/lib/powerpc/setjmp.S b/grub-core/lib/powerpc/setjmp.S -index 716b563..2e6cf16 100644 ---- a/grub-core/lib/powerpc/setjmp.S -+++ b/grub-core/lib/powerpc/setjmp.S -@@ -19,7 +19,7 @@ - #include - #include - -- .file "setjmp.S" -+ .file "grub-core/lib/powerpc/setjmp.S" - - GRUB_MOD_LICENSE "GPLv3+" - -diff --git a/grub-core/lib/sparc64/setjmp.S b/grub-core/lib/sparc64/setjmp.S -index 6c11bdd..ef516a5 100644 ---- a/grub-core/lib/sparc64/setjmp.S -+++ b/grub-core/lib/sparc64/setjmp.S -@@ -19,7 +19,7 @@ - #include - #include - -- .file "setjmp.S" -+ .file "grub-core/lib/sparc64/setjmp.S" - - GRUB_MOD_LICENSE "GPLv3+" - -diff --git a/grub-core/lib/x86_64/setjmp.S b/grub-core/lib/x86_64/setjmp.S -index 6b151bc..c975897 100644 ---- a/grub-core/lib/x86_64/setjmp.S -+++ b/grub-core/lib/x86_64/setjmp.S -@@ -19,7 +19,7 @@ - #include - #include - -- .file "setjmp.S" -+ .file "grub-core/lib/x86_64/setjmp.S" - - GRUB_MOD_LICENSE "GPLv3+" - --- -2.5.0 - diff --git a/10003-Don-t-tell-the-compiler-to-do-annoying-things-with-.patch b/10003-Don-t-tell-the-compiler-to-do-annoying-things-with-.patch deleted file mode 100644 index 82f8e86e..00000000 --- a/10003-Don-t-tell-the-compiler-to-do-annoying-things-with-.patch +++ /dev/null @@ -1,88 +0,0 @@ -From ddc6702d0b258e12f67f0df7c3c915a04ede1067 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Sun, 28 Jun 2015 17:57:24 -0400 -Subject: [PATCH 10003/10006] Don't tell the compiler to do annoying things - with -f. - ---- - configure.ac | 48 ++---------------------------------------------- - 1 file changed, 2 insertions(+), 46 deletions(-) - -diff --git a/configure.ac b/configure.ac -index 3e897bd..65f7f43 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -548,8 +548,8 @@ LDFLAGS="$TARGET_LDFLAGS" - LIBS="" - - # debug flags. --TARGET_CFLAGS="$TARGET_CFLAGS $WARN_FLAGS -g -Wredundant-decls -Wmissing-prototypes -Wmissing-declarations" --TARGET_CCASFLAGS="$TARGET_CCASFLAGS -g" -+TARGET_CFLAGS="$TARGET_CFLAGS $WARN_FLAGS -g3 -Wredundant-decls -Wmissing-prototypes -Wmissing-declarations" -+TARGET_CCASFLAGS="$TARGET_CCASFLAGS -g3" - - if test "x$target_cpu" != xi386 && test "x$target_cpu" != xx86_64; then - TARGET_CFLAGS="$TARGET_CFLAGS -Wcast-align" -@@ -908,21 +908,6 @@ if test x"$target_cpu" = xsparc64 ; then - TARGET_LDFLAGS="$TARGET_LDFLAGS $grub_cv_target_cc_mno_relax" - fi - --# By default, GCC 4.4 generates .eh_frame sections containing unwind --# information in some cases where it previously did not. GRUB doesn't need --# these and they just use up vital space. Restore the old compiler --# behaviour. --AC_CACHE_CHECK([whether -fno-dwarf2-cfi-asm works], [grub_cv_cc_fno_dwarf2_cfi_asm], [ -- CFLAGS="$TARGET_CFLAGS -fno-dwarf2-cfi-asm" -- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])], -- [grub_cv_cc_fno_dwarf2_cfi_asm=yes], -- [grub_cv_cc_fno_dwarf2_cfi_asm=no]) --]) -- --if test "x$grub_cv_cc_fno_dwarf2_cfi_asm" = xyes; then -- TARGET_CFLAGS="$TARGET_CFLAGS -fno-dwarf2-cfi-asm" --fi -- - if test x"$target_os" = xcygwin; then - AC_CACHE_CHECK([whether option -fno-reorder-functions works], grub_cv_cc_no_reorder_functions, [ - CFLAGS="$TARGET_CFLAGS -fno-reorder-functions" -@@ -947,37 +932,8 @@ if test "x$grub_cv_cc_mno_stack_arg_probe" = xyes; then - TARGET_CFLAGS="$TARGET_CFLAGS -mno-stack-arg-probe" - fi - -- --# By default, GCC 4.6 generates .eh_frame sections containing unwind --# information in some cases where it previously did not. GRUB doesn't need --# these and they just use up vital space. Restore the old compiler --# behaviour. --AC_CACHE_CHECK([whether -fno-asynchronous-unwind-tables works], [grub_cv_cc_fno_asynchronous_unwind_tables], [ -- CFLAGS="$TARGET_CFLAGS -fno-asynchronous-unwind-tables" -- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])], -- [grub_cv_cc_fno_asynchronous_unwind_tables=yes], -- [grub_cv_cc_fno_asynchronous_unwind_tables=no]) --]) -- --if test "x$grub_cv_cc_fno_asynchronous_unwind_tables" = xyes; then -- TARGET_CFLAGS="$TARGET_CFLAGS -fno-asynchronous-unwind-tables" --fi -- --AC_CACHE_CHECK([whether -fno-unwind-tables works], [grub_cv_cc_fno_unwind_tables], [ -- CFLAGS="$TARGET_CFLAGS -fno-unwind-tables" -- AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])], -- [grub_cv_cc_fno_unwind_tables=yes], -- [grub_cv_cc_fno_unwind_tables=no]) --]) -- --if test "x$grub_cv_cc_fno_unwind_tables" = xyes; then -- TARGET_CFLAGS="$TARGET_CFLAGS -fno-unwind-tables" --fi -- -- - CFLAGS="$TARGET_CFLAGS" - -- - if test x"$platform" = xemu ; then - TARGET_OBJ2ELF= - grub_cv_target_cc_link_format= --- -2.5.0 - diff --git a/10006-Try-it-in-gentpl-again.patch b/10006-Try-it-in-gentpl-again.patch deleted file mode 100644 index e2798b81..00000000 --- a/10006-Try-it-in-gentpl-again.patch +++ /dev/null @@ -1,66 +0,0 @@ -From ede25cf0ee4a6078f21d580f10d62de238b1729b Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Wed, 22 Jul 2015 16:09:59 -0400 -Subject: [PATCH 10006/10006] Try it in gentpl again... - ---- - grub-core/Makefile.core.def | 22 +++++++++++++++++++++- - 1 file changed, 21 insertions(+), 1 deletion(-) - -diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 9fa9790..eed40d2 100644 ---- a/grub-core/Makefile.core.def -+++ b/grub-core/Makefile.core.def -@@ -44,6 +44,18 @@ transform_data = { - enable = powerpc_ieee1275; - }; - -+library = { -+ name = kernel_noemu_nodist_symlist.a; -+ noemu_nodist = symlist.c; -+ ia64_efi_cflags = '-fno-builtin -fpic -minline-int-divide-max-throughput -g0'; -+ x86_64_xen_cppflags = '$(CPPFLAGS_XEN) -g0'; -+ i386_xen_cppflags = '$(CPPFLAGS_XEN) -g0'; -+ mips_arc_cppflags = '-DGRUB_DECOMPRESSOR_LINK_ADDR=$(TARGET_DECOMPRESSOR_LINK_ADDR) -g0'; -+ i386_qemu_cppflags = '-DGRUB_BOOT_MACHINE_LINK_ADDR=$(GRUB_BOOT_MACHINE_LINK_ADDR) -g0'; -+ emu_cflags = '$(CFLAGS_GNULIB) -g0'; -+ emu_cppflags = '$(CPPFLAGS_GNULIB) -g0'; -+}; -+ - kernel = { - name = kernel; - -@@ -133,7 +145,7 @@ kernel = { - noemu = kern/time.c; - noemu = kern/generic/millisleep.c; - -- noemu_nodist = symlist.c; -+ ldadd = kernel_noemu_nodist_symlist.a; - - mips = kern/generic/rtc_get_time_ms.c; - -@@ -350,6 +362,13 @@ program = { - enable = emu; - }; - -+library = { -+ name = emu_nodist_symlist.a; -+ emu_nodist = symlist.c; -+ cflags = '-g0'; -+ cppflags = '-g0'; -+}; -+ - program = { - name = grub-emu-lite; - -@@ -357,6 +376,7 @@ program = { - emu_nodist = symlist.c; - - ldadd = 'kernel.exec$(EXEEXT)'; -+ ldadd = emu_nodist_symlist.a; - ldadd = 'gnulib/libgnu.a $(LIBINTL) $(LIBUTIL) $(LIBSDL) $(LIBUSB) $(LIBPCIACCESS) $(LIBDEVMAPPER) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)'; - - enable = emu; --- -2.5.0 - diff --git a/20-grub.install b/20-grub.install index 7613562f..f7b94b86 100755 --- a/20-grub.install +++ b/20-grub.install @@ -15,11 +15,39 @@ MACHINE_ID=$KERNEL_INSTALL_MACHINE_ID # Remove it, since for grub2 the images are always installed in /boot rm -rf "${BOOT_DIR_ABS%/*}" +EFIDIR="$(echo "${ID}" | sed -e 's/rhel/redhat/')" + BLS_DIR="/boot/loader/entries" if [ -d /sys/firmware/efi ]; then - BLS_DIR="/boot/efi/EFI/${ID}/loader/entries" + BLS_DIR="/boot/efi/EFI/${EFIDIR}/loader/entries" fi +mkbls() { + local kernelver=$1 && shift + local datetime=$1 && shift + + local debugname="" + local flavor="" + + if [[ "$KERNEL_VERSION" == *\+* ]] ; then + local flavor=-"${KERNEL_VERSION##*+}" + if [[ "${flavor}" == "-debug" ]]; then + local debugname=" with debugging" + fi + fi + + cat </dev/null && \ @@ -45,40 +73,28 @@ case "$COMMAND" in fi fi - if [[ "x${GRUB_ENABLE_BLSCFG}" = "xtrue" ]] || [[ ! -f /sbin/new-kernel-pkg ]]; then - [[ -d "$BLS_DIR" ]] || mkdir -p "$BLS_DIR" - if [[ ! -f "${KERNEL_DIR}/bls.conf" ]]; then - - if [ "${flavor}" = "-debug" ]; then - debugname=" with debugging" - else - debugname="" - fi - - cat >"${KERNEL_DIR}/bls.conf" <"${BLS_TARGET}" + fi + exit 0 fi /sbin/new-kernel-pkg --package "kernel${flavor}" --install "$KERNEL_VERSION" || exit $? /sbin/new-kernel-pkg --package "kernel${flavor}" --mkinitrd --dracut --depmod --update "$KERNEL_VERSION" || exit $? /sbin/new-kernel-pkg --package "kernel${flavor}" --rpmposttrans "$KERNEL_VERSION" || exit $? - # If grubby is used there's no need to run other installation plugins - exit 77 + # If grubby is used there's no need to run other installation plugins + exit 77 ;; remove) - if [[ "x${GRUB_ENABLE_BLSCFG}" = "xtrue" ]] || [[ ! -f /sbin/new-kernel-pkg ]]; then + if [[ "x${GRUB_ENABLE_BLSCFG}" = "xtrue" ]] || [[ ! -f /sbin/new-kernel-pkg ]]; then rm -f "${BLS_DIR}/${MACHINE_ID}-${KERNEL_VERSION}.conf" for i in vmlinuz System.map config zImage.stub dtb; do diff --git a/grub.macros b/grub.macros index 61f1b8cd..6e2f3372 100644 --- a/grub.macros +++ b/grub.macros @@ -387,7 +387,7 @@ cd .. \ %define do_alt_efi_install() \ cd grub-%{1}-%{tarversion} \ -install -d -m 755 $RPM_BUILD_ROOT/usr/lib/grub/%{grubaltefiarch}/ \ +install -d -m 700 $RPM_BUILD_ROOT/usr/lib/grub/%{grubaltefiarch}/ \ find . '(' -iname gdb_grub \\\ -o -iname kernel.exec \\\ -o -iname kernel.img \\\ @@ -399,15 +399,16 @@ find . '(' -iname gdb_grub \\\ ')' \\\ -exec cp {} $RPM_BUILD_ROOT/usr/lib/grub/%{grubaltefiarch}/ \\\; \ find $RPM_BUILD_ROOT -type f -iname "*.mod*" -exec chmod a-x {} '\;' \ -install -m 755 %{2} $RPM_BUILD_ROOT/boot/efi/EFI/%{efidir}/%{2} \ -install -m 755 %{3} $RPM_BUILD_ROOT/boot/efi/EFI/%{efidir}/%{3} \ +install -m 700 %{2} $RPM_BUILD_ROOT/boot/efi/EFI/%{efidir}/%{2} \ +install -m 700 %{3} $RPM_BUILD_ROOT/boot/efi/EFI/%{efidir}/%{3} \ cd .. \ %{nil} %define do_efi_install() \ cd grub-%{1}-%{tarversion} \ -install -m 755 -d $RPM_BUILD_ROOT/boot/efi/EFI/%{efidir}/ \ -install -m 755 -d $RPM_BUILD_ROOT/boot/grub2/ \ +install -m 700 -d $RPM_BUILD_ROOT/boot/efi/EFI/%{efidir}/ \ +install -m 700 -d $RPM_BUILD_ROOT/boot/efi/EFI/%{efidir}/loader/entries \ +install -m 700 -d $RPM_BUILD_ROOT/boot/grub2/ \ make DESTDIR=$RPM_BUILD_ROOT install \ if [ -f $RPM_BUILD_ROOT%{_infodir}/grub.info ]; then \ rm -f $RPM_BUILD_ROOT%{_infodir}/grub.info \ @@ -419,8 +420,8 @@ find $RPM_BUILD_ROOT -iname "*.module" -exec chmod a-x {} '\;' \ touch $RPM_BUILD_ROOT/boot/efi/EFI/%{efidir}/grub.cfg \ ln -sf ../boot/efi/EFI/%{efidir}/grub.cfg \\\ $RPM_BUILD_ROOT%{_sysconfdir}/%{name}-efi.cfg \ -install -m 755 %{2} $RPM_BUILD_ROOT/boot/efi/EFI/%{efidir}/%{2} \ -install -m 755 %{3} $RPM_BUILD_ROOT/boot/efi/EFI/%{efidir}/%{3} \ +install -m 700 %{2} $RPM_BUILD_ROOT/boot/efi/EFI/%{efidir}/%{2} \ +install -m 700 %{3} $RPM_BUILD_ROOT/boot/efi/EFI/%{efidir}/%{3} \ install -D -m 644 unicode.pf2 \\\ $RPM_BUILD_ROOT/boot/efi/EFI/%{efidir}/fonts/unicode.pf2\ cd .. \ @@ -442,6 +443,7 @@ if [ -f $RPM_BUILD_ROOT/%{_libdir}/grub/%{1}/grub2.chrp ]; then \ $RPM_BUILD_ROOT/%{_libdir}/grub/%{1}/grub.chrp \ fi \ cd .. \ +install -d -m 0755 ${RPM_BUILD_ROOT}/boot/loader/entries \ %{nil} %define do_common_install() \ @@ -455,7 +457,7 @@ cp docs/grub.info $RPM_BUILD_ROOT%{_infodir}/%{name}.info \ cp docs/grub-dev.info \\\ $RPM_BUILD_ROOT%{_infodir}/%{name}-dev.info \ # Ghost config file \ -install -d -m 0755 ${RPM_BUILD_ROOT}/boot/efi/EFI/%{efidir}/ \ +install -d -m 0700 ${RPM_BUILD_ROOT}/boot/efi/EFI/%{efidir}/ \ install -d -m 0755 ${RPM_BUILD_ROOT}/boot/grub2/ \ install -d -m 0755 ${RPM_BUILD_ROOT}/boot/%{name}/themes/system \ install -d -m 0755 ${RPM_BUILD_ROOT}%{_sysconfdir}/default \ @@ -473,6 +475,7 @@ touch ${RPM_BUILD_ROOT}/boot/%{name}/grub.cfg \ %defattr(-,root,root,-) \ %config(noreplace) %{_sysconfdir}/%{name}.cfg \ %ghost %config(noreplace) /boot/%{name}/grub.cfg \ +%dir %attr(0700,root,root)/boot/loader/entries \ \ %{expand:%if 0%{?with_legacy_modules} \ %{expand:%%files %{1}-modules} \ @@ -493,7 +496,8 @@ touch ${RPM_BUILD_ROOT}/boot/%{name}/grub.cfg \ %config(noreplace) %{_sysconfdir}/%{name}-efi.cfg \ %dir %attr(0700,root,root)/boot/efi/EFI/%{efidir} \ %attr(0700,root,root)/boot/efi/EFI/%{efidir}/%{2} \ -%attr(0700,root,root)/boot/efi/EFI/%{efidir}/fonts \ +%dir %attr(0700,root,root)/boot/efi/EFI/%{efidir}/fonts \ +%dir %attr(0700,root,root)/boot/efi/EFI/%{efidir}/loader/entries \ %ghost %config(noreplace) %attr(0700,root,root)/boot/efi/EFI/%{efidir}/grub.cfg \ /boot/grub2/grubenv \ %ghost %config(noreplace) %attr(0700,root,root)/boot/efi/EFI/%{efidir}/grubenv \ diff --git a/grub.patches b/grub.patches index ff973fe7..be8a1439 100644 --- a/grub.patches +++ b/grub.patches @@ -204,3 +204,12 @@ Patch0203: 0203-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch Patch0204: 0204-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch Patch0205: 0205-Enable-blscfg-command-for-the-emu-platform.patch Patch0206: 0206-Add-linux-and-initrd-commands-for-grub-emu.patch +Patch0207: 0207-Fix-the-efidir-in-grub-setpassword.patch +Patch0208: 0208-Add-grub2-switch-to-blscfg.patch +Patch0209: 0209-Add-grub_debug_enabled.patch +Patch0210: 0210-make-better-backtraces.patch +Patch0211: 0211-normal-don-t-draw-our-startup-message-if-debug-is-se.patch +Patch0212: 0212-Work-around-some-minor-include-path-weirdnesses.patch +Patch0213: 0213-Make-it-possible-to-enabled-build-id-sha1.patch +Patch0214: 0214-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch +Patch0215: 0215-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch diff --git a/grub2.spec b/grub2.spec index ffaa4952..4398393c 100644 --- a/grub2.spec +++ b/grub2.spec @@ -28,16 +28,6 @@ Source9: 20-grub.install # generate with do-rebase %include %{SOURCE2} -# And these are: -# git checkout debuginfo -# git format-patch fedora-23.. -Patch10001: 10001-Put-the-correct-.file-directives-in-our-.S-files.patch -Patch10002: 10002-Make-it-possible-to-enabled-build-id-sha1.patch -#Patch10003: 10003-Don-t-tell-the-compiler-to-do-annoying-things-with-.patch -Patch10004: 10004-Add-grub_qdprintf-grub_dprintf-without-the-file-lin.patch -Patch10005: 10005-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch -#Patch10006: 10006-Try-it-in-gentpl-again.patch - BuildRequires: flex bison binutils python BuildRequires: ncurses-devel xz-devel bzip2-devel BuildRequires: freetype-devel libusb-devel @@ -88,7 +78,7 @@ Summary: Support tools for GRUB. Group: System Environment/Base Obsoletes: %{name}-tools < %{evr} Requires: %{name}-common = %{epoch}:%{version}-%{release} -Requires: gettext os-prober which file +Requires: gettext which file Requires(pre): dracut Requires(post): dracut @@ -100,7 +90,7 @@ This subpackage provides tools for support of all platforms. %package tools-efi Summary: Support tools for GRUB. Group: System Environment/Base -Requires: gettext os-prober which file +Requires: gettext which file Requires: %{name}-common = %{epoch}:%{version}-%{release} Obsoletes: %{name}-tools < %{evr} @@ -123,7 +113,7 @@ This subpackage provides tools for support of all platforms. %package tools-extra Summary: Support tools for GRUB. Group: System Environment/Base -Requires: gettext os-prober which file +Requires: gettext which file Requires: %{name}-tools-minimal = %{epoch}:%{version}-%{release} Requires: %{name}-common = %{epoch}:%{version}-%{release} Obsoletes: %{name}-tools < %{evr} @@ -213,9 +203,10 @@ cat << EOF > ${RPM_BUILD_ROOT}%{_sysconfdir}/prelink.conf.d/grub2.conf EOF # Install kernel-install scripts -install -Dm0755 -t %{buildroot}%{_prefix}/lib/kernel/install.d/ %{SOURCE9} -ln -sf /dev/null %{buildroot}%{_sysconfdir}/kernel/install.d/20-grubby.install -ln -sf /dev/null %{buildroot}%{_sysconfdir}/kernel/install.d/90-loaderentry.install +install -D -m 0755 -t %{buildroot}%{_prefix}/lib/kernel/install.d/ %{SOURCE9} +install -d -m 0755 %{buildroot}%{_sysconfdir}/kernel/install.d/ +install -m 0644 /dev/null %{buildroot}%{_sysconfdir}/kernel/install.d/20-grubby.install +install -m 0644 /dev/null %{buildroot}%{_sysconfdir}/kernel/install.d/90-loaderentry.install # Don't run debuginfo on all the grub modules and whatnot; it just # rejects them, complains, and slows down extraction. @@ -366,6 +357,7 @@ fi %exclude %{_datarootdir}/grub/*.h %{_datarootdir}/bash-completion/completions/grub %{_sbindir}/%{name}-mkconfig +%{_sbindir}/%{name}-switch-to-blscfg %{_sbindir}/%{name}-probe %{_sbindir}/%{name}-rpm-sort %{_sbindir}/%{name}-reboot @@ -460,8 +452,9 @@ fi %endif %changelog -* Fri Mar 09 2018 Javier Martinez Canillas - 2.02-28 -- Install kernel-install scripts. +* Fri Mar 16 2018 Peter Jones - 2.02-28 +- Install kernel-install scripts. (javierm) +- Add grub2-switch-to-blscfg * Tue Mar 06 2018 Peter Jones - 2.02-27 - Build the blscfg module in on EFI builds. From e3bc4177982d084d3f145a7bfa9391c12ecf1a11 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 16 Mar 2018 15:23:37 -0400 Subject: [PATCH 05/45] Fix up some minor build bugs. Signed-off-by: Peter Jones --- 0001-Bump-version-to-2.03.patch | 2 +- 0002-Remove-bashisms-from-tests.patch | 2 +- 0003-fs-tester-make-sh-compatible.patch | 2 +- 0004-support-busybox-date.patch | 2 +- ...retrieve-fstime-when-it-s-not-useful.patch | 2 +- 0006-Support-lseek64.patch | 2 +- 0007-Use-SHELL-rather-than-bin-sh.patch | 2 +- 0008-po-Use-SHELL-rather-than-bin-sh.patch | 2 +- 0009-Add-termux-path-to-dict.patch | 2 +- 0010-Fix-shebang-for-termux.patch | 2 +- 0011-Add-strtoull-test.patch | 2 +- ...x-behaviour-on-chars-between-9-and-a.patch | 2 +- 0013-Add-Virtual-LAN-support.patch | 2 +- ...out-to-mkimage_generate_elfXX-rather.patch | 2 +- ...r-arm-uboot-code-to-make-it-genereic.patch | 2 +- ...-parts-that-are-platform-independent.patch | 2 +- ...-Rename-uboot-halt.c-to-dummy-halt.c.patch | 2 +- ...ame-uboot-datetime-to-dummy-datetime.patch | 2 +- 0019-arm-coreboot-Start-new-port.patch | 2 +- ...upport-for-device-tree-based-drivers.patch | 2 +- ...-coreboot-Support-for-vexpress-timer.patch | 2 +- 0022-arm-coreboot-Export-FDT-routines.patch | 2 +- ...-Split-protocol-from-controller-code.patch | 2 +- ...reboot-Support-keyboard-for-vexpress.patch | 2 +- ...m_coreboot-Support-grub-mkstandalone.patch | 2 +- ...oreboot-Support-loading-linux-images.patch | 2 +- 0027-arm_coreboot-Support-DMA.patch | 2 +- 0028-ehci-Split-core-code-from-PCI-part.patch | 2 +- 0029-arm_coreboot-Support-EHCI.patch | 2 +- ...n-FDT-nodes-with-compatible-property.patch | 2 +- ...ty-to-send-receive-messages-on-paren.patch | 2 +- 0032-rk3288_spi-Add-SPI-driver.patch | 2 +- ...eboot-Add-Chromebook-keyboard-driver.patch | 2 +- 0034-Missing-parts-of-previous-commit.patch | 2 +- ...-cbmemc-to-support-updated-console-f.patch | 2 +- ...t_keyboard-Fix-falco-chromebook-case.patch | 2 +- 0037-sparc64-Close-cdboot-ihandle.patch | 2 +- ...-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch | 2 +- ...p-option-support-in-xen_module-comma.patch | 2 +- ...inux_xen.in-Add-xen_boot-command-sup.patch | 2 +- ...-introduction-of-Xen-boot-commands-i.patch | 2 +- ...se-devspec-to-determine-the-OBP-path.patch | 2 +- ...unt-ext2-3-4-filesystems-that-have-t.patch | 2 +- 0044-ehci-Fix-compilation-for-amd64.patch | 2 +- ...-compilation-for-ppc-sparc-and-arm64.patch | 2 +- 0046-ehci-Fix-compilation-on-i386.patch | 2 +- 0047-crypto-Fix-use-after-free.patch | 2 +- 0048-arm-efi-Fix-compilation.patch | 2 +- 0049-fdt-silence-clang-warning.patch | 2 +- 0050-Fix-a-segfault-in-lsefi.patch | 2 +- ...t-typedef-and-use-grub_size_t-instea.patch | 2 +- ...x-reading-label-lvd.ident-is-dstring.patch | 2 +- ...b-core-fs-udf.c-Add-support-for-UUID.patch | 2 +- ...orriso-presence-before-doing-anythin.patch | 2 +- 0055-Fail-if-xorriso-failed.patch | 2 +- ...efi-refactor-grub_efi_allocate_pages.patch | 2 +- 0057-Remove-grub_efi_allocate_pages.patch | 2 +- 0058-efi-move-fdt-helper-library.patch | 2 +- 0059-efi-Add-GRUB_PE32_MAGIC-definition.patch | 2 +- ...inux-loader-improve-type-portability.patch | 2 +- ...allocation-type-to-GRUB_EFI_LOADER_C.patch | 2 +- ...RM_-definitions-when-handling-term-c.patch | 2 +- ...B_GZ-prefix-to-gzio-specific-defines.patch | 2 +- 0064-info-in-builddir.patch | 2 +- 0065-re-write-.gitignore.patch | 2 +- ...ient-architecture-CAS-reboot-support.patch | 2 +- ...nsole-display-attr-when-clear-screen.patch | 2 +- ...video-support-for-IBM-power-machines.patch | 2 +- ...when-generating-configuration-by-gru.patch | 2 +- 0070-Move-bash-completion-script-922997.patch | 2 +- 0071-Update-to-minilzo-2.08.patch | 2 +- ...o-include-entries-by-title-not-just-.patch | 2 +- 0073-Add-GRUB_DISABLE_UUID.patch | 2 +- 0074-Make-exit-take-a-return-code.patch | 2 +- ...pot-as-binary-so-git-won-t-try-to-di.patch | 2 +- ...es-load-an-env-block-from-a-variable.patch | 2 +- ...HCP-client-ID-and-UUID-options-added.patch | 2 +- ...-trim-arp-packets-with-abnormal-size.patch | 2 +- ...Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch | 2 +- ...UEFI-operating-systems-returned-by-o.patch | 2 +- 0081-Migrate-PPC-from-Yaboot-to-Grub2.patch | 2 +- 0082-Add-fw_path-variable-revised.patch | 2 +- 0083-Add-support-for-linuxefi.patch | 2 +- ...xefi-and-initrdefi-where-appropriate.patch | 2 +- ...w-insmod-when-secure-boot-is-enabled.patch | 2 +- ...-hex-hex-straight-through-unmolested.patch | 2 +- 0087-Add-X-option-to-printf-functions.patch | 2 +- ...for-specific-config-file-for-netboot.patch | 2 +- ...g-module-to-parse-Boot-Loader-Specif.patch | 2 +- 0090-Don-t-write-messages-to-the-screen.patch | 2 +- 0091-Don-t-print-GNU-GRUB-header.patch | 2 +- 0092-Don-t-add-to-highlighted-row.patch | 2 +- 0093-Message-string-cleanups.patch | 2 +- ...ing-now-that-we-aren-t-displaying-it.patch | 2 +- ...t-indentation-for-the-term-help-text.patch | 2 +- 0096-Indent-menu-entries.patch | 2 +- 0097-Fix-margins.patch | 2 +- ...-1-for-our-right-hand-margin-so-line.patch | 2 +- ...-Use-linux16-when-appropriate-880840.patch | 2 +- 0100-Enable-pager-by-default.-985860.patch | 2 +- ...-on-serial-so-don-t-tell-the-user-to.patch | 2 +- ...n-t-say-GNU-Linux-in-generated-menus.patch | 2 +- ...-Don-t-draw-a-border-around-the-menu.patch | 2 +- ...andard-margin-for-the-timeout-string.patch | 2 +- ...rame-to-list-of-relocations-stripped.patch | 2 +- ...rk-with-our-changes-for-linux16-and-.patch | 2 +- ...on-t-print-during-fdt-loading-method.patch | 2 +- ...spaces-when-we-re-doing-our-cmdline-.patch | 2 +- ...password-to-boot-entries-generated-b.patch | 2 +- 0110-Don-t-emit-Booting-.-message.patch | 2 +- ...f-man-pages-with-slightly-nicer-ones.patch | 2 +- ...ix-when-fallback-searching-for-grub-.patch | 2 +- ...-before-grub.cfg-on-tftp-config-file.patch | 2 +- ...ert-function-to-support-NVMe-devices.patch | 2 +- ...M-Mustang-device-tree-for-hardware-t.patch | 2 +- ...device-tree-from-the-grub-default-fi.patch | 2 +- ...P-protocol-for-exclusive-use-by-grub.patch | 2 +- ...P-protocol-for-exclusive-use-by-grub.patch | 2 +- 0119-Add-grub_util_readlink.patch | 2 +- ...se-symlinks-including-those-across-d.patch | 2 +- ...CLASS-in-10_linux-from-etc-os-releas.patch | 2 +- ...t-ordering-for-.debug-and-rescue-ker.patch | 2 +- 0123-Load-arm-with-SB-enabled.patch | 2 +- 0124-Try-prefix-if-fw_path-doesn-t-work.patch | 2 +- ...-grub.cfg-netboot-selection-order-11.patch | 2 +- ...-Package-Sort-for-grub2-mkconfig-112.patch | 2 +- 0127-Handle-rssd-storage-devices.patch | 2 +- ...x16-initrd16-and-linuxefi-initrdefi-.patch | 2 +- ...fig-construct-titles-that-look-like-.patch | 2 +- ...ly-grub2-password-config-tool-985962.patch | 2 +- ...fig-construct-titles-that-look-like-.patch | 2 +- ...-configure.ac-and-grub-rpm-sort-play.patch | 2 +- 0133-tcp-add-window-scaling-support.patch | 2 +- ...net-retransmit-if-our-device-is-busy.patch | 2 +- ...out-actually-using-the-configured-ne.patch | 2 +- ...r-for-the-first-exclusive-reopen-of-.patch | 2 +- ...ue-when-reading-username-and-passwor.patch | 2 +- ...ub-password-will-not-be-read-1290803.patch | 2 +- ...ub-setpassword-documentation-1290799.patch | 2 +- ...le-issue-in-grub-setpassword-1294243.patch | 2 +- ...rsistent-RAM-and-unknown-possible-fu.patch | 2 +- 0142-efiemu-Fix-compilation-failure.patch | 2 +- ...P-protocol-for-exclusive-use-by-grub.patch | 2 +- 0144-Add-a-url-parser.patch | 2 +- ...net-and-bootp-add-support-for-dhcpv6.patch | 2 +- ...rnel-settings-and-use-it-in-10_linux.patch | 2 +- 0147-Normalize-slashes-in-tftp-paths.patch | 2 +- 0148-Fix-malformed-tftp-packets.patch | 2 +- 0149-Fix-race-in-EFI-validation.patch | 2 +- ...1374141-fix-incorrect-mask-for-ppc64.patch | 2 +- ...art-of-chainloader-target-if-present.patch | 2 +- ...ecureboot-support-on-efi-chainloader.patch | 2 +- ...loaders-that-link-in-efi-mode-honor-.patch | 2 +- 0154-Make-grub_fatal-also-backtrace.patch | 2 +- 0155-Rework-linux-command.patch | 2 +- 0156-Rework-linux16-command.patch | 2 +- 0157-Make-grub-editenv-build-again.patch | 2 +- ...ix-up-some-man-pages-rpmdiff-noticed.patch | 2 +- ...-work-some-intricacies-of-PE-loading.patch | 2 +- ...-of-efi-chainload-so-non-sb-cases-wo.patch | 2 +- ...-double-free-on-verification-failure.patch | 2 +- ...machine-type-test-in-30_os-prober.in.patch | 2 +- ...fix-wrong-sanity-check-in-relocate_c.patch | 2 +- ...truncate-overlong-relocation-section.patch | 2 +- 0165-linuxefi-minor-cleanups.patch | 2 +- ...rch-64-on-32-boot-in-linuxefi-loader.patch | 2 +- 0167-Fix-up-linux-params-usage.patch | 2 +- 0168-Make-exit-take-a-return-code.patch | 2 +- ...fdt-has-address-cells-and-size-cells.patch | 2 +- ...rintf-in-the-secure-boot-verify-code.patch | 2 +- ...fo-pages-say-grub2-where-appropriate.patch | 2 +- ...more-debug-info-in-our-module-loader.patch | 2 +- ...-chainloader-entries-don-t-try-any-x.patch | 2 +- ...-Add-ability-to-boot-from-subvolumes.patch | 2 +- ...port-btrfs_subvol-and-btrfs_subvolid.patch | 2 +- 0176-grub2-btrfs-03-follow_default.patch | 2 +- 0177-grub2-btrfs-04-grub2-install.patch | 2 +- 0178-grub2-btrfs-05-grub2-mkconfig.patch | 2 +- 0179-grub2-btrfs-06-subvol-mount.patch | 2 +- ...ootable-Snapshot-submenu-in-grub.cfg.patch | 2 +- ...subvol-name-scheme-to-support-old-sn.patch | 2 +- ...-correctly-with-btrfs-snapshots-bsc-.patch | 2 +- ...ocate_pool-and-grub_efi_free_pool-wr.patch | 2 +- ...fi_.-memory-helpers-where-reasonable.patch | 2 +- 0185-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch | 2 +- ...c-sized-arrays-since-we-don-t-build-.patch | 2 +- 0187-don-t-ignore-const.patch | 2 +- 0188-don-t-use-int-for-efi-status.patch | 2 +- ...INIT-declare-its-function-prototypes.patch | 2 +- ...p-some-errors-in-the-linuxefi-loader.patch | 2 +- 0191-editenv-handle-relative-symlinks.patch | 2 +- ...e-libgrub.pp-depend-on-config-util.h.patch | 2 +- ...-efi-as-HFS-on-ppc-machines-in-grub-.patch | 2 +- ...20_linux_xen.in-Add-xen_boot-command.patch | 2 +- ...-figure-out-whether-multiboot2-shoul.patch | 2 +- ...d-xen-or-multiboot-2-modules-as-need.patch | 2 +- ...lt-tsc-calibration-method-to-pmtimer.patch | 2 +- ...-calibration-not-take-51-seconds-to-.patch | 2 +- 0199-align-struct-efi_variable-better.patch | 2 +- 0200-Add-quicksort-implementation.patch | 2 +- ...nd-support-to-parse-BootLoaderSpec-c.patch | 2 +- 0202-Add-BLS-support-to-grub-mkconfig.patch | 2 +- ...d-grub_exit-definition-for-grub-emu-.patch | 2 +- ...-backtrace-on-grub_abort-for-grub-em.patch | 2 +- ...-blscfg-command-for-the-emu-platform.patch | 2 +- ...nux-and-initrd-commands-for-grub-emu.patch | 2 +- 0207-Fix-the-efidir-in-grub-setpassword.patch | 2 +- 0208-Add-grub2-switch-to-blscfg.patch | 2 +- 0209-Add-grub_debug_enabled.patch | 2 +- 0210-make-better-backtraces.patch | 19 ++++++++++++++++--- ...w-our-startup-message-if-debug-is-se.patch | 4 ++-- ...-some-minor-include-path-weirdnesses.patch | 4 ++-- ...it-possible-to-enabled-build-id-sha1.patch | 4 ++-- ...f-grub_dprintf-without-the-file-line.patch | 4 ++-- ...dprintf-that-tells-us-load-addresses.patch | 4 ++-- 215 files changed, 235 insertions(+), 222 deletions(-) diff --git a/0001-Bump-version-to-2.03.patch b/0001-Bump-version-to-2.03.patch index 91769e5d..5d45d973 100644 --- a/0001-Bump-version-to-2.03.patch +++ b/0001-Bump-version-to-2.03.patch @@ -1,7 +1,7 @@ From b0bad6fd9449d3333fe1ab58953c0e6c1ce12c0d Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Wed, 3 May 2017 11:55:52 +0200 -Subject: [PATCH 001/215] Bump version to 2.03 +Subject: [PATCH 001/216] Bump version to 2.03 --- configure.ac | 2 +- diff --git a/0002-Remove-bashisms-from-tests.patch b/0002-Remove-bashisms-from-tests.patch index 0f18e26b..c720c94f 100644 --- a/0002-Remove-bashisms-from-tests.patch +++ b/0002-Remove-bashisms-from-tests.patch @@ -1,7 +1,7 @@ From 5a0c548ba388b343b0bb6d2a38888e7eac5bbb96 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 03:47:13 +0300 -Subject: [PATCH 002/215] Remove bashisms from tests. +Subject: [PATCH 002/216] Remove bashisms from tests. Those tests don't actually need bash. Just use common shebang. --- diff --git a/0003-fs-tester-make-sh-compatible.patch b/0003-fs-tester-make-sh-compatible.patch index cac83631..604c30d8 100644 --- a/0003-fs-tester-make-sh-compatible.patch +++ b/0003-fs-tester-make-sh-compatible.patch @@ -1,7 +1,7 @@ From 37865c2c4ad26cd5e947b08abf1fde8145699919 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 14:35:59 +0300 -Subject: [PATCH 003/215] fs-tester: make sh-compatible +Subject: [PATCH 003/216] fs-tester: make sh-compatible --- tests/util/grub-fs-tester.in | 306 ++++++++++++++++++++++++------------------- diff --git a/0004-support-busybox-date.patch b/0004-support-busybox-date.patch index 339b81f6..dcffc084 100644 --- a/0004-support-busybox-date.patch +++ b/0004-support-busybox-date.patch @@ -1,7 +1,7 @@ From b43b8cacc813c2c15347de1e35cc88d9aa912d22 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 14:31:36 +0300 -Subject: [PATCH 004/215] support busybox date. +Subject: [PATCH 004/216] support busybox date. Busybox date doesn't understand weekdays in -d input, so strip them beforehand. diff --git a/0005-Don-t-retrieve-fstime-when-it-s-not-useful.patch b/0005-Don-t-retrieve-fstime-when-it-s-not-useful.patch index 8842bb8b..6e69d36a 100644 --- a/0005-Don-t-retrieve-fstime-when-it-s-not-useful.patch +++ b/0005-Don-t-retrieve-fstime-when-it-s-not-useful.patch @@ -1,7 +1,7 @@ From 6dec3a26b37e128ded5d912e08abc5cee1592499 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 21:24:05 +0300 -Subject: [PATCH 005/215] Don't retrieve fstime when it's not useful. +Subject: [PATCH 005/216] Don't retrieve fstime when it's not useful. --- tests/util/grub-fs-tester.in | 48 ++++++++++++++++++++++---------------------- diff --git a/0006-Support-lseek64.patch b/0006-Support-lseek64.patch index 97167080..e2ad027f 100644 --- a/0006-Support-lseek64.patch +++ b/0006-Support-lseek64.patch @@ -1,7 +1,7 @@ From 608bec51128008afb81c9e3f297283e9f830a146 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 20:21:05 +0300 -Subject: [PATCH 006/215] Support lseek64. +Subject: [PATCH 006/216] Support lseek64. Android doesn't have 64-bit off_t, so use off64_t instead. --- diff --git a/0007-Use-SHELL-rather-than-bin-sh.patch b/0007-Use-SHELL-rather-than-bin-sh.patch index d1adee52..c1aec0c6 100644 --- a/0007-Use-SHELL-rather-than-bin-sh.patch +++ b/0007-Use-SHELL-rather-than-bin-sh.patch @@ -1,7 +1,7 @@ From c2ea443446b7feea868e54f94a87781f69820375 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 00:55:30 +0300 -Subject: [PATCH 007/215] Use $(SHELL) rather than /bin/sh. +Subject: [PATCH 007/216] Use $(SHELL) rather than /bin/sh. /bin/sh doesn't exist under termux. --- diff --git a/0008-po-Use-SHELL-rather-than-bin-sh.patch b/0008-po-Use-SHELL-rather-than-bin-sh.patch index 0c8db1c3..6a572fa5 100644 --- a/0008-po-Use-SHELL-rather-than-bin-sh.patch +++ b/0008-po-Use-SHELL-rather-than-bin-sh.patch @@ -1,7 +1,7 @@ From 4341f82af0b61d3dfbe675670d4105dc759c0df3 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 14:54:03 +0300 -Subject: [PATCH 008/215] po: Use @SHELL@ rather than /bin/sh. +Subject: [PATCH 008/216] po: Use @SHELL@ rather than /bin/sh. /bin/sh might not exist. --- diff --git a/0009-Add-termux-path-to-dict.patch b/0009-Add-termux-path-to-dict.patch index b32b08ef..04ad6f0b 100644 --- a/0009-Add-termux-path-to-dict.patch +++ b/0009-Add-termux-path-to-dict.patch @@ -1,7 +1,7 @@ From 1073ddb12078f3c8edbdb74bb8f5afc674983f40 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 14:52:48 +0300 -Subject: [PATCH 009/215] Add termux path to dict. +Subject: [PATCH 009/216] Add termux path to dict. --- tests/util/grub-fs-tester.in | 2 +- diff --git a/0010-Fix-shebang-for-termux.patch b/0010-Fix-shebang-for-termux.patch index 2db886c9..9e7ae40c 100644 --- a/0010-Fix-shebang-for-termux.patch +++ b/0010-Fix-shebang-for-termux.patch @@ -1,7 +1,7 @@ From a827807a1330d5ad619faa103bc7f12d89fc8bee Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Sun, 22 Jan 2017 20:22:34 +0300 -Subject: [PATCH 010/215] Fix shebang for termux. +Subject: [PATCH 010/216] Fix shebang for termux. Termux doesn't have a /bin/sh. So we needto use $SHELL. Keep /bin/sh as much as possible. diff --git a/0011-Add-strtoull-test.patch b/0011-Add-strtoull-test.patch index 769aeec5..ec03b564 100644 --- a/0011-Add-strtoull-test.patch +++ b/0011-Add-strtoull-test.patch @@ -1,7 +1,7 @@ From ede6c9689395499f98a4c14d76b97151b4de5f54 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Wed, 3 May 2017 12:58:15 +0200 -Subject: [PATCH 011/215] Add strtoull test. +Subject: [PATCH 011/216] Add strtoull test. --- grub-core/Makefile.core.def | 5 +++++ diff --git a/0012-strtoull-Fix-behaviour-on-chars-between-9-and-a.patch b/0012-strtoull-Fix-behaviour-on-chars-between-9-and-a.patch index 5122a07a..fc3ad759 100644 --- a/0012-strtoull-Fix-behaviour-on-chars-between-9-and-a.patch +++ b/0012-strtoull-Fix-behaviour-on-chars-between-9-and-a.patch @@ -1,7 +1,7 @@ From dc6e1b5af83eb1c4290baf97c2d221c0865127be Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Wed, 10 Aug 2016 17:49:42 +0200 -Subject: [PATCH 012/215] strtoull: Fix behaviour on chars between '9' and 'a'. +Subject: [PATCH 012/216] strtoull: Fix behaviour on chars between '9' and 'a'. Reported by: Aaron Miller --- diff --git a/0013-Add-Virtual-LAN-support.patch b/0013-Add-Virtual-LAN-support.patch index ead5af48..702becf3 100644 --- a/0013-Add-Virtual-LAN-support.patch +++ b/0013-Add-Virtual-LAN-support.patch @@ -1,7 +1,7 @@ From d9f7de0ae3c0c09cff7257c55418450261f3e082 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Mon, 23 Dec 2013 12:32:02 -0200 -Subject: [PATCH 013/215] Add Virtual LAN support. +Subject: [PATCH 013/216] Add Virtual LAN support. This patch adds support for virtual LAN (VLAN) tagging. VLAN tagging allows multiple VLANs in a bridged network to share the same physical network link diff --git a/0014-mkimage-Pass-layout-to-mkimage_generate_elfXX-rather.patch b/0014-mkimage-Pass-layout-to-mkimage_generate_elfXX-rather.patch index 48c69010..73b6b5d9 100644 --- a/0014-mkimage-Pass-layout-to-mkimage_generate_elfXX-rather.patch +++ b/0014-mkimage-Pass-layout-to-mkimage_generate_elfXX-rather.patch @@ -1,7 +1,7 @@ From a35ac854308b0af7c86c2c7b199f6abdfa2110b0 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 17:32:15 +0200 -Subject: [PATCH 014/215] mkimage: Pass layout to mkimage_generate_elfXX rather +Subject: [PATCH 014/216] mkimage: Pass layout to mkimage_generate_elfXX rather than some fields. This allows easier extension of this function without having too long of diff --git a/0015-Refactor-arm-uboot-code-to-make-it-genereic.patch b/0015-Refactor-arm-uboot-code-to-make-it-genereic.patch index e4cf2d97..08e426d4 100644 --- a/0015-Refactor-arm-uboot-code-to-make-it-genereic.patch +++ b/0015-Refactor-arm-uboot-code-to-make-it-genereic.patch @@ -1,7 +1,7 @@ From d08c9685149e7788001ac9a209baa1d84c3628e0 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 17:47:57 +0200 -Subject: [PATCH 015/215] Refactor arm-uboot code to make it genereic. +Subject: [PATCH 015/216] Refactor arm-uboot code to make it genereic. arm-coreboot startup code can be very similar to arm-uboot but current code has U-Boot specific references. So split U-Boot part from generic part. diff --git a/0016-coreboot-Split-parts-that-are-platform-independent.patch b/0016-coreboot-Split-parts-that-are-platform-independent.patch index 7b54b53b..bb731040 100644 --- a/0016-coreboot-Split-parts-that-are-platform-independent.patch +++ b/0016-coreboot-Split-parts-that-are-platform-independent.patch @@ -1,7 +1,7 @@ From 461bfab7b7e47fd0a76bf6076a438af1b7e2184a Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 19:06:22 +0200 -Subject: [PATCH 016/215] coreboot: Split parts that are platform-independent. +Subject: [PATCH 016/216] coreboot: Split parts that are platform-independent. We currently assume that coreboot is always i386, it's no longer the case, so split i386-coreboot parts from generic coreboot code. diff --git a/0017-Rename-uboot-halt.c-to-dummy-halt.c.patch b/0017-Rename-uboot-halt.c-to-dummy-halt.c.patch index 2e40e3b7..fa7e44f7 100644 --- a/0017-Rename-uboot-halt.c-to-dummy-halt.c.patch +++ b/0017-Rename-uboot-halt.c-to-dummy-halt.c.patch @@ -1,7 +1,7 @@ From 1daa716c7017f1858de117a20a31da66815435c5 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 19:31:55 +0200 -Subject: [PATCH 017/215] Rename uboot/halt.c to dummy/halt.c. +Subject: [PATCH 017/216] Rename uboot/halt.c to dummy/halt.c. It's not U-Boot specific and it's a stub. --- diff --git a/0018-Rename-uboot-datetime-to-dummy-datetime.patch b/0018-Rename-uboot-datetime-to-dummy-datetime.patch index 4a334771..dd22a345 100644 --- a/0018-Rename-uboot-datetime-to-dummy-datetime.patch +++ b/0018-Rename-uboot-datetime-to-dummy-datetime.patch @@ -1,7 +1,7 @@ From 9808c3ef956c6472a96790b60cf74f4eaa742010 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 19:37:29 +0200 -Subject: [PATCH 018/215] Rename uboot/datetime to dummy/datetime. +Subject: [PATCH 018/216] Rename uboot/datetime to dummy/datetime. It's just a stub and is not UBoot-specific. --- diff --git a/0019-arm-coreboot-Start-new-port.patch b/0019-arm-coreboot-Start-new-port.patch index f11b1654..6da1bd9c 100644 --- a/0019-arm-coreboot-Start-new-port.patch +++ b/0019-arm-coreboot-Start-new-port.patch @@ -1,7 +1,7 @@ From 24e37a885269bdec9b27babf1da0bba3692d55c0 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 20:53:28 +0200 -Subject: [PATCH 019/215] arm-coreboot: Start new port. +Subject: [PATCH 019/216] arm-coreboot: Start new port. --- configure.ac | 2 + diff --git a/0020-Add-support-for-device-tree-based-drivers.patch b/0020-Add-support-for-device-tree-based-drivers.patch index 52c96da4..2ad7206c 100644 --- a/0020-Add-support-for-device-tree-based-drivers.patch +++ b/0020-Add-support-for-device-tree-based-drivers.patch @@ -1,7 +1,7 @@ From fcbb723d4b1f7ad4687191562621dd0eb25f4d9e Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:19:59 +0200 -Subject: [PATCH 020/215] Add support for device-tree-based drivers. +Subject: [PATCH 020/216] Add support for device-tree-based drivers. --- grub-core/Makefile.core.def | 2 + diff --git a/0021-arm-coreboot-Support-for-vexpress-timer.patch b/0021-arm-coreboot-Support-for-vexpress-timer.patch index 445bd269..b0c498c1 100644 --- a/0021-arm-coreboot-Support-for-vexpress-timer.patch +++ b/0021-arm-coreboot-Support-for-vexpress-timer.patch @@ -1,7 +1,7 @@ From 5a865b37866ee8cd64c080bc6fb1e537f8e2b3c6 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:26:36 +0200 -Subject: [PATCH 021/215] arm-coreboot: Support for vexpress timer. +Subject: [PATCH 021/216] arm-coreboot: Support for vexpress timer. --- grub-core/kern/arm/coreboot/timer.c | 36 ++++++++++++++++++++++++++++++++++++ diff --git a/0022-arm-coreboot-Export-FDT-routines.patch b/0022-arm-coreboot-Export-FDT-routines.patch index 23159344..f9b5bfef 100644 --- a/0022-arm-coreboot-Export-FDT-routines.patch +++ b/0022-arm-coreboot-Export-FDT-routines.patch @@ -1,7 +1,7 @@ From ac6b41b89fbb82a3ba843a7ed19115d81432b604 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:29:48 +0200 -Subject: [PATCH 022/215] arm-coreboot: Export FDT routines. +Subject: [PATCH 022/216] arm-coreboot: Export FDT routines. We need to use them from modules as well. --- diff --git a/0023-at_keyboard-Split-protocol-from-controller-code.patch b/0023-at_keyboard-Split-protocol-from-controller-code.patch index 01c33fed..add73ff1 100644 --- a/0023-at_keyboard-Split-protocol-from-controller-code.patch +++ b/0023-at_keyboard-Split-protocol-from-controller-code.patch @@ -1,7 +1,7 @@ From 216950a4eea1a1ead1c28eaca94e34ea2ef2ad19 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:41:22 +0200 -Subject: [PATCH 023/215] at_keyboard: Split protocol from controller code. +Subject: [PATCH 023/216] at_keyboard: Split protocol from controller code. On vexpress controller is different but protocol is the same, so reuse the code. diff --git a/0024-arm_coreboot-Support-keyboard-for-vexpress.patch b/0024-arm_coreboot-Support-keyboard-for-vexpress.patch index e6ecae34..f196493a 100644 --- a/0024-arm_coreboot-Support-keyboard-for-vexpress.patch +++ b/0024-arm_coreboot-Support-keyboard-for-vexpress.patch @@ -1,7 +1,7 @@ From 848bed9d92cf20e9f25db4c69a20efad23996ca0 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:42:37 +0200 -Subject: [PATCH 024/215] arm_coreboot: Support keyboard for vexpress. +Subject: [PATCH 024/216] arm_coreboot: Support keyboard for vexpress. --- grub-core/Makefile.core.def | 3 + diff --git a/0025-arm_coreboot-Support-grub-mkstandalone.patch b/0025-arm_coreboot-Support-grub-mkstandalone.patch index 639fba55..beec3166 100644 --- a/0025-arm_coreboot-Support-grub-mkstandalone.patch +++ b/0025-arm_coreboot-Support-grub-mkstandalone.patch @@ -1,7 +1,7 @@ From 3edabad8fefb112cc4b2d43be6e97d43c909ceee Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:59:48 +0200 -Subject: [PATCH 025/215] arm_coreboot: Support grub-mkstandalone. +Subject: [PATCH 025/216] arm_coreboot: Support grub-mkstandalone. --- util/grub-install-common.c | 12 ++++++++++-- diff --git a/0026-arm_coreboot-Support-loading-linux-images.patch b/0026-arm_coreboot-Support-loading-linux-images.patch index f90aa0e9..9f27b791 100644 --- a/0026-arm_coreboot-Support-loading-linux-images.patch +++ b/0026-arm_coreboot-Support-loading-linux-images.patch @@ -1,7 +1,7 @@ From 656c3b0d7fbe23f0e1ab561c8faa4ac4a37364d1 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 22:00:06 +0200 -Subject: [PATCH 026/215] arm_coreboot: Support loading linux images. +Subject: [PATCH 026/216] arm_coreboot: Support loading linux images. --- grub-core/loader/arm/linux.c | 132 ++++++++++++++++++++++--------------------- diff --git a/0027-arm_coreboot-Support-DMA.patch b/0027-arm_coreboot-Support-DMA.patch index 098d25c9..a5814a64 100644 --- a/0027-arm_coreboot-Support-DMA.patch +++ b/0027-arm_coreboot-Support-DMA.patch @@ -1,7 +1,7 @@ From 265292f2b0da0eb414c409871ba0f94a99ec33c1 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 22:06:04 +0200 -Subject: [PATCH 027/215] arm_coreboot: Support DMA. +Subject: [PATCH 027/216] arm_coreboot: Support DMA. This is needed to support USB and some other busses. --- diff --git a/0028-ehci-Split-core-code-from-PCI-part.patch b/0028-ehci-Split-core-code-from-PCI-part.patch index 7433947d..e4af4e52 100644 --- a/0028-ehci-Split-core-code-from-PCI-part.patch +++ b/0028-ehci-Split-core-code-from-PCI-part.patch @@ -1,7 +1,7 @@ From 058df7b5a9cc7aaa9872eaa916b715544a8f9840 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 22:10:26 +0200 -Subject: [PATCH 028/215] ehci: Split core code from PCI part. +Subject: [PATCH 028/216] ehci: Split core code from PCI part. On ARM often EHCI is present without PCI and just declared in device tree. So splitcore from PCI part. diff --git a/0029-arm_coreboot-Support-EHCI.patch b/0029-arm_coreboot-Support-EHCI.patch index efd79d60..0b929333 100644 --- a/0029-arm_coreboot-Support-EHCI.patch +++ b/0029-arm_coreboot-Support-EHCI.patch @@ -1,7 +1,7 @@ From d11ced1e1fb93676942e51618eb53c140f541890 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 22:14:28 +0200 -Subject: [PATCH 029/215] arm_coreboot: Support EHCI. +Subject: [PATCH 029/216] arm_coreboot: Support EHCI. --- grub-core/Makefile.core.def | 2 ++ diff --git a/0030-Fix-bug-on-FDT-nodes-with-compatible-property.patch b/0030-Fix-bug-on-FDT-nodes-with-compatible-property.patch index c243f64b..b6960156 100644 --- a/0030-Fix-bug-on-FDT-nodes-with-compatible-property.patch +++ b/0030-Fix-bug-on-FDT-nodes-with-compatible-property.patch @@ -1,7 +1,7 @@ From 4f8471532d454b2db96434c28bf7105ed69e0f4d Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 08:39:40 +0200 -Subject: [PATCH 030/215] Fix bug on FDT nodes with compatible property +Subject: [PATCH 030/216] Fix bug on FDT nodes with compatible property --- grub-core/bus/fdt.c | 2 ++ diff --git a/0031-fdtbus-Add-ability-to-send-receive-messages-on-paren.patch b/0031-fdtbus-Add-ability-to-send-receive-messages-on-paren.patch index c977a389..7f711c2b 100644 --- a/0031-fdtbus-Add-ability-to-send-receive-messages-on-paren.patch +++ b/0031-fdtbus-Add-ability-to-send-receive-messages-on-paren.patch @@ -1,7 +1,7 @@ From c4313c812dc14e82a774b580b5e34d40e7f3fae6 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 08:40:29 +0200 -Subject: [PATCH 031/215] fdtbus: Add ability to send/receive messages on +Subject: [PATCH 031/216] fdtbus: Add ability to send/receive messages on parent busses. --- diff --git a/0032-rk3288_spi-Add-SPI-driver.patch b/0032-rk3288_spi-Add-SPI-driver.patch index 00dac2ee..dc3374a6 100644 --- a/0032-rk3288_spi-Add-SPI-driver.patch +++ b/0032-rk3288_spi-Add-SPI-driver.patch @@ -1,7 +1,7 @@ From b0b1b81a11f8bae8ab9e8edd87ac3f4f7949d03b Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 08:42:14 +0200 -Subject: [PATCH 032/215] rk3288_spi: Add SPI driver +Subject: [PATCH 032/216] rk3288_spi: Add SPI driver --- grub-core/Makefile.core.def | 1 + diff --git a/0033-arm_coreboot-Add-Chromebook-keyboard-driver.patch b/0033-arm_coreboot-Add-Chromebook-keyboard-driver.patch index a6b81f25..97aa64c0 100644 --- a/0033-arm_coreboot-Add-Chromebook-keyboard-driver.patch +++ b/0033-arm_coreboot-Add-Chromebook-keyboard-driver.patch @@ -1,7 +1,7 @@ From 5c3fd1b135bd73c8e3467b9b635b25ca4d360a19 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 08:47:34 +0200 -Subject: [PATCH 033/215] arm_coreboot: Add Chromebook keyboard driver. +Subject: [PATCH 033/216] arm_coreboot: Add Chromebook keyboard driver. --- grub-core/term/arm/cros.c | 125 +++++++++++++++++++++++ diff --git a/0034-Missing-parts-of-previous-commit.patch b/0034-Missing-parts-of-previous-commit.patch index 9c00e963..2ca46000 100644 --- a/0034-Missing-parts-of-previous-commit.patch +++ b/0034-Missing-parts-of-previous-commit.patch @@ -1,7 +1,7 @@ From c6eaa982d12e3cfc5465dda5ea372774188b6b81 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 09:02:15 +0200 -Subject: [PATCH 034/215] Missing parts of previous commit +Subject: [PATCH 034/216] Missing parts of previous commit --- grub-core/Makefile.core.def | 2 ++ diff --git a/0035-coreboot-Changed-cbmemc-to-support-updated-console-f.patch b/0035-coreboot-Changed-cbmemc-to-support-updated-console-f.patch index 4fad8500..c9c7ffe1 100644 --- a/0035-coreboot-Changed-cbmemc-to-support-updated-console-f.patch +++ b/0035-coreboot-Changed-cbmemc-to-support-updated-console-f.patch @@ -1,7 +1,7 @@ From 70b555a52a065b2beb91e6fc97a6b358c931b303 Mon Sep 17 00:00:00 2001 From: Julius Werner Date: Tue, 9 May 2017 09:03:02 +0200 -Subject: [PATCH 035/215] coreboot: Changed cbmemc to support updated console +Subject: [PATCH 035/216] coreboot: Changed cbmemc to support updated console format from coreboot. --- diff --git a/0036-at_keyboard-Fix-falco-chromebook-case.patch b/0036-at_keyboard-Fix-falco-chromebook-case.patch index d40b4b03..84609738 100644 --- a/0036-at_keyboard-Fix-falco-chromebook-case.patch +++ b/0036-at_keyboard-Fix-falco-chromebook-case.patch @@ -1,7 +1,7 @@ From c4b8bec5fee4e30a165fd14a188cf3ab8eccd095 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 14:27:52 +0200 -Subject: [PATCH 036/215] at_keyboard: Fix falco chromebook case. +Subject: [PATCH 036/216] at_keyboard: Fix falco chromebook case. EC is slow, so we need few delays for it to toggle the bits correctly. diff --git a/0037-sparc64-Close-cdboot-ihandle.patch b/0037-sparc64-Close-cdboot-ihandle.patch index 2fc9ab43..8217a6dc 100644 --- a/0037-sparc64-Close-cdboot-ihandle.patch +++ b/0037-sparc64-Close-cdboot-ihandle.patch @@ -1,7 +1,7 @@ From bd4e40aadded7093908d786d03b4acf60b7b1707 Mon Sep 17 00:00:00 2001 From: Eric Snowberg Date: Thu, 11 May 2017 18:42:23 -0700 -Subject: [PATCH 037/215] sparc64: Close cdboot ihandle +Subject: [PATCH 037/216] sparc64: Close cdboot ihandle The ihandle is left open with a cd-core image. This will cause a delay booting grub from a virtual cdrom in a LDOM. It will also cause problems diff --git a/0038-arm64-xen_boot-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch b/0038-arm64-xen_boot-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch index 4829c487..d29b004a 100644 --- a/0038-arm64-xen_boot-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch +++ b/0038-arm64-xen_boot-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch @@ -1,7 +1,7 @@ From ae5817f1dcbf0b99f7a849f56afe442165317840 Mon Sep 17 00:00:00 2001 From: Julien Grall Date: Fri, 19 Feb 2016 16:28:52 +0000 -Subject: [PATCH 038/215] arm64/xen_boot: Fix Xen boot using GRUB2 on AARCH64 +Subject: [PATCH 038/216] arm64/xen_boot: Fix Xen boot using GRUB2 on AARCH64 Xen is currently crashing because of malformed compatible property for the boot module. This is because the property string is not diff --git a/0039-arm64-Add-nounzip-option-support-in-xen_module-comma.patch b/0039-arm64-Add-nounzip-option-support-in-xen_module-comma.patch index 42897ffa..ffd6f89d 100644 --- a/0039-arm64-Add-nounzip-option-support-in-xen_module-comma.patch +++ b/0039-arm64-Add-nounzip-option-support-in-xen_module-comma.patch @@ -1,7 +1,7 @@ From 8eed7be8a61c295df700e918744a984162378ca9 Mon Sep 17 00:00:00 2001 From: Fu Wei Date: Sun, 14 May 2017 15:43:45 +0800 -Subject: [PATCH 039/215] arm64: Add "--nounzip" option support in xen_module +Subject: [PATCH 039/216] arm64: Add "--nounzip" option support in xen_module command This patch adds "--nounzip" option support in order to diff --git a/0040-util-grub.d-20_linux_xen.in-Add-xen_boot-command-sup.patch b/0040-util-grub.d-20_linux_xen.in-Add-xen_boot-command-sup.patch index 14669942..5dfb73d3 100644 --- a/0040-util-grub.d-20_linux_xen.in-Add-xen_boot-command-sup.patch +++ b/0040-util-grub.d-20_linux_xen.in-Add-xen_boot-command-sup.patch @@ -1,7 +1,7 @@ From d33045ce7ffcb7c1e4a60c14d5ca64b36e3c5abe Mon Sep 17 00:00:00 2001 From: Fu Wei Date: Sun, 14 May 2017 15:43:46 +0800 -Subject: [PATCH 040/215] util/grub.d/20_linux_xen.in: Add xen_boot command +Subject: [PATCH 040/216] util/grub.d/20_linux_xen.in: Add xen_boot command support for aarch64 This patch adds the support of xen_boot command for aarch64: diff --git a/0041-arm64-Update-the-introduction-of-Xen-boot-commands-i.patch b/0041-arm64-Update-the-introduction-of-Xen-boot-commands-i.patch index e0f5d1ce..5355d1d8 100644 --- a/0041-arm64-Update-the-introduction-of-Xen-boot-commands-i.patch +++ b/0041-arm64-Update-the-introduction-of-Xen-boot-commands-i.patch @@ -1,7 +1,7 @@ From 26c2f306fd425d2c0348023b8dcb7eb40a01851a Mon Sep 17 00:00:00 2001 From: Fu Wei Date: Sun, 14 May 2017 15:43:47 +0800 -Subject: [PATCH 041/215] arm64: Update the introduction of Xen boot commands +Subject: [PATCH 041/216] arm64: Update the introduction of Xen boot commands in docs/grub.texi delete: xen_linux, xen_initrd, xen_xsm diff --git a/0042-sparc64-Don-t-use-devspec-to-determine-the-OBP-path.patch b/0042-sparc64-Don-t-use-devspec-to-determine-the-OBP-path.patch index 40ad9a9e..e22b55c0 100644 --- a/0042-sparc64-Don-t-use-devspec-to-determine-the-OBP-path.patch +++ b/0042-sparc64-Don-t-use-devspec-to-determine-the-OBP-path.patch @@ -1,7 +1,7 @@ From f8679cedff703b437171f4708d46adbfcff80a65 Mon Sep 17 00:00:00 2001 From: Eric Snowberg Date: Thu, 18 May 2017 17:10:22 -0600 -Subject: [PATCH 042/215] sparc64: Don't use devspec to determine the OBP path +Subject: [PATCH 042/216] sparc64: Don't use devspec to determine the OBP path Don't use devspec to determine the OBP path on SPARC hardware. Within all versions of Linux on SPARC, the devspec returns one of three values: diff --git a/0043-Allow-GRUB-to-mount-ext2-3-4-filesystems-that-have-t.patch b/0043-Allow-GRUB-to-mount-ext2-3-4-filesystems-that-have-t.patch index 390f3801..d1b26ab8 100644 --- a/0043-Allow-GRUB-to-mount-ext2-3-4-filesystems-that-have-t.patch +++ b/0043-Allow-GRUB-to-mount-ext2-3-4-filesystems-that-have-t.patch @@ -1,7 +1,7 @@ From 734668238fcc0ef691a080839e04f33854fa133a Mon Sep 17 00:00:00 2001 From: Eric Biggers Date: Thu, 29 Jun 2017 13:27:49 +0000 -Subject: [PATCH 043/215] Allow GRUB to mount ext2/3/4 filesystems that have +Subject: [PATCH 043/216] Allow GRUB to mount ext2/3/4 filesystems that have the encryption feature. On such a filesystem, inodes may have EXT4_ENCRYPT_FLAG set. diff --git a/0044-ehci-Fix-compilation-for-amd64.patch b/0044-ehci-Fix-compilation-for-amd64.patch index 9063fa45..b841e5d0 100644 --- a/0044-ehci-Fix-compilation-for-amd64.patch +++ b/0044-ehci-Fix-compilation-for-amd64.patch @@ -1,7 +1,7 @@ From edb37fb30bbc8a3b6bec67911c7200e4eb071127 Mon Sep 17 00:00:00 2001 From: phcoder Date: Sun, 9 Jul 2017 20:58:31 +0200 -Subject: [PATCH 044/215] ehci: Fix compilation for amd64 +Subject: [PATCH 044/216] ehci: Fix compilation for amd64 --- grub-core/bus/usb/ehci.c | 8 ++++---- diff --git a/0045-cache-Fix-compilation-for-ppc-sparc-and-arm64.patch b/0045-cache-Fix-compilation-for-ppc-sparc-and-arm64.patch index 2c978dc9..6f2c7f7c 100644 --- a/0045-cache-Fix-compilation-for-ppc-sparc-and-arm64.patch +++ b/0045-cache-Fix-compilation-for-ppc-sparc-and-arm64.patch @@ -1,7 +1,7 @@ From d8901e3ba115d705c9c08ecedd201aca8b4867b8 Mon Sep 17 00:00:00 2001 From: phcoder Date: Sun, 9 Jul 2017 20:59:15 +0200 -Subject: [PATCH 045/215] cache: Fix compilation for ppc, sparc and arm64 +Subject: [PATCH 045/216] cache: Fix compilation for ppc, sparc and arm64 --- include/grub/cache.h | 4 +++- diff --git a/0046-ehci-Fix-compilation-on-i386.patch b/0046-ehci-Fix-compilation-on-i386.patch index ed7551bc..098d08b8 100644 --- a/0046-ehci-Fix-compilation-on-i386.patch +++ b/0046-ehci-Fix-compilation-on-i386.patch @@ -1,7 +1,7 @@ From 284afab081ef7ed7db2c59151853aa3c92d988f2 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Sun, 9 Jul 2017 21:31:19 +0200 -Subject: [PATCH 046/215] ehci: Fix compilation on i386 +Subject: [PATCH 046/216] ehci: Fix compilation on i386 --- grub-core/bus/usb/ehci.c | 4 ++-- diff --git a/0047-crypto-Fix-use-after-free.patch b/0047-crypto-Fix-use-after-free.patch index 3a418a37..9633abe0 100644 --- a/0047-crypto-Fix-use-after-free.patch +++ b/0047-crypto-Fix-use-after-free.patch @@ -1,7 +1,7 @@ From a0fe0c26aa8a1c0ad66d9527611bd726b849c623 Mon Sep 17 00:00:00 2001 From: AppChecker Date: Sun, 9 Jul 2017 21:57:35 +0200 -Subject: [PATCH 047/215] crypto: Fix use after free. +Subject: [PATCH 047/216] crypto: Fix use after free. Reported by: AppChecker Transformed to patch by: Satish Govindarajan diff --git a/0048-arm-efi-Fix-compilation.patch b/0048-arm-efi-Fix-compilation.patch index d7b401cb..c0ad5757 100644 --- a/0048-arm-efi-Fix-compilation.patch +++ b/0048-arm-efi-Fix-compilation.patch @@ -1,7 +1,7 @@ From cb8b7e4e36bf32dccbbba8252aa44ad3ada4fbc1 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Sun, 9 Jul 2017 21:48:37 +0000 -Subject: [PATCH 048/215] arm-efi: Fix compilation +Subject: [PATCH 048/216] arm-efi: Fix compilation --- grub-core/loader/arm/linux.c | 8 ++++---- diff --git a/0049-fdt-silence-clang-warning.patch b/0049-fdt-silence-clang-warning.patch index 85f2db02..5257448d 100644 --- a/0049-fdt-silence-clang-warning.patch +++ b/0049-fdt-silence-clang-warning.patch @@ -1,7 +1,7 @@ From 68d54b55f49249c5e0517bf189f0f3df7ee6a36f Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 10 Jul 2017 01:34:22 +0000 -Subject: [PATCH 049/215] fdt: silence clang warning. +Subject: [PATCH 049/216] fdt: silence clang warning. --- grub-core/lib/fdt.c | 3 ++- diff --git a/0050-Fix-a-segfault-in-lsefi.patch b/0050-Fix-a-segfault-in-lsefi.patch index fc7703ce..1f781480 100644 --- a/0050-Fix-a-segfault-in-lsefi.patch +++ b/0050-Fix-a-segfault-in-lsefi.patch @@ -1,7 +1,7 @@ From e8ab5a1a9e2889eb59d1fa494ba441a53698dcd2 Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Wed, 19 Jul 2017 15:47:41 -0400 -Subject: [PATCH 050/215] Fix a segfault in lsefi +Subject: [PATCH 050/216] Fix a segfault in lsefi when protocols_per_handle returns error, we can't use the pointers we passed to it, and that includes trusting num_protocols. diff --git a/0051-zfs-remove-size_t-typedef-and-use-grub_size_t-instea.patch b/0051-zfs-remove-size_t-typedef-and-use-grub_size_t-instea.patch index 0a0fe177..da31a819 100644 --- a/0051-zfs-remove-size_t-typedef-and-use-grub_size_t-instea.patch +++ b/0051-zfs-remove-size_t-typedef-and-use-grub_size_t-instea.patch @@ -1,7 +1,7 @@ From fa42786264cef98c56e972b3bb6b8448000e1c70 Mon Sep 17 00:00:00 2001 From: Pete Batard Date: Thu, 3 Aug 2017 15:46:15 +0100 -Subject: [PATCH 051/215] zfs: remove size_t typedef and use grub_size_t +Subject: [PATCH 051/216] zfs: remove size_t typedef and use grub_size_t instead * Prevents some toolchains from issuing a warning on size_t redef. diff --git a/0052-udf-Fix-reading-label-lvd.ident-is-dstring.patch b/0052-udf-Fix-reading-label-lvd.ident-is-dstring.patch index 7aa0f12a..301e16a9 100644 --- a/0052-udf-Fix-reading-label-lvd.ident-is-dstring.patch +++ b/0052-udf-Fix-reading-label-lvd.ident-is-dstring.patch @@ -1,7 +1,7 @@ From 76188809d5ca40c5285b0ab202b5edea7be3f04d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pali=20Roh=C3=A1r?= Date: Thu, 22 Jun 2017 14:33:17 +0200 -Subject: [PATCH 052/215] udf: Fix reading label, lvd.ident is dstring +Subject: [PATCH 052/216] udf: Fix reading label, lvd.ident is dstring UDF dstring has stored length in the last byte of buffer. Therefore last byte is not part of recorded characters. And empty string in dstring is diff --git a/0053-grub-core-fs-udf.c-Add-support-for-UUID.patch b/0053-grub-core-fs-udf.c-Add-support-for-UUID.patch index ad500252..810e9c3b 100644 --- a/0053-grub-core-fs-udf.c-Add-support-for-UUID.patch +++ b/0053-grub-core-fs-udf.c-Add-support-for-UUID.patch @@ -1,7 +1,7 @@ From 435fa75e01ef40917239c7f775e505e86f70d202 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pali=20Roh=C3=A1r?= Date: Thu, 22 Jun 2017 14:42:16 +0200 -Subject: [PATCH 053/215] * grub-core/fs/udf.c: Add support for UUID +Subject: [PATCH 053/216] * grub-core/fs/udf.c: Add support for UUID Use same algorithm as in libblkid from util-linux v2.30. diff --git a/0054-mkrescue-Check-xorriso-presence-before-doing-anythin.patch b/0054-mkrescue-Check-xorriso-presence-before-doing-anythin.patch index 92be0c97..6b96db41 100644 --- a/0054-mkrescue-Check-xorriso-presence-before-doing-anythin.patch +++ b/0054-mkrescue-Check-xorriso-presence-before-doing-anythin.patch @@ -1,7 +1,7 @@ From 9e962fd3c42081e2eef1f99a0eaab38fd04d2620 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 7 Aug 2017 18:05:17 +0200 -Subject: [PATCH 054/215] mkrescue: Check xorriso presence before doing +Subject: [PATCH 054/216] mkrescue: Check xorriso presence before doing anything else. mkrescue can't do anything useful without xorriso, so abort early if it's diff --git a/0055-Fail-if-xorriso-failed.patch b/0055-Fail-if-xorriso-failed.patch index 44e8c159..3e664264 100644 --- a/0055-Fail-if-xorriso-failed.patch +++ b/0055-Fail-if-xorriso-failed.patch @@ -1,7 +1,7 @@ From e66dc5d71ebfc9763420a76c274e6980d54641c3 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 7 Aug 2017 18:08:39 +0200 -Subject: [PATCH 055/215] Fail if xorriso failed. +Subject: [PATCH 055/216] Fail if xorriso failed. If xorriso failed most likely we didn't generate a meaningful image. --- diff --git a/0056-efi-refactor-grub_efi_allocate_pages.patch b/0056-efi-refactor-grub_efi_allocate_pages.patch index fe332c0c..5420fa29 100644 --- a/0056-efi-refactor-grub_efi_allocate_pages.patch +++ b/0056-efi-refactor-grub_efi_allocate_pages.patch @@ -1,7 +1,7 @@ From dd5fde2df83c5c03b7ba04d2cc5b7be96de8da7b Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:23 +0100 -Subject: [PATCH 056/215] efi: refactor grub_efi_allocate_pages +Subject: [PATCH 056/216] efi: refactor grub_efi_allocate_pages Expose a new function, grub_efi_allocate_pages_real(), making it possible to specify allocation type and memory type as supported by the UEFI diff --git a/0057-Remove-grub_efi_allocate_pages.patch b/0057-Remove-grub_efi_allocate_pages.patch index 1a1a6610..52fbf351 100644 --- a/0057-Remove-grub_efi_allocate_pages.patch +++ b/0057-Remove-grub_efi_allocate_pages.patch @@ -1,7 +1,7 @@ From 4bc909bf89f5b4ff86c9e4e609d4fe0c11a66b0c Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 7 Aug 2017 18:33:29 +0200 -Subject: [PATCH 057/215] Remove grub_efi_allocate_pages. +Subject: [PATCH 057/216] Remove grub_efi_allocate_pages. grub_efi_allocate_pages Essentially does 2 unrelated things: * Allocate at fixed address. diff --git a/0058-efi-move-fdt-helper-library.patch b/0058-efi-move-fdt-helper-library.patch index 45701879..eec465b4 100644 --- a/0058-efi-move-fdt-helper-library.patch +++ b/0058-efi-move-fdt-helper-library.patch @@ -1,7 +1,7 @@ From 8c9465fac901caac6802d6872a1374518b001517 Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:24 +0100 -Subject: [PATCH 058/215] efi: move fdt helper library +Subject: [PATCH 058/216] efi: move fdt helper library There is nothing ARM64 (or even ARM) specific about the efi fdt helper library, which is used for locating or overriding a firmware-provided diff --git a/0059-efi-Add-GRUB_PE32_MAGIC-definition.patch b/0059-efi-Add-GRUB_PE32_MAGIC-definition.patch index 922de546..355b6f2a 100644 --- a/0059-efi-Add-GRUB_PE32_MAGIC-definition.patch +++ b/0059-efi-Add-GRUB_PE32_MAGIC-definition.patch @@ -1,7 +1,7 @@ From c5841ba7f0d14c193f20854e7e55b4f7ce9207d5 Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:25 +0100 -Subject: [PATCH 059/215] efi: Add GRUB_PE32_MAGIC definition +Subject: [PATCH 059/216] efi: Add GRUB_PE32_MAGIC definition Add a generic GRUB_PE32_MAGIC definition for the PE 'MZ' tag and delete the existing one in arm64/linux.h. diff --git a/0060-arm64-linux-loader-improve-type-portability.patch b/0060-arm64-linux-loader-improve-type-portability.patch index d86de75a..5be24c54 100644 --- a/0060-arm64-linux-loader-improve-type-portability.patch +++ b/0060-arm64-linux-loader-improve-type-portability.patch @@ -1,7 +1,7 @@ From 91212e0aa07e704a61e4540c18a27f149f5e51c3 Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:26 +0100 -Subject: [PATCH 060/215] arm64 linux loader: improve type portability +Subject: [PATCH 060/216] arm64 linux loader: improve type portability In preparation for turning this into a common loader for 32-bit and 64-bit platforms, ensure the code will compile cleanly for either. diff --git a/0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch b/0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch index f725ebda..edcfbbe3 100644 --- a/0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch +++ b/0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch @@ -1,7 +1,7 @@ From f826330683675f0deb55b58fd229afd7d65fb053 Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:32 +0100 -Subject: [PATCH 061/215] efi: change heap allocation type to +Subject: [PATCH 061/216] efi: change heap allocation type to GRUB_EFI_LOADER_CODE With upcoming changes to EDK2, allocations of type EFI_LOADER_DATA may diff --git a/0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch b/0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch index a8a0056a..d389a044 100644 --- a/0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch +++ b/0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch @@ -1,7 +1,7 @@ From bdd89d239cd9b4089630bfb5ec862aab8086dca2 Mon Sep 17 00:00:00 2001 From: Pete Batard Date: Mon, 7 Aug 2017 16:20:30 +0100 -Subject: [PATCH 062/215] core: use GRUB_TERM_ definitions when handling term +Subject: [PATCH 062/216] core: use GRUB_TERM_ definitions when handling term characters * Also use hex value for GRUB_TERM_ESC as '\e' is not in the C standard and is not understood by some compilers diff --git a/0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch b/0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch index 8738ce1b..2bb5af42 100644 --- a/0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch +++ b/0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch @@ -1,7 +1,7 @@ From 1deebd85ef87cc581e995ce0a51dc0802ac9c367 Mon Sep 17 00:00:00 2001 From: Pete Batard Date: Mon, 7 Aug 2017 16:23:12 +0100 -Subject: [PATCH 063/215] io: add a GRUB_GZ prefix to gzio specific defines +Subject: [PATCH 063/216] io: add a GRUB_GZ prefix to gzio specific defines * This is done to avoid a conflict with a PACKED define in the EDK2 --- diff --git a/0064-info-in-builddir.patch b/0064-info-in-builddir.patch index 68c8e995..6c53dbd5 100644 --- a/0064-info-in-builddir.patch +++ b/0064-info-in-builddir.patch @@ -1,7 +1,7 @@ From 5cf0df8753c19e83251c7244cafe38869a65060f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 8 Aug 2017 13:08:59 -0400 -Subject: [PATCH 064/215] info-in-builddir +Subject: [PATCH 064/216] info-in-builddir --- docs/Makefile.am | 2 +- diff --git a/0065-re-write-.gitignore.patch b/0065-re-write-.gitignore.patch index 664de872..1785d5e1 100644 --- a/0065-re-write-.gitignore.patch +++ b/0065-re-write-.gitignore.patch @@ -1,7 +1,7 @@ From ff9da35fd789354cc1490b75893e765771808352 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 8 Aug 2017 12:48:04 -0400 -Subject: [PATCH 065/215] re-write .gitignore +Subject: [PATCH 065/216] re-write .gitignore --- .gitignore | 352 ++++++++++++-------------------------- diff --git a/0066-IBM-client-architecture-CAS-reboot-support.patch b/0066-IBM-client-architecture-CAS-reboot-support.patch index 160d17bf..236c35d7 100644 --- a/0066-IBM-client-architecture-CAS-reboot-support.patch +++ b/0066-IBM-client-architecture-CAS-reboot-support.patch @@ -1,7 +1,7 @@ From 34423216f8f3d7ce6086e2f1ee9869407e6a2221 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Thu, 20 Sep 2012 18:07:39 -0300 -Subject: [PATCH 066/215] IBM client architecture (CAS) reboot support +Subject: [PATCH 066/216] IBM client architecture (CAS) reboot support This is an implementation of IBM client architecture (CAS) reboot for GRUB. diff --git a/0067-for-ppc-reset-console-display-attr-when-clear-screen.patch b/0067-for-ppc-reset-console-display-attr-when-clear-screen.patch index 5073fd97..e1be0327 100644 --- a/0067-for-ppc-reset-console-display-attr-when-clear-screen.patch +++ b/0067-for-ppc-reset-console-display-attr-when-clear-screen.patch @@ -1,7 +1,7 @@ From 070dc282d3cc6602571296e90945df9d4671aecb Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Wed, 24 Apr 2013 10:51:48 -0300 -Subject: [PATCH 067/215] for ppc, reset console display attr when clear screen +Subject: [PATCH 067/216] for ppc, reset console display attr when clear screen v2: Also use \x0c instead of a literal ^L to make future patches less awkward. diff --git a/0068-Disable-GRUB-video-support-for-IBM-power-machines.patch b/0068-Disable-GRUB-video-support-for-IBM-power-machines.patch index 9c7a23bf..52e8fcdf 100644 --- a/0068-Disable-GRUB-video-support-for-IBM-power-machines.patch +++ b/0068-Disable-GRUB-video-support-for-IBM-power-machines.patch @@ -1,7 +1,7 @@ From 4e31478fdf4cda470305c1bb2acb9b820e790757 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 11 Jun 2013 15:14:05 -0300 -Subject: [PATCH 068/215] Disable GRUB video support for IBM power machines +Subject: [PATCH 068/216] Disable GRUB video support for IBM power machines Should fix the problem in bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=973205 diff --git a/0069-Honor-a-symlink-when-generating-configuration-by-gru.patch b/0069-Honor-a-symlink-when-generating-configuration-by-gru.patch index 2da0f6af..406b5ec4 100644 --- a/0069-Honor-a-symlink-when-generating-configuration-by-gru.patch +++ b/0069-Honor-a-symlink-when-generating-configuration-by-gru.patch @@ -1,7 +1,7 @@ From 35535549324923af7fecf79cc739baba48246f21 Mon Sep 17 00:00:00 2001 From: Marcel Kolaja Date: Tue, 21 Jan 2014 10:57:08 -0500 -Subject: [PATCH 069/215] Honor a symlink when generating configuration by +Subject: [PATCH 069/216] Honor a symlink when generating configuration by grub2-mkconfig Honor a symlink when generating configuration by grub2-mkconfig, so that diff --git a/0070-Move-bash-completion-script-922997.patch b/0070-Move-bash-completion-script-922997.patch index 7547df32..4a15fea9 100644 --- a/0070-Move-bash-completion-script-922997.patch +++ b/0070-Move-bash-completion-script-922997.patch @@ -1,7 +1,7 @@ From 999bbc2002275efce284aed6e1e31b3ca351fa19 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 3 Apr 2013 14:35:34 -0400 -Subject: [PATCH 070/215] Move bash completion script (#922997) +Subject: [PATCH 070/216] Move bash completion script (#922997) Apparently these go in a new place now. --- diff --git a/0071-Update-to-minilzo-2.08.patch b/0071-Update-to-minilzo-2.08.patch index 32d0c714..10af846c 100644 --- a/0071-Update-to-minilzo-2.08.patch +++ b/0071-Update-to-minilzo-2.08.patch @@ -1,7 +1,7 @@ From c0977f7fd42e16cc568af7ae667a2aeda85eb583 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Dec 2014 15:36:09 -0500 -Subject: [PATCH 071/215] Update to minilzo-2.08 +Subject: [PATCH 071/216] Update to minilzo-2.08 This fixes CVE-2014-4607 - lzo: lzo1x_decompress_safe() integer overflow diff --git a/0072-Allow-fallback-to-include-entries-by-title-not-just-.patch b/0072-Allow-fallback-to-include-entries-by-title-not-just-.patch index 0fb86044..75d35ce4 100644 --- a/0072-Allow-fallback-to-include-entries-by-title-not-just-.patch +++ b/0072-Allow-fallback-to-include-entries-by-title-not-just-.patch @@ -1,7 +1,7 @@ From 15e9ccc8abd5621107788bea6ae6f2bdb27a3ed3 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 5 Sep 2014 10:07:04 -0400 -Subject: [PATCH 072/215] Allow "fallback" to include entries by title, not +Subject: [PATCH 072/216] Allow "fallback" to include entries by title, not just number. Resolves: rhbz#1026084 diff --git a/0073-Add-GRUB_DISABLE_UUID.patch b/0073-Add-GRUB_DISABLE_UUID.patch index aa2cd130..b183520d 100644 --- a/0073-Add-GRUB_DISABLE_UUID.patch +++ b/0073-Add-GRUB_DISABLE_UUID.patch @@ -1,7 +1,7 @@ From 87602724b509a60628623baabf5a2c7741a68884 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Sep 2014 16:49:25 -0400 -Subject: [PATCH 073/215] Add GRUB_DISABLE_UUID. +Subject: [PATCH 073/216] Add GRUB_DISABLE_UUID. This will cause "search --fs-uuid --set=root ..." not to be generated by grub2-mkconfig, and instead simply attempt to use the grub device name diff --git a/0074-Make-exit-take-a-return-code.patch b/0074-Make-exit-take-a-return-code.patch index 7c6494ef..f92dcf96 100644 --- a/0074-Make-exit-take-a-return-code.patch +++ b/0074-Make-exit-take-a-return-code.patch @@ -1,7 +1,7 @@ From 68d514b51b81911d8359d7825618112dae4a44d9 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 26 Feb 2014 21:49:12 -0500 -Subject: [PATCH 074/215] Make "exit" take a return code. +Subject: [PATCH 074/216] Make "exit" take a return code. This adds "exit" with a return code. With this patch, any "exit" command /may/ include a return code, and on platforms that support diff --git a/0075-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch b/0075-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch index 490c6f2f..81d0f026 100644 --- a/0075-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch +++ b/0075-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch @@ -1,7 +1,7 @@ From 126f6952b853ea67e784650ed12f365ab7988f51 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 22 Jul 2015 11:21:01 -0400 -Subject: [PATCH 075/215] Mark po/exclude.pot as binary so git won't try to +Subject: [PATCH 075/216] Mark po/exclude.pot as binary so git won't try to diff nonprintables. Signed-off-by: Peter Jones diff --git a/0076-Make-efi-machines-load-an-env-block-from-a-variable.patch b/0076-Make-efi-machines-load-an-env-block-from-a-variable.patch index 1b748e09..e535e182 100644 --- a/0076-Make-efi-machines-load-an-env-block-from-a-variable.patch +++ b/0076-Make-efi-machines-load-an-env-block-from-a-variable.patch @@ -1,7 +1,7 @@ From 506b52759b2b2ad46e7b389979fcbaa78d68dab9 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 7 Dec 2015 14:20:49 -0500 -Subject: [PATCH 076/215] Make efi machines load an env block from a variable +Subject: [PATCH 076/216] Make efi machines load an env block from a variable Signed-off-by: Peter Jones --- diff --git a/0077-DHCP-client-ID-and-UUID-options-added.patch b/0077-DHCP-client-ID-and-UUID-options-added.patch index 5d9814bb..53b63000 100644 --- a/0077-DHCP-client-ID-and-UUID-options-added.patch +++ b/0077-DHCP-client-ID-and-UUID-options-added.patch @@ -1,7 +1,7 @@ From 8a0b654a520e407da69e0cf64f3dd6bb7cf86240 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 27 Nov 2012 17:18:53 -0200 -Subject: [PATCH 077/215] DHCP client ID and UUID options added. +Subject: [PATCH 077/216] DHCP client ID and UUID options added. --- grub-core/net/bootp.c | 87 ++++++++++++++++++++++++++++++++++++++++++++++----- diff --git a/0078-trim-arp-packets-with-abnormal-size.patch b/0078-trim-arp-packets-with-abnormal-size.patch index 1f0dbe90..f4f375fc 100644 --- a/0078-trim-arp-packets-with-abnormal-size.patch +++ b/0078-trim-arp-packets-with-abnormal-size.patch @@ -1,7 +1,7 @@ From cffad45026af9a05a0509daf593fa87148a3de66 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Wed, 5 Feb 2014 09:42:42 -0200 -Subject: [PATCH 078/215] trim arp packets with abnormal size +Subject: [PATCH 078/216] trim arp packets with abnormal size GRUB uses arp request to create the arp response. If the incoming packet is foobared, GRUB needs to trim the arp response packet before sending it. diff --git a/0079-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch b/0079-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch index 7b9b377d..f1213e39 100644 --- a/0079-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch +++ b/0079-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch @@ -1,7 +1,7 @@ From 97b0254d8f3de9a51aa3df570d862bbb8dbd044b Mon Sep 17 00:00:00 2001 From: Prarit Bhargava Date: Wed, 12 Mar 2014 10:58:16 -0400 -Subject: [PATCH 079/215] Fix bad test on GRUB_DISABLE_SUBMENU. +Subject: [PATCH 079/216] Fix bad test on GRUB_DISABLE_SUBMENU. The file /etc/grub.d/10_linux does diff --git a/0080-Add-support-for-UEFI-operating-systems-returned-by-o.patch b/0080-Add-support-for-UEFI-operating-systems-returned-by-o.patch index eab1c98b..52038025 100644 --- a/0080-Add-support-for-UEFI-operating-systems-returned-by-o.patch +++ b/0080-Add-support-for-UEFI-operating-systems-returned-by-o.patch @@ -1,7 +1,7 @@ From cf5302cca4a0daf5eb9b058243e6f56e63ab58dc Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Wed, 12 Jun 2013 11:51:49 -0400 -Subject: [PATCH 080/215] Add support for UEFI operating systems returned by +Subject: [PATCH 080/216] Add support for UEFI operating systems returned by os-prober os-prober returns UEFI operating systems in the form: diff --git a/0081-Migrate-PPC-from-Yaboot-to-Grub2.patch b/0081-Migrate-PPC-from-Yaboot-to-Grub2.patch index e53be1e2..bc776f62 100644 --- a/0081-Migrate-PPC-from-Yaboot-to-Grub2.patch +++ b/0081-Migrate-PPC-from-Yaboot-to-Grub2.patch @@ -1,7 +1,7 @@ From 4fbdca3b8a359170032882db53646cc4bfd17f6b Mon Sep 17 00:00:00 2001 From: Mark Hamzy Date: Wed, 28 Mar 2012 14:46:41 -0500 -Subject: [PATCH 081/215] Migrate PPC from Yaboot to Grub2 +Subject: [PATCH 081/216] Migrate PPC from Yaboot to Grub2 Add configuration support for serial terminal consoles. This will set the maximum screen size so that text is not overwritten. diff --git a/0082-Add-fw_path-variable-revised.patch b/0082-Add-fw_path-variable-revised.patch index 2e72ba16..f039d01f 100644 --- a/0082-Add-fw_path-variable-revised.patch +++ b/0082-Add-fw_path-variable-revised.patch @@ -1,7 +1,7 @@ From ebd364c3aabe4e484243ccf6e276563416b3f244 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Wed, 19 Sep 2012 21:22:55 -0300 -Subject: [PATCH 082/215] Add fw_path variable (revised) +Subject: [PATCH 082/216] Add fw_path variable (revised) This patch makes grub look for its config file on efi where the app was found. It was originally written by Matthew Garrett, and adapted to fix the diff --git a/0083-Add-support-for-linuxefi.patch b/0083-Add-support-for-linuxefi.patch index 19c6c233..26de1907 100644 --- a/0083-Add-support-for-linuxefi.patch +++ b/0083-Add-support-for-linuxefi.patch @@ -1,7 +1,7 @@ From e1243befd2bc84b3c85100bece1424529dedafb4 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 10 Jul 2012 11:58:52 -0400 -Subject: [PATCH 083/215] Add support for linuxefi +Subject: [PATCH 083/216] Add support for linuxefi --- grub-core/Makefile.core.def | 8 + diff --git a/0084-Use-linuxefi-and-initrdefi-where-appropriate.patch b/0084-Use-linuxefi-and-initrdefi-where-appropriate.patch index 45514270..7526b44b 100644 --- a/0084-Use-linuxefi-and-initrdefi-where-appropriate.patch +++ b/0084-Use-linuxefi-and-initrdefi-where-appropriate.patch @@ -1,7 +1,7 @@ From 859cdda8e3c026eb132ad15320222a7ef89d8940 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 16 Jul 2012 18:57:11 -0400 -Subject: [PATCH 084/215] Use "linuxefi" and "initrdefi" where appropriate. +Subject: [PATCH 084/216] Use "linuxefi" and "initrdefi" where appropriate. --- util/grub.d/10_linux.in | 18 ++++++++++++++++-- diff --git a/0085-Don-t-allow-insmod-when-secure-boot-is-enabled.patch b/0085-Don-t-allow-insmod-when-secure-boot-is-enabled.patch index c6d27c1c..fd142cc7 100644 --- a/0085-Don-t-allow-insmod-when-secure-boot-is-enabled.patch +++ b/0085-Don-t-allow-insmod-when-secure-boot-is-enabled.patch @@ -1,7 +1,7 @@ From a7dd90b084d0e6d10e8f1892651d8c20c079c99d Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Tue, 23 Oct 2012 10:40:49 -0400 -Subject: [PATCH 085/215] Don't allow insmod when secure boot is enabled. +Subject: [PATCH 085/216] Don't allow insmod when secure boot is enabled. Hi, diff --git a/0086-Pass-x-hex-hex-straight-through-unmolested.patch b/0086-Pass-x-hex-hex-straight-through-unmolested.patch index 4ff53134..95725761 100644 --- a/0086-Pass-x-hex-hex-straight-through-unmolested.patch +++ b/0086-Pass-x-hex-hex-straight-through-unmolested.patch @@ -1,7 +1,7 @@ From 66e04779bda094f385e8bbbe3523501821b830e4 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 1 Oct 2012 13:24:37 -0400 -Subject: [PATCH 086/215] Pass "\x[[:hex:]][[:hex:]]" straight through +Subject: [PATCH 086/216] Pass "\x[[:hex:]][[:hex:]]" straight through unmolested. --- diff --git a/0087-Add-X-option-to-printf-functions.patch b/0087-Add-X-option-to-printf-functions.patch index 1f9d307d..f2ad0c0c 100644 --- a/0087-Add-X-option-to-printf-functions.patch +++ b/0087-Add-X-option-to-printf-functions.patch @@ -1,7 +1,7 @@ From 85d1de365ee5f0fb5409a3b1d895204262a7a068 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 27 Nov 2012 16:58:39 -0200 -Subject: [PATCH 087/215] Add %X option to printf functions. +Subject: [PATCH 087/216] Add %X option to printf functions. --- grub-core/kern/misc.c | 7 +++++-- diff --git a/0088-Search-for-specific-config-file-for-netboot.patch b/0088-Search-for-specific-config-file-for-netboot.patch index dc905b65..9b4ad36b 100644 --- a/0088-Search-for-specific-config-file-for-netboot.patch +++ b/0088-Search-for-specific-config-file-for-netboot.patch @@ -1,7 +1,7 @@ From 4b15dd15153b2e7070ae37736c3094223fa3a01d Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 27 Nov 2012 17:22:07 -0200 -Subject: [PATCH 088/215] Search for specific config file for netboot +Subject: [PATCH 088/216] Search for specific config file for netboot This patch implements a search for a specific configuration when the config file is on a remoteserver. It uses the following order: diff --git a/0089-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch b/0089-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch index d1c71312..c834a6ee 100644 --- a/0089-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch +++ b/0089-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch @@ -1,7 +1,7 @@ From cb7f166adef2b0acc52fa0b506621295a1408702 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Tue, 22 Jan 2013 06:31:38 +0100 -Subject: [PATCH 089/215] blscfg: add blscfg module to parse Boot Loader +Subject: [PATCH 089/216] blscfg: add blscfg module to parse Boot Loader Specification snippets http://www.freedesktop.org/wiki/Specifications/BootLoaderSpec diff --git a/0090-Don-t-write-messages-to-the-screen.patch b/0090-Don-t-write-messages-to-the-screen.patch index e3ee391e..fb4b6e91 100644 --- a/0090-Don-t-write-messages-to-the-screen.patch +++ b/0090-Don-t-write-messages-to-the-screen.patch @@ -1,7 +1,7 @@ From 472265de61af84149ba89a91072317e15298caa1 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 13:30:20 -0400 -Subject: [PATCH 090/215] Don't write messages to the screen +Subject: [PATCH 090/216] Don't write messages to the screen Writing messages to the screen before the menus or boot splash happens so quickly it looks like something is wrong and isn't diff --git a/0091-Don-t-print-GNU-GRUB-header.patch b/0091-Don-t-print-GNU-GRUB-header.patch index 9a4d584a..ba0ba9d6 100644 --- a/0091-Don-t-print-GNU-GRUB-header.patch +++ b/0091-Don-t-print-GNU-GRUB-header.patch @@ -1,7 +1,7 @@ From 2b9d1073c695f0363202a00586e1994432d23347 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 13:53:48 -0400 -Subject: [PATCH 091/215] Don't print GNU GRUB header +Subject: [PATCH 091/216] Don't print GNU GRUB header No one cares. --- diff --git a/0092-Don-t-add-to-highlighted-row.patch b/0092-Don-t-add-to-highlighted-row.patch index e6888a7c..c417c511 100644 --- a/0092-Don-t-add-to-highlighted-row.patch +++ b/0092-Don-t-add-to-highlighted-row.patch @@ -1,7 +1,7 @@ From 7cb577925e3d40869b9748afa5060b178ba88abd Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 17:49:45 -0400 -Subject: [PATCH 092/215] Don't add '*' to highlighted row +Subject: [PATCH 092/216] Don't add '*' to highlighted row It is already highlighted. --- diff --git a/0093-Message-string-cleanups.patch b/0093-Message-string-cleanups.patch index aa94bba5..7eaaa0cf 100644 --- a/0093-Message-string-cleanups.patch +++ b/0093-Message-string-cleanups.patch @@ -1,7 +1,7 @@ From 67803e1ea2884a1ff8ecbb1cc9371fa63c9a7544 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 11:09:04 -0400 -Subject: [PATCH 093/215] Message string cleanups +Subject: [PATCH 093/216] Message string cleanups Make use of terminology consistent. Remove jargon. --- diff --git a/0094-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch b/0094-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch index 022940fb..61363138 100644 --- a/0094-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch +++ b/0094-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch @@ -1,7 +1,7 @@ From 7857716e067795304fc788813e427fac3f9624d7 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:08:23 -0400 -Subject: [PATCH 094/215] Fix border spacing now that we aren't displaying it +Subject: [PATCH 094/216] Fix border spacing now that we aren't displaying it --- grub-core/normal/menu_text.c | 6 +++--- diff --git a/0095-Use-the-correct-indentation-for-the-term-help-text.patch b/0095-Use-the-correct-indentation-for-the-term-help-text.patch index a5a7ec4c..1f860880 100644 --- a/0095-Use-the-correct-indentation-for-the-term-help-text.patch +++ b/0095-Use-the-correct-indentation-for-the-term-help-text.patch @@ -1,7 +1,7 @@ From 9ecf176aa2951d848ca2d0ab23e663b2ddc1b336 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:08:49 -0400 -Subject: [PATCH 095/215] Use the correct indentation for the term help text +Subject: [PATCH 095/216] Use the correct indentation for the term help text That is consistent with the menu help text --- diff --git a/0096-Indent-menu-entries.patch b/0096-Indent-menu-entries.patch index 6e170305..8b8e3ed5 100644 --- a/0096-Indent-menu-entries.patch +++ b/0096-Indent-menu-entries.patch @@ -1,7 +1,7 @@ From 62af3df5904d4fff7e8c4bab0a90aae6752be432 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:30:55 -0400 -Subject: [PATCH 096/215] Indent menu entries +Subject: [PATCH 096/216] Indent menu entries --- grub-core/normal/menu_text.c | 3 ++- diff --git a/0097-Fix-margins.patch b/0097-Fix-margins.patch index 2f3abc58..6c2ca93d 100644 --- a/0097-Fix-margins.patch +++ b/0097-Fix-margins.patch @@ -1,7 +1,7 @@ From aa23d4d1be22a7255f9faa3bac39a5d29c2de9f2 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:59:36 -0400 -Subject: [PATCH 097/215] Fix margins +Subject: [PATCH 097/216] Fix margins --- grub-core/normal/menu_text.c | 8 +++----- diff --git a/0098-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch b/0098-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch index 9f8f715d..febd0a0f 100644 --- a/0098-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch +++ b/0098-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch @@ -1,7 +1,7 @@ From cc0abdf469be06b17879f19b26c73b916f479b28 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 21 Jun 2013 14:44:08 -0400 -Subject: [PATCH 098/215] Use -2 instead of -1 for our right-hand margin, so +Subject: [PATCH 098/216] Use -2 instead of -1 for our right-hand margin, so linewrapping works (#976643). Signed-off-by: Peter Jones diff --git a/0099-Use-linux16-when-appropriate-880840.patch b/0099-Use-linux16-when-appropriate-880840.patch index 4f3f2237..4b3c6dc4 100644 --- a/0099-Use-linux16-when-appropriate-880840.patch +++ b/0099-Use-linux16-when-appropriate-880840.patch @@ -1,7 +1,7 @@ From 9b332449552b4c8afbe2d0e30b795d93c2ac733f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 28 Oct 2013 10:05:07 -0400 -Subject: [PATCH 099/215] Use linux16 when appropriate (#880840) +Subject: [PATCH 099/216] Use linux16 when appropriate (#880840) The kernel group really would prefer that we use the 16 bit entry point on x86 bios machines. diff --git a/0100-Enable-pager-by-default.-985860.patch b/0100-Enable-pager-by-default.-985860.patch index ac7e3bcd..50641153 100644 --- a/0100-Enable-pager-by-default.-985860.patch +++ b/0100-Enable-pager-by-default.-985860.patch @@ -1,7 +1,7 @@ From 24b186833aad3f456111b7f9d3806065dbb95a2e Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 28 Oct 2013 10:09:27 -0400 -Subject: [PATCH 100/215] Enable pager by default. (#985860) +Subject: [PATCH 100/216] Enable pager by default. (#985860) Signed-off-by: Peter Jones --- diff --git a/0101-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch b/0101-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch index 1cd55563..cc9192fd 100644 --- a/0101-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch +++ b/0101-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch @@ -1,7 +1,7 @@ From 3635e1f8f5925e9c5ba54e9bbe79503d78177ea4 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 28 Oct 2013 10:13:27 -0400 -Subject: [PATCH 101/215] F10 doesn't work on serial, so don't tell the user to +Subject: [PATCH 101/216] F10 doesn't work on serial, so don't tell the user to hit it (#987443) Signed-off-by: Peter Jones diff --git a/0102-Don-t-say-GNU-Linux-in-generated-menus.patch b/0102-Don-t-say-GNU-Linux-in-generated-menus.patch index e0988403..a8ccaa0b 100644 --- a/0102-Don-t-say-GNU-Linux-in-generated-menus.patch +++ b/0102-Don-t-say-GNU-Linux-in-generated-menus.patch @@ -1,7 +1,7 @@ From c3bd10791d0ecc17cd8243de8eea4cd683ae2bdb Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 14 Mar 2011 14:27:42 -0400 -Subject: [PATCH 102/215] Don't say "GNU/Linux" in generated menus. +Subject: [PATCH 102/216] Don't say "GNU/Linux" in generated menus. --- util/grub.d/10_linux.in | 4 ++-- diff --git a/0103-Don-t-draw-a-border-around-the-menu.patch b/0103-Don-t-draw-a-border-around-the-menu.patch index 4f82836f..ad76c4cd 100644 --- a/0103-Don-t-draw-a-border-around-the-menu.patch +++ b/0103-Don-t-draw-a-border-around-the-menu.patch @@ -1,7 +1,7 @@ From 79e679458cc2e70d0097cfc702668976fe1fdc5d Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 16:47:33 -0400 -Subject: [PATCH 103/215] Don't draw a border around the menu +Subject: [PATCH 103/216] Don't draw a border around the menu It looks cleaner without it. --- diff --git a/0104-Use-the-standard-margin-for-the-timeout-string.patch b/0104-Use-the-standard-margin-for-the-timeout-string.patch index 6b1cc61c..42233982 100644 --- a/0104-Use-the-standard-margin-for-the-timeout-string.patch +++ b/0104-Use-the-standard-margin-for-the-timeout-string.patch @@ -1,7 +1,7 @@ From a82ffe034724bb20b062bba9606654d0e3919acc Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 10:52:32 -0400 -Subject: [PATCH 104/215] Use the standard margin for the timeout string +Subject: [PATCH 104/216] Use the standard margin for the timeout string So that it aligns with the other messages --- diff --git a/0105-Add-.eh_frame-to-list-of-relocations-stripped.patch b/0105-Add-.eh_frame-to-list-of-relocations-stripped.patch index 288c6321..df9f19a1 100644 --- a/0105-Add-.eh_frame-to-list-of-relocations-stripped.patch +++ b/0105-Add-.eh_frame-to-list-of-relocations-stripped.patch @@ -1,7 +1,7 @@ From 35cdd6b929d5f63750bb214a53e1c75b31dcae99 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Mon, 13 Jan 2014 21:50:59 -0500 -Subject: [PATCH 105/215] Add .eh_frame to list of relocations stripped +Subject: [PATCH 105/216] Add .eh_frame to list of relocations stripped --- conf/Makefile.common | 2 +- diff --git a/0106-Make-10_linux-work-with-our-changes-for-linux16-and-.patch b/0106-Make-10_linux-work-with-our-changes-for-linux16-and-.patch index 71a45c50..ccd21868 100644 --- a/0106-Make-10_linux-work-with-our-changes-for-linux16-and-.patch +++ b/0106-Make-10_linux-work-with-our-changes-for-linux16-and-.patch @@ -1,7 +1,7 @@ From 3f5daaa46d0a5eb390a74da40abe54d385d308cf Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jan 2014 13:12:23 -0500 -Subject: [PATCH 106/215] Make 10_linux work with our changes for linux16 and +Subject: [PATCH 106/216] Make 10_linux work with our changes for linux16 and linuxefi on aarch64 Signed-off-by: Peter Jones diff --git a/0107-Don-t-print-during-fdt-loading-method.patch b/0107-Don-t-print-during-fdt-loading-method.patch index 5a0c770a..c85dec88 100644 --- a/0107-Don-t-print-during-fdt-loading-method.patch +++ b/0107-Don-t-print-during-fdt-loading-method.patch @@ -1,7 +1,7 @@ From 276027c67b27f2ee557ca9e2492c779a5f76cb9b Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jan 2014 16:15:46 -0500 -Subject: [PATCH 107/215] Don't print during fdt loading method. +Subject: [PATCH 107/216] Don't print during fdt loading method. Signed-off-by: Peter Jones --- diff --git a/0108-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch b/0108-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch index 3b0a4062..0f5e3ec8 100644 --- a/0108-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch +++ b/0108-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch @@ -1,7 +1,7 @@ From 25add18bbc13249a2ce32f4e9b0de512ecc1fe4b Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Mon, 30 Jun 2014 14:16:46 -0400 -Subject: [PATCH 108/215] Don't munge raw spaces when we're doing our cmdline +Subject: [PATCH 108/216] Don't munge raw spaces when we're doing our cmdline escaping (#923374) Signed-off-by: Peter Jones diff --git a/0109-Don-t-require-a-password-to-boot-entries-generated-b.patch b/0109-Don-t-require-a-password-to-boot-entries-generated-b.patch index 14c9e026..03792b24 100644 --- a/0109-Don-t-require-a-password-to-boot-entries-generated-b.patch +++ b/0109-Don-t-require-a-password-to-boot-entries-generated-b.patch @@ -1,7 +1,7 @@ From 9b109204ee0d1888d64d553849798ee57af1809f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 11 Feb 2014 11:14:50 -0500 -Subject: [PATCH 109/215] Don't require a password to boot entries generated by +Subject: [PATCH 109/216] Don't require a password to boot entries generated by grub-mkconfig. When we set a password, we just want that to mean you can't /edit/ an entry. diff --git a/0110-Don-t-emit-Booting-.-message.patch b/0110-Don-t-emit-Booting-.-message.patch index b08d66fa..a5919596 100644 --- a/0110-Don-t-emit-Booting-.-message.patch +++ b/0110-Don-t-emit-Booting-.-message.patch @@ -1,7 +1,7 @@ From 68f1935b5c6f66afbf9d6990615946c44f3d54cb Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 18 Feb 2014 09:37:49 -0500 -Subject: [PATCH 110/215] Don't emit "Booting ..." message. +Subject: [PATCH 110/216] Don't emit "Booting ..." message. UI team still hates this stuff, so we're disabling it for RHEL 7. diff --git a/0111-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch b/0111-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch index f2b77906..95a609c0 100644 --- a/0111-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch +++ b/0111-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch @@ -1,7 +1,7 @@ From 6cdf99aa53970695fbf5c002fa288e1044571ca7 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 4 Mar 2014 11:00:23 -0500 -Subject: [PATCH 111/215] Replace a lot of man pages with slightly nicer ones. +Subject: [PATCH 111/216] Replace a lot of man pages with slightly nicer ones. Replace a bunch of machine generated ones with ones that look nicer. --- diff --git a/0112-use-fw_path-prefix-when-fallback-searching-for-grub-.patch b/0112-use-fw_path-prefix-when-fallback-searching-for-grub-.patch index 843ae6f0..70c833b0 100644 --- a/0112-use-fw_path-prefix-when-fallback-searching-for-grub-.patch +++ b/0112-use-fw_path-prefix-when-fallback-searching-for-grub-.patch @@ -1,7 +1,7 @@ From f72c593c32ecba7b10ceb4c63ca8ec48f60c3ccf Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Wed, 19 Feb 2014 15:58:43 -0500 -Subject: [PATCH 112/215] use fw_path prefix when fallback searching for grub +Subject: [PATCH 112/216] use fw_path prefix when fallback searching for grub config When PXE booting via UEFI firmware, grub was searching for grub.cfg diff --git a/0113-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch b/0113-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch index 68d0bb63..5eea04a3 100644 --- a/0113-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch +++ b/0113-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch @@ -1,7 +1,7 @@ From 09265872f163e6dfe1aa319ac40e8090f31830f7 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 6 Mar 2014 11:51:33 -0500 -Subject: [PATCH 113/215] Try mac/guid/etc before grub.cfg on tftp config +Subject: [PATCH 113/216] Try mac/guid/etc before grub.cfg on tftp config files. Signed-off-by: Peter Jones diff --git a/0114-Fix-convert-function-to-support-NVMe-devices.patch b/0114-Fix-convert-function-to-support-NVMe-devices.patch index f2302cde..08ecd975 100644 --- a/0114-Fix-convert-function-to-support-NVMe-devices.patch +++ b/0114-Fix-convert-function-to-support-NVMe-devices.patch @@ -1,7 +1,7 @@ From 39976a692a9350b1293f209953426830ddde2ad6 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 18 Feb 2014 11:34:00 -0500 -Subject: [PATCH 114/215] Fix convert function to support NVMe devices +Subject: [PATCH 114/216] Fix convert function to support NVMe devices This is adapted from the patch at https://bugzilla.redhat.com/show_bug.cgi?id=1019660 , which is against diff --git a/0115-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch b/0115-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch index d70eb2af..c88f98ba 100644 --- a/0115-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch +++ b/0115-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch @@ -1,7 +1,7 @@ From 05d7e199d3f48cf9fd9b2af877cfe37c498f0874 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Mon, 10 Feb 2014 16:13:10 -0500 -Subject: [PATCH 115/215] Switch to use APM Mustang device tree, for hardware +Subject: [PATCH 115/216] Switch to use APM Mustang device tree, for hardware testing. Signed-off-by: David A. Marlin diff --git a/0116-Use-the-default-device-tree-from-the-grub-default-fi.patch b/0116-Use-the-default-device-tree-from-the-grub-default-fi.patch index 4787c624..1aec17cf 100644 --- a/0116-Use-the-default-device-tree-from-the-grub-default-fi.patch +++ b/0116-Use-the-default-device-tree-from-the-grub-default-fi.patch @@ -1,7 +1,7 @@ From b2ad2a3b4a4bc998003c1275709f0677c39503a9 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Wed, 12 Feb 2014 14:54:04 -0500 -Subject: [PATCH 116/215] Use the default device tree from the grub default +Subject: [PATCH 116/216] Use the default device tree from the grub default file instead of hardcoding a value. diff --git a/0117-reopen-SNP-protocol-for-exclusive-use-by-grub.patch b/0117-reopen-SNP-protocol-for-exclusive-use-by-grub.patch index 06836018..c4dd05d7 100644 --- a/0117-reopen-SNP-protocol-for-exclusive-use-by-grub.patch +++ b/0117-reopen-SNP-protocol-for-exclusive-use-by-grub.patch @@ -1,7 +1,7 @@ From 5d87e5b1697c28d55348486cb3c704b467c8e798 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Sat, 15 Feb 2014 15:10:22 -0500 -Subject: [PATCH 117/215] reopen SNP protocol for exclusive use by grub +Subject: [PATCH 117/216] reopen SNP protocol for exclusive use by grub --- grub-core/net/drivers/efi/efinet.c | 16 ++++++++++++++++ diff --git a/0118-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch b/0118-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch index a014023a..3ee37438 100644 --- a/0118-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch +++ b/0118-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch @@ -1,7 +1,7 @@ From f00ca4e03561840f116642c7100df6dc6395209d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 4 Mar 2016 15:13:59 -0500 -Subject: [PATCH 118/215] Revert "reopen SNP protocol for exclusive use by +Subject: [PATCH 118/216] Revert "reopen SNP protocol for exclusive use by grub" This reverts commit a3f2c756ce34c9666bddef35e3b3b85ccecdcffc , which is diff --git a/0119-Add-grub_util_readlink.patch b/0119-Add-grub_util_readlink.patch index 1e31817b..c9b33ac5 100644 --- a/0119-Add-grub_util_readlink.patch +++ b/0119-Add-grub_util_readlink.patch @@ -1,7 +1,7 @@ From ffc123b7ab4fe37da16d4c62d87255f8c5c14b9f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 3 Sep 2014 10:01:03 -0400 -Subject: [PATCH 119/215] Add grub_util_readlink() +Subject: [PATCH 119/216] Add grub_util_readlink() Add grub_util_readlink(). This requires pulling in stat and readlink from gnulib, which pulls in stat and related headers, but after that the diff --git a/0120-Make-editenv-chase-symlinks-including-those-across-d.patch b/0120-Make-editenv-chase-symlinks-including-those-across-d.patch index ed1735ca..9c13d85d 100644 --- a/0120-Make-editenv-chase-symlinks-including-those-across-d.patch +++ b/0120-Make-editenv-chase-symlinks-including-those-across-d.patch @@ -1,7 +1,7 @@ From fb903fc1587b582e23e44811dc8c4ed359806028 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 3 Sep 2014 10:38:00 -0400 -Subject: [PATCH 120/215] Make editenv chase symlinks including those across +Subject: [PATCH 120/216] Make editenv chase symlinks including those across devices. This lets us make /boot/grub2/grubenv a symlink to diff --git a/0121-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch b/0121-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch index 3fea624d..a3bc069a 100644 --- a/0121-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch +++ b/0121-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch @@ -1,7 +1,7 @@ From 5948f763fc01d7f29923e94ef9b1ed923b11ff1a Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Sep 2014 14:23:23 -0400 -Subject: [PATCH 121/215] Generate OS and CLASS in 10_linux from +Subject: [PATCH 121/216] Generate OS and CLASS in 10_linux from /etc/os-release This makes us use pretty names in the titles we generate in diff --git a/0122-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch b/0122-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch index bbb693bf..7e4d2e8a 100644 --- a/0122-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch +++ b/0122-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch @@ -1,7 +1,7 @@ From 547d0c60f28c026801af2ada3e0995d0ecc22c35 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Sep 2014 15:52:08 -0400 -Subject: [PATCH 122/215] Minimize the sort ordering for .debug and -rescue- +Subject: [PATCH 122/216] Minimize the sort ordering for .debug and -rescue- kernels. Resolves: rhbz#1065360 diff --git a/0123-Load-arm-with-SB-enabled.patch b/0123-Load-arm-with-SB-enabled.patch index 936126c0..82d9c073 100644 --- a/0123-Load-arm-with-SB-enabled.patch +++ b/0123-Load-arm-with-SB-enabled.patch @@ -1,7 +1,7 @@ From c03bf04fd9e3192bec942a7adee23b5377ea81dc Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 18 Sep 2014 11:26:14 -0400 -Subject: [PATCH 123/215] Load arm with SB enabled. +Subject: [PATCH 123/216] Load arm with SB enabled. Make sure we actually try to validate secure boot on this platform (even though we're not shipping it enabled by default.) diff --git a/0124-Try-prefix-if-fw_path-doesn-t-work.patch b/0124-Try-prefix-if-fw_path-doesn-t-work.patch index 8168a00c..226b8f6d 100644 --- a/0124-Try-prefix-if-fw_path-doesn-t-work.patch +++ b/0124-Try-prefix-if-fw_path-doesn-t-work.patch @@ -1,7 +1,7 @@ From 0c98cb57eb1a34ec29f719e3a798f5b20c6a4082 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 3 Oct 2014 11:08:03 -0400 -Subject: [PATCH 124/215] Try $prefix if $fw_path doesn't work. +Subject: [PATCH 124/216] Try $prefix if $fw_path doesn't work. Related: rhbz#1148652 diff --git a/0125-Update-info-with-grub.cfg-netboot-selection-order-11.patch b/0125-Update-info-with-grub.cfg-netboot-selection-order-11.patch index dcdbd049..131459c3 100644 --- a/0125-Update-info-with-grub.cfg-netboot-selection-order-11.patch +++ b/0125-Update-info-with-grub.cfg-netboot-selection-order-11.patch @@ -1,7 +1,7 @@ From d446fed131fadd00d0daab0654c7d9e14442d451 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Mon, 16 Mar 2015 16:34:51 -0400 -Subject: [PATCH 125/215] Update info with grub.cfg netboot selection order +Subject: [PATCH 125/216] Update info with grub.cfg netboot selection order (#1148650) Added documentation to the grub info page that specifies the order diff --git a/0126-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch b/0126-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch index 3a45d6bb..97aaf4b7 100644 --- a/0126-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch +++ b/0126-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch @@ -1,7 +1,7 @@ From e62ab1057d87e2a1e3c7fcf6b134f86ec24f2eac Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Mon, 16 Mar 2015 14:14:19 -0400 -Subject: [PATCH 126/215] Use Distribution Package Sort for grub2-mkconfig +Subject: [PATCH 126/216] Use Distribution Package Sort for grub2-mkconfig (#1124074) Users reported that newly installed kernels on their systems installed diff --git a/0127-Handle-rssd-storage-devices.patch b/0127-Handle-rssd-storage-devices.patch index 5b555b75..d69ff406 100644 --- a/0127-Handle-rssd-storage-devices.patch +++ b/0127-Handle-rssd-storage-devices.patch @@ -1,7 +1,7 @@ From 8d3f2f0f389efbb9ed5da0c4f90fc82d104163c1 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 30 Jun 2015 15:50:41 -0400 -Subject: [PATCH 127/215] Handle rssd storage devices. +Subject: [PATCH 127/216] Handle rssd storage devices. Resolves: rhbz#1087962 diff --git a/0128-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch b/0128-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch index 46411138..dbde9c26 100644 --- a/0128-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch +++ b/0128-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch @@ -1,7 +1,7 @@ From e5ed14fb98e18d173f9396103aca65351e4e67e2 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 27 Oct 2014 09:22:55 -0400 -Subject: [PATCH 128/215] Try to emit linux16/initrd16 and linuxefi/initrdefi +Subject: [PATCH 128/216] Try to emit linux16/initrd16 and linuxefi/initrdefi in 30-os_prober. Resolves: rhbz#1108296 diff --git a/0129-Make-grub2-mkconfig-construct-titles-that-look-like-.patch b/0129-Make-grub2-mkconfig-construct-titles-that-look-like-.patch index 0d158e06..fcb80f28 100644 --- a/0129-Make-grub2-mkconfig-construct-titles-that-look-like-.patch +++ b/0129-Make-grub2-mkconfig-construct-titles-that-look-like-.patch @@ -1,7 +1,7 @@ From 75c3d5fedb92fcf107b594216655c29bb20cbebc Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 28 Apr 2015 11:15:03 -0400 -Subject: [PATCH 129/215] Make grub2-mkconfig construct titles that look like +Subject: [PATCH 129/216] Make grub2-mkconfig construct titles that look like the ones we want elsewhere. Resolves: rhbz#1215839 diff --git a/0130-Add-friendly-grub2-password-config-tool-985962.patch b/0130-Add-friendly-grub2-password-config-tool-985962.patch index 8539b668..f6fa3a16 100644 --- a/0130-Add-friendly-grub2-password-config-tool-985962.patch +++ b/0130-Add-friendly-grub2-password-config-tool-985962.patch @@ -1,7 +1,7 @@ From d03d08a8ba14eddda515907cafc640fb1dbe0874 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Thu, 25 Jun 2015 11:13:11 -0400 -Subject: [PATCH 130/215] Add friendly grub2 password config tool (#985962) +Subject: [PATCH 130/216] Add friendly grub2 password config tool (#985962) Provided a tool for users to reset the grub2 root user password without having to alter the grub.cfg. The hashed password now diff --git a/0131-Make-grub2-mkconfig-construct-titles-that-look-like-.patch b/0131-Make-grub2-mkconfig-construct-titles-that-look-like-.patch index 24d46935..ec33824b 100644 --- a/0131-Make-grub2-mkconfig-construct-titles-that-look-like-.patch +++ b/0131-Make-grub2-mkconfig-construct-titles-that-look-like-.patch @@ -1,7 +1,7 @@ From 7d9c29023e6c242306ae008a984245037655a23c Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 28 Apr 2015 11:15:03 -0400 -Subject: [PATCH 131/215] Make grub2-mkconfig construct titles that look like +Subject: [PATCH 131/216] Make grub2-mkconfig construct titles that look like the ones we want elsewhere. Resolves: rhbz#1215839 diff --git a/0132-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch b/0132-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch index f80922e0..8dacb344 100644 --- a/0132-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch +++ b/0132-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch @@ -1,7 +1,7 @@ From e97b5c4ec2f11ac544c3c1de8fa5b84ac24d9536 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 3 Aug 2015 11:46:42 -0400 -Subject: [PATCH 132/215] Try to make sure configure.ac and grub-rpm-sort play +Subject: [PATCH 132/216] Try to make sure configure.ac and grub-rpm-sort play nice. Apparently the test for whether to use grub-rpm-sort and also the diff --git a/0133-tcp-add-window-scaling-support.patch b/0133-tcp-add-window-scaling-support.patch index b12c31fc..3725a41e 100644 --- a/0133-tcp-add-window-scaling-support.patch +++ b/0133-tcp-add-window-scaling-support.patch @@ -1,7 +1,7 @@ From df119e7a941f0e1329181d33d63349375b9b56d9 Mon Sep 17 00:00:00 2001 From: Josef Bacik Date: Wed, 12 Aug 2015 08:57:55 -0700 -Subject: [PATCH 133/215] tcp: add window scaling support +Subject: [PATCH 133/216] tcp: add window scaling support Sometimes we have to provision boxes across regions, such as California to Sweden. The http server has a 10 minute timeout, so if we can't get our 250mb diff --git a/0134-efinet-retransmit-if-our-device-is-busy.patch b/0134-efinet-retransmit-if-our-device-is-busy.patch index 80861603..15dcf34a 100644 --- a/0134-efinet-retransmit-if-our-device-is-busy.patch +++ b/0134-efinet-retransmit-if-our-device-is-busy.patch @@ -1,7 +1,7 @@ From d4f94fc4cd48954f757d6efb82311eb3256389e4 Mon Sep 17 00:00:00 2001 From: Josef Bacik Date: Mon, 31 Aug 2015 13:34:35 -0400 -Subject: [PATCH 134/215] efinet: retransmit if our device is busy +Subject: [PATCH 134/216] efinet: retransmit if our device is busy When I fixed the txbuf handling I ripped out the retransmission code since it was flooding our network when we had the buggy behavior. Turns out this was too diff --git a/0135-Be-more-aggro-about-actually-using-the-configured-ne.patch b/0135-Be-more-aggro-about-actually-using-the-configured-ne.patch index 7b8a400d..8497eed4 100644 --- a/0135-Be-more-aggro-about-actually-using-the-configured-ne.patch +++ b/0135-Be-more-aggro-about-actually-using-the-configured-ne.patch @@ -1,7 +1,7 @@ From d4eb7984ad8938e50764c541f0e8f4c8d6d012f8 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 11 Sep 2015 17:30:49 -0400 -Subject: [PATCH 135/215] Be more aggro about actually using the *configured* +Subject: [PATCH 135/216] Be more aggro about actually using the *configured* network device. Right now we use any SNP device with the same mac+IP block, but when diff --git a/0136-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch b/0136-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch index a8ef9fe3..4bdeda26 100644 --- a/0136-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch +++ b/0136-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch @@ -1,7 +1,7 @@ From fdbc8b81c9f3bbef64298dbf1f5230eda0cda02f Mon Sep 17 00:00:00 2001 From: RHEL Ninjas Date: Fri, 25 Sep 2015 16:24:23 +0900 -Subject: [PATCH 136/215] efinet: add filter for the first exclusive reopen of +Subject: [PATCH 136/216] efinet: add filter for the first exclusive reopen of SNP --- diff --git a/0137-Fix-security-issue-when-reading-username-and-passwor.patch b/0137-Fix-security-issue-when-reading-username-and-passwor.patch index b956aac0..34d01f57 100644 --- a/0137-Fix-security-issue-when-reading-username-and-passwor.patch +++ b/0137-Fix-security-issue-when-reading-username-and-passwor.patch @@ -1,7 +1,7 @@ From fa4b152860e04053ee1cae6b70237a1975473a81 Mon Sep 17 00:00:00 2001 From: Hector Marco-Gisbert Date: Fri, 13 Nov 2015 16:21:09 +0100 -Subject: [PATCH 137/215] Fix security issue when reading username and password +Subject: [PATCH 137/216] Fix security issue when reading username and password This patch fixes two integer underflows at: * grub-core/lib/crypto.c diff --git a/0138-Warn-if-grub-password-will-not-be-read-1290803.patch b/0138-Warn-if-grub-password-will-not-be-read-1290803.patch index 6b02dc83..47880f5c 100644 --- a/0138-Warn-if-grub-password-will-not-be-read-1290803.patch +++ b/0138-Warn-if-grub-password-will-not-be-read-1290803.patch @@ -1,7 +1,7 @@ From c8ed108d2f3f9b57add84e282fef6e39634aec99 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Mon, 22 Feb 2016 15:30:05 -0500 -Subject: [PATCH 138/215] Warn if grub password will not be read (#1290803) +Subject: [PATCH 138/216] Warn if grub password will not be read (#1290803) It is possible for a system to have never run grub-mkconfig and add the section that reads the user.cfg file which contains a user set GRUB diff --git a/0139-Clean-up-grub-setpassword-documentation-1290799.patch b/0139-Clean-up-grub-setpassword-documentation-1290799.patch index 4523c188..571b415e 100644 --- a/0139-Clean-up-grub-setpassword-documentation-1290799.patch +++ b/0139-Clean-up-grub-setpassword-documentation-1290799.patch @@ -1,7 +1,7 @@ From 884c7f7b14633fc47d5cada7f02df6fb5176b224 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Tue, 26 Jan 2016 10:28:35 -0500 -Subject: [PATCH 139/215] Clean up grub-setpassword documentation (#1290799) +Subject: [PATCH 139/216] Clean up grub-setpassword documentation (#1290799) The output for --help had some errors. Corrected those and polished the text to be a little easier to follow. Carried verbage over to man page diff --git a/0140-Fix-locale-issue-in-grub-setpassword-1294243.patch b/0140-Fix-locale-issue-in-grub-setpassword-1294243.patch index b01f4441..db9aa18f 100644 --- a/0140-Fix-locale-issue-in-grub-setpassword-1294243.patch +++ b/0140-Fix-locale-issue-in-grub-setpassword-1294243.patch @@ -1,7 +1,7 @@ From 5f3812d1820b13137b5c79b135a6b790cb78ae60 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Fri, 29 Jan 2016 16:56:11 -0500 -Subject: [PATCH 140/215] Fix locale issue in grub-setpassword (#1294243) +Subject: [PATCH 140/216] Fix locale issue in grub-setpassword (#1294243) A shell substitution was expecting non-translated output to grab the hashed password and put it in the user.cfg file. Modified code to force diff --git a/0141-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch b/0141-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch index ec3d2c09..ef599b05 100644 --- a/0141-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch +++ b/0141-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch @@ -1,7 +1,7 @@ From a7a38221a7f4593a9abb5f422d0dd349866ed029 Mon Sep 17 00:00:00 2001 From: Robert Elliott Date: Fri, 22 Jan 2016 13:32:30 +0100 -Subject: [PATCH 141/215] efiemu: Handle persistent RAM and unknown possible +Subject: [PATCH 141/216] efiemu: Handle persistent RAM and unknown possible future additions. (cherry picked from commit ae3b83a4d4df75a01198a2fed7542391e7c449e0) diff --git a/0142-efiemu-Fix-compilation-failure.patch b/0142-efiemu-Fix-compilation-failure.patch index e9293f8f..81545a9f 100644 --- a/0142-efiemu-Fix-compilation-failure.patch +++ b/0142-efiemu-Fix-compilation-failure.patch @@ -1,7 +1,7 @@ From 1da43f34f211772fbda36ef6fd81e1cbde37eae7 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Fri, 22 Jan 2016 14:10:30 +0100 -Subject: [PATCH 142/215] efiemu: Fix compilation failure +Subject: [PATCH 142/216] efiemu: Fix compilation failure (cherry picked from commit b6a03dfd327489d53ee07c6d7d593b99c7b7cb62) diff --git a/0143-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch b/0143-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch index 9882d3a8..6475102c 100644 --- a/0143-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch +++ b/0143-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch @@ -1,7 +1,7 @@ From 9b93a986a68502c1ab2303efd7469fda0c5709cf Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 7 Apr 2016 10:58:06 -0400 -Subject: [PATCH 143/215] Revert "reopen SNP protocol for exclusive use by +Subject: [PATCH 143/216] Revert "reopen SNP protocol for exclusive use by grub" I *think* this should have been replaced by upstream's diff --git a/0144-Add-a-url-parser.patch b/0144-Add-a-url-parser.patch index d09e9bf8..96aac6f4 100644 --- a/0144-Add-a-url-parser.patch +++ b/0144-Add-a-url-parser.patch @@ -1,7 +1,7 @@ From 520e6078ff9e3fbf1edf687e51597dac98c07d56 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jun 2016 16:18:44 -0400 -Subject: [PATCH 144/215] Add a url parser. +Subject: [PATCH 144/216] Add a url parser. This patch adds a url parser that can parse http, https, tftp, and tftps urls, and is easily extensible to handle more types. diff --git a/0145-efinet-and-bootp-add-support-for-dhcpv6.patch b/0145-efinet-and-bootp-add-support-for-dhcpv6.patch index 711390e9..b95e2ae7 100644 --- a/0145-efinet-and-bootp-add-support-for-dhcpv6.patch +++ b/0145-efinet-and-bootp-add-support-for-dhcpv6.patch @@ -1,7 +1,7 @@ From 0bdcc68529fe2f3cdf92173fadffd2f9a6476b9b Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 8 Jun 2016 21:03:37 -0400 -Subject: [PATCH 145/215] efinet and bootp: add support for dhcpv6 +Subject: [PATCH 145/216] efinet and bootp: add support for dhcpv6 Signed-off-by: Peter Jones --- diff --git a/0146-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch b/0146-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch index 0e14e80a..6920294c 100644 --- a/0146-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch +++ b/0146-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch @@ -1,7 +1,7 @@ From dcadcc9070f778654eb704fc0907e261996ef76e Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 23 Jun 2016 11:01:39 -0400 -Subject: [PATCH 146/215] Add grub-get-kernel-settings and use it in 10_linux +Subject: [PATCH 146/216] Add grub-get-kernel-settings and use it in 10_linux This patch adds grub-get-kernel-settings, which reads the system kernel installation configuration from /etc/sysconfig/kernel, and outputs diff --git a/0147-Normalize-slashes-in-tftp-paths.patch b/0147-Normalize-slashes-in-tftp-paths.patch index f145c9bd..7f288aaa 100644 --- a/0147-Normalize-slashes-in-tftp-paths.patch +++ b/0147-Normalize-slashes-in-tftp-paths.patch @@ -1,7 +1,7 @@ From 130783c1e461b64befbf0fa8c9002ef763606105 Mon Sep 17 00:00:00 2001 From: Lenny Szubowicz Date: Mon, 29 Aug 2016 11:04:48 -0400 -Subject: [PATCH 147/215] Normalize slashes in tftp paths. +Subject: [PATCH 147/216] Normalize slashes in tftp paths. Some tftp servers do not handle multiple consecutive slashes correctly; this patch avoids sending tftp requests with non-normalized paths. diff --git a/0148-Fix-malformed-tftp-packets.patch b/0148-Fix-malformed-tftp-packets.patch index b076e7a8..2fe933e2 100644 --- a/0148-Fix-malformed-tftp-packets.patch +++ b/0148-Fix-malformed-tftp-packets.patch @@ -1,7 +1,7 @@ From af0e4fc8f9cd844c44c969c0991269ec9ab01a62 Mon Sep 17 00:00:00 2001 From: Mark Salter Date: Tue, 7 Mar 2017 18:26:17 -0500 -Subject: [PATCH 148/215] Fix malformed tftp packets +Subject: [PATCH 148/216] Fix malformed tftp packets 0088-Normalize-slashes-in-tftp-paths.patch collapses multiple contiguous slashes in a filename into one slash in the tftp packet filename field. diff --git a/0149-Fix-race-in-EFI-validation.patch b/0149-Fix-race-in-EFI-validation.patch index 7edb4299..f92c6003 100644 --- a/0149-Fix-race-in-EFI-validation.patch +++ b/0149-Fix-race-in-EFI-validation.patch @@ -1,7 +1,7 @@ From d5339007d0ffdaf6e8a4e9702e7cec447b118804 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 14 Jul 2015 16:58:51 -0700 -Subject: [PATCH 149/215] Fix race in EFI validation +Subject: [PATCH 149/216] Fix race in EFI validation --- grub-core/loader/i386/efi/linux.c | 44 ++++++++++----------------------------- diff --git a/0150-bz1374141-fix-incorrect-mask-for-ppc64.patch b/0150-bz1374141-fix-incorrect-mask-for-ppc64.patch index 6ef4ca6c..35f461a6 100644 --- a/0150-bz1374141-fix-incorrect-mask-for-ppc64.patch +++ b/0150-bz1374141-fix-incorrect-mask-for-ppc64.patch @@ -1,7 +1,7 @@ From eea2b6113c2f17ed5755b23242457948025bfd33 Mon Sep 17 00:00:00 2001 From: Masahiro Matsuya Date: Sat, 29 Oct 2016 08:35:26 +0900 -Subject: [PATCH 150/215] bz1374141 fix incorrect mask for ppc64 +Subject: [PATCH 150/216] bz1374141 fix incorrect mask for ppc64 The netmask configured in firmware is not respected on ppc64 (big endian). When 255.255.252.0 is set as netmask in firmware, the following is the value of bootpath string in grub_ieee1275_parse_bootpath(). diff --git a/0151-Use-device-part-of-chainloader-target-if-present.patch b/0151-Use-device-part-of-chainloader-target-if-present.patch index 00e8a8bb..2530058a 100644 --- a/0151-Use-device-part-of-chainloader-target-if-present.patch +++ b/0151-Use-device-part-of-chainloader-target-if-present.patch @@ -1,7 +1,7 @@ From d08c1a531d80b4e14a7bfeb0d762125f4fab1317 Mon Sep 17 00:00:00 2001 From: Raymund Will Date: Fri, 10 Apr 2015 01:45:02 -0400 -Subject: [PATCH 151/215] Use device part of chainloader target, if present. +Subject: [PATCH 151/216] Use device part of chainloader target, if present. Otherwise chainloading is restricted to '$root', which might not even be readable by EFI! diff --git a/0152-Add-secureboot-support-on-efi-chainloader.patch b/0152-Add-secureboot-support-on-efi-chainloader.patch index 4339b4e7..72e6c996 100644 --- a/0152-Add-secureboot-support-on-efi-chainloader.patch +++ b/0152-Add-secureboot-support-on-efi-chainloader.patch @@ -1,7 +1,7 @@ From 729766b6416f6ca13c694ce220c3b2156ced1691 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 6 Oct 2015 13:04:37 -0400 -Subject: [PATCH 152/215] Add secureboot support on efi chainloader +Subject: [PATCH 152/216] Add secureboot support on efi chainloader Expand the chainloader to be able to verify the image by means of shim lock protocol. The PE/COFF image is loaded and relocated by the diff --git a/0153-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch b/0153-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch index 69e4f6d2..6b71573c 100644 --- a/0153-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch +++ b/0153-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch @@ -1,7 +1,7 @@ From fe18b297027c4976d11b87f1b5adc07a7565cdee Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 6 Oct 2015 16:09:25 -0400 -Subject: [PATCH 153/215] Make any of the loaders that link in efi mode honor +Subject: [PATCH 153/216] Make any of the loaders that link in efi mode honor secure boot. And in this case "honor" means "even if somebody does link this in, they diff --git a/0154-Make-grub_fatal-also-backtrace.patch b/0154-Make-grub_fatal-also-backtrace.patch index c981530e..1e6869a9 100644 --- a/0154-Make-grub_fatal-also-backtrace.patch +++ b/0154-Make-grub_fatal-also-backtrace.patch @@ -1,7 +1,7 @@ From b2fd6377486d66ced5fd82325c3ee8e11f4f1176 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 27 Jan 2016 09:22:42 -0500 -Subject: [PATCH 154/215] Make grub_fatal() also backtrace. +Subject: [PATCH 154/216] Make grub_fatal() also backtrace. --- grub-core/Makefile.core.def | 3 ++ diff --git a/0155-Rework-linux-command.patch b/0155-Rework-linux-command.patch index 1e0bf084..5d5022ad 100644 --- a/0155-Rework-linux-command.patch +++ b/0155-Rework-linux-command.patch @@ -1,7 +1,7 @@ From 4fec1bb24e09f36366c62196285392a674d259d3 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 16:12:39 -0700 -Subject: [PATCH 155/215] Rework linux command +Subject: [PATCH 155/216] Rework linux command We want a single buffer that contains the entire kernel image in order to perform a TPM measurement. Allocate one and copy the entire kernel into it diff --git a/0156-Rework-linux16-command.patch b/0156-Rework-linux16-command.patch index b4d4bec4..8a327e69 100644 --- a/0156-Rework-linux16-command.patch +++ b/0156-Rework-linux16-command.patch @@ -1,7 +1,7 @@ From 7d6ce3346f32a67e07fd3fda9ad65ac76f600628 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 16:20:58 -0700 -Subject: [PATCH 156/215] Rework linux16 command +Subject: [PATCH 156/216] Rework linux16 command We want a single buffer that contains the entire kernel image in order to perform a TPM measurement. Allocate one and copy the entire kernel int it diff --git a/0157-Make-grub-editenv-build-again.patch b/0157-Make-grub-editenv-build-again.patch index 6c45045d..1158cfca 100644 --- a/0157-Make-grub-editenv-build-again.patch +++ b/0157-Make-grub-editenv-build-again.patch @@ -1,7 +1,7 @@ From 4e0105392434bac9f10ac79a820a69098abec2f5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 4 Mar 2016 16:29:13 -0500 -Subject: [PATCH 157/215] Make grub-editenv build again. +Subject: [PATCH 157/216] Make grub-editenv build again. 36212460d3565b18439a3a8130b28e6c97702c6a split how some of the mkimage utility functions are defined, and they wind up being linked into diff --git a/0158-Fix-up-some-man-pages-rpmdiff-noticed.patch b/0158-Fix-up-some-man-pages-rpmdiff-noticed.patch index 34ff80a6..84bedbe1 100644 --- a/0158-Fix-up-some-man-pages-rpmdiff-noticed.patch +++ b/0158-Fix-up-some-man-pages-rpmdiff-noticed.patch @@ -1,7 +1,7 @@ From 7779112786e3f892e05b9d293299dd7ef151d9dd Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 23 Sep 2014 09:58:49 -0400 -Subject: [PATCH 158/215] Fix up some man pages rpmdiff noticed. +Subject: [PATCH 158/216] Fix up some man pages rpmdiff noticed. --- configure.ac | 2 ++ diff --git a/0159-Re-work-some-intricacies-of-PE-loading.patch b/0159-Re-work-some-intricacies-of-PE-loading.patch index 80b55d99..d778f3a2 100644 --- a/0159-Re-work-some-intricacies-of-PE-loading.patch +++ b/0159-Re-work-some-intricacies-of-PE-loading.patch @@ -1,7 +1,7 @@ From 9ca2908ab56bc32052b2f01bda6a35a190e39bae Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 9 Jun 2016 12:22:29 -0400 -Subject: [PATCH 159/215] Re-work some intricacies of PE loading. +Subject: [PATCH 159/216] Re-work some intricacies of PE loading. The PE spec is not a well written document, and awesomely every place where there's an ambiguous way to read something, Windows' bootmgfw.efi diff --git a/0160-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch b/0160-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch index ad9732d8..62ef4d48 100644 --- a/0160-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch +++ b/0160-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch @@ -1,7 +1,7 @@ From d8441e12feab1ae94f11849d1bcc5e73abb69231 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 10 Jun 2016 14:06:15 -0400 -Subject: [PATCH 160/215] Rework even more of efi chainload so non-sb cases +Subject: [PATCH 160/216] Rework even more of efi chainload so non-sb cases work right. This ensures that if shim protocol is not loaded, or is loaded but shim diff --git a/0161-linuxefi-fix-double-free-on-verification-failure.patch b/0161-linuxefi-fix-double-free-on-verification-failure.patch index c19f8f9e..6c14d339 100644 --- a/0161-linuxefi-fix-double-free-on-verification-failure.patch +++ b/0161-linuxefi-fix-double-free-on-verification-failure.patch @@ -1,7 +1,7 @@ From e432d9b485112f0d35fd623e4b2467a3d788a38f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jun 2016 09:50:25 -0400 -Subject: [PATCH 161/215] linuxefi: fix double free on verification failure. +Subject: [PATCH 161/216] linuxefi: fix double free on verification failure. Signed-off-by: Peter Jones --- diff --git a/0162-fix-machine-type-test-in-30_os-prober.in.patch b/0162-fix-machine-type-test-in-30_os-prober.in.patch index 73d59b3a..4e842de9 100644 --- a/0162-fix-machine-type-test-in-30_os-prober.in.patch +++ b/0162-fix-machine-type-test-in-30_os-prober.in.patch @@ -1,7 +1,7 @@ From 33faccd6c6f23774bbbbc83731a712a7bed76c3f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 11 Jul 2016 13:36:45 -0400 -Subject: [PATCH 162/215] fix machine type test in 30_os-prober.in +Subject: [PATCH 162/216] fix machine type test in 30_os-prober.in Signed-off-by: Peter Jones --- diff --git a/0163-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch b/0163-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch index f21f9aba..d1a1427b 100644 --- a/0163-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch +++ b/0163-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch @@ -1,7 +1,7 @@ From ab9c2a7711858b2300abf802230c044db55c5171 Mon Sep 17 00:00:00 2001 From: Laszlo Ersek Date: Mon, 21 Nov 2016 15:34:00 +0100 -Subject: [PATCH 163/215] efi/chainloader: fix wrong sanity check in +Subject: [PATCH 163/216] efi/chainloader: fix wrong sanity check in relocate_coff() In relocate_coff(), the relocation entries are parsed from the original diff --git a/0164-efi-chainloader-truncate-overlong-relocation-section.patch b/0164-efi-chainloader-truncate-overlong-relocation-section.patch index a2005bd2..e510762f 100644 --- a/0164-efi-chainloader-truncate-overlong-relocation-section.patch +++ b/0164-efi-chainloader-truncate-overlong-relocation-section.patch @@ -1,7 +1,7 @@ From 243bfac3395d76a7fc7344c5471e49ea41689233 Mon Sep 17 00:00:00 2001 From: Laszlo Ersek Date: Wed, 23 Nov 2016 06:27:09 +0100 -Subject: [PATCH 164/215] efi/chainloader: truncate overlong relocation section +Subject: [PATCH 164/216] efi/chainloader: truncate overlong relocation section The UEFI Windows 7 boot loader ("EFI/Microsoft/Boot/bootmgfw.efi", SHA1 31b410e029bba87d2068c65a80b88882f9f8ea25) has inconsistent headers. diff --git a/0165-linuxefi-minor-cleanups.patch b/0165-linuxefi-minor-cleanups.patch index 4b422ace..70a1998b 100644 --- a/0165-linuxefi-minor-cleanups.patch +++ b/0165-linuxefi-minor-cleanups.patch @@ -1,7 +1,7 @@ From ea34d6d6755dcd818fe6e74526a58a4f818f711a Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Feb 2017 16:31:52 -0500 -Subject: [PATCH 165/215] linuxefi: minor cleanups +Subject: [PATCH 165/216] linuxefi: minor cleanups Signed-off-by: Peter Jones --- diff --git a/0166-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch b/0166-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch index 25d964f3..3efa07f3 100644 --- a/0166-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch +++ b/0166-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch @@ -1,7 +1,7 @@ From 543b4c21f3bf43b8919bd4b47195ebb542b73733 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Feb 2017 16:18:54 -0500 -Subject: [PATCH 166/215] Handle multi-arch (64-on-32) boot in linuxefi loader. +Subject: [PATCH 166/216] Handle multi-arch (64-on-32) boot in linuxefi loader. Allow booting 64-bit kernels on 32-bit EFI on x86. diff --git a/0167-Fix-up-linux-params-usage.patch b/0167-Fix-up-linux-params-usage.patch index a4f0b059..d8f4d77a 100644 --- a/0167-Fix-up-linux-params-usage.patch +++ b/0167-Fix-up-linux-params-usage.patch @@ -1,7 +1,7 @@ From 02a30356c3a09ac0959abdc4a29b88a59e1f1ac1 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 30 May 2017 14:16:07 -0400 -Subject: [PATCH 167/215] Fix up linux params usage... +Subject: [PATCH 167/216] Fix up linux params usage... Signed-off-by: Peter Jones --- diff --git a/0168-Make-exit-take-a-return-code.patch b/0168-Make-exit-take-a-return-code.patch index 55f0cce2..33595d93 100644 --- a/0168-Make-exit-take-a-return-code.patch +++ b/0168-Make-exit-take-a-return-code.patch @@ -1,7 +1,7 @@ From 874de3a91070b6f056434f2fce48d778ff84c665 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 26 Feb 2014 21:49:12 -0500 -Subject: [PATCH 168/215] Make "exit" take a return code. +Subject: [PATCH 168/216] Make "exit" take a return code. This adds "exit" with a return code. With this patch, any "exit" command /may/ include a return code, and on platforms that support diff --git a/0169-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch b/0169-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch index 3679fb2e..a10b5d8d 100644 --- a/0169-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch +++ b/0169-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch @@ -1,7 +1,7 @@ From a327d2275238e8dd54ec8599d2d158e9cdd7693c Mon Sep 17 00:00:00 2001 From: Mark Salter Date: Mon, 17 Apr 2017 08:44:29 -0400 -Subject: [PATCH 169/215] arm64: make sure fdt has #address-cells and +Subject: [PATCH 169/216] arm64: make sure fdt has #address-cells and #size-cells properties Recent upstream changes to kexec-tools relies on #address-cells diff --git a/0170-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch b/0170-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch index b427808b..060a9588 100644 --- a/0170-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch +++ b/0170-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch @@ -1,7 +1,7 @@ From 848a699f96e8529a30a47670051c5cb1f1a91d66 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 9 May 2016 14:15:17 -0400 -Subject: [PATCH 170/215] Add some grub_dprintf() in the secure boot verify +Subject: [PATCH 170/216] Add some grub_dprintf() in the secure boot verify code. Signed-off-by: Peter Jones diff --git a/0171-Make-our-info-pages-say-grub2-where-appropriate.patch b/0171-Make-our-info-pages-say-grub2-where-appropriate.patch index daf68635..d2ce2fea 100644 --- a/0171-Make-our-info-pages-say-grub2-where-appropriate.patch +++ b/0171-Make-our-info-pages-say-grub2-where-appropriate.patch @@ -1,7 +1,7 @@ From 004821d9e309f65e4ff533f66787663fe2a54eac Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 6 May 2016 18:43:08 -0400 -Subject: [PATCH 171/215] Make our info pages say "grub2" where appropriate. +Subject: [PATCH 171/216] Make our info pages say "grub2" where appropriate. This needs to be hooked up to --program-transform=, but I haven't had time. diff --git a/0172-print-more-debug-info-in-our-module-loader.patch b/0172-print-more-debug-info-in-our-module-loader.patch index dc6cf343..049a8e17 100644 --- a/0172-print-more-debug-info-in-our-module-loader.patch +++ b/0172-print-more-debug-info-in-our-module-loader.patch @@ -1,7 +1,7 @@ From 6025b0afe64157eb922d562e85f1734b7ce800c9 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 1 May 2017 11:19:40 -0400 -Subject: [PATCH 172/215] print more debug info in our module loader. +Subject: [PATCH 172/216] print more debug info in our module loader. Signed-off-by: Peter Jones --- diff --git a/0173-macos-just-build-chainloader-entries-don-t-try-any-x.patch b/0173-macos-just-build-chainloader-entries-don-t-try-any-x.patch index f25b758d..7aa12e84 100644 --- a/0173-macos-just-build-chainloader-entries-don-t-try-any-x.patch +++ b/0173-macos-just-build-chainloader-entries-don-t-try-any-x.patch @@ -1,7 +1,7 @@ From 21539770394174892fe90ab9ce09a4d9a7e2a676 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 24 May 2017 12:42:32 -0400 -Subject: [PATCH 173/215] macos: just build chainloader entries, don't try any +Subject: [PATCH 173/216] macos: just build chainloader entries, don't try any xnu xnu. Since our bugs tell us that the xnu boot entries really just don't work diff --git a/0174-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch b/0174-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch index 95c2f806..51e8b125 100644 --- a/0174-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch +++ b/0174-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch @@ -1,7 +1,7 @@ From ba06fbb797dff2261df7d211484c98905447ddb6 Mon Sep 17 00:00:00 2001 From: Jeff Mahoney Date: Wed, 18 Dec 2013 09:57:04 +0000 -Subject: [PATCH 174/215] grub2/btrfs: Add ability to boot from subvolumes +Subject: [PATCH 174/216] grub2/btrfs: Add ability to boot from subvolumes This patch adds the ability to specify a different root on a btrfs filesystem too boot from other than the default one. diff --git a/0175-export-btrfs_subvol-and-btrfs_subvolid.patch b/0175-export-btrfs_subvol-and-btrfs_subvolid.patch index e5b6e702..a4cbf114 100644 --- a/0175-export-btrfs_subvol-and-btrfs_subvolid.patch +++ b/0175-export-btrfs_subvol-and-btrfs_subvolid.patch @@ -1,7 +1,7 @@ From c2d51bfc2fedf707ec4bc8cca9a10cb1100c6888 Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Wed, 18 Dec 2013 09:57:04 +0000 -Subject: [PATCH 175/215] export btrfs_subvol and btrfs_subvolid +Subject: [PATCH 175/216] export btrfs_subvol and btrfs_subvolid We should export btrfs_subvol and btrfs_subvolid to have both visible to subsidiary configuration files loaded using configfile. diff --git a/0176-grub2-btrfs-03-follow_default.patch b/0176-grub2-btrfs-03-follow_default.patch index ddccdb1f..9057bbee 100644 --- a/0176-grub2-btrfs-03-follow_default.patch +++ b/0176-grub2-btrfs-03-follow_default.patch @@ -1,7 +1,7 @@ From afc0024ac644e80552c808e8b8def04fd7f89918 Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 21 Aug 2014 03:39:11 +0000 -Subject: [PATCH 176/215] grub2-btrfs-03-follow_default +Subject: [PATCH 176/216] grub2-btrfs-03-follow_default --- grub-core/fs/btrfs.c | 107 ++++++++++++++++++++++++++++++++++++--------------- diff --git a/0177-grub2-btrfs-04-grub2-install.patch b/0177-grub2-btrfs-04-grub2-install.patch index f4aadd8a..536ec534 100644 --- a/0177-grub2-btrfs-04-grub2-install.patch +++ b/0177-grub2-btrfs-04-grub2-install.patch @@ -1,7 +1,7 @@ From a5cb6219b1f4abb50cbe0254ee6a2850e379854f Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 21 Aug 2014 03:39:11 +0000 -Subject: [PATCH 177/215] grub2-btrfs-04-grub2-install +Subject: [PATCH 177/216] grub2-btrfs-04-grub2-install --- grub-core/osdep/linux/getroot.c | 7 +++++++ diff --git a/0178-grub2-btrfs-05-grub2-mkconfig.patch b/0178-grub2-btrfs-05-grub2-mkconfig.patch index 01aa8f4d..8407c350 100644 --- a/0178-grub2-btrfs-05-grub2-mkconfig.patch +++ b/0178-grub2-btrfs-05-grub2-mkconfig.patch @@ -1,7 +1,7 @@ From 3312b0eab4773f09b00d294e3438d6cf881d62ef Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 21 Aug 2014 03:39:11 +0000 -Subject: [PATCH 178/215] grub2-btrfs-05-grub2-mkconfig +Subject: [PATCH 178/216] grub2-btrfs-05-grub2-mkconfig --- util/grub-mkconfig.in | 3 ++- diff --git a/0179-grub2-btrfs-06-subvol-mount.patch b/0179-grub2-btrfs-06-subvol-mount.patch index b689f027..b8f2445e 100644 --- a/0179-grub2-btrfs-06-subvol-mount.patch +++ b/0179-grub2-btrfs-06-subvol-mount.patch @@ -1,7 +1,7 @@ From 421b1facc21a25ca28a48c9dd323c48c5ce8a46b Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Fri, 22 May 2015 11:45:25 +0000 -Subject: [PATCH 179/215] grub2-btrfs-06-subvol-mount +Subject: [PATCH 179/216] grub2-btrfs-06-subvol-mount --- grub-core/fs/btrfs.c | 195 +++++++++++++++++++++++++++++++++++++++- diff --git a/0180-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch b/0180-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch index 2de45d29..868d9c3c 100644 --- a/0180-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch +++ b/0180-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch @@ -1,7 +1,7 @@ From 1eeea190cf2e134fddb448c7b55e6c82697f3f72 Mon Sep 17 00:00:00 2001 From: Dusty Mabe Date: Sat, 18 Jul 2015 15:38:08 +0000 -Subject: [PATCH 180/215] No more "Bootable Snapshot" submenu in grub.cfg. +Subject: [PATCH 180/216] No more "Bootable Snapshot" submenu in grub.cfg. This breaks grubby (run on kernel upgrades) because grubby just does a search for "menuentry". diff --git a/0181-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch b/0181-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch index cced964e..2c934320 100644 --- a/0181-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch +++ b/0181-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch @@ -1,7 +1,7 @@ From 5f9e9d0d069b416175a2102edc574ffb9d523978 Mon Sep 17 00:00:00 2001 From: Andrei Borzenkov Date: Tue, 21 Jun 2016 16:44:17 +0000 -Subject: [PATCH 181/215] Fallback to old subvol name scheme to support old +Subject: [PATCH 181/216] Fallback to old subvol name scheme to support old snapshot config Ref: bsc#953538 diff --git a/0182-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch b/0182-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch index d264e248..efa2eeb9 100644 --- a/0182-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch +++ b/0182-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch @@ -1,7 +1,7 @@ From 158b6b3987ed402ddcb6d0568acbb60cc7a01aac Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 11 May 2017 08:56:57 +0000 -Subject: [PATCH 182/215] Grub not working correctly with btrfs snapshots +Subject: [PATCH 182/216] Grub not working correctly with btrfs snapshots (bsc#1026511) --- diff --git a/0183-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch b/0183-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch index d94f80c6..56c3b20f 100644 --- a/0183-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch +++ b/0183-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch @@ -1,7 +1,7 @@ From bdc07d05d0eeb39f0c90e7f8f6850016ebc4bf6b Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 1 Jun 2017 09:59:56 -0400 -Subject: [PATCH 183/215] Add grub_efi_allocate_pool() and grub_efi_free_pool() +Subject: [PATCH 183/216] Add grub_efi_allocate_pool() and grub_efi_free_pool() wrappers. Signed-off-by: Peter Jones diff --git a/0184-Use-grub_efi_.-memory-helpers-where-reasonable.patch b/0184-Use-grub_efi_.-memory-helpers-where-reasonable.patch index c6d2c8bb..9cb87b83 100644 --- a/0184-Use-grub_efi_.-memory-helpers-where-reasonable.patch +++ b/0184-Use-grub_efi_.-memory-helpers-where-reasonable.patch @@ -1,7 +1,7 @@ From 0e6c1a61c5a7c38bd04a0d494dade62bc2c8cd43 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 1 Jun 2017 10:06:38 -0400 -Subject: [PATCH 184/215] Use grub_efi_...() memory helpers where reasonable. +Subject: [PATCH 184/216] Use grub_efi_...() memory helpers where reasonable. This uses grub_efi_allocate_pool(), grub_efi_free_pool(), and grub_efi_free_pages() instead of open-coded efi_call_N() calls, so we diff --git a/0185-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch b/0185-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch index 25cb3127..5176b35a 100644 --- a/0185-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch +++ b/0185-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch @@ -1,7 +1,7 @@ From 4759e79a841a9d7eab743e67715459d3a864a29f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 1 Jun 2017 10:07:50 -0400 -Subject: [PATCH 185/215] Add PRIxGRUB_EFI_STATUS and use it. +Subject: [PATCH 185/216] Add PRIxGRUB_EFI_STATUS and use it. This avoids syntax checkers getting confused about if it's llx or lx. diff --git a/0186-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch b/0186-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch index 1340df49..e4bf9002 100644 --- a/0186-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch +++ b/0186-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch @@ -1,7 +1,7 @@ From c7bb1be13a759a55216c99662d660614a161c37f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:42:57 -0400 -Subject: [PATCH 186/215] Don't use dynamic sized arrays since we don't build +Subject: [PATCH 186/216] Don't use dynamic sized arrays since we don't build with -std=c99 --- diff --git a/0187-don-t-ignore-const.patch b/0187-don-t-ignore-const.patch index 536b3aa2..fb0f0cad 100644 --- a/0187-don-t-ignore-const.patch +++ b/0187-don-t-ignore-const.patch @@ -1,7 +1,7 @@ From 3eb59abe528f660e24e004a99b86686ea2f022c5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:43:22 -0400 -Subject: [PATCH 187/215] don't ignore const +Subject: [PATCH 187/216] don't ignore const --- grub-core/net/tftp.c | 2 +- diff --git a/0188-don-t-use-int-for-efi-status.patch b/0188-don-t-use-int-for-efi-status.patch index d6d7ab74..175d2ae8 100644 --- a/0188-don-t-use-int-for-efi-status.patch +++ b/0188-don-t-use-int-for-efi-status.patch @@ -1,7 +1,7 @@ From d4517c646fb4617a9ac162489b2fbaf9c2fcdd7b Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:44:59 -0400 -Subject: [PATCH 188/215] don't use int for efi status +Subject: [PATCH 188/216] don't use int for efi status --- grub-core/kern/efi/efi.c | 2 +- diff --git a/0189-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch b/0189-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch index ba95ce02..ae683400 100644 --- a/0189-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch +++ b/0189-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch @@ -1,7 +1,7 @@ From 72eb71bcadf8f35851b15632e8ef4ad1d0a64513 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:46:23 -0400 -Subject: [PATCH 189/215] make GRUB_MOD_INIT() declare its function prototypes. +Subject: [PATCH 189/216] make GRUB_MOD_INIT() declare its function prototypes. --- include/grub/dl.h | 2 ++ diff --git a/0190-Clean-up-some-errors-in-the-linuxefi-loader.patch b/0190-Clean-up-some-errors-in-the-linuxefi-loader.patch index 75c290f2..1872186f 100644 --- a/0190-Clean-up-some-errors-in-the-linuxefi-loader.patch +++ b/0190-Clean-up-some-errors-in-the-linuxefi-loader.patch @@ -1,7 +1,7 @@ From e240faaa432ad7ba3f7ced51b983d8d663a83460 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 24 May 2017 15:58:18 -0400 -Subject: [PATCH 190/215] Clean up some errors in the linuxefi loader +Subject: [PATCH 190/216] Clean up some errors in the linuxefi loader Signed-off-by: Peter Jones --- diff --git a/0191-editenv-handle-relative-symlinks.patch b/0191-editenv-handle-relative-symlinks.patch index d09fe09f..c1e28f9c 100644 --- a/0191-editenv-handle-relative-symlinks.patch +++ b/0191-editenv-handle-relative-symlinks.patch @@ -1,7 +1,7 @@ From 9778fafba22ec67f97bb35a34980230966ebe0de Mon Sep 17 00:00:00 2001 From: Jonathan Lebon Date: Mon, 14 Aug 2017 14:37:20 -0400 -Subject: [PATCH 191/215] editenv: handle relative symlinks +Subject: [PATCH 191/216] editenv: handle relative symlinks Handle symlinks with targets relative to the containing dir. This ensures that the rename operation does not depend on the cwd. diff --git a/0192-Make-libgrub.pp-depend-on-config-util.h.patch b/0192-Make-libgrub.pp-depend-on-config-util.h.patch index 952df61f..45f09b8e 100644 --- a/0192-Make-libgrub.pp-depend-on-config-util.h.patch +++ b/0192-Make-libgrub.pp-depend-on-config-util.h.patch @@ -1,7 +1,7 @@ From b8baf7070cc80fc44ee998a4748029c893f5ab13 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 23 Aug 2017 10:37:27 -0400 -Subject: [PATCH 192/215] Make libgrub.pp depend on config-util.h +Subject: [PATCH 192/216] Make libgrub.pp depend on config-util.h If you build with "make -j48" a lot, sometimes you see: diff --git a/0193-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch b/0193-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch index b17c9018..44ff4630 100644 --- a/0193-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch +++ b/0193-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch @@ -1,7 +1,7 @@ From 385f38332007339ac7dd3e3e551c54faa3c32dbc Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 20 Apr 2017 13:29:06 -0400 -Subject: [PATCH 193/215] Don't guess /boot/efi/ as HFS+ on ppc machines in +Subject: [PATCH 193/216] Don't guess /boot/efi/ as HFS+ on ppc machines in grub-install This should never be trying this, and since we've consolidated the diff --git a/0194-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch b/0194-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch index 57f576db..786c7b15 100644 --- a/0194-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch +++ b/0194-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch @@ -1,7 +1,7 @@ From 733966aa9d241a0987a7097eca74b0f58b426833 Mon Sep 17 00:00:00 2001 From: Konrad Rzeszutek Wilk Date: Mon, 28 Aug 2017 13:51:14 -0400 -Subject: [PATCH 194/215] Fix util/grub.d/20_linux_xen.in: Add xen_boot command +Subject: [PATCH 194/216] Fix util/grub.d/20_linux_xen.in: Add xen_boot command support for aarch64 Commit d33045ce7ffcb7c1e4a60c14d5ca64b36e3c5abe introduced diff --git a/0195-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch b/0195-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch index b188d96f..63477048 100644 --- a/0195-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch +++ b/0195-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch @@ -1,7 +1,7 @@ From d592ef69ef92e3f7a414577af70678be706ff8c8 Mon Sep 17 00:00:00 2001 From: Konrad Rzeszutek Wilk Date: Mon, 28 Aug 2017 13:59:12 -0400 -Subject: [PATCH 195/215] Use grub-file to figure out whether multiboot2 should +Subject: [PATCH 195/216] Use grub-file to figure out whether multiboot2 should be used for Xen.gz The multiboot2 is much more preferable than multiboot. Especiall diff --git a/0196-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch b/0196-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch index 06a2ba22..87dd3ebb 100644 --- a/0196-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch +++ b/0196-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch @@ -1,7 +1,7 @@ From ae2759407aad1b5cfee90299ef0a6f53ca4d3d9a Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 19 Oct 2017 11:29:11 -0400 -Subject: [PATCH 196/215] 20_linux_xen: load xen or multiboot{,2} modules as +Subject: [PATCH 196/216] 20_linux_xen: load xen or multiboot{,2} modules as needed. Signed-off-by: Peter Jones diff --git a/0197-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch b/0197-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch index a493ecdb..063a5507 100644 --- a/0197-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch +++ b/0197-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch @@ -1,7 +1,7 @@ From d88a8ff86cb9c360bc92b75db69e5024b1e814cc Mon Sep 17 00:00:00 2001 From: "David E. Box" Date: Fri, 15 Sep 2017 15:37:05 -0700 -Subject: [PATCH 197/215] tsc: Change default tsc calibration method to pmtimer +Subject: [PATCH 197/216] tsc: Change default tsc calibration method to pmtimer on EFI systems On efi systems, make pmtimer based tsc calibration the default over the diff --git a/0198-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch b/0198-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch index 97ea542f..c4650086 100644 --- a/0198-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch +++ b/0198-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch @@ -1,7 +1,7 @@ From ee10486cadcae785711ccc7c46dac24a500be8fc Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 7 Nov 2017 17:12:17 -0500 -Subject: [PATCH 198/215] Make pmtimer tsc calibration not take 51 seconds to +Subject: [PATCH 198/216] Make pmtimer tsc calibration not take 51 seconds to fail. On my laptop running at 2.4GHz, if I run a VM where tsc calibration diff --git a/0199-align-struct-efi_variable-better.patch b/0199-align-struct-efi_variable-better.patch index 16fb9cae..9fdcca52 100644 --- a/0199-align-struct-efi_variable-better.patch +++ b/0199-align-struct-efi_variable-better.patch @@ -1,7 +1,7 @@ From cfcacf01ed042f6354c5d4249bdc6d883d04b330 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 27 Feb 2018 13:55:35 -0500 -Subject: [PATCH 199/215] align struct efi_variable better... +Subject: [PATCH 199/216] align struct efi_variable better... --- include/grub/efiemu/runtime.h | 2 +- diff --git a/0200-Add-quicksort-implementation.patch b/0200-Add-quicksort-implementation.patch index f3de7024..e7fa6a62 100644 --- a/0200-Add-quicksort-implementation.patch +++ b/0200-Add-quicksort-implementation.patch @@ -1,7 +1,7 @@ From f46dc44957a3a31a86a215d43f3971fa4ca97318 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 9 Dec 2016 15:39:47 -0500 -Subject: [PATCH 200/215] Add quicksort implementation +Subject: [PATCH 200/216] Add quicksort implementation This will be used to sort the boot menu entries that are read from the BootLoaderSpec config files. diff --git a/0201-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch b/0201-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch index 04f5fe27..19527bff 100644 --- a/0201-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch +++ b/0201-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch @@ -1,7 +1,7 @@ From de3430a0a616a9600ccac0f0a9df661446661999 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 9 Dec 2016 15:40:58 -0500 -Subject: [PATCH 201/215] Add blscfg command support to parse BootLoaderSpec +Subject: [PATCH 201/216] Add blscfg command support to parse BootLoaderSpec config fragments The BootLoaderSpec (BLS) defines a scheme where different bootloaders can diff --git a/0202-Add-BLS-support-to-grub-mkconfig.patch b/0202-Add-BLS-support-to-grub-mkconfig.patch index 0dd0536b..502d311a 100644 --- a/0202-Add-BLS-support-to-grub-mkconfig.patch +++ b/0202-Add-BLS-support-to-grub-mkconfig.patch @@ -1,7 +1,7 @@ From 83e296e519bbb551e06a6d011daaa16bbfee8b86 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 9 Dec 2016 15:40:29 -0500 -Subject: [PATCH 202/215] Add BLS support to grub-mkconfig +Subject: [PATCH 202/216] Add BLS support to grub-mkconfig GRUB now has BootLoaderSpec support, the user can choose to use this by setting GRUB_ENABLE_BLSCFG to true in /etc/default/grub. On this setup, diff --git a/0203-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch b/0203-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch index 1143f7d4..c52b0997 100644 --- a/0203-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch +++ b/0203-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch @@ -1,7 +1,7 @@ From 5ee3b4f17f20848f8cddff1313fbd99048b46036 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 6 Feb 2018 11:02:09 +0100 -Subject: [PATCH 203/215] Remove duplicated grub_exit() definition for grub-emu +Subject: [PATCH 203/216] Remove duplicated grub_exit() definition for grub-emu platform The grub_exit() function signature was changed on all platforms to take a diff --git a/0204-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch b/0204-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch index 13a331f8..cb1218bb 100644 --- a/0204-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch +++ b/0204-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch @@ -1,7 +1,7 @@ From a0029e01e10b5077c88aa56b12314ace5e9c3e4e Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 6 Feb 2018 11:16:28 +0100 -Subject: [PATCH 204/215] Don't attempt to backtrace on grub_abort() for +Subject: [PATCH 204/216] Don't attempt to backtrace on grub_abort() for grub-emu The emu platform doesn't have a grub_backtrace() implementation, so this diff --git a/0205-Enable-blscfg-command-for-the-emu-platform.patch b/0205-Enable-blscfg-command-for-the-emu-platform.patch index 30c0cde4..b0fdf5a5 100644 --- a/0205-Enable-blscfg-command-for-the-emu-platform.patch +++ b/0205-Enable-blscfg-command-for-the-emu-platform.patch @@ -1,7 +1,7 @@ From ad586ac13d32bd610c86aaa3d8972101371476eb Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Fri, 2 Feb 2018 11:36:29 +0100 -Subject: [PATCH 205/215] Enable blscfg command for the emu platform +Subject: [PATCH 205/216] Enable blscfg command for the emu platform Allow grub-emu to call a blscfg command. This may be useful for platforms that don't support GRUB, so grub-emu can be used to parse the BLS configs diff --git a/0206-Add-linux-and-initrd-commands-for-grub-emu.patch b/0206-Add-linux-and-initrd-commands-for-grub-emu.patch index 3c2cb6eb..a6fd1d80 100644 --- a/0206-Add-linux-and-initrd-commands-for-grub-emu.patch +++ b/0206-Add-linux-and-initrd-commands-for-grub-emu.patch @@ -1,7 +1,7 @@ From cc17b5318a72426969bf50748056ae526f0011b9 Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Tue, 6 Feb 2018 09:09:00 +0100 -Subject: [PATCH 206/215] Add linux and initrd commands for grub-emu +Subject: [PATCH 206/216] Add linux and initrd commands for grub-emu When using grub-emu, the linux and initrd commands are used as arguments to the kexec command line tool, to allow booting the selected menu entry. diff --git a/0207-Fix-the-efidir-in-grub-setpassword.patch b/0207-Fix-the-efidir-in-grub-setpassword.patch index 88dca6cb..7beff220 100644 --- a/0207-Fix-the-efidir-in-grub-setpassword.patch +++ b/0207-Fix-the-efidir-in-grub-setpassword.patch @@ -1,7 +1,7 @@ From bb0547998b22e6c8c675fc67dda6ae1ddf3cf890 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 15 Mar 2018 14:12:54 -0400 -Subject: [PATCH 207/215] Fix the efidir in grub-setpassword +Subject: [PATCH 207/216] Fix the efidir in grub-setpassword Signed-off-by: Peter Jones --- diff --git a/0208-Add-grub2-switch-to-blscfg.patch b/0208-Add-grub2-switch-to-blscfg.patch index a6e44a88..8904f192 100644 --- a/0208-Add-grub2-switch-to-blscfg.patch +++ b/0208-Add-grub2-switch-to-blscfg.patch @@ -1,7 +1,7 @@ From 4db80106d593b4af6ba76d885e900b65a8e58868 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 15 Mar 2018 14:12:40 -0400 -Subject: [PATCH 208/215] Add grub2-switch-to-blscfg +Subject: [PATCH 208/216] Add grub2-switch-to-blscfg Signed-off-by: Peter Jones --- diff --git a/0209-Add-grub_debug_enabled.patch b/0209-Add-grub_debug_enabled.patch index 0f654725..710316e4 100644 --- a/0209-Add-grub_debug_enabled.patch +++ b/0209-Add-grub_debug_enabled.patch @@ -1,7 +1,7 @@ From 337affc3480f637d3a8199376e89e146d694682f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 30 Nov 2017 15:11:39 -0500 -Subject: [PATCH 209/215] Add grub_debug_enabled() +Subject: [PATCH 209/216] Add grub_debug_enabled() --- grub-core/kern/misc.c | 21 ++++++++++++++++----- diff --git a/0210-make-better-backtraces.patch b/0210-make-better-backtraces.patch index 1c89b395..113d2ce1 100644 --- a/0210-make-better-backtraces.patch +++ b/0210-make-better-backtraces.patch @@ -1,7 +1,7 @@ -From f13f45bf974917112907e46854c0571b66c484bf Mon Sep 17 00:00:00 2001 +From 0c858bc10a124de21d20e0523e69565bfed4df3b Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 6 Nov 2017 18:31:56 -0500 -Subject: [PATCH 210/215] make better backtraces +Subject: [PATCH 210/216] make better backtraces Signed-off-by: Peter Jones --- @@ -13,6 +13,7 @@ Signed-off-by: Peter Jones grub-core/kern/dl.c | 45 ++++++++++++ grub-core/kern/i386/backtrace.c | 120 ++++++++++++++++++++++++++++++++ grub-core/kern/i386/pc/init.c | 4 +- + grub-core/kern/ieee1275/init.c | 1 - grub-core/kern/misc.c | 13 ++-- grub-core/kern/mm.c | 6 +- grub-core/lib/arm64/backtrace.c | 62 ----------------- @@ -27,7 +28,7 @@ Signed-off-by: Peter Jones grub-core/kern/ia64/efi/startup.S | 3 +- grub-core/kern/sparc64/ieee1275/crt0.S | 3 +- grub-core/Makefile.am | 1 + - 22 files changed, 370 insertions(+), 165 deletions(-) + 23 files changed, 370 insertions(+), 166 deletions(-) rename grub-core/{lib => commands}/backtrace.c (98%) create mode 100644 grub-core/kern/arm64/backtrace.c create mode 100644 grub-core/kern/backtrace.c @@ -487,6 +488,18 @@ index 27bc68b8a53..b51d0abfa6e 100644 /* Initialize the console as early as possible. */ grub_console_init (); +diff --git a/grub-core/kern/ieee1275/init.c b/grub-core/kern/ieee1275/init.c +index 4dfa41a37d5..6eda8c1f353 100644 +--- a/grub-core/kern/ieee1275/init.c ++++ b/grub-core/kern/ieee1275/init.c +@@ -60,7 +60,6 @@ + #define HEAP_MAX_ADDR (unsigned long) (32 * 1024 * 1024) + #endif + +-extern char _start[]; + extern char _end[]; + + #ifdef __sparc__ diff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c index e758ab3416d..5c2d2039d0b 100644 --- a/grub-core/kern/misc.c diff --git a/0211-normal-don-t-draw-our-startup-message-if-debug-is-se.patch b/0211-normal-don-t-draw-our-startup-message-if-debug-is-se.patch index 9c7f28e1..c0aaa3b7 100644 --- a/0211-normal-don-t-draw-our-startup-message-if-debug-is-se.patch +++ b/0211-normal-don-t-draw-our-startup-message-if-debug-is-se.patch @@ -1,7 +1,7 @@ -From e4fcaa3907622f1dc597fd1186af06b0bad932bd Mon Sep 17 00:00:00 2001 +From 475996f3151cbe42707eecd0e55dc90761c204f5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 9 Nov 2017 15:58:52 -0500 -Subject: [PATCH 211/215] normal: don't draw our startup message if debug is +Subject: [PATCH 211/216] normal: don't draw our startup message if debug is set --- diff --git a/0212-Work-around-some-minor-include-path-weirdnesses.patch b/0212-Work-around-some-minor-include-path-weirdnesses.patch index f997f9b4..b764e5ac 100644 --- a/0212-Work-around-some-minor-include-path-weirdnesses.patch +++ b/0212-Work-around-some-minor-include-path-weirdnesses.patch @@ -1,7 +1,7 @@ -From 3bc207ca33d89282116932a951ddefdc9c2fc1cd Mon Sep 17 00:00:00 2001 +From 08303ac0f3431062651f1d556641ea54009da207 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 16 Mar 2018 13:28:57 -0400 -Subject: [PATCH 212/215] Work around some minor include path weirdnesses +Subject: [PATCH 212/216] Work around some minor include path weirdnesses Signed-off-by: Peter Jones --- diff --git a/0213-Make-it-possible-to-enabled-build-id-sha1.patch b/0213-Make-it-possible-to-enabled-build-id-sha1.patch index c8ca9b65..0c4bc8ea 100644 --- a/0213-Make-it-possible-to-enabled-build-id-sha1.patch +++ b/0213-Make-it-possible-to-enabled-build-id-sha1.patch @@ -1,7 +1,7 @@ -From bec4e099932427999e0171368ff582663d6d3d93 Mon Sep 17 00:00:00 2001 +From 3ad964eb443776aa0db28bf48fe0a81d11549c7c Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 25 Jun 2015 15:41:06 -0400 -Subject: [PATCH 213/215] Make it possible to enabled --build-id=sha1 +Subject: [PATCH 213/216] Make it possible to enabled --build-id=sha1 Signed-off-by: Peter Jones --- diff --git a/0214-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch b/0214-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch index d4182c0b..5eee2b23 100644 --- a/0214-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch +++ b/0214-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch @@ -1,7 +1,7 @@ -From 6a6d76e77ab7ba139816f9eb9315962f07fe0691 Mon Sep 17 00:00:00 2001 +From 767576df6c562e42b9e290321a85b44902e66f74 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Sun, 28 Jun 2015 13:09:58 -0400 -Subject: [PATCH 214/215] Add grub_qdprintf() - grub_dprintf() without the +Subject: [PATCH 214/216] Add grub_qdprintf() - grub_dprintf() without the file+line number. This just makes copy+paste of our debug loading info easier. diff --git a/0215-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch b/0215-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch index 10ffcba1..89b1b95a 100644 --- a/0215-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch +++ b/0215-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch @@ -1,7 +1,7 @@ -From 2c0e3b593751a7f96c66899ca4a0ac75fc10fb12 Mon Sep 17 00:00:00 2001 +From 12174521326fa23d11446021e1057c8a6d87bd89 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 25 Jun 2015 15:11:36 -0400 -Subject: [PATCH 215/215] Make a "gdb" dprintf that tells us load addresses. +Subject: [PATCH 215/216] Make a "gdb" dprintf that tells us load addresses. This makes a grub_dprintf() call during platform init and during module loading that tells us the virtual addresses of the .text and .data From d4f21da2e02d47e24796653957ce6ca5934becab Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 16 Mar 2018 15:58:23 -0400 Subject: [PATCH 06/45] Some more minor build issues. Signed-off-by: Peter Jones --- 0202-Add-BLS-support-to-grub-mkconfig.patch | 15 ++--- ...d-grub_exit-definition-for-grub-emu-.patch | 2 +- ...-backtrace-on-grub_abort-for-grub-em.patch | 2 +- ...-blscfg-command-for-the-emu-platform.patch | 2 +- ...nux-and-initrd-commands-for-grub-emu.patch | 2 +- 0207-Fix-the-efidir-in-grub-setpassword.patch | 2 +- 0208-Add-grub2-switch-to-blscfg.patch | 2 +- 0209-Add-grub_debug_enabled.patch | 2 +- 0210-make-better-backtraces.patch | 54 +++++++++++------- ...w-our-startup-message-if-debug-is-se.patch | 2 +- ...-some-minor-include-path-weirdnesses.patch | 2 +- ...it-possible-to-enabled-build-id-sha1.patch | 2 +- ...f-grub_dprintf-without-the-file-line.patch | 2 +- ...dprintf-that-tells-us-load-addresses.patch | 2 +- 0216-static.patch | 57 +++++++++++++++++++ grub.patches | 1 + 16 files changed, 111 insertions(+), 40 deletions(-) create mode 100644 0216-static.patch diff --git a/0202-Add-BLS-support-to-grub-mkconfig.patch b/0202-Add-BLS-support-to-grub-mkconfig.patch index 502d311a..bc9ddfb5 100644 --- a/0202-Add-BLS-support-to-grub-mkconfig.patch +++ b/0202-Add-BLS-support-to-grub-mkconfig.patch @@ -1,4 +1,4 @@ -From 83e296e519bbb551e06a6d011daaa16bbfee8b86 Mon Sep 17 00:00:00 2001 +From 9baa7c16e5138497862eba684d2c41e5ed16e787 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 9 Dec 2016 15:40:29 -0500 Subject: [PATCH 202/216] Add BLS support to grub-mkconfig @@ -10,8 +10,8 @@ files are parsed by blscfg command and the entries created dynamically. --- util/grub-mkconfig.in | 3 ++- util/grub-mkconfig_lib.in | 29 +++++++++++++++++++---------- - util/grub.d/10_linux.in | 36 ++++++++++++++++++++++++++++++++++-- - 3 files changed, 55 insertions(+), 13 deletions(-) + util/grub.d/10_linux.in | 37 +++++++++++++++++++++++++++++++++++-- + 3 files changed, 56 insertions(+), 13 deletions(-) diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in index 3b0bfe40308..760fe08727f 100644 @@ -104,10 +104,10 @@ index 2fb4f4f8143..70dc8d57e92 100644 fi IFS="$old_ifs" diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index 7e78ad33636..68f631772c3 100644 +index 7e78ad33636..f5daefb9d24 100644 --- a/util/grub.d/10_linux.in +++ b/util/grub.d/10_linux.in -@@ -126,6 +126,33 @@ linux_entry () +@@ -126,6 +126,34 @@ linux_entry () if [ -z "$boot_device_id" ]; then boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")" fi @@ -127,6 +127,7 @@ index 7e78ad33636..68f631772c3 100644 + prepare_grub_to_access_device ${bootefi_device} boot + + cat << EOF ++insmod blscfg +blscfg +if [ -s \$prefix/grubenv ]; then + load_env @@ -141,7 +142,7 @@ index 7e78ad33636..68f631772c3 100644 if [ x$type != xsimple ] ; then title=$(mktitle "$type" "$version") if [ x"$title" = x"$GRUB_ACTUAL_DEFAULT" ] || [ x"Previous Linux versions>$title" = x"$GRUB_ACTUAL_DEFAULT" ]; then -@@ -236,7 +263,10 @@ submenu_indentation="" +@@ -236,7 +264,10 @@ submenu_indentation="" is_top_level=true while [ "x$list" != "x" ] ; do linux=`version_find_latest $list` @@ -153,7 +154,7 @@ index 7e78ad33636..68f631772c3 100644 basename=`basename $linux` dirname=`dirname $linux` rel_dirname=`make_system_path_relative_to_its_root $dirname` -@@ -281,7 +311,9 @@ while [ "x$list" != "x" ] ; do +@@ -281,7 +312,9 @@ while [ "x$list" != "x" ] ; do fi if test -n "${initrd}" ; then diff --git a/0203-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch b/0203-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch index c52b0997..8af72978 100644 --- a/0203-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch +++ b/0203-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch @@ -1,4 +1,4 @@ -From 5ee3b4f17f20848f8cddff1313fbd99048b46036 Mon Sep 17 00:00:00 2001 +From 206697fab4e803807a83f1f7f330d3d009aba2fd Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 6 Feb 2018 11:02:09 +0100 Subject: [PATCH 203/216] Remove duplicated grub_exit() definition for grub-emu diff --git a/0204-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch b/0204-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch index cb1218bb..d239fbe1 100644 --- a/0204-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch +++ b/0204-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch @@ -1,4 +1,4 @@ -From a0029e01e10b5077c88aa56b12314ace5e9c3e4e Mon Sep 17 00:00:00 2001 +From 37844213b374844bc1a4056712241cf6d9421880 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 6 Feb 2018 11:16:28 +0100 Subject: [PATCH 204/216] Don't attempt to backtrace on grub_abort() for diff --git a/0205-Enable-blscfg-command-for-the-emu-platform.patch b/0205-Enable-blscfg-command-for-the-emu-platform.patch index b0fdf5a5..9406ff02 100644 --- a/0205-Enable-blscfg-command-for-the-emu-platform.patch +++ b/0205-Enable-blscfg-command-for-the-emu-platform.patch @@ -1,4 +1,4 @@ -From ad586ac13d32bd610c86aaa3d8972101371476eb Mon Sep 17 00:00:00 2001 +From 01839f5d2491ba1b5694d1c4b2f3c2818a2408ae Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Fri, 2 Feb 2018 11:36:29 +0100 Subject: [PATCH 205/216] Enable blscfg command for the emu platform diff --git a/0206-Add-linux-and-initrd-commands-for-grub-emu.patch b/0206-Add-linux-and-initrd-commands-for-grub-emu.patch index a6fd1d80..fc21f699 100644 --- a/0206-Add-linux-and-initrd-commands-for-grub-emu.patch +++ b/0206-Add-linux-and-initrd-commands-for-grub-emu.patch @@ -1,4 +1,4 @@ -From cc17b5318a72426969bf50748056ae526f0011b9 Mon Sep 17 00:00:00 2001 +From f1a8f489ec2cafdcfbdd3b60ffc7752bed8c8528 Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Tue, 6 Feb 2018 09:09:00 +0100 Subject: [PATCH 206/216] Add linux and initrd commands for grub-emu diff --git a/0207-Fix-the-efidir-in-grub-setpassword.patch b/0207-Fix-the-efidir-in-grub-setpassword.patch index 7beff220..fadd832a 100644 --- a/0207-Fix-the-efidir-in-grub-setpassword.patch +++ b/0207-Fix-the-efidir-in-grub-setpassword.patch @@ -1,4 +1,4 @@ -From bb0547998b22e6c8c675fc67dda6ae1ddf3cf890 Mon Sep 17 00:00:00 2001 +From 3682958910d45a129f38cb1f28bc61288f92a698 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 15 Mar 2018 14:12:54 -0400 Subject: [PATCH 207/216] Fix the efidir in grub-setpassword diff --git a/0208-Add-grub2-switch-to-blscfg.patch b/0208-Add-grub2-switch-to-blscfg.patch index 8904f192..02ca4d74 100644 --- a/0208-Add-grub2-switch-to-blscfg.patch +++ b/0208-Add-grub2-switch-to-blscfg.patch @@ -1,4 +1,4 @@ -From 4db80106d593b4af6ba76d885e900b65a8e58868 Mon Sep 17 00:00:00 2001 +From 95d9f5c317fb59dbb47c1df531fe5ab6f61e55af Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 15 Mar 2018 14:12:40 -0400 Subject: [PATCH 208/216] Add grub2-switch-to-blscfg diff --git a/0209-Add-grub_debug_enabled.patch b/0209-Add-grub_debug_enabled.patch index 710316e4..23136458 100644 --- a/0209-Add-grub_debug_enabled.patch +++ b/0209-Add-grub_debug_enabled.patch @@ -1,4 +1,4 @@ -From 337affc3480f637d3a8199376e89e146d694682f Mon Sep 17 00:00:00 2001 +From 73a860b83bc81959baabceeec6e9a32102884a57 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 30 Nov 2017 15:11:39 -0500 Subject: [PATCH 209/216] Add grub_debug_enabled() diff --git a/0210-make-better-backtraces.patch b/0210-make-better-backtraces.patch index 113d2ce1..76ed11bb 100644 --- a/0210-make-better-backtraces.patch +++ b/0210-make-better-backtraces.patch @@ -1,4 +1,4 @@ -From 0c858bc10a124de21d20e0523e69565bfed4df3b Mon Sep 17 00:00:00 2001 +From fe56f63c69beec5448db49884b389ff3392fcf7c Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 6 Nov 2017 18:31:56 -0500 Subject: [PATCH 210/216] make better backtraces @@ -9,7 +9,7 @@ Signed-off-by: Peter Jones grub-core/{lib => commands}/backtrace.c | 2 +- grub-core/gdb/cstub.c | 1 - grub-core/kern/arm64/backtrace.c | 75 ++++++++++++++++++++ - grub-core/kern/backtrace.c | 83 ++++++++++++++++++++++ + grub-core/kern/backtrace.c | 95 +++++++++++++++++++++++++ grub-core/kern/dl.c | 45 ++++++++++++ grub-core/kern/i386/backtrace.c | 120 ++++++++++++++++++++++++++++++++ grub-core/kern/i386/pc/init.c | 4 +- @@ -28,7 +28,7 @@ Signed-off-by: Peter Jones grub-core/kern/ia64/efi/startup.S | 3 +- grub-core/kern/sparc64/ieee1275/crt0.S | 3 +- grub-core/Makefile.am | 1 + - 23 files changed, 370 insertions(+), 166 deletions(-) + 23 files changed, 382 insertions(+), 166 deletions(-) rename grub-core/{lib => commands}/backtrace.c (98%) create mode 100644 grub-core/kern/arm64/backtrace.c create mode 100644 grub-core/kern/backtrace.c @@ -109,7 +109,7 @@ index b64acd70fee..99281472d36 100644 diff --git a/grub-core/kern/arm64/backtrace.c b/grub-core/kern/arm64/backtrace.c new file mode 100644 -index 00000000000..a4af6e4e006 +index 00000000000..70de1b29414 --- /dev/null +++ b/grub-core/kern/arm64/backtrace.c @@ -0,0 +1,75 @@ @@ -140,12 +140,12 @@ index 00000000000..a4af6e4e006 +#include + +void -+grub_backtrace_pointer (void *frame, unsigned long skip) ++grub_backtrace_pointer (void *frame, unsigned int skip) +{ + do + { + const char *name = NULL; -+ char *addr; ++ char *addr = NULL; + + void *ret = __builtin_return_address (skip); + frame = __builtin_frame_address (skip); @@ -181,7 +181,7 @@ index 00000000000..a4af6e4e006 +extern grub_uint64_t _data; + +void -+grub_backtrace_arch (unsigned long skip) ++grub_backtrace_arch (unsigned int skip) +{ + grub_printf ("Backtrace (.text %p .data %p):\n", + (void *)_text, (void *)_data); @@ -190,10 +190,10 @@ index 00000000000..a4af6e4e006 +} diff --git a/grub-core/kern/backtrace.c b/grub-core/kern/backtrace.c new file mode 100644 -index 00000000000..363b0e7e766 +index 00000000000..bd6a783f6d0 --- /dev/null +++ b/grub-core/kern/backtrace.c -@@ -0,0 +1,83 @@ +@@ -0,0 +1,95 @@ +/* + * GRUB -- GRand Unified Bootloader + * Copyright (C) 2009 Free Software Foundation, Inc. @@ -252,27 +252,39 @@ index 00000000000..363b0e7e766 + grub_printf ("%p", addr); +} + ++static void ++grub_backtrace_pointer_default (void *frame __attribute__((__unused__)), ++ unsigned int skip __attribute__((__unused__))) ++{ ++ return; ++} ++ ++void ++grub_backtrace_pointer (void *frame, unsigned int skip) ++ __attribute__((__weak__, ++ __alias__(("grub_backtrace_pointer_default")))); ++ +void +grub_backtrace_print_address (void *addr) + __attribute__((__weak__, + __alias__(("grub_backtrace_print_address_default")))); + +static void -+grub_backtrace_arch_default(unsigned long skip) ++grub_backtrace_arch_default(unsigned int skip) +{ + grub_backtrace_pointer(__builtin_frame_address(0), skip + 1); +} + -+void grub_backtrace_arch (unsigned long skip) ++void grub_backtrace_arch (unsigned int skip) + __attribute__((__weak__, __alias__(("grub_backtrace_arch_default")))); + -+void grub_backtrace (unsigned long skip) ++void grub_backtrace (unsigned int skip) +{ + grub_backtrace_arch(skip + 1); +} + +void grub_debug_backtrace (const char * const debug, -+ unsigned long skip) ++ unsigned int skip) +{ + if (grub_debug_enabled (debug)) + grub_backtrace (skip + 1); @@ -342,7 +354,7 @@ index 621070918d4..5028d157c46 100644 i++, s = (Elf_Shdr *) ((char *) s + e->e_shentsize)) diff --git a/grub-core/kern/i386/backtrace.c b/grub-core/kern/i386/backtrace.c new file mode 100644 -index 00000000000..75db596a167 +index 00000000000..60a6abfe93f --- /dev/null +++ b/grub-core/kern/i386/backtrace.c @@ -0,0 +1,120 @@ @@ -375,7 +387,7 @@ index 00000000000..75db596a167 +#define MAX_STACK_FRAME 102400 + +void -+grub_backtrace_pointer (void *frame, unsigned long skip) ++grub_backtrace_pointer (void *frame, unsigned int skip) +{ + void **ebp = (void **)frame; + unsigned long x = 0; @@ -444,7 +456,7 @@ index 00000000000..75db596a167 +extern unsigned long _data; + +void -+grub_backtrace_arch (unsigned long skip) ++grub_backtrace_arch (unsigned int skip) +{ + grub_printf ("Backtrace (.text %p .data %p):\n", + (void *)_text, (void *)_data); @@ -708,7 +720,7 @@ index c67273db3ae..00000000000 -} - diff --git a/include/grub/backtrace.h b/include/grub/backtrace.h -index 395519762f0..759918ebefd 100644 +index 395519762f0..275cf85e2d3 100644 --- a/include/grub/backtrace.h +++ b/include/grub/backtrace.h @@ -19,8 +19,14 @@ @@ -721,10 +733,10 @@ index 395519762f0..759918ebefd 100644 +#include + +void EXPORT_FUNC(grub_debug_backtrace) (const char * const debug, -+ unsigned long skip); -+void EXPORT_FUNC(grub_backtrace) (unsigned long skip); -+void grub_backtrace_arch (unsigned long skip); -+void grub_backtrace_pointer (void *ptr, unsigned long skip); ++ unsigned int skip); ++void EXPORT_FUNC(grub_backtrace) (unsigned int skip); ++void grub_backtrace_arch (unsigned int skip); ++void grub_backtrace_pointer (void *ptr, unsigned int skip); void grub_backtrace_print_address (void *addr); #endif diff --git a/0211-normal-don-t-draw-our-startup-message-if-debug-is-se.patch b/0211-normal-don-t-draw-our-startup-message-if-debug-is-se.patch index c0aaa3b7..d33bc945 100644 --- a/0211-normal-don-t-draw-our-startup-message-if-debug-is-se.patch +++ b/0211-normal-don-t-draw-our-startup-message-if-debug-is-se.patch @@ -1,4 +1,4 @@ -From 475996f3151cbe42707eecd0e55dc90761c204f5 Mon Sep 17 00:00:00 2001 +From 93b1871dd0f46bceb148fd8fd5664fe994ec3d8b Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 9 Nov 2017 15:58:52 -0500 Subject: [PATCH 211/216] normal: don't draw our startup message if debug is diff --git a/0212-Work-around-some-minor-include-path-weirdnesses.patch b/0212-Work-around-some-minor-include-path-weirdnesses.patch index b764e5ac..a4a200a6 100644 --- a/0212-Work-around-some-minor-include-path-weirdnesses.patch +++ b/0212-Work-around-some-minor-include-path-weirdnesses.patch @@ -1,4 +1,4 @@ -From 08303ac0f3431062651f1d556641ea54009da207 Mon Sep 17 00:00:00 2001 +From e7a35bd7770d0dff0130c49522bafa7ce767972e Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 16 Mar 2018 13:28:57 -0400 Subject: [PATCH 212/216] Work around some minor include path weirdnesses diff --git a/0213-Make-it-possible-to-enabled-build-id-sha1.patch b/0213-Make-it-possible-to-enabled-build-id-sha1.patch index 0c4bc8ea..f9dbbcdc 100644 --- a/0213-Make-it-possible-to-enabled-build-id-sha1.patch +++ b/0213-Make-it-possible-to-enabled-build-id-sha1.patch @@ -1,4 +1,4 @@ -From 3ad964eb443776aa0db28bf48fe0a81d11549c7c Mon Sep 17 00:00:00 2001 +From 243bd5d756c6dd91f77dea538310b5387f5628a5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 25 Jun 2015 15:41:06 -0400 Subject: [PATCH 213/216] Make it possible to enabled --build-id=sha1 diff --git a/0214-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch b/0214-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch index 5eee2b23..2cacded9 100644 --- a/0214-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch +++ b/0214-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch @@ -1,4 +1,4 @@ -From 767576df6c562e42b9e290321a85b44902e66f74 Mon Sep 17 00:00:00 2001 +From 62ba456cc91cbc31ab16a075057459f71bb73524 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Sun, 28 Jun 2015 13:09:58 -0400 Subject: [PATCH 214/216] Add grub_qdprintf() - grub_dprintf() without the diff --git a/0215-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch b/0215-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch index 89b1b95a..f0029e65 100644 --- a/0215-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch +++ b/0215-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch @@ -1,4 +1,4 @@ -From 12174521326fa23d11446021e1057c8a6d87bd89 Mon Sep 17 00:00:00 2001 +From eb632ed489ac2418f3386f7693a01e1863843c53 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 25 Jun 2015 15:11:36 -0400 Subject: [PATCH 215/216] Make a "gdb" dprintf that tells us load addresses. diff --git a/0216-static.patch b/0216-static.patch new file mode 100644 index 00000000..29472bfb --- /dev/null +++ b/0216-static.patch @@ -0,0 +1,57 @@ +From 3fa7a272a55df6ac6fe0108ee1d47b4f7a4d6456 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Fri, 16 Mar 2018 14:59:21 -0400 +Subject: [PATCH 216/216] static + +--- + util/grub-mkconfig_lib.in | 34 ++++++++++++++++++++++++++++++++++ + 1 file changed, 34 insertions(+) + +diff --git a/util/grub-mkconfig_lib.in b/util/grub-mkconfig_lib.in +index 70dc8d57e92..693340f6912 100644 +--- a/util/grub-mkconfig_lib.in ++++ b/util/grub-mkconfig_lib.in +@@ -128,6 +128,40 @@ EOF + fi + } + ++add_device_modules () ++{ ++ local device=$1 && shift ++ ++ old_ifs="$IFS" ++ IFS=' ++' ++ partmap="`"${grub_probe}" --device ${device} --target=partmap`" ++ for module in ${partmap} ; do ++ case "${module}" in ++ netbsd | openbsd) ++ echo "insmod part_bsd";; ++ *) ++ echo "insmod part_${module}";; ++ esac ++ done ++ ++ # Abstraction modules aren't auto-loaded. ++ abstraction="`"${grub_probe}" --device ${device} --target=abstraction`" ++ for module in ${abstraction} ; do ++ echo "insmod ${module}" ++ done ++ ++ fs="`"${grub_probe}" --device ${device} --target=fs`" ++ for module in ${fs} ; do ++ echo "insmod ${module}" ++ done ++} ++ ++get_device_uuid () ++{ ++ ++} ++ + prepare_grub_to_access_device () + { + local device=$1 && shift +-- +2.15.0 + diff --git a/grub.patches b/grub.patches index be8a1439..8a4199bc 100644 --- a/grub.patches +++ b/grub.patches @@ -213,3 +213,4 @@ Patch0212: 0212-Work-around-some-minor-include-path-weirdnesses.patch Patch0213: 0213-Make-it-possible-to-enabled-build-id-sha1.patch Patch0214: 0214-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch Patch0215: 0215-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch +Patch0216: 0216-static.patch From dd1f245e527f607fd747469194837d578666628b Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 16 Mar 2018 16:07:18 -0400 Subject: [PATCH 07/45] I am getting tired of this Signed-off-by: Peter Jones --- 0210-make-better-backtraces.patch | 6 +- ...w-our-startup-message-if-debug-is-se.patch | 2 +- ...-some-minor-include-path-weirdnesses.patch | 2 +- ...it-possible-to-enabled-build-id-sha1.patch | 2 +- ...f-grub_dprintf-without-the-file-line.patch | 2 +- ...dprintf-that-tells-us-load-addresses.patch | 2 +- 0216-static.patch | 57 ------------------- grub.patches | 1 - 8 files changed, 8 insertions(+), 66 deletions(-) delete mode 100644 0216-static.patch diff --git a/0210-make-better-backtraces.patch b/0210-make-better-backtraces.patch index 76ed11bb..dcc1e170 100644 --- a/0210-make-better-backtraces.patch +++ b/0210-make-better-backtraces.patch @@ -1,4 +1,4 @@ -From fe56f63c69beec5448db49884b389ff3392fcf7c Mon Sep 17 00:00:00 2001 +From 1954221a4b99a4f83500b4a52e41e68b7ca7c4cc Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 6 Nov 2017 18:31:56 -0500 Subject: [PATCH 210/216] make better backtraces @@ -354,7 +354,7 @@ index 621070918d4..5028d157c46 100644 i++, s = (Elf_Shdr *) ((char *) s + e->e_shentsize)) diff --git a/grub-core/kern/i386/backtrace.c b/grub-core/kern/i386/backtrace.c new file mode 100644 -index 00000000000..60a6abfe93f +index 00000000000..f3bb839e1d7 --- /dev/null +++ b/grub-core/kern/i386/backtrace.c @@ -0,0 +1,120 @@ @@ -463,7 +463,7 @@ index 00000000000..60a6abfe93f + skip += 1; +#if defined (__x86_64__) + asm volatile ("movq %%rbp, %%rdi\n" -+ "movq %0, %%rsi\n" ++ "movl %0, %%rsi\n" + "call " EXT_C("grub_backtrace_pointer") + : + : "r" (skip)); diff --git a/0211-normal-don-t-draw-our-startup-message-if-debug-is-se.patch b/0211-normal-don-t-draw-our-startup-message-if-debug-is-se.patch index d33bc945..9c3c9eb7 100644 --- a/0211-normal-don-t-draw-our-startup-message-if-debug-is-se.patch +++ b/0211-normal-don-t-draw-our-startup-message-if-debug-is-se.patch @@ -1,4 +1,4 @@ -From 93b1871dd0f46bceb148fd8fd5664fe994ec3d8b Mon Sep 17 00:00:00 2001 +From 82ae897af2691f21f500fb7bbee11263159236f0 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 9 Nov 2017 15:58:52 -0500 Subject: [PATCH 211/216] normal: don't draw our startup message if debug is diff --git a/0212-Work-around-some-minor-include-path-weirdnesses.patch b/0212-Work-around-some-minor-include-path-weirdnesses.patch index a4a200a6..85aa01ab 100644 --- a/0212-Work-around-some-minor-include-path-weirdnesses.patch +++ b/0212-Work-around-some-minor-include-path-weirdnesses.patch @@ -1,4 +1,4 @@ -From e7a35bd7770d0dff0130c49522bafa7ce767972e Mon Sep 17 00:00:00 2001 +From dcf64d8da777158cf00dec1b663f436f3b6bed9b Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 16 Mar 2018 13:28:57 -0400 Subject: [PATCH 212/216] Work around some minor include path weirdnesses diff --git a/0213-Make-it-possible-to-enabled-build-id-sha1.patch b/0213-Make-it-possible-to-enabled-build-id-sha1.patch index f9dbbcdc..28fdfa25 100644 --- a/0213-Make-it-possible-to-enabled-build-id-sha1.patch +++ b/0213-Make-it-possible-to-enabled-build-id-sha1.patch @@ -1,4 +1,4 @@ -From 243bd5d756c6dd91f77dea538310b5387f5628a5 Mon Sep 17 00:00:00 2001 +From cdf3041c33ca079b254f24c0e9262abe1efe0a57 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 25 Jun 2015 15:41:06 -0400 Subject: [PATCH 213/216] Make it possible to enabled --build-id=sha1 diff --git a/0214-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch b/0214-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch index 2cacded9..54202459 100644 --- a/0214-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch +++ b/0214-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch @@ -1,4 +1,4 @@ -From 62ba456cc91cbc31ab16a075057459f71bb73524 Mon Sep 17 00:00:00 2001 +From d94879fe76b6b8199afda00c76eafcce4769e1ba Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Sun, 28 Jun 2015 13:09:58 -0400 Subject: [PATCH 214/216] Add grub_qdprintf() - grub_dprintf() without the diff --git a/0215-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch b/0215-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch index f0029e65..782ec36f 100644 --- a/0215-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch +++ b/0215-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch @@ -1,4 +1,4 @@ -From eb632ed489ac2418f3386f7693a01e1863843c53 Mon Sep 17 00:00:00 2001 +From 0f79e0c4c498ea5b92e5475cb8845d48369b2169 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 25 Jun 2015 15:11:36 -0400 Subject: [PATCH 215/216] Make a "gdb" dprintf that tells us load addresses. diff --git a/0216-static.patch b/0216-static.patch deleted file mode 100644 index 29472bfb..00000000 --- a/0216-static.patch +++ /dev/null @@ -1,57 +0,0 @@ -From 3fa7a272a55df6ac6fe0108ee1d47b4f7a4d6456 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Fri, 16 Mar 2018 14:59:21 -0400 -Subject: [PATCH 216/216] static - ---- - util/grub-mkconfig_lib.in | 34 ++++++++++++++++++++++++++++++++++ - 1 file changed, 34 insertions(+) - -diff --git a/util/grub-mkconfig_lib.in b/util/grub-mkconfig_lib.in -index 70dc8d57e92..693340f6912 100644 ---- a/util/grub-mkconfig_lib.in -+++ b/util/grub-mkconfig_lib.in -@@ -128,6 +128,40 @@ EOF - fi - } - -+add_device_modules () -+{ -+ local device=$1 && shift -+ -+ old_ifs="$IFS" -+ IFS=' -+' -+ partmap="`"${grub_probe}" --device ${device} --target=partmap`" -+ for module in ${partmap} ; do -+ case "${module}" in -+ netbsd | openbsd) -+ echo "insmod part_bsd";; -+ *) -+ echo "insmod part_${module}";; -+ esac -+ done -+ -+ # Abstraction modules aren't auto-loaded. -+ abstraction="`"${grub_probe}" --device ${device} --target=abstraction`" -+ for module in ${abstraction} ; do -+ echo "insmod ${module}" -+ done -+ -+ fs="`"${grub_probe}" --device ${device} --target=fs`" -+ for module in ${fs} ; do -+ echo "insmod ${module}" -+ done -+} -+ -+get_device_uuid () -+{ -+ -+} -+ - prepare_grub_to_access_device () - { - local device=$1 && shift --- -2.15.0 - diff --git a/grub.patches b/grub.patches index 8a4199bc..be8a1439 100644 --- a/grub.patches +++ b/grub.patches @@ -213,4 +213,3 @@ Patch0212: 0212-Work-around-some-minor-include-path-weirdnesses.patch Patch0213: 0213-Make-it-possible-to-enabled-build-id-sha1.patch Patch0214: 0214-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch Patch0215: 0215-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch -Patch0216: 0216-static.patch From b65b645183ae9135edf43084ab1a4ec353a591bb Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 16 Mar 2018 16:41:23 -0400 Subject: [PATCH 08/45] Rebased to newer upstream for fedora-28 Signed-off-by: Peter Jones --- 0210-make-better-backtraces.patch | 80 ++++-- ...w-our-startup-message-if-debug-is-se.patch | 2 +- ...-some-minor-include-path-weirdnesses.patch | 2 +- ...it-possible-to-enabled-build-id-sha1.patch | 2 +- ...f-grub_dprintf-without-the-file-line.patch | 2 +- ...dprintf-that-tells-us-load-addresses.patch | 2 +- 0216-Static.patch | 265 ++++++++++++++++++ grub.patches | 1 + grub2.spec | 5 +- 9 files changed, 325 insertions(+), 36 deletions(-) create mode 100644 0216-Static.patch diff --git a/0210-make-better-backtraces.patch b/0210-make-better-backtraces.patch index dcc1e170..e71be4c8 100644 --- a/0210-make-better-backtraces.patch +++ b/0210-make-better-backtraces.patch @@ -1,4 +1,4 @@ -From 1954221a4b99a4f83500b4a52e41e68b7ca7c4cc Mon Sep 17 00:00:00 2001 +From 775dacceb8acc4036737080040f592f48daeb6e8 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 6 Nov 2017 18:31:56 -0500 Subject: [PATCH 210/216] make better backtraces @@ -8,16 +8,16 @@ Signed-off-by: Peter Jones grub-core/Makefile.core.def | 15 ++-- grub-core/{lib => commands}/backtrace.c | 2 +- grub-core/gdb/cstub.c | 1 - - grub-core/kern/arm64/backtrace.c | 75 ++++++++++++++++++++ + grub-core/kern/arm64/backtrace.c | 94 +++++++++++++++++++++++++ grub-core/kern/backtrace.c | 95 +++++++++++++++++++++++++ grub-core/kern/dl.c | 45 ++++++++++++ - grub-core/kern/i386/backtrace.c | 120 ++++++++++++++++++++++++++++++++ + grub-core/kern/i386/backtrace.c | 121 ++++++++++++++++++++++++++++++++ grub-core/kern/i386/pc/init.c | 4 +- grub-core/kern/ieee1275/init.c | 1 - grub-core/kern/misc.c | 13 ++-- grub-core/kern/mm.c | 6 +- - grub-core/lib/arm64/backtrace.c | 62 ----------------- - grub-core/lib/i386/backtrace.c | 78 --------------------- + grub-core/lib/arm64/backtrace.c | 62 ---------------- + grub-core/lib/i386/backtrace.c | 78 -------------------- include/grub/backtrace.h | 10 ++- include/grub/dl.h | 2 + include/grub/kernel.h | 3 + @@ -28,7 +28,7 @@ Signed-off-by: Peter Jones grub-core/kern/ia64/efi/startup.S | 3 +- grub-core/kern/sparc64/ieee1275/crt0.S | 3 +- grub-core/Makefile.am | 1 + - 23 files changed, 382 insertions(+), 166 deletions(-) + 23 files changed, 402 insertions(+), 166 deletions(-) rename grub-core/{lib => commands}/backtrace.c (98%) create mode 100644 grub-core/kern/arm64/backtrace.c create mode 100644 grub-core/kern/backtrace.c @@ -109,10 +109,10 @@ index b64acd70fee..99281472d36 100644 diff --git a/grub-core/kern/arm64/backtrace.c b/grub-core/kern/arm64/backtrace.c new file mode 100644 -index 00000000000..70de1b29414 +index 00000000000..019c6fdfef2 --- /dev/null +++ b/grub-core/kern/arm64/backtrace.c -@@ -0,0 +1,75 @@ +@@ -0,0 +1,94 @@ +/* + * GRUB -- GRand Unified Bootloader + * Copyright (C) 2009 Free Software Foundation, Inc. @@ -139,34 +139,53 @@ index 00000000000..70de1b29414 +#include +#include + ++#define MAX_STACK_FRAME 102400 ++ ++struct fplr ++{ ++ void *lr; ++ struct fplr *fp; ++}; ++ +void +grub_backtrace_pointer (void *frame, unsigned int skip) +{ -+ do ++ unsigned int x = 0; ++ struct fplr *fplr = (struct fplr *)frame; ++ ++ while (fplr) + { + const char *name = NULL; + char *addr = NULL; + -+ void *ret = __builtin_return_address (skip); -+ frame = __builtin_frame_address (skip); -+ if (ret) -+ ret = __builtin_extract_return_addr (ret); ++ grub_dprintf("backtrace", "fp is %p next_fp is %p\n", ++ fplr, fplr->fp); + -+ grub_dprintf ("backtrace", "frame address:%p return address:%p\n", frame, ret); -+ if (!ret) -+ break; ++ if (x >= skip) ++ { ++ name = grub_get_symbol_by_addr (fplr->lr, 1); ++ if (name) ++ addr = grub_resolve_symbol (name); ++ grub_backtrace_print_address (fplr->lr); + -+ name = grub_get_symbol_by_addr (ret, 1); -+ if (name) -+ addr = grub_resolve_symbol (name); -+ grub_backtrace_print_address (ret); ++ if (addr && addr != fplr->lr) ++ grub_printf (" %s() %p+%p \n", name ? name : "unknown", addr, ++ (void *)((grub_uint64_t)fplr->lr - (grub_uint64_t)addr)); ++ else ++ grub_printf(" %s() %p \n", name ? name : "unknown", addr); + -+ if (addr && addr != ret) -+ grub_printf (" %s() %p+%p \n", name ? name : "unknown", addr, -+ (char *)((char *)ret - addr)); -+ else -+ grub_printf(" %s() %p \n", name ? name : "unknown", addr); -+ } while (frame); ++ } ++ ++ x += 1; ++ ++ if (fplr->fp < fplr || ++ (grub_uint64_t)fplr->fp - (grub_uint64_t)fplr > MAX_STACK_FRAME || ++ fplr->fp == fplr) ++ { ++ break; ++ } ++ fplr = fplr->fp; ++ } +} + +asm ("\t.global \"_text\"\n" @@ -186,7 +205,7 @@ index 00000000000..70de1b29414 + grub_printf ("Backtrace (.text %p .data %p):\n", + (void *)_text, (void *)_data); + skip += 1; -+ grub_backtrace_pointer(__builtin_frame_address(skip), skip); ++ grub_backtrace_pointer(__builtin_frame_address(0), skip); +} diff --git a/grub-core/kern/backtrace.c b/grub-core/kern/backtrace.c new file mode 100644 @@ -354,10 +373,10 @@ index 621070918d4..5028d157c46 100644 i++, s = (Elf_Shdr *) ((char *) s + e->e_shentsize)) diff --git a/grub-core/kern/i386/backtrace.c b/grub-core/kern/i386/backtrace.c new file mode 100644 -index 00000000000..f3bb839e1d7 +index 00000000000..c4f7e3f0e90 --- /dev/null +++ b/grub-core/kern/i386/backtrace.c -@@ -0,0 +1,120 @@ +@@ -0,0 +1,121 @@ +/* + * GRUB -- GRand Unified Bootloader + * Copyright (C) 2009 Free Software Foundation, Inc. @@ -463,7 +482,8 @@ index 00000000000..f3bb839e1d7 + skip += 1; +#if defined (__x86_64__) + asm volatile ("movq %%rbp, %%rdi\n" -+ "movl %0, %%rsi\n" ++ "movq 0, %%rsi\n" ++ "movl %0, %%esi\n" + "call " EXT_C("grub_backtrace_pointer") + : + : "r" (skip)); diff --git a/0211-normal-don-t-draw-our-startup-message-if-debug-is-se.patch b/0211-normal-don-t-draw-our-startup-message-if-debug-is-se.patch index 9c3c9eb7..eea8d96a 100644 --- a/0211-normal-don-t-draw-our-startup-message-if-debug-is-se.patch +++ b/0211-normal-don-t-draw-our-startup-message-if-debug-is-se.patch @@ -1,4 +1,4 @@ -From 82ae897af2691f21f500fb7bbee11263159236f0 Mon Sep 17 00:00:00 2001 +From cc1566933cbc2d8d56aa77ab1ca8a15392ee0d42 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 9 Nov 2017 15:58:52 -0500 Subject: [PATCH 211/216] normal: don't draw our startup message if debug is diff --git a/0212-Work-around-some-minor-include-path-weirdnesses.patch b/0212-Work-around-some-minor-include-path-weirdnesses.patch index 85aa01ab..749ad6b0 100644 --- a/0212-Work-around-some-minor-include-path-weirdnesses.patch +++ b/0212-Work-around-some-minor-include-path-weirdnesses.patch @@ -1,4 +1,4 @@ -From dcf64d8da777158cf00dec1b663f436f3b6bed9b Mon Sep 17 00:00:00 2001 +From 1829abfbbb0544a06973eaa76659a282aae8b32d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 16 Mar 2018 13:28:57 -0400 Subject: [PATCH 212/216] Work around some minor include path weirdnesses diff --git a/0213-Make-it-possible-to-enabled-build-id-sha1.patch b/0213-Make-it-possible-to-enabled-build-id-sha1.patch index 28fdfa25..d3d2db48 100644 --- a/0213-Make-it-possible-to-enabled-build-id-sha1.patch +++ b/0213-Make-it-possible-to-enabled-build-id-sha1.patch @@ -1,4 +1,4 @@ -From cdf3041c33ca079b254f24c0e9262abe1efe0a57 Mon Sep 17 00:00:00 2001 +From 8e15f2dce2f8b2bdcad2d35da4d068e8af44eb1d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 25 Jun 2015 15:41:06 -0400 Subject: [PATCH 213/216] Make it possible to enabled --build-id=sha1 diff --git a/0214-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch b/0214-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch index 54202459..fe608879 100644 --- a/0214-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch +++ b/0214-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch @@ -1,4 +1,4 @@ -From d94879fe76b6b8199afda00c76eafcce4769e1ba Mon Sep 17 00:00:00 2001 +From 29216d4ad0f75587c42274ebd63b8526fa9e815c Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Sun, 28 Jun 2015 13:09:58 -0400 Subject: [PATCH 214/216] Add grub_qdprintf() - grub_dprintf() without the diff --git a/0215-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch b/0215-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch index 782ec36f..c219c0d3 100644 --- a/0215-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch +++ b/0215-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch @@ -1,4 +1,4 @@ -From 0f79e0c4c498ea5b92e5475cb8845d48369b2169 Mon Sep 17 00:00:00 2001 +From bc8e33848ee9888fd8b3aa61b4d3ecf9094356aa Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 25 Jun 2015 15:11:36 -0400 Subject: [PATCH 215/216] Make a "gdb" dprintf that tells us load addresses. diff --git a/0216-Static.patch b/0216-Static.patch new file mode 100644 index 00000000..b4a6c062 --- /dev/null +++ b/0216-Static.patch @@ -0,0 +1,265 @@ +From 808b17c8d8b5a4b4744a7fa0bfe59474ca1509f3 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Fri, 16 Mar 2018 16:22:20 -0400 +Subject: [PATCH 216/216] Static + +--- + Makefile.util.def | 7 +++ + util/grub-mkconfig_lib.in | 46 ++++++++++++++++ + util/grub-set-uuids.in | 134 ++++++++++++++++++++++++++++++++++++++++++++++ + util/grub.d/10_linux.in | 20 ++++--- + 4 files changed, 199 insertions(+), 8 deletions(-) + create mode 100644 util/grub-set-uuids.in + +diff --git a/Makefile.util.def b/Makefile.util.def +index fe392c24351..bbc38b894ad 100644 +--- a/Makefile.util.def ++++ b/Makefile.util.def +@@ -1348,6 +1348,13 @@ script = { + installdir = sbin; + }; + ++script = { ++ name = grub-set-uuids; ++ common = util/grub-set-uuids.in; ++ mansection = 8; ++ installdir = sbin; ++}; ++ + program = { + name = grub-glue-efi; + mansection = 1; +diff --git a/util/grub-mkconfig_lib.in b/util/grub-mkconfig_lib.in +index 70dc8d57e92..80674ef714d 100644 +--- a/util/grub-mkconfig_lib.in ++++ b/util/grub-mkconfig_lib.in +@@ -128,6 +128,52 @@ EOF + fi + } + ++add_device_modules () ++{ ++ local device=$1 && shift ++ ++ old_ifs="$IFS" ++ IFS=' ++' ++ partmap="`"${grub_probe}" --device ${device} --target=partmap`" ++ for module in ${partmap} ; do ++ case "${module}" in ++ netbsd | openbsd) ++ echo "insmod part_bsd";; ++ *) ++ echo "insmod part_${module}";; ++ esac ++ done ++ ++ # Abstraction modules aren't auto-loaded. ++ abstraction="`"${grub_probe}" --device ${device} --target=abstraction`" ++ for module in ${abstraction} ; do ++ echo "insmod ${module}" ++ done ++ ++ fs="`"${grub_probe}" --device ${device} --target=fs`" ++ for module in ${fs} ; do ++ echo "insmod ${module}" ++ done ++} ++ ++get_device_uuid () ++{ ++ local device=$1 && shift ++ if [ "$#" -gt 0 ]; then ++ local variable=$1 && shift ++ else ++ local variable=root ++ fi ++ old_ifs="$IFS" ++ IFS=' ++' ++ ++ fs_uuid="`"${grub_probe}" --device ${device} --target=fs_uuid 2> /dev/null`" ++ IFS="$old_ifs" ++ echo "$fs_uuid" ++} ++ + prepare_grub_to_access_device () + { + local device=$1 && shift +diff --git a/util/grub-set-uuids.in b/util/grub-set-uuids.in +new file mode 100644 +index 00000000000..72c239b4ef5 +--- /dev/null ++++ b/util/grub-set-uuids.in +@@ -0,0 +1,134 @@ ++#! /bin/sh ++# ++# Set a default boot entry for GRUB. ++# Copyright (C) 2004,2009 Free Software Foundation, Inc. ++# ++# GRUB is free software: you can redistribute it and/or modify ++# it under the terms of the GNU General Public License as published by ++# the Free Software Foundation, either version 3 of the License, or ++# (at your option) any later version. ++# ++# GRUB is distributed in the hope that it will be useful, ++# but WITHOUT ANY WARRANTY; without even the implied warranty of ++# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++# GNU General Public License for more details. ++# ++# You should have received a copy of the GNU General Public License ++# along with GRUB. If not, see . ++ ++# Initialize some variables. ++prefix=@prefix@ ++exec_prefix=@exec_prefix@ ++bindir=@bindir@ ++sysconfdir="@sysconfdir@" ++PACKAGE_NAME=@PACKAGE_NAME@ ++PACKAGE_VERSION=@PACKAGE_VERSION@ ++datarootdir="@datarootdir@" ++datadir="@datadir@" ++if [ "x$pkgdatadir" = x ]; then ++ pkgdatadir="${datadir}/@PACKAGE@" ++fi ++ ++self=`basename $0` ++ ++grub_editenv=${bindir}/@grub_editenv@ ++bootdir=`echo "/@bootdirname@" | sed 's,//*,/,g'` ++grubdir=`echo "/@bootdirname@/@grubdirname@" | sed 's,//*,/,g'` ++grubenv="" ++ ++export TEXTDOMAIN=@PACKAGE@ ++export TEXTDOMAINDIR="@localedir@" ++ ++# Usage: usage ++# Print the usage. ++usage () { ++ gettext_printf "Usage: %s [OPTION]\n" "$self" ++ gettext "Set the boot and root UUIDs for GRUB."; echo ++ echo ++ print_option_help "-h, --help" "$(gettext "print this message and exit")" ++ print_option_help "-V, --version" "$(gettext "print the version information and exit")" ++ dirmsg="$(gettext_printf "expect GRUB images under the directory DIR/%s instead of the %s directory" "@grubdirname@" "$grubdir")" ++ print_option_help "--boot-directory=$(gettext "DIR")" "$dirmsg" ++ print_option_help "--grub-environment=$(gettext "FILE")" "${grubdir}/grubenv" ++ #echo ++ #gettext "Report bugs to ."; echo ++} ++ ++argument () { ++ opt=$1 ++ shift ++ ++ if test $# -eq 0; then ++ gettext_printf "%s: option requires an argument -- \`%s'\n" "$self" "$opt" 1>&2 ++ exit 1 ++ fi ++ echo $1 ++} ++ ++# Check the arguments. ++while test $# -gt 0 ++do ++ option=$1 ++ shift ++ ++ case "$option" in ++ -h | --help) ++ usage ++ exit 0 ;; ++ -V | --version) ++ echo "$self (${PACKAGE_NAME}) ${PACKAGE_VERSION}" ++ exit 0 ;; ++ ++# Accept for compatibility ++ --root-directory) ++ rootdir=`argument $option "$@"`; shift ;; ++ --root-directory=*) ++ rootdir=`echo "$option" | sed 's/--root-directory=//'` ;; ++ ++ --boot-directory) ++ bootdir=`argument $option "$@"`; shift;; ++ --boot-directory=*) ++ bootdir=`echo "$option" | sed 's/--boot-directory=//'` ;; ++ ++ --grub-environment) ++ grubenv=`argument $option "$@"`; shift;; ++ --grub-environment=*) ++ grubenv=`echo "$option" | sed 's/--grub-environment=//'` ;; ++ ++ *) ++ gettext_printf "Unrecognized option \`%s'\n" "$option" 1>&2 ++ usage ++ exit 1 ++ ;; ++ esac ++done ++ ++if [ -z "$bootdir" ]; then ++ # Default bootdir if bootdir not initialized. ++ bootdir=/@bootdirname@ ++ ++ if [ -n "$rootdir" ] ; then ++ # Initialize bootdir if rootdir was initialized. ++ bootdir=${rootdir}/@bootdirname@ ++ fi ++fi ++ ++grubdir=`echo "${bootdir}/@grubdirname@" | sed 's,//*,/,g'` ++ ++if [ -z "$grubenv" ]; then ++ grubenv="${grubdir}/grubenv" ++fi ++ ++# Device containing our /boot partition. Usually the same as GRUB_DEVICE. ++GRUB_DEVICE_BOOT="`${grub_probe} --target=device /boot`" ++GRUB_DEVICE_BOOT_UUID_GENERATED="`${grub_probe} --device ${GRUB_DEVICE_BOOT} --target=fs_uuid 2> /dev/null`" || true ++ ++# Device containing our /boot/efi partition. Usually not the same as GRUB_DEVICE. ++GRUB_DEVICE_BOOT_EFI="`${grub_probe} --target=device /boot/efi`" ++GRUB_DEVICE_BOOT_EFI_UUID_GENERATED="`${grub_probe} --device ${GRUB_DEVICE_BOOT_EFI} --target=fs_uuid 2> /dev/null`" || true ++ ++$grub_editenv "${grubenv}" set "bootuuid=${GRUB_DEVICE_BOOT_EFI_UUID_GENERATED}" ++$grub_editenv "${grubenv}" set "rootuuid=${GRUB_DEVICE_BOOT_UUID_GENERATED}" ++ ++# Bye. ++exit 0 +diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in +index f5daefb9d24..232f417d3e6 100644 +--- a/util/grub.d/10_linux.in ++++ b/util/grub.d/10_linux.in +@@ -129,17 +129,21 @@ linux_entry () + + if [ "x${GRUB_ENABLE_BLSCFG}" = "xtrue" ]; then + if [ x$dirname = x/ ]; then +- if [ -z "${prepare_root_cache}" ]; then +- prepare_grub_to_access_device ${GRUB_DEVICE} +- fi ++ add_device_modules "${GRUB_DEVICE}" ++ uuid="$(get_device_uuid "${GRUB_DEVICE}")" ++ ${grub_editenv} - set rootuuid="${uuid}" + else +- if [ -z "${prepare_boot_cache}" ]; then +- prepare_grub_to_access_device ${GRUB_DEVICE_BOOT} +- fi ++ add_device_modules "${GRUB_DEVICE_BOOT}" ++ uuid="$(get_device_uuid "${GRUB_DEVICE_BOOT}")" ++ ${grub_editenv} - set rootuuid="${uuid}" + fi ++ if [ -d /sys/firmware/efi/efivars ]; then ++ bootefi_device="`${grub_probe} --target=device /boot/efi/`" ++ add_device_modules ${bootefi_device} + +- bootefi_device="`${grub_probe} --target=device /boot/efi/`" +- prepare_grub_to_access_device ${bootefi_device} boot ++ uuid="$(get_device_uuid "${bootefi_device}")" ++ ${grub_editenv} - set bootuuid="${uuid}" ++ fi + + cat << EOF + insmod blscfg +-- +2.15.0 + diff --git a/grub.patches b/grub.patches index be8a1439..799b1ef9 100644 --- a/grub.patches +++ b/grub.patches @@ -213,3 +213,4 @@ Patch0212: 0212-Work-around-some-minor-include-path-weirdnesses.patch Patch0213: 0213-Make-it-possible-to-enabled-build-id-sha1.patch Patch0214: 0214-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch Patch0215: 0215-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch +Patch0216: 0216-Static.patch diff --git a/grub2.spec b/grub2.spec index 4398393c..5a243e6b 100644 --- a/grub2.spec +++ b/grub2.spec @@ -7,7 +7,7 @@ Name: grub2 Epoch: 1 Version: 2.02 -Release: 28%{?dist} +Release: 29%{?dist} Summary: Bootloader with support for Linux, Multiboot and more Group: System Environment/Base License: GPLv3+ @@ -452,6 +452,9 @@ fi %endif %changelog +* Fri Mar 16 2018 pjones - 1:2.02-29 +- Rebased to newer upstream for fedora-28 + * Fri Mar 16 2018 Peter Jones - 2.02-28 - Install kernel-install scripts. (javierm) - Add grub2-switch-to-blscfg From a77a66863f31d793e74d82bd7066fe24e5e0e0c2 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 16 Mar 2018 16:42:01 -0400 Subject: [PATCH 09/45] I am getting very tired of this Signed-off-by: Peter Jones --- 0216-Static.patch | 265 ---------------------------------------------- grub.patches | 1 - grub2.spec | 5 +- 3 files changed, 1 insertion(+), 270 deletions(-) delete mode 100644 0216-Static.patch diff --git a/0216-Static.patch b/0216-Static.patch deleted file mode 100644 index b4a6c062..00000000 --- a/0216-Static.patch +++ /dev/null @@ -1,265 +0,0 @@ -From 808b17c8d8b5a4b4744a7fa0bfe59474ca1509f3 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Fri, 16 Mar 2018 16:22:20 -0400 -Subject: [PATCH 216/216] Static - ---- - Makefile.util.def | 7 +++ - util/grub-mkconfig_lib.in | 46 ++++++++++++++++ - util/grub-set-uuids.in | 134 ++++++++++++++++++++++++++++++++++++++++++++++ - util/grub.d/10_linux.in | 20 ++++--- - 4 files changed, 199 insertions(+), 8 deletions(-) - create mode 100644 util/grub-set-uuids.in - -diff --git a/Makefile.util.def b/Makefile.util.def -index fe392c24351..bbc38b894ad 100644 ---- a/Makefile.util.def -+++ b/Makefile.util.def -@@ -1348,6 +1348,13 @@ script = { - installdir = sbin; - }; - -+script = { -+ name = grub-set-uuids; -+ common = util/grub-set-uuids.in; -+ mansection = 8; -+ installdir = sbin; -+}; -+ - program = { - name = grub-glue-efi; - mansection = 1; -diff --git a/util/grub-mkconfig_lib.in b/util/grub-mkconfig_lib.in -index 70dc8d57e92..80674ef714d 100644 ---- a/util/grub-mkconfig_lib.in -+++ b/util/grub-mkconfig_lib.in -@@ -128,6 +128,52 @@ EOF - fi - } - -+add_device_modules () -+{ -+ local device=$1 && shift -+ -+ old_ifs="$IFS" -+ IFS=' -+' -+ partmap="`"${grub_probe}" --device ${device} --target=partmap`" -+ for module in ${partmap} ; do -+ case "${module}" in -+ netbsd | openbsd) -+ echo "insmod part_bsd";; -+ *) -+ echo "insmod part_${module}";; -+ esac -+ done -+ -+ # Abstraction modules aren't auto-loaded. -+ abstraction="`"${grub_probe}" --device ${device} --target=abstraction`" -+ for module in ${abstraction} ; do -+ echo "insmod ${module}" -+ done -+ -+ fs="`"${grub_probe}" --device ${device} --target=fs`" -+ for module in ${fs} ; do -+ echo "insmod ${module}" -+ done -+} -+ -+get_device_uuid () -+{ -+ local device=$1 && shift -+ if [ "$#" -gt 0 ]; then -+ local variable=$1 && shift -+ else -+ local variable=root -+ fi -+ old_ifs="$IFS" -+ IFS=' -+' -+ -+ fs_uuid="`"${grub_probe}" --device ${device} --target=fs_uuid 2> /dev/null`" -+ IFS="$old_ifs" -+ echo "$fs_uuid" -+} -+ - prepare_grub_to_access_device () - { - local device=$1 && shift -diff --git a/util/grub-set-uuids.in b/util/grub-set-uuids.in -new file mode 100644 -index 00000000000..72c239b4ef5 ---- /dev/null -+++ b/util/grub-set-uuids.in -@@ -0,0 +1,134 @@ -+#! /bin/sh -+# -+# Set a default boot entry for GRUB. -+# Copyright (C) 2004,2009 Free Software Foundation, Inc. -+# -+# GRUB is free software: you can redistribute it and/or modify -+# it under the terms of the GNU General Public License as published by -+# the Free Software Foundation, either version 3 of the License, or -+# (at your option) any later version. -+# -+# GRUB is distributed in the hope that it will be useful, -+# but WITHOUT ANY WARRANTY; without even the implied warranty of -+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+# GNU General Public License for more details. -+# -+# You should have received a copy of the GNU General Public License -+# along with GRUB. If not, see . -+ -+# Initialize some variables. -+prefix=@prefix@ -+exec_prefix=@exec_prefix@ -+bindir=@bindir@ -+sysconfdir="@sysconfdir@" -+PACKAGE_NAME=@PACKAGE_NAME@ -+PACKAGE_VERSION=@PACKAGE_VERSION@ -+datarootdir="@datarootdir@" -+datadir="@datadir@" -+if [ "x$pkgdatadir" = x ]; then -+ pkgdatadir="${datadir}/@PACKAGE@" -+fi -+ -+self=`basename $0` -+ -+grub_editenv=${bindir}/@grub_editenv@ -+bootdir=`echo "/@bootdirname@" | sed 's,//*,/,g'` -+grubdir=`echo "/@bootdirname@/@grubdirname@" | sed 's,//*,/,g'` -+grubenv="" -+ -+export TEXTDOMAIN=@PACKAGE@ -+export TEXTDOMAINDIR="@localedir@" -+ -+# Usage: usage -+# Print the usage. -+usage () { -+ gettext_printf "Usage: %s [OPTION]\n" "$self" -+ gettext "Set the boot and root UUIDs for GRUB."; echo -+ echo -+ print_option_help "-h, --help" "$(gettext "print this message and exit")" -+ print_option_help "-V, --version" "$(gettext "print the version information and exit")" -+ dirmsg="$(gettext_printf "expect GRUB images under the directory DIR/%s instead of the %s directory" "@grubdirname@" "$grubdir")" -+ print_option_help "--boot-directory=$(gettext "DIR")" "$dirmsg" -+ print_option_help "--grub-environment=$(gettext "FILE")" "${grubdir}/grubenv" -+ #echo -+ #gettext "Report bugs to ."; echo -+} -+ -+argument () { -+ opt=$1 -+ shift -+ -+ if test $# -eq 0; then -+ gettext_printf "%s: option requires an argument -- \`%s'\n" "$self" "$opt" 1>&2 -+ exit 1 -+ fi -+ echo $1 -+} -+ -+# Check the arguments. -+while test $# -gt 0 -+do -+ option=$1 -+ shift -+ -+ case "$option" in -+ -h | --help) -+ usage -+ exit 0 ;; -+ -V | --version) -+ echo "$self (${PACKAGE_NAME}) ${PACKAGE_VERSION}" -+ exit 0 ;; -+ -+# Accept for compatibility -+ --root-directory) -+ rootdir=`argument $option "$@"`; shift ;; -+ --root-directory=*) -+ rootdir=`echo "$option" | sed 's/--root-directory=//'` ;; -+ -+ --boot-directory) -+ bootdir=`argument $option "$@"`; shift;; -+ --boot-directory=*) -+ bootdir=`echo "$option" | sed 's/--boot-directory=//'` ;; -+ -+ --grub-environment) -+ grubenv=`argument $option "$@"`; shift;; -+ --grub-environment=*) -+ grubenv=`echo "$option" | sed 's/--grub-environment=//'` ;; -+ -+ *) -+ gettext_printf "Unrecognized option \`%s'\n" "$option" 1>&2 -+ usage -+ exit 1 -+ ;; -+ esac -+done -+ -+if [ -z "$bootdir" ]; then -+ # Default bootdir if bootdir not initialized. -+ bootdir=/@bootdirname@ -+ -+ if [ -n "$rootdir" ] ; then -+ # Initialize bootdir if rootdir was initialized. -+ bootdir=${rootdir}/@bootdirname@ -+ fi -+fi -+ -+grubdir=`echo "${bootdir}/@grubdirname@" | sed 's,//*,/,g'` -+ -+if [ -z "$grubenv" ]; then -+ grubenv="${grubdir}/grubenv" -+fi -+ -+# Device containing our /boot partition. Usually the same as GRUB_DEVICE. -+GRUB_DEVICE_BOOT="`${grub_probe} --target=device /boot`" -+GRUB_DEVICE_BOOT_UUID_GENERATED="`${grub_probe} --device ${GRUB_DEVICE_BOOT} --target=fs_uuid 2> /dev/null`" || true -+ -+# Device containing our /boot/efi partition. Usually not the same as GRUB_DEVICE. -+GRUB_DEVICE_BOOT_EFI="`${grub_probe} --target=device /boot/efi`" -+GRUB_DEVICE_BOOT_EFI_UUID_GENERATED="`${grub_probe} --device ${GRUB_DEVICE_BOOT_EFI} --target=fs_uuid 2> /dev/null`" || true -+ -+$grub_editenv "${grubenv}" set "bootuuid=${GRUB_DEVICE_BOOT_EFI_UUID_GENERATED}" -+$grub_editenv "${grubenv}" set "rootuuid=${GRUB_DEVICE_BOOT_UUID_GENERATED}" -+ -+# Bye. -+exit 0 -diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index f5daefb9d24..232f417d3e6 100644 ---- a/util/grub.d/10_linux.in -+++ b/util/grub.d/10_linux.in -@@ -129,17 +129,21 @@ linux_entry () - - if [ "x${GRUB_ENABLE_BLSCFG}" = "xtrue" ]; then - if [ x$dirname = x/ ]; then -- if [ -z "${prepare_root_cache}" ]; then -- prepare_grub_to_access_device ${GRUB_DEVICE} -- fi -+ add_device_modules "${GRUB_DEVICE}" -+ uuid="$(get_device_uuid "${GRUB_DEVICE}")" -+ ${grub_editenv} - set rootuuid="${uuid}" - else -- if [ -z "${prepare_boot_cache}" ]; then -- prepare_grub_to_access_device ${GRUB_DEVICE_BOOT} -- fi -+ add_device_modules "${GRUB_DEVICE_BOOT}" -+ uuid="$(get_device_uuid "${GRUB_DEVICE_BOOT}")" -+ ${grub_editenv} - set rootuuid="${uuid}" - fi -+ if [ -d /sys/firmware/efi/efivars ]; then -+ bootefi_device="`${grub_probe} --target=device /boot/efi/`" -+ add_device_modules ${bootefi_device} - -- bootefi_device="`${grub_probe} --target=device /boot/efi/`" -- prepare_grub_to_access_device ${bootefi_device} boot -+ uuid="$(get_device_uuid "${bootefi_device}")" -+ ${grub_editenv} - set bootuuid="${uuid}" -+ fi - - cat << EOF - insmod blscfg --- -2.15.0 - diff --git a/grub.patches b/grub.patches index 799b1ef9..be8a1439 100644 --- a/grub.patches +++ b/grub.patches @@ -213,4 +213,3 @@ Patch0212: 0212-Work-around-some-minor-include-path-weirdnesses.patch Patch0213: 0213-Make-it-possible-to-enabled-build-id-sha1.patch Patch0214: 0214-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch Patch0215: 0215-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch -Patch0216: 0216-Static.patch diff --git a/grub2.spec b/grub2.spec index 5a243e6b..4398393c 100644 --- a/grub2.spec +++ b/grub2.spec @@ -7,7 +7,7 @@ Name: grub2 Epoch: 1 Version: 2.02 -Release: 29%{?dist} +Release: 28%{?dist} Summary: Bootloader with support for Linux, Multiboot and more Group: System Environment/Base License: GPLv3+ @@ -452,9 +452,6 @@ fi %endif %changelog -* Fri Mar 16 2018 pjones - 1:2.02-29 -- Rebased to newer upstream for fedora-28 - * Fri Mar 16 2018 Peter Jones - 2.02-28 - Install kernel-install scripts. (javierm) - Add grub2-switch-to-blscfg From e8e6235eaba6267efcddd75ea0b2cc65a119ba50 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 3 Apr 2018 13:35:42 -0400 Subject: [PATCH 10/45] Fix for BLS paths on BIOS / non-UEFI (javierm) Signed-off-by: Peter Jones --- ...scan-different-BLS-directories-on-EF.patch | 49 +++++++++++++++++++ grub.patches | 1 + grub2.spec | 5 +- 3 files changed, 54 insertions(+), 1 deletion(-) create mode 100644 0216-Only-attempt-to-scan-different-BLS-directories-on-EF.patch diff --git a/0216-Only-attempt-to-scan-different-BLS-directories-on-EF.patch b/0216-Only-attempt-to-scan-different-BLS-directories-on-EF.patch new file mode 100644 index 00000000..329df51a --- /dev/null +++ b/0216-Only-attempt-to-scan-different-BLS-directories-on-EF.patch @@ -0,0 +1,49 @@ +From 62b3c9bf77feda2ae595c5e811b3918d3bf990a4 Mon Sep 17 00:00:00 2001 +From: Javier Martinez Canillas +Date: Tue, 3 Apr 2018 15:42:47 +0200 +Subject: [PATCH 216/216] Only attempt to scan different BLS directories on EFI + machines + +Current BLS support attempted to scan for BLS directories, but this only +makes sense on EFI, where BLS fragments are in /loader/$vendor/entries. + +For BIOS, only either the default /loader/entries path should be scanned +or the BLS directory defined in the blsdir GRUB 2 environment variable. + +Signed-off-by: Javier Martinez Canillas +--- + grub-core/commands/blscfg.c | 9 ++++----- + 1 file changed, 4 insertions(+), 5 deletions(-) + +diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c +index e5617c3bc6c..c0973ff83ea 100644 +--- a/grub-core/commands/blscfg.c ++++ b/grub-core/commands/blscfg.c +@@ -676,8 +676,8 @@ static int find_entry (const char *filename, + const char *devid = grub_env_get ("boot"); + + grub_dprintf("blscfg", "%s got here\n", __func__); +- if (!grub_strcmp (filename, ".") || +- !grub_strcmp (filename, "..")) ++ if (filename && (!grub_strcmp (filename, ".") || ++ !grub_strcmp (filename, ".."))) + return 0; + + if (info->platform == PLATFORM_EFI && !grub_strcasecmp (filename, "boot")) +@@ -872,11 +872,10 @@ grub_cmd_blscfg (grub_extcmd_context_t ctxt UNUSED, + info.platform = PLATFORM_EMU; + grub_dprintf ("blscfg", "scanning %s%s\n", GRUB_BOOT_DEVICE, + GRUB_BLS_CONFIG_PATH); +- r = fs->dir (dev, "/boot/loader/", +- find_entry, &info); ++ find_entry(NULL, NULL, &info); + #else + grub_dprintf ("blscfg", "scanning %s\n", GRUB_BLS_CONFIG_PATH); +- r = fs->dir (dev, "/", find_entry, &info); ++ find_entry(NULL, NULL, &info); + #endif + + finish: +-- +2.15.0 + diff --git a/grub.patches b/grub.patches index be8a1439..213069ed 100644 --- a/grub.patches +++ b/grub.patches @@ -213,3 +213,4 @@ Patch0212: 0212-Work-around-some-minor-include-path-weirdnesses.patch Patch0213: 0213-Make-it-possible-to-enabled-build-id-sha1.patch Patch0214: 0214-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch Patch0215: 0215-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch +Patch0216: 0216-Only-attempt-to-scan-different-BLS-directories-on-EF.patch diff --git a/grub2.spec b/grub2.spec index 4398393c..8eac0033 100644 --- a/grub2.spec +++ b/grub2.spec @@ -7,7 +7,7 @@ Name: grub2 Epoch: 1 Version: 2.02 -Release: 28%{?dist} +Release: 29%{?dist} Summary: Bootloader with support for Linux, Multiboot and more Group: System Environment/Base License: GPLv3+ @@ -452,6 +452,9 @@ fi %endif %changelog +* Tue Apr 03 2018 Peter Jones - 2.02-29 +- Fix for BLS paths on BIOS / non-UEFI (javierm) + * Fri Mar 16 2018 Peter Jones - 2.02-28 - Install kernel-install scripts. (javierm) - Add grub2-switch-to-blscfg From da1991e3f06973224c702d88a2ccaa2b09198a42 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 6 Apr 2018 15:38:57 -0400 Subject: [PATCH 11/45] Enable TPM measurements Set the default boot entry to the first entry when we're using BLS. Signed-off-by: Peter Jones --- 0001-Bump-version-to-2.03.patch | 2 +- 0002-Remove-bashisms-from-tests.patch | 2 +- 0003-fs-tester-make-sh-compatible.patch | 2 +- 0004-support-busybox-date.patch | 2 +- ...retrieve-fstime-when-it-s-not-useful.patch | 2 +- 0006-Support-lseek64.patch | 2 +- 0007-Use-SHELL-rather-than-bin-sh.patch | 2 +- 0008-po-Use-SHELL-rather-than-bin-sh.patch | 2 +- 0009-Add-termux-path-to-dict.patch | 2 +- 0010-Fix-shebang-for-termux.patch | 2 +- 0011-Add-strtoull-test.patch | 2 +- ...x-behaviour-on-chars-between-9-and-a.patch | 2 +- 0013-Add-Virtual-LAN-support.patch | 2 +- ...out-to-mkimage_generate_elfXX-rather.patch | 2 +- ...r-arm-uboot-code-to-make-it-genereic.patch | 2 +- ...-parts-that-are-platform-independent.patch | 2 +- ...-Rename-uboot-halt.c-to-dummy-halt.c.patch | 2 +- ...ame-uboot-datetime-to-dummy-datetime.patch | 2 +- 0019-arm-coreboot-Start-new-port.patch | 2 +- ...upport-for-device-tree-based-drivers.patch | 2 +- ...-coreboot-Support-for-vexpress-timer.patch | 2 +- 0022-arm-coreboot-Export-FDT-routines.patch | 2 +- ...-Split-protocol-from-controller-code.patch | 2 +- ...reboot-Support-keyboard-for-vexpress.patch | 2 +- ...m_coreboot-Support-grub-mkstandalone.patch | 2 +- ...oreboot-Support-loading-linux-images.patch | 2 +- 0027-arm_coreboot-Support-DMA.patch | 2 +- 0028-ehci-Split-core-code-from-PCI-part.patch | 2 +- 0029-arm_coreboot-Support-EHCI.patch | 2 +- ...n-FDT-nodes-with-compatible-property.patch | 2 +- ...ty-to-send-receive-messages-on-paren.patch | 2 +- 0032-rk3288_spi-Add-SPI-driver.patch | 2 +- ...eboot-Add-Chromebook-keyboard-driver.patch | 2 +- 0034-Missing-parts-of-previous-commit.patch | 2 +- ...-cbmemc-to-support-updated-console-f.patch | 2 +- ...t_keyboard-Fix-falco-chromebook-case.patch | 2 +- 0037-sparc64-Close-cdboot-ihandle.patch | 2 +- ...-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch | 2 +- ...p-option-support-in-xen_module-comma.patch | 2 +- ...inux_xen.in-Add-xen_boot-command-sup.patch | 2 +- ...-introduction-of-Xen-boot-commands-i.patch | 2 +- ...se-devspec-to-determine-the-OBP-path.patch | 2 +- ...unt-ext2-3-4-filesystems-that-have-t.patch | 2 +- 0044-ehci-Fix-compilation-for-amd64.patch | 2 +- ...-compilation-for-ppc-sparc-and-arm64.patch | 2 +- 0046-ehci-Fix-compilation-on-i386.patch | 2 +- 0047-crypto-Fix-use-after-free.patch | 2 +- 0048-arm-efi-Fix-compilation.patch | 2 +- 0049-fdt-silence-clang-warning.patch | 2 +- 0050-Fix-a-segfault-in-lsefi.patch | 2 +- ...t-typedef-and-use-grub_size_t-instea.patch | 2 +- ...x-reading-label-lvd.ident-is-dstring.patch | 2 +- ...b-core-fs-udf.c-Add-support-for-UUID.patch | 2 +- ...orriso-presence-before-doing-anythin.patch | 2 +- 0055-Fail-if-xorriso-failed.patch | 2 +- ...efi-refactor-grub_efi_allocate_pages.patch | 2 +- 0057-Remove-grub_efi_allocate_pages.patch | 2 +- 0058-efi-move-fdt-helper-library.patch | 2 +- 0059-efi-Add-GRUB_PE32_MAGIC-definition.patch | 2 +- ...inux-loader-improve-type-portability.patch | 2 +- ...allocation-type-to-GRUB_EFI_LOADER_C.patch | 2 +- ...RM_-definitions-when-handling-term-c.patch | 2 +- ...B_GZ-prefix-to-gzio-specific-defines.patch | 2 +- 0064-info-in-builddir.patch | 2 +- 0065-re-write-.gitignore.patch | 2 +- ...ient-architecture-CAS-reboot-support.patch | 2 +- ...nsole-display-attr-when-clear-screen.patch | 2 +- ...video-support-for-IBM-power-machines.patch | 2 +- ...when-generating-configuration-by-gru.patch | 2 +- 0070-Move-bash-completion-script-922997.patch | 2 +- 0071-Update-to-minilzo-2.08.patch | 2 +- ...o-include-entries-by-title-not-just-.patch | 2 +- 0073-Add-GRUB_DISABLE_UUID.patch | 2 +- 0074-Make-exit-take-a-return-code.patch | 2 +- ...pot-as-binary-so-git-won-t-try-to-di.patch | 2 +- ...es-load-an-env-block-from-a-variable.patch | 2 +- ...HCP-client-ID-and-UUID-options-added.patch | 2 +- ...-trim-arp-packets-with-abnormal-size.patch | 2 +- ...Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch | 2 +- ...UEFI-operating-systems-returned-by-o.patch | 2 +- 0081-Migrate-PPC-from-Yaboot-to-Grub2.patch | 2 +- 0082-Add-fw_path-variable-revised.patch | 2 +- 0083-Add-support-for-linuxefi.patch | 2 +- ...xefi-and-initrdefi-where-appropriate.patch | 2 +- ...w-insmod-when-secure-boot-is-enabled.patch | 2 +- ...-hex-hex-straight-through-unmolested.patch | 2 +- 0087-Add-X-option-to-printf-functions.patch | 2 +- ...for-specific-config-file-for-netboot.patch | 2 +- ...g-module-to-parse-Boot-Loader-Specif.patch | 2 +- 0090-Don-t-write-messages-to-the-screen.patch | 2 +- 0091-Don-t-print-GNU-GRUB-header.patch | 2 +- 0092-Don-t-add-to-highlighted-row.patch | 2 +- 0093-Message-string-cleanups.patch | 2 +- ...ing-now-that-we-aren-t-displaying-it.patch | 2 +- ...t-indentation-for-the-term-help-text.patch | 2 +- 0096-Indent-menu-entries.patch | 2 +- 0097-Fix-margins.patch | 2 +- ...-1-for-our-right-hand-margin-so-line.patch | 2 +- ...-Use-linux16-when-appropriate-880840.patch | 2 +- 0100-Enable-pager-by-default.-985860.patch | 2 +- ...-on-serial-so-don-t-tell-the-user-to.patch | 2 +- ...n-t-say-GNU-Linux-in-generated-menus.patch | 2 +- ...-Don-t-draw-a-border-around-the-menu.patch | 2 +- ...andard-margin-for-the-timeout-string.patch | 2 +- ...rame-to-list-of-relocations-stripped.patch | 2 +- ...rk-with-our-changes-for-linux16-and-.patch | 2 +- ...on-t-print-during-fdt-loading-method.patch | 2 +- ...spaces-when-we-re-doing-our-cmdline-.patch | 2 +- ...password-to-boot-entries-generated-b.patch | 2 +- 0110-Don-t-emit-Booting-.-message.patch | 2 +- ...f-man-pages-with-slightly-nicer-ones.patch | 2 +- ...ix-when-fallback-searching-for-grub-.patch | 2 +- ...-before-grub.cfg-on-tftp-config-file.patch | 2 +- ...ert-function-to-support-NVMe-devices.patch | 2 +- ...M-Mustang-device-tree-for-hardware-t.patch | 2 +- ...device-tree-from-the-grub-default-fi.patch | 2 +- ...P-protocol-for-exclusive-use-by-grub.patch | 2 +- ...P-protocol-for-exclusive-use-by-grub.patch | 2 +- 0119-Add-grub_util_readlink.patch | 2 +- ...se-symlinks-including-those-across-d.patch | 2 +- ...CLASS-in-10_linux-from-etc-os-releas.patch | 2 +- ...t-ordering-for-.debug-and-rescue-ker.patch | 2 +- 0123-Load-arm-with-SB-enabled.patch | 2 +- 0124-Try-prefix-if-fw_path-doesn-t-work.patch | 2 +- ...-grub.cfg-netboot-selection-order-11.patch | 2 +- ...-Package-Sort-for-grub2-mkconfig-112.patch | 2 +- 0127-Handle-rssd-storage-devices.patch | 2 +- ...x16-initrd16-and-linuxefi-initrdefi-.patch | 2 +- ...fig-construct-titles-that-look-like-.patch | 2 +- ...ly-grub2-password-config-tool-985962.patch | 2 +- ...fig-construct-titles-that-look-like-.patch | 2 +- ...-configure.ac-and-grub-rpm-sort-play.patch | 2 +- 0133-tcp-add-window-scaling-support.patch | 2 +- ...net-retransmit-if-our-device-is-busy.patch | 2 +- ...out-actually-using-the-configured-ne.patch | 2 +- ...r-for-the-first-exclusive-reopen-of-.patch | 2 +- ...ue-when-reading-username-and-passwor.patch | 2 +- ...ub-password-will-not-be-read-1290803.patch | 2 +- ...ub-setpassword-documentation-1290799.patch | 2 +- ...le-issue-in-grub-setpassword-1294243.patch | 2 +- ...rsistent-RAM-and-unknown-possible-fu.patch | 2 +- 0142-efiemu-Fix-compilation-failure.patch | 2 +- ...P-protocol-for-exclusive-use-by-grub.patch | 2 +- 0144-Add-a-url-parser.patch | 2 +- ...net-and-bootp-add-support-for-dhcpv6.patch | 2 +- ...rnel-settings-and-use-it-in-10_linux.patch | 2 +- 0147-Normalize-slashes-in-tftp-paths.patch | 2 +- 0148-Fix-malformed-tftp-packets.patch | 2 +- 0149-Fix-race-in-EFI-validation.patch | 2 +- ...1374141-fix-incorrect-mask-for-ppc64.patch | 2 +- ...art-of-chainloader-target-if-present.patch | 2 +- ...ecureboot-support-on-efi-chainloader.patch | 2 +- ...loaders-that-link-in-efi-mode-honor-.patch | 2 +- 0154-Make-grub_fatal-also-backtrace.patch | 2 +- 0155-Rework-linux-command.patch | 2 +- 0156-Rework-linux16-command.patch | 2 +- 0157-Make-grub-editenv-build-again.patch | 2 +- ...ix-up-some-man-pages-rpmdiff-noticed.patch | 2 +- ...-work-some-intricacies-of-PE-loading.patch | 2 +- ...-of-efi-chainload-so-non-sb-cases-wo.patch | 2 +- ...-double-free-on-verification-failure.patch | 2 +- ...machine-type-test-in-30_os-prober.in.patch | 2 +- ...fix-wrong-sanity-check-in-relocate_c.patch | 2 +- ...truncate-overlong-relocation-section.patch | 2 +- 0165-linuxefi-minor-cleanups.patch | 2 +- ...rch-64-on-32-boot-in-linuxefi-loader.patch | 2 +- 0167-Fix-up-linux-params-usage.patch | 2 +- 0168-Make-exit-take-a-return-code.patch | 2 +- ...fdt-has-address-cells-and-size-cells.patch | 2 +- ...rintf-in-the-secure-boot-verify-code.patch | 2 +- ...fo-pages-say-grub2-where-appropriate.patch | 2 +- ...more-debug-info-in-our-module-loader.patch | 2 +- ...-chainloader-entries-don-t-try-any-x.patch | 2 +- ...-Add-ability-to-boot-from-subvolumes.patch | 2 +- ...port-btrfs_subvol-and-btrfs_subvolid.patch | 2 +- 0176-grub2-btrfs-03-follow_default.patch | 2 +- 0177-grub2-btrfs-04-grub2-install.patch | 2 +- 0178-grub2-btrfs-05-grub2-mkconfig.patch | 2 +- 0179-grub2-btrfs-06-subvol-mount.patch | 2 +- ...ootable-Snapshot-submenu-in-grub.cfg.patch | 2 +- ...subvol-name-scheme-to-support-old-sn.patch | 2 +- ...-correctly-with-btrfs-snapshots-bsc-.patch | 2 +- ...ocate_pool-and-grub_efi_free_pool-wr.patch | 2 +- ...fi_.-memory-helpers-where-reasonable.patch | 2 +- 0185-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch | 2 +- ...c-sized-arrays-since-we-don-t-build-.patch | 2 +- 0187-don-t-ignore-const.patch | 2 +- 0188-don-t-use-int-for-efi-status.patch | 2 +- ...INIT-declare-its-function-prototypes.patch | 2 +- ...p-some-errors-in-the-linuxefi-loader.patch | 2 +- 0191-editenv-handle-relative-symlinks.patch | 2 +- ...e-libgrub.pp-depend-on-config-util.h.patch | 2 +- ...-efi-as-HFS-on-ppc-machines-in-grub-.patch | 2 +- ...20_linux_xen.in-Add-xen_boot-command.patch | 2 +- ...-figure-out-whether-multiboot2-shoul.patch | 2 +- ...d-xen-or-multiboot-2-modules-as-need.patch | 2 +- ...lt-tsc-calibration-method-to-pmtimer.patch | 2 +- ...-calibration-not-take-51-seconds-to-.patch | 2 +- 0199-align-struct-efi_variable-better.patch | 2 +- 0200-Add-quicksort-implementation.patch | 2 +- ...nd-support-to-parse-BootLoaderSpec-c.patch | 2 +- 0202-Add-BLS-support-to-grub-mkconfig.patch | 2 +- ...d-grub_exit-definition-for-grub-emu-.patch | 2 +- ...-backtrace-on-grub_abort-for-grub-em.patch | 2 +- ...-blscfg-command-for-the-emu-platform.patch | 2 +- ...nux-and-initrd-commands-for-grub-emu.patch | 2 +- 0207-Fix-the-efidir-in-grub-setpassword.patch | 2 +- 0208-Add-grub2-switch-to-blscfg.patch | 2 +- 0209-Add-grub_debug_enabled.patch | 2 +- 0210-make-better-backtraces.patch | 2 +- ...w-our-startup-message-if-debug-is-se.patch | 2 +- ...-some-minor-include-path-weirdnesses.patch | 2 +- ...it-possible-to-enabled-build-id-sha1.patch | 2 +- ...f-grub_dprintf-without-the-file-line.patch | 2 +- ...dprintf-that-tells-us-load-addresses.patch | 2 +- ...scan-different-BLS-directories-on-EF.patch | 2 +- 0217-Core-TPM-support.patch | 789 ++++++++++++++++++ 0218-Measure-kernel-initrd.patch | 42 + 0219-Add-BIOS-boot-measurement.patch | 179 ++++ ...re-kernel-and-initrd-on-BIOS-systems.patch | 87 ++ 0221-Measure-the-kernel-commandline.patch | 43 + 0222-Measure-commands.patch | 76 ++ ...Measure-multiboot-images-and-modules.patch | 78 ++ 0224-Fix-boot-when-there-s-no-TPM.patch | 32 + 0225-Rework-TPM-measurements.patch | 219 +++++ 0226-Fix-event-log-prefix.patch | 29 + ...ot-menu-entry-as-default-when-using-.patch | 30 + grub.patches | 11 + grub2.spec | 6 +- 229 files changed, 1836 insertions(+), 217 deletions(-) create mode 100644 0217-Core-TPM-support.patch create mode 100644 0218-Measure-kernel-initrd.patch create mode 100644 0219-Add-BIOS-boot-measurement.patch create mode 100644 0220-Measure-kernel-and-initrd-on-BIOS-systems.patch create mode 100644 0221-Measure-the-kernel-commandline.patch create mode 100644 0222-Measure-commands.patch create mode 100644 0223-Measure-multiboot-images-and-modules.patch create mode 100644 0224-Fix-boot-when-there-s-no-TPM.patch create mode 100644 0225-Rework-TPM-measurements.patch create mode 100644 0226-Fix-event-log-prefix.patch create mode 100644 0227-Set-the-first-boot-menu-entry-as-default-when-using-.patch diff --git a/0001-Bump-version-to-2.03.patch b/0001-Bump-version-to-2.03.patch index 5d45d973..41e1e1a1 100644 --- a/0001-Bump-version-to-2.03.patch +++ b/0001-Bump-version-to-2.03.patch @@ -1,7 +1,7 @@ From b0bad6fd9449d3333fe1ab58953c0e6c1ce12c0d Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Wed, 3 May 2017 11:55:52 +0200 -Subject: [PATCH 001/216] Bump version to 2.03 +Subject: [PATCH 001/227] Bump version to 2.03 --- configure.ac | 2 +- diff --git a/0002-Remove-bashisms-from-tests.patch b/0002-Remove-bashisms-from-tests.patch index c720c94f..505c61a4 100644 --- a/0002-Remove-bashisms-from-tests.patch +++ b/0002-Remove-bashisms-from-tests.patch @@ -1,7 +1,7 @@ From 5a0c548ba388b343b0bb6d2a38888e7eac5bbb96 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 03:47:13 +0300 -Subject: [PATCH 002/216] Remove bashisms from tests. +Subject: [PATCH 002/227] Remove bashisms from tests. Those tests don't actually need bash. Just use common shebang. --- diff --git a/0003-fs-tester-make-sh-compatible.patch b/0003-fs-tester-make-sh-compatible.patch index 604c30d8..0100db86 100644 --- a/0003-fs-tester-make-sh-compatible.patch +++ b/0003-fs-tester-make-sh-compatible.patch @@ -1,7 +1,7 @@ From 37865c2c4ad26cd5e947b08abf1fde8145699919 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 14:35:59 +0300 -Subject: [PATCH 003/216] fs-tester: make sh-compatible +Subject: [PATCH 003/227] fs-tester: make sh-compatible --- tests/util/grub-fs-tester.in | 306 ++++++++++++++++++++++++------------------- diff --git a/0004-support-busybox-date.patch b/0004-support-busybox-date.patch index dcffc084..333c6dc8 100644 --- a/0004-support-busybox-date.patch +++ b/0004-support-busybox-date.patch @@ -1,7 +1,7 @@ From b43b8cacc813c2c15347de1e35cc88d9aa912d22 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 14:31:36 +0300 -Subject: [PATCH 004/216] support busybox date. +Subject: [PATCH 004/227] support busybox date. Busybox date doesn't understand weekdays in -d input, so strip them beforehand. diff --git a/0005-Don-t-retrieve-fstime-when-it-s-not-useful.patch b/0005-Don-t-retrieve-fstime-when-it-s-not-useful.patch index 6e69d36a..4c1ab602 100644 --- a/0005-Don-t-retrieve-fstime-when-it-s-not-useful.patch +++ b/0005-Don-t-retrieve-fstime-when-it-s-not-useful.patch @@ -1,7 +1,7 @@ From 6dec3a26b37e128ded5d912e08abc5cee1592499 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 21:24:05 +0300 -Subject: [PATCH 005/216] Don't retrieve fstime when it's not useful. +Subject: [PATCH 005/227] Don't retrieve fstime when it's not useful. --- tests/util/grub-fs-tester.in | 48 ++++++++++++++++++++++---------------------- diff --git a/0006-Support-lseek64.patch b/0006-Support-lseek64.patch index e2ad027f..d6eb14bd 100644 --- a/0006-Support-lseek64.patch +++ b/0006-Support-lseek64.patch @@ -1,7 +1,7 @@ From 608bec51128008afb81c9e3f297283e9f830a146 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 20:21:05 +0300 -Subject: [PATCH 006/216] Support lseek64. +Subject: [PATCH 006/227] Support lseek64. Android doesn't have 64-bit off_t, so use off64_t instead. --- diff --git a/0007-Use-SHELL-rather-than-bin-sh.patch b/0007-Use-SHELL-rather-than-bin-sh.patch index c1aec0c6..a865082e 100644 --- a/0007-Use-SHELL-rather-than-bin-sh.patch +++ b/0007-Use-SHELL-rather-than-bin-sh.patch @@ -1,7 +1,7 @@ From c2ea443446b7feea868e54f94a87781f69820375 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 00:55:30 +0300 -Subject: [PATCH 007/216] Use $(SHELL) rather than /bin/sh. +Subject: [PATCH 007/227] Use $(SHELL) rather than /bin/sh. /bin/sh doesn't exist under termux. --- diff --git a/0008-po-Use-SHELL-rather-than-bin-sh.patch b/0008-po-Use-SHELL-rather-than-bin-sh.patch index 6a572fa5..eb26b856 100644 --- a/0008-po-Use-SHELL-rather-than-bin-sh.patch +++ b/0008-po-Use-SHELL-rather-than-bin-sh.patch @@ -1,7 +1,7 @@ From 4341f82af0b61d3dfbe675670d4105dc759c0df3 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 14:54:03 +0300 -Subject: [PATCH 008/216] po: Use @SHELL@ rather than /bin/sh. +Subject: [PATCH 008/227] po: Use @SHELL@ rather than /bin/sh. /bin/sh might not exist. --- diff --git a/0009-Add-termux-path-to-dict.patch b/0009-Add-termux-path-to-dict.patch index 04ad6f0b..23386fe9 100644 --- a/0009-Add-termux-path-to-dict.patch +++ b/0009-Add-termux-path-to-dict.patch @@ -1,7 +1,7 @@ From 1073ddb12078f3c8edbdb74bb8f5afc674983f40 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 14:52:48 +0300 -Subject: [PATCH 009/216] Add termux path to dict. +Subject: [PATCH 009/227] Add termux path to dict. --- tests/util/grub-fs-tester.in | 2 +- diff --git a/0010-Fix-shebang-for-termux.patch b/0010-Fix-shebang-for-termux.patch index 9e7ae40c..516e5739 100644 --- a/0010-Fix-shebang-for-termux.patch +++ b/0010-Fix-shebang-for-termux.patch @@ -1,7 +1,7 @@ From a827807a1330d5ad619faa103bc7f12d89fc8bee Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Sun, 22 Jan 2017 20:22:34 +0300 -Subject: [PATCH 010/216] Fix shebang for termux. +Subject: [PATCH 010/227] Fix shebang for termux. Termux doesn't have a /bin/sh. So we needto use $SHELL. Keep /bin/sh as much as possible. diff --git a/0011-Add-strtoull-test.patch b/0011-Add-strtoull-test.patch index ec03b564..0f9b45f1 100644 --- a/0011-Add-strtoull-test.patch +++ b/0011-Add-strtoull-test.patch @@ -1,7 +1,7 @@ From ede6c9689395499f98a4c14d76b97151b4de5f54 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Wed, 3 May 2017 12:58:15 +0200 -Subject: [PATCH 011/216] Add strtoull test. +Subject: [PATCH 011/227] Add strtoull test. --- grub-core/Makefile.core.def | 5 +++++ diff --git a/0012-strtoull-Fix-behaviour-on-chars-between-9-and-a.patch b/0012-strtoull-Fix-behaviour-on-chars-between-9-and-a.patch index fc3ad759..ea96d457 100644 --- a/0012-strtoull-Fix-behaviour-on-chars-between-9-and-a.patch +++ b/0012-strtoull-Fix-behaviour-on-chars-between-9-and-a.patch @@ -1,7 +1,7 @@ From dc6e1b5af83eb1c4290baf97c2d221c0865127be Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Wed, 10 Aug 2016 17:49:42 +0200 -Subject: [PATCH 012/216] strtoull: Fix behaviour on chars between '9' and 'a'. +Subject: [PATCH 012/227] strtoull: Fix behaviour on chars between '9' and 'a'. Reported by: Aaron Miller --- diff --git a/0013-Add-Virtual-LAN-support.patch b/0013-Add-Virtual-LAN-support.patch index 702becf3..ba64ee5a 100644 --- a/0013-Add-Virtual-LAN-support.patch +++ b/0013-Add-Virtual-LAN-support.patch @@ -1,7 +1,7 @@ From d9f7de0ae3c0c09cff7257c55418450261f3e082 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Mon, 23 Dec 2013 12:32:02 -0200 -Subject: [PATCH 013/216] Add Virtual LAN support. +Subject: [PATCH 013/227] Add Virtual LAN support. This patch adds support for virtual LAN (VLAN) tagging. VLAN tagging allows multiple VLANs in a bridged network to share the same physical network link diff --git a/0014-mkimage-Pass-layout-to-mkimage_generate_elfXX-rather.patch b/0014-mkimage-Pass-layout-to-mkimage_generate_elfXX-rather.patch index 73b6b5d9..1f37380d 100644 --- a/0014-mkimage-Pass-layout-to-mkimage_generate_elfXX-rather.patch +++ b/0014-mkimage-Pass-layout-to-mkimage_generate_elfXX-rather.patch @@ -1,7 +1,7 @@ From a35ac854308b0af7c86c2c7b199f6abdfa2110b0 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 17:32:15 +0200 -Subject: [PATCH 014/216] mkimage: Pass layout to mkimage_generate_elfXX rather +Subject: [PATCH 014/227] mkimage: Pass layout to mkimage_generate_elfXX rather than some fields. This allows easier extension of this function without having too long of diff --git a/0015-Refactor-arm-uboot-code-to-make-it-genereic.patch b/0015-Refactor-arm-uboot-code-to-make-it-genereic.patch index 08e426d4..866b86b0 100644 --- a/0015-Refactor-arm-uboot-code-to-make-it-genereic.patch +++ b/0015-Refactor-arm-uboot-code-to-make-it-genereic.patch @@ -1,7 +1,7 @@ From d08c9685149e7788001ac9a209baa1d84c3628e0 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 17:47:57 +0200 -Subject: [PATCH 015/216] Refactor arm-uboot code to make it genereic. +Subject: [PATCH 015/227] Refactor arm-uboot code to make it genereic. arm-coreboot startup code can be very similar to arm-uboot but current code has U-Boot specific references. So split U-Boot part from generic part. diff --git a/0016-coreboot-Split-parts-that-are-platform-independent.patch b/0016-coreboot-Split-parts-that-are-platform-independent.patch index bb731040..4351c320 100644 --- a/0016-coreboot-Split-parts-that-are-platform-independent.patch +++ b/0016-coreboot-Split-parts-that-are-platform-independent.patch @@ -1,7 +1,7 @@ From 461bfab7b7e47fd0a76bf6076a438af1b7e2184a Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 19:06:22 +0200 -Subject: [PATCH 016/216] coreboot: Split parts that are platform-independent. +Subject: [PATCH 016/227] coreboot: Split parts that are platform-independent. We currently assume that coreboot is always i386, it's no longer the case, so split i386-coreboot parts from generic coreboot code. diff --git a/0017-Rename-uboot-halt.c-to-dummy-halt.c.patch b/0017-Rename-uboot-halt.c-to-dummy-halt.c.patch index fa7e44f7..7c483357 100644 --- a/0017-Rename-uboot-halt.c-to-dummy-halt.c.patch +++ b/0017-Rename-uboot-halt.c-to-dummy-halt.c.patch @@ -1,7 +1,7 @@ From 1daa716c7017f1858de117a20a31da66815435c5 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 19:31:55 +0200 -Subject: [PATCH 017/216] Rename uboot/halt.c to dummy/halt.c. +Subject: [PATCH 017/227] Rename uboot/halt.c to dummy/halt.c. It's not U-Boot specific and it's a stub. --- diff --git a/0018-Rename-uboot-datetime-to-dummy-datetime.patch b/0018-Rename-uboot-datetime-to-dummy-datetime.patch index dd22a345..31538d23 100644 --- a/0018-Rename-uboot-datetime-to-dummy-datetime.patch +++ b/0018-Rename-uboot-datetime-to-dummy-datetime.patch @@ -1,7 +1,7 @@ From 9808c3ef956c6472a96790b60cf74f4eaa742010 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 19:37:29 +0200 -Subject: [PATCH 018/216] Rename uboot/datetime to dummy/datetime. +Subject: [PATCH 018/227] Rename uboot/datetime to dummy/datetime. It's just a stub and is not UBoot-specific. --- diff --git a/0019-arm-coreboot-Start-new-port.patch b/0019-arm-coreboot-Start-new-port.patch index 6da1bd9c..113b451c 100644 --- a/0019-arm-coreboot-Start-new-port.patch +++ b/0019-arm-coreboot-Start-new-port.patch @@ -1,7 +1,7 @@ From 24e37a885269bdec9b27babf1da0bba3692d55c0 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 20:53:28 +0200 -Subject: [PATCH 019/216] arm-coreboot: Start new port. +Subject: [PATCH 019/227] arm-coreboot: Start new port. --- configure.ac | 2 + diff --git a/0020-Add-support-for-device-tree-based-drivers.patch b/0020-Add-support-for-device-tree-based-drivers.patch index 2ad7206c..a0a4d739 100644 --- a/0020-Add-support-for-device-tree-based-drivers.patch +++ b/0020-Add-support-for-device-tree-based-drivers.patch @@ -1,7 +1,7 @@ From fcbb723d4b1f7ad4687191562621dd0eb25f4d9e Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:19:59 +0200 -Subject: [PATCH 020/216] Add support for device-tree-based drivers. +Subject: [PATCH 020/227] Add support for device-tree-based drivers. --- grub-core/Makefile.core.def | 2 + diff --git a/0021-arm-coreboot-Support-for-vexpress-timer.patch b/0021-arm-coreboot-Support-for-vexpress-timer.patch index b0c498c1..ced2613c 100644 --- a/0021-arm-coreboot-Support-for-vexpress-timer.patch +++ b/0021-arm-coreboot-Support-for-vexpress-timer.patch @@ -1,7 +1,7 @@ From 5a865b37866ee8cd64c080bc6fb1e537f8e2b3c6 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:26:36 +0200 -Subject: [PATCH 021/216] arm-coreboot: Support for vexpress timer. +Subject: [PATCH 021/227] arm-coreboot: Support for vexpress timer. --- grub-core/kern/arm/coreboot/timer.c | 36 ++++++++++++++++++++++++++++++++++++ diff --git a/0022-arm-coreboot-Export-FDT-routines.patch b/0022-arm-coreboot-Export-FDT-routines.patch index f9b5bfef..f7e27c36 100644 --- a/0022-arm-coreboot-Export-FDT-routines.patch +++ b/0022-arm-coreboot-Export-FDT-routines.patch @@ -1,7 +1,7 @@ From ac6b41b89fbb82a3ba843a7ed19115d81432b604 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:29:48 +0200 -Subject: [PATCH 022/216] arm-coreboot: Export FDT routines. +Subject: [PATCH 022/227] arm-coreboot: Export FDT routines. We need to use them from modules as well. --- diff --git a/0023-at_keyboard-Split-protocol-from-controller-code.patch b/0023-at_keyboard-Split-protocol-from-controller-code.patch index add73ff1..365e0df0 100644 --- a/0023-at_keyboard-Split-protocol-from-controller-code.patch +++ b/0023-at_keyboard-Split-protocol-from-controller-code.patch @@ -1,7 +1,7 @@ From 216950a4eea1a1ead1c28eaca94e34ea2ef2ad19 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:41:22 +0200 -Subject: [PATCH 023/216] at_keyboard: Split protocol from controller code. +Subject: [PATCH 023/227] at_keyboard: Split protocol from controller code. On vexpress controller is different but protocol is the same, so reuse the code. diff --git a/0024-arm_coreboot-Support-keyboard-for-vexpress.patch b/0024-arm_coreboot-Support-keyboard-for-vexpress.patch index f196493a..e09cc136 100644 --- a/0024-arm_coreboot-Support-keyboard-for-vexpress.patch +++ b/0024-arm_coreboot-Support-keyboard-for-vexpress.patch @@ -1,7 +1,7 @@ From 848bed9d92cf20e9f25db4c69a20efad23996ca0 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:42:37 +0200 -Subject: [PATCH 024/216] arm_coreboot: Support keyboard for vexpress. +Subject: [PATCH 024/227] arm_coreboot: Support keyboard for vexpress. --- grub-core/Makefile.core.def | 3 + diff --git a/0025-arm_coreboot-Support-grub-mkstandalone.patch b/0025-arm_coreboot-Support-grub-mkstandalone.patch index beec3166..255f415a 100644 --- a/0025-arm_coreboot-Support-grub-mkstandalone.patch +++ b/0025-arm_coreboot-Support-grub-mkstandalone.patch @@ -1,7 +1,7 @@ From 3edabad8fefb112cc4b2d43be6e97d43c909ceee Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:59:48 +0200 -Subject: [PATCH 025/216] arm_coreboot: Support grub-mkstandalone. +Subject: [PATCH 025/227] arm_coreboot: Support grub-mkstandalone. --- util/grub-install-common.c | 12 ++++++++++-- diff --git a/0026-arm_coreboot-Support-loading-linux-images.patch b/0026-arm_coreboot-Support-loading-linux-images.patch index 9f27b791..c080d144 100644 --- a/0026-arm_coreboot-Support-loading-linux-images.patch +++ b/0026-arm_coreboot-Support-loading-linux-images.patch @@ -1,7 +1,7 @@ From 656c3b0d7fbe23f0e1ab561c8faa4ac4a37364d1 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 22:00:06 +0200 -Subject: [PATCH 026/216] arm_coreboot: Support loading linux images. +Subject: [PATCH 026/227] arm_coreboot: Support loading linux images. --- grub-core/loader/arm/linux.c | 132 ++++++++++++++++++++++--------------------- diff --git a/0027-arm_coreboot-Support-DMA.patch b/0027-arm_coreboot-Support-DMA.patch index a5814a64..98dd9327 100644 --- a/0027-arm_coreboot-Support-DMA.patch +++ b/0027-arm_coreboot-Support-DMA.patch @@ -1,7 +1,7 @@ From 265292f2b0da0eb414c409871ba0f94a99ec33c1 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 22:06:04 +0200 -Subject: [PATCH 027/216] arm_coreboot: Support DMA. +Subject: [PATCH 027/227] arm_coreboot: Support DMA. This is needed to support USB and some other busses. --- diff --git a/0028-ehci-Split-core-code-from-PCI-part.patch b/0028-ehci-Split-core-code-from-PCI-part.patch index e4af4e52..a133bff5 100644 --- a/0028-ehci-Split-core-code-from-PCI-part.patch +++ b/0028-ehci-Split-core-code-from-PCI-part.patch @@ -1,7 +1,7 @@ From 058df7b5a9cc7aaa9872eaa916b715544a8f9840 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 22:10:26 +0200 -Subject: [PATCH 028/216] ehci: Split core code from PCI part. +Subject: [PATCH 028/227] ehci: Split core code from PCI part. On ARM often EHCI is present without PCI and just declared in device tree. So splitcore from PCI part. diff --git a/0029-arm_coreboot-Support-EHCI.patch b/0029-arm_coreboot-Support-EHCI.patch index 0b929333..faa8b706 100644 --- a/0029-arm_coreboot-Support-EHCI.patch +++ b/0029-arm_coreboot-Support-EHCI.patch @@ -1,7 +1,7 @@ From d11ced1e1fb93676942e51618eb53c140f541890 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 22:14:28 +0200 -Subject: [PATCH 029/216] arm_coreboot: Support EHCI. +Subject: [PATCH 029/227] arm_coreboot: Support EHCI. --- grub-core/Makefile.core.def | 2 ++ diff --git a/0030-Fix-bug-on-FDT-nodes-with-compatible-property.patch b/0030-Fix-bug-on-FDT-nodes-with-compatible-property.patch index b6960156..8c7209ba 100644 --- a/0030-Fix-bug-on-FDT-nodes-with-compatible-property.patch +++ b/0030-Fix-bug-on-FDT-nodes-with-compatible-property.patch @@ -1,7 +1,7 @@ From 4f8471532d454b2db96434c28bf7105ed69e0f4d Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 08:39:40 +0200 -Subject: [PATCH 030/216] Fix bug on FDT nodes with compatible property +Subject: [PATCH 030/227] Fix bug on FDT nodes with compatible property --- grub-core/bus/fdt.c | 2 ++ diff --git a/0031-fdtbus-Add-ability-to-send-receive-messages-on-paren.patch b/0031-fdtbus-Add-ability-to-send-receive-messages-on-paren.patch index 7f711c2b..c8254ffe 100644 --- a/0031-fdtbus-Add-ability-to-send-receive-messages-on-paren.patch +++ b/0031-fdtbus-Add-ability-to-send-receive-messages-on-paren.patch @@ -1,7 +1,7 @@ From c4313c812dc14e82a774b580b5e34d40e7f3fae6 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 08:40:29 +0200 -Subject: [PATCH 031/216] fdtbus: Add ability to send/receive messages on +Subject: [PATCH 031/227] fdtbus: Add ability to send/receive messages on parent busses. --- diff --git a/0032-rk3288_spi-Add-SPI-driver.patch b/0032-rk3288_spi-Add-SPI-driver.patch index dc3374a6..c646634e 100644 --- a/0032-rk3288_spi-Add-SPI-driver.patch +++ b/0032-rk3288_spi-Add-SPI-driver.patch @@ -1,7 +1,7 @@ From b0b1b81a11f8bae8ab9e8edd87ac3f4f7949d03b Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 08:42:14 +0200 -Subject: [PATCH 032/216] rk3288_spi: Add SPI driver +Subject: [PATCH 032/227] rk3288_spi: Add SPI driver --- grub-core/Makefile.core.def | 1 + diff --git a/0033-arm_coreboot-Add-Chromebook-keyboard-driver.patch b/0033-arm_coreboot-Add-Chromebook-keyboard-driver.patch index 97aa64c0..4919eb69 100644 --- a/0033-arm_coreboot-Add-Chromebook-keyboard-driver.patch +++ b/0033-arm_coreboot-Add-Chromebook-keyboard-driver.patch @@ -1,7 +1,7 @@ From 5c3fd1b135bd73c8e3467b9b635b25ca4d360a19 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 08:47:34 +0200 -Subject: [PATCH 033/216] arm_coreboot: Add Chromebook keyboard driver. +Subject: [PATCH 033/227] arm_coreboot: Add Chromebook keyboard driver. --- grub-core/term/arm/cros.c | 125 +++++++++++++++++++++++ diff --git a/0034-Missing-parts-of-previous-commit.patch b/0034-Missing-parts-of-previous-commit.patch index 2ca46000..0fcd8989 100644 --- a/0034-Missing-parts-of-previous-commit.patch +++ b/0034-Missing-parts-of-previous-commit.patch @@ -1,7 +1,7 @@ From c6eaa982d12e3cfc5465dda5ea372774188b6b81 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 09:02:15 +0200 -Subject: [PATCH 034/216] Missing parts of previous commit +Subject: [PATCH 034/227] Missing parts of previous commit --- grub-core/Makefile.core.def | 2 ++ diff --git a/0035-coreboot-Changed-cbmemc-to-support-updated-console-f.patch b/0035-coreboot-Changed-cbmemc-to-support-updated-console-f.patch index c9c7ffe1..31e00e54 100644 --- a/0035-coreboot-Changed-cbmemc-to-support-updated-console-f.patch +++ b/0035-coreboot-Changed-cbmemc-to-support-updated-console-f.patch @@ -1,7 +1,7 @@ From 70b555a52a065b2beb91e6fc97a6b358c931b303 Mon Sep 17 00:00:00 2001 From: Julius Werner Date: Tue, 9 May 2017 09:03:02 +0200 -Subject: [PATCH 035/216] coreboot: Changed cbmemc to support updated console +Subject: [PATCH 035/227] coreboot: Changed cbmemc to support updated console format from coreboot. --- diff --git a/0036-at_keyboard-Fix-falco-chromebook-case.patch b/0036-at_keyboard-Fix-falco-chromebook-case.patch index 84609738..ec5dbb87 100644 --- a/0036-at_keyboard-Fix-falco-chromebook-case.patch +++ b/0036-at_keyboard-Fix-falco-chromebook-case.patch @@ -1,7 +1,7 @@ From c4b8bec5fee4e30a165fd14a188cf3ab8eccd095 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 14:27:52 +0200 -Subject: [PATCH 036/216] at_keyboard: Fix falco chromebook case. +Subject: [PATCH 036/227] at_keyboard: Fix falco chromebook case. EC is slow, so we need few delays for it to toggle the bits correctly. diff --git a/0037-sparc64-Close-cdboot-ihandle.patch b/0037-sparc64-Close-cdboot-ihandle.patch index 8217a6dc..0eb9d527 100644 --- a/0037-sparc64-Close-cdboot-ihandle.patch +++ b/0037-sparc64-Close-cdboot-ihandle.patch @@ -1,7 +1,7 @@ From bd4e40aadded7093908d786d03b4acf60b7b1707 Mon Sep 17 00:00:00 2001 From: Eric Snowberg Date: Thu, 11 May 2017 18:42:23 -0700 -Subject: [PATCH 037/216] sparc64: Close cdboot ihandle +Subject: [PATCH 037/227] sparc64: Close cdboot ihandle The ihandle is left open with a cd-core image. This will cause a delay booting grub from a virtual cdrom in a LDOM. It will also cause problems diff --git a/0038-arm64-xen_boot-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch b/0038-arm64-xen_boot-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch index d29b004a..4ecac6cc 100644 --- a/0038-arm64-xen_boot-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch +++ b/0038-arm64-xen_boot-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch @@ -1,7 +1,7 @@ From ae5817f1dcbf0b99f7a849f56afe442165317840 Mon Sep 17 00:00:00 2001 From: Julien Grall Date: Fri, 19 Feb 2016 16:28:52 +0000 -Subject: [PATCH 038/216] arm64/xen_boot: Fix Xen boot using GRUB2 on AARCH64 +Subject: [PATCH 038/227] arm64/xen_boot: Fix Xen boot using GRUB2 on AARCH64 Xen is currently crashing because of malformed compatible property for the boot module. This is because the property string is not diff --git a/0039-arm64-Add-nounzip-option-support-in-xen_module-comma.patch b/0039-arm64-Add-nounzip-option-support-in-xen_module-comma.patch index ffd6f89d..84005bcd 100644 --- a/0039-arm64-Add-nounzip-option-support-in-xen_module-comma.patch +++ b/0039-arm64-Add-nounzip-option-support-in-xen_module-comma.patch @@ -1,7 +1,7 @@ From 8eed7be8a61c295df700e918744a984162378ca9 Mon Sep 17 00:00:00 2001 From: Fu Wei Date: Sun, 14 May 2017 15:43:45 +0800 -Subject: [PATCH 039/216] arm64: Add "--nounzip" option support in xen_module +Subject: [PATCH 039/227] arm64: Add "--nounzip" option support in xen_module command This patch adds "--nounzip" option support in order to diff --git a/0040-util-grub.d-20_linux_xen.in-Add-xen_boot-command-sup.patch b/0040-util-grub.d-20_linux_xen.in-Add-xen_boot-command-sup.patch index 5dfb73d3..ee4bb02e 100644 --- a/0040-util-grub.d-20_linux_xen.in-Add-xen_boot-command-sup.patch +++ b/0040-util-grub.d-20_linux_xen.in-Add-xen_boot-command-sup.patch @@ -1,7 +1,7 @@ From d33045ce7ffcb7c1e4a60c14d5ca64b36e3c5abe Mon Sep 17 00:00:00 2001 From: Fu Wei Date: Sun, 14 May 2017 15:43:46 +0800 -Subject: [PATCH 040/216] util/grub.d/20_linux_xen.in: Add xen_boot command +Subject: [PATCH 040/227] util/grub.d/20_linux_xen.in: Add xen_boot command support for aarch64 This patch adds the support of xen_boot command for aarch64: diff --git a/0041-arm64-Update-the-introduction-of-Xen-boot-commands-i.patch b/0041-arm64-Update-the-introduction-of-Xen-boot-commands-i.patch index 5355d1d8..55470640 100644 --- a/0041-arm64-Update-the-introduction-of-Xen-boot-commands-i.patch +++ b/0041-arm64-Update-the-introduction-of-Xen-boot-commands-i.patch @@ -1,7 +1,7 @@ From 26c2f306fd425d2c0348023b8dcb7eb40a01851a Mon Sep 17 00:00:00 2001 From: Fu Wei Date: Sun, 14 May 2017 15:43:47 +0800 -Subject: [PATCH 041/216] arm64: Update the introduction of Xen boot commands +Subject: [PATCH 041/227] arm64: Update the introduction of Xen boot commands in docs/grub.texi delete: xen_linux, xen_initrd, xen_xsm diff --git a/0042-sparc64-Don-t-use-devspec-to-determine-the-OBP-path.patch b/0042-sparc64-Don-t-use-devspec-to-determine-the-OBP-path.patch index e22b55c0..c383ae58 100644 --- a/0042-sparc64-Don-t-use-devspec-to-determine-the-OBP-path.patch +++ b/0042-sparc64-Don-t-use-devspec-to-determine-the-OBP-path.patch @@ -1,7 +1,7 @@ From f8679cedff703b437171f4708d46adbfcff80a65 Mon Sep 17 00:00:00 2001 From: Eric Snowberg Date: Thu, 18 May 2017 17:10:22 -0600 -Subject: [PATCH 042/216] sparc64: Don't use devspec to determine the OBP path +Subject: [PATCH 042/227] sparc64: Don't use devspec to determine the OBP path Don't use devspec to determine the OBP path on SPARC hardware. Within all versions of Linux on SPARC, the devspec returns one of three values: diff --git a/0043-Allow-GRUB-to-mount-ext2-3-4-filesystems-that-have-t.patch b/0043-Allow-GRUB-to-mount-ext2-3-4-filesystems-that-have-t.patch index d1b26ab8..df596a51 100644 --- a/0043-Allow-GRUB-to-mount-ext2-3-4-filesystems-that-have-t.patch +++ b/0043-Allow-GRUB-to-mount-ext2-3-4-filesystems-that-have-t.patch @@ -1,7 +1,7 @@ From 734668238fcc0ef691a080839e04f33854fa133a Mon Sep 17 00:00:00 2001 From: Eric Biggers Date: Thu, 29 Jun 2017 13:27:49 +0000 -Subject: [PATCH 043/216] Allow GRUB to mount ext2/3/4 filesystems that have +Subject: [PATCH 043/227] Allow GRUB to mount ext2/3/4 filesystems that have the encryption feature. On such a filesystem, inodes may have EXT4_ENCRYPT_FLAG set. diff --git a/0044-ehci-Fix-compilation-for-amd64.patch b/0044-ehci-Fix-compilation-for-amd64.patch index b841e5d0..f8031f69 100644 --- a/0044-ehci-Fix-compilation-for-amd64.patch +++ b/0044-ehci-Fix-compilation-for-amd64.patch @@ -1,7 +1,7 @@ From edb37fb30bbc8a3b6bec67911c7200e4eb071127 Mon Sep 17 00:00:00 2001 From: phcoder Date: Sun, 9 Jul 2017 20:58:31 +0200 -Subject: [PATCH 044/216] ehci: Fix compilation for amd64 +Subject: [PATCH 044/227] ehci: Fix compilation for amd64 --- grub-core/bus/usb/ehci.c | 8 ++++---- diff --git a/0045-cache-Fix-compilation-for-ppc-sparc-and-arm64.patch b/0045-cache-Fix-compilation-for-ppc-sparc-and-arm64.patch index 6f2c7f7c..13f3812f 100644 --- a/0045-cache-Fix-compilation-for-ppc-sparc-and-arm64.patch +++ b/0045-cache-Fix-compilation-for-ppc-sparc-and-arm64.patch @@ -1,7 +1,7 @@ From d8901e3ba115d705c9c08ecedd201aca8b4867b8 Mon Sep 17 00:00:00 2001 From: phcoder Date: Sun, 9 Jul 2017 20:59:15 +0200 -Subject: [PATCH 045/216] cache: Fix compilation for ppc, sparc and arm64 +Subject: [PATCH 045/227] cache: Fix compilation for ppc, sparc and arm64 --- include/grub/cache.h | 4 +++- diff --git a/0046-ehci-Fix-compilation-on-i386.patch b/0046-ehci-Fix-compilation-on-i386.patch index 098d08b8..12407413 100644 --- a/0046-ehci-Fix-compilation-on-i386.patch +++ b/0046-ehci-Fix-compilation-on-i386.patch @@ -1,7 +1,7 @@ From 284afab081ef7ed7db2c59151853aa3c92d988f2 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Sun, 9 Jul 2017 21:31:19 +0200 -Subject: [PATCH 046/216] ehci: Fix compilation on i386 +Subject: [PATCH 046/227] ehci: Fix compilation on i386 --- grub-core/bus/usb/ehci.c | 4 ++-- diff --git a/0047-crypto-Fix-use-after-free.patch b/0047-crypto-Fix-use-after-free.patch index 9633abe0..c326f1f1 100644 --- a/0047-crypto-Fix-use-after-free.patch +++ b/0047-crypto-Fix-use-after-free.patch @@ -1,7 +1,7 @@ From a0fe0c26aa8a1c0ad66d9527611bd726b849c623 Mon Sep 17 00:00:00 2001 From: AppChecker Date: Sun, 9 Jul 2017 21:57:35 +0200 -Subject: [PATCH 047/216] crypto: Fix use after free. +Subject: [PATCH 047/227] crypto: Fix use after free. Reported by: AppChecker Transformed to patch by: Satish Govindarajan diff --git a/0048-arm-efi-Fix-compilation.patch b/0048-arm-efi-Fix-compilation.patch index c0ad5757..cf01fd89 100644 --- a/0048-arm-efi-Fix-compilation.patch +++ b/0048-arm-efi-Fix-compilation.patch @@ -1,7 +1,7 @@ From cb8b7e4e36bf32dccbbba8252aa44ad3ada4fbc1 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Sun, 9 Jul 2017 21:48:37 +0000 -Subject: [PATCH 048/216] arm-efi: Fix compilation +Subject: [PATCH 048/227] arm-efi: Fix compilation --- grub-core/loader/arm/linux.c | 8 ++++---- diff --git a/0049-fdt-silence-clang-warning.patch b/0049-fdt-silence-clang-warning.patch index 5257448d..65d5856e 100644 --- a/0049-fdt-silence-clang-warning.patch +++ b/0049-fdt-silence-clang-warning.patch @@ -1,7 +1,7 @@ From 68d54b55f49249c5e0517bf189f0f3df7ee6a36f Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 10 Jul 2017 01:34:22 +0000 -Subject: [PATCH 049/216] fdt: silence clang warning. +Subject: [PATCH 049/227] fdt: silence clang warning. --- grub-core/lib/fdt.c | 3 ++- diff --git a/0050-Fix-a-segfault-in-lsefi.patch b/0050-Fix-a-segfault-in-lsefi.patch index 1f781480..e03d9f62 100644 --- a/0050-Fix-a-segfault-in-lsefi.patch +++ b/0050-Fix-a-segfault-in-lsefi.patch @@ -1,7 +1,7 @@ From e8ab5a1a9e2889eb59d1fa494ba441a53698dcd2 Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Wed, 19 Jul 2017 15:47:41 -0400 -Subject: [PATCH 050/216] Fix a segfault in lsefi +Subject: [PATCH 050/227] Fix a segfault in lsefi when protocols_per_handle returns error, we can't use the pointers we passed to it, and that includes trusting num_protocols. diff --git a/0051-zfs-remove-size_t-typedef-and-use-grub_size_t-instea.patch b/0051-zfs-remove-size_t-typedef-and-use-grub_size_t-instea.patch index da31a819..02fae778 100644 --- a/0051-zfs-remove-size_t-typedef-and-use-grub_size_t-instea.patch +++ b/0051-zfs-remove-size_t-typedef-and-use-grub_size_t-instea.patch @@ -1,7 +1,7 @@ From fa42786264cef98c56e972b3bb6b8448000e1c70 Mon Sep 17 00:00:00 2001 From: Pete Batard Date: Thu, 3 Aug 2017 15:46:15 +0100 -Subject: [PATCH 051/216] zfs: remove size_t typedef and use grub_size_t +Subject: [PATCH 051/227] zfs: remove size_t typedef and use grub_size_t instead * Prevents some toolchains from issuing a warning on size_t redef. diff --git a/0052-udf-Fix-reading-label-lvd.ident-is-dstring.patch b/0052-udf-Fix-reading-label-lvd.ident-is-dstring.patch index 301e16a9..7abba792 100644 --- a/0052-udf-Fix-reading-label-lvd.ident-is-dstring.patch +++ b/0052-udf-Fix-reading-label-lvd.ident-is-dstring.patch @@ -1,7 +1,7 @@ From 76188809d5ca40c5285b0ab202b5edea7be3f04d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pali=20Roh=C3=A1r?= Date: Thu, 22 Jun 2017 14:33:17 +0200 -Subject: [PATCH 052/216] udf: Fix reading label, lvd.ident is dstring +Subject: [PATCH 052/227] udf: Fix reading label, lvd.ident is dstring UDF dstring has stored length in the last byte of buffer. Therefore last byte is not part of recorded characters. And empty string in dstring is diff --git a/0053-grub-core-fs-udf.c-Add-support-for-UUID.patch b/0053-grub-core-fs-udf.c-Add-support-for-UUID.patch index 810e9c3b..85322f2c 100644 --- a/0053-grub-core-fs-udf.c-Add-support-for-UUID.patch +++ b/0053-grub-core-fs-udf.c-Add-support-for-UUID.patch @@ -1,7 +1,7 @@ From 435fa75e01ef40917239c7f775e505e86f70d202 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pali=20Roh=C3=A1r?= Date: Thu, 22 Jun 2017 14:42:16 +0200 -Subject: [PATCH 053/216] * grub-core/fs/udf.c: Add support for UUID +Subject: [PATCH 053/227] * grub-core/fs/udf.c: Add support for UUID Use same algorithm as in libblkid from util-linux v2.30. diff --git a/0054-mkrescue-Check-xorriso-presence-before-doing-anythin.patch b/0054-mkrescue-Check-xorriso-presence-before-doing-anythin.patch index 6b96db41..ab811b4d 100644 --- a/0054-mkrescue-Check-xorriso-presence-before-doing-anythin.patch +++ b/0054-mkrescue-Check-xorriso-presence-before-doing-anythin.patch @@ -1,7 +1,7 @@ From 9e962fd3c42081e2eef1f99a0eaab38fd04d2620 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 7 Aug 2017 18:05:17 +0200 -Subject: [PATCH 054/216] mkrescue: Check xorriso presence before doing +Subject: [PATCH 054/227] mkrescue: Check xorriso presence before doing anything else. mkrescue can't do anything useful without xorriso, so abort early if it's diff --git a/0055-Fail-if-xorriso-failed.patch b/0055-Fail-if-xorriso-failed.patch index 3e664264..df3d2e41 100644 --- a/0055-Fail-if-xorriso-failed.patch +++ b/0055-Fail-if-xorriso-failed.patch @@ -1,7 +1,7 @@ From e66dc5d71ebfc9763420a76c274e6980d54641c3 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 7 Aug 2017 18:08:39 +0200 -Subject: [PATCH 055/216] Fail if xorriso failed. +Subject: [PATCH 055/227] Fail if xorriso failed. If xorriso failed most likely we didn't generate a meaningful image. --- diff --git a/0056-efi-refactor-grub_efi_allocate_pages.patch b/0056-efi-refactor-grub_efi_allocate_pages.patch index 5420fa29..82ec9388 100644 --- a/0056-efi-refactor-grub_efi_allocate_pages.patch +++ b/0056-efi-refactor-grub_efi_allocate_pages.patch @@ -1,7 +1,7 @@ From dd5fde2df83c5c03b7ba04d2cc5b7be96de8da7b Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:23 +0100 -Subject: [PATCH 056/216] efi: refactor grub_efi_allocate_pages +Subject: [PATCH 056/227] efi: refactor grub_efi_allocate_pages Expose a new function, grub_efi_allocate_pages_real(), making it possible to specify allocation type and memory type as supported by the UEFI diff --git a/0057-Remove-grub_efi_allocate_pages.patch b/0057-Remove-grub_efi_allocate_pages.patch index 52fbf351..c50ba529 100644 --- a/0057-Remove-grub_efi_allocate_pages.patch +++ b/0057-Remove-grub_efi_allocate_pages.patch @@ -1,7 +1,7 @@ From 4bc909bf89f5b4ff86c9e4e609d4fe0c11a66b0c Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 7 Aug 2017 18:33:29 +0200 -Subject: [PATCH 057/216] Remove grub_efi_allocate_pages. +Subject: [PATCH 057/227] Remove grub_efi_allocate_pages. grub_efi_allocate_pages Essentially does 2 unrelated things: * Allocate at fixed address. diff --git a/0058-efi-move-fdt-helper-library.patch b/0058-efi-move-fdt-helper-library.patch index eec465b4..d1f4d299 100644 --- a/0058-efi-move-fdt-helper-library.patch +++ b/0058-efi-move-fdt-helper-library.patch @@ -1,7 +1,7 @@ From 8c9465fac901caac6802d6872a1374518b001517 Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:24 +0100 -Subject: [PATCH 058/216] efi: move fdt helper library +Subject: [PATCH 058/227] efi: move fdt helper library There is nothing ARM64 (or even ARM) specific about the efi fdt helper library, which is used for locating or overriding a firmware-provided diff --git a/0059-efi-Add-GRUB_PE32_MAGIC-definition.patch b/0059-efi-Add-GRUB_PE32_MAGIC-definition.patch index 355b6f2a..99a2cda6 100644 --- a/0059-efi-Add-GRUB_PE32_MAGIC-definition.patch +++ b/0059-efi-Add-GRUB_PE32_MAGIC-definition.patch @@ -1,7 +1,7 @@ From c5841ba7f0d14c193f20854e7e55b4f7ce9207d5 Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:25 +0100 -Subject: [PATCH 059/216] efi: Add GRUB_PE32_MAGIC definition +Subject: [PATCH 059/227] efi: Add GRUB_PE32_MAGIC definition Add a generic GRUB_PE32_MAGIC definition for the PE 'MZ' tag and delete the existing one in arm64/linux.h. diff --git a/0060-arm64-linux-loader-improve-type-portability.patch b/0060-arm64-linux-loader-improve-type-portability.patch index 5be24c54..4eb82579 100644 --- a/0060-arm64-linux-loader-improve-type-portability.patch +++ b/0060-arm64-linux-loader-improve-type-portability.patch @@ -1,7 +1,7 @@ From 91212e0aa07e704a61e4540c18a27f149f5e51c3 Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:26 +0100 -Subject: [PATCH 060/216] arm64 linux loader: improve type portability +Subject: [PATCH 060/227] arm64 linux loader: improve type portability In preparation for turning this into a common loader for 32-bit and 64-bit platforms, ensure the code will compile cleanly for either. diff --git a/0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch b/0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch index edcfbbe3..ba859a9d 100644 --- a/0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch +++ b/0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch @@ -1,7 +1,7 @@ From f826330683675f0deb55b58fd229afd7d65fb053 Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:32 +0100 -Subject: [PATCH 061/216] efi: change heap allocation type to +Subject: [PATCH 061/227] efi: change heap allocation type to GRUB_EFI_LOADER_CODE With upcoming changes to EDK2, allocations of type EFI_LOADER_DATA may diff --git a/0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch b/0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch index d389a044..4a52aef5 100644 --- a/0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch +++ b/0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch @@ -1,7 +1,7 @@ From bdd89d239cd9b4089630bfb5ec862aab8086dca2 Mon Sep 17 00:00:00 2001 From: Pete Batard Date: Mon, 7 Aug 2017 16:20:30 +0100 -Subject: [PATCH 062/216] core: use GRUB_TERM_ definitions when handling term +Subject: [PATCH 062/227] core: use GRUB_TERM_ definitions when handling term characters * Also use hex value for GRUB_TERM_ESC as '\e' is not in the C standard and is not understood by some compilers diff --git a/0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch b/0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch index 2bb5af42..98cfcad4 100644 --- a/0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch +++ b/0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch @@ -1,7 +1,7 @@ From 1deebd85ef87cc581e995ce0a51dc0802ac9c367 Mon Sep 17 00:00:00 2001 From: Pete Batard Date: Mon, 7 Aug 2017 16:23:12 +0100 -Subject: [PATCH 063/216] io: add a GRUB_GZ prefix to gzio specific defines +Subject: [PATCH 063/227] io: add a GRUB_GZ prefix to gzio specific defines * This is done to avoid a conflict with a PACKED define in the EDK2 --- diff --git a/0064-info-in-builddir.patch b/0064-info-in-builddir.patch index 6c53dbd5..d8abdfd7 100644 --- a/0064-info-in-builddir.patch +++ b/0064-info-in-builddir.patch @@ -1,7 +1,7 @@ From 5cf0df8753c19e83251c7244cafe38869a65060f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 8 Aug 2017 13:08:59 -0400 -Subject: [PATCH 064/216] info-in-builddir +Subject: [PATCH 064/227] info-in-builddir --- docs/Makefile.am | 2 +- diff --git a/0065-re-write-.gitignore.patch b/0065-re-write-.gitignore.patch index 1785d5e1..a28c04a3 100644 --- a/0065-re-write-.gitignore.patch +++ b/0065-re-write-.gitignore.patch @@ -1,7 +1,7 @@ From ff9da35fd789354cc1490b75893e765771808352 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 8 Aug 2017 12:48:04 -0400 -Subject: [PATCH 065/216] re-write .gitignore +Subject: [PATCH 065/227] re-write .gitignore --- .gitignore | 352 ++++++++++++-------------------------- diff --git a/0066-IBM-client-architecture-CAS-reboot-support.patch b/0066-IBM-client-architecture-CAS-reboot-support.patch index 236c35d7..a33ea3e9 100644 --- a/0066-IBM-client-architecture-CAS-reboot-support.patch +++ b/0066-IBM-client-architecture-CAS-reboot-support.patch @@ -1,7 +1,7 @@ From 34423216f8f3d7ce6086e2f1ee9869407e6a2221 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Thu, 20 Sep 2012 18:07:39 -0300 -Subject: [PATCH 066/216] IBM client architecture (CAS) reboot support +Subject: [PATCH 066/227] IBM client architecture (CAS) reboot support This is an implementation of IBM client architecture (CAS) reboot for GRUB. diff --git a/0067-for-ppc-reset-console-display-attr-when-clear-screen.patch b/0067-for-ppc-reset-console-display-attr-when-clear-screen.patch index e1be0327..e0f64941 100644 --- a/0067-for-ppc-reset-console-display-attr-when-clear-screen.patch +++ b/0067-for-ppc-reset-console-display-attr-when-clear-screen.patch @@ -1,7 +1,7 @@ From 070dc282d3cc6602571296e90945df9d4671aecb Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Wed, 24 Apr 2013 10:51:48 -0300 -Subject: [PATCH 067/216] for ppc, reset console display attr when clear screen +Subject: [PATCH 067/227] for ppc, reset console display attr when clear screen v2: Also use \x0c instead of a literal ^L to make future patches less awkward. diff --git a/0068-Disable-GRUB-video-support-for-IBM-power-machines.patch b/0068-Disable-GRUB-video-support-for-IBM-power-machines.patch index 52e8fcdf..10b6b2f1 100644 --- a/0068-Disable-GRUB-video-support-for-IBM-power-machines.patch +++ b/0068-Disable-GRUB-video-support-for-IBM-power-machines.patch @@ -1,7 +1,7 @@ From 4e31478fdf4cda470305c1bb2acb9b820e790757 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 11 Jun 2013 15:14:05 -0300 -Subject: [PATCH 068/216] Disable GRUB video support for IBM power machines +Subject: [PATCH 068/227] Disable GRUB video support for IBM power machines Should fix the problem in bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=973205 diff --git a/0069-Honor-a-symlink-when-generating-configuration-by-gru.patch b/0069-Honor-a-symlink-when-generating-configuration-by-gru.patch index 406b5ec4..8b0db67c 100644 --- a/0069-Honor-a-symlink-when-generating-configuration-by-gru.patch +++ b/0069-Honor-a-symlink-when-generating-configuration-by-gru.patch @@ -1,7 +1,7 @@ From 35535549324923af7fecf79cc739baba48246f21 Mon Sep 17 00:00:00 2001 From: Marcel Kolaja Date: Tue, 21 Jan 2014 10:57:08 -0500 -Subject: [PATCH 069/216] Honor a symlink when generating configuration by +Subject: [PATCH 069/227] Honor a symlink when generating configuration by grub2-mkconfig Honor a symlink when generating configuration by grub2-mkconfig, so that diff --git a/0070-Move-bash-completion-script-922997.patch b/0070-Move-bash-completion-script-922997.patch index 4a15fea9..b7ffc973 100644 --- a/0070-Move-bash-completion-script-922997.patch +++ b/0070-Move-bash-completion-script-922997.patch @@ -1,7 +1,7 @@ From 999bbc2002275efce284aed6e1e31b3ca351fa19 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 3 Apr 2013 14:35:34 -0400 -Subject: [PATCH 070/216] Move bash completion script (#922997) +Subject: [PATCH 070/227] Move bash completion script (#922997) Apparently these go in a new place now. --- diff --git a/0071-Update-to-minilzo-2.08.patch b/0071-Update-to-minilzo-2.08.patch index 10af846c..c91ac43f 100644 --- a/0071-Update-to-minilzo-2.08.patch +++ b/0071-Update-to-minilzo-2.08.patch @@ -1,7 +1,7 @@ From c0977f7fd42e16cc568af7ae667a2aeda85eb583 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Dec 2014 15:36:09 -0500 -Subject: [PATCH 071/216] Update to minilzo-2.08 +Subject: [PATCH 071/227] Update to minilzo-2.08 This fixes CVE-2014-4607 - lzo: lzo1x_decompress_safe() integer overflow diff --git a/0072-Allow-fallback-to-include-entries-by-title-not-just-.patch b/0072-Allow-fallback-to-include-entries-by-title-not-just-.patch index 75d35ce4..9cb959f2 100644 --- a/0072-Allow-fallback-to-include-entries-by-title-not-just-.patch +++ b/0072-Allow-fallback-to-include-entries-by-title-not-just-.patch @@ -1,7 +1,7 @@ From 15e9ccc8abd5621107788bea6ae6f2bdb27a3ed3 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 5 Sep 2014 10:07:04 -0400 -Subject: [PATCH 072/216] Allow "fallback" to include entries by title, not +Subject: [PATCH 072/227] Allow "fallback" to include entries by title, not just number. Resolves: rhbz#1026084 diff --git a/0073-Add-GRUB_DISABLE_UUID.patch b/0073-Add-GRUB_DISABLE_UUID.patch index b183520d..06c5c62b 100644 --- a/0073-Add-GRUB_DISABLE_UUID.patch +++ b/0073-Add-GRUB_DISABLE_UUID.patch @@ -1,7 +1,7 @@ From 87602724b509a60628623baabf5a2c7741a68884 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Sep 2014 16:49:25 -0400 -Subject: [PATCH 073/216] Add GRUB_DISABLE_UUID. +Subject: [PATCH 073/227] Add GRUB_DISABLE_UUID. This will cause "search --fs-uuid --set=root ..." not to be generated by grub2-mkconfig, and instead simply attempt to use the grub device name diff --git a/0074-Make-exit-take-a-return-code.patch b/0074-Make-exit-take-a-return-code.patch index f92dcf96..de99f8ab 100644 --- a/0074-Make-exit-take-a-return-code.patch +++ b/0074-Make-exit-take-a-return-code.patch @@ -1,7 +1,7 @@ From 68d514b51b81911d8359d7825618112dae4a44d9 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 26 Feb 2014 21:49:12 -0500 -Subject: [PATCH 074/216] Make "exit" take a return code. +Subject: [PATCH 074/227] Make "exit" take a return code. This adds "exit" with a return code. With this patch, any "exit" command /may/ include a return code, and on platforms that support diff --git a/0075-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch b/0075-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch index 81d0f026..0b00e668 100644 --- a/0075-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch +++ b/0075-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch @@ -1,7 +1,7 @@ From 126f6952b853ea67e784650ed12f365ab7988f51 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 22 Jul 2015 11:21:01 -0400 -Subject: [PATCH 075/216] Mark po/exclude.pot as binary so git won't try to +Subject: [PATCH 075/227] Mark po/exclude.pot as binary so git won't try to diff nonprintables. Signed-off-by: Peter Jones diff --git a/0076-Make-efi-machines-load-an-env-block-from-a-variable.patch b/0076-Make-efi-machines-load-an-env-block-from-a-variable.patch index e535e182..72296582 100644 --- a/0076-Make-efi-machines-load-an-env-block-from-a-variable.patch +++ b/0076-Make-efi-machines-load-an-env-block-from-a-variable.patch @@ -1,7 +1,7 @@ From 506b52759b2b2ad46e7b389979fcbaa78d68dab9 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 7 Dec 2015 14:20:49 -0500 -Subject: [PATCH 076/216] Make efi machines load an env block from a variable +Subject: [PATCH 076/227] Make efi machines load an env block from a variable Signed-off-by: Peter Jones --- diff --git a/0077-DHCP-client-ID-and-UUID-options-added.patch b/0077-DHCP-client-ID-and-UUID-options-added.patch index 53b63000..1307cc6d 100644 --- a/0077-DHCP-client-ID-and-UUID-options-added.patch +++ b/0077-DHCP-client-ID-and-UUID-options-added.patch @@ -1,7 +1,7 @@ From 8a0b654a520e407da69e0cf64f3dd6bb7cf86240 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 27 Nov 2012 17:18:53 -0200 -Subject: [PATCH 077/216] DHCP client ID and UUID options added. +Subject: [PATCH 077/227] DHCP client ID and UUID options added. --- grub-core/net/bootp.c | 87 ++++++++++++++++++++++++++++++++++++++++++++++----- diff --git a/0078-trim-arp-packets-with-abnormal-size.patch b/0078-trim-arp-packets-with-abnormal-size.patch index f4f375fc..e22fb0e7 100644 --- a/0078-trim-arp-packets-with-abnormal-size.patch +++ b/0078-trim-arp-packets-with-abnormal-size.patch @@ -1,7 +1,7 @@ From cffad45026af9a05a0509daf593fa87148a3de66 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Wed, 5 Feb 2014 09:42:42 -0200 -Subject: [PATCH 078/216] trim arp packets with abnormal size +Subject: [PATCH 078/227] trim arp packets with abnormal size GRUB uses arp request to create the arp response. If the incoming packet is foobared, GRUB needs to trim the arp response packet before sending it. diff --git a/0079-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch b/0079-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch index f1213e39..d985a8d9 100644 --- a/0079-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch +++ b/0079-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch @@ -1,7 +1,7 @@ From 97b0254d8f3de9a51aa3df570d862bbb8dbd044b Mon Sep 17 00:00:00 2001 From: Prarit Bhargava Date: Wed, 12 Mar 2014 10:58:16 -0400 -Subject: [PATCH 079/216] Fix bad test on GRUB_DISABLE_SUBMENU. +Subject: [PATCH 079/227] Fix bad test on GRUB_DISABLE_SUBMENU. The file /etc/grub.d/10_linux does diff --git a/0080-Add-support-for-UEFI-operating-systems-returned-by-o.patch b/0080-Add-support-for-UEFI-operating-systems-returned-by-o.patch index 52038025..7950a333 100644 --- a/0080-Add-support-for-UEFI-operating-systems-returned-by-o.patch +++ b/0080-Add-support-for-UEFI-operating-systems-returned-by-o.patch @@ -1,7 +1,7 @@ From cf5302cca4a0daf5eb9b058243e6f56e63ab58dc Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Wed, 12 Jun 2013 11:51:49 -0400 -Subject: [PATCH 080/216] Add support for UEFI operating systems returned by +Subject: [PATCH 080/227] Add support for UEFI operating systems returned by os-prober os-prober returns UEFI operating systems in the form: diff --git a/0081-Migrate-PPC-from-Yaboot-to-Grub2.patch b/0081-Migrate-PPC-from-Yaboot-to-Grub2.patch index bc776f62..482ff885 100644 --- a/0081-Migrate-PPC-from-Yaboot-to-Grub2.patch +++ b/0081-Migrate-PPC-from-Yaboot-to-Grub2.patch @@ -1,7 +1,7 @@ From 4fbdca3b8a359170032882db53646cc4bfd17f6b Mon Sep 17 00:00:00 2001 From: Mark Hamzy Date: Wed, 28 Mar 2012 14:46:41 -0500 -Subject: [PATCH 081/216] Migrate PPC from Yaboot to Grub2 +Subject: [PATCH 081/227] Migrate PPC from Yaboot to Grub2 Add configuration support for serial terminal consoles. This will set the maximum screen size so that text is not overwritten. diff --git a/0082-Add-fw_path-variable-revised.patch b/0082-Add-fw_path-variable-revised.patch index f039d01f..90901a25 100644 --- a/0082-Add-fw_path-variable-revised.patch +++ b/0082-Add-fw_path-variable-revised.patch @@ -1,7 +1,7 @@ From ebd364c3aabe4e484243ccf6e276563416b3f244 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Wed, 19 Sep 2012 21:22:55 -0300 -Subject: [PATCH 082/216] Add fw_path variable (revised) +Subject: [PATCH 082/227] Add fw_path variable (revised) This patch makes grub look for its config file on efi where the app was found. It was originally written by Matthew Garrett, and adapted to fix the diff --git a/0083-Add-support-for-linuxefi.patch b/0083-Add-support-for-linuxefi.patch index 26de1907..c31e707a 100644 --- a/0083-Add-support-for-linuxefi.patch +++ b/0083-Add-support-for-linuxefi.patch @@ -1,7 +1,7 @@ From e1243befd2bc84b3c85100bece1424529dedafb4 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 10 Jul 2012 11:58:52 -0400 -Subject: [PATCH 083/216] Add support for linuxefi +Subject: [PATCH 083/227] Add support for linuxefi --- grub-core/Makefile.core.def | 8 + diff --git a/0084-Use-linuxefi-and-initrdefi-where-appropriate.patch b/0084-Use-linuxefi-and-initrdefi-where-appropriate.patch index 7526b44b..003b3c8e 100644 --- a/0084-Use-linuxefi-and-initrdefi-where-appropriate.patch +++ b/0084-Use-linuxefi-and-initrdefi-where-appropriate.patch @@ -1,7 +1,7 @@ From 859cdda8e3c026eb132ad15320222a7ef89d8940 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 16 Jul 2012 18:57:11 -0400 -Subject: [PATCH 084/216] Use "linuxefi" and "initrdefi" where appropriate. +Subject: [PATCH 084/227] Use "linuxefi" and "initrdefi" where appropriate. --- util/grub.d/10_linux.in | 18 ++++++++++++++++-- diff --git a/0085-Don-t-allow-insmod-when-secure-boot-is-enabled.patch b/0085-Don-t-allow-insmod-when-secure-boot-is-enabled.patch index fd142cc7..c94f585d 100644 --- a/0085-Don-t-allow-insmod-when-secure-boot-is-enabled.patch +++ b/0085-Don-t-allow-insmod-when-secure-boot-is-enabled.patch @@ -1,7 +1,7 @@ From a7dd90b084d0e6d10e8f1892651d8c20c079c99d Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Tue, 23 Oct 2012 10:40:49 -0400 -Subject: [PATCH 085/216] Don't allow insmod when secure boot is enabled. +Subject: [PATCH 085/227] Don't allow insmod when secure boot is enabled. Hi, diff --git a/0086-Pass-x-hex-hex-straight-through-unmolested.patch b/0086-Pass-x-hex-hex-straight-through-unmolested.patch index 95725761..7dfa6b38 100644 --- a/0086-Pass-x-hex-hex-straight-through-unmolested.patch +++ b/0086-Pass-x-hex-hex-straight-through-unmolested.patch @@ -1,7 +1,7 @@ From 66e04779bda094f385e8bbbe3523501821b830e4 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 1 Oct 2012 13:24:37 -0400 -Subject: [PATCH 086/216] Pass "\x[[:hex:]][[:hex:]]" straight through +Subject: [PATCH 086/227] Pass "\x[[:hex:]][[:hex:]]" straight through unmolested. --- diff --git a/0087-Add-X-option-to-printf-functions.patch b/0087-Add-X-option-to-printf-functions.patch index f2ad0c0c..3a1e0717 100644 --- a/0087-Add-X-option-to-printf-functions.patch +++ b/0087-Add-X-option-to-printf-functions.patch @@ -1,7 +1,7 @@ From 85d1de365ee5f0fb5409a3b1d895204262a7a068 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 27 Nov 2012 16:58:39 -0200 -Subject: [PATCH 087/216] Add %X option to printf functions. +Subject: [PATCH 087/227] Add %X option to printf functions. --- grub-core/kern/misc.c | 7 +++++-- diff --git a/0088-Search-for-specific-config-file-for-netboot.patch b/0088-Search-for-specific-config-file-for-netboot.patch index 9b4ad36b..da3a449f 100644 --- a/0088-Search-for-specific-config-file-for-netboot.patch +++ b/0088-Search-for-specific-config-file-for-netboot.patch @@ -1,7 +1,7 @@ From 4b15dd15153b2e7070ae37736c3094223fa3a01d Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 27 Nov 2012 17:22:07 -0200 -Subject: [PATCH 088/216] Search for specific config file for netboot +Subject: [PATCH 088/227] Search for specific config file for netboot This patch implements a search for a specific configuration when the config file is on a remoteserver. It uses the following order: diff --git a/0089-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch b/0089-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch index c834a6ee..6468cf89 100644 --- a/0089-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch +++ b/0089-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch @@ -1,7 +1,7 @@ From cb7f166adef2b0acc52fa0b506621295a1408702 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Tue, 22 Jan 2013 06:31:38 +0100 -Subject: [PATCH 089/216] blscfg: add blscfg module to parse Boot Loader +Subject: [PATCH 089/227] blscfg: add blscfg module to parse Boot Loader Specification snippets http://www.freedesktop.org/wiki/Specifications/BootLoaderSpec diff --git a/0090-Don-t-write-messages-to-the-screen.patch b/0090-Don-t-write-messages-to-the-screen.patch index fb4b6e91..854ea347 100644 --- a/0090-Don-t-write-messages-to-the-screen.patch +++ b/0090-Don-t-write-messages-to-the-screen.patch @@ -1,7 +1,7 @@ From 472265de61af84149ba89a91072317e15298caa1 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 13:30:20 -0400 -Subject: [PATCH 090/216] Don't write messages to the screen +Subject: [PATCH 090/227] Don't write messages to the screen Writing messages to the screen before the menus or boot splash happens so quickly it looks like something is wrong and isn't diff --git a/0091-Don-t-print-GNU-GRUB-header.patch b/0091-Don-t-print-GNU-GRUB-header.patch index ba0ba9d6..8a663b32 100644 --- a/0091-Don-t-print-GNU-GRUB-header.patch +++ b/0091-Don-t-print-GNU-GRUB-header.patch @@ -1,7 +1,7 @@ From 2b9d1073c695f0363202a00586e1994432d23347 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 13:53:48 -0400 -Subject: [PATCH 091/216] Don't print GNU GRUB header +Subject: [PATCH 091/227] Don't print GNU GRUB header No one cares. --- diff --git a/0092-Don-t-add-to-highlighted-row.patch b/0092-Don-t-add-to-highlighted-row.patch index c417c511..e0f0bdaa 100644 --- a/0092-Don-t-add-to-highlighted-row.patch +++ b/0092-Don-t-add-to-highlighted-row.patch @@ -1,7 +1,7 @@ From 7cb577925e3d40869b9748afa5060b178ba88abd Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 17:49:45 -0400 -Subject: [PATCH 092/216] Don't add '*' to highlighted row +Subject: [PATCH 092/227] Don't add '*' to highlighted row It is already highlighted. --- diff --git a/0093-Message-string-cleanups.patch b/0093-Message-string-cleanups.patch index 7eaaa0cf..61b09062 100644 --- a/0093-Message-string-cleanups.patch +++ b/0093-Message-string-cleanups.patch @@ -1,7 +1,7 @@ From 67803e1ea2884a1ff8ecbb1cc9371fa63c9a7544 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 11:09:04 -0400 -Subject: [PATCH 093/216] Message string cleanups +Subject: [PATCH 093/227] Message string cleanups Make use of terminology consistent. Remove jargon. --- diff --git a/0094-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch b/0094-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch index 61363138..7e70fc8c 100644 --- a/0094-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch +++ b/0094-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch @@ -1,7 +1,7 @@ From 7857716e067795304fc788813e427fac3f9624d7 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:08:23 -0400 -Subject: [PATCH 094/216] Fix border spacing now that we aren't displaying it +Subject: [PATCH 094/227] Fix border spacing now that we aren't displaying it --- grub-core/normal/menu_text.c | 6 +++--- diff --git a/0095-Use-the-correct-indentation-for-the-term-help-text.patch b/0095-Use-the-correct-indentation-for-the-term-help-text.patch index 1f860880..b4ea1611 100644 --- a/0095-Use-the-correct-indentation-for-the-term-help-text.patch +++ b/0095-Use-the-correct-indentation-for-the-term-help-text.patch @@ -1,7 +1,7 @@ From 9ecf176aa2951d848ca2d0ab23e663b2ddc1b336 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:08:49 -0400 -Subject: [PATCH 095/216] Use the correct indentation for the term help text +Subject: [PATCH 095/227] Use the correct indentation for the term help text That is consistent with the menu help text --- diff --git a/0096-Indent-menu-entries.patch b/0096-Indent-menu-entries.patch index 8b8e3ed5..7fae91bc 100644 --- a/0096-Indent-menu-entries.patch +++ b/0096-Indent-menu-entries.patch @@ -1,7 +1,7 @@ From 62af3df5904d4fff7e8c4bab0a90aae6752be432 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:30:55 -0400 -Subject: [PATCH 096/216] Indent menu entries +Subject: [PATCH 096/227] Indent menu entries --- grub-core/normal/menu_text.c | 3 ++- diff --git a/0097-Fix-margins.patch b/0097-Fix-margins.patch index 6c2ca93d..926920a2 100644 --- a/0097-Fix-margins.patch +++ b/0097-Fix-margins.patch @@ -1,7 +1,7 @@ From aa23d4d1be22a7255f9faa3bac39a5d29c2de9f2 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:59:36 -0400 -Subject: [PATCH 097/216] Fix margins +Subject: [PATCH 097/227] Fix margins --- grub-core/normal/menu_text.c | 8 +++----- diff --git a/0098-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch b/0098-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch index febd0a0f..dee6d58b 100644 --- a/0098-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch +++ b/0098-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch @@ -1,7 +1,7 @@ From cc0abdf469be06b17879f19b26c73b916f479b28 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 21 Jun 2013 14:44:08 -0400 -Subject: [PATCH 098/216] Use -2 instead of -1 for our right-hand margin, so +Subject: [PATCH 098/227] Use -2 instead of -1 for our right-hand margin, so linewrapping works (#976643). Signed-off-by: Peter Jones diff --git a/0099-Use-linux16-when-appropriate-880840.patch b/0099-Use-linux16-when-appropriate-880840.patch index 4b3c6dc4..b834eb84 100644 --- a/0099-Use-linux16-when-appropriate-880840.patch +++ b/0099-Use-linux16-when-appropriate-880840.patch @@ -1,7 +1,7 @@ From 9b332449552b4c8afbe2d0e30b795d93c2ac733f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 28 Oct 2013 10:05:07 -0400 -Subject: [PATCH 099/216] Use linux16 when appropriate (#880840) +Subject: [PATCH 099/227] Use linux16 when appropriate (#880840) The kernel group really would prefer that we use the 16 bit entry point on x86 bios machines. diff --git a/0100-Enable-pager-by-default.-985860.patch b/0100-Enable-pager-by-default.-985860.patch index 50641153..f764a56c 100644 --- a/0100-Enable-pager-by-default.-985860.patch +++ b/0100-Enable-pager-by-default.-985860.patch @@ -1,7 +1,7 @@ From 24b186833aad3f456111b7f9d3806065dbb95a2e Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 28 Oct 2013 10:09:27 -0400 -Subject: [PATCH 100/216] Enable pager by default. (#985860) +Subject: [PATCH 100/227] Enable pager by default. (#985860) Signed-off-by: Peter Jones --- diff --git a/0101-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch b/0101-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch index cc9192fd..1059488f 100644 --- a/0101-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch +++ b/0101-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch @@ -1,7 +1,7 @@ From 3635e1f8f5925e9c5ba54e9bbe79503d78177ea4 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 28 Oct 2013 10:13:27 -0400 -Subject: [PATCH 101/216] F10 doesn't work on serial, so don't tell the user to +Subject: [PATCH 101/227] F10 doesn't work on serial, so don't tell the user to hit it (#987443) Signed-off-by: Peter Jones diff --git a/0102-Don-t-say-GNU-Linux-in-generated-menus.patch b/0102-Don-t-say-GNU-Linux-in-generated-menus.patch index a8ccaa0b..9e3042c4 100644 --- a/0102-Don-t-say-GNU-Linux-in-generated-menus.patch +++ b/0102-Don-t-say-GNU-Linux-in-generated-menus.patch @@ -1,7 +1,7 @@ From c3bd10791d0ecc17cd8243de8eea4cd683ae2bdb Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 14 Mar 2011 14:27:42 -0400 -Subject: [PATCH 102/216] Don't say "GNU/Linux" in generated menus. +Subject: [PATCH 102/227] Don't say "GNU/Linux" in generated menus. --- util/grub.d/10_linux.in | 4 ++-- diff --git a/0103-Don-t-draw-a-border-around-the-menu.patch b/0103-Don-t-draw-a-border-around-the-menu.patch index ad76c4cd..d4235227 100644 --- a/0103-Don-t-draw-a-border-around-the-menu.patch +++ b/0103-Don-t-draw-a-border-around-the-menu.patch @@ -1,7 +1,7 @@ From 79e679458cc2e70d0097cfc702668976fe1fdc5d Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 16:47:33 -0400 -Subject: [PATCH 103/216] Don't draw a border around the menu +Subject: [PATCH 103/227] Don't draw a border around the menu It looks cleaner without it. --- diff --git a/0104-Use-the-standard-margin-for-the-timeout-string.patch b/0104-Use-the-standard-margin-for-the-timeout-string.patch index 42233982..ddf1703c 100644 --- a/0104-Use-the-standard-margin-for-the-timeout-string.patch +++ b/0104-Use-the-standard-margin-for-the-timeout-string.patch @@ -1,7 +1,7 @@ From a82ffe034724bb20b062bba9606654d0e3919acc Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 10:52:32 -0400 -Subject: [PATCH 104/216] Use the standard margin for the timeout string +Subject: [PATCH 104/227] Use the standard margin for the timeout string So that it aligns with the other messages --- diff --git a/0105-Add-.eh_frame-to-list-of-relocations-stripped.patch b/0105-Add-.eh_frame-to-list-of-relocations-stripped.patch index df9f19a1..4a61b2e2 100644 --- a/0105-Add-.eh_frame-to-list-of-relocations-stripped.patch +++ b/0105-Add-.eh_frame-to-list-of-relocations-stripped.patch @@ -1,7 +1,7 @@ From 35cdd6b929d5f63750bb214a53e1c75b31dcae99 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Mon, 13 Jan 2014 21:50:59 -0500 -Subject: [PATCH 105/216] Add .eh_frame to list of relocations stripped +Subject: [PATCH 105/227] Add .eh_frame to list of relocations stripped --- conf/Makefile.common | 2 +- diff --git a/0106-Make-10_linux-work-with-our-changes-for-linux16-and-.patch b/0106-Make-10_linux-work-with-our-changes-for-linux16-and-.patch index ccd21868..da8f4801 100644 --- a/0106-Make-10_linux-work-with-our-changes-for-linux16-and-.patch +++ b/0106-Make-10_linux-work-with-our-changes-for-linux16-and-.patch @@ -1,7 +1,7 @@ From 3f5daaa46d0a5eb390a74da40abe54d385d308cf Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jan 2014 13:12:23 -0500 -Subject: [PATCH 106/216] Make 10_linux work with our changes for linux16 and +Subject: [PATCH 106/227] Make 10_linux work with our changes for linux16 and linuxefi on aarch64 Signed-off-by: Peter Jones diff --git a/0107-Don-t-print-during-fdt-loading-method.patch b/0107-Don-t-print-during-fdt-loading-method.patch index c85dec88..53a10427 100644 --- a/0107-Don-t-print-during-fdt-loading-method.patch +++ b/0107-Don-t-print-during-fdt-loading-method.patch @@ -1,7 +1,7 @@ From 276027c67b27f2ee557ca9e2492c779a5f76cb9b Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jan 2014 16:15:46 -0500 -Subject: [PATCH 107/216] Don't print during fdt loading method. +Subject: [PATCH 107/227] Don't print during fdt loading method. Signed-off-by: Peter Jones --- diff --git a/0108-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch b/0108-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch index 0f5e3ec8..9ef7f775 100644 --- a/0108-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch +++ b/0108-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch @@ -1,7 +1,7 @@ From 25add18bbc13249a2ce32f4e9b0de512ecc1fe4b Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Mon, 30 Jun 2014 14:16:46 -0400 -Subject: [PATCH 108/216] Don't munge raw spaces when we're doing our cmdline +Subject: [PATCH 108/227] Don't munge raw spaces when we're doing our cmdline escaping (#923374) Signed-off-by: Peter Jones diff --git a/0109-Don-t-require-a-password-to-boot-entries-generated-b.patch b/0109-Don-t-require-a-password-to-boot-entries-generated-b.patch index 03792b24..10c68289 100644 --- a/0109-Don-t-require-a-password-to-boot-entries-generated-b.patch +++ b/0109-Don-t-require-a-password-to-boot-entries-generated-b.patch @@ -1,7 +1,7 @@ From 9b109204ee0d1888d64d553849798ee57af1809f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 11 Feb 2014 11:14:50 -0500 -Subject: [PATCH 109/216] Don't require a password to boot entries generated by +Subject: [PATCH 109/227] Don't require a password to boot entries generated by grub-mkconfig. When we set a password, we just want that to mean you can't /edit/ an entry. diff --git a/0110-Don-t-emit-Booting-.-message.patch b/0110-Don-t-emit-Booting-.-message.patch index a5919596..26ac4585 100644 --- a/0110-Don-t-emit-Booting-.-message.patch +++ b/0110-Don-t-emit-Booting-.-message.patch @@ -1,7 +1,7 @@ From 68f1935b5c6f66afbf9d6990615946c44f3d54cb Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 18 Feb 2014 09:37:49 -0500 -Subject: [PATCH 110/216] Don't emit "Booting ..." message. +Subject: [PATCH 110/227] Don't emit "Booting ..." message. UI team still hates this stuff, so we're disabling it for RHEL 7. diff --git a/0111-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch b/0111-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch index 95a609c0..5d7b4713 100644 --- a/0111-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch +++ b/0111-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch @@ -1,7 +1,7 @@ From 6cdf99aa53970695fbf5c002fa288e1044571ca7 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 4 Mar 2014 11:00:23 -0500 -Subject: [PATCH 111/216] Replace a lot of man pages with slightly nicer ones. +Subject: [PATCH 111/227] Replace a lot of man pages with slightly nicer ones. Replace a bunch of machine generated ones with ones that look nicer. --- diff --git a/0112-use-fw_path-prefix-when-fallback-searching-for-grub-.patch b/0112-use-fw_path-prefix-when-fallback-searching-for-grub-.patch index 70c833b0..a8c68578 100644 --- a/0112-use-fw_path-prefix-when-fallback-searching-for-grub-.patch +++ b/0112-use-fw_path-prefix-when-fallback-searching-for-grub-.patch @@ -1,7 +1,7 @@ From f72c593c32ecba7b10ceb4c63ca8ec48f60c3ccf Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Wed, 19 Feb 2014 15:58:43 -0500 -Subject: [PATCH 112/216] use fw_path prefix when fallback searching for grub +Subject: [PATCH 112/227] use fw_path prefix when fallback searching for grub config When PXE booting via UEFI firmware, grub was searching for grub.cfg diff --git a/0113-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch b/0113-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch index 5eea04a3..6fa6582b 100644 --- a/0113-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch +++ b/0113-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch @@ -1,7 +1,7 @@ From 09265872f163e6dfe1aa319ac40e8090f31830f7 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 6 Mar 2014 11:51:33 -0500 -Subject: [PATCH 113/216] Try mac/guid/etc before grub.cfg on tftp config +Subject: [PATCH 113/227] Try mac/guid/etc before grub.cfg on tftp config files. Signed-off-by: Peter Jones diff --git a/0114-Fix-convert-function-to-support-NVMe-devices.patch b/0114-Fix-convert-function-to-support-NVMe-devices.patch index 08ecd975..d5101212 100644 --- a/0114-Fix-convert-function-to-support-NVMe-devices.patch +++ b/0114-Fix-convert-function-to-support-NVMe-devices.patch @@ -1,7 +1,7 @@ From 39976a692a9350b1293f209953426830ddde2ad6 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 18 Feb 2014 11:34:00 -0500 -Subject: [PATCH 114/216] Fix convert function to support NVMe devices +Subject: [PATCH 114/227] Fix convert function to support NVMe devices This is adapted from the patch at https://bugzilla.redhat.com/show_bug.cgi?id=1019660 , which is against diff --git a/0115-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch b/0115-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch index c88f98ba..3908a243 100644 --- a/0115-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch +++ b/0115-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch @@ -1,7 +1,7 @@ From 05d7e199d3f48cf9fd9b2af877cfe37c498f0874 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Mon, 10 Feb 2014 16:13:10 -0500 -Subject: [PATCH 115/216] Switch to use APM Mustang device tree, for hardware +Subject: [PATCH 115/227] Switch to use APM Mustang device tree, for hardware testing. Signed-off-by: David A. Marlin diff --git a/0116-Use-the-default-device-tree-from-the-grub-default-fi.patch b/0116-Use-the-default-device-tree-from-the-grub-default-fi.patch index 1aec17cf..f62dbce5 100644 --- a/0116-Use-the-default-device-tree-from-the-grub-default-fi.patch +++ b/0116-Use-the-default-device-tree-from-the-grub-default-fi.patch @@ -1,7 +1,7 @@ From b2ad2a3b4a4bc998003c1275709f0677c39503a9 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Wed, 12 Feb 2014 14:54:04 -0500 -Subject: [PATCH 116/216] Use the default device tree from the grub default +Subject: [PATCH 116/227] Use the default device tree from the grub default file instead of hardcoding a value. diff --git a/0117-reopen-SNP-protocol-for-exclusive-use-by-grub.patch b/0117-reopen-SNP-protocol-for-exclusive-use-by-grub.patch index c4dd05d7..64864dcc 100644 --- a/0117-reopen-SNP-protocol-for-exclusive-use-by-grub.patch +++ b/0117-reopen-SNP-protocol-for-exclusive-use-by-grub.patch @@ -1,7 +1,7 @@ From 5d87e5b1697c28d55348486cb3c704b467c8e798 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Sat, 15 Feb 2014 15:10:22 -0500 -Subject: [PATCH 117/216] reopen SNP protocol for exclusive use by grub +Subject: [PATCH 117/227] reopen SNP protocol for exclusive use by grub --- grub-core/net/drivers/efi/efinet.c | 16 ++++++++++++++++ diff --git a/0118-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch b/0118-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch index 3ee37438..89aa0c38 100644 --- a/0118-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch +++ b/0118-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch @@ -1,7 +1,7 @@ From f00ca4e03561840f116642c7100df6dc6395209d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 4 Mar 2016 15:13:59 -0500 -Subject: [PATCH 118/216] Revert "reopen SNP protocol for exclusive use by +Subject: [PATCH 118/227] Revert "reopen SNP protocol for exclusive use by grub" This reverts commit a3f2c756ce34c9666bddef35e3b3b85ccecdcffc , which is diff --git a/0119-Add-grub_util_readlink.patch b/0119-Add-grub_util_readlink.patch index c9b33ac5..4ba23c1a 100644 --- a/0119-Add-grub_util_readlink.patch +++ b/0119-Add-grub_util_readlink.patch @@ -1,7 +1,7 @@ From ffc123b7ab4fe37da16d4c62d87255f8c5c14b9f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 3 Sep 2014 10:01:03 -0400 -Subject: [PATCH 119/216] Add grub_util_readlink() +Subject: [PATCH 119/227] Add grub_util_readlink() Add grub_util_readlink(). This requires pulling in stat and readlink from gnulib, which pulls in stat and related headers, but after that the diff --git a/0120-Make-editenv-chase-symlinks-including-those-across-d.patch b/0120-Make-editenv-chase-symlinks-including-those-across-d.patch index 9c13d85d..5d85be87 100644 --- a/0120-Make-editenv-chase-symlinks-including-those-across-d.patch +++ b/0120-Make-editenv-chase-symlinks-including-those-across-d.patch @@ -1,7 +1,7 @@ From fb903fc1587b582e23e44811dc8c4ed359806028 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 3 Sep 2014 10:38:00 -0400 -Subject: [PATCH 120/216] Make editenv chase symlinks including those across +Subject: [PATCH 120/227] Make editenv chase symlinks including those across devices. This lets us make /boot/grub2/grubenv a symlink to diff --git a/0121-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch b/0121-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch index a3bc069a..fbaa756b 100644 --- a/0121-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch +++ b/0121-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch @@ -1,7 +1,7 @@ From 5948f763fc01d7f29923e94ef9b1ed923b11ff1a Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Sep 2014 14:23:23 -0400 -Subject: [PATCH 121/216] Generate OS and CLASS in 10_linux from +Subject: [PATCH 121/227] Generate OS and CLASS in 10_linux from /etc/os-release This makes us use pretty names in the titles we generate in diff --git a/0122-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch b/0122-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch index 7e4d2e8a..54c29650 100644 --- a/0122-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch +++ b/0122-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch @@ -1,7 +1,7 @@ From 547d0c60f28c026801af2ada3e0995d0ecc22c35 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Sep 2014 15:52:08 -0400 -Subject: [PATCH 122/216] Minimize the sort ordering for .debug and -rescue- +Subject: [PATCH 122/227] Minimize the sort ordering for .debug and -rescue- kernels. Resolves: rhbz#1065360 diff --git a/0123-Load-arm-with-SB-enabled.patch b/0123-Load-arm-with-SB-enabled.patch index 82d9c073..49c24384 100644 --- a/0123-Load-arm-with-SB-enabled.patch +++ b/0123-Load-arm-with-SB-enabled.patch @@ -1,7 +1,7 @@ From c03bf04fd9e3192bec942a7adee23b5377ea81dc Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 18 Sep 2014 11:26:14 -0400 -Subject: [PATCH 123/216] Load arm with SB enabled. +Subject: [PATCH 123/227] Load arm with SB enabled. Make sure we actually try to validate secure boot on this platform (even though we're not shipping it enabled by default.) diff --git a/0124-Try-prefix-if-fw_path-doesn-t-work.patch b/0124-Try-prefix-if-fw_path-doesn-t-work.patch index 226b8f6d..aed5d8ea 100644 --- a/0124-Try-prefix-if-fw_path-doesn-t-work.patch +++ b/0124-Try-prefix-if-fw_path-doesn-t-work.patch @@ -1,7 +1,7 @@ From 0c98cb57eb1a34ec29f719e3a798f5b20c6a4082 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 3 Oct 2014 11:08:03 -0400 -Subject: [PATCH 124/216] Try $prefix if $fw_path doesn't work. +Subject: [PATCH 124/227] Try $prefix if $fw_path doesn't work. Related: rhbz#1148652 diff --git a/0125-Update-info-with-grub.cfg-netboot-selection-order-11.patch b/0125-Update-info-with-grub.cfg-netboot-selection-order-11.patch index 131459c3..c8b76b67 100644 --- a/0125-Update-info-with-grub.cfg-netboot-selection-order-11.patch +++ b/0125-Update-info-with-grub.cfg-netboot-selection-order-11.patch @@ -1,7 +1,7 @@ From d446fed131fadd00d0daab0654c7d9e14442d451 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Mon, 16 Mar 2015 16:34:51 -0400 -Subject: [PATCH 125/216] Update info with grub.cfg netboot selection order +Subject: [PATCH 125/227] Update info with grub.cfg netboot selection order (#1148650) Added documentation to the grub info page that specifies the order diff --git a/0126-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch b/0126-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch index 97aaf4b7..8fb6f664 100644 --- a/0126-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch +++ b/0126-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch @@ -1,7 +1,7 @@ From e62ab1057d87e2a1e3c7fcf6b134f86ec24f2eac Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Mon, 16 Mar 2015 14:14:19 -0400 -Subject: [PATCH 126/216] Use Distribution Package Sort for grub2-mkconfig +Subject: [PATCH 126/227] Use Distribution Package Sort for grub2-mkconfig (#1124074) Users reported that newly installed kernels on their systems installed diff --git a/0127-Handle-rssd-storage-devices.patch b/0127-Handle-rssd-storage-devices.patch index d69ff406..186faa2a 100644 --- a/0127-Handle-rssd-storage-devices.patch +++ b/0127-Handle-rssd-storage-devices.patch @@ -1,7 +1,7 @@ From 8d3f2f0f389efbb9ed5da0c4f90fc82d104163c1 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 30 Jun 2015 15:50:41 -0400 -Subject: [PATCH 127/216] Handle rssd storage devices. +Subject: [PATCH 127/227] Handle rssd storage devices. Resolves: rhbz#1087962 diff --git a/0128-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch b/0128-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch index dbde9c26..82ec9307 100644 --- a/0128-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch +++ b/0128-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch @@ -1,7 +1,7 @@ From e5ed14fb98e18d173f9396103aca65351e4e67e2 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 27 Oct 2014 09:22:55 -0400 -Subject: [PATCH 128/216] Try to emit linux16/initrd16 and linuxefi/initrdefi +Subject: [PATCH 128/227] Try to emit linux16/initrd16 and linuxefi/initrdefi in 30-os_prober. Resolves: rhbz#1108296 diff --git a/0129-Make-grub2-mkconfig-construct-titles-that-look-like-.patch b/0129-Make-grub2-mkconfig-construct-titles-that-look-like-.patch index fcb80f28..38e20d69 100644 --- a/0129-Make-grub2-mkconfig-construct-titles-that-look-like-.patch +++ b/0129-Make-grub2-mkconfig-construct-titles-that-look-like-.patch @@ -1,7 +1,7 @@ From 75c3d5fedb92fcf107b594216655c29bb20cbebc Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 28 Apr 2015 11:15:03 -0400 -Subject: [PATCH 129/216] Make grub2-mkconfig construct titles that look like +Subject: [PATCH 129/227] Make grub2-mkconfig construct titles that look like the ones we want elsewhere. Resolves: rhbz#1215839 diff --git a/0130-Add-friendly-grub2-password-config-tool-985962.patch b/0130-Add-friendly-grub2-password-config-tool-985962.patch index f6fa3a16..5ef255d2 100644 --- a/0130-Add-friendly-grub2-password-config-tool-985962.patch +++ b/0130-Add-friendly-grub2-password-config-tool-985962.patch @@ -1,7 +1,7 @@ From d03d08a8ba14eddda515907cafc640fb1dbe0874 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Thu, 25 Jun 2015 11:13:11 -0400 -Subject: [PATCH 130/216] Add friendly grub2 password config tool (#985962) +Subject: [PATCH 130/227] Add friendly grub2 password config tool (#985962) Provided a tool for users to reset the grub2 root user password without having to alter the grub.cfg. The hashed password now diff --git a/0131-Make-grub2-mkconfig-construct-titles-that-look-like-.patch b/0131-Make-grub2-mkconfig-construct-titles-that-look-like-.patch index ec33824b..b9d9af05 100644 --- a/0131-Make-grub2-mkconfig-construct-titles-that-look-like-.patch +++ b/0131-Make-grub2-mkconfig-construct-titles-that-look-like-.patch @@ -1,7 +1,7 @@ From 7d9c29023e6c242306ae008a984245037655a23c Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 28 Apr 2015 11:15:03 -0400 -Subject: [PATCH 131/216] Make grub2-mkconfig construct titles that look like +Subject: [PATCH 131/227] Make grub2-mkconfig construct titles that look like the ones we want elsewhere. Resolves: rhbz#1215839 diff --git a/0132-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch b/0132-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch index 8dacb344..87b3ced1 100644 --- a/0132-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch +++ b/0132-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch @@ -1,7 +1,7 @@ From e97b5c4ec2f11ac544c3c1de8fa5b84ac24d9536 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 3 Aug 2015 11:46:42 -0400 -Subject: [PATCH 132/216] Try to make sure configure.ac and grub-rpm-sort play +Subject: [PATCH 132/227] Try to make sure configure.ac and grub-rpm-sort play nice. Apparently the test for whether to use grub-rpm-sort and also the diff --git a/0133-tcp-add-window-scaling-support.patch b/0133-tcp-add-window-scaling-support.patch index 3725a41e..4dd6b6ba 100644 --- a/0133-tcp-add-window-scaling-support.patch +++ b/0133-tcp-add-window-scaling-support.patch @@ -1,7 +1,7 @@ From df119e7a941f0e1329181d33d63349375b9b56d9 Mon Sep 17 00:00:00 2001 From: Josef Bacik Date: Wed, 12 Aug 2015 08:57:55 -0700 -Subject: [PATCH 133/216] tcp: add window scaling support +Subject: [PATCH 133/227] tcp: add window scaling support Sometimes we have to provision boxes across regions, such as California to Sweden. The http server has a 10 minute timeout, so if we can't get our 250mb diff --git a/0134-efinet-retransmit-if-our-device-is-busy.patch b/0134-efinet-retransmit-if-our-device-is-busy.patch index 15dcf34a..99c93123 100644 --- a/0134-efinet-retransmit-if-our-device-is-busy.patch +++ b/0134-efinet-retransmit-if-our-device-is-busy.patch @@ -1,7 +1,7 @@ From d4f94fc4cd48954f757d6efb82311eb3256389e4 Mon Sep 17 00:00:00 2001 From: Josef Bacik Date: Mon, 31 Aug 2015 13:34:35 -0400 -Subject: [PATCH 134/216] efinet: retransmit if our device is busy +Subject: [PATCH 134/227] efinet: retransmit if our device is busy When I fixed the txbuf handling I ripped out the retransmission code since it was flooding our network when we had the buggy behavior. Turns out this was too diff --git a/0135-Be-more-aggro-about-actually-using-the-configured-ne.patch b/0135-Be-more-aggro-about-actually-using-the-configured-ne.patch index 8497eed4..bbf68622 100644 --- a/0135-Be-more-aggro-about-actually-using-the-configured-ne.patch +++ b/0135-Be-more-aggro-about-actually-using-the-configured-ne.patch @@ -1,7 +1,7 @@ From d4eb7984ad8938e50764c541f0e8f4c8d6d012f8 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 11 Sep 2015 17:30:49 -0400 -Subject: [PATCH 135/216] Be more aggro about actually using the *configured* +Subject: [PATCH 135/227] Be more aggro about actually using the *configured* network device. Right now we use any SNP device with the same mac+IP block, but when diff --git a/0136-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch b/0136-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch index 4bdeda26..34b1b92e 100644 --- a/0136-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch +++ b/0136-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch @@ -1,7 +1,7 @@ From fdbc8b81c9f3bbef64298dbf1f5230eda0cda02f Mon Sep 17 00:00:00 2001 From: RHEL Ninjas Date: Fri, 25 Sep 2015 16:24:23 +0900 -Subject: [PATCH 136/216] efinet: add filter for the first exclusive reopen of +Subject: [PATCH 136/227] efinet: add filter for the first exclusive reopen of SNP --- diff --git a/0137-Fix-security-issue-when-reading-username-and-passwor.patch b/0137-Fix-security-issue-when-reading-username-and-passwor.patch index 34d01f57..416a75b7 100644 --- a/0137-Fix-security-issue-when-reading-username-and-passwor.patch +++ b/0137-Fix-security-issue-when-reading-username-and-passwor.patch @@ -1,7 +1,7 @@ From fa4b152860e04053ee1cae6b70237a1975473a81 Mon Sep 17 00:00:00 2001 From: Hector Marco-Gisbert Date: Fri, 13 Nov 2015 16:21:09 +0100 -Subject: [PATCH 137/216] Fix security issue when reading username and password +Subject: [PATCH 137/227] Fix security issue when reading username and password This patch fixes two integer underflows at: * grub-core/lib/crypto.c diff --git a/0138-Warn-if-grub-password-will-not-be-read-1290803.patch b/0138-Warn-if-grub-password-will-not-be-read-1290803.patch index 47880f5c..81970f4d 100644 --- a/0138-Warn-if-grub-password-will-not-be-read-1290803.patch +++ b/0138-Warn-if-grub-password-will-not-be-read-1290803.patch @@ -1,7 +1,7 @@ From c8ed108d2f3f9b57add84e282fef6e39634aec99 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Mon, 22 Feb 2016 15:30:05 -0500 -Subject: [PATCH 138/216] Warn if grub password will not be read (#1290803) +Subject: [PATCH 138/227] Warn if grub password will not be read (#1290803) It is possible for a system to have never run grub-mkconfig and add the section that reads the user.cfg file which contains a user set GRUB diff --git a/0139-Clean-up-grub-setpassword-documentation-1290799.patch b/0139-Clean-up-grub-setpassword-documentation-1290799.patch index 571b415e..60e445f9 100644 --- a/0139-Clean-up-grub-setpassword-documentation-1290799.patch +++ b/0139-Clean-up-grub-setpassword-documentation-1290799.patch @@ -1,7 +1,7 @@ From 884c7f7b14633fc47d5cada7f02df6fb5176b224 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Tue, 26 Jan 2016 10:28:35 -0500 -Subject: [PATCH 139/216] Clean up grub-setpassword documentation (#1290799) +Subject: [PATCH 139/227] Clean up grub-setpassword documentation (#1290799) The output for --help had some errors. Corrected those and polished the text to be a little easier to follow. Carried verbage over to man page diff --git a/0140-Fix-locale-issue-in-grub-setpassword-1294243.patch b/0140-Fix-locale-issue-in-grub-setpassword-1294243.patch index db9aa18f..ffec0374 100644 --- a/0140-Fix-locale-issue-in-grub-setpassword-1294243.patch +++ b/0140-Fix-locale-issue-in-grub-setpassword-1294243.patch @@ -1,7 +1,7 @@ From 5f3812d1820b13137b5c79b135a6b790cb78ae60 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Fri, 29 Jan 2016 16:56:11 -0500 -Subject: [PATCH 140/216] Fix locale issue in grub-setpassword (#1294243) +Subject: [PATCH 140/227] Fix locale issue in grub-setpassword (#1294243) A shell substitution was expecting non-translated output to grab the hashed password and put it in the user.cfg file. Modified code to force diff --git a/0141-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch b/0141-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch index ef599b05..00c61707 100644 --- a/0141-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch +++ b/0141-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch @@ -1,7 +1,7 @@ From a7a38221a7f4593a9abb5f422d0dd349866ed029 Mon Sep 17 00:00:00 2001 From: Robert Elliott Date: Fri, 22 Jan 2016 13:32:30 +0100 -Subject: [PATCH 141/216] efiemu: Handle persistent RAM and unknown possible +Subject: [PATCH 141/227] efiemu: Handle persistent RAM and unknown possible future additions. (cherry picked from commit ae3b83a4d4df75a01198a2fed7542391e7c449e0) diff --git a/0142-efiemu-Fix-compilation-failure.patch b/0142-efiemu-Fix-compilation-failure.patch index 81545a9f..bd6f225f 100644 --- a/0142-efiemu-Fix-compilation-failure.patch +++ b/0142-efiemu-Fix-compilation-failure.patch @@ -1,7 +1,7 @@ From 1da43f34f211772fbda36ef6fd81e1cbde37eae7 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Fri, 22 Jan 2016 14:10:30 +0100 -Subject: [PATCH 142/216] efiemu: Fix compilation failure +Subject: [PATCH 142/227] efiemu: Fix compilation failure (cherry picked from commit b6a03dfd327489d53ee07c6d7d593b99c7b7cb62) diff --git a/0143-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch b/0143-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch index 6475102c..9883f11f 100644 --- a/0143-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch +++ b/0143-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch @@ -1,7 +1,7 @@ From 9b93a986a68502c1ab2303efd7469fda0c5709cf Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 7 Apr 2016 10:58:06 -0400 -Subject: [PATCH 143/216] Revert "reopen SNP protocol for exclusive use by +Subject: [PATCH 143/227] Revert "reopen SNP protocol for exclusive use by grub" I *think* this should have been replaced by upstream's diff --git a/0144-Add-a-url-parser.patch b/0144-Add-a-url-parser.patch index 96aac6f4..bbb66afb 100644 --- a/0144-Add-a-url-parser.patch +++ b/0144-Add-a-url-parser.patch @@ -1,7 +1,7 @@ From 520e6078ff9e3fbf1edf687e51597dac98c07d56 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jun 2016 16:18:44 -0400 -Subject: [PATCH 144/216] Add a url parser. +Subject: [PATCH 144/227] Add a url parser. This patch adds a url parser that can parse http, https, tftp, and tftps urls, and is easily extensible to handle more types. diff --git a/0145-efinet-and-bootp-add-support-for-dhcpv6.patch b/0145-efinet-and-bootp-add-support-for-dhcpv6.patch index b95e2ae7..b7d3a107 100644 --- a/0145-efinet-and-bootp-add-support-for-dhcpv6.patch +++ b/0145-efinet-and-bootp-add-support-for-dhcpv6.patch @@ -1,7 +1,7 @@ From 0bdcc68529fe2f3cdf92173fadffd2f9a6476b9b Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 8 Jun 2016 21:03:37 -0400 -Subject: [PATCH 145/216] efinet and bootp: add support for dhcpv6 +Subject: [PATCH 145/227] efinet and bootp: add support for dhcpv6 Signed-off-by: Peter Jones --- diff --git a/0146-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch b/0146-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch index 6920294c..6041008a 100644 --- a/0146-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch +++ b/0146-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch @@ -1,7 +1,7 @@ From dcadcc9070f778654eb704fc0907e261996ef76e Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 23 Jun 2016 11:01:39 -0400 -Subject: [PATCH 146/216] Add grub-get-kernel-settings and use it in 10_linux +Subject: [PATCH 146/227] Add grub-get-kernel-settings and use it in 10_linux This patch adds grub-get-kernel-settings, which reads the system kernel installation configuration from /etc/sysconfig/kernel, and outputs diff --git a/0147-Normalize-slashes-in-tftp-paths.patch b/0147-Normalize-slashes-in-tftp-paths.patch index 7f288aaa..0385e899 100644 --- a/0147-Normalize-slashes-in-tftp-paths.patch +++ b/0147-Normalize-slashes-in-tftp-paths.patch @@ -1,7 +1,7 @@ From 130783c1e461b64befbf0fa8c9002ef763606105 Mon Sep 17 00:00:00 2001 From: Lenny Szubowicz Date: Mon, 29 Aug 2016 11:04:48 -0400 -Subject: [PATCH 147/216] Normalize slashes in tftp paths. +Subject: [PATCH 147/227] Normalize slashes in tftp paths. Some tftp servers do not handle multiple consecutive slashes correctly; this patch avoids sending tftp requests with non-normalized paths. diff --git a/0148-Fix-malformed-tftp-packets.patch b/0148-Fix-malformed-tftp-packets.patch index 2fe933e2..692116c4 100644 --- a/0148-Fix-malformed-tftp-packets.patch +++ b/0148-Fix-malformed-tftp-packets.patch @@ -1,7 +1,7 @@ From af0e4fc8f9cd844c44c969c0991269ec9ab01a62 Mon Sep 17 00:00:00 2001 From: Mark Salter Date: Tue, 7 Mar 2017 18:26:17 -0500 -Subject: [PATCH 148/216] Fix malformed tftp packets +Subject: [PATCH 148/227] Fix malformed tftp packets 0088-Normalize-slashes-in-tftp-paths.patch collapses multiple contiguous slashes in a filename into one slash in the tftp packet filename field. diff --git a/0149-Fix-race-in-EFI-validation.patch b/0149-Fix-race-in-EFI-validation.patch index f92c6003..22f42731 100644 --- a/0149-Fix-race-in-EFI-validation.patch +++ b/0149-Fix-race-in-EFI-validation.patch @@ -1,7 +1,7 @@ From d5339007d0ffdaf6e8a4e9702e7cec447b118804 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 14 Jul 2015 16:58:51 -0700 -Subject: [PATCH 149/216] Fix race in EFI validation +Subject: [PATCH 149/227] Fix race in EFI validation --- grub-core/loader/i386/efi/linux.c | 44 ++++++++++----------------------------- diff --git a/0150-bz1374141-fix-incorrect-mask-for-ppc64.patch b/0150-bz1374141-fix-incorrect-mask-for-ppc64.patch index 35f461a6..d7910e24 100644 --- a/0150-bz1374141-fix-incorrect-mask-for-ppc64.patch +++ b/0150-bz1374141-fix-incorrect-mask-for-ppc64.patch @@ -1,7 +1,7 @@ From eea2b6113c2f17ed5755b23242457948025bfd33 Mon Sep 17 00:00:00 2001 From: Masahiro Matsuya Date: Sat, 29 Oct 2016 08:35:26 +0900 -Subject: [PATCH 150/216] bz1374141 fix incorrect mask for ppc64 +Subject: [PATCH 150/227] bz1374141 fix incorrect mask for ppc64 The netmask configured in firmware is not respected on ppc64 (big endian). When 255.255.252.0 is set as netmask in firmware, the following is the value of bootpath string in grub_ieee1275_parse_bootpath(). diff --git a/0151-Use-device-part-of-chainloader-target-if-present.patch b/0151-Use-device-part-of-chainloader-target-if-present.patch index 2530058a..e5b7e7e1 100644 --- a/0151-Use-device-part-of-chainloader-target-if-present.patch +++ b/0151-Use-device-part-of-chainloader-target-if-present.patch @@ -1,7 +1,7 @@ From d08c1a531d80b4e14a7bfeb0d762125f4fab1317 Mon Sep 17 00:00:00 2001 From: Raymund Will Date: Fri, 10 Apr 2015 01:45:02 -0400 -Subject: [PATCH 151/216] Use device part of chainloader target, if present. +Subject: [PATCH 151/227] Use device part of chainloader target, if present. Otherwise chainloading is restricted to '$root', which might not even be readable by EFI! diff --git a/0152-Add-secureboot-support-on-efi-chainloader.patch b/0152-Add-secureboot-support-on-efi-chainloader.patch index 72e6c996..984bb24f 100644 --- a/0152-Add-secureboot-support-on-efi-chainloader.patch +++ b/0152-Add-secureboot-support-on-efi-chainloader.patch @@ -1,7 +1,7 @@ From 729766b6416f6ca13c694ce220c3b2156ced1691 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 6 Oct 2015 13:04:37 -0400 -Subject: [PATCH 152/216] Add secureboot support on efi chainloader +Subject: [PATCH 152/227] Add secureboot support on efi chainloader Expand the chainloader to be able to verify the image by means of shim lock protocol. The PE/COFF image is loaded and relocated by the diff --git a/0153-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch b/0153-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch index 6b71573c..57a2e2ca 100644 --- a/0153-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch +++ b/0153-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch @@ -1,7 +1,7 @@ From fe18b297027c4976d11b87f1b5adc07a7565cdee Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 6 Oct 2015 16:09:25 -0400 -Subject: [PATCH 153/216] Make any of the loaders that link in efi mode honor +Subject: [PATCH 153/227] Make any of the loaders that link in efi mode honor secure boot. And in this case "honor" means "even if somebody does link this in, they diff --git a/0154-Make-grub_fatal-also-backtrace.patch b/0154-Make-grub_fatal-also-backtrace.patch index 1e6869a9..9f465634 100644 --- a/0154-Make-grub_fatal-also-backtrace.patch +++ b/0154-Make-grub_fatal-also-backtrace.patch @@ -1,7 +1,7 @@ From b2fd6377486d66ced5fd82325c3ee8e11f4f1176 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 27 Jan 2016 09:22:42 -0500 -Subject: [PATCH 154/216] Make grub_fatal() also backtrace. +Subject: [PATCH 154/227] Make grub_fatal() also backtrace. --- grub-core/Makefile.core.def | 3 ++ diff --git a/0155-Rework-linux-command.patch b/0155-Rework-linux-command.patch index 5d5022ad..d22067bd 100644 --- a/0155-Rework-linux-command.patch +++ b/0155-Rework-linux-command.patch @@ -1,7 +1,7 @@ From 4fec1bb24e09f36366c62196285392a674d259d3 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 16:12:39 -0700 -Subject: [PATCH 155/216] Rework linux command +Subject: [PATCH 155/227] Rework linux command We want a single buffer that contains the entire kernel image in order to perform a TPM measurement. Allocate one and copy the entire kernel into it diff --git a/0156-Rework-linux16-command.patch b/0156-Rework-linux16-command.patch index 8a327e69..ed902d32 100644 --- a/0156-Rework-linux16-command.patch +++ b/0156-Rework-linux16-command.patch @@ -1,7 +1,7 @@ From 7d6ce3346f32a67e07fd3fda9ad65ac76f600628 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 16:20:58 -0700 -Subject: [PATCH 156/216] Rework linux16 command +Subject: [PATCH 156/227] Rework linux16 command We want a single buffer that contains the entire kernel image in order to perform a TPM measurement. Allocate one and copy the entire kernel int it diff --git a/0157-Make-grub-editenv-build-again.patch b/0157-Make-grub-editenv-build-again.patch index 1158cfca..8aa6a796 100644 --- a/0157-Make-grub-editenv-build-again.patch +++ b/0157-Make-grub-editenv-build-again.patch @@ -1,7 +1,7 @@ From 4e0105392434bac9f10ac79a820a69098abec2f5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 4 Mar 2016 16:29:13 -0500 -Subject: [PATCH 157/216] Make grub-editenv build again. +Subject: [PATCH 157/227] Make grub-editenv build again. 36212460d3565b18439a3a8130b28e6c97702c6a split how some of the mkimage utility functions are defined, and they wind up being linked into diff --git a/0158-Fix-up-some-man-pages-rpmdiff-noticed.patch b/0158-Fix-up-some-man-pages-rpmdiff-noticed.patch index 84bedbe1..26f7e6fd 100644 --- a/0158-Fix-up-some-man-pages-rpmdiff-noticed.patch +++ b/0158-Fix-up-some-man-pages-rpmdiff-noticed.patch @@ -1,7 +1,7 @@ From 7779112786e3f892e05b9d293299dd7ef151d9dd Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 23 Sep 2014 09:58:49 -0400 -Subject: [PATCH 158/216] Fix up some man pages rpmdiff noticed. +Subject: [PATCH 158/227] Fix up some man pages rpmdiff noticed. --- configure.ac | 2 ++ diff --git a/0159-Re-work-some-intricacies-of-PE-loading.patch b/0159-Re-work-some-intricacies-of-PE-loading.patch index d778f3a2..0a947949 100644 --- a/0159-Re-work-some-intricacies-of-PE-loading.patch +++ b/0159-Re-work-some-intricacies-of-PE-loading.patch @@ -1,7 +1,7 @@ From 9ca2908ab56bc32052b2f01bda6a35a190e39bae Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 9 Jun 2016 12:22:29 -0400 -Subject: [PATCH 159/216] Re-work some intricacies of PE loading. +Subject: [PATCH 159/227] Re-work some intricacies of PE loading. The PE spec is not a well written document, and awesomely every place where there's an ambiguous way to read something, Windows' bootmgfw.efi diff --git a/0160-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch b/0160-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch index 62ef4d48..daeca9ac 100644 --- a/0160-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch +++ b/0160-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch @@ -1,7 +1,7 @@ From d8441e12feab1ae94f11849d1bcc5e73abb69231 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 10 Jun 2016 14:06:15 -0400 -Subject: [PATCH 160/216] Rework even more of efi chainload so non-sb cases +Subject: [PATCH 160/227] Rework even more of efi chainload so non-sb cases work right. This ensures that if shim protocol is not loaded, or is loaded but shim diff --git a/0161-linuxefi-fix-double-free-on-verification-failure.patch b/0161-linuxefi-fix-double-free-on-verification-failure.patch index 6c14d339..9dbaab64 100644 --- a/0161-linuxefi-fix-double-free-on-verification-failure.patch +++ b/0161-linuxefi-fix-double-free-on-verification-failure.patch @@ -1,7 +1,7 @@ From e432d9b485112f0d35fd623e4b2467a3d788a38f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jun 2016 09:50:25 -0400 -Subject: [PATCH 161/216] linuxefi: fix double free on verification failure. +Subject: [PATCH 161/227] linuxefi: fix double free on verification failure. Signed-off-by: Peter Jones --- diff --git a/0162-fix-machine-type-test-in-30_os-prober.in.patch b/0162-fix-machine-type-test-in-30_os-prober.in.patch index 4e842de9..1cc7170c 100644 --- a/0162-fix-machine-type-test-in-30_os-prober.in.patch +++ b/0162-fix-machine-type-test-in-30_os-prober.in.patch @@ -1,7 +1,7 @@ From 33faccd6c6f23774bbbbc83731a712a7bed76c3f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 11 Jul 2016 13:36:45 -0400 -Subject: [PATCH 162/216] fix machine type test in 30_os-prober.in +Subject: [PATCH 162/227] fix machine type test in 30_os-prober.in Signed-off-by: Peter Jones --- diff --git a/0163-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch b/0163-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch index d1a1427b..2f41f34d 100644 --- a/0163-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch +++ b/0163-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch @@ -1,7 +1,7 @@ From ab9c2a7711858b2300abf802230c044db55c5171 Mon Sep 17 00:00:00 2001 From: Laszlo Ersek Date: Mon, 21 Nov 2016 15:34:00 +0100 -Subject: [PATCH 163/216] efi/chainloader: fix wrong sanity check in +Subject: [PATCH 163/227] efi/chainloader: fix wrong sanity check in relocate_coff() In relocate_coff(), the relocation entries are parsed from the original diff --git a/0164-efi-chainloader-truncate-overlong-relocation-section.patch b/0164-efi-chainloader-truncate-overlong-relocation-section.patch index e510762f..78eac3e8 100644 --- a/0164-efi-chainloader-truncate-overlong-relocation-section.patch +++ b/0164-efi-chainloader-truncate-overlong-relocation-section.patch @@ -1,7 +1,7 @@ From 243bfac3395d76a7fc7344c5471e49ea41689233 Mon Sep 17 00:00:00 2001 From: Laszlo Ersek Date: Wed, 23 Nov 2016 06:27:09 +0100 -Subject: [PATCH 164/216] efi/chainloader: truncate overlong relocation section +Subject: [PATCH 164/227] efi/chainloader: truncate overlong relocation section The UEFI Windows 7 boot loader ("EFI/Microsoft/Boot/bootmgfw.efi", SHA1 31b410e029bba87d2068c65a80b88882f9f8ea25) has inconsistent headers. diff --git a/0165-linuxefi-minor-cleanups.patch b/0165-linuxefi-minor-cleanups.patch index 70a1998b..6d8cfed5 100644 --- a/0165-linuxefi-minor-cleanups.patch +++ b/0165-linuxefi-minor-cleanups.patch @@ -1,7 +1,7 @@ From ea34d6d6755dcd818fe6e74526a58a4f818f711a Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Feb 2017 16:31:52 -0500 -Subject: [PATCH 165/216] linuxefi: minor cleanups +Subject: [PATCH 165/227] linuxefi: minor cleanups Signed-off-by: Peter Jones --- diff --git a/0166-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch b/0166-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch index 3efa07f3..a1aba1c8 100644 --- a/0166-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch +++ b/0166-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch @@ -1,7 +1,7 @@ From 543b4c21f3bf43b8919bd4b47195ebb542b73733 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Feb 2017 16:18:54 -0500 -Subject: [PATCH 166/216] Handle multi-arch (64-on-32) boot in linuxefi loader. +Subject: [PATCH 166/227] Handle multi-arch (64-on-32) boot in linuxefi loader. Allow booting 64-bit kernels on 32-bit EFI on x86. diff --git a/0167-Fix-up-linux-params-usage.patch b/0167-Fix-up-linux-params-usage.patch index d8f4d77a..ea529dec 100644 --- a/0167-Fix-up-linux-params-usage.patch +++ b/0167-Fix-up-linux-params-usage.patch @@ -1,7 +1,7 @@ From 02a30356c3a09ac0959abdc4a29b88a59e1f1ac1 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 30 May 2017 14:16:07 -0400 -Subject: [PATCH 167/216] Fix up linux params usage... +Subject: [PATCH 167/227] Fix up linux params usage... Signed-off-by: Peter Jones --- diff --git a/0168-Make-exit-take-a-return-code.patch b/0168-Make-exit-take-a-return-code.patch index 33595d93..a84a7242 100644 --- a/0168-Make-exit-take-a-return-code.patch +++ b/0168-Make-exit-take-a-return-code.patch @@ -1,7 +1,7 @@ From 874de3a91070b6f056434f2fce48d778ff84c665 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 26 Feb 2014 21:49:12 -0500 -Subject: [PATCH 168/216] Make "exit" take a return code. +Subject: [PATCH 168/227] Make "exit" take a return code. This adds "exit" with a return code. With this patch, any "exit" command /may/ include a return code, and on platforms that support diff --git a/0169-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch b/0169-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch index a10b5d8d..2653340c 100644 --- a/0169-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch +++ b/0169-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch @@ -1,7 +1,7 @@ From a327d2275238e8dd54ec8599d2d158e9cdd7693c Mon Sep 17 00:00:00 2001 From: Mark Salter Date: Mon, 17 Apr 2017 08:44:29 -0400 -Subject: [PATCH 169/216] arm64: make sure fdt has #address-cells and +Subject: [PATCH 169/227] arm64: make sure fdt has #address-cells and #size-cells properties Recent upstream changes to kexec-tools relies on #address-cells diff --git a/0170-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch b/0170-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch index 060a9588..1c25e9d7 100644 --- a/0170-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch +++ b/0170-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch @@ -1,7 +1,7 @@ From 848a699f96e8529a30a47670051c5cb1f1a91d66 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 9 May 2016 14:15:17 -0400 -Subject: [PATCH 170/216] Add some grub_dprintf() in the secure boot verify +Subject: [PATCH 170/227] Add some grub_dprintf() in the secure boot verify code. Signed-off-by: Peter Jones diff --git a/0171-Make-our-info-pages-say-grub2-where-appropriate.patch b/0171-Make-our-info-pages-say-grub2-where-appropriate.patch index d2ce2fea..208a20c0 100644 --- a/0171-Make-our-info-pages-say-grub2-where-appropriate.patch +++ b/0171-Make-our-info-pages-say-grub2-where-appropriate.patch @@ -1,7 +1,7 @@ From 004821d9e309f65e4ff533f66787663fe2a54eac Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 6 May 2016 18:43:08 -0400 -Subject: [PATCH 171/216] Make our info pages say "grub2" where appropriate. +Subject: [PATCH 171/227] Make our info pages say "grub2" where appropriate. This needs to be hooked up to --program-transform=, but I haven't had time. diff --git a/0172-print-more-debug-info-in-our-module-loader.patch b/0172-print-more-debug-info-in-our-module-loader.patch index 049a8e17..c4a9b742 100644 --- a/0172-print-more-debug-info-in-our-module-loader.patch +++ b/0172-print-more-debug-info-in-our-module-loader.patch @@ -1,7 +1,7 @@ From 6025b0afe64157eb922d562e85f1734b7ce800c9 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 1 May 2017 11:19:40 -0400 -Subject: [PATCH 172/216] print more debug info in our module loader. +Subject: [PATCH 172/227] print more debug info in our module loader. Signed-off-by: Peter Jones --- diff --git a/0173-macos-just-build-chainloader-entries-don-t-try-any-x.patch b/0173-macos-just-build-chainloader-entries-don-t-try-any-x.patch index 7aa12e84..4ab33403 100644 --- a/0173-macos-just-build-chainloader-entries-don-t-try-any-x.patch +++ b/0173-macos-just-build-chainloader-entries-don-t-try-any-x.patch @@ -1,7 +1,7 @@ From 21539770394174892fe90ab9ce09a4d9a7e2a676 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 24 May 2017 12:42:32 -0400 -Subject: [PATCH 173/216] macos: just build chainloader entries, don't try any +Subject: [PATCH 173/227] macos: just build chainloader entries, don't try any xnu xnu. Since our bugs tell us that the xnu boot entries really just don't work diff --git a/0174-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch b/0174-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch index 51e8b125..1d7a61bf 100644 --- a/0174-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch +++ b/0174-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch @@ -1,7 +1,7 @@ From ba06fbb797dff2261df7d211484c98905447ddb6 Mon Sep 17 00:00:00 2001 From: Jeff Mahoney Date: Wed, 18 Dec 2013 09:57:04 +0000 -Subject: [PATCH 174/216] grub2/btrfs: Add ability to boot from subvolumes +Subject: [PATCH 174/227] grub2/btrfs: Add ability to boot from subvolumes This patch adds the ability to specify a different root on a btrfs filesystem too boot from other than the default one. diff --git a/0175-export-btrfs_subvol-and-btrfs_subvolid.patch b/0175-export-btrfs_subvol-and-btrfs_subvolid.patch index a4cbf114..cd92a442 100644 --- a/0175-export-btrfs_subvol-and-btrfs_subvolid.patch +++ b/0175-export-btrfs_subvol-and-btrfs_subvolid.patch @@ -1,7 +1,7 @@ From c2d51bfc2fedf707ec4bc8cca9a10cb1100c6888 Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Wed, 18 Dec 2013 09:57:04 +0000 -Subject: [PATCH 175/216] export btrfs_subvol and btrfs_subvolid +Subject: [PATCH 175/227] export btrfs_subvol and btrfs_subvolid We should export btrfs_subvol and btrfs_subvolid to have both visible to subsidiary configuration files loaded using configfile. diff --git a/0176-grub2-btrfs-03-follow_default.patch b/0176-grub2-btrfs-03-follow_default.patch index 9057bbee..557d085a 100644 --- a/0176-grub2-btrfs-03-follow_default.patch +++ b/0176-grub2-btrfs-03-follow_default.patch @@ -1,7 +1,7 @@ From afc0024ac644e80552c808e8b8def04fd7f89918 Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 21 Aug 2014 03:39:11 +0000 -Subject: [PATCH 176/216] grub2-btrfs-03-follow_default +Subject: [PATCH 176/227] grub2-btrfs-03-follow_default --- grub-core/fs/btrfs.c | 107 ++++++++++++++++++++++++++++++++++++--------------- diff --git a/0177-grub2-btrfs-04-grub2-install.patch b/0177-grub2-btrfs-04-grub2-install.patch index 536ec534..95d71cb3 100644 --- a/0177-grub2-btrfs-04-grub2-install.patch +++ b/0177-grub2-btrfs-04-grub2-install.patch @@ -1,7 +1,7 @@ From a5cb6219b1f4abb50cbe0254ee6a2850e379854f Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 21 Aug 2014 03:39:11 +0000 -Subject: [PATCH 177/216] grub2-btrfs-04-grub2-install +Subject: [PATCH 177/227] grub2-btrfs-04-grub2-install --- grub-core/osdep/linux/getroot.c | 7 +++++++ diff --git a/0178-grub2-btrfs-05-grub2-mkconfig.patch b/0178-grub2-btrfs-05-grub2-mkconfig.patch index 8407c350..f1c5f96d 100644 --- a/0178-grub2-btrfs-05-grub2-mkconfig.patch +++ b/0178-grub2-btrfs-05-grub2-mkconfig.patch @@ -1,7 +1,7 @@ From 3312b0eab4773f09b00d294e3438d6cf881d62ef Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 21 Aug 2014 03:39:11 +0000 -Subject: [PATCH 178/216] grub2-btrfs-05-grub2-mkconfig +Subject: [PATCH 178/227] grub2-btrfs-05-grub2-mkconfig --- util/grub-mkconfig.in | 3 ++- diff --git a/0179-grub2-btrfs-06-subvol-mount.patch b/0179-grub2-btrfs-06-subvol-mount.patch index b8f2445e..356b448a 100644 --- a/0179-grub2-btrfs-06-subvol-mount.patch +++ b/0179-grub2-btrfs-06-subvol-mount.patch @@ -1,7 +1,7 @@ From 421b1facc21a25ca28a48c9dd323c48c5ce8a46b Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Fri, 22 May 2015 11:45:25 +0000 -Subject: [PATCH 179/216] grub2-btrfs-06-subvol-mount +Subject: [PATCH 179/227] grub2-btrfs-06-subvol-mount --- grub-core/fs/btrfs.c | 195 +++++++++++++++++++++++++++++++++++++++- diff --git a/0180-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch b/0180-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch index 868d9c3c..5ac77a51 100644 --- a/0180-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch +++ b/0180-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch @@ -1,7 +1,7 @@ From 1eeea190cf2e134fddb448c7b55e6c82697f3f72 Mon Sep 17 00:00:00 2001 From: Dusty Mabe Date: Sat, 18 Jul 2015 15:38:08 +0000 -Subject: [PATCH 180/216] No more "Bootable Snapshot" submenu in grub.cfg. +Subject: [PATCH 180/227] No more "Bootable Snapshot" submenu in grub.cfg. This breaks grubby (run on kernel upgrades) because grubby just does a search for "menuentry". diff --git a/0181-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch b/0181-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch index 2c934320..357d4ece 100644 --- a/0181-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch +++ b/0181-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch @@ -1,7 +1,7 @@ From 5f9e9d0d069b416175a2102edc574ffb9d523978 Mon Sep 17 00:00:00 2001 From: Andrei Borzenkov Date: Tue, 21 Jun 2016 16:44:17 +0000 -Subject: [PATCH 181/216] Fallback to old subvol name scheme to support old +Subject: [PATCH 181/227] Fallback to old subvol name scheme to support old snapshot config Ref: bsc#953538 diff --git a/0182-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch b/0182-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch index efa2eeb9..218b2817 100644 --- a/0182-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch +++ b/0182-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch @@ -1,7 +1,7 @@ From 158b6b3987ed402ddcb6d0568acbb60cc7a01aac Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 11 May 2017 08:56:57 +0000 -Subject: [PATCH 182/216] Grub not working correctly with btrfs snapshots +Subject: [PATCH 182/227] Grub not working correctly with btrfs snapshots (bsc#1026511) --- diff --git a/0183-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch b/0183-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch index 56c3b20f..ba00ca72 100644 --- a/0183-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch +++ b/0183-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch @@ -1,7 +1,7 @@ From bdc07d05d0eeb39f0c90e7f8f6850016ebc4bf6b Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 1 Jun 2017 09:59:56 -0400 -Subject: [PATCH 183/216] Add grub_efi_allocate_pool() and grub_efi_free_pool() +Subject: [PATCH 183/227] Add grub_efi_allocate_pool() and grub_efi_free_pool() wrappers. Signed-off-by: Peter Jones diff --git a/0184-Use-grub_efi_.-memory-helpers-where-reasonable.patch b/0184-Use-grub_efi_.-memory-helpers-where-reasonable.patch index 9cb87b83..ba40b504 100644 --- a/0184-Use-grub_efi_.-memory-helpers-where-reasonable.patch +++ b/0184-Use-grub_efi_.-memory-helpers-where-reasonable.patch @@ -1,7 +1,7 @@ From 0e6c1a61c5a7c38bd04a0d494dade62bc2c8cd43 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 1 Jun 2017 10:06:38 -0400 -Subject: [PATCH 184/216] Use grub_efi_...() memory helpers where reasonable. +Subject: [PATCH 184/227] Use grub_efi_...() memory helpers where reasonable. This uses grub_efi_allocate_pool(), grub_efi_free_pool(), and grub_efi_free_pages() instead of open-coded efi_call_N() calls, so we diff --git a/0185-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch b/0185-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch index 5176b35a..80e9c66b 100644 --- a/0185-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch +++ b/0185-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch @@ -1,7 +1,7 @@ From 4759e79a841a9d7eab743e67715459d3a864a29f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 1 Jun 2017 10:07:50 -0400 -Subject: [PATCH 185/216] Add PRIxGRUB_EFI_STATUS and use it. +Subject: [PATCH 185/227] Add PRIxGRUB_EFI_STATUS and use it. This avoids syntax checkers getting confused about if it's llx or lx. diff --git a/0186-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch b/0186-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch index e4bf9002..e8f59391 100644 --- a/0186-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch +++ b/0186-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch @@ -1,7 +1,7 @@ From c7bb1be13a759a55216c99662d660614a161c37f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:42:57 -0400 -Subject: [PATCH 186/216] Don't use dynamic sized arrays since we don't build +Subject: [PATCH 186/227] Don't use dynamic sized arrays since we don't build with -std=c99 --- diff --git a/0187-don-t-ignore-const.patch b/0187-don-t-ignore-const.patch index fb0f0cad..5accfc6d 100644 --- a/0187-don-t-ignore-const.patch +++ b/0187-don-t-ignore-const.patch @@ -1,7 +1,7 @@ From 3eb59abe528f660e24e004a99b86686ea2f022c5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:43:22 -0400 -Subject: [PATCH 187/216] don't ignore const +Subject: [PATCH 187/227] don't ignore const --- grub-core/net/tftp.c | 2 +- diff --git a/0188-don-t-use-int-for-efi-status.patch b/0188-don-t-use-int-for-efi-status.patch index 175d2ae8..77263767 100644 --- a/0188-don-t-use-int-for-efi-status.patch +++ b/0188-don-t-use-int-for-efi-status.patch @@ -1,7 +1,7 @@ From d4517c646fb4617a9ac162489b2fbaf9c2fcdd7b Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:44:59 -0400 -Subject: [PATCH 188/216] don't use int for efi status +Subject: [PATCH 188/227] don't use int for efi status --- grub-core/kern/efi/efi.c | 2 +- diff --git a/0189-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch b/0189-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch index ae683400..db6404e0 100644 --- a/0189-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch +++ b/0189-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch @@ -1,7 +1,7 @@ From 72eb71bcadf8f35851b15632e8ef4ad1d0a64513 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:46:23 -0400 -Subject: [PATCH 189/216] make GRUB_MOD_INIT() declare its function prototypes. +Subject: [PATCH 189/227] make GRUB_MOD_INIT() declare its function prototypes. --- include/grub/dl.h | 2 ++ diff --git a/0190-Clean-up-some-errors-in-the-linuxefi-loader.patch b/0190-Clean-up-some-errors-in-the-linuxefi-loader.patch index 1872186f..72598ad4 100644 --- a/0190-Clean-up-some-errors-in-the-linuxefi-loader.patch +++ b/0190-Clean-up-some-errors-in-the-linuxefi-loader.patch @@ -1,7 +1,7 @@ From e240faaa432ad7ba3f7ced51b983d8d663a83460 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 24 May 2017 15:58:18 -0400 -Subject: [PATCH 190/216] Clean up some errors in the linuxefi loader +Subject: [PATCH 190/227] Clean up some errors in the linuxefi loader Signed-off-by: Peter Jones --- diff --git a/0191-editenv-handle-relative-symlinks.patch b/0191-editenv-handle-relative-symlinks.patch index c1e28f9c..7b06e660 100644 --- a/0191-editenv-handle-relative-symlinks.patch +++ b/0191-editenv-handle-relative-symlinks.patch @@ -1,7 +1,7 @@ From 9778fafba22ec67f97bb35a34980230966ebe0de Mon Sep 17 00:00:00 2001 From: Jonathan Lebon Date: Mon, 14 Aug 2017 14:37:20 -0400 -Subject: [PATCH 191/216] editenv: handle relative symlinks +Subject: [PATCH 191/227] editenv: handle relative symlinks Handle symlinks with targets relative to the containing dir. This ensures that the rename operation does not depend on the cwd. diff --git a/0192-Make-libgrub.pp-depend-on-config-util.h.patch b/0192-Make-libgrub.pp-depend-on-config-util.h.patch index 45f09b8e..a488e439 100644 --- a/0192-Make-libgrub.pp-depend-on-config-util.h.patch +++ b/0192-Make-libgrub.pp-depend-on-config-util.h.patch @@ -1,7 +1,7 @@ From b8baf7070cc80fc44ee998a4748029c893f5ab13 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 23 Aug 2017 10:37:27 -0400 -Subject: [PATCH 192/216] Make libgrub.pp depend on config-util.h +Subject: [PATCH 192/227] Make libgrub.pp depend on config-util.h If you build with "make -j48" a lot, sometimes you see: diff --git a/0193-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch b/0193-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch index 44ff4630..cb783029 100644 --- a/0193-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch +++ b/0193-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch @@ -1,7 +1,7 @@ From 385f38332007339ac7dd3e3e551c54faa3c32dbc Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 20 Apr 2017 13:29:06 -0400 -Subject: [PATCH 193/216] Don't guess /boot/efi/ as HFS+ on ppc machines in +Subject: [PATCH 193/227] Don't guess /boot/efi/ as HFS+ on ppc machines in grub-install This should never be trying this, and since we've consolidated the diff --git a/0194-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch b/0194-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch index 786c7b15..4dad9f3c 100644 --- a/0194-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch +++ b/0194-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch @@ -1,7 +1,7 @@ From 733966aa9d241a0987a7097eca74b0f58b426833 Mon Sep 17 00:00:00 2001 From: Konrad Rzeszutek Wilk Date: Mon, 28 Aug 2017 13:51:14 -0400 -Subject: [PATCH 194/216] Fix util/grub.d/20_linux_xen.in: Add xen_boot command +Subject: [PATCH 194/227] Fix util/grub.d/20_linux_xen.in: Add xen_boot command support for aarch64 Commit d33045ce7ffcb7c1e4a60c14d5ca64b36e3c5abe introduced diff --git a/0195-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch b/0195-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch index 63477048..b7bcc4e3 100644 --- a/0195-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch +++ b/0195-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch @@ -1,7 +1,7 @@ From d592ef69ef92e3f7a414577af70678be706ff8c8 Mon Sep 17 00:00:00 2001 From: Konrad Rzeszutek Wilk Date: Mon, 28 Aug 2017 13:59:12 -0400 -Subject: [PATCH 195/216] Use grub-file to figure out whether multiboot2 should +Subject: [PATCH 195/227] Use grub-file to figure out whether multiboot2 should be used for Xen.gz The multiboot2 is much more preferable than multiboot. Especiall diff --git a/0196-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch b/0196-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch index 87dd3ebb..78be849c 100644 --- a/0196-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch +++ b/0196-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch @@ -1,7 +1,7 @@ From ae2759407aad1b5cfee90299ef0a6f53ca4d3d9a Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 19 Oct 2017 11:29:11 -0400 -Subject: [PATCH 196/216] 20_linux_xen: load xen or multiboot{,2} modules as +Subject: [PATCH 196/227] 20_linux_xen: load xen or multiboot{,2} modules as needed. Signed-off-by: Peter Jones diff --git a/0197-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch b/0197-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch index 063a5507..55657772 100644 --- a/0197-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch +++ b/0197-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch @@ -1,7 +1,7 @@ From d88a8ff86cb9c360bc92b75db69e5024b1e814cc Mon Sep 17 00:00:00 2001 From: "David E. Box" Date: Fri, 15 Sep 2017 15:37:05 -0700 -Subject: [PATCH 197/216] tsc: Change default tsc calibration method to pmtimer +Subject: [PATCH 197/227] tsc: Change default tsc calibration method to pmtimer on EFI systems On efi systems, make pmtimer based tsc calibration the default over the diff --git a/0198-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch b/0198-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch index c4650086..9344d76b 100644 --- a/0198-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch +++ b/0198-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch @@ -1,7 +1,7 @@ From ee10486cadcae785711ccc7c46dac24a500be8fc Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 7 Nov 2017 17:12:17 -0500 -Subject: [PATCH 198/216] Make pmtimer tsc calibration not take 51 seconds to +Subject: [PATCH 198/227] Make pmtimer tsc calibration not take 51 seconds to fail. On my laptop running at 2.4GHz, if I run a VM where tsc calibration diff --git a/0199-align-struct-efi_variable-better.patch b/0199-align-struct-efi_variable-better.patch index 9fdcca52..f689b071 100644 --- a/0199-align-struct-efi_variable-better.patch +++ b/0199-align-struct-efi_variable-better.patch @@ -1,7 +1,7 @@ From cfcacf01ed042f6354c5d4249bdc6d883d04b330 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 27 Feb 2018 13:55:35 -0500 -Subject: [PATCH 199/216] align struct efi_variable better... +Subject: [PATCH 199/227] align struct efi_variable better... --- include/grub/efiemu/runtime.h | 2 +- diff --git a/0200-Add-quicksort-implementation.patch b/0200-Add-quicksort-implementation.patch index e7fa6a62..bfc6f9db 100644 --- a/0200-Add-quicksort-implementation.patch +++ b/0200-Add-quicksort-implementation.patch @@ -1,7 +1,7 @@ From f46dc44957a3a31a86a215d43f3971fa4ca97318 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 9 Dec 2016 15:39:47 -0500 -Subject: [PATCH 200/216] Add quicksort implementation +Subject: [PATCH 200/227] Add quicksort implementation This will be used to sort the boot menu entries that are read from the BootLoaderSpec config files. diff --git a/0201-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch b/0201-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch index 19527bff..0e304601 100644 --- a/0201-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch +++ b/0201-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch @@ -1,7 +1,7 @@ From de3430a0a616a9600ccac0f0a9df661446661999 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 9 Dec 2016 15:40:58 -0500 -Subject: [PATCH 201/216] Add blscfg command support to parse BootLoaderSpec +Subject: [PATCH 201/227] Add blscfg command support to parse BootLoaderSpec config fragments The BootLoaderSpec (BLS) defines a scheme where different bootloaders can diff --git a/0202-Add-BLS-support-to-grub-mkconfig.patch b/0202-Add-BLS-support-to-grub-mkconfig.patch index bc9ddfb5..831b04b5 100644 --- a/0202-Add-BLS-support-to-grub-mkconfig.patch +++ b/0202-Add-BLS-support-to-grub-mkconfig.patch @@ -1,7 +1,7 @@ From 9baa7c16e5138497862eba684d2c41e5ed16e787 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 9 Dec 2016 15:40:29 -0500 -Subject: [PATCH 202/216] Add BLS support to grub-mkconfig +Subject: [PATCH 202/227] Add BLS support to grub-mkconfig GRUB now has BootLoaderSpec support, the user can choose to use this by setting GRUB_ENABLE_BLSCFG to true in /etc/default/grub. On this setup, diff --git a/0203-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch b/0203-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch index 8af72978..88a8d07d 100644 --- a/0203-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch +++ b/0203-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch @@ -1,7 +1,7 @@ From 206697fab4e803807a83f1f7f330d3d009aba2fd Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 6 Feb 2018 11:02:09 +0100 -Subject: [PATCH 203/216] Remove duplicated grub_exit() definition for grub-emu +Subject: [PATCH 203/227] Remove duplicated grub_exit() definition for grub-emu platform The grub_exit() function signature was changed on all platforms to take a diff --git a/0204-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch b/0204-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch index d239fbe1..18a74272 100644 --- a/0204-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch +++ b/0204-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch @@ -1,7 +1,7 @@ From 37844213b374844bc1a4056712241cf6d9421880 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 6 Feb 2018 11:16:28 +0100 -Subject: [PATCH 204/216] Don't attempt to backtrace on grub_abort() for +Subject: [PATCH 204/227] Don't attempt to backtrace on grub_abort() for grub-emu The emu platform doesn't have a grub_backtrace() implementation, so this diff --git a/0205-Enable-blscfg-command-for-the-emu-platform.patch b/0205-Enable-blscfg-command-for-the-emu-platform.patch index 9406ff02..1bb7821b 100644 --- a/0205-Enable-blscfg-command-for-the-emu-platform.patch +++ b/0205-Enable-blscfg-command-for-the-emu-platform.patch @@ -1,7 +1,7 @@ From 01839f5d2491ba1b5694d1c4b2f3c2818a2408ae Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Fri, 2 Feb 2018 11:36:29 +0100 -Subject: [PATCH 205/216] Enable blscfg command for the emu platform +Subject: [PATCH 205/227] Enable blscfg command for the emu platform Allow grub-emu to call a blscfg command. This may be useful for platforms that don't support GRUB, so grub-emu can be used to parse the BLS configs diff --git a/0206-Add-linux-and-initrd-commands-for-grub-emu.patch b/0206-Add-linux-and-initrd-commands-for-grub-emu.patch index fc21f699..3b08b260 100644 --- a/0206-Add-linux-and-initrd-commands-for-grub-emu.patch +++ b/0206-Add-linux-and-initrd-commands-for-grub-emu.patch @@ -1,7 +1,7 @@ From f1a8f489ec2cafdcfbdd3b60ffc7752bed8c8528 Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Tue, 6 Feb 2018 09:09:00 +0100 -Subject: [PATCH 206/216] Add linux and initrd commands for grub-emu +Subject: [PATCH 206/227] Add linux and initrd commands for grub-emu When using grub-emu, the linux and initrd commands are used as arguments to the kexec command line tool, to allow booting the selected menu entry. diff --git a/0207-Fix-the-efidir-in-grub-setpassword.patch b/0207-Fix-the-efidir-in-grub-setpassword.patch index fadd832a..98accaa3 100644 --- a/0207-Fix-the-efidir-in-grub-setpassword.patch +++ b/0207-Fix-the-efidir-in-grub-setpassword.patch @@ -1,7 +1,7 @@ From 3682958910d45a129f38cb1f28bc61288f92a698 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 15 Mar 2018 14:12:54 -0400 -Subject: [PATCH 207/216] Fix the efidir in grub-setpassword +Subject: [PATCH 207/227] Fix the efidir in grub-setpassword Signed-off-by: Peter Jones --- diff --git a/0208-Add-grub2-switch-to-blscfg.patch b/0208-Add-grub2-switch-to-blscfg.patch index 02ca4d74..3e4c835f 100644 --- a/0208-Add-grub2-switch-to-blscfg.patch +++ b/0208-Add-grub2-switch-to-blscfg.patch @@ -1,7 +1,7 @@ From 95d9f5c317fb59dbb47c1df531fe5ab6f61e55af Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 15 Mar 2018 14:12:40 -0400 -Subject: [PATCH 208/216] Add grub2-switch-to-blscfg +Subject: [PATCH 208/227] Add grub2-switch-to-blscfg Signed-off-by: Peter Jones --- diff --git a/0209-Add-grub_debug_enabled.patch b/0209-Add-grub_debug_enabled.patch index 23136458..df29fc1f 100644 --- a/0209-Add-grub_debug_enabled.patch +++ b/0209-Add-grub_debug_enabled.patch @@ -1,7 +1,7 @@ From 73a860b83bc81959baabceeec6e9a32102884a57 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 30 Nov 2017 15:11:39 -0500 -Subject: [PATCH 209/216] Add grub_debug_enabled() +Subject: [PATCH 209/227] Add grub_debug_enabled() --- grub-core/kern/misc.c | 21 ++++++++++++++++----- diff --git a/0210-make-better-backtraces.patch b/0210-make-better-backtraces.patch index e71be4c8..eaed62ce 100644 --- a/0210-make-better-backtraces.patch +++ b/0210-make-better-backtraces.patch @@ -1,7 +1,7 @@ From 775dacceb8acc4036737080040f592f48daeb6e8 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 6 Nov 2017 18:31:56 -0500 -Subject: [PATCH 210/216] make better backtraces +Subject: [PATCH 210/227] make better backtraces Signed-off-by: Peter Jones --- diff --git a/0211-normal-don-t-draw-our-startup-message-if-debug-is-se.patch b/0211-normal-don-t-draw-our-startup-message-if-debug-is-se.patch index eea8d96a..bf6201c7 100644 --- a/0211-normal-don-t-draw-our-startup-message-if-debug-is-se.patch +++ b/0211-normal-don-t-draw-our-startup-message-if-debug-is-se.patch @@ -1,7 +1,7 @@ From cc1566933cbc2d8d56aa77ab1ca8a15392ee0d42 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 9 Nov 2017 15:58:52 -0500 -Subject: [PATCH 211/216] normal: don't draw our startup message if debug is +Subject: [PATCH 211/227] normal: don't draw our startup message if debug is set --- diff --git a/0212-Work-around-some-minor-include-path-weirdnesses.patch b/0212-Work-around-some-minor-include-path-weirdnesses.patch index 749ad6b0..2f96dc74 100644 --- a/0212-Work-around-some-minor-include-path-weirdnesses.patch +++ b/0212-Work-around-some-minor-include-path-weirdnesses.patch @@ -1,7 +1,7 @@ From 1829abfbbb0544a06973eaa76659a282aae8b32d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 16 Mar 2018 13:28:57 -0400 -Subject: [PATCH 212/216] Work around some minor include path weirdnesses +Subject: [PATCH 212/227] Work around some minor include path weirdnesses Signed-off-by: Peter Jones --- diff --git a/0213-Make-it-possible-to-enabled-build-id-sha1.patch b/0213-Make-it-possible-to-enabled-build-id-sha1.patch index d3d2db48..8d2f1d03 100644 --- a/0213-Make-it-possible-to-enabled-build-id-sha1.patch +++ b/0213-Make-it-possible-to-enabled-build-id-sha1.patch @@ -1,7 +1,7 @@ From 8e15f2dce2f8b2bdcad2d35da4d068e8af44eb1d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 25 Jun 2015 15:41:06 -0400 -Subject: [PATCH 213/216] Make it possible to enabled --build-id=sha1 +Subject: [PATCH 213/227] Make it possible to enabled --build-id=sha1 Signed-off-by: Peter Jones --- diff --git a/0214-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch b/0214-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch index fe608879..ce36533b 100644 --- a/0214-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch +++ b/0214-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch @@ -1,7 +1,7 @@ From 29216d4ad0f75587c42274ebd63b8526fa9e815c Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Sun, 28 Jun 2015 13:09:58 -0400 -Subject: [PATCH 214/216] Add grub_qdprintf() - grub_dprintf() without the +Subject: [PATCH 214/227] Add grub_qdprintf() - grub_dprintf() without the file+line number. This just makes copy+paste of our debug loading info easier. diff --git a/0215-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch b/0215-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch index c219c0d3..67802d06 100644 --- a/0215-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch +++ b/0215-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch @@ -1,7 +1,7 @@ From bc8e33848ee9888fd8b3aa61b4d3ecf9094356aa Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 25 Jun 2015 15:11:36 -0400 -Subject: [PATCH 215/216] Make a "gdb" dprintf that tells us load addresses. +Subject: [PATCH 215/227] Make a "gdb" dprintf that tells us load addresses. This makes a grub_dprintf() call during platform init and during module loading that tells us the virtual addresses of the .text and .data diff --git a/0216-Only-attempt-to-scan-different-BLS-directories-on-EF.patch b/0216-Only-attempt-to-scan-different-BLS-directories-on-EF.patch index 329df51a..db9bb313 100644 --- a/0216-Only-attempt-to-scan-different-BLS-directories-on-EF.patch +++ b/0216-Only-attempt-to-scan-different-BLS-directories-on-EF.patch @@ -1,7 +1,7 @@ From 62b3c9bf77feda2ae595c5e811b3918d3bf990a4 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 3 Apr 2018 15:42:47 +0200 -Subject: [PATCH 216/216] Only attempt to scan different BLS directories on EFI +Subject: [PATCH 216/227] Only attempt to scan different BLS directories on EFI machines Current BLS support attempted to scan for BLS directories, but this only diff --git a/0217-Core-TPM-support.patch b/0217-Core-TPM-support.patch new file mode 100644 index 00000000..e63a607c --- /dev/null +++ b/0217-Core-TPM-support.patch @@ -0,0 +1,789 @@ +From 7f4bde559545d19352072829fb9267b916c60fa3 Mon Sep 17 00:00:00 2001 +From: Matthew Garrett +Date: Tue, 14 Jul 2015 17:06:35 -0700 +Subject: [PATCH 217/227] Core TPM support + +Add support for performing basic TPM measurements. Right now this only +supports extending PCRs statically and only on UEFI and BIOS systems, but +will measure all modules as they're loaded. +--- + grub-core/Makefile.core.def | 3 + + grub-core/kern/dl.c | 3 + + grub-core/kern/efi/tpm.c | 282 +++++++++++++++++++++++++++++++++++++++++++ + grub-core/kern/i386/pc/tpm.c | 132 ++++++++++++++++++++ + grub-core/kern/tpm.c | 13 ++ + include/grub/efi/tpm.h | 153 +++++++++++++++++++++++ + include/grub/tpm.h | 91 ++++++++++++++ + grub-core/Makefile.am | 1 + + 8 files changed, 678 insertions(+) + create mode 100644 grub-core/kern/efi/tpm.c + create mode 100644 grub-core/kern/i386/pc/tpm.c + create mode 100644 grub-core/kern/tpm.c + create mode 100644 include/grub/efi/tpm.h + create mode 100644 include/grub/tpm.h + +diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def +index 77f0f3d8f46..51f07279d83 100644 +--- a/grub-core/Makefile.core.def ++++ b/grub-core/Makefile.core.def +@@ -131,6 +131,7 @@ kernel = { + common = kern/term.c; + common = kern/qsort.c; + common = kern/backtrace.c; ++ common = kern/tpm.c; + + x86 = kern/i386/backtrace.c; + i386_xen = kern/i386/backtrace.c; +@@ -199,6 +200,7 @@ kernel = { + efi = kern/acpi.c; + efi = kern/efi/acpi.c; + efi = lib/envblk.c; ++ efi = kern/efi/tpm.c; + i386_coreboot = kern/i386/pc/acpi.c; + i386_multiboot = kern/i386/pc/acpi.c; + i386_coreboot = kern/acpi.c; +@@ -246,6 +248,7 @@ kernel = { + + i386_pc = kern/i386/pc/init.c; + i386_pc = kern/i386/pc/mmap.c; ++ i386_pc = kern/i386/pc/tpm.c; + i386_pc = term/i386/pc/console.c; + + i386_qemu = bus/pci.c; +diff --git a/grub-core/kern/dl.c b/grub-core/kern/dl.c +index eb8b969cded..387d1e6446d 100644 +--- a/grub-core/kern/dl.c ++++ b/grub-core/kern/dl.c +@@ -33,6 +33,7 @@ + #include + #include + #include ++#include + + /* Platforms where modules are in a readonly area of memory. */ + #if defined(GRUB_MACHINE_QEMU) +@@ -829,6 +830,8 @@ grub_dl_load_file (const char *filename) + opens of the same device. */ + grub_file_close (file); + ++ grub_tpm_measure(core, size, GRUB_TPM_PCR, filename); ++ + mod = grub_dl_load_core (core, size); + grub_free (core); + if (! mod) +diff --git a/grub-core/kern/efi/tpm.c b/grub-core/kern/efi/tpm.c +new file mode 100644 +index 00000000000..c9fb3c133f3 +--- /dev/null ++++ b/grub-core/kern/efi/tpm.c +@@ -0,0 +1,282 @@ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static grub_efi_guid_t tpm_guid = EFI_TPM_GUID; ++static grub_efi_guid_t tpm2_guid = EFI_TPM2_GUID; ++ ++static grub_efi_boolean_t grub_tpm_present(grub_efi_tpm_protocol_t *tpm) ++{ ++ grub_efi_status_t status; ++ TCG_EFI_BOOT_SERVICE_CAPABILITY caps; ++ grub_uint32_t flags; ++ grub_efi_physical_address_t eventlog, lastevent; ++ ++ caps.Size = (grub_uint8_t)sizeof(caps); ++ ++ status = efi_call_5(tpm->status_check, tpm, &caps, &flags, &eventlog, ++ &lastevent); ++ ++ if (status != GRUB_EFI_SUCCESS || caps.TPMDeactivatedFlag ++ || !caps.TPMPresentFlag) ++ return 0; ++ ++ return 1; ++} ++ ++static grub_efi_boolean_t grub_tpm2_present(grub_efi_tpm2_protocol_t *tpm) ++{ ++ grub_efi_status_t status; ++ EFI_TCG2_BOOT_SERVICE_CAPABILITY caps; ++ ++ caps.Size = (grub_uint8_t)sizeof(caps); ++ ++ status = efi_call_2(tpm->get_capability, tpm, &caps); ++ ++ if (status != GRUB_EFI_SUCCESS || !caps.TPMPresentFlag) ++ return 0; ++ ++ return 1; ++} ++ ++static grub_efi_boolean_t grub_tpm_handle_find(grub_efi_handle_t *tpm_handle, ++ grub_efi_uint8_t *protocol_version) ++{ ++ grub_efi_handle_t *handles; ++ grub_efi_uintn_t num_handles; ++ ++ handles = grub_efi_locate_handle (GRUB_EFI_BY_PROTOCOL, &tpm_guid, NULL, ++ &num_handles); ++ if (handles && num_handles > 0) { ++ *tpm_handle = handles[0]; ++ *protocol_version = 1; ++ return 1; ++ } ++ ++ handles = grub_efi_locate_handle (GRUB_EFI_BY_PROTOCOL, &tpm2_guid, NULL, ++ &num_handles); ++ if (handles && num_handles > 0) { ++ *tpm_handle = handles[0]; ++ *protocol_version = 2; ++ return 1; ++ } ++ ++ return 0; ++} ++ ++static grub_err_t ++grub_tpm1_execute(grub_efi_handle_t tpm_handle, ++ PassThroughToTPM_InputParamBlock *inbuf, ++ PassThroughToTPM_OutputParamBlock *outbuf) ++{ ++ grub_efi_status_t status; ++ grub_efi_tpm_protocol_t *tpm; ++ grub_uint32_t inhdrsize = sizeof(*inbuf) - sizeof(inbuf->TPMOperandIn); ++ grub_uint32_t outhdrsize = sizeof(*outbuf) - sizeof(outbuf->TPMOperandOut); ++ ++ tpm = grub_efi_open_protocol (tpm_handle, &tpm_guid, ++ GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL); ++ ++ if (!grub_tpm_present(tpm)) ++ return 0; ++ ++ /* UEFI TPM protocol takes the raw operand block, no param block header */ ++ status = efi_call_5 (tpm->pass_through_to_tpm, tpm, ++ inbuf->IPBLength - inhdrsize, inbuf->TPMOperandIn, ++ outbuf->OPBLength - outhdrsize, outbuf->TPMOperandOut); ++ ++ switch (status) { ++ case GRUB_EFI_SUCCESS: ++ return 0; ++ case GRUB_EFI_DEVICE_ERROR: ++ return grub_error (GRUB_ERR_IO, N_("Command failed")); ++ case GRUB_EFI_INVALID_PARAMETER: ++ return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("Invalid parameter")); ++ case GRUB_EFI_BUFFER_TOO_SMALL: ++ return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("Output buffer too small")); ++ case GRUB_EFI_NOT_FOUND: ++ return grub_error (GRUB_ERR_UNKNOWN_DEVICE, N_("TPM unavailable")); ++ default: ++ return grub_error (GRUB_ERR_UNKNOWN_DEVICE, N_("Unknown TPM error")); ++ } ++} ++ ++static grub_err_t ++grub_tpm2_execute(grub_efi_handle_t tpm_handle, ++ PassThroughToTPM_InputParamBlock *inbuf, ++ PassThroughToTPM_OutputParamBlock *outbuf) ++{ ++ grub_efi_status_t status; ++ grub_efi_tpm2_protocol_t *tpm; ++ grub_uint32_t inhdrsize = sizeof(*inbuf) - sizeof(inbuf->TPMOperandIn); ++ grub_uint32_t outhdrsize = sizeof(*outbuf) - sizeof(outbuf->TPMOperandOut); ++ ++ tpm = grub_efi_open_protocol (tpm_handle, &tpm2_guid, ++ GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL); ++ ++ if (!grub_tpm2_present(tpm)) ++ return 0; ++ ++ /* UEFI TPM protocol takes the raw operand block, no param block header */ ++ status = efi_call_5 (tpm->submit_command, tpm, ++ inbuf->IPBLength - inhdrsize, inbuf->TPMOperandIn, ++ outbuf->OPBLength - outhdrsize, outbuf->TPMOperandOut); ++ ++ switch (status) { ++ case GRUB_EFI_SUCCESS: ++ return 0; ++ case GRUB_EFI_DEVICE_ERROR: ++ return grub_error (GRUB_ERR_IO, N_("Command failed")); ++ case GRUB_EFI_INVALID_PARAMETER: ++ return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("Invalid parameter")); ++ case GRUB_EFI_BUFFER_TOO_SMALL: ++ return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("Output buffer too small")); ++ case GRUB_EFI_NOT_FOUND: ++ return grub_error (GRUB_ERR_UNKNOWN_DEVICE, N_("TPM unavailable")); ++ default: ++ return grub_error (GRUB_ERR_UNKNOWN_DEVICE, N_("Unknown TPM error")); ++ } ++} ++ ++grub_err_t ++grub_tpm_execute(PassThroughToTPM_InputParamBlock *inbuf, ++ PassThroughToTPM_OutputParamBlock *outbuf) ++{ ++ grub_efi_handle_t tpm_handle; ++ grub_uint8_t protocol_version; ++ ++ /* It's not a hard failure for there to be no TPM */ ++ if (!grub_tpm_handle_find(&tpm_handle, &protocol_version)) ++ return 0; ++ ++ if (protocol_version == 1) { ++ return grub_tpm1_execute(tpm_handle, inbuf, outbuf); ++ } else { ++ return grub_tpm2_execute(tpm_handle, inbuf, outbuf); ++ } ++} ++ ++typedef struct { ++ grub_uint32_t pcrindex; ++ grub_uint32_t eventtype; ++ grub_uint8_t digest[20]; ++ grub_uint32_t eventsize; ++ grub_uint8_t event[1]; ++} Event; ++ ++ ++static grub_err_t ++grub_tpm1_log_event(grub_efi_handle_t tpm_handle, unsigned char *buf, ++ grub_size_t size, grub_uint8_t pcr, ++ const char *description) ++{ ++ Event *event; ++ grub_efi_status_t status; ++ grub_efi_tpm_protocol_t *tpm; ++ grub_efi_physical_address_t lastevent; ++ grub_uint32_t algorithm; ++ grub_uint32_t eventnum = 0; ++ ++ tpm = grub_efi_open_protocol (tpm_handle, &tpm_guid, ++ GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL); ++ ++ if (!grub_tpm_present(tpm)) ++ return 0; ++ ++ event = grub_zalloc(sizeof (Event) + grub_strlen(description) + 1); ++ if (!event) ++ return grub_error (GRUB_ERR_OUT_OF_MEMORY, ++ N_("cannot allocate TPM event buffer")); ++ ++ event->pcrindex = pcr; ++ event->eventtype = EV_IPL; ++ event->eventsize = grub_strlen(description) + 1; ++ grub_memcpy(event->event, description, event->eventsize); ++ ++ algorithm = TCG_ALG_SHA; ++ status = efi_call_7 (tpm->log_extend_event, tpm, buf, (grub_uint64_t) size, ++ algorithm, event, &eventnum, &lastevent); ++ ++ switch (status) { ++ case GRUB_EFI_SUCCESS: ++ return 0; ++ case GRUB_EFI_DEVICE_ERROR: ++ return grub_error (GRUB_ERR_IO, N_("Command failed")); ++ case GRUB_EFI_INVALID_PARAMETER: ++ return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("Invalid parameter")); ++ case GRUB_EFI_BUFFER_TOO_SMALL: ++ return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("Output buffer too small")); ++ case GRUB_EFI_NOT_FOUND: ++ return grub_error (GRUB_ERR_UNKNOWN_DEVICE, N_("TPM unavailable")); ++ default: ++ return grub_error (GRUB_ERR_UNKNOWN_DEVICE, N_("Unknown TPM error")); ++ } ++} ++ ++static grub_err_t ++grub_tpm2_log_event(grub_efi_handle_t tpm_handle, unsigned char *buf, ++ grub_size_t size, grub_uint8_t pcr, ++ const char *description) ++{ ++ EFI_TCG2_EVENT *event; ++ grub_efi_status_t status; ++ grub_efi_tpm2_protocol_t *tpm; ++ ++ tpm = grub_efi_open_protocol (tpm_handle, &tpm2_guid, ++ GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL); ++ ++ if (!grub_tpm2_present(tpm)) ++ return 0; ++ ++ event = grub_zalloc(sizeof (EFI_TCG2_EVENT) + grub_strlen(description) + 1); ++ if (!event) ++ return grub_error (GRUB_ERR_OUT_OF_MEMORY, ++ N_("cannot allocate TPM event buffer")); ++ ++ event->Header.HeaderSize = sizeof(EFI_TCG2_EVENT_HEADER); ++ event->Header.HeaderVersion = 1; ++ event->Header.PCRIndex = pcr; ++ event->Header.EventType = EV_IPL; ++ event->Size = sizeof(*event) - sizeof(event->Event) + grub_strlen(description) + 1; ++ grub_memcpy(event->Event, description, grub_strlen(description) + 1); ++ ++ status = efi_call_5 (tpm->hash_log_extend_event, tpm, 0, buf, ++ (grub_uint64_t) size, event); ++ ++ switch (status) { ++ case GRUB_EFI_SUCCESS: ++ return 0; ++ case GRUB_EFI_DEVICE_ERROR: ++ return grub_error (GRUB_ERR_IO, N_("Command failed")); ++ case GRUB_EFI_INVALID_PARAMETER: ++ return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("Invalid parameter")); ++ case GRUB_EFI_BUFFER_TOO_SMALL: ++ return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("Output buffer too small")); ++ case GRUB_EFI_NOT_FOUND: ++ return grub_error (GRUB_ERR_UNKNOWN_DEVICE, N_("TPM unavailable")); ++ default: ++ return grub_error (GRUB_ERR_UNKNOWN_DEVICE, N_("Unknown TPM error")); ++ } ++} ++ ++grub_err_t ++grub_tpm_log_event(unsigned char *buf, grub_size_t size, grub_uint8_t pcr, ++ const char *description) ++{ ++ grub_efi_handle_t tpm_handle; ++ grub_efi_uint8_t protocol_version; ++ ++ if (!grub_tpm_handle_find(&tpm_handle, &protocol_version)) ++ return 0; ++ ++ if (protocol_version == 1) { ++ return grub_tpm1_log_event(tpm_handle, buf, size, pcr, description); ++ } else { ++ return grub_tpm2_log_event(tpm_handle, buf, size, pcr, description); ++ } ++} +diff --git a/grub-core/kern/i386/pc/tpm.c b/grub-core/kern/i386/pc/tpm.c +new file mode 100644 +index 00000000000..8c6c1e6ece2 +--- /dev/null ++++ b/grub-core/kern/i386/pc/tpm.c +@@ -0,0 +1,132 @@ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#define TCPA_MAGIC 0x41504354 ++ ++int tpm_present(void); ++ ++int tpm_present(void) ++{ ++ struct grub_bios_int_registers regs; ++ ++ regs.flags = GRUB_CPU_INT_FLAGS_DEFAULT; ++ regs.eax = 0xbb00; ++ regs.ebx = TCPA_MAGIC; ++ grub_bios_interrupt (0x1a, ®s); ++ ++ if (regs.eax == 0) ++ return 1; ++ ++ return 0; ++} ++ ++grub_err_t ++grub_tpm_execute(PassThroughToTPM_InputParamBlock *inbuf, ++ PassThroughToTPM_OutputParamBlock *outbuf) ++{ ++ struct grub_bios_int_registers regs; ++ grub_addr_t inaddr, outaddr; ++ ++ if (!tpm_present()) ++ return 0; ++ ++ inaddr = (grub_addr_t) inbuf; ++ outaddr = (grub_addr_t) outbuf; ++ regs.flags = GRUB_CPU_INT_FLAGS_DEFAULT; ++ regs.eax = 0xbb02; ++ regs.ebx = TCPA_MAGIC; ++ regs.ecx = 0; ++ regs.edx = 0; ++ regs.es = (inaddr & 0xffff0000) >> 4; ++ regs.edi = inaddr & 0xffff; ++ regs.ds = outaddr >> 4; ++ regs.esi = outaddr & 0xf; ++ ++ grub_bios_interrupt (0x1a, ®s); ++ ++ if (regs.eax) ++ return grub_error (GRUB_ERR_IO, N_("TPM error %x\n"), regs.eax); ++ ++ return 0; ++} ++ ++typedef struct { ++ grub_uint32_t pcrindex; ++ grub_uint32_t eventtype; ++ grub_uint8_t digest[20]; ++ grub_uint32_t eventdatasize; ++ grub_uint8_t event[0]; ++} GRUB_PACKED Event; ++ ++typedef struct { ++ grub_uint16_t ipblength; ++ grub_uint16_t reserved; ++ grub_uint32_t hashdataptr; ++ grub_uint32_t hashdatalen; ++ grub_uint32_t pcr; ++ grub_uint32_t reserved2; ++ grub_uint32_t logdataptr; ++ grub_uint32_t logdatalen; ++} GRUB_PACKED EventIncoming; ++ ++typedef struct { ++ grub_uint16_t opblength; ++ grub_uint16_t reserved; ++ grub_uint32_t eventnum; ++ grub_uint8_t hashvalue[20]; ++} GRUB_PACKED EventOutgoing; ++ ++grub_err_t ++grub_tpm_log_event(unsigned char *buf, grub_size_t size, grub_uint8_t pcr, ++ const char *description) ++{ ++ struct grub_bios_int_registers regs; ++ EventIncoming incoming; ++ EventOutgoing outgoing; ++ Event *event; ++ grub_uint32_t datalength; ++ ++ if (!tpm_present()) ++ return 0; ++ ++ datalength = grub_strlen(description); ++ event = grub_zalloc(datalength + sizeof(Event)); ++ if (!event) ++ return grub_error (GRUB_ERR_OUT_OF_MEMORY, ++ N_("cannot allocate TPM event buffer")); ++ ++ event->pcrindex = pcr; ++ event->eventtype = 0x0d; ++ event->eventdatasize = grub_strlen(description); ++ grub_memcpy(event->event, description, datalength); ++ ++ incoming.ipblength = sizeof(incoming); ++ incoming.hashdataptr = (grub_uint32_t)buf; ++ incoming.hashdatalen = size; ++ incoming.pcr = pcr; ++ incoming.logdataptr = (grub_uint32_t)event; ++ incoming.logdatalen = datalength + sizeof(Event); ++ ++ regs.flags = GRUB_CPU_INT_FLAGS_DEFAULT; ++ regs.eax = 0xbb01; ++ regs.ebx = TCPA_MAGIC; ++ regs.ecx = 0; ++ regs.edx = 0; ++ regs.es = (((grub_addr_t) &incoming) & 0xffff0000) >> 4; ++ regs.edi = ((grub_addr_t) &incoming) & 0xffff; ++ regs.ds = (((grub_addr_t) &outgoing) & 0xffff0000) >> 4; ++ regs.esi = ((grub_addr_t) &outgoing) & 0xffff; ++ ++ grub_bios_interrupt (0x1a, ®s); ++ ++ grub_free(event); ++ ++ if (regs.eax) ++ return grub_error (GRUB_ERR_IO, N_("TPM error %x\n"), regs.eax); ++ ++ return 0; ++} +diff --git a/grub-core/kern/tpm.c b/grub-core/kern/tpm.c +new file mode 100644 +index 00000000000..1a991876c83 +--- /dev/null ++++ b/grub-core/kern/tpm.c +@@ -0,0 +1,13 @@ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++grub_err_t ++grub_tpm_measure (unsigned char *buf, grub_size_t size, grub_uint8_t pcr, ++ const char *description) ++{ ++ return grub_tpm_log_event(buf, size, pcr, description); ++} +diff --git a/include/grub/efi/tpm.h b/include/grub/efi/tpm.h +new file mode 100644 +index 00000000000..e2aff4a3c22 +--- /dev/null ++++ b/include/grub/efi/tpm.h +@@ -0,0 +1,153 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2015 Free Software Foundation, Inc. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++#ifndef GRUB_EFI_TPM_HEADER ++#define GRUB_EFI_TPM_HEADER 1 ++ ++#define EFI_TPM_GUID {0xf541796d, 0xa62e, 0x4954, {0xa7, 0x75, 0x95, 0x84, 0xf6, 0x1b, 0x9c, 0xdd }}; ++#define EFI_TPM2_GUID {0x607f766c, 0x7455, 0x42be, {0x93, 0x0b, 0xe4, 0xd7, 0x6d, 0xb2, 0x72, 0x0f }}; ++ ++typedef struct { ++ grub_efi_uint8_t Major; ++ grub_efi_uint8_t Minor; ++ grub_efi_uint8_t RevMajor; ++ grub_efi_uint8_t RevMinor; ++} TCG_VERSION; ++ ++typedef struct _TCG_EFI_BOOT_SERVICE_CAPABILITY { ++ grub_efi_uint8_t Size; /// Size of this structure. ++ TCG_VERSION StructureVersion; ++ TCG_VERSION ProtocolSpecVersion; ++ grub_efi_uint8_t HashAlgorithmBitmap; /// Hash algorithms . ++ char TPMPresentFlag; /// 00h = TPM not present. ++ char TPMDeactivatedFlag; /// 01h = TPM currently deactivated. ++} TCG_EFI_BOOT_SERVICE_CAPABILITY; ++ ++typedef struct { ++ grub_efi_uint32_t PCRIndex; ++ grub_efi_uint32_t EventType; ++ grub_efi_uint8_t digest[20]; ++ grub_efi_uint32_t EventSize; ++ grub_efi_uint8_t Event[1]; ++} TCG_PCR_EVENT; ++ ++struct grub_efi_tpm_protocol ++{ ++ grub_efi_status_t (*status_check) (struct grub_efi_tpm_protocol *this, ++ TCG_EFI_BOOT_SERVICE_CAPABILITY *ProtocolCapability, ++ grub_efi_uint32_t *TCGFeatureFlags, ++ grub_efi_physical_address_t *EventLogLocation, ++ grub_efi_physical_address_t *EventLogLastEntry); ++ grub_efi_status_t (*hash_all) (struct grub_efi_tpm_protocol *this, ++ grub_efi_uint8_t *HashData, ++ grub_efi_uint64_t HashLen, ++ grub_efi_uint32_t AlgorithmId, ++ grub_efi_uint64_t *HashedDataLen, ++ grub_efi_uint8_t **HashedDataResult); ++ grub_efi_status_t (*log_event) (struct grub_efi_tpm_protocol *this, ++ TCG_PCR_EVENT *TCGLogData, ++ grub_efi_uint32_t *EventNumber, ++ grub_efi_uint32_t Flags); ++ grub_efi_status_t (*pass_through_to_tpm) (struct grub_efi_tpm_protocol *this, ++ grub_efi_uint32_t TpmInputParameterBlockSize, ++ grub_efi_uint8_t *TpmInputParameterBlock, ++ grub_efi_uint32_t TpmOutputParameterBlockSize, ++ grub_efi_uint8_t *TpmOutputParameterBlock); ++ grub_efi_status_t (*log_extend_event) (struct grub_efi_tpm_protocol *this, ++ grub_efi_physical_address_t HashData, ++ grub_efi_uint64_t HashDataLen, ++ grub_efi_uint32_t AlgorithmId, ++ TCG_PCR_EVENT *TCGLogData, ++ grub_efi_uint32_t *EventNumber, ++ grub_efi_physical_address_t *EventLogLastEntry); ++}; ++ ++typedef struct grub_efi_tpm_protocol grub_efi_tpm_protocol_t; ++ ++typedef grub_efi_uint32_t EFI_TCG2_EVENT_LOG_BITMAP; ++typedef grub_efi_uint32_t EFI_TCG2_EVENT_LOG_FORMAT; ++typedef grub_efi_uint32_t EFI_TCG2_EVENT_ALGORITHM_BITMAP; ++ ++typedef struct tdEFI_TCG2_VERSION { ++ grub_efi_uint8_t Major; ++ grub_efi_uint8_t Minor; ++} GRUB_PACKED EFI_TCG2_VERSION; ++ ++typedef struct tdEFI_TCG2_BOOT_SERVICE_CAPABILITY { ++ grub_efi_uint8_t Size; ++ EFI_TCG2_VERSION StructureVersion; ++ EFI_TCG2_VERSION ProtocolVersion; ++ EFI_TCG2_EVENT_ALGORITHM_BITMAP HashAlgorithmBitmap; ++ EFI_TCG2_EVENT_LOG_BITMAP SupportedEventLogs; ++ grub_efi_boolean_t TPMPresentFlag; ++ grub_efi_uint16_t MaxCommandSize; ++ grub_efi_uint16_t MaxResponseSize; ++ grub_efi_uint32_t ManufacturerID; ++ grub_efi_uint32_t NumberOfPcrBanks; ++ EFI_TCG2_EVENT_ALGORITHM_BITMAP ActivePcrBanks; ++} EFI_TCG2_BOOT_SERVICE_CAPABILITY; ++ ++typedef grub_efi_uint32_t TCG_PCRINDEX; ++typedef grub_efi_uint32_t TCG_EVENTTYPE; ++ ++typedef struct tdEFI_TCG2_EVENT_HEADER { ++ grub_efi_uint32_t HeaderSize; ++ grub_efi_uint16_t HeaderVersion; ++ TCG_PCRINDEX PCRIndex; ++ TCG_EVENTTYPE EventType; ++} GRUB_PACKED EFI_TCG2_EVENT_HEADER; ++ ++typedef struct tdEFI_TCG2_EVENT { ++ grub_efi_uint32_t Size; ++ EFI_TCG2_EVENT_HEADER Header; ++ grub_efi_uint8_t Event[1]; ++} GRUB_PACKED EFI_TCG2_EVENT; ++ ++struct grub_efi_tpm2_protocol ++{ ++ grub_efi_status_t (*get_capability) (struct grub_efi_tpm2_protocol *this, ++ EFI_TCG2_BOOT_SERVICE_CAPABILITY *ProtocolCapability); ++ grub_efi_status_t (*get_event_log) (struct grub_efi_tpm2_protocol *this, ++ EFI_TCG2_EVENT_LOG_FORMAT EventLogFormat, ++ grub_efi_physical_address_t *EventLogLocation, ++ grub_efi_physical_address_t *EventLogLastEntry, ++ grub_efi_boolean_t *EventLogTruncated); ++ grub_efi_status_t (*hash_log_extend_event) (struct grub_efi_tpm2_protocol *this, ++ grub_efi_uint64_t Flags, ++ grub_efi_physical_address_t *DataToHash, ++ grub_efi_uint64_t DataToHashLen, ++ EFI_TCG2_EVENT *EfiTcgEvent); ++ grub_efi_status_t (*submit_command) (struct grub_efi_tpm2_protocol *this, ++ grub_efi_uint32_t InputParameterBlockSize, ++ grub_efi_uint8_t *InputParameterBlock, ++ grub_efi_uint32_t OutputParameterBlockSize, ++ grub_efi_uint8_t *OutputParameterBlock); ++ grub_efi_status_t (*get_active_pcr_blanks) (struct grub_efi_tpm2_protocol *this, ++ grub_efi_uint32_t *ActivePcrBanks); ++ grub_efi_status_t (*set_active_pcr_banks) (struct grub_efi_tpm2_protocol *this, ++ grub_efi_uint32_t ActivePcrBanks); ++ grub_efi_status_t (*get_result_of_set_active_pcr_banks) (struct grub_efi_tpm2_protocol *this, ++ grub_efi_uint32_t *OperationPresent, ++ grub_efi_uint32_t *Response); ++}; ++ ++typedef struct grub_efi_tpm2_protocol grub_efi_tpm2_protocol_t; ++ ++#define TCG_ALG_SHA 0x00000004 ++ ++#endif +diff --git a/include/grub/tpm.h b/include/grub/tpm.h +new file mode 100644 +index 00000000000..40d3cf65ba6 +--- /dev/null ++++ b/include/grub/tpm.h +@@ -0,0 +1,91 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2015 Free Software Foundation, Inc. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++#ifndef GRUB_TPM_HEADER ++#define GRUB_TPM_HEADER 1 ++ ++#define SHA1_DIGEST_SIZE 20 ++ ++#define TPM_BASE 0x0 ++#define TPM_SUCCESS TPM_BASE ++#define TPM_AUTHFAIL (TPM_BASE + 0x1) ++#define TPM_BADINDEX (TPM_BASE + 0x2) ++ ++#define GRUB_TPM_PCR 9 ++#define GRUB_KERNEL_PCR 10 ++#define GRUB_INITRD_PCR 11 ++#define GRUB_CMDLINE_PCR 12 ++ ++#define TPM_TAG_RQU_COMMAND 0x00C1 ++#define TPM_ORD_Extend 0x14 ++ ++#define EV_IPL 0x0d ++ ++/* TCG_PassThroughToTPM Input Parameter Block */ ++typedef struct { ++ grub_uint16_t IPBLength; ++ grub_uint16_t Reserved1; ++ grub_uint16_t OPBLength; ++ grub_uint16_t Reserved2; ++ grub_uint8_t TPMOperandIn[1]; ++} GRUB_PACKED PassThroughToTPM_InputParamBlock; ++ ++/* TCG_PassThroughToTPM Output Parameter Block */ ++typedef struct { ++ grub_uint16_t OPBLength; ++ grub_uint16_t Reserved; ++ grub_uint8_t TPMOperandOut[1]; ++} GRUB_PACKED PassThroughToTPM_OutputParamBlock; ++ ++typedef struct { ++ grub_uint16_t tag; ++ grub_uint32_t paramSize; ++ grub_uint32_t ordinal; ++ grub_uint32_t pcrNum; ++ grub_uint8_t inDigest[SHA1_DIGEST_SIZE]; /* The 160 bit value representing the event to be recorded. */ ++} GRUB_PACKED ExtendIncoming; ++ ++/* TPM_Extend Outgoing Operand */ ++typedef struct { ++ grub_uint16_t tag; ++ grub_uint32_t paramSize; ++ grub_uint32_t returnCode; ++ grub_uint8_t outDigest[SHA1_DIGEST_SIZE]; /* The PCR value after execution of the command. */ ++} GRUB_PACKED ExtendOutgoing; ++ ++grub_err_t EXPORT_FUNC(grub_tpm_measure) (unsigned char *buf, grub_size_t size, ++ grub_uint8_t pcr, ++ const char *description); ++#if defined (GRUB_MACHINE_EFI) || defined (GRUB_MACHINE_PCBIOS) ++grub_err_t grub_tpm_execute(PassThroughToTPM_InputParamBlock *inbuf, ++ PassThroughToTPM_OutputParamBlock *outbuf); ++grub_err_t grub_tpm_log_event(unsigned char *buf, grub_size_t size, ++ grub_uint8_t pcr, const char *description); ++#else ++static inline grub_err_t grub_tpm_execute(PassThroughToTPM_InputParamBlock *inbuf, ++ PassThroughToTPM_OutputParamBlock *outbuf) { return 0; }; ++static inline grub_err_t grub_tpm_log_event(unsigned char *buf, ++ grub_size_t size, ++ grub_uint8_t pcr, ++ const char *description) ++{ ++ return 0; ++}; ++#endif ++ ++#endif +diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am +index 5c7a2c8f808..84b076962d8 100644 +--- a/grub-core/Makefile.am ++++ b/grub-core/Makefile.am +@@ -94,6 +94,7 @@ KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/term.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/time.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/mm_private.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/net.h ++KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/tpm.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/memory.h + + if COND_i386_pc +-- +2.15.0 + diff --git a/0218-Measure-kernel-initrd.patch b/0218-Measure-kernel-initrd.patch new file mode 100644 index 00000000..02a039c9 --- /dev/null +++ b/0218-Measure-kernel-initrd.patch @@ -0,0 +1,42 @@ +From 556a7abe5d08b3b7b2d8446759587b17337fe9c9 Mon Sep 17 00:00:00 2001 +From: Matthew Garrett +Date: Thu, 16 Jul 2015 15:22:34 -0700 +Subject: [PATCH 218/227] Measure kernel + initrd + +Measure the kernel and initrd when loaded on UEFI systems +--- + grub-core/loader/i386/efi/linux.c | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c +index 6db5d0bf3a0..48febdc8100 100644 +--- a/grub-core/loader/i386/efi/linux.c ++++ b/grub-core/loader/i386/efi/linux.c +@@ -27,6 +27,7 @@ + #include + #include + #include ++#include + + GRUB_MOD_LICENSE ("GPLv3+"); + +@@ -132,6 +133,7 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), + argv[i]); + goto fail; + } ++ grub_tpm_measure (ptr, cursize, GRUB_INITRD_PCR, "UEFI Linux initrd"); + ptr += cursize; + grub_memset (ptr, 0, ALIGN_UP_OVERHEAD (cursize, 4)); + ptr += ALIGN_UP_OVERHEAD (cursize, 4); +@@ -196,6 +198,8 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), + goto fail; + } + ++ grub_tpm_measure (kernel, filelen, GRUB_KERNEL_PCR, "UEFI Linux kernel"); ++ + rc = grub_linuxefi_secure_validate (kernel, filelen); + if (rc < 0) + { +-- +2.15.0 + diff --git a/0219-Add-BIOS-boot-measurement.patch b/0219-Add-BIOS-boot-measurement.patch new file mode 100644 index 00000000..22e73d32 --- /dev/null +++ b/0219-Add-BIOS-boot-measurement.patch @@ -0,0 +1,179 @@ +From 8390e231d322fd94f7a8223f140c4bc5de2ba56f Mon Sep 17 00:00:00 2001 +From: Matthew Garrett +Date: Sun, 9 Aug 2015 15:48:51 -0700 +Subject: [PATCH 219/227] Add BIOS boot measurement + +Measure the on-disk grub core on BIOS systems - unlike UEFI, the firmware +can't do this stage for us. +--- + grub-core/boot/i386/pc/boot.S | 30 +++++++++++++++++++++++++- + grub-core/boot/i386/pc/diskboot.S | 44 +++++++++++++++++++++++++++++++++++++++ + 2 files changed, 73 insertions(+), 1 deletion(-) + +diff --git a/grub-core/boot/i386/pc/boot.S b/grub-core/boot/i386/pc/boot.S +index ea167fe1206..c1df86dec0b 100644 +--- a/grub-core/boot/i386/pc/boot.S ++++ b/grub-core/boot/i386/pc/boot.S +@@ -24,11 +24,14 @@ + * defines for the code go here + */ + ++#define TPM 1 ++ + /* Print message string */ + #define MSG(x) movw $x, %si; call LOCAL(message) + #define ERR(x) movw $x, %si; jmp LOCAL(error_message) + + .macro floppy ++#ifndef TPM + part_start: + + LOCAL(probe_values): +@@ -85,6 +88,7 @@ fd_probe_error_string: .asciz "Floppy" + movb MACRO_DOLLAR(79), %ch + + jmp LOCAL(final_init) ++#endif + .endm + + .macro scratch +@@ -252,6 +256,7 @@ real_start: + /* set %si to the disk address packet */ + movw $disk_address_packet, %si + ++#ifndef TPM + /* check if LBA is supported */ + movb $0x41, %ah + movw $0x55aa, %bx +@@ -271,6 +276,7 @@ real_start: + + andw $1, %cx + jz LOCAL(chs_mode) ++#endif + + LOCAL(lba_mode): + xorw %ax, %ax +@@ -314,6 +320,9 @@ LOCAL(lba_mode): + jmp LOCAL(copy_buffer) + + LOCAL(chs_mode): ++#ifdef TPM ++ jmp LOCAL(general_error) ++#else + /* + * Determine the hard disk geometry from the BIOS! + * We do this first, so that LS-120 IDE floppies work correctly. +@@ -425,7 +434,7 @@ setup_sectors: + jc LOCAL(read_error) + + movw %es, %bx +- ++#endif /* TPM */ + LOCAL(copy_buffer): + /* + * We need to save %cx and %si because the startup code in +@@ -448,6 +457,25 @@ LOCAL(copy_buffer): + popw %ds + popa + ++#ifdef TPM ++ pusha ++ ++ movw $0xBB00, %ax /* TCG_StatusCheck */ ++ int $0x1A ++ test %eax, %eax ++ jnz boot /* No TPM or TPM deactivated */ ++ ++ movw $0xBB07, %ax /* TCG_CompactHashLogExtendEvent */ ++ movw $GRUB_BOOT_MACHINE_KERNEL_ADDR, %di ++ xorl %esi, %esi ++ movl $0x41504354, %ebx /* TCPA */ ++ movl $0x200, %ecx /* Measure 512 bytes */ ++ movl $0x8, %edx /* PCR 8 */ ++ int $0x1A ++ ++ popa ++#endif ++boot: + /* boot kernel */ + jmp *(LOCAL(kernel_address)) + +diff --git a/grub-core/boot/i386/pc/diskboot.S b/grub-core/boot/i386/pc/diskboot.S +index c8b87ed293c..05dd7fa701c 100644 +--- a/grub-core/boot/i386/pc/diskboot.S ++++ b/grub-core/boot/i386/pc/diskboot.S +@@ -19,6 +19,8 @@ + #include + #include + ++#define TPM 1 ++ + /* + * defines for the code go here + */ +@@ -53,6 +55,21 @@ _start: + /* this sets up for the first run through "bootloop" */ + movw $LOCAL(firstlist), %di + ++#ifdef TPM ++ /* clear EAX to remove potential garbage */ ++ xorl %eax, %eax ++ /* 8(%di) = number of sectors to read */ ++ movw 8(%di), %ax ++ ++ /* Multiply number of sectors to read with 512 bytes. EAX is 32bit ++ * which is large enough to hold values of up to 4GB. I doubt there ++ * will ever be a core.img larger than that. ;-) */ ++ shll $9, %eax ++ ++ /* write result to bytes_to_measure var */ ++ movl %eax, bytes_to_measure ++#endif ++ + /* save the sector number of the second sector in %ebp */ + movl (%di), %ebp + +@@ -290,6 +307,29 @@ LOCAL(copy_buffer): + /* END OF MAIN LOOP */ + + LOCAL(bootit): ++#ifdef TPM ++ pusha ++ movw $0xBB07, %ax /* TCG_CompactHashLogExtendEvent */ ++ ++ movw $0x0, %bx ++ movw %bx, %es ++ ++ /* We've already measured the first 512 bytes, now measure the rest */ ++ xorl %edi, %edi ++ movw $(GRUB_BOOT_MACHINE_KERNEL_ADDR + 0x200), %di ++ ++ movl $0x41504354, %ebx /* EBX = "TCPA" */ ++ ++ /* %ecx = The length, in bytes, of the buffer to measure */ ++ movl $bytes_to_measure, %esi ++ movl (%esi), %ecx ++ xorl %esi, %esi ++ movl $0x9, %edx /* PCR 9 */ ++ ++ int $0x1A ++ ++ popa ++#endif + /* print a newline */ + MSG(notification_done) + popw %dx /* this makes sure %dl is our "boot" drive */ +@@ -324,6 +364,10 @@ geometry_error_string: .asciz "Geom" + read_error_string: .asciz "Read" + general_error_string: .asciz " Error" + ++#ifdef TPM ++bytes_to_measure: .long 0 ++#endif ++ + /* + * message: write the string pointed to by %si + * +-- +2.15.0 + diff --git a/0220-Measure-kernel-and-initrd-on-BIOS-systems.patch b/0220-Measure-kernel-and-initrd-on-BIOS-systems.patch new file mode 100644 index 00000000..7357ebbc --- /dev/null +++ b/0220-Measure-kernel-and-initrd-on-BIOS-systems.patch @@ -0,0 +1,87 @@ +From 2c3d5dcff2281c9f0894ce01b1c75be47dd13050 Mon Sep 17 00:00:00 2001 +From: Matthew Garrett +Date: Sun, 9 Aug 2015 16:28:29 -0700 +Subject: [PATCH 220/227] Measure kernel and initrd on BIOS systems + +Measure the kernel and initrd when loaded on BIOS systems +--- + grub-core/loader/i386/linux.c | 5 +++++ + grub-core/loader/i386/pc/linux.c | 3 +++ + grub-core/loader/linux.c | 2 ++ + 3 files changed, 10 insertions(+) + +diff --git a/grub-core/loader/i386/linux.c b/grub-core/loader/i386/linux.c +index c9e89310bdd..bc10add45a6 100644 +--- a/grub-core/loader/i386/linux.c ++++ b/grub-core/loader/i386/linux.c +@@ -36,6 +36,7 @@ + #include + #include + #include ++#include + + GRUB_MOD_LICENSE ("GPLv3+"); + +@@ -718,7 +719,10 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), + goto fail; + } + ++ grub_tpm_measure (kernel, len, GRUB_KERNEL_PCR, "Linux Kernel"); ++ + grub_memcpy (&lh, kernel, sizeof (lh)); ++ + kernel_offset = sizeof (lh); + + if (lh.boot_flag != grub_cpu_to_le16_compile_time (0xaa55)) +@@ -1032,6 +1036,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), + + len = prot_file_size; + grub_memcpy (prot_mode_mem, kernel + kernel_offset, len); ++ kernel_offset += len; + + if (grub_errno == GRUB_ERR_NONE) + { +diff --git a/grub-core/loader/i386/pc/linux.c b/grub-core/loader/i386/pc/linux.c +index b864e540333..6b8f365c9cf 100644 +--- a/grub-core/loader/i386/pc/linux.c ++++ b/grub-core/loader/i386/pc/linux.c +@@ -36,6 +36,7 @@ + #include + #include + #include ++#include + + GRUB_MOD_LICENSE ("GPLv3+"); + +@@ -161,6 +162,8 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), + goto fail; + } + ++ grub_tpm_measure (kernel, len, GRUB_KERNEL_PCR, "BIOS Linux Kernel"); ++ + grub_memcpy (&lh, kernel, sizeof (lh)); + kernel_offset = sizeof (lh); + +diff --git a/grub-core/loader/linux.c b/grub-core/loader/linux.c +index be6fa0f4d45..3005c0d19c9 100644 +--- a/grub-core/loader/linux.c ++++ b/grub-core/loader/linux.c +@@ -4,6 +4,7 @@ + #include + #include + #include ++#include + + struct newc_head + { +@@ -288,6 +289,7 @@ grub_initrd_load (struct grub_linux_initrd_context *initrd_ctx, + grub_initrd_close (initrd_ctx); + return grub_errno; + } ++ grub_tpm_measure (ptr, cursize, GRUB_INITRD_PCR, "Linux Initrd"); + ptr += cursize; + } + if (newc) +-- +2.15.0 + diff --git a/0221-Measure-the-kernel-commandline.patch b/0221-Measure-the-kernel-commandline.patch new file mode 100644 index 00000000..067cc6f1 --- /dev/null +++ b/0221-Measure-the-kernel-commandline.patch @@ -0,0 +1,43 @@ +From eeca74b2e520dd3c0ca74deb8c6351e9ec14096c Mon Sep 17 00:00:00 2001 +From: Matthew Garrett +Date: Sun, 9 Aug 2015 16:32:29 -0700 +Subject: [PATCH 221/227] Measure the kernel commandline + +Measure the kernel commandline to ensure that it hasn't been modified +--- + grub-core/lib/cmdline.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/grub-core/lib/cmdline.c b/grub-core/lib/cmdline.c +index 970ea868c14..6b56304d4a7 100644 +--- a/grub-core/lib/cmdline.c ++++ b/grub-core/lib/cmdline.c +@@ -19,6 +19,7 @@ + + #include + #include ++#include + + static int + is_hex(char c) +@@ -79,7 +80,7 @@ int grub_create_loader_cmdline (int argc, char *argv[], char *buf, + { + int i, space; + unsigned int arg_size; +- char *c; ++ char *c, *orig = buf; + + for (i = 0; i < argc; i++) + { +@@ -125,5 +126,8 @@ int grub_create_loader_cmdline (int argc, char *argv[], char *buf, + + *buf = 0; + ++ grub_tpm_measure ((void *)orig, grub_strlen (orig), GRUB_CMDLINE_PCR, ++ "Kernel Commandline"); ++ + return i; + } +-- +2.15.0 + diff --git a/0222-Measure-commands.patch b/0222-Measure-commands.patch new file mode 100644 index 00000000..417aa702 --- /dev/null +++ b/0222-Measure-commands.patch @@ -0,0 +1,76 @@ +From c45fb4188646f0ea2a8e37dd5e1fa069ca6f7b8a Mon Sep 17 00:00:00 2001 +From: Matthew Garrett +Date: Mon, 10 Aug 2015 15:27:12 -0700 +Subject: [PATCH 222/227] Measure commands + +Measure each command executed by grub, which includes script execution. +--- + grub-core/script/execute.c | 25 +++++++++++++++++++++++-- + include/grub/tpm.h | 1 + + 2 files changed, 24 insertions(+), 2 deletions(-) + +diff --git a/grub-core/script/execute.c b/grub-core/script/execute.c +index cf6cd6601d6..9ae04a05160 100644 +--- a/grub-core/script/execute.c ++++ b/grub-core/script/execute.c +@@ -30,6 +30,7 @@ + #ifdef GRUB_MACHINE_IEEE1275 + #include + #endif ++#include + + /* Max digits for a char is 3 (0xFF is 255), similarly for an int it + is sizeof (int) * 3, and one extra for a possible -ve sign. */ +@@ -967,8 +968,9 @@ grub_script_execute_cmdline (struct grub_script_cmd *cmd) + grub_err_t ret = 0; + grub_script_function_t func = 0; + char errnobuf[18]; +- char *cmdname; +- int argc; ++ char *cmdname, *cmdstring; ++ int argc, offset = 0, cmdlen = 0; ++ unsigned int i; + char **args; + int invert; + struct grub_script_argv argv = { 0, 0, 0 }; +@@ -977,6 +979,25 @@ grub_script_execute_cmdline (struct grub_script_cmd *cmd) + if (grub_script_arglist_to_argv (cmdline->arglist, &argv) || ! argv.args[0]) + return grub_errno; + ++ for (i = 0; i < argv.argc; i++) { ++ cmdlen += grub_strlen (argv.args[i]) + 1; ++ } ++ ++ cmdstring = grub_malloc (cmdlen); ++ if (!cmdstring) ++ { ++ return grub_error (GRUB_ERR_OUT_OF_MEMORY, ++ N_("cannot allocate command buffer")); ++ } ++ ++ for (i = 0; i < argv.argc; i++) { ++ offset += grub_snprintf (cmdstring + offset, cmdlen - offset, "%s ", ++ argv.args[i]); ++ } ++ cmdstring[cmdlen-1]= '\0'; ++ grub_tpm_measure ((unsigned char *)cmdstring, cmdlen, GRUB_COMMAND_PCR, ++ cmdstring); ++ grub_free(cmdstring); + invert = 0; + argc = argv.argc - 1; + args = argv.args + 1; +diff --git a/include/grub/tpm.h b/include/grub/tpm.h +index 40d3cf65ba6..7fc9d77d277 100644 +--- a/include/grub/tpm.h ++++ b/include/grub/tpm.h +@@ -30,6 +30,7 @@ + #define GRUB_KERNEL_PCR 10 + #define GRUB_INITRD_PCR 11 + #define GRUB_CMDLINE_PCR 12 ++#define GRUB_COMMAND_PCR 13 + + #define TPM_TAG_RQU_COMMAND 0x00C1 + #define TPM_ORD_Extend 0x14 +-- +2.15.0 + diff --git a/0223-Measure-multiboot-images-and-modules.patch b/0223-Measure-multiboot-images-and-modules.patch new file mode 100644 index 00000000..a289e831 --- /dev/null +++ b/0223-Measure-multiboot-images-and-modules.patch @@ -0,0 +1,78 @@ +From 98dd154527b9cddaff15ab22b35c41815d9f1b13 Mon Sep 17 00:00:00 2001 +From: Matthew Garrett +Date: Tue, 1 Sep 2015 16:02:55 -0700 +Subject: [PATCH 223/227] Measure multiboot images and modules + +--- + grub-core/loader/i386/multiboot_mbi.c | 3 +++ + grub-core/loader/multiboot.c | 2 ++ + grub-core/loader/multiboot_mbi2.c | 4 +++- + 3 files changed, 8 insertions(+), 1 deletion(-) + +diff --git a/grub-core/loader/i386/multiboot_mbi.c b/grub-core/loader/i386/multiboot_mbi.c +index fd7b41b0cad..5d00aed65ad 100644 +--- a/grub-core/loader/i386/multiboot_mbi.c ++++ b/grub-core/loader/i386/multiboot_mbi.c +@@ -36,6 +36,7 @@ + #include + #include + #include ++#include + + #ifdef GRUB_MACHINE_EFI + #include +@@ -173,6 +174,8 @@ grub_multiboot_load (grub_file_t file, const char *filename) + return grub_errno; + } + ++ grub_tpm_measure((unsigned char*)buffer, len, GRUB_KERNEL_PCR, filename); ++ + header = find_header (buffer, len); + + if (header == 0) +diff --git a/grub-core/loader/multiboot.c b/grub-core/loader/multiboot.c +index fb044a60c79..0ca525380c9 100644 +--- a/grub-core/loader/multiboot.c ++++ b/grub-core/loader/multiboot.c +@@ -43,6 +43,7 @@ + #include + #include + #include ++#include + + GRUB_MOD_LICENSE ("GPLv3+"); + +@@ -425,6 +426,7 @@ grub_cmd_module (grub_command_t cmd __attribute__ ((unused)), + } + + grub_file_close (file); ++ grub_tpm_measure (module, size, GRUB_KERNEL_PCR, argv[0]); + return GRUB_ERR_NONE; + } + +diff --git a/grub-core/loader/multiboot_mbi2.c b/grub-core/loader/multiboot_mbi2.c +index b0679a9f6c9..a7b4a57ec4f 100644 +--- a/grub-core/loader/multiboot_mbi2.c ++++ b/grub-core/loader/multiboot_mbi2.c +@@ -36,6 +36,7 @@ + #include + #include + #include ++#include + + #if defined (GRUB_MACHINE_EFI) + #include +@@ -131,8 +132,9 @@ grub_multiboot_load (grub_file_t file, const char *filename) + + COMPILE_TIME_ASSERT (MULTIBOOT_HEADER_ALIGN % 4 == 0); + ++ grub_tpm_measure ((unsigned char *)buffer, len, GRUB_KERNEL_PCR, filename); ++ + header = find_header (mld.buffer, len); +- + if (header == 0) + { + grub_free (mld.buffer); +-- +2.15.0 + diff --git a/0224-Fix-boot-when-there-s-no-TPM.patch b/0224-Fix-boot-when-there-s-no-TPM.patch new file mode 100644 index 00000000..3638e686 --- /dev/null +++ b/0224-Fix-boot-when-there-s-no-TPM.patch @@ -0,0 +1,32 @@ +From d621b990b2d3ba20a275de963841c4c2c9246a90 Mon Sep 17 00:00:00 2001 +From: Matthew Garrett +Date: Wed, 23 Mar 2016 16:49:42 -0700 +Subject: [PATCH 224/227] Fix boot when there's no TPM + +If the firmware has TPM support but has no TPM, we're jumping to core.img +without popping the registers back onto the stack. Fix that. + +(cherry picked from commit c2eee36ec08f8ed0cd25b8030276347680be4843) +--- + grub-core/boot/i386/pc/boot.S | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/grub-core/boot/i386/pc/boot.S b/grub-core/boot/i386/pc/boot.S +index c1df86dec0b..acab37369ae 100644 +--- a/grub-core/boot/i386/pc/boot.S ++++ b/grub-core/boot/i386/pc/boot.S +@@ -473,9 +473,9 @@ LOCAL(copy_buffer): + movl $0x8, %edx /* PCR 8 */ + int $0x1A + +- popa +-#endif + boot: ++ popa ++#endif + /* boot kernel */ + jmp *(LOCAL(kernel_address)) + +-- +2.15.0 + diff --git a/0225-Rework-TPM-measurements.patch b/0225-Rework-TPM-measurements.patch new file mode 100644 index 00000000..63d0964b --- /dev/null +++ b/0225-Rework-TPM-measurements.patch @@ -0,0 +1,219 @@ +From eb631580edb7cd1ed00de0a521373d363651be41 Mon Sep 17 00:00:00 2001 +From: Matthew Garrett +Date: Wed, 23 Mar 2016 17:03:43 -0700 +Subject: [PATCH 225/227] Rework TPM measurements + +Rework TPM measurements to use fewer PCRs. After discussion with upstream, +it's preferable to avoid using so many PCRs. Instead, measure into PCRs 8 +and 9 but use a prefix in the event log to indicate which subsystem carried +out the measurements. + +(cherry picked from commit bb3473d7c8741ad5ef7cf8aafbbcf094df08bfc9) +--- + grub-core/kern/dl.c | 2 +- + grub-core/kern/tpm.c | 10 ++++++++-- + grub-core/lib/cmdline.c | 4 ++-- + grub-core/loader/i386/efi/linux.c | 4 ++-- + grub-core/loader/i386/linux.c | 2 +- + grub-core/loader/i386/multiboot_mbi.c | 2 +- + grub-core/loader/i386/pc/linux.c | 2 +- + grub-core/loader/linux.c | 2 +- + grub-core/loader/multiboot.c | 2 +- + grub-core/loader/multiboot_mbi2.c | 2 +- + grub-core/script/execute.c | 4 ++-- + include/grub/tpm.h | 9 +++------ + 12 files changed, 24 insertions(+), 21 deletions(-) + +diff --git a/grub-core/kern/dl.c b/grub-core/kern/dl.c +index 387d1e6446d..d0989573866 100644 +--- a/grub-core/kern/dl.c ++++ b/grub-core/kern/dl.c +@@ -830,7 +830,7 @@ grub_dl_load_file (const char *filename) + opens of the same device. */ + grub_file_close (file); + +- grub_tpm_measure(core, size, GRUB_TPM_PCR, filename); ++ grub_tpm_measure(core, size, GRUB_BINARY_PCR, "grub_module", filename); + + mod = grub_dl_load_core (core, size); + grub_free (core); +diff --git a/grub-core/kern/tpm.c b/grub-core/kern/tpm.c +index 1a991876c83..cb5a812035d 100644 +--- a/grub-core/kern/tpm.c ++++ b/grub-core/kern/tpm.c +@@ -7,7 +7,13 @@ + + grub_err_t + grub_tpm_measure (unsigned char *buf, grub_size_t size, grub_uint8_t pcr, +- const char *description) ++ const char *kind, const char *description) + { +- return grub_tpm_log_event(buf, size, pcr, description); ++ grub_err_t ret; ++ char *desc = grub_xasprintf("%s %s", kind, description); ++ if (!desc) ++ return GRUB_ERR_OUT_OF_MEMORY; ++ ret = grub_tpm_log_event(buf, size, pcr, description); ++ grub_free(desc); ++ return ret; + } +diff --git a/grub-core/lib/cmdline.c b/grub-core/lib/cmdline.c +index 6b56304d4a7..178f7382f07 100644 +--- a/grub-core/lib/cmdline.c ++++ b/grub-core/lib/cmdline.c +@@ -126,8 +126,8 @@ int grub_create_loader_cmdline (int argc, char *argv[], char *buf, + + *buf = 0; + +- grub_tpm_measure ((void *)orig, grub_strlen (orig), GRUB_CMDLINE_PCR, +- "Kernel Commandline"); ++ grub_tpm_measure ((void *)orig, grub_strlen (orig), GRUB_ASCII_PCR, ++ "grub_kernel_cmdline", orig); + + return i; + } +diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c +index 48febdc8100..079e222e972 100644 +--- a/grub-core/loader/i386/efi/linux.c ++++ b/grub-core/loader/i386/efi/linux.c +@@ -133,7 +133,7 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), + argv[i]); + goto fail; + } +- grub_tpm_measure (ptr, cursize, GRUB_INITRD_PCR, "UEFI Linux initrd"); ++ grub_tpm_measure (ptr, cursize, GRUB_BINARY_PCR, "grub_linuxefi", "Initrd"); + ptr += cursize; + grub_memset (ptr, 0, ALIGN_UP_OVERHEAD (cursize, 4)); + ptr += ALIGN_UP_OVERHEAD (cursize, 4); +@@ -198,7 +198,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), + goto fail; + } + +- grub_tpm_measure (kernel, filelen, GRUB_KERNEL_PCR, "UEFI Linux kernel"); ++ grub_tpm_measure (kernel, filelen, GRUB_BINARY_PCR, "grub_linuxefi", "Kernel"); + + rc = grub_linuxefi_secure_validate (kernel, filelen); + if (rc < 0) +diff --git a/grub-core/loader/i386/linux.c b/grub-core/loader/i386/linux.c +index bc10add45a6..32e3bb08e88 100644 +--- a/grub-core/loader/i386/linux.c ++++ b/grub-core/loader/i386/linux.c +@@ -719,7 +719,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), + goto fail; + } + +- grub_tpm_measure (kernel, len, GRUB_KERNEL_PCR, "Linux Kernel"); ++ grub_tpm_measure (kernel, len, GRUB_BINARY_PCR, "grub_linux", "Kernel"); + + grub_memcpy (&lh, kernel, sizeof (lh)); + +diff --git a/grub-core/loader/i386/multiboot_mbi.c b/grub-core/loader/i386/multiboot_mbi.c +index 5d00aed65ad..0981a2cfd93 100644 +--- a/grub-core/loader/i386/multiboot_mbi.c ++++ b/grub-core/loader/i386/multiboot_mbi.c +@@ -174,7 +174,7 @@ grub_multiboot_load (grub_file_t file, const char *filename) + return grub_errno; + } + +- grub_tpm_measure((unsigned char*)buffer, len, GRUB_KERNEL_PCR, filename); ++ grub_tpm_measure((unsigned char*)buffer, len, GRUB_BINARY_PCR, "grub_multiboot", filename); + + header = find_header (buffer, len); + +diff --git a/grub-core/loader/i386/pc/linux.c b/grub-core/loader/i386/pc/linux.c +index 6b8f365c9cf..7edbc5ea6c4 100644 +--- a/grub-core/loader/i386/pc/linux.c ++++ b/grub-core/loader/i386/pc/linux.c +@@ -162,7 +162,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), + goto fail; + } + +- grub_tpm_measure (kernel, len, GRUB_KERNEL_PCR, "BIOS Linux Kernel"); ++ grub_tpm_measure (kernel, len, GRUB_BINARY_PCR, "grub_linux16", "Kernel"); + + grub_memcpy (&lh, kernel, sizeof (lh)); + kernel_offset = sizeof (lh); +diff --git a/grub-core/loader/linux.c b/grub-core/loader/linux.c +index 3005c0d19c9..78c41e33416 100644 +--- a/grub-core/loader/linux.c ++++ b/grub-core/loader/linux.c +@@ -289,7 +289,7 @@ grub_initrd_load (struct grub_linux_initrd_context *initrd_ctx, + grub_initrd_close (initrd_ctx); + return grub_errno; + } +- grub_tpm_measure (ptr, cursize, GRUB_INITRD_PCR, "Linux Initrd"); ++ grub_tpm_measure (ptr, cursize, GRUB_BINARY_PCR, "grub_initrd", "Initrd"); + ptr += cursize; + } + if (newc) +diff --git a/grub-core/loader/multiboot.c b/grub-core/loader/multiboot.c +index 0ca525380c9..cc53d429bca 100644 +--- a/grub-core/loader/multiboot.c ++++ b/grub-core/loader/multiboot.c +@@ -426,7 +426,7 @@ grub_cmd_module (grub_command_t cmd __attribute__ ((unused)), + } + + grub_file_close (file); +- grub_tpm_measure (module, size, GRUB_KERNEL_PCR, argv[0]); ++ grub_tpm_measure (module, size, GRUB_BINARY_PCR, "grub_multiboot", argv[0]); + return GRUB_ERR_NONE; + } + +diff --git a/grub-core/loader/multiboot_mbi2.c b/grub-core/loader/multiboot_mbi2.c +index a7b4a57ec4f..f43482935cb 100644 +--- a/grub-core/loader/multiboot_mbi2.c ++++ b/grub-core/loader/multiboot_mbi2.c +@@ -132,7 +132,7 @@ grub_multiboot_load (grub_file_t file, const char *filename) + + COMPILE_TIME_ASSERT (MULTIBOOT_HEADER_ALIGN % 4 == 0); + +- grub_tpm_measure ((unsigned char *)buffer, len, GRUB_KERNEL_PCR, filename); ++ grub_tpm_measure ((unsigned char *)buffer, len, GRUB_BINARY_PCR, "grub_multiboot", filename); + + header = find_header (mld.buffer, len); + if (header == 0) +diff --git a/grub-core/script/execute.c b/grub-core/script/execute.c +index 9ae04a05160..976643c47b0 100644 +--- a/grub-core/script/execute.c ++++ b/grub-core/script/execute.c +@@ -995,8 +995,8 @@ grub_script_execute_cmdline (struct grub_script_cmd *cmd) + argv.args[i]); + } + cmdstring[cmdlen-1]= '\0'; +- grub_tpm_measure ((unsigned char *)cmdstring, cmdlen, GRUB_COMMAND_PCR, +- cmdstring); ++ grub_tpm_measure ((unsigned char *)cmdstring, cmdlen, GRUB_ASCII_PCR, ++ "grub_cmd", cmdstring); + grub_free(cmdstring); + invert = 0; + argc = argv.argc - 1; +diff --git a/include/grub/tpm.h b/include/grub/tpm.h +index 7fc9d77d277..ecb2d09ff5d 100644 +--- a/include/grub/tpm.h ++++ b/include/grub/tpm.h +@@ -26,11 +26,8 @@ + #define TPM_AUTHFAIL (TPM_BASE + 0x1) + #define TPM_BADINDEX (TPM_BASE + 0x2) + +-#define GRUB_TPM_PCR 9 +-#define GRUB_KERNEL_PCR 10 +-#define GRUB_INITRD_PCR 11 +-#define GRUB_CMDLINE_PCR 12 +-#define GRUB_COMMAND_PCR 13 ++#define GRUB_ASCII_PCR 8 ++#define GRUB_BINARY_PCR 9 + + #define TPM_TAG_RQU_COMMAND 0x00C1 + #define TPM_ORD_Extend 0x14 +@@ -70,7 +67,7 @@ typedef struct { + } GRUB_PACKED ExtendOutgoing; + + grub_err_t EXPORT_FUNC(grub_tpm_measure) (unsigned char *buf, grub_size_t size, +- grub_uint8_t pcr, ++ grub_uint8_t pcr, const char *kind, + const char *description); + #if defined (GRUB_MACHINE_EFI) || defined (GRUB_MACHINE_PCBIOS) + grub_err_t grub_tpm_execute(PassThroughToTPM_InputParamBlock *inbuf, +-- +2.15.0 + diff --git a/0226-Fix-event-log-prefix.patch b/0226-Fix-event-log-prefix.patch new file mode 100644 index 00000000..81ea11b5 --- /dev/null +++ b/0226-Fix-event-log-prefix.patch @@ -0,0 +1,29 @@ +From 4caddfad92ef6fa251fbfaf7e10271434885f253 Mon Sep 17 00:00:00 2001 +From: Matthew Garrett +Date: Tue, 29 Mar 2016 15:36:49 -0700 +Subject: [PATCH 226/227] Fix event log prefix + +We're not passing the prefixed version of the description to the event log. +Fix that. + +(cherry picked from commit aab446306b8a78c741e229861c4988738cfc6426) +--- + grub-core/kern/tpm.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/grub-core/kern/tpm.c b/grub-core/kern/tpm.c +index cb5a812035d..e5e8fced624 100644 +--- a/grub-core/kern/tpm.c ++++ b/grub-core/kern/tpm.c +@@ -13,7 +13,7 @@ grub_tpm_measure (unsigned char *buf, grub_size_t size, grub_uint8_t pcr, + char *desc = grub_xasprintf("%s %s", kind, description); + if (!desc) + return GRUB_ERR_OUT_OF_MEMORY; +- ret = grub_tpm_log_event(buf, size, pcr, description); ++ ret = grub_tpm_log_event(buf, size, pcr, desc); + grub_free(desc); + return ret; + } +-- +2.15.0 + diff --git a/0227-Set-the-first-boot-menu-entry-as-default-when-using-.patch b/0227-Set-the-first-boot-menu-entry-as-default-when-using-.patch new file mode 100644 index 00000000..bef63a48 --- /dev/null +++ b/0227-Set-the-first-boot-menu-entry-as-default-when-using-.patch @@ -0,0 +1,30 @@ +From 5d9681adc296936bea6d070c4b93db42741f05ff Mon Sep 17 00:00:00 2001 +From: Javier Martinez Canillas +Date: Fri, 6 Apr 2018 14:08:36 +0200 +Subject: [PATCH 227/227] Set the first boot menu entry as default when using + BLS fragments + +When BootLoaderSpec configuration files are used, the default boot menu +entry is always set to the first entry as sorted by the blscfg command. + +Suggested-by: Peter Jones +Signed-off-by: Javier Martinez Canillas +--- + util/grub.d/10_linux.in | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in +index f5daefb9d24..b24bb410dc0 100644 +--- a/util/grub.d/10_linux.in ++++ b/util/grub.d/10_linux.in +@@ -149,6 +149,7 @@ if [ -s \$prefix/grubenv ]; then + fi + EOF + ++ ${grub_editenv} - set saved_entry=0 + ${grub_editenv} - set kernelopts="root=${linux_root_device_thisversion} ro ${args}" + + exit 0 +-- +2.15.0 + diff --git a/grub.patches b/grub.patches index 213069ed..a9d8fd03 100644 --- a/grub.patches +++ b/grub.patches @@ -214,3 +214,14 @@ Patch0213: 0213-Make-it-possible-to-enabled-build-id-sha1.patch Patch0214: 0214-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch Patch0215: 0215-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch Patch0216: 0216-Only-attempt-to-scan-different-BLS-directories-on-EF.patch +Patch0217: 0217-Core-TPM-support.patch +Patch0218: 0218-Measure-kernel-initrd.patch +Patch0219: 0219-Add-BIOS-boot-measurement.patch +Patch0220: 0220-Measure-kernel-and-initrd-on-BIOS-systems.patch +Patch0221: 0221-Measure-the-kernel-commandline.patch +Patch0222: 0222-Measure-commands.patch +Patch0223: 0223-Measure-multiboot-images-and-modules.patch +Patch0224: 0224-Fix-boot-when-there-s-no-TPM.patch +Patch0225: 0225-Rework-TPM-measurements.patch +Patch0226: 0226-Fix-event-log-prefix.patch +Patch0227: 0227-Set-the-first-boot-menu-entry-as-default-when-using-.patch diff --git a/grub2.spec b/grub2.spec index 8eac0033..aa6a7102 100644 --- a/grub2.spec +++ b/grub2.spec @@ -7,7 +7,7 @@ Name: grub2 Epoch: 1 Version: 2.02 -Release: 29%{?dist} +Release: 30%{?dist} Summary: Bootloader with support for Linux, Multiboot and more Group: System Environment/Base License: GPLv3+ @@ -452,6 +452,10 @@ fi %endif %changelog +* Fri Apr 06 2018 Peter Jones - 2.02-30 +- Enable TPM measurements +- Set the default boot entry to the first entry when we're using BLS. + * Tue Apr 03 2018 Peter Jones - 2.02-29 - Fix for BLS paths on BIOS / non-UEFI (javierm) From a8a2f78331fbf3451f8275d3e6f20e9853db746b Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 6 Apr 2018 16:02:01 -0400 Subject: [PATCH 12/45] Fix rebase error. Signed-off-by: Peter Jones --- 0223-Measure-multiboot-images-and-modules.patch | 6 +++--- 0224-Fix-boot-when-there-s-no-TPM.patch | 2 +- 0225-Rework-TPM-measurements.patch | 8 ++++---- 0226-Fix-event-log-prefix.patch | 2 +- ...the-first-boot-menu-entry-as-default-when-using-.patch | 2 +- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/0223-Measure-multiboot-images-and-modules.patch b/0223-Measure-multiboot-images-and-modules.patch index a289e831..2922570c 100644 --- a/0223-Measure-multiboot-images-and-modules.patch +++ b/0223-Measure-multiboot-images-and-modules.patch @@ -1,4 +1,4 @@ -From 98dd154527b9cddaff15ab22b35c41815d9f1b13 Mon Sep 17 00:00:00 2001 +From 484c55d3bce0697de94d6dfd52aa8b8a92334aab Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 1 Sep 2015 16:02:55 -0700 Subject: [PATCH 223/227] Measure multiboot images and modules @@ -51,7 +51,7 @@ index fb044a60c79..0ca525380c9 100644 } diff --git a/grub-core/loader/multiboot_mbi2.c b/grub-core/loader/multiboot_mbi2.c -index b0679a9f6c9..a7b4a57ec4f 100644 +index b0679a9f6c9..99ef9036423 100644 --- a/grub-core/loader/multiboot_mbi2.c +++ b/grub-core/loader/multiboot_mbi2.c @@ -36,6 +36,7 @@ @@ -66,7 +66,7 @@ index b0679a9f6c9..a7b4a57ec4f 100644 COMPILE_TIME_ASSERT (MULTIBOOT_HEADER_ALIGN % 4 == 0); -+ grub_tpm_measure ((unsigned char *)buffer, len, GRUB_KERNEL_PCR, filename); ++ grub_tpm_measure ((unsigned char *)mld.buffer, len, GRUB_KERNEL_PCR, filename); + header = find_header (mld.buffer, len); - diff --git a/0224-Fix-boot-when-there-s-no-TPM.patch b/0224-Fix-boot-when-there-s-no-TPM.patch index 3638e686..2b1d5f37 100644 --- a/0224-Fix-boot-when-there-s-no-TPM.patch +++ b/0224-Fix-boot-when-there-s-no-TPM.patch @@ -1,4 +1,4 @@ -From d621b990b2d3ba20a275de963841c4c2c9246a90 Mon Sep 17 00:00:00 2001 +From 762607552528db56dedafac9825cab144c27eba3 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Wed, 23 Mar 2016 16:49:42 -0700 Subject: [PATCH 224/227] Fix boot when there's no TPM diff --git a/0225-Rework-TPM-measurements.patch b/0225-Rework-TPM-measurements.patch index 63d0964b..95f5a1ea 100644 --- a/0225-Rework-TPM-measurements.patch +++ b/0225-Rework-TPM-measurements.patch @@ -1,4 +1,4 @@ -From eb631580edb7cd1ed00de0a521373d363651be41 Mon Sep 17 00:00:00 2001 +From 654614fc2a0b075bc94907a58469c4df05f81994 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Wed, 23 Mar 2016 17:03:43 -0700 Subject: [PATCH 225/227] Rework TPM measurements @@ -160,15 +160,15 @@ index 0ca525380c9..cc53d429bca 100644 } diff --git a/grub-core/loader/multiboot_mbi2.c b/grub-core/loader/multiboot_mbi2.c -index a7b4a57ec4f..f43482935cb 100644 +index 99ef9036423..f7e333f56c1 100644 --- a/grub-core/loader/multiboot_mbi2.c +++ b/grub-core/loader/multiboot_mbi2.c @@ -132,7 +132,7 @@ grub_multiboot_load (grub_file_t file, const char *filename) COMPILE_TIME_ASSERT (MULTIBOOT_HEADER_ALIGN % 4 == 0); -- grub_tpm_measure ((unsigned char *)buffer, len, GRUB_KERNEL_PCR, filename); -+ grub_tpm_measure ((unsigned char *)buffer, len, GRUB_BINARY_PCR, "grub_multiboot", filename); +- grub_tpm_measure ((unsigned char *)mld.buffer, len, GRUB_KERNEL_PCR, filename); ++ grub_tpm_measure ((unsigned char *)mld.buffer, len, GRUB_BINARY_PCR, "grub_multiboot", filename); header = find_header (mld.buffer, len); if (header == 0) diff --git a/0226-Fix-event-log-prefix.patch b/0226-Fix-event-log-prefix.patch index 81ea11b5..cbebfa68 100644 --- a/0226-Fix-event-log-prefix.patch +++ b/0226-Fix-event-log-prefix.patch @@ -1,4 +1,4 @@ -From 4caddfad92ef6fa251fbfaf7e10271434885f253 Mon Sep 17 00:00:00 2001 +From 8e7dae020dc6e789df42f8bc3ca73cbaa39af017 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 29 Mar 2016 15:36:49 -0700 Subject: [PATCH 226/227] Fix event log prefix diff --git a/0227-Set-the-first-boot-menu-entry-as-default-when-using-.patch b/0227-Set-the-first-boot-menu-entry-as-default-when-using-.patch index bef63a48..f0f6e5bc 100644 --- a/0227-Set-the-first-boot-menu-entry-as-default-when-using-.patch +++ b/0227-Set-the-first-boot-menu-entry-as-default-when-using-.patch @@ -1,4 +1,4 @@ -From 5d9681adc296936bea6d070c4b93db42741f05ff Mon Sep 17 00:00:00 2001 +From a155931ed02d4517d9dba298f5c8da45fa9e7577 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Fri, 6 Apr 2018 14:08:36 +0200 Subject: [PATCH 227/227] Set the first boot menu entry as default when using From 146faa5a930eabb9168f8fb89fd7da24c54ceb63 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 6 Apr 2018 16:17:39 -0400 Subject: [PATCH 13/45] Pull in some TPM fixes I missed. Signed-off-by: Peter Jones --- 0001-Bump-version-to-2.03.patch | 2 +- 0002-Remove-bashisms-from-tests.patch | 2 +- 0003-fs-tester-make-sh-compatible.patch | 2 +- 0004-support-busybox-date.patch | 2 +- ...retrieve-fstime-when-it-s-not-useful.patch | 2 +- 0006-Support-lseek64.patch | 2 +- 0007-Use-SHELL-rather-than-bin-sh.patch | 2 +- 0008-po-Use-SHELL-rather-than-bin-sh.patch | 2 +- 0009-Add-termux-path-to-dict.patch | 2 +- 0010-Fix-shebang-for-termux.patch | 2 +- 0011-Add-strtoull-test.patch | 2 +- ...x-behaviour-on-chars-between-9-and-a.patch | 2 +- 0013-Add-Virtual-LAN-support.patch | 2 +- ...out-to-mkimage_generate_elfXX-rather.patch | 2 +- ...r-arm-uboot-code-to-make-it-genereic.patch | 2 +- ...-parts-that-are-platform-independent.patch | 2 +- ...-Rename-uboot-halt.c-to-dummy-halt.c.patch | 2 +- ...ame-uboot-datetime-to-dummy-datetime.patch | 2 +- 0019-arm-coreboot-Start-new-port.patch | 2 +- ...upport-for-device-tree-based-drivers.patch | 2 +- ...-coreboot-Support-for-vexpress-timer.patch | 2 +- 0022-arm-coreboot-Export-FDT-routines.patch | 2 +- ...-Split-protocol-from-controller-code.patch | 2 +- ...reboot-Support-keyboard-for-vexpress.patch | 2 +- ...m_coreboot-Support-grub-mkstandalone.patch | 2 +- ...oreboot-Support-loading-linux-images.patch | 2 +- 0027-arm_coreboot-Support-DMA.patch | 2 +- 0028-ehci-Split-core-code-from-PCI-part.patch | 2 +- 0029-arm_coreboot-Support-EHCI.patch | 2 +- ...n-FDT-nodes-with-compatible-property.patch | 2 +- ...ty-to-send-receive-messages-on-paren.patch | 2 +- 0032-rk3288_spi-Add-SPI-driver.patch | 2 +- ...eboot-Add-Chromebook-keyboard-driver.patch | 2 +- 0034-Missing-parts-of-previous-commit.patch | 2 +- ...-cbmemc-to-support-updated-console-f.patch | 2 +- ...t_keyboard-Fix-falco-chromebook-case.patch | 2 +- 0037-sparc64-Close-cdboot-ihandle.patch | 2 +- ...-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch | 2 +- ...p-option-support-in-xen_module-comma.patch | 2 +- ...inux_xen.in-Add-xen_boot-command-sup.patch | 2 +- ...-introduction-of-Xen-boot-commands-i.patch | 2 +- ...se-devspec-to-determine-the-OBP-path.patch | 2 +- ...unt-ext2-3-4-filesystems-that-have-t.patch | 2 +- 0044-ehci-Fix-compilation-for-amd64.patch | 2 +- ...-compilation-for-ppc-sparc-and-arm64.patch | 2 +- 0046-ehci-Fix-compilation-on-i386.patch | 2 +- 0047-crypto-Fix-use-after-free.patch | 2 +- 0048-arm-efi-Fix-compilation.patch | 2 +- 0049-fdt-silence-clang-warning.patch | 2 +- 0050-Fix-a-segfault-in-lsefi.patch | 2 +- ...t-typedef-and-use-grub_size_t-instea.patch | 2 +- ...x-reading-label-lvd.ident-is-dstring.patch | 2 +- ...b-core-fs-udf.c-Add-support-for-UUID.patch | 2 +- ...orriso-presence-before-doing-anythin.patch | 2 +- 0055-Fail-if-xorriso-failed.patch | 2 +- ...efi-refactor-grub_efi_allocate_pages.patch | 2 +- 0057-Remove-grub_efi_allocate_pages.patch | 2 +- 0058-efi-move-fdt-helper-library.patch | 2 +- 0059-efi-Add-GRUB_PE32_MAGIC-definition.patch | 2 +- ...inux-loader-improve-type-portability.patch | 2 +- ...allocation-type-to-GRUB_EFI_LOADER_C.patch | 2 +- ...RM_-definitions-when-handling-term-c.patch | 2 +- ...B_GZ-prefix-to-gzio-specific-defines.patch | 2 +- 0064-info-in-builddir.patch | 2 +- 0065-re-write-.gitignore.patch | 2 +- ...ient-architecture-CAS-reboot-support.patch | 2 +- ...nsole-display-attr-when-clear-screen.patch | 2 +- ...video-support-for-IBM-power-machines.patch | 2 +- ...when-generating-configuration-by-gru.patch | 2 +- 0070-Move-bash-completion-script-922997.patch | 2 +- 0071-Update-to-minilzo-2.08.patch | 2 +- ...o-include-entries-by-title-not-just-.patch | 2 +- 0073-Add-GRUB_DISABLE_UUID.patch | 2 +- 0074-Make-exit-take-a-return-code.patch | 2 +- ...pot-as-binary-so-git-won-t-try-to-di.patch | 2 +- ...es-load-an-env-block-from-a-variable.patch | 2 +- ...HCP-client-ID-and-UUID-options-added.patch | 2 +- ...-trim-arp-packets-with-abnormal-size.patch | 2 +- ...Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch | 2 +- ...UEFI-operating-systems-returned-by-o.patch | 2 +- 0081-Migrate-PPC-from-Yaboot-to-Grub2.patch | 2 +- 0082-Add-fw_path-variable-revised.patch | 2 +- 0083-Add-support-for-linuxefi.patch | 2 +- ...xefi-and-initrdefi-where-appropriate.patch | 2 +- ...w-insmod-when-secure-boot-is-enabled.patch | 2 +- ...-hex-hex-straight-through-unmolested.patch | 2 +- 0087-Add-X-option-to-printf-functions.patch | 2 +- ...for-specific-config-file-for-netboot.patch | 2 +- ...g-module-to-parse-Boot-Loader-Specif.patch | 2 +- 0090-Don-t-write-messages-to-the-screen.patch | 2 +- 0091-Don-t-print-GNU-GRUB-header.patch | 2 +- 0092-Don-t-add-to-highlighted-row.patch | 2 +- 0093-Message-string-cleanups.patch | 2 +- ...ing-now-that-we-aren-t-displaying-it.patch | 2 +- ...t-indentation-for-the-term-help-text.patch | 2 +- 0096-Indent-menu-entries.patch | 2 +- 0097-Fix-margins.patch | 2 +- ...-1-for-our-right-hand-margin-so-line.patch | 2 +- ...-Use-linux16-when-appropriate-880840.patch | 2 +- 0100-Enable-pager-by-default.-985860.patch | 2 +- ...-on-serial-so-don-t-tell-the-user-to.patch | 2 +- ...n-t-say-GNU-Linux-in-generated-menus.patch | 2 +- ...-Don-t-draw-a-border-around-the-menu.patch | 2 +- ...andard-margin-for-the-timeout-string.patch | 2 +- ...rame-to-list-of-relocations-stripped.patch | 2 +- ...rk-with-our-changes-for-linux16-and-.patch | 2 +- ...on-t-print-during-fdt-loading-method.patch | 2 +- ...spaces-when-we-re-doing-our-cmdline-.patch | 2 +- ...password-to-boot-entries-generated-b.patch | 2 +- 0110-Don-t-emit-Booting-.-message.patch | 2 +- ...f-man-pages-with-slightly-nicer-ones.patch | 2 +- ...ix-when-fallback-searching-for-grub-.patch | 2 +- ...-before-grub.cfg-on-tftp-config-file.patch | 2 +- ...ert-function-to-support-NVMe-devices.patch | 2 +- ...M-Mustang-device-tree-for-hardware-t.patch | 2 +- ...device-tree-from-the-grub-default-fi.patch | 2 +- ...P-protocol-for-exclusive-use-by-grub.patch | 2 +- ...P-protocol-for-exclusive-use-by-grub.patch | 2 +- 0119-Add-grub_util_readlink.patch | 2 +- ...se-symlinks-including-those-across-d.patch | 2 +- ...CLASS-in-10_linux-from-etc-os-releas.patch | 2 +- ...t-ordering-for-.debug-and-rescue-ker.patch | 2 +- 0123-Load-arm-with-SB-enabled.patch | 2 +- 0124-Try-prefix-if-fw_path-doesn-t-work.patch | 2 +- ...-grub.cfg-netboot-selection-order-11.patch | 2 +- ...-Package-Sort-for-grub2-mkconfig-112.patch | 2 +- 0127-Handle-rssd-storage-devices.patch | 2 +- ...x16-initrd16-and-linuxefi-initrdefi-.patch | 2 +- ...fig-construct-titles-that-look-like-.patch | 2 +- ...ly-grub2-password-config-tool-985962.patch | 2 +- ...fig-construct-titles-that-look-like-.patch | 2 +- ...-configure.ac-and-grub-rpm-sort-play.patch | 2 +- 0133-tcp-add-window-scaling-support.patch | 2 +- ...net-retransmit-if-our-device-is-busy.patch | 2 +- ...out-actually-using-the-configured-ne.patch | 2 +- ...r-for-the-first-exclusive-reopen-of-.patch | 2 +- ...ue-when-reading-username-and-passwor.patch | 2 +- ...ub-password-will-not-be-read-1290803.patch | 2 +- ...ub-setpassword-documentation-1290799.patch | 2 +- ...le-issue-in-grub-setpassword-1294243.patch | 2 +- ...rsistent-RAM-and-unknown-possible-fu.patch | 2 +- 0142-efiemu-Fix-compilation-failure.patch | 2 +- ...P-protocol-for-exclusive-use-by-grub.patch | 2 +- 0144-Add-a-url-parser.patch | 2 +- ...net-and-bootp-add-support-for-dhcpv6.patch | 2 +- ...rnel-settings-and-use-it-in-10_linux.patch | 2 +- 0147-Normalize-slashes-in-tftp-paths.patch | 2 +- 0148-Fix-malformed-tftp-packets.patch | 2 +- 0149-Fix-race-in-EFI-validation.patch | 2 +- ...1374141-fix-incorrect-mask-for-ppc64.patch | 2 +- ...art-of-chainloader-target-if-present.patch | 2 +- ...ecureboot-support-on-efi-chainloader.patch | 2 +- ...loaders-that-link-in-efi-mode-honor-.patch | 2 +- 0154-Make-grub_fatal-also-backtrace.patch | 2 +- 0155-Rework-linux-command.patch | 2 +- 0156-Rework-linux16-command.patch | 2 +- 0157-Make-grub-editenv-build-again.patch | 2 +- ...ix-up-some-man-pages-rpmdiff-noticed.patch | 2 +- ...-work-some-intricacies-of-PE-loading.patch | 2 +- ...-of-efi-chainload-so-non-sb-cases-wo.patch | 2 +- ...-double-free-on-verification-failure.patch | 2 +- ...machine-type-test-in-30_os-prober.in.patch | 2 +- ...fix-wrong-sanity-check-in-relocate_c.patch | 2 +- ...truncate-overlong-relocation-section.patch | 2 +- 0165-linuxefi-minor-cleanups.patch | 2 +- ...rch-64-on-32-boot-in-linuxefi-loader.patch | 2 +- 0167-Fix-up-linux-params-usage.patch | 2 +- 0168-Make-exit-take-a-return-code.patch | 2 +- ...fdt-has-address-cells-and-size-cells.patch | 2 +- ...rintf-in-the-secure-boot-verify-code.patch | 2 +- ...fo-pages-say-grub2-where-appropriate.patch | 2 +- ...more-debug-info-in-our-module-loader.patch | 2 +- ...-chainloader-entries-don-t-try-any-x.patch | 2 +- ...-Add-ability-to-boot-from-subvolumes.patch | 2 +- ...port-btrfs_subvol-and-btrfs_subvolid.patch | 2 +- 0176-grub2-btrfs-03-follow_default.patch | 2 +- 0177-grub2-btrfs-04-grub2-install.patch | 2 +- 0178-grub2-btrfs-05-grub2-mkconfig.patch | 2 +- 0179-grub2-btrfs-06-subvol-mount.patch | 2 +- ...ootable-Snapshot-submenu-in-grub.cfg.patch | 2 +- ...subvol-name-scheme-to-support-old-sn.patch | 2 +- ...-correctly-with-btrfs-snapshots-bsc-.patch | 2 +- ...ocate_pool-and-grub_efi_free_pool-wr.patch | 2 +- ...fi_.-memory-helpers-where-reasonable.patch | 2 +- 0185-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch | 2 +- ...c-sized-arrays-since-we-don-t-build-.patch | 2 +- 0187-don-t-ignore-const.patch | 2 +- 0188-don-t-use-int-for-efi-status.patch | 2 +- ...INIT-declare-its-function-prototypes.patch | 2 +- ...p-some-errors-in-the-linuxefi-loader.patch | 2 +- 0191-editenv-handle-relative-symlinks.patch | 2 +- ...e-libgrub.pp-depend-on-config-util.h.patch | 2 +- ...-efi-as-HFS-on-ppc-machines-in-grub-.patch | 2 +- ...20_linux_xen.in-Add-xen_boot-command.patch | 2 +- ...-figure-out-whether-multiboot2-shoul.patch | 2 +- ...d-xen-or-multiboot-2-modules-as-need.patch | 2 +- ...lt-tsc-calibration-method-to-pmtimer.patch | 2 +- ...-calibration-not-take-51-seconds-to-.patch | 2 +- 0199-align-struct-efi_variable-better.patch | 2 +- 0200-Add-quicksort-implementation.patch | 2 +- ...nd-support-to-parse-BootLoaderSpec-c.patch | 2 +- 0202-Add-BLS-support-to-grub-mkconfig.patch | 2 +- ...d-grub_exit-definition-for-grub-emu-.patch | 2 +- ...-backtrace-on-grub_abort-for-grub-em.patch | 2 +- ...-blscfg-command-for-the-emu-platform.patch | 2 +- ...nux-and-initrd-commands-for-grub-emu.patch | 2 +- 0207-Fix-the-efidir-in-grub-setpassword.patch | 2 +- 0208-Add-grub2-switch-to-blscfg.patch | 2 +- 0209-Add-grub_debug_enabled.patch | 2 +- 0210-make-better-backtraces.patch | 2 +- ...w-our-startup-message-if-debug-is-se.patch | 2 +- ...-some-minor-include-path-weirdnesses.patch | 2 +- ...it-possible-to-enabled-build-id-sha1.patch | 2 +- ...f-grub_dprintf-without-the-file-line.patch | 2 +- ...dprintf-that-tells-us-load-addresses.patch | 2 +- ...scan-different-BLS-directories-on-EF.patch | 2 +- 0217-Core-TPM-support.patch | 2 +- 0218-Measure-kernel-initrd.patch | 2 +- 0219-Add-BIOS-boot-measurement.patch | 2 +- ...re-kernel-and-initrd-on-BIOS-systems.patch | 2 +- 0221-Measure-the-kernel-commandline.patch | 2 +- 0222-Measure-commands.patch | 2 +- ...Measure-multiboot-images-and-modules.patch | 8 +- 0224-Fix-boot-when-there-s-no-TPM.patch | 4 +- 0225-Rework-TPM-measurements.patch | 8 +- 0226-Fix-event-log-prefix.patch | 4 +- ...ot-menu-entry-as-default-when-using-.patch | 4 +- ...-when-compiling-for-platforms-other-.patch | 41 ++++ 0229-Make-TPM-errors-less-fatal.patch | 211 ++++++++++++++++++ grub.patches | 2 + grub2.spec | 5 +- 231 files changed, 494 insertions(+), 237 deletions(-) create mode 100644 0228-tpm-fix-warnings-when-compiling-for-platforms-other-.patch create mode 100644 0229-Make-TPM-errors-less-fatal.patch diff --git a/0001-Bump-version-to-2.03.patch b/0001-Bump-version-to-2.03.patch index 41e1e1a1..7f36a76b 100644 --- a/0001-Bump-version-to-2.03.patch +++ b/0001-Bump-version-to-2.03.patch @@ -1,7 +1,7 @@ From b0bad6fd9449d3333fe1ab58953c0e6c1ce12c0d Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Wed, 3 May 2017 11:55:52 +0200 -Subject: [PATCH 001/227] Bump version to 2.03 +Subject: [PATCH 001/229] Bump version to 2.03 --- configure.ac | 2 +- diff --git a/0002-Remove-bashisms-from-tests.patch b/0002-Remove-bashisms-from-tests.patch index 505c61a4..8ecfde1d 100644 --- a/0002-Remove-bashisms-from-tests.patch +++ b/0002-Remove-bashisms-from-tests.patch @@ -1,7 +1,7 @@ From 5a0c548ba388b343b0bb6d2a38888e7eac5bbb96 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 03:47:13 +0300 -Subject: [PATCH 002/227] Remove bashisms from tests. +Subject: [PATCH 002/229] Remove bashisms from tests. Those tests don't actually need bash. Just use common shebang. --- diff --git a/0003-fs-tester-make-sh-compatible.patch b/0003-fs-tester-make-sh-compatible.patch index 0100db86..59c40ed1 100644 --- a/0003-fs-tester-make-sh-compatible.patch +++ b/0003-fs-tester-make-sh-compatible.patch @@ -1,7 +1,7 @@ From 37865c2c4ad26cd5e947b08abf1fde8145699919 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 14:35:59 +0300 -Subject: [PATCH 003/227] fs-tester: make sh-compatible +Subject: [PATCH 003/229] fs-tester: make sh-compatible --- tests/util/grub-fs-tester.in | 306 ++++++++++++++++++++++++------------------- diff --git a/0004-support-busybox-date.patch b/0004-support-busybox-date.patch index 333c6dc8..993488b0 100644 --- a/0004-support-busybox-date.patch +++ b/0004-support-busybox-date.patch @@ -1,7 +1,7 @@ From b43b8cacc813c2c15347de1e35cc88d9aa912d22 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 14:31:36 +0300 -Subject: [PATCH 004/227] support busybox date. +Subject: [PATCH 004/229] support busybox date. Busybox date doesn't understand weekdays in -d input, so strip them beforehand. diff --git a/0005-Don-t-retrieve-fstime-when-it-s-not-useful.patch b/0005-Don-t-retrieve-fstime-when-it-s-not-useful.patch index 4c1ab602..590eccd3 100644 --- a/0005-Don-t-retrieve-fstime-when-it-s-not-useful.patch +++ b/0005-Don-t-retrieve-fstime-when-it-s-not-useful.patch @@ -1,7 +1,7 @@ From 6dec3a26b37e128ded5d912e08abc5cee1592499 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 21:24:05 +0300 -Subject: [PATCH 005/227] Don't retrieve fstime when it's not useful. +Subject: [PATCH 005/229] Don't retrieve fstime when it's not useful. --- tests/util/grub-fs-tester.in | 48 ++++++++++++++++++++++---------------------- diff --git a/0006-Support-lseek64.patch b/0006-Support-lseek64.patch index d6eb14bd..98c5c2d1 100644 --- a/0006-Support-lseek64.patch +++ b/0006-Support-lseek64.patch @@ -1,7 +1,7 @@ From 608bec51128008afb81c9e3f297283e9f830a146 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 20:21:05 +0300 -Subject: [PATCH 006/227] Support lseek64. +Subject: [PATCH 006/229] Support lseek64. Android doesn't have 64-bit off_t, so use off64_t instead. --- diff --git a/0007-Use-SHELL-rather-than-bin-sh.patch b/0007-Use-SHELL-rather-than-bin-sh.patch index a865082e..a69511b4 100644 --- a/0007-Use-SHELL-rather-than-bin-sh.patch +++ b/0007-Use-SHELL-rather-than-bin-sh.patch @@ -1,7 +1,7 @@ From c2ea443446b7feea868e54f94a87781f69820375 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 00:55:30 +0300 -Subject: [PATCH 007/227] Use $(SHELL) rather than /bin/sh. +Subject: [PATCH 007/229] Use $(SHELL) rather than /bin/sh. /bin/sh doesn't exist under termux. --- diff --git a/0008-po-Use-SHELL-rather-than-bin-sh.patch b/0008-po-Use-SHELL-rather-than-bin-sh.patch index eb26b856..c7270410 100644 --- a/0008-po-Use-SHELL-rather-than-bin-sh.patch +++ b/0008-po-Use-SHELL-rather-than-bin-sh.patch @@ -1,7 +1,7 @@ From 4341f82af0b61d3dfbe675670d4105dc759c0df3 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 14:54:03 +0300 -Subject: [PATCH 008/227] po: Use @SHELL@ rather than /bin/sh. +Subject: [PATCH 008/229] po: Use @SHELL@ rather than /bin/sh. /bin/sh might not exist. --- diff --git a/0009-Add-termux-path-to-dict.patch b/0009-Add-termux-path-to-dict.patch index 23386fe9..a16de1dc 100644 --- a/0009-Add-termux-path-to-dict.patch +++ b/0009-Add-termux-path-to-dict.patch @@ -1,7 +1,7 @@ From 1073ddb12078f3c8edbdb74bb8f5afc674983f40 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 14:52:48 +0300 -Subject: [PATCH 009/227] Add termux path to dict. +Subject: [PATCH 009/229] Add termux path to dict. --- tests/util/grub-fs-tester.in | 2 +- diff --git a/0010-Fix-shebang-for-termux.patch b/0010-Fix-shebang-for-termux.patch index 516e5739..c06f9796 100644 --- a/0010-Fix-shebang-for-termux.patch +++ b/0010-Fix-shebang-for-termux.patch @@ -1,7 +1,7 @@ From a827807a1330d5ad619faa103bc7f12d89fc8bee Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Sun, 22 Jan 2017 20:22:34 +0300 -Subject: [PATCH 010/227] Fix shebang for termux. +Subject: [PATCH 010/229] Fix shebang for termux. Termux doesn't have a /bin/sh. So we needto use $SHELL. Keep /bin/sh as much as possible. diff --git a/0011-Add-strtoull-test.patch b/0011-Add-strtoull-test.patch index 0f9b45f1..3aa106ca 100644 --- a/0011-Add-strtoull-test.patch +++ b/0011-Add-strtoull-test.patch @@ -1,7 +1,7 @@ From ede6c9689395499f98a4c14d76b97151b4de5f54 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Wed, 3 May 2017 12:58:15 +0200 -Subject: [PATCH 011/227] Add strtoull test. +Subject: [PATCH 011/229] Add strtoull test. --- grub-core/Makefile.core.def | 5 +++++ diff --git a/0012-strtoull-Fix-behaviour-on-chars-between-9-and-a.patch b/0012-strtoull-Fix-behaviour-on-chars-between-9-and-a.patch index ea96d457..4a73b40b 100644 --- a/0012-strtoull-Fix-behaviour-on-chars-between-9-and-a.patch +++ b/0012-strtoull-Fix-behaviour-on-chars-between-9-and-a.patch @@ -1,7 +1,7 @@ From dc6e1b5af83eb1c4290baf97c2d221c0865127be Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Wed, 10 Aug 2016 17:49:42 +0200 -Subject: [PATCH 012/227] strtoull: Fix behaviour on chars between '9' and 'a'. +Subject: [PATCH 012/229] strtoull: Fix behaviour on chars between '9' and 'a'. Reported by: Aaron Miller --- diff --git a/0013-Add-Virtual-LAN-support.patch b/0013-Add-Virtual-LAN-support.patch index ba64ee5a..e1fa79d2 100644 --- a/0013-Add-Virtual-LAN-support.patch +++ b/0013-Add-Virtual-LAN-support.patch @@ -1,7 +1,7 @@ From d9f7de0ae3c0c09cff7257c55418450261f3e082 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Mon, 23 Dec 2013 12:32:02 -0200 -Subject: [PATCH 013/227] Add Virtual LAN support. +Subject: [PATCH 013/229] Add Virtual LAN support. This patch adds support for virtual LAN (VLAN) tagging. VLAN tagging allows multiple VLANs in a bridged network to share the same physical network link diff --git a/0014-mkimage-Pass-layout-to-mkimage_generate_elfXX-rather.patch b/0014-mkimage-Pass-layout-to-mkimage_generate_elfXX-rather.patch index 1f37380d..1bb19f80 100644 --- a/0014-mkimage-Pass-layout-to-mkimage_generate_elfXX-rather.patch +++ b/0014-mkimage-Pass-layout-to-mkimage_generate_elfXX-rather.patch @@ -1,7 +1,7 @@ From a35ac854308b0af7c86c2c7b199f6abdfa2110b0 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 17:32:15 +0200 -Subject: [PATCH 014/227] mkimage: Pass layout to mkimage_generate_elfXX rather +Subject: [PATCH 014/229] mkimage: Pass layout to mkimage_generate_elfXX rather than some fields. This allows easier extension of this function without having too long of diff --git a/0015-Refactor-arm-uboot-code-to-make-it-genereic.patch b/0015-Refactor-arm-uboot-code-to-make-it-genereic.patch index 866b86b0..b22b922e 100644 --- a/0015-Refactor-arm-uboot-code-to-make-it-genereic.patch +++ b/0015-Refactor-arm-uboot-code-to-make-it-genereic.patch @@ -1,7 +1,7 @@ From d08c9685149e7788001ac9a209baa1d84c3628e0 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 17:47:57 +0200 -Subject: [PATCH 015/227] Refactor arm-uboot code to make it genereic. +Subject: [PATCH 015/229] Refactor arm-uboot code to make it genereic. arm-coreboot startup code can be very similar to arm-uboot but current code has U-Boot specific references. So split U-Boot part from generic part. diff --git a/0016-coreboot-Split-parts-that-are-platform-independent.patch b/0016-coreboot-Split-parts-that-are-platform-independent.patch index 4351c320..211cae42 100644 --- a/0016-coreboot-Split-parts-that-are-platform-independent.patch +++ b/0016-coreboot-Split-parts-that-are-platform-independent.patch @@ -1,7 +1,7 @@ From 461bfab7b7e47fd0a76bf6076a438af1b7e2184a Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 19:06:22 +0200 -Subject: [PATCH 016/227] coreboot: Split parts that are platform-independent. +Subject: [PATCH 016/229] coreboot: Split parts that are platform-independent. We currently assume that coreboot is always i386, it's no longer the case, so split i386-coreboot parts from generic coreboot code. diff --git a/0017-Rename-uboot-halt.c-to-dummy-halt.c.patch b/0017-Rename-uboot-halt.c-to-dummy-halt.c.patch index 7c483357..2f891de0 100644 --- a/0017-Rename-uboot-halt.c-to-dummy-halt.c.patch +++ b/0017-Rename-uboot-halt.c-to-dummy-halt.c.patch @@ -1,7 +1,7 @@ From 1daa716c7017f1858de117a20a31da66815435c5 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 19:31:55 +0200 -Subject: [PATCH 017/227] Rename uboot/halt.c to dummy/halt.c. +Subject: [PATCH 017/229] Rename uboot/halt.c to dummy/halt.c. It's not U-Boot specific and it's a stub. --- diff --git a/0018-Rename-uboot-datetime-to-dummy-datetime.patch b/0018-Rename-uboot-datetime-to-dummy-datetime.patch index 31538d23..e4437079 100644 --- a/0018-Rename-uboot-datetime-to-dummy-datetime.patch +++ b/0018-Rename-uboot-datetime-to-dummy-datetime.patch @@ -1,7 +1,7 @@ From 9808c3ef956c6472a96790b60cf74f4eaa742010 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 19:37:29 +0200 -Subject: [PATCH 018/227] Rename uboot/datetime to dummy/datetime. +Subject: [PATCH 018/229] Rename uboot/datetime to dummy/datetime. It's just a stub and is not UBoot-specific. --- diff --git a/0019-arm-coreboot-Start-new-port.patch b/0019-arm-coreboot-Start-new-port.patch index 113b451c..e5ee2e89 100644 --- a/0019-arm-coreboot-Start-new-port.patch +++ b/0019-arm-coreboot-Start-new-port.patch @@ -1,7 +1,7 @@ From 24e37a885269bdec9b27babf1da0bba3692d55c0 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 20:53:28 +0200 -Subject: [PATCH 019/227] arm-coreboot: Start new port. +Subject: [PATCH 019/229] arm-coreboot: Start new port. --- configure.ac | 2 + diff --git a/0020-Add-support-for-device-tree-based-drivers.patch b/0020-Add-support-for-device-tree-based-drivers.patch index a0a4d739..c88e91f5 100644 --- a/0020-Add-support-for-device-tree-based-drivers.patch +++ b/0020-Add-support-for-device-tree-based-drivers.patch @@ -1,7 +1,7 @@ From fcbb723d4b1f7ad4687191562621dd0eb25f4d9e Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:19:59 +0200 -Subject: [PATCH 020/227] Add support for device-tree-based drivers. +Subject: [PATCH 020/229] Add support for device-tree-based drivers. --- grub-core/Makefile.core.def | 2 + diff --git a/0021-arm-coreboot-Support-for-vexpress-timer.patch b/0021-arm-coreboot-Support-for-vexpress-timer.patch index ced2613c..24ead3c4 100644 --- a/0021-arm-coreboot-Support-for-vexpress-timer.patch +++ b/0021-arm-coreboot-Support-for-vexpress-timer.patch @@ -1,7 +1,7 @@ From 5a865b37866ee8cd64c080bc6fb1e537f8e2b3c6 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:26:36 +0200 -Subject: [PATCH 021/227] arm-coreboot: Support for vexpress timer. +Subject: [PATCH 021/229] arm-coreboot: Support for vexpress timer. --- grub-core/kern/arm/coreboot/timer.c | 36 ++++++++++++++++++++++++++++++++++++ diff --git a/0022-arm-coreboot-Export-FDT-routines.patch b/0022-arm-coreboot-Export-FDT-routines.patch index f7e27c36..828c9537 100644 --- a/0022-arm-coreboot-Export-FDT-routines.patch +++ b/0022-arm-coreboot-Export-FDT-routines.patch @@ -1,7 +1,7 @@ From ac6b41b89fbb82a3ba843a7ed19115d81432b604 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:29:48 +0200 -Subject: [PATCH 022/227] arm-coreboot: Export FDT routines. +Subject: [PATCH 022/229] arm-coreboot: Export FDT routines. We need to use them from modules as well. --- diff --git a/0023-at_keyboard-Split-protocol-from-controller-code.patch b/0023-at_keyboard-Split-protocol-from-controller-code.patch index 365e0df0..1718a2cb 100644 --- a/0023-at_keyboard-Split-protocol-from-controller-code.patch +++ b/0023-at_keyboard-Split-protocol-from-controller-code.patch @@ -1,7 +1,7 @@ From 216950a4eea1a1ead1c28eaca94e34ea2ef2ad19 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:41:22 +0200 -Subject: [PATCH 023/227] at_keyboard: Split protocol from controller code. +Subject: [PATCH 023/229] at_keyboard: Split protocol from controller code. On vexpress controller is different but protocol is the same, so reuse the code. diff --git a/0024-arm_coreboot-Support-keyboard-for-vexpress.patch b/0024-arm_coreboot-Support-keyboard-for-vexpress.patch index e09cc136..6e238852 100644 --- a/0024-arm_coreboot-Support-keyboard-for-vexpress.patch +++ b/0024-arm_coreboot-Support-keyboard-for-vexpress.patch @@ -1,7 +1,7 @@ From 848bed9d92cf20e9f25db4c69a20efad23996ca0 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:42:37 +0200 -Subject: [PATCH 024/227] arm_coreboot: Support keyboard for vexpress. +Subject: [PATCH 024/229] arm_coreboot: Support keyboard for vexpress. --- grub-core/Makefile.core.def | 3 + diff --git a/0025-arm_coreboot-Support-grub-mkstandalone.patch b/0025-arm_coreboot-Support-grub-mkstandalone.patch index 255f415a..53f34d51 100644 --- a/0025-arm_coreboot-Support-grub-mkstandalone.patch +++ b/0025-arm_coreboot-Support-grub-mkstandalone.patch @@ -1,7 +1,7 @@ From 3edabad8fefb112cc4b2d43be6e97d43c909ceee Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:59:48 +0200 -Subject: [PATCH 025/227] arm_coreboot: Support grub-mkstandalone. +Subject: [PATCH 025/229] arm_coreboot: Support grub-mkstandalone. --- util/grub-install-common.c | 12 ++++++++++-- diff --git a/0026-arm_coreboot-Support-loading-linux-images.patch b/0026-arm_coreboot-Support-loading-linux-images.patch index c080d144..96e11ba7 100644 --- a/0026-arm_coreboot-Support-loading-linux-images.patch +++ b/0026-arm_coreboot-Support-loading-linux-images.patch @@ -1,7 +1,7 @@ From 656c3b0d7fbe23f0e1ab561c8faa4ac4a37364d1 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 22:00:06 +0200 -Subject: [PATCH 026/227] arm_coreboot: Support loading linux images. +Subject: [PATCH 026/229] arm_coreboot: Support loading linux images. --- grub-core/loader/arm/linux.c | 132 ++++++++++++++++++++++--------------------- diff --git a/0027-arm_coreboot-Support-DMA.patch b/0027-arm_coreboot-Support-DMA.patch index 98dd9327..62d4e5cf 100644 --- a/0027-arm_coreboot-Support-DMA.patch +++ b/0027-arm_coreboot-Support-DMA.patch @@ -1,7 +1,7 @@ From 265292f2b0da0eb414c409871ba0f94a99ec33c1 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 22:06:04 +0200 -Subject: [PATCH 027/227] arm_coreboot: Support DMA. +Subject: [PATCH 027/229] arm_coreboot: Support DMA. This is needed to support USB and some other busses. --- diff --git a/0028-ehci-Split-core-code-from-PCI-part.patch b/0028-ehci-Split-core-code-from-PCI-part.patch index a133bff5..7c331a58 100644 --- a/0028-ehci-Split-core-code-from-PCI-part.patch +++ b/0028-ehci-Split-core-code-from-PCI-part.patch @@ -1,7 +1,7 @@ From 058df7b5a9cc7aaa9872eaa916b715544a8f9840 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 22:10:26 +0200 -Subject: [PATCH 028/227] ehci: Split core code from PCI part. +Subject: [PATCH 028/229] ehci: Split core code from PCI part. On ARM often EHCI is present without PCI and just declared in device tree. So splitcore from PCI part. diff --git a/0029-arm_coreboot-Support-EHCI.patch b/0029-arm_coreboot-Support-EHCI.patch index faa8b706..ce24a168 100644 --- a/0029-arm_coreboot-Support-EHCI.patch +++ b/0029-arm_coreboot-Support-EHCI.patch @@ -1,7 +1,7 @@ From d11ced1e1fb93676942e51618eb53c140f541890 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 22:14:28 +0200 -Subject: [PATCH 029/227] arm_coreboot: Support EHCI. +Subject: [PATCH 029/229] arm_coreboot: Support EHCI. --- grub-core/Makefile.core.def | 2 ++ diff --git a/0030-Fix-bug-on-FDT-nodes-with-compatible-property.patch b/0030-Fix-bug-on-FDT-nodes-with-compatible-property.patch index 8c7209ba..0a2b2f4f 100644 --- a/0030-Fix-bug-on-FDT-nodes-with-compatible-property.patch +++ b/0030-Fix-bug-on-FDT-nodes-with-compatible-property.patch @@ -1,7 +1,7 @@ From 4f8471532d454b2db96434c28bf7105ed69e0f4d Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 08:39:40 +0200 -Subject: [PATCH 030/227] Fix bug on FDT nodes with compatible property +Subject: [PATCH 030/229] Fix bug on FDT nodes with compatible property --- grub-core/bus/fdt.c | 2 ++ diff --git a/0031-fdtbus-Add-ability-to-send-receive-messages-on-paren.patch b/0031-fdtbus-Add-ability-to-send-receive-messages-on-paren.patch index c8254ffe..94985b06 100644 --- a/0031-fdtbus-Add-ability-to-send-receive-messages-on-paren.patch +++ b/0031-fdtbus-Add-ability-to-send-receive-messages-on-paren.patch @@ -1,7 +1,7 @@ From c4313c812dc14e82a774b580b5e34d40e7f3fae6 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 08:40:29 +0200 -Subject: [PATCH 031/227] fdtbus: Add ability to send/receive messages on +Subject: [PATCH 031/229] fdtbus: Add ability to send/receive messages on parent busses. --- diff --git a/0032-rk3288_spi-Add-SPI-driver.patch b/0032-rk3288_spi-Add-SPI-driver.patch index c646634e..7784836b 100644 --- a/0032-rk3288_spi-Add-SPI-driver.patch +++ b/0032-rk3288_spi-Add-SPI-driver.patch @@ -1,7 +1,7 @@ From b0b1b81a11f8bae8ab9e8edd87ac3f4f7949d03b Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 08:42:14 +0200 -Subject: [PATCH 032/227] rk3288_spi: Add SPI driver +Subject: [PATCH 032/229] rk3288_spi: Add SPI driver --- grub-core/Makefile.core.def | 1 + diff --git a/0033-arm_coreboot-Add-Chromebook-keyboard-driver.patch b/0033-arm_coreboot-Add-Chromebook-keyboard-driver.patch index 4919eb69..21b30f42 100644 --- a/0033-arm_coreboot-Add-Chromebook-keyboard-driver.patch +++ b/0033-arm_coreboot-Add-Chromebook-keyboard-driver.patch @@ -1,7 +1,7 @@ From 5c3fd1b135bd73c8e3467b9b635b25ca4d360a19 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 08:47:34 +0200 -Subject: [PATCH 033/227] arm_coreboot: Add Chromebook keyboard driver. +Subject: [PATCH 033/229] arm_coreboot: Add Chromebook keyboard driver. --- grub-core/term/arm/cros.c | 125 +++++++++++++++++++++++ diff --git a/0034-Missing-parts-of-previous-commit.patch b/0034-Missing-parts-of-previous-commit.patch index 0fcd8989..c59aed5a 100644 --- a/0034-Missing-parts-of-previous-commit.patch +++ b/0034-Missing-parts-of-previous-commit.patch @@ -1,7 +1,7 @@ From c6eaa982d12e3cfc5465dda5ea372774188b6b81 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 09:02:15 +0200 -Subject: [PATCH 034/227] Missing parts of previous commit +Subject: [PATCH 034/229] Missing parts of previous commit --- grub-core/Makefile.core.def | 2 ++ diff --git a/0035-coreboot-Changed-cbmemc-to-support-updated-console-f.patch b/0035-coreboot-Changed-cbmemc-to-support-updated-console-f.patch index 31e00e54..5d9117c7 100644 --- a/0035-coreboot-Changed-cbmemc-to-support-updated-console-f.patch +++ b/0035-coreboot-Changed-cbmemc-to-support-updated-console-f.patch @@ -1,7 +1,7 @@ From 70b555a52a065b2beb91e6fc97a6b358c931b303 Mon Sep 17 00:00:00 2001 From: Julius Werner Date: Tue, 9 May 2017 09:03:02 +0200 -Subject: [PATCH 035/227] coreboot: Changed cbmemc to support updated console +Subject: [PATCH 035/229] coreboot: Changed cbmemc to support updated console format from coreboot. --- diff --git a/0036-at_keyboard-Fix-falco-chromebook-case.patch b/0036-at_keyboard-Fix-falco-chromebook-case.patch index ec5dbb87..d1aed256 100644 --- a/0036-at_keyboard-Fix-falco-chromebook-case.patch +++ b/0036-at_keyboard-Fix-falco-chromebook-case.patch @@ -1,7 +1,7 @@ From c4b8bec5fee4e30a165fd14a188cf3ab8eccd095 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 14:27:52 +0200 -Subject: [PATCH 036/227] at_keyboard: Fix falco chromebook case. +Subject: [PATCH 036/229] at_keyboard: Fix falco chromebook case. EC is slow, so we need few delays for it to toggle the bits correctly. diff --git a/0037-sparc64-Close-cdboot-ihandle.patch b/0037-sparc64-Close-cdboot-ihandle.patch index 0eb9d527..7cdf2524 100644 --- a/0037-sparc64-Close-cdboot-ihandle.patch +++ b/0037-sparc64-Close-cdboot-ihandle.patch @@ -1,7 +1,7 @@ From bd4e40aadded7093908d786d03b4acf60b7b1707 Mon Sep 17 00:00:00 2001 From: Eric Snowberg Date: Thu, 11 May 2017 18:42:23 -0700 -Subject: [PATCH 037/227] sparc64: Close cdboot ihandle +Subject: [PATCH 037/229] sparc64: Close cdboot ihandle The ihandle is left open with a cd-core image. This will cause a delay booting grub from a virtual cdrom in a LDOM. It will also cause problems diff --git a/0038-arm64-xen_boot-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch b/0038-arm64-xen_boot-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch index 4ecac6cc..3e2faa81 100644 --- a/0038-arm64-xen_boot-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch +++ b/0038-arm64-xen_boot-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch @@ -1,7 +1,7 @@ From ae5817f1dcbf0b99f7a849f56afe442165317840 Mon Sep 17 00:00:00 2001 From: Julien Grall Date: Fri, 19 Feb 2016 16:28:52 +0000 -Subject: [PATCH 038/227] arm64/xen_boot: Fix Xen boot using GRUB2 on AARCH64 +Subject: [PATCH 038/229] arm64/xen_boot: Fix Xen boot using GRUB2 on AARCH64 Xen is currently crashing because of malformed compatible property for the boot module. This is because the property string is not diff --git a/0039-arm64-Add-nounzip-option-support-in-xen_module-comma.patch b/0039-arm64-Add-nounzip-option-support-in-xen_module-comma.patch index 84005bcd..7ea461df 100644 --- a/0039-arm64-Add-nounzip-option-support-in-xen_module-comma.patch +++ b/0039-arm64-Add-nounzip-option-support-in-xen_module-comma.patch @@ -1,7 +1,7 @@ From 8eed7be8a61c295df700e918744a984162378ca9 Mon Sep 17 00:00:00 2001 From: Fu Wei Date: Sun, 14 May 2017 15:43:45 +0800 -Subject: [PATCH 039/227] arm64: Add "--nounzip" option support in xen_module +Subject: [PATCH 039/229] arm64: Add "--nounzip" option support in xen_module command This patch adds "--nounzip" option support in order to diff --git a/0040-util-grub.d-20_linux_xen.in-Add-xen_boot-command-sup.patch b/0040-util-grub.d-20_linux_xen.in-Add-xen_boot-command-sup.patch index ee4bb02e..85aab462 100644 --- a/0040-util-grub.d-20_linux_xen.in-Add-xen_boot-command-sup.patch +++ b/0040-util-grub.d-20_linux_xen.in-Add-xen_boot-command-sup.patch @@ -1,7 +1,7 @@ From d33045ce7ffcb7c1e4a60c14d5ca64b36e3c5abe Mon Sep 17 00:00:00 2001 From: Fu Wei Date: Sun, 14 May 2017 15:43:46 +0800 -Subject: [PATCH 040/227] util/grub.d/20_linux_xen.in: Add xen_boot command +Subject: [PATCH 040/229] util/grub.d/20_linux_xen.in: Add xen_boot command support for aarch64 This patch adds the support of xen_boot command for aarch64: diff --git a/0041-arm64-Update-the-introduction-of-Xen-boot-commands-i.patch b/0041-arm64-Update-the-introduction-of-Xen-boot-commands-i.patch index 55470640..79ac53dc 100644 --- a/0041-arm64-Update-the-introduction-of-Xen-boot-commands-i.patch +++ b/0041-arm64-Update-the-introduction-of-Xen-boot-commands-i.patch @@ -1,7 +1,7 @@ From 26c2f306fd425d2c0348023b8dcb7eb40a01851a Mon Sep 17 00:00:00 2001 From: Fu Wei Date: Sun, 14 May 2017 15:43:47 +0800 -Subject: [PATCH 041/227] arm64: Update the introduction of Xen boot commands +Subject: [PATCH 041/229] arm64: Update the introduction of Xen boot commands in docs/grub.texi delete: xen_linux, xen_initrd, xen_xsm diff --git a/0042-sparc64-Don-t-use-devspec-to-determine-the-OBP-path.patch b/0042-sparc64-Don-t-use-devspec-to-determine-the-OBP-path.patch index c383ae58..3e3d7cb5 100644 --- a/0042-sparc64-Don-t-use-devspec-to-determine-the-OBP-path.patch +++ b/0042-sparc64-Don-t-use-devspec-to-determine-the-OBP-path.patch @@ -1,7 +1,7 @@ From f8679cedff703b437171f4708d46adbfcff80a65 Mon Sep 17 00:00:00 2001 From: Eric Snowberg Date: Thu, 18 May 2017 17:10:22 -0600 -Subject: [PATCH 042/227] sparc64: Don't use devspec to determine the OBP path +Subject: [PATCH 042/229] sparc64: Don't use devspec to determine the OBP path Don't use devspec to determine the OBP path on SPARC hardware. Within all versions of Linux on SPARC, the devspec returns one of three values: diff --git a/0043-Allow-GRUB-to-mount-ext2-3-4-filesystems-that-have-t.patch b/0043-Allow-GRUB-to-mount-ext2-3-4-filesystems-that-have-t.patch index df596a51..addb32b5 100644 --- a/0043-Allow-GRUB-to-mount-ext2-3-4-filesystems-that-have-t.patch +++ b/0043-Allow-GRUB-to-mount-ext2-3-4-filesystems-that-have-t.patch @@ -1,7 +1,7 @@ From 734668238fcc0ef691a080839e04f33854fa133a Mon Sep 17 00:00:00 2001 From: Eric Biggers Date: Thu, 29 Jun 2017 13:27:49 +0000 -Subject: [PATCH 043/227] Allow GRUB to mount ext2/3/4 filesystems that have +Subject: [PATCH 043/229] Allow GRUB to mount ext2/3/4 filesystems that have the encryption feature. On such a filesystem, inodes may have EXT4_ENCRYPT_FLAG set. diff --git a/0044-ehci-Fix-compilation-for-amd64.patch b/0044-ehci-Fix-compilation-for-amd64.patch index f8031f69..448429ae 100644 --- a/0044-ehci-Fix-compilation-for-amd64.patch +++ b/0044-ehci-Fix-compilation-for-amd64.patch @@ -1,7 +1,7 @@ From edb37fb30bbc8a3b6bec67911c7200e4eb071127 Mon Sep 17 00:00:00 2001 From: phcoder Date: Sun, 9 Jul 2017 20:58:31 +0200 -Subject: [PATCH 044/227] ehci: Fix compilation for amd64 +Subject: [PATCH 044/229] ehci: Fix compilation for amd64 --- grub-core/bus/usb/ehci.c | 8 ++++---- diff --git a/0045-cache-Fix-compilation-for-ppc-sparc-and-arm64.patch b/0045-cache-Fix-compilation-for-ppc-sparc-and-arm64.patch index 13f3812f..a65035bd 100644 --- a/0045-cache-Fix-compilation-for-ppc-sparc-and-arm64.patch +++ b/0045-cache-Fix-compilation-for-ppc-sparc-and-arm64.patch @@ -1,7 +1,7 @@ From d8901e3ba115d705c9c08ecedd201aca8b4867b8 Mon Sep 17 00:00:00 2001 From: phcoder Date: Sun, 9 Jul 2017 20:59:15 +0200 -Subject: [PATCH 045/227] cache: Fix compilation for ppc, sparc and arm64 +Subject: [PATCH 045/229] cache: Fix compilation for ppc, sparc and arm64 --- include/grub/cache.h | 4 +++- diff --git a/0046-ehci-Fix-compilation-on-i386.patch b/0046-ehci-Fix-compilation-on-i386.patch index 12407413..2a58cbb8 100644 --- a/0046-ehci-Fix-compilation-on-i386.patch +++ b/0046-ehci-Fix-compilation-on-i386.patch @@ -1,7 +1,7 @@ From 284afab081ef7ed7db2c59151853aa3c92d988f2 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Sun, 9 Jul 2017 21:31:19 +0200 -Subject: [PATCH 046/227] ehci: Fix compilation on i386 +Subject: [PATCH 046/229] ehci: Fix compilation on i386 --- grub-core/bus/usb/ehci.c | 4 ++-- diff --git a/0047-crypto-Fix-use-after-free.patch b/0047-crypto-Fix-use-after-free.patch index c326f1f1..1180bee6 100644 --- a/0047-crypto-Fix-use-after-free.patch +++ b/0047-crypto-Fix-use-after-free.patch @@ -1,7 +1,7 @@ From a0fe0c26aa8a1c0ad66d9527611bd726b849c623 Mon Sep 17 00:00:00 2001 From: AppChecker Date: Sun, 9 Jul 2017 21:57:35 +0200 -Subject: [PATCH 047/227] crypto: Fix use after free. +Subject: [PATCH 047/229] crypto: Fix use after free. Reported by: AppChecker Transformed to patch by: Satish Govindarajan diff --git a/0048-arm-efi-Fix-compilation.patch b/0048-arm-efi-Fix-compilation.patch index cf01fd89..d6865e26 100644 --- a/0048-arm-efi-Fix-compilation.patch +++ b/0048-arm-efi-Fix-compilation.patch @@ -1,7 +1,7 @@ From cb8b7e4e36bf32dccbbba8252aa44ad3ada4fbc1 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Sun, 9 Jul 2017 21:48:37 +0000 -Subject: [PATCH 048/227] arm-efi: Fix compilation +Subject: [PATCH 048/229] arm-efi: Fix compilation --- grub-core/loader/arm/linux.c | 8 ++++---- diff --git a/0049-fdt-silence-clang-warning.patch b/0049-fdt-silence-clang-warning.patch index 65d5856e..d6ed0ba7 100644 --- a/0049-fdt-silence-clang-warning.patch +++ b/0049-fdt-silence-clang-warning.patch @@ -1,7 +1,7 @@ From 68d54b55f49249c5e0517bf189f0f3df7ee6a36f Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 10 Jul 2017 01:34:22 +0000 -Subject: [PATCH 049/227] fdt: silence clang warning. +Subject: [PATCH 049/229] fdt: silence clang warning. --- grub-core/lib/fdt.c | 3 ++- diff --git a/0050-Fix-a-segfault-in-lsefi.patch b/0050-Fix-a-segfault-in-lsefi.patch index e03d9f62..d75b644a 100644 --- a/0050-Fix-a-segfault-in-lsefi.patch +++ b/0050-Fix-a-segfault-in-lsefi.patch @@ -1,7 +1,7 @@ From e8ab5a1a9e2889eb59d1fa494ba441a53698dcd2 Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Wed, 19 Jul 2017 15:47:41 -0400 -Subject: [PATCH 050/227] Fix a segfault in lsefi +Subject: [PATCH 050/229] Fix a segfault in lsefi when protocols_per_handle returns error, we can't use the pointers we passed to it, and that includes trusting num_protocols. diff --git a/0051-zfs-remove-size_t-typedef-and-use-grub_size_t-instea.patch b/0051-zfs-remove-size_t-typedef-and-use-grub_size_t-instea.patch index 02fae778..93e68465 100644 --- a/0051-zfs-remove-size_t-typedef-and-use-grub_size_t-instea.patch +++ b/0051-zfs-remove-size_t-typedef-and-use-grub_size_t-instea.patch @@ -1,7 +1,7 @@ From fa42786264cef98c56e972b3bb6b8448000e1c70 Mon Sep 17 00:00:00 2001 From: Pete Batard Date: Thu, 3 Aug 2017 15:46:15 +0100 -Subject: [PATCH 051/227] zfs: remove size_t typedef and use grub_size_t +Subject: [PATCH 051/229] zfs: remove size_t typedef and use grub_size_t instead * Prevents some toolchains from issuing a warning on size_t redef. diff --git a/0052-udf-Fix-reading-label-lvd.ident-is-dstring.patch b/0052-udf-Fix-reading-label-lvd.ident-is-dstring.patch index 7abba792..749f07a8 100644 --- a/0052-udf-Fix-reading-label-lvd.ident-is-dstring.patch +++ b/0052-udf-Fix-reading-label-lvd.ident-is-dstring.patch @@ -1,7 +1,7 @@ From 76188809d5ca40c5285b0ab202b5edea7be3f04d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pali=20Roh=C3=A1r?= Date: Thu, 22 Jun 2017 14:33:17 +0200 -Subject: [PATCH 052/227] udf: Fix reading label, lvd.ident is dstring +Subject: [PATCH 052/229] udf: Fix reading label, lvd.ident is dstring UDF dstring has stored length in the last byte of buffer. Therefore last byte is not part of recorded characters. And empty string in dstring is diff --git a/0053-grub-core-fs-udf.c-Add-support-for-UUID.patch b/0053-grub-core-fs-udf.c-Add-support-for-UUID.patch index 85322f2c..e204091a 100644 --- a/0053-grub-core-fs-udf.c-Add-support-for-UUID.patch +++ b/0053-grub-core-fs-udf.c-Add-support-for-UUID.patch @@ -1,7 +1,7 @@ From 435fa75e01ef40917239c7f775e505e86f70d202 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pali=20Roh=C3=A1r?= Date: Thu, 22 Jun 2017 14:42:16 +0200 -Subject: [PATCH 053/227] * grub-core/fs/udf.c: Add support for UUID +Subject: [PATCH 053/229] * grub-core/fs/udf.c: Add support for UUID Use same algorithm as in libblkid from util-linux v2.30. diff --git a/0054-mkrescue-Check-xorriso-presence-before-doing-anythin.patch b/0054-mkrescue-Check-xorriso-presence-before-doing-anythin.patch index ab811b4d..d37b7006 100644 --- a/0054-mkrescue-Check-xorriso-presence-before-doing-anythin.patch +++ b/0054-mkrescue-Check-xorriso-presence-before-doing-anythin.patch @@ -1,7 +1,7 @@ From 9e962fd3c42081e2eef1f99a0eaab38fd04d2620 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 7 Aug 2017 18:05:17 +0200 -Subject: [PATCH 054/227] mkrescue: Check xorriso presence before doing +Subject: [PATCH 054/229] mkrescue: Check xorriso presence before doing anything else. mkrescue can't do anything useful without xorriso, so abort early if it's diff --git a/0055-Fail-if-xorriso-failed.patch b/0055-Fail-if-xorriso-failed.patch index df3d2e41..b1b80dba 100644 --- a/0055-Fail-if-xorriso-failed.patch +++ b/0055-Fail-if-xorriso-failed.patch @@ -1,7 +1,7 @@ From e66dc5d71ebfc9763420a76c274e6980d54641c3 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 7 Aug 2017 18:08:39 +0200 -Subject: [PATCH 055/227] Fail if xorriso failed. +Subject: [PATCH 055/229] Fail if xorriso failed. If xorriso failed most likely we didn't generate a meaningful image. --- diff --git a/0056-efi-refactor-grub_efi_allocate_pages.patch b/0056-efi-refactor-grub_efi_allocate_pages.patch index 82ec9388..0ca46c67 100644 --- a/0056-efi-refactor-grub_efi_allocate_pages.patch +++ b/0056-efi-refactor-grub_efi_allocate_pages.patch @@ -1,7 +1,7 @@ From dd5fde2df83c5c03b7ba04d2cc5b7be96de8da7b Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:23 +0100 -Subject: [PATCH 056/227] efi: refactor grub_efi_allocate_pages +Subject: [PATCH 056/229] efi: refactor grub_efi_allocate_pages Expose a new function, grub_efi_allocate_pages_real(), making it possible to specify allocation type and memory type as supported by the UEFI diff --git a/0057-Remove-grub_efi_allocate_pages.patch b/0057-Remove-grub_efi_allocate_pages.patch index c50ba529..343f87d9 100644 --- a/0057-Remove-grub_efi_allocate_pages.patch +++ b/0057-Remove-grub_efi_allocate_pages.patch @@ -1,7 +1,7 @@ From 4bc909bf89f5b4ff86c9e4e609d4fe0c11a66b0c Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 7 Aug 2017 18:33:29 +0200 -Subject: [PATCH 057/227] Remove grub_efi_allocate_pages. +Subject: [PATCH 057/229] Remove grub_efi_allocate_pages. grub_efi_allocate_pages Essentially does 2 unrelated things: * Allocate at fixed address. diff --git a/0058-efi-move-fdt-helper-library.patch b/0058-efi-move-fdt-helper-library.patch index d1f4d299..0c1ca39d 100644 --- a/0058-efi-move-fdt-helper-library.patch +++ b/0058-efi-move-fdt-helper-library.patch @@ -1,7 +1,7 @@ From 8c9465fac901caac6802d6872a1374518b001517 Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:24 +0100 -Subject: [PATCH 058/227] efi: move fdt helper library +Subject: [PATCH 058/229] efi: move fdt helper library There is nothing ARM64 (or even ARM) specific about the efi fdt helper library, which is used for locating or overriding a firmware-provided diff --git a/0059-efi-Add-GRUB_PE32_MAGIC-definition.patch b/0059-efi-Add-GRUB_PE32_MAGIC-definition.patch index 99a2cda6..a70176d0 100644 --- a/0059-efi-Add-GRUB_PE32_MAGIC-definition.patch +++ b/0059-efi-Add-GRUB_PE32_MAGIC-definition.patch @@ -1,7 +1,7 @@ From c5841ba7f0d14c193f20854e7e55b4f7ce9207d5 Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:25 +0100 -Subject: [PATCH 059/227] efi: Add GRUB_PE32_MAGIC definition +Subject: [PATCH 059/229] efi: Add GRUB_PE32_MAGIC definition Add a generic GRUB_PE32_MAGIC definition for the PE 'MZ' tag and delete the existing one in arm64/linux.h. diff --git a/0060-arm64-linux-loader-improve-type-portability.patch b/0060-arm64-linux-loader-improve-type-portability.patch index 4eb82579..12d106a4 100644 --- a/0060-arm64-linux-loader-improve-type-portability.patch +++ b/0060-arm64-linux-loader-improve-type-portability.patch @@ -1,7 +1,7 @@ From 91212e0aa07e704a61e4540c18a27f149f5e51c3 Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:26 +0100 -Subject: [PATCH 060/227] arm64 linux loader: improve type portability +Subject: [PATCH 060/229] arm64 linux loader: improve type portability In preparation for turning this into a common loader for 32-bit and 64-bit platforms, ensure the code will compile cleanly for either. diff --git a/0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch b/0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch index ba859a9d..fafc571d 100644 --- a/0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch +++ b/0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch @@ -1,7 +1,7 @@ From f826330683675f0deb55b58fd229afd7d65fb053 Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:32 +0100 -Subject: [PATCH 061/227] efi: change heap allocation type to +Subject: [PATCH 061/229] efi: change heap allocation type to GRUB_EFI_LOADER_CODE With upcoming changes to EDK2, allocations of type EFI_LOADER_DATA may diff --git a/0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch b/0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch index 4a52aef5..27b58d6e 100644 --- a/0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch +++ b/0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch @@ -1,7 +1,7 @@ From bdd89d239cd9b4089630bfb5ec862aab8086dca2 Mon Sep 17 00:00:00 2001 From: Pete Batard Date: Mon, 7 Aug 2017 16:20:30 +0100 -Subject: [PATCH 062/227] core: use GRUB_TERM_ definitions when handling term +Subject: [PATCH 062/229] core: use GRUB_TERM_ definitions when handling term characters * Also use hex value for GRUB_TERM_ESC as '\e' is not in the C standard and is not understood by some compilers diff --git a/0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch b/0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch index 98cfcad4..d7416073 100644 --- a/0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch +++ b/0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch @@ -1,7 +1,7 @@ From 1deebd85ef87cc581e995ce0a51dc0802ac9c367 Mon Sep 17 00:00:00 2001 From: Pete Batard Date: Mon, 7 Aug 2017 16:23:12 +0100 -Subject: [PATCH 063/227] io: add a GRUB_GZ prefix to gzio specific defines +Subject: [PATCH 063/229] io: add a GRUB_GZ prefix to gzio specific defines * This is done to avoid a conflict with a PACKED define in the EDK2 --- diff --git a/0064-info-in-builddir.patch b/0064-info-in-builddir.patch index d8abdfd7..67995585 100644 --- a/0064-info-in-builddir.patch +++ b/0064-info-in-builddir.patch @@ -1,7 +1,7 @@ From 5cf0df8753c19e83251c7244cafe38869a65060f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 8 Aug 2017 13:08:59 -0400 -Subject: [PATCH 064/227] info-in-builddir +Subject: [PATCH 064/229] info-in-builddir --- docs/Makefile.am | 2 +- diff --git a/0065-re-write-.gitignore.patch b/0065-re-write-.gitignore.patch index a28c04a3..cef5ee67 100644 --- a/0065-re-write-.gitignore.patch +++ b/0065-re-write-.gitignore.patch @@ -1,7 +1,7 @@ From ff9da35fd789354cc1490b75893e765771808352 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 8 Aug 2017 12:48:04 -0400 -Subject: [PATCH 065/227] re-write .gitignore +Subject: [PATCH 065/229] re-write .gitignore --- .gitignore | 352 ++++++++++++-------------------------- diff --git a/0066-IBM-client-architecture-CAS-reboot-support.patch b/0066-IBM-client-architecture-CAS-reboot-support.patch index a33ea3e9..fab4ea36 100644 --- a/0066-IBM-client-architecture-CAS-reboot-support.patch +++ b/0066-IBM-client-architecture-CAS-reboot-support.patch @@ -1,7 +1,7 @@ From 34423216f8f3d7ce6086e2f1ee9869407e6a2221 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Thu, 20 Sep 2012 18:07:39 -0300 -Subject: [PATCH 066/227] IBM client architecture (CAS) reboot support +Subject: [PATCH 066/229] IBM client architecture (CAS) reboot support This is an implementation of IBM client architecture (CAS) reboot for GRUB. diff --git a/0067-for-ppc-reset-console-display-attr-when-clear-screen.patch b/0067-for-ppc-reset-console-display-attr-when-clear-screen.patch index e0f64941..0da76fbd 100644 --- a/0067-for-ppc-reset-console-display-attr-when-clear-screen.patch +++ b/0067-for-ppc-reset-console-display-attr-when-clear-screen.patch @@ -1,7 +1,7 @@ From 070dc282d3cc6602571296e90945df9d4671aecb Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Wed, 24 Apr 2013 10:51:48 -0300 -Subject: [PATCH 067/227] for ppc, reset console display attr when clear screen +Subject: [PATCH 067/229] for ppc, reset console display attr when clear screen v2: Also use \x0c instead of a literal ^L to make future patches less awkward. diff --git a/0068-Disable-GRUB-video-support-for-IBM-power-machines.patch b/0068-Disable-GRUB-video-support-for-IBM-power-machines.patch index 10b6b2f1..9405e824 100644 --- a/0068-Disable-GRUB-video-support-for-IBM-power-machines.patch +++ b/0068-Disable-GRUB-video-support-for-IBM-power-machines.patch @@ -1,7 +1,7 @@ From 4e31478fdf4cda470305c1bb2acb9b820e790757 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 11 Jun 2013 15:14:05 -0300 -Subject: [PATCH 068/227] Disable GRUB video support for IBM power machines +Subject: [PATCH 068/229] Disable GRUB video support for IBM power machines Should fix the problem in bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=973205 diff --git a/0069-Honor-a-symlink-when-generating-configuration-by-gru.patch b/0069-Honor-a-symlink-when-generating-configuration-by-gru.patch index 8b0db67c..27c76c3b 100644 --- a/0069-Honor-a-symlink-when-generating-configuration-by-gru.patch +++ b/0069-Honor-a-symlink-when-generating-configuration-by-gru.patch @@ -1,7 +1,7 @@ From 35535549324923af7fecf79cc739baba48246f21 Mon Sep 17 00:00:00 2001 From: Marcel Kolaja Date: Tue, 21 Jan 2014 10:57:08 -0500 -Subject: [PATCH 069/227] Honor a symlink when generating configuration by +Subject: [PATCH 069/229] Honor a symlink when generating configuration by grub2-mkconfig Honor a symlink when generating configuration by grub2-mkconfig, so that diff --git a/0070-Move-bash-completion-script-922997.patch b/0070-Move-bash-completion-script-922997.patch index b7ffc973..a47d25e3 100644 --- a/0070-Move-bash-completion-script-922997.patch +++ b/0070-Move-bash-completion-script-922997.patch @@ -1,7 +1,7 @@ From 999bbc2002275efce284aed6e1e31b3ca351fa19 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 3 Apr 2013 14:35:34 -0400 -Subject: [PATCH 070/227] Move bash completion script (#922997) +Subject: [PATCH 070/229] Move bash completion script (#922997) Apparently these go in a new place now. --- diff --git a/0071-Update-to-minilzo-2.08.patch b/0071-Update-to-minilzo-2.08.patch index c91ac43f..eb948f45 100644 --- a/0071-Update-to-minilzo-2.08.patch +++ b/0071-Update-to-minilzo-2.08.patch @@ -1,7 +1,7 @@ From c0977f7fd42e16cc568af7ae667a2aeda85eb583 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Dec 2014 15:36:09 -0500 -Subject: [PATCH 071/227] Update to minilzo-2.08 +Subject: [PATCH 071/229] Update to minilzo-2.08 This fixes CVE-2014-4607 - lzo: lzo1x_decompress_safe() integer overflow diff --git a/0072-Allow-fallback-to-include-entries-by-title-not-just-.patch b/0072-Allow-fallback-to-include-entries-by-title-not-just-.patch index 9cb959f2..5f7728a2 100644 --- a/0072-Allow-fallback-to-include-entries-by-title-not-just-.patch +++ b/0072-Allow-fallback-to-include-entries-by-title-not-just-.patch @@ -1,7 +1,7 @@ From 15e9ccc8abd5621107788bea6ae6f2bdb27a3ed3 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 5 Sep 2014 10:07:04 -0400 -Subject: [PATCH 072/227] Allow "fallback" to include entries by title, not +Subject: [PATCH 072/229] Allow "fallback" to include entries by title, not just number. Resolves: rhbz#1026084 diff --git a/0073-Add-GRUB_DISABLE_UUID.patch b/0073-Add-GRUB_DISABLE_UUID.patch index 06c5c62b..a3ab5aa8 100644 --- a/0073-Add-GRUB_DISABLE_UUID.patch +++ b/0073-Add-GRUB_DISABLE_UUID.patch @@ -1,7 +1,7 @@ From 87602724b509a60628623baabf5a2c7741a68884 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Sep 2014 16:49:25 -0400 -Subject: [PATCH 073/227] Add GRUB_DISABLE_UUID. +Subject: [PATCH 073/229] Add GRUB_DISABLE_UUID. This will cause "search --fs-uuid --set=root ..." not to be generated by grub2-mkconfig, and instead simply attempt to use the grub device name diff --git a/0074-Make-exit-take-a-return-code.patch b/0074-Make-exit-take-a-return-code.patch index de99f8ab..9e2acc84 100644 --- a/0074-Make-exit-take-a-return-code.patch +++ b/0074-Make-exit-take-a-return-code.patch @@ -1,7 +1,7 @@ From 68d514b51b81911d8359d7825618112dae4a44d9 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 26 Feb 2014 21:49:12 -0500 -Subject: [PATCH 074/227] Make "exit" take a return code. +Subject: [PATCH 074/229] Make "exit" take a return code. This adds "exit" with a return code. With this patch, any "exit" command /may/ include a return code, and on platforms that support diff --git a/0075-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch b/0075-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch index 0b00e668..5c9e2e0e 100644 --- a/0075-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch +++ b/0075-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch @@ -1,7 +1,7 @@ From 126f6952b853ea67e784650ed12f365ab7988f51 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 22 Jul 2015 11:21:01 -0400 -Subject: [PATCH 075/227] Mark po/exclude.pot as binary so git won't try to +Subject: [PATCH 075/229] Mark po/exclude.pot as binary so git won't try to diff nonprintables. Signed-off-by: Peter Jones diff --git a/0076-Make-efi-machines-load-an-env-block-from-a-variable.patch b/0076-Make-efi-machines-load-an-env-block-from-a-variable.patch index 72296582..8b1f6caa 100644 --- a/0076-Make-efi-machines-load-an-env-block-from-a-variable.patch +++ b/0076-Make-efi-machines-load-an-env-block-from-a-variable.patch @@ -1,7 +1,7 @@ From 506b52759b2b2ad46e7b389979fcbaa78d68dab9 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 7 Dec 2015 14:20:49 -0500 -Subject: [PATCH 076/227] Make efi machines load an env block from a variable +Subject: [PATCH 076/229] Make efi machines load an env block from a variable Signed-off-by: Peter Jones --- diff --git a/0077-DHCP-client-ID-and-UUID-options-added.patch b/0077-DHCP-client-ID-and-UUID-options-added.patch index 1307cc6d..aa9ca778 100644 --- a/0077-DHCP-client-ID-and-UUID-options-added.patch +++ b/0077-DHCP-client-ID-and-UUID-options-added.patch @@ -1,7 +1,7 @@ From 8a0b654a520e407da69e0cf64f3dd6bb7cf86240 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 27 Nov 2012 17:18:53 -0200 -Subject: [PATCH 077/227] DHCP client ID and UUID options added. +Subject: [PATCH 077/229] DHCP client ID and UUID options added. --- grub-core/net/bootp.c | 87 ++++++++++++++++++++++++++++++++++++++++++++++----- diff --git a/0078-trim-arp-packets-with-abnormal-size.patch b/0078-trim-arp-packets-with-abnormal-size.patch index e22fb0e7..03ff64bd 100644 --- a/0078-trim-arp-packets-with-abnormal-size.patch +++ b/0078-trim-arp-packets-with-abnormal-size.patch @@ -1,7 +1,7 @@ From cffad45026af9a05a0509daf593fa87148a3de66 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Wed, 5 Feb 2014 09:42:42 -0200 -Subject: [PATCH 078/227] trim arp packets with abnormal size +Subject: [PATCH 078/229] trim arp packets with abnormal size GRUB uses arp request to create the arp response. If the incoming packet is foobared, GRUB needs to trim the arp response packet before sending it. diff --git a/0079-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch b/0079-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch index d985a8d9..7be739c7 100644 --- a/0079-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch +++ b/0079-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch @@ -1,7 +1,7 @@ From 97b0254d8f3de9a51aa3df570d862bbb8dbd044b Mon Sep 17 00:00:00 2001 From: Prarit Bhargava Date: Wed, 12 Mar 2014 10:58:16 -0400 -Subject: [PATCH 079/227] Fix bad test on GRUB_DISABLE_SUBMENU. +Subject: [PATCH 079/229] Fix bad test on GRUB_DISABLE_SUBMENU. The file /etc/grub.d/10_linux does diff --git a/0080-Add-support-for-UEFI-operating-systems-returned-by-o.patch b/0080-Add-support-for-UEFI-operating-systems-returned-by-o.patch index 7950a333..3a348ff3 100644 --- a/0080-Add-support-for-UEFI-operating-systems-returned-by-o.patch +++ b/0080-Add-support-for-UEFI-operating-systems-returned-by-o.patch @@ -1,7 +1,7 @@ From cf5302cca4a0daf5eb9b058243e6f56e63ab58dc Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Wed, 12 Jun 2013 11:51:49 -0400 -Subject: [PATCH 080/227] Add support for UEFI operating systems returned by +Subject: [PATCH 080/229] Add support for UEFI operating systems returned by os-prober os-prober returns UEFI operating systems in the form: diff --git a/0081-Migrate-PPC-from-Yaboot-to-Grub2.patch b/0081-Migrate-PPC-from-Yaboot-to-Grub2.patch index 482ff885..91daed2c 100644 --- a/0081-Migrate-PPC-from-Yaboot-to-Grub2.patch +++ b/0081-Migrate-PPC-from-Yaboot-to-Grub2.patch @@ -1,7 +1,7 @@ From 4fbdca3b8a359170032882db53646cc4bfd17f6b Mon Sep 17 00:00:00 2001 From: Mark Hamzy Date: Wed, 28 Mar 2012 14:46:41 -0500 -Subject: [PATCH 081/227] Migrate PPC from Yaboot to Grub2 +Subject: [PATCH 081/229] Migrate PPC from Yaboot to Grub2 Add configuration support for serial terminal consoles. This will set the maximum screen size so that text is not overwritten. diff --git a/0082-Add-fw_path-variable-revised.patch b/0082-Add-fw_path-variable-revised.patch index 90901a25..b3b1c6c3 100644 --- a/0082-Add-fw_path-variable-revised.patch +++ b/0082-Add-fw_path-variable-revised.patch @@ -1,7 +1,7 @@ From ebd364c3aabe4e484243ccf6e276563416b3f244 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Wed, 19 Sep 2012 21:22:55 -0300 -Subject: [PATCH 082/227] Add fw_path variable (revised) +Subject: [PATCH 082/229] Add fw_path variable (revised) This patch makes grub look for its config file on efi where the app was found. It was originally written by Matthew Garrett, and adapted to fix the diff --git a/0083-Add-support-for-linuxefi.patch b/0083-Add-support-for-linuxefi.patch index c31e707a..9526633f 100644 --- a/0083-Add-support-for-linuxefi.patch +++ b/0083-Add-support-for-linuxefi.patch @@ -1,7 +1,7 @@ From e1243befd2bc84b3c85100bece1424529dedafb4 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 10 Jul 2012 11:58:52 -0400 -Subject: [PATCH 083/227] Add support for linuxefi +Subject: [PATCH 083/229] Add support for linuxefi --- grub-core/Makefile.core.def | 8 + diff --git a/0084-Use-linuxefi-and-initrdefi-where-appropriate.patch b/0084-Use-linuxefi-and-initrdefi-where-appropriate.patch index 003b3c8e..78cdc796 100644 --- a/0084-Use-linuxefi-and-initrdefi-where-appropriate.patch +++ b/0084-Use-linuxefi-and-initrdefi-where-appropriate.patch @@ -1,7 +1,7 @@ From 859cdda8e3c026eb132ad15320222a7ef89d8940 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 16 Jul 2012 18:57:11 -0400 -Subject: [PATCH 084/227] Use "linuxefi" and "initrdefi" where appropriate. +Subject: [PATCH 084/229] Use "linuxefi" and "initrdefi" where appropriate. --- util/grub.d/10_linux.in | 18 ++++++++++++++++-- diff --git a/0085-Don-t-allow-insmod-when-secure-boot-is-enabled.patch b/0085-Don-t-allow-insmod-when-secure-boot-is-enabled.patch index c94f585d..40275999 100644 --- a/0085-Don-t-allow-insmod-when-secure-boot-is-enabled.patch +++ b/0085-Don-t-allow-insmod-when-secure-boot-is-enabled.patch @@ -1,7 +1,7 @@ From a7dd90b084d0e6d10e8f1892651d8c20c079c99d Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Tue, 23 Oct 2012 10:40:49 -0400 -Subject: [PATCH 085/227] Don't allow insmod when secure boot is enabled. +Subject: [PATCH 085/229] Don't allow insmod when secure boot is enabled. Hi, diff --git a/0086-Pass-x-hex-hex-straight-through-unmolested.patch b/0086-Pass-x-hex-hex-straight-through-unmolested.patch index 7dfa6b38..4e4a1d88 100644 --- a/0086-Pass-x-hex-hex-straight-through-unmolested.patch +++ b/0086-Pass-x-hex-hex-straight-through-unmolested.patch @@ -1,7 +1,7 @@ From 66e04779bda094f385e8bbbe3523501821b830e4 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 1 Oct 2012 13:24:37 -0400 -Subject: [PATCH 086/227] Pass "\x[[:hex:]][[:hex:]]" straight through +Subject: [PATCH 086/229] Pass "\x[[:hex:]][[:hex:]]" straight through unmolested. --- diff --git a/0087-Add-X-option-to-printf-functions.patch b/0087-Add-X-option-to-printf-functions.patch index 3a1e0717..3ed3bc25 100644 --- a/0087-Add-X-option-to-printf-functions.patch +++ b/0087-Add-X-option-to-printf-functions.patch @@ -1,7 +1,7 @@ From 85d1de365ee5f0fb5409a3b1d895204262a7a068 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 27 Nov 2012 16:58:39 -0200 -Subject: [PATCH 087/227] Add %X option to printf functions. +Subject: [PATCH 087/229] Add %X option to printf functions. --- grub-core/kern/misc.c | 7 +++++-- diff --git a/0088-Search-for-specific-config-file-for-netboot.patch b/0088-Search-for-specific-config-file-for-netboot.patch index da3a449f..01de1fc3 100644 --- a/0088-Search-for-specific-config-file-for-netboot.patch +++ b/0088-Search-for-specific-config-file-for-netboot.patch @@ -1,7 +1,7 @@ From 4b15dd15153b2e7070ae37736c3094223fa3a01d Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 27 Nov 2012 17:22:07 -0200 -Subject: [PATCH 088/227] Search for specific config file for netboot +Subject: [PATCH 088/229] Search for specific config file for netboot This patch implements a search for a specific configuration when the config file is on a remoteserver. It uses the following order: diff --git a/0089-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch b/0089-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch index 6468cf89..a2617cce 100644 --- a/0089-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch +++ b/0089-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch @@ -1,7 +1,7 @@ From cb7f166adef2b0acc52fa0b506621295a1408702 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Tue, 22 Jan 2013 06:31:38 +0100 -Subject: [PATCH 089/227] blscfg: add blscfg module to parse Boot Loader +Subject: [PATCH 089/229] blscfg: add blscfg module to parse Boot Loader Specification snippets http://www.freedesktop.org/wiki/Specifications/BootLoaderSpec diff --git a/0090-Don-t-write-messages-to-the-screen.patch b/0090-Don-t-write-messages-to-the-screen.patch index 854ea347..23e37f18 100644 --- a/0090-Don-t-write-messages-to-the-screen.patch +++ b/0090-Don-t-write-messages-to-the-screen.patch @@ -1,7 +1,7 @@ From 472265de61af84149ba89a91072317e15298caa1 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 13:30:20 -0400 -Subject: [PATCH 090/227] Don't write messages to the screen +Subject: [PATCH 090/229] Don't write messages to the screen Writing messages to the screen before the menus or boot splash happens so quickly it looks like something is wrong and isn't diff --git a/0091-Don-t-print-GNU-GRUB-header.patch b/0091-Don-t-print-GNU-GRUB-header.patch index 8a663b32..09917332 100644 --- a/0091-Don-t-print-GNU-GRUB-header.patch +++ b/0091-Don-t-print-GNU-GRUB-header.patch @@ -1,7 +1,7 @@ From 2b9d1073c695f0363202a00586e1994432d23347 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 13:53:48 -0400 -Subject: [PATCH 091/227] Don't print GNU GRUB header +Subject: [PATCH 091/229] Don't print GNU GRUB header No one cares. --- diff --git a/0092-Don-t-add-to-highlighted-row.patch b/0092-Don-t-add-to-highlighted-row.patch index e0f0bdaa..c19574c3 100644 --- a/0092-Don-t-add-to-highlighted-row.patch +++ b/0092-Don-t-add-to-highlighted-row.patch @@ -1,7 +1,7 @@ From 7cb577925e3d40869b9748afa5060b178ba88abd Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 17:49:45 -0400 -Subject: [PATCH 092/227] Don't add '*' to highlighted row +Subject: [PATCH 092/229] Don't add '*' to highlighted row It is already highlighted. --- diff --git a/0093-Message-string-cleanups.patch b/0093-Message-string-cleanups.patch index 61b09062..208ec144 100644 --- a/0093-Message-string-cleanups.patch +++ b/0093-Message-string-cleanups.patch @@ -1,7 +1,7 @@ From 67803e1ea2884a1ff8ecbb1cc9371fa63c9a7544 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 11:09:04 -0400 -Subject: [PATCH 093/227] Message string cleanups +Subject: [PATCH 093/229] Message string cleanups Make use of terminology consistent. Remove jargon. --- diff --git a/0094-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch b/0094-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch index 7e70fc8c..1beb8cb4 100644 --- a/0094-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch +++ b/0094-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch @@ -1,7 +1,7 @@ From 7857716e067795304fc788813e427fac3f9624d7 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:08:23 -0400 -Subject: [PATCH 094/227] Fix border spacing now that we aren't displaying it +Subject: [PATCH 094/229] Fix border spacing now that we aren't displaying it --- grub-core/normal/menu_text.c | 6 +++--- diff --git a/0095-Use-the-correct-indentation-for-the-term-help-text.patch b/0095-Use-the-correct-indentation-for-the-term-help-text.patch index b4ea1611..ac9750e3 100644 --- a/0095-Use-the-correct-indentation-for-the-term-help-text.patch +++ b/0095-Use-the-correct-indentation-for-the-term-help-text.patch @@ -1,7 +1,7 @@ From 9ecf176aa2951d848ca2d0ab23e663b2ddc1b336 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:08:49 -0400 -Subject: [PATCH 095/227] Use the correct indentation for the term help text +Subject: [PATCH 095/229] Use the correct indentation for the term help text That is consistent with the menu help text --- diff --git a/0096-Indent-menu-entries.patch b/0096-Indent-menu-entries.patch index 7fae91bc..b6ed0fe6 100644 --- a/0096-Indent-menu-entries.patch +++ b/0096-Indent-menu-entries.patch @@ -1,7 +1,7 @@ From 62af3df5904d4fff7e8c4bab0a90aae6752be432 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:30:55 -0400 -Subject: [PATCH 096/227] Indent menu entries +Subject: [PATCH 096/229] Indent menu entries --- grub-core/normal/menu_text.c | 3 ++- diff --git a/0097-Fix-margins.patch b/0097-Fix-margins.patch index 926920a2..bb2b2121 100644 --- a/0097-Fix-margins.patch +++ b/0097-Fix-margins.patch @@ -1,7 +1,7 @@ From aa23d4d1be22a7255f9faa3bac39a5d29c2de9f2 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:59:36 -0400 -Subject: [PATCH 097/227] Fix margins +Subject: [PATCH 097/229] Fix margins --- grub-core/normal/menu_text.c | 8 +++----- diff --git a/0098-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch b/0098-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch index dee6d58b..083bca82 100644 --- a/0098-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch +++ b/0098-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch @@ -1,7 +1,7 @@ From cc0abdf469be06b17879f19b26c73b916f479b28 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 21 Jun 2013 14:44:08 -0400 -Subject: [PATCH 098/227] Use -2 instead of -1 for our right-hand margin, so +Subject: [PATCH 098/229] Use -2 instead of -1 for our right-hand margin, so linewrapping works (#976643). Signed-off-by: Peter Jones diff --git a/0099-Use-linux16-when-appropriate-880840.patch b/0099-Use-linux16-when-appropriate-880840.patch index b834eb84..c60daf43 100644 --- a/0099-Use-linux16-when-appropriate-880840.patch +++ b/0099-Use-linux16-when-appropriate-880840.patch @@ -1,7 +1,7 @@ From 9b332449552b4c8afbe2d0e30b795d93c2ac733f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 28 Oct 2013 10:05:07 -0400 -Subject: [PATCH 099/227] Use linux16 when appropriate (#880840) +Subject: [PATCH 099/229] Use linux16 when appropriate (#880840) The kernel group really would prefer that we use the 16 bit entry point on x86 bios machines. diff --git a/0100-Enable-pager-by-default.-985860.patch b/0100-Enable-pager-by-default.-985860.patch index f764a56c..6b61a157 100644 --- a/0100-Enable-pager-by-default.-985860.patch +++ b/0100-Enable-pager-by-default.-985860.patch @@ -1,7 +1,7 @@ From 24b186833aad3f456111b7f9d3806065dbb95a2e Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 28 Oct 2013 10:09:27 -0400 -Subject: [PATCH 100/227] Enable pager by default. (#985860) +Subject: [PATCH 100/229] Enable pager by default. (#985860) Signed-off-by: Peter Jones --- diff --git a/0101-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch b/0101-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch index 1059488f..b279e485 100644 --- a/0101-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch +++ b/0101-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch @@ -1,7 +1,7 @@ From 3635e1f8f5925e9c5ba54e9bbe79503d78177ea4 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 28 Oct 2013 10:13:27 -0400 -Subject: [PATCH 101/227] F10 doesn't work on serial, so don't tell the user to +Subject: [PATCH 101/229] F10 doesn't work on serial, so don't tell the user to hit it (#987443) Signed-off-by: Peter Jones diff --git a/0102-Don-t-say-GNU-Linux-in-generated-menus.patch b/0102-Don-t-say-GNU-Linux-in-generated-menus.patch index 9e3042c4..d498d405 100644 --- a/0102-Don-t-say-GNU-Linux-in-generated-menus.patch +++ b/0102-Don-t-say-GNU-Linux-in-generated-menus.patch @@ -1,7 +1,7 @@ From c3bd10791d0ecc17cd8243de8eea4cd683ae2bdb Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 14 Mar 2011 14:27:42 -0400 -Subject: [PATCH 102/227] Don't say "GNU/Linux" in generated menus. +Subject: [PATCH 102/229] Don't say "GNU/Linux" in generated menus. --- util/grub.d/10_linux.in | 4 ++-- diff --git a/0103-Don-t-draw-a-border-around-the-menu.patch b/0103-Don-t-draw-a-border-around-the-menu.patch index d4235227..5a789e2a 100644 --- a/0103-Don-t-draw-a-border-around-the-menu.patch +++ b/0103-Don-t-draw-a-border-around-the-menu.patch @@ -1,7 +1,7 @@ From 79e679458cc2e70d0097cfc702668976fe1fdc5d Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 16:47:33 -0400 -Subject: [PATCH 103/227] Don't draw a border around the menu +Subject: [PATCH 103/229] Don't draw a border around the menu It looks cleaner without it. --- diff --git a/0104-Use-the-standard-margin-for-the-timeout-string.patch b/0104-Use-the-standard-margin-for-the-timeout-string.patch index ddf1703c..e1a1aca0 100644 --- a/0104-Use-the-standard-margin-for-the-timeout-string.patch +++ b/0104-Use-the-standard-margin-for-the-timeout-string.patch @@ -1,7 +1,7 @@ From a82ffe034724bb20b062bba9606654d0e3919acc Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 10:52:32 -0400 -Subject: [PATCH 104/227] Use the standard margin for the timeout string +Subject: [PATCH 104/229] Use the standard margin for the timeout string So that it aligns with the other messages --- diff --git a/0105-Add-.eh_frame-to-list-of-relocations-stripped.patch b/0105-Add-.eh_frame-to-list-of-relocations-stripped.patch index 4a61b2e2..343706ce 100644 --- a/0105-Add-.eh_frame-to-list-of-relocations-stripped.patch +++ b/0105-Add-.eh_frame-to-list-of-relocations-stripped.patch @@ -1,7 +1,7 @@ From 35cdd6b929d5f63750bb214a53e1c75b31dcae99 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Mon, 13 Jan 2014 21:50:59 -0500 -Subject: [PATCH 105/227] Add .eh_frame to list of relocations stripped +Subject: [PATCH 105/229] Add .eh_frame to list of relocations stripped --- conf/Makefile.common | 2 +- diff --git a/0106-Make-10_linux-work-with-our-changes-for-linux16-and-.patch b/0106-Make-10_linux-work-with-our-changes-for-linux16-and-.patch index da8f4801..3e811ace 100644 --- a/0106-Make-10_linux-work-with-our-changes-for-linux16-and-.patch +++ b/0106-Make-10_linux-work-with-our-changes-for-linux16-and-.patch @@ -1,7 +1,7 @@ From 3f5daaa46d0a5eb390a74da40abe54d385d308cf Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jan 2014 13:12:23 -0500 -Subject: [PATCH 106/227] Make 10_linux work with our changes for linux16 and +Subject: [PATCH 106/229] Make 10_linux work with our changes for linux16 and linuxefi on aarch64 Signed-off-by: Peter Jones diff --git a/0107-Don-t-print-during-fdt-loading-method.patch b/0107-Don-t-print-during-fdt-loading-method.patch index 53a10427..82d447d8 100644 --- a/0107-Don-t-print-during-fdt-loading-method.patch +++ b/0107-Don-t-print-during-fdt-loading-method.patch @@ -1,7 +1,7 @@ From 276027c67b27f2ee557ca9e2492c779a5f76cb9b Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jan 2014 16:15:46 -0500 -Subject: [PATCH 107/227] Don't print during fdt loading method. +Subject: [PATCH 107/229] Don't print during fdt loading method. Signed-off-by: Peter Jones --- diff --git a/0108-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch b/0108-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch index 9ef7f775..5187992b 100644 --- a/0108-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch +++ b/0108-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch @@ -1,7 +1,7 @@ From 25add18bbc13249a2ce32f4e9b0de512ecc1fe4b Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Mon, 30 Jun 2014 14:16:46 -0400 -Subject: [PATCH 108/227] Don't munge raw spaces when we're doing our cmdline +Subject: [PATCH 108/229] Don't munge raw spaces when we're doing our cmdline escaping (#923374) Signed-off-by: Peter Jones diff --git a/0109-Don-t-require-a-password-to-boot-entries-generated-b.patch b/0109-Don-t-require-a-password-to-boot-entries-generated-b.patch index 10c68289..694877f7 100644 --- a/0109-Don-t-require-a-password-to-boot-entries-generated-b.patch +++ b/0109-Don-t-require-a-password-to-boot-entries-generated-b.patch @@ -1,7 +1,7 @@ From 9b109204ee0d1888d64d553849798ee57af1809f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 11 Feb 2014 11:14:50 -0500 -Subject: [PATCH 109/227] Don't require a password to boot entries generated by +Subject: [PATCH 109/229] Don't require a password to boot entries generated by grub-mkconfig. When we set a password, we just want that to mean you can't /edit/ an entry. diff --git a/0110-Don-t-emit-Booting-.-message.patch b/0110-Don-t-emit-Booting-.-message.patch index 26ac4585..e4bc867c 100644 --- a/0110-Don-t-emit-Booting-.-message.patch +++ b/0110-Don-t-emit-Booting-.-message.patch @@ -1,7 +1,7 @@ From 68f1935b5c6f66afbf9d6990615946c44f3d54cb Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 18 Feb 2014 09:37:49 -0500 -Subject: [PATCH 110/227] Don't emit "Booting ..." message. +Subject: [PATCH 110/229] Don't emit "Booting ..." message. UI team still hates this stuff, so we're disabling it for RHEL 7. diff --git a/0111-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch b/0111-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch index 5d7b4713..817de026 100644 --- a/0111-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch +++ b/0111-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch @@ -1,7 +1,7 @@ From 6cdf99aa53970695fbf5c002fa288e1044571ca7 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 4 Mar 2014 11:00:23 -0500 -Subject: [PATCH 111/227] Replace a lot of man pages with slightly nicer ones. +Subject: [PATCH 111/229] Replace a lot of man pages with slightly nicer ones. Replace a bunch of machine generated ones with ones that look nicer. --- diff --git a/0112-use-fw_path-prefix-when-fallback-searching-for-grub-.patch b/0112-use-fw_path-prefix-when-fallback-searching-for-grub-.patch index a8c68578..9f311a09 100644 --- a/0112-use-fw_path-prefix-when-fallback-searching-for-grub-.patch +++ b/0112-use-fw_path-prefix-when-fallback-searching-for-grub-.patch @@ -1,7 +1,7 @@ From f72c593c32ecba7b10ceb4c63ca8ec48f60c3ccf Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Wed, 19 Feb 2014 15:58:43 -0500 -Subject: [PATCH 112/227] use fw_path prefix when fallback searching for grub +Subject: [PATCH 112/229] use fw_path prefix when fallback searching for grub config When PXE booting via UEFI firmware, grub was searching for grub.cfg diff --git a/0113-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch b/0113-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch index 6fa6582b..3b5ccaa0 100644 --- a/0113-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch +++ b/0113-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch @@ -1,7 +1,7 @@ From 09265872f163e6dfe1aa319ac40e8090f31830f7 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 6 Mar 2014 11:51:33 -0500 -Subject: [PATCH 113/227] Try mac/guid/etc before grub.cfg on tftp config +Subject: [PATCH 113/229] Try mac/guid/etc before grub.cfg on tftp config files. Signed-off-by: Peter Jones diff --git a/0114-Fix-convert-function-to-support-NVMe-devices.patch b/0114-Fix-convert-function-to-support-NVMe-devices.patch index d5101212..c3f46294 100644 --- a/0114-Fix-convert-function-to-support-NVMe-devices.patch +++ b/0114-Fix-convert-function-to-support-NVMe-devices.patch @@ -1,7 +1,7 @@ From 39976a692a9350b1293f209953426830ddde2ad6 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 18 Feb 2014 11:34:00 -0500 -Subject: [PATCH 114/227] Fix convert function to support NVMe devices +Subject: [PATCH 114/229] Fix convert function to support NVMe devices This is adapted from the patch at https://bugzilla.redhat.com/show_bug.cgi?id=1019660 , which is against diff --git a/0115-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch b/0115-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch index 3908a243..7cf9ec8c 100644 --- a/0115-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch +++ b/0115-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch @@ -1,7 +1,7 @@ From 05d7e199d3f48cf9fd9b2af877cfe37c498f0874 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Mon, 10 Feb 2014 16:13:10 -0500 -Subject: [PATCH 115/227] Switch to use APM Mustang device tree, for hardware +Subject: [PATCH 115/229] Switch to use APM Mustang device tree, for hardware testing. Signed-off-by: David A. Marlin diff --git a/0116-Use-the-default-device-tree-from-the-grub-default-fi.patch b/0116-Use-the-default-device-tree-from-the-grub-default-fi.patch index f62dbce5..563500b1 100644 --- a/0116-Use-the-default-device-tree-from-the-grub-default-fi.patch +++ b/0116-Use-the-default-device-tree-from-the-grub-default-fi.patch @@ -1,7 +1,7 @@ From b2ad2a3b4a4bc998003c1275709f0677c39503a9 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Wed, 12 Feb 2014 14:54:04 -0500 -Subject: [PATCH 116/227] Use the default device tree from the grub default +Subject: [PATCH 116/229] Use the default device tree from the grub default file instead of hardcoding a value. diff --git a/0117-reopen-SNP-protocol-for-exclusive-use-by-grub.patch b/0117-reopen-SNP-protocol-for-exclusive-use-by-grub.patch index 64864dcc..527deee1 100644 --- a/0117-reopen-SNP-protocol-for-exclusive-use-by-grub.patch +++ b/0117-reopen-SNP-protocol-for-exclusive-use-by-grub.patch @@ -1,7 +1,7 @@ From 5d87e5b1697c28d55348486cb3c704b467c8e798 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Sat, 15 Feb 2014 15:10:22 -0500 -Subject: [PATCH 117/227] reopen SNP protocol for exclusive use by grub +Subject: [PATCH 117/229] reopen SNP protocol for exclusive use by grub --- grub-core/net/drivers/efi/efinet.c | 16 ++++++++++++++++ diff --git a/0118-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch b/0118-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch index 89aa0c38..ec797db8 100644 --- a/0118-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch +++ b/0118-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch @@ -1,7 +1,7 @@ From f00ca4e03561840f116642c7100df6dc6395209d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 4 Mar 2016 15:13:59 -0500 -Subject: [PATCH 118/227] Revert "reopen SNP protocol for exclusive use by +Subject: [PATCH 118/229] Revert "reopen SNP protocol for exclusive use by grub" This reverts commit a3f2c756ce34c9666bddef35e3b3b85ccecdcffc , which is diff --git a/0119-Add-grub_util_readlink.patch b/0119-Add-grub_util_readlink.patch index 4ba23c1a..0f340742 100644 --- a/0119-Add-grub_util_readlink.patch +++ b/0119-Add-grub_util_readlink.patch @@ -1,7 +1,7 @@ From ffc123b7ab4fe37da16d4c62d87255f8c5c14b9f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 3 Sep 2014 10:01:03 -0400 -Subject: [PATCH 119/227] Add grub_util_readlink() +Subject: [PATCH 119/229] Add grub_util_readlink() Add grub_util_readlink(). This requires pulling in stat and readlink from gnulib, which pulls in stat and related headers, but after that the diff --git a/0120-Make-editenv-chase-symlinks-including-those-across-d.patch b/0120-Make-editenv-chase-symlinks-including-those-across-d.patch index 5d85be87..988823ff 100644 --- a/0120-Make-editenv-chase-symlinks-including-those-across-d.patch +++ b/0120-Make-editenv-chase-symlinks-including-those-across-d.patch @@ -1,7 +1,7 @@ From fb903fc1587b582e23e44811dc8c4ed359806028 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 3 Sep 2014 10:38:00 -0400 -Subject: [PATCH 120/227] Make editenv chase symlinks including those across +Subject: [PATCH 120/229] Make editenv chase symlinks including those across devices. This lets us make /boot/grub2/grubenv a symlink to diff --git a/0121-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch b/0121-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch index fbaa756b..fecb68ca 100644 --- a/0121-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch +++ b/0121-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch @@ -1,7 +1,7 @@ From 5948f763fc01d7f29923e94ef9b1ed923b11ff1a Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Sep 2014 14:23:23 -0400 -Subject: [PATCH 121/227] Generate OS and CLASS in 10_linux from +Subject: [PATCH 121/229] Generate OS and CLASS in 10_linux from /etc/os-release This makes us use pretty names in the titles we generate in diff --git a/0122-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch b/0122-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch index 54c29650..65321c34 100644 --- a/0122-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch +++ b/0122-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch @@ -1,7 +1,7 @@ From 547d0c60f28c026801af2ada3e0995d0ecc22c35 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Sep 2014 15:52:08 -0400 -Subject: [PATCH 122/227] Minimize the sort ordering for .debug and -rescue- +Subject: [PATCH 122/229] Minimize the sort ordering for .debug and -rescue- kernels. Resolves: rhbz#1065360 diff --git a/0123-Load-arm-with-SB-enabled.patch b/0123-Load-arm-with-SB-enabled.patch index 49c24384..07f17e27 100644 --- a/0123-Load-arm-with-SB-enabled.patch +++ b/0123-Load-arm-with-SB-enabled.patch @@ -1,7 +1,7 @@ From c03bf04fd9e3192bec942a7adee23b5377ea81dc Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 18 Sep 2014 11:26:14 -0400 -Subject: [PATCH 123/227] Load arm with SB enabled. +Subject: [PATCH 123/229] Load arm with SB enabled. Make sure we actually try to validate secure boot on this platform (even though we're not shipping it enabled by default.) diff --git a/0124-Try-prefix-if-fw_path-doesn-t-work.patch b/0124-Try-prefix-if-fw_path-doesn-t-work.patch index aed5d8ea..91aae07c 100644 --- a/0124-Try-prefix-if-fw_path-doesn-t-work.patch +++ b/0124-Try-prefix-if-fw_path-doesn-t-work.patch @@ -1,7 +1,7 @@ From 0c98cb57eb1a34ec29f719e3a798f5b20c6a4082 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 3 Oct 2014 11:08:03 -0400 -Subject: [PATCH 124/227] Try $prefix if $fw_path doesn't work. +Subject: [PATCH 124/229] Try $prefix if $fw_path doesn't work. Related: rhbz#1148652 diff --git a/0125-Update-info-with-grub.cfg-netboot-selection-order-11.patch b/0125-Update-info-with-grub.cfg-netboot-selection-order-11.patch index c8b76b67..0588a071 100644 --- a/0125-Update-info-with-grub.cfg-netboot-selection-order-11.patch +++ b/0125-Update-info-with-grub.cfg-netboot-selection-order-11.patch @@ -1,7 +1,7 @@ From d446fed131fadd00d0daab0654c7d9e14442d451 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Mon, 16 Mar 2015 16:34:51 -0400 -Subject: [PATCH 125/227] Update info with grub.cfg netboot selection order +Subject: [PATCH 125/229] Update info with grub.cfg netboot selection order (#1148650) Added documentation to the grub info page that specifies the order diff --git a/0126-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch b/0126-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch index 8fb6f664..c9a9c47e 100644 --- a/0126-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch +++ b/0126-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch @@ -1,7 +1,7 @@ From e62ab1057d87e2a1e3c7fcf6b134f86ec24f2eac Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Mon, 16 Mar 2015 14:14:19 -0400 -Subject: [PATCH 126/227] Use Distribution Package Sort for grub2-mkconfig +Subject: [PATCH 126/229] Use Distribution Package Sort for grub2-mkconfig (#1124074) Users reported that newly installed kernels on their systems installed diff --git a/0127-Handle-rssd-storage-devices.patch b/0127-Handle-rssd-storage-devices.patch index 186faa2a..d05ce983 100644 --- a/0127-Handle-rssd-storage-devices.patch +++ b/0127-Handle-rssd-storage-devices.patch @@ -1,7 +1,7 @@ From 8d3f2f0f389efbb9ed5da0c4f90fc82d104163c1 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 30 Jun 2015 15:50:41 -0400 -Subject: [PATCH 127/227] Handle rssd storage devices. +Subject: [PATCH 127/229] Handle rssd storage devices. Resolves: rhbz#1087962 diff --git a/0128-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch b/0128-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch index 82ec9307..a01ff4a5 100644 --- a/0128-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch +++ b/0128-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch @@ -1,7 +1,7 @@ From e5ed14fb98e18d173f9396103aca65351e4e67e2 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 27 Oct 2014 09:22:55 -0400 -Subject: [PATCH 128/227] Try to emit linux16/initrd16 and linuxefi/initrdefi +Subject: [PATCH 128/229] Try to emit linux16/initrd16 and linuxefi/initrdefi in 30-os_prober. Resolves: rhbz#1108296 diff --git a/0129-Make-grub2-mkconfig-construct-titles-that-look-like-.patch b/0129-Make-grub2-mkconfig-construct-titles-that-look-like-.patch index 38e20d69..b16f11e2 100644 --- a/0129-Make-grub2-mkconfig-construct-titles-that-look-like-.patch +++ b/0129-Make-grub2-mkconfig-construct-titles-that-look-like-.patch @@ -1,7 +1,7 @@ From 75c3d5fedb92fcf107b594216655c29bb20cbebc Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 28 Apr 2015 11:15:03 -0400 -Subject: [PATCH 129/227] Make grub2-mkconfig construct titles that look like +Subject: [PATCH 129/229] Make grub2-mkconfig construct titles that look like the ones we want elsewhere. Resolves: rhbz#1215839 diff --git a/0130-Add-friendly-grub2-password-config-tool-985962.patch b/0130-Add-friendly-grub2-password-config-tool-985962.patch index 5ef255d2..8181b963 100644 --- a/0130-Add-friendly-grub2-password-config-tool-985962.patch +++ b/0130-Add-friendly-grub2-password-config-tool-985962.patch @@ -1,7 +1,7 @@ From d03d08a8ba14eddda515907cafc640fb1dbe0874 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Thu, 25 Jun 2015 11:13:11 -0400 -Subject: [PATCH 130/227] Add friendly grub2 password config tool (#985962) +Subject: [PATCH 130/229] Add friendly grub2 password config tool (#985962) Provided a tool for users to reset the grub2 root user password without having to alter the grub.cfg. The hashed password now diff --git a/0131-Make-grub2-mkconfig-construct-titles-that-look-like-.patch b/0131-Make-grub2-mkconfig-construct-titles-that-look-like-.patch index b9d9af05..376ab522 100644 --- a/0131-Make-grub2-mkconfig-construct-titles-that-look-like-.patch +++ b/0131-Make-grub2-mkconfig-construct-titles-that-look-like-.patch @@ -1,7 +1,7 @@ From 7d9c29023e6c242306ae008a984245037655a23c Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 28 Apr 2015 11:15:03 -0400 -Subject: [PATCH 131/227] Make grub2-mkconfig construct titles that look like +Subject: [PATCH 131/229] Make grub2-mkconfig construct titles that look like the ones we want elsewhere. Resolves: rhbz#1215839 diff --git a/0132-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch b/0132-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch index 87b3ced1..53940ec2 100644 --- a/0132-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch +++ b/0132-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch @@ -1,7 +1,7 @@ From e97b5c4ec2f11ac544c3c1de8fa5b84ac24d9536 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 3 Aug 2015 11:46:42 -0400 -Subject: [PATCH 132/227] Try to make sure configure.ac and grub-rpm-sort play +Subject: [PATCH 132/229] Try to make sure configure.ac and grub-rpm-sort play nice. Apparently the test for whether to use grub-rpm-sort and also the diff --git a/0133-tcp-add-window-scaling-support.patch b/0133-tcp-add-window-scaling-support.patch index 4dd6b6ba..60632365 100644 --- a/0133-tcp-add-window-scaling-support.patch +++ b/0133-tcp-add-window-scaling-support.patch @@ -1,7 +1,7 @@ From df119e7a941f0e1329181d33d63349375b9b56d9 Mon Sep 17 00:00:00 2001 From: Josef Bacik Date: Wed, 12 Aug 2015 08:57:55 -0700 -Subject: [PATCH 133/227] tcp: add window scaling support +Subject: [PATCH 133/229] tcp: add window scaling support Sometimes we have to provision boxes across regions, such as California to Sweden. The http server has a 10 minute timeout, so if we can't get our 250mb diff --git a/0134-efinet-retransmit-if-our-device-is-busy.patch b/0134-efinet-retransmit-if-our-device-is-busy.patch index 99c93123..4ff907f2 100644 --- a/0134-efinet-retransmit-if-our-device-is-busy.patch +++ b/0134-efinet-retransmit-if-our-device-is-busy.patch @@ -1,7 +1,7 @@ From d4f94fc4cd48954f757d6efb82311eb3256389e4 Mon Sep 17 00:00:00 2001 From: Josef Bacik Date: Mon, 31 Aug 2015 13:34:35 -0400 -Subject: [PATCH 134/227] efinet: retransmit if our device is busy +Subject: [PATCH 134/229] efinet: retransmit if our device is busy When I fixed the txbuf handling I ripped out the retransmission code since it was flooding our network when we had the buggy behavior. Turns out this was too diff --git a/0135-Be-more-aggro-about-actually-using-the-configured-ne.patch b/0135-Be-more-aggro-about-actually-using-the-configured-ne.patch index bbf68622..0b650500 100644 --- a/0135-Be-more-aggro-about-actually-using-the-configured-ne.patch +++ b/0135-Be-more-aggro-about-actually-using-the-configured-ne.patch @@ -1,7 +1,7 @@ From d4eb7984ad8938e50764c541f0e8f4c8d6d012f8 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 11 Sep 2015 17:30:49 -0400 -Subject: [PATCH 135/227] Be more aggro about actually using the *configured* +Subject: [PATCH 135/229] Be more aggro about actually using the *configured* network device. Right now we use any SNP device with the same mac+IP block, but when diff --git a/0136-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch b/0136-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch index 34b1b92e..99ddeedf 100644 --- a/0136-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch +++ b/0136-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch @@ -1,7 +1,7 @@ From fdbc8b81c9f3bbef64298dbf1f5230eda0cda02f Mon Sep 17 00:00:00 2001 From: RHEL Ninjas Date: Fri, 25 Sep 2015 16:24:23 +0900 -Subject: [PATCH 136/227] efinet: add filter for the first exclusive reopen of +Subject: [PATCH 136/229] efinet: add filter for the first exclusive reopen of SNP --- diff --git a/0137-Fix-security-issue-when-reading-username-and-passwor.patch b/0137-Fix-security-issue-when-reading-username-and-passwor.patch index 416a75b7..3fac2465 100644 --- a/0137-Fix-security-issue-when-reading-username-and-passwor.patch +++ b/0137-Fix-security-issue-when-reading-username-and-passwor.patch @@ -1,7 +1,7 @@ From fa4b152860e04053ee1cae6b70237a1975473a81 Mon Sep 17 00:00:00 2001 From: Hector Marco-Gisbert Date: Fri, 13 Nov 2015 16:21:09 +0100 -Subject: [PATCH 137/227] Fix security issue when reading username and password +Subject: [PATCH 137/229] Fix security issue when reading username and password This patch fixes two integer underflows at: * grub-core/lib/crypto.c diff --git a/0138-Warn-if-grub-password-will-not-be-read-1290803.patch b/0138-Warn-if-grub-password-will-not-be-read-1290803.patch index 81970f4d..55a74f00 100644 --- a/0138-Warn-if-grub-password-will-not-be-read-1290803.patch +++ b/0138-Warn-if-grub-password-will-not-be-read-1290803.patch @@ -1,7 +1,7 @@ From c8ed108d2f3f9b57add84e282fef6e39634aec99 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Mon, 22 Feb 2016 15:30:05 -0500 -Subject: [PATCH 138/227] Warn if grub password will not be read (#1290803) +Subject: [PATCH 138/229] Warn if grub password will not be read (#1290803) It is possible for a system to have never run grub-mkconfig and add the section that reads the user.cfg file which contains a user set GRUB diff --git a/0139-Clean-up-grub-setpassword-documentation-1290799.patch b/0139-Clean-up-grub-setpassword-documentation-1290799.patch index 60e445f9..00a8cfca 100644 --- a/0139-Clean-up-grub-setpassword-documentation-1290799.patch +++ b/0139-Clean-up-grub-setpassword-documentation-1290799.patch @@ -1,7 +1,7 @@ From 884c7f7b14633fc47d5cada7f02df6fb5176b224 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Tue, 26 Jan 2016 10:28:35 -0500 -Subject: [PATCH 139/227] Clean up grub-setpassword documentation (#1290799) +Subject: [PATCH 139/229] Clean up grub-setpassword documentation (#1290799) The output for --help had some errors. Corrected those and polished the text to be a little easier to follow. Carried verbage over to man page diff --git a/0140-Fix-locale-issue-in-grub-setpassword-1294243.patch b/0140-Fix-locale-issue-in-grub-setpassword-1294243.patch index ffec0374..e33d2789 100644 --- a/0140-Fix-locale-issue-in-grub-setpassword-1294243.patch +++ b/0140-Fix-locale-issue-in-grub-setpassword-1294243.patch @@ -1,7 +1,7 @@ From 5f3812d1820b13137b5c79b135a6b790cb78ae60 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Fri, 29 Jan 2016 16:56:11 -0500 -Subject: [PATCH 140/227] Fix locale issue in grub-setpassword (#1294243) +Subject: [PATCH 140/229] Fix locale issue in grub-setpassword (#1294243) A shell substitution was expecting non-translated output to grab the hashed password and put it in the user.cfg file. Modified code to force diff --git a/0141-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch b/0141-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch index 00c61707..6f1ba40d 100644 --- a/0141-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch +++ b/0141-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch @@ -1,7 +1,7 @@ From a7a38221a7f4593a9abb5f422d0dd349866ed029 Mon Sep 17 00:00:00 2001 From: Robert Elliott Date: Fri, 22 Jan 2016 13:32:30 +0100 -Subject: [PATCH 141/227] efiemu: Handle persistent RAM and unknown possible +Subject: [PATCH 141/229] efiemu: Handle persistent RAM and unknown possible future additions. (cherry picked from commit ae3b83a4d4df75a01198a2fed7542391e7c449e0) diff --git a/0142-efiemu-Fix-compilation-failure.patch b/0142-efiemu-Fix-compilation-failure.patch index bd6f225f..964b1c64 100644 --- a/0142-efiemu-Fix-compilation-failure.patch +++ b/0142-efiemu-Fix-compilation-failure.patch @@ -1,7 +1,7 @@ From 1da43f34f211772fbda36ef6fd81e1cbde37eae7 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Fri, 22 Jan 2016 14:10:30 +0100 -Subject: [PATCH 142/227] efiemu: Fix compilation failure +Subject: [PATCH 142/229] efiemu: Fix compilation failure (cherry picked from commit b6a03dfd327489d53ee07c6d7d593b99c7b7cb62) diff --git a/0143-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch b/0143-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch index 9883f11f..3a92d7c9 100644 --- a/0143-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch +++ b/0143-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch @@ -1,7 +1,7 @@ From 9b93a986a68502c1ab2303efd7469fda0c5709cf Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 7 Apr 2016 10:58:06 -0400 -Subject: [PATCH 143/227] Revert "reopen SNP protocol for exclusive use by +Subject: [PATCH 143/229] Revert "reopen SNP protocol for exclusive use by grub" I *think* this should have been replaced by upstream's diff --git a/0144-Add-a-url-parser.patch b/0144-Add-a-url-parser.patch index bbb66afb..9287bd9e 100644 --- a/0144-Add-a-url-parser.patch +++ b/0144-Add-a-url-parser.patch @@ -1,7 +1,7 @@ From 520e6078ff9e3fbf1edf687e51597dac98c07d56 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jun 2016 16:18:44 -0400 -Subject: [PATCH 144/227] Add a url parser. +Subject: [PATCH 144/229] Add a url parser. This patch adds a url parser that can parse http, https, tftp, and tftps urls, and is easily extensible to handle more types. diff --git a/0145-efinet-and-bootp-add-support-for-dhcpv6.patch b/0145-efinet-and-bootp-add-support-for-dhcpv6.patch index b7d3a107..aac69f12 100644 --- a/0145-efinet-and-bootp-add-support-for-dhcpv6.patch +++ b/0145-efinet-and-bootp-add-support-for-dhcpv6.patch @@ -1,7 +1,7 @@ From 0bdcc68529fe2f3cdf92173fadffd2f9a6476b9b Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 8 Jun 2016 21:03:37 -0400 -Subject: [PATCH 145/227] efinet and bootp: add support for dhcpv6 +Subject: [PATCH 145/229] efinet and bootp: add support for dhcpv6 Signed-off-by: Peter Jones --- diff --git a/0146-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch b/0146-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch index 6041008a..48b56f74 100644 --- a/0146-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch +++ b/0146-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch @@ -1,7 +1,7 @@ From dcadcc9070f778654eb704fc0907e261996ef76e Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 23 Jun 2016 11:01:39 -0400 -Subject: [PATCH 146/227] Add grub-get-kernel-settings and use it in 10_linux +Subject: [PATCH 146/229] Add grub-get-kernel-settings and use it in 10_linux This patch adds grub-get-kernel-settings, which reads the system kernel installation configuration from /etc/sysconfig/kernel, and outputs diff --git a/0147-Normalize-slashes-in-tftp-paths.patch b/0147-Normalize-slashes-in-tftp-paths.patch index 0385e899..73dd7117 100644 --- a/0147-Normalize-slashes-in-tftp-paths.patch +++ b/0147-Normalize-slashes-in-tftp-paths.patch @@ -1,7 +1,7 @@ From 130783c1e461b64befbf0fa8c9002ef763606105 Mon Sep 17 00:00:00 2001 From: Lenny Szubowicz Date: Mon, 29 Aug 2016 11:04:48 -0400 -Subject: [PATCH 147/227] Normalize slashes in tftp paths. +Subject: [PATCH 147/229] Normalize slashes in tftp paths. Some tftp servers do not handle multiple consecutive slashes correctly; this patch avoids sending tftp requests with non-normalized paths. diff --git a/0148-Fix-malformed-tftp-packets.patch b/0148-Fix-malformed-tftp-packets.patch index 692116c4..7aa075e1 100644 --- a/0148-Fix-malformed-tftp-packets.patch +++ b/0148-Fix-malformed-tftp-packets.patch @@ -1,7 +1,7 @@ From af0e4fc8f9cd844c44c969c0991269ec9ab01a62 Mon Sep 17 00:00:00 2001 From: Mark Salter Date: Tue, 7 Mar 2017 18:26:17 -0500 -Subject: [PATCH 148/227] Fix malformed tftp packets +Subject: [PATCH 148/229] Fix malformed tftp packets 0088-Normalize-slashes-in-tftp-paths.patch collapses multiple contiguous slashes in a filename into one slash in the tftp packet filename field. diff --git a/0149-Fix-race-in-EFI-validation.patch b/0149-Fix-race-in-EFI-validation.patch index 22f42731..791d0f86 100644 --- a/0149-Fix-race-in-EFI-validation.patch +++ b/0149-Fix-race-in-EFI-validation.patch @@ -1,7 +1,7 @@ From d5339007d0ffdaf6e8a4e9702e7cec447b118804 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 14 Jul 2015 16:58:51 -0700 -Subject: [PATCH 149/227] Fix race in EFI validation +Subject: [PATCH 149/229] Fix race in EFI validation --- grub-core/loader/i386/efi/linux.c | 44 ++++++++++----------------------------- diff --git a/0150-bz1374141-fix-incorrect-mask-for-ppc64.patch b/0150-bz1374141-fix-incorrect-mask-for-ppc64.patch index d7910e24..92ca6b58 100644 --- a/0150-bz1374141-fix-incorrect-mask-for-ppc64.patch +++ b/0150-bz1374141-fix-incorrect-mask-for-ppc64.patch @@ -1,7 +1,7 @@ From eea2b6113c2f17ed5755b23242457948025bfd33 Mon Sep 17 00:00:00 2001 From: Masahiro Matsuya Date: Sat, 29 Oct 2016 08:35:26 +0900 -Subject: [PATCH 150/227] bz1374141 fix incorrect mask for ppc64 +Subject: [PATCH 150/229] bz1374141 fix incorrect mask for ppc64 The netmask configured in firmware is not respected on ppc64 (big endian). When 255.255.252.0 is set as netmask in firmware, the following is the value of bootpath string in grub_ieee1275_parse_bootpath(). diff --git a/0151-Use-device-part-of-chainloader-target-if-present.patch b/0151-Use-device-part-of-chainloader-target-if-present.patch index e5b7e7e1..83a911c9 100644 --- a/0151-Use-device-part-of-chainloader-target-if-present.patch +++ b/0151-Use-device-part-of-chainloader-target-if-present.patch @@ -1,7 +1,7 @@ From d08c1a531d80b4e14a7bfeb0d762125f4fab1317 Mon Sep 17 00:00:00 2001 From: Raymund Will Date: Fri, 10 Apr 2015 01:45:02 -0400 -Subject: [PATCH 151/227] Use device part of chainloader target, if present. +Subject: [PATCH 151/229] Use device part of chainloader target, if present. Otherwise chainloading is restricted to '$root', which might not even be readable by EFI! diff --git a/0152-Add-secureboot-support-on-efi-chainloader.patch b/0152-Add-secureboot-support-on-efi-chainloader.patch index 984bb24f..57324601 100644 --- a/0152-Add-secureboot-support-on-efi-chainloader.patch +++ b/0152-Add-secureboot-support-on-efi-chainloader.patch @@ -1,7 +1,7 @@ From 729766b6416f6ca13c694ce220c3b2156ced1691 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 6 Oct 2015 13:04:37 -0400 -Subject: [PATCH 152/227] Add secureboot support on efi chainloader +Subject: [PATCH 152/229] Add secureboot support on efi chainloader Expand the chainloader to be able to verify the image by means of shim lock protocol. The PE/COFF image is loaded and relocated by the diff --git a/0153-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch b/0153-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch index 57a2e2ca..4bbca640 100644 --- a/0153-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch +++ b/0153-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch @@ -1,7 +1,7 @@ From fe18b297027c4976d11b87f1b5adc07a7565cdee Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 6 Oct 2015 16:09:25 -0400 -Subject: [PATCH 153/227] Make any of the loaders that link in efi mode honor +Subject: [PATCH 153/229] Make any of the loaders that link in efi mode honor secure boot. And in this case "honor" means "even if somebody does link this in, they diff --git a/0154-Make-grub_fatal-also-backtrace.patch b/0154-Make-grub_fatal-also-backtrace.patch index 9f465634..f73247f2 100644 --- a/0154-Make-grub_fatal-also-backtrace.patch +++ b/0154-Make-grub_fatal-also-backtrace.patch @@ -1,7 +1,7 @@ From b2fd6377486d66ced5fd82325c3ee8e11f4f1176 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 27 Jan 2016 09:22:42 -0500 -Subject: [PATCH 154/227] Make grub_fatal() also backtrace. +Subject: [PATCH 154/229] Make grub_fatal() also backtrace. --- grub-core/Makefile.core.def | 3 ++ diff --git a/0155-Rework-linux-command.patch b/0155-Rework-linux-command.patch index d22067bd..31d83837 100644 --- a/0155-Rework-linux-command.patch +++ b/0155-Rework-linux-command.patch @@ -1,7 +1,7 @@ From 4fec1bb24e09f36366c62196285392a674d259d3 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 16:12:39 -0700 -Subject: [PATCH 155/227] Rework linux command +Subject: [PATCH 155/229] Rework linux command We want a single buffer that contains the entire kernel image in order to perform a TPM measurement. Allocate one and copy the entire kernel into it diff --git a/0156-Rework-linux16-command.patch b/0156-Rework-linux16-command.patch index ed902d32..a2e60035 100644 --- a/0156-Rework-linux16-command.patch +++ b/0156-Rework-linux16-command.patch @@ -1,7 +1,7 @@ From 7d6ce3346f32a67e07fd3fda9ad65ac76f600628 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 16:20:58 -0700 -Subject: [PATCH 156/227] Rework linux16 command +Subject: [PATCH 156/229] Rework linux16 command We want a single buffer that contains the entire kernel image in order to perform a TPM measurement. Allocate one and copy the entire kernel int it diff --git a/0157-Make-grub-editenv-build-again.patch b/0157-Make-grub-editenv-build-again.patch index 8aa6a796..c431d59c 100644 --- a/0157-Make-grub-editenv-build-again.patch +++ b/0157-Make-grub-editenv-build-again.patch @@ -1,7 +1,7 @@ From 4e0105392434bac9f10ac79a820a69098abec2f5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 4 Mar 2016 16:29:13 -0500 -Subject: [PATCH 157/227] Make grub-editenv build again. +Subject: [PATCH 157/229] Make grub-editenv build again. 36212460d3565b18439a3a8130b28e6c97702c6a split how some of the mkimage utility functions are defined, and they wind up being linked into diff --git a/0158-Fix-up-some-man-pages-rpmdiff-noticed.patch b/0158-Fix-up-some-man-pages-rpmdiff-noticed.patch index 26f7e6fd..4b9c25ba 100644 --- a/0158-Fix-up-some-man-pages-rpmdiff-noticed.patch +++ b/0158-Fix-up-some-man-pages-rpmdiff-noticed.patch @@ -1,7 +1,7 @@ From 7779112786e3f892e05b9d293299dd7ef151d9dd Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 23 Sep 2014 09:58:49 -0400 -Subject: [PATCH 158/227] Fix up some man pages rpmdiff noticed. +Subject: [PATCH 158/229] Fix up some man pages rpmdiff noticed. --- configure.ac | 2 ++ diff --git a/0159-Re-work-some-intricacies-of-PE-loading.patch b/0159-Re-work-some-intricacies-of-PE-loading.patch index 0a947949..7cd15558 100644 --- a/0159-Re-work-some-intricacies-of-PE-loading.patch +++ b/0159-Re-work-some-intricacies-of-PE-loading.patch @@ -1,7 +1,7 @@ From 9ca2908ab56bc32052b2f01bda6a35a190e39bae Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 9 Jun 2016 12:22:29 -0400 -Subject: [PATCH 159/227] Re-work some intricacies of PE loading. +Subject: [PATCH 159/229] Re-work some intricacies of PE loading. The PE spec is not a well written document, and awesomely every place where there's an ambiguous way to read something, Windows' bootmgfw.efi diff --git a/0160-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch b/0160-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch index daeca9ac..3e99ce72 100644 --- a/0160-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch +++ b/0160-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch @@ -1,7 +1,7 @@ From d8441e12feab1ae94f11849d1bcc5e73abb69231 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 10 Jun 2016 14:06:15 -0400 -Subject: [PATCH 160/227] Rework even more of efi chainload so non-sb cases +Subject: [PATCH 160/229] Rework even more of efi chainload so non-sb cases work right. This ensures that if shim protocol is not loaded, or is loaded but shim diff --git a/0161-linuxefi-fix-double-free-on-verification-failure.patch b/0161-linuxefi-fix-double-free-on-verification-failure.patch index 9dbaab64..3b2f6f9f 100644 --- a/0161-linuxefi-fix-double-free-on-verification-failure.patch +++ b/0161-linuxefi-fix-double-free-on-verification-failure.patch @@ -1,7 +1,7 @@ From e432d9b485112f0d35fd623e4b2467a3d788a38f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jun 2016 09:50:25 -0400 -Subject: [PATCH 161/227] linuxefi: fix double free on verification failure. +Subject: [PATCH 161/229] linuxefi: fix double free on verification failure. Signed-off-by: Peter Jones --- diff --git a/0162-fix-machine-type-test-in-30_os-prober.in.patch b/0162-fix-machine-type-test-in-30_os-prober.in.patch index 1cc7170c..bcf22c14 100644 --- a/0162-fix-machine-type-test-in-30_os-prober.in.patch +++ b/0162-fix-machine-type-test-in-30_os-prober.in.patch @@ -1,7 +1,7 @@ From 33faccd6c6f23774bbbbc83731a712a7bed76c3f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 11 Jul 2016 13:36:45 -0400 -Subject: [PATCH 162/227] fix machine type test in 30_os-prober.in +Subject: [PATCH 162/229] fix machine type test in 30_os-prober.in Signed-off-by: Peter Jones --- diff --git a/0163-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch b/0163-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch index 2f41f34d..bc96cbb4 100644 --- a/0163-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch +++ b/0163-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch @@ -1,7 +1,7 @@ From ab9c2a7711858b2300abf802230c044db55c5171 Mon Sep 17 00:00:00 2001 From: Laszlo Ersek Date: Mon, 21 Nov 2016 15:34:00 +0100 -Subject: [PATCH 163/227] efi/chainloader: fix wrong sanity check in +Subject: [PATCH 163/229] efi/chainloader: fix wrong sanity check in relocate_coff() In relocate_coff(), the relocation entries are parsed from the original diff --git a/0164-efi-chainloader-truncate-overlong-relocation-section.patch b/0164-efi-chainloader-truncate-overlong-relocation-section.patch index 78eac3e8..1c0fdbfd 100644 --- a/0164-efi-chainloader-truncate-overlong-relocation-section.patch +++ b/0164-efi-chainloader-truncate-overlong-relocation-section.patch @@ -1,7 +1,7 @@ From 243bfac3395d76a7fc7344c5471e49ea41689233 Mon Sep 17 00:00:00 2001 From: Laszlo Ersek Date: Wed, 23 Nov 2016 06:27:09 +0100 -Subject: [PATCH 164/227] efi/chainloader: truncate overlong relocation section +Subject: [PATCH 164/229] efi/chainloader: truncate overlong relocation section The UEFI Windows 7 boot loader ("EFI/Microsoft/Boot/bootmgfw.efi", SHA1 31b410e029bba87d2068c65a80b88882f9f8ea25) has inconsistent headers. diff --git a/0165-linuxefi-minor-cleanups.patch b/0165-linuxefi-minor-cleanups.patch index 6d8cfed5..1c706cef 100644 --- a/0165-linuxefi-minor-cleanups.patch +++ b/0165-linuxefi-minor-cleanups.patch @@ -1,7 +1,7 @@ From ea34d6d6755dcd818fe6e74526a58a4f818f711a Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Feb 2017 16:31:52 -0500 -Subject: [PATCH 165/227] linuxefi: minor cleanups +Subject: [PATCH 165/229] linuxefi: minor cleanups Signed-off-by: Peter Jones --- diff --git a/0166-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch b/0166-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch index a1aba1c8..d3ae53a1 100644 --- a/0166-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch +++ b/0166-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch @@ -1,7 +1,7 @@ From 543b4c21f3bf43b8919bd4b47195ebb542b73733 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Feb 2017 16:18:54 -0500 -Subject: [PATCH 166/227] Handle multi-arch (64-on-32) boot in linuxefi loader. +Subject: [PATCH 166/229] Handle multi-arch (64-on-32) boot in linuxefi loader. Allow booting 64-bit kernels on 32-bit EFI on x86. diff --git a/0167-Fix-up-linux-params-usage.patch b/0167-Fix-up-linux-params-usage.patch index ea529dec..bdb06e4f 100644 --- a/0167-Fix-up-linux-params-usage.patch +++ b/0167-Fix-up-linux-params-usage.patch @@ -1,7 +1,7 @@ From 02a30356c3a09ac0959abdc4a29b88a59e1f1ac1 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 30 May 2017 14:16:07 -0400 -Subject: [PATCH 167/227] Fix up linux params usage... +Subject: [PATCH 167/229] Fix up linux params usage... Signed-off-by: Peter Jones --- diff --git a/0168-Make-exit-take-a-return-code.patch b/0168-Make-exit-take-a-return-code.patch index a84a7242..e659bfa9 100644 --- a/0168-Make-exit-take-a-return-code.patch +++ b/0168-Make-exit-take-a-return-code.patch @@ -1,7 +1,7 @@ From 874de3a91070b6f056434f2fce48d778ff84c665 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 26 Feb 2014 21:49:12 -0500 -Subject: [PATCH 168/227] Make "exit" take a return code. +Subject: [PATCH 168/229] Make "exit" take a return code. This adds "exit" with a return code. With this patch, any "exit" command /may/ include a return code, and on platforms that support diff --git a/0169-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch b/0169-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch index 2653340c..3f5f612c 100644 --- a/0169-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch +++ b/0169-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch @@ -1,7 +1,7 @@ From a327d2275238e8dd54ec8599d2d158e9cdd7693c Mon Sep 17 00:00:00 2001 From: Mark Salter Date: Mon, 17 Apr 2017 08:44:29 -0400 -Subject: [PATCH 169/227] arm64: make sure fdt has #address-cells and +Subject: [PATCH 169/229] arm64: make sure fdt has #address-cells and #size-cells properties Recent upstream changes to kexec-tools relies on #address-cells diff --git a/0170-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch b/0170-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch index 1c25e9d7..691a72bc 100644 --- a/0170-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch +++ b/0170-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch @@ -1,7 +1,7 @@ From 848a699f96e8529a30a47670051c5cb1f1a91d66 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 9 May 2016 14:15:17 -0400 -Subject: [PATCH 170/227] Add some grub_dprintf() in the secure boot verify +Subject: [PATCH 170/229] Add some grub_dprintf() in the secure boot verify code. Signed-off-by: Peter Jones diff --git a/0171-Make-our-info-pages-say-grub2-where-appropriate.patch b/0171-Make-our-info-pages-say-grub2-where-appropriate.patch index 208a20c0..18748f37 100644 --- a/0171-Make-our-info-pages-say-grub2-where-appropriate.patch +++ b/0171-Make-our-info-pages-say-grub2-where-appropriate.patch @@ -1,7 +1,7 @@ From 004821d9e309f65e4ff533f66787663fe2a54eac Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 6 May 2016 18:43:08 -0400 -Subject: [PATCH 171/227] Make our info pages say "grub2" where appropriate. +Subject: [PATCH 171/229] Make our info pages say "grub2" where appropriate. This needs to be hooked up to --program-transform=, but I haven't had time. diff --git a/0172-print-more-debug-info-in-our-module-loader.patch b/0172-print-more-debug-info-in-our-module-loader.patch index c4a9b742..a58d3cf0 100644 --- a/0172-print-more-debug-info-in-our-module-loader.patch +++ b/0172-print-more-debug-info-in-our-module-loader.patch @@ -1,7 +1,7 @@ From 6025b0afe64157eb922d562e85f1734b7ce800c9 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 1 May 2017 11:19:40 -0400 -Subject: [PATCH 172/227] print more debug info in our module loader. +Subject: [PATCH 172/229] print more debug info in our module loader. Signed-off-by: Peter Jones --- diff --git a/0173-macos-just-build-chainloader-entries-don-t-try-any-x.patch b/0173-macos-just-build-chainloader-entries-don-t-try-any-x.patch index 4ab33403..8c050cb6 100644 --- a/0173-macos-just-build-chainloader-entries-don-t-try-any-x.patch +++ b/0173-macos-just-build-chainloader-entries-don-t-try-any-x.patch @@ -1,7 +1,7 @@ From 21539770394174892fe90ab9ce09a4d9a7e2a676 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 24 May 2017 12:42:32 -0400 -Subject: [PATCH 173/227] macos: just build chainloader entries, don't try any +Subject: [PATCH 173/229] macos: just build chainloader entries, don't try any xnu xnu. Since our bugs tell us that the xnu boot entries really just don't work diff --git a/0174-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch b/0174-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch index 1d7a61bf..8958bfe6 100644 --- a/0174-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch +++ b/0174-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch @@ -1,7 +1,7 @@ From ba06fbb797dff2261df7d211484c98905447ddb6 Mon Sep 17 00:00:00 2001 From: Jeff Mahoney Date: Wed, 18 Dec 2013 09:57:04 +0000 -Subject: [PATCH 174/227] grub2/btrfs: Add ability to boot from subvolumes +Subject: [PATCH 174/229] grub2/btrfs: Add ability to boot from subvolumes This patch adds the ability to specify a different root on a btrfs filesystem too boot from other than the default one. diff --git a/0175-export-btrfs_subvol-and-btrfs_subvolid.patch b/0175-export-btrfs_subvol-and-btrfs_subvolid.patch index cd92a442..188dc4dc 100644 --- a/0175-export-btrfs_subvol-and-btrfs_subvolid.patch +++ b/0175-export-btrfs_subvol-and-btrfs_subvolid.patch @@ -1,7 +1,7 @@ From c2d51bfc2fedf707ec4bc8cca9a10cb1100c6888 Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Wed, 18 Dec 2013 09:57:04 +0000 -Subject: [PATCH 175/227] export btrfs_subvol and btrfs_subvolid +Subject: [PATCH 175/229] export btrfs_subvol and btrfs_subvolid We should export btrfs_subvol and btrfs_subvolid to have both visible to subsidiary configuration files loaded using configfile. diff --git a/0176-grub2-btrfs-03-follow_default.patch b/0176-grub2-btrfs-03-follow_default.patch index 557d085a..ad38cb34 100644 --- a/0176-grub2-btrfs-03-follow_default.patch +++ b/0176-grub2-btrfs-03-follow_default.patch @@ -1,7 +1,7 @@ From afc0024ac644e80552c808e8b8def04fd7f89918 Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 21 Aug 2014 03:39:11 +0000 -Subject: [PATCH 176/227] grub2-btrfs-03-follow_default +Subject: [PATCH 176/229] grub2-btrfs-03-follow_default --- grub-core/fs/btrfs.c | 107 ++++++++++++++++++++++++++++++++++++--------------- diff --git a/0177-grub2-btrfs-04-grub2-install.patch b/0177-grub2-btrfs-04-grub2-install.patch index 95d71cb3..f3d1215c 100644 --- a/0177-grub2-btrfs-04-grub2-install.patch +++ b/0177-grub2-btrfs-04-grub2-install.patch @@ -1,7 +1,7 @@ From a5cb6219b1f4abb50cbe0254ee6a2850e379854f Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 21 Aug 2014 03:39:11 +0000 -Subject: [PATCH 177/227] grub2-btrfs-04-grub2-install +Subject: [PATCH 177/229] grub2-btrfs-04-grub2-install --- grub-core/osdep/linux/getroot.c | 7 +++++++ diff --git a/0178-grub2-btrfs-05-grub2-mkconfig.patch b/0178-grub2-btrfs-05-grub2-mkconfig.patch index f1c5f96d..5ed51ac0 100644 --- a/0178-grub2-btrfs-05-grub2-mkconfig.patch +++ b/0178-grub2-btrfs-05-grub2-mkconfig.patch @@ -1,7 +1,7 @@ From 3312b0eab4773f09b00d294e3438d6cf881d62ef Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 21 Aug 2014 03:39:11 +0000 -Subject: [PATCH 178/227] grub2-btrfs-05-grub2-mkconfig +Subject: [PATCH 178/229] grub2-btrfs-05-grub2-mkconfig --- util/grub-mkconfig.in | 3 ++- diff --git a/0179-grub2-btrfs-06-subvol-mount.patch b/0179-grub2-btrfs-06-subvol-mount.patch index 356b448a..db8766f6 100644 --- a/0179-grub2-btrfs-06-subvol-mount.patch +++ b/0179-grub2-btrfs-06-subvol-mount.patch @@ -1,7 +1,7 @@ From 421b1facc21a25ca28a48c9dd323c48c5ce8a46b Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Fri, 22 May 2015 11:45:25 +0000 -Subject: [PATCH 179/227] grub2-btrfs-06-subvol-mount +Subject: [PATCH 179/229] grub2-btrfs-06-subvol-mount --- grub-core/fs/btrfs.c | 195 +++++++++++++++++++++++++++++++++++++++- diff --git a/0180-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch b/0180-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch index 5ac77a51..e50fe75b 100644 --- a/0180-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch +++ b/0180-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch @@ -1,7 +1,7 @@ From 1eeea190cf2e134fddb448c7b55e6c82697f3f72 Mon Sep 17 00:00:00 2001 From: Dusty Mabe Date: Sat, 18 Jul 2015 15:38:08 +0000 -Subject: [PATCH 180/227] No more "Bootable Snapshot" submenu in grub.cfg. +Subject: [PATCH 180/229] No more "Bootable Snapshot" submenu in grub.cfg. This breaks grubby (run on kernel upgrades) because grubby just does a search for "menuentry". diff --git a/0181-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch b/0181-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch index 357d4ece..99692295 100644 --- a/0181-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch +++ b/0181-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch @@ -1,7 +1,7 @@ From 5f9e9d0d069b416175a2102edc574ffb9d523978 Mon Sep 17 00:00:00 2001 From: Andrei Borzenkov Date: Tue, 21 Jun 2016 16:44:17 +0000 -Subject: [PATCH 181/227] Fallback to old subvol name scheme to support old +Subject: [PATCH 181/229] Fallback to old subvol name scheme to support old snapshot config Ref: bsc#953538 diff --git a/0182-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch b/0182-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch index 218b2817..a85d5352 100644 --- a/0182-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch +++ b/0182-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch @@ -1,7 +1,7 @@ From 158b6b3987ed402ddcb6d0568acbb60cc7a01aac Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 11 May 2017 08:56:57 +0000 -Subject: [PATCH 182/227] Grub not working correctly with btrfs snapshots +Subject: [PATCH 182/229] Grub not working correctly with btrfs snapshots (bsc#1026511) --- diff --git a/0183-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch b/0183-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch index ba00ca72..ce5e2082 100644 --- a/0183-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch +++ b/0183-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch @@ -1,7 +1,7 @@ From bdc07d05d0eeb39f0c90e7f8f6850016ebc4bf6b Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 1 Jun 2017 09:59:56 -0400 -Subject: [PATCH 183/227] Add grub_efi_allocate_pool() and grub_efi_free_pool() +Subject: [PATCH 183/229] Add grub_efi_allocate_pool() and grub_efi_free_pool() wrappers. Signed-off-by: Peter Jones diff --git a/0184-Use-grub_efi_.-memory-helpers-where-reasonable.patch b/0184-Use-grub_efi_.-memory-helpers-where-reasonable.patch index ba40b504..557348f3 100644 --- a/0184-Use-grub_efi_.-memory-helpers-where-reasonable.patch +++ b/0184-Use-grub_efi_.-memory-helpers-where-reasonable.patch @@ -1,7 +1,7 @@ From 0e6c1a61c5a7c38bd04a0d494dade62bc2c8cd43 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 1 Jun 2017 10:06:38 -0400 -Subject: [PATCH 184/227] Use grub_efi_...() memory helpers where reasonable. +Subject: [PATCH 184/229] Use grub_efi_...() memory helpers where reasonable. This uses grub_efi_allocate_pool(), grub_efi_free_pool(), and grub_efi_free_pages() instead of open-coded efi_call_N() calls, so we diff --git a/0185-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch b/0185-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch index 80e9c66b..564e6093 100644 --- a/0185-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch +++ b/0185-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch @@ -1,7 +1,7 @@ From 4759e79a841a9d7eab743e67715459d3a864a29f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 1 Jun 2017 10:07:50 -0400 -Subject: [PATCH 185/227] Add PRIxGRUB_EFI_STATUS and use it. +Subject: [PATCH 185/229] Add PRIxGRUB_EFI_STATUS and use it. This avoids syntax checkers getting confused about if it's llx or lx. diff --git a/0186-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch b/0186-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch index e8f59391..26e9aea1 100644 --- a/0186-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch +++ b/0186-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch @@ -1,7 +1,7 @@ From c7bb1be13a759a55216c99662d660614a161c37f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:42:57 -0400 -Subject: [PATCH 186/227] Don't use dynamic sized arrays since we don't build +Subject: [PATCH 186/229] Don't use dynamic sized arrays since we don't build with -std=c99 --- diff --git a/0187-don-t-ignore-const.patch b/0187-don-t-ignore-const.patch index 5accfc6d..dd27d509 100644 --- a/0187-don-t-ignore-const.patch +++ b/0187-don-t-ignore-const.patch @@ -1,7 +1,7 @@ From 3eb59abe528f660e24e004a99b86686ea2f022c5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:43:22 -0400 -Subject: [PATCH 187/227] don't ignore const +Subject: [PATCH 187/229] don't ignore const --- grub-core/net/tftp.c | 2 +- diff --git a/0188-don-t-use-int-for-efi-status.patch b/0188-don-t-use-int-for-efi-status.patch index 77263767..841e2728 100644 --- a/0188-don-t-use-int-for-efi-status.patch +++ b/0188-don-t-use-int-for-efi-status.patch @@ -1,7 +1,7 @@ From d4517c646fb4617a9ac162489b2fbaf9c2fcdd7b Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:44:59 -0400 -Subject: [PATCH 188/227] don't use int for efi status +Subject: [PATCH 188/229] don't use int for efi status --- grub-core/kern/efi/efi.c | 2 +- diff --git a/0189-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch b/0189-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch index db6404e0..24e624fb 100644 --- a/0189-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch +++ b/0189-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch @@ -1,7 +1,7 @@ From 72eb71bcadf8f35851b15632e8ef4ad1d0a64513 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:46:23 -0400 -Subject: [PATCH 189/227] make GRUB_MOD_INIT() declare its function prototypes. +Subject: [PATCH 189/229] make GRUB_MOD_INIT() declare its function prototypes. --- include/grub/dl.h | 2 ++ diff --git a/0190-Clean-up-some-errors-in-the-linuxefi-loader.patch b/0190-Clean-up-some-errors-in-the-linuxefi-loader.patch index 72598ad4..649e08df 100644 --- a/0190-Clean-up-some-errors-in-the-linuxefi-loader.patch +++ b/0190-Clean-up-some-errors-in-the-linuxefi-loader.patch @@ -1,7 +1,7 @@ From e240faaa432ad7ba3f7ced51b983d8d663a83460 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 24 May 2017 15:58:18 -0400 -Subject: [PATCH 190/227] Clean up some errors in the linuxefi loader +Subject: [PATCH 190/229] Clean up some errors in the linuxefi loader Signed-off-by: Peter Jones --- diff --git a/0191-editenv-handle-relative-symlinks.patch b/0191-editenv-handle-relative-symlinks.patch index 7b06e660..556bb320 100644 --- a/0191-editenv-handle-relative-symlinks.patch +++ b/0191-editenv-handle-relative-symlinks.patch @@ -1,7 +1,7 @@ From 9778fafba22ec67f97bb35a34980230966ebe0de Mon Sep 17 00:00:00 2001 From: Jonathan Lebon Date: Mon, 14 Aug 2017 14:37:20 -0400 -Subject: [PATCH 191/227] editenv: handle relative symlinks +Subject: [PATCH 191/229] editenv: handle relative symlinks Handle symlinks with targets relative to the containing dir. This ensures that the rename operation does not depend on the cwd. diff --git a/0192-Make-libgrub.pp-depend-on-config-util.h.patch b/0192-Make-libgrub.pp-depend-on-config-util.h.patch index a488e439..2e0c111c 100644 --- a/0192-Make-libgrub.pp-depend-on-config-util.h.patch +++ b/0192-Make-libgrub.pp-depend-on-config-util.h.patch @@ -1,7 +1,7 @@ From b8baf7070cc80fc44ee998a4748029c893f5ab13 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 23 Aug 2017 10:37:27 -0400 -Subject: [PATCH 192/227] Make libgrub.pp depend on config-util.h +Subject: [PATCH 192/229] Make libgrub.pp depend on config-util.h If you build with "make -j48" a lot, sometimes you see: diff --git a/0193-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch b/0193-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch index cb783029..dc18ab73 100644 --- a/0193-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch +++ b/0193-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch @@ -1,7 +1,7 @@ From 385f38332007339ac7dd3e3e551c54faa3c32dbc Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 20 Apr 2017 13:29:06 -0400 -Subject: [PATCH 193/227] Don't guess /boot/efi/ as HFS+ on ppc machines in +Subject: [PATCH 193/229] Don't guess /boot/efi/ as HFS+ on ppc machines in grub-install This should never be trying this, and since we've consolidated the diff --git a/0194-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch b/0194-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch index 4dad9f3c..fbddf861 100644 --- a/0194-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch +++ b/0194-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch @@ -1,7 +1,7 @@ From 733966aa9d241a0987a7097eca74b0f58b426833 Mon Sep 17 00:00:00 2001 From: Konrad Rzeszutek Wilk Date: Mon, 28 Aug 2017 13:51:14 -0400 -Subject: [PATCH 194/227] Fix util/grub.d/20_linux_xen.in: Add xen_boot command +Subject: [PATCH 194/229] Fix util/grub.d/20_linux_xen.in: Add xen_boot command support for aarch64 Commit d33045ce7ffcb7c1e4a60c14d5ca64b36e3c5abe introduced diff --git a/0195-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch b/0195-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch index b7bcc4e3..18a950b2 100644 --- a/0195-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch +++ b/0195-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch @@ -1,7 +1,7 @@ From d592ef69ef92e3f7a414577af70678be706ff8c8 Mon Sep 17 00:00:00 2001 From: Konrad Rzeszutek Wilk Date: Mon, 28 Aug 2017 13:59:12 -0400 -Subject: [PATCH 195/227] Use grub-file to figure out whether multiboot2 should +Subject: [PATCH 195/229] Use grub-file to figure out whether multiboot2 should be used for Xen.gz The multiboot2 is much more preferable than multiboot. Especiall diff --git a/0196-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch b/0196-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch index 78be849c..61f39def 100644 --- a/0196-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch +++ b/0196-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch @@ -1,7 +1,7 @@ From ae2759407aad1b5cfee90299ef0a6f53ca4d3d9a Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 19 Oct 2017 11:29:11 -0400 -Subject: [PATCH 196/227] 20_linux_xen: load xen or multiboot{,2} modules as +Subject: [PATCH 196/229] 20_linux_xen: load xen or multiboot{,2} modules as needed. Signed-off-by: Peter Jones diff --git a/0197-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch b/0197-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch index 55657772..f46932ef 100644 --- a/0197-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch +++ b/0197-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch @@ -1,7 +1,7 @@ From d88a8ff86cb9c360bc92b75db69e5024b1e814cc Mon Sep 17 00:00:00 2001 From: "David E. Box" Date: Fri, 15 Sep 2017 15:37:05 -0700 -Subject: [PATCH 197/227] tsc: Change default tsc calibration method to pmtimer +Subject: [PATCH 197/229] tsc: Change default tsc calibration method to pmtimer on EFI systems On efi systems, make pmtimer based tsc calibration the default over the diff --git a/0198-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch b/0198-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch index 9344d76b..af81f67c 100644 --- a/0198-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch +++ b/0198-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch @@ -1,7 +1,7 @@ From ee10486cadcae785711ccc7c46dac24a500be8fc Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 7 Nov 2017 17:12:17 -0500 -Subject: [PATCH 198/227] Make pmtimer tsc calibration not take 51 seconds to +Subject: [PATCH 198/229] Make pmtimer tsc calibration not take 51 seconds to fail. On my laptop running at 2.4GHz, if I run a VM where tsc calibration diff --git a/0199-align-struct-efi_variable-better.patch b/0199-align-struct-efi_variable-better.patch index f689b071..6603c84c 100644 --- a/0199-align-struct-efi_variable-better.patch +++ b/0199-align-struct-efi_variable-better.patch @@ -1,7 +1,7 @@ From cfcacf01ed042f6354c5d4249bdc6d883d04b330 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 27 Feb 2018 13:55:35 -0500 -Subject: [PATCH 199/227] align struct efi_variable better... +Subject: [PATCH 199/229] align struct efi_variable better... --- include/grub/efiemu/runtime.h | 2 +- diff --git a/0200-Add-quicksort-implementation.patch b/0200-Add-quicksort-implementation.patch index bfc6f9db..5e9bc73b 100644 --- a/0200-Add-quicksort-implementation.patch +++ b/0200-Add-quicksort-implementation.patch @@ -1,7 +1,7 @@ From f46dc44957a3a31a86a215d43f3971fa4ca97318 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 9 Dec 2016 15:39:47 -0500 -Subject: [PATCH 200/227] Add quicksort implementation +Subject: [PATCH 200/229] Add quicksort implementation This will be used to sort the boot menu entries that are read from the BootLoaderSpec config files. diff --git a/0201-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch b/0201-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch index 0e304601..9cf4bc4f 100644 --- a/0201-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch +++ b/0201-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch @@ -1,7 +1,7 @@ From de3430a0a616a9600ccac0f0a9df661446661999 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 9 Dec 2016 15:40:58 -0500 -Subject: [PATCH 201/227] Add blscfg command support to parse BootLoaderSpec +Subject: [PATCH 201/229] Add blscfg command support to parse BootLoaderSpec config fragments The BootLoaderSpec (BLS) defines a scheme where different bootloaders can diff --git a/0202-Add-BLS-support-to-grub-mkconfig.patch b/0202-Add-BLS-support-to-grub-mkconfig.patch index 831b04b5..2bec2a63 100644 --- a/0202-Add-BLS-support-to-grub-mkconfig.patch +++ b/0202-Add-BLS-support-to-grub-mkconfig.patch @@ -1,7 +1,7 @@ From 9baa7c16e5138497862eba684d2c41e5ed16e787 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 9 Dec 2016 15:40:29 -0500 -Subject: [PATCH 202/227] Add BLS support to grub-mkconfig +Subject: [PATCH 202/229] Add BLS support to grub-mkconfig GRUB now has BootLoaderSpec support, the user can choose to use this by setting GRUB_ENABLE_BLSCFG to true in /etc/default/grub. On this setup, diff --git a/0203-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch b/0203-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch index 88a8d07d..3fedabe1 100644 --- a/0203-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch +++ b/0203-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch @@ -1,7 +1,7 @@ From 206697fab4e803807a83f1f7f330d3d009aba2fd Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 6 Feb 2018 11:02:09 +0100 -Subject: [PATCH 203/227] Remove duplicated grub_exit() definition for grub-emu +Subject: [PATCH 203/229] Remove duplicated grub_exit() definition for grub-emu platform The grub_exit() function signature was changed on all platforms to take a diff --git a/0204-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch b/0204-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch index 18a74272..0e6dd9ef 100644 --- a/0204-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch +++ b/0204-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch @@ -1,7 +1,7 @@ From 37844213b374844bc1a4056712241cf6d9421880 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 6 Feb 2018 11:16:28 +0100 -Subject: [PATCH 204/227] Don't attempt to backtrace on grub_abort() for +Subject: [PATCH 204/229] Don't attempt to backtrace on grub_abort() for grub-emu The emu platform doesn't have a grub_backtrace() implementation, so this diff --git a/0205-Enable-blscfg-command-for-the-emu-platform.patch b/0205-Enable-blscfg-command-for-the-emu-platform.patch index 1bb7821b..8204baf7 100644 --- a/0205-Enable-blscfg-command-for-the-emu-platform.patch +++ b/0205-Enable-blscfg-command-for-the-emu-platform.patch @@ -1,7 +1,7 @@ From 01839f5d2491ba1b5694d1c4b2f3c2818a2408ae Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Fri, 2 Feb 2018 11:36:29 +0100 -Subject: [PATCH 205/227] Enable blscfg command for the emu platform +Subject: [PATCH 205/229] Enable blscfg command for the emu platform Allow grub-emu to call a blscfg command. This may be useful for platforms that don't support GRUB, so grub-emu can be used to parse the BLS configs diff --git a/0206-Add-linux-and-initrd-commands-for-grub-emu.patch b/0206-Add-linux-and-initrd-commands-for-grub-emu.patch index 3b08b260..f11498e0 100644 --- a/0206-Add-linux-and-initrd-commands-for-grub-emu.patch +++ b/0206-Add-linux-and-initrd-commands-for-grub-emu.patch @@ -1,7 +1,7 @@ From f1a8f489ec2cafdcfbdd3b60ffc7752bed8c8528 Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Tue, 6 Feb 2018 09:09:00 +0100 -Subject: [PATCH 206/227] Add linux and initrd commands for grub-emu +Subject: [PATCH 206/229] Add linux and initrd commands for grub-emu When using grub-emu, the linux and initrd commands are used as arguments to the kexec command line tool, to allow booting the selected menu entry. diff --git a/0207-Fix-the-efidir-in-grub-setpassword.patch b/0207-Fix-the-efidir-in-grub-setpassword.patch index 98accaa3..203f5b6b 100644 --- a/0207-Fix-the-efidir-in-grub-setpassword.patch +++ b/0207-Fix-the-efidir-in-grub-setpassword.patch @@ -1,7 +1,7 @@ From 3682958910d45a129f38cb1f28bc61288f92a698 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 15 Mar 2018 14:12:54 -0400 -Subject: [PATCH 207/227] Fix the efidir in grub-setpassword +Subject: [PATCH 207/229] Fix the efidir in grub-setpassword Signed-off-by: Peter Jones --- diff --git a/0208-Add-grub2-switch-to-blscfg.patch b/0208-Add-grub2-switch-to-blscfg.patch index 3e4c835f..dadcdbf2 100644 --- a/0208-Add-grub2-switch-to-blscfg.patch +++ b/0208-Add-grub2-switch-to-blscfg.patch @@ -1,7 +1,7 @@ From 95d9f5c317fb59dbb47c1df531fe5ab6f61e55af Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 15 Mar 2018 14:12:40 -0400 -Subject: [PATCH 208/227] Add grub2-switch-to-blscfg +Subject: [PATCH 208/229] Add grub2-switch-to-blscfg Signed-off-by: Peter Jones --- diff --git a/0209-Add-grub_debug_enabled.patch b/0209-Add-grub_debug_enabled.patch index df29fc1f..040f3368 100644 --- a/0209-Add-grub_debug_enabled.patch +++ b/0209-Add-grub_debug_enabled.patch @@ -1,7 +1,7 @@ From 73a860b83bc81959baabceeec6e9a32102884a57 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 30 Nov 2017 15:11:39 -0500 -Subject: [PATCH 209/227] Add grub_debug_enabled() +Subject: [PATCH 209/229] Add grub_debug_enabled() --- grub-core/kern/misc.c | 21 ++++++++++++++++----- diff --git a/0210-make-better-backtraces.patch b/0210-make-better-backtraces.patch index eaed62ce..b65ecc59 100644 --- a/0210-make-better-backtraces.patch +++ b/0210-make-better-backtraces.patch @@ -1,7 +1,7 @@ From 775dacceb8acc4036737080040f592f48daeb6e8 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 6 Nov 2017 18:31:56 -0500 -Subject: [PATCH 210/227] make better backtraces +Subject: [PATCH 210/229] make better backtraces Signed-off-by: Peter Jones --- diff --git a/0211-normal-don-t-draw-our-startup-message-if-debug-is-se.patch b/0211-normal-don-t-draw-our-startup-message-if-debug-is-se.patch index bf6201c7..67f4784c 100644 --- a/0211-normal-don-t-draw-our-startup-message-if-debug-is-se.patch +++ b/0211-normal-don-t-draw-our-startup-message-if-debug-is-se.patch @@ -1,7 +1,7 @@ From cc1566933cbc2d8d56aa77ab1ca8a15392ee0d42 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 9 Nov 2017 15:58:52 -0500 -Subject: [PATCH 211/227] normal: don't draw our startup message if debug is +Subject: [PATCH 211/229] normal: don't draw our startup message if debug is set --- diff --git a/0212-Work-around-some-minor-include-path-weirdnesses.patch b/0212-Work-around-some-minor-include-path-weirdnesses.patch index 2f96dc74..36ed0035 100644 --- a/0212-Work-around-some-minor-include-path-weirdnesses.patch +++ b/0212-Work-around-some-minor-include-path-weirdnesses.patch @@ -1,7 +1,7 @@ From 1829abfbbb0544a06973eaa76659a282aae8b32d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 16 Mar 2018 13:28:57 -0400 -Subject: [PATCH 212/227] Work around some minor include path weirdnesses +Subject: [PATCH 212/229] Work around some minor include path weirdnesses Signed-off-by: Peter Jones --- diff --git a/0213-Make-it-possible-to-enabled-build-id-sha1.patch b/0213-Make-it-possible-to-enabled-build-id-sha1.patch index 8d2f1d03..756a5ea5 100644 --- a/0213-Make-it-possible-to-enabled-build-id-sha1.patch +++ b/0213-Make-it-possible-to-enabled-build-id-sha1.patch @@ -1,7 +1,7 @@ From 8e15f2dce2f8b2bdcad2d35da4d068e8af44eb1d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 25 Jun 2015 15:41:06 -0400 -Subject: [PATCH 213/227] Make it possible to enabled --build-id=sha1 +Subject: [PATCH 213/229] Make it possible to enabled --build-id=sha1 Signed-off-by: Peter Jones --- diff --git a/0214-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch b/0214-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch index ce36533b..9692527e 100644 --- a/0214-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch +++ b/0214-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch @@ -1,7 +1,7 @@ From 29216d4ad0f75587c42274ebd63b8526fa9e815c Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Sun, 28 Jun 2015 13:09:58 -0400 -Subject: [PATCH 214/227] Add grub_qdprintf() - grub_dprintf() without the +Subject: [PATCH 214/229] Add grub_qdprintf() - grub_dprintf() without the file+line number. This just makes copy+paste of our debug loading info easier. diff --git a/0215-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch b/0215-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch index 67802d06..cee34c3e 100644 --- a/0215-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch +++ b/0215-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch @@ -1,7 +1,7 @@ From bc8e33848ee9888fd8b3aa61b4d3ecf9094356aa Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 25 Jun 2015 15:11:36 -0400 -Subject: [PATCH 215/227] Make a "gdb" dprintf that tells us load addresses. +Subject: [PATCH 215/229] Make a "gdb" dprintf that tells us load addresses. This makes a grub_dprintf() call during platform init and during module loading that tells us the virtual addresses of the .text and .data diff --git a/0216-Only-attempt-to-scan-different-BLS-directories-on-EF.patch b/0216-Only-attempt-to-scan-different-BLS-directories-on-EF.patch index db9bb313..0d9766f9 100644 --- a/0216-Only-attempt-to-scan-different-BLS-directories-on-EF.patch +++ b/0216-Only-attempt-to-scan-different-BLS-directories-on-EF.patch @@ -1,7 +1,7 @@ From 62b3c9bf77feda2ae595c5e811b3918d3bf990a4 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 3 Apr 2018 15:42:47 +0200 -Subject: [PATCH 216/227] Only attempt to scan different BLS directories on EFI +Subject: [PATCH 216/229] Only attempt to scan different BLS directories on EFI machines Current BLS support attempted to scan for BLS directories, but this only diff --git a/0217-Core-TPM-support.patch b/0217-Core-TPM-support.patch index e63a607c..9dbdbcfb 100644 --- a/0217-Core-TPM-support.patch +++ b/0217-Core-TPM-support.patch @@ -1,7 +1,7 @@ From 7f4bde559545d19352072829fb9267b916c60fa3 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 14 Jul 2015 17:06:35 -0700 -Subject: [PATCH 217/227] Core TPM support +Subject: [PATCH 217/229] Core TPM support Add support for performing basic TPM measurements. Right now this only supports extending PCRs statically and only on UEFI and BIOS systems, but diff --git a/0218-Measure-kernel-initrd.patch b/0218-Measure-kernel-initrd.patch index 02a039c9..911f0dc5 100644 --- a/0218-Measure-kernel-initrd.patch +++ b/0218-Measure-kernel-initrd.patch @@ -1,7 +1,7 @@ From 556a7abe5d08b3b7b2d8446759587b17337fe9c9 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Thu, 16 Jul 2015 15:22:34 -0700 -Subject: [PATCH 218/227] Measure kernel + initrd +Subject: [PATCH 218/229] Measure kernel + initrd Measure the kernel and initrd when loaded on UEFI systems --- diff --git a/0219-Add-BIOS-boot-measurement.patch b/0219-Add-BIOS-boot-measurement.patch index 22e73d32..ec174580 100644 --- a/0219-Add-BIOS-boot-measurement.patch +++ b/0219-Add-BIOS-boot-measurement.patch @@ -1,7 +1,7 @@ From 8390e231d322fd94f7a8223f140c4bc5de2ba56f Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 15:48:51 -0700 -Subject: [PATCH 219/227] Add BIOS boot measurement +Subject: [PATCH 219/229] Add BIOS boot measurement Measure the on-disk grub core on BIOS systems - unlike UEFI, the firmware can't do this stage for us. diff --git a/0220-Measure-kernel-and-initrd-on-BIOS-systems.patch b/0220-Measure-kernel-and-initrd-on-BIOS-systems.patch index 7357ebbc..015c3cb8 100644 --- a/0220-Measure-kernel-and-initrd-on-BIOS-systems.patch +++ b/0220-Measure-kernel-and-initrd-on-BIOS-systems.patch @@ -1,7 +1,7 @@ From 2c3d5dcff2281c9f0894ce01b1c75be47dd13050 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 16:28:29 -0700 -Subject: [PATCH 220/227] Measure kernel and initrd on BIOS systems +Subject: [PATCH 220/229] Measure kernel and initrd on BIOS systems Measure the kernel and initrd when loaded on BIOS systems --- diff --git a/0221-Measure-the-kernel-commandline.patch b/0221-Measure-the-kernel-commandline.patch index 067cc6f1..3d575382 100644 --- a/0221-Measure-the-kernel-commandline.patch +++ b/0221-Measure-the-kernel-commandline.patch @@ -1,7 +1,7 @@ From eeca74b2e520dd3c0ca74deb8c6351e9ec14096c Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 16:32:29 -0700 -Subject: [PATCH 221/227] Measure the kernel commandline +Subject: [PATCH 221/229] Measure the kernel commandline Measure the kernel commandline to ensure that it hasn't been modified --- diff --git a/0222-Measure-commands.patch b/0222-Measure-commands.patch index 417aa702..ec24fb4d 100644 --- a/0222-Measure-commands.patch +++ b/0222-Measure-commands.patch @@ -1,7 +1,7 @@ From c45fb4188646f0ea2a8e37dd5e1fa069ca6f7b8a Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Mon, 10 Aug 2015 15:27:12 -0700 -Subject: [PATCH 222/227] Measure commands +Subject: [PATCH 222/229] Measure commands Measure each command executed by grub, which includes script execution. --- diff --git a/0223-Measure-multiboot-images-and-modules.patch b/0223-Measure-multiboot-images-and-modules.patch index 2922570c..e28d233d 100644 --- a/0223-Measure-multiboot-images-and-modules.patch +++ b/0223-Measure-multiboot-images-and-modules.patch @@ -1,7 +1,7 @@ -From 484c55d3bce0697de94d6dfd52aa8b8a92334aab Mon Sep 17 00:00:00 2001 +From 98dd154527b9cddaff15ab22b35c41815d9f1b13 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 1 Sep 2015 16:02:55 -0700 -Subject: [PATCH 223/227] Measure multiboot images and modules +Subject: [PATCH 223/229] Measure multiboot images and modules --- grub-core/loader/i386/multiboot_mbi.c | 3 +++ @@ -51,7 +51,7 @@ index fb044a60c79..0ca525380c9 100644 } diff --git a/grub-core/loader/multiboot_mbi2.c b/grub-core/loader/multiboot_mbi2.c -index b0679a9f6c9..99ef9036423 100644 +index b0679a9f6c9..a7b4a57ec4f 100644 --- a/grub-core/loader/multiboot_mbi2.c +++ b/grub-core/loader/multiboot_mbi2.c @@ -36,6 +36,7 @@ @@ -66,7 +66,7 @@ index b0679a9f6c9..99ef9036423 100644 COMPILE_TIME_ASSERT (MULTIBOOT_HEADER_ALIGN % 4 == 0); -+ grub_tpm_measure ((unsigned char *)mld.buffer, len, GRUB_KERNEL_PCR, filename); ++ grub_tpm_measure ((unsigned char *)buffer, len, GRUB_KERNEL_PCR, filename); + header = find_header (mld.buffer, len); - diff --git a/0224-Fix-boot-when-there-s-no-TPM.patch b/0224-Fix-boot-when-there-s-no-TPM.patch index 2b1d5f37..fc5452e2 100644 --- a/0224-Fix-boot-when-there-s-no-TPM.patch +++ b/0224-Fix-boot-when-there-s-no-TPM.patch @@ -1,7 +1,7 @@ -From 762607552528db56dedafac9825cab144c27eba3 Mon Sep 17 00:00:00 2001 +From d621b990b2d3ba20a275de963841c4c2c9246a90 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Wed, 23 Mar 2016 16:49:42 -0700 -Subject: [PATCH 224/227] Fix boot when there's no TPM +Subject: [PATCH 224/229] Fix boot when there's no TPM If the firmware has TPM support but has no TPM, we're jumping to core.img without popping the registers back onto the stack. Fix that. diff --git a/0225-Rework-TPM-measurements.patch b/0225-Rework-TPM-measurements.patch index 95f5a1ea..61daa16f 100644 --- a/0225-Rework-TPM-measurements.patch +++ b/0225-Rework-TPM-measurements.patch @@ -1,7 +1,7 @@ -From 654614fc2a0b075bc94907a58469c4df05f81994 Mon Sep 17 00:00:00 2001 +From b3e11d156a1244087ff79f4cdf93cdf35d0fa926 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Wed, 23 Mar 2016 17:03:43 -0700 -Subject: [PATCH 225/227] Rework TPM measurements +Subject: [PATCH 225/229] Rework TPM measurements Rework TPM measurements to use fewer PCRs. After discussion with upstream, it's preferable to avoid using so many PCRs. Instead, measure into PCRs 8 @@ -160,14 +160,14 @@ index 0ca525380c9..cc53d429bca 100644 } diff --git a/grub-core/loader/multiboot_mbi2.c b/grub-core/loader/multiboot_mbi2.c -index 99ef9036423..f7e333f56c1 100644 +index a7b4a57ec4f..f7e333f56c1 100644 --- a/grub-core/loader/multiboot_mbi2.c +++ b/grub-core/loader/multiboot_mbi2.c @@ -132,7 +132,7 @@ grub_multiboot_load (grub_file_t file, const char *filename) COMPILE_TIME_ASSERT (MULTIBOOT_HEADER_ALIGN % 4 == 0); -- grub_tpm_measure ((unsigned char *)mld.buffer, len, GRUB_KERNEL_PCR, filename); +- grub_tpm_measure ((unsigned char *)buffer, len, GRUB_KERNEL_PCR, filename); + grub_tpm_measure ((unsigned char *)mld.buffer, len, GRUB_BINARY_PCR, "grub_multiboot", filename); header = find_header (mld.buffer, len); diff --git a/0226-Fix-event-log-prefix.patch b/0226-Fix-event-log-prefix.patch index cbebfa68..dbc0c67d 100644 --- a/0226-Fix-event-log-prefix.patch +++ b/0226-Fix-event-log-prefix.patch @@ -1,7 +1,7 @@ -From 8e7dae020dc6e789df42f8bc3ca73cbaa39af017 Mon Sep 17 00:00:00 2001 +From 8bea1ad0aa389bf8ffbe7b442603161cba3bd3c7 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 29 Mar 2016 15:36:49 -0700 -Subject: [PATCH 226/227] Fix event log prefix +Subject: [PATCH 226/229] Fix event log prefix We're not passing the prefixed version of the description to the event log. Fix that. diff --git a/0227-Set-the-first-boot-menu-entry-as-default-when-using-.patch b/0227-Set-the-first-boot-menu-entry-as-default-when-using-.patch index f0f6e5bc..9bffbac9 100644 --- a/0227-Set-the-first-boot-menu-entry-as-default-when-using-.patch +++ b/0227-Set-the-first-boot-menu-entry-as-default-when-using-.patch @@ -1,7 +1,7 @@ -From a155931ed02d4517d9dba298f5c8da45fa9e7577 Mon Sep 17 00:00:00 2001 +From e540034970a1dbeaeafc5d9f08c2e83d9197b0db Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Fri, 6 Apr 2018 14:08:36 +0200 -Subject: [PATCH 227/227] Set the first boot menu entry as default when using +Subject: [PATCH 227/229] Set the first boot menu entry as default when using BLS fragments When BootLoaderSpec configuration files are used, the default boot menu diff --git a/0228-tpm-fix-warnings-when-compiling-for-platforms-other-.patch b/0228-tpm-fix-warnings-when-compiling-for-platforms-other-.patch new file mode 100644 index 00000000..1a0889a1 --- /dev/null +++ b/0228-tpm-fix-warnings-when-compiling-for-platforms-other-.patch @@ -0,0 +1,41 @@ +From abcbb11d3647140ea158bb01945f033d69a7a53a Mon Sep 17 00:00:00 2001 +From: Michael Marineau +Date: Sun, 21 Aug 2016 18:24:58 -0700 +Subject: [PATCH 228/229] tpm: fix warnings when compiling for platforms other + than pc and efi + +--- + include/grub/tpm.h | 17 +++++++++++------ + 1 file changed, 11 insertions(+), 6 deletions(-) + +diff --git a/include/grub/tpm.h b/include/grub/tpm.h +index ecb2d09ff5d..972a5edc836 100644 +--- a/include/grub/tpm.h ++++ b/include/grub/tpm.h +@@ -75,12 +75,17 @@ grub_err_t grub_tpm_execute(PassThroughToTPM_InputParamBlock *inbuf, + grub_err_t grub_tpm_log_event(unsigned char *buf, grub_size_t size, + grub_uint8_t pcr, const char *description); + #else +-static inline grub_err_t grub_tpm_execute(PassThroughToTPM_InputParamBlock *inbuf, +- PassThroughToTPM_OutputParamBlock *outbuf) { return 0; }; +-static inline grub_err_t grub_tpm_log_event(unsigned char *buf, +- grub_size_t size, +- grub_uint8_t pcr, +- const char *description) ++static inline grub_err_t grub_tpm_execute( ++ PassThroughToTPM_InputParamBlock *inbuf __attribute__ ((unused)), ++ PassThroughToTPM_OutputParamBlock *outbuf __attribute__ ((unused))) ++{ ++ return 0; ++}; ++static inline grub_err_t grub_tpm_log_event( ++ unsigned char *buf __attribute__ ((unused)), ++ grub_size_t size __attribute__ ((unused)), ++ grub_uint8_t pcr __attribute__ ((unused)), ++ const char *description __attribute__ ((unused))) + { + return 0; + }; +-- +2.15.0 + diff --git a/0229-Make-TPM-errors-less-fatal.patch b/0229-Make-TPM-errors-less-fatal.patch new file mode 100644 index 00000000..3ea4adf2 --- /dev/null +++ b/0229-Make-TPM-errors-less-fatal.patch @@ -0,0 +1,211 @@ +From 64be807ea7b4b3744b77ad3d5c28f98c6625339d Mon Sep 17 00:00:00 2001 +From: Matthew Garrett +Date: Thu, 13 Oct 2016 13:55:26 -0700 +Subject: [PATCH 229/229] Make TPM errors less fatal + +Handle TPM errors, and stop trying to use the TPM once we hit one. +--- + grub-core/kern/dl.c | 1 + + grub-core/kern/i386/pc/tpm.c | 21 +++++++++++++++++---- + grub-core/lib/cmdline.c | 1 + + grub-core/loader/i386/efi/linux.c | 2 ++ + grub-core/loader/i386/linux.c | 1 + + grub-core/loader/i386/multiboot_mbi.c | 1 + + grub-core/loader/i386/pc/linux.c | 1 + + grub-core/loader/linux.c | 2 ++ + grub-core/loader/multiboot.c | 1 + + grub-core/loader/multiboot_mbi2.c | 1 + + grub-core/script/execute.c | 1 + + 11 files changed, 29 insertions(+), 4 deletions(-) + +diff --git a/grub-core/kern/dl.c b/grub-core/kern/dl.c +index d0989573866..91105bc4677 100644 +--- a/grub-core/kern/dl.c ++++ b/grub-core/kern/dl.c +@@ -831,6 +831,7 @@ grub_dl_load_file (const char *filename) + grub_file_close (file); + + grub_tpm_measure(core, size, GRUB_BINARY_PCR, "grub_module", filename); ++ grub_print_error(); + + mod = grub_dl_load_core (core, size); + grub_free (core); +diff --git a/grub-core/kern/i386/pc/tpm.c b/grub-core/kern/i386/pc/tpm.c +index 8c6c1e6ece2..f6f264aff2e 100644 +--- a/grub-core/kern/i386/pc/tpm.c ++++ b/grub-core/kern/i386/pc/tpm.c +@@ -7,21 +7,28 @@ + + #define TCPA_MAGIC 0x41504354 + ++static int tpm_presence = -1; ++ + int tpm_present(void); + + int tpm_present(void) + { + struct grub_bios_int_registers regs; + ++ if (tpm_presence != -1) ++ return tpm_presence; ++ + regs.flags = GRUB_CPU_INT_FLAGS_DEFAULT; + regs.eax = 0xbb00; + regs.ebx = TCPA_MAGIC; + grub_bios_interrupt (0x1a, ®s); + + if (regs.eax == 0) +- return 1; ++ tpm_presence = 1; ++ else ++ tpm_presence = 0; + +- return 0; ++ return tpm_presence; + } + + grub_err_t +@@ -49,7 +56,10 @@ grub_tpm_execute(PassThroughToTPM_InputParamBlock *inbuf, + grub_bios_interrupt (0x1a, ®s); + + if (regs.eax) +- return grub_error (GRUB_ERR_IO, N_("TPM error %x\n"), regs.eax); ++ { ++ tpm_presence = 0; ++ return grub_error (GRUB_ERR_IO, N_("TPM error %x, disabling TPM"), regs.eax); ++ } + + return 0; + } +@@ -126,7 +136,10 @@ grub_tpm_log_event(unsigned char *buf, grub_size_t size, grub_uint8_t pcr, + grub_free(event); + + if (regs.eax) +- return grub_error (GRUB_ERR_IO, N_("TPM error %x\n"), regs.eax); ++ { ++ tpm_presence = 0; ++ return grub_error (GRUB_ERR_IO, N_("TPM error %x, disabling TPM"), regs.eax); ++ } + + return 0; + } +diff --git a/grub-core/lib/cmdline.c b/grub-core/lib/cmdline.c +index 178f7382f07..d5c12957cad 100644 +--- a/grub-core/lib/cmdline.c ++++ b/grub-core/lib/cmdline.c +@@ -128,6 +128,7 @@ int grub_create_loader_cmdline (int argc, char *argv[], char *buf, + + grub_tpm_measure ((void *)orig, grub_strlen (orig), GRUB_ASCII_PCR, + "grub_kernel_cmdline", orig); ++ grub_print_error(); + + return i; + } +diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c +index 079e222e972..6c9268f2ff5 100644 +--- a/grub-core/loader/i386/efi/linux.c ++++ b/grub-core/loader/i386/efi/linux.c +@@ -134,6 +134,7 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), + goto fail; + } + grub_tpm_measure (ptr, cursize, GRUB_BINARY_PCR, "grub_linuxefi", "Initrd"); ++ grub_print_error(); + ptr += cursize; + grub_memset (ptr, 0, ALIGN_UP_OVERHEAD (cursize, 4)); + ptr += ALIGN_UP_OVERHEAD (cursize, 4); +@@ -199,6 +200,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), + } + + grub_tpm_measure (kernel, filelen, GRUB_BINARY_PCR, "grub_linuxefi", "Kernel"); ++ grub_print_error(); + + rc = grub_linuxefi_secure_validate (kernel, filelen); + if (rc < 0) +diff --git a/grub-core/loader/i386/linux.c b/grub-core/loader/i386/linux.c +index 32e3bb08e88..daebe0237ff 100644 +--- a/grub-core/loader/i386/linux.c ++++ b/grub-core/loader/i386/linux.c +@@ -720,6 +720,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), + } + + grub_tpm_measure (kernel, len, GRUB_BINARY_PCR, "grub_linux", "Kernel"); ++ grub_print_error(); + + grub_memcpy (&lh, kernel, sizeof (lh)); + +diff --git a/grub-core/loader/i386/multiboot_mbi.c b/grub-core/loader/i386/multiboot_mbi.c +index 0981a2cfd93..42372bf058b 100644 +--- a/grub-core/loader/i386/multiboot_mbi.c ++++ b/grub-core/loader/i386/multiboot_mbi.c +@@ -175,6 +175,7 @@ grub_multiboot_load (grub_file_t file, const char *filename) + } + + grub_tpm_measure((unsigned char*)buffer, len, GRUB_BINARY_PCR, "grub_multiboot", filename); ++ grub_print_error(); + + header = find_header (buffer, len); + +diff --git a/grub-core/loader/i386/pc/linux.c b/grub-core/loader/i386/pc/linux.c +index 7edbc5ea6c4..5b6558c6340 100644 +--- a/grub-core/loader/i386/pc/linux.c ++++ b/grub-core/loader/i386/pc/linux.c +@@ -163,6 +163,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), + } + + grub_tpm_measure (kernel, len, GRUB_BINARY_PCR, "grub_linux16", "Kernel"); ++ grub_print_error(); + + grub_memcpy (&lh, kernel, sizeof (lh)); + kernel_offset = sizeof (lh); +diff --git a/grub-core/loader/linux.c b/grub-core/loader/linux.c +index 78c41e33416..c2c7cfcd0fd 100644 +--- a/grub-core/loader/linux.c ++++ b/grub-core/loader/linux.c +@@ -290,6 +290,8 @@ grub_initrd_load (struct grub_linux_initrd_context *initrd_ctx, + return grub_errno; + } + grub_tpm_measure (ptr, cursize, GRUB_BINARY_PCR, "grub_initrd", "Initrd"); ++ grub_print_error(); ++ + ptr += cursize; + } + if (newc) +diff --git a/grub-core/loader/multiboot.c b/grub-core/loader/multiboot.c +index cc53d429bca..ae308189200 100644 +--- a/grub-core/loader/multiboot.c ++++ b/grub-core/loader/multiboot.c +@@ -427,6 +427,7 @@ grub_cmd_module (grub_command_t cmd __attribute__ ((unused)), + + grub_file_close (file); + grub_tpm_measure (module, size, GRUB_BINARY_PCR, "grub_multiboot", argv[0]); ++ grub_print_error(); + return GRUB_ERR_NONE; + } + +diff --git a/grub-core/loader/multiboot_mbi2.c b/grub-core/loader/multiboot_mbi2.c +index f7e333f56c1..49b8af3f1d8 100644 +--- a/grub-core/loader/multiboot_mbi2.c ++++ b/grub-core/loader/multiboot_mbi2.c +@@ -133,6 +133,7 @@ grub_multiboot_load (grub_file_t file, const char *filename) + COMPILE_TIME_ASSERT (MULTIBOOT_HEADER_ALIGN % 4 == 0); + + grub_tpm_measure ((unsigned char *)mld.buffer, len, GRUB_BINARY_PCR, "grub_multiboot", filename); ++ grub_print_error(); + + header = find_header (mld.buffer, len); + if (header == 0) +diff --git a/grub-core/script/execute.c b/grub-core/script/execute.c +index 976643c47b0..93965777138 100644 +--- a/grub-core/script/execute.c ++++ b/grub-core/script/execute.c +@@ -997,6 +997,7 @@ grub_script_execute_cmdline (struct grub_script_cmd *cmd) + cmdstring[cmdlen-1]= '\0'; + grub_tpm_measure ((unsigned char *)cmdstring, cmdlen, GRUB_ASCII_PCR, + "grub_cmd", cmdstring); ++ grub_print_error(); + grub_free(cmdstring); + invert = 0; + argc = argv.argc - 1; +-- +2.15.0 + diff --git a/grub.patches b/grub.patches index a9d8fd03..a13bb2ee 100644 --- a/grub.patches +++ b/grub.patches @@ -225,3 +225,5 @@ Patch0224: 0224-Fix-boot-when-there-s-no-TPM.patch Patch0225: 0225-Rework-TPM-measurements.patch Patch0226: 0226-Fix-event-log-prefix.patch Patch0227: 0227-Set-the-first-boot-menu-entry-as-default-when-using-.patch +Patch0228: 0228-tpm-fix-warnings-when-compiling-for-platforms-other-.patch +Patch0229: 0229-Make-TPM-errors-less-fatal.patch diff --git a/grub2.spec b/grub2.spec index aa6a7102..6a6b15dd 100644 --- a/grub2.spec +++ b/grub2.spec @@ -7,7 +7,7 @@ Name: grub2 Epoch: 1 Version: 2.02 -Release: 30%{?dist} +Release: 31%{?dist} Summary: Bootloader with support for Linux, Multiboot and more Group: System Environment/Base License: GPLv3+ @@ -452,6 +452,9 @@ fi %endif %changelog +* Fri Apr 06 2018 Peter Jones - 2.02-31 +- Pull in some TPM fixes I missed. + * Fri Apr 06 2018 Peter Jones - 2.02-30 - Enable TPM measurements - Set the default boot entry to the first entry when we're using BLS. From 4decb44288fcae0b6658db832f2180188c05e1bd Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Wed, 11 Apr 2018 13:48:47 +0200 Subject: [PATCH 14/45] Make 20-grub.install to generate debug BLS when MAKEDEBUG is set If MAKEDEBUG=yes in /etc/sysconfig/kernel, then a debug menu entry should be created. So for BLS, a debug configuration file has to be created that contains debug kernel command line parameters. Signed-off-by: Javier Martinez Canillas --- 20-grub.install | 18 +++++++++++++++++- grub2.spec | 5 ++++- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/20-grub.install b/20-grub.install index f7b94b86..ad507f59 100755 --- a/20-grub.install +++ b/20-grub.install @@ -83,6 +83,19 @@ case "$COMMAND" in "$(date -u +%Y%m%d%H%M%S -d "$(stat -c '%y' "${KERNEL_DIR}")")" \ >"${BLS_TARGET}" fi + + eval "$(grub2-get-kernel-settings)" || true + if [ "x$GRUB_LINUX_MAKE_DEBUG" = "xtrue" ]; then + ARCH="$(uname -m)" + BLS_DEBUG="$(echo ${BLS_TARGET} | sed -e "s/\.${ARCH}/-debug.${ARCH}/")" + cp -aT "${BLS_TARGET}" "${BLS_DEBUG}" + TITLE="$(grep '^title[ \t]' "${BLS_DEBUG}" | sed -e 's/^title[ \t]*//')" + BLSID="$(grep '^id[ \t]' "${BLS_DEBUG}" | sed -e "s/\.${ARCH}/-debug.${ARCH}/")" + sed -i -e "s/^title.*/title ${TITLE}${GRUB_LINUX_DEBUG_TITLE_POSTFIX}/" "${BLS_DEBUG}" + sed -i -e "s/^id.*/${BLSID}/" "${BLS_DEBUG}" + sed -i -e "s/^options.*/options \$kernelopts ${GRUB_CMDLINE_LINUX_DEBUG}/" "${BLS_DEBUG}" + fi + exit 0 fi @@ -95,7 +108,10 @@ case "$COMMAND" in remove) if [[ "x${GRUB_ENABLE_BLSCFG}" = "xtrue" ]] || [[ ! -f /sbin/new-kernel-pkg ]]; then - rm -f "${BLS_DIR}/${MACHINE_ID}-${KERNEL_VERSION}.conf" + ARCH="$(uname -m)" + BLS_TARGET="${BLS_DIR}/${MACHINE_ID}-${KERNEL_VERSION}.conf" + BLS_DEBUG="$(echo ${BLS_TARGET} | sed -e "s/\.${ARCH}/-debug.${ARCH}/")" + rm -f "${BLS_TARGET}" "${BLS_DEBUG}" for i in vmlinuz System.map config zImage.stub dtb; do rm -rf "/boot/${i}-${KERNEL_VERSION}" diff --git a/grub2.spec b/grub2.spec index 6a6b15dd..afb42db6 100644 --- a/grub2.spec +++ b/grub2.spec @@ -7,7 +7,7 @@ Name: grub2 Epoch: 1 Version: 2.02 -Release: 31%{?dist} +Release: 32%{?dist} Summary: Bootloader with support for Linux, Multiboot and more Group: System Environment/Base License: GPLv3+ @@ -452,6 +452,9 @@ fi %endif %changelog +* Wed Apr 11 2018 Javier Martinez Canillas - 2.02-32 +- Make 20-grub.install to generate debug BLS when MAKEDEBUG is set. + * Fri Apr 06 2018 Peter Jones - 2.02-31 - Pull in some TPM fixes I missed. From 3c4dd19ca535291e04d2edcf6305e2c960a79ac7 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 11 Apr 2018 14:42:03 -0400 Subject: [PATCH 15/45] Work around some issues with older automake found in CentOS. Signed-off-by: Peter Jones --- 0064-info-in-builddir.patch | 22 -- ...re.patch => 0064-re-write-.gitignore.patch | 4 +- ...ient-architecture-CAS-reboot-support.patch | 4 +- ...nsole-display-attr-when-clear-screen.patch | 4 +- ...video-support-for-IBM-power-machines.patch | 4 +- ...when-generating-configuration-by-gru.patch | 4 +- ...9-Move-bash-completion-script-922997.patch | 4 +- ...patch => 0070-Update-to-minilzo-2.08.patch | 4 +- ...o-include-entries-by-title-not-just-.patch | 4 +- ....patch => 0072-Add-GRUB_DISABLE_UUID.patch | 4 +- ...=> 0073-Make-exit-take-a-return-code.patch | 4 +- ...pot-as-binary-so-git-won-t-try-to-di.patch | 4 +- ...es-load-an-env-block-from-a-variable.patch | 4 +- ...HCP-client-ID-and-UUID-options-added.patch | 4 +- ...-trim-arp-packets-with-abnormal-size.patch | 4 +- ...Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch | 4 +- ...UEFI-operating-systems-returned-by-o.patch | 4 +- ...080-Migrate-PPC-from-Yaboot-to-Grub2.patch | 4 +- ...=> 0081-Add-fw_path-variable-revised.patch | 4 +- ...tch => 0082-Add-support-for-linuxefi.patch | 4 +- ...xefi-and-initrdefi-where-appropriate.patch | 4 +- ...w-insmod-when-secure-boot-is-enabled.patch | 4 +- ...-hex-hex-straight-through-unmolested.patch | 4 +- ...086-Add-X-option-to-printf-functions.patch | 4 +- ...for-specific-config-file-for-netboot.patch | 4 +- ...g-module-to-parse-Boot-Loader-Specif.patch | 4 +- ...9-Don-t-write-messages-to-the-screen.patch | 4 +- ... => 0090-Don-t-print-GNU-GRUB-header.patch | 4 +- ...=> 0091-Don-t-add-to-highlighted-row.patch | 4 +- ...atch => 0092-Message-string-cleanups.patch | 4 +- ...ing-now-that-we-aren-t-displaying-it.patch | 4 +- ...t-indentation-for-the-term-help-text.patch | 4 +- ...es.patch => 0095-Indent-menu-entries.patch | 4 +- ...ix-margins.patch => 0096-Fix-margins.patch | 4 +- ...-1-for-our-right-hand-margin-so-line.patch | 4 +- ...-Use-linux16-when-appropriate-880840.patch | 4 +- ...0099-Enable-pager-by-default.-985860.patch | 4 +- ...-on-serial-so-don-t-tell-the-user-to.patch | 4 +- ...n-t-say-GNU-Linux-in-generated-menus.patch | 4 +- ...-Don-t-draw-a-border-around-the-menu.patch | 4 +- ...andard-margin-for-the-timeout-string.patch | 4 +- ...rame-to-list-of-relocations-stripped.patch | 4 +- ...rk-with-our-changes-for-linux16-and-.patch | 4 +- ...on-t-print-during-fdt-loading-method.patch | 4 +- ...spaces-when-we-re-doing-our-cmdline-.patch | 4 +- ...password-to-boot-entries-generated-b.patch | 4 +- ...=> 0109-Don-t-emit-Booting-.-message.patch | 4 +- ...f-man-pages-with-slightly-nicer-ones.patch | 6 +- ...ix-when-fallback-searching-for-grub-.patch | 4 +- ...-before-grub.cfg-on-tftp-config-file.patch | 4 +- ...ert-function-to-support-NVMe-devices.patch | 4 +- ...M-Mustang-device-tree-for-hardware-t.patch | 4 +- ...device-tree-from-the-grub-default-fi.patch | 4 +- ...P-protocol-for-exclusive-use-by-grub.patch | 4 +- ...P-protocol-for-exclusive-use-by-grub.patch | 4 +- ...patch => 0118-Add-grub_util_readlink.patch | 4 +- ...se-symlinks-including-those-across-d.patch | 4 +- ...CLASS-in-10_linux-from-etc-os-releas.patch | 4 +- ...t-ordering-for-.debug-and-rescue-ker.patch | 4 +- ...tch => 0122-Load-arm-with-SB-enabled.patch | 4 +- ...3-Try-prefix-if-fw_path-doesn-t-work.patch | 4 +- ...-grub.cfg-netboot-selection-order-11.patch | 4 +- ...-Package-Sort-for-grub2-mkconfig-112.patch | 4 +- ... => 0126-Handle-rssd-storage-devices.patch | 4 +- ...x16-initrd16-and-linuxefi-initrdefi-.patch | 4 +- ...fig-construct-titles-that-look-like-.patch | 4 +- ...ly-grub2-password-config-tool-985962.patch | 4 +- ...fig-construct-titles-that-look-like-.patch | 4 +- ...-configure.ac-and-grub-rpm-sort-play.patch | 4 +- ... 0132-tcp-add-window-scaling-support.patch | 4 +- ...net-retransmit-if-our-device-is-busy.patch | 4 +- ...out-actually-using-the-configured-ne.patch | 4 +- ...r-for-the-first-exclusive-reopen-of-.patch | 4 +- ...ue-when-reading-username-and-passwor.patch | 4 +- ...ub-password-will-not-be-read-1290803.patch | 4 +- ...ub-setpassword-documentation-1290799.patch | 4 +- ...le-issue-in-grub-setpassword-1294243.patch | 4 +- ...rsistent-RAM-and-unknown-possible-fu.patch | 4 +- ... 0141-efiemu-Fix-compilation-failure.patch | 4 +- ...P-protocol-for-exclusive-use-by-grub.patch | 4 +- ...arser.patch => 0143-Add-a-url-parser.patch | 4 +- ...net-and-bootp-add-support-for-dhcpv6.patch | 4 +- ...rnel-settings-and-use-it-in-10_linux.patch | 4 +- ...0146-Normalize-slashes-in-tftp-paths.patch | 4 +- ...h => 0147-Fix-malformed-tftp-packets.patch | 4 +- ...h => 0148-Fix-race-in-EFI-validation.patch | 4 +- ...1374141-fix-incorrect-mask-for-ppc64.patch | 4 +- ...art-of-chainloader-target-if-present.patch | 4 +- ...ecureboot-support-on-efi-chainloader.patch | 4 +- ...loaders-that-link-in-efi-mode-honor-.patch | 4 +- ... 0153-Make-grub_fatal-also-backtrace.patch | 4 +- ...d.patch => 0154-Rework-linux-command.patch | 4 +- ...patch => 0155-Rework-linux16-command.patch | 4 +- ...> 0156-Make-grub-editenv-build-again.patch | 4 +- ...ix-up-some-man-pages-rpmdiff-noticed.patch | 4 +- ...-work-some-intricacies-of-PE-loading.patch | 4 +- ...-of-efi-chainload-so-non-sb-cases-wo.patch | 4 +- ...-double-free-on-verification-failure.patch | 4 +- ...machine-type-test-in-30_os-prober.in.patch | 4 +- ...fix-wrong-sanity-check-in-relocate_c.patch | 4 +- ...truncate-overlong-relocation-section.patch | 4 +- ...atch => 0164-linuxefi-minor-cleanups.patch | 4 +- ...rch-64-on-32-boot-in-linuxefi-loader.patch | 4 +- ...ch => 0166-Fix-up-linux-params-usage.patch | 4 +- ...=> 0167-Make-exit-take-a-return-code.patch | 4 +- ...fdt-has-address-cells-and-size-cells.patch | 4 +- ...rintf-in-the-secure-boot-verify-code.patch | 4 +- ...fo-pages-say-grub2-where-appropriate.patch | 4 +- ...more-debug-info-in-our-module-loader.patch | 4 +- ...-chainloader-entries-don-t-try-any-x.patch | 4 +- ...-Add-ability-to-boot-from-subvolumes.patch | 4 +- ...port-btrfs_subvol-and-btrfs_subvolid.patch | 4 +- ...> 0175-grub2-btrfs-03-follow_default.patch | 4 +- ...=> 0176-grub2-btrfs-04-grub2-install.patch | 4 +- ...> 0177-grub2-btrfs-05-grub2-mkconfig.patch | 4 +- ... => 0178-grub2-btrfs-06-subvol-mount.patch | 4 +- ...ootable-Snapshot-submenu-in-grub.cfg.patch | 4 +- ...subvol-name-scheme-to-support-old-sn.patch | 4 +- ...-correctly-with-btrfs-snapshots-bsc-.patch | 4 +- ...ocate_pool-and-grub_efi_free_pool-wr.patch | 4 +- ...fi_.-memory-helpers-where-reasonable.patch | 4 +- ...4-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch | 4 +- ...c-sized-arrays-since-we-don-t-build-.patch | 4 +- ...nst.patch => 0186-don-t-ignore-const.patch | 4 +- ...=> 0187-don-t-use-int-for-efi-status.patch | 4 +- ...INIT-declare-its-function-prototypes.patch | 4 +- ...p-some-errors-in-the-linuxefi-loader.patch | 4 +- ...190-editenv-handle-relative-symlinks.patch | 4 +- ...e-libgrub.pp-depend-on-config-util.h.patch | 4 +- ...-efi-as-HFS-on-ppc-machines-in-grub-.patch | 4 +- ...20_linux_xen.in-Add-xen_boot-command.patch | 4 +- ...-figure-out-whether-multiboot2-shoul.patch | 4 +- ...d-xen-or-multiboot-2-modules-as-need.patch | 4 +- ...lt-tsc-calibration-method-to-pmtimer.patch | 4 +- ...-calibration-not-take-51-seconds-to-.patch | 4 +- ...198-align-struct-efi_variable-better.patch | 4 +- ...=> 0199-Add-quicksort-implementation.patch | 4 +- ...nd-support-to-parse-BootLoaderSpec-c.patch | 4 +- ...201-Add-BLS-support-to-grub-mkconfig.patch | 4 +- ...d-grub_exit-definition-for-grub-emu-.patch | 4 +- ...-backtrace-on-grub_abort-for-grub-em.patch | 4 +- ...-blscfg-command-for-the-emu-platform.patch | 4 +- ...nux-and-initrd-commands-for-grub-emu.patch | 4 +- ...6-Fix-the-efidir-in-grub-setpassword.patch | 4 +- ...h => 0207-Add-grub2-switch-to-blscfg.patch | 4 +- ...patch => 0208-Add-grub_debug_enabled.patch | 4 +- ...patch => 0209-make-better-backtraces.patch | 4 +- ...w-our-startup-message-if-debug-is-se.patch | 4 +- ...-some-minor-include-path-weirdnesses.patch | 4 +- ...it-possible-to-enabled-build-id-sha1.patch | 4 +- ...f-grub_dprintf-without-the-file-line.patch | 4 +- ...dprintf-that-tells-us-load-addresses.patch | 4 +- ...scan-different-BLS-directories-on-EF.patch | 4 +- ...pport.patch => 0216-Core-TPM-support.patch | 4 +- ....patch => 0217-Measure-kernel-initrd.patch | 4 +- ...ch => 0218-Add-BIOS-boot-measurement.patch | 4 +- ...re-kernel-and-initrd-on-BIOS-systems.patch | 4 +- ... 0220-Measure-the-kernel-commandline.patch | 4 +- ...mands.patch => 0221-Measure-commands.patch | 4 +- ...Measure-multiboot-images-and-modules.patch | 4 +- ...=> 0223-Fix-boot-when-there-s-no-TPM.patch | 4 +- ...atch => 0224-Rework-TPM-measurements.patch | 4 +- ...x.patch => 0225-Fix-event-log-prefix.patch | 4 +- ...ot-menu-entry-as-default-when-using-.patch | 4 +- ...-when-compiling-for-platforms-other-.patch | 4 +- ...h => 0228-Make-TPM-errors-less-fatal.patch | 4 +- ...cfg-handle-multiple-initramfs-images.patch | 107 ++++++ grub.patches | 332 +++++++++--------- grub2.spec | 6 +- 169 files changed, 609 insertions(+), 520 deletions(-) delete mode 100644 0064-info-in-builddir.patch rename 0065-re-write-.gitignore.patch => 0064-re-write-.gitignore.patch (98%) rename 0066-IBM-client-architecture-CAS-reboot-support.patch => 0065-IBM-client-architecture-CAS-reboot-support.patch (97%) rename 0067-for-ppc-reset-console-display-attr-when-clear-screen.patch => 0066-for-ppc-reset-console-display-attr-when-clear-screen.patch (90%) rename 0068-Disable-GRUB-video-support-for-IBM-power-machines.patch => 0067-Disable-GRUB-video-support-for-IBM-power-machines.patch (94%) rename 0069-Honor-a-symlink-when-generating-configuration-by-gru.patch => 0068-Honor-a-symlink-when-generating-configuration-by-gru.patch (86%) rename 0070-Move-bash-completion-script-922997.patch => 0069-Move-bash-completion-script-922997.patch (93%) rename 0071-Update-to-minilzo-2.08.patch => 0070-Update-to-minilzo-2.08.patch (99%) rename 0072-Allow-fallback-to-include-entries-by-title-not-just-.patch => 0071-Allow-fallback-to-include-entries-by-title-not-just-.patch (96%) rename 0073-Add-GRUB_DISABLE_UUID.patch => 0072-Add-GRUB_DISABLE_UUID.patch (97%) rename 0074-Make-exit-take-a-return-code.patch => 0073-Make-exit-take-a-return-code.patch (98%) rename 0075-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch => 0074-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch (77%) rename 0076-Make-efi-machines-load-an-env-block-from-a-variable.patch => 0075-Make-efi-machines-load-an-env-block-from-a-variable.patch (94%) rename 0077-DHCP-client-ID-and-UUID-options-added.patch => 0076-DHCP-client-ID-and-UUID-options-added.patch (96%) rename 0078-trim-arp-packets-with-abnormal-size.patch => 0077-trim-arp-packets-with-abnormal-size.patch (89%) rename 0079-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch => 0078-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch (90%) rename 0080-Add-support-for-UEFI-operating-systems-returned-by-o.patch => 0079-Add-support-for-UEFI-operating-systems-returned-by-o.patch (90%) rename 0081-Migrate-PPC-from-Yaboot-to-Grub2.patch => 0080-Migrate-PPC-from-Yaboot-to-Grub2.patch (96%) rename 0082-Add-fw_path-variable-revised.patch => 0081-Add-fw_path-variable-revised.patch (94%) rename 0083-Add-support-for-linuxefi.patch => 0082-Add-support-for-linuxefi.patch (99%) rename 0084-Use-linuxefi-and-initrdefi-where-appropriate.patch => 0083-Use-linuxefi-and-initrdefi-where-appropriate.patch (92%) rename 0085-Don-t-allow-insmod-when-secure-boot-is-enabled.patch => 0084-Don-t-allow-insmod-when-secure-boot-is-enabled.patch (96%) rename 0086-Pass-x-hex-hex-straight-through-unmolested.patch => 0085-Pass-x-hex-hex-straight-through-unmolested.patch (97%) rename 0087-Add-X-option-to-printf-functions.patch => 0086-Add-X-option-to-printf-functions.patch (92%) rename 0088-Search-for-specific-config-file-for-netboot.patch => 0087-Search-for-specific-config-file-for-netboot.patch (97%) rename 0089-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch => 0088-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch (97%) rename 0090-Don-t-write-messages-to-the-screen.patch => 0089-Don-t-write-messages-to-the-screen.patch (97%) rename 0091-Don-t-print-GNU-GRUB-header.patch => 0090-Don-t-print-GNU-GRUB-header.patch (90%) rename 0092-Don-t-add-to-highlighted-row.patch => 0091-Don-t-add-to-highlighted-row.patch (85%) rename 0093-Message-string-cleanups.patch => 0092-Message-string-cleanups.patch (96%) rename 0094-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch => 0093-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch (87%) rename 0095-Use-the-correct-indentation-for-the-term-help-text.patch => 0094-Use-the-correct-indentation-for-the-term-help-text.patch (88%) rename 0096-Indent-menu-entries.patch => 0095-Indent-menu-entries.patch (86%) rename 0097-Fix-margins.patch => 0096-Fix-margins.patch (92%) rename 0098-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch => 0097-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch (85%) rename 0099-Use-linux16-when-appropriate-880840.patch => 0098-Use-linux16-when-appropriate-880840.patch (90%) rename 0100-Enable-pager-by-default.-985860.patch => 0099-Enable-pager-by-default.-985860.patch (83%) rename 0101-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch => 0100-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch (88%) rename 0102-Don-t-say-GNU-Linux-in-generated-menus.patch => 0101-Don-t-say-GNU-Linux-in-generated-menus.patch (91%) rename 0103-Don-t-draw-a-border-around-the-menu.patch => 0102-Don-t-draw-a-border-around-the-menu.patch (95%) rename 0104-Use-the-standard-margin-for-the-timeout-string.patch => 0103-Use-the-standard-margin-for-the-timeout-string.patch (91%) rename 0105-Add-.eh_frame-to-list-of-relocations-stripped.patch => 0104-Add-.eh_frame-to-list-of-relocations-stripped.patch (89%) rename 0106-Make-10_linux-work-with-our-changes-for-linux16-and-.patch => 0105-Make-10_linux-work-with-our-changes-for-linux16-and-.patch (94%) rename 0107-Don-t-print-during-fdt-loading-method.patch => 0106-Don-t-print-during-fdt-loading-method.patch (82%) rename 0108-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch => 0107-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch (86%) rename 0109-Don-t-require-a-password-to-boot-entries-generated-b.patch => 0108-Don-t-require-a-password-to-boot-entries-generated-b.patch (86%) rename 0110-Don-t-emit-Booting-.-message.patch => 0109-Don-t-emit-Booting-.-message.patch (92%) rename 0111-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch => 0110-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch (99%) rename 0112-use-fw_path-prefix-when-fallback-searching-for-grub-.patch => 0111-use-fw_path-prefix-when-fallback-searching-for-grub-.patch (92%) rename 0113-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch => 0112-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch (95%) rename 0114-Fix-convert-function-to-support-NVMe-devices.patch => 0113-Fix-convert-function-to-support-NVMe-devices.patch (91%) rename 0115-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch => 0114-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch (85%) rename 0116-Use-the-default-device-tree-from-the-grub-default-fi.patch => 0115-Use-the-default-device-tree-from-the-grub-default-fi.patch (90%) rename 0117-reopen-SNP-protocol-for-exclusive-use-by-grub.patch => 0116-reopen-SNP-protocol-for-exclusive-use-by-grub.patch (91%) rename 0118-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch => 0117-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch (92%) rename 0119-Add-grub_util_readlink.patch => 0118-Add-grub_util_readlink.patch (99%) rename 0120-Make-editenv-chase-symlinks-including-those-across-d.patch => 0119-Make-editenv-chase-symlinks-including-those-across-d.patch (95%) rename 0121-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch => 0120-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch (89%) rename 0122-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch => 0121-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch (89%) rename 0123-Load-arm-with-SB-enabled.patch => 0122-Load-arm-with-SB-enabled.patch (99%) rename 0124-Try-prefix-if-fw_path-doesn-t-work.patch => 0123-Try-prefix-if-fw_path-doesn-t-work.patch (97%) rename 0125-Update-info-with-grub.cfg-netboot-selection-order-11.patch => 0124-Update-info-with-grub.cfg-netboot-selection-order-11.patch (94%) rename 0126-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch => 0125-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch (98%) rename 0127-Handle-rssd-storage-devices.patch => 0126-Handle-rssd-storage-devices.patch (89%) rename 0128-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch => 0127-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch (94%) rename 0129-Make-grub2-mkconfig-construct-titles-that-look-like-.patch => 0128-Make-grub2-mkconfig-construct-titles-that-look-like-.patch (94%) rename 0130-Add-friendly-grub2-password-config-tool-985962.patch => 0129-Add-friendly-grub2-password-config-tool-985962.patch (98%) rename 0131-Make-grub2-mkconfig-construct-titles-that-look-like-.patch => 0130-Make-grub2-mkconfig-construct-titles-that-look-like-.patch (94%) rename 0132-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch => 0131-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch (92%) rename 0133-tcp-add-window-scaling-support.patch => 0132-tcp-add-window-scaling-support.patch (96%) rename 0134-efinet-retransmit-if-our-device-is-busy.patch => 0133-efinet-retransmit-if-our-device-is-busy.patch (92%) rename 0135-Be-more-aggro-about-actually-using-the-configured-ne.patch => 0134-Be-more-aggro-about-actually-using-the-configured-ne.patch (98%) rename 0136-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch => 0135-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch (94%) rename 0137-Fix-security-issue-when-reading-username-and-passwor.patch => 0136-Fix-security-issue-when-reading-username-and-passwor.patch (90%) rename 0138-Warn-if-grub-password-will-not-be-read-1290803.patch => 0137-Warn-if-grub-password-will-not-be-read-1290803.patch (89%) rename 0139-Clean-up-grub-setpassword-documentation-1290799.patch => 0138-Clean-up-grub-setpassword-documentation-1290799.patch (93%) rename 0140-Fix-locale-issue-in-grub-setpassword-1294243.patch => 0139-Fix-locale-issue-in-grub-setpassword-1294243.patch (86%) rename 0141-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch => 0140-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch (87%) rename 0142-efiemu-Fix-compilation-failure.patch => 0141-efiemu-Fix-compilation-failure.patch (87%) rename 0143-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch => 0142-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch (94%) rename 0144-Add-a-url-parser.patch => 0143-Add-a-url-parser.patch (99%) rename 0145-efinet-and-bootp-add-support-for-dhcpv6.patch => 0144-efinet-and-bootp-add-support-for-dhcpv6.patch (99%) rename 0146-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch => 0145-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch (98%) rename 0147-Normalize-slashes-in-tftp-paths.patch => 0146-Normalize-slashes-in-tftp-paths.patch (92%) rename 0148-Fix-malformed-tftp-packets.patch => 0147-Fix-malformed-tftp-packets.patch (91%) rename 0149-Fix-race-in-EFI-validation.patch => 0148-Fix-race-in-EFI-validation.patch (95%) rename 0150-bz1374141-fix-incorrect-mask-for-ppc64.patch => 0149-bz1374141-fix-incorrect-mask-for-ppc64.patch (94%) rename 0151-Use-device-part-of-chainloader-target-if-present.patch => 0150-Use-device-part-of-chainloader-target-if-present.patch (89%) rename 0152-Add-secureboot-support-on-efi-chainloader.patch => 0151-Add-secureboot-support-on-efi-chainloader.patch (99%) rename 0153-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch => 0152-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch (99%) rename 0154-Make-grub_fatal-also-backtrace.patch => 0153-Make-grub_fatal-also-backtrace.patch (97%) rename 0155-Rework-linux-command.patch => 0154-Rework-linux-command.patch (96%) rename 0156-Rework-linux16-command.patch => 0155-Rework-linux16-command.patch (96%) rename 0157-Make-grub-editenv-build-again.patch => 0156-Make-grub-editenv-build-again.patch (87%) rename 0158-Fix-up-some-man-pages-rpmdiff-noticed.patch => 0157-Fix-up-some-man-pages-rpmdiff-noticed.patch (96%) rename 0159-Re-work-some-intricacies-of-PE-loading.patch => 0158-Re-work-some-intricacies-of-PE-loading.patch (99%) rename 0160-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch => 0159-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch (99%) rename 0161-linuxefi-fix-double-free-on-verification-failure.patch => 0160-linuxefi-fix-double-free-on-verification-failure.patch (83%) rename 0162-fix-machine-type-test-in-30_os-prober.in.patch => 0161-fix-machine-type-test-in-30_os-prober.in.patch (82%) rename 0163-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch => 0162-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch (91%) rename 0164-efi-chainloader-truncate-overlong-relocation-section.patch => 0163-efi-chainloader-truncate-overlong-relocation-section.patch (97%) rename 0165-linuxefi-minor-cleanups.patch => 0164-linuxefi-minor-cleanups.patch (96%) rename 0166-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch => 0165-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch (98%) rename 0167-Fix-up-linux-params-usage.patch => 0166-Fix-up-linux-params-usage.patch (92%) rename 0168-Make-exit-take-a-return-code.patch => 0167-Make-exit-take-a-return-code.patch (91%) rename 0169-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch => 0168-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch (91%) rename 0170-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch => 0169-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch (91%) rename 0171-Make-our-info-pages-say-grub2-where-appropriate.patch => 0170-Make-our-info-pages-say-grub2-where-appropriate.patch (99%) rename 0172-print-more-debug-info-in-our-module-loader.patch => 0171-print-more-debug-info-in-our-module-loader.patch (90%) rename 0173-macos-just-build-chainloader-entries-don-t-try-any-x.patch => 0172-macos-just-build-chainloader-entries-don-t-try-any-x.patch (97%) rename 0174-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch => 0173-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch (99%) rename 0175-export-btrfs_subvol-and-btrfs_subvolid.patch => 0174-export-btrfs_subvol-and-btrfs_subvolid.patch (86%) rename 0176-grub2-btrfs-03-follow_default.patch => 0175-grub2-btrfs-03-follow_default.patch (97%) rename 0177-grub2-btrfs-04-grub2-install.patch => 0176-grub2-btrfs-04-grub2-install.patch (97%) rename 0178-grub2-btrfs-05-grub2-mkconfig.patch => 0177-grub2-btrfs-05-grub2-mkconfig.patch (97%) rename 0179-grub2-btrfs-06-subvol-mount.patch => 0178-grub2-btrfs-06-subvol-mount.patch (99%) rename 0180-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch => 0179-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch (87%) rename 0181-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch => 0180-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch (92%) rename 0182-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch => 0181-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch (98%) rename 0183-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch => 0182-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch (94%) rename 0184-Use-grub_efi_.-memory-helpers-where-reasonable.patch => 0183-Use-grub_efi_.-memory-helpers-where-reasonable.patch (96%) rename 0185-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch => 0184-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch (93%) rename 0186-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch => 0185-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch (91%) rename 0187-don-t-ignore-const.patch => 0186-don-t-ignore-const.patch (83%) rename 0188-don-t-use-int-for-efi-status.patch => 0187-don-t-use-int-for-efi-status.patch (83%) rename 0189-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch => 0188-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch (87%) rename 0190-Clean-up-some-errors-in-the-linuxefi-loader.patch => 0189-Clean-up-some-errors-in-the-linuxefi-loader.patch (95%) rename 0191-editenv-handle-relative-symlinks.patch => 0190-editenv-handle-relative-symlinks.patch (91%) rename 0192-Make-libgrub.pp-depend-on-config-util.h.patch => 0191-Make-libgrub.pp-depend-on-config-util.h.patch (97%) rename 0193-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch => 0192-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch (90%) rename 0194-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch => 0193-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch (93%) rename 0195-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch => 0194-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch (87%) rename 0196-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch => 0195-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch (89%) rename 0197-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch => 0196-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch (90%) rename 0198-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch => 0197-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch (98%) rename 0199-align-struct-efi_variable-better.patch => 0198-align-struct-efi_variable-better.patch (88%) rename 0200-Add-quicksort-implementation.patch => 0199-Add-quicksort-implementation.patch (98%) rename 0201-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch => 0200-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch (99%) rename 0202-Add-BLS-support-to-grub-mkconfig.patch => 0201-Add-BLS-support-to-grub-mkconfig.patch (98%) rename 0203-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch => 0202-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch (87%) rename 0204-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch => 0203-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch (86%) rename 0205-Enable-blscfg-command-for-the-emu-platform.patch => 0204-Enable-blscfg-command-for-the-emu-platform.patch (97%) rename 0206-Add-linux-and-initrd-commands-for-grub-emu.patch => 0205-Add-linux-and-initrd-commands-for-grub-emu.patch (98%) rename 0207-Fix-the-efidir-in-grub-setpassword.patch => 0206-Fix-the-efidir-in-grub-setpassword.patch (86%) rename 0208-Add-grub2-switch-to-blscfg.patch => 0207-Add-grub2-switch-to-blscfg.patch (98%) rename 0209-Add-grub_debug_enabled.patch => 0208-Add-grub_debug_enabled.patch (93%) rename 0210-make-better-backtraces.patch => 0209-make-better-backtraces.patch (99%) rename 0211-normal-don-t-draw-our-startup-message-if-debug-is-se.patch => 0210-normal-don-t-draw-our-startup-message-if-debug-is-se.patch (85%) rename 0212-Work-around-some-minor-include-path-weirdnesses.patch => 0211-Work-around-some-minor-include-path-weirdnesses.patch (97%) rename 0213-Make-it-possible-to-enabled-build-id-sha1.patch => 0212-Make-it-possible-to-enabled-build-id-sha1.patch (93%) rename 0214-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch => 0213-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch (93%) rename 0215-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch => 0214-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch (97%) rename 0216-Only-attempt-to-scan-different-BLS-directories-on-EF.patch => 0215-Only-attempt-to-scan-different-BLS-directories-on-EF.patch (92%) rename 0217-Core-TPM-support.patch => 0216-Core-TPM-support.patch (99%) rename 0218-Measure-kernel-initrd.patch => 0217-Measure-kernel-initrd.patch (91%) rename 0219-Add-BIOS-boot-measurement.patch => 0218-Add-BIOS-boot-measurement.patch (97%) rename 0220-Measure-kernel-and-initrd-on-BIOS-systems.patch => 0219-Measure-kernel-and-initrd-on-BIOS-systems.patch (94%) rename 0221-Measure-the-kernel-commandline.patch => 0220-Measure-the-kernel-commandline.patch (89%) rename 0222-Measure-commands.patch => 0221-Measure-commands.patch (95%) rename 0223-Measure-multiboot-images-and-modules.patch => 0222-Measure-multiboot-images-and-modules.patch (94%) rename 0224-Fix-boot-when-there-s-no-TPM.patch => 0223-Fix-boot-when-there-s-no-TPM.patch (86%) rename 0225-Rework-TPM-measurements.patch => 0224-Rework-TPM-measurements.patch (98%) rename 0226-Fix-event-log-prefix.patch => 0225-Fix-event-log-prefix.patch (88%) rename 0227-Set-the-first-boot-menu-entry-as-default-when-using-.patch => 0226-Set-the-first-boot-menu-entry-as-default-when-using-.patch (86%) rename 0228-tpm-fix-warnings-when-compiling-for-platforms-other-.patch => 0227-tpm-fix-warnings-when-compiling-for-platforms-other-.patch (91%) rename 0229-Make-TPM-errors-less-fatal.patch => 0228-Make-TPM-errors-less-fatal.patch (98%) create mode 100644 0229-blscfg-handle-multiple-initramfs-images.patch diff --git a/0064-info-in-builddir.patch b/0064-info-in-builddir.patch deleted file mode 100644 index 67995585..00000000 --- a/0064-info-in-builddir.patch +++ /dev/null @@ -1,22 +0,0 @@ -From 5cf0df8753c19e83251c7244cafe38869a65060f Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Tue, 8 Aug 2017 13:08:59 -0400 -Subject: [PATCH 064/229] info-in-builddir - ---- - docs/Makefile.am | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/docs/Makefile.am b/docs/Makefile.am -index 93eb3962765..e396ba10f46 100644 ---- a/docs/Makefile.am -+++ b/docs/Makefile.am -@@ -1,4 +1,4 @@ --AUTOMAKE_OPTIONS = subdir-objects -+AUTOMAKE_OPTIONS = subdir-objects info-in-builddir - - # AM_MAKEINFOFLAGS = --no-split --no-validate - info_TEXINFOS = grub.texi grub-dev.texi --- -2.15.0 - diff --git a/0065-re-write-.gitignore.patch b/0064-re-write-.gitignore.patch similarity index 98% rename from 0065-re-write-.gitignore.patch rename to 0064-re-write-.gitignore.patch index cef5ee67..bd0ec2b4 100644 --- a/0065-re-write-.gitignore.patch +++ b/0064-re-write-.gitignore.patch @@ -1,7 +1,7 @@ -From ff9da35fd789354cc1490b75893e765771808352 Mon Sep 17 00:00:00 2001 +From 38bfcd3054c28aa40234840c12d900f1d18a217d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 8 Aug 2017 12:48:04 -0400 -Subject: [PATCH 065/229] re-write .gitignore +Subject: [PATCH 064/229] re-write .gitignore --- .gitignore | 352 ++++++++++++-------------------------- diff --git a/0066-IBM-client-architecture-CAS-reboot-support.patch b/0065-IBM-client-architecture-CAS-reboot-support.patch similarity index 97% rename from 0066-IBM-client-architecture-CAS-reboot-support.patch rename to 0065-IBM-client-architecture-CAS-reboot-support.patch index fab4ea36..b0a52ef9 100644 --- a/0066-IBM-client-architecture-CAS-reboot-support.patch +++ b/0065-IBM-client-architecture-CAS-reboot-support.patch @@ -1,7 +1,7 @@ -From 34423216f8f3d7ce6086e2f1ee9869407e6a2221 Mon Sep 17 00:00:00 2001 +From bf1fd830091fff49e26f39027e0db8fd4b688624 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Thu, 20 Sep 2012 18:07:39 -0300 -Subject: [PATCH 066/229] IBM client architecture (CAS) reboot support +Subject: [PATCH 065/229] IBM client architecture (CAS) reboot support This is an implementation of IBM client architecture (CAS) reboot for GRUB. diff --git a/0067-for-ppc-reset-console-display-attr-when-clear-screen.patch b/0066-for-ppc-reset-console-display-attr-when-clear-screen.patch similarity index 90% rename from 0067-for-ppc-reset-console-display-attr-when-clear-screen.patch rename to 0066-for-ppc-reset-console-display-attr-when-clear-screen.patch index 0da76fbd..429bbdfd 100644 --- a/0067-for-ppc-reset-console-display-attr-when-clear-screen.patch +++ b/0066-for-ppc-reset-console-display-attr-when-clear-screen.patch @@ -1,7 +1,7 @@ -From 070dc282d3cc6602571296e90945df9d4671aecb Mon Sep 17 00:00:00 2001 +From 8b30fab3c07a9fc8549e404c411b747b960c57b2 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Wed, 24 Apr 2013 10:51:48 -0300 -Subject: [PATCH 067/229] for ppc, reset console display attr when clear screen +Subject: [PATCH 066/229] for ppc, reset console display attr when clear screen v2: Also use \x0c instead of a literal ^L to make future patches less awkward. diff --git a/0068-Disable-GRUB-video-support-for-IBM-power-machines.patch b/0067-Disable-GRUB-video-support-for-IBM-power-machines.patch similarity index 94% rename from 0068-Disable-GRUB-video-support-for-IBM-power-machines.patch rename to 0067-Disable-GRUB-video-support-for-IBM-power-machines.patch index 9405e824..0410ea15 100644 --- a/0068-Disable-GRUB-video-support-for-IBM-power-machines.patch +++ b/0067-Disable-GRUB-video-support-for-IBM-power-machines.patch @@ -1,7 +1,7 @@ -From 4e31478fdf4cda470305c1bb2acb9b820e790757 Mon Sep 17 00:00:00 2001 +From 45322cbc9402639a431fc0f33bd76e387e6f02bf Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 11 Jun 2013 15:14:05 -0300 -Subject: [PATCH 068/229] Disable GRUB video support for IBM power machines +Subject: [PATCH 067/229] Disable GRUB video support for IBM power machines Should fix the problem in bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=973205 diff --git a/0069-Honor-a-symlink-when-generating-configuration-by-gru.patch b/0068-Honor-a-symlink-when-generating-configuration-by-gru.patch similarity index 86% rename from 0069-Honor-a-symlink-when-generating-configuration-by-gru.patch rename to 0068-Honor-a-symlink-when-generating-configuration-by-gru.patch index 27c76c3b..e143bb2d 100644 --- a/0069-Honor-a-symlink-when-generating-configuration-by-gru.patch +++ b/0068-Honor-a-symlink-when-generating-configuration-by-gru.patch @@ -1,7 +1,7 @@ -From 35535549324923af7fecf79cc739baba48246f21 Mon Sep 17 00:00:00 2001 +From c29e260c9f41f4f802fa852b6c46fb2e5d912cb6 Mon Sep 17 00:00:00 2001 From: Marcel Kolaja Date: Tue, 21 Jan 2014 10:57:08 -0500 -Subject: [PATCH 069/229] Honor a symlink when generating configuration by +Subject: [PATCH 068/229] Honor a symlink when generating configuration by grub2-mkconfig Honor a symlink when generating configuration by grub2-mkconfig, so that diff --git a/0070-Move-bash-completion-script-922997.patch b/0069-Move-bash-completion-script-922997.patch similarity index 93% rename from 0070-Move-bash-completion-script-922997.patch rename to 0069-Move-bash-completion-script-922997.patch index a47d25e3..06f3ba36 100644 --- a/0070-Move-bash-completion-script-922997.patch +++ b/0069-Move-bash-completion-script-922997.patch @@ -1,7 +1,7 @@ -From 999bbc2002275efce284aed6e1e31b3ca351fa19 Mon Sep 17 00:00:00 2001 +From 8eaf2f497a6bcffc5554509533940ac2b764b981 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 3 Apr 2013 14:35:34 -0400 -Subject: [PATCH 070/229] Move bash completion script (#922997) +Subject: [PATCH 069/229] Move bash completion script (#922997) Apparently these go in a new place now. --- diff --git a/0071-Update-to-minilzo-2.08.patch b/0070-Update-to-minilzo-2.08.patch similarity index 99% rename from 0071-Update-to-minilzo-2.08.patch rename to 0070-Update-to-minilzo-2.08.patch index eb948f45..0bd0f7a5 100644 --- a/0071-Update-to-minilzo-2.08.patch +++ b/0070-Update-to-minilzo-2.08.patch @@ -1,7 +1,7 @@ -From c0977f7fd42e16cc568af7ae667a2aeda85eb583 Mon Sep 17 00:00:00 2001 +From 9a1e99c5628bafa9e3970a5317b721da704bec6a Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Dec 2014 15:36:09 -0500 -Subject: [PATCH 071/229] Update to minilzo-2.08 +Subject: [PATCH 070/229] Update to minilzo-2.08 This fixes CVE-2014-4607 - lzo: lzo1x_decompress_safe() integer overflow diff --git a/0072-Allow-fallback-to-include-entries-by-title-not-just-.patch b/0071-Allow-fallback-to-include-entries-by-title-not-just-.patch similarity index 96% rename from 0072-Allow-fallback-to-include-entries-by-title-not-just-.patch rename to 0071-Allow-fallback-to-include-entries-by-title-not-just-.patch index 5f7728a2..00fc4cf1 100644 --- a/0072-Allow-fallback-to-include-entries-by-title-not-just-.patch +++ b/0071-Allow-fallback-to-include-entries-by-title-not-just-.patch @@ -1,7 +1,7 @@ -From 15e9ccc8abd5621107788bea6ae6f2bdb27a3ed3 Mon Sep 17 00:00:00 2001 +From 27845fb323de35e9dcaad8c738eb1a2a2bc316f8 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 5 Sep 2014 10:07:04 -0400 -Subject: [PATCH 072/229] Allow "fallback" to include entries by title, not +Subject: [PATCH 071/229] Allow "fallback" to include entries by title, not just number. Resolves: rhbz#1026084 diff --git a/0073-Add-GRUB_DISABLE_UUID.patch b/0072-Add-GRUB_DISABLE_UUID.patch similarity index 97% rename from 0073-Add-GRUB_DISABLE_UUID.patch rename to 0072-Add-GRUB_DISABLE_UUID.patch index a3ab5aa8..93eed1b4 100644 --- a/0073-Add-GRUB_DISABLE_UUID.patch +++ b/0072-Add-GRUB_DISABLE_UUID.patch @@ -1,7 +1,7 @@ -From 87602724b509a60628623baabf5a2c7741a68884 Mon Sep 17 00:00:00 2001 +From 7f7429e93fa791ac2c002beaafab9b9d9bd86b89 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Sep 2014 16:49:25 -0400 -Subject: [PATCH 073/229] Add GRUB_DISABLE_UUID. +Subject: [PATCH 072/229] Add GRUB_DISABLE_UUID. This will cause "search --fs-uuid --set=root ..." not to be generated by grub2-mkconfig, and instead simply attempt to use the grub device name diff --git a/0074-Make-exit-take-a-return-code.patch b/0073-Make-exit-take-a-return-code.patch similarity index 98% rename from 0074-Make-exit-take-a-return-code.patch rename to 0073-Make-exit-take-a-return-code.patch index 9e2acc84..fbf52ee8 100644 --- a/0074-Make-exit-take-a-return-code.patch +++ b/0073-Make-exit-take-a-return-code.patch @@ -1,7 +1,7 @@ -From 68d514b51b81911d8359d7825618112dae4a44d9 Mon Sep 17 00:00:00 2001 +From 384ccb1b44fc23514a59529f58f984dcc4a75cc9 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 26 Feb 2014 21:49:12 -0500 -Subject: [PATCH 074/229] Make "exit" take a return code. +Subject: [PATCH 073/229] Make "exit" take a return code. This adds "exit" with a return code. With this patch, any "exit" command /may/ include a return code, and on platforms that support diff --git a/0075-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch b/0074-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch similarity index 77% rename from 0075-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch rename to 0074-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch index 5c9e2e0e..f7ed6b2a 100644 --- a/0075-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch +++ b/0074-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch @@ -1,7 +1,7 @@ -From 126f6952b853ea67e784650ed12f365ab7988f51 Mon Sep 17 00:00:00 2001 +From 939f3dfcfacde13bd7ebfe411c0dceee9e5ed0ae Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 22 Jul 2015 11:21:01 -0400 -Subject: [PATCH 075/229] Mark po/exclude.pot as binary so git won't try to +Subject: [PATCH 074/229] Mark po/exclude.pot as binary so git won't try to diff nonprintables. Signed-off-by: Peter Jones diff --git a/0076-Make-efi-machines-load-an-env-block-from-a-variable.patch b/0075-Make-efi-machines-load-an-env-block-from-a-variable.patch similarity index 94% rename from 0076-Make-efi-machines-load-an-env-block-from-a-variable.patch rename to 0075-Make-efi-machines-load-an-env-block-from-a-variable.patch index 8b1f6caa..4acdbf19 100644 --- a/0076-Make-efi-machines-load-an-env-block-from-a-variable.patch +++ b/0075-Make-efi-machines-load-an-env-block-from-a-variable.patch @@ -1,7 +1,7 @@ -From 506b52759b2b2ad46e7b389979fcbaa78d68dab9 Mon Sep 17 00:00:00 2001 +From 805220eb48a8cabcc83628d90aa40f3204b21a71 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 7 Dec 2015 14:20:49 -0500 -Subject: [PATCH 076/229] Make efi machines load an env block from a variable +Subject: [PATCH 075/229] Make efi machines load an env block from a variable Signed-off-by: Peter Jones --- diff --git a/0077-DHCP-client-ID-and-UUID-options-added.patch b/0076-DHCP-client-ID-and-UUID-options-added.patch similarity index 96% rename from 0077-DHCP-client-ID-and-UUID-options-added.patch rename to 0076-DHCP-client-ID-and-UUID-options-added.patch index aa9ca778..648cb941 100644 --- a/0077-DHCP-client-ID-and-UUID-options-added.patch +++ b/0076-DHCP-client-ID-and-UUID-options-added.patch @@ -1,7 +1,7 @@ -From 8a0b654a520e407da69e0cf64f3dd6bb7cf86240 Mon Sep 17 00:00:00 2001 +From cefc164d655fb7709efbc37a317952ff3ec4aeb3 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 27 Nov 2012 17:18:53 -0200 -Subject: [PATCH 077/229] DHCP client ID and UUID options added. +Subject: [PATCH 076/229] DHCP client ID and UUID options added. --- grub-core/net/bootp.c | 87 ++++++++++++++++++++++++++++++++++++++++++++++----- diff --git a/0078-trim-arp-packets-with-abnormal-size.patch b/0077-trim-arp-packets-with-abnormal-size.patch similarity index 89% rename from 0078-trim-arp-packets-with-abnormal-size.patch rename to 0077-trim-arp-packets-with-abnormal-size.patch index 03ff64bd..f35e1567 100644 --- a/0078-trim-arp-packets-with-abnormal-size.patch +++ b/0077-trim-arp-packets-with-abnormal-size.patch @@ -1,7 +1,7 @@ -From cffad45026af9a05a0509daf593fa87148a3de66 Mon Sep 17 00:00:00 2001 +From 571a6cce3b0d4c8abf11efc320e2de6ff9188d60 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Wed, 5 Feb 2014 09:42:42 -0200 -Subject: [PATCH 078/229] trim arp packets with abnormal size +Subject: [PATCH 077/229] trim arp packets with abnormal size GRUB uses arp request to create the arp response. If the incoming packet is foobared, GRUB needs to trim the arp response packet before sending it. diff --git a/0079-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch b/0078-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch similarity index 90% rename from 0079-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch rename to 0078-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch index 7be739c7..23dd1892 100644 --- a/0079-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch +++ b/0078-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch @@ -1,7 +1,7 @@ -From 97b0254d8f3de9a51aa3df570d862bbb8dbd044b Mon Sep 17 00:00:00 2001 +From 6cd959a64f588e256f0ba17e31bf2720b9cdec88 Mon Sep 17 00:00:00 2001 From: Prarit Bhargava Date: Wed, 12 Mar 2014 10:58:16 -0400 -Subject: [PATCH 079/229] Fix bad test on GRUB_DISABLE_SUBMENU. +Subject: [PATCH 078/229] Fix bad test on GRUB_DISABLE_SUBMENU. The file /etc/grub.d/10_linux does diff --git a/0080-Add-support-for-UEFI-operating-systems-returned-by-o.patch b/0079-Add-support-for-UEFI-operating-systems-returned-by-o.patch similarity index 90% rename from 0080-Add-support-for-UEFI-operating-systems-returned-by-o.patch rename to 0079-Add-support-for-UEFI-operating-systems-returned-by-o.patch index 3a348ff3..89e78db6 100644 --- a/0080-Add-support-for-UEFI-operating-systems-returned-by-o.patch +++ b/0079-Add-support-for-UEFI-operating-systems-returned-by-o.patch @@ -1,7 +1,7 @@ -From cf5302cca4a0daf5eb9b058243e6f56e63ab58dc Mon Sep 17 00:00:00 2001 +From 0254265409f80b369c35fb474c7371feb6f9ae1d Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Wed, 12 Jun 2013 11:51:49 -0400 -Subject: [PATCH 080/229] Add support for UEFI operating systems returned by +Subject: [PATCH 079/229] Add support for UEFI operating systems returned by os-prober os-prober returns UEFI operating systems in the form: diff --git a/0081-Migrate-PPC-from-Yaboot-to-Grub2.patch b/0080-Migrate-PPC-from-Yaboot-to-Grub2.patch similarity index 96% rename from 0081-Migrate-PPC-from-Yaboot-to-Grub2.patch rename to 0080-Migrate-PPC-from-Yaboot-to-Grub2.patch index 91daed2c..fad62fdb 100644 --- a/0081-Migrate-PPC-from-Yaboot-to-Grub2.patch +++ b/0080-Migrate-PPC-from-Yaboot-to-Grub2.patch @@ -1,7 +1,7 @@ -From 4fbdca3b8a359170032882db53646cc4bfd17f6b Mon Sep 17 00:00:00 2001 +From f2b4c105e3657cc32ed0f7aefa713f161cdf64f1 Mon Sep 17 00:00:00 2001 From: Mark Hamzy Date: Wed, 28 Mar 2012 14:46:41 -0500 -Subject: [PATCH 081/229] Migrate PPC from Yaboot to Grub2 +Subject: [PATCH 080/229] Migrate PPC from Yaboot to Grub2 Add configuration support for serial terminal consoles. This will set the maximum screen size so that text is not overwritten. diff --git a/0082-Add-fw_path-variable-revised.patch b/0081-Add-fw_path-variable-revised.patch similarity index 94% rename from 0082-Add-fw_path-variable-revised.patch rename to 0081-Add-fw_path-variable-revised.patch index b3b1c6c3..a77fc418 100644 --- a/0082-Add-fw_path-variable-revised.patch +++ b/0081-Add-fw_path-variable-revised.patch @@ -1,7 +1,7 @@ -From ebd364c3aabe4e484243ccf6e276563416b3f244 Mon Sep 17 00:00:00 2001 +From 7f021a05a5ed7c97432abbc1762f40e36a4915e3 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Wed, 19 Sep 2012 21:22:55 -0300 -Subject: [PATCH 082/229] Add fw_path variable (revised) +Subject: [PATCH 081/229] Add fw_path variable (revised) This patch makes grub look for its config file on efi where the app was found. It was originally written by Matthew Garrett, and adapted to fix the diff --git a/0083-Add-support-for-linuxefi.patch b/0082-Add-support-for-linuxefi.patch similarity index 99% rename from 0083-Add-support-for-linuxefi.patch rename to 0082-Add-support-for-linuxefi.patch index 9526633f..302662e4 100644 --- a/0083-Add-support-for-linuxefi.patch +++ b/0082-Add-support-for-linuxefi.patch @@ -1,7 +1,7 @@ -From e1243befd2bc84b3c85100bece1424529dedafb4 Mon Sep 17 00:00:00 2001 +From 778385965798ac2711f0d07d5cf521a6e999ca8b Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 10 Jul 2012 11:58:52 -0400 -Subject: [PATCH 083/229] Add support for linuxefi +Subject: [PATCH 082/229] Add support for linuxefi --- grub-core/Makefile.core.def | 8 + diff --git a/0084-Use-linuxefi-and-initrdefi-where-appropriate.patch b/0083-Use-linuxefi-and-initrdefi-where-appropriate.patch similarity index 92% rename from 0084-Use-linuxefi-and-initrdefi-where-appropriate.patch rename to 0083-Use-linuxefi-and-initrdefi-where-appropriate.patch index 78cdc796..eaa12164 100644 --- a/0084-Use-linuxefi-and-initrdefi-where-appropriate.patch +++ b/0083-Use-linuxefi-and-initrdefi-where-appropriate.patch @@ -1,7 +1,7 @@ -From 859cdda8e3c026eb132ad15320222a7ef89d8940 Mon Sep 17 00:00:00 2001 +From 793d4270384ef3373bc0b3c956cab8a8cdb75bcf Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 16 Jul 2012 18:57:11 -0400 -Subject: [PATCH 084/229] Use "linuxefi" and "initrdefi" where appropriate. +Subject: [PATCH 083/229] Use "linuxefi" and "initrdefi" where appropriate. --- util/grub.d/10_linux.in | 18 ++++++++++++++++-- diff --git a/0085-Don-t-allow-insmod-when-secure-boot-is-enabled.patch b/0084-Don-t-allow-insmod-when-secure-boot-is-enabled.patch similarity index 96% rename from 0085-Don-t-allow-insmod-when-secure-boot-is-enabled.patch rename to 0084-Don-t-allow-insmod-when-secure-boot-is-enabled.patch index 40275999..a5267e9f 100644 --- a/0085-Don-t-allow-insmod-when-secure-boot-is-enabled.patch +++ b/0084-Don-t-allow-insmod-when-secure-boot-is-enabled.patch @@ -1,7 +1,7 @@ -From a7dd90b084d0e6d10e8f1892651d8c20c079c99d Mon Sep 17 00:00:00 2001 +From eb8fd62e887e624f5c6e7c2ee8512981e8b5be97 Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Tue, 23 Oct 2012 10:40:49 -0400 -Subject: [PATCH 085/229] Don't allow insmod when secure boot is enabled. +Subject: [PATCH 084/229] Don't allow insmod when secure boot is enabled. Hi, diff --git a/0086-Pass-x-hex-hex-straight-through-unmolested.patch b/0085-Pass-x-hex-hex-straight-through-unmolested.patch similarity index 97% rename from 0086-Pass-x-hex-hex-straight-through-unmolested.patch rename to 0085-Pass-x-hex-hex-straight-through-unmolested.patch index 4e4a1d88..c6e956b0 100644 --- a/0086-Pass-x-hex-hex-straight-through-unmolested.patch +++ b/0085-Pass-x-hex-hex-straight-through-unmolested.patch @@ -1,7 +1,7 @@ -From 66e04779bda094f385e8bbbe3523501821b830e4 Mon Sep 17 00:00:00 2001 +From 0d54ed89090fc1bdcb75de474024b2b81dbf644f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 1 Oct 2012 13:24:37 -0400 -Subject: [PATCH 086/229] Pass "\x[[:hex:]][[:hex:]]" straight through +Subject: [PATCH 085/229] Pass "\x[[:hex:]][[:hex:]]" straight through unmolested. --- diff --git a/0087-Add-X-option-to-printf-functions.patch b/0086-Add-X-option-to-printf-functions.patch similarity index 92% rename from 0087-Add-X-option-to-printf-functions.patch rename to 0086-Add-X-option-to-printf-functions.patch index 3ed3bc25..509f64c4 100644 --- a/0087-Add-X-option-to-printf-functions.patch +++ b/0086-Add-X-option-to-printf-functions.patch @@ -1,7 +1,7 @@ -From 85d1de365ee5f0fb5409a3b1d895204262a7a068 Mon Sep 17 00:00:00 2001 +From 6237b1688124d6a72250b296e758ef2d59fde26f Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 27 Nov 2012 16:58:39 -0200 -Subject: [PATCH 087/229] Add %X option to printf functions. +Subject: [PATCH 086/229] Add %X option to printf functions. --- grub-core/kern/misc.c | 7 +++++-- diff --git a/0088-Search-for-specific-config-file-for-netboot.patch b/0087-Search-for-specific-config-file-for-netboot.patch similarity index 97% rename from 0088-Search-for-specific-config-file-for-netboot.patch rename to 0087-Search-for-specific-config-file-for-netboot.patch index 01de1fc3..e7ab73f7 100644 --- a/0088-Search-for-specific-config-file-for-netboot.patch +++ b/0087-Search-for-specific-config-file-for-netboot.patch @@ -1,7 +1,7 @@ -From 4b15dd15153b2e7070ae37736c3094223fa3a01d Mon Sep 17 00:00:00 2001 +From 9491cbfdab951e38f096bd9705a76b382f54c9be Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 27 Nov 2012 17:22:07 -0200 -Subject: [PATCH 088/229] Search for specific config file for netboot +Subject: [PATCH 087/229] Search for specific config file for netboot This patch implements a search for a specific configuration when the config file is on a remoteserver. It uses the following order: diff --git a/0089-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch b/0088-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch similarity index 97% rename from 0089-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch rename to 0088-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch index a2617cce..e5a5d89a 100644 --- a/0089-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch +++ b/0088-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch @@ -1,7 +1,7 @@ -From cb7f166adef2b0acc52fa0b506621295a1408702 Mon Sep 17 00:00:00 2001 +From 5fcdebdc36cc84c772754b7f5bdb87aed2b42853 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Tue, 22 Jan 2013 06:31:38 +0100 -Subject: [PATCH 089/229] blscfg: add blscfg module to parse Boot Loader +Subject: [PATCH 088/229] blscfg: add blscfg module to parse Boot Loader Specification snippets http://www.freedesktop.org/wiki/Specifications/BootLoaderSpec diff --git a/0090-Don-t-write-messages-to-the-screen.patch b/0089-Don-t-write-messages-to-the-screen.patch similarity index 97% rename from 0090-Don-t-write-messages-to-the-screen.patch rename to 0089-Don-t-write-messages-to-the-screen.patch index 23e37f18..72ea97d5 100644 --- a/0090-Don-t-write-messages-to-the-screen.patch +++ b/0089-Don-t-write-messages-to-the-screen.patch @@ -1,7 +1,7 @@ -From 472265de61af84149ba89a91072317e15298caa1 Mon Sep 17 00:00:00 2001 +From fc390be631e93744c6a3a2f42849c9edf2614a36 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 13:30:20 -0400 -Subject: [PATCH 090/229] Don't write messages to the screen +Subject: [PATCH 089/229] Don't write messages to the screen Writing messages to the screen before the menus or boot splash happens so quickly it looks like something is wrong and isn't diff --git a/0091-Don-t-print-GNU-GRUB-header.patch b/0090-Don-t-print-GNU-GRUB-header.patch similarity index 90% rename from 0091-Don-t-print-GNU-GRUB-header.patch rename to 0090-Don-t-print-GNU-GRUB-header.patch index 09917332..8f6b4def 100644 --- a/0091-Don-t-print-GNU-GRUB-header.patch +++ b/0090-Don-t-print-GNU-GRUB-header.patch @@ -1,7 +1,7 @@ -From 2b9d1073c695f0363202a00586e1994432d23347 Mon Sep 17 00:00:00 2001 +From 806c26ae73bc86e305c39c955d86480fad8985df Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 13:53:48 -0400 -Subject: [PATCH 091/229] Don't print GNU GRUB header +Subject: [PATCH 090/229] Don't print GNU GRUB header No one cares. --- diff --git a/0092-Don-t-add-to-highlighted-row.patch b/0091-Don-t-add-to-highlighted-row.patch similarity index 85% rename from 0092-Don-t-add-to-highlighted-row.patch rename to 0091-Don-t-add-to-highlighted-row.patch index c19574c3..5e000998 100644 --- a/0092-Don-t-add-to-highlighted-row.patch +++ b/0091-Don-t-add-to-highlighted-row.patch @@ -1,7 +1,7 @@ -From 7cb577925e3d40869b9748afa5060b178ba88abd Mon Sep 17 00:00:00 2001 +From 5ae2484f263365351a2891be6c056eeb96b3924b Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 17:49:45 -0400 -Subject: [PATCH 092/229] Don't add '*' to highlighted row +Subject: [PATCH 091/229] Don't add '*' to highlighted row It is already highlighted. --- diff --git a/0093-Message-string-cleanups.patch b/0092-Message-string-cleanups.patch similarity index 96% rename from 0093-Message-string-cleanups.patch rename to 0092-Message-string-cleanups.patch index 208ec144..7f5efb13 100644 --- a/0093-Message-string-cleanups.patch +++ b/0092-Message-string-cleanups.patch @@ -1,7 +1,7 @@ -From 67803e1ea2884a1ff8ecbb1cc9371fa63c9a7544 Mon Sep 17 00:00:00 2001 +From 622b238ecb927d331dc38083584a7323013b5f21 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 11:09:04 -0400 -Subject: [PATCH 093/229] Message string cleanups +Subject: [PATCH 092/229] Message string cleanups Make use of terminology consistent. Remove jargon. --- diff --git a/0094-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch b/0093-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch similarity index 87% rename from 0094-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch rename to 0093-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch index 1beb8cb4..4f4ad24a 100644 --- a/0094-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch +++ b/0093-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch @@ -1,7 +1,7 @@ -From 7857716e067795304fc788813e427fac3f9624d7 Mon Sep 17 00:00:00 2001 +From c7dac08ab344638afabf579e03bedfac729e1944 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:08:23 -0400 -Subject: [PATCH 094/229] Fix border spacing now that we aren't displaying it +Subject: [PATCH 093/229] Fix border spacing now that we aren't displaying it --- grub-core/normal/menu_text.c | 6 +++--- diff --git a/0095-Use-the-correct-indentation-for-the-term-help-text.patch b/0094-Use-the-correct-indentation-for-the-term-help-text.patch similarity index 88% rename from 0095-Use-the-correct-indentation-for-the-term-help-text.patch rename to 0094-Use-the-correct-indentation-for-the-term-help-text.patch index ac9750e3..f9f92124 100644 --- a/0095-Use-the-correct-indentation-for-the-term-help-text.patch +++ b/0094-Use-the-correct-indentation-for-the-term-help-text.patch @@ -1,7 +1,7 @@ -From 9ecf176aa2951d848ca2d0ab23e663b2ddc1b336 Mon Sep 17 00:00:00 2001 +From 8a59d6c44d946eac70ecbb7a9418c5d6801add8b Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:08:49 -0400 -Subject: [PATCH 095/229] Use the correct indentation for the term help text +Subject: [PATCH 094/229] Use the correct indentation for the term help text That is consistent with the menu help text --- diff --git a/0096-Indent-menu-entries.patch b/0095-Indent-menu-entries.patch similarity index 86% rename from 0096-Indent-menu-entries.patch rename to 0095-Indent-menu-entries.patch index b6ed0fe6..7d28cd59 100644 --- a/0096-Indent-menu-entries.patch +++ b/0095-Indent-menu-entries.patch @@ -1,7 +1,7 @@ -From 62af3df5904d4fff7e8c4bab0a90aae6752be432 Mon Sep 17 00:00:00 2001 +From 018439ecfda2bc5049ccbfb0d6ab7fa047411a3b Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:30:55 -0400 -Subject: [PATCH 096/229] Indent menu entries +Subject: [PATCH 095/229] Indent menu entries --- grub-core/normal/menu_text.c | 3 ++- diff --git a/0097-Fix-margins.patch b/0096-Fix-margins.patch similarity index 92% rename from 0097-Fix-margins.patch rename to 0096-Fix-margins.patch index bb2b2121..328bdf78 100644 --- a/0097-Fix-margins.patch +++ b/0096-Fix-margins.patch @@ -1,7 +1,7 @@ -From aa23d4d1be22a7255f9faa3bac39a5d29c2de9f2 Mon Sep 17 00:00:00 2001 +From 33481aa0e7897465ffd386101d6f3eda6e3bbac0 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:59:36 -0400 -Subject: [PATCH 097/229] Fix margins +Subject: [PATCH 096/229] Fix margins --- grub-core/normal/menu_text.c | 8 +++----- diff --git a/0098-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch b/0097-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch similarity index 85% rename from 0098-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch rename to 0097-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch index 083bca82..c7ca16e5 100644 --- a/0098-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch +++ b/0097-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch @@ -1,7 +1,7 @@ -From cc0abdf469be06b17879f19b26c73b916f479b28 Mon Sep 17 00:00:00 2001 +From ea032bd4a6cb66929da61477b1759e136c975189 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 21 Jun 2013 14:44:08 -0400 -Subject: [PATCH 098/229] Use -2 instead of -1 for our right-hand margin, so +Subject: [PATCH 097/229] Use -2 instead of -1 for our right-hand margin, so linewrapping works (#976643). Signed-off-by: Peter Jones diff --git a/0099-Use-linux16-when-appropriate-880840.patch b/0098-Use-linux16-when-appropriate-880840.patch similarity index 90% rename from 0099-Use-linux16-when-appropriate-880840.patch rename to 0098-Use-linux16-when-appropriate-880840.patch index c60daf43..638f0956 100644 --- a/0099-Use-linux16-when-appropriate-880840.patch +++ b/0098-Use-linux16-when-appropriate-880840.patch @@ -1,7 +1,7 @@ -From 9b332449552b4c8afbe2d0e30b795d93c2ac733f Mon Sep 17 00:00:00 2001 +From 8e1957d59e7e72850cbac7e779ddf22ca23c250d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 28 Oct 2013 10:05:07 -0400 -Subject: [PATCH 099/229] Use linux16 when appropriate (#880840) +Subject: [PATCH 098/229] Use linux16 when appropriate (#880840) The kernel group really would prefer that we use the 16 bit entry point on x86 bios machines. diff --git a/0100-Enable-pager-by-default.-985860.patch b/0099-Enable-pager-by-default.-985860.patch similarity index 83% rename from 0100-Enable-pager-by-default.-985860.patch rename to 0099-Enable-pager-by-default.-985860.patch index 6b61a157..1e57fed6 100644 --- a/0100-Enable-pager-by-default.-985860.patch +++ b/0099-Enable-pager-by-default.-985860.patch @@ -1,7 +1,7 @@ -From 24b186833aad3f456111b7f9d3806065dbb95a2e Mon Sep 17 00:00:00 2001 +From 7466f51a0012ebdd8be07cfc0e63d50e0e79560d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 28 Oct 2013 10:09:27 -0400 -Subject: [PATCH 100/229] Enable pager by default. (#985860) +Subject: [PATCH 099/229] Enable pager by default. (#985860) Signed-off-by: Peter Jones --- diff --git a/0101-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch b/0100-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch similarity index 88% rename from 0101-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch rename to 0100-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch index b279e485..166f3d6f 100644 --- a/0101-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch +++ b/0100-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch @@ -1,7 +1,7 @@ -From 3635e1f8f5925e9c5ba54e9bbe79503d78177ea4 Mon Sep 17 00:00:00 2001 +From 7a97d9621a145cbd04111970fea04c34433f900c Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 28 Oct 2013 10:13:27 -0400 -Subject: [PATCH 101/229] F10 doesn't work on serial, so don't tell the user to +Subject: [PATCH 100/229] F10 doesn't work on serial, so don't tell the user to hit it (#987443) Signed-off-by: Peter Jones diff --git a/0102-Don-t-say-GNU-Linux-in-generated-menus.patch b/0101-Don-t-say-GNU-Linux-in-generated-menus.patch similarity index 91% rename from 0102-Don-t-say-GNU-Linux-in-generated-menus.patch rename to 0101-Don-t-say-GNU-Linux-in-generated-menus.patch index d498d405..a8570cc6 100644 --- a/0102-Don-t-say-GNU-Linux-in-generated-menus.patch +++ b/0101-Don-t-say-GNU-Linux-in-generated-menus.patch @@ -1,7 +1,7 @@ -From c3bd10791d0ecc17cd8243de8eea4cd683ae2bdb Mon Sep 17 00:00:00 2001 +From 45877a77f50eecd0b7fd3ba1aec0d4398a3b6a20 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 14 Mar 2011 14:27:42 -0400 -Subject: [PATCH 102/229] Don't say "GNU/Linux" in generated menus. +Subject: [PATCH 101/229] Don't say "GNU/Linux" in generated menus. --- util/grub.d/10_linux.in | 4 ++-- diff --git a/0103-Don-t-draw-a-border-around-the-menu.patch b/0102-Don-t-draw-a-border-around-the-menu.patch similarity index 95% rename from 0103-Don-t-draw-a-border-around-the-menu.patch rename to 0102-Don-t-draw-a-border-around-the-menu.patch index 5a789e2a..efc478b3 100644 --- a/0103-Don-t-draw-a-border-around-the-menu.patch +++ b/0102-Don-t-draw-a-border-around-the-menu.patch @@ -1,7 +1,7 @@ -From 79e679458cc2e70d0097cfc702668976fe1fdc5d Mon Sep 17 00:00:00 2001 +From c28a3053e96859000df5ff1d48c9a560d47c0470 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 16:47:33 -0400 -Subject: [PATCH 103/229] Don't draw a border around the menu +Subject: [PATCH 102/229] Don't draw a border around the menu It looks cleaner without it. --- diff --git a/0104-Use-the-standard-margin-for-the-timeout-string.patch b/0103-Use-the-standard-margin-for-the-timeout-string.patch similarity index 91% rename from 0104-Use-the-standard-margin-for-the-timeout-string.patch rename to 0103-Use-the-standard-margin-for-the-timeout-string.patch index e1a1aca0..145fd403 100644 --- a/0104-Use-the-standard-margin-for-the-timeout-string.patch +++ b/0103-Use-the-standard-margin-for-the-timeout-string.patch @@ -1,7 +1,7 @@ -From a82ffe034724bb20b062bba9606654d0e3919acc Mon Sep 17 00:00:00 2001 +From 93018f5d1727eb58dead129f150a36080c22530a Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 10:52:32 -0400 -Subject: [PATCH 104/229] Use the standard margin for the timeout string +Subject: [PATCH 103/229] Use the standard margin for the timeout string So that it aligns with the other messages --- diff --git a/0105-Add-.eh_frame-to-list-of-relocations-stripped.patch b/0104-Add-.eh_frame-to-list-of-relocations-stripped.patch similarity index 89% rename from 0105-Add-.eh_frame-to-list-of-relocations-stripped.patch rename to 0104-Add-.eh_frame-to-list-of-relocations-stripped.patch index 343706ce..47ab730a 100644 --- a/0105-Add-.eh_frame-to-list-of-relocations-stripped.patch +++ b/0104-Add-.eh_frame-to-list-of-relocations-stripped.patch @@ -1,7 +1,7 @@ -From 35cdd6b929d5f63750bb214a53e1c75b31dcae99 Mon Sep 17 00:00:00 2001 +From c626121f38adf6fcd39a5f69249c650b4b52c10d Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Mon, 13 Jan 2014 21:50:59 -0500 -Subject: [PATCH 105/229] Add .eh_frame to list of relocations stripped +Subject: [PATCH 104/229] Add .eh_frame to list of relocations stripped --- conf/Makefile.common | 2 +- diff --git a/0106-Make-10_linux-work-with-our-changes-for-linux16-and-.patch b/0105-Make-10_linux-work-with-our-changes-for-linux16-and-.patch similarity index 94% rename from 0106-Make-10_linux-work-with-our-changes-for-linux16-and-.patch rename to 0105-Make-10_linux-work-with-our-changes-for-linux16-and-.patch index 3e811ace..e8384597 100644 --- a/0106-Make-10_linux-work-with-our-changes-for-linux16-and-.patch +++ b/0105-Make-10_linux-work-with-our-changes-for-linux16-and-.patch @@ -1,7 +1,7 @@ -From 3f5daaa46d0a5eb390a74da40abe54d385d308cf Mon Sep 17 00:00:00 2001 +From 59275c83e7a303c63379d37ba21aa39a3c3b7203 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jan 2014 13:12:23 -0500 -Subject: [PATCH 106/229] Make 10_linux work with our changes for linux16 and +Subject: [PATCH 105/229] Make 10_linux work with our changes for linux16 and linuxefi on aarch64 Signed-off-by: Peter Jones diff --git a/0107-Don-t-print-during-fdt-loading-method.patch b/0106-Don-t-print-during-fdt-loading-method.patch similarity index 82% rename from 0107-Don-t-print-during-fdt-loading-method.patch rename to 0106-Don-t-print-during-fdt-loading-method.patch index 82d447d8..4e72e0e8 100644 --- a/0107-Don-t-print-during-fdt-loading-method.patch +++ b/0106-Don-t-print-during-fdt-loading-method.patch @@ -1,7 +1,7 @@ -From 276027c67b27f2ee557ca9e2492c779a5f76cb9b Mon Sep 17 00:00:00 2001 +From aedf2aceb354ab7bf28bbf70d0a4b505c0adcfdf Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jan 2014 16:15:46 -0500 -Subject: [PATCH 107/229] Don't print during fdt loading method. +Subject: [PATCH 106/229] Don't print during fdt loading method. Signed-off-by: Peter Jones --- diff --git a/0108-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch b/0107-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch similarity index 86% rename from 0108-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch rename to 0107-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch index 5187992b..473a760f 100644 --- a/0108-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch +++ b/0107-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch @@ -1,7 +1,7 @@ -From 25add18bbc13249a2ce32f4e9b0de512ecc1fe4b Mon Sep 17 00:00:00 2001 +From f2790b1f7c8efcd5589c8fcdaca51b548ab9825c Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Mon, 30 Jun 2014 14:16:46 -0400 -Subject: [PATCH 108/229] Don't munge raw spaces when we're doing our cmdline +Subject: [PATCH 107/229] Don't munge raw spaces when we're doing our cmdline escaping (#923374) Signed-off-by: Peter Jones diff --git a/0109-Don-t-require-a-password-to-boot-entries-generated-b.patch b/0108-Don-t-require-a-password-to-boot-entries-generated-b.patch similarity index 86% rename from 0109-Don-t-require-a-password-to-boot-entries-generated-b.patch rename to 0108-Don-t-require-a-password-to-boot-entries-generated-b.patch index 694877f7..a06a7f4c 100644 --- a/0109-Don-t-require-a-password-to-boot-entries-generated-b.patch +++ b/0108-Don-t-require-a-password-to-boot-entries-generated-b.patch @@ -1,7 +1,7 @@ -From 9b109204ee0d1888d64d553849798ee57af1809f Mon Sep 17 00:00:00 2001 +From 205a7844bea4d849dc24f24b5fc96f6040d5e2b9 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 11 Feb 2014 11:14:50 -0500 -Subject: [PATCH 109/229] Don't require a password to boot entries generated by +Subject: [PATCH 108/229] Don't require a password to boot entries generated by grub-mkconfig. When we set a password, we just want that to mean you can't /edit/ an entry. diff --git a/0110-Don-t-emit-Booting-.-message.patch b/0109-Don-t-emit-Booting-.-message.patch similarity index 92% rename from 0110-Don-t-emit-Booting-.-message.patch rename to 0109-Don-t-emit-Booting-.-message.patch index e4bc867c..f4a88b43 100644 --- a/0110-Don-t-emit-Booting-.-message.patch +++ b/0109-Don-t-emit-Booting-.-message.patch @@ -1,7 +1,7 @@ -From 68f1935b5c6f66afbf9d6990615946c44f3d54cb Mon Sep 17 00:00:00 2001 +From c986c38f790881be0b9c5b0acd8d3b106412a5f1 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 18 Feb 2014 09:37:49 -0500 -Subject: [PATCH 110/229] Don't emit "Booting ..." message. +Subject: [PATCH 109/229] Don't emit "Booting ..." message. UI team still hates this stuff, so we're disabling it for RHEL 7. diff --git a/0111-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch b/0110-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch similarity index 99% rename from 0111-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch rename to 0110-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch index 817de026..e917af57 100644 --- a/0111-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch +++ b/0110-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch @@ -1,7 +1,7 @@ -From 6cdf99aa53970695fbf5c002fa288e1044571ca7 Mon Sep 17 00:00:00 2001 +From dcf3b9c590f00e33f773de68ac4ebd55ca4f6e90 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 4 Mar 2014 11:00:23 -0500 -Subject: [PATCH 111/229] Replace a lot of man pages with slightly nicer ones. +Subject: [PATCH 110/229] Replace a lot of man pages with slightly nicer ones. Replace a bunch of machine generated ones with ones that look nicer. --- @@ -168,7 +168,7 @@ index b16bd925320..39eb94bded6 100644 EXTRA_DIST += docs/grub.cfg EXTRA_DIST += docs/osdetect.cfg diff --git a/docs/Makefile.am b/docs/Makefile.am -index e396ba10f46..0669729cc57 100644 +index 93eb3962765..ab28f199694 100644 --- a/docs/Makefile.am +++ b/docs/Makefile.am @@ -5,5 +5,3 @@ info_TEXINFOS = grub.texi grub-dev.texi diff --git a/0112-use-fw_path-prefix-when-fallback-searching-for-grub-.patch b/0111-use-fw_path-prefix-when-fallback-searching-for-grub-.patch similarity index 92% rename from 0112-use-fw_path-prefix-when-fallback-searching-for-grub-.patch rename to 0111-use-fw_path-prefix-when-fallback-searching-for-grub-.patch index 9f311a09..8f81155a 100644 --- a/0112-use-fw_path-prefix-when-fallback-searching-for-grub-.patch +++ b/0111-use-fw_path-prefix-when-fallback-searching-for-grub-.patch @@ -1,7 +1,7 @@ -From f72c593c32ecba7b10ceb4c63ca8ec48f60c3ccf Mon Sep 17 00:00:00 2001 +From 24865a88781aef2a6a54433b5b383219108f54fa Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Wed, 19 Feb 2014 15:58:43 -0500 -Subject: [PATCH 112/229] use fw_path prefix when fallback searching for grub +Subject: [PATCH 111/229] use fw_path prefix when fallback searching for grub config When PXE booting via UEFI firmware, grub was searching for grub.cfg diff --git a/0113-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch b/0112-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch similarity index 95% rename from 0113-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch rename to 0112-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch index 3b5ccaa0..ae06df75 100644 --- a/0113-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch +++ b/0112-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch @@ -1,7 +1,7 @@ -From 09265872f163e6dfe1aa319ac40e8090f31830f7 Mon Sep 17 00:00:00 2001 +From d4cd9aa8695ab9448da41f756553beb75bffee46 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 6 Mar 2014 11:51:33 -0500 -Subject: [PATCH 113/229] Try mac/guid/etc before grub.cfg on tftp config +Subject: [PATCH 112/229] Try mac/guid/etc before grub.cfg on tftp config files. Signed-off-by: Peter Jones diff --git a/0114-Fix-convert-function-to-support-NVMe-devices.patch b/0113-Fix-convert-function-to-support-NVMe-devices.patch similarity index 91% rename from 0114-Fix-convert-function-to-support-NVMe-devices.patch rename to 0113-Fix-convert-function-to-support-NVMe-devices.patch index c3f46294..e02750dc 100644 --- a/0114-Fix-convert-function-to-support-NVMe-devices.patch +++ b/0113-Fix-convert-function-to-support-NVMe-devices.patch @@ -1,7 +1,7 @@ -From 39976a692a9350b1293f209953426830ddde2ad6 Mon Sep 17 00:00:00 2001 +From 397f179c26aeddf3fe452c62aa404459889835fc Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 18 Feb 2014 11:34:00 -0500 -Subject: [PATCH 114/229] Fix convert function to support NVMe devices +Subject: [PATCH 113/229] Fix convert function to support NVMe devices This is adapted from the patch at https://bugzilla.redhat.com/show_bug.cgi?id=1019660 , which is against diff --git a/0115-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch b/0114-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch similarity index 85% rename from 0115-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch rename to 0114-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch index 7cf9ec8c..895af390 100644 --- a/0115-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch +++ b/0114-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch @@ -1,7 +1,7 @@ -From 05d7e199d3f48cf9fd9b2af877cfe37c498f0874 Mon Sep 17 00:00:00 2001 +From 4291f418c3304f0f379467e87ce5892853cc16c7 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Mon, 10 Feb 2014 16:13:10 -0500 -Subject: [PATCH 115/229] Switch to use APM Mustang device tree, for hardware +Subject: [PATCH 114/229] Switch to use APM Mustang device tree, for hardware testing. Signed-off-by: David A. Marlin diff --git a/0116-Use-the-default-device-tree-from-the-grub-default-fi.patch b/0115-Use-the-default-device-tree-from-the-grub-default-fi.patch similarity index 90% rename from 0116-Use-the-default-device-tree-from-the-grub-default-fi.patch rename to 0115-Use-the-default-device-tree-from-the-grub-default-fi.patch index 563500b1..369f53e3 100644 --- a/0116-Use-the-default-device-tree-from-the-grub-default-fi.patch +++ b/0115-Use-the-default-device-tree-from-the-grub-default-fi.patch @@ -1,7 +1,7 @@ -From b2ad2a3b4a4bc998003c1275709f0677c39503a9 Mon Sep 17 00:00:00 2001 +From 5111bdda0d0a21ab02f6c9aa441a32cd02c6bc3f Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Wed, 12 Feb 2014 14:54:04 -0500 -Subject: [PATCH 116/229] Use the default device tree from the grub default +Subject: [PATCH 115/229] Use the default device tree from the grub default file instead of hardcoding a value. diff --git a/0117-reopen-SNP-protocol-for-exclusive-use-by-grub.patch b/0116-reopen-SNP-protocol-for-exclusive-use-by-grub.patch similarity index 91% rename from 0117-reopen-SNP-protocol-for-exclusive-use-by-grub.patch rename to 0116-reopen-SNP-protocol-for-exclusive-use-by-grub.patch index 527deee1..5e0867aa 100644 --- a/0117-reopen-SNP-protocol-for-exclusive-use-by-grub.patch +++ b/0116-reopen-SNP-protocol-for-exclusive-use-by-grub.patch @@ -1,7 +1,7 @@ -From 5d87e5b1697c28d55348486cb3c704b467c8e798 Mon Sep 17 00:00:00 2001 +From 0ff5bf3deefdb17dbadb51a11acc50b96e2ed797 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Sat, 15 Feb 2014 15:10:22 -0500 -Subject: [PATCH 117/229] reopen SNP protocol for exclusive use by grub +Subject: [PATCH 116/229] reopen SNP protocol for exclusive use by grub --- grub-core/net/drivers/efi/efinet.c | 16 ++++++++++++++++ diff --git a/0118-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch b/0117-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch similarity index 92% rename from 0118-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch rename to 0117-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch index ec797db8..980c3318 100644 --- a/0118-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch +++ b/0117-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch @@ -1,7 +1,7 @@ -From f00ca4e03561840f116642c7100df6dc6395209d Mon Sep 17 00:00:00 2001 +From 58fba65b7e339d4c7279e4ca88937d9501275169 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 4 Mar 2016 15:13:59 -0500 -Subject: [PATCH 118/229] Revert "reopen SNP protocol for exclusive use by +Subject: [PATCH 117/229] Revert "reopen SNP protocol for exclusive use by grub" This reverts commit a3f2c756ce34c9666bddef35e3b3b85ccecdcffc , which is diff --git a/0119-Add-grub_util_readlink.patch b/0118-Add-grub_util_readlink.patch similarity index 99% rename from 0119-Add-grub_util_readlink.patch rename to 0118-Add-grub_util_readlink.patch index 0f340742..2d638177 100644 --- a/0119-Add-grub_util_readlink.patch +++ b/0118-Add-grub_util_readlink.patch @@ -1,7 +1,7 @@ -From ffc123b7ab4fe37da16d4c62d87255f8c5c14b9f Mon Sep 17 00:00:00 2001 +From 76baa996f73eea47f7bdc41461efeee204626e2d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 3 Sep 2014 10:01:03 -0400 -Subject: [PATCH 119/229] Add grub_util_readlink() +Subject: [PATCH 118/229] Add grub_util_readlink() Add grub_util_readlink(). This requires pulling in stat and readlink from gnulib, which pulls in stat and related headers, but after that the diff --git a/0120-Make-editenv-chase-symlinks-including-those-across-d.patch b/0119-Make-editenv-chase-symlinks-including-those-across-d.patch similarity index 95% rename from 0120-Make-editenv-chase-symlinks-including-those-across-d.patch rename to 0119-Make-editenv-chase-symlinks-including-those-across-d.patch index 988823ff..7d2c4e8e 100644 --- a/0120-Make-editenv-chase-symlinks-including-those-across-d.patch +++ b/0119-Make-editenv-chase-symlinks-including-those-across-d.patch @@ -1,7 +1,7 @@ -From fb903fc1587b582e23e44811dc8c4ed359806028 Mon Sep 17 00:00:00 2001 +From fd1a89c8bef603ec33937f122ae25013a724601a Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 3 Sep 2014 10:38:00 -0400 -Subject: [PATCH 120/229] Make editenv chase symlinks including those across +Subject: [PATCH 119/229] Make editenv chase symlinks including those across devices. This lets us make /boot/grub2/grubenv a symlink to diff --git a/0121-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch b/0120-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch similarity index 89% rename from 0121-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch rename to 0120-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch index fecb68ca..9c6a74b1 100644 --- a/0121-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch +++ b/0120-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch @@ -1,7 +1,7 @@ -From 5948f763fc01d7f29923e94ef9b1ed923b11ff1a Mon Sep 17 00:00:00 2001 +From c8d93b9e27e9cbf51e91f6cc99abbcb7b68189ce Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Sep 2014 14:23:23 -0400 -Subject: [PATCH 121/229] Generate OS and CLASS in 10_linux from +Subject: [PATCH 120/229] Generate OS and CLASS in 10_linux from /etc/os-release This makes us use pretty names in the titles we generate in diff --git a/0122-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch b/0121-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch similarity index 89% rename from 0122-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch rename to 0121-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch index 65321c34..b205bd50 100644 --- a/0122-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch +++ b/0121-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch @@ -1,7 +1,7 @@ -From 547d0c60f28c026801af2ada3e0995d0ecc22c35 Mon Sep 17 00:00:00 2001 +From 974241c42b03f3ccb6a5d0eb453283e370da9848 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Sep 2014 15:52:08 -0400 -Subject: [PATCH 122/229] Minimize the sort ordering for .debug and -rescue- +Subject: [PATCH 121/229] Minimize the sort ordering for .debug and -rescue- kernels. Resolves: rhbz#1065360 diff --git a/0123-Load-arm-with-SB-enabled.patch b/0122-Load-arm-with-SB-enabled.patch similarity index 99% rename from 0123-Load-arm-with-SB-enabled.patch rename to 0122-Load-arm-with-SB-enabled.patch index 07f17e27..5098fc8c 100644 --- a/0123-Load-arm-with-SB-enabled.patch +++ b/0122-Load-arm-with-SB-enabled.patch @@ -1,7 +1,7 @@ -From c03bf04fd9e3192bec942a7adee23b5377ea81dc Mon Sep 17 00:00:00 2001 +From edfc2b0952b1eacf95188e53167cc038e5ea0129 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 18 Sep 2014 11:26:14 -0400 -Subject: [PATCH 123/229] Load arm with SB enabled. +Subject: [PATCH 122/229] Load arm with SB enabled. Make sure we actually try to validate secure boot on this platform (even though we're not shipping it enabled by default.) diff --git a/0124-Try-prefix-if-fw_path-doesn-t-work.patch b/0123-Try-prefix-if-fw_path-doesn-t-work.patch similarity index 97% rename from 0124-Try-prefix-if-fw_path-doesn-t-work.patch rename to 0123-Try-prefix-if-fw_path-doesn-t-work.patch index 91aae07c..2858ee72 100644 --- a/0124-Try-prefix-if-fw_path-doesn-t-work.patch +++ b/0123-Try-prefix-if-fw_path-doesn-t-work.patch @@ -1,7 +1,7 @@ -From 0c98cb57eb1a34ec29f719e3a798f5b20c6a4082 Mon Sep 17 00:00:00 2001 +From 3846b040f1050f246e1e975ee88f22c687ae04bf Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 3 Oct 2014 11:08:03 -0400 -Subject: [PATCH 124/229] Try $prefix if $fw_path doesn't work. +Subject: [PATCH 123/229] Try $prefix if $fw_path doesn't work. Related: rhbz#1148652 diff --git a/0125-Update-info-with-grub.cfg-netboot-selection-order-11.patch b/0124-Update-info-with-grub.cfg-netboot-selection-order-11.patch similarity index 94% rename from 0125-Update-info-with-grub.cfg-netboot-selection-order-11.patch rename to 0124-Update-info-with-grub.cfg-netboot-selection-order-11.patch index 0588a071..6abecb0b 100644 --- a/0125-Update-info-with-grub.cfg-netboot-selection-order-11.patch +++ b/0124-Update-info-with-grub.cfg-netboot-selection-order-11.patch @@ -1,7 +1,7 @@ -From d446fed131fadd00d0daab0654c7d9e14442d451 Mon Sep 17 00:00:00 2001 +From d4b4184078610a3639fa1e0e463679c424496c3b Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Mon, 16 Mar 2015 16:34:51 -0400 -Subject: [PATCH 125/229] Update info with grub.cfg netboot selection order +Subject: [PATCH 124/229] Update info with grub.cfg netboot selection order (#1148650) Added documentation to the grub info page that specifies the order diff --git a/0126-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch b/0125-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch similarity index 98% rename from 0126-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch rename to 0125-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch index c9a9c47e..acd8bcc4 100644 --- a/0126-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch +++ b/0125-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch @@ -1,7 +1,7 @@ -From e62ab1057d87e2a1e3c7fcf6b134f86ec24f2eac Mon Sep 17 00:00:00 2001 +From ce125cafc1e94bf70f2a3dbb545960bd8dd23a2f Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Mon, 16 Mar 2015 14:14:19 -0400 -Subject: [PATCH 126/229] Use Distribution Package Sort for grub2-mkconfig +Subject: [PATCH 125/229] Use Distribution Package Sort for grub2-mkconfig (#1124074) Users reported that newly installed kernels on their systems installed diff --git a/0127-Handle-rssd-storage-devices.patch b/0126-Handle-rssd-storage-devices.patch similarity index 89% rename from 0127-Handle-rssd-storage-devices.patch rename to 0126-Handle-rssd-storage-devices.patch index d05ce983..0a9974da 100644 --- a/0127-Handle-rssd-storage-devices.patch +++ b/0126-Handle-rssd-storage-devices.patch @@ -1,7 +1,7 @@ -From 8d3f2f0f389efbb9ed5da0c4f90fc82d104163c1 Mon Sep 17 00:00:00 2001 +From 1956a2192ac0a8421ee83bf77fdf223f2be0bdfb Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 30 Jun 2015 15:50:41 -0400 -Subject: [PATCH 127/229] Handle rssd storage devices. +Subject: [PATCH 126/229] Handle rssd storage devices. Resolves: rhbz#1087962 diff --git a/0128-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch b/0127-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch similarity index 94% rename from 0128-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch rename to 0127-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch index a01ff4a5..7b4f97bc 100644 --- a/0128-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch +++ b/0127-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch @@ -1,7 +1,7 @@ -From e5ed14fb98e18d173f9396103aca65351e4e67e2 Mon Sep 17 00:00:00 2001 +From 5f89c77c7cff17c931f1ea52af0c39df8ab28ac9 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 27 Oct 2014 09:22:55 -0400 -Subject: [PATCH 128/229] Try to emit linux16/initrd16 and linuxefi/initrdefi +Subject: [PATCH 127/229] Try to emit linux16/initrd16 and linuxefi/initrdefi in 30-os_prober. Resolves: rhbz#1108296 diff --git a/0129-Make-grub2-mkconfig-construct-titles-that-look-like-.patch b/0128-Make-grub2-mkconfig-construct-titles-that-look-like-.patch similarity index 94% rename from 0129-Make-grub2-mkconfig-construct-titles-that-look-like-.patch rename to 0128-Make-grub2-mkconfig-construct-titles-that-look-like-.patch index b16f11e2..c31f686e 100644 --- a/0129-Make-grub2-mkconfig-construct-titles-that-look-like-.patch +++ b/0128-Make-grub2-mkconfig-construct-titles-that-look-like-.patch @@ -1,7 +1,7 @@ -From 75c3d5fedb92fcf107b594216655c29bb20cbebc Mon Sep 17 00:00:00 2001 +From c7ae420d095ccec20481c25b14773ab2fce658b5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 28 Apr 2015 11:15:03 -0400 -Subject: [PATCH 129/229] Make grub2-mkconfig construct titles that look like +Subject: [PATCH 128/229] Make grub2-mkconfig construct titles that look like the ones we want elsewhere. Resolves: rhbz#1215839 diff --git a/0130-Add-friendly-grub2-password-config-tool-985962.patch b/0129-Add-friendly-grub2-password-config-tool-985962.patch similarity index 98% rename from 0130-Add-friendly-grub2-password-config-tool-985962.patch rename to 0129-Add-friendly-grub2-password-config-tool-985962.patch index 8181b963..08d89e0b 100644 --- a/0130-Add-friendly-grub2-password-config-tool-985962.patch +++ b/0129-Add-friendly-grub2-password-config-tool-985962.patch @@ -1,7 +1,7 @@ -From d03d08a8ba14eddda515907cafc640fb1dbe0874 Mon Sep 17 00:00:00 2001 +From 68f21f5ebebc23a6d8512631f2a1d474afcccd43 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Thu, 25 Jun 2015 11:13:11 -0400 -Subject: [PATCH 130/229] Add friendly grub2 password config tool (#985962) +Subject: [PATCH 129/229] Add friendly grub2 password config tool (#985962) Provided a tool for users to reset the grub2 root user password without having to alter the grub.cfg. The hashed password now diff --git a/0131-Make-grub2-mkconfig-construct-titles-that-look-like-.patch b/0130-Make-grub2-mkconfig-construct-titles-that-look-like-.patch similarity index 94% rename from 0131-Make-grub2-mkconfig-construct-titles-that-look-like-.patch rename to 0130-Make-grub2-mkconfig-construct-titles-that-look-like-.patch index 376ab522..7bdceefb 100644 --- a/0131-Make-grub2-mkconfig-construct-titles-that-look-like-.patch +++ b/0130-Make-grub2-mkconfig-construct-titles-that-look-like-.patch @@ -1,7 +1,7 @@ -From 7d9c29023e6c242306ae008a984245037655a23c Mon Sep 17 00:00:00 2001 +From 7a7644507e4d953ea8f8d1d7133622a72a2168f5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 28 Apr 2015 11:15:03 -0400 -Subject: [PATCH 131/229] Make grub2-mkconfig construct titles that look like +Subject: [PATCH 130/229] Make grub2-mkconfig construct titles that look like the ones we want elsewhere. Resolves: rhbz#1215839 diff --git a/0132-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch b/0131-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch similarity index 92% rename from 0132-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch rename to 0131-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch index 53940ec2..674271b9 100644 --- a/0132-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch +++ b/0131-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch @@ -1,7 +1,7 @@ -From e97b5c4ec2f11ac544c3c1de8fa5b84ac24d9536 Mon Sep 17 00:00:00 2001 +From 6f892038567f1706fdde819f5f226ec4cacbea47 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 3 Aug 2015 11:46:42 -0400 -Subject: [PATCH 132/229] Try to make sure configure.ac and grub-rpm-sort play +Subject: [PATCH 131/229] Try to make sure configure.ac and grub-rpm-sort play nice. Apparently the test for whether to use grub-rpm-sort and also the diff --git a/0133-tcp-add-window-scaling-support.patch b/0132-tcp-add-window-scaling-support.patch similarity index 96% rename from 0133-tcp-add-window-scaling-support.patch rename to 0132-tcp-add-window-scaling-support.patch index 60632365..b4bbf280 100644 --- a/0133-tcp-add-window-scaling-support.patch +++ b/0132-tcp-add-window-scaling-support.patch @@ -1,7 +1,7 @@ -From df119e7a941f0e1329181d33d63349375b9b56d9 Mon Sep 17 00:00:00 2001 +From 71e31c279c07f9f51f2a482b70b40b7deed69a69 Mon Sep 17 00:00:00 2001 From: Josef Bacik Date: Wed, 12 Aug 2015 08:57:55 -0700 -Subject: [PATCH 133/229] tcp: add window scaling support +Subject: [PATCH 132/229] tcp: add window scaling support Sometimes we have to provision boxes across regions, such as California to Sweden. The http server has a 10 minute timeout, so if we can't get our 250mb diff --git a/0134-efinet-retransmit-if-our-device-is-busy.patch b/0133-efinet-retransmit-if-our-device-is-busy.patch similarity index 92% rename from 0134-efinet-retransmit-if-our-device-is-busy.patch rename to 0133-efinet-retransmit-if-our-device-is-busy.patch index 4ff907f2..036974a3 100644 --- a/0134-efinet-retransmit-if-our-device-is-busy.patch +++ b/0133-efinet-retransmit-if-our-device-is-busy.patch @@ -1,7 +1,7 @@ -From d4f94fc4cd48954f757d6efb82311eb3256389e4 Mon Sep 17 00:00:00 2001 +From d09f32622f6fc247dd88f731c34be10395785d8d Mon Sep 17 00:00:00 2001 From: Josef Bacik Date: Mon, 31 Aug 2015 13:34:35 -0400 -Subject: [PATCH 134/229] efinet: retransmit if our device is busy +Subject: [PATCH 133/229] efinet: retransmit if our device is busy When I fixed the txbuf handling I ripped out the retransmission code since it was flooding our network when we had the buggy behavior. Turns out this was too diff --git a/0135-Be-more-aggro-about-actually-using-the-configured-ne.patch b/0134-Be-more-aggro-about-actually-using-the-configured-ne.patch similarity index 98% rename from 0135-Be-more-aggro-about-actually-using-the-configured-ne.patch rename to 0134-Be-more-aggro-about-actually-using-the-configured-ne.patch index 0b650500..681afdc9 100644 --- a/0135-Be-more-aggro-about-actually-using-the-configured-ne.patch +++ b/0134-Be-more-aggro-about-actually-using-the-configured-ne.patch @@ -1,7 +1,7 @@ -From d4eb7984ad8938e50764c541f0e8f4c8d6d012f8 Mon Sep 17 00:00:00 2001 +From 8ece44c2c8f88f531ac9a679f65a263e7b6d2dba Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 11 Sep 2015 17:30:49 -0400 -Subject: [PATCH 135/229] Be more aggro about actually using the *configured* +Subject: [PATCH 134/229] Be more aggro about actually using the *configured* network device. Right now we use any SNP device with the same mac+IP block, but when diff --git a/0136-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch b/0135-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch similarity index 94% rename from 0136-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch rename to 0135-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch index 99ddeedf..3856b148 100644 --- a/0136-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch +++ b/0135-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch @@ -1,7 +1,7 @@ -From fdbc8b81c9f3bbef64298dbf1f5230eda0cda02f Mon Sep 17 00:00:00 2001 +From 82b9fdcbbc339c36842c625203fc2b1f22a86c9e Mon Sep 17 00:00:00 2001 From: RHEL Ninjas Date: Fri, 25 Sep 2015 16:24:23 +0900 -Subject: [PATCH 136/229] efinet: add filter for the first exclusive reopen of +Subject: [PATCH 135/229] efinet: add filter for the first exclusive reopen of SNP --- diff --git a/0137-Fix-security-issue-when-reading-username-and-passwor.patch b/0136-Fix-security-issue-when-reading-username-and-passwor.patch similarity index 90% rename from 0137-Fix-security-issue-when-reading-username-and-passwor.patch rename to 0136-Fix-security-issue-when-reading-username-and-passwor.patch index 3fac2465..ca7f4c58 100644 --- a/0137-Fix-security-issue-when-reading-username-and-passwor.patch +++ b/0136-Fix-security-issue-when-reading-username-and-passwor.patch @@ -1,7 +1,7 @@ -From fa4b152860e04053ee1cae6b70237a1975473a81 Mon Sep 17 00:00:00 2001 +From 9961e63642244617b697d93bbc49379e23b6839d Mon Sep 17 00:00:00 2001 From: Hector Marco-Gisbert Date: Fri, 13 Nov 2015 16:21:09 +0100 -Subject: [PATCH 137/229] Fix security issue when reading username and password +Subject: [PATCH 136/229] Fix security issue when reading username and password This patch fixes two integer underflows at: * grub-core/lib/crypto.c diff --git a/0138-Warn-if-grub-password-will-not-be-read-1290803.patch b/0137-Warn-if-grub-password-will-not-be-read-1290803.patch similarity index 89% rename from 0138-Warn-if-grub-password-will-not-be-read-1290803.patch rename to 0137-Warn-if-grub-password-will-not-be-read-1290803.patch index 55a74f00..ffc3fea1 100644 --- a/0138-Warn-if-grub-password-will-not-be-read-1290803.patch +++ b/0137-Warn-if-grub-password-will-not-be-read-1290803.patch @@ -1,7 +1,7 @@ -From c8ed108d2f3f9b57add84e282fef6e39634aec99 Mon Sep 17 00:00:00 2001 +From 056a956aea898f9d3ee34ecad9660addc3f3108c Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Mon, 22 Feb 2016 15:30:05 -0500 -Subject: [PATCH 138/229] Warn if grub password will not be read (#1290803) +Subject: [PATCH 137/229] Warn if grub password will not be read (#1290803) It is possible for a system to have never run grub-mkconfig and add the section that reads the user.cfg file which contains a user set GRUB diff --git a/0139-Clean-up-grub-setpassword-documentation-1290799.patch b/0138-Clean-up-grub-setpassword-documentation-1290799.patch similarity index 93% rename from 0139-Clean-up-grub-setpassword-documentation-1290799.patch rename to 0138-Clean-up-grub-setpassword-documentation-1290799.patch index 00a8cfca..d9c0b607 100644 --- a/0139-Clean-up-grub-setpassword-documentation-1290799.patch +++ b/0138-Clean-up-grub-setpassword-documentation-1290799.patch @@ -1,7 +1,7 @@ -From 884c7f7b14633fc47d5cada7f02df6fb5176b224 Mon Sep 17 00:00:00 2001 +From 92af2b24adb7371d8234c0b32ae716adf0b80d42 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Tue, 26 Jan 2016 10:28:35 -0500 -Subject: [PATCH 139/229] Clean up grub-setpassword documentation (#1290799) +Subject: [PATCH 138/229] Clean up grub-setpassword documentation (#1290799) The output for --help had some errors. Corrected those and polished the text to be a little easier to follow. Carried verbage over to man page diff --git a/0140-Fix-locale-issue-in-grub-setpassword-1294243.patch b/0139-Fix-locale-issue-in-grub-setpassword-1294243.patch similarity index 86% rename from 0140-Fix-locale-issue-in-grub-setpassword-1294243.patch rename to 0139-Fix-locale-issue-in-grub-setpassword-1294243.patch index e33d2789..a8b02e81 100644 --- a/0140-Fix-locale-issue-in-grub-setpassword-1294243.patch +++ b/0139-Fix-locale-issue-in-grub-setpassword-1294243.patch @@ -1,7 +1,7 @@ -From 5f3812d1820b13137b5c79b135a6b790cb78ae60 Mon Sep 17 00:00:00 2001 +From 373adc50cf9f09015e40ffd1bf79ab9f291f4fc2 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Fri, 29 Jan 2016 16:56:11 -0500 -Subject: [PATCH 140/229] Fix locale issue in grub-setpassword (#1294243) +Subject: [PATCH 139/229] Fix locale issue in grub-setpassword (#1294243) A shell substitution was expecting non-translated output to grab the hashed password and put it in the user.cfg file. Modified code to force diff --git a/0141-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch b/0140-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch similarity index 87% rename from 0141-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch rename to 0140-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch index 6f1ba40d..90a626fb 100644 --- a/0141-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch +++ b/0140-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch @@ -1,7 +1,7 @@ -From a7a38221a7f4593a9abb5f422d0dd349866ed029 Mon Sep 17 00:00:00 2001 +From eab0520310030376f6295e0338e874bce10b0d5f Mon Sep 17 00:00:00 2001 From: Robert Elliott Date: Fri, 22 Jan 2016 13:32:30 +0100 -Subject: [PATCH 141/229] efiemu: Handle persistent RAM and unknown possible +Subject: [PATCH 140/229] efiemu: Handle persistent RAM and unknown possible future additions. (cherry picked from commit ae3b83a4d4df75a01198a2fed7542391e7c449e0) diff --git a/0142-efiemu-Fix-compilation-failure.patch b/0141-efiemu-Fix-compilation-failure.patch similarity index 87% rename from 0142-efiemu-Fix-compilation-failure.patch rename to 0141-efiemu-Fix-compilation-failure.patch index 964b1c64..ed4eeed3 100644 --- a/0142-efiemu-Fix-compilation-failure.patch +++ b/0141-efiemu-Fix-compilation-failure.patch @@ -1,7 +1,7 @@ -From 1da43f34f211772fbda36ef6fd81e1cbde37eae7 Mon Sep 17 00:00:00 2001 +From 68bdf29eb6e376a3b4a817bbe7481efd12b8f9de Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Fri, 22 Jan 2016 14:10:30 +0100 -Subject: [PATCH 142/229] efiemu: Fix compilation failure +Subject: [PATCH 141/229] efiemu: Fix compilation failure (cherry picked from commit b6a03dfd327489d53ee07c6d7d593b99c7b7cb62) diff --git a/0143-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch b/0142-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch similarity index 94% rename from 0143-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch rename to 0142-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch index 3a92d7c9..f85c24f0 100644 --- a/0143-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch +++ b/0142-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch @@ -1,7 +1,7 @@ -From 9b93a986a68502c1ab2303efd7469fda0c5709cf Mon Sep 17 00:00:00 2001 +From df19c5ff9c9e716df0383e39992466304053c99d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 7 Apr 2016 10:58:06 -0400 -Subject: [PATCH 143/229] Revert "reopen SNP protocol for exclusive use by +Subject: [PATCH 142/229] Revert "reopen SNP protocol for exclusive use by grub" I *think* this should have been replaced by upstream's diff --git a/0144-Add-a-url-parser.patch b/0143-Add-a-url-parser.patch similarity index 99% rename from 0144-Add-a-url-parser.patch rename to 0143-Add-a-url-parser.patch index 9287bd9e..8490a792 100644 --- a/0144-Add-a-url-parser.patch +++ b/0143-Add-a-url-parser.patch @@ -1,7 +1,7 @@ -From 520e6078ff9e3fbf1edf687e51597dac98c07d56 Mon Sep 17 00:00:00 2001 +From 2f84b2e097ad9f6f7f06013f749251743eb32c2e Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jun 2016 16:18:44 -0400 -Subject: [PATCH 144/229] Add a url parser. +Subject: [PATCH 143/229] Add a url parser. This patch adds a url parser that can parse http, https, tftp, and tftps urls, and is easily extensible to handle more types. diff --git a/0145-efinet-and-bootp-add-support-for-dhcpv6.patch b/0144-efinet-and-bootp-add-support-for-dhcpv6.patch similarity index 99% rename from 0145-efinet-and-bootp-add-support-for-dhcpv6.patch rename to 0144-efinet-and-bootp-add-support-for-dhcpv6.patch index aac69f12..0c9bc80d 100644 --- a/0145-efinet-and-bootp-add-support-for-dhcpv6.patch +++ b/0144-efinet-and-bootp-add-support-for-dhcpv6.patch @@ -1,7 +1,7 @@ -From 0bdcc68529fe2f3cdf92173fadffd2f9a6476b9b Mon Sep 17 00:00:00 2001 +From 48768b0295ad4d908cefd8e8fbee96a4dc2765f5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 8 Jun 2016 21:03:37 -0400 -Subject: [PATCH 145/229] efinet and bootp: add support for dhcpv6 +Subject: [PATCH 144/229] efinet and bootp: add support for dhcpv6 Signed-off-by: Peter Jones --- diff --git a/0146-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch b/0145-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch similarity index 98% rename from 0146-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch rename to 0145-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch index 48b56f74..8baff525 100644 --- a/0146-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch +++ b/0145-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch @@ -1,7 +1,7 @@ -From dcadcc9070f778654eb704fc0907e261996ef76e Mon Sep 17 00:00:00 2001 +From 764506b89942103c3a511d7933edef351fb594b8 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 23 Jun 2016 11:01:39 -0400 -Subject: [PATCH 146/229] Add grub-get-kernel-settings and use it in 10_linux +Subject: [PATCH 145/229] Add grub-get-kernel-settings and use it in 10_linux This patch adds grub-get-kernel-settings, which reads the system kernel installation configuration from /etc/sysconfig/kernel, and outputs diff --git a/0147-Normalize-slashes-in-tftp-paths.patch b/0146-Normalize-slashes-in-tftp-paths.patch similarity index 92% rename from 0147-Normalize-slashes-in-tftp-paths.patch rename to 0146-Normalize-slashes-in-tftp-paths.patch index 73dd7117..6d5feb89 100644 --- a/0147-Normalize-slashes-in-tftp-paths.patch +++ b/0146-Normalize-slashes-in-tftp-paths.patch @@ -1,7 +1,7 @@ -From 130783c1e461b64befbf0fa8c9002ef763606105 Mon Sep 17 00:00:00 2001 +From 406402dfaecc62ede346793c9c7a0568dc71c131 Mon Sep 17 00:00:00 2001 From: Lenny Szubowicz Date: Mon, 29 Aug 2016 11:04:48 -0400 -Subject: [PATCH 147/229] Normalize slashes in tftp paths. +Subject: [PATCH 146/229] Normalize slashes in tftp paths. Some tftp servers do not handle multiple consecutive slashes correctly; this patch avoids sending tftp requests with non-normalized paths. diff --git a/0148-Fix-malformed-tftp-packets.patch b/0147-Fix-malformed-tftp-packets.patch similarity index 91% rename from 0148-Fix-malformed-tftp-packets.patch rename to 0147-Fix-malformed-tftp-packets.patch index 7aa075e1..69056868 100644 --- a/0148-Fix-malformed-tftp-packets.patch +++ b/0147-Fix-malformed-tftp-packets.patch @@ -1,7 +1,7 @@ -From af0e4fc8f9cd844c44c969c0991269ec9ab01a62 Mon Sep 17 00:00:00 2001 +From 7d05a8298e6a54bfae0038841462443f21da3535 Mon Sep 17 00:00:00 2001 From: Mark Salter Date: Tue, 7 Mar 2017 18:26:17 -0500 -Subject: [PATCH 148/229] Fix malformed tftp packets +Subject: [PATCH 147/229] Fix malformed tftp packets 0088-Normalize-slashes-in-tftp-paths.patch collapses multiple contiguous slashes in a filename into one slash in the tftp packet filename field. diff --git a/0149-Fix-race-in-EFI-validation.patch b/0148-Fix-race-in-EFI-validation.patch similarity index 95% rename from 0149-Fix-race-in-EFI-validation.patch rename to 0148-Fix-race-in-EFI-validation.patch index 791d0f86..45ee7955 100644 --- a/0149-Fix-race-in-EFI-validation.patch +++ b/0148-Fix-race-in-EFI-validation.patch @@ -1,7 +1,7 @@ -From d5339007d0ffdaf6e8a4e9702e7cec447b118804 Mon Sep 17 00:00:00 2001 +From bf59d76ca82eb4eaa20a747f5890d09632ba93d0 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 14 Jul 2015 16:58:51 -0700 -Subject: [PATCH 149/229] Fix race in EFI validation +Subject: [PATCH 148/229] Fix race in EFI validation --- grub-core/loader/i386/efi/linux.c | 44 ++++++++++----------------------------- diff --git a/0150-bz1374141-fix-incorrect-mask-for-ppc64.patch b/0149-bz1374141-fix-incorrect-mask-for-ppc64.patch similarity index 94% rename from 0150-bz1374141-fix-incorrect-mask-for-ppc64.patch rename to 0149-bz1374141-fix-incorrect-mask-for-ppc64.patch index 92ca6b58..9d81fdbb 100644 --- a/0150-bz1374141-fix-incorrect-mask-for-ppc64.patch +++ b/0149-bz1374141-fix-incorrect-mask-for-ppc64.patch @@ -1,7 +1,7 @@ -From eea2b6113c2f17ed5755b23242457948025bfd33 Mon Sep 17 00:00:00 2001 +From 84a5f535949f590a8976c64c3d1fde08fe0f7464 Mon Sep 17 00:00:00 2001 From: Masahiro Matsuya Date: Sat, 29 Oct 2016 08:35:26 +0900 -Subject: [PATCH 150/229] bz1374141 fix incorrect mask for ppc64 +Subject: [PATCH 149/229] bz1374141 fix incorrect mask for ppc64 The netmask configured in firmware is not respected on ppc64 (big endian). When 255.255.252.0 is set as netmask in firmware, the following is the value of bootpath string in grub_ieee1275_parse_bootpath(). diff --git a/0151-Use-device-part-of-chainloader-target-if-present.patch b/0150-Use-device-part-of-chainloader-target-if-present.patch similarity index 89% rename from 0151-Use-device-part-of-chainloader-target-if-present.patch rename to 0150-Use-device-part-of-chainloader-target-if-present.patch index 83a911c9..02c9d99a 100644 --- a/0151-Use-device-part-of-chainloader-target-if-present.patch +++ b/0150-Use-device-part-of-chainloader-target-if-present.patch @@ -1,7 +1,7 @@ -From d08c1a531d80b4e14a7bfeb0d762125f4fab1317 Mon Sep 17 00:00:00 2001 +From d426e20f8b41ebf114075dc4ffbcaf438ceb4b95 Mon Sep 17 00:00:00 2001 From: Raymund Will Date: Fri, 10 Apr 2015 01:45:02 -0400 -Subject: [PATCH 151/229] Use device part of chainloader target, if present. +Subject: [PATCH 150/229] Use device part of chainloader target, if present. Otherwise chainloading is restricted to '$root', which might not even be readable by EFI! diff --git a/0152-Add-secureboot-support-on-efi-chainloader.patch b/0151-Add-secureboot-support-on-efi-chainloader.patch similarity index 99% rename from 0152-Add-secureboot-support-on-efi-chainloader.patch rename to 0151-Add-secureboot-support-on-efi-chainloader.patch index 57324601..acf1da40 100644 --- a/0152-Add-secureboot-support-on-efi-chainloader.patch +++ b/0151-Add-secureboot-support-on-efi-chainloader.patch @@ -1,7 +1,7 @@ -From 729766b6416f6ca13c694ce220c3b2156ced1691 Mon Sep 17 00:00:00 2001 +From bbf98517303e438cea398bb74306b6553c880ac3 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 6 Oct 2015 13:04:37 -0400 -Subject: [PATCH 152/229] Add secureboot support on efi chainloader +Subject: [PATCH 151/229] Add secureboot support on efi chainloader Expand the chainloader to be able to verify the image by means of shim lock protocol. The PE/COFF image is loaded and relocated by the diff --git a/0153-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch b/0152-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch similarity index 99% rename from 0153-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch rename to 0152-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch index 4bbca640..a70fd9d0 100644 --- a/0153-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch +++ b/0152-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch @@ -1,7 +1,7 @@ -From fe18b297027c4976d11b87f1b5adc07a7565cdee Mon Sep 17 00:00:00 2001 +From 25ea5be888dcc92cd0b3cb7d34b381f5005f1e30 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 6 Oct 2015 16:09:25 -0400 -Subject: [PATCH 153/229] Make any of the loaders that link in efi mode honor +Subject: [PATCH 152/229] Make any of the loaders that link in efi mode honor secure boot. And in this case "honor" means "even if somebody does link this in, they diff --git a/0154-Make-grub_fatal-also-backtrace.patch b/0153-Make-grub_fatal-also-backtrace.patch similarity index 97% rename from 0154-Make-grub_fatal-also-backtrace.patch rename to 0153-Make-grub_fatal-also-backtrace.patch index f73247f2..b23cad7f 100644 --- a/0154-Make-grub_fatal-also-backtrace.patch +++ b/0153-Make-grub_fatal-also-backtrace.patch @@ -1,7 +1,7 @@ -From b2fd6377486d66ced5fd82325c3ee8e11f4f1176 Mon Sep 17 00:00:00 2001 +From eb1a27144476324a22561383a0a2e61aa327d2f5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 27 Jan 2016 09:22:42 -0500 -Subject: [PATCH 154/229] Make grub_fatal() also backtrace. +Subject: [PATCH 153/229] Make grub_fatal() also backtrace. --- grub-core/Makefile.core.def | 3 ++ diff --git a/0155-Rework-linux-command.patch b/0154-Rework-linux-command.patch similarity index 96% rename from 0155-Rework-linux-command.patch rename to 0154-Rework-linux-command.patch index 31d83837..85706ba1 100644 --- a/0155-Rework-linux-command.patch +++ b/0154-Rework-linux-command.patch @@ -1,7 +1,7 @@ -From 4fec1bb24e09f36366c62196285392a674d259d3 Mon Sep 17 00:00:00 2001 +From 12312bfe1727a2992042436cb0f8c8ba1c69ee2f Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 16:12:39 -0700 -Subject: [PATCH 155/229] Rework linux command +Subject: [PATCH 154/229] Rework linux command We want a single buffer that contains the entire kernel image in order to perform a TPM measurement. Allocate one and copy the entire kernel into it diff --git a/0156-Rework-linux16-command.patch b/0155-Rework-linux16-command.patch similarity index 96% rename from 0156-Rework-linux16-command.patch rename to 0155-Rework-linux16-command.patch index a2e60035..94c24682 100644 --- a/0156-Rework-linux16-command.patch +++ b/0155-Rework-linux16-command.patch @@ -1,7 +1,7 @@ -From 7d6ce3346f32a67e07fd3fda9ad65ac76f600628 Mon Sep 17 00:00:00 2001 +From 24250bbb84f8817462426c46b255d875de627bf1 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 16:20:58 -0700 -Subject: [PATCH 156/229] Rework linux16 command +Subject: [PATCH 155/229] Rework linux16 command We want a single buffer that contains the entire kernel image in order to perform a TPM measurement. Allocate one and copy the entire kernel int it diff --git a/0157-Make-grub-editenv-build-again.patch b/0156-Make-grub-editenv-build-again.patch similarity index 87% rename from 0157-Make-grub-editenv-build-again.patch rename to 0156-Make-grub-editenv-build-again.patch index c431d59c..386d2aaf 100644 --- a/0157-Make-grub-editenv-build-again.patch +++ b/0156-Make-grub-editenv-build-again.patch @@ -1,7 +1,7 @@ -From 4e0105392434bac9f10ac79a820a69098abec2f5 Mon Sep 17 00:00:00 2001 +From ebe69b2682b5b3029d8ea503f12134ee81c4b2ce Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 4 Mar 2016 16:29:13 -0500 -Subject: [PATCH 157/229] Make grub-editenv build again. +Subject: [PATCH 156/229] Make grub-editenv build again. 36212460d3565b18439a3a8130b28e6c97702c6a split how some of the mkimage utility functions are defined, and they wind up being linked into diff --git a/0158-Fix-up-some-man-pages-rpmdiff-noticed.patch b/0157-Fix-up-some-man-pages-rpmdiff-noticed.patch similarity index 96% rename from 0158-Fix-up-some-man-pages-rpmdiff-noticed.patch rename to 0157-Fix-up-some-man-pages-rpmdiff-noticed.patch index 4b9c25ba..c15b447b 100644 --- a/0158-Fix-up-some-man-pages-rpmdiff-noticed.patch +++ b/0157-Fix-up-some-man-pages-rpmdiff-noticed.patch @@ -1,7 +1,7 @@ -From 7779112786e3f892e05b9d293299dd7ef151d9dd Mon Sep 17 00:00:00 2001 +From c71e6152ea8e4e525a853441bb5f08808bae3afd Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 23 Sep 2014 09:58:49 -0400 -Subject: [PATCH 158/229] Fix up some man pages rpmdiff noticed. +Subject: [PATCH 157/229] Fix up some man pages rpmdiff noticed. --- configure.ac | 2 ++ diff --git a/0159-Re-work-some-intricacies-of-PE-loading.patch b/0158-Re-work-some-intricacies-of-PE-loading.patch similarity index 99% rename from 0159-Re-work-some-intricacies-of-PE-loading.patch rename to 0158-Re-work-some-intricacies-of-PE-loading.patch index 7cd15558..73ed8ed4 100644 --- a/0159-Re-work-some-intricacies-of-PE-loading.patch +++ b/0158-Re-work-some-intricacies-of-PE-loading.patch @@ -1,7 +1,7 @@ -From 9ca2908ab56bc32052b2f01bda6a35a190e39bae Mon Sep 17 00:00:00 2001 +From 145214ee7c411c7d600016f011dc11b213bce0b2 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 9 Jun 2016 12:22:29 -0400 -Subject: [PATCH 159/229] Re-work some intricacies of PE loading. +Subject: [PATCH 158/229] Re-work some intricacies of PE loading. The PE spec is not a well written document, and awesomely every place where there's an ambiguous way to read something, Windows' bootmgfw.efi diff --git a/0160-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch b/0159-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch similarity index 99% rename from 0160-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch rename to 0159-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch index 3e99ce72..d2a9eb0e 100644 --- a/0160-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch +++ b/0159-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch @@ -1,7 +1,7 @@ -From d8441e12feab1ae94f11849d1bcc5e73abb69231 Mon Sep 17 00:00:00 2001 +From ef24bc601e11b96eefe06f477b5da1199d761b3d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 10 Jun 2016 14:06:15 -0400 -Subject: [PATCH 160/229] Rework even more of efi chainload so non-sb cases +Subject: [PATCH 159/229] Rework even more of efi chainload so non-sb cases work right. This ensures that if shim protocol is not loaded, or is loaded but shim diff --git a/0161-linuxefi-fix-double-free-on-verification-failure.patch b/0160-linuxefi-fix-double-free-on-verification-failure.patch similarity index 83% rename from 0161-linuxefi-fix-double-free-on-verification-failure.patch rename to 0160-linuxefi-fix-double-free-on-verification-failure.patch index 3b2f6f9f..d1a64a4b 100644 --- a/0161-linuxefi-fix-double-free-on-verification-failure.patch +++ b/0160-linuxefi-fix-double-free-on-verification-failure.patch @@ -1,7 +1,7 @@ -From e432d9b485112f0d35fd623e4b2467a3d788a38f Mon Sep 17 00:00:00 2001 +From 5ef3f00e6be3033092453a66f456b8dac8cd4f7c Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jun 2016 09:50:25 -0400 -Subject: [PATCH 161/229] linuxefi: fix double free on verification failure. +Subject: [PATCH 160/229] linuxefi: fix double free on verification failure. Signed-off-by: Peter Jones --- diff --git a/0162-fix-machine-type-test-in-30_os-prober.in.patch b/0161-fix-machine-type-test-in-30_os-prober.in.patch similarity index 82% rename from 0162-fix-machine-type-test-in-30_os-prober.in.patch rename to 0161-fix-machine-type-test-in-30_os-prober.in.patch index bcf22c14..1da34ebe 100644 --- a/0162-fix-machine-type-test-in-30_os-prober.in.patch +++ b/0161-fix-machine-type-test-in-30_os-prober.in.patch @@ -1,7 +1,7 @@ -From 33faccd6c6f23774bbbbc83731a712a7bed76c3f Mon Sep 17 00:00:00 2001 +From 4139fdfdb64fd248a0d5f200b27c583159dbb190 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 11 Jul 2016 13:36:45 -0400 -Subject: [PATCH 162/229] fix machine type test in 30_os-prober.in +Subject: [PATCH 161/229] fix machine type test in 30_os-prober.in Signed-off-by: Peter Jones --- diff --git a/0163-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch b/0162-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch similarity index 91% rename from 0163-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch rename to 0162-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch index bc96cbb4..0b8725f6 100644 --- a/0163-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch +++ b/0162-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch @@ -1,7 +1,7 @@ -From ab9c2a7711858b2300abf802230c044db55c5171 Mon Sep 17 00:00:00 2001 +From 671699a76fa6510a62c3a94acd698a31686cb8fa Mon Sep 17 00:00:00 2001 From: Laszlo Ersek Date: Mon, 21 Nov 2016 15:34:00 +0100 -Subject: [PATCH 163/229] efi/chainloader: fix wrong sanity check in +Subject: [PATCH 162/229] efi/chainloader: fix wrong sanity check in relocate_coff() In relocate_coff(), the relocation entries are parsed from the original diff --git a/0164-efi-chainloader-truncate-overlong-relocation-section.patch b/0163-efi-chainloader-truncate-overlong-relocation-section.patch similarity index 97% rename from 0164-efi-chainloader-truncate-overlong-relocation-section.patch rename to 0163-efi-chainloader-truncate-overlong-relocation-section.patch index 1c0fdbfd..0280868c 100644 --- a/0164-efi-chainloader-truncate-overlong-relocation-section.patch +++ b/0163-efi-chainloader-truncate-overlong-relocation-section.patch @@ -1,7 +1,7 @@ -From 243bfac3395d76a7fc7344c5471e49ea41689233 Mon Sep 17 00:00:00 2001 +From d081bd5f47235e3bfd256fd262a6f98fe8b0d0ff Mon Sep 17 00:00:00 2001 From: Laszlo Ersek Date: Wed, 23 Nov 2016 06:27:09 +0100 -Subject: [PATCH 164/229] efi/chainloader: truncate overlong relocation section +Subject: [PATCH 163/229] efi/chainloader: truncate overlong relocation section The UEFI Windows 7 boot loader ("EFI/Microsoft/Boot/bootmgfw.efi", SHA1 31b410e029bba87d2068c65a80b88882f9f8ea25) has inconsistent headers. diff --git a/0165-linuxefi-minor-cleanups.patch b/0164-linuxefi-minor-cleanups.patch similarity index 96% rename from 0165-linuxefi-minor-cleanups.patch rename to 0164-linuxefi-minor-cleanups.patch index 1c706cef..6ead190a 100644 --- a/0165-linuxefi-minor-cleanups.patch +++ b/0164-linuxefi-minor-cleanups.patch @@ -1,7 +1,7 @@ -From ea34d6d6755dcd818fe6e74526a58a4f818f711a Mon Sep 17 00:00:00 2001 +From 8dc21ff37f62f3d10fb3d708ffd33b7d723a23cf Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Feb 2017 16:31:52 -0500 -Subject: [PATCH 165/229] linuxefi: minor cleanups +Subject: [PATCH 164/229] linuxefi: minor cleanups Signed-off-by: Peter Jones --- diff --git a/0166-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch b/0165-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch similarity index 98% rename from 0166-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch rename to 0165-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch index d3ae53a1..e246bee7 100644 --- a/0166-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch +++ b/0165-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch @@ -1,7 +1,7 @@ -From 543b4c21f3bf43b8919bd4b47195ebb542b73733 Mon Sep 17 00:00:00 2001 +From 10d6d333de0aa7e390a22ebc4b308f7ad937d5bc Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Feb 2017 16:18:54 -0500 -Subject: [PATCH 166/229] Handle multi-arch (64-on-32) boot in linuxefi loader. +Subject: [PATCH 165/229] Handle multi-arch (64-on-32) boot in linuxefi loader. Allow booting 64-bit kernels on 32-bit EFI on x86. diff --git a/0167-Fix-up-linux-params-usage.patch b/0166-Fix-up-linux-params-usage.patch similarity index 92% rename from 0167-Fix-up-linux-params-usage.patch rename to 0166-Fix-up-linux-params-usage.patch index bdb06e4f..1b97ba6a 100644 --- a/0167-Fix-up-linux-params-usage.patch +++ b/0166-Fix-up-linux-params-usage.patch @@ -1,7 +1,7 @@ -From 02a30356c3a09ac0959abdc4a29b88a59e1f1ac1 Mon Sep 17 00:00:00 2001 +From 93be95c27b0ddb63c2e3a287a3ed92c0a5de93e5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 30 May 2017 14:16:07 -0400 -Subject: [PATCH 167/229] Fix up linux params usage... +Subject: [PATCH 166/229] Fix up linux params usage... Signed-off-by: Peter Jones --- diff --git a/0168-Make-exit-take-a-return-code.patch b/0167-Make-exit-take-a-return-code.patch similarity index 91% rename from 0168-Make-exit-take-a-return-code.patch rename to 0167-Make-exit-take-a-return-code.patch index e659bfa9..1aa10337 100644 --- a/0168-Make-exit-take-a-return-code.patch +++ b/0167-Make-exit-take-a-return-code.patch @@ -1,7 +1,7 @@ -From 874de3a91070b6f056434f2fce48d778ff84c665 Mon Sep 17 00:00:00 2001 +From 6b67d46c1764c86611939dc01267f9c70f413184 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 26 Feb 2014 21:49:12 -0500 -Subject: [PATCH 168/229] Make "exit" take a return code. +Subject: [PATCH 167/229] Make "exit" take a return code. This adds "exit" with a return code. With this patch, any "exit" command /may/ include a return code, and on platforms that support diff --git a/0169-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch b/0168-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch similarity index 91% rename from 0169-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch rename to 0168-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch index 3f5f612c..cd4bf875 100644 --- a/0169-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch +++ b/0168-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch @@ -1,7 +1,7 @@ -From a327d2275238e8dd54ec8599d2d158e9cdd7693c Mon Sep 17 00:00:00 2001 +From e48a4c0b9e475b16366ff6c375de5186432eb1f7 Mon Sep 17 00:00:00 2001 From: Mark Salter Date: Mon, 17 Apr 2017 08:44:29 -0400 -Subject: [PATCH 169/229] arm64: make sure fdt has #address-cells and +Subject: [PATCH 168/229] arm64: make sure fdt has #address-cells and #size-cells properties Recent upstream changes to kexec-tools relies on #address-cells diff --git a/0170-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch b/0169-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch similarity index 91% rename from 0170-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch rename to 0169-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch index 691a72bc..fde73e62 100644 --- a/0170-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch +++ b/0169-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch @@ -1,7 +1,7 @@ -From 848a699f96e8529a30a47670051c5cb1f1a91d66 Mon Sep 17 00:00:00 2001 +From 755fa5ccf0834abdb7e50a1cb06fad618f6c9af6 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 9 May 2016 14:15:17 -0400 -Subject: [PATCH 170/229] Add some grub_dprintf() in the secure boot verify +Subject: [PATCH 169/229] Add some grub_dprintf() in the secure boot verify code. Signed-off-by: Peter Jones diff --git a/0171-Make-our-info-pages-say-grub2-where-appropriate.patch b/0170-Make-our-info-pages-say-grub2-where-appropriate.patch similarity index 99% rename from 0171-Make-our-info-pages-say-grub2-where-appropriate.patch rename to 0170-Make-our-info-pages-say-grub2-where-appropriate.patch index 18748f37..5da9b008 100644 --- a/0171-Make-our-info-pages-say-grub2-where-appropriate.patch +++ b/0170-Make-our-info-pages-say-grub2-where-appropriate.patch @@ -1,7 +1,7 @@ -From 004821d9e309f65e4ff533f66787663fe2a54eac Mon Sep 17 00:00:00 2001 +From 15c340acd845056ba259b9fffd6c7d083874cb82 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 6 May 2016 18:43:08 -0400 -Subject: [PATCH 171/229] Make our info pages say "grub2" where appropriate. +Subject: [PATCH 170/229] Make our info pages say "grub2" where appropriate. This needs to be hooked up to --program-transform=, but I haven't had time. diff --git a/0172-print-more-debug-info-in-our-module-loader.patch b/0171-print-more-debug-info-in-our-module-loader.patch similarity index 90% rename from 0172-print-more-debug-info-in-our-module-loader.patch rename to 0171-print-more-debug-info-in-our-module-loader.patch index a58d3cf0..54387180 100644 --- a/0172-print-more-debug-info-in-our-module-loader.patch +++ b/0171-print-more-debug-info-in-our-module-loader.patch @@ -1,7 +1,7 @@ -From 6025b0afe64157eb922d562e85f1734b7ce800c9 Mon Sep 17 00:00:00 2001 +From 0d0a7ebbed42b97fca63cbcaf85a469b77c76fda Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 1 May 2017 11:19:40 -0400 -Subject: [PATCH 172/229] print more debug info in our module loader. +Subject: [PATCH 171/229] print more debug info in our module loader. Signed-off-by: Peter Jones --- diff --git a/0173-macos-just-build-chainloader-entries-don-t-try-any-x.patch b/0172-macos-just-build-chainloader-entries-don-t-try-any-x.patch similarity index 97% rename from 0173-macos-just-build-chainloader-entries-don-t-try-any-x.patch rename to 0172-macos-just-build-chainloader-entries-don-t-try-any-x.patch index 8c050cb6..14189b95 100644 --- a/0173-macos-just-build-chainloader-entries-don-t-try-any-x.patch +++ b/0172-macos-just-build-chainloader-entries-don-t-try-any-x.patch @@ -1,7 +1,7 @@ -From 21539770394174892fe90ab9ce09a4d9a7e2a676 Mon Sep 17 00:00:00 2001 +From 4cb6b65d74966dfbe6e8463ee1e88d99ca7de5b1 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 24 May 2017 12:42:32 -0400 -Subject: [PATCH 173/229] macos: just build chainloader entries, don't try any +Subject: [PATCH 172/229] macos: just build chainloader entries, don't try any xnu xnu. Since our bugs tell us that the xnu boot entries really just don't work diff --git a/0174-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch b/0173-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch similarity index 99% rename from 0174-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch rename to 0173-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch index 8958bfe6..bef9d787 100644 --- a/0174-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch +++ b/0173-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch @@ -1,7 +1,7 @@ -From ba06fbb797dff2261df7d211484c98905447ddb6 Mon Sep 17 00:00:00 2001 +From 396001716b7f8c7a6aee17f33fdb9e5d47424cbc Mon Sep 17 00:00:00 2001 From: Jeff Mahoney Date: Wed, 18 Dec 2013 09:57:04 +0000 -Subject: [PATCH 174/229] grub2/btrfs: Add ability to boot from subvolumes +Subject: [PATCH 173/229] grub2/btrfs: Add ability to boot from subvolumes This patch adds the ability to specify a different root on a btrfs filesystem too boot from other than the default one. diff --git a/0175-export-btrfs_subvol-and-btrfs_subvolid.patch b/0174-export-btrfs_subvol-and-btrfs_subvolid.patch similarity index 86% rename from 0175-export-btrfs_subvol-and-btrfs_subvolid.patch rename to 0174-export-btrfs_subvol-and-btrfs_subvolid.patch index 188dc4dc..419fb99a 100644 --- a/0175-export-btrfs_subvol-and-btrfs_subvolid.patch +++ b/0174-export-btrfs_subvol-and-btrfs_subvolid.patch @@ -1,7 +1,7 @@ -From c2d51bfc2fedf707ec4bc8cca9a10cb1100c6888 Mon Sep 17 00:00:00 2001 +From 35c1015fc1a4313be34757eebb195547336e0edf Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Wed, 18 Dec 2013 09:57:04 +0000 -Subject: [PATCH 175/229] export btrfs_subvol and btrfs_subvolid +Subject: [PATCH 174/229] export btrfs_subvol and btrfs_subvolid We should export btrfs_subvol and btrfs_subvolid to have both visible to subsidiary configuration files loaded using configfile. diff --git a/0176-grub2-btrfs-03-follow_default.patch b/0175-grub2-btrfs-03-follow_default.patch similarity index 97% rename from 0176-grub2-btrfs-03-follow_default.patch rename to 0175-grub2-btrfs-03-follow_default.patch index ad38cb34..6f20c99c 100644 --- a/0176-grub2-btrfs-03-follow_default.patch +++ b/0175-grub2-btrfs-03-follow_default.patch @@ -1,7 +1,7 @@ -From afc0024ac644e80552c808e8b8def04fd7f89918 Mon Sep 17 00:00:00 2001 +From 476a0251e8ca2850da7c383baf7fdbd810bc789f Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 21 Aug 2014 03:39:11 +0000 -Subject: [PATCH 176/229] grub2-btrfs-03-follow_default +Subject: [PATCH 175/229] grub2-btrfs-03-follow_default --- grub-core/fs/btrfs.c | 107 ++++++++++++++++++++++++++++++++++++--------------- diff --git a/0177-grub2-btrfs-04-grub2-install.patch b/0176-grub2-btrfs-04-grub2-install.patch similarity index 97% rename from 0177-grub2-btrfs-04-grub2-install.patch rename to 0176-grub2-btrfs-04-grub2-install.patch index f3d1215c..90a26412 100644 --- a/0177-grub2-btrfs-04-grub2-install.patch +++ b/0176-grub2-btrfs-04-grub2-install.patch @@ -1,7 +1,7 @@ -From a5cb6219b1f4abb50cbe0254ee6a2850e379854f Mon Sep 17 00:00:00 2001 +From e03dd83cc804d70af0716d0a429715afbcdc7eae Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 21 Aug 2014 03:39:11 +0000 -Subject: [PATCH 177/229] grub2-btrfs-04-grub2-install +Subject: [PATCH 176/229] grub2-btrfs-04-grub2-install --- grub-core/osdep/linux/getroot.c | 7 +++++++ diff --git a/0178-grub2-btrfs-05-grub2-mkconfig.patch b/0177-grub2-btrfs-05-grub2-mkconfig.patch similarity index 97% rename from 0178-grub2-btrfs-05-grub2-mkconfig.patch rename to 0177-grub2-btrfs-05-grub2-mkconfig.patch index 5ed51ac0..51ba3189 100644 --- a/0178-grub2-btrfs-05-grub2-mkconfig.patch +++ b/0177-grub2-btrfs-05-grub2-mkconfig.patch @@ -1,7 +1,7 @@ -From 3312b0eab4773f09b00d294e3438d6cf881d62ef Mon Sep 17 00:00:00 2001 +From cb43e7a6c96127e72d6787c6063de8911284fe18 Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 21 Aug 2014 03:39:11 +0000 -Subject: [PATCH 178/229] grub2-btrfs-05-grub2-mkconfig +Subject: [PATCH 177/229] grub2-btrfs-05-grub2-mkconfig --- util/grub-mkconfig.in | 3 ++- diff --git a/0179-grub2-btrfs-06-subvol-mount.patch b/0178-grub2-btrfs-06-subvol-mount.patch similarity index 99% rename from 0179-grub2-btrfs-06-subvol-mount.patch rename to 0178-grub2-btrfs-06-subvol-mount.patch index db8766f6..8324e7c3 100644 --- a/0179-grub2-btrfs-06-subvol-mount.patch +++ b/0178-grub2-btrfs-06-subvol-mount.patch @@ -1,7 +1,7 @@ -From 421b1facc21a25ca28a48c9dd323c48c5ce8a46b Mon Sep 17 00:00:00 2001 +From 84d6a482c2c8d0677141bb888512a6a89daf9d8b Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Fri, 22 May 2015 11:45:25 +0000 -Subject: [PATCH 179/229] grub2-btrfs-06-subvol-mount +Subject: [PATCH 178/229] grub2-btrfs-06-subvol-mount --- grub-core/fs/btrfs.c | 195 +++++++++++++++++++++++++++++++++++++++- diff --git a/0180-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch b/0179-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch similarity index 87% rename from 0180-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch rename to 0179-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch index e50fe75b..f798a137 100644 --- a/0180-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch +++ b/0179-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch @@ -1,7 +1,7 @@ -From 1eeea190cf2e134fddb448c7b55e6c82697f3f72 Mon Sep 17 00:00:00 2001 +From 741c0651cd54970c08e9c19a82f5805aafbfda23 Mon Sep 17 00:00:00 2001 From: Dusty Mabe Date: Sat, 18 Jul 2015 15:38:08 +0000 -Subject: [PATCH 180/229] No more "Bootable Snapshot" submenu in grub.cfg. +Subject: [PATCH 179/229] No more "Bootable Snapshot" submenu in grub.cfg. This breaks grubby (run on kernel upgrades) because grubby just does a search for "menuentry". diff --git a/0181-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch b/0180-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch similarity index 92% rename from 0181-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch rename to 0180-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch index 99692295..13077728 100644 --- a/0181-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch +++ b/0180-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch @@ -1,7 +1,7 @@ -From 5f9e9d0d069b416175a2102edc574ffb9d523978 Mon Sep 17 00:00:00 2001 +From ab8e0d4bf544b708f5afa4cc56e6bd16789f2f1e Mon Sep 17 00:00:00 2001 From: Andrei Borzenkov Date: Tue, 21 Jun 2016 16:44:17 +0000 -Subject: [PATCH 181/229] Fallback to old subvol name scheme to support old +Subject: [PATCH 180/229] Fallback to old subvol name scheme to support old snapshot config Ref: bsc#953538 diff --git a/0182-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch b/0181-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch similarity index 98% rename from 0182-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch rename to 0181-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch index a85d5352..ae030492 100644 --- a/0182-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch +++ b/0181-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch @@ -1,7 +1,7 @@ -From 158b6b3987ed402ddcb6d0568acbb60cc7a01aac Mon Sep 17 00:00:00 2001 +From eb8535428a42c7099666ddb58ac900bb8ee745ba Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 11 May 2017 08:56:57 +0000 -Subject: [PATCH 182/229] Grub not working correctly with btrfs snapshots +Subject: [PATCH 181/229] Grub not working correctly with btrfs snapshots (bsc#1026511) --- diff --git a/0183-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch b/0182-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch similarity index 94% rename from 0183-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch rename to 0182-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch index ce5e2082..f59c82c3 100644 --- a/0183-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch +++ b/0182-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch @@ -1,7 +1,7 @@ -From bdc07d05d0eeb39f0c90e7f8f6850016ebc4bf6b Mon Sep 17 00:00:00 2001 +From 2a6e1d2491b7334985ad25315faa22d26354d8b7 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 1 Jun 2017 09:59:56 -0400 -Subject: [PATCH 183/229] Add grub_efi_allocate_pool() and grub_efi_free_pool() +Subject: [PATCH 182/229] Add grub_efi_allocate_pool() and grub_efi_free_pool() wrappers. Signed-off-by: Peter Jones diff --git a/0184-Use-grub_efi_.-memory-helpers-where-reasonable.patch b/0183-Use-grub_efi_.-memory-helpers-where-reasonable.patch similarity index 96% rename from 0184-Use-grub_efi_.-memory-helpers-where-reasonable.patch rename to 0183-Use-grub_efi_.-memory-helpers-where-reasonable.patch index 557348f3..f5fbb3c8 100644 --- a/0184-Use-grub_efi_.-memory-helpers-where-reasonable.patch +++ b/0183-Use-grub_efi_.-memory-helpers-where-reasonable.patch @@ -1,7 +1,7 @@ -From 0e6c1a61c5a7c38bd04a0d494dade62bc2c8cd43 Mon Sep 17 00:00:00 2001 +From 6ea13cdb3f33da45d7a8042d85ad87e2a18fc946 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 1 Jun 2017 10:06:38 -0400 -Subject: [PATCH 184/229] Use grub_efi_...() memory helpers where reasonable. +Subject: [PATCH 183/229] Use grub_efi_...() memory helpers where reasonable. This uses grub_efi_allocate_pool(), grub_efi_free_pool(), and grub_efi_free_pages() instead of open-coded efi_call_N() calls, so we diff --git a/0185-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch b/0184-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch similarity index 93% rename from 0185-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch rename to 0184-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch index 564e6093..3a45d817 100644 --- a/0185-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch +++ b/0184-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch @@ -1,7 +1,7 @@ -From 4759e79a841a9d7eab743e67715459d3a864a29f Mon Sep 17 00:00:00 2001 +From eae94a16a8ae350cdeab8b7742f9227d92001272 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 1 Jun 2017 10:07:50 -0400 -Subject: [PATCH 185/229] Add PRIxGRUB_EFI_STATUS and use it. +Subject: [PATCH 184/229] Add PRIxGRUB_EFI_STATUS and use it. This avoids syntax checkers getting confused about if it's llx or lx. diff --git a/0186-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch b/0185-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch similarity index 91% rename from 0186-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch rename to 0185-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch index 26e9aea1..0967f226 100644 --- a/0186-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch +++ b/0185-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch @@ -1,7 +1,7 @@ -From c7bb1be13a759a55216c99662d660614a161c37f Mon Sep 17 00:00:00 2001 +From 41a50aa2c275076caa2f9fe7a747eeb054abed16 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:42:57 -0400 -Subject: [PATCH 186/229] Don't use dynamic sized arrays since we don't build +Subject: [PATCH 185/229] Don't use dynamic sized arrays since we don't build with -std=c99 --- diff --git a/0187-don-t-ignore-const.patch b/0186-don-t-ignore-const.patch similarity index 83% rename from 0187-don-t-ignore-const.patch rename to 0186-don-t-ignore-const.patch index dd27d509..30e8730a 100644 --- a/0187-don-t-ignore-const.patch +++ b/0186-don-t-ignore-const.patch @@ -1,7 +1,7 @@ -From 3eb59abe528f660e24e004a99b86686ea2f022c5 Mon Sep 17 00:00:00 2001 +From d06e2578107f217d2bc8beee7fd0dc7f2645873d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:43:22 -0400 -Subject: [PATCH 187/229] don't ignore const +Subject: [PATCH 186/229] don't ignore const --- grub-core/net/tftp.c | 2 +- diff --git a/0188-don-t-use-int-for-efi-status.patch b/0187-don-t-use-int-for-efi-status.patch similarity index 83% rename from 0188-don-t-use-int-for-efi-status.patch rename to 0187-don-t-use-int-for-efi-status.patch index 841e2728..f9f1a47b 100644 --- a/0188-don-t-use-int-for-efi-status.patch +++ b/0187-don-t-use-int-for-efi-status.patch @@ -1,7 +1,7 @@ -From d4517c646fb4617a9ac162489b2fbaf9c2fcdd7b Mon Sep 17 00:00:00 2001 +From 6d86c59c24e12c8e8471cdd2affca574fdee160d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:44:59 -0400 -Subject: [PATCH 188/229] don't use int for efi status +Subject: [PATCH 187/229] don't use int for efi status --- grub-core/kern/efi/efi.c | 2 +- diff --git a/0189-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch b/0188-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch similarity index 87% rename from 0189-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch rename to 0188-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch index 24e624fb..b464a3ff 100644 --- a/0189-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch +++ b/0188-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch @@ -1,7 +1,7 @@ -From 72eb71bcadf8f35851b15632e8ef4ad1d0a64513 Mon Sep 17 00:00:00 2001 +From ba6828d073bbda85eba59a9ce9220eada51a540b Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:46:23 -0400 -Subject: [PATCH 189/229] make GRUB_MOD_INIT() declare its function prototypes. +Subject: [PATCH 188/229] make GRUB_MOD_INIT() declare its function prototypes. --- include/grub/dl.h | 2 ++ diff --git a/0190-Clean-up-some-errors-in-the-linuxefi-loader.patch b/0189-Clean-up-some-errors-in-the-linuxefi-loader.patch similarity index 95% rename from 0190-Clean-up-some-errors-in-the-linuxefi-loader.patch rename to 0189-Clean-up-some-errors-in-the-linuxefi-loader.patch index 649e08df..063f2cc7 100644 --- a/0190-Clean-up-some-errors-in-the-linuxefi-loader.patch +++ b/0189-Clean-up-some-errors-in-the-linuxefi-loader.patch @@ -1,7 +1,7 @@ -From e240faaa432ad7ba3f7ced51b983d8d663a83460 Mon Sep 17 00:00:00 2001 +From 8bdc0c77919ddb9bd588ac45e96c96497683f76c Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 24 May 2017 15:58:18 -0400 -Subject: [PATCH 190/229] Clean up some errors in the linuxefi loader +Subject: [PATCH 189/229] Clean up some errors in the linuxefi loader Signed-off-by: Peter Jones --- diff --git a/0191-editenv-handle-relative-symlinks.patch b/0190-editenv-handle-relative-symlinks.patch similarity index 91% rename from 0191-editenv-handle-relative-symlinks.patch rename to 0190-editenv-handle-relative-symlinks.patch index 556bb320..9ed1c878 100644 --- a/0191-editenv-handle-relative-symlinks.patch +++ b/0190-editenv-handle-relative-symlinks.patch @@ -1,7 +1,7 @@ -From 9778fafba22ec67f97bb35a34980230966ebe0de Mon Sep 17 00:00:00 2001 +From 098987b7b5fcc15a5ba3600fa132fcec36095c5a Mon Sep 17 00:00:00 2001 From: Jonathan Lebon Date: Mon, 14 Aug 2017 14:37:20 -0400 -Subject: [PATCH 191/229] editenv: handle relative symlinks +Subject: [PATCH 190/229] editenv: handle relative symlinks Handle symlinks with targets relative to the containing dir. This ensures that the rename operation does not depend on the cwd. diff --git a/0192-Make-libgrub.pp-depend-on-config-util.h.patch b/0191-Make-libgrub.pp-depend-on-config-util.h.patch similarity index 97% rename from 0192-Make-libgrub.pp-depend-on-config-util.h.patch rename to 0191-Make-libgrub.pp-depend-on-config-util.h.patch index 2e0c111c..70fbbdfb 100644 --- a/0192-Make-libgrub.pp-depend-on-config-util.h.patch +++ b/0191-Make-libgrub.pp-depend-on-config-util.h.patch @@ -1,7 +1,7 @@ -From b8baf7070cc80fc44ee998a4748029c893f5ab13 Mon Sep 17 00:00:00 2001 +From c86299049c2cc0503728deee280d9f6bf50886f4 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 23 Aug 2017 10:37:27 -0400 -Subject: [PATCH 192/229] Make libgrub.pp depend on config-util.h +Subject: [PATCH 191/229] Make libgrub.pp depend on config-util.h If you build with "make -j48" a lot, sometimes you see: diff --git a/0193-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch b/0192-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch similarity index 90% rename from 0193-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch rename to 0192-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch index dc18ab73..0781d963 100644 --- a/0193-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch +++ b/0192-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch @@ -1,7 +1,7 @@ -From 385f38332007339ac7dd3e3e551c54faa3c32dbc Mon Sep 17 00:00:00 2001 +From 351799d9310a4bec23ed4074444780c2a35435fd Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 20 Apr 2017 13:29:06 -0400 -Subject: [PATCH 193/229] Don't guess /boot/efi/ as HFS+ on ppc machines in +Subject: [PATCH 192/229] Don't guess /boot/efi/ as HFS+ on ppc machines in grub-install This should never be trying this, and since we've consolidated the diff --git a/0194-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch b/0193-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch similarity index 93% rename from 0194-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch rename to 0193-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch index fbddf861..46931345 100644 --- a/0194-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch +++ b/0193-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch @@ -1,7 +1,7 @@ -From 733966aa9d241a0987a7097eca74b0f58b426833 Mon Sep 17 00:00:00 2001 +From cba0322cd88baf136ac693f5ec1826f3314daeff Mon Sep 17 00:00:00 2001 From: Konrad Rzeszutek Wilk Date: Mon, 28 Aug 2017 13:51:14 -0400 -Subject: [PATCH 194/229] Fix util/grub.d/20_linux_xen.in: Add xen_boot command +Subject: [PATCH 193/229] Fix util/grub.d/20_linux_xen.in: Add xen_boot command support for aarch64 Commit d33045ce7ffcb7c1e4a60c14d5ca64b36e3c5abe introduced diff --git a/0195-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch b/0194-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch similarity index 87% rename from 0195-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch rename to 0194-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch index 18a950b2..91775a2b 100644 --- a/0195-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch +++ b/0194-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch @@ -1,7 +1,7 @@ -From d592ef69ef92e3f7a414577af70678be706ff8c8 Mon Sep 17 00:00:00 2001 +From 87c089b6f1945ebcc690697d279c74284f1b4072 Mon Sep 17 00:00:00 2001 From: Konrad Rzeszutek Wilk Date: Mon, 28 Aug 2017 13:59:12 -0400 -Subject: [PATCH 195/229] Use grub-file to figure out whether multiboot2 should +Subject: [PATCH 194/229] Use grub-file to figure out whether multiboot2 should be used for Xen.gz The multiboot2 is much more preferable than multiboot. Especiall diff --git a/0196-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch b/0195-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch similarity index 89% rename from 0196-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch rename to 0195-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch index 61f39def..cdf614c2 100644 --- a/0196-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch +++ b/0195-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch @@ -1,7 +1,7 @@ -From ae2759407aad1b5cfee90299ef0a6f53ca4d3d9a Mon Sep 17 00:00:00 2001 +From 92d3db585076d022521ab94a2ceed03eb05013fc Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 19 Oct 2017 11:29:11 -0400 -Subject: [PATCH 196/229] 20_linux_xen: load xen or multiboot{,2} modules as +Subject: [PATCH 195/229] 20_linux_xen: load xen or multiboot{,2} modules as needed. Signed-off-by: Peter Jones diff --git a/0197-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch b/0196-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch similarity index 90% rename from 0197-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch rename to 0196-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch index f46932ef..a2a33916 100644 --- a/0197-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch +++ b/0196-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch @@ -1,7 +1,7 @@ -From d88a8ff86cb9c360bc92b75db69e5024b1e814cc Mon Sep 17 00:00:00 2001 +From 2e5b957292d3f313d48bded25e8ca83468326c5b Mon Sep 17 00:00:00 2001 From: "David E. Box" Date: Fri, 15 Sep 2017 15:37:05 -0700 -Subject: [PATCH 197/229] tsc: Change default tsc calibration method to pmtimer +Subject: [PATCH 196/229] tsc: Change default tsc calibration method to pmtimer on EFI systems On efi systems, make pmtimer based tsc calibration the default over the diff --git a/0198-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch b/0197-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch similarity index 98% rename from 0198-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch rename to 0197-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch index af81f67c..553d8062 100644 --- a/0198-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch +++ b/0197-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch @@ -1,7 +1,7 @@ -From ee10486cadcae785711ccc7c46dac24a500be8fc Mon Sep 17 00:00:00 2001 +From 0b158c30810db86f549cabd6e6021ab15962370d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 7 Nov 2017 17:12:17 -0500 -Subject: [PATCH 198/229] Make pmtimer tsc calibration not take 51 seconds to +Subject: [PATCH 197/229] Make pmtimer tsc calibration not take 51 seconds to fail. On my laptop running at 2.4GHz, if I run a VM where tsc calibration diff --git a/0199-align-struct-efi_variable-better.patch b/0198-align-struct-efi_variable-better.patch similarity index 88% rename from 0199-align-struct-efi_variable-better.patch rename to 0198-align-struct-efi_variable-better.patch index 6603c84c..35c4a3c3 100644 --- a/0199-align-struct-efi_variable-better.patch +++ b/0198-align-struct-efi_variable-better.patch @@ -1,7 +1,7 @@ -From cfcacf01ed042f6354c5d4249bdc6d883d04b330 Mon Sep 17 00:00:00 2001 +From 2485633ada06c11c07a34a696a92b14e58f1e846 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 27 Feb 2018 13:55:35 -0500 -Subject: [PATCH 199/229] align struct efi_variable better... +Subject: [PATCH 198/229] align struct efi_variable better... --- include/grub/efiemu/runtime.h | 2 +- diff --git a/0200-Add-quicksort-implementation.patch b/0199-Add-quicksort-implementation.patch similarity index 98% rename from 0200-Add-quicksort-implementation.patch rename to 0199-Add-quicksort-implementation.patch index 5e9bc73b..d53e69fa 100644 --- a/0200-Add-quicksort-implementation.patch +++ b/0199-Add-quicksort-implementation.patch @@ -1,7 +1,7 @@ -From f46dc44957a3a31a86a215d43f3971fa4ca97318 Mon Sep 17 00:00:00 2001 +From a2cd100d71711b950beaf60ea7ddca4c77a70d59 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 9 Dec 2016 15:39:47 -0500 -Subject: [PATCH 200/229] Add quicksort implementation +Subject: [PATCH 199/229] Add quicksort implementation This will be used to sort the boot menu entries that are read from the BootLoaderSpec config files. diff --git a/0201-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch b/0200-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch similarity index 99% rename from 0201-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch rename to 0200-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch index 9cf4bc4f..8aaf431f 100644 --- a/0201-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch +++ b/0200-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch @@ -1,7 +1,7 @@ -From de3430a0a616a9600ccac0f0a9df661446661999 Mon Sep 17 00:00:00 2001 +From ed595feeea2f7b7fd0158d42fa2fd39420eea683 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 9 Dec 2016 15:40:58 -0500 -Subject: [PATCH 201/229] Add blscfg command support to parse BootLoaderSpec +Subject: [PATCH 200/229] Add blscfg command support to parse BootLoaderSpec config fragments The BootLoaderSpec (BLS) defines a scheme where different bootloaders can diff --git a/0202-Add-BLS-support-to-grub-mkconfig.patch b/0201-Add-BLS-support-to-grub-mkconfig.patch similarity index 98% rename from 0202-Add-BLS-support-to-grub-mkconfig.patch rename to 0201-Add-BLS-support-to-grub-mkconfig.patch index 2bec2a63..f5635365 100644 --- a/0202-Add-BLS-support-to-grub-mkconfig.patch +++ b/0201-Add-BLS-support-to-grub-mkconfig.patch @@ -1,7 +1,7 @@ -From 9baa7c16e5138497862eba684d2c41e5ed16e787 Mon Sep 17 00:00:00 2001 +From d847a4806bb7a4f3b457d0074d712e500fbd5e97 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 9 Dec 2016 15:40:29 -0500 -Subject: [PATCH 202/229] Add BLS support to grub-mkconfig +Subject: [PATCH 201/229] Add BLS support to grub-mkconfig GRUB now has BootLoaderSpec support, the user can choose to use this by setting GRUB_ENABLE_BLSCFG to true in /etc/default/grub. On this setup, diff --git a/0203-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch b/0202-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch similarity index 87% rename from 0203-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch rename to 0202-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch index 3fedabe1..b9b57cf7 100644 --- a/0203-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch +++ b/0202-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch @@ -1,7 +1,7 @@ -From 206697fab4e803807a83f1f7f330d3d009aba2fd Mon Sep 17 00:00:00 2001 +From 2d7dabdbf322e8f679eeaefd48cb26b083cdeb1c Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 6 Feb 2018 11:02:09 +0100 -Subject: [PATCH 203/229] Remove duplicated grub_exit() definition for grub-emu +Subject: [PATCH 202/229] Remove duplicated grub_exit() definition for grub-emu platform The grub_exit() function signature was changed on all platforms to take a diff --git a/0204-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch b/0203-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch similarity index 86% rename from 0204-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch rename to 0203-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch index 0e6dd9ef..0188c9bb 100644 --- a/0204-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch +++ b/0203-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch @@ -1,7 +1,7 @@ -From 37844213b374844bc1a4056712241cf6d9421880 Mon Sep 17 00:00:00 2001 +From f45946a92377c83ffcad8dbc3298fc26072567d9 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 6 Feb 2018 11:16:28 +0100 -Subject: [PATCH 204/229] Don't attempt to backtrace on grub_abort() for +Subject: [PATCH 203/229] Don't attempt to backtrace on grub_abort() for grub-emu The emu platform doesn't have a grub_backtrace() implementation, so this diff --git a/0205-Enable-blscfg-command-for-the-emu-platform.patch b/0204-Enable-blscfg-command-for-the-emu-platform.patch similarity index 97% rename from 0205-Enable-blscfg-command-for-the-emu-platform.patch rename to 0204-Enable-blscfg-command-for-the-emu-platform.patch index 8204baf7..4f266f0f 100644 --- a/0205-Enable-blscfg-command-for-the-emu-platform.patch +++ b/0204-Enable-blscfg-command-for-the-emu-platform.patch @@ -1,7 +1,7 @@ -From 01839f5d2491ba1b5694d1c4b2f3c2818a2408ae Mon Sep 17 00:00:00 2001 +From 39bb86c661911f06ff40caa842a9babf18f27c8b Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Fri, 2 Feb 2018 11:36:29 +0100 -Subject: [PATCH 205/229] Enable blscfg command for the emu platform +Subject: [PATCH 204/229] Enable blscfg command for the emu platform Allow grub-emu to call a blscfg command. This may be useful for platforms that don't support GRUB, so grub-emu can be used to parse the BLS configs diff --git a/0206-Add-linux-and-initrd-commands-for-grub-emu.patch b/0205-Add-linux-and-initrd-commands-for-grub-emu.patch similarity index 98% rename from 0206-Add-linux-and-initrd-commands-for-grub-emu.patch rename to 0205-Add-linux-and-initrd-commands-for-grub-emu.patch index f11498e0..835a66f5 100644 --- a/0206-Add-linux-and-initrd-commands-for-grub-emu.patch +++ b/0205-Add-linux-and-initrd-commands-for-grub-emu.patch @@ -1,7 +1,7 @@ -From f1a8f489ec2cafdcfbdd3b60ffc7752bed8c8528 Mon Sep 17 00:00:00 2001 +From 49c719a6f6e223b95733e18720a48993ab6e5317 Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Tue, 6 Feb 2018 09:09:00 +0100 -Subject: [PATCH 206/229] Add linux and initrd commands for grub-emu +Subject: [PATCH 205/229] Add linux and initrd commands for grub-emu When using grub-emu, the linux and initrd commands are used as arguments to the kexec command line tool, to allow booting the selected menu entry. diff --git a/0207-Fix-the-efidir-in-grub-setpassword.patch b/0206-Fix-the-efidir-in-grub-setpassword.patch similarity index 86% rename from 0207-Fix-the-efidir-in-grub-setpassword.patch rename to 0206-Fix-the-efidir-in-grub-setpassword.patch index 203f5b6b..3d41475a 100644 --- a/0207-Fix-the-efidir-in-grub-setpassword.patch +++ b/0206-Fix-the-efidir-in-grub-setpassword.patch @@ -1,7 +1,7 @@ -From 3682958910d45a129f38cb1f28bc61288f92a698 Mon Sep 17 00:00:00 2001 +From c7c6cb4380f5bd85a2cbe747433657fdce89a802 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 15 Mar 2018 14:12:54 -0400 -Subject: [PATCH 207/229] Fix the efidir in grub-setpassword +Subject: [PATCH 206/229] Fix the efidir in grub-setpassword Signed-off-by: Peter Jones --- diff --git a/0208-Add-grub2-switch-to-blscfg.patch b/0207-Add-grub2-switch-to-blscfg.patch similarity index 98% rename from 0208-Add-grub2-switch-to-blscfg.patch rename to 0207-Add-grub2-switch-to-blscfg.patch index dadcdbf2..2c6d0a93 100644 --- a/0208-Add-grub2-switch-to-blscfg.patch +++ b/0207-Add-grub2-switch-to-blscfg.patch @@ -1,7 +1,7 @@ -From 95d9f5c317fb59dbb47c1df531fe5ab6f61e55af Mon Sep 17 00:00:00 2001 +From 89b3a570de8b5e7ad19769983a87f6e10024f0ec Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 15 Mar 2018 14:12:40 -0400 -Subject: [PATCH 208/229] Add grub2-switch-to-blscfg +Subject: [PATCH 207/229] Add grub2-switch-to-blscfg Signed-off-by: Peter Jones --- diff --git a/0209-Add-grub_debug_enabled.patch b/0208-Add-grub_debug_enabled.patch similarity index 93% rename from 0209-Add-grub_debug_enabled.patch rename to 0208-Add-grub_debug_enabled.patch index 040f3368..1cfc4546 100644 --- a/0209-Add-grub_debug_enabled.patch +++ b/0208-Add-grub_debug_enabled.patch @@ -1,7 +1,7 @@ -From 73a860b83bc81959baabceeec6e9a32102884a57 Mon Sep 17 00:00:00 2001 +From 6776773c89828c9b69c1552760ba6a4d9cd5589f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 30 Nov 2017 15:11:39 -0500 -Subject: [PATCH 209/229] Add grub_debug_enabled() +Subject: [PATCH 208/229] Add grub_debug_enabled() --- grub-core/kern/misc.c | 21 ++++++++++++++++----- diff --git a/0210-make-better-backtraces.patch b/0209-make-better-backtraces.patch similarity index 99% rename from 0210-make-better-backtraces.patch rename to 0209-make-better-backtraces.patch index b65ecc59..7ae91696 100644 --- a/0210-make-better-backtraces.patch +++ b/0209-make-better-backtraces.patch @@ -1,7 +1,7 @@ -From 775dacceb8acc4036737080040f592f48daeb6e8 Mon Sep 17 00:00:00 2001 +From 318ee04aadcda40b779b2a5314dd23ead165f896 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 6 Nov 2017 18:31:56 -0500 -Subject: [PATCH 210/229] make better backtraces +Subject: [PATCH 209/229] make better backtraces Signed-off-by: Peter Jones --- diff --git a/0211-normal-don-t-draw-our-startup-message-if-debug-is-se.patch b/0210-normal-don-t-draw-our-startup-message-if-debug-is-se.patch similarity index 85% rename from 0211-normal-don-t-draw-our-startup-message-if-debug-is-se.patch rename to 0210-normal-don-t-draw-our-startup-message-if-debug-is-se.patch index 67f4784c..f7280a09 100644 --- a/0211-normal-don-t-draw-our-startup-message-if-debug-is-se.patch +++ b/0210-normal-don-t-draw-our-startup-message-if-debug-is-se.patch @@ -1,7 +1,7 @@ -From cc1566933cbc2d8d56aa77ab1ca8a15392ee0d42 Mon Sep 17 00:00:00 2001 +From 81d0e079ea5aa6f43daf12f7a8698d0bcd1a36f8 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 9 Nov 2017 15:58:52 -0500 -Subject: [PATCH 211/229] normal: don't draw our startup message if debug is +Subject: [PATCH 210/229] normal: don't draw our startup message if debug is set --- diff --git a/0212-Work-around-some-minor-include-path-weirdnesses.patch b/0211-Work-around-some-minor-include-path-weirdnesses.patch similarity index 97% rename from 0212-Work-around-some-minor-include-path-weirdnesses.patch rename to 0211-Work-around-some-minor-include-path-weirdnesses.patch index 36ed0035..79260889 100644 --- a/0212-Work-around-some-minor-include-path-weirdnesses.patch +++ b/0211-Work-around-some-minor-include-path-weirdnesses.patch @@ -1,7 +1,7 @@ -From 1829abfbbb0544a06973eaa76659a282aae8b32d Mon Sep 17 00:00:00 2001 +From e2bba0f7ee8e56c68e425853a21a8fdd766add70 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 16 Mar 2018 13:28:57 -0400 -Subject: [PATCH 212/229] Work around some minor include path weirdnesses +Subject: [PATCH 211/229] Work around some minor include path weirdnesses Signed-off-by: Peter Jones --- diff --git a/0213-Make-it-possible-to-enabled-build-id-sha1.patch b/0212-Make-it-possible-to-enabled-build-id-sha1.patch similarity index 93% rename from 0213-Make-it-possible-to-enabled-build-id-sha1.patch rename to 0212-Make-it-possible-to-enabled-build-id-sha1.patch index 756a5ea5..178aa4f6 100644 --- a/0213-Make-it-possible-to-enabled-build-id-sha1.patch +++ b/0212-Make-it-possible-to-enabled-build-id-sha1.patch @@ -1,7 +1,7 @@ -From 8e15f2dce2f8b2bdcad2d35da4d068e8af44eb1d Mon Sep 17 00:00:00 2001 +From 8521929bcf671b465d6450b969d11617b6aec608 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 25 Jun 2015 15:41:06 -0400 -Subject: [PATCH 213/229] Make it possible to enabled --build-id=sha1 +Subject: [PATCH 212/229] Make it possible to enabled --build-id=sha1 Signed-off-by: Peter Jones --- diff --git a/0214-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch b/0213-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch similarity index 93% rename from 0214-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch rename to 0213-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch index 9692527e..4c810828 100644 --- a/0214-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch +++ b/0213-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch @@ -1,7 +1,7 @@ -From 29216d4ad0f75587c42274ebd63b8526fa9e815c Mon Sep 17 00:00:00 2001 +From 8c4b2eaa204f0ea0377ca4592d2be6029fdb9be7 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Sun, 28 Jun 2015 13:09:58 -0400 -Subject: [PATCH 214/229] Add grub_qdprintf() - grub_dprintf() without the +Subject: [PATCH 213/229] Add grub_qdprintf() - grub_dprintf() without the file+line number. This just makes copy+paste of our debug loading info easier. diff --git a/0215-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch b/0214-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch similarity index 97% rename from 0215-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch rename to 0214-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch index cee34c3e..2848fe9d 100644 --- a/0215-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch +++ b/0214-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch @@ -1,7 +1,7 @@ -From bc8e33848ee9888fd8b3aa61b4d3ecf9094356aa Mon Sep 17 00:00:00 2001 +From 030095a01a205aba04a0849ac0c0329ac429a9ed Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 25 Jun 2015 15:11:36 -0400 -Subject: [PATCH 215/229] Make a "gdb" dprintf that tells us load addresses. +Subject: [PATCH 214/229] Make a "gdb" dprintf that tells us load addresses. This makes a grub_dprintf() call during platform init and during module loading that tells us the virtual addresses of the .text and .data diff --git a/0216-Only-attempt-to-scan-different-BLS-directories-on-EF.patch b/0215-Only-attempt-to-scan-different-BLS-directories-on-EF.patch similarity index 92% rename from 0216-Only-attempt-to-scan-different-BLS-directories-on-EF.patch rename to 0215-Only-attempt-to-scan-different-BLS-directories-on-EF.patch index 0d9766f9..4e41a078 100644 --- a/0216-Only-attempt-to-scan-different-BLS-directories-on-EF.patch +++ b/0215-Only-attempt-to-scan-different-BLS-directories-on-EF.patch @@ -1,7 +1,7 @@ -From 62b3c9bf77feda2ae595c5e811b3918d3bf990a4 Mon Sep 17 00:00:00 2001 +From 5f0417c63a4dd2252a5a801568f4369ac74a47e6 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 3 Apr 2018 15:42:47 +0200 -Subject: [PATCH 216/229] Only attempt to scan different BLS directories on EFI +Subject: [PATCH 215/229] Only attempt to scan different BLS directories on EFI machines Current BLS support attempted to scan for BLS directories, but this only diff --git a/0217-Core-TPM-support.patch b/0216-Core-TPM-support.patch similarity index 99% rename from 0217-Core-TPM-support.patch rename to 0216-Core-TPM-support.patch index 9dbdbcfb..dd662ac1 100644 --- a/0217-Core-TPM-support.patch +++ b/0216-Core-TPM-support.patch @@ -1,7 +1,7 @@ -From 7f4bde559545d19352072829fb9267b916c60fa3 Mon Sep 17 00:00:00 2001 +From 65be94a64a5608209561ba0914d29445d81bf4b2 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 14 Jul 2015 17:06:35 -0700 -Subject: [PATCH 217/229] Core TPM support +Subject: [PATCH 216/229] Core TPM support Add support for performing basic TPM measurements. Right now this only supports extending PCRs statically and only on UEFI and BIOS systems, but diff --git a/0218-Measure-kernel-initrd.patch b/0217-Measure-kernel-initrd.patch similarity index 91% rename from 0218-Measure-kernel-initrd.patch rename to 0217-Measure-kernel-initrd.patch index 911f0dc5..c620b0d7 100644 --- a/0218-Measure-kernel-initrd.patch +++ b/0217-Measure-kernel-initrd.patch @@ -1,7 +1,7 @@ -From 556a7abe5d08b3b7b2d8446759587b17337fe9c9 Mon Sep 17 00:00:00 2001 +From ffd305d09def6610ef96f928c0df8303c5529d63 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Thu, 16 Jul 2015 15:22:34 -0700 -Subject: [PATCH 218/229] Measure kernel + initrd +Subject: [PATCH 217/229] Measure kernel + initrd Measure the kernel and initrd when loaded on UEFI systems --- diff --git a/0219-Add-BIOS-boot-measurement.patch b/0218-Add-BIOS-boot-measurement.patch similarity index 97% rename from 0219-Add-BIOS-boot-measurement.patch rename to 0218-Add-BIOS-boot-measurement.patch index ec174580..0d91cdf1 100644 --- a/0219-Add-BIOS-boot-measurement.patch +++ b/0218-Add-BIOS-boot-measurement.patch @@ -1,7 +1,7 @@ -From 8390e231d322fd94f7a8223f140c4bc5de2ba56f Mon Sep 17 00:00:00 2001 +From d8870587d46f8aa8d4f8db2cdcddecc829993447 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 15:48:51 -0700 -Subject: [PATCH 219/229] Add BIOS boot measurement +Subject: [PATCH 218/229] Add BIOS boot measurement Measure the on-disk grub core on BIOS systems - unlike UEFI, the firmware can't do this stage for us. diff --git a/0220-Measure-kernel-and-initrd-on-BIOS-systems.patch b/0219-Measure-kernel-and-initrd-on-BIOS-systems.patch similarity index 94% rename from 0220-Measure-kernel-and-initrd-on-BIOS-systems.patch rename to 0219-Measure-kernel-and-initrd-on-BIOS-systems.patch index 015c3cb8..248f5baf 100644 --- a/0220-Measure-kernel-and-initrd-on-BIOS-systems.patch +++ b/0219-Measure-kernel-and-initrd-on-BIOS-systems.patch @@ -1,7 +1,7 @@ -From 2c3d5dcff2281c9f0894ce01b1c75be47dd13050 Mon Sep 17 00:00:00 2001 +From 5aee2444093cfc8006865766f89e5a775a940ab1 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 16:28:29 -0700 -Subject: [PATCH 220/229] Measure kernel and initrd on BIOS systems +Subject: [PATCH 219/229] Measure kernel and initrd on BIOS systems Measure the kernel and initrd when loaded on BIOS systems --- diff --git a/0221-Measure-the-kernel-commandline.patch b/0220-Measure-the-kernel-commandline.patch similarity index 89% rename from 0221-Measure-the-kernel-commandline.patch rename to 0220-Measure-the-kernel-commandline.patch index 3d575382..e4de3112 100644 --- a/0221-Measure-the-kernel-commandline.patch +++ b/0220-Measure-the-kernel-commandline.patch @@ -1,7 +1,7 @@ -From eeca74b2e520dd3c0ca74deb8c6351e9ec14096c Mon Sep 17 00:00:00 2001 +From c1694574d6eb287e6e181dd018fe54b718a613b3 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 16:32:29 -0700 -Subject: [PATCH 221/229] Measure the kernel commandline +Subject: [PATCH 220/229] Measure the kernel commandline Measure the kernel commandline to ensure that it hasn't been modified --- diff --git a/0222-Measure-commands.patch b/0221-Measure-commands.patch similarity index 95% rename from 0222-Measure-commands.patch rename to 0221-Measure-commands.patch index ec24fb4d..bf58f0af 100644 --- a/0222-Measure-commands.patch +++ b/0221-Measure-commands.patch @@ -1,7 +1,7 @@ -From c45fb4188646f0ea2a8e37dd5e1fa069ca6f7b8a Mon Sep 17 00:00:00 2001 +From c93a27f2e6a323a4985e6fe902eb5c6447fca572 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Mon, 10 Aug 2015 15:27:12 -0700 -Subject: [PATCH 222/229] Measure commands +Subject: [PATCH 221/229] Measure commands Measure each command executed by grub, which includes script execution. --- diff --git a/0223-Measure-multiboot-images-and-modules.patch b/0222-Measure-multiboot-images-and-modules.patch similarity index 94% rename from 0223-Measure-multiboot-images-and-modules.patch rename to 0222-Measure-multiboot-images-and-modules.patch index e28d233d..ca0b6e99 100644 --- a/0223-Measure-multiboot-images-and-modules.patch +++ b/0222-Measure-multiboot-images-and-modules.patch @@ -1,7 +1,7 @@ -From 98dd154527b9cddaff15ab22b35c41815d9f1b13 Mon Sep 17 00:00:00 2001 +From b164ec560cd6373c0c5d8a189d70baeca2c3ef13 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 1 Sep 2015 16:02:55 -0700 -Subject: [PATCH 223/229] Measure multiboot images and modules +Subject: [PATCH 222/229] Measure multiboot images and modules --- grub-core/loader/i386/multiboot_mbi.c | 3 +++ diff --git a/0224-Fix-boot-when-there-s-no-TPM.patch b/0223-Fix-boot-when-there-s-no-TPM.patch similarity index 86% rename from 0224-Fix-boot-when-there-s-no-TPM.patch rename to 0223-Fix-boot-when-there-s-no-TPM.patch index fc5452e2..cf4c776f 100644 --- a/0224-Fix-boot-when-there-s-no-TPM.patch +++ b/0223-Fix-boot-when-there-s-no-TPM.patch @@ -1,7 +1,7 @@ -From d621b990b2d3ba20a275de963841c4c2c9246a90 Mon Sep 17 00:00:00 2001 +From 33fb6113d65a819496d0b67b8db071fedad845a7 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Wed, 23 Mar 2016 16:49:42 -0700 -Subject: [PATCH 224/229] Fix boot when there's no TPM +Subject: [PATCH 223/229] Fix boot when there's no TPM If the firmware has TPM support but has no TPM, we're jumping to core.img without popping the registers back onto the stack. Fix that. diff --git a/0225-Rework-TPM-measurements.patch b/0224-Rework-TPM-measurements.patch similarity index 98% rename from 0225-Rework-TPM-measurements.patch rename to 0224-Rework-TPM-measurements.patch index 61daa16f..00e6e9f0 100644 --- a/0225-Rework-TPM-measurements.patch +++ b/0224-Rework-TPM-measurements.patch @@ -1,7 +1,7 @@ -From b3e11d156a1244087ff79f4cdf93cdf35d0fa926 Mon Sep 17 00:00:00 2001 +From 415072bbda8b4de133c6dc6add230e41ee6d9579 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Wed, 23 Mar 2016 17:03:43 -0700 -Subject: [PATCH 225/229] Rework TPM measurements +Subject: [PATCH 224/229] Rework TPM measurements Rework TPM measurements to use fewer PCRs. After discussion with upstream, it's preferable to avoid using so many PCRs. Instead, measure into PCRs 8 diff --git a/0226-Fix-event-log-prefix.patch b/0225-Fix-event-log-prefix.patch similarity index 88% rename from 0226-Fix-event-log-prefix.patch rename to 0225-Fix-event-log-prefix.patch index dbc0c67d..c026d72d 100644 --- a/0226-Fix-event-log-prefix.patch +++ b/0225-Fix-event-log-prefix.patch @@ -1,7 +1,7 @@ -From 8bea1ad0aa389bf8ffbe7b442603161cba3bd3c7 Mon Sep 17 00:00:00 2001 +From 0816621235226952a5bd0cfd027eb97ff84df547 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 29 Mar 2016 15:36:49 -0700 -Subject: [PATCH 226/229] Fix event log prefix +Subject: [PATCH 225/229] Fix event log prefix We're not passing the prefixed version of the description to the event log. Fix that. diff --git a/0227-Set-the-first-boot-menu-entry-as-default-when-using-.patch b/0226-Set-the-first-boot-menu-entry-as-default-when-using-.patch similarity index 86% rename from 0227-Set-the-first-boot-menu-entry-as-default-when-using-.patch rename to 0226-Set-the-first-boot-menu-entry-as-default-when-using-.patch index 9bffbac9..99e7c2e6 100644 --- a/0227-Set-the-first-boot-menu-entry-as-default-when-using-.patch +++ b/0226-Set-the-first-boot-menu-entry-as-default-when-using-.patch @@ -1,7 +1,7 @@ -From e540034970a1dbeaeafc5d9f08c2e83d9197b0db Mon Sep 17 00:00:00 2001 +From 8278e40fdc4a4db0865fc632cbe2dcf7c124ba7a Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Fri, 6 Apr 2018 14:08:36 +0200 -Subject: [PATCH 227/229] Set the first boot menu entry as default when using +Subject: [PATCH 226/229] Set the first boot menu entry as default when using BLS fragments When BootLoaderSpec configuration files are used, the default boot menu diff --git a/0228-tpm-fix-warnings-when-compiling-for-platforms-other-.patch b/0227-tpm-fix-warnings-when-compiling-for-platforms-other-.patch similarity index 91% rename from 0228-tpm-fix-warnings-when-compiling-for-platforms-other-.patch rename to 0227-tpm-fix-warnings-when-compiling-for-platforms-other-.patch index 1a0889a1..9f88b58c 100644 --- a/0228-tpm-fix-warnings-when-compiling-for-platforms-other-.patch +++ b/0227-tpm-fix-warnings-when-compiling-for-platforms-other-.patch @@ -1,7 +1,7 @@ -From abcbb11d3647140ea158bb01945f033d69a7a53a Mon Sep 17 00:00:00 2001 +From 4c53f61b1a889c0f55e76a763b05b6686ec613b8 Mon Sep 17 00:00:00 2001 From: Michael Marineau Date: Sun, 21 Aug 2016 18:24:58 -0700 -Subject: [PATCH 228/229] tpm: fix warnings when compiling for platforms other +Subject: [PATCH 227/229] tpm: fix warnings when compiling for platforms other than pc and efi --- diff --git a/0229-Make-TPM-errors-less-fatal.patch b/0228-Make-TPM-errors-less-fatal.patch similarity index 98% rename from 0229-Make-TPM-errors-less-fatal.patch rename to 0228-Make-TPM-errors-less-fatal.patch index 3ea4adf2..2269fd60 100644 --- a/0229-Make-TPM-errors-less-fatal.patch +++ b/0228-Make-TPM-errors-less-fatal.patch @@ -1,7 +1,7 @@ -From 64be807ea7b4b3744b77ad3d5c28f98c6625339d Mon Sep 17 00:00:00 2001 +From 406f7dda0cc2689170f102341a546c87072d1ce5 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Thu, 13 Oct 2016 13:55:26 -0700 -Subject: [PATCH 229/229] Make TPM errors less fatal +Subject: [PATCH 228/229] Make TPM errors less fatal Handle TPM errors, and stop trying to use the TPM once we hit one. --- diff --git a/0229-blscfg-handle-multiple-initramfs-images.patch b/0229-blscfg-handle-multiple-initramfs-images.patch new file mode 100644 index 00000000..a266c002 --- /dev/null +++ b/0229-blscfg-handle-multiple-initramfs-images.patch @@ -0,0 +1,107 @@ +From a230ec5c31d818c2f046acf3592a5492d3e2ea69 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Wed, 11 Apr 2018 13:44:29 -0400 +Subject: [PATCH 229/229] blscfg: handle multiple initramfs images. + +Signed-off-by: Peter Jones +--- + grub-core/commands/blscfg.c | 54 ++++++++++++++++++++++++++++++++++++--------- + 1 file changed, 44 insertions(+), 10 deletions(-) + +diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c +index c0973ff83ea..1e5972422d6 100644 +--- a/grub-core/commands/blscfg.c ++++ b/grub-core/commands/blscfg.c +@@ -587,6 +587,7 @@ static void create_entry (struct bls_entry *entry, const char *cfgfile) + char *title = NULL; + char *clinux = NULL; + char *options = NULL; ++ char **initrds = NULL; + char *initrd = NULL; + char *id = NULL; + char *hotkey = NULL; +@@ -609,7 +610,7 @@ static void create_entry (struct bls_entry *entry, const char *cfgfile) + + title = bls_get_val (entry, "title", NULL); + options = bls_get_val (entry, "options", NULL); +- initrd = bls_get_val (entry, "initrd", NULL); ++ initrds = bls_make_list (entry, "initrd", NULL); + id = bls_get_val (entry, "id", NULL); + + hotkey = bls_get_val (entry, "grub_hotkey", NULL); +@@ -624,30 +625,63 @@ static void create_entry (struct bls_entry *entry, const char *cfgfile) + argv[i] = args[i-1]; + argv[argc] = NULL; + +- grub_dprintf("blscfg", "adding menu entry for \"%s\"\n", title); ++ grub_dprintf ("blscfg", "adding menu entry for \"%s\"\n", title); ++ if (initrds) ++ { ++ int initrd_size = sizeof (GRUB_INITRD_CMD); ++ char *tmp; ++ ++ for (i = 0; initrds != NULL && initrds[i] != NULL; i++) ++ initrd_size += sizeof (" " GRUB_BOOT_DEVICE) \ ++ + grub_strlen (initrds[i]) + 1; ++ initrd_size += 1; ++ ++ initrd = grub_malloc (initrd_size); ++ if (!initrd) ++ { ++ grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("out of memory")); ++ goto finish; ++ } ++ ++ ++ tmp = grub_stpcpy(initrd, GRUB_INITRD_CMD); ++ for (i = 0; initrds != NULL && initrds[i] != NULL; i++) ++ { ++ grub_dprintf ("blscfg", "adding initrd %s\n", initrds[i]); ++ tmp = grub_stpcpy (tmp, " " GRUB_BOOT_DEVICE); ++ tmp = grub_stpcpy (tmp, initrds[i]); ++ } ++ tmp = grub_stpcpy (tmp, "\n"); ++ } ++ + src = grub_xasprintf ("load_video\n" + "set gfx_payload=keep\n" + "insmod gzio\n" + GRUB_LINUX_CMD " %s%s%s%s\n" +- "%s%s%s%s", ++ "%s", + GRUB_BOOT_DEVICE, clinux, options ? " " : "", options ? options : "", +- initrd ? GRUB_INITRD_CMD " " : "", initrd ? GRUB_BOOT_DEVICE : "", initrd ? initrd : "", initrd ? "\n" : ""); ++ initrd ? initrd : ""); + + grub_normal_add_menu_entry (argc, argv, classes, id, users, hotkey, NULL, src, 0); + + finish: ++ if (initrd) ++ grub_free (initrd); ++ ++ if (initrds) ++ grub_free (initrds); ++ + if (classes) +- grub_free (classes); +- grub_dprintf("blscfg", "%s got here\n", __func__); ++ grub_free (classes); ++ + if (args) +- grub_free (args); ++ grub_free (args); + + if (argv) +- grub_free (argv); ++ grub_free (argv); + + if (src) +- grub_free (src); +- grub_dprintf("blscfg", "%s got here\n", __func__); ++ grub_free (src); + } + + struct find_entry_info { +-- +2.15.0 + diff --git a/grub.patches b/grub.patches index a13bb2ee..80ae0121 100644 --- a/grub.patches +++ b/grub.patches @@ -61,169 +61,169 @@ Patch0060: 0060-arm64-linux-loader-improve-type-portability.patch Patch0061: 0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch Patch0062: 0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch Patch0063: 0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch -Patch0064: 0064-info-in-builddir.patch -Patch0065: 0065-re-write-.gitignore.patch -Patch0066: 0066-IBM-client-architecture-CAS-reboot-support.patch -Patch0067: 0067-for-ppc-reset-console-display-attr-when-clear-screen.patch -Patch0068: 0068-Disable-GRUB-video-support-for-IBM-power-machines.patch -Patch0069: 0069-Honor-a-symlink-when-generating-configuration-by-gru.patch -Patch0070: 0070-Move-bash-completion-script-922997.patch -Patch0071: 0071-Update-to-minilzo-2.08.patch -Patch0072: 0072-Allow-fallback-to-include-entries-by-title-not-just-.patch -Patch0073: 0073-Add-GRUB_DISABLE_UUID.patch -Patch0074: 0074-Make-exit-take-a-return-code.patch -Patch0075: 0075-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch -Patch0076: 0076-Make-efi-machines-load-an-env-block-from-a-variable.patch -Patch0077: 0077-DHCP-client-ID-and-UUID-options-added.patch -Patch0078: 0078-trim-arp-packets-with-abnormal-size.patch -Patch0079: 0079-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch -Patch0080: 0080-Add-support-for-UEFI-operating-systems-returned-by-o.patch -Patch0081: 0081-Migrate-PPC-from-Yaboot-to-Grub2.patch -Patch0082: 0082-Add-fw_path-variable-revised.patch -Patch0083: 0083-Add-support-for-linuxefi.patch -Patch0084: 0084-Use-linuxefi-and-initrdefi-where-appropriate.patch -Patch0085: 0085-Don-t-allow-insmod-when-secure-boot-is-enabled.patch -Patch0086: 0086-Pass-x-hex-hex-straight-through-unmolested.patch -Patch0087: 0087-Add-X-option-to-printf-functions.patch -Patch0088: 0088-Search-for-specific-config-file-for-netboot.patch -Patch0089: 0089-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch -Patch0090: 0090-Don-t-write-messages-to-the-screen.patch -Patch0091: 0091-Don-t-print-GNU-GRUB-header.patch -Patch0092: 0092-Don-t-add-to-highlighted-row.patch -Patch0093: 0093-Message-string-cleanups.patch -Patch0094: 0094-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch -Patch0095: 0095-Use-the-correct-indentation-for-the-term-help-text.patch -Patch0096: 0096-Indent-menu-entries.patch -Patch0097: 0097-Fix-margins.patch -Patch0098: 0098-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch -Patch0099: 0099-Use-linux16-when-appropriate-880840.patch -Patch0100: 0100-Enable-pager-by-default.-985860.patch -Patch0101: 0101-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch -Patch0102: 0102-Don-t-say-GNU-Linux-in-generated-menus.patch -Patch0103: 0103-Don-t-draw-a-border-around-the-menu.patch -Patch0104: 0104-Use-the-standard-margin-for-the-timeout-string.patch -Patch0105: 0105-Add-.eh_frame-to-list-of-relocations-stripped.patch -Patch0106: 0106-Make-10_linux-work-with-our-changes-for-linux16-and-.patch -Patch0107: 0107-Don-t-print-during-fdt-loading-method.patch -Patch0108: 0108-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch -Patch0109: 0109-Don-t-require-a-password-to-boot-entries-generated-b.patch -Patch0110: 0110-Don-t-emit-Booting-.-message.patch -Patch0111: 0111-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch -Patch0112: 0112-use-fw_path-prefix-when-fallback-searching-for-grub-.patch -Patch0113: 0113-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch -Patch0114: 0114-Fix-convert-function-to-support-NVMe-devices.patch -Patch0115: 0115-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch -Patch0116: 0116-Use-the-default-device-tree-from-the-grub-default-fi.patch -Patch0117: 0117-reopen-SNP-protocol-for-exclusive-use-by-grub.patch -Patch0118: 0118-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch -Patch0119: 0119-Add-grub_util_readlink.patch -Patch0120: 0120-Make-editenv-chase-symlinks-including-those-across-d.patch -Patch0121: 0121-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch -Patch0122: 0122-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch -Patch0123: 0123-Load-arm-with-SB-enabled.patch -Patch0124: 0124-Try-prefix-if-fw_path-doesn-t-work.patch -Patch0125: 0125-Update-info-with-grub.cfg-netboot-selection-order-11.patch -Patch0126: 0126-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch -Patch0127: 0127-Handle-rssd-storage-devices.patch -Patch0128: 0128-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch -Patch0129: 0129-Make-grub2-mkconfig-construct-titles-that-look-like-.patch -Patch0130: 0130-Add-friendly-grub2-password-config-tool-985962.patch -Patch0131: 0131-Make-grub2-mkconfig-construct-titles-that-look-like-.patch -Patch0132: 0132-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch -Patch0133: 0133-tcp-add-window-scaling-support.patch -Patch0134: 0134-efinet-retransmit-if-our-device-is-busy.patch -Patch0135: 0135-Be-more-aggro-about-actually-using-the-configured-ne.patch -Patch0136: 0136-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch -Patch0137: 0137-Fix-security-issue-when-reading-username-and-passwor.patch -Patch0138: 0138-Warn-if-grub-password-will-not-be-read-1290803.patch -Patch0139: 0139-Clean-up-grub-setpassword-documentation-1290799.patch -Patch0140: 0140-Fix-locale-issue-in-grub-setpassword-1294243.patch -Patch0141: 0141-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch -Patch0142: 0142-efiemu-Fix-compilation-failure.patch -Patch0143: 0143-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch -Patch0144: 0144-Add-a-url-parser.patch -Patch0145: 0145-efinet-and-bootp-add-support-for-dhcpv6.patch -Patch0146: 0146-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch -Patch0147: 0147-Normalize-slashes-in-tftp-paths.patch -Patch0148: 0148-Fix-malformed-tftp-packets.patch -Patch0149: 0149-Fix-race-in-EFI-validation.patch -Patch0150: 0150-bz1374141-fix-incorrect-mask-for-ppc64.patch -Patch0151: 0151-Use-device-part-of-chainloader-target-if-present.patch -Patch0152: 0152-Add-secureboot-support-on-efi-chainloader.patch -Patch0153: 0153-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch -Patch0154: 0154-Make-grub_fatal-also-backtrace.patch -Patch0155: 0155-Rework-linux-command.patch -Patch0156: 0156-Rework-linux16-command.patch -Patch0157: 0157-Make-grub-editenv-build-again.patch -Patch0158: 0158-Fix-up-some-man-pages-rpmdiff-noticed.patch -Patch0159: 0159-Re-work-some-intricacies-of-PE-loading.patch -Patch0160: 0160-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch -Patch0161: 0161-linuxefi-fix-double-free-on-verification-failure.patch -Patch0162: 0162-fix-machine-type-test-in-30_os-prober.in.patch -Patch0163: 0163-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch -Patch0164: 0164-efi-chainloader-truncate-overlong-relocation-section.patch -Patch0165: 0165-linuxefi-minor-cleanups.patch -Patch0166: 0166-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch -Patch0167: 0167-Fix-up-linux-params-usage.patch -Patch0168: 0168-Make-exit-take-a-return-code.patch -Patch0169: 0169-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch -Patch0170: 0170-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch -Patch0171: 0171-Make-our-info-pages-say-grub2-where-appropriate.patch -Patch0172: 0172-print-more-debug-info-in-our-module-loader.patch -Patch0173: 0173-macos-just-build-chainloader-entries-don-t-try-any-x.patch -Patch0174: 0174-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch -Patch0175: 0175-export-btrfs_subvol-and-btrfs_subvolid.patch -Patch0176: 0176-grub2-btrfs-03-follow_default.patch -Patch0177: 0177-grub2-btrfs-04-grub2-install.patch -Patch0178: 0178-grub2-btrfs-05-grub2-mkconfig.patch -Patch0179: 0179-grub2-btrfs-06-subvol-mount.patch -Patch0180: 0180-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch -Patch0181: 0181-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch -Patch0182: 0182-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch -Patch0183: 0183-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch -Patch0184: 0184-Use-grub_efi_.-memory-helpers-where-reasonable.patch -Patch0185: 0185-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch -Patch0186: 0186-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch -Patch0187: 0187-don-t-ignore-const.patch -Patch0188: 0188-don-t-use-int-for-efi-status.patch -Patch0189: 0189-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch -Patch0190: 0190-Clean-up-some-errors-in-the-linuxefi-loader.patch -Patch0191: 0191-editenv-handle-relative-symlinks.patch -Patch0192: 0192-Make-libgrub.pp-depend-on-config-util.h.patch -Patch0193: 0193-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch -Patch0194: 0194-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch -Patch0195: 0195-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch -Patch0196: 0196-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch -Patch0197: 0197-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch -Patch0198: 0198-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch -Patch0199: 0199-align-struct-efi_variable-better.patch -Patch0200: 0200-Add-quicksort-implementation.patch -Patch0201: 0201-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch -Patch0202: 0202-Add-BLS-support-to-grub-mkconfig.patch -Patch0203: 0203-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch -Patch0204: 0204-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch -Patch0205: 0205-Enable-blscfg-command-for-the-emu-platform.patch -Patch0206: 0206-Add-linux-and-initrd-commands-for-grub-emu.patch -Patch0207: 0207-Fix-the-efidir-in-grub-setpassword.patch -Patch0208: 0208-Add-grub2-switch-to-blscfg.patch -Patch0209: 0209-Add-grub_debug_enabled.patch -Patch0210: 0210-make-better-backtraces.patch -Patch0211: 0211-normal-don-t-draw-our-startup-message-if-debug-is-se.patch -Patch0212: 0212-Work-around-some-minor-include-path-weirdnesses.patch -Patch0213: 0213-Make-it-possible-to-enabled-build-id-sha1.patch -Patch0214: 0214-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch -Patch0215: 0215-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch -Patch0216: 0216-Only-attempt-to-scan-different-BLS-directories-on-EF.patch -Patch0217: 0217-Core-TPM-support.patch -Patch0218: 0218-Measure-kernel-initrd.patch -Patch0219: 0219-Add-BIOS-boot-measurement.patch -Patch0220: 0220-Measure-kernel-and-initrd-on-BIOS-systems.patch -Patch0221: 0221-Measure-the-kernel-commandline.patch -Patch0222: 0222-Measure-commands.patch -Patch0223: 0223-Measure-multiboot-images-and-modules.patch -Patch0224: 0224-Fix-boot-when-there-s-no-TPM.patch -Patch0225: 0225-Rework-TPM-measurements.patch -Patch0226: 0226-Fix-event-log-prefix.patch -Patch0227: 0227-Set-the-first-boot-menu-entry-as-default-when-using-.patch -Patch0228: 0228-tpm-fix-warnings-when-compiling-for-platforms-other-.patch -Patch0229: 0229-Make-TPM-errors-less-fatal.patch +Patch0064: 0064-re-write-.gitignore.patch +Patch0065: 0065-IBM-client-architecture-CAS-reboot-support.patch +Patch0066: 0066-for-ppc-reset-console-display-attr-when-clear-screen.patch +Patch0067: 0067-Disable-GRUB-video-support-for-IBM-power-machines.patch +Patch0068: 0068-Honor-a-symlink-when-generating-configuration-by-gru.patch +Patch0069: 0069-Move-bash-completion-script-922997.patch +Patch0070: 0070-Update-to-minilzo-2.08.patch +Patch0071: 0071-Allow-fallback-to-include-entries-by-title-not-just-.patch +Patch0072: 0072-Add-GRUB_DISABLE_UUID.patch +Patch0073: 0073-Make-exit-take-a-return-code.patch +Patch0074: 0074-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch +Patch0075: 0075-Make-efi-machines-load-an-env-block-from-a-variable.patch +Patch0076: 0076-DHCP-client-ID-and-UUID-options-added.patch +Patch0077: 0077-trim-arp-packets-with-abnormal-size.patch +Patch0078: 0078-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch +Patch0079: 0079-Add-support-for-UEFI-operating-systems-returned-by-o.patch +Patch0080: 0080-Migrate-PPC-from-Yaboot-to-Grub2.patch +Patch0081: 0081-Add-fw_path-variable-revised.patch +Patch0082: 0082-Add-support-for-linuxefi.patch +Patch0083: 0083-Use-linuxefi-and-initrdefi-where-appropriate.patch +Patch0084: 0084-Don-t-allow-insmod-when-secure-boot-is-enabled.patch +Patch0085: 0085-Pass-x-hex-hex-straight-through-unmolested.patch +Patch0086: 0086-Add-X-option-to-printf-functions.patch +Patch0087: 0087-Search-for-specific-config-file-for-netboot.patch +Patch0088: 0088-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch +Patch0089: 0089-Don-t-write-messages-to-the-screen.patch +Patch0090: 0090-Don-t-print-GNU-GRUB-header.patch +Patch0091: 0091-Don-t-add-to-highlighted-row.patch +Patch0092: 0092-Message-string-cleanups.patch +Patch0093: 0093-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch +Patch0094: 0094-Use-the-correct-indentation-for-the-term-help-text.patch +Patch0095: 0095-Indent-menu-entries.patch +Patch0096: 0096-Fix-margins.patch +Patch0097: 0097-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch +Patch0098: 0098-Use-linux16-when-appropriate-880840.patch +Patch0099: 0099-Enable-pager-by-default.-985860.patch +Patch0100: 0100-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch +Patch0101: 0101-Don-t-say-GNU-Linux-in-generated-menus.patch +Patch0102: 0102-Don-t-draw-a-border-around-the-menu.patch +Patch0103: 0103-Use-the-standard-margin-for-the-timeout-string.patch +Patch0104: 0104-Add-.eh_frame-to-list-of-relocations-stripped.patch +Patch0105: 0105-Make-10_linux-work-with-our-changes-for-linux16-and-.patch +Patch0106: 0106-Don-t-print-during-fdt-loading-method.patch +Patch0107: 0107-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch +Patch0108: 0108-Don-t-require-a-password-to-boot-entries-generated-b.patch +Patch0109: 0109-Don-t-emit-Booting-.-message.patch +Patch0110: 0110-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch +Patch0111: 0111-use-fw_path-prefix-when-fallback-searching-for-grub-.patch +Patch0112: 0112-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch +Patch0113: 0113-Fix-convert-function-to-support-NVMe-devices.patch +Patch0114: 0114-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch +Patch0115: 0115-Use-the-default-device-tree-from-the-grub-default-fi.patch +Patch0116: 0116-reopen-SNP-protocol-for-exclusive-use-by-grub.patch +Patch0117: 0117-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch +Patch0118: 0118-Add-grub_util_readlink.patch +Patch0119: 0119-Make-editenv-chase-symlinks-including-those-across-d.patch +Patch0120: 0120-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch +Patch0121: 0121-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch +Patch0122: 0122-Load-arm-with-SB-enabled.patch +Patch0123: 0123-Try-prefix-if-fw_path-doesn-t-work.patch +Patch0124: 0124-Update-info-with-grub.cfg-netboot-selection-order-11.patch +Patch0125: 0125-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch +Patch0126: 0126-Handle-rssd-storage-devices.patch +Patch0127: 0127-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch +Patch0128: 0128-Make-grub2-mkconfig-construct-titles-that-look-like-.patch +Patch0129: 0129-Add-friendly-grub2-password-config-tool-985962.patch +Patch0130: 0130-Make-grub2-mkconfig-construct-titles-that-look-like-.patch +Patch0131: 0131-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch +Patch0132: 0132-tcp-add-window-scaling-support.patch +Patch0133: 0133-efinet-retransmit-if-our-device-is-busy.patch +Patch0134: 0134-Be-more-aggro-about-actually-using-the-configured-ne.patch +Patch0135: 0135-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch +Patch0136: 0136-Fix-security-issue-when-reading-username-and-passwor.patch +Patch0137: 0137-Warn-if-grub-password-will-not-be-read-1290803.patch +Patch0138: 0138-Clean-up-grub-setpassword-documentation-1290799.patch +Patch0139: 0139-Fix-locale-issue-in-grub-setpassword-1294243.patch +Patch0140: 0140-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch +Patch0141: 0141-efiemu-Fix-compilation-failure.patch +Patch0142: 0142-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch +Patch0143: 0143-Add-a-url-parser.patch +Patch0144: 0144-efinet-and-bootp-add-support-for-dhcpv6.patch +Patch0145: 0145-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch +Patch0146: 0146-Normalize-slashes-in-tftp-paths.patch +Patch0147: 0147-Fix-malformed-tftp-packets.patch +Patch0148: 0148-Fix-race-in-EFI-validation.patch +Patch0149: 0149-bz1374141-fix-incorrect-mask-for-ppc64.patch +Patch0150: 0150-Use-device-part-of-chainloader-target-if-present.patch +Patch0151: 0151-Add-secureboot-support-on-efi-chainloader.patch +Patch0152: 0152-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch +Patch0153: 0153-Make-grub_fatal-also-backtrace.patch +Patch0154: 0154-Rework-linux-command.patch +Patch0155: 0155-Rework-linux16-command.patch +Patch0156: 0156-Make-grub-editenv-build-again.patch +Patch0157: 0157-Fix-up-some-man-pages-rpmdiff-noticed.patch +Patch0158: 0158-Re-work-some-intricacies-of-PE-loading.patch +Patch0159: 0159-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch +Patch0160: 0160-linuxefi-fix-double-free-on-verification-failure.patch +Patch0161: 0161-fix-machine-type-test-in-30_os-prober.in.patch +Patch0162: 0162-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch +Patch0163: 0163-efi-chainloader-truncate-overlong-relocation-section.patch +Patch0164: 0164-linuxefi-minor-cleanups.patch +Patch0165: 0165-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch +Patch0166: 0166-Fix-up-linux-params-usage.patch +Patch0167: 0167-Make-exit-take-a-return-code.patch +Patch0168: 0168-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch +Patch0169: 0169-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch +Patch0170: 0170-Make-our-info-pages-say-grub2-where-appropriate.patch +Patch0171: 0171-print-more-debug-info-in-our-module-loader.patch +Patch0172: 0172-macos-just-build-chainloader-entries-don-t-try-any-x.patch +Patch0173: 0173-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch +Patch0174: 0174-export-btrfs_subvol-and-btrfs_subvolid.patch +Patch0175: 0175-grub2-btrfs-03-follow_default.patch +Patch0176: 0176-grub2-btrfs-04-grub2-install.patch +Patch0177: 0177-grub2-btrfs-05-grub2-mkconfig.patch +Patch0178: 0178-grub2-btrfs-06-subvol-mount.patch +Patch0179: 0179-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch +Patch0180: 0180-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch +Patch0181: 0181-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch +Patch0182: 0182-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch +Patch0183: 0183-Use-grub_efi_.-memory-helpers-where-reasonable.patch +Patch0184: 0184-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch +Patch0185: 0185-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch +Patch0186: 0186-don-t-ignore-const.patch +Patch0187: 0187-don-t-use-int-for-efi-status.patch +Patch0188: 0188-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch +Patch0189: 0189-Clean-up-some-errors-in-the-linuxefi-loader.patch +Patch0190: 0190-editenv-handle-relative-symlinks.patch +Patch0191: 0191-Make-libgrub.pp-depend-on-config-util.h.patch +Patch0192: 0192-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch +Patch0193: 0193-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch +Patch0194: 0194-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch +Patch0195: 0195-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch +Patch0196: 0196-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch +Patch0197: 0197-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch +Patch0198: 0198-align-struct-efi_variable-better.patch +Patch0199: 0199-Add-quicksort-implementation.patch +Patch0200: 0200-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch +Patch0201: 0201-Add-BLS-support-to-grub-mkconfig.patch +Patch0202: 0202-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch +Patch0203: 0203-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch +Patch0204: 0204-Enable-blscfg-command-for-the-emu-platform.patch +Patch0205: 0205-Add-linux-and-initrd-commands-for-grub-emu.patch +Patch0206: 0206-Fix-the-efidir-in-grub-setpassword.patch +Patch0207: 0207-Add-grub2-switch-to-blscfg.patch +Patch0208: 0208-Add-grub_debug_enabled.patch +Patch0209: 0209-make-better-backtraces.patch +Patch0210: 0210-normal-don-t-draw-our-startup-message-if-debug-is-se.patch +Patch0211: 0211-Work-around-some-minor-include-path-weirdnesses.patch +Patch0212: 0212-Make-it-possible-to-enabled-build-id-sha1.patch +Patch0213: 0213-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch +Patch0214: 0214-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch +Patch0215: 0215-Only-attempt-to-scan-different-BLS-directories-on-EF.patch +Patch0216: 0216-Core-TPM-support.patch +Patch0217: 0217-Measure-kernel-initrd.patch +Patch0218: 0218-Add-BIOS-boot-measurement.patch +Patch0219: 0219-Measure-kernel-and-initrd-on-BIOS-systems.patch +Patch0220: 0220-Measure-the-kernel-commandline.patch +Patch0221: 0221-Measure-commands.patch +Patch0222: 0222-Measure-multiboot-images-and-modules.patch +Patch0223: 0223-Fix-boot-when-there-s-no-TPM.patch +Patch0224: 0224-Rework-TPM-measurements.patch +Patch0225: 0225-Fix-event-log-prefix.patch +Patch0226: 0226-Set-the-first-boot-menu-entry-as-default-when-using-.patch +Patch0227: 0227-tpm-fix-warnings-when-compiling-for-platforms-other-.patch +Patch0228: 0228-Make-TPM-errors-less-fatal.patch +Patch0229: 0229-blscfg-handle-multiple-initramfs-images.patch diff --git a/grub2.spec b/grub2.spec index afb42db6..e786d7b6 100644 --- a/grub2.spec +++ b/grub2.spec @@ -7,7 +7,7 @@ Name: grub2 Epoch: 1 Version: 2.02 -Release: 32%{?dist} +Release: 33%{?dist} Summary: Bootloader with support for Linux, Multiboot and more Group: System Environment/Base License: GPLv3+ @@ -203,6 +203,7 @@ cat << EOF > ${RPM_BUILD_ROOT}%{_sysconfdir}/prelink.conf.d/grub2.conf EOF # Install kernel-install scripts +install -d -m 0755 %{buildroot}%{_prefix}/lib/kernel/install.d/ install -D -m 0755 -t %{buildroot}%{_prefix}/lib/kernel/install.d/ %{SOURCE9} install -d -m 0755 %{buildroot}%{_sysconfdir}/kernel/install.d/ install -m 0644 /dev/null %{buildroot}%{_sysconfdir}/kernel/install.d/20-grubby.install @@ -452,6 +453,9 @@ fi %endif %changelog +* Wed Apr 11 2018 Peter Jones - 2.02-33 +- Work around some issues with older automake found in CentOS. + * Wed Apr 11 2018 Javier Martinez Canillas - 2.02-32 - Make 20-grub.install to generate debug BLS when MAKEDEBUG is set. From 7fae9c0df064ef3609c8054bbcbe428611838b80 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 11 Apr 2018 14:47:31 -0400 Subject: [PATCH 16/45] Work around some issues with older automake found in CentOS. Make multiple initramfs images work in BLS. Signed-off-by: Peter Jones --- grub2.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/grub2.spec b/grub2.spec index e786d7b6..d2000f69 100644 --- a/grub2.spec +++ b/grub2.spec @@ -455,6 +455,7 @@ fi %changelog * Wed Apr 11 2018 Peter Jones - 2.02-33 - Work around some issues with older automake found in CentOS. +- Make multiple initramfs images work in BLS. * Wed Apr 11 2018 Javier Martinez Canillas - 2.02-32 - Make 20-grub.install to generate debug BLS when MAKEDEBUG is set. From b43faa2e9b292c77a8e4a90f8081b29db3cd8a9b Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 23 Apr 2018 15:21:50 -0400 Subject: [PATCH 17/45] Put the os-prober dep back in - we need to change test plans and criteria before it can go. Resolves: rhbz#1569411 Signed-off-by: Peter Jones --- grub2.spec | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/grub2.spec b/grub2.spec index d2000f69..eef191b1 100644 --- a/grub2.spec +++ b/grub2.spec @@ -7,7 +7,7 @@ Name: grub2 Epoch: 1 Version: 2.02 -Release: 33%{?dist} +Release: 34%{?dist} Summary: Bootloader with support for Linux, Multiboot and more Group: System Environment/Base License: GPLv3+ @@ -78,7 +78,7 @@ Summary: Support tools for GRUB. Group: System Environment/Base Obsoletes: %{name}-tools < %{evr} Requires: %{name}-common = %{epoch}:%{version}-%{release} -Requires: gettext which file +Requires: gettext os-prober which file Requires(pre): dracut Requires(post): dracut @@ -90,7 +90,7 @@ This subpackage provides tools for support of all platforms. %package tools-efi Summary: Support tools for GRUB. Group: System Environment/Base -Requires: gettext which file +Requires: gettext os-prober which file Requires: %{name}-common = %{epoch}:%{version}-%{release} Obsoletes: %{name}-tools < %{evr} @@ -113,7 +113,7 @@ This subpackage provides tools for support of all platforms. %package tools-extra Summary: Support tools for GRUB. Group: System Environment/Base -Requires: gettext which file +Requires: gettext os-prober which file Requires: %{name}-tools-minimal = %{epoch}:%{version}-%{release} Requires: %{name}-common = %{epoch}:%{version}-%{release} Obsoletes: %{name}-tools < %{evr} @@ -453,6 +453,11 @@ fi %endif %changelog +* Mon Apr 23 2018 Peter Jones - 2.02-34 +- Put the os-prober dep back in - we need to change test plans and criteria + before it can go. + Resolves: rhbz#1569411 + * Wed Apr 11 2018 Peter Jones - 2.02-33 - Work around some issues with older automake found in CentOS. - Make multiple initramfs images work in BLS. From 5034b2b164435dd880fbd61870de31cdb7e72454 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 24 Apr 2018 10:41:42 -0400 Subject: [PATCH 18/45] A couple of fixes needed by Fedora Atomic - javierm Signed-off-by: Peter Jones --- 0001-Bump-version-to-2.03.patch | 2 +- 0002-Remove-bashisms-from-tests.patch | 2 +- 0003-fs-tester-make-sh-compatible.patch | 2 +- 0004-support-busybox-date.patch | 2 +- ...retrieve-fstime-when-it-s-not-useful.patch | 2 +- 0006-Support-lseek64.patch | 2 +- 0007-Use-SHELL-rather-than-bin-sh.patch | 2 +- 0008-po-Use-SHELL-rather-than-bin-sh.patch | 2 +- 0009-Add-termux-path-to-dict.patch | 2 +- 0010-Fix-shebang-for-termux.patch | 2 +- 0011-Add-strtoull-test.patch | 2 +- ...x-behaviour-on-chars-between-9-and-a.patch | 2 +- 0013-Add-Virtual-LAN-support.patch | 2 +- ...out-to-mkimage_generate_elfXX-rather.patch | 2 +- ...r-arm-uboot-code-to-make-it-genereic.patch | 2 +- ...-parts-that-are-platform-independent.patch | 2 +- ...-Rename-uboot-halt.c-to-dummy-halt.c.patch | 2 +- ...ame-uboot-datetime-to-dummy-datetime.patch | 2 +- 0019-arm-coreboot-Start-new-port.patch | 2 +- ...upport-for-device-tree-based-drivers.patch | 2 +- ...-coreboot-Support-for-vexpress-timer.patch | 2 +- 0022-arm-coreboot-Export-FDT-routines.patch | 2 +- ...-Split-protocol-from-controller-code.patch | 2 +- ...reboot-Support-keyboard-for-vexpress.patch | 2 +- ...m_coreboot-Support-grub-mkstandalone.patch | 2 +- ...oreboot-Support-loading-linux-images.patch | 2 +- 0027-arm_coreboot-Support-DMA.patch | 2 +- 0028-ehci-Split-core-code-from-PCI-part.patch | 2 +- 0029-arm_coreboot-Support-EHCI.patch | 2 +- ...n-FDT-nodes-with-compatible-property.patch | 2 +- ...ty-to-send-receive-messages-on-paren.patch | 2 +- 0032-rk3288_spi-Add-SPI-driver.patch | 2 +- ...eboot-Add-Chromebook-keyboard-driver.patch | 2 +- 0034-Missing-parts-of-previous-commit.patch | 2 +- ...-cbmemc-to-support-updated-console-f.patch | 2 +- ...t_keyboard-Fix-falco-chromebook-case.patch | 2 +- 0037-sparc64-Close-cdboot-ihandle.patch | 2 +- ...-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch | 2 +- ...p-option-support-in-xen_module-comma.patch | 2 +- ...inux_xen.in-Add-xen_boot-command-sup.patch | 2 +- ...-introduction-of-Xen-boot-commands-i.patch | 2 +- ...se-devspec-to-determine-the-OBP-path.patch | 2 +- ...unt-ext2-3-4-filesystems-that-have-t.patch | 2 +- 0044-ehci-Fix-compilation-for-amd64.patch | 2 +- ...-compilation-for-ppc-sparc-and-arm64.patch | 2 +- 0046-ehci-Fix-compilation-on-i386.patch | 2 +- 0047-crypto-Fix-use-after-free.patch | 2 +- 0048-arm-efi-Fix-compilation.patch | 2 +- 0049-fdt-silence-clang-warning.patch | 2 +- 0050-Fix-a-segfault-in-lsefi.patch | 2 +- ...t-typedef-and-use-grub_size_t-instea.patch | 2 +- ...x-reading-label-lvd.ident-is-dstring.patch | 2 +- ...b-core-fs-udf.c-Add-support-for-UUID.patch | 2 +- ...orriso-presence-before-doing-anythin.patch | 2 +- 0055-Fail-if-xorriso-failed.patch | 2 +- ...efi-refactor-grub_efi_allocate_pages.patch | 2 +- 0057-Remove-grub_efi_allocate_pages.patch | 2 +- 0058-efi-move-fdt-helper-library.patch | 2 +- 0059-efi-Add-GRUB_PE32_MAGIC-definition.patch | 2 +- ...inux-loader-improve-type-portability.patch | 2 +- ...allocation-type-to-GRUB_EFI_LOADER_C.patch | 2 +- ...RM_-definitions-when-handling-term-c.patch | 2 +- ...B_GZ-prefix-to-gzio-specific-defines.patch | 2 +- 0064-re-write-.gitignore.patch | 2 +- ...ient-architecture-CAS-reboot-support.patch | 2 +- ...nsole-display-attr-when-clear-screen.patch | 2 +- ...video-support-for-IBM-power-machines.patch | 2 +- ...when-generating-configuration-by-gru.patch | 2 +- 0069-Move-bash-completion-script-922997.patch | 2 +- 0070-Update-to-minilzo-2.08.patch | 2 +- ...o-include-entries-by-title-not-just-.patch | 2 +- 0072-Add-GRUB_DISABLE_UUID.patch | 2 +- 0073-Make-exit-take-a-return-code.patch | 2 +- ...pot-as-binary-so-git-won-t-try-to-di.patch | 2 +- ...es-load-an-env-block-from-a-variable.patch | 2 +- ...HCP-client-ID-and-UUID-options-added.patch | 2 +- ...-trim-arp-packets-with-abnormal-size.patch | 2 +- ...Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch | 2 +- ...UEFI-operating-systems-returned-by-o.patch | 2 +- 0080-Migrate-PPC-from-Yaboot-to-Grub2.patch | 2 +- 0081-Add-fw_path-variable-revised.patch | 2 +- 0082-Add-support-for-linuxefi.patch | 2 +- ...xefi-and-initrdefi-where-appropriate.patch | 2 +- ...w-insmod-when-secure-boot-is-enabled.patch | 2 +- ...-hex-hex-straight-through-unmolested.patch | 2 +- 0086-Add-X-option-to-printf-functions.patch | 2 +- ...for-specific-config-file-for-netboot.patch | 2 +- ...g-module-to-parse-Boot-Loader-Specif.patch | 2 +- 0089-Don-t-write-messages-to-the-screen.patch | 2 +- 0090-Don-t-print-GNU-GRUB-header.patch | 2 +- 0091-Don-t-add-to-highlighted-row.patch | 2 +- 0092-Message-string-cleanups.patch | 2 +- ...ing-now-that-we-aren-t-displaying-it.patch | 2 +- ...t-indentation-for-the-term-help-text.patch | 2 +- 0095-Indent-menu-entries.patch | 2 +- 0096-Fix-margins.patch | 2 +- ...-1-for-our-right-hand-margin-so-line.patch | 2 +- ...-Use-linux16-when-appropriate-880840.patch | 2 +- 0099-Enable-pager-by-default.-985860.patch | 2 +- ...-on-serial-so-don-t-tell-the-user-to.patch | 2 +- ...n-t-say-GNU-Linux-in-generated-menus.patch | 2 +- ...-Don-t-draw-a-border-around-the-menu.patch | 2 +- ...andard-margin-for-the-timeout-string.patch | 2 +- ...rame-to-list-of-relocations-stripped.patch | 2 +- ...rk-with-our-changes-for-linux16-and-.patch | 2 +- ...on-t-print-during-fdt-loading-method.patch | 2 +- ...spaces-when-we-re-doing-our-cmdline-.patch | 2 +- ...password-to-boot-entries-generated-b.patch | 2 +- 0109-Don-t-emit-Booting-.-message.patch | 2 +- ...f-man-pages-with-slightly-nicer-ones.patch | 2 +- ...ix-when-fallback-searching-for-grub-.patch | 2 +- ...-before-grub.cfg-on-tftp-config-file.patch | 2 +- ...ert-function-to-support-NVMe-devices.patch | 2 +- ...M-Mustang-device-tree-for-hardware-t.patch | 2 +- ...device-tree-from-the-grub-default-fi.patch | 2 +- ...P-protocol-for-exclusive-use-by-grub.patch | 2 +- ...P-protocol-for-exclusive-use-by-grub.patch | 2 +- 0118-Add-grub_util_readlink.patch | 2 +- ...se-symlinks-including-those-across-d.patch | 2 +- ...CLASS-in-10_linux-from-etc-os-releas.patch | 2 +- ...t-ordering-for-.debug-and-rescue-ker.patch | 2 +- 0122-Load-arm-with-SB-enabled.patch | 2 +- 0123-Try-prefix-if-fw_path-doesn-t-work.patch | 2 +- ...-grub.cfg-netboot-selection-order-11.patch | 2 +- ...-Package-Sort-for-grub2-mkconfig-112.patch | 2 +- 0126-Handle-rssd-storage-devices.patch | 2 +- ...x16-initrd16-and-linuxefi-initrdefi-.patch | 2 +- ...fig-construct-titles-that-look-like-.patch | 2 +- ...ly-grub2-password-config-tool-985962.patch | 2 +- ...fig-construct-titles-that-look-like-.patch | 2 +- ...-configure.ac-and-grub-rpm-sort-play.patch | 2 +- 0132-tcp-add-window-scaling-support.patch | 2 +- ...net-retransmit-if-our-device-is-busy.patch | 2 +- ...out-actually-using-the-configured-ne.patch | 2 +- ...r-for-the-first-exclusive-reopen-of-.patch | 2 +- ...ue-when-reading-username-and-passwor.patch | 2 +- ...ub-password-will-not-be-read-1290803.patch | 2 +- ...ub-setpassword-documentation-1290799.patch | 2 +- ...le-issue-in-grub-setpassword-1294243.patch | 2 +- ...rsistent-RAM-and-unknown-possible-fu.patch | 2 +- 0141-efiemu-Fix-compilation-failure.patch | 2 +- ...P-protocol-for-exclusive-use-by-grub.patch | 2 +- 0143-Add-a-url-parser.patch | 2 +- ...net-and-bootp-add-support-for-dhcpv6.patch | 2 +- ...rnel-settings-and-use-it-in-10_linux.patch | 2 +- 0146-Normalize-slashes-in-tftp-paths.patch | 2 +- 0147-Fix-malformed-tftp-packets.patch | 2 +- 0148-Fix-race-in-EFI-validation.patch | 2 +- ...1374141-fix-incorrect-mask-for-ppc64.patch | 2 +- ...art-of-chainloader-target-if-present.patch | 2 +- ...ecureboot-support-on-efi-chainloader.patch | 2 +- ...loaders-that-link-in-efi-mode-honor-.patch | 2 +- 0153-Make-grub_fatal-also-backtrace.patch | 2 +- 0154-Rework-linux-command.patch | 2 +- 0155-Rework-linux16-command.patch | 2 +- 0156-Make-grub-editenv-build-again.patch | 2 +- ...ix-up-some-man-pages-rpmdiff-noticed.patch | 2 +- ...-work-some-intricacies-of-PE-loading.patch | 2 +- ...-of-efi-chainload-so-non-sb-cases-wo.patch | 2 +- ...-double-free-on-verification-failure.patch | 2 +- ...machine-type-test-in-30_os-prober.in.patch | 2 +- ...fix-wrong-sanity-check-in-relocate_c.patch | 2 +- ...truncate-overlong-relocation-section.patch | 2 +- 0164-linuxefi-minor-cleanups.patch | 2 +- ...rch-64-on-32-boot-in-linuxefi-loader.patch | 2 +- 0166-Fix-up-linux-params-usage.patch | 2 +- 0167-Make-exit-take-a-return-code.patch | 2 +- ...fdt-has-address-cells-and-size-cells.patch | 2 +- ...rintf-in-the-secure-boot-verify-code.patch | 2 +- ...fo-pages-say-grub2-where-appropriate.patch | 2 +- ...more-debug-info-in-our-module-loader.patch | 2 +- ...-chainloader-entries-don-t-try-any-x.patch | 2 +- ...-Add-ability-to-boot-from-subvolumes.patch | 2 +- ...port-btrfs_subvol-and-btrfs_subvolid.patch | 2 +- 0175-grub2-btrfs-03-follow_default.patch | 2 +- 0176-grub2-btrfs-04-grub2-install.patch | 2 +- 0177-grub2-btrfs-05-grub2-mkconfig.patch | 2 +- 0178-grub2-btrfs-06-subvol-mount.patch | 2 +- ...ootable-Snapshot-submenu-in-grub.cfg.patch | 2 +- ...subvol-name-scheme-to-support-old-sn.patch | 2 +- ...-correctly-with-btrfs-snapshots-bsc-.patch | 2 +- ...ocate_pool-and-grub_efi_free_pool-wr.patch | 2 +- ...fi_.-memory-helpers-where-reasonable.patch | 2 +- 0184-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch | 2 +- ...c-sized-arrays-since-we-don-t-build-.patch | 2 +- 0186-don-t-ignore-const.patch | 2 +- 0187-don-t-use-int-for-efi-status.patch | 2 +- ...INIT-declare-its-function-prototypes.patch | 2 +- ...p-some-errors-in-the-linuxefi-loader.patch | 2 +- 0190-editenv-handle-relative-symlinks.patch | 2 +- ...e-libgrub.pp-depend-on-config-util.h.patch | 2 +- ...-efi-as-HFS-on-ppc-machines-in-grub-.patch | 2 +- ...20_linux_xen.in-Add-xen_boot-command.patch | 2 +- ...-figure-out-whether-multiboot2-shoul.patch | 2 +- ...d-xen-or-multiboot-2-modules-as-need.patch | 2 +- ...lt-tsc-calibration-method-to-pmtimer.patch | 2 +- ...-calibration-not-take-51-seconds-to-.patch | 2 +- 0198-align-struct-efi_variable-better.patch | 2 +- 0199-Add-quicksort-implementation.patch | 2 +- ...nd-support-to-parse-BootLoaderSpec-c.patch | 2 +- 0201-Add-BLS-support-to-grub-mkconfig.patch | 2 +- ...d-grub_exit-definition-for-grub-emu-.patch | 2 +- ...-backtrace-on-grub_abort-for-grub-em.patch | 2 +- ...-blscfg-command-for-the-emu-platform.patch | 2 +- ...nux-and-initrd-commands-for-grub-emu.patch | 2 +- 0206-Fix-the-efidir-in-grub-setpassword.patch | 2 +- 0207-Add-grub2-switch-to-blscfg.patch | 2 +- 0208-Add-grub_debug_enabled.patch | 2 +- 0209-make-better-backtraces.patch | 2 +- ...w-our-startup-message-if-debug-is-se.patch | 2 +- ...-some-minor-include-path-weirdnesses.patch | 2 +- ...it-possible-to-enabled-build-id-sha1.patch | 2 +- ...f-grub_dprintf-without-the-file-line.patch | 2 +- ...dprintf-that-tells-us-load-addresses.patch | 2 +- ...scan-different-BLS-directories-on-EF.patch | 2 +- 0216-Core-TPM-support.patch | 2 +- 0217-Measure-kernel-initrd.patch | 2 +- 0218-Add-BIOS-boot-measurement.patch | 2 +- ...re-kernel-and-initrd-on-BIOS-systems.patch | 2 +- 0220-Measure-the-kernel-commandline.patch | 2 +- 0221-Measure-commands.patch | 2 +- ...Measure-multiboot-images-and-modules.patch | 2 +- 0223-Fix-boot-when-there-s-no-TPM.patch | 2 +- 0224-Rework-TPM-measurements.patch | 2 +- 0225-Fix-event-log-prefix.patch | 2 +- ...ot-menu-entry-as-default-when-using-.patch | 2 +- ...-when-compiling-for-platforms-other-.patch | 2 +- 0228-Make-TPM-errors-less-fatal.patch | 2 +- ...cfg-handle-multiple-initramfs-images.patch | 2 +- ...switch-to-blscfg-on-non-EFI-machines.patch | 28 +++++++++ ...LS-Use-etcdefaultgrub-instead-of-etc.patch | 27 ++++++++ ...ons-to-grub2-switch-to-blscfg-man-pa.patch | 35 +++++++++++ ...h-to-blscfg-to-generate-debug-BLS-wh.patch | 61 +++++++++++++++++++ ...h-to-blscfg-to-generate-BLS-fragment.patch | 31 ++++++++++ ...query-dev-mounted-in-boot-efi-as-boo.patch | 43 +++++++++++++ ...ath-when-searching-kernels-images-if.patch | 41 +++++++++++++ grub.macros | 1 + grub.patches | 7 +++ grub2.spec | 5 +- 239 files changed, 507 insertions(+), 230 deletions(-) create mode 100644 0230-BLS-Fix-grub2-switch-to-blscfg-on-non-EFI-machines.patch create mode 100644 0231-BLS-Use-etcdefaultgrub-instead-of-etc.patch create mode 100644 0232-Add-missing-options-to-grub2-switch-to-blscfg-man-pa.patch create mode 100644 0233-Make-grub2-switch-to-blscfg-to-generate-debug-BLS-wh.patch create mode 100644 0234-Make-grub2-switch-to-blscfg-to-generate-BLS-fragment.patch create mode 100644 0235-Only-attempt-to-query-dev-mounted-in-boot-efi-as-boo.patch create mode 100644 0236-Include-OSTree-path-when-searching-kernels-images-if.patch diff --git a/0001-Bump-version-to-2.03.patch b/0001-Bump-version-to-2.03.patch index 7f36a76b..d0ccdb5d 100644 --- a/0001-Bump-version-to-2.03.patch +++ b/0001-Bump-version-to-2.03.patch @@ -1,7 +1,7 @@ From b0bad6fd9449d3333fe1ab58953c0e6c1ce12c0d Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Wed, 3 May 2017 11:55:52 +0200 -Subject: [PATCH 001/229] Bump version to 2.03 +Subject: [PATCH 001/236] Bump version to 2.03 --- configure.ac | 2 +- diff --git a/0002-Remove-bashisms-from-tests.patch b/0002-Remove-bashisms-from-tests.patch index 8ecfde1d..9ad3fbba 100644 --- a/0002-Remove-bashisms-from-tests.patch +++ b/0002-Remove-bashisms-from-tests.patch @@ -1,7 +1,7 @@ From 5a0c548ba388b343b0bb6d2a38888e7eac5bbb96 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 03:47:13 +0300 -Subject: [PATCH 002/229] Remove bashisms from tests. +Subject: [PATCH 002/236] Remove bashisms from tests. Those tests don't actually need bash. Just use common shebang. --- diff --git a/0003-fs-tester-make-sh-compatible.patch b/0003-fs-tester-make-sh-compatible.patch index 59c40ed1..8a6efd67 100644 --- a/0003-fs-tester-make-sh-compatible.patch +++ b/0003-fs-tester-make-sh-compatible.patch @@ -1,7 +1,7 @@ From 37865c2c4ad26cd5e947b08abf1fde8145699919 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 14:35:59 +0300 -Subject: [PATCH 003/229] fs-tester: make sh-compatible +Subject: [PATCH 003/236] fs-tester: make sh-compatible --- tests/util/grub-fs-tester.in | 306 ++++++++++++++++++++++++------------------- diff --git a/0004-support-busybox-date.patch b/0004-support-busybox-date.patch index 993488b0..b594eb25 100644 --- a/0004-support-busybox-date.patch +++ b/0004-support-busybox-date.patch @@ -1,7 +1,7 @@ From b43b8cacc813c2c15347de1e35cc88d9aa912d22 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 14:31:36 +0300 -Subject: [PATCH 004/229] support busybox date. +Subject: [PATCH 004/236] support busybox date. Busybox date doesn't understand weekdays in -d input, so strip them beforehand. diff --git a/0005-Don-t-retrieve-fstime-when-it-s-not-useful.patch b/0005-Don-t-retrieve-fstime-when-it-s-not-useful.patch index 590eccd3..508425c1 100644 --- a/0005-Don-t-retrieve-fstime-when-it-s-not-useful.patch +++ b/0005-Don-t-retrieve-fstime-when-it-s-not-useful.patch @@ -1,7 +1,7 @@ From 6dec3a26b37e128ded5d912e08abc5cee1592499 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 21:24:05 +0300 -Subject: [PATCH 005/229] Don't retrieve fstime when it's not useful. +Subject: [PATCH 005/236] Don't retrieve fstime when it's not useful. --- tests/util/grub-fs-tester.in | 48 ++++++++++++++++++++++---------------------- diff --git a/0006-Support-lseek64.patch b/0006-Support-lseek64.patch index 98c5c2d1..6c520f34 100644 --- a/0006-Support-lseek64.patch +++ b/0006-Support-lseek64.patch @@ -1,7 +1,7 @@ From 608bec51128008afb81c9e3f297283e9f830a146 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 20:21:05 +0300 -Subject: [PATCH 006/229] Support lseek64. +Subject: [PATCH 006/236] Support lseek64. Android doesn't have 64-bit off_t, so use off64_t instead. --- diff --git a/0007-Use-SHELL-rather-than-bin-sh.patch b/0007-Use-SHELL-rather-than-bin-sh.patch index a69511b4..2a935efe 100644 --- a/0007-Use-SHELL-rather-than-bin-sh.patch +++ b/0007-Use-SHELL-rather-than-bin-sh.patch @@ -1,7 +1,7 @@ From c2ea443446b7feea868e54f94a87781f69820375 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 00:55:30 +0300 -Subject: [PATCH 007/229] Use $(SHELL) rather than /bin/sh. +Subject: [PATCH 007/236] Use $(SHELL) rather than /bin/sh. /bin/sh doesn't exist under termux. --- diff --git a/0008-po-Use-SHELL-rather-than-bin-sh.patch b/0008-po-Use-SHELL-rather-than-bin-sh.patch index c7270410..f4832be0 100644 --- a/0008-po-Use-SHELL-rather-than-bin-sh.patch +++ b/0008-po-Use-SHELL-rather-than-bin-sh.patch @@ -1,7 +1,7 @@ From 4341f82af0b61d3dfbe675670d4105dc759c0df3 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 14:54:03 +0300 -Subject: [PATCH 008/229] po: Use @SHELL@ rather than /bin/sh. +Subject: [PATCH 008/236] po: Use @SHELL@ rather than /bin/sh. /bin/sh might not exist. --- diff --git a/0009-Add-termux-path-to-dict.patch b/0009-Add-termux-path-to-dict.patch index a16de1dc..327fc825 100644 --- a/0009-Add-termux-path-to-dict.patch +++ b/0009-Add-termux-path-to-dict.patch @@ -1,7 +1,7 @@ From 1073ddb12078f3c8edbdb74bb8f5afc674983f40 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 14:52:48 +0300 -Subject: [PATCH 009/229] Add termux path to dict. +Subject: [PATCH 009/236] Add termux path to dict. --- tests/util/grub-fs-tester.in | 2 +- diff --git a/0010-Fix-shebang-for-termux.patch b/0010-Fix-shebang-for-termux.patch index c06f9796..3291cf45 100644 --- a/0010-Fix-shebang-for-termux.patch +++ b/0010-Fix-shebang-for-termux.patch @@ -1,7 +1,7 @@ From a827807a1330d5ad619faa103bc7f12d89fc8bee Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Sun, 22 Jan 2017 20:22:34 +0300 -Subject: [PATCH 010/229] Fix shebang for termux. +Subject: [PATCH 010/236] Fix shebang for termux. Termux doesn't have a /bin/sh. So we needto use $SHELL. Keep /bin/sh as much as possible. diff --git a/0011-Add-strtoull-test.patch b/0011-Add-strtoull-test.patch index 3aa106ca..7eb1ff14 100644 --- a/0011-Add-strtoull-test.patch +++ b/0011-Add-strtoull-test.patch @@ -1,7 +1,7 @@ From ede6c9689395499f98a4c14d76b97151b4de5f54 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Wed, 3 May 2017 12:58:15 +0200 -Subject: [PATCH 011/229] Add strtoull test. +Subject: [PATCH 011/236] Add strtoull test. --- grub-core/Makefile.core.def | 5 +++++ diff --git a/0012-strtoull-Fix-behaviour-on-chars-between-9-and-a.patch b/0012-strtoull-Fix-behaviour-on-chars-between-9-and-a.patch index 4a73b40b..68538c2f 100644 --- a/0012-strtoull-Fix-behaviour-on-chars-between-9-and-a.patch +++ b/0012-strtoull-Fix-behaviour-on-chars-between-9-and-a.patch @@ -1,7 +1,7 @@ From dc6e1b5af83eb1c4290baf97c2d221c0865127be Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Wed, 10 Aug 2016 17:49:42 +0200 -Subject: [PATCH 012/229] strtoull: Fix behaviour on chars between '9' and 'a'. +Subject: [PATCH 012/236] strtoull: Fix behaviour on chars between '9' and 'a'. Reported by: Aaron Miller --- diff --git a/0013-Add-Virtual-LAN-support.patch b/0013-Add-Virtual-LAN-support.patch index e1fa79d2..f354c773 100644 --- a/0013-Add-Virtual-LAN-support.patch +++ b/0013-Add-Virtual-LAN-support.patch @@ -1,7 +1,7 @@ From d9f7de0ae3c0c09cff7257c55418450261f3e082 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Mon, 23 Dec 2013 12:32:02 -0200 -Subject: [PATCH 013/229] Add Virtual LAN support. +Subject: [PATCH 013/236] Add Virtual LAN support. This patch adds support for virtual LAN (VLAN) tagging. VLAN tagging allows multiple VLANs in a bridged network to share the same physical network link diff --git a/0014-mkimage-Pass-layout-to-mkimage_generate_elfXX-rather.patch b/0014-mkimage-Pass-layout-to-mkimage_generate_elfXX-rather.patch index 1bb19f80..9c8c6f2f 100644 --- a/0014-mkimage-Pass-layout-to-mkimage_generate_elfXX-rather.patch +++ b/0014-mkimage-Pass-layout-to-mkimage_generate_elfXX-rather.patch @@ -1,7 +1,7 @@ From a35ac854308b0af7c86c2c7b199f6abdfa2110b0 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 17:32:15 +0200 -Subject: [PATCH 014/229] mkimage: Pass layout to mkimage_generate_elfXX rather +Subject: [PATCH 014/236] mkimage: Pass layout to mkimage_generate_elfXX rather than some fields. This allows easier extension of this function without having too long of diff --git a/0015-Refactor-arm-uboot-code-to-make-it-genereic.patch b/0015-Refactor-arm-uboot-code-to-make-it-genereic.patch index b22b922e..e01b28b9 100644 --- a/0015-Refactor-arm-uboot-code-to-make-it-genereic.patch +++ b/0015-Refactor-arm-uboot-code-to-make-it-genereic.patch @@ -1,7 +1,7 @@ From d08c9685149e7788001ac9a209baa1d84c3628e0 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 17:47:57 +0200 -Subject: [PATCH 015/229] Refactor arm-uboot code to make it genereic. +Subject: [PATCH 015/236] Refactor arm-uboot code to make it genereic. arm-coreboot startup code can be very similar to arm-uboot but current code has U-Boot specific references. So split U-Boot part from generic part. diff --git a/0016-coreboot-Split-parts-that-are-platform-independent.patch b/0016-coreboot-Split-parts-that-are-platform-independent.patch index 211cae42..1bd338ae 100644 --- a/0016-coreboot-Split-parts-that-are-platform-independent.patch +++ b/0016-coreboot-Split-parts-that-are-platform-independent.patch @@ -1,7 +1,7 @@ From 461bfab7b7e47fd0a76bf6076a438af1b7e2184a Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 19:06:22 +0200 -Subject: [PATCH 016/229] coreboot: Split parts that are platform-independent. +Subject: [PATCH 016/236] coreboot: Split parts that are platform-independent. We currently assume that coreboot is always i386, it's no longer the case, so split i386-coreboot parts from generic coreboot code. diff --git a/0017-Rename-uboot-halt.c-to-dummy-halt.c.patch b/0017-Rename-uboot-halt.c-to-dummy-halt.c.patch index 2f891de0..de6d7519 100644 --- a/0017-Rename-uboot-halt.c-to-dummy-halt.c.patch +++ b/0017-Rename-uboot-halt.c-to-dummy-halt.c.patch @@ -1,7 +1,7 @@ From 1daa716c7017f1858de117a20a31da66815435c5 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 19:31:55 +0200 -Subject: [PATCH 017/229] Rename uboot/halt.c to dummy/halt.c. +Subject: [PATCH 017/236] Rename uboot/halt.c to dummy/halt.c. It's not U-Boot specific and it's a stub. --- diff --git a/0018-Rename-uboot-datetime-to-dummy-datetime.patch b/0018-Rename-uboot-datetime-to-dummy-datetime.patch index e4437079..88a555c3 100644 --- a/0018-Rename-uboot-datetime-to-dummy-datetime.patch +++ b/0018-Rename-uboot-datetime-to-dummy-datetime.patch @@ -1,7 +1,7 @@ From 9808c3ef956c6472a96790b60cf74f4eaa742010 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 19:37:29 +0200 -Subject: [PATCH 018/229] Rename uboot/datetime to dummy/datetime. +Subject: [PATCH 018/236] Rename uboot/datetime to dummy/datetime. It's just a stub and is not UBoot-specific. --- diff --git a/0019-arm-coreboot-Start-new-port.patch b/0019-arm-coreboot-Start-new-port.patch index e5ee2e89..c982a798 100644 --- a/0019-arm-coreboot-Start-new-port.patch +++ b/0019-arm-coreboot-Start-new-port.patch @@ -1,7 +1,7 @@ From 24e37a885269bdec9b27babf1da0bba3692d55c0 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 20:53:28 +0200 -Subject: [PATCH 019/229] arm-coreboot: Start new port. +Subject: [PATCH 019/236] arm-coreboot: Start new port. --- configure.ac | 2 + diff --git a/0020-Add-support-for-device-tree-based-drivers.patch b/0020-Add-support-for-device-tree-based-drivers.patch index c88e91f5..c45c7053 100644 --- a/0020-Add-support-for-device-tree-based-drivers.patch +++ b/0020-Add-support-for-device-tree-based-drivers.patch @@ -1,7 +1,7 @@ From fcbb723d4b1f7ad4687191562621dd0eb25f4d9e Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:19:59 +0200 -Subject: [PATCH 020/229] Add support for device-tree-based drivers. +Subject: [PATCH 020/236] Add support for device-tree-based drivers. --- grub-core/Makefile.core.def | 2 + diff --git a/0021-arm-coreboot-Support-for-vexpress-timer.patch b/0021-arm-coreboot-Support-for-vexpress-timer.patch index 24ead3c4..5303921c 100644 --- a/0021-arm-coreboot-Support-for-vexpress-timer.patch +++ b/0021-arm-coreboot-Support-for-vexpress-timer.patch @@ -1,7 +1,7 @@ From 5a865b37866ee8cd64c080bc6fb1e537f8e2b3c6 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:26:36 +0200 -Subject: [PATCH 021/229] arm-coreboot: Support for vexpress timer. +Subject: [PATCH 021/236] arm-coreboot: Support for vexpress timer. --- grub-core/kern/arm/coreboot/timer.c | 36 ++++++++++++++++++++++++++++++++++++ diff --git a/0022-arm-coreboot-Export-FDT-routines.patch b/0022-arm-coreboot-Export-FDT-routines.patch index 828c9537..3b51a5e8 100644 --- a/0022-arm-coreboot-Export-FDT-routines.patch +++ b/0022-arm-coreboot-Export-FDT-routines.patch @@ -1,7 +1,7 @@ From ac6b41b89fbb82a3ba843a7ed19115d81432b604 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:29:48 +0200 -Subject: [PATCH 022/229] arm-coreboot: Export FDT routines. +Subject: [PATCH 022/236] arm-coreboot: Export FDT routines. We need to use them from modules as well. --- diff --git a/0023-at_keyboard-Split-protocol-from-controller-code.patch b/0023-at_keyboard-Split-protocol-from-controller-code.patch index 1718a2cb..a3f14f92 100644 --- a/0023-at_keyboard-Split-protocol-from-controller-code.patch +++ b/0023-at_keyboard-Split-protocol-from-controller-code.patch @@ -1,7 +1,7 @@ From 216950a4eea1a1ead1c28eaca94e34ea2ef2ad19 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:41:22 +0200 -Subject: [PATCH 023/229] at_keyboard: Split protocol from controller code. +Subject: [PATCH 023/236] at_keyboard: Split protocol from controller code. On vexpress controller is different but protocol is the same, so reuse the code. diff --git a/0024-arm_coreboot-Support-keyboard-for-vexpress.patch b/0024-arm_coreboot-Support-keyboard-for-vexpress.patch index 6e238852..e52a70bf 100644 --- a/0024-arm_coreboot-Support-keyboard-for-vexpress.patch +++ b/0024-arm_coreboot-Support-keyboard-for-vexpress.patch @@ -1,7 +1,7 @@ From 848bed9d92cf20e9f25db4c69a20efad23996ca0 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:42:37 +0200 -Subject: [PATCH 024/229] arm_coreboot: Support keyboard for vexpress. +Subject: [PATCH 024/236] arm_coreboot: Support keyboard for vexpress. --- grub-core/Makefile.core.def | 3 + diff --git a/0025-arm_coreboot-Support-grub-mkstandalone.patch b/0025-arm_coreboot-Support-grub-mkstandalone.patch index 53f34d51..1c60543c 100644 --- a/0025-arm_coreboot-Support-grub-mkstandalone.patch +++ b/0025-arm_coreboot-Support-grub-mkstandalone.patch @@ -1,7 +1,7 @@ From 3edabad8fefb112cc4b2d43be6e97d43c909ceee Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:59:48 +0200 -Subject: [PATCH 025/229] arm_coreboot: Support grub-mkstandalone. +Subject: [PATCH 025/236] arm_coreboot: Support grub-mkstandalone. --- util/grub-install-common.c | 12 ++++++++++-- diff --git a/0026-arm_coreboot-Support-loading-linux-images.patch b/0026-arm_coreboot-Support-loading-linux-images.patch index 96e11ba7..4bf11f96 100644 --- a/0026-arm_coreboot-Support-loading-linux-images.patch +++ b/0026-arm_coreboot-Support-loading-linux-images.patch @@ -1,7 +1,7 @@ From 656c3b0d7fbe23f0e1ab561c8faa4ac4a37364d1 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 22:00:06 +0200 -Subject: [PATCH 026/229] arm_coreboot: Support loading linux images. +Subject: [PATCH 026/236] arm_coreboot: Support loading linux images. --- grub-core/loader/arm/linux.c | 132 ++++++++++++++++++++++--------------------- diff --git a/0027-arm_coreboot-Support-DMA.patch b/0027-arm_coreboot-Support-DMA.patch index 62d4e5cf..19b72375 100644 --- a/0027-arm_coreboot-Support-DMA.patch +++ b/0027-arm_coreboot-Support-DMA.patch @@ -1,7 +1,7 @@ From 265292f2b0da0eb414c409871ba0f94a99ec33c1 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 22:06:04 +0200 -Subject: [PATCH 027/229] arm_coreboot: Support DMA. +Subject: [PATCH 027/236] arm_coreboot: Support DMA. This is needed to support USB and some other busses. --- diff --git a/0028-ehci-Split-core-code-from-PCI-part.patch b/0028-ehci-Split-core-code-from-PCI-part.patch index 7c331a58..63c0ac8f 100644 --- a/0028-ehci-Split-core-code-from-PCI-part.patch +++ b/0028-ehci-Split-core-code-from-PCI-part.patch @@ -1,7 +1,7 @@ From 058df7b5a9cc7aaa9872eaa916b715544a8f9840 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 22:10:26 +0200 -Subject: [PATCH 028/229] ehci: Split core code from PCI part. +Subject: [PATCH 028/236] ehci: Split core code from PCI part. On ARM often EHCI is present without PCI and just declared in device tree. So splitcore from PCI part. diff --git a/0029-arm_coreboot-Support-EHCI.patch b/0029-arm_coreboot-Support-EHCI.patch index ce24a168..e33d97f3 100644 --- a/0029-arm_coreboot-Support-EHCI.patch +++ b/0029-arm_coreboot-Support-EHCI.patch @@ -1,7 +1,7 @@ From d11ced1e1fb93676942e51618eb53c140f541890 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 22:14:28 +0200 -Subject: [PATCH 029/229] arm_coreboot: Support EHCI. +Subject: [PATCH 029/236] arm_coreboot: Support EHCI. --- grub-core/Makefile.core.def | 2 ++ diff --git a/0030-Fix-bug-on-FDT-nodes-with-compatible-property.patch b/0030-Fix-bug-on-FDT-nodes-with-compatible-property.patch index 0a2b2f4f..12cc4b46 100644 --- a/0030-Fix-bug-on-FDT-nodes-with-compatible-property.patch +++ b/0030-Fix-bug-on-FDT-nodes-with-compatible-property.patch @@ -1,7 +1,7 @@ From 4f8471532d454b2db96434c28bf7105ed69e0f4d Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 08:39:40 +0200 -Subject: [PATCH 030/229] Fix bug on FDT nodes with compatible property +Subject: [PATCH 030/236] Fix bug on FDT nodes with compatible property --- grub-core/bus/fdt.c | 2 ++ diff --git a/0031-fdtbus-Add-ability-to-send-receive-messages-on-paren.patch b/0031-fdtbus-Add-ability-to-send-receive-messages-on-paren.patch index 94985b06..5ede963a 100644 --- a/0031-fdtbus-Add-ability-to-send-receive-messages-on-paren.patch +++ b/0031-fdtbus-Add-ability-to-send-receive-messages-on-paren.patch @@ -1,7 +1,7 @@ From c4313c812dc14e82a774b580b5e34d40e7f3fae6 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 08:40:29 +0200 -Subject: [PATCH 031/229] fdtbus: Add ability to send/receive messages on +Subject: [PATCH 031/236] fdtbus: Add ability to send/receive messages on parent busses. --- diff --git a/0032-rk3288_spi-Add-SPI-driver.patch b/0032-rk3288_spi-Add-SPI-driver.patch index 7784836b..718ab008 100644 --- a/0032-rk3288_spi-Add-SPI-driver.patch +++ b/0032-rk3288_spi-Add-SPI-driver.patch @@ -1,7 +1,7 @@ From b0b1b81a11f8bae8ab9e8edd87ac3f4f7949d03b Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 08:42:14 +0200 -Subject: [PATCH 032/229] rk3288_spi: Add SPI driver +Subject: [PATCH 032/236] rk3288_spi: Add SPI driver --- grub-core/Makefile.core.def | 1 + diff --git a/0033-arm_coreboot-Add-Chromebook-keyboard-driver.patch b/0033-arm_coreboot-Add-Chromebook-keyboard-driver.patch index 21b30f42..b266ab6c 100644 --- a/0033-arm_coreboot-Add-Chromebook-keyboard-driver.patch +++ b/0033-arm_coreboot-Add-Chromebook-keyboard-driver.patch @@ -1,7 +1,7 @@ From 5c3fd1b135bd73c8e3467b9b635b25ca4d360a19 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 08:47:34 +0200 -Subject: [PATCH 033/229] arm_coreboot: Add Chromebook keyboard driver. +Subject: [PATCH 033/236] arm_coreboot: Add Chromebook keyboard driver. --- grub-core/term/arm/cros.c | 125 +++++++++++++++++++++++ diff --git a/0034-Missing-parts-of-previous-commit.patch b/0034-Missing-parts-of-previous-commit.patch index c59aed5a..9a5734e8 100644 --- a/0034-Missing-parts-of-previous-commit.patch +++ b/0034-Missing-parts-of-previous-commit.patch @@ -1,7 +1,7 @@ From c6eaa982d12e3cfc5465dda5ea372774188b6b81 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 09:02:15 +0200 -Subject: [PATCH 034/229] Missing parts of previous commit +Subject: [PATCH 034/236] Missing parts of previous commit --- grub-core/Makefile.core.def | 2 ++ diff --git a/0035-coreboot-Changed-cbmemc-to-support-updated-console-f.patch b/0035-coreboot-Changed-cbmemc-to-support-updated-console-f.patch index 5d9117c7..40a47e4e 100644 --- a/0035-coreboot-Changed-cbmemc-to-support-updated-console-f.patch +++ b/0035-coreboot-Changed-cbmemc-to-support-updated-console-f.patch @@ -1,7 +1,7 @@ From 70b555a52a065b2beb91e6fc97a6b358c931b303 Mon Sep 17 00:00:00 2001 From: Julius Werner Date: Tue, 9 May 2017 09:03:02 +0200 -Subject: [PATCH 035/229] coreboot: Changed cbmemc to support updated console +Subject: [PATCH 035/236] coreboot: Changed cbmemc to support updated console format from coreboot. --- diff --git a/0036-at_keyboard-Fix-falco-chromebook-case.patch b/0036-at_keyboard-Fix-falco-chromebook-case.patch index d1aed256..267e7dcb 100644 --- a/0036-at_keyboard-Fix-falco-chromebook-case.patch +++ b/0036-at_keyboard-Fix-falco-chromebook-case.patch @@ -1,7 +1,7 @@ From c4b8bec5fee4e30a165fd14a188cf3ab8eccd095 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 14:27:52 +0200 -Subject: [PATCH 036/229] at_keyboard: Fix falco chromebook case. +Subject: [PATCH 036/236] at_keyboard: Fix falco chromebook case. EC is slow, so we need few delays for it to toggle the bits correctly. diff --git a/0037-sparc64-Close-cdboot-ihandle.patch b/0037-sparc64-Close-cdboot-ihandle.patch index 7cdf2524..3e0377e3 100644 --- a/0037-sparc64-Close-cdboot-ihandle.patch +++ b/0037-sparc64-Close-cdboot-ihandle.patch @@ -1,7 +1,7 @@ From bd4e40aadded7093908d786d03b4acf60b7b1707 Mon Sep 17 00:00:00 2001 From: Eric Snowberg Date: Thu, 11 May 2017 18:42:23 -0700 -Subject: [PATCH 037/229] sparc64: Close cdboot ihandle +Subject: [PATCH 037/236] sparc64: Close cdboot ihandle The ihandle is left open with a cd-core image. This will cause a delay booting grub from a virtual cdrom in a LDOM. It will also cause problems diff --git a/0038-arm64-xen_boot-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch b/0038-arm64-xen_boot-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch index 3e2faa81..ce2db872 100644 --- a/0038-arm64-xen_boot-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch +++ b/0038-arm64-xen_boot-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch @@ -1,7 +1,7 @@ From ae5817f1dcbf0b99f7a849f56afe442165317840 Mon Sep 17 00:00:00 2001 From: Julien Grall Date: Fri, 19 Feb 2016 16:28:52 +0000 -Subject: [PATCH 038/229] arm64/xen_boot: Fix Xen boot using GRUB2 on AARCH64 +Subject: [PATCH 038/236] arm64/xen_boot: Fix Xen boot using GRUB2 on AARCH64 Xen is currently crashing because of malformed compatible property for the boot module. This is because the property string is not diff --git a/0039-arm64-Add-nounzip-option-support-in-xen_module-comma.patch b/0039-arm64-Add-nounzip-option-support-in-xen_module-comma.patch index 7ea461df..d5ac53df 100644 --- a/0039-arm64-Add-nounzip-option-support-in-xen_module-comma.patch +++ b/0039-arm64-Add-nounzip-option-support-in-xen_module-comma.patch @@ -1,7 +1,7 @@ From 8eed7be8a61c295df700e918744a984162378ca9 Mon Sep 17 00:00:00 2001 From: Fu Wei Date: Sun, 14 May 2017 15:43:45 +0800 -Subject: [PATCH 039/229] arm64: Add "--nounzip" option support in xen_module +Subject: [PATCH 039/236] arm64: Add "--nounzip" option support in xen_module command This patch adds "--nounzip" option support in order to diff --git a/0040-util-grub.d-20_linux_xen.in-Add-xen_boot-command-sup.patch b/0040-util-grub.d-20_linux_xen.in-Add-xen_boot-command-sup.patch index 85aab462..db29427e 100644 --- a/0040-util-grub.d-20_linux_xen.in-Add-xen_boot-command-sup.patch +++ b/0040-util-grub.d-20_linux_xen.in-Add-xen_boot-command-sup.patch @@ -1,7 +1,7 @@ From d33045ce7ffcb7c1e4a60c14d5ca64b36e3c5abe Mon Sep 17 00:00:00 2001 From: Fu Wei Date: Sun, 14 May 2017 15:43:46 +0800 -Subject: [PATCH 040/229] util/grub.d/20_linux_xen.in: Add xen_boot command +Subject: [PATCH 040/236] util/grub.d/20_linux_xen.in: Add xen_boot command support for aarch64 This patch adds the support of xen_boot command for aarch64: diff --git a/0041-arm64-Update-the-introduction-of-Xen-boot-commands-i.patch b/0041-arm64-Update-the-introduction-of-Xen-boot-commands-i.patch index 79ac53dc..676aa99e 100644 --- a/0041-arm64-Update-the-introduction-of-Xen-boot-commands-i.patch +++ b/0041-arm64-Update-the-introduction-of-Xen-boot-commands-i.patch @@ -1,7 +1,7 @@ From 26c2f306fd425d2c0348023b8dcb7eb40a01851a Mon Sep 17 00:00:00 2001 From: Fu Wei Date: Sun, 14 May 2017 15:43:47 +0800 -Subject: [PATCH 041/229] arm64: Update the introduction of Xen boot commands +Subject: [PATCH 041/236] arm64: Update the introduction of Xen boot commands in docs/grub.texi delete: xen_linux, xen_initrd, xen_xsm diff --git a/0042-sparc64-Don-t-use-devspec-to-determine-the-OBP-path.patch b/0042-sparc64-Don-t-use-devspec-to-determine-the-OBP-path.patch index 3e3d7cb5..62ea75fc 100644 --- a/0042-sparc64-Don-t-use-devspec-to-determine-the-OBP-path.patch +++ b/0042-sparc64-Don-t-use-devspec-to-determine-the-OBP-path.patch @@ -1,7 +1,7 @@ From f8679cedff703b437171f4708d46adbfcff80a65 Mon Sep 17 00:00:00 2001 From: Eric Snowberg Date: Thu, 18 May 2017 17:10:22 -0600 -Subject: [PATCH 042/229] sparc64: Don't use devspec to determine the OBP path +Subject: [PATCH 042/236] sparc64: Don't use devspec to determine the OBP path Don't use devspec to determine the OBP path on SPARC hardware. Within all versions of Linux on SPARC, the devspec returns one of three values: diff --git a/0043-Allow-GRUB-to-mount-ext2-3-4-filesystems-that-have-t.patch b/0043-Allow-GRUB-to-mount-ext2-3-4-filesystems-that-have-t.patch index addb32b5..54f74f1a 100644 --- a/0043-Allow-GRUB-to-mount-ext2-3-4-filesystems-that-have-t.patch +++ b/0043-Allow-GRUB-to-mount-ext2-3-4-filesystems-that-have-t.patch @@ -1,7 +1,7 @@ From 734668238fcc0ef691a080839e04f33854fa133a Mon Sep 17 00:00:00 2001 From: Eric Biggers Date: Thu, 29 Jun 2017 13:27:49 +0000 -Subject: [PATCH 043/229] Allow GRUB to mount ext2/3/4 filesystems that have +Subject: [PATCH 043/236] Allow GRUB to mount ext2/3/4 filesystems that have the encryption feature. On such a filesystem, inodes may have EXT4_ENCRYPT_FLAG set. diff --git a/0044-ehci-Fix-compilation-for-amd64.patch b/0044-ehci-Fix-compilation-for-amd64.patch index 448429ae..76a4c445 100644 --- a/0044-ehci-Fix-compilation-for-amd64.patch +++ b/0044-ehci-Fix-compilation-for-amd64.patch @@ -1,7 +1,7 @@ From edb37fb30bbc8a3b6bec67911c7200e4eb071127 Mon Sep 17 00:00:00 2001 From: phcoder Date: Sun, 9 Jul 2017 20:58:31 +0200 -Subject: [PATCH 044/229] ehci: Fix compilation for amd64 +Subject: [PATCH 044/236] ehci: Fix compilation for amd64 --- grub-core/bus/usb/ehci.c | 8 ++++---- diff --git a/0045-cache-Fix-compilation-for-ppc-sparc-and-arm64.patch b/0045-cache-Fix-compilation-for-ppc-sparc-and-arm64.patch index a65035bd..d5780d5b 100644 --- a/0045-cache-Fix-compilation-for-ppc-sparc-and-arm64.patch +++ b/0045-cache-Fix-compilation-for-ppc-sparc-and-arm64.patch @@ -1,7 +1,7 @@ From d8901e3ba115d705c9c08ecedd201aca8b4867b8 Mon Sep 17 00:00:00 2001 From: phcoder Date: Sun, 9 Jul 2017 20:59:15 +0200 -Subject: [PATCH 045/229] cache: Fix compilation for ppc, sparc and arm64 +Subject: [PATCH 045/236] cache: Fix compilation for ppc, sparc and arm64 --- include/grub/cache.h | 4 +++- diff --git a/0046-ehci-Fix-compilation-on-i386.patch b/0046-ehci-Fix-compilation-on-i386.patch index 2a58cbb8..13894a86 100644 --- a/0046-ehci-Fix-compilation-on-i386.patch +++ b/0046-ehci-Fix-compilation-on-i386.patch @@ -1,7 +1,7 @@ From 284afab081ef7ed7db2c59151853aa3c92d988f2 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Sun, 9 Jul 2017 21:31:19 +0200 -Subject: [PATCH 046/229] ehci: Fix compilation on i386 +Subject: [PATCH 046/236] ehci: Fix compilation on i386 --- grub-core/bus/usb/ehci.c | 4 ++-- diff --git a/0047-crypto-Fix-use-after-free.patch b/0047-crypto-Fix-use-after-free.patch index 1180bee6..0e1da467 100644 --- a/0047-crypto-Fix-use-after-free.patch +++ b/0047-crypto-Fix-use-after-free.patch @@ -1,7 +1,7 @@ From a0fe0c26aa8a1c0ad66d9527611bd726b849c623 Mon Sep 17 00:00:00 2001 From: AppChecker Date: Sun, 9 Jul 2017 21:57:35 +0200 -Subject: [PATCH 047/229] crypto: Fix use after free. +Subject: [PATCH 047/236] crypto: Fix use after free. Reported by: AppChecker Transformed to patch by: Satish Govindarajan diff --git a/0048-arm-efi-Fix-compilation.patch b/0048-arm-efi-Fix-compilation.patch index d6865e26..8be43919 100644 --- a/0048-arm-efi-Fix-compilation.patch +++ b/0048-arm-efi-Fix-compilation.patch @@ -1,7 +1,7 @@ From cb8b7e4e36bf32dccbbba8252aa44ad3ada4fbc1 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Sun, 9 Jul 2017 21:48:37 +0000 -Subject: [PATCH 048/229] arm-efi: Fix compilation +Subject: [PATCH 048/236] arm-efi: Fix compilation --- grub-core/loader/arm/linux.c | 8 ++++---- diff --git a/0049-fdt-silence-clang-warning.patch b/0049-fdt-silence-clang-warning.patch index d6ed0ba7..cb859d08 100644 --- a/0049-fdt-silence-clang-warning.patch +++ b/0049-fdt-silence-clang-warning.patch @@ -1,7 +1,7 @@ From 68d54b55f49249c5e0517bf189f0f3df7ee6a36f Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 10 Jul 2017 01:34:22 +0000 -Subject: [PATCH 049/229] fdt: silence clang warning. +Subject: [PATCH 049/236] fdt: silence clang warning. --- grub-core/lib/fdt.c | 3 ++- diff --git a/0050-Fix-a-segfault-in-lsefi.patch b/0050-Fix-a-segfault-in-lsefi.patch index d75b644a..68534fd1 100644 --- a/0050-Fix-a-segfault-in-lsefi.patch +++ b/0050-Fix-a-segfault-in-lsefi.patch @@ -1,7 +1,7 @@ From e8ab5a1a9e2889eb59d1fa494ba441a53698dcd2 Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Wed, 19 Jul 2017 15:47:41 -0400 -Subject: [PATCH 050/229] Fix a segfault in lsefi +Subject: [PATCH 050/236] Fix a segfault in lsefi when protocols_per_handle returns error, we can't use the pointers we passed to it, and that includes trusting num_protocols. diff --git a/0051-zfs-remove-size_t-typedef-and-use-grub_size_t-instea.patch b/0051-zfs-remove-size_t-typedef-and-use-grub_size_t-instea.patch index 93e68465..c9aecbb4 100644 --- a/0051-zfs-remove-size_t-typedef-and-use-grub_size_t-instea.patch +++ b/0051-zfs-remove-size_t-typedef-and-use-grub_size_t-instea.patch @@ -1,7 +1,7 @@ From fa42786264cef98c56e972b3bb6b8448000e1c70 Mon Sep 17 00:00:00 2001 From: Pete Batard Date: Thu, 3 Aug 2017 15:46:15 +0100 -Subject: [PATCH 051/229] zfs: remove size_t typedef and use grub_size_t +Subject: [PATCH 051/236] zfs: remove size_t typedef and use grub_size_t instead * Prevents some toolchains from issuing a warning on size_t redef. diff --git a/0052-udf-Fix-reading-label-lvd.ident-is-dstring.patch b/0052-udf-Fix-reading-label-lvd.ident-is-dstring.patch index 749f07a8..cc245806 100644 --- a/0052-udf-Fix-reading-label-lvd.ident-is-dstring.patch +++ b/0052-udf-Fix-reading-label-lvd.ident-is-dstring.patch @@ -1,7 +1,7 @@ From 76188809d5ca40c5285b0ab202b5edea7be3f04d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pali=20Roh=C3=A1r?= Date: Thu, 22 Jun 2017 14:33:17 +0200 -Subject: [PATCH 052/229] udf: Fix reading label, lvd.ident is dstring +Subject: [PATCH 052/236] udf: Fix reading label, lvd.ident is dstring UDF dstring has stored length in the last byte of buffer. Therefore last byte is not part of recorded characters. And empty string in dstring is diff --git a/0053-grub-core-fs-udf.c-Add-support-for-UUID.patch b/0053-grub-core-fs-udf.c-Add-support-for-UUID.patch index e204091a..1602078b 100644 --- a/0053-grub-core-fs-udf.c-Add-support-for-UUID.patch +++ b/0053-grub-core-fs-udf.c-Add-support-for-UUID.patch @@ -1,7 +1,7 @@ From 435fa75e01ef40917239c7f775e505e86f70d202 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pali=20Roh=C3=A1r?= Date: Thu, 22 Jun 2017 14:42:16 +0200 -Subject: [PATCH 053/229] * grub-core/fs/udf.c: Add support for UUID +Subject: [PATCH 053/236] * grub-core/fs/udf.c: Add support for UUID Use same algorithm as in libblkid from util-linux v2.30. diff --git a/0054-mkrescue-Check-xorriso-presence-before-doing-anythin.patch b/0054-mkrescue-Check-xorriso-presence-before-doing-anythin.patch index d37b7006..cdcb5e5f 100644 --- a/0054-mkrescue-Check-xorriso-presence-before-doing-anythin.patch +++ b/0054-mkrescue-Check-xorriso-presence-before-doing-anythin.patch @@ -1,7 +1,7 @@ From 9e962fd3c42081e2eef1f99a0eaab38fd04d2620 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 7 Aug 2017 18:05:17 +0200 -Subject: [PATCH 054/229] mkrescue: Check xorriso presence before doing +Subject: [PATCH 054/236] mkrescue: Check xorriso presence before doing anything else. mkrescue can't do anything useful without xorriso, so abort early if it's diff --git a/0055-Fail-if-xorriso-failed.patch b/0055-Fail-if-xorriso-failed.patch index b1b80dba..464a4ed7 100644 --- a/0055-Fail-if-xorriso-failed.patch +++ b/0055-Fail-if-xorriso-failed.patch @@ -1,7 +1,7 @@ From e66dc5d71ebfc9763420a76c274e6980d54641c3 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 7 Aug 2017 18:08:39 +0200 -Subject: [PATCH 055/229] Fail if xorriso failed. +Subject: [PATCH 055/236] Fail if xorriso failed. If xorriso failed most likely we didn't generate a meaningful image. --- diff --git a/0056-efi-refactor-grub_efi_allocate_pages.patch b/0056-efi-refactor-grub_efi_allocate_pages.patch index 0ca46c67..45cd1ec0 100644 --- a/0056-efi-refactor-grub_efi_allocate_pages.patch +++ b/0056-efi-refactor-grub_efi_allocate_pages.patch @@ -1,7 +1,7 @@ From dd5fde2df83c5c03b7ba04d2cc5b7be96de8da7b Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:23 +0100 -Subject: [PATCH 056/229] efi: refactor grub_efi_allocate_pages +Subject: [PATCH 056/236] efi: refactor grub_efi_allocate_pages Expose a new function, grub_efi_allocate_pages_real(), making it possible to specify allocation type and memory type as supported by the UEFI diff --git a/0057-Remove-grub_efi_allocate_pages.patch b/0057-Remove-grub_efi_allocate_pages.patch index 343f87d9..e0ef4a90 100644 --- a/0057-Remove-grub_efi_allocate_pages.patch +++ b/0057-Remove-grub_efi_allocate_pages.patch @@ -1,7 +1,7 @@ From 4bc909bf89f5b4ff86c9e4e609d4fe0c11a66b0c Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 7 Aug 2017 18:33:29 +0200 -Subject: [PATCH 057/229] Remove grub_efi_allocate_pages. +Subject: [PATCH 057/236] Remove grub_efi_allocate_pages. grub_efi_allocate_pages Essentially does 2 unrelated things: * Allocate at fixed address. diff --git a/0058-efi-move-fdt-helper-library.patch b/0058-efi-move-fdt-helper-library.patch index 0c1ca39d..e33cc976 100644 --- a/0058-efi-move-fdt-helper-library.patch +++ b/0058-efi-move-fdt-helper-library.patch @@ -1,7 +1,7 @@ From 8c9465fac901caac6802d6872a1374518b001517 Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:24 +0100 -Subject: [PATCH 058/229] efi: move fdt helper library +Subject: [PATCH 058/236] efi: move fdt helper library There is nothing ARM64 (or even ARM) specific about the efi fdt helper library, which is used for locating or overriding a firmware-provided diff --git a/0059-efi-Add-GRUB_PE32_MAGIC-definition.patch b/0059-efi-Add-GRUB_PE32_MAGIC-definition.patch index a70176d0..6806e52c 100644 --- a/0059-efi-Add-GRUB_PE32_MAGIC-definition.patch +++ b/0059-efi-Add-GRUB_PE32_MAGIC-definition.patch @@ -1,7 +1,7 @@ From c5841ba7f0d14c193f20854e7e55b4f7ce9207d5 Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:25 +0100 -Subject: [PATCH 059/229] efi: Add GRUB_PE32_MAGIC definition +Subject: [PATCH 059/236] efi: Add GRUB_PE32_MAGIC definition Add a generic GRUB_PE32_MAGIC definition for the PE 'MZ' tag and delete the existing one in arm64/linux.h. diff --git a/0060-arm64-linux-loader-improve-type-portability.patch b/0060-arm64-linux-loader-improve-type-portability.patch index 12d106a4..dc14a375 100644 --- a/0060-arm64-linux-loader-improve-type-portability.patch +++ b/0060-arm64-linux-loader-improve-type-portability.patch @@ -1,7 +1,7 @@ From 91212e0aa07e704a61e4540c18a27f149f5e51c3 Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:26 +0100 -Subject: [PATCH 060/229] arm64 linux loader: improve type portability +Subject: [PATCH 060/236] arm64 linux loader: improve type portability In preparation for turning this into a common loader for 32-bit and 64-bit platforms, ensure the code will compile cleanly for either. diff --git a/0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch b/0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch index fafc571d..b47bdcb5 100644 --- a/0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch +++ b/0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch @@ -1,7 +1,7 @@ From f826330683675f0deb55b58fd229afd7d65fb053 Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:32 +0100 -Subject: [PATCH 061/229] efi: change heap allocation type to +Subject: [PATCH 061/236] efi: change heap allocation type to GRUB_EFI_LOADER_CODE With upcoming changes to EDK2, allocations of type EFI_LOADER_DATA may diff --git a/0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch b/0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch index 27b58d6e..4d6661e5 100644 --- a/0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch +++ b/0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch @@ -1,7 +1,7 @@ From bdd89d239cd9b4089630bfb5ec862aab8086dca2 Mon Sep 17 00:00:00 2001 From: Pete Batard Date: Mon, 7 Aug 2017 16:20:30 +0100 -Subject: [PATCH 062/229] core: use GRUB_TERM_ definitions when handling term +Subject: [PATCH 062/236] core: use GRUB_TERM_ definitions when handling term characters * Also use hex value for GRUB_TERM_ESC as '\e' is not in the C standard and is not understood by some compilers diff --git a/0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch b/0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch index d7416073..aee767f4 100644 --- a/0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch +++ b/0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch @@ -1,7 +1,7 @@ From 1deebd85ef87cc581e995ce0a51dc0802ac9c367 Mon Sep 17 00:00:00 2001 From: Pete Batard Date: Mon, 7 Aug 2017 16:23:12 +0100 -Subject: [PATCH 063/229] io: add a GRUB_GZ prefix to gzio specific defines +Subject: [PATCH 063/236] io: add a GRUB_GZ prefix to gzio specific defines * This is done to avoid a conflict with a PACKED define in the EDK2 --- diff --git a/0064-re-write-.gitignore.patch b/0064-re-write-.gitignore.patch index bd0ec2b4..a5ec130b 100644 --- a/0064-re-write-.gitignore.patch +++ b/0064-re-write-.gitignore.patch @@ -1,7 +1,7 @@ From 38bfcd3054c28aa40234840c12d900f1d18a217d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 8 Aug 2017 12:48:04 -0400 -Subject: [PATCH 064/229] re-write .gitignore +Subject: [PATCH 064/236] re-write .gitignore --- .gitignore | 352 ++++++++++++-------------------------- diff --git a/0065-IBM-client-architecture-CAS-reboot-support.patch b/0065-IBM-client-architecture-CAS-reboot-support.patch index b0a52ef9..113d604d 100644 --- a/0065-IBM-client-architecture-CAS-reboot-support.patch +++ b/0065-IBM-client-architecture-CAS-reboot-support.patch @@ -1,7 +1,7 @@ From bf1fd830091fff49e26f39027e0db8fd4b688624 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Thu, 20 Sep 2012 18:07:39 -0300 -Subject: [PATCH 065/229] IBM client architecture (CAS) reboot support +Subject: [PATCH 065/236] IBM client architecture (CAS) reboot support This is an implementation of IBM client architecture (CAS) reboot for GRUB. diff --git a/0066-for-ppc-reset-console-display-attr-when-clear-screen.patch b/0066-for-ppc-reset-console-display-attr-when-clear-screen.patch index 429bbdfd..f053d08c 100644 --- a/0066-for-ppc-reset-console-display-attr-when-clear-screen.patch +++ b/0066-for-ppc-reset-console-display-attr-when-clear-screen.patch @@ -1,7 +1,7 @@ From 8b30fab3c07a9fc8549e404c411b747b960c57b2 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Wed, 24 Apr 2013 10:51:48 -0300 -Subject: [PATCH 066/229] for ppc, reset console display attr when clear screen +Subject: [PATCH 066/236] for ppc, reset console display attr when clear screen v2: Also use \x0c instead of a literal ^L to make future patches less awkward. diff --git a/0067-Disable-GRUB-video-support-for-IBM-power-machines.patch b/0067-Disable-GRUB-video-support-for-IBM-power-machines.patch index 0410ea15..b6061621 100644 --- a/0067-Disable-GRUB-video-support-for-IBM-power-machines.patch +++ b/0067-Disable-GRUB-video-support-for-IBM-power-machines.patch @@ -1,7 +1,7 @@ From 45322cbc9402639a431fc0f33bd76e387e6f02bf Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 11 Jun 2013 15:14:05 -0300 -Subject: [PATCH 067/229] Disable GRUB video support for IBM power machines +Subject: [PATCH 067/236] Disable GRUB video support for IBM power machines Should fix the problem in bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=973205 diff --git a/0068-Honor-a-symlink-when-generating-configuration-by-gru.patch b/0068-Honor-a-symlink-when-generating-configuration-by-gru.patch index e143bb2d..722131b4 100644 --- a/0068-Honor-a-symlink-when-generating-configuration-by-gru.patch +++ b/0068-Honor-a-symlink-when-generating-configuration-by-gru.patch @@ -1,7 +1,7 @@ From c29e260c9f41f4f802fa852b6c46fb2e5d912cb6 Mon Sep 17 00:00:00 2001 From: Marcel Kolaja Date: Tue, 21 Jan 2014 10:57:08 -0500 -Subject: [PATCH 068/229] Honor a symlink when generating configuration by +Subject: [PATCH 068/236] Honor a symlink when generating configuration by grub2-mkconfig Honor a symlink when generating configuration by grub2-mkconfig, so that diff --git a/0069-Move-bash-completion-script-922997.patch b/0069-Move-bash-completion-script-922997.patch index 06f3ba36..6c5d8612 100644 --- a/0069-Move-bash-completion-script-922997.patch +++ b/0069-Move-bash-completion-script-922997.patch @@ -1,7 +1,7 @@ From 8eaf2f497a6bcffc5554509533940ac2b764b981 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 3 Apr 2013 14:35:34 -0400 -Subject: [PATCH 069/229] Move bash completion script (#922997) +Subject: [PATCH 069/236] Move bash completion script (#922997) Apparently these go in a new place now. --- diff --git a/0070-Update-to-minilzo-2.08.patch b/0070-Update-to-minilzo-2.08.patch index 0bd0f7a5..5cc6bebf 100644 --- a/0070-Update-to-minilzo-2.08.patch +++ b/0070-Update-to-minilzo-2.08.patch @@ -1,7 +1,7 @@ From 9a1e99c5628bafa9e3970a5317b721da704bec6a Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Dec 2014 15:36:09 -0500 -Subject: [PATCH 070/229] Update to minilzo-2.08 +Subject: [PATCH 070/236] Update to minilzo-2.08 This fixes CVE-2014-4607 - lzo: lzo1x_decompress_safe() integer overflow diff --git a/0071-Allow-fallback-to-include-entries-by-title-not-just-.patch b/0071-Allow-fallback-to-include-entries-by-title-not-just-.patch index 00fc4cf1..01c1c45d 100644 --- a/0071-Allow-fallback-to-include-entries-by-title-not-just-.patch +++ b/0071-Allow-fallback-to-include-entries-by-title-not-just-.patch @@ -1,7 +1,7 @@ From 27845fb323de35e9dcaad8c738eb1a2a2bc316f8 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 5 Sep 2014 10:07:04 -0400 -Subject: [PATCH 071/229] Allow "fallback" to include entries by title, not +Subject: [PATCH 071/236] Allow "fallback" to include entries by title, not just number. Resolves: rhbz#1026084 diff --git a/0072-Add-GRUB_DISABLE_UUID.patch b/0072-Add-GRUB_DISABLE_UUID.patch index 93eed1b4..8e576dd1 100644 --- a/0072-Add-GRUB_DISABLE_UUID.patch +++ b/0072-Add-GRUB_DISABLE_UUID.patch @@ -1,7 +1,7 @@ From 7f7429e93fa791ac2c002beaafab9b9d9bd86b89 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Sep 2014 16:49:25 -0400 -Subject: [PATCH 072/229] Add GRUB_DISABLE_UUID. +Subject: [PATCH 072/236] Add GRUB_DISABLE_UUID. This will cause "search --fs-uuid --set=root ..." not to be generated by grub2-mkconfig, and instead simply attempt to use the grub device name diff --git a/0073-Make-exit-take-a-return-code.patch b/0073-Make-exit-take-a-return-code.patch index fbf52ee8..d80d926b 100644 --- a/0073-Make-exit-take-a-return-code.patch +++ b/0073-Make-exit-take-a-return-code.patch @@ -1,7 +1,7 @@ From 384ccb1b44fc23514a59529f58f984dcc4a75cc9 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 26 Feb 2014 21:49:12 -0500 -Subject: [PATCH 073/229] Make "exit" take a return code. +Subject: [PATCH 073/236] Make "exit" take a return code. This adds "exit" with a return code. With this patch, any "exit" command /may/ include a return code, and on platforms that support diff --git a/0074-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch b/0074-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch index f7ed6b2a..d83cd561 100644 --- a/0074-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch +++ b/0074-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch @@ -1,7 +1,7 @@ From 939f3dfcfacde13bd7ebfe411c0dceee9e5ed0ae Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 22 Jul 2015 11:21:01 -0400 -Subject: [PATCH 074/229] Mark po/exclude.pot as binary so git won't try to +Subject: [PATCH 074/236] Mark po/exclude.pot as binary so git won't try to diff nonprintables. Signed-off-by: Peter Jones diff --git a/0075-Make-efi-machines-load-an-env-block-from-a-variable.patch b/0075-Make-efi-machines-load-an-env-block-from-a-variable.patch index 4acdbf19..0453632e 100644 --- a/0075-Make-efi-machines-load-an-env-block-from-a-variable.patch +++ b/0075-Make-efi-machines-load-an-env-block-from-a-variable.patch @@ -1,7 +1,7 @@ From 805220eb48a8cabcc83628d90aa40f3204b21a71 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 7 Dec 2015 14:20:49 -0500 -Subject: [PATCH 075/229] Make efi machines load an env block from a variable +Subject: [PATCH 075/236] Make efi machines load an env block from a variable Signed-off-by: Peter Jones --- diff --git a/0076-DHCP-client-ID-and-UUID-options-added.patch b/0076-DHCP-client-ID-and-UUID-options-added.patch index 648cb941..01f51ccd 100644 --- a/0076-DHCP-client-ID-and-UUID-options-added.patch +++ b/0076-DHCP-client-ID-and-UUID-options-added.patch @@ -1,7 +1,7 @@ From cefc164d655fb7709efbc37a317952ff3ec4aeb3 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 27 Nov 2012 17:18:53 -0200 -Subject: [PATCH 076/229] DHCP client ID and UUID options added. +Subject: [PATCH 076/236] DHCP client ID and UUID options added. --- grub-core/net/bootp.c | 87 ++++++++++++++++++++++++++++++++++++++++++++++----- diff --git a/0077-trim-arp-packets-with-abnormal-size.patch b/0077-trim-arp-packets-with-abnormal-size.patch index f35e1567..699ce29d 100644 --- a/0077-trim-arp-packets-with-abnormal-size.patch +++ b/0077-trim-arp-packets-with-abnormal-size.patch @@ -1,7 +1,7 @@ From 571a6cce3b0d4c8abf11efc320e2de6ff9188d60 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Wed, 5 Feb 2014 09:42:42 -0200 -Subject: [PATCH 077/229] trim arp packets with abnormal size +Subject: [PATCH 077/236] trim arp packets with abnormal size GRUB uses arp request to create the arp response. If the incoming packet is foobared, GRUB needs to trim the arp response packet before sending it. diff --git a/0078-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch b/0078-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch index 23dd1892..b66a9a00 100644 --- a/0078-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch +++ b/0078-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch @@ -1,7 +1,7 @@ From 6cd959a64f588e256f0ba17e31bf2720b9cdec88 Mon Sep 17 00:00:00 2001 From: Prarit Bhargava Date: Wed, 12 Mar 2014 10:58:16 -0400 -Subject: [PATCH 078/229] Fix bad test on GRUB_DISABLE_SUBMENU. +Subject: [PATCH 078/236] Fix bad test on GRUB_DISABLE_SUBMENU. The file /etc/grub.d/10_linux does diff --git a/0079-Add-support-for-UEFI-operating-systems-returned-by-o.patch b/0079-Add-support-for-UEFI-operating-systems-returned-by-o.patch index 89e78db6..553e3398 100644 --- a/0079-Add-support-for-UEFI-operating-systems-returned-by-o.patch +++ b/0079-Add-support-for-UEFI-operating-systems-returned-by-o.patch @@ -1,7 +1,7 @@ From 0254265409f80b369c35fb474c7371feb6f9ae1d Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Wed, 12 Jun 2013 11:51:49 -0400 -Subject: [PATCH 079/229] Add support for UEFI operating systems returned by +Subject: [PATCH 079/236] Add support for UEFI operating systems returned by os-prober os-prober returns UEFI operating systems in the form: diff --git a/0080-Migrate-PPC-from-Yaboot-to-Grub2.patch b/0080-Migrate-PPC-from-Yaboot-to-Grub2.patch index fad62fdb..8ec8a007 100644 --- a/0080-Migrate-PPC-from-Yaboot-to-Grub2.patch +++ b/0080-Migrate-PPC-from-Yaboot-to-Grub2.patch @@ -1,7 +1,7 @@ From f2b4c105e3657cc32ed0f7aefa713f161cdf64f1 Mon Sep 17 00:00:00 2001 From: Mark Hamzy Date: Wed, 28 Mar 2012 14:46:41 -0500 -Subject: [PATCH 080/229] Migrate PPC from Yaboot to Grub2 +Subject: [PATCH 080/236] Migrate PPC from Yaboot to Grub2 Add configuration support for serial terminal consoles. This will set the maximum screen size so that text is not overwritten. diff --git a/0081-Add-fw_path-variable-revised.patch b/0081-Add-fw_path-variable-revised.patch index a77fc418..b97c7d98 100644 --- a/0081-Add-fw_path-variable-revised.patch +++ b/0081-Add-fw_path-variable-revised.patch @@ -1,7 +1,7 @@ From 7f021a05a5ed7c97432abbc1762f40e36a4915e3 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Wed, 19 Sep 2012 21:22:55 -0300 -Subject: [PATCH 081/229] Add fw_path variable (revised) +Subject: [PATCH 081/236] Add fw_path variable (revised) This patch makes grub look for its config file on efi where the app was found. It was originally written by Matthew Garrett, and adapted to fix the diff --git a/0082-Add-support-for-linuxefi.patch b/0082-Add-support-for-linuxefi.patch index 302662e4..4ab2d1d2 100644 --- a/0082-Add-support-for-linuxefi.patch +++ b/0082-Add-support-for-linuxefi.patch @@ -1,7 +1,7 @@ From 778385965798ac2711f0d07d5cf521a6e999ca8b Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 10 Jul 2012 11:58:52 -0400 -Subject: [PATCH 082/229] Add support for linuxefi +Subject: [PATCH 082/236] Add support for linuxefi --- grub-core/Makefile.core.def | 8 + diff --git a/0083-Use-linuxefi-and-initrdefi-where-appropriate.patch b/0083-Use-linuxefi-and-initrdefi-where-appropriate.patch index eaa12164..9d53b7c6 100644 --- a/0083-Use-linuxefi-and-initrdefi-where-appropriate.patch +++ b/0083-Use-linuxefi-and-initrdefi-where-appropriate.patch @@ -1,7 +1,7 @@ From 793d4270384ef3373bc0b3c956cab8a8cdb75bcf Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 16 Jul 2012 18:57:11 -0400 -Subject: [PATCH 083/229] Use "linuxefi" and "initrdefi" where appropriate. +Subject: [PATCH 083/236] Use "linuxefi" and "initrdefi" where appropriate. --- util/grub.d/10_linux.in | 18 ++++++++++++++++-- diff --git a/0084-Don-t-allow-insmod-when-secure-boot-is-enabled.patch b/0084-Don-t-allow-insmod-when-secure-boot-is-enabled.patch index a5267e9f..5efa6511 100644 --- a/0084-Don-t-allow-insmod-when-secure-boot-is-enabled.patch +++ b/0084-Don-t-allow-insmod-when-secure-boot-is-enabled.patch @@ -1,7 +1,7 @@ From eb8fd62e887e624f5c6e7c2ee8512981e8b5be97 Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Tue, 23 Oct 2012 10:40:49 -0400 -Subject: [PATCH 084/229] Don't allow insmod when secure boot is enabled. +Subject: [PATCH 084/236] Don't allow insmod when secure boot is enabled. Hi, diff --git a/0085-Pass-x-hex-hex-straight-through-unmolested.patch b/0085-Pass-x-hex-hex-straight-through-unmolested.patch index c6e956b0..396029ec 100644 --- a/0085-Pass-x-hex-hex-straight-through-unmolested.patch +++ b/0085-Pass-x-hex-hex-straight-through-unmolested.patch @@ -1,7 +1,7 @@ From 0d54ed89090fc1bdcb75de474024b2b81dbf644f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 1 Oct 2012 13:24:37 -0400 -Subject: [PATCH 085/229] Pass "\x[[:hex:]][[:hex:]]" straight through +Subject: [PATCH 085/236] Pass "\x[[:hex:]][[:hex:]]" straight through unmolested. --- diff --git a/0086-Add-X-option-to-printf-functions.patch b/0086-Add-X-option-to-printf-functions.patch index 509f64c4..cd78e748 100644 --- a/0086-Add-X-option-to-printf-functions.patch +++ b/0086-Add-X-option-to-printf-functions.patch @@ -1,7 +1,7 @@ From 6237b1688124d6a72250b296e758ef2d59fde26f Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 27 Nov 2012 16:58:39 -0200 -Subject: [PATCH 086/229] Add %X option to printf functions. +Subject: [PATCH 086/236] Add %X option to printf functions. --- grub-core/kern/misc.c | 7 +++++-- diff --git a/0087-Search-for-specific-config-file-for-netboot.patch b/0087-Search-for-specific-config-file-for-netboot.patch index e7ab73f7..37c18999 100644 --- a/0087-Search-for-specific-config-file-for-netboot.patch +++ b/0087-Search-for-specific-config-file-for-netboot.patch @@ -1,7 +1,7 @@ From 9491cbfdab951e38f096bd9705a76b382f54c9be Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 27 Nov 2012 17:22:07 -0200 -Subject: [PATCH 087/229] Search for specific config file for netboot +Subject: [PATCH 087/236] Search for specific config file for netboot This patch implements a search for a specific configuration when the config file is on a remoteserver. It uses the following order: diff --git a/0088-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch b/0088-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch index e5a5d89a..5cd902ca 100644 --- a/0088-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch +++ b/0088-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch @@ -1,7 +1,7 @@ From 5fcdebdc36cc84c772754b7f5bdb87aed2b42853 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Tue, 22 Jan 2013 06:31:38 +0100 -Subject: [PATCH 088/229] blscfg: add blscfg module to parse Boot Loader +Subject: [PATCH 088/236] blscfg: add blscfg module to parse Boot Loader Specification snippets http://www.freedesktop.org/wiki/Specifications/BootLoaderSpec diff --git a/0089-Don-t-write-messages-to-the-screen.patch b/0089-Don-t-write-messages-to-the-screen.patch index 72ea97d5..d3c0e62f 100644 --- a/0089-Don-t-write-messages-to-the-screen.patch +++ b/0089-Don-t-write-messages-to-the-screen.patch @@ -1,7 +1,7 @@ From fc390be631e93744c6a3a2f42849c9edf2614a36 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 13:30:20 -0400 -Subject: [PATCH 089/229] Don't write messages to the screen +Subject: [PATCH 089/236] Don't write messages to the screen Writing messages to the screen before the menus or boot splash happens so quickly it looks like something is wrong and isn't diff --git a/0090-Don-t-print-GNU-GRUB-header.patch b/0090-Don-t-print-GNU-GRUB-header.patch index 8f6b4def..f286c6ec 100644 --- a/0090-Don-t-print-GNU-GRUB-header.patch +++ b/0090-Don-t-print-GNU-GRUB-header.patch @@ -1,7 +1,7 @@ From 806c26ae73bc86e305c39c955d86480fad8985df Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 13:53:48 -0400 -Subject: [PATCH 090/229] Don't print GNU GRUB header +Subject: [PATCH 090/236] Don't print GNU GRUB header No one cares. --- diff --git a/0091-Don-t-add-to-highlighted-row.patch b/0091-Don-t-add-to-highlighted-row.patch index 5e000998..eb17abd1 100644 --- a/0091-Don-t-add-to-highlighted-row.patch +++ b/0091-Don-t-add-to-highlighted-row.patch @@ -1,7 +1,7 @@ From 5ae2484f263365351a2891be6c056eeb96b3924b Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 17:49:45 -0400 -Subject: [PATCH 091/229] Don't add '*' to highlighted row +Subject: [PATCH 091/236] Don't add '*' to highlighted row It is already highlighted. --- diff --git a/0092-Message-string-cleanups.patch b/0092-Message-string-cleanups.patch index 7f5efb13..91696add 100644 --- a/0092-Message-string-cleanups.patch +++ b/0092-Message-string-cleanups.patch @@ -1,7 +1,7 @@ From 622b238ecb927d331dc38083584a7323013b5f21 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 11:09:04 -0400 -Subject: [PATCH 092/229] Message string cleanups +Subject: [PATCH 092/236] Message string cleanups Make use of terminology consistent. Remove jargon. --- diff --git a/0093-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch b/0093-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch index 4f4ad24a..5ef00a78 100644 --- a/0093-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch +++ b/0093-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch @@ -1,7 +1,7 @@ From c7dac08ab344638afabf579e03bedfac729e1944 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:08:23 -0400 -Subject: [PATCH 093/229] Fix border spacing now that we aren't displaying it +Subject: [PATCH 093/236] Fix border spacing now that we aren't displaying it --- grub-core/normal/menu_text.c | 6 +++--- diff --git a/0094-Use-the-correct-indentation-for-the-term-help-text.patch b/0094-Use-the-correct-indentation-for-the-term-help-text.patch index f9f92124..a5a79889 100644 --- a/0094-Use-the-correct-indentation-for-the-term-help-text.patch +++ b/0094-Use-the-correct-indentation-for-the-term-help-text.patch @@ -1,7 +1,7 @@ From 8a59d6c44d946eac70ecbb7a9418c5d6801add8b Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:08:49 -0400 -Subject: [PATCH 094/229] Use the correct indentation for the term help text +Subject: [PATCH 094/236] Use the correct indentation for the term help text That is consistent with the menu help text --- diff --git a/0095-Indent-menu-entries.patch b/0095-Indent-menu-entries.patch index 7d28cd59..6eabf8f6 100644 --- a/0095-Indent-menu-entries.patch +++ b/0095-Indent-menu-entries.patch @@ -1,7 +1,7 @@ From 018439ecfda2bc5049ccbfb0d6ab7fa047411a3b Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:30:55 -0400 -Subject: [PATCH 095/229] Indent menu entries +Subject: [PATCH 095/236] Indent menu entries --- grub-core/normal/menu_text.c | 3 ++- diff --git a/0096-Fix-margins.patch b/0096-Fix-margins.patch index 328bdf78..9cc0cac4 100644 --- a/0096-Fix-margins.patch +++ b/0096-Fix-margins.patch @@ -1,7 +1,7 @@ From 33481aa0e7897465ffd386101d6f3eda6e3bbac0 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:59:36 -0400 -Subject: [PATCH 096/229] Fix margins +Subject: [PATCH 096/236] Fix margins --- grub-core/normal/menu_text.c | 8 +++----- diff --git a/0097-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch b/0097-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch index c7ca16e5..fb6896d4 100644 --- a/0097-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch +++ b/0097-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch @@ -1,7 +1,7 @@ From ea032bd4a6cb66929da61477b1759e136c975189 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 21 Jun 2013 14:44:08 -0400 -Subject: [PATCH 097/229] Use -2 instead of -1 for our right-hand margin, so +Subject: [PATCH 097/236] Use -2 instead of -1 for our right-hand margin, so linewrapping works (#976643). Signed-off-by: Peter Jones diff --git a/0098-Use-linux16-when-appropriate-880840.patch b/0098-Use-linux16-when-appropriate-880840.patch index 638f0956..4eb996cd 100644 --- a/0098-Use-linux16-when-appropriate-880840.patch +++ b/0098-Use-linux16-when-appropriate-880840.patch @@ -1,7 +1,7 @@ From 8e1957d59e7e72850cbac7e779ddf22ca23c250d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 28 Oct 2013 10:05:07 -0400 -Subject: [PATCH 098/229] Use linux16 when appropriate (#880840) +Subject: [PATCH 098/236] Use linux16 when appropriate (#880840) The kernel group really would prefer that we use the 16 bit entry point on x86 bios machines. diff --git a/0099-Enable-pager-by-default.-985860.patch b/0099-Enable-pager-by-default.-985860.patch index 1e57fed6..6d59efed 100644 --- a/0099-Enable-pager-by-default.-985860.patch +++ b/0099-Enable-pager-by-default.-985860.patch @@ -1,7 +1,7 @@ From 7466f51a0012ebdd8be07cfc0e63d50e0e79560d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 28 Oct 2013 10:09:27 -0400 -Subject: [PATCH 099/229] Enable pager by default. (#985860) +Subject: [PATCH 099/236] Enable pager by default. (#985860) Signed-off-by: Peter Jones --- diff --git a/0100-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch b/0100-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch index 166f3d6f..0fb647dd 100644 --- a/0100-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch +++ b/0100-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch @@ -1,7 +1,7 @@ From 7a97d9621a145cbd04111970fea04c34433f900c Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 28 Oct 2013 10:13:27 -0400 -Subject: [PATCH 100/229] F10 doesn't work on serial, so don't tell the user to +Subject: [PATCH 100/236] F10 doesn't work on serial, so don't tell the user to hit it (#987443) Signed-off-by: Peter Jones diff --git a/0101-Don-t-say-GNU-Linux-in-generated-menus.patch b/0101-Don-t-say-GNU-Linux-in-generated-menus.patch index a8570cc6..48f6eb3d 100644 --- a/0101-Don-t-say-GNU-Linux-in-generated-menus.patch +++ b/0101-Don-t-say-GNU-Linux-in-generated-menus.patch @@ -1,7 +1,7 @@ From 45877a77f50eecd0b7fd3ba1aec0d4398a3b6a20 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 14 Mar 2011 14:27:42 -0400 -Subject: [PATCH 101/229] Don't say "GNU/Linux" in generated menus. +Subject: [PATCH 101/236] Don't say "GNU/Linux" in generated menus. --- util/grub.d/10_linux.in | 4 ++-- diff --git a/0102-Don-t-draw-a-border-around-the-menu.patch b/0102-Don-t-draw-a-border-around-the-menu.patch index efc478b3..ecd7db1e 100644 --- a/0102-Don-t-draw-a-border-around-the-menu.patch +++ b/0102-Don-t-draw-a-border-around-the-menu.patch @@ -1,7 +1,7 @@ From c28a3053e96859000df5ff1d48c9a560d47c0470 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 16:47:33 -0400 -Subject: [PATCH 102/229] Don't draw a border around the menu +Subject: [PATCH 102/236] Don't draw a border around the menu It looks cleaner without it. --- diff --git a/0103-Use-the-standard-margin-for-the-timeout-string.patch b/0103-Use-the-standard-margin-for-the-timeout-string.patch index 145fd403..394a4c97 100644 --- a/0103-Use-the-standard-margin-for-the-timeout-string.patch +++ b/0103-Use-the-standard-margin-for-the-timeout-string.patch @@ -1,7 +1,7 @@ From 93018f5d1727eb58dead129f150a36080c22530a Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 10:52:32 -0400 -Subject: [PATCH 103/229] Use the standard margin for the timeout string +Subject: [PATCH 103/236] Use the standard margin for the timeout string So that it aligns with the other messages --- diff --git a/0104-Add-.eh_frame-to-list-of-relocations-stripped.patch b/0104-Add-.eh_frame-to-list-of-relocations-stripped.patch index 47ab730a..e43b17e6 100644 --- a/0104-Add-.eh_frame-to-list-of-relocations-stripped.patch +++ b/0104-Add-.eh_frame-to-list-of-relocations-stripped.patch @@ -1,7 +1,7 @@ From c626121f38adf6fcd39a5f69249c650b4b52c10d Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Mon, 13 Jan 2014 21:50:59 -0500 -Subject: [PATCH 104/229] Add .eh_frame to list of relocations stripped +Subject: [PATCH 104/236] Add .eh_frame to list of relocations stripped --- conf/Makefile.common | 2 +- diff --git a/0105-Make-10_linux-work-with-our-changes-for-linux16-and-.patch b/0105-Make-10_linux-work-with-our-changes-for-linux16-and-.patch index e8384597..98cf96cf 100644 --- a/0105-Make-10_linux-work-with-our-changes-for-linux16-and-.patch +++ b/0105-Make-10_linux-work-with-our-changes-for-linux16-and-.patch @@ -1,7 +1,7 @@ From 59275c83e7a303c63379d37ba21aa39a3c3b7203 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jan 2014 13:12:23 -0500 -Subject: [PATCH 105/229] Make 10_linux work with our changes for linux16 and +Subject: [PATCH 105/236] Make 10_linux work with our changes for linux16 and linuxefi on aarch64 Signed-off-by: Peter Jones diff --git a/0106-Don-t-print-during-fdt-loading-method.patch b/0106-Don-t-print-during-fdt-loading-method.patch index 4e72e0e8..5f1e37e9 100644 --- a/0106-Don-t-print-during-fdt-loading-method.patch +++ b/0106-Don-t-print-during-fdt-loading-method.patch @@ -1,7 +1,7 @@ From aedf2aceb354ab7bf28bbf70d0a4b505c0adcfdf Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jan 2014 16:15:46 -0500 -Subject: [PATCH 106/229] Don't print during fdt loading method. +Subject: [PATCH 106/236] Don't print during fdt loading method. Signed-off-by: Peter Jones --- diff --git a/0107-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch b/0107-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch index 473a760f..f2e3adbf 100644 --- a/0107-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch +++ b/0107-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch @@ -1,7 +1,7 @@ From f2790b1f7c8efcd5589c8fcdaca51b548ab9825c Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Mon, 30 Jun 2014 14:16:46 -0400 -Subject: [PATCH 107/229] Don't munge raw spaces when we're doing our cmdline +Subject: [PATCH 107/236] Don't munge raw spaces when we're doing our cmdline escaping (#923374) Signed-off-by: Peter Jones diff --git a/0108-Don-t-require-a-password-to-boot-entries-generated-b.patch b/0108-Don-t-require-a-password-to-boot-entries-generated-b.patch index a06a7f4c..2c28026e 100644 --- a/0108-Don-t-require-a-password-to-boot-entries-generated-b.patch +++ b/0108-Don-t-require-a-password-to-boot-entries-generated-b.patch @@ -1,7 +1,7 @@ From 205a7844bea4d849dc24f24b5fc96f6040d5e2b9 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 11 Feb 2014 11:14:50 -0500 -Subject: [PATCH 108/229] Don't require a password to boot entries generated by +Subject: [PATCH 108/236] Don't require a password to boot entries generated by grub-mkconfig. When we set a password, we just want that to mean you can't /edit/ an entry. diff --git a/0109-Don-t-emit-Booting-.-message.patch b/0109-Don-t-emit-Booting-.-message.patch index f4a88b43..c212a591 100644 --- a/0109-Don-t-emit-Booting-.-message.patch +++ b/0109-Don-t-emit-Booting-.-message.patch @@ -1,7 +1,7 @@ From c986c38f790881be0b9c5b0acd8d3b106412a5f1 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 18 Feb 2014 09:37:49 -0500 -Subject: [PATCH 109/229] Don't emit "Booting ..." message. +Subject: [PATCH 109/236] Don't emit "Booting ..." message. UI team still hates this stuff, so we're disabling it for RHEL 7. diff --git a/0110-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch b/0110-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch index e917af57..fedc06a2 100644 --- a/0110-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch +++ b/0110-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch @@ -1,7 +1,7 @@ From dcf3b9c590f00e33f773de68ac4ebd55ca4f6e90 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 4 Mar 2014 11:00:23 -0500 -Subject: [PATCH 110/229] Replace a lot of man pages with slightly nicer ones. +Subject: [PATCH 110/236] Replace a lot of man pages with slightly nicer ones. Replace a bunch of machine generated ones with ones that look nicer. --- diff --git a/0111-use-fw_path-prefix-when-fallback-searching-for-grub-.patch b/0111-use-fw_path-prefix-when-fallback-searching-for-grub-.patch index 8f81155a..36684828 100644 --- a/0111-use-fw_path-prefix-when-fallback-searching-for-grub-.patch +++ b/0111-use-fw_path-prefix-when-fallback-searching-for-grub-.patch @@ -1,7 +1,7 @@ From 24865a88781aef2a6a54433b5b383219108f54fa Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Wed, 19 Feb 2014 15:58:43 -0500 -Subject: [PATCH 111/229] use fw_path prefix when fallback searching for grub +Subject: [PATCH 111/236] use fw_path prefix when fallback searching for grub config When PXE booting via UEFI firmware, grub was searching for grub.cfg diff --git a/0112-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch b/0112-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch index ae06df75..99830489 100644 --- a/0112-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch +++ b/0112-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch @@ -1,7 +1,7 @@ From d4cd9aa8695ab9448da41f756553beb75bffee46 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 6 Mar 2014 11:51:33 -0500 -Subject: [PATCH 112/229] Try mac/guid/etc before grub.cfg on tftp config +Subject: [PATCH 112/236] Try mac/guid/etc before grub.cfg on tftp config files. Signed-off-by: Peter Jones diff --git a/0113-Fix-convert-function-to-support-NVMe-devices.patch b/0113-Fix-convert-function-to-support-NVMe-devices.patch index e02750dc..cb994c8d 100644 --- a/0113-Fix-convert-function-to-support-NVMe-devices.patch +++ b/0113-Fix-convert-function-to-support-NVMe-devices.patch @@ -1,7 +1,7 @@ From 397f179c26aeddf3fe452c62aa404459889835fc Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 18 Feb 2014 11:34:00 -0500 -Subject: [PATCH 113/229] Fix convert function to support NVMe devices +Subject: [PATCH 113/236] Fix convert function to support NVMe devices This is adapted from the patch at https://bugzilla.redhat.com/show_bug.cgi?id=1019660 , which is against diff --git a/0114-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch b/0114-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch index 895af390..b1fc0c33 100644 --- a/0114-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch +++ b/0114-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch @@ -1,7 +1,7 @@ From 4291f418c3304f0f379467e87ce5892853cc16c7 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Mon, 10 Feb 2014 16:13:10 -0500 -Subject: [PATCH 114/229] Switch to use APM Mustang device tree, for hardware +Subject: [PATCH 114/236] Switch to use APM Mustang device tree, for hardware testing. Signed-off-by: David A. Marlin diff --git a/0115-Use-the-default-device-tree-from-the-grub-default-fi.patch b/0115-Use-the-default-device-tree-from-the-grub-default-fi.patch index 369f53e3..c62481f5 100644 --- a/0115-Use-the-default-device-tree-from-the-grub-default-fi.patch +++ b/0115-Use-the-default-device-tree-from-the-grub-default-fi.patch @@ -1,7 +1,7 @@ From 5111bdda0d0a21ab02f6c9aa441a32cd02c6bc3f Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Wed, 12 Feb 2014 14:54:04 -0500 -Subject: [PATCH 115/229] Use the default device tree from the grub default +Subject: [PATCH 115/236] Use the default device tree from the grub default file instead of hardcoding a value. diff --git a/0116-reopen-SNP-protocol-for-exclusive-use-by-grub.patch b/0116-reopen-SNP-protocol-for-exclusive-use-by-grub.patch index 5e0867aa..c23e830c 100644 --- a/0116-reopen-SNP-protocol-for-exclusive-use-by-grub.patch +++ b/0116-reopen-SNP-protocol-for-exclusive-use-by-grub.patch @@ -1,7 +1,7 @@ From 0ff5bf3deefdb17dbadb51a11acc50b96e2ed797 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Sat, 15 Feb 2014 15:10:22 -0500 -Subject: [PATCH 116/229] reopen SNP protocol for exclusive use by grub +Subject: [PATCH 116/236] reopen SNP protocol for exclusive use by grub --- grub-core/net/drivers/efi/efinet.c | 16 ++++++++++++++++ diff --git a/0117-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch b/0117-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch index 980c3318..ddf26b55 100644 --- a/0117-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch +++ b/0117-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch @@ -1,7 +1,7 @@ From 58fba65b7e339d4c7279e4ca88937d9501275169 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 4 Mar 2016 15:13:59 -0500 -Subject: [PATCH 117/229] Revert "reopen SNP protocol for exclusive use by +Subject: [PATCH 117/236] Revert "reopen SNP protocol for exclusive use by grub" This reverts commit a3f2c756ce34c9666bddef35e3b3b85ccecdcffc , which is diff --git a/0118-Add-grub_util_readlink.patch b/0118-Add-grub_util_readlink.patch index 2d638177..a6224268 100644 --- a/0118-Add-grub_util_readlink.patch +++ b/0118-Add-grub_util_readlink.patch @@ -1,7 +1,7 @@ From 76baa996f73eea47f7bdc41461efeee204626e2d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 3 Sep 2014 10:01:03 -0400 -Subject: [PATCH 118/229] Add grub_util_readlink() +Subject: [PATCH 118/236] Add grub_util_readlink() Add grub_util_readlink(). This requires pulling in stat and readlink from gnulib, which pulls in stat and related headers, but after that the diff --git a/0119-Make-editenv-chase-symlinks-including-those-across-d.patch b/0119-Make-editenv-chase-symlinks-including-those-across-d.patch index 7d2c4e8e..63d26a84 100644 --- a/0119-Make-editenv-chase-symlinks-including-those-across-d.patch +++ b/0119-Make-editenv-chase-symlinks-including-those-across-d.patch @@ -1,7 +1,7 @@ From fd1a89c8bef603ec33937f122ae25013a724601a Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 3 Sep 2014 10:38:00 -0400 -Subject: [PATCH 119/229] Make editenv chase symlinks including those across +Subject: [PATCH 119/236] Make editenv chase symlinks including those across devices. This lets us make /boot/grub2/grubenv a symlink to diff --git a/0120-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch b/0120-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch index 9c6a74b1..e373cf19 100644 --- a/0120-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch +++ b/0120-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch @@ -1,7 +1,7 @@ From c8d93b9e27e9cbf51e91f6cc99abbcb7b68189ce Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Sep 2014 14:23:23 -0400 -Subject: [PATCH 120/229] Generate OS and CLASS in 10_linux from +Subject: [PATCH 120/236] Generate OS and CLASS in 10_linux from /etc/os-release This makes us use pretty names in the titles we generate in diff --git a/0121-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch b/0121-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch index b205bd50..2bd5c701 100644 --- a/0121-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch +++ b/0121-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch @@ -1,7 +1,7 @@ From 974241c42b03f3ccb6a5d0eb453283e370da9848 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Sep 2014 15:52:08 -0400 -Subject: [PATCH 121/229] Minimize the sort ordering for .debug and -rescue- +Subject: [PATCH 121/236] Minimize the sort ordering for .debug and -rescue- kernels. Resolves: rhbz#1065360 diff --git a/0122-Load-arm-with-SB-enabled.patch b/0122-Load-arm-with-SB-enabled.patch index 5098fc8c..ecb67903 100644 --- a/0122-Load-arm-with-SB-enabled.patch +++ b/0122-Load-arm-with-SB-enabled.patch @@ -1,7 +1,7 @@ From edfc2b0952b1eacf95188e53167cc038e5ea0129 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 18 Sep 2014 11:26:14 -0400 -Subject: [PATCH 122/229] Load arm with SB enabled. +Subject: [PATCH 122/236] Load arm with SB enabled. Make sure we actually try to validate secure boot on this platform (even though we're not shipping it enabled by default.) diff --git a/0123-Try-prefix-if-fw_path-doesn-t-work.patch b/0123-Try-prefix-if-fw_path-doesn-t-work.patch index 2858ee72..9e7e9efc 100644 --- a/0123-Try-prefix-if-fw_path-doesn-t-work.patch +++ b/0123-Try-prefix-if-fw_path-doesn-t-work.patch @@ -1,7 +1,7 @@ From 3846b040f1050f246e1e975ee88f22c687ae04bf Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 3 Oct 2014 11:08:03 -0400 -Subject: [PATCH 123/229] Try $prefix if $fw_path doesn't work. +Subject: [PATCH 123/236] Try $prefix if $fw_path doesn't work. Related: rhbz#1148652 diff --git a/0124-Update-info-with-grub.cfg-netboot-selection-order-11.patch b/0124-Update-info-with-grub.cfg-netboot-selection-order-11.patch index 6abecb0b..610ba96b 100644 --- a/0124-Update-info-with-grub.cfg-netboot-selection-order-11.patch +++ b/0124-Update-info-with-grub.cfg-netboot-selection-order-11.patch @@ -1,7 +1,7 @@ From d4b4184078610a3639fa1e0e463679c424496c3b Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Mon, 16 Mar 2015 16:34:51 -0400 -Subject: [PATCH 124/229] Update info with grub.cfg netboot selection order +Subject: [PATCH 124/236] Update info with grub.cfg netboot selection order (#1148650) Added documentation to the grub info page that specifies the order diff --git a/0125-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch b/0125-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch index acd8bcc4..03a46dc0 100644 --- a/0125-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch +++ b/0125-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch @@ -1,7 +1,7 @@ From ce125cafc1e94bf70f2a3dbb545960bd8dd23a2f Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Mon, 16 Mar 2015 14:14:19 -0400 -Subject: [PATCH 125/229] Use Distribution Package Sort for grub2-mkconfig +Subject: [PATCH 125/236] Use Distribution Package Sort for grub2-mkconfig (#1124074) Users reported that newly installed kernels on their systems installed diff --git a/0126-Handle-rssd-storage-devices.patch b/0126-Handle-rssd-storage-devices.patch index 0a9974da..37abc8b1 100644 --- a/0126-Handle-rssd-storage-devices.patch +++ b/0126-Handle-rssd-storage-devices.patch @@ -1,7 +1,7 @@ From 1956a2192ac0a8421ee83bf77fdf223f2be0bdfb Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 30 Jun 2015 15:50:41 -0400 -Subject: [PATCH 126/229] Handle rssd storage devices. +Subject: [PATCH 126/236] Handle rssd storage devices. Resolves: rhbz#1087962 diff --git a/0127-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch b/0127-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch index 7b4f97bc..fc69d192 100644 --- a/0127-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch +++ b/0127-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch @@ -1,7 +1,7 @@ From 5f89c77c7cff17c931f1ea52af0c39df8ab28ac9 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 27 Oct 2014 09:22:55 -0400 -Subject: [PATCH 127/229] Try to emit linux16/initrd16 and linuxefi/initrdefi +Subject: [PATCH 127/236] Try to emit linux16/initrd16 and linuxefi/initrdefi in 30-os_prober. Resolves: rhbz#1108296 diff --git a/0128-Make-grub2-mkconfig-construct-titles-that-look-like-.patch b/0128-Make-grub2-mkconfig-construct-titles-that-look-like-.patch index c31f686e..55d109bd 100644 --- a/0128-Make-grub2-mkconfig-construct-titles-that-look-like-.patch +++ b/0128-Make-grub2-mkconfig-construct-titles-that-look-like-.patch @@ -1,7 +1,7 @@ From c7ae420d095ccec20481c25b14773ab2fce658b5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 28 Apr 2015 11:15:03 -0400 -Subject: [PATCH 128/229] Make grub2-mkconfig construct titles that look like +Subject: [PATCH 128/236] Make grub2-mkconfig construct titles that look like the ones we want elsewhere. Resolves: rhbz#1215839 diff --git a/0129-Add-friendly-grub2-password-config-tool-985962.patch b/0129-Add-friendly-grub2-password-config-tool-985962.patch index 08d89e0b..c3f42408 100644 --- a/0129-Add-friendly-grub2-password-config-tool-985962.patch +++ b/0129-Add-friendly-grub2-password-config-tool-985962.patch @@ -1,7 +1,7 @@ From 68f21f5ebebc23a6d8512631f2a1d474afcccd43 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Thu, 25 Jun 2015 11:13:11 -0400 -Subject: [PATCH 129/229] Add friendly grub2 password config tool (#985962) +Subject: [PATCH 129/236] Add friendly grub2 password config tool (#985962) Provided a tool for users to reset the grub2 root user password without having to alter the grub.cfg. The hashed password now diff --git a/0130-Make-grub2-mkconfig-construct-titles-that-look-like-.patch b/0130-Make-grub2-mkconfig-construct-titles-that-look-like-.patch index 7bdceefb..723d8899 100644 --- a/0130-Make-grub2-mkconfig-construct-titles-that-look-like-.patch +++ b/0130-Make-grub2-mkconfig-construct-titles-that-look-like-.patch @@ -1,7 +1,7 @@ From 7a7644507e4d953ea8f8d1d7133622a72a2168f5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 28 Apr 2015 11:15:03 -0400 -Subject: [PATCH 130/229] Make grub2-mkconfig construct titles that look like +Subject: [PATCH 130/236] Make grub2-mkconfig construct titles that look like the ones we want elsewhere. Resolves: rhbz#1215839 diff --git a/0131-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch b/0131-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch index 674271b9..f54ae776 100644 --- a/0131-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch +++ b/0131-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch @@ -1,7 +1,7 @@ From 6f892038567f1706fdde819f5f226ec4cacbea47 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 3 Aug 2015 11:46:42 -0400 -Subject: [PATCH 131/229] Try to make sure configure.ac and grub-rpm-sort play +Subject: [PATCH 131/236] Try to make sure configure.ac and grub-rpm-sort play nice. Apparently the test for whether to use grub-rpm-sort and also the diff --git a/0132-tcp-add-window-scaling-support.patch b/0132-tcp-add-window-scaling-support.patch index b4bbf280..83c2d0a3 100644 --- a/0132-tcp-add-window-scaling-support.patch +++ b/0132-tcp-add-window-scaling-support.patch @@ -1,7 +1,7 @@ From 71e31c279c07f9f51f2a482b70b40b7deed69a69 Mon Sep 17 00:00:00 2001 From: Josef Bacik Date: Wed, 12 Aug 2015 08:57:55 -0700 -Subject: [PATCH 132/229] tcp: add window scaling support +Subject: [PATCH 132/236] tcp: add window scaling support Sometimes we have to provision boxes across regions, such as California to Sweden. The http server has a 10 minute timeout, so if we can't get our 250mb diff --git a/0133-efinet-retransmit-if-our-device-is-busy.patch b/0133-efinet-retransmit-if-our-device-is-busy.patch index 036974a3..54dfd3a7 100644 --- a/0133-efinet-retransmit-if-our-device-is-busy.patch +++ b/0133-efinet-retransmit-if-our-device-is-busy.patch @@ -1,7 +1,7 @@ From d09f32622f6fc247dd88f731c34be10395785d8d Mon Sep 17 00:00:00 2001 From: Josef Bacik Date: Mon, 31 Aug 2015 13:34:35 -0400 -Subject: [PATCH 133/229] efinet: retransmit if our device is busy +Subject: [PATCH 133/236] efinet: retransmit if our device is busy When I fixed the txbuf handling I ripped out the retransmission code since it was flooding our network when we had the buggy behavior. Turns out this was too diff --git a/0134-Be-more-aggro-about-actually-using-the-configured-ne.patch b/0134-Be-more-aggro-about-actually-using-the-configured-ne.patch index 681afdc9..ea5756c0 100644 --- a/0134-Be-more-aggro-about-actually-using-the-configured-ne.patch +++ b/0134-Be-more-aggro-about-actually-using-the-configured-ne.patch @@ -1,7 +1,7 @@ From 8ece44c2c8f88f531ac9a679f65a263e7b6d2dba Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 11 Sep 2015 17:30:49 -0400 -Subject: [PATCH 134/229] Be more aggro about actually using the *configured* +Subject: [PATCH 134/236] Be more aggro about actually using the *configured* network device. Right now we use any SNP device with the same mac+IP block, but when diff --git a/0135-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch b/0135-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch index 3856b148..90627486 100644 --- a/0135-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch +++ b/0135-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch @@ -1,7 +1,7 @@ From 82b9fdcbbc339c36842c625203fc2b1f22a86c9e Mon Sep 17 00:00:00 2001 From: RHEL Ninjas Date: Fri, 25 Sep 2015 16:24:23 +0900 -Subject: [PATCH 135/229] efinet: add filter for the first exclusive reopen of +Subject: [PATCH 135/236] efinet: add filter for the first exclusive reopen of SNP --- diff --git a/0136-Fix-security-issue-when-reading-username-and-passwor.patch b/0136-Fix-security-issue-when-reading-username-and-passwor.patch index ca7f4c58..c78a3ab0 100644 --- a/0136-Fix-security-issue-when-reading-username-and-passwor.patch +++ b/0136-Fix-security-issue-when-reading-username-and-passwor.patch @@ -1,7 +1,7 @@ From 9961e63642244617b697d93bbc49379e23b6839d Mon Sep 17 00:00:00 2001 From: Hector Marco-Gisbert Date: Fri, 13 Nov 2015 16:21:09 +0100 -Subject: [PATCH 136/229] Fix security issue when reading username and password +Subject: [PATCH 136/236] Fix security issue when reading username and password This patch fixes two integer underflows at: * grub-core/lib/crypto.c diff --git a/0137-Warn-if-grub-password-will-not-be-read-1290803.patch b/0137-Warn-if-grub-password-will-not-be-read-1290803.patch index ffc3fea1..816bf4fd 100644 --- a/0137-Warn-if-grub-password-will-not-be-read-1290803.patch +++ b/0137-Warn-if-grub-password-will-not-be-read-1290803.patch @@ -1,7 +1,7 @@ From 056a956aea898f9d3ee34ecad9660addc3f3108c Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Mon, 22 Feb 2016 15:30:05 -0500 -Subject: [PATCH 137/229] Warn if grub password will not be read (#1290803) +Subject: [PATCH 137/236] Warn if grub password will not be read (#1290803) It is possible for a system to have never run grub-mkconfig and add the section that reads the user.cfg file which contains a user set GRUB diff --git a/0138-Clean-up-grub-setpassword-documentation-1290799.patch b/0138-Clean-up-grub-setpassword-documentation-1290799.patch index d9c0b607..21ccdba1 100644 --- a/0138-Clean-up-grub-setpassword-documentation-1290799.patch +++ b/0138-Clean-up-grub-setpassword-documentation-1290799.patch @@ -1,7 +1,7 @@ From 92af2b24adb7371d8234c0b32ae716adf0b80d42 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Tue, 26 Jan 2016 10:28:35 -0500 -Subject: [PATCH 138/229] Clean up grub-setpassword documentation (#1290799) +Subject: [PATCH 138/236] Clean up grub-setpassword documentation (#1290799) The output for --help had some errors. Corrected those and polished the text to be a little easier to follow. Carried verbage over to man page diff --git a/0139-Fix-locale-issue-in-grub-setpassword-1294243.patch b/0139-Fix-locale-issue-in-grub-setpassword-1294243.patch index a8b02e81..c836821e 100644 --- a/0139-Fix-locale-issue-in-grub-setpassword-1294243.patch +++ b/0139-Fix-locale-issue-in-grub-setpassword-1294243.patch @@ -1,7 +1,7 @@ From 373adc50cf9f09015e40ffd1bf79ab9f291f4fc2 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Fri, 29 Jan 2016 16:56:11 -0500 -Subject: [PATCH 139/229] Fix locale issue in grub-setpassword (#1294243) +Subject: [PATCH 139/236] Fix locale issue in grub-setpassword (#1294243) A shell substitution was expecting non-translated output to grab the hashed password and put it in the user.cfg file. Modified code to force diff --git a/0140-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch b/0140-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch index 90a626fb..5055b9b8 100644 --- a/0140-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch +++ b/0140-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch @@ -1,7 +1,7 @@ From eab0520310030376f6295e0338e874bce10b0d5f Mon Sep 17 00:00:00 2001 From: Robert Elliott Date: Fri, 22 Jan 2016 13:32:30 +0100 -Subject: [PATCH 140/229] efiemu: Handle persistent RAM and unknown possible +Subject: [PATCH 140/236] efiemu: Handle persistent RAM and unknown possible future additions. (cherry picked from commit ae3b83a4d4df75a01198a2fed7542391e7c449e0) diff --git a/0141-efiemu-Fix-compilation-failure.patch b/0141-efiemu-Fix-compilation-failure.patch index ed4eeed3..754ed93c 100644 --- a/0141-efiemu-Fix-compilation-failure.patch +++ b/0141-efiemu-Fix-compilation-failure.patch @@ -1,7 +1,7 @@ From 68bdf29eb6e376a3b4a817bbe7481efd12b8f9de Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Fri, 22 Jan 2016 14:10:30 +0100 -Subject: [PATCH 141/229] efiemu: Fix compilation failure +Subject: [PATCH 141/236] efiemu: Fix compilation failure (cherry picked from commit b6a03dfd327489d53ee07c6d7d593b99c7b7cb62) diff --git a/0142-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch b/0142-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch index f85c24f0..6ad06201 100644 --- a/0142-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch +++ b/0142-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch @@ -1,7 +1,7 @@ From df19c5ff9c9e716df0383e39992466304053c99d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 7 Apr 2016 10:58:06 -0400 -Subject: [PATCH 142/229] Revert "reopen SNP protocol for exclusive use by +Subject: [PATCH 142/236] Revert "reopen SNP protocol for exclusive use by grub" I *think* this should have been replaced by upstream's diff --git a/0143-Add-a-url-parser.patch b/0143-Add-a-url-parser.patch index 8490a792..5f40b17b 100644 --- a/0143-Add-a-url-parser.patch +++ b/0143-Add-a-url-parser.patch @@ -1,7 +1,7 @@ From 2f84b2e097ad9f6f7f06013f749251743eb32c2e Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jun 2016 16:18:44 -0400 -Subject: [PATCH 143/229] Add a url parser. +Subject: [PATCH 143/236] Add a url parser. This patch adds a url parser that can parse http, https, tftp, and tftps urls, and is easily extensible to handle more types. diff --git a/0144-efinet-and-bootp-add-support-for-dhcpv6.patch b/0144-efinet-and-bootp-add-support-for-dhcpv6.patch index 0c9bc80d..8462d602 100644 --- a/0144-efinet-and-bootp-add-support-for-dhcpv6.patch +++ b/0144-efinet-and-bootp-add-support-for-dhcpv6.patch @@ -1,7 +1,7 @@ From 48768b0295ad4d908cefd8e8fbee96a4dc2765f5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 8 Jun 2016 21:03:37 -0400 -Subject: [PATCH 144/229] efinet and bootp: add support for dhcpv6 +Subject: [PATCH 144/236] efinet and bootp: add support for dhcpv6 Signed-off-by: Peter Jones --- diff --git a/0145-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch b/0145-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch index 8baff525..ee7d5a64 100644 --- a/0145-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch +++ b/0145-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch @@ -1,7 +1,7 @@ From 764506b89942103c3a511d7933edef351fb594b8 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 23 Jun 2016 11:01:39 -0400 -Subject: [PATCH 145/229] Add grub-get-kernel-settings and use it in 10_linux +Subject: [PATCH 145/236] Add grub-get-kernel-settings and use it in 10_linux This patch adds grub-get-kernel-settings, which reads the system kernel installation configuration from /etc/sysconfig/kernel, and outputs diff --git a/0146-Normalize-slashes-in-tftp-paths.patch b/0146-Normalize-slashes-in-tftp-paths.patch index 6d5feb89..ff5228c5 100644 --- a/0146-Normalize-slashes-in-tftp-paths.patch +++ b/0146-Normalize-slashes-in-tftp-paths.patch @@ -1,7 +1,7 @@ From 406402dfaecc62ede346793c9c7a0568dc71c131 Mon Sep 17 00:00:00 2001 From: Lenny Szubowicz Date: Mon, 29 Aug 2016 11:04:48 -0400 -Subject: [PATCH 146/229] Normalize slashes in tftp paths. +Subject: [PATCH 146/236] Normalize slashes in tftp paths. Some tftp servers do not handle multiple consecutive slashes correctly; this patch avoids sending tftp requests with non-normalized paths. diff --git a/0147-Fix-malformed-tftp-packets.patch b/0147-Fix-malformed-tftp-packets.patch index 69056868..c535c87b 100644 --- a/0147-Fix-malformed-tftp-packets.patch +++ b/0147-Fix-malformed-tftp-packets.patch @@ -1,7 +1,7 @@ From 7d05a8298e6a54bfae0038841462443f21da3535 Mon Sep 17 00:00:00 2001 From: Mark Salter Date: Tue, 7 Mar 2017 18:26:17 -0500 -Subject: [PATCH 147/229] Fix malformed tftp packets +Subject: [PATCH 147/236] Fix malformed tftp packets 0088-Normalize-slashes-in-tftp-paths.patch collapses multiple contiguous slashes in a filename into one slash in the tftp packet filename field. diff --git a/0148-Fix-race-in-EFI-validation.patch b/0148-Fix-race-in-EFI-validation.patch index 45ee7955..859674f6 100644 --- a/0148-Fix-race-in-EFI-validation.patch +++ b/0148-Fix-race-in-EFI-validation.patch @@ -1,7 +1,7 @@ From bf59d76ca82eb4eaa20a747f5890d09632ba93d0 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 14 Jul 2015 16:58:51 -0700 -Subject: [PATCH 148/229] Fix race in EFI validation +Subject: [PATCH 148/236] Fix race in EFI validation --- grub-core/loader/i386/efi/linux.c | 44 ++++++++++----------------------------- diff --git a/0149-bz1374141-fix-incorrect-mask-for-ppc64.patch b/0149-bz1374141-fix-incorrect-mask-for-ppc64.patch index 9d81fdbb..1796f3f2 100644 --- a/0149-bz1374141-fix-incorrect-mask-for-ppc64.patch +++ b/0149-bz1374141-fix-incorrect-mask-for-ppc64.patch @@ -1,7 +1,7 @@ From 84a5f535949f590a8976c64c3d1fde08fe0f7464 Mon Sep 17 00:00:00 2001 From: Masahiro Matsuya Date: Sat, 29 Oct 2016 08:35:26 +0900 -Subject: [PATCH 149/229] bz1374141 fix incorrect mask for ppc64 +Subject: [PATCH 149/236] bz1374141 fix incorrect mask for ppc64 The netmask configured in firmware is not respected on ppc64 (big endian). When 255.255.252.0 is set as netmask in firmware, the following is the value of bootpath string in grub_ieee1275_parse_bootpath(). diff --git a/0150-Use-device-part-of-chainloader-target-if-present.patch b/0150-Use-device-part-of-chainloader-target-if-present.patch index 02c9d99a..eedaac18 100644 --- a/0150-Use-device-part-of-chainloader-target-if-present.patch +++ b/0150-Use-device-part-of-chainloader-target-if-present.patch @@ -1,7 +1,7 @@ From d426e20f8b41ebf114075dc4ffbcaf438ceb4b95 Mon Sep 17 00:00:00 2001 From: Raymund Will Date: Fri, 10 Apr 2015 01:45:02 -0400 -Subject: [PATCH 150/229] Use device part of chainloader target, if present. +Subject: [PATCH 150/236] Use device part of chainloader target, if present. Otherwise chainloading is restricted to '$root', which might not even be readable by EFI! diff --git a/0151-Add-secureboot-support-on-efi-chainloader.patch b/0151-Add-secureboot-support-on-efi-chainloader.patch index acf1da40..932d4896 100644 --- a/0151-Add-secureboot-support-on-efi-chainloader.patch +++ b/0151-Add-secureboot-support-on-efi-chainloader.patch @@ -1,7 +1,7 @@ From bbf98517303e438cea398bb74306b6553c880ac3 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 6 Oct 2015 13:04:37 -0400 -Subject: [PATCH 151/229] Add secureboot support on efi chainloader +Subject: [PATCH 151/236] Add secureboot support on efi chainloader Expand the chainloader to be able to verify the image by means of shim lock protocol. The PE/COFF image is loaded and relocated by the diff --git a/0152-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch b/0152-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch index a70fd9d0..19361d6c 100644 --- a/0152-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch +++ b/0152-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch @@ -1,7 +1,7 @@ From 25ea5be888dcc92cd0b3cb7d34b381f5005f1e30 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 6 Oct 2015 16:09:25 -0400 -Subject: [PATCH 152/229] Make any of the loaders that link in efi mode honor +Subject: [PATCH 152/236] Make any of the loaders that link in efi mode honor secure boot. And in this case "honor" means "even if somebody does link this in, they diff --git a/0153-Make-grub_fatal-also-backtrace.patch b/0153-Make-grub_fatal-also-backtrace.patch index b23cad7f..a7606910 100644 --- a/0153-Make-grub_fatal-also-backtrace.patch +++ b/0153-Make-grub_fatal-also-backtrace.patch @@ -1,7 +1,7 @@ From eb1a27144476324a22561383a0a2e61aa327d2f5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 27 Jan 2016 09:22:42 -0500 -Subject: [PATCH 153/229] Make grub_fatal() also backtrace. +Subject: [PATCH 153/236] Make grub_fatal() also backtrace. --- grub-core/Makefile.core.def | 3 ++ diff --git a/0154-Rework-linux-command.patch b/0154-Rework-linux-command.patch index 85706ba1..7cc4016e 100644 --- a/0154-Rework-linux-command.patch +++ b/0154-Rework-linux-command.patch @@ -1,7 +1,7 @@ From 12312bfe1727a2992042436cb0f8c8ba1c69ee2f Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 16:12:39 -0700 -Subject: [PATCH 154/229] Rework linux command +Subject: [PATCH 154/236] Rework linux command We want a single buffer that contains the entire kernel image in order to perform a TPM measurement. Allocate one and copy the entire kernel into it diff --git a/0155-Rework-linux16-command.patch b/0155-Rework-linux16-command.patch index 94c24682..e8e817b9 100644 --- a/0155-Rework-linux16-command.patch +++ b/0155-Rework-linux16-command.patch @@ -1,7 +1,7 @@ From 24250bbb84f8817462426c46b255d875de627bf1 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 16:20:58 -0700 -Subject: [PATCH 155/229] Rework linux16 command +Subject: [PATCH 155/236] Rework linux16 command We want a single buffer that contains the entire kernel image in order to perform a TPM measurement. Allocate one and copy the entire kernel int it diff --git a/0156-Make-grub-editenv-build-again.patch b/0156-Make-grub-editenv-build-again.patch index 386d2aaf..39dceff1 100644 --- a/0156-Make-grub-editenv-build-again.patch +++ b/0156-Make-grub-editenv-build-again.patch @@ -1,7 +1,7 @@ From ebe69b2682b5b3029d8ea503f12134ee81c4b2ce Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 4 Mar 2016 16:29:13 -0500 -Subject: [PATCH 156/229] Make grub-editenv build again. +Subject: [PATCH 156/236] Make grub-editenv build again. 36212460d3565b18439a3a8130b28e6c97702c6a split how some of the mkimage utility functions are defined, and they wind up being linked into diff --git a/0157-Fix-up-some-man-pages-rpmdiff-noticed.patch b/0157-Fix-up-some-man-pages-rpmdiff-noticed.patch index c15b447b..d33fe513 100644 --- a/0157-Fix-up-some-man-pages-rpmdiff-noticed.patch +++ b/0157-Fix-up-some-man-pages-rpmdiff-noticed.patch @@ -1,7 +1,7 @@ From c71e6152ea8e4e525a853441bb5f08808bae3afd Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 23 Sep 2014 09:58:49 -0400 -Subject: [PATCH 157/229] Fix up some man pages rpmdiff noticed. +Subject: [PATCH 157/236] Fix up some man pages rpmdiff noticed. --- configure.ac | 2 ++ diff --git a/0158-Re-work-some-intricacies-of-PE-loading.patch b/0158-Re-work-some-intricacies-of-PE-loading.patch index 73ed8ed4..6046b004 100644 --- a/0158-Re-work-some-intricacies-of-PE-loading.patch +++ b/0158-Re-work-some-intricacies-of-PE-loading.patch @@ -1,7 +1,7 @@ From 145214ee7c411c7d600016f011dc11b213bce0b2 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 9 Jun 2016 12:22:29 -0400 -Subject: [PATCH 158/229] Re-work some intricacies of PE loading. +Subject: [PATCH 158/236] Re-work some intricacies of PE loading. The PE spec is not a well written document, and awesomely every place where there's an ambiguous way to read something, Windows' bootmgfw.efi diff --git a/0159-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch b/0159-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch index d2a9eb0e..dd0c7e9f 100644 --- a/0159-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch +++ b/0159-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch @@ -1,7 +1,7 @@ From ef24bc601e11b96eefe06f477b5da1199d761b3d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 10 Jun 2016 14:06:15 -0400 -Subject: [PATCH 159/229] Rework even more of efi chainload so non-sb cases +Subject: [PATCH 159/236] Rework even more of efi chainload so non-sb cases work right. This ensures that if shim protocol is not loaded, or is loaded but shim diff --git a/0160-linuxefi-fix-double-free-on-verification-failure.patch b/0160-linuxefi-fix-double-free-on-verification-failure.patch index d1a64a4b..dd74a4bd 100644 --- a/0160-linuxefi-fix-double-free-on-verification-failure.patch +++ b/0160-linuxefi-fix-double-free-on-verification-failure.patch @@ -1,7 +1,7 @@ From 5ef3f00e6be3033092453a66f456b8dac8cd4f7c Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jun 2016 09:50:25 -0400 -Subject: [PATCH 160/229] linuxefi: fix double free on verification failure. +Subject: [PATCH 160/236] linuxefi: fix double free on verification failure. Signed-off-by: Peter Jones --- diff --git a/0161-fix-machine-type-test-in-30_os-prober.in.patch b/0161-fix-machine-type-test-in-30_os-prober.in.patch index 1da34ebe..6388f3fc 100644 --- a/0161-fix-machine-type-test-in-30_os-prober.in.patch +++ b/0161-fix-machine-type-test-in-30_os-prober.in.patch @@ -1,7 +1,7 @@ From 4139fdfdb64fd248a0d5f200b27c583159dbb190 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 11 Jul 2016 13:36:45 -0400 -Subject: [PATCH 161/229] fix machine type test in 30_os-prober.in +Subject: [PATCH 161/236] fix machine type test in 30_os-prober.in Signed-off-by: Peter Jones --- diff --git a/0162-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch b/0162-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch index 0b8725f6..92e473eb 100644 --- a/0162-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch +++ b/0162-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch @@ -1,7 +1,7 @@ From 671699a76fa6510a62c3a94acd698a31686cb8fa Mon Sep 17 00:00:00 2001 From: Laszlo Ersek Date: Mon, 21 Nov 2016 15:34:00 +0100 -Subject: [PATCH 162/229] efi/chainloader: fix wrong sanity check in +Subject: [PATCH 162/236] efi/chainloader: fix wrong sanity check in relocate_coff() In relocate_coff(), the relocation entries are parsed from the original diff --git a/0163-efi-chainloader-truncate-overlong-relocation-section.patch b/0163-efi-chainloader-truncate-overlong-relocation-section.patch index 0280868c..cfa95718 100644 --- a/0163-efi-chainloader-truncate-overlong-relocation-section.patch +++ b/0163-efi-chainloader-truncate-overlong-relocation-section.patch @@ -1,7 +1,7 @@ From d081bd5f47235e3bfd256fd262a6f98fe8b0d0ff Mon Sep 17 00:00:00 2001 From: Laszlo Ersek Date: Wed, 23 Nov 2016 06:27:09 +0100 -Subject: [PATCH 163/229] efi/chainloader: truncate overlong relocation section +Subject: [PATCH 163/236] efi/chainloader: truncate overlong relocation section The UEFI Windows 7 boot loader ("EFI/Microsoft/Boot/bootmgfw.efi", SHA1 31b410e029bba87d2068c65a80b88882f9f8ea25) has inconsistent headers. diff --git a/0164-linuxefi-minor-cleanups.patch b/0164-linuxefi-minor-cleanups.patch index 6ead190a..252e466f 100644 --- a/0164-linuxefi-minor-cleanups.patch +++ b/0164-linuxefi-minor-cleanups.patch @@ -1,7 +1,7 @@ From 8dc21ff37f62f3d10fb3d708ffd33b7d723a23cf Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Feb 2017 16:31:52 -0500 -Subject: [PATCH 164/229] linuxefi: minor cleanups +Subject: [PATCH 164/236] linuxefi: minor cleanups Signed-off-by: Peter Jones --- diff --git a/0165-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch b/0165-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch index e246bee7..867f00f3 100644 --- a/0165-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch +++ b/0165-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch @@ -1,7 +1,7 @@ From 10d6d333de0aa7e390a22ebc4b308f7ad937d5bc Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Feb 2017 16:18:54 -0500 -Subject: [PATCH 165/229] Handle multi-arch (64-on-32) boot in linuxefi loader. +Subject: [PATCH 165/236] Handle multi-arch (64-on-32) boot in linuxefi loader. Allow booting 64-bit kernels on 32-bit EFI on x86. diff --git a/0166-Fix-up-linux-params-usage.patch b/0166-Fix-up-linux-params-usage.patch index 1b97ba6a..d0b5d345 100644 --- a/0166-Fix-up-linux-params-usage.patch +++ b/0166-Fix-up-linux-params-usage.patch @@ -1,7 +1,7 @@ From 93be95c27b0ddb63c2e3a287a3ed92c0a5de93e5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 30 May 2017 14:16:07 -0400 -Subject: [PATCH 166/229] Fix up linux params usage... +Subject: [PATCH 166/236] Fix up linux params usage... Signed-off-by: Peter Jones --- diff --git a/0167-Make-exit-take-a-return-code.patch b/0167-Make-exit-take-a-return-code.patch index 1aa10337..0ee42d25 100644 --- a/0167-Make-exit-take-a-return-code.patch +++ b/0167-Make-exit-take-a-return-code.patch @@ -1,7 +1,7 @@ From 6b67d46c1764c86611939dc01267f9c70f413184 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 26 Feb 2014 21:49:12 -0500 -Subject: [PATCH 167/229] Make "exit" take a return code. +Subject: [PATCH 167/236] Make "exit" take a return code. This adds "exit" with a return code. With this patch, any "exit" command /may/ include a return code, and on platforms that support diff --git a/0168-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch b/0168-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch index cd4bf875..b9c38e0f 100644 --- a/0168-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch +++ b/0168-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch @@ -1,7 +1,7 @@ From e48a4c0b9e475b16366ff6c375de5186432eb1f7 Mon Sep 17 00:00:00 2001 From: Mark Salter Date: Mon, 17 Apr 2017 08:44:29 -0400 -Subject: [PATCH 168/229] arm64: make sure fdt has #address-cells and +Subject: [PATCH 168/236] arm64: make sure fdt has #address-cells and #size-cells properties Recent upstream changes to kexec-tools relies on #address-cells diff --git a/0169-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch b/0169-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch index fde73e62..c1a69c19 100644 --- a/0169-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch +++ b/0169-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch @@ -1,7 +1,7 @@ From 755fa5ccf0834abdb7e50a1cb06fad618f6c9af6 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 9 May 2016 14:15:17 -0400 -Subject: [PATCH 169/229] Add some grub_dprintf() in the secure boot verify +Subject: [PATCH 169/236] Add some grub_dprintf() in the secure boot verify code. Signed-off-by: Peter Jones diff --git a/0170-Make-our-info-pages-say-grub2-where-appropriate.patch b/0170-Make-our-info-pages-say-grub2-where-appropriate.patch index 5da9b008..d45aa90b 100644 --- a/0170-Make-our-info-pages-say-grub2-where-appropriate.patch +++ b/0170-Make-our-info-pages-say-grub2-where-appropriate.patch @@ -1,7 +1,7 @@ From 15c340acd845056ba259b9fffd6c7d083874cb82 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 6 May 2016 18:43:08 -0400 -Subject: [PATCH 170/229] Make our info pages say "grub2" where appropriate. +Subject: [PATCH 170/236] Make our info pages say "grub2" where appropriate. This needs to be hooked up to --program-transform=, but I haven't had time. diff --git a/0171-print-more-debug-info-in-our-module-loader.patch b/0171-print-more-debug-info-in-our-module-loader.patch index 54387180..bcedb1b3 100644 --- a/0171-print-more-debug-info-in-our-module-loader.patch +++ b/0171-print-more-debug-info-in-our-module-loader.patch @@ -1,7 +1,7 @@ From 0d0a7ebbed42b97fca63cbcaf85a469b77c76fda Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 1 May 2017 11:19:40 -0400 -Subject: [PATCH 171/229] print more debug info in our module loader. +Subject: [PATCH 171/236] print more debug info in our module loader. Signed-off-by: Peter Jones --- diff --git a/0172-macos-just-build-chainloader-entries-don-t-try-any-x.patch b/0172-macos-just-build-chainloader-entries-don-t-try-any-x.patch index 14189b95..328aff26 100644 --- a/0172-macos-just-build-chainloader-entries-don-t-try-any-x.patch +++ b/0172-macos-just-build-chainloader-entries-don-t-try-any-x.patch @@ -1,7 +1,7 @@ From 4cb6b65d74966dfbe6e8463ee1e88d99ca7de5b1 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 24 May 2017 12:42:32 -0400 -Subject: [PATCH 172/229] macos: just build chainloader entries, don't try any +Subject: [PATCH 172/236] macos: just build chainloader entries, don't try any xnu xnu. Since our bugs tell us that the xnu boot entries really just don't work diff --git a/0173-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch b/0173-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch index bef9d787..6bacc496 100644 --- a/0173-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch +++ b/0173-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch @@ -1,7 +1,7 @@ From 396001716b7f8c7a6aee17f33fdb9e5d47424cbc Mon Sep 17 00:00:00 2001 From: Jeff Mahoney Date: Wed, 18 Dec 2013 09:57:04 +0000 -Subject: [PATCH 173/229] grub2/btrfs: Add ability to boot from subvolumes +Subject: [PATCH 173/236] grub2/btrfs: Add ability to boot from subvolumes This patch adds the ability to specify a different root on a btrfs filesystem too boot from other than the default one. diff --git a/0174-export-btrfs_subvol-and-btrfs_subvolid.patch b/0174-export-btrfs_subvol-and-btrfs_subvolid.patch index 419fb99a..185e4f48 100644 --- a/0174-export-btrfs_subvol-and-btrfs_subvolid.patch +++ b/0174-export-btrfs_subvol-and-btrfs_subvolid.patch @@ -1,7 +1,7 @@ From 35c1015fc1a4313be34757eebb195547336e0edf Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Wed, 18 Dec 2013 09:57:04 +0000 -Subject: [PATCH 174/229] export btrfs_subvol and btrfs_subvolid +Subject: [PATCH 174/236] export btrfs_subvol and btrfs_subvolid We should export btrfs_subvol and btrfs_subvolid to have both visible to subsidiary configuration files loaded using configfile. diff --git a/0175-grub2-btrfs-03-follow_default.patch b/0175-grub2-btrfs-03-follow_default.patch index 6f20c99c..3a093d9a 100644 --- a/0175-grub2-btrfs-03-follow_default.patch +++ b/0175-grub2-btrfs-03-follow_default.patch @@ -1,7 +1,7 @@ From 476a0251e8ca2850da7c383baf7fdbd810bc789f Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 21 Aug 2014 03:39:11 +0000 -Subject: [PATCH 175/229] grub2-btrfs-03-follow_default +Subject: [PATCH 175/236] grub2-btrfs-03-follow_default --- grub-core/fs/btrfs.c | 107 ++++++++++++++++++++++++++++++++++++--------------- diff --git a/0176-grub2-btrfs-04-grub2-install.patch b/0176-grub2-btrfs-04-grub2-install.patch index 90a26412..338c3ab2 100644 --- a/0176-grub2-btrfs-04-grub2-install.patch +++ b/0176-grub2-btrfs-04-grub2-install.patch @@ -1,7 +1,7 @@ From e03dd83cc804d70af0716d0a429715afbcdc7eae Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 21 Aug 2014 03:39:11 +0000 -Subject: [PATCH 176/229] grub2-btrfs-04-grub2-install +Subject: [PATCH 176/236] grub2-btrfs-04-grub2-install --- grub-core/osdep/linux/getroot.c | 7 +++++++ diff --git a/0177-grub2-btrfs-05-grub2-mkconfig.patch b/0177-grub2-btrfs-05-grub2-mkconfig.patch index 51ba3189..98c94dfc 100644 --- a/0177-grub2-btrfs-05-grub2-mkconfig.patch +++ b/0177-grub2-btrfs-05-grub2-mkconfig.patch @@ -1,7 +1,7 @@ From cb43e7a6c96127e72d6787c6063de8911284fe18 Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 21 Aug 2014 03:39:11 +0000 -Subject: [PATCH 177/229] grub2-btrfs-05-grub2-mkconfig +Subject: [PATCH 177/236] grub2-btrfs-05-grub2-mkconfig --- util/grub-mkconfig.in | 3 ++- diff --git a/0178-grub2-btrfs-06-subvol-mount.patch b/0178-grub2-btrfs-06-subvol-mount.patch index 8324e7c3..3849bbe1 100644 --- a/0178-grub2-btrfs-06-subvol-mount.patch +++ b/0178-grub2-btrfs-06-subvol-mount.patch @@ -1,7 +1,7 @@ From 84d6a482c2c8d0677141bb888512a6a89daf9d8b Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Fri, 22 May 2015 11:45:25 +0000 -Subject: [PATCH 178/229] grub2-btrfs-06-subvol-mount +Subject: [PATCH 178/236] grub2-btrfs-06-subvol-mount --- grub-core/fs/btrfs.c | 195 +++++++++++++++++++++++++++++++++++++++- diff --git a/0179-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch b/0179-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch index f798a137..56891703 100644 --- a/0179-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch +++ b/0179-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch @@ -1,7 +1,7 @@ From 741c0651cd54970c08e9c19a82f5805aafbfda23 Mon Sep 17 00:00:00 2001 From: Dusty Mabe Date: Sat, 18 Jul 2015 15:38:08 +0000 -Subject: [PATCH 179/229] No more "Bootable Snapshot" submenu in grub.cfg. +Subject: [PATCH 179/236] No more "Bootable Snapshot" submenu in grub.cfg. This breaks grubby (run on kernel upgrades) because grubby just does a search for "menuentry". diff --git a/0180-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch b/0180-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch index 13077728..e1e33bb0 100644 --- a/0180-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch +++ b/0180-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch @@ -1,7 +1,7 @@ From ab8e0d4bf544b708f5afa4cc56e6bd16789f2f1e Mon Sep 17 00:00:00 2001 From: Andrei Borzenkov Date: Tue, 21 Jun 2016 16:44:17 +0000 -Subject: [PATCH 180/229] Fallback to old subvol name scheme to support old +Subject: [PATCH 180/236] Fallback to old subvol name scheme to support old snapshot config Ref: bsc#953538 diff --git a/0181-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch b/0181-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch index ae030492..cd990e8a 100644 --- a/0181-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch +++ b/0181-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch @@ -1,7 +1,7 @@ From eb8535428a42c7099666ddb58ac900bb8ee745ba Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 11 May 2017 08:56:57 +0000 -Subject: [PATCH 181/229] Grub not working correctly with btrfs snapshots +Subject: [PATCH 181/236] Grub not working correctly with btrfs snapshots (bsc#1026511) --- diff --git a/0182-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch b/0182-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch index f59c82c3..a114cee6 100644 --- a/0182-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch +++ b/0182-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch @@ -1,7 +1,7 @@ From 2a6e1d2491b7334985ad25315faa22d26354d8b7 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 1 Jun 2017 09:59:56 -0400 -Subject: [PATCH 182/229] Add grub_efi_allocate_pool() and grub_efi_free_pool() +Subject: [PATCH 182/236] Add grub_efi_allocate_pool() and grub_efi_free_pool() wrappers. Signed-off-by: Peter Jones diff --git a/0183-Use-grub_efi_.-memory-helpers-where-reasonable.patch b/0183-Use-grub_efi_.-memory-helpers-where-reasonable.patch index f5fbb3c8..f9c5f4ab 100644 --- a/0183-Use-grub_efi_.-memory-helpers-where-reasonable.patch +++ b/0183-Use-grub_efi_.-memory-helpers-where-reasonable.patch @@ -1,7 +1,7 @@ From 6ea13cdb3f33da45d7a8042d85ad87e2a18fc946 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 1 Jun 2017 10:06:38 -0400 -Subject: [PATCH 183/229] Use grub_efi_...() memory helpers where reasonable. +Subject: [PATCH 183/236] Use grub_efi_...() memory helpers where reasonable. This uses grub_efi_allocate_pool(), grub_efi_free_pool(), and grub_efi_free_pages() instead of open-coded efi_call_N() calls, so we diff --git a/0184-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch b/0184-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch index 3a45d817..037d3498 100644 --- a/0184-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch +++ b/0184-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch @@ -1,7 +1,7 @@ From eae94a16a8ae350cdeab8b7742f9227d92001272 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 1 Jun 2017 10:07:50 -0400 -Subject: [PATCH 184/229] Add PRIxGRUB_EFI_STATUS and use it. +Subject: [PATCH 184/236] Add PRIxGRUB_EFI_STATUS and use it. This avoids syntax checkers getting confused about if it's llx or lx. diff --git a/0185-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch b/0185-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch index 0967f226..3cec32e3 100644 --- a/0185-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch +++ b/0185-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch @@ -1,7 +1,7 @@ From 41a50aa2c275076caa2f9fe7a747eeb054abed16 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:42:57 -0400 -Subject: [PATCH 185/229] Don't use dynamic sized arrays since we don't build +Subject: [PATCH 185/236] Don't use dynamic sized arrays since we don't build with -std=c99 --- diff --git a/0186-don-t-ignore-const.patch b/0186-don-t-ignore-const.patch index 30e8730a..3169780d 100644 --- a/0186-don-t-ignore-const.patch +++ b/0186-don-t-ignore-const.patch @@ -1,7 +1,7 @@ From d06e2578107f217d2bc8beee7fd0dc7f2645873d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:43:22 -0400 -Subject: [PATCH 186/229] don't ignore const +Subject: [PATCH 186/236] don't ignore const --- grub-core/net/tftp.c | 2 +- diff --git a/0187-don-t-use-int-for-efi-status.patch b/0187-don-t-use-int-for-efi-status.patch index f9f1a47b..63011b2c 100644 --- a/0187-don-t-use-int-for-efi-status.patch +++ b/0187-don-t-use-int-for-efi-status.patch @@ -1,7 +1,7 @@ From 6d86c59c24e12c8e8471cdd2affca574fdee160d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:44:59 -0400 -Subject: [PATCH 187/229] don't use int for efi status +Subject: [PATCH 187/236] don't use int for efi status --- grub-core/kern/efi/efi.c | 2 +- diff --git a/0188-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch b/0188-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch index b464a3ff..e14f3e5f 100644 --- a/0188-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch +++ b/0188-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch @@ -1,7 +1,7 @@ From ba6828d073bbda85eba59a9ce9220eada51a540b Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:46:23 -0400 -Subject: [PATCH 188/229] make GRUB_MOD_INIT() declare its function prototypes. +Subject: [PATCH 188/236] make GRUB_MOD_INIT() declare its function prototypes. --- include/grub/dl.h | 2 ++ diff --git a/0189-Clean-up-some-errors-in-the-linuxefi-loader.patch b/0189-Clean-up-some-errors-in-the-linuxefi-loader.patch index 063f2cc7..9e3b332e 100644 --- a/0189-Clean-up-some-errors-in-the-linuxefi-loader.patch +++ b/0189-Clean-up-some-errors-in-the-linuxefi-loader.patch @@ -1,7 +1,7 @@ From 8bdc0c77919ddb9bd588ac45e96c96497683f76c Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 24 May 2017 15:58:18 -0400 -Subject: [PATCH 189/229] Clean up some errors in the linuxefi loader +Subject: [PATCH 189/236] Clean up some errors in the linuxefi loader Signed-off-by: Peter Jones --- diff --git a/0190-editenv-handle-relative-symlinks.patch b/0190-editenv-handle-relative-symlinks.patch index 9ed1c878..8cc41108 100644 --- a/0190-editenv-handle-relative-symlinks.patch +++ b/0190-editenv-handle-relative-symlinks.patch @@ -1,7 +1,7 @@ From 098987b7b5fcc15a5ba3600fa132fcec36095c5a Mon Sep 17 00:00:00 2001 From: Jonathan Lebon Date: Mon, 14 Aug 2017 14:37:20 -0400 -Subject: [PATCH 190/229] editenv: handle relative symlinks +Subject: [PATCH 190/236] editenv: handle relative symlinks Handle symlinks with targets relative to the containing dir. This ensures that the rename operation does not depend on the cwd. diff --git a/0191-Make-libgrub.pp-depend-on-config-util.h.patch b/0191-Make-libgrub.pp-depend-on-config-util.h.patch index 70fbbdfb..8cfa7a3d 100644 --- a/0191-Make-libgrub.pp-depend-on-config-util.h.patch +++ b/0191-Make-libgrub.pp-depend-on-config-util.h.patch @@ -1,7 +1,7 @@ From c86299049c2cc0503728deee280d9f6bf50886f4 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 23 Aug 2017 10:37:27 -0400 -Subject: [PATCH 191/229] Make libgrub.pp depend on config-util.h +Subject: [PATCH 191/236] Make libgrub.pp depend on config-util.h If you build with "make -j48" a lot, sometimes you see: diff --git a/0192-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch b/0192-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch index 0781d963..4d14c1c9 100644 --- a/0192-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch +++ b/0192-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch @@ -1,7 +1,7 @@ From 351799d9310a4bec23ed4074444780c2a35435fd Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 20 Apr 2017 13:29:06 -0400 -Subject: [PATCH 192/229] Don't guess /boot/efi/ as HFS+ on ppc machines in +Subject: [PATCH 192/236] Don't guess /boot/efi/ as HFS+ on ppc machines in grub-install This should never be trying this, and since we've consolidated the diff --git a/0193-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch b/0193-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch index 46931345..6c6e3124 100644 --- a/0193-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch +++ b/0193-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch @@ -1,7 +1,7 @@ From cba0322cd88baf136ac693f5ec1826f3314daeff Mon Sep 17 00:00:00 2001 From: Konrad Rzeszutek Wilk Date: Mon, 28 Aug 2017 13:51:14 -0400 -Subject: [PATCH 193/229] Fix util/grub.d/20_linux_xen.in: Add xen_boot command +Subject: [PATCH 193/236] Fix util/grub.d/20_linux_xen.in: Add xen_boot command support for aarch64 Commit d33045ce7ffcb7c1e4a60c14d5ca64b36e3c5abe introduced diff --git a/0194-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch b/0194-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch index 91775a2b..688d744e 100644 --- a/0194-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch +++ b/0194-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch @@ -1,7 +1,7 @@ From 87c089b6f1945ebcc690697d279c74284f1b4072 Mon Sep 17 00:00:00 2001 From: Konrad Rzeszutek Wilk Date: Mon, 28 Aug 2017 13:59:12 -0400 -Subject: [PATCH 194/229] Use grub-file to figure out whether multiboot2 should +Subject: [PATCH 194/236] Use grub-file to figure out whether multiboot2 should be used for Xen.gz The multiboot2 is much more preferable than multiboot. Especiall diff --git a/0195-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch b/0195-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch index cdf614c2..cbc74394 100644 --- a/0195-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch +++ b/0195-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch @@ -1,7 +1,7 @@ From 92d3db585076d022521ab94a2ceed03eb05013fc Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 19 Oct 2017 11:29:11 -0400 -Subject: [PATCH 195/229] 20_linux_xen: load xen or multiboot{,2} modules as +Subject: [PATCH 195/236] 20_linux_xen: load xen or multiboot{,2} modules as needed. Signed-off-by: Peter Jones diff --git a/0196-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch b/0196-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch index a2a33916..2e13257e 100644 --- a/0196-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch +++ b/0196-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch @@ -1,7 +1,7 @@ From 2e5b957292d3f313d48bded25e8ca83468326c5b Mon Sep 17 00:00:00 2001 From: "David E. Box" Date: Fri, 15 Sep 2017 15:37:05 -0700 -Subject: [PATCH 196/229] tsc: Change default tsc calibration method to pmtimer +Subject: [PATCH 196/236] tsc: Change default tsc calibration method to pmtimer on EFI systems On efi systems, make pmtimer based tsc calibration the default over the diff --git a/0197-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch b/0197-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch index 553d8062..b9e56f26 100644 --- a/0197-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch +++ b/0197-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch @@ -1,7 +1,7 @@ From 0b158c30810db86f549cabd6e6021ab15962370d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 7 Nov 2017 17:12:17 -0500 -Subject: [PATCH 197/229] Make pmtimer tsc calibration not take 51 seconds to +Subject: [PATCH 197/236] Make pmtimer tsc calibration not take 51 seconds to fail. On my laptop running at 2.4GHz, if I run a VM where tsc calibration diff --git a/0198-align-struct-efi_variable-better.patch b/0198-align-struct-efi_variable-better.patch index 35c4a3c3..11c8079a 100644 --- a/0198-align-struct-efi_variable-better.patch +++ b/0198-align-struct-efi_variable-better.patch @@ -1,7 +1,7 @@ From 2485633ada06c11c07a34a696a92b14e58f1e846 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 27 Feb 2018 13:55:35 -0500 -Subject: [PATCH 198/229] align struct efi_variable better... +Subject: [PATCH 198/236] align struct efi_variable better... --- include/grub/efiemu/runtime.h | 2 +- diff --git a/0199-Add-quicksort-implementation.patch b/0199-Add-quicksort-implementation.patch index d53e69fa..489b7628 100644 --- a/0199-Add-quicksort-implementation.patch +++ b/0199-Add-quicksort-implementation.patch @@ -1,7 +1,7 @@ From a2cd100d71711b950beaf60ea7ddca4c77a70d59 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 9 Dec 2016 15:39:47 -0500 -Subject: [PATCH 199/229] Add quicksort implementation +Subject: [PATCH 199/236] Add quicksort implementation This will be used to sort the boot menu entries that are read from the BootLoaderSpec config files. diff --git a/0200-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch b/0200-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch index 8aaf431f..5dfff454 100644 --- a/0200-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch +++ b/0200-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch @@ -1,7 +1,7 @@ From ed595feeea2f7b7fd0158d42fa2fd39420eea683 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 9 Dec 2016 15:40:58 -0500 -Subject: [PATCH 200/229] Add blscfg command support to parse BootLoaderSpec +Subject: [PATCH 200/236] Add blscfg command support to parse BootLoaderSpec config fragments The BootLoaderSpec (BLS) defines a scheme where different bootloaders can diff --git a/0201-Add-BLS-support-to-grub-mkconfig.patch b/0201-Add-BLS-support-to-grub-mkconfig.patch index f5635365..9c90c927 100644 --- a/0201-Add-BLS-support-to-grub-mkconfig.patch +++ b/0201-Add-BLS-support-to-grub-mkconfig.patch @@ -1,7 +1,7 @@ From d847a4806bb7a4f3b457d0074d712e500fbd5e97 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 9 Dec 2016 15:40:29 -0500 -Subject: [PATCH 201/229] Add BLS support to grub-mkconfig +Subject: [PATCH 201/236] Add BLS support to grub-mkconfig GRUB now has BootLoaderSpec support, the user can choose to use this by setting GRUB_ENABLE_BLSCFG to true in /etc/default/grub. On this setup, diff --git a/0202-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch b/0202-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch index b9b57cf7..055a161a 100644 --- a/0202-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch +++ b/0202-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch @@ -1,7 +1,7 @@ From 2d7dabdbf322e8f679eeaefd48cb26b083cdeb1c Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 6 Feb 2018 11:02:09 +0100 -Subject: [PATCH 202/229] Remove duplicated grub_exit() definition for grub-emu +Subject: [PATCH 202/236] Remove duplicated grub_exit() definition for grub-emu platform The grub_exit() function signature was changed on all platforms to take a diff --git a/0203-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch b/0203-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch index 0188c9bb..78ec45f7 100644 --- a/0203-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch +++ b/0203-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch @@ -1,7 +1,7 @@ From f45946a92377c83ffcad8dbc3298fc26072567d9 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 6 Feb 2018 11:16:28 +0100 -Subject: [PATCH 203/229] Don't attempt to backtrace on grub_abort() for +Subject: [PATCH 203/236] Don't attempt to backtrace on grub_abort() for grub-emu The emu platform doesn't have a grub_backtrace() implementation, so this diff --git a/0204-Enable-blscfg-command-for-the-emu-platform.patch b/0204-Enable-blscfg-command-for-the-emu-platform.patch index 4f266f0f..f30ac74f 100644 --- a/0204-Enable-blscfg-command-for-the-emu-platform.patch +++ b/0204-Enable-blscfg-command-for-the-emu-platform.patch @@ -1,7 +1,7 @@ From 39bb86c661911f06ff40caa842a9babf18f27c8b Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Fri, 2 Feb 2018 11:36:29 +0100 -Subject: [PATCH 204/229] Enable blscfg command for the emu platform +Subject: [PATCH 204/236] Enable blscfg command for the emu platform Allow grub-emu to call a blscfg command. This may be useful for platforms that don't support GRUB, so grub-emu can be used to parse the BLS configs diff --git a/0205-Add-linux-and-initrd-commands-for-grub-emu.patch b/0205-Add-linux-and-initrd-commands-for-grub-emu.patch index 835a66f5..f8bf8283 100644 --- a/0205-Add-linux-and-initrd-commands-for-grub-emu.patch +++ b/0205-Add-linux-and-initrd-commands-for-grub-emu.patch @@ -1,7 +1,7 @@ From 49c719a6f6e223b95733e18720a48993ab6e5317 Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Tue, 6 Feb 2018 09:09:00 +0100 -Subject: [PATCH 205/229] Add linux and initrd commands for grub-emu +Subject: [PATCH 205/236] Add linux and initrd commands for grub-emu When using grub-emu, the linux and initrd commands are used as arguments to the kexec command line tool, to allow booting the selected menu entry. diff --git a/0206-Fix-the-efidir-in-grub-setpassword.patch b/0206-Fix-the-efidir-in-grub-setpassword.patch index 3d41475a..e8f2844a 100644 --- a/0206-Fix-the-efidir-in-grub-setpassword.patch +++ b/0206-Fix-the-efidir-in-grub-setpassword.patch @@ -1,7 +1,7 @@ From c7c6cb4380f5bd85a2cbe747433657fdce89a802 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 15 Mar 2018 14:12:54 -0400 -Subject: [PATCH 206/229] Fix the efidir in grub-setpassword +Subject: [PATCH 206/236] Fix the efidir in grub-setpassword Signed-off-by: Peter Jones --- diff --git a/0207-Add-grub2-switch-to-blscfg.patch b/0207-Add-grub2-switch-to-blscfg.patch index 2c6d0a93..986266ca 100644 --- a/0207-Add-grub2-switch-to-blscfg.patch +++ b/0207-Add-grub2-switch-to-blscfg.patch @@ -1,7 +1,7 @@ From 89b3a570de8b5e7ad19769983a87f6e10024f0ec Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 15 Mar 2018 14:12:40 -0400 -Subject: [PATCH 207/229] Add grub2-switch-to-blscfg +Subject: [PATCH 207/236] Add grub2-switch-to-blscfg Signed-off-by: Peter Jones --- diff --git a/0208-Add-grub_debug_enabled.patch b/0208-Add-grub_debug_enabled.patch index 1cfc4546..5bf31cac 100644 --- a/0208-Add-grub_debug_enabled.patch +++ b/0208-Add-grub_debug_enabled.patch @@ -1,7 +1,7 @@ From 6776773c89828c9b69c1552760ba6a4d9cd5589f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 30 Nov 2017 15:11:39 -0500 -Subject: [PATCH 208/229] Add grub_debug_enabled() +Subject: [PATCH 208/236] Add grub_debug_enabled() --- grub-core/kern/misc.c | 21 ++++++++++++++++----- diff --git a/0209-make-better-backtraces.patch b/0209-make-better-backtraces.patch index 7ae91696..bcee805e 100644 --- a/0209-make-better-backtraces.patch +++ b/0209-make-better-backtraces.patch @@ -1,7 +1,7 @@ From 318ee04aadcda40b779b2a5314dd23ead165f896 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 6 Nov 2017 18:31:56 -0500 -Subject: [PATCH 209/229] make better backtraces +Subject: [PATCH 209/236] make better backtraces Signed-off-by: Peter Jones --- diff --git a/0210-normal-don-t-draw-our-startup-message-if-debug-is-se.patch b/0210-normal-don-t-draw-our-startup-message-if-debug-is-se.patch index f7280a09..0417ea34 100644 --- a/0210-normal-don-t-draw-our-startup-message-if-debug-is-se.patch +++ b/0210-normal-don-t-draw-our-startup-message-if-debug-is-se.patch @@ -1,7 +1,7 @@ From 81d0e079ea5aa6f43daf12f7a8698d0bcd1a36f8 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 9 Nov 2017 15:58:52 -0500 -Subject: [PATCH 210/229] normal: don't draw our startup message if debug is +Subject: [PATCH 210/236] normal: don't draw our startup message if debug is set --- diff --git a/0211-Work-around-some-minor-include-path-weirdnesses.patch b/0211-Work-around-some-minor-include-path-weirdnesses.patch index 79260889..6d924ed9 100644 --- a/0211-Work-around-some-minor-include-path-weirdnesses.patch +++ b/0211-Work-around-some-minor-include-path-weirdnesses.patch @@ -1,7 +1,7 @@ From e2bba0f7ee8e56c68e425853a21a8fdd766add70 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 16 Mar 2018 13:28:57 -0400 -Subject: [PATCH 211/229] Work around some minor include path weirdnesses +Subject: [PATCH 211/236] Work around some minor include path weirdnesses Signed-off-by: Peter Jones --- diff --git a/0212-Make-it-possible-to-enabled-build-id-sha1.patch b/0212-Make-it-possible-to-enabled-build-id-sha1.patch index 178aa4f6..0bf19e6d 100644 --- a/0212-Make-it-possible-to-enabled-build-id-sha1.patch +++ b/0212-Make-it-possible-to-enabled-build-id-sha1.patch @@ -1,7 +1,7 @@ From 8521929bcf671b465d6450b969d11617b6aec608 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 25 Jun 2015 15:41:06 -0400 -Subject: [PATCH 212/229] Make it possible to enabled --build-id=sha1 +Subject: [PATCH 212/236] Make it possible to enabled --build-id=sha1 Signed-off-by: Peter Jones --- diff --git a/0213-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch b/0213-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch index 4c810828..15bae4fb 100644 --- a/0213-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch +++ b/0213-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch @@ -1,7 +1,7 @@ From 8c4b2eaa204f0ea0377ca4592d2be6029fdb9be7 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Sun, 28 Jun 2015 13:09:58 -0400 -Subject: [PATCH 213/229] Add grub_qdprintf() - grub_dprintf() without the +Subject: [PATCH 213/236] Add grub_qdprintf() - grub_dprintf() without the file+line number. This just makes copy+paste of our debug loading info easier. diff --git a/0214-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch b/0214-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch index 2848fe9d..afe9ac54 100644 --- a/0214-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch +++ b/0214-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch @@ -1,7 +1,7 @@ From 030095a01a205aba04a0849ac0c0329ac429a9ed Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 25 Jun 2015 15:11:36 -0400 -Subject: [PATCH 214/229] Make a "gdb" dprintf that tells us load addresses. +Subject: [PATCH 214/236] Make a "gdb" dprintf that tells us load addresses. This makes a grub_dprintf() call during platform init and during module loading that tells us the virtual addresses of the .text and .data diff --git a/0215-Only-attempt-to-scan-different-BLS-directories-on-EF.patch b/0215-Only-attempt-to-scan-different-BLS-directories-on-EF.patch index 4e41a078..750a45e4 100644 --- a/0215-Only-attempt-to-scan-different-BLS-directories-on-EF.patch +++ b/0215-Only-attempt-to-scan-different-BLS-directories-on-EF.patch @@ -1,7 +1,7 @@ From 5f0417c63a4dd2252a5a801568f4369ac74a47e6 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 3 Apr 2018 15:42:47 +0200 -Subject: [PATCH 215/229] Only attempt to scan different BLS directories on EFI +Subject: [PATCH 215/236] Only attempt to scan different BLS directories on EFI machines Current BLS support attempted to scan for BLS directories, but this only diff --git a/0216-Core-TPM-support.patch b/0216-Core-TPM-support.patch index dd662ac1..b5ce6102 100644 --- a/0216-Core-TPM-support.patch +++ b/0216-Core-TPM-support.patch @@ -1,7 +1,7 @@ From 65be94a64a5608209561ba0914d29445d81bf4b2 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 14 Jul 2015 17:06:35 -0700 -Subject: [PATCH 216/229] Core TPM support +Subject: [PATCH 216/236] Core TPM support Add support for performing basic TPM measurements. Right now this only supports extending PCRs statically and only on UEFI and BIOS systems, but diff --git a/0217-Measure-kernel-initrd.patch b/0217-Measure-kernel-initrd.patch index c620b0d7..0ca29cc6 100644 --- a/0217-Measure-kernel-initrd.patch +++ b/0217-Measure-kernel-initrd.patch @@ -1,7 +1,7 @@ From ffd305d09def6610ef96f928c0df8303c5529d63 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Thu, 16 Jul 2015 15:22:34 -0700 -Subject: [PATCH 217/229] Measure kernel + initrd +Subject: [PATCH 217/236] Measure kernel + initrd Measure the kernel and initrd when loaded on UEFI systems --- diff --git a/0218-Add-BIOS-boot-measurement.patch b/0218-Add-BIOS-boot-measurement.patch index 0d91cdf1..2830ed4d 100644 --- a/0218-Add-BIOS-boot-measurement.patch +++ b/0218-Add-BIOS-boot-measurement.patch @@ -1,7 +1,7 @@ From d8870587d46f8aa8d4f8db2cdcddecc829993447 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 15:48:51 -0700 -Subject: [PATCH 218/229] Add BIOS boot measurement +Subject: [PATCH 218/236] Add BIOS boot measurement Measure the on-disk grub core on BIOS systems - unlike UEFI, the firmware can't do this stage for us. diff --git a/0219-Measure-kernel-and-initrd-on-BIOS-systems.patch b/0219-Measure-kernel-and-initrd-on-BIOS-systems.patch index 248f5baf..bb65cabb 100644 --- a/0219-Measure-kernel-and-initrd-on-BIOS-systems.patch +++ b/0219-Measure-kernel-and-initrd-on-BIOS-systems.patch @@ -1,7 +1,7 @@ From 5aee2444093cfc8006865766f89e5a775a940ab1 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 16:28:29 -0700 -Subject: [PATCH 219/229] Measure kernel and initrd on BIOS systems +Subject: [PATCH 219/236] Measure kernel and initrd on BIOS systems Measure the kernel and initrd when loaded on BIOS systems --- diff --git a/0220-Measure-the-kernel-commandline.patch b/0220-Measure-the-kernel-commandline.patch index e4de3112..29b988ca 100644 --- a/0220-Measure-the-kernel-commandline.patch +++ b/0220-Measure-the-kernel-commandline.patch @@ -1,7 +1,7 @@ From c1694574d6eb287e6e181dd018fe54b718a613b3 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 16:32:29 -0700 -Subject: [PATCH 220/229] Measure the kernel commandline +Subject: [PATCH 220/236] Measure the kernel commandline Measure the kernel commandline to ensure that it hasn't been modified --- diff --git a/0221-Measure-commands.patch b/0221-Measure-commands.patch index bf58f0af..ccd86332 100644 --- a/0221-Measure-commands.patch +++ b/0221-Measure-commands.patch @@ -1,7 +1,7 @@ From c93a27f2e6a323a4985e6fe902eb5c6447fca572 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Mon, 10 Aug 2015 15:27:12 -0700 -Subject: [PATCH 221/229] Measure commands +Subject: [PATCH 221/236] Measure commands Measure each command executed by grub, which includes script execution. --- diff --git a/0222-Measure-multiboot-images-and-modules.patch b/0222-Measure-multiboot-images-and-modules.patch index ca0b6e99..f1043c88 100644 --- a/0222-Measure-multiboot-images-and-modules.patch +++ b/0222-Measure-multiboot-images-and-modules.patch @@ -1,7 +1,7 @@ From b164ec560cd6373c0c5d8a189d70baeca2c3ef13 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 1 Sep 2015 16:02:55 -0700 -Subject: [PATCH 222/229] Measure multiboot images and modules +Subject: [PATCH 222/236] Measure multiboot images and modules --- grub-core/loader/i386/multiboot_mbi.c | 3 +++ diff --git a/0223-Fix-boot-when-there-s-no-TPM.patch b/0223-Fix-boot-when-there-s-no-TPM.patch index cf4c776f..224c6705 100644 --- a/0223-Fix-boot-when-there-s-no-TPM.patch +++ b/0223-Fix-boot-when-there-s-no-TPM.patch @@ -1,7 +1,7 @@ From 33fb6113d65a819496d0b67b8db071fedad845a7 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Wed, 23 Mar 2016 16:49:42 -0700 -Subject: [PATCH 223/229] Fix boot when there's no TPM +Subject: [PATCH 223/236] Fix boot when there's no TPM If the firmware has TPM support but has no TPM, we're jumping to core.img without popping the registers back onto the stack. Fix that. diff --git a/0224-Rework-TPM-measurements.patch b/0224-Rework-TPM-measurements.patch index 00e6e9f0..73b259fd 100644 --- a/0224-Rework-TPM-measurements.patch +++ b/0224-Rework-TPM-measurements.patch @@ -1,7 +1,7 @@ From 415072bbda8b4de133c6dc6add230e41ee6d9579 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Wed, 23 Mar 2016 17:03:43 -0700 -Subject: [PATCH 224/229] Rework TPM measurements +Subject: [PATCH 224/236] Rework TPM measurements Rework TPM measurements to use fewer PCRs. After discussion with upstream, it's preferable to avoid using so many PCRs. Instead, measure into PCRs 8 diff --git a/0225-Fix-event-log-prefix.patch b/0225-Fix-event-log-prefix.patch index c026d72d..a9526012 100644 --- a/0225-Fix-event-log-prefix.patch +++ b/0225-Fix-event-log-prefix.patch @@ -1,7 +1,7 @@ From 0816621235226952a5bd0cfd027eb97ff84df547 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 29 Mar 2016 15:36:49 -0700 -Subject: [PATCH 225/229] Fix event log prefix +Subject: [PATCH 225/236] Fix event log prefix We're not passing the prefixed version of the description to the event log. Fix that. diff --git a/0226-Set-the-first-boot-menu-entry-as-default-when-using-.patch b/0226-Set-the-first-boot-menu-entry-as-default-when-using-.patch index 99e7c2e6..71213f2a 100644 --- a/0226-Set-the-first-boot-menu-entry-as-default-when-using-.patch +++ b/0226-Set-the-first-boot-menu-entry-as-default-when-using-.patch @@ -1,7 +1,7 @@ From 8278e40fdc4a4db0865fc632cbe2dcf7c124ba7a Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Fri, 6 Apr 2018 14:08:36 +0200 -Subject: [PATCH 226/229] Set the first boot menu entry as default when using +Subject: [PATCH 226/236] Set the first boot menu entry as default when using BLS fragments When BootLoaderSpec configuration files are used, the default boot menu diff --git a/0227-tpm-fix-warnings-when-compiling-for-platforms-other-.patch b/0227-tpm-fix-warnings-when-compiling-for-platforms-other-.patch index 9f88b58c..fce8217c 100644 --- a/0227-tpm-fix-warnings-when-compiling-for-platforms-other-.patch +++ b/0227-tpm-fix-warnings-when-compiling-for-platforms-other-.patch @@ -1,7 +1,7 @@ From 4c53f61b1a889c0f55e76a763b05b6686ec613b8 Mon Sep 17 00:00:00 2001 From: Michael Marineau Date: Sun, 21 Aug 2016 18:24:58 -0700 -Subject: [PATCH 227/229] tpm: fix warnings when compiling for platforms other +Subject: [PATCH 227/236] tpm: fix warnings when compiling for platforms other than pc and efi --- diff --git a/0228-Make-TPM-errors-less-fatal.patch b/0228-Make-TPM-errors-less-fatal.patch index 2269fd60..265bab47 100644 --- a/0228-Make-TPM-errors-less-fatal.patch +++ b/0228-Make-TPM-errors-less-fatal.patch @@ -1,7 +1,7 @@ From 406f7dda0cc2689170f102341a546c87072d1ce5 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Thu, 13 Oct 2016 13:55:26 -0700 -Subject: [PATCH 228/229] Make TPM errors less fatal +Subject: [PATCH 228/236] Make TPM errors less fatal Handle TPM errors, and stop trying to use the TPM once we hit one. --- diff --git a/0229-blscfg-handle-multiple-initramfs-images.patch b/0229-blscfg-handle-multiple-initramfs-images.patch index a266c002..de4ba286 100644 --- a/0229-blscfg-handle-multiple-initramfs-images.patch +++ b/0229-blscfg-handle-multiple-initramfs-images.patch @@ -1,7 +1,7 @@ From a230ec5c31d818c2f046acf3592a5492d3e2ea69 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 11 Apr 2018 13:44:29 -0400 -Subject: [PATCH 229/229] blscfg: handle multiple initramfs images. +Subject: [PATCH 229/236] blscfg: handle multiple initramfs images. Signed-off-by: Peter Jones --- diff --git a/0230-BLS-Fix-grub2-switch-to-blscfg-on-non-EFI-machines.patch b/0230-BLS-Fix-grub2-switch-to-blscfg-on-non-EFI-machines.patch new file mode 100644 index 00000000..69235ae8 --- /dev/null +++ b/0230-BLS-Fix-grub2-switch-to-blscfg-on-non-EFI-machines.patch @@ -0,0 +1,28 @@ +From f006df881d1b2b3ca7320ecfcd33181295ec1018 Mon Sep 17 00:00:00 2001 +From: Jan Hlavac +Date: Tue, 10 Apr 2018 16:07:36 +0200 +Subject: [PATCH 230/236] BLS: Fix grub2-switch-to-blscfg on non-EFI machines + +On the non-EFI machines the grub2-switch-to-blscfg script places the BLS +snippets into the /boot directory. But the right location is +/boot/loader/entries. +--- + util/grub-switch-to-blscfg.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/util/grub-switch-to-blscfg.in b/util/grub-switch-to-blscfg.in +index 3ae5e4ea8d0..f740b8f4d03 100644 +--- a/util/grub-switch-to-blscfg.in ++++ b/util/grub-switch-to-blscfg.in +@@ -44,7 +44,7 @@ if [ -d /sys/firmware/efi/efivars/ ]; then + else + startlink=/etc/grub2.cfg + grubdir=`echo "/@bootdirname@/@grubdirname@" | sed 's,//*,/,g'` +- blsdir=`echo "/@bootdirname@" | sed 's,//*,/,g'` ++ blsdir=`echo "/@bootdirname@/loader/entries" | sed 's,//*,/,g'` + fi + + backupsuffix=.bak +-- +2.15.0 + diff --git a/0231-BLS-Use-etcdefaultgrub-instead-of-etc.patch b/0231-BLS-Use-etcdefaultgrub-instead-of-etc.patch new file mode 100644 index 00000000..9235c8e6 --- /dev/null +++ b/0231-BLS-Use-etcdefaultgrub-instead-of-etc.patch @@ -0,0 +1,27 @@ +From 29b79fde633a43223ead7874ffd373603f129832 Mon Sep 17 00:00:00 2001 +From: Jan Hlavac +Date: Tue, 10 Apr 2018 16:56:28 +0200 +Subject: [PATCH 231/236] BLS: Use ${etcdefaultgrub} instead of /etc/... + +Inside the grub-switch-to-blscfg script the ${etcdefaultgrub} variable +is used. So replace the hardcoded /etc/default/grub with it. +--- + util/grub-switch-to-blscfg.in | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/util/grub-switch-to-blscfg.in b/util/grub-switch-to-blscfg.in +index f740b8f4d03..eae3c379e4a 100644 +--- a/util/grub-switch-to-blscfg.in ++++ b/util/grub-switch-to-blscfg.in +@@ -252,7 +252,7 @@ if [[ "${GENERATE}" -eq 1 ]] ; then + cp -af "${GRUB_CONFIG_FILE}${backupsuffix}" "${GRUB_CONFIG_FILE}" + sed -i"${backupsuffix}" \ + -e 's,^GRUB_ENABLE_BLSCFG=.*,GRUB_ENABLE_BLSCFG=false,' \ +- /etc/default/grub ++ "${etcdefaultgrub}" + gettext_printf "Updating %s failed\n" "${GRUB_CONFIG_FILE}" + exit 1 + fi +-- +2.15.0 + diff --git a/0232-Add-missing-options-to-grub2-switch-to-blscfg-man-pa.patch b/0232-Add-missing-options-to-grub2-switch-to-blscfg-man-pa.patch new file mode 100644 index 00000000..e5302a76 --- /dev/null +++ b/0232-Add-missing-options-to-grub2-switch-to-blscfg-man-pa.patch @@ -0,0 +1,35 @@ +From c3a05672a450fd9e95de5df2b0c27c24fe04cd83 Mon Sep 17 00:00:00 2001 +From: Javier Martinez Canillas +Date: Wed, 11 Apr 2018 11:36:43 +0200 +Subject: [PATCH 232/236] Add missing options to grub2-switch-to-blscfg man + page + +The script --bls-directory and --backup-suffix options were not documented +in the man page, add them as well so users can know what these are about. + +Signed-off-by: Javier Martinez Canillas +--- + util/grub-switch-to-blscfg.8 | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/util/grub-switch-to-blscfg.8 b/util/grub-switch-to-blscfg.8 +index 134dfc62a7b..7d99de2d2f9 100644 +--- a/util/grub-switch-to-blscfg.8 ++++ b/util/grub-switch-to-blscfg.8 +@@ -21,5 +21,13 @@ The grub config file to use. The default value is \fI/etc/grub2-efi.cfg\fR on U + --grub-defaults=\fIFILE\fR + The defaults file for grub-mkconfig. The default value is \fI/etc/default/grub\fR. + ++.TP ++--bls-directory=\fIDIR\fR ++Create BootLoaderSpec fragments in \fIDIR\fR. The default value is \fI/boot/loader/entries\fR on BIOS machines and \fI/boot/efi/EFI/\fBVENDOR\fI/loader/entries\fR on UEFI machines. ++ ++.TP ++--backup-suffix=\fSUFFIX\fR ++The suffix to use for saved backup files. The default value is \fI.bak\fR. ++ + .SH SEE ALSO + .BR "info grub" +-- +2.15.0 + diff --git a/0233-Make-grub2-switch-to-blscfg-to-generate-debug-BLS-wh.patch b/0233-Make-grub2-switch-to-blscfg-to-generate-debug-BLS-wh.patch new file mode 100644 index 00000000..44a01368 --- /dev/null +++ b/0233-Make-grub2-switch-to-blscfg-to-generate-debug-BLS-wh.patch @@ -0,0 +1,61 @@ +From 55b00d518e029a563653401c6908489924c07238 Mon Sep 17 00:00:00 2001 +From: Javier Martinez Canillas +Date: Wed, 11 Apr 2018 11:49:24 +0200 +Subject: [PATCH 233/236] Make grub2-switch-to-blscfg to generate debug BLS + when MAKEDEBUG is set + +If MAKEDEBUG=yes in /etc/sysconfig/kernel, then a debug menu entry should +be created. So for BLS, a debug configuration file has to be created that +contains additional debug kernel command line parameters. + +Signed-off-by: Javier Martinez Canillas +--- + util/grub-switch-to-blscfg.in | 15 +++++++++++++++ + 1 file changed, 15 insertions(+) + +diff --git a/util/grub-switch-to-blscfg.in b/util/grub-switch-to-blscfg.in +index eae3c379e4a..c59299ffa6a 100644 +--- a/util/grub-switch-to-blscfg.in ++++ b/util/grub-switch-to-blscfg.in +@@ -21,6 +21,7 @@ + # Initialize some variables. + prefix=@prefix@ + exec_prefix=@exec_prefix@ ++sbindir=@sbindir@ + bindir=@bindir@ + sysconfdir="@sysconfdir@" + PACKAGE_NAME=@PACKAGE_NAME@ +@@ -33,9 +34,12 @@ fi + + self=`basename $0` + ++grub_get_kernel_settings="${sbindir}/@grub_get_kernel_settings@" + grub_editenv=${bindir}/@grub_editenv@ + etcdefaultgrub=/etc/default/grub + ++eval "$("${grub_get_kernel_settings}")" || true ++ + EFIDIR=$(grep ^ID= /etc/os-release | sed -e 's/^ID=//' -e 's/rhel/redhat/') + if [ -d /sys/firmware/efi/efivars/ ]; then + startlink=/etc/grub2-efi.cfg +@@ -226,6 +230,17 @@ for kernelver in $(cd /lib/modules/ ; ls -1) "" ; do + "$(date -u +%Y%m%d%H%M%S -d "$(stat -c '%y' "${kernel_dir}")")" \ + >"${bls_target}" + fi ++ ++ if [ "x$GRUB_LINUX_MAKE_DEBUG" = "xtrue" ]; then ++ arch="$(uname -m)" ++ bls_debug="$(echo ${bls_target} | sed -e "s/\.${arch}/-debug.${arch}/")" ++ cp -aT "${bls_target}" "${bls_debug}" ++ title="$(grep '^title[ \t]' "${bls_debug}" | sed -e 's/^title[ \t]*//')" ++ blsid="$(grep '^id[ \t]' "${bls_debug}" | sed -e "s/\.${ARCH}/-debug.${arch}/")" ++ sed -i -e "s/^title.*/title ${title}${GRUB_LINUX_DEBUG_TITLE_POSTFIX}/" "${bls_debug}" ++ sed -i -e "s/^id.*/${blsid}/" "${bls_debug}" ++ sed -i -e "s/^options.*/options \$kernelopts ${GRUB_CMDLINE_LINUX_DEBUG}/" "${bls_debug}" ++ fi + done + + GENERATE=0 +-- +2.15.0 + diff --git a/0234-Make-grub2-switch-to-blscfg-to-generate-BLS-fragment.patch b/0234-Make-grub2-switch-to-blscfg-to-generate-BLS-fragment.patch new file mode 100644 index 00000000..7f451e9c --- /dev/null +++ b/0234-Make-grub2-switch-to-blscfg-to-generate-BLS-fragment.patch @@ -0,0 +1,31 @@ +From 60bddbc714c96ca05821d52bdd7dbad7eabd6dd5 Mon Sep 17 00:00:00 2001 +From: Javier Martinez Canillas +Date: Wed, 11 Apr 2018 12:39:59 +0200 +Subject: [PATCH 234/236] Make grub2-switch-to-blscfg to generate BLS fragment + for rescue kernel + +If a rescue image is available, it should have a BootLoaderSpec fragment. + +Signed-off-by: Javier Martinez Canillas +--- + util/grub-switch-to-blscfg.in | 4 ++++ + 1 file changed, 4 insertions(+) + +diff --git a/util/grub-switch-to-blscfg.in b/util/grub-switch-to-blscfg.in +index c59299ffa6a..bc28053cd30 100644 +--- a/util/grub-switch-to-blscfg.in ++++ b/util/grub-switch-to-blscfg.in +@@ -243,6 +243,10 @@ for kernelver in $(cd /lib/modules/ ; ls -1) "" ; do + fi + done + ++if [[ -f "/boot/vmlinuz-0-rescue-${MACHINE_ID}" ]]; then ++ mkbls "0-rescue-${MACHINE_ID}" "0" >"${blsdir}/${MACHINE_ID}-0-rescue.conf" ++fi ++ + GENERATE=0 + if grep '^GRUB_ENABLE_BLSCFG=.*' "${etcdefaultgrub}" \ + | grep -vq '^GRUB_ENABLE_BLSCFG="*true"*\s*$' ; then +-- +2.15.0 + diff --git a/0235-Only-attempt-to-query-dev-mounted-in-boot-efi-as-boo.patch b/0235-Only-attempt-to-query-dev-mounted-in-boot-efi-as-boo.patch new file mode 100644 index 00000000..31c21795 --- /dev/null +++ b/0235-Only-attempt-to-query-dev-mounted-in-boot-efi-as-boo.patch @@ -0,0 +1,43 @@ +From 8afe59812e83e78564697ef8241ed4f1b3527423 Mon Sep 17 00:00:00 2001 +From: Javier Martinez Canillas +Date: Tue, 24 Apr 2018 02:16:38 +0200 +Subject: [PATCH 235/236] Only attempt to query dev mounted in /boot/efi as + boot dev on EFI machines + +The 10_linux script calls grub2-probe to probe the information for the dev +mounted in /boot/efi, but this directory may not exist on non-EFI machines +which leads to the following error when generating the grub2 config file: + +/usr/sbin/grub2-probe: error: failed to get canonical path of `/boot/efi/' + +Instead query for the device mounted in /boot and use that as the boot dev +for non-EFI machines. + +Signed-off-by: Javier Martinez Canillas +--- + util/grub.d/10_linux.in | 9 +++++++-- + 1 file changed, 7 insertions(+), 2 deletions(-) + +diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in +index b24bb410dc0..c2ffc77398f 100644 +--- a/util/grub.d/10_linux.in ++++ b/util/grub.d/10_linux.in +@@ -138,8 +138,13 @@ linux_entry () + fi + fi + +- bootefi_device="`${grub_probe} --target=device /boot/efi/`" +- prepare_grub_to_access_device ${bootefi_device} boot ++ if [ -d /sys/firmware/efi ]; then ++ bootefi_device="`${grub_probe} --target=device /boot/efi/`" ++ prepare_grub_to_access_device ${bootefi_device} boot ++ else ++ boot_device="`${grub_probe} --target=device /boot/`" ++ prepare_grub_to_access_device ${boot_device} boot ++ fi + + cat << EOF + insmod blscfg +-- +2.15.0 + diff --git a/0236-Include-OSTree-path-when-searching-kernels-images-if.patch b/0236-Include-OSTree-path-when-searching-kernels-images-if.patch new file mode 100644 index 00000000..cc0035e5 --- /dev/null +++ b/0236-Include-OSTree-path-when-searching-kernels-images-if.patch @@ -0,0 +1,41 @@ +From 459eaeacbb40116dcb501cf165c7816e70c66fb3 Mon Sep 17 00:00:00 2001 +From: Javier Martinez Canillas +Date: Tue, 24 Apr 2018 02:28:04 +0200 +Subject: [PATCH 236/236] Include OSTree path when searching kernels images if + BLS config is enabled + +The OSTree based distros (i.e: Fedora Atomic) don't install kernel images +in the /boot directory, but in /boot/ostree. So the 10_linux script isn't +able to include these kernels in its list, so the linux_entry() function +is never called. + +This isn't a problem since the 10_linux script isn't used to populate the +menu entries anyways, but instead a custom 15_ostree script is used. But +for BLS we want the 10_linux script to generate the minimal grub.cfg that +calls the blscfg command, so add the OSTree kernel images to the list. + +Signed-off-by: Javier Martinez Canillas +--- + util/grub.d/10_linux.in | 6 ++++++ + 1 file changed, 6 insertions(+) + +diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in +index c2ffc77398f..15ba8eff8a6 100644 +--- a/util/grub.d/10_linux.in ++++ b/util/grub.d/10_linux.in +@@ -250,6 +250,12 @@ case "x$machine" in + done ;; + esac + ++if [ "x${GRUB_ENABLE_BLSCFG}" = "xtrue" ]; then ++ for i in /boot/ostree/*/vmlinuz-* ; do ++ if grub_file_is_not_garbage "$i" ; then list="$list $i" ; fi ++ done ++fi ++ + case "$machine" in + i?86) GENKERNEL_ARCH="x86" ;; + mips|mips64) GENKERNEL_ARCH="mips" ;; +-- +2.15.0 + diff --git a/grub.macros b/grub.macros index 6e2f3372..4331bc0a 100644 --- a/grub.macros +++ b/grub.macros @@ -497,6 +497,7 @@ touch ${RPM_BUILD_ROOT}/boot/%{name}/grub.cfg \ %dir %attr(0700,root,root)/boot/efi/EFI/%{efidir} \ %attr(0700,root,root)/boot/efi/EFI/%{efidir}/%{2} \ %dir %attr(0700,root,root)/boot/efi/EFI/%{efidir}/fonts \ +%dir %attr(0700,root,root)/boot/efi/EFI/%{efidir}/loader \ %dir %attr(0700,root,root)/boot/efi/EFI/%{efidir}/loader/entries \ %ghost %config(noreplace) %attr(0700,root,root)/boot/efi/EFI/%{efidir}/grub.cfg \ /boot/grub2/grubenv \ diff --git a/grub.patches b/grub.patches index 80ae0121..5c5ffa1e 100644 --- a/grub.patches +++ b/grub.patches @@ -227,3 +227,10 @@ Patch0226: 0226-Set-the-first-boot-menu-entry-as-default-when-using-.patch Patch0227: 0227-tpm-fix-warnings-when-compiling-for-platforms-other-.patch Patch0228: 0228-Make-TPM-errors-less-fatal.patch Patch0229: 0229-blscfg-handle-multiple-initramfs-images.patch +Patch0230: 0230-BLS-Fix-grub2-switch-to-blscfg-on-non-EFI-machines.patch +Patch0231: 0231-BLS-Use-etcdefaultgrub-instead-of-etc.patch +Patch0232: 0232-Add-missing-options-to-grub2-switch-to-blscfg-man-pa.patch +Patch0233: 0233-Make-grub2-switch-to-blscfg-to-generate-debug-BLS-wh.patch +Patch0234: 0234-Make-grub2-switch-to-blscfg-to-generate-BLS-fragment.patch +Patch0235: 0235-Only-attempt-to-query-dev-mounted-in-boot-efi-as-boo.patch +Patch0236: 0236-Include-OSTree-path-when-searching-kernels-images-if.patch diff --git a/grub2.spec b/grub2.spec index eef191b1..1a926249 100644 --- a/grub2.spec +++ b/grub2.spec @@ -7,7 +7,7 @@ Name: grub2 Epoch: 1 Version: 2.02 -Release: 34%{?dist} +Release: 35%{?dist} Summary: Bootloader with support for Linux, Multiboot and more Group: System Environment/Base License: GPLv3+ @@ -453,6 +453,9 @@ fi %endif %changelog +* Tue Apr 24 2018 Peter Jones - 2.02-35 +- A couple of fixes needed by Fedora Atomic - javierm + * Mon Apr 23 2018 Peter Jones - 2.02-34 - Put the os-prober dep back in - we need to change test plans and criteria before it can go. From 67f30b6a7402cace60bedba4eeae450655d5b97d Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Thu, 10 May 2018 17:48:20 +0200 Subject: [PATCH 19/45] Two more fixes for BLS support - Use version field to sort BLS entries if id field isn't defined - Add version field to BLS fragments generated by 20-grub.install Signed-off-by: Javier Martinez Canillas --- 0001-Bump-version-to-2.03.patch | 4 +- 0002-Remove-bashisms-from-tests.patch | 4 +- 0003-fs-tester-make-sh-compatible.patch | 4 +- 0004-support-busybox-date.patch | 4 +- ...retrieve-fstime-when-it-s-not-useful.patch | 4 +- 0006-Support-lseek64.patch | 4 +- 0007-Use-SHELL-rather-than-bin-sh.patch | 4 +- 0008-po-Use-SHELL-rather-than-bin-sh.patch | 4 +- 0009-Add-termux-path-to-dict.patch | 4 +- 0010-Fix-shebang-for-termux.patch | 4 +- 0011-Add-strtoull-test.patch | 4 +- ...x-behaviour-on-chars-between-9-and-a.patch | 4 +- 0013-Add-Virtual-LAN-support.patch | 4 +- ...out-to-mkimage_generate_elfXX-rather.patch | 4 +- ...r-arm-uboot-code-to-make-it-genereic.patch | 4 +- ...-parts-that-are-platform-independent.patch | 4 +- ...-Rename-uboot-halt.c-to-dummy-halt.c.patch | 4 +- ...ame-uboot-datetime-to-dummy-datetime.patch | 4 +- 0019-arm-coreboot-Start-new-port.patch | 4 +- ...upport-for-device-tree-based-drivers.patch | 4 +- ...-coreboot-Support-for-vexpress-timer.patch | 4 +- 0022-arm-coreboot-Export-FDT-routines.patch | 4 +- ...-Split-protocol-from-controller-code.patch | 4 +- ...reboot-Support-keyboard-for-vexpress.patch | 4 +- ...m_coreboot-Support-grub-mkstandalone.patch | 4 +- ...oreboot-Support-loading-linux-images.patch | 4 +- 0027-arm_coreboot-Support-DMA.patch | 4 +- 0028-ehci-Split-core-code-from-PCI-part.patch | 4 +- 0029-arm_coreboot-Support-EHCI.patch | 4 +- ...n-FDT-nodes-with-compatible-property.patch | 4 +- ...ty-to-send-receive-messages-on-paren.patch | 4 +- 0032-rk3288_spi-Add-SPI-driver.patch | 4 +- ...eboot-Add-Chromebook-keyboard-driver.patch | 4 +- 0034-Missing-parts-of-previous-commit.patch | 4 +- ...-cbmemc-to-support-updated-console-f.patch | 4 +- ...t_keyboard-Fix-falco-chromebook-case.patch | 4 +- 0037-sparc64-Close-cdboot-ihandle.patch | 4 +- ...-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch | 4 +- ...p-option-support-in-xen_module-comma.patch | 4 +- ...inux_xen.in-Add-xen_boot-command-sup.patch | 4 +- ...-introduction-of-Xen-boot-commands-i.patch | 4 +- ...se-devspec-to-determine-the-OBP-path.patch | 4 +- ...unt-ext2-3-4-filesystems-that-have-t.patch | 4 +- 0044-ehci-Fix-compilation-for-amd64.patch | 4 +- ...-compilation-for-ppc-sparc-and-arm64.patch | 4 +- 0046-ehci-Fix-compilation-on-i386.patch | 4 +- 0047-crypto-Fix-use-after-free.patch | 4 +- 0048-arm-efi-Fix-compilation.patch | 4 +- 0049-fdt-silence-clang-warning.patch | 4 +- 0050-Fix-a-segfault-in-lsefi.patch | 4 +- ...t-typedef-and-use-grub_size_t-instea.patch | 4 +- ...x-reading-label-lvd.ident-is-dstring.patch | 4 +- ...b-core-fs-udf.c-Add-support-for-UUID.patch | 4 +- ...orriso-presence-before-doing-anythin.patch | 4 +- 0055-Fail-if-xorriso-failed.patch | 4 +- ...efi-refactor-grub_efi_allocate_pages.patch | 4 +- 0057-Remove-grub_efi_allocate_pages.patch | 4 +- 0058-efi-move-fdt-helper-library.patch | 4 +- 0059-efi-Add-GRUB_PE32_MAGIC-definition.patch | 4 +- ...inux-loader-improve-type-portability.patch | 4 +- ...allocation-type-to-GRUB_EFI_LOADER_C.patch | 4 +- ...RM_-definitions-when-handling-term-c.patch | 4 +- ...B_GZ-prefix-to-gzio-specific-defines.patch | 4 +- 0064-re-write-.gitignore.patch | 4 +- ...ient-architecture-CAS-reboot-support.patch | 4 +- ...nsole-display-attr-when-clear-screen.patch | 4 +- ...video-support-for-IBM-power-machines.patch | 4 +- ...when-generating-configuration-by-gru.patch | 4 +- 0069-Move-bash-completion-script-922997.patch | 4 +- 0070-Update-to-minilzo-2.08.patch | 4 +- ...o-include-entries-by-title-not-just-.patch | 4 +- 0072-Add-GRUB_DISABLE_UUID.patch | 4 +- 0073-Make-exit-take-a-return-code.patch | 4 +- ...pot-as-binary-so-git-won-t-try-to-di.patch | 4 +- ...es-load-an-env-block-from-a-variable.patch | 4 +- ...HCP-client-ID-and-UUID-options-added.patch | 4 +- ...-trim-arp-packets-with-abnormal-size.patch | 4 +- ...Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch | 4 +- ...UEFI-operating-systems-returned-by-o.patch | 4 +- 0080-Migrate-PPC-from-Yaboot-to-Grub2.patch | 4 +- 0081-Add-fw_path-variable-revised.patch | 4 +- 0082-Add-support-for-linuxefi.patch | 4 +- ...xefi-and-initrdefi-where-appropriate.patch | 4 +- ...w-insmod-when-secure-boot-is-enabled.patch | 4 +- ...-hex-hex-straight-through-unmolested.patch | 4 +- 0086-Add-X-option-to-printf-functions.patch | 4 +- ...for-specific-config-file-for-netboot.patch | 4 +- ...g-module-to-parse-Boot-Loader-Specif.patch | 4 +- 0089-Don-t-write-messages-to-the-screen.patch | 4 +- 0090-Don-t-print-GNU-GRUB-header.patch | 4 +- 0091-Don-t-add-to-highlighted-row.patch | 4 +- 0092-Message-string-cleanups.patch | 4 +- ...ing-now-that-we-aren-t-displaying-it.patch | 4 +- ...t-indentation-for-the-term-help-text.patch | 4 +- 0095-Indent-menu-entries.patch | 4 +- 0096-Fix-margins.patch | 4 +- ...-1-for-our-right-hand-margin-so-line.patch | 4 +- ...-Use-linux16-when-appropriate-880840.patch | 4 +- 0099-Enable-pager-by-default.-985860.patch | 4 +- ...-on-serial-so-don-t-tell-the-user-to.patch | 4 +- ...n-t-say-GNU-Linux-in-generated-menus.patch | 4 +- ...-Don-t-draw-a-border-around-the-menu.patch | 4 +- ...andard-margin-for-the-timeout-string.patch | 4 +- ...rame-to-list-of-relocations-stripped.patch | 4 +- ...rk-with-our-changes-for-linux16-and-.patch | 4 +- ...on-t-print-during-fdt-loading-method.patch | 4 +- ...spaces-when-we-re-doing-our-cmdline-.patch | 4 +- ...password-to-boot-entries-generated-b.patch | 4 +- 0109-Don-t-emit-Booting-.-message.patch | 4 +- ...f-man-pages-with-slightly-nicer-ones.patch | 4 +- ...ix-when-fallback-searching-for-grub-.patch | 4 +- ...-before-grub.cfg-on-tftp-config-file.patch | 4 +- ...ert-function-to-support-NVMe-devices.patch | 4 +- ...M-Mustang-device-tree-for-hardware-t.patch | 4 +- ...device-tree-from-the-grub-default-fi.patch | 4 +- ...P-protocol-for-exclusive-use-by-grub.patch | 4 +- ...P-protocol-for-exclusive-use-by-grub.patch | 4 +- 0118-Add-grub_util_readlink.patch | 4 +- ...se-symlinks-including-those-across-d.patch | 4 +- ...CLASS-in-10_linux-from-etc-os-releas.patch | 4 +- ...t-ordering-for-.debug-and-rescue-ker.patch | 4 +- 0122-Load-arm-with-SB-enabled.patch | 4 +- 0123-Try-prefix-if-fw_path-doesn-t-work.patch | 4 +- ...-grub.cfg-netboot-selection-order-11.patch | 4 +- ...-Package-Sort-for-grub2-mkconfig-112.patch | 4 +- 0126-Handle-rssd-storage-devices.patch | 4 +- ...x16-initrd16-and-linuxefi-initrdefi-.patch | 4 +- ...fig-construct-titles-that-look-like-.patch | 4 +- ...ly-grub2-password-config-tool-985962.patch | 4 +- ...fig-construct-titles-that-look-like-.patch | 4 +- ...-configure.ac-and-grub-rpm-sort-play.patch | 4 +- 0132-tcp-add-window-scaling-support.patch | 4 +- ...net-retransmit-if-our-device-is-busy.patch | 4 +- ...out-actually-using-the-configured-ne.patch | 4 +- ...r-for-the-first-exclusive-reopen-of-.patch | 4 +- ...ue-when-reading-username-and-passwor.patch | 4 +- ...ub-password-will-not-be-read-1290803.patch | 4 +- ...ub-setpassword-documentation-1290799.patch | 4 +- ...le-issue-in-grub-setpassword-1294243.patch | 4 +- ...rsistent-RAM-and-unknown-possible-fu.patch | 4 +- 0141-efiemu-Fix-compilation-failure.patch | 4 +- ...P-protocol-for-exclusive-use-by-grub.patch | 4 +- 0143-Add-a-url-parser.patch | 4 +- ...net-and-bootp-add-support-for-dhcpv6.patch | 4 +- ...rnel-settings-and-use-it-in-10_linux.patch | 4 +- 0146-Normalize-slashes-in-tftp-paths.patch | 4 +- 0147-Fix-malformed-tftp-packets.patch | 4 +- 0148-Fix-race-in-EFI-validation.patch | 4 +- ...1374141-fix-incorrect-mask-for-ppc64.patch | 4 +- ...art-of-chainloader-target-if-present.patch | 4 +- ...ecureboot-support-on-efi-chainloader.patch | 4 +- ...loaders-that-link-in-efi-mode-honor-.patch | 4 +- 0153-Make-grub_fatal-also-backtrace.patch | 4 +- 0154-Rework-linux-command.patch | 4 +- 0155-Rework-linux16-command.patch | 4 +- 0156-Make-grub-editenv-build-again.patch | 4 +- ...ix-up-some-man-pages-rpmdiff-noticed.patch | 4 +- ...-work-some-intricacies-of-PE-loading.patch | 4 +- ...-of-efi-chainload-so-non-sb-cases-wo.patch | 4 +- ...-double-free-on-verification-failure.patch | 4 +- ...machine-type-test-in-30_os-prober.in.patch | 4 +- ...fix-wrong-sanity-check-in-relocate_c.patch | 4 +- ...truncate-overlong-relocation-section.patch | 4 +- 0164-linuxefi-minor-cleanups.patch | 4 +- ...rch-64-on-32-boot-in-linuxefi-loader.patch | 4 +- 0166-Fix-up-linux-params-usage.patch | 4 +- 0167-Make-exit-take-a-return-code.patch | 4 +- ...fdt-has-address-cells-and-size-cells.patch | 4 +- ...rintf-in-the-secure-boot-verify-code.patch | 4 +- ...fo-pages-say-grub2-where-appropriate.patch | 4 +- ...more-debug-info-in-our-module-loader.patch | 4 +- ...-chainloader-entries-don-t-try-any-x.patch | 4 +- ...-Add-ability-to-boot-from-subvolumes.patch | 4 +- ...port-btrfs_subvol-and-btrfs_subvolid.patch | 4 +- 0175-grub2-btrfs-03-follow_default.patch | 4 +- 0176-grub2-btrfs-04-grub2-install.patch | 4 +- 0177-grub2-btrfs-05-grub2-mkconfig.patch | 4 +- 0178-grub2-btrfs-06-subvol-mount.patch | 4 +- ...ootable-Snapshot-submenu-in-grub.cfg.patch | 4 +- ...subvol-name-scheme-to-support-old-sn.patch | 4 +- ...-correctly-with-btrfs-snapshots-bsc-.patch | 4 +- ...ocate_pool-and-grub_efi_free_pool-wr.patch | 4 +- ...fi_.-memory-helpers-where-reasonable.patch | 4 +- 0184-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch | 4 +- ...c-sized-arrays-since-we-don-t-build-.patch | 4 +- 0186-don-t-ignore-const.patch | 4 +- 0187-don-t-use-int-for-efi-status.patch | 4 +- ...INIT-declare-its-function-prototypes.patch | 4 +- ...p-some-errors-in-the-linuxefi-loader.patch | 4 +- 0190-editenv-handle-relative-symlinks.patch | 4 +- ...e-libgrub.pp-depend-on-config-util.h.patch | 4 +- ...-efi-as-HFS-on-ppc-machines-in-grub-.patch | 4 +- ...20_linux_xen.in-Add-xen_boot-command.patch | 4 +- ...-figure-out-whether-multiboot2-shoul.patch | 4 +- ...d-xen-or-multiboot-2-modules-as-need.patch | 4 +- ...lt-tsc-calibration-method-to-pmtimer.patch | 4 +- ...-calibration-not-take-51-seconds-to-.patch | 4 +- 0198-align-struct-efi_variable-better.patch | 4 +- 0199-Add-quicksort-implementation.patch | 4 +- ...nd-support-to-parse-BootLoaderSpec-c.patch | 4 +- 0201-Add-BLS-support-to-grub-mkconfig.patch | 4 +- ...d-grub_exit-definition-for-grub-emu-.patch | 4 +- ...-backtrace-on-grub_abort-for-grub-em.patch | 4 +- ...-blscfg-command-for-the-emu-platform.patch | 4 +- ...nux-and-initrd-commands-for-grub-emu.patch | 4 +- 0206-Fix-the-efidir-in-grub-setpassword.patch | 4 +- 0207-Add-grub2-switch-to-blscfg.patch | 4 +- 0208-Add-grub_debug_enabled.patch | 4 +- 0209-make-better-backtraces.patch | 4 +- ...w-our-startup-message-if-debug-is-se.patch | 4 +- ...-some-minor-include-path-weirdnesses.patch | 4 +- ...it-possible-to-enabled-build-id-sha1.patch | 4 +- ...f-grub_dprintf-without-the-file-line.patch | 4 +- ...dprintf-that-tells-us-load-addresses.patch | 4 +- ...scan-different-BLS-directories-on-EF.patch | 4 +- 0216-Core-TPM-support.patch | 4 +- 0217-Measure-kernel-initrd.patch | 4 +- 0218-Add-BIOS-boot-measurement.patch | 4 +- ...re-kernel-and-initrd-on-BIOS-systems.patch | 4 +- 0220-Measure-the-kernel-commandline.patch | 4 +- 0221-Measure-commands.patch | 4 +- ...Measure-multiboot-images-and-modules.patch | 4 +- 0223-Fix-boot-when-there-s-no-TPM.patch | 4 +- 0224-Rework-TPM-measurements.patch | 4 +- 0225-Fix-event-log-prefix.patch | 4 +- ...ot-menu-entry-as-default-when-using-.patch | 4 +- ...-when-compiling-for-platforms-other-.patch | 4 +- 0228-Make-TPM-errors-less-fatal.patch | 4 +- ...cfg-handle-multiple-initramfs-images.patch | 4 +- ...switch-to-blscfg-on-non-EFI-machines.patch | 4 +- ...LS-Use-etcdefaultgrub-instead-of-etc.patch | 4 +- ...ons-to-grub2-switch-to-blscfg-man-pa.patch | 4 +- ...h-to-blscfg-to-generate-debug-BLS-wh.patch | 4 +- ...h-to-blscfg-to-generate-BLS-fragment.patch | 4 +- ...query-dev-mounted-in-boot-efi-as-boo.patch | 4 +- ...ath-when-searching-kernels-images-if.patch | 4 +- ...field-to-compare-entries-if-id-field.patch | 32 +++++++++++++ ...d-to-BLS-generated-by-grub2-switch-t.patch | 45 +++++++++++++++++++ 20-grub.install | 7 ++- grub.patches | 2 + grub2.spec | 6 ++- 241 files changed, 561 insertions(+), 475 deletions(-) create mode 100644 0237-Use-BLS-version-field-to-compare-entries-if-id-field.patch create mode 100644 0238-Add-version-field-to-BLS-generated-by-grub2-switch-t.patch diff --git a/0001-Bump-version-to-2.03.patch b/0001-Bump-version-to-2.03.patch index d0ccdb5d..4b4d7a30 100644 --- a/0001-Bump-version-to-2.03.patch +++ b/0001-Bump-version-to-2.03.patch @@ -1,7 +1,7 @@ From b0bad6fd9449d3333fe1ab58953c0e6c1ce12c0d Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Wed, 3 May 2017 11:55:52 +0200 -Subject: [PATCH 001/236] Bump version to 2.03 +Subject: [PATCH 001/238] Bump version to 2.03 --- configure.ac | 2 +- @@ -226,5 +226,5 @@ index 68d8ce7c775..921e57ff48d 100644 { "videotest", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0x7033079c, 0x7033079c, 0x7033079c, 0x7033079c, 0x7033079c, }, 5 }, { "videotest", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xff583fbf, 0xff583fbf, 0xff583fbf, 0xff583fbf, 0xff583fbf, }, 5 }, -- -2.15.0 +2.17.0 diff --git a/0002-Remove-bashisms-from-tests.patch b/0002-Remove-bashisms-from-tests.patch index 9ad3fbba..b9dbafd8 100644 --- a/0002-Remove-bashisms-from-tests.patch +++ b/0002-Remove-bashisms-from-tests.patch @@ -1,7 +1,7 @@ From 5a0c548ba388b343b0bb6d2a38888e7eac5bbb96 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 03:47:13 +0300 -Subject: [PATCH 002/236] Remove bashisms from tests. +Subject: [PATCH 002/238] Remove bashisms from tests. Those tests don't actually need bash. Just use common shebang. --- @@ -129,5 +129,5 @@ index d5ef7f9ea62..80ebdc59fd5 100644 # create a randome file file="`mktemp "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"`" || exit 1 -- -2.15.0 +2.17.0 diff --git a/0003-fs-tester-make-sh-compatible.patch b/0003-fs-tester-make-sh-compatible.patch index 8a6efd67..a3474d89 100644 --- a/0003-fs-tester-make-sh-compatible.patch +++ b/0003-fs-tester-make-sh-compatible.patch @@ -1,7 +1,7 @@ From 37865c2c4ad26cd5e947b08abf1fde8145699919 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 14:35:59 +0300 -Subject: [PATCH 003/236] fs-tester: make sh-compatible +Subject: [PATCH 003/238] fs-tester: make sh-compatible --- tests/util/grub-fs-tester.in | 306 ++++++++++++++++++++++++------------------- @@ -742,5 +742,5 @@ index 2337771a1b9..4515d165e6e 100644 if [ x"$fs" = x"zfs" ]; then rmdir "$MNTPOINTRW"/"grub fs" || true -- -2.15.0 +2.17.0 diff --git a/0004-support-busybox-date.patch b/0004-support-busybox-date.patch index b594eb25..570bed52 100644 --- a/0004-support-busybox-date.patch +++ b/0004-support-busybox-date.patch @@ -1,7 +1,7 @@ From b43b8cacc813c2c15347de1e35cc88d9aa912d22 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 14:31:36 +0300 -Subject: [PATCH 004/236] support busybox date. +Subject: [PATCH 004/238] support busybox date. Busybox date doesn't understand weekdays in -d input, so strip them beforehand. @@ -39,5 +39,5 @@ index 05b8f6b73fa..ac51d42098e 100644 # Ignore QEMU bug if [ "${grub_modinfo_target_cpu}" = arm ] && [ $((dt2 - dt1)) -ge 15 ] && [ $((dt2 - dt1)) -le 17 ]; then -- -2.15.0 +2.17.0 diff --git a/0005-Don-t-retrieve-fstime-when-it-s-not-useful.patch b/0005-Don-t-retrieve-fstime-when-it-s-not-useful.patch index 508425c1..20ad6a86 100644 --- a/0005-Don-t-retrieve-fstime-when-it-s-not-useful.patch +++ b/0005-Don-t-retrieve-fstime-when-it-s-not-useful.patch @@ -1,7 +1,7 @@ From 6dec3a26b37e128ded5d912e08abc5cee1592499 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 21:24:05 +0300 -Subject: [PATCH 005/236] Don't retrieve fstime when it's not useful. +Subject: [PATCH 005/238] Don't retrieve fstime when it's not useful. --- tests/util/grub-fs-tester.in | 48 ++++++++++++++++++++++---------------------- @@ -68,5 +68,5 @@ index 4515d165e6e..bf47305f3e8 100644 if [ x$NOHARDLINK != xy ]; then -- -2.15.0 +2.17.0 diff --git a/0006-Support-lseek64.patch b/0006-Support-lseek64.patch index 6c520f34..4a8c8432 100644 --- a/0006-Support-lseek64.patch +++ b/0006-Support-lseek64.patch @@ -1,7 +1,7 @@ From 608bec51128008afb81c9e3f297283e9f830a146 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 20:21:05 +0300 -Subject: [PATCH 006/236] Support lseek64. +Subject: [PATCH 006/238] Support lseek64. Android doesn't have 64-bit off_t, so use off64_t instead. --- @@ -50,5 +50,5 @@ index 2a8c5882e3d..5450cf4166e 100644 } -- -2.15.0 +2.17.0 diff --git a/0007-Use-SHELL-rather-than-bin-sh.patch b/0007-Use-SHELL-rather-than-bin-sh.patch index 2a935efe..2b9c58d3 100644 --- a/0007-Use-SHELL-rather-than-bin-sh.patch +++ b/0007-Use-SHELL-rather-than-bin-sh.patch @@ -1,7 +1,7 @@ From c2ea443446b7feea868e54f94a87781f69820375 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 00:55:30 +0300 -Subject: [PATCH 007/236] Use $(SHELL) rather than /bin/sh. +Subject: [PATCH 007/238] Use $(SHELL) rather than /bin/sh. /bin/sh doesn't exist under termux. --- @@ -22,5 +22,5 @@ index 04e9395fd94..809a8aa26bf 100644 CLEANFILES += symlist.c BUILT_SOURCES += symlist.c -- -2.15.0 +2.17.0 diff --git a/0008-po-Use-SHELL-rather-than-bin-sh.patch b/0008-po-Use-SHELL-rather-than-bin-sh.patch index f4832be0..424b2211 100644 --- a/0008-po-Use-SHELL-rather-than-bin-sh.patch +++ b/0008-po-Use-SHELL-rather-than-bin-sh.patch @@ -1,7 +1,7 @@ From 4341f82af0b61d3dfbe675670d4105dc759c0df3 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 14:54:03 +0300 -Subject: [PATCH 008/236] po: Use @SHELL@ rather than /bin/sh. +Subject: [PATCH 008/238] po: Use @SHELL@ rather than /bin/sh. /bin/sh might not exist. --- @@ -22,5 +22,5 @@ index 3619458e85f..e68e9da843d 100644 srcdir = @srcdir@ -- -2.15.0 +2.17.0 diff --git a/0009-Add-termux-path-to-dict.patch b/0009-Add-termux-path-to-dict.patch index 327fc825..42fcb8da 100644 --- a/0009-Add-termux-path-to-dict.patch +++ b/0009-Add-termux-path-to-dict.patch @@ -1,7 +1,7 @@ From 1073ddb12078f3c8edbdb74bb8f5afc674983f40 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 14:52:48 +0300 -Subject: [PATCH 009/236] Add termux path to dict. +Subject: [PATCH 009/238] Add termux path to dict. --- tests/util/grub-fs-tester.in | 2 +- @@ -21,5 +21,5 @@ index bf47305f3e8..468d9e7856d 100644 CFILESRC="$cand" break -- -2.15.0 +2.17.0 diff --git a/0010-Fix-shebang-for-termux.patch b/0010-Fix-shebang-for-termux.patch index 3291cf45..ffb31c6d 100644 --- a/0010-Fix-shebang-for-termux.patch +++ b/0010-Fix-shebang-for-termux.patch @@ -1,7 +1,7 @@ From a827807a1330d5ad619faa103bc7f12d89fc8bee Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Sun, 22 Jan 2017 20:22:34 +0300 -Subject: [PATCH 010/236] Fix shebang for termux. +Subject: [PATCH 010/238] Fix shebang for termux. Termux doesn't have a /bin/sh. So we needto use $SHELL. Keep /bin/sh as much as possible. @@ -680,5 +680,5 @@ index 047120e47a0..eee62c10d70 100644 set -e -- -2.15.0 +2.17.0 diff --git a/0011-Add-strtoull-test.patch b/0011-Add-strtoull-test.patch index 7eb1ff14..ec673765 100644 --- a/0011-Add-strtoull-test.patch +++ b/0011-Add-strtoull-test.patch @@ -1,7 +1,7 @@ From ede6c9689395499f98a4c14d76b97151b4de5f54 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Wed, 3 May 2017 12:58:15 +0200 -Subject: [PATCH 011/236] Add strtoull test. +Subject: [PATCH 011/238] Add strtoull test. --- grub-core/Makefile.core.def | 5 +++++ @@ -24,5 +24,5 @@ index 2dfa22a9271..8dcd0e5a998 100644 name = setjmp_test; common = tests/setjmp_test.c; -- -2.15.0 +2.17.0 diff --git a/0012-strtoull-Fix-behaviour-on-chars-between-9-and-a.patch b/0012-strtoull-Fix-behaviour-on-chars-between-9-and-a.patch index 68538c2f..93111318 100644 --- a/0012-strtoull-Fix-behaviour-on-chars-between-9-and-a.patch +++ b/0012-strtoull-Fix-behaviour-on-chars-between-9-and-a.patch @@ -1,7 +1,7 @@ From dc6e1b5af83eb1c4290baf97c2d221c0865127be Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Wed, 10 Aug 2016 17:49:42 +0200 -Subject: [PATCH 012/236] strtoull: Fix behaviour on chars between '9' and 'a'. +Subject: [PATCH 012/238] strtoull: Fix behaviour on chars between '9' and 'a'. Reported by: Aaron Miller --- @@ -64,5 +64,5 @@ index d4822a12456..96781fb39b5 100644 ok = ok && !grub_test_run (test); grub_errno = 0; -- -2.15.0 +2.17.0 diff --git a/0013-Add-Virtual-LAN-support.patch b/0013-Add-Virtual-LAN-support.patch index f354c773..56a66148 100644 --- a/0013-Add-Virtual-LAN-support.patch +++ b/0013-Add-Virtual-LAN-support.patch @@ -1,7 +1,7 @@ From d9f7de0ae3c0c09cff7257c55418450261f3e082 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Mon, 23 Dec 2013 12:32:02 -0200 -Subject: [PATCH 013/236] Add Virtual LAN support. +Subject: [PATCH 013/238] Add Virtual LAN support. This patch adds support for virtual LAN (VLAN) tagging. VLAN tagging allows multiple VLANs in a bridged network to share the same physical network link @@ -345,5 +345,5 @@ index dcceaa56894..ab9d68f9825 100644 grub_err_t grub_net_send_ip_packet (struct grub_net_network_level_interface *inf, -- -2.15.0 +2.17.0 diff --git a/0014-mkimage-Pass-layout-to-mkimage_generate_elfXX-rather.patch b/0014-mkimage-Pass-layout-to-mkimage_generate_elfXX-rather.patch index 9c8c6f2f..f6fac8f5 100644 --- a/0014-mkimage-Pass-layout-to-mkimage_generate_elfXX-rather.patch +++ b/0014-mkimage-Pass-layout-to-mkimage_generate_elfXX-rather.patch @@ -1,7 +1,7 @@ From a35ac854308b0af7c86c2c7b199f6abdfa2110b0 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 17:32:15 +0200 -Subject: [PATCH 014/236] mkimage: Pass layout to mkimage_generate_elfXX rather +Subject: [PATCH 014/238] mkimage: Pass layout to mkimage_generate_elfXX rather than some fields. This allows easier extension of this function without having too long of @@ -164,5 +164,5 @@ index 1a18708a89c..b3a5ca132bc 100644 struct grub_install_image_target_desc { -- -2.15.0 +2.17.0 diff --git a/0015-Refactor-arm-uboot-code-to-make-it-genereic.patch b/0015-Refactor-arm-uboot-code-to-make-it-genereic.patch index e01b28b9..5340b532 100644 --- a/0015-Refactor-arm-uboot-code-to-make-it-genereic.patch +++ b/0015-Refactor-arm-uboot-code-to-make-it-genereic.patch @@ -1,7 +1,7 @@ From d08c9685149e7788001ac9a209baa1d84c3628e0 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 17:47:57 +0200 -Subject: [PATCH 015/236] Refactor arm-uboot code to make it genereic. +Subject: [PATCH 015/238] Refactor arm-uboot code to make it genereic. arm-coreboot startup code can be very similar to arm-uboot but current code has U-Boot specific references. So split U-Boot part from generic part. @@ -401,5 +401,5 @@ index 00000000000..d128775f19e + + END -- -2.15.0 +2.17.0 diff --git a/0016-coreboot-Split-parts-that-are-platform-independent.patch b/0016-coreboot-Split-parts-that-are-platform-independent.patch index 1bd338ae..c2103a95 100644 --- a/0016-coreboot-Split-parts-that-are-platform-independent.patch +++ b/0016-coreboot-Split-parts-that-are-platform-independent.patch @@ -1,7 +1,7 @@ From 461bfab7b7e47fd0a76bf6076a438af1b7e2184a Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 19:06:22 +0200 -Subject: [PATCH 016/236] coreboot: Split parts that are platform-independent. +Subject: [PATCH 016/238] coreboot: Split parts that are platform-independent. We currently assume that coreboot is always i386, it's no longer the case, so split i386-coreboot parts from generic coreboot code. @@ -340,5 +340,5 @@ index 809a8aa26bf..781d0ffbf75 100644 KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/video_fb.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/gfxterm.h -- -2.15.0 +2.17.0 diff --git a/0017-Rename-uboot-halt.c-to-dummy-halt.c.patch b/0017-Rename-uboot-halt.c-to-dummy-halt.c.patch index de6d7519..caefe760 100644 --- a/0017-Rename-uboot-halt.c-to-dummy-halt.c.patch +++ b/0017-Rename-uboot-halt.c-to-dummy-halt.c.patch @@ -1,7 +1,7 @@ From 1daa716c7017f1858de117a20a31da66815435c5 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 19:31:55 +0200 -Subject: [PATCH 017/236] Rename uboot/halt.c to dummy/halt.c. +Subject: [PATCH 017/238] Rename uboot/halt.c to dummy/halt.c. It's not U-Boot specific and it's a stub. --- @@ -28,5 +28,5 @@ similarity index 100% rename from grub-core/lib/uboot/halt.c rename to grub-core/lib/dummy/halt.c -- -2.15.0 +2.17.0 diff --git a/0018-Rename-uboot-datetime-to-dummy-datetime.patch b/0018-Rename-uboot-datetime-to-dummy-datetime.patch index 88a555c3..58aece1b 100644 --- a/0018-Rename-uboot-datetime-to-dummy-datetime.patch +++ b/0018-Rename-uboot-datetime-to-dummy-datetime.patch @@ -1,7 +1,7 @@ From 9808c3ef956c6472a96790b60cf74f4eaa742010 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 19:37:29 +0200 -Subject: [PATCH 018/236] Rename uboot/datetime to dummy/datetime. +Subject: [PATCH 018/238] Rename uboot/datetime to dummy/datetime. It's just a stub and is not UBoot-specific. --- @@ -54,5 +54,5 @@ index 4be716928a5..cf693fc6b62 100644 + "can\'t set datetime on this machine"); } -- -2.15.0 +2.17.0 diff --git a/0019-arm-coreboot-Start-new-port.patch b/0019-arm-coreboot-Start-new-port.patch index c982a798..41228e2b 100644 --- a/0019-arm-coreboot-Start-new-port.patch +++ b/0019-arm-coreboot-Start-new-port.patch @@ -1,7 +1,7 @@ From 24e37a885269bdec9b27babf1da0bba3692d55c0 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 20:53:28 +0200 -Subject: [PATCH 019/236] arm-coreboot: Start new port. +Subject: [PATCH 019/238] arm-coreboot: Start new port. --- configure.ac | 2 + @@ -823,5 +823,5 @@ index 781d0ffbf75..bec0585549a 100644 KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/arm/efi/loader.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/efi.h -- -2.15.0 +2.17.0 diff --git a/0020-Add-support-for-device-tree-based-drivers.patch b/0020-Add-support-for-device-tree-based-drivers.patch index c45c7053..ddacbc77 100644 --- a/0020-Add-support-for-device-tree-based-drivers.patch +++ b/0020-Add-support-for-device-tree-based-drivers.patch @@ -1,7 +1,7 @@ From fcbb723d4b1f7ad4687191562621dd0eb25f4d9e Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:19:59 +0200 -Subject: [PATCH 020/236] Add support for device-tree-based drivers. +Subject: [PATCH 020/238] Add support for device-tree-based drivers. --- grub-core/Makefile.core.def | 2 + @@ -852,5 +852,5 @@ index bec0585549a..fc6ca305147 100644 (for pp in $^; do \ b=`basename $$pp .marker`; \ -- -2.15.0 +2.17.0 diff --git a/0021-arm-coreboot-Support-for-vexpress-timer.patch b/0021-arm-coreboot-Support-for-vexpress-timer.patch index 5303921c..0a18670e 100644 --- a/0021-arm-coreboot-Support-for-vexpress-timer.patch +++ b/0021-arm-coreboot-Support-for-vexpress-timer.patch @@ -1,7 +1,7 @@ From 5a865b37866ee8cd64c080bc6fb1e537f8e2b3c6 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:26:36 +0200 -Subject: [PATCH 021/236] arm-coreboot: Support for vexpress timer. +Subject: [PATCH 021/238] arm-coreboot: Support for vexpress timer. --- grub-core/kern/arm/coreboot/timer.c | 36 ++++++++++++++++++++++++++++++++++++ @@ -69,5 +69,5 @@ index ebefb99d58f..d97b844f848 100644 try_generic_timer (); if (!have_timer) -- -2.15.0 +2.17.0 diff --git a/0022-arm-coreboot-Export-FDT-routines.patch b/0022-arm-coreboot-Export-FDT-routines.patch index 3b51a5e8..59413d4f 100644 --- a/0022-arm-coreboot-Export-FDT-routines.patch +++ b/0022-arm-coreboot-Export-FDT-routines.patch @@ -1,7 +1,7 @@ From ac6b41b89fbb82a3ba843a7ed19115d81432b604 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:29:48 +0200 -Subject: [PATCH 022/236] arm-coreboot: Export FDT routines. +Subject: [PATCH 022/238] arm-coreboot: Export FDT routines. We need to use them from modules as well. --- @@ -23,5 +23,5 @@ index fc6ca305147..147e6959c97 100644 if COND_arm_efi -- -2.15.0 +2.17.0 diff --git a/0023-at_keyboard-Split-protocol-from-controller-code.patch b/0023-at_keyboard-Split-protocol-from-controller-code.patch index a3f14f92..6c6e9b50 100644 --- a/0023-at_keyboard-Split-protocol-from-controller-code.patch +++ b/0023-at_keyboard-Split-protocol-from-controller-code.patch @@ -1,7 +1,7 @@ From 216950a4eea1a1ead1c28eaca94e34ea2ef2ad19 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:41:22 +0200 -Subject: [PATCH 023/236] at_keyboard: Split protocol from controller code. +Subject: [PATCH 023/238] at_keyboard: Split protocol from controller code. On vexpress controller is different but protocol is the same, so reuse the code. @@ -1024,5 +1024,5 @@ index 00000000000..4f2e527e497 + +#endif -- -2.15.0 +2.17.0 diff --git a/0024-arm_coreboot-Support-keyboard-for-vexpress.patch b/0024-arm_coreboot-Support-keyboard-for-vexpress.patch index e52a70bf..8fdc7ee7 100644 --- a/0024-arm_coreboot-Support-keyboard-for-vexpress.patch +++ b/0024-arm_coreboot-Support-keyboard-for-vexpress.patch @@ -1,7 +1,7 @@ From 848bed9d92cf20e9f25db4c69a20efad23996ca0 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:42:37 +0200 -Subject: [PATCH 024/236] arm_coreboot: Support keyboard for vexpress. +Subject: [PATCH 024/238] arm_coreboot: Support keyboard for vexpress. --- grub-core/Makefile.core.def | 3 + @@ -245,5 +245,5 @@ index 147e6959c97..a2aaf9f54b0 100644 KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/video.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/video_fb.h -- -2.15.0 +2.17.0 diff --git a/0025-arm_coreboot-Support-grub-mkstandalone.patch b/0025-arm_coreboot-Support-grub-mkstandalone.patch index 1c60543c..46a4f2f8 100644 --- a/0025-arm_coreboot-Support-grub-mkstandalone.patch +++ b/0025-arm_coreboot-Support-grub-mkstandalone.patch @@ -1,7 +1,7 @@ From 3edabad8fefb112cc4b2d43be6e97d43c909ceee Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:59:48 +0200 -Subject: [PATCH 025/236] arm_coreboot: Support grub-mkstandalone. +Subject: [PATCH 025/238] arm_coreboot: Support grub-mkstandalone. --- util/grub-install-common.c | 12 ++++++++++-- @@ -154,5 +154,5 @@ index 6abd288c313..5910b0c09bc 100644 extern char *grub_install_source_directory; -- -2.15.0 +2.17.0 diff --git a/0026-arm_coreboot-Support-loading-linux-images.patch b/0026-arm_coreboot-Support-loading-linux-images.patch index 4bf11f96..22cfd8ab 100644 --- a/0026-arm_coreboot-Support-loading-linux-images.patch +++ b/0026-arm_coreboot-Support-loading-linux-images.patch @@ -1,7 +1,7 @@ From 656c3b0d7fbe23f0e1ab561c8faa4ac4a37364d1 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 22:00:06 +0200 -Subject: [PATCH 026/236] arm_coreboot: Support loading linux images. +Subject: [PATCH 026/238] arm_coreboot: Support loading linux images. --- grub-core/loader/arm/linux.c | 132 ++++++++++++++++++++++--------------------- @@ -298,5 +298,5 @@ index a66caad13db..f217f8281ad 100644 #define FDT_ADDITIONAL_ENTRIES_SIZE 0x300 -- -2.15.0 +2.17.0 diff --git a/0027-arm_coreboot-Support-DMA.patch b/0027-arm_coreboot-Support-DMA.patch index 19b72375..a2d583a3 100644 --- a/0027-arm_coreboot-Support-DMA.patch +++ b/0027-arm_coreboot-Support-DMA.patch @@ -1,7 +1,7 @@ From 265292f2b0da0eb414c409871ba0f94a99ec33c1 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 22:06:04 +0200 -Subject: [PATCH 027/236] arm_coreboot: Support DMA. +Subject: [PATCH 027/238] arm_coreboot: Support DMA. This is needed to support USB and some other busses. --- @@ -288,5 +288,5 @@ index a2aaf9f54b0..10451384720 100644 KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/fdtbus.h endif -- -2.15.0 +2.17.0 diff --git a/0028-ehci-Split-core-code-from-PCI-part.patch b/0028-ehci-Split-core-code-from-PCI-part.patch index 63c0ac8f..97e9458e 100644 --- a/0028-ehci-Split-core-code-from-PCI-part.patch +++ b/0028-ehci-Split-core-code-from-PCI-part.patch @@ -1,7 +1,7 @@ From 058df7b5a9cc7aaa9872eaa916b715544a8f9840 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 22:10:26 +0200 -Subject: [PATCH 028/236] ehci: Split core code from PCI part. +Subject: [PATCH 028/238] ehci: Split core code from PCI part. On ARM often EHCI is present without PCI and just declared in device tree. So splitcore from PCI part. @@ -567,5 +567,5 @@ index 5f4297bb21e..c772e76546e 100644 grub_usb_controller_dev_register (&usb_controller); grub_boot_time ("EHCI driver registered"); -- -2.15.0 +2.17.0 diff --git a/0029-arm_coreboot-Support-EHCI.patch b/0029-arm_coreboot-Support-EHCI.patch index e33d97f3..c9b82474 100644 --- a/0029-arm_coreboot-Support-EHCI.patch +++ b/0029-arm_coreboot-Support-EHCI.patch @@ -1,7 +1,7 @@ From d11ced1e1fb93676942e51618eb53c140f541890 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 22:14:28 +0200 -Subject: [PATCH 029/236] arm_coreboot: Support EHCI. +Subject: [PATCH 029/238] arm_coreboot: Support EHCI. --- grub-core/Makefile.core.def | 2 ++ @@ -119,5 +119,5 @@ index ed268178b4d..da67965a41a 100644 # If gfxterm is main output console integrate it into kernel GROUPS["videoinkernel"] = ["mips_loongson", "i386_coreboot", "arm_coreboot" ] -- -2.15.0 +2.17.0 diff --git a/0030-Fix-bug-on-FDT-nodes-with-compatible-property.patch b/0030-Fix-bug-on-FDT-nodes-with-compatible-property.patch index 12cc4b46..90e93460 100644 --- a/0030-Fix-bug-on-FDT-nodes-with-compatible-property.patch +++ b/0030-Fix-bug-on-FDT-nodes-with-compatible-property.patch @@ -1,7 +1,7 @@ From 4f8471532d454b2db96434c28bf7105ed69e0f4d Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 08:39:40 +0200 -Subject: [PATCH 030/236] Fix bug on FDT nodes with compatible property +Subject: [PATCH 030/238] Fix bug on FDT nodes with compatible property --- grub-core/bus/fdt.c | 2 ++ @@ -21,5 +21,5 @@ index 6fb077000a5..34d53545732 100644 while (compatible < compatible_end) { -- -2.15.0 +2.17.0 diff --git a/0031-fdtbus-Add-ability-to-send-receive-messages-on-paren.patch b/0031-fdtbus-Add-ability-to-send-receive-messages-on-paren.patch index 5ede963a..555b3cc2 100644 --- a/0031-fdtbus-Add-ability-to-send-receive-messages-on-paren.patch +++ b/0031-fdtbus-Add-ability-to-send-receive-messages-on-paren.patch @@ -1,7 +1,7 @@ From c4313c812dc14e82a774b580b5e34d40e7f3fae6 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 08:40:29 +0200 -Subject: [PATCH 031/236] fdtbus: Add ability to send/receive messages on +Subject: [PATCH 031/238] fdtbus: Add ability to send/receive messages on parent busses. --- @@ -130,5 +130,5 @@ index 985837e55f6..f519c40ec35 100644 /* dtb is assumed to be unfreeable and must remain valid for lifetime of GRUB. -- -2.15.0 +2.17.0 diff --git a/0032-rk3288_spi-Add-SPI-driver.patch b/0032-rk3288_spi-Add-SPI-driver.patch index 718ab008..cbc83ed2 100644 --- a/0032-rk3288_spi-Add-SPI-driver.patch +++ b/0032-rk3288_spi-Add-SPI-driver.patch @@ -1,7 +1,7 @@ From b0b1b81a11f8bae8ab9e8edd87ac3f4f7949d03b Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 08:42:14 +0200 -Subject: [PATCH 032/236] rk3288_spi: Add SPI driver +Subject: [PATCH 032/238] rk3288_spi: Add SPI driver --- grub-core/Makefile.core.def | 1 + @@ -161,5 +161,5 @@ index 09cd7fe328c..26950534270 100644 #endif /* ! ASM_FILE */ -- -2.15.0 +2.17.0 diff --git a/0033-arm_coreboot-Add-Chromebook-keyboard-driver.patch b/0033-arm_coreboot-Add-Chromebook-keyboard-driver.patch index b266ab6c..822c1771 100644 --- a/0033-arm_coreboot-Add-Chromebook-keyboard-driver.patch +++ b/0033-arm_coreboot-Add-Chromebook-keyboard-driver.patch @@ -1,7 +1,7 @@ From 5c3fd1b135bd73c8e3467b9b635b25ca4d360a19 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 08:47:34 +0200 -Subject: [PATCH 033/236] arm_coreboot: Add Chromebook keyboard driver. +Subject: [PATCH 033/238] arm_coreboot: Add Chromebook keyboard driver. --- grub-core/term/arm/cros.c | 125 +++++++++++++++++++++++ @@ -415,5 +415,5 @@ index 00000000000..45a372572a5 + +#endif -- -2.15.0 +2.17.0 diff --git a/0034-Missing-parts-of-previous-commit.patch b/0034-Missing-parts-of-previous-commit.patch index 9a5734e8..7e131524 100644 --- a/0034-Missing-parts-of-previous-commit.patch +++ b/0034-Missing-parts-of-previous-commit.patch @@ -1,7 +1,7 @@ From c6eaa982d12e3cfc5465dda5ea372774188b6b81 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 09:02:15 +0200 -Subject: [PATCH 034/236] Missing parts of previous commit +Subject: [PATCH 034/238] Missing parts of previous commit --- grub-core/Makefile.core.def | 2 ++ @@ -34,5 +34,5 @@ index 0126ff6381a..8d8c5b8291e 100644 } -- -2.15.0 +2.17.0 diff --git a/0035-coreboot-Changed-cbmemc-to-support-updated-console-f.patch b/0035-coreboot-Changed-cbmemc-to-support-updated-console-f.patch index 40a47e4e..811a3655 100644 --- a/0035-coreboot-Changed-cbmemc-to-support-updated-console-f.patch +++ b/0035-coreboot-Changed-cbmemc-to-support-updated-console-f.patch @@ -1,7 +1,7 @@ From 70b555a52a065b2beb91e6fc97a6b358c931b303 Mon Sep 17 00:00:00 2001 From: Julius Werner Date: Tue, 9 May 2017 09:03:02 +0200 -Subject: [PATCH 035/236] coreboot: Changed cbmemc to support updated console +Subject: [PATCH 035/238] coreboot: Changed cbmemc to support updated console format from coreboot. --- @@ -94,5 +94,5 @@ index 129248c7f47..cea9b84315b 100644 } -- -2.15.0 +2.17.0 diff --git a/0036-at_keyboard-Fix-falco-chromebook-case.patch b/0036-at_keyboard-Fix-falco-chromebook-case.patch index 267e7dcb..817acba6 100644 --- a/0036-at_keyboard-Fix-falco-chromebook-case.patch +++ b/0036-at_keyboard-Fix-falco-chromebook-case.patch @@ -1,7 +1,7 @@ From c4b8bec5fee4e30a165fd14a188cf3ab8eccd095 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 14:27:52 +0200 -Subject: [PATCH 036/236] at_keyboard: Fix falco chromebook case. +Subject: [PATCH 036/238] at_keyboard: Fix falco chromebook case. EC is slow, so we need few delays for it to toggle the bits correctly. @@ -85,5 +85,5 @@ index b031523eb7d..bcb4d9ba78f 100644 #define KEYBOARD_ISMAKE(x) !((x) & 0x80) #define KEYBOARD_ISREADY(x) ((x) & 0x01) -- -2.15.0 +2.17.0 diff --git a/0037-sparc64-Close-cdboot-ihandle.patch b/0037-sparc64-Close-cdboot-ihandle.patch index 3e0377e3..5409e3bc 100644 --- a/0037-sparc64-Close-cdboot-ihandle.patch +++ b/0037-sparc64-Close-cdboot-ihandle.patch @@ -1,7 +1,7 @@ From bd4e40aadded7093908d786d03b4acf60b7b1707 Mon Sep 17 00:00:00 2001 From: Eric Snowberg Date: Thu, 11 May 2017 18:42:23 -0700 -Subject: [PATCH 037/236] sparc64: Close cdboot ihandle +Subject: [PATCH 037/238] sparc64: Close cdboot ihandle The ihandle is left open with a cd-core image. This will cause a delay booting grub from a virtual cdrom in a LDOM. It will also cause problems @@ -44,5 +44,5 @@ index 586efb4014e..9ea9b4e0662 100644 mov 512, %o3 #endif -- -2.15.0 +2.17.0 diff --git a/0038-arm64-xen_boot-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch b/0038-arm64-xen_boot-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch index ce2db872..4cc826f1 100644 --- a/0038-arm64-xen_boot-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch +++ b/0038-arm64-xen_boot-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch @@ -1,7 +1,7 @@ From ae5817f1dcbf0b99f7a849f56afe442165317840 Mon Sep 17 00:00:00 2001 From: Julien Grall Date: Fri, 19 Feb 2016 16:28:52 +0000 -Subject: [PATCH 038/236] arm64/xen_boot: Fix Xen boot using GRUB2 on AARCH64 +Subject: [PATCH 038/238] arm64/xen_boot: Fix Xen boot using GRUB2 on AARCH64 Xen is currently crashing because of malformed compatible property for the boot module. This is because the property string is not @@ -28,5 +28,5 @@ index a914eb8e2df..8ae43d7e894 100644 return grub_error (GRUB_ERR_IO, "failed to update FDT"); -- -2.15.0 +2.17.0 diff --git a/0039-arm64-Add-nounzip-option-support-in-xen_module-comma.patch b/0039-arm64-Add-nounzip-option-support-in-xen_module-comma.patch index d5ac53df..6f48184f 100644 --- a/0039-arm64-Add-nounzip-option-support-in-xen_module-comma.patch +++ b/0039-arm64-Add-nounzip-option-support-in-xen_module-comma.patch @@ -1,7 +1,7 @@ From 8eed7be8a61c295df700e918744a984162378ca9 Mon Sep 17 00:00:00 2001 From: Fu Wei Date: Sun, 14 May 2017 15:43:45 +0800 -Subject: [PATCH 039/236] arm64: Add "--nounzip" option support in xen_module +Subject: [PATCH 039/238] arm64: Add "--nounzip" option support in xen_module command This patch adds "--nounzip" option support in order to @@ -52,5 +52,5 @@ index 8ae43d7e894..27ede46cac5 100644 if (!file) goto fail; -- -2.15.0 +2.17.0 diff --git a/0040-util-grub.d-20_linux_xen.in-Add-xen_boot-command-sup.patch b/0040-util-grub.d-20_linux_xen.in-Add-xen_boot-command-sup.patch index db29427e..d95f3919 100644 --- a/0040-util-grub.d-20_linux_xen.in-Add-xen_boot-command-sup.patch +++ b/0040-util-grub.d-20_linux_xen.in-Add-xen_boot-command-sup.patch @@ -1,7 +1,7 @@ From d33045ce7ffcb7c1e4a60c14d5ca64b36e3c5abe Mon Sep 17 00:00:00 2001 From: Fu Wei Date: Sun, 14 May 2017 15:43:46 +0800 -Subject: [PATCH 040/236] util/grub.d/20_linux_xen.in: Add xen_boot command +Subject: [PATCH 040/238] util/grub.d/20_linux_xen.in: Add xen_boot command support for aarch64 This patch adds the support of xen_boot command for aarch64: @@ -59,5 +59,5 @@ index c48af948d6e..c002fc9f946 100644 linux=`version_find_latest $list` gettext_printf "Found linux image: %s\n" "$linux" >&2 -- -2.15.0 +2.17.0 diff --git a/0041-arm64-Update-the-introduction-of-Xen-boot-commands-i.patch b/0041-arm64-Update-the-introduction-of-Xen-boot-commands-i.patch index 676aa99e..e0e968f8 100644 --- a/0041-arm64-Update-the-introduction-of-Xen-boot-commands-i.patch +++ b/0041-arm64-Update-the-introduction-of-Xen-boot-commands-i.patch @@ -1,7 +1,7 @@ From 26c2f306fd425d2c0348023b8dcb7eb40a01851a Mon Sep 17 00:00:00 2001 From: Fu Wei Date: Sun, 14 May 2017 15:43:47 +0800 -Subject: [PATCH 041/236] arm64: Update the introduction of Xen boot commands +Subject: [PATCH 041/238] arm64: Update the introduction of Xen boot commands in docs/grub.texi delete: xen_linux, xen_initrd, xen_xsm @@ -89,5 +89,5 @@ index e935af33ea5..a0c4b9e4e8e 100644 @section The list of networking commands -- -2.15.0 +2.17.0 diff --git a/0042-sparc64-Don-t-use-devspec-to-determine-the-OBP-path.patch b/0042-sparc64-Don-t-use-devspec-to-determine-the-OBP-path.patch index 62ea75fc..fe5dcd12 100644 --- a/0042-sparc64-Don-t-use-devspec-to-determine-the-OBP-path.patch +++ b/0042-sparc64-Don-t-use-devspec-to-determine-the-OBP-path.patch @@ -1,7 +1,7 @@ From f8679cedff703b437171f4708d46adbfcff80a65 Mon Sep 17 00:00:00 2001 From: Eric Snowberg Date: Thu, 18 May 2017 17:10:22 -0600 -Subject: [PATCH 042/236] sparc64: Don't use devspec to determine the OBP path +Subject: [PATCH 042/238] sparc64: Don't use devspec to determine the OBP path Don't use devspec to determine the OBP path on SPARC hardware. Within all versions of Linux on SPARC, the devspec returns one of three values: @@ -49,5 +49,5 @@ index a79682a5e31..dce4e59d081 100644 if (fd < 0 || fstat (fd, &st) < 0) { -- -2.15.0 +2.17.0 diff --git a/0043-Allow-GRUB-to-mount-ext2-3-4-filesystems-that-have-t.patch b/0043-Allow-GRUB-to-mount-ext2-3-4-filesystems-that-have-t.patch index 54f74f1a..7f52cd81 100644 --- a/0043-Allow-GRUB-to-mount-ext2-3-4-filesystems-that-have-t.patch +++ b/0043-Allow-GRUB-to-mount-ext2-3-4-filesystems-that-have-t.patch @@ -1,7 +1,7 @@ From 734668238fcc0ef691a080839e04f33854fa133a Mon Sep 17 00:00:00 2001 From: Eric Biggers Date: Thu, 29 Jun 2017 13:27:49 +0000 -Subject: [PATCH 043/236] Allow GRUB to mount ext2/3/4 filesystems that have +Subject: [PATCH 043/238] Allow GRUB to mount ext2/3/4 filesystems that have the encryption feature. On such a filesystem, inodes may have EXT4_ENCRYPT_FLAG set. @@ -136,5 +136,5 @@ index 88cbe7365e9..fd7e0f14b68 100644 MKE2FS_DEVICE_SECTSIZE=$SECSIZE "mkfs.$fs" -b $BLKSIZE -L "$FSLABEL" -q "${MOUNTDEVICE}" ;; xxfs) -- -2.15.0 +2.17.0 diff --git a/0044-ehci-Fix-compilation-for-amd64.patch b/0044-ehci-Fix-compilation-for-amd64.patch index 76a4c445..58c52057 100644 --- a/0044-ehci-Fix-compilation-for-amd64.patch +++ b/0044-ehci-Fix-compilation-for-amd64.patch @@ -1,7 +1,7 @@ From edb37fb30bbc8a3b6bec67911c7200e4eb071127 Mon Sep 17 00:00:00 2001 From: phcoder Date: Sun, 9 Jul 2017 20:58:31 +0200 -Subject: [PATCH 044/236] ehci: Fix compilation for amd64 +Subject: [PATCH 044/238] ehci: Fix compilation for amd64 --- grub-core/bus/usb/ehci.c | 8 ++++---- @@ -34,5 +34,5 @@ index c772e76546e..7b7061f5335 100644 grub_ehci_oper_read32 (e, GRUB_EHCI_COMMAND)); grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: STATUS: %08x\n", -- -2.15.0 +2.17.0 diff --git a/0045-cache-Fix-compilation-for-ppc-sparc-and-arm64.patch b/0045-cache-Fix-compilation-for-ppc-sparc-and-arm64.patch index d5780d5b..5c097de2 100644 --- a/0045-cache-Fix-compilation-for-ppc-sparc-and-arm64.patch +++ b/0045-cache-Fix-compilation-for-ppc-sparc-and-arm64.patch @@ -1,7 +1,7 @@ From d8901e3ba115d705c9c08ecedd201aca8b4867b8 Mon Sep 17 00:00:00 2001 From: phcoder Date: Sun, 9 Jul 2017 20:59:15 +0200 -Subject: [PATCH 045/236] cache: Fix compilation for ppc, sparc and arm64 +Subject: [PATCH 045/238] cache: Fix compilation for ppc, sparc and arm64 --- include/grub/cache.h | 4 +++- @@ -23,5 +23,5 @@ index 1c98ce270b6..ccfa717e669 100644 grub_arch_sync_dma_caches (volatile void *address __attribute__ ((unused)), grub_size_t len __attribute__ ((unused))) -- -2.15.0 +2.17.0 diff --git a/0046-ehci-Fix-compilation-on-i386.patch b/0046-ehci-Fix-compilation-on-i386.patch index 13894a86..a8b8f71d 100644 --- a/0046-ehci-Fix-compilation-on-i386.patch +++ b/0046-ehci-Fix-compilation-on-i386.patch @@ -1,7 +1,7 @@ From 284afab081ef7ed7db2c59151853aa3c92d988f2 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Sun, 9 Jul 2017 21:31:19 +0200 -Subject: [PATCH 046/236] ehci: Fix compilation on i386 +Subject: [PATCH 046/238] ehci: Fix compilation on i386 --- grub-core/bus/usb/ehci.c | 4 ++-- @@ -30,5 +30,5 @@ index 7b7061f5335..d966fc21002 100644 grub_ehci_oper_read32 (e, GRUB_EHCI_COMMAND)); grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: STATUS: %08x\n", -- -2.15.0 +2.17.0 diff --git a/0047-crypto-Fix-use-after-free.patch b/0047-crypto-Fix-use-after-free.patch index 0e1da467..8b8e9534 100644 --- a/0047-crypto-Fix-use-after-free.patch +++ b/0047-crypto-Fix-use-after-free.patch @@ -1,7 +1,7 @@ From a0fe0c26aa8a1c0ad66d9527611bd726b849c623 Mon Sep 17 00:00:00 2001 From: AppChecker Date: Sun, 9 Jul 2017 21:57:35 +0200 -Subject: [PATCH 047/236] crypto: Fix use after free. +Subject: [PATCH 047/238] crypto: Fix use after free. Reported by: AppChecker Transformed to patch by: Satish Govindarajan @@ -24,5 +24,5 @@ index 2bfd67c8ef3..e6d345f3345 100644 } cur->next = crypto_specs; -- -2.15.0 +2.17.0 diff --git a/0048-arm-efi-Fix-compilation.patch b/0048-arm-efi-Fix-compilation.patch index 8be43919..40701e53 100644 --- a/0048-arm-efi-Fix-compilation.patch +++ b/0048-arm-efi-Fix-compilation.patch @@ -1,7 +1,7 @@ From cb8b7e4e36bf32dccbbba8252aa44ad3ada4fbc1 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Sun, 9 Jul 2017 21:48:37 +0000 -Subject: [PATCH 048/236] arm-efi: Fix compilation +Subject: [PATCH 048/238] arm-efi: Fix compilation --- grub-core/loader/arm/linux.c | 8 ++++---- @@ -37,5 +37,5 @@ index 260cbf06861..e64c79a9577 100644 } -- -2.15.0 +2.17.0 diff --git a/0049-fdt-silence-clang-warning.patch b/0049-fdt-silence-clang-warning.patch index cb859d08..f967094f 100644 --- a/0049-fdt-silence-clang-warning.patch +++ b/0049-fdt-silence-clang-warning.patch @@ -1,7 +1,7 @@ From 68d54b55f49249c5e0517bf189f0f3df7ee6a36f Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 10 Jul 2017 01:34:22 +0000 -Subject: [PATCH 049/236] fdt: silence clang warning. +Subject: [PATCH 049/238] fdt: silence clang warning. --- grub-core/lib/fdt.c | 3 ++- @@ -22,5 +22,5 @@ index bdc6302448d..2705f2629b9 100644 return 0; return token; -- -2.15.0 +2.17.0 diff --git a/0050-Fix-a-segfault-in-lsefi.patch b/0050-Fix-a-segfault-in-lsefi.patch index 68534fd1..0348702c 100644 --- a/0050-Fix-a-segfault-in-lsefi.patch +++ b/0050-Fix-a-segfault-in-lsefi.patch @@ -1,7 +1,7 @@ From e8ab5a1a9e2889eb59d1fa494ba441a53698dcd2 Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Wed, 19 Jul 2017 15:47:41 -0400 -Subject: [PATCH 050/236] Fix a segfault in lsefi +Subject: [PATCH 050/238] Fix a segfault in lsefi when protocols_per_handle returns error, we can't use the pointers we passed to it, and that includes trusting num_protocols. @@ -29,5 +29,5 @@ index d901c389263..d1ce99af438 100644 { for (k = 0; k < ARRAY_SIZE (known_protocols); k++) -- -2.15.0 +2.17.0 diff --git a/0051-zfs-remove-size_t-typedef-and-use-grub_size_t-instea.patch b/0051-zfs-remove-size_t-typedef-and-use-grub_size_t-instea.patch index c9aecbb4..8524ed4d 100644 --- a/0051-zfs-remove-size_t-typedef-and-use-grub_size_t-instea.patch +++ b/0051-zfs-remove-size_t-typedef-and-use-grub_size_t-instea.patch @@ -1,7 +1,7 @@ From fa42786264cef98c56e972b3bb6b8448000e1c70 Mon Sep 17 00:00:00 2001 From: Pete Batard Date: Thu, 3 Aug 2017 15:46:15 +0100 -Subject: [PATCH 051/236] zfs: remove size_t typedef and use grub_size_t +Subject: [PATCH 051/238] zfs: remove size_t typedef and use grub_size_t instead * Prevents some toolchains from issuing a warning on size_t redef. @@ -55,5 +55,5 @@ index 2f73449f0d4..5453822d025 100644 const int dec2 = 0; #endif -- -2.15.0 +2.17.0 diff --git a/0052-udf-Fix-reading-label-lvd.ident-is-dstring.patch b/0052-udf-Fix-reading-label-lvd.ident-is-dstring.patch index cc245806..f6157f1e 100644 --- a/0052-udf-Fix-reading-label-lvd.ident-is-dstring.patch +++ b/0052-udf-Fix-reading-label-lvd.ident-is-dstring.patch @@ -1,7 +1,7 @@ From 76188809d5ca40c5285b0ab202b5edea7be3f04d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pali=20Roh=C3=A1r?= Date: Thu, 22 Jun 2017 14:33:17 +0200 -Subject: [PATCH 052/236] udf: Fix reading label, lvd.ident is dstring +Subject: [PATCH 052/238] udf: Fix reading label, lvd.ident is dstring UDF dstring has stored length in the last byte of buffer. Therefore last byte is not part of recorded characters. And empty string in dstring is @@ -50,5 +50,5 @@ index 839bff88963..2587456336e 100644 } else -- -2.15.0 +2.17.0 diff --git a/0053-grub-core-fs-udf.c-Add-support-for-UUID.patch b/0053-grub-core-fs-udf.c-Add-support-for-UUID.patch index 1602078b..fe1e4d9e 100644 --- a/0053-grub-core-fs-udf.c-Add-support-for-UUID.patch +++ b/0053-grub-core-fs-udf.c-Add-support-for-UUID.patch @@ -1,7 +1,7 @@ From 435fa75e01ef40917239c7f775e505e86f70d202 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pali=20Roh=C3=A1r?= Date: Thu, 22 Jun 2017 14:42:16 +0200 -Subject: [PATCH 053/236] * grub-core/fs/udf.c: Add support for UUID +Subject: [PATCH 053/238] * grub-core/fs/udf.c: Add support for UUID Use same algorithm as in libblkid from util-linux v2.30. @@ -187,5 +187,5 @@ index 2587456336e..00a16098b47 100644 .reserved_first_sector = 1, .blocklist_install = 1, -- -2.15.0 +2.17.0 diff --git a/0054-mkrescue-Check-xorriso-presence-before-doing-anythin.patch b/0054-mkrescue-Check-xorriso-presence-before-doing-anythin.patch index cdcb5e5f..4e07de30 100644 --- a/0054-mkrescue-Check-xorriso-presence-before-doing-anythin.patch +++ b/0054-mkrescue-Check-xorriso-presence-before-doing-anythin.patch @@ -1,7 +1,7 @@ From 9e962fd3c42081e2eef1f99a0eaab38fd04d2620 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 7 Aug 2017 18:05:17 +0200 -Subject: [PATCH 054/236] mkrescue: Check xorriso presence before doing +Subject: [PATCH 054/238] mkrescue: Check xorriso presence before doing anything else. mkrescue can't do anything useful without xorriso, so abort early if it's @@ -46,5 +46,5 @@ index 238d4840e2f..38f1543974e 100644 grub_hostfs_init (); grub_host_init (); -- -2.15.0 +2.17.0 diff --git a/0055-Fail-if-xorriso-failed.patch b/0055-Fail-if-xorriso-failed.patch index 464a4ed7..62c0e807 100644 --- a/0055-Fail-if-xorriso-failed.patch +++ b/0055-Fail-if-xorriso-failed.patch @@ -1,7 +1,7 @@ From e66dc5d71ebfc9763420a76c274e6980d54641c3 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 7 Aug 2017 18:08:39 +0200 -Subject: [PATCH 055/236] Fail if xorriso failed. +Subject: [PATCH 055/238] Fail if xorriso failed. If xorriso failed most likely we didn't generate a meaningful image. --- @@ -40,5 +40,5 @@ index 38f1543974e..9545945d8f3 100644 grub_util_unlink_recursive (iso9660_dir); -- -2.15.0 +2.17.0 diff --git a/0056-efi-refactor-grub_efi_allocate_pages.patch b/0056-efi-refactor-grub_efi_allocate_pages.patch index 45cd1ec0..d2c40cd3 100644 --- a/0056-efi-refactor-grub_efi_allocate_pages.patch +++ b/0056-efi-refactor-grub_efi_allocate_pages.patch @@ -1,7 +1,7 @@ From dd5fde2df83c5c03b7ba04d2cc5b7be96de8da7b Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:23 +0100 -Subject: [PATCH 056/236] efi: refactor grub_efi_allocate_pages +Subject: [PATCH 056/238] efi: refactor grub_efi_allocate_pages Expose a new function, grub_efi_allocate_pages_real(), making it possible to specify allocation type and memory type as supported by the UEFI @@ -116,5 +116,5 @@ index e9c601f3410..b4cbebf3828 100644 grub_efi_uintn_t pages); void EXPORT_FUNC(grub_efi_free_pages) (grub_efi_physical_address_t address, -- -2.15.0 +2.17.0 diff --git a/0057-Remove-grub_efi_allocate_pages.patch b/0057-Remove-grub_efi_allocate_pages.patch index e0ef4a90..279e1914 100644 --- a/0057-Remove-grub_efi_allocate_pages.patch +++ b/0057-Remove-grub_efi_allocate_pages.patch @@ -1,7 +1,7 @@ From 4bc909bf89f5b4ff86c9e4e609d4fe0c11a66b0c Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 7 Aug 2017 18:33:29 +0200 -Subject: [PATCH 057/236] Remove grub_efi_allocate_pages. +Subject: [PATCH 057/238] Remove grub_efi_allocate_pages. grub_efi_allocate_pages Essentially does 2 unrelated things: * Allocate at fixed address. @@ -248,5 +248,5 @@ index b4cbebf3828..3fa082816ca 100644 grub_efi_uintn_t pages); int -- -2.15.0 +2.17.0 diff --git a/0058-efi-move-fdt-helper-library.patch b/0058-efi-move-fdt-helper-library.patch index e33cc976..d570d98b 100644 --- a/0058-efi-move-fdt-helper-library.patch +++ b/0058-efi-move-fdt-helper-library.patch @@ -1,7 +1,7 @@ From 8c9465fac901caac6802d6872a1374518b001517 Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:24 +0100 -Subject: [PATCH 058/236] efi: move fdt helper library +Subject: [PATCH 058/238] efi: move fdt helper library There is nothing ARM64 (or even ARM) specific about the efi fdt helper library, which is used for locating or overriding a firmware-provided @@ -89,5 +89,5 @@ similarity index 100% rename from include/grub/arm64/fdtload.h rename to include/grub/efi/fdtload.h -- -2.15.0 +2.17.0 diff --git a/0059-efi-Add-GRUB_PE32_MAGIC-definition.patch b/0059-efi-Add-GRUB_PE32_MAGIC-definition.patch index 6806e52c..2554c5df 100644 --- a/0059-efi-Add-GRUB_PE32_MAGIC-definition.patch +++ b/0059-efi-Add-GRUB_PE32_MAGIC-definition.patch @@ -1,7 +1,7 @@ From c5841ba7f0d14c193f20854e7e55b4f7ce9207d5 Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:25 +0100 -Subject: [PATCH 059/236] efi: Add GRUB_PE32_MAGIC definition +Subject: [PATCH 059/238] efi: Add GRUB_PE32_MAGIC definition Add a generic GRUB_PE32_MAGIC definition for the PE 'MZ' tag and delete the existing one in arm64/linux.h. @@ -55,5 +55,5 @@ index f79c36c026e..7d44732d2c3 100644 But some examples (such as EFI drivers in the Intel Sample Implementation) use 32 bytes (0x20) instead, and it seems -- -2.15.0 +2.17.0 diff --git a/0060-arm64-linux-loader-improve-type-portability.patch b/0060-arm64-linux-loader-improve-type-portability.patch index dc14a375..c7a2dda5 100644 --- a/0060-arm64-linux-loader-improve-type-portability.patch +++ b/0060-arm64-linux-loader-improve-type-portability.patch @@ -1,7 +1,7 @@ From 91212e0aa07e704a61e4540c18a27f149f5e51c3 Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:26 +0100 -Subject: [PATCH 060/236] arm64 linux loader: improve type portability +Subject: [PATCH 060/238] arm64 linux loader: improve type portability In preparation for turning this into a common loader for 32-bit and 64-bit platforms, ensure the code will compile cleanly for either. @@ -111,5 +111,5 @@ index 091e9ddf43d..17212c38d0b 100644 fdt = NULL; } -- -2.15.0 +2.17.0 diff --git a/0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch b/0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch index b47bdcb5..197ce137 100644 --- a/0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch +++ b/0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch @@ -1,7 +1,7 @@ From f826330683675f0deb55b58fd229afd7d65fb053 Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:32 +0100 -Subject: [PATCH 061/236] efi: change heap allocation type to +Subject: [PATCH 061/238] efi: change heap allocation type to GRUB_EFI_LOADER_CODE With upcoming changes to EDK2, allocations of type EFI_LOADER_DATA may @@ -32,5 +32,5 @@ index b97b05fe825..ac2a4c556b8 100644 grub_fatal ("cannot allocate conventional memory %p with %u pages", (void *) ((grub_addr_t) start), -- -2.15.0 +2.17.0 diff --git a/0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch b/0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch index 4d6661e5..8d034118 100644 --- a/0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch +++ b/0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch @@ -1,7 +1,7 @@ From bdd89d239cd9b4089630bfb5ec862aab8086dca2 Mon Sep 17 00:00:00 2001 From: Pete Batard Date: Mon, 7 Aug 2017 16:20:30 +0100 -Subject: [PATCH 062/236] core: use GRUB_TERM_ definitions when handling term +Subject: [PATCH 062/238] core: use GRUB_TERM_ definitions when handling term characters * Also use hex value for GRUB_TERM_ESC as '\e' is not in the C standard and is not understood by some compilers @@ -261,5 +261,5 @@ index 5ffb38f69aa..8117e2a24da 100644 #define GRUB_TERM_BACKSPACE '\b' -- -2.15.0 +2.17.0 diff --git a/0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch b/0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch index aee767f4..086cfb83 100644 --- a/0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch +++ b/0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch @@ -1,7 +1,7 @@ From 1deebd85ef87cc581e995ce0a51dc0802ac9c367 Mon Sep 17 00:00:00 2001 From: Pete Batard Date: Mon, 7 Aug 2017 16:23:12 +0100 -Subject: [PATCH 063/236] io: add a GRUB_GZ prefix to gzio specific defines +Subject: [PATCH 063/238] io: add a GRUB_GZ prefix to gzio specific defines * This is done to avoid a conflict with a PACKED define in the EDK2 --- @@ -81,5 +81,5 @@ index 0f2ea6bd845..a8e33033bf8 100644 /* TRANSLATORS: It's about given file having some strange format, not complete lack of gzip support. */ -- -2.15.0 +2.17.0 diff --git a/0064-re-write-.gitignore.patch b/0064-re-write-.gitignore.patch index a5ec130b..7cf32631 100644 --- a/0064-re-write-.gitignore.patch +++ b/0064-re-write-.gitignore.patch @@ -1,7 +1,7 @@ From 38bfcd3054c28aa40234840c12d900f1d18a217d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 8 Aug 2017 12:48:04 -0400 -Subject: [PATCH 064/236] re-write .gitignore +Subject: [PATCH 064/238] re-write .gitignore --- .gitignore | 352 ++++++++++++-------------------------- @@ -496,5 +496,5 @@ index 00000000000..b7e1eb12428 @@ -0,0 +1 @@ +grub -- -2.15.0 +2.17.0 diff --git a/0065-IBM-client-architecture-CAS-reboot-support.patch b/0065-IBM-client-architecture-CAS-reboot-support.patch index 113d604d..750b54d9 100644 --- a/0065-IBM-client-architecture-CAS-reboot-support.patch +++ b/0065-IBM-client-architecture-CAS-reboot-support.patch @@ -1,7 +1,7 @@ From bf1fd830091fff49e26f39027e0db8fd4b688624 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Thu, 20 Sep 2012 18:07:39 -0300 -Subject: [PATCH 065/236] IBM client architecture (CAS) reboot support +Subject: [PATCH 065/238] IBM client architecture (CAS) reboot support This is an implementation of IBM client architecture (CAS) reboot for GRUB. @@ -170,5 +170,5 @@ index 8e425130327..9f26c69a2df 100644 #define FOR_IEEE1275_DEVALIASES(alias) for (grub_ieee1275_devalias_init_iterator (&(alias)); grub_ieee1275_devalias_next (&(alias));) -- -2.15.0 +2.17.0 diff --git a/0066-for-ppc-reset-console-display-attr-when-clear-screen.patch b/0066-for-ppc-reset-console-display-attr-when-clear-screen.patch index f053d08c..422e16a1 100644 --- a/0066-for-ppc-reset-console-display-attr-when-clear-screen.patch +++ b/0066-for-ppc-reset-console-display-attr-when-clear-screen.patch @@ -1,7 +1,7 @@ From 8b30fab3c07a9fc8549e404c411b747b960c57b2 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Wed, 24 Apr 2013 10:51:48 -0300 -Subject: [PATCH 066/236] for ppc, reset console display attr when clear screen +Subject: [PATCH 066/238] for ppc, reset console display attr when clear screen v2: Also use \x0c instead of a literal ^L to make future patches less awkward. @@ -28,5 +28,5 @@ index d317efa368d..29df35e6d20 100644 data->reverse_video_off = grub_strdup ("\e[m"); if (grub_strcmp ("ieee1275", str) == 0) -- -2.15.0 +2.17.0 diff --git a/0067-Disable-GRUB-video-support-for-IBM-power-machines.patch b/0067-Disable-GRUB-video-support-for-IBM-power-machines.patch index b6061621..7feef6fa 100644 --- a/0067-Disable-GRUB-video-support-for-IBM-power-machines.patch +++ b/0067-Disable-GRUB-video-support-for-IBM-power-machines.patch @@ -1,7 +1,7 @@ From 45322cbc9402639a431fc0f33bd76e387e6f02bf Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 11 Jun 2013 15:14:05 -0300 -Subject: [PATCH 067/236] Disable GRUB video support for IBM power machines +Subject: [PATCH 067/238] Disable GRUB video support for IBM power machines Should fix the problem in bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=973205 @@ -61,5 +61,5 @@ index 9f26c69a2df..ab4f284c341 100644 extern int EXPORT_FUNC(grub_ieee1275_test_flag) (enum grub_ieee1275_flag flag); -- -2.15.0 +2.17.0 diff --git a/0068-Honor-a-symlink-when-generating-configuration-by-gru.patch b/0068-Honor-a-symlink-when-generating-configuration-by-gru.patch index 722131b4..cb3aac9d 100644 --- a/0068-Honor-a-symlink-when-generating-configuration-by-gru.patch +++ b/0068-Honor-a-symlink-when-generating-configuration-by-gru.patch @@ -1,7 +1,7 @@ From c29e260c9f41f4f802fa852b6c46fb2e5d912cb6 Mon Sep 17 00:00:00 2001 From: Marcel Kolaja Date: Tue, 21 Jan 2014 10:57:08 -0500 -Subject: [PATCH 068/236] Honor a symlink when generating configuration by +Subject: [PATCH 068/238] Honor a symlink when generating configuration by grub2-mkconfig Honor a symlink when generating configuration by grub2-mkconfig, so that @@ -25,5 +25,5 @@ index f8496d28bdf..3b070fd7632 100644 fi -- -2.15.0 +2.17.0 diff --git a/0069-Move-bash-completion-script-922997.patch b/0069-Move-bash-completion-script-922997.patch index 6c5d8612..6365c571 100644 --- a/0069-Move-bash-completion-script-922997.patch +++ b/0069-Move-bash-completion-script-922997.patch @@ -1,7 +1,7 @@ From 8eaf2f497a6bcffc5554509533940ac2b764b981 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 3 Apr 2013 14:35:34 -0400 -Subject: [PATCH 069/236] Move bash completion script (#922997) +Subject: [PATCH 069/238] Move bash completion script (#922997) Apparently these go in a new place now. --- @@ -51,5 +51,5 @@ index 136287cf1bf..61108f05429 100644 $(bash_completion_script): $(bash_completion_source) $(top_builddir)/config.status -- -2.15.0 +2.17.0 diff --git a/0070-Update-to-minilzo-2.08.patch b/0070-Update-to-minilzo-2.08.patch index 5cc6bebf..b316b850 100644 --- a/0070-Update-to-minilzo-2.08.patch +++ b/0070-Update-to-minilzo-2.08.patch @@ -1,7 +1,7 @@ From 9a1e99c5628bafa9e3970a5317b721da704bec6a Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Dec 2014 15:36:09 -0500 -Subject: [PATCH 070/236] Update to minilzo-2.08 +Subject: [PATCH 070/238] Update to minilzo-2.08 This fixes CVE-2014-4607 - lzo: lzo1x_decompress_safe() integer overflow @@ -8508,5 +8508,5 @@ index 74fefa9fe20..79374546748 100644 -- -2.15.0 +2.17.0 diff --git a/0071-Allow-fallback-to-include-entries-by-title-not-just-.patch b/0071-Allow-fallback-to-include-entries-by-title-not-just-.patch index 01c1c45d..d8ee4f7e 100644 --- a/0071-Allow-fallback-to-include-entries-by-title-not-just-.patch +++ b/0071-Allow-fallback-to-include-entries-by-title-not-just-.patch @@ -1,7 +1,7 @@ From 27845fb323de35e9dcaad8c738eb1a2a2bc316f8 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 5 Sep 2014 10:07:04 -0400 -Subject: [PATCH 071/236] Allow "fallback" to include entries by title, not +Subject: [PATCH 071/238] Allow "fallback" to include entries by title, not just number. Resolves: rhbz#1026084 @@ -140,5 +140,5 @@ index e7a83c2d6e2..d2f64b05e0a 100644 static int get_entry_number (grub_menu_t menu, const char *name) -- -2.15.0 +2.17.0 diff --git a/0072-Add-GRUB_DISABLE_UUID.patch b/0072-Add-GRUB_DISABLE_UUID.patch index 8e576dd1..3853e2bd 100644 --- a/0072-Add-GRUB_DISABLE_UUID.patch +++ b/0072-Add-GRUB_DISABLE_UUID.patch @@ -1,7 +1,7 @@ From 7f7429e93fa791ac2c002beaafab9b9d9bd86b89 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Sep 2014 16:49:25 -0400 -Subject: [PATCH 072/236] Add GRUB_DISABLE_UUID. +Subject: [PATCH 072/238] Add GRUB_DISABLE_UUID. This will cause "search --fs-uuid --set=root ..." not to be generated by grub2-mkconfig, and instead simply attempt to use the grub device name @@ -95,5 +95,5 @@ index 60b31caddeb..cf35e417470 100644 else echo $device |sed 's, ,_,g' -- -2.15.0 +2.17.0 diff --git a/0073-Make-exit-take-a-return-code.patch b/0073-Make-exit-take-a-return-code.patch index d80d926b..7e719c5c 100644 --- a/0073-Make-exit-take-a-return-code.patch +++ b/0073-Make-exit-take-a-return-code.patch @@ -1,7 +1,7 @@ From 384ccb1b44fc23514a59529f58f984dcc4a75cc9 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 26 Feb 2014 21:49:12 -0500 -Subject: [PATCH 073/236] Make "exit" take a return code. +Subject: [PATCH 073/238] Make "exit" take a return code. This adds "exit" with a return code. With this patch, any "exit" command /may/ include a return code, and on platforms that support @@ -255,5 +255,5 @@ index 2a9f87cc255..06208143779 100644 grub_uint64_t d, grub_uint64_t *r); -- -2.15.0 +2.17.0 diff --git a/0074-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch b/0074-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch index d83cd561..31ff5578 100644 --- a/0074-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch +++ b/0074-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch @@ -1,7 +1,7 @@ From 939f3dfcfacde13bd7ebfe411c0dceee9e5ed0ae Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 22 Jul 2015 11:21:01 -0400 -Subject: [PATCH 074/236] Mark po/exclude.pot as binary so git won't try to +Subject: [PATCH 074/238] Mark po/exclude.pot as binary so git won't try to diff nonprintables. Signed-off-by: Peter Jones @@ -18,5 +18,5 @@ index 00000000000..33ffaa40460 @@ -0,0 +1 @@ +po/exclude.pot binary -- -2.15.0 +2.17.0 diff --git a/0075-Make-efi-machines-load-an-env-block-from-a-variable.patch b/0075-Make-efi-machines-load-an-env-block-from-a-variable.patch index 0453632e..9a529949 100644 --- a/0075-Make-efi-machines-load-an-env-block-from-a-variable.patch +++ b/0075-Make-efi-machines-load-an-env-block-from-a-variable.patch @@ -1,7 +1,7 @@ From 805220eb48a8cabcc83628d90aa40f3204b21a71 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 7 Dec 2015 14:20:49 -0500 -Subject: [PATCH 075/236] Make efi machines load an env block from a variable +Subject: [PATCH 075/238] Make efi machines load an env block from a variable Signed-off-by: Peter Jones --- @@ -80,5 +80,5 @@ index 2c31847bf6d..f7782b6e114 100644 char **path); -- -2.15.0 +2.17.0 diff --git a/0076-DHCP-client-ID-and-UUID-options-added.patch b/0076-DHCP-client-ID-and-UUID-options-added.patch index 01f51ccd..56b9a6b2 100644 --- a/0076-DHCP-client-ID-and-UUID-options-added.patch +++ b/0076-DHCP-client-ID-and-UUID-options-added.patch @@ -1,7 +1,7 @@ From cefc164d655fb7709efbc37a317952ff3ec4aeb3 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 27 Nov 2012 17:18:53 -0200 -Subject: [PATCH 076/236] DHCP client ID and UUID options added. +Subject: [PATCH 076/238] DHCP client ID and UUID options added. --- grub-core/net/bootp.c | 87 ++++++++++++++++++++++++++++++++++++++++++++++----- @@ -141,5 +141,5 @@ index 1096b24322e..e266bae23f4 100644 }; -- -2.15.0 +2.17.0 diff --git a/0077-trim-arp-packets-with-abnormal-size.patch b/0077-trim-arp-packets-with-abnormal-size.patch index 699ce29d..a6b002b5 100644 --- a/0077-trim-arp-packets-with-abnormal-size.patch +++ b/0077-trim-arp-packets-with-abnormal-size.patch @@ -1,7 +1,7 @@ From 571a6cce3b0d4c8abf11efc320e2de6ff9188d60 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Wed, 5 Feb 2014 09:42:42 -0200 -Subject: [PATCH 077/236] trim arp packets with abnormal size +Subject: [PATCH 077/238] trim arp packets with abnormal size GRUB uses arp request to create the arp response. If the incoming packet is foobared, GRUB needs to trim the arp response packet before sending it. @@ -27,5 +27,5 @@ index 54306e3b16d..d1c69ed2b55 100644 struct grub_net_buff nb_reply; struct arppkt *arp_reply; -- -2.15.0 +2.17.0 diff --git a/0078-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch b/0078-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch index b66a9a00..3143e40f 100644 --- a/0078-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch +++ b/0078-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch @@ -1,7 +1,7 @@ From 6cd959a64f588e256f0ba17e31bf2720b9cdec88 Mon Sep 17 00:00:00 2001 From: Prarit Bhargava Date: Wed, 12 Mar 2014 10:58:16 -0400 -Subject: [PATCH 078/236] Fix bad test on GRUB_DISABLE_SUBMENU. +Subject: [PATCH 078/238] Fix bad test on GRUB_DISABLE_SUBMENU. The file /etc/grub.d/10_linux does @@ -37,5 +37,5 @@ index de9044c7f28..cf6331f2a51 100644 "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" -- -2.15.0 +2.17.0 diff --git a/0079-Add-support-for-UEFI-operating-systems-returned-by-o.patch b/0079-Add-support-for-UEFI-operating-systems-returned-by-o.patch index 553e3398..c6f923c3 100644 --- a/0079-Add-support-for-UEFI-operating-systems-returned-by-o.patch +++ b/0079-Add-support-for-UEFI-operating-systems-returned-by-o.patch @@ -1,7 +1,7 @@ From 0254265409f80b369c35fb474c7371feb6f9ae1d Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Wed, 12 Jun 2013 11:51:49 -0400 -Subject: [PATCH 079/236] Add support for UEFI operating systems returned by +Subject: [PATCH 079/238] Add support for UEFI operating systems returned by os-prober os-prober returns UEFI operating systems in the form: @@ -46,5 +46,5 @@ index 515a68c7aa0..9b8f5968e2d 100644 esac done -- -2.15.0 +2.17.0 diff --git a/0080-Migrate-PPC-from-Yaboot-to-Grub2.patch b/0080-Migrate-PPC-from-Yaboot-to-Grub2.patch index 8ec8a007..c5c318e1 100644 --- a/0080-Migrate-PPC-from-Yaboot-to-Grub2.patch +++ b/0080-Migrate-PPC-from-Yaboot-to-Grub2.patch @@ -1,7 +1,7 @@ From f2b4c105e3657cc32ed0f7aefa713f161cdf64f1 Mon Sep 17 00:00:00 2001 From: Mark Hamzy Date: Wed, 28 Mar 2012 14:46:41 -0500 -Subject: [PATCH 080/236] Migrate PPC from Yaboot to Grub2 +Subject: [PATCH 080/238] Migrate PPC from Yaboot to Grub2 Add configuration support for serial terminal consoles. This will set the maximum screen size so that text is not overwritten. @@ -150,5 +150,5 @@ index 00000000000..10d66586820 + terminfo -g ${X}x${Y} ${TERMINAL} +EOF -- -2.15.0 +2.17.0 diff --git a/0081-Add-fw_path-variable-revised.patch b/0081-Add-fw_path-variable-revised.patch index b97c7d98..623d031a 100644 --- a/0081-Add-fw_path-variable-revised.patch +++ b/0081-Add-fw_path-variable-revised.patch @@ -1,7 +1,7 @@ From 7f021a05a5ed7c97432abbc1762f40e36a4915e3 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Wed, 19 Sep 2012 21:22:55 -0300 -Subject: [PATCH 081/236] Add fw_path variable (revised) +Subject: [PATCH 081/238] Add fw_path variable (revised) This patch makes grub look for its config file on efi where the app was found. It was originally written by Matthew Garrett, and adapted to fix the @@ -77,5 +77,5 @@ index 249e19bc788..759c475c4d9 100644 prefix = grub_env_get ("prefix"); if (prefix) -- -2.15.0 +2.17.0 diff --git a/0082-Add-support-for-linuxefi.patch b/0082-Add-support-for-linuxefi.patch index 4ab2d1d2..eea05a25 100644 --- a/0082-Add-support-for-linuxefi.patch +++ b/0082-Add-support-for-linuxefi.patch @@ -1,7 +1,7 @@ From 778385965798ac2711f0d07d5cf521a6e999ca8b Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 10 Jul 2012 11:58:52 -0400 -Subject: [PATCH 082/236] Add support for linuxefi +Subject: [PATCH 082/238] Add support for linuxefi --- grub-core/Makefile.core.def | 8 + @@ -478,5 +478,5 @@ index da0ca3b83cd..fc36bdaf367 100644 /* Boot parameters for Linux based on 2.6.12. This is used by the setup -- -2.15.0 +2.17.0 diff --git a/0083-Use-linuxefi-and-initrdefi-where-appropriate.patch b/0083-Use-linuxefi-and-initrdefi-where-appropriate.patch index 9d53b7c6..e0b39dfc 100644 --- a/0083-Use-linuxefi-and-initrdefi-where-appropriate.patch +++ b/0083-Use-linuxefi-and-initrdefi-where-appropriate.patch @@ -1,7 +1,7 @@ From 793d4270384ef3373bc0b3c956cab8a8cdb75bcf Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 16 Jul 2012 18:57:11 -0400 -Subject: [PATCH 083/236] Use "linuxefi" and "initrdefi" where appropriate. +Subject: [PATCH 083/238] Use "linuxefi" and "initrdefi" where appropriate. --- util/grub.d/10_linux.in | 18 ++++++++++++++++-- @@ -46,5 +46,5 @@ index cf6331f2a51..8ccf012f747 100644 sed "s/^/$submenu_indentation/" << EOF } -- -2.15.0 +2.17.0 diff --git a/0084-Don-t-allow-insmod-when-secure-boot-is-enabled.patch b/0084-Don-t-allow-insmod-when-secure-boot-is-enabled.patch index 5efa6511..574987ae 100644 --- a/0084-Don-t-allow-insmod-when-secure-boot-is-enabled.patch +++ b/0084-Don-t-allow-insmod-when-secure-boot-is-enabled.patch @@ -1,7 +1,7 @@ From eb8fd62e887e624f5c6e7c2ee8512981e8b5be97 Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Tue, 23 Oct 2012 10:40:49 -0400 -Subject: [PATCH 084/236] Don't allow insmod when secure boot is enabled. +Subject: [PATCH 084/238] Don't allow insmod when secure boot is enabled. Hi, @@ -120,5 +120,5 @@ index 91e29ce66f1..bb3ab7dfdeb 100644 EXPORT_FUNC (grub_efi_compare_device_paths) (const grub_efi_device_path_t *dp1, const grub_efi_device_path_t *dp2); -- -2.15.0 +2.17.0 diff --git a/0085-Pass-x-hex-hex-straight-through-unmolested.patch b/0085-Pass-x-hex-hex-straight-through-unmolested.patch index 396029ec..3160fca3 100644 --- a/0085-Pass-x-hex-hex-straight-through-unmolested.patch +++ b/0085-Pass-x-hex-hex-straight-through-unmolested.patch @@ -1,7 +1,7 @@ From 0d54ed89090fc1bdcb75de474024b2b81dbf644f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 1 Oct 2012 13:24:37 -0400 -Subject: [PATCH 085/236] Pass "\x[[:hex:]][[:hex:]]" straight through +Subject: [PATCH 085/238] Pass "\x[[:hex:]][[:hex:]]" straight through unmolested. --- @@ -179,5 +179,5 @@ index ab78ca87f90..cf6cd6601d6 100644 case '$': if (escaped) -- -2.15.0 +2.17.0 diff --git a/0086-Add-X-option-to-printf-functions.patch b/0086-Add-X-option-to-printf-functions.patch index cd78e748..dc1ce19f 100644 --- a/0086-Add-X-option-to-printf-functions.patch +++ b/0086-Add-X-option-to-printf-functions.patch @@ -1,7 +1,7 @@ From 6237b1688124d6a72250b296e758ef2d59fde26f Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 27 Nov 2012 16:58:39 -0200 -Subject: [PATCH 086/236] Add %X option to printf functions. +Subject: [PATCH 086/238] Add %X option to printf functions. --- grub-core/kern/misc.c | 7 +++++-- @@ -54,5 +54,5 @@ index 952411d5dc6..8344526be7f 100644 case 'd': { -- -2.15.0 +2.17.0 diff --git a/0087-Search-for-specific-config-file-for-netboot.patch b/0087-Search-for-specific-config-file-for-netboot.patch index 37c18999..03de788c 100644 --- a/0087-Search-for-specific-config-file-for-netboot.patch +++ b/0087-Search-for-specific-config-file-for-netboot.patch @@ -1,7 +1,7 @@ From 9491cbfdab951e38f096bd9705a76b382f54c9be Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 27 Nov 2012 17:22:07 -0200 -Subject: [PATCH 087/236] Search for specific config file for netboot +Subject: [PATCH 087/238] Search for specific config file for netboot This patch implements a search for a specific configuration when the config file is on a remoteserver. It uses the following order: @@ -199,5 +199,5 @@ index e266bae23f4..50d62ab0c8c 100644 + #endif /* ! GRUB_NET_HEADER */ -- -2.15.0 +2.17.0 diff --git a/0088-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch b/0088-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch index 5cd902ca..864cd4de 100644 --- a/0088-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch +++ b/0088-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch @@ -1,7 +1,7 @@ From 5fcdebdc36cc84c772754b7f5bdb87aed2b42853 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Tue, 22 Jan 2013 06:31:38 +0100 -Subject: [PATCH 088/236] blscfg: add blscfg module to parse Boot Loader +Subject: [PATCH 088/238] blscfg: add blscfg module to parse Boot Loader Specification snippets http://www.freedesktop.org/wiki/Specifications/BootLoaderSpec @@ -247,5 +247,5 @@ index 00000000000..4274aca5a9d + grub_unregister_extcmd (cmd); +} -- -2.15.0 +2.17.0 diff --git a/0089-Don-t-write-messages-to-the-screen.patch b/0089-Don-t-write-messages-to-the-screen.patch index d3c0e62f..e2b94f2e 100644 --- a/0089-Don-t-write-messages-to-the-screen.patch +++ b/0089-Don-t-write-messages-to-the-screen.patch @@ -1,7 +1,7 @@ From fc390be631e93744c6a3a2f42849c9edf2614a36 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 13:30:20 -0400 -Subject: [PATCH 089/236] Don't write messages to the screen +Subject: [PATCH 089/238] Don't write messages to the screen Writing messages to the screen before the menus or boot splash happens so quickly it looks like something is wrong and isn't @@ -177,5 +177,5 @@ index 8ccf012f747..a3d9711d607 100644 EOF fi -- -2.15.0 +2.17.0 diff --git a/0090-Don-t-print-GNU-GRUB-header.patch b/0090-Don-t-print-GNU-GRUB-header.patch index f286c6ec..a60440db 100644 --- a/0090-Don-t-print-GNU-GRUB-header.patch +++ b/0090-Don-t-print-GNU-GRUB-header.patch @@ -1,7 +1,7 @@ From 806c26ae73bc86e305c39c955d86480fad8985df Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 13:53:48 -0400 -Subject: [PATCH 090/236] Don't print GNU GRUB header +Subject: [PATCH 090/238] Don't print GNU GRUB header No one cares. --- @@ -41,5 +41,5 @@ index b2654ef62e8..f57b7508a76 100644 static void -- -2.15.0 +2.17.0 diff --git a/0091-Don-t-add-to-highlighted-row.patch b/0091-Don-t-add-to-highlighted-row.patch index eb17abd1..4c4b16bf 100644 --- a/0091-Don-t-add-to-highlighted-row.patch +++ b/0091-Don-t-add-to-highlighted-row.patch @@ -1,7 +1,7 @@ From 5ae2484f263365351a2891be6c056eeb96b3924b Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 17:49:45 -0400 -Subject: [PATCH 091/236] Don't add '*' to highlighted row +Subject: [PATCH 091/238] Don't add '*' to highlighted row It is already highlighted. --- @@ -22,5 +22,5 @@ index e22bb91f6e8..a3d1f23f68f 100644 grub_print_ucs4_menu (unicode_title, unicode_title + len, -- -2.15.0 +2.17.0 diff --git a/0092-Message-string-cleanups.patch b/0092-Message-string-cleanups.patch index 91696add..f0cc749d 100644 --- a/0092-Message-string-cleanups.patch +++ b/0092-Message-string-cleanups.patch @@ -1,7 +1,7 @@ From 622b238ecb927d331dc38083584a7323013b5f21 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 11:09:04 -0400 -Subject: [PATCH 092/236] Message string cleanups +Subject: [PATCH 092/238] Message string cleanups Make use of terminology consistent. Remove jargon. --- @@ -67,5 +67,5 @@ index a3d1f23f68f..64a83862f66 100644 { grub_print_error (); -- -2.15.0 +2.17.0 diff --git a/0093-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch b/0093-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch index 5ef00a78..b8652d7c 100644 --- a/0093-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch +++ b/0093-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch @@ -1,7 +1,7 @@ From c7dac08ab344638afabf579e03bedfac729e1944 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:08:23 -0400 -Subject: [PATCH 093/236] Fix border spacing now that we aren't displaying it +Subject: [PATCH 093/238] Fix border spacing now that we aren't displaying it --- grub-core/normal/menu_text.c | 6 +++--- @@ -28,5 +28,5 @@ index 64a83862f66..1062d64ee29 100644 geo->timeout_lines = 2; -- -2.15.0 +2.17.0 diff --git a/0094-Use-the-correct-indentation-for-the-term-help-text.patch b/0094-Use-the-correct-indentation-for-the-term-help-text.patch index a5a79889..05921fda 100644 --- a/0094-Use-the-correct-indentation-for-the-term-help-text.patch +++ b/0094-Use-the-correct-indentation-for-the-term-help-text.patch @@ -1,7 +1,7 @@ From 8a59d6c44d946eac70ecbb7a9418c5d6801add8b Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:08:49 -0400 -Subject: [PATCH 094/236] Use the correct indentation for the term help text +Subject: [PATCH 094/238] Use the correct indentation for the term help text That is consistent with the menu help text --- @@ -24,5 +24,5 @@ index f57b7508a76..0ce59fdc3f0 100644 grub_print_message_indented (msg_formatted, 0, 0, term); grub_putcode ('\n', term); -- -2.15.0 +2.17.0 diff --git a/0095-Indent-menu-entries.patch b/0095-Indent-menu-entries.patch index 6eabf8f6..bf91f14b 100644 --- a/0095-Indent-menu-entries.patch +++ b/0095-Indent-menu-entries.patch @@ -1,7 +1,7 @@ From 018439ecfda2bc5049ccbfb0d6ab7fa047411a3b Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:30:55 -0400 -Subject: [PATCH 095/236] Indent menu entries +Subject: [PATCH 095/238] Indent menu entries --- grub-core/normal/menu_text.c | 3 ++- @@ -22,5 +22,5 @@ index 1062d64ee29..ecc60f99fc3 100644 grub_print_ucs4_menu (unicode_title, unicode_title + len, -- -2.15.0 +2.17.0 diff --git a/0096-Fix-margins.patch b/0096-Fix-margins.patch index 9cc0cac4..6a7833c0 100644 --- a/0096-Fix-margins.patch +++ b/0096-Fix-margins.patch @@ -1,7 +1,7 @@ From 33481aa0e7897465ffd386101d6f3eda6e3bbac0 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:59:36 -0400 -Subject: [PATCH 096/236] Fix margins +Subject: [PATCH 096/238] Fix margins --- grub-core/normal/menu_text.c | 8 +++----- @@ -33,5 +33,5 @@ index ecc60f99fc3..0e43f2c10cc 100644 - geo->timeout_lines /* timeout */ - 1 /* empty final line */; -- -2.15.0 +2.17.0 diff --git a/0097-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch b/0097-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch index fb6896d4..b2c25a51 100644 --- a/0097-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch +++ b/0097-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch @@ -1,7 +1,7 @@ From ea032bd4a6cb66929da61477b1759e136c975189 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 21 Jun 2013 14:44:08 -0400 -Subject: [PATCH 097/236] Use -2 instead of -1 for our right-hand margin, so +Subject: [PATCH 097/238] Use -2 instead of -1 for our right-hand margin, so linewrapping works (#976643). Signed-off-by: Peter Jones @@ -23,5 +23,5 @@ index 0e43f2c10cc..537d4bf86ff 100644 geo->first_entry_y = 3; /* three empty lines*/ -- -2.15.0 +2.17.0 diff --git a/0098-Use-linux16-when-appropriate-880840.patch b/0098-Use-linux16-when-appropriate-880840.patch index 4eb996cd..8427939a 100644 --- a/0098-Use-linux16-when-appropriate-880840.patch +++ b/0098-Use-linux16-when-appropriate-880840.patch @@ -1,7 +1,7 @@ From 8e1957d59e7e72850cbac7e779ddf22ca23c250d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 28 Oct 2013 10:05:07 -0400 -Subject: [PATCH 098/236] Use linux16 when appropriate (#880840) +Subject: [PATCH 098/238] Use linux16 when appropriate (#880840) The kernel group really would prefer that we use the 16 bit entry point on x86 bios machines. @@ -48,5 +48,5 @@ index a3d9711d607..f3bf6acd856 100644 fi fi -- -2.15.0 +2.17.0 diff --git a/0099-Enable-pager-by-default.-985860.patch b/0099-Enable-pager-by-default.-985860.patch index 6d59efed..77997f6f 100644 --- a/0099-Enable-pager-by-default.-985860.patch +++ b/0099-Enable-pager-by-default.-985860.patch @@ -1,7 +1,7 @@ From 7466f51a0012ebdd8be07cfc0e63d50e0e79560d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 28 Oct 2013 10:09:27 -0400 -Subject: [PATCH 099/236] Enable pager by default. (#985860) +Subject: [PATCH 099/238] Enable pager by default. (#985860) Signed-off-by: Peter Jones --- @@ -22,5 +22,5 @@ index 93a90233ead..858b526c925 100644 load_env fi -- -2.15.0 +2.17.0 diff --git a/0100-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch b/0100-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch index 0fb647dd..a7193613 100644 --- a/0100-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch +++ b/0100-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch @@ -1,7 +1,7 @@ From 7a97d9621a145cbd04111970fea04c34433f900c Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 28 Oct 2013 10:13:27 -0400 -Subject: [PATCH 100/236] F10 doesn't work on serial, so don't tell the user to +Subject: [PATCH 100/238] F10 doesn't work on serial, so don't tell the user to hit it (#987443) Signed-off-by: Peter Jones @@ -23,5 +23,5 @@ index 537d4bf86ff..452d55bf9ff 100644 STANDARD_MARGIN, STANDARD_MARGIN, term, dry_run); -- -2.15.0 +2.17.0 diff --git a/0101-Don-t-say-GNU-Linux-in-generated-menus.patch b/0101-Don-t-say-GNU-Linux-in-generated-menus.patch index 48f6eb3d..aaf22c43 100644 --- a/0101-Don-t-say-GNU-Linux-in-generated-menus.patch +++ b/0101-Don-t-say-GNU-Linux-in-generated-menus.patch @@ -1,7 +1,7 @@ From 45877a77f50eecd0b7fd3ba1aec0d4398a3b6a20 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 14 Mar 2011 14:27:42 -0400 -Subject: [PATCH 101/236] Don't say "GNU/Linux" in generated menus. +Subject: [PATCH 101/238] Don't say "GNU/Linux" in generated menus. --- util/grub.d/10_linux.in | 4 ++-- @@ -41,5 +41,5 @@ index c002fc9f946..54f1ec8a2fd 100644 fi -- -2.15.0 +2.17.0 diff --git a/0102-Don-t-draw-a-border-around-the-menu.patch b/0102-Don-t-draw-a-border-around-the-menu.patch index ecd7db1e..6bde1183 100644 --- a/0102-Don-t-draw-a-border-around-the-menu.patch +++ b/0102-Don-t-draw-a-border-around-the-menu.patch @@ -1,7 +1,7 @@ From c28a3053e96859000df5ff1d48c9a560d47c0470 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 16:47:33 -0400 -Subject: [PATCH 102/236] Don't draw a border around the menu +Subject: [PATCH 102/238] Don't draw a border around the menu It looks cleaner without it. --- @@ -70,5 +70,5 @@ index 452d55bf9ff..1ed2bd92cf8 100644 grub_term_highlight_color = old_color_highlight; geo->timeout_y = geo->first_entry_y + geo->num_entries -- -2.15.0 +2.17.0 diff --git a/0103-Use-the-standard-margin-for-the-timeout-string.patch b/0103-Use-the-standard-margin-for-the-timeout-string.patch index 394a4c97..44ef4798 100644 --- a/0103-Use-the-standard-margin-for-the-timeout-string.patch +++ b/0103-Use-the-standard-margin-for-the-timeout-string.patch @@ -1,7 +1,7 @@ From 93018f5d1727eb58dead129f150a36080c22530a Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 10:52:32 -0400 -Subject: [PATCH 103/236] Use the standard margin for the timeout string +Subject: [PATCH 103/238] Use the standard margin for the timeout string So that it aligns with the other messages --- @@ -39,5 +39,5 @@ index 1ed2bd92cf8..7681f7d2893 100644 } -- -2.15.0 +2.17.0 diff --git a/0104-Add-.eh_frame-to-list-of-relocations-stripped.patch b/0104-Add-.eh_frame-to-list-of-relocations-stripped.patch index e43b17e6..de0a2fc0 100644 --- a/0104-Add-.eh_frame-to-list-of-relocations-stripped.patch +++ b/0104-Add-.eh_frame-to-list-of-relocations-stripped.patch @@ -1,7 +1,7 @@ From c626121f38adf6fcd39a5f69249c650b4b52c10d Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Mon, 13 Jan 2014 21:50:59 -0500 -Subject: [PATCH 104/236] Add .eh_frame to list of relocations stripped +Subject: [PATCH 104/238] Add .eh_frame to list of relocations stripped --- conf/Makefile.common | 2 +- @@ -21,5 +21,5 @@ index 311da61c6c5..044ab3abe88 100644 CFLAGS_MODULE = $(CFLAGS_PLATFORM) -ffreestanding LDFLAGS_MODULE = $(LDFLAGS_PLATFORM) -nostdlib $(TARGET_LDFLAGS_OLDMAGIC) -Wl,-r,-d -- -2.15.0 +2.17.0 diff --git a/0105-Make-10_linux-work-with-our-changes-for-linux16-and-.patch b/0105-Make-10_linux-work-with-our-changes-for-linux16-and-.patch index 98cf96cf..3c4fb2f2 100644 --- a/0105-Make-10_linux-work-with-our-changes-for-linux16-and-.patch +++ b/0105-Make-10_linux-work-with-our-changes-for-linux16-and-.patch @@ -1,7 +1,7 @@ From 59275c83e7a303c63379d37ba21aa39a3c3b7203 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jan 2014 13:12:23 -0500 -Subject: [PATCH 105/236] Make 10_linux work with our changes for linux16 and +Subject: [PATCH 105/238] Make 10_linux work with our changes for linux16 and linuxefi on aarch64 Signed-off-by: Peter Jones @@ -81,5 +81,5 @@ index ef52cf3dbbb..191aebe80bb 100644 for i in "${dirname}/config-${version}" "${dirname}/config-${alt_version}" "/etc/kernels/kernel-config-${version}" ; do if test -e "${i}" ; then -- -2.15.0 +2.17.0 diff --git a/0106-Don-t-print-during-fdt-loading-method.patch b/0106-Don-t-print-during-fdt-loading-method.patch index 5f1e37e9..d8777ea5 100644 --- a/0106-Don-t-print-during-fdt-loading-method.patch +++ b/0106-Don-t-print-during-fdt-loading-method.patch @@ -1,7 +1,7 @@ From aedf2aceb354ab7bf28bbf70d0a4b505c0adcfdf Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jan 2014 16:15:46 -0500 -Subject: [PATCH 106/236] Don't print during fdt loading method. +Subject: [PATCH 106/238] Don't print during fdt loading method. Signed-off-by: Peter Jones --- @@ -23,5 +23,5 @@ index 191aebe80bb..452a9f69d28 100644 EOF fi -- -2.15.0 +2.17.0 diff --git a/0107-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch b/0107-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch index f2e3adbf..2ed85e94 100644 --- a/0107-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch +++ b/0107-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch @@ -1,7 +1,7 @@ From f2790b1f7c8efcd5589c8fcdaca51b548ab9825c Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Mon, 30 Jun 2014 14:16:46 -0400 -Subject: [PATCH 107/236] Don't munge raw spaces when we're doing our cmdline +Subject: [PATCH 107/238] Don't munge raw spaces when we're doing our cmdline escaping (#923374) Signed-off-by: Peter Jones @@ -32,5 +32,5 @@ index 0a5b2afb94b..970ea868c14 100644 { *buf++ = *c++; -- -2.15.0 +2.17.0 diff --git a/0108-Don-t-require-a-password-to-boot-entries-generated-b.patch b/0108-Don-t-require-a-password-to-boot-entries-generated-b.patch index 2c28026e..14d965ca 100644 --- a/0108-Don-t-require-a-password-to-boot-entries-generated-b.patch +++ b/0108-Don-t-require-a-password-to-boot-entries-generated-b.patch @@ -1,7 +1,7 @@ From 205a7844bea4d849dc24f24b5fc96f6040d5e2b9 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 11 Feb 2014 11:14:50 -0500 -Subject: [PATCH 108/236] Don't require a password to boot entries generated by +Subject: [PATCH 108/238] Don't require a password to boot entries generated by grub-mkconfig. When we set a password, we just want that to mean you can't /edit/ an entry. @@ -27,5 +27,5 @@ index 452a9f69d28..79a747ebd4d 100644 if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then OS="$(sed 's, release .*$,,g' /etc/system-release)" -- -2.15.0 +2.17.0 diff --git a/0109-Don-t-emit-Booting-.-message.patch b/0109-Don-t-emit-Booting-.-message.patch index c212a591..f9919aa9 100644 --- a/0109-Don-t-emit-Booting-.-message.patch +++ b/0109-Don-t-emit-Booting-.-message.patch @@ -1,7 +1,7 @@ From c986c38f790881be0b9c5b0acd8d3b106412a5f1 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 18 Feb 2014 09:37:49 -0500 -Subject: [PATCH 109/236] Don't emit "Booting ..." message. +Subject: [PATCH 109/238] Don't emit "Booting ..." message. UI team still hates this stuff, so we're disabling it for RHEL 7. @@ -48,5 +48,5 @@ index cdf3590a364..5785f67ee1c 100644 errs_before = grub_err_printed_errors; -- -2.15.0 +2.17.0 diff --git a/0110-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch b/0110-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch index fedc06a2..ad559738 100644 --- a/0110-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch +++ b/0110-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch @@ -1,7 +1,7 @@ From dcf3b9c590f00e33f773de68ac4ebd55ca4f6e90 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 4 Mar 2014 11:00:23 -0500 -Subject: [PATCH 110/236] Replace a lot of man pages with slightly nicer ones. +Subject: [PATCH 110/238] Replace a lot of man pages with slightly nicer ones. Replace a bunch of machine generated ones with ones that look nicer. --- @@ -1959,5 +1959,5 @@ index 00000000000..37ea2dd5eaa +.SH SEE ALSO +.BR "info grub" -- -2.15.0 +2.17.0 diff --git a/0111-use-fw_path-prefix-when-fallback-searching-for-grub-.patch b/0111-use-fw_path-prefix-when-fallback-searching-for-grub-.patch index 36684828..b94bca06 100644 --- a/0111-use-fw_path-prefix-when-fallback-searching-for-grub-.patch +++ b/0111-use-fw_path-prefix-when-fallback-searching-for-grub-.patch @@ -1,7 +1,7 @@ From 24865a88781aef2a6a54433b5b383219108f54fa Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Wed, 19 Feb 2014 15:58:43 -0500 -Subject: [PATCH 111/236] use fw_path prefix when fallback searching for grub +Subject: [PATCH 111/238] use fw_path prefix when fallback searching for grub config When PXE booting via UEFI firmware, grub was searching for grub.cfg @@ -41,5 +41,5 @@ index 0ce59fdc3f0..a3713efcd90 100644 { grub_size_t config_len; -- -2.15.0 +2.17.0 diff --git a/0112-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch b/0112-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch index 99830489..15362f3e 100644 --- a/0112-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch +++ b/0112-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch @@ -1,7 +1,7 @@ From d4cd9aa8695ab9448da41f756553beb75bffee46 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 6 Mar 2014 11:51:33 -0500 -Subject: [PATCH 112/236] Try mac/guid/etc before grub.cfg on tftp config +Subject: [PATCH 112/238] Try mac/guid/etc before grub.cfg on tftp config files. Signed-off-by: Peter Jones @@ -111,5 +111,5 @@ index a3713efcd90..7d9c4f09b9b 100644 else grub_enter_normal_mode (argv[0]); -- -2.15.0 +2.17.0 diff --git a/0113-Fix-convert-function-to-support-NVMe-devices.patch b/0113-Fix-convert-function-to-support-NVMe-devices.patch index cb994c8d..68d49cfe 100644 --- a/0113-Fix-convert-function-to-support-NVMe-devices.patch +++ b/0113-Fix-convert-function-to-support-NVMe-devices.patch @@ -1,7 +1,7 @@ From 397f179c26aeddf3fe452c62aa404459889835fc Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 18 Feb 2014 11:34:00 -0500 -Subject: [PATCH 113/236] Fix convert function to support NVMe devices +Subject: [PATCH 113/238] Fix convert function to support NVMe devices This is adapted from the patch at https://bugzilla.redhat.com/show_bug.cgi?id=1019660 , which is against @@ -55,5 +55,5 @@ index 847406fbab0..fa3460d6cd8 100644 return grub_util_devmapper_part_to_disk (&st, is_part, os_dev); -- -2.15.0 +2.17.0 diff --git a/0114-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch b/0114-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch index b1fc0c33..58f3179b 100644 --- a/0114-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch +++ b/0114-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch @@ -1,7 +1,7 @@ From 4291f418c3304f0f379467e87ce5892853cc16c7 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Mon, 10 Feb 2014 16:13:10 -0500 -Subject: [PATCH 114/236] Switch to use APM Mustang device tree, for hardware +Subject: [PATCH 114/238] Switch to use APM Mustang device tree, for hardware testing. Signed-off-by: David A. Marlin @@ -25,5 +25,5 @@ index 79a747ebd4d..462b461ff49 100644 fi done -- -2.15.0 +2.17.0 diff --git a/0115-Use-the-default-device-tree-from-the-grub-default-fi.patch b/0115-Use-the-default-device-tree-from-the-grub-default-fi.patch index c62481f5..d883bde8 100644 --- a/0115-Use-the-default-device-tree-from-the-grub-default-fi.patch +++ b/0115-Use-the-default-device-tree-from-the-grub-default-fi.patch @@ -1,7 +1,7 @@ From 5111bdda0d0a21ab02f6c9aa441a32cd02c6bc3f Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Wed, 12 Feb 2014 14:54:04 -0500 -Subject: [PATCH 115/236] Use the default device tree from the grub default +Subject: [PATCH 115/238] Use the default device tree from the grub default file instead of hardcoding a value. @@ -42,5 +42,5 @@ index 462b461ff49..a9692a0c2a2 100644 fi done -- -2.15.0 +2.17.0 diff --git a/0116-reopen-SNP-protocol-for-exclusive-use-by-grub.patch b/0116-reopen-SNP-protocol-for-exclusive-use-by-grub.patch index c23e830c..b85d9a18 100644 --- a/0116-reopen-SNP-protocol-for-exclusive-use-by-grub.patch +++ b/0116-reopen-SNP-protocol-for-exclusive-use-by-grub.patch @@ -1,7 +1,7 @@ From 0ff5bf3deefdb17dbadb51a11acc50b96e2ed797 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Sat, 15 Feb 2014 15:10:22 -0500 -Subject: [PATCH 116/236] reopen SNP protocol for exclusive use by grub +Subject: [PATCH 116/238] reopen SNP protocol for exclusive use by grub --- grub-core/net/drivers/efi/efinet.c | 16 ++++++++++++++++ @@ -42,5 +42,5 @@ index 5388f952ba9..ea0e0ca360e 100644 } } -- -2.15.0 +2.17.0 diff --git a/0117-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch b/0117-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch index ddf26b55..befbc8b0 100644 --- a/0117-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch +++ b/0117-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch @@ -1,7 +1,7 @@ From 58fba65b7e339d4c7279e4ca88937d9501275169 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 4 Mar 2016 15:13:59 -0500 -Subject: [PATCH 117/236] Revert "reopen SNP protocol for exclusive use by +Subject: [PATCH 117/238] Revert "reopen SNP protocol for exclusive use by grub" This reverts commit a3f2c756ce34c9666bddef35e3b3b85ccecdcffc , which is @@ -51,5 +51,5 @@ index ea0e0ca360e..5388f952ba9 100644 } } -- -2.15.0 +2.17.0 diff --git a/0118-Add-grub_util_readlink.patch b/0118-Add-grub_util_readlink.patch index a6224268..ebf3407c 100644 --- a/0118-Add-grub_util_readlink.patch +++ b/0118-Add-grub_util_readlink.patch @@ -1,7 +1,7 @@ From 76baa996f73eea47f7bdc41461efeee204626e2d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 3 Sep 2014 10:01:03 -0400 -Subject: [PATCH 118/236] Add grub_util_readlink() +Subject: [PATCH 118/238] Add grub_util_readlink() Add grub_util_readlink(). This requires pulling in stat and readlink from gnulib, which pulls in stat and related headers, but after that the @@ -3730,5 +3730,5 @@ index 00000000000..9852778f9a5 + REPLACE_LOCALTIME=0; AC_SUBST([REPLACE_LOCALTIME]) +]) -- -2.15.0 +2.17.0 diff --git a/0119-Make-editenv-chase-symlinks-including-those-across-d.patch b/0119-Make-editenv-chase-symlinks-including-those-across-d.patch index 63d26a84..8dab5ed3 100644 --- a/0119-Make-editenv-chase-symlinks-including-those-across-d.patch +++ b/0119-Make-editenv-chase-symlinks-including-those-across-d.patch @@ -1,7 +1,7 @@ From fd1a89c8bef603ec33937f122ae25013a724601a Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 3 Sep 2014 10:38:00 -0400 -Subject: [PATCH 119/236] Make editenv chase symlinks including those across +Subject: [PATCH 119/238] Make editenv chase symlinks including those across devices. This lets us make /boot/grub2/grubenv a symlink to @@ -102,5 +102,5 @@ index c6f8d2298c3..d8d1dad6ab9 100644 + free (rename_target); } -- -2.15.0 +2.17.0 diff --git a/0120-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch b/0120-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch index e373cf19..d52f79b5 100644 --- a/0120-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch +++ b/0120-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch @@ -1,7 +1,7 @@ From c8d93b9e27e9cbf51e91f6cc99abbcb7b68189ce Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Sep 2014 14:23:23 -0400 -Subject: [PATCH 120/236] Generate OS and CLASS in 10_linux from +Subject: [PATCH 120/238] Generate OS and CLASS in 10_linux from /etc/os-release This makes us use pretty names in the titles we generate in @@ -29,5 +29,5 @@ index a9692a0c2a2..c6627268cca 100644 OS="${GRUB_DISTRIBUTOR}" CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr 'A-Z' 'a-z' | cut -d' ' -f1|LC_ALL=C sed 's,[^[:alnum:]_],_,g') ${CLASS}" -- -2.15.0 +2.17.0 diff --git a/0121-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch b/0121-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch index 2bd5c701..32a52a7f 100644 --- a/0121-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch +++ b/0121-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch @@ -1,7 +1,7 @@ From 974241c42b03f3ccb6a5d0eb453283e370da9848 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Sep 2014 15:52:08 -0400 -Subject: [PATCH 121/236] Minimize the sort ordering for .debug and -rescue- +Subject: [PATCH 121/238] Minimize the sort ordering for .debug and -rescue- kernels. Resolves: rhbz#1065360 @@ -30,5 +30,5 @@ index cf35e417470..10fabee5e14 100644 version_test_numeric "$version_test_gt_a" "$version_test_gt_cmp" "$version_test_gt_b" return "$?" -- -2.15.0 +2.17.0 diff --git a/0122-Load-arm-with-SB-enabled.patch b/0122-Load-arm-with-SB-enabled.patch index ecb67903..f8f21a99 100644 --- a/0122-Load-arm-with-SB-enabled.patch +++ b/0122-Load-arm-with-SB-enabled.patch @@ -1,7 +1,7 @@ From edfc2b0952b1eacf95188e53167cc038e5ea0129 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 18 Sep 2014 11:26:14 -0400 -Subject: [PATCH 122/236] Load arm with SB enabled. +Subject: [PATCH 122/238] Load arm with SB enabled. Make sure we actually try to validate secure boot on this platform (even though we're not shipping it enabled by default.) @@ -425,5 +425,5 @@ index 00000000000..d9ede36773b + +#endif /* ! GRUB_EFI_LINUX_HEADER */ -- -2.15.0 +2.17.0 diff --git a/0123-Try-prefix-if-fw_path-doesn-t-work.patch b/0123-Try-prefix-if-fw_path-doesn-t-work.patch index 9e7e9efc..37b8d862 100644 --- a/0123-Try-prefix-if-fw_path-doesn-t-work.patch +++ b/0123-Try-prefix-if-fw_path-doesn-t-work.patch @@ -1,7 +1,7 @@ From 3846b040f1050f246e1e975ee88f22c687ae04bf Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 3 Oct 2014 11:08:03 -0400 -Subject: [PATCH 123/236] Try $prefix if $fw_path doesn't work. +Subject: [PATCH 123/238] Try $prefix if $fw_path doesn't work. Related: rhbz#1148652 @@ -207,5 +207,5 @@ index 7d9c4f09b9b..b69f9e738fa 100644 } -- -2.15.0 +2.17.0 diff --git a/0124-Update-info-with-grub.cfg-netboot-selection-order-11.patch b/0124-Update-info-with-grub.cfg-netboot-selection-order-11.patch index 610ba96b..a236d0c6 100644 --- a/0124-Update-info-with-grub.cfg-netboot-selection-order-11.patch +++ b/0124-Update-info-with-grub.cfg-netboot-selection-order-11.patch @@ -1,7 +1,7 @@ From d4b4184078610a3639fa1e0e463679c424496c3b Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Mon, 16 Mar 2015 16:34:51 -0400 -Subject: [PATCH 124/236] Update info with grub.cfg netboot selection order +Subject: [PATCH 124/238] Update info with grub.cfg netboot selection order (#1148650) Added documentation to the grub info page that specifies the order @@ -66,5 +66,5 @@ index 6fdd2a041f7..15a90b26e4d 100644 @samp{(tftp)} device. -- -2.15.0 +2.17.0 diff --git a/0125-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch b/0125-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch index 03a46dc0..d8974b12 100644 --- a/0125-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch +++ b/0125-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch @@ -1,7 +1,7 @@ From ce125cafc1e94bf70f2a3dbb545960bd8dd23a2f Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Mon, 16 Mar 2015 14:14:19 -0400 -Subject: [PATCH 125/236] Use Distribution Package Sort for grub2-mkconfig +Subject: [PATCH 125/238] Use Distribution Package Sort for grub2-mkconfig (#1124074) Users reported that newly installed kernels on their systems installed @@ -447,5 +447,5 @@ index 00000000000..8ce21488448 +.SH SEE ALSO +.BR "info grub" -- -2.15.0 +2.17.0 diff --git a/0126-Handle-rssd-storage-devices.patch b/0126-Handle-rssd-storage-devices.patch index 37abc8b1..0e870b66 100644 --- a/0126-Handle-rssd-storage-devices.patch +++ b/0126-Handle-rssd-storage-devices.patch @@ -1,7 +1,7 @@ From 1956a2192ac0a8421ee83bf77fdf223f2be0bdfb Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 30 Jun 2015 15:50:41 -0400 -Subject: [PATCH 126/236] Handle rssd storage devices. +Subject: [PATCH 126/238] Handle rssd storage devices. Resolves: rhbz#1087962 @@ -35,5 +35,5 @@ index 90d92d3ad5c..6d9f4e5faa2 100644 if ((strncmp ("loop", p, 4) == 0) && p[4] >= '0' && p[4] <= '9') { -- -2.15.0 +2.17.0 diff --git a/0127-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch b/0127-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch index fc69d192..ff9359ba 100644 --- a/0127-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch +++ b/0127-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch @@ -1,7 +1,7 @@ From 5f89c77c7cff17c931f1ea52af0c39df8ab28ac9 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 27 Oct 2014 09:22:55 -0400 -Subject: [PATCH 127/236] Try to emit linux16/initrd16 and linuxefi/initrdefi +Subject: [PATCH 127/238] Try to emit linux16/initrd16 and linuxefi/initrdefi in 30-os_prober. Resolves: rhbz#1108296 @@ -73,5 +73,5 @@ index 9b8f5968e2d..dc98eace934 100644 fi cat << EOF -- -2.15.0 +2.17.0 diff --git a/0128-Make-grub2-mkconfig-construct-titles-that-look-like-.patch b/0128-Make-grub2-mkconfig-construct-titles-that-look-like-.patch index 55d109bd..d4fc416d 100644 --- a/0128-Make-grub2-mkconfig-construct-titles-that-look-like-.patch +++ b/0128-Make-grub2-mkconfig-construct-titles-that-look-like-.patch @@ -1,7 +1,7 @@ From c7ae420d095ccec20481c25b14773ab2fce658b5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 28 Apr 2015 11:15:03 -0400 -Subject: [PATCH 128/236] Make grub2-mkconfig construct titles that look like +Subject: [PATCH 128/238] Make grub2-mkconfig construct titles that look like the ones we want elsewhere. Resolves: rhbz#1215839 @@ -50,5 +50,5 @@ index c6627268cca..1215241859b 100644 echo "menuentry '$(echo "$title" | grub_quote)' ${CLASS} \$menuentry_id_option 'gnulinux-$version-$type-$boot_device_id' {" | sed "s/^/$submenu_indentation/" else -- -2.15.0 +2.17.0 diff --git a/0129-Add-friendly-grub2-password-config-tool-985962.patch b/0129-Add-friendly-grub2-password-config-tool-985962.patch index c3f42408..73e88419 100644 --- a/0129-Add-friendly-grub2-password-config-tool-985962.patch +++ b/0129-Add-friendly-grub2-password-config-tool-985962.patch @@ -1,7 +1,7 @@ From 68f21f5ebebc23a6d8512631f2a1d474afcccd43 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Thu, 25 Jun 2015 11:13:11 -0400 -Subject: [PATCH 129/236] Add friendly grub2 password config tool (#985962) +Subject: [PATCH 129/238] Add friendly grub2 password config tool (#985962) Provided a tool for users to reset the grub2 root user password without having to alter the grub.cfg. The hashed password now @@ -271,5 +271,5 @@ index 00000000000..db2f44bfb78 +fi +EOF -- -2.15.0 +2.17.0 diff --git a/0130-Make-grub2-mkconfig-construct-titles-that-look-like-.patch b/0130-Make-grub2-mkconfig-construct-titles-that-look-like-.patch index 723d8899..920d8f3d 100644 --- a/0130-Make-grub2-mkconfig-construct-titles-that-look-like-.patch +++ b/0130-Make-grub2-mkconfig-construct-titles-that-look-like-.patch @@ -1,7 +1,7 @@ From 7a7644507e4d953ea8f8d1d7133622a72a2168f5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 28 Apr 2015 11:15:03 -0400 -Subject: [PATCH 130/236] Make grub2-mkconfig construct titles that look like +Subject: [PATCH 130/238] Make grub2-mkconfig construct titles that look like the ones we want elsewhere. Resolves: rhbz#1215839 @@ -63,5 +63,5 @@ index 1215241859b..584ad1f4639 100644 replacement_title="$(echo "Advanced options for ${OS}" | sed 's,>,>>,g')>$(echo "$title" | sed 's,>,>>,g')" quoted="$(echo "$GRUB_ACTUAL_DEFAULT" | grub_quote)" -- -2.15.0 +2.17.0 diff --git a/0131-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch b/0131-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch index f54ae776..2d13ea95 100644 --- a/0131-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch +++ b/0131-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch @@ -1,7 +1,7 @@ From 6f892038567f1706fdde819f5f226ec4cacbea47 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 3 Aug 2015 11:46:42 -0400 -Subject: [PATCH 131/236] Try to make sure configure.ac and grub-rpm-sort play +Subject: [PATCH 131/238] Try to make sure configure.ac and grub-rpm-sort play nice. Apparently the test for whether to use grub-rpm-sort and also the @@ -57,5 +57,5 @@ index 954844d2d95..9c410eae493 100644 version_test_numeric () -- -2.15.0 +2.17.0 diff --git a/0132-tcp-add-window-scaling-support.patch b/0132-tcp-add-window-scaling-support.patch index 83c2d0a3..5bf9a502 100644 --- a/0132-tcp-add-window-scaling-support.patch +++ b/0132-tcp-add-window-scaling-support.patch @@ -1,7 +1,7 @@ From 71e31c279c07f9f51f2a482b70b40b7deed69a69 Mon Sep 17 00:00:00 2001 From: Josef Bacik Date: Wed, 12 Aug 2015 08:57:55 -0700 -Subject: [PATCH 132/236] tcp: add window scaling support +Subject: [PATCH 132/238] tcp: add window scaling support Sometimes we have to provision boxes across regions, such as California to Sweden. The http server has a 10 minute timeout, so if we can't get our 250mb @@ -86,5 +86,5 @@ index e8ad34b84d4..7d4b822626d 100644 tcp_socket_register (socket); -- -2.15.0 +2.17.0 diff --git a/0133-efinet-retransmit-if-our-device-is-busy.patch b/0133-efinet-retransmit-if-our-device-is-busy.patch index 54dfd3a7..bbd003e1 100644 --- a/0133-efinet-retransmit-if-our-device-is-busy.patch +++ b/0133-efinet-retransmit-if-our-device-is-busy.patch @@ -1,7 +1,7 @@ From d09f32622f6fc247dd88f731c34be10395785d8d Mon Sep 17 00:00:00 2001 From: Josef Bacik Date: Mon, 31 Aug 2015 13:34:35 -0400 -Subject: [PATCH 133/236] efinet: retransmit if our device is busy +Subject: [PATCH 133/238] efinet: retransmit if our device is busy When I fixed the txbuf handling I ripped out the retransmission code since it was flooding our network when we had the buggy behavior. Turns out this was too @@ -44,5 +44,5 @@ index 5388f952ba9..3f112438a93 100644 return grub_error (GRUB_ERR_TIMEOUT, N_("couldn't send network packet")); -- -2.15.0 +2.17.0 diff --git a/0134-Be-more-aggro-about-actually-using-the-configured-ne.patch b/0134-Be-more-aggro-about-actually-using-the-configured-ne.patch index ea5756c0..275e50e7 100644 --- a/0134-Be-more-aggro-about-actually-using-the-configured-ne.patch +++ b/0134-Be-more-aggro-about-actually-using-the-configured-ne.patch @@ -1,7 +1,7 @@ From 8ece44c2c8f88f531ac9a679f65a263e7b6d2dba Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 11 Sep 2015 17:30:49 -0400 -Subject: [PATCH 134/236] Be more aggro about actually using the *configured* +Subject: [PATCH 134/238] Be more aggro about actually using the *configured* network device. Right now we use any SNP device with the same mac+IP block, but when @@ -220,5 +220,5 @@ index c7c9f0e1db1..97b9aa7a4d7 100644 #define GRUB_EFI_DEVICE_PATH_SUBTYPE(dp) ((dp)->subtype) #define GRUB_EFI_DEVICE_PATH_LENGTH(dp) ((dp)->length) -- -2.15.0 +2.17.0 diff --git a/0135-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch b/0135-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch index 90627486..c81137c5 100644 --- a/0135-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch +++ b/0135-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch @@ -1,7 +1,7 @@ From 82b9fdcbbc339c36842c625203fc2b1f22a86c9e Mon Sep 17 00:00:00 2001 From: RHEL Ninjas Date: Fri, 25 Sep 2015 16:24:23 +0900 -Subject: [PATCH 135/236] efinet: add filter for the first exclusive reopen of +Subject: [PATCH 135/238] efinet: add filter for the first exclusive reopen of SNP --- @@ -59,5 +59,5 @@ index a3ce4c67cce..b870d3f1938 100644 } } -- -2.15.0 +2.17.0 diff --git a/0136-Fix-security-issue-when-reading-username-and-passwor.patch b/0136-Fix-security-issue-when-reading-username-and-passwor.patch index c78a3ab0..6dda9cd2 100644 --- a/0136-Fix-security-issue-when-reading-username-and-passwor.patch +++ b/0136-Fix-security-issue-when-reading-username-and-passwor.patch @@ -1,7 +1,7 @@ From 9961e63642244617b697d93bbc49379e23b6839d Mon Sep 17 00:00:00 2001 From: Hector Marco-Gisbert Date: Fri, 13 Nov 2015 16:21:09 +0100 -Subject: [PATCH 136/236] Fix security issue when reading username and password +Subject: [PATCH 136/238] Fix security issue when reading username and password This patch fixes two integer underflows at: * grub-core/lib/crypto.c @@ -43,5 +43,5 @@ index 6be678c0de1..c35ce972473 100644 if (cur_len) { -- -2.15.0 +2.17.0 diff --git a/0137-Warn-if-grub-password-will-not-be-read-1290803.patch b/0137-Warn-if-grub-password-will-not-be-read-1290803.patch index 816bf4fd..f58e9b7c 100644 --- a/0137-Warn-if-grub-password-will-not-be-read-1290803.patch +++ b/0137-Warn-if-grub-password-will-not-be-read-1290803.patch @@ -1,7 +1,7 @@ From 056a956aea898f9d3ee34ecad9660addc3f3108c Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Mon, 22 Feb 2016 15:30:05 -0500 -Subject: [PATCH 137/236] Warn if grub password will not be read (#1290803) +Subject: [PATCH 137/238] Warn if grub password will not be read (#1290803) It is possible for a system to have never run grub-mkconfig and add the section that reads the user.cfg file which contains a user set GRUB @@ -27,5 +27,5 @@ index dd76f00fc0e..fb9d3a3b6f9 100644 + echo "Update your configuration with @grub_mkconfig@ to support this feature." +fi -- -2.15.0 +2.17.0 diff --git a/0138-Clean-up-grub-setpassword-documentation-1290799.patch b/0138-Clean-up-grub-setpassword-documentation-1290799.patch index 21ccdba1..35f70642 100644 --- a/0138-Clean-up-grub-setpassword-documentation-1290799.patch +++ b/0138-Clean-up-grub-setpassword-documentation-1290799.patch @@ -1,7 +1,7 @@ From 92af2b24adb7371d8234c0b32ae716adf0b80d42 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Tue, 26 Jan 2016 10:28:35 -0500 -Subject: [PATCH 138/236] Clean up grub-setpassword documentation (#1290799) +Subject: [PATCH 138/238] Clean up grub-setpassword documentation (#1290799) The output for --help had some errors. Corrected those and polished the text to be a little easier to follow. Carried verbage over to man page @@ -54,5 +54,5 @@ index fb9d3a3b6f9..c8c0fa4199d 100644 Report bugs at https://bugzilla.redhat.com. EOF -- -2.15.0 +2.17.0 diff --git a/0139-Fix-locale-issue-in-grub-setpassword-1294243.patch b/0139-Fix-locale-issue-in-grub-setpassword-1294243.patch index c836821e..ad974583 100644 --- a/0139-Fix-locale-issue-in-grub-setpassword-1294243.patch +++ b/0139-Fix-locale-issue-in-grub-setpassword-1294243.patch @@ -1,7 +1,7 @@ From 373adc50cf9f09015e40ffd1bf79ab9f291f4fc2 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Fri, 29 Jan 2016 16:56:11 -0500 -Subject: [PATCH 139/236] Fix locale issue in grub-setpassword (#1294243) +Subject: [PATCH 139/238] Fix locale issue in grub-setpassword (#1294243) A shell substitution was expecting non-translated output to grab the hashed password and put it in the user.cfg file. Modified code to force @@ -26,5 +26,5 @@ index c8c0fa4199d..d7924af5192 100644 sed -e "s/PBKDF2 hash of your password is //" } -- -2.15.0 +2.17.0 diff --git a/0140-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch b/0140-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch index 5055b9b8..384c4472 100644 --- a/0140-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch +++ b/0140-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch @@ -1,7 +1,7 @@ From eab0520310030376f6295e0338e874bce10b0d5f Mon Sep 17 00:00:00 2001 From: Robert Elliott Date: Fri, 22 Jan 2016 13:32:30 +0100 -Subject: [PATCH 140/236] efiemu: Handle persistent RAM and unknown possible +Subject: [PATCH 140/238] efiemu: Handle persistent RAM and unknown possible future additions. (cherry picked from commit ae3b83a4d4df75a01198a2fed7542391e7c449e0) @@ -27,5 +27,5 @@ index 52a032f7b2e..92e7df7e501 100644 GRUB_EFI_PERSISTENT_MEMORY); default: -- -2.15.0 +2.17.0 diff --git a/0141-efiemu-Fix-compilation-failure.patch b/0141-efiemu-Fix-compilation-failure.patch index 754ed93c..1013755d 100644 --- a/0141-efiemu-Fix-compilation-failure.patch +++ b/0141-efiemu-Fix-compilation-failure.patch @@ -1,7 +1,7 @@ From 68bdf29eb6e376a3b4a817bbe7481efd12b8f9de Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Fri, 22 Jan 2016 14:10:30 +0100 -Subject: [PATCH 141/236] efiemu: Fix compilation failure +Subject: [PATCH 141/238] efiemu: Fix compilation failure (cherry picked from commit b6a03dfd327489d53ee07c6d7d593b99c7b7cb62) @@ -26,5 +26,5 @@ index 92e7df7e501..52a032f7b2e 100644 GRUB_EFI_PERSISTENT_MEMORY); default: -- -2.15.0 +2.17.0 diff --git a/0142-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch b/0142-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch index 6ad06201..c1d1d7fe 100644 --- a/0142-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch +++ b/0142-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch @@ -1,7 +1,7 @@ From df19c5ff9c9e716df0383e39992466304053c99d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 7 Apr 2016 10:58:06 -0400 -Subject: [PATCH 142/236] Revert "reopen SNP protocol for exclusive use by +Subject: [PATCH 142/238] Revert "reopen SNP protocol for exclusive use by grub" I *think* this should have been replaced by upstream's @@ -65,5 +65,5 @@ index b870d3f1938..a3ce4c67cce 100644 } } -- -2.15.0 +2.17.0 diff --git a/0143-Add-a-url-parser.patch b/0143-Add-a-url-parser.patch index 5f40b17b..eba0b98e 100644 --- a/0143-Add-a-url-parser.patch +++ b/0143-Add-a-url-parser.patch @@ -1,7 +1,7 @@ From 2f84b2e097ad9f6f7f06013f749251743eb32c2e Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jun 2016 16:18:44 -0400 -Subject: [PATCH 143/236] Add a url parser. +Subject: [PATCH 143/238] Add a url parser. This patch adds a url parser that can parse http, https, tftp, and tftps urls, and is easily extensible to handle more types. @@ -1020,5 +1020,5 @@ index 00000000000..a215fa27d0a + +#endif /* GRUB_URL_HEADER */ -- -2.15.0 +2.17.0 diff --git a/0144-efinet-and-bootp-add-support-for-dhcpv6.patch b/0144-efinet-and-bootp-add-support-for-dhcpv6.patch index 8462d602..37980067 100644 --- a/0144-efinet-and-bootp-add-support-for-dhcpv6.patch +++ b/0144-efinet-and-bootp-add-support-for-dhcpv6.patch @@ -1,7 +1,7 @@ From 48768b0295ad4d908cefd8e8fbee96a4dc2765f5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 8 Jun 2016 21:03:37 -0400 -Subject: [PATCH 144/236] efinet and bootp: add support for dhcpv6 +Subject: [PATCH 144/238] efinet and bootp: add support for dhcpv6 Signed-off-by: Peter Jones --- @@ -663,5 +663,5 @@ index 50d62ab0c8c..f8f3ec13acc 100644 grub_net_add_ipv4_local (struct grub_net_network_level_interface *inf, int mask); -- -2.15.0 +2.17.0 diff --git a/0145-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch b/0145-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch index ee7d5a64..da9a34a4 100644 --- a/0145-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch +++ b/0145-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch @@ -1,7 +1,7 @@ From 764506b89942103c3a511d7933edef351fb594b8 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 23 Jun 2016 11:01:39 -0400 -Subject: [PATCH 145/236] Add grub-get-kernel-settings and use it in 10_linux +Subject: [PATCH 145/238] Add grub-get-kernel-settings and use it in 10_linux This patch adds grub-get-kernel-settings, which reads the system kernel installation configuration from /etc/sysconfig/kernel, and outputs @@ -299,5 +299,5 @@ index 584ad1f4639..c9bf223f273 100644 fi -- -2.15.0 +2.17.0 diff --git a/0146-Normalize-slashes-in-tftp-paths.patch b/0146-Normalize-slashes-in-tftp-paths.patch index ff5228c5..c053b52c 100644 --- a/0146-Normalize-slashes-in-tftp-paths.patch +++ b/0146-Normalize-slashes-in-tftp-paths.patch @@ -1,7 +1,7 @@ From 406402dfaecc62ede346793c9c7a0568dc71c131 Mon Sep 17 00:00:00 2001 From: Lenny Szubowicz Date: Mon, 29 Aug 2016 11:04:48 -0400 -Subject: [PATCH 146/236] Normalize slashes in tftp paths. +Subject: [PATCH 146/238] Normalize slashes in tftp paths. Some tftp servers do not handle multiple consecutive slashes correctly; this patch avoids sending tftp requests with non-normalized paths. @@ -54,5 +54,5 @@ index 1157524fc50..5ca0a96a6f6 100644 rrq += grub_strlen (filename) + 1; -- -2.15.0 +2.17.0 diff --git a/0147-Fix-malformed-tftp-packets.patch b/0147-Fix-malformed-tftp-packets.patch index c535c87b..a4b89f18 100644 --- a/0147-Fix-malformed-tftp-packets.patch +++ b/0147-Fix-malformed-tftp-packets.patch @@ -1,7 +1,7 @@ From 7d05a8298e6a54bfae0038841462443f21da3535 Mon Sep 17 00:00:00 2001 From: Mark Salter Date: Tue, 7 Mar 2017 18:26:17 -0500 -Subject: [PATCH 147/236] Fix malformed tftp packets +Subject: [PATCH 147/238] Fix malformed tftp packets 0088-Normalize-slashes-in-tftp-paths.patch collapses multiple contiguous slashes in a filename into one slash in the tftp packet filename field. @@ -31,5 +31,5 @@ index 5ca0a96a6f6..dcd82494309 100644 grub_strcpy (rrq, "octet"); rrqlen += grub_strlen ("octet") + 1; -- -2.15.0 +2.17.0 diff --git a/0148-Fix-race-in-EFI-validation.patch b/0148-Fix-race-in-EFI-validation.patch index 859674f6..94b543c3 100644 --- a/0148-Fix-race-in-EFI-validation.patch +++ b/0148-Fix-race-in-EFI-validation.patch @@ -1,7 +1,7 @@ From bf59d76ca82eb4eaa20a747f5890d09632ba93d0 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 14 Jul 2015 16:58:51 -0700 -Subject: [PATCH 148/236] Fix race in EFI validation +Subject: [PATCH 148/238] Fix race in EFI validation --- grub-core/loader/i386/efi/linux.c | 44 ++++++++++----------------------------- @@ -93,5 +93,5 @@ index e5b778577f9..7ccf32d9d45 100644 { grub_dl_unref (my_mod); -- -2.15.0 +2.17.0 diff --git a/0149-bz1374141-fix-incorrect-mask-for-ppc64.patch b/0149-bz1374141-fix-incorrect-mask-for-ppc64.patch index 1796f3f2..aad281db 100644 --- a/0149-bz1374141-fix-incorrect-mask-for-ppc64.patch +++ b/0149-bz1374141-fix-incorrect-mask-for-ppc64.patch @@ -1,7 +1,7 @@ From 84a5f535949f590a8976c64c3d1fde08fe0f7464 Mon Sep 17 00:00:00 2001 From: Masahiro Matsuya Date: Sat, 29 Oct 2016 08:35:26 +0900 -Subject: [PATCH 149/236] bz1374141 fix incorrect mask for ppc64 +Subject: [PATCH 149/238] bz1374141 fix incorrect mask for ppc64 The netmask configured in firmware is not respected on ppc64 (big endian). When 255.255.252.0 is set as netmask in firmware, the following is the value of bootpath string in grub_ieee1275_parse_bootpath(). @@ -44,5 +44,5 @@ index 002446be1c3..3df75357a70 100644 if (gateway_addr.ipv4 != 0) -- -2.15.0 +2.17.0 diff --git a/0150-Use-device-part-of-chainloader-target-if-present.patch b/0150-Use-device-part-of-chainloader-target-if-present.patch index eedaac18..5f1c8aec 100644 --- a/0150-Use-device-part-of-chainloader-target-if-present.patch +++ b/0150-Use-device-part-of-chainloader-target-if-present.patch @@ -1,7 +1,7 @@ From d426e20f8b41ebf114075dc4ffbcaf438ceb4b95 Mon Sep 17 00:00:00 2001 From: Raymund Will Date: Fri, 10 Apr 2015 01:45:02 -0400 -Subject: [PATCH 150/236] Use device part of chainloader target, if present. +Subject: [PATCH 150/238] Use device part of chainloader target, if present. Otherwise chainloading is restricted to '$root', which might not even be readable by EFI! @@ -33,5 +33,5 @@ index adc85636633..14ce6ddd7ad 100644 goto fail; -- -2.15.0 +2.17.0 diff --git a/0151-Add-secureboot-support-on-efi-chainloader.patch b/0151-Add-secureboot-support-on-efi-chainloader.patch index 932d4896..e9a9d3d9 100644 --- a/0151-Add-secureboot-support-on-efi-chainloader.patch +++ b/0151-Add-secureboot-support-on-efi-chainloader.patch @@ -1,7 +1,7 @@ From bbf98517303e438cea398bb74306b6553c880ac3 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 6 Oct 2015 13:04:37 -0400 -Subject: [PATCH 151/236] Add secureboot support on efi chainloader +Subject: [PATCH 151/238] Add secureboot support on efi chainloader Expand the chainloader to be able to verify the image by means of shim lock protocol. The PE/COFF image is loaded and relocated by the @@ -796,5 +796,5 @@ index 7d44732d2c3..6e24dae2cb6 100644 { grub_uint32_t page_rva; -- -2.15.0 +2.17.0 diff --git a/0152-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch b/0152-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch index 19361d6c..240ccf6a 100644 --- a/0152-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch +++ b/0152-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch @@ -1,7 +1,7 @@ From 25ea5be888dcc92cd0b3cb7d34b381f5005f1e30 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 6 Oct 2015 16:09:25 -0400 -Subject: [PATCH 152/236] Make any of the loaders that link in efi mode honor +Subject: [PATCH 152/238] Make any of the loaders that link in efi mode honor secure boot. And in this case "honor" means "even if somebody does link this in, they @@ -490,5 +490,5 @@ index 10451384720..f7b4d29b0b3 100644 KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/env_private.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/err.h -- -2.15.0 +2.17.0 diff --git a/0153-Make-grub_fatal-also-backtrace.patch b/0153-Make-grub_fatal-also-backtrace.patch index a7606910..ccbad8e6 100644 --- a/0153-Make-grub_fatal-also-backtrace.patch +++ b/0153-Make-grub_fatal-also-backtrace.patch @@ -1,7 +1,7 @@ From eb1a27144476324a22561383a0a2e61aa327d2f5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 27 Jan 2016 09:22:42 -0500 -Subject: [PATCH 153/236] Make grub_fatal() also backtrace. +Subject: [PATCH 153/238] Make grub_fatal() also backtrace. --- grub-core/Makefile.core.def | 3 ++ @@ -171,5 +171,5 @@ index c3e03c7275c..c67273db3ae 100644 #include #include -- -2.15.0 +2.17.0 diff --git a/0154-Rework-linux-command.patch b/0154-Rework-linux-command.patch index 7cc4016e..792f9f5f 100644 --- a/0154-Rework-linux-command.patch +++ b/0154-Rework-linux-command.patch @@ -1,7 +1,7 @@ From 12312bfe1727a2992042436cb0f8c8ba1c69ee2f Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 16:12:39 -0700 -Subject: [PATCH 154/236] Rework linux command +Subject: [PATCH 154/238] Rework linux command We want a single buffer that contains the entire kernel image in order to perform a TPM measurement. Allocate one and copy the entire kernel into it @@ -103,5 +103,5 @@ index b2438547dd0..e4b8342f5d0 100644 grub_file_close (file); -- -2.15.0 +2.17.0 diff --git a/0155-Rework-linux16-command.patch b/0155-Rework-linux16-command.patch index e8e817b9..8355cfe5 100644 --- a/0155-Rework-linux16-command.patch +++ b/0155-Rework-linux16-command.patch @@ -1,7 +1,7 @@ From 24250bbb84f8817462426c46b255d875de627bf1 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 16:20:58 -0700 -Subject: [PATCH 155/236] Rework linux16 command +Subject: [PATCH 155/238] Rework linux16 command We want a single buffer that contains the entire kernel image in order to perform a TPM measurement. Allocate one and copy the entire kernel int it @@ -97,5 +97,5 @@ index 91283157e30..b864e540333 100644 grub_file_close (file); -- -2.15.0 +2.17.0 diff --git a/0156-Make-grub-editenv-build-again.patch b/0156-Make-grub-editenv-build-again.patch index 39dceff1..227119d5 100644 --- a/0156-Make-grub-editenv-build-again.patch +++ b/0156-Make-grub-editenv-build-again.patch @@ -1,7 +1,7 @@ From ebe69b2682b5b3029d8ea503f12134ee81c4b2ce Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 4 Mar 2016 16:29:13 -0500 -Subject: [PATCH 156/236] Make grub-editenv build again. +Subject: [PATCH 156/238] Make grub-editenv build again. 36212460d3565b18439a3a8130b28e6c97702c6a split how some of the mkimage utility functions are defined, and they wind up being linked into @@ -26,5 +26,5 @@ index ed27351eb47..38cdf4ccc09 100644 common = util/config.c; common = util/resolve.c; -- -2.15.0 +2.17.0 diff --git a/0157-Fix-up-some-man-pages-rpmdiff-noticed.patch b/0157-Fix-up-some-man-pages-rpmdiff-noticed.patch index d33fe513..9eb04710 100644 --- a/0157-Fix-up-some-man-pages-rpmdiff-noticed.patch +++ b/0157-Fix-up-some-man-pages-rpmdiff-noticed.patch @@ -1,7 +1,7 @@ From c71e6152ea8e4e525a853441bb5f08808bae3afd Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 23 Sep 2014 09:58:49 -0400 -Subject: [PATCH 157/236] Fix up some man pages rpmdiff noticed. +Subject: [PATCH 157/238] Fix up some man pages rpmdiff noticed. --- configure.ac | 2 ++ @@ -149,5 +149,5 @@ index 00000000000..85309482718 +.SH SEE ALSO +.BR "info grub" -- -2.15.0 +2.17.0 diff --git a/0158-Re-work-some-intricacies-of-PE-loading.patch b/0158-Re-work-some-intricacies-of-PE-loading.patch index 6046b004..cd8491cf 100644 --- a/0158-Re-work-some-intricacies-of-PE-loading.patch +++ b/0158-Re-work-some-intricacies-of-PE-loading.patch @@ -1,7 +1,7 @@ From 145214ee7c411c7d600016f011dc11b213bce0b2 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 9 Jun 2016 12:22:29 -0400 -Subject: [PATCH 158/236] Re-work some intricacies of PE loading. +Subject: [PATCH 158/238] Re-work some intricacies of PE loading. The PE spec is not a well written document, and awesomely every place where there's an ambiguous way to read something, Windows' bootmgfw.efi @@ -349,5 +349,5 @@ index 6e24dae2cb6..c03cc599f63 100644 struct grub_pe32_header -- -2.15.0 +2.17.0 diff --git a/0159-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch b/0159-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch index dd0c7e9f..2eee4b68 100644 --- a/0159-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch +++ b/0159-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch @@ -1,7 +1,7 @@ From ef24bc601e11b96eefe06f477b5da1199d761b3d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 10 Jun 2016 14:06:15 -0400 -Subject: [PATCH 159/236] Rework even more of efi chainload so non-sb cases +Subject: [PATCH 159/238] Rework even more of efi chainload so non-sb cases work right. This ensures that if shim protocol is not loaded, or is loaded but shim @@ -412,5 +412,5 @@ index d9ede36773b..0033d9305a9 100644 grub_err_t EXPORT_FUNC(grub_efi_linux_boot) (void *kernel_address, grub_off_t offset, -- -2.15.0 +2.17.0 diff --git a/0160-linuxefi-fix-double-free-on-verification-failure.patch b/0160-linuxefi-fix-double-free-on-verification-failure.patch index dd74a4bd..18489adb 100644 --- a/0160-linuxefi-fix-double-free-on-verification-failure.patch +++ b/0160-linuxefi-fix-double-free-on-verification-failure.patch @@ -1,7 +1,7 @@ From 5ef3f00e6be3033092453a66f456b8dac8cd4f7c Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jun 2016 09:50:25 -0400 -Subject: [PATCH 160/236] linuxefi: fix double free on verification failure. +Subject: [PATCH 160/238] linuxefi: fix double free on verification failure. Signed-off-by: Peter Jones --- @@ -21,5 +21,5 @@ index 82f75b7f3ab..010bf982d80 100644 } -- -2.15.0 +2.17.0 diff --git a/0161-fix-machine-type-test-in-30_os-prober.in.patch b/0161-fix-machine-type-test-in-30_os-prober.in.patch index 6388f3fc..c9c7d727 100644 --- a/0161-fix-machine-type-test-in-30_os-prober.in.patch +++ b/0161-fix-machine-type-test-in-30_os-prober.in.patch @@ -1,7 +1,7 @@ From 4139fdfdb64fd248a0d5f200b27c583159dbb190 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 11 Jul 2016 13:36:45 -0400 -Subject: [PATCH 161/236] fix machine type test in 30_os-prober.in +Subject: [PATCH 161/238] fix machine type test in 30_os-prober.in Signed-off-by: Peter Jones --- @@ -21,5 +21,5 @@ index dc98eace934..e40274fc0f4 100644 i?86|x86_64) sixteenbit="16" -- -2.15.0 +2.17.0 diff --git a/0162-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch b/0162-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch index 92e473eb..d3738d06 100644 --- a/0162-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch +++ b/0162-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch @@ -1,7 +1,7 @@ From 671699a76fa6510a62c3a94acd698a31686cb8fa Mon Sep 17 00:00:00 2001 From: Laszlo Ersek Date: Mon, 21 Nov 2016 15:34:00 +0100 -Subject: [PATCH 162/236] efi/chainloader: fix wrong sanity check in +Subject: [PATCH 162/238] efi/chainloader: fix wrong sanity check in relocate_coff() In relocate_coff(), the relocation entries are parsed from the original @@ -35,5 +35,5 @@ index b977c7b5573..d5ab21d09c3 100644 grub_error (GRUB_ERR_BAD_ARGUMENT, "Reloc entry %d overflows binary", n); -- -2.15.0 +2.17.0 diff --git a/0163-efi-chainloader-truncate-overlong-relocation-section.patch b/0163-efi-chainloader-truncate-overlong-relocation-section.patch index cfa95718..9440dc91 100644 --- a/0163-efi-chainloader-truncate-overlong-relocation-section.patch +++ b/0163-efi-chainloader-truncate-overlong-relocation-section.patch @@ -1,7 +1,7 @@ From d081bd5f47235e3bfd256fd262a6f98fe8b0d0ff Mon Sep 17 00:00:00 2001 From: Laszlo Ersek Date: Wed, 23 Nov 2016 06:27:09 +0100 -Subject: [PATCH 163/236] efi/chainloader: truncate overlong relocation section +Subject: [PATCH 163/238] efi/chainloader: truncate overlong relocation section The UEFI Windows 7 boot loader ("EFI/Microsoft/Boot/bootmgfw.efi", SHA1 31b410e029bba87d2068c65a80b88882f9f8ea25) has inconsistent headers. @@ -109,5 +109,5 @@ index d5ab21d09c3..7826e794ad9 100644 grub_dprintf ("chain", " section is not reloc section?\n"); grub_dprintf ("chain", " rds: 0x%08x, vs: %08x\n", -- -2.15.0 +2.17.0 diff --git a/0164-linuxefi-minor-cleanups.patch b/0164-linuxefi-minor-cleanups.patch index 252e466f..aad31377 100644 --- a/0164-linuxefi-minor-cleanups.patch +++ b/0164-linuxefi-minor-cleanups.patch @@ -1,7 +1,7 @@ From 8dc21ff37f62f3d10fb3d708ffd33b7d723a23cf Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Feb 2017 16:31:52 -0500 -Subject: [PATCH 164/236] linuxefi: minor cleanups +Subject: [PATCH 164/238] linuxefi: minor cleanups Signed-off-by: Peter Jones --- @@ -85,5 +85,5 @@ index 010bf982d80..8b5a817b9d1 100644 return grub_errno; } -- -2.15.0 +2.17.0 diff --git a/0165-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch b/0165-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch index 867f00f3..1576b675 100644 --- a/0165-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch +++ b/0165-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch @@ -1,7 +1,7 @@ From 10d6d333de0aa7e390a22ebc4b308f7ad937d5bc Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Feb 2017 16:18:54 -0500 -Subject: [PATCH 165/236] Handle multi-arch (64-on-32) boot in linuxefi loader. +Subject: [PATCH 165/238] Handle multi-arch (64-on-32) boot in linuxefi loader. Allow booting 64-bit kernels on 32-bit EFI on x86. @@ -272,5 +272,5 @@ index fc36bdaf367..110ecf806fb 100644 grub_uint32_t hardware_subarch; grub_uint64_t hardware_subarch_data; -- -2.15.0 +2.17.0 diff --git a/0166-Fix-up-linux-params-usage.patch b/0166-Fix-up-linux-params-usage.patch index d0b5d345..02e22abd 100644 --- a/0166-Fix-up-linux-params-usage.patch +++ b/0166-Fix-up-linux-params-usage.patch @@ -1,7 +1,7 @@ From 93be95c27b0ddb63c2e3a287a3ed92c0a5de93e5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 30 May 2017 14:16:07 -0400 -Subject: [PATCH 166/236] Fix up linux params usage... +Subject: [PATCH 166/238] Fix up linux params usage... Signed-off-by: Peter Jones --- @@ -39,5 +39,5 @@ index e4b8342f5d0..c9e89310bdd 100644 linux_params.type_of_loader = GRUB_LINUX_BOOT_LOADER_TYPE; -- -2.15.0 +2.17.0 diff --git a/0167-Make-exit-take-a-return-code.patch b/0167-Make-exit-take-a-return-code.patch index 0ee42d25..54460d46 100644 --- a/0167-Make-exit-take-a-return-code.patch +++ b/0167-Make-exit-take-a-return-code.patch @@ -1,7 +1,7 @@ From 6b67d46c1764c86611939dc01267f9c70f413184 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 26 Feb 2014 21:49:12 -0500 -Subject: [PATCH 167/236] Make "exit" take a return code. +Subject: [PATCH 167/238] Make "exit" take a return code. This adds "exit" with a return code. With this patch, any "exit" command /may/ include a return code, and on platforms that support @@ -52,5 +52,5 @@ index 5ce89a40c68..04371ac49f2 100644 grub_fatal (const char *fmt, ...) { -- -2.15.0 +2.17.0 diff --git a/0168-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch b/0168-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch index b9c38e0f..42e2347f 100644 --- a/0168-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch +++ b/0168-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch @@ -1,7 +1,7 @@ From e48a4c0b9e475b16366ff6c375de5186432eb1f7 Mon Sep 17 00:00:00 2001 From: Mark Salter Date: Mon, 17 Apr 2017 08:44:29 -0400 -Subject: [PATCH 168/236] arm64: make sure fdt has #address-cells and +Subject: [PATCH 168/238] arm64: make sure fdt has #address-cells and #size-cells properties Recent upstream changes to kexec-tools relies on #address-cells @@ -41,5 +41,5 @@ index ad39a301527..59ff9cc05b4 100644 if (node < 1) goto failure; -- -2.15.0 +2.17.0 diff --git a/0169-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch b/0169-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch index c1a69c19..caab158f 100644 --- a/0169-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch +++ b/0169-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch @@ -1,7 +1,7 @@ From 755fa5ccf0834abdb7e50a1cb06fad618f6c9af6 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 9 May 2016 14:15:17 -0400 -Subject: [PATCH 169/236] Add some grub_dprintf() in the secure boot verify +Subject: [PATCH 169/238] Add some grub_dprintf() in the secure boot verify code. Signed-off-by: Peter Jones @@ -40,5 +40,5 @@ index 2a7024134da..7fe7201a388 100644 return -1; } -- -2.15.0 +2.17.0 diff --git a/0170-Make-our-info-pages-say-grub2-where-appropriate.patch b/0170-Make-our-info-pages-say-grub2-where-appropriate.patch index d45aa90b..d2274fd2 100644 --- a/0170-Make-our-info-pages-say-grub2-where-appropriate.patch +++ b/0170-Make-our-info-pages-say-grub2-where-appropriate.patch @@ -1,7 +1,7 @@ From 15c340acd845056ba259b9fffd6c7d083874cb82 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 6 May 2016 18:43:08 -0400 -Subject: [PATCH 170/236] Make our info pages say "grub2" where appropriate. +Subject: [PATCH 170/238] Make our info pages say "grub2" where appropriate. This needs to be hooked up to --program-transform=, but I haven't had time. @@ -1012,5 +1012,5 @@ index 15a90b26e4d..f28c4cd5247 100644 @table @option @item --help -- -2.15.0 +2.17.0 diff --git a/0171-print-more-debug-info-in-our-module-loader.patch b/0171-print-more-debug-info-in-our-module-loader.patch index bcedb1b3..e2079364 100644 --- a/0171-print-more-debug-info-in-our-module-loader.patch +++ b/0171-print-more-debug-info-in-our-module-loader.patch @@ -1,7 +1,7 @@ From 0d0a7ebbed42b97fca63cbcaf85a469b77c76fda Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 1 May 2017 11:19:40 -0400 -Subject: [PATCH 171/236] print more debug info in our module loader. +Subject: [PATCH 171/238] print more debug info in our module loader. Signed-off-by: Peter Jones --- @@ -40,5 +40,5 @@ index 684ca93f8f4..866fc20e162 100644 } -- -2.15.0 +2.17.0 diff --git a/0172-macos-just-build-chainloader-entries-don-t-try-any-x.patch b/0172-macos-just-build-chainloader-entries-don-t-try-any-x.patch index 328aff26..c694e2e8 100644 --- a/0172-macos-just-build-chainloader-entries-don-t-try-any-x.patch +++ b/0172-macos-just-build-chainloader-entries-don-t-try-any-x.patch @@ -1,7 +1,7 @@ From 4cb6b65d74966dfbe6e8463ee1e88d99ca7de5b1 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 24 May 2017 12:42:32 -0400 -Subject: [PATCH 172/236] macos: just build chainloader entries, don't try any +Subject: [PATCH 172/238] macos: just build chainloader entries, don't try any xnu xnu. Since our bugs tell us that the xnu boot entries really just don't work @@ -124,5 +124,5 @@ index e40274fc0f4..d979de1982a 100644 hurd) onstr="$(gettext_printf "(on %s)" "${DEVICE}")" -- -2.15.0 +2.17.0 diff --git a/0173-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch b/0173-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch index 6bacc496..28243240 100644 --- a/0173-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch +++ b/0173-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch @@ -1,7 +1,7 @@ From 396001716b7f8c7a6aee17f33fdb9e5d47424cbc Mon Sep 17 00:00:00 2001 From: Jeff Mahoney Date: Wed, 18 Dec 2013 09:57:04 +0000 -Subject: [PATCH 173/236] grub2/btrfs: Add ability to boot from subvolumes +Subject: [PATCH 173/238] grub2/btrfs: Add ability to boot from subvolumes This patch adds the ability to specify a different root on a btrfs filesystem too boot from other than the default one. @@ -702,5 +702,5 @@ index 9d93fb6c182..234ad976771 100644 }; -- -2.15.0 +2.17.0 diff --git a/0174-export-btrfs_subvol-and-btrfs_subvolid.patch b/0174-export-btrfs_subvol-and-btrfs_subvolid.patch index 185e4f48..c60fdc89 100644 --- a/0174-export-btrfs_subvol-and-btrfs_subvolid.patch +++ b/0174-export-btrfs_subvol-and-btrfs_subvolid.patch @@ -1,7 +1,7 @@ From 35c1015fc1a4313be34757eebb195547336e0edf Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Wed, 18 Dec 2013 09:57:04 +0000 -Subject: [PATCH 174/236] export btrfs_subvol and btrfs_subvolid +Subject: [PATCH 174/238] export btrfs_subvol and btrfs_subvolid We should export btrfs_subvol and btrfs_subvolid to have both visible to subsidiary configuration files loaded using configfile. @@ -25,5 +25,5 @@ index 38facf3cb8b..3962961666e 100644 GRUB_MOD_FINI (btrfs) -- -2.15.0 +2.17.0 diff --git a/0175-grub2-btrfs-03-follow_default.patch b/0175-grub2-btrfs-03-follow_default.patch index 3a093d9a..e4f0c8b4 100644 --- a/0175-grub2-btrfs-03-follow_default.patch +++ b/0175-grub2-btrfs-03-follow_default.patch @@ -1,7 +1,7 @@ From 476a0251e8ca2850da7c383baf7fdbd810bc789f Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 21 Aug 2014 03:39:11 +0000 -Subject: [PATCH 175/236] grub2-btrfs-03-follow_default +Subject: [PATCH 175/238] grub2-btrfs-03-follow_default --- grub-core/fs/btrfs.c | 107 ++++++++++++++++++++++++++++++++++++--------------- @@ -195,5 +195,5 @@ index 3962961666e..2c462584e91 100644 GRUB_MOD_FINI (btrfs) -- -2.15.0 +2.17.0 diff --git a/0176-grub2-btrfs-04-grub2-install.patch b/0176-grub2-btrfs-04-grub2-install.patch index 338c3ab2..5fd9af3c 100644 --- a/0176-grub2-btrfs-04-grub2-install.patch +++ b/0176-grub2-btrfs-04-grub2-install.patch @@ -1,7 +1,7 @@ From e03dd83cc804d70af0716d0a429715afbcdc7eae Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 21 Aug 2014 03:39:11 +0000 -Subject: [PATCH 176/236] grub2-btrfs-04-grub2-install +Subject: [PATCH 176/238] grub2-btrfs-04-grub2-install --- grub-core/osdep/linux/getroot.c | 7 +++++++ @@ -173,5 +173,5 @@ index 875d5896ce1..c9a7e5f4ade 100644 void -- -2.15.0 +2.17.0 diff --git a/0177-grub2-btrfs-05-grub2-mkconfig.patch b/0177-grub2-btrfs-05-grub2-mkconfig.patch index 98c94dfc..b6e05533 100644 --- a/0177-grub2-btrfs-05-grub2-mkconfig.patch +++ b/0177-grub2-btrfs-05-grub2-mkconfig.patch @@ -1,7 +1,7 @@ From cb43e7a6c96127e72d6787c6063de8911284fe18 Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 21 Aug 2014 03:39:11 +0000 -Subject: [PATCH 177/236] grub2-btrfs-05-grub2-mkconfig +Subject: [PATCH 177/238] grub2-btrfs-05-grub2-mkconfig --- util/grub-mkconfig.in | 3 ++- @@ -126,5 +126,5 @@ index 54f1ec8a2fd..462f8e1f819 100644 xzfs) rpool=`${grub_probe} --device ${GRUB_DEVICE} --target=fs_label 2>/dev/null || true` -- -2.15.0 +2.17.0 diff --git a/0178-grub2-btrfs-06-subvol-mount.patch b/0178-grub2-btrfs-06-subvol-mount.patch index 3849bbe1..09c87b90 100644 --- a/0178-grub2-btrfs-06-subvol-mount.patch +++ b/0178-grub2-btrfs-06-subvol-mount.patch @@ -1,7 +1,7 @@ From 84d6a482c2c8d0677141bb888512a6a89daf9d8b Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Fri, 22 May 2015 11:45:25 +0000 -Subject: [PATCH 178/236] grub2-btrfs-06-subvol-mount +Subject: [PATCH 178/238] grub2-btrfs-06-subvol-mount --- grub-core/fs/btrfs.c | 195 +++++++++++++++++++++++++++++++++++++++- @@ -536,5 +536,5 @@ index 73fa2d34abb..9c642ae3fe3 100644 void grub_util_pull_devmapper (const char *os_dev); -- -2.15.0 +2.17.0 diff --git a/0179-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch b/0179-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch index 56891703..ed59886d 100644 --- a/0179-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch +++ b/0179-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch @@ -1,7 +1,7 @@ From 741c0651cd54970c08e9c19a82f5805aafbfda23 Mon Sep 17 00:00:00 2001 From: Dusty Mabe Date: Sat, 18 Jul 2015 15:38:08 +0000 -Subject: [PATCH 179/236] No more "Bootable Snapshot" submenu in grub.cfg. +Subject: [PATCH 179/238] No more "Bootable Snapshot" submenu in grub.cfg. This breaks grubby (run on kernel upgrades) because grubby just does a search for "menuentry". @@ -30,5 +30,5 @@ index e2a53300126..8a16fea347e 100644 -EOF -fi -- -2.15.0 +2.17.0 diff --git a/0180-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch b/0180-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch index e1e33bb0..806a2e89 100644 --- a/0180-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch +++ b/0180-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch @@ -1,7 +1,7 @@ From ab8e0d4bf544b708f5afa4cc56e6bd16789f2f1e Mon Sep 17 00:00:00 2001 From: Andrei Borzenkov Date: Tue, 21 Jun 2016 16:44:17 +0000 -Subject: [PATCH 180/236] Fallback to old subvol name scheme to support old +Subject: [PATCH 180/238] Fallback to old subvol name scheme to support old snapshot config Ref: bsc#953538 @@ -57,5 +57,5 @@ index d111147e836..a5c000805a7 100644 if (btrfs_default_subvolid) return lookup_root_by_id(data, btrfs_default_subvolid); -- -2.15.0 +2.17.0 diff --git a/0181-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch b/0181-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch index cd990e8a..4569f0cd 100644 --- a/0181-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch +++ b/0181-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch @@ -1,7 +1,7 @@ From eb8535428a42c7099666ddb58ac900bb8ee745ba Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 11 May 2017 08:56:57 +0000 -Subject: [PATCH 181/236] Grub not working correctly with btrfs snapshots +Subject: [PATCH 181/238] Grub not working correctly with btrfs snapshots (bsc#1026511) --- @@ -272,5 +272,5 @@ index a5c000805a7..3cd9472197c 100644 subvol_set_env); grub_register_variable_hook ("btrfs_subvolid", subvolid_get_env, -- -2.15.0 +2.17.0 diff --git a/0182-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch b/0182-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch index a114cee6..4ce87f3e 100644 --- a/0182-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch +++ b/0182-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch @@ -1,7 +1,7 @@ From 2a6e1d2491b7334985ad25315faa22d26354d8b7 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 1 Jun 2017 09:59:56 -0400 -Subject: [PATCH 182/236] Add grub_efi_allocate_pool() and grub_efi_free_pool() +Subject: [PATCH 182/238] Add grub_efi_allocate_pool() and grub_efi_free_pool() wrappers. Signed-off-by: Peter Jones @@ -71,5 +71,5 @@ index 91e29ce66f1..68326d96f5a 100644 struct grub_net_card; -- -2.15.0 +2.17.0 diff --git a/0183-Use-grub_efi_.-memory-helpers-where-reasonable.patch b/0183-Use-grub_efi_.-memory-helpers-where-reasonable.patch index f9c5f4ab..dadfe4ff 100644 --- a/0183-Use-grub_efi_.-memory-helpers-where-reasonable.patch +++ b/0183-Use-grub_efi_.-memory-helpers-where-reasonable.patch @@ -1,7 +1,7 @@ From 6ea13cdb3f33da45d7a8042d85ad87e2a18fc946 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 1 Jun 2017 10:06:38 -0400 -Subject: [PATCH 183/236] Use grub_efi_...() memory helpers where reasonable. +Subject: [PATCH 183/238] Use grub_efi_...() memory helpers where reasonable. This uses grub_efi_allocate_pool(), grub_efi_free_pool(), and grub_efi_free_pages() instead of open-coded efi_call_N() calls, so we @@ -105,5 +105,5 @@ index 7826e794ad9..d2557b38dce 100644 if (cmdline) grub_free (cmdline); -- -2.15.0 +2.17.0 diff --git a/0184-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch b/0184-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch index 037d3498..493cc69f 100644 --- a/0184-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch +++ b/0184-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch @@ -1,7 +1,7 @@ From eae94a16a8ae350cdeab8b7742f9227d92001272 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 1 Jun 2017 10:07:50 -0400 -Subject: [PATCH 184/236] Add PRIxGRUB_EFI_STATUS and use it. +Subject: [PATCH 184/238] Add PRIxGRUB_EFI_STATUS and use it. This avoids syntax checkers getting confused about if it's llx or lx. @@ -45,5 +45,5 @@ index 02488ec35ae..ddc5ecfb03d 100644 #define GRUB_EFI_ERROR_CODE(value) \ ((((grub_efi_status_t) 1) << (sizeof (grub_efi_status_t) * 8 - 1)) | (value)) -- -2.15.0 +2.17.0 diff --git a/0185-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch b/0185-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch index 3cec32e3..eadaf044 100644 --- a/0185-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch +++ b/0185-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch @@ -1,7 +1,7 @@ From 41a50aa2c275076caa2f9fe7a747eeb054abed16 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:42:57 -0400 -Subject: [PATCH 185/236] Don't use dynamic sized arrays since we don't build +Subject: [PATCH 185/238] Don't use dynamic sized arrays since we don't build with -std=c99 --- @@ -42,5 +42,5 @@ index 4be228d9576..fa3e2912643 100644 { grub_strcpy (suffix, client_uuid); -- -2.15.0 +2.17.0 diff --git a/0186-don-t-ignore-const.patch b/0186-don-t-ignore-const.patch index 3169780d..5ff0ee47 100644 --- a/0186-don-t-ignore-const.patch +++ b/0186-don-t-ignore-const.patch @@ -1,7 +1,7 @@ From d06e2578107f217d2bc8beee7fd0dc7f2645873d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:43:22 -0400 -Subject: [PATCH 186/236] don't ignore const +Subject: [PATCH 186/238] don't ignore const --- grub-core/net/tftp.c | 2 +- @@ -21,5 +21,5 @@ index dcd82494309..f90071353ad 100644 while (*src != '\0') { -- -2.15.0 +2.17.0 diff --git a/0187-don-t-use-int-for-efi-status.patch b/0187-don-t-use-int-for-efi-status.patch index 63011b2c..1b57a96f 100644 --- a/0187-don-t-use-int-for-efi-status.patch +++ b/0187-don-t-use-int-for-efi-status.patch @@ -1,7 +1,7 @@ From 6d86c59c24e12c8e8471cdd2affca574fdee160d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:44:59 -0400 -Subject: [PATCH 187/236] don't use int for efi status +Subject: [PATCH 187/238] don't use int for efi status --- grub-core/kern/efi/efi.c | 2 +- @@ -21,5 +21,5 @@ index 866fc20e162..91f75fdb89a 100644 if (retval == 0) rc = GRUB_EFI_SUCCESS; -- -2.15.0 +2.17.0 diff --git a/0188-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch b/0188-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch index e14f3e5f..8de6fc0f 100644 --- a/0188-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch +++ b/0188-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch @@ -1,7 +1,7 @@ From ba6828d073bbda85eba59a9ce9220eada51a540b Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:46:23 -0400 -Subject: [PATCH 188/236] make GRUB_MOD_INIT() declare its function prototypes. +Subject: [PATCH 188/238] make GRUB_MOD_INIT() declare its function prototypes. --- include/grub/dl.h | 2 ++ @@ -28,5 +28,5 @@ index 2bca56ce0e8..b1ed3c33317 100644 grub_##name##_fini (void) { grub_mod_fini (); } \ static void \ -- -2.15.0 +2.17.0 diff --git a/0189-Clean-up-some-errors-in-the-linuxefi-loader.patch b/0189-Clean-up-some-errors-in-the-linuxefi-loader.patch index 9e3b332e..10eed2c0 100644 --- a/0189-Clean-up-some-errors-in-the-linuxefi-loader.patch +++ b/0189-Clean-up-some-errors-in-the-linuxefi-loader.patch @@ -1,7 +1,7 @@ From 8bdc0c77919ddb9bd588ac45e96c96497683f76c Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 24 May 2017 15:58:18 -0400 -Subject: [PATCH 189/236] Clean up some errors in the linuxefi loader +Subject: [PATCH 189/238] Clean up some errors in the linuxefi loader Signed-off-by: Peter Jones --- @@ -65,5 +65,5 @@ index bed5919cab3..6db5d0bf3a0 100644 linux_cmdline, BYTES_TO_PAGES(lh->cmdline_size + 1)); -- -2.15.0 +2.17.0 diff --git a/0190-editenv-handle-relative-symlinks.patch b/0190-editenv-handle-relative-symlinks.patch index 8cc41108..373b2d20 100644 --- a/0190-editenv-handle-relative-symlinks.patch +++ b/0190-editenv-handle-relative-symlinks.patch @@ -1,7 +1,7 @@ From 098987b7b5fcc15a5ba3600fa132fcec36095c5a Mon Sep 17 00:00:00 2001 From: Jonathan Lebon Date: Mon, 14 Aug 2017 14:37:20 -0400 -Subject: [PATCH 190/236] editenv: handle relative symlinks +Subject: [PATCH 190/238] editenv: handle relative symlinks Handle symlinks with targets relative to the containing dir. This ensures that the rename operation does not depend on the cwd. @@ -49,5 +49,5 @@ index d8d1dad6ab9..41bc7cb1c9a 100644 int rc = grub_util_rename (namenew, rename_target); -- -2.15.0 +2.17.0 diff --git a/0191-Make-libgrub.pp-depend-on-config-util.h.patch b/0191-Make-libgrub.pp-depend-on-config-util.h.patch index 8cfa7a3d..45a41c40 100644 --- a/0191-Make-libgrub.pp-depend-on-config-util.h.patch +++ b/0191-Make-libgrub.pp-depend-on-config-util.h.patch @@ -1,7 +1,7 @@ From c86299049c2cc0503728deee280d9f6bf50886f4 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 23 Aug 2017 10:37:27 -0400 -Subject: [PATCH 191/236] Make libgrub.pp depend on config-util.h +Subject: [PATCH 191/238] Make libgrub.pp depend on config-util.h If you build with "make -j48" a lot, sometimes you see: @@ -44,5 +44,5 @@ index 7795baeb654..c7b0e6a9c46 100644 -D'GRUB_MOD_INIT(x)=@MARKER@x@' $^ > $@ || (rm -f $@; exit 1) CLEANFILES += libgrub.pp -- -2.15.0 +2.17.0 diff --git a/0192-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch b/0192-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch index 4d14c1c9..a673304e 100644 --- a/0192-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch +++ b/0192-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch @@ -1,7 +1,7 @@ From 351799d9310a4bec23ed4074444780c2a35435fd Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 20 Apr 2017 13:29:06 -0400 -Subject: [PATCH 192/236] Don't guess /boot/efi/ as HFS+ on ppc machines in +Subject: [PATCH 192/238] Don't guess /boot/efi/ as HFS+ on ppc machines in grub-install This should never be trying this, and since we've consolidated the @@ -40,5 +40,5 @@ index cd84a72b97b..48f2abc3ea5 100644 { free (d); -- -2.15.0 +2.17.0 diff --git a/0193-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch b/0193-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch index 6c6e3124..355c8f19 100644 --- a/0193-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch +++ b/0193-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch @@ -1,7 +1,7 @@ From cba0322cd88baf136ac693f5ec1826f3314daeff Mon Sep 17 00:00:00 2001 From: Konrad Rzeszutek Wilk Date: Mon, 28 Aug 2017 13:51:14 -0400 -Subject: [PATCH 193/236] Fix util/grub.d/20_linux_xen.in: Add xen_boot command +Subject: [PATCH 193/238] Fix util/grub.d/20_linux_xen.in: Add xen_boot command support for aarch64 Commit d33045ce7ffcb7c1e4a60c14d5ca64b36e3c5abe introduced @@ -58,5 +58,5 @@ index 462f8e1f819..9b1bd716965 100644 while [ "x$list" != "x" ] ; do linux=`version_find_latest $list` -- -2.15.0 +2.17.0 diff --git a/0194-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch b/0194-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch index 688d744e..c4bb1d59 100644 --- a/0194-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch +++ b/0194-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch @@ -1,7 +1,7 @@ From 87c089b6f1945ebcc690697d279c74284f1b4072 Mon Sep 17 00:00:00 2001 From: Konrad Rzeszutek Wilk Date: Mon, 28 Aug 2017 13:59:12 -0400 -Subject: [PATCH 194/236] Use grub-file to figure out whether multiboot2 should +Subject: [PATCH 194/238] Use grub-file to figure out whether multiboot2 should be used for Xen.gz The multiboot2 is much more preferable than multiboot. Especiall @@ -29,5 +29,5 @@ index 9b1bd716965..fae1ffe9494 100644 while [ "x$list" != "x" ] ; do linux=`version_find_latest $list` -- -2.15.0 +2.17.0 diff --git a/0195-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch b/0195-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch index cbc74394..3b7ecb8c 100644 --- a/0195-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch +++ b/0195-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch @@ -1,7 +1,7 @@ From 92d3db585076d022521ab94a2ceed03eb05013fc Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 19 Oct 2017 11:29:11 -0400 -Subject: [PATCH 195/236] 20_linux_xen: load xen or multiboot{,2} modules as +Subject: [PATCH 195/238] 20_linux_xen: load xen or multiboot{,2} modules as needed. Signed-off-by: Peter Jones @@ -31,5 +31,5 @@ index fae1ffe9494..fc53bd54231 100644 EOF fi -- -2.15.0 +2.17.0 diff --git a/0196-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch b/0196-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch index 2e13257e..598bce12 100644 --- a/0196-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch +++ b/0196-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch @@ -1,7 +1,7 @@ From 2e5b957292d3f313d48bded25e8ca83468326c5b Mon Sep 17 00:00:00 2001 From: "David E. Box" Date: Fri, 15 Sep 2017 15:37:05 -0700 -Subject: [PATCH 196/236] tsc: Change default tsc calibration method to pmtimer +Subject: [PATCH 196/238] tsc: Change default tsc calibration method to pmtimer on EFI systems On efi systems, make pmtimer based tsc calibration the default over the @@ -28,5 +28,5 @@ index 2e85289d848..f266eb13185 100644 (void) (grub_tsc_calibrate_from_pmtimer () || grub_tsc_calibrate_from_pit () || calibrate_tsc_hardcode()); #else -- -2.15.0 +2.17.0 diff --git a/0197-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch b/0197-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch index b9e56f26..975f52c3 100644 --- a/0197-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch +++ b/0197-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch @@ -1,7 +1,7 @@ From 0b158c30810db86f549cabd6e6021ab15962370d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 7 Nov 2017 17:12:17 -0500 -Subject: [PATCH 197/236] Make pmtimer tsc calibration not take 51 seconds to +Subject: [PATCH 197/238] Make pmtimer tsc calibration not take 51 seconds to fail. On my laptop running at 2.4GHz, if I run a VM where tsc calibration @@ -211,5 +211,5 @@ index c9c36169978..ca15c3aacd7 100644 if (tsc_diff == 0) return 0; -- -2.15.0 +2.17.0 diff --git a/0198-align-struct-efi_variable-better.patch b/0198-align-struct-efi_variable-better.patch index 11c8079a..3a48b40d 100644 --- a/0198-align-struct-efi_variable-better.patch +++ b/0198-align-struct-efi_variable-better.patch @@ -1,7 +1,7 @@ From 2485633ada06c11c07a34a696a92b14e58f1e846 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 27 Feb 2018 13:55:35 -0500 -Subject: [PATCH 198/236] align struct efi_variable better... +Subject: [PATCH 198/238] align struct efi_variable better... --- include/grub/efiemu/runtime.h | 2 +- @@ -32,5 +32,5 @@ index b93e4820194..f6a9723971d 100644 #ifdef GRUB_BUILD # define GRUB_CPU_SIZEOF_VOID_P BUILD_SIZEOF_VOID_P -- -2.15.0 +2.17.0 diff --git a/0199-Add-quicksort-implementation.patch b/0199-Add-quicksort-implementation.patch index 489b7628..b7f36650 100644 --- a/0199-Add-quicksort-implementation.patch +++ b/0199-Add-quicksort-implementation.patch @@ -1,7 +1,7 @@ From a2cd100d71711b950beaf60ea7ddca4c77a70d59 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 9 Dec 2016 15:39:47 -0500 -Subject: [PATCH 199/236] Add quicksort implementation +Subject: [PATCH 199/238] Add quicksort implementation This will be used to sort the boot menu entries that are read from the BootLoaderSpec config files. @@ -321,5 +321,5 @@ index 4737da1eaa9..3d55bafd64e 100644 + #endif /* ! GRUB_MISC_HEADER */ -- -2.15.0 +2.17.0 diff --git a/0200-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch b/0200-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch index 5dfff454..145f6216 100644 --- a/0200-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch +++ b/0200-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch @@ -1,7 +1,7 @@ From ed595feeea2f7b7fd0158d42fa2fd39420eea683 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 9 Dec 2016 15:40:58 -0500 -Subject: [PATCH 200/236] Add blscfg command support to parse BootLoaderSpec +Subject: [PATCH 200/238] Add blscfg command support to parse BootLoaderSpec config fragments The BootLoaderSpec (BLS) defines a scheme where different bootloaders can @@ -1138,5 +1138,5 @@ index c9e1d7a73dc..9859ff4cc79 100644 + #endif /* ! GRUB_COMPILER_HEADER */ -- -2.15.0 +2.17.0 diff --git a/0201-Add-BLS-support-to-grub-mkconfig.patch b/0201-Add-BLS-support-to-grub-mkconfig.patch index 9c90c927..b576a0d9 100644 --- a/0201-Add-BLS-support-to-grub-mkconfig.patch +++ b/0201-Add-BLS-support-to-grub-mkconfig.patch @@ -1,7 +1,7 @@ From d847a4806bb7a4f3b457d0074d712e500fbd5e97 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 9 Dec 2016 15:40:29 -0500 -Subject: [PATCH 201/236] Add BLS support to grub-mkconfig +Subject: [PATCH 201/238] Add BLS support to grub-mkconfig GRUB now has BootLoaderSpec support, the user can choose to use this by setting GRUB_ENABLE_BLSCFG to true in /etc/default/grub. On this setup, @@ -166,5 +166,5 @@ index 7e78ad33636..f5daefb9d24 100644 # "UUID=" and "ZFS=" magic is parsed by initrd or initramfs. Since there's # no initrd or builtin initramfs, it can't work here. -- -2.15.0 +2.17.0 diff --git a/0202-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch b/0202-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch index 055a161a..c94b0c59 100644 --- a/0202-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch +++ b/0202-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch @@ -1,7 +1,7 @@ From 2d7dabdbf322e8f679eeaefd48cb26b083cdeb1c Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 6 Feb 2018 11:02:09 +0100 -Subject: [PATCH 202/236] Remove duplicated grub_exit() definition for grub-emu +Subject: [PATCH 202/238] Remove duplicated grub_exit() definition for grub-emu platform The grub_exit() function signature was changed on all platforms to take a @@ -32,5 +32,5 @@ index 7e47ec81263..55ea5a11ccd 100644 grub_machine_init (void) { -- -2.15.0 +2.17.0 diff --git a/0203-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch b/0203-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch index 78ec45f7..652c8cf2 100644 --- a/0203-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch +++ b/0203-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch @@ -1,7 +1,7 @@ From f45946a92377c83ffcad8dbc3298fc26072567d9 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 6 Feb 2018 11:16:28 +0100 -Subject: [PATCH 203/236] Don't attempt to backtrace on grub_abort() for +Subject: [PATCH 203/238] Don't attempt to backtrace on grub_abort() for grub-emu The emu platform doesn't have a grub_backtrace() implementation, so this @@ -26,5 +26,5 @@ index 04371ac49f2..636f97e1ba1 100644 #endif #endif -- -2.15.0 +2.17.0 diff --git a/0204-Enable-blscfg-command-for-the-emu-platform.patch b/0204-Enable-blscfg-command-for-the-emu-platform.patch index f30ac74f..89e2f460 100644 --- a/0204-Enable-blscfg-command-for-the-emu-platform.patch +++ b/0204-Enable-blscfg-command-for-the-emu-platform.patch @@ -1,7 +1,7 @@ From 39bb86c661911f06ff40caa842a9babf18f27c8b Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Fri, 2 Feb 2018 11:36:29 +0100 -Subject: [PATCH 204/236] Enable blscfg command for the emu platform +Subject: [PATCH 204/238] Enable blscfg command for the emu platform Allow grub-emu to call a blscfg command. This may be useful for platforms that don't support GRUB, so grub-emu can be used to parse the BLS configs @@ -163,5 +163,5 @@ index 9ab45631465..e5617c3bc6c 100644 grub_unregister_extcmd (cmd); } -- -2.15.0 +2.17.0 diff --git a/0205-Add-linux-and-initrd-commands-for-grub-emu.patch b/0205-Add-linux-and-initrd-commands-for-grub-emu.patch index f8bf8283..a75d782c 100644 --- a/0205-Add-linux-and-initrd-commands-for-grub-emu.patch +++ b/0205-Add-linux-and-initrd-commands-for-grub-emu.patch @@ -1,7 +1,7 @@ From 49c719a6f6e223b95733e18720a48993ab6e5317 Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Tue, 6 Feb 2018 09:09:00 +0100 -Subject: [PATCH 205/236] Add linux and initrd commands for grub-emu +Subject: [PATCH 205/238] Add linux and initrd commands for grub-emu When using grub-emu, the linux and initrd commands are used as arguments to the kexec command line tool, to allow booting the selected menu entry. @@ -350,5 +350,5 @@ index f7b4d29b0b3..75e8715e631 100644 KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/sdl.h endif -- -2.15.0 +2.17.0 diff --git a/0206-Fix-the-efidir-in-grub-setpassword.patch b/0206-Fix-the-efidir-in-grub-setpassword.patch index e8f2844a..fcf7d24a 100644 --- a/0206-Fix-the-efidir-in-grub-setpassword.patch +++ b/0206-Fix-the-efidir-in-grub-setpassword.patch @@ -1,7 +1,7 @@ From c7c6cb4380f5bd85a2cbe747433657fdce89a802 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 15 Mar 2018 14:12:54 -0400 -Subject: [PATCH 206/236] Fix the efidir in grub-setpassword +Subject: [PATCH 206/238] Fix the efidir in grub-setpassword Signed-off-by: Peter Jones --- @@ -23,5 +23,5 @@ index d7924af5192..cf70257eed6 100644 grubdir=`echo "/@bootdirname@/@grubdirname@" | sed 's,//*,/,g'` fi -- -2.15.0 +2.17.0 diff --git a/0207-Add-grub2-switch-to-blscfg.patch b/0207-Add-grub2-switch-to-blscfg.patch index 986266ca..fe7ac604 100644 --- a/0207-Add-grub2-switch-to-blscfg.patch +++ b/0207-Add-grub2-switch-to-blscfg.patch @@ -1,7 +1,7 @@ From 89b3a570de8b5e7ad19769983a87f6e10024f0ec Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 15 Mar 2018 14:12:40 -0400 -Subject: [PATCH 207/236] Add grub2-switch-to-blscfg +Subject: [PATCH 207/238] Add grub2-switch-to-blscfg Signed-off-by: Peter Jones --- @@ -344,5 +344,5 @@ index 00000000000..3ae5e4ea8d0 +# Bye. +exit 0 -- -2.15.0 +2.17.0 diff --git a/0208-Add-grub_debug_enabled.patch b/0208-Add-grub_debug_enabled.patch index 5bf31cac..9c832f7f 100644 --- a/0208-Add-grub_debug_enabled.patch +++ b/0208-Add-grub_debug_enabled.patch @@ -1,7 +1,7 @@ From 6776773c89828c9b69c1552760ba6a4d9cd5589f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 30 Nov 2017 15:11:39 -0500 -Subject: [PATCH 208/236] Add grub_debug_enabled() +Subject: [PATCH 208/238] Add grub_debug_enabled() --- grub-core/kern/misc.c | 21 ++++++++++++++++----- @@ -59,5 +59,5 @@ index 3d55bafd64e..493e328d968 100644 const int line, const char *condition, -- -2.15.0 +2.17.0 diff --git a/0209-make-better-backtraces.patch b/0209-make-better-backtraces.patch index bcee805e..8788ceec 100644 --- a/0209-make-better-backtraces.patch +++ b/0209-make-better-backtraces.patch @@ -1,7 +1,7 @@ From 318ee04aadcda40b779b2a5314dd23ead165f896 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 6 Nov 2017 18:31:56 -0500 -Subject: [PATCH 209/236] make better backtraces +Subject: [PATCH 209/238] make better backtraces Signed-off-by: Peter Jones --- @@ -883,5 +883,5 @@ index 75e8715e631..5c7a2c8f808 100644 KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/command.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/device.h -- -2.15.0 +2.17.0 diff --git a/0210-normal-don-t-draw-our-startup-message-if-debug-is-se.patch b/0210-normal-don-t-draw-our-startup-message-if-debug-is-se.patch index 0417ea34..2dacff73 100644 --- a/0210-normal-don-t-draw-our-startup-message-if-debug-is-se.patch +++ b/0210-normal-don-t-draw-our-startup-message-if-debug-is-se.patch @@ -1,7 +1,7 @@ From 81d0e079ea5aa6f43daf12f7a8698d0bcd1a36f8 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 9 Nov 2017 15:58:52 -0500 -Subject: [PATCH 210/236] normal: don't draw our startup message if debug is +Subject: [PATCH 210/238] normal: don't draw our startup message if debug is set --- @@ -23,5 +23,5 @@ index b69f9e738fa..04ae9ed02f6 100644 "the first word, TAB lists possible command completions. Anywhere " "else TAB lists possible device or file completions. %s"), -- -2.15.0 +2.17.0 diff --git a/0211-Work-around-some-minor-include-path-weirdnesses.patch b/0211-Work-around-some-minor-include-path-weirdnesses.patch index 6d924ed9..41ee9c56 100644 --- a/0211-Work-around-some-minor-include-path-weirdnesses.patch +++ b/0211-Work-around-some-minor-include-path-weirdnesses.patch @@ -1,7 +1,7 @@ From e2bba0f7ee8e56c68e425853a21a8fdd766add70 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 16 Mar 2018 13:28:57 -0400 -Subject: [PATCH 211/236] Work around some minor include path weirdnesses +Subject: [PATCH 211/238] Work around some minor include path weirdnesses Signed-off-by: Peter Jones --- @@ -136,5 +136,5 @@ index 00000000000..dba9d8678d0 + +#endif /* ! GRUB_X86_64_EFI_CONSOLE_H */ -- -2.15.0 +2.17.0 diff --git a/0212-Make-it-possible-to-enabled-build-id-sha1.patch b/0212-Make-it-possible-to-enabled-build-id-sha1.patch index 0bf19e6d..92cb9d15 100644 --- a/0212-Make-it-possible-to-enabled-build-id-sha1.patch +++ b/0212-Make-it-possible-to-enabled-build-id-sha1.patch @@ -1,7 +1,7 @@ From 8521929bcf671b465d6450b969d11617b6aec608 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 25 Jun 2015 15:41:06 -0400 -Subject: [PATCH 212/236] Make it possible to enabled --build-id=sha1 +Subject: [PATCH 212/238] Make it possible to enabled --build-id=sha1 Signed-off-by: Peter Jones --- @@ -60,5 +60,5 @@ index 78cdf6e1d01..242e829ff23 100644 AC_DEFUN([grub_PROG_NM_WORKS], [AC_MSG_CHECKING([whether nm works]) -- -2.15.0 +2.17.0 diff --git a/0213-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch b/0213-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch index 15bae4fb..f8dcce43 100644 --- a/0213-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch +++ b/0213-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch @@ -1,7 +1,7 @@ From 8c4b2eaa204f0ea0377ca4592d2be6029fdb9be7 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Sun, 28 Jun 2015 13:09:58 -0400 -Subject: [PATCH 213/236] Add grub_qdprintf() - grub_dprintf() without the +Subject: [PATCH 213/238] Add grub_qdprintf() - grub_dprintf() without the file+line number. This just makes copy+paste of our debug loading info easier. @@ -55,5 +55,5 @@ index 493e328d968..4607e8defa9 100644 int EXPORT_FUNC(grub_snprintf) (char *str, grub_size_t n, const char *fmt, ...) __attribute__ ((format (GNU_PRINTF, 3, 4))); -- -2.15.0 +2.17.0 diff --git a/0214-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch b/0214-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch index afe9ac54..9da9f5c0 100644 --- a/0214-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch +++ b/0214-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch @@ -1,7 +1,7 @@ From 030095a01a205aba04a0849ac0c0329ac429a9ed Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 25 Jun 2015 15:11:36 -0400 -Subject: [PATCH 214/236] Make a "gdb" dprintf that tells us load addresses. +Subject: [PATCH 214/238] Make a "gdb" dprintf that tells us load addresses. This makes a grub_dprintf() call during platform init and during module loading that tells us the virtual addresses of the .text and .data @@ -177,5 +177,5 @@ index 68326d96f5a..6702b312040 100644 void grub_efi_mm_init (void); void grub_efi_mm_fini (void); -- -2.15.0 +2.17.0 diff --git a/0215-Only-attempt-to-scan-different-BLS-directories-on-EF.patch b/0215-Only-attempt-to-scan-different-BLS-directories-on-EF.patch index 750a45e4..33f39717 100644 --- a/0215-Only-attempt-to-scan-different-BLS-directories-on-EF.patch +++ b/0215-Only-attempt-to-scan-different-BLS-directories-on-EF.patch @@ -1,7 +1,7 @@ From 5f0417c63a4dd2252a5a801568f4369ac74a47e6 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 3 Apr 2018 15:42:47 +0200 -Subject: [PATCH 215/236] Only attempt to scan different BLS directories on EFI +Subject: [PATCH 215/238] Only attempt to scan different BLS directories on EFI machines Current BLS support attempted to scan for BLS directories, but this only @@ -45,5 +45,5 @@ index e5617c3bc6c..c0973ff83ea 100644 finish: -- -2.15.0 +2.17.0 diff --git a/0216-Core-TPM-support.patch b/0216-Core-TPM-support.patch index b5ce6102..a369dbe0 100644 --- a/0216-Core-TPM-support.patch +++ b/0216-Core-TPM-support.patch @@ -1,7 +1,7 @@ From 65be94a64a5608209561ba0914d29445d81bf4b2 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 14 Jul 2015 17:06:35 -0700 -Subject: [PATCH 216/236] Core TPM support +Subject: [PATCH 216/238] Core TPM support Add support for performing basic TPM measurements. Right now this only supports extending PCRs statically and only on UEFI and BIOS systems, but @@ -785,5 +785,5 @@ index 5c7a2c8f808..84b076962d8 100644 if COND_i386_pc -- -2.15.0 +2.17.0 diff --git a/0217-Measure-kernel-initrd.patch b/0217-Measure-kernel-initrd.patch index 0ca29cc6..fab77dc8 100644 --- a/0217-Measure-kernel-initrd.patch +++ b/0217-Measure-kernel-initrd.patch @@ -1,7 +1,7 @@ From ffd305d09def6610ef96f928c0df8303c5529d63 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Thu, 16 Jul 2015 15:22:34 -0700 -Subject: [PATCH 217/236] Measure kernel + initrd +Subject: [PATCH 217/238] Measure kernel + initrd Measure the kernel and initrd when loaded on UEFI systems --- @@ -38,5 +38,5 @@ index 6db5d0bf3a0..48febdc8100 100644 if (rc < 0) { -- -2.15.0 +2.17.0 diff --git a/0218-Add-BIOS-boot-measurement.patch b/0218-Add-BIOS-boot-measurement.patch index 2830ed4d..2dcc4610 100644 --- a/0218-Add-BIOS-boot-measurement.patch +++ b/0218-Add-BIOS-boot-measurement.patch @@ -1,7 +1,7 @@ From d8870587d46f8aa8d4f8db2cdcddecc829993447 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 15:48:51 -0700 -Subject: [PATCH 218/236] Add BIOS boot measurement +Subject: [PATCH 218/238] Add BIOS boot measurement Measure the on-disk grub core on BIOS systems - unlike UEFI, the firmware can't do this stage for us. @@ -175,5 +175,5 @@ index c8b87ed293c..05dd7fa701c 100644 * message: write the string pointed to by %si * -- -2.15.0 +2.17.0 diff --git a/0219-Measure-kernel-and-initrd-on-BIOS-systems.patch b/0219-Measure-kernel-and-initrd-on-BIOS-systems.patch index bb65cabb..3b809df6 100644 --- a/0219-Measure-kernel-and-initrd-on-BIOS-systems.patch +++ b/0219-Measure-kernel-and-initrd-on-BIOS-systems.patch @@ -1,7 +1,7 @@ From 5aee2444093cfc8006865766f89e5a775a940ab1 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 16:28:29 -0700 -Subject: [PATCH 219/236] Measure kernel and initrd on BIOS systems +Subject: [PATCH 219/238] Measure kernel and initrd on BIOS systems Measure the kernel and initrd when loaded on BIOS systems --- @@ -83,5 +83,5 @@ index be6fa0f4d45..3005c0d19c9 100644 } if (newc) -- -2.15.0 +2.17.0 diff --git a/0220-Measure-the-kernel-commandline.patch b/0220-Measure-the-kernel-commandline.patch index 29b988ca..af7d6eef 100644 --- a/0220-Measure-the-kernel-commandline.patch +++ b/0220-Measure-the-kernel-commandline.patch @@ -1,7 +1,7 @@ From c1694574d6eb287e6e181dd018fe54b718a613b3 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 16:32:29 -0700 -Subject: [PATCH 220/236] Measure the kernel commandline +Subject: [PATCH 220/238] Measure the kernel commandline Measure the kernel commandline to ensure that it hasn't been modified --- @@ -39,5 +39,5 @@ index 970ea868c14..6b56304d4a7 100644 return i; } -- -2.15.0 +2.17.0 diff --git a/0221-Measure-commands.patch b/0221-Measure-commands.patch index ccd86332..89c0b367 100644 --- a/0221-Measure-commands.patch +++ b/0221-Measure-commands.patch @@ -1,7 +1,7 @@ From c93a27f2e6a323a4985e6fe902eb5c6447fca572 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Mon, 10 Aug 2015 15:27:12 -0700 -Subject: [PATCH 221/236] Measure commands +Subject: [PATCH 221/238] Measure commands Measure each command executed by grub, which includes script execution. --- @@ -72,5 +72,5 @@ index 40d3cf65ba6..7fc9d77d277 100644 #define TPM_TAG_RQU_COMMAND 0x00C1 #define TPM_ORD_Extend 0x14 -- -2.15.0 +2.17.0 diff --git a/0222-Measure-multiboot-images-and-modules.patch b/0222-Measure-multiboot-images-and-modules.patch index f1043c88..37ffe678 100644 --- a/0222-Measure-multiboot-images-and-modules.patch +++ b/0222-Measure-multiboot-images-and-modules.patch @@ -1,7 +1,7 @@ From b164ec560cd6373c0c5d8a189d70baeca2c3ef13 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 1 Sep 2015 16:02:55 -0700 -Subject: [PATCH 222/236] Measure multiboot images and modules +Subject: [PATCH 222/238] Measure multiboot images and modules --- grub-core/loader/i386/multiboot_mbi.c | 3 +++ @@ -74,5 +74,5 @@ index b0679a9f6c9..a7b4a57ec4f 100644 { grub_free (mld.buffer); -- -2.15.0 +2.17.0 diff --git a/0223-Fix-boot-when-there-s-no-TPM.patch b/0223-Fix-boot-when-there-s-no-TPM.patch index 224c6705..30e0176c 100644 --- a/0223-Fix-boot-when-there-s-no-TPM.patch +++ b/0223-Fix-boot-when-there-s-no-TPM.patch @@ -1,7 +1,7 @@ From 33fb6113d65a819496d0b67b8db071fedad845a7 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Wed, 23 Mar 2016 16:49:42 -0700 -Subject: [PATCH 223/236] Fix boot when there's no TPM +Subject: [PATCH 223/238] Fix boot when there's no TPM If the firmware has TPM support but has no TPM, we're jumping to core.img without popping the registers back onto the stack. Fix that. @@ -28,5 +28,5 @@ index c1df86dec0b..acab37369ae 100644 jmp *(LOCAL(kernel_address)) -- -2.15.0 +2.17.0 diff --git a/0224-Rework-TPM-measurements.patch b/0224-Rework-TPM-measurements.patch index 73b259fd..9871e81c 100644 --- a/0224-Rework-TPM-measurements.patch +++ b/0224-Rework-TPM-measurements.patch @@ -1,7 +1,7 @@ From 415072bbda8b4de133c6dc6add230e41ee6d9579 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Wed, 23 Mar 2016 17:03:43 -0700 -Subject: [PATCH 224/236] Rework TPM measurements +Subject: [PATCH 224/238] Rework TPM measurements Rework TPM measurements to use fewer PCRs. After discussion with upstream, it's preferable to avoid using so many PCRs. Instead, measure into PCRs 8 @@ -215,5 +215,5 @@ index 7fc9d77d277..ecb2d09ff5d 100644 #if defined (GRUB_MACHINE_EFI) || defined (GRUB_MACHINE_PCBIOS) grub_err_t grub_tpm_execute(PassThroughToTPM_InputParamBlock *inbuf, -- -2.15.0 +2.17.0 diff --git a/0225-Fix-event-log-prefix.patch b/0225-Fix-event-log-prefix.patch index a9526012..e3e35c53 100644 --- a/0225-Fix-event-log-prefix.patch +++ b/0225-Fix-event-log-prefix.patch @@ -1,7 +1,7 @@ From 0816621235226952a5bd0cfd027eb97ff84df547 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 29 Mar 2016 15:36:49 -0700 -Subject: [PATCH 225/236] Fix event log prefix +Subject: [PATCH 225/238] Fix event log prefix We're not passing the prefixed version of the description to the event log. Fix that. @@ -25,5 +25,5 @@ index cb5a812035d..e5e8fced624 100644 return ret; } -- -2.15.0 +2.17.0 diff --git a/0226-Set-the-first-boot-menu-entry-as-default-when-using-.patch b/0226-Set-the-first-boot-menu-entry-as-default-when-using-.patch index 71213f2a..c76ba910 100644 --- a/0226-Set-the-first-boot-menu-entry-as-default-when-using-.patch +++ b/0226-Set-the-first-boot-menu-entry-as-default-when-using-.patch @@ -1,7 +1,7 @@ From 8278e40fdc4a4db0865fc632cbe2dcf7c124ba7a Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Fri, 6 Apr 2018 14:08:36 +0200 -Subject: [PATCH 226/236] Set the first boot menu entry as default when using +Subject: [PATCH 226/238] Set the first boot menu entry as default when using BLS fragments When BootLoaderSpec configuration files are used, the default boot menu @@ -26,5 +26,5 @@ index f5daefb9d24..b24bb410dc0 100644 exit 0 -- -2.15.0 +2.17.0 diff --git a/0227-tpm-fix-warnings-when-compiling-for-platforms-other-.patch b/0227-tpm-fix-warnings-when-compiling-for-platforms-other-.patch index fce8217c..bfbd1b86 100644 --- a/0227-tpm-fix-warnings-when-compiling-for-platforms-other-.patch +++ b/0227-tpm-fix-warnings-when-compiling-for-platforms-other-.patch @@ -1,7 +1,7 @@ From 4c53f61b1a889c0f55e76a763b05b6686ec613b8 Mon Sep 17 00:00:00 2001 From: Michael Marineau Date: Sun, 21 Aug 2016 18:24:58 -0700 -Subject: [PATCH 227/236] tpm: fix warnings when compiling for platforms other +Subject: [PATCH 227/238] tpm: fix warnings when compiling for platforms other than pc and efi --- @@ -37,5 +37,5 @@ index ecb2d09ff5d..972a5edc836 100644 return 0; }; -- -2.15.0 +2.17.0 diff --git a/0228-Make-TPM-errors-less-fatal.patch b/0228-Make-TPM-errors-less-fatal.patch index 265bab47..c27d64b1 100644 --- a/0228-Make-TPM-errors-less-fatal.patch +++ b/0228-Make-TPM-errors-less-fatal.patch @@ -1,7 +1,7 @@ From 406f7dda0cc2689170f102341a546c87072d1ce5 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Thu, 13 Oct 2016 13:55:26 -0700 -Subject: [PATCH 228/236] Make TPM errors less fatal +Subject: [PATCH 228/238] Make TPM errors less fatal Handle TPM errors, and stop trying to use the TPM once we hit one. --- @@ -207,5 +207,5 @@ index 976643c47b0..93965777138 100644 invert = 0; argc = argv.argc - 1; -- -2.15.0 +2.17.0 diff --git a/0229-blscfg-handle-multiple-initramfs-images.patch b/0229-blscfg-handle-multiple-initramfs-images.patch index de4ba286..2140ec7e 100644 --- a/0229-blscfg-handle-multiple-initramfs-images.patch +++ b/0229-blscfg-handle-multiple-initramfs-images.patch @@ -1,7 +1,7 @@ From a230ec5c31d818c2f046acf3592a5492d3e2ea69 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 11 Apr 2018 13:44:29 -0400 -Subject: [PATCH 229/236] blscfg: handle multiple initramfs images. +Subject: [PATCH 229/238] blscfg: handle multiple initramfs images. Signed-off-by: Peter Jones --- @@ -103,5 +103,5 @@ index c0973ff83ea..1e5972422d6 100644 struct find_entry_info { -- -2.15.0 +2.17.0 diff --git a/0230-BLS-Fix-grub2-switch-to-blscfg-on-non-EFI-machines.patch b/0230-BLS-Fix-grub2-switch-to-blscfg-on-non-EFI-machines.patch index 69235ae8..454eed20 100644 --- a/0230-BLS-Fix-grub2-switch-to-blscfg-on-non-EFI-machines.patch +++ b/0230-BLS-Fix-grub2-switch-to-blscfg-on-non-EFI-machines.patch @@ -1,7 +1,7 @@ From f006df881d1b2b3ca7320ecfcd33181295ec1018 Mon Sep 17 00:00:00 2001 From: Jan Hlavac Date: Tue, 10 Apr 2018 16:07:36 +0200 -Subject: [PATCH 230/236] BLS: Fix grub2-switch-to-blscfg on non-EFI machines +Subject: [PATCH 230/238] BLS: Fix grub2-switch-to-blscfg on non-EFI machines On the non-EFI machines the grub2-switch-to-blscfg script places the BLS snippets into the /boot directory. But the right location is @@ -24,5 +24,5 @@ index 3ae5e4ea8d0..f740b8f4d03 100644 backupsuffix=.bak -- -2.15.0 +2.17.0 diff --git a/0231-BLS-Use-etcdefaultgrub-instead-of-etc.patch b/0231-BLS-Use-etcdefaultgrub-instead-of-etc.patch index 9235c8e6..df995c26 100644 --- a/0231-BLS-Use-etcdefaultgrub-instead-of-etc.patch +++ b/0231-BLS-Use-etcdefaultgrub-instead-of-etc.patch @@ -1,7 +1,7 @@ From 29b79fde633a43223ead7874ffd373603f129832 Mon Sep 17 00:00:00 2001 From: Jan Hlavac Date: Tue, 10 Apr 2018 16:56:28 +0200 -Subject: [PATCH 231/236] BLS: Use ${etcdefaultgrub} instead of /etc/... +Subject: [PATCH 231/238] BLS: Use ${etcdefaultgrub} instead of /etc/... Inside the grub-switch-to-blscfg script the ${etcdefaultgrub} variable is used. So replace the hardcoded /etc/default/grub with it. @@ -23,5 +23,5 @@ index f740b8f4d03..eae3c379e4a 100644 exit 1 fi -- -2.15.0 +2.17.0 diff --git a/0232-Add-missing-options-to-grub2-switch-to-blscfg-man-pa.patch b/0232-Add-missing-options-to-grub2-switch-to-blscfg-man-pa.patch index e5302a76..59a9a1f7 100644 --- a/0232-Add-missing-options-to-grub2-switch-to-blscfg-man-pa.patch +++ b/0232-Add-missing-options-to-grub2-switch-to-blscfg-man-pa.patch @@ -1,7 +1,7 @@ From c3a05672a450fd9e95de5df2b0c27c24fe04cd83 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Wed, 11 Apr 2018 11:36:43 +0200 -Subject: [PATCH 232/236] Add missing options to grub2-switch-to-blscfg man +Subject: [PATCH 232/238] Add missing options to grub2-switch-to-blscfg man page The script --bls-directory and --backup-suffix options were not documented @@ -31,5 +31,5 @@ index 134dfc62a7b..7d99de2d2f9 100644 .SH SEE ALSO .BR "info grub" -- -2.15.0 +2.17.0 diff --git a/0233-Make-grub2-switch-to-blscfg-to-generate-debug-BLS-wh.patch b/0233-Make-grub2-switch-to-blscfg-to-generate-debug-BLS-wh.patch index 44a01368..c45082aa 100644 --- a/0233-Make-grub2-switch-to-blscfg-to-generate-debug-BLS-wh.patch +++ b/0233-Make-grub2-switch-to-blscfg-to-generate-debug-BLS-wh.patch @@ -1,7 +1,7 @@ From 55b00d518e029a563653401c6908489924c07238 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Wed, 11 Apr 2018 11:49:24 +0200 -Subject: [PATCH 233/236] Make grub2-switch-to-blscfg to generate debug BLS +Subject: [PATCH 233/238] Make grub2-switch-to-blscfg to generate debug BLS when MAKEDEBUG is set If MAKEDEBUG=yes in /etc/sysconfig/kernel, then a debug menu entry should @@ -57,5 +57,5 @@ index eae3c379e4a..c59299ffa6a 100644 GENERATE=0 -- -2.15.0 +2.17.0 diff --git a/0234-Make-grub2-switch-to-blscfg-to-generate-BLS-fragment.patch b/0234-Make-grub2-switch-to-blscfg-to-generate-BLS-fragment.patch index 7f451e9c..37665bb4 100644 --- a/0234-Make-grub2-switch-to-blscfg-to-generate-BLS-fragment.patch +++ b/0234-Make-grub2-switch-to-blscfg-to-generate-BLS-fragment.patch @@ -1,7 +1,7 @@ From 60bddbc714c96ca05821d52bdd7dbad7eabd6dd5 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Wed, 11 Apr 2018 12:39:59 +0200 -Subject: [PATCH 234/236] Make grub2-switch-to-blscfg to generate BLS fragment +Subject: [PATCH 234/238] Make grub2-switch-to-blscfg to generate BLS fragment for rescue kernel If a rescue image is available, it should have a BootLoaderSpec fragment. @@ -27,5 +27,5 @@ index c59299ffa6a..bc28053cd30 100644 if grep '^GRUB_ENABLE_BLSCFG=.*' "${etcdefaultgrub}" \ | grep -vq '^GRUB_ENABLE_BLSCFG="*true"*\s*$' ; then -- -2.15.0 +2.17.0 diff --git a/0235-Only-attempt-to-query-dev-mounted-in-boot-efi-as-boo.patch b/0235-Only-attempt-to-query-dev-mounted-in-boot-efi-as-boo.patch index 31c21795..84023347 100644 --- a/0235-Only-attempt-to-query-dev-mounted-in-boot-efi-as-boo.patch +++ b/0235-Only-attempt-to-query-dev-mounted-in-boot-efi-as-boo.patch @@ -1,7 +1,7 @@ From 8afe59812e83e78564697ef8241ed4f1b3527423 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 24 Apr 2018 02:16:38 +0200 -Subject: [PATCH 235/236] Only attempt to query dev mounted in /boot/efi as +Subject: [PATCH 235/238] Only attempt to query dev mounted in /boot/efi as boot dev on EFI machines The 10_linux script calls grub2-probe to probe the information for the dev @@ -39,5 +39,5 @@ index b24bb410dc0..c2ffc77398f 100644 cat << EOF insmod blscfg -- -2.15.0 +2.17.0 diff --git a/0236-Include-OSTree-path-when-searching-kernels-images-if.patch b/0236-Include-OSTree-path-when-searching-kernels-images-if.patch index cc0035e5..39642cd6 100644 --- a/0236-Include-OSTree-path-when-searching-kernels-images-if.patch +++ b/0236-Include-OSTree-path-when-searching-kernels-images-if.patch @@ -1,7 +1,7 @@ From 459eaeacbb40116dcb501cf165c7816e70c66fb3 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 24 Apr 2018 02:28:04 +0200 -Subject: [PATCH 236/236] Include OSTree path when searching kernels images if +Subject: [PATCH 236/238] Include OSTree path when searching kernels images if BLS config is enabled The OSTree based distros (i.e: Fedora Atomic) don't install kernel images @@ -37,5 +37,5 @@ index c2ffc77398f..15ba8eff8a6 100644 i?86) GENKERNEL_ARCH="x86" ;; mips|mips64) GENKERNEL_ARCH="mips" ;; -- -2.15.0 +2.17.0 diff --git a/0237-Use-BLS-version-field-to-compare-entries-if-id-field.patch b/0237-Use-BLS-version-field-to-compare-entries-if-id-field.patch new file mode 100644 index 00000000..d7fba4d0 --- /dev/null +++ b/0237-Use-BLS-version-field-to-compare-entries-if-id-field.patch @@ -0,0 +1,32 @@ +From 689a48c76bee8049a50f962852f43f108c815450 Mon Sep 17 00:00:00 2001 +From: Javier Martinez Canillas +Date: Fri, 27 Apr 2018 17:53:41 +0200 +Subject: [PATCH 237/238] Use BLS version field to compare entries if id field + isn't defined + +The BootLoaderSpec fragments generated by OSTree don't have the id field, +so grub2 will attempt to sort the entries by using the title field which +may not be correct. The entries do have a version field though so use it. + +Signed-off-by: Javier Martinez Canillas +--- + grub-core/commands/blscfg.c | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c +index 1e5972422d6..72ee497ea2d 100644 +--- a/grub-core/commands/blscfg.c ++++ b/grub-core/commands/blscfg.c +@@ -418,6 +418,9 @@ static int bls_cmp(const void *p0, const void *p1, void *state UNUSED) + + rc = bls_keyval_cmp (e0, e1, "id"); + ++ if (rc == 0) ++ rc = bls_keyval_cmp (e0, e1, "version"); ++ + if (rc == 0) + rc = bls_keyval_cmp (e0, e1, "title"); + +-- +2.17.0 + diff --git a/0238-Add-version-field-to-BLS-generated-by-grub2-switch-t.patch b/0238-Add-version-field-to-BLS-generated-by-grub2-switch-t.patch new file mode 100644 index 00000000..37069a4a --- /dev/null +++ b/0238-Add-version-field-to-BLS-generated-by-grub2-switch-t.patch @@ -0,0 +1,45 @@ +From 0994be8d655420685d900a08443b4fd53f639e72 Mon Sep 17 00:00:00 2001 +From: Javier Martinez Canillas +Date: Thu, 10 May 2018 10:52:11 +0200 +Subject: [PATCH 238/238] Add version field to BLS generated by + grub2-switch-to-blscfg + +The version field is present in the BLS fragments that are shipped in the +kernel packages, so add it to the BLS generated by grub2-switch-to-blscfg +for consistency. + +Signed-off-by: Javier Martinez Canillas +--- + util/grub-switch-to-blscfg.in | 3 +++ + 1 file changed, 3 insertions(+) + +diff --git a/util/grub-switch-to-blscfg.in b/util/grub-switch-to-blscfg.in +index bc28053cd30..89487ad611c 100644 +--- a/util/grub-switch-to-blscfg.in ++++ b/util/grub-switch-to-blscfg.in +@@ -190,12 +190,14 @@ mkbls() { + local datetime=$1 && shift + + local debugname="" ++ local debugid="" + local flavor="" + + if [[ "$kernelver" == *\+* ]] ; then + local flavor=-"${kernelver##*+}" + if [[ "${flavor}" == "-debug" ]]; then + local debugname=" with debugging" ++ local debugid="-debug" + fi + fi + ( +@@ -203,6 +205,7 @@ mkbls() { + + cat < - 2.02-36 +- Use version field to sort BLS entries if id field isn't defined +- Add version field to BLS fragments generated by 20-grub.install + * Tue Apr 24 2018 Peter Jones - 2.02-35 - A couple of fixes needed by Fedora Atomic - javierm From 97a85089d67003fc564ae463f865ab27cf86a93e Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Fri, 11 May 2018 16:33:02 +0200 Subject: [PATCH 20/45] Make do-rebase generate proper patches regardless of git config The do-rebase script generate patches with git-format-patch, but the pkg expects some non-default git configurations for the diffs and stats. So instead requiring developers to setup these config options, pass them to git-format-patch in do-rebase to generate the proper patches. Signed-off-by: Javier Martinez Canillas --- do-rebase | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/do-rebase b/do-rebase index e911f5b8..032d7f9d 100755 --- a/do-rebase +++ b/do-rebase @@ -6,7 +6,9 @@ shopt -qs expand_aliases export LC_COLLATE=C export LC_ALL=C +format_patch_ops="--stat=80 --summary -O.git.diff.order --patience -l0" alias othergit="GIT_DIR=$PWD/.rhboot.git GIT_WORK_TREE=$PWD git" +alias formatpatch="othergit format-patch $format_patch_ops" usage() { @@ -119,7 +121,7 @@ unset LC_ALL git rm -q 0*.patch > grub.patches -patches=$(othergit format-patch grub-2.02..refs/remotes/rhboot/${releasever}) +patches=$(formatpatch grub-2.02..refs/remotes/rhboot/${releasever}) for x in $patches ; do echo Patch$(echo ${x} | cut -d- -f1): ${x} >> grub.patches done From 070bb462db01482a2bf6b42e7b8553a6d4f54f2c Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Mon, 14 May 2018 17:43:50 +0200 Subject: [PATCH 21/45] Add .git.diff.order file Commit 97a85089d67 ("Make do-rebase generate proper patches regardless of git config") changed do-rebase to generate patches as expected by the pkg but unfortunately it missed the file to control the order in which files appear in the output. Signed-off-by: Javier Martinez Canillas --- .git.diff.order | 15 +++++++++++++++ 1 file changed, 15 insertions(+) create mode 100644 .git.diff.order diff --git a/.git.diff.order b/.git.diff.order new file mode 100644 index 00000000..fca2682e --- /dev/null +++ b/.git.diff.order @@ -0,0 +1,15 @@ +*.dec +*.dsc.inc +*.dsc +*.fdf +*.inf +*.vfr +*.ac +*.def +*.c +*.h +*.S +*.mk +Makefile.* +Make.* +Makefile From 44d0f31d1fbadd534c66e531da42532381bd47ca Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Mon, 14 May 2018 17:43:51 +0200 Subject: [PATCH 22/45] Set default in parameter expasion to avoid do-rebase exit due an unset var The script has set -u so calling do-rebase --help fails with the following: $ ./do-rebase --help ./do-rebase: line 16: $1: unbound variable Avoid this by setting a default value when doing the parameter expansion for the positional parameter $1 passed to the usage() function. Signed-off-by: Javier Martinez Canillas --- do-rebase | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/do-rebase b/do-rebase index 032d7f9d..ec68118d 100755 --- a/do-rebase +++ b/do-rebase @@ -13,7 +13,7 @@ alias formatpatch="othergit format-patch $format_patch_ops" usage() { retcode=0 - if [ -n "$1" ]; then + if [ -n "${1:-}" ]; then exec 1>&2 retcode=$1 fi From 10cf1ae6a42336122f614d31b24eebbd5884ca98 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Mon, 14 May 2018 17:43:52 +0200 Subject: [PATCH 23/45] Allow do-rebase to pull the patches from different repositories Currently the script always pull the patches from rhboot Github repo, but for testing and developing purposes may be useful to use a different one. Signed-off-by: Javier Martinez Canillas --- do-rebase | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/do-rebase b/do-rebase index ec68118d..7fdae456 100755 --- a/do-rebase +++ b/do-rebase @@ -17,7 +17,7 @@ usage() exec 1>&2 retcode=$1 fi - echo usage: do-rebase \$releasever + echo usage: do-rebase \$releasever \$gitrepo exit $retcode } @@ -26,6 +26,7 @@ if ! git status | grep -q 'nothing to commit, working .* clean' ; then exit 1 fi +gitrepo="git@github.com:rhboot/grub2.git" releasever="" amend="" @@ -43,6 +44,13 @@ while [ $# -gt 0 ]; do shift releasever=$1 ;; + --repo=*) + gitrepo=${1##--repo=} + ;; + --repo) + shift + gitrepo=$1 + ;; --amend) amend="--amend" ;; @@ -88,6 +96,11 @@ if [ -z "$releasever" ]; then usage 1 fi +if [ -n "${1:-}" ]; then + gitrepo=$1 + shift +fi + if [ $# -ge 1 ]; then echo "Unknown argument \"$1\"" 1>&2 usage 1 @@ -96,14 +109,14 @@ fi if [ ! -d $PWD/.rhboot.git ]; then othergit init if ! othergit remote add \ - rhboot git@github.com:rhboot/grub2.git \ + rhboot $gitrepo \ >/dev/null 2>&1 ; then echo "Could not add remote: rhboot" 1>&2 exit 1 fi elif othergit remote show -n rhboot | grep -q "URL: github$" ; then if ! othergit remote add \ - rhboot git@github.com:rhboot/grub2.git \ + rhboot $gitrepo \ >/dev/null 2>&1 ; then echo "Could not add remote: rhboot" 1>&2 exit 1 From db7cf3a089075af0f4a8b955af508aea3893465a Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Mon, 4 Jun 2018 18:28:07 +0200 Subject: [PATCH 24/45] More fixes for BLS Add some fixes for BLS parsing logic and also make 20-grub.install script to query the relative path of the kernel and initramfs images, so BLS can also work when /boot is not a mount point or is a btrfs subvolume. Also pull some build fixes. Resolves: rhbz#1588184 Signed-off-by: Javier Martinez Canillas --- 0001-Bump-version-to-2.03.patch | 4 +- 0002-Remove-bashisms-from-tests.patch | 4 +- 0003-fs-tester-make-sh-compatible.patch | 4 +- 0004-support-busybox-date.patch | 4 +- ...retrieve-fstime-when-it-s-not-useful.patch | 4 +- 0006-Support-lseek64.patch | 4 +- 0007-Use-SHELL-rather-than-bin-sh.patch | 4 +- 0008-po-Use-SHELL-rather-than-bin-sh.patch | 4 +- 0009-Add-termux-path-to-dict.patch | 4 +- 0010-Fix-shebang-for-termux.patch | 4 +- 0011-Add-strtoull-test.patch | 4 +- ...x-behaviour-on-chars-between-9-and-a.patch | 4 +- 0013-Add-Virtual-LAN-support.patch | 4 +- ...out-to-mkimage_generate_elfXX-rather.patch | 4 +- ...r-arm-uboot-code-to-make-it-genereic.patch | 4 +- ...-parts-that-are-platform-independent.patch | 4 +- ...-Rename-uboot-halt.c-to-dummy-halt.c.patch | 4 +- ...ame-uboot-datetime-to-dummy-datetime.patch | 4 +- 0019-arm-coreboot-Start-new-port.patch | 4 +- ...upport-for-device-tree-based-drivers.patch | 4 +- ...-coreboot-Support-for-vexpress-timer.patch | 4 +- 0022-arm-coreboot-Export-FDT-routines.patch | 4 +- ...-Split-protocol-from-controller-code.patch | 4 +- ...reboot-Support-keyboard-for-vexpress.patch | 4 +- ...m_coreboot-Support-grub-mkstandalone.patch | 4 +- ...oreboot-Support-loading-linux-images.patch | 4 +- 0027-arm_coreboot-Support-DMA.patch | 4 +- 0028-ehci-Split-core-code-from-PCI-part.patch | 4 +- 0029-arm_coreboot-Support-EHCI.patch | 4 +- ...n-FDT-nodes-with-compatible-property.patch | 4 +- ...ty-to-send-receive-messages-on-paren.patch | 4 +- 0032-rk3288_spi-Add-SPI-driver.patch | 4 +- ...eboot-Add-Chromebook-keyboard-driver.patch | 4 +- 0034-Missing-parts-of-previous-commit.patch | 4 +- ...-cbmemc-to-support-updated-console-f.patch | 4 +- ...t_keyboard-Fix-falco-chromebook-case.patch | 4 +- 0037-sparc64-Close-cdboot-ihandle.patch | 4 +- ...-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch | 4 +- ...p-option-support-in-xen_module-comma.patch | 4 +- ...inux_xen.in-Add-xen_boot-command-sup.patch | 4 +- ...-introduction-of-Xen-boot-commands-i.patch | 4 +- ...se-devspec-to-determine-the-OBP-path.patch | 4 +- ...unt-ext2-3-4-filesystems-that-have-t.patch | 4 +- 0044-ehci-Fix-compilation-for-amd64.patch | 4 +- ...-compilation-for-ppc-sparc-and-arm64.patch | 4 +- 0046-ehci-Fix-compilation-on-i386.patch | 4 +- 0047-crypto-Fix-use-after-free.patch | 4 +- 0048-arm-efi-Fix-compilation.patch | 4 +- 0049-fdt-silence-clang-warning.patch | 4 +- 0050-Fix-a-segfault-in-lsefi.patch | 4 +- ...t-typedef-and-use-grub_size_t-instea.patch | 4 +- ...x-reading-label-lvd.ident-is-dstring.patch | 4 +- ...b-core-fs-udf.c-Add-support-for-UUID.patch | 4 +- ...orriso-presence-before-doing-anythin.patch | 4 +- 0055-Fail-if-xorriso-failed.patch | 4 +- ...efi-refactor-grub_efi_allocate_pages.patch | 4 +- 0057-Remove-grub_efi_allocate_pages.patch | 4 +- 0058-efi-move-fdt-helper-library.patch | 4 +- 0059-efi-Add-GRUB_PE32_MAGIC-definition.patch | 4 +- ...inux-loader-improve-type-portability.patch | 4 +- ...allocation-type-to-GRUB_EFI_LOADER_C.patch | 4 +- ...RM_-definitions-when-handling-term-c.patch | 4 +- ...B_GZ-prefix-to-gzio-specific-defines.patch | 4 +- 0064-re-write-.gitignore.patch | 4 +- ...ient-architecture-CAS-reboot-support.patch | 4 +- ...nsole-display-attr-when-clear-screen.patch | 4 +- ...video-support-for-IBM-power-machines.patch | 4 +- ...when-generating-configuration-by-gru.patch | 4 +- 0069-Move-bash-completion-script-922997.patch | 4 +- 0070-Update-to-minilzo-2.08.patch | 4 +- ...o-include-entries-by-title-not-just-.patch | 4 +- 0072-Add-GRUB_DISABLE_UUID.patch | 4 +- 0073-Make-exit-take-a-return-code.patch | 4 +- ...pot-as-binary-so-git-won-t-try-to-di.patch | 4 +- ...es-load-an-env-block-from-a-variable.patch | 4 +- ...HCP-client-ID-and-UUID-options-added.patch | 4 +- ...-trim-arp-packets-with-abnormal-size.patch | 4 +- ...Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch | 4 +- ...UEFI-operating-systems-returned-by-o.patch | 4 +- 0080-Migrate-PPC-from-Yaboot-to-Grub2.patch | 4 +- 0081-Add-fw_path-variable-revised.patch | 4 +- 0082-Add-support-for-linuxefi.patch | 4 +- ...xefi-and-initrdefi-where-appropriate.patch | 4 +- ...w-insmod-when-secure-boot-is-enabled.patch | 4 +- ...-hex-hex-straight-through-unmolested.patch | 4 +- 0086-Add-X-option-to-printf-functions.patch | 4 +- ...for-specific-config-file-for-netboot.patch | 4 +- ...g-module-to-parse-Boot-Loader-Specif.patch | 4 +- 0089-Don-t-write-messages-to-the-screen.patch | 4 +- 0090-Don-t-print-GNU-GRUB-header.patch | 4 +- 0091-Don-t-add-to-highlighted-row.patch | 4 +- 0092-Message-string-cleanups.patch | 4 +- ...ing-now-that-we-aren-t-displaying-it.patch | 4 +- ...t-indentation-for-the-term-help-text.patch | 4 +- 0095-Indent-menu-entries.patch | 4 +- 0096-Fix-margins.patch | 4 +- ...-1-for-our-right-hand-margin-so-line.patch | 4 +- ...-Use-linux16-when-appropriate-880840.patch | 4 +- 0099-Enable-pager-by-default.-985860.patch | 4 +- ...-on-serial-so-don-t-tell-the-user-to.patch | 4 +- ...n-t-say-GNU-Linux-in-generated-menus.patch | 4 +- ...-Don-t-draw-a-border-around-the-menu.patch | 4 +- ...andard-margin-for-the-timeout-string.patch | 4 +- ...rame-to-list-of-relocations-stripped.patch | 4 +- ...rk-with-our-changes-for-linux16-and-.patch | 4 +- ...on-t-print-during-fdt-loading-method.patch | 4 +- ...spaces-when-we-re-doing-our-cmdline-.patch | 4 +- ...password-to-boot-entries-generated-b.patch | 4 +- 0109-Don-t-emit-Booting-.-message.patch | 4 +- ...f-man-pages-with-slightly-nicer-ones.patch | 4 +- ...ix-when-fallback-searching-for-grub-.patch | 4 +- ...-before-grub.cfg-on-tftp-config-file.patch | 4 +- ...ert-function-to-support-NVMe-devices.patch | 4 +- ...M-Mustang-device-tree-for-hardware-t.patch | 4 +- ...device-tree-from-the-grub-default-fi.patch | 4 +- ...P-protocol-for-exclusive-use-by-grub.patch | 4 +- ...P-protocol-for-exclusive-use-by-grub.patch | 4 +- 0118-Add-grub_util_readlink.patch | 4 +- ...se-symlinks-including-those-across-d.patch | 4 +- ...CLASS-in-10_linux-from-etc-os-releas.patch | 4 +- ...t-ordering-for-.debug-and-rescue-ker.patch | 4 +- 0122-Load-arm-with-SB-enabled.patch | 4 +- 0123-Try-prefix-if-fw_path-doesn-t-work.patch | 4 +- ...-grub.cfg-netboot-selection-order-11.patch | 4 +- ...-Package-Sort-for-grub2-mkconfig-112.patch | 4 +- 0126-Handle-rssd-storage-devices.patch | 4 +- ...x16-initrd16-and-linuxefi-initrdefi-.patch | 4 +- ...fig-construct-titles-that-look-like-.patch | 4 +- ...ly-grub2-password-config-tool-985962.patch | 4 +- ...fig-construct-titles-that-look-like-.patch | 4 +- ...-configure.ac-and-grub-rpm-sort-play.patch | 4 +- 0132-tcp-add-window-scaling-support.patch | 4 +- ...net-retransmit-if-our-device-is-busy.patch | 4 +- ...out-actually-using-the-configured-ne.patch | 4 +- ...r-for-the-first-exclusive-reopen-of-.patch | 4 +- ...ue-when-reading-username-and-passwor.patch | 4 +- ...ub-password-will-not-be-read-1290803.patch | 4 +- ...ub-setpassword-documentation-1290799.patch | 4 +- ...le-issue-in-grub-setpassword-1294243.patch | 4 +- ...rsistent-RAM-and-unknown-possible-fu.patch | 4 +- 0141-efiemu-Fix-compilation-failure.patch | 4 +- ...P-protocol-for-exclusive-use-by-grub.patch | 4 +- 0143-Add-a-url-parser.patch | 4 +- ...net-and-bootp-add-support-for-dhcpv6.patch | 4 +- ...rnel-settings-and-use-it-in-10_linux.patch | 4 +- 0146-Normalize-slashes-in-tftp-paths.patch | 4 +- 0147-Fix-malformed-tftp-packets.patch | 4 +- 0148-Fix-race-in-EFI-validation.patch | 4 +- ...1374141-fix-incorrect-mask-for-ppc64.patch | 4 +- ...art-of-chainloader-target-if-present.patch | 4 +- ...ecureboot-support-on-efi-chainloader.patch | 4 +- ...loaders-that-link-in-efi-mode-honor-.patch | 4 +- 0153-Make-grub_fatal-also-backtrace.patch | 4 +- 0154-Rework-linux-command.patch | 4 +- 0155-Rework-linux16-command.patch | 4 +- 0156-Make-grub-editenv-build-again.patch | 4 +- ...ix-up-some-man-pages-rpmdiff-noticed.patch | 4 +- ...-work-some-intricacies-of-PE-loading.patch | 4 +- ...-of-efi-chainload-so-non-sb-cases-wo.patch | 4 +- ...-double-free-on-verification-failure.patch | 4 +- ...machine-type-test-in-30_os-prober.in.patch | 4 +- ...fix-wrong-sanity-check-in-relocate_c.patch | 4 +- ...truncate-overlong-relocation-section.patch | 4 +- 0164-linuxefi-minor-cleanups.patch | 4 +- ...rch-64-on-32-boot-in-linuxefi-loader.patch | 4 +- 0166-Fix-up-linux-params-usage.patch | 4 +- 0167-Make-exit-take-a-return-code.patch | 4 +- ...fdt-has-address-cells-and-size-cells.patch | 4 +- ...rintf-in-the-secure-boot-verify-code.patch | 4 +- ...fo-pages-say-grub2-where-appropriate.patch | 4 +- ...more-debug-info-in-our-module-loader.patch | 4 +- ...-chainloader-entries-don-t-try-any-x.patch | 4 +- ...-Add-ability-to-boot-from-subvolumes.patch | 4 +- ...port-btrfs_subvol-and-btrfs_subvolid.patch | 4 +- 0175-grub2-btrfs-03-follow_default.patch | 4 +- 0176-grub2-btrfs-04-grub2-install.patch | 4 +- 0177-grub2-btrfs-05-grub2-mkconfig.patch | 4 +- 0178-grub2-btrfs-06-subvol-mount.patch | 4 +- ...ootable-Snapshot-submenu-in-grub.cfg.patch | 4 +- ...subvol-name-scheme-to-support-old-sn.patch | 4 +- ...-correctly-with-btrfs-snapshots-bsc-.patch | 4 +- ...ocate_pool-and-grub_efi_free_pool-wr.patch | 4 +- ...fi_.-memory-helpers-where-reasonable.patch | 4 +- 0184-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch | 4 +- ...c-sized-arrays-since-we-don-t-build-.patch | 4 +- 0186-don-t-ignore-const.patch | 4 +- 0187-don-t-use-int-for-efi-status.patch | 4 +- ...INIT-declare-its-function-prototypes.patch | 4 +- ...p-some-errors-in-the-linuxefi-loader.patch | 4 +- 0190-editenv-handle-relative-symlinks.patch | 4 +- ...e-libgrub.pp-depend-on-config-util.h.patch | 4 +- ...-efi-as-HFS-on-ppc-machines-in-grub-.patch | 4 +- ...20_linux_xen.in-Add-xen_boot-command.patch | 4 +- ...-figure-out-whether-multiboot2-shoul.patch | 4 +- ...d-xen-or-multiboot-2-modules-as-need.patch | 4 +- ...lt-tsc-calibration-method-to-pmtimer.patch | 4 +- ...-calibration-not-take-51-seconds-to-.patch | 4 +- 0198-align-struct-efi_variable-better.patch | 4 +- 0199-Add-quicksort-implementation.patch | 4 +- ...nd-support-to-parse-BootLoaderSpec-c.patch | 4 +- 0201-Add-BLS-support-to-grub-mkconfig.patch | 4 +- ...d-grub_exit-definition-for-grub-emu-.patch | 4 +- ...-backtrace-on-grub_abort-for-grub-em.patch | 4 +- ...-blscfg-command-for-the-emu-platform.patch | 4 +- ...nux-and-initrd-commands-for-grub-emu.patch | 4 +- 0206-Fix-the-efidir-in-grub-setpassword.patch | 4 +- 0207-Add-grub2-switch-to-blscfg.patch | 4 +- 0208-Add-grub_debug_enabled.patch | 4 +- 0209-make-better-backtraces.patch | 4 +- ...w-our-startup-message-if-debug-is-se.patch | 4 +- ...-some-minor-include-path-weirdnesses.patch | 4 +- ...it-possible-to-enabled-build-id-sha1.patch | 4 +- ...f-grub_dprintf-without-the-file-line.patch | 4 +- ...dprintf-that-tells-us-load-addresses.patch | 4 +- ...scan-different-BLS-directories-on-EF.patch | 4 +- 0216-Core-TPM-support.patch | 4 +- 0217-Measure-kernel-initrd.patch | 4 +- 0218-Add-BIOS-boot-measurement.patch | 4 +- ...re-kernel-and-initrd-on-BIOS-systems.patch | 4 +- 0220-Measure-the-kernel-commandline.patch | 4 +- 0221-Measure-commands.patch | 4 +- ...Measure-multiboot-images-and-modules.patch | 4 +- 0223-Fix-boot-when-there-s-no-TPM.patch | 4 +- 0224-Rework-TPM-measurements.patch | 4 +- 0225-Fix-event-log-prefix.patch | 4 +- ...ot-menu-entry-as-default-when-using-.patch | 4 +- ...-when-compiling-for-platforms-other-.patch | 4 +- 0228-Make-TPM-errors-less-fatal.patch | 4 +- ...cfg-handle-multiple-initramfs-images.patch | 4 +- ...switch-to-blscfg-on-non-EFI-machines.patch | 4 +- ...LS-Use-etcdefaultgrub-instead-of-etc.patch | 4 +- ...ons-to-grub2-switch-to-blscfg-man-pa.patch | 4 +- ...h-to-blscfg-to-generate-debug-BLS-wh.patch | 4 +- ...h-to-blscfg-to-generate-BLS-fragment.patch | 4 +- ...query-dev-mounted-in-boot-efi-as-boo.patch | 4 +- ...ath-when-searching-kernels-images-if.patch | 4 +- ...field-to-compare-entries-if-id-field.patch | 4 +- ...d-to-BLS-generated-by-grub2-switch-t.patch | 4 +- 0239-Fixup-for-newer-compiler.patch | 53 ++++++ ...-export-the-start-and-_start-symbols.patch | 45 +++++ ...plify-BLS-entry-key-val-pairs-lookup.patch | 173 ++++++++++++++++++ ...h-to-the-kernel-and-initrds-BLS-fiel.patch | 76 ++++++++ ...p-leading-spaces-on-BLS-field-values.patch | 59 ++++++ 20-grub.install | 10 + grub.patches | 5 + grub2.spec | 6 +- 246 files changed, 902 insertions(+), 477 deletions(-) create mode 100644 0239-Fixup-for-newer-compiler.patch create mode 100644 0240-Don-t-attempt-to-export-the-start-and-_start-symbols.patch create mode 100644 0241-Simplify-BLS-entry-key-val-pairs-lookup.patch create mode 100644 0242-Add-relative-path-to-the-kernel-and-initrds-BLS-fiel.patch create mode 100644 0243-Skip-leading-spaces-on-BLS-field-values.patch diff --git a/0001-Bump-version-to-2.03.patch b/0001-Bump-version-to-2.03.patch index 4b4d7a30..68065440 100644 --- a/0001-Bump-version-to-2.03.patch +++ b/0001-Bump-version-to-2.03.patch @@ -1,7 +1,7 @@ From b0bad6fd9449d3333fe1ab58953c0e6c1ce12c0d Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Wed, 3 May 2017 11:55:52 +0200 -Subject: [PATCH 001/238] Bump version to 2.03 +Subject: [PATCH 001/243] Bump version to 2.03 --- configure.ac | 2 +- @@ -226,5 +226,5 @@ index 68d8ce7c775..921e57ff48d 100644 { "videotest", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0x7033079c, 0x7033079c, 0x7033079c, 0x7033079c, 0x7033079c, }, 5 }, { "videotest", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xff583fbf, 0xff583fbf, 0xff583fbf, 0xff583fbf, 0xff583fbf, }, 5 }, -- -2.17.0 +2.17.1 diff --git a/0002-Remove-bashisms-from-tests.patch b/0002-Remove-bashisms-from-tests.patch index b9dbafd8..0e0da7a5 100644 --- a/0002-Remove-bashisms-from-tests.patch +++ b/0002-Remove-bashisms-from-tests.patch @@ -1,7 +1,7 @@ From 5a0c548ba388b343b0bb6d2a38888e7eac5bbb96 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 03:47:13 +0300 -Subject: [PATCH 002/238] Remove bashisms from tests. +Subject: [PATCH 002/243] Remove bashisms from tests. Those tests don't actually need bash. Just use common shebang. --- @@ -129,5 +129,5 @@ index d5ef7f9ea62..80ebdc59fd5 100644 # create a randome file file="`mktemp "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"`" || exit 1 -- -2.17.0 +2.17.1 diff --git a/0003-fs-tester-make-sh-compatible.patch b/0003-fs-tester-make-sh-compatible.patch index a3474d89..37fafc9f 100644 --- a/0003-fs-tester-make-sh-compatible.patch +++ b/0003-fs-tester-make-sh-compatible.patch @@ -1,7 +1,7 @@ From 37865c2c4ad26cd5e947b08abf1fde8145699919 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 14:35:59 +0300 -Subject: [PATCH 003/238] fs-tester: make sh-compatible +Subject: [PATCH 003/243] fs-tester: make sh-compatible --- tests/util/grub-fs-tester.in | 306 ++++++++++++++++++++++++------------------- @@ -742,5 +742,5 @@ index 2337771a1b9..4515d165e6e 100644 if [ x"$fs" = x"zfs" ]; then rmdir "$MNTPOINTRW"/"grub fs" || true -- -2.17.0 +2.17.1 diff --git a/0004-support-busybox-date.patch b/0004-support-busybox-date.patch index 570bed52..e95da3ef 100644 --- a/0004-support-busybox-date.patch +++ b/0004-support-busybox-date.patch @@ -1,7 +1,7 @@ From b43b8cacc813c2c15347de1e35cc88d9aa912d22 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 14:31:36 +0300 -Subject: [PATCH 004/238] support busybox date. +Subject: [PATCH 004/243] support busybox date. Busybox date doesn't understand weekdays in -d input, so strip them beforehand. @@ -39,5 +39,5 @@ index 05b8f6b73fa..ac51d42098e 100644 # Ignore QEMU bug if [ "${grub_modinfo_target_cpu}" = arm ] && [ $((dt2 - dt1)) -ge 15 ] && [ $((dt2 - dt1)) -le 17 ]; then -- -2.17.0 +2.17.1 diff --git a/0005-Don-t-retrieve-fstime-when-it-s-not-useful.patch b/0005-Don-t-retrieve-fstime-when-it-s-not-useful.patch index 20ad6a86..33550bc5 100644 --- a/0005-Don-t-retrieve-fstime-when-it-s-not-useful.patch +++ b/0005-Don-t-retrieve-fstime-when-it-s-not-useful.patch @@ -1,7 +1,7 @@ From 6dec3a26b37e128ded5d912e08abc5cee1592499 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 21:24:05 +0300 -Subject: [PATCH 005/238] Don't retrieve fstime when it's not useful. +Subject: [PATCH 005/243] Don't retrieve fstime when it's not useful. --- tests/util/grub-fs-tester.in | 48 ++++++++++++++++++++++---------------------- @@ -68,5 +68,5 @@ index 4515d165e6e..bf47305f3e8 100644 if [ x$NOHARDLINK != xy ]; then -- -2.17.0 +2.17.1 diff --git a/0006-Support-lseek64.patch b/0006-Support-lseek64.patch index 4a8c8432..99ee6aa8 100644 --- a/0006-Support-lseek64.patch +++ b/0006-Support-lseek64.patch @@ -1,7 +1,7 @@ From 608bec51128008afb81c9e3f297283e9f830a146 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 20:21:05 +0300 -Subject: [PATCH 006/238] Support lseek64. +Subject: [PATCH 006/243] Support lseek64. Android doesn't have 64-bit off_t, so use off64_t instead. --- @@ -50,5 +50,5 @@ index 2a8c5882e3d..5450cf4166e 100644 } -- -2.17.0 +2.17.1 diff --git a/0007-Use-SHELL-rather-than-bin-sh.patch b/0007-Use-SHELL-rather-than-bin-sh.patch index 2b9c58d3..e9125814 100644 --- a/0007-Use-SHELL-rather-than-bin-sh.patch +++ b/0007-Use-SHELL-rather-than-bin-sh.patch @@ -1,7 +1,7 @@ From c2ea443446b7feea868e54f94a87781f69820375 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 00:55:30 +0300 -Subject: [PATCH 007/238] Use $(SHELL) rather than /bin/sh. +Subject: [PATCH 007/243] Use $(SHELL) rather than /bin/sh. /bin/sh doesn't exist under termux. --- @@ -22,5 +22,5 @@ index 04e9395fd94..809a8aa26bf 100644 CLEANFILES += symlist.c BUILT_SOURCES += symlist.c -- -2.17.0 +2.17.1 diff --git a/0008-po-Use-SHELL-rather-than-bin-sh.patch b/0008-po-Use-SHELL-rather-than-bin-sh.patch index 424b2211..14a4f193 100644 --- a/0008-po-Use-SHELL-rather-than-bin-sh.patch +++ b/0008-po-Use-SHELL-rather-than-bin-sh.patch @@ -1,7 +1,7 @@ From 4341f82af0b61d3dfbe675670d4105dc759c0df3 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 14:54:03 +0300 -Subject: [PATCH 008/238] po: Use @SHELL@ rather than /bin/sh. +Subject: [PATCH 008/243] po: Use @SHELL@ rather than /bin/sh. /bin/sh might not exist. --- @@ -22,5 +22,5 @@ index 3619458e85f..e68e9da843d 100644 srcdir = @srcdir@ -- -2.17.0 +2.17.1 diff --git a/0009-Add-termux-path-to-dict.patch b/0009-Add-termux-path-to-dict.patch index 42fcb8da..7f6a8f58 100644 --- a/0009-Add-termux-path-to-dict.patch +++ b/0009-Add-termux-path-to-dict.patch @@ -1,7 +1,7 @@ From 1073ddb12078f3c8edbdb74bb8f5afc674983f40 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 14:52:48 +0300 -Subject: [PATCH 009/238] Add termux path to dict. +Subject: [PATCH 009/243] Add termux path to dict. --- tests/util/grub-fs-tester.in | 2 +- @@ -21,5 +21,5 @@ index bf47305f3e8..468d9e7856d 100644 CFILESRC="$cand" break -- -2.17.0 +2.17.1 diff --git a/0010-Fix-shebang-for-termux.patch b/0010-Fix-shebang-for-termux.patch index ffb31c6d..28a6dafd 100644 --- a/0010-Fix-shebang-for-termux.patch +++ b/0010-Fix-shebang-for-termux.patch @@ -1,7 +1,7 @@ From a827807a1330d5ad619faa103bc7f12d89fc8bee Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Sun, 22 Jan 2017 20:22:34 +0300 -Subject: [PATCH 010/238] Fix shebang for termux. +Subject: [PATCH 010/243] Fix shebang for termux. Termux doesn't have a /bin/sh. So we needto use $SHELL. Keep /bin/sh as much as possible. @@ -680,5 +680,5 @@ index 047120e47a0..eee62c10d70 100644 set -e -- -2.17.0 +2.17.1 diff --git a/0011-Add-strtoull-test.patch b/0011-Add-strtoull-test.patch index ec673765..8676ae75 100644 --- a/0011-Add-strtoull-test.patch +++ b/0011-Add-strtoull-test.patch @@ -1,7 +1,7 @@ From ede6c9689395499f98a4c14d76b97151b4de5f54 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Wed, 3 May 2017 12:58:15 +0200 -Subject: [PATCH 011/238] Add strtoull test. +Subject: [PATCH 011/243] Add strtoull test. --- grub-core/Makefile.core.def | 5 +++++ @@ -24,5 +24,5 @@ index 2dfa22a9271..8dcd0e5a998 100644 name = setjmp_test; common = tests/setjmp_test.c; -- -2.17.0 +2.17.1 diff --git a/0012-strtoull-Fix-behaviour-on-chars-between-9-and-a.patch b/0012-strtoull-Fix-behaviour-on-chars-between-9-and-a.patch index 93111318..a3b1822b 100644 --- a/0012-strtoull-Fix-behaviour-on-chars-between-9-and-a.patch +++ b/0012-strtoull-Fix-behaviour-on-chars-between-9-and-a.patch @@ -1,7 +1,7 @@ From dc6e1b5af83eb1c4290baf97c2d221c0865127be Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Wed, 10 Aug 2016 17:49:42 +0200 -Subject: [PATCH 012/238] strtoull: Fix behaviour on chars between '9' and 'a'. +Subject: [PATCH 012/243] strtoull: Fix behaviour on chars between '9' and 'a'. Reported by: Aaron Miller --- @@ -64,5 +64,5 @@ index d4822a12456..96781fb39b5 100644 ok = ok && !grub_test_run (test); grub_errno = 0; -- -2.17.0 +2.17.1 diff --git a/0013-Add-Virtual-LAN-support.patch b/0013-Add-Virtual-LAN-support.patch index 56a66148..de9650ec 100644 --- a/0013-Add-Virtual-LAN-support.patch +++ b/0013-Add-Virtual-LAN-support.patch @@ -1,7 +1,7 @@ From d9f7de0ae3c0c09cff7257c55418450261f3e082 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Mon, 23 Dec 2013 12:32:02 -0200 -Subject: [PATCH 013/238] Add Virtual LAN support. +Subject: [PATCH 013/243] Add Virtual LAN support. This patch adds support for virtual LAN (VLAN) tagging. VLAN tagging allows multiple VLANs in a bridged network to share the same physical network link @@ -345,5 +345,5 @@ index dcceaa56894..ab9d68f9825 100644 grub_err_t grub_net_send_ip_packet (struct grub_net_network_level_interface *inf, -- -2.17.0 +2.17.1 diff --git a/0014-mkimage-Pass-layout-to-mkimage_generate_elfXX-rather.patch b/0014-mkimage-Pass-layout-to-mkimage_generate_elfXX-rather.patch index f6fac8f5..0c716ba4 100644 --- a/0014-mkimage-Pass-layout-to-mkimage_generate_elfXX-rather.patch +++ b/0014-mkimage-Pass-layout-to-mkimage_generate_elfXX-rather.patch @@ -1,7 +1,7 @@ From a35ac854308b0af7c86c2c7b199f6abdfa2110b0 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 17:32:15 +0200 -Subject: [PATCH 014/238] mkimage: Pass layout to mkimage_generate_elfXX rather +Subject: [PATCH 014/243] mkimage: Pass layout to mkimage_generate_elfXX rather than some fields. This allows easier extension of this function without having too long of @@ -164,5 +164,5 @@ index 1a18708a89c..b3a5ca132bc 100644 struct grub_install_image_target_desc { -- -2.17.0 +2.17.1 diff --git a/0015-Refactor-arm-uboot-code-to-make-it-genereic.patch b/0015-Refactor-arm-uboot-code-to-make-it-genereic.patch index 5340b532..0fa03b3e 100644 --- a/0015-Refactor-arm-uboot-code-to-make-it-genereic.patch +++ b/0015-Refactor-arm-uboot-code-to-make-it-genereic.patch @@ -1,7 +1,7 @@ From d08c9685149e7788001ac9a209baa1d84c3628e0 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 17:47:57 +0200 -Subject: [PATCH 015/238] Refactor arm-uboot code to make it genereic. +Subject: [PATCH 015/243] Refactor arm-uboot code to make it genereic. arm-coreboot startup code can be very similar to arm-uboot but current code has U-Boot specific references. So split U-Boot part from generic part. @@ -401,5 +401,5 @@ index 00000000000..d128775f19e + + END -- -2.17.0 +2.17.1 diff --git a/0016-coreboot-Split-parts-that-are-platform-independent.patch b/0016-coreboot-Split-parts-that-are-platform-independent.patch index c2103a95..1f406a8f 100644 --- a/0016-coreboot-Split-parts-that-are-platform-independent.patch +++ b/0016-coreboot-Split-parts-that-are-platform-independent.patch @@ -1,7 +1,7 @@ From 461bfab7b7e47fd0a76bf6076a438af1b7e2184a Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 19:06:22 +0200 -Subject: [PATCH 016/238] coreboot: Split parts that are platform-independent. +Subject: [PATCH 016/243] coreboot: Split parts that are platform-independent. We currently assume that coreboot is always i386, it's no longer the case, so split i386-coreboot parts from generic coreboot code. @@ -340,5 +340,5 @@ index 809a8aa26bf..781d0ffbf75 100644 KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/video_fb.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/gfxterm.h -- -2.17.0 +2.17.1 diff --git a/0017-Rename-uboot-halt.c-to-dummy-halt.c.patch b/0017-Rename-uboot-halt.c-to-dummy-halt.c.patch index caefe760..44e59fc3 100644 --- a/0017-Rename-uboot-halt.c-to-dummy-halt.c.patch +++ b/0017-Rename-uboot-halt.c-to-dummy-halt.c.patch @@ -1,7 +1,7 @@ From 1daa716c7017f1858de117a20a31da66815435c5 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 19:31:55 +0200 -Subject: [PATCH 017/238] Rename uboot/halt.c to dummy/halt.c. +Subject: [PATCH 017/243] Rename uboot/halt.c to dummy/halt.c. It's not U-Boot specific and it's a stub. --- @@ -28,5 +28,5 @@ similarity index 100% rename from grub-core/lib/uboot/halt.c rename to grub-core/lib/dummy/halt.c -- -2.17.0 +2.17.1 diff --git a/0018-Rename-uboot-datetime-to-dummy-datetime.patch b/0018-Rename-uboot-datetime-to-dummy-datetime.patch index 58aece1b..61d8a89f 100644 --- a/0018-Rename-uboot-datetime-to-dummy-datetime.patch +++ b/0018-Rename-uboot-datetime-to-dummy-datetime.patch @@ -1,7 +1,7 @@ From 9808c3ef956c6472a96790b60cf74f4eaa742010 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 19:37:29 +0200 -Subject: [PATCH 018/238] Rename uboot/datetime to dummy/datetime. +Subject: [PATCH 018/243] Rename uboot/datetime to dummy/datetime. It's just a stub and is not UBoot-specific. --- @@ -54,5 +54,5 @@ index 4be716928a5..cf693fc6b62 100644 + "can\'t set datetime on this machine"); } -- -2.17.0 +2.17.1 diff --git a/0019-arm-coreboot-Start-new-port.patch b/0019-arm-coreboot-Start-new-port.patch index 41228e2b..1f6d4811 100644 --- a/0019-arm-coreboot-Start-new-port.patch +++ b/0019-arm-coreboot-Start-new-port.patch @@ -1,7 +1,7 @@ From 24e37a885269bdec9b27babf1da0bba3692d55c0 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 20:53:28 +0200 -Subject: [PATCH 019/238] arm-coreboot: Start new port. +Subject: [PATCH 019/243] arm-coreboot: Start new port. --- configure.ac | 2 + @@ -823,5 +823,5 @@ index 781d0ffbf75..bec0585549a 100644 KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/arm/efi/loader.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/efi.h -- -2.17.0 +2.17.1 diff --git a/0020-Add-support-for-device-tree-based-drivers.patch b/0020-Add-support-for-device-tree-based-drivers.patch index ddacbc77..f99b92c3 100644 --- a/0020-Add-support-for-device-tree-based-drivers.patch +++ b/0020-Add-support-for-device-tree-based-drivers.patch @@ -1,7 +1,7 @@ From fcbb723d4b1f7ad4687191562621dd0eb25f4d9e Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:19:59 +0200 -Subject: [PATCH 020/238] Add support for device-tree-based drivers. +Subject: [PATCH 020/243] Add support for device-tree-based drivers. --- grub-core/Makefile.core.def | 2 + @@ -852,5 +852,5 @@ index bec0585549a..fc6ca305147 100644 (for pp in $^; do \ b=`basename $$pp .marker`; \ -- -2.17.0 +2.17.1 diff --git a/0021-arm-coreboot-Support-for-vexpress-timer.patch b/0021-arm-coreboot-Support-for-vexpress-timer.patch index 0a18670e..378c1341 100644 --- a/0021-arm-coreboot-Support-for-vexpress-timer.patch +++ b/0021-arm-coreboot-Support-for-vexpress-timer.patch @@ -1,7 +1,7 @@ From 5a865b37866ee8cd64c080bc6fb1e537f8e2b3c6 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:26:36 +0200 -Subject: [PATCH 021/238] arm-coreboot: Support for vexpress timer. +Subject: [PATCH 021/243] arm-coreboot: Support for vexpress timer. --- grub-core/kern/arm/coreboot/timer.c | 36 ++++++++++++++++++++++++++++++++++++ @@ -69,5 +69,5 @@ index ebefb99d58f..d97b844f848 100644 try_generic_timer (); if (!have_timer) -- -2.17.0 +2.17.1 diff --git a/0022-arm-coreboot-Export-FDT-routines.patch b/0022-arm-coreboot-Export-FDT-routines.patch index 59413d4f..87f2d2da 100644 --- a/0022-arm-coreboot-Export-FDT-routines.patch +++ b/0022-arm-coreboot-Export-FDT-routines.patch @@ -1,7 +1,7 @@ From ac6b41b89fbb82a3ba843a7ed19115d81432b604 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:29:48 +0200 -Subject: [PATCH 022/238] arm-coreboot: Export FDT routines. +Subject: [PATCH 022/243] arm-coreboot: Export FDT routines. We need to use them from modules as well. --- @@ -23,5 +23,5 @@ index fc6ca305147..147e6959c97 100644 if COND_arm_efi -- -2.17.0 +2.17.1 diff --git a/0023-at_keyboard-Split-protocol-from-controller-code.patch b/0023-at_keyboard-Split-protocol-from-controller-code.patch index 6c6e9b50..23121cf6 100644 --- a/0023-at_keyboard-Split-protocol-from-controller-code.patch +++ b/0023-at_keyboard-Split-protocol-from-controller-code.patch @@ -1,7 +1,7 @@ From 216950a4eea1a1ead1c28eaca94e34ea2ef2ad19 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:41:22 +0200 -Subject: [PATCH 023/238] at_keyboard: Split protocol from controller code. +Subject: [PATCH 023/243] at_keyboard: Split protocol from controller code. On vexpress controller is different but protocol is the same, so reuse the code. @@ -1024,5 +1024,5 @@ index 00000000000..4f2e527e497 + +#endif -- -2.17.0 +2.17.1 diff --git a/0024-arm_coreboot-Support-keyboard-for-vexpress.patch b/0024-arm_coreboot-Support-keyboard-for-vexpress.patch index 8fdc7ee7..a193b32b 100644 --- a/0024-arm_coreboot-Support-keyboard-for-vexpress.patch +++ b/0024-arm_coreboot-Support-keyboard-for-vexpress.patch @@ -1,7 +1,7 @@ From 848bed9d92cf20e9f25db4c69a20efad23996ca0 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:42:37 +0200 -Subject: [PATCH 024/238] arm_coreboot: Support keyboard for vexpress. +Subject: [PATCH 024/243] arm_coreboot: Support keyboard for vexpress. --- grub-core/Makefile.core.def | 3 + @@ -245,5 +245,5 @@ index 147e6959c97..a2aaf9f54b0 100644 KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/video.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/video_fb.h -- -2.17.0 +2.17.1 diff --git a/0025-arm_coreboot-Support-grub-mkstandalone.patch b/0025-arm_coreboot-Support-grub-mkstandalone.patch index 46a4f2f8..160ded63 100644 --- a/0025-arm_coreboot-Support-grub-mkstandalone.patch +++ b/0025-arm_coreboot-Support-grub-mkstandalone.patch @@ -1,7 +1,7 @@ From 3edabad8fefb112cc4b2d43be6e97d43c909ceee Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:59:48 +0200 -Subject: [PATCH 025/238] arm_coreboot: Support grub-mkstandalone. +Subject: [PATCH 025/243] arm_coreboot: Support grub-mkstandalone. --- util/grub-install-common.c | 12 ++++++++++-- @@ -154,5 +154,5 @@ index 6abd288c313..5910b0c09bc 100644 extern char *grub_install_source_directory; -- -2.17.0 +2.17.1 diff --git a/0026-arm_coreboot-Support-loading-linux-images.patch b/0026-arm_coreboot-Support-loading-linux-images.patch index 22cfd8ab..6b63ba4e 100644 --- a/0026-arm_coreboot-Support-loading-linux-images.patch +++ b/0026-arm_coreboot-Support-loading-linux-images.patch @@ -1,7 +1,7 @@ From 656c3b0d7fbe23f0e1ab561c8faa4ac4a37364d1 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 22:00:06 +0200 -Subject: [PATCH 026/238] arm_coreboot: Support loading linux images. +Subject: [PATCH 026/243] arm_coreboot: Support loading linux images. --- grub-core/loader/arm/linux.c | 132 ++++++++++++++++++++++--------------------- @@ -298,5 +298,5 @@ index a66caad13db..f217f8281ad 100644 #define FDT_ADDITIONAL_ENTRIES_SIZE 0x300 -- -2.17.0 +2.17.1 diff --git a/0027-arm_coreboot-Support-DMA.patch b/0027-arm_coreboot-Support-DMA.patch index a2d583a3..8878b196 100644 --- a/0027-arm_coreboot-Support-DMA.patch +++ b/0027-arm_coreboot-Support-DMA.patch @@ -1,7 +1,7 @@ From 265292f2b0da0eb414c409871ba0f94a99ec33c1 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 22:06:04 +0200 -Subject: [PATCH 027/238] arm_coreboot: Support DMA. +Subject: [PATCH 027/243] arm_coreboot: Support DMA. This is needed to support USB and some other busses. --- @@ -288,5 +288,5 @@ index a2aaf9f54b0..10451384720 100644 KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/fdtbus.h endif -- -2.17.0 +2.17.1 diff --git a/0028-ehci-Split-core-code-from-PCI-part.patch b/0028-ehci-Split-core-code-from-PCI-part.patch index 97e9458e..b5e93d76 100644 --- a/0028-ehci-Split-core-code-from-PCI-part.patch +++ b/0028-ehci-Split-core-code-from-PCI-part.patch @@ -1,7 +1,7 @@ From 058df7b5a9cc7aaa9872eaa916b715544a8f9840 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 22:10:26 +0200 -Subject: [PATCH 028/238] ehci: Split core code from PCI part. +Subject: [PATCH 028/243] ehci: Split core code from PCI part. On ARM often EHCI is present without PCI and just declared in device tree. So splitcore from PCI part. @@ -567,5 +567,5 @@ index 5f4297bb21e..c772e76546e 100644 grub_usb_controller_dev_register (&usb_controller); grub_boot_time ("EHCI driver registered"); -- -2.17.0 +2.17.1 diff --git a/0029-arm_coreboot-Support-EHCI.patch b/0029-arm_coreboot-Support-EHCI.patch index c9b82474..5ebcd903 100644 --- a/0029-arm_coreboot-Support-EHCI.patch +++ b/0029-arm_coreboot-Support-EHCI.patch @@ -1,7 +1,7 @@ From d11ced1e1fb93676942e51618eb53c140f541890 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 22:14:28 +0200 -Subject: [PATCH 029/238] arm_coreboot: Support EHCI. +Subject: [PATCH 029/243] arm_coreboot: Support EHCI. --- grub-core/Makefile.core.def | 2 ++ @@ -119,5 +119,5 @@ index ed268178b4d..da67965a41a 100644 # If gfxterm is main output console integrate it into kernel GROUPS["videoinkernel"] = ["mips_loongson", "i386_coreboot", "arm_coreboot" ] -- -2.17.0 +2.17.1 diff --git a/0030-Fix-bug-on-FDT-nodes-with-compatible-property.patch b/0030-Fix-bug-on-FDT-nodes-with-compatible-property.patch index 90e93460..6a43d929 100644 --- a/0030-Fix-bug-on-FDT-nodes-with-compatible-property.patch +++ b/0030-Fix-bug-on-FDT-nodes-with-compatible-property.patch @@ -1,7 +1,7 @@ From 4f8471532d454b2db96434c28bf7105ed69e0f4d Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 08:39:40 +0200 -Subject: [PATCH 030/238] Fix bug on FDT nodes with compatible property +Subject: [PATCH 030/243] Fix bug on FDT nodes with compatible property --- grub-core/bus/fdt.c | 2 ++ @@ -21,5 +21,5 @@ index 6fb077000a5..34d53545732 100644 while (compatible < compatible_end) { -- -2.17.0 +2.17.1 diff --git a/0031-fdtbus-Add-ability-to-send-receive-messages-on-paren.patch b/0031-fdtbus-Add-ability-to-send-receive-messages-on-paren.patch index 555b3cc2..adfc8d19 100644 --- a/0031-fdtbus-Add-ability-to-send-receive-messages-on-paren.patch +++ b/0031-fdtbus-Add-ability-to-send-receive-messages-on-paren.patch @@ -1,7 +1,7 @@ From c4313c812dc14e82a774b580b5e34d40e7f3fae6 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 08:40:29 +0200 -Subject: [PATCH 031/238] fdtbus: Add ability to send/receive messages on +Subject: [PATCH 031/243] fdtbus: Add ability to send/receive messages on parent busses. --- @@ -130,5 +130,5 @@ index 985837e55f6..f519c40ec35 100644 /* dtb is assumed to be unfreeable and must remain valid for lifetime of GRUB. -- -2.17.0 +2.17.1 diff --git a/0032-rk3288_spi-Add-SPI-driver.patch b/0032-rk3288_spi-Add-SPI-driver.patch index cbc83ed2..b27b2ac2 100644 --- a/0032-rk3288_spi-Add-SPI-driver.patch +++ b/0032-rk3288_spi-Add-SPI-driver.patch @@ -1,7 +1,7 @@ From b0b1b81a11f8bae8ab9e8edd87ac3f4f7949d03b Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 08:42:14 +0200 -Subject: [PATCH 032/238] rk3288_spi: Add SPI driver +Subject: [PATCH 032/243] rk3288_spi: Add SPI driver --- grub-core/Makefile.core.def | 1 + @@ -161,5 +161,5 @@ index 09cd7fe328c..26950534270 100644 #endif /* ! ASM_FILE */ -- -2.17.0 +2.17.1 diff --git a/0033-arm_coreboot-Add-Chromebook-keyboard-driver.patch b/0033-arm_coreboot-Add-Chromebook-keyboard-driver.patch index 822c1771..2c3b815c 100644 --- a/0033-arm_coreboot-Add-Chromebook-keyboard-driver.patch +++ b/0033-arm_coreboot-Add-Chromebook-keyboard-driver.patch @@ -1,7 +1,7 @@ From 5c3fd1b135bd73c8e3467b9b635b25ca4d360a19 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 08:47:34 +0200 -Subject: [PATCH 033/238] arm_coreboot: Add Chromebook keyboard driver. +Subject: [PATCH 033/243] arm_coreboot: Add Chromebook keyboard driver. --- grub-core/term/arm/cros.c | 125 +++++++++++++++++++++++ @@ -415,5 +415,5 @@ index 00000000000..45a372572a5 + +#endif -- -2.17.0 +2.17.1 diff --git a/0034-Missing-parts-of-previous-commit.patch b/0034-Missing-parts-of-previous-commit.patch index 7e131524..3896b3e9 100644 --- a/0034-Missing-parts-of-previous-commit.patch +++ b/0034-Missing-parts-of-previous-commit.patch @@ -1,7 +1,7 @@ From c6eaa982d12e3cfc5465dda5ea372774188b6b81 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 09:02:15 +0200 -Subject: [PATCH 034/238] Missing parts of previous commit +Subject: [PATCH 034/243] Missing parts of previous commit --- grub-core/Makefile.core.def | 2 ++ @@ -34,5 +34,5 @@ index 0126ff6381a..8d8c5b8291e 100644 } -- -2.17.0 +2.17.1 diff --git a/0035-coreboot-Changed-cbmemc-to-support-updated-console-f.patch b/0035-coreboot-Changed-cbmemc-to-support-updated-console-f.patch index 811a3655..ee751b54 100644 --- a/0035-coreboot-Changed-cbmemc-to-support-updated-console-f.patch +++ b/0035-coreboot-Changed-cbmemc-to-support-updated-console-f.patch @@ -1,7 +1,7 @@ From 70b555a52a065b2beb91e6fc97a6b358c931b303 Mon Sep 17 00:00:00 2001 From: Julius Werner Date: Tue, 9 May 2017 09:03:02 +0200 -Subject: [PATCH 035/238] coreboot: Changed cbmemc to support updated console +Subject: [PATCH 035/243] coreboot: Changed cbmemc to support updated console format from coreboot. --- @@ -94,5 +94,5 @@ index 129248c7f47..cea9b84315b 100644 } -- -2.17.0 +2.17.1 diff --git a/0036-at_keyboard-Fix-falco-chromebook-case.patch b/0036-at_keyboard-Fix-falco-chromebook-case.patch index 817acba6..36fc9688 100644 --- a/0036-at_keyboard-Fix-falco-chromebook-case.patch +++ b/0036-at_keyboard-Fix-falco-chromebook-case.patch @@ -1,7 +1,7 @@ From c4b8bec5fee4e30a165fd14a188cf3ab8eccd095 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 14:27:52 +0200 -Subject: [PATCH 036/238] at_keyboard: Fix falco chromebook case. +Subject: [PATCH 036/243] at_keyboard: Fix falco chromebook case. EC is slow, so we need few delays for it to toggle the bits correctly. @@ -85,5 +85,5 @@ index b031523eb7d..bcb4d9ba78f 100644 #define KEYBOARD_ISMAKE(x) !((x) & 0x80) #define KEYBOARD_ISREADY(x) ((x) & 0x01) -- -2.17.0 +2.17.1 diff --git a/0037-sparc64-Close-cdboot-ihandle.patch b/0037-sparc64-Close-cdboot-ihandle.patch index 5409e3bc..0a7ec708 100644 --- a/0037-sparc64-Close-cdboot-ihandle.patch +++ b/0037-sparc64-Close-cdboot-ihandle.patch @@ -1,7 +1,7 @@ From bd4e40aadded7093908d786d03b4acf60b7b1707 Mon Sep 17 00:00:00 2001 From: Eric Snowberg Date: Thu, 11 May 2017 18:42:23 -0700 -Subject: [PATCH 037/238] sparc64: Close cdboot ihandle +Subject: [PATCH 037/243] sparc64: Close cdboot ihandle The ihandle is left open with a cd-core image. This will cause a delay booting grub from a virtual cdrom in a LDOM. It will also cause problems @@ -44,5 +44,5 @@ index 586efb4014e..9ea9b4e0662 100644 mov 512, %o3 #endif -- -2.17.0 +2.17.1 diff --git a/0038-arm64-xen_boot-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch b/0038-arm64-xen_boot-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch index 4cc826f1..3a7fde3b 100644 --- a/0038-arm64-xen_boot-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch +++ b/0038-arm64-xen_boot-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch @@ -1,7 +1,7 @@ From ae5817f1dcbf0b99f7a849f56afe442165317840 Mon Sep 17 00:00:00 2001 From: Julien Grall Date: Fri, 19 Feb 2016 16:28:52 +0000 -Subject: [PATCH 038/238] arm64/xen_boot: Fix Xen boot using GRUB2 on AARCH64 +Subject: [PATCH 038/243] arm64/xen_boot: Fix Xen boot using GRUB2 on AARCH64 Xen is currently crashing because of malformed compatible property for the boot module. This is because the property string is not @@ -28,5 +28,5 @@ index a914eb8e2df..8ae43d7e894 100644 return grub_error (GRUB_ERR_IO, "failed to update FDT"); -- -2.17.0 +2.17.1 diff --git a/0039-arm64-Add-nounzip-option-support-in-xen_module-comma.patch b/0039-arm64-Add-nounzip-option-support-in-xen_module-comma.patch index 6f48184f..ba7fa789 100644 --- a/0039-arm64-Add-nounzip-option-support-in-xen_module-comma.patch +++ b/0039-arm64-Add-nounzip-option-support-in-xen_module-comma.patch @@ -1,7 +1,7 @@ From 8eed7be8a61c295df700e918744a984162378ca9 Mon Sep 17 00:00:00 2001 From: Fu Wei Date: Sun, 14 May 2017 15:43:45 +0800 -Subject: [PATCH 039/238] arm64: Add "--nounzip" option support in xen_module +Subject: [PATCH 039/243] arm64: Add "--nounzip" option support in xen_module command This patch adds "--nounzip" option support in order to @@ -52,5 +52,5 @@ index 8ae43d7e894..27ede46cac5 100644 if (!file) goto fail; -- -2.17.0 +2.17.1 diff --git a/0040-util-grub.d-20_linux_xen.in-Add-xen_boot-command-sup.patch b/0040-util-grub.d-20_linux_xen.in-Add-xen_boot-command-sup.patch index d95f3919..5ee77bae 100644 --- a/0040-util-grub.d-20_linux_xen.in-Add-xen_boot-command-sup.patch +++ b/0040-util-grub.d-20_linux_xen.in-Add-xen_boot-command-sup.patch @@ -1,7 +1,7 @@ From d33045ce7ffcb7c1e4a60c14d5ca64b36e3c5abe Mon Sep 17 00:00:00 2001 From: Fu Wei Date: Sun, 14 May 2017 15:43:46 +0800 -Subject: [PATCH 040/238] util/grub.d/20_linux_xen.in: Add xen_boot command +Subject: [PATCH 040/243] util/grub.d/20_linux_xen.in: Add xen_boot command support for aarch64 This patch adds the support of xen_boot command for aarch64: @@ -59,5 +59,5 @@ index c48af948d6e..c002fc9f946 100644 linux=`version_find_latest $list` gettext_printf "Found linux image: %s\n" "$linux" >&2 -- -2.17.0 +2.17.1 diff --git a/0041-arm64-Update-the-introduction-of-Xen-boot-commands-i.patch b/0041-arm64-Update-the-introduction-of-Xen-boot-commands-i.patch index e0e968f8..69be2ea0 100644 --- a/0041-arm64-Update-the-introduction-of-Xen-boot-commands-i.patch +++ b/0041-arm64-Update-the-introduction-of-Xen-boot-commands-i.patch @@ -1,7 +1,7 @@ From 26c2f306fd425d2c0348023b8dcb7eb40a01851a Mon Sep 17 00:00:00 2001 From: Fu Wei Date: Sun, 14 May 2017 15:43:47 +0800 -Subject: [PATCH 041/238] arm64: Update the introduction of Xen boot commands +Subject: [PATCH 041/243] arm64: Update the introduction of Xen boot commands in docs/grub.texi delete: xen_linux, xen_initrd, xen_xsm @@ -89,5 +89,5 @@ index e935af33ea5..a0c4b9e4e8e 100644 @section The list of networking commands -- -2.17.0 +2.17.1 diff --git a/0042-sparc64-Don-t-use-devspec-to-determine-the-OBP-path.patch b/0042-sparc64-Don-t-use-devspec-to-determine-the-OBP-path.patch index fe5dcd12..17b2c602 100644 --- a/0042-sparc64-Don-t-use-devspec-to-determine-the-OBP-path.patch +++ b/0042-sparc64-Don-t-use-devspec-to-determine-the-OBP-path.patch @@ -1,7 +1,7 @@ From f8679cedff703b437171f4708d46adbfcff80a65 Mon Sep 17 00:00:00 2001 From: Eric Snowberg Date: Thu, 18 May 2017 17:10:22 -0600 -Subject: [PATCH 042/238] sparc64: Don't use devspec to determine the OBP path +Subject: [PATCH 042/243] sparc64: Don't use devspec to determine the OBP path Don't use devspec to determine the OBP path on SPARC hardware. Within all versions of Linux on SPARC, the devspec returns one of three values: @@ -49,5 +49,5 @@ index a79682a5e31..dce4e59d081 100644 if (fd < 0 || fstat (fd, &st) < 0) { -- -2.17.0 +2.17.1 diff --git a/0043-Allow-GRUB-to-mount-ext2-3-4-filesystems-that-have-t.patch b/0043-Allow-GRUB-to-mount-ext2-3-4-filesystems-that-have-t.patch index 7f52cd81..faaa2258 100644 --- a/0043-Allow-GRUB-to-mount-ext2-3-4-filesystems-that-have-t.patch +++ b/0043-Allow-GRUB-to-mount-ext2-3-4-filesystems-that-have-t.patch @@ -1,7 +1,7 @@ From 734668238fcc0ef691a080839e04f33854fa133a Mon Sep 17 00:00:00 2001 From: Eric Biggers Date: Thu, 29 Jun 2017 13:27:49 +0000 -Subject: [PATCH 043/238] Allow GRUB to mount ext2/3/4 filesystems that have +Subject: [PATCH 043/243] Allow GRUB to mount ext2/3/4 filesystems that have the encryption feature. On such a filesystem, inodes may have EXT4_ENCRYPT_FLAG set. @@ -136,5 +136,5 @@ index 88cbe7365e9..fd7e0f14b68 100644 MKE2FS_DEVICE_SECTSIZE=$SECSIZE "mkfs.$fs" -b $BLKSIZE -L "$FSLABEL" -q "${MOUNTDEVICE}" ;; xxfs) -- -2.17.0 +2.17.1 diff --git a/0044-ehci-Fix-compilation-for-amd64.patch b/0044-ehci-Fix-compilation-for-amd64.patch index 58c52057..e3ef30c3 100644 --- a/0044-ehci-Fix-compilation-for-amd64.patch +++ b/0044-ehci-Fix-compilation-for-amd64.patch @@ -1,7 +1,7 @@ From edb37fb30bbc8a3b6bec67911c7200e4eb071127 Mon Sep 17 00:00:00 2001 From: phcoder Date: Sun, 9 Jul 2017 20:58:31 +0200 -Subject: [PATCH 044/238] ehci: Fix compilation for amd64 +Subject: [PATCH 044/243] ehci: Fix compilation for amd64 --- grub-core/bus/usb/ehci.c | 8 ++++---- @@ -34,5 +34,5 @@ index c772e76546e..7b7061f5335 100644 grub_ehci_oper_read32 (e, GRUB_EHCI_COMMAND)); grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: STATUS: %08x\n", -- -2.17.0 +2.17.1 diff --git a/0045-cache-Fix-compilation-for-ppc-sparc-and-arm64.patch b/0045-cache-Fix-compilation-for-ppc-sparc-and-arm64.patch index 5c097de2..0b5fce9d 100644 --- a/0045-cache-Fix-compilation-for-ppc-sparc-and-arm64.patch +++ b/0045-cache-Fix-compilation-for-ppc-sparc-and-arm64.patch @@ -1,7 +1,7 @@ From d8901e3ba115d705c9c08ecedd201aca8b4867b8 Mon Sep 17 00:00:00 2001 From: phcoder Date: Sun, 9 Jul 2017 20:59:15 +0200 -Subject: [PATCH 045/238] cache: Fix compilation for ppc, sparc and arm64 +Subject: [PATCH 045/243] cache: Fix compilation for ppc, sparc and arm64 --- include/grub/cache.h | 4 +++- @@ -23,5 +23,5 @@ index 1c98ce270b6..ccfa717e669 100644 grub_arch_sync_dma_caches (volatile void *address __attribute__ ((unused)), grub_size_t len __attribute__ ((unused))) -- -2.17.0 +2.17.1 diff --git a/0046-ehci-Fix-compilation-on-i386.patch b/0046-ehci-Fix-compilation-on-i386.patch index a8b8f71d..f4baffcb 100644 --- a/0046-ehci-Fix-compilation-on-i386.patch +++ b/0046-ehci-Fix-compilation-on-i386.patch @@ -1,7 +1,7 @@ From 284afab081ef7ed7db2c59151853aa3c92d988f2 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Sun, 9 Jul 2017 21:31:19 +0200 -Subject: [PATCH 046/238] ehci: Fix compilation on i386 +Subject: [PATCH 046/243] ehci: Fix compilation on i386 --- grub-core/bus/usb/ehci.c | 4 ++-- @@ -30,5 +30,5 @@ index 7b7061f5335..d966fc21002 100644 grub_ehci_oper_read32 (e, GRUB_EHCI_COMMAND)); grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: STATUS: %08x\n", -- -2.17.0 +2.17.1 diff --git a/0047-crypto-Fix-use-after-free.patch b/0047-crypto-Fix-use-after-free.patch index 8b8e9534..58a0cfd8 100644 --- a/0047-crypto-Fix-use-after-free.patch +++ b/0047-crypto-Fix-use-after-free.patch @@ -1,7 +1,7 @@ From a0fe0c26aa8a1c0ad66d9527611bd726b849c623 Mon Sep 17 00:00:00 2001 From: AppChecker Date: Sun, 9 Jul 2017 21:57:35 +0200 -Subject: [PATCH 047/238] crypto: Fix use after free. +Subject: [PATCH 047/243] crypto: Fix use after free. Reported by: AppChecker Transformed to patch by: Satish Govindarajan @@ -24,5 +24,5 @@ index 2bfd67c8ef3..e6d345f3345 100644 } cur->next = crypto_specs; -- -2.17.0 +2.17.1 diff --git a/0048-arm-efi-Fix-compilation.patch b/0048-arm-efi-Fix-compilation.patch index 40701e53..fefff658 100644 --- a/0048-arm-efi-Fix-compilation.patch +++ b/0048-arm-efi-Fix-compilation.patch @@ -1,7 +1,7 @@ From cb8b7e4e36bf32dccbbba8252aa44ad3ada4fbc1 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Sun, 9 Jul 2017 21:48:37 +0000 -Subject: [PATCH 048/238] arm-efi: Fix compilation +Subject: [PATCH 048/243] arm-efi: Fix compilation --- grub-core/loader/arm/linux.c | 8 ++++---- @@ -37,5 +37,5 @@ index 260cbf06861..e64c79a9577 100644 } -- -2.17.0 +2.17.1 diff --git a/0049-fdt-silence-clang-warning.patch b/0049-fdt-silence-clang-warning.patch index f967094f..575ada3c 100644 --- a/0049-fdt-silence-clang-warning.patch +++ b/0049-fdt-silence-clang-warning.patch @@ -1,7 +1,7 @@ From 68d54b55f49249c5e0517bf189f0f3df7ee6a36f Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 10 Jul 2017 01:34:22 +0000 -Subject: [PATCH 049/238] fdt: silence clang warning. +Subject: [PATCH 049/243] fdt: silence clang warning. --- grub-core/lib/fdt.c | 3 ++- @@ -22,5 +22,5 @@ index bdc6302448d..2705f2629b9 100644 return 0; return token; -- -2.17.0 +2.17.1 diff --git a/0050-Fix-a-segfault-in-lsefi.patch b/0050-Fix-a-segfault-in-lsefi.patch index 0348702c..977d6c32 100644 --- a/0050-Fix-a-segfault-in-lsefi.patch +++ b/0050-Fix-a-segfault-in-lsefi.patch @@ -1,7 +1,7 @@ From e8ab5a1a9e2889eb59d1fa494ba441a53698dcd2 Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Wed, 19 Jul 2017 15:47:41 -0400 -Subject: [PATCH 050/238] Fix a segfault in lsefi +Subject: [PATCH 050/243] Fix a segfault in lsefi when protocols_per_handle returns error, we can't use the pointers we passed to it, and that includes trusting num_protocols. @@ -29,5 +29,5 @@ index d901c389263..d1ce99af438 100644 { for (k = 0; k < ARRAY_SIZE (known_protocols); k++) -- -2.17.0 +2.17.1 diff --git a/0051-zfs-remove-size_t-typedef-and-use-grub_size_t-instea.patch b/0051-zfs-remove-size_t-typedef-and-use-grub_size_t-instea.patch index 8524ed4d..5184be42 100644 --- a/0051-zfs-remove-size_t-typedef-and-use-grub_size_t-instea.patch +++ b/0051-zfs-remove-size_t-typedef-and-use-grub_size_t-instea.patch @@ -1,7 +1,7 @@ From fa42786264cef98c56e972b3bb6b8448000e1c70 Mon Sep 17 00:00:00 2001 From: Pete Batard Date: Thu, 3 Aug 2017 15:46:15 +0100 -Subject: [PATCH 051/238] zfs: remove size_t typedef and use grub_size_t +Subject: [PATCH 051/243] zfs: remove size_t typedef and use grub_size_t instead * Prevents some toolchains from issuing a warning on size_t redef. @@ -55,5 +55,5 @@ index 2f73449f0d4..5453822d025 100644 const int dec2 = 0; #endif -- -2.17.0 +2.17.1 diff --git a/0052-udf-Fix-reading-label-lvd.ident-is-dstring.patch b/0052-udf-Fix-reading-label-lvd.ident-is-dstring.patch index f6157f1e..fe4295d3 100644 --- a/0052-udf-Fix-reading-label-lvd.ident-is-dstring.patch +++ b/0052-udf-Fix-reading-label-lvd.ident-is-dstring.patch @@ -1,7 +1,7 @@ From 76188809d5ca40c5285b0ab202b5edea7be3f04d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pali=20Roh=C3=A1r?= Date: Thu, 22 Jun 2017 14:33:17 +0200 -Subject: [PATCH 052/238] udf: Fix reading label, lvd.ident is dstring +Subject: [PATCH 052/243] udf: Fix reading label, lvd.ident is dstring UDF dstring has stored length in the last byte of buffer. Therefore last byte is not part of recorded characters. And empty string in dstring is @@ -50,5 +50,5 @@ index 839bff88963..2587456336e 100644 } else -- -2.17.0 +2.17.1 diff --git a/0053-grub-core-fs-udf.c-Add-support-for-UUID.patch b/0053-grub-core-fs-udf.c-Add-support-for-UUID.patch index fe1e4d9e..413cc8d7 100644 --- a/0053-grub-core-fs-udf.c-Add-support-for-UUID.patch +++ b/0053-grub-core-fs-udf.c-Add-support-for-UUID.patch @@ -1,7 +1,7 @@ From 435fa75e01ef40917239c7f775e505e86f70d202 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pali=20Roh=C3=A1r?= Date: Thu, 22 Jun 2017 14:42:16 +0200 -Subject: [PATCH 053/238] * grub-core/fs/udf.c: Add support for UUID +Subject: [PATCH 053/243] * grub-core/fs/udf.c: Add support for UUID Use same algorithm as in libblkid from util-linux v2.30. @@ -187,5 +187,5 @@ index 2587456336e..00a16098b47 100644 .reserved_first_sector = 1, .blocklist_install = 1, -- -2.17.0 +2.17.1 diff --git a/0054-mkrescue-Check-xorriso-presence-before-doing-anythin.patch b/0054-mkrescue-Check-xorriso-presence-before-doing-anythin.patch index 4e07de30..20c7bc29 100644 --- a/0054-mkrescue-Check-xorriso-presence-before-doing-anythin.patch +++ b/0054-mkrescue-Check-xorriso-presence-before-doing-anythin.patch @@ -1,7 +1,7 @@ From 9e962fd3c42081e2eef1f99a0eaab38fd04d2620 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 7 Aug 2017 18:05:17 +0200 -Subject: [PATCH 054/238] mkrescue: Check xorriso presence before doing +Subject: [PATCH 054/243] mkrescue: Check xorriso presence before doing anything else. mkrescue can't do anything useful without xorriso, so abort early if it's @@ -46,5 +46,5 @@ index 238d4840e2f..38f1543974e 100644 grub_hostfs_init (); grub_host_init (); -- -2.17.0 +2.17.1 diff --git a/0055-Fail-if-xorriso-failed.patch b/0055-Fail-if-xorriso-failed.patch index 62c0e807..854be4d1 100644 --- a/0055-Fail-if-xorriso-failed.patch +++ b/0055-Fail-if-xorriso-failed.patch @@ -1,7 +1,7 @@ From e66dc5d71ebfc9763420a76c274e6980d54641c3 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 7 Aug 2017 18:08:39 +0200 -Subject: [PATCH 055/238] Fail if xorriso failed. +Subject: [PATCH 055/243] Fail if xorriso failed. If xorriso failed most likely we didn't generate a meaningful image. --- @@ -40,5 +40,5 @@ index 38f1543974e..9545945d8f3 100644 grub_util_unlink_recursive (iso9660_dir); -- -2.17.0 +2.17.1 diff --git a/0056-efi-refactor-grub_efi_allocate_pages.patch b/0056-efi-refactor-grub_efi_allocate_pages.patch index d2c40cd3..678f8179 100644 --- a/0056-efi-refactor-grub_efi_allocate_pages.patch +++ b/0056-efi-refactor-grub_efi_allocate_pages.patch @@ -1,7 +1,7 @@ From dd5fde2df83c5c03b7ba04d2cc5b7be96de8da7b Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:23 +0100 -Subject: [PATCH 056/238] efi: refactor grub_efi_allocate_pages +Subject: [PATCH 056/243] efi: refactor grub_efi_allocate_pages Expose a new function, grub_efi_allocate_pages_real(), making it possible to specify allocation type and memory type as supported by the UEFI @@ -116,5 +116,5 @@ index e9c601f3410..b4cbebf3828 100644 grub_efi_uintn_t pages); void EXPORT_FUNC(grub_efi_free_pages) (grub_efi_physical_address_t address, -- -2.17.0 +2.17.1 diff --git a/0057-Remove-grub_efi_allocate_pages.patch b/0057-Remove-grub_efi_allocate_pages.patch index 279e1914..b0bb56f7 100644 --- a/0057-Remove-grub_efi_allocate_pages.patch +++ b/0057-Remove-grub_efi_allocate_pages.patch @@ -1,7 +1,7 @@ From 4bc909bf89f5b4ff86c9e4e609d4fe0c11a66b0c Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 7 Aug 2017 18:33:29 +0200 -Subject: [PATCH 057/238] Remove grub_efi_allocate_pages. +Subject: [PATCH 057/243] Remove grub_efi_allocate_pages. grub_efi_allocate_pages Essentially does 2 unrelated things: * Allocate at fixed address. @@ -248,5 +248,5 @@ index b4cbebf3828..3fa082816ca 100644 grub_efi_uintn_t pages); int -- -2.17.0 +2.17.1 diff --git a/0058-efi-move-fdt-helper-library.patch b/0058-efi-move-fdt-helper-library.patch index d570d98b..bc30a0be 100644 --- a/0058-efi-move-fdt-helper-library.patch +++ b/0058-efi-move-fdt-helper-library.patch @@ -1,7 +1,7 @@ From 8c9465fac901caac6802d6872a1374518b001517 Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:24 +0100 -Subject: [PATCH 058/238] efi: move fdt helper library +Subject: [PATCH 058/243] efi: move fdt helper library There is nothing ARM64 (or even ARM) specific about the efi fdt helper library, which is used for locating or overriding a firmware-provided @@ -89,5 +89,5 @@ similarity index 100% rename from include/grub/arm64/fdtload.h rename to include/grub/efi/fdtload.h -- -2.17.0 +2.17.1 diff --git a/0059-efi-Add-GRUB_PE32_MAGIC-definition.patch b/0059-efi-Add-GRUB_PE32_MAGIC-definition.patch index 2554c5df..588c729a 100644 --- a/0059-efi-Add-GRUB_PE32_MAGIC-definition.patch +++ b/0059-efi-Add-GRUB_PE32_MAGIC-definition.patch @@ -1,7 +1,7 @@ From c5841ba7f0d14c193f20854e7e55b4f7ce9207d5 Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:25 +0100 -Subject: [PATCH 059/238] efi: Add GRUB_PE32_MAGIC definition +Subject: [PATCH 059/243] efi: Add GRUB_PE32_MAGIC definition Add a generic GRUB_PE32_MAGIC definition for the PE 'MZ' tag and delete the existing one in arm64/linux.h. @@ -55,5 +55,5 @@ index f79c36c026e..7d44732d2c3 100644 But some examples (such as EFI drivers in the Intel Sample Implementation) use 32 bytes (0x20) instead, and it seems -- -2.17.0 +2.17.1 diff --git a/0060-arm64-linux-loader-improve-type-portability.patch b/0060-arm64-linux-loader-improve-type-portability.patch index c7a2dda5..e78dd10b 100644 --- a/0060-arm64-linux-loader-improve-type-portability.patch +++ b/0060-arm64-linux-loader-improve-type-portability.patch @@ -1,7 +1,7 @@ From 91212e0aa07e704a61e4540c18a27f149f5e51c3 Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:26 +0100 -Subject: [PATCH 060/238] arm64 linux loader: improve type portability +Subject: [PATCH 060/243] arm64 linux loader: improve type portability In preparation for turning this into a common loader for 32-bit and 64-bit platforms, ensure the code will compile cleanly for either. @@ -111,5 +111,5 @@ index 091e9ddf43d..17212c38d0b 100644 fdt = NULL; } -- -2.17.0 +2.17.1 diff --git a/0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch b/0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch index 197ce137..c7ff91b1 100644 --- a/0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch +++ b/0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch @@ -1,7 +1,7 @@ From f826330683675f0deb55b58fd229afd7d65fb053 Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:32 +0100 -Subject: [PATCH 061/238] efi: change heap allocation type to +Subject: [PATCH 061/243] efi: change heap allocation type to GRUB_EFI_LOADER_CODE With upcoming changes to EDK2, allocations of type EFI_LOADER_DATA may @@ -32,5 +32,5 @@ index b97b05fe825..ac2a4c556b8 100644 grub_fatal ("cannot allocate conventional memory %p with %u pages", (void *) ((grub_addr_t) start), -- -2.17.0 +2.17.1 diff --git a/0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch b/0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch index 8d034118..938f62c0 100644 --- a/0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch +++ b/0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch @@ -1,7 +1,7 @@ From bdd89d239cd9b4089630bfb5ec862aab8086dca2 Mon Sep 17 00:00:00 2001 From: Pete Batard Date: Mon, 7 Aug 2017 16:20:30 +0100 -Subject: [PATCH 062/238] core: use GRUB_TERM_ definitions when handling term +Subject: [PATCH 062/243] core: use GRUB_TERM_ definitions when handling term characters * Also use hex value for GRUB_TERM_ESC as '\e' is not in the C standard and is not understood by some compilers @@ -261,5 +261,5 @@ index 5ffb38f69aa..8117e2a24da 100644 #define GRUB_TERM_BACKSPACE '\b' -- -2.17.0 +2.17.1 diff --git a/0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch b/0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch index 086cfb83..a4b7fa35 100644 --- a/0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch +++ b/0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch @@ -1,7 +1,7 @@ From 1deebd85ef87cc581e995ce0a51dc0802ac9c367 Mon Sep 17 00:00:00 2001 From: Pete Batard Date: Mon, 7 Aug 2017 16:23:12 +0100 -Subject: [PATCH 063/238] io: add a GRUB_GZ prefix to gzio specific defines +Subject: [PATCH 063/243] io: add a GRUB_GZ prefix to gzio specific defines * This is done to avoid a conflict with a PACKED define in the EDK2 --- @@ -81,5 +81,5 @@ index 0f2ea6bd845..a8e33033bf8 100644 /* TRANSLATORS: It's about given file having some strange format, not complete lack of gzip support. */ -- -2.17.0 +2.17.1 diff --git a/0064-re-write-.gitignore.patch b/0064-re-write-.gitignore.patch index 7cf32631..6b2ef763 100644 --- a/0064-re-write-.gitignore.patch +++ b/0064-re-write-.gitignore.patch @@ -1,7 +1,7 @@ From 38bfcd3054c28aa40234840c12d900f1d18a217d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 8 Aug 2017 12:48:04 -0400 -Subject: [PATCH 064/238] re-write .gitignore +Subject: [PATCH 064/243] re-write .gitignore --- .gitignore | 352 ++++++++++++-------------------------- @@ -496,5 +496,5 @@ index 00000000000..b7e1eb12428 @@ -0,0 +1 @@ +grub -- -2.17.0 +2.17.1 diff --git a/0065-IBM-client-architecture-CAS-reboot-support.patch b/0065-IBM-client-architecture-CAS-reboot-support.patch index 750b54d9..56a38209 100644 --- a/0065-IBM-client-architecture-CAS-reboot-support.patch +++ b/0065-IBM-client-architecture-CAS-reboot-support.patch @@ -1,7 +1,7 @@ From bf1fd830091fff49e26f39027e0db8fd4b688624 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Thu, 20 Sep 2012 18:07:39 -0300 -Subject: [PATCH 065/238] IBM client architecture (CAS) reboot support +Subject: [PATCH 065/243] IBM client architecture (CAS) reboot support This is an implementation of IBM client architecture (CAS) reboot for GRUB. @@ -170,5 +170,5 @@ index 8e425130327..9f26c69a2df 100644 #define FOR_IEEE1275_DEVALIASES(alias) for (grub_ieee1275_devalias_init_iterator (&(alias)); grub_ieee1275_devalias_next (&(alias));) -- -2.17.0 +2.17.1 diff --git a/0066-for-ppc-reset-console-display-attr-when-clear-screen.patch b/0066-for-ppc-reset-console-display-attr-when-clear-screen.patch index 422e16a1..026efc1f 100644 --- a/0066-for-ppc-reset-console-display-attr-when-clear-screen.patch +++ b/0066-for-ppc-reset-console-display-attr-when-clear-screen.patch @@ -1,7 +1,7 @@ From 8b30fab3c07a9fc8549e404c411b747b960c57b2 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Wed, 24 Apr 2013 10:51:48 -0300 -Subject: [PATCH 066/238] for ppc, reset console display attr when clear screen +Subject: [PATCH 066/243] for ppc, reset console display attr when clear screen v2: Also use \x0c instead of a literal ^L to make future patches less awkward. @@ -28,5 +28,5 @@ index d317efa368d..29df35e6d20 100644 data->reverse_video_off = grub_strdup ("\e[m"); if (grub_strcmp ("ieee1275", str) == 0) -- -2.17.0 +2.17.1 diff --git a/0067-Disable-GRUB-video-support-for-IBM-power-machines.patch b/0067-Disable-GRUB-video-support-for-IBM-power-machines.patch index 7feef6fa..7f103533 100644 --- a/0067-Disable-GRUB-video-support-for-IBM-power-machines.patch +++ b/0067-Disable-GRUB-video-support-for-IBM-power-machines.patch @@ -1,7 +1,7 @@ From 45322cbc9402639a431fc0f33bd76e387e6f02bf Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 11 Jun 2013 15:14:05 -0300 -Subject: [PATCH 067/238] Disable GRUB video support for IBM power machines +Subject: [PATCH 067/243] Disable GRUB video support for IBM power machines Should fix the problem in bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=973205 @@ -61,5 +61,5 @@ index 9f26c69a2df..ab4f284c341 100644 extern int EXPORT_FUNC(grub_ieee1275_test_flag) (enum grub_ieee1275_flag flag); -- -2.17.0 +2.17.1 diff --git a/0068-Honor-a-symlink-when-generating-configuration-by-gru.patch b/0068-Honor-a-symlink-when-generating-configuration-by-gru.patch index cb3aac9d..ff15e2f0 100644 --- a/0068-Honor-a-symlink-when-generating-configuration-by-gru.patch +++ b/0068-Honor-a-symlink-when-generating-configuration-by-gru.patch @@ -1,7 +1,7 @@ From c29e260c9f41f4f802fa852b6c46fb2e5d912cb6 Mon Sep 17 00:00:00 2001 From: Marcel Kolaja Date: Tue, 21 Jan 2014 10:57:08 -0500 -Subject: [PATCH 068/238] Honor a symlink when generating configuration by +Subject: [PATCH 068/243] Honor a symlink when generating configuration by grub2-mkconfig Honor a symlink when generating configuration by grub2-mkconfig, so that @@ -25,5 +25,5 @@ index f8496d28bdf..3b070fd7632 100644 fi -- -2.17.0 +2.17.1 diff --git a/0069-Move-bash-completion-script-922997.patch b/0069-Move-bash-completion-script-922997.patch index 6365c571..e5a59483 100644 --- a/0069-Move-bash-completion-script-922997.patch +++ b/0069-Move-bash-completion-script-922997.patch @@ -1,7 +1,7 @@ From 8eaf2f497a6bcffc5554509533940ac2b764b981 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 3 Apr 2013 14:35:34 -0400 -Subject: [PATCH 069/238] Move bash completion script (#922997) +Subject: [PATCH 069/243] Move bash completion script (#922997) Apparently these go in a new place now. --- @@ -51,5 +51,5 @@ index 136287cf1bf..61108f05429 100644 $(bash_completion_script): $(bash_completion_source) $(top_builddir)/config.status -- -2.17.0 +2.17.1 diff --git a/0070-Update-to-minilzo-2.08.patch b/0070-Update-to-minilzo-2.08.patch index b316b850..5af63a36 100644 --- a/0070-Update-to-minilzo-2.08.patch +++ b/0070-Update-to-minilzo-2.08.patch @@ -1,7 +1,7 @@ From 9a1e99c5628bafa9e3970a5317b721da704bec6a Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Dec 2014 15:36:09 -0500 -Subject: [PATCH 070/238] Update to minilzo-2.08 +Subject: [PATCH 070/243] Update to minilzo-2.08 This fixes CVE-2014-4607 - lzo: lzo1x_decompress_safe() integer overflow @@ -8508,5 +8508,5 @@ index 74fefa9fe20..79374546748 100644 -- -2.17.0 +2.17.1 diff --git a/0071-Allow-fallback-to-include-entries-by-title-not-just-.patch b/0071-Allow-fallback-to-include-entries-by-title-not-just-.patch index d8ee4f7e..8b82b105 100644 --- a/0071-Allow-fallback-to-include-entries-by-title-not-just-.patch +++ b/0071-Allow-fallback-to-include-entries-by-title-not-just-.patch @@ -1,7 +1,7 @@ From 27845fb323de35e9dcaad8c738eb1a2a2bc316f8 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 5 Sep 2014 10:07:04 -0400 -Subject: [PATCH 071/238] Allow "fallback" to include entries by title, not +Subject: [PATCH 071/243] Allow "fallback" to include entries by title, not just number. Resolves: rhbz#1026084 @@ -140,5 +140,5 @@ index e7a83c2d6e2..d2f64b05e0a 100644 static int get_entry_number (grub_menu_t menu, const char *name) -- -2.17.0 +2.17.1 diff --git a/0072-Add-GRUB_DISABLE_UUID.patch b/0072-Add-GRUB_DISABLE_UUID.patch index 3853e2bd..0bf94972 100644 --- a/0072-Add-GRUB_DISABLE_UUID.patch +++ b/0072-Add-GRUB_DISABLE_UUID.patch @@ -1,7 +1,7 @@ From 7f7429e93fa791ac2c002beaafab9b9d9bd86b89 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Sep 2014 16:49:25 -0400 -Subject: [PATCH 072/238] Add GRUB_DISABLE_UUID. +Subject: [PATCH 072/243] Add GRUB_DISABLE_UUID. This will cause "search --fs-uuid --set=root ..." not to be generated by grub2-mkconfig, and instead simply attempt to use the grub device name @@ -95,5 +95,5 @@ index 60b31caddeb..cf35e417470 100644 else echo $device |sed 's, ,_,g' -- -2.17.0 +2.17.1 diff --git a/0073-Make-exit-take-a-return-code.patch b/0073-Make-exit-take-a-return-code.patch index 7e719c5c..20e3dea7 100644 --- a/0073-Make-exit-take-a-return-code.patch +++ b/0073-Make-exit-take-a-return-code.patch @@ -1,7 +1,7 @@ From 384ccb1b44fc23514a59529f58f984dcc4a75cc9 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 26 Feb 2014 21:49:12 -0500 -Subject: [PATCH 073/238] Make "exit" take a return code. +Subject: [PATCH 073/243] Make "exit" take a return code. This adds "exit" with a return code. With this patch, any "exit" command /may/ include a return code, and on platforms that support @@ -255,5 +255,5 @@ index 2a9f87cc255..06208143779 100644 grub_uint64_t d, grub_uint64_t *r); -- -2.17.0 +2.17.1 diff --git a/0074-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch b/0074-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch index 31ff5578..2db1f2bf 100644 --- a/0074-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch +++ b/0074-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch @@ -1,7 +1,7 @@ From 939f3dfcfacde13bd7ebfe411c0dceee9e5ed0ae Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 22 Jul 2015 11:21:01 -0400 -Subject: [PATCH 074/238] Mark po/exclude.pot as binary so git won't try to +Subject: [PATCH 074/243] Mark po/exclude.pot as binary so git won't try to diff nonprintables. Signed-off-by: Peter Jones @@ -18,5 +18,5 @@ index 00000000000..33ffaa40460 @@ -0,0 +1 @@ +po/exclude.pot binary -- -2.17.0 +2.17.1 diff --git a/0075-Make-efi-machines-load-an-env-block-from-a-variable.patch b/0075-Make-efi-machines-load-an-env-block-from-a-variable.patch index 9a529949..d1e4a189 100644 --- a/0075-Make-efi-machines-load-an-env-block-from-a-variable.patch +++ b/0075-Make-efi-machines-load-an-env-block-from-a-variable.patch @@ -1,7 +1,7 @@ From 805220eb48a8cabcc83628d90aa40f3204b21a71 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 7 Dec 2015 14:20:49 -0500 -Subject: [PATCH 075/238] Make efi machines load an env block from a variable +Subject: [PATCH 075/243] Make efi machines load an env block from a variable Signed-off-by: Peter Jones --- @@ -80,5 +80,5 @@ index 2c31847bf6d..f7782b6e114 100644 char **path); -- -2.17.0 +2.17.1 diff --git a/0076-DHCP-client-ID-and-UUID-options-added.patch b/0076-DHCP-client-ID-and-UUID-options-added.patch index 56b9a6b2..0e076f24 100644 --- a/0076-DHCP-client-ID-and-UUID-options-added.patch +++ b/0076-DHCP-client-ID-and-UUID-options-added.patch @@ -1,7 +1,7 @@ From cefc164d655fb7709efbc37a317952ff3ec4aeb3 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 27 Nov 2012 17:18:53 -0200 -Subject: [PATCH 076/238] DHCP client ID and UUID options added. +Subject: [PATCH 076/243] DHCP client ID and UUID options added. --- grub-core/net/bootp.c | 87 ++++++++++++++++++++++++++++++++++++++++++++++----- @@ -141,5 +141,5 @@ index 1096b24322e..e266bae23f4 100644 }; -- -2.17.0 +2.17.1 diff --git a/0077-trim-arp-packets-with-abnormal-size.patch b/0077-trim-arp-packets-with-abnormal-size.patch index a6b002b5..1691591e 100644 --- a/0077-trim-arp-packets-with-abnormal-size.patch +++ b/0077-trim-arp-packets-with-abnormal-size.patch @@ -1,7 +1,7 @@ From 571a6cce3b0d4c8abf11efc320e2de6ff9188d60 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Wed, 5 Feb 2014 09:42:42 -0200 -Subject: [PATCH 077/238] trim arp packets with abnormal size +Subject: [PATCH 077/243] trim arp packets with abnormal size GRUB uses arp request to create the arp response. If the incoming packet is foobared, GRUB needs to trim the arp response packet before sending it. @@ -27,5 +27,5 @@ index 54306e3b16d..d1c69ed2b55 100644 struct grub_net_buff nb_reply; struct arppkt *arp_reply; -- -2.17.0 +2.17.1 diff --git a/0078-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch b/0078-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch index 3143e40f..0558b38b 100644 --- a/0078-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch +++ b/0078-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch @@ -1,7 +1,7 @@ From 6cd959a64f588e256f0ba17e31bf2720b9cdec88 Mon Sep 17 00:00:00 2001 From: Prarit Bhargava Date: Wed, 12 Mar 2014 10:58:16 -0400 -Subject: [PATCH 078/238] Fix bad test on GRUB_DISABLE_SUBMENU. +Subject: [PATCH 078/243] Fix bad test on GRUB_DISABLE_SUBMENU. The file /etc/grub.d/10_linux does @@ -37,5 +37,5 @@ index de9044c7f28..cf6331f2a51 100644 "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" -- -2.17.0 +2.17.1 diff --git a/0079-Add-support-for-UEFI-operating-systems-returned-by-o.patch b/0079-Add-support-for-UEFI-operating-systems-returned-by-o.patch index c6f923c3..8a961fb5 100644 --- a/0079-Add-support-for-UEFI-operating-systems-returned-by-o.patch +++ b/0079-Add-support-for-UEFI-operating-systems-returned-by-o.patch @@ -1,7 +1,7 @@ From 0254265409f80b369c35fb474c7371feb6f9ae1d Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Wed, 12 Jun 2013 11:51:49 -0400 -Subject: [PATCH 079/238] Add support for UEFI operating systems returned by +Subject: [PATCH 079/243] Add support for UEFI operating systems returned by os-prober os-prober returns UEFI operating systems in the form: @@ -46,5 +46,5 @@ index 515a68c7aa0..9b8f5968e2d 100644 esac done -- -2.17.0 +2.17.1 diff --git a/0080-Migrate-PPC-from-Yaboot-to-Grub2.patch b/0080-Migrate-PPC-from-Yaboot-to-Grub2.patch index c5c318e1..aca627f5 100644 --- a/0080-Migrate-PPC-from-Yaboot-to-Grub2.patch +++ b/0080-Migrate-PPC-from-Yaboot-to-Grub2.patch @@ -1,7 +1,7 @@ From f2b4c105e3657cc32ed0f7aefa713f161cdf64f1 Mon Sep 17 00:00:00 2001 From: Mark Hamzy Date: Wed, 28 Mar 2012 14:46:41 -0500 -Subject: [PATCH 080/238] Migrate PPC from Yaboot to Grub2 +Subject: [PATCH 080/243] Migrate PPC from Yaboot to Grub2 Add configuration support for serial terminal consoles. This will set the maximum screen size so that text is not overwritten. @@ -150,5 +150,5 @@ index 00000000000..10d66586820 + terminfo -g ${X}x${Y} ${TERMINAL} +EOF -- -2.17.0 +2.17.1 diff --git a/0081-Add-fw_path-variable-revised.patch b/0081-Add-fw_path-variable-revised.patch index 623d031a..03513c23 100644 --- a/0081-Add-fw_path-variable-revised.patch +++ b/0081-Add-fw_path-variable-revised.patch @@ -1,7 +1,7 @@ From 7f021a05a5ed7c97432abbc1762f40e36a4915e3 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Wed, 19 Sep 2012 21:22:55 -0300 -Subject: [PATCH 081/238] Add fw_path variable (revised) +Subject: [PATCH 081/243] Add fw_path variable (revised) This patch makes grub look for its config file on efi where the app was found. It was originally written by Matthew Garrett, and adapted to fix the @@ -77,5 +77,5 @@ index 249e19bc788..759c475c4d9 100644 prefix = grub_env_get ("prefix"); if (prefix) -- -2.17.0 +2.17.1 diff --git a/0082-Add-support-for-linuxefi.patch b/0082-Add-support-for-linuxefi.patch index eea05a25..d97a8423 100644 --- a/0082-Add-support-for-linuxefi.patch +++ b/0082-Add-support-for-linuxefi.patch @@ -1,7 +1,7 @@ From 778385965798ac2711f0d07d5cf521a6e999ca8b Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 10 Jul 2012 11:58:52 -0400 -Subject: [PATCH 082/238] Add support for linuxefi +Subject: [PATCH 082/243] Add support for linuxefi --- grub-core/Makefile.core.def | 8 + @@ -478,5 +478,5 @@ index da0ca3b83cd..fc36bdaf367 100644 /* Boot parameters for Linux based on 2.6.12. This is used by the setup -- -2.17.0 +2.17.1 diff --git a/0083-Use-linuxefi-and-initrdefi-where-appropriate.patch b/0083-Use-linuxefi-and-initrdefi-where-appropriate.patch index e0b39dfc..f343455f 100644 --- a/0083-Use-linuxefi-and-initrdefi-where-appropriate.patch +++ b/0083-Use-linuxefi-and-initrdefi-where-appropriate.patch @@ -1,7 +1,7 @@ From 793d4270384ef3373bc0b3c956cab8a8cdb75bcf Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 16 Jul 2012 18:57:11 -0400 -Subject: [PATCH 083/238] Use "linuxefi" and "initrdefi" where appropriate. +Subject: [PATCH 083/243] Use "linuxefi" and "initrdefi" where appropriate. --- util/grub.d/10_linux.in | 18 ++++++++++++++++-- @@ -46,5 +46,5 @@ index cf6331f2a51..8ccf012f747 100644 sed "s/^/$submenu_indentation/" << EOF } -- -2.17.0 +2.17.1 diff --git a/0084-Don-t-allow-insmod-when-secure-boot-is-enabled.patch b/0084-Don-t-allow-insmod-when-secure-boot-is-enabled.patch index 574987ae..af9621cd 100644 --- a/0084-Don-t-allow-insmod-when-secure-boot-is-enabled.patch +++ b/0084-Don-t-allow-insmod-when-secure-boot-is-enabled.patch @@ -1,7 +1,7 @@ From eb8fd62e887e624f5c6e7c2ee8512981e8b5be97 Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Tue, 23 Oct 2012 10:40:49 -0400 -Subject: [PATCH 084/238] Don't allow insmod when secure boot is enabled. +Subject: [PATCH 084/243] Don't allow insmod when secure boot is enabled. Hi, @@ -120,5 +120,5 @@ index 91e29ce66f1..bb3ab7dfdeb 100644 EXPORT_FUNC (grub_efi_compare_device_paths) (const grub_efi_device_path_t *dp1, const grub_efi_device_path_t *dp2); -- -2.17.0 +2.17.1 diff --git a/0085-Pass-x-hex-hex-straight-through-unmolested.patch b/0085-Pass-x-hex-hex-straight-through-unmolested.patch index 3160fca3..f8d1f5f8 100644 --- a/0085-Pass-x-hex-hex-straight-through-unmolested.patch +++ b/0085-Pass-x-hex-hex-straight-through-unmolested.patch @@ -1,7 +1,7 @@ From 0d54ed89090fc1bdcb75de474024b2b81dbf644f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 1 Oct 2012 13:24:37 -0400 -Subject: [PATCH 085/238] Pass "\x[[:hex:]][[:hex:]]" straight through +Subject: [PATCH 085/243] Pass "\x[[:hex:]][[:hex:]]" straight through unmolested. --- @@ -179,5 +179,5 @@ index ab78ca87f90..cf6cd6601d6 100644 case '$': if (escaped) -- -2.17.0 +2.17.1 diff --git a/0086-Add-X-option-to-printf-functions.patch b/0086-Add-X-option-to-printf-functions.patch index dc1ce19f..a61fab23 100644 --- a/0086-Add-X-option-to-printf-functions.patch +++ b/0086-Add-X-option-to-printf-functions.patch @@ -1,7 +1,7 @@ From 6237b1688124d6a72250b296e758ef2d59fde26f Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 27 Nov 2012 16:58:39 -0200 -Subject: [PATCH 086/238] Add %X option to printf functions. +Subject: [PATCH 086/243] Add %X option to printf functions. --- grub-core/kern/misc.c | 7 +++++-- @@ -54,5 +54,5 @@ index 952411d5dc6..8344526be7f 100644 case 'd': { -- -2.17.0 +2.17.1 diff --git a/0087-Search-for-specific-config-file-for-netboot.patch b/0087-Search-for-specific-config-file-for-netboot.patch index 03de788c..c1c979ac 100644 --- a/0087-Search-for-specific-config-file-for-netboot.patch +++ b/0087-Search-for-specific-config-file-for-netboot.patch @@ -1,7 +1,7 @@ From 9491cbfdab951e38f096bd9705a76b382f54c9be Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 27 Nov 2012 17:22:07 -0200 -Subject: [PATCH 087/238] Search for specific config file for netboot +Subject: [PATCH 087/243] Search for specific config file for netboot This patch implements a search for a specific configuration when the config file is on a remoteserver. It uses the following order: @@ -199,5 +199,5 @@ index e266bae23f4..50d62ab0c8c 100644 + #endif /* ! GRUB_NET_HEADER */ -- -2.17.0 +2.17.1 diff --git a/0088-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch b/0088-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch index 864cd4de..4f0d2b85 100644 --- a/0088-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch +++ b/0088-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch @@ -1,7 +1,7 @@ From 5fcdebdc36cc84c772754b7f5bdb87aed2b42853 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Tue, 22 Jan 2013 06:31:38 +0100 -Subject: [PATCH 088/238] blscfg: add blscfg module to parse Boot Loader +Subject: [PATCH 088/243] blscfg: add blscfg module to parse Boot Loader Specification snippets http://www.freedesktop.org/wiki/Specifications/BootLoaderSpec @@ -247,5 +247,5 @@ index 00000000000..4274aca5a9d + grub_unregister_extcmd (cmd); +} -- -2.17.0 +2.17.1 diff --git a/0089-Don-t-write-messages-to-the-screen.patch b/0089-Don-t-write-messages-to-the-screen.patch index e2b94f2e..7c0d9e30 100644 --- a/0089-Don-t-write-messages-to-the-screen.patch +++ b/0089-Don-t-write-messages-to-the-screen.patch @@ -1,7 +1,7 @@ From fc390be631e93744c6a3a2f42849c9edf2614a36 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 13:30:20 -0400 -Subject: [PATCH 089/238] Don't write messages to the screen +Subject: [PATCH 089/243] Don't write messages to the screen Writing messages to the screen before the menus or boot splash happens so quickly it looks like something is wrong and isn't @@ -177,5 +177,5 @@ index 8ccf012f747..a3d9711d607 100644 EOF fi -- -2.17.0 +2.17.1 diff --git a/0090-Don-t-print-GNU-GRUB-header.patch b/0090-Don-t-print-GNU-GRUB-header.patch index a60440db..5a60e287 100644 --- a/0090-Don-t-print-GNU-GRUB-header.patch +++ b/0090-Don-t-print-GNU-GRUB-header.patch @@ -1,7 +1,7 @@ From 806c26ae73bc86e305c39c955d86480fad8985df Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 13:53:48 -0400 -Subject: [PATCH 090/238] Don't print GNU GRUB header +Subject: [PATCH 090/243] Don't print GNU GRUB header No one cares. --- @@ -41,5 +41,5 @@ index b2654ef62e8..f57b7508a76 100644 static void -- -2.17.0 +2.17.1 diff --git a/0091-Don-t-add-to-highlighted-row.patch b/0091-Don-t-add-to-highlighted-row.patch index 4c4b16bf..34f42225 100644 --- a/0091-Don-t-add-to-highlighted-row.patch +++ b/0091-Don-t-add-to-highlighted-row.patch @@ -1,7 +1,7 @@ From 5ae2484f263365351a2891be6c056eeb96b3924b Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 17:49:45 -0400 -Subject: [PATCH 091/238] Don't add '*' to highlighted row +Subject: [PATCH 091/243] Don't add '*' to highlighted row It is already highlighted. --- @@ -22,5 +22,5 @@ index e22bb91f6e8..a3d1f23f68f 100644 grub_print_ucs4_menu (unicode_title, unicode_title + len, -- -2.17.0 +2.17.1 diff --git a/0092-Message-string-cleanups.patch b/0092-Message-string-cleanups.patch index f0cc749d..f7cce12d 100644 --- a/0092-Message-string-cleanups.patch +++ b/0092-Message-string-cleanups.patch @@ -1,7 +1,7 @@ From 622b238ecb927d331dc38083584a7323013b5f21 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 11:09:04 -0400 -Subject: [PATCH 092/238] Message string cleanups +Subject: [PATCH 092/243] Message string cleanups Make use of terminology consistent. Remove jargon. --- @@ -67,5 +67,5 @@ index a3d1f23f68f..64a83862f66 100644 { grub_print_error (); -- -2.17.0 +2.17.1 diff --git a/0093-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch b/0093-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch index b8652d7c..a9196251 100644 --- a/0093-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch +++ b/0093-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch @@ -1,7 +1,7 @@ From c7dac08ab344638afabf579e03bedfac729e1944 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:08:23 -0400 -Subject: [PATCH 093/238] Fix border spacing now that we aren't displaying it +Subject: [PATCH 093/243] Fix border spacing now that we aren't displaying it --- grub-core/normal/menu_text.c | 6 +++--- @@ -28,5 +28,5 @@ index 64a83862f66..1062d64ee29 100644 geo->timeout_lines = 2; -- -2.17.0 +2.17.1 diff --git a/0094-Use-the-correct-indentation-for-the-term-help-text.patch b/0094-Use-the-correct-indentation-for-the-term-help-text.patch index 05921fda..2e6f717e 100644 --- a/0094-Use-the-correct-indentation-for-the-term-help-text.patch +++ b/0094-Use-the-correct-indentation-for-the-term-help-text.patch @@ -1,7 +1,7 @@ From 8a59d6c44d946eac70ecbb7a9418c5d6801add8b Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:08:49 -0400 -Subject: [PATCH 094/238] Use the correct indentation for the term help text +Subject: [PATCH 094/243] Use the correct indentation for the term help text That is consistent with the menu help text --- @@ -24,5 +24,5 @@ index f57b7508a76..0ce59fdc3f0 100644 grub_print_message_indented (msg_formatted, 0, 0, term); grub_putcode ('\n', term); -- -2.17.0 +2.17.1 diff --git a/0095-Indent-menu-entries.patch b/0095-Indent-menu-entries.patch index bf91f14b..ac56be7c 100644 --- a/0095-Indent-menu-entries.patch +++ b/0095-Indent-menu-entries.patch @@ -1,7 +1,7 @@ From 018439ecfda2bc5049ccbfb0d6ab7fa047411a3b Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:30:55 -0400 -Subject: [PATCH 095/238] Indent menu entries +Subject: [PATCH 095/243] Indent menu entries --- grub-core/normal/menu_text.c | 3 ++- @@ -22,5 +22,5 @@ index 1062d64ee29..ecc60f99fc3 100644 grub_print_ucs4_menu (unicode_title, unicode_title + len, -- -2.17.0 +2.17.1 diff --git a/0096-Fix-margins.patch b/0096-Fix-margins.patch index 6a7833c0..47af035a 100644 --- a/0096-Fix-margins.patch +++ b/0096-Fix-margins.patch @@ -1,7 +1,7 @@ From 33481aa0e7897465ffd386101d6f3eda6e3bbac0 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:59:36 -0400 -Subject: [PATCH 096/238] Fix margins +Subject: [PATCH 096/243] Fix margins --- grub-core/normal/menu_text.c | 8 +++----- @@ -33,5 +33,5 @@ index ecc60f99fc3..0e43f2c10cc 100644 - geo->timeout_lines /* timeout */ - 1 /* empty final line */; -- -2.17.0 +2.17.1 diff --git a/0097-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch b/0097-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch index b2c25a51..3df66880 100644 --- a/0097-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch +++ b/0097-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch @@ -1,7 +1,7 @@ From ea032bd4a6cb66929da61477b1759e136c975189 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 21 Jun 2013 14:44:08 -0400 -Subject: [PATCH 097/238] Use -2 instead of -1 for our right-hand margin, so +Subject: [PATCH 097/243] Use -2 instead of -1 for our right-hand margin, so linewrapping works (#976643). Signed-off-by: Peter Jones @@ -23,5 +23,5 @@ index 0e43f2c10cc..537d4bf86ff 100644 geo->first_entry_y = 3; /* three empty lines*/ -- -2.17.0 +2.17.1 diff --git a/0098-Use-linux16-when-appropriate-880840.patch b/0098-Use-linux16-when-appropriate-880840.patch index 8427939a..c3324f65 100644 --- a/0098-Use-linux16-when-appropriate-880840.patch +++ b/0098-Use-linux16-when-appropriate-880840.patch @@ -1,7 +1,7 @@ From 8e1957d59e7e72850cbac7e779ddf22ca23c250d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 28 Oct 2013 10:05:07 -0400 -Subject: [PATCH 098/238] Use linux16 when appropriate (#880840) +Subject: [PATCH 098/243] Use linux16 when appropriate (#880840) The kernel group really would prefer that we use the 16 bit entry point on x86 bios machines. @@ -48,5 +48,5 @@ index a3d9711d607..f3bf6acd856 100644 fi fi -- -2.17.0 +2.17.1 diff --git a/0099-Enable-pager-by-default.-985860.patch b/0099-Enable-pager-by-default.-985860.patch index 77997f6f..cfbdf83e 100644 --- a/0099-Enable-pager-by-default.-985860.patch +++ b/0099-Enable-pager-by-default.-985860.patch @@ -1,7 +1,7 @@ From 7466f51a0012ebdd8be07cfc0e63d50e0e79560d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 28 Oct 2013 10:09:27 -0400 -Subject: [PATCH 099/238] Enable pager by default. (#985860) +Subject: [PATCH 099/243] Enable pager by default. (#985860) Signed-off-by: Peter Jones --- @@ -22,5 +22,5 @@ index 93a90233ead..858b526c925 100644 load_env fi -- -2.17.0 +2.17.1 diff --git a/0100-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch b/0100-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch index a7193613..ab61cc34 100644 --- a/0100-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch +++ b/0100-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch @@ -1,7 +1,7 @@ From 7a97d9621a145cbd04111970fea04c34433f900c Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 28 Oct 2013 10:13:27 -0400 -Subject: [PATCH 100/238] F10 doesn't work on serial, so don't tell the user to +Subject: [PATCH 100/243] F10 doesn't work on serial, so don't tell the user to hit it (#987443) Signed-off-by: Peter Jones @@ -23,5 +23,5 @@ index 537d4bf86ff..452d55bf9ff 100644 STANDARD_MARGIN, STANDARD_MARGIN, term, dry_run); -- -2.17.0 +2.17.1 diff --git a/0101-Don-t-say-GNU-Linux-in-generated-menus.patch b/0101-Don-t-say-GNU-Linux-in-generated-menus.patch index aaf22c43..1789f974 100644 --- a/0101-Don-t-say-GNU-Linux-in-generated-menus.patch +++ b/0101-Don-t-say-GNU-Linux-in-generated-menus.patch @@ -1,7 +1,7 @@ From 45877a77f50eecd0b7fd3ba1aec0d4398a3b6a20 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 14 Mar 2011 14:27:42 -0400 -Subject: [PATCH 101/238] Don't say "GNU/Linux" in generated menus. +Subject: [PATCH 101/243] Don't say "GNU/Linux" in generated menus. --- util/grub.d/10_linux.in | 4 ++-- @@ -41,5 +41,5 @@ index c002fc9f946..54f1ec8a2fd 100644 fi -- -2.17.0 +2.17.1 diff --git a/0102-Don-t-draw-a-border-around-the-menu.patch b/0102-Don-t-draw-a-border-around-the-menu.patch index 6bde1183..f501d126 100644 --- a/0102-Don-t-draw-a-border-around-the-menu.patch +++ b/0102-Don-t-draw-a-border-around-the-menu.patch @@ -1,7 +1,7 @@ From c28a3053e96859000df5ff1d48c9a560d47c0470 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 16:47:33 -0400 -Subject: [PATCH 102/238] Don't draw a border around the menu +Subject: [PATCH 102/243] Don't draw a border around the menu It looks cleaner without it. --- @@ -70,5 +70,5 @@ index 452d55bf9ff..1ed2bd92cf8 100644 grub_term_highlight_color = old_color_highlight; geo->timeout_y = geo->first_entry_y + geo->num_entries -- -2.17.0 +2.17.1 diff --git a/0103-Use-the-standard-margin-for-the-timeout-string.patch b/0103-Use-the-standard-margin-for-the-timeout-string.patch index 44ef4798..5cfcf0c9 100644 --- a/0103-Use-the-standard-margin-for-the-timeout-string.patch +++ b/0103-Use-the-standard-margin-for-the-timeout-string.patch @@ -1,7 +1,7 @@ From 93018f5d1727eb58dead129f150a36080c22530a Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 10:52:32 -0400 -Subject: [PATCH 103/238] Use the standard margin for the timeout string +Subject: [PATCH 103/243] Use the standard margin for the timeout string So that it aligns with the other messages --- @@ -39,5 +39,5 @@ index 1ed2bd92cf8..7681f7d2893 100644 } -- -2.17.0 +2.17.1 diff --git a/0104-Add-.eh_frame-to-list-of-relocations-stripped.patch b/0104-Add-.eh_frame-to-list-of-relocations-stripped.patch index de0a2fc0..6b6f9949 100644 --- a/0104-Add-.eh_frame-to-list-of-relocations-stripped.patch +++ b/0104-Add-.eh_frame-to-list-of-relocations-stripped.patch @@ -1,7 +1,7 @@ From c626121f38adf6fcd39a5f69249c650b4b52c10d Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Mon, 13 Jan 2014 21:50:59 -0500 -Subject: [PATCH 104/238] Add .eh_frame to list of relocations stripped +Subject: [PATCH 104/243] Add .eh_frame to list of relocations stripped --- conf/Makefile.common | 2 +- @@ -21,5 +21,5 @@ index 311da61c6c5..044ab3abe88 100644 CFLAGS_MODULE = $(CFLAGS_PLATFORM) -ffreestanding LDFLAGS_MODULE = $(LDFLAGS_PLATFORM) -nostdlib $(TARGET_LDFLAGS_OLDMAGIC) -Wl,-r,-d -- -2.17.0 +2.17.1 diff --git a/0105-Make-10_linux-work-with-our-changes-for-linux16-and-.patch b/0105-Make-10_linux-work-with-our-changes-for-linux16-and-.patch index 3c4fb2f2..f36877c9 100644 --- a/0105-Make-10_linux-work-with-our-changes-for-linux16-and-.patch +++ b/0105-Make-10_linux-work-with-our-changes-for-linux16-and-.patch @@ -1,7 +1,7 @@ From 59275c83e7a303c63379d37ba21aa39a3c3b7203 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jan 2014 13:12:23 -0500 -Subject: [PATCH 105/238] Make 10_linux work with our changes for linux16 and +Subject: [PATCH 105/243] Make 10_linux work with our changes for linux16 and linuxefi on aarch64 Signed-off-by: Peter Jones @@ -81,5 +81,5 @@ index ef52cf3dbbb..191aebe80bb 100644 for i in "${dirname}/config-${version}" "${dirname}/config-${alt_version}" "/etc/kernels/kernel-config-${version}" ; do if test -e "${i}" ; then -- -2.17.0 +2.17.1 diff --git a/0106-Don-t-print-during-fdt-loading-method.patch b/0106-Don-t-print-during-fdt-loading-method.patch index d8777ea5..ae968587 100644 --- a/0106-Don-t-print-during-fdt-loading-method.patch +++ b/0106-Don-t-print-during-fdt-loading-method.patch @@ -1,7 +1,7 @@ From aedf2aceb354ab7bf28bbf70d0a4b505c0adcfdf Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jan 2014 16:15:46 -0500 -Subject: [PATCH 106/238] Don't print during fdt loading method. +Subject: [PATCH 106/243] Don't print during fdt loading method. Signed-off-by: Peter Jones --- @@ -23,5 +23,5 @@ index 191aebe80bb..452a9f69d28 100644 EOF fi -- -2.17.0 +2.17.1 diff --git a/0107-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch b/0107-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch index 2ed85e94..bb47b23d 100644 --- a/0107-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch +++ b/0107-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch @@ -1,7 +1,7 @@ From f2790b1f7c8efcd5589c8fcdaca51b548ab9825c Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Mon, 30 Jun 2014 14:16:46 -0400 -Subject: [PATCH 107/238] Don't munge raw spaces when we're doing our cmdline +Subject: [PATCH 107/243] Don't munge raw spaces when we're doing our cmdline escaping (#923374) Signed-off-by: Peter Jones @@ -32,5 +32,5 @@ index 0a5b2afb94b..970ea868c14 100644 { *buf++ = *c++; -- -2.17.0 +2.17.1 diff --git a/0108-Don-t-require-a-password-to-boot-entries-generated-b.patch b/0108-Don-t-require-a-password-to-boot-entries-generated-b.patch index 14d965ca..e7847d65 100644 --- a/0108-Don-t-require-a-password-to-boot-entries-generated-b.patch +++ b/0108-Don-t-require-a-password-to-boot-entries-generated-b.patch @@ -1,7 +1,7 @@ From 205a7844bea4d849dc24f24b5fc96f6040d5e2b9 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 11 Feb 2014 11:14:50 -0500 -Subject: [PATCH 108/238] Don't require a password to boot entries generated by +Subject: [PATCH 108/243] Don't require a password to boot entries generated by grub-mkconfig. When we set a password, we just want that to mean you can't /edit/ an entry. @@ -27,5 +27,5 @@ index 452a9f69d28..79a747ebd4d 100644 if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then OS="$(sed 's, release .*$,,g' /etc/system-release)" -- -2.17.0 +2.17.1 diff --git a/0109-Don-t-emit-Booting-.-message.patch b/0109-Don-t-emit-Booting-.-message.patch index f9919aa9..b83bf626 100644 --- a/0109-Don-t-emit-Booting-.-message.patch +++ b/0109-Don-t-emit-Booting-.-message.patch @@ -1,7 +1,7 @@ From c986c38f790881be0b9c5b0acd8d3b106412a5f1 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 18 Feb 2014 09:37:49 -0500 -Subject: [PATCH 109/238] Don't emit "Booting ..." message. +Subject: [PATCH 109/243] Don't emit "Booting ..." message. UI team still hates this stuff, so we're disabling it for RHEL 7. @@ -48,5 +48,5 @@ index cdf3590a364..5785f67ee1c 100644 errs_before = grub_err_printed_errors; -- -2.17.0 +2.17.1 diff --git a/0110-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch b/0110-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch index ad559738..5102fcb6 100644 --- a/0110-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch +++ b/0110-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch @@ -1,7 +1,7 @@ From dcf3b9c590f00e33f773de68ac4ebd55ca4f6e90 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 4 Mar 2014 11:00:23 -0500 -Subject: [PATCH 110/238] Replace a lot of man pages with slightly nicer ones. +Subject: [PATCH 110/243] Replace a lot of man pages with slightly nicer ones. Replace a bunch of machine generated ones with ones that look nicer. --- @@ -1959,5 +1959,5 @@ index 00000000000..37ea2dd5eaa +.SH SEE ALSO +.BR "info grub" -- -2.17.0 +2.17.1 diff --git a/0111-use-fw_path-prefix-when-fallback-searching-for-grub-.patch b/0111-use-fw_path-prefix-when-fallback-searching-for-grub-.patch index b94bca06..f5bd181a 100644 --- a/0111-use-fw_path-prefix-when-fallback-searching-for-grub-.patch +++ b/0111-use-fw_path-prefix-when-fallback-searching-for-grub-.patch @@ -1,7 +1,7 @@ From 24865a88781aef2a6a54433b5b383219108f54fa Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Wed, 19 Feb 2014 15:58:43 -0500 -Subject: [PATCH 111/238] use fw_path prefix when fallback searching for grub +Subject: [PATCH 111/243] use fw_path prefix when fallback searching for grub config When PXE booting via UEFI firmware, grub was searching for grub.cfg @@ -41,5 +41,5 @@ index 0ce59fdc3f0..a3713efcd90 100644 { grub_size_t config_len; -- -2.17.0 +2.17.1 diff --git a/0112-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch b/0112-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch index 15362f3e..fb335b2d 100644 --- a/0112-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch +++ b/0112-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch @@ -1,7 +1,7 @@ From d4cd9aa8695ab9448da41f756553beb75bffee46 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 6 Mar 2014 11:51:33 -0500 -Subject: [PATCH 112/238] Try mac/guid/etc before grub.cfg on tftp config +Subject: [PATCH 112/243] Try mac/guid/etc before grub.cfg on tftp config files. Signed-off-by: Peter Jones @@ -111,5 +111,5 @@ index a3713efcd90..7d9c4f09b9b 100644 else grub_enter_normal_mode (argv[0]); -- -2.17.0 +2.17.1 diff --git a/0113-Fix-convert-function-to-support-NVMe-devices.patch b/0113-Fix-convert-function-to-support-NVMe-devices.patch index 68d49cfe..5bfaa53f 100644 --- a/0113-Fix-convert-function-to-support-NVMe-devices.patch +++ b/0113-Fix-convert-function-to-support-NVMe-devices.patch @@ -1,7 +1,7 @@ From 397f179c26aeddf3fe452c62aa404459889835fc Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 18 Feb 2014 11:34:00 -0500 -Subject: [PATCH 113/238] Fix convert function to support NVMe devices +Subject: [PATCH 113/243] Fix convert function to support NVMe devices This is adapted from the patch at https://bugzilla.redhat.com/show_bug.cgi?id=1019660 , which is against @@ -55,5 +55,5 @@ index 847406fbab0..fa3460d6cd8 100644 return grub_util_devmapper_part_to_disk (&st, is_part, os_dev); -- -2.17.0 +2.17.1 diff --git a/0114-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch b/0114-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch index 58f3179b..948f1f8f 100644 --- a/0114-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch +++ b/0114-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch @@ -1,7 +1,7 @@ From 4291f418c3304f0f379467e87ce5892853cc16c7 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Mon, 10 Feb 2014 16:13:10 -0500 -Subject: [PATCH 114/238] Switch to use APM Mustang device tree, for hardware +Subject: [PATCH 114/243] Switch to use APM Mustang device tree, for hardware testing. Signed-off-by: David A. Marlin @@ -25,5 +25,5 @@ index 79a747ebd4d..462b461ff49 100644 fi done -- -2.17.0 +2.17.1 diff --git a/0115-Use-the-default-device-tree-from-the-grub-default-fi.patch b/0115-Use-the-default-device-tree-from-the-grub-default-fi.patch index d883bde8..b7979ba0 100644 --- a/0115-Use-the-default-device-tree-from-the-grub-default-fi.patch +++ b/0115-Use-the-default-device-tree-from-the-grub-default-fi.patch @@ -1,7 +1,7 @@ From 5111bdda0d0a21ab02f6c9aa441a32cd02c6bc3f Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Wed, 12 Feb 2014 14:54:04 -0500 -Subject: [PATCH 115/238] Use the default device tree from the grub default +Subject: [PATCH 115/243] Use the default device tree from the grub default file instead of hardcoding a value. @@ -42,5 +42,5 @@ index 462b461ff49..a9692a0c2a2 100644 fi done -- -2.17.0 +2.17.1 diff --git a/0116-reopen-SNP-protocol-for-exclusive-use-by-grub.patch b/0116-reopen-SNP-protocol-for-exclusive-use-by-grub.patch index b85d9a18..c8826065 100644 --- a/0116-reopen-SNP-protocol-for-exclusive-use-by-grub.patch +++ b/0116-reopen-SNP-protocol-for-exclusive-use-by-grub.patch @@ -1,7 +1,7 @@ From 0ff5bf3deefdb17dbadb51a11acc50b96e2ed797 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Sat, 15 Feb 2014 15:10:22 -0500 -Subject: [PATCH 116/238] reopen SNP protocol for exclusive use by grub +Subject: [PATCH 116/243] reopen SNP protocol for exclusive use by grub --- grub-core/net/drivers/efi/efinet.c | 16 ++++++++++++++++ @@ -42,5 +42,5 @@ index 5388f952ba9..ea0e0ca360e 100644 } } -- -2.17.0 +2.17.1 diff --git a/0117-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch b/0117-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch index befbc8b0..be74aae7 100644 --- a/0117-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch +++ b/0117-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch @@ -1,7 +1,7 @@ From 58fba65b7e339d4c7279e4ca88937d9501275169 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 4 Mar 2016 15:13:59 -0500 -Subject: [PATCH 117/238] Revert "reopen SNP protocol for exclusive use by +Subject: [PATCH 117/243] Revert "reopen SNP protocol for exclusive use by grub" This reverts commit a3f2c756ce34c9666bddef35e3b3b85ccecdcffc , which is @@ -51,5 +51,5 @@ index ea0e0ca360e..5388f952ba9 100644 } } -- -2.17.0 +2.17.1 diff --git a/0118-Add-grub_util_readlink.patch b/0118-Add-grub_util_readlink.patch index ebf3407c..1ae5d47a 100644 --- a/0118-Add-grub_util_readlink.patch +++ b/0118-Add-grub_util_readlink.patch @@ -1,7 +1,7 @@ From 76baa996f73eea47f7bdc41461efeee204626e2d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 3 Sep 2014 10:01:03 -0400 -Subject: [PATCH 118/238] Add grub_util_readlink() +Subject: [PATCH 118/243] Add grub_util_readlink() Add grub_util_readlink(). This requires pulling in stat and readlink from gnulib, which pulls in stat and related headers, but after that the @@ -3730,5 +3730,5 @@ index 00000000000..9852778f9a5 + REPLACE_LOCALTIME=0; AC_SUBST([REPLACE_LOCALTIME]) +]) -- -2.17.0 +2.17.1 diff --git a/0119-Make-editenv-chase-symlinks-including-those-across-d.patch b/0119-Make-editenv-chase-symlinks-including-those-across-d.patch index 8dab5ed3..c1078560 100644 --- a/0119-Make-editenv-chase-symlinks-including-those-across-d.patch +++ b/0119-Make-editenv-chase-symlinks-including-those-across-d.patch @@ -1,7 +1,7 @@ From fd1a89c8bef603ec33937f122ae25013a724601a Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 3 Sep 2014 10:38:00 -0400 -Subject: [PATCH 119/238] Make editenv chase symlinks including those across +Subject: [PATCH 119/243] Make editenv chase symlinks including those across devices. This lets us make /boot/grub2/grubenv a symlink to @@ -102,5 +102,5 @@ index c6f8d2298c3..d8d1dad6ab9 100644 + free (rename_target); } -- -2.17.0 +2.17.1 diff --git a/0120-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch b/0120-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch index d52f79b5..e434796d 100644 --- a/0120-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch +++ b/0120-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch @@ -1,7 +1,7 @@ From c8d93b9e27e9cbf51e91f6cc99abbcb7b68189ce Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Sep 2014 14:23:23 -0400 -Subject: [PATCH 120/238] Generate OS and CLASS in 10_linux from +Subject: [PATCH 120/243] Generate OS and CLASS in 10_linux from /etc/os-release This makes us use pretty names in the titles we generate in @@ -29,5 +29,5 @@ index a9692a0c2a2..c6627268cca 100644 OS="${GRUB_DISTRIBUTOR}" CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr 'A-Z' 'a-z' | cut -d' ' -f1|LC_ALL=C sed 's,[^[:alnum:]_],_,g') ${CLASS}" -- -2.17.0 +2.17.1 diff --git a/0121-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch b/0121-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch index 32a52a7f..ea4e9662 100644 --- a/0121-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch +++ b/0121-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch @@ -1,7 +1,7 @@ From 974241c42b03f3ccb6a5d0eb453283e370da9848 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Sep 2014 15:52:08 -0400 -Subject: [PATCH 121/238] Minimize the sort ordering for .debug and -rescue- +Subject: [PATCH 121/243] Minimize the sort ordering for .debug and -rescue- kernels. Resolves: rhbz#1065360 @@ -30,5 +30,5 @@ index cf35e417470..10fabee5e14 100644 version_test_numeric "$version_test_gt_a" "$version_test_gt_cmp" "$version_test_gt_b" return "$?" -- -2.17.0 +2.17.1 diff --git a/0122-Load-arm-with-SB-enabled.patch b/0122-Load-arm-with-SB-enabled.patch index f8f21a99..cbd8a666 100644 --- a/0122-Load-arm-with-SB-enabled.patch +++ b/0122-Load-arm-with-SB-enabled.patch @@ -1,7 +1,7 @@ From edfc2b0952b1eacf95188e53167cc038e5ea0129 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 18 Sep 2014 11:26:14 -0400 -Subject: [PATCH 122/238] Load arm with SB enabled. +Subject: [PATCH 122/243] Load arm with SB enabled. Make sure we actually try to validate secure boot on this platform (even though we're not shipping it enabled by default.) @@ -425,5 +425,5 @@ index 00000000000..d9ede36773b + +#endif /* ! GRUB_EFI_LINUX_HEADER */ -- -2.17.0 +2.17.1 diff --git a/0123-Try-prefix-if-fw_path-doesn-t-work.patch b/0123-Try-prefix-if-fw_path-doesn-t-work.patch index 37b8d862..df9c0283 100644 --- a/0123-Try-prefix-if-fw_path-doesn-t-work.patch +++ b/0123-Try-prefix-if-fw_path-doesn-t-work.patch @@ -1,7 +1,7 @@ From 3846b040f1050f246e1e975ee88f22c687ae04bf Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 3 Oct 2014 11:08:03 -0400 -Subject: [PATCH 123/238] Try $prefix if $fw_path doesn't work. +Subject: [PATCH 123/243] Try $prefix if $fw_path doesn't work. Related: rhbz#1148652 @@ -207,5 +207,5 @@ index 7d9c4f09b9b..b69f9e738fa 100644 } -- -2.17.0 +2.17.1 diff --git a/0124-Update-info-with-grub.cfg-netboot-selection-order-11.patch b/0124-Update-info-with-grub.cfg-netboot-selection-order-11.patch index a236d0c6..1c2e3e31 100644 --- a/0124-Update-info-with-grub.cfg-netboot-selection-order-11.patch +++ b/0124-Update-info-with-grub.cfg-netboot-selection-order-11.patch @@ -1,7 +1,7 @@ From d4b4184078610a3639fa1e0e463679c424496c3b Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Mon, 16 Mar 2015 16:34:51 -0400 -Subject: [PATCH 124/238] Update info with grub.cfg netboot selection order +Subject: [PATCH 124/243] Update info with grub.cfg netboot selection order (#1148650) Added documentation to the grub info page that specifies the order @@ -66,5 +66,5 @@ index 6fdd2a041f7..15a90b26e4d 100644 @samp{(tftp)} device. -- -2.17.0 +2.17.1 diff --git a/0125-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch b/0125-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch index d8974b12..eb214ab6 100644 --- a/0125-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch +++ b/0125-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch @@ -1,7 +1,7 @@ From ce125cafc1e94bf70f2a3dbb545960bd8dd23a2f Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Mon, 16 Mar 2015 14:14:19 -0400 -Subject: [PATCH 125/238] Use Distribution Package Sort for grub2-mkconfig +Subject: [PATCH 125/243] Use Distribution Package Sort for grub2-mkconfig (#1124074) Users reported that newly installed kernels on their systems installed @@ -447,5 +447,5 @@ index 00000000000..8ce21488448 +.SH SEE ALSO +.BR "info grub" -- -2.17.0 +2.17.1 diff --git a/0126-Handle-rssd-storage-devices.patch b/0126-Handle-rssd-storage-devices.patch index 0e870b66..a6ffd49b 100644 --- a/0126-Handle-rssd-storage-devices.patch +++ b/0126-Handle-rssd-storage-devices.patch @@ -1,7 +1,7 @@ From 1956a2192ac0a8421ee83bf77fdf223f2be0bdfb Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 30 Jun 2015 15:50:41 -0400 -Subject: [PATCH 126/238] Handle rssd storage devices. +Subject: [PATCH 126/243] Handle rssd storage devices. Resolves: rhbz#1087962 @@ -35,5 +35,5 @@ index 90d92d3ad5c..6d9f4e5faa2 100644 if ((strncmp ("loop", p, 4) == 0) && p[4] >= '0' && p[4] <= '9') { -- -2.17.0 +2.17.1 diff --git a/0127-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch b/0127-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch index ff9359ba..8676032c 100644 --- a/0127-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch +++ b/0127-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch @@ -1,7 +1,7 @@ From 5f89c77c7cff17c931f1ea52af0c39df8ab28ac9 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 27 Oct 2014 09:22:55 -0400 -Subject: [PATCH 127/238] Try to emit linux16/initrd16 and linuxefi/initrdefi +Subject: [PATCH 127/243] Try to emit linux16/initrd16 and linuxefi/initrdefi in 30-os_prober. Resolves: rhbz#1108296 @@ -73,5 +73,5 @@ index 9b8f5968e2d..dc98eace934 100644 fi cat << EOF -- -2.17.0 +2.17.1 diff --git a/0128-Make-grub2-mkconfig-construct-titles-that-look-like-.patch b/0128-Make-grub2-mkconfig-construct-titles-that-look-like-.patch index d4fc416d..6b086789 100644 --- a/0128-Make-grub2-mkconfig-construct-titles-that-look-like-.patch +++ b/0128-Make-grub2-mkconfig-construct-titles-that-look-like-.patch @@ -1,7 +1,7 @@ From c7ae420d095ccec20481c25b14773ab2fce658b5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 28 Apr 2015 11:15:03 -0400 -Subject: [PATCH 128/238] Make grub2-mkconfig construct titles that look like +Subject: [PATCH 128/243] Make grub2-mkconfig construct titles that look like the ones we want elsewhere. Resolves: rhbz#1215839 @@ -50,5 +50,5 @@ index c6627268cca..1215241859b 100644 echo "menuentry '$(echo "$title" | grub_quote)' ${CLASS} \$menuentry_id_option 'gnulinux-$version-$type-$boot_device_id' {" | sed "s/^/$submenu_indentation/" else -- -2.17.0 +2.17.1 diff --git a/0129-Add-friendly-grub2-password-config-tool-985962.patch b/0129-Add-friendly-grub2-password-config-tool-985962.patch index 73e88419..bd194649 100644 --- a/0129-Add-friendly-grub2-password-config-tool-985962.patch +++ b/0129-Add-friendly-grub2-password-config-tool-985962.patch @@ -1,7 +1,7 @@ From 68f21f5ebebc23a6d8512631f2a1d474afcccd43 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Thu, 25 Jun 2015 11:13:11 -0400 -Subject: [PATCH 129/238] Add friendly grub2 password config tool (#985962) +Subject: [PATCH 129/243] Add friendly grub2 password config tool (#985962) Provided a tool for users to reset the grub2 root user password without having to alter the grub.cfg. The hashed password now @@ -271,5 +271,5 @@ index 00000000000..db2f44bfb78 +fi +EOF -- -2.17.0 +2.17.1 diff --git a/0130-Make-grub2-mkconfig-construct-titles-that-look-like-.patch b/0130-Make-grub2-mkconfig-construct-titles-that-look-like-.patch index 920d8f3d..fe280cd2 100644 --- a/0130-Make-grub2-mkconfig-construct-titles-that-look-like-.patch +++ b/0130-Make-grub2-mkconfig-construct-titles-that-look-like-.patch @@ -1,7 +1,7 @@ From 7a7644507e4d953ea8f8d1d7133622a72a2168f5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 28 Apr 2015 11:15:03 -0400 -Subject: [PATCH 130/238] Make grub2-mkconfig construct titles that look like +Subject: [PATCH 130/243] Make grub2-mkconfig construct titles that look like the ones we want elsewhere. Resolves: rhbz#1215839 @@ -63,5 +63,5 @@ index 1215241859b..584ad1f4639 100644 replacement_title="$(echo "Advanced options for ${OS}" | sed 's,>,>>,g')>$(echo "$title" | sed 's,>,>>,g')" quoted="$(echo "$GRUB_ACTUAL_DEFAULT" | grub_quote)" -- -2.17.0 +2.17.1 diff --git a/0131-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch b/0131-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch index 2d13ea95..98e9536b 100644 --- a/0131-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch +++ b/0131-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch @@ -1,7 +1,7 @@ From 6f892038567f1706fdde819f5f226ec4cacbea47 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 3 Aug 2015 11:46:42 -0400 -Subject: [PATCH 131/238] Try to make sure configure.ac and grub-rpm-sort play +Subject: [PATCH 131/243] Try to make sure configure.ac and grub-rpm-sort play nice. Apparently the test for whether to use grub-rpm-sort and also the @@ -57,5 +57,5 @@ index 954844d2d95..9c410eae493 100644 version_test_numeric () -- -2.17.0 +2.17.1 diff --git a/0132-tcp-add-window-scaling-support.patch b/0132-tcp-add-window-scaling-support.patch index 5bf9a502..8d4f66ee 100644 --- a/0132-tcp-add-window-scaling-support.patch +++ b/0132-tcp-add-window-scaling-support.patch @@ -1,7 +1,7 @@ From 71e31c279c07f9f51f2a482b70b40b7deed69a69 Mon Sep 17 00:00:00 2001 From: Josef Bacik Date: Wed, 12 Aug 2015 08:57:55 -0700 -Subject: [PATCH 132/238] tcp: add window scaling support +Subject: [PATCH 132/243] tcp: add window scaling support Sometimes we have to provision boxes across regions, such as California to Sweden. The http server has a 10 minute timeout, so if we can't get our 250mb @@ -86,5 +86,5 @@ index e8ad34b84d4..7d4b822626d 100644 tcp_socket_register (socket); -- -2.17.0 +2.17.1 diff --git a/0133-efinet-retransmit-if-our-device-is-busy.patch b/0133-efinet-retransmit-if-our-device-is-busy.patch index bbd003e1..32b3c1d2 100644 --- a/0133-efinet-retransmit-if-our-device-is-busy.patch +++ b/0133-efinet-retransmit-if-our-device-is-busy.patch @@ -1,7 +1,7 @@ From d09f32622f6fc247dd88f731c34be10395785d8d Mon Sep 17 00:00:00 2001 From: Josef Bacik Date: Mon, 31 Aug 2015 13:34:35 -0400 -Subject: [PATCH 133/238] efinet: retransmit if our device is busy +Subject: [PATCH 133/243] efinet: retransmit if our device is busy When I fixed the txbuf handling I ripped out the retransmission code since it was flooding our network when we had the buggy behavior. Turns out this was too @@ -44,5 +44,5 @@ index 5388f952ba9..3f112438a93 100644 return grub_error (GRUB_ERR_TIMEOUT, N_("couldn't send network packet")); -- -2.17.0 +2.17.1 diff --git a/0134-Be-more-aggro-about-actually-using-the-configured-ne.patch b/0134-Be-more-aggro-about-actually-using-the-configured-ne.patch index 275e50e7..ff912799 100644 --- a/0134-Be-more-aggro-about-actually-using-the-configured-ne.patch +++ b/0134-Be-more-aggro-about-actually-using-the-configured-ne.patch @@ -1,7 +1,7 @@ From 8ece44c2c8f88f531ac9a679f65a263e7b6d2dba Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 11 Sep 2015 17:30:49 -0400 -Subject: [PATCH 134/238] Be more aggro about actually using the *configured* +Subject: [PATCH 134/243] Be more aggro about actually using the *configured* network device. Right now we use any SNP device with the same mac+IP block, but when @@ -220,5 +220,5 @@ index c7c9f0e1db1..97b9aa7a4d7 100644 #define GRUB_EFI_DEVICE_PATH_SUBTYPE(dp) ((dp)->subtype) #define GRUB_EFI_DEVICE_PATH_LENGTH(dp) ((dp)->length) -- -2.17.0 +2.17.1 diff --git a/0135-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch b/0135-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch index c81137c5..c76a49f4 100644 --- a/0135-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch +++ b/0135-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch @@ -1,7 +1,7 @@ From 82b9fdcbbc339c36842c625203fc2b1f22a86c9e Mon Sep 17 00:00:00 2001 From: RHEL Ninjas Date: Fri, 25 Sep 2015 16:24:23 +0900 -Subject: [PATCH 135/238] efinet: add filter for the first exclusive reopen of +Subject: [PATCH 135/243] efinet: add filter for the first exclusive reopen of SNP --- @@ -59,5 +59,5 @@ index a3ce4c67cce..b870d3f1938 100644 } } -- -2.17.0 +2.17.1 diff --git a/0136-Fix-security-issue-when-reading-username-and-passwor.patch b/0136-Fix-security-issue-when-reading-username-and-passwor.patch index 6dda9cd2..5d8a8ff1 100644 --- a/0136-Fix-security-issue-when-reading-username-and-passwor.patch +++ b/0136-Fix-security-issue-when-reading-username-and-passwor.patch @@ -1,7 +1,7 @@ From 9961e63642244617b697d93bbc49379e23b6839d Mon Sep 17 00:00:00 2001 From: Hector Marco-Gisbert Date: Fri, 13 Nov 2015 16:21:09 +0100 -Subject: [PATCH 136/238] Fix security issue when reading username and password +Subject: [PATCH 136/243] Fix security issue when reading username and password This patch fixes two integer underflows at: * grub-core/lib/crypto.c @@ -43,5 +43,5 @@ index 6be678c0de1..c35ce972473 100644 if (cur_len) { -- -2.17.0 +2.17.1 diff --git a/0137-Warn-if-grub-password-will-not-be-read-1290803.patch b/0137-Warn-if-grub-password-will-not-be-read-1290803.patch index f58e9b7c..5335ffdb 100644 --- a/0137-Warn-if-grub-password-will-not-be-read-1290803.patch +++ b/0137-Warn-if-grub-password-will-not-be-read-1290803.patch @@ -1,7 +1,7 @@ From 056a956aea898f9d3ee34ecad9660addc3f3108c Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Mon, 22 Feb 2016 15:30:05 -0500 -Subject: [PATCH 137/238] Warn if grub password will not be read (#1290803) +Subject: [PATCH 137/243] Warn if grub password will not be read (#1290803) It is possible for a system to have never run grub-mkconfig and add the section that reads the user.cfg file which contains a user set GRUB @@ -27,5 +27,5 @@ index dd76f00fc0e..fb9d3a3b6f9 100644 + echo "Update your configuration with @grub_mkconfig@ to support this feature." +fi -- -2.17.0 +2.17.1 diff --git a/0138-Clean-up-grub-setpassword-documentation-1290799.patch b/0138-Clean-up-grub-setpassword-documentation-1290799.patch index 35f70642..3ccbfb31 100644 --- a/0138-Clean-up-grub-setpassword-documentation-1290799.patch +++ b/0138-Clean-up-grub-setpassword-documentation-1290799.patch @@ -1,7 +1,7 @@ From 92af2b24adb7371d8234c0b32ae716adf0b80d42 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Tue, 26 Jan 2016 10:28:35 -0500 -Subject: [PATCH 138/238] Clean up grub-setpassword documentation (#1290799) +Subject: [PATCH 138/243] Clean up grub-setpassword documentation (#1290799) The output for --help had some errors. Corrected those and polished the text to be a little easier to follow. Carried verbage over to man page @@ -54,5 +54,5 @@ index fb9d3a3b6f9..c8c0fa4199d 100644 Report bugs at https://bugzilla.redhat.com. EOF -- -2.17.0 +2.17.1 diff --git a/0139-Fix-locale-issue-in-grub-setpassword-1294243.patch b/0139-Fix-locale-issue-in-grub-setpassword-1294243.patch index ad974583..caa07ccd 100644 --- a/0139-Fix-locale-issue-in-grub-setpassword-1294243.patch +++ b/0139-Fix-locale-issue-in-grub-setpassword-1294243.patch @@ -1,7 +1,7 @@ From 373adc50cf9f09015e40ffd1bf79ab9f291f4fc2 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Fri, 29 Jan 2016 16:56:11 -0500 -Subject: [PATCH 139/238] Fix locale issue in grub-setpassword (#1294243) +Subject: [PATCH 139/243] Fix locale issue in grub-setpassword (#1294243) A shell substitution was expecting non-translated output to grab the hashed password and put it in the user.cfg file. Modified code to force @@ -26,5 +26,5 @@ index c8c0fa4199d..d7924af5192 100644 sed -e "s/PBKDF2 hash of your password is //" } -- -2.17.0 +2.17.1 diff --git a/0140-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch b/0140-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch index 384c4472..a1b210d8 100644 --- a/0140-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch +++ b/0140-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch @@ -1,7 +1,7 @@ From eab0520310030376f6295e0338e874bce10b0d5f Mon Sep 17 00:00:00 2001 From: Robert Elliott Date: Fri, 22 Jan 2016 13:32:30 +0100 -Subject: [PATCH 140/238] efiemu: Handle persistent RAM and unknown possible +Subject: [PATCH 140/243] efiemu: Handle persistent RAM and unknown possible future additions. (cherry picked from commit ae3b83a4d4df75a01198a2fed7542391e7c449e0) @@ -27,5 +27,5 @@ index 52a032f7b2e..92e7df7e501 100644 GRUB_EFI_PERSISTENT_MEMORY); default: -- -2.17.0 +2.17.1 diff --git a/0141-efiemu-Fix-compilation-failure.patch b/0141-efiemu-Fix-compilation-failure.patch index 1013755d..2bccb729 100644 --- a/0141-efiemu-Fix-compilation-failure.patch +++ b/0141-efiemu-Fix-compilation-failure.patch @@ -1,7 +1,7 @@ From 68bdf29eb6e376a3b4a817bbe7481efd12b8f9de Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Fri, 22 Jan 2016 14:10:30 +0100 -Subject: [PATCH 141/238] efiemu: Fix compilation failure +Subject: [PATCH 141/243] efiemu: Fix compilation failure (cherry picked from commit b6a03dfd327489d53ee07c6d7d593b99c7b7cb62) @@ -26,5 +26,5 @@ index 92e7df7e501..52a032f7b2e 100644 GRUB_EFI_PERSISTENT_MEMORY); default: -- -2.17.0 +2.17.1 diff --git a/0142-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch b/0142-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch index c1d1d7fe..00d6c94f 100644 --- a/0142-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch +++ b/0142-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch @@ -1,7 +1,7 @@ From df19c5ff9c9e716df0383e39992466304053c99d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 7 Apr 2016 10:58:06 -0400 -Subject: [PATCH 142/238] Revert "reopen SNP protocol for exclusive use by +Subject: [PATCH 142/243] Revert "reopen SNP protocol for exclusive use by grub" I *think* this should have been replaced by upstream's @@ -65,5 +65,5 @@ index b870d3f1938..a3ce4c67cce 100644 } } -- -2.17.0 +2.17.1 diff --git a/0143-Add-a-url-parser.patch b/0143-Add-a-url-parser.patch index eba0b98e..00e0926e 100644 --- a/0143-Add-a-url-parser.patch +++ b/0143-Add-a-url-parser.patch @@ -1,7 +1,7 @@ From 2f84b2e097ad9f6f7f06013f749251743eb32c2e Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jun 2016 16:18:44 -0400 -Subject: [PATCH 143/238] Add a url parser. +Subject: [PATCH 143/243] Add a url parser. This patch adds a url parser that can parse http, https, tftp, and tftps urls, and is easily extensible to handle more types. @@ -1020,5 +1020,5 @@ index 00000000000..a215fa27d0a + +#endif /* GRUB_URL_HEADER */ -- -2.17.0 +2.17.1 diff --git a/0144-efinet-and-bootp-add-support-for-dhcpv6.patch b/0144-efinet-and-bootp-add-support-for-dhcpv6.patch index 37980067..106f9593 100644 --- a/0144-efinet-and-bootp-add-support-for-dhcpv6.patch +++ b/0144-efinet-and-bootp-add-support-for-dhcpv6.patch @@ -1,7 +1,7 @@ From 48768b0295ad4d908cefd8e8fbee96a4dc2765f5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 8 Jun 2016 21:03:37 -0400 -Subject: [PATCH 144/238] efinet and bootp: add support for dhcpv6 +Subject: [PATCH 144/243] efinet and bootp: add support for dhcpv6 Signed-off-by: Peter Jones --- @@ -663,5 +663,5 @@ index 50d62ab0c8c..f8f3ec13acc 100644 grub_net_add_ipv4_local (struct grub_net_network_level_interface *inf, int mask); -- -2.17.0 +2.17.1 diff --git a/0145-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch b/0145-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch index da9a34a4..dbd90e16 100644 --- a/0145-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch +++ b/0145-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch @@ -1,7 +1,7 @@ From 764506b89942103c3a511d7933edef351fb594b8 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 23 Jun 2016 11:01:39 -0400 -Subject: [PATCH 145/238] Add grub-get-kernel-settings and use it in 10_linux +Subject: [PATCH 145/243] Add grub-get-kernel-settings and use it in 10_linux This patch adds grub-get-kernel-settings, which reads the system kernel installation configuration from /etc/sysconfig/kernel, and outputs @@ -299,5 +299,5 @@ index 584ad1f4639..c9bf223f273 100644 fi -- -2.17.0 +2.17.1 diff --git a/0146-Normalize-slashes-in-tftp-paths.patch b/0146-Normalize-slashes-in-tftp-paths.patch index c053b52c..9d09a73f 100644 --- a/0146-Normalize-slashes-in-tftp-paths.patch +++ b/0146-Normalize-slashes-in-tftp-paths.patch @@ -1,7 +1,7 @@ From 406402dfaecc62ede346793c9c7a0568dc71c131 Mon Sep 17 00:00:00 2001 From: Lenny Szubowicz Date: Mon, 29 Aug 2016 11:04:48 -0400 -Subject: [PATCH 146/238] Normalize slashes in tftp paths. +Subject: [PATCH 146/243] Normalize slashes in tftp paths. Some tftp servers do not handle multiple consecutive slashes correctly; this patch avoids sending tftp requests with non-normalized paths. @@ -54,5 +54,5 @@ index 1157524fc50..5ca0a96a6f6 100644 rrq += grub_strlen (filename) + 1; -- -2.17.0 +2.17.1 diff --git a/0147-Fix-malformed-tftp-packets.patch b/0147-Fix-malformed-tftp-packets.patch index a4b89f18..e7d44242 100644 --- a/0147-Fix-malformed-tftp-packets.patch +++ b/0147-Fix-malformed-tftp-packets.patch @@ -1,7 +1,7 @@ From 7d05a8298e6a54bfae0038841462443f21da3535 Mon Sep 17 00:00:00 2001 From: Mark Salter Date: Tue, 7 Mar 2017 18:26:17 -0500 -Subject: [PATCH 147/238] Fix malformed tftp packets +Subject: [PATCH 147/243] Fix malformed tftp packets 0088-Normalize-slashes-in-tftp-paths.patch collapses multiple contiguous slashes in a filename into one slash in the tftp packet filename field. @@ -31,5 +31,5 @@ index 5ca0a96a6f6..dcd82494309 100644 grub_strcpy (rrq, "octet"); rrqlen += grub_strlen ("octet") + 1; -- -2.17.0 +2.17.1 diff --git a/0148-Fix-race-in-EFI-validation.patch b/0148-Fix-race-in-EFI-validation.patch index 94b543c3..b3272f7f 100644 --- a/0148-Fix-race-in-EFI-validation.patch +++ b/0148-Fix-race-in-EFI-validation.patch @@ -1,7 +1,7 @@ From bf59d76ca82eb4eaa20a747f5890d09632ba93d0 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 14 Jul 2015 16:58:51 -0700 -Subject: [PATCH 148/238] Fix race in EFI validation +Subject: [PATCH 148/243] Fix race in EFI validation --- grub-core/loader/i386/efi/linux.c | 44 ++++++++++----------------------------- @@ -93,5 +93,5 @@ index e5b778577f9..7ccf32d9d45 100644 { grub_dl_unref (my_mod); -- -2.17.0 +2.17.1 diff --git a/0149-bz1374141-fix-incorrect-mask-for-ppc64.patch b/0149-bz1374141-fix-incorrect-mask-for-ppc64.patch index aad281db..64e2ea30 100644 --- a/0149-bz1374141-fix-incorrect-mask-for-ppc64.patch +++ b/0149-bz1374141-fix-incorrect-mask-for-ppc64.patch @@ -1,7 +1,7 @@ From 84a5f535949f590a8976c64c3d1fde08fe0f7464 Mon Sep 17 00:00:00 2001 From: Masahiro Matsuya Date: Sat, 29 Oct 2016 08:35:26 +0900 -Subject: [PATCH 149/238] bz1374141 fix incorrect mask for ppc64 +Subject: [PATCH 149/243] bz1374141 fix incorrect mask for ppc64 The netmask configured in firmware is not respected on ppc64 (big endian). When 255.255.252.0 is set as netmask in firmware, the following is the value of bootpath string in grub_ieee1275_parse_bootpath(). @@ -44,5 +44,5 @@ index 002446be1c3..3df75357a70 100644 if (gateway_addr.ipv4 != 0) -- -2.17.0 +2.17.1 diff --git a/0150-Use-device-part-of-chainloader-target-if-present.patch b/0150-Use-device-part-of-chainloader-target-if-present.patch index 5f1c8aec..0bd0a8df 100644 --- a/0150-Use-device-part-of-chainloader-target-if-present.patch +++ b/0150-Use-device-part-of-chainloader-target-if-present.patch @@ -1,7 +1,7 @@ From d426e20f8b41ebf114075dc4ffbcaf438ceb4b95 Mon Sep 17 00:00:00 2001 From: Raymund Will Date: Fri, 10 Apr 2015 01:45:02 -0400 -Subject: [PATCH 150/238] Use device part of chainloader target, if present. +Subject: [PATCH 150/243] Use device part of chainloader target, if present. Otherwise chainloading is restricted to '$root', which might not even be readable by EFI! @@ -33,5 +33,5 @@ index adc85636633..14ce6ddd7ad 100644 goto fail; -- -2.17.0 +2.17.1 diff --git a/0151-Add-secureboot-support-on-efi-chainloader.patch b/0151-Add-secureboot-support-on-efi-chainloader.patch index e9a9d3d9..4c2200f2 100644 --- a/0151-Add-secureboot-support-on-efi-chainloader.patch +++ b/0151-Add-secureboot-support-on-efi-chainloader.patch @@ -1,7 +1,7 @@ From bbf98517303e438cea398bb74306b6553c880ac3 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 6 Oct 2015 13:04:37 -0400 -Subject: [PATCH 151/238] Add secureboot support on efi chainloader +Subject: [PATCH 151/243] Add secureboot support on efi chainloader Expand the chainloader to be able to verify the image by means of shim lock protocol. The PE/COFF image is loaded and relocated by the @@ -796,5 +796,5 @@ index 7d44732d2c3..6e24dae2cb6 100644 { grub_uint32_t page_rva; -- -2.17.0 +2.17.1 diff --git a/0152-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch b/0152-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch index 240ccf6a..47d3984c 100644 --- a/0152-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch +++ b/0152-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch @@ -1,7 +1,7 @@ From 25ea5be888dcc92cd0b3cb7d34b381f5005f1e30 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 6 Oct 2015 16:09:25 -0400 -Subject: [PATCH 152/238] Make any of the loaders that link in efi mode honor +Subject: [PATCH 152/243] Make any of the loaders that link in efi mode honor secure boot. And in this case "honor" means "even if somebody does link this in, they @@ -490,5 +490,5 @@ index 10451384720..f7b4d29b0b3 100644 KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/env_private.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/err.h -- -2.17.0 +2.17.1 diff --git a/0153-Make-grub_fatal-also-backtrace.patch b/0153-Make-grub_fatal-also-backtrace.patch index ccbad8e6..619a5440 100644 --- a/0153-Make-grub_fatal-also-backtrace.patch +++ b/0153-Make-grub_fatal-also-backtrace.patch @@ -1,7 +1,7 @@ From eb1a27144476324a22561383a0a2e61aa327d2f5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 27 Jan 2016 09:22:42 -0500 -Subject: [PATCH 153/238] Make grub_fatal() also backtrace. +Subject: [PATCH 153/243] Make grub_fatal() also backtrace. --- grub-core/Makefile.core.def | 3 ++ @@ -171,5 +171,5 @@ index c3e03c7275c..c67273db3ae 100644 #include #include -- -2.17.0 +2.17.1 diff --git a/0154-Rework-linux-command.patch b/0154-Rework-linux-command.patch index 792f9f5f..d928ba0e 100644 --- a/0154-Rework-linux-command.patch +++ b/0154-Rework-linux-command.patch @@ -1,7 +1,7 @@ From 12312bfe1727a2992042436cb0f8c8ba1c69ee2f Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 16:12:39 -0700 -Subject: [PATCH 154/238] Rework linux command +Subject: [PATCH 154/243] Rework linux command We want a single buffer that contains the entire kernel image in order to perform a TPM measurement. Allocate one and copy the entire kernel into it @@ -103,5 +103,5 @@ index b2438547dd0..e4b8342f5d0 100644 grub_file_close (file); -- -2.17.0 +2.17.1 diff --git a/0155-Rework-linux16-command.patch b/0155-Rework-linux16-command.patch index 8355cfe5..2bd69ba4 100644 --- a/0155-Rework-linux16-command.patch +++ b/0155-Rework-linux16-command.patch @@ -1,7 +1,7 @@ From 24250bbb84f8817462426c46b255d875de627bf1 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 16:20:58 -0700 -Subject: [PATCH 155/238] Rework linux16 command +Subject: [PATCH 155/243] Rework linux16 command We want a single buffer that contains the entire kernel image in order to perform a TPM measurement. Allocate one and copy the entire kernel int it @@ -97,5 +97,5 @@ index 91283157e30..b864e540333 100644 grub_file_close (file); -- -2.17.0 +2.17.1 diff --git a/0156-Make-grub-editenv-build-again.patch b/0156-Make-grub-editenv-build-again.patch index 227119d5..b559165b 100644 --- a/0156-Make-grub-editenv-build-again.patch +++ b/0156-Make-grub-editenv-build-again.patch @@ -1,7 +1,7 @@ From ebe69b2682b5b3029d8ea503f12134ee81c4b2ce Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 4 Mar 2016 16:29:13 -0500 -Subject: [PATCH 156/238] Make grub-editenv build again. +Subject: [PATCH 156/243] Make grub-editenv build again. 36212460d3565b18439a3a8130b28e6c97702c6a split how some of the mkimage utility functions are defined, and they wind up being linked into @@ -26,5 +26,5 @@ index ed27351eb47..38cdf4ccc09 100644 common = util/config.c; common = util/resolve.c; -- -2.17.0 +2.17.1 diff --git a/0157-Fix-up-some-man-pages-rpmdiff-noticed.patch b/0157-Fix-up-some-man-pages-rpmdiff-noticed.patch index 9eb04710..6999ba0c 100644 --- a/0157-Fix-up-some-man-pages-rpmdiff-noticed.patch +++ b/0157-Fix-up-some-man-pages-rpmdiff-noticed.patch @@ -1,7 +1,7 @@ From c71e6152ea8e4e525a853441bb5f08808bae3afd Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 23 Sep 2014 09:58:49 -0400 -Subject: [PATCH 157/238] Fix up some man pages rpmdiff noticed. +Subject: [PATCH 157/243] Fix up some man pages rpmdiff noticed. --- configure.ac | 2 ++ @@ -149,5 +149,5 @@ index 00000000000..85309482718 +.SH SEE ALSO +.BR "info grub" -- -2.17.0 +2.17.1 diff --git a/0158-Re-work-some-intricacies-of-PE-loading.patch b/0158-Re-work-some-intricacies-of-PE-loading.patch index cd8491cf..933aa2c0 100644 --- a/0158-Re-work-some-intricacies-of-PE-loading.patch +++ b/0158-Re-work-some-intricacies-of-PE-loading.patch @@ -1,7 +1,7 @@ From 145214ee7c411c7d600016f011dc11b213bce0b2 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 9 Jun 2016 12:22:29 -0400 -Subject: [PATCH 158/238] Re-work some intricacies of PE loading. +Subject: [PATCH 158/243] Re-work some intricacies of PE loading. The PE spec is not a well written document, and awesomely every place where there's an ambiguous way to read something, Windows' bootmgfw.efi @@ -349,5 +349,5 @@ index 6e24dae2cb6..c03cc599f63 100644 struct grub_pe32_header -- -2.17.0 +2.17.1 diff --git a/0159-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch b/0159-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch index 2eee4b68..0a5dc31b 100644 --- a/0159-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch +++ b/0159-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch @@ -1,7 +1,7 @@ From ef24bc601e11b96eefe06f477b5da1199d761b3d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 10 Jun 2016 14:06:15 -0400 -Subject: [PATCH 159/238] Rework even more of efi chainload so non-sb cases +Subject: [PATCH 159/243] Rework even more of efi chainload so non-sb cases work right. This ensures that if shim protocol is not loaded, or is loaded but shim @@ -412,5 +412,5 @@ index d9ede36773b..0033d9305a9 100644 grub_err_t EXPORT_FUNC(grub_efi_linux_boot) (void *kernel_address, grub_off_t offset, -- -2.17.0 +2.17.1 diff --git a/0160-linuxefi-fix-double-free-on-verification-failure.patch b/0160-linuxefi-fix-double-free-on-verification-failure.patch index 18489adb..c198a57b 100644 --- a/0160-linuxefi-fix-double-free-on-verification-failure.patch +++ b/0160-linuxefi-fix-double-free-on-verification-failure.patch @@ -1,7 +1,7 @@ From 5ef3f00e6be3033092453a66f456b8dac8cd4f7c Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jun 2016 09:50:25 -0400 -Subject: [PATCH 160/238] linuxefi: fix double free on verification failure. +Subject: [PATCH 160/243] linuxefi: fix double free on verification failure. Signed-off-by: Peter Jones --- @@ -21,5 +21,5 @@ index 82f75b7f3ab..010bf982d80 100644 } -- -2.17.0 +2.17.1 diff --git a/0161-fix-machine-type-test-in-30_os-prober.in.patch b/0161-fix-machine-type-test-in-30_os-prober.in.patch index c9c7d727..429bfb23 100644 --- a/0161-fix-machine-type-test-in-30_os-prober.in.patch +++ b/0161-fix-machine-type-test-in-30_os-prober.in.patch @@ -1,7 +1,7 @@ From 4139fdfdb64fd248a0d5f200b27c583159dbb190 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 11 Jul 2016 13:36:45 -0400 -Subject: [PATCH 161/238] fix machine type test in 30_os-prober.in +Subject: [PATCH 161/243] fix machine type test in 30_os-prober.in Signed-off-by: Peter Jones --- @@ -21,5 +21,5 @@ index dc98eace934..e40274fc0f4 100644 i?86|x86_64) sixteenbit="16" -- -2.17.0 +2.17.1 diff --git a/0162-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch b/0162-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch index d3738d06..8a78be5e 100644 --- a/0162-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch +++ b/0162-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch @@ -1,7 +1,7 @@ From 671699a76fa6510a62c3a94acd698a31686cb8fa Mon Sep 17 00:00:00 2001 From: Laszlo Ersek Date: Mon, 21 Nov 2016 15:34:00 +0100 -Subject: [PATCH 162/238] efi/chainloader: fix wrong sanity check in +Subject: [PATCH 162/243] efi/chainloader: fix wrong sanity check in relocate_coff() In relocate_coff(), the relocation entries are parsed from the original @@ -35,5 +35,5 @@ index b977c7b5573..d5ab21d09c3 100644 grub_error (GRUB_ERR_BAD_ARGUMENT, "Reloc entry %d overflows binary", n); -- -2.17.0 +2.17.1 diff --git a/0163-efi-chainloader-truncate-overlong-relocation-section.patch b/0163-efi-chainloader-truncate-overlong-relocation-section.patch index 9440dc91..b08fc6c1 100644 --- a/0163-efi-chainloader-truncate-overlong-relocation-section.patch +++ b/0163-efi-chainloader-truncate-overlong-relocation-section.patch @@ -1,7 +1,7 @@ From d081bd5f47235e3bfd256fd262a6f98fe8b0d0ff Mon Sep 17 00:00:00 2001 From: Laszlo Ersek Date: Wed, 23 Nov 2016 06:27:09 +0100 -Subject: [PATCH 163/238] efi/chainloader: truncate overlong relocation section +Subject: [PATCH 163/243] efi/chainloader: truncate overlong relocation section The UEFI Windows 7 boot loader ("EFI/Microsoft/Boot/bootmgfw.efi", SHA1 31b410e029bba87d2068c65a80b88882f9f8ea25) has inconsistent headers. @@ -109,5 +109,5 @@ index d5ab21d09c3..7826e794ad9 100644 grub_dprintf ("chain", " section is not reloc section?\n"); grub_dprintf ("chain", " rds: 0x%08x, vs: %08x\n", -- -2.17.0 +2.17.1 diff --git a/0164-linuxefi-minor-cleanups.patch b/0164-linuxefi-minor-cleanups.patch index aad31377..9b7090a9 100644 --- a/0164-linuxefi-minor-cleanups.patch +++ b/0164-linuxefi-minor-cleanups.patch @@ -1,7 +1,7 @@ From 8dc21ff37f62f3d10fb3d708ffd33b7d723a23cf Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Feb 2017 16:31:52 -0500 -Subject: [PATCH 164/238] linuxefi: minor cleanups +Subject: [PATCH 164/243] linuxefi: minor cleanups Signed-off-by: Peter Jones --- @@ -85,5 +85,5 @@ index 010bf982d80..8b5a817b9d1 100644 return grub_errno; } -- -2.17.0 +2.17.1 diff --git a/0165-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch b/0165-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch index 1576b675..b1676fab 100644 --- a/0165-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch +++ b/0165-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch @@ -1,7 +1,7 @@ From 10d6d333de0aa7e390a22ebc4b308f7ad937d5bc Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Feb 2017 16:18:54 -0500 -Subject: [PATCH 165/238] Handle multi-arch (64-on-32) boot in linuxefi loader. +Subject: [PATCH 165/243] Handle multi-arch (64-on-32) boot in linuxefi loader. Allow booting 64-bit kernels on 32-bit EFI on x86. @@ -272,5 +272,5 @@ index fc36bdaf367..110ecf806fb 100644 grub_uint32_t hardware_subarch; grub_uint64_t hardware_subarch_data; -- -2.17.0 +2.17.1 diff --git a/0166-Fix-up-linux-params-usage.patch b/0166-Fix-up-linux-params-usage.patch index 02e22abd..c32994ab 100644 --- a/0166-Fix-up-linux-params-usage.patch +++ b/0166-Fix-up-linux-params-usage.patch @@ -1,7 +1,7 @@ From 93be95c27b0ddb63c2e3a287a3ed92c0a5de93e5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 30 May 2017 14:16:07 -0400 -Subject: [PATCH 166/238] Fix up linux params usage... +Subject: [PATCH 166/243] Fix up linux params usage... Signed-off-by: Peter Jones --- @@ -39,5 +39,5 @@ index e4b8342f5d0..c9e89310bdd 100644 linux_params.type_of_loader = GRUB_LINUX_BOOT_LOADER_TYPE; -- -2.17.0 +2.17.1 diff --git a/0167-Make-exit-take-a-return-code.patch b/0167-Make-exit-take-a-return-code.patch index 54460d46..b00851ce 100644 --- a/0167-Make-exit-take-a-return-code.patch +++ b/0167-Make-exit-take-a-return-code.patch @@ -1,7 +1,7 @@ From 6b67d46c1764c86611939dc01267f9c70f413184 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 26 Feb 2014 21:49:12 -0500 -Subject: [PATCH 167/238] Make "exit" take a return code. +Subject: [PATCH 167/243] Make "exit" take a return code. This adds "exit" with a return code. With this patch, any "exit" command /may/ include a return code, and on platforms that support @@ -52,5 +52,5 @@ index 5ce89a40c68..04371ac49f2 100644 grub_fatal (const char *fmt, ...) { -- -2.17.0 +2.17.1 diff --git a/0168-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch b/0168-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch index 42e2347f..a9f581a8 100644 --- a/0168-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch +++ b/0168-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch @@ -1,7 +1,7 @@ From e48a4c0b9e475b16366ff6c375de5186432eb1f7 Mon Sep 17 00:00:00 2001 From: Mark Salter Date: Mon, 17 Apr 2017 08:44:29 -0400 -Subject: [PATCH 168/238] arm64: make sure fdt has #address-cells and +Subject: [PATCH 168/243] arm64: make sure fdt has #address-cells and #size-cells properties Recent upstream changes to kexec-tools relies on #address-cells @@ -41,5 +41,5 @@ index ad39a301527..59ff9cc05b4 100644 if (node < 1) goto failure; -- -2.17.0 +2.17.1 diff --git a/0169-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch b/0169-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch index caab158f..fcd2fc4f 100644 --- a/0169-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch +++ b/0169-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch @@ -1,7 +1,7 @@ From 755fa5ccf0834abdb7e50a1cb06fad618f6c9af6 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 9 May 2016 14:15:17 -0400 -Subject: [PATCH 169/238] Add some grub_dprintf() in the secure boot verify +Subject: [PATCH 169/243] Add some grub_dprintf() in the secure boot verify code. Signed-off-by: Peter Jones @@ -40,5 +40,5 @@ index 2a7024134da..7fe7201a388 100644 return -1; } -- -2.17.0 +2.17.1 diff --git a/0170-Make-our-info-pages-say-grub2-where-appropriate.patch b/0170-Make-our-info-pages-say-grub2-where-appropriate.patch index d2274fd2..c91cc9a6 100644 --- a/0170-Make-our-info-pages-say-grub2-where-appropriate.patch +++ b/0170-Make-our-info-pages-say-grub2-where-appropriate.patch @@ -1,7 +1,7 @@ From 15c340acd845056ba259b9fffd6c7d083874cb82 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 6 May 2016 18:43:08 -0400 -Subject: [PATCH 170/238] Make our info pages say "grub2" where appropriate. +Subject: [PATCH 170/243] Make our info pages say "grub2" where appropriate. This needs to be hooked up to --program-transform=, but I haven't had time. @@ -1012,5 +1012,5 @@ index 15a90b26e4d..f28c4cd5247 100644 @table @option @item --help -- -2.17.0 +2.17.1 diff --git a/0171-print-more-debug-info-in-our-module-loader.patch b/0171-print-more-debug-info-in-our-module-loader.patch index e2079364..d4583973 100644 --- a/0171-print-more-debug-info-in-our-module-loader.patch +++ b/0171-print-more-debug-info-in-our-module-loader.patch @@ -1,7 +1,7 @@ From 0d0a7ebbed42b97fca63cbcaf85a469b77c76fda Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 1 May 2017 11:19:40 -0400 -Subject: [PATCH 171/238] print more debug info in our module loader. +Subject: [PATCH 171/243] print more debug info in our module loader. Signed-off-by: Peter Jones --- @@ -40,5 +40,5 @@ index 684ca93f8f4..866fc20e162 100644 } -- -2.17.0 +2.17.1 diff --git a/0172-macos-just-build-chainloader-entries-don-t-try-any-x.patch b/0172-macos-just-build-chainloader-entries-don-t-try-any-x.patch index c694e2e8..011152cc 100644 --- a/0172-macos-just-build-chainloader-entries-don-t-try-any-x.patch +++ b/0172-macos-just-build-chainloader-entries-don-t-try-any-x.patch @@ -1,7 +1,7 @@ From 4cb6b65d74966dfbe6e8463ee1e88d99ca7de5b1 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 24 May 2017 12:42:32 -0400 -Subject: [PATCH 172/238] macos: just build chainloader entries, don't try any +Subject: [PATCH 172/243] macos: just build chainloader entries, don't try any xnu xnu. Since our bugs tell us that the xnu boot entries really just don't work @@ -124,5 +124,5 @@ index e40274fc0f4..d979de1982a 100644 hurd) onstr="$(gettext_printf "(on %s)" "${DEVICE}")" -- -2.17.0 +2.17.1 diff --git a/0173-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch b/0173-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch index 28243240..d6be3f82 100644 --- a/0173-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch +++ b/0173-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch @@ -1,7 +1,7 @@ From 396001716b7f8c7a6aee17f33fdb9e5d47424cbc Mon Sep 17 00:00:00 2001 From: Jeff Mahoney Date: Wed, 18 Dec 2013 09:57:04 +0000 -Subject: [PATCH 173/238] grub2/btrfs: Add ability to boot from subvolumes +Subject: [PATCH 173/243] grub2/btrfs: Add ability to boot from subvolumes This patch adds the ability to specify a different root on a btrfs filesystem too boot from other than the default one. @@ -702,5 +702,5 @@ index 9d93fb6c182..234ad976771 100644 }; -- -2.17.0 +2.17.1 diff --git a/0174-export-btrfs_subvol-and-btrfs_subvolid.patch b/0174-export-btrfs_subvol-and-btrfs_subvolid.patch index c60fdc89..e9d79309 100644 --- a/0174-export-btrfs_subvol-and-btrfs_subvolid.patch +++ b/0174-export-btrfs_subvol-and-btrfs_subvolid.patch @@ -1,7 +1,7 @@ From 35c1015fc1a4313be34757eebb195547336e0edf Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Wed, 18 Dec 2013 09:57:04 +0000 -Subject: [PATCH 174/238] export btrfs_subvol and btrfs_subvolid +Subject: [PATCH 174/243] export btrfs_subvol and btrfs_subvolid We should export btrfs_subvol and btrfs_subvolid to have both visible to subsidiary configuration files loaded using configfile. @@ -25,5 +25,5 @@ index 38facf3cb8b..3962961666e 100644 GRUB_MOD_FINI (btrfs) -- -2.17.0 +2.17.1 diff --git a/0175-grub2-btrfs-03-follow_default.patch b/0175-grub2-btrfs-03-follow_default.patch index e4f0c8b4..968ddb11 100644 --- a/0175-grub2-btrfs-03-follow_default.patch +++ b/0175-grub2-btrfs-03-follow_default.patch @@ -1,7 +1,7 @@ From 476a0251e8ca2850da7c383baf7fdbd810bc789f Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 21 Aug 2014 03:39:11 +0000 -Subject: [PATCH 175/238] grub2-btrfs-03-follow_default +Subject: [PATCH 175/243] grub2-btrfs-03-follow_default --- grub-core/fs/btrfs.c | 107 ++++++++++++++++++++++++++++++++++++--------------- @@ -195,5 +195,5 @@ index 3962961666e..2c462584e91 100644 GRUB_MOD_FINI (btrfs) -- -2.17.0 +2.17.1 diff --git a/0176-grub2-btrfs-04-grub2-install.patch b/0176-grub2-btrfs-04-grub2-install.patch index 5fd9af3c..b01bda65 100644 --- a/0176-grub2-btrfs-04-grub2-install.patch +++ b/0176-grub2-btrfs-04-grub2-install.patch @@ -1,7 +1,7 @@ From e03dd83cc804d70af0716d0a429715afbcdc7eae Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 21 Aug 2014 03:39:11 +0000 -Subject: [PATCH 176/238] grub2-btrfs-04-grub2-install +Subject: [PATCH 176/243] grub2-btrfs-04-grub2-install --- grub-core/osdep/linux/getroot.c | 7 +++++++ @@ -173,5 +173,5 @@ index 875d5896ce1..c9a7e5f4ade 100644 void -- -2.17.0 +2.17.1 diff --git a/0177-grub2-btrfs-05-grub2-mkconfig.patch b/0177-grub2-btrfs-05-grub2-mkconfig.patch index b6e05533..bd4d34ca 100644 --- a/0177-grub2-btrfs-05-grub2-mkconfig.patch +++ b/0177-grub2-btrfs-05-grub2-mkconfig.patch @@ -1,7 +1,7 @@ From cb43e7a6c96127e72d6787c6063de8911284fe18 Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 21 Aug 2014 03:39:11 +0000 -Subject: [PATCH 177/238] grub2-btrfs-05-grub2-mkconfig +Subject: [PATCH 177/243] grub2-btrfs-05-grub2-mkconfig --- util/grub-mkconfig.in | 3 ++- @@ -126,5 +126,5 @@ index 54f1ec8a2fd..462f8e1f819 100644 xzfs) rpool=`${grub_probe} --device ${GRUB_DEVICE} --target=fs_label 2>/dev/null || true` -- -2.17.0 +2.17.1 diff --git a/0178-grub2-btrfs-06-subvol-mount.patch b/0178-grub2-btrfs-06-subvol-mount.patch index 09c87b90..cfa0c4bf 100644 --- a/0178-grub2-btrfs-06-subvol-mount.patch +++ b/0178-grub2-btrfs-06-subvol-mount.patch @@ -1,7 +1,7 @@ From 84d6a482c2c8d0677141bb888512a6a89daf9d8b Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Fri, 22 May 2015 11:45:25 +0000 -Subject: [PATCH 178/238] grub2-btrfs-06-subvol-mount +Subject: [PATCH 178/243] grub2-btrfs-06-subvol-mount --- grub-core/fs/btrfs.c | 195 +++++++++++++++++++++++++++++++++++++++- @@ -536,5 +536,5 @@ index 73fa2d34abb..9c642ae3fe3 100644 void grub_util_pull_devmapper (const char *os_dev); -- -2.17.0 +2.17.1 diff --git a/0179-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch b/0179-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch index ed59886d..bab103e7 100644 --- a/0179-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch +++ b/0179-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch @@ -1,7 +1,7 @@ From 741c0651cd54970c08e9c19a82f5805aafbfda23 Mon Sep 17 00:00:00 2001 From: Dusty Mabe Date: Sat, 18 Jul 2015 15:38:08 +0000 -Subject: [PATCH 179/238] No more "Bootable Snapshot" submenu in grub.cfg. +Subject: [PATCH 179/243] No more "Bootable Snapshot" submenu in grub.cfg. This breaks grubby (run on kernel upgrades) because grubby just does a search for "menuentry". @@ -30,5 +30,5 @@ index e2a53300126..8a16fea347e 100644 -EOF -fi -- -2.17.0 +2.17.1 diff --git a/0180-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch b/0180-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch index 806a2e89..ed7dd2b4 100644 --- a/0180-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch +++ b/0180-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch @@ -1,7 +1,7 @@ From ab8e0d4bf544b708f5afa4cc56e6bd16789f2f1e Mon Sep 17 00:00:00 2001 From: Andrei Borzenkov Date: Tue, 21 Jun 2016 16:44:17 +0000 -Subject: [PATCH 180/238] Fallback to old subvol name scheme to support old +Subject: [PATCH 180/243] Fallback to old subvol name scheme to support old snapshot config Ref: bsc#953538 @@ -57,5 +57,5 @@ index d111147e836..a5c000805a7 100644 if (btrfs_default_subvolid) return lookup_root_by_id(data, btrfs_default_subvolid); -- -2.17.0 +2.17.1 diff --git a/0181-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch b/0181-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch index 4569f0cd..87daddfb 100644 --- a/0181-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch +++ b/0181-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch @@ -1,7 +1,7 @@ From eb8535428a42c7099666ddb58ac900bb8ee745ba Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 11 May 2017 08:56:57 +0000 -Subject: [PATCH 181/238] Grub not working correctly with btrfs snapshots +Subject: [PATCH 181/243] Grub not working correctly with btrfs snapshots (bsc#1026511) --- @@ -272,5 +272,5 @@ index a5c000805a7..3cd9472197c 100644 subvol_set_env); grub_register_variable_hook ("btrfs_subvolid", subvolid_get_env, -- -2.17.0 +2.17.1 diff --git a/0182-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch b/0182-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch index 4ce87f3e..8a76c946 100644 --- a/0182-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch +++ b/0182-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch @@ -1,7 +1,7 @@ From 2a6e1d2491b7334985ad25315faa22d26354d8b7 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 1 Jun 2017 09:59:56 -0400 -Subject: [PATCH 182/238] Add grub_efi_allocate_pool() and grub_efi_free_pool() +Subject: [PATCH 182/243] Add grub_efi_allocate_pool() and grub_efi_free_pool() wrappers. Signed-off-by: Peter Jones @@ -71,5 +71,5 @@ index 91e29ce66f1..68326d96f5a 100644 struct grub_net_card; -- -2.17.0 +2.17.1 diff --git a/0183-Use-grub_efi_.-memory-helpers-where-reasonable.patch b/0183-Use-grub_efi_.-memory-helpers-where-reasonable.patch index dadfe4ff..37002afd 100644 --- a/0183-Use-grub_efi_.-memory-helpers-where-reasonable.patch +++ b/0183-Use-grub_efi_.-memory-helpers-where-reasonable.patch @@ -1,7 +1,7 @@ From 6ea13cdb3f33da45d7a8042d85ad87e2a18fc946 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 1 Jun 2017 10:06:38 -0400 -Subject: [PATCH 183/238] Use grub_efi_...() memory helpers where reasonable. +Subject: [PATCH 183/243] Use grub_efi_...() memory helpers where reasonable. This uses grub_efi_allocate_pool(), grub_efi_free_pool(), and grub_efi_free_pages() instead of open-coded efi_call_N() calls, so we @@ -105,5 +105,5 @@ index 7826e794ad9..d2557b38dce 100644 if (cmdline) grub_free (cmdline); -- -2.17.0 +2.17.1 diff --git a/0184-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch b/0184-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch index 493cc69f..0ae63caa 100644 --- a/0184-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch +++ b/0184-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch @@ -1,7 +1,7 @@ From eae94a16a8ae350cdeab8b7742f9227d92001272 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 1 Jun 2017 10:07:50 -0400 -Subject: [PATCH 184/238] Add PRIxGRUB_EFI_STATUS and use it. +Subject: [PATCH 184/243] Add PRIxGRUB_EFI_STATUS and use it. This avoids syntax checkers getting confused about if it's llx or lx. @@ -45,5 +45,5 @@ index 02488ec35ae..ddc5ecfb03d 100644 #define GRUB_EFI_ERROR_CODE(value) \ ((((grub_efi_status_t) 1) << (sizeof (grub_efi_status_t) * 8 - 1)) | (value)) -- -2.17.0 +2.17.1 diff --git a/0185-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch b/0185-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch index eadaf044..561e6b88 100644 --- a/0185-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch +++ b/0185-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch @@ -1,7 +1,7 @@ From 41a50aa2c275076caa2f9fe7a747eeb054abed16 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:42:57 -0400 -Subject: [PATCH 185/238] Don't use dynamic sized arrays since we don't build +Subject: [PATCH 185/243] Don't use dynamic sized arrays since we don't build with -std=c99 --- @@ -42,5 +42,5 @@ index 4be228d9576..fa3e2912643 100644 { grub_strcpy (suffix, client_uuid); -- -2.17.0 +2.17.1 diff --git a/0186-don-t-ignore-const.patch b/0186-don-t-ignore-const.patch index 5ff0ee47..352a0ddb 100644 --- a/0186-don-t-ignore-const.patch +++ b/0186-don-t-ignore-const.patch @@ -1,7 +1,7 @@ From d06e2578107f217d2bc8beee7fd0dc7f2645873d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:43:22 -0400 -Subject: [PATCH 186/238] don't ignore const +Subject: [PATCH 186/243] don't ignore const --- grub-core/net/tftp.c | 2 +- @@ -21,5 +21,5 @@ index dcd82494309..f90071353ad 100644 while (*src != '\0') { -- -2.17.0 +2.17.1 diff --git a/0187-don-t-use-int-for-efi-status.patch b/0187-don-t-use-int-for-efi-status.patch index 1b57a96f..4a8ad263 100644 --- a/0187-don-t-use-int-for-efi-status.patch +++ b/0187-don-t-use-int-for-efi-status.patch @@ -1,7 +1,7 @@ From 6d86c59c24e12c8e8471cdd2affca574fdee160d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:44:59 -0400 -Subject: [PATCH 187/238] don't use int for efi status +Subject: [PATCH 187/243] don't use int for efi status --- grub-core/kern/efi/efi.c | 2 +- @@ -21,5 +21,5 @@ index 866fc20e162..91f75fdb89a 100644 if (retval == 0) rc = GRUB_EFI_SUCCESS; -- -2.17.0 +2.17.1 diff --git a/0188-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch b/0188-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch index 8de6fc0f..14e66dcd 100644 --- a/0188-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch +++ b/0188-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch @@ -1,7 +1,7 @@ From ba6828d073bbda85eba59a9ce9220eada51a540b Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:46:23 -0400 -Subject: [PATCH 188/238] make GRUB_MOD_INIT() declare its function prototypes. +Subject: [PATCH 188/243] make GRUB_MOD_INIT() declare its function prototypes. --- include/grub/dl.h | 2 ++ @@ -28,5 +28,5 @@ index 2bca56ce0e8..b1ed3c33317 100644 grub_##name##_fini (void) { grub_mod_fini (); } \ static void \ -- -2.17.0 +2.17.1 diff --git a/0189-Clean-up-some-errors-in-the-linuxefi-loader.patch b/0189-Clean-up-some-errors-in-the-linuxefi-loader.patch index 10eed2c0..d354bd41 100644 --- a/0189-Clean-up-some-errors-in-the-linuxefi-loader.patch +++ b/0189-Clean-up-some-errors-in-the-linuxefi-loader.patch @@ -1,7 +1,7 @@ From 8bdc0c77919ddb9bd588ac45e96c96497683f76c Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 24 May 2017 15:58:18 -0400 -Subject: [PATCH 189/238] Clean up some errors in the linuxefi loader +Subject: [PATCH 189/243] Clean up some errors in the linuxefi loader Signed-off-by: Peter Jones --- @@ -65,5 +65,5 @@ index bed5919cab3..6db5d0bf3a0 100644 linux_cmdline, BYTES_TO_PAGES(lh->cmdline_size + 1)); -- -2.17.0 +2.17.1 diff --git a/0190-editenv-handle-relative-symlinks.patch b/0190-editenv-handle-relative-symlinks.patch index 373b2d20..7c0eecfa 100644 --- a/0190-editenv-handle-relative-symlinks.patch +++ b/0190-editenv-handle-relative-symlinks.patch @@ -1,7 +1,7 @@ From 098987b7b5fcc15a5ba3600fa132fcec36095c5a Mon Sep 17 00:00:00 2001 From: Jonathan Lebon Date: Mon, 14 Aug 2017 14:37:20 -0400 -Subject: [PATCH 190/238] editenv: handle relative symlinks +Subject: [PATCH 190/243] editenv: handle relative symlinks Handle symlinks with targets relative to the containing dir. This ensures that the rename operation does not depend on the cwd. @@ -49,5 +49,5 @@ index d8d1dad6ab9..41bc7cb1c9a 100644 int rc = grub_util_rename (namenew, rename_target); -- -2.17.0 +2.17.1 diff --git a/0191-Make-libgrub.pp-depend-on-config-util.h.patch b/0191-Make-libgrub.pp-depend-on-config-util.h.patch index 45a41c40..86dbb337 100644 --- a/0191-Make-libgrub.pp-depend-on-config-util.h.patch +++ b/0191-Make-libgrub.pp-depend-on-config-util.h.patch @@ -1,7 +1,7 @@ From c86299049c2cc0503728deee280d9f6bf50886f4 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 23 Aug 2017 10:37:27 -0400 -Subject: [PATCH 191/238] Make libgrub.pp depend on config-util.h +Subject: [PATCH 191/243] Make libgrub.pp depend on config-util.h If you build with "make -j48" a lot, sometimes you see: @@ -44,5 +44,5 @@ index 7795baeb654..c7b0e6a9c46 100644 -D'GRUB_MOD_INIT(x)=@MARKER@x@' $^ > $@ || (rm -f $@; exit 1) CLEANFILES += libgrub.pp -- -2.17.0 +2.17.1 diff --git a/0192-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch b/0192-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch index a673304e..d0b47b82 100644 --- a/0192-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch +++ b/0192-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch @@ -1,7 +1,7 @@ From 351799d9310a4bec23ed4074444780c2a35435fd Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 20 Apr 2017 13:29:06 -0400 -Subject: [PATCH 192/238] Don't guess /boot/efi/ as HFS+ on ppc machines in +Subject: [PATCH 192/243] Don't guess /boot/efi/ as HFS+ on ppc machines in grub-install This should never be trying this, and since we've consolidated the @@ -40,5 +40,5 @@ index cd84a72b97b..48f2abc3ea5 100644 { free (d); -- -2.17.0 +2.17.1 diff --git a/0193-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch b/0193-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch index 355c8f19..5cc6aaf5 100644 --- a/0193-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch +++ b/0193-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch @@ -1,7 +1,7 @@ From cba0322cd88baf136ac693f5ec1826f3314daeff Mon Sep 17 00:00:00 2001 From: Konrad Rzeszutek Wilk Date: Mon, 28 Aug 2017 13:51:14 -0400 -Subject: [PATCH 193/238] Fix util/grub.d/20_linux_xen.in: Add xen_boot command +Subject: [PATCH 193/243] Fix util/grub.d/20_linux_xen.in: Add xen_boot command support for aarch64 Commit d33045ce7ffcb7c1e4a60c14d5ca64b36e3c5abe introduced @@ -58,5 +58,5 @@ index 462f8e1f819..9b1bd716965 100644 while [ "x$list" != "x" ] ; do linux=`version_find_latest $list` -- -2.17.0 +2.17.1 diff --git a/0194-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch b/0194-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch index c4bb1d59..9ce674c9 100644 --- a/0194-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch +++ b/0194-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch @@ -1,7 +1,7 @@ From 87c089b6f1945ebcc690697d279c74284f1b4072 Mon Sep 17 00:00:00 2001 From: Konrad Rzeszutek Wilk Date: Mon, 28 Aug 2017 13:59:12 -0400 -Subject: [PATCH 194/238] Use grub-file to figure out whether multiboot2 should +Subject: [PATCH 194/243] Use grub-file to figure out whether multiboot2 should be used for Xen.gz The multiboot2 is much more preferable than multiboot. Especiall @@ -29,5 +29,5 @@ index 9b1bd716965..fae1ffe9494 100644 while [ "x$list" != "x" ] ; do linux=`version_find_latest $list` -- -2.17.0 +2.17.1 diff --git a/0195-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch b/0195-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch index 3b7ecb8c..4f6d9175 100644 --- a/0195-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch +++ b/0195-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch @@ -1,7 +1,7 @@ From 92d3db585076d022521ab94a2ceed03eb05013fc Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 19 Oct 2017 11:29:11 -0400 -Subject: [PATCH 195/238] 20_linux_xen: load xen or multiboot{,2} modules as +Subject: [PATCH 195/243] 20_linux_xen: load xen or multiboot{,2} modules as needed. Signed-off-by: Peter Jones @@ -31,5 +31,5 @@ index fae1ffe9494..fc53bd54231 100644 EOF fi -- -2.17.0 +2.17.1 diff --git a/0196-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch b/0196-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch index 598bce12..fb2b5012 100644 --- a/0196-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch +++ b/0196-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch @@ -1,7 +1,7 @@ From 2e5b957292d3f313d48bded25e8ca83468326c5b Mon Sep 17 00:00:00 2001 From: "David E. Box" Date: Fri, 15 Sep 2017 15:37:05 -0700 -Subject: [PATCH 196/238] tsc: Change default tsc calibration method to pmtimer +Subject: [PATCH 196/243] tsc: Change default tsc calibration method to pmtimer on EFI systems On efi systems, make pmtimer based tsc calibration the default over the @@ -28,5 +28,5 @@ index 2e85289d848..f266eb13185 100644 (void) (grub_tsc_calibrate_from_pmtimer () || grub_tsc_calibrate_from_pit () || calibrate_tsc_hardcode()); #else -- -2.17.0 +2.17.1 diff --git a/0197-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch b/0197-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch index 975f52c3..18b794ad 100644 --- a/0197-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch +++ b/0197-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch @@ -1,7 +1,7 @@ From 0b158c30810db86f549cabd6e6021ab15962370d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 7 Nov 2017 17:12:17 -0500 -Subject: [PATCH 197/238] Make pmtimer tsc calibration not take 51 seconds to +Subject: [PATCH 197/243] Make pmtimer tsc calibration not take 51 seconds to fail. On my laptop running at 2.4GHz, if I run a VM where tsc calibration @@ -211,5 +211,5 @@ index c9c36169978..ca15c3aacd7 100644 if (tsc_diff == 0) return 0; -- -2.17.0 +2.17.1 diff --git a/0198-align-struct-efi_variable-better.patch b/0198-align-struct-efi_variable-better.patch index 3a48b40d..d0fbcf31 100644 --- a/0198-align-struct-efi_variable-better.patch +++ b/0198-align-struct-efi_variable-better.patch @@ -1,7 +1,7 @@ From 2485633ada06c11c07a34a696a92b14e58f1e846 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 27 Feb 2018 13:55:35 -0500 -Subject: [PATCH 198/238] align struct efi_variable better... +Subject: [PATCH 198/243] align struct efi_variable better... --- include/grub/efiemu/runtime.h | 2 +- @@ -32,5 +32,5 @@ index b93e4820194..f6a9723971d 100644 #ifdef GRUB_BUILD # define GRUB_CPU_SIZEOF_VOID_P BUILD_SIZEOF_VOID_P -- -2.17.0 +2.17.1 diff --git a/0199-Add-quicksort-implementation.patch b/0199-Add-quicksort-implementation.patch index b7f36650..aa9cb9d6 100644 --- a/0199-Add-quicksort-implementation.patch +++ b/0199-Add-quicksort-implementation.patch @@ -1,7 +1,7 @@ From a2cd100d71711b950beaf60ea7ddca4c77a70d59 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 9 Dec 2016 15:39:47 -0500 -Subject: [PATCH 199/238] Add quicksort implementation +Subject: [PATCH 199/243] Add quicksort implementation This will be used to sort the boot menu entries that are read from the BootLoaderSpec config files. @@ -321,5 +321,5 @@ index 4737da1eaa9..3d55bafd64e 100644 + #endif /* ! GRUB_MISC_HEADER */ -- -2.17.0 +2.17.1 diff --git a/0200-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch b/0200-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch index 145f6216..d88170f9 100644 --- a/0200-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch +++ b/0200-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch @@ -1,7 +1,7 @@ From ed595feeea2f7b7fd0158d42fa2fd39420eea683 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 9 Dec 2016 15:40:58 -0500 -Subject: [PATCH 200/238] Add blscfg command support to parse BootLoaderSpec +Subject: [PATCH 200/243] Add blscfg command support to parse BootLoaderSpec config fragments The BootLoaderSpec (BLS) defines a scheme where different bootloaders can @@ -1138,5 +1138,5 @@ index c9e1d7a73dc..9859ff4cc79 100644 + #endif /* ! GRUB_COMPILER_HEADER */ -- -2.17.0 +2.17.1 diff --git a/0201-Add-BLS-support-to-grub-mkconfig.patch b/0201-Add-BLS-support-to-grub-mkconfig.patch index b576a0d9..807669e3 100644 --- a/0201-Add-BLS-support-to-grub-mkconfig.patch +++ b/0201-Add-BLS-support-to-grub-mkconfig.patch @@ -1,7 +1,7 @@ From d847a4806bb7a4f3b457d0074d712e500fbd5e97 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 9 Dec 2016 15:40:29 -0500 -Subject: [PATCH 201/238] Add BLS support to grub-mkconfig +Subject: [PATCH 201/243] Add BLS support to grub-mkconfig GRUB now has BootLoaderSpec support, the user can choose to use this by setting GRUB_ENABLE_BLSCFG to true in /etc/default/grub. On this setup, @@ -166,5 +166,5 @@ index 7e78ad33636..f5daefb9d24 100644 # "UUID=" and "ZFS=" magic is parsed by initrd or initramfs. Since there's # no initrd or builtin initramfs, it can't work here. -- -2.17.0 +2.17.1 diff --git a/0202-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch b/0202-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch index c94b0c59..e02df434 100644 --- a/0202-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch +++ b/0202-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch @@ -1,7 +1,7 @@ From 2d7dabdbf322e8f679eeaefd48cb26b083cdeb1c Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 6 Feb 2018 11:02:09 +0100 -Subject: [PATCH 202/238] Remove duplicated grub_exit() definition for grub-emu +Subject: [PATCH 202/243] Remove duplicated grub_exit() definition for grub-emu platform The grub_exit() function signature was changed on all platforms to take a @@ -32,5 +32,5 @@ index 7e47ec81263..55ea5a11ccd 100644 grub_machine_init (void) { -- -2.17.0 +2.17.1 diff --git a/0203-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch b/0203-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch index 652c8cf2..54013807 100644 --- a/0203-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch +++ b/0203-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch @@ -1,7 +1,7 @@ From f45946a92377c83ffcad8dbc3298fc26072567d9 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 6 Feb 2018 11:16:28 +0100 -Subject: [PATCH 203/238] Don't attempt to backtrace on grub_abort() for +Subject: [PATCH 203/243] Don't attempt to backtrace on grub_abort() for grub-emu The emu platform doesn't have a grub_backtrace() implementation, so this @@ -26,5 +26,5 @@ index 04371ac49f2..636f97e1ba1 100644 #endif #endif -- -2.17.0 +2.17.1 diff --git a/0204-Enable-blscfg-command-for-the-emu-platform.patch b/0204-Enable-blscfg-command-for-the-emu-platform.patch index 89e2f460..f94df6fa 100644 --- a/0204-Enable-blscfg-command-for-the-emu-platform.patch +++ b/0204-Enable-blscfg-command-for-the-emu-platform.patch @@ -1,7 +1,7 @@ From 39bb86c661911f06ff40caa842a9babf18f27c8b Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Fri, 2 Feb 2018 11:36:29 +0100 -Subject: [PATCH 204/238] Enable blscfg command for the emu platform +Subject: [PATCH 204/243] Enable blscfg command for the emu platform Allow grub-emu to call a blscfg command. This may be useful for platforms that don't support GRUB, so grub-emu can be used to parse the BLS configs @@ -163,5 +163,5 @@ index 9ab45631465..e5617c3bc6c 100644 grub_unregister_extcmd (cmd); } -- -2.17.0 +2.17.1 diff --git a/0205-Add-linux-and-initrd-commands-for-grub-emu.patch b/0205-Add-linux-and-initrd-commands-for-grub-emu.patch index a75d782c..23b4f7e5 100644 --- a/0205-Add-linux-and-initrd-commands-for-grub-emu.patch +++ b/0205-Add-linux-and-initrd-commands-for-grub-emu.patch @@ -1,7 +1,7 @@ From 49c719a6f6e223b95733e18720a48993ab6e5317 Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Tue, 6 Feb 2018 09:09:00 +0100 -Subject: [PATCH 205/238] Add linux and initrd commands for grub-emu +Subject: [PATCH 205/243] Add linux and initrd commands for grub-emu When using grub-emu, the linux and initrd commands are used as arguments to the kexec command line tool, to allow booting the selected menu entry. @@ -350,5 +350,5 @@ index f7b4d29b0b3..75e8715e631 100644 KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/sdl.h endif -- -2.17.0 +2.17.1 diff --git a/0206-Fix-the-efidir-in-grub-setpassword.patch b/0206-Fix-the-efidir-in-grub-setpassword.patch index fcf7d24a..66a33526 100644 --- a/0206-Fix-the-efidir-in-grub-setpassword.patch +++ b/0206-Fix-the-efidir-in-grub-setpassword.patch @@ -1,7 +1,7 @@ From c7c6cb4380f5bd85a2cbe747433657fdce89a802 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 15 Mar 2018 14:12:54 -0400 -Subject: [PATCH 206/238] Fix the efidir in grub-setpassword +Subject: [PATCH 206/243] Fix the efidir in grub-setpassword Signed-off-by: Peter Jones --- @@ -23,5 +23,5 @@ index d7924af5192..cf70257eed6 100644 grubdir=`echo "/@bootdirname@/@grubdirname@" | sed 's,//*,/,g'` fi -- -2.17.0 +2.17.1 diff --git a/0207-Add-grub2-switch-to-blscfg.patch b/0207-Add-grub2-switch-to-blscfg.patch index fe7ac604..8cf66f1a 100644 --- a/0207-Add-grub2-switch-to-blscfg.patch +++ b/0207-Add-grub2-switch-to-blscfg.patch @@ -1,7 +1,7 @@ From 89b3a570de8b5e7ad19769983a87f6e10024f0ec Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 15 Mar 2018 14:12:40 -0400 -Subject: [PATCH 207/238] Add grub2-switch-to-blscfg +Subject: [PATCH 207/243] Add grub2-switch-to-blscfg Signed-off-by: Peter Jones --- @@ -344,5 +344,5 @@ index 00000000000..3ae5e4ea8d0 +# Bye. +exit 0 -- -2.17.0 +2.17.1 diff --git a/0208-Add-grub_debug_enabled.patch b/0208-Add-grub_debug_enabled.patch index 9c832f7f..ec19a13e 100644 --- a/0208-Add-grub_debug_enabled.patch +++ b/0208-Add-grub_debug_enabled.patch @@ -1,7 +1,7 @@ From 6776773c89828c9b69c1552760ba6a4d9cd5589f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 30 Nov 2017 15:11:39 -0500 -Subject: [PATCH 208/238] Add grub_debug_enabled() +Subject: [PATCH 208/243] Add grub_debug_enabled() --- grub-core/kern/misc.c | 21 ++++++++++++++++----- @@ -59,5 +59,5 @@ index 3d55bafd64e..493e328d968 100644 const int line, const char *condition, -- -2.17.0 +2.17.1 diff --git a/0209-make-better-backtraces.patch b/0209-make-better-backtraces.patch index 8788ceec..069ac188 100644 --- a/0209-make-better-backtraces.patch +++ b/0209-make-better-backtraces.patch @@ -1,7 +1,7 @@ From 318ee04aadcda40b779b2a5314dd23ead165f896 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 6 Nov 2017 18:31:56 -0500 -Subject: [PATCH 209/238] make better backtraces +Subject: [PATCH 209/243] make better backtraces Signed-off-by: Peter Jones --- @@ -883,5 +883,5 @@ index 75e8715e631..5c7a2c8f808 100644 KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/command.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/device.h -- -2.17.0 +2.17.1 diff --git a/0210-normal-don-t-draw-our-startup-message-if-debug-is-se.patch b/0210-normal-don-t-draw-our-startup-message-if-debug-is-se.patch index 2dacff73..ad9eb07c 100644 --- a/0210-normal-don-t-draw-our-startup-message-if-debug-is-se.patch +++ b/0210-normal-don-t-draw-our-startup-message-if-debug-is-se.patch @@ -1,7 +1,7 @@ From 81d0e079ea5aa6f43daf12f7a8698d0bcd1a36f8 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 9 Nov 2017 15:58:52 -0500 -Subject: [PATCH 210/238] normal: don't draw our startup message if debug is +Subject: [PATCH 210/243] normal: don't draw our startup message if debug is set --- @@ -23,5 +23,5 @@ index b69f9e738fa..04ae9ed02f6 100644 "the first word, TAB lists possible command completions. Anywhere " "else TAB lists possible device or file completions. %s"), -- -2.17.0 +2.17.1 diff --git a/0211-Work-around-some-minor-include-path-weirdnesses.patch b/0211-Work-around-some-minor-include-path-weirdnesses.patch index 41ee9c56..df06450e 100644 --- a/0211-Work-around-some-minor-include-path-weirdnesses.patch +++ b/0211-Work-around-some-minor-include-path-weirdnesses.patch @@ -1,7 +1,7 @@ From e2bba0f7ee8e56c68e425853a21a8fdd766add70 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 16 Mar 2018 13:28:57 -0400 -Subject: [PATCH 211/238] Work around some minor include path weirdnesses +Subject: [PATCH 211/243] Work around some minor include path weirdnesses Signed-off-by: Peter Jones --- @@ -136,5 +136,5 @@ index 00000000000..dba9d8678d0 + +#endif /* ! GRUB_X86_64_EFI_CONSOLE_H */ -- -2.17.0 +2.17.1 diff --git a/0212-Make-it-possible-to-enabled-build-id-sha1.patch b/0212-Make-it-possible-to-enabled-build-id-sha1.patch index 92cb9d15..f9b652a1 100644 --- a/0212-Make-it-possible-to-enabled-build-id-sha1.patch +++ b/0212-Make-it-possible-to-enabled-build-id-sha1.patch @@ -1,7 +1,7 @@ From 8521929bcf671b465d6450b969d11617b6aec608 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 25 Jun 2015 15:41:06 -0400 -Subject: [PATCH 212/238] Make it possible to enabled --build-id=sha1 +Subject: [PATCH 212/243] Make it possible to enabled --build-id=sha1 Signed-off-by: Peter Jones --- @@ -60,5 +60,5 @@ index 78cdf6e1d01..242e829ff23 100644 AC_DEFUN([grub_PROG_NM_WORKS], [AC_MSG_CHECKING([whether nm works]) -- -2.17.0 +2.17.1 diff --git a/0213-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch b/0213-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch index f8dcce43..b4083935 100644 --- a/0213-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch +++ b/0213-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch @@ -1,7 +1,7 @@ From 8c4b2eaa204f0ea0377ca4592d2be6029fdb9be7 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Sun, 28 Jun 2015 13:09:58 -0400 -Subject: [PATCH 213/238] Add grub_qdprintf() - grub_dprintf() without the +Subject: [PATCH 213/243] Add grub_qdprintf() - grub_dprintf() without the file+line number. This just makes copy+paste of our debug loading info easier. @@ -55,5 +55,5 @@ index 493e328d968..4607e8defa9 100644 int EXPORT_FUNC(grub_snprintf) (char *str, grub_size_t n, const char *fmt, ...) __attribute__ ((format (GNU_PRINTF, 3, 4))); -- -2.17.0 +2.17.1 diff --git a/0214-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch b/0214-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch index 9da9f5c0..291bab2b 100644 --- a/0214-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch +++ b/0214-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch @@ -1,7 +1,7 @@ From 030095a01a205aba04a0849ac0c0329ac429a9ed Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 25 Jun 2015 15:11:36 -0400 -Subject: [PATCH 214/238] Make a "gdb" dprintf that tells us load addresses. +Subject: [PATCH 214/243] Make a "gdb" dprintf that tells us load addresses. This makes a grub_dprintf() call during platform init and during module loading that tells us the virtual addresses of the .text and .data @@ -177,5 +177,5 @@ index 68326d96f5a..6702b312040 100644 void grub_efi_mm_init (void); void grub_efi_mm_fini (void); -- -2.17.0 +2.17.1 diff --git a/0215-Only-attempt-to-scan-different-BLS-directories-on-EF.patch b/0215-Only-attempt-to-scan-different-BLS-directories-on-EF.patch index 33f39717..564a70b0 100644 --- a/0215-Only-attempt-to-scan-different-BLS-directories-on-EF.patch +++ b/0215-Only-attempt-to-scan-different-BLS-directories-on-EF.patch @@ -1,7 +1,7 @@ From 5f0417c63a4dd2252a5a801568f4369ac74a47e6 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 3 Apr 2018 15:42:47 +0200 -Subject: [PATCH 215/238] Only attempt to scan different BLS directories on EFI +Subject: [PATCH 215/243] Only attempt to scan different BLS directories on EFI machines Current BLS support attempted to scan for BLS directories, but this only @@ -45,5 +45,5 @@ index e5617c3bc6c..c0973ff83ea 100644 finish: -- -2.17.0 +2.17.1 diff --git a/0216-Core-TPM-support.patch b/0216-Core-TPM-support.patch index a369dbe0..fccaff55 100644 --- a/0216-Core-TPM-support.patch +++ b/0216-Core-TPM-support.patch @@ -1,7 +1,7 @@ From 65be94a64a5608209561ba0914d29445d81bf4b2 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 14 Jul 2015 17:06:35 -0700 -Subject: [PATCH 216/238] Core TPM support +Subject: [PATCH 216/243] Core TPM support Add support for performing basic TPM measurements. Right now this only supports extending PCRs statically and only on UEFI and BIOS systems, but @@ -785,5 +785,5 @@ index 5c7a2c8f808..84b076962d8 100644 if COND_i386_pc -- -2.17.0 +2.17.1 diff --git a/0217-Measure-kernel-initrd.patch b/0217-Measure-kernel-initrd.patch index fab77dc8..ab8113bb 100644 --- a/0217-Measure-kernel-initrd.patch +++ b/0217-Measure-kernel-initrd.patch @@ -1,7 +1,7 @@ From ffd305d09def6610ef96f928c0df8303c5529d63 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Thu, 16 Jul 2015 15:22:34 -0700 -Subject: [PATCH 217/238] Measure kernel + initrd +Subject: [PATCH 217/243] Measure kernel + initrd Measure the kernel and initrd when loaded on UEFI systems --- @@ -38,5 +38,5 @@ index 6db5d0bf3a0..48febdc8100 100644 if (rc < 0) { -- -2.17.0 +2.17.1 diff --git a/0218-Add-BIOS-boot-measurement.patch b/0218-Add-BIOS-boot-measurement.patch index 2dcc4610..0565522d 100644 --- a/0218-Add-BIOS-boot-measurement.patch +++ b/0218-Add-BIOS-boot-measurement.patch @@ -1,7 +1,7 @@ From d8870587d46f8aa8d4f8db2cdcddecc829993447 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 15:48:51 -0700 -Subject: [PATCH 218/238] Add BIOS boot measurement +Subject: [PATCH 218/243] Add BIOS boot measurement Measure the on-disk grub core on BIOS systems - unlike UEFI, the firmware can't do this stage for us. @@ -175,5 +175,5 @@ index c8b87ed293c..05dd7fa701c 100644 * message: write the string pointed to by %si * -- -2.17.0 +2.17.1 diff --git a/0219-Measure-kernel-and-initrd-on-BIOS-systems.patch b/0219-Measure-kernel-and-initrd-on-BIOS-systems.patch index 3b809df6..e01cb30f 100644 --- a/0219-Measure-kernel-and-initrd-on-BIOS-systems.patch +++ b/0219-Measure-kernel-and-initrd-on-BIOS-systems.patch @@ -1,7 +1,7 @@ From 5aee2444093cfc8006865766f89e5a775a940ab1 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 16:28:29 -0700 -Subject: [PATCH 219/238] Measure kernel and initrd on BIOS systems +Subject: [PATCH 219/243] Measure kernel and initrd on BIOS systems Measure the kernel and initrd when loaded on BIOS systems --- @@ -83,5 +83,5 @@ index be6fa0f4d45..3005c0d19c9 100644 } if (newc) -- -2.17.0 +2.17.1 diff --git a/0220-Measure-the-kernel-commandline.patch b/0220-Measure-the-kernel-commandline.patch index af7d6eef..0efce86a 100644 --- a/0220-Measure-the-kernel-commandline.patch +++ b/0220-Measure-the-kernel-commandline.patch @@ -1,7 +1,7 @@ From c1694574d6eb287e6e181dd018fe54b718a613b3 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 16:32:29 -0700 -Subject: [PATCH 220/238] Measure the kernel commandline +Subject: [PATCH 220/243] Measure the kernel commandline Measure the kernel commandline to ensure that it hasn't been modified --- @@ -39,5 +39,5 @@ index 970ea868c14..6b56304d4a7 100644 return i; } -- -2.17.0 +2.17.1 diff --git a/0221-Measure-commands.patch b/0221-Measure-commands.patch index 89c0b367..5511ab88 100644 --- a/0221-Measure-commands.patch +++ b/0221-Measure-commands.patch @@ -1,7 +1,7 @@ From c93a27f2e6a323a4985e6fe902eb5c6447fca572 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Mon, 10 Aug 2015 15:27:12 -0700 -Subject: [PATCH 221/238] Measure commands +Subject: [PATCH 221/243] Measure commands Measure each command executed by grub, which includes script execution. --- @@ -72,5 +72,5 @@ index 40d3cf65ba6..7fc9d77d277 100644 #define TPM_TAG_RQU_COMMAND 0x00C1 #define TPM_ORD_Extend 0x14 -- -2.17.0 +2.17.1 diff --git a/0222-Measure-multiboot-images-and-modules.patch b/0222-Measure-multiboot-images-and-modules.patch index 37ffe678..f1660d8b 100644 --- a/0222-Measure-multiboot-images-and-modules.patch +++ b/0222-Measure-multiboot-images-and-modules.patch @@ -1,7 +1,7 @@ From b164ec560cd6373c0c5d8a189d70baeca2c3ef13 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 1 Sep 2015 16:02:55 -0700 -Subject: [PATCH 222/238] Measure multiboot images and modules +Subject: [PATCH 222/243] Measure multiboot images and modules --- grub-core/loader/i386/multiboot_mbi.c | 3 +++ @@ -74,5 +74,5 @@ index b0679a9f6c9..a7b4a57ec4f 100644 { grub_free (mld.buffer); -- -2.17.0 +2.17.1 diff --git a/0223-Fix-boot-when-there-s-no-TPM.patch b/0223-Fix-boot-when-there-s-no-TPM.patch index 30e0176c..c64d7796 100644 --- a/0223-Fix-boot-when-there-s-no-TPM.patch +++ b/0223-Fix-boot-when-there-s-no-TPM.patch @@ -1,7 +1,7 @@ From 33fb6113d65a819496d0b67b8db071fedad845a7 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Wed, 23 Mar 2016 16:49:42 -0700 -Subject: [PATCH 223/238] Fix boot when there's no TPM +Subject: [PATCH 223/243] Fix boot when there's no TPM If the firmware has TPM support but has no TPM, we're jumping to core.img without popping the registers back onto the stack. Fix that. @@ -28,5 +28,5 @@ index c1df86dec0b..acab37369ae 100644 jmp *(LOCAL(kernel_address)) -- -2.17.0 +2.17.1 diff --git a/0224-Rework-TPM-measurements.patch b/0224-Rework-TPM-measurements.patch index 9871e81c..51e2cba0 100644 --- a/0224-Rework-TPM-measurements.patch +++ b/0224-Rework-TPM-measurements.patch @@ -1,7 +1,7 @@ From 415072bbda8b4de133c6dc6add230e41ee6d9579 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Wed, 23 Mar 2016 17:03:43 -0700 -Subject: [PATCH 224/238] Rework TPM measurements +Subject: [PATCH 224/243] Rework TPM measurements Rework TPM measurements to use fewer PCRs. After discussion with upstream, it's preferable to avoid using so many PCRs. Instead, measure into PCRs 8 @@ -215,5 +215,5 @@ index 7fc9d77d277..ecb2d09ff5d 100644 #if defined (GRUB_MACHINE_EFI) || defined (GRUB_MACHINE_PCBIOS) grub_err_t grub_tpm_execute(PassThroughToTPM_InputParamBlock *inbuf, -- -2.17.0 +2.17.1 diff --git a/0225-Fix-event-log-prefix.patch b/0225-Fix-event-log-prefix.patch index e3e35c53..fa38b1fb 100644 --- a/0225-Fix-event-log-prefix.patch +++ b/0225-Fix-event-log-prefix.patch @@ -1,7 +1,7 @@ From 0816621235226952a5bd0cfd027eb97ff84df547 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 29 Mar 2016 15:36:49 -0700 -Subject: [PATCH 225/238] Fix event log prefix +Subject: [PATCH 225/243] Fix event log prefix We're not passing the prefixed version of the description to the event log. Fix that. @@ -25,5 +25,5 @@ index cb5a812035d..e5e8fced624 100644 return ret; } -- -2.17.0 +2.17.1 diff --git a/0226-Set-the-first-boot-menu-entry-as-default-when-using-.patch b/0226-Set-the-first-boot-menu-entry-as-default-when-using-.patch index c76ba910..b04b34a9 100644 --- a/0226-Set-the-first-boot-menu-entry-as-default-when-using-.patch +++ b/0226-Set-the-first-boot-menu-entry-as-default-when-using-.patch @@ -1,7 +1,7 @@ From 8278e40fdc4a4db0865fc632cbe2dcf7c124ba7a Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Fri, 6 Apr 2018 14:08:36 +0200 -Subject: [PATCH 226/238] Set the first boot menu entry as default when using +Subject: [PATCH 226/243] Set the first boot menu entry as default when using BLS fragments When BootLoaderSpec configuration files are used, the default boot menu @@ -26,5 +26,5 @@ index f5daefb9d24..b24bb410dc0 100644 exit 0 -- -2.17.0 +2.17.1 diff --git a/0227-tpm-fix-warnings-when-compiling-for-platforms-other-.patch b/0227-tpm-fix-warnings-when-compiling-for-platforms-other-.patch index bfbd1b86..f1a86ea2 100644 --- a/0227-tpm-fix-warnings-when-compiling-for-platforms-other-.patch +++ b/0227-tpm-fix-warnings-when-compiling-for-platforms-other-.patch @@ -1,7 +1,7 @@ From 4c53f61b1a889c0f55e76a763b05b6686ec613b8 Mon Sep 17 00:00:00 2001 From: Michael Marineau Date: Sun, 21 Aug 2016 18:24:58 -0700 -Subject: [PATCH 227/238] tpm: fix warnings when compiling for platforms other +Subject: [PATCH 227/243] tpm: fix warnings when compiling for platforms other than pc and efi --- @@ -37,5 +37,5 @@ index ecb2d09ff5d..972a5edc836 100644 return 0; }; -- -2.17.0 +2.17.1 diff --git a/0228-Make-TPM-errors-less-fatal.patch b/0228-Make-TPM-errors-less-fatal.patch index c27d64b1..906e13ae 100644 --- a/0228-Make-TPM-errors-less-fatal.patch +++ b/0228-Make-TPM-errors-less-fatal.patch @@ -1,7 +1,7 @@ From 406f7dda0cc2689170f102341a546c87072d1ce5 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Thu, 13 Oct 2016 13:55:26 -0700 -Subject: [PATCH 228/238] Make TPM errors less fatal +Subject: [PATCH 228/243] Make TPM errors less fatal Handle TPM errors, and stop trying to use the TPM once we hit one. --- @@ -207,5 +207,5 @@ index 976643c47b0..93965777138 100644 invert = 0; argc = argv.argc - 1; -- -2.17.0 +2.17.1 diff --git a/0229-blscfg-handle-multiple-initramfs-images.patch b/0229-blscfg-handle-multiple-initramfs-images.patch index 2140ec7e..a0c9a1b0 100644 --- a/0229-blscfg-handle-multiple-initramfs-images.patch +++ b/0229-blscfg-handle-multiple-initramfs-images.patch @@ -1,7 +1,7 @@ From a230ec5c31d818c2f046acf3592a5492d3e2ea69 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 11 Apr 2018 13:44:29 -0400 -Subject: [PATCH 229/238] blscfg: handle multiple initramfs images. +Subject: [PATCH 229/243] blscfg: handle multiple initramfs images. Signed-off-by: Peter Jones --- @@ -103,5 +103,5 @@ index c0973ff83ea..1e5972422d6 100644 struct find_entry_info { -- -2.17.0 +2.17.1 diff --git a/0230-BLS-Fix-grub2-switch-to-blscfg-on-non-EFI-machines.patch b/0230-BLS-Fix-grub2-switch-to-blscfg-on-non-EFI-machines.patch index 454eed20..1ac6b6e7 100644 --- a/0230-BLS-Fix-grub2-switch-to-blscfg-on-non-EFI-machines.patch +++ b/0230-BLS-Fix-grub2-switch-to-blscfg-on-non-EFI-machines.patch @@ -1,7 +1,7 @@ From f006df881d1b2b3ca7320ecfcd33181295ec1018 Mon Sep 17 00:00:00 2001 From: Jan Hlavac Date: Tue, 10 Apr 2018 16:07:36 +0200 -Subject: [PATCH 230/238] BLS: Fix grub2-switch-to-blscfg on non-EFI machines +Subject: [PATCH 230/243] BLS: Fix grub2-switch-to-blscfg on non-EFI machines On the non-EFI machines the grub2-switch-to-blscfg script places the BLS snippets into the /boot directory. But the right location is @@ -24,5 +24,5 @@ index 3ae5e4ea8d0..f740b8f4d03 100644 backupsuffix=.bak -- -2.17.0 +2.17.1 diff --git a/0231-BLS-Use-etcdefaultgrub-instead-of-etc.patch b/0231-BLS-Use-etcdefaultgrub-instead-of-etc.patch index df995c26..1c1f02ee 100644 --- a/0231-BLS-Use-etcdefaultgrub-instead-of-etc.patch +++ b/0231-BLS-Use-etcdefaultgrub-instead-of-etc.patch @@ -1,7 +1,7 @@ From 29b79fde633a43223ead7874ffd373603f129832 Mon Sep 17 00:00:00 2001 From: Jan Hlavac Date: Tue, 10 Apr 2018 16:56:28 +0200 -Subject: [PATCH 231/238] BLS: Use ${etcdefaultgrub} instead of /etc/... +Subject: [PATCH 231/243] BLS: Use ${etcdefaultgrub} instead of /etc/... Inside the grub-switch-to-blscfg script the ${etcdefaultgrub} variable is used. So replace the hardcoded /etc/default/grub with it. @@ -23,5 +23,5 @@ index f740b8f4d03..eae3c379e4a 100644 exit 1 fi -- -2.17.0 +2.17.1 diff --git a/0232-Add-missing-options-to-grub2-switch-to-blscfg-man-pa.patch b/0232-Add-missing-options-to-grub2-switch-to-blscfg-man-pa.patch index 59a9a1f7..d4376143 100644 --- a/0232-Add-missing-options-to-grub2-switch-to-blscfg-man-pa.patch +++ b/0232-Add-missing-options-to-grub2-switch-to-blscfg-man-pa.patch @@ -1,7 +1,7 @@ From c3a05672a450fd9e95de5df2b0c27c24fe04cd83 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Wed, 11 Apr 2018 11:36:43 +0200 -Subject: [PATCH 232/238] Add missing options to grub2-switch-to-blscfg man +Subject: [PATCH 232/243] Add missing options to grub2-switch-to-blscfg man page The script --bls-directory and --backup-suffix options were not documented @@ -31,5 +31,5 @@ index 134dfc62a7b..7d99de2d2f9 100644 .SH SEE ALSO .BR "info grub" -- -2.17.0 +2.17.1 diff --git a/0233-Make-grub2-switch-to-blscfg-to-generate-debug-BLS-wh.patch b/0233-Make-grub2-switch-to-blscfg-to-generate-debug-BLS-wh.patch index c45082aa..f9b8538b 100644 --- a/0233-Make-grub2-switch-to-blscfg-to-generate-debug-BLS-wh.patch +++ b/0233-Make-grub2-switch-to-blscfg-to-generate-debug-BLS-wh.patch @@ -1,7 +1,7 @@ From 55b00d518e029a563653401c6908489924c07238 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Wed, 11 Apr 2018 11:49:24 +0200 -Subject: [PATCH 233/238] Make grub2-switch-to-blscfg to generate debug BLS +Subject: [PATCH 233/243] Make grub2-switch-to-blscfg to generate debug BLS when MAKEDEBUG is set If MAKEDEBUG=yes in /etc/sysconfig/kernel, then a debug menu entry should @@ -57,5 +57,5 @@ index eae3c379e4a..c59299ffa6a 100644 GENERATE=0 -- -2.17.0 +2.17.1 diff --git a/0234-Make-grub2-switch-to-blscfg-to-generate-BLS-fragment.patch b/0234-Make-grub2-switch-to-blscfg-to-generate-BLS-fragment.patch index 37665bb4..8fe2aefe 100644 --- a/0234-Make-grub2-switch-to-blscfg-to-generate-BLS-fragment.patch +++ b/0234-Make-grub2-switch-to-blscfg-to-generate-BLS-fragment.patch @@ -1,7 +1,7 @@ From 60bddbc714c96ca05821d52bdd7dbad7eabd6dd5 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Wed, 11 Apr 2018 12:39:59 +0200 -Subject: [PATCH 234/238] Make grub2-switch-to-blscfg to generate BLS fragment +Subject: [PATCH 234/243] Make grub2-switch-to-blscfg to generate BLS fragment for rescue kernel If a rescue image is available, it should have a BootLoaderSpec fragment. @@ -27,5 +27,5 @@ index c59299ffa6a..bc28053cd30 100644 if grep '^GRUB_ENABLE_BLSCFG=.*' "${etcdefaultgrub}" \ | grep -vq '^GRUB_ENABLE_BLSCFG="*true"*\s*$' ; then -- -2.17.0 +2.17.1 diff --git a/0235-Only-attempt-to-query-dev-mounted-in-boot-efi-as-boo.patch b/0235-Only-attempt-to-query-dev-mounted-in-boot-efi-as-boo.patch index 84023347..9c534149 100644 --- a/0235-Only-attempt-to-query-dev-mounted-in-boot-efi-as-boo.patch +++ b/0235-Only-attempt-to-query-dev-mounted-in-boot-efi-as-boo.patch @@ -1,7 +1,7 @@ From 8afe59812e83e78564697ef8241ed4f1b3527423 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 24 Apr 2018 02:16:38 +0200 -Subject: [PATCH 235/238] Only attempt to query dev mounted in /boot/efi as +Subject: [PATCH 235/243] Only attempt to query dev mounted in /boot/efi as boot dev on EFI machines The 10_linux script calls grub2-probe to probe the information for the dev @@ -39,5 +39,5 @@ index b24bb410dc0..c2ffc77398f 100644 cat << EOF insmod blscfg -- -2.17.0 +2.17.1 diff --git a/0236-Include-OSTree-path-when-searching-kernels-images-if.patch b/0236-Include-OSTree-path-when-searching-kernels-images-if.patch index 39642cd6..915753c4 100644 --- a/0236-Include-OSTree-path-when-searching-kernels-images-if.patch +++ b/0236-Include-OSTree-path-when-searching-kernels-images-if.patch @@ -1,7 +1,7 @@ From 459eaeacbb40116dcb501cf165c7816e70c66fb3 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 24 Apr 2018 02:28:04 +0200 -Subject: [PATCH 236/238] Include OSTree path when searching kernels images if +Subject: [PATCH 236/243] Include OSTree path when searching kernels images if BLS config is enabled The OSTree based distros (i.e: Fedora Atomic) don't install kernel images @@ -37,5 +37,5 @@ index c2ffc77398f..15ba8eff8a6 100644 i?86) GENKERNEL_ARCH="x86" ;; mips|mips64) GENKERNEL_ARCH="mips" ;; -- -2.17.0 +2.17.1 diff --git a/0237-Use-BLS-version-field-to-compare-entries-if-id-field.patch b/0237-Use-BLS-version-field-to-compare-entries-if-id-field.patch index d7fba4d0..b87c2bd9 100644 --- a/0237-Use-BLS-version-field-to-compare-entries-if-id-field.patch +++ b/0237-Use-BLS-version-field-to-compare-entries-if-id-field.patch @@ -1,7 +1,7 @@ From 689a48c76bee8049a50f962852f43f108c815450 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Fri, 27 Apr 2018 17:53:41 +0200 -Subject: [PATCH 237/238] Use BLS version field to compare entries if id field +Subject: [PATCH 237/243] Use BLS version field to compare entries if id field isn't defined The BootLoaderSpec fragments generated by OSTree don't have the id field, @@ -28,5 +28,5 @@ index 1e5972422d6..72ee497ea2d 100644 rc = bls_keyval_cmp (e0, e1, "title"); -- -2.17.0 +2.17.1 diff --git a/0238-Add-version-field-to-BLS-generated-by-grub2-switch-t.patch b/0238-Add-version-field-to-BLS-generated-by-grub2-switch-t.patch index 37069a4a..a060e7d3 100644 --- a/0238-Add-version-field-to-BLS-generated-by-grub2-switch-t.patch +++ b/0238-Add-version-field-to-BLS-generated-by-grub2-switch-t.patch @@ -1,7 +1,7 @@ From 0994be8d655420685d900a08443b4fd53f639e72 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Thu, 10 May 2018 10:52:11 +0200 -Subject: [PATCH 238/238] Add version field to BLS generated by +Subject: [PATCH 238/243] Add version field to BLS generated by grub2-switch-to-blscfg The version field is present in the BLS fragments that are shipped in the @@ -41,5 +41,5 @@ index bc28053cd30..89487ad611c 100644 initrd /initramfs-${kernelver}.img options \$kernelopts -- -2.17.0 +2.17.1 diff --git a/0239-Fixup-for-newer-compiler.patch b/0239-Fixup-for-newer-compiler.patch new file mode 100644 index 00000000..3b3e6a17 --- /dev/null +++ b/0239-Fixup-for-newer-compiler.patch @@ -0,0 +1,53 @@ +From 0724038a6f554f688cfcd6e05d52329c384d8a6d Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Thu, 10 May 2018 13:40:19 -0400 +Subject: [PATCH 239/243] Fixup for newer compiler + +--- + conf/Makefile.common | 2 +- + grub-core/fs/btrfs.c | 2 +- + include/grub/gpt_partition.h | 2 +- + 3 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/conf/Makefile.common b/conf/Makefile.common +index 044ab3abe88..c75848f5c06 100644 +--- a/conf/Makefile.common ++++ b/conf/Makefile.common +@@ -38,7 +38,7 @@ CFLAGS_KERNEL = $(CFLAGS_PLATFORM) -ffreestanding + LDFLAGS_KERNEL = $(LDFLAGS_PLATFORM) -nostdlib $(TARGET_LDFLAGS_OLDMAGIC) + CPPFLAGS_KERNEL = $(CPPFLAGS_CPU) $(CPPFLAGS_PLATFORM) -DGRUB_KERNEL=1 + CCASFLAGS_KERNEL = $(CCASFLAGS_CPU) $(CCASFLAGS_PLATFORM) +-STRIPFLAGS_KERNEL = -R .eh_frame -R .rel.dyn -R .reginfo -R .note -R .comment -R .drectve -R .note.gnu.gold-version -R .MIPS.abiflags -R .ARM.exidx ++STRIPFLAGS_KERNEL = -R .eh_frame -R .rel.dyn -R .reginfo -R .note -R .comment -R .drectve -R .note.gnu.gold-version -R .MIPS.abiflags -R .ARM.exidx -R .note.gnu.property -R .gnu.build.attributes + + CFLAGS_MODULE = $(CFLAGS_PLATFORM) -ffreestanding + LDFLAGS_MODULE = $(LDFLAGS_PLATFORM) -nostdlib $(TARGET_LDFLAGS_OLDMAGIC) -Wl,-r,-d +diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c +index 3cd9472197c..8d3f644e124 100644 +--- a/grub-core/fs/btrfs.c ++++ b/grub-core/fs/btrfs.c +@@ -198,7 +198,7 @@ struct grub_btrfs_inode + grub_uint64_t size; + grub_uint8_t dummy2[0x70]; + struct grub_btrfs_time mtime; +-} GRUB_PACKED; ++} GRUB_PACKED __attribute__ ((aligned(8))); + + struct grub_btrfs_extent_data + { +diff --git a/include/grub/gpt_partition.h b/include/grub/gpt_partition.h +index 1b32f6725a4..8cddf997efc 100644 +--- a/include/grub/gpt_partition.h ++++ b/include/grub/gpt_partition.h +@@ -76,7 +76,7 @@ struct grub_gpt_partentry + grub_uint64_t end; + grub_uint64_t attrib; + char name[72]; +-} GRUB_PACKED; ++} GRUB_PACKED __attribute__ ((aligned(8))); + + grub_err_t + grub_gpt_partition_map_iterate (grub_disk_t disk, +-- +2.17.1 + diff --git a/0240-Don-t-attempt-to-export-the-start-and-_start-symbols.patch b/0240-Don-t-attempt-to-export-the-start-and-_start-symbols.patch new file mode 100644 index 00000000..0e624a8b --- /dev/null +++ b/0240-Don-t-attempt-to-export-the-start-and-_start-symbols.patch @@ -0,0 +1,45 @@ +From d03f1ebcdf88a1bf850730b9cbd1126894bdca76 Mon Sep 17 00:00:00 2001 +From: Javier Martinez Canillas +Date: Sat, 12 May 2018 11:29:07 +0200 +Subject: [PATCH 240/243] Don't attempt to export the start and _start symbols + for grub-emu + +Commit 318ee04aadc ("make better backtraces") reworked the backtrace logic +but the changes lead to the following build error on the grub-emu platform: + +grub_emu_lite-symlist.o:(.data+0xf08): undefined reference to `start' +collect2: error: ld returned 1 exit status +make[3]: *** [Makefile:25959: grub-emu-lite] Error 1 +make[3]: *** Waiting for unfinished jobs.... +cat kernel_syms.input | grep -v '^#' | sed -n \ + -e '/EXPORT_FUNC *([a-zA-Z0-9_]*)/{s/.*EXPORT_FUNC *(\([a-zA-Z0-9_]*\)).*/defined kernel '""'\1/;p;}' \ + -e '/EXPORT_VAR *([a-zA-Z0-9_]*)/{s/.*EXPORT_VAR *(\([a-zA-Z0-9_]*\)).*/defined kernel '""'\1/;p;}' \ + | sort -u >kernel_syms.lst + +The problem is that start and _start symbols are exported unconditionally, +but these aren't defined for grub-emu since is an emultaed platform so it +doesn't have a startup logic. Don't attempt to export those for grub-emu. + +Signed-off-by: Javier Martinez Canillas +--- + include/grub/kernel.h | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/include/grub/kernel.h b/include/grub/kernel.h +index ae69218af20..9548d552aad 100644 +--- a/include/grub/kernel.h ++++ b/include/grub/kernel.h +@@ -108,8 +108,10 @@ grub_addr_t grub_modules_get_end (void); + + #endif + ++#if !defined(GRUB_MACHINE_EMU) + void EXPORT_FUNC(start) (void); + void EXPORT_FUNC(_start) (void); ++#endif + + /* The start point of the C code. */ + void grub_main (void) __attribute__ ((noreturn)); +-- +2.17.1 + diff --git a/0241-Simplify-BLS-entry-key-val-pairs-lookup.patch b/0241-Simplify-BLS-entry-key-val-pairs-lookup.patch new file mode 100644 index 00000000..88b24562 --- /dev/null +++ b/0241-Simplify-BLS-entry-key-val-pairs-lookup.patch @@ -0,0 +1,173 @@ +From 385bb1bd33e9467eda798ea3a4ac16e86a40ce75 Mon Sep 17 00:00:00 2001 +From: Javier Martinez Canillas +Date: Fri, 11 May 2018 23:47:31 +0200 +Subject: [PATCH 241/243] Simplify BLS entry key val pairs lookup + +The pairs found in the BLS are being sorted but this isn't +really needed and it makes the implementation complex and error prone. + +For example, the current implementation has the following issues: + +1) Fields not present in the grub2 menu entry + + linux /linuz + initrd /foo + initrd /bar + + load_video + set gfx_payload=keep + insmod gzio + linux /boot/linuz + initrd /boot/bar + +2) Fields present but in the wrong order + + title Fedora (4.16.6-300.fc28.x86_64-tuned) 28 (Twenty Eight) + version 4.16.6-300.fc28.x86_64 + linux /vmlinuz-4.16.6-300.fc28.x86_64 + initrd /foo.img + initrd /bar.img + options $kernelopts + id fedora-20180430150025-4.16.6-300.fc28.x86_64 + + load_video + set gfx_payload=keep + insmod gzio + linux /boot/vmlinuz-4.16.6-300.fc28.x86_64 $kernelopts + initrd /boot/bar.img /boot/foo.img + +It's important to preserve the order in which fields have been defined +in the BLS fragment since for some of the fields the order has meaning. +For example, initramfs images have to be passed to the kernel in order +that were defined in the BLS fragment. + +This patch simplifies the pairs storage and lookup. Rather +than sorting and attempt to later figure out what's the expected order, +just store it in the same order as they were defined in the BLS config +file and return in that same order to callers when these look them up. + +Signed-off-by: Javier Martinez Canillas +--- + grub-core/commands/blscfg.c | 88 ++++++++++----------------------------------- + 1 file changed, 18 insertions(+), 70 deletions(-) + +diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c +index 72ee497ea2d..111972d5f67 100644 +--- a/grub-core/commands/blscfg.c ++++ b/grub-core/commands/blscfg.c +@@ -169,84 +169,35 @@ static void bls_free_entry(struct bls_entry *entry) + grub_free (entry); + } + +-static int keyval_cmp (const void *p0, const void *p1, +- void *state UNUSED) +-{ +- const struct keyval *kv0 = *(struct keyval * const *)p0; +- const struct keyval *kv1 = *(struct keyval * const *)p1; +- int rc; +- +- rc = grub_strcmp(kv0->key, kv1->key); +- +- return rc; +-} +- + /* Find they value of the key named by keyname. If there are allowed to be + * more than one, pass a pointer to an int set to -1 the first time, and pass + * the same pointer through each time after, and it'll return them in sorted +- * order. */ ++ * order as defined in the BLS fragment file */ + static char *bls_get_val(struct bls_entry *entry, const char *keyname, int *last) + { +- char *foo = (char *)""; +- struct keyval *kv = NULL, **kvp, key = {keyname, foo}, *keyp = &key; ++ int idx, start = 0; ++ struct keyval *kv = NULL; + +- /* if we've already found an entry that matches, just iterate */ +- if (last && *last >= 0) +- { +- int next = ++last[0]; ++ if (last) ++ start = *last + 1; + +- if (next == entry->nkeyvals) +- { +-done: +- *last = -1; +- return NULL; +- } ++ for (idx = start; idx < entry->nkeyvals; idx++) { ++ kv = entry->keyvals[idx]; + +- kv = entry->keyvals[next]; +- if (grub_strcmp (keyname, kv->key)) +- goto done; ++ if (!grub_strcmp (keyname, kv->key)) ++ break; ++ } + +- return kv->val; +- } ++ if (idx == entry->nkeyvals) { ++ if (last) ++ *last = -1; ++ return NULL; ++ } + +- kvp = grub_bsearch(&keyp, &entry->keyvals[0], entry->nkeyvals, +- sizeof (struct keyval *), keyval_cmp, NULL); +- if (kvp) +- kv = *kvp; ++ if (last) ++ *last = idx; + +- if (kv) +- { +- /* if we've got uninitialized but present state, track back until we find +- * the first match */ +- if (last) +- { +- grub_dprintf("blscfg", "%s trying to find another entry because last was set\n", __func__); +- /* figure out the position of this entry in the array */ +- int idx; +- for (idx = 0 ; idx < entry->nkeyvals; idx++) +- if (entry->keyvals[idx] == kv) +- break; +- *last = idx; +- +- while (idx > 0) +- { +- struct keyval *kvtmp = entry->keyvals[idx-1]; +- if (idx == 0 || grub_strcmp (keyname, kvtmp->key)) +- { +- /* if we're at the start, or if the previous entry doesn't +- * match, then we're done */ +- *last = idx; +- break; +- } +- else +- /* but if it does match, keep going backwards */ +- idx--; +- } +- } +- +- return kv->val; +- } +- return NULL; ++ return kv->val; + } + + #define goto_return(x) ({ ret = (x); goto finish; }) +@@ -503,9 +454,6 @@ static int read_entry ( + break; + } + +- grub_qsort(&entry->keyvals[0], entry->nkeyvals, sizeof (struct keyval *), +- keyval_cmp, NULL); +- + finish: + grub_free (p); + +-- +2.17.1 + diff --git a/0242-Add-relative-path-to-the-kernel-and-initrds-BLS-fiel.patch b/0242-Add-relative-path-to-the-kernel-and-initrds-BLS-fiel.patch new file mode 100644 index 00000000..d9bedf66 --- /dev/null +++ b/0242-Add-relative-path-to-the-kernel-and-initrds-BLS-fiel.patch @@ -0,0 +1,76 @@ +From a24ca589707fa69fe7be9dc1007f4ae114994f9f Mon Sep 17 00:00:00 2001 +From: Javier Martinez Canillas +Date: Mon, 4 Jun 2018 16:10:22 +0200 +Subject: [PATCH 242/243] Add relative path to the kernel and initrds BLS + fields if needed + +The static BLS config file shipped with the kernel package assumes that +the /boot directory is a mount point, and that the kernel and initramfs +images relative path is to the root of a boot partition. + +But there are cases in which this isn't true, for example if a user has +its /boot in a btrfs subvolume or if /boot isn't a mount point at all. + +So instead of always using the BLS fragment file as distributed by the +package, check the relative path that GRUB 2 has to use for the images. + +Signed-off-by: Javier Martinez Canillas +--- + util/grub-switch-to-blscfg.in | 20 +++++++++++++++++--- + 1 file changed, 17 insertions(+), 3 deletions(-) + +diff --git a/util/grub-switch-to-blscfg.in b/util/grub-switch-to-blscfg.in +index 89487ad611c..2482483a437 100644 +--- a/util/grub-switch-to-blscfg.in ++++ b/util/grub-switch-to-blscfg.in +@@ -188,6 +188,7 @@ fi + mkbls() { + local kernelver=$1 && shift + local datetime=$1 && shift ++ local bootprefix=$1 && shift + + local debugname="" + local debugid="" +@@ -206,8 +207,8 @@ mkbls() { + cat <"${bls_target}" + fi + ++ linux="$(grep '^linux[ \t]' "${bls_target}" | sed -e 's,^linux[ \t]*,,')" ++ initrd="$(grep '^initrd[ \t]' "${bls_target}" | sed -e 's,^initrd[ \t]*,,')" ++ linux_relpath="$("${grub_mkrelpath}" /boot/$linux)" ++ initrd_relpath="$("${grub_mkrelpath}" /boot/$initrd)" ++ ++ if [[ $linux != $linux_relpath ]]; then ++ sed -i -e "s,^linux.*,linux ${linux_relpath},g" "${bls_target}" ++ sed -i -e "s,^initrd.*,initrd ${initrd_relpath},g" "${bls_target}" ++ fi ++ + if [ "x$GRUB_LINUX_MAKE_DEBUG" = "xtrue" ]; then + arch="$(uname -m)" + bls_debug="$(echo ${bls_target} | sed -e "s/\.${arch}/-debug.${arch}/")" +@@ -247,7 +258,10 @@ for kernelver in $(cd /lib/modules/ ; ls -1) "" ; do + done + + if [[ -f "/boot/vmlinuz-0-rescue-${MACHINE_ID}" ]]; then +- mkbls "0-rescue-${MACHINE_ID}" "0" >"${blsdir}/${MACHINE_ID}-0-rescue.conf" ++ if [[ $linux != $linux_relpath ]]; then ++ bootprefix="$(dirname ${linux_relpath})" ++ fi ++ mkbls "0-rescue-${MACHINE_ID}" "0" "${bootprefix}" >"${blsdir}/${MACHINE_ID}-0-rescue.conf" + fi + + GENERATE=0 +-- +2.17.1 + diff --git a/0243-Skip-leading-spaces-on-BLS-field-values.patch b/0243-Skip-leading-spaces-on-BLS-field-values.patch new file mode 100644 index 00000000..0a59d0b0 --- /dev/null +++ b/0243-Skip-leading-spaces-on-BLS-field-values.patch @@ -0,0 +1,59 @@ +From a5bf618156915e97a0e7df07556ab728377de77e Mon Sep 17 00:00:00 2001 +From: Javier Martinez Canillas +Date: Thu, 7 Jun 2018 00:44:51 +0200 +Subject: [PATCH 243/243] Skip leading spaces on BLS field values + +The GRUB 2 blscfg command doesn't parse correctly the BLS fields if these +have extra spaces before the field values. For example, the following BLS +fragment generates a wrong menu entry due using spaces to tabulate values: + +title Fedora 28 (Twenty Eight) +version 4.16.13-300.fc28.x86_64 +machine-id e5c131dfee3249cbb9891c2641d8e350 +linux /vmlinuz-4.16.13-300.fc28.x86_64 +initrd /initramfs-4.16.13-300.fc28.x86_64.img +options root=/dev/mapper/fedora-root ro + +Wrong generated menu entry: + +load_video +set gfx_payload=keep +insmod gzio +linux ($root) /vmlinuz-4.16.13-300.fc28.x86_64 root=/dev/mapper/fedora-root ro +initrd ($root) /initramfs-4.16.13-300.fc28.x86_64.img + +Correct menu entry after the fix: + +load_video +set gfx_payload=keep +insmod gzio +linux ($root)/vmlinuz-4.16.13-300.fc28.x86_64 root=/dev/mapper/fedora-root ro +initrd ($root)/initramfs-4.16.13-300.fc28.x86_64.img + +Resolves: rhbz#1588184 + +Signed-off-by: Javier Martinez Canillas +--- + grub-core/commands/blscfg.c | 6 +++++- + 1 file changed, 5 insertions(+), 1 deletion(-) + +diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c +index 111972d5f67..cd5c29fdf74 100644 +--- a/grub-core/commands/blscfg.c ++++ b/grub-core/commands/blscfg.c +@@ -448,7 +448,11 @@ static int read_entry ( + + separator[0] = '\0'; + +- rc = bls_add_keyval (entry, buf, separator+1); ++ do { ++ separator++; ++ } while (*separator == ' ' || *separator == '\t'); ++ ++ rc = bls_add_keyval (entry, buf, separator); + grub_free (buf); + if (rc < 0) + break; +-- +2.17.1 + diff --git a/20-grub.install b/20-grub.install index 4cf8fe64..8c6ae685 100755 --- a/20-grub.install +++ b/20-grub.install @@ -87,6 +87,16 @@ case "$COMMAND" in >"${BLS_TARGET}" fi + LINUX="$(grep '^linux[ \t]' "${BLS_TARGET}" | sed -e 's,^linux[ \t]*,,')" + INITRD="$(grep '^initrd[ \t]' "${BLS_TARGET}" | sed -e 's,^initrd[ \t]*,,')" + LINUX_RELPATH="$(grub2-mkrelpath /boot${LINUX})" + BOOTPREFIX="$(dirname ${LINUX_RELPATH})" + + if [[ $LINUX != $LINUX_RELPATH ]]; then + sed -i -e "s,^linux.*,linux ${BOOTPREFIX}${LINUX},g" "${BLS_TARGET}" + sed -i -e "s,^initrd.*,initrd ${BOOTPREFIX}${INITRD},g" "${BLS_TARGET}" + fi + eval "$(grub2-get-kernel-settings)" || true if [ "x$GRUB_LINUX_MAKE_DEBUG" = "xtrue" ]; then ARCH="$(uname -m)" diff --git a/grub.patches b/grub.patches index c1288ff4..ea808f03 100644 --- a/grub.patches +++ b/grub.patches @@ -236,3 +236,8 @@ Patch0235: 0235-Only-attempt-to-query-dev-mounted-in-boot-efi-as-boo.patch Patch0236: 0236-Include-OSTree-path-when-searching-kernels-images-if.patch Patch0237: 0237-Use-BLS-version-field-to-compare-entries-if-id-field.patch Patch0238: 0238-Add-version-field-to-BLS-generated-by-grub2-switch-t.patch +Patch0239: 0239-Fixup-for-newer-compiler.patch +Patch0240: 0240-Don-t-attempt-to-export-the-start-and-_start-symbols.patch +Patch0241: 0241-Simplify-BLS-entry-key-val-pairs-lookup.patch +Patch0242: 0242-Add-relative-path-to-the-kernel-and-initrds-BLS-fiel.patch +Patch0243: 0243-Skip-leading-spaces-on-BLS-field-values.patch diff --git a/grub2.spec b/grub2.spec index 6b849734..166a4f5d 100644 --- a/grub2.spec +++ b/grub2.spec @@ -7,7 +7,7 @@ Name: grub2 Epoch: 1 Version: 2.02 -Release: 36%{?dist} +Release: 37%{?dist} Summary: Bootloader with support for Linux, Multiboot and more Group: System Environment/Base License: GPLv3+ @@ -453,6 +453,10 @@ fi %endif %changelog +* Thu Jun 07 2018 Javier Martinez Canillas - 2.02-37 +- More fixes for BLS + Resolves: rhbz#1588184 + * Thu May 10 2018 Javier Martinez Canillas - 2.02-36 - Use version field to sort BLS entries if id field isn't defined - Add version field to BLS fragments generated by 20-grub.install From 46dcf6afe968e261a0a2e53f991c058630afaf1b Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Fri, 15 Jun 2018 15:06:00 +0200 Subject: [PATCH 25/45] Make 20-grub.install to exit if there is no machine ID set The kernel-install plugins are called with an environment variable named $KERNEL_INSTALL_MACHINE_ID, which is set to the machine ID read from the /etc/machine-id file. If the file doesn't exist or is empty, the variable is empty and $BOOT_DIR_ABS is set to a temporary directory that's removed after all the plugins exit. So if $KERNEL_INSTALL_MACHINE_ID is not set, just exit the script since installing a kernel BootLoaderSpec fragment won't be possible anyways. Resolves: rhbz#1576573 Signed-off-by: Javier Martinez Canillas --- 20-grub.install | 4 ++++ grub2.spec | 6 +++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/20-grub.install b/20-grub.install index 8c6ae685..a6959c52 100755 --- a/20-grub.install +++ b/20-grub.install @@ -1,5 +1,9 @@ #!/bin/bash +if ! [[ $KERNEL_INSTALL_MACHINE_ID ]]; then + exit 0 +fi + [[ -f /etc/default/grub ]] && . /etc/default/grub [[ -f /etc/os-release ]] && . /etc/os-release diff --git a/grub2.spec b/grub2.spec index 166a4f5d..4679073b 100644 --- a/grub2.spec +++ b/grub2.spec @@ -7,7 +7,7 @@ Name: grub2 Epoch: 1 Version: 2.02 -Release: 37%{?dist} +Release: 38%{?dist} Summary: Bootloader with support for Linux, Multiboot and more Group: System Environment/Base License: GPLv3+ @@ -453,6 +453,10 @@ fi %endif %changelog +* Fri Jun 15 2018 Javier Martinez Canillas - 2.02-38 +- Make 20-grub.install to exit if there is no machine ID set + Resolves: rhbz#1576573 + * Thu Jun 07 2018 Javier Martinez Canillas - 2.02-37 - More fixes for BLS Resolves: rhbz#1588184 From 2be1600cad4af1e71d8741329c68a1e5a4f884a3 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 19 Jun 2018 10:32:46 -0400 Subject: [PATCH 26/45] Include lsmmap in the efi build Signed-off-by: Peter Jones --- grub.macros | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/grub.macros b/grub.macros index 4331bc0a..2a995d16 100644 --- a/grub.macros +++ b/grub.macros @@ -82,10 +82,11 @@ %{?with_efi_only:%global without_efi_only 1} ### fixme +%global efi_modules_base http lsmmap %ifarch aarch64 %{arm} -%global efi_modules " http linux " +%global efi_modules "%{efi_modules_base} linux " %else -%global efi_modules " backtrace http linuxefi usb usbserial_common usbserial_pl2303 usbserial_ftdi usbserial_usbdebug " +%global efi_modules "%{efi_modules_base} backtrace linuxefi usb usbserial_common usbserial_pl2303 usbserial_ftdi usbserial_usbdebug " %endif %ifarch aarch64 From 448fa56b6ae3c74d4fe258592e57ba1fe47ab99b Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 19 Jun 2018 10:33:22 -0400 Subject: [PATCH 27/45] Various bugfixes - Make the release be 37 since 36 is the last one we actually built - Squash down the changelog for that as well - Fix some TPM errors on 32-bit (hdegoede) - More fixups to avoid compiler changes (pjones) - Put lsmmap into the EFI builds (pjones) Related: rhbz#1572126 Signed-off-by: Peter Jones --- 0001-Bump-version-to-2.03.patch | 2 +- 0002-Remove-bashisms-from-tests.patch | 2 +- 0003-fs-tester-make-sh-compatible.patch | 2 +- 0004-support-busybox-date.patch | 2 +- ...retrieve-fstime-when-it-s-not-useful.patch | 2 +- 0006-Support-lseek64.patch | 2 +- 0007-Use-SHELL-rather-than-bin-sh.patch | 2 +- 0008-po-Use-SHELL-rather-than-bin-sh.patch | 2 +- 0009-Add-termux-path-to-dict.patch | 2 +- 0010-Fix-shebang-for-termux.patch | 2 +- 0011-Add-strtoull-test.patch | 2 +- ...x-behaviour-on-chars-between-9-and-a.patch | 2 +- 0013-Add-Virtual-LAN-support.patch | 2 +- ...out-to-mkimage_generate_elfXX-rather.patch | 2 +- ...r-arm-uboot-code-to-make-it-genereic.patch | 2 +- ...-parts-that-are-platform-independent.patch | 2 +- ...-Rename-uboot-halt.c-to-dummy-halt.c.patch | 2 +- ...ame-uboot-datetime-to-dummy-datetime.patch | 2 +- 0019-arm-coreboot-Start-new-port.patch | 2 +- ...upport-for-device-tree-based-drivers.patch | 2 +- ...-coreboot-Support-for-vexpress-timer.patch | 2 +- 0022-arm-coreboot-Export-FDT-routines.patch | 2 +- ...-Split-protocol-from-controller-code.patch | 2 +- ...reboot-Support-keyboard-for-vexpress.patch | 2 +- ...m_coreboot-Support-grub-mkstandalone.patch | 2 +- ...oreboot-Support-loading-linux-images.patch | 2 +- 0027-arm_coreboot-Support-DMA.patch | 2 +- 0028-ehci-Split-core-code-from-PCI-part.patch | 2 +- 0029-arm_coreboot-Support-EHCI.patch | 2 +- ...n-FDT-nodes-with-compatible-property.patch | 2 +- ...ty-to-send-receive-messages-on-paren.patch | 2 +- 0032-rk3288_spi-Add-SPI-driver.patch | 2 +- ...eboot-Add-Chromebook-keyboard-driver.patch | 2 +- 0034-Missing-parts-of-previous-commit.patch | 2 +- ...-cbmemc-to-support-updated-console-f.patch | 2 +- ...t_keyboard-Fix-falco-chromebook-case.patch | 2 +- 0037-sparc64-Close-cdboot-ihandle.patch | 2 +- ...-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch | 2 +- ...p-option-support-in-xen_module-comma.patch | 2 +- ...inux_xen.in-Add-xen_boot-command-sup.patch | 2 +- ...-introduction-of-Xen-boot-commands-i.patch | 2 +- ...se-devspec-to-determine-the-OBP-path.patch | 2 +- ...unt-ext2-3-4-filesystems-that-have-t.patch | 2 +- 0044-ehci-Fix-compilation-for-amd64.patch | 2 +- ...-compilation-for-ppc-sparc-and-arm64.patch | 2 +- 0046-ehci-Fix-compilation-on-i386.patch | 2 +- 0047-crypto-Fix-use-after-free.patch | 2 +- 0048-arm-efi-Fix-compilation.patch | 2 +- 0049-fdt-silence-clang-warning.patch | 2 +- 0050-Fix-a-segfault-in-lsefi.patch | 2 +- ...t-typedef-and-use-grub_size_t-instea.patch | 2 +- ...x-reading-label-lvd.ident-is-dstring.patch | 2 +- ...b-core-fs-udf.c-Add-support-for-UUID.patch | 2 +- ...orriso-presence-before-doing-anythin.patch | 2 +- 0055-Fail-if-xorriso-failed.patch | 2 +- ...efi-refactor-grub_efi_allocate_pages.patch | 2 +- 0057-Remove-grub_efi_allocate_pages.patch | 2 +- 0058-efi-move-fdt-helper-library.patch | 2 +- 0059-efi-Add-GRUB_PE32_MAGIC-definition.patch | 2 +- ...inux-loader-improve-type-portability.patch | 2 +- ...allocation-type-to-GRUB_EFI_LOADER_C.patch | 2 +- ...RM_-definitions-when-handling-term-c.patch | 2 +- ...B_GZ-prefix-to-gzio-specific-defines.patch | 2 +- 0064-re-write-.gitignore.patch | 2 +- ...ient-architecture-CAS-reboot-support.patch | 2 +- ...nsole-display-attr-when-clear-screen.patch | 2 +- ...video-support-for-IBM-power-machines.patch | 2 +- ...when-generating-configuration-by-gru.patch | 2 +- 0069-Move-bash-completion-script-922997.patch | 2 +- 0070-Update-to-minilzo-2.08.patch | 2 +- ...o-include-entries-by-title-not-just-.patch | 2 +- 0072-Add-GRUB_DISABLE_UUID.patch | 2 +- 0073-Make-exit-take-a-return-code.patch | 2 +- ...pot-as-binary-so-git-won-t-try-to-di.patch | 2 +- ...es-load-an-env-block-from-a-variable.patch | 2 +- ...HCP-client-ID-and-UUID-options-added.patch | 2 +- ...-trim-arp-packets-with-abnormal-size.patch | 2 +- ...Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch | 2 +- ...UEFI-operating-systems-returned-by-o.patch | 2 +- 0080-Migrate-PPC-from-Yaboot-to-Grub2.patch | 2 +- 0081-Add-fw_path-variable-revised.patch | 2 +- 0082-Add-support-for-linuxefi.patch | 2 +- ...xefi-and-initrdefi-where-appropriate.patch | 2 +- ...w-insmod-when-secure-boot-is-enabled.patch | 2 +- ...-hex-hex-straight-through-unmolested.patch | 2 +- 0086-Add-X-option-to-printf-functions.patch | 2 +- ...for-specific-config-file-for-netboot.patch | 2 +- ...g-module-to-parse-Boot-Loader-Specif.patch | 2 +- 0089-Don-t-write-messages-to-the-screen.patch | 2 +- 0090-Don-t-print-GNU-GRUB-header.patch | 2 +- 0091-Don-t-add-to-highlighted-row.patch | 2 +- 0092-Message-string-cleanups.patch | 2 +- ...ing-now-that-we-aren-t-displaying-it.patch | 2 +- ...t-indentation-for-the-term-help-text.patch | 2 +- 0095-Indent-menu-entries.patch | 2 +- 0096-Fix-margins.patch | 2 +- ...-1-for-our-right-hand-margin-so-line.patch | 2 +- ...-Use-linux16-when-appropriate-880840.patch | 2 +- 0099-Enable-pager-by-default.-985860.patch | 2 +- ...-on-serial-so-don-t-tell-the-user-to.patch | 2 +- ...n-t-say-GNU-Linux-in-generated-menus.patch | 2 +- ...-Don-t-draw-a-border-around-the-menu.patch | 2 +- ...andard-margin-for-the-timeout-string.patch | 2 +- ...rame-to-list-of-relocations-stripped.patch | 2 +- ...rk-with-our-changes-for-linux16-and-.patch | 2 +- ...on-t-print-during-fdt-loading-method.patch | 2 +- ...spaces-when-we-re-doing-our-cmdline-.patch | 2 +- ...password-to-boot-entries-generated-b.patch | 2 +- 0109-Don-t-emit-Booting-.-message.patch | 2 +- ...f-man-pages-with-slightly-nicer-ones.patch | 2 +- ...ix-when-fallback-searching-for-grub-.patch | 2 +- ...-before-grub.cfg-on-tftp-config-file.patch | 2 +- ...ert-function-to-support-NVMe-devices.patch | 2 +- ...M-Mustang-device-tree-for-hardware-t.patch | 2 +- ...device-tree-from-the-grub-default-fi.patch | 2 +- ...P-protocol-for-exclusive-use-by-grub.patch | 2 +- ...P-protocol-for-exclusive-use-by-grub.patch | 2 +- 0118-Add-grub_util_readlink.patch | 2 +- ...se-symlinks-including-those-across-d.patch | 2 +- ...CLASS-in-10_linux-from-etc-os-releas.patch | 2 +- ...t-ordering-for-.debug-and-rescue-ker.patch | 2 +- 0122-Load-arm-with-SB-enabled.patch | 2 +- 0123-Try-prefix-if-fw_path-doesn-t-work.patch | 2 +- ...-grub.cfg-netboot-selection-order-11.patch | 2 +- ...-Package-Sort-for-grub2-mkconfig-112.patch | 2 +- 0126-Handle-rssd-storage-devices.patch | 2 +- ...x16-initrd16-and-linuxefi-initrdefi-.patch | 2 +- ...fig-construct-titles-that-look-like-.patch | 2 +- ...ly-grub2-password-config-tool-985962.patch | 2 +- ...fig-construct-titles-that-look-like-.patch | 2 +- ...-configure.ac-and-grub-rpm-sort-play.patch | 2 +- 0132-tcp-add-window-scaling-support.patch | 2 +- ...net-retransmit-if-our-device-is-busy.patch | 2 +- ...out-actually-using-the-configured-ne.patch | 2 +- ...r-for-the-first-exclusive-reopen-of-.patch | 2 +- ...ue-when-reading-username-and-passwor.patch | 2 +- ...ub-password-will-not-be-read-1290803.patch | 2 +- ...ub-setpassword-documentation-1290799.patch | 2 +- ...le-issue-in-grub-setpassword-1294243.patch | 2 +- ...rsistent-RAM-and-unknown-possible-fu.patch | 2 +- 0141-efiemu-Fix-compilation-failure.patch | 2 +- ...P-protocol-for-exclusive-use-by-grub.patch | 2 +- 0143-Add-a-url-parser.patch | 2 +- ...net-and-bootp-add-support-for-dhcpv6.patch | 2 +- ...rnel-settings-and-use-it-in-10_linux.patch | 2 +- 0146-Normalize-slashes-in-tftp-paths.patch | 2 +- 0147-Fix-malformed-tftp-packets.patch | 2 +- 0148-Fix-race-in-EFI-validation.patch | 2 +- ...1374141-fix-incorrect-mask-for-ppc64.patch | 2 +- ...art-of-chainloader-target-if-present.patch | 2 +- ...ecureboot-support-on-efi-chainloader.patch | 2 +- ...loaders-that-link-in-efi-mode-honor-.patch | 2 +- 0153-Make-grub_fatal-also-backtrace.patch | 2 +- 0154-Rework-linux-command.patch | 2 +- 0155-Rework-linux16-command.patch | 2 +- 0156-Make-grub-editenv-build-again.patch | 2 +- ...ix-up-some-man-pages-rpmdiff-noticed.patch | 2 +- ...-work-some-intricacies-of-PE-loading.patch | 2 +- ...-of-efi-chainload-so-non-sb-cases-wo.patch | 2 +- ...-double-free-on-verification-failure.patch | 2 +- ...machine-type-test-in-30_os-prober.in.patch | 2 +- ...fix-wrong-sanity-check-in-relocate_c.patch | 2 +- ...truncate-overlong-relocation-section.patch | 2 +- 0164-linuxefi-minor-cleanups.patch | 2 +- ...rch-64-on-32-boot-in-linuxefi-loader.patch | 2 +- 0166-Fix-up-linux-params-usage.patch | 2 +- 0167-Make-exit-take-a-return-code.patch | 2 +- ...fdt-has-address-cells-and-size-cells.patch | 2 +- ...rintf-in-the-secure-boot-verify-code.patch | 2 +- ...fo-pages-say-grub2-where-appropriate.patch | 2 +- ...more-debug-info-in-our-module-loader.patch | 2 +- ...-chainloader-entries-don-t-try-any-x.patch | 2 +- ...-Add-ability-to-boot-from-subvolumes.patch | 2 +- ...port-btrfs_subvol-and-btrfs_subvolid.patch | 2 +- 0175-grub2-btrfs-03-follow_default.patch | 2 +- 0176-grub2-btrfs-04-grub2-install.patch | 2 +- 0177-grub2-btrfs-05-grub2-mkconfig.patch | 2 +- 0178-grub2-btrfs-06-subvol-mount.patch | 2 +- ...ootable-Snapshot-submenu-in-grub.cfg.patch | 2 +- ...subvol-name-scheme-to-support-old-sn.patch | 2 +- ...-correctly-with-btrfs-snapshots-bsc-.patch | 2 +- ...ocate_pool-and-grub_efi_free_pool-wr.patch | 2 +- ...fi_.-memory-helpers-where-reasonable.patch | 2 +- 0184-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch | 2 +- ...c-sized-arrays-since-we-don-t-build-.patch | 2 +- 0186-don-t-ignore-const.patch | 2 +- 0187-don-t-use-int-for-efi-status.patch | 2 +- ...INIT-declare-its-function-prototypes.patch | 2 +- ...p-some-errors-in-the-linuxefi-loader.patch | 2 +- 0190-editenv-handle-relative-symlinks.patch | 2 +- ...e-libgrub.pp-depend-on-config-util.h.patch | 2 +- ...-efi-as-HFS-on-ppc-machines-in-grub-.patch | 2 +- ...20_linux_xen.in-Add-xen_boot-command.patch | 2 +- ...-figure-out-whether-multiboot2-shoul.patch | 2 +- ...d-xen-or-multiboot-2-modules-as-need.patch | 2 +- ...lt-tsc-calibration-method-to-pmtimer.patch | 2 +- ...-calibration-not-take-51-seconds-to-.patch | 2 +- 0198-align-struct-efi_variable-better.patch | 2 +- 0199-Add-quicksort-implementation.patch | 2 +- ...nd-support-to-parse-BootLoaderSpec-c.patch | 2 +- 0201-Add-BLS-support-to-grub-mkconfig.patch | 2 +- ...d-grub_exit-definition-for-grub-emu-.patch | 2 +- ...-backtrace-on-grub_abort-for-grub-em.patch | 2 +- ...-blscfg-command-for-the-emu-platform.patch | 2 +- ...nux-and-initrd-commands-for-grub-emu.patch | 2 +- 0206-Fix-the-efidir-in-grub-setpassword.patch | 2 +- 0207-Add-grub2-switch-to-blscfg.patch | 2 +- 0208-Add-grub_debug_enabled.patch | 2 +- 0209-make-better-backtraces.patch | 2 +- ...w-our-startup-message-if-debug-is-se.patch | 2 +- ...-some-minor-include-path-weirdnesses.patch | 2 +- ...it-possible-to-enabled-build-id-sha1.patch | 2 +- ...f-grub_dprintf-without-the-file-line.patch | 2 +- ...dprintf-that-tells-us-load-addresses.patch | 2 +- ...scan-different-BLS-directories-on-EF.patch | 2 +- 0216-Core-TPM-support.patch | 2 +- 0217-Measure-kernel-initrd.patch | 2 +- 0218-Add-BIOS-boot-measurement.patch | 2 +- ...re-kernel-and-initrd-on-BIOS-systems.patch | 2 +- 0220-Measure-the-kernel-commandline.patch | 2 +- 0221-Measure-commands.patch | 2 +- ...Measure-multiboot-images-and-modules.patch | 2 +- 0223-Fix-boot-when-there-s-no-TPM.patch | 2 +- 0224-Rework-TPM-measurements.patch | 2 +- 0225-Fix-event-log-prefix.patch | 2 +- ...ot-menu-entry-as-default-when-using-.patch | 2 +- ...-when-compiling-for-platforms-other-.patch | 2 +- 0228-Make-TPM-errors-less-fatal.patch | 2 +- ...cfg-handle-multiple-initramfs-images.patch | 2 +- ...switch-to-blscfg-on-non-EFI-machines.patch | 2 +- ...LS-Use-etcdefaultgrub-instead-of-etc.patch | 2 +- ...ons-to-grub2-switch-to-blscfg-man-pa.patch | 2 +- ...h-to-blscfg-to-generate-debug-BLS-wh.patch | 2 +- ...h-to-blscfg-to-generate-BLS-fragment.patch | 2 +- ...query-dev-mounted-in-boot-efi-as-boo.patch | 2 +- ...ath-when-searching-kernels-images-if.patch | 2 +- ...field-to-compare-entries-if-id-field.patch | 2 +- ...d-to-BLS-generated-by-grub2-switch-t.patch | 2 +- 0239-Fixup-for-newer-compiler.patch | 20 +---- ...-export-the-start-and-_start-symbols.patch | 2 +- ...plify-BLS-entry-key-val-pairs-lookup.patch | 2 +- ...h-to-the-kernel-and-initrds-BLS-fiel.patch | 2 +- ...p-leading-spaces-on-BLS-field-values.patch | 2 +- 0244-Fixup-for-newer-compiler.patch | 25 +++++++ ..._log_extend_event-function-prototype.patch | 53 +++++++++++++ 0246-TPM-Fix-compiler-warnings.patch | 75 +++++++++++++++++++ grub.patches | 3 + grub2.spec | 14 ++-- 248 files changed, 409 insertions(+), 265 deletions(-) create mode 100644 0244-Fixup-for-newer-compiler.patch create mode 100644 0245-TPM-Fix-hash_log_extend_event-function-prototype.patch create mode 100644 0246-TPM-Fix-compiler-warnings.patch diff --git a/0001-Bump-version-to-2.03.patch b/0001-Bump-version-to-2.03.patch index 68065440..e8c4d54b 100644 --- a/0001-Bump-version-to-2.03.patch +++ b/0001-Bump-version-to-2.03.patch @@ -1,7 +1,7 @@ From b0bad6fd9449d3333fe1ab58953c0e6c1ce12c0d Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Wed, 3 May 2017 11:55:52 +0200 -Subject: [PATCH 001/243] Bump version to 2.03 +Subject: [PATCH 001/246] Bump version to 2.03 --- configure.ac | 2 +- diff --git a/0002-Remove-bashisms-from-tests.patch b/0002-Remove-bashisms-from-tests.patch index 0e0da7a5..80190e62 100644 --- a/0002-Remove-bashisms-from-tests.patch +++ b/0002-Remove-bashisms-from-tests.patch @@ -1,7 +1,7 @@ From 5a0c548ba388b343b0bb6d2a38888e7eac5bbb96 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 03:47:13 +0300 -Subject: [PATCH 002/243] Remove bashisms from tests. +Subject: [PATCH 002/246] Remove bashisms from tests. Those tests don't actually need bash. Just use common shebang. --- diff --git a/0003-fs-tester-make-sh-compatible.patch b/0003-fs-tester-make-sh-compatible.patch index 37fafc9f..7662a085 100644 --- a/0003-fs-tester-make-sh-compatible.patch +++ b/0003-fs-tester-make-sh-compatible.patch @@ -1,7 +1,7 @@ From 37865c2c4ad26cd5e947b08abf1fde8145699919 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 14:35:59 +0300 -Subject: [PATCH 003/243] fs-tester: make sh-compatible +Subject: [PATCH 003/246] fs-tester: make sh-compatible --- tests/util/grub-fs-tester.in | 306 ++++++++++++++++++++++++------------------- diff --git a/0004-support-busybox-date.patch b/0004-support-busybox-date.patch index e95da3ef..fc3c316a 100644 --- a/0004-support-busybox-date.patch +++ b/0004-support-busybox-date.patch @@ -1,7 +1,7 @@ From b43b8cacc813c2c15347de1e35cc88d9aa912d22 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 14:31:36 +0300 -Subject: [PATCH 004/243] support busybox date. +Subject: [PATCH 004/246] support busybox date. Busybox date doesn't understand weekdays in -d input, so strip them beforehand. diff --git a/0005-Don-t-retrieve-fstime-when-it-s-not-useful.patch b/0005-Don-t-retrieve-fstime-when-it-s-not-useful.patch index 33550bc5..27b5e02a 100644 --- a/0005-Don-t-retrieve-fstime-when-it-s-not-useful.patch +++ b/0005-Don-t-retrieve-fstime-when-it-s-not-useful.patch @@ -1,7 +1,7 @@ From 6dec3a26b37e128ded5d912e08abc5cee1592499 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 21:24:05 +0300 -Subject: [PATCH 005/243] Don't retrieve fstime when it's not useful. +Subject: [PATCH 005/246] Don't retrieve fstime when it's not useful. --- tests/util/grub-fs-tester.in | 48 ++++++++++++++++++++++---------------------- diff --git a/0006-Support-lseek64.patch b/0006-Support-lseek64.patch index 99ee6aa8..acc5b0b2 100644 --- a/0006-Support-lseek64.patch +++ b/0006-Support-lseek64.patch @@ -1,7 +1,7 @@ From 608bec51128008afb81c9e3f297283e9f830a146 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 20:21:05 +0300 -Subject: [PATCH 006/243] Support lseek64. +Subject: [PATCH 006/246] Support lseek64. Android doesn't have 64-bit off_t, so use off64_t instead. --- diff --git a/0007-Use-SHELL-rather-than-bin-sh.patch b/0007-Use-SHELL-rather-than-bin-sh.patch index e9125814..b0fbf5af 100644 --- a/0007-Use-SHELL-rather-than-bin-sh.patch +++ b/0007-Use-SHELL-rather-than-bin-sh.patch @@ -1,7 +1,7 @@ From c2ea443446b7feea868e54f94a87781f69820375 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 00:55:30 +0300 -Subject: [PATCH 007/243] Use $(SHELL) rather than /bin/sh. +Subject: [PATCH 007/246] Use $(SHELL) rather than /bin/sh. /bin/sh doesn't exist under termux. --- diff --git a/0008-po-Use-SHELL-rather-than-bin-sh.patch b/0008-po-Use-SHELL-rather-than-bin-sh.patch index 14a4f193..6037aa9e 100644 --- a/0008-po-Use-SHELL-rather-than-bin-sh.patch +++ b/0008-po-Use-SHELL-rather-than-bin-sh.patch @@ -1,7 +1,7 @@ From 4341f82af0b61d3dfbe675670d4105dc759c0df3 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 14:54:03 +0300 -Subject: [PATCH 008/243] po: Use @SHELL@ rather than /bin/sh. +Subject: [PATCH 008/246] po: Use @SHELL@ rather than /bin/sh. /bin/sh might not exist. --- diff --git a/0009-Add-termux-path-to-dict.patch b/0009-Add-termux-path-to-dict.patch index 7f6a8f58..4465d17f 100644 --- a/0009-Add-termux-path-to-dict.patch +++ b/0009-Add-termux-path-to-dict.patch @@ -1,7 +1,7 @@ From 1073ddb12078f3c8edbdb74bb8f5afc674983f40 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 14:52:48 +0300 -Subject: [PATCH 009/243] Add termux path to dict. +Subject: [PATCH 009/246] Add termux path to dict. --- tests/util/grub-fs-tester.in | 2 +- diff --git a/0010-Fix-shebang-for-termux.patch b/0010-Fix-shebang-for-termux.patch index 28a6dafd..67db519e 100644 --- a/0010-Fix-shebang-for-termux.patch +++ b/0010-Fix-shebang-for-termux.patch @@ -1,7 +1,7 @@ From a827807a1330d5ad619faa103bc7f12d89fc8bee Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Sun, 22 Jan 2017 20:22:34 +0300 -Subject: [PATCH 010/243] Fix shebang for termux. +Subject: [PATCH 010/246] Fix shebang for termux. Termux doesn't have a /bin/sh. So we needto use $SHELL. Keep /bin/sh as much as possible. diff --git a/0011-Add-strtoull-test.patch b/0011-Add-strtoull-test.patch index 8676ae75..09193e9f 100644 --- a/0011-Add-strtoull-test.patch +++ b/0011-Add-strtoull-test.patch @@ -1,7 +1,7 @@ From ede6c9689395499f98a4c14d76b97151b4de5f54 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Wed, 3 May 2017 12:58:15 +0200 -Subject: [PATCH 011/243] Add strtoull test. +Subject: [PATCH 011/246] Add strtoull test. --- grub-core/Makefile.core.def | 5 +++++ diff --git a/0012-strtoull-Fix-behaviour-on-chars-between-9-and-a.patch b/0012-strtoull-Fix-behaviour-on-chars-between-9-and-a.patch index a3b1822b..a1ea6bf3 100644 --- a/0012-strtoull-Fix-behaviour-on-chars-between-9-and-a.patch +++ b/0012-strtoull-Fix-behaviour-on-chars-between-9-and-a.patch @@ -1,7 +1,7 @@ From dc6e1b5af83eb1c4290baf97c2d221c0865127be Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Wed, 10 Aug 2016 17:49:42 +0200 -Subject: [PATCH 012/243] strtoull: Fix behaviour on chars between '9' and 'a'. +Subject: [PATCH 012/246] strtoull: Fix behaviour on chars between '9' and 'a'. Reported by: Aaron Miller --- diff --git a/0013-Add-Virtual-LAN-support.patch b/0013-Add-Virtual-LAN-support.patch index de9650ec..4783933e 100644 --- a/0013-Add-Virtual-LAN-support.patch +++ b/0013-Add-Virtual-LAN-support.patch @@ -1,7 +1,7 @@ From d9f7de0ae3c0c09cff7257c55418450261f3e082 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Mon, 23 Dec 2013 12:32:02 -0200 -Subject: [PATCH 013/243] Add Virtual LAN support. +Subject: [PATCH 013/246] Add Virtual LAN support. This patch adds support for virtual LAN (VLAN) tagging. VLAN tagging allows multiple VLANs in a bridged network to share the same physical network link diff --git a/0014-mkimage-Pass-layout-to-mkimage_generate_elfXX-rather.patch b/0014-mkimage-Pass-layout-to-mkimage_generate_elfXX-rather.patch index 0c716ba4..0523b9f2 100644 --- a/0014-mkimage-Pass-layout-to-mkimage_generate_elfXX-rather.patch +++ b/0014-mkimage-Pass-layout-to-mkimage_generate_elfXX-rather.patch @@ -1,7 +1,7 @@ From a35ac854308b0af7c86c2c7b199f6abdfa2110b0 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 17:32:15 +0200 -Subject: [PATCH 014/243] mkimage: Pass layout to mkimage_generate_elfXX rather +Subject: [PATCH 014/246] mkimage: Pass layout to mkimage_generate_elfXX rather than some fields. This allows easier extension of this function without having too long of diff --git a/0015-Refactor-arm-uboot-code-to-make-it-genereic.patch b/0015-Refactor-arm-uboot-code-to-make-it-genereic.patch index 0fa03b3e..3450a917 100644 --- a/0015-Refactor-arm-uboot-code-to-make-it-genereic.patch +++ b/0015-Refactor-arm-uboot-code-to-make-it-genereic.patch @@ -1,7 +1,7 @@ From d08c9685149e7788001ac9a209baa1d84c3628e0 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 17:47:57 +0200 -Subject: [PATCH 015/243] Refactor arm-uboot code to make it genereic. +Subject: [PATCH 015/246] Refactor arm-uboot code to make it genereic. arm-coreboot startup code can be very similar to arm-uboot but current code has U-Boot specific references. So split U-Boot part from generic part. diff --git a/0016-coreboot-Split-parts-that-are-platform-independent.patch b/0016-coreboot-Split-parts-that-are-platform-independent.patch index 1f406a8f..88dd0bca 100644 --- a/0016-coreboot-Split-parts-that-are-platform-independent.patch +++ b/0016-coreboot-Split-parts-that-are-platform-independent.patch @@ -1,7 +1,7 @@ From 461bfab7b7e47fd0a76bf6076a438af1b7e2184a Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 19:06:22 +0200 -Subject: [PATCH 016/243] coreboot: Split parts that are platform-independent. +Subject: [PATCH 016/246] coreboot: Split parts that are platform-independent. We currently assume that coreboot is always i386, it's no longer the case, so split i386-coreboot parts from generic coreboot code. diff --git a/0017-Rename-uboot-halt.c-to-dummy-halt.c.patch b/0017-Rename-uboot-halt.c-to-dummy-halt.c.patch index 44e59fc3..f91f7e60 100644 --- a/0017-Rename-uboot-halt.c-to-dummy-halt.c.patch +++ b/0017-Rename-uboot-halt.c-to-dummy-halt.c.patch @@ -1,7 +1,7 @@ From 1daa716c7017f1858de117a20a31da66815435c5 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 19:31:55 +0200 -Subject: [PATCH 017/243] Rename uboot/halt.c to dummy/halt.c. +Subject: [PATCH 017/246] Rename uboot/halt.c to dummy/halt.c. It's not U-Boot specific and it's a stub. --- diff --git a/0018-Rename-uboot-datetime-to-dummy-datetime.patch b/0018-Rename-uboot-datetime-to-dummy-datetime.patch index 61d8a89f..2eee28cd 100644 --- a/0018-Rename-uboot-datetime-to-dummy-datetime.patch +++ b/0018-Rename-uboot-datetime-to-dummy-datetime.patch @@ -1,7 +1,7 @@ From 9808c3ef956c6472a96790b60cf74f4eaa742010 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 19:37:29 +0200 -Subject: [PATCH 018/243] Rename uboot/datetime to dummy/datetime. +Subject: [PATCH 018/246] Rename uboot/datetime to dummy/datetime. It's just a stub and is not UBoot-specific. --- diff --git a/0019-arm-coreboot-Start-new-port.patch b/0019-arm-coreboot-Start-new-port.patch index 1f6d4811..08bcd29e 100644 --- a/0019-arm-coreboot-Start-new-port.patch +++ b/0019-arm-coreboot-Start-new-port.patch @@ -1,7 +1,7 @@ From 24e37a885269bdec9b27babf1da0bba3692d55c0 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 20:53:28 +0200 -Subject: [PATCH 019/243] arm-coreboot: Start new port. +Subject: [PATCH 019/246] arm-coreboot: Start new port. --- configure.ac | 2 + diff --git a/0020-Add-support-for-device-tree-based-drivers.patch b/0020-Add-support-for-device-tree-based-drivers.patch index f99b92c3..2016c287 100644 --- a/0020-Add-support-for-device-tree-based-drivers.patch +++ b/0020-Add-support-for-device-tree-based-drivers.patch @@ -1,7 +1,7 @@ From fcbb723d4b1f7ad4687191562621dd0eb25f4d9e Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:19:59 +0200 -Subject: [PATCH 020/243] Add support for device-tree-based drivers. +Subject: [PATCH 020/246] Add support for device-tree-based drivers. --- grub-core/Makefile.core.def | 2 + diff --git a/0021-arm-coreboot-Support-for-vexpress-timer.patch b/0021-arm-coreboot-Support-for-vexpress-timer.patch index 378c1341..19697297 100644 --- a/0021-arm-coreboot-Support-for-vexpress-timer.patch +++ b/0021-arm-coreboot-Support-for-vexpress-timer.patch @@ -1,7 +1,7 @@ From 5a865b37866ee8cd64c080bc6fb1e537f8e2b3c6 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:26:36 +0200 -Subject: [PATCH 021/243] arm-coreboot: Support for vexpress timer. +Subject: [PATCH 021/246] arm-coreboot: Support for vexpress timer. --- grub-core/kern/arm/coreboot/timer.c | 36 ++++++++++++++++++++++++++++++++++++ diff --git a/0022-arm-coreboot-Export-FDT-routines.patch b/0022-arm-coreboot-Export-FDT-routines.patch index 87f2d2da..c021af18 100644 --- a/0022-arm-coreboot-Export-FDT-routines.patch +++ b/0022-arm-coreboot-Export-FDT-routines.patch @@ -1,7 +1,7 @@ From ac6b41b89fbb82a3ba843a7ed19115d81432b604 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:29:48 +0200 -Subject: [PATCH 022/243] arm-coreboot: Export FDT routines. +Subject: [PATCH 022/246] arm-coreboot: Export FDT routines. We need to use them from modules as well. --- diff --git a/0023-at_keyboard-Split-protocol-from-controller-code.patch b/0023-at_keyboard-Split-protocol-from-controller-code.patch index 23121cf6..bdfd9379 100644 --- a/0023-at_keyboard-Split-protocol-from-controller-code.patch +++ b/0023-at_keyboard-Split-protocol-from-controller-code.patch @@ -1,7 +1,7 @@ From 216950a4eea1a1ead1c28eaca94e34ea2ef2ad19 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:41:22 +0200 -Subject: [PATCH 023/243] at_keyboard: Split protocol from controller code. +Subject: [PATCH 023/246] at_keyboard: Split protocol from controller code. On vexpress controller is different but protocol is the same, so reuse the code. diff --git a/0024-arm_coreboot-Support-keyboard-for-vexpress.patch b/0024-arm_coreboot-Support-keyboard-for-vexpress.patch index a193b32b..4e07b7f4 100644 --- a/0024-arm_coreboot-Support-keyboard-for-vexpress.patch +++ b/0024-arm_coreboot-Support-keyboard-for-vexpress.patch @@ -1,7 +1,7 @@ From 848bed9d92cf20e9f25db4c69a20efad23996ca0 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:42:37 +0200 -Subject: [PATCH 024/243] arm_coreboot: Support keyboard for vexpress. +Subject: [PATCH 024/246] arm_coreboot: Support keyboard for vexpress. --- grub-core/Makefile.core.def | 3 + diff --git a/0025-arm_coreboot-Support-grub-mkstandalone.patch b/0025-arm_coreboot-Support-grub-mkstandalone.patch index 160ded63..47b13365 100644 --- a/0025-arm_coreboot-Support-grub-mkstandalone.patch +++ b/0025-arm_coreboot-Support-grub-mkstandalone.patch @@ -1,7 +1,7 @@ From 3edabad8fefb112cc4b2d43be6e97d43c909ceee Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:59:48 +0200 -Subject: [PATCH 025/243] arm_coreboot: Support grub-mkstandalone. +Subject: [PATCH 025/246] arm_coreboot: Support grub-mkstandalone. --- util/grub-install-common.c | 12 ++++++++++-- diff --git a/0026-arm_coreboot-Support-loading-linux-images.patch b/0026-arm_coreboot-Support-loading-linux-images.patch index 6b63ba4e..ecca3d55 100644 --- a/0026-arm_coreboot-Support-loading-linux-images.patch +++ b/0026-arm_coreboot-Support-loading-linux-images.patch @@ -1,7 +1,7 @@ From 656c3b0d7fbe23f0e1ab561c8faa4ac4a37364d1 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 22:00:06 +0200 -Subject: [PATCH 026/243] arm_coreboot: Support loading linux images. +Subject: [PATCH 026/246] arm_coreboot: Support loading linux images. --- grub-core/loader/arm/linux.c | 132 ++++++++++++++++++++++--------------------- diff --git a/0027-arm_coreboot-Support-DMA.patch b/0027-arm_coreboot-Support-DMA.patch index 8878b196..27440cb8 100644 --- a/0027-arm_coreboot-Support-DMA.patch +++ b/0027-arm_coreboot-Support-DMA.patch @@ -1,7 +1,7 @@ From 265292f2b0da0eb414c409871ba0f94a99ec33c1 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 22:06:04 +0200 -Subject: [PATCH 027/243] arm_coreboot: Support DMA. +Subject: [PATCH 027/246] arm_coreboot: Support DMA. This is needed to support USB and some other busses. --- diff --git a/0028-ehci-Split-core-code-from-PCI-part.patch b/0028-ehci-Split-core-code-from-PCI-part.patch index b5e93d76..6fd02924 100644 --- a/0028-ehci-Split-core-code-from-PCI-part.patch +++ b/0028-ehci-Split-core-code-from-PCI-part.patch @@ -1,7 +1,7 @@ From 058df7b5a9cc7aaa9872eaa916b715544a8f9840 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 22:10:26 +0200 -Subject: [PATCH 028/243] ehci: Split core code from PCI part. +Subject: [PATCH 028/246] ehci: Split core code from PCI part. On ARM often EHCI is present without PCI and just declared in device tree. So splitcore from PCI part. diff --git a/0029-arm_coreboot-Support-EHCI.patch b/0029-arm_coreboot-Support-EHCI.patch index 5ebcd903..c48a4cda 100644 --- a/0029-arm_coreboot-Support-EHCI.patch +++ b/0029-arm_coreboot-Support-EHCI.patch @@ -1,7 +1,7 @@ From d11ced1e1fb93676942e51618eb53c140f541890 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 22:14:28 +0200 -Subject: [PATCH 029/243] arm_coreboot: Support EHCI. +Subject: [PATCH 029/246] arm_coreboot: Support EHCI. --- grub-core/Makefile.core.def | 2 ++ diff --git a/0030-Fix-bug-on-FDT-nodes-with-compatible-property.patch b/0030-Fix-bug-on-FDT-nodes-with-compatible-property.patch index 6a43d929..d23f1927 100644 --- a/0030-Fix-bug-on-FDT-nodes-with-compatible-property.patch +++ b/0030-Fix-bug-on-FDT-nodes-with-compatible-property.patch @@ -1,7 +1,7 @@ From 4f8471532d454b2db96434c28bf7105ed69e0f4d Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 08:39:40 +0200 -Subject: [PATCH 030/243] Fix bug on FDT nodes with compatible property +Subject: [PATCH 030/246] Fix bug on FDT nodes with compatible property --- grub-core/bus/fdt.c | 2 ++ diff --git a/0031-fdtbus-Add-ability-to-send-receive-messages-on-paren.patch b/0031-fdtbus-Add-ability-to-send-receive-messages-on-paren.patch index adfc8d19..dbb6ba62 100644 --- a/0031-fdtbus-Add-ability-to-send-receive-messages-on-paren.patch +++ b/0031-fdtbus-Add-ability-to-send-receive-messages-on-paren.patch @@ -1,7 +1,7 @@ From c4313c812dc14e82a774b580b5e34d40e7f3fae6 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 08:40:29 +0200 -Subject: [PATCH 031/243] fdtbus: Add ability to send/receive messages on +Subject: [PATCH 031/246] fdtbus: Add ability to send/receive messages on parent busses. --- diff --git a/0032-rk3288_spi-Add-SPI-driver.patch b/0032-rk3288_spi-Add-SPI-driver.patch index b27b2ac2..2f2c1fcb 100644 --- a/0032-rk3288_spi-Add-SPI-driver.patch +++ b/0032-rk3288_spi-Add-SPI-driver.patch @@ -1,7 +1,7 @@ From b0b1b81a11f8bae8ab9e8edd87ac3f4f7949d03b Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 08:42:14 +0200 -Subject: [PATCH 032/243] rk3288_spi: Add SPI driver +Subject: [PATCH 032/246] rk3288_spi: Add SPI driver --- grub-core/Makefile.core.def | 1 + diff --git a/0033-arm_coreboot-Add-Chromebook-keyboard-driver.patch b/0033-arm_coreboot-Add-Chromebook-keyboard-driver.patch index 2c3b815c..3183dd8c 100644 --- a/0033-arm_coreboot-Add-Chromebook-keyboard-driver.patch +++ b/0033-arm_coreboot-Add-Chromebook-keyboard-driver.patch @@ -1,7 +1,7 @@ From 5c3fd1b135bd73c8e3467b9b635b25ca4d360a19 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 08:47:34 +0200 -Subject: [PATCH 033/243] arm_coreboot: Add Chromebook keyboard driver. +Subject: [PATCH 033/246] arm_coreboot: Add Chromebook keyboard driver. --- grub-core/term/arm/cros.c | 125 +++++++++++++++++++++++ diff --git a/0034-Missing-parts-of-previous-commit.patch b/0034-Missing-parts-of-previous-commit.patch index 3896b3e9..ed1b304d 100644 --- a/0034-Missing-parts-of-previous-commit.patch +++ b/0034-Missing-parts-of-previous-commit.patch @@ -1,7 +1,7 @@ From c6eaa982d12e3cfc5465dda5ea372774188b6b81 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 09:02:15 +0200 -Subject: [PATCH 034/243] Missing parts of previous commit +Subject: [PATCH 034/246] Missing parts of previous commit --- grub-core/Makefile.core.def | 2 ++ diff --git a/0035-coreboot-Changed-cbmemc-to-support-updated-console-f.patch b/0035-coreboot-Changed-cbmemc-to-support-updated-console-f.patch index ee751b54..eae46b87 100644 --- a/0035-coreboot-Changed-cbmemc-to-support-updated-console-f.patch +++ b/0035-coreboot-Changed-cbmemc-to-support-updated-console-f.patch @@ -1,7 +1,7 @@ From 70b555a52a065b2beb91e6fc97a6b358c931b303 Mon Sep 17 00:00:00 2001 From: Julius Werner Date: Tue, 9 May 2017 09:03:02 +0200 -Subject: [PATCH 035/243] coreboot: Changed cbmemc to support updated console +Subject: [PATCH 035/246] coreboot: Changed cbmemc to support updated console format from coreboot. --- diff --git a/0036-at_keyboard-Fix-falco-chromebook-case.patch b/0036-at_keyboard-Fix-falco-chromebook-case.patch index 36fc9688..5a60578f 100644 --- a/0036-at_keyboard-Fix-falco-chromebook-case.patch +++ b/0036-at_keyboard-Fix-falco-chromebook-case.patch @@ -1,7 +1,7 @@ From c4b8bec5fee4e30a165fd14a188cf3ab8eccd095 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 14:27:52 +0200 -Subject: [PATCH 036/243] at_keyboard: Fix falco chromebook case. +Subject: [PATCH 036/246] at_keyboard: Fix falco chromebook case. EC is slow, so we need few delays for it to toggle the bits correctly. diff --git a/0037-sparc64-Close-cdboot-ihandle.patch b/0037-sparc64-Close-cdboot-ihandle.patch index 0a7ec708..03251565 100644 --- a/0037-sparc64-Close-cdboot-ihandle.patch +++ b/0037-sparc64-Close-cdboot-ihandle.patch @@ -1,7 +1,7 @@ From bd4e40aadded7093908d786d03b4acf60b7b1707 Mon Sep 17 00:00:00 2001 From: Eric Snowberg Date: Thu, 11 May 2017 18:42:23 -0700 -Subject: [PATCH 037/243] sparc64: Close cdboot ihandle +Subject: [PATCH 037/246] sparc64: Close cdboot ihandle The ihandle is left open with a cd-core image. This will cause a delay booting grub from a virtual cdrom in a LDOM. It will also cause problems diff --git a/0038-arm64-xen_boot-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch b/0038-arm64-xen_boot-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch index 3a7fde3b..161342db 100644 --- a/0038-arm64-xen_boot-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch +++ b/0038-arm64-xen_boot-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch @@ -1,7 +1,7 @@ From ae5817f1dcbf0b99f7a849f56afe442165317840 Mon Sep 17 00:00:00 2001 From: Julien Grall Date: Fri, 19 Feb 2016 16:28:52 +0000 -Subject: [PATCH 038/243] arm64/xen_boot: Fix Xen boot using GRUB2 on AARCH64 +Subject: [PATCH 038/246] arm64/xen_boot: Fix Xen boot using GRUB2 on AARCH64 Xen is currently crashing because of malformed compatible property for the boot module. This is because the property string is not diff --git a/0039-arm64-Add-nounzip-option-support-in-xen_module-comma.patch b/0039-arm64-Add-nounzip-option-support-in-xen_module-comma.patch index ba7fa789..55352051 100644 --- a/0039-arm64-Add-nounzip-option-support-in-xen_module-comma.patch +++ b/0039-arm64-Add-nounzip-option-support-in-xen_module-comma.patch @@ -1,7 +1,7 @@ From 8eed7be8a61c295df700e918744a984162378ca9 Mon Sep 17 00:00:00 2001 From: Fu Wei Date: Sun, 14 May 2017 15:43:45 +0800 -Subject: [PATCH 039/243] arm64: Add "--nounzip" option support in xen_module +Subject: [PATCH 039/246] arm64: Add "--nounzip" option support in xen_module command This patch adds "--nounzip" option support in order to diff --git a/0040-util-grub.d-20_linux_xen.in-Add-xen_boot-command-sup.patch b/0040-util-grub.d-20_linux_xen.in-Add-xen_boot-command-sup.patch index 5ee77bae..dab3b783 100644 --- a/0040-util-grub.d-20_linux_xen.in-Add-xen_boot-command-sup.patch +++ b/0040-util-grub.d-20_linux_xen.in-Add-xen_boot-command-sup.patch @@ -1,7 +1,7 @@ From d33045ce7ffcb7c1e4a60c14d5ca64b36e3c5abe Mon Sep 17 00:00:00 2001 From: Fu Wei Date: Sun, 14 May 2017 15:43:46 +0800 -Subject: [PATCH 040/243] util/grub.d/20_linux_xen.in: Add xen_boot command +Subject: [PATCH 040/246] util/grub.d/20_linux_xen.in: Add xen_boot command support for aarch64 This patch adds the support of xen_boot command for aarch64: diff --git a/0041-arm64-Update-the-introduction-of-Xen-boot-commands-i.patch b/0041-arm64-Update-the-introduction-of-Xen-boot-commands-i.patch index 69be2ea0..5b0429c0 100644 --- a/0041-arm64-Update-the-introduction-of-Xen-boot-commands-i.patch +++ b/0041-arm64-Update-the-introduction-of-Xen-boot-commands-i.patch @@ -1,7 +1,7 @@ From 26c2f306fd425d2c0348023b8dcb7eb40a01851a Mon Sep 17 00:00:00 2001 From: Fu Wei Date: Sun, 14 May 2017 15:43:47 +0800 -Subject: [PATCH 041/243] arm64: Update the introduction of Xen boot commands +Subject: [PATCH 041/246] arm64: Update the introduction of Xen boot commands in docs/grub.texi delete: xen_linux, xen_initrd, xen_xsm diff --git a/0042-sparc64-Don-t-use-devspec-to-determine-the-OBP-path.patch b/0042-sparc64-Don-t-use-devspec-to-determine-the-OBP-path.patch index 17b2c602..4d90a92a 100644 --- a/0042-sparc64-Don-t-use-devspec-to-determine-the-OBP-path.patch +++ b/0042-sparc64-Don-t-use-devspec-to-determine-the-OBP-path.patch @@ -1,7 +1,7 @@ From f8679cedff703b437171f4708d46adbfcff80a65 Mon Sep 17 00:00:00 2001 From: Eric Snowberg Date: Thu, 18 May 2017 17:10:22 -0600 -Subject: [PATCH 042/243] sparc64: Don't use devspec to determine the OBP path +Subject: [PATCH 042/246] sparc64: Don't use devspec to determine the OBP path Don't use devspec to determine the OBP path on SPARC hardware. Within all versions of Linux on SPARC, the devspec returns one of three values: diff --git a/0043-Allow-GRUB-to-mount-ext2-3-4-filesystems-that-have-t.patch b/0043-Allow-GRUB-to-mount-ext2-3-4-filesystems-that-have-t.patch index faaa2258..87f1cf62 100644 --- a/0043-Allow-GRUB-to-mount-ext2-3-4-filesystems-that-have-t.patch +++ b/0043-Allow-GRUB-to-mount-ext2-3-4-filesystems-that-have-t.patch @@ -1,7 +1,7 @@ From 734668238fcc0ef691a080839e04f33854fa133a Mon Sep 17 00:00:00 2001 From: Eric Biggers Date: Thu, 29 Jun 2017 13:27:49 +0000 -Subject: [PATCH 043/243] Allow GRUB to mount ext2/3/4 filesystems that have +Subject: [PATCH 043/246] Allow GRUB to mount ext2/3/4 filesystems that have the encryption feature. On such a filesystem, inodes may have EXT4_ENCRYPT_FLAG set. diff --git a/0044-ehci-Fix-compilation-for-amd64.patch b/0044-ehci-Fix-compilation-for-amd64.patch index e3ef30c3..16c5db40 100644 --- a/0044-ehci-Fix-compilation-for-amd64.patch +++ b/0044-ehci-Fix-compilation-for-amd64.patch @@ -1,7 +1,7 @@ From edb37fb30bbc8a3b6bec67911c7200e4eb071127 Mon Sep 17 00:00:00 2001 From: phcoder Date: Sun, 9 Jul 2017 20:58:31 +0200 -Subject: [PATCH 044/243] ehci: Fix compilation for amd64 +Subject: [PATCH 044/246] ehci: Fix compilation for amd64 --- grub-core/bus/usb/ehci.c | 8 ++++---- diff --git a/0045-cache-Fix-compilation-for-ppc-sparc-and-arm64.patch b/0045-cache-Fix-compilation-for-ppc-sparc-and-arm64.patch index 0b5fce9d..8048428f 100644 --- a/0045-cache-Fix-compilation-for-ppc-sparc-and-arm64.patch +++ b/0045-cache-Fix-compilation-for-ppc-sparc-and-arm64.patch @@ -1,7 +1,7 @@ From d8901e3ba115d705c9c08ecedd201aca8b4867b8 Mon Sep 17 00:00:00 2001 From: phcoder Date: Sun, 9 Jul 2017 20:59:15 +0200 -Subject: [PATCH 045/243] cache: Fix compilation for ppc, sparc and arm64 +Subject: [PATCH 045/246] cache: Fix compilation for ppc, sparc and arm64 --- include/grub/cache.h | 4 +++- diff --git a/0046-ehci-Fix-compilation-on-i386.patch b/0046-ehci-Fix-compilation-on-i386.patch index f4baffcb..5a16cf5e 100644 --- a/0046-ehci-Fix-compilation-on-i386.patch +++ b/0046-ehci-Fix-compilation-on-i386.patch @@ -1,7 +1,7 @@ From 284afab081ef7ed7db2c59151853aa3c92d988f2 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Sun, 9 Jul 2017 21:31:19 +0200 -Subject: [PATCH 046/243] ehci: Fix compilation on i386 +Subject: [PATCH 046/246] ehci: Fix compilation on i386 --- grub-core/bus/usb/ehci.c | 4 ++-- diff --git a/0047-crypto-Fix-use-after-free.patch b/0047-crypto-Fix-use-after-free.patch index 58a0cfd8..3e8f2766 100644 --- a/0047-crypto-Fix-use-after-free.patch +++ b/0047-crypto-Fix-use-after-free.patch @@ -1,7 +1,7 @@ From a0fe0c26aa8a1c0ad66d9527611bd726b849c623 Mon Sep 17 00:00:00 2001 From: AppChecker Date: Sun, 9 Jul 2017 21:57:35 +0200 -Subject: [PATCH 047/243] crypto: Fix use after free. +Subject: [PATCH 047/246] crypto: Fix use after free. Reported by: AppChecker Transformed to patch by: Satish Govindarajan diff --git a/0048-arm-efi-Fix-compilation.patch b/0048-arm-efi-Fix-compilation.patch index fefff658..c7f26531 100644 --- a/0048-arm-efi-Fix-compilation.patch +++ b/0048-arm-efi-Fix-compilation.patch @@ -1,7 +1,7 @@ From cb8b7e4e36bf32dccbbba8252aa44ad3ada4fbc1 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Sun, 9 Jul 2017 21:48:37 +0000 -Subject: [PATCH 048/243] arm-efi: Fix compilation +Subject: [PATCH 048/246] arm-efi: Fix compilation --- grub-core/loader/arm/linux.c | 8 ++++---- diff --git a/0049-fdt-silence-clang-warning.patch b/0049-fdt-silence-clang-warning.patch index 575ada3c..909b2dde 100644 --- a/0049-fdt-silence-clang-warning.patch +++ b/0049-fdt-silence-clang-warning.patch @@ -1,7 +1,7 @@ From 68d54b55f49249c5e0517bf189f0f3df7ee6a36f Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 10 Jul 2017 01:34:22 +0000 -Subject: [PATCH 049/243] fdt: silence clang warning. +Subject: [PATCH 049/246] fdt: silence clang warning. --- grub-core/lib/fdt.c | 3 ++- diff --git a/0050-Fix-a-segfault-in-lsefi.patch b/0050-Fix-a-segfault-in-lsefi.patch index 977d6c32..a4fb8b35 100644 --- a/0050-Fix-a-segfault-in-lsefi.patch +++ b/0050-Fix-a-segfault-in-lsefi.patch @@ -1,7 +1,7 @@ From e8ab5a1a9e2889eb59d1fa494ba441a53698dcd2 Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Wed, 19 Jul 2017 15:47:41 -0400 -Subject: [PATCH 050/243] Fix a segfault in lsefi +Subject: [PATCH 050/246] Fix a segfault in lsefi when protocols_per_handle returns error, we can't use the pointers we passed to it, and that includes trusting num_protocols. diff --git a/0051-zfs-remove-size_t-typedef-and-use-grub_size_t-instea.patch b/0051-zfs-remove-size_t-typedef-and-use-grub_size_t-instea.patch index 5184be42..0142de2c 100644 --- a/0051-zfs-remove-size_t-typedef-and-use-grub_size_t-instea.patch +++ b/0051-zfs-remove-size_t-typedef-and-use-grub_size_t-instea.patch @@ -1,7 +1,7 @@ From fa42786264cef98c56e972b3bb6b8448000e1c70 Mon Sep 17 00:00:00 2001 From: Pete Batard Date: Thu, 3 Aug 2017 15:46:15 +0100 -Subject: [PATCH 051/243] zfs: remove size_t typedef and use grub_size_t +Subject: [PATCH 051/246] zfs: remove size_t typedef and use grub_size_t instead * Prevents some toolchains from issuing a warning on size_t redef. diff --git a/0052-udf-Fix-reading-label-lvd.ident-is-dstring.patch b/0052-udf-Fix-reading-label-lvd.ident-is-dstring.patch index fe4295d3..653767d3 100644 --- a/0052-udf-Fix-reading-label-lvd.ident-is-dstring.patch +++ b/0052-udf-Fix-reading-label-lvd.ident-is-dstring.patch @@ -1,7 +1,7 @@ From 76188809d5ca40c5285b0ab202b5edea7be3f04d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pali=20Roh=C3=A1r?= Date: Thu, 22 Jun 2017 14:33:17 +0200 -Subject: [PATCH 052/243] udf: Fix reading label, lvd.ident is dstring +Subject: [PATCH 052/246] udf: Fix reading label, lvd.ident is dstring UDF dstring has stored length in the last byte of buffer. Therefore last byte is not part of recorded characters. And empty string in dstring is diff --git a/0053-grub-core-fs-udf.c-Add-support-for-UUID.patch b/0053-grub-core-fs-udf.c-Add-support-for-UUID.patch index 413cc8d7..80820b81 100644 --- a/0053-grub-core-fs-udf.c-Add-support-for-UUID.patch +++ b/0053-grub-core-fs-udf.c-Add-support-for-UUID.patch @@ -1,7 +1,7 @@ From 435fa75e01ef40917239c7f775e505e86f70d202 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pali=20Roh=C3=A1r?= Date: Thu, 22 Jun 2017 14:42:16 +0200 -Subject: [PATCH 053/243] * grub-core/fs/udf.c: Add support for UUID +Subject: [PATCH 053/246] * grub-core/fs/udf.c: Add support for UUID Use same algorithm as in libblkid from util-linux v2.30. diff --git a/0054-mkrescue-Check-xorriso-presence-before-doing-anythin.patch b/0054-mkrescue-Check-xorriso-presence-before-doing-anythin.patch index 20c7bc29..8be54781 100644 --- a/0054-mkrescue-Check-xorriso-presence-before-doing-anythin.patch +++ b/0054-mkrescue-Check-xorriso-presence-before-doing-anythin.patch @@ -1,7 +1,7 @@ From 9e962fd3c42081e2eef1f99a0eaab38fd04d2620 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 7 Aug 2017 18:05:17 +0200 -Subject: [PATCH 054/243] mkrescue: Check xorriso presence before doing +Subject: [PATCH 054/246] mkrescue: Check xorriso presence before doing anything else. mkrescue can't do anything useful without xorriso, so abort early if it's diff --git a/0055-Fail-if-xorriso-failed.patch b/0055-Fail-if-xorriso-failed.patch index 854be4d1..0201f9a6 100644 --- a/0055-Fail-if-xorriso-failed.patch +++ b/0055-Fail-if-xorriso-failed.patch @@ -1,7 +1,7 @@ From e66dc5d71ebfc9763420a76c274e6980d54641c3 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 7 Aug 2017 18:08:39 +0200 -Subject: [PATCH 055/243] Fail if xorriso failed. +Subject: [PATCH 055/246] Fail if xorriso failed. If xorriso failed most likely we didn't generate a meaningful image. --- diff --git a/0056-efi-refactor-grub_efi_allocate_pages.patch b/0056-efi-refactor-grub_efi_allocate_pages.patch index 678f8179..a2e392d0 100644 --- a/0056-efi-refactor-grub_efi_allocate_pages.patch +++ b/0056-efi-refactor-grub_efi_allocate_pages.patch @@ -1,7 +1,7 @@ From dd5fde2df83c5c03b7ba04d2cc5b7be96de8da7b Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:23 +0100 -Subject: [PATCH 056/243] efi: refactor grub_efi_allocate_pages +Subject: [PATCH 056/246] efi: refactor grub_efi_allocate_pages Expose a new function, grub_efi_allocate_pages_real(), making it possible to specify allocation type and memory type as supported by the UEFI diff --git a/0057-Remove-grub_efi_allocate_pages.patch b/0057-Remove-grub_efi_allocate_pages.patch index b0bb56f7..836afe73 100644 --- a/0057-Remove-grub_efi_allocate_pages.patch +++ b/0057-Remove-grub_efi_allocate_pages.patch @@ -1,7 +1,7 @@ From 4bc909bf89f5b4ff86c9e4e609d4fe0c11a66b0c Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 7 Aug 2017 18:33:29 +0200 -Subject: [PATCH 057/243] Remove grub_efi_allocate_pages. +Subject: [PATCH 057/246] Remove grub_efi_allocate_pages. grub_efi_allocate_pages Essentially does 2 unrelated things: * Allocate at fixed address. diff --git a/0058-efi-move-fdt-helper-library.patch b/0058-efi-move-fdt-helper-library.patch index bc30a0be..b91cb2e8 100644 --- a/0058-efi-move-fdt-helper-library.patch +++ b/0058-efi-move-fdt-helper-library.patch @@ -1,7 +1,7 @@ From 8c9465fac901caac6802d6872a1374518b001517 Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:24 +0100 -Subject: [PATCH 058/243] efi: move fdt helper library +Subject: [PATCH 058/246] efi: move fdt helper library There is nothing ARM64 (or even ARM) specific about the efi fdt helper library, which is used for locating or overriding a firmware-provided diff --git a/0059-efi-Add-GRUB_PE32_MAGIC-definition.patch b/0059-efi-Add-GRUB_PE32_MAGIC-definition.patch index 588c729a..f796b6ae 100644 --- a/0059-efi-Add-GRUB_PE32_MAGIC-definition.patch +++ b/0059-efi-Add-GRUB_PE32_MAGIC-definition.patch @@ -1,7 +1,7 @@ From c5841ba7f0d14c193f20854e7e55b4f7ce9207d5 Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:25 +0100 -Subject: [PATCH 059/243] efi: Add GRUB_PE32_MAGIC definition +Subject: [PATCH 059/246] efi: Add GRUB_PE32_MAGIC definition Add a generic GRUB_PE32_MAGIC definition for the PE 'MZ' tag and delete the existing one in arm64/linux.h. diff --git a/0060-arm64-linux-loader-improve-type-portability.patch b/0060-arm64-linux-loader-improve-type-portability.patch index e78dd10b..027e9596 100644 --- a/0060-arm64-linux-loader-improve-type-portability.patch +++ b/0060-arm64-linux-loader-improve-type-portability.patch @@ -1,7 +1,7 @@ From 91212e0aa07e704a61e4540c18a27f149f5e51c3 Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:26 +0100 -Subject: [PATCH 060/243] arm64 linux loader: improve type portability +Subject: [PATCH 060/246] arm64 linux loader: improve type portability In preparation for turning this into a common loader for 32-bit and 64-bit platforms, ensure the code will compile cleanly for either. diff --git a/0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch b/0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch index c7ff91b1..f4e0f714 100644 --- a/0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch +++ b/0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch @@ -1,7 +1,7 @@ From f826330683675f0deb55b58fd229afd7d65fb053 Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:32 +0100 -Subject: [PATCH 061/243] efi: change heap allocation type to +Subject: [PATCH 061/246] efi: change heap allocation type to GRUB_EFI_LOADER_CODE With upcoming changes to EDK2, allocations of type EFI_LOADER_DATA may diff --git a/0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch b/0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch index 938f62c0..c46db81e 100644 --- a/0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch +++ b/0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch @@ -1,7 +1,7 @@ From bdd89d239cd9b4089630bfb5ec862aab8086dca2 Mon Sep 17 00:00:00 2001 From: Pete Batard Date: Mon, 7 Aug 2017 16:20:30 +0100 -Subject: [PATCH 062/243] core: use GRUB_TERM_ definitions when handling term +Subject: [PATCH 062/246] core: use GRUB_TERM_ definitions when handling term characters * Also use hex value for GRUB_TERM_ESC as '\e' is not in the C standard and is not understood by some compilers diff --git a/0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch b/0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch index a4b7fa35..e082cbd3 100644 --- a/0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch +++ b/0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch @@ -1,7 +1,7 @@ From 1deebd85ef87cc581e995ce0a51dc0802ac9c367 Mon Sep 17 00:00:00 2001 From: Pete Batard Date: Mon, 7 Aug 2017 16:23:12 +0100 -Subject: [PATCH 063/243] io: add a GRUB_GZ prefix to gzio specific defines +Subject: [PATCH 063/246] io: add a GRUB_GZ prefix to gzio specific defines * This is done to avoid a conflict with a PACKED define in the EDK2 --- diff --git a/0064-re-write-.gitignore.patch b/0064-re-write-.gitignore.patch index 6b2ef763..026aa28c 100644 --- a/0064-re-write-.gitignore.patch +++ b/0064-re-write-.gitignore.patch @@ -1,7 +1,7 @@ From 38bfcd3054c28aa40234840c12d900f1d18a217d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 8 Aug 2017 12:48:04 -0400 -Subject: [PATCH 064/243] re-write .gitignore +Subject: [PATCH 064/246] re-write .gitignore --- .gitignore | 352 ++++++++++++-------------------------- diff --git a/0065-IBM-client-architecture-CAS-reboot-support.patch b/0065-IBM-client-architecture-CAS-reboot-support.patch index 56a38209..14eb8632 100644 --- a/0065-IBM-client-architecture-CAS-reboot-support.patch +++ b/0065-IBM-client-architecture-CAS-reboot-support.patch @@ -1,7 +1,7 @@ From bf1fd830091fff49e26f39027e0db8fd4b688624 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Thu, 20 Sep 2012 18:07:39 -0300 -Subject: [PATCH 065/243] IBM client architecture (CAS) reboot support +Subject: [PATCH 065/246] IBM client architecture (CAS) reboot support This is an implementation of IBM client architecture (CAS) reboot for GRUB. diff --git a/0066-for-ppc-reset-console-display-attr-when-clear-screen.patch b/0066-for-ppc-reset-console-display-attr-when-clear-screen.patch index 026efc1f..117376d1 100644 --- a/0066-for-ppc-reset-console-display-attr-when-clear-screen.patch +++ b/0066-for-ppc-reset-console-display-attr-when-clear-screen.patch @@ -1,7 +1,7 @@ From 8b30fab3c07a9fc8549e404c411b747b960c57b2 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Wed, 24 Apr 2013 10:51:48 -0300 -Subject: [PATCH 066/243] for ppc, reset console display attr when clear screen +Subject: [PATCH 066/246] for ppc, reset console display attr when clear screen v2: Also use \x0c instead of a literal ^L to make future patches less awkward. diff --git a/0067-Disable-GRUB-video-support-for-IBM-power-machines.patch b/0067-Disable-GRUB-video-support-for-IBM-power-machines.patch index 7f103533..9d5af531 100644 --- a/0067-Disable-GRUB-video-support-for-IBM-power-machines.patch +++ b/0067-Disable-GRUB-video-support-for-IBM-power-machines.patch @@ -1,7 +1,7 @@ From 45322cbc9402639a431fc0f33bd76e387e6f02bf Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 11 Jun 2013 15:14:05 -0300 -Subject: [PATCH 067/243] Disable GRUB video support for IBM power machines +Subject: [PATCH 067/246] Disable GRUB video support for IBM power machines Should fix the problem in bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=973205 diff --git a/0068-Honor-a-symlink-when-generating-configuration-by-gru.patch b/0068-Honor-a-symlink-when-generating-configuration-by-gru.patch index ff15e2f0..b26eb859 100644 --- a/0068-Honor-a-symlink-when-generating-configuration-by-gru.patch +++ b/0068-Honor-a-symlink-when-generating-configuration-by-gru.patch @@ -1,7 +1,7 @@ From c29e260c9f41f4f802fa852b6c46fb2e5d912cb6 Mon Sep 17 00:00:00 2001 From: Marcel Kolaja Date: Tue, 21 Jan 2014 10:57:08 -0500 -Subject: [PATCH 068/243] Honor a symlink when generating configuration by +Subject: [PATCH 068/246] Honor a symlink when generating configuration by grub2-mkconfig Honor a symlink when generating configuration by grub2-mkconfig, so that diff --git a/0069-Move-bash-completion-script-922997.patch b/0069-Move-bash-completion-script-922997.patch index e5a59483..bbd6412a 100644 --- a/0069-Move-bash-completion-script-922997.patch +++ b/0069-Move-bash-completion-script-922997.patch @@ -1,7 +1,7 @@ From 8eaf2f497a6bcffc5554509533940ac2b764b981 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 3 Apr 2013 14:35:34 -0400 -Subject: [PATCH 069/243] Move bash completion script (#922997) +Subject: [PATCH 069/246] Move bash completion script (#922997) Apparently these go in a new place now. --- diff --git a/0070-Update-to-minilzo-2.08.patch b/0070-Update-to-minilzo-2.08.patch index 5af63a36..7416ac40 100644 --- a/0070-Update-to-minilzo-2.08.patch +++ b/0070-Update-to-minilzo-2.08.patch @@ -1,7 +1,7 @@ From 9a1e99c5628bafa9e3970a5317b721da704bec6a Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Dec 2014 15:36:09 -0500 -Subject: [PATCH 070/243] Update to minilzo-2.08 +Subject: [PATCH 070/246] Update to minilzo-2.08 This fixes CVE-2014-4607 - lzo: lzo1x_decompress_safe() integer overflow diff --git a/0071-Allow-fallback-to-include-entries-by-title-not-just-.patch b/0071-Allow-fallback-to-include-entries-by-title-not-just-.patch index 8b82b105..4e9ca556 100644 --- a/0071-Allow-fallback-to-include-entries-by-title-not-just-.patch +++ b/0071-Allow-fallback-to-include-entries-by-title-not-just-.patch @@ -1,7 +1,7 @@ From 27845fb323de35e9dcaad8c738eb1a2a2bc316f8 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 5 Sep 2014 10:07:04 -0400 -Subject: [PATCH 071/243] Allow "fallback" to include entries by title, not +Subject: [PATCH 071/246] Allow "fallback" to include entries by title, not just number. Resolves: rhbz#1026084 diff --git a/0072-Add-GRUB_DISABLE_UUID.patch b/0072-Add-GRUB_DISABLE_UUID.patch index 0bf94972..6f065466 100644 --- a/0072-Add-GRUB_DISABLE_UUID.patch +++ b/0072-Add-GRUB_DISABLE_UUID.patch @@ -1,7 +1,7 @@ From 7f7429e93fa791ac2c002beaafab9b9d9bd86b89 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Sep 2014 16:49:25 -0400 -Subject: [PATCH 072/243] Add GRUB_DISABLE_UUID. +Subject: [PATCH 072/246] Add GRUB_DISABLE_UUID. This will cause "search --fs-uuid --set=root ..." not to be generated by grub2-mkconfig, and instead simply attempt to use the grub device name diff --git a/0073-Make-exit-take-a-return-code.patch b/0073-Make-exit-take-a-return-code.patch index 20e3dea7..55a78e27 100644 --- a/0073-Make-exit-take-a-return-code.patch +++ b/0073-Make-exit-take-a-return-code.patch @@ -1,7 +1,7 @@ From 384ccb1b44fc23514a59529f58f984dcc4a75cc9 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 26 Feb 2014 21:49:12 -0500 -Subject: [PATCH 073/243] Make "exit" take a return code. +Subject: [PATCH 073/246] Make "exit" take a return code. This adds "exit" with a return code. With this patch, any "exit" command /may/ include a return code, and on platforms that support diff --git a/0074-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch b/0074-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch index 2db1f2bf..d98936da 100644 --- a/0074-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch +++ b/0074-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch @@ -1,7 +1,7 @@ From 939f3dfcfacde13bd7ebfe411c0dceee9e5ed0ae Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 22 Jul 2015 11:21:01 -0400 -Subject: [PATCH 074/243] Mark po/exclude.pot as binary so git won't try to +Subject: [PATCH 074/246] Mark po/exclude.pot as binary so git won't try to diff nonprintables. Signed-off-by: Peter Jones diff --git a/0075-Make-efi-machines-load-an-env-block-from-a-variable.patch b/0075-Make-efi-machines-load-an-env-block-from-a-variable.patch index d1e4a189..a58b3eb0 100644 --- a/0075-Make-efi-machines-load-an-env-block-from-a-variable.patch +++ b/0075-Make-efi-machines-load-an-env-block-from-a-variable.patch @@ -1,7 +1,7 @@ From 805220eb48a8cabcc83628d90aa40f3204b21a71 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 7 Dec 2015 14:20:49 -0500 -Subject: [PATCH 075/243] Make efi machines load an env block from a variable +Subject: [PATCH 075/246] Make efi machines load an env block from a variable Signed-off-by: Peter Jones --- diff --git a/0076-DHCP-client-ID-and-UUID-options-added.patch b/0076-DHCP-client-ID-and-UUID-options-added.patch index 0e076f24..9f832d58 100644 --- a/0076-DHCP-client-ID-and-UUID-options-added.patch +++ b/0076-DHCP-client-ID-and-UUID-options-added.patch @@ -1,7 +1,7 @@ From cefc164d655fb7709efbc37a317952ff3ec4aeb3 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 27 Nov 2012 17:18:53 -0200 -Subject: [PATCH 076/243] DHCP client ID and UUID options added. +Subject: [PATCH 076/246] DHCP client ID and UUID options added. --- grub-core/net/bootp.c | 87 ++++++++++++++++++++++++++++++++++++++++++++++----- diff --git a/0077-trim-arp-packets-with-abnormal-size.patch b/0077-trim-arp-packets-with-abnormal-size.patch index 1691591e..a7d4c5ec 100644 --- a/0077-trim-arp-packets-with-abnormal-size.patch +++ b/0077-trim-arp-packets-with-abnormal-size.patch @@ -1,7 +1,7 @@ From 571a6cce3b0d4c8abf11efc320e2de6ff9188d60 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Wed, 5 Feb 2014 09:42:42 -0200 -Subject: [PATCH 077/243] trim arp packets with abnormal size +Subject: [PATCH 077/246] trim arp packets with abnormal size GRUB uses arp request to create the arp response. If the incoming packet is foobared, GRUB needs to trim the arp response packet before sending it. diff --git a/0078-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch b/0078-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch index 0558b38b..e827b82c 100644 --- a/0078-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch +++ b/0078-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch @@ -1,7 +1,7 @@ From 6cd959a64f588e256f0ba17e31bf2720b9cdec88 Mon Sep 17 00:00:00 2001 From: Prarit Bhargava Date: Wed, 12 Mar 2014 10:58:16 -0400 -Subject: [PATCH 078/243] Fix bad test on GRUB_DISABLE_SUBMENU. +Subject: [PATCH 078/246] Fix bad test on GRUB_DISABLE_SUBMENU. The file /etc/grub.d/10_linux does diff --git a/0079-Add-support-for-UEFI-operating-systems-returned-by-o.patch b/0079-Add-support-for-UEFI-operating-systems-returned-by-o.patch index 8a961fb5..5f42bc34 100644 --- a/0079-Add-support-for-UEFI-operating-systems-returned-by-o.patch +++ b/0079-Add-support-for-UEFI-operating-systems-returned-by-o.patch @@ -1,7 +1,7 @@ From 0254265409f80b369c35fb474c7371feb6f9ae1d Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Wed, 12 Jun 2013 11:51:49 -0400 -Subject: [PATCH 079/243] Add support for UEFI operating systems returned by +Subject: [PATCH 079/246] Add support for UEFI operating systems returned by os-prober os-prober returns UEFI operating systems in the form: diff --git a/0080-Migrate-PPC-from-Yaboot-to-Grub2.patch b/0080-Migrate-PPC-from-Yaboot-to-Grub2.patch index aca627f5..f6407588 100644 --- a/0080-Migrate-PPC-from-Yaboot-to-Grub2.patch +++ b/0080-Migrate-PPC-from-Yaboot-to-Grub2.patch @@ -1,7 +1,7 @@ From f2b4c105e3657cc32ed0f7aefa713f161cdf64f1 Mon Sep 17 00:00:00 2001 From: Mark Hamzy Date: Wed, 28 Mar 2012 14:46:41 -0500 -Subject: [PATCH 080/243] Migrate PPC from Yaboot to Grub2 +Subject: [PATCH 080/246] Migrate PPC from Yaboot to Grub2 Add configuration support for serial terminal consoles. This will set the maximum screen size so that text is not overwritten. diff --git a/0081-Add-fw_path-variable-revised.patch b/0081-Add-fw_path-variable-revised.patch index 03513c23..f9920393 100644 --- a/0081-Add-fw_path-variable-revised.patch +++ b/0081-Add-fw_path-variable-revised.patch @@ -1,7 +1,7 @@ From 7f021a05a5ed7c97432abbc1762f40e36a4915e3 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Wed, 19 Sep 2012 21:22:55 -0300 -Subject: [PATCH 081/243] Add fw_path variable (revised) +Subject: [PATCH 081/246] Add fw_path variable (revised) This patch makes grub look for its config file on efi where the app was found. It was originally written by Matthew Garrett, and adapted to fix the diff --git a/0082-Add-support-for-linuxefi.patch b/0082-Add-support-for-linuxefi.patch index d97a8423..df827b5e 100644 --- a/0082-Add-support-for-linuxefi.patch +++ b/0082-Add-support-for-linuxefi.patch @@ -1,7 +1,7 @@ From 778385965798ac2711f0d07d5cf521a6e999ca8b Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 10 Jul 2012 11:58:52 -0400 -Subject: [PATCH 082/243] Add support for linuxefi +Subject: [PATCH 082/246] Add support for linuxefi --- grub-core/Makefile.core.def | 8 + diff --git a/0083-Use-linuxefi-and-initrdefi-where-appropriate.patch b/0083-Use-linuxefi-and-initrdefi-where-appropriate.patch index f343455f..f597370f 100644 --- a/0083-Use-linuxefi-and-initrdefi-where-appropriate.patch +++ b/0083-Use-linuxefi-and-initrdefi-where-appropriate.patch @@ -1,7 +1,7 @@ From 793d4270384ef3373bc0b3c956cab8a8cdb75bcf Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 16 Jul 2012 18:57:11 -0400 -Subject: [PATCH 083/243] Use "linuxefi" and "initrdefi" where appropriate. +Subject: [PATCH 083/246] Use "linuxefi" and "initrdefi" where appropriate. --- util/grub.d/10_linux.in | 18 ++++++++++++++++-- diff --git a/0084-Don-t-allow-insmod-when-secure-boot-is-enabled.patch b/0084-Don-t-allow-insmod-when-secure-boot-is-enabled.patch index af9621cd..c7f8a2a2 100644 --- a/0084-Don-t-allow-insmod-when-secure-boot-is-enabled.patch +++ b/0084-Don-t-allow-insmod-when-secure-boot-is-enabled.patch @@ -1,7 +1,7 @@ From eb8fd62e887e624f5c6e7c2ee8512981e8b5be97 Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Tue, 23 Oct 2012 10:40:49 -0400 -Subject: [PATCH 084/243] Don't allow insmod when secure boot is enabled. +Subject: [PATCH 084/246] Don't allow insmod when secure boot is enabled. Hi, diff --git a/0085-Pass-x-hex-hex-straight-through-unmolested.patch b/0085-Pass-x-hex-hex-straight-through-unmolested.patch index f8d1f5f8..a29bf9c2 100644 --- a/0085-Pass-x-hex-hex-straight-through-unmolested.patch +++ b/0085-Pass-x-hex-hex-straight-through-unmolested.patch @@ -1,7 +1,7 @@ From 0d54ed89090fc1bdcb75de474024b2b81dbf644f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 1 Oct 2012 13:24:37 -0400 -Subject: [PATCH 085/243] Pass "\x[[:hex:]][[:hex:]]" straight through +Subject: [PATCH 085/246] Pass "\x[[:hex:]][[:hex:]]" straight through unmolested. --- diff --git a/0086-Add-X-option-to-printf-functions.patch b/0086-Add-X-option-to-printf-functions.patch index a61fab23..378f81ae 100644 --- a/0086-Add-X-option-to-printf-functions.patch +++ b/0086-Add-X-option-to-printf-functions.patch @@ -1,7 +1,7 @@ From 6237b1688124d6a72250b296e758ef2d59fde26f Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 27 Nov 2012 16:58:39 -0200 -Subject: [PATCH 086/243] Add %X option to printf functions. +Subject: [PATCH 086/246] Add %X option to printf functions. --- grub-core/kern/misc.c | 7 +++++-- diff --git a/0087-Search-for-specific-config-file-for-netboot.patch b/0087-Search-for-specific-config-file-for-netboot.patch index c1c979ac..5cb7b86c 100644 --- a/0087-Search-for-specific-config-file-for-netboot.patch +++ b/0087-Search-for-specific-config-file-for-netboot.patch @@ -1,7 +1,7 @@ From 9491cbfdab951e38f096bd9705a76b382f54c9be Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 27 Nov 2012 17:22:07 -0200 -Subject: [PATCH 087/243] Search for specific config file for netboot +Subject: [PATCH 087/246] Search for specific config file for netboot This patch implements a search for a specific configuration when the config file is on a remoteserver. It uses the following order: diff --git a/0088-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch b/0088-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch index 4f0d2b85..1c06aa63 100644 --- a/0088-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch +++ b/0088-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch @@ -1,7 +1,7 @@ From 5fcdebdc36cc84c772754b7f5bdb87aed2b42853 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Tue, 22 Jan 2013 06:31:38 +0100 -Subject: [PATCH 088/243] blscfg: add blscfg module to parse Boot Loader +Subject: [PATCH 088/246] blscfg: add blscfg module to parse Boot Loader Specification snippets http://www.freedesktop.org/wiki/Specifications/BootLoaderSpec diff --git a/0089-Don-t-write-messages-to-the-screen.patch b/0089-Don-t-write-messages-to-the-screen.patch index 7c0d9e30..14b51555 100644 --- a/0089-Don-t-write-messages-to-the-screen.patch +++ b/0089-Don-t-write-messages-to-the-screen.patch @@ -1,7 +1,7 @@ From fc390be631e93744c6a3a2f42849c9edf2614a36 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 13:30:20 -0400 -Subject: [PATCH 089/243] Don't write messages to the screen +Subject: [PATCH 089/246] Don't write messages to the screen Writing messages to the screen before the menus or boot splash happens so quickly it looks like something is wrong and isn't diff --git a/0090-Don-t-print-GNU-GRUB-header.patch b/0090-Don-t-print-GNU-GRUB-header.patch index 5a60e287..93787244 100644 --- a/0090-Don-t-print-GNU-GRUB-header.patch +++ b/0090-Don-t-print-GNU-GRUB-header.patch @@ -1,7 +1,7 @@ From 806c26ae73bc86e305c39c955d86480fad8985df Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 13:53:48 -0400 -Subject: [PATCH 090/243] Don't print GNU GRUB header +Subject: [PATCH 090/246] Don't print GNU GRUB header No one cares. --- diff --git a/0091-Don-t-add-to-highlighted-row.patch b/0091-Don-t-add-to-highlighted-row.patch index 34f42225..8e6c3189 100644 --- a/0091-Don-t-add-to-highlighted-row.patch +++ b/0091-Don-t-add-to-highlighted-row.patch @@ -1,7 +1,7 @@ From 5ae2484f263365351a2891be6c056eeb96b3924b Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 17:49:45 -0400 -Subject: [PATCH 091/243] Don't add '*' to highlighted row +Subject: [PATCH 091/246] Don't add '*' to highlighted row It is already highlighted. --- diff --git a/0092-Message-string-cleanups.patch b/0092-Message-string-cleanups.patch index f7cce12d..4363b268 100644 --- a/0092-Message-string-cleanups.patch +++ b/0092-Message-string-cleanups.patch @@ -1,7 +1,7 @@ From 622b238ecb927d331dc38083584a7323013b5f21 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 11:09:04 -0400 -Subject: [PATCH 092/243] Message string cleanups +Subject: [PATCH 092/246] Message string cleanups Make use of terminology consistent. Remove jargon. --- diff --git a/0093-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch b/0093-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch index a9196251..05e05139 100644 --- a/0093-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch +++ b/0093-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch @@ -1,7 +1,7 @@ From c7dac08ab344638afabf579e03bedfac729e1944 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:08:23 -0400 -Subject: [PATCH 093/243] Fix border spacing now that we aren't displaying it +Subject: [PATCH 093/246] Fix border spacing now that we aren't displaying it --- grub-core/normal/menu_text.c | 6 +++--- diff --git a/0094-Use-the-correct-indentation-for-the-term-help-text.patch b/0094-Use-the-correct-indentation-for-the-term-help-text.patch index 2e6f717e..99f12531 100644 --- a/0094-Use-the-correct-indentation-for-the-term-help-text.patch +++ b/0094-Use-the-correct-indentation-for-the-term-help-text.patch @@ -1,7 +1,7 @@ From 8a59d6c44d946eac70ecbb7a9418c5d6801add8b Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:08:49 -0400 -Subject: [PATCH 094/243] Use the correct indentation for the term help text +Subject: [PATCH 094/246] Use the correct indentation for the term help text That is consistent with the menu help text --- diff --git a/0095-Indent-menu-entries.patch b/0095-Indent-menu-entries.patch index ac56be7c..bbe61ea1 100644 --- a/0095-Indent-menu-entries.patch +++ b/0095-Indent-menu-entries.patch @@ -1,7 +1,7 @@ From 018439ecfda2bc5049ccbfb0d6ab7fa047411a3b Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:30:55 -0400 -Subject: [PATCH 095/243] Indent menu entries +Subject: [PATCH 095/246] Indent menu entries --- grub-core/normal/menu_text.c | 3 ++- diff --git a/0096-Fix-margins.patch b/0096-Fix-margins.patch index 47af035a..ca96e07d 100644 --- a/0096-Fix-margins.patch +++ b/0096-Fix-margins.patch @@ -1,7 +1,7 @@ From 33481aa0e7897465ffd386101d6f3eda6e3bbac0 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:59:36 -0400 -Subject: [PATCH 096/243] Fix margins +Subject: [PATCH 096/246] Fix margins --- grub-core/normal/menu_text.c | 8 +++----- diff --git a/0097-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch b/0097-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch index 3df66880..1fc6d06f 100644 --- a/0097-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch +++ b/0097-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch @@ -1,7 +1,7 @@ From ea032bd4a6cb66929da61477b1759e136c975189 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 21 Jun 2013 14:44:08 -0400 -Subject: [PATCH 097/243] Use -2 instead of -1 for our right-hand margin, so +Subject: [PATCH 097/246] Use -2 instead of -1 for our right-hand margin, so linewrapping works (#976643). Signed-off-by: Peter Jones diff --git a/0098-Use-linux16-when-appropriate-880840.patch b/0098-Use-linux16-when-appropriate-880840.patch index c3324f65..587086c3 100644 --- a/0098-Use-linux16-when-appropriate-880840.patch +++ b/0098-Use-linux16-when-appropriate-880840.patch @@ -1,7 +1,7 @@ From 8e1957d59e7e72850cbac7e779ddf22ca23c250d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 28 Oct 2013 10:05:07 -0400 -Subject: [PATCH 098/243] Use linux16 when appropriate (#880840) +Subject: [PATCH 098/246] Use linux16 when appropriate (#880840) The kernel group really would prefer that we use the 16 bit entry point on x86 bios machines. diff --git a/0099-Enable-pager-by-default.-985860.patch b/0099-Enable-pager-by-default.-985860.patch index cfbdf83e..62e85042 100644 --- a/0099-Enable-pager-by-default.-985860.patch +++ b/0099-Enable-pager-by-default.-985860.patch @@ -1,7 +1,7 @@ From 7466f51a0012ebdd8be07cfc0e63d50e0e79560d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 28 Oct 2013 10:09:27 -0400 -Subject: [PATCH 099/243] Enable pager by default. (#985860) +Subject: [PATCH 099/246] Enable pager by default. (#985860) Signed-off-by: Peter Jones --- diff --git a/0100-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch b/0100-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch index ab61cc34..90657a25 100644 --- a/0100-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch +++ b/0100-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch @@ -1,7 +1,7 @@ From 7a97d9621a145cbd04111970fea04c34433f900c Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 28 Oct 2013 10:13:27 -0400 -Subject: [PATCH 100/243] F10 doesn't work on serial, so don't tell the user to +Subject: [PATCH 100/246] F10 doesn't work on serial, so don't tell the user to hit it (#987443) Signed-off-by: Peter Jones diff --git a/0101-Don-t-say-GNU-Linux-in-generated-menus.patch b/0101-Don-t-say-GNU-Linux-in-generated-menus.patch index 1789f974..eb35f153 100644 --- a/0101-Don-t-say-GNU-Linux-in-generated-menus.patch +++ b/0101-Don-t-say-GNU-Linux-in-generated-menus.patch @@ -1,7 +1,7 @@ From 45877a77f50eecd0b7fd3ba1aec0d4398a3b6a20 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 14 Mar 2011 14:27:42 -0400 -Subject: [PATCH 101/243] Don't say "GNU/Linux" in generated menus. +Subject: [PATCH 101/246] Don't say "GNU/Linux" in generated menus. --- util/grub.d/10_linux.in | 4 ++-- diff --git a/0102-Don-t-draw-a-border-around-the-menu.patch b/0102-Don-t-draw-a-border-around-the-menu.patch index f501d126..2d95b44f 100644 --- a/0102-Don-t-draw-a-border-around-the-menu.patch +++ b/0102-Don-t-draw-a-border-around-the-menu.patch @@ -1,7 +1,7 @@ From c28a3053e96859000df5ff1d48c9a560d47c0470 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 16:47:33 -0400 -Subject: [PATCH 102/243] Don't draw a border around the menu +Subject: [PATCH 102/246] Don't draw a border around the menu It looks cleaner without it. --- diff --git a/0103-Use-the-standard-margin-for-the-timeout-string.patch b/0103-Use-the-standard-margin-for-the-timeout-string.patch index 5cfcf0c9..629ae7b7 100644 --- a/0103-Use-the-standard-margin-for-the-timeout-string.patch +++ b/0103-Use-the-standard-margin-for-the-timeout-string.patch @@ -1,7 +1,7 @@ From 93018f5d1727eb58dead129f150a36080c22530a Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 10:52:32 -0400 -Subject: [PATCH 103/243] Use the standard margin for the timeout string +Subject: [PATCH 103/246] Use the standard margin for the timeout string So that it aligns with the other messages --- diff --git a/0104-Add-.eh_frame-to-list-of-relocations-stripped.patch b/0104-Add-.eh_frame-to-list-of-relocations-stripped.patch index 6b6f9949..07bb011b 100644 --- a/0104-Add-.eh_frame-to-list-of-relocations-stripped.patch +++ b/0104-Add-.eh_frame-to-list-of-relocations-stripped.patch @@ -1,7 +1,7 @@ From c626121f38adf6fcd39a5f69249c650b4b52c10d Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Mon, 13 Jan 2014 21:50:59 -0500 -Subject: [PATCH 104/243] Add .eh_frame to list of relocations stripped +Subject: [PATCH 104/246] Add .eh_frame to list of relocations stripped --- conf/Makefile.common | 2 +- diff --git a/0105-Make-10_linux-work-with-our-changes-for-linux16-and-.patch b/0105-Make-10_linux-work-with-our-changes-for-linux16-and-.patch index f36877c9..ae481dde 100644 --- a/0105-Make-10_linux-work-with-our-changes-for-linux16-and-.patch +++ b/0105-Make-10_linux-work-with-our-changes-for-linux16-and-.patch @@ -1,7 +1,7 @@ From 59275c83e7a303c63379d37ba21aa39a3c3b7203 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jan 2014 13:12:23 -0500 -Subject: [PATCH 105/243] Make 10_linux work with our changes for linux16 and +Subject: [PATCH 105/246] Make 10_linux work with our changes for linux16 and linuxefi on aarch64 Signed-off-by: Peter Jones diff --git a/0106-Don-t-print-during-fdt-loading-method.patch b/0106-Don-t-print-during-fdt-loading-method.patch index ae968587..194f4309 100644 --- a/0106-Don-t-print-during-fdt-loading-method.patch +++ b/0106-Don-t-print-during-fdt-loading-method.patch @@ -1,7 +1,7 @@ From aedf2aceb354ab7bf28bbf70d0a4b505c0adcfdf Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jan 2014 16:15:46 -0500 -Subject: [PATCH 106/243] Don't print during fdt loading method. +Subject: [PATCH 106/246] Don't print during fdt loading method. Signed-off-by: Peter Jones --- diff --git a/0107-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch b/0107-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch index bb47b23d..740b77b4 100644 --- a/0107-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch +++ b/0107-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch @@ -1,7 +1,7 @@ From f2790b1f7c8efcd5589c8fcdaca51b548ab9825c Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Mon, 30 Jun 2014 14:16:46 -0400 -Subject: [PATCH 107/243] Don't munge raw spaces when we're doing our cmdline +Subject: [PATCH 107/246] Don't munge raw spaces when we're doing our cmdline escaping (#923374) Signed-off-by: Peter Jones diff --git a/0108-Don-t-require-a-password-to-boot-entries-generated-b.patch b/0108-Don-t-require-a-password-to-boot-entries-generated-b.patch index e7847d65..d63599f0 100644 --- a/0108-Don-t-require-a-password-to-boot-entries-generated-b.patch +++ b/0108-Don-t-require-a-password-to-boot-entries-generated-b.patch @@ -1,7 +1,7 @@ From 205a7844bea4d849dc24f24b5fc96f6040d5e2b9 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 11 Feb 2014 11:14:50 -0500 -Subject: [PATCH 108/243] Don't require a password to boot entries generated by +Subject: [PATCH 108/246] Don't require a password to boot entries generated by grub-mkconfig. When we set a password, we just want that to mean you can't /edit/ an entry. diff --git a/0109-Don-t-emit-Booting-.-message.patch b/0109-Don-t-emit-Booting-.-message.patch index b83bf626..b73a626a 100644 --- a/0109-Don-t-emit-Booting-.-message.patch +++ b/0109-Don-t-emit-Booting-.-message.patch @@ -1,7 +1,7 @@ From c986c38f790881be0b9c5b0acd8d3b106412a5f1 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 18 Feb 2014 09:37:49 -0500 -Subject: [PATCH 109/243] Don't emit "Booting ..." message. +Subject: [PATCH 109/246] Don't emit "Booting ..." message. UI team still hates this stuff, so we're disabling it for RHEL 7. diff --git a/0110-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch b/0110-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch index 5102fcb6..12ae990f 100644 --- a/0110-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch +++ b/0110-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch @@ -1,7 +1,7 @@ From dcf3b9c590f00e33f773de68ac4ebd55ca4f6e90 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 4 Mar 2014 11:00:23 -0500 -Subject: [PATCH 110/243] Replace a lot of man pages with slightly nicer ones. +Subject: [PATCH 110/246] Replace a lot of man pages with slightly nicer ones. Replace a bunch of machine generated ones with ones that look nicer. --- diff --git a/0111-use-fw_path-prefix-when-fallback-searching-for-grub-.patch b/0111-use-fw_path-prefix-when-fallback-searching-for-grub-.patch index f5bd181a..33cde8d5 100644 --- a/0111-use-fw_path-prefix-when-fallback-searching-for-grub-.patch +++ b/0111-use-fw_path-prefix-when-fallback-searching-for-grub-.patch @@ -1,7 +1,7 @@ From 24865a88781aef2a6a54433b5b383219108f54fa Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Wed, 19 Feb 2014 15:58:43 -0500 -Subject: [PATCH 111/243] use fw_path prefix when fallback searching for grub +Subject: [PATCH 111/246] use fw_path prefix when fallback searching for grub config When PXE booting via UEFI firmware, grub was searching for grub.cfg diff --git a/0112-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch b/0112-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch index fb335b2d..8ed3bd3e 100644 --- a/0112-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch +++ b/0112-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch @@ -1,7 +1,7 @@ From d4cd9aa8695ab9448da41f756553beb75bffee46 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 6 Mar 2014 11:51:33 -0500 -Subject: [PATCH 112/243] Try mac/guid/etc before grub.cfg on tftp config +Subject: [PATCH 112/246] Try mac/guid/etc before grub.cfg on tftp config files. Signed-off-by: Peter Jones diff --git a/0113-Fix-convert-function-to-support-NVMe-devices.patch b/0113-Fix-convert-function-to-support-NVMe-devices.patch index 5bfaa53f..d3bd3a75 100644 --- a/0113-Fix-convert-function-to-support-NVMe-devices.patch +++ b/0113-Fix-convert-function-to-support-NVMe-devices.patch @@ -1,7 +1,7 @@ From 397f179c26aeddf3fe452c62aa404459889835fc Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 18 Feb 2014 11:34:00 -0500 -Subject: [PATCH 113/243] Fix convert function to support NVMe devices +Subject: [PATCH 113/246] Fix convert function to support NVMe devices This is adapted from the patch at https://bugzilla.redhat.com/show_bug.cgi?id=1019660 , which is against diff --git a/0114-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch b/0114-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch index 948f1f8f..3701d035 100644 --- a/0114-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch +++ b/0114-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch @@ -1,7 +1,7 @@ From 4291f418c3304f0f379467e87ce5892853cc16c7 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Mon, 10 Feb 2014 16:13:10 -0500 -Subject: [PATCH 114/243] Switch to use APM Mustang device tree, for hardware +Subject: [PATCH 114/246] Switch to use APM Mustang device tree, for hardware testing. Signed-off-by: David A. Marlin diff --git a/0115-Use-the-default-device-tree-from-the-grub-default-fi.patch b/0115-Use-the-default-device-tree-from-the-grub-default-fi.patch index b7979ba0..40251b18 100644 --- a/0115-Use-the-default-device-tree-from-the-grub-default-fi.patch +++ b/0115-Use-the-default-device-tree-from-the-grub-default-fi.patch @@ -1,7 +1,7 @@ From 5111bdda0d0a21ab02f6c9aa441a32cd02c6bc3f Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Wed, 12 Feb 2014 14:54:04 -0500 -Subject: [PATCH 115/243] Use the default device tree from the grub default +Subject: [PATCH 115/246] Use the default device tree from the grub default file instead of hardcoding a value. diff --git a/0116-reopen-SNP-protocol-for-exclusive-use-by-grub.patch b/0116-reopen-SNP-protocol-for-exclusive-use-by-grub.patch index c8826065..373af823 100644 --- a/0116-reopen-SNP-protocol-for-exclusive-use-by-grub.patch +++ b/0116-reopen-SNP-protocol-for-exclusive-use-by-grub.patch @@ -1,7 +1,7 @@ From 0ff5bf3deefdb17dbadb51a11acc50b96e2ed797 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Sat, 15 Feb 2014 15:10:22 -0500 -Subject: [PATCH 116/243] reopen SNP protocol for exclusive use by grub +Subject: [PATCH 116/246] reopen SNP protocol for exclusive use by grub --- grub-core/net/drivers/efi/efinet.c | 16 ++++++++++++++++ diff --git a/0117-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch b/0117-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch index be74aae7..6443daf4 100644 --- a/0117-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch +++ b/0117-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch @@ -1,7 +1,7 @@ From 58fba65b7e339d4c7279e4ca88937d9501275169 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 4 Mar 2016 15:13:59 -0500 -Subject: [PATCH 117/243] Revert "reopen SNP protocol for exclusive use by +Subject: [PATCH 117/246] Revert "reopen SNP protocol for exclusive use by grub" This reverts commit a3f2c756ce34c9666bddef35e3b3b85ccecdcffc , which is diff --git a/0118-Add-grub_util_readlink.patch b/0118-Add-grub_util_readlink.patch index 1ae5d47a..2f4f3a6a 100644 --- a/0118-Add-grub_util_readlink.patch +++ b/0118-Add-grub_util_readlink.patch @@ -1,7 +1,7 @@ From 76baa996f73eea47f7bdc41461efeee204626e2d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 3 Sep 2014 10:01:03 -0400 -Subject: [PATCH 118/243] Add grub_util_readlink() +Subject: [PATCH 118/246] Add grub_util_readlink() Add grub_util_readlink(). This requires pulling in stat and readlink from gnulib, which pulls in stat and related headers, but after that the diff --git a/0119-Make-editenv-chase-symlinks-including-those-across-d.patch b/0119-Make-editenv-chase-symlinks-including-those-across-d.patch index c1078560..4d2f302d 100644 --- a/0119-Make-editenv-chase-symlinks-including-those-across-d.patch +++ b/0119-Make-editenv-chase-symlinks-including-those-across-d.patch @@ -1,7 +1,7 @@ From fd1a89c8bef603ec33937f122ae25013a724601a Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 3 Sep 2014 10:38:00 -0400 -Subject: [PATCH 119/243] Make editenv chase symlinks including those across +Subject: [PATCH 119/246] Make editenv chase symlinks including those across devices. This lets us make /boot/grub2/grubenv a symlink to diff --git a/0120-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch b/0120-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch index e434796d..a7c23c2e 100644 --- a/0120-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch +++ b/0120-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch @@ -1,7 +1,7 @@ From c8d93b9e27e9cbf51e91f6cc99abbcb7b68189ce Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Sep 2014 14:23:23 -0400 -Subject: [PATCH 120/243] Generate OS and CLASS in 10_linux from +Subject: [PATCH 120/246] Generate OS and CLASS in 10_linux from /etc/os-release This makes us use pretty names in the titles we generate in diff --git a/0121-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch b/0121-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch index ea4e9662..6ca080cb 100644 --- a/0121-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch +++ b/0121-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch @@ -1,7 +1,7 @@ From 974241c42b03f3ccb6a5d0eb453283e370da9848 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Sep 2014 15:52:08 -0400 -Subject: [PATCH 121/243] Minimize the sort ordering for .debug and -rescue- +Subject: [PATCH 121/246] Minimize the sort ordering for .debug and -rescue- kernels. Resolves: rhbz#1065360 diff --git a/0122-Load-arm-with-SB-enabled.patch b/0122-Load-arm-with-SB-enabled.patch index cbd8a666..55cb80bb 100644 --- a/0122-Load-arm-with-SB-enabled.patch +++ b/0122-Load-arm-with-SB-enabled.patch @@ -1,7 +1,7 @@ From edfc2b0952b1eacf95188e53167cc038e5ea0129 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 18 Sep 2014 11:26:14 -0400 -Subject: [PATCH 122/243] Load arm with SB enabled. +Subject: [PATCH 122/246] Load arm with SB enabled. Make sure we actually try to validate secure boot on this platform (even though we're not shipping it enabled by default.) diff --git a/0123-Try-prefix-if-fw_path-doesn-t-work.patch b/0123-Try-prefix-if-fw_path-doesn-t-work.patch index df9c0283..363a45c8 100644 --- a/0123-Try-prefix-if-fw_path-doesn-t-work.patch +++ b/0123-Try-prefix-if-fw_path-doesn-t-work.patch @@ -1,7 +1,7 @@ From 3846b040f1050f246e1e975ee88f22c687ae04bf Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 3 Oct 2014 11:08:03 -0400 -Subject: [PATCH 123/243] Try $prefix if $fw_path doesn't work. +Subject: [PATCH 123/246] Try $prefix if $fw_path doesn't work. Related: rhbz#1148652 diff --git a/0124-Update-info-with-grub.cfg-netboot-selection-order-11.patch b/0124-Update-info-with-grub.cfg-netboot-selection-order-11.patch index 1c2e3e31..8b740ddc 100644 --- a/0124-Update-info-with-grub.cfg-netboot-selection-order-11.patch +++ b/0124-Update-info-with-grub.cfg-netboot-selection-order-11.patch @@ -1,7 +1,7 @@ From d4b4184078610a3639fa1e0e463679c424496c3b Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Mon, 16 Mar 2015 16:34:51 -0400 -Subject: [PATCH 124/243] Update info with grub.cfg netboot selection order +Subject: [PATCH 124/246] Update info with grub.cfg netboot selection order (#1148650) Added documentation to the grub info page that specifies the order diff --git a/0125-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch b/0125-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch index eb214ab6..197da945 100644 --- a/0125-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch +++ b/0125-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch @@ -1,7 +1,7 @@ From ce125cafc1e94bf70f2a3dbb545960bd8dd23a2f Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Mon, 16 Mar 2015 14:14:19 -0400 -Subject: [PATCH 125/243] Use Distribution Package Sort for grub2-mkconfig +Subject: [PATCH 125/246] Use Distribution Package Sort for grub2-mkconfig (#1124074) Users reported that newly installed kernels on their systems installed diff --git a/0126-Handle-rssd-storage-devices.patch b/0126-Handle-rssd-storage-devices.patch index a6ffd49b..39b2ff5a 100644 --- a/0126-Handle-rssd-storage-devices.patch +++ b/0126-Handle-rssd-storage-devices.patch @@ -1,7 +1,7 @@ From 1956a2192ac0a8421ee83bf77fdf223f2be0bdfb Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 30 Jun 2015 15:50:41 -0400 -Subject: [PATCH 126/243] Handle rssd storage devices. +Subject: [PATCH 126/246] Handle rssd storage devices. Resolves: rhbz#1087962 diff --git a/0127-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch b/0127-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch index 8676032c..1811028d 100644 --- a/0127-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch +++ b/0127-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch @@ -1,7 +1,7 @@ From 5f89c77c7cff17c931f1ea52af0c39df8ab28ac9 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 27 Oct 2014 09:22:55 -0400 -Subject: [PATCH 127/243] Try to emit linux16/initrd16 and linuxefi/initrdefi +Subject: [PATCH 127/246] Try to emit linux16/initrd16 and linuxefi/initrdefi in 30-os_prober. Resolves: rhbz#1108296 diff --git a/0128-Make-grub2-mkconfig-construct-titles-that-look-like-.patch b/0128-Make-grub2-mkconfig-construct-titles-that-look-like-.patch index 6b086789..297b2899 100644 --- a/0128-Make-grub2-mkconfig-construct-titles-that-look-like-.patch +++ b/0128-Make-grub2-mkconfig-construct-titles-that-look-like-.patch @@ -1,7 +1,7 @@ From c7ae420d095ccec20481c25b14773ab2fce658b5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 28 Apr 2015 11:15:03 -0400 -Subject: [PATCH 128/243] Make grub2-mkconfig construct titles that look like +Subject: [PATCH 128/246] Make grub2-mkconfig construct titles that look like the ones we want elsewhere. Resolves: rhbz#1215839 diff --git a/0129-Add-friendly-grub2-password-config-tool-985962.patch b/0129-Add-friendly-grub2-password-config-tool-985962.patch index bd194649..77b403c6 100644 --- a/0129-Add-friendly-grub2-password-config-tool-985962.patch +++ b/0129-Add-friendly-grub2-password-config-tool-985962.patch @@ -1,7 +1,7 @@ From 68f21f5ebebc23a6d8512631f2a1d474afcccd43 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Thu, 25 Jun 2015 11:13:11 -0400 -Subject: [PATCH 129/243] Add friendly grub2 password config tool (#985962) +Subject: [PATCH 129/246] Add friendly grub2 password config tool (#985962) Provided a tool for users to reset the grub2 root user password without having to alter the grub.cfg. The hashed password now diff --git a/0130-Make-grub2-mkconfig-construct-titles-that-look-like-.patch b/0130-Make-grub2-mkconfig-construct-titles-that-look-like-.patch index fe280cd2..94c46226 100644 --- a/0130-Make-grub2-mkconfig-construct-titles-that-look-like-.patch +++ b/0130-Make-grub2-mkconfig-construct-titles-that-look-like-.patch @@ -1,7 +1,7 @@ From 7a7644507e4d953ea8f8d1d7133622a72a2168f5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 28 Apr 2015 11:15:03 -0400 -Subject: [PATCH 130/243] Make grub2-mkconfig construct titles that look like +Subject: [PATCH 130/246] Make grub2-mkconfig construct titles that look like the ones we want elsewhere. Resolves: rhbz#1215839 diff --git a/0131-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch b/0131-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch index 98e9536b..75f9392f 100644 --- a/0131-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch +++ b/0131-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch @@ -1,7 +1,7 @@ From 6f892038567f1706fdde819f5f226ec4cacbea47 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 3 Aug 2015 11:46:42 -0400 -Subject: [PATCH 131/243] Try to make sure configure.ac and grub-rpm-sort play +Subject: [PATCH 131/246] Try to make sure configure.ac and grub-rpm-sort play nice. Apparently the test for whether to use grub-rpm-sort and also the diff --git a/0132-tcp-add-window-scaling-support.patch b/0132-tcp-add-window-scaling-support.patch index 8d4f66ee..37bec5e2 100644 --- a/0132-tcp-add-window-scaling-support.patch +++ b/0132-tcp-add-window-scaling-support.patch @@ -1,7 +1,7 @@ From 71e31c279c07f9f51f2a482b70b40b7deed69a69 Mon Sep 17 00:00:00 2001 From: Josef Bacik Date: Wed, 12 Aug 2015 08:57:55 -0700 -Subject: [PATCH 132/243] tcp: add window scaling support +Subject: [PATCH 132/246] tcp: add window scaling support Sometimes we have to provision boxes across regions, such as California to Sweden. The http server has a 10 minute timeout, so if we can't get our 250mb diff --git a/0133-efinet-retransmit-if-our-device-is-busy.patch b/0133-efinet-retransmit-if-our-device-is-busy.patch index 32b3c1d2..44a35b71 100644 --- a/0133-efinet-retransmit-if-our-device-is-busy.patch +++ b/0133-efinet-retransmit-if-our-device-is-busy.patch @@ -1,7 +1,7 @@ From d09f32622f6fc247dd88f731c34be10395785d8d Mon Sep 17 00:00:00 2001 From: Josef Bacik Date: Mon, 31 Aug 2015 13:34:35 -0400 -Subject: [PATCH 133/243] efinet: retransmit if our device is busy +Subject: [PATCH 133/246] efinet: retransmit if our device is busy When I fixed the txbuf handling I ripped out the retransmission code since it was flooding our network when we had the buggy behavior. Turns out this was too diff --git a/0134-Be-more-aggro-about-actually-using-the-configured-ne.patch b/0134-Be-more-aggro-about-actually-using-the-configured-ne.patch index ff912799..815f349a 100644 --- a/0134-Be-more-aggro-about-actually-using-the-configured-ne.patch +++ b/0134-Be-more-aggro-about-actually-using-the-configured-ne.patch @@ -1,7 +1,7 @@ From 8ece44c2c8f88f531ac9a679f65a263e7b6d2dba Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 11 Sep 2015 17:30:49 -0400 -Subject: [PATCH 134/243] Be more aggro about actually using the *configured* +Subject: [PATCH 134/246] Be more aggro about actually using the *configured* network device. Right now we use any SNP device with the same mac+IP block, but when diff --git a/0135-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch b/0135-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch index c76a49f4..cd52f2cd 100644 --- a/0135-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch +++ b/0135-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch @@ -1,7 +1,7 @@ From 82b9fdcbbc339c36842c625203fc2b1f22a86c9e Mon Sep 17 00:00:00 2001 From: RHEL Ninjas Date: Fri, 25 Sep 2015 16:24:23 +0900 -Subject: [PATCH 135/243] efinet: add filter for the first exclusive reopen of +Subject: [PATCH 135/246] efinet: add filter for the first exclusive reopen of SNP --- diff --git a/0136-Fix-security-issue-when-reading-username-and-passwor.patch b/0136-Fix-security-issue-when-reading-username-and-passwor.patch index 5d8a8ff1..6982a242 100644 --- a/0136-Fix-security-issue-when-reading-username-and-passwor.patch +++ b/0136-Fix-security-issue-when-reading-username-and-passwor.patch @@ -1,7 +1,7 @@ From 9961e63642244617b697d93bbc49379e23b6839d Mon Sep 17 00:00:00 2001 From: Hector Marco-Gisbert Date: Fri, 13 Nov 2015 16:21:09 +0100 -Subject: [PATCH 136/243] Fix security issue when reading username and password +Subject: [PATCH 136/246] Fix security issue when reading username and password This patch fixes two integer underflows at: * grub-core/lib/crypto.c diff --git a/0137-Warn-if-grub-password-will-not-be-read-1290803.patch b/0137-Warn-if-grub-password-will-not-be-read-1290803.patch index 5335ffdb..25037031 100644 --- a/0137-Warn-if-grub-password-will-not-be-read-1290803.patch +++ b/0137-Warn-if-grub-password-will-not-be-read-1290803.patch @@ -1,7 +1,7 @@ From 056a956aea898f9d3ee34ecad9660addc3f3108c Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Mon, 22 Feb 2016 15:30:05 -0500 -Subject: [PATCH 137/243] Warn if grub password will not be read (#1290803) +Subject: [PATCH 137/246] Warn if grub password will not be read (#1290803) It is possible for a system to have never run grub-mkconfig and add the section that reads the user.cfg file which contains a user set GRUB diff --git a/0138-Clean-up-grub-setpassword-documentation-1290799.patch b/0138-Clean-up-grub-setpassword-documentation-1290799.patch index 3ccbfb31..b018b1ec 100644 --- a/0138-Clean-up-grub-setpassword-documentation-1290799.patch +++ b/0138-Clean-up-grub-setpassword-documentation-1290799.patch @@ -1,7 +1,7 @@ From 92af2b24adb7371d8234c0b32ae716adf0b80d42 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Tue, 26 Jan 2016 10:28:35 -0500 -Subject: [PATCH 138/243] Clean up grub-setpassword documentation (#1290799) +Subject: [PATCH 138/246] Clean up grub-setpassword documentation (#1290799) The output for --help had some errors. Corrected those and polished the text to be a little easier to follow. Carried verbage over to man page diff --git a/0139-Fix-locale-issue-in-grub-setpassword-1294243.patch b/0139-Fix-locale-issue-in-grub-setpassword-1294243.patch index caa07ccd..41093f25 100644 --- a/0139-Fix-locale-issue-in-grub-setpassword-1294243.patch +++ b/0139-Fix-locale-issue-in-grub-setpassword-1294243.patch @@ -1,7 +1,7 @@ From 373adc50cf9f09015e40ffd1bf79ab9f291f4fc2 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Fri, 29 Jan 2016 16:56:11 -0500 -Subject: [PATCH 139/243] Fix locale issue in grub-setpassword (#1294243) +Subject: [PATCH 139/246] Fix locale issue in grub-setpassword (#1294243) A shell substitution was expecting non-translated output to grab the hashed password and put it in the user.cfg file. Modified code to force diff --git a/0140-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch b/0140-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch index a1b210d8..18af3761 100644 --- a/0140-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch +++ b/0140-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch @@ -1,7 +1,7 @@ From eab0520310030376f6295e0338e874bce10b0d5f Mon Sep 17 00:00:00 2001 From: Robert Elliott Date: Fri, 22 Jan 2016 13:32:30 +0100 -Subject: [PATCH 140/243] efiemu: Handle persistent RAM and unknown possible +Subject: [PATCH 140/246] efiemu: Handle persistent RAM and unknown possible future additions. (cherry picked from commit ae3b83a4d4df75a01198a2fed7542391e7c449e0) diff --git a/0141-efiemu-Fix-compilation-failure.patch b/0141-efiemu-Fix-compilation-failure.patch index 2bccb729..254071b6 100644 --- a/0141-efiemu-Fix-compilation-failure.patch +++ b/0141-efiemu-Fix-compilation-failure.patch @@ -1,7 +1,7 @@ From 68bdf29eb6e376a3b4a817bbe7481efd12b8f9de Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Fri, 22 Jan 2016 14:10:30 +0100 -Subject: [PATCH 141/243] efiemu: Fix compilation failure +Subject: [PATCH 141/246] efiemu: Fix compilation failure (cherry picked from commit b6a03dfd327489d53ee07c6d7d593b99c7b7cb62) diff --git a/0142-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch b/0142-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch index 00d6c94f..3078ffdb 100644 --- a/0142-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch +++ b/0142-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch @@ -1,7 +1,7 @@ From df19c5ff9c9e716df0383e39992466304053c99d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 7 Apr 2016 10:58:06 -0400 -Subject: [PATCH 142/243] Revert "reopen SNP protocol for exclusive use by +Subject: [PATCH 142/246] Revert "reopen SNP protocol for exclusive use by grub" I *think* this should have been replaced by upstream's diff --git a/0143-Add-a-url-parser.patch b/0143-Add-a-url-parser.patch index 00e0926e..c6af7f2c 100644 --- a/0143-Add-a-url-parser.patch +++ b/0143-Add-a-url-parser.patch @@ -1,7 +1,7 @@ From 2f84b2e097ad9f6f7f06013f749251743eb32c2e Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jun 2016 16:18:44 -0400 -Subject: [PATCH 143/243] Add a url parser. +Subject: [PATCH 143/246] Add a url parser. This patch adds a url parser that can parse http, https, tftp, and tftps urls, and is easily extensible to handle more types. diff --git a/0144-efinet-and-bootp-add-support-for-dhcpv6.patch b/0144-efinet-and-bootp-add-support-for-dhcpv6.patch index 106f9593..3d25ad15 100644 --- a/0144-efinet-and-bootp-add-support-for-dhcpv6.patch +++ b/0144-efinet-and-bootp-add-support-for-dhcpv6.patch @@ -1,7 +1,7 @@ From 48768b0295ad4d908cefd8e8fbee96a4dc2765f5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 8 Jun 2016 21:03:37 -0400 -Subject: [PATCH 144/243] efinet and bootp: add support for dhcpv6 +Subject: [PATCH 144/246] efinet and bootp: add support for dhcpv6 Signed-off-by: Peter Jones --- diff --git a/0145-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch b/0145-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch index dbd90e16..3fd1c61b 100644 --- a/0145-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch +++ b/0145-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch @@ -1,7 +1,7 @@ From 764506b89942103c3a511d7933edef351fb594b8 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 23 Jun 2016 11:01:39 -0400 -Subject: [PATCH 145/243] Add grub-get-kernel-settings and use it in 10_linux +Subject: [PATCH 145/246] Add grub-get-kernel-settings and use it in 10_linux This patch adds grub-get-kernel-settings, which reads the system kernel installation configuration from /etc/sysconfig/kernel, and outputs diff --git a/0146-Normalize-slashes-in-tftp-paths.patch b/0146-Normalize-slashes-in-tftp-paths.patch index 9d09a73f..3e15c892 100644 --- a/0146-Normalize-slashes-in-tftp-paths.patch +++ b/0146-Normalize-slashes-in-tftp-paths.patch @@ -1,7 +1,7 @@ From 406402dfaecc62ede346793c9c7a0568dc71c131 Mon Sep 17 00:00:00 2001 From: Lenny Szubowicz Date: Mon, 29 Aug 2016 11:04:48 -0400 -Subject: [PATCH 146/243] Normalize slashes in tftp paths. +Subject: [PATCH 146/246] Normalize slashes in tftp paths. Some tftp servers do not handle multiple consecutive slashes correctly; this patch avoids sending tftp requests with non-normalized paths. diff --git a/0147-Fix-malformed-tftp-packets.patch b/0147-Fix-malformed-tftp-packets.patch index e7d44242..5584791c 100644 --- a/0147-Fix-malformed-tftp-packets.patch +++ b/0147-Fix-malformed-tftp-packets.patch @@ -1,7 +1,7 @@ From 7d05a8298e6a54bfae0038841462443f21da3535 Mon Sep 17 00:00:00 2001 From: Mark Salter Date: Tue, 7 Mar 2017 18:26:17 -0500 -Subject: [PATCH 147/243] Fix malformed tftp packets +Subject: [PATCH 147/246] Fix malformed tftp packets 0088-Normalize-slashes-in-tftp-paths.patch collapses multiple contiguous slashes in a filename into one slash in the tftp packet filename field. diff --git a/0148-Fix-race-in-EFI-validation.patch b/0148-Fix-race-in-EFI-validation.patch index b3272f7f..cfdc3d6c 100644 --- a/0148-Fix-race-in-EFI-validation.patch +++ b/0148-Fix-race-in-EFI-validation.patch @@ -1,7 +1,7 @@ From bf59d76ca82eb4eaa20a747f5890d09632ba93d0 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 14 Jul 2015 16:58:51 -0700 -Subject: [PATCH 148/243] Fix race in EFI validation +Subject: [PATCH 148/246] Fix race in EFI validation --- grub-core/loader/i386/efi/linux.c | 44 ++++++++++----------------------------- diff --git a/0149-bz1374141-fix-incorrect-mask-for-ppc64.patch b/0149-bz1374141-fix-incorrect-mask-for-ppc64.patch index 64e2ea30..a1af75c1 100644 --- a/0149-bz1374141-fix-incorrect-mask-for-ppc64.patch +++ b/0149-bz1374141-fix-incorrect-mask-for-ppc64.patch @@ -1,7 +1,7 @@ From 84a5f535949f590a8976c64c3d1fde08fe0f7464 Mon Sep 17 00:00:00 2001 From: Masahiro Matsuya Date: Sat, 29 Oct 2016 08:35:26 +0900 -Subject: [PATCH 149/243] bz1374141 fix incorrect mask for ppc64 +Subject: [PATCH 149/246] bz1374141 fix incorrect mask for ppc64 The netmask configured in firmware is not respected on ppc64 (big endian). When 255.255.252.0 is set as netmask in firmware, the following is the value of bootpath string in grub_ieee1275_parse_bootpath(). diff --git a/0150-Use-device-part-of-chainloader-target-if-present.patch b/0150-Use-device-part-of-chainloader-target-if-present.patch index 0bd0a8df..27250e35 100644 --- a/0150-Use-device-part-of-chainloader-target-if-present.patch +++ b/0150-Use-device-part-of-chainloader-target-if-present.patch @@ -1,7 +1,7 @@ From d426e20f8b41ebf114075dc4ffbcaf438ceb4b95 Mon Sep 17 00:00:00 2001 From: Raymund Will Date: Fri, 10 Apr 2015 01:45:02 -0400 -Subject: [PATCH 150/243] Use device part of chainloader target, if present. +Subject: [PATCH 150/246] Use device part of chainloader target, if present. Otherwise chainloading is restricted to '$root', which might not even be readable by EFI! diff --git a/0151-Add-secureboot-support-on-efi-chainloader.patch b/0151-Add-secureboot-support-on-efi-chainloader.patch index 4c2200f2..b1091bb1 100644 --- a/0151-Add-secureboot-support-on-efi-chainloader.patch +++ b/0151-Add-secureboot-support-on-efi-chainloader.patch @@ -1,7 +1,7 @@ From bbf98517303e438cea398bb74306b6553c880ac3 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 6 Oct 2015 13:04:37 -0400 -Subject: [PATCH 151/243] Add secureboot support on efi chainloader +Subject: [PATCH 151/246] Add secureboot support on efi chainloader Expand the chainloader to be able to verify the image by means of shim lock protocol. The PE/COFF image is loaded and relocated by the diff --git a/0152-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch b/0152-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch index 47d3984c..3c4663b2 100644 --- a/0152-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch +++ b/0152-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch @@ -1,7 +1,7 @@ From 25ea5be888dcc92cd0b3cb7d34b381f5005f1e30 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 6 Oct 2015 16:09:25 -0400 -Subject: [PATCH 152/243] Make any of the loaders that link in efi mode honor +Subject: [PATCH 152/246] Make any of the loaders that link in efi mode honor secure boot. And in this case "honor" means "even if somebody does link this in, they diff --git a/0153-Make-grub_fatal-also-backtrace.patch b/0153-Make-grub_fatal-also-backtrace.patch index 619a5440..c5660c03 100644 --- a/0153-Make-grub_fatal-also-backtrace.patch +++ b/0153-Make-grub_fatal-also-backtrace.patch @@ -1,7 +1,7 @@ From eb1a27144476324a22561383a0a2e61aa327d2f5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 27 Jan 2016 09:22:42 -0500 -Subject: [PATCH 153/243] Make grub_fatal() also backtrace. +Subject: [PATCH 153/246] Make grub_fatal() also backtrace. --- grub-core/Makefile.core.def | 3 ++ diff --git a/0154-Rework-linux-command.patch b/0154-Rework-linux-command.patch index d928ba0e..227bda34 100644 --- a/0154-Rework-linux-command.patch +++ b/0154-Rework-linux-command.patch @@ -1,7 +1,7 @@ From 12312bfe1727a2992042436cb0f8c8ba1c69ee2f Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 16:12:39 -0700 -Subject: [PATCH 154/243] Rework linux command +Subject: [PATCH 154/246] Rework linux command We want a single buffer that contains the entire kernel image in order to perform a TPM measurement. Allocate one and copy the entire kernel into it diff --git a/0155-Rework-linux16-command.patch b/0155-Rework-linux16-command.patch index 2bd69ba4..137c0de1 100644 --- a/0155-Rework-linux16-command.patch +++ b/0155-Rework-linux16-command.patch @@ -1,7 +1,7 @@ From 24250bbb84f8817462426c46b255d875de627bf1 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 16:20:58 -0700 -Subject: [PATCH 155/243] Rework linux16 command +Subject: [PATCH 155/246] Rework linux16 command We want a single buffer that contains the entire kernel image in order to perform a TPM measurement. Allocate one and copy the entire kernel int it diff --git a/0156-Make-grub-editenv-build-again.patch b/0156-Make-grub-editenv-build-again.patch index b559165b..b1041b8a 100644 --- a/0156-Make-grub-editenv-build-again.patch +++ b/0156-Make-grub-editenv-build-again.patch @@ -1,7 +1,7 @@ From ebe69b2682b5b3029d8ea503f12134ee81c4b2ce Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 4 Mar 2016 16:29:13 -0500 -Subject: [PATCH 156/243] Make grub-editenv build again. +Subject: [PATCH 156/246] Make grub-editenv build again. 36212460d3565b18439a3a8130b28e6c97702c6a split how some of the mkimage utility functions are defined, and they wind up being linked into diff --git a/0157-Fix-up-some-man-pages-rpmdiff-noticed.patch b/0157-Fix-up-some-man-pages-rpmdiff-noticed.patch index 6999ba0c..f78cda63 100644 --- a/0157-Fix-up-some-man-pages-rpmdiff-noticed.patch +++ b/0157-Fix-up-some-man-pages-rpmdiff-noticed.patch @@ -1,7 +1,7 @@ From c71e6152ea8e4e525a853441bb5f08808bae3afd Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 23 Sep 2014 09:58:49 -0400 -Subject: [PATCH 157/243] Fix up some man pages rpmdiff noticed. +Subject: [PATCH 157/246] Fix up some man pages rpmdiff noticed. --- configure.ac | 2 ++ diff --git a/0158-Re-work-some-intricacies-of-PE-loading.patch b/0158-Re-work-some-intricacies-of-PE-loading.patch index 933aa2c0..303f8fe9 100644 --- a/0158-Re-work-some-intricacies-of-PE-loading.patch +++ b/0158-Re-work-some-intricacies-of-PE-loading.patch @@ -1,7 +1,7 @@ From 145214ee7c411c7d600016f011dc11b213bce0b2 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 9 Jun 2016 12:22:29 -0400 -Subject: [PATCH 158/243] Re-work some intricacies of PE loading. +Subject: [PATCH 158/246] Re-work some intricacies of PE loading. The PE spec is not a well written document, and awesomely every place where there's an ambiguous way to read something, Windows' bootmgfw.efi diff --git a/0159-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch b/0159-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch index 0a5dc31b..e1bc8dd6 100644 --- a/0159-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch +++ b/0159-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch @@ -1,7 +1,7 @@ From ef24bc601e11b96eefe06f477b5da1199d761b3d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 10 Jun 2016 14:06:15 -0400 -Subject: [PATCH 159/243] Rework even more of efi chainload so non-sb cases +Subject: [PATCH 159/246] Rework even more of efi chainload so non-sb cases work right. This ensures that if shim protocol is not loaded, or is loaded but shim diff --git a/0160-linuxefi-fix-double-free-on-verification-failure.patch b/0160-linuxefi-fix-double-free-on-verification-failure.patch index c198a57b..281f855b 100644 --- a/0160-linuxefi-fix-double-free-on-verification-failure.patch +++ b/0160-linuxefi-fix-double-free-on-verification-failure.patch @@ -1,7 +1,7 @@ From 5ef3f00e6be3033092453a66f456b8dac8cd4f7c Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jun 2016 09:50:25 -0400 -Subject: [PATCH 160/243] linuxefi: fix double free on verification failure. +Subject: [PATCH 160/246] linuxefi: fix double free on verification failure. Signed-off-by: Peter Jones --- diff --git a/0161-fix-machine-type-test-in-30_os-prober.in.patch b/0161-fix-machine-type-test-in-30_os-prober.in.patch index 429bfb23..f63ff685 100644 --- a/0161-fix-machine-type-test-in-30_os-prober.in.patch +++ b/0161-fix-machine-type-test-in-30_os-prober.in.patch @@ -1,7 +1,7 @@ From 4139fdfdb64fd248a0d5f200b27c583159dbb190 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 11 Jul 2016 13:36:45 -0400 -Subject: [PATCH 161/243] fix machine type test in 30_os-prober.in +Subject: [PATCH 161/246] fix machine type test in 30_os-prober.in Signed-off-by: Peter Jones --- diff --git a/0162-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch b/0162-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch index 8a78be5e..439e17d1 100644 --- a/0162-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch +++ b/0162-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch @@ -1,7 +1,7 @@ From 671699a76fa6510a62c3a94acd698a31686cb8fa Mon Sep 17 00:00:00 2001 From: Laszlo Ersek Date: Mon, 21 Nov 2016 15:34:00 +0100 -Subject: [PATCH 162/243] efi/chainloader: fix wrong sanity check in +Subject: [PATCH 162/246] efi/chainloader: fix wrong sanity check in relocate_coff() In relocate_coff(), the relocation entries are parsed from the original diff --git a/0163-efi-chainloader-truncate-overlong-relocation-section.patch b/0163-efi-chainloader-truncate-overlong-relocation-section.patch index b08fc6c1..f0e9c4d1 100644 --- a/0163-efi-chainloader-truncate-overlong-relocation-section.patch +++ b/0163-efi-chainloader-truncate-overlong-relocation-section.patch @@ -1,7 +1,7 @@ From d081bd5f47235e3bfd256fd262a6f98fe8b0d0ff Mon Sep 17 00:00:00 2001 From: Laszlo Ersek Date: Wed, 23 Nov 2016 06:27:09 +0100 -Subject: [PATCH 163/243] efi/chainloader: truncate overlong relocation section +Subject: [PATCH 163/246] efi/chainloader: truncate overlong relocation section The UEFI Windows 7 boot loader ("EFI/Microsoft/Boot/bootmgfw.efi", SHA1 31b410e029bba87d2068c65a80b88882f9f8ea25) has inconsistent headers. diff --git a/0164-linuxefi-minor-cleanups.patch b/0164-linuxefi-minor-cleanups.patch index 9b7090a9..deec8b92 100644 --- a/0164-linuxefi-minor-cleanups.patch +++ b/0164-linuxefi-minor-cleanups.patch @@ -1,7 +1,7 @@ From 8dc21ff37f62f3d10fb3d708ffd33b7d723a23cf Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Feb 2017 16:31:52 -0500 -Subject: [PATCH 164/243] linuxefi: minor cleanups +Subject: [PATCH 164/246] linuxefi: minor cleanups Signed-off-by: Peter Jones --- diff --git a/0165-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch b/0165-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch index b1676fab..416fc1e2 100644 --- a/0165-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch +++ b/0165-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch @@ -1,7 +1,7 @@ From 10d6d333de0aa7e390a22ebc4b308f7ad937d5bc Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Feb 2017 16:18:54 -0500 -Subject: [PATCH 165/243] Handle multi-arch (64-on-32) boot in linuxefi loader. +Subject: [PATCH 165/246] Handle multi-arch (64-on-32) boot in linuxefi loader. Allow booting 64-bit kernels on 32-bit EFI on x86. diff --git a/0166-Fix-up-linux-params-usage.patch b/0166-Fix-up-linux-params-usage.patch index c32994ab..3ab86a87 100644 --- a/0166-Fix-up-linux-params-usage.patch +++ b/0166-Fix-up-linux-params-usage.patch @@ -1,7 +1,7 @@ From 93be95c27b0ddb63c2e3a287a3ed92c0a5de93e5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 30 May 2017 14:16:07 -0400 -Subject: [PATCH 166/243] Fix up linux params usage... +Subject: [PATCH 166/246] Fix up linux params usage... Signed-off-by: Peter Jones --- diff --git a/0167-Make-exit-take-a-return-code.patch b/0167-Make-exit-take-a-return-code.patch index b00851ce..1471c38a 100644 --- a/0167-Make-exit-take-a-return-code.patch +++ b/0167-Make-exit-take-a-return-code.patch @@ -1,7 +1,7 @@ From 6b67d46c1764c86611939dc01267f9c70f413184 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 26 Feb 2014 21:49:12 -0500 -Subject: [PATCH 167/243] Make "exit" take a return code. +Subject: [PATCH 167/246] Make "exit" take a return code. This adds "exit" with a return code. With this patch, any "exit" command /may/ include a return code, and on platforms that support diff --git a/0168-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch b/0168-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch index a9f581a8..ee6e7b2e 100644 --- a/0168-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch +++ b/0168-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch @@ -1,7 +1,7 @@ From e48a4c0b9e475b16366ff6c375de5186432eb1f7 Mon Sep 17 00:00:00 2001 From: Mark Salter Date: Mon, 17 Apr 2017 08:44:29 -0400 -Subject: [PATCH 168/243] arm64: make sure fdt has #address-cells and +Subject: [PATCH 168/246] arm64: make sure fdt has #address-cells and #size-cells properties Recent upstream changes to kexec-tools relies on #address-cells diff --git a/0169-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch b/0169-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch index fcd2fc4f..3c789c12 100644 --- a/0169-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch +++ b/0169-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch @@ -1,7 +1,7 @@ From 755fa5ccf0834abdb7e50a1cb06fad618f6c9af6 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 9 May 2016 14:15:17 -0400 -Subject: [PATCH 169/243] Add some grub_dprintf() in the secure boot verify +Subject: [PATCH 169/246] Add some grub_dprintf() in the secure boot verify code. Signed-off-by: Peter Jones diff --git a/0170-Make-our-info-pages-say-grub2-where-appropriate.patch b/0170-Make-our-info-pages-say-grub2-where-appropriate.patch index c91cc9a6..2ce06798 100644 --- a/0170-Make-our-info-pages-say-grub2-where-appropriate.patch +++ b/0170-Make-our-info-pages-say-grub2-where-appropriate.patch @@ -1,7 +1,7 @@ From 15c340acd845056ba259b9fffd6c7d083874cb82 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 6 May 2016 18:43:08 -0400 -Subject: [PATCH 170/243] Make our info pages say "grub2" where appropriate. +Subject: [PATCH 170/246] Make our info pages say "grub2" where appropriate. This needs to be hooked up to --program-transform=, but I haven't had time. diff --git a/0171-print-more-debug-info-in-our-module-loader.patch b/0171-print-more-debug-info-in-our-module-loader.patch index d4583973..062a9469 100644 --- a/0171-print-more-debug-info-in-our-module-loader.patch +++ b/0171-print-more-debug-info-in-our-module-loader.patch @@ -1,7 +1,7 @@ From 0d0a7ebbed42b97fca63cbcaf85a469b77c76fda Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 1 May 2017 11:19:40 -0400 -Subject: [PATCH 171/243] print more debug info in our module loader. +Subject: [PATCH 171/246] print more debug info in our module loader. Signed-off-by: Peter Jones --- diff --git a/0172-macos-just-build-chainloader-entries-don-t-try-any-x.patch b/0172-macos-just-build-chainloader-entries-don-t-try-any-x.patch index 011152cc..9b504bde 100644 --- a/0172-macos-just-build-chainloader-entries-don-t-try-any-x.patch +++ b/0172-macos-just-build-chainloader-entries-don-t-try-any-x.patch @@ -1,7 +1,7 @@ From 4cb6b65d74966dfbe6e8463ee1e88d99ca7de5b1 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 24 May 2017 12:42:32 -0400 -Subject: [PATCH 172/243] macos: just build chainloader entries, don't try any +Subject: [PATCH 172/246] macos: just build chainloader entries, don't try any xnu xnu. Since our bugs tell us that the xnu boot entries really just don't work diff --git a/0173-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch b/0173-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch index d6be3f82..75be6098 100644 --- a/0173-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch +++ b/0173-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch @@ -1,7 +1,7 @@ From 396001716b7f8c7a6aee17f33fdb9e5d47424cbc Mon Sep 17 00:00:00 2001 From: Jeff Mahoney Date: Wed, 18 Dec 2013 09:57:04 +0000 -Subject: [PATCH 173/243] grub2/btrfs: Add ability to boot from subvolumes +Subject: [PATCH 173/246] grub2/btrfs: Add ability to boot from subvolumes This patch adds the ability to specify a different root on a btrfs filesystem too boot from other than the default one. diff --git a/0174-export-btrfs_subvol-and-btrfs_subvolid.patch b/0174-export-btrfs_subvol-and-btrfs_subvolid.patch index e9d79309..dfcaa072 100644 --- a/0174-export-btrfs_subvol-and-btrfs_subvolid.patch +++ b/0174-export-btrfs_subvol-and-btrfs_subvolid.patch @@ -1,7 +1,7 @@ From 35c1015fc1a4313be34757eebb195547336e0edf Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Wed, 18 Dec 2013 09:57:04 +0000 -Subject: [PATCH 174/243] export btrfs_subvol and btrfs_subvolid +Subject: [PATCH 174/246] export btrfs_subvol and btrfs_subvolid We should export btrfs_subvol and btrfs_subvolid to have both visible to subsidiary configuration files loaded using configfile. diff --git a/0175-grub2-btrfs-03-follow_default.patch b/0175-grub2-btrfs-03-follow_default.patch index 968ddb11..f648a729 100644 --- a/0175-grub2-btrfs-03-follow_default.patch +++ b/0175-grub2-btrfs-03-follow_default.patch @@ -1,7 +1,7 @@ From 476a0251e8ca2850da7c383baf7fdbd810bc789f Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 21 Aug 2014 03:39:11 +0000 -Subject: [PATCH 175/243] grub2-btrfs-03-follow_default +Subject: [PATCH 175/246] grub2-btrfs-03-follow_default --- grub-core/fs/btrfs.c | 107 ++++++++++++++++++++++++++++++++++++--------------- diff --git a/0176-grub2-btrfs-04-grub2-install.patch b/0176-grub2-btrfs-04-grub2-install.patch index b01bda65..1446e95e 100644 --- a/0176-grub2-btrfs-04-grub2-install.patch +++ b/0176-grub2-btrfs-04-grub2-install.patch @@ -1,7 +1,7 @@ From e03dd83cc804d70af0716d0a429715afbcdc7eae Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 21 Aug 2014 03:39:11 +0000 -Subject: [PATCH 176/243] grub2-btrfs-04-grub2-install +Subject: [PATCH 176/246] grub2-btrfs-04-grub2-install --- grub-core/osdep/linux/getroot.c | 7 +++++++ diff --git a/0177-grub2-btrfs-05-grub2-mkconfig.patch b/0177-grub2-btrfs-05-grub2-mkconfig.patch index bd4d34ca..b3c4d2e3 100644 --- a/0177-grub2-btrfs-05-grub2-mkconfig.patch +++ b/0177-grub2-btrfs-05-grub2-mkconfig.patch @@ -1,7 +1,7 @@ From cb43e7a6c96127e72d6787c6063de8911284fe18 Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 21 Aug 2014 03:39:11 +0000 -Subject: [PATCH 177/243] grub2-btrfs-05-grub2-mkconfig +Subject: [PATCH 177/246] grub2-btrfs-05-grub2-mkconfig --- util/grub-mkconfig.in | 3 ++- diff --git a/0178-grub2-btrfs-06-subvol-mount.patch b/0178-grub2-btrfs-06-subvol-mount.patch index cfa0c4bf..db395f96 100644 --- a/0178-grub2-btrfs-06-subvol-mount.patch +++ b/0178-grub2-btrfs-06-subvol-mount.patch @@ -1,7 +1,7 @@ From 84d6a482c2c8d0677141bb888512a6a89daf9d8b Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Fri, 22 May 2015 11:45:25 +0000 -Subject: [PATCH 178/243] grub2-btrfs-06-subvol-mount +Subject: [PATCH 178/246] grub2-btrfs-06-subvol-mount --- grub-core/fs/btrfs.c | 195 +++++++++++++++++++++++++++++++++++++++- diff --git a/0179-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch b/0179-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch index bab103e7..da85406c 100644 --- a/0179-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch +++ b/0179-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch @@ -1,7 +1,7 @@ From 741c0651cd54970c08e9c19a82f5805aafbfda23 Mon Sep 17 00:00:00 2001 From: Dusty Mabe Date: Sat, 18 Jul 2015 15:38:08 +0000 -Subject: [PATCH 179/243] No more "Bootable Snapshot" submenu in grub.cfg. +Subject: [PATCH 179/246] No more "Bootable Snapshot" submenu in grub.cfg. This breaks grubby (run on kernel upgrades) because grubby just does a search for "menuentry". diff --git a/0180-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch b/0180-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch index ed7dd2b4..1b9658a6 100644 --- a/0180-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch +++ b/0180-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch @@ -1,7 +1,7 @@ From ab8e0d4bf544b708f5afa4cc56e6bd16789f2f1e Mon Sep 17 00:00:00 2001 From: Andrei Borzenkov Date: Tue, 21 Jun 2016 16:44:17 +0000 -Subject: [PATCH 180/243] Fallback to old subvol name scheme to support old +Subject: [PATCH 180/246] Fallback to old subvol name scheme to support old snapshot config Ref: bsc#953538 diff --git a/0181-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch b/0181-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch index 87daddfb..53479c75 100644 --- a/0181-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch +++ b/0181-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch @@ -1,7 +1,7 @@ From eb8535428a42c7099666ddb58ac900bb8ee745ba Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 11 May 2017 08:56:57 +0000 -Subject: [PATCH 181/243] Grub not working correctly with btrfs snapshots +Subject: [PATCH 181/246] Grub not working correctly with btrfs snapshots (bsc#1026511) --- diff --git a/0182-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch b/0182-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch index 8a76c946..404ecb6e 100644 --- a/0182-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch +++ b/0182-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch @@ -1,7 +1,7 @@ From 2a6e1d2491b7334985ad25315faa22d26354d8b7 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 1 Jun 2017 09:59:56 -0400 -Subject: [PATCH 182/243] Add grub_efi_allocate_pool() and grub_efi_free_pool() +Subject: [PATCH 182/246] Add grub_efi_allocate_pool() and grub_efi_free_pool() wrappers. Signed-off-by: Peter Jones diff --git a/0183-Use-grub_efi_.-memory-helpers-where-reasonable.patch b/0183-Use-grub_efi_.-memory-helpers-where-reasonable.patch index 37002afd..1c1113a4 100644 --- a/0183-Use-grub_efi_.-memory-helpers-where-reasonable.patch +++ b/0183-Use-grub_efi_.-memory-helpers-where-reasonable.patch @@ -1,7 +1,7 @@ From 6ea13cdb3f33da45d7a8042d85ad87e2a18fc946 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 1 Jun 2017 10:06:38 -0400 -Subject: [PATCH 183/243] Use grub_efi_...() memory helpers where reasonable. +Subject: [PATCH 183/246] Use grub_efi_...() memory helpers where reasonable. This uses grub_efi_allocate_pool(), grub_efi_free_pool(), and grub_efi_free_pages() instead of open-coded efi_call_N() calls, so we diff --git a/0184-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch b/0184-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch index 0ae63caa..4ea8502f 100644 --- a/0184-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch +++ b/0184-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch @@ -1,7 +1,7 @@ From eae94a16a8ae350cdeab8b7742f9227d92001272 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 1 Jun 2017 10:07:50 -0400 -Subject: [PATCH 184/243] Add PRIxGRUB_EFI_STATUS and use it. +Subject: [PATCH 184/246] Add PRIxGRUB_EFI_STATUS and use it. This avoids syntax checkers getting confused about if it's llx or lx. diff --git a/0185-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch b/0185-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch index 561e6b88..576a9e9c 100644 --- a/0185-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch +++ b/0185-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch @@ -1,7 +1,7 @@ From 41a50aa2c275076caa2f9fe7a747eeb054abed16 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:42:57 -0400 -Subject: [PATCH 185/243] Don't use dynamic sized arrays since we don't build +Subject: [PATCH 185/246] Don't use dynamic sized arrays since we don't build with -std=c99 --- diff --git a/0186-don-t-ignore-const.patch b/0186-don-t-ignore-const.patch index 352a0ddb..f0293619 100644 --- a/0186-don-t-ignore-const.patch +++ b/0186-don-t-ignore-const.patch @@ -1,7 +1,7 @@ From d06e2578107f217d2bc8beee7fd0dc7f2645873d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:43:22 -0400 -Subject: [PATCH 186/243] don't ignore const +Subject: [PATCH 186/246] don't ignore const --- grub-core/net/tftp.c | 2 +- diff --git a/0187-don-t-use-int-for-efi-status.patch b/0187-don-t-use-int-for-efi-status.patch index 4a8ad263..f78e7f92 100644 --- a/0187-don-t-use-int-for-efi-status.patch +++ b/0187-don-t-use-int-for-efi-status.patch @@ -1,7 +1,7 @@ From 6d86c59c24e12c8e8471cdd2affca574fdee160d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:44:59 -0400 -Subject: [PATCH 187/243] don't use int for efi status +Subject: [PATCH 187/246] don't use int for efi status --- grub-core/kern/efi/efi.c | 2 +- diff --git a/0188-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch b/0188-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch index 14e66dcd..21e8c2d2 100644 --- a/0188-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch +++ b/0188-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch @@ -1,7 +1,7 @@ From ba6828d073bbda85eba59a9ce9220eada51a540b Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:46:23 -0400 -Subject: [PATCH 188/243] make GRUB_MOD_INIT() declare its function prototypes. +Subject: [PATCH 188/246] make GRUB_MOD_INIT() declare its function prototypes. --- include/grub/dl.h | 2 ++ diff --git a/0189-Clean-up-some-errors-in-the-linuxefi-loader.patch b/0189-Clean-up-some-errors-in-the-linuxefi-loader.patch index d354bd41..7f83da9b 100644 --- a/0189-Clean-up-some-errors-in-the-linuxefi-loader.patch +++ b/0189-Clean-up-some-errors-in-the-linuxefi-loader.patch @@ -1,7 +1,7 @@ From 8bdc0c77919ddb9bd588ac45e96c96497683f76c Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 24 May 2017 15:58:18 -0400 -Subject: [PATCH 189/243] Clean up some errors in the linuxefi loader +Subject: [PATCH 189/246] Clean up some errors in the linuxefi loader Signed-off-by: Peter Jones --- diff --git a/0190-editenv-handle-relative-symlinks.patch b/0190-editenv-handle-relative-symlinks.patch index 7c0eecfa..967b60f8 100644 --- a/0190-editenv-handle-relative-symlinks.patch +++ b/0190-editenv-handle-relative-symlinks.patch @@ -1,7 +1,7 @@ From 098987b7b5fcc15a5ba3600fa132fcec36095c5a Mon Sep 17 00:00:00 2001 From: Jonathan Lebon Date: Mon, 14 Aug 2017 14:37:20 -0400 -Subject: [PATCH 190/243] editenv: handle relative symlinks +Subject: [PATCH 190/246] editenv: handle relative symlinks Handle symlinks with targets relative to the containing dir. This ensures that the rename operation does not depend on the cwd. diff --git a/0191-Make-libgrub.pp-depend-on-config-util.h.patch b/0191-Make-libgrub.pp-depend-on-config-util.h.patch index 86dbb337..be14795a 100644 --- a/0191-Make-libgrub.pp-depend-on-config-util.h.patch +++ b/0191-Make-libgrub.pp-depend-on-config-util.h.patch @@ -1,7 +1,7 @@ From c86299049c2cc0503728deee280d9f6bf50886f4 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 23 Aug 2017 10:37:27 -0400 -Subject: [PATCH 191/243] Make libgrub.pp depend on config-util.h +Subject: [PATCH 191/246] Make libgrub.pp depend on config-util.h If you build with "make -j48" a lot, sometimes you see: diff --git a/0192-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch b/0192-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch index d0b47b82..4d7089dc 100644 --- a/0192-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch +++ b/0192-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch @@ -1,7 +1,7 @@ From 351799d9310a4bec23ed4074444780c2a35435fd Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 20 Apr 2017 13:29:06 -0400 -Subject: [PATCH 192/243] Don't guess /boot/efi/ as HFS+ on ppc machines in +Subject: [PATCH 192/246] Don't guess /boot/efi/ as HFS+ on ppc machines in grub-install This should never be trying this, and since we've consolidated the diff --git a/0193-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch b/0193-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch index 5cc6aaf5..22848896 100644 --- a/0193-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch +++ b/0193-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch @@ -1,7 +1,7 @@ From cba0322cd88baf136ac693f5ec1826f3314daeff Mon Sep 17 00:00:00 2001 From: Konrad Rzeszutek Wilk Date: Mon, 28 Aug 2017 13:51:14 -0400 -Subject: [PATCH 193/243] Fix util/grub.d/20_linux_xen.in: Add xen_boot command +Subject: [PATCH 193/246] Fix util/grub.d/20_linux_xen.in: Add xen_boot command support for aarch64 Commit d33045ce7ffcb7c1e4a60c14d5ca64b36e3c5abe introduced diff --git a/0194-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch b/0194-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch index 9ce674c9..e4e49d6c 100644 --- a/0194-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch +++ b/0194-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch @@ -1,7 +1,7 @@ From 87c089b6f1945ebcc690697d279c74284f1b4072 Mon Sep 17 00:00:00 2001 From: Konrad Rzeszutek Wilk Date: Mon, 28 Aug 2017 13:59:12 -0400 -Subject: [PATCH 194/243] Use grub-file to figure out whether multiboot2 should +Subject: [PATCH 194/246] Use grub-file to figure out whether multiboot2 should be used for Xen.gz The multiboot2 is much more preferable than multiboot. Especiall diff --git a/0195-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch b/0195-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch index 4f6d9175..cf5b4c9b 100644 --- a/0195-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch +++ b/0195-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch @@ -1,7 +1,7 @@ From 92d3db585076d022521ab94a2ceed03eb05013fc Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 19 Oct 2017 11:29:11 -0400 -Subject: [PATCH 195/243] 20_linux_xen: load xen or multiboot{,2} modules as +Subject: [PATCH 195/246] 20_linux_xen: load xen or multiboot{,2} modules as needed. Signed-off-by: Peter Jones diff --git a/0196-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch b/0196-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch index fb2b5012..d4b20517 100644 --- a/0196-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch +++ b/0196-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch @@ -1,7 +1,7 @@ From 2e5b957292d3f313d48bded25e8ca83468326c5b Mon Sep 17 00:00:00 2001 From: "David E. Box" Date: Fri, 15 Sep 2017 15:37:05 -0700 -Subject: [PATCH 196/243] tsc: Change default tsc calibration method to pmtimer +Subject: [PATCH 196/246] tsc: Change default tsc calibration method to pmtimer on EFI systems On efi systems, make pmtimer based tsc calibration the default over the diff --git a/0197-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch b/0197-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch index 18b794ad..0b3b978a 100644 --- a/0197-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch +++ b/0197-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch @@ -1,7 +1,7 @@ From 0b158c30810db86f549cabd6e6021ab15962370d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 7 Nov 2017 17:12:17 -0500 -Subject: [PATCH 197/243] Make pmtimer tsc calibration not take 51 seconds to +Subject: [PATCH 197/246] Make pmtimer tsc calibration not take 51 seconds to fail. On my laptop running at 2.4GHz, if I run a VM where tsc calibration diff --git a/0198-align-struct-efi_variable-better.patch b/0198-align-struct-efi_variable-better.patch index d0fbcf31..cf65e045 100644 --- a/0198-align-struct-efi_variable-better.patch +++ b/0198-align-struct-efi_variable-better.patch @@ -1,7 +1,7 @@ From 2485633ada06c11c07a34a696a92b14e58f1e846 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 27 Feb 2018 13:55:35 -0500 -Subject: [PATCH 198/243] align struct efi_variable better... +Subject: [PATCH 198/246] align struct efi_variable better... --- include/grub/efiemu/runtime.h | 2 +- diff --git a/0199-Add-quicksort-implementation.patch b/0199-Add-quicksort-implementation.patch index aa9cb9d6..c56c1532 100644 --- a/0199-Add-quicksort-implementation.patch +++ b/0199-Add-quicksort-implementation.patch @@ -1,7 +1,7 @@ From a2cd100d71711b950beaf60ea7ddca4c77a70d59 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 9 Dec 2016 15:39:47 -0500 -Subject: [PATCH 199/243] Add quicksort implementation +Subject: [PATCH 199/246] Add quicksort implementation This will be used to sort the boot menu entries that are read from the BootLoaderSpec config files. diff --git a/0200-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch b/0200-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch index d88170f9..990e5f06 100644 --- a/0200-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch +++ b/0200-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch @@ -1,7 +1,7 @@ From ed595feeea2f7b7fd0158d42fa2fd39420eea683 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 9 Dec 2016 15:40:58 -0500 -Subject: [PATCH 200/243] Add blscfg command support to parse BootLoaderSpec +Subject: [PATCH 200/246] Add blscfg command support to parse BootLoaderSpec config fragments The BootLoaderSpec (BLS) defines a scheme where different bootloaders can diff --git a/0201-Add-BLS-support-to-grub-mkconfig.patch b/0201-Add-BLS-support-to-grub-mkconfig.patch index 807669e3..62506a0e 100644 --- a/0201-Add-BLS-support-to-grub-mkconfig.patch +++ b/0201-Add-BLS-support-to-grub-mkconfig.patch @@ -1,7 +1,7 @@ From d847a4806bb7a4f3b457d0074d712e500fbd5e97 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 9 Dec 2016 15:40:29 -0500 -Subject: [PATCH 201/243] Add BLS support to grub-mkconfig +Subject: [PATCH 201/246] Add BLS support to grub-mkconfig GRUB now has BootLoaderSpec support, the user can choose to use this by setting GRUB_ENABLE_BLSCFG to true in /etc/default/grub. On this setup, diff --git a/0202-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch b/0202-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch index e02df434..2d138e4a 100644 --- a/0202-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch +++ b/0202-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch @@ -1,7 +1,7 @@ From 2d7dabdbf322e8f679eeaefd48cb26b083cdeb1c Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 6 Feb 2018 11:02:09 +0100 -Subject: [PATCH 202/243] Remove duplicated grub_exit() definition for grub-emu +Subject: [PATCH 202/246] Remove duplicated grub_exit() definition for grub-emu platform The grub_exit() function signature was changed on all platforms to take a diff --git a/0203-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch b/0203-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch index 54013807..b9d6f719 100644 --- a/0203-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch +++ b/0203-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch @@ -1,7 +1,7 @@ From f45946a92377c83ffcad8dbc3298fc26072567d9 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 6 Feb 2018 11:16:28 +0100 -Subject: [PATCH 203/243] Don't attempt to backtrace on grub_abort() for +Subject: [PATCH 203/246] Don't attempt to backtrace on grub_abort() for grub-emu The emu platform doesn't have a grub_backtrace() implementation, so this diff --git a/0204-Enable-blscfg-command-for-the-emu-platform.patch b/0204-Enable-blscfg-command-for-the-emu-platform.patch index f94df6fa..591ba894 100644 --- a/0204-Enable-blscfg-command-for-the-emu-platform.patch +++ b/0204-Enable-blscfg-command-for-the-emu-platform.patch @@ -1,7 +1,7 @@ From 39bb86c661911f06ff40caa842a9babf18f27c8b Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Fri, 2 Feb 2018 11:36:29 +0100 -Subject: [PATCH 204/243] Enable blscfg command for the emu platform +Subject: [PATCH 204/246] Enable blscfg command for the emu platform Allow grub-emu to call a blscfg command. This may be useful for platforms that don't support GRUB, so grub-emu can be used to parse the BLS configs diff --git a/0205-Add-linux-and-initrd-commands-for-grub-emu.patch b/0205-Add-linux-and-initrd-commands-for-grub-emu.patch index 23b4f7e5..19e3c1f9 100644 --- a/0205-Add-linux-and-initrd-commands-for-grub-emu.patch +++ b/0205-Add-linux-and-initrd-commands-for-grub-emu.patch @@ -1,7 +1,7 @@ From 49c719a6f6e223b95733e18720a48993ab6e5317 Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Tue, 6 Feb 2018 09:09:00 +0100 -Subject: [PATCH 205/243] Add linux and initrd commands for grub-emu +Subject: [PATCH 205/246] Add linux and initrd commands for grub-emu When using grub-emu, the linux and initrd commands are used as arguments to the kexec command line tool, to allow booting the selected menu entry. diff --git a/0206-Fix-the-efidir-in-grub-setpassword.patch b/0206-Fix-the-efidir-in-grub-setpassword.patch index 66a33526..37bfb04b 100644 --- a/0206-Fix-the-efidir-in-grub-setpassword.patch +++ b/0206-Fix-the-efidir-in-grub-setpassword.patch @@ -1,7 +1,7 @@ From c7c6cb4380f5bd85a2cbe747433657fdce89a802 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 15 Mar 2018 14:12:54 -0400 -Subject: [PATCH 206/243] Fix the efidir in grub-setpassword +Subject: [PATCH 206/246] Fix the efidir in grub-setpassword Signed-off-by: Peter Jones --- diff --git a/0207-Add-grub2-switch-to-blscfg.patch b/0207-Add-grub2-switch-to-blscfg.patch index 8cf66f1a..1de3a8d9 100644 --- a/0207-Add-grub2-switch-to-blscfg.patch +++ b/0207-Add-grub2-switch-to-blscfg.patch @@ -1,7 +1,7 @@ From 89b3a570de8b5e7ad19769983a87f6e10024f0ec Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 15 Mar 2018 14:12:40 -0400 -Subject: [PATCH 207/243] Add grub2-switch-to-blscfg +Subject: [PATCH 207/246] Add grub2-switch-to-blscfg Signed-off-by: Peter Jones --- diff --git a/0208-Add-grub_debug_enabled.patch b/0208-Add-grub_debug_enabled.patch index ec19a13e..fe2a4e63 100644 --- a/0208-Add-grub_debug_enabled.patch +++ b/0208-Add-grub_debug_enabled.patch @@ -1,7 +1,7 @@ From 6776773c89828c9b69c1552760ba6a4d9cd5589f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 30 Nov 2017 15:11:39 -0500 -Subject: [PATCH 208/243] Add grub_debug_enabled() +Subject: [PATCH 208/246] Add grub_debug_enabled() --- grub-core/kern/misc.c | 21 ++++++++++++++++----- diff --git a/0209-make-better-backtraces.patch b/0209-make-better-backtraces.patch index 069ac188..e472c907 100644 --- a/0209-make-better-backtraces.patch +++ b/0209-make-better-backtraces.patch @@ -1,7 +1,7 @@ From 318ee04aadcda40b779b2a5314dd23ead165f896 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 6 Nov 2017 18:31:56 -0500 -Subject: [PATCH 209/243] make better backtraces +Subject: [PATCH 209/246] make better backtraces Signed-off-by: Peter Jones --- diff --git a/0210-normal-don-t-draw-our-startup-message-if-debug-is-se.patch b/0210-normal-don-t-draw-our-startup-message-if-debug-is-se.patch index ad9eb07c..6039a8ae 100644 --- a/0210-normal-don-t-draw-our-startup-message-if-debug-is-se.patch +++ b/0210-normal-don-t-draw-our-startup-message-if-debug-is-se.patch @@ -1,7 +1,7 @@ From 81d0e079ea5aa6f43daf12f7a8698d0bcd1a36f8 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 9 Nov 2017 15:58:52 -0500 -Subject: [PATCH 210/243] normal: don't draw our startup message if debug is +Subject: [PATCH 210/246] normal: don't draw our startup message if debug is set --- diff --git a/0211-Work-around-some-minor-include-path-weirdnesses.patch b/0211-Work-around-some-minor-include-path-weirdnesses.patch index df06450e..c85f4800 100644 --- a/0211-Work-around-some-minor-include-path-weirdnesses.patch +++ b/0211-Work-around-some-minor-include-path-weirdnesses.patch @@ -1,7 +1,7 @@ From e2bba0f7ee8e56c68e425853a21a8fdd766add70 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 16 Mar 2018 13:28:57 -0400 -Subject: [PATCH 211/243] Work around some minor include path weirdnesses +Subject: [PATCH 211/246] Work around some minor include path weirdnesses Signed-off-by: Peter Jones --- diff --git a/0212-Make-it-possible-to-enabled-build-id-sha1.patch b/0212-Make-it-possible-to-enabled-build-id-sha1.patch index f9b652a1..f65aa5aa 100644 --- a/0212-Make-it-possible-to-enabled-build-id-sha1.patch +++ b/0212-Make-it-possible-to-enabled-build-id-sha1.patch @@ -1,7 +1,7 @@ From 8521929bcf671b465d6450b969d11617b6aec608 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 25 Jun 2015 15:41:06 -0400 -Subject: [PATCH 212/243] Make it possible to enabled --build-id=sha1 +Subject: [PATCH 212/246] Make it possible to enabled --build-id=sha1 Signed-off-by: Peter Jones --- diff --git a/0213-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch b/0213-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch index b4083935..3992d7e2 100644 --- a/0213-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch +++ b/0213-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch @@ -1,7 +1,7 @@ From 8c4b2eaa204f0ea0377ca4592d2be6029fdb9be7 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Sun, 28 Jun 2015 13:09:58 -0400 -Subject: [PATCH 213/243] Add grub_qdprintf() - grub_dprintf() without the +Subject: [PATCH 213/246] Add grub_qdprintf() - grub_dprintf() without the file+line number. This just makes copy+paste of our debug loading info easier. diff --git a/0214-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch b/0214-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch index 291bab2b..80f0db7a 100644 --- a/0214-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch +++ b/0214-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch @@ -1,7 +1,7 @@ From 030095a01a205aba04a0849ac0c0329ac429a9ed Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 25 Jun 2015 15:11:36 -0400 -Subject: [PATCH 214/243] Make a "gdb" dprintf that tells us load addresses. +Subject: [PATCH 214/246] Make a "gdb" dprintf that tells us load addresses. This makes a grub_dprintf() call during platform init and during module loading that tells us the virtual addresses of the .text and .data diff --git a/0215-Only-attempt-to-scan-different-BLS-directories-on-EF.patch b/0215-Only-attempt-to-scan-different-BLS-directories-on-EF.patch index 564a70b0..830f6031 100644 --- a/0215-Only-attempt-to-scan-different-BLS-directories-on-EF.patch +++ b/0215-Only-attempt-to-scan-different-BLS-directories-on-EF.patch @@ -1,7 +1,7 @@ From 5f0417c63a4dd2252a5a801568f4369ac74a47e6 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 3 Apr 2018 15:42:47 +0200 -Subject: [PATCH 215/243] Only attempt to scan different BLS directories on EFI +Subject: [PATCH 215/246] Only attempt to scan different BLS directories on EFI machines Current BLS support attempted to scan for BLS directories, but this only diff --git a/0216-Core-TPM-support.patch b/0216-Core-TPM-support.patch index fccaff55..a5ee006b 100644 --- a/0216-Core-TPM-support.patch +++ b/0216-Core-TPM-support.patch @@ -1,7 +1,7 @@ From 65be94a64a5608209561ba0914d29445d81bf4b2 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 14 Jul 2015 17:06:35 -0700 -Subject: [PATCH 216/243] Core TPM support +Subject: [PATCH 216/246] Core TPM support Add support for performing basic TPM measurements. Right now this only supports extending PCRs statically and only on UEFI and BIOS systems, but diff --git a/0217-Measure-kernel-initrd.patch b/0217-Measure-kernel-initrd.patch index ab8113bb..9ed935c5 100644 --- a/0217-Measure-kernel-initrd.patch +++ b/0217-Measure-kernel-initrd.patch @@ -1,7 +1,7 @@ From ffd305d09def6610ef96f928c0df8303c5529d63 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Thu, 16 Jul 2015 15:22:34 -0700 -Subject: [PATCH 217/243] Measure kernel + initrd +Subject: [PATCH 217/246] Measure kernel + initrd Measure the kernel and initrd when loaded on UEFI systems --- diff --git a/0218-Add-BIOS-boot-measurement.patch b/0218-Add-BIOS-boot-measurement.patch index 0565522d..0f561de6 100644 --- a/0218-Add-BIOS-boot-measurement.patch +++ b/0218-Add-BIOS-boot-measurement.patch @@ -1,7 +1,7 @@ From d8870587d46f8aa8d4f8db2cdcddecc829993447 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 15:48:51 -0700 -Subject: [PATCH 218/243] Add BIOS boot measurement +Subject: [PATCH 218/246] Add BIOS boot measurement Measure the on-disk grub core on BIOS systems - unlike UEFI, the firmware can't do this stage for us. diff --git a/0219-Measure-kernel-and-initrd-on-BIOS-systems.patch b/0219-Measure-kernel-and-initrd-on-BIOS-systems.patch index e01cb30f..02c62c20 100644 --- a/0219-Measure-kernel-and-initrd-on-BIOS-systems.patch +++ b/0219-Measure-kernel-and-initrd-on-BIOS-systems.patch @@ -1,7 +1,7 @@ From 5aee2444093cfc8006865766f89e5a775a940ab1 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 16:28:29 -0700 -Subject: [PATCH 219/243] Measure kernel and initrd on BIOS systems +Subject: [PATCH 219/246] Measure kernel and initrd on BIOS systems Measure the kernel and initrd when loaded on BIOS systems --- diff --git a/0220-Measure-the-kernel-commandline.patch b/0220-Measure-the-kernel-commandline.patch index 0efce86a..d2dde637 100644 --- a/0220-Measure-the-kernel-commandline.patch +++ b/0220-Measure-the-kernel-commandline.patch @@ -1,7 +1,7 @@ From c1694574d6eb287e6e181dd018fe54b718a613b3 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 16:32:29 -0700 -Subject: [PATCH 220/243] Measure the kernel commandline +Subject: [PATCH 220/246] Measure the kernel commandline Measure the kernel commandline to ensure that it hasn't been modified --- diff --git a/0221-Measure-commands.patch b/0221-Measure-commands.patch index 5511ab88..db28e6b9 100644 --- a/0221-Measure-commands.patch +++ b/0221-Measure-commands.patch @@ -1,7 +1,7 @@ From c93a27f2e6a323a4985e6fe902eb5c6447fca572 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Mon, 10 Aug 2015 15:27:12 -0700 -Subject: [PATCH 221/243] Measure commands +Subject: [PATCH 221/246] Measure commands Measure each command executed by grub, which includes script execution. --- diff --git a/0222-Measure-multiboot-images-and-modules.patch b/0222-Measure-multiboot-images-and-modules.patch index f1660d8b..af16d1b9 100644 --- a/0222-Measure-multiboot-images-and-modules.patch +++ b/0222-Measure-multiboot-images-and-modules.patch @@ -1,7 +1,7 @@ From b164ec560cd6373c0c5d8a189d70baeca2c3ef13 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 1 Sep 2015 16:02:55 -0700 -Subject: [PATCH 222/243] Measure multiboot images and modules +Subject: [PATCH 222/246] Measure multiboot images and modules --- grub-core/loader/i386/multiboot_mbi.c | 3 +++ diff --git a/0223-Fix-boot-when-there-s-no-TPM.patch b/0223-Fix-boot-when-there-s-no-TPM.patch index c64d7796..46eee781 100644 --- a/0223-Fix-boot-when-there-s-no-TPM.patch +++ b/0223-Fix-boot-when-there-s-no-TPM.patch @@ -1,7 +1,7 @@ From 33fb6113d65a819496d0b67b8db071fedad845a7 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Wed, 23 Mar 2016 16:49:42 -0700 -Subject: [PATCH 223/243] Fix boot when there's no TPM +Subject: [PATCH 223/246] Fix boot when there's no TPM If the firmware has TPM support but has no TPM, we're jumping to core.img without popping the registers back onto the stack. Fix that. diff --git a/0224-Rework-TPM-measurements.patch b/0224-Rework-TPM-measurements.patch index 51e2cba0..face08ed 100644 --- a/0224-Rework-TPM-measurements.patch +++ b/0224-Rework-TPM-measurements.patch @@ -1,7 +1,7 @@ From 415072bbda8b4de133c6dc6add230e41ee6d9579 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Wed, 23 Mar 2016 17:03:43 -0700 -Subject: [PATCH 224/243] Rework TPM measurements +Subject: [PATCH 224/246] Rework TPM measurements Rework TPM measurements to use fewer PCRs. After discussion with upstream, it's preferable to avoid using so many PCRs. Instead, measure into PCRs 8 diff --git a/0225-Fix-event-log-prefix.patch b/0225-Fix-event-log-prefix.patch index fa38b1fb..cb767ed8 100644 --- a/0225-Fix-event-log-prefix.patch +++ b/0225-Fix-event-log-prefix.patch @@ -1,7 +1,7 @@ From 0816621235226952a5bd0cfd027eb97ff84df547 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 29 Mar 2016 15:36:49 -0700 -Subject: [PATCH 225/243] Fix event log prefix +Subject: [PATCH 225/246] Fix event log prefix We're not passing the prefixed version of the description to the event log. Fix that. diff --git a/0226-Set-the-first-boot-menu-entry-as-default-when-using-.patch b/0226-Set-the-first-boot-menu-entry-as-default-when-using-.patch index b04b34a9..0c7f3ef4 100644 --- a/0226-Set-the-first-boot-menu-entry-as-default-when-using-.patch +++ b/0226-Set-the-first-boot-menu-entry-as-default-when-using-.patch @@ -1,7 +1,7 @@ From 8278e40fdc4a4db0865fc632cbe2dcf7c124ba7a Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Fri, 6 Apr 2018 14:08:36 +0200 -Subject: [PATCH 226/243] Set the first boot menu entry as default when using +Subject: [PATCH 226/246] Set the first boot menu entry as default when using BLS fragments When BootLoaderSpec configuration files are used, the default boot menu diff --git a/0227-tpm-fix-warnings-when-compiling-for-platforms-other-.patch b/0227-tpm-fix-warnings-when-compiling-for-platforms-other-.patch index f1a86ea2..1d2159f1 100644 --- a/0227-tpm-fix-warnings-when-compiling-for-platforms-other-.patch +++ b/0227-tpm-fix-warnings-when-compiling-for-platforms-other-.patch @@ -1,7 +1,7 @@ From 4c53f61b1a889c0f55e76a763b05b6686ec613b8 Mon Sep 17 00:00:00 2001 From: Michael Marineau Date: Sun, 21 Aug 2016 18:24:58 -0700 -Subject: [PATCH 227/243] tpm: fix warnings when compiling for platforms other +Subject: [PATCH 227/246] tpm: fix warnings when compiling for platforms other than pc and efi --- diff --git a/0228-Make-TPM-errors-less-fatal.patch b/0228-Make-TPM-errors-less-fatal.patch index 906e13ae..b14e1368 100644 --- a/0228-Make-TPM-errors-less-fatal.patch +++ b/0228-Make-TPM-errors-less-fatal.patch @@ -1,7 +1,7 @@ From 406f7dda0cc2689170f102341a546c87072d1ce5 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Thu, 13 Oct 2016 13:55:26 -0700 -Subject: [PATCH 228/243] Make TPM errors less fatal +Subject: [PATCH 228/246] Make TPM errors less fatal Handle TPM errors, and stop trying to use the TPM once we hit one. --- diff --git a/0229-blscfg-handle-multiple-initramfs-images.patch b/0229-blscfg-handle-multiple-initramfs-images.patch index a0c9a1b0..b463349a 100644 --- a/0229-blscfg-handle-multiple-initramfs-images.patch +++ b/0229-blscfg-handle-multiple-initramfs-images.patch @@ -1,7 +1,7 @@ From a230ec5c31d818c2f046acf3592a5492d3e2ea69 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 11 Apr 2018 13:44:29 -0400 -Subject: [PATCH 229/243] blscfg: handle multiple initramfs images. +Subject: [PATCH 229/246] blscfg: handle multiple initramfs images. Signed-off-by: Peter Jones --- diff --git a/0230-BLS-Fix-grub2-switch-to-blscfg-on-non-EFI-machines.patch b/0230-BLS-Fix-grub2-switch-to-blscfg-on-non-EFI-machines.patch index 1ac6b6e7..589282c2 100644 --- a/0230-BLS-Fix-grub2-switch-to-blscfg-on-non-EFI-machines.patch +++ b/0230-BLS-Fix-grub2-switch-to-blscfg-on-non-EFI-machines.patch @@ -1,7 +1,7 @@ From f006df881d1b2b3ca7320ecfcd33181295ec1018 Mon Sep 17 00:00:00 2001 From: Jan Hlavac Date: Tue, 10 Apr 2018 16:07:36 +0200 -Subject: [PATCH 230/243] BLS: Fix grub2-switch-to-blscfg on non-EFI machines +Subject: [PATCH 230/246] BLS: Fix grub2-switch-to-blscfg on non-EFI machines On the non-EFI machines the grub2-switch-to-blscfg script places the BLS snippets into the /boot directory. But the right location is diff --git a/0231-BLS-Use-etcdefaultgrub-instead-of-etc.patch b/0231-BLS-Use-etcdefaultgrub-instead-of-etc.patch index 1c1f02ee..a56e305a 100644 --- a/0231-BLS-Use-etcdefaultgrub-instead-of-etc.patch +++ b/0231-BLS-Use-etcdefaultgrub-instead-of-etc.patch @@ -1,7 +1,7 @@ From 29b79fde633a43223ead7874ffd373603f129832 Mon Sep 17 00:00:00 2001 From: Jan Hlavac Date: Tue, 10 Apr 2018 16:56:28 +0200 -Subject: [PATCH 231/243] BLS: Use ${etcdefaultgrub} instead of /etc/... +Subject: [PATCH 231/246] BLS: Use ${etcdefaultgrub} instead of /etc/... Inside the grub-switch-to-blscfg script the ${etcdefaultgrub} variable is used. So replace the hardcoded /etc/default/grub with it. diff --git a/0232-Add-missing-options-to-grub2-switch-to-blscfg-man-pa.patch b/0232-Add-missing-options-to-grub2-switch-to-blscfg-man-pa.patch index d4376143..b4c74807 100644 --- a/0232-Add-missing-options-to-grub2-switch-to-blscfg-man-pa.patch +++ b/0232-Add-missing-options-to-grub2-switch-to-blscfg-man-pa.patch @@ -1,7 +1,7 @@ From c3a05672a450fd9e95de5df2b0c27c24fe04cd83 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Wed, 11 Apr 2018 11:36:43 +0200 -Subject: [PATCH 232/243] Add missing options to grub2-switch-to-blscfg man +Subject: [PATCH 232/246] Add missing options to grub2-switch-to-blscfg man page The script --bls-directory and --backup-suffix options were not documented diff --git a/0233-Make-grub2-switch-to-blscfg-to-generate-debug-BLS-wh.patch b/0233-Make-grub2-switch-to-blscfg-to-generate-debug-BLS-wh.patch index f9b8538b..6b45e7e2 100644 --- a/0233-Make-grub2-switch-to-blscfg-to-generate-debug-BLS-wh.patch +++ b/0233-Make-grub2-switch-to-blscfg-to-generate-debug-BLS-wh.patch @@ -1,7 +1,7 @@ From 55b00d518e029a563653401c6908489924c07238 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Wed, 11 Apr 2018 11:49:24 +0200 -Subject: [PATCH 233/243] Make grub2-switch-to-blscfg to generate debug BLS +Subject: [PATCH 233/246] Make grub2-switch-to-blscfg to generate debug BLS when MAKEDEBUG is set If MAKEDEBUG=yes in /etc/sysconfig/kernel, then a debug menu entry should diff --git a/0234-Make-grub2-switch-to-blscfg-to-generate-BLS-fragment.patch b/0234-Make-grub2-switch-to-blscfg-to-generate-BLS-fragment.patch index 8fe2aefe..b7995775 100644 --- a/0234-Make-grub2-switch-to-blscfg-to-generate-BLS-fragment.patch +++ b/0234-Make-grub2-switch-to-blscfg-to-generate-BLS-fragment.patch @@ -1,7 +1,7 @@ From 60bddbc714c96ca05821d52bdd7dbad7eabd6dd5 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Wed, 11 Apr 2018 12:39:59 +0200 -Subject: [PATCH 234/243] Make grub2-switch-to-blscfg to generate BLS fragment +Subject: [PATCH 234/246] Make grub2-switch-to-blscfg to generate BLS fragment for rescue kernel If a rescue image is available, it should have a BootLoaderSpec fragment. diff --git a/0235-Only-attempt-to-query-dev-mounted-in-boot-efi-as-boo.patch b/0235-Only-attempt-to-query-dev-mounted-in-boot-efi-as-boo.patch index 9c534149..c708f6bd 100644 --- a/0235-Only-attempt-to-query-dev-mounted-in-boot-efi-as-boo.patch +++ b/0235-Only-attempt-to-query-dev-mounted-in-boot-efi-as-boo.patch @@ -1,7 +1,7 @@ From 8afe59812e83e78564697ef8241ed4f1b3527423 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 24 Apr 2018 02:16:38 +0200 -Subject: [PATCH 235/243] Only attempt to query dev mounted in /boot/efi as +Subject: [PATCH 235/246] Only attempt to query dev mounted in /boot/efi as boot dev on EFI machines The 10_linux script calls grub2-probe to probe the information for the dev diff --git a/0236-Include-OSTree-path-when-searching-kernels-images-if.patch b/0236-Include-OSTree-path-when-searching-kernels-images-if.patch index 915753c4..6c762a38 100644 --- a/0236-Include-OSTree-path-when-searching-kernels-images-if.patch +++ b/0236-Include-OSTree-path-when-searching-kernels-images-if.patch @@ -1,7 +1,7 @@ From 459eaeacbb40116dcb501cf165c7816e70c66fb3 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 24 Apr 2018 02:28:04 +0200 -Subject: [PATCH 236/243] Include OSTree path when searching kernels images if +Subject: [PATCH 236/246] Include OSTree path when searching kernels images if BLS config is enabled The OSTree based distros (i.e: Fedora Atomic) don't install kernel images diff --git a/0237-Use-BLS-version-field-to-compare-entries-if-id-field.patch b/0237-Use-BLS-version-field-to-compare-entries-if-id-field.patch index b87c2bd9..df177387 100644 --- a/0237-Use-BLS-version-field-to-compare-entries-if-id-field.patch +++ b/0237-Use-BLS-version-field-to-compare-entries-if-id-field.patch @@ -1,7 +1,7 @@ From 689a48c76bee8049a50f962852f43f108c815450 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Fri, 27 Apr 2018 17:53:41 +0200 -Subject: [PATCH 237/243] Use BLS version field to compare entries if id field +Subject: [PATCH 237/246] Use BLS version field to compare entries if id field isn't defined The BootLoaderSpec fragments generated by OSTree don't have the id field, diff --git a/0238-Add-version-field-to-BLS-generated-by-grub2-switch-t.patch b/0238-Add-version-field-to-BLS-generated-by-grub2-switch-t.patch index a060e7d3..2c9300ce 100644 --- a/0238-Add-version-field-to-BLS-generated-by-grub2-switch-t.patch +++ b/0238-Add-version-field-to-BLS-generated-by-grub2-switch-t.patch @@ -1,7 +1,7 @@ From 0994be8d655420685d900a08443b4fd53f639e72 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Thu, 10 May 2018 10:52:11 +0200 -Subject: [PATCH 238/243] Add version field to BLS generated by +Subject: [PATCH 238/246] Add version field to BLS generated by grub2-switch-to-blscfg The version field is present in the BLS fragments that are shipped in the diff --git a/0239-Fixup-for-newer-compiler.patch b/0239-Fixup-for-newer-compiler.patch index 3b3e6a17..ba6b4968 100644 --- a/0239-Fixup-for-newer-compiler.patch +++ b/0239-Fixup-for-newer-compiler.patch @@ -1,27 +1,13 @@ -From 0724038a6f554f688cfcd6e05d52329c384d8a6d Mon Sep 17 00:00:00 2001 +From fe5e237fbe38fcbec4018b7e5d328b211bbabb2f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 10 May 2018 13:40:19 -0400 -Subject: [PATCH 239/243] Fixup for newer compiler +Subject: [PATCH 239/246] Fixup for newer compiler --- - conf/Makefile.common | 2 +- grub-core/fs/btrfs.c | 2 +- include/grub/gpt_partition.h | 2 +- - 3 files changed, 3 insertions(+), 3 deletions(-) + 2 files changed, 2 insertions(+), 2 deletions(-) -diff --git a/conf/Makefile.common b/conf/Makefile.common -index 044ab3abe88..c75848f5c06 100644 ---- a/conf/Makefile.common -+++ b/conf/Makefile.common -@@ -38,7 +38,7 @@ CFLAGS_KERNEL = $(CFLAGS_PLATFORM) -ffreestanding - LDFLAGS_KERNEL = $(LDFLAGS_PLATFORM) -nostdlib $(TARGET_LDFLAGS_OLDMAGIC) - CPPFLAGS_KERNEL = $(CPPFLAGS_CPU) $(CPPFLAGS_PLATFORM) -DGRUB_KERNEL=1 - CCASFLAGS_KERNEL = $(CCASFLAGS_CPU) $(CCASFLAGS_PLATFORM) --STRIPFLAGS_KERNEL = -R .eh_frame -R .rel.dyn -R .reginfo -R .note -R .comment -R .drectve -R .note.gnu.gold-version -R .MIPS.abiflags -R .ARM.exidx -+STRIPFLAGS_KERNEL = -R .eh_frame -R .rel.dyn -R .reginfo -R .note -R .comment -R .drectve -R .note.gnu.gold-version -R .MIPS.abiflags -R .ARM.exidx -R .note.gnu.property -R .gnu.build.attributes - - CFLAGS_MODULE = $(CFLAGS_PLATFORM) -ffreestanding - LDFLAGS_MODULE = $(LDFLAGS_PLATFORM) -nostdlib $(TARGET_LDFLAGS_OLDMAGIC) -Wl,-r,-d diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c index 3cd9472197c..8d3f644e124 100644 --- a/grub-core/fs/btrfs.c diff --git a/0240-Don-t-attempt-to-export-the-start-and-_start-symbols.patch b/0240-Don-t-attempt-to-export-the-start-and-_start-symbols.patch index 0e624a8b..a6fbd5a3 100644 --- a/0240-Don-t-attempt-to-export-the-start-and-_start-symbols.patch +++ b/0240-Don-t-attempt-to-export-the-start-and-_start-symbols.patch @@ -1,7 +1,7 @@ From d03f1ebcdf88a1bf850730b9cbd1126894bdca76 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Sat, 12 May 2018 11:29:07 +0200 -Subject: [PATCH 240/243] Don't attempt to export the start and _start symbols +Subject: [PATCH 240/246] Don't attempt to export the start and _start symbols for grub-emu Commit 318ee04aadc ("make better backtraces") reworked the backtrace logic diff --git a/0241-Simplify-BLS-entry-key-val-pairs-lookup.patch b/0241-Simplify-BLS-entry-key-val-pairs-lookup.patch index 88b24562..4a552f6a 100644 --- a/0241-Simplify-BLS-entry-key-val-pairs-lookup.patch +++ b/0241-Simplify-BLS-entry-key-val-pairs-lookup.patch @@ -1,7 +1,7 @@ From 385bb1bd33e9467eda798ea3a4ac16e86a40ce75 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Fri, 11 May 2018 23:47:31 +0200 -Subject: [PATCH 241/243] Simplify BLS entry key val pairs lookup +Subject: [PATCH 241/246] Simplify BLS entry key val pairs lookup The pairs found in the BLS are being sorted but this isn't really needed and it makes the implementation complex and error prone. diff --git a/0242-Add-relative-path-to-the-kernel-and-initrds-BLS-fiel.patch b/0242-Add-relative-path-to-the-kernel-and-initrds-BLS-fiel.patch index d9bedf66..8eb38beb 100644 --- a/0242-Add-relative-path-to-the-kernel-and-initrds-BLS-fiel.patch +++ b/0242-Add-relative-path-to-the-kernel-and-initrds-BLS-fiel.patch @@ -1,7 +1,7 @@ From a24ca589707fa69fe7be9dc1007f4ae114994f9f Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Mon, 4 Jun 2018 16:10:22 +0200 -Subject: [PATCH 242/243] Add relative path to the kernel and initrds BLS +Subject: [PATCH 242/246] Add relative path to the kernel and initrds BLS fields if needed The static BLS config file shipped with the kernel package assumes that diff --git a/0243-Skip-leading-spaces-on-BLS-field-values.patch b/0243-Skip-leading-spaces-on-BLS-field-values.patch index 0a59d0b0..c36a69da 100644 --- a/0243-Skip-leading-spaces-on-BLS-field-values.patch +++ b/0243-Skip-leading-spaces-on-BLS-field-values.patch @@ -1,7 +1,7 @@ From a5bf618156915e97a0e7df07556ab728377de77e Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Thu, 7 Jun 2018 00:44:51 +0200 -Subject: [PATCH 243/243] Skip leading spaces on BLS field values +Subject: [PATCH 243/246] Skip leading spaces on BLS field values The GRUB 2 blscfg command doesn't parse correctly the BLS fields if these have extra spaces before the field values. For example, the following BLS diff --git a/0244-Fixup-for-newer-compiler.patch b/0244-Fixup-for-newer-compiler.patch new file mode 100644 index 00000000..ad28fc8d --- /dev/null +++ b/0244-Fixup-for-newer-compiler.patch @@ -0,0 +1,25 @@ +From df99134313f5571d8806d9121d04b8c8a5509d98 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Thu, 10 May 2018 13:40:19 -0400 +Subject: [PATCH 244/246] Fixup for newer compiler + +--- + conf/Makefile.common | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/conf/Makefile.common b/conf/Makefile.common +index 044ab3abe88..c75848f5c06 100644 +--- a/conf/Makefile.common ++++ b/conf/Makefile.common +@@ -38,7 +38,7 @@ CFLAGS_KERNEL = $(CFLAGS_PLATFORM) -ffreestanding + LDFLAGS_KERNEL = $(LDFLAGS_PLATFORM) -nostdlib $(TARGET_LDFLAGS_OLDMAGIC) + CPPFLAGS_KERNEL = $(CPPFLAGS_CPU) $(CPPFLAGS_PLATFORM) -DGRUB_KERNEL=1 + CCASFLAGS_KERNEL = $(CCASFLAGS_CPU) $(CCASFLAGS_PLATFORM) +-STRIPFLAGS_KERNEL = -R .eh_frame -R .rel.dyn -R .reginfo -R .note -R .comment -R .drectve -R .note.gnu.gold-version -R .MIPS.abiflags -R .ARM.exidx ++STRIPFLAGS_KERNEL = -R .eh_frame -R .rel.dyn -R .reginfo -R .note -R .comment -R .drectve -R .note.gnu.gold-version -R .MIPS.abiflags -R .ARM.exidx -R .note.gnu.property -R .gnu.build.attributes + + CFLAGS_MODULE = $(CFLAGS_PLATFORM) -ffreestanding + LDFLAGS_MODULE = $(LDFLAGS_PLATFORM) -nostdlib $(TARGET_LDFLAGS_OLDMAGIC) -Wl,-r,-d +-- +2.17.1 + diff --git a/0245-TPM-Fix-hash_log_extend_event-function-prototype.patch b/0245-TPM-Fix-hash_log_extend_event-function-prototype.patch new file mode 100644 index 00000000..3c43f938 --- /dev/null +++ b/0245-TPM-Fix-hash_log_extend_event-function-prototype.patch @@ -0,0 +1,53 @@ +From a4fc13ebd23cb7a89ea678ed4e52b5142215671d Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Fri, 15 Jun 2018 09:25:00 +0200 +Subject: [PATCH 245/246] TPM: Fix hash_log_extend_event function prototype + +The DataToHash argument is a efi_physical_address, not a *pointer* to +a efi_physical_address. + +This distinction is important for 32 bits builds, where the pointer is +only 32 bits where as an efi_physical_address is 64 bits. + +Fixing this fixes the tpm code not working with 32 bits build and grub +showing multiple: + +error: Invalid parameter + +Messages during boot, followed by a "press any key to continue" message. + +Signed-off-by: Hans de Goede +--- + grub-core/kern/efi/tpm.c | 2 +- + include/grub/efi/tpm.h | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/grub-core/kern/efi/tpm.c b/grub-core/kern/efi/tpm.c +index c9fb3c133f3..36e1f69df16 100644 +--- a/grub-core/kern/efi/tpm.c ++++ b/grub-core/kern/efi/tpm.c +@@ -245,7 +245,7 @@ grub_tpm2_log_event(grub_efi_handle_t tpm_handle, unsigned char *buf, + event->Size = sizeof(*event) - sizeof(event->Event) + grub_strlen(description) + 1; + grub_memcpy(event->Event, description, grub_strlen(description) + 1); + +- status = efi_call_5 (tpm->hash_log_extend_event, tpm, 0, buf, ++ status = efi_call_5 (tpm->hash_log_extend_event, tpm, 0, (unsigned long) buf, + (grub_uint64_t) size, event); + + switch (status) { +diff --git a/include/grub/efi/tpm.h b/include/grub/efi/tpm.h +index e2aff4a3c22..63d8a0fe714 100644 +--- a/include/grub/efi/tpm.h ++++ b/include/grub/efi/tpm.h +@@ -129,7 +129,7 @@ struct grub_efi_tpm2_protocol + grub_efi_boolean_t *EventLogTruncated); + grub_efi_status_t (*hash_log_extend_event) (struct grub_efi_tpm2_protocol *this, + grub_efi_uint64_t Flags, +- grub_efi_physical_address_t *DataToHash, ++ grub_efi_physical_address_t DataToHash, + grub_efi_uint64_t DataToHashLen, + EFI_TCG2_EVENT *EfiTcgEvent); + grub_efi_status_t (*submit_command) (struct grub_efi_tpm2_protocol *this, +-- +2.17.1 + diff --git a/0246-TPM-Fix-compiler-warnings.patch b/0246-TPM-Fix-compiler-warnings.patch new file mode 100644 index 00000000..23e38f10 --- /dev/null +++ b/0246-TPM-Fix-compiler-warnings.patch @@ -0,0 +1,75 @@ +From c850916d93293465abc8beb5bdebd0ab70035d88 Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Fri, 15 Jun 2018 09:58:50 +0200 +Subject: [PATCH 246/246] TPM: Fix compiler warnings + +Stop defining our own Event type in tpm.c instead use the one from +the header, so that it matches the function prototype. +Note this requires some further code changes to go from all lowercaps +of the private Event type to the CamelCaps from the header. + +Also cast buf, which gets passed as a efi_physicall_address_t to an +integer, to avoid the compiler complaining about passing a pointer as +an integer. + +Signed-off-by: Hans de Goede +--- + grub-core/kern/efi/tpm.c | 24 ++++++++---------------- + 1 file changed, 8 insertions(+), 16 deletions(-) + +diff --git a/grub-core/kern/efi/tpm.c b/grub-core/kern/efi/tpm.c +index 36e1f69df16..0d3ebe22e57 100644 +--- a/grub-core/kern/efi/tpm.c ++++ b/grub-core/kern/efi/tpm.c +@@ -161,21 +161,12 @@ grub_tpm_execute(PassThroughToTPM_InputParamBlock *inbuf, + } + } + +-typedef struct { +- grub_uint32_t pcrindex; +- grub_uint32_t eventtype; +- grub_uint8_t digest[20]; +- grub_uint32_t eventsize; +- grub_uint8_t event[1]; +-} Event; +- +- + static grub_err_t + grub_tpm1_log_event(grub_efi_handle_t tpm_handle, unsigned char *buf, + grub_size_t size, grub_uint8_t pcr, + const char *description) + { +- Event *event; ++ TCG_PCR_EVENT *event; + grub_efi_status_t status; + grub_efi_tpm_protocol_t *tpm; + grub_efi_physical_address_t lastevent; +@@ -188,18 +179,19 @@ grub_tpm1_log_event(grub_efi_handle_t tpm_handle, unsigned char *buf, + if (!grub_tpm_present(tpm)) + return 0; + +- event = grub_zalloc(sizeof (Event) + grub_strlen(description) + 1); ++ event = grub_zalloc(sizeof (TCG_PCR_EVENT) + grub_strlen(description) + 1); + if (!event) + return grub_error (GRUB_ERR_OUT_OF_MEMORY, + N_("cannot allocate TPM event buffer")); + +- event->pcrindex = pcr; +- event->eventtype = EV_IPL; +- event->eventsize = grub_strlen(description) + 1; +- grub_memcpy(event->event, description, event->eventsize); ++ event->PCRIndex = pcr; ++ event->EventType = EV_IPL; ++ event->EventSize = grub_strlen(description) + 1; ++ grub_memcpy(event->Event, description, event->EventSize); + + algorithm = TCG_ALG_SHA; +- status = efi_call_7 (tpm->log_extend_event, tpm, buf, (grub_uint64_t) size, ++ status = efi_call_7 (tpm->log_extend_event, tpm, ++ (unsigned long) buf, (grub_uint64_t) size, + algorithm, event, &eventnum, &lastevent); + + switch (status) { +-- +2.17.1 + diff --git a/grub.patches b/grub.patches index ea808f03..b687814d 100644 --- a/grub.patches +++ b/grub.patches @@ -241,3 +241,6 @@ Patch0240: 0240-Don-t-attempt-to-export-the-start-and-_start-symbols.patch Patch0241: 0241-Simplify-BLS-entry-key-val-pairs-lookup.patch Patch0242: 0242-Add-relative-path-to-the-kernel-and-initrds-BLS-fiel.patch Patch0243: 0243-Skip-leading-spaces-on-BLS-field-values.patch +Patch0244: 0244-Fixup-for-newer-compiler.patch +Patch0245: 0245-TPM-Fix-hash_log_extend_event-function-prototype.patch +Patch0246: 0246-TPM-Fix-compiler-warnings.patch diff --git a/grub2.spec b/grub2.spec index 4679073b..822958e8 100644 --- a/grub2.spec +++ b/grub2.spec @@ -7,7 +7,7 @@ Name: grub2 Epoch: 1 Version: 2.02 -Release: 38%{?dist} +Release: 37%{?dist} Summary: Bootloader with support for Linux, Multiboot and more Group: System Environment/Base License: GPLv3+ @@ -453,12 +453,14 @@ fi %endif %changelog -* Fri Jun 15 2018 Javier Martinez Canillas - 2.02-38 -- Make 20-grub.install to exit if there is no machine ID set +* Tue Jun 19 2018 Peter Jones - 2.02-37 +- Fix some TPM errors on 32-bit (hdegoede) +- More fixups to avoid compiler changes (pjones) +- Put lsmmap into the EFI builds (pjones) + Related: rhbz#1572126 +- Make 20-grub.install to exit if there is no machine ID set (javierm) Resolves: rhbz#1576573 - -* Thu Jun 07 2018 Javier Martinez Canillas - 2.02-37 -- More fixes for BLS +- More fixes for BLS (javierm) Resolves: rhbz#1588184 * Thu May 10 2018 Javier Martinez Canillas - 2.02-36 From fff16d8da33715bf56085644bf0ab71424e52592 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 19 Jun 2018 11:09:59 -0400 Subject: [PATCH 28/45] Fix a rpm macro evaluation mishap We need to pad our module list with spaces at all times, or else we get 'xfshttp' as a module on EFI and the build fails. Signed-off-by: Peter Jones --- grub.macros | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grub.macros b/grub.macros index 2a995d16..bdfacaae 100644 --- a/grub.macros +++ b/grub.macros @@ -349,7 +349,7 @@ GRUB_MODULES=" all_video boot blscfg btrfs \\\ search search_fs_uuid search_fs_file \\\ search_label serial sleep syslinuxcfg test tftp \\\ video xfs" \ -GRUB_MODULES+=%{efi_modules} \ +GRUB_MODULES+=" %{efi_modules}" \ %{expand:%%{mkimage %{1} %{2} %{3} %{4}}} \ %{nil} From 257c8083c67ea8449e99f693768e0cbaf6045b32 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 19 Jun 2018 11:21:12 -0400 Subject: [PATCH 29/45] Get the name of lsefimmap right Signed-off-by: Peter Jones --- grub.macros | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grub.macros b/grub.macros index bdfacaae..1aebb51e 100644 --- a/grub.macros +++ b/grub.macros @@ -82,7 +82,7 @@ %{?with_efi_only:%global without_efi_only 1} ### fixme -%global efi_modules_base http lsmmap +%global efi_modules_base http lsefimmap %ifarch aarch64 %{arm} %global efi_modules "%{efi_modules_base} linux " %else From 499c3e970258ebc2484a106f137eb67a7e7550cf Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 19 Jun 2018 12:08:17 -0400 Subject: [PATCH 30/45] Try even harder to get the concatenation and quoting right for GRUB_MODULES Oy. It looks right in rpmspec -P anyway... Signed-off-by: Peter Jones --- grub.macros | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/grub.macros b/grub.macros index 1aebb51e..d8b4b61f 100644 --- a/grub.macros +++ b/grub.macros @@ -84,9 +84,9 @@ ### fixme %global efi_modules_base http lsefimmap %ifarch aarch64 %{arm} -%global efi_modules "%{efi_modules_base} linux " +%global efi_modules %{efi_modules_base} linux %else -%global efi_modules "%{efi_modules_base} backtrace linuxefi usb usbserial_common usbserial_pl2303 usbserial_ftdi usbserial_usbdebug " +%global efi_modules %{efi_modules_base} backtrace linuxefi usb usbserial_common usbserial_pl2303 usbserial_ftdi usbserial_usbdebug %endif %ifarch aarch64 @@ -349,7 +349,7 @@ GRUB_MODULES=" all_video boot blscfg btrfs \\\ search search_fs_uuid search_fs_file \\\ search_label serial sleep syslinuxcfg test tftp \\\ video xfs" \ -GRUB_MODULES+=" %{efi_modules}" \ +GRUB_MODULES+=" %{efi_modules} " \ %{expand:%%{mkimage %{1} %{2} %{3} %{4}}} \ %{nil} From 359c2df03ddf6edb26caee243c9feff52b79f751 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Mon, 25 Jun 2018 13:08:09 +0200 Subject: [PATCH 31/45] Use /boot/loader/entries as BLS dir also on EFI systems For EFI systems, the BLS fragments were stored in the EFI System Partition (ESP) while in non-EFI systems it was stored in /boot. For consistency, it's better to always store the BLS fragments in the same path regardless of the firmware interface used. Signed-off-by: Javier Martinez Canillas --- 0001-Bump-version-to-2.03.patch | 2 +- 0002-Remove-bashisms-from-tests.patch | 2 +- 0003-fs-tester-make-sh-compatible.patch | 2 +- 0004-support-busybox-date.patch | 2 +- ...retrieve-fstime-when-it-s-not-useful.patch | 2 +- 0006-Support-lseek64.patch | 2 +- 0007-Use-SHELL-rather-than-bin-sh.patch | 2 +- 0008-po-Use-SHELL-rather-than-bin-sh.patch | 2 +- 0009-Add-termux-path-to-dict.patch | 2 +- 0010-Fix-shebang-for-termux.patch | 2 +- 0011-Add-strtoull-test.patch | 2 +- ...x-behaviour-on-chars-between-9-and-a.patch | 2 +- 0013-Add-Virtual-LAN-support.patch | 2 +- ...out-to-mkimage_generate_elfXX-rather.patch | 2 +- ...r-arm-uboot-code-to-make-it-genereic.patch | 2 +- ...-parts-that-are-platform-independent.patch | 2 +- ...-Rename-uboot-halt.c-to-dummy-halt.c.patch | 2 +- ...ame-uboot-datetime-to-dummy-datetime.patch | 2 +- 0019-arm-coreboot-Start-new-port.patch | 2 +- ...upport-for-device-tree-based-drivers.patch | 2 +- ...-coreboot-Support-for-vexpress-timer.patch | 2 +- 0022-arm-coreboot-Export-FDT-routines.patch | 2 +- ...-Split-protocol-from-controller-code.patch | 2 +- ...reboot-Support-keyboard-for-vexpress.patch | 2 +- ...m_coreboot-Support-grub-mkstandalone.patch | 2 +- ...oreboot-Support-loading-linux-images.patch | 2 +- 0027-arm_coreboot-Support-DMA.patch | 2 +- 0028-ehci-Split-core-code-from-PCI-part.patch | 2 +- 0029-arm_coreboot-Support-EHCI.patch | 2 +- ...n-FDT-nodes-with-compatible-property.patch | 2 +- ...ty-to-send-receive-messages-on-paren.patch | 2 +- 0032-rk3288_spi-Add-SPI-driver.patch | 2 +- ...eboot-Add-Chromebook-keyboard-driver.patch | 2 +- 0034-Missing-parts-of-previous-commit.patch | 2 +- ...-cbmemc-to-support-updated-console-f.patch | 2 +- ...t_keyboard-Fix-falco-chromebook-case.patch | 2 +- 0037-sparc64-Close-cdboot-ihandle.patch | 2 +- ...-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch | 2 +- ...p-option-support-in-xen_module-comma.patch | 2 +- ...inux_xen.in-Add-xen_boot-command-sup.patch | 2 +- ...-introduction-of-Xen-boot-commands-i.patch | 2 +- ...se-devspec-to-determine-the-OBP-path.patch | 2 +- ...unt-ext2-3-4-filesystems-that-have-t.patch | 2 +- 0044-ehci-Fix-compilation-for-amd64.patch | 2 +- ...-compilation-for-ppc-sparc-and-arm64.patch | 2 +- 0046-ehci-Fix-compilation-on-i386.patch | 2 +- 0047-crypto-Fix-use-after-free.patch | 2 +- 0048-arm-efi-Fix-compilation.patch | 2 +- 0049-fdt-silence-clang-warning.patch | 2 +- 0050-Fix-a-segfault-in-lsefi.patch | 2 +- ...t-typedef-and-use-grub_size_t-instea.patch | 2 +- ...x-reading-label-lvd.ident-is-dstring.patch | 2 +- ...b-core-fs-udf.c-Add-support-for-UUID.patch | 2 +- ...orriso-presence-before-doing-anythin.patch | 2 +- 0055-Fail-if-xorriso-failed.patch | 2 +- ...efi-refactor-grub_efi_allocate_pages.patch | 2 +- 0057-Remove-grub_efi_allocate_pages.patch | 2 +- 0058-efi-move-fdt-helper-library.patch | 2 +- 0059-efi-Add-GRUB_PE32_MAGIC-definition.patch | 2 +- ...inux-loader-improve-type-portability.patch | 2 +- ...allocation-type-to-GRUB_EFI_LOADER_C.patch | 2 +- ...RM_-definitions-when-handling-term-c.patch | 2 +- ...B_GZ-prefix-to-gzio-specific-defines.patch | 2 +- 0064-re-write-.gitignore.patch | 2 +- ...ient-architecture-CAS-reboot-support.patch | 2 +- ...nsole-display-attr-when-clear-screen.patch | 2 +- ...video-support-for-IBM-power-machines.patch | 2 +- ...when-generating-configuration-by-gru.patch | 2 +- 0069-Move-bash-completion-script-922997.patch | 2 +- 0070-Update-to-minilzo-2.08.patch | 2 +- ...o-include-entries-by-title-not-just-.patch | 2 +- 0072-Add-GRUB_DISABLE_UUID.patch | 2 +- 0073-Make-exit-take-a-return-code.patch | 2 +- ...pot-as-binary-so-git-won-t-try-to-di.patch | 2 +- ...es-load-an-env-block-from-a-variable.patch | 2 +- ...HCP-client-ID-and-UUID-options-added.patch | 2 +- ...-trim-arp-packets-with-abnormal-size.patch | 2 +- ...Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch | 2 +- ...UEFI-operating-systems-returned-by-o.patch | 2 +- 0080-Migrate-PPC-from-Yaboot-to-Grub2.patch | 2 +- 0081-Add-fw_path-variable-revised.patch | 2 +- 0082-Add-support-for-linuxefi.patch | 2 +- ...xefi-and-initrdefi-where-appropriate.patch | 2 +- ...w-insmod-when-secure-boot-is-enabled.patch | 2 +- ...-hex-hex-straight-through-unmolested.patch | 2 +- 0086-Add-X-option-to-printf-functions.patch | 2 +- ...for-specific-config-file-for-netboot.patch | 2 +- ...g-module-to-parse-Boot-Loader-Specif.patch | 2 +- 0089-Don-t-write-messages-to-the-screen.patch | 2 +- 0090-Don-t-print-GNU-GRUB-header.patch | 2 +- 0091-Don-t-add-to-highlighted-row.patch | 2 +- 0092-Message-string-cleanups.patch | 2 +- ...ing-now-that-we-aren-t-displaying-it.patch | 2 +- ...t-indentation-for-the-term-help-text.patch | 2 +- 0095-Indent-menu-entries.patch | 2 +- 0096-Fix-margins.patch | 2 +- ...-1-for-our-right-hand-margin-so-line.patch | 2 +- ...-Use-linux16-when-appropriate-880840.patch | 2 +- 0099-Enable-pager-by-default.-985860.patch | 2 +- ...-on-serial-so-don-t-tell-the-user-to.patch | 2 +- ...n-t-say-GNU-Linux-in-generated-menus.patch | 2 +- ...-Don-t-draw-a-border-around-the-menu.patch | 2 +- ...andard-margin-for-the-timeout-string.patch | 2 +- ...rame-to-list-of-relocations-stripped.patch | 2 +- ...rk-with-our-changes-for-linux16-and-.patch | 2 +- ...on-t-print-during-fdt-loading-method.patch | 2 +- ...spaces-when-we-re-doing-our-cmdline-.patch | 2 +- ...password-to-boot-entries-generated-b.patch | 2 +- 0109-Don-t-emit-Booting-.-message.patch | 2 +- ...f-man-pages-with-slightly-nicer-ones.patch | 2 +- ...ix-when-fallback-searching-for-grub-.patch | 2 +- ...-before-grub.cfg-on-tftp-config-file.patch | 2 +- ...ert-function-to-support-NVMe-devices.patch | 2 +- ...M-Mustang-device-tree-for-hardware-t.patch | 2 +- ...device-tree-from-the-grub-default-fi.patch | 2 +- ...P-protocol-for-exclusive-use-by-grub.patch | 2 +- ...P-protocol-for-exclusive-use-by-grub.patch | 2 +- 0118-Add-grub_util_readlink.patch | 2 +- ...se-symlinks-including-those-across-d.patch | 2 +- ...CLASS-in-10_linux-from-etc-os-releas.patch | 2 +- ...t-ordering-for-.debug-and-rescue-ker.patch | 2 +- 0122-Load-arm-with-SB-enabled.patch | 2 +- 0123-Try-prefix-if-fw_path-doesn-t-work.patch | 2 +- ...-grub.cfg-netboot-selection-order-11.patch | 2 +- ...-Package-Sort-for-grub2-mkconfig-112.patch | 2 +- 0126-Handle-rssd-storage-devices.patch | 2 +- ...x16-initrd16-and-linuxefi-initrdefi-.patch | 2 +- ...fig-construct-titles-that-look-like-.patch | 2 +- ...ly-grub2-password-config-tool-985962.patch | 2 +- ...fig-construct-titles-that-look-like-.patch | 2 +- ...-configure.ac-and-grub-rpm-sort-play.patch | 2 +- 0132-tcp-add-window-scaling-support.patch | 2 +- ...net-retransmit-if-our-device-is-busy.patch | 2 +- ...out-actually-using-the-configured-ne.patch | 2 +- ...r-for-the-first-exclusive-reopen-of-.patch | 2 +- ...ue-when-reading-username-and-passwor.patch | 2 +- ...ub-password-will-not-be-read-1290803.patch | 2 +- ...ub-setpassword-documentation-1290799.patch | 2 +- ...le-issue-in-grub-setpassword-1294243.patch | 2 +- ...rsistent-RAM-and-unknown-possible-fu.patch | 2 +- 0141-efiemu-Fix-compilation-failure.patch | 2 +- ...P-protocol-for-exclusive-use-by-grub.patch | 2 +- 0143-Add-a-url-parser.patch | 2 +- ...net-and-bootp-add-support-for-dhcpv6.patch | 2 +- ...rnel-settings-and-use-it-in-10_linux.patch | 2 +- 0146-Normalize-slashes-in-tftp-paths.patch | 2 +- 0147-Fix-malformed-tftp-packets.patch | 2 +- 0148-Fix-race-in-EFI-validation.patch | 2 +- ...1374141-fix-incorrect-mask-for-ppc64.patch | 2 +- ...art-of-chainloader-target-if-present.patch | 2 +- ...ecureboot-support-on-efi-chainloader.patch | 2 +- ...loaders-that-link-in-efi-mode-honor-.patch | 2 +- 0153-Make-grub_fatal-also-backtrace.patch | 2 +- 0154-Rework-linux-command.patch | 2 +- 0155-Rework-linux16-command.patch | 2 +- 0156-Make-grub-editenv-build-again.patch | 2 +- ...ix-up-some-man-pages-rpmdiff-noticed.patch | 2 +- ...-work-some-intricacies-of-PE-loading.patch | 2 +- ...-of-efi-chainload-so-non-sb-cases-wo.patch | 2 +- ...-double-free-on-verification-failure.patch | 2 +- ...machine-type-test-in-30_os-prober.in.patch | 2 +- ...fix-wrong-sanity-check-in-relocate_c.patch | 2 +- ...truncate-overlong-relocation-section.patch | 2 +- 0164-linuxefi-minor-cleanups.patch | 2 +- ...rch-64-on-32-boot-in-linuxefi-loader.patch | 2 +- 0166-Fix-up-linux-params-usage.patch | 2 +- 0167-Make-exit-take-a-return-code.patch | 2 +- ...fdt-has-address-cells-and-size-cells.patch | 2 +- ...rintf-in-the-secure-boot-verify-code.patch | 2 +- ...fo-pages-say-grub2-where-appropriate.patch | 2 +- ...more-debug-info-in-our-module-loader.patch | 2 +- ...-chainloader-entries-don-t-try-any-x.patch | 2 +- ...-Add-ability-to-boot-from-subvolumes.patch | 2 +- ...port-btrfs_subvol-and-btrfs_subvolid.patch | 2 +- 0175-grub2-btrfs-03-follow_default.patch | 2 +- 0176-grub2-btrfs-04-grub2-install.patch | 2 +- 0177-grub2-btrfs-05-grub2-mkconfig.patch | 2 +- 0178-grub2-btrfs-06-subvol-mount.patch | 2 +- ...ootable-Snapshot-submenu-in-grub.cfg.patch | 2 +- ...subvol-name-scheme-to-support-old-sn.patch | 2 +- ...-correctly-with-btrfs-snapshots-bsc-.patch | 2 +- ...ocate_pool-and-grub_efi_free_pool-wr.patch | 2 +- ...fi_.-memory-helpers-where-reasonable.patch | 2 +- 0184-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch | 2 +- ...c-sized-arrays-since-we-don-t-build-.patch | 2 +- 0186-don-t-ignore-const.patch | 2 +- 0187-don-t-use-int-for-efi-status.patch | 2 +- ...INIT-declare-its-function-prototypes.patch | 2 +- ...p-some-errors-in-the-linuxefi-loader.patch | 2 +- 0190-editenv-handle-relative-symlinks.patch | 2 +- ...e-libgrub.pp-depend-on-config-util.h.patch | 2 +- ...-efi-as-HFS-on-ppc-machines-in-grub-.patch | 2 +- ...20_linux_xen.in-Add-xen_boot-command.patch | 2 +- ...-figure-out-whether-multiboot2-shoul.patch | 2 +- ...d-xen-or-multiboot-2-modules-as-need.patch | 2 +- ...lt-tsc-calibration-method-to-pmtimer.patch | 2 +- ...-calibration-not-take-51-seconds-to-.patch | 2 +- 0198-align-struct-efi_variable-better.patch | 2 +- 0199-Add-quicksort-implementation.patch | 2 +- ...nd-support-to-parse-BootLoaderSpec-c.patch | 2 +- 0201-Add-BLS-support-to-grub-mkconfig.patch | 2 +- ...d-grub_exit-definition-for-grub-emu-.patch | 2 +- ...-backtrace-on-grub_abort-for-grub-em.patch | 2 +- ...-blscfg-command-for-the-emu-platform.patch | 2 +- ...nux-and-initrd-commands-for-grub-emu.patch | 2 +- 0206-Fix-the-efidir-in-grub-setpassword.patch | 2 +- 0207-Add-grub2-switch-to-blscfg.patch | 2 +- 0208-Add-grub_debug_enabled.patch | 2 +- 0209-make-better-backtraces.patch | 2 +- ...w-our-startup-message-if-debug-is-se.patch | 2 +- ...-some-minor-include-path-weirdnesses.patch | 2 +- ...it-possible-to-enabled-build-id-sha1.patch | 2 +- ...f-grub_dprintf-without-the-file-line.patch | 2 +- ...dprintf-that-tells-us-load-addresses.patch | 2 +- ...scan-different-BLS-directories-on-EF.patch | 2 +- 0216-Core-TPM-support.patch | 2 +- 0217-Measure-kernel-initrd.patch | 2 +- 0218-Add-BIOS-boot-measurement.patch | 2 +- ...re-kernel-and-initrd-on-BIOS-systems.patch | 2 +- 0220-Measure-the-kernel-commandline.patch | 2 +- 0221-Measure-commands.patch | 2 +- ...Measure-multiboot-images-and-modules.patch | 2 +- 0223-Fix-boot-when-there-s-no-TPM.patch | 2 +- 0224-Rework-TPM-measurements.patch | 2 +- 0225-Fix-event-log-prefix.patch | 2 +- ...ot-menu-entry-as-default-when-using-.patch | 2 +- ...-when-compiling-for-platforms-other-.patch | 2 +- 0228-Make-TPM-errors-less-fatal.patch | 2 +- ...cfg-handle-multiple-initramfs-images.patch | 2 +- ...switch-to-blscfg-on-non-EFI-machines.patch | 2 +- ...LS-Use-etcdefaultgrub-instead-of-etc.patch | 2 +- ...ons-to-grub2-switch-to-blscfg-man-pa.patch | 2 +- ...h-to-blscfg-to-generate-debug-BLS-wh.patch | 2 +- ...h-to-blscfg-to-generate-BLS-fragment.patch | 2 +- ...query-dev-mounted-in-boot-efi-as-boo.patch | 2 +- ...ath-when-searching-kernels-images-if.patch | 2 +- ...field-to-compare-entries-if-id-field.patch | 2 +- ...d-to-BLS-generated-by-grub2-switch-t.patch | 2 +- 0239-Fixup-for-newer-compiler.patch | 2 +- ...-export-the-start-and-_start-symbols.patch | 2 +- ...plify-BLS-entry-key-val-pairs-lookup.patch | 2 +- ...h-to-the-kernel-and-initrds-BLS-fiel.patch | 2 +- ...p-leading-spaces-on-BLS-field-values.patch | 2 +- 0244-Fixup-for-newer-compiler.patch | 2 +- ..._log_extend_event-function-prototype.patch | 2 +- 0246-TPM-Fix-compiler-warnings.patch | 2 +- ...lscfg.in-get-rid-of-a-bunch-of-bashi.patch | 117 +++++++++++++ ...lscfg.in-Better-boot-prefix-checking.patch | 76 +++++++++ ...entries-as-BLS-directory-path-also-o.patch | 155 ++++++++++++++++++ 20-grub.install | 5 - grub.patches | 3 + grub2.spec | 4 + 252 files changed, 601 insertions(+), 251 deletions(-) create mode 100644 0247-grub-switch-to-blscfg.in-get-rid-of-a-bunch-of-bashi.patch create mode 100644 0248-grub-switch-to-blscfg.in-Better-boot-prefix-checking.patch create mode 100644 0249-Use-boot-loader-entries-as-BLS-directory-path-also-o.patch diff --git a/0001-Bump-version-to-2.03.patch b/0001-Bump-version-to-2.03.patch index e8c4d54b..8633131f 100644 --- a/0001-Bump-version-to-2.03.patch +++ b/0001-Bump-version-to-2.03.patch @@ -1,7 +1,7 @@ From b0bad6fd9449d3333fe1ab58953c0e6c1ce12c0d Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Wed, 3 May 2017 11:55:52 +0200 -Subject: [PATCH 001/246] Bump version to 2.03 +Subject: [PATCH 001/249] Bump version to 2.03 --- configure.ac | 2 +- diff --git a/0002-Remove-bashisms-from-tests.patch b/0002-Remove-bashisms-from-tests.patch index 80190e62..7c4d071b 100644 --- a/0002-Remove-bashisms-from-tests.patch +++ b/0002-Remove-bashisms-from-tests.patch @@ -1,7 +1,7 @@ From 5a0c548ba388b343b0bb6d2a38888e7eac5bbb96 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 03:47:13 +0300 -Subject: [PATCH 002/246] Remove bashisms from tests. +Subject: [PATCH 002/249] Remove bashisms from tests. Those tests don't actually need bash. Just use common shebang. --- diff --git a/0003-fs-tester-make-sh-compatible.patch b/0003-fs-tester-make-sh-compatible.patch index 7662a085..97801652 100644 --- a/0003-fs-tester-make-sh-compatible.patch +++ b/0003-fs-tester-make-sh-compatible.patch @@ -1,7 +1,7 @@ From 37865c2c4ad26cd5e947b08abf1fde8145699919 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 14:35:59 +0300 -Subject: [PATCH 003/246] fs-tester: make sh-compatible +Subject: [PATCH 003/249] fs-tester: make sh-compatible --- tests/util/grub-fs-tester.in | 306 ++++++++++++++++++++++++------------------- diff --git a/0004-support-busybox-date.patch b/0004-support-busybox-date.patch index fc3c316a..373a2bff 100644 --- a/0004-support-busybox-date.patch +++ b/0004-support-busybox-date.patch @@ -1,7 +1,7 @@ From b43b8cacc813c2c15347de1e35cc88d9aa912d22 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 14:31:36 +0300 -Subject: [PATCH 004/246] support busybox date. +Subject: [PATCH 004/249] support busybox date. Busybox date doesn't understand weekdays in -d input, so strip them beforehand. diff --git a/0005-Don-t-retrieve-fstime-when-it-s-not-useful.patch b/0005-Don-t-retrieve-fstime-when-it-s-not-useful.patch index 27b5e02a..69bf3200 100644 --- a/0005-Don-t-retrieve-fstime-when-it-s-not-useful.patch +++ b/0005-Don-t-retrieve-fstime-when-it-s-not-useful.patch @@ -1,7 +1,7 @@ From 6dec3a26b37e128ded5d912e08abc5cee1592499 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 21:24:05 +0300 -Subject: [PATCH 005/246] Don't retrieve fstime when it's not useful. +Subject: [PATCH 005/249] Don't retrieve fstime when it's not useful. --- tests/util/grub-fs-tester.in | 48 ++++++++++++++++++++++---------------------- diff --git a/0006-Support-lseek64.patch b/0006-Support-lseek64.patch index acc5b0b2..44e3332f 100644 --- a/0006-Support-lseek64.patch +++ b/0006-Support-lseek64.patch @@ -1,7 +1,7 @@ From 608bec51128008afb81c9e3f297283e9f830a146 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 20:21:05 +0300 -Subject: [PATCH 006/246] Support lseek64. +Subject: [PATCH 006/249] Support lseek64. Android doesn't have 64-bit off_t, so use off64_t instead. --- diff --git a/0007-Use-SHELL-rather-than-bin-sh.patch b/0007-Use-SHELL-rather-than-bin-sh.patch index b0fbf5af..fdb2657c 100644 --- a/0007-Use-SHELL-rather-than-bin-sh.patch +++ b/0007-Use-SHELL-rather-than-bin-sh.patch @@ -1,7 +1,7 @@ From c2ea443446b7feea868e54f94a87781f69820375 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 00:55:30 +0300 -Subject: [PATCH 007/246] Use $(SHELL) rather than /bin/sh. +Subject: [PATCH 007/249] Use $(SHELL) rather than /bin/sh. /bin/sh doesn't exist under termux. --- diff --git a/0008-po-Use-SHELL-rather-than-bin-sh.patch b/0008-po-Use-SHELL-rather-than-bin-sh.patch index 6037aa9e..d7c64aae 100644 --- a/0008-po-Use-SHELL-rather-than-bin-sh.patch +++ b/0008-po-Use-SHELL-rather-than-bin-sh.patch @@ -1,7 +1,7 @@ From 4341f82af0b61d3dfbe675670d4105dc759c0df3 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 14:54:03 +0300 -Subject: [PATCH 008/246] po: Use @SHELL@ rather than /bin/sh. +Subject: [PATCH 008/249] po: Use @SHELL@ rather than /bin/sh. /bin/sh might not exist. --- diff --git a/0009-Add-termux-path-to-dict.patch b/0009-Add-termux-path-to-dict.patch index 4465d17f..57990d17 100644 --- a/0009-Add-termux-path-to-dict.patch +++ b/0009-Add-termux-path-to-dict.patch @@ -1,7 +1,7 @@ From 1073ddb12078f3c8edbdb74bb8f5afc674983f40 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 14:52:48 +0300 -Subject: [PATCH 009/246] Add termux path to dict. +Subject: [PATCH 009/249] Add termux path to dict. --- tests/util/grub-fs-tester.in | 2 +- diff --git a/0010-Fix-shebang-for-termux.patch b/0010-Fix-shebang-for-termux.patch index 67db519e..76217ec6 100644 --- a/0010-Fix-shebang-for-termux.patch +++ b/0010-Fix-shebang-for-termux.patch @@ -1,7 +1,7 @@ From a827807a1330d5ad619faa103bc7f12d89fc8bee Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Sun, 22 Jan 2017 20:22:34 +0300 -Subject: [PATCH 010/246] Fix shebang for termux. +Subject: [PATCH 010/249] Fix shebang for termux. Termux doesn't have a /bin/sh. So we needto use $SHELL. Keep /bin/sh as much as possible. diff --git a/0011-Add-strtoull-test.patch b/0011-Add-strtoull-test.patch index 09193e9f..c4a92676 100644 --- a/0011-Add-strtoull-test.patch +++ b/0011-Add-strtoull-test.patch @@ -1,7 +1,7 @@ From ede6c9689395499f98a4c14d76b97151b4de5f54 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Wed, 3 May 2017 12:58:15 +0200 -Subject: [PATCH 011/246] Add strtoull test. +Subject: [PATCH 011/249] Add strtoull test. --- grub-core/Makefile.core.def | 5 +++++ diff --git a/0012-strtoull-Fix-behaviour-on-chars-between-9-and-a.patch b/0012-strtoull-Fix-behaviour-on-chars-between-9-and-a.patch index a1ea6bf3..7f374f42 100644 --- a/0012-strtoull-Fix-behaviour-on-chars-between-9-and-a.patch +++ b/0012-strtoull-Fix-behaviour-on-chars-between-9-and-a.patch @@ -1,7 +1,7 @@ From dc6e1b5af83eb1c4290baf97c2d221c0865127be Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Wed, 10 Aug 2016 17:49:42 +0200 -Subject: [PATCH 012/246] strtoull: Fix behaviour on chars between '9' and 'a'. +Subject: [PATCH 012/249] strtoull: Fix behaviour on chars between '9' and 'a'. Reported by: Aaron Miller --- diff --git a/0013-Add-Virtual-LAN-support.patch b/0013-Add-Virtual-LAN-support.patch index 4783933e..4e2ec7ab 100644 --- a/0013-Add-Virtual-LAN-support.patch +++ b/0013-Add-Virtual-LAN-support.patch @@ -1,7 +1,7 @@ From d9f7de0ae3c0c09cff7257c55418450261f3e082 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Mon, 23 Dec 2013 12:32:02 -0200 -Subject: [PATCH 013/246] Add Virtual LAN support. +Subject: [PATCH 013/249] Add Virtual LAN support. This patch adds support for virtual LAN (VLAN) tagging. VLAN tagging allows multiple VLANs in a bridged network to share the same physical network link diff --git a/0014-mkimage-Pass-layout-to-mkimage_generate_elfXX-rather.patch b/0014-mkimage-Pass-layout-to-mkimage_generate_elfXX-rather.patch index 0523b9f2..da850a20 100644 --- a/0014-mkimage-Pass-layout-to-mkimage_generate_elfXX-rather.patch +++ b/0014-mkimage-Pass-layout-to-mkimage_generate_elfXX-rather.patch @@ -1,7 +1,7 @@ From a35ac854308b0af7c86c2c7b199f6abdfa2110b0 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 17:32:15 +0200 -Subject: [PATCH 014/246] mkimage: Pass layout to mkimage_generate_elfXX rather +Subject: [PATCH 014/249] mkimage: Pass layout to mkimage_generate_elfXX rather than some fields. This allows easier extension of this function without having too long of diff --git a/0015-Refactor-arm-uboot-code-to-make-it-genereic.patch b/0015-Refactor-arm-uboot-code-to-make-it-genereic.patch index 3450a917..9f868861 100644 --- a/0015-Refactor-arm-uboot-code-to-make-it-genereic.patch +++ b/0015-Refactor-arm-uboot-code-to-make-it-genereic.patch @@ -1,7 +1,7 @@ From d08c9685149e7788001ac9a209baa1d84c3628e0 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 17:47:57 +0200 -Subject: [PATCH 015/246] Refactor arm-uboot code to make it genereic. +Subject: [PATCH 015/249] Refactor arm-uboot code to make it genereic. arm-coreboot startup code can be very similar to arm-uboot but current code has U-Boot specific references. So split U-Boot part from generic part. diff --git a/0016-coreboot-Split-parts-that-are-platform-independent.patch b/0016-coreboot-Split-parts-that-are-platform-independent.patch index 88dd0bca..69d80662 100644 --- a/0016-coreboot-Split-parts-that-are-platform-independent.patch +++ b/0016-coreboot-Split-parts-that-are-platform-independent.patch @@ -1,7 +1,7 @@ From 461bfab7b7e47fd0a76bf6076a438af1b7e2184a Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 19:06:22 +0200 -Subject: [PATCH 016/246] coreboot: Split parts that are platform-independent. +Subject: [PATCH 016/249] coreboot: Split parts that are platform-independent. We currently assume that coreboot is always i386, it's no longer the case, so split i386-coreboot parts from generic coreboot code. diff --git a/0017-Rename-uboot-halt.c-to-dummy-halt.c.patch b/0017-Rename-uboot-halt.c-to-dummy-halt.c.patch index f91f7e60..16ed137c 100644 --- a/0017-Rename-uboot-halt.c-to-dummy-halt.c.patch +++ b/0017-Rename-uboot-halt.c-to-dummy-halt.c.patch @@ -1,7 +1,7 @@ From 1daa716c7017f1858de117a20a31da66815435c5 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 19:31:55 +0200 -Subject: [PATCH 017/246] Rename uboot/halt.c to dummy/halt.c. +Subject: [PATCH 017/249] Rename uboot/halt.c to dummy/halt.c. It's not U-Boot specific and it's a stub. --- diff --git a/0018-Rename-uboot-datetime-to-dummy-datetime.patch b/0018-Rename-uboot-datetime-to-dummy-datetime.patch index 2eee28cd..7e5d66f2 100644 --- a/0018-Rename-uboot-datetime-to-dummy-datetime.patch +++ b/0018-Rename-uboot-datetime-to-dummy-datetime.patch @@ -1,7 +1,7 @@ From 9808c3ef956c6472a96790b60cf74f4eaa742010 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 19:37:29 +0200 -Subject: [PATCH 018/246] Rename uboot/datetime to dummy/datetime. +Subject: [PATCH 018/249] Rename uboot/datetime to dummy/datetime. It's just a stub and is not UBoot-specific. --- diff --git a/0019-arm-coreboot-Start-new-port.patch b/0019-arm-coreboot-Start-new-port.patch index 08bcd29e..b4837093 100644 --- a/0019-arm-coreboot-Start-new-port.patch +++ b/0019-arm-coreboot-Start-new-port.patch @@ -1,7 +1,7 @@ From 24e37a885269bdec9b27babf1da0bba3692d55c0 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 20:53:28 +0200 -Subject: [PATCH 019/246] arm-coreboot: Start new port. +Subject: [PATCH 019/249] arm-coreboot: Start new port. --- configure.ac | 2 + diff --git a/0020-Add-support-for-device-tree-based-drivers.patch b/0020-Add-support-for-device-tree-based-drivers.patch index 2016c287..18fc900d 100644 --- a/0020-Add-support-for-device-tree-based-drivers.patch +++ b/0020-Add-support-for-device-tree-based-drivers.patch @@ -1,7 +1,7 @@ From fcbb723d4b1f7ad4687191562621dd0eb25f4d9e Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:19:59 +0200 -Subject: [PATCH 020/246] Add support for device-tree-based drivers. +Subject: [PATCH 020/249] Add support for device-tree-based drivers. --- grub-core/Makefile.core.def | 2 + diff --git a/0021-arm-coreboot-Support-for-vexpress-timer.patch b/0021-arm-coreboot-Support-for-vexpress-timer.patch index 19697297..712c25db 100644 --- a/0021-arm-coreboot-Support-for-vexpress-timer.patch +++ b/0021-arm-coreboot-Support-for-vexpress-timer.patch @@ -1,7 +1,7 @@ From 5a865b37866ee8cd64c080bc6fb1e537f8e2b3c6 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:26:36 +0200 -Subject: [PATCH 021/246] arm-coreboot: Support for vexpress timer. +Subject: [PATCH 021/249] arm-coreboot: Support for vexpress timer. --- grub-core/kern/arm/coreboot/timer.c | 36 ++++++++++++++++++++++++++++++++++++ diff --git a/0022-arm-coreboot-Export-FDT-routines.patch b/0022-arm-coreboot-Export-FDT-routines.patch index c021af18..2feb80b0 100644 --- a/0022-arm-coreboot-Export-FDT-routines.patch +++ b/0022-arm-coreboot-Export-FDT-routines.patch @@ -1,7 +1,7 @@ From ac6b41b89fbb82a3ba843a7ed19115d81432b604 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:29:48 +0200 -Subject: [PATCH 022/246] arm-coreboot: Export FDT routines. +Subject: [PATCH 022/249] arm-coreboot: Export FDT routines. We need to use them from modules as well. --- diff --git a/0023-at_keyboard-Split-protocol-from-controller-code.patch b/0023-at_keyboard-Split-protocol-from-controller-code.patch index bdfd9379..fcb72026 100644 --- a/0023-at_keyboard-Split-protocol-from-controller-code.patch +++ b/0023-at_keyboard-Split-protocol-from-controller-code.patch @@ -1,7 +1,7 @@ From 216950a4eea1a1ead1c28eaca94e34ea2ef2ad19 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:41:22 +0200 -Subject: [PATCH 023/246] at_keyboard: Split protocol from controller code. +Subject: [PATCH 023/249] at_keyboard: Split protocol from controller code. On vexpress controller is different but protocol is the same, so reuse the code. diff --git a/0024-arm_coreboot-Support-keyboard-for-vexpress.patch b/0024-arm_coreboot-Support-keyboard-for-vexpress.patch index 4e07b7f4..014b04ba 100644 --- a/0024-arm_coreboot-Support-keyboard-for-vexpress.patch +++ b/0024-arm_coreboot-Support-keyboard-for-vexpress.patch @@ -1,7 +1,7 @@ From 848bed9d92cf20e9f25db4c69a20efad23996ca0 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:42:37 +0200 -Subject: [PATCH 024/246] arm_coreboot: Support keyboard for vexpress. +Subject: [PATCH 024/249] arm_coreboot: Support keyboard for vexpress. --- grub-core/Makefile.core.def | 3 + diff --git a/0025-arm_coreboot-Support-grub-mkstandalone.patch b/0025-arm_coreboot-Support-grub-mkstandalone.patch index 47b13365..22badf0f 100644 --- a/0025-arm_coreboot-Support-grub-mkstandalone.patch +++ b/0025-arm_coreboot-Support-grub-mkstandalone.patch @@ -1,7 +1,7 @@ From 3edabad8fefb112cc4b2d43be6e97d43c909ceee Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:59:48 +0200 -Subject: [PATCH 025/246] arm_coreboot: Support grub-mkstandalone. +Subject: [PATCH 025/249] arm_coreboot: Support grub-mkstandalone. --- util/grub-install-common.c | 12 ++++++++++-- diff --git a/0026-arm_coreboot-Support-loading-linux-images.patch b/0026-arm_coreboot-Support-loading-linux-images.patch index ecca3d55..40905dac 100644 --- a/0026-arm_coreboot-Support-loading-linux-images.patch +++ b/0026-arm_coreboot-Support-loading-linux-images.patch @@ -1,7 +1,7 @@ From 656c3b0d7fbe23f0e1ab561c8faa4ac4a37364d1 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 22:00:06 +0200 -Subject: [PATCH 026/246] arm_coreboot: Support loading linux images. +Subject: [PATCH 026/249] arm_coreboot: Support loading linux images. --- grub-core/loader/arm/linux.c | 132 ++++++++++++++++++++++--------------------- diff --git a/0027-arm_coreboot-Support-DMA.patch b/0027-arm_coreboot-Support-DMA.patch index 27440cb8..fd15ea0d 100644 --- a/0027-arm_coreboot-Support-DMA.patch +++ b/0027-arm_coreboot-Support-DMA.patch @@ -1,7 +1,7 @@ From 265292f2b0da0eb414c409871ba0f94a99ec33c1 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 22:06:04 +0200 -Subject: [PATCH 027/246] arm_coreboot: Support DMA. +Subject: [PATCH 027/249] arm_coreboot: Support DMA. This is needed to support USB and some other busses. --- diff --git a/0028-ehci-Split-core-code-from-PCI-part.patch b/0028-ehci-Split-core-code-from-PCI-part.patch index 6fd02924..e244830f 100644 --- a/0028-ehci-Split-core-code-from-PCI-part.patch +++ b/0028-ehci-Split-core-code-from-PCI-part.patch @@ -1,7 +1,7 @@ From 058df7b5a9cc7aaa9872eaa916b715544a8f9840 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 22:10:26 +0200 -Subject: [PATCH 028/246] ehci: Split core code from PCI part. +Subject: [PATCH 028/249] ehci: Split core code from PCI part. On ARM often EHCI is present without PCI and just declared in device tree. So splitcore from PCI part. diff --git a/0029-arm_coreboot-Support-EHCI.patch b/0029-arm_coreboot-Support-EHCI.patch index c48a4cda..d0272220 100644 --- a/0029-arm_coreboot-Support-EHCI.patch +++ b/0029-arm_coreboot-Support-EHCI.patch @@ -1,7 +1,7 @@ From d11ced1e1fb93676942e51618eb53c140f541890 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 22:14:28 +0200 -Subject: [PATCH 029/246] arm_coreboot: Support EHCI. +Subject: [PATCH 029/249] arm_coreboot: Support EHCI. --- grub-core/Makefile.core.def | 2 ++ diff --git a/0030-Fix-bug-on-FDT-nodes-with-compatible-property.patch b/0030-Fix-bug-on-FDT-nodes-with-compatible-property.patch index d23f1927..b53e0c04 100644 --- a/0030-Fix-bug-on-FDT-nodes-with-compatible-property.patch +++ b/0030-Fix-bug-on-FDT-nodes-with-compatible-property.patch @@ -1,7 +1,7 @@ From 4f8471532d454b2db96434c28bf7105ed69e0f4d Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 08:39:40 +0200 -Subject: [PATCH 030/246] Fix bug on FDT nodes with compatible property +Subject: [PATCH 030/249] Fix bug on FDT nodes with compatible property --- grub-core/bus/fdt.c | 2 ++ diff --git a/0031-fdtbus-Add-ability-to-send-receive-messages-on-paren.patch b/0031-fdtbus-Add-ability-to-send-receive-messages-on-paren.patch index dbb6ba62..931565b5 100644 --- a/0031-fdtbus-Add-ability-to-send-receive-messages-on-paren.patch +++ b/0031-fdtbus-Add-ability-to-send-receive-messages-on-paren.patch @@ -1,7 +1,7 @@ From c4313c812dc14e82a774b580b5e34d40e7f3fae6 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 08:40:29 +0200 -Subject: [PATCH 031/246] fdtbus: Add ability to send/receive messages on +Subject: [PATCH 031/249] fdtbus: Add ability to send/receive messages on parent busses. --- diff --git a/0032-rk3288_spi-Add-SPI-driver.patch b/0032-rk3288_spi-Add-SPI-driver.patch index 2f2c1fcb..3f00408b 100644 --- a/0032-rk3288_spi-Add-SPI-driver.patch +++ b/0032-rk3288_spi-Add-SPI-driver.patch @@ -1,7 +1,7 @@ From b0b1b81a11f8bae8ab9e8edd87ac3f4f7949d03b Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 08:42:14 +0200 -Subject: [PATCH 032/246] rk3288_spi: Add SPI driver +Subject: [PATCH 032/249] rk3288_spi: Add SPI driver --- grub-core/Makefile.core.def | 1 + diff --git a/0033-arm_coreboot-Add-Chromebook-keyboard-driver.patch b/0033-arm_coreboot-Add-Chromebook-keyboard-driver.patch index 3183dd8c..ef81e511 100644 --- a/0033-arm_coreboot-Add-Chromebook-keyboard-driver.patch +++ b/0033-arm_coreboot-Add-Chromebook-keyboard-driver.patch @@ -1,7 +1,7 @@ From 5c3fd1b135bd73c8e3467b9b635b25ca4d360a19 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 08:47:34 +0200 -Subject: [PATCH 033/246] arm_coreboot: Add Chromebook keyboard driver. +Subject: [PATCH 033/249] arm_coreboot: Add Chromebook keyboard driver. --- grub-core/term/arm/cros.c | 125 +++++++++++++++++++++++ diff --git a/0034-Missing-parts-of-previous-commit.patch b/0034-Missing-parts-of-previous-commit.patch index ed1b304d..385a1a16 100644 --- a/0034-Missing-parts-of-previous-commit.patch +++ b/0034-Missing-parts-of-previous-commit.patch @@ -1,7 +1,7 @@ From c6eaa982d12e3cfc5465dda5ea372774188b6b81 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 09:02:15 +0200 -Subject: [PATCH 034/246] Missing parts of previous commit +Subject: [PATCH 034/249] Missing parts of previous commit --- grub-core/Makefile.core.def | 2 ++ diff --git a/0035-coreboot-Changed-cbmemc-to-support-updated-console-f.patch b/0035-coreboot-Changed-cbmemc-to-support-updated-console-f.patch index eae46b87..b67248be 100644 --- a/0035-coreboot-Changed-cbmemc-to-support-updated-console-f.patch +++ b/0035-coreboot-Changed-cbmemc-to-support-updated-console-f.patch @@ -1,7 +1,7 @@ From 70b555a52a065b2beb91e6fc97a6b358c931b303 Mon Sep 17 00:00:00 2001 From: Julius Werner Date: Tue, 9 May 2017 09:03:02 +0200 -Subject: [PATCH 035/246] coreboot: Changed cbmemc to support updated console +Subject: [PATCH 035/249] coreboot: Changed cbmemc to support updated console format from coreboot. --- diff --git a/0036-at_keyboard-Fix-falco-chromebook-case.patch b/0036-at_keyboard-Fix-falco-chromebook-case.patch index 5a60578f..98a3d662 100644 --- a/0036-at_keyboard-Fix-falco-chromebook-case.patch +++ b/0036-at_keyboard-Fix-falco-chromebook-case.patch @@ -1,7 +1,7 @@ From c4b8bec5fee4e30a165fd14a188cf3ab8eccd095 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 14:27:52 +0200 -Subject: [PATCH 036/246] at_keyboard: Fix falco chromebook case. +Subject: [PATCH 036/249] at_keyboard: Fix falco chromebook case. EC is slow, so we need few delays for it to toggle the bits correctly. diff --git a/0037-sparc64-Close-cdboot-ihandle.patch b/0037-sparc64-Close-cdboot-ihandle.patch index 03251565..cdb9e6d3 100644 --- a/0037-sparc64-Close-cdboot-ihandle.patch +++ b/0037-sparc64-Close-cdboot-ihandle.patch @@ -1,7 +1,7 @@ From bd4e40aadded7093908d786d03b4acf60b7b1707 Mon Sep 17 00:00:00 2001 From: Eric Snowberg Date: Thu, 11 May 2017 18:42:23 -0700 -Subject: [PATCH 037/246] sparc64: Close cdboot ihandle +Subject: [PATCH 037/249] sparc64: Close cdboot ihandle The ihandle is left open with a cd-core image. This will cause a delay booting grub from a virtual cdrom in a LDOM. It will also cause problems diff --git a/0038-arm64-xen_boot-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch b/0038-arm64-xen_boot-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch index 161342db..614db533 100644 --- a/0038-arm64-xen_boot-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch +++ b/0038-arm64-xen_boot-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch @@ -1,7 +1,7 @@ From ae5817f1dcbf0b99f7a849f56afe442165317840 Mon Sep 17 00:00:00 2001 From: Julien Grall Date: Fri, 19 Feb 2016 16:28:52 +0000 -Subject: [PATCH 038/246] arm64/xen_boot: Fix Xen boot using GRUB2 on AARCH64 +Subject: [PATCH 038/249] arm64/xen_boot: Fix Xen boot using GRUB2 on AARCH64 Xen is currently crashing because of malformed compatible property for the boot module. This is because the property string is not diff --git a/0039-arm64-Add-nounzip-option-support-in-xen_module-comma.patch b/0039-arm64-Add-nounzip-option-support-in-xen_module-comma.patch index 55352051..d7dec30a 100644 --- a/0039-arm64-Add-nounzip-option-support-in-xen_module-comma.patch +++ b/0039-arm64-Add-nounzip-option-support-in-xen_module-comma.patch @@ -1,7 +1,7 @@ From 8eed7be8a61c295df700e918744a984162378ca9 Mon Sep 17 00:00:00 2001 From: Fu Wei Date: Sun, 14 May 2017 15:43:45 +0800 -Subject: [PATCH 039/246] arm64: Add "--nounzip" option support in xen_module +Subject: [PATCH 039/249] arm64: Add "--nounzip" option support in xen_module command This patch adds "--nounzip" option support in order to diff --git a/0040-util-grub.d-20_linux_xen.in-Add-xen_boot-command-sup.patch b/0040-util-grub.d-20_linux_xen.in-Add-xen_boot-command-sup.patch index dab3b783..a615ea09 100644 --- a/0040-util-grub.d-20_linux_xen.in-Add-xen_boot-command-sup.patch +++ b/0040-util-grub.d-20_linux_xen.in-Add-xen_boot-command-sup.patch @@ -1,7 +1,7 @@ From d33045ce7ffcb7c1e4a60c14d5ca64b36e3c5abe Mon Sep 17 00:00:00 2001 From: Fu Wei Date: Sun, 14 May 2017 15:43:46 +0800 -Subject: [PATCH 040/246] util/grub.d/20_linux_xen.in: Add xen_boot command +Subject: [PATCH 040/249] util/grub.d/20_linux_xen.in: Add xen_boot command support for aarch64 This patch adds the support of xen_boot command for aarch64: diff --git a/0041-arm64-Update-the-introduction-of-Xen-boot-commands-i.patch b/0041-arm64-Update-the-introduction-of-Xen-boot-commands-i.patch index 5b0429c0..bcddea1f 100644 --- a/0041-arm64-Update-the-introduction-of-Xen-boot-commands-i.patch +++ b/0041-arm64-Update-the-introduction-of-Xen-boot-commands-i.patch @@ -1,7 +1,7 @@ From 26c2f306fd425d2c0348023b8dcb7eb40a01851a Mon Sep 17 00:00:00 2001 From: Fu Wei Date: Sun, 14 May 2017 15:43:47 +0800 -Subject: [PATCH 041/246] arm64: Update the introduction of Xen boot commands +Subject: [PATCH 041/249] arm64: Update the introduction of Xen boot commands in docs/grub.texi delete: xen_linux, xen_initrd, xen_xsm diff --git a/0042-sparc64-Don-t-use-devspec-to-determine-the-OBP-path.patch b/0042-sparc64-Don-t-use-devspec-to-determine-the-OBP-path.patch index 4d90a92a..0b86bc29 100644 --- a/0042-sparc64-Don-t-use-devspec-to-determine-the-OBP-path.patch +++ b/0042-sparc64-Don-t-use-devspec-to-determine-the-OBP-path.patch @@ -1,7 +1,7 @@ From f8679cedff703b437171f4708d46adbfcff80a65 Mon Sep 17 00:00:00 2001 From: Eric Snowberg Date: Thu, 18 May 2017 17:10:22 -0600 -Subject: [PATCH 042/246] sparc64: Don't use devspec to determine the OBP path +Subject: [PATCH 042/249] sparc64: Don't use devspec to determine the OBP path Don't use devspec to determine the OBP path on SPARC hardware. Within all versions of Linux on SPARC, the devspec returns one of three values: diff --git a/0043-Allow-GRUB-to-mount-ext2-3-4-filesystems-that-have-t.patch b/0043-Allow-GRUB-to-mount-ext2-3-4-filesystems-that-have-t.patch index 87f1cf62..da4af6aa 100644 --- a/0043-Allow-GRUB-to-mount-ext2-3-4-filesystems-that-have-t.patch +++ b/0043-Allow-GRUB-to-mount-ext2-3-4-filesystems-that-have-t.patch @@ -1,7 +1,7 @@ From 734668238fcc0ef691a080839e04f33854fa133a Mon Sep 17 00:00:00 2001 From: Eric Biggers Date: Thu, 29 Jun 2017 13:27:49 +0000 -Subject: [PATCH 043/246] Allow GRUB to mount ext2/3/4 filesystems that have +Subject: [PATCH 043/249] Allow GRUB to mount ext2/3/4 filesystems that have the encryption feature. On such a filesystem, inodes may have EXT4_ENCRYPT_FLAG set. diff --git a/0044-ehci-Fix-compilation-for-amd64.patch b/0044-ehci-Fix-compilation-for-amd64.patch index 16c5db40..8cf8d982 100644 --- a/0044-ehci-Fix-compilation-for-amd64.patch +++ b/0044-ehci-Fix-compilation-for-amd64.patch @@ -1,7 +1,7 @@ From edb37fb30bbc8a3b6bec67911c7200e4eb071127 Mon Sep 17 00:00:00 2001 From: phcoder Date: Sun, 9 Jul 2017 20:58:31 +0200 -Subject: [PATCH 044/246] ehci: Fix compilation for amd64 +Subject: [PATCH 044/249] ehci: Fix compilation for amd64 --- grub-core/bus/usb/ehci.c | 8 ++++---- diff --git a/0045-cache-Fix-compilation-for-ppc-sparc-and-arm64.patch b/0045-cache-Fix-compilation-for-ppc-sparc-and-arm64.patch index 8048428f..bd818aea 100644 --- a/0045-cache-Fix-compilation-for-ppc-sparc-and-arm64.patch +++ b/0045-cache-Fix-compilation-for-ppc-sparc-and-arm64.patch @@ -1,7 +1,7 @@ From d8901e3ba115d705c9c08ecedd201aca8b4867b8 Mon Sep 17 00:00:00 2001 From: phcoder Date: Sun, 9 Jul 2017 20:59:15 +0200 -Subject: [PATCH 045/246] cache: Fix compilation for ppc, sparc and arm64 +Subject: [PATCH 045/249] cache: Fix compilation for ppc, sparc and arm64 --- include/grub/cache.h | 4 +++- diff --git a/0046-ehci-Fix-compilation-on-i386.patch b/0046-ehci-Fix-compilation-on-i386.patch index 5a16cf5e..f3aee743 100644 --- a/0046-ehci-Fix-compilation-on-i386.patch +++ b/0046-ehci-Fix-compilation-on-i386.patch @@ -1,7 +1,7 @@ From 284afab081ef7ed7db2c59151853aa3c92d988f2 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Sun, 9 Jul 2017 21:31:19 +0200 -Subject: [PATCH 046/246] ehci: Fix compilation on i386 +Subject: [PATCH 046/249] ehci: Fix compilation on i386 --- grub-core/bus/usb/ehci.c | 4 ++-- diff --git a/0047-crypto-Fix-use-after-free.patch b/0047-crypto-Fix-use-after-free.patch index 3e8f2766..65e7e035 100644 --- a/0047-crypto-Fix-use-after-free.patch +++ b/0047-crypto-Fix-use-after-free.patch @@ -1,7 +1,7 @@ From a0fe0c26aa8a1c0ad66d9527611bd726b849c623 Mon Sep 17 00:00:00 2001 From: AppChecker Date: Sun, 9 Jul 2017 21:57:35 +0200 -Subject: [PATCH 047/246] crypto: Fix use after free. +Subject: [PATCH 047/249] crypto: Fix use after free. Reported by: AppChecker Transformed to patch by: Satish Govindarajan diff --git a/0048-arm-efi-Fix-compilation.patch b/0048-arm-efi-Fix-compilation.patch index c7f26531..0d041ef0 100644 --- a/0048-arm-efi-Fix-compilation.patch +++ b/0048-arm-efi-Fix-compilation.patch @@ -1,7 +1,7 @@ From cb8b7e4e36bf32dccbbba8252aa44ad3ada4fbc1 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Sun, 9 Jul 2017 21:48:37 +0000 -Subject: [PATCH 048/246] arm-efi: Fix compilation +Subject: [PATCH 048/249] arm-efi: Fix compilation --- grub-core/loader/arm/linux.c | 8 ++++---- diff --git a/0049-fdt-silence-clang-warning.patch b/0049-fdt-silence-clang-warning.patch index 909b2dde..fec88b0a 100644 --- a/0049-fdt-silence-clang-warning.patch +++ b/0049-fdt-silence-clang-warning.patch @@ -1,7 +1,7 @@ From 68d54b55f49249c5e0517bf189f0f3df7ee6a36f Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 10 Jul 2017 01:34:22 +0000 -Subject: [PATCH 049/246] fdt: silence clang warning. +Subject: [PATCH 049/249] fdt: silence clang warning. --- grub-core/lib/fdt.c | 3 ++- diff --git a/0050-Fix-a-segfault-in-lsefi.patch b/0050-Fix-a-segfault-in-lsefi.patch index a4fb8b35..d9a7b1c3 100644 --- a/0050-Fix-a-segfault-in-lsefi.patch +++ b/0050-Fix-a-segfault-in-lsefi.patch @@ -1,7 +1,7 @@ From e8ab5a1a9e2889eb59d1fa494ba441a53698dcd2 Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Wed, 19 Jul 2017 15:47:41 -0400 -Subject: [PATCH 050/246] Fix a segfault in lsefi +Subject: [PATCH 050/249] Fix a segfault in lsefi when protocols_per_handle returns error, we can't use the pointers we passed to it, and that includes trusting num_protocols. diff --git a/0051-zfs-remove-size_t-typedef-and-use-grub_size_t-instea.patch b/0051-zfs-remove-size_t-typedef-and-use-grub_size_t-instea.patch index 0142de2c..c598f4a9 100644 --- a/0051-zfs-remove-size_t-typedef-and-use-grub_size_t-instea.patch +++ b/0051-zfs-remove-size_t-typedef-and-use-grub_size_t-instea.patch @@ -1,7 +1,7 @@ From fa42786264cef98c56e972b3bb6b8448000e1c70 Mon Sep 17 00:00:00 2001 From: Pete Batard Date: Thu, 3 Aug 2017 15:46:15 +0100 -Subject: [PATCH 051/246] zfs: remove size_t typedef and use grub_size_t +Subject: [PATCH 051/249] zfs: remove size_t typedef and use grub_size_t instead * Prevents some toolchains from issuing a warning on size_t redef. diff --git a/0052-udf-Fix-reading-label-lvd.ident-is-dstring.patch b/0052-udf-Fix-reading-label-lvd.ident-is-dstring.patch index 653767d3..27e3cb01 100644 --- a/0052-udf-Fix-reading-label-lvd.ident-is-dstring.patch +++ b/0052-udf-Fix-reading-label-lvd.ident-is-dstring.patch @@ -1,7 +1,7 @@ From 76188809d5ca40c5285b0ab202b5edea7be3f04d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pali=20Roh=C3=A1r?= Date: Thu, 22 Jun 2017 14:33:17 +0200 -Subject: [PATCH 052/246] udf: Fix reading label, lvd.ident is dstring +Subject: [PATCH 052/249] udf: Fix reading label, lvd.ident is dstring UDF dstring has stored length in the last byte of buffer. Therefore last byte is not part of recorded characters. And empty string in dstring is diff --git a/0053-grub-core-fs-udf.c-Add-support-for-UUID.patch b/0053-grub-core-fs-udf.c-Add-support-for-UUID.patch index 80820b81..2ca612d0 100644 --- a/0053-grub-core-fs-udf.c-Add-support-for-UUID.patch +++ b/0053-grub-core-fs-udf.c-Add-support-for-UUID.patch @@ -1,7 +1,7 @@ From 435fa75e01ef40917239c7f775e505e86f70d202 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pali=20Roh=C3=A1r?= Date: Thu, 22 Jun 2017 14:42:16 +0200 -Subject: [PATCH 053/246] * grub-core/fs/udf.c: Add support for UUID +Subject: [PATCH 053/249] * grub-core/fs/udf.c: Add support for UUID Use same algorithm as in libblkid from util-linux v2.30. diff --git a/0054-mkrescue-Check-xorriso-presence-before-doing-anythin.patch b/0054-mkrescue-Check-xorriso-presence-before-doing-anythin.patch index 8be54781..a3363d77 100644 --- a/0054-mkrescue-Check-xorriso-presence-before-doing-anythin.patch +++ b/0054-mkrescue-Check-xorriso-presence-before-doing-anythin.patch @@ -1,7 +1,7 @@ From 9e962fd3c42081e2eef1f99a0eaab38fd04d2620 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 7 Aug 2017 18:05:17 +0200 -Subject: [PATCH 054/246] mkrescue: Check xorriso presence before doing +Subject: [PATCH 054/249] mkrescue: Check xorriso presence before doing anything else. mkrescue can't do anything useful without xorriso, so abort early if it's diff --git a/0055-Fail-if-xorriso-failed.patch b/0055-Fail-if-xorriso-failed.patch index 0201f9a6..b8bb2f06 100644 --- a/0055-Fail-if-xorriso-failed.patch +++ b/0055-Fail-if-xorriso-failed.patch @@ -1,7 +1,7 @@ From e66dc5d71ebfc9763420a76c274e6980d54641c3 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 7 Aug 2017 18:08:39 +0200 -Subject: [PATCH 055/246] Fail if xorriso failed. +Subject: [PATCH 055/249] Fail if xorriso failed. If xorriso failed most likely we didn't generate a meaningful image. --- diff --git a/0056-efi-refactor-grub_efi_allocate_pages.patch b/0056-efi-refactor-grub_efi_allocate_pages.patch index a2e392d0..6383ab53 100644 --- a/0056-efi-refactor-grub_efi_allocate_pages.patch +++ b/0056-efi-refactor-grub_efi_allocate_pages.patch @@ -1,7 +1,7 @@ From dd5fde2df83c5c03b7ba04d2cc5b7be96de8da7b Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:23 +0100 -Subject: [PATCH 056/246] efi: refactor grub_efi_allocate_pages +Subject: [PATCH 056/249] efi: refactor grub_efi_allocate_pages Expose a new function, grub_efi_allocate_pages_real(), making it possible to specify allocation type and memory type as supported by the UEFI diff --git a/0057-Remove-grub_efi_allocate_pages.patch b/0057-Remove-grub_efi_allocate_pages.patch index 836afe73..552b3d8a 100644 --- a/0057-Remove-grub_efi_allocate_pages.patch +++ b/0057-Remove-grub_efi_allocate_pages.patch @@ -1,7 +1,7 @@ From 4bc909bf89f5b4ff86c9e4e609d4fe0c11a66b0c Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 7 Aug 2017 18:33:29 +0200 -Subject: [PATCH 057/246] Remove grub_efi_allocate_pages. +Subject: [PATCH 057/249] Remove grub_efi_allocate_pages. grub_efi_allocate_pages Essentially does 2 unrelated things: * Allocate at fixed address. diff --git a/0058-efi-move-fdt-helper-library.patch b/0058-efi-move-fdt-helper-library.patch index b91cb2e8..f30a5a15 100644 --- a/0058-efi-move-fdt-helper-library.patch +++ b/0058-efi-move-fdt-helper-library.patch @@ -1,7 +1,7 @@ From 8c9465fac901caac6802d6872a1374518b001517 Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:24 +0100 -Subject: [PATCH 058/246] efi: move fdt helper library +Subject: [PATCH 058/249] efi: move fdt helper library There is nothing ARM64 (or even ARM) specific about the efi fdt helper library, which is used for locating or overriding a firmware-provided diff --git a/0059-efi-Add-GRUB_PE32_MAGIC-definition.patch b/0059-efi-Add-GRUB_PE32_MAGIC-definition.patch index f796b6ae..997dc2f6 100644 --- a/0059-efi-Add-GRUB_PE32_MAGIC-definition.patch +++ b/0059-efi-Add-GRUB_PE32_MAGIC-definition.patch @@ -1,7 +1,7 @@ From c5841ba7f0d14c193f20854e7e55b4f7ce9207d5 Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:25 +0100 -Subject: [PATCH 059/246] efi: Add GRUB_PE32_MAGIC definition +Subject: [PATCH 059/249] efi: Add GRUB_PE32_MAGIC definition Add a generic GRUB_PE32_MAGIC definition for the PE 'MZ' tag and delete the existing one in arm64/linux.h. diff --git a/0060-arm64-linux-loader-improve-type-portability.patch b/0060-arm64-linux-loader-improve-type-portability.patch index 027e9596..d5f12c36 100644 --- a/0060-arm64-linux-loader-improve-type-portability.patch +++ b/0060-arm64-linux-loader-improve-type-portability.patch @@ -1,7 +1,7 @@ From 91212e0aa07e704a61e4540c18a27f149f5e51c3 Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:26 +0100 -Subject: [PATCH 060/246] arm64 linux loader: improve type portability +Subject: [PATCH 060/249] arm64 linux loader: improve type portability In preparation for turning this into a common loader for 32-bit and 64-bit platforms, ensure the code will compile cleanly for either. diff --git a/0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch b/0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch index f4e0f714..92f9c803 100644 --- a/0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch +++ b/0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch @@ -1,7 +1,7 @@ From f826330683675f0deb55b58fd229afd7d65fb053 Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:32 +0100 -Subject: [PATCH 061/246] efi: change heap allocation type to +Subject: [PATCH 061/249] efi: change heap allocation type to GRUB_EFI_LOADER_CODE With upcoming changes to EDK2, allocations of type EFI_LOADER_DATA may diff --git a/0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch b/0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch index c46db81e..1fffeeca 100644 --- a/0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch +++ b/0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch @@ -1,7 +1,7 @@ From bdd89d239cd9b4089630bfb5ec862aab8086dca2 Mon Sep 17 00:00:00 2001 From: Pete Batard Date: Mon, 7 Aug 2017 16:20:30 +0100 -Subject: [PATCH 062/246] core: use GRUB_TERM_ definitions when handling term +Subject: [PATCH 062/249] core: use GRUB_TERM_ definitions when handling term characters * Also use hex value for GRUB_TERM_ESC as '\e' is not in the C standard and is not understood by some compilers diff --git a/0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch b/0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch index e082cbd3..59b5a7dd 100644 --- a/0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch +++ b/0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch @@ -1,7 +1,7 @@ From 1deebd85ef87cc581e995ce0a51dc0802ac9c367 Mon Sep 17 00:00:00 2001 From: Pete Batard Date: Mon, 7 Aug 2017 16:23:12 +0100 -Subject: [PATCH 063/246] io: add a GRUB_GZ prefix to gzio specific defines +Subject: [PATCH 063/249] io: add a GRUB_GZ prefix to gzio specific defines * This is done to avoid a conflict with a PACKED define in the EDK2 --- diff --git a/0064-re-write-.gitignore.patch b/0064-re-write-.gitignore.patch index 026aa28c..527aa012 100644 --- a/0064-re-write-.gitignore.patch +++ b/0064-re-write-.gitignore.patch @@ -1,7 +1,7 @@ From 38bfcd3054c28aa40234840c12d900f1d18a217d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 8 Aug 2017 12:48:04 -0400 -Subject: [PATCH 064/246] re-write .gitignore +Subject: [PATCH 064/249] re-write .gitignore --- .gitignore | 352 ++++++++++++-------------------------- diff --git a/0065-IBM-client-architecture-CAS-reboot-support.patch b/0065-IBM-client-architecture-CAS-reboot-support.patch index 14eb8632..141049a0 100644 --- a/0065-IBM-client-architecture-CAS-reboot-support.patch +++ b/0065-IBM-client-architecture-CAS-reboot-support.patch @@ -1,7 +1,7 @@ From bf1fd830091fff49e26f39027e0db8fd4b688624 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Thu, 20 Sep 2012 18:07:39 -0300 -Subject: [PATCH 065/246] IBM client architecture (CAS) reboot support +Subject: [PATCH 065/249] IBM client architecture (CAS) reboot support This is an implementation of IBM client architecture (CAS) reboot for GRUB. diff --git a/0066-for-ppc-reset-console-display-attr-when-clear-screen.patch b/0066-for-ppc-reset-console-display-attr-when-clear-screen.patch index 117376d1..b90ad40f 100644 --- a/0066-for-ppc-reset-console-display-attr-when-clear-screen.patch +++ b/0066-for-ppc-reset-console-display-attr-when-clear-screen.patch @@ -1,7 +1,7 @@ From 8b30fab3c07a9fc8549e404c411b747b960c57b2 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Wed, 24 Apr 2013 10:51:48 -0300 -Subject: [PATCH 066/246] for ppc, reset console display attr when clear screen +Subject: [PATCH 066/249] for ppc, reset console display attr when clear screen v2: Also use \x0c instead of a literal ^L to make future patches less awkward. diff --git a/0067-Disable-GRUB-video-support-for-IBM-power-machines.patch b/0067-Disable-GRUB-video-support-for-IBM-power-machines.patch index 9d5af531..3714d3c2 100644 --- a/0067-Disable-GRUB-video-support-for-IBM-power-machines.patch +++ b/0067-Disable-GRUB-video-support-for-IBM-power-machines.patch @@ -1,7 +1,7 @@ From 45322cbc9402639a431fc0f33bd76e387e6f02bf Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 11 Jun 2013 15:14:05 -0300 -Subject: [PATCH 067/246] Disable GRUB video support for IBM power machines +Subject: [PATCH 067/249] Disable GRUB video support for IBM power machines Should fix the problem in bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=973205 diff --git a/0068-Honor-a-symlink-when-generating-configuration-by-gru.patch b/0068-Honor-a-symlink-when-generating-configuration-by-gru.patch index b26eb859..cba38c32 100644 --- a/0068-Honor-a-symlink-when-generating-configuration-by-gru.patch +++ b/0068-Honor-a-symlink-when-generating-configuration-by-gru.patch @@ -1,7 +1,7 @@ From c29e260c9f41f4f802fa852b6c46fb2e5d912cb6 Mon Sep 17 00:00:00 2001 From: Marcel Kolaja Date: Tue, 21 Jan 2014 10:57:08 -0500 -Subject: [PATCH 068/246] Honor a symlink when generating configuration by +Subject: [PATCH 068/249] Honor a symlink when generating configuration by grub2-mkconfig Honor a symlink when generating configuration by grub2-mkconfig, so that diff --git a/0069-Move-bash-completion-script-922997.patch b/0069-Move-bash-completion-script-922997.patch index bbd6412a..0e21d7ab 100644 --- a/0069-Move-bash-completion-script-922997.patch +++ b/0069-Move-bash-completion-script-922997.patch @@ -1,7 +1,7 @@ From 8eaf2f497a6bcffc5554509533940ac2b764b981 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 3 Apr 2013 14:35:34 -0400 -Subject: [PATCH 069/246] Move bash completion script (#922997) +Subject: [PATCH 069/249] Move bash completion script (#922997) Apparently these go in a new place now. --- diff --git a/0070-Update-to-minilzo-2.08.patch b/0070-Update-to-minilzo-2.08.patch index 7416ac40..c4df8f33 100644 --- a/0070-Update-to-minilzo-2.08.patch +++ b/0070-Update-to-minilzo-2.08.patch @@ -1,7 +1,7 @@ From 9a1e99c5628bafa9e3970a5317b721da704bec6a Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Dec 2014 15:36:09 -0500 -Subject: [PATCH 070/246] Update to minilzo-2.08 +Subject: [PATCH 070/249] Update to minilzo-2.08 This fixes CVE-2014-4607 - lzo: lzo1x_decompress_safe() integer overflow diff --git a/0071-Allow-fallback-to-include-entries-by-title-not-just-.patch b/0071-Allow-fallback-to-include-entries-by-title-not-just-.patch index 4e9ca556..1517b46b 100644 --- a/0071-Allow-fallback-to-include-entries-by-title-not-just-.patch +++ b/0071-Allow-fallback-to-include-entries-by-title-not-just-.patch @@ -1,7 +1,7 @@ From 27845fb323de35e9dcaad8c738eb1a2a2bc316f8 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 5 Sep 2014 10:07:04 -0400 -Subject: [PATCH 071/246] Allow "fallback" to include entries by title, not +Subject: [PATCH 071/249] Allow "fallback" to include entries by title, not just number. Resolves: rhbz#1026084 diff --git a/0072-Add-GRUB_DISABLE_UUID.patch b/0072-Add-GRUB_DISABLE_UUID.patch index 6f065466..8df184ec 100644 --- a/0072-Add-GRUB_DISABLE_UUID.patch +++ b/0072-Add-GRUB_DISABLE_UUID.patch @@ -1,7 +1,7 @@ From 7f7429e93fa791ac2c002beaafab9b9d9bd86b89 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Sep 2014 16:49:25 -0400 -Subject: [PATCH 072/246] Add GRUB_DISABLE_UUID. +Subject: [PATCH 072/249] Add GRUB_DISABLE_UUID. This will cause "search --fs-uuid --set=root ..." not to be generated by grub2-mkconfig, and instead simply attempt to use the grub device name diff --git a/0073-Make-exit-take-a-return-code.patch b/0073-Make-exit-take-a-return-code.patch index 55a78e27..82cbc4dd 100644 --- a/0073-Make-exit-take-a-return-code.patch +++ b/0073-Make-exit-take-a-return-code.patch @@ -1,7 +1,7 @@ From 384ccb1b44fc23514a59529f58f984dcc4a75cc9 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 26 Feb 2014 21:49:12 -0500 -Subject: [PATCH 073/246] Make "exit" take a return code. +Subject: [PATCH 073/249] Make "exit" take a return code. This adds "exit" with a return code. With this patch, any "exit" command /may/ include a return code, and on platforms that support diff --git a/0074-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch b/0074-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch index d98936da..b384eccd 100644 --- a/0074-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch +++ b/0074-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch @@ -1,7 +1,7 @@ From 939f3dfcfacde13bd7ebfe411c0dceee9e5ed0ae Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 22 Jul 2015 11:21:01 -0400 -Subject: [PATCH 074/246] Mark po/exclude.pot as binary so git won't try to +Subject: [PATCH 074/249] Mark po/exclude.pot as binary so git won't try to diff nonprintables. Signed-off-by: Peter Jones diff --git a/0075-Make-efi-machines-load-an-env-block-from-a-variable.patch b/0075-Make-efi-machines-load-an-env-block-from-a-variable.patch index a58b3eb0..332132eb 100644 --- a/0075-Make-efi-machines-load-an-env-block-from-a-variable.patch +++ b/0075-Make-efi-machines-load-an-env-block-from-a-variable.patch @@ -1,7 +1,7 @@ From 805220eb48a8cabcc83628d90aa40f3204b21a71 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 7 Dec 2015 14:20:49 -0500 -Subject: [PATCH 075/246] Make efi machines load an env block from a variable +Subject: [PATCH 075/249] Make efi machines load an env block from a variable Signed-off-by: Peter Jones --- diff --git a/0076-DHCP-client-ID-and-UUID-options-added.patch b/0076-DHCP-client-ID-and-UUID-options-added.patch index 9f832d58..5abe1bc1 100644 --- a/0076-DHCP-client-ID-and-UUID-options-added.patch +++ b/0076-DHCP-client-ID-and-UUID-options-added.patch @@ -1,7 +1,7 @@ From cefc164d655fb7709efbc37a317952ff3ec4aeb3 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 27 Nov 2012 17:18:53 -0200 -Subject: [PATCH 076/246] DHCP client ID and UUID options added. +Subject: [PATCH 076/249] DHCP client ID and UUID options added. --- grub-core/net/bootp.c | 87 ++++++++++++++++++++++++++++++++++++++++++++++----- diff --git a/0077-trim-arp-packets-with-abnormal-size.patch b/0077-trim-arp-packets-with-abnormal-size.patch index a7d4c5ec..78264779 100644 --- a/0077-trim-arp-packets-with-abnormal-size.patch +++ b/0077-trim-arp-packets-with-abnormal-size.patch @@ -1,7 +1,7 @@ From 571a6cce3b0d4c8abf11efc320e2de6ff9188d60 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Wed, 5 Feb 2014 09:42:42 -0200 -Subject: [PATCH 077/246] trim arp packets with abnormal size +Subject: [PATCH 077/249] trim arp packets with abnormal size GRUB uses arp request to create the arp response. If the incoming packet is foobared, GRUB needs to trim the arp response packet before sending it. diff --git a/0078-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch b/0078-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch index e827b82c..2a062ebc 100644 --- a/0078-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch +++ b/0078-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch @@ -1,7 +1,7 @@ From 6cd959a64f588e256f0ba17e31bf2720b9cdec88 Mon Sep 17 00:00:00 2001 From: Prarit Bhargava Date: Wed, 12 Mar 2014 10:58:16 -0400 -Subject: [PATCH 078/246] Fix bad test on GRUB_DISABLE_SUBMENU. +Subject: [PATCH 078/249] Fix bad test on GRUB_DISABLE_SUBMENU. The file /etc/grub.d/10_linux does diff --git a/0079-Add-support-for-UEFI-operating-systems-returned-by-o.patch b/0079-Add-support-for-UEFI-operating-systems-returned-by-o.patch index 5f42bc34..01bebb9a 100644 --- a/0079-Add-support-for-UEFI-operating-systems-returned-by-o.patch +++ b/0079-Add-support-for-UEFI-operating-systems-returned-by-o.patch @@ -1,7 +1,7 @@ From 0254265409f80b369c35fb474c7371feb6f9ae1d Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Wed, 12 Jun 2013 11:51:49 -0400 -Subject: [PATCH 079/246] Add support for UEFI operating systems returned by +Subject: [PATCH 079/249] Add support for UEFI operating systems returned by os-prober os-prober returns UEFI operating systems in the form: diff --git a/0080-Migrate-PPC-from-Yaboot-to-Grub2.patch b/0080-Migrate-PPC-from-Yaboot-to-Grub2.patch index f6407588..ecd7fec9 100644 --- a/0080-Migrate-PPC-from-Yaboot-to-Grub2.patch +++ b/0080-Migrate-PPC-from-Yaboot-to-Grub2.patch @@ -1,7 +1,7 @@ From f2b4c105e3657cc32ed0f7aefa713f161cdf64f1 Mon Sep 17 00:00:00 2001 From: Mark Hamzy Date: Wed, 28 Mar 2012 14:46:41 -0500 -Subject: [PATCH 080/246] Migrate PPC from Yaboot to Grub2 +Subject: [PATCH 080/249] Migrate PPC from Yaboot to Grub2 Add configuration support for serial terminal consoles. This will set the maximum screen size so that text is not overwritten. diff --git a/0081-Add-fw_path-variable-revised.patch b/0081-Add-fw_path-variable-revised.patch index f9920393..f9a2bfb8 100644 --- a/0081-Add-fw_path-variable-revised.patch +++ b/0081-Add-fw_path-variable-revised.patch @@ -1,7 +1,7 @@ From 7f021a05a5ed7c97432abbc1762f40e36a4915e3 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Wed, 19 Sep 2012 21:22:55 -0300 -Subject: [PATCH 081/246] Add fw_path variable (revised) +Subject: [PATCH 081/249] Add fw_path variable (revised) This patch makes grub look for its config file on efi where the app was found. It was originally written by Matthew Garrett, and adapted to fix the diff --git a/0082-Add-support-for-linuxefi.patch b/0082-Add-support-for-linuxefi.patch index df827b5e..9ce7bf82 100644 --- a/0082-Add-support-for-linuxefi.patch +++ b/0082-Add-support-for-linuxefi.patch @@ -1,7 +1,7 @@ From 778385965798ac2711f0d07d5cf521a6e999ca8b Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 10 Jul 2012 11:58:52 -0400 -Subject: [PATCH 082/246] Add support for linuxefi +Subject: [PATCH 082/249] Add support for linuxefi --- grub-core/Makefile.core.def | 8 + diff --git a/0083-Use-linuxefi-and-initrdefi-where-appropriate.patch b/0083-Use-linuxefi-and-initrdefi-where-appropriate.patch index f597370f..f439d68a 100644 --- a/0083-Use-linuxefi-and-initrdefi-where-appropriate.patch +++ b/0083-Use-linuxefi-and-initrdefi-where-appropriate.patch @@ -1,7 +1,7 @@ From 793d4270384ef3373bc0b3c956cab8a8cdb75bcf Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 16 Jul 2012 18:57:11 -0400 -Subject: [PATCH 083/246] Use "linuxefi" and "initrdefi" where appropriate. +Subject: [PATCH 083/249] Use "linuxefi" and "initrdefi" where appropriate. --- util/grub.d/10_linux.in | 18 ++++++++++++++++-- diff --git a/0084-Don-t-allow-insmod-when-secure-boot-is-enabled.patch b/0084-Don-t-allow-insmod-when-secure-boot-is-enabled.patch index c7f8a2a2..ffa2a414 100644 --- a/0084-Don-t-allow-insmod-when-secure-boot-is-enabled.patch +++ b/0084-Don-t-allow-insmod-when-secure-boot-is-enabled.patch @@ -1,7 +1,7 @@ From eb8fd62e887e624f5c6e7c2ee8512981e8b5be97 Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Tue, 23 Oct 2012 10:40:49 -0400 -Subject: [PATCH 084/246] Don't allow insmod when secure boot is enabled. +Subject: [PATCH 084/249] Don't allow insmod when secure boot is enabled. Hi, diff --git a/0085-Pass-x-hex-hex-straight-through-unmolested.patch b/0085-Pass-x-hex-hex-straight-through-unmolested.patch index a29bf9c2..af0cf11e 100644 --- a/0085-Pass-x-hex-hex-straight-through-unmolested.patch +++ b/0085-Pass-x-hex-hex-straight-through-unmolested.patch @@ -1,7 +1,7 @@ From 0d54ed89090fc1bdcb75de474024b2b81dbf644f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 1 Oct 2012 13:24:37 -0400 -Subject: [PATCH 085/246] Pass "\x[[:hex:]][[:hex:]]" straight through +Subject: [PATCH 085/249] Pass "\x[[:hex:]][[:hex:]]" straight through unmolested. --- diff --git a/0086-Add-X-option-to-printf-functions.patch b/0086-Add-X-option-to-printf-functions.patch index 378f81ae..a6dc011b 100644 --- a/0086-Add-X-option-to-printf-functions.patch +++ b/0086-Add-X-option-to-printf-functions.patch @@ -1,7 +1,7 @@ From 6237b1688124d6a72250b296e758ef2d59fde26f Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 27 Nov 2012 16:58:39 -0200 -Subject: [PATCH 086/246] Add %X option to printf functions. +Subject: [PATCH 086/249] Add %X option to printf functions. --- grub-core/kern/misc.c | 7 +++++-- diff --git a/0087-Search-for-specific-config-file-for-netboot.patch b/0087-Search-for-specific-config-file-for-netboot.patch index 5cb7b86c..9df8cbb7 100644 --- a/0087-Search-for-specific-config-file-for-netboot.patch +++ b/0087-Search-for-specific-config-file-for-netboot.patch @@ -1,7 +1,7 @@ From 9491cbfdab951e38f096bd9705a76b382f54c9be Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 27 Nov 2012 17:22:07 -0200 -Subject: [PATCH 087/246] Search for specific config file for netboot +Subject: [PATCH 087/249] Search for specific config file for netboot This patch implements a search for a specific configuration when the config file is on a remoteserver. It uses the following order: diff --git a/0088-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch b/0088-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch index 1c06aa63..9ef9f52b 100644 --- a/0088-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch +++ b/0088-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch @@ -1,7 +1,7 @@ From 5fcdebdc36cc84c772754b7f5bdb87aed2b42853 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Tue, 22 Jan 2013 06:31:38 +0100 -Subject: [PATCH 088/246] blscfg: add blscfg module to parse Boot Loader +Subject: [PATCH 088/249] blscfg: add blscfg module to parse Boot Loader Specification snippets http://www.freedesktop.org/wiki/Specifications/BootLoaderSpec diff --git a/0089-Don-t-write-messages-to-the-screen.patch b/0089-Don-t-write-messages-to-the-screen.patch index 14b51555..0fa18008 100644 --- a/0089-Don-t-write-messages-to-the-screen.patch +++ b/0089-Don-t-write-messages-to-the-screen.patch @@ -1,7 +1,7 @@ From fc390be631e93744c6a3a2f42849c9edf2614a36 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 13:30:20 -0400 -Subject: [PATCH 089/246] Don't write messages to the screen +Subject: [PATCH 089/249] Don't write messages to the screen Writing messages to the screen before the menus or boot splash happens so quickly it looks like something is wrong and isn't diff --git a/0090-Don-t-print-GNU-GRUB-header.patch b/0090-Don-t-print-GNU-GRUB-header.patch index 93787244..fc38aae2 100644 --- a/0090-Don-t-print-GNU-GRUB-header.patch +++ b/0090-Don-t-print-GNU-GRUB-header.patch @@ -1,7 +1,7 @@ From 806c26ae73bc86e305c39c955d86480fad8985df Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 13:53:48 -0400 -Subject: [PATCH 090/246] Don't print GNU GRUB header +Subject: [PATCH 090/249] Don't print GNU GRUB header No one cares. --- diff --git a/0091-Don-t-add-to-highlighted-row.patch b/0091-Don-t-add-to-highlighted-row.patch index 8e6c3189..44c78cbe 100644 --- a/0091-Don-t-add-to-highlighted-row.patch +++ b/0091-Don-t-add-to-highlighted-row.patch @@ -1,7 +1,7 @@ From 5ae2484f263365351a2891be6c056eeb96b3924b Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 17:49:45 -0400 -Subject: [PATCH 091/246] Don't add '*' to highlighted row +Subject: [PATCH 091/249] Don't add '*' to highlighted row It is already highlighted. --- diff --git a/0092-Message-string-cleanups.patch b/0092-Message-string-cleanups.patch index 4363b268..62f30511 100644 --- a/0092-Message-string-cleanups.patch +++ b/0092-Message-string-cleanups.patch @@ -1,7 +1,7 @@ From 622b238ecb927d331dc38083584a7323013b5f21 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 11:09:04 -0400 -Subject: [PATCH 092/246] Message string cleanups +Subject: [PATCH 092/249] Message string cleanups Make use of terminology consistent. Remove jargon. --- diff --git a/0093-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch b/0093-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch index 05e05139..38214147 100644 --- a/0093-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch +++ b/0093-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch @@ -1,7 +1,7 @@ From c7dac08ab344638afabf579e03bedfac729e1944 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:08:23 -0400 -Subject: [PATCH 093/246] Fix border spacing now that we aren't displaying it +Subject: [PATCH 093/249] Fix border spacing now that we aren't displaying it --- grub-core/normal/menu_text.c | 6 +++--- diff --git a/0094-Use-the-correct-indentation-for-the-term-help-text.patch b/0094-Use-the-correct-indentation-for-the-term-help-text.patch index 99f12531..915c464d 100644 --- a/0094-Use-the-correct-indentation-for-the-term-help-text.patch +++ b/0094-Use-the-correct-indentation-for-the-term-help-text.patch @@ -1,7 +1,7 @@ From 8a59d6c44d946eac70ecbb7a9418c5d6801add8b Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:08:49 -0400 -Subject: [PATCH 094/246] Use the correct indentation for the term help text +Subject: [PATCH 094/249] Use the correct indentation for the term help text That is consistent with the menu help text --- diff --git a/0095-Indent-menu-entries.patch b/0095-Indent-menu-entries.patch index bbe61ea1..acb8416a 100644 --- a/0095-Indent-menu-entries.patch +++ b/0095-Indent-menu-entries.patch @@ -1,7 +1,7 @@ From 018439ecfda2bc5049ccbfb0d6ab7fa047411a3b Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:30:55 -0400 -Subject: [PATCH 095/246] Indent menu entries +Subject: [PATCH 095/249] Indent menu entries --- grub-core/normal/menu_text.c | 3 ++- diff --git a/0096-Fix-margins.patch b/0096-Fix-margins.patch index ca96e07d..e797a8e8 100644 --- a/0096-Fix-margins.patch +++ b/0096-Fix-margins.patch @@ -1,7 +1,7 @@ From 33481aa0e7897465ffd386101d6f3eda6e3bbac0 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:59:36 -0400 -Subject: [PATCH 096/246] Fix margins +Subject: [PATCH 096/249] Fix margins --- grub-core/normal/menu_text.c | 8 +++----- diff --git a/0097-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch b/0097-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch index 1fc6d06f..24554fd1 100644 --- a/0097-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch +++ b/0097-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch @@ -1,7 +1,7 @@ From ea032bd4a6cb66929da61477b1759e136c975189 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 21 Jun 2013 14:44:08 -0400 -Subject: [PATCH 097/246] Use -2 instead of -1 for our right-hand margin, so +Subject: [PATCH 097/249] Use -2 instead of -1 for our right-hand margin, so linewrapping works (#976643). Signed-off-by: Peter Jones diff --git a/0098-Use-linux16-when-appropriate-880840.patch b/0098-Use-linux16-when-appropriate-880840.patch index 587086c3..8270258d 100644 --- a/0098-Use-linux16-when-appropriate-880840.patch +++ b/0098-Use-linux16-when-appropriate-880840.patch @@ -1,7 +1,7 @@ From 8e1957d59e7e72850cbac7e779ddf22ca23c250d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 28 Oct 2013 10:05:07 -0400 -Subject: [PATCH 098/246] Use linux16 when appropriate (#880840) +Subject: [PATCH 098/249] Use linux16 when appropriate (#880840) The kernel group really would prefer that we use the 16 bit entry point on x86 bios machines. diff --git a/0099-Enable-pager-by-default.-985860.patch b/0099-Enable-pager-by-default.-985860.patch index 62e85042..c3f4e97e 100644 --- a/0099-Enable-pager-by-default.-985860.patch +++ b/0099-Enable-pager-by-default.-985860.patch @@ -1,7 +1,7 @@ From 7466f51a0012ebdd8be07cfc0e63d50e0e79560d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 28 Oct 2013 10:09:27 -0400 -Subject: [PATCH 099/246] Enable pager by default. (#985860) +Subject: [PATCH 099/249] Enable pager by default. (#985860) Signed-off-by: Peter Jones --- diff --git a/0100-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch b/0100-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch index 90657a25..80174149 100644 --- a/0100-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch +++ b/0100-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch @@ -1,7 +1,7 @@ From 7a97d9621a145cbd04111970fea04c34433f900c Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 28 Oct 2013 10:13:27 -0400 -Subject: [PATCH 100/246] F10 doesn't work on serial, so don't tell the user to +Subject: [PATCH 100/249] F10 doesn't work on serial, so don't tell the user to hit it (#987443) Signed-off-by: Peter Jones diff --git a/0101-Don-t-say-GNU-Linux-in-generated-menus.patch b/0101-Don-t-say-GNU-Linux-in-generated-menus.patch index eb35f153..9376bd66 100644 --- a/0101-Don-t-say-GNU-Linux-in-generated-menus.patch +++ b/0101-Don-t-say-GNU-Linux-in-generated-menus.patch @@ -1,7 +1,7 @@ From 45877a77f50eecd0b7fd3ba1aec0d4398a3b6a20 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 14 Mar 2011 14:27:42 -0400 -Subject: [PATCH 101/246] Don't say "GNU/Linux" in generated menus. +Subject: [PATCH 101/249] Don't say "GNU/Linux" in generated menus. --- util/grub.d/10_linux.in | 4 ++-- diff --git a/0102-Don-t-draw-a-border-around-the-menu.patch b/0102-Don-t-draw-a-border-around-the-menu.patch index 2d95b44f..23352ed8 100644 --- a/0102-Don-t-draw-a-border-around-the-menu.patch +++ b/0102-Don-t-draw-a-border-around-the-menu.patch @@ -1,7 +1,7 @@ From c28a3053e96859000df5ff1d48c9a560d47c0470 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 16:47:33 -0400 -Subject: [PATCH 102/246] Don't draw a border around the menu +Subject: [PATCH 102/249] Don't draw a border around the menu It looks cleaner without it. --- diff --git a/0103-Use-the-standard-margin-for-the-timeout-string.patch b/0103-Use-the-standard-margin-for-the-timeout-string.patch index 629ae7b7..e55f9c31 100644 --- a/0103-Use-the-standard-margin-for-the-timeout-string.patch +++ b/0103-Use-the-standard-margin-for-the-timeout-string.patch @@ -1,7 +1,7 @@ From 93018f5d1727eb58dead129f150a36080c22530a Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 10:52:32 -0400 -Subject: [PATCH 103/246] Use the standard margin for the timeout string +Subject: [PATCH 103/249] Use the standard margin for the timeout string So that it aligns with the other messages --- diff --git a/0104-Add-.eh_frame-to-list-of-relocations-stripped.patch b/0104-Add-.eh_frame-to-list-of-relocations-stripped.patch index 07bb011b..f61755b5 100644 --- a/0104-Add-.eh_frame-to-list-of-relocations-stripped.patch +++ b/0104-Add-.eh_frame-to-list-of-relocations-stripped.patch @@ -1,7 +1,7 @@ From c626121f38adf6fcd39a5f69249c650b4b52c10d Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Mon, 13 Jan 2014 21:50:59 -0500 -Subject: [PATCH 104/246] Add .eh_frame to list of relocations stripped +Subject: [PATCH 104/249] Add .eh_frame to list of relocations stripped --- conf/Makefile.common | 2 +- diff --git a/0105-Make-10_linux-work-with-our-changes-for-linux16-and-.patch b/0105-Make-10_linux-work-with-our-changes-for-linux16-and-.patch index ae481dde..c8b442ec 100644 --- a/0105-Make-10_linux-work-with-our-changes-for-linux16-and-.patch +++ b/0105-Make-10_linux-work-with-our-changes-for-linux16-and-.patch @@ -1,7 +1,7 @@ From 59275c83e7a303c63379d37ba21aa39a3c3b7203 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jan 2014 13:12:23 -0500 -Subject: [PATCH 105/246] Make 10_linux work with our changes for linux16 and +Subject: [PATCH 105/249] Make 10_linux work with our changes for linux16 and linuxefi on aarch64 Signed-off-by: Peter Jones diff --git a/0106-Don-t-print-during-fdt-loading-method.patch b/0106-Don-t-print-during-fdt-loading-method.patch index 194f4309..e2c69043 100644 --- a/0106-Don-t-print-during-fdt-loading-method.patch +++ b/0106-Don-t-print-during-fdt-loading-method.patch @@ -1,7 +1,7 @@ From aedf2aceb354ab7bf28bbf70d0a4b505c0adcfdf Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jan 2014 16:15:46 -0500 -Subject: [PATCH 106/246] Don't print during fdt loading method. +Subject: [PATCH 106/249] Don't print during fdt loading method. Signed-off-by: Peter Jones --- diff --git a/0107-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch b/0107-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch index 740b77b4..62f4c342 100644 --- a/0107-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch +++ b/0107-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch @@ -1,7 +1,7 @@ From f2790b1f7c8efcd5589c8fcdaca51b548ab9825c Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Mon, 30 Jun 2014 14:16:46 -0400 -Subject: [PATCH 107/246] Don't munge raw spaces when we're doing our cmdline +Subject: [PATCH 107/249] Don't munge raw spaces when we're doing our cmdline escaping (#923374) Signed-off-by: Peter Jones diff --git a/0108-Don-t-require-a-password-to-boot-entries-generated-b.patch b/0108-Don-t-require-a-password-to-boot-entries-generated-b.patch index d63599f0..a5e65f7c 100644 --- a/0108-Don-t-require-a-password-to-boot-entries-generated-b.patch +++ b/0108-Don-t-require-a-password-to-boot-entries-generated-b.patch @@ -1,7 +1,7 @@ From 205a7844bea4d849dc24f24b5fc96f6040d5e2b9 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 11 Feb 2014 11:14:50 -0500 -Subject: [PATCH 108/246] Don't require a password to boot entries generated by +Subject: [PATCH 108/249] Don't require a password to boot entries generated by grub-mkconfig. When we set a password, we just want that to mean you can't /edit/ an entry. diff --git a/0109-Don-t-emit-Booting-.-message.patch b/0109-Don-t-emit-Booting-.-message.patch index b73a626a..985769b8 100644 --- a/0109-Don-t-emit-Booting-.-message.patch +++ b/0109-Don-t-emit-Booting-.-message.patch @@ -1,7 +1,7 @@ From c986c38f790881be0b9c5b0acd8d3b106412a5f1 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 18 Feb 2014 09:37:49 -0500 -Subject: [PATCH 109/246] Don't emit "Booting ..." message. +Subject: [PATCH 109/249] Don't emit "Booting ..." message. UI team still hates this stuff, so we're disabling it for RHEL 7. diff --git a/0110-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch b/0110-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch index 12ae990f..bc2d5824 100644 --- a/0110-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch +++ b/0110-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch @@ -1,7 +1,7 @@ From dcf3b9c590f00e33f773de68ac4ebd55ca4f6e90 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 4 Mar 2014 11:00:23 -0500 -Subject: [PATCH 110/246] Replace a lot of man pages with slightly nicer ones. +Subject: [PATCH 110/249] Replace a lot of man pages with slightly nicer ones. Replace a bunch of machine generated ones with ones that look nicer. --- diff --git a/0111-use-fw_path-prefix-when-fallback-searching-for-grub-.patch b/0111-use-fw_path-prefix-when-fallback-searching-for-grub-.patch index 33cde8d5..2c922263 100644 --- a/0111-use-fw_path-prefix-when-fallback-searching-for-grub-.patch +++ b/0111-use-fw_path-prefix-when-fallback-searching-for-grub-.patch @@ -1,7 +1,7 @@ From 24865a88781aef2a6a54433b5b383219108f54fa Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Wed, 19 Feb 2014 15:58:43 -0500 -Subject: [PATCH 111/246] use fw_path prefix when fallback searching for grub +Subject: [PATCH 111/249] use fw_path prefix when fallback searching for grub config When PXE booting via UEFI firmware, grub was searching for grub.cfg diff --git a/0112-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch b/0112-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch index 8ed3bd3e..65f6101f 100644 --- a/0112-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch +++ b/0112-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch @@ -1,7 +1,7 @@ From d4cd9aa8695ab9448da41f756553beb75bffee46 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 6 Mar 2014 11:51:33 -0500 -Subject: [PATCH 112/246] Try mac/guid/etc before grub.cfg on tftp config +Subject: [PATCH 112/249] Try mac/guid/etc before grub.cfg on tftp config files. Signed-off-by: Peter Jones diff --git a/0113-Fix-convert-function-to-support-NVMe-devices.patch b/0113-Fix-convert-function-to-support-NVMe-devices.patch index d3bd3a75..27722898 100644 --- a/0113-Fix-convert-function-to-support-NVMe-devices.patch +++ b/0113-Fix-convert-function-to-support-NVMe-devices.patch @@ -1,7 +1,7 @@ From 397f179c26aeddf3fe452c62aa404459889835fc Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 18 Feb 2014 11:34:00 -0500 -Subject: [PATCH 113/246] Fix convert function to support NVMe devices +Subject: [PATCH 113/249] Fix convert function to support NVMe devices This is adapted from the patch at https://bugzilla.redhat.com/show_bug.cgi?id=1019660 , which is against diff --git a/0114-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch b/0114-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch index 3701d035..85642b40 100644 --- a/0114-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch +++ b/0114-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch @@ -1,7 +1,7 @@ From 4291f418c3304f0f379467e87ce5892853cc16c7 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Mon, 10 Feb 2014 16:13:10 -0500 -Subject: [PATCH 114/246] Switch to use APM Mustang device tree, for hardware +Subject: [PATCH 114/249] Switch to use APM Mustang device tree, for hardware testing. Signed-off-by: David A. Marlin diff --git a/0115-Use-the-default-device-tree-from-the-grub-default-fi.patch b/0115-Use-the-default-device-tree-from-the-grub-default-fi.patch index 40251b18..f728625e 100644 --- a/0115-Use-the-default-device-tree-from-the-grub-default-fi.patch +++ b/0115-Use-the-default-device-tree-from-the-grub-default-fi.patch @@ -1,7 +1,7 @@ From 5111bdda0d0a21ab02f6c9aa441a32cd02c6bc3f Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Wed, 12 Feb 2014 14:54:04 -0500 -Subject: [PATCH 115/246] Use the default device tree from the grub default +Subject: [PATCH 115/249] Use the default device tree from the grub default file instead of hardcoding a value. diff --git a/0116-reopen-SNP-protocol-for-exclusive-use-by-grub.patch b/0116-reopen-SNP-protocol-for-exclusive-use-by-grub.patch index 373af823..61ff18b7 100644 --- a/0116-reopen-SNP-protocol-for-exclusive-use-by-grub.patch +++ b/0116-reopen-SNP-protocol-for-exclusive-use-by-grub.patch @@ -1,7 +1,7 @@ From 0ff5bf3deefdb17dbadb51a11acc50b96e2ed797 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Sat, 15 Feb 2014 15:10:22 -0500 -Subject: [PATCH 116/246] reopen SNP protocol for exclusive use by grub +Subject: [PATCH 116/249] reopen SNP protocol for exclusive use by grub --- grub-core/net/drivers/efi/efinet.c | 16 ++++++++++++++++ diff --git a/0117-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch b/0117-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch index 6443daf4..4bb49f80 100644 --- a/0117-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch +++ b/0117-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch @@ -1,7 +1,7 @@ From 58fba65b7e339d4c7279e4ca88937d9501275169 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 4 Mar 2016 15:13:59 -0500 -Subject: [PATCH 117/246] Revert "reopen SNP protocol for exclusive use by +Subject: [PATCH 117/249] Revert "reopen SNP protocol for exclusive use by grub" This reverts commit a3f2c756ce34c9666bddef35e3b3b85ccecdcffc , which is diff --git a/0118-Add-grub_util_readlink.patch b/0118-Add-grub_util_readlink.patch index 2f4f3a6a..7ff661ca 100644 --- a/0118-Add-grub_util_readlink.patch +++ b/0118-Add-grub_util_readlink.patch @@ -1,7 +1,7 @@ From 76baa996f73eea47f7bdc41461efeee204626e2d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 3 Sep 2014 10:01:03 -0400 -Subject: [PATCH 118/246] Add grub_util_readlink() +Subject: [PATCH 118/249] Add grub_util_readlink() Add grub_util_readlink(). This requires pulling in stat and readlink from gnulib, which pulls in stat and related headers, but after that the diff --git a/0119-Make-editenv-chase-symlinks-including-those-across-d.patch b/0119-Make-editenv-chase-symlinks-including-those-across-d.patch index 4d2f302d..9e9b0b20 100644 --- a/0119-Make-editenv-chase-symlinks-including-those-across-d.patch +++ b/0119-Make-editenv-chase-symlinks-including-those-across-d.patch @@ -1,7 +1,7 @@ From fd1a89c8bef603ec33937f122ae25013a724601a Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 3 Sep 2014 10:38:00 -0400 -Subject: [PATCH 119/246] Make editenv chase symlinks including those across +Subject: [PATCH 119/249] Make editenv chase symlinks including those across devices. This lets us make /boot/grub2/grubenv a symlink to diff --git a/0120-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch b/0120-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch index a7c23c2e..a3c9951c 100644 --- a/0120-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch +++ b/0120-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch @@ -1,7 +1,7 @@ From c8d93b9e27e9cbf51e91f6cc99abbcb7b68189ce Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Sep 2014 14:23:23 -0400 -Subject: [PATCH 120/246] Generate OS and CLASS in 10_linux from +Subject: [PATCH 120/249] Generate OS and CLASS in 10_linux from /etc/os-release This makes us use pretty names in the titles we generate in diff --git a/0121-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch b/0121-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch index 6ca080cb..f4b42cf7 100644 --- a/0121-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch +++ b/0121-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch @@ -1,7 +1,7 @@ From 974241c42b03f3ccb6a5d0eb453283e370da9848 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Sep 2014 15:52:08 -0400 -Subject: [PATCH 121/246] Minimize the sort ordering for .debug and -rescue- +Subject: [PATCH 121/249] Minimize the sort ordering for .debug and -rescue- kernels. Resolves: rhbz#1065360 diff --git a/0122-Load-arm-with-SB-enabled.patch b/0122-Load-arm-with-SB-enabled.patch index 55cb80bb..2e9c9adf 100644 --- a/0122-Load-arm-with-SB-enabled.patch +++ b/0122-Load-arm-with-SB-enabled.patch @@ -1,7 +1,7 @@ From edfc2b0952b1eacf95188e53167cc038e5ea0129 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 18 Sep 2014 11:26:14 -0400 -Subject: [PATCH 122/246] Load arm with SB enabled. +Subject: [PATCH 122/249] Load arm with SB enabled. Make sure we actually try to validate secure boot on this platform (even though we're not shipping it enabled by default.) diff --git a/0123-Try-prefix-if-fw_path-doesn-t-work.patch b/0123-Try-prefix-if-fw_path-doesn-t-work.patch index 363a45c8..dee047da 100644 --- a/0123-Try-prefix-if-fw_path-doesn-t-work.patch +++ b/0123-Try-prefix-if-fw_path-doesn-t-work.patch @@ -1,7 +1,7 @@ From 3846b040f1050f246e1e975ee88f22c687ae04bf Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 3 Oct 2014 11:08:03 -0400 -Subject: [PATCH 123/246] Try $prefix if $fw_path doesn't work. +Subject: [PATCH 123/249] Try $prefix if $fw_path doesn't work. Related: rhbz#1148652 diff --git a/0124-Update-info-with-grub.cfg-netboot-selection-order-11.patch b/0124-Update-info-with-grub.cfg-netboot-selection-order-11.patch index 8b740ddc..29eb2cd7 100644 --- a/0124-Update-info-with-grub.cfg-netboot-selection-order-11.patch +++ b/0124-Update-info-with-grub.cfg-netboot-selection-order-11.patch @@ -1,7 +1,7 @@ From d4b4184078610a3639fa1e0e463679c424496c3b Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Mon, 16 Mar 2015 16:34:51 -0400 -Subject: [PATCH 124/246] Update info with grub.cfg netboot selection order +Subject: [PATCH 124/249] Update info with grub.cfg netboot selection order (#1148650) Added documentation to the grub info page that specifies the order diff --git a/0125-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch b/0125-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch index 197da945..cef2c243 100644 --- a/0125-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch +++ b/0125-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch @@ -1,7 +1,7 @@ From ce125cafc1e94bf70f2a3dbb545960bd8dd23a2f Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Mon, 16 Mar 2015 14:14:19 -0400 -Subject: [PATCH 125/246] Use Distribution Package Sort for grub2-mkconfig +Subject: [PATCH 125/249] Use Distribution Package Sort for grub2-mkconfig (#1124074) Users reported that newly installed kernels on their systems installed diff --git a/0126-Handle-rssd-storage-devices.patch b/0126-Handle-rssd-storage-devices.patch index 39b2ff5a..7a952f3b 100644 --- a/0126-Handle-rssd-storage-devices.patch +++ b/0126-Handle-rssd-storage-devices.patch @@ -1,7 +1,7 @@ From 1956a2192ac0a8421ee83bf77fdf223f2be0bdfb Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 30 Jun 2015 15:50:41 -0400 -Subject: [PATCH 126/246] Handle rssd storage devices. +Subject: [PATCH 126/249] Handle rssd storage devices. Resolves: rhbz#1087962 diff --git a/0127-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch b/0127-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch index 1811028d..f7901b1e 100644 --- a/0127-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch +++ b/0127-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch @@ -1,7 +1,7 @@ From 5f89c77c7cff17c931f1ea52af0c39df8ab28ac9 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 27 Oct 2014 09:22:55 -0400 -Subject: [PATCH 127/246] Try to emit linux16/initrd16 and linuxefi/initrdefi +Subject: [PATCH 127/249] Try to emit linux16/initrd16 and linuxefi/initrdefi in 30-os_prober. Resolves: rhbz#1108296 diff --git a/0128-Make-grub2-mkconfig-construct-titles-that-look-like-.patch b/0128-Make-grub2-mkconfig-construct-titles-that-look-like-.patch index 297b2899..4bb78322 100644 --- a/0128-Make-grub2-mkconfig-construct-titles-that-look-like-.patch +++ b/0128-Make-grub2-mkconfig-construct-titles-that-look-like-.patch @@ -1,7 +1,7 @@ From c7ae420d095ccec20481c25b14773ab2fce658b5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 28 Apr 2015 11:15:03 -0400 -Subject: [PATCH 128/246] Make grub2-mkconfig construct titles that look like +Subject: [PATCH 128/249] Make grub2-mkconfig construct titles that look like the ones we want elsewhere. Resolves: rhbz#1215839 diff --git a/0129-Add-friendly-grub2-password-config-tool-985962.patch b/0129-Add-friendly-grub2-password-config-tool-985962.patch index 77b403c6..9dfeb17b 100644 --- a/0129-Add-friendly-grub2-password-config-tool-985962.patch +++ b/0129-Add-friendly-grub2-password-config-tool-985962.patch @@ -1,7 +1,7 @@ From 68f21f5ebebc23a6d8512631f2a1d474afcccd43 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Thu, 25 Jun 2015 11:13:11 -0400 -Subject: [PATCH 129/246] Add friendly grub2 password config tool (#985962) +Subject: [PATCH 129/249] Add friendly grub2 password config tool (#985962) Provided a tool for users to reset the grub2 root user password without having to alter the grub.cfg. The hashed password now diff --git a/0130-Make-grub2-mkconfig-construct-titles-that-look-like-.patch b/0130-Make-grub2-mkconfig-construct-titles-that-look-like-.patch index 94c46226..72d75b15 100644 --- a/0130-Make-grub2-mkconfig-construct-titles-that-look-like-.patch +++ b/0130-Make-grub2-mkconfig-construct-titles-that-look-like-.patch @@ -1,7 +1,7 @@ From 7a7644507e4d953ea8f8d1d7133622a72a2168f5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 28 Apr 2015 11:15:03 -0400 -Subject: [PATCH 130/246] Make grub2-mkconfig construct titles that look like +Subject: [PATCH 130/249] Make grub2-mkconfig construct titles that look like the ones we want elsewhere. Resolves: rhbz#1215839 diff --git a/0131-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch b/0131-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch index 75f9392f..7b74ea3f 100644 --- a/0131-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch +++ b/0131-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch @@ -1,7 +1,7 @@ From 6f892038567f1706fdde819f5f226ec4cacbea47 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 3 Aug 2015 11:46:42 -0400 -Subject: [PATCH 131/246] Try to make sure configure.ac and grub-rpm-sort play +Subject: [PATCH 131/249] Try to make sure configure.ac and grub-rpm-sort play nice. Apparently the test for whether to use grub-rpm-sort and also the diff --git a/0132-tcp-add-window-scaling-support.patch b/0132-tcp-add-window-scaling-support.patch index 37bec5e2..85e60388 100644 --- a/0132-tcp-add-window-scaling-support.patch +++ b/0132-tcp-add-window-scaling-support.patch @@ -1,7 +1,7 @@ From 71e31c279c07f9f51f2a482b70b40b7deed69a69 Mon Sep 17 00:00:00 2001 From: Josef Bacik Date: Wed, 12 Aug 2015 08:57:55 -0700 -Subject: [PATCH 132/246] tcp: add window scaling support +Subject: [PATCH 132/249] tcp: add window scaling support Sometimes we have to provision boxes across regions, such as California to Sweden. The http server has a 10 minute timeout, so if we can't get our 250mb diff --git a/0133-efinet-retransmit-if-our-device-is-busy.patch b/0133-efinet-retransmit-if-our-device-is-busy.patch index 44a35b71..97509b05 100644 --- a/0133-efinet-retransmit-if-our-device-is-busy.patch +++ b/0133-efinet-retransmit-if-our-device-is-busy.patch @@ -1,7 +1,7 @@ From d09f32622f6fc247dd88f731c34be10395785d8d Mon Sep 17 00:00:00 2001 From: Josef Bacik Date: Mon, 31 Aug 2015 13:34:35 -0400 -Subject: [PATCH 133/246] efinet: retransmit if our device is busy +Subject: [PATCH 133/249] efinet: retransmit if our device is busy When I fixed the txbuf handling I ripped out the retransmission code since it was flooding our network when we had the buggy behavior. Turns out this was too diff --git a/0134-Be-more-aggro-about-actually-using-the-configured-ne.patch b/0134-Be-more-aggro-about-actually-using-the-configured-ne.patch index 815f349a..c4204588 100644 --- a/0134-Be-more-aggro-about-actually-using-the-configured-ne.patch +++ b/0134-Be-more-aggro-about-actually-using-the-configured-ne.patch @@ -1,7 +1,7 @@ From 8ece44c2c8f88f531ac9a679f65a263e7b6d2dba Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 11 Sep 2015 17:30:49 -0400 -Subject: [PATCH 134/246] Be more aggro about actually using the *configured* +Subject: [PATCH 134/249] Be more aggro about actually using the *configured* network device. Right now we use any SNP device with the same mac+IP block, but when diff --git a/0135-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch b/0135-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch index cd52f2cd..e84278cd 100644 --- a/0135-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch +++ b/0135-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch @@ -1,7 +1,7 @@ From 82b9fdcbbc339c36842c625203fc2b1f22a86c9e Mon Sep 17 00:00:00 2001 From: RHEL Ninjas Date: Fri, 25 Sep 2015 16:24:23 +0900 -Subject: [PATCH 135/246] efinet: add filter for the first exclusive reopen of +Subject: [PATCH 135/249] efinet: add filter for the first exclusive reopen of SNP --- diff --git a/0136-Fix-security-issue-when-reading-username-and-passwor.patch b/0136-Fix-security-issue-when-reading-username-and-passwor.patch index 6982a242..4eab3255 100644 --- a/0136-Fix-security-issue-when-reading-username-and-passwor.patch +++ b/0136-Fix-security-issue-when-reading-username-and-passwor.patch @@ -1,7 +1,7 @@ From 9961e63642244617b697d93bbc49379e23b6839d Mon Sep 17 00:00:00 2001 From: Hector Marco-Gisbert Date: Fri, 13 Nov 2015 16:21:09 +0100 -Subject: [PATCH 136/246] Fix security issue when reading username and password +Subject: [PATCH 136/249] Fix security issue when reading username and password This patch fixes two integer underflows at: * grub-core/lib/crypto.c diff --git a/0137-Warn-if-grub-password-will-not-be-read-1290803.patch b/0137-Warn-if-grub-password-will-not-be-read-1290803.patch index 25037031..0daff24c 100644 --- a/0137-Warn-if-grub-password-will-not-be-read-1290803.patch +++ b/0137-Warn-if-grub-password-will-not-be-read-1290803.patch @@ -1,7 +1,7 @@ From 056a956aea898f9d3ee34ecad9660addc3f3108c Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Mon, 22 Feb 2016 15:30:05 -0500 -Subject: [PATCH 137/246] Warn if grub password will not be read (#1290803) +Subject: [PATCH 137/249] Warn if grub password will not be read (#1290803) It is possible for a system to have never run grub-mkconfig and add the section that reads the user.cfg file which contains a user set GRUB diff --git a/0138-Clean-up-grub-setpassword-documentation-1290799.patch b/0138-Clean-up-grub-setpassword-documentation-1290799.patch index b018b1ec..d1a7957d 100644 --- a/0138-Clean-up-grub-setpassword-documentation-1290799.patch +++ b/0138-Clean-up-grub-setpassword-documentation-1290799.patch @@ -1,7 +1,7 @@ From 92af2b24adb7371d8234c0b32ae716adf0b80d42 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Tue, 26 Jan 2016 10:28:35 -0500 -Subject: [PATCH 138/246] Clean up grub-setpassword documentation (#1290799) +Subject: [PATCH 138/249] Clean up grub-setpassword documentation (#1290799) The output for --help had some errors. Corrected those and polished the text to be a little easier to follow. Carried verbage over to man page diff --git a/0139-Fix-locale-issue-in-grub-setpassword-1294243.patch b/0139-Fix-locale-issue-in-grub-setpassword-1294243.patch index 41093f25..26f7a5b0 100644 --- a/0139-Fix-locale-issue-in-grub-setpassword-1294243.patch +++ b/0139-Fix-locale-issue-in-grub-setpassword-1294243.patch @@ -1,7 +1,7 @@ From 373adc50cf9f09015e40ffd1bf79ab9f291f4fc2 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Fri, 29 Jan 2016 16:56:11 -0500 -Subject: [PATCH 139/246] Fix locale issue in grub-setpassword (#1294243) +Subject: [PATCH 139/249] Fix locale issue in grub-setpassword (#1294243) A shell substitution was expecting non-translated output to grab the hashed password and put it in the user.cfg file. Modified code to force diff --git a/0140-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch b/0140-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch index 18af3761..c1b0cd86 100644 --- a/0140-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch +++ b/0140-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch @@ -1,7 +1,7 @@ From eab0520310030376f6295e0338e874bce10b0d5f Mon Sep 17 00:00:00 2001 From: Robert Elliott Date: Fri, 22 Jan 2016 13:32:30 +0100 -Subject: [PATCH 140/246] efiemu: Handle persistent RAM and unknown possible +Subject: [PATCH 140/249] efiemu: Handle persistent RAM and unknown possible future additions. (cherry picked from commit ae3b83a4d4df75a01198a2fed7542391e7c449e0) diff --git a/0141-efiemu-Fix-compilation-failure.patch b/0141-efiemu-Fix-compilation-failure.patch index 254071b6..bfc3b2e0 100644 --- a/0141-efiemu-Fix-compilation-failure.patch +++ b/0141-efiemu-Fix-compilation-failure.patch @@ -1,7 +1,7 @@ From 68bdf29eb6e376a3b4a817bbe7481efd12b8f9de Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Fri, 22 Jan 2016 14:10:30 +0100 -Subject: [PATCH 141/246] efiemu: Fix compilation failure +Subject: [PATCH 141/249] efiemu: Fix compilation failure (cherry picked from commit b6a03dfd327489d53ee07c6d7d593b99c7b7cb62) diff --git a/0142-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch b/0142-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch index 3078ffdb..2c40e58c 100644 --- a/0142-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch +++ b/0142-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch @@ -1,7 +1,7 @@ From df19c5ff9c9e716df0383e39992466304053c99d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 7 Apr 2016 10:58:06 -0400 -Subject: [PATCH 142/246] Revert "reopen SNP protocol for exclusive use by +Subject: [PATCH 142/249] Revert "reopen SNP protocol for exclusive use by grub" I *think* this should have been replaced by upstream's diff --git a/0143-Add-a-url-parser.patch b/0143-Add-a-url-parser.patch index c6af7f2c..e6888907 100644 --- a/0143-Add-a-url-parser.patch +++ b/0143-Add-a-url-parser.patch @@ -1,7 +1,7 @@ From 2f84b2e097ad9f6f7f06013f749251743eb32c2e Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jun 2016 16:18:44 -0400 -Subject: [PATCH 143/246] Add a url parser. +Subject: [PATCH 143/249] Add a url parser. This patch adds a url parser that can parse http, https, tftp, and tftps urls, and is easily extensible to handle more types. diff --git a/0144-efinet-and-bootp-add-support-for-dhcpv6.patch b/0144-efinet-and-bootp-add-support-for-dhcpv6.patch index 3d25ad15..4cbed502 100644 --- a/0144-efinet-and-bootp-add-support-for-dhcpv6.patch +++ b/0144-efinet-and-bootp-add-support-for-dhcpv6.patch @@ -1,7 +1,7 @@ From 48768b0295ad4d908cefd8e8fbee96a4dc2765f5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 8 Jun 2016 21:03:37 -0400 -Subject: [PATCH 144/246] efinet and bootp: add support for dhcpv6 +Subject: [PATCH 144/249] efinet and bootp: add support for dhcpv6 Signed-off-by: Peter Jones --- diff --git a/0145-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch b/0145-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch index 3fd1c61b..4489a2f0 100644 --- a/0145-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch +++ b/0145-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch @@ -1,7 +1,7 @@ From 764506b89942103c3a511d7933edef351fb594b8 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 23 Jun 2016 11:01:39 -0400 -Subject: [PATCH 145/246] Add grub-get-kernel-settings and use it in 10_linux +Subject: [PATCH 145/249] Add grub-get-kernel-settings and use it in 10_linux This patch adds grub-get-kernel-settings, which reads the system kernel installation configuration from /etc/sysconfig/kernel, and outputs diff --git a/0146-Normalize-slashes-in-tftp-paths.patch b/0146-Normalize-slashes-in-tftp-paths.patch index 3e15c892..d160d7fc 100644 --- a/0146-Normalize-slashes-in-tftp-paths.patch +++ b/0146-Normalize-slashes-in-tftp-paths.patch @@ -1,7 +1,7 @@ From 406402dfaecc62ede346793c9c7a0568dc71c131 Mon Sep 17 00:00:00 2001 From: Lenny Szubowicz Date: Mon, 29 Aug 2016 11:04:48 -0400 -Subject: [PATCH 146/246] Normalize slashes in tftp paths. +Subject: [PATCH 146/249] Normalize slashes in tftp paths. Some tftp servers do not handle multiple consecutive slashes correctly; this patch avoids sending tftp requests with non-normalized paths. diff --git a/0147-Fix-malformed-tftp-packets.patch b/0147-Fix-malformed-tftp-packets.patch index 5584791c..1896b0e6 100644 --- a/0147-Fix-malformed-tftp-packets.patch +++ b/0147-Fix-malformed-tftp-packets.patch @@ -1,7 +1,7 @@ From 7d05a8298e6a54bfae0038841462443f21da3535 Mon Sep 17 00:00:00 2001 From: Mark Salter Date: Tue, 7 Mar 2017 18:26:17 -0500 -Subject: [PATCH 147/246] Fix malformed tftp packets +Subject: [PATCH 147/249] Fix malformed tftp packets 0088-Normalize-slashes-in-tftp-paths.patch collapses multiple contiguous slashes in a filename into one slash in the tftp packet filename field. diff --git a/0148-Fix-race-in-EFI-validation.patch b/0148-Fix-race-in-EFI-validation.patch index cfdc3d6c..b365ac7f 100644 --- a/0148-Fix-race-in-EFI-validation.patch +++ b/0148-Fix-race-in-EFI-validation.patch @@ -1,7 +1,7 @@ From bf59d76ca82eb4eaa20a747f5890d09632ba93d0 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 14 Jul 2015 16:58:51 -0700 -Subject: [PATCH 148/246] Fix race in EFI validation +Subject: [PATCH 148/249] Fix race in EFI validation --- grub-core/loader/i386/efi/linux.c | 44 ++++++++++----------------------------- diff --git a/0149-bz1374141-fix-incorrect-mask-for-ppc64.patch b/0149-bz1374141-fix-incorrect-mask-for-ppc64.patch index a1af75c1..44771ce0 100644 --- a/0149-bz1374141-fix-incorrect-mask-for-ppc64.patch +++ b/0149-bz1374141-fix-incorrect-mask-for-ppc64.patch @@ -1,7 +1,7 @@ From 84a5f535949f590a8976c64c3d1fde08fe0f7464 Mon Sep 17 00:00:00 2001 From: Masahiro Matsuya Date: Sat, 29 Oct 2016 08:35:26 +0900 -Subject: [PATCH 149/246] bz1374141 fix incorrect mask for ppc64 +Subject: [PATCH 149/249] bz1374141 fix incorrect mask for ppc64 The netmask configured in firmware is not respected on ppc64 (big endian). When 255.255.252.0 is set as netmask in firmware, the following is the value of bootpath string in grub_ieee1275_parse_bootpath(). diff --git a/0150-Use-device-part-of-chainloader-target-if-present.patch b/0150-Use-device-part-of-chainloader-target-if-present.patch index 27250e35..334f0def 100644 --- a/0150-Use-device-part-of-chainloader-target-if-present.patch +++ b/0150-Use-device-part-of-chainloader-target-if-present.patch @@ -1,7 +1,7 @@ From d426e20f8b41ebf114075dc4ffbcaf438ceb4b95 Mon Sep 17 00:00:00 2001 From: Raymund Will Date: Fri, 10 Apr 2015 01:45:02 -0400 -Subject: [PATCH 150/246] Use device part of chainloader target, if present. +Subject: [PATCH 150/249] Use device part of chainloader target, if present. Otherwise chainloading is restricted to '$root', which might not even be readable by EFI! diff --git a/0151-Add-secureboot-support-on-efi-chainloader.patch b/0151-Add-secureboot-support-on-efi-chainloader.patch index b1091bb1..942273a3 100644 --- a/0151-Add-secureboot-support-on-efi-chainloader.patch +++ b/0151-Add-secureboot-support-on-efi-chainloader.patch @@ -1,7 +1,7 @@ From bbf98517303e438cea398bb74306b6553c880ac3 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 6 Oct 2015 13:04:37 -0400 -Subject: [PATCH 151/246] Add secureboot support on efi chainloader +Subject: [PATCH 151/249] Add secureboot support on efi chainloader Expand the chainloader to be able to verify the image by means of shim lock protocol. The PE/COFF image is loaded and relocated by the diff --git a/0152-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch b/0152-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch index 3c4663b2..dba638ab 100644 --- a/0152-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch +++ b/0152-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch @@ -1,7 +1,7 @@ From 25ea5be888dcc92cd0b3cb7d34b381f5005f1e30 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 6 Oct 2015 16:09:25 -0400 -Subject: [PATCH 152/246] Make any of the loaders that link in efi mode honor +Subject: [PATCH 152/249] Make any of the loaders that link in efi mode honor secure boot. And in this case "honor" means "even if somebody does link this in, they diff --git a/0153-Make-grub_fatal-also-backtrace.patch b/0153-Make-grub_fatal-also-backtrace.patch index c5660c03..098c1ac0 100644 --- a/0153-Make-grub_fatal-also-backtrace.patch +++ b/0153-Make-grub_fatal-also-backtrace.patch @@ -1,7 +1,7 @@ From eb1a27144476324a22561383a0a2e61aa327d2f5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 27 Jan 2016 09:22:42 -0500 -Subject: [PATCH 153/246] Make grub_fatal() also backtrace. +Subject: [PATCH 153/249] Make grub_fatal() also backtrace. --- grub-core/Makefile.core.def | 3 ++ diff --git a/0154-Rework-linux-command.patch b/0154-Rework-linux-command.patch index 227bda34..a884cf37 100644 --- a/0154-Rework-linux-command.patch +++ b/0154-Rework-linux-command.patch @@ -1,7 +1,7 @@ From 12312bfe1727a2992042436cb0f8c8ba1c69ee2f Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 16:12:39 -0700 -Subject: [PATCH 154/246] Rework linux command +Subject: [PATCH 154/249] Rework linux command We want a single buffer that contains the entire kernel image in order to perform a TPM measurement. Allocate one and copy the entire kernel into it diff --git a/0155-Rework-linux16-command.patch b/0155-Rework-linux16-command.patch index 137c0de1..3aa63eb9 100644 --- a/0155-Rework-linux16-command.patch +++ b/0155-Rework-linux16-command.patch @@ -1,7 +1,7 @@ From 24250bbb84f8817462426c46b255d875de627bf1 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 16:20:58 -0700 -Subject: [PATCH 155/246] Rework linux16 command +Subject: [PATCH 155/249] Rework linux16 command We want a single buffer that contains the entire kernel image in order to perform a TPM measurement. Allocate one and copy the entire kernel int it diff --git a/0156-Make-grub-editenv-build-again.patch b/0156-Make-grub-editenv-build-again.patch index b1041b8a..741b13d5 100644 --- a/0156-Make-grub-editenv-build-again.patch +++ b/0156-Make-grub-editenv-build-again.patch @@ -1,7 +1,7 @@ From ebe69b2682b5b3029d8ea503f12134ee81c4b2ce Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 4 Mar 2016 16:29:13 -0500 -Subject: [PATCH 156/246] Make grub-editenv build again. +Subject: [PATCH 156/249] Make grub-editenv build again. 36212460d3565b18439a3a8130b28e6c97702c6a split how some of the mkimage utility functions are defined, and they wind up being linked into diff --git a/0157-Fix-up-some-man-pages-rpmdiff-noticed.patch b/0157-Fix-up-some-man-pages-rpmdiff-noticed.patch index f78cda63..737ca1e6 100644 --- a/0157-Fix-up-some-man-pages-rpmdiff-noticed.patch +++ b/0157-Fix-up-some-man-pages-rpmdiff-noticed.patch @@ -1,7 +1,7 @@ From c71e6152ea8e4e525a853441bb5f08808bae3afd Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 23 Sep 2014 09:58:49 -0400 -Subject: [PATCH 157/246] Fix up some man pages rpmdiff noticed. +Subject: [PATCH 157/249] Fix up some man pages rpmdiff noticed. --- configure.ac | 2 ++ diff --git a/0158-Re-work-some-intricacies-of-PE-loading.patch b/0158-Re-work-some-intricacies-of-PE-loading.patch index 303f8fe9..d362bd67 100644 --- a/0158-Re-work-some-intricacies-of-PE-loading.patch +++ b/0158-Re-work-some-intricacies-of-PE-loading.patch @@ -1,7 +1,7 @@ From 145214ee7c411c7d600016f011dc11b213bce0b2 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 9 Jun 2016 12:22:29 -0400 -Subject: [PATCH 158/246] Re-work some intricacies of PE loading. +Subject: [PATCH 158/249] Re-work some intricacies of PE loading. The PE spec is not a well written document, and awesomely every place where there's an ambiguous way to read something, Windows' bootmgfw.efi diff --git a/0159-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch b/0159-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch index e1bc8dd6..38b21635 100644 --- a/0159-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch +++ b/0159-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch @@ -1,7 +1,7 @@ From ef24bc601e11b96eefe06f477b5da1199d761b3d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 10 Jun 2016 14:06:15 -0400 -Subject: [PATCH 159/246] Rework even more of efi chainload so non-sb cases +Subject: [PATCH 159/249] Rework even more of efi chainload so non-sb cases work right. This ensures that if shim protocol is not loaded, or is loaded but shim diff --git a/0160-linuxefi-fix-double-free-on-verification-failure.patch b/0160-linuxefi-fix-double-free-on-verification-failure.patch index 281f855b..2e521be4 100644 --- a/0160-linuxefi-fix-double-free-on-verification-failure.patch +++ b/0160-linuxefi-fix-double-free-on-verification-failure.patch @@ -1,7 +1,7 @@ From 5ef3f00e6be3033092453a66f456b8dac8cd4f7c Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jun 2016 09:50:25 -0400 -Subject: [PATCH 160/246] linuxefi: fix double free on verification failure. +Subject: [PATCH 160/249] linuxefi: fix double free on verification failure. Signed-off-by: Peter Jones --- diff --git a/0161-fix-machine-type-test-in-30_os-prober.in.patch b/0161-fix-machine-type-test-in-30_os-prober.in.patch index f63ff685..c8f07a58 100644 --- a/0161-fix-machine-type-test-in-30_os-prober.in.patch +++ b/0161-fix-machine-type-test-in-30_os-prober.in.patch @@ -1,7 +1,7 @@ From 4139fdfdb64fd248a0d5f200b27c583159dbb190 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 11 Jul 2016 13:36:45 -0400 -Subject: [PATCH 161/246] fix machine type test in 30_os-prober.in +Subject: [PATCH 161/249] fix machine type test in 30_os-prober.in Signed-off-by: Peter Jones --- diff --git a/0162-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch b/0162-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch index 439e17d1..8ef18ddd 100644 --- a/0162-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch +++ b/0162-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch @@ -1,7 +1,7 @@ From 671699a76fa6510a62c3a94acd698a31686cb8fa Mon Sep 17 00:00:00 2001 From: Laszlo Ersek Date: Mon, 21 Nov 2016 15:34:00 +0100 -Subject: [PATCH 162/246] efi/chainloader: fix wrong sanity check in +Subject: [PATCH 162/249] efi/chainloader: fix wrong sanity check in relocate_coff() In relocate_coff(), the relocation entries are parsed from the original diff --git a/0163-efi-chainloader-truncate-overlong-relocation-section.patch b/0163-efi-chainloader-truncate-overlong-relocation-section.patch index f0e9c4d1..c47de573 100644 --- a/0163-efi-chainloader-truncate-overlong-relocation-section.patch +++ b/0163-efi-chainloader-truncate-overlong-relocation-section.patch @@ -1,7 +1,7 @@ From d081bd5f47235e3bfd256fd262a6f98fe8b0d0ff Mon Sep 17 00:00:00 2001 From: Laszlo Ersek Date: Wed, 23 Nov 2016 06:27:09 +0100 -Subject: [PATCH 163/246] efi/chainloader: truncate overlong relocation section +Subject: [PATCH 163/249] efi/chainloader: truncate overlong relocation section The UEFI Windows 7 boot loader ("EFI/Microsoft/Boot/bootmgfw.efi", SHA1 31b410e029bba87d2068c65a80b88882f9f8ea25) has inconsistent headers. diff --git a/0164-linuxefi-minor-cleanups.patch b/0164-linuxefi-minor-cleanups.patch index deec8b92..f626b225 100644 --- a/0164-linuxefi-minor-cleanups.patch +++ b/0164-linuxefi-minor-cleanups.patch @@ -1,7 +1,7 @@ From 8dc21ff37f62f3d10fb3d708ffd33b7d723a23cf Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Feb 2017 16:31:52 -0500 -Subject: [PATCH 164/246] linuxefi: minor cleanups +Subject: [PATCH 164/249] linuxefi: minor cleanups Signed-off-by: Peter Jones --- diff --git a/0165-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch b/0165-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch index 416fc1e2..372c6961 100644 --- a/0165-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch +++ b/0165-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch @@ -1,7 +1,7 @@ From 10d6d333de0aa7e390a22ebc4b308f7ad937d5bc Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Feb 2017 16:18:54 -0500 -Subject: [PATCH 165/246] Handle multi-arch (64-on-32) boot in linuxefi loader. +Subject: [PATCH 165/249] Handle multi-arch (64-on-32) boot in linuxefi loader. Allow booting 64-bit kernels on 32-bit EFI on x86. diff --git a/0166-Fix-up-linux-params-usage.patch b/0166-Fix-up-linux-params-usage.patch index 3ab86a87..67dbd88a 100644 --- a/0166-Fix-up-linux-params-usage.patch +++ b/0166-Fix-up-linux-params-usage.patch @@ -1,7 +1,7 @@ From 93be95c27b0ddb63c2e3a287a3ed92c0a5de93e5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 30 May 2017 14:16:07 -0400 -Subject: [PATCH 166/246] Fix up linux params usage... +Subject: [PATCH 166/249] Fix up linux params usage... Signed-off-by: Peter Jones --- diff --git a/0167-Make-exit-take-a-return-code.patch b/0167-Make-exit-take-a-return-code.patch index 1471c38a..c7cf13f5 100644 --- a/0167-Make-exit-take-a-return-code.patch +++ b/0167-Make-exit-take-a-return-code.patch @@ -1,7 +1,7 @@ From 6b67d46c1764c86611939dc01267f9c70f413184 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 26 Feb 2014 21:49:12 -0500 -Subject: [PATCH 167/246] Make "exit" take a return code. +Subject: [PATCH 167/249] Make "exit" take a return code. This adds "exit" with a return code. With this patch, any "exit" command /may/ include a return code, and on platforms that support diff --git a/0168-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch b/0168-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch index ee6e7b2e..ed7bd9d7 100644 --- a/0168-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch +++ b/0168-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch @@ -1,7 +1,7 @@ From e48a4c0b9e475b16366ff6c375de5186432eb1f7 Mon Sep 17 00:00:00 2001 From: Mark Salter Date: Mon, 17 Apr 2017 08:44:29 -0400 -Subject: [PATCH 168/246] arm64: make sure fdt has #address-cells and +Subject: [PATCH 168/249] arm64: make sure fdt has #address-cells and #size-cells properties Recent upstream changes to kexec-tools relies on #address-cells diff --git a/0169-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch b/0169-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch index 3c789c12..bd2fe146 100644 --- a/0169-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch +++ b/0169-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch @@ -1,7 +1,7 @@ From 755fa5ccf0834abdb7e50a1cb06fad618f6c9af6 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 9 May 2016 14:15:17 -0400 -Subject: [PATCH 169/246] Add some grub_dprintf() in the secure boot verify +Subject: [PATCH 169/249] Add some grub_dprintf() in the secure boot verify code. Signed-off-by: Peter Jones diff --git a/0170-Make-our-info-pages-say-grub2-where-appropriate.patch b/0170-Make-our-info-pages-say-grub2-where-appropriate.patch index 2ce06798..e6c02a4c 100644 --- a/0170-Make-our-info-pages-say-grub2-where-appropriate.patch +++ b/0170-Make-our-info-pages-say-grub2-where-appropriate.patch @@ -1,7 +1,7 @@ From 15c340acd845056ba259b9fffd6c7d083874cb82 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 6 May 2016 18:43:08 -0400 -Subject: [PATCH 170/246] Make our info pages say "grub2" where appropriate. +Subject: [PATCH 170/249] Make our info pages say "grub2" where appropriate. This needs to be hooked up to --program-transform=, but I haven't had time. diff --git a/0171-print-more-debug-info-in-our-module-loader.patch b/0171-print-more-debug-info-in-our-module-loader.patch index 062a9469..93b2905d 100644 --- a/0171-print-more-debug-info-in-our-module-loader.patch +++ b/0171-print-more-debug-info-in-our-module-loader.patch @@ -1,7 +1,7 @@ From 0d0a7ebbed42b97fca63cbcaf85a469b77c76fda Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 1 May 2017 11:19:40 -0400 -Subject: [PATCH 171/246] print more debug info in our module loader. +Subject: [PATCH 171/249] print more debug info in our module loader. Signed-off-by: Peter Jones --- diff --git a/0172-macos-just-build-chainloader-entries-don-t-try-any-x.patch b/0172-macos-just-build-chainloader-entries-don-t-try-any-x.patch index 9b504bde..920148b8 100644 --- a/0172-macos-just-build-chainloader-entries-don-t-try-any-x.patch +++ b/0172-macos-just-build-chainloader-entries-don-t-try-any-x.patch @@ -1,7 +1,7 @@ From 4cb6b65d74966dfbe6e8463ee1e88d99ca7de5b1 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 24 May 2017 12:42:32 -0400 -Subject: [PATCH 172/246] macos: just build chainloader entries, don't try any +Subject: [PATCH 172/249] macos: just build chainloader entries, don't try any xnu xnu. Since our bugs tell us that the xnu boot entries really just don't work diff --git a/0173-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch b/0173-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch index 75be6098..bf326e61 100644 --- a/0173-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch +++ b/0173-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch @@ -1,7 +1,7 @@ From 396001716b7f8c7a6aee17f33fdb9e5d47424cbc Mon Sep 17 00:00:00 2001 From: Jeff Mahoney Date: Wed, 18 Dec 2013 09:57:04 +0000 -Subject: [PATCH 173/246] grub2/btrfs: Add ability to boot from subvolumes +Subject: [PATCH 173/249] grub2/btrfs: Add ability to boot from subvolumes This patch adds the ability to specify a different root on a btrfs filesystem too boot from other than the default one. diff --git a/0174-export-btrfs_subvol-and-btrfs_subvolid.patch b/0174-export-btrfs_subvol-and-btrfs_subvolid.patch index dfcaa072..1cceb348 100644 --- a/0174-export-btrfs_subvol-and-btrfs_subvolid.patch +++ b/0174-export-btrfs_subvol-and-btrfs_subvolid.patch @@ -1,7 +1,7 @@ From 35c1015fc1a4313be34757eebb195547336e0edf Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Wed, 18 Dec 2013 09:57:04 +0000 -Subject: [PATCH 174/246] export btrfs_subvol and btrfs_subvolid +Subject: [PATCH 174/249] export btrfs_subvol and btrfs_subvolid We should export btrfs_subvol and btrfs_subvolid to have both visible to subsidiary configuration files loaded using configfile. diff --git a/0175-grub2-btrfs-03-follow_default.patch b/0175-grub2-btrfs-03-follow_default.patch index f648a729..4323f3a5 100644 --- a/0175-grub2-btrfs-03-follow_default.patch +++ b/0175-grub2-btrfs-03-follow_default.patch @@ -1,7 +1,7 @@ From 476a0251e8ca2850da7c383baf7fdbd810bc789f Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 21 Aug 2014 03:39:11 +0000 -Subject: [PATCH 175/246] grub2-btrfs-03-follow_default +Subject: [PATCH 175/249] grub2-btrfs-03-follow_default --- grub-core/fs/btrfs.c | 107 ++++++++++++++++++++++++++++++++++++--------------- diff --git a/0176-grub2-btrfs-04-grub2-install.patch b/0176-grub2-btrfs-04-grub2-install.patch index 1446e95e..b39cf4fe 100644 --- a/0176-grub2-btrfs-04-grub2-install.patch +++ b/0176-grub2-btrfs-04-grub2-install.patch @@ -1,7 +1,7 @@ From e03dd83cc804d70af0716d0a429715afbcdc7eae Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 21 Aug 2014 03:39:11 +0000 -Subject: [PATCH 176/246] grub2-btrfs-04-grub2-install +Subject: [PATCH 176/249] grub2-btrfs-04-grub2-install --- grub-core/osdep/linux/getroot.c | 7 +++++++ diff --git a/0177-grub2-btrfs-05-grub2-mkconfig.patch b/0177-grub2-btrfs-05-grub2-mkconfig.patch index b3c4d2e3..4ce9b71e 100644 --- a/0177-grub2-btrfs-05-grub2-mkconfig.patch +++ b/0177-grub2-btrfs-05-grub2-mkconfig.patch @@ -1,7 +1,7 @@ From cb43e7a6c96127e72d6787c6063de8911284fe18 Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 21 Aug 2014 03:39:11 +0000 -Subject: [PATCH 177/246] grub2-btrfs-05-grub2-mkconfig +Subject: [PATCH 177/249] grub2-btrfs-05-grub2-mkconfig --- util/grub-mkconfig.in | 3 ++- diff --git a/0178-grub2-btrfs-06-subvol-mount.patch b/0178-grub2-btrfs-06-subvol-mount.patch index db395f96..434eceda 100644 --- a/0178-grub2-btrfs-06-subvol-mount.patch +++ b/0178-grub2-btrfs-06-subvol-mount.patch @@ -1,7 +1,7 @@ From 84d6a482c2c8d0677141bb888512a6a89daf9d8b Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Fri, 22 May 2015 11:45:25 +0000 -Subject: [PATCH 178/246] grub2-btrfs-06-subvol-mount +Subject: [PATCH 178/249] grub2-btrfs-06-subvol-mount --- grub-core/fs/btrfs.c | 195 +++++++++++++++++++++++++++++++++++++++- diff --git a/0179-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch b/0179-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch index da85406c..1ca0cf75 100644 --- a/0179-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch +++ b/0179-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch @@ -1,7 +1,7 @@ From 741c0651cd54970c08e9c19a82f5805aafbfda23 Mon Sep 17 00:00:00 2001 From: Dusty Mabe Date: Sat, 18 Jul 2015 15:38:08 +0000 -Subject: [PATCH 179/246] No more "Bootable Snapshot" submenu in grub.cfg. +Subject: [PATCH 179/249] No more "Bootable Snapshot" submenu in grub.cfg. This breaks grubby (run on kernel upgrades) because grubby just does a search for "menuentry". diff --git a/0180-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch b/0180-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch index 1b9658a6..408ea3de 100644 --- a/0180-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch +++ b/0180-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch @@ -1,7 +1,7 @@ From ab8e0d4bf544b708f5afa4cc56e6bd16789f2f1e Mon Sep 17 00:00:00 2001 From: Andrei Borzenkov Date: Tue, 21 Jun 2016 16:44:17 +0000 -Subject: [PATCH 180/246] Fallback to old subvol name scheme to support old +Subject: [PATCH 180/249] Fallback to old subvol name scheme to support old snapshot config Ref: bsc#953538 diff --git a/0181-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch b/0181-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch index 53479c75..3b63b466 100644 --- a/0181-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch +++ b/0181-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch @@ -1,7 +1,7 @@ From eb8535428a42c7099666ddb58ac900bb8ee745ba Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 11 May 2017 08:56:57 +0000 -Subject: [PATCH 181/246] Grub not working correctly with btrfs snapshots +Subject: [PATCH 181/249] Grub not working correctly with btrfs snapshots (bsc#1026511) --- diff --git a/0182-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch b/0182-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch index 404ecb6e..4a030a93 100644 --- a/0182-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch +++ b/0182-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch @@ -1,7 +1,7 @@ From 2a6e1d2491b7334985ad25315faa22d26354d8b7 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 1 Jun 2017 09:59:56 -0400 -Subject: [PATCH 182/246] Add grub_efi_allocate_pool() and grub_efi_free_pool() +Subject: [PATCH 182/249] Add grub_efi_allocate_pool() and grub_efi_free_pool() wrappers. Signed-off-by: Peter Jones diff --git a/0183-Use-grub_efi_.-memory-helpers-where-reasonable.patch b/0183-Use-grub_efi_.-memory-helpers-where-reasonable.patch index 1c1113a4..5080bb5c 100644 --- a/0183-Use-grub_efi_.-memory-helpers-where-reasonable.patch +++ b/0183-Use-grub_efi_.-memory-helpers-where-reasonable.patch @@ -1,7 +1,7 @@ From 6ea13cdb3f33da45d7a8042d85ad87e2a18fc946 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 1 Jun 2017 10:06:38 -0400 -Subject: [PATCH 183/246] Use grub_efi_...() memory helpers where reasonable. +Subject: [PATCH 183/249] Use grub_efi_...() memory helpers where reasonable. This uses grub_efi_allocate_pool(), grub_efi_free_pool(), and grub_efi_free_pages() instead of open-coded efi_call_N() calls, so we diff --git a/0184-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch b/0184-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch index 4ea8502f..768dbd67 100644 --- a/0184-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch +++ b/0184-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch @@ -1,7 +1,7 @@ From eae94a16a8ae350cdeab8b7742f9227d92001272 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 1 Jun 2017 10:07:50 -0400 -Subject: [PATCH 184/246] Add PRIxGRUB_EFI_STATUS and use it. +Subject: [PATCH 184/249] Add PRIxGRUB_EFI_STATUS and use it. This avoids syntax checkers getting confused about if it's llx or lx. diff --git a/0185-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch b/0185-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch index 576a9e9c..8cea3dd4 100644 --- a/0185-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch +++ b/0185-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch @@ -1,7 +1,7 @@ From 41a50aa2c275076caa2f9fe7a747eeb054abed16 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:42:57 -0400 -Subject: [PATCH 185/246] Don't use dynamic sized arrays since we don't build +Subject: [PATCH 185/249] Don't use dynamic sized arrays since we don't build with -std=c99 --- diff --git a/0186-don-t-ignore-const.patch b/0186-don-t-ignore-const.patch index f0293619..dd693df7 100644 --- a/0186-don-t-ignore-const.patch +++ b/0186-don-t-ignore-const.patch @@ -1,7 +1,7 @@ From d06e2578107f217d2bc8beee7fd0dc7f2645873d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:43:22 -0400 -Subject: [PATCH 186/246] don't ignore const +Subject: [PATCH 186/249] don't ignore const --- grub-core/net/tftp.c | 2 +- diff --git a/0187-don-t-use-int-for-efi-status.patch b/0187-don-t-use-int-for-efi-status.patch index f78e7f92..d4b29e27 100644 --- a/0187-don-t-use-int-for-efi-status.patch +++ b/0187-don-t-use-int-for-efi-status.patch @@ -1,7 +1,7 @@ From 6d86c59c24e12c8e8471cdd2affca574fdee160d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:44:59 -0400 -Subject: [PATCH 187/246] don't use int for efi status +Subject: [PATCH 187/249] don't use int for efi status --- grub-core/kern/efi/efi.c | 2 +- diff --git a/0188-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch b/0188-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch index 21e8c2d2..49802652 100644 --- a/0188-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch +++ b/0188-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch @@ -1,7 +1,7 @@ From ba6828d073bbda85eba59a9ce9220eada51a540b Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:46:23 -0400 -Subject: [PATCH 188/246] make GRUB_MOD_INIT() declare its function prototypes. +Subject: [PATCH 188/249] make GRUB_MOD_INIT() declare its function prototypes. --- include/grub/dl.h | 2 ++ diff --git a/0189-Clean-up-some-errors-in-the-linuxefi-loader.patch b/0189-Clean-up-some-errors-in-the-linuxefi-loader.patch index 7f83da9b..76120624 100644 --- a/0189-Clean-up-some-errors-in-the-linuxefi-loader.patch +++ b/0189-Clean-up-some-errors-in-the-linuxefi-loader.patch @@ -1,7 +1,7 @@ From 8bdc0c77919ddb9bd588ac45e96c96497683f76c Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 24 May 2017 15:58:18 -0400 -Subject: [PATCH 189/246] Clean up some errors in the linuxefi loader +Subject: [PATCH 189/249] Clean up some errors in the linuxefi loader Signed-off-by: Peter Jones --- diff --git a/0190-editenv-handle-relative-symlinks.patch b/0190-editenv-handle-relative-symlinks.patch index 967b60f8..7efa01f6 100644 --- a/0190-editenv-handle-relative-symlinks.patch +++ b/0190-editenv-handle-relative-symlinks.patch @@ -1,7 +1,7 @@ From 098987b7b5fcc15a5ba3600fa132fcec36095c5a Mon Sep 17 00:00:00 2001 From: Jonathan Lebon Date: Mon, 14 Aug 2017 14:37:20 -0400 -Subject: [PATCH 190/246] editenv: handle relative symlinks +Subject: [PATCH 190/249] editenv: handle relative symlinks Handle symlinks with targets relative to the containing dir. This ensures that the rename operation does not depend on the cwd. diff --git a/0191-Make-libgrub.pp-depend-on-config-util.h.patch b/0191-Make-libgrub.pp-depend-on-config-util.h.patch index be14795a..40c342da 100644 --- a/0191-Make-libgrub.pp-depend-on-config-util.h.patch +++ b/0191-Make-libgrub.pp-depend-on-config-util.h.patch @@ -1,7 +1,7 @@ From c86299049c2cc0503728deee280d9f6bf50886f4 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 23 Aug 2017 10:37:27 -0400 -Subject: [PATCH 191/246] Make libgrub.pp depend on config-util.h +Subject: [PATCH 191/249] Make libgrub.pp depend on config-util.h If you build with "make -j48" a lot, sometimes you see: diff --git a/0192-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch b/0192-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch index 4d7089dc..3c01c067 100644 --- a/0192-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch +++ b/0192-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch @@ -1,7 +1,7 @@ From 351799d9310a4bec23ed4074444780c2a35435fd Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 20 Apr 2017 13:29:06 -0400 -Subject: [PATCH 192/246] Don't guess /boot/efi/ as HFS+ on ppc machines in +Subject: [PATCH 192/249] Don't guess /boot/efi/ as HFS+ on ppc machines in grub-install This should never be trying this, and since we've consolidated the diff --git a/0193-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch b/0193-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch index 22848896..cc822fbb 100644 --- a/0193-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch +++ b/0193-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch @@ -1,7 +1,7 @@ From cba0322cd88baf136ac693f5ec1826f3314daeff Mon Sep 17 00:00:00 2001 From: Konrad Rzeszutek Wilk Date: Mon, 28 Aug 2017 13:51:14 -0400 -Subject: [PATCH 193/246] Fix util/grub.d/20_linux_xen.in: Add xen_boot command +Subject: [PATCH 193/249] Fix util/grub.d/20_linux_xen.in: Add xen_boot command support for aarch64 Commit d33045ce7ffcb7c1e4a60c14d5ca64b36e3c5abe introduced diff --git a/0194-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch b/0194-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch index e4e49d6c..01edaa9a 100644 --- a/0194-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch +++ b/0194-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch @@ -1,7 +1,7 @@ From 87c089b6f1945ebcc690697d279c74284f1b4072 Mon Sep 17 00:00:00 2001 From: Konrad Rzeszutek Wilk Date: Mon, 28 Aug 2017 13:59:12 -0400 -Subject: [PATCH 194/246] Use grub-file to figure out whether multiboot2 should +Subject: [PATCH 194/249] Use grub-file to figure out whether multiboot2 should be used for Xen.gz The multiboot2 is much more preferable than multiboot. Especiall diff --git a/0195-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch b/0195-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch index cf5b4c9b..027cf835 100644 --- a/0195-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch +++ b/0195-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch @@ -1,7 +1,7 @@ From 92d3db585076d022521ab94a2ceed03eb05013fc Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 19 Oct 2017 11:29:11 -0400 -Subject: [PATCH 195/246] 20_linux_xen: load xen or multiboot{,2} modules as +Subject: [PATCH 195/249] 20_linux_xen: load xen or multiboot{,2} modules as needed. Signed-off-by: Peter Jones diff --git a/0196-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch b/0196-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch index d4b20517..e78af86d 100644 --- a/0196-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch +++ b/0196-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch @@ -1,7 +1,7 @@ From 2e5b957292d3f313d48bded25e8ca83468326c5b Mon Sep 17 00:00:00 2001 From: "David E. Box" Date: Fri, 15 Sep 2017 15:37:05 -0700 -Subject: [PATCH 196/246] tsc: Change default tsc calibration method to pmtimer +Subject: [PATCH 196/249] tsc: Change default tsc calibration method to pmtimer on EFI systems On efi systems, make pmtimer based tsc calibration the default over the diff --git a/0197-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch b/0197-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch index 0b3b978a..572f798d 100644 --- a/0197-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch +++ b/0197-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch @@ -1,7 +1,7 @@ From 0b158c30810db86f549cabd6e6021ab15962370d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 7 Nov 2017 17:12:17 -0500 -Subject: [PATCH 197/246] Make pmtimer tsc calibration not take 51 seconds to +Subject: [PATCH 197/249] Make pmtimer tsc calibration not take 51 seconds to fail. On my laptop running at 2.4GHz, if I run a VM where tsc calibration diff --git a/0198-align-struct-efi_variable-better.patch b/0198-align-struct-efi_variable-better.patch index cf65e045..139324ff 100644 --- a/0198-align-struct-efi_variable-better.patch +++ b/0198-align-struct-efi_variable-better.patch @@ -1,7 +1,7 @@ From 2485633ada06c11c07a34a696a92b14e58f1e846 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 27 Feb 2018 13:55:35 -0500 -Subject: [PATCH 198/246] align struct efi_variable better... +Subject: [PATCH 198/249] align struct efi_variable better... --- include/grub/efiemu/runtime.h | 2 +- diff --git a/0199-Add-quicksort-implementation.patch b/0199-Add-quicksort-implementation.patch index c56c1532..c51eec4a 100644 --- a/0199-Add-quicksort-implementation.patch +++ b/0199-Add-quicksort-implementation.patch @@ -1,7 +1,7 @@ From a2cd100d71711b950beaf60ea7ddca4c77a70d59 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 9 Dec 2016 15:39:47 -0500 -Subject: [PATCH 199/246] Add quicksort implementation +Subject: [PATCH 199/249] Add quicksort implementation This will be used to sort the boot menu entries that are read from the BootLoaderSpec config files. diff --git a/0200-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch b/0200-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch index 990e5f06..25a5e2e3 100644 --- a/0200-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch +++ b/0200-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch @@ -1,7 +1,7 @@ From ed595feeea2f7b7fd0158d42fa2fd39420eea683 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 9 Dec 2016 15:40:58 -0500 -Subject: [PATCH 200/246] Add blscfg command support to parse BootLoaderSpec +Subject: [PATCH 200/249] Add blscfg command support to parse BootLoaderSpec config fragments The BootLoaderSpec (BLS) defines a scheme where different bootloaders can diff --git a/0201-Add-BLS-support-to-grub-mkconfig.patch b/0201-Add-BLS-support-to-grub-mkconfig.patch index 62506a0e..1a5651b3 100644 --- a/0201-Add-BLS-support-to-grub-mkconfig.patch +++ b/0201-Add-BLS-support-to-grub-mkconfig.patch @@ -1,7 +1,7 @@ From d847a4806bb7a4f3b457d0074d712e500fbd5e97 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 9 Dec 2016 15:40:29 -0500 -Subject: [PATCH 201/246] Add BLS support to grub-mkconfig +Subject: [PATCH 201/249] Add BLS support to grub-mkconfig GRUB now has BootLoaderSpec support, the user can choose to use this by setting GRUB_ENABLE_BLSCFG to true in /etc/default/grub. On this setup, diff --git a/0202-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch b/0202-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch index 2d138e4a..c371e935 100644 --- a/0202-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch +++ b/0202-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch @@ -1,7 +1,7 @@ From 2d7dabdbf322e8f679eeaefd48cb26b083cdeb1c Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 6 Feb 2018 11:02:09 +0100 -Subject: [PATCH 202/246] Remove duplicated grub_exit() definition for grub-emu +Subject: [PATCH 202/249] Remove duplicated grub_exit() definition for grub-emu platform The grub_exit() function signature was changed on all platforms to take a diff --git a/0203-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch b/0203-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch index b9d6f719..d9ebda27 100644 --- a/0203-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch +++ b/0203-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch @@ -1,7 +1,7 @@ From f45946a92377c83ffcad8dbc3298fc26072567d9 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 6 Feb 2018 11:16:28 +0100 -Subject: [PATCH 203/246] Don't attempt to backtrace on grub_abort() for +Subject: [PATCH 203/249] Don't attempt to backtrace on grub_abort() for grub-emu The emu platform doesn't have a grub_backtrace() implementation, so this diff --git a/0204-Enable-blscfg-command-for-the-emu-platform.patch b/0204-Enable-blscfg-command-for-the-emu-platform.patch index 591ba894..5988bf93 100644 --- a/0204-Enable-blscfg-command-for-the-emu-platform.patch +++ b/0204-Enable-blscfg-command-for-the-emu-platform.patch @@ -1,7 +1,7 @@ From 39bb86c661911f06ff40caa842a9babf18f27c8b Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Fri, 2 Feb 2018 11:36:29 +0100 -Subject: [PATCH 204/246] Enable blscfg command for the emu platform +Subject: [PATCH 204/249] Enable blscfg command for the emu platform Allow grub-emu to call a blscfg command. This may be useful for platforms that don't support GRUB, so grub-emu can be used to parse the BLS configs diff --git a/0205-Add-linux-and-initrd-commands-for-grub-emu.patch b/0205-Add-linux-and-initrd-commands-for-grub-emu.patch index 19e3c1f9..894375da 100644 --- a/0205-Add-linux-and-initrd-commands-for-grub-emu.patch +++ b/0205-Add-linux-and-initrd-commands-for-grub-emu.patch @@ -1,7 +1,7 @@ From 49c719a6f6e223b95733e18720a48993ab6e5317 Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Tue, 6 Feb 2018 09:09:00 +0100 -Subject: [PATCH 205/246] Add linux and initrd commands for grub-emu +Subject: [PATCH 205/249] Add linux and initrd commands for grub-emu When using grub-emu, the linux and initrd commands are used as arguments to the kexec command line tool, to allow booting the selected menu entry. diff --git a/0206-Fix-the-efidir-in-grub-setpassword.patch b/0206-Fix-the-efidir-in-grub-setpassword.patch index 37bfb04b..188d4736 100644 --- a/0206-Fix-the-efidir-in-grub-setpassword.patch +++ b/0206-Fix-the-efidir-in-grub-setpassword.patch @@ -1,7 +1,7 @@ From c7c6cb4380f5bd85a2cbe747433657fdce89a802 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 15 Mar 2018 14:12:54 -0400 -Subject: [PATCH 206/246] Fix the efidir in grub-setpassword +Subject: [PATCH 206/249] Fix the efidir in grub-setpassword Signed-off-by: Peter Jones --- diff --git a/0207-Add-grub2-switch-to-blscfg.patch b/0207-Add-grub2-switch-to-blscfg.patch index 1de3a8d9..f61476e3 100644 --- a/0207-Add-grub2-switch-to-blscfg.patch +++ b/0207-Add-grub2-switch-to-blscfg.patch @@ -1,7 +1,7 @@ From 89b3a570de8b5e7ad19769983a87f6e10024f0ec Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 15 Mar 2018 14:12:40 -0400 -Subject: [PATCH 207/246] Add grub2-switch-to-blscfg +Subject: [PATCH 207/249] Add grub2-switch-to-blscfg Signed-off-by: Peter Jones --- diff --git a/0208-Add-grub_debug_enabled.patch b/0208-Add-grub_debug_enabled.patch index fe2a4e63..c31110c5 100644 --- a/0208-Add-grub_debug_enabled.patch +++ b/0208-Add-grub_debug_enabled.patch @@ -1,7 +1,7 @@ From 6776773c89828c9b69c1552760ba6a4d9cd5589f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 30 Nov 2017 15:11:39 -0500 -Subject: [PATCH 208/246] Add grub_debug_enabled() +Subject: [PATCH 208/249] Add grub_debug_enabled() --- grub-core/kern/misc.c | 21 ++++++++++++++++----- diff --git a/0209-make-better-backtraces.patch b/0209-make-better-backtraces.patch index e472c907..dab19417 100644 --- a/0209-make-better-backtraces.patch +++ b/0209-make-better-backtraces.patch @@ -1,7 +1,7 @@ From 318ee04aadcda40b779b2a5314dd23ead165f896 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 6 Nov 2017 18:31:56 -0500 -Subject: [PATCH 209/246] make better backtraces +Subject: [PATCH 209/249] make better backtraces Signed-off-by: Peter Jones --- diff --git a/0210-normal-don-t-draw-our-startup-message-if-debug-is-se.patch b/0210-normal-don-t-draw-our-startup-message-if-debug-is-se.patch index 6039a8ae..6dc32519 100644 --- a/0210-normal-don-t-draw-our-startup-message-if-debug-is-se.patch +++ b/0210-normal-don-t-draw-our-startup-message-if-debug-is-se.patch @@ -1,7 +1,7 @@ From 81d0e079ea5aa6f43daf12f7a8698d0bcd1a36f8 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 9 Nov 2017 15:58:52 -0500 -Subject: [PATCH 210/246] normal: don't draw our startup message if debug is +Subject: [PATCH 210/249] normal: don't draw our startup message if debug is set --- diff --git a/0211-Work-around-some-minor-include-path-weirdnesses.patch b/0211-Work-around-some-minor-include-path-weirdnesses.patch index c85f4800..bb2bd0b2 100644 --- a/0211-Work-around-some-minor-include-path-weirdnesses.patch +++ b/0211-Work-around-some-minor-include-path-weirdnesses.patch @@ -1,7 +1,7 @@ From e2bba0f7ee8e56c68e425853a21a8fdd766add70 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 16 Mar 2018 13:28:57 -0400 -Subject: [PATCH 211/246] Work around some minor include path weirdnesses +Subject: [PATCH 211/249] Work around some minor include path weirdnesses Signed-off-by: Peter Jones --- diff --git a/0212-Make-it-possible-to-enabled-build-id-sha1.patch b/0212-Make-it-possible-to-enabled-build-id-sha1.patch index f65aa5aa..975678dd 100644 --- a/0212-Make-it-possible-to-enabled-build-id-sha1.patch +++ b/0212-Make-it-possible-to-enabled-build-id-sha1.patch @@ -1,7 +1,7 @@ From 8521929bcf671b465d6450b969d11617b6aec608 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 25 Jun 2015 15:41:06 -0400 -Subject: [PATCH 212/246] Make it possible to enabled --build-id=sha1 +Subject: [PATCH 212/249] Make it possible to enabled --build-id=sha1 Signed-off-by: Peter Jones --- diff --git a/0213-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch b/0213-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch index 3992d7e2..cabc2d92 100644 --- a/0213-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch +++ b/0213-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch @@ -1,7 +1,7 @@ From 8c4b2eaa204f0ea0377ca4592d2be6029fdb9be7 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Sun, 28 Jun 2015 13:09:58 -0400 -Subject: [PATCH 213/246] Add grub_qdprintf() - grub_dprintf() without the +Subject: [PATCH 213/249] Add grub_qdprintf() - grub_dprintf() without the file+line number. This just makes copy+paste of our debug loading info easier. diff --git a/0214-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch b/0214-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch index 80f0db7a..08ea7172 100644 --- a/0214-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch +++ b/0214-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch @@ -1,7 +1,7 @@ From 030095a01a205aba04a0849ac0c0329ac429a9ed Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 25 Jun 2015 15:11:36 -0400 -Subject: [PATCH 214/246] Make a "gdb" dprintf that tells us load addresses. +Subject: [PATCH 214/249] Make a "gdb" dprintf that tells us load addresses. This makes a grub_dprintf() call during platform init and during module loading that tells us the virtual addresses of the .text and .data diff --git a/0215-Only-attempt-to-scan-different-BLS-directories-on-EF.patch b/0215-Only-attempt-to-scan-different-BLS-directories-on-EF.patch index 830f6031..2c6071e8 100644 --- a/0215-Only-attempt-to-scan-different-BLS-directories-on-EF.patch +++ b/0215-Only-attempt-to-scan-different-BLS-directories-on-EF.patch @@ -1,7 +1,7 @@ From 5f0417c63a4dd2252a5a801568f4369ac74a47e6 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 3 Apr 2018 15:42:47 +0200 -Subject: [PATCH 215/246] Only attempt to scan different BLS directories on EFI +Subject: [PATCH 215/249] Only attempt to scan different BLS directories on EFI machines Current BLS support attempted to scan for BLS directories, but this only diff --git a/0216-Core-TPM-support.patch b/0216-Core-TPM-support.patch index a5ee006b..74600510 100644 --- a/0216-Core-TPM-support.patch +++ b/0216-Core-TPM-support.patch @@ -1,7 +1,7 @@ From 65be94a64a5608209561ba0914d29445d81bf4b2 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 14 Jul 2015 17:06:35 -0700 -Subject: [PATCH 216/246] Core TPM support +Subject: [PATCH 216/249] Core TPM support Add support for performing basic TPM measurements. Right now this only supports extending PCRs statically and only on UEFI and BIOS systems, but diff --git a/0217-Measure-kernel-initrd.patch b/0217-Measure-kernel-initrd.patch index 9ed935c5..e7b0bb7c 100644 --- a/0217-Measure-kernel-initrd.patch +++ b/0217-Measure-kernel-initrd.patch @@ -1,7 +1,7 @@ From ffd305d09def6610ef96f928c0df8303c5529d63 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Thu, 16 Jul 2015 15:22:34 -0700 -Subject: [PATCH 217/246] Measure kernel + initrd +Subject: [PATCH 217/249] Measure kernel + initrd Measure the kernel and initrd when loaded on UEFI systems --- diff --git a/0218-Add-BIOS-boot-measurement.patch b/0218-Add-BIOS-boot-measurement.patch index 0f561de6..d49b530a 100644 --- a/0218-Add-BIOS-boot-measurement.patch +++ b/0218-Add-BIOS-boot-measurement.patch @@ -1,7 +1,7 @@ From d8870587d46f8aa8d4f8db2cdcddecc829993447 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 15:48:51 -0700 -Subject: [PATCH 218/246] Add BIOS boot measurement +Subject: [PATCH 218/249] Add BIOS boot measurement Measure the on-disk grub core on BIOS systems - unlike UEFI, the firmware can't do this stage for us. diff --git a/0219-Measure-kernel-and-initrd-on-BIOS-systems.patch b/0219-Measure-kernel-and-initrd-on-BIOS-systems.patch index 02c62c20..d09bd4f1 100644 --- a/0219-Measure-kernel-and-initrd-on-BIOS-systems.patch +++ b/0219-Measure-kernel-and-initrd-on-BIOS-systems.patch @@ -1,7 +1,7 @@ From 5aee2444093cfc8006865766f89e5a775a940ab1 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 16:28:29 -0700 -Subject: [PATCH 219/246] Measure kernel and initrd on BIOS systems +Subject: [PATCH 219/249] Measure kernel and initrd on BIOS systems Measure the kernel and initrd when loaded on BIOS systems --- diff --git a/0220-Measure-the-kernel-commandline.patch b/0220-Measure-the-kernel-commandline.patch index d2dde637..f4ef54e7 100644 --- a/0220-Measure-the-kernel-commandline.patch +++ b/0220-Measure-the-kernel-commandline.patch @@ -1,7 +1,7 @@ From c1694574d6eb287e6e181dd018fe54b718a613b3 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 16:32:29 -0700 -Subject: [PATCH 220/246] Measure the kernel commandline +Subject: [PATCH 220/249] Measure the kernel commandline Measure the kernel commandline to ensure that it hasn't been modified --- diff --git a/0221-Measure-commands.patch b/0221-Measure-commands.patch index db28e6b9..8814679c 100644 --- a/0221-Measure-commands.patch +++ b/0221-Measure-commands.patch @@ -1,7 +1,7 @@ From c93a27f2e6a323a4985e6fe902eb5c6447fca572 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Mon, 10 Aug 2015 15:27:12 -0700 -Subject: [PATCH 221/246] Measure commands +Subject: [PATCH 221/249] Measure commands Measure each command executed by grub, which includes script execution. --- diff --git a/0222-Measure-multiboot-images-and-modules.patch b/0222-Measure-multiboot-images-and-modules.patch index af16d1b9..a08bd420 100644 --- a/0222-Measure-multiboot-images-and-modules.patch +++ b/0222-Measure-multiboot-images-and-modules.patch @@ -1,7 +1,7 @@ From b164ec560cd6373c0c5d8a189d70baeca2c3ef13 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 1 Sep 2015 16:02:55 -0700 -Subject: [PATCH 222/246] Measure multiboot images and modules +Subject: [PATCH 222/249] Measure multiboot images and modules --- grub-core/loader/i386/multiboot_mbi.c | 3 +++ diff --git a/0223-Fix-boot-when-there-s-no-TPM.patch b/0223-Fix-boot-when-there-s-no-TPM.patch index 46eee781..cb9813e8 100644 --- a/0223-Fix-boot-when-there-s-no-TPM.patch +++ b/0223-Fix-boot-when-there-s-no-TPM.patch @@ -1,7 +1,7 @@ From 33fb6113d65a819496d0b67b8db071fedad845a7 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Wed, 23 Mar 2016 16:49:42 -0700 -Subject: [PATCH 223/246] Fix boot when there's no TPM +Subject: [PATCH 223/249] Fix boot when there's no TPM If the firmware has TPM support but has no TPM, we're jumping to core.img without popping the registers back onto the stack. Fix that. diff --git a/0224-Rework-TPM-measurements.patch b/0224-Rework-TPM-measurements.patch index face08ed..afbf951c 100644 --- a/0224-Rework-TPM-measurements.patch +++ b/0224-Rework-TPM-measurements.patch @@ -1,7 +1,7 @@ From 415072bbda8b4de133c6dc6add230e41ee6d9579 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Wed, 23 Mar 2016 17:03:43 -0700 -Subject: [PATCH 224/246] Rework TPM measurements +Subject: [PATCH 224/249] Rework TPM measurements Rework TPM measurements to use fewer PCRs. After discussion with upstream, it's preferable to avoid using so many PCRs. Instead, measure into PCRs 8 diff --git a/0225-Fix-event-log-prefix.patch b/0225-Fix-event-log-prefix.patch index cb767ed8..ba02a72e 100644 --- a/0225-Fix-event-log-prefix.patch +++ b/0225-Fix-event-log-prefix.patch @@ -1,7 +1,7 @@ From 0816621235226952a5bd0cfd027eb97ff84df547 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 29 Mar 2016 15:36:49 -0700 -Subject: [PATCH 225/246] Fix event log prefix +Subject: [PATCH 225/249] Fix event log prefix We're not passing the prefixed version of the description to the event log. Fix that. diff --git a/0226-Set-the-first-boot-menu-entry-as-default-when-using-.patch b/0226-Set-the-first-boot-menu-entry-as-default-when-using-.patch index 0c7f3ef4..748851af 100644 --- a/0226-Set-the-first-boot-menu-entry-as-default-when-using-.patch +++ b/0226-Set-the-first-boot-menu-entry-as-default-when-using-.patch @@ -1,7 +1,7 @@ From 8278e40fdc4a4db0865fc632cbe2dcf7c124ba7a Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Fri, 6 Apr 2018 14:08:36 +0200 -Subject: [PATCH 226/246] Set the first boot menu entry as default when using +Subject: [PATCH 226/249] Set the first boot menu entry as default when using BLS fragments When BootLoaderSpec configuration files are used, the default boot menu diff --git a/0227-tpm-fix-warnings-when-compiling-for-platforms-other-.patch b/0227-tpm-fix-warnings-when-compiling-for-platforms-other-.patch index 1d2159f1..452205fe 100644 --- a/0227-tpm-fix-warnings-when-compiling-for-platforms-other-.patch +++ b/0227-tpm-fix-warnings-when-compiling-for-platforms-other-.patch @@ -1,7 +1,7 @@ From 4c53f61b1a889c0f55e76a763b05b6686ec613b8 Mon Sep 17 00:00:00 2001 From: Michael Marineau Date: Sun, 21 Aug 2016 18:24:58 -0700 -Subject: [PATCH 227/246] tpm: fix warnings when compiling for platforms other +Subject: [PATCH 227/249] tpm: fix warnings when compiling for platforms other than pc and efi --- diff --git a/0228-Make-TPM-errors-less-fatal.patch b/0228-Make-TPM-errors-less-fatal.patch index b14e1368..3e2358ab 100644 --- a/0228-Make-TPM-errors-less-fatal.patch +++ b/0228-Make-TPM-errors-less-fatal.patch @@ -1,7 +1,7 @@ From 406f7dda0cc2689170f102341a546c87072d1ce5 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Thu, 13 Oct 2016 13:55:26 -0700 -Subject: [PATCH 228/246] Make TPM errors less fatal +Subject: [PATCH 228/249] Make TPM errors less fatal Handle TPM errors, and stop trying to use the TPM once we hit one. --- diff --git a/0229-blscfg-handle-multiple-initramfs-images.patch b/0229-blscfg-handle-multiple-initramfs-images.patch index b463349a..920baf16 100644 --- a/0229-blscfg-handle-multiple-initramfs-images.patch +++ b/0229-blscfg-handle-multiple-initramfs-images.patch @@ -1,7 +1,7 @@ From a230ec5c31d818c2f046acf3592a5492d3e2ea69 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 11 Apr 2018 13:44:29 -0400 -Subject: [PATCH 229/246] blscfg: handle multiple initramfs images. +Subject: [PATCH 229/249] blscfg: handle multiple initramfs images. Signed-off-by: Peter Jones --- diff --git a/0230-BLS-Fix-grub2-switch-to-blscfg-on-non-EFI-machines.patch b/0230-BLS-Fix-grub2-switch-to-blscfg-on-non-EFI-machines.patch index 589282c2..c4586b5c 100644 --- a/0230-BLS-Fix-grub2-switch-to-blscfg-on-non-EFI-machines.patch +++ b/0230-BLS-Fix-grub2-switch-to-blscfg-on-non-EFI-machines.patch @@ -1,7 +1,7 @@ From f006df881d1b2b3ca7320ecfcd33181295ec1018 Mon Sep 17 00:00:00 2001 From: Jan Hlavac Date: Tue, 10 Apr 2018 16:07:36 +0200 -Subject: [PATCH 230/246] BLS: Fix grub2-switch-to-blscfg on non-EFI machines +Subject: [PATCH 230/249] BLS: Fix grub2-switch-to-blscfg on non-EFI machines On the non-EFI machines the grub2-switch-to-blscfg script places the BLS snippets into the /boot directory. But the right location is diff --git a/0231-BLS-Use-etcdefaultgrub-instead-of-etc.patch b/0231-BLS-Use-etcdefaultgrub-instead-of-etc.patch index a56e305a..9e7c5367 100644 --- a/0231-BLS-Use-etcdefaultgrub-instead-of-etc.patch +++ b/0231-BLS-Use-etcdefaultgrub-instead-of-etc.patch @@ -1,7 +1,7 @@ From 29b79fde633a43223ead7874ffd373603f129832 Mon Sep 17 00:00:00 2001 From: Jan Hlavac Date: Tue, 10 Apr 2018 16:56:28 +0200 -Subject: [PATCH 231/246] BLS: Use ${etcdefaultgrub} instead of /etc/... +Subject: [PATCH 231/249] BLS: Use ${etcdefaultgrub} instead of /etc/... Inside the grub-switch-to-blscfg script the ${etcdefaultgrub} variable is used. So replace the hardcoded /etc/default/grub with it. diff --git a/0232-Add-missing-options-to-grub2-switch-to-blscfg-man-pa.patch b/0232-Add-missing-options-to-grub2-switch-to-blscfg-man-pa.patch index b4c74807..ded70ca6 100644 --- a/0232-Add-missing-options-to-grub2-switch-to-blscfg-man-pa.patch +++ b/0232-Add-missing-options-to-grub2-switch-to-blscfg-man-pa.patch @@ -1,7 +1,7 @@ From c3a05672a450fd9e95de5df2b0c27c24fe04cd83 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Wed, 11 Apr 2018 11:36:43 +0200 -Subject: [PATCH 232/246] Add missing options to grub2-switch-to-blscfg man +Subject: [PATCH 232/249] Add missing options to grub2-switch-to-blscfg man page The script --bls-directory and --backup-suffix options were not documented diff --git a/0233-Make-grub2-switch-to-blscfg-to-generate-debug-BLS-wh.patch b/0233-Make-grub2-switch-to-blscfg-to-generate-debug-BLS-wh.patch index 6b45e7e2..b3225aab 100644 --- a/0233-Make-grub2-switch-to-blscfg-to-generate-debug-BLS-wh.patch +++ b/0233-Make-grub2-switch-to-blscfg-to-generate-debug-BLS-wh.patch @@ -1,7 +1,7 @@ From 55b00d518e029a563653401c6908489924c07238 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Wed, 11 Apr 2018 11:49:24 +0200 -Subject: [PATCH 233/246] Make grub2-switch-to-blscfg to generate debug BLS +Subject: [PATCH 233/249] Make grub2-switch-to-blscfg to generate debug BLS when MAKEDEBUG is set If MAKEDEBUG=yes in /etc/sysconfig/kernel, then a debug menu entry should diff --git a/0234-Make-grub2-switch-to-blscfg-to-generate-BLS-fragment.patch b/0234-Make-grub2-switch-to-blscfg-to-generate-BLS-fragment.patch index b7995775..7b318678 100644 --- a/0234-Make-grub2-switch-to-blscfg-to-generate-BLS-fragment.patch +++ b/0234-Make-grub2-switch-to-blscfg-to-generate-BLS-fragment.patch @@ -1,7 +1,7 @@ From 60bddbc714c96ca05821d52bdd7dbad7eabd6dd5 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Wed, 11 Apr 2018 12:39:59 +0200 -Subject: [PATCH 234/246] Make grub2-switch-to-blscfg to generate BLS fragment +Subject: [PATCH 234/249] Make grub2-switch-to-blscfg to generate BLS fragment for rescue kernel If a rescue image is available, it should have a BootLoaderSpec fragment. diff --git a/0235-Only-attempt-to-query-dev-mounted-in-boot-efi-as-boo.patch b/0235-Only-attempt-to-query-dev-mounted-in-boot-efi-as-boo.patch index c708f6bd..e2731494 100644 --- a/0235-Only-attempt-to-query-dev-mounted-in-boot-efi-as-boo.patch +++ b/0235-Only-attempt-to-query-dev-mounted-in-boot-efi-as-boo.patch @@ -1,7 +1,7 @@ From 8afe59812e83e78564697ef8241ed4f1b3527423 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 24 Apr 2018 02:16:38 +0200 -Subject: [PATCH 235/246] Only attempt to query dev mounted in /boot/efi as +Subject: [PATCH 235/249] Only attempt to query dev mounted in /boot/efi as boot dev on EFI machines The 10_linux script calls grub2-probe to probe the information for the dev diff --git a/0236-Include-OSTree-path-when-searching-kernels-images-if.patch b/0236-Include-OSTree-path-when-searching-kernels-images-if.patch index 6c762a38..fc4007e2 100644 --- a/0236-Include-OSTree-path-when-searching-kernels-images-if.patch +++ b/0236-Include-OSTree-path-when-searching-kernels-images-if.patch @@ -1,7 +1,7 @@ From 459eaeacbb40116dcb501cf165c7816e70c66fb3 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 24 Apr 2018 02:28:04 +0200 -Subject: [PATCH 236/246] Include OSTree path when searching kernels images if +Subject: [PATCH 236/249] Include OSTree path when searching kernels images if BLS config is enabled The OSTree based distros (i.e: Fedora Atomic) don't install kernel images diff --git a/0237-Use-BLS-version-field-to-compare-entries-if-id-field.patch b/0237-Use-BLS-version-field-to-compare-entries-if-id-field.patch index df177387..f6797148 100644 --- a/0237-Use-BLS-version-field-to-compare-entries-if-id-field.patch +++ b/0237-Use-BLS-version-field-to-compare-entries-if-id-field.patch @@ -1,7 +1,7 @@ From 689a48c76bee8049a50f962852f43f108c815450 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Fri, 27 Apr 2018 17:53:41 +0200 -Subject: [PATCH 237/246] Use BLS version field to compare entries if id field +Subject: [PATCH 237/249] Use BLS version field to compare entries if id field isn't defined The BootLoaderSpec fragments generated by OSTree don't have the id field, diff --git a/0238-Add-version-field-to-BLS-generated-by-grub2-switch-t.patch b/0238-Add-version-field-to-BLS-generated-by-grub2-switch-t.patch index 2c9300ce..cbef3be0 100644 --- a/0238-Add-version-field-to-BLS-generated-by-grub2-switch-t.patch +++ b/0238-Add-version-field-to-BLS-generated-by-grub2-switch-t.patch @@ -1,7 +1,7 @@ From 0994be8d655420685d900a08443b4fd53f639e72 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Thu, 10 May 2018 10:52:11 +0200 -Subject: [PATCH 238/246] Add version field to BLS generated by +Subject: [PATCH 238/249] Add version field to BLS generated by grub2-switch-to-blscfg The version field is present in the BLS fragments that are shipped in the diff --git a/0239-Fixup-for-newer-compiler.patch b/0239-Fixup-for-newer-compiler.patch index ba6b4968..fee704ca 100644 --- a/0239-Fixup-for-newer-compiler.patch +++ b/0239-Fixup-for-newer-compiler.patch @@ -1,7 +1,7 @@ From fe5e237fbe38fcbec4018b7e5d328b211bbabb2f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 10 May 2018 13:40:19 -0400 -Subject: [PATCH 239/246] Fixup for newer compiler +Subject: [PATCH 239/249] Fixup for newer compiler --- grub-core/fs/btrfs.c | 2 +- diff --git a/0240-Don-t-attempt-to-export-the-start-and-_start-symbols.patch b/0240-Don-t-attempt-to-export-the-start-and-_start-symbols.patch index a6fbd5a3..a7092b1b 100644 --- a/0240-Don-t-attempt-to-export-the-start-and-_start-symbols.patch +++ b/0240-Don-t-attempt-to-export-the-start-and-_start-symbols.patch @@ -1,7 +1,7 @@ From d03f1ebcdf88a1bf850730b9cbd1126894bdca76 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Sat, 12 May 2018 11:29:07 +0200 -Subject: [PATCH 240/246] Don't attempt to export the start and _start symbols +Subject: [PATCH 240/249] Don't attempt to export the start and _start symbols for grub-emu Commit 318ee04aadc ("make better backtraces") reworked the backtrace logic diff --git a/0241-Simplify-BLS-entry-key-val-pairs-lookup.patch b/0241-Simplify-BLS-entry-key-val-pairs-lookup.patch index 4a552f6a..d8eba3f0 100644 --- a/0241-Simplify-BLS-entry-key-val-pairs-lookup.patch +++ b/0241-Simplify-BLS-entry-key-val-pairs-lookup.patch @@ -1,7 +1,7 @@ From 385bb1bd33e9467eda798ea3a4ac16e86a40ce75 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Fri, 11 May 2018 23:47:31 +0200 -Subject: [PATCH 241/246] Simplify BLS entry key val pairs lookup +Subject: [PATCH 241/249] Simplify BLS entry key val pairs lookup The pairs found in the BLS are being sorted but this isn't really needed and it makes the implementation complex and error prone. diff --git a/0242-Add-relative-path-to-the-kernel-and-initrds-BLS-fiel.patch b/0242-Add-relative-path-to-the-kernel-and-initrds-BLS-fiel.patch index 8eb38beb..d2336551 100644 --- a/0242-Add-relative-path-to-the-kernel-and-initrds-BLS-fiel.patch +++ b/0242-Add-relative-path-to-the-kernel-and-initrds-BLS-fiel.patch @@ -1,7 +1,7 @@ From a24ca589707fa69fe7be9dc1007f4ae114994f9f Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Mon, 4 Jun 2018 16:10:22 +0200 -Subject: [PATCH 242/246] Add relative path to the kernel and initrds BLS +Subject: [PATCH 242/249] Add relative path to the kernel and initrds BLS fields if needed The static BLS config file shipped with the kernel package assumes that diff --git a/0243-Skip-leading-spaces-on-BLS-field-values.patch b/0243-Skip-leading-spaces-on-BLS-field-values.patch index c36a69da..06d93023 100644 --- a/0243-Skip-leading-spaces-on-BLS-field-values.patch +++ b/0243-Skip-leading-spaces-on-BLS-field-values.patch @@ -1,7 +1,7 @@ From a5bf618156915e97a0e7df07556ab728377de77e Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Thu, 7 Jun 2018 00:44:51 +0200 -Subject: [PATCH 243/246] Skip leading spaces on BLS field values +Subject: [PATCH 243/249] Skip leading spaces on BLS field values The GRUB 2 blscfg command doesn't parse correctly the BLS fields if these have extra spaces before the field values. For example, the following BLS diff --git a/0244-Fixup-for-newer-compiler.patch b/0244-Fixup-for-newer-compiler.patch index ad28fc8d..a8695d32 100644 --- a/0244-Fixup-for-newer-compiler.patch +++ b/0244-Fixup-for-newer-compiler.patch @@ -1,7 +1,7 @@ From df99134313f5571d8806d9121d04b8c8a5509d98 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 10 May 2018 13:40:19 -0400 -Subject: [PATCH 244/246] Fixup for newer compiler +Subject: [PATCH 244/249] Fixup for newer compiler --- conf/Makefile.common | 2 +- diff --git a/0245-TPM-Fix-hash_log_extend_event-function-prototype.patch b/0245-TPM-Fix-hash_log_extend_event-function-prototype.patch index 3c43f938..2d3cb224 100644 --- a/0245-TPM-Fix-hash_log_extend_event-function-prototype.patch +++ b/0245-TPM-Fix-hash_log_extend_event-function-prototype.patch @@ -1,7 +1,7 @@ From a4fc13ebd23cb7a89ea678ed4e52b5142215671d Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Fri, 15 Jun 2018 09:25:00 +0200 -Subject: [PATCH 245/246] TPM: Fix hash_log_extend_event function prototype +Subject: [PATCH 245/249] TPM: Fix hash_log_extend_event function prototype The DataToHash argument is a efi_physical_address, not a *pointer* to a efi_physical_address. diff --git a/0246-TPM-Fix-compiler-warnings.patch b/0246-TPM-Fix-compiler-warnings.patch index 23e38f10..d254913f 100644 --- a/0246-TPM-Fix-compiler-warnings.patch +++ b/0246-TPM-Fix-compiler-warnings.patch @@ -1,7 +1,7 @@ From c850916d93293465abc8beb5bdebd0ab70035d88 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Fri, 15 Jun 2018 09:58:50 +0200 -Subject: [PATCH 246/246] TPM: Fix compiler warnings +Subject: [PATCH 246/249] TPM: Fix compiler warnings Stop defining our own Event type in tpm.c instead use the one from the header, so that it matches the function prototype. diff --git a/0247-grub-switch-to-blscfg.in-get-rid-of-a-bunch-of-bashi.patch b/0247-grub-switch-to-blscfg.in-get-rid-of-a-bunch-of-bashi.patch new file mode 100644 index 00000000..0a1ba7f3 --- /dev/null +++ b/0247-grub-switch-to-blscfg.in-get-rid-of-a-bunch-of-bashi.patch @@ -0,0 +1,117 @@ +From cee0bf1f56c89af640b23432f8b40fcd1f4a2f55 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Fri, 22 Jun 2018 14:01:06 -0400 +Subject: [PATCH 247/249] grub-switch-to-blscfg.in: get rid of a bunch of + bashisms + +Since this says /bin/sh at the top, it should work with dash. + +Signed-off-by: Peter Jones +--- + util/grub-switch-to-blscfg.in | 30 +++++++++++++++--------------- + 1 file changed, 15 insertions(+), 15 deletions(-) + +diff --git a/util/grub-switch-to-blscfg.in b/util/grub-switch-to-blscfg.in +index 2482483a437..dac41e73836 100644 +--- a/util/grub-switch-to-blscfg.in ++++ b/util/grub-switch-to-blscfg.in +@@ -151,18 +151,18 @@ done + + find_grub_cfg() { + local candidate="" +- while [[ -e "${candidate}" || $# -gt 0 ]] ++ while [ -e "${candidate}" -o $# -gt 0 ] + do +- if [[ ! -e "${candidate}" ]] ; then ++ if [ ! -e "${candidate}" ] ; then + candidate="$1" + shift + fi + +- if [[ -L "${candidate}" ]]; then ++ if [ -L "${candidate}" ]; then + candidate="$(realpath "${candidate}")" + fi + +- if [[ -f "${candidate}" ]]; then ++ if [ -f "${candidate}" ]; then + export GRUB_CONFIG_FILE="${candidate}" + return 0 + fi +@@ -175,11 +175,11 @@ if ! find_grub_cfg ${startlink} ${grubdir}/grub.cfg ; then + exit 1 + fi + +-if [[ ! -d "${blsdir}" ]]; then ++if [ ! -d "${blsdir}" ]; then + install -m 700 -d "${blsdir}" + fi + +-if [[ -f /etc/machine-id ]]; then ++if [ -f /etc/machine-id ]; then + MACHINE_ID=$(cat /etc/machine-id) + else + MACHINE_ID=$(dmesg | sha256sum) +@@ -194,9 +194,9 @@ mkbls() { + local debugid="" + local flavor="" + +- if [[ "$kernelver" == *\+* ]] ; then ++ if [ "$kernelver" == *\+* ] ; then + local flavor=-"${kernelver##*+}" +- if [[ "${flavor}" == "-debug" ]]; then ++ if [ "${flavor}" == "-debug" ]; then + local debugname=" with debugging" + local debugid="-debug" + fi +@@ -219,15 +219,15 @@ EOF + } + + for kernelver in $(cd /lib/modules/ ; ls -1) "" ; do +- if [[ ! -d "/lib/modules/${kernelver}" ]] ; then ++ if [ ! -d "/lib/modules/${kernelver}" ] ; then + continue + fi +- if [[ ! -f "/boot/vmlinuz-${kernelver}" ]]; then ++ if [ ! -f "/boot/vmlinuz-${kernelver}" ]; then + continue + fi + bls_target="${blsdir}/${MACHINE_ID}-${kernelver}.conf" + kernel_dir="/lib/modules/${kernelver}" +- if [[ -f "${kernel_dir}/bls.conf" ]]; then ++ if [ -f "${kernel_dir}/bls.conf" ]; then + cp -af "${kernel_dir}/bls.conf" "${bls_target}" + else + mkbls "${kernelver}" \ +@@ -240,7 +240,7 @@ for kernelver in $(cd /lib/modules/ ; ls -1) "" ; do + linux_relpath="$("${grub_mkrelpath}" /boot/$linux)" + initrd_relpath="$("${grub_mkrelpath}" /boot/$initrd)" + +- if [[ $linux != $linux_relpath ]]; then ++ if [ $linux != $linux_relpath ] ; then + sed -i -e "s,^linux.*,linux ${linux_relpath},g" "${bls_target}" + sed -i -e "s,^initrd.*,initrd ${initrd_relpath},g" "${bls_target}" + fi +@@ -257,8 +257,8 @@ for kernelver in $(cd /lib/modules/ ; ls -1) "" ; do + fi + done + +-if [[ -f "/boot/vmlinuz-0-rescue-${MACHINE_ID}" ]]; then +- if [[ $linux != $linux_relpath ]]; then ++if [ -f "/boot/vmlinuz-0-rescue-${MACHINE_ID}" ]; then ++ if [ $linux != $linux_relpath ]; then + bootprefix="$(dirname ${linux_relpath})" + fi + mkbls "0-rescue-${MACHINE_ID}" "0" "${bootprefix}" >"${blsdir}/${MACHINE_ID}-0-rescue.conf" +@@ -282,7 +282,7 @@ elif ! grep -q '^GRUB_ENABLE_BLSCFG=.*' "${etcdefaultgrub}" ; then + GENERATE=1 + fi + +-if [[ "${GENERATE}" -eq 1 ]] ; then ++if [ "${GENERATE}" -eq 1 ] ; then + cp -af "${GRUB_CONFIG_FILE}" "${GRUB_CONFIG_FILE}${backupsuffix}" + if ! grub2-mkconfig -o "${GRUB_CONFIG_FILE}" ; then + cp -af "${GRUB_CONFIG_FILE}${backupsuffix}" "${GRUB_CONFIG_FILE}" +-- +2.17.1 + diff --git a/0248-grub-switch-to-blscfg.in-Better-boot-prefix-checking.patch b/0248-grub-switch-to-blscfg.in-Better-boot-prefix-checking.patch new file mode 100644 index 00000000..fdf9a0f5 --- /dev/null +++ b/0248-grub-switch-to-blscfg.in-Better-boot-prefix-checking.patch @@ -0,0 +1,76 @@ +From b3ac18e3265f709b35fe0aa5578c6f4030882a4d Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Fri, 22 Jun 2018 14:04:28 -0400 +Subject: [PATCH 248/249] grub-switch-to-blscfg.in: Better boot prefix checking + +Signed-off-by: Peter Jones +--- + util/grub-switch-to-blscfg.in | 36 +++++++++++++++++------------------- + 1 file changed, 17 insertions(+), 19 deletions(-) + +diff --git a/util/grub-switch-to-blscfg.in b/util/grub-switch-to-blscfg.in +index dac41e73836..884cf45b1e1 100644 +--- a/util/grub-switch-to-blscfg.in ++++ b/util/grub-switch-to-blscfg.in +@@ -219,30 +219,31 @@ EOF + } + + for kernelver in $(cd /lib/modules/ ; ls -1) "" ; do +- if [ ! -d "/lib/modules/${kernelver}" ] ; then +- continue +- fi +- if [ ! -f "/boot/vmlinuz-${kernelver}" ]; then +- continue +- fi + bls_target="${blsdir}/${MACHINE_ID}-${kernelver}.conf" ++ linux="$(grep '^linux[ \t]' "${bls_target}" | sed -e 's,^linux[ \t]+,,')" + kernel_dir="/lib/modules/${kernelver}" +- if [ -f "${kernel_dir}/bls.conf" ]; then ++ ++ if [ ! -d "${kernel_dir}" ] ; then ++ continue ++ fi ++ if [ ! -f "${linux_path}" ]; then ++ continue ++ fi ++ ++ linux_relpath="$("${grub_mkrelpath}" "${linux}")" ++ bootprefix="${linux%%"${linux_relpath}"}" ++ ++ if [ -f "${kernel_dir}/bls.conf" ] ; then + cp -af "${kernel_dir}/bls.conf" "${bls_target}" + else + mkbls "${kernelver}" \ + "$(date -u +%Y%m%d%H%M%S -d "$(stat -c '%y' "${kernel_dir}")")" \ ++ "${bootprefix}" \ + >"${bls_target}" + fi + +- linux="$(grep '^linux[ \t]' "${bls_target}" | sed -e 's,^linux[ \t]*,,')" +- initrd="$(grep '^initrd[ \t]' "${bls_target}" | sed -e 's,^initrd[ \t]*,,')" +- linux_relpath="$("${grub_mkrelpath}" /boot/$linux)" +- initrd_relpath="$("${grub_mkrelpath}" /boot/$initrd)" +- +- if [ $linux != $linux_relpath ] ; then +- sed -i -e "s,^linux.*,linux ${linux_relpath},g" "${bls_target}" +- sed -i -e "s,^initrd.*,initrd ${initrd_relpath},g" "${bls_target}" ++ if [ -n "${bootprefix}" ]; then ++ sed -i -e "s,\([ \t]\)${bootprefix},\1,g" "${bls_target}" + fi + + if [ "x$GRUB_LINUX_MAKE_DEBUG" = "xtrue" ]; then +@@ -257,10 +258,7 @@ for kernelver in $(cd /lib/modules/ ; ls -1) "" ; do + fi + done + +-if [ -f "/boot/vmlinuz-0-rescue-${MACHINE_ID}" ]; then +- if [ $linux != $linux_relpath ]; then +- bootprefix="$(dirname ${linux_relpath})" +- fi ++if [ -n "${bootprefix}" -a -f "/boot/vmlinuz-0-rescue-${MACHINE_ID}" ]; then + mkbls "0-rescue-${MACHINE_ID}" "0" "${bootprefix}" >"${blsdir}/${MACHINE_ID}-0-rescue.conf" + fi + +-- +2.17.1 + diff --git a/0249-Use-boot-loader-entries-as-BLS-directory-path-also-o.patch b/0249-Use-boot-loader-entries-as-BLS-directory-path-also-o.patch new file mode 100644 index 00000000..0b4f30b9 --- /dev/null +++ b/0249-Use-boot-loader-entries-as-BLS-directory-path-also-o.patch @@ -0,0 +1,155 @@ +From fc5abde941409619f8c40b842e35e1820d4327dc Mon Sep 17 00:00:00 2001 +From: Javier Martinez Canillas +Date: Mon, 25 Jun 2018 11:45:33 +0200 +Subject: [PATCH 249/249] Use /boot/loader/entries as BLS directory path also + on EFI systems + +For EFI systems, the BLS fragments were stored in the EFI System Partition +(ESP) while in non-EFI systems it was stored in /boot. + +For consistency, it's better to always store the BLS fragments in the same +path regardless of the firmware interface used. + +Also change the grub2-switch-to-blscfg script default BLS directory. + +Signed-off-by: Javier Martinez Canillas +--- + grub-core/commands/blscfg.c | 48 ++++++++++++++++++++++++++++++++----------- + util/grub-switch-to-blscfg.in | 4 ++-- + 2 files changed, 38 insertions(+), 14 deletions(-) + +diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c +index cd5c29fdf74..11fe6e2c29f 100644 +--- a/grub-core/commands/blscfg.c ++++ b/grub-core/commands/blscfg.c +@@ -381,9 +381,14 @@ static int bls_cmp(const void *p0, const void *p1, void *state UNUSED) + return rc; + } + ++struct read_entry_info { ++ const char *devid; ++ const char *dirname; ++}; ++ + static int read_entry ( + const char *filename, +- const struct grub_dirhook_info *info UNUSED, ++ const struct grub_dirhook_info *dirhook_info UNUSED, + void *data) + { + grub_size_t n; +@@ -391,8 +396,7 @@ static int read_entry ( + grub_file_t f = NULL; + grub_off_t sz; + struct bls_entry *entry; +- const char *dirname= (const char *)data; +- const char *devid = grub_env_get ("boot"); ++ struct read_entry_info *info = (struct read_entry_info *)data; + + grub_dprintf ("blscfg", "filename: \"%s\"\n", filename); + +@@ -406,7 +410,7 @@ static int read_entry ( + if (grub_strcmp (filename + n - 5, ".conf") != 0) + return 0; + +- p = grub_xasprintf ("(%s)%s/%s", devid, dirname, filename); ++ p = grub_xasprintf ("(%s)%s/%s", info->devid, info->dirname, filename); + + f = grub_file_open (p); + if (!f) +@@ -655,10 +659,13 @@ static int find_entry (const char *filename, + void *data) + { + struct find_entry_info *info = (struct find_entry_info *)data; ++ struct read_entry_info read_entry_info; + grub_file_t f = NULL; + char *grubenv_path = NULL; + grub_envblk_t env = NULL; + char *default_blsdir = NULL; ++ grub_fs_t blsdir_fs = NULL; ++ grub_device_t blsdir_dev = NULL; + const char *blsdir = NULL; + char *saved_env_buf = NULL; + int r = 0; +@@ -678,9 +685,6 @@ static int find_entry (const char *filename, + if (info->platform == PLATFORM_EMU) + default_blsdir = grub_xasprintf ("%s%s", GRUB_BOOT_DEVICE, + GRUB_BLS_CONFIG_PATH); +- else if (info->platform == PLATFORM_EFI) +- default_blsdir = grub_xasprintf ("/EFI/%s%s", filename, +- GRUB_BLS_CONFIG_PATH); + else + default_blsdir = grub_xasprintf ("%s", GRUB_BLS_CONFIG_PATH); + +@@ -744,16 +748,33 @@ static int find_entry (const char *filename, + goto finish; + + grub_dprintf ("blscfg", "blsdir: \"%s\"\n", blsdir); +- if (blsdir[0] != '/' && info->platform == PLATFORM_EFI) +- blsdir = grub_xasprintf ("/EFI/%s/%s/", filename, blsdir); +- else +- blsdir = grub_strdup (blsdir); ++ blsdir = grub_strdup (blsdir); + + if (!blsdir) + goto finish; + + grub_dprintf ("blscfg", "blsdir: \"%s\"\n", blsdir); +- r = info->fs->dir (info->dev, blsdir, read_entry, (char *)blsdir); ++ if (info->platform == PLATFORM_EFI) { ++ read_entry_info.devid = grub_env_get ("root"); ++ if (!read_entry_info.devid) ++ goto finish; ++ ++ blsdir_dev = grub_device_open (read_entry_info.devid); ++ if (!blsdir_dev) ++ goto finish; ++ ++ blsdir_fs = grub_fs_probe (blsdir_dev); ++ if (!blsdir_fs) ++ goto finish; ++ ++ } else { ++ read_entry_info.devid = devid; ++ blsdir_dev = info->dev; ++ blsdir_fs = info->fs; ++ } ++ read_entry_info.dirname = blsdir; ++ ++ r = blsdir_fs->dir (blsdir_dev, blsdir, read_entry, &read_entry_info); + if (r != 0) { + grub_dprintf ("blscfg", "read_entry returned error\n"); + grub_err_t e; +@@ -773,6 +794,9 @@ static int find_entry (const char *filename, + for (r = 0; r < nentries; r++) + bls_free_entry (entries[r]); + finish: ++ if (info->platform == PLATFORM_EFI && blsdir_dev) ++ grub_device_close (blsdir_dev); ++ + nentries = 0; + + grub_free (entries); +diff --git a/util/grub-switch-to-blscfg.in b/util/grub-switch-to-blscfg.in +index 884cf45b1e1..2f37a1f740b 100644 +--- a/util/grub-switch-to-blscfg.in ++++ b/util/grub-switch-to-blscfg.in +@@ -44,13 +44,13 @@ EFIDIR=$(grep ^ID= /etc/os-release | sed -e 's/^ID=//' -e 's/rhel/redhat/') + if [ -d /sys/firmware/efi/efivars/ ]; then + startlink=/etc/grub2-efi.cfg + grubdir=`echo "/@bootdirname@/efi/EFI/${EFIDIR}/" | sed 's,//*,/,g'` +- blsdir=`echo "/@bootdirname@/efi/EFI/${EFIDIR}/loader/entries" | sed 's,//*,/,g'` + else + startlink=/etc/grub2.cfg + grubdir=`echo "/@bootdirname@/@grubdirname@" | sed 's,//*,/,g'` +- blsdir=`echo "/@bootdirname@/loader/entries" | sed 's,//*,/,g'` + fi + ++blsdir=`echo "/@bootdirname@/loader/entries" | sed 's,//*,/,g'` ++ + backupsuffix=.bak + + export TEXTDOMAIN=@PACKAGE@ +-- +2.17.1 + diff --git a/20-grub.install b/20-grub.install index a6959c52..eda11d88 100755 --- a/20-grub.install +++ b/20-grub.install @@ -19,12 +19,7 @@ MACHINE_ID=$KERNEL_INSTALL_MACHINE_ID # Remove it, since for grub2 the images are always installed in /boot rm -rf "${BOOT_DIR_ABS%/*}" -EFIDIR="$(echo "${ID}" | sed -e 's/rhel/redhat/')" - BLS_DIR="/boot/loader/entries" -if [ -d /sys/firmware/efi ]; then - BLS_DIR="/boot/efi/EFI/${EFIDIR}/loader/entries" -fi mkbls() { local kernelver=$1 && shift diff --git a/grub.patches b/grub.patches index b687814d..747da5d3 100644 --- a/grub.patches +++ b/grub.patches @@ -244,3 +244,6 @@ Patch0243: 0243-Skip-leading-spaces-on-BLS-field-values.patch Patch0244: 0244-Fixup-for-newer-compiler.patch Patch0245: 0245-TPM-Fix-hash_log_extend_event-function-prototype.patch Patch0246: 0246-TPM-Fix-compiler-warnings.patch +Patch0247: 0247-grub-switch-to-blscfg.in-get-rid-of-a-bunch-of-bashi.patch +Patch0248: 0248-grub-switch-to-blscfg.in-Better-boot-prefix-checking.patch +Patch0249: 0249-Use-boot-loader-entries-as-BLS-directory-path-also-o.patch diff --git a/grub2.spec b/grub2.spec index 822958e8..885f2201 100644 --- a/grub2.spec +++ b/grub2.spec @@ -453,6 +453,10 @@ fi %endif %changelog +* Tue Jun 26 2018 Javier Martinez Canillas +- Cleanups and fixes for grub2-switch-to-blscfg (pjones) +- Use /boot/loader/entries as BLS dir also on EFI (javierm) + * Tue Jun 19 2018 Peter Jones - 2.02-37 - Fix some TPM errors on 32-bit (hdegoede) - More fixups to avoid compiler changes (pjones) From afb0baacd6e360571056cf7d7aa38783f5b38974 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Mon, 2 Jul 2018 14:42:57 +0200 Subject: [PATCH 32/45] Use BLS fragment filename as menu entry id and for sort criterion The BLS config filenames are guaranteed to be unique, so they can be used as GRUB2 entry id and can also be used to sort the menu entries. Signed-off-by: Javier Martinez Canillas --- 0001-Bump-version-to-2.03.patch | 2 +- 0002-Remove-bashisms-from-tests.patch | 2 +- 0003-fs-tester-make-sh-compatible.patch | 2 +- 0004-support-busybox-date.patch | 2 +- ...retrieve-fstime-when-it-s-not-useful.patch | 2 +- 0006-Support-lseek64.patch | 2 +- 0007-Use-SHELL-rather-than-bin-sh.patch | 2 +- 0008-po-Use-SHELL-rather-than-bin-sh.patch | 2 +- 0009-Add-termux-path-to-dict.patch | 2 +- 0010-Fix-shebang-for-termux.patch | 2 +- 0011-Add-strtoull-test.patch | 2 +- ...x-behaviour-on-chars-between-9-and-a.patch | 2 +- 0013-Add-Virtual-LAN-support.patch | 2 +- ...out-to-mkimage_generate_elfXX-rather.patch | 2 +- ...r-arm-uboot-code-to-make-it-genereic.patch | 2 +- ...-parts-that-are-platform-independent.patch | 2 +- ...-Rename-uboot-halt.c-to-dummy-halt.c.patch | 2 +- ...ame-uboot-datetime-to-dummy-datetime.patch | 2 +- 0019-arm-coreboot-Start-new-port.patch | 2 +- ...upport-for-device-tree-based-drivers.patch | 2 +- ...-coreboot-Support-for-vexpress-timer.patch | 2 +- 0022-arm-coreboot-Export-FDT-routines.patch | 2 +- ...-Split-protocol-from-controller-code.patch | 2 +- ...reboot-Support-keyboard-for-vexpress.patch | 2 +- ...m_coreboot-Support-grub-mkstandalone.patch | 2 +- ...oreboot-Support-loading-linux-images.patch | 2 +- 0027-arm_coreboot-Support-DMA.patch | 2 +- 0028-ehci-Split-core-code-from-PCI-part.patch | 2 +- 0029-arm_coreboot-Support-EHCI.patch | 2 +- ...n-FDT-nodes-with-compatible-property.patch | 2 +- ...ty-to-send-receive-messages-on-paren.patch | 2 +- 0032-rk3288_spi-Add-SPI-driver.patch | 2 +- ...eboot-Add-Chromebook-keyboard-driver.patch | 2 +- 0034-Missing-parts-of-previous-commit.patch | 2 +- ...-cbmemc-to-support-updated-console-f.patch | 2 +- ...t_keyboard-Fix-falco-chromebook-case.patch | 2 +- 0037-sparc64-Close-cdboot-ihandle.patch | 2 +- ...-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch | 2 +- ...p-option-support-in-xen_module-comma.patch | 2 +- ...inux_xen.in-Add-xen_boot-command-sup.patch | 2 +- ...-introduction-of-Xen-boot-commands-i.patch | 2 +- ...se-devspec-to-determine-the-OBP-path.patch | 2 +- ...unt-ext2-3-4-filesystems-that-have-t.patch | 2 +- 0044-ehci-Fix-compilation-for-amd64.patch | 2 +- ...-compilation-for-ppc-sparc-and-arm64.patch | 2 +- 0046-ehci-Fix-compilation-on-i386.patch | 2 +- 0047-crypto-Fix-use-after-free.patch | 2 +- 0048-arm-efi-Fix-compilation.patch | 2 +- 0049-fdt-silence-clang-warning.patch | 2 +- 0050-Fix-a-segfault-in-lsefi.patch | 2 +- ...t-typedef-and-use-grub_size_t-instea.patch | 2 +- ...x-reading-label-lvd.ident-is-dstring.patch | 2 +- ...b-core-fs-udf.c-Add-support-for-UUID.patch | 2 +- ...orriso-presence-before-doing-anythin.patch | 2 +- 0055-Fail-if-xorriso-failed.patch | 2 +- ...efi-refactor-grub_efi_allocate_pages.patch | 2 +- 0057-Remove-grub_efi_allocate_pages.patch | 2 +- 0058-efi-move-fdt-helper-library.patch | 2 +- 0059-efi-Add-GRUB_PE32_MAGIC-definition.patch | 2 +- ...inux-loader-improve-type-portability.patch | 2 +- ...allocation-type-to-GRUB_EFI_LOADER_C.patch | 2 +- ...RM_-definitions-when-handling-term-c.patch | 2 +- ...B_GZ-prefix-to-gzio-specific-defines.patch | 2 +- 0064-re-write-.gitignore.patch | 2 +- ...ient-architecture-CAS-reboot-support.patch | 2 +- ...nsole-display-attr-when-clear-screen.patch | 2 +- ...video-support-for-IBM-power-machines.patch | 2 +- ...when-generating-configuration-by-gru.patch | 2 +- 0069-Move-bash-completion-script-922997.patch | 2 +- 0070-Update-to-minilzo-2.08.patch | 2 +- ...o-include-entries-by-title-not-just-.patch | 2 +- 0072-Add-GRUB_DISABLE_UUID.patch | 2 +- 0073-Make-exit-take-a-return-code.patch | 2 +- ...pot-as-binary-so-git-won-t-try-to-di.patch | 2 +- ...es-load-an-env-block-from-a-variable.patch | 2 +- ...HCP-client-ID-and-UUID-options-added.patch | 2 +- ...-trim-arp-packets-with-abnormal-size.patch | 2 +- ...Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch | 2 +- ...UEFI-operating-systems-returned-by-o.patch | 2 +- 0080-Migrate-PPC-from-Yaboot-to-Grub2.patch | 2 +- 0081-Add-fw_path-variable-revised.patch | 2 +- 0082-Add-support-for-linuxefi.patch | 2 +- ...xefi-and-initrdefi-where-appropriate.patch | 2 +- ...w-insmod-when-secure-boot-is-enabled.patch | 2 +- ...-hex-hex-straight-through-unmolested.patch | 2 +- 0086-Add-X-option-to-printf-functions.patch | 2 +- ...for-specific-config-file-for-netboot.patch | 2 +- ...g-module-to-parse-Boot-Loader-Specif.patch | 2 +- 0089-Don-t-write-messages-to-the-screen.patch | 2 +- 0090-Don-t-print-GNU-GRUB-header.patch | 2 +- 0091-Don-t-add-to-highlighted-row.patch | 2 +- 0092-Message-string-cleanups.patch | 2 +- ...ing-now-that-we-aren-t-displaying-it.patch | 2 +- ...t-indentation-for-the-term-help-text.patch | 2 +- 0095-Indent-menu-entries.patch | 2 +- 0096-Fix-margins.patch | 2 +- ...-1-for-our-right-hand-margin-so-line.patch | 2 +- ...-Use-linux16-when-appropriate-880840.patch | 2 +- 0099-Enable-pager-by-default.-985860.patch | 2 +- ...-on-serial-so-don-t-tell-the-user-to.patch | 2 +- ...n-t-say-GNU-Linux-in-generated-menus.patch | 2 +- ...-Don-t-draw-a-border-around-the-menu.patch | 2 +- ...andard-margin-for-the-timeout-string.patch | 2 +- ...rame-to-list-of-relocations-stripped.patch | 2 +- ...rk-with-our-changes-for-linux16-and-.patch | 2 +- ...on-t-print-during-fdt-loading-method.patch | 2 +- ...spaces-when-we-re-doing-our-cmdline-.patch | 2 +- ...password-to-boot-entries-generated-b.patch | 2 +- 0109-Don-t-emit-Booting-.-message.patch | 2 +- ...f-man-pages-with-slightly-nicer-ones.patch | 2 +- ...ix-when-fallback-searching-for-grub-.patch | 2 +- ...-before-grub.cfg-on-tftp-config-file.patch | 2 +- ...ert-function-to-support-NVMe-devices.patch | 2 +- ...M-Mustang-device-tree-for-hardware-t.patch | 2 +- ...device-tree-from-the-grub-default-fi.patch | 2 +- ...P-protocol-for-exclusive-use-by-grub.patch | 2 +- ...P-protocol-for-exclusive-use-by-grub.patch | 2 +- 0118-Add-grub_util_readlink.patch | 2 +- ...se-symlinks-including-those-across-d.patch | 2 +- ...CLASS-in-10_linux-from-etc-os-releas.patch | 2 +- ...t-ordering-for-.debug-and-rescue-ker.patch | 2 +- 0122-Load-arm-with-SB-enabled.patch | 2 +- 0123-Try-prefix-if-fw_path-doesn-t-work.patch | 2 +- ...-grub.cfg-netboot-selection-order-11.patch | 2 +- ...-Package-Sort-for-grub2-mkconfig-112.patch | 2 +- 0126-Handle-rssd-storage-devices.patch | 2 +- ...x16-initrd16-and-linuxefi-initrdefi-.patch | 2 +- ...fig-construct-titles-that-look-like-.patch | 2 +- ...ly-grub2-password-config-tool-985962.patch | 2 +- ...fig-construct-titles-that-look-like-.patch | 2 +- ...-configure.ac-and-grub-rpm-sort-play.patch | 2 +- 0132-tcp-add-window-scaling-support.patch | 2 +- ...net-retransmit-if-our-device-is-busy.patch | 2 +- ...out-actually-using-the-configured-ne.patch | 2 +- ...r-for-the-first-exclusive-reopen-of-.patch | 2 +- ...ue-when-reading-username-and-passwor.patch | 2 +- ...ub-password-will-not-be-read-1290803.patch | 2 +- ...ub-setpassword-documentation-1290799.patch | 2 +- ...le-issue-in-grub-setpassword-1294243.patch | 2 +- ...rsistent-RAM-and-unknown-possible-fu.patch | 2 +- 0141-efiemu-Fix-compilation-failure.patch | 2 +- ...P-protocol-for-exclusive-use-by-grub.patch | 2 +- 0143-Add-a-url-parser.patch | 2 +- ...net-and-bootp-add-support-for-dhcpv6.patch | 2 +- ...rnel-settings-and-use-it-in-10_linux.patch | 2 +- 0146-Normalize-slashes-in-tftp-paths.patch | 2 +- 0147-Fix-malformed-tftp-packets.patch | 2 +- 0148-Fix-race-in-EFI-validation.patch | 2 +- ...1374141-fix-incorrect-mask-for-ppc64.patch | 2 +- ...art-of-chainloader-target-if-present.patch | 2 +- ...ecureboot-support-on-efi-chainloader.patch | 2 +- ...loaders-that-link-in-efi-mode-honor-.patch | 2 +- 0153-Make-grub_fatal-also-backtrace.patch | 2 +- 0154-Rework-linux-command.patch | 2 +- 0155-Rework-linux16-command.patch | 2 +- 0156-Make-grub-editenv-build-again.patch | 2 +- ...ix-up-some-man-pages-rpmdiff-noticed.patch | 2 +- ...-work-some-intricacies-of-PE-loading.patch | 2 +- ...-of-efi-chainload-so-non-sb-cases-wo.patch | 2 +- ...-double-free-on-verification-failure.patch | 2 +- ...machine-type-test-in-30_os-prober.in.patch | 2 +- ...fix-wrong-sanity-check-in-relocate_c.patch | 2 +- ...truncate-overlong-relocation-section.patch | 2 +- 0164-linuxefi-minor-cleanups.patch | 2 +- ...rch-64-on-32-boot-in-linuxefi-loader.patch | 2 +- 0166-Fix-up-linux-params-usage.patch | 2 +- 0167-Make-exit-take-a-return-code.patch | 2 +- ...fdt-has-address-cells-and-size-cells.patch | 2 +- ...rintf-in-the-secure-boot-verify-code.patch | 2 +- ...fo-pages-say-grub2-where-appropriate.patch | 2 +- ...more-debug-info-in-our-module-loader.patch | 2 +- ...-chainloader-entries-don-t-try-any-x.patch | 2 +- ...-Add-ability-to-boot-from-subvolumes.patch | 2 +- ...port-btrfs_subvol-and-btrfs_subvolid.patch | 2 +- 0175-grub2-btrfs-03-follow_default.patch | 2 +- 0176-grub2-btrfs-04-grub2-install.patch | 2 +- 0177-grub2-btrfs-05-grub2-mkconfig.patch | 2 +- 0178-grub2-btrfs-06-subvol-mount.patch | 2 +- ...ootable-Snapshot-submenu-in-grub.cfg.patch | 2 +- ...subvol-name-scheme-to-support-old-sn.patch | 2 +- ...-correctly-with-btrfs-snapshots-bsc-.patch | 2 +- ...ocate_pool-and-grub_efi_free_pool-wr.patch | 2 +- ...fi_.-memory-helpers-where-reasonable.patch | 2 +- 0184-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch | 2 +- ...c-sized-arrays-since-we-don-t-build-.patch | 2 +- 0186-don-t-ignore-const.patch | 2 +- 0187-don-t-use-int-for-efi-status.patch | 2 +- ...INIT-declare-its-function-prototypes.patch | 2 +- ...p-some-errors-in-the-linuxefi-loader.patch | 2 +- 0190-editenv-handle-relative-symlinks.patch | 2 +- ...e-libgrub.pp-depend-on-config-util.h.patch | 2 +- ...-efi-as-HFS-on-ppc-machines-in-grub-.patch | 2 +- ...20_linux_xen.in-Add-xen_boot-command.patch | 2 +- ...-figure-out-whether-multiboot2-shoul.patch | 2 +- ...d-xen-or-multiboot-2-modules-as-need.patch | 2 +- ...lt-tsc-calibration-method-to-pmtimer.patch | 2 +- ...-calibration-not-take-51-seconds-to-.patch | 2 +- 0198-align-struct-efi_variable-better.patch | 2 +- 0199-Add-quicksort-implementation.patch | 2 +- ...nd-support-to-parse-BootLoaderSpec-c.patch | 2 +- 0201-Add-BLS-support-to-grub-mkconfig.patch | 2 +- ...d-grub_exit-definition-for-grub-emu-.patch | 2 +- ...-backtrace-on-grub_abort-for-grub-em.patch | 2 +- ...-blscfg-command-for-the-emu-platform.patch | 2 +- ...nux-and-initrd-commands-for-grub-emu.patch | 2 +- 0206-Fix-the-efidir-in-grub-setpassword.patch | 2 +- 0207-Add-grub2-switch-to-blscfg.patch | 2 +- 0208-Add-grub_debug_enabled.patch | 2 +- 0209-make-better-backtraces.patch | 2 +- ...w-our-startup-message-if-debug-is-se.patch | 2 +- ...-some-minor-include-path-weirdnesses.patch | 2 +- ...it-possible-to-enabled-build-id-sha1.patch | 2 +- ...f-grub_dprintf-without-the-file-line.patch | 2 +- ...dprintf-that-tells-us-load-addresses.patch | 2 +- ...scan-different-BLS-directories-on-EF.patch | 2 +- 0216-Core-TPM-support.patch | 2 +- 0217-Measure-kernel-initrd.patch | 2 +- 0218-Add-BIOS-boot-measurement.patch | 2 +- ...re-kernel-and-initrd-on-BIOS-systems.patch | 2 +- 0220-Measure-the-kernel-commandline.patch | 2 +- 0221-Measure-commands.patch | 2 +- ...Measure-multiboot-images-and-modules.patch | 2 +- 0223-Fix-boot-when-there-s-no-TPM.patch | 2 +- 0224-Rework-TPM-measurements.patch | 2 +- 0225-Fix-event-log-prefix.patch | 2 +- ...ot-menu-entry-as-default-when-using-.patch | 2 +- ...-when-compiling-for-platforms-other-.patch | 2 +- 0228-Make-TPM-errors-less-fatal.patch | 2 +- ...cfg-handle-multiple-initramfs-images.patch | 2 +- ...switch-to-blscfg-on-non-EFI-machines.patch | 2 +- ...LS-Use-etcdefaultgrub-instead-of-etc.patch | 2 +- ...ons-to-grub2-switch-to-blscfg-man-pa.patch | 2 +- ...h-to-blscfg-to-generate-debug-BLS-wh.patch | 2 +- ...h-to-blscfg-to-generate-BLS-fragment.patch | 2 +- ...query-dev-mounted-in-boot-efi-as-boo.patch | 2 +- ...ath-when-searching-kernels-images-if.patch | 2 +- ...field-to-compare-entries-if-id-field.patch | 2 +- ...d-to-BLS-generated-by-grub2-switch-t.patch | 2 +- 0239-Fixup-for-newer-compiler.patch | 2 +- ...-export-the-start-and-_start-symbols.patch | 2 +- ...plify-BLS-entry-key-val-pairs-lookup.patch | 2 +- ...h-to-the-kernel-and-initrds-BLS-fiel.patch | 2 +- ...p-leading-spaces-on-BLS-field-values.patch | 2 +- 0244-Fixup-for-newer-compiler.patch | 2 +- ..._log_extend_event-function-prototype.patch | 2 +- 0246-TPM-Fix-compiler-warnings.patch | 2 +- ...lscfg.in-get-rid-of-a-bunch-of-bashi.patch | 2 +- ...lscfg.in-Better-boot-prefix-checking.patch | 2 +- ...entries-as-BLS-directory-path-also-o.patch | 2 +- ...-filename-as-menu-entry-id-and-for-c.patch | 137 ++++++++++++++++++ grub.patches | 1 + grub2.spec | 3 + 252 files changed, 390 insertions(+), 249 deletions(-) create mode 100644 0250-Use-BLS-fragment-filename-as-menu-entry-id-and-for-c.patch diff --git a/0001-Bump-version-to-2.03.patch b/0001-Bump-version-to-2.03.patch index 8633131f..44adff42 100644 --- a/0001-Bump-version-to-2.03.patch +++ b/0001-Bump-version-to-2.03.patch @@ -1,7 +1,7 @@ From b0bad6fd9449d3333fe1ab58953c0e6c1ce12c0d Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Wed, 3 May 2017 11:55:52 +0200 -Subject: [PATCH 001/249] Bump version to 2.03 +Subject: [PATCH 001/250] Bump version to 2.03 --- configure.ac | 2 +- diff --git a/0002-Remove-bashisms-from-tests.patch b/0002-Remove-bashisms-from-tests.patch index 7c4d071b..95f7656f 100644 --- a/0002-Remove-bashisms-from-tests.patch +++ b/0002-Remove-bashisms-from-tests.patch @@ -1,7 +1,7 @@ From 5a0c548ba388b343b0bb6d2a38888e7eac5bbb96 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 03:47:13 +0300 -Subject: [PATCH 002/249] Remove bashisms from tests. +Subject: [PATCH 002/250] Remove bashisms from tests. Those tests don't actually need bash. Just use common shebang. --- diff --git a/0003-fs-tester-make-sh-compatible.patch b/0003-fs-tester-make-sh-compatible.patch index 97801652..960002f5 100644 --- a/0003-fs-tester-make-sh-compatible.patch +++ b/0003-fs-tester-make-sh-compatible.patch @@ -1,7 +1,7 @@ From 37865c2c4ad26cd5e947b08abf1fde8145699919 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 14:35:59 +0300 -Subject: [PATCH 003/249] fs-tester: make sh-compatible +Subject: [PATCH 003/250] fs-tester: make sh-compatible --- tests/util/grub-fs-tester.in | 306 ++++++++++++++++++++++++------------------- diff --git a/0004-support-busybox-date.patch b/0004-support-busybox-date.patch index 373a2bff..204b187c 100644 --- a/0004-support-busybox-date.patch +++ b/0004-support-busybox-date.patch @@ -1,7 +1,7 @@ From b43b8cacc813c2c15347de1e35cc88d9aa912d22 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 14:31:36 +0300 -Subject: [PATCH 004/249] support busybox date. +Subject: [PATCH 004/250] support busybox date. Busybox date doesn't understand weekdays in -d input, so strip them beforehand. diff --git a/0005-Don-t-retrieve-fstime-when-it-s-not-useful.patch b/0005-Don-t-retrieve-fstime-when-it-s-not-useful.patch index 69bf3200..44561f93 100644 --- a/0005-Don-t-retrieve-fstime-when-it-s-not-useful.patch +++ b/0005-Don-t-retrieve-fstime-when-it-s-not-useful.patch @@ -1,7 +1,7 @@ From 6dec3a26b37e128ded5d912e08abc5cee1592499 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 21:24:05 +0300 -Subject: [PATCH 005/249] Don't retrieve fstime when it's not useful. +Subject: [PATCH 005/250] Don't retrieve fstime when it's not useful. --- tests/util/grub-fs-tester.in | 48 ++++++++++++++++++++++---------------------- diff --git a/0006-Support-lseek64.patch b/0006-Support-lseek64.patch index 44e3332f..832ccb5f 100644 --- a/0006-Support-lseek64.patch +++ b/0006-Support-lseek64.patch @@ -1,7 +1,7 @@ From 608bec51128008afb81c9e3f297283e9f830a146 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 20:21:05 +0300 -Subject: [PATCH 006/249] Support lseek64. +Subject: [PATCH 006/250] Support lseek64. Android doesn't have 64-bit off_t, so use off64_t instead. --- diff --git a/0007-Use-SHELL-rather-than-bin-sh.patch b/0007-Use-SHELL-rather-than-bin-sh.patch index fdb2657c..f32a377d 100644 --- a/0007-Use-SHELL-rather-than-bin-sh.patch +++ b/0007-Use-SHELL-rather-than-bin-sh.patch @@ -1,7 +1,7 @@ From c2ea443446b7feea868e54f94a87781f69820375 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 00:55:30 +0300 -Subject: [PATCH 007/249] Use $(SHELL) rather than /bin/sh. +Subject: [PATCH 007/250] Use $(SHELL) rather than /bin/sh. /bin/sh doesn't exist under termux. --- diff --git a/0008-po-Use-SHELL-rather-than-bin-sh.patch b/0008-po-Use-SHELL-rather-than-bin-sh.patch index d7c64aae..5d63a429 100644 --- a/0008-po-Use-SHELL-rather-than-bin-sh.patch +++ b/0008-po-Use-SHELL-rather-than-bin-sh.patch @@ -1,7 +1,7 @@ From 4341f82af0b61d3dfbe675670d4105dc759c0df3 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 14:54:03 +0300 -Subject: [PATCH 008/249] po: Use @SHELL@ rather than /bin/sh. +Subject: [PATCH 008/250] po: Use @SHELL@ rather than /bin/sh. /bin/sh might not exist. --- diff --git a/0009-Add-termux-path-to-dict.patch b/0009-Add-termux-path-to-dict.patch index 57990d17..285c0f18 100644 --- a/0009-Add-termux-path-to-dict.patch +++ b/0009-Add-termux-path-to-dict.patch @@ -1,7 +1,7 @@ From 1073ddb12078f3c8edbdb74bb8f5afc674983f40 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 14:52:48 +0300 -Subject: [PATCH 009/249] Add termux path to dict. +Subject: [PATCH 009/250] Add termux path to dict. --- tests/util/grub-fs-tester.in | 2 +- diff --git a/0010-Fix-shebang-for-termux.patch b/0010-Fix-shebang-for-termux.patch index 76217ec6..572969f6 100644 --- a/0010-Fix-shebang-for-termux.patch +++ b/0010-Fix-shebang-for-termux.patch @@ -1,7 +1,7 @@ From a827807a1330d5ad619faa103bc7f12d89fc8bee Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Sun, 22 Jan 2017 20:22:34 +0300 -Subject: [PATCH 010/249] Fix shebang for termux. +Subject: [PATCH 010/250] Fix shebang for termux. Termux doesn't have a /bin/sh. So we needto use $SHELL. Keep /bin/sh as much as possible. diff --git a/0011-Add-strtoull-test.patch b/0011-Add-strtoull-test.patch index c4a92676..ffab7627 100644 --- a/0011-Add-strtoull-test.patch +++ b/0011-Add-strtoull-test.patch @@ -1,7 +1,7 @@ From ede6c9689395499f98a4c14d76b97151b4de5f54 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Wed, 3 May 2017 12:58:15 +0200 -Subject: [PATCH 011/249] Add strtoull test. +Subject: [PATCH 011/250] Add strtoull test. --- grub-core/Makefile.core.def | 5 +++++ diff --git a/0012-strtoull-Fix-behaviour-on-chars-between-9-and-a.patch b/0012-strtoull-Fix-behaviour-on-chars-between-9-and-a.patch index 7f374f42..91d97c94 100644 --- a/0012-strtoull-Fix-behaviour-on-chars-between-9-and-a.patch +++ b/0012-strtoull-Fix-behaviour-on-chars-between-9-and-a.patch @@ -1,7 +1,7 @@ From dc6e1b5af83eb1c4290baf97c2d221c0865127be Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Wed, 10 Aug 2016 17:49:42 +0200 -Subject: [PATCH 012/249] strtoull: Fix behaviour on chars between '9' and 'a'. +Subject: [PATCH 012/250] strtoull: Fix behaviour on chars between '9' and 'a'. Reported by: Aaron Miller --- diff --git a/0013-Add-Virtual-LAN-support.patch b/0013-Add-Virtual-LAN-support.patch index 4e2ec7ab..4f3dafe8 100644 --- a/0013-Add-Virtual-LAN-support.patch +++ b/0013-Add-Virtual-LAN-support.patch @@ -1,7 +1,7 @@ From d9f7de0ae3c0c09cff7257c55418450261f3e082 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Mon, 23 Dec 2013 12:32:02 -0200 -Subject: [PATCH 013/249] Add Virtual LAN support. +Subject: [PATCH 013/250] Add Virtual LAN support. This patch adds support for virtual LAN (VLAN) tagging. VLAN tagging allows multiple VLANs in a bridged network to share the same physical network link diff --git a/0014-mkimage-Pass-layout-to-mkimage_generate_elfXX-rather.patch b/0014-mkimage-Pass-layout-to-mkimage_generate_elfXX-rather.patch index da850a20..f8f65675 100644 --- a/0014-mkimage-Pass-layout-to-mkimage_generate_elfXX-rather.patch +++ b/0014-mkimage-Pass-layout-to-mkimage_generate_elfXX-rather.patch @@ -1,7 +1,7 @@ From a35ac854308b0af7c86c2c7b199f6abdfa2110b0 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 17:32:15 +0200 -Subject: [PATCH 014/249] mkimage: Pass layout to mkimage_generate_elfXX rather +Subject: [PATCH 014/250] mkimage: Pass layout to mkimage_generate_elfXX rather than some fields. This allows easier extension of this function without having too long of diff --git a/0015-Refactor-arm-uboot-code-to-make-it-genereic.patch b/0015-Refactor-arm-uboot-code-to-make-it-genereic.patch index 9f868861..045a3475 100644 --- a/0015-Refactor-arm-uboot-code-to-make-it-genereic.patch +++ b/0015-Refactor-arm-uboot-code-to-make-it-genereic.patch @@ -1,7 +1,7 @@ From d08c9685149e7788001ac9a209baa1d84c3628e0 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 17:47:57 +0200 -Subject: [PATCH 015/249] Refactor arm-uboot code to make it genereic. +Subject: [PATCH 015/250] Refactor arm-uboot code to make it genereic. arm-coreboot startup code can be very similar to arm-uboot but current code has U-Boot specific references. So split U-Boot part from generic part. diff --git a/0016-coreboot-Split-parts-that-are-platform-independent.patch b/0016-coreboot-Split-parts-that-are-platform-independent.patch index 69d80662..43b6adf4 100644 --- a/0016-coreboot-Split-parts-that-are-platform-independent.patch +++ b/0016-coreboot-Split-parts-that-are-platform-independent.patch @@ -1,7 +1,7 @@ From 461bfab7b7e47fd0a76bf6076a438af1b7e2184a Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 19:06:22 +0200 -Subject: [PATCH 016/249] coreboot: Split parts that are platform-independent. +Subject: [PATCH 016/250] coreboot: Split parts that are platform-independent. We currently assume that coreboot is always i386, it's no longer the case, so split i386-coreboot parts from generic coreboot code. diff --git a/0017-Rename-uboot-halt.c-to-dummy-halt.c.patch b/0017-Rename-uboot-halt.c-to-dummy-halt.c.patch index 16ed137c..af420cd9 100644 --- a/0017-Rename-uboot-halt.c-to-dummy-halt.c.patch +++ b/0017-Rename-uboot-halt.c-to-dummy-halt.c.patch @@ -1,7 +1,7 @@ From 1daa716c7017f1858de117a20a31da66815435c5 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 19:31:55 +0200 -Subject: [PATCH 017/249] Rename uboot/halt.c to dummy/halt.c. +Subject: [PATCH 017/250] Rename uboot/halt.c to dummy/halt.c. It's not U-Boot specific and it's a stub. --- diff --git a/0018-Rename-uboot-datetime-to-dummy-datetime.patch b/0018-Rename-uboot-datetime-to-dummy-datetime.patch index 7e5d66f2..e9b07111 100644 --- a/0018-Rename-uboot-datetime-to-dummy-datetime.patch +++ b/0018-Rename-uboot-datetime-to-dummy-datetime.patch @@ -1,7 +1,7 @@ From 9808c3ef956c6472a96790b60cf74f4eaa742010 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 19:37:29 +0200 -Subject: [PATCH 018/249] Rename uboot/datetime to dummy/datetime. +Subject: [PATCH 018/250] Rename uboot/datetime to dummy/datetime. It's just a stub and is not UBoot-specific. --- diff --git a/0019-arm-coreboot-Start-new-port.patch b/0019-arm-coreboot-Start-new-port.patch index b4837093..787e6d02 100644 --- a/0019-arm-coreboot-Start-new-port.patch +++ b/0019-arm-coreboot-Start-new-port.patch @@ -1,7 +1,7 @@ From 24e37a885269bdec9b27babf1da0bba3692d55c0 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 20:53:28 +0200 -Subject: [PATCH 019/249] arm-coreboot: Start new port. +Subject: [PATCH 019/250] arm-coreboot: Start new port. --- configure.ac | 2 + diff --git a/0020-Add-support-for-device-tree-based-drivers.patch b/0020-Add-support-for-device-tree-based-drivers.patch index 18fc900d..4891525b 100644 --- a/0020-Add-support-for-device-tree-based-drivers.patch +++ b/0020-Add-support-for-device-tree-based-drivers.patch @@ -1,7 +1,7 @@ From fcbb723d4b1f7ad4687191562621dd0eb25f4d9e Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:19:59 +0200 -Subject: [PATCH 020/249] Add support for device-tree-based drivers. +Subject: [PATCH 020/250] Add support for device-tree-based drivers. --- grub-core/Makefile.core.def | 2 + diff --git a/0021-arm-coreboot-Support-for-vexpress-timer.patch b/0021-arm-coreboot-Support-for-vexpress-timer.patch index 712c25db..cec1c15b 100644 --- a/0021-arm-coreboot-Support-for-vexpress-timer.patch +++ b/0021-arm-coreboot-Support-for-vexpress-timer.patch @@ -1,7 +1,7 @@ From 5a865b37866ee8cd64c080bc6fb1e537f8e2b3c6 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:26:36 +0200 -Subject: [PATCH 021/249] arm-coreboot: Support for vexpress timer. +Subject: [PATCH 021/250] arm-coreboot: Support for vexpress timer. --- grub-core/kern/arm/coreboot/timer.c | 36 ++++++++++++++++++++++++++++++++++++ diff --git a/0022-arm-coreboot-Export-FDT-routines.patch b/0022-arm-coreboot-Export-FDT-routines.patch index 2feb80b0..533dfa98 100644 --- a/0022-arm-coreboot-Export-FDT-routines.patch +++ b/0022-arm-coreboot-Export-FDT-routines.patch @@ -1,7 +1,7 @@ From ac6b41b89fbb82a3ba843a7ed19115d81432b604 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:29:48 +0200 -Subject: [PATCH 022/249] arm-coreboot: Export FDT routines. +Subject: [PATCH 022/250] arm-coreboot: Export FDT routines. We need to use them from modules as well. --- diff --git a/0023-at_keyboard-Split-protocol-from-controller-code.patch b/0023-at_keyboard-Split-protocol-from-controller-code.patch index fcb72026..535a982c 100644 --- a/0023-at_keyboard-Split-protocol-from-controller-code.patch +++ b/0023-at_keyboard-Split-protocol-from-controller-code.patch @@ -1,7 +1,7 @@ From 216950a4eea1a1ead1c28eaca94e34ea2ef2ad19 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:41:22 +0200 -Subject: [PATCH 023/249] at_keyboard: Split protocol from controller code. +Subject: [PATCH 023/250] at_keyboard: Split protocol from controller code. On vexpress controller is different but protocol is the same, so reuse the code. diff --git a/0024-arm_coreboot-Support-keyboard-for-vexpress.patch b/0024-arm_coreboot-Support-keyboard-for-vexpress.patch index 014b04ba..1ab52303 100644 --- a/0024-arm_coreboot-Support-keyboard-for-vexpress.patch +++ b/0024-arm_coreboot-Support-keyboard-for-vexpress.patch @@ -1,7 +1,7 @@ From 848bed9d92cf20e9f25db4c69a20efad23996ca0 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:42:37 +0200 -Subject: [PATCH 024/249] arm_coreboot: Support keyboard for vexpress. +Subject: [PATCH 024/250] arm_coreboot: Support keyboard for vexpress. --- grub-core/Makefile.core.def | 3 + diff --git a/0025-arm_coreboot-Support-grub-mkstandalone.patch b/0025-arm_coreboot-Support-grub-mkstandalone.patch index 22badf0f..b7dd6c9d 100644 --- a/0025-arm_coreboot-Support-grub-mkstandalone.patch +++ b/0025-arm_coreboot-Support-grub-mkstandalone.patch @@ -1,7 +1,7 @@ From 3edabad8fefb112cc4b2d43be6e97d43c909ceee Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:59:48 +0200 -Subject: [PATCH 025/249] arm_coreboot: Support grub-mkstandalone. +Subject: [PATCH 025/250] arm_coreboot: Support grub-mkstandalone. --- util/grub-install-common.c | 12 ++++++++++-- diff --git a/0026-arm_coreboot-Support-loading-linux-images.patch b/0026-arm_coreboot-Support-loading-linux-images.patch index 40905dac..36a5e218 100644 --- a/0026-arm_coreboot-Support-loading-linux-images.patch +++ b/0026-arm_coreboot-Support-loading-linux-images.patch @@ -1,7 +1,7 @@ From 656c3b0d7fbe23f0e1ab561c8faa4ac4a37364d1 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 22:00:06 +0200 -Subject: [PATCH 026/249] arm_coreboot: Support loading linux images. +Subject: [PATCH 026/250] arm_coreboot: Support loading linux images. --- grub-core/loader/arm/linux.c | 132 ++++++++++++++++++++++--------------------- diff --git a/0027-arm_coreboot-Support-DMA.patch b/0027-arm_coreboot-Support-DMA.patch index fd15ea0d..8c948ecc 100644 --- a/0027-arm_coreboot-Support-DMA.patch +++ b/0027-arm_coreboot-Support-DMA.patch @@ -1,7 +1,7 @@ From 265292f2b0da0eb414c409871ba0f94a99ec33c1 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 22:06:04 +0200 -Subject: [PATCH 027/249] arm_coreboot: Support DMA. +Subject: [PATCH 027/250] arm_coreboot: Support DMA. This is needed to support USB and some other busses. --- diff --git a/0028-ehci-Split-core-code-from-PCI-part.patch b/0028-ehci-Split-core-code-from-PCI-part.patch index e244830f..37f72aba 100644 --- a/0028-ehci-Split-core-code-from-PCI-part.patch +++ b/0028-ehci-Split-core-code-from-PCI-part.patch @@ -1,7 +1,7 @@ From 058df7b5a9cc7aaa9872eaa916b715544a8f9840 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 22:10:26 +0200 -Subject: [PATCH 028/249] ehci: Split core code from PCI part. +Subject: [PATCH 028/250] ehci: Split core code from PCI part. On ARM often EHCI is present without PCI and just declared in device tree. So splitcore from PCI part. diff --git a/0029-arm_coreboot-Support-EHCI.patch b/0029-arm_coreboot-Support-EHCI.patch index d0272220..a4321bbe 100644 --- a/0029-arm_coreboot-Support-EHCI.patch +++ b/0029-arm_coreboot-Support-EHCI.patch @@ -1,7 +1,7 @@ From d11ced1e1fb93676942e51618eb53c140f541890 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 22:14:28 +0200 -Subject: [PATCH 029/249] arm_coreboot: Support EHCI. +Subject: [PATCH 029/250] arm_coreboot: Support EHCI. --- grub-core/Makefile.core.def | 2 ++ diff --git a/0030-Fix-bug-on-FDT-nodes-with-compatible-property.patch b/0030-Fix-bug-on-FDT-nodes-with-compatible-property.patch index b53e0c04..59ca0e8b 100644 --- a/0030-Fix-bug-on-FDT-nodes-with-compatible-property.patch +++ b/0030-Fix-bug-on-FDT-nodes-with-compatible-property.patch @@ -1,7 +1,7 @@ From 4f8471532d454b2db96434c28bf7105ed69e0f4d Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 08:39:40 +0200 -Subject: [PATCH 030/249] Fix bug on FDT nodes with compatible property +Subject: [PATCH 030/250] Fix bug on FDT nodes with compatible property --- grub-core/bus/fdt.c | 2 ++ diff --git a/0031-fdtbus-Add-ability-to-send-receive-messages-on-paren.patch b/0031-fdtbus-Add-ability-to-send-receive-messages-on-paren.patch index 931565b5..8e0a875b 100644 --- a/0031-fdtbus-Add-ability-to-send-receive-messages-on-paren.patch +++ b/0031-fdtbus-Add-ability-to-send-receive-messages-on-paren.patch @@ -1,7 +1,7 @@ From c4313c812dc14e82a774b580b5e34d40e7f3fae6 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 08:40:29 +0200 -Subject: [PATCH 031/249] fdtbus: Add ability to send/receive messages on +Subject: [PATCH 031/250] fdtbus: Add ability to send/receive messages on parent busses. --- diff --git a/0032-rk3288_spi-Add-SPI-driver.patch b/0032-rk3288_spi-Add-SPI-driver.patch index 3f00408b..d6a0298b 100644 --- a/0032-rk3288_spi-Add-SPI-driver.patch +++ b/0032-rk3288_spi-Add-SPI-driver.patch @@ -1,7 +1,7 @@ From b0b1b81a11f8bae8ab9e8edd87ac3f4f7949d03b Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 08:42:14 +0200 -Subject: [PATCH 032/249] rk3288_spi: Add SPI driver +Subject: [PATCH 032/250] rk3288_spi: Add SPI driver --- grub-core/Makefile.core.def | 1 + diff --git a/0033-arm_coreboot-Add-Chromebook-keyboard-driver.patch b/0033-arm_coreboot-Add-Chromebook-keyboard-driver.patch index ef81e511..eb28c342 100644 --- a/0033-arm_coreboot-Add-Chromebook-keyboard-driver.patch +++ b/0033-arm_coreboot-Add-Chromebook-keyboard-driver.patch @@ -1,7 +1,7 @@ From 5c3fd1b135bd73c8e3467b9b635b25ca4d360a19 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 08:47:34 +0200 -Subject: [PATCH 033/249] arm_coreboot: Add Chromebook keyboard driver. +Subject: [PATCH 033/250] arm_coreboot: Add Chromebook keyboard driver. --- grub-core/term/arm/cros.c | 125 +++++++++++++++++++++++ diff --git a/0034-Missing-parts-of-previous-commit.patch b/0034-Missing-parts-of-previous-commit.patch index 385a1a16..34ba6494 100644 --- a/0034-Missing-parts-of-previous-commit.patch +++ b/0034-Missing-parts-of-previous-commit.patch @@ -1,7 +1,7 @@ From c6eaa982d12e3cfc5465dda5ea372774188b6b81 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 09:02:15 +0200 -Subject: [PATCH 034/249] Missing parts of previous commit +Subject: [PATCH 034/250] Missing parts of previous commit --- grub-core/Makefile.core.def | 2 ++ diff --git a/0035-coreboot-Changed-cbmemc-to-support-updated-console-f.patch b/0035-coreboot-Changed-cbmemc-to-support-updated-console-f.patch index b67248be..d5d9cc89 100644 --- a/0035-coreboot-Changed-cbmemc-to-support-updated-console-f.patch +++ b/0035-coreboot-Changed-cbmemc-to-support-updated-console-f.patch @@ -1,7 +1,7 @@ From 70b555a52a065b2beb91e6fc97a6b358c931b303 Mon Sep 17 00:00:00 2001 From: Julius Werner Date: Tue, 9 May 2017 09:03:02 +0200 -Subject: [PATCH 035/249] coreboot: Changed cbmemc to support updated console +Subject: [PATCH 035/250] coreboot: Changed cbmemc to support updated console format from coreboot. --- diff --git a/0036-at_keyboard-Fix-falco-chromebook-case.patch b/0036-at_keyboard-Fix-falco-chromebook-case.patch index 98a3d662..c2817093 100644 --- a/0036-at_keyboard-Fix-falco-chromebook-case.patch +++ b/0036-at_keyboard-Fix-falco-chromebook-case.patch @@ -1,7 +1,7 @@ From c4b8bec5fee4e30a165fd14a188cf3ab8eccd095 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 14:27:52 +0200 -Subject: [PATCH 036/249] at_keyboard: Fix falco chromebook case. +Subject: [PATCH 036/250] at_keyboard: Fix falco chromebook case. EC is slow, so we need few delays for it to toggle the bits correctly. diff --git a/0037-sparc64-Close-cdboot-ihandle.patch b/0037-sparc64-Close-cdboot-ihandle.patch index cdb9e6d3..da2ef5ed 100644 --- a/0037-sparc64-Close-cdboot-ihandle.patch +++ b/0037-sparc64-Close-cdboot-ihandle.patch @@ -1,7 +1,7 @@ From bd4e40aadded7093908d786d03b4acf60b7b1707 Mon Sep 17 00:00:00 2001 From: Eric Snowberg Date: Thu, 11 May 2017 18:42:23 -0700 -Subject: [PATCH 037/249] sparc64: Close cdboot ihandle +Subject: [PATCH 037/250] sparc64: Close cdboot ihandle The ihandle is left open with a cd-core image. This will cause a delay booting grub from a virtual cdrom in a LDOM. It will also cause problems diff --git a/0038-arm64-xen_boot-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch b/0038-arm64-xen_boot-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch index 614db533..b67d0032 100644 --- a/0038-arm64-xen_boot-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch +++ b/0038-arm64-xen_boot-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch @@ -1,7 +1,7 @@ From ae5817f1dcbf0b99f7a849f56afe442165317840 Mon Sep 17 00:00:00 2001 From: Julien Grall Date: Fri, 19 Feb 2016 16:28:52 +0000 -Subject: [PATCH 038/249] arm64/xen_boot: Fix Xen boot using GRUB2 on AARCH64 +Subject: [PATCH 038/250] arm64/xen_boot: Fix Xen boot using GRUB2 on AARCH64 Xen is currently crashing because of malformed compatible property for the boot module. This is because the property string is not diff --git a/0039-arm64-Add-nounzip-option-support-in-xen_module-comma.patch b/0039-arm64-Add-nounzip-option-support-in-xen_module-comma.patch index d7dec30a..73ae4188 100644 --- a/0039-arm64-Add-nounzip-option-support-in-xen_module-comma.patch +++ b/0039-arm64-Add-nounzip-option-support-in-xen_module-comma.patch @@ -1,7 +1,7 @@ From 8eed7be8a61c295df700e918744a984162378ca9 Mon Sep 17 00:00:00 2001 From: Fu Wei Date: Sun, 14 May 2017 15:43:45 +0800 -Subject: [PATCH 039/249] arm64: Add "--nounzip" option support in xen_module +Subject: [PATCH 039/250] arm64: Add "--nounzip" option support in xen_module command This patch adds "--nounzip" option support in order to diff --git a/0040-util-grub.d-20_linux_xen.in-Add-xen_boot-command-sup.patch b/0040-util-grub.d-20_linux_xen.in-Add-xen_boot-command-sup.patch index a615ea09..52a5818c 100644 --- a/0040-util-grub.d-20_linux_xen.in-Add-xen_boot-command-sup.patch +++ b/0040-util-grub.d-20_linux_xen.in-Add-xen_boot-command-sup.patch @@ -1,7 +1,7 @@ From d33045ce7ffcb7c1e4a60c14d5ca64b36e3c5abe Mon Sep 17 00:00:00 2001 From: Fu Wei Date: Sun, 14 May 2017 15:43:46 +0800 -Subject: [PATCH 040/249] util/grub.d/20_linux_xen.in: Add xen_boot command +Subject: [PATCH 040/250] util/grub.d/20_linux_xen.in: Add xen_boot command support for aarch64 This patch adds the support of xen_boot command for aarch64: diff --git a/0041-arm64-Update-the-introduction-of-Xen-boot-commands-i.patch b/0041-arm64-Update-the-introduction-of-Xen-boot-commands-i.patch index bcddea1f..fdc3919c 100644 --- a/0041-arm64-Update-the-introduction-of-Xen-boot-commands-i.patch +++ b/0041-arm64-Update-the-introduction-of-Xen-boot-commands-i.patch @@ -1,7 +1,7 @@ From 26c2f306fd425d2c0348023b8dcb7eb40a01851a Mon Sep 17 00:00:00 2001 From: Fu Wei Date: Sun, 14 May 2017 15:43:47 +0800 -Subject: [PATCH 041/249] arm64: Update the introduction of Xen boot commands +Subject: [PATCH 041/250] arm64: Update the introduction of Xen boot commands in docs/grub.texi delete: xen_linux, xen_initrd, xen_xsm diff --git a/0042-sparc64-Don-t-use-devspec-to-determine-the-OBP-path.patch b/0042-sparc64-Don-t-use-devspec-to-determine-the-OBP-path.patch index 0b86bc29..5be7f2af 100644 --- a/0042-sparc64-Don-t-use-devspec-to-determine-the-OBP-path.patch +++ b/0042-sparc64-Don-t-use-devspec-to-determine-the-OBP-path.patch @@ -1,7 +1,7 @@ From f8679cedff703b437171f4708d46adbfcff80a65 Mon Sep 17 00:00:00 2001 From: Eric Snowberg Date: Thu, 18 May 2017 17:10:22 -0600 -Subject: [PATCH 042/249] sparc64: Don't use devspec to determine the OBP path +Subject: [PATCH 042/250] sparc64: Don't use devspec to determine the OBP path Don't use devspec to determine the OBP path on SPARC hardware. Within all versions of Linux on SPARC, the devspec returns one of three values: diff --git a/0043-Allow-GRUB-to-mount-ext2-3-4-filesystems-that-have-t.patch b/0043-Allow-GRUB-to-mount-ext2-3-4-filesystems-that-have-t.patch index da4af6aa..63a05e47 100644 --- a/0043-Allow-GRUB-to-mount-ext2-3-4-filesystems-that-have-t.patch +++ b/0043-Allow-GRUB-to-mount-ext2-3-4-filesystems-that-have-t.patch @@ -1,7 +1,7 @@ From 734668238fcc0ef691a080839e04f33854fa133a Mon Sep 17 00:00:00 2001 From: Eric Biggers Date: Thu, 29 Jun 2017 13:27:49 +0000 -Subject: [PATCH 043/249] Allow GRUB to mount ext2/3/4 filesystems that have +Subject: [PATCH 043/250] Allow GRUB to mount ext2/3/4 filesystems that have the encryption feature. On such a filesystem, inodes may have EXT4_ENCRYPT_FLAG set. diff --git a/0044-ehci-Fix-compilation-for-amd64.patch b/0044-ehci-Fix-compilation-for-amd64.patch index 8cf8d982..fd451b37 100644 --- a/0044-ehci-Fix-compilation-for-amd64.patch +++ b/0044-ehci-Fix-compilation-for-amd64.patch @@ -1,7 +1,7 @@ From edb37fb30bbc8a3b6bec67911c7200e4eb071127 Mon Sep 17 00:00:00 2001 From: phcoder Date: Sun, 9 Jul 2017 20:58:31 +0200 -Subject: [PATCH 044/249] ehci: Fix compilation for amd64 +Subject: [PATCH 044/250] ehci: Fix compilation for amd64 --- grub-core/bus/usb/ehci.c | 8 ++++---- diff --git a/0045-cache-Fix-compilation-for-ppc-sparc-and-arm64.patch b/0045-cache-Fix-compilation-for-ppc-sparc-and-arm64.patch index bd818aea..1f8a43e3 100644 --- a/0045-cache-Fix-compilation-for-ppc-sparc-and-arm64.patch +++ b/0045-cache-Fix-compilation-for-ppc-sparc-and-arm64.patch @@ -1,7 +1,7 @@ From d8901e3ba115d705c9c08ecedd201aca8b4867b8 Mon Sep 17 00:00:00 2001 From: phcoder Date: Sun, 9 Jul 2017 20:59:15 +0200 -Subject: [PATCH 045/249] cache: Fix compilation for ppc, sparc and arm64 +Subject: [PATCH 045/250] cache: Fix compilation for ppc, sparc and arm64 --- include/grub/cache.h | 4 +++- diff --git a/0046-ehci-Fix-compilation-on-i386.patch b/0046-ehci-Fix-compilation-on-i386.patch index f3aee743..1a4bfd7e 100644 --- a/0046-ehci-Fix-compilation-on-i386.patch +++ b/0046-ehci-Fix-compilation-on-i386.patch @@ -1,7 +1,7 @@ From 284afab081ef7ed7db2c59151853aa3c92d988f2 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Sun, 9 Jul 2017 21:31:19 +0200 -Subject: [PATCH 046/249] ehci: Fix compilation on i386 +Subject: [PATCH 046/250] ehci: Fix compilation on i386 --- grub-core/bus/usb/ehci.c | 4 ++-- diff --git a/0047-crypto-Fix-use-after-free.patch b/0047-crypto-Fix-use-after-free.patch index 65e7e035..1746816d 100644 --- a/0047-crypto-Fix-use-after-free.patch +++ b/0047-crypto-Fix-use-after-free.patch @@ -1,7 +1,7 @@ From a0fe0c26aa8a1c0ad66d9527611bd726b849c623 Mon Sep 17 00:00:00 2001 From: AppChecker Date: Sun, 9 Jul 2017 21:57:35 +0200 -Subject: [PATCH 047/249] crypto: Fix use after free. +Subject: [PATCH 047/250] crypto: Fix use after free. Reported by: AppChecker Transformed to patch by: Satish Govindarajan diff --git a/0048-arm-efi-Fix-compilation.patch b/0048-arm-efi-Fix-compilation.patch index 0d041ef0..8b8df065 100644 --- a/0048-arm-efi-Fix-compilation.patch +++ b/0048-arm-efi-Fix-compilation.patch @@ -1,7 +1,7 @@ From cb8b7e4e36bf32dccbbba8252aa44ad3ada4fbc1 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Sun, 9 Jul 2017 21:48:37 +0000 -Subject: [PATCH 048/249] arm-efi: Fix compilation +Subject: [PATCH 048/250] arm-efi: Fix compilation --- grub-core/loader/arm/linux.c | 8 ++++---- diff --git a/0049-fdt-silence-clang-warning.patch b/0049-fdt-silence-clang-warning.patch index fec88b0a..ed379cfd 100644 --- a/0049-fdt-silence-clang-warning.patch +++ b/0049-fdt-silence-clang-warning.patch @@ -1,7 +1,7 @@ From 68d54b55f49249c5e0517bf189f0f3df7ee6a36f Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 10 Jul 2017 01:34:22 +0000 -Subject: [PATCH 049/249] fdt: silence clang warning. +Subject: [PATCH 049/250] fdt: silence clang warning. --- grub-core/lib/fdt.c | 3 ++- diff --git a/0050-Fix-a-segfault-in-lsefi.patch b/0050-Fix-a-segfault-in-lsefi.patch index d9a7b1c3..e9a2b564 100644 --- a/0050-Fix-a-segfault-in-lsefi.patch +++ b/0050-Fix-a-segfault-in-lsefi.patch @@ -1,7 +1,7 @@ From e8ab5a1a9e2889eb59d1fa494ba441a53698dcd2 Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Wed, 19 Jul 2017 15:47:41 -0400 -Subject: [PATCH 050/249] Fix a segfault in lsefi +Subject: [PATCH 050/250] Fix a segfault in lsefi when protocols_per_handle returns error, we can't use the pointers we passed to it, and that includes trusting num_protocols. diff --git a/0051-zfs-remove-size_t-typedef-and-use-grub_size_t-instea.patch b/0051-zfs-remove-size_t-typedef-and-use-grub_size_t-instea.patch index c598f4a9..9a4d46e9 100644 --- a/0051-zfs-remove-size_t-typedef-and-use-grub_size_t-instea.patch +++ b/0051-zfs-remove-size_t-typedef-and-use-grub_size_t-instea.patch @@ -1,7 +1,7 @@ From fa42786264cef98c56e972b3bb6b8448000e1c70 Mon Sep 17 00:00:00 2001 From: Pete Batard Date: Thu, 3 Aug 2017 15:46:15 +0100 -Subject: [PATCH 051/249] zfs: remove size_t typedef and use grub_size_t +Subject: [PATCH 051/250] zfs: remove size_t typedef and use grub_size_t instead * Prevents some toolchains from issuing a warning on size_t redef. diff --git a/0052-udf-Fix-reading-label-lvd.ident-is-dstring.patch b/0052-udf-Fix-reading-label-lvd.ident-is-dstring.patch index 27e3cb01..90331e3f 100644 --- a/0052-udf-Fix-reading-label-lvd.ident-is-dstring.patch +++ b/0052-udf-Fix-reading-label-lvd.ident-is-dstring.patch @@ -1,7 +1,7 @@ From 76188809d5ca40c5285b0ab202b5edea7be3f04d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pali=20Roh=C3=A1r?= Date: Thu, 22 Jun 2017 14:33:17 +0200 -Subject: [PATCH 052/249] udf: Fix reading label, lvd.ident is dstring +Subject: [PATCH 052/250] udf: Fix reading label, lvd.ident is dstring UDF dstring has stored length in the last byte of buffer. Therefore last byte is not part of recorded characters. And empty string in dstring is diff --git a/0053-grub-core-fs-udf.c-Add-support-for-UUID.patch b/0053-grub-core-fs-udf.c-Add-support-for-UUID.patch index 2ca612d0..8bf57e87 100644 --- a/0053-grub-core-fs-udf.c-Add-support-for-UUID.patch +++ b/0053-grub-core-fs-udf.c-Add-support-for-UUID.patch @@ -1,7 +1,7 @@ From 435fa75e01ef40917239c7f775e505e86f70d202 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pali=20Roh=C3=A1r?= Date: Thu, 22 Jun 2017 14:42:16 +0200 -Subject: [PATCH 053/249] * grub-core/fs/udf.c: Add support for UUID +Subject: [PATCH 053/250] * grub-core/fs/udf.c: Add support for UUID Use same algorithm as in libblkid from util-linux v2.30. diff --git a/0054-mkrescue-Check-xorriso-presence-before-doing-anythin.patch b/0054-mkrescue-Check-xorriso-presence-before-doing-anythin.patch index a3363d77..30c22514 100644 --- a/0054-mkrescue-Check-xorriso-presence-before-doing-anythin.patch +++ b/0054-mkrescue-Check-xorriso-presence-before-doing-anythin.patch @@ -1,7 +1,7 @@ From 9e962fd3c42081e2eef1f99a0eaab38fd04d2620 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 7 Aug 2017 18:05:17 +0200 -Subject: [PATCH 054/249] mkrescue: Check xorriso presence before doing +Subject: [PATCH 054/250] mkrescue: Check xorriso presence before doing anything else. mkrescue can't do anything useful without xorriso, so abort early if it's diff --git a/0055-Fail-if-xorriso-failed.patch b/0055-Fail-if-xorriso-failed.patch index b8bb2f06..f98b070e 100644 --- a/0055-Fail-if-xorriso-failed.patch +++ b/0055-Fail-if-xorriso-failed.patch @@ -1,7 +1,7 @@ From e66dc5d71ebfc9763420a76c274e6980d54641c3 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 7 Aug 2017 18:08:39 +0200 -Subject: [PATCH 055/249] Fail if xorriso failed. +Subject: [PATCH 055/250] Fail if xorriso failed. If xorriso failed most likely we didn't generate a meaningful image. --- diff --git a/0056-efi-refactor-grub_efi_allocate_pages.patch b/0056-efi-refactor-grub_efi_allocate_pages.patch index 6383ab53..85bb3057 100644 --- a/0056-efi-refactor-grub_efi_allocate_pages.patch +++ b/0056-efi-refactor-grub_efi_allocate_pages.patch @@ -1,7 +1,7 @@ From dd5fde2df83c5c03b7ba04d2cc5b7be96de8da7b Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:23 +0100 -Subject: [PATCH 056/249] efi: refactor grub_efi_allocate_pages +Subject: [PATCH 056/250] efi: refactor grub_efi_allocate_pages Expose a new function, grub_efi_allocate_pages_real(), making it possible to specify allocation type and memory type as supported by the UEFI diff --git a/0057-Remove-grub_efi_allocate_pages.patch b/0057-Remove-grub_efi_allocate_pages.patch index 552b3d8a..3f130087 100644 --- a/0057-Remove-grub_efi_allocate_pages.patch +++ b/0057-Remove-grub_efi_allocate_pages.patch @@ -1,7 +1,7 @@ From 4bc909bf89f5b4ff86c9e4e609d4fe0c11a66b0c Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 7 Aug 2017 18:33:29 +0200 -Subject: [PATCH 057/249] Remove grub_efi_allocate_pages. +Subject: [PATCH 057/250] Remove grub_efi_allocate_pages. grub_efi_allocate_pages Essentially does 2 unrelated things: * Allocate at fixed address. diff --git a/0058-efi-move-fdt-helper-library.patch b/0058-efi-move-fdt-helper-library.patch index f30a5a15..d5965eeb 100644 --- a/0058-efi-move-fdt-helper-library.patch +++ b/0058-efi-move-fdt-helper-library.patch @@ -1,7 +1,7 @@ From 8c9465fac901caac6802d6872a1374518b001517 Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:24 +0100 -Subject: [PATCH 058/249] efi: move fdt helper library +Subject: [PATCH 058/250] efi: move fdt helper library There is nothing ARM64 (or even ARM) specific about the efi fdt helper library, which is used for locating or overriding a firmware-provided diff --git a/0059-efi-Add-GRUB_PE32_MAGIC-definition.patch b/0059-efi-Add-GRUB_PE32_MAGIC-definition.patch index 997dc2f6..df5562c0 100644 --- a/0059-efi-Add-GRUB_PE32_MAGIC-definition.patch +++ b/0059-efi-Add-GRUB_PE32_MAGIC-definition.patch @@ -1,7 +1,7 @@ From c5841ba7f0d14c193f20854e7e55b4f7ce9207d5 Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:25 +0100 -Subject: [PATCH 059/249] efi: Add GRUB_PE32_MAGIC definition +Subject: [PATCH 059/250] efi: Add GRUB_PE32_MAGIC definition Add a generic GRUB_PE32_MAGIC definition for the PE 'MZ' tag and delete the existing one in arm64/linux.h. diff --git a/0060-arm64-linux-loader-improve-type-portability.patch b/0060-arm64-linux-loader-improve-type-portability.patch index d5f12c36..0d499233 100644 --- a/0060-arm64-linux-loader-improve-type-portability.patch +++ b/0060-arm64-linux-loader-improve-type-portability.patch @@ -1,7 +1,7 @@ From 91212e0aa07e704a61e4540c18a27f149f5e51c3 Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:26 +0100 -Subject: [PATCH 060/249] arm64 linux loader: improve type portability +Subject: [PATCH 060/250] arm64 linux loader: improve type portability In preparation for turning this into a common loader for 32-bit and 64-bit platforms, ensure the code will compile cleanly for either. diff --git a/0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch b/0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch index 92f9c803..01d2d8f8 100644 --- a/0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch +++ b/0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch @@ -1,7 +1,7 @@ From f826330683675f0deb55b58fd229afd7d65fb053 Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:32 +0100 -Subject: [PATCH 061/249] efi: change heap allocation type to +Subject: [PATCH 061/250] efi: change heap allocation type to GRUB_EFI_LOADER_CODE With upcoming changes to EDK2, allocations of type EFI_LOADER_DATA may diff --git a/0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch b/0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch index 1fffeeca..13997612 100644 --- a/0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch +++ b/0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch @@ -1,7 +1,7 @@ From bdd89d239cd9b4089630bfb5ec862aab8086dca2 Mon Sep 17 00:00:00 2001 From: Pete Batard Date: Mon, 7 Aug 2017 16:20:30 +0100 -Subject: [PATCH 062/249] core: use GRUB_TERM_ definitions when handling term +Subject: [PATCH 062/250] core: use GRUB_TERM_ definitions when handling term characters * Also use hex value for GRUB_TERM_ESC as '\e' is not in the C standard and is not understood by some compilers diff --git a/0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch b/0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch index 59b5a7dd..90de89d0 100644 --- a/0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch +++ b/0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch @@ -1,7 +1,7 @@ From 1deebd85ef87cc581e995ce0a51dc0802ac9c367 Mon Sep 17 00:00:00 2001 From: Pete Batard Date: Mon, 7 Aug 2017 16:23:12 +0100 -Subject: [PATCH 063/249] io: add a GRUB_GZ prefix to gzio specific defines +Subject: [PATCH 063/250] io: add a GRUB_GZ prefix to gzio specific defines * This is done to avoid a conflict with a PACKED define in the EDK2 --- diff --git a/0064-re-write-.gitignore.patch b/0064-re-write-.gitignore.patch index 527aa012..8f89cec9 100644 --- a/0064-re-write-.gitignore.patch +++ b/0064-re-write-.gitignore.patch @@ -1,7 +1,7 @@ From 38bfcd3054c28aa40234840c12d900f1d18a217d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 8 Aug 2017 12:48:04 -0400 -Subject: [PATCH 064/249] re-write .gitignore +Subject: [PATCH 064/250] re-write .gitignore --- .gitignore | 352 ++++++++++++-------------------------- diff --git a/0065-IBM-client-architecture-CAS-reboot-support.patch b/0065-IBM-client-architecture-CAS-reboot-support.patch index 141049a0..0035eca9 100644 --- a/0065-IBM-client-architecture-CAS-reboot-support.patch +++ b/0065-IBM-client-architecture-CAS-reboot-support.patch @@ -1,7 +1,7 @@ From bf1fd830091fff49e26f39027e0db8fd4b688624 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Thu, 20 Sep 2012 18:07:39 -0300 -Subject: [PATCH 065/249] IBM client architecture (CAS) reboot support +Subject: [PATCH 065/250] IBM client architecture (CAS) reboot support This is an implementation of IBM client architecture (CAS) reboot for GRUB. diff --git a/0066-for-ppc-reset-console-display-attr-when-clear-screen.patch b/0066-for-ppc-reset-console-display-attr-when-clear-screen.patch index b90ad40f..c97d2f38 100644 --- a/0066-for-ppc-reset-console-display-attr-when-clear-screen.patch +++ b/0066-for-ppc-reset-console-display-attr-when-clear-screen.patch @@ -1,7 +1,7 @@ From 8b30fab3c07a9fc8549e404c411b747b960c57b2 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Wed, 24 Apr 2013 10:51:48 -0300 -Subject: [PATCH 066/249] for ppc, reset console display attr when clear screen +Subject: [PATCH 066/250] for ppc, reset console display attr when clear screen v2: Also use \x0c instead of a literal ^L to make future patches less awkward. diff --git a/0067-Disable-GRUB-video-support-for-IBM-power-machines.patch b/0067-Disable-GRUB-video-support-for-IBM-power-machines.patch index 3714d3c2..c4374ca1 100644 --- a/0067-Disable-GRUB-video-support-for-IBM-power-machines.patch +++ b/0067-Disable-GRUB-video-support-for-IBM-power-machines.patch @@ -1,7 +1,7 @@ From 45322cbc9402639a431fc0f33bd76e387e6f02bf Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 11 Jun 2013 15:14:05 -0300 -Subject: [PATCH 067/249] Disable GRUB video support for IBM power machines +Subject: [PATCH 067/250] Disable GRUB video support for IBM power machines Should fix the problem in bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=973205 diff --git a/0068-Honor-a-symlink-when-generating-configuration-by-gru.patch b/0068-Honor-a-symlink-when-generating-configuration-by-gru.patch index cba38c32..93fb9633 100644 --- a/0068-Honor-a-symlink-when-generating-configuration-by-gru.patch +++ b/0068-Honor-a-symlink-when-generating-configuration-by-gru.patch @@ -1,7 +1,7 @@ From c29e260c9f41f4f802fa852b6c46fb2e5d912cb6 Mon Sep 17 00:00:00 2001 From: Marcel Kolaja Date: Tue, 21 Jan 2014 10:57:08 -0500 -Subject: [PATCH 068/249] Honor a symlink when generating configuration by +Subject: [PATCH 068/250] Honor a symlink when generating configuration by grub2-mkconfig Honor a symlink when generating configuration by grub2-mkconfig, so that diff --git a/0069-Move-bash-completion-script-922997.patch b/0069-Move-bash-completion-script-922997.patch index 0e21d7ab..cea2b76c 100644 --- a/0069-Move-bash-completion-script-922997.patch +++ b/0069-Move-bash-completion-script-922997.patch @@ -1,7 +1,7 @@ From 8eaf2f497a6bcffc5554509533940ac2b764b981 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 3 Apr 2013 14:35:34 -0400 -Subject: [PATCH 069/249] Move bash completion script (#922997) +Subject: [PATCH 069/250] Move bash completion script (#922997) Apparently these go in a new place now. --- diff --git a/0070-Update-to-minilzo-2.08.patch b/0070-Update-to-minilzo-2.08.patch index c4df8f33..777b6dae 100644 --- a/0070-Update-to-minilzo-2.08.patch +++ b/0070-Update-to-minilzo-2.08.patch @@ -1,7 +1,7 @@ From 9a1e99c5628bafa9e3970a5317b721da704bec6a Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Dec 2014 15:36:09 -0500 -Subject: [PATCH 070/249] Update to minilzo-2.08 +Subject: [PATCH 070/250] Update to minilzo-2.08 This fixes CVE-2014-4607 - lzo: lzo1x_decompress_safe() integer overflow diff --git a/0071-Allow-fallback-to-include-entries-by-title-not-just-.patch b/0071-Allow-fallback-to-include-entries-by-title-not-just-.patch index 1517b46b..9a33766c 100644 --- a/0071-Allow-fallback-to-include-entries-by-title-not-just-.patch +++ b/0071-Allow-fallback-to-include-entries-by-title-not-just-.patch @@ -1,7 +1,7 @@ From 27845fb323de35e9dcaad8c738eb1a2a2bc316f8 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 5 Sep 2014 10:07:04 -0400 -Subject: [PATCH 071/249] Allow "fallback" to include entries by title, not +Subject: [PATCH 071/250] Allow "fallback" to include entries by title, not just number. Resolves: rhbz#1026084 diff --git a/0072-Add-GRUB_DISABLE_UUID.patch b/0072-Add-GRUB_DISABLE_UUID.patch index 8df184ec..24e9a7fd 100644 --- a/0072-Add-GRUB_DISABLE_UUID.patch +++ b/0072-Add-GRUB_DISABLE_UUID.patch @@ -1,7 +1,7 @@ From 7f7429e93fa791ac2c002beaafab9b9d9bd86b89 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Sep 2014 16:49:25 -0400 -Subject: [PATCH 072/249] Add GRUB_DISABLE_UUID. +Subject: [PATCH 072/250] Add GRUB_DISABLE_UUID. This will cause "search --fs-uuid --set=root ..." not to be generated by grub2-mkconfig, and instead simply attempt to use the grub device name diff --git a/0073-Make-exit-take-a-return-code.patch b/0073-Make-exit-take-a-return-code.patch index 82cbc4dd..235d9f37 100644 --- a/0073-Make-exit-take-a-return-code.patch +++ b/0073-Make-exit-take-a-return-code.patch @@ -1,7 +1,7 @@ From 384ccb1b44fc23514a59529f58f984dcc4a75cc9 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 26 Feb 2014 21:49:12 -0500 -Subject: [PATCH 073/249] Make "exit" take a return code. +Subject: [PATCH 073/250] Make "exit" take a return code. This adds "exit" with a return code. With this patch, any "exit" command /may/ include a return code, and on platforms that support diff --git a/0074-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch b/0074-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch index b384eccd..840e9980 100644 --- a/0074-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch +++ b/0074-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch @@ -1,7 +1,7 @@ From 939f3dfcfacde13bd7ebfe411c0dceee9e5ed0ae Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 22 Jul 2015 11:21:01 -0400 -Subject: [PATCH 074/249] Mark po/exclude.pot as binary so git won't try to +Subject: [PATCH 074/250] Mark po/exclude.pot as binary so git won't try to diff nonprintables. Signed-off-by: Peter Jones diff --git a/0075-Make-efi-machines-load-an-env-block-from-a-variable.patch b/0075-Make-efi-machines-load-an-env-block-from-a-variable.patch index 332132eb..8c8e69a9 100644 --- a/0075-Make-efi-machines-load-an-env-block-from-a-variable.patch +++ b/0075-Make-efi-machines-load-an-env-block-from-a-variable.patch @@ -1,7 +1,7 @@ From 805220eb48a8cabcc83628d90aa40f3204b21a71 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 7 Dec 2015 14:20:49 -0500 -Subject: [PATCH 075/249] Make efi machines load an env block from a variable +Subject: [PATCH 075/250] Make efi machines load an env block from a variable Signed-off-by: Peter Jones --- diff --git a/0076-DHCP-client-ID-and-UUID-options-added.patch b/0076-DHCP-client-ID-and-UUID-options-added.patch index 5abe1bc1..fa5e8d78 100644 --- a/0076-DHCP-client-ID-and-UUID-options-added.patch +++ b/0076-DHCP-client-ID-and-UUID-options-added.patch @@ -1,7 +1,7 @@ From cefc164d655fb7709efbc37a317952ff3ec4aeb3 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 27 Nov 2012 17:18:53 -0200 -Subject: [PATCH 076/249] DHCP client ID and UUID options added. +Subject: [PATCH 076/250] DHCP client ID and UUID options added. --- grub-core/net/bootp.c | 87 ++++++++++++++++++++++++++++++++++++++++++++++----- diff --git a/0077-trim-arp-packets-with-abnormal-size.patch b/0077-trim-arp-packets-with-abnormal-size.patch index 78264779..a45579b9 100644 --- a/0077-trim-arp-packets-with-abnormal-size.patch +++ b/0077-trim-arp-packets-with-abnormal-size.patch @@ -1,7 +1,7 @@ From 571a6cce3b0d4c8abf11efc320e2de6ff9188d60 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Wed, 5 Feb 2014 09:42:42 -0200 -Subject: [PATCH 077/249] trim arp packets with abnormal size +Subject: [PATCH 077/250] trim arp packets with abnormal size GRUB uses arp request to create the arp response. If the incoming packet is foobared, GRUB needs to trim the arp response packet before sending it. diff --git a/0078-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch b/0078-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch index 2a062ebc..5dc45ec8 100644 --- a/0078-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch +++ b/0078-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch @@ -1,7 +1,7 @@ From 6cd959a64f588e256f0ba17e31bf2720b9cdec88 Mon Sep 17 00:00:00 2001 From: Prarit Bhargava Date: Wed, 12 Mar 2014 10:58:16 -0400 -Subject: [PATCH 078/249] Fix bad test on GRUB_DISABLE_SUBMENU. +Subject: [PATCH 078/250] Fix bad test on GRUB_DISABLE_SUBMENU. The file /etc/grub.d/10_linux does diff --git a/0079-Add-support-for-UEFI-operating-systems-returned-by-o.patch b/0079-Add-support-for-UEFI-operating-systems-returned-by-o.patch index 01bebb9a..b7b321de 100644 --- a/0079-Add-support-for-UEFI-operating-systems-returned-by-o.patch +++ b/0079-Add-support-for-UEFI-operating-systems-returned-by-o.patch @@ -1,7 +1,7 @@ From 0254265409f80b369c35fb474c7371feb6f9ae1d Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Wed, 12 Jun 2013 11:51:49 -0400 -Subject: [PATCH 079/249] Add support for UEFI operating systems returned by +Subject: [PATCH 079/250] Add support for UEFI operating systems returned by os-prober os-prober returns UEFI operating systems in the form: diff --git a/0080-Migrate-PPC-from-Yaboot-to-Grub2.patch b/0080-Migrate-PPC-from-Yaboot-to-Grub2.patch index ecd7fec9..109a669d 100644 --- a/0080-Migrate-PPC-from-Yaboot-to-Grub2.patch +++ b/0080-Migrate-PPC-from-Yaboot-to-Grub2.patch @@ -1,7 +1,7 @@ From f2b4c105e3657cc32ed0f7aefa713f161cdf64f1 Mon Sep 17 00:00:00 2001 From: Mark Hamzy Date: Wed, 28 Mar 2012 14:46:41 -0500 -Subject: [PATCH 080/249] Migrate PPC from Yaboot to Grub2 +Subject: [PATCH 080/250] Migrate PPC from Yaboot to Grub2 Add configuration support for serial terminal consoles. This will set the maximum screen size so that text is not overwritten. diff --git a/0081-Add-fw_path-variable-revised.patch b/0081-Add-fw_path-variable-revised.patch index f9a2bfb8..dd88a1bf 100644 --- a/0081-Add-fw_path-variable-revised.patch +++ b/0081-Add-fw_path-variable-revised.patch @@ -1,7 +1,7 @@ From 7f021a05a5ed7c97432abbc1762f40e36a4915e3 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Wed, 19 Sep 2012 21:22:55 -0300 -Subject: [PATCH 081/249] Add fw_path variable (revised) +Subject: [PATCH 081/250] Add fw_path variable (revised) This patch makes grub look for its config file on efi where the app was found. It was originally written by Matthew Garrett, and adapted to fix the diff --git a/0082-Add-support-for-linuxefi.patch b/0082-Add-support-for-linuxefi.patch index 9ce7bf82..180ff5fb 100644 --- a/0082-Add-support-for-linuxefi.patch +++ b/0082-Add-support-for-linuxefi.patch @@ -1,7 +1,7 @@ From 778385965798ac2711f0d07d5cf521a6e999ca8b Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 10 Jul 2012 11:58:52 -0400 -Subject: [PATCH 082/249] Add support for linuxefi +Subject: [PATCH 082/250] Add support for linuxefi --- grub-core/Makefile.core.def | 8 + diff --git a/0083-Use-linuxefi-and-initrdefi-where-appropriate.patch b/0083-Use-linuxefi-and-initrdefi-where-appropriate.patch index f439d68a..765bba75 100644 --- a/0083-Use-linuxefi-and-initrdefi-where-appropriate.patch +++ b/0083-Use-linuxefi-and-initrdefi-where-appropriate.patch @@ -1,7 +1,7 @@ From 793d4270384ef3373bc0b3c956cab8a8cdb75bcf Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 16 Jul 2012 18:57:11 -0400 -Subject: [PATCH 083/249] Use "linuxefi" and "initrdefi" where appropriate. +Subject: [PATCH 083/250] Use "linuxefi" and "initrdefi" where appropriate. --- util/grub.d/10_linux.in | 18 ++++++++++++++++-- diff --git a/0084-Don-t-allow-insmod-when-secure-boot-is-enabled.patch b/0084-Don-t-allow-insmod-when-secure-boot-is-enabled.patch index ffa2a414..9a1a4cf9 100644 --- a/0084-Don-t-allow-insmod-when-secure-boot-is-enabled.patch +++ b/0084-Don-t-allow-insmod-when-secure-boot-is-enabled.patch @@ -1,7 +1,7 @@ From eb8fd62e887e624f5c6e7c2ee8512981e8b5be97 Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Tue, 23 Oct 2012 10:40:49 -0400 -Subject: [PATCH 084/249] Don't allow insmod when secure boot is enabled. +Subject: [PATCH 084/250] Don't allow insmod when secure boot is enabled. Hi, diff --git a/0085-Pass-x-hex-hex-straight-through-unmolested.patch b/0085-Pass-x-hex-hex-straight-through-unmolested.patch index af0cf11e..78d8a60f 100644 --- a/0085-Pass-x-hex-hex-straight-through-unmolested.patch +++ b/0085-Pass-x-hex-hex-straight-through-unmolested.patch @@ -1,7 +1,7 @@ From 0d54ed89090fc1bdcb75de474024b2b81dbf644f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 1 Oct 2012 13:24:37 -0400 -Subject: [PATCH 085/249] Pass "\x[[:hex:]][[:hex:]]" straight through +Subject: [PATCH 085/250] Pass "\x[[:hex:]][[:hex:]]" straight through unmolested. --- diff --git a/0086-Add-X-option-to-printf-functions.patch b/0086-Add-X-option-to-printf-functions.patch index a6dc011b..8ea3454c 100644 --- a/0086-Add-X-option-to-printf-functions.patch +++ b/0086-Add-X-option-to-printf-functions.patch @@ -1,7 +1,7 @@ From 6237b1688124d6a72250b296e758ef2d59fde26f Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 27 Nov 2012 16:58:39 -0200 -Subject: [PATCH 086/249] Add %X option to printf functions. +Subject: [PATCH 086/250] Add %X option to printf functions. --- grub-core/kern/misc.c | 7 +++++-- diff --git a/0087-Search-for-specific-config-file-for-netboot.patch b/0087-Search-for-specific-config-file-for-netboot.patch index 9df8cbb7..036cbc0d 100644 --- a/0087-Search-for-specific-config-file-for-netboot.patch +++ b/0087-Search-for-specific-config-file-for-netboot.patch @@ -1,7 +1,7 @@ From 9491cbfdab951e38f096bd9705a76b382f54c9be Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 27 Nov 2012 17:22:07 -0200 -Subject: [PATCH 087/249] Search for specific config file for netboot +Subject: [PATCH 087/250] Search for specific config file for netboot This patch implements a search for a specific configuration when the config file is on a remoteserver. It uses the following order: diff --git a/0088-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch b/0088-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch index 9ef9f52b..13dd538a 100644 --- a/0088-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch +++ b/0088-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch @@ -1,7 +1,7 @@ From 5fcdebdc36cc84c772754b7f5bdb87aed2b42853 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Tue, 22 Jan 2013 06:31:38 +0100 -Subject: [PATCH 088/249] blscfg: add blscfg module to parse Boot Loader +Subject: [PATCH 088/250] blscfg: add blscfg module to parse Boot Loader Specification snippets http://www.freedesktop.org/wiki/Specifications/BootLoaderSpec diff --git a/0089-Don-t-write-messages-to-the-screen.patch b/0089-Don-t-write-messages-to-the-screen.patch index 0fa18008..b87d9fc8 100644 --- a/0089-Don-t-write-messages-to-the-screen.patch +++ b/0089-Don-t-write-messages-to-the-screen.patch @@ -1,7 +1,7 @@ From fc390be631e93744c6a3a2f42849c9edf2614a36 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 13:30:20 -0400 -Subject: [PATCH 089/249] Don't write messages to the screen +Subject: [PATCH 089/250] Don't write messages to the screen Writing messages to the screen before the menus or boot splash happens so quickly it looks like something is wrong and isn't diff --git a/0090-Don-t-print-GNU-GRUB-header.patch b/0090-Don-t-print-GNU-GRUB-header.patch index fc38aae2..044940b5 100644 --- a/0090-Don-t-print-GNU-GRUB-header.patch +++ b/0090-Don-t-print-GNU-GRUB-header.patch @@ -1,7 +1,7 @@ From 806c26ae73bc86e305c39c955d86480fad8985df Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 13:53:48 -0400 -Subject: [PATCH 090/249] Don't print GNU GRUB header +Subject: [PATCH 090/250] Don't print GNU GRUB header No one cares. --- diff --git a/0091-Don-t-add-to-highlighted-row.patch b/0091-Don-t-add-to-highlighted-row.patch index 44c78cbe..a1de9eba 100644 --- a/0091-Don-t-add-to-highlighted-row.patch +++ b/0091-Don-t-add-to-highlighted-row.patch @@ -1,7 +1,7 @@ From 5ae2484f263365351a2891be6c056eeb96b3924b Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 17:49:45 -0400 -Subject: [PATCH 091/249] Don't add '*' to highlighted row +Subject: [PATCH 091/250] Don't add '*' to highlighted row It is already highlighted. --- diff --git a/0092-Message-string-cleanups.patch b/0092-Message-string-cleanups.patch index 62f30511..fda3c58b 100644 --- a/0092-Message-string-cleanups.patch +++ b/0092-Message-string-cleanups.patch @@ -1,7 +1,7 @@ From 622b238ecb927d331dc38083584a7323013b5f21 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 11:09:04 -0400 -Subject: [PATCH 092/249] Message string cleanups +Subject: [PATCH 092/250] Message string cleanups Make use of terminology consistent. Remove jargon. --- diff --git a/0093-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch b/0093-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch index 38214147..b36ccf5b 100644 --- a/0093-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch +++ b/0093-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch @@ -1,7 +1,7 @@ From c7dac08ab344638afabf579e03bedfac729e1944 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:08:23 -0400 -Subject: [PATCH 093/249] Fix border spacing now that we aren't displaying it +Subject: [PATCH 093/250] Fix border spacing now that we aren't displaying it --- grub-core/normal/menu_text.c | 6 +++--- diff --git a/0094-Use-the-correct-indentation-for-the-term-help-text.patch b/0094-Use-the-correct-indentation-for-the-term-help-text.patch index 915c464d..651a0728 100644 --- a/0094-Use-the-correct-indentation-for-the-term-help-text.patch +++ b/0094-Use-the-correct-indentation-for-the-term-help-text.patch @@ -1,7 +1,7 @@ From 8a59d6c44d946eac70ecbb7a9418c5d6801add8b Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:08:49 -0400 -Subject: [PATCH 094/249] Use the correct indentation for the term help text +Subject: [PATCH 094/250] Use the correct indentation for the term help text That is consistent with the menu help text --- diff --git a/0095-Indent-menu-entries.patch b/0095-Indent-menu-entries.patch index acb8416a..2890266c 100644 --- a/0095-Indent-menu-entries.patch +++ b/0095-Indent-menu-entries.patch @@ -1,7 +1,7 @@ From 018439ecfda2bc5049ccbfb0d6ab7fa047411a3b Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:30:55 -0400 -Subject: [PATCH 095/249] Indent menu entries +Subject: [PATCH 095/250] Indent menu entries --- grub-core/normal/menu_text.c | 3 ++- diff --git a/0096-Fix-margins.patch b/0096-Fix-margins.patch index e797a8e8..6e52d035 100644 --- a/0096-Fix-margins.patch +++ b/0096-Fix-margins.patch @@ -1,7 +1,7 @@ From 33481aa0e7897465ffd386101d6f3eda6e3bbac0 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:59:36 -0400 -Subject: [PATCH 096/249] Fix margins +Subject: [PATCH 096/250] Fix margins --- grub-core/normal/menu_text.c | 8 +++----- diff --git a/0097-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch b/0097-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch index 24554fd1..2be490cd 100644 --- a/0097-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch +++ b/0097-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch @@ -1,7 +1,7 @@ From ea032bd4a6cb66929da61477b1759e136c975189 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 21 Jun 2013 14:44:08 -0400 -Subject: [PATCH 097/249] Use -2 instead of -1 for our right-hand margin, so +Subject: [PATCH 097/250] Use -2 instead of -1 for our right-hand margin, so linewrapping works (#976643). Signed-off-by: Peter Jones diff --git a/0098-Use-linux16-when-appropriate-880840.patch b/0098-Use-linux16-when-appropriate-880840.patch index 8270258d..69e5213c 100644 --- a/0098-Use-linux16-when-appropriate-880840.patch +++ b/0098-Use-linux16-when-appropriate-880840.patch @@ -1,7 +1,7 @@ From 8e1957d59e7e72850cbac7e779ddf22ca23c250d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 28 Oct 2013 10:05:07 -0400 -Subject: [PATCH 098/249] Use linux16 when appropriate (#880840) +Subject: [PATCH 098/250] Use linux16 when appropriate (#880840) The kernel group really would prefer that we use the 16 bit entry point on x86 bios machines. diff --git a/0099-Enable-pager-by-default.-985860.patch b/0099-Enable-pager-by-default.-985860.patch index c3f4e97e..8b1f07c6 100644 --- a/0099-Enable-pager-by-default.-985860.patch +++ b/0099-Enable-pager-by-default.-985860.patch @@ -1,7 +1,7 @@ From 7466f51a0012ebdd8be07cfc0e63d50e0e79560d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 28 Oct 2013 10:09:27 -0400 -Subject: [PATCH 099/249] Enable pager by default. (#985860) +Subject: [PATCH 099/250] Enable pager by default. (#985860) Signed-off-by: Peter Jones --- diff --git a/0100-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch b/0100-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch index 80174149..ff876975 100644 --- a/0100-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch +++ b/0100-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch @@ -1,7 +1,7 @@ From 7a97d9621a145cbd04111970fea04c34433f900c Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 28 Oct 2013 10:13:27 -0400 -Subject: [PATCH 100/249] F10 doesn't work on serial, so don't tell the user to +Subject: [PATCH 100/250] F10 doesn't work on serial, so don't tell the user to hit it (#987443) Signed-off-by: Peter Jones diff --git a/0101-Don-t-say-GNU-Linux-in-generated-menus.patch b/0101-Don-t-say-GNU-Linux-in-generated-menus.patch index 9376bd66..3aa1d6bb 100644 --- a/0101-Don-t-say-GNU-Linux-in-generated-menus.patch +++ b/0101-Don-t-say-GNU-Linux-in-generated-menus.patch @@ -1,7 +1,7 @@ From 45877a77f50eecd0b7fd3ba1aec0d4398a3b6a20 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 14 Mar 2011 14:27:42 -0400 -Subject: [PATCH 101/249] Don't say "GNU/Linux" in generated menus. +Subject: [PATCH 101/250] Don't say "GNU/Linux" in generated menus. --- util/grub.d/10_linux.in | 4 ++-- diff --git a/0102-Don-t-draw-a-border-around-the-menu.patch b/0102-Don-t-draw-a-border-around-the-menu.patch index 23352ed8..dbfc1b03 100644 --- a/0102-Don-t-draw-a-border-around-the-menu.patch +++ b/0102-Don-t-draw-a-border-around-the-menu.patch @@ -1,7 +1,7 @@ From c28a3053e96859000df5ff1d48c9a560d47c0470 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 16:47:33 -0400 -Subject: [PATCH 102/249] Don't draw a border around the menu +Subject: [PATCH 102/250] Don't draw a border around the menu It looks cleaner without it. --- diff --git a/0103-Use-the-standard-margin-for-the-timeout-string.patch b/0103-Use-the-standard-margin-for-the-timeout-string.patch index e55f9c31..0d37fbbc 100644 --- a/0103-Use-the-standard-margin-for-the-timeout-string.patch +++ b/0103-Use-the-standard-margin-for-the-timeout-string.patch @@ -1,7 +1,7 @@ From 93018f5d1727eb58dead129f150a36080c22530a Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 10:52:32 -0400 -Subject: [PATCH 103/249] Use the standard margin for the timeout string +Subject: [PATCH 103/250] Use the standard margin for the timeout string So that it aligns with the other messages --- diff --git a/0104-Add-.eh_frame-to-list-of-relocations-stripped.patch b/0104-Add-.eh_frame-to-list-of-relocations-stripped.patch index f61755b5..d0b95534 100644 --- a/0104-Add-.eh_frame-to-list-of-relocations-stripped.patch +++ b/0104-Add-.eh_frame-to-list-of-relocations-stripped.patch @@ -1,7 +1,7 @@ From c626121f38adf6fcd39a5f69249c650b4b52c10d Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Mon, 13 Jan 2014 21:50:59 -0500 -Subject: [PATCH 104/249] Add .eh_frame to list of relocations stripped +Subject: [PATCH 104/250] Add .eh_frame to list of relocations stripped --- conf/Makefile.common | 2 +- diff --git a/0105-Make-10_linux-work-with-our-changes-for-linux16-and-.patch b/0105-Make-10_linux-work-with-our-changes-for-linux16-and-.patch index c8b442ec..d6c7f6c7 100644 --- a/0105-Make-10_linux-work-with-our-changes-for-linux16-and-.patch +++ b/0105-Make-10_linux-work-with-our-changes-for-linux16-and-.patch @@ -1,7 +1,7 @@ From 59275c83e7a303c63379d37ba21aa39a3c3b7203 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jan 2014 13:12:23 -0500 -Subject: [PATCH 105/249] Make 10_linux work with our changes for linux16 and +Subject: [PATCH 105/250] Make 10_linux work with our changes for linux16 and linuxefi on aarch64 Signed-off-by: Peter Jones diff --git a/0106-Don-t-print-during-fdt-loading-method.patch b/0106-Don-t-print-during-fdt-loading-method.patch index e2c69043..02a31e19 100644 --- a/0106-Don-t-print-during-fdt-loading-method.patch +++ b/0106-Don-t-print-during-fdt-loading-method.patch @@ -1,7 +1,7 @@ From aedf2aceb354ab7bf28bbf70d0a4b505c0adcfdf Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jan 2014 16:15:46 -0500 -Subject: [PATCH 106/249] Don't print during fdt loading method. +Subject: [PATCH 106/250] Don't print during fdt loading method. Signed-off-by: Peter Jones --- diff --git a/0107-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch b/0107-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch index 62f4c342..57f27df7 100644 --- a/0107-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch +++ b/0107-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch @@ -1,7 +1,7 @@ From f2790b1f7c8efcd5589c8fcdaca51b548ab9825c Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Mon, 30 Jun 2014 14:16:46 -0400 -Subject: [PATCH 107/249] Don't munge raw spaces when we're doing our cmdline +Subject: [PATCH 107/250] Don't munge raw spaces when we're doing our cmdline escaping (#923374) Signed-off-by: Peter Jones diff --git a/0108-Don-t-require-a-password-to-boot-entries-generated-b.patch b/0108-Don-t-require-a-password-to-boot-entries-generated-b.patch index a5e65f7c..2e6d3d26 100644 --- a/0108-Don-t-require-a-password-to-boot-entries-generated-b.patch +++ b/0108-Don-t-require-a-password-to-boot-entries-generated-b.patch @@ -1,7 +1,7 @@ From 205a7844bea4d849dc24f24b5fc96f6040d5e2b9 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 11 Feb 2014 11:14:50 -0500 -Subject: [PATCH 108/249] Don't require a password to boot entries generated by +Subject: [PATCH 108/250] Don't require a password to boot entries generated by grub-mkconfig. When we set a password, we just want that to mean you can't /edit/ an entry. diff --git a/0109-Don-t-emit-Booting-.-message.patch b/0109-Don-t-emit-Booting-.-message.patch index 985769b8..dd403e3b 100644 --- a/0109-Don-t-emit-Booting-.-message.patch +++ b/0109-Don-t-emit-Booting-.-message.patch @@ -1,7 +1,7 @@ From c986c38f790881be0b9c5b0acd8d3b106412a5f1 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 18 Feb 2014 09:37:49 -0500 -Subject: [PATCH 109/249] Don't emit "Booting ..." message. +Subject: [PATCH 109/250] Don't emit "Booting ..." message. UI team still hates this stuff, so we're disabling it for RHEL 7. diff --git a/0110-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch b/0110-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch index bc2d5824..22ffb7e3 100644 --- a/0110-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch +++ b/0110-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch @@ -1,7 +1,7 @@ From dcf3b9c590f00e33f773de68ac4ebd55ca4f6e90 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 4 Mar 2014 11:00:23 -0500 -Subject: [PATCH 110/249] Replace a lot of man pages with slightly nicer ones. +Subject: [PATCH 110/250] Replace a lot of man pages with slightly nicer ones. Replace a bunch of machine generated ones with ones that look nicer. --- diff --git a/0111-use-fw_path-prefix-when-fallback-searching-for-grub-.patch b/0111-use-fw_path-prefix-when-fallback-searching-for-grub-.patch index 2c922263..20d3f282 100644 --- a/0111-use-fw_path-prefix-when-fallback-searching-for-grub-.patch +++ b/0111-use-fw_path-prefix-when-fallback-searching-for-grub-.patch @@ -1,7 +1,7 @@ From 24865a88781aef2a6a54433b5b383219108f54fa Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Wed, 19 Feb 2014 15:58:43 -0500 -Subject: [PATCH 111/249] use fw_path prefix when fallback searching for grub +Subject: [PATCH 111/250] use fw_path prefix when fallback searching for grub config When PXE booting via UEFI firmware, grub was searching for grub.cfg diff --git a/0112-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch b/0112-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch index 65f6101f..7fa8a6e3 100644 --- a/0112-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch +++ b/0112-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch @@ -1,7 +1,7 @@ From d4cd9aa8695ab9448da41f756553beb75bffee46 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 6 Mar 2014 11:51:33 -0500 -Subject: [PATCH 112/249] Try mac/guid/etc before grub.cfg on tftp config +Subject: [PATCH 112/250] Try mac/guid/etc before grub.cfg on tftp config files. Signed-off-by: Peter Jones diff --git a/0113-Fix-convert-function-to-support-NVMe-devices.patch b/0113-Fix-convert-function-to-support-NVMe-devices.patch index 27722898..099efa57 100644 --- a/0113-Fix-convert-function-to-support-NVMe-devices.patch +++ b/0113-Fix-convert-function-to-support-NVMe-devices.patch @@ -1,7 +1,7 @@ From 397f179c26aeddf3fe452c62aa404459889835fc Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 18 Feb 2014 11:34:00 -0500 -Subject: [PATCH 113/249] Fix convert function to support NVMe devices +Subject: [PATCH 113/250] Fix convert function to support NVMe devices This is adapted from the patch at https://bugzilla.redhat.com/show_bug.cgi?id=1019660 , which is against diff --git a/0114-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch b/0114-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch index 85642b40..cc1a418e 100644 --- a/0114-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch +++ b/0114-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch @@ -1,7 +1,7 @@ From 4291f418c3304f0f379467e87ce5892853cc16c7 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Mon, 10 Feb 2014 16:13:10 -0500 -Subject: [PATCH 114/249] Switch to use APM Mustang device tree, for hardware +Subject: [PATCH 114/250] Switch to use APM Mustang device tree, for hardware testing. Signed-off-by: David A. Marlin diff --git a/0115-Use-the-default-device-tree-from-the-grub-default-fi.patch b/0115-Use-the-default-device-tree-from-the-grub-default-fi.patch index f728625e..9dc13751 100644 --- a/0115-Use-the-default-device-tree-from-the-grub-default-fi.patch +++ b/0115-Use-the-default-device-tree-from-the-grub-default-fi.patch @@ -1,7 +1,7 @@ From 5111bdda0d0a21ab02f6c9aa441a32cd02c6bc3f Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Wed, 12 Feb 2014 14:54:04 -0500 -Subject: [PATCH 115/249] Use the default device tree from the grub default +Subject: [PATCH 115/250] Use the default device tree from the grub default file instead of hardcoding a value. diff --git a/0116-reopen-SNP-protocol-for-exclusive-use-by-grub.patch b/0116-reopen-SNP-protocol-for-exclusive-use-by-grub.patch index 61ff18b7..c01760f7 100644 --- a/0116-reopen-SNP-protocol-for-exclusive-use-by-grub.patch +++ b/0116-reopen-SNP-protocol-for-exclusive-use-by-grub.patch @@ -1,7 +1,7 @@ From 0ff5bf3deefdb17dbadb51a11acc50b96e2ed797 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Sat, 15 Feb 2014 15:10:22 -0500 -Subject: [PATCH 116/249] reopen SNP protocol for exclusive use by grub +Subject: [PATCH 116/250] reopen SNP protocol for exclusive use by grub --- grub-core/net/drivers/efi/efinet.c | 16 ++++++++++++++++ diff --git a/0117-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch b/0117-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch index 4bb49f80..b8b3e502 100644 --- a/0117-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch +++ b/0117-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch @@ -1,7 +1,7 @@ From 58fba65b7e339d4c7279e4ca88937d9501275169 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 4 Mar 2016 15:13:59 -0500 -Subject: [PATCH 117/249] Revert "reopen SNP protocol for exclusive use by +Subject: [PATCH 117/250] Revert "reopen SNP protocol for exclusive use by grub" This reverts commit a3f2c756ce34c9666bddef35e3b3b85ccecdcffc , which is diff --git a/0118-Add-grub_util_readlink.patch b/0118-Add-grub_util_readlink.patch index 7ff661ca..b306103f 100644 --- a/0118-Add-grub_util_readlink.patch +++ b/0118-Add-grub_util_readlink.patch @@ -1,7 +1,7 @@ From 76baa996f73eea47f7bdc41461efeee204626e2d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 3 Sep 2014 10:01:03 -0400 -Subject: [PATCH 118/249] Add grub_util_readlink() +Subject: [PATCH 118/250] Add grub_util_readlink() Add grub_util_readlink(). This requires pulling in stat and readlink from gnulib, which pulls in stat and related headers, but after that the diff --git a/0119-Make-editenv-chase-symlinks-including-those-across-d.patch b/0119-Make-editenv-chase-symlinks-including-those-across-d.patch index 9e9b0b20..f7d72bb3 100644 --- a/0119-Make-editenv-chase-symlinks-including-those-across-d.patch +++ b/0119-Make-editenv-chase-symlinks-including-those-across-d.patch @@ -1,7 +1,7 @@ From fd1a89c8bef603ec33937f122ae25013a724601a Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 3 Sep 2014 10:38:00 -0400 -Subject: [PATCH 119/249] Make editenv chase symlinks including those across +Subject: [PATCH 119/250] Make editenv chase symlinks including those across devices. This lets us make /boot/grub2/grubenv a symlink to diff --git a/0120-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch b/0120-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch index a3c9951c..11747208 100644 --- a/0120-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch +++ b/0120-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch @@ -1,7 +1,7 @@ From c8d93b9e27e9cbf51e91f6cc99abbcb7b68189ce Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Sep 2014 14:23:23 -0400 -Subject: [PATCH 120/249] Generate OS and CLASS in 10_linux from +Subject: [PATCH 120/250] Generate OS and CLASS in 10_linux from /etc/os-release This makes us use pretty names in the titles we generate in diff --git a/0121-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch b/0121-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch index f4b42cf7..b4447173 100644 --- a/0121-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch +++ b/0121-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch @@ -1,7 +1,7 @@ From 974241c42b03f3ccb6a5d0eb453283e370da9848 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Sep 2014 15:52:08 -0400 -Subject: [PATCH 121/249] Minimize the sort ordering for .debug and -rescue- +Subject: [PATCH 121/250] Minimize the sort ordering for .debug and -rescue- kernels. Resolves: rhbz#1065360 diff --git a/0122-Load-arm-with-SB-enabled.patch b/0122-Load-arm-with-SB-enabled.patch index 2e9c9adf..f9e093b1 100644 --- a/0122-Load-arm-with-SB-enabled.patch +++ b/0122-Load-arm-with-SB-enabled.patch @@ -1,7 +1,7 @@ From edfc2b0952b1eacf95188e53167cc038e5ea0129 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 18 Sep 2014 11:26:14 -0400 -Subject: [PATCH 122/249] Load arm with SB enabled. +Subject: [PATCH 122/250] Load arm with SB enabled. Make sure we actually try to validate secure boot on this platform (even though we're not shipping it enabled by default.) diff --git a/0123-Try-prefix-if-fw_path-doesn-t-work.patch b/0123-Try-prefix-if-fw_path-doesn-t-work.patch index dee047da..b2dc4027 100644 --- a/0123-Try-prefix-if-fw_path-doesn-t-work.patch +++ b/0123-Try-prefix-if-fw_path-doesn-t-work.patch @@ -1,7 +1,7 @@ From 3846b040f1050f246e1e975ee88f22c687ae04bf Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 3 Oct 2014 11:08:03 -0400 -Subject: [PATCH 123/249] Try $prefix if $fw_path doesn't work. +Subject: [PATCH 123/250] Try $prefix if $fw_path doesn't work. Related: rhbz#1148652 diff --git a/0124-Update-info-with-grub.cfg-netboot-selection-order-11.patch b/0124-Update-info-with-grub.cfg-netboot-selection-order-11.patch index 29eb2cd7..47843a59 100644 --- a/0124-Update-info-with-grub.cfg-netboot-selection-order-11.patch +++ b/0124-Update-info-with-grub.cfg-netboot-selection-order-11.patch @@ -1,7 +1,7 @@ From d4b4184078610a3639fa1e0e463679c424496c3b Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Mon, 16 Mar 2015 16:34:51 -0400 -Subject: [PATCH 124/249] Update info with grub.cfg netboot selection order +Subject: [PATCH 124/250] Update info with grub.cfg netboot selection order (#1148650) Added documentation to the grub info page that specifies the order diff --git a/0125-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch b/0125-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch index cef2c243..d0a4c5cd 100644 --- a/0125-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch +++ b/0125-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch @@ -1,7 +1,7 @@ From ce125cafc1e94bf70f2a3dbb545960bd8dd23a2f Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Mon, 16 Mar 2015 14:14:19 -0400 -Subject: [PATCH 125/249] Use Distribution Package Sort for grub2-mkconfig +Subject: [PATCH 125/250] Use Distribution Package Sort for grub2-mkconfig (#1124074) Users reported that newly installed kernels on their systems installed diff --git a/0126-Handle-rssd-storage-devices.patch b/0126-Handle-rssd-storage-devices.patch index 7a952f3b..2a1133b1 100644 --- a/0126-Handle-rssd-storage-devices.patch +++ b/0126-Handle-rssd-storage-devices.patch @@ -1,7 +1,7 @@ From 1956a2192ac0a8421ee83bf77fdf223f2be0bdfb Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 30 Jun 2015 15:50:41 -0400 -Subject: [PATCH 126/249] Handle rssd storage devices. +Subject: [PATCH 126/250] Handle rssd storage devices. Resolves: rhbz#1087962 diff --git a/0127-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch b/0127-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch index f7901b1e..d2aeabd7 100644 --- a/0127-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch +++ b/0127-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch @@ -1,7 +1,7 @@ From 5f89c77c7cff17c931f1ea52af0c39df8ab28ac9 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 27 Oct 2014 09:22:55 -0400 -Subject: [PATCH 127/249] Try to emit linux16/initrd16 and linuxefi/initrdefi +Subject: [PATCH 127/250] Try to emit linux16/initrd16 and linuxefi/initrdefi in 30-os_prober. Resolves: rhbz#1108296 diff --git a/0128-Make-grub2-mkconfig-construct-titles-that-look-like-.patch b/0128-Make-grub2-mkconfig-construct-titles-that-look-like-.patch index 4bb78322..b2562c5c 100644 --- a/0128-Make-grub2-mkconfig-construct-titles-that-look-like-.patch +++ b/0128-Make-grub2-mkconfig-construct-titles-that-look-like-.patch @@ -1,7 +1,7 @@ From c7ae420d095ccec20481c25b14773ab2fce658b5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 28 Apr 2015 11:15:03 -0400 -Subject: [PATCH 128/249] Make grub2-mkconfig construct titles that look like +Subject: [PATCH 128/250] Make grub2-mkconfig construct titles that look like the ones we want elsewhere. Resolves: rhbz#1215839 diff --git a/0129-Add-friendly-grub2-password-config-tool-985962.patch b/0129-Add-friendly-grub2-password-config-tool-985962.patch index 9dfeb17b..4694f83b 100644 --- a/0129-Add-friendly-grub2-password-config-tool-985962.patch +++ b/0129-Add-friendly-grub2-password-config-tool-985962.patch @@ -1,7 +1,7 @@ From 68f21f5ebebc23a6d8512631f2a1d474afcccd43 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Thu, 25 Jun 2015 11:13:11 -0400 -Subject: [PATCH 129/249] Add friendly grub2 password config tool (#985962) +Subject: [PATCH 129/250] Add friendly grub2 password config tool (#985962) Provided a tool for users to reset the grub2 root user password without having to alter the grub.cfg. The hashed password now diff --git a/0130-Make-grub2-mkconfig-construct-titles-that-look-like-.patch b/0130-Make-grub2-mkconfig-construct-titles-that-look-like-.patch index 72d75b15..22dcc99f 100644 --- a/0130-Make-grub2-mkconfig-construct-titles-that-look-like-.patch +++ b/0130-Make-grub2-mkconfig-construct-titles-that-look-like-.patch @@ -1,7 +1,7 @@ From 7a7644507e4d953ea8f8d1d7133622a72a2168f5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 28 Apr 2015 11:15:03 -0400 -Subject: [PATCH 130/249] Make grub2-mkconfig construct titles that look like +Subject: [PATCH 130/250] Make grub2-mkconfig construct titles that look like the ones we want elsewhere. Resolves: rhbz#1215839 diff --git a/0131-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch b/0131-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch index 7b74ea3f..e789d22f 100644 --- a/0131-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch +++ b/0131-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch @@ -1,7 +1,7 @@ From 6f892038567f1706fdde819f5f226ec4cacbea47 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 3 Aug 2015 11:46:42 -0400 -Subject: [PATCH 131/249] Try to make sure configure.ac and grub-rpm-sort play +Subject: [PATCH 131/250] Try to make sure configure.ac and grub-rpm-sort play nice. Apparently the test for whether to use grub-rpm-sort and also the diff --git a/0132-tcp-add-window-scaling-support.patch b/0132-tcp-add-window-scaling-support.patch index 85e60388..06f91492 100644 --- a/0132-tcp-add-window-scaling-support.patch +++ b/0132-tcp-add-window-scaling-support.patch @@ -1,7 +1,7 @@ From 71e31c279c07f9f51f2a482b70b40b7deed69a69 Mon Sep 17 00:00:00 2001 From: Josef Bacik Date: Wed, 12 Aug 2015 08:57:55 -0700 -Subject: [PATCH 132/249] tcp: add window scaling support +Subject: [PATCH 132/250] tcp: add window scaling support Sometimes we have to provision boxes across regions, such as California to Sweden. The http server has a 10 minute timeout, so if we can't get our 250mb diff --git a/0133-efinet-retransmit-if-our-device-is-busy.patch b/0133-efinet-retransmit-if-our-device-is-busy.patch index 97509b05..b74ba3ac 100644 --- a/0133-efinet-retransmit-if-our-device-is-busy.patch +++ b/0133-efinet-retransmit-if-our-device-is-busy.patch @@ -1,7 +1,7 @@ From d09f32622f6fc247dd88f731c34be10395785d8d Mon Sep 17 00:00:00 2001 From: Josef Bacik Date: Mon, 31 Aug 2015 13:34:35 -0400 -Subject: [PATCH 133/249] efinet: retransmit if our device is busy +Subject: [PATCH 133/250] efinet: retransmit if our device is busy When I fixed the txbuf handling I ripped out the retransmission code since it was flooding our network when we had the buggy behavior. Turns out this was too diff --git a/0134-Be-more-aggro-about-actually-using-the-configured-ne.patch b/0134-Be-more-aggro-about-actually-using-the-configured-ne.patch index c4204588..33ece57b 100644 --- a/0134-Be-more-aggro-about-actually-using-the-configured-ne.patch +++ b/0134-Be-more-aggro-about-actually-using-the-configured-ne.patch @@ -1,7 +1,7 @@ From 8ece44c2c8f88f531ac9a679f65a263e7b6d2dba Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 11 Sep 2015 17:30:49 -0400 -Subject: [PATCH 134/249] Be more aggro about actually using the *configured* +Subject: [PATCH 134/250] Be more aggro about actually using the *configured* network device. Right now we use any SNP device with the same mac+IP block, but when diff --git a/0135-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch b/0135-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch index e84278cd..34b9a340 100644 --- a/0135-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch +++ b/0135-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch @@ -1,7 +1,7 @@ From 82b9fdcbbc339c36842c625203fc2b1f22a86c9e Mon Sep 17 00:00:00 2001 From: RHEL Ninjas Date: Fri, 25 Sep 2015 16:24:23 +0900 -Subject: [PATCH 135/249] efinet: add filter for the first exclusive reopen of +Subject: [PATCH 135/250] efinet: add filter for the first exclusive reopen of SNP --- diff --git a/0136-Fix-security-issue-when-reading-username-and-passwor.patch b/0136-Fix-security-issue-when-reading-username-and-passwor.patch index 4eab3255..2564f4be 100644 --- a/0136-Fix-security-issue-when-reading-username-and-passwor.patch +++ b/0136-Fix-security-issue-when-reading-username-and-passwor.patch @@ -1,7 +1,7 @@ From 9961e63642244617b697d93bbc49379e23b6839d Mon Sep 17 00:00:00 2001 From: Hector Marco-Gisbert Date: Fri, 13 Nov 2015 16:21:09 +0100 -Subject: [PATCH 136/249] Fix security issue when reading username and password +Subject: [PATCH 136/250] Fix security issue when reading username and password This patch fixes two integer underflows at: * grub-core/lib/crypto.c diff --git a/0137-Warn-if-grub-password-will-not-be-read-1290803.patch b/0137-Warn-if-grub-password-will-not-be-read-1290803.patch index 0daff24c..9e0ea2eb 100644 --- a/0137-Warn-if-grub-password-will-not-be-read-1290803.patch +++ b/0137-Warn-if-grub-password-will-not-be-read-1290803.patch @@ -1,7 +1,7 @@ From 056a956aea898f9d3ee34ecad9660addc3f3108c Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Mon, 22 Feb 2016 15:30:05 -0500 -Subject: [PATCH 137/249] Warn if grub password will not be read (#1290803) +Subject: [PATCH 137/250] Warn if grub password will not be read (#1290803) It is possible for a system to have never run grub-mkconfig and add the section that reads the user.cfg file which contains a user set GRUB diff --git a/0138-Clean-up-grub-setpassword-documentation-1290799.patch b/0138-Clean-up-grub-setpassword-documentation-1290799.patch index d1a7957d..b70f51b5 100644 --- a/0138-Clean-up-grub-setpassword-documentation-1290799.patch +++ b/0138-Clean-up-grub-setpassword-documentation-1290799.patch @@ -1,7 +1,7 @@ From 92af2b24adb7371d8234c0b32ae716adf0b80d42 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Tue, 26 Jan 2016 10:28:35 -0500 -Subject: [PATCH 138/249] Clean up grub-setpassword documentation (#1290799) +Subject: [PATCH 138/250] Clean up grub-setpassword documentation (#1290799) The output for --help had some errors. Corrected those and polished the text to be a little easier to follow. Carried verbage over to man page diff --git a/0139-Fix-locale-issue-in-grub-setpassword-1294243.patch b/0139-Fix-locale-issue-in-grub-setpassword-1294243.patch index 26f7a5b0..1e05eda1 100644 --- a/0139-Fix-locale-issue-in-grub-setpassword-1294243.patch +++ b/0139-Fix-locale-issue-in-grub-setpassword-1294243.patch @@ -1,7 +1,7 @@ From 373adc50cf9f09015e40ffd1bf79ab9f291f4fc2 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Fri, 29 Jan 2016 16:56:11 -0500 -Subject: [PATCH 139/249] Fix locale issue in grub-setpassword (#1294243) +Subject: [PATCH 139/250] Fix locale issue in grub-setpassword (#1294243) A shell substitution was expecting non-translated output to grab the hashed password and put it in the user.cfg file. Modified code to force diff --git a/0140-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch b/0140-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch index c1b0cd86..01697fe9 100644 --- a/0140-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch +++ b/0140-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch @@ -1,7 +1,7 @@ From eab0520310030376f6295e0338e874bce10b0d5f Mon Sep 17 00:00:00 2001 From: Robert Elliott Date: Fri, 22 Jan 2016 13:32:30 +0100 -Subject: [PATCH 140/249] efiemu: Handle persistent RAM and unknown possible +Subject: [PATCH 140/250] efiemu: Handle persistent RAM and unknown possible future additions. (cherry picked from commit ae3b83a4d4df75a01198a2fed7542391e7c449e0) diff --git a/0141-efiemu-Fix-compilation-failure.patch b/0141-efiemu-Fix-compilation-failure.patch index bfc3b2e0..7b66bb05 100644 --- a/0141-efiemu-Fix-compilation-failure.patch +++ b/0141-efiemu-Fix-compilation-failure.patch @@ -1,7 +1,7 @@ From 68bdf29eb6e376a3b4a817bbe7481efd12b8f9de Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Fri, 22 Jan 2016 14:10:30 +0100 -Subject: [PATCH 141/249] efiemu: Fix compilation failure +Subject: [PATCH 141/250] efiemu: Fix compilation failure (cherry picked from commit b6a03dfd327489d53ee07c6d7d593b99c7b7cb62) diff --git a/0142-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch b/0142-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch index 2c40e58c..b842f18d 100644 --- a/0142-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch +++ b/0142-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch @@ -1,7 +1,7 @@ From df19c5ff9c9e716df0383e39992466304053c99d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 7 Apr 2016 10:58:06 -0400 -Subject: [PATCH 142/249] Revert "reopen SNP protocol for exclusive use by +Subject: [PATCH 142/250] Revert "reopen SNP protocol for exclusive use by grub" I *think* this should have been replaced by upstream's diff --git a/0143-Add-a-url-parser.patch b/0143-Add-a-url-parser.patch index e6888907..d951b9d5 100644 --- a/0143-Add-a-url-parser.patch +++ b/0143-Add-a-url-parser.patch @@ -1,7 +1,7 @@ From 2f84b2e097ad9f6f7f06013f749251743eb32c2e Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jun 2016 16:18:44 -0400 -Subject: [PATCH 143/249] Add a url parser. +Subject: [PATCH 143/250] Add a url parser. This patch adds a url parser that can parse http, https, tftp, and tftps urls, and is easily extensible to handle more types. diff --git a/0144-efinet-and-bootp-add-support-for-dhcpv6.patch b/0144-efinet-and-bootp-add-support-for-dhcpv6.patch index 4cbed502..e8ea0f2a 100644 --- a/0144-efinet-and-bootp-add-support-for-dhcpv6.patch +++ b/0144-efinet-and-bootp-add-support-for-dhcpv6.patch @@ -1,7 +1,7 @@ From 48768b0295ad4d908cefd8e8fbee96a4dc2765f5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 8 Jun 2016 21:03:37 -0400 -Subject: [PATCH 144/249] efinet and bootp: add support for dhcpv6 +Subject: [PATCH 144/250] efinet and bootp: add support for dhcpv6 Signed-off-by: Peter Jones --- diff --git a/0145-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch b/0145-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch index 4489a2f0..7d93b3af 100644 --- a/0145-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch +++ b/0145-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch @@ -1,7 +1,7 @@ From 764506b89942103c3a511d7933edef351fb594b8 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 23 Jun 2016 11:01:39 -0400 -Subject: [PATCH 145/249] Add grub-get-kernel-settings and use it in 10_linux +Subject: [PATCH 145/250] Add grub-get-kernel-settings and use it in 10_linux This patch adds grub-get-kernel-settings, which reads the system kernel installation configuration from /etc/sysconfig/kernel, and outputs diff --git a/0146-Normalize-slashes-in-tftp-paths.patch b/0146-Normalize-slashes-in-tftp-paths.patch index d160d7fc..74dfbee7 100644 --- a/0146-Normalize-slashes-in-tftp-paths.patch +++ b/0146-Normalize-slashes-in-tftp-paths.patch @@ -1,7 +1,7 @@ From 406402dfaecc62ede346793c9c7a0568dc71c131 Mon Sep 17 00:00:00 2001 From: Lenny Szubowicz Date: Mon, 29 Aug 2016 11:04:48 -0400 -Subject: [PATCH 146/249] Normalize slashes in tftp paths. +Subject: [PATCH 146/250] Normalize slashes in tftp paths. Some tftp servers do not handle multiple consecutive slashes correctly; this patch avoids sending tftp requests with non-normalized paths. diff --git a/0147-Fix-malformed-tftp-packets.patch b/0147-Fix-malformed-tftp-packets.patch index 1896b0e6..8523e2fa 100644 --- a/0147-Fix-malformed-tftp-packets.patch +++ b/0147-Fix-malformed-tftp-packets.patch @@ -1,7 +1,7 @@ From 7d05a8298e6a54bfae0038841462443f21da3535 Mon Sep 17 00:00:00 2001 From: Mark Salter Date: Tue, 7 Mar 2017 18:26:17 -0500 -Subject: [PATCH 147/249] Fix malformed tftp packets +Subject: [PATCH 147/250] Fix malformed tftp packets 0088-Normalize-slashes-in-tftp-paths.patch collapses multiple contiguous slashes in a filename into one slash in the tftp packet filename field. diff --git a/0148-Fix-race-in-EFI-validation.patch b/0148-Fix-race-in-EFI-validation.patch index b365ac7f..4e0c266c 100644 --- a/0148-Fix-race-in-EFI-validation.patch +++ b/0148-Fix-race-in-EFI-validation.patch @@ -1,7 +1,7 @@ From bf59d76ca82eb4eaa20a747f5890d09632ba93d0 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 14 Jul 2015 16:58:51 -0700 -Subject: [PATCH 148/249] Fix race in EFI validation +Subject: [PATCH 148/250] Fix race in EFI validation --- grub-core/loader/i386/efi/linux.c | 44 ++++++++++----------------------------- diff --git a/0149-bz1374141-fix-incorrect-mask-for-ppc64.patch b/0149-bz1374141-fix-incorrect-mask-for-ppc64.patch index 44771ce0..e78a3382 100644 --- a/0149-bz1374141-fix-incorrect-mask-for-ppc64.patch +++ b/0149-bz1374141-fix-incorrect-mask-for-ppc64.patch @@ -1,7 +1,7 @@ From 84a5f535949f590a8976c64c3d1fde08fe0f7464 Mon Sep 17 00:00:00 2001 From: Masahiro Matsuya Date: Sat, 29 Oct 2016 08:35:26 +0900 -Subject: [PATCH 149/249] bz1374141 fix incorrect mask for ppc64 +Subject: [PATCH 149/250] bz1374141 fix incorrect mask for ppc64 The netmask configured in firmware is not respected on ppc64 (big endian). When 255.255.252.0 is set as netmask in firmware, the following is the value of bootpath string in grub_ieee1275_parse_bootpath(). diff --git a/0150-Use-device-part-of-chainloader-target-if-present.patch b/0150-Use-device-part-of-chainloader-target-if-present.patch index 334f0def..3c2f2be8 100644 --- a/0150-Use-device-part-of-chainloader-target-if-present.patch +++ b/0150-Use-device-part-of-chainloader-target-if-present.patch @@ -1,7 +1,7 @@ From d426e20f8b41ebf114075dc4ffbcaf438ceb4b95 Mon Sep 17 00:00:00 2001 From: Raymund Will Date: Fri, 10 Apr 2015 01:45:02 -0400 -Subject: [PATCH 150/249] Use device part of chainloader target, if present. +Subject: [PATCH 150/250] Use device part of chainloader target, if present. Otherwise chainloading is restricted to '$root', which might not even be readable by EFI! diff --git a/0151-Add-secureboot-support-on-efi-chainloader.patch b/0151-Add-secureboot-support-on-efi-chainloader.patch index 942273a3..31e7091d 100644 --- a/0151-Add-secureboot-support-on-efi-chainloader.patch +++ b/0151-Add-secureboot-support-on-efi-chainloader.patch @@ -1,7 +1,7 @@ From bbf98517303e438cea398bb74306b6553c880ac3 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 6 Oct 2015 13:04:37 -0400 -Subject: [PATCH 151/249] Add secureboot support on efi chainloader +Subject: [PATCH 151/250] Add secureboot support on efi chainloader Expand the chainloader to be able to verify the image by means of shim lock protocol. The PE/COFF image is loaded and relocated by the diff --git a/0152-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch b/0152-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch index dba638ab..3f5d229e 100644 --- a/0152-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch +++ b/0152-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch @@ -1,7 +1,7 @@ From 25ea5be888dcc92cd0b3cb7d34b381f5005f1e30 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 6 Oct 2015 16:09:25 -0400 -Subject: [PATCH 152/249] Make any of the loaders that link in efi mode honor +Subject: [PATCH 152/250] Make any of the loaders that link in efi mode honor secure boot. And in this case "honor" means "even if somebody does link this in, they diff --git a/0153-Make-grub_fatal-also-backtrace.patch b/0153-Make-grub_fatal-also-backtrace.patch index 098c1ac0..d1f05c54 100644 --- a/0153-Make-grub_fatal-also-backtrace.patch +++ b/0153-Make-grub_fatal-also-backtrace.patch @@ -1,7 +1,7 @@ From eb1a27144476324a22561383a0a2e61aa327d2f5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 27 Jan 2016 09:22:42 -0500 -Subject: [PATCH 153/249] Make grub_fatal() also backtrace. +Subject: [PATCH 153/250] Make grub_fatal() also backtrace. --- grub-core/Makefile.core.def | 3 ++ diff --git a/0154-Rework-linux-command.patch b/0154-Rework-linux-command.patch index a884cf37..b12f401e 100644 --- a/0154-Rework-linux-command.patch +++ b/0154-Rework-linux-command.patch @@ -1,7 +1,7 @@ From 12312bfe1727a2992042436cb0f8c8ba1c69ee2f Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 16:12:39 -0700 -Subject: [PATCH 154/249] Rework linux command +Subject: [PATCH 154/250] Rework linux command We want a single buffer that contains the entire kernel image in order to perform a TPM measurement. Allocate one and copy the entire kernel into it diff --git a/0155-Rework-linux16-command.patch b/0155-Rework-linux16-command.patch index 3aa63eb9..02f87f7c 100644 --- a/0155-Rework-linux16-command.patch +++ b/0155-Rework-linux16-command.patch @@ -1,7 +1,7 @@ From 24250bbb84f8817462426c46b255d875de627bf1 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 16:20:58 -0700 -Subject: [PATCH 155/249] Rework linux16 command +Subject: [PATCH 155/250] Rework linux16 command We want a single buffer that contains the entire kernel image in order to perform a TPM measurement. Allocate one and copy the entire kernel int it diff --git a/0156-Make-grub-editenv-build-again.patch b/0156-Make-grub-editenv-build-again.patch index 741b13d5..a33c9f11 100644 --- a/0156-Make-grub-editenv-build-again.patch +++ b/0156-Make-grub-editenv-build-again.patch @@ -1,7 +1,7 @@ From ebe69b2682b5b3029d8ea503f12134ee81c4b2ce Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 4 Mar 2016 16:29:13 -0500 -Subject: [PATCH 156/249] Make grub-editenv build again. +Subject: [PATCH 156/250] Make grub-editenv build again. 36212460d3565b18439a3a8130b28e6c97702c6a split how some of the mkimage utility functions are defined, and they wind up being linked into diff --git a/0157-Fix-up-some-man-pages-rpmdiff-noticed.patch b/0157-Fix-up-some-man-pages-rpmdiff-noticed.patch index 737ca1e6..a7c4de66 100644 --- a/0157-Fix-up-some-man-pages-rpmdiff-noticed.patch +++ b/0157-Fix-up-some-man-pages-rpmdiff-noticed.patch @@ -1,7 +1,7 @@ From c71e6152ea8e4e525a853441bb5f08808bae3afd Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 23 Sep 2014 09:58:49 -0400 -Subject: [PATCH 157/249] Fix up some man pages rpmdiff noticed. +Subject: [PATCH 157/250] Fix up some man pages rpmdiff noticed. --- configure.ac | 2 ++ diff --git a/0158-Re-work-some-intricacies-of-PE-loading.patch b/0158-Re-work-some-intricacies-of-PE-loading.patch index d362bd67..7c4d6644 100644 --- a/0158-Re-work-some-intricacies-of-PE-loading.patch +++ b/0158-Re-work-some-intricacies-of-PE-loading.patch @@ -1,7 +1,7 @@ From 145214ee7c411c7d600016f011dc11b213bce0b2 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 9 Jun 2016 12:22:29 -0400 -Subject: [PATCH 158/249] Re-work some intricacies of PE loading. +Subject: [PATCH 158/250] Re-work some intricacies of PE loading. The PE spec is not a well written document, and awesomely every place where there's an ambiguous way to read something, Windows' bootmgfw.efi diff --git a/0159-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch b/0159-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch index 38b21635..fdcd3012 100644 --- a/0159-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch +++ b/0159-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch @@ -1,7 +1,7 @@ From ef24bc601e11b96eefe06f477b5da1199d761b3d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 10 Jun 2016 14:06:15 -0400 -Subject: [PATCH 159/249] Rework even more of efi chainload so non-sb cases +Subject: [PATCH 159/250] Rework even more of efi chainload so non-sb cases work right. This ensures that if shim protocol is not loaded, or is loaded but shim diff --git a/0160-linuxefi-fix-double-free-on-verification-failure.patch b/0160-linuxefi-fix-double-free-on-verification-failure.patch index 2e521be4..87198dd7 100644 --- a/0160-linuxefi-fix-double-free-on-verification-failure.patch +++ b/0160-linuxefi-fix-double-free-on-verification-failure.patch @@ -1,7 +1,7 @@ From 5ef3f00e6be3033092453a66f456b8dac8cd4f7c Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jun 2016 09:50:25 -0400 -Subject: [PATCH 160/249] linuxefi: fix double free on verification failure. +Subject: [PATCH 160/250] linuxefi: fix double free on verification failure. Signed-off-by: Peter Jones --- diff --git a/0161-fix-machine-type-test-in-30_os-prober.in.patch b/0161-fix-machine-type-test-in-30_os-prober.in.patch index c8f07a58..541ac242 100644 --- a/0161-fix-machine-type-test-in-30_os-prober.in.patch +++ b/0161-fix-machine-type-test-in-30_os-prober.in.patch @@ -1,7 +1,7 @@ From 4139fdfdb64fd248a0d5f200b27c583159dbb190 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 11 Jul 2016 13:36:45 -0400 -Subject: [PATCH 161/249] fix machine type test in 30_os-prober.in +Subject: [PATCH 161/250] fix machine type test in 30_os-prober.in Signed-off-by: Peter Jones --- diff --git a/0162-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch b/0162-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch index 8ef18ddd..c9b852d6 100644 --- a/0162-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch +++ b/0162-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch @@ -1,7 +1,7 @@ From 671699a76fa6510a62c3a94acd698a31686cb8fa Mon Sep 17 00:00:00 2001 From: Laszlo Ersek Date: Mon, 21 Nov 2016 15:34:00 +0100 -Subject: [PATCH 162/249] efi/chainloader: fix wrong sanity check in +Subject: [PATCH 162/250] efi/chainloader: fix wrong sanity check in relocate_coff() In relocate_coff(), the relocation entries are parsed from the original diff --git a/0163-efi-chainloader-truncate-overlong-relocation-section.patch b/0163-efi-chainloader-truncate-overlong-relocation-section.patch index c47de573..62bf1fc6 100644 --- a/0163-efi-chainloader-truncate-overlong-relocation-section.patch +++ b/0163-efi-chainloader-truncate-overlong-relocation-section.patch @@ -1,7 +1,7 @@ From d081bd5f47235e3bfd256fd262a6f98fe8b0d0ff Mon Sep 17 00:00:00 2001 From: Laszlo Ersek Date: Wed, 23 Nov 2016 06:27:09 +0100 -Subject: [PATCH 163/249] efi/chainloader: truncate overlong relocation section +Subject: [PATCH 163/250] efi/chainloader: truncate overlong relocation section The UEFI Windows 7 boot loader ("EFI/Microsoft/Boot/bootmgfw.efi", SHA1 31b410e029bba87d2068c65a80b88882f9f8ea25) has inconsistent headers. diff --git a/0164-linuxefi-minor-cleanups.patch b/0164-linuxefi-minor-cleanups.patch index f626b225..fb6e91b6 100644 --- a/0164-linuxefi-minor-cleanups.patch +++ b/0164-linuxefi-minor-cleanups.patch @@ -1,7 +1,7 @@ From 8dc21ff37f62f3d10fb3d708ffd33b7d723a23cf Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Feb 2017 16:31:52 -0500 -Subject: [PATCH 164/249] linuxefi: minor cleanups +Subject: [PATCH 164/250] linuxefi: minor cleanups Signed-off-by: Peter Jones --- diff --git a/0165-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch b/0165-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch index 372c6961..2237bb68 100644 --- a/0165-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch +++ b/0165-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch @@ -1,7 +1,7 @@ From 10d6d333de0aa7e390a22ebc4b308f7ad937d5bc Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Feb 2017 16:18:54 -0500 -Subject: [PATCH 165/249] Handle multi-arch (64-on-32) boot in linuxefi loader. +Subject: [PATCH 165/250] Handle multi-arch (64-on-32) boot in linuxefi loader. Allow booting 64-bit kernels on 32-bit EFI on x86. diff --git a/0166-Fix-up-linux-params-usage.patch b/0166-Fix-up-linux-params-usage.patch index 67dbd88a..028c3122 100644 --- a/0166-Fix-up-linux-params-usage.patch +++ b/0166-Fix-up-linux-params-usage.patch @@ -1,7 +1,7 @@ From 93be95c27b0ddb63c2e3a287a3ed92c0a5de93e5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 30 May 2017 14:16:07 -0400 -Subject: [PATCH 166/249] Fix up linux params usage... +Subject: [PATCH 166/250] Fix up linux params usage... Signed-off-by: Peter Jones --- diff --git a/0167-Make-exit-take-a-return-code.patch b/0167-Make-exit-take-a-return-code.patch index c7cf13f5..3e1fa61c 100644 --- a/0167-Make-exit-take-a-return-code.patch +++ b/0167-Make-exit-take-a-return-code.patch @@ -1,7 +1,7 @@ From 6b67d46c1764c86611939dc01267f9c70f413184 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 26 Feb 2014 21:49:12 -0500 -Subject: [PATCH 167/249] Make "exit" take a return code. +Subject: [PATCH 167/250] Make "exit" take a return code. This adds "exit" with a return code. With this patch, any "exit" command /may/ include a return code, and on platforms that support diff --git a/0168-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch b/0168-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch index ed7bd9d7..c0144883 100644 --- a/0168-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch +++ b/0168-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch @@ -1,7 +1,7 @@ From e48a4c0b9e475b16366ff6c375de5186432eb1f7 Mon Sep 17 00:00:00 2001 From: Mark Salter Date: Mon, 17 Apr 2017 08:44:29 -0400 -Subject: [PATCH 168/249] arm64: make sure fdt has #address-cells and +Subject: [PATCH 168/250] arm64: make sure fdt has #address-cells and #size-cells properties Recent upstream changes to kexec-tools relies on #address-cells diff --git a/0169-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch b/0169-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch index bd2fe146..ab24e3e9 100644 --- a/0169-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch +++ b/0169-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch @@ -1,7 +1,7 @@ From 755fa5ccf0834abdb7e50a1cb06fad618f6c9af6 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 9 May 2016 14:15:17 -0400 -Subject: [PATCH 169/249] Add some grub_dprintf() in the secure boot verify +Subject: [PATCH 169/250] Add some grub_dprintf() in the secure boot verify code. Signed-off-by: Peter Jones diff --git a/0170-Make-our-info-pages-say-grub2-where-appropriate.patch b/0170-Make-our-info-pages-say-grub2-where-appropriate.patch index e6c02a4c..e3495844 100644 --- a/0170-Make-our-info-pages-say-grub2-where-appropriate.patch +++ b/0170-Make-our-info-pages-say-grub2-where-appropriate.patch @@ -1,7 +1,7 @@ From 15c340acd845056ba259b9fffd6c7d083874cb82 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 6 May 2016 18:43:08 -0400 -Subject: [PATCH 170/249] Make our info pages say "grub2" where appropriate. +Subject: [PATCH 170/250] Make our info pages say "grub2" where appropriate. This needs to be hooked up to --program-transform=, but I haven't had time. diff --git a/0171-print-more-debug-info-in-our-module-loader.patch b/0171-print-more-debug-info-in-our-module-loader.patch index 93b2905d..052fc28c 100644 --- a/0171-print-more-debug-info-in-our-module-loader.patch +++ b/0171-print-more-debug-info-in-our-module-loader.patch @@ -1,7 +1,7 @@ From 0d0a7ebbed42b97fca63cbcaf85a469b77c76fda Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 1 May 2017 11:19:40 -0400 -Subject: [PATCH 171/249] print more debug info in our module loader. +Subject: [PATCH 171/250] print more debug info in our module loader. Signed-off-by: Peter Jones --- diff --git a/0172-macos-just-build-chainloader-entries-don-t-try-any-x.patch b/0172-macos-just-build-chainloader-entries-don-t-try-any-x.patch index 920148b8..4c245d8a 100644 --- a/0172-macos-just-build-chainloader-entries-don-t-try-any-x.patch +++ b/0172-macos-just-build-chainloader-entries-don-t-try-any-x.patch @@ -1,7 +1,7 @@ From 4cb6b65d74966dfbe6e8463ee1e88d99ca7de5b1 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 24 May 2017 12:42:32 -0400 -Subject: [PATCH 172/249] macos: just build chainloader entries, don't try any +Subject: [PATCH 172/250] macos: just build chainloader entries, don't try any xnu xnu. Since our bugs tell us that the xnu boot entries really just don't work diff --git a/0173-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch b/0173-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch index bf326e61..c04fb4f2 100644 --- a/0173-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch +++ b/0173-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch @@ -1,7 +1,7 @@ From 396001716b7f8c7a6aee17f33fdb9e5d47424cbc Mon Sep 17 00:00:00 2001 From: Jeff Mahoney Date: Wed, 18 Dec 2013 09:57:04 +0000 -Subject: [PATCH 173/249] grub2/btrfs: Add ability to boot from subvolumes +Subject: [PATCH 173/250] grub2/btrfs: Add ability to boot from subvolumes This patch adds the ability to specify a different root on a btrfs filesystem too boot from other than the default one. diff --git a/0174-export-btrfs_subvol-and-btrfs_subvolid.patch b/0174-export-btrfs_subvol-and-btrfs_subvolid.patch index 1cceb348..5d598345 100644 --- a/0174-export-btrfs_subvol-and-btrfs_subvolid.patch +++ b/0174-export-btrfs_subvol-and-btrfs_subvolid.patch @@ -1,7 +1,7 @@ From 35c1015fc1a4313be34757eebb195547336e0edf Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Wed, 18 Dec 2013 09:57:04 +0000 -Subject: [PATCH 174/249] export btrfs_subvol and btrfs_subvolid +Subject: [PATCH 174/250] export btrfs_subvol and btrfs_subvolid We should export btrfs_subvol and btrfs_subvolid to have both visible to subsidiary configuration files loaded using configfile. diff --git a/0175-grub2-btrfs-03-follow_default.patch b/0175-grub2-btrfs-03-follow_default.patch index 4323f3a5..6242119b 100644 --- a/0175-grub2-btrfs-03-follow_default.patch +++ b/0175-grub2-btrfs-03-follow_default.patch @@ -1,7 +1,7 @@ From 476a0251e8ca2850da7c383baf7fdbd810bc789f Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 21 Aug 2014 03:39:11 +0000 -Subject: [PATCH 175/249] grub2-btrfs-03-follow_default +Subject: [PATCH 175/250] grub2-btrfs-03-follow_default --- grub-core/fs/btrfs.c | 107 ++++++++++++++++++++++++++++++++++++--------------- diff --git a/0176-grub2-btrfs-04-grub2-install.patch b/0176-grub2-btrfs-04-grub2-install.patch index b39cf4fe..aca526b5 100644 --- a/0176-grub2-btrfs-04-grub2-install.patch +++ b/0176-grub2-btrfs-04-grub2-install.patch @@ -1,7 +1,7 @@ From e03dd83cc804d70af0716d0a429715afbcdc7eae Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 21 Aug 2014 03:39:11 +0000 -Subject: [PATCH 176/249] grub2-btrfs-04-grub2-install +Subject: [PATCH 176/250] grub2-btrfs-04-grub2-install --- grub-core/osdep/linux/getroot.c | 7 +++++++ diff --git a/0177-grub2-btrfs-05-grub2-mkconfig.patch b/0177-grub2-btrfs-05-grub2-mkconfig.patch index 4ce9b71e..6c58f2e4 100644 --- a/0177-grub2-btrfs-05-grub2-mkconfig.patch +++ b/0177-grub2-btrfs-05-grub2-mkconfig.patch @@ -1,7 +1,7 @@ From cb43e7a6c96127e72d6787c6063de8911284fe18 Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 21 Aug 2014 03:39:11 +0000 -Subject: [PATCH 177/249] grub2-btrfs-05-grub2-mkconfig +Subject: [PATCH 177/250] grub2-btrfs-05-grub2-mkconfig --- util/grub-mkconfig.in | 3 ++- diff --git a/0178-grub2-btrfs-06-subvol-mount.patch b/0178-grub2-btrfs-06-subvol-mount.patch index 434eceda..12124c83 100644 --- a/0178-grub2-btrfs-06-subvol-mount.patch +++ b/0178-grub2-btrfs-06-subvol-mount.patch @@ -1,7 +1,7 @@ From 84d6a482c2c8d0677141bb888512a6a89daf9d8b Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Fri, 22 May 2015 11:45:25 +0000 -Subject: [PATCH 178/249] grub2-btrfs-06-subvol-mount +Subject: [PATCH 178/250] grub2-btrfs-06-subvol-mount --- grub-core/fs/btrfs.c | 195 +++++++++++++++++++++++++++++++++++++++- diff --git a/0179-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch b/0179-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch index 1ca0cf75..8a9ebab7 100644 --- a/0179-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch +++ b/0179-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch @@ -1,7 +1,7 @@ From 741c0651cd54970c08e9c19a82f5805aafbfda23 Mon Sep 17 00:00:00 2001 From: Dusty Mabe Date: Sat, 18 Jul 2015 15:38:08 +0000 -Subject: [PATCH 179/249] No more "Bootable Snapshot" submenu in grub.cfg. +Subject: [PATCH 179/250] No more "Bootable Snapshot" submenu in grub.cfg. This breaks grubby (run on kernel upgrades) because grubby just does a search for "menuentry". diff --git a/0180-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch b/0180-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch index 408ea3de..57dba74e 100644 --- a/0180-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch +++ b/0180-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch @@ -1,7 +1,7 @@ From ab8e0d4bf544b708f5afa4cc56e6bd16789f2f1e Mon Sep 17 00:00:00 2001 From: Andrei Borzenkov Date: Tue, 21 Jun 2016 16:44:17 +0000 -Subject: [PATCH 180/249] Fallback to old subvol name scheme to support old +Subject: [PATCH 180/250] Fallback to old subvol name scheme to support old snapshot config Ref: bsc#953538 diff --git a/0181-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch b/0181-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch index 3b63b466..2f0b7582 100644 --- a/0181-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch +++ b/0181-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch @@ -1,7 +1,7 @@ From eb8535428a42c7099666ddb58ac900bb8ee745ba Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 11 May 2017 08:56:57 +0000 -Subject: [PATCH 181/249] Grub not working correctly with btrfs snapshots +Subject: [PATCH 181/250] Grub not working correctly with btrfs snapshots (bsc#1026511) --- diff --git a/0182-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch b/0182-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch index 4a030a93..781f2ee6 100644 --- a/0182-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch +++ b/0182-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch @@ -1,7 +1,7 @@ From 2a6e1d2491b7334985ad25315faa22d26354d8b7 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 1 Jun 2017 09:59:56 -0400 -Subject: [PATCH 182/249] Add grub_efi_allocate_pool() and grub_efi_free_pool() +Subject: [PATCH 182/250] Add grub_efi_allocate_pool() and grub_efi_free_pool() wrappers. Signed-off-by: Peter Jones diff --git a/0183-Use-grub_efi_.-memory-helpers-where-reasonable.patch b/0183-Use-grub_efi_.-memory-helpers-where-reasonable.patch index 5080bb5c..4c0d1a9b 100644 --- a/0183-Use-grub_efi_.-memory-helpers-where-reasonable.patch +++ b/0183-Use-grub_efi_.-memory-helpers-where-reasonable.patch @@ -1,7 +1,7 @@ From 6ea13cdb3f33da45d7a8042d85ad87e2a18fc946 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 1 Jun 2017 10:06:38 -0400 -Subject: [PATCH 183/249] Use grub_efi_...() memory helpers where reasonable. +Subject: [PATCH 183/250] Use grub_efi_...() memory helpers where reasonable. This uses grub_efi_allocate_pool(), grub_efi_free_pool(), and grub_efi_free_pages() instead of open-coded efi_call_N() calls, so we diff --git a/0184-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch b/0184-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch index 768dbd67..f83b692b 100644 --- a/0184-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch +++ b/0184-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch @@ -1,7 +1,7 @@ From eae94a16a8ae350cdeab8b7742f9227d92001272 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 1 Jun 2017 10:07:50 -0400 -Subject: [PATCH 184/249] Add PRIxGRUB_EFI_STATUS and use it. +Subject: [PATCH 184/250] Add PRIxGRUB_EFI_STATUS and use it. This avoids syntax checkers getting confused about if it's llx or lx. diff --git a/0185-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch b/0185-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch index 8cea3dd4..2940f995 100644 --- a/0185-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch +++ b/0185-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch @@ -1,7 +1,7 @@ From 41a50aa2c275076caa2f9fe7a747eeb054abed16 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:42:57 -0400 -Subject: [PATCH 185/249] Don't use dynamic sized arrays since we don't build +Subject: [PATCH 185/250] Don't use dynamic sized arrays since we don't build with -std=c99 --- diff --git a/0186-don-t-ignore-const.patch b/0186-don-t-ignore-const.patch index dd693df7..7c5f1d58 100644 --- a/0186-don-t-ignore-const.patch +++ b/0186-don-t-ignore-const.patch @@ -1,7 +1,7 @@ From d06e2578107f217d2bc8beee7fd0dc7f2645873d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:43:22 -0400 -Subject: [PATCH 186/249] don't ignore const +Subject: [PATCH 186/250] don't ignore const --- grub-core/net/tftp.c | 2 +- diff --git a/0187-don-t-use-int-for-efi-status.patch b/0187-don-t-use-int-for-efi-status.patch index d4b29e27..1d52dcc3 100644 --- a/0187-don-t-use-int-for-efi-status.patch +++ b/0187-don-t-use-int-for-efi-status.patch @@ -1,7 +1,7 @@ From 6d86c59c24e12c8e8471cdd2affca574fdee160d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:44:59 -0400 -Subject: [PATCH 187/249] don't use int for efi status +Subject: [PATCH 187/250] don't use int for efi status --- grub-core/kern/efi/efi.c | 2 +- diff --git a/0188-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch b/0188-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch index 49802652..5a2fcfc1 100644 --- a/0188-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch +++ b/0188-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch @@ -1,7 +1,7 @@ From ba6828d073bbda85eba59a9ce9220eada51a540b Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:46:23 -0400 -Subject: [PATCH 188/249] make GRUB_MOD_INIT() declare its function prototypes. +Subject: [PATCH 188/250] make GRUB_MOD_INIT() declare its function prototypes. --- include/grub/dl.h | 2 ++ diff --git a/0189-Clean-up-some-errors-in-the-linuxefi-loader.patch b/0189-Clean-up-some-errors-in-the-linuxefi-loader.patch index 76120624..6736d40a 100644 --- a/0189-Clean-up-some-errors-in-the-linuxefi-loader.patch +++ b/0189-Clean-up-some-errors-in-the-linuxefi-loader.patch @@ -1,7 +1,7 @@ From 8bdc0c77919ddb9bd588ac45e96c96497683f76c Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 24 May 2017 15:58:18 -0400 -Subject: [PATCH 189/249] Clean up some errors in the linuxefi loader +Subject: [PATCH 189/250] Clean up some errors in the linuxefi loader Signed-off-by: Peter Jones --- diff --git a/0190-editenv-handle-relative-symlinks.patch b/0190-editenv-handle-relative-symlinks.patch index 7efa01f6..23f5bbf1 100644 --- a/0190-editenv-handle-relative-symlinks.patch +++ b/0190-editenv-handle-relative-symlinks.patch @@ -1,7 +1,7 @@ From 098987b7b5fcc15a5ba3600fa132fcec36095c5a Mon Sep 17 00:00:00 2001 From: Jonathan Lebon Date: Mon, 14 Aug 2017 14:37:20 -0400 -Subject: [PATCH 190/249] editenv: handle relative symlinks +Subject: [PATCH 190/250] editenv: handle relative symlinks Handle symlinks with targets relative to the containing dir. This ensures that the rename operation does not depend on the cwd. diff --git a/0191-Make-libgrub.pp-depend-on-config-util.h.patch b/0191-Make-libgrub.pp-depend-on-config-util.h.patch index 40c342da..6a04f06b 100644 --- a/0191-Make-libgrub.pp-depend-on-config-util.h.patch +++ b/0191-Make-libgrub.pp-depend-on-config-util.h.patch @@ -1,7 +1,7 @@ From c86299049c2cc0503728deee280d9f6bf50886f4 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 23 Aug 2017 10:37:27 -0400 -Subject: [PATCH 191/249] Make libgrub.pp depend on config-util.h +Subject: [PATCH 191/250] Make libgrub.pp depend on config-util.h If you build with "make -j48" a lot, sometimes you see: diff --git a/0192-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch b/0192-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch index 3c01c067..ae974187 100644 --- a/0192-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch +++ b/0192-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch @@ -1,7 +1,7 @@ From 351799d9310a4bec23ed4074444780c2a35435fd Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 20 Apr 2017 13:29:06 -0400 -Subject: [PATCH 192/249] Don't guess /boot/efi/ as HFS+ on ppc machines in +Subject: [PATCH 192/250] Don't guess /boot/efi/ as HFS+ on ppc machines in grub-install This should never be trying this, and since we've consolidated the diff --git a/0193-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch b/0193-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch index cc822fbb..49028161 100644 --- a/0193-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch +++ b/0193-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch @@ -1,7 +1,7 @@ From cba0322cd88baf136ac693f5ec1826f3314daeff Mon Sep 17 00:00:00 2001 From: Konrad Rzeszutek Wilk Date: Mon, 28 Aug 2017 13:51:14 -0400 -Subject: [PATCH 193/249] Fix util/grub.d/20_linux_xen.in: Add xen_boot command +Subject: [PATCH 193/250] Fix util/grub.d/20_linux_xen.in: Add xen_boot command support for aarch64 Commit d33045ce7ffcb7c1e4a60c14d5ca64b36e3c5abe introduced diff --git a/0194-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch b/0194-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch index 01edaa9a..6a02ef54 100644 --- a/0194-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch +++ b/0194-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch @@ -1,7 +1,7 @@ From 87c089b6f1945ebcc690697d279c74284f1b4072 Mon Sep 17 00:00:00 2001 From: Konrad Rzeszutek Wilk Date: Mon, 28 Aug 2017 13:59:12 -0400 -Subject: [PATCH 194/249] Use grub-file to figure out whether multiboot2 should +Subject: [PATCH 194/250] Use grub-file to figure out whether multiboot2 should be used for Xen.gz The multiboot2 is much more preferable than multiboot. Especiall diff --git a/0195-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch b/0195-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch index 027cf835..2becd994 100644 --- a/0195-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch +++ b/0195-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch @@ -1,7 +1,7 @@ From 92d3db585076d022521ab94a2ceed03eb05013fc Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 19 Oct 2017 11:29:11 -0400 -Subject: [PATCH 195/249] 20_linux_xen: load xen or multiboot{,2} modules as +Subject: [PATCH 195/250] 20_linux_xen: load xen or multiboot{,2} modules as needed. Signed-off-by: Peter Jones diff --git a/0196-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch b/0196-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch index e78af86d..8d9989db 100644 --- a/0196-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch +++ b/0196-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch @@ -1,7 +1,7 @@ From 2e5b957292d3f313d48bded25e8ca83468326c5b Mon Sep 17 00:00:00 2001 From: "David E. Box" Date: Fri, 15 Sep 2017 15:37:05 -0700 -Subject: [PATCH 196/249] tsc: Change default tsc calibration method to pmtimer +Subject: [PATCH 196/250] tsc: Change default tsc calibration method to pmtimer on EFI systems On efi systems, make pmtimer based tsc calibration the default over the diff --git a/0197-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch b/0197-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch index 572f798d..e7e8fec1 100644 --- a/0197-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch +++ b/0197-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch @@ -1,7 +1,7 @@ From 0b158c30810db86f549cabd6e6021ab15962370d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 7 Nov 2017 17:12:17 -0500 -Subject: [PATCH 197/249] Make pmtimer tsc calibration not take 51 seconds to +Subject: [PATCH 197/250] Make pmtimer tsc calibration not take 51 seconds to fail. On my laptop running at 2.4GHz, if I run a VM where tsc calibration diff --git a/0198-align-struct-efi_variable-better.patch b/0198-align-struct-efi_variable-better.patch index 139324ff..bdda5a16 100644 --- a/0198-align-struct-efi_variable-better.patch +++ b/0198-align-struct-efi_variable-better.patch @@ -1,7 +1,7 @@ From 2485633ada06c11c07a34a696a92b14e58f1e846 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 27 Feb 2018 13:55:35 -0500 -Subject: [PATCH 198/249] align struct efi_variable better... +Subject: [PATCH 198/250] align struct efi_variable better... --- include/grub/efiemu/runtime.h | 2 +- diff --git a/0199-Add-quicksort-implementation.patch b/0199-Add-quicksort-implementation.patch index c51eec4a..f9fc581e 100644 --- a/0199-Add-quicksort-implementation.patch +++ b/0199-Add-quicksort-implementation.patch @@ -1,7 +1,7 @@ From a2cd100d71711b950beaf60ea7ddca4c77a70d59 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 9 Dec 2016 15:39:47 -0500 -Subject: [PATCH 199/249] Add quicksort implementation +Subject: [PATCH 199/250] Add quicksort implementation This will be used to sort the boot menu entries that are read from the BootLoaderSpec config files. diff --git a/0200-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch b/0200-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch index 25a5e2e3..2ac95040 100644 --- a/0200-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch +++ b/0200-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch @@ -1,7 +1,7 @@ From ed595feeea2f7b7fd0158d42fa2fd39420eea683 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 9 Dec 2016 15:40:58 -0500 -Subject: [PATCH 200/249] Add blscfg command support to parse BootLoaderSpec +Subject: [PATCH 200/250] Add blscfg command support to parse BootLoaderSpec config fragments The BootLoaderSpec (BLS) defines a scheme where different bootloaders can diff --git a/0201-Add-BLS-support-to-grub-mkconfig.patch b/0201-Add-BLS-support-to-grub-mkconfig.patch index 1a5651b3..e58ac065 100644 --- a/0201-Add-BLS-support-to-grub-mkconfig.patch +++ b/0201-Add-BLS-support-to-grub-mkconfig.patch @@ -1,7 +1,7 @@ From d847a4806bb7a4f3b457d0074d712e500fbd5e97 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 9 Dec 2016 15:40:29 -0500 -Subject: [PATCH 201/249] Add BLS support to grub-mkconfig +Subject: [PATCH 201/250] Add BLS support to grub-mkconfig GRUB now has BootLoaderSpec support, the user can choose to use this by setting GRUB_ENABLE_BLSCFG to true in /etc/default/grub. On this setup, diff --git a/0202-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch b/0202-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch index c371e935..69c14f36 100644 --- a/0202-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch +++ b/0202-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch @@ -1,7 +1,7 @@ From 2d7dabdbf322e8f679eeaefd48cb26b083cdeb1c Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 6 Feb 2018 11:02:09 +0100 -Subject: [PATCH 202/249] Remove duplicated grub_exit() definition for grub-emu +Subject: [PATCH 202/250] Remove duplicated grub_exit() definition for grub-emu platform The grub_exit() function signature was changed on all platforms to take a diff --git a/0203-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch b/0203-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch index d9ebda27..8c3b3238 100644 --- a/0203-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch +++ b/0203-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch @@ -1,7 +1,7 @@ From f45946a92377c83ffcad8dbc3298fc26072567d9 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 6 Feb 2018 11:16:28 +0100 -Subject: [PATCH 203/249] Don't attempt to backtrace on grub_abort() for +Subject: [PATCH 203/250] Don't attempt to backtrace on grub_abort() for grub-emu The emu platform doesn't have a grub_backtrace() implementation, so this diff --git a/0204-Enable-blscfg-command-for-the-emu-platform.patch b/0204-Enable-blscfg-command-for-the-emu-platform.patch index 5988bf93..a470f1d2 100644 --- a/0204-Enable-blscfg-command-for-the-emu-platform.patch +++ b/0204-Enable-blscfg-command-for-the-emu-platform.patch @@ -1,7 +1,7 @@ From 39bb86c661911f06ff40caa842a9babf18f27c8b Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Fri, 2 Feb 2018 11:36:29 +0100 -Subject: [PATCH 204/249] Enable blscfg command for the emu platform +Subject: [PATCH 204/250] Enable blscfg command for the emu platform Allow grub-emu to call a blscfg command. This may be useful for platforms that don't support GRUB, so grub-emu can be used to parse the BLS configs diff --git a/0205-Add-linux-and-initrd-commands-for-grub-emu.patch b/0205-Add-linux-and-initrd-commands-for-grub-emu.patch index 894375da..0c3b7a15 100644 --- a/0205-Add-linux-and-initrd-commands-for-grub-emu.patch +++ b/0205-Add-linux-and-initrd-commands-for-grub-emu.patch @@ -1,7 +1,7 @@ From 49c719a6f6e223b95733e18720a48993ab6e5317 Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Tue, 6 Feb 2018 09:09:00 +0100 -Subject: [PATCH 205/249] Add linux and initrd commands for grub-emu +Subject: [PATCH 205/250] Add linux and initrd commands for grub-emu When using grub-emu, the linux and initrd commands are used as arguments to the kexec command line tool, to allow booting the selected menu entry. diff --git a/0206-Fix-the-efidir-in-grub-setpassword.patch b/0206-Fix-the-efidir-in-grub-setpassword.patch index 188d4736..478709de 100644 --- a/0206-Fix-the-efidir-in-grub-setpassword.patch +++ b/0206-Fix-the-efidir-in-grub-setpassword.patch @@ -1,7 +1,7 @@ From c7c6cb4380f5bd85a2cbe747433657fdce89a802 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 15 Mar 2018 14:12:54 -0400 -Subject: [PATCH 206/249] Fix the efidir in grub-setpassword +Subject: [PATCH 206/250] Fix the efidir in grub-setpassword Signed-off-by: Peter Jones --- diff --git a/0207-Add-grub2-switch-to-blscfg.patch b/0207-Add-grub2-switch-to-blscfg.patch index f61476e3..72dd4f98 100644 --- a/0207-Add-grub2-switch-to-blscfg.patch +++ b/0207-Add-grub2-switch-to-blscfg.patch @@ -1,7 +1,7 @@ From 89b3a570de8b5e7ad19769983a87f6e10024f0ec Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 15 Mar 2018 14:12:40 -0400 -Subject: [PATCH 207/249] Add grub2-switch-to-blscfg +Subject: [PATCH 207/250] Add grub2-switch-to-blscfg Signed-off-by: Peter Jones --- diff --git a/0208-Add-grub_debug_enabled.patch b/0208-Add-grub_debug_enabled.patch index c31110c5..772caa33 100644 --- a/0208-Add-grub_debug_enabled.patch +++ b/0208-Add-grub_debug_enabled.patch @@ -1,7 +1,7 @@ From 6776773c89828c9b69c1552760ba6a4d9cd5589f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 30 Nov 2017 15:11:39 -0500 -Subject: [PATCH 208/249] Add grub_debug_enabled() +Subject: [PATCH 208/250] Add grub_debug_enabled() --- grub-core/kern/misc.c | 21 ++++++++++++++++----- diff --git a/0209-make-better-backtraces.patch b/0209-make-better-backtraces.patch index dab19417..d8473693 100644 --- a/0209-make-better-backtraces.patch +++ b/0209-make-better-backtraces.patch @@ -1,7 +1,7 @@ From 318ee04aadcda40b779b2a5314dd23ead165f896 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 6 Nov 2017 18:31:56 -0500 -Subject: [PATCH 209/249] make better backtraces +Subject: [PATCH 209/250] make better backtraces Signed-off-by: Peter Jones --- diff --git a/0210-normal-don-t-draw-our-startup-message-if-debug-is-se.patch b/0210-normal-don-t-draw-our-startup-message-if-debug-is-se.patch index 6dc32519..e9f9e80e 100644 --- a/0210-normal-don-t-draw-our-startup-message-if-debug-is-se.patch +++ b/0210-normal-don-t-draw-our-startup-message-if-debug-is-se.patch @@ -1,7 +1,7 @@ From 81d0e079ea5aa6f43daf12f7a8698d0bcd1a36f8 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 9 Nov 2017 15:58:52 -0500 -Subject: [PATCH 210/249] normal: don't draw our startup message if debug is +Subject: [PATCH 210/250] normal: don't draw our startup message if debug is set --- diff --git a/0211-Work-around-some-minor-include-path-weirdnesses.patch b/0211-Work-around-some-minor-include-path-weirdnesses.patch index bb2bd0b2..89c36dcc 100644 --- a/0211-Work-around-some-minor-include-path-weirdnesses.patch +++ b/0211-Work-around-some-minor-include-path-weirdnesses.patch @@ -1,7 +1,7 @@ From e2bba0f7ee8e56c68e425853a21a8fdd766add70 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 16 Mar 2018 13:28:57 -0400 -Subject: [PATCH 211/249] Work around some minor include path weirdnesses +Subject: [PATCH 211/250] Work around some minor include path weirdnesses Signed-off-by: Peter Jones --- diff --git a/0212-Make-it-possible-to-enabled-build-id-sha1.patch b/0212-Make-it-possible-to-enabled-build-id-sha1.patch index 975678dd..057ba2cc 100644 --- a/0212-Make-it-possible-to-enabled-build-id-sha1.patch +++ b/0212-Make-it-possible-to-enabled-build-id-sha1.patch @@ -1,7 +1,7 @@ From 8521929bcf671b465d6450b969d11617b6aec608 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 25 Jun 2015 15:41:06 -0400 -Subject: [PATCH 212/249] Make it possible to enabled --build-id=sha1 +Subject: [PATCH 212/250] Make it possible to enabled --build-id=sha1 Signed-off-by: Peter Jones --- diff --git a/0213-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch b/0213-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch index cabc2d92..60c04f43 100644 --- a/0213-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch +++ b/0213-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch @@ -1,7 +1,7 @@ From 8c4b2eaa204f0ea0377ca4592d2be6029fdb9be7 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Sun, 28 Jun 2015 13:09:58 -0400 -Subject: [PATCH 213/249] Add grub_qdprintf() - grub_dprintf() without the +Subject: [PATCH 213/250] Add grub_qdprintf() - grub_dprintf() without the file+line number. This just makes copy+paste of our debug loading info easier. diff --git a/0214-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch b/0214-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch index 08ea7172..111cf9ec 100644 --- a/0214-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch +++ b/0214-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch @@ -1,7 +1,7 @@ From 030095a01a205aba04a0849ac0c0329ac429a9ed Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 25 Jun 2015 15:11:36 -0400 -Subject: [PATCH 214/249] Make a "gdb" dprintf that tells us load addresses. +Subject: [PATCH 214/250] Make a "gdb" dprintf that tells us load addresses. This makes a grub_dprintf() call during platform init and during module loading that tells us the virtual addresses of the .text and .data diff --git a/0215-Only-attempt-to-scan-different-BLS-directories-on-EF.patch b/0215-Only-attempt-to-scan-different-BLS-directories-on-EF.patch index 2c6071e8..813c5a09 100644 --- a/0215-Only-attempt-to-scan-different-BLS-directories-on-EF.patch +++ b/0215-Only-attempt-to-scan-different-BLS-directories-on-EF.patch @@ -1,7 +1,7 @@ From 5f0417c63a4dd2252a5a801568f4369ac74a47e6 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 3 Apr 2018 15:42:47 +0200 -Subject: [PATCH 215/249] Only attempt to scan different BLS directories on EFI +Subject: [PATCH 215/250] Only attempt to scan different BLS directories on EFI machines Current BLS support attempted to scan for BLS directories, but this only diff --git a/0216-Core-TPM-support.patch b/0216-Core-TPM-support.patch index 74600510..d093ec78 100644 --- a/0216-Core-TPM-support.patch +++ b/0216-Core-TPM-support.patch @@ -1,7 +1,7 @@ From 65be94a64a5608209561ba0914d29445d81bf4b2 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 14 Jul 2015 17:06:35 -0700 -Subject: [PATCH 216/249] Core TPM support +Subject: [PATCH 216/250] Core TPM support Add support for performing basic TPM measurements. Right now this only supports extending PCRs statically and only on UEFI and BIOS systems, but diff --git a/0217-Measure-kernel-initrd.patch b/0217-Measure-kernel-initrd.patch index e7b0bb7c..9e4087c0 100644 --- a/0217-Measure-kernel-initrd.patch +++ b/0217-Measure-kernel-initrd.patch @@ -1,7 +1,7 @@ From ffd305d09def6610ef96f928c0df8303c5529d63 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Thu, 16 Jul 2015 15:22:34 -0700 -Subject: [PATCH 217/249] Measure kernel + initrd +Subject: [PATCH 217/250] Measure kernel + initrd Measure the kernel and initrd when loaded on UEFI systems --- diff --git a/0218-Add-BIOS-boot-measurement.patch b/0218-Add-BIOS-boot-measurement.patch index d49b530a..8f9adfe7 100644 --- a/0218-Add-BIOS-boot-measurement.patch +++ b/0218-Add-BIOS-boot-measurement.patch @@ -1,7 +1,7 @@ From d8870587d46f8aa8d4f8db2cdcddecc829993447 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 15:48:51 -0700 -Subject: [PATCH 218/249] Add BIOS boot measurement +Subject: [PATCH 218/250] Add BIOS boot measurement Measure the on-disk grub core on BIOS systems - unlike UEFI, the firmware can't do this stage for us. diff --git a/0219-Measure-kernel-and-initrd-on-BIOS-systems.patch b/0219-Measure-kernel-and-initrd-on-BIOS-systems.patch index d09bd4f1..756d5c1e 100644 --- a/0219-Measure-kernel-and-initrd-on-BIOS-systems.patch +++ b/0219-Measure-kernel-and-initrd-on-BIOS-systems.patch @@ -1,7 +1,7 @@ From 5aee2444093cfc8006865766f89e5a775a940ab1 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 16:28:29 -0700 -Subject: [PATCH 219/249] Measure kernel and initrd on BIOS systems +Subject: [PATCH 219/250] Measure kernel and initrd on BIOS systems Measure the kernel and initrd when loaded on BIOS systems --- diff --git a/0220-Measure-the-kernel-commandline.patch b/0220-Measure-the-kernel-commandline.patch index f4ef54e7..c4a9b56a 100644 --- a/0220-Measure-the-kernel-commandline.patch +++ b/0220-Measure-the-kernel-commandline.patch @@ -1,7 +1,7 @@ From c1694574d6eb287e6e181dd018fe54b718a613b3 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 16:32:29 -0700 -Subject: [PATCH 220/249] Measure the kernel commandline +Subject: [PATCH 220/250] Measure the kernel commandline Measure the kernel commandline to ensure that it hasn't been modified --- diff --git a/0221-Measure-commands.patch b/0221-Measure-commands.patch index 8814679c..57cd556b 100644 --- a/0221-Measure-commands.patch +++ b/0221-Measure-commands.patch @@ -1,7 +1,7 @@ From c93a27f2e6a323a4985e6fe902eb5c6447fca572 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Mon, 10 Aug 2015 15:27:12 -0700 -Subject: [PATCH 221/249] Measure commands +Subject: [PATCH 221/250] Measure commands Measure each command executed by grub, which includes script execution. --- diff --git a/0222-Measure-multiboot-images-and-modules.patch b/0222-Measure-multiboot-images-and-modules.patch index a08bd420..25d322c7 100644 --- a/0222-Measure-multiboot-images-and-modules.patch +++ b/0222-Measure-multiboot-images-and-modules.patch @@ -1,7 +1,7 @@ From b164ec560cd6373c0c5d8a189d70baeca2c3ef13 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 1 Sep 2015 16:02:55 -0700 -Subject: [PATCH 222/249] Measure multiboot images and modules +Subject: [PATCH 222/250] Measure multiboot images and modules --- grub-core/loader/i386/multiboot_mbi.c | 3 +++ diff --git a/0223-Fix-boot-when-there-s-no-TPM.patch b/0223-Fix-boot-when-there-s-no-TPM.patch index cb9813e8..4a0f4271 100644 --- a/0223-Fix-boot-when-there-s-no-TPM.patch +++ b/0223-Fix-boot-when-there-s-no-TPM.patch @@ -1,7 +1,7 @@ From 33fb6113d65a819496d0b67b8db071fedad845a7 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Wed, 23 Mar 2016 16:49:42 -0700 -Subject: [PATCH 223/249] Fix boot when there's no TPM +Subject: [PATCH 223/250] Fix boot when there's no TPM If the firmware has TPM support but has no TPM, we're jumping to core.img without popping the registers back onto the stack. Fix that. diff --git a/0224-Rework-TPM-measurements.patch b/0224-Rework-TPM-measurements.patch index afbf951c..87090f82 100644 --- a/0224-Rework-TPM-measurements.patch +++ b/0224-Rework-TPM-measurements.patch @@ -1,7 +1,7 @@ From 415072bbda8b4de133c6dc6add230e41ee6d9579 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Wed, 23 Mar 2016 17:03:43 -0700 -Subject: [PATCH 224/249] Rework TPM measurements +Subject: [PATCH 224/250] Rework TPM measurements Rework TPM measurements to use fewer PCRs. After discussion with upstream, it's preferable to avoid using so many PCRs. Instead, measure into PCRs 8 diff --git a/0225-Fix-event-log-prefix.patch b/0225-Fix-event-log-prefix.patch index ba02a72e..71c1316a 100644 --- a/0225-Fix-event-log-prefix.patch +++ b/0225-Fix-event-log-prefix.patch @@ -1,7 +1,7 @@ From 0816621235226952a5bd0cfd027eb97ff84df547 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 29 Mar 2016 15:36:49 -0700 -Subject: [PATCH 225/249] Fix event log prefix +Subject: [PATCH 225/250] Fix event log prefix We're not passing the prefixed version of the description to the event log. Fix that. diff --git a/0226-Set-the-first-boot-menu-entry-as-default-when-using-.patch b/0226-Set-the-first-boot-menu-entry-as-default-when-using-.patch index 748851af..9a430ac1 100644 --- a/0226-Set-the-first-boot-menu-entry-as-default-when-using-.patch +++ b/0226-Set-the-first-boot-menu-entry-as-default-when-using-.patch @@ -1,7 +1,7 @@ From 8278e40fdc4a4db0865fc632cbe2dcf7c124ba7a Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Fri, 6 Apr 2018 14:08:36 +0200 -Subject: [PATCH 226/249] Set the first boot menu entry as default when using +Subject: [PATCH 226/250] Set the first boot menu entry as default when using BLS fragments When BootLoaderSpec configuration files are used, the default boot menu diff --git a/0227-tpm-fix-warnings-when-compiling-for-platforms-other-.patch b/0227-tpm-fix-warnings-when-compiling-for-platforms-other-.patch index 452205fe..4332b6da 100644 --- a/0227-tpm-fix-warnings-when-compiling-for-platforms-other-.patch +++ b/0227-tpm-fix-warnings-when-compiling-for-platforms-other-.patch @@ -1,7 +1,7 @@ From 4c53f61b1a889c0f55e76a763b05b6686ec613b8 Mon Sep 17 00:00:00 2001 From: Michael Marineau Date: Sun, 21 Aug 2016 18:24:58 -0700 -Subject: [PATCH 227/249] tpm: fix warnings when compiling for platforms other +Subject: [PATCH 227/250] tpm: fix warnings when compiling for platforms other than pc and efi --- diff --git a/0228-Make-TPM-errors-less-fatal.patch b/0228-Make-TPM-errors-less-fatal.patch index 3e2358ab..ee52d583 100644 --- a/0228-Make-TPM-errors-less-fatal.patch +++ b/0228-Make-TPM-errors-less-fatal.patch @@ -1,7 +1,7 @@ From 406f7dda0cc2689170f102341a546c87072d1ce5 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Thu, 13 Oct 2016 13:55:26 -0700 -Subject: [PATCH 228/249] Make TPM errors less fatal +Subject: [PATCH 228/250] Make TPM errors less fatal Handle TPM errors, and stop trying to use the TPM once we hit one. --- diff --git a/0229-blscfg-handle-multiple-initramfs-images.patch b/0229-blscfg-handle-multiple-initramfs-images.patch index 920baf16..9f58db61 100644 --- a/0229-blscfg-handle-multiple-initramfs-images.patch +++ b/0229-blscfg-handle-multiple-initramfs-images.patch @@ -1,7 +1,7 @@ From a230ec5c31d818c2f046acf3592a5492d3e2ea69 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 11 Apr 2018 13:44:29 -0400 -Subject: [PATCH 229/249] blscfg: handle multiple initramfs images. +Subject: [PATCH 229/250] blscfg: handle multiple initramfs images. Signed-off-by: Peter Jones --- diff --git a/0230-BLS-Fix-grub2-switch-to-blscfg-on-non-EFI-machines.patch b/0230-BLS-Fix-grub2-switch-to-blscfg-on-non-EFI-machines.patch index c4586b5c..f9bde561 100644 --- a/0230-BLS-Fix-grub2-switch-to-blscfg-on-non-EFI-machines.patch +++ b/0230-BLS-Fix-grub2-switch-to-blscfg-on-non-EFI-machines.patch @@ -1,7 +1,7 @@ From f006df881d1b2b3ca7320ecfcd33181295ec1018 Mon Sep 17 00:00:00 2001 From: Jan Hlavac Date: Tue, 10 Apr 2018 16:07:36 +0200 -Subject: [PATCH 230/249] BLS: Fix grub2-switch-to-blscfg on non-EFI machines +Subject: [PATCH 230/250] BLS: Fix grub2-switch-to-blscfg on non-EFI machines On the non-EFI machines the grub2-switch-to-blscfg script places the BLS snippets into the /boot directory. But the right location is diff --git a/0231-BLS-Use-etcdefaultgrub-instead-of-etc.patch b/0231-BLS-Use-etcdefaultgrub-instead-of-etc.patch index 9e7c5367..841af6c9 100644 --- a/0231-BLS-Use-etcdefaultgrub-instead-of-etc.patch +++ b/0231-BLS-Use-etcdefaultgrub-instead-of-etc.patch @@ -1,7 +1,7 @@ From 29b79fde633a43223ead7874ffd373603f129832 Mon Sep 17 00:00:00 2001 From: Jan Hlavac Date: Tue, 10 Apr 2018 16:56:28 +0200 -Subject: [PATCH 231/249] BLS: Use ${etcdefaultgrub} instead of /etc/... +Subject: [PATCH 231/250] BLS: Use ${etcdefaultgrub} instead of /etc/... Inside the grub-switch-to-blscfg script the ${etcdefaultgrub} variable is used. So replace the hardcoded /etc/default/grub with it. diff --git a/0232-Add-missing-options-to-grub2-switch-to-blscfg-man-pa.patch b/0232-Add-missing-options-to-grub2-switch-to-blscfg-man-pa.patch index ded70ca6..b981eaea 100644 --- a/0232-Add-missing-options-to-grub2-switch-to-blscfg-man-pa.patch +++ b/0232-Add-missing-options-to-grub2-switch-to-blscfg-man-pa.patch @@ -1,7 +1,7 @@ From c3a05672a450fd9e95de5df2b0c27c24fe04cd83 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Wed, 11 Apr 2018 11:36:43 +0200 -Subject: [PATCH 232/249] Add missing options to grub2-switch-to-blscfg man +Subject: [PATCH 232/250] Add missing options to grub2-switch-to-blscfg man page The script --bls-directory and --backup-suffix options were not documented diff --git a/0233-Make-grub2-switch-to-blscfg-to-generate-debug-BLS-wh.patch b/0233-Make-grub2-switch-to-blscfg-to-generate-debug-BLS-wh.patch index b3225aab..41d509e5 100644 --- a/0233-Make-grub2-switch-to-blscfg-to-generate-debug-BLS-wh.patch +++ b/0233-Make-grub2-switch-to-blscfg-to-generate-debug-BLS-wh.patch @@ -1,7 +1,7 @@ From 55b00d518e029a563653401c6908489924c07238 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Wed, 11 Apr 2018 11:49:24 +0200 -Subject: [PATCH 233/249] Make grub2-switch-to-blscfg to generate debug BLS +Subject: [PATCH 233/250] Make grub2-switch-to-blscfg to generate debug BLS when MAKEDEBUG is set If MAKEDEBUG=yes in /etc/sysconfig/kernel, then a debug menu entry should diff --git a/0234-Make-grub2-switch-to-blscfg-to-generate-BLS-fragment.patch b/0234-Make-grub2-switch-to-blscfg-to-generate-BLS-fragment.patch index 7b318678..a637b73f 100644 --- a/0234-Make-grub2-switch-to-blscfg-to-generate-BLS-fragment.patch +++ b/0234-Make-grub2-switch-to-blscfg-to-generate-BLS-fragment.patch @@ -1,7 +1,7 @@ From 60bddbc714c96ca05821d52bdd7dbad7eabd6dd5 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Wed, 11 Apr 2018 12:39:59 +0200 -Subject: [PATCH 234/249] Make grub2-switch-to-blscfg to generate BLS fragment +Subject: [PATCH 234/250] Make grub2-switch-to-blscfg to generate BLS fragment for rescue kernel If a rescue image is available, it should have a BootLoaderSpec fragment. diff --git a/0235-Only-attempt-to-query-dev-mounted-in-boot-efi-as-boo.patch b/0235-Only-attempt-to-query-dev-mounted-in-boot-efi-as-boo.patch index e2731494..43002ec3 100644 --- a/0235-Only-attempt-to-query-dev-mounted-in-boot-efi-as-boo.patch +++ b/0235-Only-attempt-to-query-dev-mounted-in-boot-efi-as-boo.patch @@ -1,7 +1,7 @@ From 8afe59812e83e78564697ef8241ed4f1b3527423 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 24 Apr 2018 02:16:38 +0200 -Subject: [PATCH 235/249] Only attempt to query dev mounted in /boot/efi as +Subject: [PATCH 235/250] Only attempt to query dev mounted in /boot/efi as boot dev on EFI machines The 10_linux script calls grub2-probe to probe the information for the dev diff --git a/0236-Include-OSTree-path-when-searching-kernels-images-if.patch b/0236-Include-OSTree-path-when-searching-kernels-images-if.patch index fc4007e2..b52d2bb0 100644 --- a/0236-Include-OSTree-path-when-searching-kernels-images-if.patch +++ b/0236-Include-OSTree-path-when-searching-kernels-images-if.patch @@ -1,7 +1,7 @@ From 459eaeacbb40116dcb501cf165c7816e70c66fb3 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 24 Apr 2018 02:28:04 +0200 -Subject: [PATCH 236/249] Include OSTree path when searching kernels images if +Subject: [PATCH 236/250] Include OSTree path when searching kernels images if BLS config is enabled The OSTree based distros (i.e: Fedora Atomic) don't install kernel images diff --git a/0237-Use-BLS-version-field-to-compare-entries-if-id-field.patch b/0237-Use-BLS-version-field-to-compare-entries-if-id-field.patch index f6797148..9c78a6cc 100644 --- a/0237-Use-BLS-version-field-to-compare-entries-if-id-field.patch +++ b/0237-Use-BLS-version-field-to-compare-entries-if-id-field.patch @@ -1,7 +1,7 @@ From 689a48c76bee8049a50f962852f43f108c815450 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Fri, 27 Apr 2018 17:53:41 +0200 -Subject: [PATCH 237/249] Use BLS version field to compare entries if id field +Subject: [PATCH 237/250] Use BLS version field to compare entries if id field isn't defined The BootLoaderSpec fragments generated by OSTree don't have the id field, diff --git a/0238-Add-version-field-to-BLS-generated-by-grub2-switch-t.patch b/0238-Add-version-field-to-BLS-generated-by-grub2-switch-t.patch index cbef3be0..3e07486c 100644 --- a/0238-Add-version-field-to-BLS-generated-by-grub2-switch-t.patch +++ b/0238-Add-version-field-to-BLS-generated-by-grub2-switch-t.patch @@ -1,7 +1,7 @@ From 0994be8d655420685d900a08443b4fd53f639e72 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Thu, 10 May 2018 10:52:11 +0200 -Subject: [PATCH 238/249] Add version field to BLS generated by +Subject: [PATCH 238/250] Add version field to BLS generated by grub2-switch-to-blscfg The version field is present in the BLS fragments that are shipped in the diff --git a/0239-Fixup-for-newer-compiler.patch b/0239-Fixup-for-newer-compiler.patch index fee704ca..544e8d09 100644 --- a/0239-Fixup-for-newer-compiler.patch +++ b/0239-Fixup-for-newer-compiler.patch @@ -1,7 +1,7 @@ From fe5e237fbe38fcbec4018b7e5d328b211bbabb2f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 10 May 2018 13:40:19 -0400 -Subject: [PATCH 239/249] Fixup for newer compiler +Subject: [PATCH 239/250] Fixup for newer compiler --- grub-core/fs/btrfs.c | 2 +- diff --git a/0240-Don-t-attempt-to-export-the-start-and-_start-symbols.patch b/0240-Don-t-attempt-to-export-the-start-and-_start-symbols.patch index a7092b1b..0c633537 100644 --- a/0240-Don-t-attempt-to-export-the-start-and-_start-symbols.patch +++ b/0240-Don-t-attempt-to-export-the-start-and-_start-symbols.patch @@ -1,7 +1,7 @@ From d03f1ebcdf88a1bf850730b9cbd1126894bdca76 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Sat, 12 May 2018 11:29:07 +0200 -Subject: [PATCH 240/249] Don't attempt to export the start and _start symbols +Subject: [PATCH 240/250] Don't attempt to export the start and _start symbols for grub-emu Commit 318ee04aadc ("make better backtraces") reworked the backtrace logic diff --git a/0241-Simplify-BLS-entry-key-val-pairs-lookup.patch b/0241-Simplify-BLS-entry-key-val-pairs-lookup.patch index d8eba3f0..f2d30eb9 100644 --- a/0241-Simplify-BLS-entry-key-val-pairs-lookup.patch +++ b/0241-Simplify-BLS-entry-key-val-pairs-lookup.patch @@ -1,7 +1,7 @@ From 385bb1bd33e9467eda798ea3a4ac16e86a40ce75 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Fri, 11 May 2018 23:47:31 +0200 -Subject: [PATCH 241/249] Simplify BLS entry key val pairs lookup +Subject: [PATCH 241/250] Simplify BLS entry key val pairs lookup The pairs found in the BLS are being sorted but this isn't really needed and it makes the implementation complex and error prone. diff --git a/0242-Add-relative-path-to-the-kernel-and-initrds-BLS-fiel.patch b/0242-Add-relative-path-to-the-kernel-and-initrds-BLS-fiel.patch index d2336551..36a0aa06 100644 --- a/0242-Add-relative-path-to-the-kernel-and-initrds-BLS-fiel.patch +++ b/0242-Add-relative-path-to-the-kernel-and-initrds-BLS-fiel.patch @@ -1,7 +1,7 @@ From a24ca589707fa69fe7be9dc1007f4ae114994f9f Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Mon, 4 Jun 2018 16:10:22 +0200 -Subject: [PATCH 242/249] Add relative path to the kernel and initrds BLS +Subject: [PATCH 242/250] Add relative path to the kernel and initrds BLS fields if needed The static BLS config file shipped with the kernel package assumes that diff --git a/0243-Skip-leading-spaces-on-BLS-field-values.patch b/0243-Skip-leading-spaces-on-BLS-field-values.patch index 06d93023..e65d7d1e 100644 --- a/0243-Skip-leading-spaces-on-BLS-field-values.patch +++ b/0243-Skip-leading-spaces-on-BLS-field-values.patch @@ -1,7 +1,7 @@ From a5bf618156915e97a0e7df07556ab728377de77e Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Thu, 7 Jun 2018 00:44:51 +0200 -Subject: [PATCH 243/249] Skip leading spaces on BLS field values +Subject: [PATCH 243/250] Skip leading spaces on BLS field values The GRUB 2 blscfg command doesn't parse correctly the BLS fields if these have extra spaces before the field values. For example, the following BLS diff --git a/0244-Fixup-for-newer-compiler.patch b/0244-Fixup-for-newer-compiler.patch index a8695d32..f6e4d991 100644 --- a/0244-Fixup-for-newer-compiler.patch +++ b/0244-Fixup-for-newer-compiler.patch @@ -1,7 +1,7 @@ From df99134313f5571d8806d9121d04b8c8a5509d98 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 10 May 2018 13:40:19 -0400 -Subject: [PATCH 244/249] Fixup for newer compiler +Subject: [PATCH 244/250] Fixup for newer compiler --- conf/Makefile.common | 2 +- diff --git a/0245-TPM-Fix-hash_log_extend_event-function-prototype.patch b/0245-TPM-Fix-hash_log_extend_event-function-prototype.patch index 2d3cb224..244cbba2 100644 --- a/0245-TPM-Fix-hash_log_extend_event-function-prototype.patch +++ b/0245-TPM-Fix-hash_log_extend_event-function-prototype.patch @@ -1,7 +1,7 @@ From a4fc13ebd23cb7a89ea678ed4e52b5142215671d Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Fri, 15 Jun 2018 09:25:00 +0200 -Subject: [PATCH 245/249] TPM: Fix hash_log_extend_event function prototype +Subject: [PATCH 245/250] TPM: Fix hash_log_extend_event function prototype The DataToHash argument is a efi_physical_address, not a *pointer* to a efi_physical_address. diff --git a/0246-TPM-Fix-compiler-warnings.patch b/0246-TPM-Fix-compiler-warnings.patch index d254913f..c7ee57bb 100644 --- a/0246-TPM-Fix-compiler-warnings.patch +++ b/0246-TPM-Fix-compiler-warnings.patch @@ -1,7 +1,7 @@ From c850916d93293465abc8beb5bdebd0ab70035d88 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Fri, 15 Jun 2018 09:58:50 +0200 -Subject: [PATCH 246/249] TPM: Fix compiler warnings +Subject: [PATCH 246/250] TPM: Fix compiler warnings Stop defining our own Event type in tpm.c instead use the one from the header, so that it matches the function prototype. diff --git a/0247-grub-switch-to-blscfg.in-get-rid-of-a-bunch-of-bashi.patch b/0247-grub-switch-to-blscfg.in-get-rid-of-a-bunch-of-bashi.patch index 0a1ba7f3..6bbe8979 100644 --- a/0247-grub-switch-to-blscfg.in-get-rid-of-a-bunch-of-bashi.patch +++ b/0247-grub-switch-to-blscfg.in-get-rid-of-a-bunch-of-bashi.patch @@ -1,7 +1,7 @@ From cee0bf1f56c89af640b23432f8b40fcd1f4a2f55 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 22 Jun 2018 14:01:06 -0400 -Subject: [PATCH 247/249] grub-switch-to-blscfg.in: get rid of a bunch of +Subject: [PATCH 247/250] grub-switch-to-blscfg.in: get rid of a bunch of bashisms Since this says /bin/sh at the top, it should work with dash. diff --git a/0248-grub-switch-to-blscfg.in-Better-boot-prefix-checking.patch b/0248-grub-switch-to-blscfg.in-Better-boot-prefix-checking.patch index fdf9a0f5..42135c31 100644 --- a/0248-grub-switch-to-blscfg.in-Better-boot-prefix-checking.patch +++ b/0248-grub-switch-to-blscfg.in-Better-boot-prefix-checking.patch @@ -1,7 +1,7 @@ From b3ac18e3265f709b35fe0aa5578c6f4030882a4d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 22 Jun 2018 14:04:28 -0400 -Subject: [PATCH 248/249] grub-switch-to-blscfg.in: Better boot prefix checking +Subject: [PATCH 248/250] grub-switch-to-blscfg.in: Better boot prefix checking Signed-off-by: Peter Jones --- diff --git a/0249-Use-boot-loader-entries-as-BLS-directory-path-also-o.patch b/0249-Use-boot-loader-entries-as-BLS-directory-path-also-o.patch index 0b4f30b9..e092c4d5 100644 --- a/0249-Use-boot-loader-entries-as-BLS-directory-path-also-o.patch +++ b/0249-Use-boot-loader-entries-as-BLS-directory-path-also-o.patch @@ -1,7 +1,7 @@ From fc5abde941409619f8c40b842e35e1820d4327dc Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Mon, 25 Jun 2018 11:45:33 +0200 -Subject: [PATCH 249/249] Use /boot/loader/entries as BLS directory path also +Subject: [PATCH 249/250] Use /boot/loader/entries as BLS directory path also on EFI systems For EFI systems, the BLS fragments were stored in the EFI System Partition diff --git a/0250-Use-BLS-fragment-filename-as-menu-entry-id-and-for-c.patch b/0250-Use-BLS-fragment-filename-as-menu-entry-id-and-for-c.patch new file mode 100644 index 00000000..f1cd9b6e --- /dev/null +++ b/0250-Use-BLS-fragment-filename-as-menu-entry-id-and-for-c.patch @@ -0,0 +1,137 @@ +From cc110d5dfd58a6ac1320f8b7c27b7ff8852c40e6 Mon Sep 17 00:00:00 2001 +From: Javier Martinez Canillas +Date: Tue, 26 Jun 2018 14:01:26 +0200 +Subject: [PATCH 250/250] Use BLS fragment filename as menu entry id and for + criteria to sort + +The BLS config filenames are guaranteed to be unique, so they can be +used as GRUB2 entry id and can also be used to sort the menu entries. + +Signed-off-by: Javier Martinez Canillas +--- + grub-core/commands/blscfg.c | 62 +++++++++------------------------------------ + 1 file changed, 12 insertions(+), 50 deletions(-) + +diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c +index 11fe6e2c29f..23d15adfadc 100644 +--- a/grub-core/commands/blscfg.c ++++ b/grub-core/commands/blscfg.c +@@ -70,6 +70,7 @@ struct bls_entry + { + struct keyval **keyvals; + int nkeyvals; ++ char *filename; + }; + + static struct bls_entry **entries; +@@ -166,6 +167,7 @@ static void bls_free_entry(struct bls_entry *entry) + + grub_free (entry->keyvals); + grub_memset (entry, 0, sizeof (*entry)); ++ grub_free (entry->filename); + grub_free (entry); + } + +@@ -327,58 +329,12 @@ finish: + + typedef int (*void_cmp_t)(void *, void *); + +-static int nulcmp(char *s0, char *s1, void_cmp_t cmp) +-{ +- grub_dprintf("blscfg", "%s got here\n", __func__); +- if (s1 && !s0) +- return 1; +- if (s0 && !s1) +- return -1; +- if (!s0 && !s1) +- return 0; +- if (cmp) +- return cmp(s0, s1); +- return grub_strcmp(s0, s1); +-} +- +-static int +-bls_keyval_cmp(struct bls_entry *e0, struct bls_entry *e1, const char *keyname) +-{ +- char *val0, *val1; +- +- val0 = bls_get_val (e0, keyname, NULL); +- val1 = bls_get_val (e1, keyname, NULL); +- +- if (val1 && !val0) +- return 1; +- +- if (val0 && !val1) +- return -1; +- +- if (!val0 && !val1) +- return 0; +- +- return nulcmp(val0, val1, (void_cmp_t)vercmp); +-} +- + static int bls_cmp(const void *p0, const void *p1, void *state UNUSED) + { + struct bls_entry * e0 = *(struct bls_entry **)p0; + struct bls_entry * e1 = *(struct bls_entry **)p1; +- int rc = 0; + +- rc = bls_keyval_cmp (e0, e1, "id"); +- +- if (rc == 0) +- rc = bls_keyval_cmp (e0, e1, "version"); +- +- if (rc == 0) +- rc = bls_keyval_cmp (e0, e1, "title"); +- +- if (rc == 0) +- rc = bls_keyval_cmp (e0, e1, "linux"); +- +- return rc; ++ return vercmp(e0->filename, e1->filename); + } + + struct read_entry_info { +@@ -424,6 +380,12 @@ static int read_entry ( + if (!entry) + goto finish; + ++ entry->filename = grub_strndup(filename, n - 5); ++ if (!entry->filename) ++ goto finish; ++ ++ entry->filename[n - 5] = '\0'; ++ + for (;;) + { + char *buf; +@@ -548,7 +510,7 @@ static void create_entry (struct bls_entry *entry, const char *cfgfile) + char *options = NULL; + char **initrds = NULL; + char *initrd = NULL; +- char *id = NULL; ++ char *id = entry->filename; + char *hotkey = NULL; + + char *users = NULL; +@@ -570,7 +532,6 @@ static void create_entry (struct bls_entry *entry, const char *cfgfile) + title = bls_get_val (entry, "title", NULL); + options = bls_get_val (entry, "options", NULL); + initrds = bls_make_list (entry, "initrd", NULL); +- id = bls_get_val (entry, "id", NULL); + + hotkey = bls_get_val (entry, "grub_hotkey", NULL); + users = bls_get_val (entry, "grub_users", NULL); +@@ -584,7 +545,8 @@ static void create_entry (struct bls_entry *entry, const char *cfgfile) + argv[i] = args[i-1]; + argv[argc] = NULL; + +- grub_dprintf ("blscfg", "adding menu entry for \"%s\"\n", title); ++ grub_dprintf ("blscfg", "adding menu entry for \"%s\" with id \"%s\"\n", ++ title, id); + if (initrds) + { + int initrd_size = sizeof (GRUB_INITRD_CMD); +-- +2.17.1 + diff --git a/grub.patches b/grub.patches index 747da5d3..132f0284 100644 --- a/grub.patches +++ b/grub.patches @@ -247,3 +247,4 @@ Patch0246: 0246-TPM-Fix-compiler-warnings.patch Patch0247: 0247-grub-switch-to-blscfg.in-get-rid-of-a-bunch-of-bashi.patch Patch0248: 0248-grub-switch-to-blscfg.in-Better-boot-prefix-checking.patch Patch0249: 0249-Use-boot-loader-entries-as-BLS-directory-path-also-o.patch +Patch0250: 0250-Use-BLS-fragment-filename-as-menu-entry-id-and-for-c.patch diff --git a/grub2.spec b/grub2.spec index 885f2201..970e8bba 100644 --- a/grub2.spec +++ b/grub2.spec @@ -453,6 +453,9 @@ fi %endif %changelog +* Mon Jul 02 2018 Javier Martinez Canillas +- Use BLS fragment filename as menu entry id and for sort criterion + * Tue Jun 26 2018 Javier Martinez Canillas - Cleanups and fixes for grub2-switch-to-blscfg (pjones) - Use /boot/loader/entries as BLS dir also on EFI (javierm) From c2f54f5e21634aae74db60fd42d580d0f52ce781 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 3 Jul 2018 14:48:30 -0400 Subject: [PATCH 33/45] Use BLS fragment filename as menu entry id and for sort criterion Signed-off-by: Peter Jones --- grub2.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grub2.spec b/grub2.spec index 970e8bba..46af670a 100644 --- a/grub2.spec +++ b/grub2.spec @@ -453,7 +453,7 @@ fi %endif %changelog -* Mon Jul 02 2018 Javier Martinez Canillas +* Mon Jul 02 2018 Javier Martinez Canillas - 2.02-37 - Use BLS fragment filename as menu entry id and for sort criterion * Tue Jun 26 2018 Javier Martinez Canillas From bbaf640231b4c1505dcd494b1648b486ddf6b770 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 3 Jul 2018 14:49:22 -0400 Subject: [PATCH 34/45] Bumpspec broke on the last one... --- grub2.spec | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/grub2.spec b/grub2.spec index 46af670a..84baefb4 100644 --- a/grub2.spec +++ b/grub2.spec @@ -7,7 +7,7 @@ Name: grub2 Epoch: 1 Version: 2.02 -Release: 37%{?dist} +Release: 38%{?dist} Summary: Bootloader with support for Linux, Multiboot and more Group: System Environment/Base License: GPLv3+ @@ -453,7 +453,7 @@ fi %endif %changelog -* Mon Jul 02 2018 Javier Martinez Canillas - 2.02-37 +* Mon Jul 02 2018 Javier Martinez Canillas - 2.02-38 - Use BLS fragment filename as menu entry id and for sort criterion * Tue Jun 26 2018 Javier Martinez Canillas From 5725bcd5ca26c5ad21972a149b99746c54cecc7d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 9 Jul 2018 13:32:57 -0400 Subject: [PATCH 35/45] Rebased to newer upstream for fedora-28 Signed-off-by: Peter Jones --- 0001-Bump-version-to-2.03.patch | 2 +- 0002-Remove-bashisms-from-tests.patch | 2 +- 0003-fs-tester-make-sh-compatible.patch | 2 +- 0004-support-busybox-date.patch | 2 +- ...retrieve-fstime-when-it-s-not-useful.patch | 2 +- 0006-Support-lseek64.patch | 2 +- 0007-Use-SHELL-rather-than-bin-sh.patch | 2 +- 0008-po-Use-SHELL-rather-than-bin-sh.patch | 2 +- 0009-Add-termux-path-to-dict.patch | 2 +- 0010-Fix-shebang-for-termux.patch | 2 +- 0011-Add-strtoull-test.patch | 2 +- ...x-behaviour-on-chars-between-9-and-a.patch | 2 +- 0013-Add-Virtual-LAN-support.patch | 2 +- ...out-to-mkimage_generate_elfXX-rather.patch | 2 +- ...r-arm-uboot-code-to-make-it-genereic.patch | 2 +- ...-parts-that-are-platform-independent.patch | 2 +- ...-Rename-uboot-halt.c-to-dummy-halt.c.patch | 2 +- ...ame-uboot-datetime-to-dummy-datetime.patch | 2 +- 0019-arm-coreboot-Start-new-port.patch | 2 +- ...upport-for-device-tree-based-drivers.patch | 2 +- ...-coreboot-Support-for-vexpress-timer.patch | 2 +- 0022-arm-coreboot-Export-FDT-routines.patch | 2 +- ...-Split-protocol-from-controller-code.patch | 2 +- ...reboot-Support-keyboard-for-vexpress.patch | 2 +- ...m_coreboot-Support-grub-mkstandalone.patch | 2 +- ...oreboot-Support-loading-linux-images.patch | 2 +- 0027-arm_coreboot-Support-DMA.patch | 2 +- 0028-ehci-Split-core-code-from-PCI-part.patch | 2 +- 0029-arm_coreboot-Support-EHCI.patch | 2 +- ...n-FDT-nodes-with-compatible-property.patch | 2 +- ...ty-to-send-receive-messages-on-paren.patch | 2 +- 0032-rk3288_spi-Add-SPI-driver.patch | 2 +- ...eboot-Add-Chromebook-keyboard-driver.patch | 2 +- 0034-Missing-parts-of-previous-commit.patch | 2 +- ...-cbmemc-to-support-updated-console-f.patch | 2 +- ...t_keyboard-Fix-falco-chromebook-case.patch | 2 +- 0037-sparc64-Close-cdboot-ihandle.patch | 2 +- ...-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch | 2 +- ...p-option-support-in-xen_module-comma.patch | 2 +- ...inux_xen.in-Add-xen_boot-command-sup.patch | 2 +- ...-introduction-of-Xen-boot-commands-i.patch | 2 +- ...se-devspec-to-determine-the-OBP-path.patch | 2 +- ...unt-ext2-3-4-filesystems-that-have-t.patch | 2 +- 0044-ehci-Fix-compilation-for-amd64.patch | 2 +- ...-compilation-for-ppc-sparc-and-arm64.patch | 2 +- 0046-ehci-Fix-compilation-on-i386.patch | 2 +- 0047-crypto-Fix-use-after-free.patch | 2 +- 0048-arm-efi-Fix-compilation.patch | 2 +- 0049-fdt-silence-clang-warning.patch | 2 +- 0050-Fix-a-segfault-in-lsefi.patch | 2 +- ...t-typedef-and-use-grub_size_t-instea.patch | 2 +- ...x-reading-label-lvd.ident-is-dstring.patch | 2 +- ...b-core-fs-udf.c-Add-support-for-UUID.patch | 2 +- ...orriso-presence-before-doing-anythin.patch | 2 +- 0055-Fail-if-xorriso-failed.patch | 2 +- ...efi-refactor-grub_efi_allocate_pages.patch | 2 +- 0057-Remove-grub_efi_allocate_pages.patch | 2 +- 0058-efi-move-fdt-helper-library.patch | 2 +- 0059-efi-Add-GRUB_PE32_MAGIC-definition.patch | 2 +- ...inux-loader-improve-type-portability.patch | 2 +- ...allocation-type-to-GRUB_EFI_LOADER_C.patch | 2 +- ...RM_-definitions-when-handling-term-c.patch | 2 +- ...B_GZ-prefix-to-gzio-specific-defines.patch | 2 +- 0064-re-write-.gitignore.patch | 2 +- ...ient-architecture-CAS-reboot-support.patch | 2 +- ...nsole-display-attr-when-clear-screen.patch | 2 +- ...video-support-for-IBM-power-machines.patch | 2 +- ...when-generating-configuration-by-gru.patch | 2 +- 0069-Move-bash-completion-script-922997.patch | 2 +- 0070-Update-to-minilzo-2.08.patch | 2 +- ...o-include-entries-by-title-not-just-.patch | 2 +- 0072-Add-GRUB_DISABLE_UUID.patch | 2 +- 0073-Make-exit-take-a-return-code.patch | 2 +- ...pot-as-binary-so-git-won-t-try-to-di.patch | 2 +- ...es-load-an-env-block-from-a-variable.patch | 2 +- ...HCP-client-ID-and-UUID-options-added.patch | 2 +- ...-trim-arp-packets-with-abnormal-size.patch | 2 +- ...Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch | 2 +- ...UEFI-operating-systems-returned-by-o.patch | 2 +- 0080-Migrate-PPC-from-Yaboot-to-Grub2.patch | 2 +- 0081-Add-fw_path-variable-revised.patch | 2 +- 0082-Add-support-for-linuxefi.patch | 2 +- ...xefi-and-initrdefi-where-appropriate.patch | 2 +- ...w-insmod-when-secure-boot-is-enabled.patch | 2 +- ...-hex-hex-straight-through-unmolested.patch | 2 +- 0086-Add-X-option-to-printf-functions.patch | 2 +- ...for-specific-config-file-for-netboot.patch | 2 +- ...g-module-to-parse-Boot-Loader-Specif.patch | 2 +- 0089-Don-t-write-messages-to-the-screen.patch | 2 +- 0090-Don-t-print-GNU-GRUB-header.patch | 2 +- 0091-Don-t-add-to-highlighted-row.patch | 2 +- 0092-Message-string-cleanups.patch | 2 +- ...ing-now-that-we-aren-t-displaying-it.patch | 2 +- ...t-indentation-for-the-term-help-text.patch | 2 +- 0095-Indent-menu-entries.patch | 2 +- 0096-Fix-margins.patch | 2 +- ...-1-for-our-right-hand-margin-so-line.patch | 2 +- ...-Use-linux16-when-appropriate-880840.patch | 2 +- 0099-Enable-pager-by-default.-985860.patch | 2 +- ...-on-serial-so-don-t-tell-the-user-to.patch | 2 +- ...n-t-say-GNU-Linux-in-generated-menus.patch | 2 +- ...-Don-t-draw-a-border-around-the-menu.patch | 2 +- ...andard-margin-for-the-timeout-string.patch | 2 +- ...rame-to-list-of-relocations-stripped.patch | 2 +- ...rk-with-our-changes-for-linux16-and-.patch | 2 +- ...on-t-print-during-fdt-loading-method.patch | 2 +- ...spaces-when-we-re-doing-our-cmdline-.patch | 2 +- ...password-to-boot-entries-generated-b.patch | 2 +- 0109-Don-t-emit-Booting-.-message.patch | 2 +- ...f-man-pages-with-slightly-nicer-ones.patch | 2 +- ...ix-when-fallback-searching-for-grub-.patch | 2 +- ...-before-grub.cfg-on-tftp-config-file.patch | 2 +- ...ert-function-to-support-NVMe-devices.patch | 2 +- ...M-Mustang-device-tree-for-hardware-t.patch | 2 +- ...device-tree-from-the-grub-default-fi.patch | 2 +- ...P-protocol-for-exclusive-use-by-grub.patch | 2 +- ...P-protocol-for-exclusive-use-by-grub.patch | 2 +- 0118-Add-grub_util_readlink.patch | 2 +- ...se-symlinks-including-those-across-d.patch | 2 +- ...CLASS-in-10_linux-from-etc-os-releas.patch | 2 +- ...t-ordering-for-.debug-and-rescue-ker.patch | 2 +- 0122-Load-arm-with-SB-enabled.patch | 2 +- 0123-Try-prefix-if-fw_path-doesn-t-work.patch | 2 +- ...-grub.cfg-netboot-selection-order-11.patch | 2 +- ...-Package-Sort-for-grub2-mkconfig-112.patch | 2 +- 0126-Handle-rssd-storage-devices.patch | 2 +- ...x16-initrd16-and-linuxefi-initrdefi-.patch | 2 +- ...fig-construct-titles-that-look-like-.patch | 2 +- ...ly-grub2-password-config-tool-985962.patch | 2 +- ...fig-construct-titles-that-look-like-.patch | 2 +- ...-configure.ac-and-grub-rpm-sort-play.patch | 2 +- 0132-tcp-add-window-scaling-support.patch | 2 +- ...net-retransmit-if-our-device-is-busy.patch | 2 +- ...out-actually-using-the-configured-ne.patch | 2 +- ...r-for-the-first-exclusive-reopen-of-.patch | 2 +- ...ue-when-reading-username-and-passwor.patch | 2 +- ...ub-password-will-not-be-read-1290803.patch | 2 +- ...ub-setpassword-documentation-1290799.patch | 2 +- ...le-issue-in-grub-setpassword-1294243.patch | 2 +- ...rsistent-RAM-and-unknown-possible-fu.patch | 2 +- 0141-efiemu-Fix-compilation-failure.patch | 2 +- ...P-protocol-for-exclusive-use-by-grub.patch | 2 +- 0143-Add-a-url-parser.patch | 2 +- ...net-and-bootp-add-support-for-dhcpv6.patch | 2 +- ...rnel-settings-and-use-it-in-10_linux.patch | 2 +- 0146-Normalize-slashes-in-tftp-paths.patch | 2 +- 0147-Fix-malformed-tftp-packets.patch | 2 +- 0148-Fix-race-in-EFI-validation.patch | 2 +- ...1374141-fix-incorrect-mask-for-ppc64.patch | 2 +- ...art-of-chainloader-target-if-present.patch | 2 +- ...ecureboot-support-on-efi-chainloader.patch | 2 +- ...loaders-that-link-in-efi-mode-honor-.patch | 2 +- 0153-Make-grub_fatal-also-backtrace.patch | 2 +- 0154-Rework-linux-command.patch | 2 +- 0155-Rework-linux16-command.patch | 2 +- 0156-Make-grub-editenv-build-again.patch | 2 +- ...ix-up-some-man-pages-rpmdiff-noticed.patch | 2 +- ...-work-some-intricacies-of-PE-loading.patch | 2 +- ...-of-efi-chainload-so-non-sb-cases-wo.patch | 2 +- ...-double-free-on-verification-failure.patch | 2 +- ...machine-type-test-in-30_os-prober.in.patch | 2 +- ...fix-wrong-sanity-check-in-relocate_c.patch | 2 +- ...truncate-overlong-relocation-section.patch | 2 +- 0164-linuxefi-minor-cleanups.patch | 2 +- ...rch-64-on-32-boot-in-linuxefi-loader.patch | 2 +- 0166-Fix-up-linux-params-usage.patch | 2 +- 0167-Make-exit-take-a-return-code.patch | 2 +- ...fdt-has-address-cells-and-size-cells.patch | 2 +- ...rintf-in-the-secure-boot-verify-code.patch | 2 +- ...fo-pages-say-grub2-where-appropriate.patch | 2 +- ...more-debug-info-in-our-module-loader.patch | 2 +- ...-chainloader-entries-don-t-try-any-x.patch | 2 +- ...-Add-ability-to-boot-from-subvolumes.patch | 2 +- ...port-btrfs_subvol-and-btrfs_subvolid.patch | 2 +- 0175-grub2-btrfs-03-follow_default.patch | 2 +- 0176-grub2-btrfs-04-grub2-install.patch | 2 +- 0177-grub2-btrfs-05-grub2-mkconfig.patch | 2 +- 0178-grub2-btrfs-06-subvol-mount.patch | 2 +- ...ootable-Snapshot-submenu-in-grub.cfg.patch | 2 +- ...subvol-name-scheme-to-support-old-sn.patch | 2 +- ...-correctly-with-btrfs-snapshots-bsc-.patch | 2 +- ...ocate_pool-and-grub_efi_free_pool-wr.patch | 2 +- ...fi_.-memory-helpers-where-reasonable.patch | 2 +- 0184-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch | 2 +- ...c-sized-arrays-since-we-don-t-build-.patch | 2 +- 0186-don-t-ignore-const.patch | 2 +- 0187-don-t-use-int-for-efi-status.patch | 2 +- ...INIT-declare-its-function-prototypes.patch | 2 +- ...p-some-errors-in-the-linuxefi-loader.patch | 2 +- 0190-editenv-handle-relative-symlinks.patch | 2 +- ...e-libgrub.pp-depend-on-config-util.h.patch | 2 +- ...-efi-as-HFS-on-ppc-machines-in-grub-.patch | 2 +- ...20_linux_xen.in-Add-xen_boot-command.patch | 2 +- ...-figure-out-whether-multiboot2-shoul.patch | 2 +- ...d-xen-or-multiboot-2-modules-as-need.patch | 2 +- ...lt-tsc-calibration-method-to-pmtimer.patch | 2 +- ...-calibration-not-take-51-seconds-to-.patch | 2 +- 0198-align-struct-efi_variable-better.patch | 2 +- 0199-Add-quicksort-implementation.patch | 2 +- ...nd-support-to-parse-BootLoaderSpec-c.patch | 2 +- 0201-Add-BLS-support-to-grub-mkconfig.patch | 2 +- ...d-grub_exit-definition-for-grub-emu-.patch | 2 +- ...-backtrace-on-grub_abort-for-grub-em.patch | 2 +- ...-blscfg-command-for-the-emu-platform.patch | 2 +- ...nux-and-initrd-commands-for-grub-emu.patch | 2 +- 0206-Fix-the-efidir-in-grub-setpassword.patch | 2 +- 0207-Add-grub2-switch-to-blscfg.patch | 2 +- 0208-Add-grub_debug_enabled.patch | 2 +- 0209-make-better-backtraces.patch | 2 +- ...w-our-startup-message-if-debug-is-se.patch | 2 +- ...-some-minor-include-path-weirdnesses.patch | 2 +- ...it-possible-to-enabled-build-id-sha1.patch | 2 +- ...f-grub_dprintf-without-the-file-line.patch | 2 +- ...dprintf-that-tells-us-load-addresses.patch | 2 +- ...scan-different-BLS-directories-on-EF.patch | 2 +- 0216-Core-TPM-support.patch | 2 +- 0217-Measure-kernel-initrd.patch | 2 +- 0218-Add-BIOS-boot-measurement.patch | 2 +- ...re-kernel-and-initrd-on-BIOS-systems.patch | 2 +- 0220-Measure-the-kernel-commandline.patch | 2 +- 0221-Measure-commands.patch | 2 +- ...Measure-multiboot-images-and-modules.patch | 2 +- 0223-Fix-boot-when-there-s-no-TPM.patch | 2 +- 0224-Rework-TPM-measurements.patch | 2 +- 0225-Fix-event-log-prefix.patch | 2 +- ...ot-menu-entry-as-default-when-using-.patch | 2 +- ...-when-compiling-for-platforms-other-.patch | 2 +- 0228-Make-TPM-errors-less-fatal.patch | 2 +- ...cfg-handle-multiple-initramfs-images.patch | 2 +- ...switch-to-blscfg-on-non-EFI-machines.patch | 2 +- ...LS-Use-etcdefaultgrub-instead-of-etc.patch | 2 +- ...ons-to-grub2-switch-to-blscfg-man-pa.patch | 2 +- ...h-to-blscfg-to-generate-debug-BLS-wh.patch | 2 +- ...h-to-blscfg-to-generate-BLS-fragment.patch | 2 +- ...query-dev-mounted-in-boot-efi-as-boo.patch | 2 +- ...ath-when-searching-kernels-images-if.patch | 2 +- ...field-to-compare-entries-if-id-field.patch | 2 +- ...d-to-BLS-generated-by-grub2-switch-t.patch | 2 +- 0239-Fixup-for-newer-compiler.patch | 2 +- ...-export-the-start-and-_start-symbols.patch | 2 +- ...plify-BLS-entry-key-val-pairs-lookup.patch | 2 +- ...h-to-the-kernel-and-initrds-BLS-fiel.patch | 2 +- ...p-leading-spaces-on-BLS-field-values.patch | 2 +- 0244-Fixup-for-newer-compiler.patch | 2 +- ..._log_extend_event-function-prototype.patch | 2 +- 0246-TPM-Fix-compiler-warnings.patch | 2 +- ...lscfg.in-get-rid-of-a-bunch-of-bashi.patch | 2 +- ...lscfg.in-Better-boot-prefix-checking.patch | 2 +- ...entries-as-BLS-directory-path-also-o.patch | 2 +- ...-filename-as-menu-entry-id-and-for-c.patch | 2 +- ...witch-to-blscfg-boot-prefix-handling.patch | 61 +++++++++++++++++++ grub.patches | 1 + grub2.spec | 5 +- 253 files changed, 316 insertions(+), 251 deletions(-) create mode 100644 0251-Fix-grub-switch-to-blscfg-boot-prefix-handling.patch diff --git a/0001-Bump-version-to-2.03.patch b/0001-Bump-version-to-2.03.patch index 44adff42..c1e2e6a3 100644 --- a/0001-Bump-version-to-2.03.patch +++ b/0001-Bump-version-to-2.03.patch @@ -1,7 +1,7 @@ From b0bad6fd9449d3333fe1ab58953c0e6c1ce12c0d Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Wed, 3 May 2017 11:55:52 +0200 -Subject: [PATCH 001/250] Bump version to 2.03 +Subject: [PATCH 001/251] Bump version to 2.03 --- configure.ac | 2 +- diff --git a/0002-Remove-bashisms-from-tests.patch b/0002-Remove-bashisms-from-tests.patch index 95f7656f..4f98446f 100644 --- a/0002-Remove-bashisms-from-tests.patch +++ b/0002-Remove-bashisms-from-tests.patch @@ -1,7 +1,7 @@ From 5a0c548ba388b343b0bb6d2a38888e7eac5bbb96 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 03:47:13 +0300 -Subject: [PATCH 002/250] Remove bashisms from tests. +Subject: [PATCH 002/251] Remove bashisms from tests. Those tests don't actually need bash. Just use common shebang. --- diff --git a/0003-fs-tester-make-sh-compatible.patch b/0003-fs-tester-make-sh-compatible.patch index 960002f5..95d7454d 100644 --- a/0003-fs-tester-make-sh-compatible.patch +++ b/0003-fs-tester-make-sh-compatible.patch @@ -1,7 +1,7 @@ From 37865c2c4ad26cd5e947b08abf1fde8145699919 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 14:35:59 +0300 -Subject: [PATCH 003/250] fs-tester: make sh-compatible +Subject: [PATCH 003/251] fs-tester: make sh-compatible --- tests/util/grub-fs-tester.in | 306 ++++++++++++++++++++++++------------------- diff --git a/0004-support-busybox-date.patch b/0004-support-busybox-date.patch index 204b187c..1f5b0660 100644 --- a/0004-support-busybox-date.patch +++ b/0004-support-busybox-date.patch @@ -1,7 +1,7 @@ From b43b8cacc813c2c15347de1e35cc88d9aa912d22 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 14:31:36 +0300 -Subject: [PATCH 004/250] support busybox date. +Subject: [PATCH 004/251] support busybox date. Busybox date doesn't understand weekdays in -d input, so strip them beforehand. diff --git a/0005-Don-t-retrieve-fstime-when-it-s-not-useful.patch b/0005-Don-t-retrieve-fstime-when-it-s-not-useful.patch index 44561f93..87d29e77 100644 --- a/0005-Don-t-retrieve-fstime-when-it-s-not-useful.patch +++ b/0005-Don-t-retrieve-fstime-when-it-s-not-useful.patch @@ -1,7 +1,7 @@ From 6dec3a26b37e128ded5d912e08abc5cee1592499 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 21:24:05 +0300 -Subject: [PATCH 005/250] Don't retrieve fstime when it's not useful. +Subject: [PATCH 005/251] Don't retrieve fstime when it's not useful. --- tests/util/grub-fs-tester.in | 48 ++++++++++++++++++++++---------------------- diff --git a/0006-Support-lseek64.patch b/0006-Support-lseek64.patch index 832ccb5f..88cd9dd8 100644 --- a/0006-Support-lseek64.patch +++ b/0006-Support-lseek64.patch @@ -1,7 +1,7 @@ From 608bec51128008afb81c9e3f297283e9f830a146 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 20:21:05 +0300 -Subject: [PATCH 006/250] Support lseek64. +Subject: [PATCH 006/251] Support lseek64. Android doesn't have 64-bit off_t, so use off64_t instead. --- diff --git a/0007-Use-SHELL-rather-than-bin-sh.patch b/0007-Use-SHELL-rather-than-bin-sh.patch index f32a377d..1c2bd35d 100644 --- a/0007-Use-SHELL-rather-than-bin-sh.patch +++ b/0007-Use-SHELL-rather-than-bin-sh.patch @@ -1,7 +1,7 @@ From c2ea443446b7feea868e54f94a87781f69820375 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 00:55:30 +0300 -Subject: [PATCH 007/250] Use $(SHELL) rather than /bin/sh. +Subject: [PATCH 007/251] Use $(SHELL) rather than /bin/sh. /bin/sh doesn't exist under termux. --- diff --git a/0008-po-Use-SHELL-rather-than-bin-sh.patch b/0008-po-Use-SHELL-rather-than-bin-sh.patch index 5d63a429..e80eedcf 100644 --- a/0008-po-Use-SHELL-rather-than-bin-sh.patch +++ b/0008-po-Use-SHELL-rather-than-bin-sh.patch @@ -1,7 +1,7 @@ From 4341f82af0b61d3dfbe675670d4105dc759c0df3 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 14:54:03 +0300 -Subject: [PATCH 008/250] po: Use @SHELL@ rather than /bin/sh. +Subject: [PATCH 008/251] po: Use @SHELL@ rather than /bin/sh. /bin/sh might not exist. --- diff --git a/0009-Add-termux-path-to-dict.patch b/0009-Add-termux-path-to-dict.patch index 285c0f18..31fcd464 100644 --- a/0009-Add-termux-path-to-dict.patch +++ b/0009-Add-termux-path-to-dict.patch @@ -1,7 +1,7 @@ From 1073ddb12078f3c8edbdb74bb8f5afc674983f40 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 14:52:48 +0300 -Subject: [PATCH 009/250] Add termux path to dict. +Subject: [PATCH 009/251] Add termux path to dict. --- tests/util/grub-fs-tester.in | 2 +- diff --git a/0010-Fix-shebang-for-termux.patch b/0010-Fix-shebang-for-termux.patch index 572969f6..af95cf6a 100644 --- a/0010-Fix-shebang-for-termux.patch +++ b/0010-Fix-shebang-for-termux.patch @@ -1,7 +1,7 @@ From a827807a1330d5ad619faa103bc7f12d89fc8bee Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Sun, 22 Jan 2017 20:22:34 +0300 -Subject: [PATCH 010/250] Fix shebang for termux. +Subject: [PATCH 010/251] Fix shebang for termux. Termux doesn't have a /bin/sh. So we needto use $SHELL. Keep /bin/sh as much as possible. diff --git a/0011-Add-strtoull-test.patch b/0011-Add-strtoull-test.patch index ffab7627..c2dca89f 100644 --- a/0011-Add-strtoull-test.patch +++ b/0011-Add-strtoull-test.patch @@ -1,7 +1,7 @@ From ede6c9689395499f98a4c14d76b97151b4de5f54 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Wed, 3 May 2017 12:58:15 +0200 -Subject: [PATCH 011/250] Add strtoull test. +Subject: [PATCH 011/251] Add strtoull test. --- grub-core/Makefile.core.def | 5 +++++ diff --git a/0012-strtoull-Fix-behaviour-on-chars-between-9-and-a.patch b/0012-strtoull-Fix-behaviour-on-chars-between-9-and-a.patch index 91d97c94..48bc8cb6 100644 --- a/0012-strtoull-Fix-behaviour-on-chars-between-9-and-a.patch +++ b/0012-strtoull-Fix-behaviour-on-chars-between-9-and-a.patch @@ -1,7 +1,7 @@ From dc6e1b5af83eb1c4290baf97c2d221c0865127be Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Wed, 10 Aug 2016 17:49:42 +0200 -Subject: [PATCH 012/250] strtoull: Fix behaviour on chars between '9' and 'a'. +Subject: [PATCH 012/251] strtoull: Fix behaviour on chars between '9' and 'a'. Reported by: Aaron Miller --- diff --git a/0013-Add-Virtual-LAN-support.patch b/0013-Add-Virtual-LAN-support.patch index 4f3dafe8..01853326 100644 --- a/0013-Add-Virtual-LAN-support.patch +++ b/0013-Add-Virtual-LAN-support.patch @@ -1,7 +1,7 @@ From d9f7de0ae3c0c09cff7257c55418450261f3e082 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Mon, 23 Dec 2013 12:32:02 -0200 -Subject: [PATCH 013/250] Add Virtual LAN support. +Subject: [PATCH 013/251] Add Virtual LAN support. This patch adds support for virtual LAN (VLAN) tagging. VLAN tagging allows multiple VLANs in a bridged network to share the same physical network link diff --git a/0014-mkimage-Pass-layout-to-mkimage_generate_elfXX-rather.patch b/0014-mkimage-Pass-layout-to-mkimage_generate_elfXX-rather.patch index f8f65675..033f9a96 100644 --- a/0014-mkimage-Pass-layout-to-mkimage_generate_elfXX-rather.patch +++ b/0014-mkimage-Pass-layout-to-mkimage_generate_elfXX-rather.patch @@ -1,7 +1,7 @@ From a35ac854308b0af7c86c2c7b199f6abdfa2110b0 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 17:32:15 +0200 -Subject: [PATCH 014/250] mkimage: Pass layout to mkimage_generate_elfXX rather +Subject: [PATCH 014/251] mkimage: Pass layout to mkimage_generate_elfXX rather than some fields. This allows easier extension of this function without having too long of diff --git a/0015-Refactor-arm-uboot-code-to-make-it-genereic.patch b/0015-Refactor-arm-uboot-code-to-make-it-genereic.patch index 045a3475..39cc04d9 100644 --- a/0015-Refactor-arm-uboot-code-to-make-it-genereic.patch +++ b/0015-Refactor-arm-uboot-code-to-make-it-genereic.patch @@ -1,7 +1,7 @@ From d08c9685149e7788001ac9a209baa1d84c3628e0 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 17:47:57 +0200 -Subject: [PATCH 015/250] Refactor arm-uboot code to make it genereic. +Subject: [PATCH 015/251] Refactor arm-uboot code to make it genereic. arm-coreboot startup code can be very similar to arm-uboot but current code has U-Boot specific references. So split U-Boot part from generic part. diff --git a/0016-coreboot-Split-parts-that-are-platform-independent.patch b/0016-coreboot-Split-parts-that-are-platform-independent.patch index 43b6adf4..86d06295 100644 --- a/0016-coreboot-Split-parts-that-are-platform-independent.patch +++ b/0016-coreboot-Split-parts-that-are-platform-independent.patch @@ -1,7 +1,7 @@ From 461bfab7b7e47fd0a76bf6076a438af1b7e2184a Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 19:06:22 +0200 -Subject: [PATCH 016/250] coreboot: Split parts that are platform-independent. +Subject: [PATCH 016/251] coreboot: Split parts that are platform-independent. We currently assume that coreboot is always i386, it's no longer the case, so split i386-coreboot parts from generic coreboot code. diff --git a/0017-Rename-uboot-halt.c-to-dummy-halt.c.patch b/0017-Rename-uboot-halt.c-to-dummy-halt.c.patch index af420cd9..3dbe6dea 100644 --- a/0017-Rename-uboot-halt.c-to-dummy-halt.c.patch +++ b/0017-Rename-uboot-halt.c-to-dummy-halt.c.patch @@ -1,7 +1,7 @@ From 1daa716c7017f1858de117a20a31da66815435c5 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 19:31:55 +0200 -Subject: [PATCH 017/250] Rename uboot/halt.c to dummy/halt.c. +Subject: [PATCH 017/251] Rename uboot/halt.c to dummy/halt.c. It's not U-Boot specific and it's a stub. --- diff --git a/0018-Rename-uboot-datetime-to-dummy-datetime.patch b/0018-Rename-uboot-datetime-to-dummy-datetime.patch index e9b07111..0f6eddeb 100644 --- a/0018-Rename-uboot-datetime-to-dummy-datetime.patch +++ b/0018-Rename-uboot-datetime-to-dummy-datetime.patch @@ -1,7 +1,7 @@ From 9808c3ef956c6472a96790b60cf74f4eaa742010 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 19:37:29 +0200 -Subject: [PATCH 018/250] Rename uboot/datetime to dummy/datetime. +Subject: [PATCH 018/251] Rename uboot/datetime to dummy/datetime. It's just a stub and is not UBoot-specific. --- diff --git a/0019-arm-coreboot-Start-new-port.patch b/0019-arm-coreboot-Start-new-port.patch index 787e6d02..df60774e 100644 --- a/0019-arm-coreboot-Start-new-port.patch +++ b/0019-arm-coreboot-Start-new-port.patch @@ -1,7 +1,7 @@ From 24e37a885269bdec9b27babf1da0bba3692d55c0 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 20:53:28 +0200 -Subject: [PATCH 019/250] arm-coreboot: Start new port. +Subject: [PATCH 019/251] arm-coreboot: Start new port. --- configure.ac | 2 + diff --git a/0020-Add-support-for-device-tree-based-drivers.patch b/0020-Add-support-for-device-tree-based-drivers.patch index 4891525b..7562079c 100644 --- a/0020-Add-support-for-device-tree-based-drivers.patch +++ b/0020-Add-support-for-device-tree-based-drivers.patch @@ -1,7 +1,7 @@ From fcbb723d4b1f7ad4687191562621dd0eb25f4d9e Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:19:59 +0200 -Subject: [PATCH 020/250] Add support for device-tree-based drivers. +Subject: [PATCH 020/251] Add support for device-tree-based drivers. --- grub-core/Makefile.core.def | 2 + diff --git a/0021-arm-coreboot-Support-for-vexpress-timer.patch b/0021-arm-coreboot-Support-for-vexpress-timer.patch index cec1c15b..ff270d4d 100644 --- a/0021-arm-coreboot-Support-for-vexpress-timer.patch +++ b/0021-arm-coreboot-Support-for-vexpress-timer.patch @@ -1,7 +1,7 @@ From 5a865b37866ee8cd64c080bc6fb1e537f8e2b3c6 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:26:36 +0200 -Subject: [PATCH 021/250] arm-coreboot: Support for vexpress timer. +Subject: [PATCH 021/251] arm-coreboot: Support for vexpress timer. --- grub-core/kern/arm/coreboot/timer.c | 36 ++++++++++++++++++++++++++++++++++++ diff --git a/0022-arm-coreboot-Export-FDT-routines.patch b/0022-arm-coreboot-Export-FDT-routines.patch index 533dfa98..852d4642 100644 --- a/0022-arm-coreboot-Export-FDT-routines.patch +++ b/0022-arm-coreboot-Export-FDT-routines.patch @@ -1,7 +1,7 @@ From ac6b41b89fbb82a3ba843a7ed19115d81432b604 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:29:48 +0200 -Subject: [PATCH 022/250] arm-coreboot: Export FDT routines. +Subject: [PATCH 022/251] arm-coreboot: Export FDT routines. We need to use them from modules as well. --- diff --git a/0023-at_keyboard-Split-protocol-from-controller-code.patch b/0023-at_keyboard-Split-protocol-from-controller-code.patch index 535a982c..a436dbd7 100644 --- a/0023-at_keyboard-Split-protocol-from-controller-code.patch +++ b/0023-at_keyboard-Split-protocol-from-controller-code.patch @@ -1,7 +1,7 @@ From 216950a4eea1a1ead1c28eaca94e34ea2ef2ad19 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:41:22 +0200 -Subject: [PATCH 023/250] at_keyboard: Split protocol from controller code. +Subject: [PATCH 023/251] at_keyboard: Split protocol from controller code. On vexpress controller is different but protocol is the same, so reuse the code. diff --git a/0024-arm_coreboot-Support-keyboard-for-vexpress.patch b/0024-arm_coreboot-Support-keyboard-for-vexpress.patch index 1ab52303..d308b8c4 100644 --- a/0024-arm_coreboot-Support-keyboard-for-vexpress.patch +++ b/0024-arm_coreboot-Support-keyboard-for-vexpress.patch @@ -1,7 +1,7 @@ From 848bed9d92cf20e9f25db4c69a20efad23996ca0 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:42:37 +0200 -Subject: [PATCH 024/250] arm_coreboot: Support keyboard for vexpress. +Subject: [PATCH 024/251] arm_coreboot: Support keyboard for vexpress. --- grub-core/Makefile.core.def | 3 + diff --git a/0025-arm_coreboot-Support-grub-mkstandalone.patch b/0025-arm_coreboot-Support-grub-mkstandalone.patch index b7dd6c9d..36af3e03 100644 --- a/0025-arm_coreboot-Support-grub-mkstandalone.patch +++ b/0025-arm_coreboot-Support-grub-mkstandalone.patch @@ -1,7 +1,7 @@ From 3edabad8fefb112cc4b2d43be6e97d43c909ceee Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:59:48 +0200 -Subject: [PATCH 025/250] arm_coreboot: Support grub-mkstandalone. +Subject: [PATCH 025/251] arm_coreboot: Support grub-mkstandalone. --- util/grub-install-common.c | 12 ++++++++++-- diff --git a/0026-arm_coreboot-Support-loading-linux-images.patch b/0026-arm_coreboot-Support-loading-linux-images.patch index 36a5e218..0b2331d8 100644 --- a/0026-arm_coreboot-Support-loading-linux-images.patch +++ b/0026-arm_coreboot-Support-loading-linux-images.patch @@ -1,7 +1,7 @@ From 656c3b0d7fbe23f0e1ab561c8faa4ac4a37364d1 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 22:00:06 +0200 -Subject: [PATCH 026/250] arm_coreboot: Support loading linux images. +Subject: [PATCH 026/251] arm_coreboot: Support loading linux images. --- grub-core/loader/arm/linux.c | 132 ++++++++++++++++++++++--------------------- diff --git a/0027-arm_coreboot-Support-DMA.patch b/0027-arm_coreboot-Support-DMA.patch index 8c948ecc..e8103b93 100644 --- a/0027-arm_coreboot-Support-DMA.patch +++ b/0027-arm_coreboot-Support-DMA.patch @@ -1,7 +1,7 @@ From 265292f2b0da0eb414c409871ba0f94a99ec33c1 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 22:06:04 +0200 -Subject: [PATCH 027/250] arm_coreboot: Support DMA. +Subject: [PATCH 027/251] arm_coreboot: Support DMA. This is needed to support USB and some other busses. --- diff --git a/0028-ehci-Split-core-code-from-PCI-part.patch b/0028-ehci-Split-core-code-from-PCI-part.patch index 37f72aba..894af529 100644 --- a/0028-ehci-Split-core-code-from-PCI-part.patch +++ b/0028-ehci-Split-core-code-from-PCI-part.patch @@ -1,7 +1,7 @@ From 058df7b5a9cc7aaa9872eaa916b715544a8f9840 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 22:10:26 +0200 -Subject: [PATCH 028/250] ehci: Split core code from PCI part. +Subject: [PATCH 028/251] ehci: Split core code from PCI part. On ARM often EHCI is present without PCI and just declared in device tree. So splitcore from PCI part. diff --git a/0029-arm_coreboot-Support-EHCI.patch b/0029-arm_coreboot-Support-EHCI.patch index a4321bbe..68df484b 100644 --- a/0029-arm_coreboot-Support-EHCI.patch +++ b/0029-arm_coreboot-Support-EHCI.patch @@ -1,7 +1,7 @@ From d11ced1e1fb93676942e51618eb53c140f541890 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 22:14:28 +0200 -Subject: [PATCH 029/250] arm_coreboot: Support EHCI. +Subject: [PATCH 029/251] arm_coreboot: Support EHCI. --- grub-core/Makefile.core.def | 2 ++ diff --git a/0030-Fix-bug-on-FDT-nodes-with-compatible-property.patch b/0030-Fix-bug-on-FDT-nodes-with-compatible-property.patch index 59ca0e8b..8f3f7d2d 100644 --- a/0030-Fix-bug-on-FDT-nodes-with-compatible-property.patch +++ b/0030-Fix-bug-on-FDT-nodes-with-compatible-property.patch @@ -1,7 +1,7 @@ From 4f8471532d454b2db96434c28bf7105ed69e0f4d Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 08:39:40 +0200 -Subject: [PATCH 030/250] Fix bug on FDT nodes with compatible property +Subject: [PATCH 030/251] Fix bug on FDT nodes with compatible property --- grub-core/bus/fdt.c | 2 ++ diff --git a/0031-fdtbus-Add-ability-to-send-receive-messages-on-paren.patch b/0031-fdtbus-Add-ability-to-send-receive-messages-on-paren.patch index 8e0a875b..df5869ba 100644 --- a/0031-fdtbus-Add-ability-to-send-receive-messages-on-paren.patch +++ b/0031-fdtbus-Add-ability-to-send-receive-messages-on-paren.patch @@ -1,7 +1,7 @@ From c4313c812dc14e82a774b580b5e34d40e7f3fae6 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 08:40:29 +0200 -Subject: [PATCH 031/250] fdtbus: Add ability to send/receive messages on +Subject: [PATCH 031/251] fdtbus: Add ability to send/receive messages on parent busses. --- diff --git a/0032-rk3288_spi-Add-SPI-driver.patch b/0032-rk3288_spi-Add-SPI-driver.patch index d6a0298b..870012ac 100644 --- a/0032-rk3288_spi-Add-SPI-driver.patch +++ b/0032-rk3288_spi-Add-SPI-driver.patch @@ -1,7 +1,7 @@ From b0b1b81a11f8bae8ab9e8edd87ac3f4f7949d03b Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 08:42:14 +0200 -Subject: [PATCH 032/250] rk3288_spi: Add SPI driver +Subject: [PATCH 032/251] rk3288_spi: Add SPI driver --- grub-core/Makefile.core.def | 1 + diff --git a/0033-arm_coreboot-Add-Chromebook-keyboard-driver.patch b/0033-arm_coreboot-Add-Chromebook-keyboard-driver.patch index eb28c342..4eb37d27 100644 --- a/0033-arm_coreboot-Add-Chromebook-keyboard-driver.patch +++ b/0033-arm_coreboot-Add-Chromebook-keyboard-driver.patch @@ -1,7 +1,7 @@ From 5c3fd1b135bd73c8e3467b9b635b25ca4d360a19 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 08:47:34 +0200 -Subject: [PATCH 033/250] arm_coreboot: Add Chromebook keyboard driver. +Subject: [PATCH 033/251] arm_coreboot: Add Chromebook keyboard driver. --- grub-core/term/arm/cros.c | 125 +++++++++++++++++++++++ diff --git a/0034-Missing-parts-of-previous-commit.patch b/0034-Missing-parts-of-previous-commit.patch index 34ba6494..863db81d 100644 --- a/0034-Missing-parts-of-previous-commit.patch +++ b/0034-Missing-parts-of-previous-commit.patch @@ -1,7 +1,7 @@ From c6eaa982d12e3cfc5465dda5ea372774188b6b81 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 09:02:15 +0200 -Subject: [PATCH 034/250] Missing parts of previous commit +Subject: [PATCH 034/251] Missing parts of previous commit --- grub-core/Makefile.core.def | 2 ++ diff --git a/0035-coreboot-Changed-cbmemc-to-support-updated-console-f.patch b/0035-coreboot-Changed-cbmemc-to-support-updated-console-f.patch index d5d9cc89..b90b3458 100644 --- a/0035-coreboot-Changed-cbmemc-to-support-updated-console-f.patch +++ b/0035-coreboot-Changed-cbmemc-to-support-updated-console-f.patch @@ -1,7 +1,7 @@ From 70b555a52a065b2beb91e6fc97a6b358c931b303 Mon Sep 17 00:00:00 2001 From: Julius Werner Date: Tue, 9 May 2017 09:03:02 +0200 -Subject: [PATCH 035/250] coreboot: Changed cbmemc to support updated console +Subject: [PATCH 035/251] coreboot: Changed cbmemc to support updated console format from coreboot. --- diff --git a/0036-at_keyboard-Fix-falco-chromebook-case.patch b/0036-at_keyboard-Fix-falco-chromebook-case.patch index c2817093..a67754bf 100644 --- a/0036-at_keyboard-Fix-falco-chromebook-case.patch +++ b/0036-at_keyboard-Fix-falco-chromebook-case.patch @@ -1,7 +1,7 @@ From c4b8bec5fee4e30a165fd14a188cf3ab8eccd095 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 14:27:52 +0200 -Subject: [PATCH 036/250] at_keyboard: Fix falco chromebook case. +Subject: [PATCH 036/251] at_keyboard: Fix falco chromebook case. EC is slow, so we need few delays for it to toggle the bits correctly. diff --git a/0037-sparc64-Close-cdboot-ihandle.patch b/0037-sparc64-Close-cdboot-ihandle.patch index da2ef5ed..0180709e 100644 --- a/0037-sparc64-Close-cdboot-ihandle.patch +++ b/0037-sparc64-Close-cdboot-ihandle.patch @@ -1,7 +1,7 @@ From bd4e40aadded7093908d786d03b4acf60b7b1707 Mon Sep 17 00:00:00 2001 From: Eric Snowberg Date: Thu, 11 May 2017 18:42:23 -0700 -Subject: [PATCH 037/250] sparc64: Close cdboot ihandle +Subject: [PATCH 037/251] sparc64: Close cdboot ihandle The ihandle is left open with a cd-core image. This will cause a delay booting grub from a virtual cdrom in a LDOM. It will also cause problems diff --git a/0038-arm64-xen_boot-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch b/0038-arm64-xen_boot-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch index b67d0032..c920d877 100644 --- a/0038-arm64-xen_boot-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch +++ b/0038-arm64-xen_boot-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch @@ -1,7 +1,7 @@ From ae5817f1dcbf0b99f7a849f56afe442165317840 Mon Sep 17 00:00:00 2001 From: Julien Grall Date: Fri, 19 Feb 2016 16:28:52 +0000 -Subject: [PATCH 038/250] arm64/xen_boot: Fix Xen boot using GRUB2 on AARCH64 +Subject: [PATCH 038/251] arm64/xen_boot: Fix Xen boot using GRUB2 on AARCH64 Xen is currently crashing because of malformed compatible property for the boot module. This is because the property string is not diff --git a/0039-arm64-Add-nounzip-option-support-in-xen_module-comma.patch b/0039-arm64-Add-nounzip-option-support-in-xen_module-comma.patch index 73ae4188..77d81f67 100644 --- a/0039-arm64-Add-nounzip-option-support-in-xen_module-comma.patch +++ b/0039-arm64-Add-nounzip-option-support-in-xen_module-comma.patch @@ -1,7 +1,7 @@ From 8eed7be8a61c295df700e918744a984162378ca9 Mon Sep 17 00:00:00 2001 From: Fu Wei Date: Sun, 14 May 2017 15:43:45 +0800 -Subject: [PATCH 039/250] arm64: Add "--nounzip" option support in xen_module +Subject: [PATCH 039/251] arm64: Add "--nounzip" option support in xen_module command This patch adds "--nounzip" option support in order to diff --git a/0040-util-grub.d-20_linux_xen.in-Add-xen_boot-command-sup.patch b/0040-util-grub.d-20_linux_xen.in-Add-xen_boot-command-sup.patch index 52a5818c..2dedb9a1 100644 --- a/0040-util-grub.d-20_linux_xen.in-Add-xen_boot-command-sup.patch +++ b/0040-util-grub.d-20_linux_xen.in-Add-xen_boot-command-sup.patch @@ -1,7 +1,7 @@ From d33045ce7ffcb7c1e4a60c14d5ca64b36e3c5abe Mon Sep 17 00:00:00 2001 From: Fu Wei Date: Sun, 14 May 2017 15:43:46 +0800 -Subject: [PATCH 040/250] util/grub.d/20_linux_xen.in: Add xen_boot command +Subject: [PATCH 040/251] util/grub.d/20_linux_xen.in: Add xen_boot command support for aarch64 This patch adds the support of xen_boot command for aarch64: diff --git a/0041-arm64-Update-the-introduction-of-Xen-boot-commands-i.patch b/0041-arm64-Update-the-introduction-of-Xen-boot-commands-i.patch index fdc3919c..7227d6f2 100644 --- a/0041-arm64-Update-the-introduction-of-Xen-boot-commands-i.patch +++ b/0041-arm64-Update-the-introduction-of-Xen-boot-commands-i.patch @@ -1,7 +1,7 @@ From 26c2f306fd425d2c0348023b8dcb7eb40a01851a Mon Sep 17 00:00:00 2001 From: Fu Wei Date: Sun, 14 May 2017 15:43:47 +0800 -Subject: [PATCH 041/250] arm64: Update the introduction of Xen boot commands +Subject: [PATCH 041/251] arm64: Update the introduction of Xen boot commands in docs/grub.texi delete: xen_linux, xen_initrd, xen_xsm diff --git a/0042-sparc64-Don-t-use-devspec-to-determine-the-OBP-path.patch b/0042-sparc64-Don-t-use-devspec-to-determine-the-OBP-path.patch index 5be7f2af..107c68c4 100644 --- a/0042-sparc64-Don-t-use-devspec-to-determine-the-OBP-path.patch +++ b/0042-sparc64-Don-t-use-devspec-to-determine-the-OBP-path.patch @@ -1,7 +1,7 @@ From f8679cedff703b437171f4708d46adbfcff80a65 Mon Sep 17 00:00:00 2001 From: Eric Snowberg Date: Thu, 18 May 2017 17:10:22 -0600 -Subject: [PATCH 042/250] sparc64: Don't use devspec to determine the OBP path +Subject: [PATCH 042/251] sparc64: Don't use devspec to determine the OBP path Don't use devspec to determine the OBP path on SPARC hardware. Within all versions of Linux on SPARC, the devspec returns one of three values: diff --git a/0043-Allow-GRUB-to-mount-ext2-3-4-filesystems-that-have-t.patch b/0043-Allow-GRUB-to-mount-ext2-3-4-filesystems-that-have-t.patch index 63a05e47..d59f8000 100644 --- a/0043-Allow-GRUB-to-mount-ext2-3-4-filesystems-that-have-t.patch +++ b/0043-Allow-GRUB-to-mount-ext2-3-4-filesystems-that-have-t.patch @@ -1,7 +1,7 @@ From 734668238fcc0ef691a080839e04f33854fa133a Mon Sep 17 00:00:00 2001 From: Eric Biggers Date: Thu, 29 Jun 2017 13:27:49 +0000 -Subject: [PATCH 043/250] Allow GRUB to mount ext2/3/4 filesystems that have +Subject: [PATCH 043/251] Allow GRUB to mount ext2/3/4 filesystems that have the encryption feature. On such a filesystem, inodes may have EXT4_ENCRYPT_FLAG set. diff --git a/0044-ehci-Fix-compilation-for-amd64.patch b/0044-ehci-Fix-compilation-for-amd64.patch index fd451b37..76c9fbbb 100644 --- a/0044-ehci-Fix-compilation-for-amd64.patch +++ b/0044-ehci-Fix-compilation-for-amd64.patch @@ -1,7 +1,7 @@ From edb37fb30bbc8a3b6bec67911c7200e4eb071127 Mon Sep 17 00:00:00 2001 From: phcoder Date: Sun, 9 Jul 2017 20:58:31 +0200 -Subject: [PATCH 044/250] ehci: Fix compilation for amd64 +Subject: [PATCH 044/251] ehci: Fix compilation for amd64 --- grub-core/bus/usb/ehci.c | 8 ++++---- diff --git a/0045-cache-Fix-compilation-for-ppc-sparc-and-arm64.patch b/0045-cache-Fix-compilation-for-ppc-sparc-and-arm64.patch index 1f8a43e3..0f8b6138 100644 --- a/0045-cache-Fix-compilation-for-ppc-sparc-and-arm64.patch +++ b/0045-cache-Fix-compilation-for-ppc-sparc-and-arm64.patch @@ -1,7 +1,7 @@ From d8901e3ba115d705c9c08ecedd201aca8b4867b8 Mon Sep 17 00:00:00 2001 From: phcoder Date: Sun, 9 Jul 2017 20:59:15 +0200 -Subject: [PATCH 045/250] cache: Fix compilation for ppc, sparc and arm64 +Subject: [PATCH 045/251] cache: Fix compilation for ppc, sparc and arm64 --- include/grub/cache.h | 4 +++- diff --git a/0046-ehci-Fix-compilation-on-i386.patch b/0046-ehci-Fix-compilation-on-i386.patch index 1a4bfd7e..ccbf67f5 100644 --- a/0046-ehci-Fix-compilation-on-i386.patch +++ b/0046-ehci-Fix-compilation-on-i386.patch @@ -1,7 +1,7 @@ From 284afab081ef7ed7db2c59151853aa3c92d988f2 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Sun, 9 Jul 2017 21:31:19 +0200 -Subject: [PATCH 046/250] ehci: Fix compilation on i386 +Subject: [PATCH 046/251] ehci: Fix compilation on i386 --- grub-core/bus/usb/ehci.c | 4 ++-- diff --git a/0047-crypto-Fix-use-after-free.patch b/0047-crypto-Fix-use-after-free.patch index 1746816d..153d3b08 100644 --- a/0047-crypto-Fix-use-after-free.patch +++ b/0047-crypto-Fix-use-after-free.patch @@ -1,7 +1,7 @@ From a0fe0c26aa8a1c0ad66d9527611bd726b849c623 Mon Sep 17 00:00:00 2001 From: AppChecker Date: Sun, 9 Jul 2017 21:57:35 +0200 -Subject: [PATCH 047/250] crypto: Fix use after free. +Subject: [PATCH 047/251] crypto: Fix use after free. Reported by: AppChecker Transformed to patch by: Satish Govindarajan diff --git a/0048-arm-efi-Fix-compilation.patch b/0048-arm-efi-Fix-compilation.patch index 8b8df065..b5f888d9 100644 --- a/0048-arm-efi-Fix-compilation.patch +++ b/0048-arm-efi-Fix-compilation.patch @@ -1,7 +1,7 @@ From cb8b7e4e36bf32dccbbba8252aa44ad3ada4fbc1 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Sun, 9 Jul 2017 21:48:37 +0000 -Subject: [PATCH 048/250] arm-efi: Fix compilation +Subject: [PATCH 048/251] arm-efi: Fix compilation --- grub-core/loader/arm/linux.c | 8 ++++---- diff --git a/0049-fdt-silence-clang-warning.patch b/0049-fdt-silence-clang-warning.patch index ed379cfd..2e8780fd 100644 --- a/0049-fdt-silence-clang-warning.patch +++ b/0049-fdt-silence-clang-warning.patch @@ -1,7 +1,7 @@ From 68d54b55f49249c5e0517bf189f0f3df7ee6a36f Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 10 Jul 2017 01:34:22 +0000 -Subject: [PATCH 049/250] fdt: silence clang warning. +Subject: [PATCH 049/251] fdt: silence clang warning. --- grub-core/lib/fdt.c | 3 ++- diff --git a/0050-Fix-a-segfault-in-lsefi.patch b/0050-Fix-a-segfault-in-lsefi.patch index e9a2b564..d2820b5b 100644 --- a/0050-Fix-a-segfault-in-lsefi.patch +++ b/0050-Fix-a-segfault-in-lsefi.patch @@ -1,7 +1,7 @@ From e8ab5a1a9e2889eb59d1fa494ba441a53698dcd2 Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Wed, 19 Jul 2017 15:47:41 -0400 -Subject: [PATCH 050/250] Fix a segfault in lsefi +Subject: [PATCH 050/251] Fix a segfault in lsefi when protocols_per_handle returns error, we can't use the pointers we passed to it, and that includes trusting num_protocols. diff --git a/0051-zfs-remove-size_t-typedef-and-use-grub_size_t-instea.patch b/0051-zfs-remove-size_t-typedef-and-use-grub_size_t-instea.patch index 9a4d46e9..58f173a8 100644 --- a/0051-zfs-remove-size_t-typedef-and-use-grub_size_t-instea.patch +++ b/0051-zfs-remove-size_t-typedef-and-use-grub_size_t-instea.patch @@ -1,7 +1,7 @@ From fa42786264cef98c56e972b3bb6b8448000e1c70 Mon Sep 17 00:00:00 2001 From: Pete Batard Date: Thu, 3 Aug 2017 15:46:15 +0100 -Subject: [PATCH 051/250] zfs: remove size_t typedef and use grub_size_t +Subject: [PATCH 051/251] zfs: remove size_t typedef and use grub_size_t instead * Prevents some toolchains from issuing a warning on size_t redef. diff --git a/0052-udf-Fix-reading-label-lvd.ident-is-dstring.patch b/0052-udf-Fix-reading-label-lvd.ident-is-dstring.patch index 90331e3f..dfa5b346 100644 --- a/0052-udf-Fix-reading-label-lvd.ident-is-dstring.patch +++ b/0052-udf-Fix-reading-label-lvd.ident-is-dstring.patch @@ -1,7 +1,7 @@ From 76188809d5ca40c5285b0ab202b5edea7be3f04d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pali=20Roh=C3=A1r?= Date: Thu, 22 Jun 2017 14:33:17 +0200 -Subject: [PATCH 052/250] udf: Fix reading label, lvd.ident is dstring +Subject: [PATCH 052/251] udf: Fix reading label, lvd.ident is dstring UDF dstring has stored length in the last byte of buffer. Therefore last byte is not part of recorded characters. And empty string in dstring is diff --git a/0053-grub-core-fs-udf.c-Add-support-for-UUID.patch b/0053-grub-core-fs-udf.c-Add-support-for-UUID.patch index 8bf57e87..e67333e3 100644 --- a/0053-grub-core-fs-udf.c-Add-support-for-UUID.patch +++ b/0053-grub-core-fs-udf.c-Add-support-for-UUID.patch @@ -1,7 +1,7 @@ From 435fa75e01ef40917239c7f775e505e86f70d202 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pali=20Roh=C3=A1r?= Date: Thu, 22 Jun 2017 14:42:16 +0200 -Subject: [PATCH 053/250] * grub-core/fs/udf.c: Add support for UUID +Subject: [PATCH 053/251] * grub-core/fs/udf.c: Add support for UUID Use same algorithm as in libblkid from util-linux v2.30. diff --git a/0054-mkrescue-Check-xorriso-presence-before-doing-anythin.patch b/0054-mkrescue-Check-xorriso-presence-before-doing-anythin.patch index 30c22514..3c319094 100644 --- a/0054-mkrescue-Check-xorriso-presence-before-doing-anythin.patch +++ b/0054-mkrescue-Check-xorriso-presence-before-doing-anythin.patch @@ -1,7 +1,7 @@ From 9e962fd3c42081e2eef1f99a0eaab38fd04d2620 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 7 Aug 2017 18:05:17 +0200 -Subject: [PATCH 054/250] mkrescue: Check xorriso presence before doing +Subject: [PATCH 054/251] mkrescue: Check xorriso presence before doing anything else. mkrescue can't do anything useful without xorriso, so abort early if it's diff --git a/0055-Fail-if-xorriso-failed.patch b/0055-Fail-if-xorriso-failed.patch index f98b070e..0c028b86 100644 --- a/0055-Fail-if-xorriso-failed.patch +++ b/0055-Fail-if-xorriso-failed.patch @@ -1,7 +1,7 @@ From e66dc5d71ebfc9763420a76c274e6980d54641c3 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 7 Aug 2017 18:08:39 +0200 -Subject: [PATCH 055/250] Fail if xorriso failed. +Subject: [PATCH 055/251] Fail if xorriso failed. If xorriso failed most likely we didn't generate a meaningful image. --- diff --git a/0056-efi-refactor-grub_efi_allocate_pages.patch b/0056-efi-refactor-grub_efi_allocate_pages.patch index 85bb3057..9cad6380 100644 --- a/0056-efi-refactor-grub_efi_allocate_pages.patch +++ b/0056-efi-refactor-grub_efi_allocate_pages.patch @@ -1,7 +1,7 @@ From dd5fde2df83c5c03b7ba04d2cc5b7be96de8da7b Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:23 +0100 -Subject: [PATCH 056/250] efi: refactor grub_efi_allocate_pages +Subject: [PATCH 056/251] efi: refactor grub_efi_allocate_pages Expose a new function, grub_efi_allocate_pages_real(), making it possible to specify allocation type and memory type as supported by the UEFI diff --git a/0057-Remove-grub_efi_allocate_pages.patch b/0057-Remove-grub_efi_allocate_pages.patch index 3f130087..5c315783 100644 --- a/0057-Remove-grub_efi_allocate_pages.patch +++ b/0057-Remove-grub_efi_allocate_pages.patch @@ -1,7 +1,7 @@ From 4bc909bf89f5b4ff86c9e4e609d4fe0c11a66b0c Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 7 Aug 2017 18:33:29 +0200 -Subject: [PATCH 057/250] Remove grub_efi_allocate_pages. +Subject: [PATCH 057/251] Remove grub_efi_allocate_pages. grub_efi_allocate_pages Essentially does 2 unrelated things: * Allocate at fixed address. diff --git a/0058-efi-move-fdt-helper-library.patch b/0058-efi-move-fdt-helper-library.patch index d5965eeb..b24a3971 100644 --- a/0058-efi-move-fdt-helper-library.patch +++ b/0058-efi-move-fdt-helper-library.patch @@ -1,7 +1,7 @@ From 8c9465fac901caac6802d6872a1374518b001517 Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:24 +0100 -Subject: [PATCH 058/250] efi: move fdt helper library +Subject: [PATCH 058/251] efi: move fdt helper library There is nothing ARM64 (or even ARM) specific about the efi fdt helper library, which is used for locating or overriding a firmware-provided diff --git a/0059-efi-Add-GRUB_PE32_MAGIC-definition.patch b/0059-efi-Add-GRUB_PE32_MAGIC-definition.patch index df5562c0..99208fea 100644 --- a/0059-efi-Add-GRUB_PE32_MAGIC-definition.patch +++ b/0059-efi-Add-GRUB_PE32_MAGIC-definition.patch @@ -1,7 +1,7 @@ From c5841ba7f0d14c193f20854e7e55b4f7ce9207d5 Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:25 +0100 -Subject: [PATCH 059/250] efi: Add GRUB_PE32_MAGIC definition +Subject: [PATCH 059/251] efi: Add GRUB_PE32_MAGIC definition Add a generic GRUB_PE32_MAGIC definition for the PE 'MZ' tag and delete the existing one in arm64/linux.h. diff --git a/0060-arm64-linux-loader-improve-type-portability.patch b/0060-arm64-linux-loader-improve-type-portability.patch index 0d499233..669210da 100644 --- a/0060-arm64-linux-loader-improve-type-portability.patch +++ b/0060-arm64-linux-loader-improve-type-portability.patch @@ -1,7 +1,7 @@ From 91212e0aa07e704a61e4540c18a27f149f5e51c3 Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:26 +0100 -Subject: [PATCH 060/250] arm64 linux loader: improve type portability +Subject: [PATCH 060/251] arm64 linux loader: improve type portability In preparation for turning this into a common loader for 32-bit and 64-bit platforms, ensure the code will compile cleanly for either. diff --git a/0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch b/0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch index 01d2d8f8..22549499 100644 --- a/0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch +++ b/0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch @@ -1,7 +1,7 @@ From f826330683675f0deb55b58fd229afd7d65fb053 Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:32 +0100 -Subject: [PATCH 061/250] efi: change heap allocation type to +Subject: [PATCH 061/251] efi: change heap allocation type to GRUB_EFI_LOADER_CODE With upcoming changes to EDK2, allocations of type EFI_LOADER_DATA may diff --git a/0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch b/0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch index 13997612..f4ed974a 100644 --- a/0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch +++ b/0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch @@ -1,7 +1,7 @@ From bdd89d239cd9b4089630bfb5ec862aab8086dca2 Mon Sep 17 00:00:00 2001 From: Pete Batard Date: Mon, 7 Aug 2017 16:20:30 +0100 -Subject: [PATCH 062/250] core: use GRUB_TERM_ definitions when handling term +Subject: [PATCH 062/251] core: use GRUB_TERM_ definitions when handling term characters * Also use hex value for GRUB_TERM_ESC as '\e' is not in the C standard and is not understood by some compilers diff --git a/0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch b/0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch index 90de89d0..a4ba158d 100644 --- a/0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch +++ b/0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch @@ -1,7 +1,7 @@ From 1deebd85ef87cc581e995ce0a51dc0802ac9c367 Mon Sep 17 00:00:00 2001 From: Pete Batard Date: Mon, 7 Aug 2017 16:23:12 +0100 -Subject: [PATCH 063/250] io: add a GRUB_GZ prefix to gzio specific defines +Subject: [PATCH 063/251] io: add a GRUB_GZ prefix to gzio specific defines * This is done to avoid a conflict with a PACKED define in the EDK2 --- diff --git a/0064-re-write-.gitignore.patch b/0064-re-write-.gitignore.patch index 8f89cec9..ffb98b12 100644 --- a/0064-re-write-.gitignore.patch +++ b/0064-re-write-.gitignore.patch @@ -1,7 +1,7 @@ From 38bfcd3054c28aa40234840c12d900f1d18a217d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 8 Aug 2017 12:48:04 -0400 -Subject: [PATCH 064/250] re-write .gitignore +Subject: [PATCH 064/251] re-write .gitignore --- .gitignore | 352 ++++++++++++-------------------------- diff --git a/0065-IBM-client-architecture-CAS-reboot-support.patch b/0065-IBM-client-architecture-CAS-reboot-support.patch index 0035eca9..5370509d 100644 --- a/0065-IBM-client-architecture-CAS-reboot-support.patch +++ b/0065-IBM-client-architecture-CAS-reboot-support.patch @@ -1,7 +1,7 @@ From bf1fd830091fff49e26f39027e0db8fd4b688624 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Thu, 20 Sep 2012 18:07:39 -0300 -Subject: [PATCH 065/250] IBM client architecture (CAS) reboot support +Subject: [PATCH 065/251] IBM client architecture (CAS) reboot support This is an implementation of IBM client architecture (CAS) reboot for GRUB. diff --git a/0066-for-ppc-reset-console-display-attr-when-clear-screen.patch b/0066-for-ppc-reset-console-display-attr-when-clear-screen.patch index c97d2f38..57c8eb46 100644 --- a/0066-for-ppc-reset-console-display-attr-when-clear-screen.patch +++ b/0066-for-ppc-reset-console-display-attr-when-clear-screen.patch @@ -1,7 +1,7 @@ From 8b30fab3c07a9fc8549e404c411b747b960c57b2 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Wed, 24 Apr 2013 10:51:48 -0300 -Subject: [PATCH 066/250] for ppc, reset console display attr when clear screen +Subject: [PATCH 066/251] for ppc, reset console display attr when clear screen v2: Also use \x0c instead of a literal ^L to make future patches less awkward. diff --git a/0067-Disable-GRUB-video-support-for-IBM-power-machines.patch b/0067-Disable-GRUB-video-support-for-IBM-power-machines.patch index c4374ca1..8903065a 100644 --- a/0067-Disable-GRUB-video-support-for-IBM-power-machines.patch +++ b/0067-Disable-GRUB-video-support-for-IBM-power-machines.patch @@ -1,7 +1,7 @@ From 45322cbc9402639a431fc0f33bd76e387e6f02bf Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 11 Jun 2013 15:14:05 -0300 -Subject: [PATCH 067/250] Disable GRUB video support for IBM power machines +Subject: [PATCH 067/251] Disable GRUB video support for IBM power machines Should fix the problem in bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=973205 diff --git a/0068-Honor-a-symlink-when-generating-configuration-by-gru.patch b/0068-Honor-a-symlink-when-generating-configuration-by-gru.patch index 93fb9633..3c593ead 100644 --- a/0068-Honor-a-symlink-when-generating-configuration-by-gru.patch +++ b/0068-Honor-a-symlink-when-generating-configuration-by-gru.patch @@ -1,7 +1,7 @@ From c29e260c9f41f4f802fa852b6c46fb2e5d912cb6 Mon Sep 17 00:00:00 2001 From: Marcel Kolaja Date: Tue, 21 Jan 2014 10:57:08 -0500 -Subject: [PATCH 068/250] Honor a symlink when generating configuration by +Subject: [PATCH 068/251] Honor a symlink when generating configuration by grub2-mkconfig Honor a symlink when generating configuration by grub2-mkconfig, so that diff --git a/0069-Move-bash-completion-script-922997.patch b/0069-Move-bash-completion-script-922997.patch index cea2b76c..6f00ead3 100644 --- a/0069-Move-bash-completion-script-922997.patch +++ b/0069-Move-bash-completion-script-922997.patch @@ -1,7 +1,7 @@ From 8eaf2f497a6bcffc5554509533940ac2b764b981 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 3 Apr 2013 14:35:34 -0400 -Subject: [PATCH 069/250] Move bash completion script (#922997) +Subject: [PATCH 069/251] Move bash completion script (#922997) Apparently these go in a new place now. --- diff --git a/0070-Update-to-minilzo-2.08.patch b/0070-Update-to-minilzo-2.08.patch index 777b6dae..417b8169 100644 --- a/0070-Update-to-minilzo-2.08.patch +++ b/0070-Update-to-minilzo-2.08.patch @@ -1,7 +1,7 @@ From 9a1e99c5628bafa9e3970a5317b721da704bec6a Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Dec 2014 15:36:09 -0500 -Subject: [PATCH 070/250] Update to minilzo-2.08 +Subject: [PATCH 070/251] Update to minilzo-2.08 This fixes CVE-2014-4607 - lzo: lzo1x_decompress_safe() integer overflow diff --git a/0071-Allow-fallback-to-include-entries-by-title-not-just-.patch b/0071-Allow-fallback-to-include-entries-by-title-not-just-.patch index 9a33766c..95bd714f 100644 --- a/0071-Allow-fallback-to-include-entries-by-title-not-just-.patch +++ b/0071-Allow-fallback-to-include-entries-by-title-not-just-.patch @@ -1,7 +1,7 @@ From 27845fb323de35e9dcaad8c738eb1a2a2bc316f8 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 5 Sep 2014 10:07:04 -0400 -Subject: [PATCH 071/250] Allow "fallback" to include entries by title, not +Subject: [PATCH 071/251] Allow "fallback" to include entries by title, not just number. Resolves: rhbz#1026084 diff --git a/0072-Add-GRUB_DISABLE_UUID.patch b/0072-Add-GRUB_DISABLE_UUID.patch index 24e9a7fd..777a51f4 100644 --- a/0072-Add-GRUB_DISABLE_UUID.patch +++ b/0072-Add-GRUB_DISABLE_UUID.patch @@ -1,7 +1,7 @@ From 7f7429e93fa791ac2c002beaafab9b9d9bd86b89 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Sep 2014 16:49:25 -0400 -Subject: [PATCH 072/250] Add GRUB_DISABLE_UUID. +Subject: [PATCH 072/251] Add GRUB_DISABLE_UUID. This will cause "search --fs-uuid --set=root ..." not to be generated by grub2-mkconfig, and instead simply attempt to use the grub device name diff --git a/0073-Make-exit-take-a-return-code.patch b/0073-Make-exit-take-a-return-code.patch index 235d9f37..bb40a4fd 100644 --- a/0073-Make-exit-take-a-return-code.patch +++ b/0073-Make-exit-take-a-return-code.patch @@ -1,7 +1,7 @@ From 384ccb1b44fc23514a59529f58f984dcc4a75cc9 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 26 Feb 2014 21:49:12 -0500 -Subject: [PATCH 073/250] Make "exit" take a return code. +Subject: [PATCH 073/251] Make "exit" take a return code. This adds "exit" with a return code. With this patch, any "exit" command /may/ include a return code, and on platforms that support diff --git a/0074-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch b/0074-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch index 840e9980..87b9d2f8 100644 --- a/0074-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch +++ b/0074-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch @@ -1,7 +1,7 @@ From 939f3dfcfacde13bd7ebfe411c0dceee9e5ed0ae Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 22 Jul 2015 11:21:01 -0400 -Subject: [PATCH 074/250] Mark po/exclude.pot as binary so git won't try to +Subject: [PATCH 074/251] Mark po/exclude.pot as binary so git won't try to diff nonprintables. Signed-off-by: Peter Jones diff --git a/0075-Make-efi-machines-load-an-env-block-from-a-variable.patch b/0075-Make-efi-machines-load-an-env-block-from-a-variable.patch index 8c8e69a9..8d1ebd0b 100644 --- a/0075-Make-efi-machines-load-an-env-block-from-a-variable.patch +++ b/0075-Make-efi-machines-load-an-env-block-from-a-variable.patch @@ -1,7 +1,7 @@ From 805220eb48a8cabcc83628d90aa40f3204b21a71 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 7 Dec 2015 14:20:49 -0500 -Subject: [PATCH 075/250] Make efi machines load an env block from a variable +Subject: [PATCH 075/251] Make efi machines load an env block from a variable Signed-off-by: Peter Jones --- diff --git a/0076-DHCP-client-ID-and-UUID-options-added.patch b/0076-DHCP-client-ID-and-UUID-options-added.patch index fa5e8d78..cc86fc09 100644 --- a/0076-DHCP-client-ID-and-UUID-options-added.patch +++ b/0076-DHCP-client-ID-and-UUID-options-added.patch @@ -1,7 +1,7 @@ From cefc164d655fb7709efbc37a317952ff3ec4aeb3 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 27 Nov 2012 17:18:53 -0200 -Subject: [PATCH 076/250] DHCP client ID and UUID options added. +Subject: [PATCH 076/251] DHCP client ID and UUID options added. --- grub-core/net/bootp.c | 87 ++++++++++++++++++++++++++++++++++++++++++++++----- diff --git a/0077-trim-arp-packets-with-abnormal-size.patch b/0077-trim-arp-packets-with-abnormal-size.patch index a45579b9..de50f066 100644 --- a/0077-trim-arp-packets-with-abnormal-size.patch +++ b/0077-trim-arp-packets-with-abnormal-size.patch @@ -1,7 +1,7 @@ From 571a6cce3b0d4c8abf11efc320e2de6ff9188d60 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Wed, 5 Feb 2014 09:42:42 -0200 -Subject: [PATCH 077/250] trim arp packets with abnormal size +Subject: [PATCH 077/251] trim arp packets with abnormal size GRUB uses arp request to create the arp response. If the incoming packet is foobared, GRUB needs to trim the arp response packet before sending it. diff --git a/0078-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch b/0078-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch index 5dc45ec8..fa5b8d18 100644 --- a/0078-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch +++ b/0078-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch @@ -1,7 +1,7 @@ From 6cd959a64f588e256f0ba17e31bf2720b9cdec88 Mon Sep 17 00:00:00 2001 From: Prarit Bhargava Date: Wed, 12 Mar 2014 10:58:16 -0400 -Subject: [PATCH 078/250] Fix bad test on GRUB_DISABLE_SUBMENU. +Subject: [PATCH 078/251] Fix bad test on GRUB_DISABLE_SUBMENU. The file /etc/grub.d/10_linux does diff --git a/0079-Add-support-for-UEFI-operating-systems-returned-by-o.patch b/0079-Add-support-for-UEFI-operating-systems-returned-by-o.patch index b7b321de..d7f7e0d7 100644 --- a/0079-Add-support-for-UEFI-operating-systems-returned-by-o.patch +++ b/0079-Add-support-for-UEFI-operating-systems-returned-by-o.patch @@ -1,7 +1,7 @@ From 0254265409f80b369c35fb474c7371feb6f9ae1d Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Wed, 12 Jun 2013 11:51:49 -0400 -Subject: [PATCH 079/250] Add support for UEFI operating systems returned by +Subject: [PATCH 079/251] Add support for UEFI operating systems returned by os-prober os-prober returns UEFI operating systems in the form: diff --git a/0080-Migrate-PPC-from-Yaboot-to-Grub2.patch b/0080-Migrate-PPC-from-Yaboot-to-Grub2.patch index 109a669d..6ada1585 100644 --- a/0080-Migrate-PPC-from-Yaboot-to-Grub2.patch +++ b/0080-Migrate-PPC-from-Yaboot-to-Grub2.patch @@ -1,7 +1,7 @@ From f2b4c105e3657cc32ed0f7aefa713f161cdf64f1 Mon Sep 17 00:00:00 2001 From: Mark Hamzy Date: Wed, 28 Mar 2012 14:46:41 -0500 -Subject: [PATCH 080/250] Migrate PPC from Yaboot to Grub2 +Subject: [PATCH 080/251] Migrate PPC from Yaboot to Grub2 Add configuration support for serial terminal consoles. This will set the maximum screen size so that text is not overwritten. diff --git a/0081-Add-fw_path-variable-revised.patch b/0081-Add-fw_path-variable-revised.patch index dd88a1bf..7bb01efc 100644 --- a/0081-Add-fw_path-variable-revised.patch +++ b/0081-Add-fw_path-variable-revised.patch @@ -1,7 +1,7 @@ From 7f021a05a5ed7c97432abbc1762f40e36a4915e3 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Wed, 19 Sep 2012 21:22:55 -0300 -Subject: [PATCH 081/250] Add fw_path variable (revised) +Subject: [PATCH 081/251] Add fw_path variable (revised) This patch makes grub look for its config file on efi where the app was found. It was originally written by Matthew Garrett, and adapted to fix the diff --git a/0082-Add-support-for-linuxefi.patch b/0082-Add-support-for-linuxefi.patch index 180ff5fb..141516bc 100644 --- a/0082-Add-support-for-linuxefi.patch +++ b/0082-Add-support-for-linuxefi.patch @@ -1,7 +1,7 @@ From 778385965798ac2711f0d07d5cf521a6e999ca8b Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 10 Jul 2012 11:58:52 -0400 -Subject: [PATCH 082/250] Add support for linuxefi +Subject: [PATCH 082/251] Add support for linuxefi --- grub-core/Makefile.core.def | 8 + diff --git a/0083-Use-linuxefi-and-initrdefi-where-appropriate.patch b/0083-Use-linuxefi-and-initrdefi-where-appropriate.patch index 765bba75..b68cf243 100644 --- a/0083-Use-linuxefi-and-initrdefi-where-appropriate.patch +++ b/0083-Use-linuxefi-and-initrdefi-where-appropriate.patch @@ -1,7 +1,7 @@ From 793d4270384ef3373bc0b3c956cab8a8cdb75bcf Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 16 Jul 2012 18:57:11 -0400 -Subject: [PATCH 083/250] Use "linuxefi" and "initrdefi" where appropriate. +Subject: [PATCH 083/251] Use "linuxefi" and "initrdefi" where appropriate. --- util/grub.d/10_linux.in | 18 ++++++++++++++++-- diff --git a/0084-Don-t-allow-insmod-when-secure-boot-is-enabled.patch b/0084-Don-t-allow-insmod-when-secure-boot-is-enabled.patch index 9a1a4cf9..822e02ab 100644 --- a/0084-Don-t-allow-insmod-when-secure-boot-is-enabled.patch +++ b/0084-Don-t-allow-insmod-when-secure-boot-is-enabled.patch @@ -1,7 +1,7 @@ From eb8fd62e887e624f5c6e7c2ee8512981e8b5be97 Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Tue, 23 Oct 2012 10:40:49 -0400 -Subject: [PATCH 084/250] Don't allow insmod when secure boot is enabled. +Subject: [PATCH 084/251] Don't allow insmod when secure boot is enabled. Hi, diff --git a/0085-Pass-x-hex-hex-straight-through-unmolested.patch b/0085-Pass-x-hex-hex-straight-through-unmolested.patch index 78d8a60f..0c3db024 100644 --- a/0085-Pass-x-hex-hex-straight-through-unmolested.patch +++ b/0085-Pass-x-hex-hex-straight-through-unmolested.patch @@ -1,7 +1,7 @@ From 0d54ed89090fc1bdcb75de474024b2b81dbf644f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 1 Oct 2012 13:24:37 -0400 -Subject: [PATCH 085/250] Pass "\x[[:hex:]][[:hex:]]" straight through +Subject: [PATCH 085/251] Pass "\x[[:hex:]][[:hex:]]" straight through unmolested. --- diff --git a/0086-Add-X-option-to-printf-functions.patch b/0086-Add-X-option-to-printf-functions.patch index 8ea3454c..9d2782ae 100644 --- a/0086-Add-X-option-to-printf-functions.patch +++ b/0086-Add-X-option-to-printf-functions.patch @@ -1,7 +1,7 @@ From 6237b1688124d6a72250b296e758ef2d59fde26f Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 27 Nov 2012 16:58:39 -0200 -Subject: [PATCH 086/250] Add %X option to printf functions. +Subject: [PATCH 086/251] Add %X option to printf functions. --- grub-core/kern/misc.c | 7 +++++-- diff --git a/0087-Search-for-specific-config-file-for-netboot.patch b/0087-Search-for-specific-config-file-for-netboot.patch index 036cbc0d..9e649cf9 100644 --- a/0087-Search-for-specific-config-file-for-netboot.patch +++ b/0087-Search-for-specific-config-file-for-netboot.patch @@ -1,7 +1,7 @@ From 9491cbfdab951e38f096bd9705a76b382f54c9be Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 27 Nov 2012 17:22:07 -0200 -Subject: [PATCH 087/250] Search for specific config file for netboot +Subject: [PATCH 087/251] Search for specific config file for netboot This patch implements a search for a specific configuration when the config file is on a remoteserver. It uses the following order: diff --git a/0088-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch b/0088-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch index 13dd538a..876c91cd 100644 --- a/0088-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch +++ b/0088-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch @@ -1,7 +1,7 @@ From 5fcdebdc36cc84c772754b7f5bdb87aed2b42853 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Tue, 22 Jan 2013 06:31:38 +0100 -Subject: [PATCH 088/250] blscfg: add blscfg module to parse Boot Loader +Subject: [PATCH 088/251] blscfg: add blscfg module to parse Boot Loader Specification snippets http://www.freedesktop.org/wiki/Specifications/BootLoaderSpec diff --git a/0089-Don-t-write-messages-to-the-screen.patch b/0089-Don-t-write-messages-to-the-screen.patch index b87d9fc8..d2dbc09e 100644 --- a/0089-Don-t-write-messages-to-the-screen.patch +++ b/0089-Don-t-write-messages-to-the-screen.patch @@ -1,7 +1,7 @@ From fc390be631e93744c6a3a2f42849c9edf2614a36 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 13:30:20 -0400 -Subject: [PATCH 089/250] Don't write messages to the screen +Subject: [PATCH 089/251] Don't write messages to the screen Writing messages to the screen before the menus or boot splash happens so quickly it looks like something is wrong and isn't diff --git a/0090-Don-t-print-GNU-GRUB-header.patch b/0090-Don-t-print-GNU-GRUB-header.patch index 044940b5..d3042272 100644 --- a/0090-Don-t-print-GNU-GRUB-header.patch +++ b/0090-Don-t-print-GNU-GRUB-header.patch @@ -1,7 +1,7 @@ From 806c26ae73bc86e305c39c955d86480fad8985df Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 13:53:48 -0400 -Subject: [PATCH 090/250] Don't print GNU GRUB header +Subject: [PATCH 090/251] Don't print GNU GRUB header No one cares. --- diff --git a/0091-Don-t-add-to-highlighted-row.patch b/0091-Don-t-add-to-highlighted-row.patch index a1de9eba..b4aec29f 100644 --- a/0091-Don-t-add-to-highlighted-row.patch +++ b/0091-Don-t-add-to-highlighted-row.patch @@ -1,7 +1,7 @@ From 5ae2484f263365351a2891be6c056eeb96b3924b Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 17:49:45 -0400 -Subject: [PATCH 091/250] Don't add '*' to highlighted row +Subject: [PATCH 091/251] Don't add '*' to highlighted row It is already highlighted. --- diff --git a/0092-Message-string-cleanups.patch b/0092-Message-string-cleanups.patch index fda3c58b..6808548d 100644 --- a/0092-Message-string-cleanups.patch +++ b/0092-Message-string-cleanups.patch @@ -1,7 +1,7 @@ From 622b238ecb927d331dc38083584a7323013b5f21 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 11:09:04 -0400 -Subject: [PATCH 092/250] Message string cleanups +Subject: [PATCH 092/251] Message string cleanups Make use of terminology consistent. Remove jargon. --- diff --git a/0093-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch b/0093-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch index b36ccf5b..25650ead 100644 --- a/0093-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch +++ b/0093-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch @@ -1,7 +1,7 @@ From c7dac08ab344638afabf579e03bedfac729e1944 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:08:23 -0400 -Subject: [PATCH 093/250] Fix border spacing now that we aren't displaying it +Subject: [PATCH 093/251] Fix border spacing now that we aren't displaying it --- grub-core/normal/menu_text.c | 6 +++--- diff --git a/0094-Use-the-correct-indentation-for-the-term-help-text.patch b/0094-Use-the-correct-indentation-for-the-term-help-text.patch index 651a0728..21dd408a 100644 --- a/0094-Use-the-correct-indentation-for-the-term-help-text.patch +++ b/0094-Use-the-correct-indentation-for-the-term-help-text.patch @@ -1,7 +1,7 @@ From 8a59d6c44d946eac70ecbb7a9418c5d6801add8b Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:08:49 -0400 -Subject: [PATCH 094/250] Use the correct indentation for the term help text +Subject: [PATCH 094/251] Use the correct indentation for the term help text That is consistent with the menu help text --- diff --git a/0095-Indent-menu-entries.patch b/0095-Indent-menu-entries.patch index 2890266c..5c6fc0a6 100644 --- a/0095-Indent-menu-entries.patch +++ b/0095-Indent-menu-entries.patch @@ -1,7 +1,7 @@ From 018439ecfda2bc5049ccbfb0d6ab7fa047411a3b Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:30:55 -0400 -Subject: [PATCH 095/250] Indent menu entries +Subject: [PATCH 095/251] Indent menu entries --- grub-core/normal/menu_text.c | 3 ++- diff --git a/0096-Fix-margins.patch b/0096-Fix-margins.patch index 6e52d035..0940c646 100644 --- a/0096-Fix-margins.patch +++ b/0096-Fix-margins.patch @@ -1,7 +1,7 @@ From 33481aa0e7897465ffd386101d6f3eda6e3bbac0 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:59:36 -0400 -Subject: [PATCH 096/250] Fix margins +Subject: [PATCH 096/251] Fix margins --- grub-core/normal/menu_text.c | 8 +++----- diff --git a/0097-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch b/0097-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch index 2be490cd..4369caaf 100644 --- a/0097-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch +++ b/0097-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch @@ -1,7 +1,7 @@ From ea032bd4a6cb66929da61477b1759e136c975189 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 21 Jun 2013 14:44:08 -0400 -Subject: [PATCH 097/250] Use -2 instead of -1 for our right-hand margin, so +Subject: [PATCH 097/251] Use -2 instead of -1 for our right-hand margin, so linewrapping works (#976643). Signed-off-by: Peter Jones diff --git a/0098-Use-linux16-when-appropriate-880840.patch b/0098-Use-linux16-when-appropriate-880840.patch index 69e5213c..efc902da 100644 --- a/0098-Use-linux16-when-appropriate-880840.patch +++ b/0098-Use-linux16-when-appropriate-880840.patch @@ -1,7 +1,7 @@ From 8e1957d59e7e72850cbac7e779ddf22ca23c250d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 28 Oct 2013 10:05:07 -0400 -Subject: [PATCH 098/250] Use linux16 when appropriate (#880840) +Subject: [PATCH 098/251] Use linux16 when appropriate (#880840) The kernel group really would prefer that we use the 16 bit entry point on x86 bios machines. diff --git a/0099-Enable-pager-by-default.-985860.patch b/0099-Enable-pager-by-default.-985860.patch index 8b1f07c6..0b058250 100644 --- a/0099-Enable-pager-by-default.-985860.patch +++ b/0099-Enable-pager-by-default.-985860.patch @@ -1,7 +1,7 @@ From 7466f51a0012ebdd8be07cfc0e63d50e0e79560d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 28 Oct 2013 10:09:27 -0400 -Subject: [PATCH 099/250] Enable pager by default. (#985860) +Subject: [PATCH 099/251] Enable pager by default. (#985860) Signed-off-by: Peter Jones --- diff --git a/0100-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch b/0100-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch index ff876975..c133eccb 100644 --- a/0100-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch +++ b/0100-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch @@ -1,7 +1,7 @@ From 7a97d9621a145cbd04111970fea04c34433f900c Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 28 Oct 2013 10:13:27 -0400 -Subject: [PATCH 100/250] F10 doesn't work on serial, so don't tell the user to +Subject: [PATCH 100/251] F10 doesn't work on serial, so don't tell the user to hit it (#987443) Signed-off-by: Peter Jones diff --git a/0101-Don-t-say-GNU-Linux-in-generated-menus.patch b/0101-Don-t-say-GNU-Linux-in-generated-menus.patch index 3aa1d6bb..c6199fe9 100644 --- a/0101-Don-t-say-GNU-Linux-in-generated-menus.patch +++ b/0101-Don-t-say-GNU-Linux-in-generated-menus.patch @@ -1,7 +1,7 @@ From 45877a77f50eecd0b7fd3ba1aec0d4398a3b6a20 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 14 Mar 2011 14:27:42 -0400 -Subject: [PATCH 101/250] Don't say "GNU/Linux" in generated menus. +Subject: [PATCH 101/251] Don't say "GNU/Linux" in generated menus. --- util/grub.d/10_linux.in | 4 ++-- diff --git a/0102-Don-t-draw-a-border-around-the-menu.patch b/0102-Don-t-draw-a-border-around-the-menu.patch index dbfc1b03..a1076dcd 100644 --- a/0102-Don-t-draw-a-border-around-the-menu.patch +++ b/0102-Don-t-draw-a-border-around-the-menu.patch @@ -1,7 +1,7 @@ From c28a3053e96859000df5ff1d48c9a560d47c0470 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 16:47:33 -0400 -Subject: [PATCH 102/250] Don't draw a border around the menu +Subject: [PATCH 102/251] Don't draw a border around the menu It looks cleaner without it. --- diff --git a/0103-Use-the-standard-margin-for-the-timeout-string.patch b/0103-Use-the-standard-margin-for-the-timeout-string.patch index 0d37fbbc..7547fb55 100644 --- a/0103-Use-the-standard-margin-for-the-timeout-string.patch +++ b/0103-Use-the-standard-margin-for-the-timeout-string.patch @@ -1,7 +1,7 @@ From 93018f5d1727eb58dead129f150a36080c22530a Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 10:52:32 -0400 -Subject: [PATCH 103/250] Use the standard margin for the timeout string +Subject: [PATCH 103/251] Use the standard margin for the timeout string So that it aligns with the other messages --- diff --git a/0104-Add-.eh_frame-to-list-of-relocations-stripped.patch b/0104-Add-.eh_frame-to-list-of-relocations-stripped.patch index d0b95534..fc3a262f 100644 --- a/0104-Add-.eh_frame-to-list-of-relocations-stripped.patch +++ b/0104-Add-.eh_frame-to-list-of-relocations-stripped.patch @@ -1,7 +1,7 @@ From c626121f38adf6fcd39a5f69249c650b4b52c10d Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Mon, 13 Jan 2014 21:50:59 -0500 -Subject: [PATCH 104/250] Add .eh_frame to list of relocations stripped +Subject: [PATCH 104/251] Add .eh_frame to list of relocations stripped --- conf/Makefile.common | 2 +- diff --git a/0105-Make-10_linux-work-with-our-changes-for-linux16-and-.patch b/0105-Make-10_linux-work-with-our-changes-for-linux16-and-.patch index d6c7f6c7..b192d71b 100644 --- a/0105-Make-10_linux-work-with-our-changes-for-linux16-and-.patch +++ b/0105-Make-10_linux-work-with-our-changes-for-linux16-and-.patch @@ -1,7 +1,7 @@ From 59275c83e7a303c63379d37ba21aa39a3c3b7203 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jan 2014 13:12:23 -0500 -Subject: [PATCH 105/250] Make 10_linux work with our changes for linux16 and +Subject: [PATCH 105/251] Make 10_linux work with our changes for linux16 and linuxefi on aarch64 Signed-off-by: Peter Jones diff --git a/0106-Don-t-print-during-fdt-loading-method.patch b/0106-Don-t-print-during-fdt-loading-method.patch index 02a31e19..27093afa 100644 --- a/0106-Don-t-print-during-fdt-loading-method.patch +++ b/0106-Don-t-print-during-fdt-loading-method.patch @@ -1,7 +1,7 @@ From aedf2aceb354ab7bf28bbf70d0a4b505c0adcfdf Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jan 2014 16:15:46 -0500 -Subject: [PATCH 106/250] Don't print during fdt loading method. +Subject: [PATCH 106/251] Don't print during fdt loading method. Signed-off-by: Peter Jones --- diff --git a/0107-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch b/0107-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch index 57f27df7..c2e13b78 100644 --- a/0107-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch +++ b/0107-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch @@ -1,7 +1,7 @@ From f2790b1f7c8efcd5589c8fcdaca51b548ab9825c Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Mon, 30 Jun 2014 14:16:46 -0400 -Subject: [PATCH 107/250] Don't munge raw spaces when we're doing our cmdline +Subject: [PATCH 107/251] Don't munge raw spaces when we're doing our cmdline escaping (#923374) Signed-off-by: Peter Jones diff --git a/0108-Don-t-require-a-password-to-boot-entries-generated-b.patch b/0108-Don-t-require-a-password-to-boot-entries-generated-b.patch index 2e6d3d26..f316b74b 100644 --- a/0108-Don-t-require-a-password-to-boot-entries-generated-b.patch +++ b/0108-Don-t-require-a-password-to-boot-entries-generated-b.patch @@ -1,7 +1,7 @@ From 205a7844bea4d849dc24f24b5fc96f6040d5e2b9 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 11 Feb 2014 11:14:50 -0500 -Subject: [PATCH 108/250] Don't require a password to boot entries generated by +Subject: [PATCH 108/251] Don't require a password to boot entries generated by grub-mkconfig. When we set a password, we just want that to mean you can't /edit/ an entry. diff --git a/0109-Don-t-emit-Booting-.-message.patch b/0109-Don-t-emit-Booting-.-message.patch index dd403e3b..3c0a2181 100644 --- a/0109-Don-t-emit-Booting-.-message.patch +++ b/0109-Don-t-emit-Booting-.-message.patch @@ -1,7 +1,7 @@ From c986c38f790881be0b9c5b0acd8d3b106412a5f1 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 18 Feb 2014 09:37:49 -0500 -Subject: [PATCH 109/250] Don't emit "Booting ..." message. +Subject: [PATCH 109/251] Don't emit "Booting ..." message. UI team still hates this stuff, so we're disabling it for RHEL 7. diff --git a/0110-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch b/0110-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch index 22ffb7e3..599d4ded 100644 --- a/0110-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch +++ b/0110-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch @@ -1,7 +1,7 @@ From dcf3b9c590f00e33f773de68ac4ebd55ca4f6e90 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 4 Mar 2014 11:00:23 -0500 -Subject: [PATCH 110/250] Replace a lot of man pages with slightly nicer ones. +Subject: [PATCH 110/251] Replace a lot of man pages with slightly nicer ones. Replace a bunch of machine generated ones with ones that look nicer. --- diff --git a/0111-use-fw_path-prefix-when-fallback-searching-for-grub-.patch b/0111-use-fw_path-prefix-when-fallback-searching-for-grub-.patch index 20d3f282..14c21eb8 100644 --- a/0111-use-fw_path-prefix-when-fallback-searching-for-grub-.patch +++ b/0111-use-fw_path-prefix-when-fallback-searching-for-grub-.patch @@ -1,7 +1,7 @@ From 24865a88781aef2a6a54433b5b383219108f54fa Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Wed, 19 Feb 2014 15:58:43 -0500 -Subject: [PATCH 111/250] use fw_path prefix when fallback searching for grub +Subject: [PATCH 111/251] use fw_path prefix when fallback searching for grub config When PXE booting via UEFI firmware, grub was searching for grub.cfg diff --git a/0112-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch b/0112-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch index 7fa8a6e3..7b8179b3 100644 --- a/0112-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch +++ b/0112-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch @@ -1,7 +1,7 @@ From d4cd9aa8695ab9448da41f756553beb75bffee46 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 6 Mar 2014 11:51:33 -0500 -Subject: [PATCH 112/250] Try mac/guid/etc before grub.cfg on tftp config +Subject: [PATCH 112/251] Try mac/guid/etc before grub.cfg on tftp config files. Signed-off-by: Peter Jones diff --git a/0113-Fix-convert-function-to-support-NVMe-devices.patch b/0113-Fix-convert-function-to-support-NVMe-devices.patch index 099efa57..b5d4ca02 100644 --- a/0113-Fix-convert-function-to-support-NVMe-devices.patch +++ b/0113-Fix-convert-function-to-support-NVMe-devices.patch @@ -1,7 +1,7 @@ From 397f179c26aeddf3fe452c62aa404459889835fc Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 18 Feb 2014 11:34:00 -0500 -Subject: [PATCH 113/250] Fix convert function to support NVMe devices +Subject: [PATCH 113/251] Fix convert function to support NVMe devices This is adapted from the patch at https://bugzilla.redhat.com/show_bug.cgi?id=1019660 , which is against diff --git a/0114-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch b/0114-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch index cc1a418e..7d429cd9 100644 --- a/0114-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch +++ b/0114-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch @@ -1,7 +1,7 @@ From 4291f418c3304f0f379467e87ce5892853cc16c7 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Mon, 10 Feb 2014 16:13:10 -0500 -Subject: [PATCH 114/250] Switch to use APM Mustang device tree, for hardware +Subject: [PATCH 114/251] Switch to use APM Mustang device tree, for hardware testing. Signed-off-by: David A. Marlin diff --git a/0115-Use-the-default-device-tree-from-the-grub-default-fi.patch b/0115-Use-the-default-device-tree-from-the-grub-default-fi.patch index 9dc13751..259682eb 100644 --- a/0115-Use-the-default-device-tree-from-the-grub-default-fi.patch +++ b/0115-Use-the-default-device-tree-from-the-grub-default-fi.patch @@ -1,7 +1,7 @@ From 5111bdda0d0a21ab02f6c9aa441a32cd02c6bc3f Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Wed, 12 Feb 2014 14:54:04 -0500 -Subject: [PATCH 115/250] Use the default device tree from the grub default +Subject: [PATCH 115/251] Use the default device tree from the grub default file instead of hardcoding a value. diff --git a/0116-reopen-SNP-protocol-for-exclusive-use-by-grub.patch b/0116-reopen-SNP-protocol-for-exclusive-use-by-grub.patch index c01760f7..b1a395ab 100644 --- a/0116-reopen-SNP-protocol-for-exclusive-use-by-grub.patch +++ b/0116-reopen-SNP-protocol-for-exclusive-use-by-grub.patch @@ -1,7 +1,7 @@ From 0ff5bf3deefdb17dbadb51a11acc50b96e2ed797 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Sat, 15 Feb 2014 15:10:22 -0500 -Subject: [PATCH 116/250] reopen SNP protocol for exclusive use by grub +Subject: [PATCH 116/251] reopen SNP protocol for exclusive use by grub --- grub-core/net/drivers/efi/efinet.c | 16 ++++++++++++++++ diff --git a/0117-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch b/0117-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch index b8b3e502..0b39008f 100644 --- a/0117-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch +++ b/0117-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch @@ -1,7 +1,7 @@ From 58fba65b7e339d4c7279e4ca88937d9501275169 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 4 Mar 2016 15:13:59 -0500 -Subject: [PATCH 117/250] Revert "reopen SNP protocol for exclusive use by +Subject: [PATCH 117/251] Revert "reopen SNP protocol for exclusive use by grub" This reverts commit a3f2c756ce34c9666bddef35e3b3b85ccecdcffc , which is diff --git a/0118-Add-grub_util_readlink.patch b/0118-Add-grub_util_readlink.patch index b306103f..b37bf47d 100644 --- a/0118-Add-grub_util_readlink.patch +++ b/0118-Add-grub_util_readlink.patch @@ -1,7 +1,7 @@ From 76baa996f73eea47f7bdc41461efeee204626e2d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 3 Sep 2014 10:01:03 -0400 -Subject: [PATCH 118/250] Add grub_util_readlink() +Subject: [PATCH 118/251] Add grub_util_readlink() Add grub_util_readlink(). This requires pulling in stat and readlink from gnulib, which pulls in stat and related headers, but after that the diff --git a/0119-Make-editenv-chase-symlinks-including-those-across-d.patch b/0119-Make-editenv-chase-symlinks-including-those-across-d.patch index f7d72bb3..ebb3922c 100644 --- a/0119-Make-editenv-chase-symlinks-including-those-across-d.patch +++ b/0119-Make-editenv-chase-symlinks-including-those-across-d.patch @@ -1,7 +1,7 @@ From fd1a89c8bef603ec33937f122ae25013a724601a Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 3 Sep 2014 10:38:00 -0400 -Subject: [PATCH 119/250] Make editenv chase symlinks including those across +Subject: [PATCH 119/251] Make editenv chase symlinks including those across devices. This lets us make /boot/grub2/grubenv a symlink to diff --git a/0120-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch b/0120-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch index 11747208..b1280988 100644 --- a/0120-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch +++ b/0120-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch @@ -1,7 +1,7 @@ From c8d93b9e27e9cbf51e91f6cc99abbcb7b68189ce Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Sep 2014 14:23:23 -0400 -Subject: [PATCH 120/250] Generate OS and CLASS in 10_linux from +Subject: [PATCH 120/251] Generate OS and CLASS in 10_linux from /etc/os-release This makes us use pretty names in the titles we generate in diff --git a/0121-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch b/0121-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch index b4447173..279830b2 100644 --- a/0121-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch +++ b/0121-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch @@ -1,7 +1,7 @@ From 974241c42b03f3ccb6a5d0eb453283e370da9848 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Sep 2014 15:52:08 -0400 -Subject: [PATCH 121/250] Minimize the sort ordering for .debug and -rescue- +Subject: [PATCH 121/251] Minimize the sort ordering for .debug and -rescue- kernels. Resolves: rhbz#1065360 diff --git a/0122-Load-arm-with-SB-enabled.patch b/0122-Load-arm-with-SB-enabled.patch index f9e093b1..b089efe0 100644 --- a/0122-Load-arm-with-SB-enabled.patch +++ b/0122-Load-arm-with-SB-enabled.patch @@ -1,7 +1,7 @@ From edfc2b0952b1eacf95188e53167cc038e5ea0129 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 18 Sep 2014 11:26:14 -0400 -Subject: [PATCH 122/250] Load arm with SB enabled. +Subject: [PATCH 122/251] Load arm with SB enabled. Make sure we actually try to validate secure boot on this platform (even though we're not shipping it enabled by default.) diff --git a/0123-Try-prefix-if-fw_path-doesn-t-work.patch b/0123-Try-prefix-if-fw_path-doesn-t-work.patch index b2dc4027..43e24f75 100644 --- a/0123-Try-prefix-if-fw_path-doesn-t-work.patch +++ b/0123-Try-prefix-if-fw_path-doesn-t-work.patch @@ -1,7 +1,7 @@ From 3846b040f1050f246e1e975ee88f22c687ae04bf Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 3 Oct 2014 11:08:03 -0400 -Subject: [PATCH 123/250] Try $prefix if $fw_path doesn't work. +Subject: [PATCH 123/251] Try $prefix if $fw_path doesn't work. Related: rhbz#1148652 diff --git a/0124-Update-info-with-grub.cfg-netboot-selection-order-11.patch b/0124-Update-info-with-grub.cfg-netboot-selection-order-11.patch index 47843a59..886960c5 100644 --- a/0124-Update-info-with-grub.cfg-netboot-selection-order-11.patch +++ b/0124-Update-info-with-grub.cfg-netboot-selection-order-11.patch @@ -1,7 +1,7 @@ From d4b4184078610a3639fa1e0e463679c424496c3b Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Mon, 16 Mar 2015 16:34:51 -0400 -Subject: [PATCH 124/250] Update info with grub.cfg netboot selection order +Subject: [PATCH 124/251] Update info with grub.cfg netboot selection order (#1148650) Added documentation to the grub info page that specifies the order diff --git a/0125-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch b/0125-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch index d0a4c5cd..32764170 100644 --- a/0125-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch +++ b/0125-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch @@ -1,7 +1,7 @@ From ce125cafc1e94bf70f2a3dbb545960bd8dd23a2f Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Mon, 16 Mar 2015 14:14:19 -0400 -Subject: [PATCH 125/250] Use Distribution Package Sort for grub2-mkconfig +Subject: [PATCH 125/251] Use Distribution Package Sort for grub2-mkconfig (#1124074) Users reported that newly installed kernels on their systems installed diff --git a/0126-Handle-rssd-storage-devices.patch b/0126-Handle-rssd-storage-devices.patch index 2a1133b1..21bbb1ef 100644 --- a/0126-Handle-rssd-storage-devices.patch +++ b/0126-Handle-rssd-storage-devices.patch @@ -1,7 +1,7 @@ From 1956a2192ac0a8421ee83bf77fdf223f2be0bdfb Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 30 Jun 2015 15:50:41 -0400 -Subject: [PATCH 126/250] Handle rssd storage devices. +Subject: [PATCH 126/251] Handle rssd storage devices. Resolves: rhbz#1087962 diff --git a/0127-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch b/0127-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch index d2aeabd7..506ce9aa 100644 --- a/0127-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch +++ b/0127-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch @@ -1,7 +1,7 @@ From 5f89c77c7cff17c931f1ea52af0c39df8ab28ac9 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 27 Oct 2014 09:22:55 -0400 -Subject: [PATCH 127/250] Try to emit linux16/initrd16 and linuxefi/initrdefi +Subject: [PATCH 127/251] Try to emit linux16/initrd16 and linuxefi/initrdefi in 30-os_prober. Resolves: rhbz#1108296 diff --git a/0128-Make-grub2-mkconfig-construct-titles-that-look-like-.patch b/0128-Make-grub2-mkconfig-construct-titles-that-look-like-.patch index b2562c5c..cbb5d1b3 100644 --- a/0128-Make-grub2-mkconfig-construct-titles-that-look-like-.patch +++ b/0128-Make-grub2-mkconfig-construct-titles-that-look-like-.patch @@ -1,7 +1,7 @@ From c7ae420d095ccec20481c25b14773ab2fce658b5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 28 Apr 2015 11:15:03 -0400 -Subject: [PATCH 128/250] Make grub2-mkconfig construct titles that look like +Subject: [PATCH 128/251] Make grub2-mkconfig construct titles that look like the ones we want elsewhere. Resolves: rhbz#1215839 diff --git a/0129-Add-friendly-grub2-password-config-tool-985962.patch b/0129-Add-friendly-grub2-password-config-tool-985962.patch index 4694f83b..25a9bf1b 100644 --- a/0129-Add-friendly-grub2-password-config-tool-985962.patch +++ b/0129-Add-friendly-grub2-password-config-tool-985962.patch @@ -1,7 +1,7 @@ From 68f21f5ebebc23a6d8512631f2a1d474afcccd43 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Thu, 25 Jun 2015 11:13:11 -0400 -Subject: [PATCH 129/250] Add friendly grub2 password config tool (#985962) +Subject: [PATCH 129/251] Add friendly grub2 password config tool (#985962) Provided a tool for users to reset the grub2 root user password without having to alter the grub.cfg. The hashed password now diff --git a/0130-Make-grub2-mkconfig-construct-titles-that-look-like-.patch b/0130-Make-grub2-mkconfig-construct-titles-that-look-like-.patch index 22dcc99f..6752d37e 100644 --- a/0130-Make-grub2-mkconfig-construct-titles-that-look-like-.patch +++ b/0130-Make-grub2-mkconfig-construct-titles-that-look-like-.patch @@ -1,7 +1,7 @@ From 7a7644507e4d953ea8f8d1d7133622a72a2168f5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 28 Apr 2015 11:15:03 -0400 -Subject: [PATCH 130/250] Make grub2-mkconfig construct titles that look like +Subject: [PATCH 130/251] Make grub2-mkconfig construct titles that look like the ones we want elsewhere. Resolves: rhbz#1215839 diff --git a/0131-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch b/0131-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch index e789d22f..f4a73479 100644 --- a/0131-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch +++ b/0131-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch @@ -1,7 +1,7 @@ From 6f892038567f1706fdde819f5f226ec4cacbea47 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 3 Aug 2015 11:46:42 -0400 -Subject: [PATCH 131/250] Try to make sure configure.ac and grub-rpm-sort play +Subject: [PATCH 131/251] Try to make sure configure.ac and grub-rpm-sort play nice. Apparently the test for whether to use grub-rpm-sort and also the diff --git a/0132-tcp-add-window-scaling-support.patch b/0132-tcp-add-window-scaling-support.patch index 06f91492..c7cbdae9 100644 --- a/0132-tcp-add-window-scaling-support.patch +++ b/0132-tcp-add-window-scaling-support.patch @@ -1,7 +1,7 @@ From 71e31c279c07f9f51f2a482b70b40b7deed69a69 Mon Sep 17 00:00:00 2001 From: Josef Bacik Date: Wed, 12 Aug 2015 08:57:55 -0700 -Subject: [PATCH 132/250] tcp: add window scaling support +Subject: [PATCH 132/251] tcp: add window scaling support Sometimes we have to provision boxes across regions, such as California to Sweden. The http server has a 10 minute timeout, so if we can't get our 250mb diff --git a/0133-efinet-retransmit-if-our-device-is-busy.patch b/0133-efinet-retransmit-if-our-device-is-busy.patch index b74ba3ac..0297a7d6 100644 --- a/0133-efinet-retransmit-if-our-device-is-busy.patch +++ b/0133-efinet-retransmit-if-our-device-is-busy.patch @@ -1,7 +1,7 @@ From d09f32622f6fc247dd88f731c34be10395785d8d Mon Sep 17 00:00:00 2001 From: Josef Bacik Date: Mon, 31 Aug 2015 13:34:35 -0400 -Subject: [PATCH 133/250] efinet: retransmit if our device is busy +Subject: [PATCH 133/251] efinet: retransmit if our device is busy When I fixed the txbuf handling I ripped out the retransmission code since it was flooding our network when we had the buggy behavior. Turns out this was too diff --git a/0134-Be-more-aggro-about-actually-using-the-configured-ne.patch b/0134-Be-more-aggro-about-actually-using-the-configured-ne.patch index 33ece57b..c9d57f6b 100644 --- a/0134-Be-more-aggro-about-actually-using-the-configured-ne.patch +++ b/0134-Be-more-aggro-about-actually-using-the-configured-ne.patch @@ -1,7 +1,7 @@ From 8ece44c2c8f88f531ac9a679f65a263e7b6d2dba Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 11 Sep 2015 17:30:49 -0400 -Subject: [PATCH 134/250] Be more aggro about actually using the *configured* +Subject: [PATCH 134/251] Be more aggro about actually using the *configured* network device. Right now we use any SNP device with the same mac+IP block, but when diff --git a/0135-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch b/0135-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch index 34b9a340..79c7d32e 100644 --- a/0135-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch +++ b/0135-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch @@ -1,7 +1,7 @@ From 82b9fdcbbc339c36842c625203fc2b1f22a86c9e Mon Sep 17 00:00:00 2001 From: RHEL Ninjas Date: Fri, 25 Sep 2015 16:24:23 +0900 -Subject: [PATCH 135/250] efinet: add filter for the first exclusive reopen of +Subject: [PATCH 135/251] efinet: add filter for the first exclusive reopen of SNP --- diff --git a/0136-Fix-security-issue-when-reading-username-and-passwor.patch b/0136-Fix-security-issue-when-reading-username-and-passwor.patch index 2564f4be..a17d7ba1 100644 --- a/0136-Fix-security-issue-when-reading-username-and-passwor.patch +++ b/0136-Fix-security-issue-when-reading-username-and-passwor.patch @@ -1,7 +1,7 @@ From 9961e63642244617b697d93bbc49379e23b6839d Mon Sep 17 00:00:00 2001 From: Hector Marco-Gisbert Date: Fri, 13 Nov 2015 16:21:09 +0100 -Subject: [PATCH 136/250] Fix security issue when reading username and password +Subject: [PATCH 136/251] Fix security issue when reading username and password This patch fixes two integer underflows at: * grub-core/lib/crypto.c diff --git a/0137-Warn-if-grub-password-will-not-be-read-1290803.patch b/0137-Warn-if-grub-password-will-not-be-read-1290803.patch index 9e0ea2eb..2d8217b0 100644 --- a/0137-Warn-if-grub-password-will-not-be-read-1290803.patch +++ b/0137-Warn-if-grub-password-will-not-be-read-1290803.patch @@ -1,7 +1,7 @@ From 056a956aea898f9d3ee34ecad9660addc3f3108c Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Mon, 22 Feb 2016 15:30:05 -0500 -Subject: [PATCH 137/250] Warn if grub password will not be read (#1290803) +Subject: [PATCH 137/251] Warn if grub password will not be read (#1290803) It is possible for a system to have never run grub-mkconfig and add the section that reads the user.cfg file which contains a user set GRUB diff --git a/0138-Clean-up-grub-setpassword-documentation-1290799.patch b/0138-Clean-up-grub-setpassword-documentation-1290799.patch index b70f51b5..e0b49d49 100644 --- a/0138-Clean-up-grub-setpassword-documentation-1290799.patch +++ b/0138-Clean-up-grub-setpassword-documentation-1290799.patch @@ -1,7 +1,7 @@ From 92af2b24adb7371d8234c0b32ae716adf0b80d42 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Tue, 26 Jan 2016 10:28:35 -0500 -Subject: [PATCH 138/250] Clean up grub-setpassword documentation (#1290799) +Subject: [PATCH 138/251] Clean up grub-setpassword documentation (#1290799) The output for --help had some errors. Corrected those and polished the text to be a little easier to follow. Carried verbage over to man page diff --git a/0139-Fix-locale-issue-in-grub-setpassword-1294243.patch b/0139-Fix-locale-issue-in-grub-setpassword-1294243.patch index 1e05eda1..1f1c37fc 100644 --- a/0139-Fix-locale-issue-in-grub-setpassword-1294243.patch +++ b/0139-Fix-locale-issue-in-grub-setpassword-1294243.patch @@ -1,7 +1,7 @@ From 373adc50cf9f09015e40ffd1bf79ab9f291f4fc2 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Fri, 29 Jan 2016 16:56:11 -0500 -Subject: [PATCH 139/250] Fix locale issue in grub-setpassword (#1294243) +Subject: [PATCH 139/251] Fix locale issue in grub-setpassword (#1294243) A shell substitution was expecting non-translated output to grab the hashed password and put it in the user.cfg file. Modified code to force diff --git a/0140-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch b/0140-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch index 01697fe9..7df6101f 100644 --- a/0140-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch +++ b/0140-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch @@ -1,7 +1,7 @@ From eab0520310030376f6295e0338e874bce10b0d5f Mon Sep 17 00:00:00 2001 From: Robert Elliott Date: Fri, 22 Jan 2016 13:32:30 +0100 -Subject: [PATCH 140/250] efiemu: Handle persistent RAM and unknown possible +Subject: [PATCH 140/251] efiemu: Handle persistent RAM and unknown possible future additions. (cherry picked from commit ae3b83a4d4df75a01198a2fed7542391e7c449e0) diff --git a/0141-efiemu-Fix-compilation-failure.patch b/0141-efiemu-Fix-compilation-failure.patch index 7b66bb05..a5ee8af2 100644 --- a/0141-efiemu-Fix-compilation-failure.patch +++ b/0141-efiemu-Fix-compilation-failure.patch @@ -1,7 +1,7 @@ From 68bdf29eb6e376a3b4a817bbe7481efd12b8f9de Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Fri, 22 Jan 2016 14:10:30 +0100 -Subject: [PATCH 141/250] efiemu: Fix compilation failure +Subject: [PATCH 141/251] efiemu: Fix compilation failure (cherry picked from commit b6a03dfd327489d53ee07c6d7d593b99c7b7cb62) diff --git a/0142-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch b/0142-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch index b842f18d..d874fead 100644 --- a/0142-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch +++ b/0142-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch @@ -1,7 +1,7 @@ From df19c5ff9c9e716df0383e39992466304053c99d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 7 Apr 2016 10:58:06 -0400 -Subject: [PATCH 142/250] Revert "reopen SNP protocol for exclusive use by +Subject: [PATCH 142/251] Revert "reopen SNP protocol for exclusive use by grub" I *think* this should have been replaced by upstream's diff --git a/0143-Add-a-url-parser.patch b/0143-Add-a-url-parser.patch index d951b9d5..d34560b2 100644 --- a/0143-Add-a-url-parser.patch +++ b/0143-Add-a-url-parser.patch @@ -1,7 +1,7 @@ From 2f84b2e097ad9f6f7f06013f749251743eb32c2e Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jun 2016 16:18:44 -0400 -Subject: [PATCH 143/250] Add a url parser. +Subject: [PATCH 143/251] Add a url parser. This patch adds a url parser that can parse http, https, tftp, and tftps urls, and is easily extensible to handle more types. diff --git a/0144-efinet-and-bootp-add-support-for-dhcpv6.patch b/0144-efinet-and-bootp-add-support-for-dhcpv6.patch index e8ea0f2a..af81dffb 100644 --- a/0144-efinet-and-bootp-add-support-for-dhcpv6.patch +++ b/0144-efinet-and-bootp-add-support-for-dhcpv6.patch @@ -1,7 +1,7 @@ From 48768b0295ad4d908cefd8e8fbee96a4dc2765f5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 8 Jun 2016 21:03:37 -0400 -Subject: [PATCH 144/250] efinet and bootp: add support for dhcpv6 +Subject: [PATCH 144/251] efinet and bootp: add support for dhcpv6 Signed-off-by: Peter Jones --- diff --git a/0145-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch b/0145-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch index 7d93b3af..935e3126 100644 --- a/0145-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch +++ b/0145-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch @@ -1,7 +1,7 @@ From 764506b89942103c3a511d7933edef351fb594b8 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 23 Jun 2016 11:01:39 -0400 -Subject: [PATCH 145/250] Add grub-get-kernel-settings and use it in 10_linux +Subject: [PATCH 145/251] Add grub-get-kernel-settings and use it in 10_linux This patch adds grub-get-kernel-settings, which reads the system kernel installation configuration from /etc/sysconfig/kernel, and outputs diff --git a/0146-Normalize-slashes-in-tftp-paths.patch b/0146-Normalize-slashes-in-tftp-paths.patch index 74dfbee7..c983a345 100644 --- a/0146-Normalize-slashes-in-tftp-paths.patch +++ b/0146-Normalize-slashes-in-tftp-paths.patch @@ -1,7 +1,7 @@ From 406402dfaecc62ede346793c9c7a0568dc71c131 Mon Sep 17 00:00:00 2001 From: Lenny Szubowicz Date: Mon, 29 Aug 2016 11:04:48 -0400 -Subject: [PATCH 146/250] Normalize slashes in tftp paths. +Subject: [PATCH 146/251] Normalize slashes in tftp paths. Some tftp servers do not handle multiple consecutive slashes correctly; this patch avoids sending tftp requests with non-normalized paths. diff --git a/0147-Fix-malformed-tftp-packets.patch b/0147-Fix-malformed-tftp-packets.patch index 8523e2fa..6d7b31cd 100644 --- a/0147-Fix-malformed-tftp-packets.patch +++ b/0147-Fix-malformed-tftp-packets.patch @@ -1,7 +1,7 @@ From 7d05a8298e6a54bfae0038841462443f21da3535 Mon Sep 17 00:00:00 2001 From: Mark Salter Date: Tue, 7 Mar 2017 18:26:17 -0500 -Subject: [PATCH 147/250] Fix malformed tftp packets +Subject: [PATCH 147/251] Fix malformed tftp packets 0088-Normalize-slashes-in-tftp-paths.patch collapses multiple contiguous slashes in a filename into one slash in the tftp packet filename field. diff --git a/0148-Fix-race-in-EFI-validation.patch b/0148-Fix-race-in-EFI-validation.patch index 4e0c266c..ba965ff5 100644 --- a/0148-Fix-race-in-EFI-validation.patch +++ b/0148-Fix-race-in-EFI-validation.patch @@ -1,7 +1,7 @@ From bf59d76ca82eb4eaa20a747f5890d09632ba93d0 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 14 Jul 2015 16:58:51 -0700 -Subject: [PATCH 148/250] Fix race in EFI validation +Subject: [PATCH 148/251] Fix race in EFI validation --- grub-core/loader/i386/efi/linux.c | 44 ++++++++++----------------------------- diff --git a/0149-bz1374141-fix-incorrect-mask-for-ppc64.patch b/0149-bz1374141-fix-incorrect-mask-for-ppc64.patch index e78a3382..ed21eff1 100644 --- a/0149-bz1374141-fix-incorrect-mask-for-ppc64.patch +++ b/0149-bz1374141-fix-incorrect-mask-for-ppc64.patch @@ -1,7 +1,7 @@ From 84a5f535949f590a8976c64c3d1fde08fe0f7464 Mon Sep 17 00:00:00 2001 From: Masahiro Matsuya Date: Sat, 29 Oct 2016 08:35:26 +0900 -Subject: [PATCH 149/250] bz1374141 fix incorrect mask for ppc64 +Subject: [PATCH 149/251] bz1374141 fix incorrect mask for ppc64 The netmask configured in firmware is not respected on ppc64 (big endian). When 255.255.252.0 is set as netmask in firmware, the following is the value of bootpath string in grub_ieee1275_parse_bootpath(). diff --git a/0150-Use-device-part-of-chainloader-target-if-present.patch b/0150-Use-device-part-of-chainloader-target-if-present.patch index 3c2f2be8..ce65e59c 100644 --- a/0150-Use-device-part-of-chainloader-target-if-present.patch +++ b/0150-Use-device-part-of-chainloader-target-if-present.patch @@ -1,7 +1,7 @@ From d426e20f8b41ebf114075dc4ffbcaf438ceb4b95 Mon Sep 17 00:00:00 2001 From: Raymund Will Date: Fri, 10 Apr 2015 01:45:02 -0400 -Subject: [PATCH 150/250] Use device part of chainloader target, if present. +Subject: [PATCH 150/251] Use device part of chainloader target, if present. Otherwise chainloading is restricted to '$root', which might not even be readable by EFI! diff --git a/0151-Add-secureboot-support-on-efi-chainloader.patch b/0151-Add-secureboot-support-on-efi-chainloader.patch index 31e7091d..93a84b8c 100644 --- a/0151-Add-secureboot-support-on-efi-chainloader.patch +++ b/0151-Add-secureboot-support-on-efi-chainloader.patch @@ -1,7 +1,7 @@ From bbf98517303e438cea398bb74306b6553c880ac3 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 6 Oct 2015 13:04:37 -0400 -Subject: [PATCH 151/250] Add secureboot support on efi chainloader +Subject: [PATCH 151/251] Add secureboot support on efi chainloader Expand the chainloader to be able to verify the image by means of shim lock protocol. The PE/COFF image is loaded and relocated by the diff --git a/0152-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch b/0152-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch index 3f5d229e..80981a0e 100644 --- a/0152-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch +++ b/0152-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch @@ -1,7 +1,7 @@ From 25ea5be888dcc92cd0b3cb7d34b381f5005f1e30 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 6 Oct 2015 16:09:25 -0400 -Subject: [PATCH 152/250] Make any of the loaders that link in efi mode honor +Subject: [PATCH 152/251] Make any of the loaders that link in efi mode honor secure boot. And in this case "honor" means "even if somebody does link this in, they diff --git a/0153-Make-grub_fatal-also-backtrace.patch b/0153-Make-grub_fatal-also-backtrace.patch index d1f05c54..ad6139d4 100644 --- a/0153-Make-grub_fatal-also-backtrace.patch +++ b/0153-Make-grub_fatal-also-backtrace.patch @@ -1,7 +1,7 @@ From eb1a27144476324a22561383a0a2e61aa327d2f5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 27 Jan 2016 09:22:42 -0500 -Subject: [PATCH 153/250] Make grub_fatal() also backtrace. +Subject: [PATCH 153/251] Make grub_fatal() also backtrace. --- grub-core/Makefile.core.def | 3 ++ diff --git a/0154-Rework-linux-command.patch b/0154-Rework-linux-command.patch index b12f401e..6395a9bd 100644 --- a/0154-Rework-linux-command.patch +++ b/0154-Rework-linux-command.patch @@ -1,7 +1,7 @@ From 12312bfe1727a2992042436cb0f8c8ba1c69ee2f Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 16:12:39 -0700 -Subject: [PATCH 154/250] Rework linux command +Subject: [PATCH 154/251] Rework linux command We want a single buffer that contains the entire kernel image in order to perform a TPM measurement. Allocate one and copy the entire kernel into it diff --git a/0155-Rework-linux16-command.patch b/0155-Rework-linux16-command.patch index 02f87f7c..935aa145 100644 --- a/0155-Rework-linux16-command.patch +++ b/0155-Rework-linux16-command.patch @@ -1,7 +1,7 @@ From 24250bbb84f8817462426c46b255d875de627bf1 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 16:20:58 -0700 -Subject: [PATCH 155/250] Rework linux16 command +Subject: [PATCH 155/251] Rework linux16 command We want a single buffer that contains the entire kernel image in order to perform a TPM measurement. Allocate one and copy the entire kernel int it diff --git a/0156-Make-grub-editenv-build-again.patch b/0156-Make-grub-editenv-build-again.patch index a33c9f11..f7df7781 100644 --- a/0156-Make-grub-editenv-build-again.patch +++ b/0156-Make-grub-editenv-build-again.patch @@ -1,7 +1,7 @@ From ebe69b2682b5b3029d8ea503f12134ee81c4b2ce Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 4 Mar 2016 16:29:13 -0500 -Subject: [PATCH 156/250] Make grub-editenv build again. +Subject: [PATCH 156/251] Make grub-editenv build again. 36212460d3565b18439a3a8130b28e6c97702c6a split how some of the mkimage utility functions are defined, and they wind up being linked into diff --git a/0157-Fix-up-some-man-pages-rpmdiff-noticed.patch b/0157-Fix-up-some-man-pages-rpmdiff-noticed.patch index a7c4de66..b05e920c 100644 --- a/0157-Fix-up-some-man-pages-rpmdiff-noticed.patch +++ b/0157-Fix-up-some-man-pages-rpmdiff-noticed.patch @@ -1,7 +1,7 @@ From c71e6152ea8e4e525a853441bb5f08808bae3afd Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 23 Sep 2014 09:58:49 -0400 -Subject: [PATCH 157/250] Fix up some man pages rpmdiff noticed. +Subject: [PATCH 157/251] Fix up some man pages rpmdiff noticed. --- configure.ac | 2 ++ diff --git a/0158-Re-work-some-intricacies-of-PE-loading.patch b/0158-Re-work-some-intricacies-of-PE-loading.patch index 7c4d6644..0ef86600 100644 --- a/0158-Re-work-some-intricacies-of-PE-loading.patch +++ b/0158-Re-work-some-intricacies-of-PE-loading.patch @@ -1,7 +1,7 @@ From 145214ee7c411c7d600016f011dc11b213bce0b2 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 9 Jun 2016 12:22:29 -0400 -Subject: [PATCH 158/250] Re-work some intricacies of PE loading. +Subject: [PATCH 158/251] Re-work some intricacies of PE loading. The PE spec is not a well written document, and awesomely every place where there's an ambiguous way to read something, Windows' bootmgfw.efi diff --git a/0159-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch b/0159-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch index fdcd3012..79f113a3 100644 --- a/0159-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch +++ b/0159-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch @@ -1,7 +1,7 @@ From ef24bc601e11b96eefe06f477b5da1199d761b3d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 10 Jun 2016 14:06:15 -0400 -Subject: [PATCH 159/250] Rework even more of efi chainload so non-sb cases +Subject: [PATCH 159/251] Rework even more of efi chainload so non-sb cases work right. This ensures that if shim protocol is not loaded, or is loaded but shim diff --git a/0160-linuxefi-fix-double-free-on-verification-failure.patch b/0160-linuxefi-fix-double-free-on-verification-failure.patch index 87198dd7..b59c378c 100644 --- a/0160-linuxefi-fix-double-free-on-verification-failure.patch +++ b/0160-linuxefi-fix-double-free-on-verification-failure.patch @@ -1,7 +1,7 @@ From 5ef3f00e6be3033092453a66f456b8dac8cd4f7c Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jun 2016 09:50:25 -0400 -Subject: [PATCH 160/250] linuxefi: fix double free on verification failure. +Subject: [PATCH 160/251] linuxefi: fix double free on verification failure. Signed-off-by: Peter Jones --- diff --git a/0161-fix-machine-type-test-in-30_os-prober.in.patch b/0161-fix-machine-type-test-in-30_os-prober.in.patch index 541ac242..7ea867da 100644 --- a/0161-fix-machine-type-test-in-30_os-prober.in.patch +++ b/0161-fix-machine-type-test-in-30_os-prober.in.patch @@ -1,7 +1,7 @@ From 4139fdfdb64fd248a0d5f200b27c583159dbb190 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 11 Jul 2016 13:36:45 -0400 -Subject: [PATCH 161/250] fix machine type test in 30_os-prober.in +Subject: [PATCH 161/251] fix machine type test in 30_os-prober.in Signed-off-by: Peter Jones --- diff --git a/0162-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch b/0162-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch index c9b852d6..aefed6ee 100644 --- a/0162-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch +++ b/0162-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch @@ -1,7 +1,7 @@ From 671699a76fa6510a62c3a94acd698a31686cb8fa Mon Sep 17 00:00:00 2001 From: Laszlo Ersek Date: Mon, 21 Nov 2016 15:34:00 +0100 -Subject: [PATCH 162/250] efi/chainloader: fix wrong sanity check in +Subject: [PATCH 162/251] efi/chainloader: fix wrong sanity check in relocate_coff() In relocate_coff(), the relocation entries are parsed from the original diff --git a/0163-efi-chainloader-truncate-overlong-relocation-section.patch b/0163-efi-chainloader-truncate-overlong-relocation-section.patch index 62bf1fc6..dda4ec8c 100644 --- a/0163-efi-chainloader-truncate-overlong-relocation-section.patch +++ b/0163-efi-chainloader-truncate-overlong-relocation-section.patch @@ -1,7 +1,7 @@ From d081bd5f47235e3bfd256fd262a6f98fe8b0d0ff Mon Sep 17 00:00:00 2001 From: Laszlo Ersek Date: Wed, 23 Nov 2016 06:27:09 +0100 -Subject: [PATCH 163/250] efi/chainloader: truncate overlong relocation section +Subject: [PATCH 163/251] efi/chainloader: truncate overlong relocation section The UEFI Windows 7 boot loader ("EFI/Microsoft/Boot/bootmgfw.efi", SHA1 31b410e029bba87d2068c65a80b88882f9f8ea25) has inconsistent headers. diff --git a/0164-linuxefi-minor-cleanups.patch b/0164-linuxefi-minor-cleanups.patch index fb6e91b6..bbf1da5d 100644 --- a/0164-linuxefi-minor-cleanups.patch +++ b/0164-linuxefi-minor-cleanups.patch @@ -1,7 +1,7 @@ From 8dc21ff37f62f3d10fb3d708ffd33b7d723a23cf Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Feb 2017 16:31:52 -0500 -Subject: [PATCH 164/250] linuxefi: minor cleanups +Subject: [PATCH 164/251] linuxefi: minor cleanups Signed-off-by: Peter Jones --- diff --git a/0165-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch b/0165-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch index 2237bb68..61ce9eaf 100644 --- a/0165-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch +++ b/0165-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch @@ -1,7 +1,7 @@ From 10d6d333de0aa7e390a22ebc4b308f7ad937d5bc Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Feb 2017 16:18:54 -0500 -Subject: [PATCH 165/250] Handle multi-arch (64-on-32) boot in linuxefi loader. +Subject: [PATCH 165/251] Handle multi-arch (64-on-32) boot in linuxefi loader. Allow booting 64-bit kernels on 32-bit EFI on x86. diff --git a/0166-Fix-up-linux-params-usage.patch b/0166-Fix-up-linux-params-usage.patch index 028c3122..92b42cc3 100644 --- a/0166-Fix-up-linux-params-usage.patch +++ b/0166-Fix-up-linux-params-usage.patch @@ -1,7 +1,7 @@ From 93be95c27b0ddb63c2e3a287a3ed92c0a5de93e5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 30 May 2017 14:16:07 -0400 -Subject: [PATCH 166/250] Fix up linux params usage... +Subject: [PATCH 166/251] Fix up linux params usage... Signed-off-by: Peter Jones --- diff --git a/0167-Make-exit-take-a-return-code.patch b/0167-Make-exit-take-a-return-code.patch index 3e1fa61c..13e78c3a 100644 --- a/0167-Make-exit-take-a-return-code.patch +++ b/0167-Make-exit-take-a-return-code.patch @@ -1,7 +1,7 @@ From 6b67d46c1764c86611939dc01267f9c70f413184 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 26 Feb 2014 21:49:12 -0500 -Subject: [PATCH 167/250] Make "exit" take a return code. +Subject: [PATCH 167/251] Make "exit" take a return code. This adds "exit" with a return code. With this patch, any "exit" command /may/ include a return code, and on platforms that support diff --git a/0168-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch b/0168-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch index c0144883..59723238 100644 --- a/0168-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch +++ b/0168-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch @@ -1,7 +1,7 @@ From e48a4c0b9e475b16366ff6c375de5186432eb1f7 Mon Sep 17 00:00:00 2001 From: Mark Salter Date: Mon, 17 Apr 2017 08:44:29 -0400 -Subject: [PATCH 168/250] arm64: make sure fdt has #address-cells and +Subject: [PATCH 168/251] arm64: make sure fdt has #address-cells and #size-cells properties Recent upstream changes to kexec-tools relies on #address-cells diff --git a/0169-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch b/0169-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch index ab24e3e9..82dd7878 100644 --- a/0169-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch +++ b/0169-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch @@ -1,7 +1,7 @@ From 755fa5ccf0834abdb7e50a1cb06fad618f6c9af6 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 9 May 2016 14:15:17 -0400 -Subject: [PATCH 169/250] Add some grub_dprintf() in the secure boot verify +Subject: [PATCH 169/251] Add some grub_dprintf() in the secure boot verify code. Signed-off-by: Peter Jones diff --git a/0170-Make-our-info-pages-say-grub2-where-appropriate.patch b/0170-Make-our-info-pages-say-grub2-where-appropriate.patch index e3495844..c6a573b2 100644 --- a/0170-Make-our-info-pages-say-grub2-where-appropriate.patch +++ b/0170-Make-our-info-pages-say-grub2-where-appropriate.patch @@ -1,7 +1,7 @@ From 15c340acd845056ba259b9fffd6c7d083874cb82 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 6 May 2016 18:43:08 -0400 -Subject: [PATCH 170/250] Make our info pages say "grub2" where appropriate. +Subject: [PATCH 170/251] Make our info pages say "grub2" where appropriate. This needs to be hooked up to --program-transform=, but I haven't had time. diff --git a/0171-print-more-debug-info-in-our-module-loader.patch b/0171-print-more-debug-info-in-our-module-loader.patch index 052fc28c..838433b3 100644 --- a/0171-print-more-debug-info-in-our-module-loader.patch +++ b/0171-print-more-debug-info-in-our-module-loader.patch @@ -1,7 +1,7 @@ From 0d0a7ebbed42b97fca63cbcaf85a469b77c76fda Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 1 May 2017 11:19:40 -0400 -Subject: [PATCH 171/250] print more debug info in our module loader. +Subject: [PATCH 171/251] print more debug info in our module loader. Signed-off-by: Peter Jones --- diff --git a/0172-macos-just-build-chainloader-entries-don-t-try-any-x.patch b/0172-macos-just-build-chainloader-entries-don-t-try-any-x.patch index 4c245d8a..f3523240 100644 --- a/0172-macos-just-build-chainloader-entries-don-t-try-any-x.patch +++ b/0172-macos-just-build-chainloader-entries-don-t-try-any-x.patch @@ -1,7 +1,7 @@ From 4cb6b65d74966dfbe6e8463ee1e88d99ca7de5b1 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 24 May 2017 12:42:32 -0400 -Subject: [PATCH 172/250] macos: just build chainloader entries, don't try any +Subject: [PATCH 172/251] macos: just build chainloader entries, don't try any xnu xnu. Since our bugs tell us that the xnu boot entries really just don't work diff --git a/0173-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch b/0173-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch index c04fb4f2..23a135dc 100644 --- a/0173-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch +++ b/0173-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch @@ -1,7 +1,7 @@ From 396001716b7f8c7a6aee17f33fdb9e5d47424cbc Mon Sep 17 00:00:00 2001 From: Jeff Mahoney Date: Wed, 18 Dec 2013 09:57:04 +0000 -Subject: [PATCH 173/250] grub2/btrfs: Add ability to boot from subvolumes +Subject: [PATCH 173/251] grub2/btrfs: Add ability to boot from subvolumes This patch adds the ability to specify a different root on a btrfs filesystem too boot from other than the default one. diff --git a/0174-export-btrfs_subvol-and-btrfs_subvolid.patch b/0174-export-btrfs_subvol-and-btrfs_subvolid.patch index 5d598345..357771c0 100644 --- a/0174-export-btrfs_subvol-and-btrfs_subvolid.patch +++ b/0174-export-btrfs_subvol-and-btrfs_subvolid.patch @@ -1,7 +1,7 @@ From 35c1015fc1a4313be34757eebb195547336e0edf Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Wed, 18 Dec 2013 09:57:04 +0000 -Subject: [PATCH 174/250] export btrfs_subvol and btrfs_subvolid +Subject: [PATCH 174/251] export btrfs_subvol and btrfs_subvolid We should export btrfs_subvol and btrfs_subvolid to have both visible to subsidiary configuration files loaded using configfile. diff --git a/0175-grub2-btrfs-03-follow_default.patch b/0175-grub2-btrfs-03-follow_default.patch index 6242119b..e3fa44de 100644 --- a/0175-grub2-btrfs-03-follow_default.patch +++ b/0175-grub2-btrfs-03-follow_default.patch @@ -1,7 +1,7 @@ From 476a0251e8ca2850da7c383baf7fdbd810bc789f Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 21 Aug 2014 03:39:11 +0000 -Subject: [PATCH 175/250] grub2-btrfs-03-follow_default +Subject: [PATCH 175/251] grub2-btrfs-03-follow_default --- grub-core/fs/btrfs.c | 107 ++++++++++++++++++++++++++++++++++++--------------- diff --git a/0176-grub2-btrfs-04-grub2-install.patch b/0176-grub2-btrfs-04-grub2-install.patch index aca526b5..c2b3a9a7 100644 --- a/0176-grub2-btrfs-04-grub2-install.patch +++ b/0176-grub2-btrfs-04-grub2-install.patch @@ -1,7 +1,7 @@ From e03dd83cc804d70af0716d0a429715afbcdc7eae Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 21 Aug 2014 03:39:11 +0000 -Subject: [PATCH 176/250] grub2-btrfs-04-grub2-install +Subject: [PATCH 176/251] grub2-btrfs-04-grub2-install --- grub-core/osdep/linux/getroot.c | 7 +++++++ diff --git a/0177-grub2-btrfs-05-grub2-mkconfig.patch b/0177-grub2-btrfs-05-grub2-mkconfig.patch index 6c58f2e4..b0d98e64 100644 --- a/0177-grub2-btrfs-05-grub2-mkconfig.patch +++ b/0177-grub2-btrfs-05-grub2-mkconfig.patch @@ -1,7 +1,7 @@ From cb43e7a6c96127e72d6787c6063de8911284fe18 Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 21 Aug 2014 03:39:11 +0000 -Subject: [PATCH 177/250] grub2-btrfs-05-grub2-mkconfig +Subject: [PATCH 177/251] grub2-btrfs-05-grub2-mkconfig --- util/grub-mkconfig.in | 3 ++- diff --git a/0178-grub2-btrfs-06-subvol-mount.patch b/0178-grub2-btrfs-06-subvol-mount.patch index 12124c83..f12645cd 100644 --- a/0178-grub2-btrfs-06-subvol-mount.patch +++ b/0178-grub2-btrfs-06-subvol-mount.patch @@ -1,7 +1,7 @@ From 84d6a482c2c8d0677141bb888512a6a89daf9d8b Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Fri, 22 May 2015 11:45:25 +0000 -Subject: [PATCH 178/250] grub2-btrfs-06-subvol-mount +Subject: [PATCH 178/251] grub2-btrfs-06-subvol-mount --- grub-core/fs/btrfs.c | 195 +++++++++++++++++++++++++++++++++++++++- diff --git a/0179-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch b/0179-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch index 8a9ebab7..385840be 100644 --- a/0179-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch +++ b/0179-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch @@ -1,7 +1,7 @@ From 741c0651cd54970c08e9c19a82f5805aafbfda23 Mon Sep 17 00:00:00 2001 From: Dusty Mabe Date: Sat, 18 Jul 2015 15:38:08 +0000 -Subject: [PATCH 179/250] No more "Bootable Snapshot" submenu in grub.cfg. +Subject: [PATCH 179/251] No more "Bootable Snapshot" submenu in grub.cfg. This breaks grubby (run on kernel upgrades) because grubby just does a search for "menuentry". diff --git a/0180-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch b/0180-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch index 57dba74e..4955667d 100644 --- a/0180-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch +++ b/0180-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch @@ -1,7 +1,7 @@ From ab8e0d4bf544b708f5afa4cc56e6bd16789f2f1e Mon Sep 17 00:00:00 2001 From: Andrei Borzenkov Date: Tue, 21 Jun 2016 16:44:17 +0000 -Subject: [PATCH 180/250] Fallback to old subvol name scheme to support old +Subject: [PATCH 180/251] Fallback to old subvol name scheme to support old snapshot config Ref: bsc#953538 diff --git a/0181-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch b/0181-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch index 2f0b7582..8e69738e 100644 --- a/0181-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch +++ b/0181-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch @@ -1,7 +1,7 @@ From eb8535428a42c7099666ddb58ac900bb8ee745ba Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 11 May 2017 08:56:57 +0000 -Subject: [PATCH 181/250] Grub not working correctly with btrfs snapshots +Subject: [PATCH 181/251] Grub not working correctly with btrfs snapshots (bsc#1026511) --- diff --git a/0182-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch b/0182-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch index 781f2ee6..95bff2e2 100644 --- a/0182-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch +++ b/0182-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch @@ -1,7 +1,7 @@ From 2a6e1d2491b7334985ad25315faa22d26354d8b7 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 1 Jun 2017 09:59:56 -0400 -Subject: [PATCH 182/250] Add grub_efi_allocate_pool() and grub_efi_free_pool() +Subject: [PATCH 182/251] Add grub_efi_allocate_pool() and grub_efi_free_pool() wrappers. Signed-off-by: Peter Jones diff --git a/0183-Use-grub_efi_.-memory-helpers-where-reasonable.patch b/0183-Use-grub_efi_.-memory-helpers-where-reasonable.patch index 4c0d1a9b..d7a66b5e 100644 --- a/0183-Use-grub_efi_.-memory-helpers-where-reasonable.patch +++ b/0183-Use-grub_efi_.-memory-helpers-where-reasonable.patch @@ -1,7 +1,7 @@ From 6ea13cdb3f33da45d7a8042d85ad87e2a18fc946 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 1 Jun 2017 10:06:38 -0400 -Subject: [PATCH 183/250] Use grub_efi_...() memory helpers where reasonable. +Subject: [PATCH 183/251] Use grub_efi_...() memory helpers where reasonable. This uses grub_efi_allocate_pool(), grub_efi_free_pool(), and grub_efi_free_pages() instead of open-coded efi_call_N() calls, so we diff --git a/0184-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch b/0184-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch index f83b692b..9422f42e 100644 --- a/0184-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch +++ b/0184-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch @@ -1,7 +1,7 @@ From eae94a16a8ae350cdeab8b7742f9227d92001272 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 1 Jun 2017 10:07:50 -0400 -Subject: [PATCH 184/250] Add PRIxGRUB_EFI_STATUS and use it. +Subject: [PATCH 184/251] Add PRIxGRUB_EFI_STATUS and use it. This avoids syntax checkers getting confused about if it's llx or lx. diff --git a/0185-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch b/0185-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch index 2940f995..4855617c 100644 --- a/0185-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch +++ b/0185-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch @@ -1,7 +1,7 @@ From 41a50aa2c275076caa2f9fe7a747eeb054abed16 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:42:57 -0400 -Subject: [PATCH 185/250] Don't use dynamic sized arrays since we don't build +Subject: [PATCH 185/251] Don't use dynamic sized arrays since we don't build with -std=c99 --- diff --git a/0186-don-t-ignore-const.patch b/0186-don-t-ignore-const.patch index 7c5f1d58..e9d8ac09 100644 --- a/0186-don-t-ignore-const.patch +++ b/0186-don-t-ignore-const.patch @@ -1,7 +1,7 @@ From d06e2578107f217d2bc8beee7fd0dc7f2645873d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:43:22 -0400 -Subject: [PATCH 186/250] don't ignore const +Subject: [PATCH 186/251] don't ignore const --- grub-core/net/tftp.c | 2 +- diff --git a/0187-don-t-use-int-for-efi-status.patch b/0187-don-t-use-int-for-efi-status.patch index 1d52dcc3..9d8c217b 100644 --- a/0187-don-t-use-int-for-efi-status.patch +++ b/0187-don-t-use-int-for-efi-status.patch @@ -1,7 +1,7 @@ From 6d86c59c24e12c8e8471cdd2affca574fdee160d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:44:59 -0400 -Subject: [PATCH 187/250] don't use int for efi status +Subject: [PATCH 187/251] don't use int for efi status --- grub-core/kern/efi/efi.c | 2 +- diff --git a/0188-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch b/0188-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch index 5a2fcfc1..ab480ea1 100644 --- a/0188-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch +++ b/0188-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch @@ -1,7 +1,7 @@ From ba6828d073bbda85eba59a9ce9220eada51a540b Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:46:23 -0400 -Subject: [PATCH 188/250] make GRUB_MOD_INIT() declare its function prototypes. +Subject: [PATCH 188/251] make GRUB_MOD_INIT() declare its function prototypes. --- include/grub/dl.h | 2 ++ diff --git a/0189-Clean-up-some-errors-in-the-linuxefi-loader.patch b/0189-Clean-up-some-errors-in-the-linuxefi-loader.patch index 6736d40a..0236e8af 100644 --- a/0189-Clean-up-some-errors-in-the-linuxefi-loader.patch +++ b/0189-Clean-up-some-errors-in-the-linuxefi-loader.patch @@ -1,7 +1,7 @@ From 8bdc0c77919ddb9bd588ac45e96c96497683f76c Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 24 May 2017 15:58:18 -0400 -Subject: [PATCH 189/250] Clean up some errors in the linuxefi loader +Subject: [PATCH 189/251] Clean up some errors in the linuxefi loader Signed-off-by: Peter Jones --- diff --git a/0190-editenv-handle-relative-symlinks.patch b/0190-editenv-handle-relative-symlinks.patch index 23f5bbf1..03546961 100644 --- a/0190-editenv-handle-relative-symlinks.patch +++ b/0190-editenv-handle-relative-symlinks.patch @@ -1,7 +1,7 @@ From 098987b7b5fcc15a5ba3600fa132fcec36095c5a Mon Sep 17 00:00:00 2001 From: Jonathan Lebon Date: Mon, 14 Aug 2017 14:37:20 -0400 -Subject: [PATCH 190/250] editenv: handle relative symlinks +Subject: [PATCH 190/251] editenv: handle relative symlinks Handle symlinks with targets relative to the containing dir. This ensures that the rename operation does not depend on the cwd. diff --git a/0191-Make-libgrub.pp-depend-on-config-util.h.patch b/0191-Make-libgrub.pp-depend-on-config-util.h.patch index 6a04f06b..17bf2255 100644 --- a/0191-Make-libgrub.pp-depend-on-config-util.h.patch +++ b/0191-Make-libgrub.pp-depend-on-config-util.h.patch @@ -1,7 +1,7 @@ From c86299049c2cc0503728deee280d9f6bf50886f4 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 23 Aug 2017 10:37:27 -0400 -Subject: [PATCH 191/250] Make libgrub.pp depend on config-util.h +Subject: [PATCH 191/251] Make libgrub.pp depend on config-util.h If you build with "make -j48" a lot, sometimes you see: diff --git a/0192-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch b/0192-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch index ae974187..fd56bcb3 100644 --- a/0192-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch +++ b/0192-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch @@ -1,7 +1,7 @@ From 351799d9310a4bec23ed4074444780c2a35435fd Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 20 Apr 2017 13:29:06 -0400 -Subject: [PATCH 192/250] Don't guess /boot/efi/ as HFS+ on ppc machines in +Subject: [PATCH 192/251] Don't guess /boot/efi/ as HFS+ on ppc machines in grub-install This should never be trying this, and since we've consolidated the diff --git a/0193-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch b/0193-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch index 49028161..ba5aba84 100644 --- a/0193-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch +++ b/0193-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch @@ -1,7 +1,7 @@ From cba0322cd88baf136ac693f5ec1826f3314daeff Mon Sep 17 00:00:00 2001 From: Konrad Rzeszutek Wilk Date: Mon, 28 Aug 2017 13:51:14 -0400 -Subject: [PATCH 193/250] Fix util/grub.d/20_linux_xen.in: Add xen_boot command +Subject: [PATCH 193/251] Fix util/grub.d/20_linux_xen.in: Add xen_boot command support for aarch64 Commit d33045ce7ffcb7c1e4a60c14d5ca64b36e3c5abe introduced diff --git a/0194-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch b/0194-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch index 6a02ef54..3a194072 100644 --- a/0194-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch +++ b/0194-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch @@ -1,7 +1,7 @@ From 87c089b6f1945ebcc690697d279c74284f1b4072 Mon Sep 17 00:00:00 2001 From: Konrad Rzeszutek Wilk Date: Mon, 28 Aug 2017 13:59:12 -0400 -Subject: [PATCH 194/250] Use grub-file to figure out whether multiboot2 should +Subject: [PATCH 194/251] Use grub-file to figure out whether multiboot2 should be used for Xen.gz The multiboot2 is much more preferable than multiboot. Especiall diff --git a/0195-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch b/0195-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch index 2becd994..a2d455a8 100644 --- a/0195-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch +++ b/0195-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch @@ -1,7 +1,7 @@ From 92d3db585076d022521ab94a2ceed03eb05013fc Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 19 Oct 2017 11:29:11 -0400 -Subject: [PATCH 195/250] 20_linux_xen: load xen or multiboot{,2} modules as +Subject: [PATCH 195/251] 20_linux_xen: load xen or multiboot{,2} modules as needed. Signed-off-by: Peter Jones diff --git a/0196-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch b/0196-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch index 8d9989db..9daba9ea 100644 --- a/0196-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch +++ b/0196-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch @@ -1,7 +1,7 @@ From 2e5b957292d3f313d48bded25e8ca83468326c5b Mon Sep 17 00:00:00 2001 From: "David E. Box" Date: Fri, 15 Sep 2017 15:37:05 -0700 -Subject: [PATCH 196/250] tsc: Change default tsc calibration method to pmtimer +Subject: [PATCH 196/251] tsc: Change default tsc calibration method to pmtimer on EFI systems On efi systems, make pmtimer based tsc calibration the default over the diff --git a/0197-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch b/0197-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch index e7e8fec1..1a6eac7e 100644 --- a/0197-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch +++ b/0197-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch @@ -1,7 +1,7 @@ From 0b158c30810db86f549cabd6e6021ab15962370d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 7 Nov 2017 17:12:17 -0500 -Subject: [PATCH 197/250] Make pmtimer tsc calibration not take 51 seconds to +Subject: [PATCH 197/251] Make pmtimer tsc calibration not take 51 seconds to fail. On my laptop running at 2.4GHz, if I run a VM where tsc calibration diff --git a/0198-align-struct-efi_variable-better.patch b/0198-align-struct-efi_variable-better.patch index bdda5a16..bb96eadb 100644 --- a/0198-align-struct-efi_variable-better.patch +++ b/0198-align-struct-efi_variable-better.patch @@ -1,7 +1,7 @@ From 2485633ada06c11c07a34a696a92b14e58f1e846 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 27 Feb 2018 13:55:35 -0500 -Subject: [PATCH 198/250] align struct efi_variable better... +Subject: [PATCH 198/251] align struct efi_variable better... --- include/grub/efiemu/runtime.h | 2 +- diff --git a/0199-Add-quicksort-implementation.patch b/0199-Add-quicksort-implementation.patch index f9fc581e..2fda707c 100644 --- a/0199-Add-quicksort-implementation.patch +++ b/0199-Add-quicksort-implementation.patch @@ -1,7 +1,7 @@ From a2cd100d71711b950beaf60ea7ddca4c77a70d59 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 9 Dec 2016 15:39:47 -0500 -Subject: [PATCH 199/250] Add quicksort implementation +Subject: [PATCH 199/251] Add quicksort implementation This will be used to sort the boot menu entries that are read from the BootLoaderSpec config files. diff --git a/0200-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch b/0200-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch index 2ac95040..8629d692 100644 --- a/0200-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch +++ b/0200-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch @@ -1,7 +1,7 @@ From ed595feeea2f7b7fd0158d42fa2fd39420eea683 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 9 Dec 2016 15:40:58 -0500 -Subject: [PATCH 200/250] Add blscfg command support to parse BootLoaderSpec +Subject: [PATCH 200/251] Add blscfg command support to parse BootLoaderSpec config fragments The BootLoaderSpec (BLS) defines a scheme where different bootloaders can diff --git a/0201-Add-BLS-support-to-grub-mkconfig.patch b/0201-Add-BLS-support-to-grub-mkconfig.patch index e58ac065..a8847dfd 100644 --- a/0201-Add-BLS-support-to-grub-mkconfig.patch +++ b/0201-Add-BLS-support-to-grub-mkconfig.patch @@ -1,7 +1,7 @@ From d847a4806bb7a4f3b457d0074d712e500fbd5e97 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 9 Dec 2016 15:40:29 -0500 -Subject: [PATCH 201/250] Add BLS support to grub-mkconfig +Subject: [PATCH 201/251] Add BLS support to grub-mkconfig GRUB now has BootLoaderSpec support, the user can choose to use this by setting GRUB_ENABLE_BLSCFG to true in /etc/default/grub. On this setup, diff --git a/0202-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch b/0202-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch index 69c14f36..72bb48e7 100644 --- a/0202-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch +++ b/0202-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch @@ -1,7 +1,7 @@ From 2d7dabdbf322e8f679eeaefd48cb26b083cdeb1c Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 6 Feb 2018 11:02:09 +0100 -Subject: [PATCH 202/250] Remove duplicated grub_exit() definition for grub-emu +Subject: [PATCH 202/251] Remove duplicated grub_exit() definition for grub-emu platform The grub_exit() function signature was changed on all platforms to take a diff --git a/0203-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch b/0203-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch index 8c3b3238..48fd28fc 100644 --- a/0203-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch +++ b/0203-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch @@ -1,7 +1,7 @@ From f45946a92377c83ffcad8dbc3298fc26072567d9 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 6 Feb 2018 11:16:28 +0100 -Subject: [PATCH 203/250] Don't attempt to backtrace on grub_abort() for +Subject: [PATCH 203/251] Don't attempt to backtrace on grub_abort() for grub-emu The emu platform doesn't have a grub_backtrace() implementation, so this diff --git a/0204-Enable-blscfg-command-for-the-emu-platform.patch b/0204-Enable-blscfg-command-for-the-emu-platform.patch index a470f1d2..7b82fbc5 100644 --- a/0204-Enable-blscfg-command-for-the-emu-platform.patch +++ b/0204-Enable-blscfg-command-for-the-emu-platform.patch @@ -1,7 +1,7 @@ From 39bb86c661911f06ff40caa842a9babf18f27c8b Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Fri, 2 Feb 2018 11:36:29 +0100 -Subject: [PATCH 204/250] Enable blscfg command for the emu platform +Subject: [PATCH 204/251] Enable blscfg command for the emu platform Allow grub-emu to call a blscfg command. This may be useful for platforms that don't support GRUB, so grub-emu can be used to parse the BLS configs diff --git a/0205-Add-linux-and-initrd-commands-for-grub-emu.patch b/0205-Add-linux-and-initrd-commands-for-grub-emu.patch index 0c3b7a15..04dd5117 100644 --- a/0205-Add-linux-and-initrd-commands-for-grub-emu.patch +++ b/0205-Add-linux-and-initrd-commands-for-grub-emu.patch @@ -1,7 +1,7 @@ From 49c719a6f6e223b95733e18720a48993ab6e5317 Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Tue, 6 Feb 2018 09:09:00 +0100 -Subject: [PATCH 205/250] Add linux and initrd commands for grub-emu +Subject: [PATCH 205/251] Add linux and initrd commands for grub-emu When using grub-emu, the linux and initrd commands are used as arguments to the kexec command line tool, to allow booting the selected menu entry. diff --git a/0206-Fix-the-efidir-in-grub-setpassword.patch b/0206-Fix-the-efidir-in-grub-setpassword.patch index 478709de..3c804bbe 100644 --- a/0206-Fix-the-efidir-in-grub-setpassword.patch +++ b/0206-Fix-the-efidir-in-grub-setpassword.patch @@ -1,7 +1,7 @@ From c7c6cb4380f5bd85a2cbe747433657fdce89a802 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 15 Mar 2018 14:12:54 -0400 -Subject: [PATCH 206/250] Fix the efidir in grub-setpassword +Subject: [PATCH 206/251] Fix the efidir in grub-setpassword Signed-off-by: Peter Jones --- diff --git a/0207-Add-grub2-switch-to-blscfg.patch b/0207-Add-grub2-switch-to-blscfg.patch index 72dd4f98..9fdb6db1 100644 --- a/0207-Add-grub2-switch-to-blscfg.patch +++ b/0207-Add-grub2-switch-to-blscfg.patch @@ -1,7 +1,7 @@ From 89b3a570de8b5e7ad19769983a87f6e10024f0ec Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 15 Mar 2018 14:12:40 -0400 -Subject: [PATCH 207/250] Add grub2-switch-to-blscfg +Subject: [PATCH 207/251] Add grub2-switch-to-blscfg Signed-off-by: Peter Jones --- diff --git a/0208-Add-grub_debug_enabled.patch b/0208-Add-grub_debug_enabled.patch index 772caa33..ffeea164 100644 --- a/0208-Add-grub_debug_enabled.patch +++ b/0208-Add-grub_debug_enabled.patch @@ -1,7 +1,7 @@ From 6776773c89828c9b69c1552760ba6a4d9cd5589f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 30 Nov 2017 15:11:39 -0500 -Subject: [PATCH 208/250] Add grub_debug_enabled() +Subject: [PATCH 208/251] Add grub_debug_enabled() --- grub-core/kern/misc.c | 21 ++++++++++++++++----- diff --git a/0209-make-better-backtraces.patch b/0209-make-better-backtraces.patch index d8473693..72a53885 100644 --- a/0209-make-better-backtraces.patch +++ b/0209-make-better-backtraces.patch @@ -1,7 +1,7 @@ From 318ee04aadcda40b779b2a5314dd23ead165f896 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 6 Nov 2017 18:31:56 -0500 -Subject: [PATCH 209/250] make better backtraces +Subject: [PATCH 209/251] make better backtraces Signed-off-by: Peter Jones --- diff --git a/0210-normal-don-t-draw-our-startup-message-if-debug-is-se.patch b/0210-normal-don-t-draw-our-startup-message-if-debug-is-se.patch index e9f9e80e..77db000d 100644 --- a/0210-normal-don-t-draw-our-startup-message-if-debug-is-se.patch +++ b/0210-normal-don-t-draw-our-startup-message-if-debug-is-se.patch @@ -1,7 +1,7 @@ From 81d0e079ea5aa6f43daf12f7a8698d0bcd1a36f8 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 9 Nov 2017 15:58:52 -0500 -Subject: [PATCH 210/250] normal: don't draw our startup message if debug is +Subject: [PATCH 210/251] normal: don't draw our startup message if debug is set --- diff --git a/0211-Work-around-some-minor-include-path-weirdnesses.patch b/0211-Work-around-some-minor-include-path-weirdnesses.patch index 89c36dcc..3d1dc0d1 100644 --- a/0211-Work-around-some-minor-include-path-weirdnesses.patch +++ b/0211-Work-around-some-minor-include-path-weirdnesses.patch @@ -1,7 +1,7 @@ From e2bba0f7ee8e56c68e425853a21a8fdd766add70 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 16 Mar 2018 13:28:57 -0400 -Subject: [PATCH 211/250] Work around some minor include path weirdnesses +Subject: [PATCH 211/251] Work around some minor include path weirdnesses Signed-off-by: Peter Jones --- diff --git a/0212-Make-it-possible-to-enabled-build-id-sha1.patch b/0212-Make-it-possible-to-enabled-build-id-sha1.patch index 057ba2cc..2cbec319 100644 --- a/0212-Make-it-possible-to-enabled-build-id-sha1.patch +++ b/0212-Make-it-possible-to-enabled-build-id-sha1.patch @@ -1,7 +1,7 @@ From 8521929bcf671b465d6450b969d11617b6aec608 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 25 Jun 2015 15:41:06 -0400 -Subject: [PATCH 212/250] Make it possible to enabled --build-id=sha1 +Subject: [PATCH 212/251] Make it possible to enabled --build-id=sha1 Signed-off-by: Peter Jones --- diff --git a/0213-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch b/0213-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch index 60c04f43..28f48fa8 100644 --- a/0213-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch +++ b/0213-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch @@ -1,7 +1,7 @@ From 8c4b2eaa204f0ea0377ca4592d2be6029fdb9be7 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Sun, 28 Jun 2015 13:09:58 -0400 -Subject: [PATCH 213/250] Add grub_qdprintf() - grub_dprintf() without the +Subject: [PATCH 213/251] Add grub_qdprintf() - grub_dprintf() without the file+line number. This just makes copy+paste of our debug loading info easier. diff --git a/0214-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch b/0214-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch index 111cf9ec..8722f974 100644 --- a/0214-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch +++ b/0214-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch @@ -1,7 +1,7 @@ From 030095a01a205aba04a0849ac0c0329ac429a9ed Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 25 Jun 2015 15:11:36 -0400 -Subject: [PATCH 214/250] Make a "gdb" dprintf that tells us load addresses. +Subject: [PATCH 214/251] Make a "gdb" dprintf that tells us load addresses. This makes a grub_dprintf() call during platform init and during module loading that tells us the virtual addresses of the .text and .data diff --git a/0215-Only-attempt-to-scan-different-BLS-directories-on-EF.patch b/0215-Only-attempt-to-scan-different-BLS-directories-on-EF.patch index 813c5a09..676d23f0 100644 --- a/0215-Only-attempt-to-scan-different-BLS-directories-on-EF.patch +++ b/0215-Only-attempt-to-scan-different-BLS-directories-on-EF.patch @@ -1,7 +1,7 @@ From 5f0417c63a4dd2252a5a801568f4369ac74a47e6 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 3 Apr 2018 15:42:47 +0200 -Subject: [PATCH 215/250] Only attempt to scan different BLS directories on EFI +Subject: [PATCH 215/251] Only attempt to scan different BLS directories on EFI machines Current BLS support attempted to scan for BLS directories, but this only diff --git a/0216-Core-TPM-support.patch b/0216-Core-TPM-support.patch index d093ec78..deb65a5f 100644 --- a/0216-Core-TPM-support.patch +++ b/0216-Core-TPM-support.patch @@ -1,7 +1,7 @@ From 65be94a64a5608209561ba0914d29445d81bf4b2 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 14 Jul 2015 17:06:35 -0700 -Subject: [PATCH 216/250] Core TPM support +Subject: [PATCH 216/251] Core TPM support Add support for performing basic TPM measurements. Right now this only supports extending PCRs statically and only on UEFI and BIOS systems, but diff --git a/0217-Measure-kernel-initrd.patch b/0217-Measure-kernel-initrd.patch index 9e4087c0..4b05967e 100644 --- a/0217-Measure-kernel-initrd.patch +++ b/0217-Measure-kernel-initrd.patch @@ -1,7 +1,7 @@ From ffd305d09def6610ef96f928c0df8303c5529d63 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Thu, 16 Jul 2015 15:22:34 -0700 -Subject: [PATCH 217/250] Measure kernel + initrd +Subject: [PATCH 217/251] Measure kernel + initrd Measure the kernel and initrd when loaded on UEFI systems --- diff --git a/0218-Add-BIOS-boot-measurement.patch b/0218-Add-BIOS-boot-measurement.patch index 8f9adfe7..0c68e3c3 100644 --- a/0218-Add-BIOS-boot-measurement.patch +++ b/0218-Add-BIOS-boot-measurement.patch @@ -1,7 +1,7 @@ From d8870587d46f8aa8d4f8db2cdcddecc829993447 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 15:48:51 -0700 -Subject: [PATCH 218/250] Add BIOS boot measurement +Subject: [PATCH 218/251] Add BIOS boot measurement Measure the on-disk grub core on BIOS systems - unlike UEFI, the firmware can't do this stage for us. diff --git a/0219-Measure-kernel-and-initrd-on-BIOS-systems.patch b/0219-Measure-kernel-and-initrd-on-BIOS-systems.patch index 756d5c1e..a952a52b 100644 --- a/0219-Measure-kernel-and-initrd-on-BIOS-systems.patch +++ b/0219-Measure-kernel-and-initrd-on-BIOS-systems.patch @@ -1,7 +1,7 @@ From 5aee2444093cfc8006865766f89e5a775a940ab1 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 16:28:29 -0700 -Subject: [PATCH 219/250] Measure kernel and initrd on BIOS systems +Subject: [PATCH 219/251] Measure kernel and initrd on BIOS systems Measure the kernel and initrd when loaded on BIOS systems --- diff --git a/0220-Measure-the-kernel-commandline.patch b/0220-Measure-the-kernel-commandline.patch index c4a9b56a..6e78a915 100644 --- a/0220-Measure-the-kernel-commandline.patch +++ b/0220-Measure-the-kernel-commandline.patch @@ -1,7 +1,7 @@ From c1694574d6eb287e6e181dd018fe54b718a613b3 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 16:32:29 -0700 -Subject: [PATCH 220/250] Measure the kernel commandline +Subject: [PATCH 220/251] Measure the kernel commandline Measure the kernel commandline to ensure that it hasn't been modified --- diff --git a/0221-Measure-commands.patch b/0221-Measure-commands.patch index 57cd556b..cd308632 100644 --- a/0221-Measure-commands.patch +++ b/0221-Measure-commands.patch @@ -1,7 +1,7 @@ From c93a27f2e6a323a4985e6fe902eb5c6447fca572 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Mon, 10 Aug 2015 15:27:12 -0700 -Subject: [PATCH 221/250] Measure commands +Subject: [PATCH 221/251] Measure commands Measure each command executed by grub, which includes script execution. --- diff --git a/0222-Measure-multiboot-images-and-modules.patch b/0222-Measure-multiboot-images-and-modules.patch index 25d322c7..7e74078f 100644 --- a/0222-Measure-multiboot-images-and-modules.patch +++ b/0222-Measure-multiboot-images-and-modules.patch @@ -1,7 +1,7 @@ From b164ec560cd6373c0c5d8a189d70baeca2c3ef13 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 1 Sep 2015 16:02:55 -0700 -Subject: [PATCH 222/250] Measure multiboot images and modules +Subject: [PATCH 222/251] Measure multiboot images and modules --- grub-core/loader/i386/multiboot_mbi.c | 3 +++ diff --git a/0223-Fix-boot-when-there-s-no-TPM.patch b/0223-Fix-boot-when-there-s-no-TPM.patch index 4a0f4271..7b33b344 100644 --- a/0223-Fix-boot-when-there-s-no-TPM.patch +++ b/0223-Fix-boot-when-there-s-no-TPM.patch @@ -1,7 +1,7 @@ From 33fb6113d65a819496d0b67b8db071fedad845a7 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Wed, 23 Mar 2016 16:49:42 -0700 -Subject: [PATCH 223/250] Fix boot when there's no TPM +Subject: [PATCH 223/251] Fix boot when there's no TPM If the firmware has TPM support but has no TPM, we're jumping to core.img without popping the registers back onto the stack. Fix that. diff --git a/0224-Rework-TPM-measurements.patch b/0224-Rework-TPM-measurements.patch index 87090f82..2168d9f0 100644 --- a/0224-Rework-TPM-measurements.patch +++ b/0224-Rework-TPM-measurements.patch @@ -1,7 +1,7 @@ From 415072bbda8b4de133c6dc6add230e41ee6d9579 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Wed, 23 Mar 2016 17:03:43 -0700 -Subject: [PATCH 224/250] Rework TPM measurements +Subject: [PATCH 224/251] Rework TPM measurements Rework TPM measurements to use fewer PCRs. After discussion with upstream, it's preferable to avoid using so many PCRs. Instead, measure into PCRs 8 diff --git a/0225-Fix-event-log-prefix.patch b/0225-Fix-event-log-prefix.patch index 71c1316a..7fb3ec9a 100644 --- a/0225-Fix-event-log-prefix.patch +++ b/0225-Fix-event-log-prefix.patch @@ -1,7 +1,7 @@ From 0816621235226952a5bd0cfd027eb97ff84df547 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 29 Mar 2016 15:36:49 -0700 -Subject: [PATCH 225/250] Fix event log prefix +Subject: [PATCH 225/251] Fix event log prefix We're not passing the prefixed version of the description to the event log. Fix that. diff --git a/0226-Set-the-first-boot-menu-entry-as-default-when-using-.patch b/0226-Set-the-first-boot-menu-entry-as-default-when-using-.patch index 9a430ac1..95d371a1 100644 --- a/0226-Set-the-first-boot-menu-entry-as-default-when-using-.patch +++ b/0226-Set-the-first-boot-menu-entry-as-default-when-using-.patch @@ -1,7 +1,7 @@ From 8278e40fdc4a4db0865fc632cbe2dcf7c124ba7a Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Fri, 6 Apr 2018 14:08:36 +0200 -Subject: [PATCH 226/250] Set the first boot menu entry as default when using +Subject: [PATCH 226/251] Set the first boot menu entry as default when using BLS fragments When BootLoaderSpec configuration files are used, the default boot menu diff --git a/0227-tpm-fix-warnings-when-compiling-for-platforms-other-.patch b/0227-tpm-fix-warnings-when-compiling-for-platforms-other-.patch index 4332b6da..ac875ba8 100644 --- a/0227-tpm-fix-warnings-when-compiling-for-platforms-other-.patch +++ b/0227-tpm-fix-warnings-when-compiling-for-platforms-other-.patch @@ -1,7 +1,7 @@ From 4c53f61b1a889c0f55e76a763b05b6686ec613b8 Mon Sep 17 00:00:00 2001 From: Michael Marineau Date: Sun, 21 Aug 2016 18:24:58 -0700 -Subject: [PATCH 227/250] tpm: fix warnings when compiling for platforms other +Subject: [PATCH 227/251] tpm: fix warnings when compiling for platforms other than pc and efi --- diff --git a/0228-Make-TPM-errors-less-fatal.patch b/0228-Make-TPM-errors-less-fatal.patch index ee52d583..89d1000c 100644 --- a/0228-Make-TPM-errors-less-fatal.patch +++ b/0228-Make-TPM-errors-less-fatal.patch @@ -1,7 +1,7 @@ From 406f7dda0cc2689170f102341a546c87072d1ce5 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Thu, 13 Oct 2016 13:55:26 -0700 -Subject: [PATCH 228/250] Make TPM errors less fatal +Subject: [PATCH 228/251] Make TPM errors less fatal Handle TPM errors, and stop trying to use the TPM once we hit one. --- diff --git a/0229-blscfg-handle-multiple-initramfs-images.patch b/0229-blscfg-handle-multiple-initramfs-images.patch index 9f58db61..aede0239 100644 --- a/0229-blscfg-handle-multiple-initramfs-images.patch +++ b/0229-blscfg-handle-multiple-initramfs-images.patch @@ -1,7 +1,7 @@ From a230ec5c31d818c2f046acf3592a5492d3e2ea69 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 11 Apr 2018 13:44:29 -0400 -Subject: [PATCH 229/250] blscfg: handle multiple initramfs images. +Subject: [PATCH 229/251] blscfg: handle multiple initramfs images. Signed-off-by: Peter Jones --- diff --git a/0230-BLS-Fix-grub2-switch-to-blscfg-on-non-EFI-machines.patch b/0230-BLS-Fix-grub2-switch-to-blscfg-on-non-EFI-machines.patch index f9bde561..b0e1a5fb 100644 --- a/0230-BLS-Fix-grub2-switch-to-blscfg-on-non-EFI-machines.patch +++ b/0230-BLS-Fix-grub2-switch-to-blscfg-on-non-EFI-machines.patch @@ -1,7 +1,7 @@ From f006df881d1b2b3ca7320ecfcd33181295ec1018 Mon Sep 17 00:00:00 2001 From: Jan Hlavac Date: Tue, 10 Apr 2018 16:07:36 +0200 -Subject: [PATCH 230/250] BLS: Fix grub2-switch-to-blscfg on non-EFI machines +Subject: [PATCH 230/251] BLS: Fix grub2-switch-to-blscfg on non-EFI machines On the non-EFI machines the grub2-switch-to-blscfg script places the BLS snippets into the /boot directory. But the right location is diff --git a/0231-BLS-Use-etcdefaultgrub-instead-of-etc.patch b/0231-BLS-Use-etcdefaultgrub-instead-of-etc.patch index 841af6c9..bb527af7 100644 --- a/0231-BLS-Use-etcdefaultgrub-instead-of-etc.patch +++ b/0231-BLS-Use-etcdefaultgrub-instead-of-etc.patch @@ -1,7 +1,7 @@ From 29b79fde633a43223ead7874ffd373603f129832 Mon Sep 17 00:00:00 2001 From: Jan Hlavac Date: Tue, 10 Apr 2018 16:56:28 +0200 -Subject: [PATCH 231/250] BLS: Use ${etcdefaultgrub} instead of /etc/... +Subject: [PATCH 231/251] BLS: Use ${etcdefaultgrub} instead of /etc/... Inside the grub-switch-to-blscfg script the ${etcdefaultgrub} variable is used. So replace the hardcoded /etc/default/grub with it. diff --git a/0232-Add-missing-options-to-grub2-switch-to-blscfg-man-pa.patch b/0232-Add-missing-options-to-grub2-switch-to-blscfg-man-pa.patch index b981eaea..8a2ecc27 100644 --- a/0232-Add-missing-options-to-grub2-switch-to-blscfg-man-pa.patch +++ b/0232-Add-missing-options-to-grub2-switch-to-blscfg-man-pa.patch @@ -1,7 +1,7 @@ From c3a05672a450fd9e95de5df2b0c27c24fe04cd83 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Wed, 11 Apr 2018 11:36:43 +0200 -Subject: [PATCH 232/250] Add missing options to grub2-switch-to-blscfg man +Subject: [PATCH 232/251] Add missing options to grub2-switch-to-blscfg man page The script --bls-directory and --backup-suffix options were not documented diff --git a/0233-Make-grub2-switch-to-blscfg-to-generate-debug-BLS-wh.patch b/0233-Make-grub2-switch-to-blscfg-to-generate-debug-BLS-wh.patch index 41d509e5..79476849 100644 --- a/0233-Make-grub2-switch-to-blscfg-to-generate-debug-BLS-wh.patch +++ b/0233-Make-grub2-switch-to-blscfg-to-generate-debug-BLS-wh.patch @@ -1,7 +1,7 @@ From 55b00d518e029a563653401c6908489924c07238 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Wed, 11 Apr 2018 11:49:24 +0200 -Subject: [PATCH 233/250] Make grub2-switch-to-blscfg to generate debug BLS +Subject: [PATCH 233/251] Make grub2-switch-to-blscfg to generate debug BLS when MAKEDEBUG is set If MAKEDEBUG=yes in /etc/sysconfig/kernel, then a debug menu entry should diff --git a/0234-Make-grub2-switch-to-blscfg-to-generate-BLS-fragment.patch b/0234-Make-grub2-switch-to-blscfg-to-generate-BLS-fragment.patch index a637b73f..348c0102 100644 --- a/0234-Make-grub2-switch-to-blscfg-to-generate-BLS-fragment.patch +++ b/0234-Make-grub2-switch-to-blscfg-to-generate-BLS-fragment.patch @@ -1,7 +1,7 @@ From 60bddbc714c96ca05821d52bdd7dbad7eabd6dd5 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Wed, 11 Apr 2018 12:39:59 +0200 -Subject: [PATCH 234/250] Make grub2-switch-to-blscfg to generate BLS fragment +Subject: [PATCH 234/251] Make grub2-switch-to-blscfg to generate BLS fragment for rescue kernel If a rescue image is available, it should have a BootLoaderSpec fragment. diff --git a/0235-Only-attempt-to-query-dev-mounted-in-boot-efi-as-boo.patch b/0235-Only-attempt-to-query-dev-mounted-in-boot-efi-as-boo.patch index 43002ec3..752ea390 100644 --- a/0235-Only-attempt-to-query-dev-mounted-in-boot-efi-as-boo.patch +++ b/0235-Only-attempt-to-query-dev-mounted-in-boot-efi-as-boo.patch @@ -1,7 +1,7 @@ From 8afe59812e83e78564697ef8241ed4f1b3527423 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 24 Apr 2018 02:16:38 +0200 -Subject: [PATCH 235/250] Only attempt to query dev mounted in /boot/efi as +Subject: [PATCH 235/251] Only attempt to query dev mounted in /boot/efi as boot dev on EFI machines The 10_linux script calls grub2-probe to probe the information for the dev diff --git a/0236-Include-OSTree-path-when-searching-kernels-images-if.patch b/0236-Include-OSTree-path-when-searching-kernels-images-if.patch index b52d2bb0..4ab6ae13 100644 --- a/0236-Include-OSTree-path-when-searching-kernels-images-if.patch +++ b/0236-Include-OSTree-path-when-searching-kernels-images-if.patch @@ -1,7 +1,7 @@ From 459eaeacbb40116dcb501cf165c7816e70c66fb3 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 24 Apr 2018 02:28:04 +0200 -Subject: [PATCH 236/250] Include OSTree path when searching kernels images if +Subject: [PATCH 236/251] Include OSTree path when searching kernels images if BLS config is enabled The OSTree based distros (i.e: Fedora Atomic) don't install kernel images diff --git a/0237-Use-BLS-version-field-to-compare-entries-if-id-field.patch b/0237-Use-BLS-version-field-to-compare-entries-if-id-field.patch index 9c78a6cc..bb0b7645 100644 --- a/0237-Use-BLS-version-field-to-compare-entries-if-id-field.patch +++ b/0237-Use-BLS-version-field-to-compare-entries-if-id-field.patch @@ -1,7 +1,7 @@ From 689a48c76bee8049a50f962852f43f108c815450 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Fri, 27 Apr 2018 17:53:41 +0200 -Subject: [PATCH 237/250] Use BLS version field to compare entries if id field +Subject: [PATCH 237/251] Use BLS version field to compare entries if id field isn't defined The BootLoaderSpec fragments generated by OSTree don't have the id field, diff --git a/0238-Add-version-field-to-BLS-generated-by-grub2-switch-t.patch b/0238-Add-version-field-to-BLS-generated-by-grub2-switch-t.patch index 3e07486c..9d824203 100644 --- a/0238-Add-version-field-to-BLS-generated-by-grub2-switch-t.patch +++ b/0238-Add-version-field-to-BLS-generated-by-grub2-switch-t.patch @@ -1,7 +1,7 @@ From 0994be8d655420685d900a08443b4fd53f639e72 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Thu, 10 May 2018 10:52:11 +0200 -Subject: [PATCH 238/250] Add version field to BLS generated by +Subject: [PATCH 238/251] Add version field to BLS generated by grub2-switch-to-blscfg The version field is present in the BLS fragments that are shipped in the diff --git a/0239-Fixup-for-newer-compiler.patch b/0239-Fixup-for-newer-compiler.patch index 544e8d09..e3908f33 100644 --- a/0239-Fixup-for-newer-compiler.patch +++ b/0239-Fixup-for-newer-compiler.patch @@ -1,7 +1,7 @@ From fe5e237fbe38fcbec4018b7e5d328b211bbabb2f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 10 May 2018 13:40:19 -0400 -Subject: [PATCH 239/250] Fixup for newer compiler +Subject: [PATCH 239/251] Fixup for newer compiler --- grub-core/fs/btrfs.c | 2 +- diff --git a/0240-Don-t-attempt-to-export-the-start-and-_start-symbols.patch b/0240-Don-t-attempt-to-export-the-start-and-_start-symbols.patch index 0c633537..f804cea8 100644 --- a/0240-Don-t-attempt-to-export-the-start-and-_start-symbols.patch +++ b/0240-Don-t-attempt-to-export-the-start-and-_start-symbols.patch @@ -1,7 +1,7 @@ From d03f1ebcdf88a1bf850730b9cbd1126894bdca76 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Sat, 12 May 2018 11:29:07 +0200 -Subject: [PATCH 240/250] Don't attempt to export the start and _start symbols +Subject: [PATCH 240/251] Don't attempt to export the start and _start symbols for grub-emu Commit 318ee04aadc ("make better backtraces") reworked the backtrace logic diff --git a/0241-Simplify-BLS-entry-key-val-pairs-lookup.patch b/0241-Simplify-BLS-entry-key-val-pairs-lookup.patch index f2d30eb9..d4d29008 100644 --- a/0241-Simplify-BLS-entry-key-val-pairs-lookup.patch +++ b/0241-Simplify-BLS-entry-key-val-pairs-lookup.patch @@ -1,7 +1,7 @@ From 385bb1bd33e9467eda798ea3a4ac16e86a40ce75 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Fri, 11 May 2018 23:47:31 +0200 -Subject: [PATCH 241/250] Simplify BLS entry key val pairs lookup +Subject: [PATCH 241/251] Simplify BLS entry key val pairs lookup The pairs found in the BLS are being sorted but this isn't really needed and it makes the implementation complex and error prone. diff --git a/0242-Add-relative-path-to-the-kernel-and-initrds-BLS-fiel.patch b/0242-Add-relative-path-to-the-kernel-and-initrds-BLS-fiel.patch index 36a0aa06..d99dec8b 100644 --- a/0242-Add-relative-path-to-the-kernel-and-initrds-BLS-fiel.patch +++ b/0242-Add-relative-path-to-the-kernel-and-initrds-BLS-fiel.patch @@ -1,7 +1,7 @@ From a24ca589707fa69fe7be9dc1007f4ae114994f9f Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Mon, 4 Jun 2018 16:10:22 +0200 -Subject: [PATCH 242/250] Add relative path to the kernel and initrds BLS +Subject: [PATCH 242/251] Add relative path to the kernel and initrds BLS fields if needed The static BLS config file shipped with the kernel package assumes that diff --git a/0243-Skip-leading-spaces-on-BLS-field-values.patch b/0243-Skip-leading-spaces-on-BLS-field-values.patch index e65d7d1e..c896f3a0 100644 --- a/0243-Skip-leading-spaces-on-BLS-field-values.patch +++ b/0243-Skip-leading-spaces-on-BLS-field-values.patch @@ -1,7 +1,7 @@ From a5bf618156915e97a0e7df07556ab728377de77e Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Thu, 7 Jun 2018 00:44:51 +0200 -Subject: [PATCH 243/250] Skip leading spaces on BLS field values +Subject: [PATCH 243/251] Skip leading spaces on BLS field values The GRUB 2 blscfg command doesn't parse correctly the BLS fields if these have extra spaces before the field values. For example, the following BLS diff --git a/0244-Fixup-for-newer-compiler.patch b/0244-Fixup-for-newer-compiler.patch index f6e4d991..4c16f96c 100644 --- a/0244-Fixup-for-newer-compiler.patch +++ b/0244-Fixup-for-newer-compiler.patch @@ -1,7 +1,7 @@ From df99134313f5571d8806d9121d04b8c8a5509d98 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 10 May 2018 13:40:19 -0400 -Subject: [PATCH 244/250] Fixup for newer compiler +Subject: [PATCH 244/251] Fixup for newer compiler --- conf/Makefile.common | 2 +- diff --git a/0245-TPM-Fix-hash_log_extend_event-function-prototype.patch b/0245-TPM-Fix-hash_log_extend_event-function-prototype.patch index 244cbba2..28105912 100644 --- a/0245-TPM-Fix-hash_log_extend_event-function-prototype.patch +++ b/0245-TPM-Fix-hash_log_extend_event-function-prototype.patch @@ -1,7 +1,7 @@ From a4fc13ebd23cb7a89ea678ed4e52b5142215671d Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Fri, 15 Jun 2018 09:25:00 +0200 -Subject: [PATCH 245/250] TPM: Fix hash_log_extend_event function prototype +Subject: [PATCH 245/251] TPM: Fix hash_log_extend_event function prototype The DataToHash argument is a efi_physical_address, not a *pointer* to a efi_physical_address. diff --git a/0246-TPM-Fix-compiler-warnings.patch b/0246-TPM-Fix-compiler-warnings.patch index c7ee57bb..cce6f1cb 100644 --- a/0246-TPM-Fix-compiler-warnings.patch +++ b/0246-TPM-Fix-compiler-warnings.patch @@ -1,7 +1,7 @@ From c850916d93293465abc8beb5bdebd0ab70035d88 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Fri, 15 Jun 2018 09:58:50 +0200 -Subject: [PATCH 246/250] TPM: Fix compiler warnings +Subject: [PATCH 246/251] TPM: Fix compiler warnings Stop defining our own Event type in tpm.c instead use the one from the header, so that it matches the function prototype. diff --git a/0247-grub-switch-to-blscfg.in-get-rid-of-a-bunch-of-bashi.patch b/0247-grub-switch-to-blscfg.in-get-rid-of-a-bunch-of-bashi.patch index 6bbe8979..87b3166a 100644 --- a/0247-grub-switch-to-blscfg.in-get-rid-of-a-bunch-of-bashi.patch +++ b/0247-grub-switch-to-blscfg.in-get-rid-of-a-bunch-of-bashi.patch @@ -1,7 +1,7 @@ From cee0bf1f56c89af640b23432f8b40fcd1f4a2f55 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 22 Jun 2018 14:01:06 -0400 -Subject: [PATCH 247/250] grub-switch-to-blscfg.in: get rid of a bunch of +Subject: [PATCH 247/251] grub-switch-to-blscfg.in: get rid of a bunch of bashisms Since this says /bin/sh at the top, it should work with dash. diff --git a/0248-grub-switch-to-blscfg.in-Better-boot-prefix-checking.patch b/0248-grub-switch-to-blscfg.in-Better-boot-prefix-checking.patch index 42135c31..c3773547 100644 --- a/0248-grub-switch-to-blscfg.in-Better-boot-prefix-checking.patch +++ b/0248-grub-switch-to-blscfg.in-Better-boot-prefix-checking.patch @@ -1,7 +1,7 @@ From b3ac18e3265f709b35fe0aa5578c6f4030882a4d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 22 Jun 2018 14:04:28 -0400 -Subject: [PATCH 248/250] grub-switch-to-blscfg.in: Better boot prefix checking +Subject: [PATCH 248/251] grub-switch-to-blscfg.in: Better boot prefix checking Signed-off-by: Peter Jones --- diff --git a/0249-Use-boot-loader-entries-as-BLS-directory-path-also-o.patch b/0249-Use-boot-loader-entries-as-BLS-directory-path-also-o.patch index e092c4d5..0fe81f3f 100644 --- a/0249-Use-boot-loader-entries-as-BLS-directory-path-also-o.patch +++ b/0249-Use-boot-loader-entries-as-BLS-directory-path-also-o.patch @@ -1,7 +1,7 @@ From fc5abde941409619f8c40b842e35e1820d4327dc Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Mon, 25 Jun 2018 11:45:33 +0200 -Subject: [PATCH 249/250] Use /boot/loader/entries as BLS directory path also +Subject: [PATCH 249/251] Use /boot/loader/entries as BLS directory path also on EFI systems For EFI systems, the BLS fragments were stored in the EFI System Partition diff --git a/0250-Use-BLS-fragment-filename-as-menu-entry-id-and-for-c.patch b/0250-Use-BLS-fragment-filename-as-menu-entry-id-and-for-c.patch index f1cd9b6e..f733bb42 100644 --- a/0250-Use-BLS-fragment-filename-as-menu-entry-id-and-for-c.patch +++ b/0250-Use-BLS-fragment-filename-as-menu-entry-id-and-for-c.patch @@ -1,7 +1,7 @@ From cc110d5dfd58a6ac1320f8b7c27b7ff8852c40e6 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 26 Jun 2018 14:01:26 +0200 -Subject: [PATCH 250/250] Use BLS fragment filename as menu entry id and for +Subject: [PATCH 250/251] Use BLS fragment filename as menu entry id and for criteria to sort The BLS config filenames are guaranteed to be unique, so they can be diff --git a/0251-Fix-grub-switch-to-blscfg-boot-prefix-handling.patch b/0251-Fix-grub-switch-to-blscfg-boot-prefix-handling.patch new file mode 100644 index 00000000..255c6584 --- /dev/null +++ b/0251-Fix-grub-switch-to-blscfg-boot-prefix-handling.patch @@ -0,0 +1,61 @@ +From 7065436d1c086d15933f76b7f490bcb5d094c9af Mon Sep 17 00:00:00 2001 +From: Javier Martinez Canillas +Date: Mon, 9 Jul 2018 12:19:03 +0200 +Subject: [PATCH 251/251] Fix grub-switch-to-blscfg boot prefix handling + +Commit b3ac18e3265f ("grub-switch-to-blscfg.in: Better boot prefix checking") +simplified the boot prefix checking, but unfortunately introduced a couple of +regressions on the script. Fix them. + +Signed-off-by: Javier Martinez Canillas +--- + util/grub-switch-to-blscfg.in | 12 +++++++----- + 1 file changed, 7 insertions(+), 5 deletions(-) + +diff --git a/util/grub-switch-to-blscfg.in b/util/grub-switch-to-blscfg.in +index 2f37a1f740b..40612e00686 100644 +--- a/util/grub-switch-to-blscfg.in ++++ b/util/grub-switch-to-blscfg.in +@@ -220,7 +220,8 @@ EOF + + for kernelver in $(cd /lib/modules/ ; ls -1) "" ; do + bls_target="${blsdir}/${MACHINE_ID}-${kernelver}.conf" +- linux="$(grep '^linux[ \t]' "${bls_target}" | sed -e 's,^linux[ \t]+,,')" ++ linux="/vmlinuz-${kernelver}" ++ linux_path="/boot${linux}" + kernel_dir="/lib/modules/${kernelver}" + + if [ ! -d "${kernel_dir}" ] ; then +@@ -230,8 +231,8 @@ for kernelver in $(cd /lib/modules/ ; ls -1) "" ; do + continue + fi + +- linux_relpath="$("${grub_mkrelpath}" "${linux}")" +- bootprefix="${linux%%"${linux_relpath}"}" ++ linux_relpath="$("${grub_mkrelpath}" "${linux_path}")" ++ bootprefix="${linux_relpath%%"${linux}"}" + + if [ -f "${kernel_dir}/bls.conf" ] ; then + cp -af "${kernel_dir}/bls.conf" "${bls_target}" +@@ -243,7 +244,8 @@ for kernelver in $(cd /lib/modules/ ; ls -1) "" ; do + fi + + if [ -n "${bootprefix}" ]; then +- sed -i -e "s,\([ \t]\)${bootprefix},\1,g" "${bls_target}" ++ sed -i -e "s,^\(linux[^ \t]*[ \t]\+\).*,\1${bootprefix}${linux},g" "${bls_target}" ++ sed -i -e "/^initrd/ s,\([ \t]\+\)\([^ \t]\+\),\1${bootprefix}\2,g" "${bls_target}" + fi + + if [ "x$GRUB_LINUX_MAKE_DEBUG" = "xtrue" ]; then +@@ -258,7 +260,7 @@ for kernelver in $(cd /lib/modules/ ; ls -1) "" ; do + fi + done + +-if [ -n "${bootprefix}" -a -f "/boot/vmlinuz-0-rescue-${MACHINE_ID}" ]; then ++if [ -f "/boot/vmlinuz-0-rescue-${MACHINE_ID}" ]; then + mkbls "0-rescue-${MACHINE_ID}" "0" "${bootprefix}" >"${blsdir}/${MACHINE_ID}-0-rescue.conf" + fi + +-- +2.17.1 + diff --git a/grub.patches b/grub.patches index 132f0284..e2fcc7a7 100644 --- a/grub.patches +++ b/grub.patches @@ -248,3 +248,4 @@ Patch0247: 0247-grub-switch-to-blscfg.in-get-rid-of-a-bunch-of-bashi.patch Patch0248: 0248-grub-switch-to-blscfg.in-Better-boot-prefix-checking.patch Patch0249: 0249-Use-boot-loader-entries-as-BLS-directory-path-also-o.patch Patch0250: 0250-Use-BLS-fragment-filename-as-menu-entry-id-and-for-c.patch +Patch0251: 0251-Fix-grub-switch-to-blscfg-boot-prefix-handling.patch diff --git a/grub2.spec b/grub2.spec index 84baefb4..095e56b7 100644 --- a/grub2.spec +++ b/grub2.spec @@ -7,7 +7,7 @@ Name: grub2 Epoch: 1 Version: 2.02 -Release: 38%{?dist} +Release: 39%{?dist} Summary: Bootloader with support for Linux, Multiboot and more Group: System Environment/Base License: GPLv3+ @@ -453,6 +453,9 @@ fi %endif %changelog +* Mon Jul 09 2018 pjones - 2.02-39 +- Fix my fix of grub2-switch-to-blscfg (javierm and pjones) + * Mon Jul 02 2018 Javier Martinez Canillas - 2.02-38 - Use BLS fragment filename as menu entry id and for sort criterion From 902c8e8602a43221a0c50ca4125330991d065da0 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 11 Jul 2018 14:57:33 -0400 Subject: [PATCH 36/45] Add some features to do-rebase Signed-off-by: Peter Jones --- 0001-Bump-version-to-2.03.patch | 5 +- 0002-Remove-bashisms-from-tests.patch | 5 +- 0003-fs-tester-make-sh-compatible.patch | 5 +- 0004-support-busybox-date.patch | 5 +- ...retrieve-fstime-when-it-s-not-useful.patch | 5 +- 0006-Support-lseek64.patch | 5 +- 0007-Use-SHELL-rather-than-bin-sh.patch | 5 +- 0008-po-Use-SHELL-rather-than-bin-sh.patch | 5 +- 0009-Add-termux-path-to-dict.patch | 5 +- 0010-Fix-shebang-for-termux.patch | 5 +- 0011-Add-strtoull-test.patch | 5 +- ...x-behaviour-on-chars-between-9-and-a.patch | 5 +- 0013-Add-Virtual-LAN-support.patch | 5 +- ...out-to-mkimage_generate_elfXX-rather.patch | 7 +- ...r-arm-uboot-code-to-make-it-genereic.patch | 5 +- ...-parts-that-are-platform-independent.patch | 5 +- ...-Rename-uboot-halt.c-to-dummy-halt.c.patch | 5 +- ...ame-uboot-datetime-to-dummy-datetime.patch | 5 +- 0019-arm-coreboot-Start-new-port.patch | 5 +- ...upport-for-device-tree-based-drivers.patch | 5 +- ...-coreboot-Support-for-vexpress-timer.patch | 5 +- 0022-arm-coreboot-Export-FDT-routines.patch | 5 +- ...-Split-protocol-from-controller-code.patch | 5 +- ...reboot-Support-keyboard-for-vexpress.patch | 5 +- ...m_coreboot-Support-grub-mkstandalone.patch | 5 +- ...oreboot-Support-loading-linux-images.patch | 5 +- 0027-arm_coreboot-Support-DMA.patch | 5 +- 0028-ehci-Split-core-code-from-PCI-part.patch | 5 +- 0029-arm_coreboot-Support-EHCI.patch | 5 +- ...n-FDT-nodes-with-compatible-property.patch | 5 +- ...ty-to-send-receive-messages-on-paren.patch | 7 +- 0032-rk3288_spi-Add-SPI-driver.patch | 5 +- ...eboot-Add-Chromebook-keyboard-driver.patch | 5 +- 0034-Missing-parts-of-previous-commit.patch | 5 +- ...-cbmemc-to-support-updated-console-f.patch | 7 +- ...t_keyboard-Fix-falco-chromebook-case.patch | 5 +- 0037-sparc64-Close-cdboot-ihandle.patch | 5 +- ...-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch | 5 +- ...p-option-support-in-xen_module-comma.patch | 6 +- ...inux_xen.in-Add-xen_boot-command-sup.patch | 7 +- ...-introduction-of-Xen-boot-commands-i.patch | 7 +- ...se-devspec-to-determine-the-OBP-path.patch | 5 +- ...unt-ext2-3-4-filesystems-that-have-t.patch | 7 +- 0044-ehci-Fix-compilation-for-amd64.patch | 5 +- ...-compilation-for-ppc-sparc-and-arm64.patch | 5 +- 0046-ehci-Fix-compilation-on-i386.patch | 5 +- 0047-crypto-Fix-use-after-free.patch | 5 +- 0048-arm-efi-Fix-compilation.patch | 5 +- 0049-fdt-silence-clang-warning.patch | 5 +- 0050-Fix-a-segfault-in-lsefi.patch | 5 +- ...t-typedef-and-use-grub_size_t-instea.patch | 6 +- ...x-reading-label-lvd.ident-is-dstring.patch | 5 +- ...b-core-fs-udf.c-Add-support-for-UUID.patch | 5 +- ...orriso-presence-before-doing-anythin.patch | 6 +- 0055-Fail-if-xorriso-failed.patch | 5 +- ...efi-refactor-grub_efi_allocate_pages.patch | 5 +- 0057-Remove-grub_efi_allocate_pages.patch | 5 +- 0058-efi-move-fdt-helper-library.patch | 5 +- 0059-efi-Add-GRUB_PE32_MAGIC-definition.patch | 5 +- ...inux-loader-improve-type-portability.patch | 5 +- ...allocation-type-to-GRUB_EFI_LOADER_C.patch | 6 +- ...RM_-definitions-when-handling-term-c.patch | 5 +- ...B_GZ-prefix-to-gzio-specific-defines.patch | 5 +- 0064-re-write-.gitignore.patch | 5 +- ...ient-architecture-CAS-reboot-support.patch | 5 +- ...nsole-display-attr-when-clear-screen.patch | 5 +- ...video-support-for-IBM-power-machines.patch | 5 +- ...when-generating-configuration-by-gru.patch | 5 +- 0069-Move-bash-completion-script-922997.patch | 5 +- 0070-Update-to-minilzo-2.08.patch | 5 +- ...o-include-entries-by-title-not-just-.patch | 7 +- 0072-Add-GRUB_DISABLE_UUID.patch | 5 +- 0073-Make-exit-take-a-return-code.patch | 5 +- ...pot-as-binary-so-git-won-t-try-to-di.patch | 7 +- ...es-load-an-env-block-from-a-variable.patch | 5 +- ...HCP-client-ID-and-UUID-options-added.patch | 5 +- ...-trim-arp-packets-with-abnormal-size.patch | 5 +- ...Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch | 5 +- ...UEFI-operating-systems-returned-by-o.patch | 6 +- 0080-Migrate-PPC-from-Yaboot-to-Grub2.patch | 5 +- 0081-Add-fw_path-variable-revised.patch | 5 +- 0082-Add-support-for-linuxefi.patch | 5 +- ...xefi-and-initrdefi-where-appropriate.patch | 5 +- ...w-insmod-when-secure-boot-is-enabled.patch | 5 +- ...-hex-hex-straight-through-unmolested.patch | 6 +- 0086-Add-X-option-to-printf-functions.patch | 5 +- ...for-specific-config-file-for-netboot.patch | 5 +- ...g-module-to-parse-Boot-Loader-Specif.patch | 7 +- 0089-Don-t-write-messages-to-the-screen.patch | 5 +- 0090-Don-t-print-GNU-GRUB-header.patch | 5 +- 0091-Don-t-add-to-highlighted-row.patch | 5 +- 0092-Message-string-cleanups.patch | 5 +- ...ing-now-that-we-aren-t-displaying-it.patch | 5 +- ...t-indentation-for-the-term-help-text.patch | 5 +- 0095-Indent-menu-entries.patch | 5 +- 0096-Fix-margins.patch | 5 +- ...-1-for-our-right-hand-margin-so-line.patch | 5 +- ...-Use-linux16-when-appropriate-880840.patch | 5 +- 0099-Enable-pager-by-default.-985860.patch | 5 +- ...-on-serial-so-don-t-tell-the-user-to.patch | 7 +- ...n-t-say-GNU-Linux-in-generated-menus.patch | 5 +- ...-Don-t-draw-a-border-around-the-menu.patch | 5 +- ...andard-margin-for-the-timeout-string.patch | 5 +- ...rame-to-list-of-relocations-stripped.patch | 5 +- ...rk-with-our-changes-for-linux16-and-.patch | 7 +- ...on-t-print-during-fdt-loading-method.patch | 5 +- ...spaces-when-we-re-doing-our-cmdline-.patch | 7 +- ...password-to-boot-entries-generated-b.patch | 5 +- 0109-Don-t-emit-Booting-.-message.patch | 5 +- ...f-man-pages-with-slightly-nicer-ones.patch | 5 +- ...ix-when-fallback-searching-for-grub-.patch | 6 +- ...-before-grub.cfg-on-tftp-config-file.patch | 6 +- ...ert-function-to-support-NVMe-devices.patch | 5 +- ...M-Mustang-device-tree-for-hardware-t.patch | 6 +- ...device-tree-from-the-grub-default-fi.patch | 6 +- ...P-protocol-for-exclusive-use-by-grub.patch | 5 +- ...P-protocol-for-exclusive-use-by-grub.patch | 6 +- 0118-Add-grub_util_readlink.patch | 5 +- ...se-symlinks-including-those-across-d.patch | 6 +- ...CLASS-in-10_linux-from-etc-os-releas.patch | 6 +- ...t-ordering-for-.debug-and-rescue-ker.patch | 6 +- 0122-Load-arm-with-SB-enabled.patch | 5 +- 0123-Try-prefix-if-fw_path-doesn-t-work.patch | 5 +- ...-grub.cfg-netboot-selection-order-11.patch | 6 +- ...-Package-Sort-for-grub2-mkconfig-112.patch | 6 +- 0126-Handle-rssd-storage-devices.patch | 5 +- ...x16-initrd16-and-linuxefi-initrdefi-.patch | 7 +- ...fig-construct-titles-that-look-like-.patch | 7 +- ...ly-grub2-password-config-tool-985962.patch | 5 +- ...fig-construct-titles-that-look-like-.patch | 7 +- ...-configure.ac-and-grub-rpm-sort-play.patch | 6 +- 0132-tcp-add-window-scaling-support.patch | 5 +- ...net-retransmit-if-our-device-is-busy.patch | 5 +- ...out-actually-using-the-configured-ne.patch | 7 +- ...r-for-the-first-exclusive-reopen-of-.patch | 6 +- ...ue-when-reading-username-and-passwor.patch | 5 +- ...ub-password-will-not-be-read-1290803.patch | 5 +- ...ub-setpassword-documentation-1290799.patch | 5 +- ...le-issue-in-grub-setpassword-1294243.patch | 5 +- ...rsistent-RAM-and-unknown-possible-fu.patch | 7 +- 0141-efiemu-Fix-compilation-failure.patch | 5 +- ...P-protocol-for-exclusive-use-by-grub.patch | 6 +- 0143-Add-a-url-parser.patch | 5 +- ...net-and-bootp-add-support-for-dhcpv6.patch | 5 +- ...rnel-settings-and-use-it-in-10_linux.patch | 5 +- 0146-Normalize-slashes-in-tftp-paths.patch | 5 +- 0147-Fix-malformed-tftp-packets.patch | 5 +- 0148-Fix-race-in-EFI-validation.patch | 5 +- ...1374141-fix-incorrect-mask-for-ppc64.patch | 5 +- ...art-of-chainloader-target-if-present.patch | 5 +- ...ecureboot-support-on-efi-chainloader.patch | 5 +- ...loaders-that-link-in-efi-mode-honor-.patch | 7 +- 0153-Make-grub_fatal-also-backtrace.patch | 5 +- 0154-Rework-linux-command.patch | 5 +- 0155-Rework-linux16-command.patch | 5 +- 0156-Make-grub-editenv-build-again.patch | 5 +- ...ix-up-some-man-pages-rpmdiff-noticed.patch | 5 +- ...-work-some-intricacies-of-PE-loading.patch | 5 +- ...-of-efi-chainload-so-non-sb-cases-wo.patch | 6 +- ...-double-free-on-verification-failure.patch | 5 +- ...machine-type-test-in-30_os-prober.in.patch | 5 +- ...fix-wrong-sanity-check-in-relocate_c.patch | 6 +- ...truncate-overlong-relocation-section.patch | 5 +- 0164-linuxefi-minor-cleanups.patch | 5 +- ...rch-64-on-32-boot-in-linuxefi-loader.patch | 5 +- 0166-Fix-up-linux-params-usage.patch | 5 +- 0167-Make-exit-take-a-return-code.patch | 5 +- ...fdt-has-address-cells-and-size-cells.patch | 7 +- ...rintf-in-the-secure-boot-verify-code.patch | 6 +- ...fo-pages-say-grub2-where-appropriate.patch | 5 +- ...more-debug-info-in-our-module-loader.patch | 5 +- ...-chainloader-entries-don-t-try-any-x.patch | 6 +- ...-Add-ability-to-boot-from-subvolumes.patch | 5 +- ...port-btrfs_subvol-and-btrfs_subvolid.patch | 5 +- 0175-grub2-btrfs-03-follow_default.patch | 5 +- 0176-grub2-btrfs-04-grub2-install.patch | 5 +- 0177-grub2-btrfs-05-grub2-mkconfig.patch | 5 +- 0178-grub2-btrfs-06-subvol-mount.patch | 5 +- ...ootable-Snapshot-submenu-in-grub.cfg.patch | 5 +- ...subvol-name-scheme-to-support-old-sn.patch | 7 +- ...-correctly-with-btrfs-snapshots-bsc-.patch | 6 +- ...ocate_pool-and-grub_efi_free_pool-wr.patch | 5 +- ...fi_.-memory-helpers-where-reasonable.patch | 5 +- 0184-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch | 5 +- ...c-sized-arrays-since-we-don-t-build-.patch | 7 +- 0186-don-t-ignore-const.patch | 5 +- 0187-don-t-use-int-for-efi-status.patch | 5 +- ...INIT-declare-its-function-prototypes.patch | 5 +- ...p-some-errors-in-the-linuxefi-loader.patch | 5 +- 0190-editenv-handle-relative-symlinks.patch | 5 +- ...e-libgrub.pp-depend-on-config-util.h.patch | 5 +- ...-efi-as-HFS-on-ppc-machines-in-grub-.patch | 5 +- ...20_linux_xen.in-Add-xen_boot-command.patch | 7 +- ...-figure-out-whether-multiboot2-shoul.patch | 7 +- ...d-xen-or-multiboot-2-modules-as-need.patch | 6 +- ...lt-tsc-calibration-method-to-pmtimer.patch | 7 +- ...-calibration-not-take-51-seconds-to-.patch | 6 +- 0198-align-struct-efi_variable-better.patch | 5 +- 0199-Add-quicksort-implementation.patch | 5 +- ...nd-support-to-parse-BootLoaderSpec-c.patch | 7 +- 0201-Add-BLS-support-to-grub-mkconfig.patch | 5 +- ...d-grub_exit-definition-for-grub-emu-.patch | 5 +- ...-backtrace-on-grub_abort-for-grub-em.patch | 6 +- ...-blscfg-command-for-the-emu-platform.patch | 5 +- ...nux-and-initrd-commands-for-grub-emu.patch | 5 +- 0206-Fix-the-efidir-in-grub-setpassword.patch | 5 +- 0207-Add-grub2-switch-to-blscfg.patch | 5 +- 0208-Add-grub_debug_enabled.patch | 5 +- 0209-make-better-backtraces.patch | 5 +- ...w-our-startup-message-if-debug-is-se.patch | 6 +- ...-some-minor-include-path-weirdnesses.patch | 5 +- ...it-possible-to-enabled-build-id-sha1.patch | 5 +- ...f-grub_dprintf-without-the-file-line.patch | 7 +- ...dprintf-that-tells-us-load-addresses.patch | 5 +- ...scan-different-BLS-directories-on-EF.patch | 5 +- 0216-Core-TPM-support.patch | 5 +- 0217-Measure-kernel-initrd.patch | 5 +- 0218-Add-BIOS-boot-measurement.patch | 5 +- ...re-kernel-and-initrd-on-BIOS-systems.patch | 5 +- 0220-Measure-the-kernel-commandline.patch | 5 +- 0221-Measure-commands.patch | 5 +- ...Measure-multiboot-images-and-modules.patch | 5 +- 0223-Fix-boot-when-there-s-no-TPM.patch | 5 +- 0224-Rework-TPM-measurements.patch | 5 +- 0225-Fix-event-log-prefix.patch | 5 +- ...ot-menu-entry-as-default-when-using-.patch | 7 +- ...-when-compiling-for-platforms-other-.patch | 7 +- 0228-Make-TPM-errors-less-fatal.patch | 5 +- ...cfg-handle-multiple-initramfs-images.patch | 5 +- ...switch-to-blscfg-on-non-EFI-machines.patch | 5 +- ...LS-Use-etcdefaultgrub-instead-of-etc.patch | 5 +- ...ons-to-grub2-switch-to-blscfg-man-pa.patch | 6 +- ...h-to-blscfg-to-generate-debug-BLS-wh.patch | 7 +- ...h-to-blscfg-to-generate-BLS-fragment.patch | 7 +- ...query-dev-mounted-in-boot-efi-as-boo.patch | 7 +- ...ath-when-searching-kernels-images-if.patch | 7 +- ...field-to-compare-entries-if-id-field.patch | 7 +- ...d-to-BLS-generated-by-grub2-switch-t.patch | 6 +- 0239-Fixup-for-newer-compiler.patch | 5 +- ...-export-the-start-and-_start-symbols.patch | 7 +- ...plify-BLS-entry-key-val-pairs-lookup.patch | 5 +- ...h-to-the-kernel-and-initrds-BLS-fiel.patch | 7 +- ...p-leading-spaces-on-BLS-field-values.patch | 5 +- 0244-Fixup-for-newer-compiler.patch | 5 +- ..._log_extend_event-function-prototype.patch | 5 +- 0246-TPM-Fix-compiler-warnings.patch | 5 +- ...lscfg.in-get-rid-of-a-bunch-of-bashi.patch | 6 +- ...lscfg.in-Better-boot-prefix-checking.patch | 5 +- ...entries-as-BLS-directory-path-also-o.patch | 7 +- ...-filename-as-menu-entry-id-and-for-c.patch | 7 +- ...witch-to-blscfg-boot-prefix-handling.patch | 5 +- ...it-possible-to-enabled-build-id-sha1.patch | 3 - do-rebase | 42 +- grub.macros | 18 +- grub2.spec | 1 + release-to-master.patch | 8970 +++++++++++++++++ 256 files changed, 9306 insertions(+), 1088 deletions(-) create mode 100644 release-to-master.patch diff --git a/0001-Bump-version-to-2.03.patch b/0001-Bump-version-to-2.03.patch index c1e2e6a3..a8ba8e85 100644 --- a/0001-Bump-version-to-2.03.patch +++ b/0001-Bump-version-to-2.03.patch @@ -1,7 +1,7 @@ From b0bad6fd9449d3333fe1ab58953c0e6c1ce12c0d Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Wed, 3 May 2017 11:55:52 +0200 -Subject: [PATCH 001/251] Bump version to 2.03 +Subject: [PATCH] Bump version to 2.03 --- configure.ac | 2 +- @@ -225,6 +225,3 @@ index 68d8ce7c775..921e57ff48d 100644 { "videotest", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x1368a483, 0x1368a483, 0x1368a483, 0x1368a483, 0x1368a483, }, 5 }, { "videotest", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0x7033079c, 0x7033079c, 0x7033079c, 0x7033079c, 0x7033079c, }, 5 }, { "videotest", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xff583fbf, 0xff583fbf, 0xff583fbf, 0xff583fbf, 0xff583fbf, }, 5 }, --- -2.17.1 - diff --git a/0002-Remove-bashisms-from-tests.patch b/0002-Remove-bashisms-from-tests.patch index 4f98446f..9509ae11 100644 --- a/0002-Remove-bashisms-from-tests.patch +++ b/0002-Remove-bashisms-from-tests.patch @@ -1,7 +1,7 @@ From 5a0c548ba388b343b0bb6d2a38888e7eac5bbb96 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 03:47:13 +0300 -Subject: [PATCH 002/251] Remove bashisms from tests. +Subject: [PATCH] Remove bashisms from tests. Those tests don't actually need bash. Just use common shebang. --- @@ -128,6 +128,3 @@ index d5ef7f9ea62..80ebdc59fd5 100644 # create a randome file file="`mktemp "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"`" || exit 1 --- -2.17.1 - diff --git a/0003-fs-tester-make-sh-compatible.patch b/0003-fs-tester-make-sh-compatible.patch index 95d7454d..039fbd31 100644 --- a/0003-fs-tester-make-sh-compatible.patch +++ b/0003-fs-tester-make-sh-compatible.patch @@ -1,7 +1,7 @@ From 37865c2c4ad26cd5e947b08abf1fde8145699919 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 14:35:59 +0300 -Subject: [PATCH 003/251] fs-tester: make sh-compatible +Subject: [PATCH] fs-tester: make sh-compatible --- tests/util/grub-fs-tester.in | 306 ++++++++++++++++++++++++------------------- @@ -741,6 +741,3 @@ index 2337771a1b9..4515d165e6e 100644 done if [ x"$fs" = x"zfs" ]; then rmdir "$MNTPOINTRW"/"grub fs" || true --- -2.17.1 - diff --git a/0004-support-busybox-date.patch b/0004-support-busybox-date.patch index 1f5b0660..4c460c84 100644 --- a/0004-support-busybox-date.patch +++ b/0004-support-busybox-date.patch @@ -1,7 +1,7 @@ From b43b8cacc813c2c15347de1e35cc88d9aa912d22 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 14:31:36 +0300 -Subject: [PATCH 004/251] support busybox date. +Subject: [PATCH] support busybox date. Busybox date doesn't understand weekdays in -d input, so strip them beforehand. @@ -38,6 +38,3 @@ index 05b8f6b73fa..ac51d42098e 100644 # Ignore QEMU bug if [ "${grub_modinfo_target_cpu}" = arm ] && [ $((dt2 - dt1)) -ge 15 ] && [ $((dt2 - dt1)) -le 17 ]; then --- -2.17.1 - diff --git a/0005-Don-t-retrieve-fstime-when-it-s-not-useful.patch b/0005-Don-t-retrieve-fstime-when-it-s-not-useful.patch index 87d29e77..500d9626 100644 --- a/0005-Don-t-retrieve-fstime-when-it-s-not-useful.patch +++ b/0005-Don-t-retrieve-fstime-when-it-s-not-useful.patch @@ -1,7 +1,7 @@ From 6dec3a26b37e128ded5d912e08abc5cee1592499 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 21:24:05 +0300 -Subject: [PATCH 005/251] Don't retrieve fstime when it's not useful. +Subject: [PATCH] Don't retrieve fstime when it's not useful. --- tests/util/grub-fs-tester.in | 48 ++++++++++++++++++++++---------------------- @@ -67,6 +67,3 @@ index 4515d165e6e..bf47305f3e8 100644 fi if [ x$NOHARDLINK != xy ]; then --- -2.17.1 - diff --git a/0006-Support-lseek64.patch b/0006-Support-lseek64.patch index 88cd9dd8..19e0f129 100644 --- a/0006-Support-lseek64.patch +++ b/0006-Support-lseek64.patch @@ -1,7 +1,7 @@ From 608bec51128008afb81c9e3f297283e9f830a146 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 20:21:05 +0300 -Subject: [PATCH 006/251] Support lseek64. +Subject: [PATCH] Support lseek64. Android doesn't have 64-bit off_t, so use off64_t instead. --- @@ -49,6 +49,3 @@ index 2a8c5882e3d..5450cf4166e 100644 return 0; } --- -2.17.1 - diff --git a/0007-Use-SHELL-rather-than-bin-sh.patch b/0007-Use-SHELL-rather-than-bin-sh.patch index 1c2bd35d..a887972e 100644 --- a/0007-Use-SHELL-rather-than-bin-sh.patch +++ b/0007-Use-SHELL-rather-than-bin-sh.patch @@ -1,7 +1,7 @@ From c2ea443446b7feea868e54f94a87781f69820375 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 00:55:30 +0300 -Subject: [PATCH 007/251] Use $(SHELL) rather than /bin/sh. +Subject: [PATCH] Use $(SHELL) rather than /bin/sh. /bin/sh doesn't exist under termux. --- @@ -21,6 +21,3 @@ index 04e9395fd94..809a8aa26bf 100644 rm -f symlist.p CLEANFILES += symlist.c BUILT_SOURCES += symlist.c --- -2.17.1 - diff --git a/0008-po-Use-SHELL-rather-than-bin-sh.patch b/0008-po-Use-SHELL-rather-than-bin-sh.patch index e80eedcf..7bdb3d70 100644 --- a/0008-po-Use-SHELL-rather-than-bin-sh.patch +++ b/0008-po-Use-SHELL-rather-than-bin-sh.patch @@ -1,7 +1,7 @@ From 4341f82af0b61d3dfbe675670d4105dc759c0df3 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 14:54:03 +0300 -Subject: [PATCH 008/251] po: Use @SHELL@ rather than /bin/sh. +Subject: [PATCH] po: Use @SHELL@ rather than /bin/sh. /bin/sh might not exist. --- @@ -21,6 +21,3 @@ index 3619458e85f..e68e9da843d 100644 @SET_MAKE@ srcdir = @srcdir@ --- -2.17.1 - diff --git a/0009-Add-termux-path-to-dict.patch b/0009-Add-termux-path-to-dict.patch index 31fcd464..0f3ad6d9 100644 --- a/0009-Add-termux-path-to-dict.patch +++ b/0009-Add-termux-path-to-dict.patch @@ -1,7 +1,7 @@ From 1073ddb12078f3c8edbdb74bb8f5afc674983f40 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 23 Jan 2017 14:52:48 +0300 -Subject: [PATCH 009/251] Add termux path to dict. +Subject: [PATCH] Add termux path to dict. --- tests/util/grub-fs-tester.in | 2 +- @@ -20,6 +20,3 @@ index bf47305f3e8..468d9e7856d 100644 if test -f "$cand" ; then CFILESRC="$cand" break --- -2.17.1 - diff --git a/0010-Fix-shebang-for-termux.patch b/0010-Fix-shebang-for-termux.patch index af95cf6a..9c75c276 100644 --- a/0010-Fix-shebang-for-termux.patch +++ b/0010-Fix-shebang-for-termux.patch @@ -1,7 +1,7 @@ From a827807a1330d5ad619faa103bc7f12d89fc8bee Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Sun, 22 Jan 2017 20:22:34 +0300 -Subject: [PATCH 010/251] Fix shebang for termux. +Subject: [PATCH] Fix shebang for termux. Termux doesn't have a /bin/sh. So we needto use $SHELL. Keep /bin/sh as much as possible. @@ -679,6 +679,3 @@ index 047120e47a0..eee62c10d70 100644 set -e --- -2.17.1 - diff --git a/0011-Add-strtoull-test.patch b/0011-Add-strtoull-test.patch index c2dca89f..21b35863 100644 --- a/0011-Add-strtoull-test.patch +++ b/0011-Add-strtoull-test.patch @@ -1,7 +1,7 @@ From ede6c9689395499f98a4c14d76b97151b4de5f54 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Wed, 3 May 2017 12:58:15 +0200 -Subject: [PATCH 011/251] Add strtoull test. +Subject: [PATCH] Add strtoull test. --- grub-core/Makefile.core.def | 5 +++++ @@ -23,6 +23,3 @@ index 2dfa22a9271..8dcd0e5a998 100644 module = { name = setjmp_test; common = tests/setjmp_test.c; --- -2.17.1 - diff --git a/0012-strtoull-Fix-behaviour-on-chars-between-9-and-a.patch b/0012-strtoull-Fix-behaviour-on-chars-between-9-and-a.patch index 48bc8cb6..261535d5 100644 --- a/0012-strtoull-Fix-behaviour-on-chars-between-9-and-a.patch +++ b/0012-strtoull-Fix-behaviour-on-chars-between-9-and-a.patch @@ -1,7 +1,7 @@ From dc6e1b5af83eb1c4290baf97c2d221c0865127be Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Wed, 10 Aug 2016 17:49:42 +0200 -Subject: [PATCH 012/251] strtoull: Fix behaviour on chars between '9' and 'a'. +Subject: [PATCH] strtoull: Fix behaviour on chars between '9' and 'a'. Reported by: Aaron Miller --- @@ -63,6 +63,3 @@ index d4822a12456..96781fb39b5 100644 grub_errno = 0; ok = ok && !grub_test_run (test); grub_errno = 0; --- -2.17.1 - diff --git a/0013-Add-Virtual-LAN-support.patch b/0013-Add-Virtual-LAN-support.patch index 01853326..d29032a5 100644 --- a/0013-Add-Virtual-LAN-support.patch +++ b/0013-Add-Virtual-LAN-support.patch @@ -1,7 +1,7 @@ From d9f7de0ae3c0c09cff7257c55418450261f3e082 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Mon, 23 Dec 2013 12:32:02 -0200 -Subject: [PATCH 013/251] Add Virtual LAN support. +Subject: [PATCH] Add Virtual LAN support. This patch adds support for virtual LAN (VLAN) tagging. VLAN tagging allows multiple VLANs in a bridged network to share the same physical network link @@ -344,6 +344,3 @@ index dcceaa56894..ab9d68f9825 100644 grub_err_t grub_net_send_ip_packet (struct grub_net_network_level_interface *inf, --- -2.17.1 - diff --git a/0014-mkimage-Pass-layout-to-mkimage_generate_elfXX-rather.patch b/0014-mkimage-Pass-layout-to-mkimage_generate_elfXX-rather.patch index 033f9a96..5f1c0d89 100644 --- a/0014-mkimage-Pass-layout-to-mkimage_generate_elfXX-rather.patch +++ b/0014-mkimage-Pass-layout-to-mkimage_generate_elfXX-rather.patch @@ -1,8 +1,8 @@ From a35ac854308b0af7c86c2c7b199f6abdfa2110b0 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 17:32:15 +0200 -Subject: [PATCH 014/251] mkimage: Pass layout to mkimage_generate_elfXX rather - than some fields. +Subject: [PATCH] mkimage: Pass layout to mkimage_generate_elfXX rather than + some fields. This allows easier extension of this function without having too long of arguments list. @@ -163,6 +163,3 @@ index 1a18708a89c..b3a5ca132bc 100644 struct grub_install_image_target_desc { --- -2.17.1 - diff --git a/0015-Refactor-arm-uboot-code-to-make-it-genereic.patch b/0015-Refactor-arm-uboot-code-to-make-it-genereic.patch index 39cc04d9..b9f55d56 100644 --- a/0015-Refactor-arm-uboot-code-to-make-it-genereic.patch +++ b/0015-Refactor-arm-uboot-code-to-make-it-genereic.patch @@ -1,7 +1,7 @@ From d08c9685149e7788001ac9a209baa1d84c3628e0 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 17:47:57 +0200 -Subject: [PATCH 015/251] Refactor arm-uboot code to make it genereic. +Subject: [PATCH] Refactor arm-uboot code to make it genereic. arm-coreboot startup code can be very similar to arm-uboot but current code has U-Boot specific references. So split U-Boot part from generic part. @@ -400,6 +400,3 @@ index 00000000000..d128775f19e + .long 0 @ + + END --- -2.17.1 - diff --git a/0016-coreboot-Split-parts-that-are-platform-independent.patch b/0016-coreboot-Split-parts-that-are-platform-independent.patch index 86d06295..782af52f 100644 --- a/0016-coreboot-Split-parts-that-are-platform-independent.patch +++ b/0016-coreboot-Split-parts-that-are-platform-independent.patch @@ -1,7 +1,7 @@ From 461bfab7b7e47fd0a76bf6076a438af1b7e2184a Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 19:06:22 +0200 -Subject: [PATCH 016/251] coreboot: Split parts that are platform-independent. +Subject: [PATCH] coreboot: Split parts that are platform-independent. We currently assume that coreboot is always i386, it's no longer the case, so split i386-coreboot parts from generic coreboot code. @@ -339,6 +339,3 @@ index 809a8aa26bf..781d0ffbf75 100644 KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/video.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/video_fb.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/gfxterm.h --- -2.17.1 - diff --git a/0017-Rename-uboot-halt.c-to-dummy-halt.c.patch b/0017-Rename-uboot-halt.c-to-dummy-halt.c.patch index 3dbe6dea..2c531206 100644 --- a/0017-Rename-uboot-halt.c-to-dummy-halt.c.patch +++ b/0017-Rename-uboot-halt.c-to-dummy-halt.c.patch @@ -1,7 +1,7 @@ From 1daa716c7017f1858de117a20a31da66815435c5 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 19:31:55 +0200 -Subject: [PATCH 017/251] Rename uboot/halt.c to dummy/halt.c. +Subject: [PATCH] Rename uboot/halt.c to dummy/halt.c. It's not U-Boot specific and it's a stub. --- @@ -27,6 +27,3 @@ diff --git a/grub-core/lib/uboot/halt.c b/grub-core/lib/dummy/halt.c similarity index 100% rename from grub-core/lib/uboot/halt.c rename to grub-core/lib/dummy/halt.c --- -2.17.1 - diff --git a/0018-Rename-uboot-datetime-to-dummy-datetime.patch b/0018-Rename-uboot-datetime-to-dummy-datetime.patch index 0f6eddeb..61b00b58 100644 --- a/0018-Rename-uboot-datetime-to-dummy-datetime.patch +++ b/0018-Rename-uboot-datetime-to-dummy-datetime.patch @@ -1,7 +1,7 @@ From 9808c3ef956c6472a96790b60cf74f4eaa742010 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 19:37:29 +0200 -Subject: [PATCH 018/251] Rename uboot/datetime to dummy/datetime. +Subject: [PATCH] Rename uboot/datetime to dummy/datetime. It's just a stub and is not UBoot-specific. --- @@ -53,6 +53,3 @@ index 4be716928a5..cf693fc6b62 100644 - "can\'t set datetime using U-Boot"); + "can\'t set datetime on this machine"); } --- -2.17.1 - diff --git a/0019-arm-coreboot-Start-new-port.patch b/0019-arm-coreboot-Start-new-port.patch index df60774e..a3929135 100644 --- a/0019-arm-coreboot-Start-new-port.patch +++ b/0019-arm-coreboot-Start-new-port.patch @@ -1,7 +1,7 @@ From 24e37a885269bdec9b27babf1da0bba3692d55c0 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 20:53:28 +0200 -Subject: [PATCH 019/251] arm-coreboot: Start new port. +Subject: [PATCH] arm-coreboot: Start new port. --- configure.ac | 2 + @@ -822,6 +822,3 @@ index 781d0ffbf75..bec0585549a 100644 if COND_arm_efi KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/arm/efi/loader.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/efi.h --- -2.17.1 - diff --git a/0020-Add-support-for-device-tree-based-drivers.patch b/0020-Add-support-for-device-tree-based-drivers.patch index 7562079c..145b1a6a 100644 --- a/0020-Add-support-for-device-tree-based-drivers.patch +++ b/0020-Add-support-for-device-tree-based-drivers.patch @@ -1,7 +1,7 @@ From fcbb723d4b1f7ad4687191562621dd0eb25f4d9e Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:19:59 +0200 -Subject: [PATCH 020/251] Add support for device-tree-based drivers. +Subject: [PATCH] Add support for device-tree-based drivers. --- grub-core/Makefile.core.def | 2 + @@ -851,6 +851,3 @@ index bec0585549a..fc6ca305147 100644 parttool.lst: $(MARKER_FILES) (for pp in $^; do \ b=`basename $$pp .marker`; \ --- -2.17.1 - diff --git a/0021-arm-coreboot-Support-for-vexpress-timer.patch b/0021-arm-coreboot-Support-for-vexpress-timer.patch index ff270d4d..4653775c 100644 --- a/0021-arm-coreboot-Support-for-vexpress-timer.patch +++ b/0021-arm-coreboot-Support-for-vexpress-timer.patch @@ -1,7 +1,7 @@ From 5a865b37866ee8cd64c080bc6fb1e537f8e2b3c6 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:26:36 +0200 -Subject: [PATCH 021/251] arm-coreboot: Support for vexpress timer. +Subject: [PATCH] arm-coreboot: Support for vexpress timer. --- grub-core/kern/arm/coreboot/timer.c | 36 ++++++++++++++++++++++++++++++++++++ @@ -68,6 +68,3 @@ index ebefb99d58f..d97b844f848 100644 if (!have_timer) try_generic_timer (); if (!have_timer) --- -2.17.1 - diff --git a/0022-arm-coreboot-Export-FDT-routines.patch b/0022-arm-coreboot-Export-FDT-routines.patch index 852d4642..b7196377 100644 --- a/0022-arm-coreboot-Export-FDT-routines.patch +++ b/0022-arm-coreboot-Export-FDT-routines.patch @@ -1,7 +1,7 @@ From ac6b41b89fbb82a3ba843a7ed19115d81432b604 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:29:48 +0200 -Subject: [PATCH 022/251] arm-coreboot: Export FDT routines. +Subject: [PATCH] arm-coreboot: Export FDT routines. We need to use them from modules as well. --- @@ -22,6 +22,3 @@ index fc6ca305147..147e6959c97 100644 endif if COND_arm_efi --- -2.17.1 - diff --git a/0023-at_keyboard-Split-protocol-from-controller-code.patch b/0023-at_keyboard-Split-protocol-from-controller-code.patch index a436dbd7..b680ba9c 100644 --- a/0023-at_keyboard-Split-protocol-from-controller-code.patch +++ b/0023-at_keyboard-Split-protocol-from-controller-code.patch @@ -1,7 +1,7 @@ From 216950a4eea1a1ead1c28eaca94e34ea2ef2ad19 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:41:22 +0200 -Subject: [PATCH 023/251] at_keyboard: Split protocol from controller code. +Subject: [PATCH] at_keyboard: Split protocol from controller code. On vexpress controller is different but protocol is the same, so reuse the code. @@ -1023,6 +1023,3 @@ index 00000000000..4f2e527e497 + grub_uint8_t data); + +#endif --- -2.17.1 - diff --git a/0024-arm_coreboot-Support-keyboard-for-vexpress.patch b/0024-arm_coreboot-Support-keyboard-for-vexpress.patch index d308b8c4..9f15319d 100644 --- a/0024-arm_coreboot-Support-keyboard-for-vexpress.patch +++ b/0024-arm_coreboot-Support-keyboard-for-vexpress.patch @@ -1,7 +1,7 @@ From 848bed9d92cf20e9f25db4c69a20efad23996ca0 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:42:37 +0200 -Subject: [PATCH 024/251] arm_coreboot: Support keyboard for vexpress. +Subject: [PATCH] arm_coreboot: Support keyboard for vexpress. --- grub-core/Makefile.core.def | 3 + @@ -244,6 +244,3 @@ index 147e6959c97..a2aaf9f54b0 100644 KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/arm/system.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/video.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/video_fb.h --- -2.17.1 - diff --git a/0025-arm_coreboot-Support-grub-mkstandalone.patch b/0025-arm_coreboot-Support-grub-mkstandalone.patch index 36af3e03..89b57447 100644 --- a/0025-arm_coreboot-Support-grub-mkstandalone.patch +++ b/0025-arm_coreboot-Support-grub-mkstandalone.patch @@ -1,7 +1,7 @@ From 3edabad8fefb112cc4b2d43be6e97d43c909ceee Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 21:59:48 +0200 -Subject: [PATCH 025/251] arm_coreboot: Support grub-mkstandalone. +Subject: [PATCH] arm_coreboot: Support grub-mkstandalone. --- util/grub-install-common.c | 12 ++++++++++-- @@ -153,6 +153,3 @@ index 6abd288c313..5910b0c09bc 100644 }; extern char *grub_install_source_directory; --- -2.17.1 - diff --git a/0026-arm_coreboot-Support-loading-linux-images.patch b/0026-arm_coreboot-Support-loading-linux-images.patch index 0b2331d8..1198dafe 100644 --- a/0026-arm_coreboot-Support-loading-linux-images.patch +++ b/0026-arm_coreboot-Support-loading-linux-images.patch @@ -1,7 +1,7 @@ From 656c3b0d7fbe23f0e1ab561c8faa4ac4a37364d1 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 22:00:06 +0200 -Subject: [PATCH 026/251] arm_coreboot: Support loading linux images. +Subject: [PATCH] arm_coreboot: Support loading linux images. --- grub-core/loader/arm/linux.c | 132 ++++++++++++++++++++++--------------------- @@ -297,6 +297,3 @@ index a66caad13db..f217f8281ad 100644 #endif #define FDT_ADDITIONAL_ENTRIES_SIZE 0x300 --- -2.17.1 - diff --git a/0027-arm_coreboot-Support-DMA.patch b/0027-arm_coreboot-Support-DMA.patch index e8103b93..414370d7 100644 --- a/0027-arm_coreboot-Support-DMA.patch +++ b/0027-arm_coreboot-Support-DMA.patch @@ -1,7 +1,7 @@ From 265292f2b0da0eb414c409871ba0f94a99ec33c1 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 22:06:04 +0200 -Subject: [PATCH 027/251] arm_coreboot: Support DMA. +Subject: [PATCH] arm_coreboot: Support DMA. This is needed to support USB and some other busses. --- @@ -287,6 +287,3 @@ index a2aaf9f54b0..10451384720 100644 KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/arm/coreboot/kernel.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/fdtbus.h endif --- -2.17.1 - diff --git a/0028-ehci-Split-core-code-from-PCI-part.patch b/0028-ehci-Split-core-code-from-PCI-part.patch index 894af529..b64bf2b2 100644 --- a/0028-ehci-Split-core-code-from-PCI-part.patch +++ b/0028-ehci-Split-core-code-from-PCI-part.patch @@ -1,7 +1,7 @@ From 058df7b5a9cc7aaa9872eaa916b715544a8f9840 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 22:10:26 +0200 -Subject: [PATCH 028/251] ehci: Split core code from PCI part. +Subject: [PATCH] ehci: Split core code from PCI part. On ARM often EHCI is present without PCI and just declared in device tree. So splitcore from PCI part. @@ -566,6 +566,3 @@ index 5f4297bb21e..c772e76546e 100644 grub_boot_time ("Registering EHCI driver"); grub_usb_controller_dev_register (&usb_controller); grub_boot_time ("EHCI driver registered"); --- -2.17.1 - diff --git a/0029-arm_coreboot-Support-EHCI.patch b/0029-arm_coreboot-Support-EHCI.patch index 68df484b..e654a1d5 100644 --- a/0029-arm_coreboot-Support-EHCI.patch +++ b/0029-arm_coreboot-Support-EHCI.patch @@ -1,7 +1,7 @@ From d11ced1e1fb93676942e51618eb53c140f541890 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 8 May 2017 22:14:28 +0200 -Subject: [PATCH 029/251] arm_coreboot: Support EHCI. +Subject: [PATCH] arm_coreboot: Support EHCI. --- grub-core/Makefile.core.def | 2 ++ @@ -118,6 +118,3 @@ index ed268178b4d..da67965a41a 100644 # If gfxterm is main output console integrate it into kernel GROUPS["videoinkernel"] = ["mips_loongson", "i386_coreboot", "arm_coreboot" ] --- -2.17.1 - diff --git a/0030-Fix-bug-on-FDT-nodes-with-compatible-property.patch b/0030-Fix-bug-on-FDT-nodes-with-compatible-property.patch index 8f3f7d2d..b756d2bc 100644 --- a/0030-Fix-bug-on-FDT-nodes-with-compatible-property.patch +++ b/0030-Fix-bug-on-FDT-nodes-with-compatible-property.patch @@ -1,7 +1,7 @@ From 4f8471532d454b2db96434c28bf7105ed69e0f4d Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 08:39:40 +0200 -Subject: [PATCH 030/251] Fix bug on FDT nodes with compatible property +Subject: [PATCH] Fix bug on FDT nodes with compatible property --- grub-core/bus/fdt.c | 2 ++ @@ -20,6 +20,3 @@ index 6fb077000a5..34d53545732 100644 const char *compatible_end = compatible + compatible_size; while (compatible < compatible_end) { --- -2.17.1 - diff --git a/0031-fdtbus-Add-ability-to-send-receive-messages-on-paren.patch b/0031-fdtbus-Add-ability-to-send-receive-messages-on-paren.patch index df5869ba..a4171bd4 100644 --- a/0031-fdtbus-Add-ability-to-send-receive-messages-on-paren.patch +++ b/0031-fdtbus-Add-ability-to-send-receive-messages-on-paren.patch @@ -1,8 +1,8 @@ From c4313c812dc14e82a774b580b5e34d40e7f3fae6 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 08:40:29 +0200 -Subject: [PATCH 031/251] fdtbus: Add ability to send/receive messages on - parent busses. +Subject: [PATCH] fdtbus: Add ability to send/receive messages on parent + busses. --- grub-core/bus/fdt.c | 35 +++++++++++++++++------------------ @@ -129,6 +129,3 @@ index 985837e55f6..f519c40ec35 100644 /* Must be called before any register(). */ /* dtb is assumed to be unfreeable and must remain valid for lifetime of GRUB. --- -2.17.1 - diff --git a/0032-rk3288_spi-Add-SPI-driver.patch b/0032-rk3288_spi-Add-SPI-driver.patch index 870012ac..ea989323 100644 --- a/0032-rk3288_spi-Add-SPI-driver.patch +++ b/0032-rk3288_spi-Add-SPI-driver.patch @@ -1,7 +1,7 @@ From b0b1b81a11f8bae8ab9e8edd87ac3f4f7949d03b Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 08:42:14 +0200 -Subject: [PATCH 032/251] rk3288_spi: Add SPI driver +Subject: [PATCH] rk3288_spi: Add SPI driver --- grub-core/Makefile.core.def | 1 + @@ -160,6 +160,3 @@ index 09cd7fe328c..26950534270 100644 extern grub_addr_t EXPORT_VAR (start_of_ram); #endif /* ! ASM_FILE */ --- -2.17.1 - diff --git a/0033-arm_coreboot-Add-Chromebook-keyboard-driver.patch b/0033-arm_coreboot-Add-Chromebook-keyboard-driver.patch index 4eb37d27..580ed9f9 100644 --- a/0033-arm_coreboot-Add-Chromebook-keyboard-driver.patch +++ b/0033-arm_coreboot-Add-Chromebook-keyboard-driver.patch @@ -1,7 +1,7 @@ From 5c3fd1b135bd73c8e3467b9b635b25ca4d360a19 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 08:47:34 +0200 -Subject: [PATCH 033/251] arm_coreboot: Add Chromebook keyboard driver. +Subject: [PATCH] arm_coreboot: Add Chromebook keyboard driver. --- grub-core/term/arm/cros.c | 125 +++++++++++++++++++++++ @@ -414,6 +414,3 @@ index 00000000000..45a372572a5 +grub_cros_ec_validate (const struct grub_fdtbus_dev *dev); + +#endif --- -2.17.1 - diff --git a/0034-Missing-parts-of-previous-commit.patch b/0034-Missing-parts-of-previous-commit.patch index 863db81d..d473dd0e 100644 --- a/0034-Missing-parts-of-previous-commit.patch +++ b/0034-Missing-parts-of-previous-commit.patch @@ -1,7 +1,7 @@ From c6eaa982d12e3cfc5465dda5ea372774188b6b81 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 09:02:15 +0200 -Subject: [PATCH 034/251] Missing parts of previous commit +Subject: [PATCH] Missing parts of previous commit --- grub-core/Makefile.core.def | 2 ++ @@ -33,6 +33,3 @@ index 0126ff6381a..8d8c5b8291e 100644 grub_pl050_init (); } --- -2.17.1 - diff --git a/0035-coreboot-Changed-cbmemc-to-support-updated-console-f.patch b/0035-coreboot-Changed-cbmemc-to-support-updated-console-f.patch index b90b3458..f613a6e0 100644 --- a/0035-coreboot-Changed-cbmemc-to-support-updated-console-f.patch +++ b/0035-coreboot-Changed-cbmemc-to-support-updated-console-f.patch @@ -1,8 +1,8 @@ From 70b555a52a065b2beb91e6fc97a6b358c931b303 Mon Sep 17 00:00:00 2001 From: Julius Werner Date: Tue, 9 May 2017 09:03:02 +0200 -Subject: [PATCH 035/251] coreboot: Changed cbmemc to support updated console - format from coreboot. +Subject: [PATCH] coreboot: Changed cbmemc to support updated console format + from coreboot. --- grub-core/term/i386/coreboot/cbmemc.c | 50 ++++++++++++++++++++++++----------- @@ -93,6 +93,3 @@ index 129248c7f47..cea9b84315b 100644 return 0; } --- -2.17.1 - diff --git a/0036-at_keyboard-Fix-falco-chromebook-case.patch b/0036-at_keyboard-Fix-falco-chromebook-case.patch index a67754bf..681ba27e 100644 --- a/0036-at_keyboard-Fix-falco-chromebook-case.patch +++ b/0036-at_keyboard-Fix-falco-chromebook-case.patch @@ -1,7 +1,7 @@ From c4b8bec5fee4e30a165fd14a188cf3ab8eccd095 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Tue, 9 May 2017 14:27:52 +0200 -Subject: [PATCH 036/251] at_keyboard: Fix falco chromebook case. +Subject: [PATCH] at_keyboard: Fix falco chromebook case. EC is slow, so we need few delays for it to toggle the bits correctly. @@ -84,6 +84,3 @@ index b031523eb7d..bcb4d9ba78f 100644 #define KEYBOARD_ISMAKE(x) !((x) & 0x80) #define KEYBOARD_ISREADY(x) ((x) & 0x01) --- -2.17.1 - diff --git a/0037-sparc64-Close-cdboot-ihandle.patch b/0037-sparc64-Close-cdboot-ihandle.patch index 0180709e..f9a01b05 100644 --- a/0037-sparc64-Close-cdboot-ihandle.patch +++ b/0037-sparc64-Close-cdboot-ihandle.patch @@ -1,7 +1,7 @@ From bd4e40aadded7093908d786d03b4acf60b7b1707 Mon Sep 17 00:00:00 2001 From: Eric Snowberg Date: Thu, 11 May 2017 18:42:23 -0700 -Subject: [PATCH 037/251] sparc64: Close cdboot ihandle +Subject: [PATCH] sparc64: Close cdboot ihandle The ihandle is left open with a cd-core image. This will cause a delay booting grub from a virtual cdrom in a LDOM. It will also cause problems @@ -43,6 +43,3 @@ index 586efb4014e..9ea9b4e0662 100644 #else mov 512, %o3 #endif --- -2.17.1 - diff --git a/0038-arm64-xen_boot-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch b/0038-arm64-xen_boot-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch index c920d877..e1fdda71 100644 --- a/0038-arm64-xen_boot-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch +++ b/0038-arm64-xen_boot-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch @@ -1,7 +1,7 @@ From ae5817f1dcbf0b99f7a849f56afe442165317840 Mon Sep 17 00:00:00 2001 From: Julien Grall Date: Fri, 19 Feb 2016 16:28:52 +0000 -Subject: [PATCH 038/251] arm64/xen_boot: Fix Xen boot using GRUB2 on AARCH64 +Subject: [PATCH] arm64/xen_boot: Fix Xen boot using GRUB2 on AARCH64 Xen is currently crashing because of malformed compatible property for the boot module. This is because the property string is not @@ -27,6 +27,3 @@ index a914eb8e2df..8ae43d7e894 100644 if (retval) return grub_error (GRUB_ERR_IO, "failed to update FDT"); --- -2.17.1 - diff --git a/0039-arm64-Add-nounzip-option-support-in-xen_module-comma.patch b/0039-arm64-Add-nounzip-option-support-in-xen_module-comma.patch index 77d81f67..052776e9 100644 --- a/0039-arm64-Add-nounzip-option-support-in-xen_module-comma.patch +++ b/0039-arm64-Add-nounzip-option-support-in-xen_module-comma.patch @@ -1,8 +1,7 @@ From 8eed7be8a61c295df700e918744a984162378ca9 Mon Sep 17 00:00:00 2001 From: Fu Wei Date: Sun, 14 May 2017 15:43:45 +0800 -Subject: [PATCH 039/251] arm64: Add "--nounzip" option support in xen_module - command +Subject: [PATCH] arm64: Add "--nounzip" option support in xen_module command This patch adds "--nounzip" option support in order to be compatible with the module command of multiboot on other architecture, @@ -51,6 +50,3 @@ index 8ae43d7e894..27ede46cac5 100644 file = grub_file_open (argv[0]); if (!file) goto fail; --- -2.17.1 - diff --git a/0040-util-grub.d-20_linux_xen.in-Add-xen_boot-command-sup.patch b/0040-util-grub.d-20_linux_xen.in-Add-xen_boot-command-sup.patch index 2dedb9a1..6f3daf23 100644 --- a/0040-util-grub.d-20_linux_xen.in-Add-xen_boot-command-sup.patch +++ b/0040-util-grub.d-20_linux_xen.in-Add-xen_boot-command-sup.patch @@ -1,8 +1,8 @@ From d33045ce7ffcb7c1e4a60c14d5ca64b36e3c5abe Mon Sep 17 00:00:00 2001 From: Fu Wei Date: Sun, 14 May 2017 15:43:46 +0800 -Subject: [PATCH 040/251] util/grub.d/20_linux_xen.in: Add xen_boot command - support for aarch64 +Subject: [PATCH] util/grub.d/20_linux_xen.in: Add xen_boot command support for + aarch64 This patch adds the support of xen_boot command for aarch64: xen_hypervisor @@ -58,6 +58,3 @@ index c48af948d6e..c002fc9f946 100644 while [ "x$list" != "x" ] ; do linux=`version_find_latest $list` gettext_printf "Found linux image: %s\n" "$linux" >&2 --- -2.17.1 - diff --git a/0041-arm64-Update-the-introduction-of-Xen-boot-commands-i.patch b/0041-arm64-Update-the-introduction-of-Xen-boot-commands-i.patch index 7227d6f2..69021790 100644 --- a/0041-arm64-Update-the-introduction-of-Xen-boot-commands-i.patch +++ b/0041-arm64-Update-the-introduction-of-Xen-boot-commands-i.patch @@ -1,8 +1,8 @@ From 26c2f306fd425d2c0348023b8dcb7eb40a01851a Mon Sep 17 00:00:00 2001 From: Fu Wei Date: Sun, 14 May 2017 15:43:47 +0800 -Subject: [PATCH 041/251] arm64: Update the introduction of Xen boot commands - in docs/grub.texi +Subject: [PATCH] arm64: Update the introduction of Xen boot commands in + docs/grub.texi delete: xen_linux, xen_initrd, xen_xsm add: xen_module @@ -88,6 +88,3 @@ index e935af33ea5..a0c4b9e4e8e 100644 @node Networking commands @section The list of networking commands --- -2.17.1 - diff --git a/0042-sparc64-Don-t-use-devspec-to-determine-the-OBP-path.patch b/0042-sparc64-Don-t-use-devspec-to-determine-the-OBP-path.patch index 107c68c4..62c58601 100644 --- a/0042-sparc64-Don-t-use-devspec-to-determine-the-OBP-path.patch +++ b/0042-sparc64-Don-t-use-devspec-to-determine-the-OBP-path.patch @@ -1,7 +1,7 @@ From f8679cedff703b437171f4708d46adbfcff80a65 Mon Sep 17 00:00:00 2001 From: Eric Snowberg Date: Thu, 18 May 2017 17:10:22 -0600 -Subject: [PATCH 042/251] sparc64: Don't use devspec to determine the OBP path +Subject: [PATCH] sparc64: Don't use devspec to determine the OBP path Don't use devspec to determine the OBP path on SPARC hardware. Within all versions of Linux on SPARC, the devspec returns one of three values: @@ -48,6 +48,3 @@ index a79682a5e31..dce4e59d081 100644 if (fd < 0 || fstat (fd, &st) < 0) { --- -2.17.1 - diff --git a/0043-Allow-GRUB-to-mount-ext2-3-4-filesystems-that-have-t.patch b/0043-Allow-GRUB-to-mount-ext2-3-4-filesystems-that-have-t.patch index d59f8000..23ea96c0 100644 --- a/0043-Allow-GRUB-to-mount-ext2-3-4-filesystems-that-have-t.patch +++ b/0043-Allow-GRUB-to-mount-ext2-3-4-filesystems-that-have-t.patch @@ -1,8 +1,8 @@ From 734668238fcc0ef691a080839e04f33854fa133a Mon Sep 17 00:00:00 2001 From: Eric Biggers Date: Thu, 29 Jun 2017 13:27:49 +0000 -Subject: [PATCH 043/251] Allow GRUB to mount ext2/3/4 filesystems that have - the encryption feature. +Subject: [PATCH] Allow GRUB to mount ext2/3/4 filesystems that have the + encryption feature. On such a filesystem, inodes may have EXT4_ENCRYPT_FLAG set. For a regular file, this means its contents are encrypted; for a @@ -135,6 +135,3 @@ index 88cbe7365e9..fd7e0f14b68 100644 xext*) MKE2FS_DEVICE_SECTSIZE=$SECSIZE "mkfs.$fs" -b $BLKSIZE -L "$FSLABEL" -q "${MOUNTDEVICE}" ;; xxfs) --- -2.17.1 - diff --git a/0044-ehci-Fix-compilation-for-amd64.patch b/0044-ehci-Fix-compilation-for-amd64.patch index 76c9fbbb..251d3a6e 100644 --- a/0044-ehci-Fix-compilation-for-amd64.patch +++ b/0044-ehci-Fix-compilation-for-amd64.patch @@ -1,7 +1,7 @@ From edb37fb30bbc8a3b6bec67911c7200e4eb071127 Mon Sep 17 00:00:00 2001 From: phcoder Date: Sun, 9 Jul 2017 20:58:31 +0200 -Subject: [PATCH 044/251] ehci: Fix compilation for amd64 +Subject: [PATCH] ehci: Fix compilation for amd64 --- grub-core/bus/usb/ehci.c | 8 ++++---- @@ -33,6 +33,3 @@ index c772e76546e..7b7061f5335 100644 grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: COMMAND: %08x\n", grub_ehci_oper_read32 (e, GRUB_EHCI_COMMAND)); grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: STATUS: %08x\n", --- -2.17.1 - diff --git a/0045-cache-Fix-compilation-for-ppc-sparc-and-arm64.patch b/0045-cache-Fix-compilation-for-ppc-sparc-and-arm64.patch index 0f8b6138..a7b7a2ae 100644 --- a/0045-cache-Fix-compilation-for-ppc-sparc-and-arm64.patch +++ b/0045-cache-Fix-compilation-for-ppc-sparc-and-arm64.patch @@ -1,7 +1,7 @@ From d8901e3ba115d705c9c08ecedd201aca8b4867b8 Mon Sep 17 00:00:00 2001 From: phcoder Date: Sun, 9 Jul 2017 20:59:15 +0200 -Subject: [PATCH 045/251] cache: Fix compilation for ppc, sparc and arm64 +Subject: [PATCH] cache: Fix compilation for ppc, sparc and arm64 --- include/grub/cache.h | 4 +++- @@ -22,6 +22,3 @@ index 1c98ce270b6..ccfa717e669 100644 static inline void grub_arch_sync_dma_caches (volatile void *address __attribute__ ((unused)), grub_size_t len __attribute__ ((unused))) --- -2.17.1 - diff --git a/0046-ehci-Fix-compilation-on-i386.patch b/0046-ehci-Fix-compilation-on-i386.patch index ccbf67f5..e1cd372f 100644 --- a/0046-ehci-Fix-compilation-on-i386.patch +++ b/0046-ehci-Fix-compilation-on-i386.patch @@ -1,7 +1,7 @@ From 284afab081ef7ed7db2c59151853aa3c92d988f2 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Sun, 9 Jul 2017 21:31:19 +0200 -Subject: [PATCH 046/251] ehci: Fix compilation on i386 +Subject: [PATCH] ehci: Fix compilation on i386 --- grub-core/bus/usb/ehci.c | 4 ++-- @@ -29,6 +29,3 @@ index 7b7061f5335..d966fc21002 100644 grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: COMMAND: %08x\n", grub_ehci_oper_read32 (e, GRUB_EHCI_COMMAND)); grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: STATUS: %08x\n", --- -2.17.1 - diff --git a/0047-crypto-Fix-use-after-free.patch b/0047-crypto-Fix-use-after-free.patch index 153d3b08..a4b94fef 100644 --- a/0047-crypto-Fix-use-after-free.patch +++ b/0047-crypto-Fix-use-after-free.patch @@ -1,7 +1,7 @@ From a0fe0c26aa8a1c0ad66d9527611bd726b849c623 Mon Sep 17 00:00:00 2001 From: AppChecker Date: Sun, 9 Jul 2017 21:57:35 +0200 -Subject: [PATCH 047/251] crypto: Fix use after free. +Subject: [PATCH] crypto: Fix use after free. Reported by: AppChecker Transformed to patch by: Satish Govindarajan @@ -23,6 +23,3 @@ index 2bfd67c8ef3..e6d345f3345 100644 continue; } cur->next = crypto_specs; --- -2.17.1 - diff --git a/0048-arm-efi-Fix-compilation.patch b/0048-arm-efi-Fix-compilation.patch index b5f888d9..05286688 100644 --- a/0048-arm-efi-Fix-compilation.patch +++ b/0048-arm-efi-Fix-compilation.patch @@ -1,7 +1,7 @@ From cb8b7e4e36bf32dccbbba8252aa44ad3ada4fbc1 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Sun, 9 Jul 2017 21:48:37 +0000 -Subject: [PATCH 048/251] arm-efi: Fix compilation +Subject: [PATCH] arm-efi: Fix compilation --- grub-core/loader/arm/linux.c | 8 ++++---- @@ -36,6 +36,3 @@ index 260cbf06861..e64c79a9577 100644 machine_type = grub_arm_firmware_get_machine_type (); } --- -2.17.1 - diff --git a/0049-fdt-silence-clang-warning.patch b/0049-fdt-silence-clang-warning.patch index 2e8780fd..a276806e 100644 --- a/0049-fdt-silence-clang-warning.patch +++ b/0049-fdt-silence-clang-warning.patch @@ -1,7 +1,7 @@ From 68d54b55f49249c5e0517bf189f0f3df7ee6a36f Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 10 Jul 2017 01:34:22 +0000 -Subject: [PATCH 049/251] fdt: silence clang warning. +Subject: [PATCH] fdt: silence clang warning. --- grub-core/lib/fdt.c | 3 ++- @@ -21,6 +21,3 @@ index bdc6302448d..2705f2629b9 100644 if (ptr >= (char *) end) return 0; return token; --- -2.17.1 - diff --git a/0050-Fix-a-segfault-in-lsefi.patch b/0050-Fix-a-segfault-in-lsefi.patch index d2820b5b..676fa6a6 100644 --- a/0050-Fix-a-segfault-in-lsefi.patch +++ b/0050-Fix-a-segfault-in-lsefi.patch @@ -1,7 +1,7 @@ From e8ab5a1a9e2889eb59d1fa494ba441a53698dcd2 Mon Sep 17 00:00:00 2001 From: Rob Clark Date: Wed, 19 Jul 2017 15:47:41 -0400 -Subject: [PATCH 050/251] Fix a segfault in lsefi +Subject: [PATCH] Fix a segfault in lsefi when protocols_per_handle returns error, we can't use the pointers we passed to it, and that includes trusting num_protocols. @@ -28,6 +28,3 @@ index d901c389263..d1ce99af438 100644 for (j = 0; j < num_protocols; j++) { for (k = 0; k < ARRAY_SIZE (known_protocols); k++) --- -2.17.1 - diff --git a/0051-zfs-remove-size_t-typedef-and-use-grub_size_t-instea.patch b/0051-zfs-remove-size_t-typedef-and-use-grub_size_t-instea.patch index 58f173a8..5afa6269 100644 --- a/0051-zfs-remove-size_t-typedef-and-use-grub_size_t-instea.patch +++ b/0051-zfs-remove-size_t-typedef-and-use-grub_size_t-instea.patch @@ -1,8 +1,7 @@ From fa42786264cef98c56e972b3bb6b8448000e1c70 Mon Sep 17 00:00:00 2001 From: Pete Batard Date: Thu, 3 Aug 2017 15:46:15 +0100 -Subject: [PATCH 051/251] zfs: remove size_t typedef and use grub_size_t - instead +Subject: [PATCH] zfs: remove size_t typedef and use grub_size_t instead * Prevents some toolchains from issuing a warning on size_t redef. --- @@ -54,6 +53,3 @@ index 2f73449f0d4..5453822d025 100644 #else const int dec2 = 0; #endif --- -2.17.1 - diff --git a/0052-udf-Fix-reading-label-lvd.ident-is-dstring.patch b/0052-udf-Fix-reading-label-lvd.ident-is-dstring.patch index dfa5b346..2634b5a4 100644 --- a/0052-udf-Fix-reading-label-lvd.ident-is-dstring.patch +++ b/0052-udf-Fix-reading-label-lvd.ident-is-dstring.patch @@ -1,7 +1,7 @@ From 76188809d5ca40c5285b0ab202b5edea7be3f04d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pali=20Roh=C3=A1r?= Date: Thu, 22 Jun 2017 14:33:17 +0200 -Subject: [PATCH 052/251] udf: Fix reading label, lvd.ident is dstring +Subject: [PATCH] udf: Fix reading label, lvd.ident is dstring UDF dstring has stored length in the last byte of buffer. Therefore last byte is not part of recorded characters. And empty string in dstring is @@ -49,6 +49,3 @@ index 839bff88963..2587456336e 100644 grub_free (data); } else --- -2.17.1 - diff --git a/0053-grub-core-fs-udf.c-Add-support-for-UUID.patch b/0053-grub-core-fs-udf.c-Add-support-for-UUID.patch index e67333e3..126227d8 100644 --- a/0053-grub-core-fs-udf.c-Add-support-for-UUID.patch +++ b/0053-grub-core-fs-udf.c-Add-support-for-UUID.patch @@ -1,7 +1,7 @@ From 435fa75e01ef40917239c7f775e505e86f70d202 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Pali=20Roh=C3=A1r?= Date: Thu, 22 Jun 2017 14:42:16 +0200 -Subject: [PATCH 053/251] * grub-core/fs/udf.c: Add support for UUID +Subject: [PATCH] * grub-core/fs/udf.c: Add support for UUID Use same algorithm as in libblkid from util-linux v2.30. @@ -186,6 +186,3 @@ index 2587456336e..00a16098b47 100644 #ifdef GRUB_UTIL .reserved_first_sector = 1, .blocklist_install = 1, --- -2.17.1 - diff --git a/0054-mkrescue-Check-xorriso-presence-before-doing-anythin.patch b/0054-mkrescue-Check-xorriso-presence-before-doing-anythin.patch index 3c319094..b43ad2b2 100644 --- a/0054-mkrescue-Check-xorriso-presence-before-doing-anythin.patch +++ b/0054-mkrescue-Check-xorriso-presence-before-doing-anythin.patch @@ -1,8 +1,7 @@ From 9e962fd3c42081e2eef1f99a0eaab38fd04d2620 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 7 Aug 2017 18:05:17 +0200 -Subject: [PATCH 054/251] mkrescue: Check xorriso presence before doing - anything else. +Subject: [PATCH] mkrescue: Check xorriso presence before doing anything else. mkrescue can't do anything useful without xorriso, so abort early if it's not available. @@ -45,6 +44,3 @@ index 238d4840e2f..38f1543974e 100644 grub_init_all (); grub_hostfs_init (); grub_host_init (); --- -2.17.1 - diff --git a/0055-Fail-if-xorriso-failed.patch b/0055-Fail-if-xorriso-failed.patch index 0c028b86..0da5c882 100644 --- a/0055-Fail-if-xorriso-failed.patch +++ b/0055-Fail-if-xorriso-failed.patch @@ -1,7 +1,7 @@ From e66dc5d71ebfc9763420a76c274e6980d54641c3 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 7 Aug 2017 18:08:39 +0200 -Subject: [PATCH 055/251] Fail if xorriso failed. +Subject: [PATCH] Fail if xorriso failed. If xorriso failed most likely we didn't generate a meaningful image. --- @@ -39,6 +39,3 @@ index 38f1543974e..9545945d8f3 100644 grub_util_unlink_recursive (iso9660_dir); --- -2.17.1 - diff --git a/0056-efi-refactor-grub_efi_allocate_pages.patch b/0056-efi-refactor-grub_efi_allocate_pages.patch index 9cad6380..2e13c599 100644 --- a/0056-efi-refactor-grub_efi_allocate_pages.patch +++ b/0056-efi-refactor-grub_efi_allocate_pages.patch @@ -1,7 +1,7 @@ From dd5fde2df83c5c03b7ba04d2cc5b7be96de8da7b Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:23 +0100 -Subject: [PATCH 056/251] efi: refactor grub_efi_allocate_pages +Subject: [PATCH] efi: refactor grub_efi_allocate_pages Expose a new function, grub_efi_allocate_pages_real(), making it possible to specify allocation type and memory type as supported by the UEFI @@ -115,6 +115,3 @@ index e9c601f3410..b4cbebf3828 100644 EXPORT_FUNC(grub_efi_allocate_pages) (grub_efi_physical_address_t address, grub_efi_uintn_t pages); void EXPORT_FUNC(grub_efi_free_pages) (grub_efi_physical_address_t address, --- -2.17.1 - diff --git a/0057-Remove-grub_efi_allocate_pages.patch b/0057-Remove-grub_efi_allocate_pages.patch index 5c315783..3cfdef1d 100644 --- a/0057-Remove-grub_efi_allocate_pages.patch +++ b/0057-Remove-grub_efi_allocate_pages.patch @@ -1,7 +1,7 @@ From 4bc909bf89f5b4ff86c9e4e609d4fe0c11a66b0c Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Mon, 7 Aug 2017 18:33:29 +0200 -Subject: [PATCH 057/251] Remove grub_efi_allocate_pages. +Subject: [PATCH] Remove grub_efi_allocate_pages. grub_efi_allocate_pages Essentially does 2 unrelated things: * Allocate at fixed address. @@ -247,6 +247,3 @@ index b4cbebf3828..3fa082816ca 100644 void EXPORT_FUNC(grub_efi_free_pages) (grub_efi_physical_address_t address, grub_efi_uintn_t pages); int --- -2.17.1 - diff --git a/0058-efi-move-fdt-helper-library.patch b/0058-efi-move-fdt-helper-library.patch index b24a3971..5fe9f298 100644 --- a/0058-efi-move-fdt-helper-library.patch +++ b/0058-efi-move-fdt-helper-library.patch @@ -1,7 +1,7 @@ From 8c9465fac901caac6802d6872a1374518b001517 Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:24 +0100 -Subject: [PATCH 058/251] efi: move fdt helper library +Subject: [PATCH] efi: move fdt helper library There is nothing ARM64 (or even ARM) specific about the efi fdt helper library, which is used for locating or overriding a firmware-provided @@ -88,6 +88,3 @@ diff --git a/include/grub/arm64/fdtload.h b/include/grub/efi/fdtload.h similarity index 100% rename from include/grub/arm64/fdtload.h rename to include/grub/efi/fdtload.h --- -2.17.1 - diff --git a/0059-efi-Add-GRUB_PE32_MAGIC-definition.patch b/0059-efi-Add-GRUB_PE32_MAGIC-definition.patch index 99208fea..4cab655f 100644 --- a/0059-efi-Add-GRUB_PE32_MAGIC-definition.patch +++ b/0059-efi-Add-GRUB_PE32_MAGIC-definition.patch @@ -1,7 +1,7 @@ From c5841ba7f0d14c193f20854e7e55b4f7ce9207d5 Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:25 +0100 -Subject: [PATCH 059/251] efi: Add GRUB_PE32_MAGIC definition +Subject: [PATCH] efi: Add GRUB_PE32_MAGIC definition Add a generic GRUB_PE32_MAGIC definition for the PE 'MZ' tag and delete the existing one in arm64/linux.h. @@ -54,6 +54,3 @@ index f79c36c026e..7d44732d2c3 100644 /* According to the spec, the minimal alignment is 512 bytes... But some examples (such as EFI drivers in the Intel Sample Implementation) use 32 bytes (0x20) instead, and it seems --- -2.17.1 - diff --git a/0060-arm64-linux-loader-improve-type-portability.patch b/0060-arm64-linux-loader-improve-type-portability.patch index 669210da..1edcf7ee 100644 --- a/0060-arm64-linux-loader-improve-type-portability.patch +++ b/0060-arm64-linux-loader-improve-type-portability.patch @@ -1,7 +1,7 @@ From 91212e0aa07e704a61e4540c18a27f149f5e51c3 Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:26 +0100 -Subject: [PATCH 060/251] arm64 linux loader: improve type portability +Subject: [PATCH] arm64 linux loader: improve type portability In preparation for turning this into a common loader for 32-bit and 64-bit platforms, ensure the code will compile cleanly for either. @@ -110,6 +110,3 @@ index 091e9ddf43d..17212c38d0b 100644 GRUB_EFI_BYTES_TO_PAGES (grub_fdt_get_totalsize (fdt))); fdt = NULL; } --- -2.17.1 - diff --git a/0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch b/0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch index 22549499..d068450e 100644 --- a/0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch +++ b/0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch @@ -1,8 +1,7 @@ From f826330683675f0deb55b58fd229afd7d65fb053 Mon Sep 17 00:00:00 2001 From: Leif Lindholm Date: Thu, 3 Aug 2017 11:04:32 +0100 -Subject: [PATCH 061/251] efi: change heap allocation type to - GRUB_EFI_LOADER_CODE +Subject: [PATCH] efi: change heap allocation type to GRUB_EFI_LOADER_CODE With upcoming changes to EDK2, allocations of type EFI_LOADER_DATA may not return regions with execute ability. Since modules are loaded onto @@ -31,6 +30,3 @@ index b97b05fe825..ac2a4c556b8 100644 if (! addr) grub_fatal ("cannot allocate conventional memory %p with %u pages", (void *) ((grub_addr_t) start), --- -2.17.1 - diff --git a/0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch b/0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch index f4ed974a..f05c3e65 100644 --- a/0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch +++ b/0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch @@ -1,7 +1,7 @@ From bdd89d239cd9b4089630bfb5ec862aab8086dca2 Mon Sep 17 00:00:00 2001 From: Pete Batard Date: Mon, 7 Aug 2017 16:20:30 +0100 -Subject: [PATCH 062/251] core: use GRUB_TERM_ definitions when handling term +Subject: [PATCH] core: use GRUB_TERM_ definitions when handling term characters * Also use hex value for GRUB_TERM_ESC as '\e' is not in the C standard and is not understood by some compilers @@ -260,6 +260,3 @@ index 5ffb38f69aa..8117e2a24da 100644 #define GRUB_TERM_TAB '\t' #define GRUB_TERM_BACKSPACE '\b' --- -2.17.1 - diff --git a/0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch b/0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch index a4ba158d..f6450dec 100644 --- a/0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch +++ b/0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch @@ -1,7 +1,7 @@ From 1deebd85ef87cc581e995ce0a51dc0802ac9c367 Mon Sep 17 00:00:00 2001 From: Pete Batard Date: Mon, 7 Aug 2017 16:23:12 +0100 -Subject: [PATCH 063/251] io: add a GRUB_GZ prefix to gzio specific defines +Subject: [PATCH] io: add a GRUB_GZ prefix to gzio specific defines * This is done to avoid a conflict with a PACKED define in the EDK2 --- @@ -80,6 +80,3 @@ index 0f2ea6bd845..a8e33033bf8 100644 { /* TRANSLATORS: It's about given file having some strange format, not complete lack of gzip support. */ --- -2.17.1 - diff --git a/0064-re-write-.gitignore.patch b/0064-re-write-.gitignore.patch index ffb98b12..6ec159ca 100644 --- a/0064-re-write-.gitignore.patch +++ b/0064-re-write-.gitignore.patch @@ -1,7 +1,7 @@ From 38bfcd3054c28aa40234840c12d900f1d18a217d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 8 Aug 2017 12:48:04 -0400 -Subject: [PATCH 064/251] re-write .gitignore +Subject: [PATCH] re-write .gitignore --- .gitignore | 352 ++++++++++++-------------------------- @@ -495,6 +495,3 @@ index 00000000000..b7e1eb12428 +++ b/util/bash-completion.d/.gitignore @@ -0,0 +1 @@ +grub --- -2.17.1 - diff --git a/0065-IBM-client-architecture-CAS-reboot-support.patch b/0065-IBM-client-architecture-CAS-reboot-support.patch index 5370509d..0979a52c 100644 --- a/0065-IBM-client-architecture-CAS-reboot-support.patch +++ b/0065-IBM-client-architecture-CAS-reboot-support.patch @@ -1,7 +1,7 @@ From bf1fd830091fff49e26f39027e0db8fd4b688624 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Thu, 20 Sep 2012 18:07:39 -0300 -Subject: [PATCH 065/251] IBM client architecture (CAS) reboot support +Subject: [PATCH] IBM client architecture (CAS) reboot support This is an implementation of IBM client architecture (CAS) reboot for GRUB. @@ -169,6 +169,3 @@ index 8e425130327..9f26c69a2df 100644 #define FOR_IEEE1275_DEVALIASES(alias) for (grub_ieee1275_devalias_init_iterator (&(alias)); grub_ieee1275_devalias_next (&(alias));) --- -2.17.1 - diff --git a/0066-for-ppc-reset-console-display-attr-when-clear-screen.patch b/0066-for-ppc-reset-console-display-attr-when-clear-screen.patch index 57c8eb46..07ab3e3f 100644 --- a/0066-for-ppc-reset-console-display-attr-when-clear-screen.patch +++ b/0066-for-ppc-reset-console-display-attr-when-clear-screen.patch @@ -1,7 +1,7 @@ From 8b30fab3c07a9fc8549e404c411b747b960c57b2 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Wed, 24 Apr 2013 10:51:48 -0300 -Subject: [PATCH 066/251] for ppc, reset console display attr when clear screen +Subject: [PATCH] for ppc, reset console display attr when clear screen v2: Also use \x0c instead of a literal ^L to make future patches less awkward. @@ -27,6 +27,3 @@ index d317efa368d..29df35e6d20 100644 data->reverse_video_on = grub_strdup ("\e[7m"); data->reverse_video_off = grub_strdup ("\e[m"); if (grub_strcmp ("ieee1275", str) == 0) --- -2.17.1 - diff --git a/0067-Disable-GRUB-video-support-for-IBM-power-machines.patch b/0067-Disable-GRUB-video-support-for-IBM-power-machines.patch index 8903065a..fc928e09 100644 --- a/0067-Disable-GRUB-video-support-for-IBM-power-machines.patch +++ b/0067-Disable-GRUB-video-support-for-IBM-power-machines.patch @@ -1,7 +1,7 @@ From 45322cbc9402639a431fc0f33bd76e387e6f02bf Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 11 Jun 2013 15:14:05 -0300 -Subject: [PATCH 067/251] Disable GRUB video support for IBM power machines +Subject: [PATCH] Disable GRUB video support for IBM power machines Should fix the problem in bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=973205 @@ -60,6 +60,3 @@ index 9f26c69a2df..ab4f284c341 100644 }; extern int EXPORT_FUNC(grub_ieee1275_test_flag) (enum grub_ieee1275_flag flag); --- -2.17.1 - diff --git a/0068-Honor-a-symlink-when-generating-configuration-by-gru.patch b/0068-Honor-a-symlink-when-generating-configuration-by-gru.patch index 3c593ead..a0f3402f 100644 --- a/0068-Honor-a-symlink-when-generating-configuration-by-gru.patch +++ b/0068-Honor-a-symlink-when-generating-configuration-by-gru.patch @@ -1,7 +1,7 @@ From c29e260c9f41f4f802fa852b6c46fb2e5d912cb6 Mon Sep 17 00:00:00 2001 From: Marcel Kolaja Date: Tue, 21 Jan 2014 10:57:08 -0500 -Subject: [PATCH 068/251] Honor a symlink when generating configuration by +Subject: [PATCH] Honor a symlink when generating configuration by grub2-mkconfig Honor a symlink when generating configuration by grub2-mkconfig, so that @@ -24,6 +24,3 @@ index f8496d28bdf..3b070fd7632 100644 fi fi --- -2.17.1 - diff --git a/0069-Move-bash-completion-script-922997.patch b/0069-Move-bash-completion-script-922997.patch index 6f00ead3..cb2f9e1a 100644 --- a/0069-Move-bash-completion-script-922997.patch +++ b/0069-Move-bash-completion-script-922997.patch @@ -1,7 +1,7 @@ From 8eaf2f497a6bcffc5554509533940ac2b764b981 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 3 Apr 2013 14:35:34 -0400 -Subject: [PATCH 069/251] Move bash completion script (#922997) +Subject: [PATCH] Move bash completion script (#922997) Apparently these go in a new place now. --- @@ -50,6 +50,3 @@ index 136287cf1bf..61108f05429 100644 bashcompletion_DATA = $(bash_completion_script) $(bash_completion_script): $(bash_completion_source) $(top_builddir)/config.status --- -2.17.1 - diff --git a/0070-Update-to-minilzo-2.08.patch b/0070-Update-to-minilzo-2.08.patch index 417b8169..6e000cf3 100644 --- a/0070-Update-to-minilzo-2.08.patch +++ b/0070-Update-to-minilzo-2.08.patch @@ -1,7 +1,7 @@ From 9a1e99c5628bafa9e3970a5317b721da704bec6a Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Dec 2014 15:36:09 -0500 -Subject: [PATCH 070/251] Update to minilzo-2.08 +Subject: [PATCH] Update to minilzo-2.08 This fixes CVE-2014-4607 - lzo: lzo1x_decompress_safe() integer overflow @@ -8507,6 +8507,3 @@ index 74fefa9fe20..79374546748 100644 #define LZO1X_MEM_DECOMPRESS (0) --- -2.17.1 - diff --git a/0071-Allow-fallback-to-include-entries-by-title-not-just-.patch b/0071-Allow-fallback-to-include-entries-by-title-not-just-.patch index 95bd714f..87f8cfe0 100644 --- a/0071-Allow-fallback-to-include-entries-by-title-not-just-.patch +++ b/0071-Allow-fallback-to-include-entries-by-title-not-just-.patch @@ -1,8 +1,8 @@ From 27845fb323de35e9dcaad8c738eb1a2a2bc316f8 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 5 Sep 2014 10:07:04 -0400 -Subject: [PATCH 071/251] Allow "fallback" to include entries by title, not - just number. +Subject: [PATCH] Allow "fallback" to include entries by title, not just + number. Resolves: rhbz#1026084 @@ -139,6 +139,3 @@ index e7a83c2d6e2..d2f64b05e0a 100644 /* Get the entry number from the variable NAME. */ static int get_entry_number (grub_menu_t menu, const char *name) --- -2.17.1 - diff --git a/0072-Add-GRUB_DISABLE_UUID.patch b/0072-Add-GRUB_DISABLE_UUID.patch index 777a51f4..884ae637 100644 --- a/0072-Add-GRUB_DISABLE_UUID.patch +++ b/0072-Add-GRUB_DISABLE_UUID.patch @@ -1,7 +1,7 @@ From 7f7429e93fa791ac2c002beaafab9b9d9bd86b89 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Sep 2014 16:49:25 -0400 -Subject: [PATCH 072/251] Add GRUB_DISABLE_UUID. +Subject: [PATCH] Add GRUB_DISABLE_UUID. This will cause "search --fs-uuid --set=root ..." not to be generated by grub2-mkconfig, and instead simply attempt to use the grub device name @@ -94,6 +94,3 @@ index 60b31caddeb..cf35e417470 100644 echo "$fs_uuid"; else echo $device |sed 's, ,_,g' --- -2.17.1 - diff --git a/0073-Make-exit-take-a-return-code.patch b/0073-Make-exit-take-a-return-code.patch index bb40a4fd..1fa61668 100644 --- a/0073-Make-exit-take-a-return-code.patch +++ b/0073-Make-exit-take-a-return-code.patch @@ -1,7 +1,7 @@ From 384ccb1b44fc23514a59529f58f984dcc4a75cc9 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 26 Feb 2014 21:49:12 -0500 -Subject: [PATCH 073/251] Make "exit" take a return code. +Subject: [PATCH] Make "exit" take a return code. This adds "exit" with a return code. With this patch, any "exit" command /may/ include a return code, and on platforms that support @@ -254,6 +254,3 @@ index 2a9f87cc255..06208143779 100644 grub_uint64_t EXPORT_FUNC(grub_divmod64) (grub_uint64_t n, grub_uint64_t d, grub_uint64_t *r); --- -2.17.1 - diff --git a/0074-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch b/0074-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch index 87b9d2f8..f606370e 100644 --- a/0074-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch +++ b/0074-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch @@ -1,8 +1,8 @@ From 939f3dfcfacde13bd7ebfe411c0dceee9e5ed0ae Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 22 Jul 2015 11:21:01 -0400 -Subject: [PATCH 074/251] Mark po/exclude.pot as binary so git won't try to - diff nonprintables. +Subject: [PATCH] Mark po/exclude.pot as binary so git won't try to diff + nonprintables. Signed-off-by: Peter Jones --- @@ -17,6 +17,3 @@ index 00000000000..33ffaa40460 +++ b/.gitattributes @@ -0,0 +1 @@ +po/exclude.pot binary --- -2.17.1 - diff --git a/0075-Make-efi-machines-load-an-env-block-from-a-variable.patch b/0075-Make-efi-machines-load-an-env-block-from-a-variable.patch index 8d1ebd0b..20969b85 100644 --- a/0075-Make-efi-machines-load-an-env-block-from-a-variable.patch +++ b/0075-Make-efi-machines-load-an-env-block-from-a-variable.patch @@ -1,7 +1,7 @@ From 805220eb48a8cabcc83628d90aa40f3204b21a71 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 7 Dec 2015 14:20:49 -0500 -Subject: [PATCH 075/251] Make efi machines load an env block from a variable +Subject: [PATCH] Make efi machines load an env block from a variable Signed-off-by: Peter Jones --- @@ -79,6 +79,3 @@ index 2c31847bf6d..f7782b6e114 100644 char **device, char **path); --- -2.17.1 - diff --git a/0076-DHCP-client-ID-and-UUID-options-added.patch b/0076-DHCP-client-ID-and-UUID-options-added.patch index cc86fc09..95c29669 100644 --- a/0076-DHCP-client-ID-and-UUID-options-added.patch +++ b/0076-DHCP-client-ID-and-UUID-options-added.patch @@ -1,7 +1,7 @@ From cefc164d655fb7709efbc37a317952ff3ec4aeb3 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 27 Nov 2012 17:18:53 -0200 -Subject: [PATCH 076/251] DHCP client ID and UUID options added. +Subject: [PATCH] DHCP client ID and UUID options added. --- grub-core/net/bootp.c | 87 ++++++++++++++++++++++++++++++++++++++++++++++----- @@ -140,6 +140,3 @@ index 1096b24322e..e266bae23f4 100644 GRUB_NET_BOOTP_END = 0xff }; --- -2.17.1 - diff --git a/0077-trim-arp-packets-with-abnormal-size.patch b/0077-trim-arp-packets-with-abnormal-size.patch index de50f066..07ad01d9 100644 --- a/0077-trim-arp-packets-with-abnormal-size.patch +++ b/0077-trim-arp-packets-with-abnormal-size.patch @@ -1,7 +1,7 @@ From 571a6cce3b0d4c8abf11efc320e2de6ff9188d60 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Wed, 5 Feb 2014 09:42:42 -0200 -Subject: [PATCH 077/251] trim arp packets with abnormal size +Subject: [PATCH] trim arp packets with abnormal size GRUB uses arp request to create the arp response. If the incoming packet is foobared, GRUB needs to trim the arp response packet before sending it. @@ -26,6 +26,3 @@ index 54306e3b16d..d1c69ed2b55 100644 grub_net_link_level_address_t target; struct grub_net_buff nb_reply; struct arppkt *arp_reply; --- -2.17.1 - diff --git a/0078-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch b/0078-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch index fa5b8d18..14eeebf7 100644 --- a/0078-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch +++ b/0078-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch @@ -1,7 +1,7 @@ From 6cd959a64f588e256f0ba17e31bf2720b9cdec88 Mon Sep 17 00:00:00 2001 From: Prarit Bhargava Date: Wed, 12 Mar 2014 10:58:16 -0400 -Subject: [PATCH 078/251] Fix bad test on GRUB_DISABLE_SUBMENU. +Subject: [PATCH] Fix bad test on GRUB_DISABLE_SUBMENU. The file /etc/grub.d/10_linux does @@ -36,6 +36,3 @@ index de9044c7f28..cf6331f2a51 100644 linux_entry "${OS}" "${version}" simple \ "${GRUB_CMDLINE_LINUX} ${GRUB_CMDLINE_LINUX_DEFAULT}" --- -2.17.1 - diff --git a/0079-Add-support-for-UEFI-operating-systems-returned-by-o.patch b/0079-Add-support-for-UEFI-operating-systems-returned-by-o.patch index d7f7e0d7..23ef5f9c 100644 --- a/0079-Add-support-for-UEFI-operating-systems-returned-by-o.patch +++ b/0079-Add-support-for-UEFI-operating-systems-returned-by-o.patch @@ -1,8 +1,7 @@ From 0254265409f80b369c35fb474c7371feb6f9ae1d Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Wed, 12 Jun 2013 11:51:49 -0400 -Subject: [PATCH 079/251] Add support for UEFI operating systems returned by - os-prober +Subject: [PATCH] Add support for UEFI operating systems returned by os-prober os-prober returns UEFI operating systems in the form: @@ -45,6 +44,3 @@ index 515a68c7aa0..9b8f5968e2d 100644 + esac esac done --- -2.17.1 - diff --git a/0080-Migrate-PPC-from-Yaboot-to-Grub2.patch b/0080-Migrate-PPC-from-Yaboot-to-Grub2.patch index 6ada1585..d811c2c4 100644 --- a/0080-Migrate-PPC-from-Yaboot-to-Grub2.patch +++ b/0080-Migrate-PPC-from-Yaboot-to-Grub2.patch @@ -1,7 +1,7 @@ From f2b4c105e3657cc32ed0f7aefa713f161cdf64f1 Mon Sep 17 00:00:00 2001 From: Mark Hamzy Date: Wed, 28 Mar 2012 14:46:41 -0500 -Subject: [PATCH 080/251] Migrate PPC from Yaboot to Grub2 +Subject: [PATCH] Migrate PPC from Yaboot to Grub2 Add configuration support for serial terminal consoles. This will set the maximum screen size so that text is not overwritten. @@ -149,6 +149,3 @@ index 00000000000..10d66586820 +cat << EOF + terminfo -g ${X}x${Y} ${TERMINAL} +EOF --- -2.17.1 - diff --git a/0081-Add-fw_path-variable-revised.patch b/0081-Add-fw_path-variable-revised.patch index 7bb01efc..c130f500 100644 --- a/0081-Add-fw_path-variable-revised.patch +++ b/0081-Add-fw_path-variable-revised.patch @@ -1,7 +1,7 @@ From 7f021a05a5ed7c97432abbc1762f40e36a4915e3 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Wed, 19 Sep 2012 21:22:55 -0300 -Subject: [PATCH 081/251] Add fw_path variable (revised) +Subject: [PATCH] Add fw_path variable (revised) This patch makes grub look for its config file on efi where the app was found. It was originally written by Matthew Garrett, and adapted to fix the @@ -76,6 +76,3 @@ index 249e19bc788..759c475c4d9 100644 prefix = grub_env_get ("prefix"); if (prefix) --- -2.17.1 - diff --git a/0082-Add-support-for-linuxefi.patch b/0082-Add-support-for-linuxefi.patch index 141516bc..6a55b6ef 100644 --- a/0082-Add-support-for-linuxefi.patch +++ b/0082-Add-support-for-linuxefi.patch @@ -1,7 +1,7 @@ From 778385965798ac2711f0d07d5cf521a6e999ca8b Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 10 Jul 2012 11:58:52 -0400 -Subject: [PATCH 082/251] Add support for linuxefi +Subject: [PATCH] Add support for linuxefi --- grub-core/Makefile.core.def | 8 + @@ -477,6 +477,3 @@ index da0ca3b83cd..fc36bdaf367 100644 } GRUB_PACKED; /* Boot parameters for Linux based on 2.6.12. This is used by the setup --- -2.17.1 - diff --git a/0083-Use-linuxefi-and-initrdefi-where-appropriate.patch b/0083-Use-linuxefi-and-initrdefi-where-appropriate.patch index b68cf243..25f80331 100644 --- a/0083-Use-linuxefi-and-initrdefi-where-appropriate.patch +++ b/0083-Use-linuxefi-and-initrdefi-where-appropriate.patch @@ -1,7 +1,7 @@ From 793d4270384ef3373bc0b3c956cab8a8cdb75bcf Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 16 Jul 2012 18:57:11 -0400 -Subject: [PATCH 083/251] Use "linuxefi" and "initrdefi" where appropriate. +Subject: [PATCH] Use "linuxefi" and "initrdefi" where appropriate. --- util/grub.d/10_linux.in | 18 ++++++++++++++++-- @@ -45,6 +45,3 @@ index cf6331f2a51..8ccf012f747 100644 fi sed "s/^/$submenu_indentation/" << EOF } --- -2.17.1 - diff --git a/0084-Don-t-allow-insmod-when-secure-boot-is-enabled.patch b/0084-Don-t-allow-insmod-when-secure-boot-is-enabled.patch index 822e02ab..28b21dc6 100644 --- a/0084-Don-t-allow-insmod-when-secure-boot-is-enabled.patch +++ b/0084-Don-t-allow-insmod-when-secure-boot-is-enabled.patch @@ -1,7 +1,7 @@ From eb8fd62e887e624f5c6e7c2ee8512981e8b5be97 Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Tue, 23 Oct 2012 10:40:49 -0400 -Subject: [PATCH 084/251] Don't allow insmod when secure boot is enabled. +Subject: [PATCH] Don't allow insmod when secure boot is enabled. Hi, @@ -119,6 +119,3 @@ index 91e29ce66f1..bb3ab7dfdeb 100644 int EXPORT_FUNC (grub_efi_compare_device_paths) (const grub_efi_device_path_t *dp1, const grub_efi_device_path_t *dp2); --- -2.17.1 - diff --git a/0085-Pass-x-hex-hex-straight-through-unmolested.patch b/0085-Pass-x-hex-hex-straight-through-unmolested.patch index 0c3db024..35b8ed77 100644 --- a/0085-Pass-x-hex-hex-straight-through-unmolested.patch +++ b/0085-Pass-x-hex-hex-straight-through-unmolested.patch @@ -1,8 +1,7 @@ From 0d54ed89090fc1bdcb75de474024b2b81dbf644f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 1 Oct 2012 13:24:37 -0400 -Subject: [PATCH 085/251] Pass "\x[[:hex:]][[:hex:]]" straight through - unmolested. +Subject: [PATCH] Pass "\x[[:hex:]][[:hex:]]" straight through unmolested. --- grub-core/commands/wildcard.c | 16 +++++++++++++++- @@ -178,6 +177,3 @@ index ab78ca87f90..cf6cd6601d6 100644 break; case '$': if (escaped) --- -2.17.1 - diff --git a/0086-Add-X-option-to-printf-functions.patch b/0086-Add-X-option-to-printf-functions.patch index 9d2782ae..fa0405b6 100644 --- a/0086-Add-X-option-to-printf-functions.patch +++ b/0086-Add-X-option-to-printf-functions.patch @@ -1,7 +1,7 @@ From 6237b1688124d6a72250b296e758ef2d59fde26f Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 27 Nov 2012 16:58:39 -0200 -Subject: [PATCH 086/251] Add %X option to printf functions. +Subject: [PATCH] Add %X option to printf functions. --- grub-core/kern/misc.c | 7 +++++-- @@ -53,6 +53,3 @@ index 952411d5dc6..8344526be7f 100644 case 'u': case 'd': { --- -2.17.1 - diff --git a/0087-Search-for-specific-config-file-for-netboot.patch b/0087-Search-for-specific-config-file-for-netboot.patch index 9e649cf9..9cee6e6b 100644 --- a/0087-Search-for-specific-config-file-for-netboot.patch +++ b/0087-Search-for-specific-config-file-for-netboot.patch @@ -1,7 +1,7 @@ From 9491cbfdab951e38f096bd9705a76b382f54c9be Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 27 Nov 2012 17:22:07 -0200 -Subject: [PATCH 087/251] Search for specific config file for netboot +Subject: [PATCH] Search for specific config file for netboot This patch implements a search for a specific configuration when the config file is on a remoteserver. It uses the following order: @@ -198,6 +198,3 @@ index e266bae23f4..50d62ab0c8c 100644 +grub_net_search_configfile (char *config); + #endif /* ! GRUB_NET_HEADER */ --- -2.17.1 - diff --git a/0088-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch b/0088-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch index 876c91cd..5f023b93 100644 --- a/0088-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch +++ b/0088-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch @@ -1,8 +1,8 @@ From 5fcdebdc36cc84c772754b7f5bdb87aed2b42853 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Tue, 22 Jan 2013 06:31:38 +0100 -Subject: [PATCH 088/251] blscfg: add blscfg module to parse Boot Loader - Specification snippets +Subject: [PATCH] blscfg: add blscfg module to parse Boot Loader Specification + snippets http://www.freedesktop.org/wiki/Specifications/BootLoaderSpec @@ -246,6 +246,3 @@ index 00000000000..4274aca5a9d +{ + grub_unregister_extcmd (cmd); +} --- -2.17.1 - diff --git a/0089-Don-t-write-messages-to-the-screen.patch b/0089-Don-t-write-messages-to-the-screen.patch index d2dbc09e..d9eb35b2 100644 --- a/0089-Don-t-write-messages-to-the-screen.patch +++ b/0089-Don-t-write-messages-to-the-screen.patch @@ -1,7 +1,7 @@ From fc390be631e93744c6a3a2f42849c9edf2614a36 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 13:30:20 -0400 -Subject: [PATCH 089/251] Don't write messages to the screen +Subject: [PATCH] Don't write messages to the screen Writing messages to the screen before the menus or boot splash happens so quickly it looks like something is wrong and isn't @@ -176,6 +176,3 @@ index 8ccf012f747..a3d9711d607 100644 initrd ${rel_dirname}/${initrd} EOF fi --- -2.17.1 - diff --git a/0090-Don-t-print-GNU-GRUB-header.patch b/0090-Don-t-print-GNU-GRUB-header.patch index d3042272..e55c3d92 100644 --- a/0090-Don-t-print-GNU-GRUB-header.patch +++ b/0090-Don-t-print-GNU-GRUB-header.patch @@ -1,7 +1,7 @@ From 806c26ae73bc86e305c39c955d86480fad8985df Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 13:53:48 -0400 -Subject: [PATCH 090/251] Don't print GNU GRUB header +Subject: [PATCH] Don't print GNU GRUB header No one cares. --- @@ -40,6 +40,3 @@ index b2654ef62e8..f57b7508a76 100644 } static void --- -2.17.1 - diff --git a/0091-Don-t-add-to-highlighted-row.patch b/0091-Don-t-add-to-highlighted-row.patch index b4aec29f..70a2666f 100644 --- a/0091-Don-t-add-to-highlighted-row.patch +++ b/0091-Don-t-add-to-highlighted-row.patch @@ -1,7 +1,7 @@ From 5ae2484f263365351a2891be6c056eeb96b3924b Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 17:49:45 -0400 -Subject: [PATCH 091/251] Don't add '*' to highlighted row +Subject: [PATCH] Don't add '*' to highlighted row It is already highlighted. --- @@ -21,6 +21,3 @@ index e22bb91f6e8..a3d1f23f68f 100644 grub_print_ucs4_menu (unicode_title, unicode_title + len, --- -2.17.1 - diff --git a/0092-Message-string-cleanups.patch b/0092-Message-string-cleanups.patch index 6808548d..09f2a835 100644 --- a/0092-Message-string-cleanups.patch +++ b/0092-Message-string-cleanups.patch @@ -1,7 +1,7 @@ From 622b238ecb927d331dc38083584a7323013b5f21 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 11:09:04 -0400 -Subject: [PATCH 092/251] Message string cleanups +Subject: [PATCH] Message string cleanups Make use of terminology consistent. Remove jargon. --- @@ -66,6 +66,3 @@ index a3d1f23f68f..64a83862f66 100644 if (!msg_translated) { grub_print_error (); --- -2.17.1 - diff --git a/0093-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch b/0093-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch index 25650ead..a04fb3ed 100644 --- a/0093-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch +++ b/0093-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch @@ -1,7 +1,7 @@ From c7dac08ab344638afabf579e03bedfac729e1944 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:08:23 -0400 -Subject: [PATCH 093/251] Fix border spacing now that we aren't displaying it +Subject: [PATCH] Fix border spacing now that we aren't displaying it --- grub-core/normal/menu_text.c | 6 +++--- @@ -27,6 +27,3 @@ index 64a83862f66..1062d64ee29 100644 geo->timeout_lines = 2; --- -2.17.1 - diff --git a/0094-Use-the-correct-indentation-for-the-term-help-text.patch b/0094-Use-the-correct-indentation-for-the-term-help-text.patch index 21dd408a..7b22a92e 100644 --- a/0094-Use-the-correct-indentation-for-the-term-help-text.patch +++ b/0094-Use-the-correct-indentation-for-the-term-help-text.patch @@ -1,7 +1,7 @@ From 8a59d6c44d946eac70ecbb7a9418c5d6801add8b Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:08:49 -0400 -Subject: [PATCH 094/251] Use the correct indentation for the term help text +Subject: [PATCH] Use the correct indentation for the term help text That is consistent with the menu help text --- @@ -23,6 +23,3 @@ index f57b7508a76..0ce59fdc3f0 100644 else grub_print_message_indented (msg_formatted, 0, 0, term); grub_putcode ('\n', term); --- -2.17.1 - diff --git a/0095-Indent-menu-entries.patch b/0095-Indent-menu-entries.patch index 5c6fc0a6..2e089049 100644 --- a/0095-Indent-menu-entries.patch +++ b/0095-Indent-menu-entries.patch @@ -1,7 +1,7 @@ From 018439ecfda2bc5049ccbfb0d6ab7fa047411a3b Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:30:55 -0400 -Subject: [PATCH 095/251] Indent menu entries +Subject: [PATCH] Indent menu entries --- grub-core/normal/menu_text.c | 3 ++- @@ -21,6 +21,3 @@ index 1062d64ee29..ecc60f99fc3 100644 grub_print_ucs4_menu (unicode_title, unicode_title + len, --- -2.17.1 - diff --git a/0096-Fix-margins.patch b/0096-Fix-margins.patch index 0940c646..8a4f6fc5 100644 --- a/0096-Fix-margins.patch +++ b/0096-Fix-margins.patch @@ -1,7 +1,7 @@ From 33481aa0e7897465ffd386101d6f3eda6e3bbac0 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:59:36 -0400 -Subject: [PATCH 096/251] Fix margins +Subject: [PATCH] Fix margins --- grub-core/normal/menu_text.c | 8 +++----- @@ -32,6 +32,3 @@ index ecc60f99fc3..0e43f2c10cc 100644 - 1 /* empty line before info message*/ - geo->timeout_lines /* timeout */ - 1 /* empty final line */; --- -2.17.1 - diff --git a/0097-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch b/0097-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch index 4369caaf..718e6ad2 100644 --- a/0097-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch +++ b/0097-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch @@ -1,7 +1,7 @@ From ea032bd4a6cb66929da61477b1759e136c975189 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 21 Jun 2013 14:44:08 -0400 -Subject: [PATCH 097/251] Use -2 instead of -1 for our right-hand margin, so +Subject: [PATCH] Use -2 instead of -1 for our right-hand margin, so linewrapping works (#976643). Signed-off-by: Peter Jones @@ -22,6 +22,3 @@ index 0e43f2c10cc..537d4bf86ff 100644 geo->first_entry_y = 3; /* three empty lines*/ --- -2.17.1 - diff --git a/0098-Use-linux16-when-appropriate-880840.patch b/0098-Use-linux16-when-appropriate-880840.patch index efc902da..327717bc 100644 --- a/0098-Use-linux16-when-appropriate-880840.patch +++ b/0098-Use-linux16-when-appropriate-880840.patch @@ -1,7 +1,7 @@ From 8e1957d59e7e72850cbac7e779ddf22ca23c250d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 28 Oct 2013 10:05:07 -0400 -Subject: [PATCH 098/251] Use linux16 when appropriate (#880840) +Subject: [PATCH] Use linux16 when appropriate (#880840) The kernel group really would prefer that we use the 16 bit entry point on x86 bios machines. @@ -47,6 +47,3 @@ index a3d9711d607..f3bf6acd856 100644 EOF fi fi --- -2.17.1 - diff --git a/0099-Enable-pager-by-default.-985860.patch b/0099-Enable-pager-by-default.-985860.patch index 0b058250..02e87091 100644 --- a/0099-Enable-pager-by-default.-985860.patch +++ b/0099-Enable-pager-by-default.-985860.patch @@ -1,7 +1,7 @@ From 7466f51a0012ebdd8be07cfc0e63d50e0e79560d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 28 Oct 2013 10:09:27 -0400 -Subject: [PATCH 099/251] Enable pager by default. (#985860) +Subject: [PATCH] Enable pager by default. (#985860) Signed-off-by: Peter Jones --- @@ -21,6 +21,3 @@ index 93a90233ead..858b526c925 100644 if [ -s \$prefix/grubenv ]; then load_env fi --- -2.17.1 - diff --git a/0100-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch b/0100-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch index c133eccb..100cc693 100644 --- a/0100-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch +++ b/0100-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch @@ -1,8 +1,8 @@ From 7a97d9621a145cbd04111970fea04c34433f900c Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 28 Oct 2013 10:13:27 -0400 -Subject: [PATCH 100/251] F10 doesn't work on serial, so don't tell the user to - hit it (#987443) +Subject: [PATCH] F10 doesn't work on serial, so don't tell the user to hit it + (#987443) Signed-off-by: Peter Jones --- @@ -22,6 +22,3 @@ index 537d4bf86ff..452d55bf9ff 100644 command prompt or Escape to discard edits and return to the menu. Pressing Tab lists possible completions."), STANDARD_MARGIN, STANDARD_MARGIN, term, dry_run); --- -2.17.1 - diff --git a/0101-Don-t-say-GNU-Linux-in-generated-menus.patch b/0101-Don-t-say-GNU-Linux-in-generated-menus.patch index c6199fe9..7f637136 100644 --- a/0101-Don-t-say-GNU-Linux-in-generated-menus.patch +++ b/0101-Don-t-say-GNU-Linux-in-generated-menus.patch @@ -1,7 +1,7 @@ From 45877a77f50eecd0b7fd3ba1aec0d4398a3b6a20 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 14 Mar 2011 14:27:42 -0400 -Subject: [PATCH 101/251] Don't say "GNU/Linux" in generated menus. +Subject: [PATCH] Don't say "GNU/Linux" in generated menus. --- util/grub.d/10_linux.in | 4 ++-- @@ -40,6 +40,3 @@ index c002fc9f946..54f1ec8a2fd 100644 CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr 'A-Z' 'a-z' | cut -d' ' -f1|LC_ALL=C sed 's,[^[:alnum:]_],_,g') ${CLASS}" fi --- -2.17.1 - diff --git a/0102-Don-t-draw-a-border-around-the-menu.patch b/0102-Don-t-draw-a-border-around-the-menu.patch index a1076dcd..3f0b39ff 100644 --- a/0102-Don-t-draw-a-border-around-the-menu.patch +++ b/0102-Don-t-draw-a-border-around-the-menu.patch @@ -1,7 +1,7 @@ From c28a3053e96859000df5ff1d48c9a560d47c0470 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 16:47:33 -0400 -Subject: [PATCH 102/251] Don't draw a border around the menu +Subject: [PATCH] Don't draw a border around the menu It looks cleaner without it. --- @@ -69,6 +69,3 @@ index 452d55bf9ff..1ed2bd92cf8 100644 grub_term_normal_color = old_color_normal; grub_term_highlight_color = old_color_highlight; geo->timeout_y = geo->first_entry_y + geo->num_entries --- -2.17.1 - diff --git a/0103-Use-the-standard-margin-for-the-timeout-string.patch b/0103-Use-the-standard-margin-for-the-timeout-string.patch index 7547fb55..e442ef06 100644 --- a/0103-Use-the-standard-margin-for-the-timeout-string.patch +++ b/0103-Use-the-standard-margin-for-the-timeout-string.patch @@ -1,7 +1,7 @@ From 93018f5d1727eb58dead129f150a36080c22530a Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 10:52:32 -0400 -Subject: [PATCH 103/251] Use the standard margin for the timeout string +Subject: [PATCH] Use the standard margin for the timeout string So that it aligns with the other messages --- @@ -38,6 +38,3 @@ index 1ed2bd92cf8..7681f7d2893 100644 } } --- -2.17.1 - diff --git a/0104-Add-.eh_frame-to-list-of-relocations-stripped.patch b/0104-Add-.eh_frame-to-list-of-relocations-stripped.patch index fc3a262f..62faad2c 100644 --- a/0104-Add-.eh_frame-to-list-of-relocations-stripped.patch +++ b/0104-Add-.eh_frame-to-list-of-relocations-stripped.patch @@ -1,7 +1,7 @@ From c626121f38adf6fcd39a5f69249c650b4b52c10d Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Mon, 13 Jan 2014 21:50:59 -0500 -Subject: [PATCH 104/251] Add .eh_frame to list of relocations stripped +Subject: [PATCH] Add .eh_frame to list of relocations stripped --- conf/Makefile.common | 2 +- @@ -20,6 +20,3 @@ index 311da61c6c5..044ab3abe88 100644 CFLAGS_MODULE = $(CFLAGS_PLATFORM) -ffreestanding LDFLAGS_MODULE = $(LDFLAGS_PLATFORM) -nostdlib $(TARGET_LDFLAGS_OLDMAGIC) -Wl,-r,-d --- -2.17.1 - diff --git a/0105-Make-10_linux-work-with-our-changes-for-linux16-and-.patch b/0105-Make-10_linux-work-with-our-changes-for-linux16-and-.patch index b192d71b..f5b23178 100644 --- a/0105-Make-10_linux-work-with-our-changes-for-linux16-and-.patch +++ b/0105-Make-10_linux-work-with-our-changes-for-linux16-and-.patch @@ -1,8 +1,8 @@ From 59275c83e7a303c63379d37ba21aa39a3c3b7203 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jan 2014 13:12:23 -0500 -Subject: [PATCH 105/251] Make 10_linux work with our changes for linux16 and - linuxefi on aarch64 +Subject: [PATCH] Make 10_linux work with our changes for linux16 and linuxefi + on aarch64 Signed-off-by: Peter Jones --- @@ -80,6 +80,3 @@ index ef52cf3dbbb..191aebe80bb 100644 config= for i in "${dirname}/config-${version}" "${dirname}/config-${alt_version}" "/etc/kernels/kernel-config-${version}" ; do if test -e "${i}" ; then --- -2.17.1 - diff --git a/0106-Don-t-print-during-fdt-loading-method.patch b/0106-Don-t-print-during-fdt-loading-method.patch index 27093afa..923c9d75 100644 --- a/0106-Don-t-print-during-fdt-loading-method.patch +++ b/0106-Don-t-print-during-fdt-loading-method.patch @@ -1,7 +1,7 @@ From aedf2aceb354ab7bf28bbf70d0a4b505c0adcfdf Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jan 2014 16:15:46 -0500 -Subject: [PATCH 106/251] Don't print during fdt loading method. +Subject: [PATCH] Don't print during fdt loading method. Signed-off-by: Peter Jones --- @@ -22,6 +22,3 @@ index 191aebe80bb..452a9f69d28 100644 devicetree ${rel_dirname}/${fdt} EOF fi --- -2.17.1 - diff --git a/0107-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch b/0107-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch index c2e13b78..7564f108 100644 --- a/0107-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch +++ b/0107-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch @@ -1,8 +1,8 @@ From f2790b1f7c8efcd5589c8fcdaca51b548ab9825c Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Mon, 30 Jun 2014 14:16:46 -0400 -Subject: [PATCH 107/251] Don't munge raw spaces when we're doing our cmdline - escaping (#923374) +Subject: [PATCH] Don't munge raw spaces when we're doing our cmdline escaping + (#923374) Signed-off-by: Peter Jones --- @@ -31,6 +31,3 @@ index 0a5b2afb94b..970ea868c14 100644 is_hex(*(c+2)) && is_hex(*(c+3))) { *buf++ = *c++; --- -2.17.1 - diff --git a/0108-Don-t-require-a-password-to-boot-entries-generated-b.patch b/0108-Don-t-require-a-password-to-boot-entries-generated-b.patch index f316b74b..119b96d0 100644 --- a/0108-Don-t-require-a-password-to-boot-entries-generated-b.patch +++ b/0108-Don-t-require-a-password-to-boot-entries-generated-b.patch @@ -1,7 +1,7 @@ From 205a7844bea4d849dc24f24b5fc96f6040d5e2b9 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 11 Feb 2014 11:14:50 -0500 -Subject: [PATCH 108/251] Don't require a password to boot entries generated by +Subject: [PATCH] Don't require a password to boot entries generated by grub-mkconfig. When we set a password, we just want that to mean you can't /edit/ an entry. @@ -26,6 +26,3 @@ index 452a9f69d28..79a747ebd4d 100644 if [ "x${GRUB_DISTRIBUTOR}" = "x" ] ; then OS="$(sed 's, release .*$,,g' /etc/system-release)" --- -2.17.1 - diff --git a/0109-Don-t-emit-Booting-.-message.patch b/0109-Don-t-emit-Booting-.-message.patch index 3c0a2181..9cff2e4c 100644 --- a/0109-Don-t-emit-Booting-.-message.patch +++ b/0109-Don-t-emit-Booting-.-message.patch @@ -1,7 +1,7 @@ From c986c38f790881be0b9c5b0acd8d3b106412a5f1 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 18 Feb 2014 09:37:49 -0500 -Subject: [PATCH 109/251] Don't emit "Booting ..." message. +Subject: [PATCH] Don't emit "Booting ..." message. UI team still hates this stuff, so we're disabling it for RHEL 7. @@ -47,6 +47,3 @@ index cdf3590a364..5785f67ee1c 100644 errs_before = grub_err_printed_errors; --- -2.17.1 - diff --git a/0110-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch b/0110-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch index 599d4ded..89ecc94b 100644 --- a/0110-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch +++ b/0110-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch @@ -1,7 +1,7 @@ From dcf3b9c590f00e33f773de68ac4ebd55ca4f6e90 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 4 Mar 2014 11:00:23 -0500 -Subject: [PATCH 110/251] Replace a lot of man pages with slightly nicer ones. +Subject: [PATCH] Replace a lot of man pages with slightly nicer ones. Replace a bunch of machine generated ones with ones that look nicer. --- @@ -1958,6 +1958,3 @@ index 00000000000..37ea2dd5eaa + +.SH SEE ALSO +.BR "info grub" --- -2.17.1 - diff --git a/0111-use-fw_path-prefix-when-fallback-searching-for-grub-.patch b/0111-use-fw_path-prefix-when-fallback-searching-for-grub-.patch index 14c21eb8..f754fadd 100644 --- a/0111-use-fw_path-prefix-when-fallback-searching-for-grub-.patch +++ b/0111-use-fw_path-prefix-when-fallback-searching-for-grub-.patch @@ -1,8 +1,7 @@ From 24865a88781aef2a6a54433b5b383219108f54fa Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Wed, 19 Feb 2014 15:58:43 -0500 -Subject: [PATCH 111/251] use fw_path prefix when fallback searching for grub - config +Subject: [PATCH] use fw_path prefix when fallback searching for grub config When PXE booting via UEFI firmware, grub was searching for grub.cfg in the fw_path directory where the grub application was found. If @@ -40,6 +39,3 @@ index 0ce59fdc3f0..a3713efcd90 100644 if (prefix) { grub_size_t config_len; --- -2.17.1 - diff --git a/0112-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch b/0112-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch index 7b8179b3..6dd96aaf 100644 --- a/0112-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch +++ b/0112-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch @@ -1,8 +1,7 @@ From d4cd9aa8695ab9448da41f756553beb75bffee46 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 6 Mar 2014 11:51:33 -0500 -Subject: [PATCH 112/251] Try mac/guid/etc before grub.cfg on tftp config - files. +Subject: [PATCH] Try mac/guid/etc before grub.cfg on tftp config files. Signed-off-by: Peter Jones --- @@ -110,6 +109,3 @@ index a3713efcd90..7d9c4f09b9b 100644 } else grub_enter_normal_mode (argv[0]); --- -2.17.1 - diff --git a/0113-Fix-convert-function-to-support-NVMe-devices.patch b/0113-Fix-convert-function-to-support-NVMe-devices.patch index b5d4ca02..4c2f9602 100644 --- a/0113-Fix-convert-function-to-support-NVMe-devices.patch +++ b/0113-Fix-convert-function-to-support-NVMe-devices.patch @@ -1,7 +1,7 @@ From 397f179c26aeddf3fe452c62aa404459889835fc Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 18 Feb 2014 11:34:00 -0500 -Subject: [PATCH 113/251] Fix convert function to support NVMe devices +Subject: [PATCH] Fix convert function to support NVMe devices This is adapted from the patch at https://bugzilla.redhat.com/show_bug.cgi?id=1019660 , which is against @@ -54,6 +54,3 @@ index 847406fbab0..fa3460d6cd8 100644 if (grub_util_device_is_mapped_stat (&st)) return grub_util_devmapper_part_to_disk (&st, is_part, os_dev); --- -2.17.1 - diff --git a/0114-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch b/0114-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch index 7d429cd9..aa801349 100644 --- a/0114-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch +++ b/0114-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch @@ -1,8 +1,7 @@ From 4291f418c3304f0f379467e87ce5892853cc16c7 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Mon, 10 Feb 2014 16:13:10 -0500 -Subject: [PATCH 114/251] Switch to use APM Mustang device tree, for hardware - testing. +Subject: [PATCH] Switch to use APM Mustang device tree, for hardware testing. Signed-off-by: David A. Marlin --- @@ -24,6 +23,3 @@ index 79a747ebd4d..462b461ff49 100644 break fi done --- -2.17.1 - diff --git a/0115-Use-the-default-device-tree-from-the-grub-default-fi.patch b/0115-Use-the-default-device-tree-from-the-grub-default-fi.patch index 259682eb..058d5918 100644 --- a/0115-Use-the-default-device-tree-from-the-grub-default-fi.patch +++ b/0115-Use-the-default-device-tree-from-the-grub-default-fi.patch @@ -1,8 +1,7 @@ From 5111bdda0d0a21ab02f6c9aa441a32cd02c6bc3f Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Wed, 12 Feb 2014 14:54:04 -0500 -Subject: [PATCH 115/251] Use the default device tree from the grub default - file +Subject: [PATCH] Use the default device tree from the grub default file instead of hardcoding a value. @@ -41,6 +40,3 @@ index 462b461ff49..a9692a0c2a2 100644 break fi done --- -2.17.1 - diff --git a/0116-reopen-SNP-protocol-for-exclusive-use-by-grub.patch b/0116-reopen-SNP-protocol-for-exclusive-use-by-grub.patch index b1a395ab..42f406e5 100644 --- a/0116-reopen-SNP-protocol-for-exclusive-use-by-grub.patch +++ b/0116-reopen-SNP-protocol-for-exclusive-use-by-grub.patch @@ -1,7 +1,7 @@ From 0ff5bf3deefdb17dbadb51a11acc50b96e2ed797 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Sat, 15 Feb 2014 15:10:22 -0500 -Subject: [PATCH 116/251] reopen SNP protocol for exclusive use by grub +Subject: [PATCH] reopen SNP protocol for exclusive use by grub --- grub-core/net/drivers/efi/efinet.c | 16 ++++++++++++++++ @@ -41,6 +41,3 @@ index 5388f952ba9..ea0e0ca360e 100644 return; } } --- -2.17.1 - diff --git a/0117-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch b/0117-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch index 0b39008f..0d7c551b 100644 --- a/0117-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch +++ b/0117-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch @@ -1,8 +1,7 @@ From 58fba65b7e339d4c7279e4ca88937d9501275169 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 4 Mar 2016 15:13:59 -0500 -Subject: [PATCH 117/251] Revert "reopen SNP protocol for exclusive use by - grub" +Subject: [PATCH] Revert "reopen SNP protocol for exclusive use by grub" This reverts commit a3f2c756ce34c9666bddef35e3b3b85ccecdcffc , which is obsoleted by these: @@ -50,6 +49,3 @@ index ea0e0ca360e..5388f952ba9 100644 return; } } --- -2.17.1 - diff --git a/0118-Add-grub_util_readlink.patch b/0118-Add-grub_util_readlink.patch index b37bf47d..89fd4261 100644 --- a/0118-Add-grub_util_readlink.patch +++ b/0118-Add-grub_util_readlink.patch @@ -1,7 +1,7 @@ From 76baa996f73eea47f7bdc41461efeee204626e2d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 3 Sep 2014 10:01:03 -0400 -Subject: [PATCH 118/251] Add grub_util_readlink() +Subject: [PATCH] Add grub_util_readlink() Add grub_util_readlink(). This requires pulling in stat and readlink from gnulib, which pulls in stat and related headers, but after that the @@ -3729,6 +3729,3 @@ index 00000000000..9852778f9a5 + REPLACE_GMTIME=0; AC_SUBST([REPLACE_GMTIME]) + REPLACE_LOCALTIME=0; AC_SUBST([REPLACE_LOCALTIME]) +]) --- -2.17.1 - diff --git a/0119-Make-editenv-chase-symlinks-including-those-across-d.patch b/0119-Make-editenv-chase-symlinks-including-those-across-d.patch index ebb3922c..52042516 100644 --- a/0119-Make-editenv-chase-symlinks-including-those-across-d.patch +++ b/0119-Make-editenv-chase-symlinks-including-those-across-d.patch @@ -1,8 +1,7 @@ From fd1a89c8bef603ec33937f122ae25013a724601a Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 3 Sep 2014 10:38:00 -0400 -Subject: [PATCH 119/251] Make editenv chase symlinks including those across - devices. +Subject: [PATCH] Make editenv chase symlinks including those across devices. This lets us make /boot/grub2/grubenv a symlink to /boot/efi/EFI/fedora/grubenv even though they're different mount points, @@ -101,6 +100,3 @@ index c6f8d2298c3..d8d1dad6ab9 100644 free (namenew); + free (rename_target); } --- -2.17.1 - diff --git a/0120-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch b/0120-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch index b1280988..27d0b0d8 100644 --- a/0120-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch +++ b/0120-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch @@ -1,8 +1,7 @@ From c8d93b9e27e9cbf51e91f6cc99abbcb7b68189ce Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Sep 2014 14:23:23 -0400 -Subject: [PATCH 120/251] Generate OS and CLASS in 10_linux from - /etc/os-release +Subject: [PATCH] Generate OS and CLASS in 10_linux from /etc/os-release This makes us use pretty names in the titles we generate in grub2-mkconfig when GRUB_DISTRIBUTOR isn't set. @@ -28,6 +27,3 @@ index a9692a0c2a2..c6627268cca 100644 else OS="${GRUB_DISTRIBUTOR}" CLASS="--class $(echo ${GRUB_DISTRIBUTOR} | tr 'A-Z' 'a-z' | cut -d' ' -f1|LC_ALL=C sed 's,[^[:alnum:]_],_,g') ${CLASS}" --- -2.17.1 - diff --git a/0121-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch b/0121-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch index 279830b2..162fc0c4 100644 --- a/0121-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch +++ b/0121-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch @@ -1,8 +1,7 @@ From 974241c42b03f3ccb6a5d0eb453283e370da9848 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Sep 2014 15:52:08 -0400 -Subject: [PATCH 121/251] Minimize the sort ordering for .debug and -rescue- - kernels. +Subject: [PATCH] Minimize the sort ordering for .debug and -rescue- kernels. Resolves: rhbz#1065360 Signed-off-by: Peter Jones @@ -29,6 +28,3 @@ index cf35e417470..10fabee5e14 100644 esac version_test_numeric "$version_test_gt_a" "$version_test_gt_cmp" "$version_test_gt_b" return "$?" --- -2.17.1 - diff --git a/0122-Load-arm-with-SB-enabled.patch b/0122-Load-arm-with-SB-enabled.patch index b089efe0..0c94cbcf 100644 --- a/0122-Load-arm-with-SB-enabled.patch +++ b/0122-Load-arm-with-SB-enabled.patch @@ -1,7 +1,7 @@ From edfc2b0952b1eacf95188e53167cc038e5ea0129 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 18 Sep 2014 11:26:14 -0400 -Subject: [PATCH 122/251] Load arm with SB enabled. +Subject: [PATCH] Load arm with SB enabled. Make sure we actually try to validate secure boot on this platform (even though we're not shipping it enabled by default.) @@ -424,6 +424,3 @@ index 00000000000..d9ede36773b + void *kernel_param); + +#endif /* ! GRUB_EFI_LINUX_HEADER */ --- -2.17.1 - diff --git a/0123-Try-prefix-if-fw_path-doesn-t-work.patch b/0123-Try-prefix-if-fw_path-doesn-t-work.patch index 43e24f75..1a00158d 100644 --- a/0123-Try-prefix-if-fw_path-doesn-t-work.patch +++ b/0123-Try-prefix-if-fw_path-doesn-t-work.patch @@ -1,7 +1,7 @@ From 3846b040f1050f246e1e975ee88f22c687ae04bf Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 3 Oct 2014 11:08:03 -0400 -Subject: [PATCH 123/251] Try $prefix if $fw_path doesn't work. +Subject: [PATCH] Try $prefix if $fw_path doesn't work. Related: rhbz#1148652 @@ -206,6 +206,3 @@ index 7d9c4f09b9b..b69f9e738fa 100644 return 0; } --- -2.17.1 - diff --git a/0124-Update-info-with-grub.cfg-netboot-selection-order-11.patch b/0124-Update-info-with-grub.cfg-netboot-selection-order-11.patch index 886960c5..2a76dcc8 100644 --- a/0124-Update-info-with-grub.cfg-netboot-selection-order-11.patch +++ b/0124-Update-info-with-grub.cfg-netboot-selection-order-11.patch @@ -1,8 +1,7 @@ From d4b4184078610a3639fa1e0e463679c424496c3b Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Mon, 16 Mar 2015 16:34:51 -0400 -Subject: [PATCH 124/251] Update info with grub.cfg netboot selection order - (#1148650) +Subject: [PATCH] Update info with grub.cfg netboot selection order (#1148650) Added documentation to the grub info page that specifies the order netboot clients will use to select a grub configuration file. @@ -65,6 +64,3 @@ index 6fdd2a041f7..15a90b26e4d 100644 After GRUB has started, files on the TFTP server will be accessible via the @samp{(tftp)} device. --- -2.17.1 - diff --git a/0125-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch b/0125-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch index 32764170..327b9b73 100644 --- a/0125-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch +++ b/0125-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch @@ -1,8 +1,7 @@ From ce125cafc1e94bf70f2a3dbb545960bd8dd23a2f Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Mon, 16 Mar 2015 14:14:19 -0400 -Subject: [PATCH 125/251] Use Distribution Package Sort for grub2-mkconfig - (#1124074) +Subject: [PATCH] Use Distribution Package Sort for grub2-mkconfig (#1124074) Users reported that newly installed kernels on their systems installed with grub-mkconfig would not appear on the grub boot list in order @@ -446,6 +445,3 @@ index 00000000000..8ce21488448 + +.SH SEE ALSO +.BR "info grub" --- -2.17.1 - diff --git a/0126-Handle-rssd-storage-devices.patch b/0126-Handle-rssd-storage-devices.patch index 21bbb1ef..ed4eaad1 100644 --- a/0126-Handle-rssd-storage-devices.patch +++ b/0126-Handle-rssd-storage-devices.patch @@ -1,7 +1,7 @@ From 1956a2192ac0a8421ee83bf77fdf223f2be0bdfb Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 30 Jun 2015 15:50:41 -0400 -Subject: [PATCH 126/251] Handle rssd storage devices. +Subject: [PATCH] Handle rssd storage devices. Resolves: rhbz#1087962 @@ -34,6 +34,3 @@ index 90d92d3ad5c..6d9f4e5faa2 100644 /* If this is a loop device */ if ((strncmp ("loop", p, 4) == 0) && p[4] >= '0' && p[4] <= '9') { --- -2.17.1 - diff --git a/0127-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch b/0127-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch index 506ce9aa..57a49f68 100644 --- a/0127-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch +++ b/0127-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch @@ -1,8 +1,8 @@ From 5f89c77c7cff17c931f1ea52af0c39df8ab28ac9 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 27 Oct 2014 09:22:55 -0400 -Subject: [PATCH 127/251] Try to emit linux16/initrd16 and linuxefi/initrdefi - in 30-os_prober. +Subject: [PATCH] Try to emit linux16/initrd16 and linuxefi/initrdefi in + 30-os_prober. Resolves: rhbz#1108296 @@ -72,6 +72,3 @@ index 9b8f5968e2d..dc98eace934 100644 EOF fi cat << EOF --- -2.17.1 - diff --git a/0128-Make-grub2-mkconfig-construct-titles-that-look-like-.patch b/0128-Make-grub2-mkconfig-construct-titles-that-look-like-.patch index cbb5d1b3..7c340e05 100644 --- a/0128-Make-grub2-mkconfig-construct-titles-that-look-like-.patch +++ b/0128-Make-grub2-mkconfig-construct-titles-that-look-like-.patch @@ -1,8 +1,8 @@ From c7ae420d095ccec20481c25b14773ab2fce658b5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 28 Apr 2015 11:15:03 -0400 -Subject: [PATCH 128/251] Make grub2-mkconfig construct titles that look like - the ones we want elsewhere. +Subject: [PATCH] Make grub2-mkconfig construct titles that look like the ones + we want elsewhere. Resolves: rhbz#1215839 @@ -49,6 +49,3 @@ index c6627268cca..1215241859b 100644 fi echo "menuentry '$(echo "$title" | grub_quote)' ${CLASS} \$menuentry_id_option 'gnulinux-$version-$type-$boot_device_id' {" | sed "s/^/$submenu_indentation/" else --- -2.17.1 - diff --git a/0129-Add-friendly-grub2-password-config-tool-985962.patch b/0129-Add-friendly-grub2-password-config-tool-985962.patch index 25a9bf1b..fa1b9bbb 100644 --- a/0129-Add-friendly-grub2-password-config-tool-985962.patch +++ b/0129-Add-friendly-grub2-password-config-tool-985962.patch @@ -1,7 +1,7 @@ From 68f21f5ebebc23a6d8512631f2a1d474afcccd43 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Thu, 25 Jun 2015 11:13:11 -0400 -Subject: [PATCH 129/251] Add friendly grub2 password config tool (#985962) +Subject: [PATCH] Add friendly grub2 password config tool (#985962) Provided a tool for users to reset the grub2 root user password without having to alter the grub.cfg. The hashed password now @@ -270,6 +270,3 @@ index 00000000000..db2f44bfb78 + fi +fi +EOF --- -2.17.1 - diff --git a/0130-Make-grub2-mkconfig-construct-titles-that-look-like-.patch b/0130-Make-grub2-mkconfig-construct-titles-that-look-like-.patch index 6752d37e..cef35f25 100644 --- a/0130-Make-grub2-mkconfig-construct-titles-that-look-like-.patch +++ b/0130-Make-grub2-mkconfig-construct-titles-that-look-like-.patch @@ -1,8 +1,8 @@ From 7a7644507e4d953ea8f8d1d7133622a72a2168f5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 28 Apr 2015 11:15:03 -0400 -Subject: [PATCH 130/251] Make grub2-mkconfig construct titles that look like - the ones we want elsewhere. +Subject: [PATCH] Make grub2-mkconfig construct titles that look like the ones + we want elsewhere. Resolves: rhbz#1215839 @@ -62,6 +62,3 @@ index 1215241859b..584ad1f4639 100644 if [ x"$title" = x"$GRUB_ACTUAL_DEFAULT" ] || [ x"Previous Linux versions>$title" = x"$GRUB_ACTUAL_DEFAULT" ]; then replacement_title="$(echo "Advanced options for ${OS}" | sed 's,>,>>,g')>$(echo "$title" | sed 's,>,>>,g')" quoted="$(echo "$GRUB_ACTUAL_DEFAULT" | grub_quote)" --- -2.17.1 - diff --git a/0131-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch b/0131-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch index f4a73479..a508fe59 100644 --- a/0131-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch +++ b/0131-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch @@ -1,8 +1,7 @@ From 6f892038567f1706fdde819f5f226ec4cacbea47 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 3 Aug 2015 11:46:42 -0400 -Subject: [PATCH 131/251] Try to make sure configure.ac and grub-rpm-sort play - nice. +Subject: [PATCH] Try to make sure configure.ac and grub-rpm-sort play nice. Apparently the test for whether to use grub-rpm-sort and also the renaming of it to grub2-rpm-sort on the runtime side weren't right. @@ -56,6 +55,3 @@ index 954844d2d95..9c410eae493 100644 fi version_test_numeric () --- -2.17.1 - diff --git a/0132-tcp-add-window-scaling-support.patch b/0132-tcp-add-window-scaling-support.patch index c7cbdae9..f451a67f 100644 --- a/0132-tcp-add-window-scaling-support.patch +++ b/0132-tcp-add-window-scaling-support.patch @@ -1,7 +1,7 @@ From 71e31c279c07f9f51f2a482b70b40b7deed69a69 Mon Sep 17 00:00:00 2001 From: Josef Bacik Date: Wed, 12 Aug 2015 08:57:55 -0700 -Subject: [PATCH 132/251] tcp: add window scaling support +Subject: [PATCH] tcp: add window scaling support Sometimes we have to provision boxes across regions, such as California to Sweden. The http server has a 10 minute timeout, so if we can't get our 250mb @@ -85,6 +85,3 @@ index e8ad34b84d4..7d4b822626d 100644 tcp_socket_register (socket); --- -2.17.1 - diff --git a/0133-efinet-retransmit-if-our-device-is-busy.patch b/0133-efinet-retransmit-if-our-device-is-busy.patch index 0297a7d6..da3b336a 100644 --- a/0133-efinet-retransmit-if-our-device-is-busy.patch +++ b/0133-efinet-retransmit-if-our-device-is-busy.patch @@ -1,7 +1,7 @@ From d09f32622f6fc247dd88f731c34be10395785d8d Mon Sep 17 00:00:00 2001 From: Josef Bacik Date: Mon, 31 Aug 2015 13:34:35 -0400 -Subject: [PATCH 133/251] efinet: retransmit if our device is busy +Subject: [PATCH] efinet: retransmit if our device is busy When I fixed the txbuf handling I ripped out the retransmission code since it was flooding our network when we had the buggy behavior. Turns out this was too @@ -43,6 +43,3 @@ index 5388f952ba9..3f112438a93 100644 if (limit_time < grub_get_time_ms ()) return grub_error (GRUB_ERR_TIMEOUT, N_("couldn't send network packet")); --- -2.17.1 - diff --git a/0134-Be-more-aggro-about-actually-using-the-configured-ne.patch b/0134-Be-more-aggro-about-actually-using-the-configured-ne.patch index c9d57f6b..66f68b70 100644 --- a/0134-Be-more-aggro-about-actually-using-the-configured-ne.patch +++ b/0134-Be-more-aggro-about-actually-using-the-configured-ne.patch @@ -1,8 +1,8 @@ From 8ece44c2c8f88f531ac9a679f65a263e7b6d2dba Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 11 Sep 2015 17:30:49 -0400 -Subject: [PATCH 134/251] Be more aggro about actually using the *configured* - network device. +Subject: [PATCH] Be more aggro about actually using the *configured* network + device. Right now we use any SNP device with the same mac+IP block, but when it's discovered there will be more than one of them. We need to pick @@ -219,6 +219,3 @@ index c7c9f0e1db1..97b9aa7a4d7 100644 #define GRUB_EFI_DEVICE_PATH_TYPE(dp) ((dp)->type & 0x7f) #define GRUB_EFI_DEVICE_PATH_SUBTYPE(dp) ((dp)->subtype) #define GRUB_EFI_DEVICE_PATH_LENGTH(dp) ((dp)->length) --- -2.17.1 - diff --git a/0135-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch b/0135-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch index 79c7d32e..6984412d 100644 --- a/0135-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch +++ b/0135-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch @@ -1,8 +1,7 @@ From 82b9fdcbbc339c36842c625203fc2b1f22a86c9e Mon Sep 17 00:00:00 2001 From: RHEL Ninjas Date: Fri, 25 Sep 2015 16:24:23 +0900 -Subject: [PATCH 135/251] efinet: add filter for the first exclusive reopen of - SNP +Subject: [PATCH] efinet: add filter for the first exclusive reopen of SNP --- grub-core/net/drivers/efi/efinet.c | 39 ++++++++++++++++++++++++++++++++++++++ @@ -58,6 +57,3 @@ index a3ce4c67cce..b870d3f1938 100644 return; } } --- -2.17.1 - diff --git a/0136-Fix-security-issue-when-reading-username-and-passwor.patch b/0136-Fix-security-issue-when-reading-username-and-passwor.patch index a17d7ba1..f66528e5 100644 --- a/0136-Fix-security-issue-when-reading-username-and-passwor.patch +++ b/0136-Fix-security-issue-when-reading-username-and-passwor.patch @@ -1,7 +1,7 @@ From 9961e63642244617b697d93bbc49379e23b6839d Mon Sep 17 00:00:00 2001 From: Hector Marco-Gisbert Date: Fri, 13 Nov 2015 16:21:09 +0100 -Subject: [PATCH 136/251] Fix security issue when reading username and password +Subject: [PATCH] Fix security issue when reading username and password This patch fixes two integer underflows at: * grub-core/lib/crypto.c @@ -42,6 +42,3 @@ index 6be678c0de1..c35ce972473 100644 { if (cur_len) { --- -2.17.1 - diff --git a/0137-Warn-if-grub-password-will-not-be-read-1290803.patch b/0137-Warn-if-grub-password-will-not-be-read-1290803.patch index 2d8217b0..6c0a3f12 100644 --- a/0137-Warn-if-grub-password-will-not-be-read-1290803.patch +++ b/0137-Warn-if-grub-password-will-not-be-read-1290803.patch @@ -1,7 +1,7 @@ From 056a956aea898f9d3ee34ecad9660addc3f3108c Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Mon, 22 Feb 2016 15:30:05 -0500 -Subject: [PATCH 137/251] Warn if grub password will not be read (#1290803) +Subject: [PATCH] Warn if grub password will not be read (#1290803) It is possible for a system to have never run grub-mkconfig and add the section that reads the user.cfg file which contains a user set GRUB @@ -26,6 +26,3 @@ index dd76f00fc0e..fb9d3a3b6f9 100644 + echo "WARNING: The current configuration lacks password support!" + echo "Update your configuration with @grub_mkconfig@ to support this feature." +fi --- -2.17.1 - diff --git a/0138-Clean-up-grub-setpassword-documentation-1290799.patch b/0138-Clean-up-grub-setpassword-documentation-1290799.patch index e0b49d49..7d2b8504 100644 --- a/0138-Clean-up-grub-setpassword-documentation-1290799.patch +++ b/0138-Clean-up-grub-setpassword-documentation-1290799.patch @@ -1,7 +1,7 @@ From 92af2b24adb7371d8234c0b32ae716adf0b80d42 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Tue, 26 Jan 2016 10:28:35 -0500 -Subject: [PATCH 138/251] Clean up grub-setpassword documentation (#1290799) +Subject: [PATCH] Clean up grub-setpassword documentation (#1290799) The output for --help had some errors. Corrected those and polished the text to be a little easier to follow. Carried verbage over to man page @@ -53,6 +53,3 @@ index fb9d3a3b6f9..c8c0fa4199d 100644 Report bugs at https://bugzilla.redhat.com. EOF --- -2.17.1 - diff --git a/0139-Fix-locale-issue-in-grub-setpassword-1294243.patch b/0139-Fix-locale-issue-in-grub-setpassword-1294243.patch index 1f1c37fc..1630d5c7 100644 --- a/0139-Fix-locale-issue-in-grub-setpassword-1294243.patch +++ b/0139-Fix-locale-issue-in-grub-setpassword-1294243.patch @@ -1,7 +1,7 @@ From 373adc50cf9f09015e40ffd1bf79ab9f291f4fc2 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Fri, 29 Jan 2016 16:56:11 -0500 -Subject: [PATCH 139/251] Fix locale issue in grub-setpassword (#1294243) +Subject: [PATCH] Fix locale issue in grub-setpassword (#1294243) A shell substitution was expecting non-translated output to grab the hashed password and put it in the user.cfg file. Modified code to force @@ -25,6 +25,3 @@ index c8c0fa4199d..d7924af5192 100644 grep -v '[eE]nter password:' | \ sed -e "s/PBKDF2 hash of your password is //" } --- -2.17.1 - diff --git a/0140-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch b/0140-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch index 7df6101f..46b5cc24 100644 --- a/0140-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch +++ b/0140-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch @@ -1,8 +1,8 @@ From eab0520310030376f6295e0338e874bce10b0d5f Mon Sep 17 00:00:00 2001 From: Robert Elliott Date: Fri, 22 Jan 2016 13:32:30 +0100 -Subject: [PATCH 140/251] efiemu: Handle persistent RAM and unknown possible - future additions. +Subject: [PATCH] efiemu: Handle persistent RAM and unknown possible future + additions. (cherry picked from commit ae3b83a4d4df75a01198a2fed7542391e7c449e0) @@ -26,6 +26,3 @@ index 52a032f7b2e..92e7df7e501 100644 return grub_efiemu_add_to_mmap (addr, size, GRUB_EFI_PERSISTENT_MEMORY); default: --- -2.17.1 - diff --git a/0141-efiemu-Fix-compilation-failure.patch b/0141-efiemu-Fix-compilation-failure.patch index a5ee8af2..1e084410 100644 --- a/0141-efiemu-Fix-compilation-failure.patch +++ b/0141-efiemu-Fix-compilation-failure.patch @@ -1,7 +1,7 @@ From 68bdf29eb6e376a3b4a817bbe7481efd12b8f9de Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Fri, 22 Jan 2016 14:10:30 +0100 -Subject: [PATCH 141/251] efiemu: Fix compilation failure +Subject: [PATCH] efiemu: Fix compilation failure (cherry picked from commit b6a03dfd327489d53ee07c6d7d593b99c7b7cb62) @@ -25,6 +25,3 @@ index 92e7df7e501..52a032f7b2e 100644 return grub_efiemu_add_to_mmap (addr, size, GRUB_EFI_PERSISTENT_MEMORY); default: --- -2.17.1 - diff --git a/0142-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch b/0142-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch index d874fead..600327e2 100644 --- a/0142-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch +++ b/0142-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch @@ -1,8 +1,7 @@ From df19c5ff9c9e716df0383e39992466304053c99d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 7 Apr 2016 10:58:06 -0400 -Subject: [PATCH 142/251] Revert "reopen SNP protocol for exclusive use by - grub" +Subject: [PATCH] Revert "reopen SNP protocol for exclusive use by grub" I *think* this should have been replaced by upstream's 49426e9fd2e562c73a4f1206f32eff9e424a1a73, so I'm reverting for now. @@ -64,6 +63,3 @@ index b870d3f1938..a3ce4c67cce 100644 return; } } --- -2.17.1 - diff --git a/0143-Add-a-url-parser.patch b/0143-Add-a-url-parser.patch index d34560b2..56cae880 100644 --- a/0143-Add-a-url-parser.patch +++ b/0143-Add-a-url-parser.patch @@ -1,7 +1,7 @@ From 2f84b2e097ad9f6f7f06013f749251743eb32c2e Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jun 2016 16:18:44 -0400 -Subject: [PATCH 143/251] Add a url parser. +Subject: [PATCH] Add a url parser. This patch adds a url parser that can parse http, https, tftp, and tftps urls, and is easily extensible to handle more types. @@ -1019,6 +1019,3 @@ index 00000000000..a215fa27d0a + char **host, int *port, char **file); + +#endif /* GRUB_URL_HEADER */ --- -2.17.1 - diff --git a/0144-efinet-and-bootp-add-support-for-dhcpv6.patch b/0144-efinet-and-bootp-add-support-for-dhcpv6.patch index af81dffb..bc4eda5e 100644 --- a/0144-efinet-and-bootp-add-support-for-dhcpv6.patch +++ b/0144-efinet-and-bootp-add-support-for-dhcpv6.patch @@ -1,7 +1,7 @@ From 48768b0295ad4d908cefd8e8fbee96a4dc2765f5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 8 Jun 2016 21:03:37 -0400 -Subject: [PATCH 144/251] efinet and bootp: add support for dhcpv6 +Subject: [PATCH] efinet and bootp: add support for dhcpv6 Signed-off-by: Peter Jones --- @@ -662,6 +662,3 @@ index 50d62ab0c8c..f8f3ec13acc 100644 grub_err_t grub_net_add_ipv4_local (struct grub_net_network_level_interface *inf, int mask); --- -2.17.1 - diff --git a/0145-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch b/0145-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch index 935e3126..e0f479bd 100644 --- a/0145-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch +++ b/0145-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch @@ -1,7 +1,7 @@ From 764506b89942103c3a511d7933edef351fb594b8 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 23 Jun 2016 11:01:39 -0400 -Subject: [PATCH 145/251] Add grub-get-kernel-settings and use it in 10_linux +Subject: [PATCH] Add grub-get-kernel-settings and use it in 10_linux This patch adds grub-get-kernel-settings, which reads the system kernel installation configuration from /etc/sysconfig/kernel, and outputs @@ -298,6 +298,3 @@ index 584ad1f4639..c9bf223f273 100644 "single ${GRUB_CMDLINE_LINUX}" fi --- -2.17.1 - diff --git a/0146-Normalize-slashes-in-tftp-paths.patch b/0146-Normalize-slashes-in-tftp-paths.patch index c983a345..1e3261b4 100644 --- a/0146-Normalize-slashes-in-tftp-paths.patch +++ b/0146-Normalize-slashes-in-tftp-paths.patch @@ -1,7 +1,7 @@ From 406402dfaecc62ede346793c9c7a0568dc71c131 Mon Sep 17 00:00:00 2001 From: Lenny Szubowicz Date: Mon, 29 Aug 2016 11:04:48 -0400 -Subject: [PATCH 146/251] Normalize slashes in tftp paths. +Subject: [PATCH] Normalize slashes in tftp paths. Some tftp servers do not handle multiple consecutive slashes correctly; this patch avoids sending tftp requests with non-normalized paths. @@ -53,6 +53,3 @@ index 1157524fc50..5ca0a96a6f6 100644 rrqlen += grub_strlen (filename) + 1; rrq += grub_strlen (filename) + 1; --- -2.17.1 - diff --git a/0147-Fix-malformed-tftp-packets.patch b/0147-Fix-malformed-tftp-packets.patch index 6d7b31cd..e676a352 100644 --- a/0147-Fix-malformed-tftp-packets.patch +++ b/0147-Fix-malformed-tftp-packets.patch @@ -1,7 +1,7 @@ From 7d05a8298e6a54bfae0038841462443f21da3535 Mon Sep 17 00:00:00 2001 From: Mark Salter Date: Tue, 7 Mar 2017 18:26:17 -0500 -Subject: [PATCH 147/251] Fix malformed tftp packets +Subject: [PATCH] Fix malformed tftp packets 0088-Normalize-slashes-in-tftp-paths.patch collapses multiple contiguous slashes in a filename into one slash in the tftp packet filename field. @@ -30,6 +30,3 @@ index 5ca0a96a6f6..dcd82494309 100644 grub_strcpy (rrq, "octet"); rrqlen += grub_strlen ("octet") + 1; --- -2.17.1 - diff --git a/0148-Fix-race-in-EFI-validation.patch b/0148-Fix-race-in-EFI-validation.patch index ba965ff5..a7f5bdce 100644 --- a/0148-Fix-race-in-EFI-validation.patch +++ b/0148-Fix-race-in-EFI-validation.patch @@ -1,7 +1,7 @@ From bf59d76ca82eb4eaa20a747f5890d09632ba93d0 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 14 Jul 2015 16:58:51 -0700 -Subject: [PATCH 148/251] Fix race in EFI validation +Subject: [PATCH] Fix race in EFI validation --- grub-core/loader/i386/efi/linux.c | 44 ++++++++++----------------------------- @@ -92,6 +92,3 @@ index e5b778577f9..7ccf32d9d45 100644 if (grub_errno != GRUB_ERR_NONE) { grub_dl_unref (my_mod); --- -2.17.1 - diff --git a/0149-bz1374141-fix-incorrect-mask-for-ppc64.patch b/0149-bz1374141-fix-incorrect-mask-for-ppc64.patch index ed21eff1..742d9472 100644 --- a/0149-bz1374141-fix-incorrect-mask-for-ppc64.patch +++ b/0149-bz1374141-fix-incorrect-mask-for-ppc64.patch @@ -1,7 +1,7 @@ From 84a5f535949f590a8976c64c3d1fde08fe0f7464 Mon Sep 17 00:00:00 2001 From: Masahiro Matsuya Date: Sat, 29 Oct 2016 08:35:26 +0900 -Subject: [PATCH 149/251] bz1374141 fix incorrect mask for ppc64 +Subject: [PATCH] bz1374141 fix incorrect mask for ppc64 The netmask configured in firmware is not respected on ppc64 (big endian). When 255.255.252.0 is set as netmask in firmware, the following is the value of bootpath string in grub_ieee1275_parse_bootpath(). @@ -43,6 +43,3 @@ index 002446be1c3..3df75357a70 100644 } if (gateway_addr.ipv4 != 0) --- -2.17.1 - diff --git a/0150-Use-device-part-of-chainloader-target-if-present.patch b/0150-Use-device-part-of-chainloader-target-if-present.patch index ce65e59c..17cd3a46 100644 --- a/0150-Use-device-part-of-chainloader-target-if-present.patch +++ b/0150-Use-device-part-of-chainloader-target-if-present.patch @@ -1,7 +1,7 @@ From d426e20f8b41ebf114075dc4ffbcaf438ceb4b95 Mon Sep 17 00:00:00 2001 From: Raymund Will Date: Fri, 10 Apr 2015 01:45:02 -0400 -Subject: [PATCH 150/251] Use device part of chainloader target, if present. +Subject: [PATCH] Use device part of chainloader target, if present. Otherwise chainloading is restricted to '$root', which might not even be readable by EFI! @@ -32,6 +32,3 @@ index adc85636633..14ce6ddd7ad 100644 if (! dev) goto fail; --- -2.17.1 - diff --git a/0151-Add-secureboot-support-on-efi-chainloader.patch b/0151-Add-secureboot-support-on-efi-chainloader.patch index 93a84b8c..99d70201 100644 --- a/0151-Add-secureboot-support-on-efi-chainloader.patch +++ b/0151-Add-secureboot-support-on-efi-chainloader.patch @@ -1,7 +1,7 @@ From bbf98517303e438cea398bb74306b6553c880ac3 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 6 Oct 2015 13:04:37 -0400 -Subject: [PATCH 151/251] Add secureboot support on efi chainloader +Subject: [PATCH] Add secureboot support on efi chainloader Expand the chainloader to be able to verify the image by means of shim lock protocol. The PE/COFF image is loaded and relocated by the @@ -795,6 +795,3 @@ index 7d44732d2c3..6e24dae2cb6 100644 struct grub_pe32_fixup_block { grub_uint32_t page_rva; --- -2.17.1 - diff --git a/0152-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch b/0152-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch index 80981a0e..4cddb8bf 100644 --- a/0152-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch +++ b/0152-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch @@ -1,8 +1,8 @@ From 25ea5be888dcc92cd0b3cb7d34b381f5005f1e30 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 6 Oct 2015 16:09:25 -0400 -Subject: [PATCH 152/251] Make any of the loaders that link in efi mode honor - secure boot. +Subject: [PATCH] Make any of the loaders that link in efi mode honor secure + boot. And in this case "honor" means "even if somebody does link this in, they won't register commands if SB is enabled." @@ -489,6 +489,3 @@ index 10451384720..f7b4d29b0b3 100644 KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/env.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/env_private.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/err.h --- -2.17.1 - diff --git a/0153-Make-grub_fatal-also-backtrace.patch b/0153-Make-grub_fatal-also-backtrace.patch index ad6139d4..cc29cab6 100644 --- a/0153-Make-grub_fatal-also-backtrace.patch +++ b/0153-Make-grub_fatal-also-backtrace.patch @@ -1,7 +1,7 @@ From eb1a27144476324a22561383a0a2e61aa327d2f5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 27 Jan 2016 09:22:42 -0500 -Subject: [PATCH 153/251] Make grub_fatal() also backtrace. +Subject: [PATCH] Make grub_fatal() also backtrace. --- grub-core/Makefile.core.def | 3 ++ @@ -170,6 +170,3 @@ index c3e03c7275c..c67273db3ae 100644 #include #include #include --- -2.17.1 - diff --git a/0154-Rework-linux-command.patch b/0154-Rework-linux-command.patch index 6395a9bd..35f5e071 100644 --- a/0154-Rework-linux-command.patch +++ b/0154-Rework-linux-command.patch @@ -1,7 +1,7 @@ From 12312bfe1727a2992042436cb0f8c8ba1c69ee2f Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 16:12:39 -0700 -Subject: [PATCH 154/251] Rework linux command +Subject: [PATCH] Rework linux command We want a single buffer that contains the entire kernel image in order to perform a TPM measurement. Allocate one and copy the entire kernel into it @@ -102,6 +102,3 @@ index b2438547dd0..e4b8342f5d0 100644 if (file) grub_file_close (file); --- -2.17.1 - diff --git a/0155-Rework-linux16-command.patch b/0155-Rework-linux16-command.patch index 935aa145..74d3312e 100644 --- a/0155-Rework-linux16-command.patch +++ b/0155-Rework-linux16-command.patch @@ -1,7 +1,7 @@ From 24250bbb84f8817462426c46b255d875de627bf1 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 16:20:58 -0700 -Subject: [PATCH 155/251] Rework linux16 command +Subject: [PATCH] Rework linux16 command We want a single buffer that contains the entire kernel image in order to perform a TPM measurement. Allocate one and copy the entire kernel int it @@ -96,6 +96,3 @@ index 91283157e30..b864e540333 100644 if (file) grub_file_close (file); --- -2.17.1 - diff --git a/0156-Make-grub-editenv-build-again.patch b/0156-Make-grub-editenv-build-again.patch index f7df7781..cdb8322f 100644 --- a/0156-Make-grub-editenv-build-again.patch +++ b/0156-Make-grub-editenv-build-again.patch @@ -1,7 +1,7 @@ From ebe69b2682b5b3029d8ea503f12134ee81c4b2ce Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 4 Mar 2016 16:29:13 -0500 -Subject: [PATCH 156/251] Make grub-editenv build again. +Subject: [PATCH] Make grub-editenv build again. 36212460d3565b18439a3a8130b28e6c97702c6a split how some of the mkimage utility functions are defined, and they wind up being linked into @@ -25,6 +25,3 @@ index ed27351eb47..38cdf4ccc09 100644 common = grub-core/osdep/config.c; common = util/config.c; common = util/resolve.c; --- -2.17.1 - diff --git a/0157-Fix-up-some-man-pages-rpmdiff-noticed.patch b/0157-Fix-up-some-man-pages-rpmdiff-noticed.patch index b05e920c..5297f3ea 100644 --- a/0157-Fix-up-some-man-pages-rpmdiff-noticed.patch +++ b/0157-Fix-up-some-man-pages-rpmdiff-noticed.patch @@ -1,7 +1,7 @@ From c71e6152ea8e4e525a853441bb5f08808bae3afd Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 23 Sep 2014 09:58:49 -0400 -Subject: [PATCH 157/251] Fix up some man pages rpmdiff noticed. +Subject: [PATCH] Fix up some man pages rpmdiff noticed. --- configure.ac | 2 ++ @@ -148,6 +148,3 @@ index 00000000000..85309482718 + +.SH SEE ALSO +.BR "info grub" --- -2.17.1 - diff --git a/0158-Re-work-some-intricacies-of-PE-loading.patch b/0158-Re-work-some-intricacies-of-PE-loading.patch index 0ef86600..96d8b35b 100644 --- a/0158-Re-work-some-intricacies-of-PE-loading.patch +++ b/0158-Re-work-some-intricacies-of-PE-loading.patch @@ -1,7 +1,7 @@ From 145214ee7c411c7d600016f011dc11b213bce0b2 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 9 Jun 2016 12:22:29 -0400 -Subject: [PATCH 158/251] Re-work some intricacies of PE loading. +Subject: [PATCH] Re-work some intricacies of PE loading. The PE spec is not a well written document, and awesomely every place where there's an ambiguous way to read something, Windows' bootmgfw.efi @@ -348,6 +348,3 @@ index 6e24dae2cb6..c03cc599f63 100644 #define GRUB_PE32_SIGNATURE_SIZE 4 struct grub_pe32_header --- -2.17.1 - diff --git a/0159-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch b/0159-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch index 79f113a3..b88d484f 100644 --- a/0159-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch +++ b/0159-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch @@ -1,8 +1,7 @@ From ef24bc601e11b96eefe06f477b5da1199d761b3d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 10 Jun 2016 14:06:15 -0400 -Subject: [PATCH 159/251] Rework even more of efi chainload so non-sb cases - work right. +Subject: [PATCH] Rework even more of efi chainload so non-sb cases work right. This ensures that if shim protocol is not loaded, or is loaded but shim is disabled, we will fall back to a correct load method for the efi @@ -411,6 +410,3 @@ index d9ede36773b..0033d9305a9 100644 EXPORT_FUNC(grub_linuxefi_secure_validate) (void *data, grub_uint32_t size); grub_err_t EXPORT_FUNC(grub_efi_linux_boot) (void *kernel_address, grub_off_t offset, --- -2.17.1 - diff --git a/0160-linuxefi-fix-double-free-on-verification-failure.patch b/0160-linuxefi-fix-double-free-on-verification-failure.patch index b59c378c..f81ac00c 100644 --- a/0160-linuxefi-fix-double-free-on-verification-failure.patch +++ b/0160-linuxefi-fix-double-free-on-verification-failure.patch @@ -1,7 +1,7 @@ From 5ef3f00e6be3033092453a66f456b8dac8cd4f7c Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jun 2016 09:50:25 -0400 -Subject: [PATCH 160/251] linuxefi: fix double free on verification failure. +Subject: [PATCH] linuxefi: fix double free on verification failure. Signed-off-by: Peter Jones --- @@ -20,6 +20,3 @@ index 82f75b7f3ab..010bf982d80 100644 goto fail; } --- -2.17.1 - diff --git a/0161-fix-machine-type-test-in-30_os-prober.in.patch b/0161-fix-machine-type-test-in-30_os-prober.in.patch index 7ea867da..7bd4d4ec 100644 --- a/0161-fix-machine-type-test-in-30_os-prober.in.patch +++ b/0161-fix-machine-type-test-in-30_os-prober.in.patch @@ -1,7 +1,7 @@ From 4139fdfdb64fd248a0d5f200b27c583159dbb190 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 11 Jul 2016 13:36:45 -0400 -Subject: [PATCH 161/251] fix machine type test in 30_os-prober.in +Subject: [PATCH] fix machine type test in 30_os-prober.in Signed-off-by: Peter Jones --- @@ -20,6 +20,3 @@ index dc98eace934..e40274fc0f4 100644 case "$machine" in i?86|x86_64) sixteenbit="16" --- -2.17.1 - diff --git a/0162-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch b/0162-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch index aefed6ee..8d213aaf 100644 --- a/0162-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch +++ b/0162-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch @@ -1,8 +1,7 @@ From 671699a76fa6510a62c3a94acd698a31686cb8fa Mon Sep 17 00:00:00 2001 From: Laszlo Ersek Date: Mon, 21 Nov 2016 15:34:00 +0100 -Subject: [PATCH 162/251] efi/chainloader: fix wrong sanity check in - relocate_coff() +Subject: [PATCH] efi/chainloader: fix wrong sanity check in relocate_coff() In relocate_coff(), the relocation entries are parsed from the original image (not the section-wise copied image). The original image is @@ -34,6 +33,3 @@ index b977c7b5573..d5ab21d09c3 100644 { grub_error (GRUB_ERR_BAD_ARGUMENT, "Reloc entry %d overflows binary", n); --- -2.17.1 - diff --git a/0163-efi-chainloader-truncate-overlong-relocation-section.patch b/0163-efi-chainloader-truncate-overlong-relocation-section.patch index dda4ec8c..8daedc6d 100644 --- a/0163-efi-chainloader-truncate-overlong-relocation-section.patch +++ b/0163-efi-chainloader-truncate-overlong-relocation-section.patch @@ -1,7 +1,7 @@ From d081bd5f47235e3bfd256fd262a6f98fe8b0d0ff Mon Sep 17 00:00:00 2001 From: Laszlo Ersek Date: Wed, 23 Nov 2016 06:27:09 +0100 -Subject: [PATCH 163/251] efi/chainloader: truncate overlong relocation section +Subject: [PATCH] efi/chainloader: truncate overlong relocation section The UEFI Windows 7 boot loader ("EFI/Microsoft/Boot/bootmgfw.efi", SHA1 31b410e029bba87d2068c65a80b88882f9f8ea25) has inconsistent headers. @@ -108,6 +108,3 @@ index d5ab21d09c3..7826e794ad9 100644 { grub_dprintf ("chain", " section is not reloc section?\n"); grub_dprintf ("chain", " rds: 0x%08x, vs: %08x\n", --- -2.17.1 - diff --git a/0164-linuxefi-minor-cleanups.patch b/0164-linuxefi-minor-cleanups.patch index bbf1da5d..4f583dc3 100644 --- a/0164-linuxefi-minor-cleanups.patch +++ b/0164-linuxefi-minor-cleanups.patch @@ -1,7 +1,7 @@ From 8dc21ff37f62f3d10fb3d708ffd33b7d723a23cf Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Feb 2017 16:31:52 -0500 -Subject: [PATCH 164/251] linuxefi: minor cleanups +Subject: [PATCH] linuxefi: minor cleanups Signed-off-by: Peter Jones --- @@ -84,6 +84,3 @@ index 010bf982d80..8b5a817b9d1 100644 return grub_errno; } --- -2.17.1 - diff --git a/0165-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch b/0165-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch index 61ce9eaf..283ce124 100644 --- a/0165-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch +++ b/0165-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch @@ -1,7 +1,7 @@ From 10d6d333de0aa7e390a22ebc4b308f7ad937d5bc Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Feb 2017 16:18:54 -0500 -Subject: [PATCH 165/251] Handle multi-arch (64-on-32) boot in linuxefi loader. +Subject: [PATCH] Handle multi-arch (64-on-32) boot in linuxefi loader. Allow booting 64-bit kernels on 32-bit EFI on x86. @@ -271,6 +271,3 @@ index fc36bdaf367..110ecf806fb 100644 grub_uint32_t cmdline_size; grub_uint32_t hardware_subarch; grub_uint64_t hardware_subarch_data; --- -2.17.1 - diff --git a/0166-Fix-up-linux-params-usage.patch b/0166-Fix-up-linux-params-usage.patch index 92b42cc3..229445d7 100644 --- a/0166-Fix-up-linux-params-usage.patch +++ b/0166-Fix-up-linux-params-usage.patch @@ -1,7 +1,7 @@ From 93be95c27b0ddb63c2e3a287a3ed92c0a5de93e5 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 30 May 2017 14:16:07 -0400 -Subject: [PATCH 166/251] Fix up linux params usage... +Subject: [PATCH] Fix up linux params usage... Signed-off-by: Peter Jones --- @@ -38,6 +38,3 @@ index e4b8342f5d0..c9e89310bdd 100644 kernel_offset += len; linux_params.type_of_loader = GRUB_LINUX_BOOT_LOADER_TYPE; --- -2.17.1 - diff --git a/0167-Make-exit-take-a-return-code.patch b/0167-Make-exit-take-a-return-code.patch index 13e78c3a..51687cad 100644 --- a/0167-Make-exit-take-a-return-code.patch +++ b/0167-Make-exit-take-a-return-code.patch @@ -1,7 +1,7 @@ From 6b67d46c1764c86611939dc01267f9c70f413184 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 26 Feb 2014 21:49:12 -0500 -Subject: [PATCH 167/251] Make "exit" take a return code. +Subject: [PATCH] Make "exit" take a return code. This adds "exit" with a return code. With this patch, any "exit" command /may/ include a return code, and on platforms that support @@ -51,6 +51,3 @@ index 5ce89a40c68..04371ac49f2 100644 void grub_fatal (const char *fmt, ...) { --- -2.17.1 - diff --git a/0168-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch b/0168-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch index 59723238..e90a22eb 100644 --- a/0168-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch +++ b/0168-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch @@ -1,8 +1,8 @@ From e48a4c0b9e475b16366ff6c375de5186432eb1f7 Mon Sep 17 00:00:00 2001 From: Mark Salter Date: Mon, 17 Apr 2017 08:44:29 -0400 -Subject: [PATCH 168/251] arm64: make sure fdt has #address-cells and - #size-cells properties +Subject: [PATCH] arm64: make sure fdt has #address-cells and #size-cells + properties Recent upstream changes to kexec-tools relies on #address-cells and #size-cells properties in the FDT. If grub2 needs to create @@ -40,6 +40,3 @@ index ad39a301527..59ff9cc05b4 100644 if (node < 1) goto failure; --- -2.17.1 - diff --git a/0169-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch b/0169-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch index 82dd7878..6d5e4cfa 100644 --- a/0169-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch +++ b/0169-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch @@ -1,8 +1,7 @@ From 755fa5ccf0834abdb7e50a1cb06fad618f6c9af6 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 9 May 2016 14:15:17 -0400 -Subject: [PATCH 169/251] Add some grub_dprintf() in the secure boot verify - code. +Subject: [PATCH] Add some grub_dprintf() in the secure boot verify code. Signed-off-by: Peter Jones --- @@ -39,6 +38,3 @@ index 2a7024134da..7fe7201a388 100644 return -1; } --- -2.17.1 - diff --git a/0170-Make-our-info-pages-say-grub2-where-appropriate.patch b/0170-Make-our-info-pages-say-grub2-where-appropriate.patch index c6a573b2..a1dc75db 100644 --- a/0170-Make-our-info-pages-say-grub2-where-appropriate.patch +++ b/0170-Make-our-info-pages-say-grub2-where-appropriate.patch @@ -1,7 +1,7 @@ From 15c340acd845056ba259b9fffd6c7d083874cb82 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 6 May 2016 18:43:08 -0400 -Subject: [PATCH 170/251] Make our info pages say "grub2" where appropriate. +Subject: [PATCH] Make our info pages say "grub2" where appropriate. This needs to be hooked up to --program-transform=, but I haven't had time. @@ -1011,6 +1011,3 @@ index 15a90b26e4d..f28c4cd5247 100644 @table @option @item --help --- -2.17.1 - diff --git a/0171-print-more-debug-info-in-our-module-loader.patch b/0171-print-more-debug-info-in-our-module-loader.patch index 838433b3..16c10348 100644 --- a/0171-print-more-debug-info-in-our-module-loader.patch +++ b/0171-print-more-debug-info-in-our-module-loader.patch @@ -1,7 +1,7 @@ From 0d0a7ebbed42b97fca63cbcaf85a469b77c76fda Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 1 May 2017 11:19:40 -0400 -Subject: [PATCH 171/251] print more debug info in our module loader. +Subject: [PATCH] print more debug info in our module loader. Signed-off-by: Peter Jones --- @@ -39,6 +39,3 @@ index 684ca93f8f4..866fc20e162 100644 return (grub_addr_t) info; } --- -2.17.1 - diff --git a/0172-macos-just-build-chainloader-entries-don-t-try-any-x.patch b/0172-macos-just-build-chainloader-entries-don-t-try-any-x.patch index f3523240..f8a880e4 100644 --- a/0172-macos-just-build-chainloader-entries-don-t-try-any-x.patch +++ b/0172-macos-just-build-chainloader-entries-don-t-try-any-x.patch @@ -1,8 +1,7 @@ From 4cb6b65d74966dfbe6e8463ee1e88d99ca7de5b1 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 24 May 2017 12:42:32 -0400 -Subject: [PATCH 172/251] macos: just build chainloader entries, don't try any - xnu xnu. +Subject: [PATCH] macos: just build chainloader entries, don't try any xnu xnu. Since our bugs tell us that the xnu boot entries really just don't work most of the time, and they create piles of extra boot entries, because @@ -123,6 +122,3 @@ index e40274fc0f4..d979de1982a 100644 ;; hurd) onstr="$(gettext_printf "(on %s)" "${DEVICE}")" --- -2.17.1 - diff --git a/0173-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch b/0173-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch index 23a135dc..2087c219 100644 --- a/0173-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch +++ b/0173-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch @@ -1,7 +1,7 @@ From 396001716b7f8c7a6aee17f33fdb9e5d47424cbc Mon Sep 17 00:00:00 2001 From: Jeff Mahoney Date: Wed, 18 Dec 2013 09:57:04 +0000 -Subject: [PATCH 173/251] grub2/btrfs: Add ability to boot from subvolumes +Subject: [PATCH] grub2/btrfs: Add ability to boot from subvolumes This patch adds the ability to specify a different root on a btrfs filesystem too boot from other than the default one. @@ -701,6 +701,3 @@ index 9d93fb6c182..234ad976771 100644 GRUB_BTRFS_ITEM_TYPE_CHUNK = 0xe4 }; --- -2.17.1 - diff --git a/0174-export-btrfs_subvol-and-btrfs_subvolid.patch b/0174-export-btrfs_subvol-and-btrfs_subvolid.patch index 357771c0..65983122 100644 --- a/0174-export-btrfs_subvol-and-btrfs_subvolid.patch +++ b/0174-export-btrfs_subvol-and-btrfs_subvolid.patch @@ -1,7 +1,7 @@ From 35c1015fc1a4313be34757eebb195547336e0edf Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Wed, 18 Dec 2013 09:57:04 +0000 -Subject: [PATCH 174/251] export btrfs_subvol and btrfs_subvolid +Subject: [PATCH] export btrfs_subvol and btrfs_subvolid We should export btrfs_subvol and btrfs_subvolid to have both visible to subsidiary configuration files loaded using configfile. @@ -24,6 +24,3 @@ index 38facf3cb8b..3962961666e 100644 } GRUB_MOD_FINI (btrfs) --- -2.17.1 - diff --git a/0175-grub2-btrfs-03-follow_default.patch b/0175-grub2-btrfs-03-follow_default.patch index e3fa44de..a5f7e14e 100644 --- a/0175-grub2-btrfs-03-follow_default.patch +++ b/0175-grub2-btrfs-03-follow_default.patch @@ -1,7 +1,7 @@ From 476a0251e8ca2850da7c383baf7fdbd810bc789f Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 21 Aug 2014 03:39:11 +0000 -Subject: [PATCH 175/251] grub2-btrfs-03-follow_default +Subject: [PATCH] grub2-btrfs-03-follow_default --- grub-core/fs/btrfs.c | 107 ++++++++++++++++++++++++++++++++++++--------------- @@ -194,6 +194,3 @@ index 3962961666e..2c462584e91 100644 } GRUB_MOD_FINI (btrfs) --- -2.17.1 - diff --git a/0176-grub2-btrfs-04-grub2-install.patch b/0176-grub2-btrfs-04-grub2-install.patch index c2b3a9a7..9f5507ad 100644 --- a/0176-grub2-btrfs-04-grub2-install.patch +++ b/0176-grub2-btrfs-04-grub2-install.patch @@ -1,7 +1,7 @@ From e03dd83cc804d70af0716d0a429715afbcdc7eae Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 21 Aug 2014 03:39:11 +0000 -Subject: [PATCH 176/251] grub2-btrfs-04-grub2-install +Subject: [PATCH] grub2-btrfs-04-grub2-install --- grub-core/osdep/linux/getroot.c | 7 +++++++ @@ -172,6 +172,3 @@ index 875d5896ce1..c9a7e5f4ade 100644 }; void --- -2.17.1 - diff --git a/0177-grub2-btrfs-05-grub2-mkconfig.patch b/0177-grub2-btrfs-05-grub2-mkconfig.patch index b0d98e64..502f5b08 100644 --- a/0177-grub2-btrfs-05-grub2-mkconfig.patch +++ b/0177-grub2-btrfs-05-grub2-mkconfig.patch @@ -1,7 +1,7 @@ From cb43e7a6c96127e72d6787c6063de8911284fe18 Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 21 Aug 2014 03:39:11 +0000 -Subject: [PATCH 177/251] grub2-btrfs-05-grub2-mkconfig +Subject: [PATCH] grub2-btrfs-05-grub2-mkconfig --- util/grub-mkconfig.in | 3 ++- @@ -125,6 +125,3 @@ index 54f1ec8a2fd..462f8e1f819 100644 fi;; xzfs) rpool=`${grub_probe} --device ${GRUB_DEVICE} --target=fs_label 2>/dev/null || true` --- -2.17.1 - diff --git a/0178-grub2-btrfs-06-subvol-mount.patch b/0178-grub2-btrfs-06-subvol-mount.patch index f12645cd..0c37866f 100644 --- a/0178-grub2-btrfs-06-subvol-mount.patch +++ b/0178-grub2-btrfs-06-subvol-mount.patch @@ -1,7 +1,7 @@ From 84d6a482c2c8d0677141bb888512a6a89daf9d8b Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Fri, 22 May 2015 11:45:25 +0000 -Subject: [PATCH 178/251] grub2-btrfs-06-subvol-mount +Subject: [PATCH] grub2-btrfs-06-subvol-mount --- grub-core/fs/btrfs.c | 195 +++++++++++++++++++++++++++++++++++++++- @@ -535,6 +535,3 @@ index 73fa2d34abb..9c642ae3fe3 100644 /* Devmapper functions provided by getroot_devmapper.c. */ void grub_util_pull_devmapper (const char *os_dev); --- -2.17.1 - diff --git a/0179-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch b/0179-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch index 385840be..2dfb6210 100644 --- a/0179-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch +++ b/0179-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch @@ -1,7 +1,7 @@ From 741c0651cd54970c08e9c19a82f5805aafbfda23 Mon Sep 17 00:00:00 2001 From: Dusty Mabe Date: Sat, 18 Jul 2015 15:38:08 +0000 -Subject: [PATCH 179/251] No more "Bootable Snapshot" submenu in grub.cfg. +Subject: [PATCH] No more "Bootable Snapshot" submenu in grub.cfg. This breaks grubby (run on kernel upgrades) because grubby just does a search for "menuentry". @@ -29,6 +29,3 @@ index e2a53300126..8a16fea347e 100644 -fi -EOF -fi --- -2.17.1 - diff --git a/0180-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch b/0180-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch index 4955667d..7aee14dd 100644 --- a/0180-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch +++ b/0180-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch @@ -1,8 +1,8 @@ From ab8e0d4bf544b708f5afa4cc56e6bd16789f2f1e Mon Sep 17 00:00:00 2001 From: Andrei Borzenkov Date: Tue, 21 Jun 2016 16:44:17 +0000 -Subject: [PATCH 180/251] Fallback to old subvol name scheme to support old - snapshot config +Subject: [PATCH] Fallback to old subvol name scheme to support old snapshot + config Ref: bsc#953538 --- @@ -56,6 +56,3 @@ index d111147e836..a5c000805a7 100644 if (btrfs_default_subvolid) return lookup_root_by_id(data, btrfs_default_subvolid); --- -2.17.1 - diff --git a/0181-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch b/0181-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch index 8e69738e..04ba32b4 100644 --- a/0181-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch +++ b/0181-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch @@ -1,8 +1,7 @@ From eb8535428a42c7099666ddb58ac900bb8ee745ba Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 11 May 2017 08:56:57 +0000 -Subject: [PATCH 181/251] Grub not working correctly with btrfs snapshots - (bsc#1026511) +Subject: [PATCH] Grub not working correctly with btrfs snapshots (bsc#1026511) --- grub-core/fs/btrfs.c | 238 +++++++++++++++++++++++++++++++++++++++++++++++++++ @@ -271,6 +270,3 @@ index a5c000805a7..3cd9472197c 100644 grub_register_variable_hook ("btrfs_subvol", subvol_get_env, subvol_set_env); grub_register_variable_hook ("btrfs_subvolid", subvolid_get_env, --- -2.17.1 - diff --git a/0182-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch b/0182-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch index 95bff2e2..35496c08 100644 --- a/0182-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch +++ b/0182-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch @@ -1,7 +1,7 @@ From 2a6e1d2491b7334985ad25315faa22d26354d8b7 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 1 Jun 2017 09:59:56 -0400 -Subject: [PATCH 182/251] Add grub_efi_allocate_pool() and grub_efi_free_pool() +Subject: [PATCH] Add grub_efi_allocate_pool() and grub_efi_free_pool() wrappers. Signed-off-by: Peter Jones @@ -70,6 +70,3 @@ index 91e29ce66f1..68326d96f5a 100644 extern int EXPORT_VAR(grub_efi_is_finished); struct grub_net_card; --- -2.17.1 - diff --git a/0183-Use-grub_efi_.-memory-helpers-where-reasonable.patch b/0183-Use-grub_efi_.-memory-helpers-where-reasonable.patch index d7a66b5e..fe13ef77 100644 --- a/0183-Use-grub_efi_.-memory-helpers-where-reasonable.patch +++ b/0183-Use-grub_efi_.-memory-helpers-where-reasonable.patch @@ -1,7 +1,7 @@ From 6ea13cdb3f33da45d7a8042d85ad87e2a18fc946 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 1 Jun 2017 10:06:38 -0400 -Subject: [PATCH 183/251] Use grub_efi_...() memory helpers where reasonable. +Subject: [PATCH] Use grub_efi_...() memory helpers where reasonable. This uses grub_efi_allocate_pool(), grub_efi_free_pool(), and grub_efi_free_pages() instead of open-coded efi_call_N() calls, so we @@ -104,6 +104,3 @@ index 7826e794ad9..d2557b38dce 100644 if (cmdline) grub_free (cmdline); --- -2.17.1 - diff --git a/0184-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch b/0184-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch index 9422f42e..f64aa82c 100644 --- a/0184-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch +++ b/0184-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch @@ -1,7 +1,7 @@ From eae94a16a8ae350cdeab8b7742f9227d92001272 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 1 Jun 2017 10:07:50 -0400 -Subject: [PATCH 184/251] Add PRIxGRUB_EFI_STATUS and use it. +Subject: [PATCH] Add PRIxGRUB_EFI_STATUS and use it. This avoids syntax checkers getting confused about if it's llx or lx. @@ -44,6 +44,3 @@ index 02488ec35ae..ddc5ecfb03d 100644 #define GRUB_EFI_ERROR_CODE(value) \ ((((grub_efi_status_t) 1) << (sizeof (grub_efi_status_t) * 8 - 1)) | (value)) --- -2.17.1 - diff --git a/0185-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch b/0185-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch index 4855617c..26592dbe 100644 --- a/0185-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch +++ b/0185-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch @@ -1,8 +1,8 @@ From 41a50aa2c275076caa2f9fe7a747eeb054abed16 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:42:57 -0400 -Subject: [PATCH 185/251] Don't use dynamic sized arrays since we don't build - with -std=c99 +Subject: [PATCH] Don't use dynamic sized arrays since we don't build with + -std=c99 --- grub-core/net/net.c | 17 ++++++++++++++--- @@ -41,6 +41,3 @@ index 4be228d9576..fa3e2912643 100644 if (client_uuid) { grub_strcpy (suffix, client_uuid); --- -2.17.1 - diff --git a/0186-don-t-ignore-const.patch b/0186-don-t-ignore-const.patch index e9d8ac09..138100a0 100644 --- a/0186-don-t-ignore-const.patch +++ b/0186-don-t-ignore-const.patch @@ -1,7 +1,7 @@ From d06e2578107f217d2bc8beee7fd0dc7f2645873d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:43:22 -0400 -Subject: [PATCH 186/251] don't ignore const +Subject: [PATCH] don't ignore const --- grub-core/net/tftp.c | 2 +- @@ -20,6 +20,3 @@ index dcd82494309..f90071353ad 100644 while (*src != '\0') { --- -2.17.1 - diff --git a/0187-don-t-use-int-for-efi-status.patch b/0187-don-t-use-int-for-efi-status.patch index 9d8c217b..ce63f58d 100644 --- a/0187-don-t-use-int-for-efi-status.patch +++ b/0187-don-t-use-int-for-efi-status.patch @@ -1,7 +1,7 @@ From 6d86c59c24e12c8e8471cdd2affca574fdee160d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:44:59 -0400 -Subject: [PATCH 187/251] don't use int for efi status +Subject: [PATCH] don't use int for efi status --- grub-core/kern/efi/efi.c | 2 +- @@ -20,6 +20,3 @@ index 866fc20e162..91f75fdb89a 100644 if (retval == 0) rc = GRUB_EFI_SUCCESS; --- -2.17.1 - diff --git a/0188-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch b/0188-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch index ab480ea1..0c873ea9 100644 --- a/0188-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch +++ b/0188-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch @@ -1,7 +1,7 @@ From ba6828d073bbda85eba59a9ce9220eada51a540b Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:46:23 -0400 -Subject: [PATCH 188/251] make GRUB_MOD_INIT() declare its function prototypes. +Subject: [PATCH] make GRUB_MOD_INIT() declare its function prototypes. --- include/grub/dl.h | 2 ++ @@ -27,6 +27,3 @@ index 2bca56ce0e8..b1ed3c33317 100644 void \ grub_##name##_fini (void) { grub_mod_fini (); } \ static void \ --- -2.17.1 - diff --git a/0189-Clean-up-some-errors-in-the-linuxefi-loader.patch b/0189-Clean-up-some-errors-in-the-linuxefi-loader.patch index 0236e8af..06cecba9 100644 --- a/0189-Clean-up-some-errors-in-the-linuxefi-loader.patch +++ b/0189-Clean-up-some-errors-in-the-linuxefi-loader.patch @@ -1,7 +1,7 @@ From 8bdc0c77919ddb9bd588ac45e96c96497683f76c Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 24 May 2017 15:58:18 -0400 -Subject: [PATCH 189/251] Clean up some errors in the linuxefi loader +Subject: [PATCH] Clean up some errors in the linuxefi loader Signed-off-by: Peter Jones --- @@ -64,6 +64,3 @@ index bed5919cab3..6db5d0bf3a0 100644 grub_efi_free_pages ((grub_efi_physical_address_t)(grub_addr_t) linux_cmdline, BYTES_TO_PAGES(lh->cmdline_size + 1)); --- -2.17.1 - diff --git a/0190-editenv-handle-relative-symlinks.patch b/0190-editenv-handle-relative-symlinks.patch index 03546961..7a772617 100644 --- a/0190-editenv-handle-relative-symlinks.patch +++ b/0190-editenv-handle-relative-symlinks.patch @@ -1,7 +1,7 @@ From 098987b7b5fcc15a5ba3600fa132fcec36095c5a Mon Sep 17 00:00:00 2001 From: Jonathan Lebon Date: Mon, 14 Aug 2017 14:37:20 -0400 -Subject: [PATCH 190/251] editenv: handle relative symlinks +Subject: [PATCH] editenv: handle relative symlinks Handle symlinks with targets relative to the containing dir. This ensures that the rename operation does not depend on the cwd. @@ -48,6 +48,3 @@ index d8d1dad6ab9..41bc7cb1c9a 100644 } int rc = grub_util_rename (namenew, rename_target); --- -2.17.1 - diff --git a/0191-Make-libgrub.pp-depend-on-config-util.h.patch b/0191-Make-libgrub.pp-depend-on-config-util.h.patch index 17bf2255..7df011ad 100644 --- a/0191-Make-libgrub.pp-depend-on-config-util.h.patch +++ b/0191-Make-libgrub.pp-depend-on-config-util.h.patch @@ -1,7 +1,7 @@ From c86299049c2cc0503728deee280d9f6bf50886f4 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 23 Aug 2017 10:37:27 -0400 -Subject: [PATCH 191/251] Make libgrub.pp depend on config-util.h +Subject: [PATCH] Make libgrub.pp depend on config-util.h If you build with "make -j48" a lot, sometimes you see: @@ -43,6 +43,3 @@ index 7795baeb654..c7b0e6a9c46 100644 $(CPP) $(DEFS) $(DEFAULT_INCLUDES) $(INCLUDES) $(libgrubmods_a_CPPFLAGS) $(libgrubkern_a_CPPFLAGS) $(CPPFLAGS) \ -D'GRUB_MOD_INIT(x)=@MARKER@x@' $^ > $@ || (rm -f $@; exit 1) CLEANFILES += libgrub.pp --- -2.17.1 - diff --git a/0192-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch b/0192-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch index fd56bcb3..68c1cbb1 100644 --- a/0192-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch +++ b/0192-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch @@ -1,7 +1,7 @@ From 351799d9310a4bec23ed4074444780c2a35435fd Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 20 Apr 2017 13:29:06 -0400 -Subject: [PATCH 192/251] Don't guess /boot/efi/ as HFS+ on ppc machines in +Subject: [PATCH] Don't guess /boot/efi/ as HFS+ on ppc machines in grub-install This should never be trying this, and since we've consolidated the @@ -39,6 +39,3 @@ index cd84a72b97b..48f2abc3ea5 100644 if (!grub_util_is_directory (d)) { free (d); --- -2.17.1 - diff --git a/0193-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch b/0193-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch index ba5aba84..68b57d27 100644 --- a/0193-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch +++ b/0193-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch @@ -1,8 +1,8 @@ From cba0322cd88baf136ac693f5ec1826f3314daeff Mon Sep 17 00:00:00 2001 From: Konrad Rzeszutek Wilk Date: Mon, 28 Aug 2017 13:51:14 -0400 -Subject: [PATCH 193/251] Fix util/grub.d/20_linux_xen.in: Add xen_boot command - support for aarch64 +Subject: [PATCH] Fix util/grub.d/20_linux_xen.in: Add xen_boot command support + for aarch64 Commit d33045ce7ffcb7c1e4a60c14d5ca64b36e3c5abe introduced the support for this, but it does not work under x86 (as it stops @@ -57,6 +57,3 @@ index 462f8e1f819..9b1bd716965 100644 fi while [ "x$list" != "x" ] ; do linux=`version_find_latest $list` --- -2.17.1 - diff --git a/0194-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch b/0194-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch index 3a194072..fbc5d2bb 100644 --- a/0194-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch +++ b/0194-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch @@ -1,8 +1,8 @@ From 87c089b6f1945ebcc690697d279c74284f1b4072 Mon Sep 17 00:00:00 2001 From: Konrad Rzeszutek Wilk Date: Mon, 28 Aug 2017 13:59:12 -0400 -Subject: [PATCH 194/251] Use grub-file to figure out whether multiboot2 should - be used for Xen.gz +Subject: [PATCH] Use grub-file to figure out whether multiboot2 should be used + for Xen.gz The multiboot2 is much more preferable than multiboot. Especiall if booting under EFI where multiboot does not have the functionality @@ -28,6 +28,3 @@ index 9b1bd716965..fae1ffe9494 100644 fi while [ "x$list" != "x" ] ; do linux=`version_find_latest $list` --- -2.17.1 - diff --git a/0195-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch b/0195-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch index a2d455a8..79d47acd 100644 --- a/0195-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch +++ b/0195-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch @@ -1,8 +1,7 @@ From 92d3db585076d022521ab94a2ceed03eb05013fc Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 19 Oct 2017 11:29:11 -0400 -Subject: [PATCH 195/251] 20_linux_xen: load xen or multiboot{,2} modules as - needed. +Subject: [PATCH] 20_linux_xen: load xen or multiboot{,2} modules as needed. Signed-off-by: Peter Jones --- @@ -30,6 +29,3 @@ index fae1ffe9494..fc53bd54231 100644 ${module_loader} --nounzip ${rel_dirname}/${initrd} EOF fi --- -2.17.1 - diff --git a/0196-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch b/0196-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch index 9daba9ea..5c5ddcac 100644 --- a/0196-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch +++ b/0196-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch @@ -1,8 +1,8 @@ From 2e5b957292d3f313d48bded25e8ca83468326c5b Mon Sep 17 00:00:00 2001 From: "David E. Box" Date: Fri, 15 Sep 2017 15:37:05 -0700 -Subject: [PATCH 196/251] tsc: Change default tsc calibration method to pmtimer - on EFI systems +Subject: [PATCH] tsc: Change default tsc calibration method to pmtimer on EFI + systems On efi systems, make pmtimer based tsc calibration the default over the pit. This prevents Grub from hanging on Intel SoC systems that power gate @@ -27,6 +27,3 @@ index 2e85289d848..f266eb13185 100644 #elif defined (GRUB_MACHINE_COREBOOT) (void) (grub_tsc_calibrate_from_pmtimer () || grub_tsc_calibrate_from_pit () || calibrate_tsc_hardcode()); #else --- -2.17.1 - diff --git a/0197-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch b/0197-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch index 1a6eac7e..2794500d 100644 --- a/0197-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch +++ b/0197-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch @@ -1,8 +1,7 @@ From 0b158c30810db86f549cabd6e6021ab15962370d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 7 Nov 2017 17:12:17 -0500 -Subject: [PATCH 197/251] Make pmtimer tsc calibration not take 51 seconds to - fail. +Subject: [PATCH] Make pmtimer tsc calibration not take 51 seconds to fail. On my laptop running at 2.4GHz, if I run a VM where tsc calibration using pmtimer will fail presuming a broken pmtimer, it takes ~51 seconds @@ -210,6 +209,3 @@ index c9c36169978..ca15c3aacd7 100644 tsc_diff = grub_pmtimer_wait_count_tsc (pmtimer, 3580); if (tsc_diff == 0) return 0; --- -2.17.1 - diff --git a/0198-align-struct-efi_variable-better.patch b/0198-align-struct-efi_variable-better.patch index bb96eadb..2ad86512 100644 --- a/0198-align-struct-efi_variable-better.patch +++ b/0198-align-struct-efi_variable-better.patch @@ -1,7 +1,7 @@ From 2485633ada06c11c07a34a696a92b14e58f1e846 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 27 Feb 2018 13:55:35 -0500 -Subject: [PATCH 198/251] align struct efi_variable better... +Subject: [PATCH] align struct efi_variable better... --- include/grub/efiemu/runtime.h | 2 +- @@ -31,6 +31,3 @@ index b93e4820194..f6a9723971d 100644 #ifdef GRUB_BUILD # define GRUB_CPU_SIZEOF_VOID_P BUILD_SIZEOF_VOID_P --- -2.17.1 - diff --git a/0199-Add-quicksort-implementation.patch b/0199-Add-quicksort-implementation.patch index 2fda707c..d8db032d 100644 --- a/0199-Add-quicksort-implementation.patch +++ b/0199-Add-quicksort-implementation.patch @@ -1,7 +1,7 @@ From a2cd100d71711b950beaf60ea7ddca4c77a70d59 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 9 Dec 2016 15:39:47 -0500 -Subject: [PATCH 199/251] Add quicksort implementation +Subject: [PATCH] Add quicksort implementation This will be used to sort the boot menu entries that are read from the BootLoaderSpec config files. @@ -320,6 +320,3 @@ index 4737da1eaa9..3d55bafd64e 100644 + void *state); + #endif /* ! GRUB_MISC_HEADER */ --- -2.17.1 - diff --git a/0200-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch b/0200-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch index 8629d692..bf1e2bd5 100644 --- a/0200-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch +++ b/0200-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch @@ -1,8 +1,8 @@ From ed595feeea2f7b7fd0158d42fa2fd39420eea683 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 9 Dec 2016 15:40:58 -0500 -Subject: [PATCH 200/251] Add blscfg command support to parse BootLoaderSpec - config fragments +Subject: [PATCH] Add blscfg command support to parse BootLoaderSpec config + fragments The BootLoaderSpec (BLS) defines a scheme where different bootloaders can share a format for boot items and a configuration directory that accepts @@ -1137,6 +1137,3 @@ index c9e1d7a73dc..9859ff4cc79 100644 +#define UNUSED __attribute__((__unused__)) + #endif /* ! GRUB_COMPILER_HEADER */ --- -2.17.1 - diff --git a/0201-Add-BLS-support-to-grub-mkconfig.patch b/0201-Add-BLS-support-to-grub-mkconfig.patch index a8847dfd..ccac5c22 100644 --- a/0201-Add-BLS-support-to-grub-mkconfig.patch +++ b/0201-Add-BLS-support-to-grub-mkconfig.patch @@ -1,7 +1,7 @@ From d847a4806bb7a4f3b457d0074d712e500fbd5e97 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 9 Dec 2016 15:40:29 -0500 -Subject: [PATCH 201/251] Add BLS support to grub-mkconfig +Subject: [PATCH] Add BLS support to grub-mkconfig GRUB now has BootLoaderSpec support, the user can choose to use this by setting GRUB_ENABLE_BLSCFG to true in /etc/default/grub. On this setup, @@ -165,6 +165,3 @@ index 7e78ad33636..f5daefb9d24 100644 elif test -z "${initramfs}" ; then # "UUID=" and "ZFS=" magic is parsed by initrd or initramfs. Since there's # no initrd or builtin initramfs, it can't work here. --- -2.17.1 - diff --git a/0202-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch b/0202-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch index 72bb48e7..bc5324c8 100644 --- a/0202-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch +++ b/0202-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch @@ -1,7 +1,7 @@ From 2d7dabdbf322e8f679eeaefd48cb26b083cdeb1c Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 6 Feb 2018 11:02:09 +0100 -Subject: [PATCH 202/251] Remove duplicated grub_exit() definition for grub-emu +Subject: [PATCH] Remove duplicated grub_exit() definition for grub-emu platform The grub_exit() function signature was changed on all platforms to take a @@ -31,6 +31,3 @@ index 7e47ec81263..55ea5a11ccd 100644 void grub_machine_init (void) { --- -2.17.1 - diff --git a/0203-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch b/0203-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch index 48fd28fc..c0e20513 100644 --- a/0203-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch +++ b/0203-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch @@ -1,8 +1,7 @@ From f45946a92377c83ffcad8dbc3298fc26072567d9 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 6 Feb 2018 11:16:28 +0100 -Subject: [PATCH 203/251] Don't attempt to backtrace on grub_abort() for - grub-emu +Subject: [PATCH] Don't attempt to backtrace on grub_abort() for grub-emu The emu platform doesn't have a grub_backtrace() implementation, so this causes a build error. Don't attempt to call this when building grub-emu. @@ -25,6 +24,3 @@ index 04371ac49f2..636f97e1ba1 100644 grub_backtrace(); #endif #endif --- -2.17.1 - diff --git a/0204-Enable-blscfg-command-for-the-emu-platform.patch b/0204-Enable-blscfg-command-for-the-emu-platform.patch index 7b82fbc5..b2aafffe 100644 --- a/0204-Enable-blscfg-command-for-the-emu-platform.patch +++ b/0204-Enable-blscfg-command-for-the-emu-platform.patch @@ -1,7 +1,7 @@ From 39bb86c661911f06ff40caa842a9babf18f27c8b Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Fri, 2 Feb 2018 11:36:29 +0100 -Subject: [PATCH 204/251] Enable blscfg command for the emu platform +Subject: [PATCH] Enable blscfg command for the emu platform Allow grub-emu to call a blscfg command. This may be useful for platforms that don't support GRUB, so grub-emu can be used to parse the BLS configs @@ -162,6 +162,3 @@ index 9ab45631465..e5617c3bc6c 100644 { grub_unregister_extcmd (cmd); } --- -2.17.1 - diff --git a/0205-Add-linux-and-initrd-commands-for-grub-emu.patch b/0205-Add-linux-and-initrd-commands-for-grub-emu.patch index 04dd5117..3b1208f4 100644 --- a/0205-Add-linux-and-initrd-commands-for-grub-emu.patch +++ b/0205-Add-linux-and-initrd-commands-for-grub-emu.patch @@ -1,7 +1,7 @@ From 49c719a6f6e223b95733e18720a48993ab6e5317 Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Tue, 6 Feb 2018 09:09:00 +0100 -Subject: [PATCH 205/251] Add linux and initrd commands for grub-emu +Subject: [PATCH] Add linux and initrd commands for grub-emu When using grub-emu, the linux and initrd commands are used as arguments to the kexec command line tool, to allow booting the selected menu entry. @@ -349,6 +349,3 @@ index f7b4d29b0b3..75e8715e631 100644 if COND_GRUB_EMU_SDL KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/sdl.h endif --- -2.17.1 - diff --git a/0206-Fix-the-efidir-in-grub-setpassword.patch b/0206-Fix-the-efidir-in-grub-setpassword.patch index 3c804bbe..36074fda 100644 --- a/0206-Fix-the-efidir-in-grub-setpassword.patch +++ b/0206-Fix-the-efidir-in-grub-setpassword.patch @@ -1,7 +1,7 @@ From c7c6cb4380f5bd85a2cbe747433657fdce89a802 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 15 Mar 2018 14:12:54 -0400 -Subject: [PATCH 206/251] Fix the efidir in grub-setpassword +Subject: [PATCH] Fix the efidir in grub-setpassword Signed-off-by: Peter Jones --- @@ -22,6 +22,3 @@ index d7924af5192..cf70257eed6 100644 else grubdir=`echo "/@bootdirname@/@grubdirname@" | sed 's,//*,/,g'` fi --- -2.17.1 - diff --git a/0207-Add-grub2-switch-to-blscfg.patch b/0207-Add-grub2-switch-to-blscfg.patch index 9fdb6db1..8a806c0f 100644 --- a/0207-Add-grub2-switch-to-blscfg.patch +++ b/0207-Add-grub2-switch-to-blscfg.patch @@ -1,7 +1,7 @@ From 89b3a570de8b5e7ad19769983a87f6e10024f0ec Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 15 Mar 2018 14:12:40 -0400 -Subject: [PATCH 207/251] Add grub2-switch-to-blscfg +Subject: [PATCH] Add grub2-switch-to-blscfg Signed-off-by: Peter Jones --- @@ -343,6 +343,3 @@ index 00000000000..3ae5e4ea8d0 + +# Bye. +exit 0 --- -2.17.1 - diff --git a/0208-Add-grub_debug_enabled.patch b/0208-Add-grub_debug_enabled.patch index ffeea164..8b3ac8f0 100644 --- a/0208-Add-grub_debug_enabled.patch +++ b/0208-Add-grub_debug_enabled.patch @@ -1,7 +1,7 @@ From 6776773c89828c9b69c1552760ba6a4d9cd5589f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 30 Nov 2017 15:11:39 -0500 -Subject: [PATCH 208/251] Add grub_debug_enabled() +Subject: [PATCH] Add grub_debug_enabled() --- grub-core/kern/misc.c | 21 ++++++++++++++++----- @@ -58,6 +58,3 @@ index 3d55bafd64e..493e328d968 100644 void EXPORT_FUNC(grub_real_dprintf) (const char *file, const int line, const char *condition, --- -2.17.1 - diff --git a/0209-make-better-backtraces.patch b/0209-make-better-backtraces.patch index 72a53885..473923d9 100644 --- a/0209-make-better-backtraces.patch +++ b/0209-make-better-backtraces.patch @@ -1,7 +1,7 @@ From 318ee04aadcda40b779b2a5314dd23ead165f896 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 6 Nov 2017 18:31:56 -0500 -Subject: [PATCH 209/251] make better backtraces +Subject: [PATCH] make better backtraces Signed-off-by: Peter Jones --- @@ -882,6 +882,3 @@ index 75e8715e631..5c7a2c8f808 100644 KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/cache.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/command.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/device.h --- -2.17.1 - diff --git a/0210-normal-don-t-draw-our-startup-message-if-debug-is-se.patch b/0210-normal-don-t-draw-our-startup-message-if-debug-is-se.patch index 77db000d..ca7b1192 100644 --- a/0210-normal-don-t-draw-our-startup-message-if-debug-is-se.patch +++ b/0210-normal-don-t-draw-our-startup-message-if-debug-is-se.patch @@ -1,8 +1,7 @@ From 81d0e079ea5aa6f43daf12f7a8698d0bcd1a36f8 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 9 Nov 2017 15:58:52 -0500 -Subject: [PATCH 210/251] normal: don't draw our startup message if debug is - set +Subject: [PATCH] normal: don't draw our startup message if debug is set --- grub-core/normal/main.c | 3 +++ @@ -22,6 +21,3 @@ index b69f9e738fa..04ae9ed02f6 100644 msg_formatted = grub_xasprintf (_("Minimal BASH-like line editing is supported. For " "the first word, TAB lists possible command completions. Anywhere " "else TAB lists possible device or file completions. %s"), --- -2.17.1 - diff --git a/0211-Work-around-some-minor-include-path-weirdnesses.patch b/0211-Work-around-some-minor-include-path-weirdnesses.patch index 3d1dc0d1..1348d2f1 100644 --- a/0211-Work-around-some-minor-include-path-weirdnesses.patch +++ b/0211-Work-around-some-minor-include-path-weirdnesses.patch @@ -1,7 +1,7 @@ From e2bba0f7ee8e56c68e425853a21a8fdd766add70 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 16 Mar 2018 13:28:57 -0400 -Subject: [PATCH 211/251] Work around some minor include path weirdnesses +Subject: [PATCH] Work around some minor include path weirdnesses Signed-off-by: Peter Jones --- @@ -135,6 +135,3 @@ index 00000000000..dba9d8678d0 +#include + +#endif /* ! GRUB_X86_64_EFI_CONSOLE_H */ --- -2.17.1 - diff --git a/0212-Make-it-possible-to-enabled-build-id-sha1.patch b/0212-Make-it-possible-to-enabled-build-id-sha1.patch index 2cbec319..33c50e67 100644 --- a/0212-Make-it-possible-to-enabled-build-id-sha1.patch +++ b/0212-Make-it-possible-to-enabled-build-id-sha1.patch @@ -1,7 +1,7 @@ From 8521929bcf671b465d6450b969d11617b6aec608 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 25 Jun 2015 15:41:06 -0400 -Subject: [PATCH 212/251] Make it possible to enabled --build-id=sha1 +Subject: [PATCH] Make it possible to enabled --build-id=sha1 Signed-off-by: Peter Jones --- @@ -59,6 +59,3 @@ index 78cdf6e1d01..242e829ff23 100644 dnl Check nm AC_DEFUN([grub_PROG_NM_WORKS], [AC_MSG_CHECKING([whether nm works]) --- -2.17.1 - diff --git a/0213-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch b/0213-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch index 28f48fa8..8c625ce8 100644 --- a/0213-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch +++ b/0213-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch @@ -1,8 +1,8 @@ From 8c4b2eaa204f0ea0377ca4592d2be6029fdb9be7 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Sun, 28 Jun 2015 13:09:58 -0400 -Subject: [PATCH 213/251] Add grub_qdprintf() - grub_dprintf() without the - file+line number. +Subject: [PATCH] Add grub_qdprintf() - grub_dprintf() without the file+line + number. This just makes copy+paste of our debug loading info easier. @@ -54,6 +54,3 @@ index 493e328d968..4607e8defa9 100644 int EXPORT_FUNC(grub_vprintf) (const char *fmt, va_list args); int EXPORT_FUNC(grub_snprintf) (char *str, grub_size_t n, const char *fmt, ...) __attribute__ ((format (GNU_PRINTF, 3, 4))); --- -2.17.1 - diff --git a/0214-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch b/0214-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch index 8722f974..18d4f7ba 100644 --- a/0214-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch +++ b/0214-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch @@ -1,7 +1,7 @@ From 030095a01a205aba04a0849ac0c0329ac429a9ed Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 25 Jun 2015 15:11:36 -0400 -Subject: [PATCH 214/251] Make a "gdb" dprintf that tells us load addresses. +Subject: [PATCH] Make a "gdb" dprintf that tells us load addresses. This makes a grub_dprintf() call during platform init and during module loading that tells us the virtual addresses of the .text and .data @@ -176,6 +176,3 @@ index 68326d96f5a..6702b312040 100644 void grub_efi_mm_init (void); void grub_efi_mm_fini (void); --- -2.17.1 - diff --git a/0215-Only-attempt-to-scan-different-BLS-directories-on-EF.patch b/0215-Only-attempt-to-scan-different-BLS-directories-on-EF.patch index 676d23f0..43471585 100644 --- a/0215-Only-attempt-to-scan-different-BLS-directories-on-EF.patch +++ b/0215-Only-attempt-to-scan-different-BLS-directories-on-EF.patch @@ -1,7 +1,7 @@ From 5f0417c63a4dd2252a5a801568f4369ac74a47e6 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 3 Apr 2018 15:42:47 +0200 -Subject: [PATCH 215/251] Only attempt to scan different BLS directories on EFI +Subject: [PATCH] Only attempt to scan different BLS directories on EFI machines Current BLS support attempted to scan for BLS directories, but this only @@ -44,6 +44,3 @@ index e5617c3bc6c..c0973ff83ea 100644 #endif finish: --- -2.17.1 - diff --git a/0216-Core-TPM-support.patch b/0216-Core-TPM-support.patch index deb65a5f..aa7d8fc4 100644 --- a/0216-Core-TPM-support.patch +++ b/0216-Core-TPM-support.patch @@ -1,7 +1,7 @@ From 65be94a64a5608209561ba0914d29445d81bf4b2 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 14 Jul 2015 17:06:35 -0700 -Subject: [PATCH 216/251] Core TPM support +Subject: [PATCH] Core TPM support Add support for performing basic TPM measurements. Right now this only supports extending PCRs statically and only on UEFI and BIOS systems, but @@ -784,6 +784,3 @@ index 5c7a2c8f808..84b076962d8 100644 KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/memory.h if COND_i386_pc --- -2.17.1 - diff --git a/0217-Measure-kernel-initrd.patch b/0217-Measure-kernel-initrd.patch index 4b05967e..7ced377d 100644 --- a/0217-Measure-kernel-initrd.patch +++ b/0217-Measure-kernel-initrd.patch @@ -1,7 +1,7 @@ From ffd305d09def6610ef96f928c0df8303c5529d63 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Thu, 16 Jul 2015 15:22:34 -0700 -Subject: [PATCH 217/251] Measure kernel + initrd +Subject: [PATCH] Measure kernel + initrd Measure the kernel and initrd when loaded on UEFI systems --- @@ -37,6 +37,3 @@ index 6db5d0bf3a0..48febdc8100 100644 rc = grub_linuxefi_secure_validate (kernel, filelen); if (rc < 0) { --- -2.17.1 - diff --git a/0218-Add-BIOS-boot-measurement.patch b/0218-Add-BIOS-boot-measurement.patch index 0c68e3c3..3fff53ec 100644 --- a/0218-Add-BIOS-boot-measurement.patch +++ b/0218-Add-BIOS-boot-measurement.patch @@ -1,7 +1,7 @@ From d8870587d46f8aa8d4f8db2cdcddecc829993447 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 15:48:51 -0700 -Subject: [PATCH 218/251] Add BIOS boot measurement +Subject: [PATCH] Add BIOS boot measurement Measure the on-disk grub core on BIOS systems - unlike UEFI, the firmware can't do this stage for us. @@ -174,6 +174,3 @@ index c8b87ed293c..05dd7fa701c 100644 /* * message: write the string pointed to by %si * --- -2.17.1 - diff --git a/0219-Measure-kernel-and-initrd-on-BIOS-systems.patch b/0219-Measure-kernel-and-initrd-on-BIOS-systems.patch index a952a52b..9ebc347b 100644 --- a/0219-Measure-kernel-and-initrd-on-BIOS-systems.patch +++ b/0219-Measure-kernel-and-initrd-on-BIOS-systems.patch @@ -1,7 +1,7 @@ From 5aee2444093cfc8006865766f89e5a775a940ab1 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 16:28:29 -0700 -Subject: [PATCH 219/251] Measure kernel and initrd on BIOS systems +Subject: [PATCH] Measure kernel and initrd on BIOS systems Measure the kernel and initrd when loaded on BIOS systems --- @@ -82,6 +82,3 @@ index be6fa0f4d45..3005c0d19c9 100644 ptr += cursize; } if (newc) --- -2.17.1 - diff --git a/0220-Measure-the-kernel-commandline.patch b/0220-Measure-the-kernel-commandline.patch index 6e78a915..c17d8dc1 100644 --- a/0220-Measure-the-kernel-commandline.patch +++ b/0220-Measure-the-kernel-commandline.patch @@ -1,7 +1,7 @@ From c1694574d6eb287e6e181dd018fe54b718a613b3 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 16:32:29 -0700 -Subject: [PATCH 220/251] Measure the kernel commandline +Subject: [PATCH] Measure the kernel commandline Measure the kernel commandline to ensure that it hasn't been modified --- @@ -38,6 +38,3 @@ index 970ea868c14..6b56304d4a7 100644 + return i; } --- -2.17.1 - diff --git a/0221-Measure-commands.patch b/0221-Measure-commands.patch index cd308632..9d5530fc 100644 --- a/0221-Measure-commands.patch +++ b/0221-Measure-commands.patch @@ -1,7 +1,7 @@ From c93a27f2e6a323a4985e6fe902eb5c6447fca572 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Mon, 10 Aug 2015 15:27:12 -0700 -Subject: [PATCH 221/251] Measure commands +Subject: [PATCH] Measure commands Measure each command executed by grub, which includes script execution. --- @@ -71,6 +71,3 @@ index 40d3cf65ba6..7fc9d77d277 100644 #define TPM_TAG_RQU_COMMAND 0x00C1 #define TPM_ORD_Extend 0x14 --- -2.17.1 - diff --git a/0222-Measure-multiboot-images-and-modules.patch b/0222-Measure-multiboot-images-and-modules.patch index 7e74078f..3332a464 100644 --- a/0222-Measure-multiboot-images-and-modules.patch +++ b/0222-Measure-multiboot-images-and-modules.patch @@ -1,7 +1,7 @@ From b164ec560cd6373c0c5d8a189d70baeca2c3ef13 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 1 Sep 2015 16:02:55 -0700 -Subject: [PATCH 222/251] Measure multiboot images and modules +Subject: [PATCH] Measure multiboot images and modules --- grub-core/loader/i386/multiboot_mbi.c | 3 +++ @@ -73,6 +73,3 @@ index b0679a9f6c9..a7b4a57ec4f 100644 if (header == 0) { grub_free (mld.buffer); --- -2.17.1 - diff --git a/0223-Fix-boot-when-there-s-no-TPM.patch b/0223-Fix-boot-when-there-s-no-TPM.patch index 7b33b344..886cb577 100644 --- a/0223-Fix-boot-when-there-s-no-TPM.patch +++ b/0223-Fix-boot-when-there-s-no-TPM.patch @@ -1,7 +1,7 @@ From 33fb6113d65a819496d0b67b8db071fedad845a7 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Wed, 23 Mar 2016 16:49:42 -0700 -Subject: [PATCH 223/251] Fix boot when there's no TPM +Subject: [PATCH] Fix boot when there's no TPM If the firmware has TPM support but has no TPM, we're jumping to core.img without popping the registers back onto the stack. Fix that. @@ -27,6 +27,3 @@ index c1df86dec0b..acab37369ae 100644 /* boot kernel */ jmp *(LOCAL(kernel_address)) --- -2.17.1 - diff --git a/0224-Rework-TPM-measurements.patch b/0224-Rework-TPM-measurements.patch index 2168d9f0..cc6bc38b 100644 --- a/0224-Rework-TPM-measurements.patch +++ b/0224-Rework-TPM-measurements.patch @@ -1,7 +1,7 @@ From 415072bbda8b4de133c6dc6add230e41ee6d9579 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Wed, 23 Mar 2016 17:03:43 -0700 -Subject: [PATCH 224/251] Rework TPM measurements +Subject: [PATCH] Rework TPM measurements Rework TPM measurements to use fewer PCRs. After discussion with upstream, it's preferable to avoid using so many PCRs. Instead, measure into PCRs 8 @@ -214,6 +214,3 @@ index 7fc9d77d277..ecb2d09ff5d 100644 const char *description); #if defined (GRUB_MACHINE_EFI) || defined (GRUB_MACHINE_PCBIOS) grub_err_t grub_tpm_execute(PassThroughToTPM_InputParamBlock *inbuf, --- -2.17.1 - diff --git a/0225-Fix-event-log-prefix.patch b/0225-Fix-event-log-prefix.patch index 7fb3ec9a..af1b6591 100644 --- a/0225-Fix-event-log-prefix.patch +++ b/0225-Fix-event-log-prefix.patch @@ -1,7 +1,7 @@ From 0816621235226952a5bd0cfd027eb97ff84df547 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 29 Mar 2016 15:36:49 -0700 -Subject: [PATCH 225/251] Fix event log prefix +Subject: [PATCH] Fix event log prefix We're not passing the prefixed version of the description to the event log. Fix that. @@ -24,6 +24,3 @@ index cb5a812035d..e5e8fced624 100644 grub_free(desc); return ret; } --- -2.17.1 - diff --git a/0226-Set-the-first-boot-menu-entry-as-default-when-using-.patch b/0226-Set-the-first-boot-menu-entry-as-default-when-using-.patch index 95d371a1..b0e5506f 100644 --- a/0226-Set-the-first-boot-menu-entry-as-default-when-using-.patch +++ b/0226-Set-the-first-boot-menu-entry-as-default-when-using-.patch @@ -1,8 +1,8 @@ From 8278e40fdc4a4db0865fc632cbe2dcf7c124ba7a Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Fri, 6 Apr 2018 14:08:36 +0200 -Subject: [PATCH 226/251] Set the first boot menu entry as default when using - BLS fragments +Subject: [PATCH] Set the first boot menu entry as default when using BLS + fragments When BootLoaderSpec configuration files are used, the default boot menu entry is always set to the first entry as sorted by the blscfg command. @@ -25,6 +25,3 @@ index f5daefb9d24..b24bb410dc0 100644 ${grub_editenv} - set kernelopts="root=${linux_root_device_thisversion} ro ${args}" exit 0 --- -2.17.1 - diff --git a/0227-tpm-fix-warnings-when-compiling-for-platforms-other-.patch b/0227-tpm-fix-warnings-when-compiling-for-platforms-other-.patch index ac875ba8..db1b7a57 100644 --- a/0227-tpm-fix-warnings-when-compiling-for-platforms-other-.patch +++ b/0227-tpm-fix-warnings-when-compiling-for-platforms-other-.patch @@ -1,8 +1,8 @@ From 4c53f61b1a889c0f55e76a763b05b6686ec613b8 Mon Sep 17 00:00:00 2001 From: Michael Marineau Date: Sun, 21 Aug 2016 18:24:58 -0700 -Subject: [PATCH 227/251] tpm: fix warnings when compiling for platforms other - than pc and efi +Subject: [PATCH] tpm: fix warnings when compiling for platforms other than pc + and efi --- include/grub/tpm.h | 17 +++++++++++------ @@ -36,6 +36,3 @@ index ecb2d09ff5d..972a5edc836 100644 { return 0; }; --- -2.17.1 - diff --git a/0228-Make-TPM-errors-less-fatal.patch b/0228-Make-TPM-errors-less-fatal.patch index 89d1000c..a3eaca18 100644 --- a/0228-Make-TPM-errors-less-fatal.patch +++ b/0228-Make-TPM-errors-less-fatal.patch @@ -1,7 +1,7 @@ From 406f7dda0cc2689170f102341a546c87072d1ce5 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Thu, 13 Oct 2016 13:55:26 -0700 -Subject: [PATCH 228/251] Make TPM errors less fatal +Subject: [PATCH] Make TPM errors less fatal Handle TPM errors, and stop trying to use the TPM once we hit one. --- @@ -206,6 +206,3 @@ index 976643c47b0..93965777138 100644 grub_free(cmdstring); invert = 0; argc = argv.argc - 1; --- -2.17.1 - diff --git a/0229-blscfg-handle-multiple-initramfs-images.patch b/0229-blscfg-handle-multiple-initramfs-images.patch index aede0239..b3aad41b 100644 --- a/0229-blscfg-handle-multiple-initramfs-images.patch +++ b/0229-blscfg-handle-multiple-initramfs-images.patch @@ -1,7 +1,7 @@ From a230ec5c31d818c2f046acf3592a5492d3e2ea69 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 11 Apr 2018 13:44:29 -0400 -Subject: [PATCH 229/251] blscfg: handle multiple initramfs images. +Subject: [PATCH] blscfg: handle multiple initramfs images. Signed-off-by: Peter Jones --- @@ -102,6 +102,3 @@ index c0973ff83ea..1e5972422d6 100644 } struct find_entry_info { --- -2.17.1 - diff --git a/0230-BLS-Fix-grub2-switch-to-blscfg-on-non-EFI-machines.patch b/0230-BLS-Fix-grub2-switch-to-blscfg-on-non-EFI-machines.patch index b0e1a5fb..3afb880c 100644 --- a/0230-BLS-Fix-grub2-switch-to-blscfg-on-non-EFI-machines.patch +++ b/0230-BLS-Fix-grub2-switch-to-blscfg-on-non-EFI-machines.patch @@ -1,7 +1,7 @@ From f006df881d1b2b3ca7320ecfcd33181295ec1018 Mon Sep 17 00:00:00 2001 From: Jan Hlavac Date: Tue, 10 Apr 2018 16:07:36 +0200 -Subject: [PATCH 230/251] BLS: Fix grub2-switch-to-blscfg on non-EFI machines +Subject: [PATCH] BLS: Fix grub2-switch-to-blscfg on non-EFI machines On the non-EFI machines the grub2-switch-to-blscfg script places the BLS snippets into the /boot directory. But the right location is @@ -23,6 +23,3 @@ index 3ae5e4ea8d0..f740b8f4d03 100644 fi backupsuffix=.bak --- -2.17.1 - diff --git a/0231-BLS-Use-etcdefaultgrub-instead-of-etc.patch b/0231-BLS-Use-etcdefaultgrub-instead-of-etc.patch index bb527af7..4054cdf3 100644 --- a/0231-BLS-Use-etcdefaultgrub-instead-of-etc.patch +++ b/0231-BLS-Use-etcdefaultgrub-instead-of-etc.patch @@ -1,7 +1,7 @@ From 29b79fde633a43223ead7874ffd373603f129832 Mon Sep 17 00:00:00 2001 From: Jan Hlavac Date: Tue, 10 Apr 2018 16:56:28 +0200 -Subject: [PATCH 231/251] BLS: Use ${etcdefaultgrub} instead of /etc/... +Subject: [PATCH] BLS: Use ${etcdefaultgrub} instead of /etc/... Inside the grub-switch-to-blscfg script the ${etcdefaultgrub} variable is used. So replace the hardcoded /etc/default/grub with it. @@ -22,6 +22,3 @@ index f740b8f4d03..eae3c379e4a 100644 gettext_printf "Updating %s failed\n" "${GRUB_CONFIG_FILE}" exit 1 fi --- -2.17.1 - diff --git a/0232-Add-missing-options-to-grub2-switch-to-blscfg-man-pa.patch b/0232-Add-missing-options-to-grub2-switch-to-blscfg-man-pa.patch index 8a2ecc27..1560c256 100644 --- a/0232-Add-missing-options-to-grub2-switch-to-blscfg-man-pa.patch +++ b/0232-Add-missing-options-to-grub2-switch-to-blscfg-man-pa.patch @@ -1,8 +1,7 @@ From c3a05672a450fd9e95de5df2b0c27c24fe04cd83 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Wed, 11 Apr 2018 11:36:43 +0200 -Subject: [PATCH 232/251] Add missing options to grub2-switch-to-blscfg man - page +Subject: [PATCH] Add missing options to grub2-switch-to-blscfg man page The script --bls-directory and --backup-suffix options were not documented in the man page, add them as well so users can know what these are about. @@ -30,6 +29,3 @@ index 134dfc62a7b..7d99de2d2f9 100644 + .SH SEE ALSO .BR "info grub" --- -2.17.1 - diff --git a/0233-Make-grub2-switch-to-blscfg-to-generate-debug-BLS-wh.patch b/0233-Make-grub2-switch-to-blscfg-to-generate-debug-BLS-wh.patch index 79476849..f3fc0512 100644 --- a/0233-Make-grub2-switch-to-blscfg-to-generate-debug-BLS-wh.patch +++ b/0233-Make-grub2-switch-to-blscfg-to-generate-debug-BLS-wh.patch @@ -1,8 +1,8 @@ From 55b00d518e029a563653401c6908489924c07238 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Wed, 11 Apr 2018 11:49:24 +0200 -Subject: [PATCH 233/251] Make grub2-switch-to-blscfg to generate debug BLS - when MAKEDEBUG is set +Subject: [PATCH] Make grub2-switch-to-blscfg to generate debug BLS when + MAKEDEBUG is set If MAKEDEBUG=yes in /etc/sysconfig/kernel, then a debug menu entry should be created. So for BLS, a debug configuration file has to be created that @@ -56,6 +56,3 @@ index eae3c379e4a..c59299ffa6a 100644 done GENERATE=0 --- -2.17.1 - diff --git a/0234-Make-grub2-switch-to-blscfg-to-generate-BLS-fragment.patch b/0234-Make-grub2-switch-to-blscfg-to-generate-BLS-fragment.patch index 348c0102..0a24e214 100644 --- a/0234-Make-grub2-switch-to-blscfg-to-generate-BLS-fragment.patch +++ b/0234-Make-grub2-switch-to-blscfg-to-generate-BLS-fragment.patch @@ -1,8 +1,8 @@ From 60bddbc714c96ca05821d52bdd7dbad7eabd6dd5 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Wed, 11 Apr 2018 12:39:59 +0200 -Subject: [PATCH 234/251] Make grub2-switch-to-blscfg to generate BLS fragment - for rescue kernel +Subject: [PATCH] Make grub2-switch-to-blscfg to generate BLS fragment for + rescue kernel If a rescue image is available, it should have a BootLoaderSpec fragment. @@ -26,6 +26,3 @@ index c59299ffa6a..bc28053cd30 100644 GENERATE=0 if grep '^GRUB_ENABLE_BLSCFG=.*' "${etcdefaultgrub}" \ | grep -vq '^GRUB_ENABLE_BLSCFG="*true"*\s*$' ; then --- -2.17.1 - diff --git a/0235-Only-attempt-to-query-dev-mounted-in-boot-efi-as-boo.patch b/0235-Only-attempt-to-query-dev-mounted-in-boot-efi-as-boo.patch index 752ea390..77330747 100644 --- a/0235-Only-attempt-to-query-dev-mounted-in-boot-efi-as-boo.patch +++ b/0235-Only-attempt-to-query-dev-mounted-in-boot-efi-as-boo.patch @@ -1,8 +1,8 @@ From 8afe59812e83e78564697ef8241ed4f1b3527423 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 24 Apr 2018 02:16:38 +0200 -Subject: [PATCH 235/251] Only attempt to query dev mounted in /boot/efi as - boot dev on EFI machines +Subject: [PATCH] Only attempt to query dev mounted in /boot/efi as boot dev on + EFI machines The 10_linux script calls grub2-probe to probe the information for the dev mounted in /boot/efi, but this directory may not exist on non-EFI machines @@ -38,6 +38,3 @@ index b24bb410dc0..c2ffc77398f 100644 cat << EOF insmod blscfg --- -2.17.1 - diff --git a/0236-Include-OSTree-path-when-searching-kernels-images-if.patch b/0236-Include-OSTree-path-when-searching-kernels-images-if.patch index 4ab6ae13..ad932eed 100644 --- a/0236-Include-OSTree-path-when-searching-kernels-images-if.patch +++ b/0236-Include-OSTree-path-when-searching-kernels-images-if.patch @@ -1,8 +1,8 @@ From 459eaeacbb40116dcb501cf165c7816e70c66fb3 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 24 Apr 2018 02:28:04 +0200 -Subject: [PATCH 236/251] Include OSTree path when searching kernels images if - BLS config is enabled +Subject: [PATCH] Include OSTree path when searching kernels images if BLS + config is enabled The OSTree based distros (i.e: Fedora Atomic) don't install kernel images in the /boot directory, but in /boot/ostree. So the 10_linux script isn't @@ -36,6 +36,3 @@ index c2ffc77398f..15ba8eff8a6 100644 case "$machine" in i?86) GENKERNEL_ARCH="x86" ;; mips|mips64) GENKERNEL_ARCH="mips" ;; --- -2.17.1 - diff --git a/0237-Use-BLS-version-field-to-compare-entries-if-id-field.patch b/0237-Use-BLS-version-field-to-compare-entries-if-id-field.patch index bb0b7645..8b3fd3d6 100644 --- a/0237-Use-BLS-version-field-to-compare-entries-if-id-field.patch +++ b/0237-Use-BLS-version-field-to-compare-entries-if-id-field.patch @@ -1,8 +1,8 @@ From 689a48c76bee8049a50f962852f43f108c815450 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Fri, 27 Apr 2018 17:53:41 +0200 -Subject: [PATCH 237/251] Use BLS version field to compare entries if id field - isn't defined +Subject: [PATCH] Use BLS version field to compare entries if id field isn't + defined The BootLoaderSpec fragments generated by OSTree don't have the id field, so grub2 will attempt to sort the entries by using the title field which @@ -27,6 +27,3 @@ index 1e5972422d6..72ee497ea2d 100644 if (rc == 0) rc = bls_keyval_cmp (e0, e1, "title"); --- -2.17.1 - diff --git a/0238-Add-version-field-to-BLS-generated-by-grub2-switch-t.patch b/0238-Add-version-field-to-BLS-generated-by-grub2-switch-t.patch index 9d824203..a0d06aef 100644 --- a/0238-Add-version-field-to-BLS-generated-by-grub2-switch-t.patch +++ b/0238-Add-version-field-to-BLS-generated-by-grub2-switch-t.patch @@ -1,8 +1,7 @@ From 0994be8d655420685d900a08443b4fd53f639e72 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Thu, 10 May 2018 10:52:11 +0200 -Subject: [PATCH 238/251] Add version field to BLS generated by - grub2-switch-to-blscfg +Subject: [PATCH] Add version field to BLS generated by grub2-switch-to-blscfg The version field is present in the BLS fragments that are shipped in the kernel packages, so add it to the BLS generated by grub2-switch-to-blscfg @@ -40,6 +39,3 @@ index bc28053cd30..89487ad611c 100644 linux /vmlinuz-${kernelver} initrd /initramfs-${kernelver}.img options \$kernelopts --- -2.17.1 - diff --git a/0239-Fixup-for-newer-compiler.patch b/0239-Fixup-for-newer-compiler.patch index e3908f33..7bc25d55 100644 --- a/0239-Fixup-for-newer-compiler.patch +++ b/0239-Fixup-for-newer-compiler.patch @@ -1,7 +1,7 @@ From fe5e237fbe38fcbec4018b7e5d328b211bbabb2f Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 10 May 2018 13:40:19 -0400 -Subject: [PATCH 239/251] Fixup for newer compiler +Subject: [PATCH] Fixup for newer compiler --- grub-core/fs/btrfs.c | 2 +- @@ -34,6 +34,3 @@ index 1b32f6725a4..8cddf997efc 100644 grub_err_t grub_gpt_partition_map_iterate (grub_disk_t disk, --- -2.17.1 - diff --git a/0240-Don-t-attempt-to-export-the-start-and-_start-symbols.patch b/0240-Don-t-attempt-to-export-the-start-and-_start-symbols.patch index f804cea8..f92c29f5 100644 --- a/0240-Don-t-attempt-to-export-the-start-and-_start-symbols.patch +++ b/0240-Don-t-attempt-to-export-the-start-and-_start-symbols.patch @@ -1,8 +1,8 @@ From d03f1ebcdf88a1bf850730b9cbd1126894bdca76 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Sat, 12 May 2018 11:29:07 +0200 -Subject: [PATCH 240/251] Don't attempt to export the start and _start symbols - for grub-emu +Subject: [PATCH] Don't attempt to export the start and _start symbols for + grub-emu Commit 318ee04aadc ("make better backtraces") reworked the backtrace logic but the changes lead to the following build error on the grub-emu platform: @@ -40,6 +40,3 @@ index ae69218af20..9548d552aad 100644 /* The start point of the C code. */ void grub_main (void) __attribute__ ((noreturn)); --- -2.17.1 - diff --git a/0241-Simplify-BLS-entry-key-val-pairs-lookup.patch b/0241-Simplify-BLS-entry-key-val-pairs-lookup.patch index d4d29008..b7865b32 100644 --- a/0241-Simplify-BLS-entry-key-val-pairs-lookup.patch +++ b/0241-Simplify-BLS-entry-key-val-pairs-lookup.patch @@ -1,7 +1,7 @@ From 385bb1bd33e9467eda798ea3a4ac16e86a40ce75 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Fri, 11 May 2018 23:47:31 +0200 -Subject: [PATCH 241/251] Simplify BLS entry key val pairs lookup +Subject: [PATCH] Simplify BLS entry key val pairs lookup The pairs found in the BLS are being sorted but this isn't really needed and it makes the implementation complex and error prone. @@ -168,6 +168,3 @@ index 72ee497ea2d..111972d5f67 100644 finish: grub_free (p); --- -2.17.1 - diff --git a/0242-Add-relative-path-to-the-kernel-and-initrds-BLS-fiel.patch b/0242-Add-relative-path-to-the-kernel-and-initrds-BLS-fiel.patch index d99dec8b..dd3abd73 100644 --- a/0242-Add-relative-path-to-the-kernel-and-initrds-BLS-fiel.patch +++ b/0242-Add-relative-path-to-the-kernel-and-initrds-BLS-fiel.patch @@ -1,8 +1,8 @@ From a24ca589707fa69fe7be9dc1007f4ae114994f9f Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Mon, 4 Jun 2018 16:10:22 +0200 -Subject: [PATCH 242/251] Add relative path to the kernel and initrds BLS - fields if needed +Subject: [PATCH] Add relative path to the kernel and initrds BLS fields if + needed The static BLS config file shipped with the kernel package assumes that the /boot directory is a mount point, and that the kernel and initramfs @@ -71,6 +71,3 @@ index 89487ad611c..2482483a437 100644 fi GENERATE=0 --- -2.17.1 - diff --git a/0243-Skip-leading-spaces-on-BLS-field-values.patch b/0243-Skip-leading-spaces-on-BLS-field-values.patch index c896f3a0..6e11d864 100644 --- a/0243-Skip-leading-spaces-on-BLS-field-values.patch +++ b/0243-Skip-leading-spaces-on-BLS-field-values.patch @@ -1,7 +1,7 @@ From a5bf618156915e97a0e7df07556ab728377de77e Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Thu, 7 Jun 2018 00:44:51 +0200 -Subject: [PATCH 243/251] Skip leading spaces on BLS field values +Subject: [PATCH] Skip leading spaces on BLS field values The GRUB 2 blscfg command doesn't parse correctly the BLS fields if these have extra spaces before the field values. For example, the following BLS @@ -54,6 +54,3 @@ index 111972d5f67..cd5c29fdf74 100644 grub_free (buf); if (rc < 0) break; --- -2.17.1 - diff --git a/0244-Fixup-for-newer-compiler.patch b/0244-Fixup-for-newer-compiler.patch index 4c16f96c..249b6194 100644 --- a/0244-Fixup-for-newer-compiler.patch +++ b/0244-Fixup-for-newer-compiler.patch @@ -1,7 +1,7 @@ From df99134313f5571d8806d9121d04b8c8a5509d98 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 10 May 2018 13:40:19 -0400 -Subject: [PATCH 244/251] Fixup for newer compiler +Subject: [PATCH] Fixup for newer compiler --- conf/Makefile.common | 2 +- @@ -20,6 +20,3 @@ index 044ab3abe88..c75848f5c06 100644 CFLAGS_MODULE = $(CFLAGS_PLATFORM) -ffreestanding LDFLAGS_MODULE = $(LDFLAGS_PLATFORM) -nostdlib $(TARGET_LDFLAGS_OLDMAGIC) -Wl,-r,-d --- -2.17.1 - diff --git a/0245-TPM-Fix-hash_log_extend_event-function-prototype.patch b/0245-TPM-Fix-hash_log_extend_event-function-prototype.patch index 28105912..319b33ed 100644 --- a/0245-TPM-Fix-hash_log_extend_event-function-prototype.patch +++ b/0245-TPM-Fix-hash_log_extend_event-function-prototype.patch @@ -1,7 +1,7 @@ From a4fc13ebd23cb7a89ea678ed4e52b5142215671d Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Fri, 15 Jun 2018 09:25:00 +0200 -Subject: [PATCH 245/251] TPM: Fix hash_log_extend_event function prototype +Subject: [PATCH] TPM: Fix hash_log_extend_event function prototype The DataToHash argument is a efi_physical_address, not a *pointer* to a efi_physical_address. @@ -48,6 +48,3 @@ index e2aff4a3c22..63d8a0fe714 100644 grub_efi_uint64_t DataToHashLen, EFI_TCG2_EVENT *EfiTcgEvent); grub_efi_status_t (*submit_command) (struct grub_efi_tpm2_protocol *this, --- -2.17.1 - diff --git a/0246-TPM-Fix-compiler-warnings.patch b/0246-TPM-Fix-compiler-warnings.patch index cce6f1cb..c03c1df3 100644 --- a/0246-TPM-Fix-compiler-warnings.patch +++ b/0246-TPM-Fix-compiler-warnings.patch @@ -1,7 +1,7 @@ From c850916d93293465abc8beb5bdebd0ab70035d88 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Fri, 15 Jun 2018 09:58:50 +0200 -Subject: [PATCH 246/251] TPM: Fix compiler warnings +Subject: [PATCH] TPM: Fix compiler warnings Stop defining our own Event type in tpm.c instead use the one from the header, so that it matches the function prototype. @@ -70,6 +70,3 @@ index 36e1f69df16..0d3ebe22e57 100644 algorithm, event, &eventnum, &lastevent); switch (status) { --- -2.17.1 - diff --git a/0247-grub-switch-to-blscfg.in-get-rid-of-a-bunch-of-bashi.patch b/0247-grub-switch-to-blscfg.in-get-rid-of-a-bunch-of-bashi.patch index 87b3166a..1ad27ef8 100644 --- a/0247-grub-switch-to-blscfg.in-get-rid-of-a-bunch-of-bashi.patch +++ b/0247-grub-switch-to-blscfg.in-get-rid-of-a-bunch-of-bashi.patch @@ -1,8 +1,7 @@ From cee0bf1f56c89af640b23432f8b40fcd1f4a2f55 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 22 Jun 2018 14:01:06 -0400 -Subject: [PATCH 247/251] grub-switch-to-blscfg.in: get rid of a bunch of - bashisms +Subject: [PATCH] grub-switch-to-blscfg.in: get rid of a bunch of bashisms Since this says /bin/sh at the top, it should work with dash. @@ -112,6 +111,3 @@ index 2482483a437..dac41e73836 100644 cp -af "${GRUB_CONFIG_FILE}" "${GRUB_CONFIG_FILE}${backupsuffix}" if ! grub2-mkconfig -o "${GRUB_CONFIG_FILE}" ; then cp -af "${GRUB_CONFIG_FILE}${backupsuffix}" "${GRUB_CONFIG_FILE}" --- -2.17.1 - diff --git a/0248-grub-switch-to-blscfg.in-Better-boot-prefix-checking.patch b/0248-grub-switch-to-blscfg.in-Better-boot-prefix-checking.patch index c3773547..d25f902e 100644 --- a/0248-grub-switch-to-blscfg.in-Better-boot-prefix-checking.patch +++ b/0248-grub-switch-to-blscfg.in-Better-boot-prefix-checking.patch @@ -1,7 +1,7 @@ From b3ac18e3265f709b35fe0aa5578c6f4030882a4d Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 22 Jun 2018 14:04:28 -0400 -Subject: [PATCH 248/251] grub-switch-to-blscfg.in: Better boot prefix checking +Subject: [PATCH] grub-switch-to-blscfg.in: Better boot prefix checking Signed-off-by: Peter Jones --- @@ -71,6 +71,3 @@ index dac41e73836..884cf45b1e1 100644 mkbls "0-rescue-${MACHINE_ID}" "0" "${bootprefix}" >"${blsdir}/${MACHINE_ID}-0-rescue.conf" fi --- -2.17.1 - diff --git a/0249-Use-boot-loader-entries-as-BLS-directory-path-also-o.patch b/0249-Use-boot-loader-entries-as-BLS-directory-path-also-o.patch index 0fe81f3f..c10f1010 100644 --- a/0249-Use-boot-loader-entries-as-BLS-directory-path-also-o.patch +++ b/0249-Use-boot-loader-entries-as-BLS-directory-path-also-o.patch @@ -1,8 +1,8 @@ From fc5abde941409619f8c40b842e35e1820d4327dc Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Mon, 25 Jun 2018 11:45:33 +0200 -Subject: [PATCH 249/251] Use /boot/loader/entries as BLS directory path also - on EFI systems +Subject: [PATCH] Use /boot/loader/entries as BLS directory path also on EFI + systems For EFI systems, the BLS fragments were stored in the EFI System Partition (ESP) while in non-EFI systems it was stored in /boot. @@ -150,6 +150,3 @@ index 884cf45b1e1..2f37a1f740b 100644 backupsuffix=.bak export TEXTDOMAIN=@PACKAGE@ --- -2.17.1 - diff --git a/0250-Use-BLS-fragment-filename-as-menu-entry-id-and-for-c.patch b/0250-Use-BLS-fragment-filename-as-menu-entry-id-and-for-c.patch index f733bb42..5c6a5035 100644 --- a/0250-Use-BLS-fragment-filename-as-menu-entry-id-and-for-c.patch +++ b/0250-Use-BLS-fragment-filename-as-menu-entry-id-and-for-c.patch @@ -1,8 +1,8 @@ From cc110d5dfd58a6ac1320f8b7c27b7ff8852c40e6 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 26 Jun 2018 14:01:26 +0200 -Subject: [PATCH 250/251] Use BLS fragment filename as menu entry id and for - criteria to sort +Subject: [PATCH] Use BLS fragment filename as menu entry id and for criteria + to sort The BLS config filenames are guaranteed to be unique, so they can be used as GRUB2 entry id and can also be used to sort the menu entries. @@ -132,6 +132,3 @@ index 11fe6e2c29f..23d15adfadc 100644 if (initrds) { int initrd_size = sizeof (GRUB_INITRD_CMD); --- -2.17.1 - diff --git a/0251-Fix-grub-switch-to-blscfg-boot-prefix-handling.patch b/0251-Fix-grub-switch-to-blscfg-boot-prefix-handling.patch index 255c6584..2d9c91ce 100644 --- a/0251-Fix-grub-switch-to-blscfg-boot-prefix-handling.patch +++ b/0251-Fix-grub-switch-to-blscfg-boot-prefix-handling.patch @@ -1,7 +1,7 @@ From 7065436d1c086d15933f76b7f490bcb5d094c9af Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Mon, 9 Jul 2018 12:19:03 +0200 -Subject: [PATCH 251/251] Fix grub-switch-to-blscfg boot prefix handling +Subject: [PATCH] Fix grub-switch-to-blscfg boot prefix handling Commit b3ac18e3265f ("grub-switch-to-blscfg.in: Better boot prefix checking") simplified the boot prefix checking, but unfortunately introduced a couple of @@ -56,6 +56,3 @@ index 2f37a1f740b..40612e00686 100644 mkbls "0-rescue-${MACHINE_ID}" "0" "${bootprefix}" >"${blsdir}/${MACHINE_ID}-0-rescue.conf" fi --- -2.17.1 - diff --git a/10002-Make-it-possible-to-enabled-build-id-sha1.patch b/10002-Make-it-possible-to-enabled-build-id-sha1.patch index 1f100e3e..3a9e044b 100644 --- a/10002-Make-it-possible-to-enabled-build-id-sha1.patch +++ b/10002-Make-it-possible-to-enabled-build-id-sha1.patch @@ -59,6 +59,3 @@ index d6ef6c3..3e897bd 100644 if test "x$target_cpu" = xi386; then if test "$platform" != emu && test "x$TARGET_APPLE_LINKER" != x1 ; then if test ! -z "$TARGET_IMG_LDSCRIPT"; then --- -2.5.0 - diff --git a/do-rebase b/do-rebase index 7fdae456..b83009f1 100755 --- a/do-rebase +++ b/do-rebase @@ -6,7 +6,7 @@ shopt -qs expand_aliases export LC_COLLATE=C export LC_ALL=C -format_patch_ops="--stat=80 --summary -O.git.diff.order --patience -l0" +format_patch_ops="--zero-commit --no-signature --no-numbered --stat=80 --summary -O.git.diff.order --patience -l0" alias othergit="GIT_DIR=$PWD/.rhboot.git GIT_WORK_TREE=$PWD git" alias formatpatch="othergit format-patch $format_patch_ops" @@ -17,7 +17,8 @@ usage() exec 1>&2 retcode=$1 fi - echo usage: do-rebase \$releasever \$gitrepo + echo usage: "do-rebase [OPTIONS] [--dist RELEASEVER | RELEASEVER ] [GITREPO]" + echo OPTIONS: --dist=RELEASEVER --repo=REPO --amend --nocommit --nobumpspec exit $retcode } @@ -29,6 +30,8 @@ fi gitrepo="git@github.com:rhboot/grub2.git" releasever="" amend="" +commit=1 +bumpspec=1 declare -a savedargs savedargs=() @@ -54,6 +57,21 @@ while [ $# -gt 0 ]; do --amend) amend="--amend" ;; + --commit) + commit=1 + ;; + --nocommit|--no-commit|--nc) + # --nocommit implies nobumpspec, but --bumpspec after it will + # force bumpspec to get run. + commit=0 + bumpspec=0 + ;; + --bumpspec) + bumpspec=2 + ;; + --nobumpspec|--no-bumpspec|--nb) + bumpspec=0 + ;; *) savedargs[${#savedargs[@]}]="$1" ;; @@ -121,6 +139,8 @@ elif othergit remote show -n rhboot | grep -q "URL: github$" ; then echo "Could not add remote: rhboot" 1>&2 exit 1 fi +else + othergit remote set-url rhboot ${gitrepo} fi othergit fetch rhboot @@ -133,17 +153,23 @@ fi unset LC_ALL git rm -q 0*.patch +> release-to-master.patch +othergit diff --full-index --binary grub-2.02..f28-branchpoint > release-to-master.patch +git add release-to-master.patch + > grub.patches -patches=$(formatpatch grub-2.02..refs/remotes/rhboot/${releasever}) +patches=$(formatpatch f28-branchpoint..refs/remotes/rhboot/${releasever}) for x in $patches ; do echo Patch$(echo ${x} | cut -d- -f1): ${x} >> grub.patches done -if [ -z "$amend" ]; then +if [[ -z "$amend" && ${bumpspec} -gt 0 ]] || [[ ${bumpspec} -ge 2 ]] ; then rpmdev-bumpspec -c "- Rebased to newer upstream for ${releasever}" grub2.spec fi git add 0*.patch grub2.spec grub.patches -if [ -z "$amend" ]; then - fedpkg commit -s -c $amend -else - git commit --amend +if [[ ${commit} -eq 1 ]] ; then + if [ -z "$amend" ]; then + fedpkg commit -s -c + else + git commit --amend + fi fi diff --git a/grub.macros b/grub.macros index d8b4b61f..fff33ef3 100644 --- a/grub.macros +++ b/grub.macros @@ -284,11 +284,19 @@ echo '!config.h' > include/grub/emu/.gitignore \ git config user.email "%{name}-owner@fedoraproject.org" \ git config user.name "Fedora Ninjas" \ git config gc.auto 0 \ -git add . \ -git commit -a -q -m "%{tarversion} baseline." \ -git am %%{patches} . ++ */ ++ ++#include ++#include ++#include ++ ++static const void *dtb; ++static grub_size_t root_address_cells, root_size_cells; ++/* Pointer to this symbol signals invalid mapping. */ ++char grub_fdtbus_invalid_mapping[1]; ++ ++struct grub_fdtbus_dev *devs; ++struct grub_fdtbus_driver *drivers; ++ ++int ++grub_fdtbus_is_compatible (const char *compat_string, ++ const struct grub_fdtbus_dev *dev) ++{ ++ grub_size_t compatible_size; ++ const char *compatible = grub_fdt_get_prop (dtb, dev->node, "compatible", ++ &compatible_size); ++ if (!compatible) ++ return 0; ++ const char *compatible_end = compatible + compatible_size; ++ while (compatible < compatible_end) ++ { ++ if (grub_strcmp (compat_string, compatible) == 0) ++ return 1; ++ compatible += grub_strlen (compatible) + 1; ++ } ++ return 0; ++} ++ ++static void ++fdtbus_scan (struct grub_fdtbus_dev *parent) ++{ ++ int node; ++ for (node = grub_fdt_first_node (dtb, parent ? parent->node : 0); node >= 0; ++ node = grub_fdt_next_node (dtb, node)) ++ { ++ struct grub_fdtbus_dev *dev; ++ struct grub_fdtbus_driver *driver; ++ dev = grub_zalloc (sizeof (*dev)); ++ if (!dev) ++ { ++ grub_print_error (); ++ return; ++ } ++ dev->node = node; ++ dev->next = devs; ++ dev->parent = parent; ++ devs = dev; ++ FOR_LIST_ELEMENTS(driver, drivers) ++ if (!dev->driver && grub_fdtbus_is_compatible (driver->compatible, dev)) ++ { ++ grub_dprintf ("fdtbus", "Attaching %s\n", driver->compatible); ++ if (driver->attach (dev) == GRUB_ERR_NONE) ++ { ++ grub_dprintf ("fdtbus", "Attached %s\n", driver->compatible); ++ dev->driver = driver; ++ break; ++ } ++ grub_print_error (); ++ } ++ fdtbus_scan (dev); ++ } ++} ++ ++void ++grub_fdtbus_register (struct grub_fdtbus_driver *driver) ++{ ++ struct grub_fdtbus_dev *dev; ++ grub_dprintf ("fdtbus", "Registering %s\n", driver->compatible); ++ grub_list_push (GRUB_AS_LIST_P (&drivers), ++ GRUB_AS_LIST (driver)); ++ for (dev = devs; dev; dev = dev->next) ++ if (!dev->driver && grub_fdtbus_is_compatible (driver->compatible, dev)) ++ { ++ grub_dprintf ("fdtbus", "Attaching %s (%p)\n", driver->compatible, dev); ++ if (driver->attach (dev) == GRUB_ERR_NONE) ++ { ++ grub_dprintf ("fdtbus", "Attached %s\n", driver->compatible); ++ dev->driver = driver; ++ } ++ grub_print_error (); ++ } ++} ++ ++void ++grub_fdtbus_unregister (struct grub_fdtbus_driver *driver) ++{ ++ grub_list_remove (GRUB_AS_LIST (driver)); ++ struct grub_fdtbus_dev *dev; ++ for (dev = devs; dev; dev = dev->next) ++ if (dev->driver == driver) ++ { ++ if (driver->detach) ++ driver->detach(dev); ++ dev->driver = 0; ++ } ++} ++ ++void ++grub_fdtbus_init (const void *dtb_in, grub_size_t size) ++{ ++ if (!dtb_in || grub_fdt_check_header (dtb_in, size) < 0) ++ grub_fatal ("invalid FDT"); ++ dtb = dtb_in; ++ const grub_uint32_t *prop = grub_fdt_get_prop (dtb, 0, "#address-cells", 0); ++ if (prop) ++ root_address_cells = grub_be_to_cpu32 (*prop); ++ else ++ root_address_cells = 1; ++ ++ prop = grub_fdt_get_prop (dtb, 0, "#size-cells", 0); ++ if (prop) ++ root_size_cells = grub_be_to_cpu32 (*prop); ++ else ++ root_size_cells = 1; ++ ++ fdtbus_scan (0); ++} ++ ++static int ++get_address_cells (const struct grub_fdtbus_dev *dev) ++{ ++ const grub_uint32_t *prop; ++ if (!dev) ++ return root_address_cells; ++ prop = grub_fdt_get_prop (dtb, dev->node, "#address-cells", 0); ++ if (prop) ++ return grub_be_to_cpu32 (*prop); ++ return 1; ++} ++ ++static int ++get_size_cells (const struct grub_fdtbus_dev *dev) ++{ ++ const grub_uint32_t *prop; ++ if (!dev) ++ return root_size_cells; ++ prop = grub_fdt_get_prop (dtb, dev->node, "#size-cells", 0); ++ if (prop) ++ return grub_be_to_cpu32 (*prop); ++ return 1; ++} ++ ++static grub_uint64_t ++get64 (const grub_uint32_t *reg, grub_size_t cells) ++{ ++ grub_uint64_t val = 0; ++ if (cells >= 1) ++ val = grub_be_to_cpu32 (reg[cells - 1]); ++ if (cells >= 2) ++ val |= ((grub_uint64_t) grub_be_to_cpu32 (reg[cells - 2])) << 32; ++ return val; ++} ++ ++static volatile void * ++translate (const struct grub_fdtbus_dev *dev, const grub_uint32_t *reg) ++{ ++ volatile void *ret; ++ const grub_uint32_t *ranges; ++ grub_size_t ranges_size, cells_per_mapping; ++ grub_size_t parent_address_cells, child_address_cells, child_size_cells; ++ grub_size_t nmappings, i; ++ if (dev == 0) ++ { ++ grub_uint64_t val; ++ val = get64 (reg, root_address_cells); ++ if (sizeof (void *) == 4 && (val >> 32)) ++ return grub_fdtbus_invalid_mapping; ++ return (void *) (grub_addr_t) val; ++ } ++ ranges = grub_fdt_get_prop (dtb, dev->node, "ranges", &ranges_size); ++ if (!ranges) ++ return grub_fdtbus_invalid_mapping; ++ if (ranges_size == 0) ++ return translate (dev->parent, reg); ++ parent_address_cells = get_address_cells (dev->parent); ++ child_address_cells = get_address_cells (dev); ++ child_size_cells = get_size_cells (dev); ++ cells_per_mapping = parent_address_cells + child_address_cells + child_size_cells; ++ nmappings = ranges_size / 4 / cells_per_mapping; ++ for (i = 0; i < nmappings; i++) ++ { ++ const grub_uint32_t *child_addr = &ranges[i * cells_per_mapping]; ++ const grub_uint32_t *parent_addr = child_addr + child_address_cells; ++ grub_uint64_t child_size = get64 (parent_addr + parent_address_cells, child_size_cells); ++ ++ if (child_address_cells > 2 && grub_memcmp (reg, child_addr, (child_address_cells - 2) * 4) != 0) ++ continue; ++ if (get64 (reg, child_address_cells) < get64 (child_addr, child_address_cells)) ++ continue; ++ ++ grub_uint64_t offset = get64 (reg, child_address_cells) - get64 (child_addr, child_address_cells); ++ if (offset >= child_size) ++ continue; ++ ++ ret = translate (dev->parent, parent_addr); ++ if (grub_fdtbus_is_mapping_valid (ret)) ++ ret = (volatile char *) ret + offset; ++ return ret; ++ } ++ return grub_fdtbus_invalid_mapping; ++} ++ ++volatile void * ++grub_fdtbus_map_reg (const struct grub_fdtbus_dev *dev, int regno, grub_size_t *size) ++{ ++ grub_size_t address_cells, size_cells; ++ address_cells = get_address_cells (dev->parent); ++ size_cells = get_size_cells (dev->parent); ++ const grub_uint32_t *reg = grub_fdt_get_prop (dtb, dev->node, "reg", 0); ++ if (size && size_cells) ++ *size = reg[(address_cells + size_cells) * regno + address_cells]; ++ if (size && !size_cells) ++ *size = 0; ++ return translate (dev->parent, reg + (address_cells + size_cells) * regno); ++} ++ ++const char * ++grub_fdtbus_get_name (const struct grub_fdtbus_dev *dev) ++{ ++ return grub_fdt_get_nodename (dtb, dev->node); ++} ++ ++const void * ++grub_fdtbus_get_prop (const struct grub_fdtbus_dev *dev, ++ const char *name, ++ grub_uint32_t *len) ++{ ++ return grub_fdt_get_prop (dtb, dev->node, name, len); ++} ++ ++const void * ++grub_fdtbus_get_fdt (void) ++{ ++ return dtb; ++} +diff --git a/grub-core/bus/spi/rk3288_spi.c b/grub-core/bus/spi/rk3288_spi.c +new file mode 100644 +index 0000000000000000000000000000000000000000..aacb79ffef103bdbff1bb66dd70229b85b1e8030 +--- /dev/null ++++ b/grub-core/bus/spi/rk3288_spi.c +@@ -0,0 +1,103 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * ++ * Copyright (C) 2012 Google Inc. ++ * Copyright (C) 2016 Free Software Foundation, Inc. ++ * ++ * This is based on depthcharge code. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++static grub_err_t ++spi_send (const struct grub_fdtbus_dev *dev, const void *data, grub_size_t sz) ++{ ++ const grub_uint8_t *ptr = data, *end = ptr + sz; ++ volatile grub_uint32_t *spi = grub_fdtbus_map_reg (dev, 0, 0); ++ spi[2] = 0; ++ spi[1] = sz - 1; ++ spi[0] = ((1 << 18) | spi[0]) & ~(1 << 19); ++ spi[2] = 1; ++ while (ptr < end) ++ { ++ while (spi[9] & 2); ++ spi[256] = *ptr++; ++ } ++ while (spi[9] & 1); ++ return GRUB_ERR_NONE; ++} ++ ++static grub_err_t ++spi_receive (const struct grub_fdtbus_dev *dev, void *data, grub_size_t sz) ++{ ++ grub_uint8_t *ptr = data, *end = ptr + sz; ++ volatile grub_uint32_t *spi = grub_fdtbus_map_reg (dev, 0, 0); ++ spi[2] = 0; ++ spi[1] = sz - 1; ++ spi[0] = ((1 << 19) | spi[0]) & ~(1 << 18); ++ spi[2] = 1; ++ while (ptr < end) ++ { ++ while (spi[9] & 8); ++ *ptr++ = spi[512]; ++ } ++ while (spi[9] & 1); ++ return GRUB_ERR_NONE; ++} ++ ++static grub_err_t ++spi_start (const struct grub_fdtbus_dev *dev) ++{ ++ volatile grub_uint32_t *spi = grub_fdtbus_map_reg (dev, 0, 0); ++ spi[3] = 1; ++ return GRUB_ERR_NONE; ++} ++ ++static void ++spi_stop (const struct grub_fdtbus_dev *dev) ++{ ++ volatile grub_uint32_t *spi = grub_fdtbus_map_reg (dev, 0, 0); ++ spi[3] = 0; ++} ++ ++static grub_err_t ++spi_attach(const struct grub_fdtbus_dev *dev) ++{ ++ if (!grub_fdtbus_is_mapping_valid (grub_fdtbus_map_reg (dev, 0, 0))) ++ return GRUB_ERR_IO; ++ ++ return GRUB_ERR_NONE; ++} ++ ++static struct grub_fdtbus_driver spi = ++{ ++ .compatible = "rockchip,rk3288-spi", ++ .attach = spi_attach, ++ .send = spi_send, ++ .receive = spi_receive, ++ .start = spi_start, ++ .stop = spi_stop, ++}; ++ ++void ++grub_rk3288_spi_init (void) ++{ ++ grub_fdtbus_register (&spi); ++} +diff --git a/grub-core/bus/usb/ehci-fdt.c b/grub-core/bus/usb/ehci-fdt.c +new file mode 100644 +index 0000000000000000000000000000000000000000..29b50bdd5c30d192cc3cba1d7f466a9bcf321d92 +--- /dev/null ++++ b/grub-core/bus/usb/ehci-fdt.c +@@ -0,0 +1,45 @@ ++/* ehci.c - EHCI Support. */ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2011 Free Software Foundation, Inc. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++static grub_err_t ++ehci_attach(const struct grub_fdtbus_dev *dev) ++{ ++ grub_dprintf ("ehci", "Found generic-ehci\n"); ++ ++ grub_ehci_init_device (grub_fdtbus_map_reg (dev, 0, 0)); ++ return 0; ++} ++ ++struct grub_fdtbus_driver ehci = ++{ ++ .compatible = "generic-ehci", ++ .attach = ehci_attach ++}; ++ ++void ++grub_ehci_pci_scan (void) ++{ ++ grub_fdtbus_register (&ehci); ++} +diff --git a/grub-core/bus/usb/ehci-pci.c b/grub-core/bus/usb/ehci-pci.c +new file mode 100644 +index 0000000000000000000000000000000000000000..65e6cb57438b7dfa35b80bbbe36a1e50629f025f +--- /dev/null ++++ b/grub-core/bus/usb/ehci-pci.c +@@ -0,0 +1,208 @@ ++/* ehci.c - EHCI Support. */ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2011 Free Software Foundation, Inc. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#define GRUB_EHCI_PCI_SBRN_REG 0x60 ++#define GRUB_EHCI_ADDR_MEM_MASK (~0xff) ++ ++/* USBLEGSUP bits and related OS OWNED byte offset */ ++enum ++{ ++ GRUB_EHCI_BIOS_OWNED = (1 << 16), ++ GRUB_EHCI_OS_OWNED = (1 << 24) ++}; ++ ++/* PCI iteration function... */ ++static int ++grub_ehci_pci_iter (grub_pci_device_t dev, grub_pci_id_t pciid, ++ void *data __attribute__ ((unused))) ++{ ++ volatile grub_uint32_t *regs; ++ grub_uint32_t base, base_h; ++ grub_uint32_t eecp_offset; ++ grub_uint32_t usblegsup = 0; ++ grub_uint64_t maxtime; ++ grub_uint32_t interf; ++ grub_uint32_t subclass; ++ grub_uint32_t class; ++ grub_uint8_t release; ++ grub_uint32_t class_code; ++ ++ grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: begin\n"); ++ ++ if (pciid == GRUB_CS5536_PCIID) ++ { ++ grub_uint64_t basereg; ++ ++ basereg = grub_cs5536_read_msr (dev, GRUB_CS5536_MSR_USB_EHCI_BASE); ++ if (!(basereg & GRUB_CS5536_MSR_USB_BASE_MEMORY_ENABLE)) ++ { ++ /* Shouldn't happen. */ ++ grub_dprintf ("ehci", "No EHCI address is assigned\n"); ++ return 0; ++ } ++ base = (basereg & GRUB_CS5536_MSR_USB_BASE_ADDR_MASK); ++ basereg |= GRUB_CS5536_MSR_USB_BASE_BUS_MASTER; ++ basereg &= ~GRUB_CS5536_MSR_USB_BASE_PME_ENABLED; ++ basereg &= ~GRUB_CS5536_MSR_USB_BASE_PME_STATUS; ++ basereg &= ~GRUB_CS5536_MSR_USB_BASE_SMI_ENABLE; ++ grub_cs5536_write_msr (dev, GRUB_CS5536_MSR_USB_EHCI_BASE, basereg); ++ } ++ else ++ { ++ grub_pci_address_t addr; ++ addr = grub_pci_make_address (dev, GRUB_PCI_REG_CLASS); ++ class_code = grub_pci_read (addr) >> 8; ++ interf = class_code & 0xFF; ++ subclass = (class_code >> 8) & 0xFF; ++ class = class_code >> 16; ++ ++ /* If this is not an EHCI controller, just return. */ ++ if (class != 0x0c || subclass != 0x03 || interf != 0x20) ++ return 0; ++ ++ grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: class OK\n"); ++ ++ /* Check Serial Bus Release Number */ ++ addr = grub_pci_make_address (dev, GRUB_EHCI_PCI_SBRN_REG); ++ release = grub_pci_read_byte (addr); ++ if (release != 0x20) ++ { ++ grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: Wrong SBRN: %0x\n", ++ release); ++ return 0; ++ } ++ grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: bus rev. num. OK\n"); ++ ++ /* Determine EHCI EHCC registers base address. */ ++ addr = grub_pci_make_address (dev, GRUB_PCI_REG_ADDRESS_REG0); ++ base = grub_pci_read (addr); ++ addr = grub_pci_make_address (dev, GRUB_PCI_REG_ADDRESS_REG1); ++ base_h = grub_pci_read (addr); ++ /* Stop if registers are mapped above 4G - GRUB does not currently ++ * work with registers mapped above 4G */ ++ if (((base & GRUB_PCI_ADDR_MEM_TYPE_MASK) != GRUB_PCI_ADDR_MEM_TYPE_32) ++ && (base_h != 0)) ++ { ++ grub_dprintf ("ehci", ++ "EHCI grub_ehci_pci_iter: registers above 4G are not supported\n"); ++ return 0; ++ } ++ base &= GRUB_PCI_ADDR_MEM_MASK; ++ if (!base) ++ { ++ grub_dprintf ("ehci", ++ "EHCI: EHCI is not mapped\n"); ++ return 0; ++ } ++ ++ /* Set bus master - needed for coreboot, VMware, broken BIOSes etc. */ ++ addr = grub_pci_make_address (dev, GRUB_PCI_REG_COMMAND); ++ grub_pci_write_word(addr, ++ GRUB_PCI_COMMAND_MEM_ENABLED ++ | GRUB_PCI_COMMAND_BUS_MASTER ++ | grub_pci_read_word(addr)); ++ ++ grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: 32-bit EHCI OK\n"); ++ } ++ ++ grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: iobase of EHCC: %08x\n", ++ (base & GRUB_EHCI_ADDR_MEM_MASK)); ++ ++ regs = grub_pci_device_map_range (dev, ++ (base & GRUB_EHCI_ADDR_MEM_MASK), ++ 0x100); ++ ++ /* Is there EECP ? */ ++ eecp_offset = (grub_le_to_cpu32 (regs[2]) >> 8) & 0xff; ++ ++ /* Determine and change ownership. */ ++ /* EECP offset valid in HCCPARAMS */ ++ /* Ownership can be changed via EECP only */ ++ if (pciid != GRUB_CS5536_PCIID && eecp_offset >= 0x40) ++ { ++ grub_pci_address_t pciaddr_eecp; ++ pciaddr_eecp = grub_pci_make_address (dev, eecp_offset); ++ ++ usblegsup = grub_pci_read (pciaddr_eecp); ++ if (usblegsup & GRUB_EHCI_BIOS_OWNED) ++ { ++ grub_boot_time ("Taking ownership of EHCI controller"); ++ grub_dprintf ("ehci", ++ "EHCI grub_ehci_pci_iter: EHCI owned by: BIOS\n"); ++ /* Ownership change - set OS_OWNED bit */ ++ grub_pci_write (pciaddr_eecp, usblegsup | GRUB_EHCI_OS_OWNED); ++ /* Ensure PCI register is written */ ++ grub_pci_read (pciaddr_eecp); ++ ++ /* Wait for finish of ownership change, EHCI specification ++ * doesn't say how long it can take... */ ++ maxtime = grub_get_time_ms () + 1000; ++ while ((grub_pci_read (pciaddr_eecp) & GRUB_EHCI_BIOS_OWNED) ++ && (grub_get_time_ms () < maxtime)); ++ if (grub_pci_read (pciaddr_eecp) & GRUB_EHCI_BIOS_OWNED) ++ { ++ grub_dprintf ("ehci", ++ "EHCI grub_ehci_pci_iter: EHCI change ownership timeout"); ++ /* Change ownership in "hard way" - reset BIOS ownership */ ++ grub_pci_write (pciaddr_eecp, GRUB_EHCI_OS_OWNED); ++ /* Ensure PCI register is written */ ++ grub_pci_read (pciaddr_eecp); ++ } ++ } ++ else if (usblegsup & GRUB_EHCI_OS_OWNED) ++ /* XXX: What to do in this case - nothing ? Can it happen ? */ ++ grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: EHCI owned by: OS\n"); ++ else ++ { ++ grub_dprintf ("ehci", ++ "EHCI grub_ehci_pci_iter: EHCI owned by: NONE\n"); ++ /* XXX: What to do in this case ? Can it happen ? ++ * Is code below correct ? */ ++ /* Ownership change - set OS_OWNED bit */ ++ grub_pci_write (pciaddr_eecp, GRUB_EHCI_OS_OWNED); ++ /* Ensure PCI register is written */ ++ grub_pci_read (pciaddr_eecp); ++ } ++ ++ /* Disable SMI, just to be sure. */ ++ pciaddr_eecp = grub_pci_make_address (dev, eecp_offset + 4); ++ grub_pci_write (pciaddr_eecp, 0); ++ /* Ensure PCI register is written */ ++ grub_pci_read (pciaddr_eecp); ++ } ++ ++ grub_dprintf ("ehci", "inithw: EHCI grub_ehci_pci_iter: ownership OK\n"); ++ ++ grub_ehci_init_device (regs); ++ return 0; ++} ++ ++void ++grub_ehci_pci_scan (void) ++{ ++ grub_pci_iterate (grub_ehci_pci_iter, NULL); ++} +diff --git a/grub-core/bus/usb/ehci.c b/grub-core/bus/usb/ehci.c +index 5f4297bb21ec4c28824abb0c442a87a3dd4a872e..d966fc21002602fab3f1b68668ddcb5bfa639442 100644 +--- a/grub-core/bus/usb/ehci.c ++++ b/grub-core/bus/usb/ehci.c +@@ -22,13 +22,10 @@ + #include + #include + #include +-#include +-#include +-#include + #include + #include +-#include + #include ++#include + #include + + GRUB_MOD_LICENSE ("GPLv3+"); +@@ -39,8 +36,6 @@ GRUB_MOD_LICENSE ("GPLv3+"); + * - is not supporting interrupt transfers + */ + +-#define GRUB_EHCI_PCI_SBRN_REG 0x60 +- + /* Capability registers offsets */ + enum + { +@@ -54,7 +49,6 @@ enum + #define GRUB_EHCI_EECP_MASK (0xff << 8) + #define GRUB_EHCI_EECP_SHIFT 8 + +-#define GRUB_EHCI_ADDR_MEM_MASK (~0xff) + #define GRUB_EHCI_POINTER_MASK (~0x1f) + + /* Capability register SPARAMS bits */ +@@ -85,13 +79,6 @@ enum + + #define GRUB_EHCI_QH_EMPTY 1 + +-/* USBLEGSUP bits and related OS OWNED byte offset */ +-enum +-{ +- GRUB_EHCI_BIOS_OWNED = (1 << 16), +- GRUB_EHCI_OS_OWNED = (1 << 24) +-}; +- + /* Operational registers offsets */ + enum + { +@@ -455,9 +442,10 @@ grub_ehci_reset (struct grub_ehci *e) + + sync_all_caches (e); + ++ grub_dprintf ("ehci", "reset\n"); ++ + grub_ehci_oper_write32 (e, GRUB_EHCI_COMMAND, +- GRUB_EHCI_CMD_HC_RESET +- | grub_ehci_oper_read32 (e, GRUB_EHCI_COMMAND)); ++ GRUB_EHCI_CMD_HC_RESET); + /* Ensure command is written */ + grub_ehci_oper_read32 (e, GRUB_EHCI_COMMAND); + /* XXX: How long time could take reset of HC ? */ +@@ -473,116 +461,24 @@ grub_ehci_reset (struct grub_ehci *e) + } + + /* PCI iteration function... */ +-static int +-grub_ehci_pci_iter (grub_pci_device_t dev, grub_pci_id_t pciid, +- void *data __attribute__ ((unused))) ++void ++grub_ehci_init_device (volatile void *regs) + { +- grub_uint8_t release; +- grub_uint32_t class_code; +- grub_uint32_t interf; +- grub_uint32_t subclass; +- grub_uint32_t class; +- grub_uint32_t base, base_h; + struct grub_ehci *e; +- grub_uint32_t eecp_offset; + grub_uint32_t fp; + int i; +- grub_uint32_t usblegsup = 0; +- grub_uint64_t maxtime; + grub_uint32_t n_ports; + grub_uint8_t caplen; + +- grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: begin\n"); +- +- if (pciid == GRUB_CS5536_PCIID) +- { +- grub_uint64_t basereg; +- +- basereg = grub_cs5536_read_msr (dev, GRUB_CS5536_MSR_USB_EHCI_BASE); +- if (!(basereg & GRUB_CS5536_MSR_USB_BASE_MEMORY_ENABLE)) +- { +- /* Shouldn't happen. */ +- grub_dprintf ("ehci", "No EHCI address is assigned\n"); +- return 0; +- } +- base = (basereg & GRUB_CS5536_MSR_USB_BASE_ADDR_MASK); +- basereg |= GRUB_CS5536_MSR_USB_BASE_BUS_MASTER; +- basereg &= ~GRUB_CS5536_MSR_USB_BASE_PME_ENABLED; +- basereg &= ~GRUB_CS5536_MSR_USB_BASE_PME_STATUS; +- basereg &= ~GRUB_CS5536_MSR_USB_BASE_SMI_ENABLE; +- grub_cs5536_write_msr (dev, GRUB_CS5536_MSR_USB_EHCI_BASE, basereg); +- } +- else +- { +- grub_pci_address_t addr; +- addr = grub_pci_make_address (dev, GRUB_PCI_REG_CLASS); +- class_code = grub_pci_read (addr) >> 8; +- interf = class_code & 0xFF; +- subclass = (class_code >> 8) & 0xFF; +- class = class_code >> 16; +- +- /* If this is not an EHCI controller, just return. */ +- if (class != 0x0c || subclass != 0x03 || interf != 0x20) +- return 0; +- +- grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: class OK\n"); +- +- /* Check Serial Bus Release Number */ +- addr = grub_pci_make_address (dev, GRUB_EHCI_PCI_SBRN_REG); +- release = grub_pci_read_byte (addr); +- if (release != 0x20) +- { +- grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: Wrong SBRN: %0x\n", +- release); +- return 0; +- } +- grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: bus rev. num. OK\n"); +- +- /* Determine EHCI EHCC registers base address. */ +- addr = grub_pci_make_address (dev, GRUB_PCI_REG_ADDRESS_REG0); +- base = grub_pci_read (addr); +- addr = grub_pci_make_address (dev, GRUB_PCI_REG_ADDRESS_REG1); +- base_h = grub_pci_read (addr); +- /* Stop if registers are mapped above 4G - GRUB does not currently +- * work with registers mapped above 4G */ +- if (((base & GRUB_PCI_ADDR_MEM_TYPE_MASK) != GRUB_PCI_ADDR_MEM_TYPE_32) +- && (base_h != 0)) +- { +- grub_dprintf ("ehci", +- "EHCI grub_ehci_pci_iter: registers above 4G are not supported\n"); +- return 0; +- } +- base &= GRUB_PCI_ADDR_MEM_MASK; +- if (!base) +- { +- grub_dprintf ("ehci", +- "EHCI: EHCI is not mapped\n"); +- return 0; +- } +- +- /* Set bus master - needed for coreboot, VMware, broken BIOSes etc. */ +- addr = grub_pci_make_address (dev, GRUB_PCI_REG_COMMAND); +- grub_pci_write_word(addr, +- GRUB_PCI_COMMAND_MEM_ENABLED +- | GRUB_PCI_COMMAND_BUS_MASTER +- | grub_pci_read_word(addr)); +- +- grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: 32-bit EHCI OK\n"); +- } +- + /* Allocate memory for the controller and fill basic values. */ + e = grub_zalloc (sizeof (*e)); + if (!e) +- return 1; ++ return; + e->framelist_chunk = NULL; + e->td_chunk = NULL; + e->qh_chunk = NULL; +- e->iobase_ehcc = grub_pci_device_map_range (dev, +- (base & GRUB_EHCI_ADDR_MEM_MASK), +- 0x100); ++ e->iobase_ehcc = regs; + +- grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: iobase of EHCC: %08x\n", +- (base & GRUB_EHCI_ADDR_MEM_MASK)); + grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: CAPLEN: %02x\n", + grub_ehci_ehcc_read8 (e, GRUB_EHCI_EHCC_CAPLEN)); + grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: VERSION: %04x\n", +@@ -598,7 +494,7 @@ grub_ehci_pci_iter (grub_pci_device_t dev, grub_pci_id_t pciid, + if (caplen & (sizeof (grub_uint32_t) - 1)) + { + grub_dprintf ("ehci", "Unaligned caplen\n"); +- return 0; ++ return; + } + e->iobase = ((volatile grub_uint32_t *) e->iobase_ehcc + + (caplen / sizeof (grub_uint32_t))); +@@ -608,8 +504,8 @@ grub_ehci_pci_iter (grub_pci_device_t dev, grub_pci_id_t pciid, + #endif + + grub_dprintf ("ehci", +- "EHCI grub_ehci_pci_iter: iobase of oper. regs: %08x\n", +- (base & GRUB_EHCI_ADDR_MEM_MASK) + caplen); ++ "EHCI grub_ehci_pci_iter: iobase of oper. regs: %08llxx\n", ++ (unsigned long long) (grub_addr_t) e->iobase_ehcc + caplen); + grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: COMMAND: %08x\n", + grub_ehci_oper_read32 (e, GRUB_EHCI_COMMAND)); + grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: STATUS: %08x\n", +@@ -625,10 +521,6 @@ grub_ehci_pci_iter (grub_pci_device_t dev, grub_pci_id_t pciid, + grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: CONFIG_FLAG: %08x\n", + grub_ehci_oper_read32 (e, GRUB_EHCI_CONFIG_FLAG)); + +- /* Is there EECP ? */ +- eecp_offset = (grub_ehci_ehcc_read32 (e, GRUB_EHCI_EHCC_CPARAMS) +- & GRUB_EHCI_EECP_MASK) >> GRUB_EHCI_EECP_SHIFT; +- + /* Check format of data structures requested by EHCI */ + /* XXX: In fact it is not used at any place, it is prepared for future + * This implementation uses 32-bits pointers only */ +@@ -732,65 +624,6 @@ grub_ehci_pci_iter (grub_pci_device_t dev, grub_pci_id_t pciid, + + grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: QH/TD init. OK\n"); + +- /* Determine and change ownership. */ +- /* EECP offset valid in HCCPARAMS */ +- /* Ownership can be changed via EECP only */ +- if (pciid != GRUB_CS5536_PCIID && eecp_offset >= 0x40) +- { +- grub_pci_address_t pciaddr_eecp; +- pciaddr_eecp = grub_pci_make_address (dev, eecp_offset); +- +- usblegsup = grub_pci_read (pciaddr_eecp); +- if (usblegsup & GRUB_EHCI_BIOS_OWNED) +- { +- grub_boot_time ("Taking ownership of EHCI controller"); +- grub_dprintf ("ehci", +- "EHCI grub_ehci_pci_iter: EHCI owned by: BIOS\n"); +- /* Ownership change - set OS_OWNED bit */ +- grub_pci_write (pciaddr_eecp, usblegsup | GRUB_EHCI_OS_OWNED); +- /* Ensure PCI register is written */ +- grub_pci_read (pciaddr_eecp); +- +- /* Wait for finish of ownership change, EHCI specification +- * doesn't say how long it can take... */ +- maxtime = grub_get_time_ms () + 1000; +- while ((grub_pci_read (pciaddr_eecp) & GRUB_EHCI_BIOS_OWNED) +- && (grub_get_time_ms () < maxtime)); +- if (grub_pci_read (pciaddr_eecp) & GRUB_EHCI_BIOS_OWNED) +- { +- grub_dprintf ("ehci", +- "EHCI grub_ehci_pci_iter: EHCI change ownership timeout"); +- /* Change ownership in "hard way" - reset BIOS ownership */ +- grub_pci_write (pciaddr_eecp, GRUB_EHCI_OS_OWNED); +- /* Ensure PCI register is written */ +- grub_pci_read (pciaddr_eecp); +- } +- } +- else if (usblegsup & GRUB_EHCI_OS_OWNED) +- /* XXX: What to do in this case - nothing ? Can it happen ? */ +- grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: EHCI owned by: OS\n"); +- else +- { +- grub_dprintf ("ehci", +- "EHCI grub_ehci_pci_iter: EHCI owned by: NONE\n"); +- /* XXX: What to do in this case ? Can it happen ? +- * Is code below correct ? */ +- /* Ownership change - set OS_OWNED bit */ +- grub_pci_write (pciaddr_eecp, GRUB_EHCI_OS_OWNED); +- /* Ensure PCI register is written */ +- grub_pci_read (pciaddr_eecp); +- } +- +- /* Disable SMI, just to be sure. */ +- pciaddr_eecp = grub_pci_make_address (dev, eecp_offset + 4); +- grub_pci_write (pciaddr_eecp, 0); +- /* Ensure PCI register is written */ +- grub_pci_read (pciaddr_eecp); +- +- } +- +- grub_dprintf ("ehci", "inithw: EHCI grub_ehci_pci_iter: ownership OK\n"); +- + /* Now we can setup EHCI (maybe...) */ + + /* Check if EHCI is halted and halt it if not */ +@@ -863,8 +696,8 @@ grub_ehci_pci_iter (grub_pci_device_t dev, grub_pci_id_t pciid, + grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: OK at all\n"); + + grub_dprintf ("ehci", +- "EHCI grub_ehci_pci_iter: iobase of oper. regs: %08x\n", +- (base & GRUB_EHCI_ADDR_MEM_MASK)); ++ "EHCI grub_ehci_pci_iter: iobase of oper. regs: %08llx\n", ++ (unsigned long long) (grub_addr_t) regs); + grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: COMMAND: %08x\n", + grub_ehci_oper_read32 (e, GRUB_EHCI_COMMAND)); + grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: STATUS: %08x\n", +@@ -880,7 +713,7 @@ grub_ehci_pci_iter (grub_pci_device_t dev, grub_pci_id_t pciid, + grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: CONFIG_FLAG: %08x\n", + grub_ehci_oper_read32 (e, GRUB_EHCI_CONFIG_FLAG)); + +- return 0; ++ return; + + fail: + if (e) +@@ -894,7 +727,7 @@ fail: + } + grub_free (e); + +- return 0; ++ return; + } + + static int +@@ -1891,12 +1724,6 @@ grub_ehci_detect_dev (grub_usb_controller_t dev, int port, int *changed) + } + } + +-static void +-grub_ehci_inithw (void) +-{ +- grub_pci_iterate (grub_ehci_pci_iter, NULL); +-} +- + static grub_err_t + grub_ehci_restore_hw (void) + { +@@ -1997,7 +1824,7 @@ GRUB_MOD_INIT (ehci) + grub_stop_disk_firmware (); + + grub_boot_time ("Initing EHCI hardware"); +- grub_ehci_inithw (); ++ grub_ehci_pci_scan (); + grub_boot_time ("Registering EHCI driver"); + grub_usb_controller_dev_register (&usb_controller); + grub_boot_time ("EHCI driver registered"); +diff --git a/grub-core/bus/usb/usbtrans.c b/grub-core/bus/usb/usbtrans.c +index 9266e49311c4471d0915aebf9fae05509d0fa5c7..85f081fffb3a2aa7354816c79977ae45a79b1c80 100644 +--- a/grub-core/bus/usb/usbtrans.c ++++ b/grub-core/bus/usb/usbtrans.c +@@ -18,7 +18,7 @@ + */ + + #include +-#include ++#include + #include + #include + #include +diff --git a/grub-core/commands/efi/lsefi.c b/grub-core/commands/efi/lsefi.c +index d901c3892630f2500eda9822c712aae278017907..d1ce99af438914692d1b71b0017050689dd73db9 100644 +--- a/grub-core/commands/efi/lsefi.c ++++ b/grub-core/commands/efi/lsefi.c +@@ -109,8 +109,10 @@ grub_cmd_lsefi (grub_command_t cmd __attribute__ ((unused)), + + status = efi_call_3 (grub_efi_system_table->boot_services->protocols_per_handle, + handle, &protocols, &num_protocols); +- if (status != GRUB_EFI_SUCCESS) ++ if (status != GRUB_EFI_SUCCESS) { + grub_printf ("Unable to retrieve protocols\n"); ++ continue; ++ } + for (j = 0; j < num_protocols; j++) + { + for (k = 0; k < ARRAY_SIZE (known_protocols); k++) +diff --git a/grub-core/commands/i386/coreboot/cb_timestamps.c b/grub-core/commands/i386/coreboot/cb_timestamps.c +index e72f38d6e057dccfb981d6bbc483d2bdd8a06c98..e97ea6bed98b42d4f03f06ab5bc076fadbfee67f 100644 +--- a/grub-core/commands/i386/coreboot/cb_timestamps.c ++++ b/grub-core/commands/i386/coreboot/cb_timestamps.c +@@ -20,7 +20,7 @@ + #include + #include + #include +-#include ++#include + #include + + GRUB_MOD_LICENSE ("GPLv3+"); +diff --git a/grub-core/commands/i386/coreboot/cbls.c b/grub-core/commands/i386/coreboot/cbls.c +index e0a10596fe279331cca94172e1f452fdfe18394f..102291f424ab782c6cd3bcd4ae1effd836cd832e 100644 +--- a/grub-core/commands/i386/coreboot/cbls.c ++++ b/grub-core/commands/i386/coreboot/cbls.c +@@ -20,7 +20,7 @@ + #include + #include + #include +-#include ++#include + #include + + GRUB_MOD_LICENSE ("GPLv3+"); +diff --git a/grub-core/commands/keylayouts.c b/grub-core/commands/keylayouts.c +index f4b7730208ab8ffafb1b0283294a140248839d7a..f35d3a369bad7125cb04e25f0e32c01c00c673b0 100644 +--- a/grub-core/commands/keylayouts.c ++++ b/grub-core/commands/keylayouts.c +@@ -40,7 +40,7 @@ static struct grub_keyboard_layout layout_us = { + /* 0x10 */ 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', + /* 0x18 */ 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', + /* 0x20 */ '3', '4', '5', '6', '7', '8', '9', '0', +- /* 0x28 */ '\n', '\e', '\b', '\t', ' ', '-', '=', '[', ++ /* 0x28 */ '\n', GRUB_TERM_ESC, GRUB_TERM_BACKSPACE, GRUB_TERM_TAB, ' ', '-', '=', '[', + /* According to usage table 0x31 should be mapped to '/' + but testing with real keyboard shows that 0x32 is remapped to '/'. + Map 0x31 to 0. +@@ -82,8 +82,8 @@ static struct grub_keyboard_layout layout_us = { + /* 0x10 */ 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', + /* 0x18 */ 'U', 'V', 'W', 'X', 'Y', 'Z', '!', '@', + /* 0x20 */ '#', '$', '%', '^', '&', '*', '(', ')', +- /* 0x28 */ '\n' | GRUB_TERM_SHIFT, '\e' | GRUB_TERM_SHIFT, +- /* 0x2a */ '\b' | GRUB_TERM_SHIFT, '\t' | GRUB_TERM_SHIFT, ++ /* 0x28 */ '\n' | GRUB_TERM_SHIFT, GRUB_TERM_ESC | GRUB_TERM_SHIFT, ++ /* 0x2a */ GRUB_TERM_BACKSPACE | GRUB_TERM_SHIFT, GRUB_TERM_TAB | GRUB_TERM_SHIFT, + /* 0x2c */ ' ' | GRUB_TERM_SHIFT, '_', '+', '{', + /* According to usage table 0x31 should be mapped to '/' + but testing with real keyboard shows that 0x32 is remapped to '/'. +diff --git a/grub-core/commands/menuentry.c b/grub-core/commands/menuentry.c +index 58d4dadf6ee4ec392a09d433802803520704cd7b..2c5363da7f549b85ae04d1d88a78db0b85504c51 100644 +--- a/grub-core/commands/menuentry.c ++++ b/grub-core/commands/menuentry.c +@@ -52,8 +52,8 @@ static struct + int key; + } hotkey_aliases[] = + { +- {"backspace", '\b'}, +- {"tab", '\t'}, ++ {"backspace", GRUB_TERM_BACKSPACE}, ++ {"tab", GRUB_TERM_TAB}, + {"delete", GRUB_TERM_KEY_DC}, + {"insert", GRUB_TERM_KEY_INSERT}, + {"f1", GRUB_TERM_KEY_F1}, +diff --git a/grub-core/fs/ext2.c b/grub-core/fs/ext2.c +index cdce63bcc9d57e82b7a4f6a644803a1d8320935d..b8ad75a0ff7c4f72b67bef123510d99231531daf 100644 +--- a/grub-core/fs/ext2.c ++++ b/grub-core/fs/ext2.c +@@ -102,6 +102,7 @@ GRUB_MOD_LICENSE ("GPLv3+"); + #define EXT4_FEATURE_INCOMPAT_64BIT 0x0080 + #define EXT4_FEATURE_INCOMPAT_MMP 0x0100 + #define EXT4_FEATURE_INCOMPAT_FLEX_BG 0x0200 ++#define EXT4_FEATURE_INCOMPAT_ENCRYPT 0x10000 + + /* The set of back-incompatible features this driver DOES support. Add (OR) + * flags here as the related features are implemented into the driver. */ +@@ -109,7 +110,8 @@ GRUB_MOD_LICENSE ("GPLv3+"); + | EXT4_FEATURE_INCOMPAT_EXTENTS \ + | EXT4_FEATURE_INCOMPAT_FLEX_BG \ + | EXT2_FEATURE_INCOMPAT_META_BG \ +- | EXT4_FEATURE_INCOMPAT_64BIT) ++ | EXT4_FEATURE_INCOMPAT_64BIT \ ++ | EXT4_FEATURE_INCOMPAT_ENCRYPT) + /* List of rationales for the ignored "incompatible" features: + * needs_recovery: Not really back-incompatible - was added as such to forbid + * ext2 drivers from mounting an ext3 volume with a dirty +@@ -138,6 +140,7 @@ GRUB_MOD_LICENSE ("GPLv3+"); + #define EXT3_JOURNAL_FLAG_DELETED 4 + #define EXT3_JOURNAL_FLAG_LAST_TAG 8 + ++#define EXT4_ENCRYPT_FLAG 0x800 + #define EXT4_EXTENTS_FLAG 0x80000 + + /* The ext2 superblock. */ +@@ -706,6 +709,12 @@ grub_ext2_read_symlink (grub_fshelp_node_t node) + grub_ext2_read_inode (diro->data, diro->ino, &diro->inode); + if (grub_errno) + return 0; ++ ++ if (diro->inode.flags & grub_cpu_to_le32_compile_time (EXT4_ENCRYPT_FLAG)) ++ { ++ grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET, "symlink is encrypted"); ++ return 0; ++ } + } + + symlink = grub_malloc (grub_le_to_cpu32 (diro->inode.size) + 1); +@@ -749,6 +758,12 @@ grub_ext2_iterate_dir (grub_fshelp_node_t dir, + return 0; + } + ++ if (diro->inode.flags & grub_cpu_to_le32_compile_time (EXT4_ENCRYPT_FLAG)) ++ { ++ grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET, "directory is encrypted"); ++ return 0; ++ } ++ + /* Search the file. */ + while (fpos < grub_le_to_cpu32 (diro->inode.size)) + { +@@ -859,6 +874,12 @@ grub_ext2_open (struct grub_file *file, const char *name) + goto fail; + } + ++ if (fdiro->inode.flags & grub_cpu_to_le32_compile_time (EXT4_ENCRYPT_FLAG)) ++ { ++ err = grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET, "file is encrypted"); ++ goto fail; ++ } ++ + grub_memcpy (data->inode, &fdiro->inode, sizeof (struct grub_ext2_inode)); + grub_free (fdiro); + +diff --git a/grub-core/fs/udf.c b/grub-core/fs/udf.c +index 839bff88963baba7730d788869e1f50481a66a30..00a16098b47aff52a352fa9433e279beae261329 100644 +--- a/grub-core/fs/udf.c ++++ b/grub-core/fs/udf.c +@@ -321,6 +321,32 @@ struct grub_udf_partmap + }; + } GRUB_PACKED; + ++struct grub_udf_pvd ++{ ++ struct grub_udf_tag tag; ++ grub_uint32_t seq_num; ++ grub_uint32_t pvd_num; ++ grub_uint8_t ident[32]; ++ grub_uint16_t vol_seq_num; ++ grub_uint16_t max_vol_seq_num; ++ grub_uint16_t interchange_level; ++ grub_uint16_t max_interchange_level; ++ grub_uint32_t charset_list; ++ grub_uint32_t max_charset_list; ++ grub_uint8_t volset_ident[128]; ++ struct grub_udf_charspec desc_charset; ++ struct grub_udf_charspec expl_charset; ++ struct grub_udf_extent_ad vol_abstract; ++ struct grub_udf_extent_ad vol_copyright; ++ struct grub_udf_regid app_ident; ++ struct grub_udf_timestamp recording_time; ++ struct grub_udf_regid imp_ident; ++ grub_uint8_t imp_use[64]; ++ grub_uint32_t pred_vds_loc; ++ grub_uint16_t flags; ++ grub_uint8_t reserved[22]; ++} GRUB_PACKED; ++ + struct grub_udf_lvd + { + struct grub_udf_tag tag; +@@ -348,6 +374,7 @@ struct grub_udf_aed + struct grub_udf_data + { + grub_disk_t disk; ++ struct grub_udf_pvd pvd; + struct grub_udf_lvd lvd; + struct grub_udf_pd pds[GRUB_UDF_MAX_PDS]; + struct grub_udf_partmap *pms[GRUB_UDF_MAX_PMS]; +@@ -692,7 +719,17 @@ grub_udf_mount (grub_disk_t disk) + } + + tag.tag_ident = U16 (tag.tag_ident); +- if (tag.tag_ident == GRUB_UDF_TAG_IDENT_PD) ++ if (tag.tag_ident == GRUB_UDF_TAG_IDENT_PVD) ++ { ++ if (grub_disk_read (disk, block << lbshift, 0, ++ sizeof (struct grub_udf_pvd), ++ &data->pvd)) ++ { ++ grub_error (GRUB_ERR_BAD_FS, "not an UDF filesystem"); ++ goto fail; ++ } ++ } ++ else if (tag.tag_ident == GRUB_UDF_TAG_IDENT_PD) + { + if (data->npd >= GRUB_UDF_MAX_PDS) + { +@@ -860,6 +897,25 @@ read_string (const grub_uint8_t *raw, grub_size_t sz, char *outbuf) + return outbuf; + } + ++static char * ++read_dstring (const grub_uint8_t *raw, grub_size_t sz) ++{ ++ grub_size_t len; ++ ++ if (raw[0] == 0) { ++ char *outbuf = grub_malloc (1); ++ if (!outbuf) ++ return NULL; ++ outbuf[0] = 0; ++ return outbuf; ++ } ++ ++ len = raw[sz - 1]; ++ if (len > sz - 1) ++ len = sz - 1; ++ return read_string (raw, len, NULL); ++} ++ + static int + grub_udf_iterate_dir (grub_fshelp_node_t dir, + grub_fshelp_iterate_dir_hook_t hook, void *hook_data) +@@ -1197,7 +1253,7 @@ grub_udf_label (grub_device_t device, char **label) + + if (data) + { +- *label = read_string (data->lvd.ident, sizeof (data->lvd.ident), 0); ++ *label = read_dstring (data->lvd.ident, sizeof (data->lvd.ident)); + grub_free (data); + } + else +@@ -1206,6 +1262,87 @@ grub_udf_label (grub_device_t device, char **label) + return grub_errno; + } + ++static char * ++gen_uuid_from_volset (char *volset_ident) ++{ ++ grub_size_t i; ++ grub_size_t len; ++ grub_size_t nonhexpos; ++ grub_uint8_t buf[17]; ++ char *uuid; ++ ++ len = grub_strlen (volset_ident); ++ if (len < 8) ++ return NULL; ++ ++ uuid = grub_malloc (17); ++ if (!uuid) ++ return NULL; ++ ++ if (len > 16) ++ len = 16; ++ ++ grub_memset (buf, 0, sizeof (buf)); ++ grub_memcpy (buf, volset_ident, len); ++ ++ nonhexpos = 16; ++ for (i = 0; i < 16; ++i) ++ { ++ if (!grub_isxdigit (buf[i])) ++ { ++ nonhexpos = i; ++ break; ++ } ++ } ++ ++ if (nonhexpos < 8) ++ { ++ grub_snprintf (uuid, 17, "%02x%02x%02x%02x%02x%02x%02x%02x", ++ buf[0], buf[1], buf[2], buf[3], ++ buf[4], buf[5], buf[6], buf[7]); ++ } ++ else if (nonhexpos < 16) ++ { ++ for (i = 0; i < 8; ++i) ++ uuid[i] = grub_tolower (buf[i]); ++ grub_snprintf (uuid+8, 9, "%02x%02x%02x%02x", ++ buf[8], buf[9], buf[10], buf[11]); ++ } ++ else ++ { ++ for (i = 0; i < 16; ++i) ++ uuid[i] = grub_tolower (buf[i]); ++ uuid[16] = 0; ++ } ++ ++ return uuid; ++} ++ ++static grub_err_t ++grub_udf_uuid (grub_device_t device, char **uuid) ++{ ++ char *volset_ident; ++ struct grub_udf_data *data; ++ data = grub_udf_mount (device->disk); ++ ++ if (data) ++ { ++ volset_ident = read_dstring (data->pvd.volset_ident, sizeof (data->pvd.volset_ident)); ++ if (volset_ident) ++ { ++ *uuid = gen_uuid_from_volset (volset_ident); ++ grub_free (volset_ident); ++ } ++ else ++ *uuid = 0; ++ grub_free (data); ++ } ++ else ++ *uuid = 0; ++ ++ return grub_errno; ++} ++ + static struct grub_fs grub_udf_fs = { + .name = "udf", + .dir = grub_udf_dir, +@@ -1213,6 +1350,7 @@ static struct grub_fs grub_udf_fs = { + .read = grub_udf_read, + .close = grub_udf_close, + .label = grub_udf_label, ++ .uuid = grub_udf_uuid, + #ifdef GRUB_UTIL + .reserved_first_sector = 1, + .blocklist_install = 1, +diff --git a/grub-core/fs/zfs/zfs_lz4.c b/grub-core/fs/zfs/zfs_lz4.c +index 2f73449f0d4c63cadc7b5b4388250a4d474594b6..5453822d0258527ba751e551cbb54753f0331043 100644 +--- a/grub-core/fs/zfs/zfs_lz4.c ++++ b/grub-core/fs/zfs/zfs_lz4.c +@@ -73,7 +73,6 @@ static int LZ4_uncompress_unknownOutputSize(const char *source, char *dest, + #define U32 grub_uint32_t + #define S32 grub_int32_t + #define U64 grub_uint64_t +-typedef grub_size_t size_t; + + typedef struct _U16_S { + U16 v; +@@ -133,10 +132,10 @@ typedef struct _U64_S { + + /* Decompression functions */ + grub_err_t +-lz4_decompress(void *s_start, void *d_start, size_t s_len, size_t d_len); ++lz4_decompress(void *s_start, void *d_start, grub_size_t s_len, grub_size_t d_len); + + grub_err_t +-lz4_decompress(void *s_start, void *d_start, size_t s_len, size_t d_len) ++lz4_decompress(void *s_start, void *d_start, grub_size_t s_len, grub_size_t d_len) + { + const BYTE *src = s_start; + U32 bufsiz = (src[0] << 24) | (src[1] << 16) | (src[2] << 8) | +@@ -167,7 +166,7 @@ LZ4_uncompress_unknownOutputSize(const char *source, + BYTE *const oend = op + maxOutputSize; + BYTE *cpy; + +- size_t dec[] = { 0, 3, 2, 3, 0, 0, 0, 0 }; ++ grub_size_t dec[] = { 0, 3, 2, 3, 0, 0, 0, 0 }; + + /* Main Loop */ + while (ip < iend) { +@@ -237,8 +236,8 @@ LZ4_uncompress_unknownOutputSize(const char *source, + /* copy repeated sequence */ + if unlikely(op - ref < STEPSIZE) { + #if LZ4_ARCH64 +- size_t dec2table[] = { 0, 0, 0, -1, 0, 1, 2, 3 }; +- size_t dec2 = dec2table[op - ref]; ++ grub_size_t dec2table[] = { 0, 0, 0, -1, 0, 1, 2, 3 }; ++ grub_size_t dec2 = dec2table[op - ref]; + #else + const int dec2 = 0; + #endif +diff --git a/grub-core/io/gzio.c b/grub-core/io/gzio.c +index 0f2ea6bd845227265eef205c212e7c52ee03ebcf..a8e33033bf801483253755ab3300614169fa37fe 100644 +--- a/grub-core/io/gzio.c ++++ b/grub-core/io/gzio.c +@@ -140,24 +140,24 @@ eat_field (grub_file_t file, int len) + #define OLD_GZIP_MAGIC grub_le_to_cpu16 (0x9E1F) + + /* Compression methods (see algorithm.doc) */ +-#define STORED 0 +-#define COMPRESSED 1 +-#define PACKED 2 +-#define LZHED 3 ++#define GRUB_GZ_STORED 0 ++#define GRUB_GZ_COMPRESSED 1 ++#define GRUB_GZ_PACKED 2 ++#define GRUB_GZ_LZHED 3 + /* methods 4 to 7 reserved */ +-#define DEFLATED 8 +-#define MAX_METHODS 9 ++#define GRUB_GZ_DEFLATED 8 ++#define GRUB_GZ_MAX_METHODS 9 + + /* gzip flag byte */ +-#define ASCII_FLAG 0x01 /* bit 0 set: file probably ascii text */ +-#define CONTINUATION 0x02 /* bit 1 set: continuation of multi-part gzip file */ +-#define EXTRA_FIELD 0x04 /* bit 2 set: extra field present */ +-#define ORIG_NAME 0x08 /* bit 3 set: original file name present */ +-#define COMMENT 0x10 /* bit 4 set: file comment present */ +-#define ENCRYPTED 0x20 /* bit 5 set: file is encrypted */ +-#define RESERVED 0xC0 /* bit 6,7: reserved */ ++#define GRUB_GZ_ASCII_FLAG 0x01 /* bit 0 set: file probably ascii text */ ++#define GRUB_GZ_CONTINUATION 0x02 /* bit 1 set: continuation of multi-part gzip file */ ++#define GRUB_GZ_EXTRA_FIELD 0x04 /* bit 2 set: extra field present */ ++#define GRUB_GZ_ORIG_NAME 0x08 /* bit 3 set: original file name present */ ++#define GRUB_GZ_COMMENT 0x10 /* bit 4 set: file comment present */ ++#define GRUB_GZ_ENCRYPTED 0x20 /* bit 5 set: file is encrypted */ ++#define GRUB_GZ_RESERVED 0xC0 /* bit 6,7: reserved */ + +-#define UNSUPPORTED_FLAGS (CONTINUATION | ENCRYPTED | RESERVED) ++#define GRUB_GZ_UNSUPPORTED_FLAGS (GRUB_GZ_CONTINUATION | GRUB_GZ_ENCRYPTED | GRUB_GZ_RESERVED) + + /* inflate block codes */ + #define INFLATE_STORED 0 +@@ -201,14 +201,14 @@ test_gzip_header (grub_file_t file) + * problem occurs from here on, then we have corrupt or otherwise + * bad data, and the error should be reported to the user. + */ +- if (hdr.method != DEFLATED +- || (hdr.flags & UNSUPPORTED_FLAGS) +- || ((hdr.flags & EXTRA_FIELD) ++ if (hdr.method != GRUB_GZ_DEFLATED ++ || (hdr.flags & GRUB_GZ_UNSUPPORTED_FLAGS) ++ || ((hdr.flags & GRUB_GZ_EXTRA_FIELD) + && (grub_file_read (gzio->file, &extra_len, 2) != 2 + || eat_field (gzio->file, + grub_le_to_cpu16 (extra_len)))) +- || ((hdr.flags & ORIG_NAME) && eat_field (gzio->file, -1)) +- || ((hdr.flags & COMMENT) && eat_field (gzio->file, -1))) ++ || ((hdr.flags & GRUB_GZ_ORIG_NAME) && eat_field (gzio->file, -1)) ++ || ((hdr.flags & GRUB_GZ_COMMENT) && eat_field (gzio->file, -1))) + return 0; + + gzio->data_offset = grub_file_tell (gzio->file); +@@ -1183,7 +1183,7 @@ test_zlib_header (grub_gzio_t gzio) + flg = get_byte (gzio); + + /* Check that compression method is DEFLATE. */ +- if ((cmf & 0xf) != DEFLATED) ++ if ((cmf & 0xf) != GRUB_GZ_DEFLATED) + { + /* TRANSLATORS: It's about given file having some strange format, not + complete lack of gzip support. */ +diff --git a/grub-core/kern/arm/cache.c b/grub-core/kern/arm/cache.c +index 34154ccdb0e09d7d9fd91c4164fe8577ce449260..af1c4bbf544f0ebcca5c0f58c847c8dddc1f2e91 100644 +--- a/grub-core/kern/arm/cache.c ++++ b/grub-core/kern/arm/cache.c +@@ -29,6 +29,8 @@ void grub_arm_clean_dcache_range_armv6 (grub_addr_t start, grub_addr_t end, + grub_addr_t dlinesz); + void grub_arm_clean_dcache_range_armv7 (grub_addr_t start, grub_addr_t end, + grub_addr_t dlinesz); ++void grub_arm_clean_dcache_range_poc_armv7 (grub_addr_t start, grub_addr_t end, ++ grub_addr_t dlinesz); + void grub_arm_invalidate_icache_range_armv6 (grub_addr_t start, grub_addr_t end, + grub_addr_t dlinesz); + void grub_arm_invalidate_icache_range_armv7 (grub_addr_t start, grub_addr_t end, +@@ -252,6 +254,38 @@ grub_arch_sync_caches (void *address, grub_size_t len) + } + } + ++void ++grub_arch_sync_dma_caches (volatile void *address, grub_size_t len) ++{ ++ grub_addr_t start = (grub_addr_t) address; ++ grub_addr_t end = start + len; ++ ++ if (type == ARCH_UNKNOWN) ++ probe_caches (); ++ start = ALIGN_DOWN (start, grub_arch_cache_max_linesz); ++ end = ALIGN_UP (end, grub_arch_cache_max_linesz); ++ switch (type) ++ { ++ case ARCH_ARMV6: ++ grub_arm_clean_dcache_range_armv6 (start, end, grub_arch_cache_dlinesz); ++ grub_arm_invalidate_icache_range_armv6 (start, end, ++ grub_arch_cache_ilinesz); ++ break; ++ case ARCH_ARMV5_WRITE_THROUGH: ++ case ARCH_ARMV6_UNIFIED: ++ grub_arm_clean_dcache_range_armv6 (start, end, grub_arch_cache_dlinesz); ++ break; ++ case ARCH_ARMV7: ++ grub_arm_clean_dcache_range_poc_armv7 (start, end, grub_arch_cache_dlinesz); ++ grub_arm_invalidate_icache_range_armv7 (start, end, ++ grub_arch_cache_ilinesz); ++ break; ++ /* Pacify GCC. */ ++ case ARCH_UNKNOWN: ++ break; ++ } ++} ++ + void + grub_arm_disable_caches_mmu (void) + { +diff --git a/grub-core/kern/arm/coreboot/cbtable.c b/grub-core/kern/arm/coreboot/cbtable.c +new file mode 100644 +index 0000000000000000000000000000000000000000..8a655bb5cc28fb013674dc792531d8a9ba1c4b85 +--- /dev/null ++++ b/grub-core/kern/arm/coreboot/cbtable.c +@@ -0,0 +1,40 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2007,2008,2013 Free Software Foundation, Inc. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++GRUB_MOD_LICENSE ("GPLv3+"); ++ ++#pragma GCC diagnostic ignored "-Wcast-align" ++ ++grub_linuxbios_table_header_t ++grub_linuxbios_get_tables (void) ++{ ++ grub_linuxbios_table_header_t table_header ++ = (grub_linuxbios_table_header_t) grub_arm_saved_registers.r[0]; ++ ++ if (!grub_linuxbios_check_signature (table_header)) ++ return 0; ++ ++ return table_header; ++} +diff --git a/grub-core/kern/arm/coreboot/dma.c b/grub-core/kern/arm/coreboot/dma.c +new file mode 100644 +index 0000000000000000000000000000000000000000..2c2a6278904631c91bd29b3c4338c606471672fe +--- /dev/null ++++ b/grub-core/kern/arm/coreboot/dma.c +@@ -0,0 +1,59 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2007,2009 Free Software Foundation, Inc. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++struct grub_pci_dma_chunk * ++grub_memalign_dma32 (grub_size_t align, grub_size_t size) ++{ ++ void *ret; ++ if (align < 64) ++ align = 64; ++ size = ALIGN_UP (size, align); ++ ret = grub_memalign (align, size); ++ if (!ret) ++ return 0; ++ grub_arch_sync_dma_caches (ret, size); ++ return ret; ++} ++ ++void ++grub_dma_free (struct grub_pci_dma_chunk *ch) ++{ ++ grub_size_t size = (((struct grub_mm_header *) ch) - 1)->size * GRUB_MM_ALIGN; ++ grub_arch_sync_dma_caches (ch, size); ++ grub_free (ch); ++} ++ ++volatile void * ++grub_dma_get_virt (struct grub_pci_dma_chunk *ch) ++{ ++ return (void *) ch; ++} ++ ++grub_uint32_t ++grub_dma_get_phys (struct grub_pci_dma_chunk *ch) ++{ ++ return (grub_uint32_t) (grub_addr_t) ch; ++} ++ +diff --git a/grub-core/kern/arm/coreboot/init.c b/grub-core/kern/arm/coreboot/init.c +new file mode 100644 +index 0000000000000000000000000000000000000000..8d8c5b8291eff9743b0325b76f851d52509b1f4f +--- /dev/null ++++ b/grub-core/kern/arm/coreboot/init.c +@@ -0,0 +1,151 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2002,2003,2004,2005,2006,2007,2008,2009,2013 Free Software Foundation, Inc. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++extern grub_uint8_t _start[]; ++extern grub_uint8_t _end[]; ++extern grub_uint8_t _edata[]; ++grub_addr_t start_of_ram = ~(grub_addr_t)0; ++ ++void __attribute__ ((noreturn)) ++grub_exit (void) ++{ ++ /* We can't use grub_fatal() in this function. This would create an infinite ++ loop, since grub_fatal() calls grub_abort() which in turn calls grub_exit(). */ ++ while (1) ++ grub_cpu_idle (); ++} ++ ++static grub_uint64_t modend; ++static int have_memory = 0; ++ ++/* Helper for grub_machine_init. */ ++static int ++heap_init (grub_uint64_t addr, grub_uint64_t size, grub_memory_type_t type, ++ void *data __attribute__ ((unused))) ++{ ++ grub_uint64_t begin = addr, end = addr + size; ++ ++#if GRUB_CPU_SIZEOF_VOID_P == 4 ++ /* Restrict ourselves to 32-bit memory space. */ ++ if (begin > GRUB_ULONG_MAX) ++ return 0; ++ if (end > GRUB_ULONG_MAX) ++ end = GRUB_ULONG_MAX; ++#endif ++ ++ if (start_of_ram > begin) ++ start_of_ram = begin; ++ ++ if (type != GRUB_MEMORY_AVAILABLE) ++ return 0; ++ ++ if (modend && begin < modend) ++ { ++ if (begin < (grub_addr_t)_start) ++ { ++ grub_mm_init_region ((void *) (grub_addr_t) begin, (grub_size_t) ((grub_addr_t)_start - begin)); ++ have_memory = 1; ++ } ++ begin = modend; ++ } ++ ++ /* Avoid DMA problems. */ ++ if (end >= 0xfe000000) ++ end = 0xfe000000; ++ ++ if (end <= begin) ++ return 0; ++ ++ grub_mm_init_region ((void *) (grub_addr_t) begin, (grub_size_t) (end - begin)); ++ ++ have_memory = 1; ++ ++ return 0; ++} ++ ++void ++grub_machine_init (void) ++{ ++ struct grub_module_header *header; ++ void *dtb = 0; ++ grub_size_t dtb_size = 0; ++ ++ modend = grub_modules_get_end (); ++ ++ grub_video_coreboot_fb_early_init (); ++ ++ grub_machine_mmap_iterate (heap_init, NULL); ++ if (!have_memory) ++ grub_fatal ("No memory found"); ++ ++ grub_video_coreboot_fb_late_init (); ++ ++ grub_font_init (); ++ grub_gfxterm_init (); ++ ++ FOR_MODULES (header) ++ if (header->type == OBJ_TYPE_DTB) ++ { ++ char *dtb_orig_addr, *dtb_copy; ++ dtb_orig_addr = (char *) header + sizeof (struct grub_module_header); ++ ++ dtb_size = header->size - sizeof (struct grub_module_header); ++ dtb = dtb_copy = grub_malloc (dtb_size); ++ grub_memmove (dtb_copy, dtb_orig_addr, dtb_size); ++ break; ++ } ++ if (!dtb) ++ grub_fatal ("No DTB found"); ++ grub_fdtbus_init (dtb, dtb_size); ++ ++ grub_rk3288_spi_init (); ++ ++ grub_machine_timer_init (); ++ grub_cros_init (); ++ grub_pl050_init (); ++} ++ ++void ++grub_machine_get_bootlocation (char **device __attribute__ ((unused)), ++ char **path __attribute__ ((unused))) ++{ ++} ++ ++void ++grub_machine_fini (int flags __attribute__ ((unused))) ++{ ++} +diff --git a/grub-core/kern/arm/coreboot/timer.c b/grub-core/kern/arm/coreboot/timer.c +new file mode 100644 +index 0000000000000000000000000000000000000000..d97b844f8487c064922a552a5ea4d5f220031dba +--- /dev/null ++++ b/grub-core/kern/arm/coreboot/timer.c +@@ -0,0 +1,101 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2016 Free Software Foundation, Inc. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++grub_uint64_t ++grub_armv7_get_timer_value(void); ++ ++grub_uint32_t ++grub_armv7_get_timer_frequency(void); ++ ++grub_uint32_t ++grub_arm_pfr1(void); ++ ++static int have_timer = 0; ++static volatile grub_uint32_t *sp804_regs; ++ ++static grub_uint64_t ++sp804_get_time_ms (void) ++{ ++ static grub_uint32_t high, last_low; ++ grub_uint32_t low = ~sp804_regs[1]; ++ if (last_low > low) ++ high++; ++ last_low = low; ++ return grub_divmod64 ((((grub_uint64_t) high) << 32) | low, ++ 1000, 0); ++} ++ ++static grub_err_t ++sp804_attach(const struct grub_fdtbus_dev *dev) ++{ ++ if (have_timer) ++ return GRUB_ERR_NONE; ++ sp804_regs = grub_fdtbus_map_reg (dev, 0, 0); ++ if (!grub_fdtbus_is_mapping_valid (sp804_regs)) ++ return grub_error (GRUB_ERR_IO, "could not map sp804: %p", sp804_regs); ++ grub_install_get_time_ms (sp804_get_time_ms); ++ have_timer = 1; ++ return GRUB_ERR_NONE; ++} ++ ++struct grub_fdtbus_driver sp804 = ++{ ++ .compatible = "arm,sp804", ++ .attach = sp804_attach ++}; ++ ++static grub_uint32_t timer_frequency_in_khz; ++ ++static grub_uint64_t ++generic_get_time_ms (void) ++{ ++ return grub_divmod64 (grub_armv7_get_timer_value(), timer_frequency_in_khz, 0); ++} ++ ++static int ++try_generic_timer (void) ++{ ++ if (((grub_arm_pfr1 () >> 16) & 0xf) != 1) ++ return 0; ++ grub_printf ("freq = %x\n", grub_armv7_get_timer_frequency()); ++ timer_frequency_in_khz = 0x016e3600 / 1000; //grub_armv7_get_timer_frequency() / 1000; ++ if (timer_frequency_in_khz == 0) ++ return 0; ++ grub_install_get_time_ms (generic_get_time_ms); ++ have_timer = 1; ++ return 1; ++} ++ ++void ++grub_machine_timer_init (void) ++{ ++ grub_fdtbus_register (&sp804); ++ ++ if (!have_timer) ++ try_generic_timer (); ++ if (!have_timer) ++ grub_fatal ("No timer found"); ++} +diff --git a/grub-core/kern/arm/efi/misc.c b/grub-core/kern/arm/efi/misc.c +index 7cd41842ae7662018c2ce5ff847aeb250572ec85..c95e8299d42fff17ec9ce9e8f4452f499160e13c 100644 +--- a/grub-core/kern/arm/efi/misc.c ++++ b/grub-core/kern/arm/efi/misc.c +@@ -146,7 +146,7 @@ grub_efi_allocate_loader_memory (grub_uint32_t min_offset, grub_uint32_t size) + continue; + grub_dprintf("mm", "%s: let's allocate some (0x%x) pages @ 0x%08x...\n", + __FUNCTION__, (size >> PAGE_SHIFT), (grub_addr_t) start); +- mem = grub_efi_allocate_pages (start, (size >> PAGE_SHIFT) + 1); ++ mem = grub_efi_allocate_fixed (start, (size >> PAGE_SHIFT) + 1); + grub_dprintf("mm", "%s: retval=0x%08x\n", + __FUNCTION__, (grub_addr_t) mem); + if (! mem) +@@ -189,7 +189,7 @@ grub_efi_prepare_platform (void) + mmap_size = find_mmap_size (); + if (! mmap_size) + return GRUB_ERR_OUT_OF_MEMORY; +- mmap_buf = grub_efi_allocate_pages (0, page_align (mmap_size) >> 12); ++ mmap_buf = grub_efi_allocate_any_pages (page_align (mmap_size) >> 12); + if (! mmap_buf) + return GRUB_ERR_OUT_OF_MEMORY; + +diff --git a/grub-core/kern/arm/uboot/init.c b/grub-core/kern/arm/uboot/init.c +new file mode 100644 +index 0000000000000000000000000000000000000000..2a6aa3fdd3dd049848015f6c67dfc0f30a79a9c4 +--- /dev/null ++++ b/grub-core/kern/arm/uboot/init.c +@@ -0,0 +1,70 @@ ++/* init.c - generic U-Boot initialization and finalization */ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2016 Free Software Foundation, Inc. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++#include ++#include ++#include ++ ++extern int (*grub_uboot_syscall_ptr) (int, int *, ...); ++ ++grub_uint32_t ++grub_uboot_get_machine_type (void) ++{ ++ return grub_arm_saved_registers.r[1]; ++} ++ ++grub_addr_t ++grub_uboot_get_boot_data (void) ++{ ++ return grub_arm_saved_registers.r[2]; ++} ++ ++int ++grub_uboot_api_init (void) ++{ ++ struct api_signature *start, *end; ++ struct api_signature *p; ++ grub_addr_t grub_uboot_search_hint = grub_arm_saved_registers.sp; ++ if (grub_uboot_search_hint) ++ { ++ /* Extended search range to work around Trim Slice U-Boot issue */ ++ start = (struct api_signature *) ((grub_uboot_search_hint & ~0x000fffff) ++ - 0x00500000); ++ end = ++ (struct api_signature *) ((grub_addr_t) start + UBOOT_API_SEARCH_LEN - ++ API_SIG_MAGLEN + 0x00500000); ++ } ++ else ++ { ++ start = 0; ++ end = (struct api_signature *) (256 * 1024 * 1024); ++ } ++ ++ /* Structure alignment is (at least) 8 bytes */ ++ for (p = start; p < end; p = (void *) ((grub_addr_t) p + 8)) ++ { ++ if (grub_memcmp (&(p->magic), API_SIG_MAGIC, API_SIG_MAGLEN) == 0) ++ { ++ grub_uboot_syscall_ptr = p->syscall; ++ return p->version; ++ } ++ } ++ ++ return 0; ++} +diff --git a/grub-core/kern/coreboot/cbtable.c b/grub-core/kern/coreboot/cbtable.c +new file mode 100644 +index 0000000000000000000000000000000000000000..aec63dbd1209e4c3cbbe165d54a78277ea72f361 +--- /dev/null ++++ b/grub-core/kern/coreboot/cbtable.c +@@ -0,0 +1,72 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2007,2008,2013 Free Software Foundation, Inc. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#pragma GCC diagnostic ignored "-Wcast-align" ++ ++/* Helper for grub_linuxbios_table_iterate. */ ++int ++grub_linuxbios_check_signature (grub_linuxbios_table_header_t tbl_header) ++{ ++ if (! grub_memcmp (tbl_header->signature, "LBIO", 4)) ++ return 1; ++ ++ return 0; ++} ++ ++grub_err_t ++grub_linuxbios_table_iterate (int (*hook) (grub_linuxbios_table_item_t, ++ void *), ++ void *hook_data) ++{ ++ grub_linuxbios_table_header_t table_header = grub_linuxbios_get_tables (); ++ grub_linuxbios_table_item_t table_item; ++ ++ if (!table_header) ++ return 0; ++ ++signature_found: ++ ++ table_item = ++ (grub_linuxbios_table_item_t) ((char *) table_header + ++ table_header->header_size); ++ for (; table_item < (grub_linuxbios_table_item_t) ((char *) table_header ++ + table_header->header_size ++ + table_header->table_size); ++ table_item = (grub_linuxbios_table_item_t) ((char *) table_item + table_item->size)) ++ { ++ if (table_item->tag == GRUB_LINUXBIOS_MEMBER_LINK ++ && grub_linuxbios_check_signature ((grub_linuxbios_table_header_t) (grub_addr_t) ++ *(grub_uint64_t *) (table_item + 1))) ++ { ++ table_header = (grub_linuxbios_table_header_t) (grub_addr_t) ++ *(grub_uint64_t *) (table_item + 1); ++ goto signature_found; ++ } ++ if (hook (table_item, hook_data)) ++ return 1; ++ } ++ ++ return 0; ++} +diff --git a/grub-core/kern/i386/coreboot/mmap.c b/grub-core/kern/coreboot/mmap.c +similarity index 97% +rename from grub-core/kern/i386/coreboot/mmap.c +rename to grub-core/kern/coreboot/mmap.c +index 4d29f6b7d90591939cf5d837b39c5d259a55efb0..caf8f7cef1b4552c720eb3b7ca355eb6cec32955 100644 +--- a/grub-core/kern/i386/coreboot/mmap.c ++++ b/grub-core/kern/coreboot/mmap.c +@@ -16,8 +16,8 @@ + * along with GRUB. If not, see . + */ + +-#include +-#include ++#include ++#include + #include + #include + #include +@@ -49,6 +49,7 @@ iterate_linuxbios_table (grub_linuxbios_table_item_t table_item, void *data) + { + grub_uint64_t start = mem_region->addr; + grub_uint64_t end = mem_region->addr + mem_region->size; ++#ifdef __i386__ + /* Mark region 0xa0000 - 0x100000 as reserved. */ + if (start < 0x100000 && end >= 0xa0000 + && mem_region->type == GRUB_MACHINE_MEMORY_AVAILABLE) +@@ -75,6 +76,7 @@ iterate_linuxbios_table (grub_linuxbios_table_item_t table_item, void *data) + if (end <= start) + continue; + } ++#endif + if (ctx->hook (start, end - start, + /* Multiboot mmaps match with the coreboot mmap + definition. Therefore, we can just pass type +diff --git a/grub-core/kern/efi/mm.c b/grub-core/kern/efi/mm.c +index 20a47aaf5d0df376090510ddb8337ecc8aa18e98..ac2a4c556b8d4cb21998b112e27b6407fd7126d1 100644 +--- a/grub-core/kern/efi/mm.c ++++ b/grub-core/kern/efi/mm.c +@@ -51,36 +51,20 @@ int grub_efi_is_finished = 0; + + /* Allocate pages. Return the pointer to the first of allocated pages. */ + void * +-grub_efi_allocate_pages (grub_efi_physical_address_t address, +- grub_efi_uintn_t pages) ++grub_efi_allocate_pages_real (grub_efi_physical_address_t address, ++ grub_efi_uintn_t pages, ++ grub_efi_allocate_type_t alloctype, ++ grub_efi_memory_type_t memtype) + { +- grub_efi_allocate_type_t type; + grub_efi_status_t status; + grub_efi_boot_services_t *b; + +-#if 1 + /* Limit the memory access to less than 4GB for 32-bit platforms. */ + if (address > GRUB_EFI_MAX_USABLE_ADDRESS) + return 0; +-#endif +- +-#if 1 +- if (address == 0) +- { +- type = GRUB_EFI_ALLOCATE_MAX_ADDRESS; +- address = GRUB_EFI_MAX_USABLE_ADDRESS; +- } +- else +- type = GRUB_EFI_ALLOCATE_ADDRESS; +-#else +- if (address == 0) +- type = GRUB_EFI_ALLOCATE_ANY_PAGES; +- else +- type = GRUB_EFI_ALLOCATE_ADDRESS; +-#endif + + b = grub_efi_system_table->boot_services; +- status = efi_call_4 (b->allocate_pages, type, GRUB_EFI_LOADER_DATA, pages, &address); ++ status = efi_call_4 (b->allocate_pages, alloctype, memtype, pages, &address); + if (status != GRUB_EFI_SUCCESS) + return 0; + +@@ -89,7 +73,7 @@ grub_efi_allocate_pages (grub_efi_physical_address_t address, + /* Uggh, the address 0 was allocated... This is too annoying, + so reallocate another one. */ + address = GRUB_EFI_MAX_USABLE_ADDRESS; +- status = efi_call_4 (b->allocate_pages, type, GRUB_EFI_LOADER_DATA, pages, &address); ++ status = efi_call_4 (b->allocate_pages, alloctype, memtype, pages, &address); + grub_efi_free_pages (0, pages); + if (status != GRUB_EFI_SUCCESS) + return 0; +@@ -98,6 +82,23 @@ grub_efi_allocate_pages (grub_efi_physical_address_t address, + return (void *) ((grub_addr_t) address); + } + ++void * ++grub_efi_allocate_any_pages (grub_efi_uintn_t pages) ++{ ++ return grub_efi_allocate_pages_real (GRUB_EFI_MAX_USABLE_ADDRESS, ++ pages, GRUB_EFI_ALLOCATE_MAX_ADDRESS, ++ GRUB_EFI_LOADER_DATA); ++} ++ ++void * ++grub_efi_allocate_fixed (grub_efi_physical_address_t address, ++ grub_efi_uintn_t pages) ++{ ++ return grub_efi_allocate_pages_real (address, pages, ++ GRUB_EFI_ALLOCATE_ADDRESS, ++ GRUB_EFI_LOADER_DATA); ++} ++ + /* Free pages starting from ADDRESS. */ + void + grub_efi_free_pages (grub_efi_physical_address_t address, +@@ -402,7 +403,9 @@ add_memory_regions (grub_efi_memory_descriptor_t *memory_map, + pages = required_pages; + } + +- addr = grub_efi_allocate_pages (start, pages); ++ addr = grub_efi_allocate_pages_real (start, pages, ++ GRUB_EFI_ALLOCATE_ADDRESS, ++ GRUB_EFI_LOADER_CODE); + if (! addr) + grub_fatal ("cannot allocate conventional memory %p with %u pages", + (void *) ((grub_addr_t) start), +@@ -454,8 +457,7 @@ grub_efi_mm_init (void) + int mm_status; + + /* Prepare a memory region to store two memory maps. */ +- memory_map = grub_efi_allocate_pages (0, +- 2 * BYTES_TO_PAGES (MEMORY_MAP_SIZE)); ++ memory_map = grub_efi_allocate_any_pages (2 * BYTES_TO_PAGES (MEMORY_MAP_SIZE)); + if (! memory_map) + grub_fatal ("cannot allocate memory"); + +@@ -473,7 +475,7 @@ grub_efi_mm_init (void) + /* Freeing/allocating operations may increase memory map size. */ + map_size += desc_size * 32; + +- memory_map = grub_efi_allocate_pages (0, 2 * BYTES_TO_PAGES (map_size)); ++ memory_map = grub_efi_allocate_any_pages (2 * BYTES_TO_PAGES (map_size)); + if (! memory_map) + grub_fatal ("cannot allocate memory"); + +diff --git a/grub-core/kern/i386/coreboot/cbtable.c b/grub-core/kern/i386/coreboot/cbtable.c +index 1669bc0ca23a2fe5dcfb8e2b6c973ddb5e27e880..34a2b59be1ffa926e9dcc931140695cc82be223c 100644 +--- a/grub-core/kern/i386/coreboot/cbtable.c ++++ b/grub-core/kern/i386/coreboot/cbtable.c +@@ -17,7 +17,7 @@ + */ + + #include +-#include ++#include + #include + #include + #include +@@ -25,59 +25,20 @@ + + GRUB_MOD_LICENSE ("GPLv3+"); + +-/* Helper for grub_linuxbios_table_iterate. */ +-static int +-check_signature (grub_linuxbios_table_header_t tbl_header) +-{ +- if (! grub_memcmp (tbl_header->signature, "LBIO", 4)) +- return 1; +- +- return 0; +-} +- +-grub_err_t +-grub_linuxbios_table_iterate (int (*hook) (grub_linuxbios_table_item_t, +- void *), +- void *hook_data) ++grub_linuxbios_table_header_t ++grub_linuxbios_get_tables (void) + { + grub_linuxbios_table_header_t table_header; +- grub_linuxbios_table_item_t table_item; +- + /* Assuming table_header is aligned to its size (8 bytes). */ +- + for (table_header = (grub_linuxbios_table_header_t) 0x500; + table_header < (grub_linuxbios_table_header_t) 0x1000; table_header++) +- if (check_signature (table_header)) +- goto signature_found; ++ if (grub_linuxbios_check_signature (table_header)) ++ return table_header; + + for (table_header = (grub_linuxbios_table_header_t) 0xf0000; + table_header < (grub_linuxbios_table_header_t) 0x100000; table_header++) +- if (check_signature (table_header)) +- goto signature_found; +- +- return 0; +- +-signature_found: +- +- table_item = +- (grub_linuxbios_table_item_t) ((char *) table_header + +- table_header->header_size); +- for (; table_item < (grub_linuxbios_table_item_t) ((char *) table_header +- + table_header->header_size +- + table_header->table_size); +- table_item = (grub_linuxbios_table_item_t) ((char *) table_item + table_item->size)) +- { +- if (table_item->tag == GRUB_LINUXBIOS_MEMBER_LINK +- && check_signature ((grub_linuxbios_table_header_t) (grub_addr_t) +- *(grub_uint64_t *) (table_item + 1))) +- { +- table_header = (grub_linuxbios_table_header_t) (grub_addr_t) +- *(grub_uint64_t *) (table_item + 1); +- goto signature_found; +- } +- if (hook (table_item, hook_data)) +- return 1; +- } ++ if (grub_linuxbios_check_signature (table_header)) ++ return table_header; + + return 0; + } +diff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c +index d1a54df6c12e3358e07aa86366c65af22ca3af5c..3b633d51f4c63e2983e8b3419dc057437224fb93 100644 +--- a/grub-core/kern/misc.c ++++ b/grub-core/kern/misc.c +@@ -391,12 +391,13 @@ grub_strtoull (const char *str, char **end, int base) + unsigned long digit; + + digit = grub_tolower (*str) - '0'; +- if (digit > 9) +- { +- digit += '0' - 'a' + 10; +- if (digit >= (unsigned long) base) +- break; +- } ++ if (digit >= 'a' - '0') ++ digit += '0' - 'a' + 10; ++ else if (digit > 9) ++ break; ++ ++ if (digit >= (unsigned long) base) ++ break; + + found = 1; + +diff --git a/grub-core/kern/uboot/init.c b/grub-core/kern/uboot/init.c +index 5dcc106ed9bcc1fa2cdbe2ba6cbb9e709420ceb3..3e338645c573aa707343235029d9fc45d515a9dc 100644 +--- a/grub-core/kern/uboot/init.c ++++ b/grub-core/kern/uboot/init.c +@@ -36,30 +36,14 @@ + extern char __bss_start[]; + extern char _end[]; + extern grub_size_t grub_total_module_size; +-extern int (*grub_uboot_syscall_ptr) (int, int *, ...); + static unsigned long timer_start; + +-extern grub_uint32_t grub_uboot_machine_type; +-extern grub_addr_t grub_uboot_boot_data; +- + void + grub_exit (void) + { + grub_uboot_return (0); + } + +-grub_uint32_t +-grub_uboot_get_machine_type (void) +-{ +- return grub_uboot_machine_type; +-} +- +-grub_addr_t +-grub_uboot_get_boot_data (void) +-{ +- return grub_uboot_boot_data; +-} +- + static grub_uint64_t + uboot_timer_ms (void) + { +diff --git a/grub-core/kern/uboot/uboot.c b/grub-core/kern/uboot/uboot.c +index 6800a4beb1c4e83ef9f4ac5da872d2557d8471e1..cf0168e62ddd26db50efd2351499fa7f74fce26c 100644 +--- a/grub-core/kern/uboot/uboot.c ++++ b/grub-core/kern/uboot/uboot.c +@@ -39,48 +39,13 @@ + * returns: 0 if the call not found, 1 if serviced + */ + +-extern int (*grub_uboot_syscall_ptr) (int, int *, ...); + extern int grub_uboot_syscall (int, int *, ...); +-extern grub_addr_t grub_uboot_search_hint; + + static struct sys_info uboot_sys_info; + static struct mem_region uboot_mem_info[5]; + static struct device_info * devices; + static int num_devices; + +-int +-grub_uboot_api_init (void) +-{ +- struct api_signature *start, *end; +- struct api_signature *p; +- +- if (grub_uboot_search_hint) +- { +- /* Extended search range to work around Trim Slice U-Boot issue */ +- start = (struct api_signature *) ((grub_uboot_search_hint & ~0x000fffff) +- - 0x00500000); +- end = +- (struct api_signature *) ((grub_addr_t) start + UBOOT_API_SEARCH_LEN - +- API_SIG_MAGLEN + 0x00500000); +- } +- else +- { +- start = 0; +- end = (struct api_signature *) (256 * 1024 * 1024); +- } +- +- /* Structure alignment is (at least) 8 bytes */ +- for (p = start; p < end; p = (void *) ((grub_addr_t) p + 8)) +- { +- if (grub_memcmp (&(p->magic), API_SIG_MAGIC, API_SIG_MAGLEN) == 0) +- { +- grub_uboot_syscall_ptr = p->syscall; +- return p->version; +- } +- } +- +- return 0; +-} + + /* + * All functions below are wrappers around the grub_uboot_syscall() function +diff --git a/grub-core/lib/crypto.c b/grub-core/lib/crypto.c +index 683a8aaa711c4eab0208d116cd7275a6ac678986..ca334d5a40e0716bdc9afbb79135c47d174532da 100644 +--- a/grub-core/lib/crypto.c ++++ b/grub-core/lib/crypto.c +@@ -462,7 +462,7 @@ grub_password_get (char buf[], unsigned buf_size) + if (key == '\n' || key == '\r') + break; + +- if (key == '\e') ++ if (key == GRUB_TERM_ESC) + { + cur_len = 0; + break; +@@ -487,7 +487,7 @@ grub_password_get (char buf[], unsigned buf_size) + grub_xputs ("\n"); + grub_refresh (); + +- return (key != '\e'); ++ return (key != GRUB_TERM_ESC); + } + #endif + +diff --git a/grub-core/lib/uboot/datetime.c b/grub-core/lib/dummy/datetime.c +similarity index 91% +rename from grub-core/lib/uboot/datetime.c +rename to grub-core/lib/dummy/datetime.c +index 4be716928a55b789510dfdcdd1833e29e5cd11fe..cf693fc6b621376b5cae0ca0a74b4421799b5a9e 100644 +--- a/grub-core/lib/uboot/datetime.c ++++ b/grub-core/lib/dummy/datetime.c +@@ -18,7 +18,6 @@ + + #include + #include +-#include + #include + #include + +@@ -30,12 +29,12 @@ grub_err_t + grub_get_datetime (struct grub_datetime *datetime __attribute__ ((unused))) + { + return grub_error (GRUB_ERR_INVALID_COMMAND, +- "can\'t get datetime using U-Boot"); ++ "can\'t get datetime on this machine"); + } + + grub_err_t + grub_set_datetime (struct grub_datetime * datetime __attribute__ ((unused))) + { + return grub_error (GRUB_ERR_INVALID_COMMAND, +- "can\'t set datetime using U-Boot"); ++ "can\'t set datetime on this machine"); + } +diff --git a/grub-core/lib/uboot/halt.c b/grub-core/lib/dummy/halt.c +similarity index 100% +rename from grub-core/lib/uboot/halt.c +rename to grub-core/lib/dummy/halt.c +diff --git a/grub-core/lib/dummy/reboot.c b/grub-core/lib/dummy/reboot.c +new file mode 100644 +index 0000000000000000000000000000000000000000..b8cbed8f8117ca9c53cc2087dee87ae68876d64f +--- /dev/null ++++ b/grub-core/lib/dummy/reboot.c +@@ -0,0 +1,32 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2013 Free Software Foundation, Inc. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++#include ++#include ++#include ++#include ++ ++void ++grub_reboot (void) ++{ ++ grub_machine_fini (GRUB_LOADER_FLAG_NORETURN); ++ ++ /* Just stop here */ ++ ++ while (1); ++} +diff --git a/grub-core/lib/fdt.c b/grub-core/lib/fdt.c +index b5d520f208886aa663d4aac36cec9b43a2d0da42..2705f2629b9d4d1d2b53c34fec9022e991b6ac17 100644 +--- a/grub-core/lib/fdt.c ++++ b/grub-core/lib/fdt.c +@@ -102,13 +102,13 @@ static grub_uint32_t *get_next_node (const void *fdt, char *node_name) + static int get_mem_rsvmap_size (const void *fdt) + { + int size = 0; +- grub_uint64_t *ptr = (void *) ((grub_addr_t) fdt +- + grub_fdt_get_off_mem_rsvmap (fdt)); ++ grub_unaligned_uint64_t *ptr = (void *) ((grub_addr_t) fdt ++ + grub_fdt_get_off_mem_rsvmap (fdt)); + + do + { + size += 2 * sizeof(*ptr); +- if (!*ptr && !*(ptr + 1)) ++ if (!ptr[0].val && !ptr[1].val) + return size; + ptr += 2; + } while ((grub_addr_t) ptr <= (grub_addr_t) fdt + grub_fdt_get_totalsize (fdt) +@@ -229,7 +229,7 @@ static int rearrange_blocks (void *fdt, unsigned int clearance) + return 0; + } + +-static grub_uint32_t *find_prop (void *fdt, unsigned int nodeoffset, ++static grub_uint32_t *find_prop (const void *fdt, unsigned int nodeoffset, + const char *name) + { + grub_uint32_t *prop = (void *) ((grub_addr_t) fdt +@@ -268,9 +268,9 @@ static grub_uint32_t *find_prop (void *fdt, unsigned int nodeoffset, + the size allocated for the FDT; if this function is called before the other + functions in this file and returns success, the other functions are + guaranteed not to access memory locations outside the allocated memory. */ +-int grub_fdt_check_header_nosize (void *fdt) ++int grub_fdt_check_header_nosize (const void *fdt) + { +- if (((grub_addr_t) fdt & 0x7) || (grub_fdt_get_magic (fdt) != FDT_MAGIC) ++ if (((grub_addr_t) fdt & 0x3) || (grub_fdt_get_magic (fdt) != FDT_MAGIC) + || (grub_fdt_get_version (fdt) < FDT_SUPPORTED_VERSION) + || (grub_fdt_get_last_comp_version (fdt) > FDT_SUPPORTED_VERSION) + || (grub_fdt_get_off_dt_struct (fdt) & 0x00000003) +@@ -286,7 +286,7 @@ int grub_fdt_check_header_nosize (void *fdt) + return 0; + } + +-int grub_fdt_check_header (void *fdt, unsigned int size) ++int grub_fdt_check_header (const void *fdt, unsigned int size) + { + if (size < sizeof (grub_fdt_header_t) + || (grub_fdt_get_totalsize (fdt) > size) +@@ -295,52 +295,105 @@ int grub_fdt_check_header (void *fdt, unsigned int size) + return 0; + } + ++static const grub_uint32_t * ++advance_token (const void *fdt, const grub_uint32_t *token, const grub_uint32_t *end, int skip_current) ++{ ++ for (; token < end; skip_current = 0) ++ { ++ switch (grub_be_to_cpu32 (*token)) ++ { ++ case FDT_BEGIN_NODE: ++ if (skip_current) ++ { ++ token = get_next_node (fdt, (char *) (token + 1)); ++ continue; ++ } ++ char *ptr; ++ for (ptr = (char *) (token + 1); *ptr && ptr < (char *) end; ptr++) ++ ; ++ if (ptr >= (char *) end) ++ return 0; ++ return token; ++ case FDT_PROP: ++ /* Skip property token and following data (len, nameoff and property ++ value). */ ++ if (token >= end - 1) ++ return 0; ++ token += prop_entry_size(grub_be_to_cpu32(*(token + 1))) ++ / sizeof(*token); ++ break; ++ case FDT_NOP: ++ token++; ++ break; ++ default: ++ return 0; ++ } ++ } ++ return 0; ++} ++ ++int grub_fdt_next_node (const void *fdt, unsigned int currentoffset) ++{ ++ const grub_uint32_t *token = (const grub_uint32_t *) fdt + (currentoffset + grub_fdt_get_off_dt_struct (fdt)) / 4; ++ token = advance_token (fdt, token, (const void *) struct_end (fdt), 1); ++ if (!token) ++ return -1; ++ return (int) ((grub_addr_t) token - (grub_addr_t) fdt ++ - grub_fdt_get_off_dt_struct (fdt)); ++} ++ ++int grub_fdt_first_node (const void *fdt, unsigned int parentoffset) ++{ ++ const grub_uint32_t *token, *end; ++ char *node_name; ++ ++ if (parentoffset & 0x3) ++ return -1; ++ token = (const void *) ((grub_addr_t) fdt + grub_fdt_get_off_dt_struct(fdt) ++ + parentoffset); ++ end = (const void *) struct_end (fdt); ++ if ((token >= end) || (grub_be_to_cpu32(*token) != FDT_BEGIN_NODE)) ++ return -1; ++ SKIP_NODE_NAME(node_name, token, end); ++ token = advance_token (fdt, token, end, 0); ++ if (!token) ++ return -1; ++ return (int) ((grub_addr_t) token - (grub_addr_t) fdt ++ - grub_fdt_get_off_dt_struct (fdt)); ++} ++ + /* Find a direct sub-node of a given parent node. */ + int grub_fdt_find_subnode (const void *fdt, unsigned int parentoffset, + const char *name) + { +- grub_uint32_t *token, *end; +- char *node_name; ++ const grub_uint32_t *token, *end; ++ const char *node_name; ++ int skip_current = 0; + + if (parentoffset & 0x3) + return -1; +- token = (void *) ((grub_addr_t) fdt + grub_fdt_get_off_dt_struct(fdt) ++ token = (const void *) ((grub_addr_t) fdt + grub_fdt_get_off_dt_struct(fdt) + + parentoffset); +- end = (void *) struct_end (fdt); ++ end = (const void *) struct_end (fdt); + if ((token >= end) || (grub_be_to_cpu32(*token) != FDT_BEGIN_NODE)) + return -1; + SKIP_NODE_NAME(node_name, token, end); +- while (token < end) +- { +- switch (grub_be_to_cpu32(*token)) +- { +- case FDT_BEGIN_NODE: +- node_name = (char *) (token + 1); +- if (node_name + grub_strlen (name) >= (char *) end) +- return -1; +- if (!grub_strcmp (node_name, name)) +- return (int) ((grub_addr_t) token - (grub_addr_t) fdt +- - grub_fdt_get_off_dt_struct (fdt)); +- token = get_next_node (fdt, node_name); +- if (!token) +- return -1; +- break; +- case FDT_PROP: +- /* Skip property token and following data (len, nameoff and property +- value). */ +- if (token >= end - 1) +- return -1; +- token += prop_entry_size(grub_be_to_cpu32(*(token + 1))) +- / sizeof(*token); +- break; +- case FDT_NOP: +- token++; +- break; +- default: +- return -1; +- } ++ while (1) { ++ token = advance_token (fdt, token, end, skip_current); ++ if (!token) ++ return -1; ++ skip_current = 1; ++ node_name = (const char *) token + 4; ++ if (grub_strcmp (node_name, name) == 0) ++ return (int) ((grub_addr_t) token - (grub_addr_t) fdt ++ - grub_fdt_get_off_dt_struct (fdt)); + } +- return -1; ++} ++ ++const char * ++grub_fdt_get_nodename (const void *fdt, unsigned int nodeoffset) ++{ ++ return (const char *) fdt + grub_fdt_get_off_dt_struct(fdt) + nodeoffset + 4; + } + + int grub_fdt_add_subnode (void *fdt, unsigned int parentoffset, +@@ -359,6 +412,24 @@ int grub_fdt_add_subnode (void *fdt, unsigned int parentoffset, + return add_subnode (fdt, parentoffset, name); + } + ++const void * ++grub_fdt_get_prop (const void *fdt, unsigned int nodeoffset, const char *name, ++ grub_uint32_t *len) ++{ ++ grub_uint32_t *prop; ++ if ((nodeoffset >= grub_fdt_get_size_dt_struct (fdt)) || (nodeoffset & 0x3) ++ || (grub_be_to_cpu32(*(grub_uint32_t *) ((grub_addr_t) fdt ++ + grub_fdt_get_off_dt_struct (fdt) + nodeoffset)) ++ != FDT_BEGIN_NODE)) ++ return 0; ++ prop = find_prop (fdt, nodeoffset, name); ++ if (!prop) ++ return 0; ++ if (len) ++ *len = grub_be_to_cpu32 (*(prop + 1)); ++ return prop + 3; ++} ++ + int grub_fdt_set_prop (void *fdt, unsigned int nodeoffset, const char *name, + const void *val, grub_uint32_t len) + { +diff --git a/grub-core/loader/arm/linux.c b/grub-core/loader/arm/linux.c +index 5b39f02bb2e592d85639891db6eb68a97ce12dfa..e64c79a95774e83dfce7a107a288598c77211935 100644 +--- a/grub-core/loader/arm/linux.c ++++ b/grub-core/loader/arm/linux.c +@@ -42,7 +42,7 @@ static grub_size_t linux_size; + static char *linux_args; + + static grub_uint32_t machine_type; +-static void *fdt_addr; ++static const void *current_fdt; + + typedef void (*kernel_entry_t) (int, unsigned long, void *); + +@@ -54,9 +54,9 @@ typedef void (*kernel_entry_t) (int, unsigned long, void *); + #define LINUX_FDT_PHYS_OFFSET (LINUX_INITRD_PHYS_OFFSET - 0x10000) + + static grub_size_t +-get_atag_size (grub_uint32_t *atag) ++get_atag_size (const grub_uint32_t *atag) + { +- grub_uint32_t *atag0 = atag; ++ const grub_uint32_t *atag0 = atag; + while (atag[0] && atag[1]) + atag += atag[0]; + return atag - atag0; +@@ -68,10 +68,11 @@ get_atag_size (grub_uint32_t *atag) + * Merges in command line parameters and sets up initrd addresses. + */ + static grub_err_t +-linux_prepare_atag (void) ++linux_prepare_atag (void *target_atag) + { +- grub_uint32_t *atag_orig = (grub_uint32_t *) fdt_addr; +- grub_uint32_t *tmp_atag, *from, *to; ++ const grub_uint32_t *atag_orig = (const grub_uint32_t *) current_fdt; ++ grub_uint32_t *tmp_atag, *to; ++ const grub_uint32_t *from; + grub_size_t tmp_size; + grub_size_t arg_size = grub_strlen (linux_args); + char *cmdline_orig = NULL; +@@ -142,7 +143,7 @@ linux_prepare_atag (void) + to += 2; + + /* Copy updated FDT to its launch location */ +- grub_memcpy (atag_orig, tmp_atag, sizeof (grub_uint32_t) * (to - tmp_atag)); ++ grub_memcpy (target_atag, tmp_atag, sizeof (grub_uint32_t) * (to - tmp_atag)); + grub_free (tmp_atag); + + grub_dprintf ("loader", "ATAG updated for Linux boot\n"); +@@ -156,19 +157,19 @@ linux_prepare_atag (void) + * Merges in command line parameters and sets up initrd addresses. + */ + static grub_err_t +-linux_prepare_fdt (void) ++linux_prepare_fdt (void *target_fdt) + { + int node; + int retval; + int tmp_size; + void *tmp_fdt; + +- tmp_size = grub_fdt_get_totalsize (fdt_addr) + 0x100 + grub_strlen (linux_args); ++ tmp_size = grub_fdt_get_totalsize (current_fdt) + 0x100 + grub_strlen (linux_args); + tmp_fdt = grub_malloc (tmp_size); + if (!tmp_fdt) + return grub_errno; + +- grub_memcpy (tmp_fdt, fdt_addr, grub_fdt_get_totalsize (fdt_addr)); ++ grub_memcpy (tmp_fdt, current_fdt, grub_fdt_get_totalsize (current_fdt)); + grub_fdt_set_totalsize (tmp_fdt, tmp_size); + + /* Find or create '/chosen' node */ +@@ -209,7 +210,7 @@ linux_prepare_fdt (void) + } + + /* Copy updated FDT to its launch location */ +- grub_memcpy (fdt_addr, tmp_fdt, tmp_size); ++ grub_memcpy (target_fdt, tmp_fdt, tmp_size); + grub_free (tmp_fdt); + + grub_dprintf ("loader", "FDT updated for Linux boot\n"); +@@ -226,16 +227,17 @@ linux_boot (void) + { + kernel_entry_t linuxmain; + int fdt_valid, atag_valid; ++ void *target_fdt = 0; + +- fdt_valid = (fdt_addr && grub_fdt_check_header_nosize (fdt_addr) == 0); +- atag_valid = ((((grub_uint16_t *) fdt_addr)[3] & ~3) == 0x5440 +- && *((grub_uint32_t *) fdt_addr)); ++ fdt_valid = (current_fdt && grub_fdt_check_header_nosize (current_fdt) == 0); ++ atag_valid = ((((const grub_uint16_t *) current_fdt)[3] & ~3) == 0x5440 ++ && *((const grub_uint32_t *) current_fdt)); + grub_dprintf ("loader", "atag: %p, %x, %x, %s, %s\n", +- fdt_addr, +- ((grub_uint16_t *) fdt_addr)[3], +- *((grub_uint32_t *) fdt_addr), +- (char *) fdt_addr, +- (char *) fdt_addr + 1); ++ current_fdt, ++ ((const grub_uint16_t *) current_fdt)[3], ++ *((const grub_uint32_t *) current_fdt), ++ (const char *) current_fdt, ++ (const char *) current_fdt + 1); + + if (!fdt_valid && machine_type == GRUB_ARM_MACHINE_TYPE_FDT) + return grub_error (GRUB_ERR_FILE_NOT_FOUND, +@@ -245,23 +247,40 @@ linux_boot (void) + + grub_dprintf ("loader", "Kernel at: 0x%x\n", linux_addr); + ++ if (fdt_valid || atag_valid) ++ { ++#ifdef GRUB_MACHINE_EFI ++ grub_size_t size; ++ if (fdt_valid) ++ size = grub_fdt_get_totalsize (current_fdt); ++ else ++ size = 4 * get_atag_size (current_fdt); ++ size += grub_strlen (linux_args) + 256; ++ target_fdt = grub_efi_allocate_loader_memory (LINUX_FDT_PHYS_OFFSET, size); ++ if (!target_fdt) ++ return grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("out of memory")); ++#else ++ target_fdt = (void *) LINUX_FDT_ADDRESS; ++#endif ++ } ++ + if (fdt_valid) + { + grub_err_t err; + +- err = linux_prepare_fdt (); ++ err = linux_prepare_fdt (target_fdt); + if (err) + return err; +- grub_dprintf ("loader", "FDT @ 0x%p\n", fdt_addr); ++ grub_dprintf ("loader", "FDT @ %p\n", target_fdt); + } + else if (atag_valid) + { + grub_err_t err; + +- err = linux_prepare_atag (); ++ err = linux_prepare_atag (target_fdt); + if (err) + return err; +- grub_dprintf ("loader", "ATAG @ 0x%p\n", fdt_addr); ++ grub_dprintf ("loader", "ATAG @ %p\n", target_fdt); + } + + grub_dprintf ("loader", "Jumping to Linux...\n"); +@@ -285,7 +304,7 @@ linux_boot (void) + + grub_arm_disable_caches_mmu (); + +- linuxmain (0, machine_type, fdt_addr); ++ linuxmain (0, machine_type, target_fdt); + + return grub_error (GRUB_ERR_BAD_OS, "Linux call returned"); + } +@@ -444,11 +463,26 @@ fail: + static grub_err_t + load_dtb (grub_file_t dtb, int size) + { +- if ((grub_file_read (dtb, fdt_addr, size) != size) +- || (grub_fdt_check_header (fdt_addr, size) != 0)) +- return grub_error (GRUB_ERR_BAD_OS, N_("invalid device tree")); ++ void *new_fdt = grub_zalloc (size); ++ if (!new_fdt) ++ return grub_errno; ++ grub_dprintf ("loader", "Loading device tree to %p\n", ++ new_fdt); ++ if ((grub_file_read (dtb, new_fdt, size) != size) ++ || (grub_fdt_check_header (new_fdt, size) != 0)) ++ { ++ grub_free (new_fdt); ++ return grub_error (GRUB_ERR_BAD_OS, N_("invalid device tree")); ++ } ++ ++ grub_fdt_set_totalsize (new_fdt, size); ++ current_fdt = new_fdt; ++ /* ++ * We've successfully loaded an FDT, so any machine type passed ++ * from firmware is now obsolete. ++ */ ++ machine_type = GRUB_ARM_MACHINE_TYPE_FDT; + +- grub_fdt_set_totalsize (fdt_addr, size); + return GRUB_ERR_NONE; + } + +@@ -464,42 +498,13 @@ grub_cmd_devicetree (grub_command_t cmd __attribute__ ((unused)), + + dtb = grub_file_open (argv[0]); + if (!dtb) +- goto out; ++ return grub_errno; + + size = grub_file_size (dtb); + if (size == 0) +- { +- grub_error (GRUB_ERR_BAD_OS, "empty file"); +- goto out; +- } +- +-#ifdef GRUB_MACHINE_EFI +- fdt_addr = grub_efi_allocate_loader_memory (LINUX_FDT_PHYS_OFFSET, size); +- if (!fdt_addr) +- { +- grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("out of memory")); +- goto out; +- } +-#else +- fdt_addr = (void *) LINUX_FDT_ADDRESS; +-#endif +- +- grub_dprintf ("loader", "Loading device tree to 0x%08x\n", +- (grub_addr_t) fdt_addr); +- load_dtb (dtb, size); +- if (grub_errno != GRUB_ERR_NONE) +- { +- fdt_addr = NULL; +- goto out; +- } +- +- /* +- * We've successfully loaded an FDT, so any machine type passed +- * from firmware is now obsolete. +- */ +- machine_type = GRUB_ARM_MACHINE_TYPE_FDT; +- +- out: ++ grub_error (GRUB_ERR_BAD_OS, "empty file"); ++ else ++ load_dtb (dtb, size); + grub_file_close (dtb); + + return grub_errno; +@@ -517,7 +522,7 @@ GRUB_MOD_INIT (linux) + /* TRANSLATORS: DTB stands for device tree blob. */ + 0, N_("Load DTB file.")); + my_mod = mod; +- fdt_addr = (void *) grub_arm_firmware_get_boot_data (); ++ current_fdt = (const void *) grub_arm_firmware_get_boot_data (); + machine_type = grub_arm_firmware_get_machine_type (); + } + +diff --git a/grub-core/loader/arm64/linux.c b/grub-core/loader/arm64/linux.c +index 9519d2e4d3ec1229a76eb4bce773c78c7af24a6e..746edd1041599eb1bc07f27e5fc2c1cdb23b3c1f 100644 +--- a/grub-core/loader/arm64/linux.c ++++ b/grub-core/loader/arm64/linux.c +@@ -26,8 +26,8 @@ + #include + #include + #include +-#include + #include ++#include + #include + #include + #include +@@ -52,13 +52,11 @@ grub_arm64_uefi_check_image (struct grub_arm64_linux_kernel_header * lh) + if (lh->magic != GRUB_ARM64_LINUX_MAGIC) + return grub_error(GRUB_ERR_BAD_OS, "invalid magic number"); + +- if ((lh->code0 & 0xffff) != GRUB_EFI_PE_MAGIC) ++ if ((lh->code0 & 0xffff) != GRUB_PE32_MAGIC) + return grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET, + N_("plain image kernel not supported - rebuild with CONFIG_(U)EFI_STUB enabled")); + + grub_dprintf ("linux", "UEFI stub kernel:\n"); +- grub_dprintf ("linux", "text_offset = 0x%012llx\n", +- (long long unsigned) lh->text_offset); + grub_dprintf ("linux", "PE/COFF header @ %08x\n", lh->hdr_offset); + + return GRUB_ERR_NONE; +@@ -86,8 +84,8 @@ finalize_params_linux (void) + /* Set initrd info */ + if (initrd_start && initrd_end > initrd_start) + { +- grub_dprintf ("linux", "Initrd @ 0x%012lx-0x%012lx\n", +- initrd_start, initrd_end); ++ grub_dprintf ("linux", "Initrd @ %p-%p\n", ++ (void *) initrd_start, (void *) initrd_end); + + retval = grub_fdt_set_prop64 (fdt, node, "linux,initrd-start", + initrd_start); +@@ -148,8 +146,7 @@ grub_arm64_uefi_boot_image (grub_addr_t addr, grub_size_t size, char *args) + loaded_image->load_options_size = len = + (grub_strlen (args) + 1) * sizeof (grub_efi_char16_t); + loaded_image->load_options = +- grub_efi_allocate_pages (0, +- GRUB_EFI_BYTES_TO_PAGES (loaded_image->load_options_size)); ++ grub_efi_allocate_any_pages (GRUB_EFI_BYTES_TO_PAGES (loaded_image->load_options_size)); + if (!loaded_image->load_options) + return grub_errno; + +@@ -162,7 +159,7 @@ grub_arm64_uefi_boot_image (grub_addr_t addr, grub_size_t size, char *args) + + /* When successful, not reached */ + b->unload_image (image_handle); +- grub_efi_free_pages ((grub_efi_physical_address_t) loaded_image->load_options, ++ grub_efi_free_pages ((grub_addr_t) loaded_image->load_options, + GRUB_EFI_BYTES_TO_PAGES (loaded_image->load_options_size)); + + return grub_errno; +@@ -189,7 +186,7 @@ grub_linux_unload (void) + initrd_start = initrd_end = 0; + grub_free (linux_args); + if (kernel_addr) +- grub_efi_free_pages ((grub_efi_physical_address_t) kernel_addr, ++ grub_efi_free_pages ((grub_addr_t) kernel_addr, + GRUB_EFI_BYTES_TO_PAGES (kernel_size)); + grub_fdt_unload (); + return GRUB_ERR_NONE; +@@ -223,7 +220,7 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), + grub_dprintf ("linux", "Loading initrd\n"); + + initrd_pages = (GRUB_EFI_BYTES_TO_PAGES (initrd_size)); +- initrd_mem = grub_efi_allocate_pages (0, initrd_pages); ++ initrd_mem = grub_efi_allocate_any_pages (initrd_pages); + if (!initrd_mem) + { + grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("out of memory")); +@@ -241,8 +238,7 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), + fail: + grub_initrd_close (&initrd_ctx); + if (initrd_mem && !initrd_start) +- grub_efi_free_pages ((grub_efi_physical_address_t) initrd_mem, +- initrd_pages); ++ grub_efi_free_pages ((grub_addr_t) initrd_mem, initrd_pages); + + return grub_errno; + } +@@ -277,7 +273,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), + grub_loader_unset(); + + grub_dprintf ("linux", "kernel file size: %lld\n", (long long) kernel_size); +- kernel_addr = grub_efi_allocate_pages (0, GRUB_EFI_BYTES_TO_PAGES (kernel_size)); ++ kernel_addr = grub_efi_allocate_any_pages (GRUB_EFI_BYTES_TO_PAGES (kernel_size)); + grub_dprintf ("linux", "kernel numpages: %lld\n", + (long long) GRUB_EFI_BYTES_TO_PAGES (kernel_size)); + if (!kernel_addr) +@@ -329,7 +325,7 @@ fail: + grub_free (linux_args); + + if (kernel_addr && !loaded) +- grub_efi_free_pages ((grub_efi_physical_address_t) kernel_addr, ++ grub_efi_free_pages ((grub_addr_t) kernel_addr, + GRUB_EFI_BYTES_TO_PAGES (kernel_size)); + + return grub_errno; +diff --git a/grub-core/loader/arm64/xen_boot.c b/grub-core/loader/arm64/xen_boot.c +index a914eb8e2df24ebaab41a2eb0ed205bcebafcf5d..c95d6c5a868e37d4cbc923630d154b5422b37525 100644 +--- a/grub-core/loader/arm64/xen_boot.c ++++ b/grub-core/loader/arm64/xen_boot.c +@@ -27,9 +27,9 @@ + #include + #include + #include +-#include + #include + #include ++#include + #include /* required by struct xen_hypervisor_header */ + #include + #include +@@ -156,7 +156,7 @@ prepare_xen_module_params (struct xen_boot_binary *module, void *xen_boot_fdt) + grub_fdt_add_subnode (xen_boot_fdt, chosen_node, module_name); + + retval = grub_fdt_set_prop (xen_boot_fdt, module_node, "compatible", +- MODULE_CUSTOM_COMPATIBLE, sizeof(MODULE_CUSTOM_COMPATIBLE) - 1); ++ MODULE_CUSTOM_COMPATIBLE, sizeof(MODULE_CUSTOM_COMPATIBLE)); + if (retval) + return grub_error (GRUB_ERR_IO, "failed to update FDT"); + +@@ -324,10 +324,9 @@ xen_boot_binary_load (struct xen_boot_binary *binary, grub_file_t file, + grub_dprintf ("xen_loader", "Xen_boot file size: 0x%lx\n", binary->size); + + binary->start +- = (grub_addr_t) grub_efi_allocate_pages (0, +- GRUB_EFI_BYTES_TO_PAGES +- (binary->size + +- binary->align)); ++ = (grub_addr_t) grub_efi_allocate_any_pages (GRUB_EFI_BYTES_TO_PAGES ++ (binary->size + ++ binary->align)); + if (!binary->start) + { + grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("out of memory")); +@@ -379,6 +378,20 @@ grub_cmd_xen_module (grub_command_t cmd __attribute__((unused)), + + struct xen_boot_binary *module = NULL; + grub_file_t file = 0; ++ int nounzip = 0; ++ ++ if (!argc) ++ { ++ grub_error (GRUB_ERR_BAD_ARGUMENT, N_("filename expected")); ++ goto fail; ++ } ++ ++ if (grub_strcmp (argv[0], "--nounzip") == 0) ++ { ++ argv++; ++ argc--; ++ nounzip = 1; ++ } + + if (!argc) + { +@@ -403,6 +416,8 @@ grub_cmd_xen_module (grub_command_t cmd __attribute__((unused)), + + grub_dprintf ("xen_loader", "Init module and node info\n"); + ++ if (nounzip) ++ grub_file_filter_disable_compression (); + file = grub_file_open (argv[0]); + if (!file) + goto fail; +diff --git a/grub-core/loader/arm64/fdt.c b/grub-core/loader/efi/fdt.c +similarity index 91% +rename from grub-core/loader/arm64/fdt.c +rename to grub-core/loader/efi/fdt.c +index db49cf64991764686c3f643e5289abbd4874a559..17212c38d0b7496743e0bfc2e081f10cd1a2831f 100644 +--- a/grub-core/loader/arm64/fdt.c ++++ b/grub-core/loader/efi/fdt.c +@@ -18,12 +18,12 @@ + + #include + #include +-#include + #include + #include + #include + #include + #include ++#include + + static void *loaded_fdt; + static void *fdt; +@@ -32,12 +32,12 @@ void * + grub_fdt_load (grub_size_t additional_size) + { + void *raw_fdt; +- grub_size_t size; ++ unsigned int size; + + if (fdt) + { + size = GRUB_EFI_BYTES_TO_PAGES (grub_fdt_get_totalsize (fdt)); +- grub_efi_free_pages ((grub_efi_physical_address_t) fdt, size); ++ grub_efi_free_pages ((grub_addr_t) fdt, size); + } + + if (loaded_fdt) +@@ -49,8 +49,8 @@ grub_fdt_load (grub_size_t additional_size) + raw_fdt ? grub_fdt_get_totalsize (raw_fdt) : GRUB_FDT_EMPTY_TREE_SZ; + size += additional_size; + +- grub_dprintf ("linux", "allocating %ld bytes for fdt\n", size); +- fdt = grub_efi_allocate_pages (0, GRUB_EFI_BYTES_TO_PAGES (size)); ++ grub_dprintf ("linux", "allocating %d bytes for fdt\n", size); ++ fdt = grub_efi_allocate_any_pages (GRUB_EFI_BYTES_TO_PAGES (size)); + if (!fdt) + return NULL; + +@@ -88,7 +88,7 @@ grub_fdt_unload (void) { + if (!fdt) { + return; + } +- grub_efi_free_pages ((grub_efi_physical_address_t) fdt, ++ grub_efi_free_pages ((grub_addr_t) fdt, + GRUB_EFI_BYTES_TO_PAGES (grub_fdt_get_totalsize (fdt))); + fdt = NULL; + } +diff --git a/grub-core/loader/ia64/efi/linux.c b/grub-core/loader/ia64/efi/linux.c +index efaa42ccdd2bf74321de20cf5033a80676cc7dc3..750330d4572d0dcd09d02b4b75c1f03045fa897b 100644 +--- a/grub-core/loader/ia64/efi/linux.c ++++ b/grub-core/loader/ia64/efi/linux.c +@@ -252,7 +252,7 @@ allocate_pages (grub_uint64_t align, grub_uint64_t size_pages, + aligned_start += align; + if (aligned_start + size > end) + continue; +- mem = grub_efi_allocate_pages (aligned_start, size_pages); ++ mem = grub_efi_allocate_fixed (aligned_start, size_pages); + if (! mem) + { + grub_error (GRUB_ERR_OUT_OF_MEMORY, "cannot allocate memory"); +@@ -326,7 +326,7 @@ grub_linux_boot (void) + mmap_size = find_mmap_size (); + if (! mmap_size) + return grub_errno; +- mmap_buf = grub_efi_allocate_pages (0, page_align (mmap_size) >> 12); ++ mmap_buf = grub_efi_allocate_any_pages (page_align (mmap_size) >> 12); + if (! mmap_buf) + return grub_error (GRUB_ERR_IO, "cannot allocate memory map"); + err = grub_efi_finish_boot_services (&mmap_size, mmap_buf, &map_key, +@@ -422,7 +422,7 @@ grub_load_elf64 (grub_file_t file, void *buffer, const char *filename) + relocate = grub_env_get ("linux_relocate"); + if (!relocate || grub_strcmp (relocate, "force") != 0) + { +- kernel_mem = grub_efi_allocate_pages (low_addr, kernel_pages); ++ kernel_mem = grub_efi_allocate_fixed (low_addr, kernel_pages); + reloc_offset = 0; + } + /* Try to relocate. */ +@@ -524,7 +524,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), + len += grub_strlen (argv[i]) + 1; + len += sizeof (struct ia64_boot_param) + 512; /* Room for extensions. */ + boot_param_pages = page_align (len) >> 12; +- boot_param = grub_efi_allocate_pages (0, boot_param_pages); ++ boot_param = grub_efi_allocate_any_pages (boot_param_pages); + if (boot_param == 0) + { + grub_error (GRUB_ERR_OUT_OF_MEMORY, +@@ -589,7 +589,7 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), + grub_dprintf ("linux", "Loading initrd\n"); + + initrd_pages = (page_align (initrd_size) >> 12); +- initrd_mem = grub_efi_allocate_pages (0, initrd_pages); ++ initrd_mem = grub_efi_allocate_any_pages (initrd_pages); + if (! initrd_mem) + { + grub_error (GRUB_ERR_OUT_OF_MEMORY, "cannot allocate pages"); +diff --git a/grub-core/net/arp.c b/grub-core/net/arp.c +index 4b68c4151a11db214602f74e111e7552801d8450..54306e3b16d25fe5d3bdf9502683822237be488d 100644 +--- a/grub-core/net/arp.c ++++ b/grub-core/net/arp.c +@@ -111,8 +111,8 @@ grub_net_arp_send_request (struct grub_net_network_level_interface *inf, + } + + grub_err_t +-grub_net_arp_receive (struct grub_net_buff *nb, +- struct grub_net_card *card) ++grub_net_arp_receive (struct grub_net_buff *nb, struct grub_net_card *card, ++ grub_uint16_t *vlantag) + { + struct arppkt *arp_packet = (struct arppkt *) nb->data; + grub_net_network_level_address_t sender_addr, target_addr; +@@ -138,6 +138,14 @@ grub_net_arp_receive (struct grub_net_buff *nb, + + FOR_NET_NETWORK_LEVEL_INTERFACES (inf) + { ++ /* Verify vlantag id */ ++ if (inf->card == card && inf->vlantag != *vlantag) ++ { ++ grub_dprintf ("net", "invalid vlantag! %x != %x\n", ++ inf->vlantag, *vlantag); ++ break; ++ } ++ + /* Am I the protocol address target? */ + if (grub_net_addr_cmp (&inf->address, &target_addr) == 0 + && arp_packet->op == grub_cpu_to_be16_compile_time (ARP_REQUEST)) +diff --git a/grub-core/net/drivers/ieee1275/ofnet.c b/grub-core/net/drivers/ieee1275/ofnet.c +index a78d164db1a0abbaf0417f70dc7180b9b2c4df76..002446be1c385934762824a965806ffb75f422a0 100644 +--- a/grub-core/net/drivers/ieee1275/ofnet.c ++++ b/grub-core/net/drivers/ieee1275/ofnet.c +@@ -153,11 +153,11 @@ grub_ieee1275_parse_bootpath (const char *devpath, char *bootpath, + char *comma_char = 0; + char *equal_char = 0; + grub_size_t field_counter = 0; +- + grub_net_network_level_address_t client_addr, gateway_addr, subnet_mask; + grub_net_link_level_address_t hw_addr; + grub_net_interface_flags_t flags = 0; + struct grub_net_network_level_interface *inter = NULL; ++ grub_uint16_t vlantag = 0; + + hw_addr.type = GRUB_NET_LINK_LEVEL_PROTOCOL_ETHERNET; + +@@ -175,6 +175,11 @@ grub_ieee1275_parse_bootpath (const char *devpath, char *bootpath, + *equal_char = 0; + grub_env_set_net_property ((*card)->name, args, equal_char + 1, + grub_strlen(equal_char + 1)); ++ ++ if ((grub_strcmp (args, "vtag") == 0) && ++ (grub_strlen (equal_char + 1) == 8)) ++ vlantag = grub_strtoul (equal_char + 1 + 4, 0, 16); ++ + *equal_char = '='; + } + else +@@ -213,8 +218,10 @@ grub_ieee1275_parse_bootpath (const char *devpath, char *bootpath, + hw_addr.mac, sizeof(hw_addr.mac), 0); + inter = grub_net_add_addr ((*card)->name, *card, &client_addr, &hw_addr, + flags); ++ inter->vlantag = vlantag; + grub_net_add_ipv4_local (inter, + __builtin_ctz (~grub_le_to_cpu32 (subnet_mask.ipv4))); ++ + } + + if (gateway_addr.ipv4 != 0) +diff --git a/grub-core/net/ethernet.c b/grub-core/net/ethernet.c +index c397b1b348ce559070cabe1e0b6e28e4dbf254d8..4d7ceed6f93c7e87019546b544a4365a504f5f9f 100644 +--- a/grub-core/net/ethernet.c ++++ b/grub-core/net/ethernet.c +@@ -18,6 +18,7 @@ + + #include + #include ++#include + #include + #include + #include +@@ -56,10 +57,17 @@ send_ethernet_packet (struct grub_net_network_level_interface *inf, + { + struct etherhdr *eth; + grub_err_t err; ++ grub_uint8_t etherhdr_size; ++ grub_uint16_t vlantag_id = VLANTAG_IDENTIFIER; + +- COMPILE_TIME_ASSERT (sizeof (*eth) < GRUB_NET_MAX_LINK_HEADER_SIZE); ++ etherhdr_size = sizeof (*eth); ++ COMPILE_TIME_ASSERT (sizeof (*eth) + 4 < GRUB_NET_MAX_LINK_HEADER_SIZE); + +- err = grub_netbuff_push (nb, sizeof (*eth)); ++ /* Increase ethernet header in case of vlantag */ ++ if (inf->vlantag != 0) ++ etherhdr_size += 4; ++ ++ err = grub_netbuff_push (nb, etherhdr_size); + if (err) + return err; + eth = (struct etherhdr *) nb->data; +@@ -76,6 +84,19 @@ send_ethernet_packet (struct grub_net_network_level_interface *inf, + return err; + inf->card->opened = 1; + } ++ ++ /* Check and add a vlan-tag if needed. */ ++ if (inf->vlantag != 0) ++ { ++ /* Move eth type to the right */ ++ grub_memcpy ((char *) nb->data + etherhdr_size - 2, ++ (char *) nb->data + etherhdr_size - 6, 2); ++ ++ /* Add the tag in the middle */ ++ grub_memcpy ((char *) nb->data + etherhdr_size - 6, &vlantag_id, 2); ++ grub_memcpy ((char *) nb->data + etherhdr_size - 4, (char *) &(inf->vlantag), 2); ++ } ++ + return inf->card->driver->send (inf->card, nb); + } + +@@ -90,10 +111,25 @@ grub_net_recv_ethernet_packet (struct grub_net_buff *nb, + grub_net_link_level_address_t hwaddress; + grub_net_link_level_address_t src_hwaddress; + grub_err_t err; ++ grub_uint8_t etherhdr_size = sizeof (*eth); ++ grub_uint16_t vlantag = 0; ++ ++ ++ /* Check if a vlan-tag is present. If so, the ethernet header is 4 bytes */ ++ /* longer than the original one. The vlantag id is extracted and the header */ ++ /* is reseted to the original size. */ ++ if (grub_get_unaligned16 (nb->data + etherhdr_size - 2) == VLANTAG_IDENTIFIER) ++ { ++ vlantag = grub_get_unaligned16 (nb->data + etherhdr_size); ++ etherhdr_size += 4; ++ /* Move eth type to the original position */ ++ grub_memcpy((char *) nb->data + etherhdr_size - 6, ++ (char *) nb->data + etherhdr_size - 2, 2); ++ } + + eth = (struct etherhdr *) nb->data; + type = grub_be_to_cpu16 (eth->type); +- err = grub_netbuff_pull (nb, sizeof (*eth)); ++ err = grub_netbuff_pull (nb, etherhdr_size); + if (err) + return err; + +@@ -121,13 +157,14 @@ grub_net_recv_ethernet_packet (struct grub_net_buff *nb, + { + /* ARP packet. */ + case GRUB_NET_ETHERTYPE_ARP: +- grub_net_arp_receive (nb, card); ++ grub_net_arp_receive (nb, card, &vlantag); + grub_netbuff_free (nb); + return GRUB_ERR_NONE; + /* IP packet. */ + case GRUB_NET_ETHERTYPE_IP: + case GRUB_NET_ETHERTYPE_IP6: +- return grub_net_recv_ip_packets (nb, card, &hwaddress, &src_hwaddress); ++ return grub_net_recv_ip_packets (nb, card, &hwaddress, &src_hwaddress, ++ &vlantag); + } + grub_netbuff_free (nb); + return GRUB_ERR_NONE; +diff --git a/grub-core/net/ip.c b/grub-core/net/ip.c +index aba4f89087bc14b1fe28a77794dd6792beb0bf36..7c95cc7464a09af4b223c94d6653a03f0dbee062 100644 +--- a/grub-core/net/ip.c ++++ b/grub-core/net/ip.c +@@ -228,12 +228,13 @@ handle_dgram (struct grub_net_buff *nb, + grub_net_ip_protocol_t proto, + const grub_net_network_level_address_t *source, + const grub_net_network_level_address_t *dest, ++ grub_uint16_t *vlantag, + grub_uint8_t ttl) + { + struct grub_net_network_level_interface *inf = NULL; + grub_err_t err; + int multicast = 0; +- ++ + /* DHCP needs special treatment since we don't know IP yet. */ + { + struct udphdr *udph; +@@ -293,6 +294,15 @@ handle_dgram (struct grub_net_buff *nb, + && grub_net_addr_cmp (&inf->address, dest) == 0 + && grub_net_hwaddr_cmp (&inf->hwaddress, hwaddress) == 0) + break; ++ ++ /* Verify vlantag id */ ++ if (inf->card == card && inf->vlantag != *vlantag) ++ { ++ grub_dprintf ("net", "invalid vlantag! %x != %x\n", ++ inf->vlantag, *vlantag); ++ break; ++ } ++ + /* Solicited node multicast. */ + if (inf->card == card + && inf->address.type == GRUB_NET_NETWORK_LEVEL_PROTOCOL_IPV6 +@@ -383,7 +393,8 @@ static grub_err_t + grub_net_recv_ip4_packets (struct grub_net_buff *nb, + struct grub_net_card *card, + const grub_net_link_level_address_t *hwaddress, +- const grub_net_link_level_address_t *src_hwaddress) ++ const grub_net_link_level_address_t *src_hwaddress, ++ grub_uint16_t *vlantag) + { + struct iphdr *iph = (struct iphdr *) nb->data; + grub_err_t err; +@@ -458,7 +469,7 @@ grub_net_recv_ip4_packets (struct grub_net_buff *nb, + dest.ipv4 = iph->dest; + + return handle_dgram (nb, card, src_hwaddress, hwaddress, iph->protocol, +- &source, &dest, iph->ttl); ++ &source, &dest, vlantag, iph->ttl); + } + + for (prev = &reassembles, rsm = *prev; rsm; prev = &rsm->next, rsm = *prev) +@@ -594,7 +605,7 @@ grub_net_recv_ip4_packets (struct grub_net_buff *nb, + dest.ipv4 = dst; + + return handle_dgram (ret, card, src_hwaddress, +- hwaddress, proto, &source, &dest, ++ hwaddress, proto, &source, &dest, vlantag, + ttl); + } + } +@@ -652,7 +663,8 @@ static grub_err_t + grub_net_recv_ip6_packets (struct grub_net_buff *nb, + struct grub_net_card *card, + const grub_net_link_level_address_t *hwaddress, +- const grub_net_link_level_address_t *src_hwaddress) ++ const grub_net_link_level_address_t *src_hwaddress, ++ grub_uint16_t *vlantag) + { + struct ip6hdr *iph = (struct ip6hdr *) nb->data; + grub_err_t err; +@@ -703,21 +715,24 @@ grub_net_recv_ip6_packets (struct grub_net_buff *nb, + grub_memcpy (dest.ipv6, &iph->dest, sizeof (dest.ipv6)); + + return handle_dgram (nb, card, src_hwaddress, hwaddress, iph->protocol, +- &source, &dest, iph->ttl); ++ &source, &dest, vlantag, iph->ttl); + } + + grub_err_t + grub_net_recv_ip_packets (struct grub_net_buff *nb, + struct grub_net_card *card, + const grub_net_link_level_address_t *hwaddress, +- const grub_net_link_level_address_t *src_hwaddress) ++ const grub_net_link_level_address_t *src_hwaddress, ++ grub_uint16_t *vlantag) + { + struct iphdr *iph = (struct iphdr *) nb->data; + + if ((iph->verhdrlen >> 4) == 4) +- return grub_net_recv_ip4_packets (nb, card, hwaddress, src_hwaddress); ++ return grub_net_recv_ip4_packets (nb, card, hwaddress, src_hwaddress, ++ vlantag); + if ((iph->verhdrlen >> 4) == 6) +- return grub_net_recv_ip6_packets (nb, card, hwaddress, src_hwaddress); ++ return grub_net_recv_ip6_packets (nb, card, hwaddress, src_hwaddress, ++ vlantag); + grub_dprintf ("net", "Bad IP version: %d\n", (iph->verhdrlen >> 4)); + grub_netbuff_free (nb); + return GRUB_ERR_NONE; +diff --git a/grub-core/normal/auth.c b/grub-core/normal/auth.c +index 7338f8245e3a9bbe47e821fb43c2b699b9527ffb..6be678c0de1ac236b60f765e767ae43d113b1117 100644 +--- a/grub-core/normal/auth.c ++++ b/grub-core/normal/auth.c +@@ -166,13 +166,13 @@ grub_username_get (char buf[], unsigned buf_size) + if (key == '\n' || key == '\r') + break; + +- if (key == '\e') ++ if (key == GRUB_TERM_ESC) + { + cur_len = 0; + break; + } + +- if (key == '\b') ++ if (key == GRUB_TERM_BACKSPACE) + { + if (cur_len) + { +@@ -197,7 +197,7 @@ grub_username_get (char buf[], unsigned buf_size) + grub_xputs ("\n"); + grub_refresh (); + +- return (key != '\e'); ++ return (key != GRUB_TERM_ESC); + } + + grub_err_t +diff --git a/grub-core/normal/cmdline.c b/grub-core/normal/cmdline.c +index a36180d75305f421e96903a46acb9dd99af06572..c037d5050ed2b34fa3b2ac0c7564e4208ca143c4 100644 +--- a/grub-core/normal/cmdline.c ++++ b/grub-core/normal/cmdline.c +@@ -626,12 +626,12 @@ grub_cmdline_get (const char *prompt_translated) + cl_insert (cl_terms, nterms, &lpos, &llen, &max_len, &buf, kill_buf); + break; + +- case '\e': ++ case GRUB_TERM_ESC: + grub_free (cl_terms); + grub_free (buf); + return 0; + +- case '\b': ++ case GRUB_TERM_BACKSPACE: + if (lpos > 0) + { + lpos--; +diff --git a/grub-core/normal/crypto.c b/grub-core/normal/crypto.c +index 2bfd67c8ef388097701a7415df3cd7321c6a1e57..e6d345f33458a167e703235d611afdd8c2a245b0 100644 +--- a/grub-core/normal/crypto.c ++++ b/grub-core/normal/crypto.c +@@ -147,8 +147,8 @@ read_crypto_list (const char *prefix) + if (! cur->modname) + { + grub_errno = GRUB_ERR_NONE; +- grub_free (cur); + grub_free (cur->name); ++ grub_free (cur); + continue; + } + cur->next = crypto_specs; +diff --git a/grub-core/normal/menu.c b/grub-core/normal/menu.c +index 719e2fb1c260b16d96cea2b787d7f7e592b428b7..e7a83c2d6e2aaa8248ed739b28f2c6be76622eb4 100644 +--- a/grub-core/normal/menu.c ++++ b/grub-core/normal/menu.c +@@ -763,7 +763,7 @@ run_menu (grub_menu_t menu, int nested, int *auto_boot) + *auto_boot = 0; + return current_entry; + +- case '\e': ++ case GRUB_TERM_ESC: + if (nested) + { + menu_fini (); +diff --git a/grub-core/normal/menu_entry.c b/grub-core/normal/menu_entry.c +index eeeee5580abea9798278ef85cf417366cf4f0e0a..cdf3590a3646ce4be0caf99cafedcbc38cbe51e4 100644 +--- a/grub-core/normal/menu_entry.c ++++ b/grub-core/normal/menu_entry.c +@@ -1403,7 +1403,7 @@ grub_menu_entry_run (grub_menu_entry_t entry) + goto fail; + break; + +- case '\e': ++ case GRUB_TERM_ESC: + destroy_screen (screen); + return; + +diff --git a/grub-core/osdep/linux/ofpath.c b/grub-core/osdep/linux/ofpath.c +index a79682a5e31e1b4e77d9b99f55cc5a1fca9e159b..dce4e59d08184b4d712f38423612df1ff200b1d6 100644 +--- a/grub-core/osdep/linux/ofpath.c ++++ b/grub-core/osdep/linux/ofpath.c +@@ -120,6 +120,8 @@ find_obppath (const char *sysfs_path_orig) + #endif + + fd = open(path, O_RDONLY); ++ ++#ifndef __sparc__ + if (fd < 0 || fstat (fd, &st) < 0) + { + if (fd >= 0) +@@ -127,6 +129,7 @@ find_obppath (const char *sysfs_path_orig) + snprintf(path, path_size, "%s/devspec", sysfs_path); + fd = open(path, O_RDONLY); + } ++#endif + + if (fd < 0 || fstat (fd, &st) < 0) + { +diff --git a/grub-core/osdep/unix/hostdisk.c b/grub-core/osdep/unix/hostdisk.c +index 2a8c5882e3d10b98bc305a116f8cca06acfe89f5..5450cf4166e04c2cfab806e93dfa63c6abdb9698 100644 +--- a/grub-core/osdep/unix/hostdisk.c ++++ b/grub-core/osdep/unix/hostdisk.c +@@ -77,11 +77,19 @@ grub_util_get_fd_size (grub_util_fd_t fd, const char *name, unsigned *log_secsiz + int + grub_util_fd_seek (grub_util_fd_t fd, grub_uint64_t off) + { ++#if SIZEOF_OFF_T == 8 + off_t offset = (off_t) off; + + if (lseek (fd, offset, SEEK_SET) != offset) + return -1; ++#elif SIZEOF_OFF64_T == 8 ++ off64_t offset = (off64_t) off; + ++ if (lseek64 (fd, offset, SEEK_SET) != offset) ++ return -1; ++#else ++#error "No large file support" ++#endif + return 0; + } + +diff --git a/grub-core/term/arm/cros.c b/grub-core/term/arm/cros.c +new file mode 100644 +index 0000000000000000000000000000000000000000..1ff9f8ccfb8270884ba962a05ca99df4c6ed1f41 +--- /dev/null ++++ b/grub-core/term/arm/cros.c +@@ -0,0 +1,125 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * ++ * Copyright (C) 2012 Google Inc. ++ * Copyright (C) 2016 Free Software Foundation, Inc. ++ * ++ * This is based on depthcharge code. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++struct grub_ps2_state ps2_state; ++ ++struct grub_cros_ec_keyscan old_scan; ++ ++static const struct grub_fdtbus_dev *cros_ec; ++ ++static grub_uint8_t map_code[GRUB_CROS_EC_KEYSCAN_COLS][GRUB_CROS_EC_KEYSCAN_ROWS]; ++ ++static grub_uint8_t e0_translate[16] = ++ { ++ 0x1c, 0x1d, 0x35, 0x00, ++ 0x38, 0x00, 0x47, 0x48, ++ 0x49, 0x4b, 0x4d, 0x4f, ++ 0x50, 0x51, 0x52, 0x53, ++ }; ++ ++/* If there is a character pending, return it; ++ otherwise return GRUB_TERM_NO_KEY. */ ++static int ++grub_cros_keyboard_getkey (struct grub_term_input *term __attribute__ ((unused))) ++{ ++ struct grub_cros_ec_keyscan scan; ++ int i, j; ++ if (grub_cros_ec_scan_keyboard (cros_ec, &scan) < 0) ++ return GRUB_TERM_NO_KEY; ++ for (i = 0; i < GRUB_CROS_EC_KEYSCAN_COLS; i++) ++ if (scan.data[i] ^ old_scan.data[i]) ++ for (j = 0; j < GRUB_CROS_EC_KEYSCAN_ROWS; j++) ++ if ((scan.data[i] ^ old_scan.data[i]) & (1 << j)) ++ { ++ grub_uint8_t code = map_code[i][j]; ++ int ret; ++ grub_uint8_t brk = 0; ++ if (!(scan.data[i] & (1 << j))) ++ brk = 0x80; ++ grub_dprintf ("cros_keyboard", "key <%d, %d> code %x\n", i, j, code); ++ if (code < 0x60) ++ ret = grub_ps2_process_incoming_byte (&ps2_state, code | brk); ++ else if (code >= 0x60 && code < 0x70 && e0_translate[code - 0x60]) ++ { ++ grub_ps2_process_incoming_byte (&ps2_state, 0xe0); ++ ret = grub_ps2_process_incoming_byte (&ps2_state, e0_translate[code - 0x60] | brk); ++ } ++ else ++ ret = GRUB_TERM_NO_KEY; ++ old_scan.data[i] ^= (1 << j); ++ if (ret != GRUB_TERM_NO_KEY) ++ return ret; ++ } ++ return GRUB_TERM_NO_KEY; ++} ++ ++static struct grub_term_input grub_cros_keyboard_term = ++ { ++ .name = "cros_keyboard", ++ .getkey = grub_cros_keyboard_getkey ++ }; ++ ++static grub_err_t ++cros_attach (const struct grub_fdtbus_dev *dev) ++{ ++ grub_size_t keymap_size, i; ++ const grub_uint8_t *keymap = grub_fdtbus_get_prop (dev, "linux,keymap", &keymap_size); ++ ++ if (!dev->parent || !grub_cros_ec_validate (dev->parent)) ++ return GRUB_ERR_IO; ++ ++ if (keymap) ++ { ++ for (i = 0; i + 3 < keymap_size; i += 4) ++ if (keymap[i+1] < GRUB_CROS_EC_KEYSCAN_COLS && keymap[i] < GRUB_CROS_EC_KEYSCAN_ROWS ++ && keymap[i+2] == 0 && keymap[i+3] < 0x80) ++ map_code[keymap[i+1]][keymap[i]] = keymap[i+3]; ++ } ++ ++ cros_ec = dev->parent; ++ ps2_state.current_set = 1; ++ ps2_state.at_keyboard_status = 0; ++ grub_term_register_input ("cros_keyboard", &grub_cros_keyboard_term); ++ return GRUB_ERR_NONE; ++} ++ ++static struct grub_fdtbus_driver cros = ++{ ++ .compatible = "google,cros-ec-keyb", ++ .attach = cros_attach ++}; ++ ++void ++grub_cros_init (void) ++{ ++ grub_fdtbus_register (&cros); ++} +diff --git a/grub-core/term/arm/cros_ec.c b/grub-core/term/arm/cros_ec.c +new file mode 100644 +index 0000000000000000000000000000000000000000..f4144818b5bfdb9a512316ccc321586d539653ac +--- /dev/null ++++ b/grub-core/term/arm/cros_ec.c +@@ -0,0 +1,238 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * ++ * Copyright (C) 2012 Google Inc. ++ * Copyright (C) 2016 Free Software Foundation, Inc. ++ * ++ * This is based on depthcharge code. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++static const grub_uint64_t FRAMING_TIMEOUT_MS = 300; ++ ++static const grub_uint8_t EC_FRAMING_BYTE = 0xec; ++ ++#define EC_CMD_MKBP_STATE 0x60 ++#define EC_CMD_VERSION0 0xdc ++ ++static grub_uint64_t last_transfer; ++ ++static void ++stop_bus (const struct grub_fdtbus_dev *spi) ++{ ++ spi->driver->stop (spi); ++ last_transfer = grub_get_time_ms (); ++} ++ ++static int ++wait_for_frame (const struct grub_fdtbus_dev *spi) ++{ ++ grub_uint64_t start = grub_get_time_ms (); ++ grub_uint8_t byte; ++ do ++ { ++ if (spi->driver->receive (spi, &byte, 1)) ++ return -1; ++ if (byte != EC_FRAMING_BYTE && ++ grub_get_time_ms () - start > FRAMING_TIMEOUT_MS) ++ { ++ grub_dprintf ("cros", "Timeout waiting for framing byte.\n"); ++ return -1; ++ } ++ } ++ while (byte != EC_FRAMING_BYTE); ++ return 0; ++} ++ ++/* ++ * Calculate a simple 8-bit checksum of a data block ++ * ++ * @param data Data block to checksum ++ * @param size Size of data block in bytes ++ * @return checksum value (0 to 255) ++ */ ++static grub_uint8_t ++cros_ec_calc_checksum (const void *data, int size) ++{ ++ grub_uint8_t csum; ++ const grub_uint8_t *bytes = data; ++ int i; ++ ++ for (i = csum = 0; i < size; i++) ++ csum += bytes[i]; ++ return csum & 0xff; ++} ++ ++enum ++{ ++ /* response, arglen */ ++ CROS_EC_SPI_IN_HDR_SIZE = 2, ++ /* version, cmd, arglen */ ++ CROS_EC_SPI_OUT_HDR_SIZE = 3 ++}; ++ ++static grub_uint8_t busbuf[256]; ++#define MSG_BYTES ((int)sizeof (busbuf)) ++ ++static int ++ec_command (const struct grub_fdtbus_dev *dev, int cmd, int cmd_version, ++ const void *dout, int dout_len, void *din, int din_len) ++{ ++ const struct grub_fdtbus_dev *spi = dev->parent; ++ grub_uint8_t *bytes; ++ ++ /* Header + data + checksum. */ ++ grub_uint32_t out_bytes = CROS_EC_SPI_OUT_HDR_SIZE + dout_len + 1; ++ grub_uint32_t in_bytes = CROS_EC_SPI_IN_HDR_SIZE + din_len + 1; ++ ++ /* ++ * Sanity-check I/O sizes given transaction overhead in internal ++ * buffers. ++ */ ++ if (out_bytes > MSG_BYTES) ++ { ++ grub_dprintf ("cros", "Cannot send %d bytes\n", dout_len); ++ return -1; ++ } ++ if (in_bytes > MSG_BYTES) ++ { ++ grub_dprintf ("cros", "Cannot receive %d bytes\n", din_len); ++ return -1; ++ } ++ ++ /* Prepare the output. */ ++ bytes = busbuf; ++ *bytes++ = EC_CMD_VERSION0 + cmd_version; ++ *bytes++ = cmd; ++ *bytes++ = dout_len; ++ grub_memcpy (bytes, dout, dout_len); ++ bytes += dout_len; ++ ++ *bytes++ = cros_ec_calc_checksum (busbuf, ++ CROS_EC_SPI_OUT_HDR_SIZE + dout_len); ++ ++ /* Depthcharge uses 200 us here but GRUB timer resolution is only 1ms, ++ decrease this when we increase timer resolution. */ ++ while (grub_get_time_ms () - last_transfer < 1) ++ ; ++ ++ if (spi->driver->start (spi)) ++ return -1; ++ ++ /* Allow EC to ramp up clock after being awoken. */ ++ /* Depthcharge only waits 100 us here but GRUB timer resolution is only 1ms, ++ decrease this when we increase timer resolution. */ ++ grub_millisleep (1); ++ ++ if (spi->driver->send (spi, busbuf, out_bytes)) ++ { ++ stop_bus (spi); ++ return -1; ++ } ++ ++ /* Wait until the EC is ready. */ ++ if (wait_for_frame (spi)) ++ { ++ stop_bus (spi); ++ return -1; ++ } ++ ++ /* Read the response code and the data length. */ ++ bytes = busbuf; ++ if (spi->driver->receive (spi, bytes, 2)) ++ { ++ stop_bus (spi); ++ return -1; ++ } ++ grub_uint8_t result = *bytes++; ++ grub_uint8_t length = *bytes++; ++ ++ /* Make sure there's enough room for the data. */ ++ if (CROS_EC_SPI_IN_HDR_SIZE + length + 1 > MSG_BYTES) ++ { ++ grub_dprintf ("cros", "Received length %#02x too large\n", length); ++ stop_bus (spi); ++ return -1; ++ } ++ ++ /* Read the data and the checksum, and finish up. */ ++ if (spi->driver->receive (spi, bytes, length + 1)) ++ { ++ stop_bus (spi); ++ return -1; ++ } ++ bytes += length; ++ int expected = *bytes++; ++ stop_bus (spi); ++ ++ /* Check the integrity of the response. */ ++ if (result != 0) ++ { ++ grub_dprintf ("cros", "Received bad result code %d\n", result); ++ return -result; ++ } ++ ++ int csum = cros_ec_calc_checksum (busbuf, ++ CROS_EC_SPI_IN_HDR_SIZE + length); ++ ++ if (csum != expected) ++ { ++ grub_dprintf ("cros", "Invalid checksum rx %#02x, calced %#02x\n", ++ expected, csum); ++ return -1; ++ } ++ ++ /* If the caller wants the response, copy it out for them. */ ++ if (length < din_len) ++ din_len = length; ++ if (din) ++ { ++ grub_memcpy (din, (grub_uint8_t *) busbuf + CROS_EC_SPI_IN_HDR_SIZE, din_len); ++ } ++ ++ return din_len; ++} ++ ++int ++grub_cros_ec_scan_keyboard (const struct grub_fdtbus_dev *dev, struct grub_cros_ec_keyscan *scan) ++{ ++ if (ec_command (dev, EC_CMD_MKBP_STATE, 0, NULL, 0, scan, ++ sizeof (*scan)) < (int) sizeof (*scan)) ++ return -1; ++ ++ return 0; ++} ++ ++int ++grub_cros_ec_validate (const struct grub_fdtbus_dev *dev) ++{ ++ if (!grub_fdtbus_is_compatible("google,cros-ec-spi", dev)) ++ return 0; ++ if (!dev->parent) ++ return 0; ++ if (!dev->parent->driver) ++ return 0; ++ if (!dev->parent->driver->send ++ || !dev->parent->driver->receive) ++ return 0; ++ return 1; ++} ++ +diff --git a/grub-core/term/arm/pl050.c b/grub-core/term/arm/pl050.c +new file mode 100644 +index 0000000000000000000000000000000000000000..e4cda305666df20eba26e10d74b879361e83d6ea +--- /dev/null ++++ b/grub-core/term/arm/pl050.c +@@ -0,0 +1,189 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2007,2008,2009 Free Software Foundation, Inc. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++static volatile grub_uint32_t *pl050_regs; ++ ++struct grub_ps2_state ps2_state; ++ ++static void ++keyboard_controller_wait_until_ready (void) ++{ ++ while (! (pl050_regs[1] & 0x40)); ++} ++ ++static grub_uint8_t ++wait_ack (void) ++{ ++ grub_uint64_t endtime; ++ grub_uint8_t ack; ++ ++ endtime = grub_get_time_ms () + 20; ++ do ++ ack = pl050_regs[2]; ++ while (ack != GRUB_AT_ACK && ack != GRUB_AT_NACK ++ && grub_get_time_ms () < endtime); ++ return ack; ++} ++ ++ ++static int ++write_mode (int mode) ++{ ++ unsigned i; ++ for (i = 0; i < GRUB_AT_TRIES; i++) ++ { ++ grub_uint8_t ack; ++ keyboard_controller_wait_until_ready (); ++ pl050_regs[2] = 0xf0; ++ keyboard_controller_wait_until_ready (); ++ pl050_regs[2] = mode; ++ keyboard_controller_wait_until_ready (); ++ ack = wait_ack (); ++ if (ack == GRUB_AT_NACK) ++ continue; ++ if (ack == GRUB_AT_ACK) ++ break; ++ return 0; ++ } ++ ++ return (i != GRUB_AT_TRIES); ++} ++ ++static int ++query_mode (void) ++{ ++ grub_uint8_t ret; ++ int e; ++ ++ e = write_mode (0); ++ if (!e) ++ return 0; ++ ++ keyboard_controller_wait_until_ready (); ++ ++ do ++ ret = pl050_regs[2]; ++ while (ret == GRUB_AT_ACK); ++ ++ /* QEMU translates the set even in no-translate mode. */ ++ if (ret == 0x43 || ret == 1) ++ return 1; ++ if (ret == 0x41 || ret == 2) ++ return 2; ++ if (ret == 0x3f || ret == 3) ++ return 3; ++ return 0; ++} ++ ++static void ++set_scancodes (void) ++{ ++ write_mode (2); ++ ps2_state.current_set = query_mode (); ++ grub_dprintf ("atkeyb", "returned set %d\n", ps2_state.current_set); ++ if (ps2_state.current_set == 2) ++ return; ++ ++ write_mode (1); ++ ps2_state.current_set = query_mode (); ++ grub_dprintf ("atkeyb", "returned set %d\n", ps2_state.current_set); ++ if (ps2_state.current_set == 1) ++ return; ++ grub_dprintf ("atkeyb", "no supported scancode set found\n"); ++} ++ ++static void ++keyboard_controller_led (grub_uint8_t leds) ++{ ++ keyboard_controller_wait_until_ready (); ++ pl050_regs[2] = 0xed; ++ keyboard_controller_wait_until_ready (); ++ pl050_regs[2] = leds & 0x7; ++} ++ ++/* If there is a character pending, return it; ++ otherwise return GRUB_TERM_NO_KEY. */ ++static int ++grub_pl050_keyboard_getkey (struct grub_term_input *term __attribute__ ((unused))) ++{ ++ grub_uint8_t at_key; ++ int ret; ++ grub_uint8_t old_led; ++ ++ if (!(pl050_regs[1] & 0x10)) ++ return -1; ++ at_key = pl050_regs[2]; ++ old_led = ps2_state.led_status; ++ ++ ret = grub_ps2_process_incoming_byte (&ps2_state, at_key); ++ if (old_led != ps2_state.led_status) ++ keyboard_controller_led (ps2_state.led_status); ++ return ret; ++} ++ ++static struct grub_term_input grub_pl050_keyboard_term = ++ { ++ .name = "pl050_keyboard", ++ .getkey = grub_pl050_keyboard_getkey ++ }; ++ ++static grub_err_t ++pl050_attach(const struct grub_fdtbus_dev *dev) ++{ ++ const grub_uint32_t *reg; ++ reg = grub_fdtbus_get_prop (dev, "reg", 0); ++ ++ /* Mouse. Nothing to do. */ ++ if (grub_be_to_cpu32 (*reg) == 0x7000) ++ return 0; ++ ++ pl050_regs = grub_fdtbus_map_reg (dev, 0, 0); ++ ++ if (!grub_fdtbus_is_mapping_valid (pl050_regs)) ++ return grub_error (GRUB_ERR_IO, "could not map pl050"); ++ ++ ps2_state.at_keyboard_status = 0; ++ set_scancodes (); ++ keyboard_controller_led (ps2_state.led_status); ++ ++ grub_term_register_input ("pl050_keyboard", &grub_pl050_keyboard_term); ++ return GRUB_ERR_NONE; ++} ++ ++struct grub_fdtbus_driver pl050 = ++{ ++ .compatible = "arm,pl050", ++ .attach = pl050_attach ++}; ++ ++void ++grub_pl050_init (void) ++{ ++ grub_fdtbus_register (&pl050); ++} +diff --git a/grub-core/term/at_keyboard.c b/grub-core/term/at_keyboard.c +index b4ea9ff7e637f59c653b86cea79d4d664c78af84..f0a986eb176aef6c4fe3f5a65c646756e5bbde56 100644 +--- a/grub-core/term/at_keyboard.c ++++ b/grub-core/term/at_keyboard.c +@@ -22,215 +22,26 @@ + #include + #include + #include +-#include + #include + #include ++#include + + GRUB_MOD_LICENSE ("GPLv3+"); + +-static short at_keyboard_status = 0; +-static int e0_received = 0; +-static int f0_received = 0; +- +-static grub_uint8_t led_status; +- +-#define KEYBOARD_LED_SCROLL (1 << 0) +-#define KEYBOARD_LED_NUM (1 << 1) +-#define KEYBOARD_LED_CAPS (1 << 2) +- + static grub_uint8_t grub_keyboard_controller_orig; + static grub_uint8_t grub_keyboard_orig_set; +-static grub_uint8_t current_set; +- +-static void +-grub_keyboard_controller_init (void); +- +-static const grub_uint8_t set1_mapping[128] = +- { +- /* 0x00 */ 0 /* Unused */, GRUB_KEYBOARD_KEY_ESCAPE, +- /* 0x02 */ GRUB_KEYBOARD_KEY_1, GRUB_KEYBOARD_KEY_2, +- /* 0x04 */ GRUB_KEYBOARD_KEY_3, GRUB_KEYBOARD_KEY_4, +- /* 0x06 */ GRUB_KEYBOARD_KEY_5, GRUB_KEYBOARD_KEY_6, +- /* 0x08 */ GRUB_KEYBOARD_KEY_7, GRUB_KEYBOARD_KEY_8, +- /* 0x0a */ GRUB_KEYBOARD_KEY_9, GRUB_KEYBOARD_KEY_0, +- /* 0x0c */ GRUB_KEYBOARD_KEY_DASH, GRUB_KEYBOARD_KEY_EQUAL, +- /* 0x0e */ GRUB_KEYBOARD_KEY_BACKSPACE, GRUB_KEYBOARD_KEY_TAB, +- /* 0x10 */ GRUB_KEYBOARD_KEY_Q, GRUB_KEYBOARD_KEY_W, +- /* 0x12 */ GRUB_KEYBOARD_KEY_E, GRUB_KEYBOARD_KEY_R, +- /* 0x14 */ GRUB_KEYBOARD_KEY_T, GRUB_KEYBOARD_KEY_Y, +- /* 0x16 */ GRUB_KEYBOARD_KEY_U, GRUB_KEYBOARD_KEY_I, +- /* 0x18 */ GRUB_KEYBOARD_KEY_O, GRUB_KEYBOARD_KEY_P, +- /* 0x1a */ GRUB_KEYBOARD_KEY_LBRACKET, GRUB_KEYBOARD_KEY_RBRACKET, +- /* 0x1c */ GRUB_KEYBOARD_KEY_ENTER, GRUB_KEYBOARD_KEY_LEFT_CTRL, +- /* 0x1e */ GRUB_KEYBOARD_KEY_A, GRUB_KEYBOARD_KEY_S, +- /* 0x20 */ GRUB_KEYBOARD_KEY_D, GRUB_KEYBOARD_KEY_F, +- /* 0x22 */ GRUB_KEYBOARD_KEY_G, GRUB_KEYBOARD_KEY_H, +- /* 0x24 */ GRUB_KEYBOARD_KEY_J, GRUB_KEYBOARD_KEY_K, +- /* 0x26 */ GRUB_KEYBOARD_KEY_L, GRUB_KEYBOARD_KEY_SEMICOLON, +- /* 0x28 */ GRUB_KEYBOARD_KEY_DQUOTE, GRUB_KEYBOARD_KEY_RQUOTE, +- /* 0x2a */ GRUB_KEYBOARD_KEY_LEFT_SHIFT, GRUB_KEYBOARD_KEY_BACKSLASH, +- /* 0x2c */ GRUB_KEYBOARD_KEY_Z, GRUB_KEYBOARD_KEY_X, +- /* 0x2e */ GRUB_KEYBOARD_KEY_C, GRUB_KEYBOARD_KEY_V, +- /* 0x30 */ GRUB_KEYBOARD_KEY_B, GRUB_KEYBOARD_KEY_N, +- /* 0x32 */ GRUB_KEYBOARD_KEY_M, GRUB_KEYBOARD_KEY_COMMA, +- /* 0x34 */ GRUB_KEYBOARD_KEY_DOT, GRUB_KEYBOARD_KEY_SLASH, +- /* 0x36 */ GRUB_KEYBOARD_KEY_RIGHT_SHIFT, GRUB_KEYBOARD_KEY_NUMMUL, +- /* 0x38 */ GRUB_KEYBOARD_KEY_LEFT_ALT, GRUB_KEYBOARD_KEY_SPACE, +- /* 0x3a */ GRUB_KEYBOARD_KEY_CAPS_LOCK, GRUB_KEYBOARD_KEY_F1, +- /* 0x3c */ GRUB_KEYBOARD_KEY_F2, GRUB_KEYBOARD_KEY_F3, +- /* 0x3e */ GRUB_KEYBOARD_KEY_F4, GRUB_KEYBOARD_KEY_F5, +- /* 0x40 */ GRUB_KEYBOARD_KEY_F6, GRUB_KEYBOARD_KEY_F7, +- /* 0x42 */ GRUB_KEYBOARD_KEY_F8, GRUB_KEYBOARD_KEY_F9, +- /* 0x44 */ GRUB_KEYBOARD_KEY_F10, GRUB_KEYBOARD_KEY_NUM_LOCK, +- /* 0x46 */ GRUB_KEYBOARD_KEY_SCROLL_LOCK, GRUB_KEYBOARD_KEY_NUM7, +- /* 0x48 */ GRUB_KEYBOARD_KEY_NUM8, GRUB_KEYBOARD_KEY_NUM9, +- /* 0x4a */ GRUB_KEYBOARD_KEY_NUMMINUS, GRUB_KEYBOARD_KEY_NUM4, +- /* 0x4c */ GRUB_KEYBOARD_KEY_NUM5, GRUB_KEYBOARD_KEY_NUM6, +- /* 0x4e */ GRUB_KEYBOARD_KEY_NUMPLUS, GRUB_KEYBOARD_KEY_NUM1, +- /* 0x50 */ GRUB_KEYBOARD_KEY_NUM2, GRUB_KEYBOARD_KEY_NUM3, +- /* 0x52 */ GRUB_KEYBOARD_KEY_NUM0, GRUB_KEYBOARD_KEY_NUMDOT, +- /* 0x54 */ 0, 0, +- /* 0x56 */ GRUB_KEYBOARD_KEY_102ND, GRUB_KEYBOARD_KEY_F11, +- /* 0x58 */ GRUB_KEYBOARD_KEY_F12, 0, +- /* 0x5a */ 0, 0, +- /* 0x5c */ 0, 0, +- /* 0x5e */ 0, 0, +- /* 0x60 */ 0, 0, +- /* 0x62 */ 0, 0, +- /* OLPC keys. Just mapped to normal keys. */ +- /* 0x64 */ 0, GRUB_KEYBOARD_KEY_UP, +- /* 0x66 */ GRUB_KEYBOARD_KEY_DOWN, GRUB_KEYBOARD_KEY_LEFT, +- /* 0x68 */ GRUB_KEYBOARD_KEY_RIGHT, 0, +- /* 0x6a */ 0, 0, +- /* 0x6c */ 0, 0, +- /* 0x6e */ 0, 0, +- /* 0x70 */ 0, 0, +- /* 0x72 */ 0, GRUB_KEYBOARD_KEY_JP_RO, +- /* 0x74 */ 0, 0, +- /* 0x76 */ 0, 0, +- /* 0x78 */ 0, 0, +- /* 0x7a */ 0, 0, +- /* 0x7c */ 0, GRUB_KEYBOARD_KEY_JP_YEN, +- /* 0x7e */ GRUB_KEYBOARD_KEY_KPCOMMA +- }; +- +-static const struct +-{ +- grub_uint8_t from, to; +-} set1_e0_mapping[] = +- { +- {0x1c, GRUB_KEYBOARD_KEY_NUMENTER}, +- {0x1d, GRUB_KEYBOARD_KEY_RIGHT_CTRL}, +- {0x35, GRUB_KEYBOARD_KEY_NUMSLASH }, +- {0x38, GRUB_KEYBOARD_KEY_RIGHT_ALT}, +- {0x47, GRUB_KEYBOARD_KEY_HOME}, +- {0x48, GRUB_KEYBOARD_KEY_UP}, +- {0x49, GRUB_KEYBOARD_KEY_PPAGE}, +- {0x4b, GRUB_KEYBOARD_KEY_LEFT}, +- {0x4d, GRUB_KEYBOARD_KEY_RIGHT}, +- {0x4f, GRUB_KEYBOARD_KEY_END}, +- {0x50, GRUB_KEYBOARD_KEY_DOWN}, +- {0x51, GRUB_KEYBOARD_KEY_NPAGE}, +- {0x52, GRUB_KEYBOARD_KEY_INSERT}, +- {0x53, GRUB_KEYBOARD_KEY_DELETE}, +- }; +- +-static const grub_uint8_t set2_mapping[256] = +- { +- /* 0x00 */ 0, GRUB_KEYBOARD_KEY_F9, +- /* 0x02 */ 0, GRUB_KEYBOARD_KEY_F5, +- /* 0x04 */ GRUB_KEYBOARD_KEY_F3, GRUB_KEYBOARD_KEY_F1, +- /* 0x06 */ GRUB_KEYBOARD_KEY_F2, GRUB_KEYBOARD_KEY_F12, +- /* 0x08 */ 0, GRUB_KEYBOARD_KEY_F10, +- /* 0x0a */ GRUB_KEYBOARD_KEY_F8, GRUB_KEYBOARD_KEY_F6, +- /* 0x0c */ GRUB_KEYBOARD_KEY_F4, GRUB_KEYBOARD_KEY_TAB, +- /* 0x0e */ GRUB_KEYBOARD_KEY_RQUOTE, 0, +- /* 0x10 */ 0, GRUB_KEYBOARD_KEY_LEFT_ALT, +- /* 0x12 */ GRUB_KEYBOARD_KEY_LEFT_SHIFT, 0, +- /* 0x14 */ GRUB_KEYBOARD_KEY_LEFT_CTRL, GRUB_KEYBOARD_KEY_Q, +- /* 0x16 */ GRUB_KEYBOARD_KEY_1, 0, +- /* 0x18 */ 0, 0, +- /* 0x1a */ GRUB_KEYBOARD_KEY_Z, GRUB_KEYBOARD_KEY_S, +- /* 0x1c */ GRUB_KEYBOARD_KEY_A, GRUB_KEYBOARD_KEY_W, +- /* 0x1e */ GRUB_KEYBOARD_KEY_2, 0, +- /* 0x20 */ 0, GRUB_KEYBOARD_KEY_C, +- /* 0x22 */ GRUB_KEYBOARD_KEY_X, GRUB_KEYBOARD_KEY_D, +- /* 0x24 */ GRUB_KEYBOARD_KEY_E, GRUB_KEYBOARD_KEY_4, +- /* 0x26 */ GRUB_KEYBOARD_KEY_3, 0, +- /* 0x28 */ 0, GRUB_KEYBOARD_KEY_SPACE, +- /* 0x2a */ GRUB_KEYBOARD_KEY_V, GRUB_KEYBOARD_KEY_F, +- /* 0x2c */ GRUB_KEYBOARD_KEY_T, GRUB_KEYBOARD_KEY_R, +- /* 0x2e */ GRUB_KEYBOARD_KEY_5, 0, +- /* 0x30 */ 0, GRUB_KEYBOARD_KEY_N, +- /* 0x32 */ GRUB_KEYBOARD_KEY_B, GRUB_KEYBOARD_KEY_H, +- /* 0x34 */ GRUB_KEYBOARD_KEY_G, GRUB_KEYBOARD_KEY_Y, +- /* 0x36 */ GRUB_KEYBOARD_KEY_6, 0, +- /* 0x38 */ 0, 0, +- /* 0x3a */ GRUB_KEYBOARD_KEY_M, GRUB_KEYBOARD_KEY_J, +- /* 0x3c */ GRUB_KEYBOARD_KEY_U, GRUB_KEYBOARD_KEY_7, +- /* 0x3e */ GRUB_KEYBOARD_KEY_8, 0, +- /* 0x40 */ 0, GRUB_KEYBOARD_KEY_COMMA, +- /* 0x42 */ GRUB_KEYBOARD_KEY_K, GRUB_KEYBOARD_KEY_I, +- /* 0x44 */ GRUB_KEYBOARD_KEY_O, GRUB_KEYBOARD_KEY_0, +- /* 0x46 */ GRUB_KEYBOARD_KEY_9, 0, +- /* 0x48 */ 0, GRUB_KEYBOARD_KEY_DOT, +- /* 0x4a */ GRUB_KEYBOARD_KEY_SLASH, GRUB_KEYBOARD_KEY_L, +- /* 0x4c */ GRUB_KEYBOARD_KEY_SEMICOLON, GRUB_KEYBOARD_KEY_P, +- /* 0x4e */ GRUB_KEYBOARD_KEY_DASH, 0, +- /* 0x50 */ 0, GRUB_KEYBOARD_KEY_JP_RO, +- /* 0x52 */ GRUB_KEYBOARD_KEY_DQUOTE, 0, +- /* 0x54 */ GRUB_KEYBOARD_KEY_LBRACKET, GRUB_KEYBOARD_KEY_EQUAL, +- /* 0x56 */ 0, 0, +- /* 0x58 */ GRUB_KEYBOARD_KEY_CAPS_LOCK, GRUB_KEYBOARD_KEY_RIGHT_SHIFT, +- /* 0x5a */ GRUB_KEYBOARD_KEY_ENTER, GRUB_KEYBOARD_KEY_RBRACKET, +- /* 0x5c */ 0, GRUB_KEYBOARD_KEY_BACKSLASH, +- /* 0x5e */ 0, 0, +- /* 0x60 */ 0, GRUB_KEYBOARD_KEY_102ND, +- /* 0x62 */ 0, 0, +- /* 0x64 */ 0, 0, +- /* 0x66 */ GRUB_KEYBOARD_KEY_BACKSPACE, 0, +- /* 0x68 */ 0, GRUB_KEYBOARD_KEY_NUM1, +- /* 0x6a */ GRUB_KEYBOARD_KEY_JP_YEN, GRUB_KEYBOARD_KEY_NUM4, +- /* 0x6c */ GRUB_KEYBOARD_KEY_NUM7, GRUB_KEYBOARD_KEY_KPCOMMA, +- /* 0x6e */ 0, 0, +- /* 0x70 */ GRUB_KEYBOARD_KEY_NUM0, GRUB_KEYBOARD_KEY_NUMDOT, +- /* 0x72 */ GRUB_KEYBOARD_KEY_NUM2, GRUB_KEYBOARD_KEY_NUM5, +- /* 0x74 */ GRUB_KEYBOARD_KEY_NUM6, GRUB_KEYBOARD_KEY_NUM8, +- /* 0x76 */ GRUB_KEYBOARD_KEY_ESCAPE, GRUB_KEYBOARD_KEY_NUM_LOCK, +- /* 0x78 */ GRUB_KEYBOARD_KEY_F11, GRUB_KEYBOARD_KEY_NUMPLUS, +- /* 0x7a */ GRUB_KEYBOARD_KEY_NUM3, GRUB_KEYBOARD_KEY_NUMMINUS, +- /* 0x7c */ GRUB_KEYBOARD_KEY_NUMMUL, GRUB_KEYBOARD_KEY_NUM9, +- /* 0x7e */ GRUB_KEYBOARD_KEY_SCROLL_LOCK, 0, +- /* 0x80 */ 0, 0, +- /* 0x82 */ 0, GRUB_KEYBOARD_KEY_F7, +- }; +- +-static const struct +-{ +- grub_uint8_t from, to; +-} set2_e0_mapping[] = +- { +- {0x11, GRUB_KEYBOARD_KEY_RIGHT_ALT}, +- {0x14, GRUB_KEYBOARD_KEY_RIGHT_CTRL}, +- {0x4a, GRUB_KEYBOARD_KEY_NUMSLASH}, +- {0x5a, GRUB_KEYBOARD_KEY_NUMENTER}, +- {0x69, GRUB_KEYBOARD_KEY_END}, +- {0x6b, GRUB_KEYBOARD_KEY_LEFT}, +- {0x6c, GRUB_KEYBOARD_KEY_HOME}, +- {0x70, GRUB_KEYBOARD_KEY_INSERT}, +- {0x71, GRUB_KEYBOARD_KEY_DELETE}, +- {0x72, GRUB_KEYBOARD_KEY_DOWN}, +- {0x74, GRUB_KEYBOARD_KEY_RIGHT}, +- {0x75, GRUB_KEYBOARD_KEY_UP}, +- {0x7a, GRUB_KEYBOARD_KEY_NPAGE}, +- {0x7d, GRUB_KEYBOARD_KEY_PPAGE}, +- }; ++struct grub_ps2_state ps2_state; + + static int ping_sent; + ++static void ++grub_keyboard_controller_init (void); ++ + static void + keyboard_controller_wait_until_ready (void) + { ++ /* 50 us would be enough but our current time resolution is 1ms. */ ++ grub_millisleep (1); + while (! KEYBOARD_COMMAND_ISREADY (grub_inb (KEYBOARD_REG_STATUS))); + } + +@@ -241,10 +52,11 @@ wait_ack (void) + grub_uint8_t ack; + + endtime = grub_get_time_ms () + 20; +- do ++ do { ++ keyboard_controller_wait_until_ready (); + ack = grub_inb (KEYBOARD_REG_DATA); +- while (ack != GRUB_AT_ACK && ack != GRUB_AT_NACK +- && grub_get_time_ms () < endtime); ++ } while (ack != GRUB_AT_ACK && ack != GRUB_AT_NACK ++ && grub_get_time_ms () < endtime); + return ack; + } + +@@ -326,12 +138,10 @@ query_mode (void) + if (!e) + return 0; + +- keyboard_controller_wait_until_ready (); +- +- do ++ do { ++ keyboard_controller_wait_until_ready (); + ret = grub_inb (KEYBOARD_REG_DATA); +- while (ret == GRUB_AT_ACK); +- ++ } while (ret == GRUB_AT_ACK); + /* QEMU translates the set even in no-translate mode. */ + if (ret == 0x43 || ret == 1) + return 1; +@@ -350,28 +160,32 @@ set_scancodes (void) + if (!grub_keyboard_orig_set) + { + grub_dprintf ("atkeyb", "No sets support assumed\n"); +- current_set = 1; ++ ps2_state.current_set = 1; + return; + } + + #if !USE_SCANCODE_SET +- current_set = 1; ++ ps2_state.current_set = 1; + return; + #else + + grub_keyboard_controller_write (grub_keyboard_controller_orig +- & ~KEYBOARD_AT_TRANSLATE); ++ & ~KEYBOARD_AT_TRANSLATE ++ & ~KEYBOARD_AT_DISABLE); ++ ++ keyboard_controller_wait_until_ready (); ++ grub_outb (KEYBOARD_COMMAND_ENABLE, KEYBOARD_REG_DATA); + + write_mode (2); +- current_set = query_mode (); +- grub_dprintf ("atkeyb", "returned set %d\n", current_set); +- if (current_set == 2) ++ ps2_state.current_set = query_mode (); ++ grub_dprintf ("atkeyb", "returned set %d\n", ps2_state.current_set); ++ if (ps2_state.current_set == 2) + return; + + write_mode (1); +- current_set = query_mode (); +- grub_dprintf ("atkeyb", "returned set %d\n", current_set); +- if (current_set == 1) ++ ps2_state.current_set = query_mode (); ++ grub_dprintf ("atkeyb", "returned set %d\n", ps2_state.current_set); ++ if (ps2_state.current_set == 1) + return; + grub_dprintf ("atkeyb", "no supported scancode set found\n"); + #endif +@@ -386,164 +200,10 @@ keyboard_controller_led (grub_uint8_t leds) + grub_outb (leds & 0x7, KEYBOARD_REG_DATA); + } + +-static int +-fetch_key (int *is_break) +-{ +- int was_ext = 0; +- grub_uint8_t at_key; +- int ret = 0; +- +- if (! KEYBOARD_ISREADY (grub_inb (KEYBOARD_REG_STATUS))) +- return -1; +- at_key = grub_inb (KEYBOARD_REG_DATA); +- /* May happen if no keyboard is connected. Just ignore this. */ +- if (at_key == 0xff) +- return -1; +- if (at_key == 0xe0) +- { +- e0_received = 1; +- return -1; +- } +- +- if ((current_set == 2 || current_set == 3) && at_key == 0xf0) +- { +- f0_received = 1; +- return -1; +- } +- +- /* Setting LEDs may generate ACKs. */ +- if (at_key == GRUB_AT_ACK) +- return -1; +- +- was_ext = e0_received; +- e0_received = 0; +- +- switch (current_set) +- { +- case 1: +- *is_break = !!(at_key & 0x80); +- if (!was_ext) +- ret = set1_mapping[at_key & 0x7f]; +- else +- { +- unsigned i; +- for (i = 0; i < ARRAY_SIZE (set1_e0_mapping); i++) +- if (set1_e0_mapping[i].from == (at_key & 0x7f)) +- { +- ret = set1_e0_mapping[i].to; +- break; +- } +- } +- break; +- case 2: +- *is_break = f0_received; +- f0_received = 0; +- if (!was_ext) +- ret = set2_mapping[at_key]; +- else +- { +- unsigned i; +- for (i = 0; i < ARRAY_SIZE (set2_e0_mapping); i++) +- if (set2_e0_mapping[i].from == at_key) +- { +- ret = set2_e0_mapping[i].to; +- break; +- } +- } +- break; +- default: +- return -1; +- } +- if (!ret) +- { +- if (was_ext) +- grub_dprintf ("atkeyb", "Unknown key 0xe0+0x%02x from set %d\n", +- at_key, current_set); +- else +- grub_dprintf ("atkeyb", "Unknown key 0x%02x from set %d\n", +- at_key, current_set); +- return -1; +- } +- return ret; +-} +- +-/* FIXME: This should become an interrupt service routine. For now +- it's just used to catch events from control keys. */ +-static int +-grub_keyboard_isr (grub_keyboard_key_t key, int is_break) +-{ +- if (!is_break) +- switch (key) +- { +- case GRUB_KEYBOARD_KEY_LEFT_SHIFT: +- at_keyboard_status |= GRUB_TERM_STATUS_LSHIFT; +- return 1; +- case GRUB_KEYBOARD_KEY_RIGHT_SHIFT: +- at_keyboard_status |= GRUB_TERM_STATUS_RSHIFT; +- return 1; +- case GRUB_KEYBOARD_KEY_LEFT_CTRL: +- at_keyboard_status |= GRUB_TERM_STATUS_LCTRL; +- return 1; +- case GRUB_KEYBOARD_KEY_RIGHT_CTRL: +- at_keyboard_status |= GRUB_TERM_STATUS_RCTRL; +- return 1; +- case GRUB_KEYBOARD_KEY_RIGHT_ALT: +- at_keyboard_status |= GRUB_TERM_STATUS_RALT; +- return 1; +- case GRUB_KEYBOARD_KEY_LEFT_ALT: +- at_keyboard_status |= GRUB_TERM_STATUS_LALT; +- return 1; +- default: +- return 0; +- } +- else +- switch (key) +- { +- case GRUB_KEYBOARD_KEY_LEFT_SHIFT: +- at_keyboard_status &= ~GRUB_TERM_STATUS_LSHIFT; +- return 1; +- case GRUB_KEYBOARD_KEY_RIGHT_SHIFT: +- at_keyboard_status &= ~GRUB_TERM_STATUS_RSHIFT; +- return 1; +- case GRUB_KEYBOARD_KEY_LEFT_CTRL: +- at_keyboard_status &= ~GRUB_TERM_STATUS_LCTRL; +- return 1; +- case GRUB_KEYBOARD_KEY_RIGHT_CTRL: +- at_keyboard_status &= ~GRUB_TERM_STATUS_RCTRL; +- return 1; +- case GRUB_KEYBOARD_KEY_RIGHT_ALT: +- at_keyboard_status &= ~GRUB_TERM_STATUS_RALT; +- return 1; +- case GRUB_KEYBOARD_KEY_LEFT_ALT: +- at_keyboard_status &= ~GRUB_TERM_STATUS_LALT; +- return 1; +- default: +- return 0; +- } +-} +- +-/* If there is a raw key pending, return it; otherwise return -1. */ +-static int +-grub_keyboard_getkey (void) +-{ +- int key; +- int is_break = 0; +- +- key = fetch_key (&is_break); +- if (key == -1) +- return -1; +- +- if (grub_keyboard_isr (key, is_break)) +- return -1; +- if (is_break) +- return -1; +- return key; +-} +- + int + grub_at_keyboard_is_alive (void) + { +- if (current_set != 0) ++ if (ps2_state.current_set != 0) + return 1; + if (ping_sent + && KEYBOARD_COMMAND_ISREADY (grub_inb (KEYBOARD_REG_STATUS)) +@@ -566,51 +226,28 @@ grub_at_keyboard_is_alive (void) + static int + grub_at_keyboard_getkey (struct grub_term_input *term __attribute__ ((unused))) + { +- int code; ++ grub_uint8_t at_key; ++ int ret; ++ grub_uint8_t old_led; + + if (!grub_at_keyboard_is_alive ()) + return GRUB_TERM_NO_KEY; + +- code = grub_keyboard_getkey (); +- if (code == -1) +- return GRUB_TERM_NO_KEY; +-#ifdef DEBUG_AT_KEYBOARD +- grub_dprintf ("atkeyb", "Detected key 0x%x\n", code); +-#endif +- switch (code) +- { +- case GRUB_KEYBOARD_KEY_CAPS_LOCK: +- at_keyboard_status ^= GRUB_TERM_STATUS_CAPS; +- led_status ^= KEYBOARD_LED_CAPS; +- keyboard_controller_led (led_status); ++ if (! KEYBOARD_ISREADY (grub_inb (KEYBOARD_REG_STATUS))) ++ return -1; ++ at_key = grub_inb (KEYBOARD_REG_DATA); ++ old_led = ps2_state.led_status; + +-#ifdef DEBUG_AT_KEYBOARD +- grub_dprintf ("atkeyb", "caps_lock = %d\n", !!(at_keyboard_status & GRUB_KEYBOARD_STATUS_CAPS_LOCK)); +-#endif +- return GRUB_TERM_NO_KEY; +- case GRUB_KEYBOARD_KEY_NUM_LOCK: +- at_keyboard_status ^= GRUB_TERM_STATUS_NUM; +- led_status ^= KEYBOARD_LED_NUM; +- keyboard_controller_led (led_status); +- +-#ifdef DEBUG_AT_KEYBOARD +- grub_dprintf ("atkeyb", "num_lock = %d\n", !!(at_keyboard_status & GRUB_KEYBOARD_STATUS_NUM_LOCK)); +-#endif +- return GRUB_TERM_NO_KEY; +- case GRUB_KEYBOARD_KEY_SCROLL_LOCK: +- at_keyboard_status ^= GRUB_TERM_STATUS_SCROLL; +- led_status ^= KEYBOARD_LED_SCROLL; +- keyboard_controller_led (led_status); +- return GRUB_TERM_NO_KEY; +- default: +- return grub_term_map_key (code, at_keyboard_status); +- } ++ ret = grub_ps2_process_incoming_byte (&ps2_state, at_key); ++ if (old_led != ps2_state.led_status) ++ keyboard_controller_led (ps2_state.led_status); ++ return ret; + } + + static void + grub_keyboard_controller_init (void) + { +- at_keyboard_status = 0; ++ ps2_state.at_keyboard_status = 0; + /* Drain input buffer. */ + while (1) + { +@@ -632,13 +269,13 @@ grub_keyboard_controller_init (void) + grub_keyboard_orig_set = query_mode (); + #endif + set_scancodes (); +- keyboard_controller_led (led_status); ++ keyboard_controller_led (ps2_state.led_status); + } + + static grub_err_t + grub_keyboard_controller_fini (struct grub_term_input *term __attribute__ ((unused))) + { +- if (current_set == 0) ++ if (ps2_state.current_set == 0) + return GRUB_ERR_NONE; + if (grub_keyboard_orig_set) + write_mode (grub_keyboard_orig_set); +@@ -655,7 +292,7 @@ grub_at_fini_hw (int noreturn __attribute__ ((unused))) + static grub_err_t + grub_at_restore_hw (void) + { +- if (current_set == 0) ++ if (ps2_state.current_set == 0) + return GRUB_ERR_NONE; + + /* Drain input buffer. */ +@@ -668,7 +305,7 @@ grub_at_restore_hw (void) + grub_inb (KEYBOARD_REG_DATA); + } + set_scancodes (); +- keyboard_controller_led (led_status); ++ keyboard_controller_led (ps2_state.led_status); + + return GRUB_ERR_NONE; + } +diff --git a/grub-core/term/efi/console.c b/grub-core/term/efi/console.c +index 7d31095b1ef8d01886a0516343f2e5c5601265dd..02f64ea744107fbca662c2fab1fd15555f2d7724 100644 +--- a/grub-core/term/efi/console.c ++++ b/grub-core/term/efi/console.c +@@ -104,7 +104,7 @@ const unsigned efi_codes[] = + GRUB_TERM_KEY_DC, GRUB_TERM_KEY_PPAGE, GRUB_TERM_KEY_NPAGE, GRUB_TERM_KEY_F1, + GRUB_TERM_KEY_F2, GRUB_TERM_KEY_F3, GRUB_TERM_KEY_F4, GRUB_TERM_KEY_F5, + GRUB_TERM_KEY_F6, GRUB_TERM_KEY_F7, GRUB_TERM_KEY_F8, GRUB_TERM_KEY_F9, +- GRUB_TERM_KEY_F10, GRUB_TERM_KEY_F11, GRUB_TERM_KEY_F12, '\e' ++ GRUB_TERM_KEY_F10, GRUB_TERM_KEY_F11, GRUB_TERM_KEY_F12, GRUB_TERM_ESC + }; + + static int +diff --git a/grub-core/term/i386/coreboot/cbmemc.c b/grub-core/term/i386/coreboot/cbmemc.c +index 25e64a05c03286f644b39398e9e68cbdde333510..cea9b84315bdaf3b1238acc915f35ba6148ffbcf 100644 +--- a/grub-core/term/i386/coreboot/cbmemc.c ++++ b/grub-core/term/i386/coreboot/cbmemc.c +@@ -23,17 +23,20 @@ + #include + #include + #include +-#include ++#include + #include + #include + + GRUB_MOD_LICENSE ("GPLv3+"); + ++#define CURSOR_MASK ((1 << 28) - 1) ++#define OVERFLOW (1 << 31) ++ + struct grub_linuxbios_cbmemc + { + grub_uint32_t size; +- grub_uint32_t pointer; +- char data[0]; ++ grub_uint32_t cursor; ++ char body[0]; + }; + + static struct grub_linuxbios_cbmemc *cbmemc; +@@ -41,11 +44,20 @@ static struct grub_linuxbios_cbmemc *cbmemc; + static void + put (struct grub_term_output *term __attribute__ ((unused)), const int c) + { ++ grub_uint32_t flags, cursor; + if (!cbmemc) + return; +- if (cbmemc->pointer < cbmemc->size) +- cbmemc->data[cbmemc->pointer] = c; +- cbmemc->pointer++; ++ flags = cbmemc->cursor & ~CURSOR_MASK; ++ cursor = cbmemc->cursor & CURSOR_MASK; ++ if (cursor >= cbmemc->size) ++ return; ++ cbmemc->body[cursor++] = c; ++ if (cursor >= cbmemc->size) ++ { ++ cursor = 0; ++ flags |= OVERFLOW; ++ } ++ cbmemc->cursor = flags | cursor; + } + + struct grub_terminfo_output_state grub_cbmemc_terminfo_output = +@@ -87,21 +99,29 @@ grub_cmd_cbmemc (struct grub_command *cmd __attribute__ ((unused)), + int argc __attribute__ ((unused)), + char *argv[] __attribute__ ((unused))) + { +- grub_size_t len; +- char *str; +- struct grub_linuxbios_cbmemc *cbmemc_saved; ++ grub_size_t size, cursor; ++ struct grub_linuxbios_cbmemc *real_cbmemc; + + if (!cbmemc) + return grub_error (GRUB_ERR_IO, "no CBMEM console found"); + +- len = cbmemc->pointer; +- if (len > cbmemc->size) +- len = cbmemc->size; +- str = cbmemc->data; +- cbmemc_saved = cbmemc; ++ real_cbmemc = cbmemc; + cbmemc = 0; +- grub_xnputs (str, len); +- cbmemc = cbmemc_saved; ++ cursor = real_cbmemc->cursor & CURSOR_MASK; ++ if (!(real_cbmemc->cursor & OVERFLOW) && cursor < real_cbmemc->size) ++ size = cursor; ++ else ++ size = real_cbmemc->size; ++ if (real_cbmemc->cursor & OVERFLOW) ++ { ++ if (cursor > size) ++ cursor = 0; ++ grub_xnputs(real_cbmemc->body + cursor, size - cursor); ++ grub_xnputs(real_cbmemc->body, cursor); ++ } ++ else ++ grub_xnputs(real_cbmemc->body, size); ++ cbmemc = real_cbmemc; + return 0; + } + +diff --git a/grub-core/term/i386/pc/console.c b/grub-core/term/i386/pc/console.c +index 28de46b576a667fd40c5852b16a4bcc3ea681849..f6142a2dea8036f5301c81a9e2fbd5ddbff5fd90 100644 +--- a/grub-core/term/i386/pc/console.c ++++ b/grub-core/term/i386/pc/console.c +@@ -204,7 +204,7 @@ static int + grub_console_getkey (struct grub_term_input *term __attribute__ ((unused))) + { + const grub_uint16_t bypass_table[] = { +- 0x0100 | '\e', 0x0f00 | '\t', 0x0e00 | '\b', 0x1c00 | '\r', 0x1c00 | '\n' ++ 0x0100 | GRUB_TERM_ESC, 0x0f00 | GRUB_TERM_TAB, 0x0e00 | GRUB_TERM_BACKSPACE, 0x1c00 | '\r', 0x1c00 | '\n' + }; + struct grub_bios_int_registers regs; + unsigned i; +diff --git a/grub-core/term/ps2.c b/grub-core/term/ps2.c +new file mode 100644 +index 0000000000000000000000000000000000000000..7ae4e9f2f8cd4a0ba4405c21581f906f7b458379 +--- /dev/null ++++ b/grub-core/term/ps2.c +@@ -0,0 +1,387 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2007,2008,2009 Free Software Foundation, Inc. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++ ++#define KEYBOARD_LED_SCROLL (1 << 0) ++#define KEYBOARD_LED_NUM (1 << 1) ++#define KEYBOARD_LED_CAPS (1 << 2) ++ ++static const grub_uint8_t set1_mapping[128] = ++ { ++ /* 0x00 */ 0 /* Unused */, GRUB_KEYBOARD_KEY_ESCAPE, ++ /* 0x02 */ GRUB_KEYBOARD_KEY_1, GRUB_KEYBOARD_KEY_2, ++ /* 0x04 */ GRUB_KEYBOARD_KEY_3, GRUB_KEYBOARD_KEY_4, ++ /* 0x06 */ GRUB_KEYBOARD_KEY_5, GRUB_KEYBOARD_KEY_6, ++ /* 0x08 */ GRUB_KEYBOARD_KEY_7, GRUB_KEYBOARD_KEY_8, ++ /* 0x0a */ GRUB_KEYBOARD_KEY_9, GRUB_KEYBOARD_KEY_0, ++ /* 0x0c */ GRUB_KEYBOARD_KEY_DASH, GRUB_KEYBOARD_KEY_EQUAL, ++ /* 0x0e */ GRUB_KEYBOARD_KEY_BACKSPACE, GRUB_KEYBOARD_KEY_TAB, ++ /* 0x10 */ GRUB_KEYBOARD_KEY_Q, GRUB_KEYBOARD_KEY_W, ++ /* 0x12 */ GRUB_KEYBOARD_KEY_E, GRUB_KEYBOARD_KEY_R, ++ /* 0x14 */ GRUB_KEYBOARD_KEY_T, GRUB_KEYBOARD_KEY_Y, ++ /* 0x16 */ GRUB_KEYBOARD_KEY_U, GRUB_KEYBOARD_KEY_I, ++ /* 0x18 */ GRUB_KEYBOARD_KEY_O, GRUB_KEYBOARD_KEY_P, ++ /* 0x1a */ GRUB_KEYBOARD_KEY_LBRACKET, GRUB_KEYBOARD_KEY_RBRACKET, ++ /* 0x1c */ GRUB_KEYBOARD_KEY_ENTER, GRUB_KEYBOARD_KEY_LEFT_CTRL, ++ /* 0x1e */ GRUB_KEYBOARD_KEY_A, GRUB_KEYBOARD_KEY_S, ++ /* 0x20 */ GRUB_KEYBOARD_KEY_D, GRUB_KEYBOARD_KEY_F, ++ /* 0x22 */ GRUB_KEYBOARD_KEY_G, GRUB_KEYBOARD_KEY_H, ++ /* 0x24 */ GRUB_KEYBOARD_KEY_J, GRUB_KEYBOARD_KEY_K, ++ /* 0x26 */ GRUB_KEYBOARD_KEY_L, GRUB_KEYBOARD_KEY_SEMICOLON, ++ /* 0x28 */ GRUB_KEYBOARD_KEY_DQUOTE, GRUB_KEYBOARD_KEY_RQUOTE, ++ /* 0x2a */ GRUB_KEYBOARD_KEY_LEFT_SHIFT, GRUB_KEYBOARD_KEY_BACKSLASH, ++ /* 0x2c */ GRUB_KEYBOARD_KEY_Z, GRUB_KEYBOARD_KEY_X, ++ /* 0x2e */ GRUB_KEYBOARD_KEY_C, GRUB_KEYBOARD_KEY_V, ++ /* 0x30 */ GRUB_KEYBOARD_KEY_B, GRUB_KEYBOARD_KEY_N, ++ /* 0x32 */ GRUB_KEYBOARD_KEY_M, GRUB_KEYBOARD_KEY_COMMA, ++ /* 0x34 */ GRUB_KEYBOARD_KEY_DOT, GRUB_KEYBOARD_KEY_SLASH, ++ /* 0x36 */ GRUB_KEYBOARD_KEY_RIGHT_SHIFT, GRUB_KEYBOARD_KEY_NUMMUL, ++ /* 0x38 */ GRUB_KEYBOARD_KEY_LEFT_ALT, GRUB_KEYBOARD_KEY_SPACE, ++ /* 0x3a */ GRUB_KEYBOARD_KEY_CAPS_LOCK, GRUB_KEYBOARD_KEY_F1, ++ /* 0x3c */ GRUB_KEYBOARD_KEY_F2, GRUB_KEYBOARD_KEY_F3, ++ /* 0x3e */ GRUB_KEYBOARD_KEY_F4, GRUB_KEYBOARD_KEY_F5, ++ /* 0x40 */ GRUB_KEYBOARD_KEY_F6, GRUB_KEYBOARD_KEY_F7, ++ /* 0x42 */ GRUB_KEYBOARD_KEY_F8, GRUB_KEYBOARD_KEY_F9, ++ /* 0x44 */ GRUB_KEYBOARD_KEY_F10, GRUB_KEYBOARD_KEY_NUM_LOCK, ++ /* 0x46 */ GRUB_KEYBOARD_KEY_SCROLL_LOCK, GRUB_KEYBOARD_KEY_NUM7, ++ /* 0x48 */ GRUB_KEYBOARD_KEY_NUM8, GRUB_KEYBOARD_KEY_NUM9, ++ /* 0x4a */ GRUB_KEYBOARD_KEY_NUMMINUS, GRUB_KEYBOARD_KEY_NUM4, ++ /* 0x4c */ GRUB_KEYBOARD_KEY_NUM5, GRUB_KEYBOARD_KEY_NUM6, ++ /* 0x4e */ GRUB_KEYBOARD_KEY_NUMPLUS, GRUB_KEYBOARD_KEY_NUM1, ++ /* 0x50 */ GRUB_KEYBOARD_KEY_NUM2, GRUB_KEYBOARD_KEY_NUM3, ++ /* 0x52 */ GRUB_KEYBOARD_KEY_NUM0, GRUB_KEYBOARD_KEY_NUMDOT, ++ /* 0x54 */ 0, 0, ++ /* 0x56 */ GRUB_KEYBOARD_KEY_102ND, GRUB_KEYBOARD_KEY_F11, ++ /* 0x58 */ GRUB_KEYBOARD_KEY_F12, 0, ++ /* 0x5a */ 0, 0, ++ /* 0x5c */ 0, 0, ++ /* 0x5e */ 0, 0, ++ /* 0x60 */ 0, 0, ++ /* 0x62 */ 0, 0, ++ /* OLPC keys. Just mapped to normal keys. */ ++ /* 0x64 */ 0, GRUB_KEYBOARD_KEY_UP, ++ /* 0x66 */ GRUB_KEYBOARD_KEY_DOWN, GRUB_KEYBOARD_KEY_LEFT, ++ /* 0x68 */ GRUB_KEYBOARD_KEY_RIGHT, 0, ++ /* 0x6a */ 0, 0, ++ /* 0x6c */ 0, 0, ++ /* 0x6e */ 0, 0, ++ /* 0x70 */ 0, 0, ++ /* 0x72 */ 0, GRUB_KEYBOARD_KEY_JP_RO, ++ /* 0x74 */ 0, 0, ++ /* 0x76 */ 0, 0, ++ /* 0x78 */ 0, 0, ++ /* 0x7a */ 0, 0, ++ /* 0x7c */ 0, GRUB_KEYBOARD_KEY_JP_YEN, ++ /* 0x7e */ GRUB_KEYBOARD_KEY_KPCOMMA ++ }; ++ ++static const struct ++{ ++ grub_uint8_t from, to; ++} set1_e0_mapping[] = ++ { ++ {0x1c, GRUB_KEYBOARD_KEY_NUMENTER}, ++ {0x1d, GRUB_KEYBOARD_KEY_RIGHT_CTRL}, ++ {0x35, GRUB_KEYBOARD_KEY_NUMSLASH }, ++ {0x38, GRUB_KEYBOARD_KEY_RIGHT_ALT}, ++ {0x47, GRUB_KEYBOARD_KEY_HOME}, ++ {0x48, GRUB_KEYBOARD_KEY_UP}, ++ {0x49, GRUB_KEYBOARD_KEY_PPAGE}, ++ {0x4b, GRUB_KEYBOARD_KEY_LEFT}, ++ {0x4d, GRUB_KEYBOARD_KEY_RIGHT}, ++ {0x4f, GRUB_KEYBOARD_KEY_END}, ++ {0x50, GRUB_KEYBOARD_KEY_DOWN}, ++ {0x51, GRUB_KEYBOARD_KEY_NPAGE}, ++ {0x52, GRUB_KEYBOARD_KEY_INSERT}, ++ {0x53, GRUB_KEYBOARD_KEY_DELETE}, ++ }; ++ ++static const grub_uint8_t set2_mapping[256] = ++ { ++ /* 0x00 */ 0, GRUB_KEYBOARD_KEY_F9, ++ /* 0x02 */ 0, GRUB_KEYBOARD_KEY_F5, ++ /* 0x04 */ GRUB_KEYBOARD_KEY_F3, GRUB_KEYBOARD_KEY_F1, ++ /* 0x06 */ GRUB_KEYBOARD_KEY_F2, GRUB_KEYBOARD_KEY_F12, ++ /* 0x08 */ 0, GRUB_KEYBOARD_KEY_F10, ++ /* 0x0a */ GRUB_KEYBOARD_KEY_F8, GRUB_KEYBOARD_KEY_F6, ++ /* 0x0c */ GRUB_KEYBOARD_KEY_F4, GRUB_KEYBOARD_KEY_TAB, ++ /* 0x0e */ GRUB_KEYBOARD_KEY_RQUOTE, 0, ++ /* 0x10 */ 0, GRUB_KEYBOARD_KEY_LEFT_ALT, ++ /* 0x12 */ GRUB_KEYBOARD_KEY_LEFT_SHIFT, 0, ++ /* 0x14 */ GRUB_KEYBOARD_KEY_LEFT_CTRL, GRUB_KEYBOARD_KEY_Q, ++ /* 0x16 */ GRUB_KEYBOARD_KEY_1, 0, ++ /* 0x18 */ 0, 0, ++ /* 0x1a */ GRUB_KEYBOARD_KEY_Z, GRUB_KEYBOARD_KEY_S, ++ /* 0x1c */ GRUB_KEYBOARD_KEY_A, GRUB_KEYBOARD_KEY_W, ++ /* 0x1e */ GRUB_KEYBOARD_KEY_2, 0, ++ /* 0x20 */ 0, GRUB_KEYBOARD_KEY_C, ++ /* 0x22 */ GRUB_KEYBOARD_KEY_X, GRUB_KEYBOARD_KEY_D, ++ /* 0x24 */ GRUB_KEYBOARD_KEY_E, GRUB_KEYBOARD_KEY_4, ++ /* 0x26 */ GRUB_KEYBOARD_KEY_3, 0, ++ /* 0x28 */ 0, GRUB_KEYBOARD_KEY_SPACE, ++ /* 0x2a */ GRUB_KEYBOARD_KEY_V, GRUB_KEYBOARD_KEY_F, ++ /* 0x2c */ GRUB_KEYBOARD_KEY_T, GRUB_KEYBOARD_KEY_R, ++ /* 0x2e */ GRUB_KEYBOARD_KEY_5, 0, ++ /* 0x30 */ 0, GRUB_KEYBOARD_KEY_N, ++ /* 0x32 */ GRUB_KEYBOARD_KEY_B, GRUB_KEYBOARD_KEY_H, ++ /* 0x34 */ GRUB_KEYBOARD_KEY_G, GRUB_KEYBOARD_KEY_Y, ++ /* 0x36 */ GRUB_KEYBOARD_KEY_6, 0, ++ /* 0x38 */ 0, 0, ++ /* 0x3a */ GRUB_KEYBOARD_KEY_M, GRUB_KEYBOARD_KEY_J, ++ /* 0x3c */ GRUB_KEYBOARD_KEY_U, GRUB_KEYBOARD_KEY_7, ++ /* 0x3e */ GRUB_KEYBOARD_KEY_8, 0, ++ /* 0x40 */ 0, GRUB_KEYBOARD_KEY_COMMA, ++ /* 0x42 */ GRUB_KEYBOARD_KEY_K, GRUB_KEYBOARD_KEY_I, ++ /* 0x44 */ GRUB_KEYBOARD_KEY_O, GRUB_KEYBOARD_KEY_0, ++ /* 0x46 */ GRUB_KEYBOARD_KEY_9, 0, ++ /* 0x48 */ 0, GRUB_KEYBOARD_KEY_DOT, ++ /* 0x4a */ GRUB_KEYBOARD_KEY_SLASH, GRUB_KEYBOARD_KEY_L, ++ /* 0x4c */ GRUB_KEYBOARD_KEY_SEMICOLON, GRUB_KEYBOARD_KEY_P, ++ /* 0x4e */ GRUB_KEYBOARD_KEY_DASH, 0, ++ /* 0x50 */ 0, GRUB_KEYBOARD_KEY_JP_RO, ++ /* 0x52 */ GRUB_KEYBOARD_KEY_DQUOTE, 0, ++ /* 0x54 */ GRUB_KEYBOARD_KEY_LBRACKET, GRUB_KEYBOARD_KEY_EQUAL, ++ /* 0x56 */ 0, 0, ++ /* 0x58 */ GRUB_KEYBOARD_KEY_CAPS_LOCK, GRUB_KEYBOARD_KEY_RIGHT_SHIFT, ++ /* 0x5a */ GRUB_KEYBOARD_KEY_ENTER, GRUB_KEYBOARD_KEY_RBRACKET, ++ /* 0x5c */ 0, GRUB_KEYBOARD_KEY_BACKSLASH, ++ /* 0x5e */ 0, 0, ++ /* 0x60 */ 0, GRUB_KEYBOARD_KEY_102ND, ++ /* 0x62 */ 0, 0, ++ /* 0x64 */ 0, 0, ++ /* 0x66 */ GRUB_KEYBOARD_KEY_BACKSPACE, 0, ++ /* 0x68 */ 0, GRUB_KEYBOARD_KEY_NUM1, ++ /* 0x6a */ GRUB_KEYBOARD_KEY_JP_YEN, GRUB_KEYBOARD_KEY_NUM4, ++ /* 0x6c */ GRUB_KEYBOARD_KEY_NUM7, GRUB_KEYBOARD_KEY_KPCOMMA, ++ /* 0x6e */ 0, 0, ++ /* 0x70 */ GRUB_KEYBOARD_KEY_NUM0, GRUB_KEYBOARD_KEY_NUMDOT, ++ /* 0x72 */ GRUB_KEYBOARD_KEY_NUM2, GRUB_KEYBOARD_KEY_NUM5, ++ /* 0x74 */ GRUB_KEYBOARD_KEY_NUM6, GRUB_KEYBOARD_KEY_NUM8, ++ /* 0x76 */ GRUB_KEYBOARD_KEY_ESCAPE, GRUB_KEYBOARD_KEY_NUM_LOCK, ++ /* 0x78 */ GRUB_KEYBOARD_KEY_F11, GRUB_KEYBOARD_KEY_NUMPLUS, ++ /* 0x7a */ GRUB_KEYBOARD_KEY_NUM3, GRUB_KEYBOARD_KEY_NUMMINUS, ++ /* 0x7c */ GRUB_KEYBOARD_KEY_NUMMUL, GRUB_KEYBOARD_KEY_NUM9, ++ /* 0x7e */ GRUB_KEYBOARD_KEY_SCROLL_LOCK, 0, ++ /* 0x80 */ 0, 0, ++ /* 0x82 */ 0, GRUB_KEYBOARD_KEY_F7, ++ }; ++ ++static const struct ++{ ++ grub_uint8_t from, to; ++} set2_e0_mapping[] = ++ { ++ {0x11, GRUB_KEYBOARD_KEY_RIGHT_ALT}, ++ {0x14, GRUB_KEYBOARD_KEY_RIGHT_CTRL}, ++ {0x4a, GRUB_KEYBOARD_KEY_NUMSLASH}, ++ {0x5a, GRUB_KEYBOARD_KEY_NUMENTER}, ++ {0x69, GRUB_KEYBOARD_KEY_END}, ++ {0x6b, GRUB_KEYBOARD_KEY_LEFT}, ++ {0x6c, GRUB_KEYBOARD_KEY_HOME}, ++ {0x70, GRUB_KEYBOARD_KEY_INSERT}, ++ {0x71, GRUB_KEYBOARD_KEY_DELETE}, ++ {0x72, GRUB_KEYBOARD_KEY_DOWN}, ++ {0x74, GRUB_KEYBOARD_KEY_RIGHT}, ++ {0x75, GRUB_KEYBOARD_KEY_UP}, ++ {0x7a, GRUB_KEYBOARD_KEY_NPAGE}, ++ {0x7d, GRUB_KEYBOARD_KEY_PPAGE}, ++ }; ++ ++static int ++fetch_key (struct grub_ps2_state *ps2_state, grub_uint8_t at_key, int *is_break) ++{ ++ int was_ext = 0; ++ int ret = 0; ++ ++ /* May happen if no keyboard is connected. Just ignore this. */ ++ if (at_key == 0xff) ++ return -1; ++ if (at_key == 0xe0) ++ { ++ ps2_state->e0_received = 1; ++ return -1; ++ } ++ ++ if ((ps2_state->current_set == 2 || ps2_state->current_set == 3) && at_key == 0xf0) ++ { ++ ps2_state->f0_received = 1; ++ return -1; ++ } ++ ++ /* Setting LEDs may generate ACKs. */ ++ if (at_key == GRUB_AT_ACK) ++ return -1; ++ ++ was_ext = ps2_state->e0_received; ++ ps2_state->e0_received = 0; ++ ++ switch (ps2_state->current_set) ++ { ++ case 1: ++ *is_break = !!(at_key & 0x80); ++ if (!was_ext) ++ ret = set1_mapping[at_key & 0x7f]; ++ else ++ { ++ unsigned i; ++ for (i = 0; i < ARRAY_SIZE (set1_e0_mapping); i++) ++ if (set1_e0_mapping[i].from == (at_key & 0x7f)) ++ { ++ ret = set1_e0_mapping[i].to; ++ break; ++ } ++ } ++ break; ++ case 2: ++ *is_break = ps2_state->f0_received; ++ ps2_state->f0_received = 0; ++ if (!was_ext) ++ ret = set2_mapping[at_key]; ++ else ++ { ++ unsigned i; ++ for (i = 0; i < ARRAY_SIZE (set2_e0_mapping); i++) ++ if (set2_e0_mapping[i].from == at_key) ++ { ++ ret = set2_e0_mapping[i].to; ++ break; ++ } ++ } ++ break; ++ default: ++ return -1; ++ } ++ if (!ret) ++ { ++ if (was_ext) ++ grub_dprintf ("atkeyb", "Unknown key 0xe0+0x%02x from set %d\n", ++ at_key, ps2_state->current_set); ++ else ++ grub_dprintf ("atkeyb", "Unknown key 0x%02x from set %d\n", ++ at_key, ps2_state->current_set); ++ return -1; ++ } ++ return ret; ++} ++ ++/* FIXME: This should become an interrupt service routine. For now ++ it's just used to catch events from control keys. */ ++static int ++grub_keyboard_isr (struct grub_ps2_state *ps2_state, ++ grub_keyboard_key_t key, int is_break) ++{ ++ if (!is_break) ++ switch (key) ++ { ++ case GRUB_KEYBOARD_KEY_LEFT_SHIFT: ++ ps2_state->at_keyboard_status |= GRUB_TERM_STATUS_LSHIFT; ++ return 1; ++ case GRUB_KEYBOARD_KEY_RIGHT_SHIFT: ++ ps2_state->at_keyboard_status |= GRUB_TERM_STATUS_RSHIFT; ++ return 1; ++ case GRUB_KEYBOARD_KEY_LEFT_CTRL: ++ ps2_state->at_keyboard_status |= GRUB_TERM_STATUS_LCTRL; ++ return 1; ++ case GRUB_KEYBOARD_KEY_RIGHT_CTRL: ++ ps2_state->at_keyboard_status |= GRUB_TERM_STATUS_RCTRL; ++ return 1; ++ case GRUB_KEYBOARD_KEY_RIGHT_ALT: ++ ps2_state->at_keyboard_status |= GRUB_TERM_STATUS_RALT; ++ return 1; ++ case GRUB_KEYBOARD_KEY_LEFT_ALT: ++ ps2_state->at_keyboard_status |= GRUB_TERM_STATUS_LALT; ++ return 1; ++ default: ++ return 0; ++ } ++ else ++ switch (key) ++ { ++ case GRUB_KEYBOARD_KEY_LEFT_SHIFT: ++ ps2_state->at_keyboard_status &= ~GRUB_TERM_STATUS_LSHIFT; ++ return 1; ++ case GRUB_KEYBOARD_KEY_RIGHT_SHIFT: ++ ps2_state->at_keyboard_status &= ~GRUB_TERM_STATUS_RSHIFT; ++ return 1; ++ case GRUB_KEYBOARD_KEY_LEFT_CTRL: ++ ps2_state->at_keyboard_status &= ~GRUB_TERM_STATUS_LCTRL; ++ return 1; ++ case GRUB_KEYBOARD_KEY_RIGHT_CTRL: ++ ps2_state->at_keyboard_status &= ~GRUB_TERM_STATUS_RCTRL; ++ return 1; ++ case GRUB_KEYBOARD_KEY_RIGHT_ALT: ++ ps2_state->at_keyboard_status &= ~GRUB_TERM_STATUS_RALT; ++ return 1; ++ case GRUB_KEYBOARD_KEY_LEFT_ALT: ++ ps2_state->at_keyboard_status &= ~GRUB_TERM_STATUS_LALT; ++ return 1; ++ default: ++ return 0; ++ } ++} ++ ++/* If there is a key pending, return it; otherwise return GRUB_TERM_NO_KEY. */ ++int ++grub_ps2_process_incoming_byte (struct grub_ps2_state *ps2_state, ++ grub_uint8_t at_key) ++{ ++ int code; ++ int is_break = 0; ++ ++ code = fetch_key (ps2_state, at_key, &is_break); ++ if (code == -1) ++ return GRUB_TERM_NO_KEY; ++ ++ if (grub_keyboard_isr (ps2_state, code, is_break)) ++ return GRUB_TERM_NO_KEY; ++ if (is_break) ++ return GRUB_TERM_NO_KEY; ++#ifdef DEBUG_AT_KEYBOARD ++ grub_dprintf ("atkeyb", "Detected key 0x%x\n", code); ++#endif ++ switch (code) ++ { ++ case GRUB_KEYBOARD_KEY_CAPS_LOCK: ++ ps2_state->at_keyboard_status ^= GRUB_TERM_STATUS_CAPS; ++ ps2_state->led_status ^= KEYBOARD_LED_CAPS; ++ ++#ifdef DEBUG_AT_KEYBOARD ++ grub_dprintf ("atkeyb", "caps_lock = %d\n", !!(ps2_state->at_keyboard_status & GRUB_KEYBOARD_STATUS_CAPS_LOCK)); ++#endif ++ return GRUB_TERM_NO_KEY; ++ case GRUB_KEYBOARD_KEY_NUM_LOCK: ++ ps2_state->at_keyboard_status ^= GRUB_TERM_STATUS_NUM; ++ ps2_state->led_status ^= KEYBOARD_LED_NUM; ++ ++#ifdef DEBUG_AT_KEYBOARD ++ grub_dprintf ("atkeyb", "num_lock = %d\n", !!(ps2_state->at_keyboard_status & GRUB_KEYBOARD_STATUS_NUM_LOCK)); ++#endif ++ return GRUB_TERM_NO_KEY; ++ case GRUB_KEYBOARD_KEY_SCROLL_LOCK: ++ ps2_state->at_keyboard_status ^= GRUB_TERM_STATUS_SCROLL; ++ ps2_state->led_status ^= KEYBOARD_LED_SCROLL; ++ return GRUB_TERM_NO_KEY; ++ default: ++ return grub_term_map_key (code, ps2_state->at_keyboard_status); ++ } ++} +diff --git a/grub-core/term/terminfo.c b/grub-core/term/terminfo.c +index f0d3e3debc60aa8dd04a5643a8a0537ffb88ec26..d317efa368d846963743a243fd672026a2221933 100644 +--- a/grub-core/term/terminfo.c ++++ b/grub-core/term/terminfo.c +@@ -426,12 +426,12 @@ grub_terminfo_readkey (struct grub_term_input *term, int *keys, int *len, + } + *len = 1; + keys[0] = c; +- if (c != ANSI_CSI && c != '\e') ++ if (c != ANSI_CSI && c != GRUB_TERM_ESC) + { + /* Backspace: Ctrl-h. */ + if (c == 0x7f) +- c = '\b'; +- if (c < 0x20 && c != '\t' && c!= '\b' && c != '\n' && c != '\r') ++ c = GRUB_TERM_BACKSPACE; ++ if (c < 0x20 && c != GRUB_TERM_TAB && c!= GRUB_TERM_BACKSPACE && c != '\n' && c != '\r') + c = GRUB_TERM_CTRL | (c - 1 + 'a'); + *len = 1; + keys[0] = c; +@@ -487,7 +487,7 @@ grub_terminfo_readkey (struct grub_term_input *term, int *keys, int *len, + GRUB_TERM_KEY_HOME, GRUB_TERM_KEY_END }; + unsigned i; + +- if (c == '\e') ++ if (c == GRUB_TERM_ESC) + { + CONTINUE_READ; + +@@ -606,7 +606,7 @@ grub_terminfo_getkey (struct grub_term_input *termi) + &data->npending, data->readkey); + + #if defined(__powerpc__) && defined(GRUB_MACHINE_IEEE1275) +- if (data->npending == 1 && data->input_buf[0] == '\e' ++ if (data->npending == 1 && data->input_buf[0] == GRUB_TERM_ESC + && grub_ieee1275_test_flag (GRUB_IEEE1275_FLAG_BROKEN_REPEAT) + && grub_get_time_ms () - data->last_key_time < 1000 + && (data->last_key & GRUB_TERM_EXTENDED)) +diff --git a/grub-core/tests/cmdline_cat_test.c b/grub-core/tests/cmdline_cat_test.c +index f1e21439e2be229d386cb310d62164fc9a5f4f92..baea7688a1d3c49d37a2c03e585109ccd04328f8 100644 +--- a/grub-core/tests/cmdline_cat_test.c ++++ b/grub-core/tests/cmdline_cat_test.c +@@ -103,7 +103,7 @@ cmdline_cat_test (void) + '/', 't', 'e', 's', 't', '.', + 't', 'x', 't', '\n', + GRUB_TERM_NO_KEY, +- GRUB_TERM_NO_KEY, '\e'}, ++ GRUB_TERM_NO_KEY, GRUB_TERM_ESC}, + 23); + + grub_video_checksum ("cmdline_cat"); +diff --git a/grub-core/tests/gfxterm_menu.c b/grub-core/tests/gfxterm_menu.c +index 8f63dc27a35bd769ecb5d94599de3ba9e97cf5dc..12836fb96598d98b5cbf371a953e6ec702eb50de 100644 +--- a/grub-core/tests/gfxterm_menu.c ++++ b/grub-core/tests/gfxterm_menu.c +@@ -146,7 +146,7 @@ gfxterm_menu (void) + return; + } + grub_terminal_input_fake_sequence ((int []) { -1, -1, -1, GRUB_TERM_KEY_DOWN, -1, 'e', +- -1, GRUB_TERM_KEY_RIGHT, -1, 'x', -1, '\e', -1, '\e' }, 14); ++ -1, GRUB_TERM_KEY_RIGHT, -1, 'x', -1, GRUB_TERM_ESC, -1, GRUB_TERM_ESC }, 14); + + grub_video_checksum (tests[j].name); + +diff --git a/grub-core/tests/lib/functional_test.c b/grub-core/tests/lib/functional_test.c +index d4822a12456525e4abc5f587bc897364db4e52b7..96781fb39b5f37b201345f60fe4297629bb672cf 100644 +--- a/grub-core/tests/lib/functional_test.c ++++ b/grub-core/tests/lib/functional_test.c +@@ -26,14 +26,23 @@ GRUB_MOD_LICENSE ("GPLv3+"); + + static grub_err_t + grub_functional_test (grub_extcmd_context_t ctxt __attribute__ ((unused)), +- int argc __attribute__ ((unused)), +- char **args __attribute__ ((unused))) ++ int argc, ++ char **args) + { + grub_test_t test; + int ok = 1; ++ int i; + + FOR_LIST_ELEMENTS (test, grub_test_list) + { ++ if (argc != 0) ++ { ++ for (i = 0; i < argc; i++) ++ if (grub_strcmp(args[i], test->name) == 0) ++ break; ++ if (i == argc) ++ continue; ++ } + grub_errno = 0; + ok = ok && !grub_test_run (test); + grub_errno = 0; +diff --git a/grub-core/video/i386/coreboot/cbfb.c b/grub-core/video/coreboot/cbfb.c +similarity index 99% +rename from grub-core/video/i386/coreboot/cbfb.c +rename to grub-core/video/coreboot/cbfb.c +index dede0c37ea3e8a8948cd6535d26d008e117206bc..9af81fa5b01b63677d97ba9a242e60080df84e5a 100644 +--- a/grub-core/video/i386/coreboot/cbfb.c ++++ b/grub-core/video/coreboot/cbfb.c +@@ -25,7 +25,7 @@ + #include + #include + #include +-#include ++#include + #include + + struct grub_linuxbios_table_framebuffer *grub_video_coreboot_fbtable; +diff --git a/util/grub-install-common.c b/util/grub-install-common.c +index 452b230daedc3db0296cab014e89ddacf1c21347..9e3e358c96ae20f2fecb3d70645a081d8ffd12de 100644 +--- a/util/grub-install-common.c ++++ b/util/grub-install-common.c +@@ -73,6 +73,7 @@ grub_install_help_filter (int key, const char *text, + + static int (*compress_func) (const char *src, const char *dest) = NULL; + char *grub_install_copy_buffer; ++static char *dtb; + + int + grub_install_copy_file (const char *src, +@@ -364,6 +365,11 @@ grub_install_parse (int key, char *arg) + case GRUB_INSTALL_OPTIONS_INSTALL_FONTS: + handle_install_list (&install_fonts, arg, 0); + return 1; ++ case GRUB_INSTALL_OPTIONS_DTB: ++ if (dtb) ++ free (dtb); ++ dtb = xstrdup (arg); ++ return 1; + case GRUB_INSTALL_OPTIONS_INSTALL_COMPRESS: + if (strcmp (arg, "no") == 0 + || strcmp (arg, "none") == 0) +@@ -486,9 +492,10 @@ grub_install_make_image_wrap_file (const char *dir, const char *prefix, + + grub_util_info ("grub-mkimage --directory '%s' --prefix '%s'" + " --output '%s' " ++ " --dtb '%s' " + "--format '%s' --compression '%s' %s %s\n", + dir, prefix, +- outname, mkimage_target, ++ outname, dtb ? : "", mkimage_target, + compnames[compression], note ? "--note" : "", s); + free (s); + +@@ -499,7 +506,7 @@ grub_install_make_image_wrap_file (const char *dir, const char *prefix, + grub_install_generate_image (dir, prefix, fp, outname, + modules.entries, memdisk_path, + pubkeys, npubkeys, config_path, tgt, +- note, compression); ++ note, compression, dtb); + while (dc--) + grub_install_pop_module (); + } +@@ -666,6 +673,7 @@ static struct + [GRUB_INSTALL_PLATFORM_ARM_EFI] = { "arm", "efi" }, + [GRUB_INSTALL_PLATFORM_ARM64_EFI] = { "arm64", "efi" }, + [GRUB_INSTALL_PLATFORM_ARM_UBOOT] = { "arm", "uboot" }, ++ [GRUB_INSTALL_PLATFORM_ARM_COREBOOT] = { "arm", "coreboot" }, + }; + + char * +diff --git a/util/grub-install.c b/util/grub-install.c +index 9074d3e9e52d2a2e215a10b2f8b3cf627ca80db3..75e3e5ba6f0738c89b4ee490d4ec630ce97fea4f 100644 +--- a/util/grub-install.c ++++ b/util/grub-install.c +@@ -486,6 +486,7 @@ have_bootdev (enum grub_install_plat pl) + + case GRUB_INSTALL_PLATFORM_I386_QEMU: + case GRUB_INSTALL_PLATFORM_I386_COREBOOT: ++ case GRUB_INSTALL_PLATFORM_ARM_COREBOOT: + case GRUB_INSTALL_PLATFORM_I386_MULTIBOOT: + case GRUB_INSTALL_PLATFORM_MIPSEL_QEMU_MIPS: + case GRUB_INSTALL_PLATFORM_MIPS_QEMU_MIPS: +@@ -911,6 +912,7 @@ main (int argc, char *argv[]) + + case GRUB_INSTALL_PLATFORM_I386_QEMU: + case GRUB_INSTALL_PLATFORM_I386_COREBOOT: ++ case GRUB_INSTALL_PLATFORM_ARM_COREBOOT: + case GRUB_INSTALL_PLATFORM_I386_MULTIBOOT: + case GRUB_INSTALL_PLATFORM_MIPSEL_LOONGSON: + case GRUB_INSTALL_PLATFORM_MIPSEL_QEMU_MIPS: +@@ -946,6 +948,7 @@ main (int argc, char *argv[]) + case GRUB_INSTALL_PLATFORM_ARM_UBOOT: + case GRUB_INSTALL_PLATFORM_I386_QEMU: + case GRUB_INSTALL_PLATFORM_I386_COREBOOT: ++ case GRUB_INSTALL_PLATFORM_ARM_COREBOOT: + case GRUB_INSTALL_PLATFORM_I386_MULTIBOOT: + case GRUB_INSTALL_PLATFORM_MIPSEL_LOONGSON: + case GRUB_INSTALL_PLATFORM_MIPSEL_QEMU_MIPS: +@@ -1448,6 +1451,7 @@ main (int argc, char *argv[]) + case GRUB_INSTALL_PLATFORM_MIPSEL_LOONGSON: + case GRUB_INSTALL_PLATFORM_I386_QEMU: + case GRUB_INSTALL_PLATFORM_I386_COREBOOT: ++ case GRUB_INSTALL_PLATFORM_ARM_COREBOOT: + case GRUB_INSTALL_PLATFORM_I386_MULTIBOOT: + case GRUB_INSTALL_PLATFORM_MIPSEL_QEMU_MIPS: + case GRUB_INSTALL_PLATFORM_MIPS_QEMU_MIPS: +@@ -1542,6 +1546,7 @@ main (int argc, char *argv[]) + break; + + case GRUB_INSTALL_PLATFORM_I386_COREBOOT: ++ case GRUB_INSTALL_PLATFORM_ARM_COREBOOT: + case GRUB_INSTALL_PLATFORM_I386_MULTIBOOT: + case GRUB_INSTALL_PLATFORM_I386_IEEE1275: + case GRUB_INSTALL_PLATFORM_POWERPC_IEEE1275: +@@ -1629,6 +1634,7 @@ main (int argc, char *argv[]) + case GRUB_INSTALL_PLATFORM_MIPSEL_QEMU_MIPS: + case GRUB_INSTALL_PLATFORM_MIPS_QEMU_MIPS: + case GRUB_INSTALL_PLATFORM_I386_COREBOOT: ++ case GRUB_INSTALL_PLATFORM_ARM_COREBOOT: + case GRUB_INSTALL_PLATFORM_I386_MULTIBOOT: + case GRUB_INSTALL_PLATFORM_I386_PC: + case GRUB_INSTALL_PLATFORM_MIPSEL_ARC: +@@ -1889,6 +1895,7 @@ main (int argc, char *argv[]) + case GRUB_INSTALL_PLATFORM_MIPSEL_QEMU_MIPS: + case GRUB_INSTALL_PLATFORM_MIPS_QEMU_MIPS: + case GRUB_INSTALL_PLATFORM_I386_COREBOOT: ++ case GRUB_INSTALL_PLATFORM_ARM_COREBOOT: + case GRUB_INSTALL_PLATFORM_I386_MULTIBOOT: + case GRUB_INSTALL_PLATFORM_MIPSEL_ARC: + case GRUB_INSTALL_PLATFORM_ARM_UBOOT: +diff --git a/util/grub-mkimage.c b/util/grub-mkimage.c +index aba19d21b9a774e63ad49f166554d90f8c667e36..98d24cc06ea57b88a4f02f38f177f44ec4f38f3f 100644 +--- a/util/grub-mkimage.c ++++ b/util/grub-mkimage.c +@@ -71,6 +71,7 @@ static struct argp_option options[] = { + N_("embed FILE as a memdisk image\n" + "Implies `-p (memdisk)/boot/grub' and overrides any prefix supplied previously," + " but the prefix itself can be overridden by later options"), 0}, ++ {"dtb", 'D', N_("FILE"), 0, N_("embed FILE as a device tree (DTB)\n"), 0}, + /* TRANSLATORS: "embed" is a verb (command description). "*/ + {"config", 'c', N_("FILE"), 0, N_("embed FILE as an early config"), 0}, + /* TRANSLATORS: "embed" is a verb (command description). "*/ +@@ -117,6 +118,7 @@ struct arguments + char *dir; + char *prefix; + char *memdisk; ++ char *dtb; + char **pubkeys; + size_t npubkeys; + char *font; +@@ -176,6 +178,13 @@ argp_parser (int key, char *arg, struct argp_state *state) + arguments->prefix = xstrdup ("(memdisk)/boot/grub"); + break; + ++ case 'D': ++ if (arguments->dtb) ++ free (arguments->dtb); ++ ++ arguments->dtb = xstrdup (arg); ++ break; ++ + case 'k': + arguments->pubkeys = xrealloc (arguments->pubkeys, + sizeof (arguments->pubkeys[0]) +@@ -300,7 +309,7 @@ main (int argc, char *argv[]) + arguments.memdisk, arguments.pubkeys, + arguments.npubkeys, arguments.config, + arguments.image_target, arguments.note, +- arguments.comp); ++ arguments.comp, arguments.dtb); + + grub_util_file_sync (fp); + fclose (fp); +diff --git a/util/grub-mkimagexx.c b/util/grub-mkimagexx.c +index e63f148e48cf6f66852b15063405f81371d95ae9..a2bb05439f0c5e8dcebc241f38e787ab1fdf4fb7 100644 +--- a/util/grub-mkimagexx.c ++++ b/util/grub-mkimagexx.c +@@ -87,7 +87,8 @@ struct fixup_block_list + static int + is_relocatable (const struct grub_install_image_target_desc *image_target) + { +- return image_target->id == IMAGE_EFI || image_target->id == IMAGE_UBOOT; ++ return image_target->id == IMAGE_EFI || image_target->id == IMAGE_UBOOT ++ || (image_target->id == IMAGE_COREBOOT && image_target->elf_target == EM_ARM); + } + + #ifdef MKIMAGE_ELF32 +@@ -185,8 +186,8 @@ grub_arm_reloc_jump24 (grub_uint32_t *target, Elf32_Addr sym_addr) + void + SUFFIX (grub_mkimage_generate_elf) (const struct grub_install_image_target_desc *image_target, + int note, char **core_img, size_t *core_size, +- Elf_Addr target_addr, grub_size_t align, +- size_t kernel_size, size_t bss_size) ++ Elf_Addr target_addr, ++ struct grub_mkimage_layout *layout) + { + char *elf_img; + size_t program_size; +@@ -214,7 +215,7 @@ SUFFIX (grub_mkimage_generate_elf) (const struct grub_install_image_target_desc + footer_size += XEN_NOTE_SIZE; + } + header_size = ALIGN_UP (sizeof (*ehdr) + phnum * sizeof (*phdr) +- + shnum * sizeof (*shdr) + string_size, align); ++ + shnum * sizeof (*shdr) + string_size, layout->align); + + program_size = ALIGN_ADDR (*core_size); + +@@ -258,7 +259,8 @@ SUFFIX (grub_mkimage_generate_elf) (const struct grub_install_image_target_desc + ehdr->e_entry = grub_host_to_target32 (target_addr); + phdr->p_vaddr = grub_host_to_target32 (target_addr); + phdr->p_paddr = grub_host_to_target32 (target_addr); +- phdr->p_align = grub_host_to_target32 (align > image_target->link_align ? align : image_target->link_align); ++ phdr->p_align = grub_host_to_target32 (layout->align > image_target->link_align ? ++ layout->align : image_target->link_align); + if (image_target->id == IMAGE_LOONGSON_ELF) + ehdr->e_flags = grub_host_to_target32 (0x1000 | EF_MIPS_NOREORDER + | EF_MIPS_PIC | EF_MIPS_CPIC); +@@ -272,27 +274,34 @@ SUFFIX (grub_mkimage_generate_elf) (const struct grub_install_image_target_desc + else + { + grub_uint32_t target_addr_mods; +- phdr->p_filesz = grub_host_to_target32 (kernel_size); +- phdr->p_memsz = grub_host_to_target32 (kernel_size + bss_size); ++ phdr->p_filesz = grub_host_to_target32 (layout->kernel_size); ++ if (image_target->id == IMAGE_COREBOOT && image_target->elf_target == EM_ARM) ++ phdr->p_memsz = grub_host_to_target32 (layout->kernel_size); ++ else ++ phdr->p_memsz = grub_host_to_target32 (layout->kernel_size + layout->bss_size); + + phdr++; + phdr->p_type = grub_host_to_target32 (PT_GNU_STACK); +- phdr->p_offset = grub_host_to_target32 (header_size + kernel_size); ++ phdr->p_offset = grub_host_to_target32 (header_size + layout->kernel_size); + phdr->p_paddr = phdr->p_vaddr = phdr->p_filesz = phdr->p_memsz = 0; + phdr->p_flags = grub_host_to_target32 (PF_R | PF_W | PF_X); + phdr->p_align = grub_host_to_target32 (image_target->link_align); + + phdr++; + phdr->p_type = grub_host_to_target32 (PT_LOAD); +- phdr->p_offset = grub_host_to_target32 (header_size + kernel_size); ++ phdr->p_offset = grub_host_to_target32 (header_size + layout->kernel_size); + phdr->p_flags = grub_host_to_target32 (PF_R | PF_W | PF_X); + phdr->p_filesz = phdr->p_memsz +- = grub_host_to_target32 (*core_size - kernel_size); ++ = grub_host_to_target32 (*core_size - layout->kernel_size); + +- if (image_target->id == IMAGE_COREBOOT) ++ if (image_target->id == IMAGE_COREBOOT && image_target->elf_target == EM_386) + target_addr_mods = GRUB_KERNEL_I386_COREBOOT_MODULES_ADDR; ++ else if (image_target->id == IMAGE_COREBOOT && image_target->elf_target == EM_ARM) ++ target_addr_mods = ALIGN_UP (target_addr + layout->end ++ + image_target->mod_gap, ++ image_target->mod_align); + else +- target_addr_mods = ALIGN_UP (target_addr + kernel_size + bss_size ++ target_addr_mods = ALIGN_UP (target_addr + layout->kernel_size + layout->bss_size + + image_target->mod_gap, + image_target->mod_align); + phdr->p_vaddr = grub_host_to_target_addr (target_addr_mods); +@@ -434,7 +443,7 @@ SUFFIX (grub_mkimage_generate_elf) (const struct grub_install_image_target_desc + shdr->sh_size = grub_host_to_target32 (string_size); + shdr->sh_link = grub_host_to_target32 (0); + shdr->sh_info = grub_host_to_target32 (0); +- shdr->sh_addralign = grub_host_to_target32 (align); ++ shdr->sh_addralign = grub_host_to_target32 (layout->align); + shdr->sh_entsize = grub_host_to_target32 (0); + shdr++; + +@@ -445,10 +454,10 @@ SUFFIX (grub_mkimage_generate_elf) (const struct grub_install_image_target_desc + shdr->sh_type = grub_host_to_target32 (SHT_PROGBITS); + shdr->sh_addr = grub_host_to_target_addr (target_addr); + shdr->sh_offset = grub_host_to_target_addr (header_size); +- shdr->sh_size = grub_host_to_target32 (kernel_size); ++ shdr->sh_size = grub_host_to_target32 (layout->kernel_size); + shdr->sh_link = grub_host_to_target32 (0); + shdr->sh_info = grub_host_to_target32 (0); +- shdr->sh_addralign = grub_host_to_target32 (align); ++ shdr->sh_addralign = grub_host_to_target32 (layout->align); + shdr->sh_entsize = grub_host_to_target32 (0); + shdr++; + +@@ -456,9 +465,9 @@ SUFFIX (grub_mkimage_generate_elf) (const struct grub_install_image_target_desc + shdr->sh_name = grub_host_to_target32 (ptr - str_start); + ptr += sizeof ("mods"); + shdr->sh_type = grub_host_to_target32 (SHT_PROGBITS); +- shdr->sh_addr = grub_host_to_target_addr (target_addr + kernel_size); +- shdr->sh_offset = grub_host_to_target_addr (header_size + kernel_size); +- shdr->sh_size = grub_host_to_target32 (*core_size - kernel_size); ++ shdr->sh_addr = grub_host_to_target_addr (target_addr + layout->kernel_size); ++ shdr->sh_offset = grub_host_to_target_addr (header_size + layout->kernel_size); ++ shdr->sh_size = grub_host_to_target32 (*core_size - layout->kernel_size); + shdr->sh_link = grub_host_to_target32 (0); + shdr->sh_info = grub_host_to_target32 (0); + shdr->sh_addralign = grub_host_to_target32 (image_target->voidp_sizeof); +@@ -471,7 +480,7 @@ SUFFIX (grub_mkimage_generate_elf) (const struct grub_install_image_target_desc + shdr->sh_name = grub_host_to_target32 (ptr - str_start); + ptr += sizeof (".xen"); + shdr->sh_type = grub_host_to_target32 (SHT_PROGBITS); +- shdr->sh_addr = grub_host_to_target_addr (target_addr + kernel_size); ++ shdr->sh_addr = grub_host_to_target_addr (target_addr + layout->kernel_size); + shdr->sh_offset = grub_host_to_target_addr (program_size + header_size); + shdr->sh_size = grub_host_to_target32 (XEN_NOTE_SIZE); + shdr->sh_link = grub_host_to_target32 (0); +@@ -1875,7 +1884,7 @@ SUFFIX (locate_sections) (Elf_Ehdr *e, const char *kernel_path, + Platforms other than EFI and U-boot shouldn't have .bss in + their binaries as we build with -Wl,-Ttext. + */ +- if (image_target->id != IMAGE_UBOOT) ++ if (image_target->id == IMAGE_EFI || !is_relocatable (image_target)) + layout->kernel_size = layout->end; + + return section_addresses; +@@ -1978,6 +1987,7 @@ SUFFIX (grub_mkimage_load_image) (const char *kernel_path, + if (image_target->id == IMAGE_SPARC64_AOUT + || image_target->id == IMAGE_SPARC64_RAW + || image_target->id == IMAGE_UBOOT ++ || image_target->id == IMAGE_COREBOOT + || image_target->id == IMAGE_SPARC64_CDCORE) + layout->kernel_size = ALIGN_UP (layout->kernel_size, image_target->mod_align); + +@@ -2083,7 +2093,7 @@ SUFFIX (grub_mkimage_load_image) (const char *kernel_path, + Platforms other than EFI and U-boot shouldn't have .bss in + their binaries as we build with -Wl,-Ttext. + */ +- || (SUFFIX (is_bss_section) (s, image_target) && (image_target->id != IMAGE_UBOOT)) ++ || (SUFFIX (is_bss_section) (s, image_target) && (image_target->id == IMAGE_EFI || !is_relocatable (image_target))) + || SUFFIX (is_text_section) (s, image_target)) + { + if (grub_target_to_host32 (s->sh_type) == SHT_NOBITS) +diff --git a/util/grub-mkrescue.c b/util/grub-mkrescue.c +index 238d4840e2f9613c6392e16cb88e7f413cae41c4..9545945d8f3b1a85dea8404fe1a0c9b3a3b84ba1 100644 +--- a/util/grub-mkrescue.c ++++ b/util/grub-mkrescue.c +@@ -323,6 +323,7 @@ check_xorriso (const char *val) + char *buf = NULL; + size_t len = 0; + int ret = 0; ++ int wstatus = 0; + + argv[0] = xorriso; + argv[1] = "-as"; +@@ -347,8 +348,10 @@ check_xorriso (const char *val) + } + + close (fd); +- waitpid (pid, NULL, 0); ++ waitpid (pid, &wstatus, 0); + free (buf); ++ if (!WIFEXITED (wstatus) || WEXITSTATUS(wstatus) != 0) ++ return 0; + return ret; + } + +@@ -426,6 +429,7 @@ main (int argc, char *argv[]) + char **argp_argv; + int xorriso_tail_argc; + char **xorriso_tail_argv; ++ int rv; + + grub_util_host_init (&argc, &argv); + grub_util_disable_fd_syncs (); +@@ -478,6 +482,10 @@ main (int argc, char *argv[]) + if (!output_image) + grub_util_error ("%s", _("output file must be specified")); + ++ if (!check_xorriso ("graft-points")) { ++ grub_util_error ("%s", _("xorriso not found")); ++ } ++ + grub_init_all (); + grub_hostfs_init (); + grub_host_init (); +@@ -787,7 +795,6 @@ main (int argc, char *argv[]) + free (efidir_efi_boot); + + efiimgfat = grub_util_path_concat (2, iso9660_dir, "efi.img"); +- int rv; + rv = grub_util_exec ((const char * []) { "mformat", "-C", "-f", "2880", "-L", "16", "-i", + efiimgfat, "::", NULL }); + if (rv != 0) +@@ -960,7 +967,9 @@ main (int argc, char *argv[]) + + xorriso_argv[xorriso_argc] = NULL; + +- grub_util_exec ((const char *const *)xorriso_argv); ++ rv = grub_util_exec ((const char *const *)xorriso_argv); ++ if (rv != 0) ++ grub_util_error ("`%s` invocation failed\n", "xorriso"); + + grub_util_unlink_recursive (iso9660_dir); + +diff --git a/util/mkimage.c b/util/mkimage.c +index 9ad4cfe4223b661c11ab9d3783cb13c88100631c..e22d82afa61a6aa4209c7ab6d2aa5b58f95e1bfe 100644 +--- a/util/mkimage.c ++++ b/util/mkimage.c +@@ -533,6 +533,45 @@ static const struct grub_install_image_target_desc image_targets[] = + .mod_align = GRUB_KERNEL_ARM_UBOOT_MOD_ALIGN, + .link_align = 4 + }, ++ /* For coreboot versions that don't support self-relocating images. */ ++ { ++ .dirname = "arm-coreboot-vexpress", ++ .names = { "arm-coreboot-vexpress", NULL }, ++ .voidp_sizeof = 4, ++ .bigendian = 0, ++ .id = IMAGE_COREBOOT, ++ .flags = PLATFORM_FLAGS_NONE, ++ .total_module_size = GRUB_KERNEL_ARM_COREBOOT_TOTAL_MODULE_SIZE, ++ .decompressor_compressed_size = TARGET_NO_FIELD, ++ .decompressor_uncompressed_size = TARGET_NO_FIELD, ++ .decompressor_uncompressed_addr = TARGET_NO_FIELD, ++ .section_align = GRUB_KERNEL_ARM_COREBOOT_MOD_ALIGN, ++ .vaddr_offset = 0, ++ .elf_target = EM_ARM, ++ .mod_gap = GRUB_KERNEL_ARM_COREBOOT_MOD_GAP, ++ .mod_align = GRUB_KERNEL_ARM_COREBOOT_MOD_ALIGN, ++ .link_align = 4, ++ .link_addr = 0x62000000, ++ }, ++ { ++ .dirname = "arm-coreboot-veyron", ++ .names = { "arm-coreboot-veyron", NULL }, ++ .voidp_sizeof = 4, ++ .bigendian = 0, ++ .id = IMAGE_COREBOOT, ++ .flags = PLATFORM_FLAGS_NONE, ++ .total_module_size = GRUB_KERNEL_ARM_COREBOOT_TOTAL_MODULE_SIZE, ++ .decompressor_compressed_size = TARGET_NO_FIELD, ++ .decompressor_uncompressed_size = TARGET_NO_FIELD, ++ .decompressor_uncompressed_addr = TARGET_NO_FIELD, ++ .section_align = GRUB_KERNEL_ARM_COREBOOT_MOD_ALIGN, ++ .vaddr_offset = 0, ++ .elf_target = EM_ARM, ++ .mod_gap = GRUB_KERNEL_ARM_COREBOOT_MOD_GAP, ++ .mod_align = GRUB_KERNEL_ARM_COREBOOT_MOD_ALIGN, ++ .link_align = 4, ++ .link_addr = 0x43000000, ++ }, + { + .dirname = "arm-efi", + .names = { "arm-efi", NULL }, +@@ -738,13 +777,12 @@ grub_install_generate_image (const char *dir, const char *prefix, + char *memdisk_path, char **pubkey_paths, + size_t npubkeys, char *config_path, + const struct grub_install_image_target_desc *image_target, +- int note, +- grub_compression_t comp) ++ int note, grub_compression_t comp, const char *dtb_path) + { + char *kernel_img, *core_img; + size_t total_module_size, core_size; + size_t memdisk_size = 0, config_size = 0; +- size_t prefix_size = 0; ++ size_t prefix_size = 0, dtb_size = 0; + char *kernel_path; + size_t offset; + struct grub_util_path_list *path_list, *p; +@@ -789,6 +827,12 @@ grub_install_generate_image (const char *dir, const char *prefix, + total_module_size += memdisk_size + sizeof (struct grub_module_header); + } + ++ if (dtb_path) ++ { ++ dtb_size = ALIGN_UP(grub_util_get_image_size (dtb_path), 4); ++ total_module_size += dtb_size + sizeof (struct grub_module_header); ++ } ++ + if (config_path) + { + config_size = ALIGN_ADDR (grub_util_get_image_size (config_path) + 1); +@@ -911,6 +955,19 @@ grub_install_generate_image (const char *dir, const char *prefix, + offset += memdisk_size; + } + ++ if (dtb_path) ++ { ++ struct grub_module_header *header; ++ ++ header = (struct grub_module_header *) (kernel_img + offset); ++ header->type = grub_host_to_target32 (OBJ_TYPE_DTB); ++ header->size = grub_host_to_target32 (dtb_size + sizeof (*header)); ++ offset += sizeof (*header); ++ ++ grub_util_load_image (dtb_path, kernel_img + offset); ++ offset += dtb_size; ++ } ++ + if (config_path) + { + struct grub_module_header *header; +@@ -1033,7 +1090,7 @@ grub_install_generate_image (const char *dir, const char *prefix, + /* fallthrough */ + case IMAGE_COREBOOT: + case IMAGE_QEMU: +- if (layout.kernel_size + layout.bss_size + GRUB_KERNEL_I386_PC_LINK_ADDR > 0x68000) ++ if (image_target->elf_target != EM_ARM && layout.kernel_size + layout.bss_size + GRUB_KERNEL_I386_PC_LINK_ADDR > 0x68000) + grub_util_error (_("kernel image is too big (0x%x > 0x%x)"), + (unsigned) layout.kernel_size + (unsigned) layout.bss_size + + GRUB_KERNEL_I386_PC_LINK_ADDR, +@@ -1638,10 +1695,10 @@ grub_install_generate_image (const char *dir, const char *prefix, + target_addr = image_target->link_addr; + if (image_target->voidp_sizeof == 4) + grub_mkimage_generate_elf32 (image_target, note, &core_img, &core_size, +- target_addr, layout.align, layout.kernel_size, layout.bss_size); ++ target_addr, &layout); + else + grub_mkimage_generate_elf64 (image_target, note, &core_img, &core_size, +- target_addr, layout.align, layout.kernel_size, layout.bss_size); ++ target_addr, &layout); + } + break; + } +diff --git a/grub-core/tests/checksums.h b/grub-core/tests/checksums.h +index 68d8ce7c7753ff721ab0d5a12d40b2aff20c694c..921e57ff48d0be9ecf5d45a75ce1711d262cf7a8 100644 +--- a/grub-core/tests/checksums.h ++++ b/grub-core/tests/checksums.h +@@ -1,101 +1,101 @@ +- { "cmdline_cat", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xcd5fc34e, 0xcd5fc34e, 0xeabbecab, 0xeabbecab, 0xc9950151, 0xc9950151, 0x2be222b6, 0x2be222b6, 0xe88c769e, 0xe88c769e, 0x6be4910e, 0x6be4910e, 0x1dc1fe4f, 0x1dc1fe4f, 0xd7613e8f, 0xd7613e8f, 0xf8124196, 0xf8124196, 0x130f5935, 0x130f5935, 0x2872330e, 0x2872330e, 0xaa7b7868, 0xaa7b7868, 0x558eaeea, 0x558eaeea, 0x92f7960f, 0x92f7960f, 0xc5bfc709, 0xc5bfc709, 0x699732fe, 0x699732fe, 0xc859125f, 0xc859125f, 0xfc6ac729, 0xfc6ac729, 0xcdab6cd4, 0xcdab6cd4, 0x58a8b7f8, 0x58a8b7f8, 0xc0e73385, 0x6560d6ef, 0x3be8bb5d, 0x3be8bb5d, }, 45 }, +- { "cmdline_cat", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x13029f94, 0x13029f94, 0x7785fdab, 0x7785fdab, 0x95a7c1e8, 0x95a7c1e8, 0x315ab3e3, 0x315ab3e3, 0x6787f012, 0x6787f012, 0x79b1ecdc, 0x79b1ecdc, 0xdbc67810, 0xdbc67810, 0xafaa982e, 0xafaa982e, 0xc5cd0157, 0xc5cd0157, 0x3c50dd64, 0x3c50dd64, 0x1056cac0, 0x1056cac0, 0x1d7a41fa, 0x1d7a41fa, 0x5690b1e8, 0x5690b1e8, 0x616831d6, 0x616831d6, 0xfaf8e726, 0xfaf8e726, 0xd1ec5e26, 0xd1ec5e26, 0x3c269e1f, 0x3c269e1f, 0x1aa7952d, 0x1aa7952d, 0x6e7e2f99, 0x6e7e2f99, 0x98f4c02, 0x98f4c02, 0xc3f1abf2, 0xe348bb73, 0xea53cd60, 0xea53cd60, }, 45 }, +- { "cmdline_cat", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x8fbb4f4c, 0x8fbb4f4c, 0x5dc00167, 0x5dc00167, 0xbc124df8, 0xbc124df8, 0x31cf0f8e, 0x31cf0f8e, 0x798cc4ed, 0x798cc4ed, 0xc5d2a091, 0xc5d2a091, 0xb58a0591, 0xb58a0591, 0x4d118aca, 0x4d118aca, 0xbb06c7ee, 0xbb06c7ee, 0x42179db7, 0x42179db7, 0x65f2d81e, 0x65f2d81e, 0xa2628bcb, 0xa2628bcb, 0xbdb7f4b, 0xbdb7f4b, 0x66b10309, 0x66b10309, 0x1a550ea9, 0x1a550ea9, 0x377a297d, 0x377a297d, 0x2ea99015, 0x2ea99015, 0x4e20d7bc, 0x4e20d7bc, 0x8ecbde02, 0x8ecbde02, 0xdfa2195a, 0xdfa2195a, 0xe113d2a, 0xe204ee5b, 0x734679c1, 0x734679c1, }, 45 }, +- { "cmdline_cat", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0xe2f6bfe1, 0xe2f6bfe1, 0xf18aee15, 0xf18aee15, 0x5e83b689, 0x5e83b689, 0xb7e8b42c, 0xb7e8b42c, 0x85d78f92, 0x85d78f92, 0xd56fadae, 0xd56fadae, 0x7632f5bf, 0x7632f5bf, 0x2769a748, 0x2769a748, 0x4a6112cd, 0x4a6112cd, 0x4f9b66a4, 0x4f9b66a4, 0x70457d38, 0x70457d38, 0x8cadb1a7, 0x8cadb1a7, 0x451341f, 0x451341f, 0x8a62e741, 0x8a62e741, 0x1b1f9031, 0x1b1f9031, 0x75ab630e, 0x75ab630e, 0xd5ff53ac, 0xd5ff53ac, 0x73a2b3c7, 0x73a2b3c7, 0x7b52acd5, 0x7b52acd5, 0xf6f3e48c, 0xf6f3e48c, 0x8d0db133, 0x8db24310, 0x7aef56d4, 0x7aef56d4, }, 45 }, +- { "cmdline_cat", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x838a3f40, 0x838a3f40, 0x7351ba96, 0x7351ba96, 0x660963bb, 0x660963bb, 0x6f3362a6, 0x6f3362a6, 0x915d35d9, 0x915d35d9, 0xc7edaee9, 0xc7edaee9, 0xbc8ec24c, 0xbc8ec24c, 0xeb120ffd, 0xeb120ffd, 0x8f6d8232, 0x8f6d8232, 0x2de5d515, 0x2de5d515, 0x4f2ecd91, 0x4f2ecd91, 0x555a9b90, 0x555a9b90, 0x8f7b0d77, 0x8f7b0d77, 0x5f9536af, 0x5f9536af, 0x3dd79dbe, 0x3dd79dbe, 0xb555a0, 0xb555a0, 0x75aec882, 0x75aec882, 0xd5da89cb, 0xd5da89cb, 0xb47b3257, 0xb47b3257, 0x7c97c046, 0x7c97c046, 0x726a7abe, 0x4c8b8a56, 0xcffa0854, 0xcffa0854, }, 45 }, +- { "cmdline_cat", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x7bf761e, 0x7bf761e, 0xaf0b6dae, 0xaf0b6dae, 0x7db15930, 0x7db15930, 0xc9720d56, 0xc9720d56, 0x55590d6c, 0x55590d6c, 0xa0d193d9, 0xa0d193d9, 0x728987b2, 0x728987b2, 0x28aecde6, 0x28aecde6, 0xa59bb094, 0xa59bb094, 0x2d0b049d, 0x2d0b049d, 0xd8421240, 0xd8421240, 0x51fa339, 0x51fa339, 0xc625cc46, 0xc625cc46, 0x2c9e6fcc, 0x2c9e6fcc, 0x3d06ffd5, 0x3d06ffd5, 0x8dd72816, 0x8dd72816, 0xfcf2a982, 0xfcf2a982, 0x6ef2870f, 0x6ef2870f, 0xba2caab7, 0xba2caab7, 0x8e5a5872, 0x8e5a5872, 0x62b2fedc, 0x2bd3b588, 0x34ebdb15, 0x34ebdb15, }, 45 }, +- { "cmdline_cat", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0xa133280a, 0xa133280a, 0x1e8f4227, 0x1e8f4227, 0xa01cd911, 0xa01cd911, 0xdcb3d617, 0xdcb3d617, 0x51200351, 0x51200351, 0x609ba305, 0x609ba305, 0x5d96abfd, 0x5d96abfd, 0xd855cc70, 0xd855cc70, 0xdbfaf18d, 0xdbfaf18d, 0x84814843, 0x84814843, 0x4b00e630, 0x4b00e630, 0xd362b0f5, 0xd362b0f5, 0xec863355, 0xec863355, 0x195898d0, 0x195898d0, 0xe8c698c7, 0xe8c698c7, 0x884229e7, 0x884229e7, 0xb41ed3a9, 0xb41ed3a9, 0x2be1ce40, 0x2be1ce40, 0x8c33eb7c, 0x8c33eb7c, 0xbbce1da, 0xbbce1da, 0xef9415fa, 0x22fbc0d, 0xd82c182c, 0xd82c182c, }, 45 }, +- { "gfxterm_menu", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xbe029c, 0x6671ee1f, 0xbe029c, 0x4348cfdb, 0x59c36f00, 0x59c36f00, 0x3ad73295, 0x3ad73295, 0x3ad73295, 0x44575ff3, 0x44575ff3, 0x44575ff3, 0x26a14a21, 0x26a14a21, 0x26a14a21, 0x59c36f00, 0x4348cfdb, 0x4348cfdb, 0x59c36f00, }, 20 }, +- { "gfxterm_menu", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x14e228ef, 0xb0c8af57, 0x14e228ef, 0x3ae7ad90, 0xaa4593fe, 0xaa4593fe, 0xbec19c1b, 0xbec19c1b, 0xbec19c1b, 0x1834917c, 0x1834917c, 0x1834917c, 0x350c3a04, 0x350c3a04, 0x350c3a04, 0xaa4593fe, 0x3ae7ad90, 0x3ae7ad90, 0xaa4593fe, }, 20 }, +- { "gfxterm_menu", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x651fb144, 0xdf93ee9c, 0x651fb144, 0x3808dcc0, 0xc9cbf769, 0xc9cbf769, 0xe4861949, 0xe4861949, 0xe4861949, 0x1a5ed885, 0x1a5ed885, 0x1a5ed885, 0xf314678d, 0xf314678d, 0xf314678d, 0xc9cbf769, 0x3808dcc0, 0x3808dcc0, 0xc9cbf769, }, 20 }, +- { "gfxterm_menu", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0xdfd0119e, 0x6c7018a9, 0xdfd0119e, 0x71865846, 0x9813a416, 0x9813a416, 0xb5e8801c, 0xb5e8801c, 0xb5e8801c, 0x2433062f, 0x2433062f, 0x2433062f, 0x3d893bff, 0x3d893bff, 0x3d893bff, 0x9813a416, 0x71865846, 0x71865846, 0x9813a416, }, 20 }, +- { "gfxterm_menu", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x4e4844e0, 0x5ebe5f81, 0x4e4844e0, 0x38ee7153, 0x5fcf013d, 0x5fcf013d, 0x819b5c4e, 0x819b5c4e, 0x819b5c4e, 0x538b4438, 0x538b4438, 0x538b4438, 0x45f87ba7, 0x45f87ba7, 0x45f87ba7, 0x5fcf013d, 0x38ee7153, 0x38ee7153, 0x5fcf013d, }, 20 }, +- { "gfxterm_menu", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x701427d4, 0x246c830a, 0x701427d4, 0x6b11fdd3, 0xdd28f52b, 0xdd28f52b, 0xcd83646c, 0xcd83646c, 0xcd83646c, 0xecbf9d88, 0xecbf9d88, 0xecbf9d88, 0x91075604, 0x91075604, 0x91075604, 0xdd28f52b, 0x6b11fdd3, 0x6b11fdd3, 0xdd28f52b, }, 20 }, +- { "gfxterm_menu", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x7b5bd4c, 0xac246af1, 0x7b5bd4c, 0xf80aa6cc, 0x43d1f34, 0x43d1f34, 0xb200c08a, 0xb200c08a, 0xb200c08a, 0xcd0a6922, 0xcd0a6922, 0xcd0a6922, 0x545b6ca4, 0x545b6ca4, 0x545b6ca4, 0x43d1f34, 0xf80aa6cc, 0xf80aa6cc, 0x43d1f34, }, 20 }, +- { "gfxmenu", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x1027210c, 0x64e51c81, 0x1027210c, 0x45ca4a8a, 0x9a2e0d26, 0x12fd0f21, 0x12fd0f21, 0x12fd0f21, 0x4e25f9e1, 0x4e25f9e1, 0x4e25f9e1, 0x67bd3773, 0x67bd3773, 0x67bd3773, 0x59c36f00, 0x45ca4a8a, 0x45ca4a8a, }, 18 }, +- { "gfxmenu", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x8d12f697, 0xc5b32248, 0x8d12f697, 0x56720aa4, 0xa9d58ccd, 0xf766a14d, 0xf766a14d, 0xf766a14d, 0xa2390b47, 0xa2390b47, 0xa2390b47, 0xcb0ac30e, 0xcb0ac30e, 0xcb0ac30e, 0xaa4593fe, 0x56720aa4, 0x56720aa4, }, 18 }, +- { "gfxmenu", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xa5ec9f45, 0xdb7085d8, 0xa5ec9f45, 0x9caf1d3f, 0x5411be8b, 0xedc0ad83, 0xedc0ad83, 0xedc0ad83, 0x927e0b17, 0x927e0b17, 0x927e0b17, 0xd00a6b6f, 0xd00a6b6f, 0xd00a6b6f, 0xc9cbf769, 0x9caf1d3f, 0x9caf1d3f, }, 18 }, +- { "gfxmenu", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x1c3742c9, 0xce8e83bf, 0xeb96c838, 0xce8e83bf, 0x73cb3bc1, 0x740d78cf, 0xb35c7e64, 0xb35c7e64, 0xb35c7e64, 0x58f99418, 0x58f99418, 0x58f99418, 0x5eb294e8, 0x5eb294e8, 0x5eb294e8, 0x1c3742c9, 0x73cb3bc1, 0x73cb3bc1, }, 18 }, +- { "gfxmenu", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0xcc5a7bed, 0x56a03e51, 0xee7d8d4b, 0x56a03e51, 0x5bdf9413, 0xbcda144c, 0x220f7a5e, 0x220f7a5e, 0x220f7a5e, 0x4d46a64f, 0x4d46a64f, 0x4d46a64f, 0x40b0384c, 0x40b0384c, 0x40b0384c, 0xcc5a7bed, 0x5bdf9413, 0x5bdf9413, }, 18 }, +- { "gfxmenu", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xef4a3312, 0xea8a9cf0, 0x8929e522, 0xea8a9cf0, 0x78f3dfbc, 0x5d55a141, 0x377f1aeb, 0x377f1aeb, 0x377f1aeb, 0xf1cd5ef5, 0xf1cd5ef5, 0xf1cd5ef5, 0xe5a88e4a, 0xe5a88e4a, 0xe5a88e4a, 0xef4a3312, 0x78f3dfbc, 0x78f3dfbc, }, 18 }, +- { "gfxmenu", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x54e48d80, 0x6dcf1d57, 0x925a4c8f, 0x6dcf1d57, 0x69005b38, 0x6d6bb4bc, 0x756a36b9, 0x756a36b9, 0x756a36b9, 0xf499c068, 0xf499c068, 0xf499c068, 0x623d7907, 0x623d7907, 0x623d7907, 0x54e48d80, 0x69005b38, 0x69005b38, }, 18 }, +- { "gfxterm_ar", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xa49d26b0, 0xaa7d9b28, 0xa49d26b0, 0xe76bebf7, 0x59c36f00, 0x59c36f00, 0xea6ab252, 0xea6ab252, 0xea6ab252, 0x94eadf34, 0x94eadf34, 0x94eadf34, 0xf61ccae6, 0xf61ccae6, 0xf61ccae6, 0x59c36f00, 0xe76bebf7, 0xe76bebf7, 0x59c36f00, }, 20 }, +- { "gfxterm_ar", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x7a277db, 0xf3bf80f7, 0x7a277db, 0x29a7f2a4, 0xaa4593fe, 0xaa4593fe, 0xf1cd57e3, 0xf1cd57e3, 0xf1cd57e3, 0x57385a84, 0x57385a84, 0x57385a84, 0x7a00f1fc, 0x7a00f1fc, 0x7a00f1fc, 0xaa4593fe, 0x29a7f2a4, 0x29a7f2a4, 0xaa4593fe, }, 20 }, +- { "gfxterm_ar", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x631edf85, 0x71926408, 0x631edf85, 0x3e09b201, 0xc9cbf769, 0xc9cbf769, 0xf224ab3, 0xf224ab3, 0xf224ab3, 0xf1fa8b7f, 0xf1fa8b7f, 0xf1fa8b7f, 0x18b03477, 0x18b03477, 0x18b03477, 0xc9cbf769, 0x3e09b201, 0x3e09b201, 0xc9cbf769, }, 20 }, +- { "gfxterm_ar", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0xfbaf4635, 0xe69ef474, 0xfbaf4635, 0x55f90fed, 0x9813a416, 0x9813a416, 0x3aad8f41, 0x3aad8f41, 0x3aad8f41, 0xab760972, 0xab760972, 0xab760972, 0xb2cc34a2, 0xb2cc34a2, 0xb2cc34a2, 0x9813a416, 0x55f90fed, 0x55f90fed, 0x9813a416, }, 20 }, +- { "gfxterm_ar", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xdce50745, 0x1d8009e4, 0xdce50745, 0xaa4332f6, 0x5fcf013d, 0x5fcf013d, 0x354e5749, 0x354e5749, 0x354e5749, 0xe75e4f3f, 0xe75e4f3f, 0xe75e4f3f, 0xf12d70a0, 0xf12d70a0, 0xf12d70a0, 0x5fcf013d, 0xaa4332f6, 0xaa4332f6, 0x5fcf013d, }, 20 }, +- { "gfxterm_ar", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x3efebeff, 0xf101dfe2, 0x3efebeff, 0x25fb64f8, 0xdd28f52b, 0xdd28f52b, 0x70c69ebd, 0x70c69ebd, 0x70c69ebd, 0x51fa6759, 0x51fa6759, 0x51fa6759, 0x2c42acd5, 0x2c42acd5, 0x2c42acd5, 0xdd28f52b, 0x25fb64f8, 0x25fb64f8, 0xdd28f52b, }, 20 }, +- { "gfxterm_ar", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x59a34c64, 0x281cca78, 0x59a34c64, 0xa61c57e4, 0x43d1f34, 0x43d1f34, 0x95131d4, 0x95131d4, 0x95131d4, 0x765b987c, 0x765b987c, 0x765b987c, 0xef0a9dfa, 0xef0a9dfa, 0xef0a9dfa, 0x43d1f34, 0xa61c57e4, 0xa61c57e4, 0x43d1f34, }, 20 }, +- { "gfxterm_cyr", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xa37c165, 0x72063383, 0xa37c165, 0x49c10c22, 0x59c36f00, 0x59c36f00, 0x4e53de8e, 0x4e53de8e, 0x4e53de8e, 0x30d3b3e8, 0x30d3b3e8, 0x30d3b3e8, 0x5225a63a, 0x5225a63a, 0x5225a63a, 0x59c36f00, 0x49c10c22, 0x49c10c22, 0x59c36f00, }, 20 }, +- { "gfxterm_cyr", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x45bba0ba, 0xe60fd0b6, 0x45bba0ba, 0x6bbe25c5, 0xaa4593fe, 0xaa4593fe, 0x28de2b41, 0x28de2b41, 0x28de2b41, 0x8e2b2626, 0x8e2b2626, 0x8e2b2626, 0xa3138d5e, 0xa3138d5e, 0xa3138d5e, 0xaa4593fe, 0x6bbe25c5, 0x6bbe25c5, 0xaa4593fe, }, 20 }, +- { "gfxterm_cyr", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xb43d4e9d, 0x16f88820, 0xb43d4e9d, 0xe92a2319, 0xc9cbf769, 0xc9cbf769, 0xb8959ec7, 0xb8959ec7, 0xb8959ec7, 0x464d5f0b, 0x464d5f0b, 0x464d5f0b, 0xaf07e003, 0xaf07e003, 0xaf07e003, 0xc9cbf769, 0xe92a2319, 0xe92a2319, 0xc9cbf769, }, 20 }, +- { "gfxterm_cyr", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x46760365, 0x685ae30e, 0x46760365, 0xe8204abd, 0x9813a416, 0x9813a416, 0x8896050a, 0x8896050a, 0x8896050a, 0x194d8339, 0x194d8339, 0x194d8339, 0xf7bee9, 0xf7bee9, 0xf7bee9, 0x9813a416, 0xe8204abd, 0xe8204abd, 0x9813a416, }, 20 }, +- { "gfxterm_cyr", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x6859aa86, 0xf3f11deb, 0x6859aa86, 0x1eff9f35, 0x5fcf013d, 0x5fcf013d, 0xd72b1482, 0xd72b1482, 0xd72b1482, 0x53b0cf4, 0x53b0cf4, 0x53b0cf4, 0x1348336b, 0x1348336b, 0x1348336b, 0x5fcf013d, 0x1eff9f35, 0x1eff9f35, 0x5fcf013d, }, 20 }, +- { "gfxterm_cyr", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x688451e7, 0xf6936b72, 0x688451e7, 0x73818be0, 0xdd28f52b, 0xdd28f52b, 0xf12a65ac, 0xf12a65ac, 0xf12a65ac, 0xd0169c48, 0xd0169c48, 0xd0169c48, 0xadae57c4, 0xadae57c4, 0xadae57c4, 0xdd28f52b, 0x73818be0, 0x73818be0, 0xdd28f52b, }, 20 }, +- { "gfxterm_cyr", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x9616af94, 0xd466be40, 0x9616af94, 0x69a9b414, 0x43d1f34, 0x43d1f34, 0xf3bb3240, 0xf3bb3240, 0xf3bb3240, 0x8cb19be8, 0x8cb19be8, 0x8cb19be8, 0x15e09e6e, 0x15e09e6e, 0x15e09e6e, 0x43d1f34, 0x69a9b414, 0x69a9b414, 0x43d1f34, }, 20 }, +- { "gfxterm_heb", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x8708d1bd, 0x85dd5e9c, 0x8708d1bd, 0xc4fe1cfa, 0x59c36f00, 0x59c36f00, 0x7ae8aced, 0x7ae8aced, 0x7ae8aced, 0x468c18b, 0x468c18b, 0x468c18b, 0x669ed459, 0x669ed459, 0x669ed459, 0x59c36f00, 0xc4fe1cfa, 0xc4fe1cfa, 0x59c36f00, }, 20 }, +- { "gfxterm_heb", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0xa72b1043, 0x147d4ce0, 0xa72b1043, 0x892e953c, 0xaa4593fe, 0xaa4593fe, 0xb7b1dd40, 0xb7b1dd40, 0xb7b1dd40, 0x1144d027, 0x1144d027, 0x1144d027, 0x3c7c7b5f, 0x3c7c7b5f, 0x3c7c7b5f, 0xaa4593fe, 0x892e953c, 0x892e953c, 0xaa4593fe, }, 20 }, +- { "gfxterm_heb", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xc5fb1817, 0x745fb26c, 0xc5fb1817, 0x98ec7593, 0xc9cbf769, 0xc9cbf769, 0xf5f17e2d, 0xf5f17e2d, 0xf5f17e2d, 0xb29bfe1, 0xb29bfe1, 0xb29bfe1, 0xe26300e9, 0xe26300e9, 0xe26300e9, 0xc9cbf769, 0x98ec7593, 0x98ec7593, 0xc9cbf769, }, 20 }, +- { "gfxterm_heb", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x4be837e1, 0xbf4963ca, 0x4be837e1, 0xe5be7e39, 0x9813a416, 0x9813a416, 0xd886fca0, 0xd886fca0, 0xd886fca0, 0x495d7a93, 0x495d7a93, 0x495d7a93, 0x50e74743, 0x50e74743, 0x50e74743, 0x9813a416, 0xe5be7e39, 0xe5be7e39, 0x9813a416, }, 20 }, +- { "gfxterm_heb", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x21a8ccb8, 0x17719be, 0x21a8ccb8, 0x570ef90b, 0x5fcf013d, 0x5fcf013d, 0x2a7b5333, 0x2a7b5333, 0x2a7b5333, 0xf86b4b45, 0xf86b4b45, 0xf86b4b45, 0xee1874da, 0xee1874da, 0xee1874da, 0x5fcf013d, 0x570ef90b, 0x570ef90b, 0x5fcf013d, }, 20 }, +- { "gfxterm_heb", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x7001fe50, 0x4798153f, 0x7001fe50, 0x6b042457, 0xdd28f52b, 0xdd28f52b, 0x46489369, 0x46489369, 0x46489369, 0x67746a8d, 0x67746a8d, 0x67746a8d, 0x1acca101, 0x1acca101, 0x1acca101, 0xdd28f52b, 0x6b042457, 0x6b042457, 0xdd28f52b, }, 20 }, +- { "gfxterm_heb", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x6e10591c, 0x48bd926e, 0x6e10591c, 0x91af429c, 0x43d1f34, 0x43d1f34, 0x59cb829, 0x59cb829, 0x59cb829, 0x7a961181, 0x7a961181, 0x7a961181, 0xe3c71407, 0xe3c71407, 0xe3c71407, 0x43d1f34, 0x91af429c, 0x91af429c, 0x43d1f34, }, 20 }, +- { "gfxterm_gre", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x67627ed5, 0xdb276cef, 0x67627ed5, 0x2494b392, 0x59c36f00, 0x59c36f00, 0x43f511f3, 0x43f511f3, 0x43f511f3, 0x3d757c95, 0x3d757c95, 0x3d757c95, 0x5f836947, 0x5f836947, 0x5f836947, 0x59c36f00, 0x2494b392, 0x2494b392, 0x59c36f00, }, 20 }, +- { "gfxterm_gre", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x987cbf71, 0x6e4c645c, 0x987cbf71, 0xb6793a0e, 0xaa4593fe, 0xaa4593fe, 0xb943d716, 0xb943d716, 0xb943d716, 0x1fb6da71, 0x1fb6da71, 0x1fb6da71, 0x328e7109, 0x328e7109, 0x328e7109, 0xaa4593fe, 0xb6793a0e, 0xb6793a0e, 0xaa4593fe, }, 20 }, +- { "gfxterm_gre", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xf9987c07, 0x4a92eed9, 0xf9987c07, 0xa48f1183, 0xc9cbf769, 0xc9cbf769, 0x5eb3ddf4, 0x5eb3ddf4, 0x5eb3ddf4, 0xa06b1c38, 0xa06b1c38, 0xa06b1c38, 0x4921a330, 0x4921a330, 0x4921a330, 0xc9cbf769, 0xa48f1183, 0xa48f1183, 0xc9cbf769, }, 20 }, +- { "gfxterm_gre", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0xccd804e2, 0xb99e8d91, 0xccd804e2, 0x628e4d3a, 0x9813a416, 0x9813a416, 0x5aec5acc, 0x5aec5acc, 0x5aec5acc, 0xcb37dcff, 0xcb37dcff, 0xcb37dcff, 0xd28de12f, 0xd28de12f, 0xd28de12f, 0x9813a416, 0x628e4d3a, 0x628e4d3a, 0x9813a416, }, 20 }, +- { "gfxterm_gre", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x4990d896, 0x2b3aa242, 0x4990d896, 0x3f36ed25, 0x5fcf013d, 0x5fcf013d, 0x3cc6048d, 0x3cc6048d, 0x3cc6048d, 0xeed61cfb, 0xeed61cfb, 0xeed61cfb, 0xf8a52364, 0xf8a52364, 0xf8a52364, 0x5fcf013d, 0x3f36ed25, 0x3f36ed25, 0x5fcf013d, }, 20 }, +- { "gfxterm_gre", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x4ff5c69f, 0x66586489, 0x4ff5c69f, 0x54f01c98, 0xdd28f52b, 0xdd28f52b, 0xc3ff0bf5, 0xc3ff0bf5, 0xc3ff0bf5, 0xe2c3f211, 0xe2c3f211, 0xe2c3f211, 0x9f7b399d, 0x9f7b399d, 0x9f7b399d, 0xdd28f52b, 0x54f01c98, 0x54f01c98, 0xdd28f52b, }, 20 }, +- { "gfxterm_gre", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x909b7bb4, 0x2bb2a58c, 0x909b7bb4, 0x6f246034, 0x43d1f34, 0x43d1f34, 0x2df40751, 0x2df40751, 0x2df40751, 0x52feaef9, 0x52feaef9, 0x52feaef9, 0xcbafab7f, 0xcbafab7f, 0xcbafab7f, 0x43d1f34, 0x6f246034, 0x6f246034, 0x43d1f34, }, 20 }, +- { "gfxterm_ru", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xc77bfcc6, 0xffcdf45d, 0xc77bfcc6, 0x848d3181, 0x59c36f00, 0x59c36f00, 0xd79cd5e, 0xd79cd5e, 0xd79cd5e, 0x73f9a038, 0x73f9a038, 0x73f9a038, 0x110fb5ea, 0x110fb5ea, 0x110fb5ea, 0x59c36f00, 0x848d3181, 0x848d3181, 0x59c36f00, }, 20 }, +- { "gfxterm_ru", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0xd5494aa5, 0xa0924ec, 0xd5494aa5, 0xfb4ccfda, 0xaa4593fe, 0xaa4593fe, 0x8692c636, 0x8692c636, 0x8692c636, 0x2067cb51, 0x2067cb51, 0x2067cb51, 0xd5f6029, 0xd5f6029, 0xd5f6029, 0xaa4593fe, 0xfb4ccfda, 0xfb4ccfda, 0xaa4593fe, }, 20 }, +- { "gfxterm_ru", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x2436c4f, 0x2cde4e0c, 0x2436c4f, 0x5f5401cb, 0xc9cbf769, 0xc9cbf769, 0x558f50ae, 0x558f50ae, 0x558f50ae, 0xab579162, 0xab579162, 0xab579162, 0x421d2e6a, 0x421d2e6a, 0x421d2e6a, 0xc9cbf769, 0x5f5401cb, 0x5f5401cb, 0xc9cbf769, }, 20 }, +- { "gfxterm_ru", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x86f8a68c, 0xf4116451, 0x86f8a68c, 0x28aeef54, 0x9813a416, 0x9813a416, 0x7befbe43, 0x7befbe43, 0x7befbe43, 0xea343870, 0xea343870, 0xea343870, 0xf38e05a0, 0xf38e05a0, 0xf38e05a0, 0x9813a416, 0x28aeef54, 0x28aeef54, 0x9813a416, }, 20 }, +- { "gfxterm_ru", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x156c292f, 0x3c8eb473, 0x156c292f, 0x63ca1c9c, 0x5fcf013d, 0x5fcf013d, 0x895ea16b, 0x895ea16b, 0x895ea16b, 0x5b4eb91d, 0x5b4eb91d, 0x5b4eb91d, 0x4d3d8682, 0x4d3d8682, 0x4d3d8682, 0x5fcf013d, 0x63ca1c9c, 0x63ca1c9c, 0x5fcf013d, }, 20 }, +- { "gfxterm_ru", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xf57ebf12, 0x798b299b, 0xf57ebf12, 0xee7b6515, 0xdd28f52b, 0xdd28f52b, 0x22563fc6, 0x22563fc6, 0x22563fc6, 0x36ac622, 0x36ac622, 0x36ac622, 0x7ed20dae, 0x7ed20dae, 0x7ed20dae, 0xdd28f52b, 0xee7b6515, 0xee7b6515, 0xdd28f52b, }, 20 }, +- { "gfxterm_ru", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x2bc82eb1, 0x94064cc8, 0x2bc82eb1, 0xd4773531, 0x43d1f34, 0x43d1f34, 0x44cbf2f0, 0x44cbf2f0, 0x44cbf2f0, 0x3bc15b58, 0x3bc15b58, 0x3bc15b58, 0xa2905ede, 0xa2905ede, 0xa2905ede, 0x43d1f34, 0xd4773531, 0xd4773531, 0x43d1f34, }, 20 }, +- { "gfxterm_fr", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x7f6dd146, 0x548af474, 0x7f6dd146, 0x3c9b1c01, 0x59c36f00, 0x59c36f00, 0x7d913e8d, 0x7d913e8d, 0x7d913e8d, 0x31153eb, 0x31153eb, 0x31153eb, 0x61e74639, 0x61e74639, 0x61e74639, 0x59c36f00, 0x3c9b1c01, 0x3c9b1c01, 0x59c36f00, }, 20 }, +- { "gfxterm_fr", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0xf29ad079, 0x50d47c0, 0xf29ad079, 0xdc9f5506, 0xaa4593fe, 0xaa4593fe, 0x6bcf4c90, 0x6bcf4c90, 0x6bcf4c90, 0xcd3a41f7, 0xcd3a41f7, 0xcd3a41f7, 0xe002ea8f, 0xe002ea8f, 0xe002ea8f, 0xaa4593fe, 0xdc9f5506, 0xdc9f5506, 0xaa4593fe, }, 20 }, +- { "gfxterm_fr", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xb25e3082, 0x2ed845dd, 0xb25e3082, 0xef495d06, 0xc9cbf769, 0xc9cbf769, 0xd5322575, 0xd5322575, 0xd5322575, 0x2beae4b9, 0x2beae4b9, 0x2beae4b9, 0xc2a05bb1, 0xc2a05bb1, 0xc2a05bb1, 0xc9cbf769, 0xef495d06, 0xef495d06, 0xc9cbf769, }, 20 }, +- { "gfxterm_fr", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x4cdfcd2e, 0x8bf091f, 0x4cdfcd2e, 0xe28984f6, 0x9813a416, 0x9813a416, 0x8217f630, 0x8217f630, 0x8217f630, 0x13cc7003, 0x13cc7003, 0x13cc7003, 0xa764dd3, 0xa764dd3, 0xa764dd3, 0x9813a416, 0xe28984f6, 0xe28984f6, 0x9813a416, }, 20 }, +- { "gfxterm_fr", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xf2b49f88, 0x2eff252d, 0xf2b49f88, 0x8412aa3b, 0x5fcf013d, 0x5fcf013d, 0x5d3b9fe7, 0x5d3b9fe7, 0x5d3b9fe7, 0x8f2b8791, 0x8f2b8791, 0x8f2b8791, 0x9958b80e, 0x9958b80e, 0x9958b80e, 0x5fcf013d, 0x8412aa3b, 0x8412aa3b, 0x5fcf013d, }, 20 }, +- { "gfxterm_fr", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x786673be, 0x536f1359, 0x786673be, 0x6363a9b9, 0xdd28f52b, 0xdd28f52b, 0x38653b12, 0x38653b12, 0x38653b12, 0x1959c2f6, 0x1959c2f6, 0x1959c2f6, 0x64e1097a, 0x64e1097a, 0x64e1097a, 0xdd28f52b, 0x6363a9b9, 0x6363a9b9, 0xdd28f52b, }, 20 }, +- { "gfxterm_fr", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0xac4a1127, 0x699c2ad8, 0xac4a1127, 0x53f50aa7, 0x43d1f34, 0x43d1f34, 0xfa47dfba, 0xfa47dfba, 0xfa47dfba, 0x854d7612, 0x854d7612, 0x854d7612, 0x1c1c7394, 0x1c1c7394, 0x1c1c7394, 0x43d1f34, 0x53f50aa7, 0x53f50aa7, 0x43d1f34, }, 20 }, +- { "gfxterm_quot", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xbc5f6633, 0xda908ab0, 0xbc5f6633, 0xffa9ab74, 0x59c36f00, 0x59c36f00, 0x3ad73295, 0x3ad73295, 0x3ad73295, 0x44575ff3, 0x44575ff3, 0x44575ff3, 0x26a14a21, 0x26a14a21, 0x26a14a21, 0x59c36f00, 0xffa9ab74, 0xffa9ab74, 0x59c36f00, }, 20 }, +- { "gfxterm_quot", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0xad820d6b, 0x9a88ad3, 0xad820d6b, 0x83878814, 0xaa4593fe, 0xaa4593fe, 0xbec19c1b, 0xbec19c1b, 0xbec19c1b, 0x1834917c, 0x1834917c, 0x1834917c, 0x350c3a04, 0x350c3a04, 0x350c3a04, 0xaa4593fe, 0x83878814, 0x83878814, 0xaa4593fe, }, 20 }, +- { "gfxterm_quot", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xe5774112, 0x5ffb1eca, 0xe5774112, 0xb8602c96, 0xc9cbf769, 0xc9cbf769, 0xe4861949, 0xe4861949, 0xe4861949, 0x1a5ed885, 0x1a5ed885, 0x1a5ed885, 0xf314678d, 0xf314678d, 0xf314678d, 0xc9cbf769, 0xb8602c96, 0xb8602c96, 0xc9cbf769, }, 20 }, +- { "gfxterm_quot", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x6af1a2bc, 0xd951ab8b, 0x6af1a2bc, 0xc4a7eb64, 0x9813a416, 0x9813a416, 0xb5e8801c, 0xb5e8801c, 0xb5e8801c, 0x2433062f, 0x2433062f, 0x2433062f, 0x3d893bff, 0x3d893bff, 0x3d893bff, 0x9813a416, 0xc4a7eb64, 0xc4a7eb64, 0x9813a416, }, 20 }, +- { "gfxterm_quot", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xc6baa18, 0x1c9db179, 0xc6baa18, 0x7acd9fab, 0x5fcf013d, 0x5fcf013d, 0x819b5c4e, 0x819b5c4e, 0x819b5c4e, 0x538b4438, 0x538b4438, 0x538b4438, 0x45f87ba7, 0x45f87ba7, 0x45f87ba7, 0x5fcf013d, 0x7acd9fab, 0x7acd9fab, 0x5fcf013d, }, 20 }, +- { "gfxterm_quot", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xe424a6ab, 0xb05c0275, 0xe424a6ab, 0xff217cac, 0xdd28f52b, 0xdd28f52b, 0xcd83646c, 0xcd83646c, 0xcd83646c, 0xecbf9d88, 0xecbf9d88, 0xecbf9d88, 0x91075604, 0x91075604, 0x91075604, 0xdd28f52b, 0xff217cac, 0xff217cac, 0xdd28f52b, }, 20 }, +- { "gfxterm_quot", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x4a7dff41, 0xe1ec28fc, 0x4a7dff41, 0xb5c2e4c1, 0x43d1f34, 0x43d1f34, 0xb200c08a, 0xb200c08a, 0xb200c08a, 0xcd0a6922, 0xcd0a6922, 0xcd0a6922, 0x545b6ca4, 0x545b6ca4, 0x545b6ca4, 0x43d1f34, 0xb5c2e4c1, 0xb5c2e4c1, 0x43d1f34, }, 20 }, +- { "gfxterm_piglatin", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xd3d3e4a2, 0x9c635046, 0xd3d3e4a2, 0x902529e5, 0x59c36f00, 0x59c36f00, 0x85e713, 0x85e713, 0x85e713, 0x7e058a75, 0x7e058a75, 0x7e058a75, 0x1cf39fa7, 0x1cf39fa7, 0x1cf39fa7, 0x59c36f00, 0x902529e5, 0x902529e5, 0x59c36f00, }, 20 }, +- { "gfxterm_piglatin", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0xd61c80f5, 0xdf78b496, 0xd61c80f5, 0xf819058a, 0xaa4593fe, 0xaa4593fe, 0xefc0f7e7, 0xefc0f7e7, 0xefc0f7e7, 0x4935fa80, 0x4935fa80, 0x4935fa80, 0x640d51f8, 0x640d51f8, 0x640d51f8, 0xaa4593fe, 0xf819058a, 0xf819058a, 0xaa4593fe, }, 20 }, +- { "gfxterm_piglatin", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x936bc89d, 0x523a3e80, 0x936bc89d, 0xce7ca519, 0xc9cbf769, 0xc9cbf769, 0xaa99ffb1, 0xaa99ffb1, 0xaa99ffb1, 0x54413e7d, 0x54413e7d, 0x54413e7d, 0xbd0b8175, 0xbd0b8175, 0xbd0b8175, 0xc9cbf769, 0xce7ca519, 0xce7ca519, 0xc9cbf769, }, 20 }, +- { "gfxterm_piglatin", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x4fdd0291, 0x133fa83d, 0x4fdd0291, 0xe18b4b49, 0x9813a416, 0x9813a416, 0x74c38e90, 0x74c38e90, 0x74c38e90, 0xe51808a3, 0xe51808a3, 0xe51808a3, 0xfca23573, 0xfca23573, 0xfca23573, 0x9813a416, 0xe18b4b49, 0xe18b4b49, 0x9813a416, }, 20 }, +- { "gfxterm_piglatin", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x538203b0, 0x2a92e789, 0x538203b0, 0x25243603, 0x5fcf013d, 0x5fcf013d, 0x5e4d3dd8, 0x5e4d3dd8, 0x5e4d3dd8, 0x8c5d25ae, 0x8c5d25ae, 0x8c5d25ae, 0x9a2e1a31, 0x9a2e1a31, 0x9a2e1a31, 0x5fcf013d, 0x25243603, 0x25243603, 0x5fcf013d, }, 20 }, +- { "gfxterm_piglatin", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xcfc85125, 0xa5b0e11b, 0xcfc85125, 0xd4cd8b22, 0xdd28f52b, 0xdd28f52b, 0x1af8cddc, 0x1af8cddc, 0x1af8cddc, 0x3bc43438, 0x3bc43438, 0x3bc43438, 0x467cffb4, 0x467cffb4, 0x467cffb4, 0xdd28f52b, 0xd4cd8b22, 0xd4cd8b22, 0xdd28f52b, }, 20 }, +- { "gfxterm_piglatin", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0xf2469ffb, 0x1d0c1d2, 0xf2469ffb, 0xdf9847b, 0x43d1f34, 0x43d1f34, 0xa2837c7a, 0xa2837c7a, 0xa2837c7a, 0xdd89d5d2, 0xdd89d5d2, 0xdd89d5d2, 0x44d8d054, 0x44d8d054, 0x44d8d054, 0x43d1f34, 0xdf9847b, 0xdf9847b, 0x43d1f34, }, 20 }, +- { "gfxterm_ch", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x27851cc1, 0x15f731b5, 0x27851cc1, 0x6473d186, 0x59c36f00, 0x59c36f00, 0x125bcddf, 0x125bcddf, 0x125bcddf, 0x6cdba0b9, 0x6cdba0b9, 0x6cdba0b9, 0xe2db56b, 0xe2db56b, 0xe2db56b, 0x59c36f00, 0x6473d186, 0x6473d186, 0x59c36f00, }, 20 }, +- { "gfxterm_ch", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0xfcb223c, 0x2c2e18b9, 0xfcb223c, 0x21cea743, 0xaa4593fe, 0xaa4593fe, 0xd700be1a, 0xd700be1a, 0xd700be1a, 0x71f5b37d, 0x71f5b37d, 0x71f5b37d, 0x5ccd1805, 0x5ccd1805, 0x5ccd1805, 0xaa4593fe, 0x21cea743, 0x21cea743, 0xaa4593fe, }, 20 }, +- { "gfxterm_ch", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x807efaa5, 0xb673036a, 0x807efaa5, 0xdd699721, 0xc9cbf769, 0xc9cbf769, 0xdca3ed4b, 0xdca3ed4b, 0xdca3ed4b, 0x227b2c87, 0x227b2c87, 0x227b2c87, 0xcb31938f, 0xcb31938f, 0xcb31938f, 0xc9cbf769, 0xdd699721, 0xdd699721, 0xc9cbf769, }, 20 }, +- { "gfxterm_ch", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x651d0d50, 0xf0dc38fc, 0x651d0d50, 0xcb4b4488, 0x9813a416, 0x9813a416, 0x80d03ee8, 0x80d03ee8, 0x80d03ee8, 0x110bb8db, 0x110bb8db, 0x110bb8db, 0x8b1850b, 0x8b1850b, 0x8b1850b, 0x9813a416, 0xcb4b4488, 0xcb4b4488, 0x9813a416, }, 20 }, +- { "gfxterm_ch", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xb9b068f, 0xdc68ac3c, 0xb9b068f, 0x7d3d333c, 0x5fcf013d, 0x5fcf013d, 0xa1f0a6e4, 0xa1f0a6e4, 0xa1f0a6e4, 0x73e0be92, 0x73e0be92, 0x73e0be92, 0x6593810d, 0x6593810d, 0x6593810d, 0x5fcf013d, 0x7d3d333c, 0x7d3d333c, 0x5fcf013d, }, 20 }, +- { "gfxterm_ch", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xf0789d7e, 0x6f2f2b61, 0xf0789d7e, 0xeb7d4779, 0xdd28f52b, 0xdd28f52b, 0xb995630, 0xb995630, 0xb995630, 0x2aa5afd4, 0x2aa5afd4, 0x2aa5afd4, 0x571d6458, 0x571d6458, 0x571d6458, 0xdd28f52b, 0xeb7d4779, 0xeb7d4779, 0xdd28f52b, }, 20 }, +- { "gfxterm_ch", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x819821ff, 0xdd19128c, 0x819821ff, 0x7e273a7f, 0x43d1f34, 0x43d1f34, 0xf35981d3, 0xf35981d3, 0xf35981d3, 0x8c53287b, 0x8c53287b, 0x8c53287b, 0x15022dfd, 0x15022dfd, 0x15022dfd, 0x43d1f34, 0x7e273a7f, 0x7e273a7f, 0x43d1f34, }, 20 }, +- { "gfxterm_red", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xa99604d1, 0xcf59e852, 0xa99604d1, 0xfebbba0f, 0x59c36f00, 0x59c36f00, 0x53767ce3, 0x53767ce3, 0x53767ce3, 0x2df61185, 0x2df61185, 0x2df61185, 0x4f000457, 0x4f000457, 0x4f000457, 0x59c36f00, 0xfebbba0f, 0xfebbba0f, 0x59c36f00, }, 20 }, +- { "gfxterm_red", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x7d0a218, 0xa3fa25a0, 0x7d0a218, 0xb777784e, 0xaa4593fe, 0xaa4593fe, 0x35db26e1, 0x35db26e1, 0x35db26e1, 0x932e2b86, 0x932e2b86, 0x932e2b86, 0xbe1680fe, 0xbe1680fe, 0xbe1680fe, 0xaa4593fe, 0xb777784e, 0xb777784e, 0xaa4593fe, }, 20 }, +- { "gfxterm_red", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x63be90f4, 0xd932cf2c, 0x63be90f4, 0x739b8e5a, 0xc9cbf769, 0xc9cbf769, 0x70a00efe, 0x70a00efe, 0x70a00efe, 0x8e78cf32, 0x8e78cf32, 0x8e78cf32, 0x6732703a, 0x6732703a, 0x6732703a, 0xc9cbf769, 0x739b8e5a, 0x739b8e5a, 0xc9cbf769, }, 20 }, +- { "gfxterm_red", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x53460c90, 0xe0e605a7, 0x53460c90, 0x6337f0bf, 0x9813a416, 0x9813a416, 0x4161864c, 0x4161864c, 0x4161864c, 0xd0ba007f, 0xd0ba007f, 0xd0ba007f, 0xc9003daf, 0xc9003daf, 0xc9003daf, 0x9813a416, 0x6337f0bf, 0x6337f0bf, 0x9813a416, }, 20 }, +- { "gfxterm_red", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xf54761a0, 0xe5b17ac1, 0xf54761a0, 0x5b408e55, 0x5fcf013d, 0x5fcf013d, 0x580fda0e, 0x580fda0e, 0x580fda0e, 0x8a1fc278, 0x8a1fc278, 0x8a1fc278, 0x9c6cfde7, 0x9c6cfde7, 0x9c6cfde7, 0x5fcf013d, 0x5b408e55, 0x5b408e55, 0x5fcf013d, }, 20 }, +- { "gfxterm_red", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xec78b0c1, 0xb800141f, 0xec78b0c1, 0x621c7b1b, 0xdd28f52b, 0xdd28f52b, 0x8f60179, 0x8f60179, 0x8f60179, 0x29caf89d, 0x29caf89d, 0x29caf89d, 0x54723311, 0x54723311, 0x54723311, 0xdd28f52b, 0x621c7b1b, 0x621c7b1b, 0xdd28f52b, }, 20 }, +- { "gfxterm_red", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0xf209411b, 0x599896a6, 0xf209411b, 0x6551c7bb, 0x43d1f34, 0x43d1f34, 0x5ac6bb4a, 0x5ac6bb4a, 0x5ac6bb4a, 0x25cc12e2, 0x25cc12e2, 0x25cc12e2, 0xbc9d1764, 0xbc9d1764, 0xbc9d1764, 0x43d1f34, 0x6551c7bb, 0x6551c7bb, 0x43d1f34, }, 20 }, +- { "gfxterm_high", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x93b4fcd8, 0xf57b105b, 0x93b4fcd8, 0x2bfe5312, 0x59c36f00, 0x59c36f00, 0x3ad73295, 0x3ad73295, 0x3ad73295, 0x44575ff3, 0x44575ff3, 0x44575ff3, 0x26a14a21, 0x26a14a21, 0x26a14a21, 0x59c36f00, 0x2bfe5312, 0x2bfe5312, 0x59c36f00, }, 20 }, +- { "gfxterm_high", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x656c9044, 0xc14617fc, 0x656c9044, 0xa6ea58cb, 0xaa4593fe, 0xaa4593fe, 0xbec19c1b, 0xbec19c1b, 0xbec19c1b, 0x1834917c, 0x1834917c, 0x1834917c, 0x350c3a04, 0x350c3a04, 0x350c3a04, 0xaa4593fe, 0xa6ea58cb, 0xa6ea58cb, 0xaa4593fe, }, 20 }, +- { "gfxterm_high", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xa11479ed, 0x1b982635, 0xa11479ed, 0xe37185d0, 0xc9cbf769, 0xc9cbf769, 0xe4861949, 0xe4861949, 0xe4861949, 0x1a5ed885, 0x1a5ed885, 0x1a5ed885, 0xf314678d, 0xf314678d, 0xf314678d, 0xc9cbf769, 0xe37185d0, 0xe37185d0, 0xc9cbf769, }, 20 }, +- { "gfxterm_high", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x244770a7, 0x97e77990, 0x244770a7, 0x6a54d2ee, 0x9813a416, 0x9813a416, 0xb5e8801c, 0xb5e8801c, 0xb5e8801c, 0x2433062f, 0x2433062f, 0x2433062f, 0x3d893bff, 0x3d893bff, 0x3d893bff, 0x9813a416, 0x6a54d2ee, 0x6a54d2ee, 0x9813a416, }, 20 }, +- { "gfxterm_high", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x8ca34476, 0x9c555f17, 0x8ca34476, 0x1fc54b41, 0x5fcf013d, 0x5fcf013d, 0x819b5c4e, 0x819b5c4e, 0x819b5c4e, 0x538b4438, 0x538b4438, 0x538b4438, 0x45f87ba7, 0x45f87ba7, 0x45f87ba7, 0x5fcf013d, 0x1fc54b41, 0x1fc54b41, 0x5fcf013d, }, 20 }, +- { "gfxterm_high", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xf19f6af8, 0xa5e7ce26, 0xf19f6af8, 0x1619aea6, 0xdd28f52b, 0xdd28f52b, 0xcd83646c, 0xcd83646c, 0xcd83646c, 0xecbf9d88, 0xecbf9d88, 0xecbf9d88, 0x91075604, 0x91075604, 0x91075604, 0xdd28f52b, 0x1619aea6, 0x1619aea6, 0xdd28f52b, }, 20 }, +- { "gfxterm_high", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x5f75414f, 0xf4e496f2, 0x5f75414f, 0x27fd1fe0, 0x43d1f34, 0x43d1f34, 0xb200c08a, 0xb200c08a, 0xb200c08a, 0xcd0a6922, 0xcd0a6922, 0xcd0a6922, 0x545b6ca4, 0x545b6ca4, 0x545b6ca4, 0x43d1f34, 0x27fd1fe0, 0x27fd1fe0, 0x43d1f34, }, 20 }, ++ { "cmdline_cat", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x8851b0ee, 0x8851b0ee, 0xafb59f0b, 0xafb59f0b, 0x8c9b72f1, 0x8c9b72f1, 0x6eec5116, 0x6eec5116, 0xad82053e, 0xad82053e, 0x2eeae2ae, 0x2eeae2ae, 0x58cf8def, 0x58cf8def, 0x926f4d2f, 0x926f4d2f, 0xbd1c3236, 0xbd1c3236, 0x56012a95, 0x56012a95, 0x6d7c40ae, 0x6d7c40ae, 0xef750bc8, 0xef750bc8, 0x1080dd4a, 0x1080dd4a, 0xd7f9e5af, 0xd7f9e5af, 0x80b1b4a9, 0x80b1b4a9, 0x2c99415e, 0x2c99415e, 0x8d5761ff, 0x8d5761ff, 0xb964b489, 0xb964b489, 0x88a51f74, 0x88a51f74, 0x1da6c458, 0x1da6c458, 0x85e94025, 0x206ea54f, 0x7ee6c8fd, 0x7ee6c8fd, }, 45 }, ++ { "cmdline_cat", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x834b70a0, 0x834b70a0, 0xe7cc129f, 0xe7cc129f, 0x5ee2edc, 0x5ee2edc, 0xa1135cd7, 0xa1135cd7, 0xf7ce1f26, 0xf7ce1f26, 0xe9f803e8, 0xe9f803e8, 0x4b8f9724, 0x4b8f9724, 0x3fe3771a, 0x3fe3771a, 0x5584ee63, 0x5584ee63, 0xac193250, 0xac193250, 0x801f25f4, 0x801f25f4, 0x8d33aece, 0x8d33aece, 0xc6d95edc, 0xc6d95edc, 0xf121dee2, 0xf121dee2, 0x6ab10812, 0x6ab10812, 0x41a5b112, 0x41a5b112, 0xac6f712b, 0xac6f712b, 0x8aee7a19, 0x8aee7a19, 0xfe37c0ad, 0xfe37c0ad, 0x99c6a336, 0x99c6a336, 0x53b844c6, 0x73015447, 0x7a1a2254, 0x7a1a2254, }, 45 }, ++ { "cmdline_cat", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xb121c912, 0xb121c912, 0x635a8739, 0x635a8739, 0x8288cba6, 0x8288cba6, 0xf5589d0, 0xf5589d0, 0x471642b3, 0x471642b3, 0xfb4826cf, 0xfb4826cf, 0x8b1083cf, 0x8b1083cf, 0x738b0c94, 0x738b0c94, 0x859c41b0, 0x859c41b0, 0x7c8d1be9, 0x7c8d1be9, 0x5b685e40, 0x5b685e40, 0x9cf80d95, 0x9cf80d95, 0x3541f915, 0x3541f915, 0x582b8557, 0x582b8557, 0x24cf88f7, 0x24cf88f7, 0x9e0af23, 0x9e0af23, 0x1033164b, 0x1033164b, 0x70ba51e2, 0x70ba51e2, 0xb051585c, 0xb051585c, 0xe1389f04, 0xe1389f04, 0x308bbb74, 0xdc9e6805, 0x4ddcff9f, 0x4ddcff9f, }, 45 }, ++ { "cmdline_cat", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0xac16e832, 0xac16e832, 0xbf6ab9c6, 0xbf6ab9c6, 0x1063e15a, 0x1063e15a, 0xf908e3ff, 0xf908e3ff, 0xcb37d841, 0xcb37d841, 0x9b8ffa7d, 0x9b8ffa7d, 0x38d2a26c, 0x38d2a26c, 0x6989f09b, 0x6989f09b, 0x481451e, 0x481451e, 0x17b3177, 0x17b3177, 0x3ea52aeb, 0x3ea52aeb, 0xc24de674, 0xc24de674, 0x4ab163cc, 0x4ab163cc, 0xc482b092, 0xc482b092, 0x55ffc7e2, 0x55ffc7e2, 0x3b4b34dd, 0x3b4b34dd, 0x9b1f047f, 0x9b1f047f, 0x3d42e414, 0x3d42e414, 0x35b2fb06, 0x35b2fb06, 0xb813b35f, 0xb813b35f, 0xc3ede6e0, 0xc35214c3, 0x340f0107, 0x340f0107, }, 45 }, ++ { "cmdline_cat", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x9c47caee, 0x9c47caee, 0x6c9c4f38, 0x6c9c4f38, 0x79c49615, 0x79c49615, 0x70fe9708, 0x70fe9708, 0x8e90c077, 0x8e90c077, 0xd8205b47, 0xd8205b47, 0xa34337e2, 0xa34337e2, 0xf4dffa53, 0xf4dffa53, 0x90a0779c, 0x90a0779c, 0x322820bb, 0x322820bb, 0x50e3383f, 0x50e3383f, 0x4a976e3e, 0x4a976e3e, 0x90b6f8d9, 0x90b6f8d9, 0x4058c301, 0x4058c301, 0x221a6810, 0x221a6810, 0x1f78a00e, 0x1f78a00e, 0x6a633d2c, 0x6a633d2c, 0xca177c65, 0xca177c65, 0xabb6c7f9, 0xabb6c7f9, 0x635a35e8, 0x635a35e8, 0x6da78f10, 0x53467ff8, 0xd037fdfa, 0xd037fdfa, }, 45 }, ++ { "cmdline_cat", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x2b6b8225, 0x2b6b8225, 0x83df9995, 0x83df9995, 0x5165ad0b, 0x5165ad0b, 0xe5a6f96d, 0xe5a6f96d, 0x798df957, 0x798df957, 0x8c0567e2, 0x8c0567e2, 0x5e5d7389, 0x5e5d7389, 0x47a39dd, 0x47a39dd, 0x894f44af, 0x894f44af, 0x1dff0a6, 0x1dff0a6, 0xf496e67b, 0xf496e67b, 0x29cb5702, 0x29cb5702, 0xeaf1387d, 0xeaf1387d, 0x4a9bf7, 0x4a9bf7, 0x11d20bee, 0x11d20bee, 0xa103dc2d, 0xa103dc2d, 0xd0265db9, 0xd0265db9, 0x42267334, 0x42267334, 0x96f85e8c, 0x96f85e8c, 0xa28eac49, 0xa28eac49, 0x4e660ae7, 0x70741b3, 0x183f2f2e, 0x183f2f2e, }, 45 }, ++ { "cmdline_cat", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x77b51f44, 0x77b51f44, 0xc8097569, 0xc8097569, 0x769aee5f, 0x769aee5f, 0xa35e159, 0xa35e159, 0x87a6341f, 0x87a6341f, 0xb61d944b, 0xb61d944b, 0x8b109cb3, 0x8b109cb3, 0xed3fb3e, 0xed3fb3e, 0xd7cc6c3, 0xd7cc6c3, 0x52077f0d, 0x52077f0d, 0x9d86d17e, 0x9d86d17e, 0x5e487bb, 0x5e487bb, 0x3a00041b, 0x3a00041b, 0xcfdeaf9e, 0xcfdeaf9e, 0x3e40af89, 0x3e40af89, 0x5ec41ea9, 0x5ec41ea9, 0x6298e4e7, 0x6298e4e7, 0xfd67f90e, 0xfd67f90e, 0x5ab5dc32, 0x5ab5dc32, 0xdd3ad694, 0xdd3ad694, 0x391222b4, 0xd4a98b43, 0xeaa2f62, 0xeaa2f62, }, 45 }, ++ { "gfxterm_menu", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x45b0713c, 0x237f9dbf, 0x45b0713c, 0x646bc7b, 0x59c36f00, 0x59c36f00, 0x7fd94135, 0x7fd94135, 0x7fd94135, 0x1592c53, 0x1592c53, 0x1592c53, 0x63af3981, 0x63af3981, 0x63af3981, 0x59c36f00, 0x646bc7b, 0x646bc7b, 0x59c36f00, }, 20 }, ++ { "gfxterm_menu", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x84abc7db, 0x20814063, 0x84abc7db, 0xaaae42a4, 0xaa4593fe, 0xaa4593fe, 0x2e88732f, 0x2e88732f, 0x2e88732f, 0x887d7e48, 0x887d7e48, 0x887d7e48, 0xa545d530, 0xa545d530, 0xa545d530, 0xaa4593fe, 0xaaae42a4, 0xaaae42a4, 0xaa4593fe, }, 20 }, ++ { "gfxterm_menu", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x5b85371a, 0xe10968c2, 0x5b85371a, 0x6925a9e, 0xc9cbf769, 0xc9cbf769, 0xda1c9f17, 0xda1c9f17, 0xda1c9f17, 0x24c45edb, 0x24c45edb, 0x24c45edb, 0xcd8ee1d3, 0xcd8ee1d3, 0xcd8ee1d3, 0xc9cbf769, 0x6925a9e, 0x6925a9e, 0xc9cbf769, }, 20 }, ++ { "gfxterm_menu", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x9130464d, 0x22904f7a, 0x9130464d, 0x3f660f95, 0x9813a416, 0x9813a416, 0xfb08d7cf, 0xfb08d7cf, 0xfb08d7cf, 0x6ad351fc, 0x6ad351fc, 0x6ad351fc, 0x73696c2c, 0x73696c2c, 0x73696c2c, 0x9813a416, 0x3f660f95, 0x3f660f95, 0x9813a416, }, 20 }, ++ { "gfxterm_menu", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x5185b14e, 0x4173aa2f, 0x5185b14e, 0x272384fd, 0x5fcf013d, 0x5fcf013d, 0x9e56a9e0, 0x9e56a9e0, 0x9e56a9e0, 0x4c46b196, 0x4c46b196, 0x4c46b196, 0x5a358e09, 0x5a358e09, 0x5a358e09, 0x5fcf013d, 0x272384fd, 0x272384fd, 0x5fcf013d, }, 20 }, ++ { "gfxterm_menu", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x5cc0d3ef, 0x8b87731, 0x5cc0d3ef, 0x47c509e8, 0xdd28f52b, 0xdd28f52b, 0xe1579057, 0xe1579057, 0xe1579057, 0xc06b69b3, 0xc06b69b3, 0xc06b69b3, 0xbdd3a23f, 0xbdd3a23f, 0xbdd3a23f, 0xdd28f52b, 0x47c509e8, 0x47c509e8, 0xdd28f52b, }, 20 }, ++ { "gfxterm_menu", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0xd1338a02, 0x7aa25dbf, 0xd1338a02, 0x2e8c9182, 0x43d1f34, 0x43d1f34, 0x6486f7c4, 0x6486f7c4, 0x6486f7c4, 0x1b8c5e6c, 0x1b8c5e6c, 0x1b8c5e6c, 0x82dd5bea, 0x82dd5bea, 0x82dd5bea, 0x43d1f34, 0x2e8c9182, 0x2e8c9182, 0x43d1f34, }, 20 }, ++ { "gfxmenu", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x1027210c, 0x64e51c81, 0x1027210c, 0x45ca4a8a, 0x9a2e0d26, 0x2b88b6ce, 0x2b88b6ce, 0x2b88b6ce, 0x7750400e, 0x7750400e, 0x7750400e, 0x5ec88e9c, 0x5ec88e9c, 0x5ec88e9c, 0x59c36f00, 0x45ca4a8a, 0x45ca4a8a, }, 18 }, ++ { "gfxmenu", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x8d12f697, 0xc5b32248, 0x8d12f697, 0x56720aa4, 0xa9d58ccd, 0xa1b1a1b5, 0xa1b1a1b5, 0xa1b1a1b5, 0xf4ee0bbf, 0xf4ee0bbf, 0xf4ee0bbf, 0x9dddc3f6, 0x9dddc3f6, 0x9dddc3f6, 0xaa4593fe, 0x56720aa4, 0x56720aa4, }, 18 }, ++ { "gfxmenu", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xa5ec9f45, 0xdb7085d8, 0xa5ec9f45, 0x9caf1d3f, 0x5411be8b, 0xa07e74d3, 0xa07e74d3, 0xa07e74d3, 0xdfc0d247, 0xdfc0d247, 0xdfc0d247, 0x9db4b23f, 0x9db4b23f, 0x9db4b23f, 0xc9cbf769, 0x9caf1d3f, 0x9caf1d3f, }, 18 }, ++ { "gfxmenu", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x1c3742c9, 0xce8e83bf, 0xeb96c838, 0xce8e83bf, 0x73cb3bc1, 0x740d78cf, 0x84312594, 0x84312594, 0x84312594, 0x6f94cfe8, 0x6f94cfe8, 0x6f94cfe8, 0x69dfcf18, 0x69dfcf18, 0x69dfcf18, 0x1c3742c9, 0x73cb3bc1, 0x73cb3bc1, }, 18 }, ++ { "gfxmenu", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0xcc5a7bed, 0x56a03e51, 0xee7d8d4b, 0x56a03e51, 0x5bdf9413, 0xbcda144c, 0x131c0760, 0x131c0760, 0x131c0760, 0x7c55db71, 0x7c55db71, 0x7c55db71, 0x71a34572, 0x71a34572, 0x71a34572, 0xcc5a7bed, 0x5bdf9413, 0x5bdf9413, }, 18 }, ++ { "gfxmenu", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xef4a3312, 0xea8a9cf0, 0x8929e522, 0xea8a9cf0, 0x78f3dfbc, 0x5d55a141, 0xb9092e0b, 0xb9092e0b, 0xb9092e0b, 0x7fbb6a15, 0x7fbb6a15, 0x7fbb6a15, 0x6bdebaaa, 0x6bdebaaa, 0x6bdebaaa, 0xef4a3312, 0x78f3dfbc, 0x78f3dfbc, }, 18 }, ++ { "gfxmenu", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x54e48d80, 0x6dcf1d57, 0x925a4c8f, 0x6dcf1d57, 0x69005b38, 0x6d6bb4bc, 0x14f7c6b1, 0x14f7c6b1, 0x14f7c6b1, 0x95043060, 0x95043060, 0x95043060, 0x3a0890f, 0x3a0890f, 0x3a0890f, 0x54e48d80, 0x69005b38, 0x69005b38, }, 18 }, ++ { "gfxterm_ar", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x77ff5efc, 0x791fe364, 0x77ff5efc, 0x340993bb, 0x59c36f00, 0x59c36f00, 0x3908ca1e, 0x3908ca1e, 0x3908ca1e, 0x4788a778, 0x4788a778, 0x4788a778, 0x257eb2aa, 0x257eb2aa, 0x257eb2aa, 0x59c36f00, 0x340993bb, 0x340993bb, 0x59c36f00, }, 20 }, ++ { "gfxterm_ar", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0xb2d04b0f, 0x46cdbc23, 0xb2d04b0f, 0x9cd5ce70, 0xaa4593fe, 0xaa4593fe, 0x44bf6b37, 0x44bf6b37, 0x44bf6b37, 0xe24a6650, 0xe24a6650, 0xe24a6650, 0xcf72cd28, 0xcf72cd28, 0xcf72cd28, 0xaa4593fe, 0x9cd5ce70, 0x9cd5ce70, 0xaa4593fe, }, 20 }, ++ { "gfxterm_ar", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x4bb823b8, 0x59349835, 0x4bb823b8, 0x16af4e3c, 0xc9cbf769, 0xc9cbf769, 0x2784b68e, 0x2784b68e, 0x2784b68e, 0xd95c7742, 0xd95c7742, 0xd95c7742, 0x3016c84a, 0x3016c84a, 0x3016c84a, 0xc9cbf769, 0x16af4e3c, 0x16af4e3c, 0xc9cbf769, }, 20 }, ++ { "gfxterm_ar", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0xb821e44, 0x16b3ac05, 0xb821e44, 0xa5d4579c, 0x9813a416, 0x9813a416, 0xca80d730, 0xca80d730, 0xca80d730, 0x5b5b5103, 0x5b5b5103, 0x5b5b5103, 0x42e16cd3, 0x42e16cd3, 0x42e16cd3, 0x9813a416, 0xa5d4579c, 0xa5d4579c, 0x9813a416, }, 20 }, ++ { "gfxterm_ar", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xbe0b9671, 0x7f6e98d0, 0xbe0b9671, 0xc8ada3c2, 0x5fcf013d, 0x5fcf013d, 0x57a0c67d, 0x57a0c67d, 0x57a0c67d, 0x85b0de0b, 0x85b0de0b, 0x85b0de0b, 0x93c3e194, 0x93c3e194, 0x93c3e194, 0x5fcf013d, 0xc8ada3c2, 0xc8ada3c2, 0x5fcf013d, }, 20 }, ++ { "gfxterm_ar", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x9f18b29e, 0x50e7d383, 0x9f18b29e, 0x841d6899, 0xdd28f52b, 0xdd28f52b, 0xd12092dc, 0xd12092dc, 0xd12092dc, 0xf01c6b38, 0xf01c6b38, 0xf01c6b38, 0x8da4a0b4, 0x8da4a0b4, 0x8da4a0b4, 0xdd28f52b, 0x841d6899, 0x841d6899, 0xdd28f52b, }, 20 }, ++ { "gfxterm_ar", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x4e8d4d8c, 0x3f32cb90, 0x4e8d4d8c, 0xb132560c, 0x43d1f34, 0x43d1f34, 0x1e7f303c, 0x1e7f303c, 0x1e7f303c, 0x61759994, 0x61759994, 0x61759994, 0xf8249c12, 0xf8249c12, 0xf8249c12, 0x43d1f34, 0xb132560c, 0xb132560c, 0x43d1f34, }, 20 }, ++ { "gfxterm_cyr", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x4f39b2c5, 0x37084023, 0x4f39b2c5, 0xccf7f82, 0x59c36f00, 0x59c36f00, 0xb5dad2e, 0xb5dad2e, 0xb5dad2e, 0x75ddc048, 0x75ddc048, 0x75ddc048, 0x172bd59a, 0x172bd59a, 0x172bd59a, 0x59c36f00, 0xccf7f82, 0xccf7f82, 0x59c36f00, }, 20 }, ++ { "gfxterm_cyr", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0xd5f24f8e, 0x76463f82, 0xd5f24f8e, 0xfbf7caf1, 0xaa4593fe, 0xaa4593fe, 0xb897c475, 0xb897c475, 0xb897c475, 0x1e62c912, 0x1e62c912, 0x1e62c912, 0x335a626a, 0x335a626a, 0x335a626a, 0xaa4593fe, 0xfbf7caf1, 0xfbf7caf1, 0xaa4593fe, }, 20 }, ++ { "gfxterm_cyr", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x8aa7c8c3, 0x28620e7e, 0x8aa7c8c3, 0xd7b0a547, 0xc9cbf769, 0xc9cbf769, 0x860f1899, 0x860f1899, 0x860f1899, 0x78d7d955, 0x78d7d955, 0x78d7d955, 0x919d665d, 0x919d665d, 0x919d665d, 0xc9cbf769, 0xd7b0a547, 0xd7b0a547, 0xc9cbf769, }, 20 }, ++ { "gfxterm_cyr", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x89654b6, 0x26bab4dd, 0x89654b6, 0xa6c01d6e, 0x9813a416, 0x9813a416, 0xc67652d9, 0xc67652d9, 0xc67652d9, 0x57add4ea, 0x57add4ea, 0x57add4ea, 0x4e17e93a, 0x4e17e93a, 0x4e17e93a, 0x9813a416, 0xa6c01d6e, 0xa6c01d6e, 0x9813a416, }, 20 }, ++ { "gfxterm_cyr", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x77945f28, 0xec3ce845, 0x77945f28, 0x1326a9b, 0x5fcf013d, 0x5fcf013d, 0xc8e6e12c, 0xc8e6e12c, 0xc8e6e12c, 0x1af6f95a, 0x1af6f95a, 0x1af6f95a, 0xc85c6c5, 0xc85c6c5, 0xc85c6c5, 0x5fcf013d, 0x1326a9b, 0x1326a9b, 0x5fcf013d, }, 20 }, ++ { "gfxterm_cyr", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x4450a5dc, 0xda479f49, 0x4450a5dc, 0x5f557fdb, 0xdd28f52b, 0xdd28f52b, 0xddfe9197, 0xddfe9197, 0xddfe9197, 0xfcc26873, 0xfcc26873, 0xfcc26873, 0x817aa3ff, 0x817aa3ff, 0x817aa3ff, 0xdd28f52b, 0x5f557fdb, 0x5f557fdb, 0xdd28f52b, }, 20 }, ++ { "gfxterm_cyr", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x409098da, 0x2e0890e, 0x409098da, 0xbf2f835a, 0x43d1f34, 0x43d1f34, 0x253d050e, 0x253d050e, 0x253d050e, 0x5a37aca6, 0x5a37aca6, 0x5a37aca6, 0xc366a920, 0xc366a920, 0xc366a920, 0x43d1f34, 0xbf2f835a, 0xbf2f835a, 0x43d1f34, }, 20 }, ++ { "gfxterm_heb", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x546aa9f1, 0x56bf26d0, 0x546aa9f1, 0x179c64b6, 0x59c36f00, 0x59c36f00, 0xa98ad4a1, 0xa98ad4a1, 0xa98ad4a1, 0xd70ab9c7, 0xd70ab9c7, 0xd70ab9c7, 0xb5fcac15, 0xb5fcac15, 0xb5fcac15, 0x59c36f00, 0x179c64b6, 0x179c64b6, 0x59c36f00, }, 20 }, ++ { "gfxterm_heb", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x12592c97, 0xa10f7034, 0x12592c97, 0x3c5ca9e8, 0xaa4593fe, 0xaa4593fe, 0x2c3e194, 0x2c3e194, 0x2c3e194, 0xa436ecf3, 0xa436ecf3, 0xa436ecf3, 0x890e478b, 0x890e478b, 0x890e478b, 0xaa4593fe, 0x3c5ca9e8, 0x3c5ca9e8, 0xaa4593fe, }, 20 }, ++ { "gfxterm_heb", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xed5de42a, 0x5cf94e51, 0xed5de42a, 0xb04a89ae, 0xc9cbf769, 0xc9cbf769, 0xdd578210, 0xdd578210, 0xdd578210, 0x238f43dc, 0x238f43dc, 0x238f43dc, 0xcac5fcd4, 0xcac5fcd4, 0xcac5fcd4, 0xc9cbf769, 0xb04a89ae, 0xb04a89ae, 0xc9cbf769, }, 20 }, ++ { "gfxterm_heb", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0xbbc56f90, 0x4f643bbb, 0xbbc56f90, 0x15932648, 0x9813a416, 0x9813a416, 0x28aba4d1, 0x28aba4d1, 0x28aba4d1, 0xb97022e2, 0xb97022e2, 0xb97022e2, 0xa0ca1f32, 0xa0ca1f32, 0xa0ca1f32, 0x9813a416, 0x15932648, 0x15932648, 0x9813a416, }, 20 }, ++ { "gfxterm_heb", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x43465d8c, 0x6399888a, 0x43465d8c, 0x35e0683f, 0x5fcf013d, 0x5fcf013d, 0x4895c207, 0x4895c207, 0x4895c207, 0x9a85da71, 0x9a85da71, 0x9a85da71, 0x8cf6e5ee, 0x8cf6e5ee, 0x8cf6e5ee, 0x5fcf013d, 0x35e0683f, 0x35e0683f, 0x5fcf013d, }, 20 }, ++ { "gfxterm_heb", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xd1e7f231, 0xe67e195e, 0xd1e7f231, 0xcae22836, 0xdd28f52b, 0xdd28f52b, 0xe7ae9f08, 0xe7ae9f08, 0xe7ae9f08, 0xc69266ec, 0xc69266ec, 0xc69266ec, 0xbb2aad60, 0xbb2aad60, 0xbb2aad60, 0xdd28f52b, 0xcae22836, 0xcae22836, 0xdd28f52b, }, 20 }, ++ { "gfxterm_heb", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x793e58f4, 0x5f939386, 0x793e58f4, 0x86814374, 0x43d1f34, 0x43d1f34, 0x12b2b9c1, 0x12b2b9c1, 0x12b2b9c1, 0x6db81069, 0x6db81069, 0x6db81069, 0xf4e915ef, 0xf4e915ef, 0xf4e915ef, 0x43d1f34, 0x86814374, 0x86814374, 0x43d1f34, }, 20 }, ++ { "gfxterm_gre", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x226c0d75, 0x9e291f4f, 0x226c0d75, 0x619ac032, 0x59c36f00, 0x59c36f00, 0x6fb6253, 0x6fb6253, 0x6fb6253, 0x787b0f35, 0x787b0f35, 0x787b0f35, 0x1a8d1ae7, 0x1a8d1ae7, 0x1a8d1ae7, 0x59c36f00, 0x619ac032, 0x619ac032, 0x59c36f00, }, 20 }, ++ { "gfxterm_gre", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x8355045, 0xfe058b68, 0x8355045, 0x2630d53a, 0xaa4593fe, 0xaa4593fe, 0x290a3822, 0x290a3822, 0x290a3822, 0x8fff3545, 0x8fff3545, 0x8fff3545, 0xa2c79e3d, 0xa2c79e3d, 0xa2c79e3d, 0xaa4593fe, 0x2630d53a, 0x2630d53a, 0xaa4593fe, }, 20 }, ++ { "gfxterm_gre", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xc702fa59, 0x74086887, 0xc702fa59, 0x9a1597dd, 0xc9cbf769, 0xc9cbf769, 0x60295baa, 0x60295baa, 0x60295baa, 0x9ef19a66, 0x9ef19a66, 0x9ef19a66, 0x77bb256e, 0x77bb256e, 0x77bb256e, 0xc9cbf769, 0x9a1597dd, 0x9a1597dd, 0xc9cbf769, }, 20 }, ++ { "gfxterm_gre", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x82385331, 0xf77eda42, 0x82385331, 0x2c6e1ae9, 0x9813a416, 0x9813a416, 0x140c0d1f, 0x140c0d1f, 0x140c0d1f, 0x85d78b2c, 0x85d78b2c, 0x85d78b2c, 0x9c6db6fc, 0x9c6db6fc, 0x9c6db6fc, 0x9813a416, 0x2c6e1ae9, 0x2c6e1ae9, 0x9813a416, }, 20 }, ++ { "gfxterm_gre", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x565d2d38, 0x34f757ec, 0x565d2d38, 0x20fb188b, 0x5fcf013d, 0x5fcf013d, 0x230bf123, 0x230bf123, 0x230bf123, 0xf11be955, 0xf11be955, 0xf11be955, 0xe768d6ca, 0xe768d6ca, 0xe768d6ca, 0x5fcf013d, 0x20fb188b, 0x20fb188b, 0x5fcf013d, }, 20 }, ++ { "gfxterm_gre", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x632132a4, 0x4a8c90b2, 0x632132a4, 0x7824e8a3, 0xdd28f52b, 0xdd28f52b, 0xef2bffce, 0xef2bffce, 0xef2bffce, 0xce17062a, 0xce17062a, 0xce17062a, 0xb3afcda6, 0xb3afcda6, 0xb3afcda6, 0xdd28f52b, 0x7824e8a3, 0x7824e8a3, 0xdd28f52b, }, 20 }, ++ { "gfxterm_gre", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x461d4cfa, 0xfd3492c2, 0x461d4cfa, 0xb9a2577a, 0x43d1f34, 0x43d1f34, 0xfb72301f, 0xfb72301f, 0xfb72301f, 0x847899b7, 0x847899b7, 0x847899b7, 0x1d299c31, 0x1d299c31, 0x1d299c31, 0x43d1f34, 0xb9a2577a, 0xb9a2577a, 0x43d1f34, }, 20 }, ++ { "gfxterm_ru", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x82758f66, 0xbac387fd, 0x82758f66, 0xc1834221, 0x59c36f00, 0x59c36f00, 0x4877befe, 0x4877befe, 0x4877befe, 0x36f7d398, 0x36f7d398, 0x36f7d398, 0x5401c64a, 0x5401c64a, 0x5401c64a, 0x59c36f00, 0xc1834221, 0xc1834221, 0x59c36f00, }, 20 }, ++ { "gfxterm_ru", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x4500a591, 0x9a40cbd8, 0x4500a591, 0x6b0520ee, 0xaa4593fe, 0xaa4593fe, 0x16db2902, 0x16db2902, 0x16db2902, 0xb02e2465, 0xb02e2465, 0xb02e2465, 0x9d168f1d, 0x9d168f1d, 0x9d168f1d, 0xaa4593fe, 0x6b0520ee, 0x6b0520ee, 0xaa4593fe, }, 20 }, ++ { "gfxterm_ru", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x3cd9ea11, 0x1244c852, 0x3cd9ea11, 0x61ce8795, 0xc9cbf769, 0xc9cbf769, 0x6b15d6f0, 0x6b15d6f0, 0x6b15d6f0, 0x95cd173c, 0x95cd173c, 0x95cd173c, 0x7c87a834, 0x7c87a834, 0x7c87a834, 0xc9cbf769, 0x61ce8795, 0x61ce8795, 0xc9cbf769, }, 20 }, ++ { "gfxterm_ru", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0xc818f15f, 0xbaf13382, 0xc818f15f, 0x664eb887, 0x9813a416, 0x9813a416, 0x350fe990, 0x350fe990, 0x350fe990, 0xa4d46fa3, 0xa4d46fa3, 0xa4d46fa3, 0xbd6e5273, 0xbd6e5273, 0xbd6e5273, 0x9813a416, 0x664eb887, 0x664eb887, 0x9813a416, }, 20 }, ++ { "gfxterm_ru", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xaa1dc81, 0x234341dd, 0xaa1dc81, 0x7c07e932, 0x5fcf013d, 0x5fcf013d, 0x969354c5, 0x969354c5, 0x969354c5, 0x44834cb3, 0x44834cb3, 0x44834cb3, 0x52f0732c, 0x52f0732c, 0x52f0732c, 0x5fcf013d, 0x7c07e932, 0x7c07e932, 0x5fcf013d, }, 20 }, ++ { "gfxterm_ru", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xd9aa4b29, 0x555fdda0, 0xd9aa4b29, 0xc2af912e, 0xdd28f52b, 0xdd28f52b, 0xe82cbfd, 0xe82cbfd, 0xe82cbfd, 0x2fbe3219, 0x2fbe3219, 0x2fbe3219, 0x5206f995, 0x5206f995, 0x5206f995, 0xdd28f52b, 0xc2af912e, 0xc2af912e, 0xdd28f52b, }, 20 }, ++ { "gfxterm_ru", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0xfd4e19ff, 0x42807b86, 0xfd4e19ff, 0x2f1027f, 0x43d1f34, 0x43d1f34, 0x924dc5be, 0x924dc5be, 0x924dc5be, 0xed476c16, 0xed476c16, 0xed476c16, 0x74166990, 0x74166990, 0x74166990, 0x43d1f34, 0x2f1027f, 0x2f1027f, 0x43d1f34, }, 20 }, ++ { "gfxterm_fr", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x3a63a2e6, 0x118487d4, 0x3a63a2e6, 0x79956fa1, 0x59c36f00, 0x59c36f00, 0x389f4d2d, 0x389f4d2d, 0x389f4d2d, 0x461f204b, 0x461f204b, 0x461f204b, 0x24e93599, 0x24e93599, 0x24e93599, 0x59c36f00, 0x79956fa1, 0x79956fa1, 0x59c36f00, }, 20 }, ++ { "gfxterm_fr", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x62d33f4d, 0x9544a8f4, 0x62d33f4d, 0x4cd6ba32, 0xaa4593fe, 0xaa4593fe, 0xfb86a3a4, 0xfb86a3a4, 0xfb86a3a4, 0x5d73aec3, 0x5d73aec3, 0x5d73aec3, 0x704b05bb, 0x704b05bb, 0x704b05bb, 0xaa4593fe, 0x4cd6ba32, 0x4cd6ba32, 0xaa4593fe, }, 20 }, ++ { "gfxterm_fr", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x8cc4b6dc, 0x1042c383, 0x8cc4b6dc, 0xd1d3db58, 0xc9cbf769, 0xc9cbf769, 0xeba8a32b, 0xeba8a32b, 0xeba8a32b, 0x157062e7, 0x157062e7, 0x157062e7, 0xfc3addef, 0xfc3addef, 0xfc3addef, 0xc9cbf769, 0xd1d3db58, 0xd1d3db58, 0xc9cbf769, }, 20 }, ++ { "gfxterm_fr", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x23f9afd, 0x465f5ecc, 0x23f9afd, 0xac69d325, 0x9813a416, 0x9813a416, 0xccf7a1e3, 0xccf7a1e3, 0xccf7a1e3, 0x5d2c27d0, 0x5d2c27d0, 0x5d2c27d0, 0x44961a00, 0x44961a00, 0x44961a00, 0x9813a416, 0xac69d325, 0xac69d325, 0x9813a416, }, 20 }, ++ { "gfxterm_fr", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xed796a26, 0x3132d083, 0xed796a26, 0x9bdf5f95, 0x5fcf013d, 0x5fcf013d, 0x42f66a49, 0x42f66a49, 0x42f66a49, 0x90e6723f, 0x90e6723f, 0x90e6723f, 0x86954da0, 0x86954da0, 0x86954da0, 0x5fcf013d, 0x9bdf5f95, 0x9bdf5f95, 0x5fcf013d, }, 20 }, ++ { "gfxterm_fr", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x54b28785, 0x7fbbe762, 0x54b28785, 0x4fb75d82, 0xdd28f52b, 0xdd28f52b, 0x14b1cf29, 0x14b1cf29, 0x14b1cf29, 0x358d36cd, 0x358d36cd, 0x358d36cd, 0x4835fd41, 0x4835fd41, 0x4835fd41, 0xdd28f52b, 0x4fb75d82, 0x4fb75d82, 0xdd28f52b, }, 20 }, ++ { "gfxterm_fr", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x7acc2669, 0xbf1a1d96, 0x7acc2669, 0x85733de9, 0x43d1f34, 0x43d1f34, 0x2cc1e8f4, 0x2cc1e8f4, 0x2cc1e8f4, 0x53cb415c, 0x53cb415c, 0x53cb415c, 0xca9a44da, 0xca9a44da, 0xca9a44da, 0x43d1f34, 0x85733de9, 0x85733de9, 0x43d1f34, }, 20 }, ++ { "gfxterm_quot", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xf9511593, 0x9f9ef910, 0xf9511593, 0xbaa7d8d4, 0x59c36f00, 0x59c36f00, 0x7fd94135, 0x7fd94135, 0x7fd94135, 0x1592c53, 0x1592c53, 0x1592c53, 0x63af3981, 0x63af3981, 0x63af3981, 0x59c36f00, 0xbaa7d8d4, 0xbaa7d8d4, 0x59c36f00, }, 20 }, ++ { "gfxterm_quot", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x3dcbe25f, 0x99e165e7, 0x3dcbe25f, 0x13ce6720, 0xaa4593fe, 0xaa4593fe, 0x2e88732f, 0x2e88732f, 0x2e88732f, 0x887d7e48, 0x887d7e48, 0x887d7e48, 0xa545d530, 0xa545d530, 0xa545d530, 0xaa4593fe, 0x13ce6720, 0x13ce6720, 0xaa4593fe, }, 20 }, ++ { "gfxterm_quot", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xdbedc74c, 0x61619894, 0xdbedc74c, 0x86faaac8, 0xc9cbf769, 0xc9cbf769, 0xda1c9f17, 0xda1c9f17, 0xda1c9f17, 0x24c45edb, 0x24c45edb, 0x24c45edb, 0xcd8ee1d3, 0xcd8ee1d3, 0xcd8ee1d3, 0xc9cbf769, 0x86faaac8, 0x86faaac8, 0xc9cbf769, }, 20 }, ++ { "gfxterm_quot", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x2411f56f, 0x97b1fc58, 0x2411f56f, 0x8a47bcb7, 0x9813a416, 0x9813a416, 0xfb08d7cf, 0xfb08d7cf, 0xfb08d7cf, 0x6ad351fc, 0x6ad351fc, 0x6ad351fc, 0x73696c2c, 0x73696c2c, 0x73696c2c, 0x9813a416, 0x8a47bcb7, 0x8a47bcb7, 0x9813a416, }, 20 }, ++ { "gfxterm_quot", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x13a65fb6, 0x35044d7, 0x13a65fb6, 0x65006a05, 0x5fcf013d, 0x5fcf013d, 0x9e56a9e0, 0x9e56a9e0, 0x9e56a9e0, 0x4c46b196, 0x4c46b196, 0x4c46b196, 0x5a358e09, 0x5a358e09, 0x5a358e09, 0x5fcf013d, 0x65006a05, 0x65006a05, 0x5fcf013d, }, 20 }, ++ { "gfxterm_quot", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xc8f05290, 0x9c88f64e, 0xc8f05290, 0xd3f58897, 0xdd28f52b, 0xdd28f52b, 0xe1579057, 0xe1579057, 0xe1579057, 0xc06b69b3, 0xc06b69b3, 0xc06b69b3, 0xbdd3a23f, 0xbdd3a23f, 0xbdd3a23f, 0xdd28f52b, 0xd3f58897, 0xd3f58897, 0xdd28f52b, }, 20 }, ++ { "gfxterm_quot", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x9cfbc80f, 0x376a1fb2, 0x9cfbc80f, 0x6344d38f, 0x43d1f34, 0x43d1f34, 0x6486f7c4, 0x6486f7c4, 0x6486f7c4, 0x1b8c5e6c, 0x1b8c5e6c, 0x1b8c5e6c, 0x82dd5bea, 0x82dd5bea, 0x82dd5bea, 0x43d1f34, 0x6344d38f, 0x6344d38f, 0x43d1f34, }, 20 }, ++ { "gfxterm_piglatin", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xd327ca68, 0x9c977e8c, 0xd327ca68, 0x90d1072f, 0x59c36f00, 0x59c36f00, 0x71c9d9, 0x71c9d9, 0x71c9d9, 0x7ef1a4bf, 0x7ef1a4bf, 0x7ef1a4bf, 0x1c07b16d, 0x1c07b16d, 0x1c07b16d, 0x59c36f00, 0x90d1072f, 0x90d1072f, 0x59c36f00, }, 20 }, ++ { "gfxterm_piglatin", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x2da3855b, 0x24c7b138, 0x2da3855b, 0x3a60024, 0xaa4593fe, 0xaa4593fe, 0x147ff249, 0x147ff249, 0x147ff249, 0xb28aff2e, 0xb28aff2e, 0xb28aff2e, 0x9fb25456, 0x9fb25456, 0x9fb25456, 0xaa4593fe, 0x3a60024, 0x3a60024, 0xaa4593fe, }, 20 }, ++ { "gfxterm_piglatin", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x660ab3d9, 0xa75b45c4, 0x660ab3d9, 0x3b1dde5d, 0xc9cbf769, 0xc9cbf769, 0x5ff884f5, 0x5ff884f5, 0x5ff884f5, 0xa1204539, 0xa1204539, 0xa1204539, 0x486afa31, 0x486afa31, 0x486afa31, 0xc9cbf769, 0x3b1dde5d, 0x3b1dde5d, 0xc9cbf769, }, 20 }, ++ { "gfxterm_piglatin", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x920957ee, 0xceebfd42, 0x920957ee, 0x3c5f1e36, 0x9813a416, 0x9813a416, 0xa917dbef, 0xa917dbef, 0xa917dbef, 0x38cc5ddc, 0x38cc5ddc, 0x38cc5ddc, 0x2176600c, 0x2176600c, 0x2176600c, 0x9813a416, 0x3c5f1e36, 0x3c5f1e36, 0x9813a416, }, 20 }, ++ { "gfxterm_piglatin", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x8298cd03, 0xfb88293a, 0x8298cd03, 0xf43ef8b0, 0x5fcf013d, 0x5fcf013d, 0x8f57f36b, 0x8f57f36b, 0x8f57f36b, 0x5d47eb1d, 0x5d47eb1d, 0x5d47eb1d, 0x4b34d482, 0x4b34d482, 0x4b34d482, 0x5fcf013d, 0xf43ef8b0, 0xf43ef8b0, 0x5fcf013d, }, 20 }, ++ { "gfxterm_piglatin", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xd8bbc577, 0xb2c37549, 0xd8bbc577, 0xc3be1f70, 0xdd28f52b, 0xdd28f52b, 0xd8b598e, 0xd8b598e, 0xd8b598e, 0x2cb7a06a, 0x2cb7a06a, 0x2cb7a06a, 0x510f6be6, 0x510f6be6, 0x510f6be6, 0xdd28f52b, 0xc3be1f70, 0xc3be1f70, 0xdd28f52b, }, 20 }, ++ { "gfxterm_piglatin", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x4d7993a1, 0xbeefcd88, 0x4d7993a1, 0xb2c68821, 0x43d1f34, 0x43d1f34, 0x1dbc7020, 0x1dbc7020, 0x1dbc7020, 0x62b6d988, 0x62b6d988, 0x62b6d988, 0xfbe7dc0e, 0xfbe7dc0e, 0xfbe7dc0e, 0x43d1f34, 0xb2c68821, 0xb2c68821, 0x43d1f34, }, 20 }, ++ { "gfxterm_ch", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x628b6f61, 0x50f94215, 0x628b6f61, 0x217da226, 0x59c36f00, 0x59c36f00, 0x5755be7f, 0x5755be7f, 0x5755be7f, 0x29d5d319, 0x29d5d319, 0x29d5d319, 0x4b23c6cb, 0x4b23c6cb, 0x4b23c6cb, 0x59c36f00, 0x217da226, 0x217da226, 0x59c36f00, }, 20 }, ++ { "gfxterm_ch", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x9f82cd08, 0xbc67f78d, 0x9f82cd08, 0xb1874877, 0xaa4593fe, 0xaa4593fe, 0x4749512e, 0x4749512e, 0x4749512e, 0xe1bc5c49, 0xe1bc5c49, 0xe1bc5c49, 0xcc84f731, 0xcc84f731, 0xcc84f731, 0xaa4593fe, 0xb1874877, 0xb1874877, 0xaa4593fe, }, 20 }, ++ { "gfxterm_ch", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xbee47cfb, 0x88e98534, 0xbee47cfb, 0xe3f3117f, 0xc9cbf769, 0xc9cbf769, 0xe2396b15, 0xe2396b15, 0xe2396b15, 0x1ce1aad9, 0x1ce1aad9, 0x1ce1aad9, 0xf5ab15d1, 0xf5ab15d1, 0xf5ab15d1, 0xc9cbf769, 0xe3f3117f, 0xe3f3117f, 0xc9cbf769, }, 20 }, ++ { "gfxterm_ch", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x2bfd5a83, 0xbe3c6f2f, 0x2bfd5a83, 0x85ab135b, 0x9813a416, 0x9813a416, 0xce30693b, 0xce30693b, 0xce30693b, 0x5febef08, 0x5febef08, 0x5febef08, 0x4651d2d8, 0x4651d2d8, 0x4651d2d8, 0x9813a416, 0x85ab135b, 0x85ab135b, 0x9813a416, }, 20 }, ++ { "gfxterm_ch", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x1456f321, 0xc3a55992, 0x1456f321, 0x62f0c692, 0x5fcf013d, 0x5fcf013d, 0xbe3d534a, 0xbe3d534a, 0xbe3d534a, 0x6c2d4b3c, 0x6c2d4b3c, 0x6c2d4b3c, 0x7a5e74a3, 0x7a5e74a3, 0x7a5e74a3, 0x5fcf013d, 0x62f0c692, 0x62f0c692, 0x5fcf013d, }, 20 }, ++ { "gfxterm_ch", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xdcac6945, 0x43fbdf5a, 0xdcac6945, 0xc7a9b342, 0xdd28f52b, 0xdd28f52b, 0x274da20b, 0x274da20b, 0x274da20b, 0x6715bef, 0x6715bef, 0x6715bef, 0x7bc99063, 0x7bc99063, 0x7bc99063, 0xdd28f52b, 0xc7a9b342, 0xc7a9b342, 0xdd28f52b, }, 20 }, ++ { "gfxterm_ch", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x571e16b1, 0xb9f25c2, 0x571e16b1, 0xa8a10d31, 0x43d1f34, 0x43d1f34, 0x25dfb69d, 0x25dfb69d, 0x25dfb69d, 0x5ad51f35, 0x5ad51f35, 0x5ad51f35, 0xc3841ab3, 0xc3841ab3, 0xc3841ab3, 0x43d1f34, 0xa8a10d31, 0xa8a10d31, 0x43d1f34, }, 20 }, ++ { "gfxterm_red", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xec987771, 0x8a579bf2, 0xec987771, 0xbbb5c9af, 0x59c36f00, 0x59c36f00, 0x16780f43, 0x16780f43, 0x16780f43, 0x68f86225, 0x68f86225, 0x68f86225, 0xa0e77f7, 0xa0e77f7, 0xa0e77f7, 0x59c36f00, 0xbbb5c9af, 0xbbb5c9af, 0x59c36f00, }, 20 }, ++ { "gfxterm_red", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x97994d2c, 0x33b3ca94, 0x97994d2c, 0x273e977a, 0xaa4593fe, 0xaa4593fe, 0xa592c9d5, 0xa592c9d5, 0xa592c9d5, 0x367c4b2, 0x367c4b2, 0x367c4b2, 0x2e5f6fca, 0x2e5f6fca, 0x2e5f6fca, 0xaa4593fe, 0x273e977a, 0x273e977a, 0xaa4593fe, }, 20 }, ++ { "gfxterm_red", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x5d2416aa, 0xe7a84972, 0x5d2416aa, 0x4d010804, 0xc9cbf769, 0xc9cbf769, 0x4e3a88a0, 0x4e3a88a0, 0x4e3a88a0, 0xb0e2496c, 0xb0e2496c, 0xb0e2496c, 0x59a8f664, 0x59a8f664, 0x59a8f664, 0xc9cbf769, 0x4d010804, 0x4d010804, 0xc9cbf769, }, 20 }, ++ { "gfxterm_red", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x1da65b43, 0xae065274, 0x1da65b43, 0x2dd7a76c, 0x9813a416, 0x9813a416, 0xf81d19f, 0xf81d19f, 0xf81d19f, 0x9e5a57ac, 0x9e5a57ac, 0x9e5a57ac, 0x87e06a7c, 0x87e06a7c, 0x87e06a7c, 0x9813a416, 0x2dd7a76c, 0x2dd7a76c, 0x9813a416, }, 20 }, ++ { "gfxterm_red", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xea8a940e, 0xfa7c8f6f, 0xea8a940e, 0x448d7bfb, 0x5fcf013d, 0x5fcf013d, 0x47c22fa0, 0x47c22fa0, 0x47c22fa0, 0x95d237d6, 0x95d237d6, 0x95d237d6, 0x83a10849, 0x83a10849, 0x83a10849, 0x5fcf013d, 0x448d7bfb, 0x448d7bfb, 0x5fcf013d, }, 20 }, ++ { "gfxterm_red", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xc0ac44fa, 0x94d4e024, 0xc0ac44fa, 0x4ec88f20, 0xdd28f52b, 0xdd28f52b, 0x2422f542, 0x2422f542, 0x2422f542, 0x51e0ca6, 0x51e0ca6, 0x51e0ca6, 0x78a6c72a, 0x78a6c72a, 0x78a6c72a, 0xdd28f52b, 0x4ec88f20, 0x4ec88f20, 0xdd28f52b, }, 20 }, ++ { "gfxterm_red", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x248f7655, 0x8f1ea1e8, 0x248f7655, 0xb3d7f0f5, 0x43d1f34, 0x43d1f34, 0x8c408c04, 0x8c408c04, 0x8c408c04, 0xf34a25ac, 0xf34a25ac, 0xf34a25ac, 0x6a1b202a, 0x6a1b202a, 0x6a1b202a, 0x43d1f34, 0xb3d7f0f5, 0xb3d7f0f5, 0x43d1f34, }, 20 }, ++ { "gfxterm_high", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xd6ba8f78, 0xb07563fb, 0xd6ba8f78, 0x6ef020b2, 0x59c36f00, 0x59c36f00, 0x7fd94135, 0x7fd94135, 0x7fd94135, 0x1592c53, 0x1592c53, 0x1592c53, 0x63af3981, 0x63af3981, 0x63af3981, 0x59c36f00, 0x6ef020b2, 0x6ef020b2, 0x59c36f00, }, 20 }, ++ { "gfxterm_high", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0xf5257f70, 0x510ff8c8, 0xf5257f70, 0x36a3b7ff, 0xaa4593fe, 0xaa4593fe, 0x2e88732f, 0x2e88732f, 0x2e88732f, 0x887d7e48, 0x887d7e48, 0x887d7e48, 0xa545d530, 0xa545d530, 0xa545d530, 0xaa4593fe, 0x36a3b7ff, 0x36a3b7ff, 0xaa4593fe, }, 20 }, ++ { "gfxterm_high", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x9f8effb3, 0x2502a06b, 0x9f8effb3, 0xddeb038e, 0xc9cbf769, 0xc9cbf769, 0xda1c9f17, 0xda1c9f17, 0xda1c9f17, 0x24c45edb, 0x24c45edb, 0x24c45edb, 0xcd8ee1d3, 0xcd8ee1d3, 0xcd8ee1d3, 0xc9cbf769, 0xddeb038e, 0xddeb038e, 0xc9cbf769, }, 20 }, ++ { "gfxterm_high", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x6aa72774, 0xd9072e43, 0x6aa72774, 0x24b4853d, 0x9813a416, 0x9813a416, 0xfb08d7cf, 0xfb08d7cf, 0xfb08d7cf, 0x6ad351fc, 0x6ad351fc, 0x6ad351fc, 0x73696c2c, 0x73696c2c, 0x73696c2c, 0x9813a416, 0x24b4853d, 0x24b4853d, 0x9813a416, }, 20 }, ++ { "gfxterm_high", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x936eb1d8, 0x8398aab9, 0x936eb1d8, 0x8beef, 0x5fcf013d, 0x5fcf013d, 0x9e56a9e0, 0x9e56a9e0, 0x9e56a9e0, 0x4c46b196, 0x4c46b196, 0x4c46b196, 0x5a358e09, 0x5a358e09, 0x5a358e09, 0x5fcf013d, 0x8beef, 0x8beef, 0x5fcf013d, }, 20 }, ++ { "gfxterm_high", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xdd4b9ec3, 0x89333a1d, 0xdd4b9ec3, 0x3acd5a9d, 0xdd28f52b, 0xdd28f52b, 0xe1579057, 0xe1579057, 0xe1579057, 0xc06b69b3, 0xc06b69b3, 0xc06b69b3, 0xbdd3a23f, 0xbdd3a23f, 0xbdd3a23f, 0xdd28f52b, 0x3acd5a9d, 0x3acd5a9d, 0xdd28f52b, }, 20 }, ++ { "gfxterm_high", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x89f37601, 0x2262a1bc, 0x89f37601, 0xf17b28ae, 0x43d1f34, 0x43d1f34, 0x6486f7c4, 0x6486f7c4, 0x6486f7c4, 0x1b8c5e6c, 0x1b8c5e6c, 0x1b8c5e6c, 0x82dd5bea, 0x82dd5bea, 0x82dd5bea, 0x43d1f34, 0xf17b28ae, 0xf17b28ae, 0x43d1f34, }, 20 }, + { "videotest", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x1368a483, 0x1368a483, 0x1368a483, 0x1368a483, 0x1368a483, }, 5 }, + { "videotest", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0x7033079c, 0x7033079c, 0x7033079c, 0x7033079c, 0x7033079c, }, 5 }, + { "videotest", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xff583fbf, 0xff583fbf, 0xff583fbf, 0xff583fbf, 0xff583fbf, }, 5 }, +diff --git a/include/grub/arm/coreboot/console.h b/include/grub/arm/coreboot/console.h +new file mode 100644 +index 0000000000000000000000000000000000000000..13a14b783839a6cae96845973ae3087bcaef670e +--- /dev/null ++++ b/include/grub/arm/coreboot/console.h +@@ -0,0 +1,29 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2009 Free Software Foundation, Inc. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++#ifndef GRUB_MACHINE_CONSOLE_HEADER ++#define GRUB_MACHINE_CONSOLE_HEADER 1 ++ ++void grub_video_coreboot_fb_init (void); ++void grub_video_coreboot_fb_early_init (void); ++void grub_video_coreboot_fb_late_init (void); ++void grub_video_coreboot_fb_fini (void); ++ ++extern struct grub_linuxbios_table_framebuffer *grub_video_coreboot_fbtable; ++ ++#endif /* ! GRUB_MACHINE_CONSOLE_HEADER */ +diff --git a/include/grub/arm/coreboot/kernel.h b/include/grub/arm/coreboot/kernel.h +new file mode 100644 +index 0000000000000000000000000000000000000000..2695053427050f306b8ca86ba066df90c519e8e0 +--- /dev/null ++++ b/include/grub/arm/coreboot/kernel.h +@@ -0,0 +1,44 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2013 Free Software Foundation, Inc. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++#ifndef GRUB_KERNEL_MACHINE_HEADER ++#define GRUB_KERNEL_MACHINE_HEADER 1 ++ ++#ifndef ASM_FILE ++ ++#include ++#include ++ ++struct grub_fdt_board ++{ ++ const char *vendor, *part; ++ const grub_uint8_t *dtb; ++ grub_size_t dtb_size; ++}; ++ ++extern struct grub_fdt_board grub_fdt_boards[]; ++void grub_machine_timer_init (void); ++void grub_pl050_init (void); ++void grub_cros_init (void); ++void grub_rk3288_spi_init (void); ++extern grub_addr_t EXPORT_VAR (start_of_ram); ++#endif /* ! ASM_FILE */ ++ ++#define GRUB_KERNEL_MACHINE_STACK_SIZE GRUB_KERNEL_ARM_STACK_SIZE ++ ++#endif /* ! GRUB_KERNEL_MACHINE_HEADER */ +diff --git a/include/grub/arm/cros_ec.h b/include/grub/arm/cros_ec.h +new file mode 100644 +index 0000000000000000000000000000000000000000..45a372572a5c3c411c9b2b7f328135f5cbe551c8 +--- /dev/null ++++ b/include/grub/arm/cros_ec.h +@@ -0,0 +1,21 @@ ++#ifndef GRUB_ARM_CROS_EC_H ++#define GRUB_ARM_CROS_EC_H 1 ++ ++#include ++#include ++ ++#define GRUB_CROS_EC_KEYSCAN_COLS 13 ++#define GRUB_CROS_EC_KEYSCAN_ROWS 8 ++ ++struct grub_cros_ec_keyscan { ++ grub_uint8_t data[GRUB_CROS_EC_KEYSCAN_COLS]; ++}; ++ ++int ++grub_cros_ec_scan_keyboard (const struct grub_fdtbus_dev *dev, ++ struct grub_cros_ec_keyscan *scan); ++ ++int ++grub_cros_ec_validate (const struct grub_fdtbus_dev *dev); ++ ++#endif +diff --git a/include/grub/arm/linux.h b/include/grub/arm/linux.h +index a66caad13db8c5c3b0da10f624d01a81640eab44..f217f8281ade38fdb95ebd0b0e18bdf7bbe9aaf9 100644 +--- a/include/grub/arm/linux.h ++++ b/include/grub/arm/linux.h +@@ -46,6 +46,22 @@ grub_arm_firmware_get_machine_type (void) + { + return GRUB_ARM_MACHINE_TYPE_FDT; + } ++#elif defined (GRUB_MACHINE_COREBOOT) ++#include ++#include ++# define LINUX_ADDRESS (start_of_ram + 0x8000) ++# define LINUX_INITRD_ADDRESS (start_of_ram + 0x02000000) ++# define LINUX_FDT_ADDRESS (LINUX_INITRD_ADDRESS - 0x10000) ++static inline const void * ++grub_arm_firmware_get_boot_data (void) ++{ ++ return grub_fdtbus_get_fdt (); ++} ++static inline grub_uint32_t ++grub_arm_firmware_get_machine_type (void) ++{ ++ return GRUB_ARM_MACHINE_TYPE_FDT; ++} + #endif + + #define FDT_ADDITIONAL_ENTRIES_SIZE 0x300 +diff --git a/include/grub/arm/startup.h b/include/grub/arm/startup.h +new file mode 100644 +index 0000000000000000000000000000000000000000..9afb6c57c0bc4c53e96f711bf545d94a8ed07aa5 +--- /dev/null ++++ b/include/grub/arm/startup.h +@@ -0,0 +1,16 @@ ++#ifndef GRUB_STARTUP_CPU_HEADER ++#define GRUB_STARTUP_CPU_HEADER ++ ++struct grub_arm_startup_registers ++{ ++ /* registers 0-11 */ ++ /* for U-boot r[1] is machine type */ ++ /* for U-boot r[2] is boot data */ ++ grub_uint32_t r[12]; ++ grub_uint32_t sp; ++ grub_uint32_t lr; ++}; ++ ++extern struct grub_arm_startup_registers grub_arm_saved_registers; ++ ++#endif +diff --git a/include/grub/arm64/linux.h b/include/grub/arm64/linux.h +index 1ea23696e7a096e53075af2314da11ecce91f8d7..a981df5d15f5f186935af0648da2408ac613f796 100644 +--- a/include/grub/arm64/linux.h ++++ b/include/grub/arm64/linux.h +@@ -23,8 +23,6 @@ + + #define GRUB_ARM64_LINUX_MAGIC 0x644d5241 /* 'ARM\x64' */ + +-#define GRUB_EFI_PE_MAGIC 0x5A4D +- + /* From linux/Documentation/arm64/booting.txt */ + struct grub_arm64_linux_kernel_header + { +diff --git a/include/grub/at_keyboard.h b/include/grub/at_keyboard.h +index b4f8ff0a06117756a770129683796edf0050b867..bcb4d9ba78f1376bdaa82249418f847eb4e543a6 100644 +--- a/include/grub/at_keyboard.h ++++ b/include/grub/at_keyboard.h +@@ -23,13 +23,11 @@ + #define KEYBOARD_COMMAND_ISREADY(x) !((x) & 0x02) + #define KEYBOARD_COMMAND_READ 0x20 + #define KEYBOARD_COMMAND_WRITE 0x60 ++#define KEYBOARD_COMMAND_ENABLE 0xf4 + #define KEYBOARD_COMMAND_REBOOT 0xfe + + #define KEYBOARD_AT_TRANSLATE 0x40 +- +-#define GRUB_AT_ACK 0xfa +-#define GRUB_AT_NACK 0xfe +-#define GRUB_AT_TRIES 5 ++#define KEYBOARD_AT_DISABLE 0x10 + + #define KEYBOARD_ISMAKE(x) !((x) & 0x80) + #define KEYBOARD_ISREADY(x) ((x) & 0x01) +diff --git a/include/grub/autoefi.h b/include/grub/autoefi.h +index b75591176eb9d785de3f2867e32edc1b9a626280..b7a252e079e2137b4d27639b5c981e9085cb8a82 100644 +--- a/include/grub/autoefi.h ++++ b/include/grub/autoefi.h +@@ -55,7 +55,7 @@ static inline grub_err_t grub_autoefi_prepare (void) + # define SYSTEM_TABLE_PTR GRUB_EFIEMU_SYSTEM_TABLE_PTR + # define SIZEOF_OF_UINTN GRUB_EFIEMU_SIZEOF_OF_UINTN + # define SYSTEM_TABLE GRUB_EFIEMU_SYSTEM_TABLE +-# define grub_efi_allocate_pages(x,y) (x) ++# define grub_efi_allocate_fixed(x,y) (x) + # define grub_efi_free_pages(x,y) GRUB_EFI_SUCCESS + # define grub_autoefi_finish_boot_services grub_efiemu_finish_boot_services + # define EFI_PRESENT 1 +diff --git a/include/grub/cache.h b/include/grub/cache.h +index fc669dfd1892c14bb43c6230e48067a0ff8e7c23..ccfa717e669625e0db96df0692c65f5a4c5ff916 100644 +--- a/include/grub/cache.h ++++ b/include/grub/cache.h +@@ -34,15 +34,16 @@ void EXPORT_FUNC(grub_arch_sync_caches) (void *address, grub_size_t len); + #endif + + #ifndef GRUB_MACHINE_EMU +-#ifdef _mips +-void EXPORT_FUNC(grub_arch_sync_dma_caches) (volatile void *address, +- grub_size_t len); +-#else ++#if defined (__aarch64__) || defined (__powerpc__) || defined (__sparc__) ++ ++#elif defined (__i386__) || defined (__x86_64__) + static inline void + grub_arch_sync_dma_caches (volatile void *address __attribute__ ((unused)), + grub_size_t len __attribute__ ((unused))) + { + } ++#else ++void EXPORT_FUNC(grub_arch_sync_dma_caches) (volatile void *address, grub_size_t len); + #endif + #endif + +diff --git a/include/grub/i386/coreboot/lbio.h b/include/grub/coreboot/lbio.h +similarity index 93% +rename from include/grub/i386/coreboot/lbio.h +rename to include/grub/coreboot/lbio.h +index 1c3fa6f1953c3a6b41ea3644c30f000c98524224..5076d36c71ba32e5c55a6242287e5fe159e09b4f 100644 +--- a/include/grub/i386/coreboot/lbio.h ++++ b/include/grub/coreboot/lbio.h +@@ -20,6 +20,9 @@ + #ifndef _GRUB_MACHINE_LBIO_HEADER + #define _GRUB_MACHINE_LBIO_HEADER 1 + ++#include ++#include ++ + struct grub_linuxbios_table_header + { + grub_uint8_t signature[4]; +@@ -102,4 +105,10 @@ EXPORT_FUNC(grub_linuxbios_table_iterate) (int (*hook) (grub_linuxbios_table_ite + void *), + void *hook_data); + ++grub_linuxbios_table_header_t ++grub_linuxbios_get_tables (void); ++ ++int ++grub_linuxbios_check_signature (grub_linuxbios_table_header_t tbl_header); ++ + #endif +diff --git a/include/grub/dma.h b/include/grub/dma.h +new file mode 100644 +index 0000000000000000000000000000000000000000..19992ebc131d4fc93a45f31992ad3c03b9de2821 +--- /dev/null ++++ b/include/grub/dma.h +@@ -0,0 +1,44 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2008,2009 Free Software Foundation, Inc. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++#ifndef GRUB_DMA_H ++#define GRUB_DMA_H 1 ++ ++struct grub_pci_dma_chunk; ++ ++struct grub_pci_dma_chunk *EXPORT_FUNC(grub_memalign_dma32) (grub_size_t align, ++ grub_size_t size); ++void EXPORT_FUNC(grub_dma_free) (struct grub_pci_dma_chunk *ch); ++volatile void *EXPORT_FUNC(grub_dma_get_virt) (struct grub_pci_dma_chunk *ch); ++grub_uint32_t EXPORT_FUNC(grub_dma_get_phys) (struct grub_pci_dma_chunk *ch); ++ ++static inline void * ++grub_dma_phys2virt (grub_uint32_t phys, struct grub_pci_dma_chunk *chunk) ++{ ++ return ((grub_uint8_t *) grub_dma_get_virt (chunk) ++ + (phys - grub_dma_get_phys (chunk))); ++} ++ ++static inline grub_uint32_t ++grub_dma_virt2phys (volatile void *virt, struct grub_pci_dma_chunk *chunk) ++{ ++ return (((grub_uint8_t *) virt - (grub_uint8_t *) grub_dma_get_virt (chunk)) ++ + grub_dma_get_phys (chunk)); ++} ++ ++#endif +diff --git a/include/grub/efi/efi.h b/include/grub/efi/efi.h +index e9c601f34103ae1a4ced7e93be8204970bfef193..3fa082816ca5d6a5ae98d91d3ead3ef05a969159 100644 +--- a/include/grub/efi/efi.h ++++ b/include/grub/efi/efi.h +@@ -38,8 +38,15 @@ void *EXPORT_FUNC(grub_efi_open_protocol) (grub_efi_handle_t handle, + int EXPORT_FUNC(grub_efi_set_text_mode) (int on); + void EXPORT_FUNC(grub_efi_stall) (grub_efi_uintn_t microseconds); + void * +-EXPORT_FUNC(grub_efi_allocate_pages) (grub_efi_physical_address_t address, ++EXPORT_FUNC(grub_efi_allocate_pages_real) (grub_efi_physical_address_t address, ++ grub_efi_uintn_t pages, ++ grub_efi_allocate_type_t alloctype, ++ grub_efi_memory_type_t memtype); ++void * ++EXPORT_FUNC(grub_efi_allocate_fixed) (grub_efi_physical_address_t address, + grub_efi_uintn_t pages); ++void * ++EXPORT_FUNC(grub_efi_allocate_any_pages) (grub_efi_uintn_t pages); + void EXPORT_FUNC(grub_efi_free_pages) (grub_efi_physical_address_t address, + grub_efi_uintn_t pages); + int +diff --git a/include/grub/arm64/fdtload.h b/include/grub/efi/fdtload.h +similarity index 100% +rename from include/grub/arm64/fdtload.h +rename to include/grub/efi/fdtload.h +diff --git a/include/grub/efi/pe32.h b/include/grub/efi/pe32.h +index f79c36c026e0a518b3f9edaca36251d6d4943757..7d44732d2c353b74271262a1cf094d4aafd8dd10 100644 +--- a/include/grub/efi/pe32.h ++++ b/include/grub/efi/pe32.h +@@ -45,6 +45,8 @@ + + #define GRUB_PE32_MSDOS_STUB_SIZE 0x80 + ++#define GRUB_PE32_MAGIC 0x5a4d ++ + /* According to the spec, the minimal alignment is 512 bytes... + But some examples (such as EFI drivers in the Intel + Sample Implementation) use 32 bytes (0x20) instead, and it seems +diff --git a/include/grub/fdt.h b/include/grub/fdt.h +index fdfca75bf487f17e8621fee5d1642f4874a2bf16..75525fa317c340c7649f0241bf447ee47495b78a 100644 +--- a/include/grub/fdt.h ++++ b/include/grub/fdt.h +@@ -20,6 +20,7 @@ + #define GRUB_FDT_HEADER 1 + + #include ++#include + + #define FDT_MAGIC 0xD00DFEED + +@@ -95,16 +96,22 @@ struct grub_fdt_empty_tree { + #define grub_fdt_set_size_dt_struct(fdt, value) \ + grub_fdt_set_header(fdt, size_dt_struct, value) + +-int grub_fdt_create_empty_tree (void *fdt, unsigned int size); +-int grub_fdt_check_header (void *fdt, unsigned int size); +-int grub_fdt_check_header_nosize (void *fdt); +-int grub_fdt_find_subnode (const void *fdt, unsigned int parentoffset, +- const char *name); +-int grub_fdt_add_subnode (void *fdt, unsigned int parentoffset, ++int EXPORT_FUNC(grub_fdt_create_empty_tree) (void *fdt, unsigned int size); ++int EXPORT_FUNC(grub_fdt_check_header) (const void *fdt, unsigned int size); ++int EXPORT_FUNC(grub_fdt_check_header_nosize) (const void *fdt); ++int EXPORT_FUNC(grub_fdt_find_subnode) (const void *fdt, unsigned int parentoffset, ++ const char *name); ++int EXPORT_FUNC(grub_fdt_first_node) (const void *fdt, unsigned int parentoffset); ++int EXPORT_FUNC(grub_fdt_next_node) (const void *fdt, unsigned int currentoffset); ++int EXPORT_FUNC(grub_fdt_add_subnode) (void *fdt, unsigned int parentoffset, + const char *name); ++const char * ++EXPORT_FUNC(grub_fdt_get_nodename) (const void *fdt, unsigned int nodeoffset); ++const void *EXPORT_FUNC(grub_fdt_get_prop) (const void *fdt, unsigned int nodeoffset, const char *name, ++ grub_uint32_t *len); + +-int grub_fdt_set_prop (void *fdt, unsigned int nodeoffset, const char *name, +- const void *val, grub_uint32_t len); ++int EXPORT_FUNC(grub_fdt_set_prop) (void *fdt, unsigned int nodeoffset, const char *name, ++ const void *val, grub_uint32_t len); + #define grub_fdt_set_prop32(fdt, nodeoffset, name, val) \ + ({ \ + grub_uint32_t _val = grub_cpu_to_be32(val); \ +diff --git a/include/grub/fdtbus.h b/include/grub/fdtbus.h +new file mode 100644 +index 0000000000000000000000000000000000000000..f519c40ec35faea9aeedca055164012d9d9b3fb5 +--- /dev/null ++++ b/include/grub/fdtbus.h +@@ -0,0 +1,89 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2016 Free Software Foundation, Inc. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++#ifndef GRUB_FDTBUS_HEADER ++#define GRUB_FDTBUS_HEADER 1 ++ ++#include ++#include ++ ++struct grub_fdtbus_dev ++{ ++ struct grub_fdtbus_dev *next; ++ struct grub_fdtbus_dev *parent; ++ int node; ++ struct grub_fdtbus_driver *driver; ++}; ++ ++struct grub_fdtbus_driver ++{ ++ struct grub_fdtbus_driver *next; ++ struct grub_fdtbus_driver **prev; ++ ++ const char *compatible; ++ ++ grub_err_t (*attach) (const struct grub_fdtbus_dev *dev); ++ void (*detach) (const struct grub_fdtbus_dev *dev); ++ ++ /* Message bus operations. */ ++ grub_err_t (*send) (const struct grub_fdtbus_dev *dev, const void *data, grub_size_t sz); ++ grub_err_t (*receive) (const struct grub_fdtbus_dev *dev, void *data, grub_size_t sz); ++ grub_err_t (*start) (const struct grub_fdtbus_dev *dev); ++ void (*stop) (const struct grub_fdtbus_dev *dev); ++}; ++ ++extern char EXPORT_VAR(grub_fdtbus_invalid_mapping)[1]; ++ ++static inline int ++grub_fdtbus_is_mapping_valid (volatile void *m) ++{ ++ return m != grub_fdtbus_invalid_mapping; ++} ++ ++volatile void * ++EXPORT_FUNC(grub_fdtbus_map_reg) (const struct grub_fdtbus_dev *dev, int reg, grub_size_t *size); ++ ++const void * ++EXPORT_FUNC(grub_fdtbus_get_fdt) (void); ++ ++const char * ++EXPORT_FUNC(grub_fdtbus_get_name) (const struct grub_fdtbus_dev *dev); ++ ++const void * ++EXPORT_FUNC(grub_fdtbus_get_prop) (const struct grub_fdtbus_dev *dev, ++ const char *name, ++ grub_uint32_t *len); ++ ++void ++EXPORT_FUNC(grub_fdtbus_register) (struct grub_fdtbus_driver *driver); ++ ++void ++EXPORT_FUNC(grub_fdtbus_unregister) (struct grub_fdtbus_driver *driver); ++ ++int ++EXPORT_FUNC(grub_fdtbus_is_compatible) (const char *compat_string, ++ const struct grub_fdtbus_dev *dev); ++ ++/* Must be called before any register(). */ ++/* dtb is assumed to be unfreeable and must remain ++ valid for lifetime of GRUB. ++ */ ++void ++grub_fdtbus_init (const void *dtb, grub_size_t size); ++ ++#endif +diff --git a/include/grub/kernel.h b/include/grub/kernel.h +index 20ddf2da297d5c883ed5b5542f2cfd99ee9c18da..ecd88ca72c6dea39be9f046463e7c51c874cb351 100644 +--- a/include/grub/kernel.h ++++ b/include/grub/kernel.h +@@ -28,7 +28,8 @@ enum + OBJ_TYPE_MEMDISK, + OBJ_TYPE_CONFIG, + OBJ_TYPE_PREFIX, +- OBJ_TYPE_PUBKEY ++ OBJ_TYPE_PUBKEY, ++ OBJ_TYPE_DTB + }; + + /* The module header. */ +diff --git a/include/grub/net.h b/include/grub/net.h +index 2192fa18628862e8e3a6046d854b12613e914ff9..1096b24322eb1ba36e8c996872fce2a255e6bccc 100644 +--- a/include/grub/net.h ++++ b/include/grub/net.h +@@ -291,6 +291,7 @@ struct grub_net_network_level_interface + grub_net_interface_flags_t flags; + struct grub_net_bootp_packet *dhcp_ack; + grub_size_t dhcp_acklen; ++ grub_uint16_t vlantag; + void *data; + }; + +@@ -561,4 +562,6 @@ extern char *grub_net_default_server; + #define GRUB_NET_INTERVAL 400 + #define GRUB_NET_INTERVAL_ADDITION 20 + ++#define VLANTAG_IDENTIFIER 0x8100 ++ + #endif /* ! GRUB_NET_HEADER */ +diff --git a/include/grub/net/arp.h b/include/grub/net/arp.h +index bb1703622e1529479618e7f71b0d5e88adb631d1..8d9d081134f52e2d33c23928baae7f6b4c08470f 100644 +--- a/include/grub/net/arp.h ++++ b/include/grub/net/arp.h +@@ -22,10 +22,11 @@ + #include + + extern grub_err_t grub_net_arp_receive (struct grub_net_buff *nb, +- struct grub_net_card *card); ++ struct grub_net_card *card, ++ grub_uint16_t *vlantag); + + grub_err_t + grub_net_arp_send_request (struct grub_net_network_level_interface *inf, +- const grub_net_network_level_address_t *proto_addr); ++ const grub_net_network_level_address_t *proto_addr); + + #endif +diff --git a/include/grub/net/ip.h b/include/grub/net/ip.h +index dcceaa56894605a39f87858964da7af11951ff11..ab9d68f98252b9772853a712ff1e8556162002ee 100644 +--- a/include/grub/net/ip.h ++++ b/include/grub/net/ip.h +@@ -48,7 +48,8 @@ grub_err_t + grub_net_recv_ip_packets (struct grub_net_buff *nb, + struct grub_net_card *card, + const grub_net_link_level_address_t *hwaddress, +- const grub_net_link_level_address_t *src_hwaddress); ++ const grub_net_link_level_address_t *src_hwaddress, ++ grub_uint16_t *vlantag); + + grub_err_t + grub_net_send_ip_packet (struct grub_net_network_level_interface *inf, +diff --git a/include/grub/offsets.h b/include/grub/offsets.h +index c88c86d4d2ebddddb23f25c50ad2c29b52e54ccb..bf0689fc99a89ff465985af7d1708c15a68c90eb 100644 +--- a/include/grub/offsets.h ++++ b/include/grub/offsets.h +@@ -122,6 +122,12 @@ + #define GRUB_KERNEL_ARM_UBOOT_MOD_ALIGN 0x8 + #define GRUB_KERNEL_ARM_UBOOT_TOTAL_MODULE_SIZE 0x4 + ++#define GRUB_KERNEL_ARM_COREBOOT_MOD_ALIGN 0x8 ++#define GRUB_KERNEL_ARM_COREBOOT_TOTAL_MODULE_SIZE 0x4 ++ ++#define GRUB_KERNEL_ARM_STACK_SIZE 0x40000 ++#define GRUB_KERNEL_ARM_COREBOOT_MOD_GAP (GRUB_KERNEL_ARM_STACK_SIZE + 1024) ++ + /* Minimal gap between _end and the start of the modules. It's a hack + for PowerMac to prevent "CLAIM failed" error. The real fix is to + rewrite grub-mkimage to generate valid ELF files. */ +diff --git a/include/grub/pci.h b/include/grub/pci.h +index 70d9a05131b240bbe3c7fe12df899c8e3de237ce..262c89b748bbfccc98ffa27912ce7e2a5005f545 100644 +--- a/include/grub/pci.h ++++ b/include/grub/pci.h +@@ -142,27 +142,7 @@ grub_pci_address_t EXPORT_FUNC(grub_pci_make_address) (grub_pci_device_t dev, + void EXPORT_FUNC(grub_pci_iterate) (grub_pci_iteratefunc_t hook, + void *hook_data); + +-struct grub_pci_dma_chunk; +- +-struct grub_pci_dma_chunk *EXPORT_FUNC(grub_memalign_dma32) (grub_size_t align, +- grub_size_t size); +-void EXPORT_FUNC(grub_dma_free) (struct grub_pci_dma_chunk *ch); +-volatile void *EXPORT_FUNC(grub_dma_get_virt) (struct grub_pci_dma_chunk *ch); +-grub_uint32_t EXPORT_FUNC(grub_dma_get_phys) (struct grub_pci_dma_chunk *ch); +- +-static inline void * +-grub_dma_phys2virt (grub_uint32_t phys, struct grub_pci_dma_chunk *chunk) +-{ +- return ((grub_uint8_t *) grub_dma_get_virt (chunk) +- + (phys - grub_dma_get_phys (chunk))); +-} +- +-static inline grub_uint32_t +-grub_dma_virt2phys (volatile void *virt, struct grub_pci_dma_chunk *chunk) +-{ +- return (((grub_uint8_t *) virt - (grub_uint8_t *) grub_dma_get_virt (chunk)) +- + grub_dma_get_phys (chunk)); +-} ++#include + + grub_uint8_t + EXPORT_FUNC (grub_pci_find_capability) (grub_pci_device_t dev, grub_uint8_t cap); +diff --git a/include/grub/ps2.h b/include/grub/ps2.h +new file mode 100644 +index 0000000000000000000000000000000000000000..4f2e527e49767c297646f1ea3d0e09bdc2855892 +--- /dev/null ++++ b/include/grub/ps2.h +@@ -0,0 +1,43 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2007,2008,2009 Free Software Foundation, Inc. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++#ifndef GRUB_PS2_HEADER ++#define GRUB_PS2_HEADER 1 ++ ++#include ++ ++#define GRUB_AT_ACK 0xfa ++#define GRUB_AT_NACK 0xfe ++#define GRUB_AT_TRIES 5 ++ ++/* Make sure it's zeroed-out and set current_set at init. */ ++struct grub_ps2_state ++{ ++ int e0_received; ++ int f0_received; ++ grub_uint8_t led_status; ++ short at_keyboard_status; ++ grub_uint8_t current_set; ++}; ++ ++/* If there is a key pending, return it; otherwise return GRUB_TERM_NO_KEY. */ ++int ++grub_ps2_process_incoming_byte (struct grub_ps2_state *ps2_state, ++ grub_uint8_t data); ++ ++#endif +diff --git a/include/grub/term.h b/include/grub/term.h +index 5ffb38f69aaa8911a66bdc6f417a72666b19e514..8117e2a24dac3f270d05408f1897fae9f0fa1593 100644 +--- a/include/grub/term.h ++++ b/include/grub/term.h +@@ -55,7 +55,8 @@ + #define GRUB_TERM_KEY_INSERT (GRUB_TERM_EXTENDED | 0x52) + #define GRUB_TERM_KEY_CENTER (GRUB_TERM_EXTENDED | 0x4c) + +-#define GRUB_TERM_ESC '\e' ++/* Hex value is used for ESC, since '\e' is nonstandard */ ++#define GRUB_TERM_ESC 0x1b + #define GRUB_TERM_TAB '\t' + #define GRUB_TERM_BACKSPACE '\b' + +diff --git a/include/grub/usb.h b/include/grub/usb.h +index 11d96481ff6b58cc43f468bcb2020475663fa098..512ae1dd0e64931c852847c9d52efdbd6b2caccb 100644 +--- a/include/grub/usb.h ++++ b/include/grub/usb.h +@@ -321,5 +321,9 @@ grub_usb_err_t + grub_usb_check_transfer (grub_usb_transfer_t trans, grub_size_t *actual); + void + grub_usb_cancel_transfer (grub_usb_transfer_t trans); ++void ++grub_ehci_init_device (volatile void *regs); ++void ++grub_ehci_pci_scan (void); + + #endif /* GRUB_USB_H */ +diff --git a/include/grub/util/install.h b/include/grub/util/install.h +index 5ca4811cd130f6810f07e6fbce89af1de36827c7..5910b0c09bc8be529e074d388afabcd60eea7ab4 100644 +--- a/include/grub/util/install.h ++++ b/include/grub/util/install.h +@@ -29,6 +29,8 @@ + #define GRUB_INSTALL_OPTIONS \ + { "modules", GRUB_INSTALL_OPTIONS_MODULES, N_("MODULES"), \ + 0, N_("pre-load specified modules MODULES"), 1 }, \ ++ { "dtb", GRUB_INSTALL_OPTIONS_DTB, N_("FILE"), \ ++ 0, N_("embed a specific DTB"), 1 }, \ + { "install-modules", GRUB_INSTALL_OPTIONS_INSTALL_MODULES, \ + N_("MODULES"), 0, \ + N_("install only MODULES and their dependencies [default=all]"), 1 }, \ +@@ -99,6 +101,7 @@ enum grub_install_plat + GRUB_INSTALL_PLATFORM_I386_XEN, + GRUB_INSTALL_PLATFORM_X86_64_XEN, + GRUB_INSTALL_PLATFORM_ARM64_EFI, ++ GRUB_INSTALL_PLATFORM_ARM_COREBOOT, + GRUB_INSTALL_PLATFORM_MAX + }; + +@@ -115,7 +118,8 @@ enum grub_install_options { + GRUB_INSTALL_OPTIONS_LOCALE_DIRECTORY, + GRUB_INSTALL_OPTIONS_THEMES_DIRECTORY, + GRUB_INSTALL_OPTIONS_GRUB_MKIMAGE, +- GRUB_INSTALL_OPTIONS_INSTALL_CORE_COMPRESS ++ GRUB_INSTALL_OPTIONS_INSTALL_CORE_COMPRESS, ++ GRUB_INSTALL_OPTIONS_DTB + }; + + extern char *grub_install_source_directory; +@@ -176,7 +180,7 @@ grub_install_generate_image (const char *dir, const char *prefix, + char *config_path, + const struct grub_install_image_target_desc *image_target, + int note, +- grub_compression_t comp); ++ grub_compression_t comp, const char *dtb_file); + + const struct grub_install_image_target_desc * + grub_install_get_image_target (const char *arg); +diff --git a/include/grub/util/mkimage.h b/include/grub/util/mkimage.h +index 1a18708a89c6e5503dd29b0b76f5098cef3ac893..b3a5ca132bc4d336f8d85158726bcce77fd7cd37 100644 +--- a/include/grub/util/mkimage.h ++++ b/include/grub/util/mkimage.h +@@ -51,13 +51,13 @@ grub_mkimage_load_image64 (const char *kernel_path, + void + grub_mkimage_generate_elf32 (const struct grub_install_image_target_desc *image_target, + int note, char **core_img, size_t *core_size, +- Elf32_Addr target_addr, grub_size_t align, +- size_t kernel_size, size_t bss_size); ++ Elf32_Addr target_addr, ++ struct grub_mkimage_layout *layout); + void + grub_mkimage_generate_elf64 (const struct grub_install_image_target_desc *image_target, + int note, char **core_img, size_t *core_size, +- Elf64_Addr target_addr, grub_size_t align, +- size_t kernel_size, size_t bss_size); ++ Elf64_Addr target_addr, ++ struct grub_mkimage_layout *layout); + + struct grub_install_image_target_desc + { +diff --git a/grub-core/boot/sparc64/ieee1275/boot.S b/grub-core/boot/sparc64/ieee1275/boot.S +index 586efb4014e8648e560fb43eee8eea8b09da669b..9ea9b4e06627bbd8b7da422ffba3357b4fba0a6a 100644 +--- a/grub-core/boot/sparc64/ieee1275/boot.S ++++ b/grub-core/boot/sparc64/ieee1275/boot.S +@@ -69,6 +69,10 @@ prom_seek_name: .asciz "seek" + prom_read_name: .asciz "read" + prom_exit_name: .asciz "exit" + grub_name: .asciz "GRUB " ++#ifdef CDBOOT ++prom_close_name: .asciz "close" ++#endif ++ + #define GRUB_NAME_LEN 5 + + .align 4 +@@ -213,6 +217,12 @@ bootpath_known: + call prom_call_3_1_o1 + #ifdef CDBOOT + LDUW_ABS(kernel_size, 0x00, %o3) ++ ++ GET_ABS(prom_close_name, %o0) ++ mov 1, %g1 ++ mov 0, %o5 ++ call prom_call ++ mov BOOTDEV_REG, %o1 + #else + mov 512, %o3 + #endif +diff --git a/grub-core/kern/arm/cache_armv7.S b/grub-core/kern/arm/cache_armv7.S +index 1ef2754af8a7612c35c26011fab442dbba074dfd..5ae76a3d819c002676f54db3311f517791e0c4e8 100644 +--- a/grub-core/kern/arm/cache_armv7.S ++++ b/grub-core/kern/arm/cache_armv7.S +@@ -33,6 +33,18 @@ + # define ISB isb + #define ARMV7 1 + ++FUNCTION(grub_arm_clean_dcache_range_poc_armv7) ++ DSB ++ @ Clean data cache for range to point-of-coherence ++1: cmp r0, r1 ++ bge 2f ++ mcr p15, 0, r0, c7, c14, 1 @ DCCMVAC ++ add r0, r0, r2 @ Next line ++ b 1b ++2: DSB ++ bx lr ++ ++ + @ r0 - CLIDR + @ r1 - LoC + @ r2 - current level +diff --git a/grub-core/kern/arm/coreboot/coreboot.S b/grub-core/kern/arm/coreboot/coreboot.S +new file mode 100644 +index 0000000000000000000000000000000000000000..a1104526c154bd5a9dfd9e3680d8bb787c1088ef +--- /dev/null ++++ b/grub-core/kern/arm/coreboot/coreboot.S +@@ -0,0 +1,44 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2016 Free Software Foundation, Inc. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++#include ++ ++ .file "coreboot.S" ++ .text ++ .syntax unified ++#if !defined (__thumb2__) ++ .arch armv7a ++ .arm ++#else ++ .arch armv7 ++ .thumb ++#endif ++ ++FUNCTION(grub_arm_pfr1) ++ mrc p15, 0, r0, c0, c1, 1 ++ bx lr ++ ++FUNCTION(grub_armv7_get_timer_value) ++ isb ++ mrrc p15, 1, r0, r1, c14 ++ bx lr ++ ++FUNCTION(grub_armv7_get_timer_frequency) ++ mrc p15, 0, r0, c14, c0, 0 ++ bx lr ++ +diff --git a/grub-core/kern/arm/uboot/startup.S b/grub-core/kern/arm/startup.S +similarity index 77% +rename from grub-core/kern/arm/uboot/startup.S +rename to grub-core/kern/arm/startup.S +index 5efaae16e838b48dd4d9a5debfc2937a558c65ba..3946fe8e183023f80e3a90ae4ee7b942f02f204d 100644 +--- a/grub-core/kern/arm/uboot/startup.S ++++ b/grub-core/kern/arm/startup.S +@@ -24,6 +24,7 @@ + * GRUB is called from U-Boot as a Linux Kernel type image, which + * means among other things that it always enters in ARM state. + * ++ * coreboot starts in ARM mode as well. + * + * Overview of GRUB image layout: + * +@@ -86,7 +87,7 @@ FUNCTION(codestart) + @ Stack pointer used as start address for signature probing + mov r12, sp + adr sp, entry_state +- push {r1-r12,lr} @ store U-Boot context (sp in r12) ++ push {r0-r12,lr} @ store U-Boot context (sp in r12) + + adr r1, _start + ldr r0, bss_start_ptr @ src +@@ -127,6 +128,8 @@ reloc_done: + + str r1, EXT_C(grub_modbase) + ++ /* Coreboot already places modules at right place. */ ++#ifndef GRUB_MACHINE_COREBOOT + add r1, r1, r2 + add r0, r0, r2 + sub r1, r1, #4 +@@ -136,6 +139,7 @@ reloc_done: + str r3, [r1], #-4 @ *dst-- = r3 + subs r2, #4 @ remaining -= 4 + bne 1b @ while remaining != 0 ++#endif + + @ Since we _are_ the C run-time, we need to manually zero the BSS + @ region before continuing +@@ -153,69 +157,21 @@ reloc_done: + + b EXT_C(grub_main) + +- /* +- * uboot_syscall(): +- * This function is effectively a veneer, so it cannot +- * modify the stack or corrupt any registers other than +- * r12 (ip). Furthermore it needs to restore r8 for +- * U-Boot (Global Data Pointer) and preserve it for Grub. +- */ +-FUNCTION(grub_uboot_syscall) +- str r8, transition_space +- str lr, transition_space + 4 +- str r9, transition_space + 8 +- +- ldr r8, gd_backup +- ldr r9, gd_backup + 4 +- +- bl do_syscall +- +- ldr r8, transition_space +- ldr lr, transition_space + 4 +- ldr r9, transition_space + 8 +- +- bx lr +-do_syscall: +- +- ldr ip, grub_uboot_syscall_ptr +- bx ip +- +-FUNCTION(grub_uboot_return) +- adr sp, entry_state_end +- pop {r4-r12, lr} +- mov sp, r12 +- bx lr +- +- + .align 3 +-@ U-boot context stack space +-entry_state_end: +-VARIABLE(grub_uboot_machine_type) ++@ U-boot/coreboot context stack space ++VARIABLE(grub_arm_saved_registers) ++ .long 0 @ r0 + .long 0 @ r1 +-VARIABLE(grub_uboot_boot_data) + .long 0 @ r2 + .long 0 @ r3 + .long 0 @ r4 + .long 0 @ r5 + .long 0 @ r6 + .long 0 @ r7 +-gd_backup: +- .long 0 @ r8 - U-Boot global data pointer up to 2013-09-21 +- .long 0 @ r9 - U-Boot global data pointer 2013-09-21 onwards +- .long 0 @ r10 +- .long 0 @ r11 +-VARIABLE(grub_uboot_search_hint)@ U-Boot stack pointer - +- .long 0 @ also API signature address hint. +- .long 0 @ lr +-entry_state: @ backup for U-Boot context +- +-@ GRUB context stack space +-transition_space: + .long 0 @ r8 +- .long 0 @ lr + .long 0 @ r9 +- +-VARIABLE(grub_uboot_syscall_ptr) +- .long 0 @ +- +- END ++ .long 0 @ r10 ++ .long 0 @ r11 ++ .long 0 @ sp ++ .long 0 @ lr ++entry_state: +diff --git a/grub-core/kern/arm/uboot/uboot.S b/grub-core/kern/arm/uboot/uboot.S +new file mode 100644 +index 0000000000000000000000000000000000000000..d128775f19ea1f862b46bc82b05b453be577d741 +--- /dev/null ++++ b/grub-core/kern/arm/uboot/uboot.S +@@ -0,0 +1,73 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2013 Free Software Foundation, Inc. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++#include ++#include ++#include ++ ++ /* ++ * uboot_syscall(): ++ * This function is effectively a veneer, so it cannot ++ * modify the stack or corrupt any registers other than ++ * r12 (ip). Furthermore it needs to restore r8 for ++ * U-Boot (Global Data Pointer) and preserve it for Grub. ++ */ ++FUNCTION(grub_uboot_syscall) ++ str r8, transition_space ++ str lr, transition_space + 4 ++ str r9, transition_space + 8 ++ ++ ldr ip, saved_registers_ptr ++ ldr r8, [ip, #4 * 8] ++ ldr r9, [ip, #4 * 9] ++ ++ bl do_syscall ++ ++ ldr r8, transition_space ++ ldr lr, transition_space + 4 ++ ldr r9, transition_space + 8 ++ ++ bx lr ++do_syscall: ++ ++ ldr ip, grub_uboot_syscall_ptr ++ bx ip ++ ++FUNCTION(grub_uboot_return) ++ ldr ip, saved_registers_ptr ++ ldr sp, [ip, #4 * 4] ++ pop {r4-r12, lr} ++ mov sp, r12 ++ bx lr ++ ++ ++ .align 3 ++ ++@ GRUB context stack space ++transition_space: ++ .long 0 @ r8 ++ .long 0 @ lr ++ .long 0 @ r9 ++ ++saved_registers_ptr: ++ .long EXT_C(grub_arm_saved_registers) ++ ++VARIABLE(grub_uboot_syscall_ptr) ++ .long 0 @ ++ ++ END +diff --git a/conf/Makefile.common b/conf/Makefile.common +index 11296b550a7cd40ded498613620f556d78c67d84..311da61c6c59fed3de8cba06c2c581b217d8273f 100644 +--- a/conf/Makefile.common ++++ b/conf/Makefile.common +@@ -86,9 +86,11 @@ CPPFLAGS_TERMINAL_LIST += '-Dgrub_term_register_output(...)=OUTPUT_TERMINAL_LIST + CPPFLAGS_COMMAND_LIST = '-Dgrub_register_command(...)=COMMAND_LIST_MARKER(__VA_ARGS__)' + CPPFLAGS_COMMAND_LIST += '-Dgrub_register_extcmd(...)=EXTCOMMAND_LIST_MARKER(__VA_ARGS__)' + CPPFLAGS_COMMAND_LIST += '-Dgrub_register_command_p1(...)=P1COMMAND_LIST_MARKER(__VA_ARGS__)' ++CPPFLAGS_FDT_LIST := '-Dgrub_fdtbus_register(...)=FDT_DRIVER_LIST_MARKER(__VA_ARGS__)' + CPPFLAGS_MARKER = $(CPPFLAGS_FS_LIST) $(CPPFLAGS_VIDEO_LIST) \ + $(CPPFLAGS_PARTTOOL_LIST) $(CPPFLAGS_PARTMAP_LIST) \ +- $(CPPFLAGS_TERMINAL_LIST) $(CPPFLAGS_COMMAND_LIST) ++ $(CPPFLAGS_TERMINAL_LIST) $(CPPFLAGS_COMMAND_LIST) \ ++ $(CPPFLAGS_FDT_LIST) + + # Define these variables to calm down automake + +diff --git a/docs/grub.texi b/docs/grub.texi +index e935af33ea5e24d832e588d1345e3721b826d5a0..a0c4b9e4e8e861fd786fa911d8d9005a7678182b 100644 +--- a/docs/grub.texi ++++ b/docs/grub.texi +@@ -3873,11 +3873,9 @@ you forget a command, you can run the command @command{help} + @comment * vbeinfo:: List available video modes + * verify_detached:: Verify detached digital signature + * videoinfo:: List available video modes +-@comment * xen_*:: Xen boot commands +-* xen_hypervisor:: Load xen hypervisor binary +-* xen_linux:: Load dom0 kernel for xen hypervisor +-* xen_initrd:: Load dom0 initrd for dom0 kernel +-* xen_xsm:: Load xen security module for xen hypervisor ++@comment * xen_*:: Xen boot commands for AArch64 ++* xen_hypervisor:: Load xen hypervisor binary (only on AArch64) ++* xen_module:: Load xen modules for xen hypervisor (only on AArch64) + @end menu + + +@@ -5153,32 +5151,22 @@ List available video modes. If resolution is given, show only matching modes. + Load a Xen hypervisor binary from @var{file}. The rest of the line is passed + verbatim as the @dfn{kernel command-line}. Any other binaries must be + reloaded after using this command. ++This command is only available on AArch64 systems. + @end deffn + +-@node xen_linux +-@subsection xen_linux ++@node xen_module ++@subsection xen_module + +-@deffn Command xen_linux file [arguments] +-Load a dom0 kernel image for xen hypervisor at the booting process of xen. ++@deffn Command xen_module [--nounzip] file [arguments] ++Load a module for xen hypervisor at the booting process of xen. + The rest of the line is passed verbatim as the module command line. ++Modules should be loaded in the following order: ++ - dom0 kernel image ++ - dom0 ramdisk if present ++ - XSM policy if present ++This command is only available on AArch64 systems. + @end deffn + +-@node xen_initrd +-@subsection xen_initrd +- +-@deffn Command xen_initrd file +-Load a initrd image for dom0 kernel at the booting process of xen. +-@end deffn +- +-@node xen_xsm +-@subsection xen_xsm +- +-@deffn Command xen_xsm file +-Load a xen security module for xen hypervisor at the booting process of xen. +-See @uref{http://wiki.xen.org/wiki/XSM} for more detail. +-@end deffn +- +- + @node Networking commands + @section The list of networking commands + +diff --git a/gentpl.py b/gentpl.py +index f08bcc404f6a8bd8c3b13a6d5bb041ee32422776..da67965a41a40cde7c987b719fea39cd02ba10e5 100644 +--- a/gentpl.py ++++ b/gentpl.py +@@ -31,7 +31,8 @@ GRUB_PLATFORMS = [ "emu", "i386_pc", "i386_efi", "i386_qemu", "i386_coreboot", + "i386_xen", "x86_64_xen", + "mips_loongson", "sparc64_ieee1275", + "powerpc_ieee1275", "mips_arc", "ia64_efi", +- "mips_qemu_mips", "arm_uboot", "arm_efi", "arm64_efi" ] ++ "mips_qemu_mips", "arm_uboot", "arm_efi", "arm64_efi", ++ "arm_coreboot"] + + GROUPS = {} + +@@ -44,7 +45,7 @@ GROUPS["x86"] = GROUPS["i386"] + GROUPS["x86_64"] + GROUPS["mips"] = [ "mips_loongson", "mips_qemu_mips", "mips_arc" ] + GROUPS["sparc64"] = [ "sparc64_ieee1275" ] + GROUPS["powerpc"] = [ "powerpc_ieee1275" ] +-GROUPS["arm"] = [ "arm_uboot", "arm_efi" ] ++GROUPS["arm"] = [ "arm_uboot", "arm_efi", "arm_coreboot" ] + GROUPS["arm64"] = [ "arm64_efi" ] + + # Groups based on firmware +@@ -52,6 +53,7 @@ GROUPS["efi"] = [ "i386_efi", "x86_64_efi", "ia64_efi", "arm_efi", "arm64_efi" + GROUPS["ieee1275"] = [ "i386_ieee1275", "sparc64_ieee1275", "powerpc_ieee1275" ] + GROUPS["uboot"] = [ "arm_uboot" ] + GROUPS["xen"] = [ "i386_xen", "x86_64_xen" ] ++GROUPS["coreboot"] = [ "i386_coreboot", "arm_coreboot" ] + + # emu is a special case so many core functionality isn't needed on this platform + GROUPS["noemu"] = GRUB_PLATFORMS[:]; GROUPS["noemu"].remove("emu") +@@ -61,10 +63,10 @@ GROUPS["cmos"] = GROUPS["x86"][:] + ["mips_loongson", "mips_qemu_mips", + "sparc64_ieee1275", "powerpc_ieee1275"] + GROUPS["cmos"].remove("i386_efi"); GROUPS["cmos"].remove("x86_64_efi"); + GROUPS["pci"] = GROUPS["x86"] + ["mips_loongson"] +-GROUPS["usb"] = GROUPS["pci"] ++GROUPS["usb"] = GROUPS["pci"] + ["arm_coreboot"] + + # If gfxterm is main output console integrate it into kernel +-GROUPS["videoinkernel"] = ["mips_loongson", "i386_coreboot" ] ++GROUPS["videoinkernel"] = ["mips_loongson", "i386_coreboot", "arm_coreboot" ] + GROUPS["videomodules"] = GRUB_PLATFORMS[:]; + for i in GROUPS["videoinkernel"]: GROUPS["videomodules"].remove(i) + +diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am +index 04e9395fd949460672c1113c3d49c90a5d4471ec..10451384720474e8dc071a6843eda0fafa455724 100644 +--- a/grub-core/Makefile.am ++++ b/grub-core/Makefile.am +@@ -112,7 +112,7 @@ endif + + if COND_i386_coreboot + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/tsc.h +-KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/coreboot/lbio.h ++KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/coreboot/lbio.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/video.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/video_fb.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/gfxterm.h +@@ -239,6 +239,20 @@ KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/lib/arg.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/arm/system.h + endif + ++if COND_arm_coreboot ++KERNEL_HEADER_FILES += $(top_builddir)/include/grub/keyboard_layouts.h ++KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/arm/system.h ++KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/video.h ++KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/video_fb.h ++KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/gfxterm.h ++KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/font.h ++KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/bufio.h ++KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/fdt.h ++KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/dma.h ++KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/arm/coreboot/kernel.h ++KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/fdtbus.h ++endif ++ + if COND_arm_efi + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/arm/efi/loader.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/efi.h +@@ -278,7 +292,7 @@ BUILT_SOURCES += symlist.h + + symlist.c: symlist.h gensymlist.sh + $(TARGET_CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS_KERNEL) $(CPPFLAGS) -DGRUB_SYMBOL_GENERATOR=1 symlist.h > symlist.p || (rm -f symlist.p; exit 1) +- cat symlist.p | /bin/sh $(srcdir)/gensymlist.sh $(top_builddir)/config.h $(KERNEL_HEADER_FILES) >$@ || (rm -f $@; exit 1) ++ cat symlist.p | $(SHELL) $(srcdir)/gensymlist.sh $(top_builddir)/config.h $(KERNEL_HEADER_FILES) >$@ || (rm -f $@; exit 1) + rm -f symlist.p + CLEANFILES += symlist.c + BUILT_SOURCES += symlist.c +@@ -358,6 +372,16 @@ terminal.lst: $(MARKER_FILES) + platform_DATA += terminal.lst + CLEANFILES += terminal.lst + ++fdt.lst: $(MARKER_FILES) ++ (for pp in $^; do \ ++ b=`basename $$pp .marker`; \ ++ sed -n \ ++ -e "/FDT_DRIVER_LIST_MARKER *( *\"/{s/.*( *\"\([^\"]*\)\".*/i\1: $$b/;p;}" \ ++ -e "/FDT_DRIVER_LIST_MARKER *( *\"/{s/.*( *\"\([^\"]*\)\".*/o\1: $$b/;p;}" $$pp; \ ++ done) | sort -u > $@ ++platform_DATA += fdt.lst ++CLEANFILES += fdt.lst ++ + parttool.lst: $(MARKER_FILES) + (for pp in $^; do \ + b=`basename $$pp .marker`; \ +diff --git a/grub-core/genmod.sh.in b/grub-core/genmod.sh.in +index 03cc3b7f69ed3cfb69b744f8114895fd0e14fde7..3de06ee018f83e04069566f9de1365bdbc01e377 100644 +--- a/grub-core/genmod.sh.in ++++ b/grub-core/genmod.sh.in +@@ -1,4 +1,4 @@ +-#! /bin/sh ++#! @BUILD_SHEBANG@ + set -e + + # Copyright (C) 2010 Free Software Foundation, Inc. +diff --git a/grub-core/gensyminfo.sh.in b/grub-core/gensyminfo.sh.in +index 2e8716b425cb04d9379ef5e2c629283d0f346c90..9bc7675327a6d9229492548671dd004054282434 100644 +--- a/grub-core/gensyminfo.sh.in ++++ b/grub-core/gensyminfo.sh.in +@@ -1,4 +1,4 @@ +-#! /bin/sh ++#! @BUILD_SHEBANG@ + set -e + + # Copyright (C) 2010 Free Software Foundation, Inc. +diff --git a/grub-core/modinfo.sh.in b/grub-core/modinfo.sh.in +index faf0ad30edbe878270a185add45aa70e245d8b3a..f6cd657ce0f8307547fc5d011efa35622c318e63 100644 +--- a/grub-core/modinfo.sh.in ++++ b/grub-core/modinfo.sh.in +@@ -1,4 +1,4 @@ +-#!/bin/sh ++#!@BUILD_SHEBANG@ + + # User-controllable options + grub_modinfo_target_cpu=@target_cpu@ +diff --git a/po/Makefile.in.in b/po/Makefile.in.in +index 3619458e85f2bed3f92a76a9d919c26a30116dee..e68e9da843d927bfb6bbd519f4b3923c733abd7c 100644 +--- a/po/Makefile.in.in ++++ b/po/Makefile.in.in +@@ -15,7 +15,7 @@ PACKAGE = @PACKAGE@ + VERSION = @VERSION@ + PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ + +-SHELL = /bin/sh ++SHELL = @SHELL@ + @SET_MAKE@ + + srcdir = @srcdir@ +diff --git a/tests/ahci_test.in b/tests/ahci_test.in +index 1d01d1f59a0aac8911ff7ca3e62565f2dee5954d..7df56046201e4c2e4a55bdcdd403853cde902268 100644 +--- a/tests/ahci_test.in ++++ b/tests/ahci_test.in +@@ -1,4 +1,4 @@ +-#! /bin/sh ++#! @BUILD_SHEBANG@ + # Copyright (C) 2013 Free Software Foundation, Inc. + # + # GRUB is free software: you can redistribute it and/or modify +diff --git a/tests/btrfs_test.in b/tests/btrfs_test.in +index c55d9477f78e01b6556bc0da9695f038523936f4..2b37ddd3324cc77f1edeb03feb369c22d03204a2 100644 +--- a/tests/btrfs_test.in ++++ b/tests/btrfs_test.in +@@ -1,4 +1,4 @@ +-#!/bin/sh ++#!@BUILD_SHEBANG@ + + set -e + +diff --git a/tests/cdboot_test.in b/tests/cdboot_test.in +index 1cc901977c229dcf839bf58bede2b34f04252d57..75acdfedb7fe4a634d4122e44b3cd01778ed6f35 100644 +--- a/tests/cdboot_test.in ++++ b/tests/cdboot_test.in +@@ -1,4 +1,4 @@ +-#! /bin/sh ++#! @BUILD_SHEBANG@ + # Copyright (C) 2013 Free Software Foundation, Inc. + # + # GRUB is free software: you can redistribute it and/or modify +diff --git a/tests/core_compress_test.in b/tests/core_compress_test.in +index 1003587ccca65616b0c7e3c1b90353ef7f459299..9d216ebcff60bfce04e3be4dbd1f8834800a6948 100644 +--- a/tests/core_compress_test.in ++++ b/tests/core_compress_test.in +@@ -1,4 +1,4 @@ +-#! /bin/sh ++#! @BUILD_SHEBANG@ + # Copyright (C) 2013 Free Software Foundation, Inc. + # + # GRUB is free software: you can redistribute it and/or modify +diff --git a/tests/cpio_test.in b/tests/cpio_test.in +index 0b09db549f07868a524376f0eb25fd6a2cac9e40..5742cf17b9d8f587d00590d481f0a00aaf6cada8 100644 +--- a/tests/cpio_test.in ++++ b/tests/cpio_test.in +@@ -1,4 +1,4 @@ +-#!/bin/sh ++#!@BUILD_SHEBANG@ + + set -e + +diff --git a/tests/ehci_test.in b/tests/ehci_test.in +index 7dd8d3e8fbd4a76b8efb88d69ecd8989546dc543..b197f8cdc922628ed35863dfa384eeef4cc4cc09 100644 +--- a/tests/ehci_test.in ++++ b/tests/ehci_test.in +@@ -1,4 +1,4 @@ +-#! /bin/sh ++#! @BUILD_SHEBANG@ + # Copyright (C) 2013 Free Software Foundation, Inc. + # + # GRUB is free software: you can redistribute it and/or modify +diff --git a/tests/example_scripted_test.in b/tests/example_scripted_test.in +index 09633e89341e079a05fda7461d867e1541df4287..783b7f13853f39f9ec63b8da1da6e8a1b3a887a5 100644 +--- a/tests/example_scripted_test.in ++++ b/tests/example_scripted_test.in +@@ -1,4 +1,4 @@ +-#!/bin/sh ++#!@BUILD_SHEBANG@ + set -e + + true +diff --git a/tests/exfat_test.in b/tests/exfat_test.in +index fc1a0fe5ec0306434434f0b49b20c44a1736dca1..cd3cd4cb2f70bb99df7edbfa8b5697f4316548ac 100644 +--- a/tests/exfat_test.in ++++ b/tests/exfat_test.in +@@ -1,4 +1,4 @@ +-#!/bin/sh ++#!@BUILD_SHEBANG@ + + set -e + +diff --git a/tests/ext234_test.in b/tests/ext234_test.in +index c986960a8bec696deb37a55cba00915219d77215..4f1eb527eb2ed41095266dba6d5013ead77d9be3 100644 +--- a/tests/ext234_test.in ++++ b/tests/ext234_test.in +@@ -1,4 +1,4 @@ +-#!/bin/sh ++#!@BUILD_SHEBANG@ + + set -e + +@@ -30,3 +30,4 @@ fi + "@builddir@/grub-fs-tester" ext3 + "@builddir@/grub-fs-tester" ext4 + "@builddir@/grub-fs-tester" ext4_metabg ++"@builddir@/grub-fs-tester" ext4_encrypt +diff --git a/tests/fat_test.in b/tests/fat_test.in +index 1d132b51703c43e269d5500ca1740fa1e6b9a42c..b6b4748ca694b59337441a2f3111863e01799884 100644 +--- a/tests/fat_test.in ++++ b/tests/fat_test.in +@@ -1,4 +1,4 @@ +-#!/bin/sh ++#!@BUILD_SHEBANG@ + + set -e + +diff --git a/tests/fddboot_test.in b/tests/fddboot_test.in +index a59645b7f873872490ac2474a30420c2df7a5caf..2d7dfc8891f6d7fdf42f88dea1213428e23b6f2e 100644 +--- a/tests/fddboot_test.in ++++ b/tests/fddboot_test.in +@@ -1,4 +1,4 @@ +-#! /bin/sh ++#! @BUILD_SHEBANG@ + # Copyright (C) 2013 Free Software Foundation, Inc. + # + # GRUB is free software: you can redistribute it and/or modify +diff --git a/tests/file_filter_test.in b/tests/file_filter_test.in +index 8909e4021fb1d507cd5bf3b63319824fdc005dd5..bfb6382274e48d409d6cf6f918fc252f993f717f 100644 +--- a/tests/file_filter_test.in ++++ b/tests/file_filter_test.in +@@ -1,4 +1,4 @@ +-#! /bin/sh ++#! @BUILD_SHEBANG@ + # Copyright (C) 2014 Free Software Foundation, Inc. + # + # GRUB is free software: you can redistribute it and/or modify +diff --git a/tests/gettext_strings_test.in b/tests/gettext_strings_test.in +index 5c305e75b7e9583f6be8a23d389051cf1fe2c243..813999ebe6ea5ee35796669e58baa57d0a2ace95 100644 +--- a/tests/gettext_strings_test.in ++++ b/tests/gettext_strings_test.in +@@ -1,4 +1,4 @@ +-#!/bin/sh ++#!@BUILD_SHEBANG@ + + cd '@srcdir@' + +diff --git a/tests/grub_cmd_date.in b/tests/grub_cmd_date.in +index a459353e8a51c22fb966a842af532cff904de2a3..f7c9ca00432fa3307a2fb53ac88ca11115d7f73f 100644 +--- a/tests/grub_cmd_date.in ++++ b/tests/grub_cmd_date.in +@@ -1,4 +1,4 @@ +-#! /bin/bash ++#! @BUILD_SHEBANG@ + set -e + + . "@builddir@/grub-core/modinfo.sh" +@@ -9,7 +9,7 @@ if [ "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" = sparc64-ieee1275 ]; + fi + + pdt="$(date -u +%s)" +-dt=`echo date | @builddir@/grub-shell` ++dt=`echo date | @builddir@/grub-shell | sed 's, [A-Z][a-z]*$,,'` + dtg="$(date -u -d "$dt" +%s)" + ndt="$(date -u +%s)" + +diff --git a/tests/grub_cmd_regexp.in b/tests/grub_cmd_regexp.in +index e7e6257011525ee42ca6945485208155fe717d24..6520bd6d79acc0c8f5bfddc443912d74e826a0c8 100644 +--- a/tests/grub_cmd_regexp.in ++++ b/tests/grub_cmd_regexp.in +@@ -1,4 +1,4 @@ +-#! /bin/bash ++#! @BUILD_SHEBANG@ + set -e + + # Run GRUB script in a Qemu instance +diff --git a/tests/grub_cmd_set_date.in b/tests/grub_cmd_set_date.in +index c594ae3fc14ebf7a6be86b90f4d048747383a69f..aac120a6c52731649678549d34372af14fef52d9 100644 +--- a/tests/grub_cmd_set_date.in ++++ b/tests/grub_cmd_set_date.in +@@ -1,4 +1,4 @@ +-#! /bin/bash ++#! @BUILD_SHEBANG@ + set -e + + . "@builddir@/grub-core/modinfo.sh" +diff --git a/tests/grub_cmd_sleep.in b/tests/grub_cmd_sleep.in +index eb362aa2439d713bf4246e2c56932bbc6200d710..8797f6632845f5a76ac22b813c223897ceddd672 100644 +--- a/tests/grub_cmd_sleep.in ++++ b/tests/grub_cmd_sleep.in +@@ -1,4 +1,4 @@ +-#! /bin/bash ++#! @BUILD_SHEBANG@ + set -e + + . "@builddir@/grub-core/modinfo.sh" +@@ -11,8 +11,8 @@ fi + # Compare RTC with interval timer. + # Not 100% proper but should check that timer is running ok + dt=`echo 'date; sleep 10; date' | @builddir@/grub-shell` +-dt1="$(date -u -d "$(echo "$dt" | head -n 1)" +%s)" +-dt2="$(date -u -d "$(echo "$dt" | tail -n 1)" +%s)" ++dt1="$(date -u -d "$(echo "$dt" | head -n 1 | sed 's, [A-Z][a-z]*$,,')" +%s)" ++dt2="$(date -u -d "$(echo "$dt" | tail -n 1 | sed 's, [A-Z][a-z]*$,,')" +%s)" + + # Ignore QEMU bug + if [ "${grub_modinfo_target_cpu}" = arm ] && [ $((dt2 - dt1)) -ge 15 ] && [ $((dt2 - dt1)) -le 17 ]; then +diff --git a/tests/grub_cmd_test.in b/tests/grub_cmd_test.in +index 6269891c9eeddb70f42da372e5636089e666818d..3399eb2929408570e9dad99db8dbc7215b41aea4 100644 +--- a/tests/grub_cmd_test.in ++++ b/tests/grub_cmd_test.in +@@ -1,4 +1,4 @@ +-#! /bin/bash ++#! @BUILD_SHEBANG@ + + # create a randome file + empty="`mktemp "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"`" || exit 1 +diff --git a/tests/grub_cmd_tr.in b/tests/grub_cmd_tr.in +index 3fb15e35c8ac3ac218abf580f8ff5cdcaa2925ca..bed469c03ddc9a762112896d75af399678af711e 100644 +--- a/tests/grub_cmd_tr.in ++++ b/tests/grub_cmd_tr.in +@@ -1,4 +1,4 @@ +-#! /bin/bash -e ++#! @BUILD_SHEBANG@ -e + + # Run GRUB script in a Qemu instance + # Copyright (C) 2010 Free Software Foundation, Inc. +diff --git a/tests/grub_func_test.in b/tests/grub_func_test.in +index c8cc263763377fd23d6c7f1eca49c1edafe530a7..c67f9e422534a402614eb280fe67d165fd0bb906 100644 +--- a/tests/grub_func_test.in ++++ b/tests/grub_func_test.in +@@ -1,4 +1,4 @@ +-#! /bin/bash ++#! @BUILD_SHEBANG@ + set -e + + . "@builddir@/grub-core/modinfo.sh" +diff --git a/tests/grub_script_blanklines.in b/tests/grub_script_blanklines.in +index 89ed763d3f4e0bb2a3ac3a61de9e0ec49b2eaccf..bd8735491be3b947c72fffbf5767d7ab6bcf91ae 100644 +--- a/tests/grub_script_blanklines.in ++++ b/tests/grub_script_blanklines.in +@@ -1,4 +1,4 @@ +-#! /bin/sh ++#! @BUILD_SHEBANG@ + set -e + + @builddir@/grub-script-check <&2 ++ exit 1 + fi + case x"$fs" in + # FS LIMITATION: 8.3 names + xmsdos*) +- CFILES[0]="american.eng";; ++ CFILE="american.eng";; + xiso9660) +- CFILES[0]="american_english";; ++ CFILE="american_english";; + *) +- CFILES[0]="american-english";; ++ CFILE="american-english";; + esac + # OS LIMITATION: Limited by NAME_MAX (usually 255) in GNU/Linux + LONGNAME="qwertzuiopasdfghjklyxcvbnm1234567890qwertzuiopasdfghjklyxcvbnm1234567890oiewqfiewioqoiqoiurqruewqoiuwoieoiiuewqroreqiufieiuwrnureweriuvceoiroiewqoiricdsalkcndsakfirefoiwqeoircorejwoijfreoijojoiewjfwnfcoirenfoirefnreoifenoiwfnoi" +@@ -388,8 +419,8 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + + ;; + x"vfat16" | xmsdos16) + BIGBLOCKCNT=$((25000 * BLKSIZE)) +- if [ $BIGBLOCKCNT -gt $((16#ffffffff)) ]; then +- BIGBLOCKCNT=$((16#ffffffff)) ++ if [ $BIGBLOCKCNT -gt 4294967295 ]; then ++ BIGBLOCKCNT=4294967295 + fi + ;; + x"minix") +@@ -410,7 +441,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + + BIGBLOCKCNT=$((4000 * 1048576));; + # FS LIMITATION: These FS have uint32 as file size field + x"vfat"* | xmsdos* | x"cpio_crc" | x"cpio_newc" | x"cpio_bin" | x"cpio_hpbin" | xsfs*) +- BIGBLOCKCNT=$((16#ffffffff));; ++ BIGBLOCKCNT=4294967295;; + # FS LIMITATION: These FS have int32 as file size field + # FIXME: not so sure about AFFS + # OS LIMITATION: minix2/minix3 could be formatted in a way to permit more. +@@ -543,18 +574,18 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + + + PDIR="" + # OS LIMITATION: Limited by PATH_MAX (usually 1024) +- for ((i=0;i /dev/null +- LODEVICES[i]=`losetup -f` +- losetup "${LODEVICES[i]}" "${FSIMAGES[i]}" ++ for i in $(range 0 $((NDEVICES-1)) 1); do ++ dd if=/dev/zero of="$FSIMAGEP${i}.img" count=1 bs=1 seek=$((DISKSIZE-1)) &> /dev/null ++ LODEVICE="$(losetup -f)" ++ LODEVICES="$LODEVICES $LODEVICE" ++ losetup "$LODEVICE" "$FSIMAGEP${i}.img" ++ if test "$i" = 0; then ++ MOUNTDEVICE="$LODEVICE" ++ fi + done ;; + esac + +- MOUNTDEVICE="${LODEVICES[0]}" + case x"$fs" in + x"afs") + ;; + x"btrfs") +- "mkfs.btrfs" -s $SECSIZE -L "$FSLABEL" "${LODEVICES[0]}" ;; ++ "mkfs.btrfs" -s $SECSIZE -L "$FSLABEL" "${MOUNTDEVICE}" ;; + x"btrfs_zlib" | x"btrfs_lzo") +- "mkfs.btrfs" -s $SECSIZE -L "$FSLABEL" "${LODEVICES[0]}" ++ "mkfs.btrfs" -s $SECSIZE -L "$FSLABEL" "${MOUNTDEVICE}" + MOUNTOPTS="compress=${fs/btrfs_/}," + MOUNTFS="btrfs" + ;; + x"btrfs_raid0") +- "mkfs.btrfs" -s $SECSIZE -d raid0 -m raid0 -L "$FSLABEL" "${LODEVICES[@]}" ++ "mkfs.btrfs" -s $SECSIZE -d raid0 -m raid0 -L "$FSLABEL" $LODEVICES + MOUNTFS="btrfs" + ;; + x"btrfs_raid1") +- "mkfs.btrfs" -s $SECSIZE -d raid1 -m raid1 -L "$FSLABEL" "${LODEVICES[@]}" ++ "mkfs.btrfs" -s $SECSIZE -d raid1 -m raid1 -L "$FSLABEL" $LODEVICES + MOUNTFS="btrfs" + ;; + x"btrfs_raid10") +- "mkfs.btrfs" -s $SECSIZE -d raid10 -m raid10 -L "$FSLABEL" "${LODEVICES[@]}" ++ "mkfs.btrfs" -s $SECSIZE -d raid10 -m raid10 -L "$FSLABEL" $LODEVICES + MOUNTFS="btrfs" + ;; + x"btrfs_single") +- "mkfs.btrfs" -s $SECSIZE -d single -L "$FSLABEL" "${LODEVICES[@]}" ++ "mkfs.btrfs" -s $SECSIZE -d single -L "$FSLABEL" $LODEVICES + MOUNTFS="btrfs" + ;; + x"exfat") +- "mkfs.$fs" -s $((BLKSIZE/512)) -n "$FSLABEL" "${LODEVICES[0]}" ++ "mkfs.$fs" -s $((BLKSIZE/512)) -n "$FSLABEL" "${MOUNTDEVICE}" + MOUNTOPTS="iocharset=utf8," + MOUNTFS="exfat-fuse";; + x"minix") +- "mkfs.minix" "${LODEVICES[0]}" ++ "mkfs.minix" "${MOUNTDEVICE}" + ;; + # mkfs.hfs and mkfs.hfsplus don't fill UUID. + x"hfsplus") +- "mkfs.hfsplus" -b $BLKSIZE -v "$FSLABEL" "${LODEVICES[0]}" +- dd if=/dev/urandom of="${LODEVICES[0]}" bs=1 seek=$((16#468)) conv=notrunc count=8 ;; ++ "mkfs.hfsplus" -b $BLKSIZE -v "$FSLABEL" "${MOUNTDEVICE}" ++ dd if=/dev/urandom of="${MOUNTDEVICE}" bs=1 seek=$((16#468)) conv=notrunc count=8 ;; + x"hfsplus_wrap") +- "mkfs.hfsplus" -w -b $BLKSIZE -v "$FSLABEL" "${LODEVICES[0]}" +- dd if=/dev/urandom of="${LODEVICES[0]}" bs=1 seek=$((16#468)) conv=notrunc count=8 ++ "mkfs.hfsplus" -w -b $BLKSIZE -v "$FSLABEL" "${MOUNTDEVICE}" ++ dd if=/dev/urandom of="${MOUNTDEVICE}" bs=1 seek=$((16#468)) conv=notrunc count=8 + MOUNTFS="hfsplus";; + x"hfsplus_casesens") +- "mkfs.hfsplus" -s -b $BLKSIZE -v "$FSLABEL" "${LODEVICES[0]}" +- dd if=/dev/urandom of="${LODEVICES[0]}" bs=1 seek=$((16#468)) conv=notrunc count=8 ++ "mkfs.hfsplus" -s -b $BLKSIZE -v "$FSLABEL" "${MOUNTDEVICE}" ++ dd if=/dev/urandom of="${MOUNTDEVICE}" bs=1 seek=$((16#468)) conv=notrunc count=8 + MOUNTFS="hfsplus";; + x"hfs") +- "mkfs.hfs" -b $BLKSIZE -v "`echo $FSLABEL |recode utf8..macroman`" -h "${LODEVICES[0]}" +- dd if=/dev/urandom of="${LODEVICES[0]}" bs=1 seek=$((16#474)) conv=notrunc count=8 ++ "mkfs.hfs" -b $BLKSIZE -v "`echo $FSLABEL |recode utf8..macroman`" -h "${MOUNTDEVICE}" ++ dd if=/dev/urandom of="${MOUNTDEVICE}" bs=1 seek=$((16#474)) conv=notrunc count=8 + MOUNTOPTS="iocharset=utf8,codepage=macroman," + ;; + x"vfat"*|xmsdos*) +@@ -643,98 +679,98 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + + else + A= + fi +- "mkfs.vfat" -a $A -S $SECSIZE -s $((BLKSIZE/SECSIZE)) -F "${BITS:0:2}" -n "$FSLABEL" "${FSIMAGES[0]}" ++ "mkfs.vfat" -a $A -S $SECSIZE -s $((BLKSIZE/SECSIZE)) -F "${BITS:0:2}" -n "$FSLABEL" "${MOUNTDEVICE}" + MOUNTOPTS="iocharset=utf8,codepage=437," + MOUNTFS="$(echo "$fs"|sed 's,[0-9]*a\?$,,')";; + x"minix2") +- "mkfs.minix" -v "${LODEVICES[0]}" ++ "mkfs.minix" -v "${MOUNTDEVICE}" + MOUNTFS="minix";; + x"minix3") +- "mkfs.minix" -B $BLKSIZE -3 "${LODEVICES[0]}" ++ "mkfs.minix" -B $BLKSIZE -3 "${MOUNTDEVICE}" + MOUNTFS="minix";; + x"ntfs"*) +- "mkfs.ntfs" -s "$SECSIZE" -c "$BLKSIZE" -L "$FSLABEL" -Q -q "${LODEVICES[0]}" ++ "mkfs.ntfs" -s "$SECSIZE" -c "$BLKSIZE" -L "$FSLABEL" -Q -q "${MOUNTDEVICE}" + MOUNTOPTS="iocharset=utf8,compression," + MOUNTFS="ntfs-3g";; + x"udf") +- "mkudffs" --utf8 -b $BLKSIZE --lvid="$FSLABEL" "${LODEVICES[0]}" ++ "mkudffs" --utf8 -b $BLKSIZE --lvid="$FSLABEL" "${MOUNTDEVICE}" + MOUNTOPTS="iocharset=utf8,bs=$BLKSIZE,";; + x"ufs2") +- "mkfs.ufs" -b $BLKSIZE -L "$FSLABEL" -O 2 "${LODEVICES[0]}" ++ "mkfs.ufs" -b $BLKSIZE -L "$FSLABEL" -O 2 "${MOUNTDEVICE}" + MOUNTOPTS="ufstype=ufs2," + MOUNTFS="ufs";; + x"ufs1") +- "mkfs.ufs" -b $BLKSIZE -L "$FSLABEL" -O 1 "${LODEVICES[0]}" ++ "mkfs.ufs" -b $BLKSIZE -L "$FSLABEL" -O 1 "${MOUNTDEVICE}" + MOUNTOPTS="ufstype=44bsd," + MOUNTFS="ufs";; + x"ufs1_sun") +- "mkfs.ufs" -b $BLKSIZE -L "$FSLABEL" -O 1 "${LODEVICES[0]}" ++ "mkfs.ufs" -b $BLKSIZE -L "$FSLABEL" -O 1 "${MOUNTDEVICE}" + MOUNTOPTS="ufstype=sun," + MOUNTFS="ufs";; + x"zfs") +- "zpool" create -R "$MNTPOINTRW" "$FSLABEL" "${LODEVICES[0]}" ++ "zpool" create -R "$MNTPOINTRW" "$FSLABEL" "${MOUNTDEVICE}" + sleep 1 + "zfs" create "$FSLABEL"/"grub fs" + sleep 1;; + x"zfs_caseins") +- "zpool" create -R "$MNTPOINTRW" "$FSLABEL" "${LODEVICES[0]}" ++ "zpool" create -R "$MNTPOINTRW" "$FSLABEL" "${MOUNTDEVICE}" + sleep 1 + "zfs" create -o casesensitivity=insensitive "$FSLABEL"/"grub fs" + sleep 1;; + x"zfs_lzjb" | xzfs_gzip | xzfs_zle) +- "zpool" create -O compression=${fs/zfs_/} -R "$MNTPOINTRW" "$FSLABEL" "${LODEVICES[0]}" ++ "zpool" create -O compression=${fs/zfs_/} -R "$MNTPOINTRW" "$FSLABEL" "${MOUNTDEVICE}" + sleep 1 + "zfs" create -o compression=${fs/zfs_/} "$FSLABEL"/"grub fs" + sleep 1;; + x"zfs_raidz") +- "zpool" create -R "$MNTPOINTRW" "$FSLABEL" raidz1 "${LODEVICES[@]}" ++ "zpool" create -R "$MNTPOINTRW" "$FSLABEL" raidz1 $LODEVICES + sleep 1 + "zfs" create "$FSLABEL"/"grub fs" + sleep 1;; + x"zfs_raidz2") +- "zpool" create -R "$MNTPOINTRW" "$FSLABEL" raidz2 "${LODEVICES[@]}" ++ "zpool" create -R "$MNTPOINTRW" "$FSLABEL" raidz2 $LODEVICES + sleep 1 + "zfs" create "$FSLABEL"/"grub fs" + sleep 1;; + x"zfs_raidz3") +- "zpool" create -R "$MNTPOINTRW" "$FSLABEL" raidz3 "${LODEVICES[@]}" ++ "zpool" create -R "$MNTPOINTRW" "$FSLABEL" raidz3 $LODEVICES + sleep 1 + "zfs" create "$FSLABEL"/"grub fs" + sleep 1;; + x"zfs_mirror") +- "zpool" create -R "$MNTPOINTRW" "$FSLABEL" mirror "${LODEVICES[@]}" ++ "zpool" create -R "$MNTPOINTRW" "$FSLABEL" mirror $LODEVICES + sleep 1 + "zfs" create "$FSLABEL"/"grub fs" + sleep 1;; + x"zfs_stripe") +- "zpool" create -R "$MNTPOINTRW" "$FSLABEL" "${LODEVICES[@]}" ++ "zpool" create -R "$MNTPOINTRW" "$FSLABEL" $LODEVICES + sleep 1 + "zfs" create "$FSLABEL"/"grub fs" + sleep 1;; + x"tarfs" | x"cpio_"* | x"iso9660" | xjoliet | xrockridge | xrockridge_joliet | x"iso9660_1999" | xjoliet_1999 | xrockridge_1999 | xrockridge_joliet_1999 | x"ziso9660" | x"romfs" | x"squash4_"*) + INSTDEVICE=/dev/null;; + x"reiserfs") +- "mkfs.reiserfs" --format=3.6 -b $BLKSIZE -l "$FSLABEL" -q "${LODEVICES[0]}" ;; ++ "mkfs.reiserfs" --format=3.6 -b $BLKSIZE -l "$FSLABEL" -q "${MOUNTDEVICE}" ;; + x"reiserfs_old") +- "mkfs.reiserfs" --format=3.5 -b $BLKSIZE -l "$FSLABEL" -q "${LODEVICES[0]}" ++ "mkfs.reiserfs" --format=3.5 -b $BLKSIZE -l "$FSLABEL" -q "${MOUNTDEVICE}" + MOUNTFS=reiserfs;; + x"jfs") +- "mkfs.jfs" -L "$FSLABEL" -q "${LODEVICES[0]}" ++ "mkfs.jfs" -L "$FSLABEL" -q "${MOUNTDEVICE}" + MOUNTOPTS="iocharset=utf8,";; + x"jfs_caseins") +- "mkfs.jfs" -O -L "$FSLABEL" -q "${LODEVICES[0]}" ++ "mkfs.jfs" -O -L "$FSLABEL" -q "${MOUNTDEVICE}" + MOUNTFS=jfs + MOUNTOPTS="iocharset=utf8,";; + x"mdraid"*) +- mdadm -C --chunk=$((BLKSIZE/1024)) --force -e "${fs:6:1}.${fs:7:1}" "/dev/md/${fs}_${NDEVICES}" --level="${fs:13}" --raid-devices="$NDEVICES" "${LODEVICES[@]}" ++ mdadm -C --chunk=$((BLKSIZE/1024)) --force -e "${fs:6:1}.${fs:7:1}" "/dev/md/${fs}_${NDEVICES}" --level="${fs:13}" --raid-devices="$NDEVICES" $LODEVICES + MOUNTDEVICE="/dev/md/${fs}_${NDEVICES}" + MOUNTFS=ext2 + "mkfs.ext2" -L "$FSLABEL" -q "${MOUNTDEVICE}" ;; + x"lvm"*) +- for ((i=0;i /dev/null; ++ cp "${CFILESRC}" "$MNTPOINTRW/$OSDIR/${CFILE}" &> /dev/null; + else +- for ((i=0;i<$CFILESN;i++)); do +- cp "${CFILESSRC[i]}" "$MNTPOINTRW/$OSDIR/${CFILES[i]}"; +- done ++ ++ cp "${CFILESRC}" "$MNTPOINTRW/$OSDIR/${CFILE}"; ++ + fi + + if [ x$NOSYMLINK != xy ]; then +@@ -968,48 +1010,48 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + + sleep 2 + ;; + x"tarfs") +- (cd "$MASTER"; tar cf "${FSIMAGES[0]}" .) ;; ++ (cd "$MASTER"; tar cf "${FSIMAGEP}0.img" .) ;; + x"cpio_"*) +- (cd "$MASTER"; find . | cpio -o -H "${fs/cpio_/}" > "${FSIMAGES[0]}" ) ;; ++ (cd "$MASTER"; find . | cpio -o -H "$(echo ${fs} | sed 's@^cpio_@@')" > "${FSIMAGEP}0.img" ) ;; + x"ziso9660") + FSUUID=$(date -u +%Y-%m-%d-%H-%M-%S-00); +- xorriso -compliance rec_mtime -set_filter_r --zisofs -- -zisofs default -as mkisofs -iso-level 3 -graft-points -R -J -joliet-long -V "$FSLABEL" --modification-date=$(echo ${FSUUID} | sed 's/-//g;') -o "${FSIMAGES[0]}" -- -set_filter_r --zisofs -- -zisofs default -add /="$MASTER" ;; ++ xorriso -compliance rec_mtime -set_filter_r --zisofs -- -zisofs default -as mkisofs -iso-level 3 -graft-points -R -J -joliet-long -V "$FSLABEL" --modification-date=$(echo ${FSUUID} | sed 's/-//g;') -o "${FSIMAGEP}0.img" -- -set_filter_r --zisofs -- -zisofs default -add /="$MASTER" ;; + x"iso9660") + FSUUID=$(date -u +%Y-%m-%d-%H-%M-%S-00); +- xorriso --rockridge off -compliance rec_mtime -as mkisofs -iso-level 3 -graft-points -V "$FSLABEL" --modification-date=$(echo ${FSUUID} | sed 's/-//g;') -o "${FSIMAGES[0]}" /="$MASTER" ;; ++ xorriso --rockridge off -compliance rec_mtime -as mkisofs -iso-level 3 -graft-points -V "$FSLABEL" --modification-date=$(echo ${FSUUID} | sed 's/-//g;') -o "${FSIMAGEP}0.img" /="$MASTER" ;; + x"joliet") + FSUUID=$(date -u +%Y-%m-%d-%H-%M-%S-00); +- xorriso --rockridge off -compliance rec_mtime -as mkisofs -iso-level 3 -graft-points -J -joliet-long -V "$FSLABEL" --modification-date=$(echo ${FSUUID} | sed 's/-//g;') -o "${FSIMAGES[0]}" /="$MASTER" ;; ++ xorriso --rockridge off -compliance rec_mtime -as mkisofs -iso-level 3 -graft-points -J -joliet-long -V "$FSLABEL" --modification-date=$(echo ${FSUUID} | sed 's/-//g;') -o "${FSIMAGEP}0.img" /="$MASTER" ;; + x"rockridge") + FSUUID=$(date -u +%Y-%m-%d-%H-%M-%S-00); +- xorriso --rockridge on -compliance rec_mtime -as mkisofs -iso-level 3 -graft-points -V "$FSLABEL" --modification-date=$(echo ${FSUUID} | sed 's/-//g;') -o "${FSIMAGES[0]}" /="$MASTER" ;; ++ xorriso --rockridge on -compliance rec_mtime -as mkisofs -iso-level 3 -graft-points -V "$FSLABEL" --modification-date=$(echo ${FSUUID} | sed 's/-//g;') -o "${FSIMAGEP}0.img" /="$MASTER" ;; + x"rockridge_joliet") + FSUUID=$(date -u +%Y-%m-%d-%H-%M-%S-00); +- xorriso --rockridge on -compliance rec_mtime -as mkisofs -iso-level 3 -graft-points -J -joliet-long -V "$FSLABEL" --modification-date=$(echo ${FSUUID} | sed 's/-//g;') -o "${FSIMAGES[0]}" /="$MASTER" ;; ++ xorriso --rockridge on -compliance rec_mtime -as mkisofs -iso-level 3 -graft-points -J -joliet-long -V "$FSLABEL" --modification-date=$(echo ${FSUUID} | sed 's/-//g;') -o "${FSIMAGEP}0.img" /="$MASTER" ;; + x"iso9660_1999") + FSUUID=$(date -u +%Y-%m-%d-%H-%M-%S-00); +- xorriso --rockridge off -compliance rec_mtime -as mkisofs -iso-level 4 -graft-points -V "$FSLABEL" --modification-date=$(echo ${FSUUID} | sed 's/-//g;') -o "${FSIMAGES[0]}" /="$MASTER" ;; ++ xorriso --rockridge off -compliance rec_mtime -as mkisofs -iso-level 4 -graft-points -V "$FSLABEL" --modification-date=$(echo ${FSUUID} | sed 's/-//g;') -o "${FSIMAGEP}0.img" /="$MASTER" ;; + x"joliet_1999") + FSUUID=$(date -u +%Y-%m-%d-%H-%M-%S-00); +- xorriso --rockridge off -compliance rec_mtime -as mkisofs -iso-level 4 -graft-points -J -joliet-long -V "$FSLABEL" --modification-date=$(echo ${FSUUID} | sed 's/-//g;') -o "${FSIMAGES[0]}" /="$MASTER" ;; ++ xorriso --rockridge off -compliance rec_mtime -as mkisofs -iso-level 4 -graft-points -J -joliet-long -V "$FSLABEL" --modification-date=$(echo ${FSUUID} | sed 's/-//g;') -o "${FSIMAGEP}0.img" /="$MASTER" ;; + x"rockridge_1999") + FSUUID=$(date -u +%Y-%m-%d-%H-%M-%S-00); +- xorriso --rockridge on -compliance rec_mtime -as mkisofs -iso-level 4 -graft-points -V "$FSLABEL" --modification-date=$(echo ${FSUUID} | sed 's/-//g;') -o "${FSIMAGES[0]}" /="$MASTER" ;; ++ xorriso --rockridge on -compliance rec_mtime -as mkisofs -iso-level 4 -graft-points -V "$FSLABEL" --modification-date=$(echo ${FSUUID} | sed 's/-//g;') -o "${FSIMAGEP}0.img" /="$MASTER" ;; + x"rockridge_joliet_1999") + FSUUID=$(date -u +%Y-%m-%d-%H-%M-%S-00); +- xorriso --rockridge on -compliance rec_mtime -as mkisofs -iso-level 4 -graft-points -J -joliet-long -V "$FSLABEL" --modification-date=$(echo ${FSUUID} | sed 's/-//g;') -o "${FSIMAGES[0]}" /="$MASTER" ;; ++ xorriso --rockridge on -compliance rec_mtime -as mkisofs -iso-level 4 -graft-points -J -joliet-long -V "$FSLABEL" --modification-date=$(echo ${FSUUID} | sed 's/-//g;') -o "${FSIMAGEP}0.img" /="$MASTER" ;; + x"romfs") +- genromfs -V "$FSLABEL" -f "${FSIMAGES[0]}" -d "$MASTER" ;; ++ genromfs -V "$FSLABEL" -f "${FSIMAGEP}0.img" -d "$MASTER" ;; + xsquash4_*) +- echo mksquashfs "$MASTER" "${FSIMAGES[0]}" -always-use-fragments -comp "${fs/squash4_/}" -b $BLKSIZE +- mksquashfs "$MASTER" "${FSIMAGES[0]}" -always-use-fragments -comp "${fs/squash4_/}" -b $BLKSIZE ;; ++ echo mksquashfs "$MASTER" "${FSIMAGEP}0.img" -always-use-fragments -comp "${fs/squash4_/}" -b $BLKSIZE ++ mksquashfs "$MASTER" "${FSIMAGEP}0.img" -always-use-fragments -comp "${fs/squash4_/}" -b $BLKSIZE ;; + x"bfs") + sleep 1 + fusermount -u "$MNTPOINTRW" + ;; + xlvm*) + sleep 1 +- for ((try=0;try < 20; try++)); do ++ for try in $(range 0 20 1); do + if umount "$MNTPOINTRW" ; then + break; + fi +@@ -1021,7 +1063,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + + ;; + xmdraid*) + sleep 1 +- for ((try=0;try < 20; try++)); do ++ for try in $(range 0 20 1); do + if umount "$MNTPOINTRW" ; then + break; + fi +@@ -1033,7 +1075,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + + ;; + *) + sleep 1 +- for ((try=0;try < 20; try++)); do ++ for try in $(range 0 20 1); do + if umount "$MNTPOINTRW" ; then + break; + fi +@@ -1066,7 +1108,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + + sleep 1 + mount -t "$MOUNTFS" "${MOUNTDEVICE}" "$MNTPOINTRO" -o ${MOUNTOPTS}${SELINUXOPTS}ro ;; + xmdraid*) +- mdadm --assemble /dev/md/"${fs}_$NDEVICES" "${LODEVICES[@]}" ++ mdadm --assemble /dev/md/"${fs}_$NDEVICES" $LODEVICES + sleep 1 + mount -t "$MOUNTFS" "${MOUNTDEVICE}" "$MNTPOINTRO" -o ${MOUNTOPTS}${SELINUXOPTS}ro ;; + *) +@@ -1085,7 +1127,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + + else + echo LIST FAIL + echo "$LSROUT" +- TZ=UTC ls --time-style=+%Y%m%d%H%M%S.%N -l "$MNTPOINTRO" ++ TZ=UTC ls -l "$MNTPOINTRO" + exit 1 + fi + +@@ -1094,7 +1136,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + + else + echo NLIST FAIL + echo "$LSROUT" +- TZ=UTC ls --time-style=+%Y%m%d%H%M%S.%N -lA "$MNTPOINTRO" ++ TZ=UTC ls -lA "$MNTPOINTRO" + exit 1 + fi + +@@ -1103,7 +1145,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + + else + echo ILIST FAIL + echo "$LSROUT" +- TZ=UTC ls --time-style=+%Y%m%d%H%M%S.%N -l "$MNTPOINTRO" ++ TZ=UTC ls -l "$MNTPOINTRO" + exit 1 + fi + +@@ -1112,7 +1154,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + + else + echo LONG LIST FAIL + echo "$LSROUT" +- TZ=UTC ls --time-style=+%Y%m%d%H%M%S.%N -l "$MNTPOINTRO" ++ TZ=UTC ls -l "$MNTPOINTRO" + exit 1 + fi + +@@ -1123,7 +1165,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + + else + echo TIME FAIL + echo "$LSROUT" +- TZ=UTC ls --time-style=+%Y%m%d%H%M%S.%N -l "$MNTPOINTRO" ++ TZ=UTC ls -l "$MNTPOINTRO" + exit 1 + fi + +@@ -1133,7 +1175,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + + else + echo LONG TIME FAIL + echo "$LSROUT" +- TZ=UTC ls --time-style=+%Y%m%d%H%M%S.%N -l "$MNTPOINTRO" ++ TZ=UTC ls -l "$MNTPOINTRO" + exit 1 + fi + fi +@@ -1149,7 +1191,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + + else + echo DOT IN ROOTDIR FAIL + echo "$LSROUT" +- TZ=UTC ls --time-style=+%Y%m%d%H%M%S.%N -l "$MNTPOINTRO" ++ TZ=UTC ls -l "$MNTPOINTRO" + exit 1 + fi + +@@ -1163,7 +1205,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + + else + echo DOTDOT IN ROOTDIR FAIL + echo "$LSROUT" +- TZ=UTC ls --time-style=+%Y%m%d%H%M%S.%N -l "$MNTPOINTRO" ++ TZ=UTC ls -l "$MNTPOINTRO" + exit 1 + fi + ;; +@@ -1180,7 +1222,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + + else + echo SLIST FAIL + echo "$LSROUT" +- TZ=UTC ls --time-style=+%Y%m%d%H%M%S.%N -l "$MNTPOINTRO/sdir" ++ TZ=UTC ls -l "$MNTPOINTRO/sdir" + exit 1 + fi + +@@ -1195,7 +1237,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + + else + echo PLIST FAIL + echo "$LSROUT" +- TZ=UTC ls --time-style=+%Y%m%d%H%M%S.%N -l "$MNTPOINTRO/$PDIR" ++ TZ=UTC ls -l "$MNTPOINTRO/$PDIR" + exit 1 + fi + +@@ -1210,7 +1252,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + + else + echo DOT IN SUBDIR FAIL + echo "$LSROUT" +- TZ=UTC ls --time-style=+%Y%m%d%H%M%S.%N -l "$MNTPOINTRO/$OSDIR/sdir" ++ TZ=UTC ls -l "$MNTPOINTRO/$OSDIR/sdir" + exit 1 + fi + +@@ -1225,7 +1267,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + + else + echo DOTDOT IN SUBDIR FAIL + echo "$LSROUT" +- TZ=UTC ls --time-style=+%Y%m%d%H%M%S.%N -l "$MNTPOINTRO/$OSDIR/ssdir" ++ TZ=UTC ls -l "$MNTPOINTRO/$OSDIR/ssdir" + exit 1 + fi + +@@ -1245,8 +1287,8 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + + case x"$fs" in + x"iso9660" | x"ziso9660" | xrockridge | xjoliet | xrockridge_joliet | x"iso9660_1999" | xrockridge_1999 | xjoliet_1999 | xrockridge_joliet_1999) ;; + x"zfs"*) +- for ((i=0;i /dev/null || echo "$LSOUT" | grep -F 'Last modification time '"$FSTIMEM1" > /dev/null || echo "$LSOUT" | grep -F 'Last modification time '"$FSTIMEM2" || echo "$LSOUT" | grep -F 'Last modification time '"$FSTIMEM3" > /dev/null; then +- : +- else +- echo FSTIME FAIL +- echo "$FSTIME" +- echo "$LSOUT" +- exit 1 ++ if echo "$LSOUT" | grep -F 'Last modification time '"$FSTIME" > /dev/null || echo "$LSOUT" | grep -F 'Last modification time '"$FSTIMEM1" > /dev/null || echo "$LSOUT" | grep -F 'Last modification time '"$FSTIMEM2" || echo "$LSOUT" | grep -F 'Last modification time '"$FSTIMEM3" > /dev/null; then ++ : ++ else ++ echo FSTIME FAIL ++ echo "$FSTIME" ++ echo "$LSOUT" ++ exit 1 ++ fi + fi + + if [ x$NOHARDLINK != xy ]; then +@@ -1410,11 +1452,9 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + + exit 1 + fi + ok=true +- for ((i=0;i<$CFILESN;i++)); do +- if ! run_grubfstest cmp "$GRUBDIR/${CFILES[i]}" "$MNTPOINTRO/$OSDIR/${CFILES[i]}" ; then +- ok=false; +- fi +- done ++ if ! run_grubfstest cmp "$GRUBDIR/${CFILE}" "$MNTPOINTRO/$OSDIR/${CFILE}" ; then ++ ok=false; ++ fi + if test x$ok = xtrue; then + : + else +@@ -1503,15 +1543,17 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + + sleep 1 + ;; + esac +- for ((i=0; i < NDEVICES; i++)); do +- case x"$fs" in +- x"tarfs" | x"cpio_"* | x"iso9660" | xrockridge | xjoliet | xrockridge_joliet | x"ziso9660" | x"romfs" | x"squash4_"* | x"iso9660_1999" | xrockridge_1999 | xjoliet_1999 | xrockridge_joliet_1999) ;; +- *) +- while ! losetup -d "${LODEVICES[i]}"; do ++ case x"$fs" in ++ x"tarfs" | x"cpio_"* | x"iso9660" | xrockridge | xjoliet | xrockridge_joliet | x"ziso9660" | x"romfs" | x"squash4_"* | x"iso9660_1999" | xrockridge_1999 | xjoliet_1999 | xrockridge_joliet_1999) ;; ++ *) ++ for lodev in $LODEVICES; do ++ while ! losetup -d "$lodev"; do + sleep 1 +- done;; +- esac +- rm "${FSIMAGES[i]}" ++ done ++ done;; ++ esac ++ for i in $(range 0 $((NDEVICES-1)) 1); do ++ rm "$FSIMAGEP${i}.img" + done + if [ x"$fs" = x"zfs" ]; then + rmdir "$MNTPOINTRW"/"grub fs" || true +diff --git a/tests/util/grub-shell-tester.in b/tests/util/grub-shell-tester.in +index 5adce0a47fe3208e14bbbf4820685d67b43ef9bb..8a87109b15240de9d61f2ac02becfcb5300582f1 100644 +--- a/tests/util/grub-shell-tester.in ++++ b/tests/util/grub-shell-tester.in +@@ -1,4 +1,4 @@ +-#! /bin/sh ++#! @BUILD_SHEBANG@ + set -e + + # Compares GRUB script output with BASH output. +diff --git a/tests/util/grub-shell.in b/tests/util/grub-shell.in +index 814f36c6bd2438b7f9c59f5f4a9777e95b9e38db..d690d6734efb82109f7635c4688b6fc7417a5751 100644 +--- a/tests/util/grub-shell.in ++++ b/tests/util/grub-shell.in +@@ -1,4 +1,4 @@ +-#! /bin/sh ++#! @BUILD_SHEBANG@ + set -e + + # Run GRUB script in a Qemu instance +diff --git a/tests/xfs_test.in b/tests/xfs_test.in +index 3807e2e5c77e244f8b2f0d43ec28b86b3f2f9e9b..03a3513595dc719cd72b4d9b7198f22b338cb588 100644 +--- a/tests/xfs_test.in ++++ b/tests/xfs_test.in +@@ -1,4 +1,4 @@ +-#!/bin/sh ++#!@BUILD_SHEBANG@ + + set -e + +diff --git a/tests/xzcompress_test.in b/tests/xzcompress_test.in +index b2bd999ec071c24205533e50cf51f46ec59a2218..03bfb5e951dd8dfb7ccb15fb6a31dd4aea639df9 100644 +--- a/tests/xzcompress_test.in ++++ b/tests/xzcompress_test.in +@@ -1,4 +1,4 @@ +-#! /bin/sh ++#! @BUILD_SHEBANG@ + # Copyright (C) 2013 Free Software Foundation, Inc. + # + # GRUB is free software: you can redistribute it and/or modify +diff --git a/tests/zfs_test.in b/tests/zfs_test.in +index 047120e47a0e042f0540d6762666edf4cb0b37fb..eee62c10d704ec42b090eba5ac16b4966ff760ad 100644 +--- a/tests/zfs_test.in ++++ b/tests/zfs_test.in +@@ -1,4 +1,4 @@ +-#!/bin/sh ++#!@BUILD_SHEBANG@ + + set -e + +diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in +index c48af948d6ecdf672aa341f713912ba15de8f27d..c002fc9f9465c08945b5ab7326033b538c0184e6 100644 +--- a/util/grub.d/20_linux_xen.in ++++ b/util/grub.d/20_linux_xen.in +@@ -122,16 +122,16 @@ linux_entry () + else + xen_rm_opts="no-real-mode edd=off" + fi +- multiboot ${rel_xen_dirname}/${xen_basename} placeholder ${xen_args} \${xen_rm_opts} ++ ${xen_loader} ${rel_xen_dirname}/${xen_basename} placeholder ${xen_args} \${xen_rm_opts} + echo '$(echo "$lmessage" | grub_quote)' +- module ${rel_dirname}/${basename} placeholder root=${linux_root_device_thisversion} ro ${args} ++ ${module_loader} ${rel_dirname}/${basename} placeholder root=${linux_root_device_thisversion} ro ${args} + EOF + if test -n "${initrd}" ; then + # TRANSLATORS: ramdisk isn't identifier. Should be translated. + message="$(gettext_printf "Loading initial ramdisk ...")" + sed "s/^/$submenu_indentation/" << EOF + echo '$(echo "$message" | grub_quote)' +- module --nounzip ${rel_dirname}/${initrd} ++ ${module_loader} --nounzip ${rel_dirname}/${initrd} + EOF + fi + sed "s/^/$submenu_indentation/" << EOF +@@ -206,6 +206,14 @@ while [ "x${xen_list}" != "x" ] ; do + if [ "x$is_top_level" != xtrue ]; then + echo " submenu '$(gettext_printf "Xen hypervisor, version %s" "${xen_version}" | grub_quote)' \$menuentry_id_option 'xen-hypervisor-$xen_version-$boot_device_id' {" + fi ++ $grub_file --is-arm64-efi $current_xen ++ if [ $? -ne 0 ]; then ++ xen_loader="multiboot" ++ module_loader="module" ++ else ++ xen_loader="xen_hypervisor" ++ module_loader="xen_module" ++ fi + while [ "x$list" != "x" ] ; do + linux=`version_find_latest $list` + gettext_printf "Found linux image: %s\n" "$linux" >&2 From ad5801043f956d80c606751f69c4552dc05fb746 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 31 Jul 2018 13:56:12 -0400 Subject: [PATCH 37/45] Update to newer patchset from github with more BLS fixes. Signed-off-by: Peter Jones --- 0001-Bump-version-to-2.03.patch | 227 ---- ...re.patch => 0001-re-write-.gitignore.patch | 2 +- ...ient-architecture-CAS-reboot-support.patch | 2 +- 0002-Remove-bashisms-from-tests.patch | 130 --- ...nsole-display-attr-when-clear-screen.patch | 2 +- 0003-fs-tester-make-sh-compatible.patch | 743 ------------ ...video-support-for-IBM-power-machines.patch | 2 +- 0004-support-busybox-date.patch | 40 - ...retrieve-fstime-when-it-s-not-useful.patch | 69 -- ...when-generating-configuration-by-gru.patch | 2 +- ...6-Move-bash-completion-script-922997.patch | 2 +- 0006-Support-lseek64.patch | 51 - ...patch => 0007-Update-to-minilzo-2.08.patch | 2 +- 0007-Use-SHELL-rather-than-bin-sh.patch | 23 - ...o-include-entries-by-title-not-just-.patch | 2 +- 0008-po-Use-SHELL-rather-than-bin-sh.patch | 23 - ....patch => 0009-Add-GRUB_DISABLE_UUID.patch | 2 +- 0009-Add-termux-path-to-dict.patch | 22 - 0010-Fix-shebang-for-termux.patch | 681 ----------- ...=> 0010-Make-exit-take-a-return-code.patch | 2 +- 0011-Add-strtoull-test.patch | 25 - ...pot-as-binary-so-git-won-t-try-to-di.patch | 2 +- ...es-load-an-env-block-from-a-variable.patch | 2 +- ...x-behaviour-on-chars-between-9-and-a.patch | 65 -- 0013-Add-Virtual-LAN-support.patch | 346 ------ ...HCP-client-ID-and-UUID-options-added.patch | 2 +- ...out-to-mkimage_generate_elfXX-rather.patch | 165 --- ...-trim-arp-packets-with-abnormal-size.patch | 2 +- ...Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch | 2 +- ...r-arm-uboot-code-to-make-it-genereic.patch | 402 ------- ...UEFI-operating-systems-returned-by-o.patch | 2 +- ...-parts-that-are-platform-independent.patch | 341 ------ ...017-Migrate-PPC-from-Yaboot-to-Grub2.patch | 2 +- ...-Rename-uboot-halt.c-to-dummy-halt.c.patch | 29 - ...=> 0018-Add-fw_path-variable-revised.patch | 2 +- ...ame-uboot-datetime-to-dummy-datetime.patch | 55 - ...tch => 0019-Add-support-for-linuxefi.patch | 2 +- 0019-arm-coreboot-Start-new-port.patch | 824 ------------- ...upport-for-device-tree-based-drivers.patch | 853 -------------- ...xefi-and-initrdefi-where-appropriate.patch | 2 +- ...w-insmod-when-secure-boot-is-enabled.patch | 2 +- ...-coreboot-Support-for-vexpress-timer.patch | 70 -- ...-hex-hex-straight-through-unmolested.patch | 2 +- 0022-arm-coreboot-Export-FDT-routines.patch | 24 - ...023-Add-X-option-to-printf-functions.patch | 2 +- ...-Split-protocol-from-controller-code.patch | 1025 ----------------- ...for-specific-config-file-for-netboot.patch | 2 +- ...reboot-Support-keyboard-for-vexpress.patch | 246 ---- ...m_coreboot-Support-grub-mkstandalone.patch | 155 --- ...g-module-to-parse-Boot-Loader-Specif.patch | 2 +- ...6-Don-t-write-messages-to-the-screen.patch | 2 +- ...oreboot-Support-loading-linux-images.patch | 299 ----- ... => 0027-Don-t-print-GNU-GRUB-header.patch | 2 +- 0027-arm_coreboot-Support-DMA.patch | 289 ----- ...=> 0028-Don-t-add-to-highlighted-row.patch | 2 +- 0028-ehci-Split-core-code-from-PCI-part.patch | 568 --------- ...atch => 0029-Message-string-cleanups.patch | 2 +- 0029-arm_coreboot-Support-EHCI.patch | 120 -- ...ing-now-that-we-aren-t-displaying-it.patch | 2 +- ...n-FDT-nodes-with-compatible-property.patch | 22 - ...t-indentation-for-the-term-help-text.patch | 2 +- ...ty-to-send-receive-messages-on-paren.patch | 131 --- ...es.patch => 0032-Indent-menu-entries.patch | 2 +- 0032-rk3288_spi-Add-SPI-driver.patch | 162 --- ...ix-margins.patch => 0033-Fix-margins.patch | 2 +- ...eboot-Add-Chromebook-keyboard-driver.patch | 416 ------- 0034-Missing-parts-of-previous-commit.patch | 35 - ...-1-for-our-right-hand-margin-so-line.patch | 2 +- ...-Use-linux16-when-appropriate-880840.patch | 2 +- ...-cbmemc-to-support-updated-console-f.patch | 95 -- ...0036-Enable-pager-by-default.-985860.patch | 2 +- ...t_keyboard-Fix-falco-chromebook-case.patch | 86 -- ...-on-serial-so-don-t-tell-the-user-to.patch | 2 +- 0037-sparc64-Close-cdboot-ihandle.patch | 45 - ...n-t-say-GNU-Linux-in-generated-menus.patch | 2 +- ...-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch | 29 - ...-Don-t-draw-a-border-around-the-menu.patch | 2 +- ...p-option-support-in-xen_module-comma.patch | 52 - ...andard-margin-for-the-timeout-string.patch | 2 +- ...inux_xen.in-Add-xen_boot-command-sup.patch | 60 - ...rame-to-list-of-relocations-stripped.patch | 2 +- ...-introduction-of-Xen-boot-commands-i.patch | 90 -- ...rk-with-our-changes-for-linux16-and-.patch | 2 +- ...se-devspec-to-determine-the-OBP-path.patch | 50 - ...unt-ext2-3-4-filesystems-that-have-t.patch | 137 --- ...on-t-print-during-fdt-loading-method.patch | 2 +- ...spaces-when-we-re-doing-our-cmdline-.patch | 2 +- 0044-ehci-Fix-compilation-for-amd64.patch | 35 - ...password-to-boot-entries-generated-b.patch | 2 +- ...-compilation-for-ppc-sparc-and-arm64.patch | 24 - ...=> 0046-Don-t-emit-Booting-.-message.patch | 2 +- 0046-ehci-Fix-compilation-on-i386.patch | 31 - ...f-man-pages-with-slightly-nicer-ones.patch | 2 +- 0047-crypto-Fix-use-after-free.patch | 25 - 0048-arm-efi-Fix-compilation.patch | 38 - ...ix-when-fallback-searching-for-grub-.patch | 2 +- ...-before-grub.cfg-on-tftp-config-file.patch | 2 +- 0049-fdt-silence-clang-warning.patch | 23 - 0050-Fix-a-segfault-in-lsefi.patch | 30 - ...ert-function-to-support-NVMe-devices.patch | 2 +- ...M-Mustang-device-tree-for-hardware-t.patch | 2 +- ...t-typedef-and-use-grub_size_t-instea.patch | 55 - ...device-tree-from-the-grub-default-fi.patch | 2 +- ...x-reading-label-lvd.ident-is-dstring.patch | 51 - ...b-core-fs-udf.c-Add-support-for-UUID.patch | 188 --- ...P-protocol-for-exclusive-use-by-grub.patch | 2 +- ...P-protocol-for-exclusive-use-by-grub.patch | 2 +- ...orriso-presence-before-doing-anythin.patch | 46 - ...patch => 0055-Add-grub_util_readlink.patch | 2 +- 0055-Fail-if-xorriso-failed.patch | 41 - ...se-symlinks-including-those-across-d.patch | 2 +- ...efi-refactor-grub_efi_allocate_pages.patch | 117 -- ...CLASS-in-10_linux-from-etc-os-releas.patch | 2 +- 0057-Remove-grub_efi_allocate_pages.patch | 249 ---- ...t-ordering-for-.debug-and-rescue-ker.patch | 2 +- 0058-efi-move-fdt-helper-library.patch | 90 -- ...tch => 0059-Load-arm-with-SB-enabled.patch | 2 +- 0059-efi-Add-GRUB_PE32_MAGIC-definition.patch | 56 - ...0-Try-prefix-if-fw_path-doesn-t-work.patch | 2 +- ...inux-loader-improve-type-portability.patch | 112 -- ...-grub.cfg-netboot-selection-order-11.patch | 2 +- ...allocation-type-to-GRUB_EFI_LOADER_C.patch | 32 - ...-Package-Sort-for-grub2-mkconfig-112.patch | 2 +- ...RM_-definitions-when-handling-term-c.patch | 262 ----- ... => 0063-Handle-rssd-storage-devices.patch | 2 +- ...B_GZ-prefix-to-gzio-specific-defines.patch | 82 -- ...x16-initrd16-and-linuxefi-initrdefi-.patch | 2 +- ...fig-construct-titles-that-look-like-.patch | 2 +- ...ly-grub2-password-config-tool-985962.patch | 2 +- ...fig-construct-titles-that-look-like-.patch | 2 +- ...-configure.ac-and-grub-rpm-sort-play.patch | 2 +- ... 0069-tcp-add-window-scaling-support.patch | 2 +- ...net-retransmit-if-our-device-is-busy.patch | 2 +- ...out-actually-using-the-configured-ne.patch | 2 +- ...r-for-the-first-exclusive-reopen-of-.patch | 2 +- ...ue-when-reading-username-and-passwor.patch | 2 +- ...ub-password-will-not-be-read-1290803.patch | 2 +- ...ub-setpassword-documentation-1290799.patch | 2 +- ...le-issue-in-grub-setpassword-1294243.patch | 2 +- ...rsistent-RAM-and-unknown-possible-fu.patch | 2 +- ... 0078-efiemu-Fix-compilation-failure.patch | 2 +- ...P-protocol-for-exclusive-use-by-grub.patch | 2 +- ...arser.patch => 0080-Add-a-url-parser.patch | 2 +- ...net-and-bootp-add-support-for-dhcpv6.patch | 2 +- ...rnel-settings-and-use-it-in-10_linux.patch | 2 +- ...0083-Normalize-slashes-in-tftp-paths.patch | 2 +- ...h => 0084-Fix-malformed-tftp-packets.patch | 2 +- ...h => 0085-Fix-race-in-EFI-validation.patch | 2 +- ...1374141-fix-incorrect-mask-for-ppc64.patch | 2 +- ...art-of-chainloader-target-if-present.patch | 2 +- ...ecureboot-support-on-efi-chainloader.patch | 2 +- ...loaders-that-link-in-efi-mode-honor-.patch | 2 +- ... 0090-Make-grub_fatal-also-backtrace.patch | 2 +- ...d.patch => 0091-Rework-linux-command.patch | 2 +- ...patch => 0092-Rework-linux16-command.patch | 2 +- ...> 0093-Make-grub-editenv-build-again.patch | 2 +- ...ix-up-some-man-pages-rpmdiff-noticed.patch | 2 +- ...-work-some-intricacies-of-PE-loading.patch | 2 +- ...-of-efi-chainload-so-non-sb-cases-wo.patch | 2 +- ...-double-free-on-verification-failure.patch | 2 +- ...machine-type-test-in-30_os-prober.in.patch | 2 +- ...fix-wrong-sanity-check-in-relocate_c.patch | 2 +- ...truncate-overlong-relocation-section.patch | 2 +- ...atch => 0101-linuxefi-minor-cleanups.patch | 2 +- ...rch-64-on-32-boot-in-linuxefi-loader.patch | 2 +- ...ch => 0103-Fix-up-linux-params-usage.patch | 2 +- ...=> 0104-Make-exit-take-a-return-code.patch | 2 +- ...fdt-has-address-cells-and-size-cells.patch | 2 +- ...rintf-in-the-secure-boot-verify-code.patch | 2 +- ...fo-pages-say-grub2-where-appropriate.patch | 2 +- ...more-debug-info-in-our-module-loader.patch | 2 +- ...-chainloader-entries-don-t-try-any-x.patch | 2 +- ...-Add-ability-to-boot-from-subvolumes.patch | 2 +- ...port-btrfs_subvol-and-btrfs_subvolid.patch | 2 +- ...> 0112-grub2-btrfs-03-follow_default.patch | 2 +- ...=> 0113-grub2-btrfs-04-grub2-install.patch | 2 +- ...> 0114-grub2-btrfs-05-grub2-mkconfig.patch | 2 +- ... => 0115-grub2-btrfs-06-subvol-mount.patch | 2 +- ...ootable-Snapshot-submenu-in-grub.cfg.patch | 2 +- ...subvol-name-scheme-to-support-old-sn.patch | 2 +- ...-correctly-with-btrfs-snapshots-bsc-.patch | 2 +- ...ocate_pool-and-grub_efi_free_pool-wr.patch | 2 +- ...fi_.-memory-helpers-where-reasonable.patch | 2 +- ...1-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch | 2 +- ...c-sized-arrays-since-we-don-t-build-.patch | 2 +- ...nst.patch => 0123-don-t-ignore-const.patch | 2 +- ...=> 0124-don-t-use-int-for-efi-status.patch | 2 +- ...INIT-declare-its-function-prototypes.patch | 2 +- ...p-some-errors-in-the-linuxefi-loader.patch | 2 +- ...127-editenv-handle-relative-symlinks.patch | 2 +- ...e-libgrub.pp-depend-on-config-util.h.patch | 2 +- ...-efi-as-HFS-on-ppc-machines-in-grub-.patch | 2 +- ...20_linux_xen.in-Add-xen_boot-command.patch | 2 +- ...-figure-out-whether-multiboot2-shoul.patch | 2 +- ...d-xen-or-multiboot-2-modules-as-need.patch | 2 +- ...lt-tsc-calibration-method-to-pmtimer.patch | 2 +- ...-calibration-not-take-51-seconds-to-.patch | 2 +- ...135-align-struct-efi_variable-better.patch | 2 +- ...=> 0136-Add-quicksort-implementation.patch | 2 +- ...nd-support-to-parse-BootLoaderSpec-c.patch | 2 +- ...138-Add-BLS-support-to-grub-mkconfig.patch | 2 +- ...d-grub_exit-definition-for-grub-emu-.patch | 2 +- ...-backtrace-on-grub_abort-for-grub-em.patch | 2 +- ...-blscfg-command-for-the-emu-platform.patch | 2 +- ...nux-and-initrd-commands-for-grub-emu.patch | 2 +- ...3-Fix-the-efidir-in-grub-setpassword.patch | 2 +- ...h => 0144-Add-grub2-switch-to-blscfg.patch | 2 +- ...patch => 0145-Add-grub_debug_enabled.patch | 2 +- ...patch => 0146-make-better-backtraces.patch | 2 +- ...w-our-startup-message-if-debug-is-se.patch | 2 +- ...-some-minor-include-path-weirdnesses.patch | 2 +- ...it-possible-to-enabled-build-id-sha1.patch | 2 +- ...f-grub_dprintf-without-the-file-line.patch | 2 +- ...dprintf-that-tells-us-load-addresses.patch | 2 +- ...scan-different-BLS-directories-on-EF.patch | 2 +- ...pport.patch => 0153-Core-TPM-support.patch | 2 +- ....patch => 0154-Measure-kernel-initrd.patch | 2 +- ...ch => 0155-Add-BIOS-boot-measurement.patch | 2 +- ...re-kernel-and-initrd-on-BIOS-systems.patch | 2 +- ... 0157-Measure-the-kernel-commandline.patch | 2 +- ...mands.patch => 0158-Measure-commands.patch | 2 +- ...Measure-multiboot-images-and-modules.patch | 2 +- ...=> 0160-Fix-boot-when-there-s-no-TPM.patch | 2 +- ...atch => 0161-Rework-TPM-measurements.patch | 2 +- ...x.patch => 0162-Fix-event-log-prefix.patch | 2 +- ...ot-menu-entry-as-default-when-using-.patch | 2 +- ...-when-compiling-for-platforms-other-.patch | 2 +- ...h => 0165-Make-TPM-errors-less-fatal.patch | 2 +- ...cfg-handle-multiple-initramfs-images.patch | 2 +- ...switch-to-blscfg-on-non-EFI-machines.patch | 2 +- ...LS-Use-etcdefaultgrub-instead-of-etc.patch | 2 +- ...ons-to-grub2-switch-to-blscfg-man-pa.patch | 2 +- ...h-to-blscfg-to-generate-debug-BLS-wh.patch | 2 +- ...h-to-blscfg-to-generate-BLS-fragment.patch | 2 +- ...query-dev-mounted-in-boot-efi-as-boo.patch | 2 +- ...ath-when-searching-kernels-images-if.patch | 2 +- ...field-to-compare-entries-if-id-field.patch | 2 +- ...d-to-BLS-generated-by-grub2-switch-t.patch | 2 +- ...tch => 0176-Fixup-for-newer-compiler.patch | 2 +- ...-export-the-start-and-_start-symbols.patch | 2 +- ...plify-BLS-entry-key-val-pairs-lookup.patch | 2 +- ...h-to-the-kernel-and-initrds-BLS-fiel.patch | 2 +- ...p-leading-spaces-on-BLS-field-values.patch | 2 +- ...tch => 0181-Fixup-for-newer-compiler.patch | 2 +- ..._log_extend_event-function-prototype.patch | 2 +- ...ch => 0183-TPM-Fix-compiler-warnings.patch | 2 +- ...lscfg.in-get-rid-of-a-bunch-of-bashi.patch | 2 +- ...lscfg.in-Better-boot-prefix-checking.patch | 2 +- ...entries-as-BLS-directory-path-also-o.patch | 2 +- ...-filename-as-menu-entry-id-and-for-c.patch | 2 +- ...witch-to-blscfg-boot-prefix-handling.patch | 2 +- 0189-blscfg-remove-unused-typedef.patch | 29 + ...-dynamically-allocate-default_blsdir.patch | 45 + ...fg-sort-BLS-entries-by-version-field.patch | 58 + ...-remove-NULL-guards-around-grub_free.patch | 48 + ...g-fix-filename-in-no-linux-key-error.patch | 47 + ...blscfg-don-t-leak-bls_entry.filename.patch | 27 + ...lscfg-fix-compilation-on-EFI-and-EMU.patch | 34 + ...-blscfg-and-loadenv-source-file-list.patch | 39 + ...f-the-linuxefi-linux16-linux-distinc.patch | 56 + ...lscfg-Only-fix-boot-prefix-for-non-g.patch | 48 + ...e-BLS-options-field-instead-of-showi.patch | 130 +++ ...to-search-BLS-snippets-in-boot-loade.patch | 59 + ...empt-to-sort-by-version-if-not-prese.patch | 82 ++ ...gic-to-read-the-grubenv-file-and-set.patch | 292 +++++ ...rt-compat-command-in-this-tree-as-we.patch | 39 + 0204-Fix-an-8-year-old-typo.patch | 23 + grub.patches | 455 ++++---- 268 files changed, 1448 insertions(+), 11346 deletions(-) delete mode 100644 0001-Bump-version-to-2.03.patch rename 0064-re-write-.gitignore.patch => 0001-re-write-.gitignore.patch (99%) rename 0065-IBM-client-architecture-CAS-reboot-support.patch => 0002-IBM-client-architecture-CAS-reboot-support.patch (98%) delete mode 100644 0002-Remove-bashisms-from-tests.patch rename 0066-for-ppc-reset-console-display-attr-when-clear-screen.patch => 0003-for-ppc-reset-console-display-attr-when-clear-screen.patch (95%) delete mode 100644 0003-fs-tester-make-sh-compatible.patch rename 0067-Disable-GRUB-video-support-for-IBM-power-machines.patch => 0004-Disable-GRUB-video-support-for-IBM-power-machines.patch (97%) delete mode 100644 0004-support-busybox-date.patch delete mode 100644 0005-Don-t-retrieve-fstime-when-it-s-not-useful.patch rename 0068-Honor-a-symlink-when-generating-configuration-by-gru.patch => 0005-Honor-a-symlink-when-generating-configuration-by-gru.patch (92%) rename 0069-Move-bash-completion-script-922997.patch => 0006-Move-bash-completion-script-922997.patch (96%) delete mode 100644 0006-Support-lseek64.patch rename 0070-Update-to-minilzo-2.08.patch => 0007-Update-to-minilzo-2.08.patch (99%) delete mode 100644 0007-Use-SHELL-rather-than-bin-sh.patch rename 0071-Allow-fallback-to-include-entries-by-title-not-just-.patch => 0008-Allow-fallback-to-include-entries-by-title-not-just-.patch (98%) delete mode 100644 0008-po-Use-SHELL-rather-than-bin-sh.patch rename 0072-Add-GRUB_DISABLE_UUID.patch => 0009-Add-GRUB_DISABLE_UUID.patch (98%) delete mode 100644 0009-Add-termux-path-to-dict.patch delete mode 100644 0010-Fix-shebang-for-termux.patch rename 0073-Make-exit-take-a-return-code.patch => 0010-Make-exit-take-a-return-code.patch (99%) delete mode 100644 0011-Add-strtoull-test.patch rename 0074-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch => 0011-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch (88%) rename 0075-Make-efi-machines-load-an-env-block-from-a-variable.patch => 0012-Make-efi-machines-load-an-env-block-from-a-variable.patch (97%) delete mode 100644 0012-strtoull-Fix-behaviour-on-chars-between-9-and-a.patch delete mode 100644 0013-Add-Virtual-LAN-support.patch rename 0076-DHCP-client-ID-and-UUID-options-added.patch => 0013-DHCP-client-ID-and-UUID-options-added.patch (98%) delete mode 100644 0014-mkimage-Pass-layout-to-mkimage_generate_elfXX-rather.patch rename 0077-trim-arp-packets-with-abnormal-size.patch => 0014-trim-arp-packets-with-abnormal-size.patch (94%) rename 0078-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch => 0015-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch (95%) delete mode 100644 0015-Refactor-arm-uboot-code-to-make-it-genereic.patch rename 0079-Add-support-for-UEFI-operating-systems-returned-by-o.patch => 0016-Add-support-for-UEFI-operating-systems-returned-by-o.patch (95%) delete mode 100644 0016-coreboot-Split-parts-that-are-platform-independent.patch rename 0080-Migrate-PPC-from-Yaboot-to-Grub2.patch => 0017-Migrate-PPC-from-Yaboot-to-Grub2.patch (98%) delete mode 100644 0017-Rename-uboot-halt.c-to-dummy-halt.c.patch rename 0081-Add-fw_path-variable-revised.patch => 0018-Add-fw_path-variable-revised.patch (97%) delete mode 100644 0018-Rename-uboot-datetime-to-dummy-datetime.patch rename 0082-Add-support-for-linuxefi.patch => 0019-Add-support-for-linuxefi.patch (99%) delete mode 100644 0019-arm-coreboot-Start-new-port.patch delete mode 100644 0020-Add-support-for-device-tree-based-drivers.patch rename 0083-Use-linuxefi-and-initrdefi-where-appropriate.patch => 0020-Use-linuxefi-and-initrdefi-where-appropriate.patch (96%) rename 0084-Don-t-allow-insmod-when-secure-boot-is-enabled.patch => 0021-Don-t-allow-insmod-when-secure-boot-is-enabled.patch (98%) delete mode 100644 0021-arm-coreboot-Support-for-vexpress-timer.patch rename 0085-Pass-x-hex-hex-straight-through-unmolested.patch => 0022-Pass-x-hex-hex-straight-through-unmolested.patch (98%) delete mode 100644 0022-arm-coreboot-Export-FDT-routines.patch rename 0086-Add-X-option-to-printf-functions.patch => 0023-Add-X-option-to-printf-functions.patch (95%) delete mode 100644 0023-at_keyboard-Split-protocol-from-controller-code.patch rename 0087-Search-for-specific-config-file-for-netboot.patch => 0024-Search-for-specific-config-file-for-netboot.patch (98%) delete mode 100644 0024-arm_coreboot-Support-keyboard-for-vexpress.patch delete mode 100644 0025-arm_coreboot-Support-grub-mkstandalone.patch rename 0088-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch => 0025-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch (98%) rename 0089-Don-t-write-messages-to-the-screen.patch => 0026-Don-t-write-messages-to-the-screen.patch (98%) delete mode 100644 0026-arm_coreboot-Support-loading-linux-images.patch rename 0090-Don-t-print-GNU-GRUB-header.patch => 0027-Don-t-print-GNU-GRUB-header.patch (94%) delete mode 100644 0027-arm_coreboot-Support-DMA.patch rename 0091-Don-t-add-to-highlighted-row.patch => 0028-Don-t-add-to-highlighted-row.patch (92%) delete mode 100644 0028-ehci-Split-core-code-from-PCI-part.patch rename 0092-Message-string-cleanups.patch => 0029-Message-string-cleanups.patch (97%) delete mode 100644 0029-arm_coreboot-Support-EHCI.patch rename 0093-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch => 0030-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch (93%) delete mode 100644 0030-Fix-bug-on-FDT-nodes-with-compatible-property.patch rename 0094-Use-the-correct-indentation-for-the-term-help-text.patch => 0031-Use-the-correct-indentation-for-the-term-help-text.patch (93%) delete mode 100644 0031-fdtbus-Add-ability-to-send-receive-messages-on-paren.patch rename 0095-Indent-menu-entries.patch => 0032-Indent-menu-entries.patch (92%) delete mode 100644 0032-rk3288_spi-Add-SPI-driver.patch rename 0096-Fix-margins.patch => 0033-Fix-margins.patch (94%) delete mode 100644 0033-arm_coreboot-Add-Chromebook-keyboard-driver.patch delete mode 100644 0034-Missing-parts-of-previous-commit.patch rename 0097-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch => 0034-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch (92%) rename 0098-Use-linux16-when-appropriate-880840.patch => 0035-Use-linux16-when-appropriate-880840.patch (95%) delete mode 100644 0035-coreboot-Changed-cbmemc-to-support-updated-console-f.patch rename 0099-Enable-pager-by-default.-985860.patch => 0036-Enable-pager-by-default.-985860.patch (91%) delete mode 100644 0036-at_keyboard-Fix-falco-chromebook-case.patch rename 0100-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch => 0037-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch (93%) delete mode 100644 0037-sparc64-Close-cdboot-ihandle.patch rename 0101-Don-t-say-GNU-Linux-in-generated-menus.patch => 0038-Don-t-say-GNU-Linux-in-generated-menus.patch (95%) delete mode 100644 0038-arm64-xen_boot-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch rename 0102-Don-t-draw-a-border-around-the-menu.patch => 0039-Don-t-draw-a-border-around-the-menu.patch (97%) delete mode 100644 0039-arm64-Add-nounzip-option-support-in-xen_module-comma.patch rename 0103-Use-the-standard-margin-for-the-timeout-string.patch => 0040-Use-the-standard-margin-for-the-timeout-string.patch (95%) delete mode 100644 0040-util-grub.d-20_linux_xen.in-Add-xen_boot-command-sup.patch rename 0104-Add-.eh_frame-to-list-of-relocations-stripped.patch => 0041-Add-.eh_frame-to-list-of-relocations-stripped.patch (94%) delete mode 100644 0041-arm64-Update-the-introduction-of-Xen-boot-commands-i.patch rename 0105-Make-10_linux-work-with-our-changes-for-linux16-and-.patch => 0042-Make-10_linux-work-with-our-changes-for-linux16-and-.patch (97%) delete mode 100644 0042-sparc64-Don-t-use-devspec-to-determine-the-OBP-path.patch delete mode 100644 0043-Allow-GRUB-to-mount-ext2-3-4-filesystems-that-have-t.patch rename 0106-Don-t-print-during-fdt-loading-method.patch => 0043-Don-t-print-during-fdt-loading-method.patch (91%) rename 0107-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch => 0044-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch (93%) delete mode 100644 0044-ehci-Fix-compilation-for-amd64.patch rename 0108-Don-t-require-a-password-to-boot-entries-generated-b.patch => 0045-Don-t-require-a-password-to-boot-entries-generated-b.patch (93%) delete mode 100644 0045-cache-Fix-compilation-for-ppc-sparc-and-arm64.patch rename 0109-Don-t-emit-Booting-.-message.patch => 0046-Don-t-emit-Booting-.-message.patch (95%) delete mode 100644 0046-ehci-Fix-compilation-on-i386.patch rename 0110-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch => 0047-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch (99%) delete mode 100644 0047-crypto-Fix-use-after-free.patch delete mode 100644 0048-arm-efi-Fix-compilation.patch rename 0111-use-fw_path-prefix-when-fallback-searching-for-grub-.patch => 0048-use-fw_path-prefix-when-fallback-searching-for-grub-.patch (96%) rename 0112-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch => 0049-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch (97%) delete mode 100644 0049-fdt-silence-clang-warning.patch delete mode 100644 0050-Fix-a-segfault-in-lsefi.patch rename 0113-Fix-convert-function-to-support-NVMe-devices.patch => 0050-Fix-convert-function-to-support-NVMe-devices.patch (95%) rename 0114-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch => 0051-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch (92%) delete mode 100644 0051-zfs-remove-size_t-typedef-and-use-grub_size_t-instea.patch rename 0115-Use-the-default-device-tree-from-the-grub-default-fi.patch => 0052-Use-the-default-device-tree-from-the-grub-default-fi.patch (95%) delete mode 100644 0052-udf-Fix-reading-label-lvd.ident-is-dstring.patch delete mode 100644 0053-grub-core-fs-udf.c-Add-support-for-UUID.patch rename 0116-reopen-SNP-protocol-for-exclusive-use-by-grub.patch => 0053-reopen-SNP-protocol-for-exclusive-use-by-grub.patch (95%) rename 0117-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch => 0054-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch (96%) delete mode 100644 0054-mkrescue-Check-xorriso-presence-before-doing-anythin.patch rename 0118-Add-grub_util_readlink.patch => 0055-Add-grub_util_readlink.patch (99%) delete mode 100644 0055-Fail-if-xorriso-failed.patch rename 0119-Make-editenv-chase-symlinks-including-those-across-d.patch => 0056-Make-editenv-chase-symlinks-including-those-across-d.patch (97%) delete mode 100644 0056-efi-refactor-grub_efi_allocate_pages.patch rename 0120-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch => 0057-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch (94%) delete mode 100644 0057-Remove-grub_efi_allocate_pages.patch rename 0121-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch => 0058-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch (94%) delete mode 100644 0058-efi-move-fdt-helper-library.patch rename 0122-Load-arm-with-SB-enabled.patch => 0059-Load-arm-with-SB-enabled.patch (99%) delete mode 100644 0059-efi-Add-GRUB_PE32_MAGIC-definition.patch rename 0123-Try-prefix-if-fw_path-doesn-t-work.patch => 0060-Try-prefix-if-fw_path-doesn-t-work.patch (98%) delete mode 100644 0060-arm64-linux-loader-improve-type-portability.patch rename 0124-Update-info-with-grub.cfg-netboot-selection-order-11.patch => 0061-Update-info-with-grub.cfg-netboot-selection-order-11.patch (97%) delete mode 100644 0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch rename 0125-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch => 0062-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch (99%) delete mode 100644 0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch rename 0126-Handle-rssd-storage-devices.patch => 0063-Handle-rssd-storage-devices.patch (93%) delete mode 100644 0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch rename 0127-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch => 0064-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch (97%) rename 0128-Make-grub2-mkconfig-construct-titles-that-look-like-.patch => 0065-Make-grub2-mkconfig-construct-titles-that-look-like-.patch (97%) rename 0129-Add-friendly-grub2-password-config-tool-985962.patch => 0066-Add-friendly-grub2-password-config-tool-985962.patch (99%) rename 0130-Make-grub2-mkconfig-construct-titles-that-look-like-.patch => 0067-Make-grub2-mkconfig-construct-titles-that-look-like-.patch (96%) rename 0131-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch => 0068-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch (96%) rename 0132-tcp-add-window-scaling-support.patch => 0069-tcp-add-window-scaling-support.patch (97%) rename 0133-efinet-retransmit-if-our-device-is-busy.patch => 0070-efinet-retransmit-if-our-device-is-busy.patch (96%) rename 0134-Be-more-aggro-about-actually-using-the-configured-ne.patch => 0071-Be-more-aggro-about-actually-using-the-configured-ne.patch (99%) rename 0135-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch => 0072-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch (97%) rename 0136-Fix-security-issue-when-reading-username-and-passwor.patch => 0073-Fix-security-issue-when-reading-username-and-passwor.patch (95%) rename 0137-Warn-if-grub-password-will-not-be-read-1290803.patch => 0074-Warn-if-grub-password-will-not-be-read-1290803.patch (94%) rename 0138-Clean-up-grub-setpassword-documentation-1290799.patch => 0075-Clean-up-grub-setpassword-documentation-1290799.patch (96%) rename 0139-Fix-locale-issue-in-grub-setpassword-1294243.patch => 0076-Fix-locale-issue-in-grub-setpassword-1294243.patch (93%) rename 0140-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch => 0077-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch (93%) rename 0141-efiemu-Fix-compilation-failure.patch => 0078-efiemu-Fix-compilation-failure.patch (93%) rename 0142-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch => 0079-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch (97%) rename 0143-Add-a-url-parser.patch => 0080-Add-a-url-parser.patch (99%) rename 0144-efinet-and-bootp-add-support-for-dhcpv6.patch => 0081-efinet-and-bootp-add-support-for-dhcpv6.patch (99%) rename 0145-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch => 0082-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch (99%) rename 0146-Normalize-slashes-in-tftp-paths.patch => 0083-Normalize-slashes-in-tftp-paths.patch (96%) rename 0147-Fix-malformed-tftp-packets.patch => 0084-Fix-malformed-tftp-packets.patch (95%) rename 0148-Fix-race-in-EFI-validation.patch => 0085-Fix-race-in-EFI-validation.patch (97%) rename 0149-bz1374141-fix-incorrect-mask-for-ppc64.patch => 0086-bz1374141-fix-incorrect-mask-for-ppc64.patch (97%) rename 0150-Use-device-part-of-chainloader-target-if-present.patch => 0087-Use-device-part-of-chainloader-target-if-present.patch (94%) rename 0151-Add-secureboot-support-on-efi-chainloader.patch => 0088-Add-secureboot-support-on-efi-chainloader.patch (99%) rename 0152-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch => 0089-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch (99%) rename 0153-Make-grub_fatal-also-backtrace.patch => 0090-Make-grub_fatal-also-backtrace.patch (98%) rename 0154-Rework-linux-command.patch => 0091-Rework-linux-command.patch (98%) rename 0155-Rework-linux16-command.patch => 0092-Rework-linux16-command.patch (98%) rename 0156-Make-grub-editenv-build-again.patch => 0093-Make-grub-editenv-build-again.patch (93%) rename 0157-Fix-up-some-man-pages-rpmdiff-noticed.patch => 0094-Fix-up-some-man-pages-rpmdiff-noticed.patch (98%) rename 0158-Re-work-some-intricacies-of-PE-loading.patch => 0095-Re-work-some-intricacies-of-PE-loading.patch (99%) rename 0159-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch => 0096-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch (99%) rename 0160-linuxefi-fix-double-free-on-verification-failure.patch => 0097-linuxefi-fix-double-free-on-verification-failure.patch (91%) rename 0161-fix-machine-type-test-in-30_os-prober.in.patch => 0098-fix-machine-type-test-in-30_os-prober.in.patch (90%) rename 0162-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch => 0099-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch (95%) rename 0163-efi-chainloader-truncate-overlong-relocation-section.patch => 0100-efi-chainloader-truncate-overlong-relocation-section.patch (98%) rename 0164-linuxefi-minor-cleanups.patch => 0101-linuxefi-minor-cleanups.patch (98%) rename 0165-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch => 0102-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch (99%) rename 0166-Fix-up-linux-params-usage.patch => 0103-Fix-up-linux-params-usage.patch (95%) rename 0167-Make-exit-take-a-return-code.patch => 0104-Make-exit-take-a-return-code.patch (95%) rename 0168-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch => 0105-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch (95%) rename 0169-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch => 0106-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch (95%) rename 0170-Make-our-info-pages-say-grub2-where-appropriate.patch => 0107-Make-our-info-pages-say-grub2-where-appropriate.patch (99%) rename 0171-print-more-debug-info-in-our-module-loader.patch => 0108-print-more-debug-info-in-our-module-loader.patch (95%) rename 0172-macos-just-build-chainloader-entries-don-t-try-any-x.patch => 0109-macos-just-build-chainloader-entries-don-t-try-any-x.patch (98%) rename 0173-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch => 0110-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch (99%) rename 0174-export-btrfs_subvol-and-btrfs_subvolid.patch => 0111-export-btrfs_subvol-and-btrfs_subvolid.patch (92%) rename 0175-grub2-btrfs-03-follow_default.patch => 0112-grub2-btrfs-03-follow_default.patch (98%) rename 0176-grub2-btrfs-04-grub2-install.patch => 0113-grub2-btrfs-04-grub2-install.patch (98%) rename 0177-grub2-btrfs-05-grub2-mkconfig.patch => 0114-grub2-btrfs-05-grub2-mkconfig.patch (98%) rename 0178-grub2-btrfs-06-subvol-mount.patch => 0115-grub2-btrfs-06-subvol-mount.patch (99%) rename 0179-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch => 0116-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch (93%) rename 0180-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch => 0117-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch (96%) rename 0181-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch => 0118-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch (99%) rename 0182-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch => 0119-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch (97%) rename 0183-Use-grub_efi_.-memory-helpers-where-reasonable.patch => 0120-Use-grub_efi_.-memory-helpers-where-reasonable.patch (98%) rename 0184-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch => 0121-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch (96%) rename 0185-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch => 0122-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch (95%) rename 0186-don-t-ignore-const.patch => 0123-don-t-ignore-const.patch (89%) rename 0187-don-t-use-int-for-efi-status.patch => 0124-don-t-use-int-for-efi-status.patch (90%) rename 0188-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch => 0125-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch (93%) rename 0189-Clean-up-some-errors-in-the-linuxefi-loader.patch => 0126-Clean-up-some-errors-in-the-linuxefi-loader.patch (97%) rename 0190-editenv-handle-relative-symlinks.patch => 0127-editenv-handle-relative-symlinks.patch (95%) rename 0191-Make-libgrub.pp-depend-on-config-util.h.patch => 0128-Make-libgrub.pp-depend-on-config-util.h.patch (98%) rename 0192-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch => 0129-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch (94%) rename 0193-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch => 0130-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch (96%) rename 0194-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch => 0131-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch (93%) rename 0195-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch => 0132-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch (94%) rename 0196-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch => 0133-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch (95%) rename 0197-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch => 0134-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch (99%) rename 0198-align-struct-efi_variable-better.patch => 0135-align-struct-efi_variable-better.patch (94%) rename 0199-Add-quicksort-implementation.patch => 0136-Add-quicksort-implementation.patch (99%) rename 0200-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch => 0137-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch (99%) rename 0201-Add-BLS-support-to-grub-mkconfig.patch => 0138-Add-BLS-support-to-grub-mkconfig.patch (98%) rename 0202-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch => 0139-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch (93%) rename 0203-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch => 0140-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch (93%) rename 0204-Enable-blscfg-command-for-the-emu-platform.patch => 0141-Enable-blscfg-command-for-the-emu-platform.patch (98%) rename 0205-Add-linux-and-initrd-commands-for-grub-emu.patch => 0142-Add-linux-and-initrd-commands-for-grub-emu.patch (99%) rename 0206-Fix-the-efidir-in-grub-setpassword.patch => 0143-Fix-the-efidir-in-grub-setpassword.patch (92%) rename 0207-Add-grub2-switch-to-blscfg.patch => 0144-Add-grub2-switch-to-blscfg.patch (99%) rename 0208-Add-grub_debug_enabled.patch => 0145-Add-grub_debug_enabled.patch (96%) rename 0209-make-better-backtraces.patch => 0146-make-better-backtraces.patch (99%) rename 0210-normal-don-t-draw-our-startup-message-if-debug-is-se.patch => 0147-normal-don-t-draw-our-startup-message-if-debug-is-se.patch (92%) rename 0211-Work-around-some-minor-include-path-weirdnesses.patch => 0148-Work-around-some-minor-include-path-weirdnesses.patch (98%) rename 0212-Make-it-possible-to-enabled-build-id-sha1.patch => 0149-Make-it-possible-to-enabled-build-id-sha1.patch (96%) rename 0213-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch => 0150-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch (96%) rename 0214-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch => 0151-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch (98%) rename 0215-Only-attempt-to-scan-different-BLS-directories-on-EF.patch => 0152-Only-attempt-to-scan-different-BLS-directories-on-EF.patch (96%) rename 0216-Core-TPM-support.patch => 0153-Core-TPM-support.patch (99%) rename 0217-Measure-kernel-initrd.patch => 0154-Measure-kernel-initrd.patch (95%) rename 0218-Add-BIOS-boot-measurement.patch => 0155-Add-BIOS-boot-measurement.patch (98%) rename 0219-Measure-kernel-and-initrd-on-BIOS-systems.patch => 0156-Measure-kernel-and-initrd-on-BIOS-systems.patch (97%) rename 0220-Measure-the-kernel-commandline.patch => 0157-Measure-the-kernel-commandline.patch (94%) rename 0221-Measure-commands.patch => 0158-Measure-commands.patch (97%) rename 0222-Measure-multiboot-images-and-modules.patch => 0159-Measure-multiboot-images-and-modules.patch (97%) rename 0223-Fix-boot-when-there-s-no-TPM.patch => 0160-Fix-boot-when-there-s-no-TPM.patch (92%) rename 0224-Rework-TPM-measurements.patch => 0161-Rework-TPM-measurements.patch (99%) rename 0225-Fix-event-log-prefix.patch => 0162-Fix-event-log-prefix.patch (93%) rename 0226-Set-the-first-boot-menu-entry-as-default-when-using-.patch => 0163-Set-the-first-boot-menu-entry-as-default-when-using-.patch (93%) rename 0227-tpm-fix-warnings-when-compiling-for-platforms-other-.patch => 0164-tpm-fix-warnings-when-compiling-for-platforms-other-.patch (95%) rename 0228-Make-TPM-errors-less-fatal.patch => 0165-Make-TPM-errors-less-fatal.patch (99%) rename 0229-blscfg-handle-multiple-initramfs-images.patch => 0166-blscfg-handle-multiple-initramfs-images.patch (97%) rename 0230-BLS-Fix-grub2-switch-to-blscfg-on-non-EFI-machines.patch => 0167-BLS-Fix-grub2-switch-to-blscfg-on-non-EFI-machines.patch (93%) rename 0231-BLS-Use-etcdefaultgrub-instead-of-etc.patch => 0168-BLS-Use-etcdefaultgrub-instead-of-etc.patch (93%) rename 0232-Add-missing-options-to-grub2-switch-to-blscfg-man-pa.patch => 0169-Add-missing-options-to-grub2-switch-to-blscfg-man-pa.patch (95%) rename 0233-Make-grub2-switch-to-blscfg-to-generate-debug-BLS-wh.patch => 0170-Make-grub2-switch-to-blscfg-to-generate-debug-BLS-wh.patch (97%) rename 0234-Make-grub2-switch-to-blscfg-to-generate-BLS-fragment.patch => 0171-Make-grub2-switch-to-blscfg-to-generate-BLS-fragment.patch (93%) rename 0235-Only-attempt-to-query-dev-mounted-in-boot-efi-as-boo.patch => 0172-Only-attempt-to-query-dev-mounted-in-boot-efi-as-boo.patch (95%) rename 0236-Include-OSTree-path-when-searching-kernels-images-if.patch => 0173-Include-OSTree-path-when-searching-kernels-images-if.patch (95%) rename 0237-Use-BLS-version-field-to-compare-entries-if-id-field.patch => 0174-Use-BLS-version-field-to-compare-entries-if-id-field.patch (93%) rename 0238-Add-version-field-to-BLS-generated-by-grub2-switch-t.patch => 0175-Add-version-field-to-BLS-generated-by-grub2-switch-t.patch (95%) rename 0239-Fixup-for-newer-compiler.patch => 0176-Fixup-for-newer-compiler.patch (94%) rename 0240-Don-t-attempt-to-export-the-start-and-_start-symbols.patch => 0177-Don-t-attempt-to-export-the-start-and-_start-symbols.patch (96%) rename 0241-Simplify-BLS-entry-key-val-pairs-lookup.patch => 0178-Simplify-BLS-entry-key-val-pairs-lookup.patch (98%) rename 0242-Add-relative-path-to-the-kernel-and-initrds-BLS-fiel.patch => 0179-Add-relative-path-to-the-kernel-and-initrds-BLS-fiel.patch (97%) rename 0243-Skip-leading-spaces-on-BLS-field-values.patch => 0180-Skip-leading-spaces-on-BLS-field-values.patch (96%) rename 0244-Fixup-for-newer-compiler.patch => 0181-Fixup-for-newer-compiler.patch (94%) rename 0245-TPM-Fix-hash_log_extend_event-function-prototype.patch => 0182-TPM-Fix-hash_log_extend_event-function-prototype.patch (96%) rename 0246-TPM-Fix-compiler-warnings.patch => 0183-TPM-Fix-compiler-warnings.patch (97%) rename 0247-grub-switch-to-blscfg.in-get-rid-of-a-bunch-of-bashi.patch => 0184-grub-switch-to-blscfg.in-get-rid-of-a-bunch-of-bashi.patch (98%) rename 0248-grub-switch-to-blscfg.in-Better-boot-prefix-checking.patch => 0185-grub-switch-to-blscfg.in-Better-boot-prefix-checking.patch (97%) rename 0249-Use-boot-loader-entries-as-BLS-directory-path-also-o.patch => 0186-Use-boot-loader-entries-as-BLS-directory-path-also-o.patch (98%) rename 0250-Use-BLS-fragment-filename-as-menu-entry-id-and-for-c.patch => 0187-Use-BLS-fragment-filename-as-menu-entry-id-and-for-c.patch (98%) rename 0251-Fix-grub-switch-to-blscfg-boot-prefix-handling.patch => 0188-Fix-grub-switch-to-blscfg-boot-prefix-handling.patch (97%) create mode 100644 0189-blscfg-remove-unused-typedef.patch create mode 100644 0190-blscfg-don-t-dynamically-allocate-default_blsdir.patch create mode 100644 0191-blscfg-sort-BLS-entries-by-version-field.patch create mode 100644 0192-blscfg-remove-NULL-guards-around-grub_free.patch create mode 100644 0193-blscfg-fix-filename-in-no-linux-key-error.patch create mode 100644 0194-blscfg-don-t-leak-bls_entry.filename.patch create mode 100644 0195-blscfg-fix-compilation-on-EFI-and-EMU.patch create mode 100644 0196-Add-loadenv-to-blscfg-and-loadenv-source-file-list.patch create mode 100644 0197-blscfg-Get-rid-of-the-linuxefi-linux16-linux-distinc.patch create mode 100644 0198-grub-switch-to-blscfg-Only-fix-boot-prefix-for-non-g.patch create mode 100644 0199-blscfg-Expand-the-BLS-options-field-instead-of-showi.patch create mode 100644 0200-blscfg-Fallback-to-search-BLS-snippets-in-boot-loade.patch create mode 100644 0201-blscfg-Don-t-attempt-to-sort-by-version-if-not-prese.patch create mode 100644 0202-blscfg-remove-logic-to-read-the-grubenv-file-and-set.patch create mode 100644 0203-Put-our-bls_import-compat-command-in-this-tree-as-we.patch create mode 100644 0204-Fix-an-8-year-old-typo.patch diff --git a/0001-Bump-version-to-2.03.patch b/0001-Bump-version-to-2.03.patch deleted file mode 100644 index a8ba8e85..00000000 --- a/0001-Bump-version-to-2.03.patch +++ /dev/null @@ -1,227 +0,0 @@ -From b0bad6fd9449d3333fe1ab58953c0e6c1ce12c0d Mon Sep 17 00:00:00 2001 -From: Vladimir Serbinenko -Date: Wed, 3 May 2017 11:55:52 +0200 -Subject: [PATCH] Bump version to 2.03 - ---- - configure.ac | 2 +- - grub-core/tests/checksums.h | 196 ++++++++++++++++++++++---------------------- - 2 files changed, 99 insertions(+), 99 deletions(-) - -diff --git a/configure.ac b/configure.ac -index edd184154f7..d10d8adac58 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -31,7 +31,7 @@ dnl (such as BUILD_CC, BUILD_CFLAGS, etc.) for the build type and variables - dnl with the prefix "TARGET_" (such as TARGET_CC, TARGET_CFLAGS, etc.) are - dnl used for the target type. See INSTALL for full list of variables. - --AC_INIT([GRUB],[2.02],[bug-grub@gnu.org]) -+AC_INIT([GRUB],[2.03],[bug-grub@gnu.org]) - - AC_CONFIG_AUX_DIR([build-aux]) - -diff --git a/grub-core/tests/checksums.h b/grub-core/tests/checksums.h -index 68d8ce7c775..921e57ff48d 100644 ---- a/grub-core/tests/checksums.h -+++ b/grub-core/tests/checksums.h -@@ -1,101 +1,101 @@ -- { "cmdline_cat", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xcd5fc34e, 0xcd5fc34e, 0xeabbecab, 0xeabbecab, 0xc9950151, 0xc9950151, 0x2be222b6, 0x2be222b6, 0xe88c769e, 0xe88c769e, 0x6be4910e, 0x6be4910e, 0x1dc1fe4f, 0x1dc1fe4f, 0xd7613e8f, 0xd7613e8f, 0xf8124196, 0xf8124196, 0x130f5935, 0x130f5935, 0x2872330e, 0x2872330e, 0xaa7b7868, 0xaa7b7868, 0x558eaeea, 0x558eaeea, 0x92f7960f, 0x92f7960f, 0xc5bfc709, 0xc5bfc709, 0x699732fe, 0x699732fe, 0xc859125f, 0xc859125f, 0xfc6ac729, 0xfc6ac729, 0xcdab6cd4, 0xcdab6cd4, 0x58a8b7f8, 0x58a8b7f8, 0xc0e73385, 0x6560d6ef, 0x3be8bb5d, 0x3be8bb5d, }, 45 }, -- { "cmdline_cat", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x13029f94, 0x13029f94, 0x7785fdab, 0x7785fdab, 0x95a7c1e8, 0x95a7c1e8, 0x315ab3e3, 0x315ab3e3, 0x6787f012, 0x6787f012, 0x79b1ecdc, 0x79b1ecdc, 0xdbc67810, 0xdbc67810, 0xafaa982e, 0xafaa982e, 0xc5cd0157, 0xc5cd0157, 0x3c50dd64, 0x3c50dd64, 0x1056cac0, 0x1056cac0, 0x1d7a41fa, 0x1d7a41fa, 0x5690b1e8, 0x5690b1e8, 0x616831d6, 0x616831d6, 0xfaf8e726, 0xfaf8e726, 0xd1ec5e26, 0xd1ec5e26, 0x3c269e1f, 0x3c269e1f, 0x1aa7952d, 0x1aa7952d, 0x6e7e2f99, 0x6e7e2f99, 0x98f4c02, 0x98f4c02, 0xc3f1abf2, 0xe348bb73, 0xea53cd60, 0xea53cd60, }, 45 }, -- { "cmdline_cat", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x8fbb4f4c, 0x8fbb4f4c, 0x5dc00167, 0x5dc00167, 0xbc124df8, 0xbc124df8, 0x31cf0f8e, 0x31cf0f8e, 0x798cc4ed, 0x798cc4ed, 0xc5d2a091, 0xc5d2a091, 0xb58a0591, 0xb58a0591, 0x4d118aca, 0x4d118aca, 0xbb06c7ee, 0xbb06c7ee, 0x42179db7, 0x42179db7, 0x65f2d81e, 0x65f2d81e, 0xa2628bcb, 0xa2628bcb, 0xbdb7f4b, 0xbdb7f4b, 0x66b10309, 0x66b10309, 0x1a550ea9, 0x1a550ea9, 0x377a297d, 0x377a297d, 0x2ea99015, 0x2ea99015, 0x4e20d7bc, 0x4e20d7bc, 0x8ecbde02, 0x8ecbde02, 0xdfa2195a, 0xdfa2195a, 0xe113d2a, 0xe204ee5b, 0x734679c1, 0x734679c1, }, 45 }, -- { "cmdline_cat", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0xe2f6bfe1, 0xe2f6bfe1, 0xf18aee15, 0xf18aee15, 0x5e83b689, 0x5e83b689, 0xb7e8b42c, 0xb7e8b42c, 0x85d78f92, 0x85d78f92, 0xd56fadae, 0xd56fadae, 0x7632f5bf, 0x7632f5bf, 0x2769a748, 0x2769a748, 0x4a6112cd, 0x4a6112cd, 0x4f9b66a4, 0x4f9b66a4, 0x70457d38, 0x70457d38, 0x8cadb1a7, 0x8cadb1a7, 0x451341f, 0x451341f, 0x8a62e741, 0x8a62e741, 0x1b1f9031, 0x1b1f9031, 0x75ab630e, 0x75ab630e, 0xd5ff53ac, 0xd5ff53ac, 0x73a2b3c7, 0x73a2b3c7, 0x7b52acd5, 0x7b52acd5, 0xf6f3e48c, 0xf6f3e48c, 0x8d0db133, 0x8db24310, 0x7aef56d4, 0x7aef56d4, }, 45 }, -- { "cmdline_cat", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x838a3f40, 0x838a3f40, 0x7351ba96, 0x7351ba96, 0x660963bb, 0x660963bb, 0x6f3362a6, 0x6f3362a6, 0x915d35d9, 0x915d35d9, 0xc7edaee9, 0xc7edaee9, 0xbc8ec24c, 0xbc8ec24c, 0xeb120ffd, 0xeb120ffd, 0x8f6d8232, 0x8f6d8232, 0x2de5d515, 0x2de5d515, 0x4f2ecd91, 0x4f2ecd91, 0x555a9b90, 0x555a9b90, 0x8f7b0d77, 0x8f7b0d77, 0x5f9536af, 0x5f9536af, 0x3dd79dbe, 0x3dd79dbe, 0xb555a0, 0xb555a0, 0x75aec882, 0x75aec882, 0xd5da89cb, 0xd5da89cb, 0xb47b3257, 0xb47b3257, 0x7c97c046, 0x7c97c046, 0x726a7abe, 0x4c8b8a56, 0xcffa0854, 0xcffa0854, }, 45 }, -- { "cmdline_cat", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x7bf761e, 0x7bf761e, 0xaf0b6dae, 0xaf0b6dae, 0x7db15930, 0x7db15930, 0xc9720d56, 0xc9720d56, 0x55590d6c, 0x55590d6c, 0xa0d193d9, 0xa0d193d9, 0x728987b2, 0x728987b2, 0x28aecde6, 0x28aecde6, 0xa59bb094, 0xa59bb094, 0x2d0b049d, 0x2d0b049d, 0xd8421240, 0xd8421240, 0x51fa339, 0x51fa339, 0xc625cc46, 0xc625cc46, 0x2c9e6fcc, 0x2c9e6fcc, 0x3d06ffd5, 0x3d06ffd5, 0x8dd72816, 0x8dd72816, 0xfcf2a982, 0xfcf2a982, 0x6ef2870f, 0x6ef2870f, 0xba2caab7, 0xba2caab7, 0x8e5a5872, 0x8e5a5872, 0x62b2fedc, 0x2bd3b588, 0x34ebdb15, 0x34ebdb15, }, 45 }, -- { "cmdline_cat", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0xa133280a, 0xa133280a, 0x1e8f4227, 0x1e8f4227, 0xa01cd911, 0xa01cd911, 0xdcb3d617, 0xdcb3d617, 0x51200351, 0x51200351, 0x609ba305, 0x609ba305, 0x5d96abfd, 0x5d96abfd, 0xd855cc70, 0xd855cc70, 0xdbfaf18d, 0xdbfaf18d, 0x84814843, 0x84814843, 0x4b00e630, 0x4b00e630, 0xd362b0f5, 0xd362b0f5, 0xec863355, 0xec863355, 0x195898d0, 0x195898d0, 0xe8c698c7, 0xe8c698c7, 0x884229e7, 0x884229e7, 0xb41ed3a9, 0xb41ed3a9, 0x2be1ce40, 0x2be1ce40, 0x8c33eb7c, 0x8c33eb7c, 0xbbce1da, 0xbbce1da, 0xef9415fa, 0x22fbc0d, 0xd82c182c, 0xd82c182c, }, 45 }, -- { "gfxterm_menu", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xbe029c, 0x6671ee1f, 0xbe029c, 0x4348cfdb, 0x59c36f00, 0x59c36f00, 0x3ad73295, 0x3ad73295, 0x3ad73295, 0x44575ff3, 0x44575ff3, 0x44575ff3, 0x26a14a21, 0x26a14a21, 0x26a14a21, 0x59c36f00, 0x4348cfdb, 0x4348cfdb, 0x59c36f00, }, 20 }, -- { "gfxterm_menu", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x14e228ef, 0xb0c8af57, 0x14e228ef, 0x3ae7ad90, 0xaa4593fe, 0xaa4593fe, 0xbec19c1b, 0xbec19c1b, 0xbec19c1b, 0x1834917c, 0x1834917c, 0x1834917c, 0x350c3a04, 0x350c3a04, 0x350c3a04, 0xaa4593fe, 0x3ae7ad90, 0x3ae7ad90, 0xaa4593fe, }, 20 }, -- { "gfxterm_menu", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x651fb144, 0xdf93ee9c, 0x651fb144, 0x3808dcc0, 0xc9cbf769, 0xc9cbf769, 0xe4861949, 0xe4861949, 0xe4861949, 0x1a5ed885, 0x1a5ed885, 0x1a5ed885, 0xf314678d, 0xf314678d, 0xf314678d, 0xc9cbf769, 0x3808dcc0, 0x3808dcc0, 0xc9cbf769, }, 20 }, -- { "gfxterm_menu", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0xdfd0119e, 0x6c7018a9, 0xdfd0119e, 0x71865846, 0x9813a416, 0x9813a416, 0xb5e8801c, 0xb5e8801c, 0xb5e8801c, 0x2433062f, 0x2433062f, 0x2433062f, 0x3d893bff, 0x3d893bff, 0x3d893bff, 0x9813a416, 0x71865846, 0x71865846, 0x9813a416, }, 20 }, -- { "gfxterm_menu", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x4e4844e0, 0x5ebe5f81, 0x4e4844e0, 0x38ee7153, 0x5fcf013d, 0x5fcf013d, 0x819b5c4e, 0x819b5c4e, 0x819b5c4e, 0x538b4438, 0x538b4438, 0x538b4438, 0x45f87ba7, 0x45f87ba7, 0x45f87ba7, 0x5fcf013d, 0x38ee7153, 0x38ee7153, 0x5fcf013d, }, 20 }, -- { "gfxterm_menu", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x701427d4, 0x246c830a, 0x701427d4, 0x6b11fdd3, 0xdd28f52b, 0xdd28f52b, 0xcd83646c, 0xcd83646c, 0xcd83646c, 0xecbf9d88, 0xecbf9d88, 0xecbf9d88, 0x91075604, 0x91075604, 0x91075604, 0xdd28f52b, 0x6b11fdd3, 0x6b11fdd3, 0xdd28f52b, }, 20 }, -- { "gfxterm_menu", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x7b5bd4c, 0xac246af1, 0x7b5bd4c, 0xf80aa6cc, 0x43d1f34, 0x43d1f34, 0xb200c08a, 0xb200c08a, 0xb200c08a, 0xcd0a6922, 0xcd0a6922, 0xcd0a6922, 0x545b6ca4, 0x545b6ca4, 0x545b6ca4, 0x43d1f34, 0xf80aa6cc, 0xf80aa6cc, 0x43d1f34, }, 20 }, -- { "gfxmenu", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x1027210c, 0x64e51c81, 0x1027210c, 0x45ca4a8a, 0x9a2e0d26, 0x12fd0f21, 0x12fd0f21, 0x12fd0f21, 0x4e25f9e1, 0x4e25f9e1, 0x4e25f9e1, 0x67bd3773, 0x67bd3773, 0x67bd3773, 0x59c36f00, 0x45ca4a8a, 0x45ca4a8a, }, 18 }, -- { "gfxmenu", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x8d12f697, 0xc5b32248, 0x8d12f697, 0x56720aa4, 0xa9d58ccd, 0xf766a14d, 0xf766a14d, 0xf766a14d, 0xa2390b47, 0xa2390b47, 0xa2390b47, 0xcb0ac30e, 0xcb0ac30e, 0xcb0ac30e, 0xaa4593fe, 0x56720aa4, 0x56720aa4, }, 18 }, -- { "gfxmenu", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xa5ec9f45, 0xdb7085d8, 0xa5ec9f45, 0x9caf1d3f, 0x5411be8b, 0xedc0ad83, 0xedc0ad83, 0xedc0ad83, 0x927e0b17, 0x927e0b17, 0x927e0b17, 0xd00a6b6f, 0xd00a6b6f, 0xd00a6b6f, 0xc9cbf769, 0x9caf1d3f, 0x9caf1d3f, }, 18 }, -- { "gfxmenu", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x1c3742c9, 0xce8e83bf, 0xeb96c838, 0xce8e83bf, 0x73cb3bc1, 0x740d78cf, 0xb35c7e64, 0xb35c7e64, 0xb35c7e64, 0x58f99418, 0x58f99418, 0x58f99418, 0x5eb294e8, 0x5eb294e8, 0x5eb294e8, 0x1c3742c9, 0x73cb3bc1, 0x73cb3bc1, }, 18 }, -- { "gfxmenu", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0xcc5a7bed, 0x56a03e51, 0xee7d8d4b, 0x56a03e51, 0x5bdf9413, 0xbcda144c, 0x220f7a5e, 0x220f7a5e, 0x220f7a5e, 0x4d46a64f, 0x4d46a64f, 0x4d46a64f, 0x40b0384c, 0x40b0384c, 0x40b0384c, 0xcc5a7bed, 0x5bdf9413, 0x5bdf9413, }, 18 }, -- { "gfxmenu", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xef4a3312, 0xea8a9cf0, 0x8929e522, 0xea8a9cf0, 0x78f3dfbc, 0x5d55a141, 0x377f1aeb, 0x377f1aeb, 0x377f1aeb, 0xf1cd5ef5, 0xf1cd5ef5, 0xf1cd5ef5, 0xe5a88e4a, 0xe5a88e4a, 0xe5a88e4a, 0xef4a3312, 0x78f3dfbc, 0x78f3dfbc, }, 18 }, -- { "gfxmenu", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x54e48d80, 0x6dcf1d57, 0x925a4c8f, 0x6dcf1d57, 0x69005b38, 0x6d6bb4bc, 0x756a36b9, 0x756a36b9, 0x756a36b9, 0xf499c068, 0xf499c068, 0xf499c068, 0x623d7907, 0x623d7907, 0x623d7907, 0x54e48d80, 0x69005b38, 0x69005b38, }, 18 }, -- { "gfxterm_ar", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xa49d26b0, 0xaa7d9b28, 0xa49d26b0, 0xe76bebf7, 0x59c36f00, 0x59c36f00, 0xea6ab252, 0xea6ab252, 0xea6ab252, 0x94eadf34, 0x94eadf34, 0x94eadf34, 0xf61ccae6, 0xf61ccae6, 0xf61ccae6, 0x59c36f00, 0xe76bebf7, 0xe76bebf7, 0x59c36f00, }, 20 }, -- { "gfxterm_ar", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x7a277db, 0xf3bf80f7, 0x7a277db, 0x29a7f2a4, 0xaa4593fe, 0xaa4593fe, 0xf1cd57e3, 0xf1cd57e3, 0xf1cd57e3, 0x57385a84, 0x57385a84, 0x57385a84, 0x7a00f1fc, 0x7a00f1fc, 0x7a00f1fc, 0xaa4593fe, 0x29a7f2a4, 0x29a7f2a4, 0xaa4593fe, }, 20 }, -- { "gfxterm_ar", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x631edf85, 0x71926408, 0x631edf85, 0x3e09b201, 0xc9cbf769, 0xc9cbf769, 0xf224ab3, 0xf224ab3, 0xf224ab3, 0xf1fa8b7f, 0xf1fa8b7f, 0xf1fa8b7f, 0x18b03477, 0x18b03477, 0x18b03477, 0xc9cbf769, 0x3e09b201, 0x3e09b201, 0xc9cbf769, }, 20 }, -- { "gfxterm_ar", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0xfbaf4635, 0xe69ef474, 0xfbaf4635, 0x55f90fed, 0x9813a416, 0x9813a416, 0x3aad8f41, 0x3aad8f41, 0x3aad8f41, 0xab760972, 0xab760972, 0xab760972, 0xb2cc34a2, 0xb2cc34a2, 0xb2cc34a2, 0x9813a416, 0x55f90fed, 0x55f90fed, 0x9813a416, }, 20 }, -- { "gfxterm_ar", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xdce50745, 0x1d8009e4, 0xdce50745, 0xaa4332f6, 0x5fcf013d, 0x5fcf013d, 0x354e5749, 0x354e5749, 0x354e5749, 0xe75e4f3f, 0xe75e4f3f, 0xe75e4f3f, 0xf12d70a0, 0xf12d70a0, 0xf12d70a0, 0x5fcf013d, 0xaa4332f6, 0xaa4332f6, 0x5fcf013d, }, 20 }, -- { "gfxterm_ar", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x3efebeff, 0xf101dfe2, 0x3efebeff, 0x25fb64f8, 0xdd28f52b, 0xdd28f52b, 0x70c69ebd, 0x70c69ebd, 0x70c69ebd, 0x51fa6759, 0x51fa6759, 0x51fa6759, 0x2c42acd5, 0x2c42acd5, 0x2c42acd5, 0xdd28f52b, 0x25fb64f8, 0x25fb64f8, 0xdd28f52b, }, 20 }, -- { "gfxterm_ar", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x59a34c64, 0x281cca78, 0x59a34c64, 0xa61c57e4, 0x43d1f34, 0x43d1f34, 0x95131d4, 0x95131d4, 0x95131d4, 0x765b987c, 0x765b987c, 0x765b987c, 0xef0a9dfa, 0xef0a9dfa, 0xef0a9dfa, 0x43d1f34, 0xa61c57e4, 0xa61c57e4, 0x43d1f34, }, 20 }, -- { "gfxterm_cyr", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xa37c165, 0x72063383, 0xa37c165, 0x49c10c22, 0x59c36f00, 0x59c36f00, 0x4e53de8e, 0x4e53de8e, 0x4e53de8e, 0x30d3b3e8, 0x30d3b3e8, 0x30d3b3e8, 0x5225a63a, 0x5225a63a, 0x5225a63a, 0x59c36f00, 0x49c10c22, 0x49c10c22, 0x59c36f00, }, 20 }, -- { "gfxterm_cyr", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x45bba0ba, 0xe60fd0b6, 0x45bba0ba, 0x6bbe25c5, 0xaa4593fe, 0xaa4593fe, 0x28de2b41, 0x28de2b41, 0x28de2b41, 0x8e2b2626, 0x8e2b2626, 0x8e2b2626, 0xa3138d5e, 0xa3138d5e, 0xa3138d5e, 0xaa4593fe, 0x6bbe25c5, 0x6bbe25c5, 0xaa4593fe, }, 20 }, -- { "gfxterm_cyr", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xb43d4e9d, 0x16f88820, 0xb43d4e9d, 0xe92a2319, 0xc9cbf769, 0xc9cbf769, 0xb8959ec7, 0xb8959ec7, 0xb8959ec7, 0x464d5f0b, 0x464d5f0b, 0x464d5f0b, 0xaf07e003, 0xaf07e003, 0xaf07e003, 0xc9cbf769, 0xe92a2319, 0xe92a2319, 0xc9cbf769, }, 20 }, -- { "gfxterm_cyr", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x46760365, 0x685ae30e, 0x46760365, 0xe8204abd, 0x9813a416, 0x9813a416, 0x8896050a, 0x8896050a, 0x8896050a, 0x194d8339, 0x194d8339, 0x194d8339, 0xf7bee9, 0xf7bee9, 0xf7bee9, 0x9813a416, 0xe8204abd, 0xe8204abd, 0x9813a416, }, 20 }, -- { "gfxterm_cyr", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x6859aa86, 0xf3f11deb, 0x6859aa86, 0x1eff9f35, 0x5fcf013d, 0x5fcf013d, 0xd72b1482, 0xd72b1482, 0xd72b1482, 0x53b0cf4, 0x53b0cf4, 0x53b0cf4, 0x1348336b, 0x1348336b, 0x1348336b, 0x5fcf013d, 0x1eff9f35, 0x1eff9f35, 0x5fcf013d, }, 20 }, -- { "gfxterm_cyr", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x688451e7, 0xf6936b72, 0x688451e7, 0x73818be0, 0xdd28f52b, 0xdd28f52b, 0xf12a65ac, 0xf12a65ac, 0xf12a65ac, 0xd0169c48, 0xd0169c48, 0xd0169c48, 0xadae57c4, 0xadae57c4, 0xadae57c4, 0xdd28f52b, 0x73818be0, 0x73818be0, 0xdd28f52b, }, 20 }, -- { "gfxterm_cyr", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x9616af94, 0xd466be40, 0x9616af94, 0x69a9b414, 0x43d1f34, 0x43d1f34, 0xf3bb3240, 0xf3bb3240, 0xf3bb3240, 0x8cb19be8, 0x8cb19be8, 0x8cb19be8, 0x15e09e6e, 0x15e09e6e, 0x15e09e6e, 0x43d1f34, 0x69a9b414, 0x69a9b414, 0x43d1f34, }, 20 }, -- { "gfxterm_heb", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x8708d1bd, 0x85dd5e9c, 0x8708d1bd, 0xc4fe1cfa, 0x59c36f00, 0x59c36f00, 0x7ae8aced, 0x7ae8aced, 0x7ae8aced, 0x468c18b, 0x468c18b, 0x468c18b, 0x669ed459, 0x669ed459, 0x669ed459, 0x59c36f00, 0xc4fe1cfa, 0xc4fe1cfa, 0x59c36f00, }, 20 }, -- { "gfxterm_heb", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0xa72b1043, 0x147d4ce0, 0xa72b1043, 0x892e953c, 0xaa4593fe, 0xaa4593fe, 0xb7b1dd40, 0xb7b1dd40, 0xb7b1dd40, 0x1144d027, 0x1144d027, 0x1144d027, 0x3c7c7b5f, 0x3c7c7b5f, 0x3c7c7b5f, 0xaa4593fe, 0x892e953c, 0x892e953c, 0xaa4593fe, }, 20 }, -- { "gfxterm_heb", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xc5fb1817, 0x745fb26c, 0xc5fb1817, 0x98ec7593, 0xc9cbf769, 0xc9cbf769, 0xf5f17e2d, 0xf5f17e2d, 0xf5f17e2d, 0xb29bfe1, 0xb29bfe1, 0xb29bfe1, 0xe26300e9, 0xe26300e9, 0xe26300e9, 0xc9cbf769, 0x98ec7593, 0x98ec7593, 0xc9cbf769, }, 20 }, -- { "gfxterm_heb", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x4be837e1, 0xbf4963ca, 0x4be837e1, 0xe5be7e39, 0x9813a416, 0x9813a416, 0xd886fca0, 0xd886fca0, 0xd886fca0, 0x495d7a93, 0x495d7a93, 0x495d7a93, 0x50e74743, 0x50e74743, 0x50e74743, 0x9813a416, 0xe5be7e39, 0xe5be7e39, 0x9813a416, }, 20 }, -- { "gfxterm_heb", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x21a8ccb8, 0x17719be, 0x21a8ccb8, 0x570ef90b, 0x5fcf013d, 0x5fcf013d, 0x2a7b5333, 0x2a7b5333, 0x2a7b5333, 0xf86b4b45, 0xf86b4b45, 0xf86b4b45, 0xee1874da, 0xee1874da, 0xee1874da, 0x5fcf013d, 0x570ef90b, 0x570ef90b, 0x5fcf013d, }, 20 }, -- { "gfxterm_heb", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x7001fe50, 0x4798153f, 0x7001fe50, 0x6b042457, 0xdd28f52b, 0xdd28f52b, 0x46489369, 0x46489369, 0x46489369, 0x67746a8d, 0x67746a8d, 0x67746a8d, 0x1acca101, 0x1acca101, 0x1acca101, 0xdd28f52b, 0x6b042457, 0x6b042457, 0xdd28f52b, }, 20 }, -- { "gfxterm_heb", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x6e10591c, 0x48bd926e, 0x6e10591c, 0x91af429c, 0x43d1f34, 0x43d1f34, 0x59cb829, 0x59cb829, 0x59cb829, 0x7a961181, 0x7a961181, 0x7a961181, 0xe3c71407, 0xe3c71407, 0xe3c71407, 0x43d1f34, 0x91af429c, 0x91af429c, 0x43d1f34, }, 20 }, -- { "gfxterm_gre", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x67627ed5, 0xdb276cef, 0x67627ed5, 0x2494b392, 0x59c36f00, 0x59c36f00, 0x43f511f3, 0x43f511f3, 0x43f511f3, 0x3d757c95, 0x3d757c95, 0x3d757c95, 0x5f836947, 0x5f836947, 0x5f836947, 0x59c36f00, 0x2494b392, 0x2494b392, 0x59c36f00, }, 20 }, -- { "gfxterm_gre", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x987cbf71, 0x6e4c645c, 0x987cbf71, 0xb6793a0e, 0xaa4593fe, 0xaa4593fe, 0xb943d716, 0xb943d716, 0xb943d716, 0x1fb6da71, 0x1fb6da71, 0x1fb6da71, 0x328e7109, 0x328e7109, 0x328e7109, 0xaa4593fe, 0xb6793a0e, 0xb6793a0e, 0xaa4593fe, }, 20 }, -- { "gfxterm_gre", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xf9987c07, 0x4a92eed9, 0xf9987c07, 0xa48f1183, 0xc9cbf769, 0xc9cbf769, 0x5eb3ddf4, 0x5eb3ddf4, 0x5eb3ddf4, 0xa06b1c38, 0xa06b1c38, 0xa06b1c38, 0x4921a330, 0x4921a330, 0x4921a330, 0xc9cbf769, 0xa48f1183, 0xa48f1183, 0xc9cbf769, }, 20 }, -- { "gfxterm_gre", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0xccd804e2, 0xb99e8d91, 0xccd804e2, 0x628e4d3a, 0x9813a416, 0x9813a416, 0x5aec5acc, 0x5aec5acc, 0x5aec5acc, 0xcb37dcff, 0xcb37dcff, 0xcb37dcff, 0xd28de12f, 0xd28de12f, 0xd28de12f, 0x9813a416, 0x628e4d3a, 0x628e4d3a, 0x9813a416, }, 20 }, -- { "gfxterm_gre", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x4990d896, 0x2b3aa242, 0x4990d896, 0x3f36ed25, 0x5fcf013d, 0x5fcf013d, 0x3cc6048d, 0x3cc6048d, 0x3cc6048d, 0xeed61cfb, 0xeed61cfb, 0xeed61cfb, 0xf8a52364, 0xf8a52364, 0xf8a52364, 0x5fcf013d, 0x3f36ed25, 0x3f36ed25, 0x5fcf013d, }, 20 }, -- { "gfxterm_gre", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x4ff5c69f, 0x66586489, 0x4ff5c69f, 0x54f01c98, 0xdd28f52b, 0xdd28f52b, 0xc3ff0bf5, 0xc3ff0bf5, 0xc3ff0bf5, 0xe2c3f211, 0xe2c3f211, 0xe2c3f211, 0x9f7b399d, 0x9f7b399d, 0x9f7b399d, 0xdd28f52b, 0x54f01c98, 0x54f01c98, 0xdd28f52b, }, 20 }, -- { "gfxterm_gre", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x909b7bb4, 0x2bb2a58c, 0x909b7bb4, 0x6f246034, 0x43d1f34, 0x43d1f34, 0x2df40751, 0x2df40751, 0x2df40751, 0x52feaef9, 0x52feaef9, 0x52feaef9, 0xcbafab7f, 0xcbafab7f, 0xcbafab7f, 0x43d1f34, 0x6f246034, 0x6f246034, 0x43d1f34, }, 20 }, -- { "gfxterm_ru", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xc77bfcc6, 0xffcdf45d, 0xc77bfcc6, 0x848d3181, 0x59c36f00, 0x59c36f00, 0xd79cd5e, 0xd79cd5e, 0xd79cd5e, 0x73f9a038, 0x73f9a038, 0x73f9a038, 0x110fb5ea, 0x110fb5ea, 0x110fb5ea, 0x59c36f00, 0x848d3181, 0x848d3181, 0x59c36f00, }, 20 }, -- { "gfxterm_ru", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0xd5494aa5, 0xa0924ec, 0xd5494aa5, 0xfb4ccfda, 0xaa4593fe, 0xaa4593fe, 0x8692c636, 0x8692c636, 0x8692c636, 0x2067cb51, 0x2067cb51, 0x2067cb51, 0xd5f6029, 0xd5f6029, 0xd5f6029, 0xaa4593fe, 0xfb4ccfda, 0xfb4ccfda, 0xaa4593fe, }, 20 }, -- { "gfxterm_ru", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x2436c4f, 0x2cde4e0c, 0x2436c4f, 0x5f5401cb, 0xc9cbf769, 0xc9cbf769, 0x558f50ae, 0x558f50ae, 0x558f50ae, 0xab579162, 0xab579162, 0xab579162, 0x421d2e6a, 0x421d2e6a, 0x421d2e6a, 0xc9cbf769, 0x5f5401cb, 0x5f5401cb, 0xc9cbf769, }, 20 }, -- { "gfxterm_ru", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x86f8a68c, 0xf4116451, 0x86f8a68c, 0x28aeef54, 0x9813a416, 0x9813a416, 0x7befbe43, 0x7befbe43, 0x7befbe43, 0xea343870, 0xea343870, 0xea343870, 0xf38e05a0, 0xf38e05a0, 0xf38e05a0, 0x9813a416, 0x28aeef54, 0x28aeef54, 0x9813a416, }, 20 }, -- { "gfxterm_ru", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x156c292f, 0x3c8eb473, 0x156c292f, 0x63ca1c9c, 0x5fcf013d, 0x5fcf013d, 0x895ea16b, 0x895ea16b, 0x895ea16b, 0x5b4eb91d, 0x5b4eb91d, 0x5b4eb91d, 0x4d3d8682, 0x4d3d8682, 0x4d3d8682, 0x5fcf013d, 0x63ca1c9c, 0x63ca1c9c, 0x5fcf013d, }, 20 }, -- { "gfxterm_ru", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xf57ebf12, 0x798b299b, 0xf57ebf12, 0xee7b6515, 0xdd28f52b, 0xdd28f52b, 0x22563fc6, 0x22563fc6, 0x22563fc6, 0x36ac622, 0x36ac622, 0x36ac622, 0x7ed20dae, 0x7ed20dae, 0x7ed20dae, 0xdd28f52b, 0xee7b6515, 0xee7b6515, 0xdd28f52b, }, 20 }, -- { "gfxterm_ru", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x2bc82eb1, 0x94064cc8, 0x2bc82eb1, 0xd4773531, 0x43d1f34, 0x43d1f34, 0x44cbf2f0, 0x44cbf2f0, 0x44cbf2f0, 0x3bc15b58, 0x3bc15b58, 0x3bc15b58, 0xa2905ede, 0xa2905ede, 0xa2905ede, 0x43d1f34, 0xd4773531, 0xd4773531, 0x43d1f34, }, 20 }, -- { "gfxterm_fr", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x7f6dd146, 0x548af474, 0x7f6dd146, 0x3c9b1c01, 0x59c36f00, 0x59c36f00, 0x7d913e8d, 0x7d913e8d, 0x7d913e8d, 0x31153eb, 0x31153eb, 0x31153eb, 0x61e74639, 0x61e74639, 0x61e74639, 0x59c36f00, 0x3c9b1c01, 0x3c9b1c01, 0x59c36f00, }, 20 }, -- { "gfxterm_fr", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0xf29ad079, 0x50d47c0, 0xf29ad079, 0xdc9f5506, 0xaa4593fe, 0xaa4593fe, 0x6bcf4c90, 0x6bcf4c90, 0x6bcf4c90, 0xcd3a41f7, 0xcd3a41f7, 0xcd3a41f7, 0xe002ea8f, 0xe002ea8f, 0xe002ea8f, 0xaa4593fe, 0xdc9f5506, 0xdc9f5506, 0xaa4593fe, }, 20 }, -- { "gfxterm_fr", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xb25e3082, 0x2ed845dd, 0xb25e3082, 0xef495d06, 0xc9cbf769, 0xc9cbf769, 0xd5322575, 0xd5322575, 0xd5322575, 0x2beae4b9, 0x2beae4b9, 0x2beae4b9, 0xc2a05bb1, 0xc2a05bb1, 0xc2a05bb1, 0xc9cbf769, 0xef495d06, 0xef495d06, 0xc9cbf769, }, 20 }, -- { "gfxterm_fr", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x4cdfcd2e, 0x8bf091f, 0x4cdfcd2e, 0xe28984f6, 0x9813a416, 0x9813a416, 0x8217f630, 0x8217f630, 0x8217f630, 0x13cc7003, 0x13cc7003, 0x13cc7003, 0xa764dd3, 0xa764dd3, 0xa764dd3, 0x9813a416, 0xe28984f6, 0xe28984f6, 0x9813a416, }, 20 }, -- { "gfxterm_fr", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xf2b49f88, 0x2eff252d, 0xf2b49f88, 0x8412aa3b, 0x5fcf013d, 0x5fcf013d, 0x5d3b9fe7, 0x5d3b9fe7, 0x5d3b9fe7, 0x8f2b8791, 0x8f2b8791, 0x8f2b8791, 0x9958b80e, 0x9958b80e, 0x9958b80e, 0x5fcf013d, 0x8412aa3b, 0x8412aa3b, 0x5fcf013d, }, 20 }, -- { "gfxterm_fr", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x786673be, 0x536f1359, 0x786673be, 0x6363a9b9, 0xdd28f52b, 0xdd28f52b, 0x38653b12, 0x38653b12, 0x38653b12, 0x1959c2f6, 0x1959c2f6, 0x1959c2f6, 0x64e1097a, 0x64e1097a, 0x64e1097a, 0xdd28f52b, 0x6363a9b9, 0x6363a9b9, 0xdd28f52b, }, 20 }, -- { "gfxterm_fr", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0xac4a1127, 0x699c2ad8, 0xac4a1127, 0x53f50aa7, 0x43d1f34, 0x43d1f34, 0xfa47dfba, 0xfa47dfba, 0xfa47dfba, 0x854d7612, 0x854d7612, 0x854d7612, 0x1c1c7394, 0x1c1c7394, 0x1c1c7394, 0x43d1f34, 0x53f50aa7, 0x53f50aa7, 0x43d1f34, }, 20 }, -- { "gfxterm_quot", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xbc5f6633, 0xda908ab0, 0xbc5f6633, 0xffa9ab74, 0x59c36f00, 0x59c36f00, 0x3ad73295, 0x3ad73295, 0x3ad73295, 0x44575ff3, 0x44575ff3, 0x44575ff3, 0x26a14a21, 0x26a14a21, 0x26a14a21, 0x59c36f00, 0xffa9ab74, 0xffa9ab74, 0x59c36f00, }, 20 }, -- { "gfxterm_quot", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0xad820d6b, 0x9a88ad3, 0xad820d6b, 0x83878814, 0xaa4593fe, 0xaa4593fe, 0xbec19c1b, 0xbec19c1b, 0xbec19c1b, 0x1834917c, 0x1834917c, 0x1834917c, 0x350c3a04, 0x350c3a04, 0x350c3a04, 0xaa4593fe, 0x83878814, 0x83878814, 0xaa4593fe, }, 20 }, -- { "gfxterm_quot", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xe5774112, 0x5ffb1eca, 0xe5774112, 0xb8602c96, 0xc9cbf769, 0xc9cbf769, 0xe4861949, 0xe4861949, 0xe4861949, 0x1a5ed885, 0x1a5ed885, 0x1a5ed885, 0xf314678d, 0xf314678d, 0xf314678d, 0xc9cbf769, 0xb8602c96, 0xb8602c96, 0xc9cbf769, }, 20 }, -- { "gfxterm_quot", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x6af1a2bc, 0xd951ab8b, 0x6af1a2bc, 0xc4a7eb64, 0x9813a416, 0x9813a416, 0xb5e8801c, 0xb5e8801c, 0xb5e8801c, 0x2433062f, 0x2433062f, 0x2433062f, 0x3d893bff, 0x3d893bff, 0x3d893bff, 0x9813a416, 0xc4a7eb64, 0xc4a7eb64, 0x9813a416, }, 20 }, -- { "gfxterm_quot", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xc6baa18, 0x1c9db179, 0xc6baa18, 0x7acd9fab, 0x5fcf013d, 0x5fcf013d, 0x819b5c4e, 0x819b5c4e, 0x819b5c4e, 0x538b4438, 0x538b4438, 0x538b4438, 0x45f87ba7, 0x45f87ba7, 0x45f87ba7, 0x5fcf013d, 0x7acd9fab, 0x7acd9fab, 0x5fcf013d, }, 20 }, -- { "gfxterm_quot", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xe424a6ab, 0xb05c0275, 0xe424a6ab, 0xff217cac, 0xdd28f52b, 0xdd28f52b, 0xcd83646c, 0xcd83646c, 0xcd83646c, 0xecbf9d88, 0xecbf9d88, 0xecbf9d88, 0x91075604, 0x91075604, 0x91075604, 0xdd28f52b, 0xff217cac, 0xff217cac, 0xdd28f52b, }, 20 }, -- { "gfxterm_quot", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x4a7dff41, 0xe1ec28fc, 0x4a7dff41, 0xb5c2e4c1, 0x43d1f34, 0x43d1f34, 0xb200c08a, 0xb200c08a, 0xb200c08a, 0xcd0a6922, 0xcd0a6922, 0xcd0a6922, 0x545b6ca4, 0x545b6ca4, 0x545b6ca4, 0x43d1f34, 0xb5c2e4c1, 0xb5c2e4c1, 0x43d1f34, }, 20 }, -- { "gfxterm_piglatin", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xd3d3e4a2, 0x9c635046, 0xd3d3e4a2, 0x902529e5, 0x59c36f00, 0x59c36f00, 0x85e713, 0x85e713, 0x85e713, 0x7e058a75, 0x7e058a75, 0x7e058a75, 0x1cf39fa7, 0x1cf39fa7, 0x1cf39fa7, 0x59c36f00, 0x902529e5, 0x902529e5, 0x59c36f00, }, 20 }, -- { "gfxterm_piglatin", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0xd61c80f5, 0xdf78b496, 0xd61c80f5, 0xf819058a, 0xaa4593fe, 0xaa4593fe, 0xefc0f7e7, 0xefc0f7e7, 0xefc0f7e7, 0x4935fa80, 0x4935fa80, 0x4935fa80, 0x640d51f8, 0x640d51f8, 0x640d51f8, 0xaa4593fe, 0xf819058a, 0xf819058a, 0xaa4593fe, }, 20 }, -- { "gfxterm_piglatin", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x936bc89d, 0x523a3e80, 0x936bc89d, 0xce7ca519, 0xc9cbf769, 0xc9cbf769, 0xaa99ffb1, 0xaa99ffb1, 0xaa99ffb1, 0x54413e7d, 0x54413e7d, 0x54413e7d, 0xbd0b8175, 0xbd0b8175, 0xbd0b8175, 0xc9cbf769, 0xce7ca519, 0xce7ca519, 0xc9cbf769, }, 20 }, -- { "gfxterm_piglatin", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x4fdd0291, 0x133fa83d, 0x4fdd0291, 0xe18b4b49, 0x9813a416, 0x9813a416, 0x74c38e90, 0x74c38e90, 0x74c38e90, 0xe51808a3, 0xe51808a3, 0xe51808a3, 0xfca23573, 0xfca23573, 0xfca23573, 0x9813a416, 0xe18b4b49, 0xe18b4b49, 0x9813a416, }, 20 }, -- { "gfxterm_piglatin", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x538203b0, 0x2a92e789, 0x538203b0, 0x25243603, 0x5fcf013d, 0x5fcf013d, 0x5e4d3dd8, 0x5e4d3dd8, 0x5e4d3dd8, 0x8c5d25ae, 0x8c5d25ae, 0x8c5d25ae, 0x9a2e1a31, 0x9a2e1a31, 0x9a2e1a31, 0x5fcf013d, 0x25243603, 0x25243603, 0x5fcf013d, }, 20 }, -- { "gfxterm_piglatin", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xcfc85125, 0xa5b0e11b, 0xcfc85125, 0xd4cd8b22, 0xdd28f52b, 0xdd28f52b, 0x1af8cddc, 0x1af8cddc, 0x1af8cddc, 0x3bc43438, 0x3bc43438, 0x3bc43438, 0x467cffb4, 0x467cffb4, 0x467cffb4, 0xdd28f52b, 0xd4cd8b22, 0xd4cd8b22, 0xdd28f52b, }, 20 }, -- { "gfxterm_piglatin", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0xf2469ffb, 0x1d0c1d2, 0xf2469ffb, 0xdf9847b, 0x43d1f34, 0x43d1f34, 0xa2837c7a, 0xa2837c7a, 0xa2837c7a, 0xdd89d5d2, 0xdd89d5d2, 0xdd89d5d2, 0x44d8d054, 0x44d8d054, 0x44d8d054, 0x43d1f34, 0xdf9847b, 0xdf9847b, 0x43d1f34, }, 20 }, -- { "gfxterm_ch", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x27851cc1, 0x15f731b5, 0x27851cc1, 0x6473d186, 0x59c36f00, 0x59c36f00, 0x125bcddf, 0x125bcddf, 0x125bcddf, 0x6cdba0b9, 0x6cdba0b9, 0x6cdba0b9, 0xe2db56b, 0xe2db56b, 0xe2db56b, 0x59c36f00, 0x6473d186, 0x6473d186, 0x59c36f00, }, 20 }, -- { "gfxterm_ch", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0xfcb223c, 0x2c2e18b9, 0xfcb223c, 0x21cea743, 0xaa4593fe, 0xaa4593fe, 0xd700be1a, 0xd700be1a, 0xd700be1a, 0x71f5b37d, 0x71f5b37d, 0x71f5b37d, 0x5ccd1805, 0x5ccd1805, 0x5ccd1805, 0xaa4593fe, 0x21cea743, 0x21cea743, 0xaa4593fe, }, 20 }, -- { "gfxterm_ch", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x807efaa5, 0xb673036a, 0x807efaa5, 0xdd699721, 0xc9cbf769, 0xc9cbf769, 0xdca3ed4b, 0xdca3ed4b, 0xdca3ed4b, 0x227b2c87, 0x227b2c87, 0x227b2c87, 0xcb31938f, 0xcb31938f, 0xcb31938f, 0xc9cbf769, 0xdd699721, 0xdd699721, 0xc9cbf769, }, 20 }, -- { "gfxterm_ch", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x651d0d50, 0xf0dc38fc, 0x651d0d50, 0xcb4b4488, 0x9813a416, 0x9813a416, 0x80d03ee8, 0x80d03ee8, 0x80d03ee8, 0x110bb8db, 0x110bb8db, 0x110bb8db, 0x8b1850b, 0x8b1850b, 0x8b1850b, 0x9813a416, 0xcb4b4488, 0xcb4b4488, 0x9813a416, }, 20 }, -- { "gfxterm_ch", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xb9b068f, 0xdc68ac3c, 0xb9b068f, 0x7d3d333c, 0x5fcf013d, 0x5fcf013d, 0xa1f0a6e4, 0xa1f0a6e4, 0xa1f0a6e4, 0x73e0be92, 0x73e0be92, 0x73e0be92, 0x6593810d, 0x6593810d, 0x6593810d, 0x5fcf013d, 0x7d3d333c, 0x7d3d333c, 0x5fcf013d, }, 20 }, -- { "gfxterm_ch", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xf0789d7e, 0x6f2f2b61, 0xf0789d7e, 0xeb7d4779, 0xdd28f52b, 0xdd28f52b, 0xb995630, 0xb995630, 0xb995630, 0x2aa5afd4, 0x2aa5afd4, 0x2aa5afd4, 0x571d6458, 0x571d6458, 0x571d6458, 0xdd28f52b, 0xeb7d4779, 0xeb7d4779, 0xdd28f52b, }, 20 }, -- { "gfxterm_ch", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x819821ff, 0xdd19128c, 0x819821ff, 0x7e273a7f, 0x43d1f34, 0x43d1f34, 0xf35981d3, 0xf35981d3, 0xf35981d3, 0x8c53287b, 0x8c53287b, 0x8c53287b, 0x15022dfd, 0x15022dfd, 0x15022dfd, 0x43d1f34, 0x7e273a7f, 0x7e273a7f, 0x43d1f34, }, 20 }, -- { "gfxterm_red", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xa99604d1, 0xcf59e852, 0xa99604d1, 0xfebbba0f, 0x59c36f00, 0x59c36f00, 0x53767ce3, 0x53767ce3, 0x53767ce3, 0x2df61185, 0x2df61185, 0x2df61185, 0x4f000457, 0x4f000457, 0x4f000457, 0x59c36f00, 0xfebbba0f, 0xfebbba0f, 0x59c36f00, }, 20 }, -- { "gfxterm_red", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x7d0a218, 0xa3fa25a0, 0x7d0a218, 0xb777784e, 0xaa4593fe, 0xaa4593fe, 0x35db26e1, 0x35db26e1, 0x35db26e1, 0x932e2b86, 0x932e2b86, 0x932e2b86, 0xbe1680fe, 0xbe1680fe, 0xbe1680fe, 0xaa4593fe, 0xb777784e, 0xb777784e, 0xaa4593fe, }, 20 }, -- { "gfxterm_red", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x63be90f4, 0xd932cf2c, 0x63be90f4, 0x739b8e5a, 0xc9cbf769, 0xc9cbf769, 0x70a00efe, 0x70a00efe, 0x70a00efe, 0x8e78cf32, 0x8e78cf32, 0x8e78cf32, 0x6732703a, 0x6732703a, 0x6732703a, 0xc9cbf769, 0x739b8e5a, 0x739b8e5a, 0xc9cbf769, }, 20 }, -- { "gfxterm_red", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x53460c90, 0xe0e605a7, 0x53460c90, 0x6337f0bf, 0x9813a416, 0x9813a416, 0x4161864c, 0x4161864c, 0x4161864c, 0xd0ba007f, 0xd0ba007f, 0xd0ba007f, 0xc9003daf, 0xc9003daf, 0xc9003daf, 0x9813a416, 0x6337f0bf, 0x6337f0bf, 0x9813a416, }, 20 }, -- { "gfxterm_red", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xf54761a0, 0xe5b17ac1, 0xf54761a0, 0x5b408e55, 0x5fcf013d, 0x5fcf013d, 0x580fda0e, 0x580fda0e, 0x580fda0e, 0x8a1fc278, 0x8a1fc278, 0x8a1fc278, 0x9c6cfde7, 0x9c6cfde7, 0x9c6cfde7, 0x5fcf013d, 0x5b408e55, 0x5b408e55, 0x5fcf013d, }, 20 }, -- { "gfxterm_red", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xec78b0c1, 0xb800141f, 0xec78b0c1, 0x621c7b1b, 0xdd28f52b, 0xdd28f52b, 0x8f60179, 0x8f60179, 0x8f60179, 0x29caf89d, 0x29caf89d, 0x29caf89d, 0x54723311, 0x54723311, 0x54723311, 0xdd28f52b, 0x621c7b1b, 0x621c7b1b, 0xdd28f52b, }, 20 }, -- { "gfxterm_red", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0xf209411b, 0x599896a6, 0xf209411b, 0x6551c7bb, 0x43d1f34, 0x43d1f34, 0x5ac6bb4a, 0x5ac6bb4a, 0x5ac6bb4a, 0x25cc12e2, 0x25cc12e2, 0x25cc12e2, 0xbc9d1764, 0xbc9d1764, 0xbc9d1764, 0x43d1f34, 0x6551c7bb, 0x6551c7bb, 0x43d1f34, }, 20 }, -- { "gfxterm_high", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x93b4fcd8, 0xf57b105b, 0x93b4fcd8, 0x2bfe5312, 0x59c36f00, 0x59c36f00, 0x3ad73295, 0x3ad73295, 0x3ad73295, 0x44575ff3, 0x44575ff3, 0x44575ff3, 0x26a14a21, 0x26a14a21, 0x26a14a21, 0x59c36f00, 0x2bfe5312, 0x2bfe5312, 0x59c36f00, }, 20 }, -- { "gfxterm_high", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x656c9044, 0xc14617fc, 0x656c9044, 0xa6ea58cb, 0xaa4593fe, 0xaa4593fe, 0xbec19c1b, 0xbec19c1b, 0xbec19c1b, 0x1834917c, 0x1834917c, 0x1834917c, 0x350c3a04, 0x350c3a04, 0x350c3a04, 0xaa4593fe, 0xa6ea58cb, 0xa6ea58cb, 0xaa4593fe, }, 20 }, -- { "gfxterm_high", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xa11479ed, 0x1b982635, 0xa11479ed, 0xe37185d0, 0xc9cbf769, 0xc9cbf769, 0xe4861949, 0xe4861949, 0xe4861949, 0x1a5ed885, 0x1a5ed885, 0x1a5ed885, 0xf314678d, 0xf314678d, 0xf314678d, 0xc9cbf769, 0xe37185d0, 0xe37185d0, 0xc9cbf769, }, 20 }, -- { "gfxterm_high", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x244770a7, 0x97e77990, 0x244770a7, 0x6a54d2ee, 0x9813a416, 0x9813a416, 0xb5e8801c, 0xb5e8801c, 0xb5e8801c, 0x2433062f, 0x2433062f, 0x2433062f, 0x3d893bff, 0x3d893bff, 0x3d893bff, 0x9813a416, 0x6a54d2ee, 0x6a54d2ee, 0x9813a416, }, 20 }, -- { "gfxterm_high", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x8ca34476, 0x9c555f17, 0x8ca34476, 0x1fc54b41, 0x5fcf013d, 0x5fcf013d, 0x819b5c4e, 0x819b5c4e, 0x819b5c4e, 0x538b4438, 0x538b4438, 0x538b4438, 0x45f87ba7, 0x45f87ba7, 0x45f87ba7, 0x5fcf013d, 0x1fc54b41, 0x1fc54b41, 0x5fcf013d, }, 20 }, -- { "gfxterm_high", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xf19f6af8, 0xa5e7ce26, 0xf19f6af8, 0x1619aea6, 0xdd28f52b, 0xdd28f52b, 0xcd83646c, 0xcd83646c, 0xcd83646c, 0xecbf9d88, 0xecbf9d88, 0xecbf9d88, 0x91075604, 0x91075604, 0x91075604, 0xdd28f52b, 0x1619aea6, 0x1619aea6, 0xdd28f52b, }, 20 }, -- { "gfxterm_high", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x5f75414f, 0xf4e496f2, 0x5f75414f, 0x27fd1fe0, 0x43d1f34, 0x43d1f34, 0xb200c08a, 0xb200c08a, 0xb200c08a, 0xcd0a6922, 0xcd0a6922, 0xcd0a6922, 0x545b6ca4, 0x545b6ca4, 0x545b6ca4, 0x43d1f34, 0x27fd1fe0, 0x27fd1fe0, 0x43d1f34, }, 20 }, -+ { "cmdline_cat", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x8851b0ee, 0x8851b0ee, 0xafb59f0b, 0xafb59f0b, 0x8c9b72f1, 0x8c9b72f1, 0x6eec5116, 0x6eec5116, 0xad82053e, 0xad82053e, 0x2eeae2ae, 0x2eeae2ae, 0x58cf8def, 0x58cf8def, 0x926f4d2f, 0x926f4d2f, 0xbd1c3236, 0xbd1c3236, 0x56012a95, 0x56012a95, 0x6d7c40ae, 0x6d7c40ae, 0xef750bc8, 0xef750bc8, 0x1080dd4a, 0x1080dd4a, 0xd7f9e5af, 0xd7f9e5af, 0x80b1b4a9, 0x80b1b4a9, 0x2c99415e, 0x2c99415e, 0x8d5761ff, 0x8d5761ff, 0xb964b489, 0xb964b489, 0x88a51f74, 0x88a51f74, 0x1da6c458, 0x1da6c458, 0x85e94025, 0x206ea54f, 0x7ee6c8fd, 0x7ee6c8fd, }, 45 }, -+ { "cmdline_cat", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x834b70a0, 0x834b70a0, 0xe7cc129f, 0xe7cc129f, 0x5ee2edc, 0x5ee2edc, 0xa1135cd7, 0xa1135cd7, 0xf7ce1f26, 0xf7ce1f26, 0xe9f803e8, 0xe9f803e8, 0x4b8f9724, 0x4b8f9724, 0x3fe3771a, 0x3fe3771a, 0x5584ee63, 0x5584ee63, 0xac193250, 0xac193250, 0x801f25f4, 0x801f25f4, 0x8d33aece, 0x8d33aece, 0xc6d95edc, 0xc6d95edc, 0xf121dee2, 0xf121dee2, 0x6ab10812, 0x6ab10812, 0x41a5b112, 0x41a5b112, 0xac6f712b, 0xac6f712b, 0x8aee7a19, 0x8aee7a19, 0xfe37c0ad, 0xfe37c0ad, 0x99c6a336, 0x99c6a336, 0x53b844c6, 0x73015447, 0x7a1a2254, 0x7a1a2254, }, 45 }, -+ { "cmdline_cat", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xb121c912, 0xb121c912, 0x635a8739, 0x635a8739, 0x8288cba6, 0x8288cba6, 0xf5589d0, 0xf5589d0, 0x471642b3, 0x471642b3, 0xfb4826cf, 0xfb4826cf, 0x8b1083cf, 0x8b1083cf, 0x738b0c94, 0x738b0c94, 0x859c41b0, 0x859c41b0, 0x7c8d1be9, 0x7c8d1be9, 0x5b685e40, 0x5b685e40, 0x9cf80d95, 0x9cf80d95, 0x3541f915, 0x3541f915, 0x582b8557, 0x582b8557, 0x24cf88f7, 0x24cf88f7, 0x9e0af23, 0x9e0af23, 0x1033164b, 0x1033164b, 0x70ba51e2, 0x70ba51e2, 0xb051585c, 0xb051585c, 0xe1389f04, 0xe1389f04, 0x308bbb74, 0xdc9e6805, 0x4ddcff9f, 0x4ddcff9f, }, 45 }, -+ { "cmdline_cat", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0xac16e832, 0xac16e832, 0xbf6ab9c6, 0xbf6ab9c6, 0x1063e15a, 0x1063e15a, 0xf908e3ff, 0xf908e3ff, 0xcb37d841, 0xcb37d841, 0x9b8ffa7d, 0x9b8ffa7d, 0x38d2a26c, 0x38d2a26c, 0x6989f09b, 0x6989f09b, 0x481451e, 0x481451e, 0x17b3177, 0x17b3177, 0x3ea52aeb, 0x3ea52aeb, 0xc24de674, 0xc24de674, 0x4ab163cc, 0x4ab163cc, 0xc482b092, 0xc482b092, 0x55ffc7e2, 0x55ffc7e2, 0x3b4b34dd, 0x3b4b34dd, 0x9b1f047f, 0x9b1f047f, 0x3d42e414, 0x3d42e414, 0x35b2fb06, 0x35b2fb06, 0xb813b35f, 0xb813b35f, 0xc3ede6e0, 0xc35214c3, 0x340f0107, 0x340f0107, }, 45 }, -+ { "cmdline_cat", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x9c47caee, 0x9c47caee, 0x6c9c4f38, 0x6c9c4f38, 0x79c49615, 0x79c49615, 0x70fe9708, 0x70fe9708, 0x8e90c077, 0x8e90c077, 0xd8205b47, 0xd8205b47, 0xa34337e2, 0xa34337e2, 0xf4dffa53, 0xf4dffa53, 0x90a0779c, 0x90a0779c, 0x322820bb, 0x322820bb, 0x50e3383f, 0x50e3383f, 0x4a976e3e, 0x4a976e3e, 0x90b6f8d9, 0x90b6f8d9, 0x4058c301, 0x4058c301, 0x221a6810, 0x221a6810, 0x1f78a00e, 0x1f78a00e, 0x6a633d2c, 0x6a633d2c, 0xca177c65, 0xca177c65, 0xabb6c7f9, 0xabb6c7f9, 0x635a35e8, 0x635a35e8, 0x6da78f10, 0x53467ff8, 0xd037fdfa, 0xd037fdfa, }, 45 }, -+ { "cmdline_cat", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x2b6b8225, 0x2b6b8225, 0x83df9995, 0x83df9995, 0x5165ad0b, 0x5165ad0b, 0xe5a6f96d, 0xe5a6f96d, 0x798df957, 0x798df957, 0x8c0567e2, 0x8c0567e2, 0x5e5d7389, 0x5e5d7389, 0x47a39dd, 0x47a39dd, 0x894f44af, 0x894f44af, 0x1dff0a6, 0x1dff0a6, 0xf496e67b, 0xf496e67b, 0x29cb5702, 0x29cb5702, 0xeaf1387d, 0xeaf1387d, 0x4a9bf7, 0x4a9bf7, 0x11d20bee, 0x11d20bee, 0xa103dc2d, 0xa103dc2d, 0xd0265db9, 0xd0265db9, 0x42267334, 0x42267334, 0x96f85e8c, 0x96f85e8c, 0xa28eac49, 0xa28eac49, 0x4e660ae7, 0x70741b3, 0x183f2f2e, 0x183f2f2e, }, 45 }, -+ { "cmdline_cat", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x77b51f44, 0x77b51f44, 0xc8097569, 0xc8097569, 0x769aee5f, 0x769aee5f, 0xa35e159, 0xa35e159, 0x87a6341f, 0x87a6341f, 0xb61d944b, 0xb61d944b, 0x8b109cb3, 0x8b109cb3, 0xed3fb3e, 0xed3fb3e, 0xd7cc6c3, 0xd7cc6c3, 0x52077f0d, 0x52077f0d, 0x9d86d17e, 0x9d86d17e, 0x5e487bb, 0x5e487bb, 0x3a00041b, 0x3a00041b, 0xcfdeaf9e, 0xcfdeaf9e, 0x3e40af89, 0x3e40af89, 0x5ec41ea9, 0x5ec41ea9, 0x6298e4e7, 0x6298e4e7, 0xfd67f90e, 0xfd67f90e, 0x5ab5dc32, 0x5ab5dc32, 0xdd3ad694, 0xdd3ad694, 0x391222b4, 0xd4a98b43, 0xeaa2f62, 0xeaa2f62, }, 45 }, -+ { "gfxterm_menu", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x45b0713c, 0x237f9dbf, 0x45b0713c, 0x646bc7b, 0x59c36f00, 0x59c36f00, 0x7fd94135, 0x7fd94135, 0x7fd94135, 0x1592c53, 0x1592c53, 0x1592c53, 0x63af3981, 0x63af3981, 0x63af3981, 0x59c36f00, 0x646bc7b, 0x646bc7b, 0x59c36f00, }, 20 }, -+ { "gfxterm_menu", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x84abc7db, 0x20814063, 0x84abc7db, 0xaaae42a4, 0xaa4593fe, 0xaa4593fe, 0x2e88732f, 0x2e88732f, 0x2e88732f, 0x887d7e48, 0x887d7e48, 0x887d7e48, 0xa545d530, 0xa545d530, 0xa545d530, 0xaa4593fe, 0xaaae42a4, 0xaaae42a4, 0xaa4593fe, }, 20 }, -+ { "gfxterm_menu", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x5b85371a, 0xe10968c2, 0x5b85371a, 0x6925a9e, 0xc9cbf769, 0xc9cbf769, 0xda1c9f17, 0xda1c9f17, 0xda1c9f17, 0x24c45edb, 0x24c45edb, 0x24c45edb, 0xcd8ee1d3, 0xcd8ee1d3, 0xcd8ee1d3, 0xc9cbf769, 0x6925a9e, 0x6925a9e, 0xc9cbf769, }, 20 }, -+ { "gfxterm_menu", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x9130464d, 0x22904f7a, 0x9130464d, 0x3f660f95, 0x9813a416, 0x9813a416, 0xfb08d7cf, 0xfb08d7cf, 0xfb08d7cf, 0x6ad351fc, 0x6ad351fc, 0x6ad351fc, 0x73696c2c, 0x73696c2c, 0x73696c2c, 0x9813a416, 0x3f660f95, 0x3f660f95, 0x9813a416, }, 20 }, -+ { "gfxterm_menu", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x5185b14e, 0x4173aa2f, 0x5185b14e, 0x272384fd, 0x5fcf013d, 0x5fcf013d, 0x9e56a9e0, 0x9e56a9e0, 0x9e56a9e0, 0x4c46b196, 0x4c46b196, 0x4c46b196, 0x5a358e09, 0x5a358e09, 0x5a358e09, 0x5fcf013d, 0x272384fd, 0x272384fd, 0x5fcf013d, }, 20 }, -+ { "gfxterm_menu", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x5cc0d3ef, 0x8b87731, 0x5cc0d3ef, 0x47c509e8, 0xdd28f52b, 0xdd28f52b, 0xe1579057, 0xe1579057, 0xe1579057, 0xc06b69b3, 0xc06b69b3, 0xc06b69b3, 0xbdd3a23f, 0xbdd3a23f, 0xbdd3a23f, 0xdd28f52b, 0x47c509e8, 0x47c509e8, 0xdd28f52b, }, 20 }, -+ { "gfxterm_menu", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0xd1338a02, 0x7aa25dbf, 0xd1338a02, 0x2e8c9182, 0x43d1f34, 0x43d1f34, 0x6486f7c4, 0x6486f7c4, 0x6486f7c4, 0x1b8c5e6c, 0x1b8c5e6c, 0x1b8c5e6c, 0x82dd5bea, 0x82dd5bea, 0x82dd5bea, 0x43d1f34, 0x2e8c9182, 0x2e8c9182, 0x43d1f34, }, 20 }, -+ { "gfxmenu", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x1027210c, 0x64e51c81, 0x1027210c, 0x45ca4a8a, 0x9a2e0d26, 0x2b88b6ce, 0x2b88b6ce, 0x2b88b6ce, 0x7750400e, 0x7750400e, 0x7750400e, 0x5ec88e9c, 0x5ec88e9c, 0x5ec88e9c, 0x59c36f00, 0x45ca4a8a, 0x45ca4a8a, }, 18 }, -+ { "gfxmenu", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x8d12f697, 0xc5b32248, 0x8d12f697, 0x56720aa4, 0xa9d58ccd, 0xa1b1a1b5, 0xa1b1a1b5, 0xa1b1a1b5, 0xf4ee0bbf, 0xf4ee0bbf, 0xf4ee0bbf, 0x9dddc3f6, 0x9dddc3f6, 0x9dddc3f6, 0xaa4593fe, 0x56720aa4, 0x56720aa4, }, 18 }, -+ { "gfxmenu", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xa5ec9f45, 0xdb7085d8, 0xa5ec9f45, 0x9caf1d3f, 0x5411be8b, 0xa07e74d3, 0xa07e74d3, 0xa07e74d3, 0xdfc0d247, 0xdfc0d247, 0xdfc0d247, 0x9db4b23f, 0x9db4b23f, 0x9db4b23f, 0xc9cbf769, 0x9caf1d3f, 0x9caf1d3f, }, 18 }, -+ { "gfxmenu", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x1c3742c9, 0xce8e83bf, 0xeb96c838, 0xce8e83bf, 0x73cb3bc1, 0x740d78cf, 0x84312594, 0x84312594, 0x84312594, 0x6f94cfe8, 0x6f94cfe8, 0x6f94cfe8, 0x69dfcf18, 0x69dfcf18, 0x69dfcf18, 0x1c3742c9, 0x73cb3bc1, 0x73cb3bc1, }, 18 }, -+ { "gfxmenu", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0xcc5a7bed, 0x56a03e51, 0xee7d8d4b, 0x56a03e51, 0x5bdf9413, 0xbcda144c, 0x131c0760, 0x131c0760, 0x131c0760, 0x7c55db71, 0x7c55db71, 0x7c55db71, 0x71a34572, 0x71a34572, 0x71a34572, 0xcc5a7bed, 0x5bdf9413, 0x5bdf9413, }, 18 }, -+ { "gfxmenu", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xef4a3312, 0xea8a9cf0, 0x8929e522, 0xea8a9cf0, 0x78f3dfbc, 0x5d55a141, 0xb9092e0b, 0xb9092e0b, 0xb9092e0b, 0x7fbb6a15, 0x7fbb6a15, 0x7fbb6a15, 0x6bdebaaa, 0x6bdebaaa, 0x6bdebaaa, 0xef4a3312, 0x78f3dfbc, 0x78f3dfbc, }, 18 }, -+ { "gfxmenu", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x54e48d80, 0x6dcf1d57, 0x925a4c8f, 0x6dcf1d57, 0x69005b38, 0x6d6bb4bc, 0x14f7c6b1, 0x14f7c6b1, 0x14f7c6b1, 0x95043060, 0x95043060, 0x95043060, 0x3a0890f, 0x3a0890f, 0x3a0890f, 0x54e48d80, 0x69005b38, 0x69005b38, }, 18 }, -+ { "gfxterm_ar", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x77ff5efc, 0x791fe364, 0x77ff5efc, 0x340993bb, 0x59c36f00, 0x59c36f00, 0x3908ca1e, 0x3908ca1e, 0x3908ca1e, 0x4788a778, 0x4788a778, 0x4788a778, 0x257eb2aa, 0x257eb2aa, 0x257eb2aa, 0x59c36f00, 0x340993bb, 0x340993bb, 0x59c36f00, }, 20 }, -+ { "gfxterm_ar", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0xb2d04b0f, 0x46cdbc23, 0xb2d04b0f, 0x9cd5ce70, 0xaa4593fe, 0xaa4593fe, 0x44bf6b37, 0x44bf6b37, 0x44bf6b37, 0xe24a6650, 0xe24a6650, 0xe24a6650, 0xcf72cd28, 0xcf72cd28, 0xcf72cd28, 0xaa4593fe, 0x9cd5ce70, 0x9cd5ce70, 0xaa4593fe, }, 20 }, -+ { "gfxterm_ar", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x4bb823b8, 0x59349835, 0x4bb823b8, 0x16af4e3c, 0xc9cbf769, 0xc9cbf769, 0x2784b68e, 0x2784b68e, 0x2784b68e, 0xd95c7742, 0xd95c7742, 0xd95c7742, 0x3016c84a, 0x3016c84a, 0x3016c84a, 0xc9cbf769, 0x16af4e3c, 0x16af4e3c, 0xc9cbf769, }, 20 }, -+ { "gfxterm_ar", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0xb821e44, 0x16b3ac05, 0xb821e44, 0xa5d4579c, 0x9813a416, 0x9813a416, 0xca80d730, 0xca80d730, 0xca80d730, 0x5b5b5103, 0x5b5b5103, 0x5b5b5103, 0x42e16cd3, 0x42e16cd3, 0x42e16cd3, 0x9813a416, 0xa5d4579c, 0xa5d4579c, 0x9813a416, }, 20 }, -+ { "gfxterm_ar", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xbe0b9671, 0x7f6e98d0, 0xbe0b9671, 0xc8ada3c2, 0x5fcf013d, 0x5fcf013d, 0x57a0c67d, 0x57a0c67d, 0x57a0c67d, 0x85b0de0b, 0x85b0de0b, 0x85b0de0b, 0x93c3e194, 0x93c3e194, 0x93c3e194, 0x5fcf013d, 0xc8ada3c2, 0xc8ada3c2, 0x5fcf013d, }, 20 }, -+ { "gfxterm_ar", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x9f18b29e, 0x50e7d383, 0x9f18b29e, 0x841d6899, 0xdd28f52b, 0xdd28f52b, 0xd12092dc, 0xd12092dc, 0xd12092dc, 0xf01c6b38, 0xf01c6b38, 0xf01c6b38, 0x8da4a0b4, 0x8da4a0b4, 0x8da4a0b4, 0xdd28f52b, 0x841d6899, 0x841d6899, 0xdd28f52b, }, 20 }, -+ { "gfxterm_ar", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x4e8d4d8c, 0x3f32cb90, 0x4e8d4d8c, 0xb132560c, 0x43d1f34, 0x43d1f34, 0x1e7f303c, 0x1e7f303c, 0x1e7f303c, 0x61759994, 0x61759994, 0x61759994, 0xf8249c12, 0xf8249c12, 0xf8249c12, 0x43d1f34, 0xb132560c, 0xb132560c, 0x43d1f34, }, 20 }, -+ { "gfxterm_cyr", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x4f39b2c5, 0x37084023, 0x4f39b2c5, 0xccf7f82, 0x59c36f00, 0x59c36f00, 0xb5dad2e, 0xb5dad2e, 0xb5dad2e, 0x75ddc048, 0x75ddc048, 0x75ddc048, 0x172bd59a, 0x172bd59a, 0x172bd59a, 0x59c36f00, 0xccf7f82, 0xccf7f82, 0x59c36f00, }, 20 }, -+ { "gfxterm_cyr", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0xd5f24f8e, 0x76463f82, 0xd5f24f8e, 0xfbf7caf1, 0xaa4593fe, 0xaa4593fe, 0xb897c475, 0xb897c475, 0xb897c475, 0x1e62c912, 0x1e62c912, 0x1e62c912, 0x335a626a, 0x335a626a, 0x335a626a, 0xaa4593fe, 0xfbf7caf1, 0xfbf7caf1, 0xaa4593fe, }, 20 }, -+ { "gfxterm_cyr", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x8aa7c8c3, 0x28620e7e, 0x8aa7c8c3, 0xd7b0a547, 0xc9cbf769, 0xc9cbf769, 0x860f1899, 0x860f1899, 0x860f1899, 0x78d7d955, 0x78d7d955, 0x78d7d955, 0x919d665d, 0x919d665d, 0x919d665d, 0xc9cbf769, 0xd7b0a547, 0xd7b0a547, 0xc9cbf769, }, 20 }, -+ { "gfxterm_cyr", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x89654b6, 0x26bab4dd, 0x89654b6, 0xa6c01d6e, 0x9813a416, 0x9813a416, 0xc67652d9, 0xc67652d9, 0xc67652d9, 0x57add4ea, 0x57add4ea, 0x57add4ea, 0x4e17e93a, 0x4e17e93a, 0x4e17e93a, 0x9813a416, 0xa6c01d6e, 0xa6c01d6e, 0x9813a416, }, 20 }, -+ { "gfxterm_cyr", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x77945f28, 0xec3ce845, 0x77945f28, 0x1326a9b, 0x5fcf013d, 0x5fcf013d, 0xc8e6e12c, 0xc8e6e12c, 0xc8e6e12c, 0x1af6f95a, 0x1af6f95a, 0x1af6f95a, 0xc85c6c5, 0xc85c6c5, 0xc85c6c5, 0x5fcf013d, 0x1326a9b, 0x1326a9b, 0x5fcf013d, }, 20 }, -+ { "gfxterm_cyr", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x4450a5dc, 0xda479f49, 0x4450a5dc, 0x5f557fdb, 0xdd28f52b, 0xdd28f52b, 0xddfe9197, 0xddfe9197, 0xddfe9197, 0xfcc26873, 0xfcc26873, 0xfcc26873, 0x817aa3ff, 0x817aa3ff, 0x817aa3ff, 0xdd28f52b, 0x5f557fdb, 0x5f557fdb, 0xdd28f52b, }, 20 }, -+ { "gfxterm_cyr", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x409098da, 0x2e0890e, 0x409098da, 0xbf2f835a, 0x43d1f34, 0x43d1f34, 0x253d050e, 0x253d050e, 0x253d050e, 0x5a37aca6, 0x5a37aca6, 0x5a37aca6, 0xc366a920, 0xc366a920, 0xc366a920, 0x43d1f34, 0xbf2f835a, 0xbf2f835a, 0x43d1f34, }, 20 }, -+ { "gfxterm_heb", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x546aa9f1, 0x56bf26d0, 0x546aa9f1, 0x179c64b6, 0x59c36f00, 0x59c36f00, 0xa98ad4a1, 0xa98ad4a1, 0xa98ad4a1, 0xd70ab9c7, 0xd70ab9c7, 0xd70ab9c7, 0xb5fcac15, 0xb5fcac15, 0xb5fcac15, 0x59c36f00, 0x179c64b6, 0x179c64b6, 0x59c36f00, }, 20 }, -+ { "gfxterm_heb", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x12592c97, 0xa10f7034, 0x12592c97, 0x3c5ca9e8, 0xaa4593fe, 0xaa4593fe, 0x2c3e194, 0x2c3e194, 0x2c3e194, 0xa436ecf3, 0xa436ecf3, 0xa436ecf3, 0x890e478b, 0x890e478b, 0x890e478b, 0xaa4593fe, 0x3c5ca9e8, 0x3c5ca9e8, 0xaa4593fe, }, 20 }, -+ { "gfxterm_heb", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xed5de42a, 0x5cf94e51, 0xed5de42a, 0xb04a89ae, 0xc9cbf769, 0xc9cbf769, 0xdd578210, 0xdd578210, 0xdd578210, 0x238f43dc, 0x238f43dc, 0x238f43dc, 0xcac5fcd4, 0xcac5fcd4, 0xcac5fcd4, 0xc9cbf769, 0xb04a89ae, 0xb04a89ae, 0xc9cbf769, }, 20 }, -+ { "gfxterm_heb", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0xbbc56f90, 0x4f643bbb, 0xbbc56f90, 0x15932648, 0x9813a416, 0x9813a416, 0x28aba4d1, 0x28aba4d1, 0x28aba4d1, 0xb97022e2, 0xb97022e2, 0xb97022e2, 0xa0ca1f32, 0xa0ca1f32, 0xa0ca1f32, 0x9813a416, 0x15932648, 0x15932648, 0x9813a416, }, 20 }, -+ { "gfxterm_heb", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x43465d8c, 0x6399888a, 0x43465d8c, 0x35e0683f, 0x5fcf013d, 0x5fcf013d, 0x4895c207, 0x4895c207, 0x4895c207, 0x9a85da71, 0x9a85da71, 0x9a85da71, 0x8cf6e5ee, 0x8cf6e5ee, 0x8cf6e5ee, 0x5fcf013d, 0x35e0683f, 0x35e0683f, 0x5fcf013d, }, 20 }, -+ { "gfxterm_heb", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xd1e7f231, 0xe67e195e, 0xd1e7f231, 0xcae22836, 0xdd28f52b, 0xdd28f52b, 0xe7ae9f08, 0xe7ae9f08, 0xe7ae9f08, 0xc69266ec, 0xc69266ec, 0xc69266ec, 0xbb2aad60, 0xbb2aad60, 0xbb2aad60, 0xdd28f52b, 0xcae22836, 0xcae22836, 0xdd28f52b, }, 20 }, -+ { "gfxterm_heb", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x793e58f4, 0x5f939386, 0x793e58f4, 0x86814374, 0x43d1f34, 0x43d1f34, 0x12b2b9c1, 0x12b2b9c1, 0x12b2b9c1, 0x6db81069, 0x6db81069, 0x6db81069, 0xf4e915ef, 0xf4e915ef, 0xf4e915ef, 0x43d1f34, 0x86814374, 0x86814374, 0x43d1f34, }, 20 }, -+ { "gfxterm_gre", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x226c0d75, 0x9e291f4f, 0x226c0d75, 0x619ac032, 0x59c36f00, 0x59c36f00, 0x6fb6253, 0x6fb6253, 0x6fb6253, 0x787b0f35, 0x787b0f35, 0x787b0f35, 0x1a8d1ae7, 0x1a8d1ae7, 0x1a8d1ae7, 0x59c36f00, 0x619ac032, 0x619ac032, 0x59c36f00, }, 20 }, -+ { "gfxterm_gre", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x8355045, 0xfe058b68, 0x8355045, 0x2630d53a, 0xaa4593fe, 0xaa4593fe, 0x290a3822, 0x290a3822, 0x290a3822, 0x8fff3545, 0x8fff3545, 0x8fff3545, 0xa2c79e3d, 0xa2c79e3d, 0xa2c79e3d, 0xaa4593fe, 0x2630d53a, 0x2630d53a, 0xaa4593fe, }, 20 }, -+ { "gfxterm_gre", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xc702fa59, 0x74086887, 0xc702fa59, 0x9a1597dd, 0xc9cbf769, 0xc9cbf769, 0x60295baa, 0x60295baa, 0x60295baa, 0x9ef19a66, 0x9ef19a66, 0x9ef19a66, 0x77bb256e, 0x77bb256e, 0x77bb256e, 0xc9cbf769, 0x9a1597dd, 0x9a1597dd, 0xc9cbf769, }, 20 }, -+ { "gfxterm_gre", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x82385331, 0xf77eda42, 0x82385331, 0x2c6e1ae9, 0x9813a416, 0x9813a416, 0x140c0d1f, 0x140c0d1f, 0x140c0d1f, 0x85d78b2c, 0x85d78b2c, 0x85d78b2c, 0x9c6db6fc, 0x9c6db6fc, 0x9c6db6fc, 0x9813a416, 0x2c6e1ae9, 0x2c6e1ae9, 0x9813a416, }, 20 }, -+ { "gfxterm_gre", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x565d2d38, 0x34f757ec, 0x565d2d38, 0x20fb188b, 0x5fcf013d, 0x5fcf013d, 0x230bf123, 0x230bf123, 0x230bf123, 0xf11be955, 0xf11be955, 0xf11be955, 0xe768d6ca, 0xe768d6ca, 0xe768d6ca, 0x5fcf013d, 0x20fb188b, 0x20fb188b, 0x5fcf013d, }, 20 }, -+ { "gfxterm_gre", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x632132a4, 0x4a8c90b2, 0x632132a4, 0x7824e8a3, 0xdd28f52b, 0xdd28f52b, 0xef2bffce, 0xef2bffce, 0xef2bffce, 0xce17062a, 0xce17062a, 0xce17062a, 0xb3afcda6, 0xb3afcda6, 0xb3afcda6, 0xdd28f52b, 0x7824e8a3, 0x7824e8a3, 0xdd28f52b, }, 20 }, -+ { "gfxterm_gre", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x461d4cfa, 0xfd3492c2, 0x461d4cfa, 0xb9a2577a, 0x43d1f34, 0x43d1f34, 0xfb72301f, 0xfb72301f, 0xfb72301f, 0x847899b7, 0x847899b7, 0x847899b7, 0x1d299c31, 0x1d299c31, 0x1d299c31, 0x43d1f34, 0xb9a2577a, 0xb9a2577a, 0x43d1f34, }, 20 }, -+ { "gfxterm_ru", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x82758f66, 0xbac387fd, 0x82758f66, 0xc1834221, 0x59c36f00, 0x59c36f00, 0x4877befe, 0x4877befe, 0x4877befe, 0x36f7d398, 0x36f7d398, 0x36f7d398, 0x5401c64a, 0x5401c64a, 0x5401c64a, 0x59c36f00, 0xc1834221, 0xc1834221, 0x59c36f00, }, 20 }, -+ { "gfxterm_ru", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x4500a591, 0x9a40cbd8, 0x4500a591, 0x6b0520ee, 0xaa4593fe, 0xaa4593fe, 0x16db2902, 0x16db2902, 0x16db2902, 0xb02e2465, 0xb02e2465, 0xb02e2465, 0x9d168f1d, 0x9d168f1d, 0x9d168f1d, 0xaa4593fe, 0x6b0520ee, 0x6b0520ee, 0xaa4593fe, }, 20 }, -+ { "gfxterm_ru", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x3cd9ea11, 0x1244c852, 0x3cd9ea11, 0x61ce8795, 0xc9cbf769, 0xc9cbf769, 0x6b15d6f0, 0x6b15d6f0, 0x6b15d6f0, 0x95cd173c, 0x95cd173c, 0x95cd173c, 0x7c87a834, 0x7c87a834, 0x7c87a834, 0xc9cbf769, 0x61ce8795, 0x61ce8795, 0xc9cbf769, }, 20 }, -+ { "gfxterm_ru", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0xc818f15f, 0xbaf13382, 0xc818f15f, 0x664eb887, 0x9813a416, 0x9813a416, 0x350fe990, 0x350fe990, 0x350fe990, 0xa4d46fa3, 0xa4d46fa3, 0xa4d46fa3, 0xbd6e5273, 0xbd6e5273, 0xbd6e5273, 0x9813a416, 0x664eb887, 0x664eb887, 0x9813a416, }, 20 }, -+ { "gfxterm_ru", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xaa1dc81, 0x234341dd, 0xaa1dc81, 0x7c07e932, 0x5fcf013d, 0x5fcf013d, 0x969354c5, 0x969354c5, 0x969354c5, 0x44834cb3, 0x44834cb3, 0x44834cb3, 0x52f0732c, 0x52f0732c, 0x52f0732c, 0x5fcf013d, 0x7c07e932, 0x7c07e932, 0x5fcf013d, }, 20 }, -+ { "gfxterm_ru", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xd9aa4b29, 0x555fdda0, 0xd9aa4b29, 0xc2af912e, 0xdd28f52b, 0xdd28f52b, 0xe82cbfd, 0xe82cbfd, 0xe82cbfd, 0x2fbe3219, 0x2fbe3219, 0x2fbe3219, 0x5206f995, 0x5206f995, 0x5206f995, 0xdd28f52b, 0xc2af912e, 0xc2af912e, 0xdd28f52b, }, 20 }, -+ { "gfxterm_ru", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0xfd4e19ff, 0x42807b86, 0xfd4e19ff, 0x2f1027f, 0x43d1f34, 0x43d1f34, 0x924dc5be, 0x924dc5be, 0x924dc5be, 0xed476c16, 0xed476c16, 0xed476c16, 0x74166990, 0x74166990, 0x74166990, 0x43d1f34, 0x2f1027f, 0x2f1027f, 0x43d1f34, }, 20 }, -+ { "gfxterm_fr", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x3a63a2e6, 0x118487d4, 0x3a63a2e6, 0x79956fa1, 0x59c36f00, 0x59c36f00, 0x389f4d2d, 0x389f4d2d, 0x389f4d2d, 0x461f204b, 0x461f204b, 0x461f204b, 0x24e93599, 0x24e93599, 0x24e93599, 0x59c36f00, 0x79956fa1, 0x79956fa1, 0x59c36f00, }, 20 }, -+ { "gfxterm_fr", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x62d33f4d, 0x9544a8f4, 0x62d33f4d, 0x4cd6ba32, 0xaa4593fe, 0xaa4593fe, 0xfb86a3a4, 0xfb86a3a4, 0xfb86a3a4, 0x5d73aec3, 0x5d73aec3, 0x5d73aec3, 0x704b05bb, 0x704b05bb, 0x704b05bb, 0xaa4593fe, 0x4cd6ba32, 0x4cd6ba32, 0xaa4593fe, }, 20 }, -+ { "gfxterm_fr", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x8cc4b6dc, 0x1042c383, 0x8cc4b6dc, 0xd1d3db58, 0xc9cbf769, 0xc9cbf769, 0xeba8a32b, 0xeba8a32b, 0xeba8a32b, 0x157062e7, 0x157062e7, 0x157062e7, 0xfc3addef, 0xfc3addef, 0xfc3addef, 0xc9cbf769, 0xd1d3db58, 0xd1d3db58, 0xc9cbf769, }, 20 }, -+ { "gfxterm_fr", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x23f9afd, 0x465f5ecc, 0x23f9afd, 0xac69d325, 0x9813a416, 0x9813a416, 0xccf7a1e3, 0xccf7a1e3, 0xccf7a1e3, 0x5d2c27d0, 0x5d2c27d0, 0x5d2c27d0, 0x44961a00, 0x44961a00, 0x44961a00, 0x9813a416, 0xac69d325, 0xac69d325, 0x9813a416, }, 20 }, -+ { "gfxterm_fr", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xed796a26, 0x3132d083, 0xed796a26, 0x9bdf5f95, 0x5fcf013d, 0x5fcf013d, 0x42f66a49, 0x42f66a49, 0x42f66a49, 0x90e6723f, 0x90e6723f, 0x90e6723f, 0x86954da0, 0x86954da0, 0x86954da0, 0x5fcf013d, 0x9bdf5f95, 0x9bdf5f95, 0x5fcf013d, }, 20 }, -+ { "gfxterm_fr", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x54b28785, 0x7fbbe762, 0x54b28785, 0x4fb75d82, 0xdd28f52b, 0xdd28f52b, 0x14b1cf29, 0x14b1cf29, 0x14b1cf29, 0x358d36cd, 0x358d36cd, 0x358d36cd, 0x4835fd41, 0x4835fd41, 0x4835fd41, 0xdd28f52b, 0x4fb75d82, 0x4fb75d82, 0xdd28f52b, }, 20 }, -+ { "gfxterm_fr", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x7acc2669, 0xbf1a1d96, 0x7acc2669, 0x85733de9, 0x43d1f34, 0x43d1f34, 0x2cc1e8f4, 0x2cc1e8f4, 0x2cc1e8f4, 0x53cb415c, 0x53cb415c, 0x53cb415c, 0xca9a44da, 0xca9a44da, 0xca9a44da, 0x43d1f34, 0x85733de9, 0x85733de9, 0x43d1f34, }, 20 }, -+ { "gfxterm_quot", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xf9511593, 0x9f9ef910, 0xf9511593, 0xbaa7d8d4, 0x59c36f00, 0x59c36f00, 0x7fd94135, 0x7fd94135, 0x7fd94135, 0x1592c53, 0x1592c53, 0x1592c53, 0x63af3981, 0x63af3981, 0x63af3981, 0x59c36f00, 0xbaa7d8d4, 0xbaa7d8d4, 0x59c36f00, }, 20 }, -+ { "gfxterm_quot", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x3dcbe25f, 0x99e165e7, 0x3dcbe25f, 0x13ce6720, 0xaa4593fe, 0xaa4593fe, 0x2e88732f, 0x2e88732f, 0x2e88732f, 0x887d7e48, 0x887d7e48, 0x887d7e48, 0xa545d530, 0xa545d530, 0xa545d530, 0xaa4593fe, 0x13ce6720, 0x13ce6720, 0xaa4593fe, }, 20 }, -+ { "gfxterm_quot", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xdbedc74c, 0x61619894, 0xdbedc74c, 0x86faaac8, 0xc9cbf769, 0xc9cbf769, 0xda1c9f17, 0xda1c9f17, 0xda1c9f17, 0x24c45edb, 0x24c45edb, 0x24c45edb, 0xcd8ee1d3, 0xcd8ee1d3, 0xcd8ee1d3, 0xc9cbf769, 0x86faaac8, 0x86faaac8, 0xc9cbf769, }, 20 }, -+ { "gfxterm_quot", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x2411f56f, 0x97b1fc58, 0x2411f56f, 0x8a47bcb7, 0x9813a416, 0x9813a416, 0xfb08d7cf, 0xfb08d7cf, 0xfb08d7cf, 0x6ad351fc, 0x6ad351fc, 0x6ad351fc, 0x73696c2c, 0x73696c2c, 0x73696c2c, 0x9813a416, 0x8a47bcb7, 0x8a47bcb7, 0x9813a416, }, 20 }, -+ { "gfxterm_quot", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x13a65fb6, 0x35044d7, 0x13a65fb6, 0x65006a05, 0x5fcf013d, 0x5fcf013d, 0x9e56a9e0, 0x9e56a9e0, 0x9e56a9e0, 0x4c46b196, 0x4c46b196, 0x4c46b196, 0x5a358e09, 0x5a358e09, 0x5a358e09, 0x5fcf013d, 0x65006a05, 0x65006a05, 0x5fcf013d, }, 20 }, -+ { "gfxterm_quot", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xc8f05290, 0x9c88f64e, 0xc8f05290, 0xd3f58897, 0xdd28f52b, 0xdd28f52b, 0xe1579057, 0xe1579057, 0xe1579057, 0xc06b69b3, 0xc06b69b3, 0xc06b69b3, 0xbdd3a23f, 0xbdd3a23f, 0xbdd3a23f, 0xdd28f52b, 0xd3f58897, 0xd3f58897, 0xdd28f52b, }, 20 }, -+ { "gfxterm_quot", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x9cfbc80f, 0x376a1fb2, 0x9cfbc80f, 0x6344d38f, 0x43d1f34, 0x43d1f34, 0x6486f7c4, 0x6486f7c4, 0x6486f7c4, 0x1b8c5e6c, 0x1b8c5e6c, 0x1b8c5e6c, 0x82dd5bea, 0x82dd5bea, 0x82dd5bea, 0x43d1f34, 0x6344d38f, 0x6344d38f, 0x43d1f34, }, 20 }, -+ { "gfxterm_piglatin", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xd327ca68, 0x9c977e8c, 0xd327ca68, 0x90d1072f, 0x59c36f00, 0x59c36f00, 0x71c9d9, 0x71c9d9, 0x71c9d9, 0x7ef1a4bf, 0x7ef1a4bf, 0x7ef1a4bf, 0x1c07b16d, 0x1c07b16d, 0x1c07b16d, 0x59c36f00, 0x90d1072f, 0x90d1072f, 0x59c36f00, }, 20 }, -+ { "gfxterm_piglatin", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x2da3855b, 0x24c7b138, 0x2da3855b, 0x3a60024, 0xaa4593fe, 0xaa4593fe, 0x147ff249, 0x147ff249, 0x147ff249, 0xb28aff2e, 0xb28aff2e, 0xb28aff2e, 0x9fb25456, 0x9fb25456, 0x9fb25456, 0xaa4593fe, 0x3a60024, 0x3a60024, 0xaa4593fe, }, 20 }, -+ { "gfxterm_piglatin", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x660ab3d9, 0xa75b45c4, 0x660ab3d9, 0x3b1dde5d, 0xc9cbf769, 0xc9cbf769, 0x5ff884f5, 0x5ff884f5, 0x5ff884f5, 0xa1204539, 0xa1204539, 0xa1204539, 0x486afa31, 0x486afa31, 0x486afa31, 0xc9cbf769, 0x3b1dde5d, 0x3b1dde5d, 0xc9cbf769, }, 20 }, -+ { "gfxterm_piglatin", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x920957ee, 0xceebfd42, 0x920957ee, 0x3c5f1e36, 0x9813a416, 0x9813a416, 0xa917dbef, 0xa917dbef, 0xa917dbef, 0x38cc5ddc, 0x38cc5ddc, 0x38cc5ddc, 0x2176600c, 0x2176600c, 0x2176600c, 0x9813a416, 0x3c5f1e36, 0x3c5f1e36, 0x9813a416, }, 20 }, -+ { "gfxterm_piglatin", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x8298cd03, 0xfb88293a, 0x8298cd03, 0xf43ef8b0, 0x5fcf013d, 0x5fcf013d, 0x8f57f36b, 0x8f57f36b, 0x8f57f36b, 0x5d47eb1d, 0x5d47eb1d, 0x5d47eb1d, 0x4b34d482, 0x4b34d482, 0x4b34d482, 0x5fcf013d, 0xf43ef8b0, 0xf43ef8b0, 0x5fcf013d, }, 20 }, -+ { "gfxterm_piglatin", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xd8bbc577, 0xb2c37549, 0xd8bbc577, 0xc3be1f70, 0xdd28f52b, 0xdd28f52b, 0xd8b598e, 0xd8b598e, 0xd8b598e, 0x2cb7a06a, 0x2cb7a06a, 0x2cb7a06a, 0x510f6be6, 0x510f6be6, 0x510f6be6, 0xdd28f52b, 0xc3be1f70, 0xc3be1f70, 0xdd28f52b, }, 20 }, -+ { "gfxterm_piglatin", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x4d7993a1, 0xbeefcd88, 0x4d7993a1, 0xb2c68821, 0x43d1f34, 0x43d1f34, 0x1dbc7020, 0x1dbc7020, 0x1dbc7020, 0x62b6d988, 0x62b6d988, 0x62b6d988, 0xfbe7dc0e, 0xfbe7dc0e, 0xfbe7dc0e, 0x43d1f34, 0xb2c68821, 0xb2c68821, 0x43d1f34, }, 20 }, -+ { "gfxterm_ch", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x628b6f61, 0x50f94215, 0x628b6f61, 0x217da226, 0x59c36f00, 0x59c36f00, 0x5755be7f, 0x5755be7f, 0x5755be7f, 0x29d5d319, 0x29d5d319, 0x29d5d319, 0x4b23c6cb, 0x4b23c6cb, 0x4b23c6cb, 0x59c36f00, 0x217da226, 0x217da226, 0x59c36f00, }, 20 }, -+ { "gfxterm_ch", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x9f82cd08, 0xbc67f78d, 0x9f82cd08, 0xb1874877, 0xaa4593fe, 0xaa4593fe, 0x4749512e, 0x4749512e, 0x4749512e, 0xe1bc5c49, 0xe1bc5c49, 0xe1bc5c49, 0xcc84f731, 0xcc84f731, 0xcc84f731, 0xaa4593fe, 0xb1874877, 0xb1874877, 0xaa4593fe, }, 20 }, -+ { "gfxterm_ch", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xbee47cfb, 0x88e98534, 0xbee47cfb, 0xe3f3117f, 0xc9cbf769, 0xc9cbf769, 0xe2396b15, 0xe2396b15, 0xe2396b15, 0x1ce1aad9, 0x1ce1aad9, 0x1ce1aad9, 0xf5ab15d1, 0xf5ab15d1, 0xf5ab15d1, 0xc9cbf769, 0xe3f3117f, 0xe3f3117f, 0xc9cbf769, }, 20 }, -+ { "gfxterm_ch", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x2bfd5a83, 0xbe3c6f2f, 0x2bfd5a83, 0x85ab135b, 0x9813a416, 0x9813a416, 0xce30693b, 0xce30693b, 0xce30693b, 0x5febef08, 0x5febef08, 0x5febef08, 0x4651d2d8, 0x4651d2d8, 0x4651d2d8, 0x9813a416, 0x85ab135b, 0x85ab135b, 0x9813a416, }, 20 }, -+ { "gfxterm_ch", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x1456f321, 0xc3a55992, 0x1456f321, 0x62f0c692, 0x5fcf013d, 0x5fcf013d, 0xbe3d534a, 0xbe3d534a, 0xbe3d534a, 0x6c2d4b3c, 0x6c2d4b3c, 0x6c2d4b3c, 0x7a5e74a3, 0x7a5e74a3, 0x7a5e74a3, 0x5fcf013d, 0x62f0c692, 0x62f0c692, 0x5fcf013d, }, 20 }, -+ { "gfxterm_ch", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xdcac6945, 0x43fbdf5a, 0xdcac6945, 0xc7a9b342, 0xdd28f52b, 0xdd28f52b, 0x274da20b, 0x274da20b, 0x274da20b, 0x6715bef, 0x6715bef, 0x6715bef, 0x7bc99063, 0x7bc99063, 0x7bc99063, 0xdd28f52b, 0xc7a9b342, 0xc7a9b342, 0xdd28f52b, }, 20 }, -+ { "gfxterm_ch", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x571e16b1, 0xb9f25c2, 0x571e16b1, 0xa8a10d31, 0x43d1f34, 0x43d1f34, 0x25dfb69d, 0x25dfb69d, 0x25dfb69d, 0x5ad51f35, 0x5ad51f35, 0x5ad51f35, 0xc3841ab3, 0xc3841ab3, 0xc3841ab3, 0x43d1f34, 0xa8a10d31, 0xa8a10d31, 0x43d1f34, }, 20 }, -+ { "gfxterm_red", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xec987771, 0x8a579bf2, 0xec987771, 0xbbb5c9af, 0x59c36f00, 0x59c36f00, 0x16780f43, 0x16780f43, 0x16780f43, 0x68f86225, 0x68f86225, 0x68f86225, 0xa0e77f7, 0xa0e77f7, 0xa0e77f7, 0x59c36f00, 0xbbb5c9af, 0xbbb5c9af, 0x59c36f00, }, 20 }, -+ { "gfxterm_red", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x97994d2c, 0x33b3ca94, 0x97994d2c, 0x273e977a, 0xaa4593fe, 0xaa4593fe, 0xa592c9d5, 0xa592c9d5, 0xa592c9d5, 0x367c4b2, 0x367c4b2, 0x367c4b2, 0x2e5f6fca, 0x2e5f6fca, 0x2e5f6fca, 0xaa4593fe, 0x273e977a, 0x273e977a, 0xaa4593fe, }, 20 }, -+ { "gfxterm_red", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x5d2416aa, 0xe7a84972, 0x5d2416aa, 0x4d010804, 0xc9cbf769, 0xc9cbf769, 0x4e3a88a0, 0x4e3a88a0, 0x4e3a88a0, 0xb0e2496c, 0xb0e2496c, 0xb0e2496c, 0x59a8f664, 0x59a8f664, 0x59a8f664, 0xc9cbf769, 0x4d010804, 0x4d010804, 0xc9cbf769, }, 20 }, -+ { "gfxterm_red", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x1da65b43, 0xae065274, 0x1da65b43, 0x2dd7a76c, 0x9813a416, 0x9813a416, 0xf81d19f, 0xf81d19f, 0xf81d19f, 0x9e5a57ac, 0x9e5a57ac, 0x9e5a57ac, 0x87e06a7c, 0x87e06a7c, 0x87e06a7c, 0x9813a416, 0x2dd7a76c, 0x2dd7a76c, 0x9813a416, }, 20 }, -+ { "gfxterm_red", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xea8a940e, 0xfa7c8f6f, 0xea8a940e, 0x448d7bfb, 0x5fcf013d, 0x5fcf013d, 0x47c22fa0, 0x47c22fa0, 0x47c22fa0, 0x95d237d6, 0x95d237d6, 0x95d237d6, 0x83a10849, 0x83a10849, 0x83a10849, 0x5fcf013d, 0x448d7bfb, 0x448d7bfb, 0x5fcf013d, }, 20 }, -+ { "gfxterm_red", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xc0ac44fa, 0x94d4e024, 0xc0ac44fa, 0x4ec88f20, 0xdd28f52b, 0xdd28f52b, 0x2422f542, 0x2422f542, 0x2422f542, 0x51e0ca6, 0x51e0ca6, 0x51e0ca6, 0x78a6c72a, 0x78a6c72a, 0x78a6c72a, 0xdd28f52b, 0x4ec88f20, 0x4ec88f20, 0xdd28f52b, }, 20 }, -+ { "gfxterm_red", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x248f7655, 0x8f1ea1e8, 0x248f7655, 0xb3d7f0f5, 0x43d1f34, 0x43d1f34, 0x8c408c04, 0x8c408c04, 0x8c408c04, 0xf34a25ac, 0xf34a25ac, 0xf34a25ac, 0x6a1b202a, 0x6a1b202a, 0x6a1b202a, 0x43d1f34, 0xb3d7f0f5, 0xb3d7f0f5, 0x43d1f34, }, 20 }, -+ { "gfxterm_high", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xd6ba8f78, 0xb07563fb, 0xd6ba8f78, 0x6ef020b2, 0x59c36f00, 0x59c36f00, 0x7fd94135, 0x7fd94135, 0x7fd94135, 0x1592c53, 0x1592c53, 0x1592c53, 0x63af3981, 0x63af3981, 0x63af3981, 0x59c36f00, 0x6ef020b2, 0x6ef020b2, 0x59c36f00, }, 20 }, -+ { "gfxterm_high", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0xf5257f70, 0x510ff8c8, 0xf5257f70, 0x36a3b7ff, 0xaa4593fe, 0xaa4593fe, 0x2e88732f, 0x2e88732f, 0x2e88732f, 0x887d7e48, 0x887d7e48, 0x887d7e48, 0xa545d530, 0xa545d530, 0xa545d530, 0xaa4593fe, 0x36a3b7ff, 0x36a3b7ff, 0xaa4593fe, }, 20 }, -+ { "gfxterm_high", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x9f8effb3, 0x2502a06b, 0x9f8effb3, 0xddeb038e, 0xc9cbf769, 0xc9cbf769, 0xda1c9f17, 0xda1c9f17, 0xda1c9f17, 0x24c45edb, 0x24c45edb, 0x24c45edb, 0xcd8ee1d3, 0xcd8ee1d3, 0xcd8ee1d3, 0xc9cbf769, 0xddeb038e, 0xddeb038e, 0xc9cbf769, }, 20 }, -+ { "gfxterm_high", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x6aa72774, 0xd9072e43, 0x6aa72774, 0x24b4853d, 0x9813a416, 0x9813a416, 0xfb08d7cf, 0xfb08d7cf, 0xfb08d7cf, 0x6ad351fc, 0x6ad351fc, 0x6ad351fc, 0x73696c2c, 0x73696c2c, 0x73696c2c, 0x9813a416, 0x24b4853d, 0x24b4853d, 0x9813a416, }, 20 }, -+ { "gfxterm_high", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x936eb1d8, 0x8398aab9, 0x936eb1d8, 0x8beef, 0x5fcf013d, 0x5fcf013d, 0x9e56a9e0, 0x9e56a9e0, 0x9e56a9e0, 0x4c46b196, 0x4c46b196, 0x4c46b196, 0x5a358e09, 0x5a358e09, 0x5a358e09, 0x5fcf013d, 0x8beef, 0x8beef, 0x5fcf013d, }, 20 }, -+ { "gfxterm_high", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xdd4b9ec3, 0x89333a1d, 0xdd4b9ec3, 0x3acd5a9d, 0xdd28f52b, 0xdd28f52b, 0xe1579057, 0xe1579057, 0xe1579057, 0xc06b69b3, 0xc06b69b3, 0xc06b69b3, 0xbdd3a23f, 0xbdd3a23f, 0xbdd3a23f, 0xdd28f52b, 0x3acd5a9d, 0x3acd5a9d, 0xdd28f52b, }, 20 }, -+ { "gfxterm_high", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x89f37601, 0x2262a1bc, 0x89f37601, 0xf17b28ae, 0x43d1f34, 0x43d1f34, 0x6486f7c4, 0x6486f7c4, 0x6486f7c4, 0x1b8c5e6c, 0x1b8c5e6c, 0x1b8c5e6c, 0x82dd5bea, 0x82dd5bea, 0x82dd5bea, 0x43d1f34, 0xf17b28ae, 0xf17b28ae, 0x43d1f34, }, 20 }, - { "videotest", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x1368a483, 0x1368a483, 0x1368a483, 0x1368a483, 0x1368a483, }, 5 }, - { "videotest", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0x7033079c, 0x7033079c, 0x7033079c, 0x7033079c, 0x7033079c, }, 5 }, - { "videotest", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xff583fbf, 0xff583fbf, 0xff583fbf, 0xff583fbf, 0xff583fbf, }, 5 }, diff --git a/0064-re-write-.gitignore.patch b/0001-re-write-.gitignore.patch similarity index 99% rename from 0064-re-write-.gitignore.patch rename to 0001-re-write-.gitignore.patch index 6ec159ca..46353605 100644 --- a/0064-re-write-.gitignore.patch +++ b/0001-re-write-.gitignore.patch @@ -1,4 +1,4 @@ -From 38bfcd3054c28aa40234840c12d900f1d18a217d Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 8 Aug 2017 12:48:04 -0400 Subject: [PATCH] re-write .gitignore diff --git a/0065-IBM-client-architecture-CAS-reboot-support.patch b/0002-IBM-client-architecture-CAS-reboot-support.patch similarity index 98% rename from 0065-IBM-client-architecture-CAS-reboot-support.patch rename to 0002-IBM-client-architecture-CAS-reboot-support.patch index 0979a52c..787697f6 100644 --- a/0065-IBM-client-architecture-CAS-reboot-support.patch +++ b/0002-IBM-client-architecture-CAS-reboot-support.patch @@ -1,4 +1,4 @@ -From bf1fd830091fff49e26f39027e0db8fd4b688624 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Thu, 20 Sep 2012 18:07:39 -0300 Subject: [PATCH] IBM client architecture (CAS) reboot support diff --git a/0002-Remove-bashisms-from-tests.patch b/0002-Remove-bashisms-from-tests.patch deleted file mode 100644 index 9509ae11..00000000 --- a/0002-Remove-bashisms-from-tests.patch +++ /dev/null @@ -1,130 +0,0 @@ -From 5a0c548ba388b343b0bb6d2a38888e7eac5bbb96 Mon Sep 17 00:00:00 2001 -From: Vladimir Serbinenko -Date: Mon, 23 Jan 2017 03:47:13 +0300 -Subject: [PATCH] Remove bashisms from tests. - -Those tests don't actually need bash. Just use common shebang. ---- - tests/grub_cmd_date.in | 2 +- - tests/grub_cmd_regexp.in | 2 +- - tests/grub_cmd_set_date.in | 2 +- - tests/grub_cmd_sleep.in | 2 +- - tests/grub_cmd_test.in | 2 +- - tests/grub_cmd_tr.in | 2 +- - tests/grub_func_test.in | 2 +- - tests/grub_script_blockarg.in | 2 +- - tests/grub_script_expansion.in | 2 +- - tests/help_test.in | 2 +- - tests/test_sha512sum.in | 2 +- - 11 files changed, 11 insertions(+), 11 deletions(-) - -diff --git a/tests/grub_cmd_date.in b/tests/grub_cmd_date.in -index a459353e8a5..0d8162e98b0 100644 ---- a/tests/grub_cmd_date.in -+++ b/tests/grub_cmd_date.in -@@ -1,4 +1,4 @@ --#! /bin/bash -+#! /bin/sh - set -e - - . "@builddir@/grub-core/modinfo.sh" -diff --git a/tests/grub_cmd_regexp.in b/tests/grub_cmd_regexp.in -index e7e62570115..7e9ab86aabb 100644 ---- a/tests/grub_cmd_regexp.in -+++ b/tests/grub_cmd_regexp.in -@@ -1,4 +1,4 @@ --#! /bin/bash -+#! /bin/sh - set -e - - # Run GRUB script in a Qemu instance -diff --git a/tests/grub_cmd_set_date.in b/tests/grub_cmd_set_date.in -index c594ae3fc14..2f518dd9e34 100644 ---- a/tests/grub_cmd_set_date.in -+++ b/tests/grub_cmd_set_date.in -@@ -1,4 +1,4 @@ --#! /bin/bash -+#! /bin/sh - set -e - - . "@builddir@/grub-core/modinfo.sh" -diff --git a/tests/grub_cmd_sleep.in b/tests/grub_cmd_sleep.in -index eb362aa2439..05b8f6b73fa 100644 ---- a/tests/grub_cmd_sleep.in -+++ b/tests/grub_cmd_sleep.in -@@ -1,4 +1,4 @@ --#! /bin/bash -+#! /bin/sh - set -e - - . "@builddir@/grub-core/modinfo.sh" -diff --git a/tests/grub_cmd_test.in b/tests/grub_cmd_test.in -index 6269891c9ee..49ae8a9c830 100644 ---- a/tests/grub_cmd_test.in -+++ b/tests/grub_cmd_test.in -@@ -1,4 +1,4 @@ --#! /bin/bash -+#! /bin/sh - - # create a randome file - empty="`mktemp "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"`" || exit 1 -diff --git a/tests/grub_cmd_tr.in b/tests/grub_cmd_tr.in -index 3fb15e35c8a..0e8d645eb6b 100644 ---- a/tests/grub_cmd_tr.in -+++ b/tests/grub_cmd_tr.in -@@ -1,4 +1,4 @@ --#! /bin/bash -e -+#! /bin/sh -e - - # Run GRUB script in a Qemu instance - # Copyright (C) 2010 Free Software Foundation, Inc. -diff --git a/tests/grub_func_test.in b/tests/grub_func_test.in -index c8cc2637633..b32f2446659 100644 ---- a/tests/grub_func_test.in -+++ b/tests/grub_func_test.in -@@ -1,4 +1,4 @@ --#! /bin/bash -+#! /bin/sh - set -e - - . "@builddir@/grub-core/modinfo.sh" -diff --git a/tests/grub_script_blockarg.in b/tests/grub_script_blockarg.in -index 2765b61acbb..63b60a2ea06 100644 ---- a/tests/grub_script_blockarg.in -+++ b/tests/grub_script_blockarg.in -@@ -1,4 +1,4 @@ --#! /bin/bash -+#! /bin/sh - - # Run GRUB script in a Qemu instance - # Copyright (C) 2010 Free Software Foundation, Inc. -diff --git a/tests/grub_script_expansion.in b/tests/grub_script_expansion.in -index e46401c4c9f..2b782956838 100644 ---- a/tests/grub_script_expansion.in -+++ b/tests/grub_script_expansion.in -@@ -1,4 +1,4 @@ --#! /bin/bash -+#! /bin/sh - set -e - - # Run GRUB script in a Qemu instance -diff --git a/tests/help_test.in b/tests/help_test.in -index e780924ef7b..aa96458355b 100644 ---- a/tests/help_test.in -+++ b/tests/help_test.in -@@ -1,4 +1,4 @@ --#! /bin/bash -+#! /bin/sh - set -e - - . "@builddir@/grub-core/modinfo.sh" -diff --git a/tests/test_sha512sum.in b/tests/test_sha512sum.in -index d5ef7f9ea62..80ebdc59fd5 100644 ---- a/tests/test_sha512sum.in -+++ b/tests/test_sha512sum.in -@@ -1,4 +1,4 @@ --#! /bin/bash -+#! /bin/sh - - # create a randome file - file="`mktemp "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"`" || exit 1 diff --git a/0066-for-ppc-reset-console-display-attr-when-clear-screen.patch b/0003-for-ppc-reset-console-display-attr-when-clear-screen.patch similarity index 95% rename from 0066-for-ppc-reset-console-display-attr-when-clear-screen.patch rename to 0003-for-ppc-reset-console-display-attr-when-clear-screen.patch index 07ab3e3f..ac674531 100644 --- a/0066-for-ppc-reset-console-display-attr-when-clear-screen.patch +++ b/0003-for-ppc-reset-console-display-attr-when-clear-screen.patch @@ -1,4 +1,4 @@ -From 8b30fab3c07a9fc8549e404c411b747b960c57b2 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Wed, 24 Apr 2013 10:51:48 -0300 Subject: [PATCH] for ppc, reset console display attr when clear screen diff --git a/0003-fs-tester-make-sh-compatible.patch b/0003-fs-tester-make-sh-compatible.patch deleted file mode 100644 index 039fbd31..00000000 --- a/0003-fs-tester-make-sh-compatible.patch +++ /dev/null @@ -1,743 +0,0 @@ -From 37865c2c4ad26cd5e947b08abf1fde8145699919 Mon Sep 17 00:00:00 2001 -From: Vladimir Serbinenko -Date: Mon, 23 Jan 2017 14:35:59 +0300 -Subject: [PATCH] fs-tester: make sh-compatible - ---- - tests/util/grub-fs-tester.in | 306 ++++++++++++++++++++++++------------------- - 1 file changed, 169 insertions(+), 137 deletions(-) - -diff --git a/tests/util/grub-fs-tester.in b/tests/util/grub-fs-tester.in -index 2337771a1b9..4515d165e6e 100644 ---- a/tests/util/grub-fs-tester.in -+++ b/tests/util/grub-fs-tester.in -@@ -1,4 +1,4 @@ --#!/bin/bash -+#!/bin/sh - - set -e - -@@ -13,8 +13,29 @@ run_it () { - LC_ALL=C "$GRUBFSTEST" "$@" - } - -+range() { -+ range_counter="$1" -+ while test "$range_counter" -le "$2"; do -+ echo "$range_counter" -+ range_counter="$((range_counter + $3))" -+ done -+} -+ -+powrange() { -+ range_counter="$1" -+ while test "$range_counter" -le "$2"; do -+ echo "$range_counter" -+ range_counter="$((range_counter * 2))" -+ done -+} -+ - run_grubfstest () { -- run_it -c $NEED_IMAGES_N "${NEED_IMAGES[@]}" "$@" -+ need_images= -+ for i in $(range 0 $((NEED_IMAGES_N-1)) 1); do -+ need_images="$need_images $FSIMAGEP${i}.img"; -+ done -+ -+ run_it -c $NEED_IMAGES_N $need_images "$@" - } - - # OS LIMITATION: GNU/Linux has no AFS support, so we use a premade image and a reference tar file. I.a. no multiblocksize test -@@ -51,7 +72,7 @@ case x"$fs" in - # OS limitation: zfs-fuse always uses ashift=9 with loop devices - MAXLOGSECSIZE=9;; - esac --for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + 1)); do -+for LOGSECSIZE in $(range "$MINLOGSECSIZE" "$MAXLOGSECSIZE" 1); do - SECSIZE="$((1 << LOGSECSIZE))" - MINBLKSIZE=512 - MAXBLKSIZE=512 -@@ -169,7 +190,12 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + - MINBLKSIZE=1024 - MAXBLKSIZE=4096;; - esac -- for ((BLKSIZE=MINBLKSIZE;BLKSIZE<=MAXBLKSIZE;BLKSIZE=BLKSTEP?BLKSIZE+BLKSTEP:2*BLKSIZE)); do -+ if test "$BLKSTEP" -eq 0; then -+ blksizes="$(powrange "$MINBLKSIZE" "$MAXBLKSIZE")" -+ else -+ blksizes="$(range "$MINBLKSIZE" "$MAXBLKSIZE" "$BLKSTEP")" -+ fi -+ for BLKSIZE in $blksizes; do - MAXDEVICES=1 - MINDEVICES=1 - export fs -@@ -199,13 +225,11 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + - MAXDEVICES=7;; - esac - -- for ((NDEVICES=MINDEVICES; NDEVICES <= MAXDEVICES; NDEVICES++)); do -+ for NDEVICES in $(range "$MINDEVICES" "$MAXDEVICES" 1); do - export NDEVICES -- unset FSIMAGES -- for ((i=0; i < NDEVICES; i++)); do -- FSIMAGES[i]="${tempdir}/${fs}_${SECSIZE}_${BLKSIZE}_${NDEVICES}_$i.img" -- done -- export FSIMAGES -+ unset FSIMAGEP -+ FSIMAGEP="${tempdir}/${fs}_${SECSIZE}_${BLKSIZE}_${NDEVICES}_" -+ export FSIMAGEP - unset NEED_IMAGES; - - case x$fs in -@@ -226,11 +250,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + - *) - NEED_IMAGES_N=$NDEVICES;; - esac -- for ((i=0;i < NEED_IMAGES_N; i++)); do -- NEED_IMAGES[i]="${FSIMAGES[i]}"; -- done - export NEED_IMAGES_N -- export NEED_IMAGES - - MNTPOINTRO="${tempdir}/${fs}_ro" - MNTPOINTRW="${tempdir}/${fs}_rw" -@@ -238,20 +258,25 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + - MOUNTFS="$fs" - MASTER="${tempdir}/master" - FSLABEL="grub_;/testé莭莽茝😁киритi urewfceniuewruevrewnuuireurevueurnievrewfnerfcnevirivinrewvnirewnivrewiuvcrewvnuewvrrrewniuerwreiuviurewiuviurewnuvewnvrenurnunuvrevuurerejiremvreijnvcreivire nverivnreivrevnureiorfnfrvoeoiroireoireoifrefoieroifoireoifoirefoireoifoijfoirereoireoivoioirevoinvoinreoinvnoieoinreoinveoinveoinreoinvoineoinoinoineoinernoiveoinvreoiioewdioewoirvnoireoivfoirewfewoifoijewoijfoijewfoijfewoijoijoijoijoijoijoijfewceniuewruevrewnuuireurevueurnievrewfnerfcnevirivinrewvnirewnivrewiuvcrewvnuewvrrrewniuerwreiuviurewiuviurewnuvewnvrenurnunuvrevuurerejiremvreijnvcreivire nverivnreivrevnureiorfnfrvoeoiroireoireoifrefoieroifoireoifoirefoireoifoijfoirereoireoivoioirevoinvoinreoinvnoieoinreoinveoinveoinreoinvoineoinoinoineoinernoiveoinvreoiioewdioewoirvnoireoivfoirewfewoifoijewoijfoijewfoijfewoijoijoijoijoijoijoijfewrewfceniuewruevrewnuuireurevueurnievrewfnerfcnevirivinrewvnirewnivrewiuvcrewvnuewvrrrewniuerwreiuviurewiuviurewnuvewnvrenurnunuvrevuurerejiremvreijnvcreivire nverivnreivrevnureiorfnfrvoeoiroireoireoifrefoieroifoireoifoirefoireoifoijfoirereoireoivoioirevoinvoinreoinvnoieoinreoinveoinveoinreoinvoineoinoinoineoinernoiveoinvreoiioewdioewoirvnoireoivfoirewfewoifoijewoijfoijewfoijfewoijoijoijoijoijoijoijfewceniuewruevrewnuuireurevueurnievrewfnerfcnevirivinrewvnirewnivrewiuvcrewvnuewvrrrewniuerwreiuviurewiuviurewnuvewnvrenurnunuvrevuurerejiremvreijnvcreivire nverivnreivrevnureiorfnfrvoeoiroireoireoifrefoieroifoireoifoirefoireoifoijfoirereoireoivoioirevoinvoinreoinvnoieoinreoinveoinveoinreoinvoineoinoinoineoinernoiveoinvreoiioewdioewoirvnoireoivfoirewfewoifoijewoijfoijewfoijfewoijoijoijoijoijoijoijfew" -- CFILESN=1 -- if test -f /usr/share/dict/american-english; then -- CFILESSRC[0]="/usr/share/dict/american-english" -- else -- CFILESSRC[0]="/usr/share/dict/linux.words" -+ CFILESRC= -+ for cand in /usr/share/dict/american-english /usr/share/dict/linux.words; do -+ if test -f "$cand" ; then -+ CFILESRC="$cand" -+ break -+ fi -+ done -+ if test "$CFILESRC" = "" ; then -+ echo "Couldn't find compressible file" >&2 -+ exit 1 - fi - case x"$fs" in - # FS LIMITATION: 8.3 names - xmsdos*) -- CFILES[0]="american.eng";; -+ CFILE="american.eng";; - xiso9660) -- CFILES[0]="american_english";; -+ CFILE="american_english";; - *) -- CFILES[0]="american-english";; -+ CFILE="american-english";; - esac - # OS LIMITATION: Limited by NAME_MAX (usually 255) in GNU/Linux - LONGNAME="qwertzuiopasdfghjklyxcvbnm1234567890qwertzuiopasdfghjklyxcvbnm1234567890oiewqfiewioqoiqoiurqruewqoiuwoieoiiuewqroreqiufieiuwrnureweriuvceoiroiewqoiricdsalkcndsakfirefoiwqeoircorejwoijfreoijojoiewjfwnfcoirenfoirefnreoifenoiwfnoi" -@@ -388,8 +413,8 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + - ;; - x"vfat16" | xmsdos16) - BIGBLOCKCNT=$((25000 * BLKSIZE)) -- if [ $BIGBLOCKCNT -gt $((16#ffffffff)) ]; then -- BIGBLOCKCNT=$((16#ffffffff)) -+ if [ $BIGBLOCKCNT -gt 4294967295 ]; then -+ BIGBLOCKCNT=4294967295 - fi - ;; - x"minix") -@@ -410,7 +435,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + - BIGBLOCKCNT=$((4000 * 1048576));; - # FS LIMITATION: These FS have uint32 as file size field - x"vfat"* | xmsdos* | x"cpio_crc" | x"cpio_newc" | x"cpio_bin" | x"cpio_hpbin" | xsfs*) -- BIGBLOCKCNT=$((16#ffffffff));; -+ BIGBLOCKCNT=4294967295;; - # FS LIMITATION: These FS have int32 as file size field - # FIXME: not so sure about AFFS - # OS LIMITATION: minix2/minix3 could be formatted in a way to permit more. -@@ -543,18 +568,18 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + - - PDIR="" - # OS LIMITATION: Limited by PATH_MAX (usually 1024) -- for ((i=0;i /dev/null -- LODEVICES[i]=`losetup -f` -- losetup "${LODEVICES[i]}" "${FSIMAGES[i]}" -+ for i in $(range 0 $((NDEVICES-1)) 1); do -+ dd if=/dev/zero of="$FSIMAGEP${i}.img" count=1 bs=1 seek=$((DISKSIZE-1)) &> /dev/null -+ LODEVICE="$(losetup -f)" -+ LODEVICES="$LODEVICES $LODEVICE" -+ losetup "$LODEVICE" "$FSIMAGEP${i}.img" -+ if test "$i" = 0; then -+ MOUNTDEVICE="$LODEVICE" -+ fi - done ;; - esac - -- MOUNTDEVICE="${LODEVICES[0]}" - case x"$fs" in - x"afs") - ;; - x"btrfs") -- "mkfs.btrfs" -s $SECSIZE -L "$FSLABEL" "${LODEVICES[0]}" ;; -+ "mkfs.btrfs" -s $SECSIZE -L "$FSLABEL" "${MOUNTDEVICE}" ;; - x"btrfs_zlib" | x"btrfs_lzo") -- "mkfs.btrfs" -s $SECSIZE -L "$FSLABEL" "${LODEVICES[0]}" -+ "mkfs.btrfs" -s $SECSIZE -L "$FSLABEL" "${MOUNTDEVICE}" - MOUNTOPTS="compress=${fs/btrfs_/}," - MOUNTFS="btrfs" - ;; - x"btrfs_raid0") -- "mkfs.btrfs" -s $SECSIZE -d raid0 -m raid0 -L "$FSLABEL" "${LODEVICES[@]}" -+ "mkfs.btrfs" -s $SECSIZE -d raid0 -m raid0 -L "$FSLABEL" $LODEVICES - MOUNTFS="btrfs" - ;; - x"btrfs_raid1") -- "mkfs.btrfs" -s $SECSIZE -d raid1 -m raid1 -L "$FSLABEL" "${LODEVICES[@]}" -+ "mkfs.btrfs" -s $SECSIZE -d raid1 -m raid1 -L "$FSLABEL" $LODEVICES - MOUNTFS="btrfs" - ;; - x"btrfs_raid10") -- "mkfs.btrfs" -s $SECSIZE -d raid10 -m raid10 -L "$FSLABEL" "${LODEVICES[@]}" -+ "mkfs.btrfs" -s $SECSIZE -d raid10 -m raid10 -L "$FSLABEL" $LODEVICES - MOUNTFS="btrfs" - ;; - x"btrfs_single") -- "mkfs.btrfs" -s $SECSIZE -d single -L "$FSLABEL" "${LODEVICES[@]}" -+ "mkfs.btrfs" -s $SECSIZE -d single -L "$FSLABEL" $LODEVICES - MOUNTFS="btrfs" - ;; - x"exfat") -- "mkfs.$fs" -s $((BLKSIZE/512)) -n "$FSLABEL" "${LODEVICES[0]}" -+ "mkfs.$fs" -s $((BLKSIZE/512)) -n "$FSLABEL" "${MOUNTDEVICE}" - MOUNTOPTS="iocharset=utf8," - MOUNTFS="exfat-fuse";; - x"minix") -- "mkfs.minix" "${LODEVICES[0]}" -+ "mkfs.minix" "${MOUNTDEVICE}" - ;; - # mkfs.hfs and mkfs.hfsplus don't fill UUID. - x"hfsplus") -- "mkfs.hfsplus" -b $BLKSIZE -v "$FSLABEL" "${LODEVICES[0]}" -- dd if=/dev/urandom of="${LODEVICES[0]}" bs=1 seek=$((16#468)) conv=notrunc count=8 ;; -+ "mkfs.hfsplus" -b $BLKSIZE -v "$FSLABEL" "${MOUNTDEVICE}" -+ dd if=/dev/urandom of="${MOUNTDEVICE}" bs=1 seek=$((16#468)) conv=notrunc count=8 ;; - x"hfsplus_wrap") -- "mkfs.hfsplus" -w -b $BLKSIZE -v "$FSLABEL" "${LODEVICES[0]}" -- dd if=/dev/urandom of="${LODEVICES[0]}" bs=1 seek=$((16#468)) conv=notrunc count=8 -+ "mkfs.hfsplus" -w -b $BLKSIZE -v "$FSLABEL" "${MOUNTDEVICE}" -+ dd if=/dev/urandom of="${MOUNTDEVICE}" bs=1 seek=$((16#468)) conv=notrunc count=8 - MOUNTFS="hfsplus";; - x"hfsplus_casesens") -- "mkfs.hfsplus" -s -b $BLKSIZE -v "$FSLABEL" "${LODEVICES[0]}" -- dd if=/dev/urandom of="${LODEVICES[0]}" bs=1 seek=$((16#468)) conv=notrunc count=8 -+ "mkfs.hfsplus" -s -b $BLKSIZE -v "$FSLABEL" "${MOUNTDEVICE}" -+ dd if=/dev/urandom of="${MOUNTDEVICE}" bs=1 seek=$((16#468)) conv=notrunc count=8 - MOUNTFS="hfsplus";; - x"hfs") -- "mkfs.hfs" -b $BLKSIZE -v "`echo $FSLABEL |recode utf8..macroman`" -h "${LODEVICES[0]}" -- dd if=/dev/urandom of="${LODEVICES[0]}" bs=1 seek=$((16#474)) conv=notrunc count=8 -+ "mkfs.hfs" -b $BLKSIZE -v "`echo $FSLABEL |recode utf8..macroman`" -h "${MOUNTDEVICE}" -+ dd if=/dev/urandom of="${MOUNTDEVICE}" bs=1 seek=$((16#474)) conv=notrunc count=8 - MOUNTOPTS="iocharset=utf8,codepage=macroman," - ;; - x"vfat"*|xmsdos*) -@@ -643,98 +673,98 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + - else - A= - fi -- "mkfs.vfat" -a $A -S $SECSIZE -s $((BLKSIZE/SECSIZE)) -F "${BITS:0:2}" -n "$FSLABEL" "${FSIMAGES[0]}" -+ "mkfs.vfat" -a $A -S $SECSIZE -s $((BLKSIZE/SECSIZE)) -F "${BITS:0:2}" -n "$FSLABEL" "${MOUNTDEVICE}" - MOUNTOPTS="iocharset=utf8,codepage=437," - MOUNTFS="$(echo "$fs"|sed 's,[0-9]*a\?$,,')";; - x"minix2") -- "mkfs.minix" -v "${LODEVICES[0]}" -+ "mkfs.minix" -v "${MOUNTDEVICE}" - MOUNTFS="minix";; - x"minix3") -- "mkfs.minix" -B $BLKSIZE -3 "${LODEVICES[0]}" -+ "mkfs.minix" -B $BLKSIZE -3 "${MOUNTDEVICE}" - MOUNTFS="minix";; - x"ntfs"*) -- "mkfs.ntfs" -s "$SECSIZE" -c "$BLKSIZE" -L "$FSLABEL" -Q -q "${LODEVICES[0]}" -+ "mkfs.ntfs" -s "$SECSIZE" -c "$BLKSIZE" -L "$FSLABEL" -Q -q "${MOUNTDEVICE}" - MOUNTOPTS="iocharset=utf8,compression," - MOUNTFS="ntfs-3g";; - x"udf") -- "mkudffs" --utf8 -b $BLKSIZE --lvid="$FSLABEL" "${LODEVICES[0]}" -+ "mkudffs" --utf8 -b $BLKSIZE --lvid="$FSLABEL" "${MOUNTDEVICE}" - MOUNTOPTS="iocharset=utf8,bs=$BLKSIZE,";; - x"ufs2") -- "mkfs.ufs" -b $BLKSIZE -L "$FSLABEL" -O 2 "${LODEVICES[0]}" -+ "mkfs.ufs" -b $BLKSIZE -L "$FSLABEL" -O 2 "${MOUNTDEVICE}" - MOUNTOPTS="ufstype=ufs2," - MOUNTFS="ufs";; - x"ufs1") -- "mkfs.ufs" -b $BLKSIZE -L "$FSLABEL" -O 1 "${LODEVICES[0]}" -+ "mkfs.ufs" -b $BLKSIZE -L "$FSLABEL" -O 1 "${MOUNTDEVICE}" - MOUNTOPTS="ufstype=44bsd," - MOUNTFS="ufs";; - x"ufs1_sun") -- "mkfs.ufs" -b $BLKSIZE -L "$FSLABEL" -O 1 "${LODEVICES[0]}" -+ "mkfs.ufs" -b $BLKSIZE -L "$FSLABEL" -O 1 "${MOUNTDEVICE}" - MOUNTOPTS="ufstype=sun," - MOUNTFS="ufs";; - x"zfs") -- "zpool" create -R "$MNTPOINTRW" "$FSLABEL" "${LODEVICES[0]}" -+ "zpool" create -R "$MNTPOINTRW" "$FSLABEL" "${MOUNTDEVICE}" - sleep 1 - "zfs" create "$FSLABEL"/"grub fs" - sleep 1;; - x"zfs_caseins") -- "zpool" create -R "$MNTPOINTRW" "$FSLABEL" "${LODEVICES[0]}" -+ "zpool" create -R "$MNTPOINTRW" "$FSLABEL" "${MOUNTDEVICE}" - sleep 1 - "zfs" create -o casesensitivity=insensitive "$FSLABEL"/"grub fs" - sleep 1;; - x"zfs_lzjb" | xzfs_gzip | xzfs_zle) -- "zpool" create -O compression=${fs/zfs_/} -R "$MNTPOINTRW" "$FSLABEL" "${LODEVICES[0]}" -+ "zpool" create -O compression=${fs/zfs_/} -R "$MNTPOINTRW" "$FSLABEL" "${MOUNTDEVICE}" - sleep 1 - "zfs" create -o compression=${fs/zfs_/} "$FSLABEL"/"grub fs" - sleep 1;; - x"zfs_raidz") -- "zpool" create -R "$MNTPOINTRW" "$FSLABEL" raidz1 "${LODEVICES[@]}" -+ "zpool" create -R "$MNTPOINTRW" "$FSLABEL" raidz1 $LODEVICES - sleep 1 - "zfs" create "$FSLABEL"/"grub fs" - sleep 1;; - x"zfs_raidz2") -- "zpool" create -R "$MNTPOINTRW" "$FSLABEL" raidz2 "${LODEVICES[@]}" -+ "zpool" create -R "$MNTPOINTRW" "$FSLABEL" raidz2 $LODEVICES - sleep 1 - "zfs" create "$FSLABEL"/"grub fs" - sleep 1;; - x"zfs_raidz3") -- "zpool" create -R "$MNTPOINTRW" "$FSLABEL" raidz3 "${LODEVICES[@]}" -+ "zpool" create -R "$MNTPOINTRW" "$FSLABEL" raidz3 $LODEVICES - sleep 1 - "zfs" create "$FSLABEL"/"grub fs" - sleep 1;; - x"zfs_mirror") -- "zpool" create -R "$MNTPOINTRW" "$FSLABEL" mirror "${LODEVICES[@]}" -+ "zpool" create -R "$MNTPOINTRW" "$FSLABEL" mirror $LODEVICES - sleep 1 - "zfs" create "$FSLABEL"/"grub fs" - sleep 1;; - x"zfs_stripe") -- "zpool" create -R "$MNTPOINTRW" "$FSLABEL" "${LODEVICES[@]}" -+ "zpool" create -R "$MNTPOINTRW" "$FSLABEL" $LODEVICES - sleep 1 - "zfs" create "$FSLABEL"/"grub fs" - sleep 1;; - x"tarfs" | x"cpio_"* | x"iso9660" | xjoliet | xrockridge | xrockridge_joliet | x"iso9660_1999" | xjoliet_1999 | xrockridge_1999 | xrockridge_joliet_1999 | x"ziso9660" | x"romfs" | x"squash4_"*) - INSTDEVICE=/dev/null;; - x"reiserfs") -- "mkfs.reiserfs" --format=3.6 -b $BLKSIZE -l "$FSLABEL" -q "${LODEVICES[0]}" ;; -+ "mkfs.reiserfs" --format=3.6 -b $BLKSIZE -l "$FSLABEL" -q "${MOUNTDEVICE}" ;; - x"reiserfs_old") -- "mkfs.reiserfs" --format=3.5 -b $BLKSIZE -l "$FSLABEL" -q "${LODEVICES[0]}" -+ "mkfs.reiserfs" --format=3.5 -b $BLKSIZE -l "$FSLABEL" -q "${MOUNTDEVICE}" - MOUNTFS=reiserfs;; - x"jfs") -- "mkfs.jfs" -L "$FSLABEL" -q "${LODEVICES[0]}" -+ "mkfs.jfs" -L "$FSLABEL" -q "${MOUNTDEVICE}" - MOUNTOPTS="iocharset=utf8,";; - x"jfs_caseins") -- "mkfs.jfs" -O -L "$FSLABEL" -q "${LODEVICES[0]}" -+ "mkfs.jfs" -O -L "$FSLABEL" -q "${MOUNTDEVICE}" - MOUNTFS=jfs - MOUNTOPTS="iocharset=utf8,";; - x"mdraid"*) -- mdadm -C --chunk=$((BLKSIZE/1024)) --force -e "${fs:6:1}.${fs:7:1}" "/dev/md/${fs}_${NDEVICES}" --level="${fs:13}" --raid-devices="$NDEVICES" "${LODEVICES[@]}" -+ mdadm -C --chunk=$((BLKSIZE/1024)) --force -e "${fs:6:1}.${fs:7:1}" "/dev/md/${fs}_${NDEVICES}" --level="${fs:13}" --raid-devices="$NDEVICES" $LODEVICES - MOUNTDEVICE="/dev/md/${fs}_${NDEVICES}" - MOUNTFS=ext2 - "mkfs.ext2" -L "$FSLABEL" -q "${MOUNTDEVICE}" ;; - x"lvm"*) -- for ((i=0;i /dev/null; -+ cp "${CFILESRC}" "$MNTPOINTRW/$OSDIR/${CFILE}" &> /dev/null; - else -- for ((i=0;i<$CFILESN;i++)); do -- cp "${CFILESSRC[i]}" "$MNTPOINTRW/$OSDIR/${CFILES[i]}"; -- done -+ -+ cp "${CFILESRC}" "$MNTPOINTRW/$OSDIR/${CFILE}"; -+ - fi - - if [ x$NOSYMLINK != xy ]; then -@@ -968,48 +1000,48 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + - sleep 2 - ;; - x"tarfs") -- (cd "$MASTER"; tar cf "${FSIMAGES[0]}" .) ;; -+ (cd "$MASTER"; tar cf "${FSIMAGEP}0.img" .) ;; - x"cpio_"*) -- (cd "$MASTER"; find . | cpio -o -H "${fs/cpio_/}" > "${FSIMAGES[0]}" ) ;; -+ (cd "$MASTER"; find . | cpio -o -H "$(echo ${fs} | sed 's@^cpio_@@')" > "${FSIMAGEP}0.img" ) ;; - x"ziso9660") - FSUUID=$(date -u +%Y-%m-%d-%H-%M-%S-00); -- xorriso -compliance rec_mtime -set_filter_r --zisofs -- -zisofs default -as mkisofs -iso-level 3 -graft-points -R -J -joliet-long -V "$FSLABEL" --modification-date=$(echo ${FSUUID} | sed 's/-//g;') -o "${FSIMAGES[0]}" -- -set_filter_r --zisofs -- -zisofs default -add /="$MASTER" ;; -+ xorriso -compliance rec_mtime -set_filter_r --zisofs -- -zisofs default -as mkisofs -iso-level 3 -graft-points -R -J -joliet-long -V "$FSLABEL" --modification-date=$(echo ${FSUUID} | sed 's/-//g;') -o "${FSIMAGEP}0.img" -- -set_filter_r --zisofs -- -zisofs default -add /="$MASTER" ;; - x"iso9660") - FSUUID=$(date -u +%Y-%m-%d-%H-%M-%S-00); -- xorriso --rockridge off -compliance rec_mtime -as mkisofs -iso-level 3 -graft-points -V "$FSLABEL" --modification-date=$(echo ${FSUUID} | sed 's/-//g;') -o "${FSIMAGES[0]}" /="$MASTER" ;; -+ xorriso --rockridge off -compliance rec_mtime -as mkisofs -iso-level 3 -graft-points -V "$FSLABEL" --modification-date=$(echo ${FSUUID} | sed 's/-//g;') -o "${FSIMAGEP}0.img" /="$MASTER" ;; - x"joliet") - FSUUID=$(date -u +%Y-%m-%d-%H-%M-%S-00); -- xorriso --rockridge off -compliance rec_mtime -as mkisofs -iso-level 3 -graft-points -J -joliet-long -V "$FSLABEL" --modification-date=$(echo ${FSUUID} | sed 's/-//g;') -o "${FSIMAGES[0]}" /="$MASTER" ;; -+ xorriso --rockridge off -compliance rec_mtime -as mkisofs -iso-level 3 -graft-points -J -joliet-long -V "$FSLABEL" --modification-date=$(echo ${FSUUID} | sed 's/-//g;') -o "${FSIMAGEP}0.img" /="$MASTER" ;; - x"rockridge") - FSUUID=$(date -u +%Y-%m-%d-%H-%M-%S-00); -- xorriso --rockridge on -compliance rec_mtime -as mkisofs -iso-level 3 -graft-points -V "$FSLABEL" --modification-date=$(echo ${FSUUID} | sed 's/-//g;') -o "${FSIMAGES[0]}" /="$MASTER" ;; -+ xorriso --rockridge on -compliance rec_mtime -as mkisofs -iso-level 3 -graft-points -V "$FSLABEL" --modification-date=$(echo ${FSUUID} | sed 's/-//g;') -o "${FSIMAGEP}0.img" /="$MASTER" ;; - x"rockridge_joliet") - FSUUID=$(date -u +%Y-%m-%d-%H-%M-%S-00); -- xorriso --rockridge on -compliance rec_mtime -as mkisofs -iso-level 3 -graft-points -J -joliet-long -V "$FSLABEL" --modification-date=$(echo ${FSUUID} | sed 's/-//g;') -o "${FSIMAGES[0]}" /="$MASTER" ;; -+ xorriso --rockridge on -compliance rec_mtime -as mkisofs -iso-level 3 -graft-points -J -joliet-long -V "$FSLABEL" --modification-date=$(echo ${FSUUID} | sed 's/-//g;') -o "${FSIMAGEP}0.img" /="$MASTER" ;; - x"iso9660_1999") - FSUUID=$(date -u +%Y-%m-%d-%H-%M-%S-00); -- xorriso --rockridge off -compliance rec_mtime -as mkisofs -iso-level 4 -graft-points -V "$FSLABEL" --modification-date=$(echo ${FSUUID} | sed 's/-//g;') -o "${FSIMAGES[0]}" /="$MASTER" ;; -+ xorriso --rockridge off -compliance rec_mtime -as mkisofs -iso-level 4 -graft-points -V "$FSLABEL" --modification-date=$(echo ${FSUUID} | sed 's/-//g;') -o "${FSIMAGEP}0.img" /="$MASTER" ;; - x"joliet_1999") - FSUUID=$(date -u +%Y-%m-%d-%H-%M-%S-00); -- xorriso --rockridge off -compliance rec_mtime -as mkisofs -iso-level 4 -graft-points -J -joliet-long -V "$FSLABEL" --modification-date=$(echo ${FSUUID} | sed 's/-//g;') -o "${FSIMAGES[0]}" /="$MASTER" ;; -+ xorriso --rockridge off -compliance rec_mtime -as mkisofs -iso-level 4 -graft-points -J -joliet-long -V "$FSLABEL" --modification-date=$(echo ${FSUUID} | sed 's/-//g;') -o "${FSIMAGEP}0.img" /="$MASTER" ;; - x"rockridge_1999") - FSUUID=$(date -u +%Y-%m-%d-%H-%M-%S-00); -- xorriso --rockridge on -compliance rec_mtime -as mkisofs -iso-level 4 -graft-points -V "$FSLABEL" --modification-date=$(echo ${FSUUID} | sed 's/-//g;') -o "${FSIMAGES[0]}" /="$MASTER" ;; -+ xorriso --rockridge on -compliance rec_mtime -as mkisofs -iso-level 4 -graft-points -V "$FSLABEL" --modification-date=$(echo ${FSUUID} | sed 's/-//g;') -o "${FSIMAGEP}0.img" /="$MASTER" ;; - x"rockridge_joliet_1999") - FSUUID=$(date -u +%Y-%m-%d-%H-%M-%S-00); -- xorriso --rockridge on -compliance rec_mtime -as mkisofs -iso-level 4 -graft-points -J -joliet-long -V "$FSLABEL" --modification-date=$(echo ${FSUUID} | sed 's/-//g;') -o "${FSIMAGES[0]}" /="$MASTER" ;; -+ xorriso --rockridge on -compliance rec_mtime -as mkisofs -iso-level 4 -graft-points -J -joliet-long -V "$FSLABEL" --modification-date=$(echo ${FSUUID} | sed 's/-//g;') -o "${FSIMAGEP}0.img" /="$MASTER" ;; - x"romfs") -- genromfs -V "$FSLABEL" -f "${FSIMAGES[0]}" -d "$MASTER" ;; -+ genromfs -V "$FSLABEL" -f "${FSIMAGEP}0.img" -d "$MASTER" ;; - xsquash4_*) -- echo mksquashfs "$MASTER" "${FSIMAGES[0]}" -always-use-fragments -comp "${fs/squash4_/}" -b $BLKSIZE -- mksquashfs "$MASTER" "${FSIMAGES[0]}" -always-use-fragments -comp "${fs/squash4_/}" -b $BLKSIZE ;; -+ echo mksquashfs "$MASTER" "${FSIMAGEP}0.img" -always-use-fragments -comp "${fs/squash4_/}" -b $BLKSIZE -+ mksquashfs "$MASTER" "${FSIMAGEP}0.img" -always-use-fragments -comp "${fs/squash4_/}" -b $BLKSIZE ;; - x"bfs") - sleep 1 - fusermount -u "$MNTPOINTRW" - ;; - xlvm*) - sleep 1 -- for ((try=0;try < 20; try++)); do -+ for try in $(range 0 20 1); do - if umount "$MNTPOINTRW" ; then - break; - fi -@@ -1021,7 +1053,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + - ;; - xmdraid*) - sleep 1 -- for ((try=0;try < 20; try++)); do -+ for try in $(range 0 20 1); do - if umount "$MNTPOINTRW" ; then - break; - fi -@@ -1033,7 +1065,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + - ;; - *) - sleep 1 -- for ((try=0;try < 20; try++)); do -+ for try in $(range 0 20 1); do - if umount "$MNTPOINTRW" ; then - break; - fi -@@ -1066,7 +1098,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + - sleep 1 - mount -t "$MOUNTFS" "${MOUNTDEVICE}" "$MNTPOINTRO" -o ${MOUNTOPTS}${SELINUXOPTS}ro ;; - xmdraid*) -- mdadm --assemble /dev/md/"${fs}_$NDEVICES" "${LODEVICES[@]}" -+ mdadm --assemble /dev/md/"${fs}_$NDEVICES" $LODEVICES - sleep 1 - mount -t "$MOUNTFS" "${MOUNTDEVICE}" "$MNTPOINTRO" -o ${MOUNTOPTS}${SELINUXOPTS}ro ;; - *) -@@ -1085,7 +1117,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + - else - echo LIST FAIL - echo "$LSROUT" -- TZ=UTC ls --time-style=+%Y%m%d%H%M%S.%N -l "$MNTPOINTRO" -+ TZ=UTC ls -l "$MNTPOINTRO" - exit 1 - fi - -@@ -1094,7 +1126,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + - else - echo NLIST FAIL - echo "$LSROUT" -- TZ=UTC ls --time-style=+%Y%m%d%H%M%S.%N -lA "$MNTPOINTRO" -+ TZ=UTC ls -lA "$MNTPOINTRO" - exit 1 - fi - -@@ -1103,7 +1135,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + - else - echo ILIST FAIL - echo "$LSROUT" -- TZ=UTC ls --time-style=+%Y%m%d%H%M%S.%N -l "$MNTPOINTRO" -+ TZ=UTC ls -l "$MNTPOINTRO" - exit 1 - fi - -@@ -1112,7 +1144,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + - else - echo LONG LIST FAIL - echo "$LSROUT" -- TZ=UTC ls --time-style=+%Y%m%d%H%M%S.%N -l "$MNTPOINTRO" -+ TZ=UTC ls -l "$MNTPOINTRO" - exit 1 - fi - -@@ -1123,7 +1155,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + - else - echo TIME FAIL - echo "$LSROUT" -- TZ=UTC ls --time-style=+%Y%m%d%H%M%S.%N -l "$MNTPOINTRO" -+ TZ=UTC ls -l "$MNTPOINTRO" - exit 1 - fi - -@@ -1133,7 +1165,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + - else - echo LONG TIME FAIL - echo "$LSROUT" -- TZ=UTC ls --time-style=+%Y%m%d%H%M%S.%N -l "$MNTPOINTRO" -+ TZ=UTC ls -l "$MNTPOINTRO" - exit 1 - fi - fi -@@ -1149,7 +1181,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + - else - echo DOT IN ROOTDIR FAIL - echo "$LSROUT" -- TZ=UTC ls --time-style=+%Y%m%d%H%M%S.%N -l "$MNTPOINTRO" -+ TZ=UTC ls -l "$MNTPOINTRO" - exit 1 - fi - -@@ -1163,7 +1195,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + - else - echo DOTDOT IN ROOTDIR FAIL - echo "$LSROUT" -- TZ=UTC ls --time-style=+%Y%m%d%H%M%S.%N -l "$MNTPOINTRO" -+ TZ=UTC ls -l "$MNTPOINTRO" - exit 1 - fi - ;; -@@ -1180,7 +1212,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + - else - echo SLIST FAIL - echo "$LSROUT" -- TZ=UTC ls --time-style=+%Y%m%d%H%M%S.%N -l "$MNTPOINTRO/sdir" -+ TZ=UTC ls -l "$MNTPOINTRO/sdir" - exit 1 - fi - -@@ -1195,7 +1227,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + - else - echo PLIST FAIL - echo "$LSROUT" -- TZ=UTC ls --time-style=+%Y%m%d%H%M%S.%N -l "$MNTPOINTRO/$PDIR" -+ TZ=UTC ls -l "$MNTPOINTRO/$PDIR" - exit 1 - fi - -@@ -1210,7 +1242,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + - else - echo DOT IN SUBDIR FAIL - echo "$LSROUT" -- TZ=UTC ls --time-style=+%Y%m%d%H%M%S.%N -l "$MNTPOINTRO/$OSDIR/sdir" -+ TZ=UTC ls -l "$MNTPOINTRO/$OSDIR/sdir" - exit 1 - fi - -@@ -1225,7 +1257,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + - else - echo DOTDOT IN SUBDIR FAIL - echo "$LSROUT" -- TZ=UTC ls --time-style=+%Y%m%d%H%M%S.%N -l "$MNTPOINTRO/$OSDIR/ssdir" -+ TZ=UTC ls -l "$MNTPOINTRO/$OSDIR/ssdir" - exit 1 - fi - -@@ -1245,8 +1277,8 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + - case x"$fs" in - x"iso9660" | x"ziso9660" | xrockridge | xjoliet | xrockridge_joliet | x"iso9660_1999" | xrockridge_1999 | xjoliet_1999 | xrockridge_joliet_1999) ;; - x"zfs"*) -- for ((i=0;i Date: Tue, 11 Jun 2013 15:14:05 -0300 Subject: [PATCH] Disable GRUB video support for IBM power machines diff --git a/0004-support-busybox-date.patch b/0004-support-busybox-date.patch deleted file mode 100644 index 4c460c84..00000000 --- a/0004-support-busybox-date.patch +++ /dev/null @@ -1,40 +0,0 @@ -From b43b8cacc813c2c15347de1e35cc88d9aa912d22 Mon Sep 17 00:00:00 2001 -From: Vladimir Serbinenko -Date: Mon, 23 Jan 2017 14:31:36 +0300 -Subject: [PATCH] support busybox date. - -Busybox date doesn't understand weekdays in -d input, -so strip them beforehand. ---- - tests/grub_cmd_date.in | 2 +- - tests/grub_cmd_sleep.in | 4 ++-- - 2 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/tests/grub_cmd_date.in b/tests/grub_cmd_date.in -index 0d8162e98b0..60f039ebc8b 100644 ---- a/tests/grub_cmd_date.in -+++ b/tests/grub_cmd_date.in -@@ -9,7 +9,7 @@ if [ "${grub_modinfo_target_cpu}-${grub_modinfo_platform}" = sparc64-ieee1275 ]; - fi - - pdt="$(date -u +%s)" --dt=`echo date | @builddir@/grub-shell` -+dt=`echo date | @builddir@/grub-shell | sed 's, [A-Z][a-z]*$,,'` - dtg="$(date -u -d "$dt" +%s)" - ndt="$(date -u +%s)" - -diff --git a/tests/grub_cmd_sleep.in b/tests/grub_cmd_sleep.in -index 05b8f6b73fa..ac51d42098e 100644 ---- a/tests/grub_cmd_sleep.in -+++ b/tests/grub_cmd_sleep.in -@@ -11,8 +11,8 @@ fi - # Compare RTC with interval timer. - # Not 100% proper but should check that timer is running ok - dt=`echo 'date; sleep 10; date' | @builddir@/grub-shell` --dt1="$(date -u -d "$(echo "$dt" | head -n 1)" +%s)" --dt2="$(date -u -d "$(echo "$dt" | tail -n 1)" +%s)" -+dt1="$(date -u -d "$(echo "$dt" | head -n 1 | sed 's, [A-Z][a-z]*$,,')" +%s)" -+dt2="$(date -u -d "$(echo "$dt" | tail -n 1 | sed 's, [A-Z][a-z]*$,,')" +%s)" - - # Ignore QEMU bug - if [ "${grub_modinfo_target_cpu}" = arm ] && [ $((dt2 - dt1)) -ge 15 ] && [ $((dt2 - dt1)) -le 17 ]; then diff --git a/0005-Don-t-retrieve-fstime-when-it-s-not-useful.patch b/0005-Don-t-retrieve-fstime-when-it-s-not-useful.patch deleted file mode 100644 index 500d9626..00000000 --- a/0005-Don-t-retrieve-fstime-when-it-s-not-useful.patch +++ /dev/null @@ -1,69 +0,0 @@ -From 6dec3a26b37e128ded5d912e08abc5cee1592499 Mon Sep 17 00:00:00 2001 -From: Vladimir Serbinenko -Date: Mon, 23 Jan 2017 21:24:05 +0300 -Subject: [PATCH] Don't retrieve fstime when it's not useful. - ---- - tests/util/grub-fs-tester.in | 48 ++++++++++++++++++++++---------------------- - 1 file changed, 24 insertions(+), 24 deletions(-) - -diff --git a/tests/util/grub-fs-tester.in b/tests/util/grub-fs-tester.in -index 4515d165e6e..bf47305f3e8 100644 ---- a/tests/util/grub-fs-tester.in -+++ b/tests/util/grub-fs-tester.in -@@ -1328,31 +1328,31 @@ for LOGSECSIZE in $(range "$MINLOGSECSIZE" "$MAXLOGSECSIZE" 1); do - ;; - esac - -- case x$fs in -- xiso9660 | xziso9660 | xrockridge | xjoliet | xrockridge_joliet | xiso9660_1999 | xrockridge_1999 | xjoliet_1999 | xrockridge_joliet_1999) -- FSTIME="$(date -d "$(echo ${FSUUID} | awk -F - '{ print $1"-"$2"-"$3" "$4":"$5":"$6 ;}')" '+%Y-%m-%d %H:%M:%S')";; -- xlvm*|xmdraid*) -- # With some abstractions like mdraid flushing to disk -- # may be delayed for a long time. -- FSTIME="$UMOUNT_TIME";; -- *) -- FSTIME="$(TZ=UTC ls --time-style="+%Y-%m-%d_%H:%M:%S" -l -d "${FSIMAGEP}0.img"|awk '{print $6; }'|sed 's,_, ,g')";; -- esac -- # With some abstractions like mdraid computing of UMOUNT_TIME -- # is not precise. Account for small difference here. -- FSTIMEM1="$(date -d "$FSTIME UTC -1 second" -u "+%Y-%m-%d %H:%M:%S")" -- FSTIMEM2="$(date -d "$FSTIME UTC -2 second" -u "+%Y-%m-%d %H:%M:%S")" -- FSTIMEM3="$(date -d "$FSTIME UTC -3 second" -u "+%Y-%m-%d %H:%M:%S")" -+ if [ x$NOFSTIME != xy ]; then -+ case x$fs in -+ xiso9660 | xziso9660 | xrockridge | xjoliet | xrockridge_joliet | xiso9660_1999 | xrockridge_1999 | xjoliet_1999 | xrockridge_joliet_1999) -+ FSTIME="$(date -d "$(echo ${FSUUID} | awk -F - '{ print $1"-"$2"-"$3" "$4":"$5":"$6 ;}')" '+%Y-%m-%d %H:%M:%S')";; -+ xlvm*|xmdraid*) -+ # With some abstractions like mdraid flushing to disk -+ # may be delayed for a long time. -+ FSTIME="$UMOUNT_TIME";; -+ *) -+ FSTIME="$(TZ=UTC ls --time-style="+%Y-%m-%d_%H:%M:%S" -l -d "${FSIMAGEP}0.img"|awk '{print $6; }'|sed 's,_, ,g')";; -+ esac -+ # With some abstractions like mdraid computing of UMOUNT_TIME -+ # is not precise. Account for small difference here. -+ FSTIMEM1="$(date -d "$FSTIME UTC -1 second" -u "+%Y-%m-%d %H:%M:%S")" -+ FSTIMEM2="$(date -d "$FSTIME UTC -2 second" -u "+%Y-%m-%d %H:%M:%S")" -+ FSTIMEM3="$(date -d "$FSTIME UTC -3 second" -u "+%Y-%m-%d %H:%M:%S")" - -- if [ x$NOFSTIME = xy ]; then -- : -- elif echo "$LSOUT" | grep -F 'Last modification time '"$FSTIME" > /dev/null || echo "$LSOUT" | grep -F 'Last modification time '"$FSTIMEM1" > /dev/null || echo "$LSOUT" | grep -F 'Last modification time '"$FSTIMEM2" || echo "$LSOUT" | grep -F 'Last modification time '"$FSTIMEM3" > /dev/null; then -- : -- else -- echo FSTIME FAIL -- echo "$FSTIME" -- echo "$LSOUT" -- exit 1 -+ if echo "$LSOUT" | grep -F 'Last modification time '"$FSTIME" > /dev/null || echo "$LSOUT" | grep -F 'Last modification time '"$FSTIMEM1" > /dev/null || echo "$LSOUT" | grep -F 'Last modification time '"$FSTIMEM2" || echo "$LSOUT" | grep -F 'Last modification time '"$FSTIMEM3" > /dev/null; then -+ : -+ else -+ echo FSTIME FAIL -+ echo "$FSTIME" -+ echo "$LSOUT" -+ exit 1 -+ fi - fi - - if [ x$NOHARDLINK != xy ]; then diff --git a/0068-Honor-a-symlink-when-generating-configuration-by-gru.patch b/0005-Honor-a-symlink-when-generating-configuration-by-gru.patch similarity index 92% rename from 0068-Honor-a-symlink-when-generating-configuration-by-gru.patch rename to 0005-Honor-a-symlink-when-generating-configuration-by-gru.patch index a0f3402f..5701f6d1 100644 --- a/0068-Honor-a-symlink-when-generating-configuration-by-gru.patch +++ b/0005-Honor-a-symlink-when-generating-configuration-by-gru.patch @@ -1,4 +1,4 @@ -From c29e260c9f41f4f802fa852b6c46fb2e5d912cb6 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Marcel Kolaja Date: Tue, 21 Jan 2014 10:57:08 -0500 Subject: [PATCH] Honor a symlink when generating configuration by diff --git a/0069-Move-bash-completion-script-922997.patch b/0006-Move-bash-completion-script-922997.patch similarity index 96% rename from 0069-Move-bash-completion-script-922997.patch rename to 0006-Move-bash-completion-script-922997.patch index cb2f9e1a..dbf31bfc 100644 --- a/0069-Move-bash-completion-script-922997.patch +++ b/0006-Move-bash-completion-script-922997.patch @@ -1,4 +1,4 @@ -From 8eaf2f497a6bcffc5554509533940ac2b764b981 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 3 Apr 2013 14:35:34 -0400 Subject: [PATCH] Move bash completion script (#922997) diff --git a/0006-Support-lseek64.patch b/0006-Support-lseek64.patch deleted file mode 100644 index 19e0f129..00000000 --- a/0006-Support-lseek64.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 608bec51128008afb81c9e3f297283e9f830a146 Mon Sep 17 00:00:00 2001 -From: Vladimir Serbinenko -Date: Mon, 23 Jan 2017 20:21:05 +0300 -Subject: [PATCH] Support lseek64. - -Android doesn't have 64-bit off_t, so use off64_t instead. ---- - configure.ac | 5 ++++- - grub-core/osdep/unix/hostdisk.c | 8 ++++++++ - 2 files changed, 12 insertions(+), 1 deletion(-) - -diff --git a/configure.ac b/configure.ac -index d10d8adac58..e0262e159f0 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -373,7 +373,10 @@ case "$host_os" in - ;; - *) - AC_CHECK_SIZEOF(off_t) -- test x"$ac_cv_sizeof_off_t" = x8 || AC_MSG_ERROR([Large file support is required]);; -+ if test x"$ac_cv_sizeof_off_t" != x8 ; then -+ AC_CHECK_SIZEOF(off64_t) -+ test x"$ac_cv_sizeof_off64_t" = x8 || AC_MSG_ERROR([Large file support is required]) -+ fi;; - esac - - if test x$USE_NLS = xno; then -diff --git a/grub-core/osdep/unix/hostdisk.c b/grub-core/osdep/unix/hostdisk.c -index 2a8c5882e3d..5450cf4166e 100644 ---- a/grub-core/osdep/unix/hostdisk.c -+++ b/grub-core/osdep/unix/hostdisk.c -@@ -77,11 +77,19 @@ grub_util_get_fd_size (grub_util_fd_t fd, const char *name, unsigned *log_secsiz - int - grub_util_fd_seek (grub_util_fd_t fd, grub_uint64_t off) - { -+#if SIZEOF_OFF_T == 8 - off_t offset = (off_t) off; - - if (lseek (fd, offset, SEEK_SET) != offset) - return -1; -+#elif SIZEOF_OFF64_T == 8 -+ off64_t offset = (off64_t) off; - -+ if (lseek64 (fd, offset, SEEK_SET) != offset) -+ return -1; -+#else -+#error "No large file support" -+#endif - return 0; - } - diff --git a/0070-Update-to-minilzo-2.08.patch b/0007-Update-to-minilzo-2.08.patch similarity index 99% rename from 0070-Update-to-minilzo-2.08.patch rename to 0007-Update-to-minilzo-2.08.patch index 6e000cf3..a71c501e 100644 --- a/0070-Update-to-minilzo-2.08.patch +++ b/0007-Update-to-minilzo-2.08.patch @@ -1,4 +1,4 @@ -From 9a1e99c5628bafa9e3970a5317b721da704bec6a Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Dec 2014 15:36:09 -0500 Subject: [PATCH] Update to minilzo-2.08 diff --git a/0007-Use-SHELL-rather-than-bin-sh.patch b/0007-Use-SHELL-rather-than-bin-sh.patch deleted file mode 100644 index a887972e..00000000 --- a/0007-Use-SHELL-rather-than-bin-sh.patch +++ /dev/null @@ -1,23 +0,0 @@ -From c2ea443446b7feea868e54f94a87781f69820375 Mon Sep 17 00:00:00 2001 -From: Vladimir Serbinenko -Date: Mon, 23 Jan 2017 00:55:30 +0300 -Subject: [PATCH] Use $(SHELL) rather than /bin/sh. - -/bin/sh doesn't exist under termux. ---- - grub-core/Makefile.am | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am -index 04e9395fd94..809a8aa26bf 100644 ---- a/grub-core/Makefile.am -+++ b/grub-core/Makefile.am -@@ -278,7 +278,7 @@ BUILT_SOURCES += symlist.h - - symlist.c: symlist.h gensymlist.sh - $(TARGET_CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS_KERNEL) $(CPPFLAGS) -DGRUB_SYMBOL_GENERATOR=1 symlist.h > symlist.p || (rm -f symlist.p; exit 1) -- cat symlist.p | /bin/sh $(srcdir)/gensymlist.sh $(top_builddir)/config.h $(KERNEL_HEADER_FILES) >$@ || (rm -f $@; exit 1) -+ cat symlist.p | $(SHELL) $(srcdir)/gensymlist.sh $(top_builddir)/config.h $(KERNEL_HEADER_FILES) >$@ || (rm -f $@; exit 1) - rm -f symlist.p - CLEANFILES += symlist.c - BUILT_SOURCES += symlist.c diff --git a/0071-Allow-fallback-to-include-entries-by-title-not-just-.patch b/0008-Allow-fallback-to-include-entries-by-title-not-just-.patch similarity index 98% rename from 0071-Allow-fallback-to-include-entries-by-title-not-just-.patch rename to 0008-Allow-fallback-to-include-entries-by-title-not-just-.patch index 87f8cfe0..bee65ed2 100644 --- a/0071-Allow-fallback-to-include-entries-by-title-not-just-.patch +++ b/0008-Allow-fallback-to-include-entries-by-title-not-just-.patch @@ -1,4 +1,4 @@ -From 27845fb323de35e9dcaad8c738eb1a2a2bc316f8 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 5 Sep 2014 10:07:04 -0400 Subject: [PATCH] Allow "fallback" to include entries by title, not just diff --git a/0008-po-Use-SHELL-rather-than-bin-sh.patch b/0008-po-Use-SHELL-rather-than-bin-sh.patch deleted file mode 100644 index 7bdb3d70..00000000 --- a/0008-po-Use-SHELL-rather-than-bin-sh.patch +++ /dev/null @@ -1,23 +0,0 @@ -From 4341f82af0b61d3dfbe675670d4105dc759c0df3 Mon Sep 17 00:00:00 2001 -From: Vladimir Serbinenko -Date: Mon, 23 Jan 2017 14:54:03 +0300 -Subject: [PATCH] po: Use @SHELL@ rather than /bin/sh. - -/bin/sh might not exist. ---- - po/Makefile.in.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/po/Makefile.in.in b/po/Makefile.in.in -index 3619458e85f..e68e9da843d 100644 ---- a/po/Makefile.in.in -+++ b/po/Makefile.in.in -@@ -15,7 +15,7 @@ PACKAGE = @PACKAGE@ - VERSION = @VERSION@ - PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@ - --SHELL = /bin/sh -+SHELL = @SHELL@ - @SET_MAKE@ - - srcdir = @srcdir@ diff --git a/0072-Add-GRUB_DISABLE_UUID.patch b/0009-Add-GRUB_DISABLE_UUID.patch similarity index 98% rename from 0072-Add-GRUB_DISABLE_UUID.patch rename to 0009-Add-GRUB_DISABLE_UUID.patch index 884ae637..856ce003 100644 --- a/0072-Add-GRUB_DISABLE_UUID.patch +++ b/0009-Add-GRUB_DISABLE_UUID.patch @@ -1,4 +1,4 @@ -From 7f7429e93fa791ac2c002beaafab9b9d9bd86b89 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Sep 2014 16:49:25 -0400 Subject: [PATCH] Add GRUB_DISABLE_UUID. diff --git a/0009-Add-termux-path-to-dict.patch b/0009-Add-termux-path-to-dict.patch deleted file mode 100644 index 0f3ad6d9..00000000 --- a/0009-Add-termux-path-to-dict.patch +++ /dev/null @@ -1,22 +0,0 @@ -From 1073ddb12078f3c8edbdb74bb8f5afc674983f40 Mon Sep 17 00:00:00 2001 -From: Vladimir Serbinenko -Date: Mon, 23 Jan 2017 14:52:48 +0300 -Subject: [PATCH] Add termux path to dict. - ---- - tests/util/grub-fs-tester.in | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/tests/util/grub-fs-tester.in b/tests/util/grub-fs-tester.in -index bf47305f3e8..468d9e7856d 100644 ---- a/tests/util/grub-fs-tester.in -+++ b/tests/util/grub-fs-tester.in -@@ -259,7 +259,7 @@ for LOGSECSIZE in $(range "$MINLOGSECSIZE" "$MAXLOGSECSIZE" 1); do - MASTER="${tempdir}/master" - FSLABEL="grub_;/testé莭莽茝😁киритi urewfceniuewruevrewnuuireurevueurnievrewfnerfcnevirivinrewvnirewnivrewiuvcrewvnuewvrrrewniuerwreiuviurewiuviurewnuvewnvrenurnunuvrevuurerejiremvreijnvcreivire nverivnreivrevnureiorfnfrvoeoiroireoireoifrefoieroifoireoifoirefoireoifoijfoirereoireoivoioirevoinvoinreoinvnoieoinreoinveoinveoinreoinvoineoinoinoineoinernoiveoinvreoiioewdioewoirvnoireoivfoirewfewoifoijewoijfoijewfoijfewoijoijoijoijoijoijoijfewceniuewruevrewnuuireurevueurnievrewfnerfcnevirivinrewvnirewnivrewiuvcrewvnuewvrrrewniuerwreiuviurewiuviurewnuvewnvrenurnunuvrevuurerejiremvreijnvcreivire nverivnreivrevnureiorfnfrvoeoiroireoireoifrefoieroifoireoifoirefoireoifoijfoirereoireoivoioirevoinvoinreoinvnoieoinreoinveoinveoinreoinvoineoinoinoineoinernoiveoinvreoiioewdioewoirvnoireoivfoirewfewoifoijewoijfoijewfoijfewoijoijoijoijoijoijoijfewrewfceniuewruevrewnuuireurevueurnievrewfnerfcnevirivinrewvnirewnivrewiuvcrewvnuewvrrrewniuerwreiuviurewiuviurewnuvewnvrenurnunuvrevuurerejiremvreijnvcreivire nverivnreivrevnureiorfnfrvoeoiroireoireoifrefoieroifoireoifoirefoireoifoijfoirereoireoivoioirevoinvoinreoinvnoieoinreoinveoinveoinreoinvoineoinoinoineoinernoiveoinvreoiioewdioewoirvnoireoivfoirewfewoifoijewoijfoijewfoijfewoijoijoijoijoijoijoijfewceniuewruevrewnuuireurevueurnievrewfnerfcnevirivinrewvnirewnivrewiuvcrewvnuewvrrrewniuerwreiuviurewiuviurewnuvewnvrenurnunuvrevuurerejiremvreijnvcreivire nverivnreivrevnureiorfnfrvoeoiroireoireoifrefoieroifoireoifoirefoireoifoijfoirereoireoivoioirevoinvoinreoinvnoieoinreoinveoinveoinreoinvoineoinoinoineoinernoiveoinvreoiioewdioewoirvnoireoivfoirewfewoifoijewoijfoijewfoijfewoijoijoijoijoijoijoijfew" - CFILESRC= -- for cand in /usr/share/dict/american-english /usr/share/dict/linux.words; do -+ for cand in /usr/share/dict/american-english /usr/share/dict/linux.words /data/data/com.termux/files/usr/share/hunspell/en_US.dic; do - if test -f "$cand" ; then - CFILESRC="$cand" - break diff --git a/0010-Fix-shebang-for-termux.patch b/0010-Fix-shebang-for-termux.patch deleted file mode 100644 index 9c75c276..00000000 --- a/0010-Fix-shebang-for-termux.patch +++ /dev/null @@ -1,681 +0,0 @@ -From a827807a1330d5ad619faa103bc7f12d89fc8bee Mon Sep 17 00:00:00 2001 -From: Vladimir Serbinenko -Date: Sun, 22 Jan 2017 20:22:34 +0300 -Subject: [PATCH] Fix shebang for termux. - -Termux doesn't have a /bin/sh. So we needto use $SHELL. -Keep /bin/sh as much as possible. ---- - configure.ac | 10 ++++++++++ - grub-core/genmod.sh.in | 2 +- - grub-core/gensyminfo.sh.in | 2 +- - grub-core/modinfo.sh.in | 2 +- - tests/ahci_test.in | 2 +- - tests/btrfs_test.in | 2 +- - tests/cdboot_test.in | 2 +- - tests/core_compress_test.in | 2 +- - tests/cpio_test.in | 2 +- - tests/ehci_test.in | 2 +- - tests/example_scripted_test.in | 2 +- - tests/exfat_test.in | 2 +- - tests/ext234_test.in | 2 +- - tests/fat_test.in | 2 +- - tests/fddboot_test.in | 2 +- - tests/file_filter_test.in | 2 +- - tests/gettext_strings_test.in | 2 +- - tests/grub_cmd_date.in | 2 +- - tests/grub_cmd_regexp.in | 2 +- - tests/grub_cmd_set_date.in | 2 +- - tests/grub_cmd_sleep.in | 2 +- - tests/grub_cmd_test.in | 2 +- - tests/grub_cmd_tr.in | 2 +- - tests/grub_func_test.in | 2 +- - tests/grub_script_blanklines.in | 2 +- - tests/grub_script_blockarg.in | 2 +- - tests/grub_script_dollar.in | 2 +- - tests/grub_script_expansion.in | 2 +- - tests/grub_script_final_semicolon.in | 2 +- - tests/grub_script_no_commands.in | 2 +- - tests/gzcompress_test.in | 2 +- - tests/hddboot_test.in | 2 +- - tests/help_test.in | 2 +- - tests/hfs_test.in | 2 +- - tests/hfsplus_test.in | 2 +- - tests/iso9660_test.in | 2 +- - tests/jfs_test.in | 2 +- - tests/lzocompress_test.in | 2 +- - tests/minixfs_test.in | 2 +- - tests/netboot_test.in | 2 +- - tests/nilfs2_test.in | 2 +- - tests/ntfs_test.in | 2 +- - tests/ohci_test.in | 2 +- - tests/partmap_test.in | 2 +- - tests/pata_test.in | 2 +- - tests/pseries_test.in | 2 +- - tests/reiserfs_test.in | 2 +- - tests/romfs_test.in | 2 +- - tests/squashfs_test.in | 2 +- - tests/syslinux_test.in | 2 +- - tests/tar_test.in | 2 +- - tests/test_sha512sum.in | 2 +- - tests/udf_test.in | 2 +- - tests/uhci_test.in | 2 +- - tests/util/grub-fs-tester.in | 2 +- - tests/util/grub-shell-tester.in | 2 +- - tests/util/grub-shell.in | 2 +- - tests/xfs_test.in | 2 +- - tests/xzcompress_test.in | 2 +- - tests/zfs_test.in | 2 +- - 60 files changed, 69 insertions(+), 59 deletions(-) - -diff --git a/configure.ac b/configure.ac -index e0262e159f0..ee2c86537e9 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -459,6 +459,16 @@ case "$build_os" in - esac - AC_SUBST(BUILD_EXEEXT) - -+# In some build environments like termux /bin/sh is not a valid -+# shebang. Use $SHELL instead if it's executable and /bin/sh isn't -+BUILD_SHEBANG=/bin/sh -+for she in /bin/sh "$SHELL"; do -+ if test -x "$she" ; then -+ BUILD_SHEBANG="$she" -+ fi -+done -+AC_SUBST(BUILD_SHEBANG) -+ - # For gnulib. - gl_INIT - -diff --git a/grub-core/genmod.sh.in b/grub-core/genmod.sh.in -index 03cc3b7f69e..3de06ee018f 100644 ---- a/grub-core/genmod.sh.in -+++ b/grub-core/genmod.sh.in -@@ -1,4 +1,4 @@ --#! /bin/sh -+#! @BUILD_SHEBANG@ - set -e - - # Copyright (C) 2010 Free Software Foundation, Inc. -diff --git a/grub-core/gensyminfo.sh.in b/grub-core/gensyminfo.sh.in -index 2e8716b425c..9bc7675327a 100644 ---- a/grub-core/gensyminfo.sh.in -+++ b/grub-core/gensyminfo.sh.in -@@ -1,4 +1,4 @@ --#! /bin/sh -+#! @BUILD_SHEBANG@ - set -e - - # Copyright (C) 2010 Free Software Foundation, Inc. -diff --git a/grub-core/modinfo.sh.in b/grub-core/modinfo.sh.in -index faf0ad30edb..f6cd657ce0f 100644 ---- a/grub-core/modinfo.sh.in -+++ b/grub-core/modinfo.sh.in -@@ -1,4 +1,4 @@ --#!/bin/sh -+#!@BUILD_SHEBANG@ - - # User-controllable options - grub_modinfo_target_cpu=@target_cpu@ -diff --git a/tests/ahci_test.in b/tests/ahci_test.in -index 1d01d1f59a0..7df56046201 100644 ---- a/tests/ahci_test.in -+++ b/tests/ahci_test.in -@@ -1,4 +1,4 @@ --#! /bin/sh -+#! @BUILD_SHEBANG@ - # Copyright (C) 2013 Free Software Foundation, Inc. - # - # GRUB is free software: you can redistribute it and/or modify -diff --git a/tests/btrfs_test.in b/tests/btrfs_test.in -index c55d9477f78..2b37ddd3324 100644 ---- a/tests/btrfs_test.in -+++ b/tests/btrfs_test.in -@@ -1,4 +1,4 @@ --#!/bin/sh -+#!@BUILD_SHEBANG@ - - set -e - -diff --git a/tests/cdboot_test.in b/tests/cdboot_test.in -index 1cc901977c2..75acdfedb7f 100644 ---- a/tests/cdboot_test.in -+++ b/tests/cdboot_test.in -@@ -1,4 +1,4 @@ --#! /bin/sh -+#! @BUILD_SHEBANG@ - # Copyright (C) 2013 Free Software Foundation, Inc. - # - # GRUB is free software: you can redistribute it and/or modify -diff --git a/tests/core_compress_test.in b/tests/core_compress_test.in -index 1003587ccca..9d216ebcff6 100644 ---- a/tests/core_compress_test.in -+++ b/tests/core_compress_test.in -@@ -1,4 +1,4 @@ --#! /bin/sh -+#! @BUILD_SHEBANG@ - # Copyright (C) 2013 Free Software Foundation, Inc. - # - # GRUB is free software: you can redistribute it and/or modify -diff --git a/tests/cpio_test.in b/tests/cpio_test.in -index 0b09db549f0..5742cf17b9d 100644 ---- a/tests/cpio_test.in -+++ b/tests/cpio_test.in -@@ -1,4 +1,4 @@ --#!/bin/sh -+#!@BUILD_SHEBANG@ - - set -e - -diff --git a/tests/ehci_test.in b/tests/ehci_test.in -index 7dd8d3e8fbd..b197f8cdc92 100644 ---- a/tests/ehci_test.in -+++ b/tests/ehci_test.in -@@ -1,4 +1,4 @@ --#! /bin/sh -+#! @BUILD_SHEBANG@ - # Copyright (C) 2013 Free Software Foundation, Inc. - # - # GRUB is free software: you can redistribute it and/or modify -diff --git a/tests/example_scripted_test.in b/tests/example_scripted_test.in -index 09633e89341..783b7f13853 100644 ---- a/tests/example_scripted_test.in -+++ b/tests/example_scripted_test.in -@@ -1,4 +1,4 @@ --#!/bin/sh -+#!@BUILD_SHEBANG@ - set -e - - true -diff --git a/tests/exfat_test.in b/tests/exfat_test.in -index fc1a0fe5ec0..cd3cd4cb2f7 100644 ---- a/tests/exfat_test.in -+++ b/tests/exfat_test.in -@@ -1,4 +1,4 @@ --#!/bin/sh -+#!@BUILD_SHEBANG@ - - set -e - -diff --git a/tests/ext234_test.in b/tests/ext234_test.in -index c986960a8be..892b99cbdf6 100644 ---- a/tests/ext234_test.in -+++ b/tests/ext234_test.in -@@ -1,4 +1,4 @@ --#!/bin/sh -+#!@BUILD_SHEBANG@ - - set -e - -diff --git a/tests/fat_test.in b/tests/fat_test.in -index 1d132b51703..b6b4748ca69 100644 ---- a/tests/fat_test.in -+++ b/tests/fat_test.in -@@ -1,4 +1,4 @@ --#!/bin/sh -+#!@BUILD_SHEBANG@ - - set -e - -diff --git a/tests/fddboot_test.in b/tests/fddboot_test.in -index a59645b7f87..2d7dfc8891f 100644 ---- a/tests/fddboot_test.in -+++ b/tests/fddboot_test.in -@@ -1,4 +1,4 @@ --#! /bin/sh -+#! @BUILD_SHEBANG@ - # Copyright (C) 2013 Free Software Foundation, Inc. - # - # GRUB is free software: you can redistribute it and/or modify -diff --git a/tests/file_filter_test.in b/tests/file_filter_test.in -index 8909e4021fb..bfb6382274e 100644 ---- a/tests/file_filter_test.in -+++ b/tests/file_filter_test.in -@@ -1,4 +1,4 @@ --#! /bin/sh -+#! @BUILD_SHEBANG@ - # Copyright (C) 2014 Free Software Foundation, Inc. - # - # GRUB is free software: you can redistribute it and/or modify -diff --git a/tests/gettext_strings_test.in b/tests/gettext_strings_test.in -index 5c305e75b7e..813999ebe6e 100644 ---- a/tests/gettext_strings_test.in -+++ b/tests/gettext_strings_test.in -@@ -1,4 +1,4 @@ --#!/bin/sh -+#!@BUILD_SHEBANG@ - - cd '@srcdir@' - -diff --git a/tests/grub_cmd_date.in b/tests/grub_cmd_date.in -index 60f039ebc8b..f7c9ca00432 100644 ---- a/tests/grub_cmd_date.in -+++ b/tests/grub_cmd_date.in -@@ -1,4 +1,4 @@ --#! /bin/sh -+#! @BUILD_SHEBANG@ - set -e - - . "@builddir@/grub-core/modinfo.sh" -diff --git a/tests/grub_cmd_regexp.in b/tests/grub_cmd_regexp.in -index 7e9ab86aabb..6520bd6d79a 100644 ---- a/tests/grub_cmd_regexp.in -+++ b/tests/grub_cmd_regexp.in -@@ -1,4 +1,4 @@ --#! /bin/sh -+#! @BUILD_SHEBANG@ - set -e - - # Run GRUB script in a Qemu instance -diff --git a/tests/grub_cmd_set_date.in b/tests/grub_cmd_set_date.in -index 2f518dd9e34..aac120a6c52 100644 ---- a/tests/grub_cmd_set_date.in -+++ b/tests/grub_cmd_set_date.in -@@ -1,4 +1,4 @@ --#! /bin/sh -+#! @BUILD_SHEBANG@ - set -e - - . "@builddir@/grub-core/modinfo.sh" -diff --git a/tests/grub_cmd_sleep.in b/tests/grub_cmd_sleep.in -index ac51d42098e..8797f663284 100644 ---- a/tests/grub_cmd_sleep.in -+++ b/tests/grub_cmd_sleep.in -@@ -1,4 +1,4 @@ --#! /bin/sh -+#! @BUILD_SHEBANG@ - set -e - - . "@builddir@/grub-core/modinfo.sh" -diff --git a/tests/grub_cmd_test.in b/tests/grub_cmd_test.in -index 49ae8a9c830..3399eb29294 100644 ---- a/tests/grub_cmd_test.in -+++ b/tests/grub_cmd_test.in -@@ -1,4 +1,4 @@ --#! /bin/sh -+#! @BUILD_SHEBANG@ - - # create a randome file - empty="`mktemp "${TMPDIR:-/tmp}/tmp.XXXXXXXXXX"`" || exit 1 -diff --git a/tests/grub_cmd_tr.in b/tests/grub_cmd_tr.in -index 0e8d645eb6b..bed469c03dd 100644 ---- a/tests/grub_cmd_tr.in -+++ b/tests/grub_cmd_tr.in -@@ -1,4 +1,4 @@ --#! /bin/sh -e -+#! @BUILD_SHEBANG@ -e - - # Run GRUB script in a Qemu instance - # Copyright (C) 2010 Free Software Foundation, Inc. -diff --git a/tests/grub_func_test.in b/tests/grub_func_test.in -index b32f2446659..c67f9e42253 100644 ---- a/tests/grub_func_test.in -+++ b/tests/grub_func_test.in -@@ -1,4 +1,4 @@ --#! /bin/sh -+#! @BUILD_SHEBANG@ - set -e - - . "@builddir@/grub-core/modinfo.sh" -diff --git a/tests/grub_script_blanklines.in b/tests/grub_script_blanklines.in -index 89ed763d3f4..bd8735491be 100644 ---- a/tests/grub_script_blanklines.in -+++ b/tests/grub_script_blanklines.in -@@ -1,4 +1,4 @@ --#! /bin/sh -+#! @BUILD_SHEBANG@ - set -e - - @builddir@/grub-script-check < Date: Wed, 26 Feb 2014 21:49:12 -0500 Subject: [PATCH] Make "exit" take a return code. diff --git a/0011-Add-strtoull-test.patch b/0011-Add-strtoull-test.patch deleted file mode 100644 index 21b35863..00000000 --- a/0011-Add-strtoull-test.patch +++ /dev/null @@ -1,25 +0,0 @@ -From ede6c9689395499f98a4c14d76b97151b4de5f54 Mon Sep 17 00:00:00 2001 -From: Vladimir Serbinenko -Date: Wed, 3 May 2017 12:58:15 +0200 -Subject: [PATCH] Add strtoull test. - ---- - grub-core/Makefile.core.def | 5 +++++ - 1 file changed, 5 insertions(+) - -diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 2dfa22a9271..8dcd0e5a998 100644 ---- a/grub-core/Makefile.core.def -+++ b/grub-core/Makefile.core.def -@@ -1961,6 +1961,11 @@ module = { - common = tests/example_functional_test.c; - }; - -+module = { -+ name = strtoull_test; -+ common = tests/strtoull_test.c; -+}; -+ - module = { - name = setjmp_test; - common = tests/setjmp_test.c; diff --git a/0074-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch b/0011-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch similarity index 88% rename from 0074-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch rename to 0011-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch index f606370e..942116a3 100644 --- a/0074-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch +++ b/0011-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch @@ -1,4 +1,4 @@ -From 939f3dfcfacde13bd7ebfe411c0dceee9e5ed0ae Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 22 Jul 2015 11:21:01 -0400 Subject: [PATCH] Mark po/exclude.pot as binary so git won't try to diff diff --git a/0075-Make-efi-machines-load-an-env-block-from-a-variable.patch b/0012-Make-efi-machines-load-an-env-block-from-a-variable.patch similarity index 97% rename from 0075-Make-efi-machines-load-an-env-block-from-a-variable.patch rename to 0012-Make-efi-machines-load-an-env-block-from-a-variable.patch index 20969b85..223e94a9 100644 --- a/0075-Make-efi-machines-load-an-env-block-from-a-variable.patch +++ b/0012-Make-efi-machines-load-an-env-block-from-a-variable.patch @@ -1,4 +1,4 @@ -From 805220eb48a8cabcc83628d90aa40f3204b21a71 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 7 Dec 2015 14:20:49 -0500 Subject: [PATCH] Make efi machines load an env block from a variable diff --git a/0012-strtoull-Fix-behaviour-on-chars-between-9-and-a.patch b/0012-strtoull-Fix-behaviour-on-chars-between-9-and-a.patch deleted file mode 100644 index 261535d5..00000000 --- a/0012-strtoull-Fix-behaviour-on-chars-between-9-and-a.patch +++ /dev/null @@ -1,65 +0,0 @@ -From dc6e1b5af83eb1c4290baf97c2d221c0865127be Mon Sep 17 00:00:00 2001 -From: Vladimir Serbinenko -Date: Wed, 10 Aug 2016 17:49:42 +0200 -Subject: [PATCH] strtoull: Fix behaviour on chars between '9' and 'a'. - -Reported by: Aaron Miller ---- - grub-core/kern/misc.c | 13 +++++++------ - grub-core/tests/lib/functional_test.c | 13 +++++++++++-- - 2 files changed, 18 insertions(+), 8 deletions(-) - -diff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c -index d1a54df6c12..3b633d51f4c 100644 ---- a/grub-core/kern/misc.c -+++ b/grub-core/kern/misc.c -@@ -391,12 +391,13 @@ grub_strtoull (const char *str, char **end, int base) - unsigned long digit; - - digit = grub_tolower (*str) - '0'; -- if (digit > 9) -- { -- digit += '0' - 'a' + 10; -- if (digit >= (unsigned long) base) -- break; -- } -+ if (digit >= 'a' - '0') -+ digit += '0' - 'a' + 10; -+ else if (digit > 9) -+ break; -+ -+ if (digit >= (unsigned long) base) -+ break; - - found = 1; - -diff --git a/grub-core/tests/lib/functional_test.c b/grub-core/tests/lib/functional_test.c -index d4822a12456..96781fb39b5 100644 ---- a/grub-core/tests/lib/functional_test.c -+++ b/grub-core/tests/lib/functional_test.c -@@ -26,14 +26,23 @@ GRUB_MOD_LICENSE ("GPLv3+"); - - static grub_err_t - grub_functional_test (grub_extcmd_context_t ctxt __attribute__ ((unused)), -- int argc __attribute__ ((unused)), -- char **args __attribute__ ((unused))) -+ int argc, -+ char **args) - { - grub_test_t test; - int ok = 1; -+ int i; - - FOR_LIST_ELEMENTS (test, grub_test_list) - { -+ if (argc != 0) -+ { -+ for (i = 0; i < argc; i++) -+ if (grub_strcmp(args[i], test->name) == 0) -+ break; -+ if (i == argc) -+ continue; -+ } - grub_errno = 0; - ok = ok && !grub_test_run (test); - grub_errno = 0; diff --git a/0013-Add-Virtual-LAN-support.patch b/0013-Add-Virtual-LAN-support.patch deleted file mode 100644 index d29032a5..00000000 --- a/0013-Add-Virtual-LAN-support.patch +++ /dev/null @@ -1,346 +0,0 @@ -From d9f7de0ae3c0c09cff7257c55418450261f3e082 Mon Sep 17 00:00:00 2001 -From: Paulo Flabiano Smorigo -Date: Mon, 23 Dec 2013 12:32:02 -0200 -Subject: [PATCH] Add Virtual LAN support. - -This patch adds support for virtual LAN (VLAN) tagging. VLAN tagging allows -multiple VLANs in a bridged network to share the same physical network link -but maintain isolation: - -http://en.wikipedia.org/wiki/IEEE_802.1Q - -* grub-core/net/ethernet.c: Add check, get, and set vlan tag id. -* grub-core/net/drivers/ieee1275/ofnet.c: Get vlan tag id from bootargs. -* grub-core/net/arp.c: Add check. -* grub-core/net/ip.c: Likewise. -* include/grub/net/arp.h: Add vlantag attribute. -* include/grub/net/ip.h: Likewise. ---- - grub-core/net/arp.c | 12 +++++++-- - grub-core/net/drivers/ieee1275/ofnet.c | 9 ++++++- - grub-core/net/ethernet.c | 47 ++++++++++++++++++++++++++++++---- - grub-core/net/ip.c | 33 +++++++++++++++++------- - include/grub/net.h | 3 +++ - include/grub/net/arp.h | 5 ++-- - include/grub/net/ip.h | 3 ++- - 7 files changed, 92 insertions(+), 20 deletions(-) - -diff --git a/grub-core/net/arp.c b/grub-core/net/arp.c -index 4b68c4151a1..54306e3b16d 100644 ---- a/grub-core/net/arp.c -+++ b/grub-core/net/arp.c -@@ -111,8 +111,8 @@ grub_net_arp_send_request (struct grub_net_network_level_interface *inf, - } - - grub_err_t --grub_net_arp_receive (struct grub_net_buff *nb, -- struct grub_net_card *card) -+grub_net_arp_receive (struct grub_net_buff *nb, struct grub_net_card *card, -+ grub_uint16_t *vlantag) - { - struct arppkt *arp_packet = (struct arppkt *) nb->data; - grub_net_network_level_address_t sender_addr, target_addr; -@@ -138,6 +138,14 @@ grub_net_arp_receive (struct grub_net_buff *nb, - - FOR_NET_NETWORK_LEVEL_INTERFACES (inf) - { -+ /* Verify vlantag id */ -+ if (inf->card == card && inf->vlantag != *vlantag) -+ { -+ grub_dprintf ("net", "invalid vlantag! %x != %x\n", -+ inf->vlantag, *vlantag); -+ break; -+ } -+ - /* Am I the protocol address target? */ - if (grub_net_addr_cmp (&inf->address, &target_addr) == 0 - && arp_packet->op == grub_cpu_to_be16_compile_time (ARP_REQUEST)) -diff --git a/grub-core/net/drivers/ieee1275/ofnet.c b/grub-core/net/drivers/ieee1275/ofnet.c -index a78d164db1a..002446be1c3 100644 ---- a/grub-core/net/drivers/ieee1275/ofnet.c -+++ b/grub-core/net/drivers/ieee1275/ofnet.c -@@ -153,11 +153,11 @@ grub_ieee1275_parse_bootpath (const char *devpath, char *bootpath, - char *comma_char = 0; - char *equal_char = 0; - grub_size_t field_counter = 0; -- - grub_net_network_level_address_t client_addr, gateway_addr, subnet_mask; - grub_net_link_level_address_t hw_addr; - grub_net_interface_flags_t flags = 0; - struct grub_net_network_level_interface *inter = NULL; -+ grub_uint16_t vlantag = 0; - - hw_addr.type = GRUB_NET_LINK_LEVEL_PROTOCOL_ETHERNET; - -@@ -175,6 +175,11 @@ grub_ieee1275_parse_bootpath (const char *devpath, char *bootpath, - *equal_char = 0; - grub_env_set_net_property ((*card)->name, args, equal_char + 1, - grub_strlen(equal_char + 1)); -+ -+ if ((grub_strcmp (args, "vtag") == 0) && -+ (grub_strlen (equal_char + 1) == 8)) -+ vlantag = grub_strtoul (equal_char + 1 + 4, 0, 16); -+ - *equal_char = '='; - } - else -@@ -213,8 +218,10 @@ grub_ieee1275_parse_bootpath (const char *devpath, char *bootpath, - hw_addr.mac, sizeof(hw_addr.mac), 0); - inter = grub_net_add_addr ((*card)->name, *card, &client_addr, &hw_addr, - flags); -+ inter->vlantag = vlantag; - grub_net_add_ipv4_local (inter, - __builtin_ctz (~grub_le_to_cpu32 (subnet_mask.ipv4))); -+ - } - - if (gateway_addr.ipv4 != 0) -diff --git a/grub-core/net/ethernet.c b/grub-core/net/ethernet.c -index c397b1b348c..4d7ceed6f93 100644 ---- a/grub-core/net/ethernet.c -+++ b/grub-core/net/ethernet.c -@@ -18,6 +18,7 @@ - - #include - #include -+#include - #include - #include - #include -@@ -56,10 +57,17 @@ send_ethernet_packet (struct grub_net_network_level_interface *inf, - { - struct etherhdr *eth; - grub_err_t err; -+ grub_uint8_t etherhdr_size; -+ grub_uint16_t vlantag_id = VLANTAG_IDENTIFIER; - -- COMPILE_TIME_ASSERT (sizeof (*eth) < GRUB_NET_MAX_LINK_HEADER_SIZE); -+ etherhdr_size = sizeof (*eth); -+ COMPILE_TIME_ASSERT (sizeof (*eth) + 4 < GRUB_NET_MAX_LINK_HEADER_SIZE); - -- err = grub_netbuff_push (nb, sizeof (*eth)); -+ /* Increase ethernet header in case of vlantag */ -+ if (inf->vlantag != 0) -+ etherhdr_size += 4; -+ -+ err = grub_netbuff_push (nb, etherhdr_size); - if (err) - return err; - eth = (struct etherhdr *) nb->data; -@@ -76,6 +84,19 @@ send_ethernet_packet (struct grub_net_network_level_interface *inf, - return err; - inf->card->opened = 1; - } -+ -+ /* Check and add a vlan-tag if needed. */ -+ if (inf->vlantag != 0) -+ { -+ /* Move eth type to the right */ -+ grub_memcpy ((char *) nb->data + etherhdr_size - 2, -+ (char *) nb->data + etherhdr_size - 6, 2); -+ -+ /* Add the tag in the middle */ -+ grub_memcpy ((char *) nb->data + etherhdr_size - 6, &vlantag_id, 2); -+ grub_memcpy ((char *) nb->data + etherhdr_size - 4, (char *) &(inf->vlantag), 2); -+ } -+ - return inf->card->driver->send (inf->card, nb); - } - -@@ -90,10 +111,25 @@ grub_net_recv_ethernet_packet (struct grub_net_buff *nb, - grub_net_link_level_address_t hwaddress; - grub_net_link_level_address_t src_hwaddress; - grub_err_t err; -+ grub_uint8_t etherhdr_size = sizeof (*eth); -+ grub_uint16_t vlantag = 0; -+ -+ -+ /* Check if a vlan-tag is present. If so, the ethernet header is 4 bytes */ -+ /* longer than the original one. The vlantag id is extracted and the header */ -+ /* is reseted to the original size. */ -+ if (grub_get_unaligned16 (nb->data + etherhdr_size - 2) == VLANTAG_IDENTIFIER) -+ { -+ vlantag = grub_get_unaligned16 (nb->data + etherhdr_size); -+ etherhdr_size += 4; -+ /* Move eth type to the original position */ -+ grub_memcpy((char *) nb->data + etherhdr_size - 6, -+ (char *) nb->data + etherhdr_size - 2, 2); -+ } - - eth = (struct etherhdr *) nb->data; - type = grub_be_to_cpu16 (eth->type); -- err = grub_netbuff_pull (nb, sizeof (*eth)); -+ err = grub_netbuff_pull (nb, etherhdr_size); - if (err) - return err; - -@@ -121,13 +157,14 @@ grub_net_recv_ethernet_packet (struct grub_net_buff *nb, - { - /* ARP packet. */ - case GRUB_NET_ETHERTYPE_ARP: -- grub_net_arp_receive (nb, card); -+ grub_net_arp_receive (nb, card, &vlantag); - grub_netbuff_free (nb); - return GRUB_ERR_NONE; - /* IP packet. */ - case GRUB_NET_ETHERTYPE_IP: - case GRUB_NET_ETHERTYPE_IP6: -- return grub_net_recv_ip_packets (nb, card, &hwaddress, &src_hwaddress); -+ return grub_net_recv_ip_packets (nb, card, &hwaddress, &src_hwaddress, -+ &vlantag); - } - grub_netbuff_free (nb); - return GRUB_ERR_NONE; -diff --git a/grub-core/net/ip.c b/grub-core/net/ip.c -index aba4f89087b..7c95cc7464a 100644 ---- a/grub-core/net/ip.c -+++ b/grub-core/net/ip.c -@@ -228,12 +228,13 @@ handle_dgram (struct grub_net_buff *nb, - grub_net_ip_protocol_t proto, - const grub_net_network_level_address_t *source, - const grub_net_network_level_address_t *dest, -+ grub_uint16_t *vlantag, - grub_uint8_t ttl) - { - struct grub_net_network_level_interface *inf = NULL; - grub_err_t err; - int multicast = 0; -- -+ - /* DHCP needs special treatment since we don't know IP yet. */ - { - struct udphdr *udph; -@@ -293,6 +294,15 @@ handle_dgram (struct grub_net_buff *nb, - && grub_net_addr_cmp (&inf->address, dest) == 0 - && grub_net_hwaddr_cmp (&inf->hwaddress, hwaddress) == 0) - break; -+ -+ /* Verify vlantag id */ -+ if (inf->card == card && inf->vlantag != *vlantag) -+ { -+ grub_dprintf ("net", "invalid vlantag! %x != %x\n", -+ inf->vlantag, *vlantag); -+ break; -+ } -+ - /* Solicited node multicast. */ - if (inf->card == card - && inf->address.type == GRUB_NET_NETWORK_LEVEL_PROTOCOL_IPV6 -@@ -383,7 +393,8 @@ static grub_err_t - grub_net_recv_ip4_packets (struct grub_net_buff *nb, - struct grub_net_card *card, - const grub_net_link_level_address_t *hwaddress, -- const grub_net_link_level_address_t *src_hwaddress) -+ const grub_net_link_level_address_t *src_hwaddress, -+ grub_uint16_t *vlantag) - { - struct iphdr *iph = (struct iphdr *) nb->data; - grub_err_t err; -@@ -458,7 +469,7 @@ grub_net_recv_ip4_packets (struct grub_net_buff *nb, - dest.ipv4 = iph->dest; - - return handle_dgram (nb, card, src_hwaddress, hwaddress, iph->protocol, -- &source, &dest, iph->ttl); -+ &source, &dest, vlantag, iph->ttl); - } - - for (prev = &reassembles, rsm = *prev; rsm; prev = &rsm->next, rsm = *prev) -@@ -594,7 +605,7 @@ grub_net_recv_ip4_packets (struct grub_net_buff *nb, - dest.ipv4 = dst; - - return handle_dgram (ret, card, src_hwaddress, -- hwaddress, proto, &source, &dest, -+ hwaddress, proto, &source, &dest, vlantag, - ttl); - } - } -@@ -652,7 +663,8 @@ static grub_err_t - grub_net_recv_ip6_packets (struct grub_net_buff *nb, - struct grub_net_card *card, - const grub_net_link_level_address_t *hwaddress, -- const grub_net_link_level_address_t *src_hwaddress) -+ const grub_net_link_level_address_t *src_hwaddress, -+ grub_uint16_t *vlantag) - { - struct ip6hdr *iph = (struct ip6hdr *) nb->data; - grub_err_t err; -@@ -703,21 +715,24 @@ grub_net_recv_ip6_packets (struct grub_net_buff *nb, - grub_memcpy (dest.ipv6, &iph->dest, sizeof (dest.ipv6)); - - return handle_dgram (nb, card, src_hwaddress, hwaddress, iph->protocol, -- &source, &dest, iph->ttl); -+ &source, &dest, vlantag, iph->ttl); - } - - grub_err_t - grub_net_recv_ip_packets (struct grub_net_buff *nb, - struct grub_net_card *card, - const grub_net_link_level_address_t *hwaddress, -- const grub_net_link_level_address_t *src_hwaddress) -+ const grub_net_link_level_address_t *src_hwaddress, -+ grub_uint16_t *vlantag) - { - struct iphdr *iph = (struct iphdr *) nb->data; - - if ((iph->verhdrlen >> 4) == 4) -- return grub_net_recv_ip4_packets (nb, card, hwaddress, src_hwaddress); -+ return grub_net_recv_ip4_packets (nb, card, hwaddress, src_hwaddress, -+ vlantag); - if ((iph->verhdrlen >> 4) == 6) -- return grub_net_recv_ip6_packets (nb, card, hwaddress, src_hwaddress); -+ return grub_net_recv_ip6_packets (nb, card, hwaddress, src_hwaddress, -+ vlantag); - grub_dprintf ("net", "Bad IP version: %d\n", (iph->verhdrlen >> 4)); - grub_netbuff_free (nb); - return GRUB_ERR_NONE; -diff --git a/include/grub/net.h b/include/grub/net.h -index 2192fa18628..1096b24322e 100644 ---- a/include/grub/net.h -+++ b/include/grub/net.h -@@ -291,6 +291,7 @@ struct grub_net_network_level_interface - grub_net_interface_flags_t flags; - struct grub_net_bootp_packet *dhcp_ack; - grub_size_t dhcp_acklen; -+ grub_uint16_t vlantag; - void *data; - }; - -@@ -561,4 +562,6 @@ extern char *grub_net_default_server; - #define GRUB_NET_INTERVAL 400 - #define GRUB_NET_INTERVAL_ADDITION 20 - -+#define VLANTAG_IDENTIFIER 0x8100 -+ - #endif /* ! GRUB_NET_HEADER */ -diff --git a/include/grub/net/arp.h b/include/grub/net/arp.h -index bb1703622e1..8d9d081134f 100644 ---- a/include/grub/net/arp.h -+++ b/include/grub/net/arp.h -@@ -22,10 +22,11 @@ - #include - - extern grub_err_t grub_net_arp_receive (struct grub_net_buff *nb, -- struct grub_net_card *card); -+ struct grub_net_card *card, -+ grub_uint16_t *vlantag); - - grub_err_t - grub_net_arp_send_request (struct grub_net_network_level_interface *inf, -- const grub_net_network_level_address_t *proto_addr); -+ const grub_net_network_level_address_t *proto_addr); - - #endif -diff --git a/include/grub/net/ip.h b/include/grub/net/ip.h -index dcceaa56894..ab9d68f9825 100644 ---- a/include/grub/net/ip.h -+++ b/include/grub/net/ip.h -@@ -48,7 +48,8 @@ grub_err_t - grub_net_recv_ip_packets (struct grub_net_buff *nb, - struct grub_net_card *card, - const grub_net_link_level_address_t *hwaddress, -- const grub_net_link_level_address_t *src_hwaddress); -+ const grub_net_link_level_address_t *src_hwaddress, -+ grub_uint16_t *vlantag); - - grub_err_t - grub_net_send_ip_packet (struct grub_net_network_level_interface *inf, diff --git a/0076-DHCP-client-ID-and-UUID-options-added.patch b/0013-DHCP-client-ID-and-UUID-options-added.patch similarity index 98% rename from 0076-DHCP-client-ID-and-UUID-options-added.patch rename to 0013-DHCP-client-ID-and-UUID-options-added.patch index 95c29669..ddc17fe8 100644 --- a/0076-DHCP-client-ID-and-UUID-options-added.patch +++ b/0013-DHCP-client-ID-and-UUID-options-added.patch @@ -1,4 +1,4 @@ -From cefc164d655fb7709efbc37a317952ff3ec4aeb3 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 27 Nov 2012 17:18:53 -0200 Subject: [PATCH] DHCP client ID and UUID options added. diff --git a/0014-mkimage-Pass-layout-to-mkimage_generate_elfXX-rather.patch b/0014-mkimage-Pass-layout-to-mkimage_generate_elfXX-rather.patch deleted file mode 100644 index 5f1c0d89..00000000 --- a/0014-mkimage-Pass-layout-to-mkimage_generate_elfXX-rather.patch +++ /dev/null @@ -1,165 +0,0 @@ -From a35ac854308b0af7c86c2c7b199f6abdfa2110b0 Mon Sep 17 00:00:00 2001 -From: Vladimir Serbinenko -Date: Mon, 8 May 2017 17:32:15 +0200 -Subject: [PATCH] mkimage: Pass layout to mkimage_generate_elfXX rather than - some fields. - -This allows easier extension of this function without having too long of -arguments list. ---- - util/grub-mkimagexx.c | 35 ++++++++++++++++++----------------- - util/mkimage.c | 4 ++-- - include/grub/util/mkimage.h | 8 ++++---- - 3 files changed, 24 insertions(+), 23 deletions(-) - -diff --git a/util/grub-mkimagexx.c b/util/grub-mkimagexx.c -index e63f148e48c..3fab93e2088 100644 ---- a/util/grub-mkimagexx.c -+++ b/util/grub-mkimagexx.c -@@ -185,8 +185,8 @@ grub_arm_reloc_jump24 (grub_uint32_t *target, Elf32_Addr sym_addr) - void - SUFFIX (grub_mkimage_generate_elf) (const struct grub_install_image_target_desc *image_target, - int note, char **core_img, size_t *core_size, -- Elf_Addr target_addr, grub_size_t align, -- size_t kernel_size, size_t bss_size) -+ Elf_Addr target_addr, -+ struct grub_mkimage_layout *layout) - { - char *elf_img; - size_t program_size; -@@ -214,7 +214,7 @@ SUFFIX (grub_mkimage_generate_elf) (const struct grub_install_image_target_desc - footer_size += XEN_NOTE_SIZE; - } - header_size = ALIGN_UP (sizeof (*ehdr) + phnum * sizeof (*phdr) -- + shnum * sizeof (*shdr) + string_size, align); -+ + shnum * sizeof (*shdr) + string_size, layout->align); - - program_size = ALIGN_ADDR (*core_size); - -@@ -258,7 +258,8 @@ SUFFIX (grub_mkimage_generate_elf) (const struct grub_install_image_target_desc - ehdr->e_entry = grub_host_to_target32 (target_addr); - phdr->p_vaddr = grub_host_to_target32 (target_addr); - phdr->p_paddr = grub_host_to_target32 (target_addr); -- phdr->p_align = grub_host_to_target32 (align > image_target->link_align ? align : image_target->link_align); -+ phdr->p_align = grub_host_to_target32 (layout->align > image_target->link_align ? -+ layout->align : image_target->link_align); - if (image_target->id == IMAGE_LOONGSON_ELF) - ehdr->e_flags = grub_host_to_target32 (0x1000 | EF_MIPS_NOREORDER - | EF_MIPS_PIC | EF_MIPS_CPIC); -@@ -272,27 +273,27 @@ SUFFIX (grub_mkimage_generate_elf) (const struct grub_install_image_target_desc - else - { - grub_uint32_t target_addr_mods; -- phdr->p_filesz = grub_host_to_target32 (kernel_size); -- phdr->p_memsz = grub_host_to_target32 (kernel_size + bss_size); -+ phdr->p_filesz = grub_host_to_target32 (layout->kernel_size); -+ phdr->p_memsz = grub_host_to_target32 (layout->kernel_size + layout->bss_size); - - phdr++; - phdr->p_type = grub_host_to_target32 (PT_GNU_STACK); -- phdr->p_offset = grub_host_to_target32 (header_size + kernel_size); -+ phdr->p_offset = grub_host_to_target32 (header_size + layout->kernel_size); - phdr->p_paddr = phdr->p_vaddr = phdr->p_filesz = phdr->p_memsz = 0; - phdr->p_flags = grub_host_to_target32 (PF_R | PF_W | PF_X); - phdr->p_align = grub_host_to_target32 (image_target->link_align); - - phdr++; - phdr->p_type = grub_host_to_target32 (PT_LOAD); -- phdr->p_offset = grub_host_to_target32 (header_size + kernel_size); -+ phdr->p_offset = grub_host_to_target32 (header_size + layout->kernel_size); - phdr->p_flags = grub_host_to_target32 (PF_R | PF_W | PF_X); - phdr->p_filesz = phdr->p_memsz -- = grub_host_to_target32 (*core_size - kernel_size); -+ = grub_host_to_target32 (*core_size - layout->kernel_size); - - if (image_target->id == IMAGE_COREBOOT) - target_addr_mods = GRUB_KERNEL_I386_COREBOOT_MODULES_ADDR; - else -- target_addr_mods = ALIGN_UP (target_addr + kernel_size + bss_size -+ target_addr_mods = ALIGN_UP (target_addr + layout->kernel_size + layout->bss_size - + image_target->mod_gap, - image_target->mod_align); - phdr->p_vaddr = grub_host_to_target_addr (target_addr_mods); -@@ -434,7 +435,7 @@ SUFFIX (grub_mkimage_generate_elf) (const struct grub_install_image_target_desc - shdr->sh_size = grub_host_to_target32 (string_size); - shdr->sh_link = grub_host_to_target32 (0); - shdr->sh_info = grub_host_to_target32 (0); -- shdr->sh_addralign = grub_host_to_target32 (align); -+ shdr->sh_addralign = grub_host_to_target32 (layout->align); - shdr->sh_entsize = grub_host_to_target32 (0); - shdr++; - -@@ -445,10 +446,10 @@ SUFFIX (grub_mkimage_generate_elf) (const struct grub_install_image_target_desc - shdr->sh_type = grub_host_to_target32 (SHT_PROGBITS); - shdr->sh_addr = grub_host_to_target_addr (target_addr); - shdr->sh_offset = grub_host_to_target_addr (header_size); -- shdr->sh_size = grub_host_to_target32 (kernel_size); -+ shdr->sh_size = grub_host_to_target32 (layout->kernel_size); - shdr->sh_link = grub_host_to_target32 (0); - shdr->sh_info = grub_host_to_target32 (0); -- shdr->sh_addralign = grub_host_to_target32 (align); -+ shdr->sh_addralign = grub_host_to_target32 (layout->align); - shdr->sh_entsize = grub_host_to_target32 (0); - shdr++; - -@@ -456,9 +457,9 @@ SUFFIX (grub_mkimage_generate_elf) (const struct grub_install_image_target_desc - shdr->sh_name = grub_host_to_target32 (ptr - str_start); - ptr += sizeof ("mods"); - shdr->sh_type = grub_host_to_target32 (SHT_PROGBITS); -- shdr->sh_addr = grub_host_to_target_addr (target_addr + kernel_size); -- shdr->sh_offset = grub_host_to_target_addr (header_size + kernel_size); -- shdr->sh_size = grub_host_to_target32 (*core_size - kernel_size); -+ shdr->sh_addr = grub_host_to_target_addr (target_addr + layout->kernel_size); -+ shdr->sh_offset = grub_host_to_target_addr (header_size + layout->kernel_size); -+ shdr->sh_size = grub_host_to_target32 (*core_size - layout->kernel_size); - shdr->sh_link = grub_host_to_target32 (0); - shdr->sh_info = grub_host_to_target32 (0); - shdr->sh_addralign = grub_host_to_target32 (image_target->voidp_sizeof); -@@ -471,7 +472,7 @@ SUFFIX (grub_mkimage_generate_elf) (const struct grub_install_image_target_desc - shdr->sh_name = grub_host_to_target32 (ptr - str_start); - ptr += sizeof (".xen"); - shdr->sh_type = grub_host_to_target32 (SHT_PROGBITS); -- shdr->sh_addr = grub_host_to_target_addr (target_addr + kernel_size); -+ shdr->sh_addr = grub_host_to_target_addr (target_addr + layout->kernel_size); - shdr->sh_offset = grub_host_to_target_addr (program_size + header_size); - shdr->sh_size = grub_host_to_target32 (XEN_NOTE_SIZE); - shdr->sh_link = grub_host_to_target32 (0); -diff --git a/util/mkimage.c b/util/mkimage.c -index 9ad4cfe4223..528166c87ac 100644 ---- a/util/mkimage.c -+++ b/util/mkimage.c -@@ -1638,10 +1638,10 @@ grub_install_generate_image (const char *dir, const char *prefix, - target_addr = image_target->link_addr; - if (image_target->voidp_sizeof == 4) - grub_mkimage_generate_elf32 (image_target, note, &core_img, &core_size, -- target_addr, layout.align, layout.kernel_size, layout.bss_size); -+ target_addr, &layout); - else - grub_mkimage_generate_elf64 (image_target, note, &core_img, &core_size, -- target_addr, layout.align, layout.kernel_size, layout.bss_size); -+ target_addr, &layout); - } - break; - } -diff --git a/include/grub/util/mkimage.h b/include/grub/util/mkimage.h -index 1a18708a89c..b3a5ca132bc 100644 ---- a/include/grub/util/mkimage.h -+++ b/include/grub/util/mkimage.h -@@ -51,13 +51,13 @@ grub_mkimage_load_image64 (const char *kernel_path, - void - grub_mkimage_generate_elf32 (const struct grub_install_image_target_desc *image_target, - int note, char **core_img, size_t *core_size, -- Elf32_Addr target_addr, grub_size_t align, -- size_t kernel_size, size_t bss_size); -+ Elf32_Addr target_addr, -+ struct grub_mkimage_layout *layout); - void - grub_mkimage_generate_elf64 (const struct grub_install_image_target_desc *image_target, - int note, char **core_img, size_t *core_size, -- Elf64_Addr target_addr, grub_size_t align, -- size_t kernel_size, size_t bss_size); -+ Elf64_Addr target_addr, -+ struct grub_mkimage_layout *layout); - - struct grub_install_image_target_desc - { diff --git a/0077-trim-arp-packets-with-abnormal-size.patch b/0014-trim-arp-packets-with-abnormal-size.patch similarity index 94% rename from 0077-trim-arp-packets-with-abnormal-size.patch rename to 0014-trim-arp-packets-with-abnormal-size.patch index 07ad01d9..1a6990a0 100644 --- a/0077-trim-arp-packets-with-abnormal-size.patch +++ b/0014-trim-arp-packets-with-abnormal-size.patch @@ -1,4 +1,4 @@ -From 571a6cce3b0d4c8abf11efc320e2de6ff9188d60 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Wed, 5 Feb 2014 09:42:42 -0200 Subject: [PATCH] trim arp packets with abnormal size diff --git a/0078-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch b/0015-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch similarity index 95% rename from 0078-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch rename to 0015-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch index 14eeebf7..a079c40f 100644 --- a/0078-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch +++ b/0015-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch @@ -1,4 +1,4 @@ -From 6cd959a64f588e256f0ba17e31bf2720b9cdec88 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Prarit Bhargava Date: Wed, 12 Mar 2014 10:58:16 -0400 Subject: [PATCH] Fix bad test on GRUB_DISABLE_SUBMENU. diff --git a/0015-Refactor-arm-uboot-code-to-make-it-genereic.patch b/0015-Refactor-arm-uboot-code-to-make-it-genereic.patch deleted file mode 100644 index b9f55d56..00000000 --- a/0015-Refactor-arm-uboot-code-to-make-it-genereic.patch +++ /dev/null @@ -1,402 +0,0 @@ -From d08c9685149e7788001ac9a209baa1d84c3628e0 Mon Sep 17 00:00:00 2001 -From: Vladimir Serbinenko -Date: Mon, 8 May 2017 17:47:57 +0200 -Subject: [PATCH] Refactor arm-uboot code to make it genereic. - -arm-coreboot startup code can be very similar to arm-uboot but current code has -U-Boot specific references. So split U-Boot part from generic part. ---- - grub-core/Makefile.core.def | 4 +- - grub-core/kern/arm/uboot/init.c | 70 ++++++++++++++++++++++++++++++ - grub-core/kern/uboot/init.c | 16 ------- - grub-core/kern/uboot/uboot.c | 35 --------------- - include/grub/arm/startup.h | 16 +++++++ - grub-core/kern/arm/{uboot => }/startup.S | 66 ++++------------------------- - grub-core/kern/arm/uboot/uboot.S | 73 ++++++++++++++++++++++++++++++++ - 7 files changed, 171 insertions(+), 109 deletions(-) - create mode 100644 grub-core/kern/arm/uboot/init.c - create mode 100644 include/grub/arm/startup.h - rename grub-core/kern/arm/{uboot => }/startup.S (77%) - create mode 100644 grub-core/kern/arm/uboot/uboot.S - -diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 8dcd0e5a998..fb59a7b1d6a 100644 ---- a/grub-core/Makefile.core.def -+++ b/grub-core/Makefile.core.def -@@ -105,7 +105,7 @@ kernel = { - mips_startup = kern/mips/startup.S; - sparc64_ieee1275_startup = kern/sparc64/ieee1275/crt0.S; - powerpc_ieee1275_startup = kern/powerpc/ieee1275/startup.S; -- arm_uboot_startup = kern/arm/uboot/startup.S; -+ arm_uboot_startup = kern/arm/startup.S; - arm_efi_startup = kern/arm/efi/startup.S; - arm64_efi_startup = kern/arm64/efi/startup.S; - -@@ -149,6 +149,8 @@ kernel = { - uboot = kern/uboot/init.c; - uboot = kern/uboot/hw.c; - uboot = term/uboot/console.c; -+ arm_uboot = kern/arm/uboot/init.c; -+ arm_uboot = kern/arm/uboot/uboot.S; - - terminfoinkernel = term/terminfo.c; - terminfoinkernel = term/tparm.c; -diff --git a/grub-core/kern/arm/uboot/init.c b/grub-core/kern/arm/uboot/init.c -new file mode 100644 -index 00000000000..2a6aa3fdd3d ---- /dev/null -+++ b/grub-core/kern/arm/uboot/init.c -@@ -0,0 +1,70 @@ -+/* init.c - generic U-Boot initialization and finalization */ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2016 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#include -+#include -+#include -+ -+extern int (*grub_uboot_syscall_ptr) (int, int *, ...); -+ -+grub_uint32_t -+grub_uboot_get_machine_type (void) -+{ -+ return grub_arm_saved_registers.r[1]; -+} -+ -+grub_addr_t -+grub_uboot_get_boot_data (void) -+{ -+ return grub_arm_saved_registers.r[2]; -+} -+ -+int -+grub_uboot_api_init (void) -+{ -+ struct api_signature *start, *end; -+ struct api_signature *p; -+ grub_addr_t grub_uboot_search_hint = grub_arm_saved_registers.sp; -+ if (grub_uboot_search_hint) -+ { -+ /* Extended search range to work around Trim Slice U-Boot issue */ -+ start = (struct api_signature *) ((grub_uboot_search_hint & ~0x000fffff) -+ - 0x00500000); -+ end = -+ (struct api_signature *) ((grub_addr_t) start + UBOOT_API_SEARCH_LEN - -+ API_SIG_MAGLEN + 0x00500000); -+ } -+ else -+ { -+ start = 0; -+ end = (struct api_signature *) (256 * 1024 * 1024); -+ } -+ -+ /* Structure alignment is (at least) 8 bytes */ -+ for (p = start; p < end; p = (void *) ((grub_addr_t) p + 8)) -+ { -+ if (grub_memcmp (&(p->magic), API_SIG_MAGIC, API_SIG_MAGLEN) == 0) -+ { -+ grub_uboot_syscall_ptr = p->syscall; -+ return p->version; -+ } -+ } -+ -+ return 0; -+} -diff --git a/grub-core/kern/uboot/init.c b/grub-core/kern/uboot/init.c -index 5dcc106ed9b..3e338645c57 100644 ---- a/grub-core/kern/uboot/init.c -+++ b/grub-core/kern/uboot/init.c -@@ -36,30 +36,14 @@ - extern char __bss_start[]; - extern char _end[]; - extern grub_size_t grub_total_module_size; --extern int (*grub_uboot_syscall_ptr) (int, int *, ...); - static unsigned long timer_start; - --extern grub_uint32_t grub_uboot_machine_type; --extern grub_addr_t grub_uboot_boot_data; -- - void - grub_exit (void) - { - grub_uboot_return (0); - } - --grub_uint32_t --grub_uboot_get_machine_type (void) --{ -- return grub_uboot_machine_type; --} -- --grub_addr_t --grub_uboot_get_boot_data (void) --{ -- return grub_uboot_boot_data; --} -- - static grub_uint64_t - uboot_timer_ms (void) - { -diff --git a/grub-core/kern/uboot/uboot.c b/grub-core/kern/uboot/uboot.c -index 6800a4beb1c..cf0168e62dd 100644 ---- a/grub-core/kern/uboot/uboot.c -+++ b/grub-core/kern/uboot/uboot.c -@@ -39,48 +39,13 @@ - * returns: 0 if the call not found, 1 if serviced - */ - --extern int (*grub_uboot_syscall_ptr) (int, int *, ...); - extern int grub_uboot_syscall (int, int *, ...); --extern grub_addr_t grub_uboot_search_hint; - - static struct sys_info uboot_sys_info; - static struct mem_region uboot_mem_info[5]; - static struct device_info * devices; - static int num_devices; - --int --grub_uboot_api_init (void) --{ -- struct api_signature *start, *end; -- struct api_signature *p; -- -- if (grub_uboot_search_hint) -- { -- /* Extended search range to work around Trim Slice U-Boot issue */ -- start = (struct api_signature *) ((grub_uboot_search_hint & ~0x000fffff) -- - 0x00500000); -- end = -- (struct api_signature *) ((grub_addr_t) start + UBOOT_API_SEARCH_LEN - -- API_SIG_MAGLEN + 0x00500000); -- } -- else -- { -- start = 0; -- end = (struct api_signature *) (256 * 1024 * 1024); -- } -- -- /* Structure alignment is (at least) 8 bytes */ -- for (p = start; p < end; p = (void *) ((grub_addr_t) p + 8)) -- { -- if (grub_memcmp (&(p->magic), API_SIG_MAGIC, API_SIG_MAGLEN) == 0) -- { -- grub_uboot_syscall_ptr = p->syscall; -- return p->version; -- } -- } -- -- return 0; --} - - /* - * All functions below are wrappers around the grub_uboot_syscall() function -diff --git a/include/grub/arm/startup.h b/include/grub/arm/startup.h -new file mode 100644 -index 00000000000..9afb6c57c0b ---- /dev/null -+++ b/include/grub/arm/startup.h -@@ -0,0 +1,16 @@ -+#ifndef GRUB_STARTUP_CPU_HEADER -+#define GRUB_STARTUP_CPU_HEADER -+ -+struct grub_arm_startup_registers -+{ -+ /* registers 0-11 */ -+ /* for U-boot r[1] is machine type */ -+ /* for U-boot r[2] is boot data */ -+ grub_uint32_t r[12]; -+ grub_uint32_t sp; -+ grub_uint32_t lr; -+}; -+ -+extern struct grub_arm_startup_registers grub_arm_saved_registers; -+ -+#endif -diff --git a/grub-core/kern/arm/uboot/startup.S b/grub-core/kern/arm/startup.S -similarity index 77% -rename from grub-core/kern/arm/uboot/startup.S -rename to grub-core/kern/arm/startup.S -index 5efaae16e83..640837cba51 100644 ---- a/grub-core/kern/arm/uboot/startup.S -+++ b/grub-core/kern/arm/startup.S -@@ -86,7 +86,7 @@ FUNCTION(codestart) - @ Stack pointer used as start address for signature probing - mov r12, sp - adr sp, entry_state -- push {r1-r12,lr} @ store U-Boot context (sp in r12) -+ push {r0-r12,lr} @ store U-Boot context (sp in r12) - - adr r1, _start - ldr r0, bss_start_ptr @ src -@@ -153,69 +153,21 @@ reloc_done: - - b EXT_C(grub_main) - -- /* -- * uboot_syscall(): -- * This function is effectively a veneer, so it cannot -- * modify the stack or corrupt any registers other than -- * r12 (ip). Furthermore it needs to restore r8 for -- * U-Boot (Global Data Pointer) and preserve it for Grub. -- */ --FUNCTION(grub_uboot_syscall) -- str r8, transition_space -- str lr, transition_space + 4 -- str r9, transition_space + 8 -- -- ldr r8, gd_backup -- ldr r9, gd_backup + 4 -- -- bl do_syscall -- -- ldr r8, transition_space -- ldr lr, transition_space + 4 -- ldr r9, transition_space + 8 -- -- bx lr --do_syscall: -- -- ldr ip, grub_uboot_syscall_ptr -- bx ip -- --FUNCTION(grub_uboot_return) -- adr sp, entry_state_end -- pop {r4-r12, lr} -- mov sp, r12 -- bx lr -- -- - .align 3 --@ U-boot context stack space --entry_state_end: --VARIABLE(grub_uboot_machine_type) -+@ U-boot/coreboot context stack space -+VARIABLE(grub_arm_saved_registers) -+ .long 0 @ r0 - .long 0 @ r1 --VARIABLE(grub_uboot_boot_data) - .long 0 @ r2 - .long 0 @ r3 - .long 0 @ r4 - .long 0 @ r5 - .long 0 @ r6 - .long 0 @ r7 --gd_backup: -- .long 0 @ r8 - U-Boot global data pointer up to 2013-09-21 -- .long 0 @ r9 - U-Boot global data pointer 2013-09-21 onwards -- .long 0 @ r10 -- .long 0 @ r11 --VARIABLE(grub_uboot_search_hint)@ U-Boot stack pointer - -- .long 0 @ also API signature address hint. -- .long 0 @ lr --entry_state: @ backup for U-Boot context -- --@ GRUB context stack space --transition_space: - .long 0 @ r8 -- .long 0 @ lr - .long 0 @ r9 -- --VARIABLE(grub_uboot_syscall_ptr) -- .long 0 @ -- -- END -+ .long 0 @ r10 -+ .long 0 @ r11 -+ .long 0 @ sp -+ .long 0 @ lr -+entry_state: -diff --git a/grub-core/kern/arm/uboot/uboot.S b/grub-core/kern/arm/uboot/uboot.S -new file mode 100644 -index 00000000000..d128775f19e ---- /dev/null -+++ b/grub-core/kern/arm/uboot/uboot.S -@@ -0,0 +1,73 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2013 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#include -+#include -+#include -+ -+ /* -+ * uboot_syscall(): -+ * This function is effectively a veneer, so it cannot -+ * modify the stack or corrupt any registers other than -+ * r12 (ip). Furthermore it needs to restore r8 for -+ * U-Boot (Global Data Pointer) and preserve it for Grub. -+ */ -+FUNCTION(grub_uboot_syscall) -+ str r8, transition_space -+ str lr, transition_space + 4 -+ str r9, transition_space + 8 -+ -+ ldr ip, saved_registers_ptr -+ ldr r8, [ip, #4 * 8] -+ ldr r9, [ip, #4 * 9] -+ -+ bl do_syscall -+ -+ ldr r8, transition_space -+ ldr lr, transition_space + 4 -+ ldr r9, transition_space + 8 -+ -+ bx lr -+do_syscall: -+ -+ ldr ip, grub_uboot_syscall_ptr -+ bx ip -+ -+FUNCTION(grub_uboot_return) -+ ldr ip, saved_registers_ptr -+ ldr sp, [ip, #4 * 4] -+ pop {r4-r12, lr} -+ mov sp, r12 -+ bx lr -+ -+ -+ .align 3 -+ -+@ GRUB context stack space -+transition_space: -+ .long 0 @ r8 -+ .long 0 @ lr -+ .long 0 @ r9 -+ -+saved_registers_ptr: -+ .long EXT_C(grub_arm_saved_registers) -+ -+VARIABLE(grub_uboot_syscall_ptr) -+ .long 0 @ -+ -+ END diff --git a/0079-Add-support-for-UEFI-operating-systems-returned-by-o.patch b/0016-Add-support-for-UEFI-operating-systems-returned-by-o.patch similarity index 95% rename from 0079-Add-support-for-UEFI-operating-systems-returned-by-o.patch rename to 0016-Add-support-for-UEFI-operating-systems-returned-by-o.patch index 23ef5f9c..6ddda34a 100644 --- a/0079-Add-support-for-UEFI-operating-systems-returned-by-o.patch +++ b/0016-Add-support-for-UEFI-operating-systems-returned-by-o.patch @@ -1,4 +1,4 @@ -From 0254265409f80b369c35fb474c7371feb6f9ae1d Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Wed, 12 Jun 2013 11:51:49 -0400 Subject: [PATCH] Add support for UEFI operating systems returned by os-prober diff --git a/0016-coreboot-Split-parts-that-are-platform-independent.patch b/0016-coreboot-Split-parts-that-are-platform-independent.patch deleted file mode 100644 index 782af52f..00000000 --- a/0016-coreboot-Split-parts-that-are-platform-independent.patch +++ /dev/null @@ -1,341 +0,0 @@ -From 461bfab7b7e47fd0a76bf6076a438af1b7e2184a Mon Sep 17 00:00:00 2001 -From: Vladimir Serbinenko -Date: Mon, 8 May 2017 19:06:22 +0200 -Subject: [PATCH] coreboot: Split parts that are platform-independent. - -We currently assume that coreboot is always i386, it's no longer the case, -so split i386-coreboot parts from generic coreboot code. ---- - grub-core/Makefile.core.def | 6 +- - grub-core/commands/i386/coreboot/cb_timestamps.c | 2 +- - grub-core/commands/i386/coreboot/cbls.c | 2 +- - grub-core/kern/coreboot/cbtable.c | 70 ++++++++++++++++++++++++ - grub-core/kern/{i386 => }/coreboot/mmap.c | 6 +- - grub-core/kern/i386/coreboot/cbtable.c | 53 +++--------------- - grub-core/term/i386/coreboot/cbmemc.c | 2 +- - grub-core/video/{i386 => }/coreboot/cbfb.c | 2 +- - include/grub/{i386 => }/coreboot/lbio.h | 9 +++ - grub-core/Makefile.am | 2 +- - 10 files changed, 99 insertions(+), 55 deletions(-) - create mode 100644 grub-core/kern/coreboot/cbtable.c - rename grub-core/kern/{i386 => }/coreboot/mmap.c (97%) - rename grub-core/video/{i386 => }/coreboot/cbfb.c (99%) - rename include/grub/{i386 => }/coreboot/lbio.h (93%) - -diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index fb59a7b1d6a..45ed0fa6b1c 100644 ---- a/grub-core/Makefile.core.def -+++ b/grub-core/Makefile.core.def -@@ -166,7 +166,7 @@ kernel = { - i386_multiboot = kern/i386/coreboot/init.c; - i386_qemu = kern/i386/qemu/init.c; - i386_coreboot_multiboot_qemu = term/i386/pc/vga_text.c; -- i386_coreboot = video/i386/coreboot/cbfb.c; -+ i386_coreboot = video/coreboot/cbfb.c; - - efi = disk/efi/efidisk.c; - efi = kern/efi/efi.c; -@@ -227,8 +227,9 @@ kernel = { - i386_qemu = kern/vga_init.c; - i386_qemu = kern/i386/qemu/mmap.c; - -- i386_coreboot = kern/i386/coreboot/mmap.c; -+ i386_coreboot = kern/coreboot/mmap.c; - i386_coreboot = kern/i386/coreboot/cbtable.c; -+ i386_coreboot = kern/coreboot/cbtable.c; - - i386_multiboot = kern/i386/multiboot_mmap.c; - -@@ -643,6 +644,7 @@ module = { - module = { - name = cbtable; - common = kern/i386/coreboot/cbtable.c; -+ common = kern/coreboot/cbtable.c; - enable = i386_pc; - enable = i386_efi; - enable = i386_qemu; -diff --git a/grub-core/commands/i386/coreboot/cb_timestamps.c b/grub-core/commands/i386/coreboot/cb_timestamps.c -index e72f38d6e05..e97ea6bed98 100644 ---- a/grub-core/commands/i386/coreboot/cb_timestamps.c -+++ b/grub-core/commands/i386/coreboot/cb_timestamps.c -@@ -20,7 +20,7 @@ - #include - #include - #include --#include -+#include - #include - - GRUB_MOD_LICENSE ("GPLv3+"); -diff --git a/grub-core/commands/i386/coreboot/cbls.c b/grub-core/commands/i386/coreboot/cbls.c -index e0a10596fe2..102291f424a 100644 ---- a/grub-core/commands/i386/coreboot/cbls.c -+++ b/grub-core/commands/i386/coreboot/cbls.c -@@ -20,7 +20,7 @@ - #include - #include - #include --#include -+#include - #include - - GRUB_MOD_LICENSE ("GPLv3+"); -diff --git a/grub-core/kern/coreboot/cbtable.c b/grub-core/kern/coreboot/cbtable.c -new file mode 100644 -index 00000000000..996d3f40738 ---- /dev/null -+++ b/grub-core/kern/coreboot/cbtable.c -@@ -0,0 +1,70 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2007,2008,2013 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+ -+/* Helper for grub_linuxbios_table_iterate. */ -+int -+grub_linuxbios_check_signature (grub_linuxbios_table_header_t tbl_header) -+{ -+ if (! grub_memcmp (tbl_header->signature, "LBIO", 4)) -+ return 1; -+ -+ return 0; -+} -+ -+grub_err_t -+grub_linuxbios_table_iterate (int (*hook) (grub_linuxbios_table_item_t, -+ void *), -+ void *hook_data) -+{ -+ grub_linuxbios_table_header_t table_header = grub_linuxbios_get_tables (); -+ grub_linuxbios_table_item_t table_item; -+ -+ if (!table_header) -+ return 0; -+ -+signature_found: -+ -+ table_item = -+ (grub_linuxbios_table_item_t) ((char *) table_header + -+ table_header->header_size); -+ for (; table_item < (grub_linuxbios_table_item_t) ((char *) table_header -+ + table_header->header_size -+ + table_header->table_size); -+ table_item = (grub_linuxbios_table_item_t) ((char *) table_item + table_item->size)) -+ { -+ if (table_item->tag == GRUB_LINUXBIOS_MEMBER_LINK -+ && grub_linuxbios_check_signature ((grub_linuxbios_table_header_t) (grub_addr_t) -+ *(grub_uint64_t *) (table_item + 1))) -+ { -+ table_header = (grub_linuxbios_table_header_t) (grub_addr_t) -+ *(grub_uint64_t *) (table_item + 1); -+ goto signature_found; -+ } -+ if (hook (table_item, hook_data)) -+ return 1; -+ } -+ -+ return 0; -+} -diff --git a/grub-core/kern/i386/coreboot/mmap.c b/grub-core/kern/coreboot/mmap.c -similarity index 97% -rename from grub-core/kern/i386/coreboot/mmap.c -rename to grub-core/kern/coreboot/mmap.c -index 4d29f6b7d90..caf8f7cef1b 100644 ---- a/grub-core/kern/i386/coreboot/mmap.c -+++ b/grub-core/kern/coreboot/mmap.c -@@ -16,8 +16,8 @@ - * along with GRUB. If not, see . - */ - --#include --#include -+#include -+#include - #include - #include - #include -@@ -49,6 +49,7 @@ iterate_linuxbios_table (grub_linuxbios_table_item_t table_item, void *data) - { - grub_uint64_t start = mem_region->addr; - grub_uint64_t end = mem_region->addr + mem_region->size; -+#ifdef __i386__ - /* Mark region 0xa0000 - 0x100000 as reserved. */ - if (start < 0x100000 && end >= 0xa0000 - && mem_region->type == GRUB_MACHINE_MEMORY_AVAILABLE) -@@ -75,6 +76,7 @@ iterate_linuxbios_table (grub_linuxbios_table_item_t table_item, void *data) - if (end <= start) - continue; - } -+#endif - if (ctx->hook (start, end - start, - /* Multiboot mmaps match with the coreboot mmap - definition. Therefore, we can just pass type -diff --git a/grub-core/kern/i386/coreboot/cbtable.c b/grub-core/kern/i386/coreboot/cbtable.c -index 1669bc0ca23..34a2b59be1f 100644 ---- a/grub-core/kern/i386/coreboot/cbtable.c -+++ b/grub-core/kern/i386/coreboot/cbtable.c -@@ -17,7 +17,7 @@ - */ - - #include --#include -+#include - #include - #include - #include -@@ -25,59 +25,20 @@ - - GRUB_MOD_LICENSE ("GPLv3+"); - --/* Helper for grub_linuxbios_table_iterate. */ --static int --check_signature (grub_linuxbios_table_header_t tbl_header) --{ -- if (! grub_memcmp (tbl_header->signature, "LBIO", 4)) -- return 1; -- -- return 0; --} -- --grub_err_t --grub_linuxbios_table_iterate (int (*hook) (grub_linuxbios_table_item_t, -- void *), -- void *hook_data) -+grub_linuxbios_table_header_t -+grub_linuxbios_get_tables (void) - { - grub_linuxbios_table_header_t table_header; -- grub_linuxbios_table_item_t table_item; -- - /* Assuming table_header is aligned to its size (8 bytes). */ -- - for (table_header = (grub_linuxbios_table_header_t) 0x500; - table_header < (grub_linuxbios_table_header_t) 0x1000; table_header++) -- if (check_signature (table_header)) -- goto signature_found; -+ if (grub_linuxbios_check_signature (table_header)) -+ return table_header; - - for (table_header = (grub_linuxbios_table_header_t) 0xf0000; - table_header < (grub_linuxbios_table_header_t) 0x100000; table_header++) -- if (check_signature (table_header)) -- goto signature_found; -- -- return 0; -- --signature_found: -- -- table_item = -- (grub_linuxbios_table_item_t) ((char *) table_header + -- table_header->header_size); -- for (; table_item < (grub_linuxbios_table_item_t) ((char *) table_header -- + table_header->header_size -- + table_header->table_size); -- table_item = (grub_linuxbios_table_item_t) ((char *) table_item + table_item->size)) -- { -- if (table_item->tag == GRUB_LINUXBIOS_MEMBER_LINK -- && check_signature ((grub_linuxbios_table_header_t) (grub_addr_t) -- *(grub_uint64_t *) (table_item + 1))) -- { -- table_header = (grub_linuxbios_table_header_t) (grub_addr_t) -- *(grub_uint64_t *) (table_item + 1); -- goto signature_found; -- } -- if (hook (table_item, hook_data)) -- return 1; -- } -+ if (grub_linuxbios_check_signature (table_header)) -+ return table_header; - - return 0; - } -diff --git a/grub-core/term/i386/coreboot/cbmemc.c b/grub-core/term/i386/coreboot/cbmemc.c -index 25e64a05c03..129248c7f47 100644 ---- a/grub-core/term/i386/coreboot/cbmemc.c -+++ b/grub-core/term/i386/coreboot/cbmemc.c -@@ -23,7 +23,7 @@ - #include - #include - #include --#include -+#include - #include - #include - -diff --git a/grub-core/video/i386/coreboot/cbfb.c b/grub-core/video/coreboot/cbfb.c -similarity index 99% -rename from grub-core/video/i386/coreboot/cbfb.c -rename to grub-core/video/coreboot/cbfb.c -index dede0c37ea3..9af81fa5b01 100644 ---- a/grub-core/video/i386/coreboot/cbfb.c -+++ b/grub-core/video/coreboot/cbfb.c -@@ -25,7 +25,7 @@ - #include - #include - #include --#include -+#include - #include - - struct grub_linuxbios_table_framebuffer *grub_video_coreboot_fbtable; -diff --git a/include/grub/i386/coreboot/lbio.h b/include/grub/coreboot/lbio.h -similarity index 93% -rename from include/grub/i386/coreboot/lbio.h -rename to include/grub/coreboot/lbio.h -index 1c3fa6f1953..5076d36c71b 100644 ---- a/include/grub/i386/coreboot/lbio.h -+++ b/include/grub/coreboot/lbio.h -@@ -20,6 +20,9 @@ - #ifndef _GRUB_MACHINE_LBIO_HEADER - #define _GRUB_MACHINE_LBIO_HEADER 1 - -+#include -+#include -+ - struct grub_linuxbios_table_header - { - grub_uint8_t signature[4]; -@@ -102,4 +105,10 @@ EXPORT_FUNC(grub_linuxbios_table_iterate) (int (*hook) (grub_linuxbios_table_ite - void *), - void *hook_data); - -+grub_linuxbios_table_header_t -+grub_linuxbios_get_tables (void); -+ -+int -+grub_linuxbios_check_signature (grub_linuxbios_table_header_t tbl_header); -+ - #endif -diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am -index 809a8aa26bf..781d0ffbf75 100644 ---- a/grub-core/Makefile.am -+++ b/grub-core/Makefile.am -@@ -112,7 +112,7 @@ endif - - if COND_i386_coreboot - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/tsc.h --KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i386/coreboot/lbio.h -+KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/coreboot/lbio.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/video.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/video_fb.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/gfxterm.h diff --git a/0080-Migrate-PPC-from-Yaboot-to-Grub2.patch b/0017-Migrate-PPC-from-Yaboot-to-Grub2.patch similarity index 98% rename from 0080-Migrate-PPC-from-Yaboot-to-Grub2.patch rename to 0017-Migrate-PPC-from-Yaboot-to-Grub2.patch index d811c2c4..6a026a08 100644 --- a/0080-Migrate-PPC-from-Yaboot-to-Grub2.patch +++ b/0017-Migrate-PPC-from-Yaboot-to-Grub2.patch @@ -1,4 +1,4 @@ -From f2b4c105e3657cc32ed0f7aefa713f161cdf64f1 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Mark Hamzy Date: Wed, 28 Mar 2012 14:46:41 -0500 Subject: [PATCH] Migrate PPC from Yaboot to Grub2 diff --git a/0017-Rename-uboot-halt.c-to-dummy-halt.c.patch b/0017-Rename-uboot-halt.c-to-dummy-halt.c.patch deleted file mode 100644 index 2c531206..00000000 --- a/0017-Rename-uboot-halt.c-to-dummy-halt.c.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 1daa716c7017f1858de117a20a31da66815435c5 Mon Sep 17 00:00:00 2001 -From: Vladimir Serbinenko -Date: Mon, 8 May 2017 19:31:55 +0200 -Subject: [PATCH] Rename uboot/halt.c to dummy/halt.c. - -It's not U-Boot specific and it's a stub. ---- - grub-core/Makefile.core.def | 2 +- - grub-core/lib/{uboot => dummy}/halt.c | 0 - 2 files changed, 1 insertion(+), 1 deletion(-) - rename grub-core/lib/{uboot => dummy}/halt.c (100%) - -diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 45ed0fa6b1c..2a38bd4bc8a 100644 ---- a/grub-core/Makefile.core.def -+++ b/grub-core/Makefile.core.def -@@ -841,7 +841,7 @@ module = { - efi = lib/efi/halt.c; - ieee1275 = lib/ieee1275/halt.c; - emu = lib/emu/halt.c; -- uboot = lib/uboot/halt.c; -+ uboot = lib/dummy/halt.c; - }; - - module = { -diff --git a/grub-core/lib/uboot/halt.c b/grub-core/lib/dummy/halt.c -similarity index 100% -rename from grub-core/lib/uboot/halt.c -rename to grub-core/lib/dummy/halt.c diff --git a/0081-Add-fw_path-variable-revised.patch b/0018-Add-fw_path-variable-revised.patch similarity index 97% rename from 0081-Add-fw_path-variable-revised.patch rename to 0018-Add-fw_path-variable-revised.patch index c130f500..3126d2e7 100644 --- a/0081-Add-fw_path-variable-revised.patch +++ b/0018-Add-fw_path-variable-revised.patch @@ -1,4 +1,4 @@ -From 7f021a05a5ed7c97432abbc1762f40e36a4915e3 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Wed, 19 Sep 2012 21:22:55 -0300 Subject: [PATCH] Add fw_path variable (revised) diff --git a/0018-Rename-uboot-datetime-to-dummy-datetime.patch b/0018-Rename-uboot-datetime-to-dummy-datetime.patch deleted file mode 100644 index 61b00b58..00000000 --- a/0018-Rename-uboot-datetime-to-dummy-datetime.patch +++ /dev/null @@ -1,55 +0,0 @@ -From 9808c3ef956c6472a96790b60cf74f4eaa742010 Mon Sep 17 00:00:00 2001 -From: Vladimir Serbinenko -Date: Mon, 8 May 2017 19:37:29 +0200 -Subject: [PATCH] Rename uboot/datetime to dummy/datetime. - -It's just a stub and is not UBoot-specific. ---- - grub-core/Makefile.core.def | 2 +- - grub-core/lib/{uboot => dummy}/datetime.c | 5 ++--- - 2 files changed, 3 insertions(+), 4 deletions(-) - rename grub-core/lib/{uboot => dummy}/datetime.c (91%) - -diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 2a38bd4bc8a..6540dc951d4 100644 ---- a/grub-core/Makefile.core.def -+++ b/grub-core/Makefile.core.def -@@ -1552,7 +1552,7 @@ module = { - name = datetime; - cmos = lib/cmos_datetime.c; - efi = lib/efi/datetime.c; -- uboot = lib/uboot/datetime.c; -+ uboot = lib/dummy/datetime.c; - sparc64_ieee1275 = lib/ieee1275/datetime.c; - powerpc_ieee1275 = lib/ieee1275/datetime.c; - sparc64_ieee1275 = lib/ieee1275/cmos.c; -diff --git a/grub-core/lib/uboot/datetime.c b/grub-core/lib/dummy/datetime.c -similarity index 91% -rename from grub-core/lib/uboot/datetime.c -rename to grub-core/lib/dummy/datetime.c -index 4be716928a5..cf693fc6b62 100644 ---- a/grub-core/lib/uboot/datetime.c -+++ b/grub-core/lib/dummy/datetime.c -@@ -18,7 +18,6 @@ - - #include - #include --#include - #include - #include - -@@ -30,12 +29,12 @@ grub_err_t - grub_get_datetime (struct grub_datetime *datetime __attribute__ ((unused))) - { - return grub_error (GRUB_ERR_INVALID_COMMAND, -- "can\'t get datetime using U-Boot"); -+ "can\'t get datetime on this machine"); - } - - grub_err_t - grub_set_datetime (struct grub_datetime * datetime __attribute__ ((unused))) - { - return grub_error (GRUB_ERR_INVALID_COMMAND, -- "can\'t set datetime using U-Boot"); -+ "can\'t set datetime on this machine"); - } diff --git a/0082-Add-support-for-linuxefi.patch b/0019-Add-support-for-linuxefi.patch similarity index 99% rename from 0082-Add-support-for-linuxefi.patch rename to 0019-Add-support-for-linuxefi.patch index 6a55b6ef..49394b25 100644 --- a/0082-Add-support-for-linuxefi.patch +++ b/0019-Add-support-for-linuxefi.patch @@ -1,4 +1,4 @@ -From 778385965798ac2711f0d07d5cf521a6e999ca8b Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 10 Jul 2012 11:58:52 -0400 Subject: [PATCH] Add support for linuxefi diff --git a/0019-arm-coreboot-Start-new-port.patch b/0019-arm-coreboot-Start-new-port.patch deleted file mode 100644 index a3929135..00000000 --- a/0019-arm-coreboot-Start-new-port.patch +++ /dev/null @@ -1,824 +0,0 @@ -From 24e37a885269bdec9b27babf1da0bba3692d55c0 Mon Sep 17 00:00:00 2001 -From: Vladimir Serbinenko -Date: Mon, 8 May 2017 20:53:28 +0200 -Subject: [PATCH] arm-coreboot: Start new port. - ---- - configure.ac | 2 + - grub-core/Makefile.core.def | 18 ++++- - grub-core/kern/arm/coreboot/cbtable.c | 40 +++++++++++ - grub-core/kern/arm/coreboot/init.c | 127 +++++++++++++++++++++++++++++++++ - grub-core/kern/arm/coreboot/timer.c | 65 +++++++++++++++++ - grub-core/kern/coreboot/cbtable.c | 2 + - grub-core/lib/dummy/reboot.c | 32 +++++++++ - grub-core/loader/arm/linux.c | 3 + - util/grub-mkimagexx.c | 19 +++-- - util/mkimage.c | 41 ++++++++++- - include/grub/arm/coreboot/console.h | 29 ++++++++ - include/grub/arm/coreboot/kernel.h | 44 ++++++++++++ - include/grub/offsets.h | 6 ++ - grub-core/kern/arm/coreboot/coreboot.S | 44 ++++++++++++ - grub-core/kern/arm/startup.S | 4 ++ - gentpl.py | 8 ++- - grub-core/Makefile.am | 10 +++ - 17 files changed, 482 insertions(+), 12 deletions(-) - create mode 100644 grub-core/kern/arm/coreboot/cbtable.c - create mode 100644 grub-core/kern/arm/coreboot/init.c - create mode 100644 grub-core/kern/arm/coreboot/timer.c - create mode 100644 grub-core/lib/dummy/reboot.c - create mode 100644 include/grub/arm/coreboot/console.h - create mode 100644 include/grub/arm/coreboot/kernel.h - create mode 100644 grub-core/kern/arm/coreboot/coreboot.S - -diff --git a/configure.ac b/configure.ac -index ee2c86537e9..571f7a0b5aa 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -167,6 +167,7 @@ case "$target_cpu"-"$platform" in - mipsel-fuloong) platform=loongson ;; - mipsel-loongson) ;; - arm-uboot) ;; -+ arm-coreboot) ;; - arm-efi) ;; - arm64-efi) ;; - *-emu) ;; -@@ -1918,6 +1919,7 @@ AM_CONDITIONAL([COND_mipsel], [test x$target_cpu = xmipsel]) - AM_CONDITIONAL([COND_mipseb], [test x$target_cpu = xmips]) - AM_CONDITIONAL([COND_arm], [test x$target_cpu = xarm ]) - AM_CONDITIONAL([COND_arm_uboot], [test x$target_cpu = xarm -a x$platform = xuboot]) -+AM_CONDITIONAL([COND_arm_coreboot], [test x$target_cpu = xarm -a x$platform = xcoreboot]) - AM_CONDITIONAL([COND_arm_efi], [test x$target_cpu = xarm -a x$platform = xefi]) - AM_CONDITIONAL([COND_arm64], [test x$target_cpu = xarm64 ]) - AM_CONDITIONAL([COND_arm64_efi], [test x$target_cpu = xarm64 -a x$platform = xefi]) -diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 6540dc951d4..411dca46bf2 100644 ---- a/grub-core/Makefile.core.def -+++ b/grub-core/Makefile.core.def -@@ -92,6 +92,8 @@ kernel = { - emu_cppflags = '$(CPPFLAGS_GNULIB)'; - arm_uboot_ldflags = '-Wl,-r,-d'; - arm_uboot_stripflags = '--strip-unneeded -K start -R .note -R .comment -R .note.gnu.gold-version'; -+ arm_coreboot_ldflags = '-Wl,-r,-d'; -+ arm_coreboot_stripflags = '--strip-unneeded -K start -R .note -R .comment -R .note.gnu.gold-version'; - - i386_pc_startup = kern/i386/pc/startup.S; - i386_efi_startup = kern/i386/efi/startup.S; -@@ -106,6 +108,7 @@ kernel = { - sparc64_ieee1275_startup = kern/sparc64/ieee1275/crt0.S; - powerpc_ieee1275_startup = kern/powerpc/ieee1275/startup.S; - arm_uboot_startup = kern/arm/startup.S; -+ arm_coreboot_startup = kern/arm/startup.S; - arm_efi_startup = kern/arm/efi/startup.S; - arm64_efi_startup = kern/arm64/efi/startup.S; - -@@ -152,6 +155,10 @@ kernel = { - arm_uboot = kern/arm/uboot/init.c; - arm_uboot = kern/arm/uboot/uboot.S; - -+ arm_coreboot = kern/arm/coreboot/init.c; -+ arm_coreboot = kern/arm/coreboot/timer.c; -+ arm_coreboot = kern/arm/coreboot/coreboot.S; -+ - terminfoinkernel = term/terminfo.c; - terminfoinkernel = term/tparm.c; - terminfoinkernel = commands/extcmd.c; -@@ -166,7 +173,7 @@ kernel = { - i386_multiboot = kern/i386/coreboot/init.c; - i386_qemu = kern/i386/qemu/init.c; - i386_coreboot_multiboot_qemu = term/i386/pc/vga_text.c; -- i386_coreboot = video/coreboot/cbfb.c; -+ coreboot = video/coreboot/cbfb.c; - - efi = disk/efi/efidisk.c; - efi = kern/efi/efi.c; -@@ -227,9 +234,10 @@ kernel = { - i386_qemu = kern/vga_init.c; - i386_qemu = kern/i386/qemu/mmap.c; - -- i386_coreboot = kern/coreboot/mmap.c; -+ coreboot = kern/coreboot/mmap.c; - i386_coreboot = kern/i386/coreboot/cbtable.c; -- i386_coreboot = kern/coreboot/cbtable.c; -+ coreboot = kern/coreboot/cbtable.c; -+ arm_coreboot = kern/arm/coreboot/cbtable.c; - - i386_multiboot = kern/i386/multiboot_mmap.c; - -@@ -758,6 +766,7 @@ module = { - enable = arm_efi; - enable = arm64_efi; - enable = arm_uboot; -+ enable = arm_coreboot; - }; - - module = { -@@ -842,6 +851,7 @@ module = { - ieee1275 = lib/ieee1275/halt.c; - emu = lib/emu/halt.c; - uboot = lib/dummy/halt.c; -+ arm_coreboot = lib/dummy/halt.c; - }; - - module = { -@@ -859,6 +869,7 @@ module = { - mips_qemu_mips = lib/mips/qemu_mips/reboot.c; - xen = lib/xen/reboot.c; - uboot = lib/uboot/reboot.c; -+ arm_coreboot = lib/dummy/reboot.c; - common = commands/reboot.c; - }; - -@@ -1553,6 +1564,7 @@ module = { - cmos = lib/cmos_datetime.c; - efi = lib/efi/datetime.c; - uboot = lib/dummy/datetime.c; -+ arm_coreboot = lib/dummy/datetime.c; - sparc64_ieee1275 = lib/ieee1275/datetime.c; - powerpc_ieee1275 = lib/ieee1275/datetime.c; - sparc64_ieee1275 = lib/ieee1275/cmos.c; -diff --git a/grub-core/kern/arm/coreboot/cbtable.c b/grub-core/kern/arm/coreboot/cbtable.c -new file mode 100644 -index 00000000000..8a655bb5cc2 ---- /dev/null -+++ b/grub-core/kern/arm/coreboot/cbtable.c -@@ -0,0 +1,40 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2007,2008,2013 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+ -+GRUB_MOD_LICENSE ("GPLv3+"); -+ -+#pragma GCC diagnostic ignored "-Wcast-align" -+ -+grub_linuxbios_table_header_t -+grub_linuxbios_get_tables (void) -+{ -+ grub_linuxbios_table_header_t table_header -+ = (grub_linuxbios_table_header_t) grub_arm_saved_registers.r[0]; -+ -+ if (!grub_linuxbios_check_signature (table_header)) -+ return 0; -+ -+ return table_header; -+} -diff --git a/grub-core/kern/arm/coreboot/init.c b/grub-core/kern/arm/coreboot/init.c -new file mode 100644 -index 00000000000..51ecaceb005 ---- /dev/null -+++ b/grub-core/kern/arm/coreboot/init.c -@@ -0,0 +1,127 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2002,2003,2004,2005,2006,2007,2008,2009,2013 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+extern grub_uint8_t _start[]; -+extern grub_uint8_t _end[]; -+extern grub_uint8_t _edata[]; -+grub_addr_t start_of_ram = ~(grub_addr_t)0; -+ -+void __attribute__ ((noreturn)) -+grub_exit (void) -+{ -+ /* We can't use grub_fatal() in this function. This would create an infinite -+ loop, since grub_fatal() calls grub_abort() which in turn calls grub_exit(). */ -+ while (1) -+ grub_cpu_idle (); -+} -+ -+static grub_uint64_t modend; -+static int have_memory = 0; -+ -+/* Helper for grub_machine_init. */ -+static int -+heap_init (grub_uint64_t addr, grub_uint64_t size, grub_memory_type_t type, -+ void *data __attribute__ ((unused))) -+{ -+ grub_uint64_t begin = addr, end = addr + size; -+ -+#if GRUB_CPU_SIZEOF_VOID_P == 4 -+ /* Restrict ourselves to 32-bit memory space. */ -+ if (begin > GRUB_ULONG_MAX) -+ return 0; -+ if (end > GRUB_ULONG_MAX) -+ end = GRUB_ULONG_MAX; -+#endif -+ -+ if (start_of_ram > begin) -+ start_of_ram = begin; -+ -+ if (type != GRUB_MEMORY_AVAILABLE) -+ return 0; -+ -+ if (modend && begin < modend) -+ { -+ if (begin < (grub_addr_t)_start) -+ { -+ grub_mm_init_region ((void *) (grub_addr_t) begin, (grub_size_t) ((grub_addr_t)_start - begin)); -+ have_memory = 1; -+ } -+ begin = modend; -+ } -+ -+ /* Avoid DMA problems. */ -+ if (end >= 0xfe000000) -+ end = 0xfe000000; -+ -+ if (end <= begin) -+ return 0; -+ -+ grub_mm_init_region ((void *) (grub_addr_t) begin, (grub_size_t) (end - begin)); -+ -+ have_memory = 1; -+ -+ return 0; -+} -+ -+void -+grub_machine_init (void) -+{ -+ modend = grub_modules_get_end (); -+ -+ grub_video_coreboot_fb_early_init (); -+ -+ grub_machine_mmap_iterate (heap_init, NULL); -+ if (!have_memory) -+ grub_fatal ("No memory found"); -+ -+ grub_video_coreboot_fb_late_init (); -+ -+ grub_font_init (); -+ grub_gfxterm_init (); -+ -+ grub_machine_timer_init (); -+} -+ -+void -+grub_machine_get_bootlocation (char **device __attribute__ ((unused)), -+ char **path __attribute__ ((unused))) -+{ -+} -+ -+void -+grub_machine_fini (int flags __attribute__ ((unused))) -+{ -+} -diff --git a/grub-core/kern/arm/coreboot/timer.c b/grub-core/kern/arm/coreboot/timer.c -new file mode 100644 -index 00000000000..ebefb99d58f ---- /dev/null -+++ b/grub-core/kern/arm/coreboot/timer.c -@@ -0,0 +1,65 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2016 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+ -+grub_uint64_t -+grub_armv7_get_timer_value(void); -+ -+grub_uint32_t -+grub_armv7_get_timer_frequency(void); -+ -+grub_uint32_t -+grub_arm_pfr1(void); -+ -+static int have_timer = 0; -+static grub_uint32_t timer_frequency_in_khz; -+ -+static grub_uint64_t -+generic_get_time_ms (void) -+{ -+ return grub_divmod64 (grub_armv7_get_timer_value(), timer_frequency_in_khz, 0); -+} -+ -+static int -+try_generic_timer (void) -+{ -+ if (((grub_arm_pfr1 () >> 16) & 0xf) != 1) -+ return 0; -+ grub_printf ("freq = %x\n", grub_armv7_get_timer_frequency()); -+ timer_frequency_in_khz = 0x016e3600 / 1000; //grub_armv7_get_timer_frequency() / 1000; -+ if (timer_frequency_in_khz == 0) -+ return 0; -+ grub_install_get_time_ms (generic_get_time_ms); -+ have_timer = 1; -+ return 1; -+} -+ -+void -+grub_machine_timer_init (void) -+{ -+ if (!have_timer) -+ try_generic_timer (); -+ if (!have_timer) -+ grub_fatal ("No timer found"); -+} -diff --git a/grub-core/kern/coreboot/cbtable.c b/grub-core/kern/coreboot/cbtable.c -index 996d3f40738..aec63dbd120 100644 ---- a/grub-core/kern/coreboot/cbtable.c -+++ b/grub-core/kern/coreboot/cbtable.c -@@ -23,6 +23,8 @@ - #include - #include - -+#pragma GCC diagnostic ignored "-Wcast-align" -+ - /* Helper for grub_linuxbios_table_iterate. */ - int - grub_linuxbios_check_signature (grub_linuxbios_table_header_t tbl_header) -diff --git a/grub-core/lib/dummy/reboot.c b/grub-core/lib/dummy/reboot.c -new file mode 100644 -index 00000000000..b8cbed8f811 ---- /dev/null -+++ b/grub-core/lib/dummy/reboot.c -@@ -0,0 +1,32 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2013 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#include -+#include -+#include -+#include -+ -+void -+grub_reboot (void) -+{ -+ grub_machine_fini (GRUB_LOADER_FLAG_NORETURN); -+ -+ /* Just stop here */ -+ -+ while (1); -+} -diff --git a/grub-core/loader/arm/linux.c b/grub-core/loader/arm/linux.c -index 5b39f02bb2e..01374ee78fa 100644 ---- a/grub-core/loader/arm/linux.c -+++ b/grub-core/loader/arm/linux.c -@@ -31,6 +31,8 @@ - - GRUB_MOD_LICENSE ("GPLv3+"); - -+#ifndef GRUB_MACHINE_COREBOOT -+ - static grub_dl_t my_mod; - - static grub_addr_t initrd_start; -@@ -527,3 +529,4 @@ GRUB_MOD_FINI (linux) - grub_unregister_command (cmd_initrd); - grub_unregister_command (cmd_devicetree); - } -+#endif -diff --git a/util/grub-mkimagexx.c b/util/grub-mkimagexx.c -index 3fab93e2088..a2bb05439f0 100644 ---- a/util/grub-mkimagexx.c -+++ b/util/grub-mkimagexx.c -@@ -87,7 +87,8 @@ struct fixup_block_list - static int - is_relocatable (const struct grub_install_image_target_desc *image_target) - { -- return image_target->id == IMAGE_EFI || image_target->id == IMAGE_UBOOT; -+ return image_target->id == IMAGE_EFI || image_target->id == IMAGE_UBOOT -+ || (image_target->id == IMAGE_COREBOOT && image_target->elf_target == EM_ARM); - } - - #ifdef MKIMAGE_ELF32 -@@ -274,7 +275,10 @@ SUFFIX (grub_mkimage_generate_elf) (const struct grub_install_image_target_desc - { - grub_uint32_t target_addr_mods; - phdr->p_filesz = grub_host_to_target32 (layout->kernel_size); -- phdr->p_memsz = grub_host_to_target32 (layout->kernel_size + layout->bss_size); -+ if (image_target->id == IMAGE_COREBOOT && image_target->elf_target == EM_ARM) -+ phdr->p_memsz = grub_host_to_target32 (layout->kernel_size); -+ else -+ phdr->p_memsz = grub_host_to_target32 (layout->kernel_size + layout->bss_size); - - phdr++; - phdr->p_type = grub_host_to_target32 (PT_GNU_STACK); -@@ -290,8 +294,12 @@ SUFFIX (grub_mkimage_generate_elf) (const struct grub_install_image_target_desc - phdr->p_filesz = phdr->p_memsz - = grub_host_to_target32 (*core_size - layout->kernel_size); - -- if (image_target->id == IMAGE_COREBOOT) -+ if (image_target->id == IMAGE_COREBOOT && image_target->elf_target == EM_386) - target_addr_mods = GRUB_KERNEL_I386_COREBOOT_MODULES_ADDR; -+ else if (image_target->id == IMAGE_COREBOOT && image_target->elf_target == EM_ARM) -+ target_addr_mods = ALIGN_UP (target_addr + layout->end -+ + image_target->mod_gap, -+ image_target->mod_align); - else - target_addr_mods = ALIGN_UP (target_addr + layout->kernel_size + layout->bss_size - + image_target->mod_gap, -@@ -1876,7 +1884,7 @@ SUFFIX (locate_sections) (Elf_Ehdr *e, const char *kernel_path, - Platforms other than EFI and U-boot shouldn't have .bss in - their binaries as we build with -Wl,-Ttext. - */ -- if (image_target->id != IMAGE_UBOOT) -+ if (image_target->id == IMAGE_EFI || !is_relocatable (image_target)) - layout->kernel_size = layout->end; - - return section_addresses; -@@ -1979,6 +1987,7 @@ SUFFIX (grub_mkimage_load_image) (const char *kernel_path, - if (image_target->id == IMAGE_SPARC64_AOUT - || image_target->id == IMAGE_SPARC64_RAW - || image_target->id == IMAGE_UBOOT -+ || image_target->id == IMAGE_COREBOOT - || image_target->id == IMAGE_SPARC64_CDCORE) - layout->kernel_size = ALIGN_UP (layout->kernel_size, image_target->mod_align); - -@@ -2084,7 +2093,7 @@ SUFFIX (grub_mkimage_load_image) (const char *kernel_path, - Platforms other than EFI and U-boot shouldn't have .bss in - their binaries as we build with -Wl,-Ttext. - */ -- || (SUFFIX (is_bss_section) (s, image_target) && (image_target->id != IMAGE_UBOOT)) -+ || (SUFFIX (is_bss_section) (s, image_target) && (image_target->id == IMAGE_EFI || !is_relocatable (image_target))) - || SUFFIX (is_text_section) (s, image_target)) - { - if (grub_target_to_host32 (s->sh_type) == SHT_NOBITS) -diff --git a/util/mkimage.c b/util/mkimage.c -index 528166c87ac..6aa77ed7367 100644 ---- a/util/mkimage.c -+++ b/util/mkimage.c -@@ -533,6 +533,45 @@ static const struct grub_install_image_target_desc image_targets[] = - .mod_align = GRUB_KERNEL_ARM_UBOOT_MOD_ALIGN, - .link_align = 4 - }, -+ /* For coreboot versions that don't support self-relocating images. */ -+ { -+ .dirname = "arm-coreboot-vexpress", -+ .names = { "arm-coreboot-vexpress", NULL }, -+ .voidp_sizeof = 4, -+ .bigendian = 0, -+ .id = IMAGE_COREBOOT, -+ .flags = PLATFORM_FLAGS_NONE, -+ .total_module_size = GRUB_KERNEL_ARM_COREBOOT_TOTAL_MODULE_SIZE, -+ .decompressor_compressed_size = TARGET_NO_FIELD, -+ .decompressor_uncompressed_size = TARGET_NO_FIELD, -+ .decompressor_uncompressed_addr = TARGET_NO_FIELD, -+ .section_align = GRUB_KERNEL_ARM_COREBOOT_MOD_ALIGN, -+ .vaddr_offset = 0, -+ .elf_target = EM_ARM, -+ .mod_gap = GRUB_KERNEL_ARM_COREBOOT_MOD_GAP, -+ .mod_align = GRUB_KERNEL_ARM_COREBOOT_MOD_ALIGN, -+ .link_align = 4, -+ .link_addr = 0x62000000, -+ }, -+ { -+ .dirname = "arm-coreboot-veyron", -+ .names = { "arm-coreboot-veyron", NULL }, -+ .voidp_sizeof = 4, -+ .bigendian = 0, -+ .id = IMAGE_COREBOOT, -+ .flags = PLATFORM_FLAGS_NONE, -+ .total_module_size = GRUB_KERNEL_ARM_COREBOOT_TOTAL_MODULE_SIZE, -+ .decompressor_compressed_size = TARGET_NO_FIELD, -+ .decompressor_uncompressed_size = TARGET_NO_FIELD, -+ .decompressor_uncompressed_addr = TARGET_NO_FIELD, -+ .section_align = GRUB_KERNEL_ARM_COREBOOT_MOD_ALIGN, -+ .vaddr_offset = 0, -+ .elf_target = EM_ARM, -+ .mod_gap = GRUB_KERNEL_ARM_COREBOOT_MOD_GAP, -+ .mod_align = GRUB_KERNEL_ARM_COREBOOT_MOD_ALIGN, -+ .link_align = 4, -+ .link_addr = 0x43000000, -+ }, - { - .dirname = "arm-efi", - .names = { "arm-efi", NULL }, -@@ -1033,7 +1072,7 @@ grub_install_generate_image (const char *dir, const char *prefix, - /* fallthrough */ - case IMAGE_COREBOOT: - case IMAGE_QEMU: -- if (layout.kernel_size + layout.bss_size + GRUB_KERNEL_I386_PC_LINK_ADDR > 0x68000) -+ if (image_target->elf_target != EM_ARM && layout.kernel_size + layout.bss_size + GRUB_KERNEL_I386_PC_LINK_ADDR > 0x68000) - grub_util_error (_("kernel image is too big (0x%x > 0x%x)"), - (unsigned) layout.kernel_size + (unsigned) layout.bss_size - + GRUB_KERNEL_I386_PC_LINK_ADDR, -diff --git a/include/grub/arm/coreboot/console.h b/include/grub/arm/coreboot/console.h -new file mode 100644 -index 00000000000..13a14b78383 ---- /dev/null -+++ b/include/grub/arm/coreboot/console.h -@@ -0,0 +1,29 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2009 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#ifndef GRUB_MACHINE_CONSOLE_HEADER -+#define GRUB_MACHINE_CONSOLE_HEADER 1 -+ -+void grub_video_coreboot_fb_init (void); -+void grub_video_coreboot_fb_early_init (void); -+void grub_video_coreboot_fb_late_init (void); -+void grub_video_coreboot_fb_fini (void); -+ -+extern struct grub_linuxbios_table_framebuffer *grub_video_coreboot_fbtable; -+ -+#endif /* ! GRUB_MACHINE_CONSOLE_HEADER */ -diff --git a/include/grub/arm/coreboot/kernel.h b/include/grub/arm/coreboot/kernel.h -new file mode 100644 -index 00000000000..09cd7fe328c ---- /dev/null -+++ b/include/grub/arm/coreboot/kernel.h -@@ -0,0 +1,44 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2013 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#ifndef GRUB_KERNEL_MACHINE_HEADER -+#define GRUB_KERNEL_MACHINE_HEADER 1 -+ -+#ifndef ASM_FILE -+ -+#include -+#include -+ -+struct grub_fdt_board -+{ -+ const char *vendor, *part; -+ const grub_uint8_t *dtb; -+ grub_size_t dtb_size; -+}; -+ -+extern struct grub_fdt_board grub_fdt_boards[]; -+void grub_machine_timer_init (void); -+void grub_pl050_init (void); -+void -+grub_cros_init (void); -+extern grub_addr_t EXPORT_VAR (start_of_ram); -+#endif /* ! ASM_FILE */ -+ -+#define GRUB_KERNEL_MACHINE_STACK_SIZE GRUB_KERNEL_ARM_STACK_SIZE -+ -+#endif /* ! GRUB_KERNEL_MACHINE_HEADER */ -diff --git a/include/grub/offsets.h b/include/grub/offsets.h -index c88c86d4d2e..bf0689fc99a 100644 ---- a/include/grub/offsets.h -+++ b/include/grub/offsets.h -@@ -122,6 +122,12 @@ - #define GRUB_KERNEL_ARM_UBOOT_MOD_ALIGN 0x8 - #define GRUB_KERNEL_ARM_UBOOT_TOTAL_MODULE_SIZE 0x4 - -+#define GRUB_KERNEL_ARM_COREBOOT_MOD_ALIGN 0x8 -+#define GRUB_KERNEL_ARM_COREBOOT_TOTAL_MODULE_SIZE 0x4 -+ -+#define GRUB_KERNEL_ARM_STACK_SIZE 0x40000 -+#define GRUB_KERNEL_ARM_COREBOOT_MOD_GAP (GRUB_KERNEL_ARM_STACK_SIZE + 1024) -+ - /* Minimal gap between _end and the start of the modules. It's a hack - for PowerMac to prevent "CLAIM failed" error. The real fix is to - rewrite grub-mkimage to generate valid ELF files. */ -diff --git a/grub-core/kern/arm/coreboot/coreboot.S b/grub-core/kern/arm/coreboot/coreboot.S -new file mode 100644 -index 00000000000..a1104526c15 ---- /dev/null -+++ b/grub-core/kern/arm/coreboot/coreboot.S -@@ -0,0 +1,44 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2016 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#include -+ -+ .file "coreboot.S" -+ .text -+ .syntax unified -+#if !defined (__thumb2__) -+ .arch armv7a -+ .arm -+#else -+ .arch armv7 -+ .thumb -+#endif -+ -+FUNCTION(grub_arm_pfr1) -+ mrc p15, 0, r0, c0, c1, 1 -+ bx lr -+ -+FUNCTION(grub_armv7_get_timer_value) -+ isb -+ mrrc p15, 1, r0, r1, c14 -+ bx lr -+ -+FUNCTION(grub_armv7_get_timer_frequency) -+ mrc p15, 0, r0, c14, c0, 0 -+ bx lr -+ -diff --git a/grub-core/kern/arm/startup.S b/grub-core/kern/arm/startup.S -index 640837cba51..3946fe8e183 100644 ---- a/grub-core/kern/arm/startup.S -+++ b/grub-core/kern/arm/startup.S -@@ -24,6 +24,7 @@ - * GRUB is called from U-Boot as a Linux Kernel type image, which - * means among other things that it always enters in ARM state. - * -+ * coreboot starts in ARM mode as well. - * - * Overview of GRUB image layout: - * -@@ -127,6 +128,8 @@ reloc_done: - - str r1, EXT_C(grub_modbase) - -+ /* Coreboot already places modules at right place. */ -+#ifndef GRUB_MACHINE_COREBOOT - add r1, r1, r2 - add r0, r0, r2 - sub r1, r1, #4 -@@ -136,6 +139,7 @@ reloc_done: - str r3, [r1], #-4 @ *dst-- = r3 - subs r2, #4 @ remaining -= 4 - bne 1b @ while remaining != 0 -+#endif - - @ Since we _are_ the C run-time, we need to manually zero the BSS - @ region before continuing -diff --git a/gentpl.py b/gentpl.py -index f08bcc404f6..ed268178b4d 100644 ---- a/gentpl.py -+++ b/gentpl.py -@@ -31,7 +31,8 @@ GRUB_PLATFORMS = [ "emu", "i386_pc", "i386_efi", "i386_qemu", "i386_coreboot", - "i386_xen", "x86_64_xen", - "mips_loongson", "sparc64_ieee1275", - "powerpc_ieee1275", "mips_arc", "ia64_efi", -- "mips_qemu_mips", "arm_uboot", "arm_efi", "arm64_efi" ] -+ "mips_qemu_mips", "arm_uboot", "arm_efi", "arm64_efi", -+ "arm_coreboot"] - - GROUPS = {} - -@@ -44,7 +45,7 @@ GROUPS["x86"] = GROUPS["i386"] + GROUPS["x86_64"] - GROUPS["mips"] = [ "mips_loongson", "mips_qemu_mips", "mips_arc" ] - GROUPS["sparc64"] = [ "sparc64_ieee1275" ] - GROUPS["powerpc"] = [ "powerpc_ieee1275" ] --GROUPS["arm"] = [ "arm_uboot", "arm_efi" ] -+GROUPS["arm"] = [ "arm_uboot", "arm_efi", "arm_coreboot" ] - GROUPS["arm64"] = [ "arm64_efi" ] - - # Groups based on firmware -@@ -52,6 +53,7 @@ GROUPS["efi"] = [ "i386_efi", "x86_64_efi", "ia64_efi", "arm_efi", "arm64_efi" - GROUPS["ieee1275"] = [ "i386_ieee1275", "sparc64_ieee1275", "powerpc_ieee1275" ] - GROUPS["uboot"] = [ "arm_uboot" ] - GROUPS["xen"] = [ "i386_xen", "x86_64_xen" ] -+GROUPS["coreboot"] = [ "i386_coreboot", "arm_coreboot" ] - - # emu is a special case so many core functionality isn't needed on this platform - GROUPS["noemu"] = GRUB_PLATFORMS[:]; GROUPS["noemu"].remove("emu") -@@ -64,7 +66,7 @@ GROUPS["pci"] = GROUPS["x86"] + ["mips_loongson"] - GROUPS["usb"] = GROUPS["pci"] - - # If gfxterm is main output console integrate it into kernel --GROUPS["videoinkernel"] = ["mips_loongson", "i386_coreboot" ] -+GROUPS["videoinkernel"] = ["mips_loongson", "i386_coreboot", "arm_coreboot" ] - GROUPS["videomodules"] = GRUB_PLATFORMS[:]; - for i in GROUPS["videoinkernel"]: GROUPS["videomodules"].remove(i) - -diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am -index 781d0ffbf75..bec0585549a 100644 ---- a/grub-core/Makefile.am -+++ b/grub-core/Makefile.am -@@ -239,6 +239,16 @@ KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/lib/arg.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/arm/system.h - endif - -+if COND_arm_coreboot -+KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/arm/system.h -+KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/video.h -+KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/video_fb.h -+KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/gfxterm.h -+KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/font.h -+KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/bufio.h -+KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/arm/coreboot/kernel.h -+endif -+ - if COND_arm_efi - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/arm/efi/loader.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/efi.h diff --git a/0020-Add-support-for-device-tree-based-drivers.patch b/0020-Add-support-for-device-tree-based-drivers.patch deleted file mode 100644 index 145b1a6a..00000000 --- a/0020-Add-support-for-device-tree-based-drivers.patch +++ /dev/null @@ -1,853 +0,0 @@ -From fcbb723d4b1f7ad4687191562621dd0eb25f4d9e Mon Sep 17 00:00:00 2001 -From: Vladimir Serbinenko -Date: Mon, 8 May 2017 21:19:59 +0200 -Subject: [PATCH] Add support for device-tree-based drivers. - ---- - grub-core/Makefile.core.def | 2 + - grub-core/bus/fdt.c | 255 +++++++++++++++++++++++++++++++++++++ - grub-core/kern/arm/coreboot/init.c | 20 +++ - grub-core/lib/fdt.c | 152 ++++++++++++++++------ - util/grub-install-common.c | 2 +- - util/grub-mkimage.c | 11 +- - util/mkimage.c | 24 +++- - include/grub/fdt.h | 23 ++-- - include/grub/fdtbus.h | 73 +++++++++++ - include/grub/kernel.h | 3 +- - include/grub/util/install.h | 2 +- - conf/Makefile.common | 4 +- - grub-core/Makefile.am | 10 ++ - 13 files changed, 524 insertions(+), 57 deletions(-) - create mode 100644 grub-core/bus/fdt.c - create mode 100644 include/grub/fdtbus.h - -diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 411dca46bf2..77d0b019eb2 100644 ---- a/grub-core/Makefile.core.def -+++ b/grub-core/Makefile.core.def -@@ -158,6 +158,8 @@ kernel = { - arm_coreboot = kern/arm/coreboot/init.c; - arm_coreboot = kern/arm/coreboot/timer.c; - arm_coreboot = kern/arm/coreboot/coreboot.S; -+ arm_coreboot = lib/fdt.c; -+ arm_coreboot = bus/fdt.c; - - terminfoinkernel = term/terminfo.c; - terminfoinkernel = term/tparm.c; -diff --git a/grub-core/bus/fdt.c b/grub-core/bus/fdt.c -new file mode 100644 -index 00000000000..6fb077000a5 ---- /dev/null -+++ b/grub-core/bus/fdt.c -@@ -0,0 +1,255 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2016 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#include -+#include -+#include -+ -+static const void *dtb; -+static grub_size_t root_address_cells, root_size_cells; -+/* Pointer to this symbol signals invalid mapping. */ -+char grub_fdtbus_invalid_mapping[1]; -+ -+struct grub_fdtbus_dev -+{ -+ struct grub_fdtbus_dev *next; -+ struct grub_fdtbus_dev *parent; -+ int node; -+ struct grub_fdtbus_driver *driver; -+}; -+ -+struct grub_fdtbus_dev *devs; -+struct grub_fdtbus_driver *drivers; -+ -+static int -+is_compatible (struct grub_fdtbus_driver *driver, -+ int node) -+{ -+ grub_size_t compatible_size; -+ const char *compatible = grub_fdt_get_prop (dtb, node, "compatible", -+ &compatible_size); -+ const char *compatible_end = compatible + compatible_size; -+ while (compatible < compatible_end) -+ { -+ if (grub_strcmp (driver->compatible, compatible) == 0) -+ return 1; -+ compatible += grub_strlen (compatible) + 1; -+ } -+ return 0; -+} -+ -+static void -+fdtbus_scan (struct grub_fdtbus_dev *parent) -+{ -+ int node; -+ for (node = grub_fdt_first_node (dtb, parent ? parent->node : 0); node >= 0; -+ node = grub_fdt_next_node (dtb, node)) -+ { -+ struct grub_fdtbus_dev *dev; -+ struct grub_fdtbus_driver *driver; -+ dev = grub_zalloc (sizeof (*dev)); -+ if (!dev) -+ { -+ grub_print_error (); -+ return; -+ } -+ dev->node = node; -+ dev->next = devs; -+ dev->parent = parent; -+ devs = dev; -+ FOR_LIST_ELEMENTS(driver, drivers) -+ if (!dev->driver && is_compatible (driver, node)) -+ { -+ if (driver->attach(dev) == GRUB_ERR_NONE) -+ { -+ dev->driver = driver; -+ break; -+ } -+ grub_print_error (); -+ } -+ fdtbus_scan (dev); -+ } -+} -+ -+void -+grub_fdtbus_register (struct grub_fdtbus_driver *driver) -+{ -+ struct grub_fdtbus_dev *dev; -+ grub_list_push (GRUB_AS_LIST_P (&drivers), -+ GRUB_AS_LIST (driver)); -+ for (dev = devs; dev; dev = dev->next) -+ if (!dev->driver && is_compatible (driver, dev->node)) -+ { -+ if (driver->attach(dev) == GRUB_ERR_NONE) -+ dev->driver = driver; -+ grub_print_error (); -+ } -+} -+ -+void -+grub_fdtbus_unregister (struct grub_fdtbus_driver *driver) -+{ -+ grub_list_remove (GRUB_AS_LIST (driver)); -+ struct grub_fdtbus_dev *dev; -+ for (dev = devs; dev; dev = dev->next) -+ if (dev->driver == driver) -+ { -+ if (driver->detach) -+ driver->detach(dev); -+ dev->driver = 0; -+ } -+} -+ -+void -+grub_fdtbus_init (const void *dtb_in, grub_size_t size) -+{ -+ if (!dtb_in || grub_fdt_check_header (dtb_in, size) < 0) -+ grub_fatal ("invalid FDT"); -+ dtb = dtb_in; -+ const grub_uint32_t *prop = grub_fdt_get_prop (dtb, 0, "#address-cells", 0); -+ if (prop) -+ root_address_cells = grub_be_to_cpu32 (*prop); -+ else -+ root_address_cells = 1; -+ -+ prop = grub_fdt_get_prop (dtb, 0, "#size-cells", 0); -+ if (prop) -+ root_size_cells = grub_be_to_cpu32 (*prop); -+ else -+ root_size_cells = 1; -+ -+ fdtbus_scan (0); -+} -+ -+static int -+get_address_cells (const struct grub_fdtbus_dev *dev) -+{ -+ const grub_uint32_t *prop; -+ if (!dev) -+ return root_address_cells; -+ prop = grub_fdt_get_prop (dtb, dev->node, "#address-cells", 0); -+ if (prop) -+ return grub_be_to_cpu32 (*prop); -+ return 1; -+} -+ -+static int -+get_size_cells (const struct grub_fdtbus_dev *dev) -+{ -+ const grub_uint32_t *prop; -+ if (!dev) -+ return root_size_cells; -+ prop = grub_fdt_get_prop (dtb, dev->node, "#size-cells", 0); -+ if (prop) -+ return grub_be_to_cpu32 (*prop); -+ return 1; -+} -+ -+static grub_uint64_t -+get64 (const grub_uint32_t *reg, grub_size_t cells) -+{ -+ grub_uint64_t val = 0; -+ if (cells >= 1) -+ val = grub_be_to_cpu32 (reg[cells - 1]); -+ if (cells >= 2) -+ val |= ((grub_uint64_t) grub_be_to_cpu32 (reg[cells - 2])) << 32; -+ return val; -+} -+ -+static volatile void * -+translate (const struct grub_fdtbus_dev *dev, const grub_uint32_t *reg) -+{ -+ volatile void *ret; -+ const grub_uint32_t *ranges; -+ grub_size_t ranges_size, cells_per_mapping; -+ grub_size_t parent_address_cells, child_address_cells, child_size_cells; -+ grub_size_t nmappings, i; -+ if (dev == 0) -+ { -+ grub_uint64_t val; -+ val = get64 (reg, root_address_cells); -+ if (sizeof (void *) == 4 && (val >> 32)) -+ return grub_fdtbus_invalid_mapping; -+ return (void *) (grub_addr_t) val; -+ } -+ ranges = grub_fdt_get_prop (dtb, dev->node, "ranges", &ranges_size); -+ if (!ranges) -+ return grub_fdtbus_invalid_mapping; -+ if (ranges_size == 0) -+ return translate (dev->parent, reg); -+ parent_address_cells = get_address_cells (dev->parent); -+ child_address_cells = get_address_cells (dev); -+ child_size_cells = get_size_cells (dev); -+ cells_per_mapping = parent_address_cells + child_address_cells + child_size_cells; -+ nmappings = ranges_size / 4 / cells_per_mapping; -+ for (i = 0; i < nmappings; i++) -+ { -+ const grub_uint32_t *child_addr = &ranges[i * cells_per_mapping]; -+ const grub_uint32_t *parent_addr = child_addr + child_address_cells; -+ grub_uint64_t child_size = get64 (parent_addr + parent_address_cells, child_size_cells); -+ -+ if (child_address_cells > 2 && grub_memcmp (reg, child_addr, (child_address_cells - 2) * 4) != 0) -+ continue; -+ if (get64 (reg, child_address_cells) < get64 (child_addr, child_address_cells)) -+ continue; -+ -+ grub_uint64_t offset = get64 (reg, child_address_cells) - get64 (child_addr, child_address_cells); -+ if (offset >= child_size) -+ continue; -+ -+ ret = translate (dev->parent, parent_addr); -+ if (grub_fdtbus_is_mapping_valid (ret)) -+ ret = (volatile char *) ret + offset; -+ return ret; -+ } -+ return grub_fdtbus_invalid_mapping; -+} -+ -+volatile void * -+grub_fdtbus_map_reg (const struct grub_fdtbus_dev *dev, int regno, grub_size_t *size) -+{ -+ grub_size_t address_cells, size_cells; -+ address_cells = get_address_cells (dev->parent); -+ size_cells = get_size_cells (dev->parent); -+ const grub_uint32_t *reg = grub_fdt_get_prop (dtb, dev->node, "reg", 0); -+ if (size && size_cells) -+ *size = reg[(address_cells + size_cells) * regno + address_cells]; -+ if (size && !size_cells) -+ *size = 0; -+ return translate (dev->parent, reg + (address_cells + size_cells) * regno); -+} -+ -+const char * -+grub_fdtbus_get_name (const struct grub_fdtbus_dev *dev) -+{ -+ return grub_fdt_get_nodename (dtb, dev->node); -+} -+ -+const void * -+grub_fdtbus_get_prop (const struct grub_fdtbus_dev *dev, -+ const char *name, -+ grub_uint32_t *len) -+{ -+ return grub_fdt_get_prop (dtb, dev->node, name, len); -+} -+ -+const void * -+grub_fdtbus_get_fdt (void) -+{ -+ return dtb; -+} -diff --git a/grub-core/kern/arm/coreboot/init.c b/grub-core/kern/arm/coreboot/init.c -index 51ecaceb005..aec75c672a2 100644 ---- a/grub-core/kern/arm/coreboot/init.c -+++ b/grub-core/kern/arm/coreboot/init.c -@@ -33,6 +33,7 @@ - #include - #include - #include -+#include - - extern grub_uint8_t _start[]; - extern grub_uint8_t _end[]; -@@ -99,6 +100,10 @@ heap_init (grub_uint64_t addr, grub_uint64_t size, grub_memory_type_t type, - void - grub_machine_init (void) - { -+ struct grub_module_header *header; -+ void *dtb = 0; -+ grub_size_t dtb_size = 0; -+ - modend = grub_modules_get_end (); - - grub_video_coreboot_fb_early_init (); -@@ -112,6 +117,21 @@ grub_machine_init (void) - grub_font_init (); - grub_gfxterm_init (); - -+ FOR_MODULES (header) -+ if (header->type == OBJ_TYPE_DTB) -+ { -+ char *dtb_orig_addr, *dtb_copy; -+ dtb_orig_addr = (char *) header + sizeof (struct grub_module_header); -+ -+ dtb_size = header->size - sizeof (struct grub_module_header); -+ dtb = dtb_copy = grub_malloc (dtb_size); -+ grub_memmove (dtb_copy, dtb_orig_addr, dtb_size); -+ break; -+ } -+ if (!dtb) -+ grub_fatal ("No DTB found"); -+ grub_fdtbus_init (dtb, dtb_size); -+ - grub_machine_timer_init (); - } - -diff --git a/grub-core/lib/fdt.c b/grub-core/lib/fdt.c -index b5d520f2088..bdc6302448d 100644 ---- a/grub-core/lib/fdt.c -+++ b/grub-core/lib/fdt.c -@@ -102,13 +102,13 @@ static grub_uint32_t *get_next_node (const void *fdt, char *node_name) - static int get_mem_rsvmap_size (const void *fdt) - { - int size = 0; -- grub_uint64_t *ptr = (void *) ((grub_addr_t) fdt -- + grub_fdt_get_off_mem_rsvmap (fdt)); -+ grub_unaligned_uint64_t *ptr = (void *) ((grub_addr_t) fdt -+ + grub_fdt_get_off_mem_rsvmap (fdt)); - - do - { - size += 2 * sizeof(*ptr); -- if (!*ptr && !*(ptr + 1)) -+ if (!ptr[0].val && !ptr[1].val) - return size; - ptr += 2; - } while ((grub_addr_t) ptr <= (grub_addr_t) fdt + grub_fdt_get_totalsize (fdt) -@@ -229,7 +229,7 @@ static int rearrange_blocks (void *fdt, unsigned int clearance) - return 0; - } - --static grub_uint32_t *find_prop (void *fdt, unsigned int nodeoffset, -+static grub_uint32_t *find_prop (const void *fdt, unsigned int nodeoffset, - const char *name) - { - grub_uint32_t *prop = (void *) ((grub_addr_t) fdt -@@ -268,9 +268,9 @@ static grub_uint32_t *find_prop (void *fdt, unsigned int nodeoffset, - the size allocated for the FDT; if this function is called before the other - functions in this file and returns success, the other functions are - guaranteed not to access memory locations outside the allocated memory. */ --int grub_fdt_check_header_nosize (void *fdt) -+int grub_fdt_check_header_nosize (const void *fdt) - { -- if (((grub_addr_t) fdt & 0x7) || (grub_fdt_get_magic (fdt) != FDT_MAGIC) -+ if (((grub_addr_t) fdt & 0x3) || (grub_fdt_get_magic (fdt) != FDT_MAGIC) - || (grub_fdt_get_version (fdt) < FDT_SUPPORTED_VERSION) - || (grub_fdt_get_last_comp_version (fdt) > FDT_SUPPORTED_VERSION) - || (grub_fdt_get_off_dt_struct (fdt) & 0x00000003) -@@ -286,7 +286,7 @@ int grub_fdt_check_header_nosize (void *fdt) - return 0; - } - --int grub_fdt_check_header (void *fdt, unsigned int size) -+int grub_fdt_check_header (const void *fdt, unsigned int size) - { - if (size < sizeof (grub_fdt_header_t) - || (grub_fdt_get_totalsize (fdt) > size) -@@ -295,52 +295,104 @@ int grub_fdt_check_header (void *fdt, unsigned int size) - return 0; - } - -+static const grub_uint32_t * -+advance_token (const void *fdt, const grub_uint32_t *token, const grub_uint32_t *end, int skip_current) -+{ -+ for (; token < end; skip_current = 0) -+ { -+ switch (grub_be_to_cpu32 (*token)) -+ { -+ case FDT_BEGIN_NODE: -+ if (skip_current) -+ { -+ token = get_next_node (fdt, (char *) (token + 1)); -+ continue; -+ } -+ char *ptr; -+ for (ptr = (char *) (token + 1); *ptr && ptr < (char *) end; ptr++); -+ if (ptr >= (char *) end) -+ return 0; -+ return token; -+ case FDT_PROP: -+ /* Skip property token and following data (len, nameoff and property -+ value). */ -+ if (token >= end - 1) -+ return 0; -+ token += prop_entry_size(grub_be_to_cpu32(*(token + 1))) -+ / sizeof(*token); -+ break; -+ case FDT_NOP: -+ token++; -+ break; -+ default: -+ return 0; -+ } -+ } -+ return 0; -+} -+ -+int grub_fdt_next_node (const void *fdt, unsigned int currentoffset) -+{ -+ const grub_uint32_t *token = (const grub_uint32_t *) fdt + (currentoffset + grub_fdt_get_off_dt_struct (fdt)) / 4; -+ token = advance_token (fdt, token, (const void *) struct_end (fdt), 1); -+ if (!token) -+ return -1; -+ return (int) ((grub_addr_t) token - (grub_addr_t) fdt -+ - grub_fdt_get_off_dt_struct (fdt)); -+} -+ -+int grub_fdt_first_node (const void *fdt, unsigned int parentoffset) -+{ -+ const grub_uint32_t *token, *end; -+ char *node_name; -+ -+ if (parentoffset & 0x3) -+ return -1; -+ token = (const void *) ((grub_addr_t) fdt + grub_fdt_get_off_dt_struct(fdt) -+ + parentoffset); -+ end = (const void *) struct_end (fdt); -+ if ((token >= end) || (grub_be_to_cpu32(*token) != FDT_BEGIN_NODE)) -+ return -1; -+ SKIP_NODE_NAME(node_name, token, end); -+ token = advance_token (fdt, token, end, 0); -+ if (!token) -+ return -1; -+ return (int) ((grub_addr_t) token - (grub_addr_t) fdt -+ - grub_fdt_get_off_dt_struct (fdt)); -+} -+ - /* Find a direct sub-node of a given parent node. */ - int grub_fdt_find_subnode (const void *fdt, unsigned int parentoffset, - const char *name) - { -- grub_uint32_t *token, *end; -- char *node_name; -+ const grub_uint32_t *token, *end; -+ const char *node_name; -+ int skip_current = 0; - - if (parentoffset & 0x3) - return -1; -- token = (void *) ((grub_addr_t) fdt + grub_fdt_get_off_dt_struct(fdt) -+ token = (const void *) ((grub_addr_t) fdt + grub_fdt_get_off_dt_struct(fdt) - + parentoffset); -- end = (void *) struct_end (fdt); -+ end = (const void *) struct_end (fdt); - if ((token >= end) || (grub_be_to_cpu32(*token) != FDT_BEGIN_NODE)) - return -1; - SKIP_NODE_NAME(node_name, token, end); -- while (token < end) -- { -- switch (grub_be_to_cpu32(*token)) -- { -- case FDT_BEGIN_NODE: -- node_name = (char *) (token + 1); -- if (node_name + grub_strlen (name) >= (char *) end) -- return -1; -- if (!grub_strcmp (node_name, name)) -- return (int) ((grub_addr_t) token - (grub_addr_t) fdt -- - grub_fdt_get_off_dt_struct (fdt)); -- token = get_next_node (fdt, node_name); -- if (!token) -- return -1; -- break; -- case FDT_PROP: -- /* Skip property token and following data (len, nameoff and property -- value). */ -- if (token >= end - 1) -- return -1; -- token += prop_entry_size(grub_be_to_cpu32(*(token + 1))) -- / sizeof(*token); -- break; -- case FDT_NOP: -- token++; -- break; -- default: -- return -1; -- } -+ while (1) { -+ token = advance_token (fdt, token, end, skip_current); -+ if (!token) -+ return -1; -+ skip_current = 1; -+ node_name = (const char *) token + 4; -+ if (grub_strcmp (node_name, name) == 0) -+ return (int) ((grub_addr_t) token - (grub_addr_t) fdt -+ - grub_fdt_get_off_dt_struct (fdt)); - } -- return -1; -+} -+ -+const char * -+grub_fdt_get_nodename (const void *fdt, unsigned int nodeoffset) -+{ -+ return (const char *) fdt + grub_fdt_get_off_dt_struct(fdt) + nodeoffset + 4; - } - - int grub_fdt_add_subnode (void *fdt, unsigned int parentoffset, -@@ -359,6 +411,24 @@ int grub_fdt_add_subnode (void *fdt, unsigned int parentoffset, - return add_subnode (fdt, parentoffset, name); - } - -+const void * -+grub_fdt_get_prop (const void *fdt, unsigned int nodeoffset, const char *name, -+ grub_uint32_t *len) -+{ -+ grub_uint32_t *prop; -+ if ((nodeoffset >= grub_fdt_get_size_dt_struct (fdt)) || (nodeoffset & 0x3) -+ || (grub_be_to_cpu32(*(grub_uint32_t *) ((grub_addr_t) fdt -+ + grub_fdt_get_off_dt_struct (fdt) + nodeoffset)) -+ != FDT_BEGIN_NODE)) -+ return 0; -+ prop = find_prop (fdt, nodeoffset, name); -+ if (!prop) -+ return 0; -+ if (len) -+ *len = grub_be_to_cpu32 (*(prop + 1)); -+ return prop + 3; -+} -+ - int grub_fdt_set_prop (void *fdt, unsigned int nodeoffset, const char *name, - const void *val, grub_uint32_t len) - { -diff --git a/util/grub-install-common.c b/util/grub-install-common.c -index 452b230daed..8539ff3484d 100644 ---- a/util/grub-install-common.c -+++ b/util/grub-install-common.c -@@ -499,7 +499,7 @@ grub_install_make_image_wrap_file (const char *dir, const char *prefix, - grub_install_generate_image (dir, prefix, fp, outname, - modules.entries, memdisk_path, - pubkeys, npubkeys, config_path, tgt, -- note, compression); -+ note, compression, 0); - while (dc--) - grub_install_pop_module (); - } -diff --git a/util/grub-mkimage.c b/util/grub-mkimage.c -index aba19d21b9a..98d24cc06ea 100644 ---- a/util/grub-mkimage.c -+++ b/util/grub-mkimage.c -@@ -71,6 +71,7 @@ static struct argp_option options[] = { - N_("embed FILE as a memdisk image\n" - "Implies `-p (memdisk)/boot/grub' and overrides any prefix supplied previously," - " but the prefix itself can be overridden by later options"), 0}, -+ {"dtb", 'D', N_("FILE"), 0, N_("embed FILE as a device tree (DTB)\n"), 0}, - /* TRANSLATORS: "embed" is a verb (command description). "*/ - {"config", 'c', N_("FILE"), 0, N_("embed FILE as an early config"), 0}, - /* TRANSLATORS: "embed" is a verb (command description). "*/ -@@ -117,6 +118,7 @@ struct arguments - char *dir; - char *prefix; - char *memdisk; -+ char *dtb; - char **pubkeys; - size_t npubkeys; - char *font; -@@ -176,6 +178,13 @@ argp_parser (int key, char *arg, struct argp_state *state) - arguments->prefix = xstrdup ("(memdisk)/boot/grub"); - break; - -+ case 'D': -+ if (arguments->dtb) -+ free (arguments->dtb); -+ -+ arguments->dtb = xstrdup (arg); -+ break; -+ - case 'k': - arguments->pubkeys = xrealloc (arguments->pubkeys, - sizeof (arguments->pubkeys[0]) -@@ -300,7 +309,7 @@ main (int argc, char *argv[]) - arguments.memdisk, arguments.pubkeys, - arguments.npubkeys, arguments.config, - arguments.image_target, arguments.note, -- arguments.comp); -+ arguments.comp, arguments.dtb); - - grub_util_file_sync (fp); - fclose (fp); -diff --git a/util/mkimage.c b/util/mkimage.c -index 6aa77ed7367..e22d82afa61 100644 ---- a/util/mkimage.c -+++ b/util/mkimage.c -@@ -777,13 +777,12 @@ grub_install_generate_image (const char *dir, const char *prefix, - char *memdisk_path, char **pubkey_paths, - size_t npubkeys, char *config_path, - const struct grub_install_image_target_desc *image_target, -- int note, -- grub_compression_t comp) -+ int note, grub_compression_t comp, const char *dtb_path) - { - char *kernel_img, *core_img; - size_t total_module_size, core_size; - size_t memdisk_size = 0, config_size = 0; -- size_t prefix_size = 0; -+ size_t prefix_size = 0, dtb_size = 0; - char *kernel_path; - size_t offset; - struct grub_util_path_list *path_list, *p; -@@ -828,6 +827,12 @@ grub_install_generate_image (const char *dir, const char *prefix, - total_module_size += memdisk_size + sizeof (struct grub_module_header); - } - -+ if (dtb_path) -+ { -+ dtb_size = ALIGN_UP(grub_util_get_image_size (dtb_path), 4); -+ total_module_size += dtb_size + sizeof (struct grub_module_header); -+ } -+ - if (config_path) - { - config_size = ALIGN_ADDR (grub_util_get_image_size (config_path) + 1); -@@ -950,6 +955,19 @@ grub_install_generate_image (const char *dir, const char *prefix, - offset += memdisk_size; - } - -+ if (dtb_path) -+ { -+ struct grub_module_header *header; -+ -+ header = (struct grub_module_header *) (kernel_img + offset); -+ header->type = grub_host_to_target32 (OBJ_TYPE_DTB); -+ header->size = grub_host_to_target32 (dtb_size + sizeof (*header)); -+ offset += sizeof (*header); -+ -+ grub_util_load_image (dtb_path, kernel_img + offset); -+ offset += dtb_size; -+ } -+ - if (config_path) - { - struct grub_module_header *header; -diff --git a/include/grub/fdt.h b/include/grub/fdt.h -index fdfca75bf48..75525fa317c 100644 ---- a/include/grub/fdt.h -+++ b/include/grub/fdt.h -@@ -20,6 +20,7 @@ - #define GRUB_FDT_HEADER 1 - - #include -+#include - - #define FDT_MAGIC 0xD00DFEED - -@@ -95,16 +96,22 @@ struct grub_fdt_empty_tree { - #define grub_fdt_set_size_dt_struct(fdt, value) \ - grub_fdt_set_header(fdt, size_dt_struct, value) - --int grub_fdt_create_empty_tree (void *fdt, unsigned int size); --int grub_fdt_check_header (void *fdt, unsigned int size); --int grub_fdt_check_header_nosize (void *fdt); --int grub_fdt_find_subnode (const void *fdt, unsigned int parentoffset, -- const char *name); --int grub_fdt_add_subnode (void *fdt, unsigned int parentoffset, -+int EXPORT_FUNC(grub_fdt_create_empty_tree) (void *fdt, unsigned int size); -+int EXPORT_FUNC(grub_fdt_check_header) (const void *fdt, unsigned int size); -+int EXPORT_FUNC(grub_fdt_check_header_nosize) (const void *fdt); -+int EXPORT_FUNC(grub_fdt_find_subnode) (const void *fdt, unsigned int parentoffset, -+ const char *name); -+int EXPORT_FUNC(grub_fdt_first_node) (const void *fdt, unsigned int parentoffset); -+int EXPORT_FUNC(grub_fdt_next_node) (const void *fdt, unsigned int currentoffset); -+int EXPORT_FUNC(grub_fdt_add_subnode) (void *fdt, unsigned int parentoffset, - const char *name); -+const char * -+EXPORT_FUNC(grub_fdt_get_nodename) (const void *fdt, unsigned int nodeoffset); -+const void *EXPORT_FUNC(grub_fdt_get_prop) (const void *fdt, unsigned int nodeoffset, const char *name, -+ grub_uint32_t *len); - --int grub_fdt_set_prop (void *fdt, unsigned int nodeoffset, const char *name, -- const void *val, grub_uint32_t len); -+int EXPORT_FUNC(grub_fdt_set_prop) (void *fdt, unsigned int nodeoffset, const char *name, -+ const void *val, grub_uint32_t len); - #define grub_fdt_set_prop32(fdt, nodeoffset, name, val) \ - ({ \ - grub_uint32_t _val = grub_cpu_to_be32(val); \ -diff --git a/include/grub/fdtbus.h b/include/grub/fdtbus.h -new file mode 100644 -index 00000000000..985837e55f6 ---- /dev/null -+++ b/include/grub/fdtbus.h -@@ -0,0 +1,73 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2016 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#ifndef GRUB_FDTBUS_HEADER -+#define GRUB_FDTBUS_HEADER 1 -+ -+#include -+#include -+ -+struct grub_fdtbus_dev; -+ -+struct grub_fdtbus_driver -+{ -+ struct grub_fdtbus_driver *next; -+ struct grub_fdtbus_driver **prev; -+ -+ const char *compatible; -+ -+ grub_err_t (*attach) (const struct grub_fdtbus_dev *dev); -+ void (*detach) (const struct grub_fdtbus_dev *dev); -+}; -+ -+extern char EXPORT_VAR(grub_fdtbus_invalid_mapping)[1]; -+ -+static inline int -+grub_fdtbus_is_mapping_valid (volatile void *m) -+{ -+ return m != grub_fdtbus_invalid_mapping; -+} -+ -+volatile void * -+EXPORT_FUNC(grub_fdtbus_map_reg) (const struct grub_fdtbus_dev *dev, int reg, grub_size_t *size); -+ -+const void * -+EXPORT_FUNC(grub_fdtbus_get_fdt) (void); -+ -+const char * -+EXPORT_FUNC(grub_fdtbus_get_name) (const struct grub_fdtbus_dev *dev); -+ -+const void * -+EXPORT_FUNC(grub_fdtbus_get_prop) (const struct grub_fdtbus_dev *dev, -+ const char *name, -+ grub_uint32_t *len); -+ -+void -+EXPORT_FUNC(grub_fdtbus_register) (struct grub_fdtbus_driver *driver); -+ -+void -+EXPORT_FUNC(grub_fdtbus_unregister) (struct grub_fdtbus_driver *driver); -+ -+/* Must be called before any register(). */ -+/* dtb is assumed to be unfreeable and must remain -+ valid for lifetime of GRUB. -+ */ -+void -+grub_fdtbus_init (const void *dtb, grub_size_t size); -+ -+#endif -diff --git a/include/grub/kernel.h b/include/grub/kernel.h -index 20ddf2da297..ecd88ca72c6 100644 ---- a/include/grub/kernel.h -+++ b/include/grub/kernel.h -@@ -28,7 +28,8 @@ enum - OBJ_TYPE_MEMDISK, - OBJ_TYPE_CONFIG, - OBJ_TYPE_PREFIX, -- OBJ_TYPE_PUBKEY -+ OBJ_TYPE_PUBKEY, -+ OBJ_TYPE_DTB - }; - - /* The module header. */ -diff --git a/include/grub/util/install.h b/include/grub/util/install.h -index 5ca4811cd13..6abd288c313 100644 ---- a/include/grub/util/install.h -+++ b/include/grub/util/install.h -@@ -176,7 +176,7 @@ grub_install_generate_image (const char *dir, const char *prefix, - char *config_path, - const struct grub_install_image_target_desc *image_target, - int note, -- grub_compression_t comp); -+ grub_compression_t comp, const char *dtb_file); - - const struct grub_install_image_target_desc * - grub_install_get_image_target (const char *arg); -diff --git a/conf/Makefile.common b/conf/Makefile.common -index 11296b550a7..311da61c6c5 100644 ---- a/conf/Makefile.common -+++ b/conf/Makefile.common -@@ -86,9 +86,11 @@ CPPFLAGS_TERMINAL_LIST += '-Dgrub_term_register_output(...)=OUTPUT_TERMINAL_LIST - CPPFLAGS_COMMAND_LIST = '-Dgrub_register_command(...)=COMMAND_LIST_MARKER(__VA_ARGS__)' - CPPFLAGS_COMMAND_LIST += '-Dgrub_register_extcmd(...)=EXTCOMMAND_LIST_MARKER(__VA_ARGS__)' - CPPFLAGS_COMMAND_LIST += '-Dgrub_register_command_p1(...)=P1COMMAND_LIST_MARKER(__VA_ARGS__)' -+CPPFLAGS_FDT_LIST := '-Dgrub_fdtbus_register(...)=FDT_DRIVER_LIST_MARKER(__VA_ARGS__)' - CPPFLAGS_MARKER = $(CPPFLAGS_FS_LIST) $(CPPFLAGS_VIDEO_LIST) \ - $(CPPFLAGS_PARTTOOL_LIST) $(CPPFLAGS_PARTMAP_LIST) \ -- $(CPPFLAGS_TERMINAL_LIST) $(CPPFLAGS_COMMAND_LIST) -+ $(CPPFLAGS_TERMINAL_LIST) $(CPPFLAGS_COMMAND_LIST) \ -+ $(CPPFLAGS_FDT_LIST) - - # Define these variables to calm down automake - -diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am -index bec0585549a..fc6ca305147 100644 ---- a/grub-core/Makefile.am -+++ b/grub-core/Makefile.am -@@ -368,6 +368,16 @@ terminal.lst: $(MARKER_FILES) - platform_DATA += terminal.lst - CLEANFILES += terminal.lst - -+fdt.lst: $(MARKER_FILES) -+ (for pp in $^; do \ -+ b=`basename $$pp .marker`; \ -+ sed -n \ -+ -e "/FDT_DRIVER_LIST_MARKER *( *\"/{s/.*( *\"\([^\"]*\)\".*/i\1: $$b/;p;}" \ -+ -e "/FDT_DRIVER_LIST_MARKER *( *\"/{s/.*( *\"\([^\"]*\)\".*/o\1: $$b/;p;}" $$pp; \ -+ done) | sort -u > $@ -+platform_DATA += fdt.lst -+CLEANFILES += fdt.lst -+ - parttool.lst: $(MARKER_FILES) - (for pp in $^; do \ - b=`basename $$pp .marker`; \ diff --git a/0083-Use-linuxefi-and-initrdefi-where-appropriate.patch b/0020-Use-linuxefi-and-initrdefi-where-appropriate.patch similarity index 96% rename from 0083-Use-linuxefi-and-initrdefi-where-appropriate.patch rename to 0020-Use-linuxefi-and-initrdefi-where-appropriate.patch index 25f80331..e4a64f32 100644 --- a/0083-Use-linuxefi-and-initrdefi-where-appropriate.patch +++ b/0020-Use-linuxefi-and-initrdefi-where-appropriate.patch @@ -1,4 +1,4 @@ -From 793d4270384ef3373bc0b3c956cab8a8cdb75bcf Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 16 Jul 2012 18:57:11 -0400 Subject: [PATCH] Use "linuxefi" and "initrdefi" where appropriate. diff --git a/0084-Don-t-allow-insmod-when-secure-boot-is-enabled.patch b/0021-Don-t-allow-insmod-when-secure-boot-is-enabled.patch similarity index 98% rename from 0084-Don-t-allow-insmod-when-secure-boot-is-enabled.patch rename to 0021-Don-t-allow-insmod-when-secure-boot-is-enabled.patch index 28b21dc6..9bc0aff1 100644 --- a/0084-Don-t-allow-insmod-when-secure-boot-is-enabled.patch +++ b/0021-Don-t-allow-insmod-when-secure-boot-is-enabled.patch @@ -1,4 +1,4 @@ -From eb8fd62e887e624f5c6e7c2ee8512981e8b5be97 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Colin Watson Date: Tue, 23 Oct 2012 10:40:49 -0400 Subject: [PATCH] Don't allow insmod when secure boot is enabled. diff --git a/0021-arm-coreboot-Support-for-vexpress-timer.patch b/0021-arm-coreboot-Support-for-vexpress-timer.patch deleted file mode 100644 index 4653775c..00000000 --- a/0021-arm-coreboot-Support-for-vexpress-timer.patch +++ /dev/null @@ -1,70 +0,0 @@ -From 5a865b37866ee8cd64c080bc6fb1e537f8e2b3c6 Mon Sep 17 00:00:00 2001 -From: Vladimir Serbinenko -Date: Mon, 8 May 2017 21:26:36 +0200 -Subject: [PATCH] arm-coreboot: Support for vexpress timer. - ---- - grub-core/kern/arm/coreboot/timer.c | 36 ++++++++++++++++++++++++++++++++++++ - 1 file changed, 36 insertions(+) - -diff --git a/grub-core/kern/arm/coreboot/timer.c b/grub-core/kern/arm/coreboot/timer.c -index ebefb99d58f..d97b844f848 100644 ---- a/grub-core/kern/arm/coreboot/timer.c -+++ b/grub-core/kern/arm/coreboot/timer.c -@@ -21,6 +21,7 @@ - #include - #include - #include -+#include - #include - - grub_uint64_t -@@ -33,6 +34,39 @@ grub_uint32_t - grub_arm_pfr1(void); - - static int have_timer = 0; -+static volatile grub_uint32_t *sp804_regs; -+ -+static grub_uint64_t -+sp804_get_time_ms (void) -+{ -+ static grub_uint32_t high, last_low; -+ grub_uint32_t low = ~sp804_regs[1]; -+ if (last_low > low) -+ high++; -+ last_low = low; -+ return grub_divmod64 ((((grub_uint64_t) high) << 32) | low, -+ 1000, 0); -+} -+ -+static grub_err_t -+sp804_attach(const struct grub_fdtbus_dev *dev) -+{ -+ if (have_timer) -+ return GRUB_ERR_NONE; -+ sp804_regs = grub_fdtbus_map_reg (dev, 0, 0); -+ if (!grub_fdtbus_is_mapping_valid (sp804_regs)) -+ return grub_error (GRUB_ERR_IO, "could not map sp804: %p", sp804_regs); -+ grub_install_get_time_ms (sp804_get_time_ms); -+ have_timer = 1; -+ return GRUB_ERR_NONE; -+} -+ -+struct grub_fdtbus_driver sp804 = -+{ -+ .compatible = "arm,sp804", -+ .attach = sp804_attach -+}; -+ - static grub_uint32_t timer_frequency_in_khz; - - static grub_uint64_t -@@ -58,6 +92,8 @@ try_generic_timer (void) - void - grub_machine_timer_init (void) - { -+ grub_fdtbus_register (&sp804); -+ - if (!have_timer) - try_generic_timer (); - if (!have_timer) diff --git a/0085-Pass-x-hex-hex-straight-through-unmolested.patch b/0022-Pass-x-hex-hex-straight-through-unmolested.patch similarity index 98% rename from 0085-Pass-x-hex-hex-straight-through-unmolested.patch rename to 0022-Pass-x-hex-hex-straight-through-unmolested.patch index 35b8ed77..5f4884d0 100644 --- a/0085-Pass-x-hex-hex-straight-through-unmolested.patch +++ b/0022-Pass-x-hex-hex-straight-through-unmolested.patch @@ -1,4 +1,4 @@ -From 0d54ed89090fc1bdcb75de474024b2b81dbf644f Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 1 Oct 2012 13:24:37 -0400 Subject: [PATCH] Pass "\x[[:hex:]][[:hex:]]" straight through unmolested. diff --git a/0022-arm-coreboot-Export-FDT-routines.patch b/0022-arm-coreboot-Export-FDT-routines.patch deleted file mode 100644 index b7196377..00000000 --- a/0022-arm-coreboot-Export-FDT-routines.patch +++ /dev/null @@ -1,24 +0,0 @@ -From ac6b41b89fbb82a3ba843a7ed19115d81432b604 Mon Sep 17 00:00:00 2001 -From: Vladimir Serbinenko -Date: Mon, 8 May 2017 21:29:48 +0200 -Subject: [PATCH] arm-coreboot: Export FDT routines. - -We need to use them from modules as well. ---- - grub-core/Makefile.am | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am -index fc6ca305147..147e6959c97 100644 ---- a/grub-core/Makefile.am -+++ b/grub-core/Makefile.am -@@ -246,7 +246,9 @@ KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/video_fb.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/gfxterm.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/font.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/bufio.h -+KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/fdt.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/arm/coreboot/kernel.h -+KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/fdtbus.h - endif - - if COND_arm_efi diff --git a/0086-Add-X-option-to-printf-functions.patch b/0023-Add-X-option-to-printf-functions.patch similarity index 95% rename from 0086-Add-X-option-to-printf-functions.patch rename to 0023-Add-X-option-to-printf-functions.patch index fa0405b6..4fd28fc1 100644 --- a/0086-Add-X-option-to-printf-functions.patch +++ b/0023-Add-X-option-to-printf-functions.patch @@ -1,4 +1,4 @@ -From 6237b1688124d6a72250b296e758ef2d59fde26f Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 27 Nov 2012 16:58:39 -0200 Subject: [PATCH] Add %X option to printf functions. diff --git a/0023-at_keyboard-Split-protocol-from-controller-code.patch b/0023-at_keyboard-Split-protocol-from-controller-code.patch deleted file mode 100644 index b680ba9c..00000000 --- a/0023-at_keyboard-Split-protocol-from-controller-code.patch +++ /dev/null @@ -1,1025 +0,0 @@ -From 216950a4eea1a1ead1c28eaca94e34ea2ef2ad19 Mon Sep 17 00:00:00 2001 -From: Vladimir Serbinenko -Date: Mon, 8 May 2017 21:41:22 +0200 -Subject: [PATCH] at_keyboard: Split protocol from controller code. - -On vexpress controller is different but protocol is the same, so reuse the -code. ---- - grub-core/Makefile.core.def | 3 + - grub-core/term/at_keyboard.c | 428 +++---------------------------------------- - grub-core/term/ps2.c | 387 ++++++++++++++++++++++++++++++++++++++ - include/grub/at_keyboard.h | 4 - - include/grub/ps2.h | 43 +++++ - 5 files changed, 463 insertions(+), 402 deletions(-) - create mode 100644 grub-core/term/ps2.c - create mode 100644 include/grub/ps2.h - -diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 77d0b019eb2..6ade6e95057 100644 ---- a/grub-core/Makefile.core.def -+++ b/grub-core/Makefile.core.def -@@ -251,6 +251,7 @@ kernel = { - mips_qemu_mips = term/ns8250.c; - mips_qemu_mips = term/serial.c; - mips_qemu_mips = term/at_keyboard.c; -+ mips_qemu_mips = term/ps2.c; - mips_qemu_mips = commands/boot.c; - mips_qemu_mips = commands/keylayouts.c; - mips_qemu_mips = term/i386/pc/vga_text.c; -@@ -266,6 +267,7 @@ kernel = { - mips_loongson = bus/pci.c; - mips_loongson = kern/mips/loongson/init.c; - mips_loongson = term/at_keyboard.c; -+ mips_loongson = term/ps2.c; - mips_loongson = commands/boot.c; - mips_loongson = term/serial.c; - mips_loongson = video/sm712.c; -@@ -1887,6 +1889,7 @@ module = { - module = { - name = at_keyboard; - common = term/at_keyboard.c; -+ common = term/ps2.c; - enable = x86; - }; - -diff --git a/grub-core/term/at_keyboard.c b/grub-core/term/at_keyboard.c -index b4ea9ff7e63..3ab4e205f40 100644 ---- a/grub-core/term/at_keyboard.c -+++ b/grub-core/term/at_keyboard.c -@@ -22,212 +22,21 @@ - #include - #include - #include --#include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - --static short at_keyboard_status = 0; --static int e0_received = 0; --static int f0_received = 0; -- --static grub_uint8_t led_status; -- --#define KEYBOARD_LED_SCROLL (1 << 0) --#define KEYBOARD_LED_NUM (1 << 1) --#define KEYBOARD_LED_CAPS (1 << 2) -- - static grub_uint8_t grub_keyboard_controller_orig; - static grub_uint8_t grub_keyboard_orig_set; --static grub_uint8_t current_set; -- --static void --grub_keyboard_controller_init (void); -- --static const grub_uint8_t set1_mapping[128] = -- { -- /* 0x00 */ 0 /* Unused */, GRUB_KEYBOARD_KEY_ESCAPE, -- /* 0x02 */ GRUB_KEYBOARD_KEY_1, GRUB_KEYBOARD_KEY_2, -- /* 0x04 */ GRUB_KEYBOARD_KEY_3, GRUB_KEYBOARD_KEY_4, -- /* 0x06 */ GRUB_KEYBOARD_KEY_5, GRUB_KEYBOARD_KEY_6, -- /* 0x08 */ GRUB_KEYBOARD_KEY_7, GRUB_KEYBOARD_KEY_8, -- /* 0x0a */ GRUB_KEYBOARD_KEY_9, GRUB_KEYBOARD_KEY_0, -- /* 0x0c */ GRUB_KEYBOARD_KEY_DASH, GRUB_KEYBOARD_KEY_EQUAL, -- /* 0x0e */ GRUB_KEYBOARD_KEY_BACKSPACE, GRUB_KEYBOARD_KEY_TAB, -- /* 0x10 */ GRUB_KEYBOARD_KEY_Q, GRUB_KEYBOARD_KEY_W, -- /* 0x12 */ GRUB_KEYBOARD_KEY_E, GRUB_KEYBOARD_KEY_R, -- /* 0x14 */ GRUB_KEYBOARD_KEY_T, GRUB_KEYBOARD_KEY_Y, -- /* 0x16 */ GRUB_KEYBOARD_KEY_U, GRUB_KEYBOARD_KEY_I, -- /* 0x18 */ GRUB_KEYBOARD_KEY_O, GRUB_KEYBOARD_KEY_P, -- /* 0x1a */ GRUB_KEYBOARD_KEY_LBRACKET, GRUB_KEYBOARD_KEY_RBRACKET, -- /* 0x1c */ GRUB_KEYBOARD_KEY_ENTER, GRUB_KEYBOARD_KEY_LEFT_CTRL, -- /* 0x1e */ GRUB_KEYBOARD_KEY_A, GRUB_KEYBOARD_KEY_S, -- /* 0x20 */ GRUB_KEYBOARD_KEY_D, GRUB_KEYBOARD_KEY_F, -- /* 0x22 */ GRUB_KEYBOARD_KEY_G, GRUB_KEYBOARD_KEY_H, -- /* 0x24 */ GRUB_KEYBOARD_KEY_J, GRUB_KEYBOARD_KEY_K, -- /* 0x26 */ GRUB_KEYBOARD_KEY_L, GRUB_KEYBOARD_KEY_SEMICOLON, -- /* 0x28 */ GRUB_KEYBOARD_KEY_DQUOTE, GRUB_KEYBOARD_KEY_RQUOTE, -- /* 0x2a */ GRUB_KEYBOARD_KEY_LEFT_SHIFT, GRUB_KEYBOARD_KEY_BACKSLASH, -- /* 0x2c */ GRUB_KEYBOARD_KEY_Z, GRUB_KEYBOARD_KEY_X, -- /* 0x2e */ GRUB_KEYBOARD_KEY_C, GRUB_KEYBOARD_KEY_V, -- /* 0x30 */ GRUB_KEYBOARD_KEY_B, GRUB_KEYBOARD_KEY_N, -- /* 0x32 */ GRUB_KEYBOARD_KEY_M, GRUB_KEYBOARD_KEY_COMMA, -- /* 0x34 */ GRUB_KEYBOARD_KEY_DOT, GRUB_KEYBOARD_KEY_SLASH, -- /* 0x36 */ GRUB_KEYBOARD_KEY_RIGHT_SHIFT, GRUB_KEYBOARD_KEY_NUMMUL, -- /* 0x38 */ GRUB_KEYBOARD_KEY_LEFT_ALT, GRUB_KEYBOARD_KEY_SPACE, -- /* 0x3a */ GRUB_KEYBOARD_KEY_CAPS_LOCK, GRUB_KEYBOARD_KEY_F1, -- /* 0x3c */ GRUB_KEYBOARD_KEY_F2, GRUB_KEYBOARD_KEY_F3, -- /* 0x3e */ GRUB_KEYBOARD_KEY_F4, GRUB_KEYBOARD_KEY_F5, -- /* 0x40 */ GRUB_KEYBOARD_KEY_F6, GRUB_KEYBOARD_KEY_F7, -- /* 0x42 */ GRUB_KEYBOARD_KEY_F8, GRUB_KEYBOARD_KEY_F9, -- /* 0x44 */ GRUB_KEYBOARD_KEY_F10, GRUB_KEYBOARD_KEY_NUM_LOCK, -- /* 0x46 */ GRUB_KEYBOARD_KEY_SCROLL_LOCK, GRUB_KEYBOARD_KEY_NUM7, -- /* 0x48 */ GRUB_KEYBOARD_KEY_NUM8, GRUB_KEYBOARD_KEY_NUM9, -- /* 0x4a */ GRUB_KEYBOARD_KEY_NUMMINUS, GRUB_KEYBOARD_KEY_NUM4, -- /* 0x4c */ GRUB_KEYBOARD_KEY_NUM5, GRUB_KEYBOARD_KEY_NUM6, -- /* 0x4e */ GRUB_KEYBOARD_KEY_NUMPLUS, GRUB_KEYBOARD_KEY_NUM1, -- /* 0x50 */ GRUB_KEYBOARD_KEY_NUM2, GRUB_KEYBOARD_KEY_NUM3, -- /* 0x52 */ GRUB_KEYBOARD_KEY_NUM0, GRUB_KEYBOARD_KEY_NUMDOT, -- /* 0x54 */ 0, 0, -- /* 0x56 */ GRUB_KEYBOARD_KEY_102ND, GRUB_KEYBOARD_KEY_F11, -- /* 0x58 */ GRUB_KEYBOARD_KEY_F12, 0, -- /* 0x5a */ 0, 0, -- /* 0x5c */ 0, 0, -- /* 0x5e */ 0, 0, -- /* 0x60 */ 0, 0, -- /* 0x62 */ 0, 0, -- /* OLPC keys. Just mapped to normal keys. */ -- /* 0x64 */ 0, GRUB_KEYBOARD_KEY_UP, -- /* 0x66 */ GRUB_KEYBOARD_KEY_DOWN, GRUB_KEYBOARD_KEY_LEFT, -- /* 0x68 */ GRUB_KEYBOARD_KEY_RIGHT, 0, -- /* 0x6a */ 0, 0, -- /* 0x6c */ 0, 0, -- /* 0x6e */ 0, 0, -- /* 0x70 */ 0, 0, -- /* 0x72 */ 0, GRUB_KEYBOARD_KEY_JP_RO, -- /* 0x74 */ 0, 0, -- /* 0x76 */ 0, 0, -- /* 0x78 */ 0, 0, -- /* 0x7a */ 0, 0, -- /* 0x7c */ 0, GRUB_KEYBOARD_KEY_JP_YEN, -- /* 0x7e */ GRUB_KEYBOARD_KEY_KPCOMMA -- }; -- --static const struct --{ -- grub_uint8_t from, to; --} set1_e0_mapping[] = -- { -- {0x1c, GRUB_KEYBOARD_KEY_NUMENTER}, -- {0x1d, GRUB_KEYBOARD_KEY_RIGHT_CTRL}, -- {0x35, GRUB_KEYBOARD_KEY_NUMSLASH }, -- {0x38, GRUB_KEYBOARD_KEY_RIGHT_ALT}, -- {0x47, GRUB_KEYBOARD_KEY_HOME}, -- {0x48, GRUB_KEYBOARD_KEY_UP}, -- {0x49, GRUB_KEYBOARD_KEY_PPAGE}, -- {0x4b, GRUB_KEYBOARD_KEY_LEFT}, -- {0x4d, GRUB_KEYBOARD_KEY_RIGHT}, -- {0x4f, GRUB_KEYBOARD_KEY_END}, -- {0x50, GRUB_KEYBOARD_KEY_DOWN}, -- {0x51, GRUB_KEYBOARD_KEY_NPAGE}, -- {0x52, GRUB_KEYBOARD_KEY_INSERT}, -- {0x53, GRUB_KEYBOARD_KEY_DELETE}, -- }; -- --static const grub_uint8_t set2_mapping[256] = -- { -- /* 0x00 */ 0, GRUB_KEYBOARD_KEY_F9, -- /* 0x02 */ 0, GRUB_KEYBOARD_KEY_F5, -- /* 0x04 */ GRUB_KEYBOARD_KEY_F3, GRUB_KEYBOARD_KEY_F1, -- /* 0x06 */ GRUB_KEYBOARD_KEY_F2, GRUB_KEYBOARD_KEY_F12, -- /* 0x08 */ 0, GRUB_KEYBOARD_KEY_F10, -- /* 0x0a */ GRUB_KEYBOARD_KEY_F8, GRUB_KEYBOARD_KEY_F6, -- /* 0x0c */ GRUB_KEYBOARD_KEY_F4, GRUB_KEYBOARD_KEY_TAB, -- /* 0x0e */ GRUB_KEYBOARD_KEY_RQUOTE, 0, -- /* 0x10 */ 0, GRUB_KEYBOARD_KEY_LEFT_ALT, -- /* 0x12 */ GRUB_KEYBOARD_KEY_LEFT_SHIFT, 0, -- /* 0x14 */ GRUB_KEYBOARD_KEY_LEFT_CTRL, GRUB_KEYBOARD_KEY_Q, -- /* 0x16 */ GRUB_KEYBOARD_KEY_1, 0, -- /* 0x18 */ 0, 0, -- /* 0x1a */ GRUB_KEYBOARD_KEY_Z, GRUB_KEYBOARD_KEY_S, -- /* 0x1c */ GRUB_KEYBOARD_KEY_A, GRUB_KEYBOARD_KEY_W, -- /* 0x1e */ GRUB_KEYBOARD_KEY_2, 0, -- /* 0x20 */ 0, GRUB_KEYBOARD_KEY_C, -- /* 0x22 */ GRUB_KEYBOARD_KEY_X, GRUB_KEYBOARD_KEY_D, -- /* 0x24 */ GRUB_KEYBOARD_KEY_E, GRUB_KEYBOARD_KEY_4, -- /* 0x26 */ GRUB_KEYBOARD_KEY_3, 0, -- /* 0x28 */ 0, GRUB_KEYBOARD_KEY_SPACE, -- /* 0x2a */ GRUB_KEYBOARD_KEY_V, GRUB_KEYBOARD_KEY_F, -- /* 0x2c */ GRUB_KEYBOARD_KEY_T, GRUB_KEYBOARD_KEY_R, -- /* 0x2e */ GRUB_KEYBOARD_KEY_5, 0, -- /* 0x30 */ 0, GRUB_KEYBOARD_KEY_N, -- /* 0x32 */ GRUB_KEYBOARD_KEY_B, GRUB_KEYBOARD_KEY_H, -- /* 0x34 */ GRUB_KEYBOARD_KEY_G, GRUB_KEYBOARD_KEY_Y, -- /* 0x36 */ GRUB_KEYBOARD_KEY_6, 0, -- /* 0x38 */ 0, 0, -- /* 0x3a */ GRUB_KEYBOARD_KEY_M, GRUB_KEYBOARD_KEY_J, -- /* 0x3c */ GRUB_KEYBOARD_KEY_U, GRUB_KEYBOARD_KEY_7, -- /* 0x3e */ GRUB_KEYBOARD_KEY_8, 0, -- /* 0x40 */ 0, GRUB_KEYBOARD_KEY_COMMA, -- /* 0x42 */ GRUB_KEYBOARD_KEY_K, GRUB_KEYBOARD_KEY_I, -- /* 0x44 */ GRUB_KEYBOARD_KEY_O, GRUB_KEYBOARD_KEY_0, -- /* 0x46 */ GRUB_KEYBOARD_KEY_9, 0, -- /* 0x48 */ 0, GRUB_KEYBOARD_KEY_DOT, -- /* 0x4a */ GRUB_KEYBOARD_KEY_SLASH, GRUB_KEYBOARD_KEY_L, -- /* 0x4c */ GRUB_KEYBOARD_KEY_SEMICOLON, GRUB_KEYBOARD_KEY_P, -- /* 0x4e */ GRUB_KEYBOARD_KEY_DASH, 0, -- /* 0x50 */ 0, GRUB_KEYBOARD_KEY_JP_RO, -- /* 0x52 */ GRUB_KEYBOARD_KEY_DQUOTE, 0, -- /* 0x54 */ GRUB_KEYBOARD_KEY_LBRACKET, GRUB_KEYBOARD_KEY_EQUAL, -- /* 0x56 */ 0, 0, -- /* 0x58 */ GRUB_KEYBOARD_KEY_CAPS_LOCK, GRUB_KEYBOARD_KEY_RIGHT_SHIFT, -- /* 0x5a */ GRUB_KEYBOARD_KEY_ENTER, GRUB_KEYBOARD_KEY_RBRACKET, -- /* 0x5c */ 0, GRUB_KEYBOARD_KEY_BACKSLASH, -- /* 0x5e */ 0, 0, -- /* 0x60 */ 0, GRUB_KEYBOARD_KEY_102ND, -- /* 0x62 */ 0, 0, -- /* 0x64 */ 0, 0, -- /* 0x66 */ GRUB_KEYBOARD_KEY_BACKSPACE, 0, -- /* 0x68 */ 0, GRUB_KEYBOARD_KEY_NUM1, -- /* 0x6a */ GRUB_KEYBOARD_KEY_JP_YEN, GRUB_KEYBOARD_KEY_NUM4, -- /* 0x6c */ GRUB_KEYBOARD_KEY_NUM7, GRUB_KEYBOARD_KEY_KPCOMMA, -- /* 0x6e */ 0, 0, -- /* 0x70 */ GRUB_KEYBOARD_KEY_NUM0, GRUB_KEYBOARD_KEY_NUMDOT, -- /* 0x72 */ GRUB_KEYBOARD_KEY_NUM2, GRUB_KEYBOARD_KEY_NUM5, -- /* 0x74 */ GRUB_KEYBOARD_KEY_NUM6, GRUB_KEYBOARD_KEY_NUM8, -- /* 0x76 */ GRUB_KEYBOARD_KEY_ESCAPE, GRUB_KEYBOARD_KEY_NUM_LOCK, -- /* 0x78 */ GRUB_KEYBOARD_KEY_F11, GRUB_KEYBOARD_KEY_NUMPLUS, -- /* 0x7a */ GRUB_KEYBOARD_KEY_NUM3, GRUB_KEYBOARD_KEY_NUMMINUS, -- /* 0x7c */ GRUB_KEYBOARD_KEY_NUMMUL, GRUB_KEYBOARD_KEY_NUM9, -- /* 0x7e */ GRUB_KEYBOARD_KEY_SCROLL_LOCK, 0, -- /* 0x80 */ 0, 0, -- /* 0x82 */ 0, GRUB_KEYBOARD_KEY_F7, -- }; -- --static const struct --{ -- grub_uint8_t from, to; --} set2_e0_mapping[] = -- { -- {0x11, GRUB_KEYBOARD_KEY_RIGHT_ALT}, -- {0x14, GRUB_KEYBOARD_KEY_RIGHT_CTRL}, -- {0x4a, GRUB_KEYBOARD_KEY_NUMSLASH}, -- {0x5a, GRUB_KEYBOARD_KEY_NUMENTER}, -- {0x69, GRUB_KEYBOARD_KEY_END}, -- {0x6b, GRUB_KEYBOARD_KEY_LEFT}, -- {0x6c, GRUB_KEYBOARD_KEY_HOME}, -- {0x70, GRUB_KEYBOARD_KEY_INSERT}, -- {0x71, GRUB_KEYBOARD_KEY_DELETE}, -- {0x72, GRUB_KEYBOARD_KEY_DOWN}, -- {0x74, GRUB_KEYBOARD_KEY_RIGHT}, -- {0x75, GRUB_KEYBOARD_KEY_UP}, -- {0x7a, GRUB_KEYBOARD_KEY_NPAGE}, -- {0x7d, GRUB_KEYBOARD_KEY_PPAGE}, -- }; -+struct grub_ps2_state ps2_state; - - static int ping_sent; - -+static void -+grub_keyboard_controller_init (void); -+ - static void - keyboard_controller_wait_until_ready (void) - { -@@ -350,12 +159,12 @@ set_scancodes (void) - if (!grub_keyboard_orig_set) - { - grub_dprintf ("atkeyb", "No sets support assumed\n"); -- current_set = 1; -+ ps2_state.current_set = 1; - return; - } - - #if !USE_SCANCODE_SET -- current_set = 1; -+ ps2_state.current_set = 1; - return; - #else - -@@ -363,15 +172,15 @@ set_scancodes (void) - & ~KEYBOARD_AT_TRANSLATE); - - write_mode (2); -- current_set = query_mode (); -- grub_dprintf ("atkeyb", "returned set %d\n", current_set); -- if (current_set == 2) -+ ps2_state.current_set = query_mode (); -+ grub_dprintf ("atkeyb", "returned set %d\n", ps2_state.current_set); -+ if (ps2_state.current_set == 2) - return; - - write_mode (1); -- current_set = query_mode (); -- grub_dprintf ("atkeyb", "returned set %d\n", current_set); -- if (current_set == 1) -+ ps2_state.current_set = query_mode (); -+ grub_dprintf ("atkeyb", "returned set %d\n", ps2_state.current_set); -+ if (ps2_state.current_set == 1) - return; - grub_dprintf ("atkeyb", "no supported scancode set found\n"); - #endif -@@ -386,164 +195,10 @@ keyboard_controller_led (grub_uint8_t leds) - grub_outb (leds & 0x7, KEYBOARD_REG_DATA); - } - --static int --fetch_key (int *is_break) --{ -- int was_ext = 0; -- grub_uint8_t at_key; -- int ret = 0; -- -- if (! KEYBOARD_ISREADY (grub_inb (KEYBOARD_REG_STATUS))) -- return -1; -- at_key = grub_inb (KEYBOARD_REG_DATA); -- /* May happen if no keyboard is connected. Just ignore this. */ -- if (at_key == 0xff) -- return -1; -- if (at_key == 0xe0) -- { -- e0_received = 1; -- return -1; -- } -- -- if ((current_set == 2 || current_set == 3) && at_key == 0xf0) -- { -- f0_received = 1; -- return -1; -- } -- -- /* Setting LEDs may generate ACKs. */ -- if (at_key == GRUB_AT_ACK) -- return -1; -- -- was_ext = e0_received; -- e0_received = 0; -- -- switch (current_set) -- { -- case 1: -- *is_break = !!(at_key & 0x80); -- if (!was_ext) -- ret = set1_mapping[at_key & 0x7f]; -- else -- { -- unsigned i; -- for (i = 0; i < ARRAY_SIZE (set1_e0_mapping); i++) -- if (set1_e0_mapping[i].from == (at_key & 0x7f)) -- { -- ret = set1_e0_mapping[i].to; -- break; -- } -- } -- break; -- case 2: -- *is_break = f0_received; -- f0_received = 0; -- if (!was_ext) -- ret = set2_mapping[at_key]; -- else -- { -- unsigned i; -- for (i = 0; i < ARRAY_SIZE (set2_e0_mapping); i++) -- if (set2_e0_mapping[i].from == at_key) -- { -- ret = set2_e0_mapping[i].to; -- break; -- } -- } -- break; -- default: -- return -1; -- } -- if (!ret) -- { -- if (was_ext) -- grub_dprintf ("atkeyb", "Unknown key 0xe0+0x%02x from set %d\n", -- at_key, current_set); -- else -- grub_dprintf ("atkeyb", "Unknown key 0x%02x from set %d\n", -- at_key, current_set); -- return -1; -- } -- return ret; --} -- --/* FIXME: This should become an interrupt service routine. For now -- it's just used to catch events from control keys. */ --static int --grub_keyboard_isr (grub_keyboard_key_t key, int is_break) --{ -- if (!is_break) -- switch (key) -- { -- case GRUB_KEYBOARD_KEY_LEFT_SHIFT: -- at_keyboard_status |= GRUB_TERM_STATUS_LSHIFT; -- return 1; -- case GRUB_KEYBOARD_KEY_RIGHT_SHIFT: -- at_keyboard_status |= GRUB_TERM_STATUS_RSHIFT; -- return 1; -- case GRUB_KEYBOARD_KEY_LEFT_CTRL: -- at_keyboard_status |= GRUB_TERM_STATUS_LCTRL; -- return 1; -- case GRUB_KEYBOARD_KEY_RIGHT_CTRL: -- at_keyboard_status |= GRUB_TERM_STATUS_RCTRL; -- return 1; -- case GRUB_KEYBOARD_KEY_RIGHT_ALT: -- at_keyboard_status |= GRUB_TERM_STATUS_RALT; -- return 1; -- case GRUB_KEYBOARD_KEY_LEFT_ALT: -- at_keyboard_status |= GRUB_TERM_STATUS_LALT; -- return 1; -- default: -- return 0; -- } -- else -- switch (key) -- { -- case GRUB_KEYBOARD_KEY_LEFT_SHIFT: -- at_keyboard_status &= ~GRUB_TERM_STATUS_LSHIFT; -- return 1; -- case GRUB_KEYBOARD_KEY_RIGHT_SHIFT: -- at_keyboard_status &= ~GRUB_TERM_STATUS_RSHIFT; -- return 1; -- case GRUB_KEYBOARD_KEY_LEFT_CTRL: -- at_keyboard_status &= ~GRUB_TERM_STATUS_LCTRL; -- return 1; -- case GRUB_KEYBOARD_KEY_RIGHT_CTRL: -- at_keyboard_status &= ~GRUB_TERM_STATUS_RCTRL; -- return 1; -- case GRUB_KEYBOARD_KEY_RIGHT_ALT: -- at_keyboard_status &= ~GRUB_TERM_STATUS_RALT; -- return 1; -- case GRUB_KEYBOARD_KEY_LEFT_ALT: -- at_keyboard_status &= ~GRUB_TERM_STATUS_LALT; -- return 1; -- default: -- return 0; -- } --} -- --/* If there is a raw key pending, return it; otherwise return -1. */ --static int --grub_keyboard_getkey (void) --{ -- int key; -- int is_break = 0; -- -- key = fetch_key (&is_break); -- if (key == -1) -- return -1; -- -- if (grub_keyboard_isr (key, is_break)) -- return -1; -- if (is_break) -- return -1; -- return key; --} -- - int - grub_at_keyboard_is_alive (void) - { -- if (current_set != 0) -+ if (ps2_state.current_set != 0) - return 1; - if (ping_sent - && KEYBOARD_COMMAND_ISREADY (grub_inb (KEYBOARD_REG_STATUS)) -@@ -566,51 +221,28 @@ grub_at_keyboard_is_alive (void) - static int - grub_at_keyboard_getkey (struct grub_term_input *term __attribute__ ((unused))) - { -- int code; -+ grub_uint8_t at_key; -+ int ret; -+ grub_uint8_t old_led; - - if (!grub_at_keyboard_is_alive ()) - return GRUB_TERM_NO_KEY; - -- code = grub_keyboard_getkey (); -- if (code == -1) -- return GRUB_TERM_NO_KEY; --#ifdef DEBUG_AT_KEYBOARD -- grub_dprintf ("atkeyb", "Detected key 0x%x\n", code); --#endif -- switch (code) -- { -- case GRUB_KEYBOARD_KEY_CAPS_LOCK: -- at_keyboard_status ^= GRUB_TERM_STATUS_CAPS; -- led_status ^= KEYBOARD_LED_CAPS; -- keyboard_controller_led (led_status); -+ if (! KEYBOARD_ISREADY (grub_inb (KEYBOARD_REG_STATUS))) -+ return -1; -+ at_key = grub_inb (KEYBOARD_REG_DATA); -+ old_led = ps2_state.led_status; - --#ifdef DEBUG_AT_KEYBOARD -- grub_dprintf ("atkeyb", "caps_lock = %d\n", !!(at_keyboard_status & GRUB_KEYBOARD_STATUS_CAPS_LOCK)); --#endif -- return GRUB_TERM_NO_KEY; -- case GRUB_KEYBOARD_KEY_NUM_LOCK: -- at_keyboard_status ^= GRUB_TERM_STATUS_NUM; -- led_status ^= KEYBOARD_LED_NUM; -- keyboard_controller_led (led_status); -- --#ifdef DEBUG_AT_KEYBOARD -- grub_dprintf ("atkeyb", "num_lock = %d\n", !!(at_keyboard_status & GRUB_KEYBOARD_STATUS_NUM_LOCK)); --#endif -- return GRUB_TERM_NO_KEY; -- case GRUB_KEYBOARD_KEY_SCROLL_LOCK: -- at_keyboard_status ^= GRUB_TERM_STATUS_SCROLL; -- led_status ^= KEYBOARD_LED_SCROLL; -- keyboard_controller_led (led_status); -- return GRUB_TERM_NO_KEY; -- default: -- return grub_term_map_key (code, at_keyboard_status); -- } -+ ret = grub_ps2_process_incoming_byte (&ps2_state, at_key); -+ if (old_led != ps2_state.led_status) -+ keyboard_controller_led (ps2_state.led_status); -+ return ret; - } - - static void - grub_keyboard_controller_init (void) - { -- at_keyboard_status = 0; -+ ps2_state.at_keyboard_status = 0; - /* Drain input buffer. */ - while (1) - { -@@ -632,13 +264,13 @@ grub_keyboard_controller_init (void) - grub_keyboard_orig_set = query_mode (); - #endif - set_scancodes (); -- keyboard_controller_led (led_status); -+ keyboard_controller_led (ps2_state.led_status); - } - - static grub_err_t - grub_keyboard_controller_fini (struct grub_term_input *term __attribute__ ((unused))) - { -- if (current_set == 0) -+ if (ps2_state.current_set == 0) - return GRUB_ERR_NONE; - if (grub_keyboard_orig_set) - write_mode (grub_keyboard_orig_set); -@@ -655,7 +287,7 @@ grub_at_fini_hw (int noreturn __attribute__ ((unused))) - static grub_err_t - grub_at_restore_hw (void) - { -- if (current_set == 0) -+ if (ps2_state.current_set == 0) - return GRUB_ERR_NONE; - - /* Drain input buffer. */ -@@ -668,7 +300,7 @@ grub_at_restore_hw (void) - grub_inb (KEYBOARD_REG_DATA); - } - set_scancodes (); -- keyboard_controller_led (led_status); -+ keyboard_controller_led (ps2_state.led_status); - - return GRUB_ERR_NONE; - } -diff --git a/grub-core/term/ps2.c b/grub-core/term/ps2.c -new file mode 100644 -index 00000000000..7ae4e9f2f8c ---- /dev/null -+++ b/grub-core/term/ps2.c -@@ -0,0 +1,387 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2007,2008,2009 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+ -+#define KEYBOARD_LED_SCROLL (1 << 0) -+#define KEYBOARD_LED_NUM (1 << 1) -+#define KEYBOARD_LED_CAPS (1 << 2) -+ -+static const grub_uint8_t set1_mapping[128] = -+ { -+ /* 0x00 */ 0 /* Unused */, GRUB_KEYBOARD_KEY_ESCAPE, -+ /* 0x02 */ GRUB_KEYBOARD_KEY_1, GRUB_KEYBOARD_KEY_2, -+ /* 0x04 */ GRUB_KEYBOARD_KEY_3, GRUB_KEYBOARD_KEY_4, -+ /* 0x06 */ GRUB_KEYBOARD_KEY_5, GRUB_KEYBOARD_KEY_6, -+ /* 0x08 */ GRUB_KEYBOARD_KEY_7, GRUB_KEYBOARD_KEY_8, -+ /* 0x0a */ GRUB_KEYBOARD_KEY_9, GRUB_KEYBOARD_KEY_0, -+ /* 0x0c */ GRUB_KEYBOARD_KEY_DASH, GRUB_KEYBOARD_KEY_EQUAL, -+ /* 0x0e */ GRUB_KEYBOARD_KEY_BACKSPACE, GRUB_KEYBOARD_KEY_TAB, -+ /* 0x10 */ GRUB_KEYBOARD_KEY_Q, GRUB_KEYBOARD_KEY_W, -+ /* 0x12 */ GRUB_KEYBOARD_KEY_E, GRUB_KEYBOARD_KEY_R, -+ /* 0x14 */ GRUB_KEYBOARD_KEY_T, GRUB_KEYBOARD_KEY_Y, -+ /* 0x16 */ GRUB_KEYBOARD_KEY_U, GRUB_KEYBOARD_KEY_I, -+ /* 0x18 */ GRUB_KEYBOARD_KEY_O, GRUB_KEYBOARD_KEY_P, -+ /* 0x1a */ GRUB_KEYBOARD_KEY_LBRACKET, GRUB_KEYBOARD_KEY_RBRACKET, -+ /* 0x1c */ GRUB_KEYBOARD_KEY_ENTER, GRUB_KEYBOARD_KEY_LEFT_CTRL, -+ /* 0x1e */ GRUB_KEYBOARD_KEY_A, GRUB_KEYBOARD_KEY_S, -+ /* 0x20 */ GRUB_KEYBOARD_KEY_D, GRUB_KEYBOARD_KEY_F, -+ /* 0x22 */ GRUB_KEYBOARD_KEY_G, GRUB_KEYBOARD_KEY_H, -+ /* 0x24 */ GRUB_KEYBOARD_KEY_J, GRUB_KEYBOARD_KEY_K, -+ /* 0x26 */ GRUB_KEYBOARD_KEY_L, GRUB_KEYBOARD_KEY_SEMICOLON, -+ /* 0x28 */ GRUB_KEYBOARD_KEY_DQUOTE, GRUB_KEYBOARD_KEY_RQUOTE, -+ /* 0x2a */ GRUB_KEYBOARD_KEY_LEFT_SHIFT, GRUB_KEYBOARD_KEY_BACKSLASH, -+ /* 0x2c */ GRUB_KEYBOARD_KEY_Z, GRUB_KEYBOARD_KEY_X, -+ /* 0x2e */ GRUB_KEYBOARD_KEY_C, GRUB_KEYBOARD_KEY_V, -+ /* 0x30 */ GRUB_KEYBOARD_KEY_B, GRUB_KEYBOARD_KEY_N, -+ /* 0x32 */ GRUB_KEYBOARD_KEY_M, GRUB_KEYBOARD_KEY_COMMA, -+ /* 0x34 */ GRUB_KEYBOARD_KEY_DOT, GRUB_KEYBOARD_KEY_SLASH, -+ /* 0x36 */ GRUB_KEYBOARD_KEY_RIGHT_SHIFT, GRUB_KEYBOARD_KEY_NUMMUL, -+ /* 0x38 */ GRUB_KEYBOARD_KEY_LEFT_ALT, GRUB_KEYBOARD_KEY_SPACE, -+ /* 0x3a */ GRUB_KEYBOARD_KEY_CAPS_LOCK, GRUB_KEYBOARD_KEY_F1, -+ /* 0x3c */ GRUB_KEYBOARD_KEY_F2, GRUB_KEYBOARD_KEY_F3, -+ /* 0x3e */ GRUB_KEYBOARD_KEY_F4, GRUB_KEYBOARD_KEY_F5, -+ /* 0x40 */ GRUB_KEYBOARD_KEY_F6, GRUB_KEYBOARD_KEY_F7, -+ /* 0x42 */ GRUB_KEYBOARD_KEY_F8, GRUB_KEYBOARD_KEY_F9, -+ /* 0x44 */ GRUB_KEYBOARD_KEY_F10, GRUB_KEYBOARD_KEY_NUM_LOCK, -+ /* 0x46 */ GRUB_KEYBOARD_KEY_SCROLL_LOCK, GRUB_KEYBOARD_KEY_NUM7, -+ /* 0x48 */ GRUB_KEYBOARD_KEY_NUM8, GRUB_KEYBOARD_KEY_NUM9, -+ /* 0x4a */ GRUB_KEYBOARD_KEY_NUMMINUS, GRUB_KEYBOARD_KEY_NUM4, -+ /* 0x4c */ GRUB_KEYBOARD_KEY_NUM5, GRUB_KEYBOARD_KEY_NUM6, -+ /* 0x4e */ GRUB_KEYBOARD_KEY_NUMPLUS, GRUB_KEYBOARD_KEY_NUM1, -+ /* 0x50 */ GRUB_KEYBOARD_KEY_NUM2, GRUB_KEYBOARD_KEY_NUM3, -+ /* 0x52 */ GRUB_KEYBOARD_KEY_NUM0, GRUB_KEYBOARD_KEY_NUMDOT, -+ /* 0x54 */ 0, 0, -+ /* 0x56 */ GRUB_KEYBOARD_KEY_102ND, GRUB_KEYBOARD_KEY_F11, -+ /* 0x58 */ GRUB_KEYBOARD_KEY_F12, 0, -+ /* 0x5a */ 0, 0, -+ /* 0x5c */ 0, 0, -+ /* 0x5e */ 0, 0, -+ /* 0x60 */ 0, 0, -+ /* 0x62 */ 0, 0, -+ /* OLPC keys. Just mapped to normal keys. */ -+ /* 0x64 */ 0, GRUB_KEYBOARD_KEY_UP, -+ /* 0x66 */ GRUB_KEYBOARD_KEY_DOWN, GRUB_KEYBOARD_KEY_LEFT, -+ /* 0x68 */ GRUB_KEYBOARD_KEY_RIGHT, 0, -+ /* 0x6a */ 0, 0, -+ /* 0x6c */ 0, 0, -+ /* 0x6e */ 0, 0, -+ /* 0x70 */ 0, 0, -+ /* 0x72 */ 0, GRUB_KEYBOARD_KEY_JP_RO, -+ /* 0x74 */ 0, 0, -+ /* 0x76 */ 0, 0, -+ /* 0x78 */ 0, 0, -+ /* 0x7a */ 0, 0, -+ /* 0x7c */ 0, GRUB_KEYBOARD_KEY_JP_YEN, -+ /* 0x7e */ GRUB_KEYBOARD_KEY_KPCOMMA -+ }; -+ -+static const struct -+{ -+ grub_uint8_t from, to; -+} set1_e0_mapping[] = -+ { -+ {0x1c, GRUB_KEYBOARD_KEY_NUMENTER}, -+ {0x1d, GRUB_KEYBOARD_KEY_RIGHT_CTRL}, -+ {0x35, GRUB_KEYBOARD_KEY_NUMSLASH }, -+ {0x38, GRUB_KEYBOARD_KEY_RIGHT_ALT}, -+ {0x47, GRUB_KEYBOARD_KEY_HOME}, -+ {0x48, GRUB_KEYBOARD_KEY_UP}, -+ {0x49, GRUB_KEYBOARD_KEY_PPAGE}, -+ {0x4b, GRUB_KEYBOARD_KEY_LEFT}, -+ {0x4d, GRUB_KEYBOARD_KEY_RIGHT}, -+ {0x4f, GRUB_KEYBOARD_KEY_END}, -+ {0x50, GRUB_KEYBOARD_KEY_DOWN}, -+ {0x51, GRUB_KEYBOARD_KEY_NPAGE}, -+ {0x52, GRUB_KEYBOARD_KEY_INSERT}, -+ {0x53, GRUB_KEYBOARD_KEY_DELETE}, -+ }; -+ -+static const grub_uint8_t set2_mapping[256] = -+ { -+ /* 0x00 */ 0, GRUB_KEYBOARD_KEY_F9, -+ /* 0x02 */ 0, GRUB_KEYBOARD_KEY_F5, -+ /* 0x04 */ GRUB_KEYBOARD_KEY_F3, GRUB_KEYBOARD_KEY_F1, -+ /* 0x06 */ GRUB_KEYBOARD_KEY_F2, GRUB_KEYBOARD_KEY_F12, -+ /* 0x08 */ 0, GRUB_KEYBOARD_KEY_F10, -+ /* 0x0a */ GRUB_KEYBOARD_KEY_F8, GRUB_KEYBOARD_KEY_F6, -+ /* 0x0c */ GRUB_KEYBOARD_KEY_F4, GRUB_KEYBOARD_KEY_TAB, -+ /* 0x0e */ GRUB_KEYBOARD_KEY_RQUOTE, 0, -+ /* 0x10 */ 0, GRUB_KEYBOARD_KEY_LEFT_ALT, -+ /* 0x12 */ GRUB_KEYBOARD_KEY_LEFT_SHIFT, 0, -+ /* 0x14 */ GRUB_KEYBOARD_KEY_LEFT_CTRL, GRUB_KEYBOARD_KEY_Q, -+ /* 0x16 */ GRUB_KEYBOARD_KEY_1, 0, -+ /* 0x18 */ 0, 0, -+ /* 0x1a */ GRUB_KEYBOARD_KEY_Z, GRUB_KEYBOARD_KEY_S, -+ /* 0x1c */ GRUB_KEYBOARD_KEY_A, GRUB_KEYBOARD_KEY_W, -+ /* 0x1e */ GRUB_KEYBOARD_KEY_2, 0, -+ /* 0x20 */ 0, GRUB_KEYBOARD_KEY_C, -+ /* 0x22 */ GRUB_KEYBOARD_KEY_X, GRUB_KEYBOARD_KEY_D, -+ /* 0x24 */ GRUB_KEYBOARD_KEY_E, GRUB_KEYBOARD_KEY_4, -+ /* 0x26 */ GRUB_KEYBOARD_KEY_3, 0, -+ /* 0x28 */ 0, GRUB_KEYBOARD_KEY_SPACE, -+ /* 0x2a */ GRUB_KEYBOARD_KEY_V, GRUB_KEYBOARD_KEY_F, -+ /* 0x2c */ GRUB_KEYBOARD_KEY_T, GRUB_KEYBOARD_KEY_R, -+ /* 0x2e */ GRUB_KEYBOARD_KEY_5, 0, -+ /* 0x30 */ 0, GRUB_KEYBOARD_KEY_N, -+ /* 0x32 */ GRUB_KEYBOARD_KEY_B, GRUB_KEYBOARD_KEY_H, -+ /* 0x34 */ GRUB_KEYBOARD_KEY_G, GRUB_KEYBOARD_KEY_Y, -+ /* 0x36 */ GRUB_KEYBOARD_KEY_6, 0, -+ /* 0x38 */ 0, 0, -+ /* 0x3a */ GRUB_KEYBOARD_KEY_M, GRUB_KEYBOARD_KEY_J, -+ /* 0x3c */ GRUB_KEYBOARD_KEY_U, GRUB_KEYBOARD_KEY_7, -+ /* 0x3e */ GRUB_KEYBOARD_KEY_8, 0, -+ /* 0x40 */ 0, GRUB_KEYBOARD_KEY_COMMA, -+ /* 0x42 */ GRUB_KEYBOARD_KEY_K, GRUB_KEYBOARD_KEY_I, -+ /* 0x44 */ GRUB_KEYBOARD_KEY_O, GRUB_KEYBOARD_KEY_0, -+ /* 0x46 */ GRUB_KEYBOARD_KEY_9, 0, -+ /* 0x48 */ 0, GRUB_KEYBOARD_KEY_DOT, -+ /* 0x4a */ GRUB_KEYBOARD_KEY_SLASH, GRUB_KEYBOARD_KEY_L, -+ /* 0x4c */ GRUB_KEYBOARD_KEY_SEMICOLON, GRUB_KEYBOARD_KEY_P, -+ /* 0x4e */ GRUB_KEYBOARD_KEY_DASH, 0, -+ /* 0x50 */ 0, GRUB_KEYBOARD_KEY_JP_RO, -+ /* 0x52 */ GRUB_KEYBOARD_KEY_DQUOTE, 0, -+ /* 0x54 */ GRUB_KEYBOARD_KEY_LBRACKET, GRUB_KEYBOARD_KEY_EQUAL, -+ /* 0x56 */ 0, 0, -+ /* 0x58 */ GRUB_KEYBOARD_KEY_CAPS_LOCK, GRUB_KEYBOARD_KEY_RIGHT_SHIFT, -+ /* 0x5a */ GRUB_KEYBOARD_KEY_ENTER, GRUB_KEYBOARD_KEY_RBRACKET, -+ /* 0x5c */ 0, GRUB_KEYBOARD_KEY_BACKSLASH, -+ /* 0x5e */ 0, 0, -+ /* 0x60 */ 0, GRUB_KEYBOARD_KEY_102ND, -+ /* 0x62 */ 0, 0, -+ /* 0x64 */ 0, 0, -+ /* 0x66 */ GRUB_KEYBOARD_KEY_BACKSPACE, 0, -+ /* 0x68 */ 0, GRUB_KEYBOARD_KEY_NUM1, -+ /* 0x6a */ GRUB_KEYBOARD_KEY_JP_YEN, GRUB_KEYBOARD_KEY_NUM4, -+ /* 0x6c */ GRUB_KEYBOARD_KEY_NUM7, GRUB_KEYBOARD_KEY_KPCOMMA, -+ /* 0x6e */ 0, 0, -+ /* 0x70 */ GRUB_KEYBOARD_KEY_NUM0, GRUB_KEYBOARD_KEY_NUMDOT, -+ /* 0x72 */ GRUB_KEYBOARD_KEY_NUM2, GRUB_KEYBOARD_KEY_NUM5, -+ /* 0x74 */ GRUB_KEYBOARD_KEY_NUM6, GRUB_KEYBOARD_KEY_NUM8, -+ /* 0x76 */ GRUB_KEYBOARD_KEY_ESCAPE, GRUB_KEYBOARD_KEY_NUM_LOCK, -+ /* 0x78 */ GRUB_KEYBOARD_KEY_F11, GRUB_KEYBOARD_KEY_NUMPLUS, -+ /* 0x7a */ GRUB_KEYBOARD_KEY_NUM3, GRUB_KEYBOARD_KEY_NUMMINUS, -+ /* 0x7c */ GRUB_KEYBOARD_KEY_NUMMUL, GRUB_KEYBOARD_KEY_NUM9, -+ /* 0x7e */ GRUB_KEYBOARD_KEY_SCROLL_LOCK, 0, -+ /* 0x80 */ 0, 0, -+ /* 0x82 */ 0, GRUB_KEYBOARD_KEY_F7, -+ }; -+ -+static const struct -+{ -+ grub_uint8_t from, to; -+} set2_e0_mapping[] = -+ { -+ {0x11, GRUB_KEYBOARD_KEY_RIGHT_ALT}, -+ {0x14, GRUB_KEYBOARD_KEY_RIGHT_CTRL}, -+ {0x4a, GRUB_KEYBOARD_KEY_NUMSLASH}, -+ {0x5a, GRUB_KEYBOARD_KEY_NUMENTER}, -+ {0x69, GRUB_KEYBOARD_KEY_END}, -+ {0x6b, GRUB_KEYBOARD_KEY_LEFT}, -+ {0x6c, GRUB_KEYBOARD_KEY_HOME}, -+ {0x70, GRUB_KEYBOARD_KEY_INSERT}, -+ {0x71, GRUB_KEYBOARD_KEY_DELETE}, -+ {0x72, GRUB_KEYBOARD_KEY_DOWN}, -+ {0x74, GRUB_KEYBOARD_KEY_RIGHT}, -+ {0x75, GRUB_KEYBOARD_KEY_UP}, -+ {0x7a, GRUB_KEYBOARD_KEY_NPAGE}, -+ {0x7d, GRUB_KEYBOARD_KEY_PPAGE}, -+ }; -+ -+static int -+fetch_key (struct grub_ps2_state *ps2_state, grub_uint8_t at_key, int *is_break) -+{ -+ int was_ext = 0; -+ int ret = 0; -+ -+ /* May happen if no keyboard is connected. Just ignore this. */ -+ if (at_key == 0xff) -+ return -1; -+ if (at_key == 0xe0) -+ { -+ ps2_state->e0_received = 1; -+ return -1; -+ } -+ -+ if ((ps2_state->current_set == 2 || ps2_state->current_set == 3) && at_key == 0xf0) -+ { -+ ps2_state->f0_received = 1; -+ return -1; -+ } -+ -+ /* Setting LEDs may generate ACKs. */ -+ if (at_key == GRUB_AT_ACK) -+ return -1; -+ -+ was_ext = ps2_state->e0_received; -+ ps2_state->e0_received = 0; -+ -+ switch (ps2_state->current_set) -+ { -+ case 1: -+ *is_break = !!(at_key & 0x80); -+ if (!was_ext) -+ ret = set1_mapping[at_key & 0x7f]; -+ else -+ { -+ unsigned i; -+ for (i = 0; i < ARRAY_SIZE (set1_e0_mapping); i++) -+ if (set1_e0_mapping[i].from == (at_key & 0x7f)) -+ { -+ ret = set1_e0_mapping[i].to; -+ break; -+ } -+ } -+ break; -+ case 2: -+ *is_break = ps2_state->f0_received; -+ ps2_state->f0_received = 0; -+ if (!was_ext) -+ ret = set2_mapping[at_key]; -+ else -+ { -+ unsigned i; -+ for (i = 0; i < ARRAY_SIZE (set2_e0_mapping); i++) -+ if (set2_e0_mapping[i].from == at_key) -+ { -+ ret = set2_e0_mapping[i].to; -+ break; -+ } -+ } -+ break; -+ default: -+ return -1; -+ } -+ if (!ret) -+ { -+ if (was_ext) -+ grub_dprintf ("atkeyb", "Unknown key 0xe0+0x%02x from set %d\n", -+ at_key, ps2_state->current_set); -+ else -+ grub_dprintf ("atkeyb", "Unknown key 0x%02x from set %d\n", -+ at_key, ps2_state->current_set); -+ return -1; -+ } -+ return ret; -+} -+ -+/* FIXME: This should become an interrupt service routine. For now -+ it's just used to catch events from control keys. */ -+static int -+grub_keyboard_isr (struct grub_ps2_state *ps2_state, -+ grub_keyboard_key_t key, int is_break) -+{ -+ if (!is_break) -+ switch (key) -+ { -+ case GRUB_KEYBOARD_KEY_LEFT_SHIFT: -+ ps2_state->at_keyboard_status |= GRUB_TERM_STATUS_LSHIFT; -+ return 1; -+ case GRUB_KEYBOARD_KEY_RIGHT_SHIFT: -+ ps2_state->at_keyboard_status |= GRUB_TERM_STATUS_RSHIFT; -+ return 1; -+ case GRUB_KEYBOARD_KEY_LEFT_CTRL: -+ ps2_state->at_keyboard_status |= GRUB_TERM_STATUS_LCTRL; -+ return 1; -+ case GRUB_KEYBOARD_KEY_RIGHT_CTRL: -+ ps2_state->at_keyboard_status |= GRUB_TERM_STATUS_RCTRL; -+ return 1; -+ case GRUB_KEYBOARD_KEY_RIGHT_ALT: -+ ps2_state->at_keyboard_status |= GRUB_TERM_STATUS_RALT; -+ return 1; -+ case GRUB_KEYBOARD_KEY_LEFT_ALT: -+ ps2_state->at_keyboard_status |= GRUB_TERM_STATUS_LALT; -+ return 1; -+ default: -+ return 0; -+ } -+ else -+ switch (key) -+ { -+ case GRUB_KEYBOARD_KEY_LEFT_SHIFT: -+ ps2_state->at_keyboard_status &= ~GRUB_TERM_STATUS_LSHIFT; -+ return 1; -+ case GRUB_KEYBOARD_KEY_RIGHT_SHIFT: -+ ps2_state->at_keyboard_status &= ~GRUB_TERM_STATUS_RSHIFT; -+ return 1; -+ case GRUB_KEYBOARD_KEY_LEFT_CTRL: -+ ps2_state->at_keyboard_status &= ~GRUB_TERM_STATUS_LCTRL; -+ return 1; -+ case GRUB_KEYBOARD_KEY_RIGHT_CTRL: -+ ps2_state->at_keyboard_status &= ~GRUB_TERM_STATUS_RCTRL; -+ return 1; -+ case GRUB_KEYBOARD_KEY_RIGHT_ALT: -+ ps2_state->at_keyboard_status &= ~GRUB_TERM_STATUS_RALT; -+ return 1; -+ case GRUB_KEYBOARD_KEY_LEFT_ALT: -+ ps2_state->at_keyboard_status &= ~GRUB_TERM_STATUS_LALT; -+ return 1; -+ default: -+ return 0; -+ } -+} -+ -+/* If there is a key pending, return it; otherwise return GRUB_TERM_NO_KEY. */ -+int -+grub_ps2_process_incoming_byte (struct grub_ps2_state *ps2_state, -+ grub_uint8_t at_key) -+{ -+ int code; -+ int is_break = 0; -+ -+ code = fetch_key (ps2_state, at_key, &is_break); -+ if (code == -1) -+ return GRUB_TERM_NO_KEY; -+ -+ if (grub_keyboard_isr (ps2_state, code, is_break)) -+ return GRUB_TERM_NO_KEY; -+ if (is_break) -+ return GRUB_TERM_NO_KEY; -+#ifdef DEBUG_AT_KEYBOARD -+ grub_dprintf ("atkeyb", "Detected key 0x%x\n", code); -+#endif -+ switch (code) -+ { -+ case GRUB_KEYBOARD_KEY_CAPS_LOCK: -+ ps2_state->at_keyboard_status ^= GRUB_TERM_STATUS_CAPS; -+ ps2_state->led_status ^= KEYBOARD_LED_CAPS; -+ -+#ifdef DEBUG_AT_KEYBOARD -+ grub_dprintf ("atkeyb", "caps_lock = %d\n", !!(ps2_state->at_keyboard_status & GRUB_KEYBOARD_STATUS_CAPS_LOCK)); -+#endif -+ return GRUB_TERM_NO_KEY; -+ case GRUB_KEYBOARD_KEY_NUM_LOCK: -+ ps2_state->at_keyboard_status ^= GRUB_TERM_STATUS_NUM; -+ ps2_state->led_status ^= KEYBOARD_LED_NUM; -+ -+#ifdef DEBUG_AT_KEYBOARD -+ grub_dprintf ("atkeyb", "num_lock = %d\n", !!(ps2_state->at_keyboard_status & GRUB_KEYBOARD_STATUS_NUM_LOCK)); -+#endif -+ return GRUB_TERM_NO_KEY; -+ case GRUB_KEYBOARD_KEY_SCROLL_LOCK: -+ ps2_state->at_keyboard_status ^= GRUB_TERM_STATUS_SCROLL; -+ ps2_state->led_status ^= KEYBOARD_LED_SCROLL; -+ return GRUB_TERM_NO_KEY; -+ default: -+ return grub_term_map_key (code, ps2_state->at_keyboard_status); -+ } -+} -diff --git a/include/grub/at_keyboard.h b/include/grub/at_keyboard.h -index b4f8ff0a061..b031523eb7d 100644 ---- a/include/grub/at_keyboard.h -+++ b/include/grub/at_keyboard.h -@@ -27,10 +27,6 @@ - - #define KEYBOARD_AT_TRANSLATE 0x40 - --#define GRUB_AT_ACK 0xfa --#define GRUB_AT_NACK 0xfe --#define GRUB_AT_TRIES 5 -- - #define KEYBOARD_ISMAKE(x) !((x) & 0x80) - #define KEYBOARD_ISREADY(x) ((x) & 0x01) - #define KEYBOARD_SCANCODE(x) ((x) & 0x7f) -diff --git a/include/grub/ps2.h b/include/grub/ps2.h -new file mode 100644 -index 00000000000..4f2e527e497 ---- /dev/null -+++ b/include/grub/ps2.h -@@ -0,0 +1,43 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2007,2008,2009 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#ifndef GRUB_PS2_HEADER -+#define GRUB_PS2_HEADER 1 -+ -+#include -+ -+#define GRUB_AT_ACK 0xfa -+#define GRUB_AT_NACK 0xfe -+#define GRUB_AT_TRIES 5 -+ -+/* Make sure it's zeroed-out and set current_set at init. */ -+struct grub_ps2_state -+{ -+ int e0_received; -+ int f0_received; -+ grub_uint8_t led_status; -+ short at_keyboard_status; -+ grub_uint8_t current_set; -+}; -+ -+/* If there is a key pending, return it; otherwise return GRUB_TERM_NO_KEY. */ -+int -+grub_ps2_process_incoming_byte (struct grub_ps2_state *ps2_state, -+ grub_uint8_t data); -+ -+#endif diff --git a/0087-Search-for-specific-config-file-for-netboot.patch b/0024-Search-for-specific-config-file-for-netboot.patch similarity index 98% rename from 0087-Search-for-specific-config-file-for-netboot.patch rename to 0024-Search-for-specific-config-file-for-netboot.patch index 9cee6e6b..7436e032 100644 --- a/0087-Search-for-specific-config-file-for-netboot.patch +++ b/0024-Search-for-specific-config-file-for-netboot.patch @@ -1,4 +1,4 @@ -From 9491cbfdab951e38f096bd9705a76b382f54c9be Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Paulo Flabiano Smorigo Date: Tue, 27 Nov 2012 17:22:07 -0200 Subject: [PATCH] Search for specific config file for netboot diff --git a/0024-arm_coreboot-Support-keyboard-for-vexpress.patch b/0024-arm_coreboot-Support-keyboard-for-vexpress.patch deleted file mode 100644 index 9f15319d..00000000 --- a/0024-arm_coreboot-Support-keyboard-for-vexpress.patch +++ /dev/null @@ -1,246 +0,0 @@ -From 848bed9d92cf20e9f25db4c69a20efad23996ca0 Mon Sep 17 00:00:00 2001 -From: Vladimir Serbinenko -Date: Mon, 8 May 2017 21:42:37 +0200 -Subject: [PATCH] arm_coreboot: Support keyboard for vexpress. - ---- - grub-core/Makefile.core.def | 3 + - grub-core/kern/arm/coreboot/init.c | 1 + - grub-core/term/arm/pl050.c | 189 +++++++++++++++++++++++++++++++++++++ - grub-core/Makefile.am | 1 + - 4 files changed, 194 insertions(+) - create mode 100644 grub-core/term/arm/pl050.c - -diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 6ade6e95057..6be6e7f61ee 100644 ---- a/grub-core/Makefile.core.def -+++ b/grub-core/Makefile.core.def -@@ -160,6 +160,9 @@ kernel = { - arm_coreboot = kern/arm/coreboot/coreboot.S; - arm_coreboot = lib/fdt.c; - arm_coreboot = bus/fdt.c; -+ arm_coreboot = term/ps2.c; -+ arm_coreboot = term/arm/pl050.c; -+ arm_coreboot = commands/keylayouts.c; - - terminfoinkernel = term/terminfo.c; - terminfoinkernel = term/tparm.c; -diff --git a/grub-core/kern/arm/coreboot/init.c b/grub-core/kern/arm/coreboot/init.c -index aec75c672a2..a06ccb72f42 100644 ---- a/grub-core/kern/arm/coreboot/init.c -+++ b/grub-core/kern/arm/coreboot/init.c -@@ -133,6 +133,7 @@ grub_machine_init (void) - grub_fdtbus_init (dtb, dtb_size); - - grub_machine_timer_init (); -+ grub_pl050_init (); - } - - void -diff --git a/grub-core/term/arm/pl050.c b/grub-core/term/arm/pl050.c -new file mode 100644 -index 00000000000..e4cda305666 ---- /dev/null -+++ b/grub-core/term/arm/pl050.c -@@ -0,0 +1,189 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2007,2008,2009 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+static volatile grub_uint32_t *pl050_regs; -+ -+struct grub_ps2_state ps2_state; -+ -+static void -+keyboard_controller_wait_until_ready (void) -+{ -+ while (! (pl050_regs[1] & 0x40)); -+} -+ -+static grub_uint8_t -+wait_ack (void) -+{ -+ grub_uint64_t endtime; -+ grub_uint8_t ack; -+ -+ endtime = grub_get_time_ms () + 20; -+ do -+ ack = pl050_regs[2]; -+ while (ack != GRUB_AT_ACK && ack != GRUB_AT_NACK -+ && grub_get_time_ms () < endtime); -+ return ack; -+} -+ -+ -+static int -+write_mode (int mode) -+{ -+ unsigned i; -+ for (i = 0; i < GRUB_AT_TRIES; i++) -+ { -+ grub_uint8_t ack; -+ keyboard_controller_wait_until_ready (); -+ pl050_regs[2] = 0xf0; -+ keyboard_controller_wait_until_ready (); -+ pl050_regs[2] = mode; -+ keyboard_controller_wait_until_ready (); -+ ack = wait_ack (); -+ if (ack == GRUB_AT_NACK) -+ continue; -+ if (ack == GRUB_AT_ACK) -+ break; -+ return 0; -+ } -+ -+ return (i != GRUB_AT_TRIES); -+} -+ -+static int -+query_mode (void) -+{ -+ grub_uint8_t ret; -+ int e; -+ -+ e = write_mode (0); -+ if (!e) -+ return 0; -+ -+ keyboard_controller_wait_until_ready (); -+ -+ do -+ ret = pl050_regs[2]; -+ while (ret == GRUB_AT_ACK); -+ -+ /* QEMU translates the set even in no-translate mode. */ -+ if (ret == 0x43 || ret == 1) -+ return 1; -+ if (ret == 0x41 || ret == 2) -+ return 2; -+ if (ret == 0x3f || ret == 3) -+ return 3; -+ return 0; -+} -+ -+static void -+set_scancodes (void) -+{ -+ write_mode (2); -+ ps2_state.current_set = query_mode (); -+ grub_dprintf ("atkeyb", "returned set %d\n", ps2_state.current_set); -+ if (ps2_state.current_set == 2) -+ return; -+ -+ write_mode (1); -+ ps2_state.current_set = query_mode (); -+ grub_dprintf ("atkeyb", "returned set %d\n", ps2_state.current_set); -+ if (ps2_state.current_set == 1) -+ return; -+ grub_dprintf ("atkeyb", "no supported scancode set found\n"); -+} -+ -+static void -+keyboard_controller_led (grub_uint8_t leds) -+{ -+ keyboard_controller_wait_until_ready (); -+ pl050_regs[2] = 0xed; -+ keyboard_controller_wait_until_ready (); -+ pl050_regs[2] = leds & 0x7; -+} -+ -+/* If there is a character pending, return it; -+ otherwise return GRUB_TERM_NO_KEY. */ -+static int -+grub_pl050_keyboard_getkey (struct grub_term_input *term __attribute__ ((unused))) -+{ -+ grub_uint8_t at_key; -+ int ret; -+ grub_uint8_t old_led; -+ -+ if (!(pl050_regs[1] & 0x10)) -+ return -1; -+ at_key = pl050_regs[2]; -+ old_led = ps2_state.led_status; -+ -+ ret = grub_ps2_process_incoming_byte (&ps2_state, at_key); -+ if (old_led != ps2_state.led_status) -+ keyboard_controller_led (ps2_state.led_status); -+ return ret; -+} -+ -+static struct grub_term_input grub_pl050_keyboard_term = -+ { -+ .name = "pl050_keyboard", -+ .getkey = grub_pl050_keyboard_getkey -+ }; -+ -+static grub_err_t -+pl050_attach(const struct grub_fdtbus_dev *dev) -+{ -+ const grub_uint32_t *reg; -+ reg = grub_fdtbus_get_prop (dev, "reg", 0); -+ -+ /* Mouse. Nothing to do. */ -+ if (grub_be_to_cpu32 (*reg) == 0x7000) -+ return 0; -+ -+ pl050_regs = grub_fdtbus_map_reg (dev, 0, 0); -+ -+ if (!grub_fdtbus_is_mapping_valid (pl050_regs)) -+ return grub_error (GRUB_ERR_IO, "could not map pl050"); -+ -+ ps2_state.at_keyboard_status = 0; -+ set_scancodes (); -+ keyboard_controller_led (ps2_state.led_status); -+ -+ grub_term_register_input ("pl050_keyboard", &grub_pl050_keyboard_term); -+ return GRUB_ERR_NONE; -+} -+ -+struct grub_fdtbus_driver pl050 = -+{ -+ .compatible = "arm,pl050", -+ .attach = pl050_attach -+}; -+ -+void -+grub_pl050_init (void) -+{ -+ grub_fdtbus_register (&pl050); -+} -diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am -index 147e6959c97..a2aaf9f54b0 100644 ---- a/grub-core/Makefile.am -+++ b/grub-core/Makefile.am -@@ -240,6 +240,7 @@ KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/arm/system.h - endif - - if COND_arm_coreboot -+KERNEL_HEADER_FILES += $(top_builddir)/include/grub/keyboard_layouts.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/arm/system.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/video.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/video_fb.h diff --git a/0025-arm_coreboot-Support-grub-mkstandalone.patch b/0025-arm_coreboot-Support-grub-mkstandalone.patch deleted file mode 100644 index 89b57447..00000000 --- a/0025-arm_coreboot-Support-grub-mkstandalone.patch +++ /dev/null @@ -1,155 +0,0 @@ -From 3edabad8fefb112cc4b2d43be6e97d43c909ceee Mon Sep 17 00:00:00 2001 -From: Vladimir Serbinenko -Date: Mon, 8 May 2017 21:59:48 +0200 -Subject: [PATCH] arm_coreboot: Support grub-mkstandalone. - ---- - util/grub-install-common.c | 12 ++++++++++-- - util/grub-install.c | 7 +++++++ - include/grub/util/install.h | 6 +++++- - 3 files changed, 22 insertions(+), 3 deletions(-) - -diff --git a/util/grub-install-common.c b/util/grub-install-common.c -index 8539ff3484d..9e3e358c96a 100644 ---- a/util/grub-install-common.c -+++ b/util/grub-install-common.c -@@ -73,6 +73,7 @@ grub_install_help_filter (int key, const char *text, - - static int (*compress_func) (const char *src, const char *dest) = NULL; - char *grub_install_copy_buffer; -+static char *dtb; - - int - grub_install_copy_file (const char *src, -@@ -364,6 +365,11 @@ grub_install_parse (int key, char *arg) - case GRUB_INSTALL_OPTIONS_INSTALL_FONTS: - handle_install_list (&install_fonts, arg, 0); - return 1; -+ case GRUB_INSTALL_OPTIONS_DTB: -+ if (dtb) -+ free (dtb); -+ dtb = xstrdup (arg); -+ return 1; - case GRUB_INSTALL_OPTIONS_INSTALL_COMPRESS: - if (strcmp (arg, "no") == 0 - || strcmp (arg, "none") == 0) -@@ -486,9 +492,10 @@ grub_install_make_image_wrap_file (const char *dir, const char *prefix, - - grub_util_info ("grub-mkimage --directory '%s' --prefix '%s'" - " --output '%s' " -+ " --dtb '%s' " - "--format '%s' --compression '%s' %s %s\n", - dir, prefix, -- outname, mkimage_target, -+ outname, dtb ? : "", mkimage_target, - compnames[compression], note ? "--note" : "", s); - free (s); - -@@ -499,7 +506,7 @@ grub_install_make_image_wrap_file (const char *dir, const char *prefix, - grub_install_generate_image (dir, prefix, fp, outname, - modules.entries, memdisk_path, - pubkeys, npubkeys, config_path, tgt, -- note, compression, 0); -+ note, compression, dtb); - while (dc--) - grub_install_pop_module (); - } -@@ -666,6 +673,7 @@ static struct - [GRUB_INSTALL_PLATFORM_ARM_EFI] = { "arm", "efi" }, - [GRUB_INSTALL_PLATFORM_ARM64_EFI] = { "arm64", "efi" }, - [GRUB_INSTALL_PLATFORM_ARM_UBOOT] = { "arm", "uboot" }, -+ [GRUB_INSTALL_PLATFORM_ARM_COREBOOT] = { "arm", "coreboot" }, - }; - - char * -diff --git a/util/grub-install.c b/util/grub-install.c -index 9074d3e9e52..75e3e5ba6f0 100644 ---- a/util/grub-install.c -+++ b/util/grub-install.c -@@ -486,6 +486,7 @@ have_bootdev (enum grub_install_plat pl) - - case GRUB_INSTALL_PLATFORM_I386_QEMU: - case GRUB_INSTALL_PLATFORM_I386_COREBOOT: -+ case GRUB_INSTALL_PLATFORM_ARM_COREBOOT: - case GRUB_INSTALL_PLATFORM_I386_MULTIBOOT: - case GRUB_INSTALL_PLATFORM_MIPSEL_QEMU_MIPS: - case GRUB_INSTALL_PLATFORM_MIPS_QEMU_MIPS: -@@ -911,6 +912,7 @@ main (int argc, char *argv[]) - - case GRUB_INSTALL_PLATFORM_I386_QEMU: - case GRUB_INSTALL_PLATFORM_I386_COREBOOT: -+ case GRUB_INSTALL_PLATFORM_ARM_COREBOOT: - case GRUB_INSTALL_PLATFORM_I386_MULTIBOOT: - case GRUB_INSTALL_PLATFORM_MIPSEL_LOONGSON: - case GRUB_INSTALL_PLATFORM_MIPSEL_QEMU_MIPS: -@@ -946,6 +948,7 @@ main (int argc, char *argv[]) - case GRUB_INSTALL_PLATFORM_ARM_UBOOT: - case GRUB_INSTALL_PLATFORM_I386_QEMU: - case GRUB_INSTALL_PLATFORM_I386_COREBOOT: -+ case GRUB_INSTALL_PLATFORM_ARM_COREBOOT: - case GRUB_INSTALL_PLATFORM_I386_MULTIBOOT: - case GRUB_INSTALL_PLATFORM_MIPSEL_LOONGSON: - case GRUB_INSTALL_PLATFORM_MIPSEL_QEMU_MIPS: -@@ -1448,6 +1451,7 @@ main (int argc, char *argv[]) - case GRUB_INSTALL_PLATFORM_MIPSEL_LOONGSON: - case GRUB_INSTALL_PLATFORM_I386_QEMU: - case GRUB_INSTALL_PLATFORM_I386_COREBOOT: -+ case GRUB_INSTALL_PLATFORM_ARM_COREBOOT: - case GRUB_INSTALL_PLATFORM_I386_MULTIBOOT: - case GRUB_INSTALL_PLATFORM_MIPSEL_QEMU_MIPS: - case GRUB_INSTALL_PLATFORM_MIPS_QEMU_MIPS: -@@ -1542,6 +1546,7 @@ main (int argc, char *argv[]) - break; - - case GRUB_INSTALL_PLATFORM_I386_COREBOOT: -+ case GRUB_INSTALL_PLATFORM_ARM_COREBOOT: - case GRUB_INSTALL_PLATFORM_I386_MULTIBOOT: - case GRUB_INSTALL_PLATFORM_I386_IEEE1275: - case GRUB_INSTALL_PLATFORM_POWERPC_IEEE1275: -@@ -1629,6 +1634,7 @@ main (int argc, char *argv[]) - case GRUB_INSTALL_PLATFORM_MIPSEL_QEMU_MIPS: - case GRUB_INSTALL_PLATFORM_MIPS_QEMU_MIPS: - case GRUB_INSTALL_PLATFORM_I386_COREBOOT: -+ case GRUB_INSTALL_PLATFORM_ARM_COREBOOT: - case GRUB_INSTALL_PLATFORM_I386_MULTIBOOT: - case GRUB_INSTALL_PLATFORM_I386_PC: - case GRUB_INSTALL_PLATFORM_MIPSEL_ARC: -@@ -1889,6 +1895,7 @@ main (int argc, char *argv[]) - case GRUB_INSTALL_PLATFORM_MIPSEL_QEMU_MIPS: - case GRUB_INSTALL_PLATFORM_MIPS_QEMU_MIPS: - case GRUB_INSTALL_PLATFORM_I386_COREBOOT: -+ case GRUB_INSTALL_PLATFORM_ARM_COREBOOT: - case GRUB_INSTALL_PLATFORM_I386_MULTIBOOT: - case GRUB_INSTALL_PLATFORM_MIPSEL_ARC: - case GRUB_INSTALL_PLATFORM_ARM_UBOOT: -diff --git a/include/grub/util/install.h b/include/grub/util/install.h -index 6abd288c313..5910b0c09bc 100644 ---- a/include/grub/util/install.h -+++ b/include/grub/util/install.h -@@ -29,6 +29,8 @@ - #define GRUB_INSTALL_OPTIONS \ - { "modules", GRUB_INSTALL_OPTIONS_MODULES, N_("MODULES"), \ - 0, N_("pre-load specified modules MODULES"), 1 }, \ -+ { "dtb", GRUB_INSTALL_OPTIONS_DTB, N_("FILE"), \ -+ 0, N_("embed a specific DTB"), 1 }, \ - { "install-modules", GRUB_INSTALL_OPTIONS_INSTALL_MODULES, \ - N_("MODULES"), 0, \ - N_("install only MODULES and their dependencies [default=all]"), 1 }, \ -@@ -99,6 +101,7 @@ enum grub_install_plat - GRUB_INSTALL_PLATFORM_I386_XEN, - GRUB_INSTALL_PLATFORM_X86_64_XEN, - GRUB_INSTALL_PLATFORM_ARM64_EFI, -+ GRUB_INSTALL_PLATFORM_ARM_COREBOOT, - GRUB_INSTALL_PLATFORM_MAX - }; - -@@ -115,7 +118,8 @@ enum grub_install_options { - GRUB_INSTALL_OPTIONS_LOCALE_DIRECTORY, - GRUB_INSTALL_OPTIONS_THEMES_DIRECTORY, - GRUB_INSTALL_OPTIONS_GRUB_MKIMAGE, -- GRUB_INSTALL_OPTIONS_INSTALL_CORE_COMPRESS -+ GRUB_INSTALL_OPTIONS_INSTALL_CORE_COMPRESS, -+ GRUB_INSTALL_OPTIONS_DTB - }; - - extern char *grub_install_source_directory; diff --git a/0088-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch b/0025-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch similarity index 98% rename from 0088-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch rename to 0025-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch index 5f023b93..2af22955 100644 --- a/0088-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch +++ b/0025-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch @@ -1,4 +1,4 @@ -From 5fcdebdc36cc84c772754b7f5bdb87aed2b42853 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Tue, 22 Jan 2013 06:31:38 +0100 Subject: [PATCH] blscfg: add blscfg module to parse Boot Loader Specification diff --git a/0089-Don-t-write-messages-to-the-screen.patch b/0026-Don-t-write-messages-to-the-screen.patch similarity index 98% rename from 0089-Don-t-write-messages-to-the-screen.patch rename to 0026-Don-t-write-messages-to-the-screen.patch index d9eb35b2..4d8de502 100644 --- a/0089-Don-t-write-messages-to-the-screen.patch +++ b/0026-Don-t-write-messages-to-the-screen.patch @@ -1,4 +1,4 @@ -From fc390be631e93744c6a3a2f42849c9edf2614a36 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 13:30:20 -0400 Subject: [PATCH] Don't write messages to the screen diff --git a/0026-arm_coreboot-Support-loading-linux-images.patch b/0026-arm_coreboot-Support-loading-linux-images.patch deleted file mode 100644 index 1198dafe..00000000 --- a/0026-arm_coreboot-Support-loading-linux-images.patch +++ /dev/null @@ -1,299 +0,0 @@ -From 656c3b0d7fbe23f0e1ab561c8faa4ac4a37364d1 Mon Sep 17 00:00:00 2001 -From: Vladimir Serbinenko -Date: Mon, 8 May 2017 22:00:06 +0200 -Subject: [PATCH] arm_coreboot: Support loading linux images. - ---- - grub-core/loader/arm/linux.c | 132 ++++++++++++++++++++++--------------------- - include/grub/arm/linux.h | 16 ++++++ - 2 files changed, 83 insertions(+), 65 deletions(-) - -diff --git a/grub-core/loader/arm/linux.c b/grub-core/loader/arm/linux.c -index 01374ee78fa..260cbf06861 100644 ---- a/grub-core/loader/arm/linux.c -+++ b/grub-core/loader/arm/linux.c -@@ -31,8 +31,6 @@ - - GRUB_MOD_LICENSE ("GPLv3+"); - --#ifndef GRUB_MACHINE_COREBOOT -- - static grub_dl_t my_mod; - - static grub_addr_t initrd_start; -@@ -44,7 +42,7 @@ static grub_size_t linux_size; - static char *linux_args; - - static grub_uint32_t machine_type; --static void *fdt_addr; -+static const void *current_fdt; - - typedef void (*kernel_entry_t) (int, unsigned long, void *); - -@@ -56,9 +54,9 @@ typedef void (*kernel_entry_t) (int, unsigned long, void *); - #define LINUX_FDT_PHYS_OFFSET (LINUX_INITRD_PHYS_OFFSET - 0x10000) - - static grub_size_t --get_atag_size (grub_uint32_t *atag) -+get_atag_size (const grub_uint32_t *atag) - { -- grub_uint32_t *atag0 = atag; -+ const grub_uint32_t *atag0 = atag; - while (atag[0] && atag[1]) - atag += atag[0]; - return atag - atag0; -@@ -70,10 +68,11 @@ get_atag_size (grub_uint32_t *atag) - * Merges in command line parameters and sets up initrd addresses. - */ - static grub_err_t --linux_prepare_atag (void) -+linux_prepare_atag (void *target_atag) - { -- grub_uint32_t *atag_orig = (grub_uint32_t *) fdt_addr; -- grub_uint32_t *tmp_atag, *from, *to; -+ const grub_uint32_t *atag_orig = (const grub_uint32_t *) current_fdt; -+ grub_uint32_t *tmp_atag, *to; -+ const grub_uint32_t *from; - grub_size_t tmp_size; - grub_size_t arg_size = grub_strlen (linux_args); - char *cmdline_orig = NULL; -@@ -144,7 +143,7 @@ linux_prepare_atag (void) - to += 2; - - /* Copy updated FDT to its launch location */ -- grub_memcpy (atag_orig, tmp_atag, sizeof (grub_uint32_t) * (to - tmp_atag)); -+ grub_memcpy (target_atag, tmp_atag, sizeof (grub_uint32_t) * (to - tmp_atag)); - grub_free (tmp_atag); - - grub_dprintf ("loader", "ATAG updated for Linux boot\n"); -@@ -158,19 +157,19 @@ linux_prepare_atag (void) - * Merges in command line parameters and sets up initrd addresses. - */ - static grub_err_t --linux_prepare_fdt (void) -+linux_prepare_fdt (void *target_fdt) - { - int node; - int retval; - int tmp_size; - void *tmp_fdt; - -- tmp_size = grub_fdt_get_totalsize (fdt_addr) + 0x100 + grub_strlen (linux_args); -+ tmp_size = grub_fdt_get_totalsize (current_fdt) + 0x100 + grub_strlen (linux_args); - tmp_fdt = grub_malloc (tmp_size); - if (!tmp_fdt) - return grub_errno; - -- grub_memcpy (tmp_fdt, fdt_addr, grub_fdt_get_totalsize (fdt_addr)); -+ grub_memcpy (tmp_fdt, current_fdt, grub_fdt_get_totalsize (current_fdt)); - grub_fdt_set_totalsize (tmp_fdt, tmp_size); - - /* Find or create '/chosen' node */ -@@ -211,7 +210,7 @@ linux_prepare_fdt (void) - } - - /* Copy updated FDT to its launch location */ -- grub_memcpy (fdt_addr, tmp_fdt, tmp_size); -+ grub_memcpy (target_fdt, tmp_fdt, tmp_size); - grub_free (tmp_fdt); - - grub_dprintf ("loader", "FDT updated for Linux boot\n"); -@@ -228,16 +227,17 @@ linux_boot (void) - { - kernel_entry_t linuxmain; - int fdt_valid, atag_valid; -+ void *target_fdt = 0; - -- fdt_valid = (fdt_addr && grub_fdt_check_header_nosize (fdt_addr) == 0); -- atag_valid = ((((grub_uint16_t *) fdt_addr)[3] & ~3) == 0x5440 -- && *((grub_uint32_t *) fdt_addr)); -+ fdt_valid = (current_fdt && grub_fdt_check_header_nosize (current_fdt) == 0); -+ atag_valid = ((((const grub_uint16_t *) current_fdt)[3] & ~3) == 0x5440 -+ && *((const grub_uint32_t *) current_fdt)); - grub_dprintf ("loader", "atag: %p, %x, %x, %s, %s\n", -- fdt_addr, -- ((grub_uint16_t *) fdt_addr)[3], -- *((grub_uint32_t *) fdt_addr), -- (char *) fdt_addr, -- (char *) fdt_addr + 1); -+ current_fdt, -+ ((const grub_uint16_t *) current_fdt)[3], -+ *((const grub_uint32_t *) current_fdt), -+ (const char *) current_fdt, -+ (const char *) current_fdt + 1); - - if (!fdt_valid && machine_type == GRUB_ARM_MACHINE_TYPE_FDT) - return grub_error (GRUB_ERR_FILE_NOT_FOUND, -@@ -247,23 +247,40 @@ linux_boot (void) - - grub_dprintf ("loader", "Kernel at: 0x%x\n", linux_addr); - -+ if (fdt_valid || atag_valid) -+ { -+#ifdef GRUB_MACHINE_EFI -+ grub_size_t size; -+ if (fdt_valid) -+ size = grub_fdt_get_totalsize (fdt_addr); -+ else -+ size = 4 * get_atag_size (atag_orig); -+ size += grub_strlen (linux_args) + 256; -+ target_fdt = grub_efi_allocate_loader_memory (LINUX_FDT_PHYS_OFFSET, size); -+ if (!fdt_addr) -+ return grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("out of memory")); -+#else -+ target_fdt = (void *) LINUX_FDT_ADDRESS; -+#endif -+ } -+ - if (fdt_valid) - { - grub_err_t err; - -- err = linux_prepare_fdt (); -+ err = linux_prepare_fdt (target_fdt); - if (err) - return err; -- grub_dprintf ("loader", "FDT @ 0x%p\n", fdt_addr); -+ grub_dprintf ("loader", "FDT @ %p\n", target_fdt); - } - else if (atag_valid) - { - grub_err_t err; - -- err = linux_prepare_atag (); -+ err = linux_prepare_atag (target_fdt); - if (err) - return err; -- grub_dprintf ("loader", "ATAG @ 0x%p\n", fdt_addr); -+ grub_dprintf ("loader", "ATAG @ %p\n", target_fdt); - } - - grub_dprintf ("loader", "Jumping to Linux...\n"); -@@ -287,7 +304,7 @@ linux_boot (void) - - grub_arm_disable_caches_mmu (); - -- linuxmain (0, machine_type, fdt_addr); -+ linuxmain (0, machine_type, target_fdt); - - return grub_error (GRUB_ERR_BAD_OS, "Linux call returned"); - } -@@ -446,11 +463,26 @@ fail: - static grub_err_t - load_dtb (grub_file_t dtb, int size) - { -- if ((grub_file_read (dtb, fdt_addr, size) != size) -- || (grub_fdt_check_header (fdt_addr, size) != 0)) -- return grub_error (GRUB_ERR_BAD_OS, N_("invalid device tree")); -+ void *new_fdt = grub_zalloc (size); -+ if (!new_fdt) -+ return grub_errno; -+ grub_dprintf ("loader", "Loading device tree to %p\n", -+ new_fdt); -+ if ((grub_file_read (dtb, new_fdt, size) != size) -+ || (grub_fdt_check_header (new_fdt, size) != 0)) -+ { -+ grub_free (new_fdt); -+ return grub_error (GRUB_ERR_BAD_OS, N_("invalid device tree")); -+ } -+ -+ grub_fdt_set_totalsize (new_fdt, size); -+ current_fdt = new_fdt; -+ /* -+ * We've successfully loaded an FDT, so any machine type passed -+ * from firmware is now obsolete. -+ */ -+ machine_type = GRUB_ARM_MACHINE_TYPE_FDT; - -- grub_fdt_set_totalsize (fdt_addr, size); - return GRUB_ERR_NONE; - } - -@@ -466,42 +498,13 @@ grub_cmd_devicetree (grub_command_t cmd __attribute__ ((unused)), - - dtb = grub_file_open (argv[0]); - if (!dtb) -- goto out; -+ return grub_errno; - - size = grub_file_size (dtb); - if (size == 0) -- { -- grub_error (GRUB_ERR_BAD_OS, "empty file"); -- goto out; -- } -- --#ifdef GRUB_MACHINE_EFI -- fdt_addr = grub_efi_allocate_loader_memory (LINUX_FDT_PHYS_OFFSET, size); -- if (!fdt_addr) -- { -- grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("out of memory")); -- goto out; -- } --#else -- fdt_addr = (void *) LINUX_FDT_ADDRESS; --#endif -- -- grub_dprintf ("loader", "Loading device tree to 0x%08x\n", -- (grub_addr_t) fdt_addr); -- load_dtb (dtb, size); -- if (grub_errno != GRUB_ERR_NONE) -- { -- fdt_addr = NULL; -- goto out; -- } -- -- /* -- * We've successfully loaded an FDT, so any machine type passed -- * from firmware is now obsolete. -- */ -- machine_type = GRUB_ARM_MACHINE_TYPE_FDT; -- -- out: -+ grub_error (GRUB_ERR_BAD_OS, "empty file"); -+ else -+ load_dtb (dtb, size); - grub_file_close (dtb); - - return grub_errno; -@@ -519,7 +522,7 @@ GRUB_MOD_INIT (linux) - /* TRANSLATORS: DTB stands for device tree blob. */ - 0, N_("Load DTB file.")); - my_mod = mod; -- fdt_addr = (void *) grub_arm_firmware_get_boot_data (); -+ current_fdt = grub_arm_firmware_get_boot_data (); - machine_type = grub_arm_firmware_get_machine_type (); - } - -@@ -529,4 +532,3 @@ GRUB_MOD_FINI (linux) - grub_unregister_command (cmd_initrd); - grub_unregister_command (cmd_devicetree); - } --#endif -diff --git a/include/grub/arm/linux.h b/include/grub/arm/linux.h -index a66caad13db..f217f8281ad 100644 ---- a/include/grub/arm/linux.h -+++ b/include/grub/arm/linux.h -@@ -46,6 +46,22 @@ grub_arm_firmware_get_machine_type (void) - { - return GRUB_ARM_MACHINE_TYPE_FDT; - } -+#elif defined (GRUB_MACHINE_COREBOOT) -+#include -+#include -+# define LINUX_ADDRESS (start_of_ram + 0x8000) -+# define LINUX_INITRD_ADDRESS (start_of_ram + 0x02000000) -+# define LINUX_FDT_ADDRESS (LINUX_INITRD_ADDRESS - 0x10000) -+static inline const void * -+grub_arm_firmware_get_boot_data (void) -+{ -+ return grub_fdtbus_get_fdt (); -+} -+static inline grub_uint32_t -+grub_arm_firmware_get_machine_type (void) -+{ -+ return GRUB_ARM_MACHINE_TYPE_FDT; -+} - #endif - - #define FDT_ADDITIONAL_ENTRIES_SIZE 0x300 diff --git a/0090-Don-t-print-GNU-GRUB-header.patch b/0027-Don-t-print-GNU-GRUB-header.patch similarity index 94% rename from 0090-Don-t-print-GNU-GRUB-header.patch rename to 0027-Don-t-print-GNU-GRUB-header.patch index e55c3d92..cdcdb13c 100644 --- a/0090-Don-t-print-GNU-GRUB-header.patch +++ b/0027-Don-t-print-GNU-GRUB-header.patch @@ -1,4 +1,4 @@ -From 806c26ae73bc86e305c39c955d86480fad8985df Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 13:53:48 -0400 Subject: [PATCH] Don't print GNU GRUB header diff --git a/0027-arm_coreboot-Support-DMA.patch b/0027-arm_coreboot-Support-DMA.patch deleted file mode 100644 index 414370d7..00000000 --- a/0027-arm_coreboot-Support-DMA.patch +++ /dev/null @@ -1,289 +0,0 @@ -From 265292f2b0da0eb414c409871ba0f94a99ec33c1 Mon Sep 17 00:00:00 2001 -From: Vladimir Serbinenko -Date: Mon, 8 May 2017 22:06:04 +0200 -Subject: [PATCH] arm_coreboot: Support DMA. - -This is needed to support USB and some other busses. ---- - grub-core/Makefile.core.def | 1 + - grub-core/kern/arm/cache.c | 34 ++++++++++++++++++++++ - grub-core/kern/arm/coreboot/dma.c | 59 +++++++++++++++++++++++++++++++++++++++ - include/grub/cache.h | 7 ++--- - include/grub/dma.h | 44 +++++++++++++++++++++++++++++ - include/grub/pci.h | 22 +-------------- - grub-core/kern/arm/cache_armv7.S | 12 ++++++++ - grub-core/Makefile.am | 1 + - 8 files changed, 155 insertions(+), 25 deletions(-) - create mode 100644 grub-core/kern/arm/coreboot/dma.c - create mode 100644 include/grub/dma.h - -diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 6be6e7f61ee..e4f253a205e 100644 ---- a/grub-core/Makefile.core.def -+++ b/grub-core/Makefile.core.def -@@ -163,6 +163,7 @@ kernel = { - arm_coreboot = term/ps2.c; - arm_coreboot = term/arm/pl050.c; - arm_coreboot = commands/keylayouts.c; -+ arm_coreboot = kern/arm/coreboot/dma.c; - - terminfoinkernel = term/terminfo.c; - terminfoinkernel = term/tparm.c; -diff --git a/grub-core/kern/arm/cache.c b/grub-core/kern/arm/cache.c -index 34154ccdb0e..af1c4bbf544 100644 ---- a/grub-core/kern/arm/cache.c -+++ b/grub-core/kern/arm/cache.c -@@ -29,6 +29,8 @@ void grub_arm_clean_dcache_range_armv6 (grub_addr_t start, grub_addr_t end, - grub_addr_t dlinesz); - void grub_arm_clean_dcache_range_armv7 (grub_addr_t start, grub_addr_t end, - grub_addr_t dlinesz); -+void grub_arm_clean_dcache_range_poc_armv7 (grub_addr_t start, grub_addr_t end, -+ grub_addr_t dlinesz); - void grub_arm_invalidate_icache_range_armv6 (grub_addr_t start, grub_addr_t end, - grub_addr_t dlinesz); - void grub_arm_invalidate_icache_range_armv7 (grub_addr_t start, grub_addr_t end, -@@ -252,6 +254,38 @@ grub_arch_sync_caches (void *address, grub_size_t len) - } - } - -+void -+grub_arch_sync_dma_caches (volatile void *address, grub_size_t len) -+{ -+ grub_addr_t start = (grub_addr_t) address; -+ grub_addr_t end = start + len; -+ -+ if (type == ARCH_UNKNOWN) -+ probe_caches (); -+ start = ALIGN_DOWN (start, grub_arch_cache_max_linesz); -+ end = ALIGN_UP (end, grub_arch_cache_max_linesz); -+ switch (type) -+ { -+ case ARCH_ARMV6: -+ grub_arm_clean_dcache_range_armv6 (start, end, grub_arch_cache_dlinesz); -+ grub_arm_invalidate_icache_range_armv6 (start, end, -+ grub_arch_cache_ilinesz); -+ break; -+ case ARCH_ARMV5_WRITE_THROUGH: -+ case ARCH_ARMV6_UNIFIED: -+ grub_arm_clean_dcache_range_armv6 (start, end, grub_arch_cache_dlinesz); -+ break; -+ case ARCH_ARMV7: -+ grub_arm_clean_dcache_range_poc_armv7 (start, end, grub_arch_cache_dlinesz); -+ grub_arm_invalidate_icache_range_armv7 (start, end, -+ grub_arch_cache_ilinesz); -+ break; -+ /* Pacify GCC. */ -+ case ARCH_UNKNOWN: -+ break; -+ } -+} -+ - void - grub_arm_disable_caches_mmu (void) - { -diff --git a/grub-core/kern/arm/coreboot/dma.c b/grub-core/kern/arm/coreboot/dma.c -new file mode 100644 -index 00000000000..2c2a6278904 ---- /dev/null -+++ b/grub-core/kern/arm/coreboot/dma.c -@@ -0,0 +1,59 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2007,2009 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+ -+struct grub_pci_dma_chunk * -+grub_memalign_dma32 (grub_size_t align, grub_size_t size) -+{ -+ void *ret; -+ if (align < 64) -+ align = 64; -+ size = ALIGN_UP (size, align); -+ ret = grub_memalign (align, size); -+ if (!ret) -+ return 0; -+ grub_arch_sync_dma_caches (ret, size); -+ return ret; -+} -+ -+void -+grub_dma_free (struct grub_pci_dma_chunk *ch) -+{ -+ grub_size_t size = (((struct grub_mm_header *) ch) - 1)->size * GRUB_MM_ALIGN; -+ grub_arch_sync_dma_caches (ch, size); -+ grub_free (ch); -+} -+ -+volatile void * -+grub_dma_get_virt (struct grub_pci_dma_chunk *ch) -+{ -+ return (void *) ch; -+} -+ -+grub_uint32_t -+grub_dma_get_phys (struct grub_pci_dma_chunk *ch) -+{ -+ return (grub_uint32_t) (grub_addr_t) ch; -+} -+ -diff --git a/include/grub/cache.h b/include/grub/cache.h -index fc669dfd189..1c98ce270b6 100644 ---- a/include/grub/cache.h -+++ b/include/grub/cache.h -@@ -34,15 +34,14 @@ void EXPORT_FUNC(grub_arch_sync_caches) (void *address, grub_size_t len); - #endif - - #ifndef GRUB_MACHINE_EMU --#ifdef _mips --void EXPORT_FUNC(grub_arch_sync_dma_caches) (volatile void *address, -- grub_size_t len); --#else -+#if defined (__i386__) || defined (__x86_64__) - static inline void - grub_arch_sync_dma_caches (volatile void *address __attribute__ ((unused)), - grub_size_t len __attribute__ ((unused))) - { - } -+#else -+void EXPORT_FUNC(grub_arch_sync_dma_caches) (volatile void *address, grub_size_t len); - #endif - #endif - -diff --git a/include/grub/dma.h b/include/grub/dma.h -new file mode 100644 -index 00000000000..19992ebc131 ---- /dev/null -+++ b/include/grub/dma.h -@@ -0,0 +1,44 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2008,2009 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#ifndef GRUB_DMA_H -+#define GRUB_DMA_H 1 -+ -+struct grub_pci_dma_chunk; -+ -+struct grub_pci_dma_chunk *EXPORT_FUNC(grub_memalign_dma32) (grub_size_t align, -+ grub_size_t size); -+void EXPORT_FUNC(grub_dma_free) (struct grub_pci_dma_chunk *ch); -+volatile void *EXPORT_FUNC(grub_dma_get_virt) (struct grub_pci_dma_chunk *ch); -+grub_uint32_t EXPORT_FUNC(grub_dma_get_phys) (struct grub_pci_dma_chunk *ch); -+ -+static inline void * -+grub_dma_phys2virt (grub_uint32_t phys, struct grub_pci_dma_chunk *chunk) -+{ -+ return ((grub_uint8_t *) grub_dma_get_virt (chunk) -+ + (phys - grub_dma_get_phys (chunk))); -+} -+ -+static inline grub_uint32_t -+grub_dma_virt2phys (volatile void *virt, struct grub_pci_dma_chunk *chunk) -+{ -+ return (((grub_uint8_t *) virt - (grub_uint8_t *) grub_dma_get_virt (chunk)) -+ + grub_dma_get_phys (chunk)); -+} -+ -+#endif -diff --git a/include/grub/pci.h b/include/grub/pci.h -index 70d9a05131b..262c89b748b 100644 ---- a/include/grub/pci.h -+++ b/include/grub/pci.h -@@ -142,27 +142,7 @@ grub_pci_address_t EXPORT_FUNC(grub_pci_make_address) (grub_pci_device_t dev, - void EXPORT_FUNC(grub_pci_iterate) (grub_pci_iteratefunc_t hook, - void *hook_data); - --struct grub_pci_dma_chunk; -- --struct grub_pci_dma_chunk *EXPORT_FUNC(grub_memalign_dma32) (grub_size_t align, -- grub_size_t size); --void EXPORT_FUNC(grub_dma_free) (struct grub_pci_dma_chunk *ch); --volatile void *EXPORT_FUNC(grub_dma_get_virt) (struct grub_pci_dma_chunk *ch); --grub_uint32_t EXPORT_FUNC(grub_dma_get_phys) (struct grub_pci_dma_chunk *ch); -- --static inline void * --grub_dma_phys2virt (grub_uint32_t phys, struct grub_pci_dma_chunk *chunk) --{ -- return ((grub_uint8_t *) grub_dma_get_virt (chunk) -- + (phys - grub_dma_get_phys (chunk))); --} -- --static inline grub_uint32_t --grub_dma_virt2phys (volatile void *virt, struct grub_pci_dma_chunk *chunk) --{ -- return (((grub_uint8_t *) virt - (grub_uint8_t *) grub_dma_get_virt (chunk)) -- + grub_dma_get_phys (chunk)); --} -+#include - - grub_uint8_t - EXPORT_FUNC (grub_pci_find_capability) (grub_pci_device_t dev, grub_uint8_t cap); -diff --git a/grub-core/kern/arm/cache_armv7.S b/grub-core/kern/arm/cache_armv7.S -index 1ef2754af8a..5ae76a3d819 100644 ---- a/grub-core/kern/arm/cache_armv7.S -+++ b/grub-core/kern/arm/cache_armv7.S -@@ -33,6 +33,18 @@ - # define ISB isb - #define ARMV7 1 - -+FUNCTION(grub_arm_clean_dcache_range_poc_armv7) -+ DSB -+ @ Clean data cache for range to point-of-coherence -+1: cmp r0, r1 -+ bge 2f -+ mcr p15, 0, r0, c7, c14, 1 @ DCCMVAC -+ add r0, r0, r2 @ Next line -+ b 1b -+2: DSB -+ bx lr -+ -+ - @ r0 - CLIDR - @ r1 - LoC - @ r2 - current level -diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am -index a2aaf9f54b0..10451384720 100644 ---- a/grub-core/Makefile.am -+++ b/grub-core/Makefile.am -@@ -248,6 +248,7 @@ KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/gfxterm.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/font.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/bufio.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/fdt.h -+KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/dma.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/arm/coreboot/kernel.h - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/fdtbus.h - endif diff --git a/0091-Don-t-add-to-highlighted-row.patch b/0028-Don-t-add-to-highlighted-row.patch similarity index 92% rename from 0091-Don-t-add-to-highlighted-row.patch rename to 0028-Don-t-add-to-highlighted-row.patch index 70a2666f..b2d55757 100644 --- a/0091-Don-t-add-to-highlighted-row.patch +++ b/0028-Don-t-add-to-highlighted-row.patch @@ -1,4 +1,4 @@ -From 5ae2484f263365351a2891be6c056eeb96b3924b Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 17:49:45 -0400 Subject: [PATCH] Don't add '*' to highlighted row diff --git a/0028-ehci-Split-core-code-from-PCI-part.patch b/0028-ehci-Split-core-code-from-PCI-part.patch deleted file mode 100644 index b64bf2b2..00000000 --- a/0028-ehci-Split-core-code-from-PCI-part.patch +++ /dev/null @@ -1,568 +0,0 @@ -From 058df7b5a9cc7aaa9872eaa916b715544a8f9840 Mon Sep 17 00:00:00 2001 -From: Vladimir Serbinenko -Date: Mon, 8 May 2017 22:10:26 +0200 -Subject: [PATCH] ehci: Split core code from PCI part. - -On ARM often EHCI is present without PCI and just declared in device -tree. So splitcore from PCI part. ---- - grub-core/Makefile.core.def | 1 + - grub-core/bus/usb/ehci-pci.c | 208 +++++++++++++++++++++++++++++++++++++++++++ - grub-core/bus/usb/ehci.c | 201 +++-------------------------------------- - 3 files changed, 223 insertions(+), 187 deletions(-) - create mode 100644 grub-core/bus/usb/ehci-pci.c - -diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index e4f253a205e..4745eb4d93e 100644 ---- a/grub-core/Makefile.core.def -+++ b/grub-core/Makefile.core.def -@@ -593,6 +593,7 @@ module = { - module = { - name = ehci; - common = bus/usb/ehci.c; -+ pci = bus/usb/ehci-pci.c; - enable = pci; - }; - -diff --git a/grub-core/bus/usb/ehci-pci.c b/grub-core/bus/usb/ehci-pci.c -new file mode 100644 -index 00000000000..65e6cb57438 ---- /dev/null -+++ b/grub-core/bus/usb/ehci-pci.c -@@ -0,0 +1,208 @@ -+/* ehci.c - EHCI Support. */ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2011 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#define GRUB_EHCI_PCI_SBRN_REG 0x60 -+#define GRUB_EHCI_ADDR_MEM_MASK (~0xff) -+ -+/* USBLEGSUP bits and related OS OWNED byte offset */ -+enum -+{ -+ GRUB_EHCI_BIOS_OWNED = (1 << 16), -+ GRUB_EHCI_OS_OWNED = (1 << 24) -+}; -+ -+/* PCI iteration function... */ -+static int -+grub_ehci_pci_iter (grub_pci_device_t dev, grub_pci_id_t pciid, -+ void *data __attribute__ ((unused))) -+{ -+ volatile grub_uint32_t *regs; -+ grub_uint32_t base, base_h; -+ grub_uint32_t eecp_offset; -+ grub_uint32_t usblegsup = 0; -+ grub_uint64_t maxtime; -+ grub_uint32_t interf; -+ grub_uint32_t subclass; -+ grub_uint32_t class; -+ grub_uint8_t release; -+ grub_uint32_t class_code; -+ -+ grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: begin\n"); -+ -+ if (pciid == GRUB_CS5536_PCIID) -+ { -+ grub_uint64_t basereg; -+ -+ basereg = grub_cs5536_read_msr (dev, GRUB_CS5536_MSR_USB_EHCI_BASE); -+ if (!(basereg & GRUB_CS5536_MSR_USB_BASE_MEMORY_ENABLE)) -+ { -+ /* Shouldn't happen. */ -+ grub_dprintf ("ehci", "No EHCI address is assigned\n"); -+ return 0; -+ } -+ base = (basereg & GRUB_CS5536_MSR_USB_BASE_ADDR_MASK); -+ basereg |= GRUB_CS5536_MSR_USB_BASE_BUS_MASTER; -+ basereg &= ~GRUB_CS5536_MSR_USB_BASE_PME_ENABLED; -+ basereg &= ~GRUB_CS5536_MSR_USB_BASE_PME_STATUS; -+ basereg &= ~GRUB_CS5536_MSR_USB_BASE_SMI_ENABLE; -+ grub_cs5536_write_msr (dev, GRUB_CS5536_MSR_USB_EHCI_BASE, basereg); -+ } -+ else -+ { -+ grub_pci_address_t addr; -+ addr = grub_pci_make_address (dev, GRUB_PCI_REG_CLASS); -+ class_code = grub_pci_read (addr) >> 8; -+ interf = class_code & 0xFF; -+ subclass = (class_code >> 8) & 0xFF; -+ class = class_code >> 16; -+ -+ /* If this is not an EHCI controller, just return. */ -+ if (class != 0x0c || subclass != 0x03 || interf != 0x20) -+ return 0; -+ -+ grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: class OK\n"); -+ -+ /* Check Serial Bus Release Number */ -+ addr = grub_pci_make_address (dev, GRUB_EHCI_PCI_SBRN_REG); -+ release = grub_pci_read_byte (addr); -+ if (release != 0x20) -+ { -+ grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: Wrong SBRN: %0x\n", -+ release); -+ return 0; -+ } -+ grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: bus rev. num. OK\n"); -+ -+ /* Determine EHCI EHCC registers base address. */ -+ addr = grub_pci_make_address (dev, GRUB_PCI_REG_ADDRESS_REG0); -+ base = grub_pci_read (addr); -+ addr = grub_pci_make_address (dev, GRUB_PCI_REG_ADDRESS_REG1); -+ base_h = grub_pci_read (addr); -+ /* Stop if registers are mapped above 4G - GRUB does not currently -+ * work with registers mapped above 4G */ -+ if (((base & GRUB_PCI_ADDR_MEM_TYPE_MASK) != GRUB_PCI_ADDR_MEM_TYPE_32) -+ && (base_h != 0)) -+ { -+ grub_dprintf ("ehci", -+ "EHCI grub_ehci_pci_iter: registers above 4G are not supported\n"); -+ return 0; -+ } -+ base &= GRUB_PCI_ADDR_MEM_MASK; -+ if (!base) -+ { -+ grub_dprintf ("ehci", -+ "EHCI: EHCI is not mapped\n"); -+ return 0; -+ } -+ -+ /* Set bus master - needed for coreboot, VMware, broken BIOSes etc. */ -+ addr = grub_pci_make_address (dev, GRUB_PCI_REG_COMMAND); -+ grub_pci_write_word(addr, -+ GRUB_PCI_COMMAND_MEM_ENABLED -+ | GRUB_PCI_COMMAND_BUS_MASTER -+ | grub_pci_read_word(addr)); -+ -+ grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: 32-bit EHCI OK\n"); -+ } -+ -+ grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: iobase of EHCC: %08x\n", -+ (base & GRUB_EHCI_ADDR_MEM_MASK)); -+ -+ regs = grub_pci_device_map_range (dev, -+ (base & GRUB_EHCI_ADDR_MEM_MASK), -+ 0x100); -+ -+ /* Is there EECP ? */ -+ eecp_offset = (grub_le_to_cpu32 (regs[2]) >> 8) & 0xff; -+ -+ /* Determine and change ownership. */ -+ /* EECP offset valid in HCCPARAMS */ -+ /* Ownership can be changed via EECP only */ -+ if (pciid != GRUB_CS5536_PCIID && eecp_offset >= 0x40) -+ { -+ grub_pci_address_t pciaddr_eecp; -+ pciaddr_eecp = grub_pci_make_address (dev, eecp_offset); -+ -+ usblegsup = grub_pci_read (pciaddr_eecp); -+ if (usblegsup & GRUB_EHCI_BIOS_OWNED) -+ { -+ grub_boot_time ("Taking ownership of EHCI controller"); -+ grub_dprintf ("ehci", -+ "EHCI grub_ehci_pci_iter: EHCI owned by: BIOS\n"); -+ /* Ownership change - set OS_OWNED bit */ -+ grub_pci_write (pciaddr_eecp, usblegsup | GRUB_EHCI_OS_OWNED); -+ /* Ensure PCI register is written */ -+ grub_pci_read (pciaddr_eecp); -+ -+ /* Wait for finish of ownership change, EHCI specification -+ * doesn't say how long it can take... */ -+ maxtime = grub_get_time_ms () + 1000; -+ while ((grub_pci_read (pciaddr_eecp) & GRUB_EHCI_BIOS_OWNED) -+ && (grub_get_time_ms () < maxtime)); -+ if (grub_pci_read (pciaddr_eecp) & GRUB_EHCI_BIOS_OWNED) -+ { -+ grub_dprintf ("ehci", -+ "EHCI grub_ehci_pci_iter: EHCI change ownership timeout"); -+ /* Change ownership in "hard way" - reset BIOS ownership */ -+ grub_pci_write (pciaddr_eecp, GRUB_EHCI_OS_OWNED); -+ /* Ensure PCI register is written */ -+ grub_pci_read (pciaddr_eecp); -+ } -+ } -+ else if (usblegsup & GRUB_EHCI_OS_OWNED) -+ /* XXX: What to do in this case - nothing ? Can it happen ? */ -+ grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: EHCI owned by: OS\n"); -+ else -+ { -+ grub_dprintf ("ehci", -+ "EHCI grub_ehci_pci_iter: EHCI owned by: NONE\n"); -+ /* XXX: What to do in this case ? Can it happen ? -+ * Is code below correct ? */ -+ /* Ownership change - set OS_OWNED bit */ -+ grub_pci_write (pciaddr_eecp, GRUB_EHCI_OS_OWNED); -+ /* Ensure PCI register is written */ -+ grub_pci_read (pciaddr_eecp); -+ } -+ -+ /* Disable SMI, just to be sure. */ -+ pciaddr_eecp = grub_pci_make_address (dev, eecp_offset + 4); -+ grub_pci_write (pciaddr_eecp, 0); -+ /* Ensure PCI register is written */ -+ grub_pci_read (pciaddr_eecp); -+ } -+ -+ grub_dprintf ("ehci", "inithw: EHCI grub_ehci_pci_iter: ownership OK\n"); -+ -+ grub_ehci_init_device (regs); -+ return 0; -+} -+ -+void -+grub_ehci_pci_scan (void) -+{ -+ grub_pci_iterate (grub_ehci_pci_iter, NULL); -+} -diff --git a/grub-core/bus/usb/ehci.c b/grub-core/bus/usb/ehci.c -index 5f4297bb21e..c772e76546e 100644 ---- a/grub-core/bus/usb/ehci.c -+++ b/grub-core/bus/usb/ehci.c -@@ -22,13 +22,10 @@ - #include - #include - #include --#include --#include --#include - #include - #include --#include - #include -+#include - #include - - GRUB_MOD_LICENSE ("GPLv3+"); -@@ -39,8 +36,6 @@ GRUB_MOD_LICENSE ("GPLv3+"); - * - is not supporting interrupt transfers - */ - --#define GRUB_EHCI_PCI_SBRN_REG 0x60 -- - /* Capability registers offsets */ - enum - { -@@ -54,7 +49,6 @@ enum - #define GRUB_EHCI_EECP_MASK (0xff << 8) - #define GRUB_EHCI_EECP_SHIFT 8 - --#define GRUB_EHCI_ADDR_MEM_MASK (~0xff) - #define GRUB_EHCI_POINTER_MASK (~0x1f) - - /* Capability register SPARAMS bits */ -@@ -85,13 +79,6 @@ enum - - #define GRUB_EHCI_QH_EMPTY 1 - --/* USBLEGSUP bits and related OS OWNED byte offset */ --enum --{ -- GRUB_EHCI_BIOS_OWNED = (1 << 16), -- GRUB_EHCI_OS_OWNED = (1 << 24) --}; -- - /* Operational registers offsets */ - enum - { -@@ -455,9 +442,10 @@ grub_ehci_reset (struct grub_ehci *e) - - sync_all_caches (e); - -+ grub_dprintf ("ehci", "reset\n"); -+ - grub_ehci_oper_write32 (e, GRUB_EHCI_COMMAND, -- GRUB_EHCI_CMD_HC_RESET -- | grub_ehci_oper_read32 (e, GRUB_EHCI_COMMAND)); -+ GRUB_EHCI_CMD_HC_RESET); - /* Ensure command is written */ - grub_ehci_oper_read32 (e, GRUB_EHCI_COMMAND); - /* XXX: How long time could take reset of HC ? */ -@@ -473,116 +461,24 @@ grub_ehci_reset (struct grub_ehci *e) - } - - /* PCI iteration function... */ --static int --grub_ehci_pci_iter (grub_pci_device_t dev, grub_pci_id_t pciid, -- void *data __attribute__ ((unused))) -+void -+grub_ehci_init_device (volatile void *regs) - { -- grub_uint8_t release; -- grub_uint32_t class_code; -- grub_uint32_t interf; -- grub_uint32_t subclass; -- grub_uint32_t class; -- grub_uint32_t base, base_h; - struct grub_ehci *e; -- grub_uint32_t eecp_offset; - grub_uint32_t fp; - int i; -- grub_uint32_t usblegsup = 0; -- grub_uint64_t maxtime; - grub_uint32_t n_ports; - grub_uint8_t caplen; - -- grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: begin\n"); -- -- if (pciid == GRUB_CS5536_PCIID) -- { -- grub_uint64_t basereg; -- -- basereg = grub_cs5536_read_msr (dev, GRUB_CS5536_MSR_USB_EHCI_BASE); -- if (!(basereg & GRUB_CS5536_MSR_USB_BASE_MEMORY_ENABLE)) -- { -- /* Shouldn't happen. */ -- grub_dprintf ("ehci", "No EHCI address is assigned\n"); -- return 0; -- } -- base = (basereg & GRUB_CS5536_MSR_USB_BASE_ADDR_MASK); -- basereg |= GRUB_CS5536_MSR_USB_BASE_BUS_MASTER; -- basereg &= ~GRUB_CS5536_MSR_USB_BASE_PME_ENABLED; -- basereg &= ~GRUB_CS5536_MSR_USB_BASE_PME_STATUS; -- basereg &= ~GRUB_CS5536_MSR_USB_BASE_SMI_ENABLE; -- grub_cs5536_write_msr (dev, GRUB_CS5536_MSR_USB_EHCI_BASE, basereg); -- } -- else -- { -- grub_pci_address_t addr; -- addr = grub_pci_make_address (dev, GRUB_PCI_REG_CLASS); -- class_code = grub_pci_read (addr) >> 8; -- interf = class_code & 0xFF; -- subclass = (class_code >> 8) & 0xFF; -- class = class_code >> 16; -- -- /* If this is not an EHCI controller, just return. */ -- if (class != 0x0c || subclass != 0x03 || interf != 0x20) -- return 0; -- -- grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: class OK\n"); -- -- /* Check Serial Bus Release Number */ -- addr = grub_pci_make_address (dev, GRUB_EHCI_PCI_SBRN_REG); -- release = grub_pci_read_byte (addr); -- if (release != 0x20) -- { -- grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: Wrong SBRN: %0x\n", -- release); -- return 0; -- } -- grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: bus rev. num. OK\n"); -- -- /* Determine EHCI EHCC registers base address. */ -- addr = grub_pci_make_address (dev, GRUB_PCI_REG_ADDRESS_REG0); -- base = grub_pci_read (addr); -- addr = grub_pci_make_address (dev, GRUB_PCI_REG_ADDRESS_REG1); -- base_h = grub_pci_read (addr); -- /* Stop if registers are mapped above 4G - GRUB does not currently -- * work with registers mapped above 4G */ -- if (((base & GRUB_PCI_ADDR_MEM_TYPE_MASK) != GRUB_PCI_ADDR_MEM_TYPE_32) -- && (base_h != 0)) -- { -- grub_dprintf ("ehci", -- "EHCI grub_ehci_pci_iter: registers above 4G are not supported\n"); -- return 0; -- } -- base &= GRUB_PCI_ADDR_MEM_MASK; -- if (!base) -- { -- grub_dprintf ("ehci", -- "EHCI: EHCI is not mapped\n"); -- return 0; -- } -- -- /* Set bus master - needed for coreboot, VMware, broken BIOSes etc. */ -- addr = grub_pci_make_address (dev, GRUB_PCI_REG_COMMAND); -- grub_pci_write_word(addr, -- GRUB_PCI_COMMAND_MEM_ENABLED -- | GRUB_PCI_COMMAND_BUS_MASTER -- | grub_pci_read_word(addr)); -- -- grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: 32-bit EHCI OK\n"); -- } -- - /* Allocate memory for the controller and fill basic values. */ - e = grub_zalloc (sizeof (*e)); - if (!e) -- return 1; -+ return; - e->framelist_chunk = NULL; - e->td_chunk = NULL; - e->qh_chunk = NULL; -- e->iobase_ehcc = grub_pci_device_map_range (dev, -- (base & GRUB_EHCI_ADDR_MEM_MASK), -- 0x100); -+ e->iobase_ehcc = regs; - -- grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: iobase of EHCC: %08x\n", -- (base & GRUB_EHCI_ADDR_MEM_MASK)); - grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: CAPLEN: %02x\n", - grub_ehci_ehcc_read8 (e, GRUB_EHCI_EHCC_CAPLEN)); - grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: VERSION: %04x\n", -@@ -598,7 +494,7 @@ grub_ehci_pci_iter (grub_pci_device_t dev, grub_pci_id_t pciid, - if (caplen & (sizeof (grub_uint32_t) - 1)) - { - grub_dprintf ("ehci", "Unaligned caplen\n"); -- return 0; -+ return; - } - e->iobase = ((volatile grub_uint32_t *) e->iobase_ehcc - + (caplen / sizeof (grub_uint32_t))); -@@ -609,7 +505,7 @@ grub_ehci_pci_iter (grub_pci_device_t dev, grub_pci_id_t pciid, - - grub_dprintf ("ehci", - "EHCI grub_ehci_pci_iter: iobase of oper. regs: %08x\n", -- (base & GRUB_EHCI_ADDR_MEM_MASK) + caplen); -+ (grub_addr_t) e->iobase_ehcc + caplen); - grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: COMMAND: %08x\n", - grub_ehci_oper_read32 (e, GRUB_EHCI_COMMAND)); - grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: STATUS: %08x\n", -@@ -625,10 +521,6 @@ grub_ehci_pci_iter (grub_pci_device_t dev, grub_pci_id_t pciid, - grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: CONFIG_FLAG: %08x\n", - grub_ehci_oper_read32 (e, GRUB_EHCI_CONFIG_FLAG)); - -- /* Is there EECP ? */ -- eecp_offset = (grub_ehci_ehcc_read32 (e, GRUB_EHCI_EHCC_CPARAMS) -- & GRUB_EHCI_EECP_MASK) >> GRUB_EHCI_EECP_SHIFT; -- - /* Check format of data structures requested by EHCI */ - /* XXX: In fact it is not used at any place, it is prepared for future - * This implementation uses 32-bits pointers only */ -@@ -732,65 +624,6 @@ grub_ehci_pci_iter (grub_pci_device_t dev, grub_pci_id_t pciid, - - grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: QH/TD init. OK\n"); - -- /* Determine and change ownership. */ -- /* EECP offset valid in HCCPARAMS */ -- /* Ownership can be changed via EECP only */ -- if (pciid != GRUB_CS5536_PCIID && eecp_offset >= 0x40) -- { -- grub_pci_address_t pciaddr_eecp; -- pciaddr_eecp = grub_pci_make_address (dev, eecp_offset); -- -- usblegsup = grub_pci_read (pciaddr_eecp); -- if (usblegsup & GRUB_EHCI_BIOS_OWNED) -- { -- grub_boot_time ("Taking ownership of EHCI controller"); -- grub_dprintf ("ehci", -- "EHCI grub_ehci_pci_iter: EHCI owned by: BIOS\n"); -- /* Ownership change - set OS_OWNED bit */ -- grub_pci_write (pciaddr_eecp, usblegsup | GRUB_EHCI_OS_OWNED); -- /* Ensure PCI register is written */ -- grub_pci_read (pciaddr_eecp); -- -- /* Wait for finish of ownership change, EHCI specification -- * doesn't say how long it can take... */ -- maxtime = grub_get_time_ms () + 1000; -- while ((grub_pci_read (pciaddr_eecp) & GRUB_EHCI_BIOS_OWNED) -- && (grub_get_time_ms () < maxtime)); -- if (grub_pci_read (pciaddr_eecp) & GRUB_EHCI_BIOS_OWNED) -- { -- grub_dprintf ("ehci", -- "EHCI grub_ehci_pci_iter: EHCI change ownership timeout"); -- /* Change ownership in "hard way" - reset BIOS ownership */ -- grub_pci_write (pciaddr_eecp, GRUB_EHCI_OS_OWNED); -- /* Ensure PCI register is written */ -- grub_pci_read (pciaddr_eecp); -- } -- } -- else if (usblegsup & GRUB_EHCI_OS_OWNED) -- /* XXX: What to do in this case - nothing ? Can it happen ? */ -- grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: EHCI owned by: OS\n"); -- else -- { -- grub_dprintf ("ehci", -- "EHCI grub_ehci_pci_iter: EHCI owned by: NONE\n"); -- /* XXX: What to do in this case ? Can it happen ? -- * Is code below correct ? */ -- /* Ownership change - set OS_OWNED bit */ -- grub_pci_write (pciaddr_eecp, GRUB_EHCI_OS_OWNED); -- /* Ensure PCI register is written */ -- grub_pci_read (pciaddr_eecp); -- } -- -- /* Disable SMI, just to be sure. */ -- pciaddr_eecp = grub_pci_make_address (dev, eecp_offset + 4); -- grub_pci_write (pciaddr_eecp, 0); -- /* Ensure PCI register is written */ -- grub_pci_read (pciaddr_eecp); -- -- } -- -- grub_dprintf ("ehci", "inithw: EHCI grub_ehci_pci_iter: ownership OK\n"); -- - /* Now we can setup EHCI (maybe...) */ - - /* Check if EHCI is halted and halt it if not */ -@@ -864,7 +697,7 @@ grub_ehci_pci_iter (grub_pci_device_t dev, grub_pci_id_t pciid, - - grub_dprintf ("ehci", - "EHCI grub_ehci_pci_iter: iobase of oper. regs: %08x\n", -- (base & GRUB_EHCI_ADDR_MEM_MASK)); -+ (grub_addr_t) regs); - grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: COMMAND: %08x\n", - grub_ehci_oper_read32 (e, GRUB_EHCI_COMMAND)); - grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: STATUS: %08x\n", -@@ -880,7 +713,7 @@ grub_ehci_pci_iter (grub_pci_device_t dev, grub_pci_id_t pciid, - grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: CONFIG_FLAG: %08x\n", - grub_ehci_oper_read32 (e, GRUB_EHCI_CONFIG_FLAG)); - -- return 0; -+ return; - - fail: - if (e) -@@ -894,7 +727,7 @@ fail: - } - grub_free (e); - -- return 0; -+ return; - } - - static int -@@ -1891,12 +1724,6 @@ grub_ehci_detect_dev (grub_usb_controller_t dev, int port, int *changed) - } - } - --static void --grub_ehci_inithw (void) --{ -- grub_pci_iterate (grub_ehci_pci_iter, NULL); --} -- - static grub_err_t - grub_ehci_restore_hw (void) - { -@@ -1997,7 +1824,7 @@ GRUB_MOD_INIT (ehci) - grub_stop_disk_firmware (); - - grub_boot_time ("Initing EHCI hardware"); -- grub_ehci_inithw (); -+ grub_ehci_pci_scan (); - grub_boot_time ("Registering EHCI driver"); - grub_usb_controller_dev_register (&usb_controller); - grub_boot_time ("EHCI driver registered"); diff --git a/0092-Message-string-cleanups.patch b/0029-Message-string-cleanups.patch similarity index 97% rename from 0092-Message-string-cleanups.patch rename to 0029-Message-string-cleanups.patch index 09f2a835..9b6208e9 100644 --- a/0092-Message-string-cleanups.patch +++ b/0029-Message-string-cleanups.patch @@ -1,4 +1,4 @@ -From 622b238ecb927d331dc38083584a7323013b5f21 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 11:09:04 -0400 Subject: [PATCH] Message string cleanups diff --git a/0029-arm_coreboot-Support-EHCI.patch b/0029-arm_coreboot-Support-EHCI.patch deleted file mode 100644 index e654a1d5..00000000 --- a/0029-arm_coreboot-Support-EHCI.patch +++ /dev/null @@ -1,120 +0,0 @@ -From d11ced1e1fb93676942e51618eb53c140f541890 Mon Sep 17 00:00:00 2001 -From: Vladimir Serbinenko -Date: Mon, 8 May 2017 22:14:28 +0200 -Subject: [PATCH] arm_coreboot: Support EHCI. - ---- - grub-core/Makefile.core.def | 2 ++ - grub-core/bus/usb/ehci-fdt.c | 45 ++++++++++++++++++++++++++++++++++++++++++++ - grub-core/bus/usb/usbtrans.c | 2 +- - include/grub/usb.h | 4 ++++ - gentpl.py | 2 +- - 5 files changed, 53 insertions(+), 2 deletions(-) - create mode 100644 grub-core/bus/usb/ehci-fdt.c - -diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 4745eb4d93e..5ce506597a6 100644 ---- a/grub-core/Makefile.core.def -+++ b/grub-core/Makefile.core.def -@@ -593,8 +593,10 @@ module = { - module = { - name = ehci; - common = bus/usb/ehci.c; -+ arm_coreboot = bus/usb/ehci-fdt.c; - pci = bus/usb/ehci-pci.c; - enable = pci; -+ enable = arm_coreboot; - }; - - module = { -diff --git a/grub-core/bus/usb/ehci-fdt.c b/grub-core/bus/usb/ehci-fdt.c -new file mode 100644 -index 00000000000..29b50bdd5c3 ---- /dev/null -+++ b/grub-core/bus/usb/ehci-fdt.c -@@ -0,0 +1,45 @@ -+/* ehci.c - EHCI Support. */ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2011 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+ -+static grub_err_t -+ehci_attach(const struct grub_fdtbus_dev *dev) -+{ -+ grub_dprintf ("ehci", "Found generic-ehci\n"); -+ -+ grub_ehci_init_device (grub_fdtbus_map_reg (dev, 0, 0)); -+ return 0; -+} -+ -+struct grub_fdtbus_driver ehci = -+{ -+ .compatible = "generic-ehci", -+ .attach = ehci_attach -+}; -+ -+void -+grub_ehci_pci_scan (void) -+{ -+ grub_fdtbus_register (&ehci); -+} -diff --git a/grub-core/bus/usb/usbtrans.c b/grub-core/bus/usb/usbtrans.c -index 9266e49311c..85f081fffb3 100644 ---- a/grub-core/bus/usb/usbtrans.c -+++ b/grub-core/bus/usb/usbtrans.c -@@ -18,7 +18,7 @@ - */ - - #include --#include -+#include - #include - #include - #include -diff --git a/include/grub/usb.h b/include/grub/usb.h -index 11d96481ff6..512ae1dd0e6 100644 ---- a/include/grub/usb.h -+++ b/include/grub/usb.h -@@ -321,5 +321,9 @@ grub_usb_err_t - grub_usb_check_transfer (grub_usb_transfer_t trans, grub_size_t *actual); - void - grub_usb_cancel_transfer (grub_usb_transfer_t trans); -+void -+grub_ehci_init_device (volatile void *regs); -+void -+grub_ehci_pci_scan (void); - - #endif /* GRUB_USB_H */ -diff --git a/gentpl.py b/gentpl.py -index ed268178b4d..da67965a41a 100644 ---- a/gentpl.py -+++ b/gentpl.py -@@ -63,7 +63,7 @@ GROUPS["cmos"] = GROUPS["x86"][:] + ["mips_loongson", "mips_qemu_mips", - "sparc64_ieee1275", "powerpc_ieee1275"] - GROUPS["cmos"].remove("i386_efi"); GROUPS["cmos"].remove("x86_64_efi"); - GROUPS["pci"] = GROUPS["x86"] + ["mips_loongson"] --GROUPS["usb"] = GROUPS["pci"] -+GROUPS["usb"] = GROUPS["pci"] + ["arm_coreboot"] - - # If gfxterm is main output console integrate it into kernel - GROUPS["videoinkernel"] = ["mips_loongson", "i386_coreboot", "arm_coreboot" ] diff --git a/0093-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch b/0030-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch similarity index 93% rename from 0093-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch rename to 0030-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch index a04fb3ed..504f2735 100644 --- a/0093-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch +++ b/0030-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch @@ -1,4 +1,4 @@ -From c7dac08ab344638afabf579e03bedfac729e1944 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:08:23 -0400 Subject: [PATCH] Fix border spacing now that we aren't displaying it diff --git a/0030-Fix-bug-on-FDT-nodes-with-compatible-property.patch b/0030-Fix-bug-on-FDT-nodes-with-compatible-property.patch deleted file mode 100644 index b756d2bc..00000000 --- a/0030-Fix-bug-on-FDT-nodes-with-compatible-property.patch +++ /dev/null @@ -1,22 +0,0 @@ -From 4f8471532d454b2db96434c28bf7105ed69e0f4d Mon Sep 17 00:00:00 2001 -From: Vladimir Serbinenko -Date: Tue, 9 May 2017 08:39:40 +0200 -Subject: [PATCH] Fix bug on FDT nodes with compatible property - ---- - grub-core/bus/fdt.c | 2 ++ - 1 file changed, 2 insertions(+) - -diff --git a/grub-core/bus/fdt.c b/grub-core/bus/fdt.c -index 6fb077000a5..34d53545732 100644 ---- a/grub-core/bus/fdt.c -+++ b/grub-core/bus/fdt.c -@@ -43,6 +43,8 @@ is_compatible (struct grub_fdtbus_driver *driver, - grub_size_t compatible_size; - const char *compatible = grub_fdt_get_prop (dtb, node, "compatible", - &compatible_size); -+ if (!compatible) -+ return 0; - const char *compatible_end = compatible + compatible_size; - while (compatible < compatible_end) - { diff --git a/0094-Use-the-correct-indentation-for-the-term-help-text.patch b/0031-Use-the-correct-indentation-for-the-term-help-text.patch similarity index 93% rename from 0094-Use-the-correct-indentation-for-the-term-help-text.patch rename to 0031-Use-the-correct-indentation-for-the-term-help-text.patch index 7b22a92e..d2bf366e 100644 --- a/0094-Use-the-correct-indentation-for-the-term-help-text.patch +++ b/0031-Use-the-correct-indentation-for-the-term-help-text.patch @@ -1,4 +1,4 @@ -From 8a59d6c44d946eac70ecbb7a9418c5d6801add8b Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:08:49 -0400 Subject: [PATCH] Use the correct indentation for the term help text diff --git a/0031-fdtbus-Add-ability-to-send-receive-messages-on-paren.patch b/0031-fdtbus-Add-ability-to-send-receive-messages-on-paren.patch deleted file mode 100644 index a4171bd4..00000000 --- a/0031-fdtbus-Add-ability-to-send-receive-messages-on-paren.patch +++ /dev/null @@ -1,131 +0,0 @@ -From c4313c812dc14e82a774b580b5e34d40e7f3fae6 Mon Sep 17 00:00:00 2001 -From: Vladimir Serbinenko -Date: Tue, 9 May 2017 08:40:29 +0200 -Subject: [PATCH] fdtbus: Add ability to send/receive messages on parent - busses. - ---- - grub-core/bus/fdt.c | 35 +++++++++++++++++------------------ - include/grub/fdtbus.h | 18 +++++++++++++++++- - 2 files changed, 34 insertions(+), 19 deletions(-) - -diff --git a/grub-core/bus/fdt.c b/grub-core/bus/fdt.c -index 34d53545732..135da497ba6 100644 ---- a/grub-core/bus/fdt.c -+++ b/grub-core/bus/fdt.c -@@ -25,30 +25,22 @@ static grub_size_t root_address_cells, root_size_cells; - /* Pointer to this symbol signals invalid mapping. */ - char grub_fdtbus_invalid_mapping[1]; - --struct grub_fdtbus_dev --{ -- struct grub_fdtbus_dev *next; -- struct grub_fdtbus_dev *parent; -- int node; -- struct grub_fdtbus_driver *driver; --}; -- - struct grub_fdtbus_dev *devs; - struct grub_fdtbus_driver *drivers; - --static int --is_compatible (struct grub_fdtbus_driver *driver, -- int node) -+int -+grub_fdtbus_is_compatible (const char *compat_string, -+ const struct grub_fdtbus_dev *dev) - { - grub_size_t compatible_size; -- const char *compatible = grub_fdt_get_prop (dtb, node, "compatible", -+ const char *compatible = grub_fdt_get_prop (dtb, dev->node, "compatible", - &compatible_size); - if (!compatible) - return 0; - const char *compatible_end = compatible + compatible_size; - while (compatible < compatible_end) - { -- if (grub_strcmp (driver->compatible, compatible) == 0) -+ if (grub_strcmp (compat_string, compatible) == 0) - return 1; - compatible += grub_strlen (compatible) + 1; - } -@@ -75,10 +67,12 @@ fdtbus_scan (struct grub_fdtbus_dev *parent) - dev->parent = parent; - devs = dev; - FOR_LIST_ELEMENTS(driver, drivers) -- if (!dev->driver && is_compatible (driver, node)) -+ if (!dev->driver && grub_fdtbus_is_compatible (driver->compatible, dev)) - { -- if (driver->attach(dev) == GRUB_ERR_NONE) -+ grub_dprintf ("fdtbus", "Attaching %s\n", driver->compatible); -+ if (driver->attach (dev) == GRUB_ERR_NONE) - { -+ grub_dprintf ("fdtbus", "Attached %s\n", driver->compatible); - dev->driver = driver; - break; - } -@@ -92,13 +86,18 @@ void - grub_fdtbus_register (struct grub_fdtbus_driver *driver) - { - struct grub_fdtbus_dev *dev; -+ grub_dprintf ("fdtbus", "Registering %s\n", driver->compatible); - grub_list_push (GRUB_AS_LIST_P (&drivers), - GRUB_AS_LIST (driver)); - for (dev = devs; dev; dev = dev->next) -- if (!dev->driver && is_compatible (driver, dev->node)) -+ if (!dev->driver && grub_fdtbus_is_compatible (driver->compatible, dev)) - { -- if (driver->attach(dev) == GRUB_ERR_NONE) -- dev->driver = driver; -+ grub_dprintf ("fdtbus", "Attaching %s (%p)\n", driver->compatible, dev); -+ if (driver->attach (dev) == GRUB_ERR_NONE) -+ { -+ grub_dprintf ("fdtbus", "Attached %s\n", driver->compatible); -+ dev->driver = driver; -+ } - grub_print_error (); - } - } -diff --git a/include/grub/fdtbus.h b/include/grub/fdtbus.h -index 985837e55f6..f519c40ec35 100644 ---- a/include/grub/fdtbus.h -+++ b/include/grub/fdtbus.h -@@ -22,7 +22,13 @@ - #include - #include - --struct grub_fdtbus_dev; -+struct grub_fdtbus_dev -+{ -+ struct grub_fdtbus_dev *next; -+ struct grub_fdtbus_dev *parent; -+ int node; -+ struct grub_fdtbus_driver *driver; -+}; - - struct grub_fdtbus_driver - { -@@ -33,6 +39,12 @@ struct grub_fdtbus_driver - - grub_err_t (*attach) (const struct grub_fdtbus_dev *dev); - void (*detach) (const struct grub_fdtbus_dev *dev); -+ -+ /* Message bus operations. */ -+ grub_err_t (*send) (const struct grub_fdtbus_dev *dev, const void *data, grub_size_t sz); -+ grub_err_t (*receive) (const struct grub_fdtbus_dev *dev, void *data, grub_size_t sz); -+ grub_err_t (*start) (const struct grub_fdtbus_dev *dev); -+ void (*stop) (const struct grub_fdtbus_dev *dev); - }; - - extern char EXPORT_VAR(grub_fdtbus_invalid_mapping)[1]; -@@ -63,6 +75,10 @@ EXPORT_FUNC(grub_fdtbus_register) (struct grub_fdtbus_driver *driver); - void - EXPORT_FUNC(grub_fdtbus_unregister) (struct grub_fdtbus_driver *driver); - -+int -+EXPORT_FUNC(grub_fdtbus_is_compatible) (const char *compat_string, -+ const struct grub_fdtbus_dev *dev); -+ - /* Must be called before any register(). */ - /* dtb is assumed to be unfreeable and must remain - valid for lifetime of GRUB. diff --git a/0095-Indent-menu-entries.patch b/0032-Indent-menu-entries.patch similarity index 92% rename from 0095-Indent-menu-entries.patch rename to 0032-Indent-menu-entries.patch index 2e089049..7a843ec0 100644 --- a/0095-Indent-menu-entries.patch +++ b/0032-Indent-menu-entries.patch @@ -1,4 +1,4 @@ -From 018439ecfda2bc5049ccbfb0d6ab7fa047411a3b Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:30:55 -0400 Subject: [PATCH] Indent menu entries diff --git a/0032-rk3288_spi-Add-SPI-driver.patch b/0032-rk3288_spi-Add-SPI-driver.patch deleted file mode 100644 index ea989323..00000000 --- a/0032-rk3288_spi-Add-SPI-driver.patch +++ /dev/null @@ -1,162 +0,0 @@ -From b0b1b81a11f8bae8ab9e8edd87ac3f4f7949d03b Mon Sep 17 00:00:00 2001 -From: Vladimir Serbinenko -Date: Tue, 9 May 2017 08:42:14 +0200 -Subject: [PATCH] rk3288_spi: Add SPI driver - ---- - grub-core/Makefile.core.def | 1 + - grub-core/bus/spi/rk3288_spi.c | 103 +++++++++++++++++++++++++++++++++++++ - grub-core/kern/arm/coreboot/init.c | 2 + - include/grub/arm/coreboot/kernel.h | 4 +- - 4 files changed, 108 insertions(+), 2 deletions(-) - create mode 100644 grub-core/bus/spi/rk3288_spi.c - -diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 5ce506597a6..d2239f1718d 100644 ---- a/grub-core/Makefile.core.def -+++ b/grub-core/Makefile.core.def -@@ -162,6 +162,7 @@ kernel = { - arm_coreboot = bus/fdt.c; - arm_coreboot = term/ps2.c; - arm_coreboot = term/arm/pl050.c; -+ arm_coreboot = bus/spi/rk3288_spi.c; - arm_coreboot = commands/keylayouts.c; - arm_coreboot = kern/arm/coreboot/dma.c; - -diff --git a/grub-core/bus/spi/rk3288_spi.c b/grub-core/bus/spi/rk3288_spi.c -new file mode 100644 -index 00000000000..aacb79ffef1 ---- /dev/null -+++ b/grub-core/bus/spi/rk3288_spi.c -@@ -0,0 +1,103 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * -+ * Copyright (C) 2012 Google Inc. -+ * Copyright (C) 2016 Free Software Foundation, Inc. -+ * -+ * This is based on depthcharge code. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+ -+static grub_err_t -+spi_send (const struct grub_fdtbus_dev *dev, const void *data, grub_size_t sz) -+{ -+ const grub_uint8_t *ptr = data, *end = ptr + sz; -+ volatile grub_uint32_t *spi = grub_fdtbus_map_reg (dev, 0, 0); -+ spi[2] = 0; -+ spi[1] = sz - 1; -+ spi[0] = ((1 << 18) | spi[0]) & ~(1 << 19); -+ spi[2] = 1; -+ while (ptr < end) -+ { -+ while (spi[9] & 2); -+ spi[256] = *ptr++; -+ } -+ while (spi[9] & 1); -+ return GRUB_ERR_NONE; -+} -+ -+static grub_err_t -+spi_receive (const struct grub_fdtbus_dev *dev, void *data, grub_size_t sz) -+{ -+ grub_uint8_t *ptr = data, *end = ptr + sz; -+ volatile grub_uint32_t *spi = grub_fdtbus_map_reg (dev, 0, 0); -+ spi[2] = 0; -+ spi[1] = sz - 1; -+ spi[0] = ((1 << 19) | spi[0]) & ~(1 << 18); -+ spi[2] = 1; -+ while (ptr < end) -+ { -+ while (spi[9] & 8); -+ *ptr++ = spi[512]; -+ } -+ while (spi[9] & 1); -+ return GRUB_ERR_NONE; -+} -+ -+static grub_err_t -+spi_start (const struct grub_fdtbus_dev *dev) -+{ -+ volatile grub_uint32_t *spi = grub_fdtbus_map_reg (dev, 0, 0); -+ spi[3] = 1; -+ return GRUB_ERR_NONE; -+} -+ -+static void -+spi_stop (const struct grub_fdtbus_dev *dev) -+{ -+ volatile grub_uint32_t *spi = grub_fdtbus_map_reg (dev, 0, 0); -+ spi[3] = 0; -+} -+ -+static grub_err_t -+spi_attach(const struct grub_fdtbus_dev *dev) -+{ -+ if (!grub_fdtbus_is_mapping_valid (grub_fdtbus_map_reg (dev, 0, 0))) -+ return GRUB_ERR_IO; -+ -+ return GRUB_ERR_NONE; -+} -+ -+static struct grub_fdtbus_driver spi = -+{ -+ .compatible = "rockchip,rk3288-spi", -+ .attach = spi_attach, -+ .send = spi_send, -+ .receive = spi_receive, -+ .start = spi_start, -+ .stop = spi_stop, -+}; -+ -+void -+grub_rk3288_spi_init (void) -+{ -+ grub_fdtbus_register (&spi); -+} -diff --git a/grub-core/kern/arm/coreboot/init.c b/grub-core/kern/arm/coreboot/init.c -index a06ccb72f42..0126ff6381a 100644 ---- a/grub-core/kern/arm/coreboot/init.c -+++ b/grub-core/kern/arm/coreboot/init.c -@@ -132,6 +132,8 @@ grub_machine_init (void) - grub_fatal ("No DTB found"); - grub_fdtbus_init (dtb, dtb_size); - -+ grub_rk3288_spi_init (); -+ - grub_machine_timer_init (); - grub_pl050_init (); - } -diff --git a/include/grub/arm/coreboot/kernel.h b/include/grub/arm/coreboot/kernel.h -index 09cd7fe328c..26950534270 100644 ---- a/include/grub/arm/coreboot/kernel.h -+++ b/include/grub/arm/coreboot/kernel.h -@@ -34,8 +34,8 @@ struct grub_fdt_board - extern struct grub_fdt_board grub_fdt_boards[]; - void grub_machine_timer_init (void); - void grub_pl050_init (void); --void --grub_cros_init (void); -+void grub_cros_init (void); -+void grub_rk3288_spi_init (void); - extern grub_addr_t EXPORT_VAR (start_of_ram); - #endif /* ! ASM_FILE */ - diff --git a/0096-Fix-margins.patch b/0033-Fix-margins.patch similarity index 94% rename from 0096-Fix-margins.patch rename to 0033-Fix-margins.patch index 8a4f6fc5..9be17318 100644 --- a/0096-Fix-margins.patch +++ b/0033-Fix-margins.patch @@ -1,4 +1,4 @@ -From 33481aa0e7897465ffd386101d6f3eda6e3bbac0 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 14:59:36 -0400 Subject: [PATCH] Fix margins diff --git a/0033-arm_coreboot-Add-Chromebook-keyboard-driver.patch b/0033-arm_coreboot-Add-Chromebook-keyboard-driver.patch deleted file mode 100644 index 580ed9f9..00000000 --- a/0033-arm_coreboot-Add-Chromebook-keyboard-driver.patch +++ /dev/null @@ -1,416 +0,0 @@ -From 5c3fd1b135bd73c8e3467b9b635b25ca4d360a19 Mon Sep 17 00:00:00 2001 -From: Vladimir Serbinenko -Date: Tue, 9 May 2017 08:47:34 +0200 -Subject: [PATCH] arm_coreboot: Add Chromebook keyboard driver. - ---- - grub-core/term/arm/cros.c | 125 +++++++++++++++++++++++ - grub-core/term/arm/cros_ec.c | 238 +++++++++++++++++++++++++++++++++++++++++++ - include/grub/arm/cros_ec.h | 21 ++++ - 3 files changed, 384 insertions(+) - create mode 100644 grub-core/term/arm/cros.c - create mode 100644 grub-core/term/arm/cros_ec.c - create mode 100644 include/grub/arm/cros_ec.h - -diff --git a/grub-core/term/arm/cros.c b/grub-core/term/arm/cros.c -new file mode 100644 -index 00000000000..1ff9f8ccfb8 ---- /dev/null -+++ b/grub-core/term/arm/cros.c -@@ -0,0 +1,125 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * -+ * Copyright (C) 2012 Google Inc. -+ * Copyright (C) 2016 Free Software Foundation, Inc. -+ * -+ * This is based on depthcharge code. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+struct grub_ps2_state ps2_state; -+ -+struct grub_cros_ec_keyscan old_scan; -+ -+static const struct grub_fdtbus_dev *cros_ec; -+ -+static grub_uint8_t map_code[GRUB_CROS_EC_KEYSCAN_COLS][GRUB_CROS_EC_KEYSCAN_ROWS]; -+ -+static grub_uint8_t e0_translate[16] = -+ { -+ 0x1c, 0x1d, 0x35, 0x00, -+ 0x38, 0x00, 0x47, 0x48, -+ 0x49, 0x4b, 0x4d, 0x4f, -+ 0x50, 0x51, 0x52, 0x53, -+ }; -+ -+/* If there is a character pending, return it; -+ otherwise return GRUB_TERM_NO_KEY. */ -+static int -+grub_cros_keyboard_getkey (struct grub_term_input *term __attribute__ ((unused))) -+{ -+ struct grub_cros_ec_keyscan scan; -+ int i, j; -+ if (grub_cros_ec_scan_keyboard (cros_ec, &scan) < 0) -+ return GRUB_TERM_NO_KEY; -+ for (i = 0; i < GRUB_CROS_EC_KEYSCAN_COLS; i++) -+ if (scan.data[i] ^ old_scan.data[i]) -+ for (j = 0; j < GRUB_CROS_EC_KEYSCAN_ROWS; j++) -+ if ((scan.data[i] ^ old_scan.data[i]) & (1 << j)) -+ { -+ grub_uint8_t code = map_code[i][j]; -+ int ret; -+ grub_uint8_t brk = 0; -+ if (!(scan.data[i] & (1 << j))) -+ brk = 0x80; -+ grub_dprintf ("cros_keyboard", "key <%d, %d> code %x\n", i, j, code); -+ if (code < 0x60) -+ ret = grub_ps2_process_incoming_byte (&ps2_state, code | brk); -+ else if (code >= 0x60 && code < 0x70 && e0_translate[code - 0x60]) -+ { -+ grub_ps2_process_incoming_byte (&ps2_state, 0xe0); -+ ret = grub_ps2_process_incoming_byte (&ps2_state, e0_translate[code - 0x60] | brk); -+ } -+ else -+ ret = GRUB_TERM_NO_KEY; -+ old_scan.data[i] ^= (1 << j); -+ if (ret != GRUB_TERM_NO_KEY) -+ return ret; -+ } -+ return GRUB_TERM_NO_KEY; -+} -+ -+static struct grub_term_input grub_cros_keyboard_term = -+ { -+ .name = "cros_keyboard", -+ .getkey = grub_cros_keyboard_getkey -+ }; -+ -+static grub_err_t -+cros_attach (const struct grub_fdtbus_dev *dev) -+{ -+ grub_size_t keymap_size, i; -+ const grub_uint8_t *keymap = grub_fdtbus_get_prop (dev, "linux,keymap", &keymap_size); -+ -+ if (!dev->parent || !grub_cros_ec_validate (dev->parent)) -+ return GRUB_ERR_IO; -+ -+ if (keymap) -+ { -+ for (i = 0; i + 3 < keymap_size; i += 4) -+ if (keymap[i+1] < GRUB_CROS_EC_KEYSCAN_COLS && keymap[i] < GRUB_CROS_EC_KEYSCAN_ROWS -+ && keymap[i+2] == 0 && keymap[i+3] < 0x80) -+ map_code[keymap[i+1]][keymap[i]] = keymap[i+3]; -+ } -+ -+ cros_ec = dev->parent; -+ ps2_state.current_set = 1; -+ ps2_state.at_keyboard_status = 0; -+ grub_term_register_input ("cros_keyboard", &grub_cros_keyboard_term); -+ return GRUB_ERR_NONE; -+} -+ -+static struct grub_fdtbus_driver cros = -+{ -+ .compatible = "google,cros-ec-keyb", -+ .attach = cros_attach -+}; -+ -+void -+grub_cros_init (void) -+{ -+ grub_fdtbus_register (&cros); -+} -diff --git a/grub-core/term/arm/cros_ec.c b/grub-core/term/arm/cros_ec.c -new file mode 100644 -index 00000000000..f4144818b5b ---- /dev/null -+++ b/grub-core/term/arm/cros_ec.c -@@ -0,0 +1,238 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * -+ * Copyright (C) 2012 Google Inc. -+ * Copyright (C) 2016 Free Software Foundation, Inc. -+ * -+ * This is based on depthcharge code. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+ -+static const grub_uint64_t FRAMING_TIMEOUT_MS = 300; -+ -+static const grub_uint8_t EC_FRAMING_BYTE = 0xec; -+ -+#define EC_CMD_MKBP_STATE 0x60 -+#define EC_CMD_VERSION0 0xdc -+ -+static grub_uint64_t last_transfer; -+ -+static void -+stop_bus (const struct grub_fdtbus_dev *spi) -+{ -+ spi->driver->stop (spi); -+ last_transfer = grub_get_time_ms (); -+} -+ -+static int -+wait_for_frame (const struct grub_fdtbus_dev *spi) -+{ -+ grub_uint64_t start = grub_get_time_ms (); -+ grub_uint8_t byte; -+ do -+ { -+ if (spi->driver->receive (spi, &byte, 1)) -+ return -1; -+ if (byte != EC_FRAMING_BYTE && -+ grub_get_time_ms () - start > FRAMING_TIMEOUT_MS) -+ { -+ grub_dprintf ("cros", "Timeout waiting for framing byte.\n"); -+ return -1; -+ } -+ } -+ while (byte != EC_FRAMING_BYTE); -+ return 0; -+} -+ -+/* -+ * Calculate a simple 8-bit checksum of a data block -+ * -+ * @param data Data block to checksum -+ * @param size Size of data block in bytes -+ * @return checksum value (0 to 255) -+ */ -+static grub_uint8_t -+cros_ec_calc_checksum (const void *data, int size) -+{ -+ grub_uint8_t csum; -+ const grub_uint8_t *bytes = data; -+ int i; -+ -+ for (i = csum = 0; i < size; i++) -+ csum += bytes[i]; -+ return csum & 0xff; -+} -+ -+enum -+{ -+ /* response, arglen */ -+ CROS_EC_SPI_IN_HDR_SIZE = 2, -+ /* version, cmd, arglen */ -+ CROS_EC_SPI_OUT_HDR_SIZE = 3 -+}; -+ -+static grub_uint8_t busbuf[256]; -+#define MSG_BYTES ((int)sizeof (busbuf)) -+ -+static int -+ec_command (const struct grub_fdtbus_dev *dev, int cmd, int cmd_version, -+ const void *dout, int dout_len, void *din, int din_len) -+{ -+ const struct grub_fdtbus_dev *spi = dev->parent; -+ grub_uint8_t *bytes; -+ -+ /* Header + data + checksum. */ -+ grub_uint32_t out_bytes = CROS_EC_SPI_OUT_HDR_SIZE + dout_len + 1; -+ grub_uint32_t in_bytes = CROS_EC_SPI_IN_HDR_SIZE + din_len + 1; -+ -+ /* -+ * Sanity-check I/O sizes given transaction overhead in internal -+ * buffers. -+ */ -+ if (out_bytes > MSG_BYTES) -+ { -+ grub_dprintf ("cros", "Cannot send %d bytes\n", dout_len); -+ return -1; -+ } -+ if (in_bytes > MSG_BYTES) -+ { -+ grub_dprintf ("cros", "Cannot receive %d bytes\n", din_len); -+ return -1; -+ } -+ -+ /* Prepare the output. */ -+ bytes = busbuf; -+ *bytes++ = EC_CMD_VERSION0 + cmd_version; -+ *bytes++ = cmd; -+ *bytes++ = dout_len; -+ grub_memcpy (bytes, dout, dout_len); -+ bytes += dout_len; -+ -+ *bytes++ = cros_ec_calc_checksum (busbuf, -+ CROS_EC_SPI_OUT_HDR_SIZE + dout_len); -+ -+ /* Depthcharge uses 200 us here but GRUB timer resolution is only 1ms, -+ decrease this when we increase timer resolution. */ -+ while (grub_get_time_ms () - last_transfer < 1) -+ ; -+ -+ if (spi->driver->start (spi)) -+ return -1; -+ -+ /* Allow EC to ramp up clock after being awoken. */ -+ /* Depthcharge only waits 100 us here but GRUB timer resolution is only 1ms, -+ decrease this when we increase timer resolution. */ -+ grub_millisleep (1); -+ -+ if (spi->driver->send (spi, busbuf, out_bytes)) -+ { -+ stop_bus (spi); -+ return -1; -+ } -+ -+ /* Wait until the EC is ready. */ -+ if (wait_for_frame (spi)) -+ { -+ stop_bus (spi); -+ return -1; -+ } -+ -+ /* Read the response code and the data length. */ -+ bytes = busbuf; -+ if (spi->driver->receive (spi, bytes, 2)) -+ { -+ stop_bus (spi); -+ return -1; -+ } -+ grub_uint8_t result = *bytes++; -+ grub_uint8_t length = *bytes++; -+ -+ /* Make sure there's enough room for the data. */ -+ if (CROS_EC_SPI_IN_HDR_SIZE + length + 1 > MSG_BYTES) -+ { -+ grub_dprintf ("cros", "Received length %#02x too large\n", length); -+ stop_bus (spi); -+ return -1; -+ } -+ -+ /* Read the data and the checksum, and finish up. */ -+ if (spi->driver->receive (spi, bytes, length + 1)) -+ { -+ stop_bus (spi); -+ return -1; -+ } -+ bytes += length; -+ int expected = *bytes++; -+ stop_bus (spi); -+ -+ /* Check the integrity of the response. */ -+ if (result != 0) -+ { -+ grub_dprintf ("cros", "Received bad result code %d\n", result); -+ return -result; -+ } -+ -+ int csum = cros_ec_calc_checksum (busbuf, -+ CROS_EC_SPI_IN_HDR_SIZE + length); -+ -+ if (csum != expected) -+ { -+ grub_dprintf ("cros", "Invalid checksum rx %#02x, calced %#02x\n", -+ expected, csum); -+ return -1; -+ } -+ -+ /* If the caller wants the response, copy it out for them. */ -+ if (length < din_len) -+ din_len = length; -+ if (din) -+ { -+ grub_memcpy (din, (grub_uint8_t *) busbuf + CROS_EC_SPI_IN_HDR_SIZE, din_len); -+ } -+ -+ return din_len; -+} -+ -+int -+grub_cros_ec_scan_keyboard (const struct grub_fdtbus_dev *dev, struct grub_cros_ec_keyscan *scan) -+{ -+ if (ec_command (dev, EC_CMD_MKBP_STATE, 0, NULL, 0, scan, -+ sizeof (*scan)) < (int) sizeof (*scan)) -+ return -1; -+ -+ return 0; -+} -+ -+int -+grub_cros_ec_validate (const struct grub_fdtbus_dev *dev) -+{ -+ if (!grub_fdtbus_is_compatible("google,cros-ec-spi", dev)) -+ return 0; -+ if (!dev->parent) -+ return 0; -+ if (!dev->parent->driver) -+ return 0; -+ if (!dev->parent->driver->send -+ || !dev->parent->driver->receive) -+ return 0; -+ return 1; -+} -+ -diff --git a/include/grub/arm/cros_ec.h b/include/grub/arm/cros_ec.h -new file mode 100644 -index 00000000000..45a372572a5 ---- /dev/null -+++ b/include/grub/arm/cros_ec.h -@@ -0,0 +1,21 @@ -+#ifndef GRUB_ARM_CROS_EC_H -+#define GRUB_ARM_CROS_EC_H 1 -+ -+#include -+#include -+ -+#define GRUB_CROS_EC_KEYSCAN_COLS 13 -+#define GRUB_CROS_EC_KEYSCAN_ROWS 8 -+ -+struct grub_cros_ec_keyscan { -+ grub_uint8_t data[GRUB_CROS_EC_KEYSCAN_COLS]; -+}; -+ -+int -+grub_cros_ec_scan_keyboard (const struct grub_fdtbus_dev *dev, -+ struct grub_cros_ec_keyscan *scan); -+ -+int -+grub_cros_ec_validate (const struct grub_fdtbus_dev *dev); -+ -+#endif diff --git a/0034-Missing-parts-of-previous-commit.patch b/0034-Missing-parts-of-previous-commit.patch deleted file mode 100644 index d473dd0e..00000000 --- a/0034-Missing-parts-of-previous-commit.patch +++ /dev/null @@ -1,35 +0,0 @@ -From c6eaa982d12e3cfc5465dda5ea372774188b6b81 Mon Sep 17 00:00:00 2001 -From: Vladimir Serbinenko -Date: Tue, 9 May 2017 09:02:15 +0200 -Subject: [PATCH] Missing parts of previous commit - ---- - grub-core/Makefile.core.def | 2 ++ - grub-core/kern/arm/coreboot/init.c | 1 + - 2 files changed, 3 insertions(+) - -diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index d2239f1718d..1d86bd22e04 100644 ---- a/grub-core/Makefile.core.def -+++ b/grub-core/Makefile.core.def -@@ -162,6 +162,8 @@ kernel = { - arm_coreboot = bus/fdt.c; - arm_coreboot = term/ps2.c; - arm_coreboot = term/arm/pl050.c; -+ arm_coreboot = term/arm/cros.c; -+ arm_coreboot = term/arm/cros_ec.c; - arm_coreboot = bus/spi/rk3288_spi.c; - arm_coreboot = commands/keylayouts.c; - arm_coreboot = kern/arm/coreboot/dma.c; -diff --git a/grub-core/kern/arm/coreboot/init.c b/grub-core/kern/arm/coreboot/init.c -index 0126ff6381a..8d8c5b8291e 100644 ---- a/grub-core/kern/arm/coreboot/init.c -+++ b/grub-core/kern/arm/coreboot/init.c -@@ -135,6 +135,7 @@ grub_machine_init (void) - grub_rk3288_spi_init (); - - grub_machine_timer_init (); -+ grub_cros_init (); - grub_pl050_init (); - } - diff --git a/0097-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch b/0034-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch similarity index 92% rename from 0097-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch rename to 0034-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch index 718e6ad2..3a378398 100644 --- a/0097-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch +++ b/0034-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch @@ -1,4 +1,4 @@ -From ea032bd4a6cb66929da61477b1759e136c975189 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 21 Jun 2013 14:44:08 -0400 Subject: [PATCH] Use -2 instead of -1 for our right-hand margin, so diff --git a/0098-Use-linux16-when-appropriate-880840.patch b/0035-Use-linux16-when-appropriate-880840.patch similarity index 95% rename from 0098-Use-linux16-when-appropriate-880840.patch rename to 0035-Use-linux16-when-appropriate-880840.patch index 327717bc..28ae3515 100644 --- a/0098-Use-linux16-when-appropriate-880840.patch +++ b/0035-Use-linux16-when-appropriate-880840.patch @@ -1,4 +1,4 @@ -From 8e1957d59e7e72850cbac7e779ddf22ca23c250d Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 28 Oct 2013 10:05:07 -0400 Subject: [PATCH] Use linux16 when appropriate (#880840) diff --git a/0035-coreboot-Changed-cbmemc-to-support-updated-console-f.patch b/0035-coreboot-Changed-cbmemc-to-support-updated-console-f.patch deleted file mode 100644 index f613a6e0..00000000 --- a/0035-coreboot-Changed-cbmemc-to-support-updated-console-f.patch +++ /dev/null @@ -1,95 +0,0 @@ -From 70b555a52a065b2beb91e6fc97a6b358c931b303 Mon Sep 17 00:00:00 2001 -From: Julius Werner -Date: Tue, 9 May 2017 09:03:02 +0200 -Subject: [PATCH] coreboot: Changed cbmemc to support updated console format - from coreboot. - ---- - grub-core/term/i386/coreboot/cbmemc.c | 50 ++++++++++++++++++++++++----------- - 1 file changed, 35 insertions(+), 15 deletions(-) - -diff --git a/grub-core/term/i386/coreboot/cbmemc.c b/grub-core/term/i386/coreboot/cbmemc.c -index 129248c7f47..cea9b84315b 100644 ---- a/grub-core/term/i386/coreboot/cbmemc.c -+++ b/grub-core/term/i386/coreboot/cbmemc.c -@@ -29,11 +29,14 @@ - - GRUB_MOD_LICENSE ("GPLv3+"); - -+#define CURSOR_MASK ((1 << 28) - 1) -+#define OVERFLOW (1 << 31) -+ - struct grub_linuxbios_cbmemc - { - grub_uint32_t size; -- grub_uint32_t pointer; -- char data[0]; -+ grub_uint32_t cursor; -+ char body[0]; - }; - - static struct grub_linuxbios_cbmemc *cbmemc; -@@ -41,11 +44,20 @@ static struct grub_linuxbios_cbmemc *cbmemc; - static void - put (struct grub_term_output *term __attribute__ ((unused)), const int c) - { -+ grub_uint32_t flags, cursor; - if (!cbmemc) - return; -- if (cbmemc->pointer < cbmemc->size) -- cbmemc->data[cbmemc->pointer] = c; -- cbmemc->pointer++; -+ flags = cbmemc->cursor & ~CURSOR_MASK; -+ cursor = cbmemc->cursor & CURSOR_MASK; -+ if (cursor >= cbmemc->size) -+ return; -+ cbmemc->body[cursor++] = c; -+ if (cursor >= cbmemc->size) -+ { -+ cursor = 0; -+ flags |= OVERFLOW; -+ } -+ cbmemc->cursor = flags | cursor; - } - - struct grub_terminfo_output_state grub_cbmemc_terminfo_output = -@@ -87,21 +99,29 @@ grub_cmd_cbmemc (struct grub_command *cmd __attribute__ ((unused)), - int argc __attribute__ ((unused)), - char *argv[] __attribute__ ((unused))) - { -- grub_size_t len; -- char *str; -- struct grub_linuxbios_cbmemc *cbmemc_saved; -+ grub_size_t size, cursor; -+ struct grub_linuxbios_cbmemc *real_cbmemc; - - if (!cbmemc) - return grub_error (GRUB_ERR_IO, "no CBMEM console found"); - -- len = cbmemc->pointer; -- if (len > cbmemc->size) -- len = cbmemc->size; -- str = cbmemc->data; -- cbmemc_saved = cbmemc; -+ real_cbmemc = cbmemc; - cbmemc = 0; -- grub_xnputs (str, len); -- cbmemc = cbmemc_saved; -+ cursor = real_cbmemc->cursor & CURSOR_MASK; -+ if (!(real_cbmemc->cursor & OVERFLOW) && cursor < real_cbmemc->size) -+ size = cursor; -+ else -+ size = real_cbmemc->size; -+ if (real_cbmemc->cursor & OVERFLOW) -+ { -+ if (cursor > size) -+ cursor = 0; -+ grub_xnputs(real_cbmemc->body + cursor, size - cursor); -+ grub_xnputs(real_cbmemc->body, cursor); -+ } -+ else -+ grub_xnputs(real_cbmemc->body, size); -+ cbmemc = real_cbmemc; - return 0; - } - diff --git a/0099-Enable-pager-by-default.-985860.patch b/0036-Enable-pager-by-default.-985860.patch similarity index 91% rename from 0099-Enable-pager-by-default.-985860.patch rename to 0036-Enable-pager-by-default.-985860.patch index 02e87091..d92fbcc7 100644 --- a/0099-Enable-pager-by-default.-985860.patch +++ b/0036-Enable-pager-by-default.-985860.patch @@ -1,4 +1,4 @@ -From 7466f51a0012ebdd8be07cfc0e63d50e0e79560d Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 28 Oct 2013 10:09:27 -0400 Subject: [PATCH] Enable pager by default. (#985860) diff --git a/0036-at_keyboard-Fix-falco-chromebook-case.patch b/0036-at_keyboard-Fix-falco-chromebook-case.patch deleted file mode 100644 index 681ba27e..00000000 --- a/0036-at_keyboard-Fix-falco-chromebook-case.patch +++ /dev/null @@ -1,86 +0,0 @@ -From c4b8bec5fee4e30a165fd14a188cf3ab8eccd095 Mon Sep 17 00:00:00 2001 -From: Vladimir Serbinenko -Date: Tue, 9 May 2017 14:27:52 +0200 -Subject: [PATCH] at_keyboard: Fix falco chromebook case. - -EC is slow, so we need few delays for it to toggle the bits correctly. - -Command to enable clock and keyboard were not sent. ---- - grub-core/term/at_keyboard.c | 23 ++++++++++++++--------- - include/grub/at_keyboard.h | 2 ++ - 2 files changed, 16 insertions(+), 9 deletions(-) - -diff --git a/grub-core/term/at_keyboard.c b/grub-core/term/at_keyboard.c -index 3ab4e205f40..f0a986eb176 100644 ---- a/grub-core/term/at_keyboard.c -+++ b/grub-core/term/at_keyboard.c -@@ -40,6 +40,8 @@ grub_keyboard_controller_init (void); - static void - keyboard_controller_wait_until_ready (void) - { -+ /* 50 us would be enough but our current time resolution is 1ms. */ -+ grub_millisleep (1); - while (! KEYBOARD_COMMAND_ISREADY (grub_inb (KEYBOARD_REG_STATUS))); - } - -@@ -50,10 +52,11 @@ wait_ack (void) - grub_uint8_t ack; - - endtime = grub_get_time_ms () + 20; -- do -+ do { -+ keyboard_controller_wait_until_ready (); - ack = grub_inb (KEYBOARD_REG_DATA); -- while (ack != GRUB_AT_ACK && ack != GRUB_AT_NACK -- && grub_get_time_ms () < endtime); -+ } while (ack != GRUB_AT_ACK && ack != GRUB_AT_NACK -+ && grub_get_time_ms () < endtime); - return ack; - } - -@@ -135,12 +138,10 @@ query_mode (void) - if (!e) - return 0; - -- keyboard_controller_wait_until_ready (); -- -- do -+ do { -+ keyboard_controller_wait_until_ready (); - ret = grub_inb (KEYBOARD_REG_DATA); -- while (ret == GRUB_AT_ACK); -- -+ } while (ret == GRUB_AT_ACK); - /* QEMU translates the set even in no-translate mode. */ - if (ret == 0x43 || ret == 1) - return 1; -@@ -169,7 +170,11 @@ set_scancodes (void) - #else - - grub_keyboard_controller_write (grub_keyboard_controller_orig -- & ~KEYBOARD_AT_TRANSLATE); -+ & ~KEYBOARD_AT_TRANSLATE -+ & ~KEYBOARD_AT_DISABLE); -+ -+ keyboard_controller_wait_until_ready (); -+ grub_outb (KEYBOARD_COMMAND_ENABLE, KEYBOARD_REG_DATA); - - write_mode (2); - ps2_state.current_set = query_mode (); -diff --git a/include/grub/at_keyboard.h b/include/grub/at_keyboard.h -index b031523eb7d..bcb4d9ba78f 100644 ---- a/include/grub/at_keyboard.h -+++ b/include/grub/at_keyboard.h -@@ -23,9 +23,11 @@ - #define KEYBOARD_COMMAND_ISREADY(x) !((x) & 0x02) - #define KEYBOARD_COMMAND_READ 0x20 - #define KEYBOARD_COMMAND_WRITE 0x60 -+#define KEYBOARD_COMMAND_ENABLE 0xf4 - #define KEYBOARD_COMMAND_REBOOT 0xfe - - #define KEYBOARD_AT_TRANSLATE 0x40 -+#define KEYBOARD_AT_DISABLE 0x10 - - #define KEYBOARD_ISMAKE(x) !((x) & 0x80) - #define KEYBOARD_ISREADY(x) ((x) & 0x01) diff --git a/0100-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch b/0037-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch similarity index 93% rename from 0100-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch rename to 0037-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch index 100cc693..93233bc9 100644 --- a/0100-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch +++ b/0037-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch @@ -1,4 +1,4 @@ -From 7a97d9621a145cbd04111970fea04c34433f900c Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 28 Oct 2013 10:13:27 -0400 Subject: [PATCH] F10 doesn't work on serial, so don't tell the user to hit it diff --git a/0037-sparc64-Close-cdboot-ihandle.patch b/0037-sparc64-Close-cdboot-ihandle.patch deleted file mode 100644 index f9a01b05..00000000 --- a/0037-sparc64-Close-cdboot-ihandle.patch +++ /dev/null @@ -1,45 +0,0 @@ -From bd4e40aadded7093908d786d03b4acf60b7b1707 Mon Sep 17 00:00:00 2001 -From: Eric Snowberg -Date: Thu, 11 May 2017 18:42:23 -0700 -Subject: [PATCH] sparc64: Close cdboot ihandle - -The ihandle is left open with a cd-core image. This will cause a delay -booting grub from a virtual cdrom in a LDOM. It will also cause problems -as Linux boots, since it expects the ihandle to be closed during init. - -Orabug: 25911275 - -Signed-off-by: Eric Snowberg -Reviewed-by: Daniel Kiper ---- - grub-core/boot/sparc64/ieee1275/boot.S | 10 ++++++++++ - 1 file changed, 10 insertions(+) - -diff --git a/grub-core/boot/sparc64/ieee1275/boot.S b/grub-core/boot/sparc64/ieee1275/boot.S -index 586efb4014e..9ea9b4e0662 100644 ---- a/grub-core/boot/sparc64/ieee1275/boot.S -+++ b/grub-core/boot/sparc64/ieee1275/boot.S -@@ -69,6 +69,10 @@ prom_seek_name: .asciz "seek" - prom_read_name: .asciz "read" - prom_exit_name: .asciz "exit" - grub_name: .asciz "GRUB " -+#ifdef CDBOOT -+prom_close_name: .asciz "close" -+#endif -+ - #define GRUB_NAME_LEN 5 - - .align 4 -@@ -213,6 +217,12 @@ bootpath_known: - call prom_call_3_1_o1 - #ifdef CDBOOT - LDUW_ABS(kernel_size, 0x00, %o3) -+ -+ GET_ABS(prom_close_name, %o0) -+ mov 1, %g1 -+ mov 0, %o5 -+ call prom_call -+ mov BOOTDEV_REG, %o1 - #else - mov 512, %o3 - #endif diff --git a/0101-Don-t-say-GNU-Linux-in-generated-menus.patch b/0038-Don-t-say-GNU-Linux-in-generated-menus.patch similarity index 95% rename from 0101-Don-t-say-GNU-Linux-in-generated-menus.patch rename to 0038-Don-t-say-GNU-Linux-in-generated-menus.patch index 7f637136..99860c51 100644 --- a/0101-Don-t-say-GNU-Linux-in-generated-menus.patch +++ b/0038-Don-t-say-GNU-Linux-in-generated-menus.patch @@ -1,4 +1,4 @@ -From 45877a77f50eecd0b7fd3ba1aec0d4398a3b6a20 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 14 Mar 2011 14:27:42 -0400 Subject: [PATCH] Don't say "GNU/Linux" in generated menus. diff --git a/0038-arm64-xen_boot-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch b/0038-arm64-xen_boot-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch deleted file mode 100644 index e1fdda71..00000000 --- a/0038-arm64-xen_boot-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch +++ /dev/null @@ -1,29 +0,0 @@ -From ae5817f1dcbf0b99f7a849f56afe442165317840 Mon Sep 17 00:00:00 2001 -From: Julien Grall -Date: Fri, 19 Feb 2016 16:28:52 +0000 -Subject: [PATCH] arm64/xen_boot: Fix Xen boot using GRUB2 on AARCH64 - -Xen is currently crashing because of malformed compatible property for -the boot module. This is because the property string is not -null-terminated as requested by the ePAR spec. - -Signed-off-by: Julien Grall -Tested-by: Fu Wei -Reviewed-by: Daniel Kiper ---- - grub-core/loader/arm64/xen_boot.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/grub-core/loader/arm64/xen_boot.c b/grub-core/loader/arm64/xen_boot.c -index a914eb8e2df..8ae43d7e894 100644 ---- a/grub-core/loader/arm64/xen_boot.c -+++ b/grub-core/loader/arm64/xen_boot.c -@@ -156,7 +156,7 @@ prepare_xen_module_params (struct xen_boot_binary *module, void *xen_boot_fdt) - grub_fdt_add_subnode (xen_boot_fdt, chosen_node, module_name); - - retval = grub_fdt_set_prop (xen_boot_fdt, module_node, "compatible", -- MODULE_CUSTOM_COMPATIBLE, sizeof(MODULE_CUSTOM_COMPATIBLE) - 1); -+ MODULE_CUSTOM_COMPATIBLE, sizeof(MODULE_CUSTOM_COMPATIBLE)); - if (retval) - return grub_error (GRUB_ERR_IO, "failed to update FDT"); - diff --git a/0102-Don-t-draw-a-border-around-the-menu.patch b/0039-Don-t-draw-a-border-around-the-menu.patch similarity index 97% rename from 0102-Don-t-draw-a-border-around-the-menu.patch rename to 0039-Don-t-draw-a-border-around-the-menu.patch index 3f0b39ff..e5d11ac1 100644 --- a/0102-Don-t-draw-a-border-around-the-menu.patch +++ b/0039-Don-t-draw-a-border-around-the-menu.patch @@ -1,4 +1,4 @@ -From c28a3053e96859000df5ff1d48c9a560d47c0470 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Wed, 15 May 2013 16:47:33 -0400 Subject: [PATCH] Don't draw a border around the menu diff --git a/0039-arm64-Add-nounzip-option-support-in-xen_module-comma.patch b/0039-arm64-Add-nounzip-option-support-in-xen_module-comma.patch deleted file mode 100644 index 052776e9..00000000 --- a/0039-arm64-Add-nounzip-option-support-in-xen_module-comma.patch +++ /dev/null @@ -1,52 +0,0 @@ -From 8eed7be8a61c295df700e918744a984162378ca9 Mon Sep 17 00:00:00 2001 -From: Fu Wei -Date: Sun, 14 May 2017 15:43:45 +0800 -Subject: [PATCH] arm64: Add "--nounzip" option support in xen_module command - -This patch adds "--nounzip" option support in order to -be compatible with the module command of multiboot on other architecture, -by this way we can simplify grub-mkconfig support code. - -This patch also allow us to use zip compressed module(like Linux kernel -for Dom0). - -Signed-off-by: Fu Wei -Reviewed-by: Daniel Kiper ---- - grub-core/loader/arm64/xen_boot.c | 16 ++++++++++++++++ - 1 file changed, 16 insertions(+) - -diff --git a/grub-core/loader/arm64/xen_boot.c b/grub-core/loader/arm64/xen_boot.c -index 8ae43d7e894..27ede46cac5 100644 ---- a/grub-core/loader/arm64/xen_boot.c -+++ b/grub-core/loader/arm64/xen_boot.c -@@ -379,6 +379,20 @@ grub_cmd_xen_module (grub_command_t cmd __attribute__((unused)), - - struct xen_boot_binary *module = NULL; - grub_file_t file = 0; -+ int nounzip = 0; -+ -+ if (!argc) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, N_("filename expected")); -+ goto fail; -+ } -+ -+ if (grub_strcmp (argv[0], "--nounzip") == 0) -+ { -+ argv++; -+ argc--; -+ nounzip = 1; -+ } - - if (!argc) - { -@@ -403,6 +417,8 @@ grub_cmd_xen_module (grub_command_t cmd __attribute__((unused)), - - grub_dprintf ("xen_loader", "Init module and node info\n"); - -+ if (nounzip) -+ grub_file_filter_disable_compression (); - file = grub_file_open (argv[0]); - if (!file) - goto fail; diff --git a/0103-Use-the-standard-margin-for-the-timeout-string.patch b/0040-Use-the-standard-margin-for-the-timeout-string.patch similarity index 95% rename from 0103-Use-the-standard-margin-for-the-timeout-string.patch rename to 0040-Use-the-standard-margin-for-the-timeout-string.patch index e442ef06..c6c770c8 100644 --- a/0103-Use-the-standard-margin-for-the-timeout-string.patch +++ b/0040-Use-the-standard-margin-for-the-timeout-string.patch @@ -1,4 +1,4 @@ -From 93018f5d1727eb58dead129f150a36080c22530a Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: William Jon McCann Date: Fri, 7 Jun 2013 10:52:32 -0400 Subject: [PATCH] Use the standard margin for the timeout string diff --git a/0040-util-grub.d-20_linux_xen.in-Add-xen_boot-command-sup.patch b/0040-util-grub.d-20_linux_xen.in-Add-xen_boot-command-sup.patch deleted file mode 100644 index 6f3daf23..00000000 --- a/0040-util-grub.d-20_linux_xen.in-Add-xen_boot-command-sup.patch +++ /dev/null @@ -1,60 +0,0 @@ -From d33045ce7ffcb7c1e4a60c14d5ca64b36e3c5abe Mon Sep 17 00:00:00 2001 -From: Fu Wei -Date: Sun, 14 May 2017 15:43:46 +0800 -Subject: [PATCH] util/grub.d/20_linux_xen.in: Add xen_boot command support for - aarch64 - -This patch adds the support of xen_boot command for aarch64: - xen_hypervisor - xen_module -These two commands are only for aarch64, since it has its own protocol and -commands to boot xen hypervisor and Dom0, but not multiboot. - -For other architectures, they are still using multiboot and module -commands. - -Signed-off-by: Fu Wei -Reviewed-by: Daniel Kiper ---- - util/grub.d/20_linux_xen.in | 14 +++++++++++--- - 1 file changed, 11 insertions(+), 3 deletions(-) - -diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in -index c48af948d6e..c002fc9f946 100644 ---- a/util/grub.d/20_linux_xen.in -+++ b/util/grub.d/20_linux_xen.in -@@ -122,16 +122,16 @@ linux_entry () - else - xen_rm_opts="no-real-mode edd=off" - fi -- multiboot ${rel_xen_dirname}/${xen_basename} placeholder ${xen_args} \${xen_rm_opts} -+ ${xen_loader} ${rel_xen_dirname}/${xen_basename} placeholder ${xen_args} \${xen_rm_opts} - echo '$(echo "$lmessage" | grub_quote)' -- module ${rel_dirname}/${basename} placeholder root=${linux_root_device_thisversion} ro ${args} -+ ${module_loader} ${rel_dirname}/${basename} placeholder root=${linux_root_device_thisversion} ro ${args} - EOF - if test -n "${initrd}" ; then - # TRANSLATORS: ramdisk isn't identifier. Should be translated. - message="$(gettext_printf "Loading initial ramdisk ...")" - sed "s/^/$submenu_indentation/" << EOF - echo '$(echo "$message" | grub_quote)' -- module --nounzip ${rel_dirname}/${initrd} -+ ${module_loader} --nounzip ${rel_dirname}/${initrd} - EOF - fi - sed "s/^/$submenu_indentation/" << EOF -@@ -206,6 +206,14 @@ while [ "x${xen_list}" != "x" ] ; do - if [ "x$is_top_level" != xtrue ]; then - echo " submenu '$(gettext_printf "Xen hypervisor, version %s" "${xen_version}" | grub_quote)' \$menuentry_id_option 'xen-hypervisor-$xen_version-$boot_device_id' {" - fi -+ $grub_file --is-arm64-efi $current_xen -+ if [ $? -ne 0 ]; then -+ xen_loader="multiboot" -+ module_loader="module" -+ else -+ xen_loader="xen_hypervisor" -+ module_loader="xen_module" -+ fi - while [ "x$list" != "x" ] ; do - linux=`version_find_latest $list` - gettext_printf "Found linux image: %s\n" "$linux" >&2 diff --git a/0104-Add-.eh_frame-to-list-of-relocations-stripped.patch b/0041-Add-.eh_frame-to-list-of-relocations-stripped.patch similarity index 94% rename from 0104-Add-.eh_frame-to-list-of-relocations-stripped.patch rename to 0041-Add-.eh_frame-to-list-of-relocations-stripped.patch index 62faad2c..d837061d 100644 --- a/0104-Add-.eh_frame-to-list-of-relocations-stripped.patch +++ b/0041-Add-.eh_frame-to-list-of-relocations-stripped.patch @@ -1,4 +1,4 @@ -From c626121f38adf6fcd39a5f69249c650b4b52c10d Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Mon, 13 Jan 2014 21:50:59 -0500 Subject: [PATCH] Add .eh_frame to list of relocations stripped diff --git a/0041-arm64-Update-the-introduction-of-Xen-boot-commands-i.patch b/0041-arm64-Update-the-introduction-of-Xen-boot-commands-i.patch deleted file mode 100644 index 69021790..00000000 --- a/0041-arm64-Update-the-introduction-of-Xen-boot-commands-i.patch +++ /dev/null @@ -1,90 +0,0 @@ -From 26c2f306fd425d2c0348023b8dcb7eb40a01851a Mon Sep 17 00:00:00 2001 -From: Fu Wei -Date: Sun, 14 May 2017 15:43:47 +0800 -Subject: [PATCH] arm64: Update the introduction of Xen boot commands in - docs/grub.texi - -delete: xen_linux, xen_initrd, xen_xsm -add: xen_module - -This update bases on - commit 0edd750e50698854068358ea53528100a9192902 - Author: Vladimir Serbinenko - Date: Fri Jan 22 10:18:47 2016 +0100 - - xen_boot: Remove obsolete module type distinctions. - -Also bases on the module loading mechanism of Xen code: -488c2a8 docs/arm64: clarify the documention for loading XSM support -67831c4 docs/arm64: update the documentation for loading XSM support -ca32012 xen/arm64: check XSM Magic from the second unknown module. - -Signed-off-by: Fu Wei -Reviewed-by: Julien Grall -Reviewed-by: Daniel Kiper ---- - docs/grub.texi | 38 +++++++++++++------------------------- - 1 file changed, 13 insertions(+), 25 deletions(-) - -diff --git a/docs/grub.texi b/docs/grub.texi -index e935af33ea5..a0c4b9e4e8e 100644 ---- a/docs/grub.texi -+++ b/docs/grub.texi -@@ -3873,11 +3873,9 @@ you forget a command, you can run the command @command{help} - @comment * vbeinfo:: List available video modes - * verify_detached:: Verify detached digital signature - * videoinfo:: List available video modes --@comment * xen_*:: Xen boot commands --* xen_hypervisor:: Load xen hypervisor binary --* xen_linux:: Load dom0 kernel for xen hypervisor --* xen_initrd:: Load dom0 initrd for dom0 kernel --* xen_xsm:: Load xen security module for xen hypervisor -+@comment * xen_*:: Xen boot commands for AArch64 -+* xen_hypervisor:: Load xen hypervisor binary (only on AArch64) -+* xen_module:: Load xen modules for xen hypervisor (only on AArch64) - @end menu - - -@@ -5153,32 +5151,22 @@ List available video modes. If resolution is given, show only matching modes. - Load a Xen hypervisor binary from @var{file}. The rest of the line is passed - verbatim as the @dfn{kernel command-line}. Any other binaries must be - reloaded after using this command. -+This command is only available on AArch64 systems. - @end deffn - --@node xen_linux --@subsection xen_linux -+@node xen_module -+@subsection xen_module - --@deffn Command xen_linux file [arguments] --Load a dom0 kernel image for xen hypervisor at the booting process of xen. -+@deffn Command xen_module [--nounzip] file [arguments] -+Load a module for xen hypervisor at the booting process of xen. - The rest of the line is passed verbatim as the module command line. -+Modules should be loaded in the following order: -+ - dom0 kernel image -+ - dom0 ramdisk if present -+ - XSM policy if present -+This command is only available on AArch64 systems. - @end deffn - --@node xen_initrd --@subsection xen_initrd -- --@deffn Command xen_initrd file --Load a initrd image for dom0 kernel at the booting process of xen. --@end deffn -- --@node xen_xsm --@subsection xen_xsm -- --@deffn Command xen_xsm file --Load a xen security module for xen hypervisor at the booting process of xen. --See @uref{http://wiki.xen.org/wiki/XSM} for more detail. --@end deffn -- -- - @node Networking commands - @section The list of networking commands - diff --git a/0105-Make-10_linux-work-with-our-changes-for-linux16-and-.patch b/0042-Make-10_linux-work-with-our-changes-for-linux16-and-.patch similarity index 97% rename from 0105-Make-10_linux-work-with-our-changes-for-linux16-and-.patch rename to 0042-Make-10_linux-work-with-our-changes-for-linux16-and-.patch index f5b23178..5efb3a4e 100644 --- a/0105-Make-10_linux-work-with-our-changes-for-linux16-and-.patch +++ b/0042-Make-10_linux-work-with-our-changes-for-linux16-and-.patch @@ -1,4 +1,4 @@ -From 59275c83e7a303c63379d37ba21aa39a3c3b7203 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jan 2014 13:12:23 -0500 Subject: [PATCH] Make 10_linux work with our changes for linux16 and linuxefi diff --git a/0042-sparc64-Don-t-use-devspec-to-determine-the-OBP-path.patch b/0042-sparc64-Don-t-use-devspec-to-determine-the-OBP-path.patch deleted file mode 100644 index 62c58601..00000000 --- a/0042-sparc64-Don-t-use-devspec-to-determine-the-OBP-path.patch +++ /dev/null @@ -1,50 +0,0 @@ -From f8679cedff703b437171f4708d46adbfcff80a65 Mon Sep 17 00:00:00 2001 -From: Eric Snowberg -Date: Thu, 18 May 2017 17:10:22 -0600 -Subject: [PATCH] sparc64: Don't use devspec to determine the OBP path - -Don't use devspec to determine the OBP path on SPARC hardware. Within all -versions of Linux on SPARC, the devspec returns one of three values: -"none", "vnet-port", or "vdisk". Unlike on PPC, none of these values -are useful in determining the OBP path. - -Before this patch grub-ofpathname always returned the wrong value -for a virtual disk. For example: - -% grub-ofpathname /dev/vdiskc2 -vdisk/disk@2:b - -After this patch it now returns the correct value: - -% grub-ofpathname /dev/vdiskc2 -/virtual-devices@100/channel-devices@200/disk@2:b - -Orabug: 24459765 - -Signed-off-by: Eric Snowberg -Reviewed-by: Daniel Kiper ---- - grub-core/osdep/linux/ofpath.c | 3 +++ - 1 file changed, 3 insertions(+) - -diff --git a/grub-core/osdep/linux/ofpath.c b/grub-core/osdep/linux/ofpath.c -index a79682a5e31..dce4e59d081 100644 ---- a/grub-core/osdep/linux/ofpath.c -+++ b/grub-core/osdep/linux/ofpath.c -@@ -120,6 +120,8 @@ find_obppath (const char *sysfs_path_orig) - #endif - - fd = open(path, O_RDONLY); -+ -+#ifndef __sparc__ - if (fd < 0 || fstat (fd, &st) < 0) - { - if (fd >= 0) -@@ -127,6 +129,7 @@ find_obppath (const char *sysfs_path_orig) - snprintf(path, path_size, "%s/devspec", sysfs_path); - fd = open(path, O_RDONLY); - } -+#endif - - if (fd < 0 || fstat (fd, &st) < 0) - { diff --git a/0043-Allow-GRUB-to-mount-ext2-3-4-filesystems-that-have-t.patch b/0043-Allow-GRUB-to-mount-ext2-3-4-filesystems-that-have-t.patch deleted file mode 100644 index 23ea96c0..00000000 --- a/0043-Allow-GRUB-to-mount-ext2-3-4-filesystems-that-have-t.patch +++ /dev/null @@ -1,137 +0,0 @@ -From 734668238fcc0ef691a080839e04f33854fa133a Mon Sep 17 00:00:00 2001 -From: Eric Biggers -Date: Thu, 29 Jun 2017 13:27:49 +0000 -Subject: [PATCH] Allow GRUB to mount ext2/3/4 filesystems that have the - encryption feature. - -On such a filesystem, inodes may have EXT4_ENCRYPT_FLAG set. -For a regular file, this means its contents are encrypted; for a -directory, this means the filenames in its directory entries are -encrypted; and for a symlink, this means its target is encrypted. Since -GRUB cannot decrypt encrypted contents or filenames, just issue an error -if it would need to do so. This is sufficient to allow unencrypted boot -files to co-exist with encrypted files elsewhere on the filesystem. - -(Note that encrypted regular files and symlinks will not normally be -encountered outside an encrypted directory; however, it's possible via -hard links, so they still need to be handled.) - -Tested by booting from an ext4 /boot partition on which I had run -'tune2fs -O encrypt'. I also verified that the expected error messages -are printed when trying to access encrypted directories, files, and -symlinks from the GRUB command line. Also ran 'sudo ./grub-fs-tester -ext4_encrypt'; note that this requires e2fsprogs v1.43+ and Linux v4.1+. - -Signed-off-by: Eric Biggers ---- - grub-core/fs/ext2.c | 23 ++++++++++++++++++++++- - tests/ext234_test.in | 1 + - tests/util/grub-fs-tester.in | 10 ++++++++++ - 3 files changed, 33 insertions(+), 1 deletion(-) - -diff --git a/grub-core/fs/ext2.c b/grub-core/fs/ext2.c -index cdce63bcc9d..b8ad75a0ff7 100644 ---- a/grub-core/fs/ext2.c -+++ b/grub-core/fs/ext2.c -@@ -102,6 +102,7 @@ GRUB_MOD_LICENSE ("GPLv3+"); - #define EXT4_FEATURE_INCOMPAT_64BIT 0x0080 - #define EXT4_FEATURE_INCOMPAT_MMP 0x0100 - #define EXT4_FEATURE_INCOMPAT_FLEX_BG 0x0200 -+#define EXT4_FEATURE_INCOMPAT_ENCRYPT 0x10000 - - /* The set of back-incompatible features this driver DOES support. Add (OR) - * flags here as the related features are implemented into the driver. */ -@@ -109,7 +110,8 @@ GRUB_MOD_LICENSE ("GPLv3+"); - | EXT4_FEATURE_INCOMPAT_EXTENTS \ - | EXT4_FEATURE_INCOMPAT_FLEX_BG \ - | EXT2_FEATURE_INCOMPAT_META_BG \ -- | EXT4_FEATURE_INCOMPAT_64BIT) -+ | EXT4_FEATURE_INCOMPAT_64BIT \ -+ | EXT4_FEATURE_INCOMPAT_ENCRYPT) - /* List of rationales for the ignored "incompatible" features: - * needs_recovery: Not really back-incompatible - was added as such to forbid - * ext2 drivers from mounting an ext3 volume with a dirty -@@ -138,6 +140,7 @@ GRUB_MOD_LICENSE ("GPLv3+"); - #define EXT3_JOURNAL_FLAG_DELETED 4 - #define EXT3_JOURNAL_FLAG_LAST_TAG 8 - -+#define EXT4_ENCRYPT_FLAG 0x800 - #define EXT4_EXTENTS_FLAG 0x80000 - - /* The ext2 superblock. */ -@@ -706,6 +709,12 @@ grub_ext2_read_symlink (grub_fshelp_node_t node) - grub_ext2_read_inode (diro->data, diro->ino, &diro->inode); - if (grub_errno) - return 0; -+ -+ if (diro->inode.flags & grub_cpu_to_le32_compile_time (EXT4_ENCRYPT_FLAG)) -+ { -+ grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET, "symlink is encrypted"); -+ return 0; -+ } - } - - symlink = grub_malloc (grub_le_to_cpu32 (diro->inode.size) + 1); -@@ -749,6 +758,12 @@ grub_ext2_iterate_dir (grub_fshelp_node_t dir, - return 0; - } - -+ if (diro->inode.flags & grub_cpu_to_le32_compile_time (EXT4_ENCRYPT_FLAG)) -+ { -+ grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET, "directory is encrypted"); -+ return 0; -+ } -+ - /* Search the file. */ - while (fpos < grub_le_to_cpu32 (diro->inode.size)) - { -@@ -859,6 +874,12 @@ grub_ext2_open (struct grub_file *file, const char *name) - goto fail; - } - -+ if (fdiro->inode.flags & grub_cpu_to_le32_compile_time (EXT4_ENCRYPT_FLAG)) -+ { -+ err = grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET, "file is encrypted"); -+ goto fail; -+ } -+ - grub_memcpy (data->inode, &fdiro->inode, sizeof (struct grub_ext2_inode)); - grub_free (fdiro); - -diff --git a/tests/ext234_test.in b/tests/ext234_test.in -index 892b99cbdf6..4f1eb527eb2 100644 ---- a/tests/ext234_test.in -+++ b/tests/ext234_test.in -@@ -30,3 +30,4 @@ fi - "@builddir@/grub-fs-tester" ext3 - "@builddir@/grub-fs-tester" ext4 - "@builddir@/grub-fs-tester" ext4_metabg -+"@builddir@/grub-fs-tester" ext4_encrypt -diff --git a/tests/util/grub-fs-tester.in b/tests/util/grub-fs-tester.in -index 88cbe7365e9..fd7e0f14b68 100644 ---- a/tests/util/grub-fs-tester.in -+++ b/tests/util/grub-fs-tester.in -@@ -156,6 +156,12 @@ for LOGSECSIZE in $(range "$MINLOGSECSIZE" "$MAXLOGSECSIZE" 1); do - # Could go further but what's the point? - MAXBLKSIZE=$((65536*1024)) - ;; -+ xext4_encrypt) -+ # OS LIMITATION: Linux currently only allows the 'encrypt' feature -+ # in combination with block_size = PAGE_SIZE (4096 bytes on x86). -+ MINBLKSIZE=$(getconf PAGE_SIZE) -+ MAXBLKSIZE=$MINBLKSIZE -+ ;; - xext*) - MINBLKSIZE=1024 - if [ $MINBLKSIZE -lt $SECSIZE ]; then -@@ -796,6 +802,10 @@ for LOGSECSIZE in $(range "$MINLOGSECSIZE" "$MAXLOGSECSIZE" 1); do - MKE2FS_DEVICE_SECTSIZE=$SECSIZE "mkfs.ext4" -O meta_bg,^resize_inode -b $BLKSIZE -L "$FSLABEL" -q "${MOUNTDEVICE}" - MOUNTFS=ext4 - ;; -+ xext4_encrypt) -+ MKE2FS_DEVICE_SECTSIZE=$SECSIZE "mkfs.ext4" -O encrypt -b $BLKSIZE -L "$FSLABEL" -q "${MOUNTDEVICE}" -+ MOUNTFS=ext4 -+ ;; - xext*) - MKE2FS_DEVICE_SECTSIZE=$SECSIZE "mkfs.$fs" -b $BLKSIZE -L "$FSLABEL" -q "${MOUNTDEVICE}" ;; - xxfs) diff --git a/0106-Don-t-print-during-fdt-loading-method.patch b/0043-Don-t-print-during-fdt-loading-method.patch similarity index 91% rename from 0106-Don-t-print-during-fdt-loading-method.patch rename to 0043-Don-t-print-during-fdt-loading-method.patch index 923c9d75..171eca8a 100644 --- a/0106-Don-t-print-during-fdt-loading-method.patch +++ b/0043-Don-t-print-during-fdt-loading-method.patch @@ -1,4 +1,4 @@ -From aedf2aceb354ab7bf28bbf70d0a4b505c0adcfdf Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jan 2014 16:15:46 -0500 Subject: [PATCH] Don't print during fdt loading method. diff --git a/0107-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch b/0044-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch similarity index 93% rename from 0107-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch rename to 0044-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch index 7564f108..33bdad26 100644 --- a/0107-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch +++ b/0044-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch @@ -1,4 +1,4 @@ -From f2790b1f7c8efcd5589c8fcdaca51b548ab9825c Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Mon, 30 Jun 2014 14:16:46 -0400 Subject: [PATCH] Don't munge raw spaces when we're doing our cmdline escaping diff --git a/0044-ehci-Fix-compilation-for-amd64.patch b/0044-ehci-Fix-compilation-for-amd64.patch deleted file mode 100644 index 251d3a6e..00000000 --- a/0044-ehci-Fix-compilation-for-amd64.patch +++ /dev/null @@ -1,35 +0,0 @@ -From edb37fb30bbc8a3b6bec67911c7200e4eb071127 Mon Sep 17 00:00:00 2001 -From: phcoder -Date: Sun, 9 Jul 2017 20:58:31 +0200 -Subject: [PATCH] ehci: Fix compilation for amd64 - ---- - grub-core/bus/usb/ehci.c | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/grub-core/bus/usb/ehci.c b/grub-core/bus/usb/ehci.c -index c772e76546e..7b7061f5335 100644 ---- a/grub-core/bus/usb/ehci.c -+++ b/grub-core/bus/usb/ehci.c -@@ -504,8 +504,8 @@ grub_ehci_init_device (volatile void *regs) - #endif - - grub_dprintf ("ehci", -- "EHCI grub_ehci_pci_iter: iobase of oper. regs: %08x\n", -- (grub_addr_t) e->iobase_ehcc + caplen); -+ "EHCI grub_ehci_pci_iter: iobase of oper. regs: %08llxx\n", -+ (unsigned long long) e->iobase_ehcc + caplen); - grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: COMMAND: %08x\n", - grub_ehci_oper_read32 (e, GRUB_EHCI_COMMAND)); - grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: STATUS: %08x\n", -@@ -696,8 +696,8 @@ grub_ehci_init_device (volatile void *regs) - grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: OK at all\n"); - - grub_dprintf ("ehci", -- "EHCI grub_ehci_pci_iter: iobase of oper. regs: %08x\n", -- (grub_addr_t) regs); -+ "EHCI grub_ehci_pci_iter: iobase of oper. regs: %08llx\n", -+ (unsigned long long) regs); - grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: COMMAND: %08x\n", - grub_ehci_oper_read32 (e, GRUB_EHCI_COMMAND)); - grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: STATUS: %08x\n", diff --git a/0108-Don-t-require-a-password-to-boot-entries-generated-b.patch b/0045-Don-t-require-a-password-to-boot-entries-generated-b.patch similarity index 93% rename from 0108-Don-t-require-a-password-to-boot-entries-generated-b.patch rename to 0045-Don-t-require-a-password-to-boot-entries-generated-b.patch index 119b96d0..825885e5 100644 --- a/0108-Don-t-require-a-password-to-boot-entries-generated-b.patch +++ b/0045-Don-t-require-a-password-to-boot-entries-generated-b.patch @@ -1,4 +1,4 @@ -From 205a7844bea4d849dc24f24b5fc96f6040d5e2b9 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 11 Feb 2014 11:14:50 -0500 Subject: [PATCH] Don't require a password to boot entries generated by diff --git a/0045-cache-Fix-compilation-for-ppc-sparc-and-arm64.patch b/0045-cache-Fix-compilation-for-ppc-sparc-and-arm64.patch deleted file mode 100644 index a7b7a2ae..00000000 --- a/0045-cache-Fix-compilation-for-ppc-sparc-and-arm64.patch +++ /dev/null @@ -1,24 +0,0 @@ -From d8901e3ba115d705c9c08ecedd201aca8b4867b8 Mon Sep 17 00:00:00 2001 -From: phcoder -Date: Sun, 9 Jul 2017 20:59:15 +0200 -Subject: [PATCH] cache: Fix compilation for ppc, sparc and arm64 - ---- - include/grub/cache.h | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/include/grub/cache.h b/include/grub/cache.h -index 1c98ce270b6..ccfa717e669 100644 ---- a/include/grub/cache.h -+++ b/include/grub/cache.h -@@ -34,7 +34,9 @@ void EXPORT_FUNC(grub_arch_sync_caches) (void *address, grub_size_t len); - #endif - - #ifndef GRUB_MACHINE_EMU --#if defined (__i386__) || defined (__x86_64__) -+#if defined (__aarch64__) || defined (__powerpc__) || defined (__sparc__) -+ -+#elif defined (__i386__) || defined (__x86_64__) - static inline void - grub_arch_sync_dma_caches (volatile void *address __attribute__ ((unused)), - grub_size_t len __attribute__ ((unused))) diff --git a/0109-Don-t-emit-Booting-.-message.patch b/0046-Don-t-emit-Booting-.-message.patch similarity index 95% rename from 0109-Don-t-emit-Booting-.-message.patch rename to 0046-Don-t-emit-Booting-.-message.patch index 9cff2e4c..725ae098 100644 --- a/0109-Don-t-emit-Booting-.-message.patch +++ b/0046-Don-t-emit-Booting-.-message.patch @@ -1,4 +1,4 @@ -From c986c38f790881be0b9c5b0acd8d3b106412a5f1 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 18 Feb 2014 09:37:49 -0500 Subject: [PATCH] Don't emit "Booting ..." message. diff --git a/0046-ehci-Fix-compilation-on-i386.patch b/0046-ehci-Fix-compilation-on-i386.patch deleted file mode 100644 index e1cd372f..00000000 --- a/0046-ehci-Fix-compilation-on-i386.patch +++ /dev/null @@ -1,31 +0,0 @@ -From 284afab081ef7ed7db2c59151853aa3c92d988f2 Mon Sep 17 00:00:00 2001 -From: Vladimir Serbinenko -Date: Sun, 9 Jul 2017 21:31:19 +0200 -Subject: [PATCH] ehci: Fix compilation on i386 - ---- - grub-core/bus/usb/ehci.c | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/grub-core/bus/usb/ehci.c b/grub-core/bus/usb/ehci.c -index 7b7061f5335..d966fc21002 100644 ---- a/grub-core/bus/usb/ehci.c -+++ b/grub-core/bus/usb/ehci.c -@@ -505,7 +505,7 @@ grub_ehci_init_device (volatile void *regs) - - grub_dprintf ("ehci", - "EHCI grub_ehci_pci_iter: iobase of oper. regs: %08llxx\n", -- (unsigned long long) e->iobase_ehcc + caplen); -+ (unsigned long long) (grub_addr_t) e->iobase_ehcc + caplen); - grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: COMMAND: %08x\n", - grub_ehci_oper_read32 (e, GRUB_EHCI_COMMAND)); - grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: STATUS: %08x\n", -@@ -697,7 +697,7 @@ grub_ehci_init_device (volatile void *regs) - - grub_dprintf ("ehci", - "EHCI grub_ehci_pci_iter: iobase of oper. regs: %08llx\n", -- (unsigned long long) regs); -+ (unsigned long long) (grub_addr_t) regs); - grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: COMMAND: %08x\n", - grub_ehci_oper_read32 (e, GRUB_EHCI_COMMAND)); - grub_dprintf ("ehci", "EHCI grub_ehci_pci_iter: STATUS: %08x\n", diff --git a/0110-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch b/0047-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch similarity index 99% rename from 0110-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch rename to 0047-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch index 89ecc94b..7b8d992e 100644 --- a/0110-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch +++ b/0047-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch @@ -1,4 +1,4 @@ -From dcf3b9c590f00e33f773de68ac4ebd55ca4f6e90 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 4 Mar 2014 11:00:23 -0500 Subject: [PATCH] Replace a lot of man pages with slightly nicer ones. diff --git a/0047-crypto-Fix-use-after-free.patch b/0047-crypto-Fix-use-after-free.patch deleted file mode 100644 index a4b94fef..00000000 --- a/0047-crypto-Fix-use-after-free.patch +++ /dev/null @@ -1,25 +0,0 @@ -From a0fe0c26aa8a1c0ad66d9527611bd726b849c623 Mon Sep 17 00:00:00 2001 -From: AppChecker -Date: Sun, 9 Jul 2017 21:57:35 +0200 -Subject: [PATCH] crypto: Fix use after free. - -Reported by: AppChecker -Transformed to patch by: Satish Govindarajan ---- - grub-core/normal/crypto.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/grub-core/normal/crypto.c b/grub-core/normal/crypto.c -index 2bfd67c8ef3..e6d345f3345 100644 ---- a/grub-core/normal/crypto.c -+++ b/grub-core/normal/crypto.c -@@ -147,8 +147,8 @@ read_crypto_list (const char *prefix) - if (! cur->modname) - { - grub_errno = GRUB_ERR_NONE; -- grub_free (cur); - grub_free (cur->name); -+ grub_free (cur); - continue; - } - cur->next = crypto_specs; diff --git a/0048-arm-efi-Fix-compilation.patch b/0048-arm-efi-Fix-compilation.patch deleted file mode 100644 index 05286688..00000000 --- a/0048-arm-efi-Fix-compilation.patch +++ /dev/null @@ -1,38 +0,0 @@ -From cb8b7e4e36bf32dccbbba8252aa44ad3ada4fbc1 Mon Sep 17 00:00:00 2001 -From: Vladimir Serbinenko -Date: Sun, 9 Jul 2017 21:48:37 +0000 -Subject: [PATCH] arm-efi: Fix compilation - ---- - grub-core/loader/arm/linux.c | 8 ++++---- - 1 file changed, 4 insertions(+), 4 deletions(-) - -diff --git a/grub-core/loader/arm/linux.c b/grub-core/loader/arm/linux.c -index 260cbf06861..e64c79a9577 100644 ---- a/grub-core/loader/arm/linux.c -+++ b/grub-core/loader/arm/linux.c -@@ -252,12 +252,12 @@ linux_boot (void) - #ifdef GRUB_MACHINE_EFI - grub_size_t size; - if (fdt_valid) -- size = grub_fdt_get_totalsize (fdt_addr); -+ size = grub_fdt_get_totalsize (current_fdt); - else -- size = 4 * get_atag_size (atag_orig); -+ size = 4 * get_atag_size (current_fdt); - size += grub_strlen (linux_args) + 256; - target_fdt = grub_efi_allocate_loader_memory (LINUX_FDT_PHYS_OFFSET, size); -- if (!fdt_addr) -+ if (!target_fdt) - return grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("out of memory")); - #else - target_fdt = (void *) LINUX_FDT_ADDRESS; -@@ -522,7 +522,7 @@ GRUB_MOD_INIT (linux) - /* TRANSLATORS: DTB stands for device tree blob. */ - 0, N_("Load DTB file.")); - my_mod = mod; -- current_fdt = grub_arm_firmware_get_boot_data (); -+ current_fdt = (const void *) grub_arm_firmware_get_boot_data (); - machine_type = grub_arm_firmware_get_machine_type (); - } - diff --git a/0111-use-fw_path-prefix-when-fallback-searching-for-grub-.patch b/0048-use-fw_path-prefix-when-fallback-searching-for-grub-.patch similarity index 96% rename from 0111-use-fw_path-prefix-when-fallback-searching-for-grub-.patch rename to 0048-use-fw_path-prefix-when-fallback-searching-for-grub-.patch index f754fadd..0035e62e 100644 --- a/0111-use-fw_path-prefix-when-fallback-searching-for-grub-.patch +++ b/0048-use-fw_path-prefix-when-fallback-searching-for-grub-.patch @@ -1,4 +1,4 @@ -From 24865a88781aef2a6a54433b5b383219108f54fa Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Wed, 19 Feb 2014 15:58:43 -0500 Subject: [PATCH] use fw_path prefix when fallback searching for grub config diff --git a/0112-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch b/0049-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch similarity index 97% rename from 0112-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch rename to 0049-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch index 6dd96aaf..84b8d7a2 100644 --- a/0112-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch +++ b/0049-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch @@ -1,4 +1,4 @@ -From d4cd9aa8695ab9448da41f756553beb75bffee46 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 6 Mar 2014 11:51:33 -0500 Subject: [PATCH] Try mac/guid/etc before grub.cfg on tftp config files. diff --git a/0049-fdt-silence-clang-warning.patch b/0049-fdt-silence-clang-warning.patch deleted file mode 100644 index a276806e..00000000 --- a/0049-fdt-silence-clang-warning.patch +++ /dev/null @@ -1,23 +0,0 @@ -From 68d54b55f49249c5e0517bf189f0f3df7ee6a36f Mon Sep 17 00:00:00 2001 -From: Vladimir Serbinenko -Date: Mon, 10 Jul 2017 01:34:22 +0000 -Subject: [PATCH] fdt: silence clang warning. - ---- - grub-core/lib/fdt.c | 3 ++- - 1 file changed, 2 insertions(+), 1 deletion(-) - -diff --git a/grub-core/lib/fdt.c b/grub-core/lib/fdt.c -index bdc6302448d..2705f2629b9 100644 ---- a/grub-core/lib/fdt.c -+++ b/grub-core/lib/fdt.c -@@ -309,7 +309,8 @@ advance_token (const void *fdt, const grub_uint32_t *token, const grub_uint32_t - continue; - } - char *ptr; -- for (ptr = (char *) (token + 1); *ptr && ptr < (char *) end; ptr++); -+ for (ptr = (char *) (token + 1); *ptr && ptr < (char *) end; ptr++) -+ ; - if (ptr >= (char *) end) - return 0; - return token; diff --git a/0050-Fix-a-segfault-in-lsefi.patch b/0050-Fix-a-segfault-in-lsefi.patch deleted file mode 100644 index 676fa6a6..00000000 --- a/0050-Fix-a-segfault-in-lsefi.patch +++ /dev/null @@ -1,30 +0,0 @@ -From e8ab5a1a9e2889eb59d1fa494ba441a53698dcd2 Mon Sep 17 00:00:00 2001 -From: Rob Clark -Date: Wed, 19 Jul 2017 15:47:41 -0400 -Subject: [PATCH] Fix a segfault in lsefi - -when protocols_per_handle returns error, we can't use the pointers we -passed to it, and that includes trusting num_protocols. - -Signed-off-by: Peter Jones -Reviewed-by: Daniel Kiper ---- - grub-core/commands/efi/lsefi.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/grub-core/commands/efi/lsefi.c b/grub-core/commands/efi/lsefi.c -index d901c389263..d1ce99af438 100644 ---- a/grub-core/commands/efi/lsefi.c -+++ b/grub-core/commands/efi/lsefi.c -@@ -109,8 +109,10 @@ grub_cmd_lsefi (grub_command_t cmd __attribute__ ((unused)), - - status = efi_call_3 (grub_efi_system_table->boot_services->protocols_per_handle, - handle, &protocols, &num_protocols); -- if (status != GRUB_EFI_SUCCESS) -+ if (status != GRUB_EFI_SUCCESS) { - grub_printf ("Unable to retrieve protocols\n"); -+ continue; -+ } - for (j = 0; j < num_protocols; j++) - { - for (k = 0; k < ARRAY_SIZE (known_protocols); k++) diff --git a/0113-Fix-convert-function-to-support-NVMe-devices.patch b/0050-Fix-convert-function-to-support-NVMe-devices.patch similarity index 95% rename from 0113-Fix-convert-function-to-support-NVMe-devices.patch rename to 0050-Fix-convert-function-to-support-NVMe-devices.patch index 4c2f9602..0fb66161 100644 --- a/0113-Fix-convert-function-to-support-NVMe-devices.patch +++ b/0050-Fix-convert-function-to-support-NVMe-devices.patch @@ -1,4 +1,4 @@ -From 397f179c26aeddf3fe452c62aa404459889835fc Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 18 Feb 2014 11:34:00 -0500 Subject: [PATCH] Fix convert function to support NVMe devices diff --git a/0114-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch b/0051-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch similarity index 92% rename from 0114-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch rename to 0051-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch index aa801349..4b4127dd 100644 --- a/0114-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch +++ b/0051-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch @@ -1,4 +1,4 @@ -From 4291f418c3304f0f379467e87ce5892853cc16c7 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Mon, 10 Feb 2014 16:13:10 -0500 Subject: [PATCH] Switch to use APM Mustang device tree, for hardware testing. diff --git a/0051-zfs-remove-size_t-typedef-and-use-grub_size_t-instea.patch b/0051-zfs-remove-size_t-typedef-and-use-grub_size_t-instea.patch deleted file mode 100644 index 5afa6269..00000000 --- a/0051-zfs-remove-size_t-typedef-and-use-grub_size_t-instea.patch +++ /dev/null @@ -1,55 +0,0 @@ -From fa42786264cef98c56e972b3bb6b8448000e1c70 Mon Sep 17 00:00:00 2001 -From: Pete Batard -Date: Thu, 3 Aug 2017 15:46:15 +0100 -Subject: [PATCH] zfs: remove size_t typedef and use grub_size_t instead - -* Prevents some toolchains from issuing a warning on size_t redef. ---- - grub-core/fs/zfs/zfs_lz4.c | 11 +++++------ - 1 file changed, 5 insertions(+), 6 deletions(-) - -diff --git a/grub-core/fs/zfs/zfs_lz4.c b/grub-core/fs/zfs/zfs_lz4.c -index 2f73449f0d4..5453822d025 100644 ---- a/grub-core/fs/zfs/zfs_lz4.c -+++ b/grub-core/fs/zfs/zfs_lz4.c -@@ -73,7 +73,6 @@ static int LZ4_uncompress_unknownOutputSize(const char *source, char *dest, - #define U32 grub_uint32_t - #define S32 grub_int32_t - #define U64 grub_uint64_t --typedef grub_size_t size_t; - - typedef struct _U16_S { - U16 v; -@@ -133,10 +132,10 @@ typedef struct _U64_S { - - /* Decompression functions */ - grub_err_t --lz4_decompress(void *s_start, void *d_start, size_t s_len, size_t d_len); -+lz4_decompress(void *s_start, void *d_start, grub_size_t s_len, grub_size_t d_len); - - grub_err_t --lz4_decompress(void *s_start, void *d_start, size_t s_len, size_t d_len) -+lz4_decompress(void *s_start, void *d_start, grub_size_t s_len, grub_size_t d_len) - { - const BYTE *src = s_start; - U32 bufsiz = (src[0] << 24) | (src[1] << 16) | (src[2] << 8) | -@@ -167,7 +166,7 @@ LZ4_uncompress_unknownOutputSize(const char *source, - BYTE *const oend = op + maxOutputSize; - BYTE *cpy; - -- size_t dec[] = { 0, 3, 2, 3, 0, 0, 0, 0 }; -+ grub_size_t dec[] = { 0, 3, 2, 3, 0, 0, 0, 0 }; - - /* Main Loop */ - while (ip < iend) { -@@ -237,8 +236,8 @@ LZ4_uncompress_unknownOutputSize(const char *source, - /* copy repeated sequence */ - if unlikely(op - ref < STEPSIZE) { - #if LZ4_ARCH64 -- size_t dec2table[] = { 0, 0, 0, -1, 0, 1, 2, 3 }; -- size_t dec2 = dec2table[op - ref]; -+ grub_size_t dec2table[] = { 0, 0, 0, -1, 0, 1, 2, 3 }; -+ grub_size_t dec2 = dec2table[op - ref]; - #else - const int dec2 = 0; - #endif diff --git a/0115-Use-the-default-device-tree-from-the-grub-default-fi.patch b/0052-Use-the-default-device-tree-from-the-grub-default-fi.patch similarity index 95% rename from 0115-Use-the-default-device-tree-from-the-grub-default-fi.patch rename to 0052-Use-the-default-device-tree-from-the-grub-default-fi.patch index 058d5918..4b2d6b75 100644 --- a/0115-Use-the-default-device-tree-from-the-grub-default-fi.patch +++ b/0052-Use-the-default-device-tree-from-the-grub-default-fi.patch @@ -1,4 +1,4 @@ -From 5111bdda0d0a21ab02f6c9aa441a32cd02c6bc3f Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Wed, 12 Feb 2014 14:54:04 -0500 Subject: [PATCH] Use the default device tree from the grub default file diff --git a/0052-udf-Fix-reading-label-lvd.ident-is-dstring.patch b/0052-udf-Fix-reading-label-lvd.ident-is-dstring.patch deleted file mode 100644 index 2634b5a4..00000000 --- a/0052-udf-Fix-reading-label-lvd.ident-is-dstring.patch +++ /dev/null @@ -1,51 +0,0 @@ -From 76188809d5ca40c5285b0ab202b5edea7be3f04d Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Pali=20Roh=C3=A1r?= -Date: Thu, 22 Jun 2017 14:33:17 +0200 -Subject: [PATCH] udf: Fix reading label, lvd.ident is dstring - -UDF dstring has stored length in the last byte of buffer. Therefore last -byte is not part of recorded characters. And empty string in dstring is -encoded as empty buffer, including first byte (compression id). ---- - grub-core/fs/udf.c | 21 ++++++++++++++++++++- - 1 file changed, 20 insertions(+), 1 deletion(-) - -diff --git a/grub-core/fs/udf.c b/grub-core/fs/udf.c -index 839bff88963..2587456336e 100644 ---- a/grub-core/fs/udf.c -+++ b/grub-core/fs/udf.c -@@ -860,6 +860,25 @@ read_string (const grub_uint8_t *raw, grub_size_t sz, char *outbuf) - return outbuf; - } - -+static char * -+read_dstring (const grub_uint8_t *raw, grub_size_t sz) -+{ -+ grub_size_t len; -+ -+ if (raw[0] == 0) { -+ char *outbuf = grub_malloc (1); -+ if (!outbuf) -+ return NULL; -+ outbuf[0] = 0; -+ return outbuf; -+ } -+ -+ len = raw[sz - 1]; -+ if (len > sz - 1) -+ len = sz - 1; -+ return read_string (raw, len, NULL); -+} -+ - static int - grub_udf_iterate_dir (grub_fshelp_node_t dir, - grub_fshelp_iterate_dir_hook_t hook, void *hook_data) -@@ -1197,7 +1216,7 @@ grub_udf_label (grub_device_t device, char **label) - - if (data) - { -- *label = read_string (data->lvd.ident, sizeof (data->lvd.ident), 0); -+ *label = read_dstring (data->lvd.ident, sizeof (data->lvd.ident)); - grub_free (data); - } - else diff --git a/0053-grub-core-fs-udf.c-Add-support-for-UUID.patch b/0053-grub-core-fs-udf.c-Add-support-for-UUID.patch deleted file mode 100644 index 126227d8..00000000 --- a/0053-grub-core-fs-udf.c-Add-support-for-UUID.patch +++ /dev/null @@ -1,188 +0,0 @@ -From 435fa75e01ef40917239c7f775e505e86f70d202 Mon Sep 17 00:00:00 2001 -From: =?UTF-8?q?Pali=20Roh=C3=A1r?= -Date: Thu, 22 Jun 2017 14:42:16 +0200 -Subject: [PATCH] * grub-core/fs/udf.c: Add support for UUID - -Use same algorithm as in libblkid from util-linux v2.30. - -1. Take first 16 bytes from UTF-8 encoded string of VolumeSetIdentifier -2. If all bytes are hexadecimal digits, convert to lowercase and use as UUID -3. If first 8 bytes are not all hexadecimal digits, convert those 8 bytes - to their hexadecimal representation, resulting in 16 bytes for UUID -4. Otherwise, compose UUID from two parts: - 1. part: converted first 8 bytes (which are hexadecimal digits) to lowercase - 2. part: encoded following 4 bytes to their hexadecimal representation (16 bytes) - -So UUID would always have 16 hexadecimal digits in lowercase variant. - -According to UDF specification, first 16 Unicode characters of -VolumeSetIdentifier should be unique value and first 8 should be -hexadecimal characters. - -In most cases all 16 characters are hexadecimal, but e.g. MS Windows -format.exe set only first 8 as hexadecimal and remaining as fixed -(non-unique) which violates specification. ---- - grub-core/fs/udf.c | 121 ++++++++++++++++++++++++++++++++++++++++++++++++++++- - 1 file changed, 120 insertions(+), 1 deletion(-) - -diff --git a/grub-core/fs/udf.c b/grub-core/fs/udf.c -index 2587456336e..00a16098b47 100644 ---- a/grub-core/fs/udf.c -+++ b/grub-core/fs/udf.c -@@ -321,6 +321,32 @@ struct grub_udf_partmap - }; - } GRUB_PACKED; - -+struct grub_udf_pvd -+{ -+ struct grub_udf_tag tag; -+ grub_uint32_t seq_num; -+ grub_uint32_t pvd_num; -+ grub_uint8_t ident[32]; -+ grub_uint16_t vol_seq_num; -+ grub_uint16_t max_vol_seq_num; -+ grub_uint16_t interchange_level; -+ grub_uint16_t max_interchange_level; -+ grub_uint32_t charset_list; -+ grub_uint32_t max_charset_list; -+ grub_uint8_t volset_ident[128]; -+ struct grub_udf_charspec desc_charset; -+ struct grub_udf_charspec expl_charset; -+ struct grub_udf_extent_ad vol_abstract; -+ struct grub_udf_extent_ad vol_copyright; -+ struct grub_udf_regid app_ident; -+ struct grub_udf_timestamp recording_time; -+ struct grub_udf_regid imp_ident; -+ grub_uint8_t imp_use[64]; -+ grub_uint32_t pred_vds_loc; -+ grub_uint16_t flags; -+ grub_uint8_t reserved[22]; -+} GRUB_PACKED; -+ - struct grub_udf_lvd - { - struct grub_udf_tag tag; -@@ -348,6 +374,7 @@ struct grub_udf_aed - struct grub_udf_data - { - grub_disk_t disk; -+ struct grub_udf_pvd pvd; - struct grub_udf_lvd lvd; - struct grub_udf_pd pds[GRUB_UDF_MAX_PDS]; - struct grub_udf_partmap *pms[GRUB_UDF_MAX_PMS]; -@@ -692,7 +719,17 @@ grub_udf_mount (grub_disk_t disk) - } - - tag.tag_ident = U16 (tag.tag_ident); -- if (tag.tag_ident == GRUB_UDF_TAG_IDENT_PD) -+ if (tag.tag_ident == GRUB_UDF_TAG_IDENT_PVD) -+ { -+ if (grub_disk_read (disk, block << lbshift, 0, -+ sizeof (struct grub_udf_pvd), -+ &data->pvd)) -+ { -+ grub_error (GRUB_ERR_BAD_FS, "not an UDF filesystem"); -+ goto fail; -+ } -+ } -+ else if (tag.tag_ident == GRUB_UDF_TAG_IDENT_PD) - { - if (data->npd >= GRUB_UDF_MAX_PDS) - { -@@ -1225,6 +1262,87 @@ grub_udf_label (grub_device_t device, char **label) - return grub_errno; - } - -+static char * -+gen_uuid_from_volset (char *volset_ident) -+{ -+ grub_size_t i; -+ grub_size_t len; -+ grub_size_t nonhexpos; -+ grub_uint8_t buf[17]; -+ char *uuid; -+ -+ len = grub_strlen (volset_ident); -+ if (len < 8) -+ return NULL; -+ -+ uuid = grub_malloc (17); -+ if (!uuid) -+ return NULL; -+ -+ if (len > 16) -+ len = 16; -+ -+ grub_memset (buf, 0, sizeof (buf)); -+ grub_memcpy (buf, volset_ident, len); -+ -+ nonhexpos = 16; -+ for (i = 0; i < 16; ++i) -+ { -+ if (!grub_isxdigit (buf[i])) -+ { -+ nonhexpos = i; -+ break; -+ } -+ } -+ -+ if (nonhexpos < 8) -+ { -+ grub_snprintf (uuid, 17, "%02x%02x%02x%02x%02x%02x%02x%02x", -+ buf[0], buf[1], buf[2], buf[3], -+ buf[4], buf[5], buf[6], buf[7]); -+ } -+ else if (nonhexpos < 16) -+ { -+ for (i = 0; i < 8; ++i) -+ uuid[i] = grub_tolower (buf[i]); -+ grub_snprintf (uuid+8, 9, "%02x%02x%02x%02x", -+ buf[8], buf[9], buf[10], buf[11]); -+ } -+ else -+ { -+ for (i = 0; i < 16; ++i) -+ uuid[i] = grub_tolower (buf[i]); -+ uuid[16] = 0; -+ } -+ -+ return uuid; -+} -+ -+static grub_err_t -+grub_udf_uuid (grub_device_t device, char **uuid) -+{ -+ char *volset_ident; -+ struct grub_udf_data *data; -+ data = grub_udf_mount (device->disk); -+ -+ if (data) -+ { -+ volset_ident = read_dstring (data->pvd.volset_ident, sizeof (data->pvd.volset_ident)); -+ if (volset_ident) -+ { -+ *uuid = gen_uuid_from_volset (volset_ident); -+ grub_free (volset_ident); -+ } -+ else -+ *uuid = 0; -+ grub_free (data); -+ } -+ else -+ *uuid = 0; -+ -+ return grub_errno; -+} -+ - static struct grub_fs grub_udf_fs = { - .name = "udf", - .dir = grub_udf_dir, -@@ -1232,6 +1350,7 @@ static struct grub_fs grub_udf_fs = { - .read = grub_udf_read, - .close = grub_udf_close, - .label = grub_udf_label, -+ .uuid = grub_udf_uuid, - #ifdef GRUB_UTIL - .reserved_first_sector = 1, - .blocklist_install = 1, diff --git a/0116-reopen-SNP-protocol-for-exclusive-use-by-grub.patch b/0053-reopen-SNP-protocol-for-exclusive-use-by-grub.patch similarity index 95% rename from 0116-reopen-SNP-protocol-for-exclusive-use-by-grub.patch rename to 0053-reopen-SNP-protocol-for-exclusive-use-by-grub.patch index 42f406e5..fb2875ba 100644 --- a/0116-reopen-SNP-protocol-for-exclusive-use-by-grub.patch +++ b/0053-reopen-SNP-protocol-for-exclusive-use-by-grub.patch @@ -1,4 +1,4 @@ -From 0ff5bf3deefdb17dbadb51a11acc50b96e2ed797 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Fedora Ninjas Date: Sat, 15 Feb 2014 15:10:22 -0500 Subject: [PATCH] reopen SNP protocol for exclusive use by grub diff --git a/0117-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch b/0054-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch similarity index 96% rename from 0117-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch rename to 0054-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch index 0d7c551b..4238b7de 100644 --- a/0117-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch +++ b/0054-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch @@ -1,4 +1,4 @@ -From 58fba65b7e339d4c7279e4ca88937d9501275169 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 4 Mar 2016 15:13:59 -0500 Subject: [PATCH] Revert "reopen SNP protocol for exclusive use by grub" diff --git a/0054-mkrescue-Check-xorriso-presence-before-doing-anythin.patch b/0054-mkrescue-Check-xorriso-presence-before-doing-anythin.patch deleted file mode 100644 index b43ad2b2..00000000 --- a/0054-mkrescue-Check-xorriso-presence-before-doing-anythin.patch +++ /dev/null @@ -1,46 +0,0 @@ -From 9e962fd3c42081e2eef1f99a0eaab38fd04d2620 Mon Sep 17 00:00:00 2001 -From: Vladimir Serbinenko -Date: Mon, 7 Aug 2017 18:05:17 +0200 -Subject: [PATCH] mkrescue: Check xorriso presence before doing anything else. - -mkrescue can't do anything useful without xorriso, so abort early if it's -not available. ---- - util/grub-mkrescue.c | 9 ++++++++- - 1 file changed, 8 insertions(+), 1 deletion(-) - -diff --git a/util/grub-mkrescue.c b/util/grub-mkrescue.c -index 238d4840e2f..38f1543974e 100644 ---- a/util/grub-mkrescue.c -+++ b/util/grub-mkrescue.c -@@ -323,6 +323,7 @@ check_xorriso (const char *val) - char *buf = NULL; - size_t len = 0; - int ret = 0; -+ int wstatus = 0; - - argv[0] = xorriso; - argv[1] = "-as"; -@@ -347,8 +348,10 @@ check_xorriso (const char *val) - } - - close (fd); -- waitpid (pid, NULL, 0); -+ waitpid (pid, &wstatus, 0); - free (buf); -+ if (!WIFEXITED (wstatus) || WEXITSTATUS(wstatus) != 0) -+ return 0; - return ret; - } - -@@ -478,6 +481,10 @@ main (int argc, char *argv[]) - if (!output_image) - grub_util_error ("%s", _("output file must be specified")); - -+ if (!check_xorriso ("graft-points")) { -+ grub_util_error ("%s", _("xorriso not found")); -+ } -+ - grub_init_all (); - grub_hostfs_init (); - grub_host_init (); diff --git a/0118-Add-grub_util_readlink.patch b/0055-Add-grub_util_readlink.patch similarity index 99% rename from 0118-Add-grub_util_readlink.patch rename to 0055-Add-grub_util_readlink.patch index 89fd4261..6ea7df15 100644 --- a/0118-Add-grub_util_readlink.patch +++ b/0055-Add-grub_util_readlink.patch @@ -1,4 +1,4 @@ -From 76baa996f73eea47f7bdc41461efeee204626e2d Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 3 Sep 2014 10:01:03 -0400 Subject: [PATCH] Add grub_util_readlink() diff --git a/0055-Fail-if-xorriso-failed.patch b/0055-Fail-if-xorriso-failed.patch deleted file mode 100644 index 0da5c882..00000000 --- a/0055-Fail-if-xorriso-failed.patch +++ /dev/null @@ -1,41 +0,0 @@ -From e66dc5d71ebfc9763420a76c274e6980d54641c3 Mon Sep 17 00:00:00 2001 -From: Vladimir Serbinenko -Date: Mon, 7 Aug 2017 18:08:39 +0200 -Subject: [PATCH] Fail if xorriso failed. - -If xorriso failed most likely we didn't generate a meaningful image. ---- - util/grub-mkrescue.c | 6 ++++-- - 1 file changed, 4 insertions(+), 2 deletions(-) - -diff --git a/util/grub-mkrescue.c b/util/grub-mkrescue.c -index 38f1543974e..9545945d8f3 100644 ---- a/util/grub-mkrescue.c -+++ b/util/grub-mkrescue.c -@@ -429,6 +429,7 @@ main (int argc, char *argv[]) - char **argp_argv; - int xorriso_tail_argc; - char **xorriso_tail_argv; -+ int rv; - - grub_util_host_init (&argc, &argv); - grub_util_disable_fd_syncs (); -@@ -794,7 +795,6 @@ main (int argc, char *argv[]) - free (efidir_efi_boot); - - efiimgfat = grub_util_path_concat (2, iso9660_dir, "efi.img"); -- int rv; - rv = grub_util_exec ((const char * []) { "mformat", "-C", "-f", "2880", "-L", "16", "-i", - efiimgfat, "::", NULL }); - if (rv != 0) -@@ -967,7 +967,9 @@ main (int argc, char *argv[]) - - xorriso_argv[xorriso_argc] = NULL; - -- grub_util_exec ((const char *const *)xorriso_argv); -+ rv = grub_util_exec ((const char *const *)xorriso_argv); -+ if (rv != 0) -+ grub_util_error ("`%s` invocation failed\n", "xorriso"); - - grub_util_unlink_recursive (iso9660_dir); - diff --git a/0119-Make-editenv-chase-symlinks-including-those-across-d.patch b/0056-Make-editenv-chase-symlinks-including-those-across-d.patch similarity index 97% rename from 0119-Make-editenv-chase-symlinks-including-those-across-d.patch rename to 0056-Make-editenv-chase-symlinks-including-those-across-d.patch index 52042516..3f7f50a9 100644 --- a/0119-Make-editenv-chase-symlinks-including-those-across-d.patch +++ b/0056-Make-editenv-chase-symlinks-including-those-across-d.patch @@ -1,4 +1,4 @@ -From fd1a89c8bef603ec33937f122ae25013a724601a Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 3 Sep 2014 10:38:00 -0400 Subject: [PATCH] Make editenv chase symlinks including those across devices. diff --git a/0056-efi-refactor-grub_efi_allocate_pages.patch b/0056-efi-refactor-grub_efi_allocate_pages.patch deleted file mode 100644 index 2e13c599..00000000 --- a/0056-efi-refactor-grub_efi_allocate_pages.patch +++ /dev/null @@ -1,117 +0,0 @@ -From dd5fde2df83c5c03b7ba04d2cc5b7be96de8da7b Mon Sep 17 00:00:00 2001 -From: Leif Lindholm -Date: Thu, 3 Aug 2017 11:04:23 +0100 -Subject: [PATCH] efi: refactor grub_efi_allocate_pages - -Expose a new function, grub_efi_allocate_pages_real(), making it possible -to specify allocation type and memory type as supported by the UEFI -AllocatePages boot service. - -Make grub_efi_allocate_pages() a consumer of the new function, -maintaining its old functionality. - -Also delete some left-around #if 1/#else blocks in the affected -functions. - -Signed-off-by: Leif Lindholm ---- - grub-core/kern/efi/mm.c | 46 ++++++++++++++++++++++++---------------------- - include/grub/efi/efi.h | 5 +++++ - 2 files changed, 29 insertions(+), 22 deletions(-) - -diff --git a/grub-core/kern/efi/mm.c b/grub-core/kern/efi/mm.c -index 20a47aaf5d0..d88bc5e4326 100644 ---- a/grub-core/kern/efi/mm.c -+++ b/grub-core/kern/efi/mm.c -@@ -51,36 +51,20 @@ int grub_efi_is_finished = 0; - - /* Allocate pages. Return the pointer to the first of allocated pages. */ - void * --grub_efi_allocate_pages (grub_efi_physical_address_t address, -- grub_efi_uintn_t pages) -+grub_efi_allocate_pages_real (grub_efi_physical_address_t address, -+ grub_efi_uintn_t pages, -+ grub_efi_allocate_type_t alloctype, -+ grub_efi_memory_type_t memtype) - { -- grub_efi_allocate_type_t type; - grub_efi_status_t status; - grub_efi_boot_services_t *b; - --#if 1 - /* Limit the memory access to less than 4GB for 32-bit platforms. */ - if (address > GRUB_EFI_MAX_USABLE_ADDRESS) - return 0; --#endif -- --#if 1 -- if (address == 0) -- { -- type = GRUB_EFI_ALLOCATE_MAX_ADDRESS; -- address = GRUB_EFI_MAX_USABLE_ADDRESS; -- } -- else -- type = GRUB_EFI_ALLOCATE_ADDRESS; --#else -- if (address == 0) -- type = GRUB_EFI_ALLOCATE_ANY_PAGES; -- else -- type = GRUB_EFI_ALLOCATE_ADDRESS; --#endif - - b = grub_efi_system_table->boot_services; -- status = efi_call_4 (b->allocate_pages, type, GRUB_EFI_LOADER_DATA, pages, &address); -+ status = efi_call_4 (b->allocate_pages, alloctype, memtype, pages, &address); - if (status != GRUB_EFI_SUCCESS) - return 0; - -@@ -89,7 +73,7 @@ grub_efi_allocate_pages (grub_efi_physical_address_t address, - /* Uggh, the address 0 was allocated... This is too annoying, - so reallocate another one. */ - address = GRUB_EFI_MAX_USABLE_ADDRESS; -- status = efi_call_4 (b->allocate_pages, type, GRUB_EFI_LOADER_DATA, pages, &address); -+ status = efi_call_4 (b->allocate_pages, alloctype, memtype, pages, &address); - grub_efi_free_pages (0, pages); - if (status != GRUB_EFI_SUCCESS) - return 0; -@@ -98,6 +82,24 @@ grub_efi_allocate_pages (grub_efi_physical_address_t address, - return (void *) ((grub_addr_t) address); - } - -+void * -+grub_efi_allocate_pages (grub_efi_physical_address_t address, -+ grub_efi_uintn_t pages) -+{ -+ grub_efi_allocate_type_t alloctype; -+ -+ if (address == 0) -+ { -+ alloctype = GRUB_EFI_ALLOCATE_MAX_ADDRESS; -+ address = GRUB_EFI_MAX_USABLE_ADDRESS; -+ } -+ else -+ alloctype = GRUB_EFI_ALLOCATE_ADDRESS; -+ -+ return grub_efi_allocate_pages_real (address, pages, alloctype, -+ GRUB_EFI_LOADER_DATA); -+} -+ - /* Free pages starting from ADDRESS. */ - void - grub_efi_free_pages (grub_efi_physical_address_t address, -diff --git a/include/grub/efi/efi.h b/include/grub/efi/efi.h -index e9c601f3410..b4cbebf3828 100644 ---- a/include/grub/efi/efi.h -+++ b/include/grub/efi/efi.h -@@ -38,6 +38,11 @@ void *EXPORT_FUNC(grub_efi_open_protocol) (grub_efi_handle_t handle, - int EXPORT_FUNC(grub_efi_set_text_mode) (int on); - void EXPORT_FUNC(grub_efi_stall) (grub_efi_uintn_t microseconds); - void * -+EXPORT_FUNC(grub_efi_allocate_pages_real) (grub_efi_physical_address_t address, -+ grub_efi_uintn_t pages, -+ grub_efi_allocate_type_t alloctype, -+ grub_efi_memory_type_t memtype); -+void * - EXPORT_FUNC(grub_efi_allocate_pages) (grub_efi_physical_address_t address, - grub_efi_uintn_t pages); - void EXPORT_FUNC(grub_efi_free_pages) (grub_efi_physical_address_t address, diff --git a/0120-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch b/0057-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch similarity index 94% rename from 0120-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch rename to 0057-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch index 27d0b0d8..c3b8ce33 100644 --- a/0120-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch +++ b/0057-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch @@ -1,4 +1,4 @@ -From c8d93b9e27e9cbf51e91f6cc99abbcb7b68189ce Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Sep 2014 14:23:23 -0400 Subject: [PATCH] Generate OS and CLASS in 10_linux from /etc/os-release diff --git a/0057-Remove-grub_efi_allocate_pages.patch b/0057-Remove-grub_efi_allocate_pages.patch deleted file mode 100644 index 3cfdef1d..00000000 --- a/0057-Remove-grub_efi_allocate_pages.patch +++ /dev/null @@ -1,249 +0,0 @@ -From 4bc909bf89f5b4ff86c9e4e609d4fe0c11a66b0c Mon Sep 17 00:00:00 2001 -From: Vladimir Serbinenko -Date: Mon, 7 Aug 2017 18:33:29 +0200 -Subject: [PATCH] Remove grub_efi_allocate_pages. - -grub_efi_allocate_pages Essentially does 2 unrelated things: -* Allocate at fixed address. -* Allocate at any address. - -To switch between 2 different functions it uses address == 0 as magic -value which is wrong as 0 is a perfectly valid fixed adress to allocate at. ---- - grub-core/kern/arm/efi/misc.c | 4 ++-- - grub-core/kern/efi/mm.c | 30 ++++++++++++++---------------- - grub-core/loader/arm64/fdt.c | 2 +- - grub-core/loader/arm64/linux.c | 7 +++---- - grub-core/loader/arm64/xen_boot.c | 7 +++---- - grub-core/loader/ia64/efi/linux.c | 10 +++++----- - include/grub/autoefi.h | 2 +- - include/grub/efi/efi.h | 4 +++- - 8 files changed, 32 insertions(+), 34 deletions(-) - -diff --git a/grub-core/kern/arm/efi/misc.c b/grub-core/kern/arm/efi/misc.c -index 7cd41842ae7..c95e8299d42 100644 ---- a/grub-core/kern/arm/efi/misc.c -+++ b/grub-core/kern/arm/efi/misc.c -@@ -146,7 +146,7 @@ grub_efi_allocate_loader_memory (grub_uint32_t min_offset, grub_uint32_t size) - continue; - grub_dprintf("mm", "%s: let's allocate some (0x%x) pages @ 0x%08x...\n", - __FUNCTION__, (size >> PAGE_SHIFT), (grub_addr_t) start); -- mem = grub_efi_allocate_pages (start, (size >> PAGE_SHIFT) + 1); -+ mem = grub_efi_allocate_fixed (start, (size >> PAGE_SHIFT) + 1); - grub_dprintf("mm", "%s: retval=0x%08x\n", - __FUNCTION__, (grub_addr_t) mem); - if (! mem) -@@ -189,7 +189,7 @@ grub_efi_prepare_platform (void) - mmap_size = find_mmap_size (); - if (! mmap_size) - return GRUB_ERR_OUT_OF_MEMORY; -- mmap_buf = grub_efi_allocate_pages (0, page_align (mmap_size) >> 12); -+ mmap_buf = grub_efi_allocate_any_pages (page_align (mmap_size) >> 12); - if (! mmap_buf) - return GRUB_ERR_OUT_OF_MEMORY; - -diff --git a/grub-core/kern/efi/mm.c b/grub-core/kern/efi/mm.c -index d88bc5e4326..b97b05fe825 100644 ---- a/grub-core/kern/efi/mm.c -+++ b/grub-core/kern/efi/mm.c -@@ -83,20 +83,19 @@ grub_efi_allocate_pages_real (grub_efi_physical_address_t address, - } - - void * --grub_efi_allocate_pages (grub_efi_physical_address_t address, -+grub_efi_allocate_any_pages (grub_efi_uintn_t pages) -+{ -+ return grub_efi_allocate_pages_real (GRUB_EFI_MAX_USABLE_ADDRESS, -+ pages, GRUB_EFI_ALLOCATE_MAX_ADDRESS, -+ GRUB_EFI_LOADER_DATA); -+} -+ -+void * -+grub_efi_allocate_fixed (grub_efi_physical_address_t address, - grub_efi_uintn_t pages) - { -- grub_efi_allocate_type_t alloctype; -- -- if (address == 0) -- { -- alloctype = GRUB_EFI_ALLOCATE_MAX_ADDRESS; -- address = GRUB_EFI_MAX_USABLE_ADDRESS; -- } -- else -- alloctype = GRUB_EFI_ALLOCATE_ADDRESS; -- -- return grub_efi_allocate_pages_real (address, pages, alloctype, -+ return grub_efi_allocate_pages_real (address, pages, -+ GRUB_EFI_ALLOCATE_ADDRESS, - GRUB_EFI_LOADER_DATA); - } - -@@ -404,7 +403,7 @@ add_memory_regions (grub_efi_memory_descriptor_t *memory_map, - pages = required_pages; - } - -- addr = grub_efi_allocate_pages (start, pages); -+ addr = grub_efi_allocate_fixed (start, pages); - if (! addr) - grub_fatal ("cannot allocate conventional memory %p with %u pages", - (void *) ((grub_addr_t) start), -@@ -456,8 +455,7 @@ grub_efi_mm_init (void) - int mm_status; - - /* Prepare a memory region to store two memory maps. */ -- memory_map = grub_efi_allocate_pages (0, -- 2 * BYTES_TO_PAGES (MEMORY_MAP_SIZE)); -+ memory_map = grub_efi_allocate_any_pages (2 * BYTES_TO_PAGES (MEMORY_MAP_SIZE)); - if (! memory_map) - grub_fatal ("cannot allocate memory"); - -@@ -475,7 +473,7 @@ grub_efi_mm_init (void) - /* Freeing/allocating operations may increase memory map size. */ - map_size += desc_size * 32; - -- memory_map = grub_efi_allocate_pages (0, 2 * BYTES_TO_PAGES (map_size)); -+ memory_map = grub_efi_allocate_any_pages (2 * BYTES_TO_PAGES (map_size)); - if (! memory_map) - grub_fatal ("cannot allocate memory"); - -diff --git a/grub-core/loader/arm64/fdt.c b/grub-core/loader/arm64/fdt.c -index db49cf64991..368001696ee 100644 ---- a/grub-core/loader/arm64/fdt.c -+++ b/grub-core/loader/arm64/fdt.c -@@ -50,7 +50,7 @@ grub_fdt_load (grub_size_t additional_size) - size += additional_size; - - grub_dprintf ("linux", "allocating %ld bytes for fdt\n", size); -- fdt = grub_efi_allocate_pages (0, GRUB_EFI_BYTES_TO_PAGES (size)); -+ fdt = grub_efi_allocate_any_pages (GRUB_EFI_BYTES_TO_PAGES (size)); - if (!fdt) - return NULL; - -diff --git a/grub-core/loader/arm64/linux.c b/grub-core/loader/arm64/linux.c -index 9519d2e4d3e..ee3fcaa86ae 100644 ---- a/grub-core/loader/arm64/linux.c -+++ b/grub-core/loader/arm64/linux.c -@@ -148,8 +148,7 @@ grub_arm64_uefi_boot_image (grub_addr_t addr, grub_size_t size, char *args) - loaded_image->load_options_size = len = - (grub_strlen (args) + 1) * sizeof (grub_efi_char16_t); - loaded_image->load_options = -- grub_efi_allocate_pages (0, -- GRUB_EFI_BYTES_TO_PAGES (loaded_image->load_options_size)); -+ grub_efi_allocate_any_pages (GRUB_EFI_BYTES_TO_PAGES (loaded_image->load_options_size)); - if (!loaded_image->load_options) - return grub_errno; - -@@ -223,7 +222,7 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), - grub_dprintf ("linux", "Loading initrd\n"); - - initrd_pages = (GRUB_EFI_BYTES_TO_PAGES (initrd_size)); -- initrd_mem = grub_efi_allocate_pages (0, initrd_pages); -+ initrd_mem = grub_efi_allocate_any_pages (initrd_pages); - if (!initrd_mem) - { - grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("out of memory")); -@@ -277,7 +276,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - grub_loader_unset(); - - grub_dprintf ("linux", "kernel file size: %lld\n", (long long) kernel_size); -- kernel_addr = grub_efi_allocate_pages (0, GRUB_EFI_BYTES_TO_PAGES (kernel_size)); -+ kernel_addr = grub_efi_allocate_any_pages (GRUB_EFI_BYTES_TO_PAGES (kernel_size)); - grub_dprintf ("linux", "kernel numpages: %lld\n", - (long long) GRUB_EFI_BYTES_TO_PAGES (kernel_size)); - if (!kernel_addr) -diff --git a/grub-core/loader/arm64/xen_boot.c b/grub-core/loader/arm64/xen_boot.c -index 27ede46cac5..6c145a771ee 100644 ---- a/grub-core/loader/arm64/xen_boot.c -+++ b/grub-core/loader/arm64/xen_boot.c -@@ -324,10 +324,9 @@ xen_boot_binary_load (struct xen_boot_binary *binary, grub_file_t file, - grub_dprintf ("xen_loader", "Xen_boot file size: 0x%lx\n", binary->size); - - binary->start -- = (grub_addr_t) grub_efi_allocate_pages (0, -- GRUB_EFI_BYTES_TO_PAGES -- (binary->size + -- binary->align)); -+ = (grub_addr_t) grub_efi_allocate_any_pages (GRUB_EFI_BYTES_TO_PAGES -+ (binary->size + -+ binary->align)); - if (!binary->start) - { - grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("out of memory")); -diff --git a/grub-core/loader/ia64/efi/linux.c b/grub-core/loader/ia64/efi/linux.c -index efaa42ccdd2..750330d4572 100644 ---- a/grub-core/loader/ia64/efi/linux.c -+++ b/grub-core/loader/ia64/efi/linux.c -@@ -252,7 +252,7 @@ allocate_pages (grub_uint64_t align, grub_uint64_t size_pages, - aligned_start += align; - if (aligned_start + size > end) - continue; -- mem = grub_efi_allocate_pages (aligned_start, size_pages); -+ mem = grub_efi_allocate_fixed (aligned_start, size_pages); - if (! mem) - { - grub_error (GRUB_ERR_OUT_OF_MEMORY, "cannot allocate memory"); -@@ -326,7 +326,7 @@ grub_linux_boot (void) - mmap_size = find_mmap_size (); - if (! mmap_size) - return grub_errno; -- mmap_buf = grub_efi_allocate_pages (0, page_align (mmap_size) >> 12); -+ mmap_buf = grub_efi_allocate_any_pages (page_align (mmap_size) >> 12); - if (! mmap_buf) - return grub_error (GRUB_ERR_IO, "cannot allocate memory map"); - err = grub_efi_finish_boot_services (&mmap_size, mmap_buf, &map_key, -@@ -422,7 +422,7 @@ grub_load_elf64 (grub_file_t file, void *buffer, const char *filename) - relocate = grub_env_get ("linux_relocate"); - if (!relocate || grub_strcmp (relocate, "force") != 0) - { -- kernel_mem = grub_efi_allocate_pages (low_addr, kernel_pages); -+ kernel_mem = grub_efi_allocate_fixed (low_addr, kernel_pages); - reloc_offset = 0; - } - /* Try to relocate. */ -@@ -524,7 +524,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - len += grub_strlen (argv[i]) + 1; - len += sizeof (struct ia64_boot_param) + 512; /* Room for extensions. */ - boot_param_pages = page_align (len) >> 12; -- boot_param = grub_efi_allocate_pages (0, boot_param_pages); -+ boot_param = grub_efi_allocate_any_pages (boot_param_pages); - if (boot_param == 0) - { - grub_error (GRUB_ERR_OUT_OF_MEMORY, -@@ -589,7 +589,7 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), - grub_dprintf ("linux", "Loading initrd\n"); - - initrd_pages = (page_align (initrd_size) >> 12); -- initrd_mem = grub_efi_allocate_pages (0, initrd_pages); -+ initrd_mem = grub_efi_allocate_any_pages (initrd_pages); - if (! initrd_mem) - { - grub_error (GRUB_ERR_OUT_OF_MEMORY, "cannot allocate pages"); -diff --git a/include/grub/autoefi.h b/include/grub/autoefi.h -index b75591176eb..b7a252e079e 100644 ---- a/include/grub/autoefi.h -+++ b/include/grub/autoefi.h -@@ -55,7 +55,7 @@ static inline grub_err_t grub_autoefi_prepare (void) - # define SYSTEM_TABLE_PTR GRUB_EFIEMU_SYSTEM_TABLE_PTR - # define SIZEOF_OF_UINTN GRUB_EFIEMU_SIZEOF_OF_UINTN - # define SYSTEM_TABLE GRUB_EFIEMU_SYSTEM_TABLE --# define grub_efi_allocate_pages(x,y) (x) -+# define grub_efi_allocate_fixed(x,y) (x) - # define grub_efi_free_pages(x,y) GRUB_EFI_SUCCESS - # define grub_autoefi_finish_boot_services grub_efiemu_finish_boot_services - # define EFI_PRESENT 1 -diff --git a/include/grub/efi/efi.h b/include/grub/efi/efi.h -index b4cbebf3828..3fa082816ca 100644 ---- a/include/grub/efi/efi.h -+++ b/include/grub/efi/efi.h -@@ -43,8 +43,10 @@ EXPORT_FUNC(grub_efi_allocate_pages_real) (grub_efi_physical_address_t address, - grub_efi_allocate_type_t alloctype, - grub_efi_memory_type_t memtype); - void * --EXPORT_FUNC(grub_efi_allocate_pages) (grub_efi_physical_address_t address, -+EXPORT_FUNC(grub_efi_allocate_fixed) (grub_efi_physical_address_t address, - grub_efi_uintn_t pages); -+void * -+EXPORT_FUNC(grub_efi_allocate_any_pages) (grub_efi_uintn_t pages); - void EXPORT_FUNC(grub_efi_free_pages) (grub_efi_physical_address_t address, - grub_efi_uintn_t pages); - int diff --git a/0121-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch b/0058-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch similarity index 94% rename from 0121-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch rename to 0058-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch index 162fc0c4..d0abde6a 100644 --- a/0121-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch +++ b/0058-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch @@ -1,4 +1,4 @@ -From 974241c42b03f3ccb6a5d0eb453283e370da9848 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 4 Sep 2014 15:52:08 -0400 Subject: [PATCH] Minimize the sort ordering for .debug and -rescue- kernels. diff --git a/0058-efi-move-fdt-helper-library.patch b/0058-efi-move-fdt-helper-library.patch deleted file mode 100644 index 5fe9f298..00000000 --- a/0058-efi-move-fdt-helper-library.patch +++ /dev/null @@ -1,90 +0,0 @@ -From 8c9465fac901caac6802d6872a1374518b001517 Mon Sep 17 00:00:00 2001 -From: Leif Lindholm -Date: Thu, 3 Aug 2017 11:04:24 +0100 -Subject: [PATCH] efi: move fdt helper library - -There is nothing ARM64 (or even ARM) specific about the efi fdt helper -library, which is used for locating or overriding a firmware-provided -devicetree in a UEFI system - so move it to loader/efi for reuse. - -Move the fdtload.h include file to grub/efi and update path to -efi/fdtload.h in source code referring to it. - -Signed-off-by: Leif Lindholm ---- - grub-core/Makefile.core.def | 2 +- - grub-core/loader/arm64/linux.c | 2 +- - grub-core/loader/arm64/xen_boot.c | 2 +- - grub-core/loader/{arm64 => efi}/fdt.c | 2 +- - include/grub/{arm64 => efi}/fdtload.h | 0 - 5 files changed, 4 insertions(+), 4 deletions(-) - rename grub-core/loader/{arm64 => efi}/fdt.c (99%) - rename include/grub/{arm64 => efi}/fdtload.h (100%) - -diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 1d86bd22e04..a65c27f7ff2 100644 ---- a/grub-core/Makefile.core.def -+++ b/grub-core/Makefile.core.def -@@ -1707,7 +1707,7 @@ module = { - - module = { - name = fdt; -- arm64 = loader/arm64/fdt.c; -+ arm64 = loader/efi/fdt.c; - common = lib/fdt.c; - enable = fdt; - }; -diff --git a/grub-core/loader/arm64/linux.c b/grub-core/loader/arm64/linux.c -index ee3fcaa86ae..3e2f9b74296 100644 ---- a/grub-core/loader/arm64/linux.c -+++ b/grub-core/loader/arm64/linux.c -@@ -26,8 +26,8 @@ - #include - #include - #include --#include - #include -+#include - #include - #include - #include -diff --git a/grub-core/loader/arm64/xen_boot.c b/grub-core/loader/arm64/xen_boot.c -index 6c145a771ee..c95d6c5a868 100644 ---- a/grub-core/loader/arm64/xen_boot.c -+++ b/grub-core/loader/arm64/xen_boot.c -@@ -27,9 +27,9 @@ - #include - #include - #include --#include - #include - #include -+#include - #include /* required by struct xen_hypervisor_header */ - #include - #include -diff --git a/grub-core/loader/arm64/fdt.c b/grub-core/loader/efi/fdt.c -similarity index 99% -rename from grub-core/loader/arm64/fdt.c -rename to grub-core/loader/efi/fdt.c -index 368001696ee..091e9ddf43d 100644 ---- a/grub-core/loader/arm64/fdt.c -+++ b/grub-core/loader/efi/fdt.c -@@ -18,12 +18,12 @@ - - #include - #include --#include - #include - #include - #include - #include - #include -+#include - - static void *loaded_fdt; - static void *fdt; -diff --git a/include/grub/arm64/fdtload.h b/include/grub/efi/fdtload.h -similarity index 100% -rename from include/grub/arm64/fdtload.h -rename to include/grub/efi/fdtload.h diff --git a/0122-Load-arm-with-SB-enabled.patch b/0059-Load-arm-with-SB-enabled.patch similarity index 99% rename from 0122-Load-arm-with-SB-enabled.patch rename to 0059-Load-arm-with-SB-enabled.patch index 0c94cbcf..103c369d 100644 --- a/0122-Load-arm-with-SB-enabled.patch +++ b/0059-Load-arm-with-SB-enabled.patch @@ -1,4 +1,4 @@ -From edfc2b0952b1eacf95188e53167cc038e5ea0129 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 18 Sep 2014 11:26:14 -0400 Subject: [PATCH] Load arm with SB enabled. diff --git a/0059-efi-Add-GRUB_PE32_MAGIC-definition.patch b/0059-efi-Add-GRUB_PE32_MAGIC-definition.patch deleted file mode 100644 index 4cab655f..00000000 --- a/0059-efi-Add-GRUB_PE32_MAGIC-definition.patch +++ /dev/null @@ -1,56 +0,0 @@ -From c5841ba7f0d14c193f20854e7e55b4f7ce9207d5 Mon Sep 17 00:00:00 2001 -From: Leif Lindholm -Date: Thu, 3 Aug 2017 11:04:25 +0100 -Subject: [PATCH] efi: Add GRUB_PE32_MAGIC definition - -Add a generic GRUB_PE32_MAGIC definition for the PE 'MZ' tag and delete -the existing one in arm64/linux.h. - -Update arm64 Linux loader to use this new definition. - -Signed-off-by: Leif Lindholm ---- - grub-core/loader/arm64/linux.c | 2 +- - include/grub/arm64/linux.h | 2 -- - include/grub/efi/pe32.h | 2 ++ - 3 files changed, 3 insertions(+), 3 deletions(-) - -diff --git a/grub-core/loader/arm64/linux.c b/grub-core/loader/arm64/linux.c -index 3e2f9b74296..a652ee9088e 100644 ---- a/grub-core/loader/arm64/linux.c -+++ b/grub-core/loader/arm64/linux.c -@@ -52,7 +52,7 @@ grub_arm64_uefi_check_image (struct grub_arm64_linux_kernel_header * lh) - if (lh->magic != GRUB_ARM64_LINUX_MAGIC) - return grub_error(GRUB_ERR_BAD_OS, "invalid magic number"); - -- if ((lh->code0 & 0xffff) != GRUB_EFI_PE_MAGIC) -+ if ((lh->code0 & 0xffff) != GRUB_PE32_MAGIC) - return grub_error (GRUB_ERR_NOT_IMPLEMENTED_YET, - N_("plain image kernel not supported - rebuild with CONFIG_(U)EFI_STUB enabled")); - -diff --git a/include/grub/arm64/linux.h b/include/grub/arm64/linux.h -index 1ea23696e7a..a981df5d15f 100644 ---- a/include/grub/arm64/linux.h -+++ b/include/grub/arm64/linux.h -@@ -23,8 +23,6 @@ - - #define GRUB_ARM64_LINUX_MAGIC 0x644d5241 /* 'ARM\x64' */ - --#define GRUB_EFI_PE_MAGIC 0x5A4D -- - /* From linux/Documentation/arm64/booting.txt */ - struct grub_arm64_linux_kernel_header - { -diff --git a/include/grub/efi/pe32.h b/include/grub/efi/pe32.h -index f79c36c026e..7d44732d2c3 100644 ---- a/include/grub/efi/pe32.h -+++ b/include/grub/efi/pe32.h -@@ -45,6 +45,8 @@ - - #define GRUB_PE32_MSDOS_STUB_SIZE 0x80 - -+#define GRUB_PE32_MAGIC 0x5a4d -+ - /* According to the spec, the minimal alignment is 512 bytes... - But some examples (such as EFI drivers in the Intel - Sample Implementation) use 32 bytes (0x20) instead, and it seems diff --git a/0123-Try-prefix-if-fw_path-doesn-t-work.patch b/0060-Try-prefix-if-fw_path-doesn-t-work.patch similarity index 98% rename from 0123-Try-prefix-if-fw_path-doesn-t-work.patch rename to 0060-Try-prefix-if-fw_path-doesn-t-work.patch index 1a00158d..33e31d02 100644 --- a/0123-Try-prefix-if-fw_path-doesn-t-work.patch +++ b/0060-Try-prefix-if-fw_path-doesn-t-work.patch @@ -1,4 +1,4 @@ -From 3846b040f1050f246e1e975ee88f22c687ae04bf Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 3 Oct 2014 11:08:03 -0400 Subject: [PATCH] Try $prefix if $fw_path doesn't work. diff --git a/0060-arm64-linux-loader-improve-type-portability.patch b/0060-arm64-linux-loader-improve-type-portability.patch deleted file mode 100644 index 1edcf7ee..00000000 --- a/0060-arm64-linux-loader-improve-type-portability.patch +++ /dev/null @@ -1,112 +0,0 @@ -From 91212e0aa07e704a61e4540c18a27f149f5e51c3 Mon Sep 17 00:00:00 2001 -From: Leif Lindholm -Date: Thu, 3 Aug 2017 11:04:26 +0100 -Subject: [PATCH] arm64 linux loader: improve type portability - -In preparation for turning this into a common loader for 32-bit and 64-bit -platforms, ensure the code will compile cleanly for either. - -Signed-off-by: Leif Lindholm ---- - grub-core/loader/arm64/linux.c | 15 ++++++--------- - grub-core/loader/efi/fdt.c | 8 ++++---- - 2 files changed, 10 insertions(+), 13 deletions(-) - -diff --git a/grub-core/loader/arm64/linux.c b/grub-core/loader/arm64/linux.c -index a652ee9088e..746edd10415 100644 ---- a/grub-core/loader/arm64/linux.c -+++ b/grub-core/loader/arm64/linux.c -@@ -57,8 +57,6 @@ grub_arm64_uefi_check_image (struct grub_arm64_linux_kernel_header * lh) - N_("plain image kernel not supported - rebuild with CONFIG_(U)EFI_STUB enabled")); - - grub_dprintf ("linux", "UEFI stub kernel:\n"); -- grub_dprintf ("linux", "text_offset = 0x%012llx\n", -- (long long unsigned) lh->text_offset); - grub_dprintf ("linux", "PE/COFF header @ %08x\n", lh->hdr_offset); - - return GRUB_ERR_NONE; -@@ -86,8 +84,8 @@ finalize_params_linux (void) - /* Set initrd info */ - if (initrd_start && initrd_end > initrd_start) - { -- grub_dprintf ("linux", "Initrd @ 0x%012lx-0x%012lx\n", -- initrd_start, initrd_end); -+ grub_dprintf ("linux", "Initrd @ %p-%p\n", -+ (void *) initrd_start, (void *) initrd_end); - - retval = grub_fdt_set_prop64 (fdt, node, "linux,initrd-start", - initrd_start); -@@ -161,7 +159,7 @@ grub_arm64_uefi_boot_image (grub_addr_t addr, grub_size_t size, char *args) - - /* When successful, not reached */ - b->unload_image (image_handle); -- grub_efi_free_pages ((grub_efi_physical_address_t) loaded_image->load_options, -+ grub_efi_free_pages ((grub_addr_t) loaded_image->load_options, - GRUB_EFI_BYTES_TO_PAGES (loaded_image->load_options_size)); - - return grub_errno; -@@ -188,7 +186,7 @@ grub_linux_unload (void) - initrd_start = initrd_end = 0; - grub_free (linux_args); - if (kernel_addr) -- grub_efi_free_pages ((grub_efi_physical_address_t) kernel_addr, -+ grub_efi_free_pages ((grub_addr_t) kernel_addr, - GRUB_EFI_BYTES_TO_PAGES (kernel_size)); - grub_fdt_unload (); - return GRUB_ERR_NONE; -@@ -240,8 +238,7 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), - fail: - grub_initrd_close (&initrd_ctx); - if (initrd_mem && !initrd_start) -- grub_efi_free_pages ((grub_efi_physical_address_t) initrd_mem, -- initrd_pages); -+ grub_efi_free_pages ((grub_addr_t) initrd_mem, initrd_pages); - - return grub_errno; - } -@@ -328,7 +325,7 @@ fail: - grub_free (linux_args); - - if (kernel_addr && !loaded) -- grub_efi_free_pages ((grub_efi_physical_address_t) kernel_addr, -+ grub_efi_free_pages ((grub_addr_t) kernel_addr, - GRUB_EFI_BYTES_TO_PAGES (kernel_size)); - - return grub_errno; -diff --git a/grub-core/loader/efi/fdt.c b/grub-core/loader/efi/fdt.c -index 091e9ddf43d..17212c38d0b 100644 ---- a/grub-core/loader/efi/fdt.c -+++ b/grub-core/loader/efi/fdt.c -@@ -32,12 +32,12 @@ void * - grub_fdt_load (grub_size_t additional_size) - { - void *raw_fdt; -- grub_size_t size; -+ unsigned int size; - - if (fdt) - { - size = GRUB_EFI_BYTES_TO_PAGES (grub_fdt_get_totalsize (fdt)); -- grub_efi_free_pages ((grub_efi_physical_address_t) fdt, size); -+ grub_efi_free_pages ((grub_addr_t) fdt, size); - } - - if (loaded_fdt) -@@ -49,7 +49,7 @@ grub_fdt_load (grub_size_t additional_size) - raw_fdt ? grub_fdt_get_totalsize (raw_fdt) : GRUB_FDT_EMPTY_TREE_SZ; - size += additional_size; - -- grub_dprintf ("linux", "allocating %ld bytes for fdt\n", size); -+ grub_dprintf ("linux", "allocating %d bytes for fdt\n", size); - fdt = grub_efi_allocate_any_pages (GRUB_EFI_BYTES_TO_PAGES (size)); - if (!fdt) - return NULL; -@@ -88,7 +88,7 @@ grub_fdt_unload (void) { - if (!fdt) { - return; - } -- grub_efi_free_pages ((grub_efi_physical_address_t) fdt, -+ grub_efi_free_pages ((grub_addr_t) fdt, - GRUB_EFI_BYTES_TO_PAGES (grub_fdt_get_totalsize (fdt))); - fdt = NULL; - } diff --git a/0124-Update-info-with-grub.cfg-netboot-selection-order-11.patch b/0061-Update-info-with-grub.cfg-netboot-selection-order-11.patch similarity index 97% rename from 0124-Update-info-with-grub.cfg-netboot-selection-order-11.patch rename to 0061-Update-info-with-grub.cfg-netboot-selection-order-11.patch index 2a76dcc8..ecf03299 100644 --- a/0124-Update-info-with-grub.cfg-netboot-selection-order-11.patch +++ b/0061-Update-info-with-grub.cfg-netboot-selection-order-11.patch @@ -1,4 +1,4 @@ -From d4b4184078610a3639fa1e0e463679c424496c3b Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Mon, 16 Mar 2015 16:34:51 -0400 Subject: [PATCH] Update info with grub.cfg netboot selection order (#1148650) diff --git a/0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch b/0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch deleted file mode 100644 index d068450e..00000000 --- a/0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch +++ /dev/null @@ -1,32 +0,0 @@ -From f826330683675f0deb55b58fd229afd7d65fb053 Mon Sep 17 00:00:00 2001 -From: Leif Lindholm -Date: Thu, 3 Aug 2017 11:04:32 +0100 -Subject: [PATCH] efi: change heap allocation type to GRUB_EFI_LOADER_CODE - -With upcoming changes to EDK2, allocations of type EFI_LOADER_DATA may -not return regions with execute ability. Since modules are loaded onto -the heap, change the heap allocation type to GRUB_EFI_LOADER_CODE in -order to permit execution on systems with this feature enabled. - -Closes: 50420 - -Signed-off-by: Leif Lindholm ---- - grub-core/kern/efi/mm.c | 4 +++- - 1 file changed, 3 insertions(+), 1 deletion(-) - -diff --git a/grub-core/kern/efi/mm.c b/grub-core/kern/efi/mm.c -index b97b05fe825..ac2a4c556b8 100644 ---- a/grub-core/kern/efi/mm.c -+++ b/grub-core/kern/efi/mm.c -@@ -403,7 +403,9 @@ add_memory_regions (grub_efi_memory_descriptor_t *memory_map, - pages = required_pages; - } - -- addr = grub_efi_allocate_fixed (start, pages); -+ addr = grub_efi_allocate_pages_real (start, pages, -+ GRUB_EFI_ALLOCATE_ADDRESS, -+ GRUB_EFI_LOADER_CODE); - if (! addr) - grub_fatal ("cannot allocate conventional memory %p with %u pages", - (void *) ((grub_addr_t) start), diff --git a/0125-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch b/0062-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch similarity index 99% rename from 0125-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch rename to 0062-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch index 327b9b73..a411fa2b 100644 --- a/0125-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch +++ b/0062-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch @@ -1,4 +1,4 @@ -From ce125cafc1e94bf70f2a3dbb545960bd8dd23a2f Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Mon, 16 Mar 2015 14:14:19 -0400 Subject: [PATCH] Use Distribution Package Sort for grub2-mkconfig (#1124074) diff --git a/0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch b/0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch deleted file mode 100644 index f05c3e65..00000000 --- a/0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch +++ /dev/null @@ -1,262 +0,0 @@ -From bdd89d239cd9b4089630bfb5ec862aab8086dca2 Mon Sep 17 00:00:00 2001 -From: Pete Batard -Date: Mon, 7 Aug 2017 16:20:30 +0100 -Subject: [PATCH] core: use GRUB_TERM_ definitions when handling term - characters - -* Also use hex value for GRUB_TERM_ESC as '\e' is not in the C standard and is not understood by some compilers ---- - grub-core/commands/keylayouts.c | 6 +++--- - grub-core/commands/menuentry.c | 4 ++-- - grub-core/lib/crypto.c | 4 ++-- - grub-core/normal/auth.c | 6 +++--- - grub-core/normal/cmdline.c | 4 ++-- - grub-core/normal/menu.c | 2 +- - grub-core/normal/menu_entry.c | 2 +- - grub-core/term/efi/console.c | 2 +- - grub-core/term/i386/pc/console.c | 2 +- - grub-core/term/terminfo.c | 10 +++++----- - grub-core/tests/cmdline_cat_test.c | 2 +- - grub-core/tests/gfxterm_menu.c | 2 +- - include/grub/term.h | 3 ++- - 13 files changed, 25 insertions(+), 24 deletions(-) - -diff --git a/grub-core/commands/keylayouts.c b/grub-core/commands/keylayouts.c -index f4b7730208a..f35d3a369ba 100644 ---- a/grub-core/commands/keylayouts.c -+++ b/grub-core/commands/keylayouts.c -@@ -40,7 +40,7 @@ static struct grub_keyboard_layout layout_us = { - /* 0x10 */ 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', - /* 0x18 */ 'u', 'v', 'w', 'x', 'y', 'z', '1', '2', - /* 0x20 */ '3', '4', '5', '6', '7', '8', '9', '0', -- /* 0x28 */ '\n', '\e', '\b', '\t', ' ', '-', '=', '[', -+ /* 0x28 */ '\n', GRUB_TERM_ESC, GRUB_TERM_BACKSPACE, GRUB_TERM_TAB, ' ', '-', '=', '[', - /* According to usage table 0x31 should be mapped to '/' - but testing with real keyboard shows that 0x32 is remapped to '/'. - Map 0x31 to 0. -@@ -82,8 +82,8 @@ static struct grub_keyboard_layout layout_us = { - /* 0x10 */ 'M', 'N', 'O', 'P', 'Q', 'R', 'S', 'T', - /* 0x18 */ 'U', 'V', 'W', 'X', 'Y', 'Z', '!', '@', - /* 0x20 */ '#', '$', '%', '^', '&', '*', '(', ')', -- /* 0x28 */ '\n' | GRUB_TERM_SHIFT, '\e' | GRUB_TERM_SHIFT, -- /* 0x2a */ '\b' | GRUB_TERM_SHIFT, '\t' | GRUB_TERM_SHIFT, -+ /* 0x28 */ '\n' | GRUB_TERM_SHIFT, GRUB_TERM_ESC | GRUB_TERM_SHIFT, -+ /* 0x2a */ GRUB_TERM_BACKSPACE | GRUB_TERM_SHIFT, GRUB_TERM_TAB | GRUB_TERM_SHIFT, - /* 0x2c */ ' ' | GRUB_TERM_SHIFT, '_', '+', '{', - /* According to usage table 0x31 should be mapped to '/' - but testing with real keyboard shows that 0x32 is remapped to '/'. -diff --git a/grub-core/commands/menuentry.c b/grub-core/commands/menuentry.c -index 58d4dadf6ee..2c5363da7f5 100644 ---- a/grub-core/commands/menuentry.c -+++ b/grub-core/commands/menuentry.c -@@ -52,8 +52,8 @@ static struct - int key; - } hotkey_aliases[] = - { -- {"backspace", '\b'}, -- {"tab", '\t'}, -+ {"backspace", GRUB_TERM_BACKSPACE}, -+ {"tab", GRUB_TERM_TAB}, - {"delete", GRUB_TERM_KEY_DC}, - {"insert", GRUB_TERM_KEY_INSERT}, - {"f1", GRUB_TERM_KEY_F1}, -diff --git a/grub-core/lib/crypto.c b/grub-core/lib/crypto.c -index 683a8aaa711..ca334d5a40e 100644 ---- a/grub-core/lib/crypto.c -+++ b/grub-core/lib/crypto.c -@@ -462,7 +462,7 @@ grub_password_get (char buf[], unsigned buf_size) - if (key == '\n' || key == '\r') - break; - -- if (key == '\e') -+ if (key == GRUB_TERM_ESC) - { - cur_len = 0; - break; -@@ -487,7 +487,7 @@ grub_password_get (char buf[], unsigned buf_size) - grub_xputs ("\n"); - grub_refresh (); - -- return (key != '\e'); -+ return (key != GRUB_TERM_ESC); - } - #endif - -diff --git a/grub-core/normal/auth.c b/grub-core/normal/auth.c -index 7338f8245e3..6be678c0de1 100644 ---- a/grub-core/normal/auth.c -+++ b/grub-core/normal/auth.c -@@ -166,13 +166,13 @@ grub_username_get (char buf[], unsigned buf_size) - if (key == '\n' || key == '\r') - break; - -- if (key == '\e') -+ if (key == GRUB_TERM_ESC) - { - cur_len = 0; - break; - } - -- if (key == '\b') -+ if (key == GRUB_TERM_BACKSPACE) - { - if (cur_len) - { -@@ -197,7 +197,7 @@ grub_username_get (char buf[], unsigned buf_size) - grub_xputs ("\n"); - grub_refresh (); - -- return (key != '\e'); -+ return (key != GRUB_TERM_ESC); - } - - grub_err_t -diff --git a/grub-core/normal/cmdline.c b/grub-core/normal/cmdline.c -index a36180d7530..c037d5050ed 100644 ---- a/grub-core/normal/cmdline.c -+++ b/grub-core/normal/cmdline.c -@@ -626,12 +626,12 @@ grub_cmdline_get (const char *prompt_translated) - cl_insert (cl_terms, nterms, &lpos, &llen, &max_len, &buf, kill_buf); - break; - -- case '\e': -+ case GRUB_TERM_ESC: - grub_free (cl_terms); - grub_free (buf); - return 0; - -- case '\b': -+ case GRUB_TERM_BACKSPACE: - if (lpos > 0) - { - lpos--; -diff --git a/grub-core/normal/menu.c b/grub-core/normal/menu.c -index 719e2fb1c26..e7a83c2d6e2 100644 ---- a/grub-core/normal/menu.c -+++ b/grub-core/normal/menu.c -@@ -763,7 +763,7 @@ run_menu (grub_menu_t menu, int nested, int *auto_boot) - *auto_boot = 0; - return current_entry; - -- case '\e': -+ case GRUB_TERM_ESC: - if (nested) - { - menu_fini (); -diff --git a/grub-core/normal/menu_entry.c b/grub-core/normal/menu_entry.c -index eeeee5580ab..cdf3590a364 100644 ---- a/grub-core/normal/menu_entry.c -+++ b/grub-core/normal/menu_entry.c -@@ -1403,7 +1403,7 @@ grub_menu_entry_run (grub_menu_entry_t entry) - goto fail; - break; - -- case '\e': -+ case GRUB_TERM_ESC: - destroy_screen (screen); - return; - -diff --git a/grub-core/term/efi/console.c b/grub-core/term/efi/console.c -index 7d31095b1ef..02f64ea7441 100644 ---- a/grub-core/term/efi/console.c -+++ b/grub-core/term/efi/console.c -@@ -104,7 +104,7 @@ const unsigned efi_codes[] = - GRUB_TERM_KEY_DC, GRUB_TERM_KEY_PPAGE, GRUB_TERM_KEY_NPAGE, GRUB_TERM_KEY_F1, - GRUB_TERM_KEY_F2, GRUB_TERM_KEY_F3, GRUB_TERM_KEY_F4, GRUB_TERM_KEY_F5, - GRUB_TERM_KEY_F6, GRUB_TERM_KEY_F7, GRUB_TERM_KEY_F8, GRUB_TERM_KEY_F9, -- GRUB_TERM_KEY_F10, GRUB_TERM_KEY_F11, GRUB_TERM_KEY_F12, '\e' -+ GRUB_TERM_KEY_F10, GRUB_TERM_KEY_F11, GRUB_TERM_KEY_F12, GRUB_TERM_ESC - }; - - static int -diff --git a/grub-core/term/i386/pc/console.c b/grub-core/term/i386/pc/console.c -index 28de46b576a..f6142a2dea8 100644 ---- a/grub-core/term/i386/pc/console.c -+++ b/grub-core/term/i386/pc/console.c -@@ -204,7 +204,7 @@ static int - grub_console_getkey (struct grub_term_input *term __attribute__ ((unused))) - { - const grub_uint16_t bypass_table[] = { -- 0x0100 | '\e', 0x0f00 | '\t', 0x0e00 | '\b', 0x1c00 | '\r', 0x1c00 | '\n' -+ 0x0100 | GRUB_TERM_ESC, 0x0f00 | GRUB_TERM_TAB, 0x0e00 | GRUB_TERM_BACKSPACE, 0x1c00 | '\r', 0x1c00 | '\n' - }; - struct grub_bios_int_registers regs; - unsigned i; -diff --git a/grub-core/term/terminfo.c b/grub-core/term/terminfo.c -index f0d3e3debc6..d317efa368d 100644 ---- a/grub-core/term/terminfo.c -+++ b/grub-core/term/terminfo.c -@@ -426,12 +426,12 @@ grub_terminfo_readkey (struct grub_term_input *term, int *keys, int *len, - } - *len = 1; - keys[0] = c; -- if (c != ANSI_CSI && c != '\e') -+ if (c != ANSI_CSI && c != GRUB_TERM_ESC) - { - /* Backspace: Ctrl-h. */ - if (c == 0x7f) -- c = '\b'; -- if (c < 0x20 && c != '\t' && c!= '\b' && c != '\n' && c != '\r') -+ c = GRUB_TERM_BACKSPACE; -+ if (c < 0x20 && c != GRUB_TERM_TAB && c!= GRUB_TERM_BACKSPACE && c != '\n' && c != '\r') - c = GRUB_TERM_CTRL | (c - 1 + 'a'); - *len = 1; - keys[0] = c; -@@ -487,7 +487,7 @@ grub_terminfo_readkey (struct grub_term_input *term, int *keys, int *len, - GRUB_TERM_KEY_HOME, GRUB_TERM_KEY_END }; - unsigned i; - -- if (c == '\e') -+ if (c == GRUB_TERM_ESC) - { - CONTINUE_READ; - -@@ -606,7 +606,7 @@ grub_terminfo_getkey (struct grub_term_input *termi) - &data->npending, data->readkey); - - #if defined(__powerpc__) && defined(GRUB_MACHINE_IEEE1275) -- if (data->npending == 1 && data->input_buf[0] == '\e' -+ if (data->npending == 1 && data->input_buf[0] == GRUB_TERM_ESC - && grub_ieee1275_test_flag (GRUB_IEEE1275_FLAG_BROKEN_REPEAT) - && grub_get_time_ms () - data->last_key_time < 1000 - && (data->last_key & GRUB_TERM_EXTENDED)) -diff --git a/grub-core/tests/cmdline_cat_test.c b/grub-core/tests/cmdline_cat_test.c -index f1e21439e2b..baea7688a1d 100644 ---- a/grub-core/tests/cmdline_cat_test.c -+++ b/grub-core/tests/cmdline_cat_test.c -@@ -103,7 +103,7 @@ cmdline_cat_test (void) - '/', 't', 'e', 's', 't', '.', - 't', 'x', 't', '\n', - GRUB_TERM_NO_KEY, -- GRUB_TERM_NO_KEY, '\e'}, -+ GRUB_TERM_NO_KEY, GRUB_TERM_ESC}, - 23); - - grub_video_checksum ("cmdline_cat"); -diff --git a/grub-core/tests/gfxterm_menu.c b/grub-core/tests/gfxterm_menu.c -index 8f63dc27a35..12836fb9659 100644 ---- a/grub-core/tests/gfxterm_menu.c -+++ b/grub-core/tests/gfxterm_menu.c -@@ -146,7 +146,7 @@ gfxterm_menu (void) - return; - } - grub_terminal_input_fake_sequence ((int []) { -1, -1, -1, GRUB_TERM_KEY_DOWN, -1, 'e', -- -1, GRUB_TERM_KEY_RIGHT, -1, 'x', -1, '\e', -1, '\e' }, 14); -+ -1, GRUB_TERM_KEY_RIGHT, -1, 'x', -1, GRUB_TERM_ESC, -1, GRUB_TERM_ESC }, 14); - - grub_video_checksum (tests[j].name); - -diff --git a/include/grub/term.h b/include/grub/term.h -index 5ffb38f69aa..8117e2a24da 100644 ---- a/include/grub/term.h -+++ b/include/grub/term.h -@@ -55,7 +55,8 @@ - #define GRUB_TERM_KEY_INSERT (GRUB_TERM_EXTENDED | 0x52) - #define GRUB_TERM_KEY_CENTER (GRUB_TERM_EXTENDED | 0x4c) - --#define GRUB_TERM_ESC '\e' -+/* Hex value is used for ESC, since '\e' is nonstandard */ -+#define GRUB_TERM_ESC 0x1b - #define GRUB_TERM_TAB '\t' - #define GRUB_TERM_BACKSPACE '\b' - diff --git a/0126-Handle-rssd-storage-devices.patch b/0063-Handle-rssd-storage-devices.patch similarity index 93% rename from 0126-Handle-rssd-storage-devices.patch rename to 0063-Handle-rssd-storage-devices.patch index ed4eaad1..8f25692a 100644 --- a/0126-Handle-rssd-storage-devices.patch +++ b/0063-Handle-rssd-storage-devices.patch @@ -1,4 +1,4 @@ -From 1956a2192ac0a8421ee83bf77fdf223f2be0bdfb Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 30 Jun 2015 15:50:41 -0400 Subject: [PATCH] Handle rssd storage devices. diff --git a/0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch b/0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch deleted file mode 100644 index f6450dec..00000000 --- a/0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch +++ /dev/null @@ -1,82 +0,0 @@ -From 1deebd85ef87cc581e995ce0a51dc0802ac9c367 Mon Sep 17 00:00:00 2001 -From: Pete Batard -Date: Mon, 7 Aug 2017 16:23:12 +0100 -Subject: [PATCH] io: add a GRUB_GZ prefix to gzio specific defines - -* This is done to avoid a conflict with a PACKED define in the EDK2 ---- - grub-core/io/gzio.c | 40 ++++++++++++++++++++-------------------- - 1 file changed, 20 insertions(+), 20 deletions(-) - -diff --git a/grub-core/io/gzio.c b/grub-core/io/gzio.c -index 0f2ea6bd845..a8e33033bf8 100644 ---- a/grub-core/io/gzio.c -+++ b/grub-core/io/gzio.c -@@ -140,24 +140,24 @@ eat_field (grub_file_t file, int len) - #define OLD_GZIP_MAGIC grub_le_to_cpu16 (0x9E1F) - - /* Compression methods (see algorithm.doc) */ --#define STORED 0 --#define COMPRESSED 1 --#define PACKED 2 --#define LZHED 3 -+#define GRUB_GZ_STORED 0 -+#define GRUB_GZ_COMPRESSED 1 -+#define GRUB_GZ_PACKED 2 -+#define GRUB_GZ_LZHED 3 - /* methods 4 to 7 reserved */ --#define DEFLATED 8 --#define MAX_METHODS 9 -+#define GRUB_GZ_DEFLATED 8 -+#define GRUB_GZ_MAX_METHODS 9 - - /* gzip flag byte */ --#define ASCII_FLAG 0x01 /* bit 0 set: file probably ascii text */ --#define CONTINUATION 0x02 /* bit 1 set: continuation of multi-part gzip file */ --#define EXTRA_FIELD 0x04 /* bit 2 set: extra field present */ --#define ORIG_NAME 0x08 /* bit 3 set: original file name present */ --#define COMMENT 0x10 /* bit 4 set: file comment present */ --#define ENCRYPTED 0x20 /* bit 5 set: file is encrypted */ --#define RESERVED 0xC0 /* bit 6,7: reserved */ -+#define GRUB_GZ_ASCII_FLAG 0x01 /* bit 0 set: file probably ascii text */ -+#define GRUB_GZ_CONTINUATION 0x02 /* bit 1 set: continuation of multi-part gzip file */ -+#define GRUB_GZ_EXTRA_FIELD 0x04 /* bit 2 set: extra field present */ -+#define GRUB_GZ_ORIG_NAME 0x08 /* bit 3 set: original file name present */ -+#define GRUB_GZ_COMMENT 0x10 /* bit 4 set: file comment present */ -+#define GRUB_GZ_ENCRYPTED 0x20 /* bit 5 set: file is encrypted */ -+#define GRUB_GZ_RESERVED 0xC0 /* bit 6,7: reserved */ - --#define UNSUPPORTED_FLAGS (CONTINUATION | ENCRYPTED | RESERVED) -+#define GRUB_GZ_UNSUPPORTED_FLAGS (GRUB_GZ_CONTINUATION | GRUB_GZ_ENCRYPTED | GRUB_GZ_RESERVED) - - /* inflate block codes */ - #define INFLATE_STORED 0 -@@ -201,14 +201,14 @@ test_gzip_header (grub_file_t file) - * problem occurs from here on, then we have corrupt or otherwise - * bad data, and the error should be reported to the user. - */ -- if (hdr.method != DEFLATED -- || (hdr.flags & UNSUPPORTED_FLAGS) -- || ((hdr.flags & EXTRA_FIELD) -+ if (hdr.method != GRUB_GZ_DEFLATED -+ || (hdr.flags & GRUB_GZ_UNSUPPORTED_FLAGS) -+ || ((hdr.flags & GRUB_GZ_EXTRA_FIELD) - && (grub_file_read (gzio->file, &extra_len, 2) != 2 - || eat_field (gzio->file, - grub_le_to_cpu16 (extra_len)))) -- || ((hdr.flags & ORIG_NAME) && eat_field (gzio->file, -1)) -- || ((hdr.flags & COMMENT) && eat_field (gzio->file, -1))) -+ || ((hdr.flags & GRUB_GZ_ORIG_NAME) && eat_field (gzio->file, -1)) -+ || ((hdr.flags & GRUB_GZ_COMMENT) && eat_field (gzio->file, -1))) - return 0; - - gzio->data_offset = grub_file_tell (gzio->file); -@@ -1183,7 +1183,7 @@ test_zlib_header (grub_gzio_t gzio) - flg = get_byte (gzio); - - /* Check that compression method is DEFLATE. */ -- if ((cmf & 0xf) != DEFLATED) -+ if ((cmf & 0xf) != GRUB_GZ_DEFLATED) - { - /* TRANSLATORS: It's about given file having some strange format, not - complete lack of gzip support. */ diff --git a/0127-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch b/0064-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch similarity index 97% rename from 0127-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch rename to 0064-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch index 57a49f68..6faf353c 100644 --- a/0127-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch +++ b/0064-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch @@ -1,4 +1,4 @@ -From 5f89c77c7cff17c931f1ea52af0c39df8ab28ac9 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 27 Oct 2014 09:22:55 -0400 Subject: [PATCH] Try to emit linux16/initrd16 and linuxefi/initrdefi in diff --git a/0128-Make-grub2-mkconfig-construct-titles-that-look-like-.patch b/0065-Make-grub2-mkconfig-construct-titles-that-look-like-.patch similarity index 97% rename from 0128-Make-grub2-mkconfig-construct-titles-that-look-like-.patch rename to 0065-Make-grub2-mkconfig-construct-titles-that-look-like-.patch index 7c340e05..3eb0b4db 100644 --- a/0128-Make-grub2-mkconfig-construct-titles-that-look-like-.patch +++ b/0065-Make-grub2-mkconfig-construct-titles-that-look-like-.patch @@ -1,4 +1,4 @@ -From c7ae420d095ccec20481c25b14773ab2fce658b5 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 28 Apr 2015 11:15:03 -0400 Subject: [PATCH] Make grub2-mkconfig construct titles that look like the ones diff --git a/0129-Add-friendly-grub2-password-config-tool-985962.patch b/0066-Add-friendly-grub2-password-config-tool-985962.patch similarity index 99% rename from 0129-Add-friendly-grub2-password-config-tool-985962.patch rename to 0066-Add-friendly-grub2-password-config-tool-985962.patch index fa1b9bbb..e898a95a 100644 --- a/0129-Add-friendly-grub2-password-config-tool-985962.patch +++ b/0066-Add-friendly-grub2-password-config-tool-985962.patch @@ -1,4 +1,4 @@ -From 68f21f5ebebc23a6d8512631f2a1d474afcccd43 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Thu, 25 Jun 2015 11:13:11 -0400 Subject: [PATCH] Add friendly grub2 password config tool (#985962) diff --git a/0130-Make-grub2-mkconfig-construct-titles-that-look-like-.patch b/0067-Make-grub2-mkconfig-construct-titles-that-look-like-.patch similarity index 96% rename from 0130-Make-grub2-mkconfig-construct-titles-that-look-like-.patch rename to 0067-Make-grub2-mkconfig-construct-titles-that-look-like-.patch index cef35f25..6f4e3eb7 100644 --- a/0130-Make-grub2-mkconfig-construct-titles-that-look-like-.patch +++ b/0067-Make-grub2-mkconfig-construct-titles-that-look-like-.patch @@ -1,4 +1,4 @@ -From 7a7644507e4d953ea8f8d1d7133622a72a2168f5 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 28 Apr 2015 11:15:03 -0400 Subject: [PATCH] Make grub2-mkconfig construct titles that look like the ones diff --git a/0131-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch b/0068-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch similarity index 96% rename from 0131-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch rename to 0068-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch index a508fe59..20b09d97 100644 --- a/0131-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch +++ b/0068-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch @@ -1,4 +1,4 @@ -From 6f892038567f1706fdde819f5f226ec4cacbea47 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 3 Aug 2015 11:46:42 -0400 Subject: [PATCH] Try to make sure configure.ac and grub-rpm-sort play nice. diff --git a/0132-tcp-add-window-scaling-support.patch b/0069-tcp-add-window-scaling-support.patch similarity index 97% rename from 0132-tcp-add-window-scaling-support.patch rename to 0069-tcp-add-window-scaling-support.patch index f451a67f..7d1996c8 100644 --- a/0132-tcp-add-window-scaling-support.patch +++ b/0069-tcp-add-window-scaling-support.patch @@ -1,4 +1,4 @@ -From 71e31c279c07f9f51f2a482b70b40b7deed69a69 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Josef Bacik Date: Wed, 12 Aug 2015 08:57:55 -0700 Subject: [PATCH] tcp: add window scaling support diff --git a/0133-efinet-retransmit-if-our-device-is-busy.patch b/0070-efinet-retransmit-if-our-device-is-busy.patch similarity index 96% rename from 0133-efinet-retransmit-if-our-device-is-busy.patch rename to 0070-efinet-retransmit-if-our-device-is-busy.patch index da3b336a..5bbc00ba 100644 --- a/0133-efinet-retransmit-if-our-device-is-busy.patch +++ b/0070-efinet-retransmit-if-our-device-is-busy.patch @@ -1,4 +1,4 @@ -From d09f32622f6fc247dd88f731c34be10395785d8d Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Josef Bacik Date: Mon, 31 Aug 2015 13:34:35 -0400 Subject: [PATCH] efinet: retransmit if our device is busy diff --git a/0134-Be-more-aggro-about-actually-using-the-configured-ne.patch b/0071-Be-more-aggro-about-actually-using-the-configured-ne.patch similarity index 99% rename from 0134-Be-more-aggro-about-actually-using-the-configured-ne.patch rename to 0071-Be-more-aggro-about-actually-using-the-configured-ne.patch index 66f68b70..79e23480 100644 --- a/0134-Be-more-aggro-about-actually-using-the-configured-ne.patch +++ b/0071-Be-more-aggro-about-actually-using-the-configured-ne.patch @@ -1,4 +1,4 @@ -From 8ece44c2c8f88f531ac9a679f65a263e7b6d2dba Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 11 Sep 2015 17:30:49 -0400 Subject: [PATCH] Be more aggro about actually using the *configured* network diff --git a/0135-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch b/0072-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch similarity index 97% rename from 0135-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch rename to 0072-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch index 6984412d..f337c744 100644 --- a/0135-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch +++ b/0072-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch @@ -1,4 +1,4 @@ -From 82b9fdcbbc339c36842c625203fc2b1f22a86c9e Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: RHEL Ninjas Date: Fri, 25 Sep 2015 16:24:23 +0900 Subject: [PATCH] efinet: add filter for the first exclusive reopen of SNP diff --git a/0136-Fix-security-issue-when-reading-username-and-passwor.patch b/0073-Fix-security-issue-when-reading-username-and-passwor.patch similarity index 95% rename from 0136-Fix-security-issue-when-reading-username-and-passwor.patch rename to 0073-Fix-security-issue-when-reading-username-and-passwor.patch index f66528e5..11bc4340 100644 --- a/0136-Fix-security-issue-when-reading-username-and-passwor.patch +++ b/0073-Fix-security-issue-when-reading-username-and-passwor.patch @@ -1,4 +1,4 @@ -From 9961e63642244617b697d93bbc49379e23b6839d Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Hector Marco-Gisbert Date: Fri, 13 Nov 2015 16:21:09 +0100 Subject: [PATCH] Fix security issue when reading username and password diff --git a/0137-Warn-if-grub-password-will-not-be-read-1290803.patch b/0074-Warn-if-grub-password-will-not-be-read-1290803.patch similarity index 94% rename from 0137-Warn-if-grub-password-will-not-be-read-1290803.patch rename to 0074-Warn-if-grub-password-will-not-be-read-1290803.patch index 6c0a3f12..de4a6aea 100644 --- a/0137-Warn-if-grub-password-will-not-be-read-1290803.patch +++ b/0074-Warn-if-grub-password-will-not-be-read-1290803.patch @@ -1,4 +1,4 @@ -From 056a956aea898f9d3ee34ecad9660addc3f3108c Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Mon, 22 Feb 2016 15:30:05 -0500 Subject: [PATCH] Warn if grub password will not be read (#1290803) diff --git a/0138-Clean-up-grub-setpassword-documentation-1290799.patch b/0075-Clean-up-grub-setpassword-documentation-1290799.patch similarity index 96% rename from 0138-Clean-up-grub-setpassword-documentation-1290799.patch rename to 0075-Clean-up-grub-setpassword-documentation-1290799.patch index 7d2b8504..a405e886 100644 --- a/0138-Clean-up-grub-setpassword-documentation-1290799.patch +++ b/0075-Clean-up-grub-setpassword-documentation-1290799.patch @@ -1,4 +1,4 @@ -From 92af2b24adb7371d8234c0b32ae716adf0b80d42 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Tue, 26 Jan 2016 10:28:35 -0500 Subject: [PATCH] Clean up grub-setpassword documentation (#1290799) diff --git a/0139-Fix-locale-issue-in-grub-setpassword-1294243.patch b/0076-Fix-locale-issue-in-grub-setpassword-1294243.patch similarity index 93% rename from 0139-Fix-locale-issue-in-grub-setpassword-1294243.patch rename to 0076-Fix-locale-issue-in-grub-setpassword-1294243.patch index 1630d5c7..9b315cc5 100644 --- a/0139-Fix-locale-issue-in-grub-setpassword-1294243.patch +++ b/0076-Fix-locale-issue-in-grub-setpassword-1294243.patch @@ -1,4 +1,4 @@ -From 373adc50cf9f09015e40ffd1bf79ab9f291f4fc2 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Robert Marshall Date: Fri, 29 Jan 2016 16:56:11 -0500 Subject: [PATCH] Fix locale issue in grub-setpassword (#1294243) diff --git a/0140-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch b/0077-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch similarity index 93% rename from 0140-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch rename to 0077-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch index 46b5cc24..0891f8f9 100644 --- a/0140-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch +++ b/0077-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch @@ -1,4 +1,4 @@ -From eab0520310030376f6295e0338e874bce10b0d5f Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Robert Elliott Date: Fri, 22 Jan 2016 13:32:30 +0100 Subject: [PATCH] efiemu: Handle persistent RAM and unknown possible future diff --git a/0141-efiemu-Fix-compilation-failure.patch b/0078-efiemu-Fix-compilation-failure.patch similarity index 93% rename from 0141-efiemu-Fix-compilation-failure.patch rename to 0078-efiemu-Fix-compilation-failure.patch index 1e084410..0c1c10f8 100644 --- a/0141-efiemu-Fix-compilation-failure.patch +++ b/0078-efiemu-Fix-compilation-failure.patch @@ -1,4 +1,4 @@ -From 68bdf29eb6e376a3b4a817bbe7481efd12b8f9de Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Fri, 22 Jan 2016 14:10:30 +0100 Subject: [PATCH] efiemu: Fix compilation failure diff --git a/0142-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch b/0079-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch similarity index 97% rename from 0142-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch rename to 0079-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch index 600327e2..d6f026ae 100644 --- a/0142-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch +++ b/0079-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch @@ -1,4 +1,4 @@ -From df19c5ff9c9e716df0383e39992466304053c99d Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 7 Apr 2016 10:58:06 -0400 Subject: [PATCH] Revert "reopen SNP protocol for exclusive use by grub" diff --git a/0143-Add-a-url-parser.patch b/0080-Add-a-url-parser.patch similarity index 99% rename from 0143-Add-a-url-parser.patch rename to 0080-Add-a-url-parser.patch index 56cae880..a7388e06 100644 --- a/0143-Add-a-url-parser.patch +++ b/0080-Add-a-url-parser.patch @@ -1,4 +1,4 @@ -From 2f84b2e097ad9f6f7f06013f749251743eb32c2e Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jun 2016 16:18:44 -0400 Subject: [PATCH] Add a url parser. diff --git a/0144-efinet-and-bootp-add-support-for-dhcpv6.patch b/0081-efinet-and-bootp-add-support-for-dhcpv6.patch similarity index 99% rename from 0144-efinet-and-bootp-add-support-for-dhcpv6.patch rename to 0081-efinet-and-bootp-add-support-for-dhcpv6.patch index bc4eda5e..924bfa33 100644 --- a/0144-efinet-and-bootp-add-support-for-dhcpv6.patch +++ b/0081-efinet-and-bootp-add-support-for-dhcpv6.patch @@ -1,4 +1,4 @@ -From 48768b0295ad4d908cefd8e8fbee96a4dc2765f5 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 8 Jun 2016 21:03:37 -0400 Subject: [PATCH] efinet and bootp: add support for dhcpv6 diff --git a/0145-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch b/0082-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch similarity index 99% rename from 0145-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch rename to 0082-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch index e0f479bd..5b9578cf 100644 --- a/0145-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch +++ b/0082-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch @@ -1,4 +1,4 @@ -From 764506b89942103c3a511d7933edef351fb594b8 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 23 Jun 2016 11:01:39 -0400 Subject: [PATCH] Add grub-get-kernel-settings and use it in 10_linux diff --git a/0146-Normalize-slashes-in-tftp-paths.patch b/0083-Normalize-slashes-in-tftp-paths.patch similarity index 96% rename from 0146-Normalize-slashes-in-tftp-paths.patch rename to 0083-Normalize-slashes-in-tftp-paths.patch index 1e3261b4..5ea5afa5 100644 --- a/0146-Normalize-slashes-in-tftp-paths.patch +++ b/0083-Normalize-slashes-in-tftp-paths.patch @@ -1,4 +1,4 @@ -From 406402dfaecc62ede346793c9c7a0568dc71c131 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Lenny Szubowicz Date: Mon, 29 Aug 2016 11:04:48 -0400 Subject: [PATCH] Normalize slashes in tftp paths. diff --git a/0147-Fix-malformed-tftp-packets.patch b/0084-Fix-malformed-tftp-packets.patch similarity index 95% rename from 0147-Fix-malformed-tftp-packets.patch rename to 0084-Fix-malformed-tftp-packets.patch index e676a352..24451377 100644 --- a/0147-Fix-malformed-tftp-packets.patch +++ b/0084-Fix-malformed-tftp-packets.patch @@ -1,4 +1,4 @@ -From 7d05a8298e6a54bfae0038841462443f21da3535 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Mark Salter Date: Tue, 7 Mar 2017 18:26:17 -0500 Subject: [PATCH] Fix malformed tftp packets diff --git a/0148-Fix-race-in-EFI-validation.patch b/0085-Fix-race-in-EFI-validation.patch similarity index 97% rename from 0148-Fix-race-in-EFI-validation.patch rename to 0085-Fix-race-in-EFI-validation.patch index a7f5bdce..ce42a835 100644 --- a/0148-Fix-race-in-EFI-validation.patch +++ b/0085-Fix-race-in-EFI-validation.patch @@ -1,4 +1,4 @@ -From bf59d76ca82eb4eaa20a747f5890d09632ba93d0 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 14 Jul 2015 16:58:51 -0700 Subject: [PATCH] Fix race in EFI validation diff --git a/0149-bz1374141-fix-incorrect-mask-for-ppc64.patch b/0086-bz1374141-fix-incorrect-mask-for-ppc64.patch similarity index 97% rename from 0149-bz1374141-fix-incorrect-mask-for-ppc64.patch rename to 0086-bz1374141-fix-incorrect-mask-for-ppc64.patch index 742d9472..628ff7e9 100644 --- a/0149-bz1374141-fix-incorrect-mask-for-ppc64.patch +++ b/0086-bz1374141-fix-incorrect-mask-for-ppc64.patch @@ -1,4 +1,4 @@ -From 84a5f535949f590a8976c64c3d1fde08fe0f7464 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Masahiro Matsuya Date: Sat, 29 Oct 2016 08:35:26 +0900 Subject: [PATCH] bz1374141 fix incorrect mask for ppc64 diff --git a/0150-Use-device-part-of-chainloader-target-if-present.patch b/0087-Use-device-part-of-chainloader-target-if-present.patch similarity index 94% rename from 0150-Use-device-part-of-chainloader-target-if-present.patch rename to 0087-Use-device-part-of-chainloader-target-if-present.patch index 17cd3a46..28efeb03 100644 --- a/0150-Use-device-part-of-chainloader-target-if-present.patch +++ b/0087-Use-device-part-of-chainloader-target-if-present.patch @@ -1,4 +1,4 @@ -From d426e20f8b41ebf114075dc4ffbcaf438ceb4b95 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Raymund Will Date: Fri, 10 Apr 2015 01:45:02 -0400 Subject: [PATCH] Use device part of chainloader target, if present. diff --git a/0151-Add-secureboot-support-on-efi-chainloader.patch b/0088-Add-secureboot-support-on-efi-chainloader.patch similarity index 99% rename from 0151-Add-secureboot-support-on-efi-chainloader.patch rename to 0088-Add-secureboot-support-on-efi-chainloader.patch index 99d70201..538ff344 100644 --- a/0151-Add-secureboot-support-on-efi-chainloader.patch +++ b/0088-Add-secureboot-support-on-efi-chainloader.patch @@ -1,4 +1,4 @@ -From bbf98517303e438cea398bb74306b6553c880ac3 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 6 Oct 2015 13:04:37 -0400 Subject: [PATCH] Add secureboot support on efi chainloader diff --git a/0152-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch b/0089-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch similarity index 99% rename from 0152-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch rename to 0089-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch index 4cddb8bf..85c4afb9 100644 --- a/0152-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch +++ b/0089-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch @@ -1,4 +1,4 @@ -From 25ea5be888dcc92cd0b3cb7d34b381f5005f1e30 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 6 Oct 2015 16:09:25 -0400 Subject: [PATCH] Make any of the loaders that link in efi mode honor secure diff --git a/0153-Make-grub_fatal-also-backtrace.patch b/0090-Make-grub_fatal-also-backtrace.patch similarity index 98% rename from 0153-Make-grub_fatal-also-backtrace.patch rename to 0090-Make-grub_fatal-also-backtrace.patch index cc29cab6..50697a5f 100644 --- a/0153-Make-grub_fatal-also-backtrace.patch +++ b/0090-Make-grub_fatal-also-backtrace.patch @@ -1,4 +1,4 @@ -From eb1a27144476324a22561383a0a2e61aa327d2f5 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 27 Jan 2016 09:22:42 -0500 Subject: [PATCH] Make grub_fatal() also backtrace. diff --git a/0154-Rework-linux-command.patch b/0091-Rework-linux-command.patch similarity index 98% rename from 0154-Rework-linux-command.patch rename to 0091-Rework-linux-command.patch index 35f5e071..43175ad5 100644 --- a/0154-Rework-linux-command.patch +++ b/0091-Rework-linux-command.patch @@ -1,4 +1,4 @@ -From 12312bfe1727a2992042436cb0f8c8ba1c69ee2f Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 16:12:39 -0700 Subject: [PATCH] Rework linux command diff --git a/0155-Rework-linux16-command.patch b/0092-Rework-linux16-command.patch similarity index 98% rename from 0155-Rework-linux16-command.patch rename to 0092-Rework-linux16-command.patch index 74d3312e..ea4e3cc3 100644 --- a/0155-Rework-linux16-command.patch +++ b/0092-Rework-linux16-command.patch @@ -1,4 +1,4 @@ -From 24250bbb84f8817462426c46b255d875de627bf1 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 16:20:58 -0700 Subject: [PATCH] Rework linux16 command diff --git a/0156-Make-grub-editenv-build-again.patch b/0093-Make-grub-editenv-build-again.patch similarity index 93% rename from 0156-Make-grub-editenv-build-again.patch rename to 0093-Make-grub-editenv-build-again.patch index cdb8322f..2d13dae4 100644 --- a/0156-Make-grub-editenv-build-again.patch +++ b/0093-Make-grub-editenv-build-again.patch @@ -1,4 +1,4 @@ -From ebe69b2682b5b3029d8ea503f12134ee81c4b2ce Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 4 Mar 2016 16:29:13 -0500 Subject: [PATCH] Make grub-editenv build again. diff --git a/0157-Fix-up-some-man-pages-rpmdiff-noticed.patch b/0094-Fix-up-some-man-pages-rpmdiff-noticed.patch similarity index 98% rename from 0157-Fix-up-some-man-pages-rpmdiff-noticed.patch rename to 0094-Fix-up-some-man-pages-rpmdiff-noticed.patch index 5297f3ea..6f804007 100644 --- a/0157-Fix-up-some-man-pages-rpmdiff-noticed.patch +++ b/0094-Fix-up-some-man-pages-rpmdiff-noticed.patch @@ -1,4 +1,4 @@ -From c71e6152ea8e4e525a853441bb5f08808bae3afd Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 23 Sep 2014 09:58:49 -0400 Subject: [PATCH] Fix up some man pages rpmdiff noticed. diff --git a/0158-Re-work-some-intricacies-of-PE-loading.patch b/0095-Re-work-some-intricacies-of-PE-loading.patch similarity index 99% rename from 0158-Re-work-some-intricacies-of-PE-loading.patch rename to 0095-Re-work-some-intricacies-of-PE-loading.patch index 96d8b35b..dc4cdd77 100644 --- a/0158-Re-work-some-intricacies-of-PE-loading.patch +++ b/0095-Re-work-some-intricacies-of-PE-loading.patch @@ -1,4 +1,4 @@ -From 145214ee7c411c7d600016f011dc11b213bce0b2 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 9 Jun 2016 12:22:29 -0400 Subject: [PATCH] Re-work some intricacies of PE loading. diff --git a/0159-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch b/0096-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch similarity index 99% rename from 0159-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch rename to 0096-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch index b88d484f..12d6bb20 100644 --- a/0159-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch +++ b/0096-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch @@ -1,4 +1,4 @@ -From ef24bc601e11b96eefe06f477b5da1199d761b3d Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 10 Jun 2016 14:06:15 -0400 Subject: [PATCH] Rework even more of efi chainload so non-sb cases work right. diff --git a/0160-linuxefi-fix-double-free-on-verification-failure.patch b/0097-linuxefi-fix-double-free-on-verification-failure.patch similarity index 91% rename from 0160-linuxefi-fix-double-free-on-verification-failure.patch rename to 0097-linuxefi-fix-double-free-on-verification-failure.patch index f81ac00c..7d1b3c8f 100644 --- a/0160-linuxefi-fix-double-free-on-verification-failure.patch +++ b/0097-linuxefi-fix-double-free-on-verification-failure.patch @@ -1,4 +1,4 @@ -From 5ef3f00e6be3033092453a66f456b8dac8cd4f7c Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Jun 2016 09:50:25 -0400 Subject: [PATCH] linuxefi: fix double free on verification failure. diff --git a/0161-fix-machine-type-test-in-30_os-prober.in.patch b/0098-fix-machine-type-test-in-30_os-prober.in.patch similarity index 90% rename from 0161-fix-machine-type-test-in-30_os-prober.in.patch rename to 0098-fix-machine-type-test-in-30_os-prober.in.patch index 7bd4d4ec..11d6f4b9 100644 --- a/0161-fix-machine-type-test-in-30_os-prober.in.patch +++ b/0098-fix-machine-type-test-in-30_os-prober.in.patch @@ -1,4 +1,4 @@ -From 4139fdfdb64fd248a0d5f200b27c583159dbb190 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 11 Jul 2016 13:36:45 -0400 Subject: [PATCH] fix machine type test in 30_os-prober.in diff --git a/0162-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch b/0099-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch similarity index 95% rename from 0162-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch rename to 0099-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch index 8d213aaf..27e078c5 100644 --- a/0162-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch +++ b/0099-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch @@ -1,4 +1,4 @@ -From 671699a76fa6510a62c3a94acd698a31686cb8fa Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Laszlo Ersek Date: Mon, 21 Nov 2016 15:34:00 +0100 Subject: [PATCH] efi/chainloader: fix wrong sanity check in relocate_coff() diff --git a/0163-efi-chainloader-truncate-overlong-relocation-section.patch b/0100-efi-chainloader-truncate-overlong-relocation-section.patch similarity index 98% rename from 0163-efi-chainloader-truncate-overlong-relocation-section.patch rename to 0100-efi-chainloader-truncate-overlong-relocation-section.patch index 8daedc6d..6931f91b 100644 --- a/0163-efi-chainloader-truncate-overlong-relocation-section.patch +++ b/0100-efi-chainloader-truncate-overlong-relocation-section.patch @@ -1,4 +1,4 @@ -From d081bd5f47235e3bfd256fd262a6f98fe8b0d0ff Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Laszlo Ersek Date: Wed, 23 Nov 2016 06:27:09 +0100 Subject: [PATCH] efi/chainloader: truncate overlong relocation section diff --git a/0164-linuxefi-minor-cleanups.patch b/0101-linuxefi-minor-cleanups.patch similarity index 98% rename from 0164-linuxefi-minor-cleanups.patch rename to 0101-linuxefi-minor-cleanups.patch index 4f583dc3..057c7465 100644 --- a/0164-linuxefi-minor-cleanups.patch +++ b/0101-linuxefi-minor-cleanups.patch @@ -1,4 +1,4 @@ -From 8dc21ff37f62f3d10fb3d708ffd33b7d723a23cf Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Feb 2017 16:31:52 -0500 Subject: [PATCH] linuxefi: minor cleanups diff --git a/0165-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch b/0102-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch similarity index 99% rename from 0165-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch rename to 0102-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch index 283ce124..f5790e1f 100644 --- a/0165-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch +++ b/0102-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch @@ -1,4 +1,4 @@ -From 10d6d333de0aa7e390a22ebc4b308f7ad937d5bc Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 14 Feb 2017 16:18:54 -0500 Subject: [PATCH] Handle multi-arch (64-on-32) boot in linuxefi loader. diff --git a/0166-Fix-up-linux-params-usage.patch b/0103-Fix-up-linux-params-usage.patch similarity index 95% rename from 0166-Fix-up-linux-params-usage.patch rename to 0103-Fix-up-linux-params-usage.patch index 229445d7..6862aea8 100644 --- a/0166-Fix-up-linux-params-usage.patch +++ b/0103-Fix-up-linux-params-usage.patch @@ -1,4 +1,4 @@ -From 93be95c27b0ddb63c2e3a287a3ed92c0a5de93e5 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 30 May 2017 14:16:07 -0400 Subject: [PATCH] Fix up linux params usage... diff --git a/0167-Make-exit-take-a-return-code.patch b/0104-Make-exit-take-a-return-code.patch similarity index 95% rename from 0167-Make-exit-take-a-return-code.patch rename to 0104-Make-exit-take-a-return-code.patch index 51687cad..b886e122 100644 --- a/0167-Make-exit-take-a-return-code.patch +++ b/0104-Make-exit-take-a-return-code.patch @@ -1,4 +1,4 @@ -From 6b67d46c1764c86611939dc01267f9c70f413184 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 26 Feb 2014 21:49:12 -0500 Subject: [PATCH] Make "exit" take a return code. diff --git a/0168-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch b/0105-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch similarity index 95% rename from 0168-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch rename to 0105-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch index e90a22eb..1780d62a 100644 --- a/0168-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch +++ b/0105-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch @@ -1,4 +1,4 @@ -From e48a4c0b9e475b16366ff6c375de5186432eb1f7 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Mark Salter Date: Mon, 17 Apr 2017 08:44:29 -0400 Subject: [PATCH] arm64: make sure fdt has #address-cells and #size-cells diff --git a/0169-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch b/0106-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch similarity index 95% rename from 0169-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch rename to 0106-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch index 6d5e4cfa..3e3b406c 100644 --- a/0169-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch +++ b/0106-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch @@ -1,4 +1,4 @@ -From 755fa5ccf0834abdb7e50a1cb06fad618f6c9af6 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 9 May 2016 14:15:17 -0400 Subject: [PATCH] Add some grub_dprintf() in the secure boot verify code. diff --git a/0170-Make-our-info-pages-say-grub2-where-appropriate.patch b/0107-Make-our-info-pages-say-grub2-where-appropriate.patch similarity index 99% rename from 0170-Make-our-info-pages-say-grub2-where-appropriate.patch rename to 0107-Make-our-info-pages-say-grub2-where-appropriate.patch index a1dc75db..662a6567 100644 --- a/0170-Make-our-info-pages-say-grub2-where-appropriate.patch +++ b/0107-Make-our-info-pages-say-grub2-where-appropriate.patch @@ -1,4 +1,4 @@ -From 15c340acd845056ba259b9fffd6c7d083874cb82 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 6 May 2016 18:43:08 -0400 Subject: [PATCH] Make our info pages say "grub2" where appropriate. diff --git a/0171-print-more-debug-info-in-our-module-loader.patch b/0108-print-more-debug-info-in-our-module-loader.patch similarity index 95% rename from 0171-print-more-debug-info-in-our-module-loader.patch rename to 0108-print-more-debug-info-in-our-module-loader.patch index 16c10348..9d54bcd9 100644 --- a/0171-print-more-debug-info-in-our-module-loader.patch +++ b/0108-print-more-debug-info-in-our-module-loader.patch @@ -1,4 +1,4 @@ -From 0d0a7ebbed42b97fca63cbcaf85a469b77c76fda Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 1 May 2017 11:19:40 -0400 Subject: [PATCH] print more debug info in our module loader. diff --git a/0172-macos-just-build-chainloader-entries-don-t-try-any-x.patch b/0109-macos-just-build-chainloader-entries-don-t-try-any-x.patch similarity index 98% rename from 0172-macos-just-build-chainloader-entries-don-t-try-any-x.patch rename to 0109-macos-just-build-chainloader-entries-don-t-try-any-x.patch index f8a880e4..1038a93f 100644 --- a/0172-macos-just-build-chainloader-entries-don-t-try-any-x.patch +++ b/0109-macos-just-build-chainloader-entries-don-t-try-any-x.patch @@ -1,4 +1,4 @@ -From 4cb6b65d74966dfbe6e8463ee1e88d99ca7de5b1 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 24 May 2017 12:42:32 -0400 Subject: [PATCH] macos: just build chainloader entries, don't try any xnu xnu. diff --git a/0173-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch b/0110-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch similarity index 99% rename from 0173-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch rename to 0110-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch index 2087c219..e0d877e3 100644 --- a/0173-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch +++ b/0110-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch @@ -1,4 +1,4 @@ -From 396001716b7f8c7a6aee17f33fdb9e5d47424cbc Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jeff Mahoney Date: Wed, 18 Dec 2013 09:57:04 +0000 Subject: [PATCH] grub2/btrfs: Add ability to boot from subvolumes diff --git a/0174-export-btrfs_subvol-and-btrfs_subvolid.patch b/0111-export-btrfs_subvol-and-btrfs_subvolid.patch similarity index 92% rename from 0174-export-btrfs_subvol-and-btrfs_subvolid.patch rename to 0111-export-btrfs_subvol-and-btrfs_subvolid.patch index 65983122..ee955ad1 100644 --- a/0174-export-btrfs_subvol-and-btrfs_subvolid.patch +++ b/0111-export-btrfs_subvol-and-btrfs_subvolid.patch @@ -1,4 +1,4 @@ -From 35c1015fc1a4313be34757eebb195547336e0edf Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Wed, 18 Dec 2013 09:57:04 +0000 Subject: [PATCH] export btrfs_subvol and btrfs_subvolid diff --git a/0175-grub2-btrfs-03-follow_default.patch b/0112-grub2-btrfs-03-follow_default.patch similarity index 98% rename from 0175-grub2-btrfs-03-follow_default.patch rename to 0112-grub2-btrfs-03-follow_default.patch index a5f7e14e..2b6ea3eb 100644 --- a/0175-grub2-btrfs-03-follow_default.patch +++ b/0112-grub2-btrfs-03-follow_default.patch @@ -1,4 +1,4 @@ -From 476a0251e8ca2850da7c383baf7fdbd810bc789f Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 21 Aug 2014 03:39:11 +0000 Subject: [PATCH] grub2-btrfs-03-follow_default diff --git a/0176-grub2-btrfs-04-grub2-install.patch b/0113-grub2-btrfs-04-grub2-install.patch similarity index 98% rename from 0176-grub2-btrfs-04-grub2-install.patch rename to 0113-grub2-btrfs-04-grub2-install.patch index 9f5507ad..559845eb 100644 --- a/0176-grub2-btrfs-04-grub2-install.patch +++ b/0113-grub2-btrfs-04-grub2-install.patch @@ -1,4 +1,4 @@ -From e03dd83cc804d70af0716d0a429715afbcdc7eae Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 21 Aug 2014 03:39:11 +0000 Subject: [PATCH] grub2-btrfs-04-grub2-install diff --git a/0177-grub2-btrfs-05-grub2-mkconfig.patch b/0114-grub2-btrfs-05-grub2-mkconfig.patch similarity index 98% rename from 0177-grub2-btrfs-05-grub2-mkconfig.patch rename to 0114-grub2-btrfs-05-grub2-mkconfig.patch index 502f5b08..4fc6e575 100644 --- a/0177-grub2-btrfs-05-grub2-mkconfig.patch +++ b/0114-grub2-btrfs-05-grub2-mkconfig.patch @@ -1,4 +1,4 @@ -From cb43e7a6c96127e72d6787c6063de8911284fe18 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 21 Aug 2014 03:39:11 +0000 Subject: [PATCH] grub2-btrfs-05-grub2-mkconfig diff --git a/0178-grub2-btrfs-06-subvol-mount.patch b/0115-grub2-btrfs-06-subvol-mount.patch similarity index 99% rename from 0178-grub2-btrfs-06-subvol-mount.patch rename to 0115-grub2-btrfs-06-subvol-mount.patch index 0c37866f..06fb1932 100644 --- a/0178-grub2-btrfs-06-subvol-mount.patch +++ b/0115-grub2-btrfs-06-subvol-mount.patch @@ -1,4 +1,4 @@ -From 84d6a482c2c8d0677141bb888512a6a89daf9d8b Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Fri, 22 May 2015 11:45:25 +0000 Subject: [PATCH] grub2-btrfs-06-subvol-mount diff --git a/0179-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch b/0116-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch similarity index 93% rename from 0179-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch rename to 0116-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch index 2dfb6210..b51b0259 100644 --- a/0179-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch +++ b/0116-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch @@ -1,4 +1,4 @@ -From 741c0651cd54970c08e9c19a82f5805aafbfda23 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Dusty Mabe Date: Sat, 18 Jul 2015 15:38:08 +0000 Subject: [PATCH] No more "Bootable Snapshot" submenu in grub.cfg. diff --git a/0180-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch b/0117-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch similarity index 96% rename from 0180-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch rename to 0117-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch index 7aee14dd..58429021 100644 --- a/0180-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch +++ b/0117-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch @@ -1,4 +1,4 @@ -From ab8e0d4bf544b708f5afa4cc56e6bd16789f2f1e Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Andrei Borzenkov Date: Tue, 21 Jun 2016 16:44:17 +0000 Subject: [PATCH] Fallback to old subvol name scheme to support old snapshot diff --git a/0181-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch b/0118-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch similarity index 99% rename from 0181-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch rename to 0118-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch index 04ba32b4..22f0b749 100644 --- a/0181-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch +++ b/0118-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch @@ -1,4 +1,4 @@ -From eb8535428a42c7099666ddb58ac900bb8ee745ba Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Thu, 11 May 2017 08:56:57 +0000 Subject: [PATCH] Grub not working correctly with btrfs snapshots (bsc#1026511) diff --git a/0182-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch b/0119-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch similarity index 97% rename from 0182-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch rename to 0119-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch index 35496c08..5a4d8610 100644 --- a/0182-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch +++ b/0119-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch @@ -1,4 +1,4 @@ -From 2a6e1d2491b7334985ad25315faa22d26354d8b7 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 1 Jun 2017 09:59:56 -0400 Subject: [PATCH] Add grub_efi_allocate_pool() and grub_efi_free_pool() diff --git a/0183-Use-grub_efi_.-memory-helpers-where-reasonable.patch b/0120-Use-grub_efi_.-memory-helpers-where-reasonable.patch similarity index 98% rename from 0183-Use-grub_efi_.-memory-helpers-where-reasonable.patch rename to 0120-Use-grub_efi_.-memory-helpers-where-reasonable.patch index fe13ef77..415cf92b 100644 --- a/0183-Use-grub_efi_.-memory-helpers-where-reasonable.patch +++ b/0120-Use-grub_efi_.-memory-helpers-where-reasonable.patch @@ -1,4 +1,4 @@ -From 6ea13cdb3f33da45d7a8042d85ad87e2a18fc946 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 1 Jun 2017 10:06:38 -0400 Subject: [PATCH] Use grub_efi_...() memory helpers where reasonable. diff --git a/0184-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch b/0121-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch similarity index 96% rename from 0184-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch rename to 0121-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch index f64aa82c..9bb46657 100644 --- a/0184-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch +++ b/0121-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch @@ -1,4 +1,4 @@ -From eae94a16a8ae350cdeab8b7742f9227d92001272 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 1 Jun 2017 10:07:50 -0400 Subject: [PATCH] Add PRIxGRUB_EFI_STATUS and use it. diff --git a/0185-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch b/0122-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch similarity index 95% rename from 0185-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch rename to 0122-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch index 26592dbe..882cf5d7 100644 --- a/0185-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch +++ b/0122-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch @@ -1,4 +1,4 @@ -From 41a50aa2c275076caa2f9fe7a747eeb054abed16 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:42:57 -0400 Subject: [PATCH] Don't use dynamic sized arrays since we don't build with diff --git a/0186-don-t-ignore-const.patch b/0123-don-t-ignore-const.patch similarity index 89% rename from 0186-don-t-ignore-const.patch rename to 0123-don-t-ignore-const.patch index 138100a0..6b4d390b 100644 --- a/0186-don-t-ignore-const.patch +++ b/0123-don-t-ignore-const.patch @@ -1,4 +1,4 @@ -From d06e2578107f217d2bc8beee7fd0dc7f2645873d Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:43:22 -0400 Subject: [PATCH] don't ignore const diff --git a/0187-don-t-use-int-for-efi-status.patch b/0124-don-t-use-int-for-efi-status.patch similarity index 90% rename from 0187-don-t-use-int-for-efi-status.patch rename to 0124-don-t-use-int-for-efi-status.patch index ce63f58d..59fc27e1 100644 --- a/0187-don-t-use-int-for-efi-status.patch +++ b/0124-don-t-use-int-for-efi-status.patch @@ -1,4 +1,4 @@ -From 6d86c59c24e12c8e8471cdd2affca574fdee160d Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:44:59 -0400 Subject: [PATCH] don't use int for efi status diff --git a/0188-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch b/0125-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch similarity index 93% rename from 0188-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch rename to 0125-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch index 0c873ea9..1d6f4c4f 100644 --- a/0188-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch +++ b/0125-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch @@ -1,4 +1,4 @@ -From ba6828d073bbda85eba59a9ce9220eada51a540b Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 26 Jun 2017 12:46:23 -0400 Subject: [PATCH] make GRUB_MOD_INIT() declare its function prototypes. diff --git a/0189-Clean-up-some-errors-in-the-linuxefi-loader.patch b/0126-Clean-up-some-errors-in-the-linuxefi-loader.patch similarity index 97% rename from 0189-Clean-up-some-errors-in-the-linuxefi-loader.patch rename to 0126-Clean-up-some-errors-in-the-linuxefi-loader.patch index 06cecba9..3471b23e 100644 --- a/0189-Clean-up-some-errors-in-the-linuxefi-loader.patch +++ b/0126-Clean-up-some-errors-in-the-linuxefi-loader.patch @@ -1,4 +1,4 @@ -From 8bdc0c77919ddb9bd588ac45e96c96497683f76c Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 24 May 2017 15:58:18 -0400 Subject: [PATCH] Clean up some errors in the linuxefi loader diff --git a/0190-editenv-handle-relative-symlinks.patch b/0127-editenv-handle-relative-symlinks.patch similarity index 95% rename from 0190-editenv-handle-relative-symlinks.patch rename to 0127-editenv-handle-relative-symlinks.patch index 7a772617..20e16864 100644 --- a/0190-editenv-handle-relative-symlinks.patch +++ b/0127-editenv-handle-relative-symlinks.patch @@ -1,4 +1,4 @@ -From 098987b7b5fcc15a5ba3600fa132fcec36095c5a Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jonathan Lebon Date: Mon, 14 Aug 2017 14:37:20 -0400 Subject: [PATCH] editenv: handle relative symlinks diff --git a/0191-Make-libgrub.pp-depend-on-config-util.h.patch b/0128-Make-libgrub.pp-depend-on-config-util.h.patch similarity index 98% rename from 0191-Make-libgrub.pp-depend-on-config-util.h.patch rename to 0128-Make-libgrub.pp-depend-on-config-util.h.patch index 7df011ad..dc24fb12 100644 --- a/0191-Make-libgrub.pp-depend-on-config-util.h.patch +++ b/0128-Make-libgrub.pp-depend-on-config-util.h.patch @@ -1,4 +1,4 @@ -From c86299049c2cc0503728deee280d9f6bf50886f4 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 23 Aug 2017 10:37:27 -0400 Subject: [PATCH] Make libgrub.pp depend on config-util.h diff --git a/0192-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch b/0129-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch similarity index 94% rename from 0192-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch rename to 0129-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch index 68c1cbb1..800dcbc9 100644 --- a/0192-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch +++ b/0129-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch @@ -1,4 +1,4 @@ -From 351799d9310a4bec23ed4074444780c2a35435fd Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 20 Apr 2017 13:29:06 -0400 Subject: [PATCH] Don't guess /boot/efi/ as HFS+ on ppc machines in diff --git a/0193-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch b/0130-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch similarity index 96% rename from 0193-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch rename to 0130-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch index 68b57d27..a86f4679 100644 --- a/0193-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch +++ b/0130-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch @@ -1,4 +1,4 @@ -From cba0322cd88baf136ac693f5ec1826f3314daeff Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Konrad Rzeszutek Wilk Date: Mon, 28 Aug 2017 13:51:14 -0400 Subject: [PATCH] Fix util/grub.d/20_linux_xen.in: Add xen_boot command support diff --git a/0194-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch b/0131-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch similarity index 93% rename from 0194-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch rename to 0131-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch index fbc5d2bb..4988aa1c 100644 --- a/0194-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch +++ b/0131-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch @@ -1,4 +1,4 @@ -From 87c089b6f1945ebcc690697d279c74284f1b4072 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Konrad Rzeszutek Wilk Date: Mon, 28 Aug 2017 13:59:12 -0400 Subject: [PATCH] Use grub-file to figure out whether multiboot2 should be used diff --git a/0195-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch b/0132-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch similarity index 94% rename from 0195-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch rename to 0132-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch index 79d47acd..9a97af20 100644 --- a/0195-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch +++ b/0132-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch @@ -1,4 +1,4 @@ -From 92d3db585076d022521ab94a2ceed03eb05013fc Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 19 Oct 2017 11:29:11 -0400 Subject: [PATCH] 20_linux_xen: load xen or multiboot{,2} modules as needed. diff --git a/0196-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch b/0133-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch similarity index 95% rename from 0196-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch rename to 0133-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch index 5c5ddcac..23ee8da2 100644 --- a/0196-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch +++ b/0133-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch @@ -1,4 +1,4 @@ -From 2e5b957292d3f313d48bded25e8ca83468326c5b Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: "David E. Box" Date: Fri, 15 Sep 2017 15:37:05 -0700 Subject: [PATCH] tsc: Change default tsc calibration method to pmtimer on EFI diff --git a/0197-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch b/0134-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch similarity index 99% rename from 0197-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch rename to 0134-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch index 2794500d..acfb116d 100644 --- a/0197-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch +++ b/0134-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch @@ -1,4 +1,4 @@ -From 0b158c30810db86f549cabd6e6021ab15962370d Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 7 Nov 2017 17:12:17 -0500 Subject: [PATCH] Make pmtimer tsc calibration not take 51 seconds to fail. diff --git a/0198-align-struct-efi_variable-better.patch b/0135-align-struct-efi_variable-better.patch similarity index 94% rename from 0198-align-struct-efi_variable-better.patch rename to 0135-align-struct-efi_variable-better.patch index 2ad86512..8b637621 100644 --- a/0198-align-struct-efi_variable-better.patch +++ b/0135-align-struct-efi_variable-better.patch @@ -1,4 +1,4 @@ -From 2485633ada06c11c07a34a696a92b14e58f1e846 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 27 Feb 2018 13:55:35 -0500 Subject: [PATCH] align struct efi_variable better... diff --git a/0199-Add-quicksort-implementation.patch b/0136-Add-quicksort-implementation.patch similarity index 99% rename from 0199-Add-quicksort-implementation.patch rename to 0136-Add-quicksort-implementation.patch index d8db032d..9e320b46 100644 --- a/0199-Add-quicksort-implementation.patch +++ b/0136-Add-quicksort-implementation.patch @@ -1,4 +1,4 @@ -From a2cd100d71711b950beaf60ea7ddca4c77a70d59 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 9 Dec 2016 15:39:47 -0500 Subject: [PATCH] Add quicksort implementation diff --git a/0200-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch b/0137-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch similarity index 99% rename from 0200-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch rename to 0137-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch index bf1e2bd5..b164e9ce 100644 --- a/0200-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch +++ b/0137-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch @@ -1,4 +1,4 @@ -From ed595feeea2f7b7fd0158d42fa2fd39420eea683 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 9 Dec 2016 15:40:58 -0500 Subject: [PATCH] Add blscfg command support to parse BootLoaderSpec config diff --git a/0201-Add-BLS-support-to-grub-mkconfig.patch b/0138-Add-BLS-support-to-grub-mkconfig.patch similarity index 98% rename from 0201-Add-BLS-support-to-grub-mkconfig.patch rename to 0138-Add-BLS-support-to-grub-mkconfig.patch index ccac5c22..0eb61a35 100644 --- a/0201-Add-BLS-support-to-grub-mkconfig.patch +++ b/0138-Add-BLS-support-to-grub-mkconfig.patch @@ -1,4 +1,4 @@ -From d847a4806bb7a4f3b457d0074d712e500fbd5e97 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 9 Dec 2016 15:40:29 -0500 Subject: [PATCH] Add BLS support to grub-mkconfig diff --git a/0202-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch b/0139-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch similarity index 93% rename from 0202-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch rename to 0139-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch index bc5324c8..53bf22eb 100644 --- a/0202-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch +++ b/0139-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch @@ -1,4 +1,4 @@ -From 2d7dabdbf322e8f679eeaefd48cb26b083cdeb1c Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 6 Feb 2018 11:02:09 +0100 Subject: [PATCH] Remove duplicated grub_exit() definition for grub-emu diff --git a/0203-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch b/0140-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch similarity index 93% rename from 0203-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch rename to 0140-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch index c0e20513..204abbc0 100644 --- a/0203-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch +++ b/0140-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch @@ -1,4 +1,4 @@ -From f45946a92377c83ffcad8dbc3298fc26072567d9 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 6 Feb 2018 11:16:28 +0100 Subject: [PATCH] Don't attempt to backtrace on grub_abort() for grub-emu diff --git a/0204-Enable-blscfg-command-for-the-emu-platform.patch b/0141-Enable-blscfg-command-for-the-emu-platform.patch similarity index 98% rename from 0204-Enable-blscfg-command-for-the-emu-platform.patch rename to 0141-Enable-blscfg-command-for-the-emu-platform.patch index b2aafffe..7d6c59d6 100644 --- a/0204-Enable-blscfg-command-for-the-emu-platform.patch +++ b/0141-Enable-blscfg-command-for-the-emu-platform.patch @@ -1,4 +1,4 @@ -From 39bb86c661911f06ff40caa842a9babf18f27c8b Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Fri, 2 Feb 2018 11:36:29 +0100 Subject: [PATCH] Enable blscfg command for the emu platform diff --git a/0205-Add-linux-and-initrd-commands-for-grub-emu.patch b/0142-Add-linux-and-initrd-commands-for-grub-emu.patch similarity index 99% rename from 0205-Add-linux-and-initrd-commands-for-grub-emu.patch rename to 0142-Add-linux-and-initrd-commands-for-grub-emu.patch index 3b1208f4..40d00a81 100644 --- a/0205-Add-linux-and-initrd-commands-for-grub-emu.patch +++ b/0142-Add-linux-and-initrd-commands-for-grub-emu.patch @@ -1,4 +1,4 @@ -From 49c719a6f6e223b95733e18720a48993ab6e5317 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Michael Chang Date: Tue, 6 Feb 2018 09:09:00 +0100 Subject: [PATCH] Add linux and initrd commands for grub-emu diff --git a/0206-Fix-the-efidir-in-grub-setpassword.patch b/0143-Fix-the-efidir-in-grub-setpassword.patch similarity index 92% rename from 0206-Fix-the-efidir-in-grub-setpassword.patch rename to 0143-Fix-the-efidir-in-grub-setpassword.patch index 36074fda..2d815e2a 100644 --- a/0206-Fix-the-efidir-in-grub-setpassword.patch +++ b/0143-Fix-the-efidir-in-grub-setpassword.patch @@ -1,4 +1,4 @@ -From c7c6cb4380f5bd85a2cbe747433657fdce89a802 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 15 Mar 2018 14:12:54 -0400 Subject: [PATCH] Fix the efidir in grub-setpassword diff --git a/0207-Add-grub2-switch-to-blscfg.patch b/0144-Add-grub2-switch-to-blscfg.patch similarity index 99% rename from 0207-Add-grub2-switch-to-blscfg.patch rename to 0144-Add-grub2-switch-to-blscfg.patch index 8a806c0f..62890d42 100644 --- a/0207-Add-grub2-switch-to-blscfg.patch +++ b/0144-Add-grub2-switch-to-blscfg.patch @@ -1,4 +1,4 @@ -From 89b3a570de8b5e7ad19769983a87f6e10024f0ec Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 15 Mar 2018 14:12:40 -0400 Subject: [PATCH] Add grub2-switch-to-blscfg diff --git a/0208-Add-grub_debug_enabled.patch b/0145-Add-grub_debug_enabled.patch similarity index 96% rename from 0208-Add-grub_debug_enabled.patch rename to 0145-Add-grub_debug_enabled.patch index 8b3ac8f0..634eb6f4 100644 --- a/0208-Add-grub_debug_enabled.patch +++ b/0145-Add-grub_debug_enabled.patch @@ -1,4 +1,4 @@ -From 6776773c89828c9b69c1552760ba6a4d9cd5589f Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 30 Nov 2017 15:11:39 -0500 Subject: [PATCH] Add grub_debug_enabled() diff --git a/0209-make-better-backtraces.patch b/0146-make-better-backtraces.patch similarity index 99% rename from 0209-make-better-backtraces.patch rename to 0146-make-better-backtraces.patch index 473923d9..d238ce04 100644 --- a/0209-make-better-backtraces.patch +++ b/0146-make-better-backtraces.patch @@ -1,4 +1,4 @@ -From 318ee04aadcda40b779b2a5314dd23ead165f896 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 6 Nov 2017 18:31:56 -0500 Subject: [PATCH] make better backtraces diff --git a/0210-normal-don-t-draw-our-startup-message-if-debug-is-se.patch b/0147-normal-don-t-draw-our-startup-message-if-debug-is-se.patch similarity index 92% rename from 0210-normal-don-t-draw-our-startup-message-if-debug-is-se.patch rename to 0147-normal-don-t-draw-our-startup-message-if-debug-is-se.patch index ca7b1192..d2a8fd07 100644 --- a/0210-normal-don-t-draw-our-startup-message-if-debug-is-se.patch +++ b/0147-normal-don-t-draw-our-startup-message-if-debug-is-se.patch @@ -1,4 +1,4 @@ -From 81d0e079ea5aa6f43daf12f7a8698d0bcd1a36f8 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 9 Nov 2017 15:58:52 -0500 Subject: [PATCH] normal: don't draw our startup message if debug is set diff --git a/0211-Work-around-some-minor-include-path-weirdnesses.patch b/0148-Work-around-some-minor-include-path-weirdnesses.patch similarity index 98% rename from 0211-Work-around-some-minor-include-path-weirdnesses.patch rename to 0148-Work-around-some-minor-include-path-weirdnesses.patch index 1348d2f1..460d7927 100644 --- a/0211-Work-around-some-minor-include-path-weirdnesses.patch +++ b/0148-Work-around-some-minor-include-path-weirdnesses.patch @@ -1,4 +1,4 @@ -From e2bba0f7ee8e56c68e425853a21a8fdd766add70 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 16 Mar 2018 13:28:57 -0400 Subject: [PATCH] Work around some minor include path weirdnesses diff --git a/0212-Make-it-possible-to-enabled-build-id-sha1.patch b/0149-Make-it-possible-to-enabled-build-id-sha1.patch similarity index 96% rename from 0212-Make-it-possible-to-enabled-build-id-sha1.patch rename to 0149-Make-it-possible-to-enabled-build-id-sha1.patch index 33c50e67..d9c723f4 100644 --- a/0212-Make-it-possible-to-enabled-build-id-sha1.patch +++ b/0149-Make-it-possible-to-enabled-build-id-sha1.patch @@ -1,4 +1,4 @@ -From 8521929bcf671b465d6450b969d11617b6aec608 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 25 Jun 2015 15:41:06 -0400 Subject: [PATCH] Make it possible to enabled --build-id=sha1 diff --git a/0213-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch b/0150-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch similarity index 96% rename from 0213-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch rename to 0150-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch index 8c625ce8..90a9593e 100644 --- a/0213-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch +++ b/0150-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch @@ -1,4 +1,4 @@ -From 8c4b2eaa204f0ea0377ca4592d2be6029fdb9be7 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Sun, 28 Jun 2015 13:09:58 -0400 Subject: [PATCH] Add grub_qdprintf() - grub_dprintf() without the file+line diff --git a/0214-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch b/0151-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch similarity index 98% rename from 0214-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch rename to 0151-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch index 18d4f7ba..25b1a9df 100644 --- a/0214-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch +++ b/0151-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch @@ -1,4 +1,4 @@ -From 030095a01a205aba04a0849ac0c0329ac429a9ed Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 25 Jun 2015 15:11:36 -0400 Subject: [PATCH] Make a "gdb" dprintf that tells us load addresses. diff --git a/0215-Only-attempt-to-scan-different-BLS-directories-on-EF.patch b/0152-Only-attempt-to-scan-different-BLS-directories-on-EF.patch similarity index 96% rename from 0215-Only-attempt-to-scan-different-BLS-directories-on-EF.patch rename to 0152-Only-attempt-to-scan-different-BLS-directories-on-EF.patch index 43471585..b53d4c20 100644 --- a/0215-Only-attempt-to-scan-different-BLS-directories-on-EF.patch +++ b/0152-Only-attempt-to-scan-different-BLS-directories-on-EF.patch @@ -1,4 +1,4 @@ -From 5f0417c63a4dd2252a5a801568f4369ac74a47e6 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 3 Apr 2018 15:42:47 +0200 Subject: [PATCH] Only attempt to scan different BLS directories on EFI diff --git a/0216-Core-TPM-support.patch b/0153-Core-TPM-support.patch similarity index 99% rename from 0216-Core-TPM-support.patch rename to 0153-Core-TPM-support.patch index aa7d8fc4..91146135 100644 --- a/0216-Core-TPM-support.patch +++ b/0153-Core-TPM-support.patch @@ -1,4 +1,4 @@ -From 65be94a64a5608209561ba0914d29445d81bf4b2 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 14 Jul 2015 17:06:35 -0700 Subject: [PATCH] Core TPM support diff --git a/0217-Measure-kernel-initrd.patch b/0154-Measure-kernel-initrd.patch similarity index 95% rename from 0217-Measure-kernel-initrd.patch rename to 0154-Measure-kernel-initrd.patch index 7ced377d..ea8e2e4e 100644 --- a/0217-Measure-kernel-initrd.patch +++ b/0154-Measure-kernel-initrd.patch @@ -1,4 +1,4 @@ -From ffd305d09def6610ef96f928c0df8303c5529d63 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Thu, 16 Jul 2015 15:22:34 -0700 Subject: [PATCH] Measure kernel + initrd diff --git a/0218-Add-BIOS-boot-measurement.patch b/0155-Add-BIOS-boot-measurement.patch similarity index 98% rename from 0218-Add-BIOS-boot-measurement.patch rename to 0155-Add-BIOS-boot-measurement.patch index 3fff53ec..0e29692f 100644 --- a/0218-Add-BIOS-boot-measurement.patch +++ b/0155-Add-BIOS-boot-measurement.patch @@ -1,4 +1,4 @@ -From d8870587d46f8aa8d4f8db2cdcddecc829993447 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 15:48:51 -0700 Subject: [PATCH] Add BIOS boot measurement diff --git a/0219-Measure-kernel-and-initrd-on-BIOS-systems.patch b/0156-Measure-kernel-and-initrd-on-BIOS-systems.patch similarity index 97% rename from 0219-Measure-kernel-and-initrd-on-BIOS-systems.patch rename to 0156-Measure-kernel-and-initrd-on-BIOS-systems.patch index 9ebc347b..97bb9c2a 100644 --- a/0219-Measure-kernel-and-initrd-on-BIOS-systems.patch +++ b/0156-Measure-kernel-and-initrd-on-BIOS-systems.patch @@ -1,4 +1,4 @@ -From 5aee2444093cfc8006865766f89e5a775a940ab1 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 16:28:29 -0700 Subject: [PATCH] Measure kernel and initrd on BIOS systems diff --git a/0220-Measure-the-kernel-commandline.patch b/0157-Measure-the-kernel-commandline.patch similarity index 94% rename from 0220-Measure-the-kernel-commandline.patch rename to 0157-Measure-the-kernel-commandline.patch index c17d8dc1..7fe2809a 100644 --- a/0220-Measure-the-kernel-commandline.patch +++ b/0157-Measure-the-kernel-commandline.patch @@ -1,4 +1,4 @@ -From c1694574d6eb287e6e181dd018fe54b718a613b3 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Sun, 9 Aug 2015 16:32:29 -0700 Subject: [PATCH] Measure the kernel commandline diff --git a/0221-Measure-commands.patch b/0158-Measure-commands.patch similarity index 97% rename from 0221-Measure-commands.patch rename to 0158-Measure-commands.patch index 9d5530fc..bac4c8db 100644 --- a/0221-Measure-commands.patch +++ b/0158-Measure-commands.patch @@ -1,4 +1,4 @@ -From c93a27f2e6a323a4985e6fe902eb5c6447fca572 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Mon, 10 Aug 2015 15:27:12 -0700 Subject: [PATCH] Measure commands diff --git a/0222-Measure-multiboot-images-and-modules.patch b/0159-Measure-multiboot-images-and-modules.patch similarity index 97% rename from 0222-Measure-multiboot-images-and-modules.patch rename to 0159-Measure-multiboot-images-and-modules.patch index 3332a464..54510f68 100644 --- a/0222-Measure-multiboot-images-and-modules.patch +++ b/0159-Measure-multiboot-images-and-modules.patch @@ -1,4 +1,4 @@ -From b164ec560cd6373c0c5d8a189d70baeca2c3ef13 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 1 Sep 2015 16:02:55 -0700 Subject: [PATCH] Measure multiboot images and modules diff --git a/0223-Fix-boot-when-there-s-no-TPM.patch b/0160-Fix-boot-when-there-s-no-TPM.patch similarity index 92% rename from 0223-Fix-boot-when-there-s-no-TPM.patch rename to 0160-Fix-boot-when-there-s-no-TPM.patch index 886cb577..60efb938 100644 --- a/0223-Fix-boot-when-there-s-no-TPM.patch +++ b/0160-Fix-boot-when-there-s-no-TPM.patch @@ -1,4 +1,4 @@ -From 33fb6113d65a819496d0b67b8db071fedad845a7 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Wed, 23 Mar 2016 16:49:42 -0700 Subject: [PATCH] Fix boot when there's no TPM diff --git a/0224-Rework-TPM-measurements.patch b/0161-Rework-TPM-measurements.patch similarity index 99% rename from 0224-Rework-TPM-measurements.patch rename to 0161-Rework-TPM-measurements.patch index cc6bc38b..54276e2e 100644 --- a/0224-Rework-TPM-measurements.patch +++ b/0161-Rework-TPM-measurements.patch @@ -1,4 +1,4 @@ -From 415072bbda8b4de133c6dc6add230e41ee6d9579 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Wed, 23 Mar 2016 17:03:43 -0700 Subject: [PATCH] Rework TPM measurements diff --git a/0225-Fix-event-log-prefix.patch b/0162-Fix-event-log-prefix.patch similarity index 93% rename from 0225-Fix-event-log-prefix.patch rename to 0162-Fix-event-log-prefix.patch index af1b6591..7b98f9af 100644 --- a/0225-Fix-event-log-prefix.patch +++ b/0162-Fix-event-log-prefix.patch @@ -1,4 +1,4 @@ -From 0816621235226952a5bd0cfd027eb97ff84df547 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Tue, 29 Mar 2016 15:36:49 -0700 Subject: [PATCH] Fix event log prefix diff --git a/0226-Set-the-first-boot-menu-entry-as-default-when-using-.patch b/0163-Set-the-first-boot-menu-entry-as-default-when-using-.patch similarity index 93% rename from 0226-Set-the-first-boot-menu-entry-as-default-when-using-.patch rename to 0163-Set-the-first-boot-menu-entry-as-default-when-using-.patch index b0e5506f..2d501f1f 100644 --- a/0226-Set-the-first-boot-menu-entry-as-default-when-using-.patch +++ b/0163-Set-the-first-boot-menu-entry-as-default-when-using-.patch @@ -1,4 +1,4 @@ -From 8278e40fdc4a4db0865fc632cbe2dcf7c124ba7a Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Fri, 6 Apr 2018 14:08:36 +0200 Subject: [PATCH] Set the first boot menu entry as default when using BLS diff --git a/0227-tpm-fix-warnings-when-compiling-for-platforms-other-.patch b/0164-tpm-fix-warnings-when-compiling-for-platforms-other-.patch similarity index 95% rename from 0227-tpm-fix-warnings-when-compiling-for-platforms-other-.patch rename to 0164-tpm-fix-warnings-when-compiling-for-platforms-other-.patch index db1b7a57..9f9373ff 100644 --- a/0227-tpm-fix-warnings-when-compiling-for-platforms-other-.patch +++ b/0164-tpm-fix-warnings-when-compiling-for-platforms-other-.patch @@ -1,4 +1,4 @@ -From 4c53f61b1a889c0f55e76a763b05b6686ec613b8 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Michael Marineau Date: Sun, 21 Aug 2016 18:24:58 -0700 Subject: [PATCH] tpm: fix warnings when compiling for platforms other than pc diff --git a/0228-Make-TPM-errors-less-fatal.patch b/0165-Make-TPM-errors-less-fatal.patch similarity index 99% rename from 0228-Make-TPM-errors-less-fatal.patch rename to 0165-Make-TPM-errors-less-fatal.patch index a3eaca18..7e430509 100644 --- a/0228-Make-TPM-errors-less-fatal.patch +++ b/0165-Make-TPM-errors-less-fatal.patch @@ -1,4 +1,4 @@ -From 406f7dda0cc2689170f102341a546c87072d1ce5 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Matthew Garrett Date: Thu, 13 Oct 2016 13:55:26 -0700 Subject: [PATCH] Make TPM errors less fatal diff --git a/0229-blscfg-handle-multiple-initramfs-images.patch b/0166-blscfg-handle-multiple-initramfs-images.patch similarity index 97% rename from 0229-blscfg-handle-multiple-initramfs-images.patch rename to 0166-blscfg-handle-multiple-initramfs-images.patch index b3aad41b..0e3d8731 100644 --- a/0229-blscfg-handle-multiple-initramfs-images.patch +++ b/0166-blscfg-handle-multiple-initramfs-images.patch @@ -1,4 +1,4 @@ -From a230ec5c31d818c2f046acf3592a5492d3e2ea69 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 11 Apr 2018 13:44:29 -0400 Subject: [PATCH] blscfg: handle multiple initramfs images. diff --git a/0230-BLS-Fix-grub2-switch-to-blscfg-on-non-EFI-machines.patch b/0167-BLS-Fix-grub2-switch-to-blscfg-on-non-EFI-machines.patch similarity index 93% rename from 0230-BLS-Fix-grub2-switch-to-blscfg-on-non-EFI-machines.patch rename to 0167-BLS-Fix-grub2-switch-to-blscfg-on-non-EFI-machines.patch index 3afb880c..a0456462 100644 --- a/0230-BLS-Fix-grub2-switch-to-blscfg-on-non-EFI-machines.patch +++ b/0167-BLS-Fix-grub2-switch-to-blscfg-on-non-EFI-machines.patch @@ -1,4 +1,4 @@ -From f006df881d1b2b3ca7320ecfcd33181295ec1018 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jan Hlavac Date: Tue, 10 Apr 2018 16:07:36 +0200 Subject: [PATCH] BLS: Fix grub2-switch-to-blscfg on non-EFI machines diff --git a/0231-BLS-Use-etcdefaultgrub-instead-of-etc.patch b/0168-BLS-Use-etcdefaultgrub-instead-of-etc.patch similarity index 93% rename from 0231-BLS-Use-etcdefaultgrub-instead-of-etc.patch rename to 0168-BLS-Use-etcdefaultgrub-instead-of-etc.patch index 4054cdf3..db974101 100644 --- a/0231-BLS-Use-etcdefaultgrub-instead-of-etc.patch +++ b/0168-BLS-Use-etcdefaultgrub-instead-of-etc.patch @@ -1,4 +1,4 @@ -From 29b79fde633a43223ead7874ffd373603f129832 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Jan Hlavac Date: Tue, 10 Apr 2018 16:56:28 +0200 Subject: [PATCH] BLS: Use ${etcdefaultgrub} instead of /etc/... diff --git a/0232-Add-missing-options-to-grub2-switch-to-blscfg-man-pa.patch b/0169-Add-missing-options-to-grub2-switch-to-blscfg-man-pa.patch similarity index 95% rename from 0232-Add-missing-options-to-grub2-switch-to-blscfg-man-pa.patch rename to 0169-Add-missing-options-to-grub2-switch-to-blscfg-man-pa.patch index 1560c256..16ab928c 100644 --- a/0232-Add-missing-options-to-grub2-switch-to-blscfg-man-pa.patch +++ b/0169-Add-missing-options-to-grub2-switch-to-blscfg-man-pa.patch @@ -1,4 +1,4 @@ -From c3a05672a450fd9e95de5df2b0c27c24fe04cd83 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Wed, 11 Apr 2018 11:36:43 +0200 Subject: [PATCH] Add missing options to grub2-switch-to-blscfg man page diff --git a/0233-Make-grub2-switch-to-blscfg-to-generate-debug-BLS-wh.patch b/0170-Make-grub2-switch-to-blscfg-to-generate-debug-BLS-wh.patch similarity index 97% rename from 0233-Make-grub2-switch-to-blscfg-to-generate-debug-BLS-wh.patch rename to 0170-Make-grub2-switch-to-blscfg-to-generate-debug-BLS-wh.patch index f3fc0512..5e47f2d8 100644 --- a/0233-Make-grub2-switch-to-blscfg-to-generate-debug-BLS-wh.patch +++ b/0170-Make-grub2-switch-to-blscfg-to-generate-debug-BLS-wh.patch @@ -1,4 +1,4 @@ -From 55b00d518e029a563653401c6908489924c07238 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Wed, 11 Apr 2018 11:49:24 +0200 Subject: [PATCH] Make grub2-switch-to-blscfg to generate debug BLS when diff --git a/0234-Make-grub2-switch-to-blscfg-to-generate-BLS-fragment.patch b/0171-Make-grub2-switch-to-blscfg-to-generate-BLS-fragment.patch similarity index 93% rename from 0234-Make-grub2-switch-to-blscfg-to-generate-BLS-fragment.patch rename to 0171-Make-grub2-switch-to-blscfg-to-generate-BLS-fragment.patch index 0a24e214..eb1726be 100644 --- a/0234-Make-grub2-switch-to-blscfg-to-generate-BLS-fragment.patch +++ b/0171-Make-grub2-switch-to-blscfg-to-generate-BLS-fragment.patch @@ -1,4 +1,4 @@ -From 60bddbc714c96ca05821d52bdd7dbad7eabd6dd5 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Wed, 11 Apr 2018 12:39:59 +0200 Subject: [PATCH] Make grub2-switch-to-blscfg to generate BLS fragment for diff --git a/0235-Only-attempt-to-query-dev-mounted-in-boot-efi-as-boo.patch b/0172-Only-attempt-to-query-dev-mounted-in-boot-efi-as-boo.patch similarity index 95% rename from 0235-Only-attempt-to-query-dev-mounted-in-boot-efi-as-boo.patch rename to 0172-Only-attempt-to-query-dev-mounted-in-boot-efi-as-boo.patch index 77330747..9c79a174 100644 --- a/0235-Only-attempt-to-query-dev-mounted-in-boot-efi-as-boo.patch +++ b/0172-Only-attempt-to-query-dev-mounted-in-boot-efi-as-boo.patch @@ -1,4 +1,4 @@ -From 8afe59812e83e78564697ef8241ed4f1b3527423 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 24 Apr 2018 02:16:38 +0200 Subject: [PATCH] Only attempt to query dev mounted in /boot/efi as boot dev on diff --git a/0236-Include-OSTree-path-when-searching-kernels-images-if.patch b/0173-Include-OSTree-path-when-searching-kernels-images-if.patch similarity index 95% rename from 0236-Include-OSTree-path-when-searching-kernels-images-if.patch rename to 0173-Include-OSTree-path-when-searching-kernels-images-if.patch index ad932eed..d77edcfd 100644 --- a/0236-Include-OSTree-path-when-searching-kernels-images-if.patch +++ b/0173-Include-OSTree-path-when-searching-kernels-images-if.patch @@ -1,4 +1,4 @@ -From 459eaeacbb40116dcb501cf165c7816e70c66fb3 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 24 Apr 2018 02:28:04 +0200 Subject: [PATCH] Include OSTree path when searching kernels images if BLS diff --git a/0237-Use-BLS-version-field-to-compare-entries-if-id-field.patch b/0174-Use-BLS-version-field-to-compare-entries-if-id-field.patch similarity index 93% rename from 0237-Use-BLS-version-field-to-compare-entries-if-id-field.patch rename to 0174-Use-BLS-version-field-to-compare-entries-if-id-field.patch index 8b3fd3d6..84ed52e7 100644 --- a/0237-Use-BLS-version-field-to-compare-entries-if-id-field.patch +++ b/0174-Use-BLS-version-field-to-compare-entries-if-id-field.patch @@ -1,4 +1,4 @@ -From 689a48c76bee8049a50f962852f43f108c815450 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Fri, 27 Apr 2018 17:53:41 +0200 Subject: [PATCH] Use BLS version field to compare entries if id field isn't diff --git a/0238-Add-version-field-to-BLS-generated-by-grub2-switch-t.patch b/0175-Add-version-field-to-BLS-generated-by-grub2-switch-t.patch similarity index 95% rename from 0238-Add-version-field-to-BLS-generated-by-grub2-switch-t.patch rename to 0175-Add-version-field-to-BLS-generated-by-grub2-switch-t.patch index a0d06aef..27e0a17c 100644 --- a/0238-Add-version-field-to-BLS-generated-by-grub2-switch-t.patch +++ b/0175-Add-version-field-to-BLS-generated-by-grub2-switch-t.patch @@ -1,4 +1,4 @@ -From 0994be8d655420685d900a08443b4fd53f639e72 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Thu, 10 May 2018 10:52:11 +0200 Subject: [PATCH] Add version field to BLS generated by grub2-switch-to-blscfg diff --git a/0239-Fixup-for-newer-compiler.patch b/0176-Fixup-for-newer-compiler.patch similarity index 94% rename from 0239-Fixup-for-newer-compiler.patch rename to 0176-Fixup-for-newer-compiler.patch index 7bc25d55..f147e7dd 100644 --- a/0239-Fixup-for-newer-compiler.patch +++ b/0176-Fixup-for-newer-compiler.patch @@ -1,4 +1,4 @@ -From fe5e237fbe38fcbec4018b7e5d328b211bbabb2f Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 10 May 2018 13:40:19 -0400 Subject: [PATCH] Fixup for newer compiler diff --git a/0240-Don-t-attempt-to-export-the-start-and-_start-symbols.patch b/0177-Don-t-attempt-to-export-the-start-and-_start-symbols.patch similarity index 96% rename from 0240-Don-t-attempt-to-export-the-start-and-_start-symbols.patch rename to 0177-Don-t-attempt-to-export-the-start-and-_start-symbols.patch index f92c29f5..33ceb3d4 100644 --- a/0240-Don-t-attempt-to-export-the-start-and-_start-symbols.patch +++ b/0177-Don-t-attempt-to-export-the-start-and-_start-symbols.patch @@ -1,4 +1,4 @@ -From d03f1ebcdf88a1bf850730b9cbd1126894bdca76 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Sat, 12 May 2018 11:29:07 +0200 Subject: [PATCH] Don't attempt to export the start and _start symbols for diff --git a/0241-Simplify-BLS-entry-key-val-pairs-lookup.patch b/0178-Simplify-BLS-entry-key-val-pairs-lookup.patch similarity index 98% rename from 0241-Simplify-BLS-entry-key-val-pairs-lookup.patch rename to 0178-Simplify-BLS-entry-key-val-pairs-lookup.patch index b7865b32..261cd9aa 100644 --- a/0241-Simplify-BLS-entry-key-val-pairs-lookup.patch +++ b/0178-Simplify-BLS-entry-key-val-pairs-lookup.patch @@ -1,4 +1,4 @@ -From 385bb1bd33e9467eda798ea3a4ac16e86a40ce75 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Fri, 11 May 2018 23:47:31 +0200 Subject: [PATCH] Simplify BLS entry key val pairs lookup diff --git a/0242-Add-relative-path-to-the-kernel-and-initrds-BLS-fiel.patch b/0179-Add-relative-path-to-the-kernel-and-initrds-BLS-fiel.patch similarity index 97% rename from 0242-Add-relative-path-to-the-kernel-and-initrds-BLS-fiel.patch rename to 0179-Add-relative-path-to-the-kernel-and-initrds-BLS-fiel.patch index dd3abd73..5a5a77d0 100644 --- a/0242-Add-relative-path-to-the-kernel-and-initrds-BLS-fiel.patch +++ b/0179-Add-relative-path-to-the-kernel-and-initrds-BLS-fiel.patch @@ -1,4 +1,4 @@ -From a24ca589707fa69fe7be9dc1007f4ae114994f9f Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Mon, 4 Jun 2018 16:10:22 +0200 Subject: [PATCH] Add relative path to the kernel and initrds BLS fields if diff --git a/0243-Skip-leading-spaces-on-BLS-field-values.patch b/0180-Skip-leading-spaces-on-BLS-field-values.patch similarity index 96% rename from 0243-Skip-leading-spaces-on-BLS-field-values.patch rename to 0180-Skip-leading-spaces-on-BLS-field-values.patch index 6e11d864..8b4cff89 100644 --- a/0243-Skip-leading-spaces-on-BLS-field-values.patch +++ b/0180-Skip-leading-spaces-on-BLS-field-values.patch @@ -1,4 +1,4 @@ -From a5bf618156915e97a0e7df07556ab728377de77e Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Thu, 7 Jun 2018 00:44:51 +0200 Subject: [PATCH] Skip leading spaces on BLS field values diff --git a/0244-Fixup-for-newer-compiler.patch b/0181-Fixup-for-newer-compiler.patch similarity index 94% rename from 0244-Fixup-for-newer-compiler.patch rename to 0181-Fixup-for-newer-compiler.patch index 249b6194..e518af8f 100644 --- a/0244-Fixup-for-newer-compiler.patch +++ b/0181-Fixup-for-newer-compiler.patch @@ -1,4 +1,4 @@ -From df99134313f5571d8806d9121d04b8c8a5509d98 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 10 May 2018 13:40:19 -0400 Subject: [PATCH] Fixup for newer compiler diff --git a/0245-TPM-Fix-hash_log_extend_event-function-prototype.patch b/0182-TPM-Fix-hash_log_extend_event-function-prototype.patch similarity index 96% rename from 0245-TPM-Fix-hash_log_extend_event-function-prototype.patch rename to 0182-TPM-Fix-hash_log_extend_event-function-prototype.patch index 319b33ed..56cd1691 100644 --- a/0245-TPM-Fix-hash_log_extend_event-function-prototype.patch +++ b/0182-TPM-Fix-hash_log_extend_event-function-prototype.patch @@ -1,4 +1,4 @@ -From a4fc13ebd23cb7a89ea678ed4e52b5142215671d Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Fri, 15 Jun 2018 09:25:00 +0200 Subject: [PATCH] TPM: Fix hash_log_extend_event function prototype diff --git a/0246-TPM-Fix-compiler-warnings.patch b/0183-TPM-Fix-compiler-warnings.patch similarity index 97% rename from 0246-TPM-Fix-compiler-warnings.patch rename to 0183-TPM-Fix-compiler-warnings.patch index c03c1df3..b19d4847 100644 --- a/0246-TPM-Fix-compiler-warnings.patch +++ b/0183-TPM-Fix-compiler-warnings.patch @@ -1,4 +1,4 @@ -From c850916d93293465abc8beb5bdebd0ab70035d88 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Fri, 15 Jun 2018 09:58:50 +0200 Subject: [PATCH] TPM: Fix compiler warnings diff --git a/0247-grub-switch-to-blscfg.in-get-rid-of-a-bunch-of-bashi.patch b/0184-grub-switch-to-blscfg.in-get-rid-of-a-bunch-of-bashi.patch similarity index 98% rename from 0247-grub-switch-to-blscfg.in-get-rid-of-a-bunch-of-bashi.patch rename to 0184-grub-switch-to-blscfg.in-get-rid-of-a-bunch-of-bashi.patch index 1ad27ef8..54c43225 100644 --- a/0247-grub-switch-to-blscfg.in-get-rid-of-a-bunch-of-bashi.patch +++ b/0184-grub-switch-to-blscfg.in-get-rid-of-a-bunch-of-bashi.patch @@ -1,4 +1,4 @@ -From cee0bf1f56c89af640b23432f8b40fcd1f4a2f55 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 22 Jun 2018 14:01:06 -0400 Subject: [PATCH] grub-switch-to-blscfg.in: get rid of a bunch of bashisms diff --git a/0248-grub-switch-to-blscfg.in-Better-boot-prefix-checking.patch b/0185-grub-switch-to-blscfg.in-Better-boot-prefix-checking.patch similarity index 97% rename from 0248-grub-switch-to-blscfg.in-Better-boot-prefix-checking.patch rename to 0185-grub-switch-to-blscfg.in-Better-boot-prefix-checking.patch index d25f902e..8437c686 100644 --- a/0248-grub-switch-to-blscfg.in-Better-boot-prefix-checking.patch +++ b/0185-grub-switch-to-blscfg.in-Better-boot-prefix-checking.patch @@ -1,4 +1,4 @@ -From b3ac18e3265f709b35fe0aa5578c6f4030882a4d Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 22 Jun 2018 14:04:28 -0400 Subject: [PATCH] grub-switch-to-blscfg.in: Better boot prefix checking diff --git a/0249-Use-boot-loader-entries-as-BLS-directory-path-also-o.patch b/0186-Use-boot-loader-entries-as-BLS-directory-path-also-o.patch similarity index 98% rename from 0249-Use-boot-loader-entries-as-BLS-directory-path-also-o.patch rename to 0186-Use-boot-loader-entries-as-BLS-directory-path-also-o.patch index c10f1010..a0fe3665 100644 --- a/0249-Use-boot-loader-entries-as-BLS-directory-path-also-o.patch +++ b/0186-Use-boot-loader-entries-as-BLS-directory-path-also-o.patch @@ -1,4 +1,4 @@ -From fc5abde941409619f8c40b842e35e1820d4327dc Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Mon, 25 Jun 2018 11:45:33 +0200 Subject: [PATCH] Use /boot/loader/entries as BLS directory path also on EFI diff --git a/0250-Use-BLS-fragment-filename-as-menu-entry-id-and-for-c.patch b/0187-Use-BLS-fragment-filename-as-menu-entry-id-and-for-c.patch similarity index 98% rename from 0250-Use-BLS-fragment-filename-as-menu-entry-id-and-for-c.patch rename to 0187-Use-BLS-fragment-filename-as-menu-entry-id-and-for-c.patch index 5c6a5035..12a37153 100644 --- a/0250-Use-BLS-fragment-filename-as-menu-entry-id-and-for-c.patch +++ b/0187-Use-BLS-fragment-filename-as-menu-entry-id-and-for-c.patch @@ -1,4 +1,4 @@ -From cc110d5dfd58a6ac1320f8b7c27b7ff8852c40e6 Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Tue, 26 Jun 2018 14:01:26 +0200 Subject: [PATCH] Use BLS fragment filename as menu entry id and for criteria diff --git a/0251-Fix-grub-switch-to-blscfg-boot-prefix-handling.patch b/0188-Fix-grub-switch-to-blscfg-boot-prefix-handling.patch similarity index 97% rename from 0251-Fix-grub-switch-to-blscfg-boot-prefix-handling.patch rename to 0188-Fix-grub-switch-to-blscfg-boot-prefix-handling.patch index 2d9c91ce..be7d1a3f 100644 --- a/0251-Fix-grub-switch-to-blscfg-boot-prefix-handling.patch +++ b/0188-Fix-grub-switch-to-blscfg-boot-prefix-handling.patch @@ -1,4 +1,4 @@ -From 7065436d1c086d15933f76b7f490bcb5d094c9af Mon Sep 17 00:00:00 2001 +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Mon, 9 Jul 2018 12:19:03 +0200 Subject: [PATCH] Fix grub-switch-to-blscfg boot prefix handling diff --git a/0189-blscfg-remove-unused-typedef.patch b/0189-blscfg-remove-unused-typedef.patch new file mode 100644 index 00000000..33be789e --- /dev/null +++ b/0189-blscfg-remove-unused-typedef.patch @@ -0,0 +1,29 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Will Thompson +Date: Wed, 11 Jul 2018 14:59:52 +0100 +Subject: [PATCH] blscfg: remove unused typedef +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This is unused since ‘Use BLS fragment filename as menu entry id and for +criteria to sort’. + +Signed-off-by: Will Thompson +--- + grub-core/commands/blscfg.c | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c +index 23d15adfadc..243fcda57f9 100644 +--- a/grub-core/commands/blscfg.c ++++ b/grub-core/commands/blscfg.c +@@ -327,8 +327,6 @@ finish: + return ret; + } + +-typedef int (*void_cmp_t)(void *, void *); +- + static int bls_cmp(const void *p0, const void *p1, void *state UNUSED) + { + struct bls_entry * e0 = *(struct bls_entry **)p0; diff --git a/0190-blscfg-don-t-dynamically-allocate-default_blsdir.patch b/0190-blscfg-don-t-dynamically-allocate-default_blsdir.patch new file mode 100644 index 00000000..cb0d7eaa --- /dev/null +++ b/0190-blscfg-don-t-dynamically-allocate-default_blsdir.patch @@ -0,0 +1,45 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Will Thompson +Date: Wed, 11 Jul 2018 15:01:45 +0100 +Subject: [PATCH] blscfg: don't dynamically allocate default_blsdir + +Signed-off-by: Will Thompson +--- + grub-core/commands/blscfg.c | 9 +++------ + 1 file changed, 3 insertions(+), 6 deletions(-) + +diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c +index 243fcda57f9..1d0e6ceaf7d 100644 +--- a/grub-core/commands/blscfg.c ++++ b/grub-core/commands/blscfg.c +@@ -623,7 +623,7 @@ static int find_entry (const char *filename, + grub_file_t f = NULL; + char *grubenv_path = NULL; + grub_envblk_t env = NULL; +- char *default_blsdir = NULL; ++ const char *default_blsdir = NULL; + grub_fs_t blsdir_fs = NULL; + grub_device_t blsdir_dev = NULL; + const char *blsdir = NULL; +@@ -643,10 +643,9 @@ static int find_entry (const char *filename, + + // set a default blsdir + if (info->platform == PLATFORM_EMU) +- default_blsdir = grub_xasprintf ("%s%s", GRUB_BOOT_DEVICE, +- GRUB_BLS_CONFIG_PATH); ++ default_blsdir = GRUB_BOOT_DEVICE GRUB_BLS_CONFIG_PATH; + else +- default_blsdir = grub_xasprintf ("%s", GRUB_BLS_CONFIG_PATH); ++ default_blsdir = GRUB_BLS_CONFIG_PATH; + + grub_env_set ("blsdir", default_blsdir); + grub_dprintf ("blscfg", "default_blsdir: \"%s\"\n", default_blsdir); +@@ -788,8 +787,6 @@ finish: + if (f) + grub_file_close (f); + +- grub_free (default_blsdir); +- + return 0; + } + diff --git a/0191-blscfg-sort-BLS-entries-by-version-field.patch b/0191-blscfg-sort-BLS-entries-by-version-field.patch new file mode 100644 index 00000000..0ad0611d --- /dev/null +++ b/0191-blscfg-sort-BLS-entries-by-version-field.patch @@ -0,0 +1,58 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Will Thompson +Date: Wed, 11 Jul 2018 15:41:09 +0100 +Subject: [PATCH] blscfg: sort BLS entries by 'version' field +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +This partially reverts ‘Use BLS fragment filename as menu entry id and +for criteria to sort’. Sorting by filename only gives the correct order +if the BLS entries are generated by a version of ostree after this patch +https://github.com/ostreedev/ostree/commit/9f48e212a3bf9ed418fb3216e4f834d581bc520e +to use the version (higher is newer) in the filename. Older ostrees, +including all releases at the time of writing, use the index (lower is +newer) in the filename, so sorting by filename produces the reverse +order. + +Sorting by 'version' field matches libostree's own +compare_boot_loader_configs(), so I think it's more correct than relying +on the filename, particularly since we've already gone to the trouble of +parsing all the fields in the file. + +Signed-off-by: Will Thompson +--- + grub-core/commands/blscfg.c | 16 ++++++++++++++++ + 1 file changed, 16 insertions(+) + +diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c +index 1d0e6ceaf7d..84714f0e534 100644 +--- a/grub-core/commands/blscfg.c ++++ b/grub-core/commands/blscfg.c +@@ -327,10 +327,26 @@ finish: + return ret; + } + ++/* return 1: p0 is newer than p1 */ ++/* 0: p0 and p1 are the same version */ ++/* -1: p1 is newer than p0 */ + static int bls_cmp(const void *p0, const void *p1, void *state UNUSED) + { + struct bls_entry * e0 = *(struct bls_entry **)p0; + struct bls_entry * e1 = *(struct bls_entry **)p1; ++ const char *v0, *v1; ++ int r; ++ ++ v0 = bls_get_val(e0, "version", NULL); ++ v1 = bls_get_val(e1, "version", NULL); ++ ++ if (v0 && !v1) ++ return -1; ++ if (!v0 && v1) ++ return 1; ++ ++ if ((r = vercmp(v0, v1)) != 0) ++ return r; + + return vercmp(e0->filename, e1->filename); + } diff --git a/0192-blscfg-remove-NULL-guards-around-grub_free.patch b/0192-blscfg-remove-NULL-guards-around-grub_free.patch new file mode 100644 index 00000000..2624b8ad --- /dev/null +++ b/0192-blscfg-remove-NULL-guards-around-grub_free.patch @@ -0,0 +1,48 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Will Thompson +Date: Thu, 12 Jul 2018 10:14:43 +0100 +Subject: [PATCH] blscfg: remove NULL guards around grub_free() + +The internal implementation of grub_free() is NULL-safe. In emu builds, +it just delegates to the host's free(), which is specified by ANSI C to +be NULL-safe. + +Signed-off-by: Will Thompson +--- + grub-core/commands/blscfg.c | 23 ++++++----------------- + 1 file changed, 6 insertions(+), 17 deletions(-) + +diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c +index 84714f0e534..f9a5b2d5afa 100644 +--- a/grub-core/commands/blscfg.c ++++ b/grub-core/commands/blscfg.c +@@ -600,23 +600,12 @@ static void create_entry (struct bls_entry *entry, const char *cfgfile) + grub_normal_add_menu_entry (argc, argv, classes, id, users, hotkey, NULL, src, 0); + + finish: +- if (initrd) +- grub_free (initrd); +- +- if (initrds) +- grub_free (initrds); +- +- if (classes) +- grub_free (classes); +- +- if (args) +- grub_free (args); +- +- if (argv) +- grub_free (argv); +- +- if (src) +- grub_free (src); ++ grub_free (initrd); ++ grub_free (initrds); ++ grub_free (classes); ++ grub_free (args); ++ grub_free (argv); ++ grub_free (src); + } + + struct find_entry_info { diff --git a/0193-blscfg-fix-filename-in-no-linux-key-error.patch b/0193-blscfg-fix-filename-in-no-linux-key-error.patch new file mode 100644 index 00000000..d9b17f3a --- /dev/null +++ b/0193-blscfg-fix-filename-in-no-linux-key-error.patch @@ -0,0 +1,47 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Will Thompson +Date: Thu, 12 Jul 2018 10:38:27 +0100 +Subject: [PATCH] blscfg: fix filename in "no 'linux' key" error + +In find_entry(), 'filename' is either NULL or a directory in the ESP. +But previously it was passed to create_entry(), which uses it in an +error message as if it's the filename of the BLS entry in question. + +Since bls_entry now has a 'filename' field, just use that. + +Signed-off-by: Will Thompson +--- + grub-core/commands/blscfg.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c +index f9a5b2d5afa..077ca5dfbe6 100644 +--- a/grub-core/commands/blscfg.c ++++ b/grub-core/commands/blscfg.c +@@ -514,7 +514,7 @@ static char **bls_make_list (struct bls_entry *entry, const char *key, int *num) + return list; + } + +-static void create_entry (struct bls_entry *entry, const char *cfgfile) ++static void create_entry (struct bls_entry *entry) + { + int argc = 0; + const char **argv = NULL; +@@ -539,7 +539,7 @@ static void create_entry (struct bls_entry *entry, const char *cfgfile) + clinux = bls_get_val (entry, "linux", NULL); + if (!clinux) + { +- grub_dprintf ("blscfg", "Skipping file %s with no 'linux' key.\n", cfgfile); ++ grub_dprintf ("blscfg", "Skipping file %s with no 'linux' key.\n", entry->filename); + goto finish; + } + +@@ -753,7 +753,7 @@ static int find_entry (const char *filename, + + grub_dprintf ("blscfg", "%s Creating %d entries from bls\n", __func__, nentries); + for (r = nentries - 1; r >= 0; r--) +- create_entry(entries[r], filename); ++ create_entry(entries[r]); + + for (r = 0; r < nentries; r++) + bls_free_entry (entries[r]); diff --git a/0194-blscfg-don-t-leak-bls_entry.filename.patch b/0194-blscfg-don-t-leak-bls_entry.filename.patch new file mode 100644 index 00000000..248663ba --- /dev/null +++ b/0194-blscfg-don-t-leak-bls_entry.filename.patch @@ -0,0 +1,27 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Will Thompson +Date: Thu, 12 Jul 2018 10:59:10 +0100 +Subject: [PATCH] blscfg: don't leak bls_entry.filename + +Zeroing the bls_entry struct before calling grub_free() on one of its +fields is not going to work too well. + +Signed-off-by: Will Thompson +--- + grub-core/commands/blscfg.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c +index 077ca5dfbe6..3339d62d541 100644 +--- a/grub-core/commands/blscfg.c ++++ b/grub-core/commands/blscfg.c +@@ -166,8 +166,8 @@ static void bls_free_entry(struct bls_entry *entry) + } + + grub_free (entry->keyvals); +- grub_memset (entry, 0, sizeof (*entry)); + grub_free (entry->filename); ++ grub_memset (entry, 0, sizeof (*entry)); + grub_free (entry); + } + diff --git a/0195-blscfg-fix-compilation-on-EFI-and-EMU.patch b/0195-blscfg-fix-compilation-on-EFI-and-EMU.patch new file mode 100644 index 00000000..d5d82d00 --- /dev/null +++ b/0195-blscfg-fix-compilation-on-EFI-and-EMU.patch @@ -0,0 +1,34 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Will Thompson +Date: Thu, 12 Jul 2018 19:00:42 +0100 +Subject: [PATCH] blscfg: fix compilation on !EFI and !EMU +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Neither GRUB_MACHINE_EFI nor GRUB_MACHINE_EMU are defined when compiling +for (eg) i386-pc. In this case, #elif GRUB_MACHINE_EMU is an error: + + commands/blscfg.c: In function ‘grub_cmd_blscfg’: + commands/blscfg.c:835:7: error: "GRUB_MACHINE_EMU" is not defined [-Werror=undef] + #elif GRUB_MACHINE_EMU + ^~~~~~~~~~~~~~~~ + +Signed-off-by: Will Thompson +--- + grub-core/commands/blscfg.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c +index 3339d62d541..f4283708e21 100644 +--- a/grub-core/commands/blscfg.c ++++ b/grub-core/commands/blscfg.c +@@ -843,7 +843,7 @@ grub_cmd_blscfg (grub_extcmd_context_t ctxt UNUSED, + info.platform = PLATFORM_EFI; + grub_dprintf ("blscfg", "scanning /EFI/\n"); + r = fs->dir (dev, "/EFI/", find_entry, &info); +-#elif GRUB_MACHINE_EMU ++#elif defined(GRUB_MACHINE_EMU) + info.platform = PLATFORM_EMU; + grub_dprintf ("blscfg", "scanning %s%s\n", GRUB_BOOT_DEVICE, + GRUB_BLS_CONFIG_PATH); diff --git a/0196-Add-loadenv-to-blscfg-and-loadenv-source-file-list.patch b/0196-Add-loadenv-to-blscfg-and-loadenv-source-file-list.patch new file mode 100644 index 00000000..9d50d46e --- /dev/null +++ b/0196-Add-loadenv-to-blscfg-and-loadenv-source-file-list.patch @@ -0,0 +1,39 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Will Thompson +Date: Fri, 13 Jul 2018 05:51:54 +0100 +Subject: [PATCH] Add loadenv to blscfg and loadenv source file list +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Without this, `make distcheck` fails because loadenv.h is not included +in the source tarball. + +This broke in ‘Add blscfg command support to parse BootLoaderSpec config +fragments’. + +Signed-off-by: Will Thompson +--- + grub-core/Makefile.core.def | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def +index 51f07279d83..4538c18fa3c 100644 +--- a/grub-core/Makefile.core.def ++++ b/grub-core/Makefile.core.def +@@ -782,6 +782,7 @@ module = { + module = { + name = blscfg; + common = commands/blscfg.c; ++ common = commands/loadenv.h; + enable = efi; + enable = i386_pc; + enable = emu; +@@ -953,6 +954,7 @@ module = { + module = { + name = loadenv; + common = commands/loadenv.c; ++ common = commands/loadenv.h; + common = lib/envblk.c; + }; + diff --git a/0197-blscfg-Get-rid-of-the-linuxefi-linux16-linux-distinc.patch b/0197-blscfg-Get-rid-of-the-linuxefi-linux16-linux-distinc.patch new file mode 100644 index 00000000..abfb80e0 --- /dev/null +++ b/0197-blscfg-Get-rid-of-the-linuxefi-linux16-linux-distinc.patch @@ -0,0 +1,56 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Mon, 16 Jul 2018 11:00:50 -0400 +Subject: [PATCH] blscfg: Get rid of the linuxefi/linux16/linux distinction + +Signed-off-by: Peter Jones +--- + grub-core/commands/blscfg.c | 14 +++----------- + 1 file changed, 3 insertions(+), 11 deletions(-) + +diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c +index f4283708e21..6f9f8e773c5 100644 +--- a/grub-core/commands/blscfg.c ++++ b/grub-core/commands/blscfg.c +@@ -43,14 +43,6 @@ GRUB_MOD_LICENSE ("GPLv3+"); + #define GRUB_BOOT_DEVICE "($root)" + #endif + +-#ifdef GRUB_MACHINE_EFI +-#define GRUB_LINUX_CMD "linuxefi" +-#define GRUB_INITRD_CMD "initrdefi" +-#else +-#define GRUB_LINUX_CMD "linux" +-#define GRUB_INITRD_CMD "initrd" +-#endif +- + enum + { + PLATFORM_EFI, +@@ -563,7 +555,7 @@ static void create_entry (struct bls_entry *entry) + title, id); + if (initrds) + { +- int initrd_size = sizeof (GRUB_INITRD_CMD); ++ int initrd_size = sizeof ("initrd"); + char *tmp; + + for (i = 0; initrds != NULL && initrds[i] != NULL; i++) +@@ -579,7 +571,7 @@ static void create_entry (struct bls_entry *entry) + } + + +- tmp = grub_stpcpy(initrd, GRUB_INITRD_CMD); ++ tmp = grub_stpcpy(initrd, "initrd "); + for (i = 0; initrds != NULL && initrds[i] != NULL; i++) + { + grub_dprintf ("blscfg", "adding initrd %s\n", initrds[i]); +@@ -592,7 +584,7 @@ static void create_entry (struct bls_entry *entry) + src = grub_xasprintf ("load_video\n" + "set gfx_payload=keep\n" + "insmod gzio\n" +- GRUB_LINUX_CMD " %s%s%s%s\n" ++ "linux %s%s%s%s\n" + "%s", + GRUB_BOOT_DEVICE, clinux, options ? " " : "", options ? options : "", + initrd ? initrd : ""); diff --git a/0198-grub-switch-to-blscfg-Only-fix-boot-prefix-for-non-g.patch b/0198-grub-switch-to-blscfg-Only-fix-boot-prefix-for-non-g.patch new file mode 100644 index 00000000..9b996bc8 --- /dev/null +++ b/0198-grub-switch-to-blscfg-Only-fix-boot-prefix-for-non-g.patch @@ -0,0 +1,48 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Javier Martinez Canillas +Date: Wed, 18 Jul 2018 08:07:37 +0200 +Subject: [PATCH] grub-switch-to-blscfg: Only fix boot prefix for non-generated + BLS files + +The BLS files are either copied from /lib/modules/$kernelver/bls.conf or +generated if this file doesn't exist. The shipped bls.conf default path +for the kernel and initramfs is relative to the boot partition. + +But in some setups /boot may not be a mount point so in that case the +boot prefix has to be added to the BLS. But we already provide this +prefix for generated BLS files so attempting to add a boot prefix will +lead to a path that contains the boot prefix twice (i.e: /boot/boot). + +Reported-by: Hans de Goede +Signed-off-by: Javier Martinez Canillas +--- + util/grub-switch-to-blscfg.in | 9 ++++----- + 1 file changed, 4 insertions(+), 5 deletions(-) + +diff --git a/util/grub-switch-to-blscfg.in b/util/grub-switch-to-blscfg.in +index 40612e00686..9cf64f8e725 100644 +--- a/util/grub-switch-to-blscfg.in ++++ b/util/grub-switch-to-blscfg.in +@@ -236,6 +236,10 @@ for kernelver in $(cd /lib/modules/ ; ls -1) "" ; do + + if [ -f "${kernel_dir}/bls.conf" ] ; then + cp -af "${kernel_dir}/bls.conf" "${bls_target}" ++ if [ -n "${bootprefix}" ]; then ++ sed -i -e "s,^\(linux[^ \t]*[ \t]\+\).*,\1${bootprefix}${linux},g" "${bls_target}" ++ sed -i -e "/^initrd/ s,\([ \t]\+\)\([^ \t]\+\),\1${bootprefix}\2,g" "${bls_target}" ++ fi + else + mkbls "${kernelver}" \ + "$(date -u +%Y%m%d%H%M%S -d "$(stat -c '%y' "${kernel_dir}")")" \ +@@ -243,11 +247,6 @@ for kernelver in $(cd /lib/modules/ ; ls -1) "" ; do + >"${bls_target}" + fi + +- if [ -n "${bootprefix}" ]; then +- sed -i -e "s,^\(linux[^ \t]*[ \t]\+\).*,\1${bootprefix}${linux},g" "${bls_target}" +- sed -i -e "/^initrd/ s,\([ \t]\+\)\([^ \t]\+\),\1${bootprefix}\2,g" "${bls_target}" +- fi +- + if [ "x$GRUB_LINUX_MAKE_DEBUG" = "xtrue" ]; then + arch="$(uname -m)" + bls_debug="$(echo ${bls_target} | sed -e "s/\.${arch}/-debug.${arch}/")" diff --git a/0199-blscfg-Expand-the-BLS-options-field-instead-of-showi.patch b/0199-blscfg-Expand-the-BLS-options-field-instead-of-showi.patch new file mode 100644 index 00000000..e897a5ce --- /dev/null +++ b/0199-blscfg-Expand-the-BLS-options-field-instead-of-showi.patch @@ -0,0 +1,130 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Javier Martinez Canillas +Date: Wed, 18 Jul 2018 08:08:02 +0200 +Subject: [PATCH] blscfg: Expand the BLS options field instead of showing its + variables + +The values of the BLS fragment fields can either be string literals or +grub2 environment variables, the latter will be expanded by grub2 when +the boot entry is selected. + +But from a usability point of view, is much more convenient if the BLS +parse code expand any variables that are present in the options field. + +That will allow users to select an entry in the menu by pressing the e +key and edit the kernel command line parameters. So for example instead +of showing the following: + +kernel /boot/vmlinuz-4.17.0 $kernelopts + +It would show something like the following: + +kernel /boot/vmlinuz-4.17.0 root=UUID=cec677c9-c890-4103-b94a-bcc191642935 + +Suggested-by: Hans de Goede +Signed-off-by: Javier Martinez Canillas +--- + grub-core/commands/blscfg.c | 69 ++++++++++++++++++++++++++++++++++++++++++++- + 1 file changed, 68 insertions(+), 1 deletion(-) + +diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c +index 6f9f8e773c5..6d2f9dc1015 100644 +--- a/grub-core/commands/blscfg.c ++++ b/grub-core/commands/blscfg.c +@@ -32,6 +32,8 @@ + #include + #include + ++#include ++ + GRUB_MOD_LICENSE ("GPLv3+"); + + #include "loadenv.h" +@@ -506,6 +508,70 @@ static char **bls_make_list (struct bls_entry *entry, const char *key, int *num) + return list; + } + ++static char *field_append(bool is_var, char *buffer, char *start, char *end) ++{ ++ char *temp = grub_strndup(start, end - start + 1); ++ const char *field = temp; ++ ++ if (is_var) { ++ field = grub_env_get (temp); ++ if (!field) ++ return buffer; ++ } ++ ++ if (!buffer) { ++ buffer = grub_strdup(field); ++ if (!buffer) ++ return NULL; ++ } else { ++ buffer = grub_realloc (buffer, grub_strlen(buffer) + grub_strlen(field)); ++ if (!buffer) ++ return NULL; ++ ++ grub_stpcpy (buffer + grub_strlen(buffer), field); ++ } ++ ++ return buffer; ++} ++ ++static char *expand_val(char *value) ++{ ++ char *buffer = NULL; ++ char *start = value; ++ char *end = value; ++ bool is_var = false; ++ ++ while (*value) { ++ if (*value == '$') { ++ if (start != end) { ++ buffer = field_append(is_var, buffer, start, end); ++ if (!buffer) ++ return NULL; ++ } ++ ++ is_var = true; ++ start = value + 1; ++ } else if (is_var) { ++ if (!grub_isalnum(*value) && *value != '_') { ++ buffer = field_append(is_var, buffer, start, end); ++ is_var = false; ++ start = value; ++ } ++ } ++ ++ end = value; ++ value++; ++ } ++ ++ if (start != end) { ++ buffer = field_append(is_var, buffer, start, end); ++ if (!buffer) ++ return NULL; ++ } ++ ++ return buffer; ++} ++ + static void create_entry (struct bls_entry *entry) + { + int argc = 0; +@@ -536,7 +602,7 @@ static void create_entry (struct bls_entry *entry) + } + + title = bls_get_val (entry, "title", NULL); +- options = bls_get_val (entry, "options", NULL); ++ options = expand_val (bls_get_val (entry, "options", NULL)); + initrds = bls_make_list (entry, "initrd", NULL); + + hotkey = bls_get_val (entry, "grub_hotkey", NULL); +@@ -594,6 +660,7 @@ static void create_entry (struct bls_entry *entry) + finish: + grub_free (initrd); + grub_free (initrds); ++ grub_free (options); + grub_free (classes); + grub_free (args); + grub_free (argv); diff --git a/0200-blscfg-Fallback-to-search-BLS-snippets-in-boot-loade.patch b/0200-blscfg-Fallback-to-search-BLS-snippets-in-boot-loade.patch new file mode 100644 index 00000000..73531893 --- /dev/null +++ b/0200-blscfg-Fallback-to-search-BLS-snippets-in-boot-loade.patch @@ -0,0 +1,59 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Javier Martinez Canillas +Date: Wed, 18 Jul 2018 08:08:06 +0200 +Subject: [PATCH] blscfg: Fallback to search BLS snippets in + /boot/loader/entries + +The default path to search the BLS snippets is /loader/entries, this is +only a correct assumption if $root ($root) is a boot partition but it's +not true if /boot isn't a mount point. + +A user can set a blsdir grub environment variable to choose a different +path, but instead of failing when /boot is a directory inside the root +partition fallback to search the BLS in /boot/loader/entries to cover +that case as well. + +Reported-by: Hans de Goede +Signed-off-by: Javier Martinez Canillas +--- + grub-core/commands/blscfg.c | 13 ++++++++++++- + 1 file changed, 12 insertions(+), 1 deletion(-) + +diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c +index 6d2f9dc1015..dda1bfcc658 100644 +--- a/grub-core/commands/blscfg.c ++++ b/grub-core/commands/blscfg.c +@@ -692,6 +692,7 @@ static int find_entry (const char *filename, + grub_device_t blsdir_dev = NULL; + const char *blsdir = NULL; + char *saved_env_buf = NULL; ++ int fallback = 0; + int r = 0; + const char *devid = grub_env_get ("boot"); + +@@ -797,7 +798,9 @@ static int find_entry (const char *filename, + } + read_entry_info.dirname = blsdir; + +- r = blsdir_fs->dir (blsdir_dev, blsdir, read_entry, &read_entry_info); ++read_fallback: ++ r = blsdir_fs->dir (blsdir_dev, read_entry_info.dirname, read_entry, ++ &read_entry_info); + if (r != 0) { + grub_dprintf ("blscfg", "read_entry returned error\n"); + grub_err_t e; +@@ -807,6 +810,14 @@ static int find_entry (const char *filename, + } while (e); + } + ++ if (!nentries && !fallback && info->platform != PLATFORM_EMU) { ++ read_entry_info.dirname = "/boot" GRUB_BLS_CONFIG_PATH; ++ grub_dprintf ("blscfg", "Entries weren't found in %s, fallback to %s\n", ++ blsdir, read_entry_info.dirname); ++ fallback = 1; ++ goto read_fallback; ++ } ++ + grub_dprintf ("blscfg", "Sorting %d entries\n", nentries); + grub_qsort(&entries[0], nentries, sizeof (struct bls_entry *), bls_cmp, NULL); + diff --git a/0201-blscfg-Don-t-attempt-to-sort-by-version-if-not-prese.patch b/0201-blscfg-Don-t-attempt-to-sort-by-version-if-not-prese.patch new file mode 100644 index 00000000..01d4a25d --- /dev/null +++ b/0201-blscfg-Don-t-attempt-to-sort-by-version-if-not-prese.patch @@ -0,0 +1,82 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Javier Martinez Canillas +Date: Wed, 18 Jul 2018 00:58:44 +0200 +Subject: [PATCH] blscfg: Don't attempt to sort by version if not present in + all BLS files + +Commit a16805341cc ("blscfg: sort BLS entries by 'version' field") made to +sort by the version field take precedence over the BLS fragment file name. + +But it also uses the lack of the version field in one BLS fragment as sort +criterion, which means that entries could be wrongly sorted if one of them +doesn't have a version field and others do. + +So only sort by version if all the BLS entries have this field defined, +otherwise just fallback to sorting by the BLS file name. + +Reported-by: Hans de Goede +Suggested-by: Will Thompson +Signed-off-by: Javier Martinez Canillas +--- + grub-core/commands/blscfg.c | 27 ++++++++++++++++----------- + 1 file changed, 16 insertions(+), 11 deletions(-) + +diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c +index dda1bfcc658..8a61ac84dcf 100644 +--- a/grub-core/commands/blscfg.c ++++ b/grub-core/commands/blscfg.c +@@ -324,23 +324,21 @@ finish: + /* return 1: p0 is newer than p1 */ + /* 0: p0 and p1 are the same version */ + /* -1: p1 is newer than p0 */ +-static int bls_cmp(const void *p0, const void *p1, void *state UNUSED) ++static int bls_cmp(const void *p0, const void *p1, void *state) + { + struct bls_entry * e0 = *(struct bls_entry **)p0; + struct bls_entry * e1 = *(struct bls_entry **)p1; ++ bool use_version = *(bool *)state; + const char *v0, *v1; + int r; + +- v0 = bls_get_val(e0, "version", NULL); +- v1 = bls_get_val(e1, "version", NULL); ++ if (use_version) { ++ v0 = bls_get_val(e0, "version", NULL); ++ v1 = bls_get_val(e1, "version", NULL); + +- if (v0 && !v1) +- return -1; +- if (!v0 && v1) +- return 1; +- +- if ((r = vercmp(v0, v1)) != 0) +- return r; ++ if ((r = vercmp(v0, v1)) != 0) ++ return r; ++ } + + return vercmp(e0->filename, e1->filename); + } +@@ -692,6 +690,7 @@ static int find_entry (const char *filename, + grub_device_t blsdir_dev = NULL; + const char *blsdir = NULL; + char *saved_env_buf = NULL; ++ bool use_version = true; + int fallback = 0; + int r = 0; + const char *devid = grub_env_get ("boot"); +@@ -819,7 +818,13 @@ read_fallback: + } + + grub_dprintf ("blscfg", "Sorting %d entries\n", nentries); +- grub_qsort(&entries[0], nentries, sizeof (struct bls_entry *), bls_cmp, NULL); ++ ++ for (r = 0; r < nentries && use_version; r++) { ++ if (!bls_get_val(entries[r], "version", NULL)) ++ use_version = false; ++ } ++ ++ grub_qsort(&entries[0], nentries, sizeof (struct bls_entry *), bls_cmp, &use_version); + + grub_dprintf ("blscfg", "%s Creating %d entries from bls\n", __func__, nentries); + for (r = nentries - 1; r >= 0; r--) diff --git a/0202-blscfg-remove-logic-to-read-the-grubenv-file-and-set.patch b/0202-blscfg-remove-logic-to-read-the-grubenv-file-and-set.patch new file mode 100644 index 00000000..8cd0319e --- /dev/null +++ b/0202-blscfg-remove-logic-to-read-the-grubenv-file-and-set.patch @@ -0,0 +1,292 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Javier Martinez Canillas +Date: Sat, 28 Jul 2018 23:57:15 +0200 +Subject: [PATCH] blscfg: remove logic to read the grubenv file and set the + blsdir variable + +The BLS grub2 support has a blsdir environment variable that can be set by +users to override the BLS fragment default path. + +Currently the BLS parsing code reads the grubenv file and sets the blsdir +variable, but it shouldn't be the responsability of the blscfg module to +do this and instead just use it if the variable has been set (either from +the grub.cfg file or the grub shell). + +This makes the find_entry() function much simpler and consistent for EFI, +BIOS and grub-emu. It also fixes a bug that caused having menu entries to +be repeated for each sub-directory that existed under the /EFI directory. + +So for example having three different operating systems sharing the ESP, +would lead to the boot menu entries being repeated three times for grub. + +Signed-off-by: Javier Martinez Canillas +--- + grub-core/commands/blscfg.c | 179 ++++---------------------------------------- + 1 file changed, 16 insertions(+), 163 deletions(-) + +diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c +index 8a61ac84dcf..e649f6cd11b 100644 +--- a/grub-core/commands/blscfg.c ++++ b/grub-core/commands/blscfg.c +@@ -45,13 +45,6 @@ GRUB_MOD_LICENSE ("GPLv3+"); + #define GRUB_BOOT_DEVICE "($root)" + #endif + +-enum +- { +- PLATFORM_EFI, +- PLATFORM_EMU, +- PLATFORM_BIOS, +- }; +- + #define grub_free(x) ({grub_dprintf("blscfg", "%s freeing %p\n", __func__, x); grub_free(x); }) + + struct keyval +@@ -666,137 +659,37 @@ finish: + } + + struct find_entry_info { ++ const char *devid; + grub_device_t dev; + grub_fs_t fs; + int platform; + }; + + /* +- * filename: if the directory is /EFI/something/ , filename is "something" +- * info: unused +- * data: the filesystem object the file is on. ++ * info: the filesystem object the file is on. + */ +-static int find_entry (const char *filename, +- const struct grub_dirhook_info *dirhook_info UNUSED, +- void *data) ++static int find_entry (struct find_entry_info *info) + { +- struct find_entry_info *info = (struct find_entry_info *)data; + struct read_entry_info read_entry_info; +- grub_file_t f = NULL; +- char *grubenv_path = NULL; +- grub_envblk_t env = NULL; +- const char *default_blsdir = NULL; + grub_fs_t blsdir_fs = NULL; + grub_device_t blsdir_dev = NULL; + const char *blsdir = NULL; +- char *saved_env_buf = NULL; + bool use_version = true; + int fallback = 0; + int r = 0; +- const char *devid = grub_env_get ("boot"); +- +- grub_dprintf("blscfg", "%s got here\n", __func__); +- if (filename && (!grub_strcmp (filename, ".") || +- !grub_strcmp (filename, ".."))) +- return 0; +- +- if (info->platform == PLATFORM_EFI && !grub_strcasecmp (filename, "boot")) +- return 0; +- +- saved_env_buf = grub_malloc (512); +- +- // set a default blsdir +- if (info->platform == PLATFORM_EMU) +- default_blsdir = GRUB_BOOT_DEVICE GRUB_BLS_CONFIG_PATH; +- else +- default_blsdir = GRUB_BLS_CONFIG_PATH; +- +- grub_env_set ("blsdir", default_blsdir); +- grub_dprintf ("blscfg", "default_blsdir: \"%s\"\n", default_blsdir); +- +- /* +- * try to load a grubenv from /EFI/wherever/grubenv +- */ +- if (info->platform == PLATFORM_EFI) +- grubenv_path = grub_xasprintf ("(%s)/EFI/%s/grubenv", devid, filename); +- else +- grubenv_path = grub_xasprintf ("(%s)/grub2/grubenv", devid); +- +- grub_dprintf ("blscfg", "looking for \"%s\"\n", grubenv_path); +- f = grub_file_open (grubenv_path); +- +- grub_dprintf ("blscfg", "%s it\n", f ? "found" : "did not find"); +- grub_free (grubenv_path); +- if (f) +- { +- grub_off_t sz; +- +- grub_dprintf ("blscfg", "getting size\n"); +- sz = grub_file_size (f); +- if (sz == GRUB_FILE_SIZE_UNKNOWN || sz > 1024*1024) +- goto finish; +- +- grub_dprintf ("blscfg", "reading env\n"); +- env = read_envblk_file (f); +- if (!env) +- goto finish; +- grub_dprintf ("blscfg", "read env file\n"); +- +- grub_memset (saved_env_buf, '#', 512); +- grub_memcpy (saved_env_buf, GRUB_ENVBLK_SIGNATURE, +- sizeof (GRUB_ENVBLK_SIGNATURE)); +- grub_dprintf ("blscfg", "saving env\n"); +- saved_env = grub_envblk_open (saved_env_buf, 512); +- if (!saved_env) +- goto finish; +- +- // save everything listed in "env" with values from our existing grub env +- grub_envblk_iterate (env, NULL, save_var); +- // set everything from our loaded grubenv into the real grub env +- grub_envblk_iterate (env, NULL, set_var); +- } +- else +- { +- grub_err_t e; +- grub_dprintf ("blscfg", "no such file\n"); +- do +- { +- e = grub_error_pop(); +- } while (e); +- +- } + + blsdir = grub_env_get ("blsdir"); + if (!blsdir) +- goto finish; ++ blsdir = GRUB_BLS_CONFIG_PATH; + +- grub_dprintf ("blscfg", "blsdir: \"%s\"\n", blsdir); +- blsdir = grub_strdup (blsdir); +- +- if (!blsdir) +- goto finish; +- +- grub_dprintf ("blscfg", "blsdir: \"%s\"\n", blsdir); +- if (info->platform == PLATFORM_EFI) { +- read_entry_info.devid = grub_env_get ("root"); +- if (!read_entry_info.devid) +- goto finish; +- +- blsdir_dev = grub_device_open (read_entry_info.devid); +- if (!blsdir_dev) +- goto finish; +- +- blsdir_fs = grub_fs_probe (blsdir_dev); +- if (!blsdir_fs) +- goto finish; +- +- } else { +- read_entry_info.devid = devid; +- blsdir_dev = info->dev; +- blsdir_fs = info->fs; +- } + read_entry_info.dirname = blsdir; + ++ grub_dprintf ("blscfg", "scanning blsdir: %s\n", GRUB_BLS_CONFIG_PATH); ++ ++ blsdir_dev = info->dev; ++ blsdir_fs = info->fs; ++ read_entry_info.devid = info->devid; ++ + read_fallback: + r = blsdir_fs->dir (blsdir_dev, read_entry_info.dirname, read_entry, + &read_entry_info); +@@ -809,7 +702,7 @@ read_fallback: + } while (e); + } + +- if (!nentries && !fallback && info->platform != PLATFORM_EMU) { ++ if (!nentries && !fallback) { + read_entry_info.dirname = "/boot" GRUB_BLS_CONFIG_PATH; + grub_dprintf ("blscfg", "Entries weren't found in %s, fallback to %s\n", + blsdir, read_entry_info.dirname); +@@ -832,41 +725,12 @@ read_fallback: + + for (r = 0; r < nentries; r++) + bls_free_entry (entries[r]); +-finish: +- if (info->platform == PLATFORM_EFI && blsdir_dev) +- grub_device_close (blsdir_dev); + + nentries = 0; + + grub_free (entries); + entries = NULL; + +- grub_free ((char *)blsdir); +- +- grub_env_unset ("blsdir"); +- +- if (saved_env) +- { +- // remove everything from the real environment that's defined in env +- grub_envblk_iterate (env, NULL, unset_var); +- +- // re-set the things from our original environment +- grub_envblk_iterate (saved_env, NULL, set_var); +- grub_envblk_close (saved_env); +- saved_env = NULL; +- } +- else if (saved_env_buf) +- { +- // if we have a saved environment, grub_envblk_close() freed this. +- grub_free (saved_env_buf); +- } +- +- if (env) +- grub_envblk_close (env); +- +- if (f) +- grub_file_close (f); +- + return 0; + } + +@@ -883,7 +747,6 @@ grub_cmd_blscfg (grub_extcmd_context_t ctxt UNUSED, + { + .dev = NULL, + .fs = NULL, +- .platform = PLATFORM_BIOS, + }; + + +@@ -891,13 +754,14 @@ grub_cmd_blscfg (grub_extcmd_context_t ctxt UNUSED, + + #ifdef GRUB_MACHINE_EMU + devid = "host"; +- grub_env_set ("boot", devid); ++#elif defined(GRUB_MACHINE_EFI) ++ devid = grub_env_get ("root"); + #else + devid = grub_env_get ("boot"); ++#endif + if (!devid) + return grub_error (GRUB_ERR_FILE_NOT_FOUND, + N_("variable `%s' isn't set"), "boot"); +-#endif + + grub_dprintf ("blscfg", "opening %s\n", devid); + dev = grub_device_open (devid); +@@ -912,21 +776,10 @@ grub_cmd_blscfg (grub_extcmd_context_t ctxt UNUSED, + goto finish; + } + ++ info.devid = devid; + info.dev = dev; + info.fs = fs; +-#ifdef GRUB_MACHINE_EFI +- info.platform = PLATFORM_EFI; +- grub_dprintf ("blscfg", "scanning /EFI/\n"); +- r = fs->dir (dev, "/EFI/", find_entry, &info); +-#elif defined(GRUB_MACHINE_EMU) +- info.platform = PLATFORM_EMU; +- grub_dprintf ("blscfg", "scanning %s%s\n", GRUB_BOOT_DEVICE, +- GRUB_BLS_CONFIG_PATH); +- find_entry(NULL, NULL, &info); +-#else +- grub_dprintf ("blscfg", "scanning %s\n", GRUB_BLS_CONFIG_PATH); +- find_entry(NULL, NULL, &info); +-#endif ++ find_entry(&info); + + finish: + if (dev) diff --git a/0203-Put-our-bls_import-compat-command-in-this-tree-as-we.patch b/0203-Put-our-bls_import-compat-command-in-this-tree-as-we.patch new file mode 100644 index 00000000..206f87d1 --- /dev/null +++ b/0203-Put-our-bls_import-compat-command-in-this-tree-as-we.patch @@ -0,0 +1,39 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Tue, 31 Jul 2018 12:39:05 -0400 +Subject: [PATCH] Put our bls_import compat command in this tree as well. + +Signed-off-by: Peter Jones +--- + grub-core/commands/blscfg.c | 8 ++++++++ + 1 file changed, 8 insertions(+) + +diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c +index e649f6cd11b..bdb1c5a95aa 100644 +--- a/grub-core/commands/blscfg.c ++++ b/grub-core/commands/blscfg.c +@@ -789,6 +789,7 @@ finish: + } + + static grub_extcmd_t cmd; ++static grub_extcmd_t oldcmd; + + GRUB_MOD_INIT(blscfg) + { +@@ -799,9 +800,16 @@ GRUB_MOD_INIT(blscfg) + NULL, + N_("Import Boot Loader Specification snippets."), + NULL); ++ oldcmd = grub_register_extcmd ("bls_import", ++ grub_cmd_blscfg, ++ 0, ++ NULL, ++ N_("Import Boot Loader Specification snippets."), ++ NULL); + } + + GRUB_MOD_FINI(blscfg) + { + grub_unregister_extcmd (cmd); ++ grub_unregister_extcmd (oldcmd); + } diff --git a/0204-Fix-an-8-year-old-typo.patch b/0204-Fix-an-8-year-old-typo.patch new file mode 100644 index 00000000..43d5e99a --- /dev/null +++ b/0204-Fix-an-8-year-old-typo.patch @@ -0,0 +1,23 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Thu, 26 Jul 2018 14:54:44 -0400 +Subject: [PATCH] Fix an 8 year old typo. + +Signed-off-by: Peter Jones +--- + configure.ac | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/configure.ac b/configure.ac +index 498741dfeba..4b7244d557d 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -306,7 +306,7 @@ fi + + AC_SUBST(bootdirname) + AC_DEFINE_UNQUOTED(GRUB_BOOT_DIR_NAME, "$bootdirname", +- [Default boot directory name]") ++ [Default boot directory name]) + + AC_ARG_WITH([grubdir], + AS_HELP_STRING([--with-grubdir=DIR], diff --git a/grub.patches b/grub.patches index e2fcc7a7..05417001 100644 --- a/grub.patches +++ b/grub.patches @@ -1,251 +1,204 @@ -Patch0001: 0001-Bump-version-to-2.03.patch -Patch0002: 0002-Remove-bashisms-from-tests.patch -Patch0003: 0003-fs-tester-make-sh-compatible.patch -Patch0004: 0004-support-busybox-date.patch -Patch0005: 0005-Don-t-retrieve-fstime-when-it-s-not-useful.patch -Patch0006: 0006-Support-lseek64.patch -Patch0007: 0007-Use-SHELL-rather-than-bin-sh.patch -Patch0008: 0008-po-Use-SHELL-rather-than-bin-sh.patch -Patch0009: 0009-Add-termux-path-to-dict.patch -Patch0010: 0010-Fix-shebang-for-termux.patch -Patch0011: 0011-Add-strtoull-test.patch -Patch0012: 0012-strtoull-Fix-behaviour-on-chars-between-9-and-a.patch -Patch0013: 0013-Add-Virtual-LAN-support.patch -Patch0014: 0014-mkimage-Pass-layout-to-mkimage_generate_elfXX-rather.patch -Patch0015: 0015-Refactor-arm-uboot-code-to-make-it-genereic.patch -Patch0016: 0016-coreboot-Split-parts-that-are-platform-independent.patch -Patch0017: 0017-Rename-uboot-halt.c-to-dummy-halt.c.patch -Patch0018: 0018-Rename-uboot-datetime-to-dummy-datetime.patch -Patch0019: 0019-arm-coreboot-Start-new-port.patch -Patch0020: 0020-Add-support-for-device-tree-based-drivers.patch -Patch0021: 0021-arm-coreboot-Support-for-vexpress-timer.patch -Patch0022: 0022-arm-coreboot-Export-FDT-routines.patch -Patch0023: 0023-at_keyboard-Split-protocol-from-controller-code.patch -Patch0024: 0024-arm_coreboot-Support-keyboard-for-vexpress.patch -Patch0025: 0025-arm_coreboot-Support-grub-mkstandalone.patch -Patch0026: 0026-arm_coreboot-Support-loading-linux-images.patch -Patch0027: 0027-arm_coreboot-Support-DMA.patch -Patch0028: 0028-ehci-Split-core-code-from-PCI-part.patch -Patch0029: 0029-arm_coreboot-Support-EHCI.patch -Patch0030: 0030-Fix-bug-on-FDT-nodes-with-compatible-property.patch -Patch0031: 0031-fdtbus-Add-ability-to-send-receive-messages-on-paren.patch -Patch0032: 0032-rk3288_spi-Add-SPI-driver.patch -Patch0033: 0033-arm_coreboot-Add-Chromebook-keyboard-driver.patch -Patch0034: 0034-Missing-parts-of-previous-commit.patch -Patch0035: 0035-coreboot-Changed-cbmemc-to-support-updated-console-f.patch -Patch0036: 0036-at_keyboard-Fix-falco-chromebook-case.patch -Patch0037: 0037-sparc64-Close-cdboot-ihandle.patch -Patch0038: 0038-arm64-xen_boot-Fix-Xen-boot-using-GRUB2-on-AARCH64.patch -Patch0039: 0039-arm64-Add-nounzip-option-support-in-xen_module-comma.patch -Patch0040: 0040-util-grub.d-20_linux_xen.in-Add-xen_boot-command-sup.patch -Patch0041: 0041-arm64-Update-the-introduction-of-Xen-boot-commands-i.patch -Patch0042: 0042-sparc64-Don-t-use-devspec-to-determine-the-OBP-path.patch -Patch0043: 0043-Allow-GRUB-to-mount-ext2-3-4-filesystems-that-have-t.patch -Patch0044: 0044-ehci-Fix-compilation-for-amd64.patch -Patch0045: 0045-cache-Fix-compilation-for-ppc-sparc-and-arm64.patch -Patch0046: 0046-ehci-Fix-compilation-on-i386.patch -Patch0047: 0047-crypto-Fix-use-after-free.patch -Patch0048: 0048-arm-efi-Fix-compilation.patch -Patch0049: 0049-fdt-silence-clang-warning.patch -Patch0050: 0050-Fix-a-segfault-in-lsefi.patch -Patch0051: 0051-zfs-remove-size_t-typedef-and-use-grub_size_t-instea.patch -Patch0052: 0052-udf-Fix-reading-label-lvd.ident-is-dstring.patch -Patch0053: 0053-grub-core-fs-udf.c-Add-support-for-UUID.patch -Patch0054: 0054-mkrescue-Check-xorriso-presence-before-doing-anythin.patch -Patch0055: 0055-Fail-if-xorriso-failed.patch -Patch0056: 0056-efi-refactor-grub_efi_allocate_pages.patch -Patch0057: 0057-Remove-grub_efi_allocate_pages.patch -Patch0058: 0058-efi-move-fdt-helper-library.patch -Patch0059: 0059-efi-Add-GRUB_PE32_MAGIC-definition.patch -Patch0060: 0060-arm64-linux-loader-improve-type-portability.patch -Patch0061: 0061-efi-change-heap-allocation-type-to-GRUB_EFI_LOADER_C.patch -Patch0062: 0062-core-use-GRUB_TERM_-definitions-when-handling-term-c.patch -Patch0063: 0063-io-add-a-GRUB_GZ-prefix-to-gzio-specific-defines.patch -Patch0064: 0064-re-write-.gitignore.patch -Patch0065: 0065-IBM-client-architecture-CAS-reboot-support.patch -Patch0066: 0066-for-ppc-reset-console-display-attr-when-clear-screen.patch -Patch0067: 0067-Disable-GRUB-video-support-for-IBM-power-machines.patch -Patch0068: 0068-Honor-a-symlink-when-generating-configuration-by-gru.patch -Patch0069: 0069-Move-bash-completion-script-922997.patch -Patch0070: 0070-Update-to-minilzo-2.08.patch -Patch0071: 0071-Allow-fallback-to-include-entries-by-title-not-just-.patch -Patch0072: 0072-Add-GRUB_DISABLE_UUID.patch -Patch0073: 0073-Make-exit-take-a-return-code.patch -Patch0074: 0074-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch -Patch0075: 0075-Make-efi-machines-load-an-env-block-from-a-variable.patch -Patch0076: 0076-DHCP-client-ID-and-UUID-options-added.patch -Patch0077: 0077-trim-arp-packets-with-abnormal-size.patch -Patch0078: 0078-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch -Patch0079: 0079-Add-support-for-UEFI-operating-systems-returned-by-o.patch -Patch0080: 0080-Migrate-PPC-from-Yaboot-to-Grub2.patch -Patch0081: 0081-Add-fw_path-variable-revised.patch -Patch0082: 0082-Add-support-for-linuxefi.patch -Patch0083: 0083-Use-linuxefi-and-initrdefi-where-appropriate.patch -Patch0084: 0084-Don-t-allow-insmod-when-secure-boot-is-enabled.patch -Patch0085: 0085-Pass-x-hex-hex-straight-through-unmolested.patch -Patch0086: 0086-Add-X-option-to-printf-functions.patch -Patch0087: 0087-Search-for-specific-config-file-for-netboot.patch -Patch0088: 0088-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch -Patch0089: 0089-Don-t-write-messages-to-the-screen.patch -Patch0090: 0090-Don-t-print-GNU-GRUB-header.patch -Patch0091: 0091-Don-t-add-to-highlighted-row.patch -Patch0092: 0092-Message-string-cleanups.patch -Patch0093: 0093-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch -Patch0094: 0094-Use-the-correct-indentation-for-the-term-help-text.patch -Patch0095: 0095-Indent-menu-entries.patch -Patch0096: 0096-Fix-margins.patch -Patch0097: 0097-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch -Patch0098: 0098-Use-linux16-when-appropriate-880840.patch -Patch0099: 0099-Enable-pager-by-default.-985860.patch -Patch0100: 0100-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch -Patch0101: 0101-Don-t-say-GNU-Linux-in-generated-menus.patch -Patch0102: 0102-Don-t-draw-a-border-around-the-menu.patch -Patch0103: 0103-Use-the-standard-margin-for-the-timeout-string.patch -Patch0104: 0104-Add-.eh_frame-to-list-of-relocations-stripped.patch -Patch0105: 0105-Make-10_linux-work-with-our-changes-for-linux16-and-.patch -Patch0106: 0106-Don-t-print-during-fdt-loading-method.patch -Patch0107: 0107-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch -Patch0108: 0108-Don-t-require-a-password-to-boot-entries-generated-b.patch -Patch0109: 0109-Don-t-emit-Booting-.-message.patch -Patch0110: 0110-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch -Patch0111: 0111-use-fw_path-prefix-when-fallback-searching-for-grub-.patch -Patch0112: 0112-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch -Patch0113: 0113-Fix-convert-function-to-support-NVMe-devices.patch -Patch0114: 0114-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch -Patch0115: 0115-Use-the-default-device-tree-from-the-grub-default-fi.patch -Patch0116: 0116-reopen-SNP-protocol-for-exclusive-use-by-grub.patch -Patch0117: 0117-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch -Patch0118: 0118-Add-grub_util_readlink.patch -Patch0119: 0119-Make-editenv-chase-symlinks-including-those-across-d.patch -Patch0120: 0120-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch -Patch0121: 0121-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch -Patch0122: 0122-Load-arm-with-SB-enabled.patch -Patch0123: 0123-Try-prefix-if-fw_path-doesn-t-work.patch -Patch0124: 0124-Update-info-with-grub.cfg-netboot-selection-order-11.patch -Patch0125: 0125-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch -Patch0126: 0126-Handle-rssd-storage-devices.patch -Patch0127: 0127-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch -Patch0128: 0128-Make-grub2-mkconfig-construct-titles-that-look-like-.patch -Patch0129: 0129-Add-friendly-grub2-password-config-tool-985962.patch -Patch0130: 0130-Make-grub2-mkconfig-construct-titles-that-look-like-.patch -Patch0131: 0131-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch -Patch0132: 0132-tcp-add-window-scaling-support.patch -Patch0133: 0133-efinet-retransmit-if-our-device-is-busy.patch -Patch0134: 0134-Be-more-aggro-about-actually-using-the-configured-ne.patch -Patch0135: 0135-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch -Patch0136: 0136-Fix-security-issue-when-reading-username-and-passwor.patch -Patch0137: 0137-Warn-if-grub-password-will-not-be-read-1290803.patch -Patch0138: 0138-Clean-up-grub-setpassword-documentation-1290799.patch -Patch0139: 0139-Fix-locale-issue-in-grub-setpassword-1294243.patch -Patch0140: 0140-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch -Patch0141: 0141-efiemu-Fix-compilation-failure.patch -Patch0142: 0142-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch -Patch0143: 0143-Add-a-url-parser.patch -Patch0144: 0144-efinet-and-bootp-add-support-for-dhcpv6.patch -Patch0145: 0145-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch -Patch0146: 0146-Normalize-slashes-in-tftp-paths.patch -Patch0147: 0147-Fix-malformed-tftp-packets.patch -Patch0148: 0148-Fix-race-in-EFI-validation.patch -Patch0149: 0149-bz1374141-fix-incorrect-mask-for-ppc64.patch -Patch0150: 0150-Use-device-part-of-chainloader-target-if-present.patch -Patch0151: 0151-Add-secureboot-support-on-efi-chainloader.patch -Patch0152: 0152-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch -Patch0153: 0153-Make-grub_fatal-also-backtrace.patch -Patch0154: 0154-Rework-linux-command.patch -Patch0155: 0155-Rework-linux16-command.patch -Patch0156: 0156-Make-grub-editenv-build-again.patch -Patch0157: 0157-Fix-up-some-man-pages-rpmdiff-noticed.patch -Patch0158: 0158-Re-work-some-intricacies-of-PE-loading.patch -Patch0159: 0159-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch -Patch0160: 0160-linuxefi-fix-double-free-on-verification-failure.patch -Patch0161: 0161-fix-machine-type-test-in-30_os-prober.in.patch -Patch0162: 0162-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch -Patch0163: 0163-efi-chainloader-truncate-overlong-relocation-section.patch -Patch0164: 0164-linuxefi-minor-cleanups.patch -Patch0165: 0165-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch -Patch0166: 0166-Fix-up-linux-params-usage.patch -Patch0167: 0167-Make-exit-take-a-return-code.patch -Patch0168: 0168-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch -Patch0169: 0169-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch -Patch0170: 0170-Make-our-info-pages-say-grub2-where-appropriate.patch -Patch0171: 0171-print-more-debug-info-in-our-module-loader.patch -Patch0172: 0172-macos-just-build-chainloader-entries-don-t-try-any-x.patch -Patch0173: 0173-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch -Patch0174: 0174-export-btrfs_subvol-and-btrfs_subvolid.patch -Patch0175: 0175-grub2-btrfs-03-follow_default.patch -Patch0176: 0176-grub2-btrfs-04-grub2-install.patch -Patch0177: 0177-grub2-btrfs-05-grub2-mkconfig.patch -Patch0178: 0178-grub2-btrfs-06-subvol-mount.patch -Patch0179: 0179-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch -Patch0180: 0180-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch -Patch0181: 0181-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch -Patch0182: 0182-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch -Patch0183: 0183-Use-grub_efi_.-memory-helpers-where-reasonable.patch -Patch0184: 0184-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch -Patch0185: 0185-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch -Patch0186: 0186-don-t-ignore-const.patch -Patch0187: 0187-don-t-use-int-for-efi-status.patch -Patch0188: 0188-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch -Patch0189: 0189-Clean-up-some-errors-in-the-linuxefi-loader.patch -Patch0190: 0190-editenv-handle-relative-symlinks.patch -Patch0191: 0191-Make-libgrub.pp-depend-on-config-util.h.patch -Patch0192: 0192-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch -Patch0193: 0193-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch -Patch0194: 0194-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch -Patch0195: 0195-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch -Patch0196: 0196-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch -Patch0197: 0197-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch -Patch0198: 0198-align-struct-efi_variable-better.patch -Patch0199: 0199-Add-quicksort-implementation.patch -Patch0200: 0200-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch -Patch0201: 0201-Add-BLS-support-to-grub-mkconfig.patch -Patch0202: 0202-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch -Patch0203: 0203-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch -Patch0204: 0204-Enable-blscfg-command-for-the-emu-platform.patch -Patch0205: 0205-Add-linux-and-initrd-commands-for-grub-emu.patch -Patch0206: 0206-Fix-the-efidir-in-grub-setpassword.patch -Patch0207: 0207-Add-grub2-switch-to-blscfg.patch -Patch0208: 0208-Add-grub_debug_enabled.patch -Patch0209: 0209-make-better-backtraces.patch -Patch0210: 0210-normal-don-t-draw-our-startup-message-if-debug-is-se.patch -Patch0211: 0211-Work-around-some-minor-include-path-weirdnesses.patch -Patch0212: 0212-Make-it-possible-to-enabled-build-id-sha1.patch -Patch0213: 0213-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch -Patch0214: 0214-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch -Patch0215: 0215-Only-attempt-to-scan-different-BLS-directories-on-EF.patch -Patch0216: 0216-Core-TPM-support.patch -Patch0217: 0217-Measure-kernel-initrd.patch -Patch0218: 0218-Add-BIOS-boot-measurement.patch -Patch0219: 0219-Measure-kernel-and-initrd-on-BIOS-systems.patch -Patch0220: 0220-Measure-the-kernel-commandline.patch -Patch0221: 0221-Measure-commands.patch -Patch0222: 0222-Measure-multiboot-images-and-modules.patch -Patch0223: 0223-Fix-boot-when-there-s-no-TPM.patch -Patch0224: 0224-Rework-TPM-measurements.patch -Patch0225: 0225-Fix-event-log-prefix.patch -Patch0226: 0226-Set-the-first-boot-menu-entry-as-default-when-using-.patch -Patch0227: 0227-tpm-fix-warnings-when-compiling-for-platforms-other-.patch -Patch0228: 0228-Make-TPM-errors-less-fatal.patch -Patch0229: 0229-blscfg-handle-multiple-initramfs-images.patch -Patch0230: 0230-BLS-Fix-grub2-switch-to-blscfg-on-non-EFI-machines.patch -Patch0231: 0231-BLS-Use-etcdefaultgrub-instead-of-etc.patch -Patch0232: 0232-Add-missing-options-to-grub2-switch-to-blscfg-man-pa.patch -Patch0233: 0233-Make-grub2-switch-to-blscfg-to-generate-debug-BLS-wh.patch -Patch0234: 0234-Make-grub2-switch-to-blscfg-to-generate-BLS-fragment.patch -Patch0235: 0235-Only-attempt-to-query-dev-mounted-in-boot-efi-as-boo.patch -Patch0236: 0236-Include-OSTree-path-when-searching-kernels-images-if.patch -Patch0237: 0237-Use-BLS-version-field-to-compare-entries-if-id-field.patch -Patch0238: 0238-Add-version-field-to-BLS-generated-by-grub2-switch-t.patch -Patch0239: 0239-Fixup-for-newer-compiler.patch -Patch0240: 0240-Don-t-attempt-to-export-the-start-and-_start-symbols.patch -Patch0241: 0241-Simplify-BLS-entry-key-val-pairs-lookup.patch -Patch0242: 0242-Add-relative-path-to-the-kernel-and-initrds-BLS-fiel.patch -Patch0243: 0243-Skip-leading-spaces-on-BLS-field-values.patch -Patch0244: 0244-Fixup-for-newer-compiler.patch -Patch0245: 0245-TPM-Fix-hash_log_extend_event-function-prototype.patch -Patch0246: 0246-TPM-Fix-compiler-warnings.patch -Patch0247: 0247-grub-switch-to-blscfg.in-get-rid-of-a-bunch-of-bashi.patch -Patch0248: 0248-grub-switch-to-blscfg.in-Better-boot-prefix-checking.patch -Patch0249: 0249-Use-boot-loader-entries-as-BLS-directory-path-also-o.patch -Patch0250: 0250-Use-BLS-fragment-filename-as-menu-entry-id-and-for-c.patch -Patch0251: 0251-Fix-grub-switch-to-blscfg-boot-prefix-handling.patch +Patch0001: 0001-re-write-.gitignore.patch +Patch0002: 0002-IBM-client-architecture-CAS-reboot-support.patch +Patch0003: 0003-for-ppc-reset-console-display-attr-when-clear-screen.patch +Patch0004: 0004-Disable-GRUB-video-support-for-IBM-power-machines.patch +Patch0005: 0005-Honor-a-symlink-when-generating-configuration-by-gru.patch +Patch0006: 0006-Move-bash-completion-script-922997.patch +Patch0007: 0007-Update-to-minilzo-2.08.patch +Patch0008: 0008-Allow-fallback-to-include-entries-by-title-not-just-.patch +Patch0009: 0009-Add-GRUB_DISABLE_UUID.patch +Patch0010: 0010-Make-exit-take-a-return-code.patch +Patch0011: 0011-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch +Patch0012: 0012-Make-efi-machines-load-an-env-block-from-a-variable.patch +Patch0013: 0013-DHCP-client-ID-and-UUID-options-added.patch +Patch0014: 0014-trim-arp-packets-with-abnormal-size.patch +Patch0015: 0015-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch +Patch0016: 0016-Add-support-for-UEFI-operating-systems-returned-by-o.patch +Patch0017: 0017-Migrate-PPC-from-Yaboot-to-Grub2.patch +Patch0018: 0018-Add-fw_path-variable-revised.patch +Patch0019: 0019-Add-support-for-linuxefi.patch +Patch0020: 0020-Use-linuxefi-and-initrdefi-where-appropriate.patch +Patch0021: 0021-Don-t-allow-insmod-when-secure-boot-is-enabled.patch +Patch0022: 0022-Pass-x-hex-hex-straight-through-unmolested.patch +Patch0023: 0023-Add-X-option-to-printf-functions.patch +Patch0024: 0024-Search-for-specific-config-file-for-netboot.patch +Patch0025: 0025-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch +Patch0026: 0026-Don-t-write-messages-to-the-screen.patch +Patch0027: 0027-Don-t-print-GNU-GRUB-header.patch +Patch0028: 0028-Don-t-add-to-highlighted-row.patch +Patch0029: 0029-Message-string-cleanups.patch +Patch0030: 0030-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch +Patch0031: 0031-Use-the-correct-indentation-for-the-term-help-text.patch +Patch0032: 0032-Indent-menu-entries.patch +Patch0033: 0033-Fix-margins.patch +Patch0034: 0034-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch +Patch0035: 0035-Use-linux16-when-appropriate-880840.patch +Patch0036: 0036-Enable-pager-by-default.-985860.patch +Patch0037: 0037-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch +Patch0038: 0038-Don-t-say-GNU-Linux-in-generated-menus.patch +Patch0039: 0039-Don-t-draw-a-border-around-the-menu.patch +Patch0040: 0040-Use-the-standard-margin-for-the-timeout-string.patch +Patch0041: 0041-Add-.eh_frame-to-list-of-relocations-stripped.patch +Patch0042: 0042-Make-10_linux-work-with-our-changes-for-linux16-and-.patch +Patch0043: 0043-Don-t-print-during-fdt-loading-method.patch +Patch0044: 0044-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch +Patch0045: 0045-Don-t-require-a-password-to-boot-entries-generated-b.patch +Patch0046: 0046-Don-t-emit-Booting-.-message.patch +Patch0047: 0047-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch +Patch0048: 0048-use-fw_path-prefix-when-fallback-searching-for-grub-.patch +Patch0049: 0049-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch +Patch0050: 0050-Fix-convert-function-to-support-NVMe-devices.patch +Patch0051: 0051-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch +Patch0052: 0052-Use-the-default-device-tree-from-the-grub-default-fi.patch +Patch0053: 0053-reopen-SNP-protocol-for-exclusive-use-by-grub.patch +Patch0054: 0054-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch +Patch0055: 0055-Add-grub_util_readlink.patch +Patch0056: 0056-Make-editenv-chase-symlinks-including-those-across-d.patch +Patch0057: 0057-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch +Patch0058: 0058-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch +Patch0059: 0059-Load-arm-with-SB-enabled.patch +Patch0060: 0060-Try-prefix-if-fw_path-doesn-t-work.patch +Patch0061: 0061-Update-info-with-grub.cfg-netboot-selection-order-11.patch +Patch0062: 0062-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch +Patch0063: 0063-Handle-rssd-storage-devices.patch +Patch0064: 0064-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch +Patch0065: 0065-Make-grub2-mkconfig-construct-titles-that-look-like-.patch +Patch0066: 0066-Add-friendly-grub2-password-config-tool-985962.patch +Patch0067: 0067-Make-grub2-mkconfig-construct-titles-that-look-like-.patch +Patch0068: 0068-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch +Patch0069: 0069-tcp-add-window-scaling-support.patch +Patch0070: 0070-efinet-retransmit-if-our-device-is-busy.patch +Patch0071: 0071-Be-more-aggro-about-actually-using-the-configured-ne.patch +Patch0072: 0072-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch +Patch0073: 0073-Fix-security-issue-when-reading-username-and-passwor.patch +Patch0074: 0074-Warn-if-grub-password-will-not-be-read-1290803.patch +Patch0075: 0075-Clean-up-grub-setpassword-documentation-1290799.patch +Patch0076: 0076-Fix-locale-issue-in-grub-setpassword-1294243.patch +Patch0077: 0077-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch +Patch0078: 0078-efiemu-Fix-compilation-failure.patch +Patch0079: 0079-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch +Patch0080: 0080-Add-a-url-parser.patch +Patch0081: 0081-efinet-and-bootp-add-support-for-dhcpv6.patch +Patch0082: 0082-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch +Patch0083: 0083-Normalize-slashes-in-tftp-paths.patch +Patch0084: 0084-Fix-malformed-tftp-packets.patch +Patch0085: 0085-Fix-race-in-EFI-validation.patch +Patch0086: 0086-bz1374141-fix-incorrect-mask-for-ppc64.patch +Patch0087: 0087-Use-device-part-of-chainloader-target-if-present.patch +Patch0088: 0088-Add-secureboot-support-on-efi-chainloader.patch +Patch0089: 0089-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch +Patch0090: 0090-Make-grub_fatal-also-backtrace.patch +Patch0091: 0091-Rework-linux-command.patch +Patch0092: 0092-Rework-linux16-command.patch +Patch0093: 0093-Make-grub-editenv-build-again.patch +Patch0094: 0094-Fix-up-some-man-pages-rpmdiff-noticed.patch +Patch0095: 0095-Re-work-some-intricacies-of-PE-loading.patch +Patch0096: 0096-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch +Patch0097: 0097-linuxefi-fix-double-free-on-verification-failure.patch +Patch0098: 0098-fix-machine-type-test-in-30_os-prober.in.patch +Patch0099: 0099-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch +Patch0100: 0100-efi-chainloader-truncate-overlong-relocation-section.patch +Patch0101: 0101-linuxefi-minor-cleanups.patch +Patch0102: 0102-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch +Patch0103: 0103-Fix-up-linux-params-usage.patch +Patch0104: 0104-Make-exit-take-a-return-code.patch +Patch0105: 0105-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch +Patch0106: 0106-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch +Patch0107: 0107-Make-our-info-pages-say-grub2-where-appropriate.patch +Patch0108: 0108-print-more-debug-info-in-our-module-loader.patch +Patch0109: 0109-macos-just-build-chainloader-entries-don-t-try-any-x.patch +Patch0110: 0110-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch +Patch0111: 0111-export-btrfs_subvol-and-btrfs_subvolid.patch +Patch0112: 0112-grub2-btrfs-03-follow_default.patch +Patch0113: 0113-grub2-btrfs-04-grub2-install.patch +Patch0114: 0114-grub2-btrfs-05-grub2-mkconfig.patch +Patch0115: 0115-grub2-btrfs-06-subvol-mount.patch +Patch0116: 0116-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch +Patch0117: 0117-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch +Patch0118: 0118-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch +Patch0119: 0119-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch +Patch0120: 0120-Use-grub_efi_.-memory-helpers-where-reasonable.patch +Patch0121: 0121-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch +Patch0122: 0122-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch +Patch0123: 0123-don-t-ignore-const.patch +Patch0124: 0124-don-t-use-int-for-efi-status.patch +Patch0125: 0125-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch +Patch0126: 0126-Clean-up-some-errors-in-the-linuxefi-loader.patch +Patch0127: 0127-editenv-handle-relative-symlinks.patch +Patch0128: 0128-Make-libgrub.pp-depend-on-config-util.h.patch +Patch0129: 0129-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch +Patch0130: 0130-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch +Patch0131: 0131-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch +Patch0132: 0132-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch +Patch0133: 0133-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch +Patch0134: 0134-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch +Patch0135: 0135-align-struct-efi_variable-better.patch +Patch0136: 0136-Add-quicksort-implementation.patch +Patch0137: 0137-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch +Patch0138: 0138-Add-BLS-support-to-grub-mkconfig.patch +Patch0139: 0139-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch +Patch0140: 0140-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch +Patch0141: 0141-Enable-blscfg-command-for-the-emu-platform.patch +Patch0142: 0142-Add-linux-and-initrd-commands-for-grub-emu.patch +Patch0143: 0143-Fix-the-efidir-in-grub-setpassword.patch +Patch0144: 0144-Add-grub2-switch-to-blscfg.patch +Patch0145: 0145-Add-grub_debug_enabled.patch +Patch0146: 0146-make-better-backtraces.patch +Patch0147: 0147-normal-don-t-draw-our-startup-message-if-debug-is-se.patch +Patch0148: 0148-Work-around-some-minor-include-path-weirdnesses.patch +Patch0149: 0149-Make-it-possible-to-enabled-build-id-sha1.patch +Patch0150: 0150-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch +Patch0151: 0151-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch +Patch0152: 0152-Only-attempt-to-scan-different-BLS-directories-on-EF.patch +Patch0153: 0153-Core-TPM-support.patch +Patch0154: 0154-Measure-kernel-initrd.patch +Patch0155: 0155-Add-BIOS-boot-measurement.patch +Patch0156: 0156-Measure-kernel-and-initrd-on-BIOS-systems.patch +Patch0157: 0157-Measure-the-kernel-commandline.patch +Patch0158: 0158-Measure-commands.patch +Patch0159: 0159-Measure-multiboot-images-and-modules.patch +Patch0160: 0160-Fix-boot-when-there-s-no-TPM.patch +Patch0161: 0161-Rework-TPM-measurements.patch +Patch0162: 0162-Fix-event-log-prefix.patch +Patch0163: 0163-Set-the-first-boot-menu-entry-as-default-when-using-.patch +Patch0164: 0164-tpm-fix-warnings-when-compiling-for-platforms-other-.patch +Patch0165: 0165-Make-TPM-errors-less-fatal.patch +Patch0166: 0166-blscfg-handle-multiple-initramfs-images.patch +Patch0167: 0167-BLS-Fix-grub2-switch-to-blscfg-on-non-EFI-machines.patch +Patch0168: 0168-BLS-Use-etcdefaultgrub-instead-of-etc.patch +Patch0169: 0169-Add-missing-options-to-grub2-switch-to-blscfg-man-pa.patch +Patch0170: 0170-Make-grub2-switch-to-blscfg-to-generate-debug-BLS-wh.patch +Patch0171: 0171-Make-grub2-switch-to-blscfg-to-generate-BLS-fragment.patch +Patch0172: 0172-Only-attempt-to-query-dev-mounted-in-boot-efi-as-boo.patch +Patch0173: 0173-Include-OSTree-path-when-searching-kernels-images-if.patch +Patch0174: 0174-Use-BLS-version-field-to-compare-entries-if-id-field.patch +Patch0175: 0175-Add-version-field-to-BLS-generated-by-grub2-switch-t.patch +Patch0176: 0176-Fixup-for-newer-compiler.patch +Patch0177: 0177-Don-t-attempt-to-export-the-start-and-_start-symbols.patch +Patch0178: 0178-Simplify-BLS-entry-key-val-pairs-lookup.patch +Patch0179: 0179-Add-relative-path-to-the-kernel-and-initrds-BLS-fiel.patch +Patch0180: 0180-Skip-leading-spaces-on-BLS-field-values.patch +Patch0181: 0181-Fixup-for-newer-compiler.patch +Patch0182: 0182-TPM-Fix-hash_log_extend_event-function-prototype.patch +Patch0183: 0183-TPM-Fix-compiler-warnings.patch +Patch0184: 0184-grub-switch-to-blscfg.in-get-rid-of-a-bunch-of-bashi.patch +Patch0185: 0185-grub-switch-to-blscfg.in-Better-boot-prefix-checking.patch +Patch0186: 0186-Use-boot-loader-entries-as-BLS-directory-path-also-o.patch +Patch0187: 0187-Use-BLS-fragment-filename-as-menu-entry-id-and-for-c.patch +Patch0188: 0188-Fix-grub-switch-to-blscfg-boot-prefix-handling.patch +Patch0189: 0189-blscfg-remove-unused-typedef.patch +Patch0190: 0190-blscfg-don-t-dynamically-allocate-default_blsdir.patch +Patch0191: 0191-blscfg-sort-BLS-entries-by-version-field.patch +Patch0192: 0192-blscfg-remove-NULL-guards-around-grub_free.patch +Patch0193: 0193-blscfg-fix-filename-in-no-linux-key-error.patch +Patch0194: 0194-blscfg-don-t-leak-bls_entry.filename.patch +Patch0195: 0195-blscfg-fix-compilation-on-EFI-and-EMU.patch +Patch0196: 0196-Add-loadenv-to-blscfg-and-loadenv-source-file-list.patch +Patch0197: 0197-blscfg-Get-rid-of-the-linuxefi-linux16-linux-distinc.patch +Patch0198: 0198-grub-switch-to-blscfg-Only-fix-boot-prefix-for-non-g.patch +Patch0199: 0199-blscfg-Expand-the-BLS-options-field-instead-of-showi.patch +Patch0200: 0200-blscfg-Fallback-to-search-BLS-snippets-in-boot-loade.patch +Patch0201: 0201-blscfg-Don-t-attempt-to-sort-by-version-if-not-prese.patch +Patch0202: 0202-blscfg-remove-logic-to-read-the-grubenv-file-and-set.patch +Patch0203: 0203-Put-our-bls_import-compat-command-in-this-tree-as-we.patch +Patch0204: 0204-Fix-an-8-year-old-typo.patch From d6895dd1ff5e8292734a520ab47e5fc26b28bf08 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 31 Jul 2018 13:57:13 -0400 Subject: [PATCH 38/45] We don't use this patch; remove it. --- ...it-possible-to-enabled-build-id-sha1.patch | 61 ------------------- 1 file changed, 61 deletions(-) delete mode 100644 10002-Make-it-possible-to-enabled-build-id-sha1.patch diff --git a/10002-Make-it-possible-to-enabled-build-id-sha1.patch b/10002-Make-it-possible-to-enabled-build-id-sha1.patch deleted file mode 100644 index 3a9e044b..00000000 --- a/10002-Make-it-possible-to-enabled-build-id-sha1.patch +++ /dev/null @@ -1,61 +0,0 @@ -From 5334ed8ae9c8f15928139be986a1e877e9837630 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Thu, 25 Jun 2015 15:41:06 -0400 -Subject: [PATCH 10002/10006] Make it possible to enabled --build-id=sha1 - -Signed-off-by: Peter Jones ---- - acinclude.m4 | 19 +++++++++++++++++++ - configure.ac | 8 ++++++++ - 2 files changed, 27 insertions(+) - -diff --git a/acinclude.m4 b/acinclude.m4 -index 526f97a..48ccecc 100644 ---- a/acinclude.m4 -+++ b/acinclude.m4 -@@ -136,6 +136,25 @@ if test "x$grub_cv_prog_ld_build_id_none" = xyes; then - fi - ]) - -+dnl Supply --build-id=sha1 to ld if building modules. -+dnl This suppresses warnings from ld on some systems -+AC_DEFUN([grub_PROG_LD_BUILD_ID_SHA1], -+[AC_MSG_CHECKING([whether linker accepts --build-id=sha1]) -+AC_CACHE_VAL(grub_cv_prog_ld_build_id_sha1, -+[save_LDFLAGS="$LDFLAGS" -+LDFLAGS="$LDFLAGS -Wl,--build-id=sha1" -+AC_LINK_IFELSE([AC_LANG_PROGRAM([[]], [[]])], -+ [grub_cv_prog_ld_build_id_sha1=yes], -+ [grub_cv_prog_ld_build_id_sha1=no]) -+LDFLAGS="$save_LDFLAGS" -+]) -+AC_MSG_RESULT([$grub_cv_prog_ld_build_id_sha1]) -+ -+if test "x$grub_cv_prog_ld_build_id_sha1" = xyes; then -+ TARGET_LDFLAGS="$TARGET_LDFLAGS -Wl,--build-id=sha1" -+fi -+]) -+ - dnl Check nm - AC_DEFUN([grub_PROG_NM_WORKS], - [AC_MSG_CHECKING([whether nm works]) -diff --git a/configure.ac b/configure.ac -index d6ef6c3..3e897bd 100644 ---- a/configure.ac -+++ b/configure.ac -@@ -1323,7 +1323,15 @@ grub_PROG_TARGET_CC - if test "x$TARGET_APPLE_LINKER" != x1 ; then - grub_PROG_OBJCOPY_ABSOLUTE - fi -+ -+AC_ARG_ENABLE([build-id], -+ [AS_HELP_STRING([--enable-build-id], -+ [ask the linker to supply build-id notes (default=no)])]) -+if test x$enable_build_id = xyes; then -+grub_PROG_LD_BUILD_ID_SHA1 -+else - grub_PROG_LD_BUILD_ID_NONE -+fi - if test "x$target_cpu" = xi386; then - if test "$platform" != emu && test "x$TARGET_APPLE_LINKER" != x1 ; then - if test ! -z "$TARGET_IMG_LDSCRIPT"; then From 316103d670f8ae45a72332b87af29d12cc8001ae Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 31 Jul 2018 14:16:05 -0400 Subject: [PATCH 39/45] Update the changelog. Signed-off-by: Peter Jones --- grub2.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/grub2.spec b/grub2.spec index 9689ade3..fc83c77f 100644 --- a/grub2.spec +++ b/grub2.spec @@ -456,6 +456,7 @@ fi %changelog * Mon Jul 09 2018 pjones - 2.02-39 - Fix my fix of grub2-switch-to-blscfg (javierm and pjones) + Resolves: rhbz#1609431 * Mon Jul 02 2018 Javier Martinez Canillas - 2.02-38 - Use BLS fragment filename as menu entry id and for sort criterion From 24518244716d59558940bdcf472ea46ea6d82c6c Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Tue, 31 Jul 2018 14:21:27 -0400 Subject: [PATCH 40/45] More bls fixes. Resolves: rhbz#1609431 Signed-off-by: Peter Jones --- grub2.spec | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/grub2.spec b/grub2.spec index fc83c77f..c856781b 100644 --- a/grub2.spec +++ b/grub2.spec @@ -7,7 +7,7 @@ Name: grub2 Epoch: 1 Version: 2.02 -Release: 39%{?dist} +Release: 40%{?dist} Summary: Bootloader with support for Linux, Multiboot and more Group: System Environment/Base License: GPLv3+ @@ -454,9 +454,12 @@ fi %endif %changelog +* Tue Jul 31 2018 Peter Jones - 2.02-40 +- More bls fixes. + Resolves: rhbz#1609431 + * Mon Jul 09 2018 pjones - 2.02-39 - Fix my fix of grub2-switch-to-blscfg (javierm and pjones) - Resolves: rhbz#1609431 * Mon Jul 02 2018 Javier Martinez Canillas - 2.02-38 - Use BLS fragment filename as menu entry id and for sort criterion From 5a73eab26558bf3e1558c35150a2f89efd624cc2 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Thu, 2 Aug 2018 16:07:28 -0400 Subject: [PATCH 41/45] Backport a pile of fixes from the f29 tree. Related: rhbz#1609431 Signed-off-by: Peter Jones --- ...d-support-for-Linux-EFI-stub-loading.patch | 997 ++ ...d.patch => 0002-Rework-linux-command.patch | 35 +- ...patch => 0003-Rework-linux16-command.patch | 18 +- ...ecureboot-support-on-efi-chainloader.patch | 1390 +++ ...loaders-that-link-in-efi-mode-honor-.patch | 93 +- ...rch-64-on-32-boot-in-linuxefi-loader.patch | 106 +- ...re.patch => 0007-re-write-.gitignore.patch | 13 +- ...ient-architecture-CAS-reboot-support.patch | 19 +- ...nsole-display-attr-when-clear-screen.patch | 0 ...video-support-for-IBM-power-machines.patch | 2 +- ...when-generating-configuration-by-gru.patch | 4 +- ...2-Move-bash-completion-script-922997.patch | 6 +- ...patch => 0013-Update-to-minilzo-2.08.patch | 0 ...o-include-entries-by-title-not-just-.patch | 0 ....patch => 0015-Add-GRUB_DISABLE_UUID.patch | 40 +- ...=> 0016-Make-exit-take-a-return-code.patch | 8 +- ...pot-as-binary-so-git-won-t-try-to-di.patch | 0 ...es-load-an-env-block-from-a-variable.patch | 4 +- 0019-Add-support-for-linuxefi.patch | 479 - ...HCP-client-ID-and-UUID-options-added.patch | 0 ...xefi-and-initrdefi-where-appropriate.patch | 47 - ...-trim-arp-packets-with-abnormal-size.patch | 0 ...w-insmod-when-secure-boot-is-enabled.patch | 121 - ...Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch | 6 +- ...UEFI-operating-systems-returned-by-o.patch | 0 ...023-Migrate-PPC-from-Yaboot-to-Grub2.patch | 4 +- ...=> 0024-Add-fw_path-variable-revised.patch | 0 ...-hex-hex-straight-through-unmolested.patch | 0 ...026-Add-X-option-to-printf-functions.patch | 0 ...for-specific-config-file-for-netboot.patch | 0 ...g-module-to-parse-Boot-Loader-Specif.patch | 2 +- 0029-Add-devicetree-loading.patch | 68 + ...0-Don-t-write-messages-to-the-screen.patch | 36 +- ... => 0031-Don-t-print-GNU-GRUB-header.patch | 0 ...=> 0032-Don-t-add-to-highlighted-row.patch | 0 ...atch => 0033-Message-string-cleanups.patch | 0 ...ing-now-that-we-aren-t-displaying-it.patch | 0 ...-Use-linux16-when-appropriate-880840.patch | 49 - ...t-indentation-for-the-term-help-text.patch | 0 ...es.patch => 0036-Indent-menu-entries.patch | 0 ...ix-margins.patch => 0037-Fix-margins.patch | 0 ...-1-for-our-right-hand-margin-so-line.patch | 0 ...0039-Enable-pager-by-default.-985860.patch | 0 ...-on-serial-so-don-t-tell-the-user-to.patch | 0 ...n-t-say-GNU-Linux-in-generated-menus.patch | 4 +- ...-Don-t-draw-a-border-around-the-menu.patch | 0 ...rk-with-our-changes-for-linux16-and-.patch | 82 - ...on-t-print-during-fdt-loading-method.patch | 24 - ...andard-margin-for-the-timeout-string.patch | 0 ...rame-to-list-of-relocations-stripped.patch | 0 ...spaces-when-we-re-doing-our-cmdline-.patch | 0 ...password-to-boot-entries-generated-b.patch | 2 +- ...=> 0047-Don-t-emit-Booting-.-message.patch | 0 ...f-man-pages-with-slightly-nicer-ones.patch | 2 +- ...ix-when-fallback-searching-for-grub-.patch | 0 ...-before-grub.cfg-on-tftp-config-file.patch | 0 ...ert-function-to-support-NVMe-devices.patch | 0 ...M-Mustang-device-tree-for-hardware-t.patch | 25 - ...device-tree-from-the-grub-default-fi.patch | 42 - ...P-protocol-for-exclusive-use-by-grub.patch | 0 ...P-protocol-for-exclusive-use-by-grub.patch | 0 ...patch => 0054-Add-grub_util_readlink.patch | 0 ...se-symlinks-including-those-across-d.patch | 4 +- ...CLASS-in-10_linux-from-etc-os-releas.patch | 2 +- ...t-ordering-for-.debug-and-rescue-ker.patch | 4 +- ...8-Try-prefix-if-fw_path-doesn-t-work.patch | 4 +- 0059-Load-arm-with-SB-enabled.patch | 426 - ...-grub.cfg-netboot-selection-order-11.patch | 4 +- ...-Package-Sort-for-grub2-mkconfig-112.patch | 18 +- ... => 0061-Handle-rssd-storage-devices.patch | 0 ...fig-construct-titles-that-look-like-.patch | 48 +- ...ly-grub2-password-config-tool-985962.patch | 16 +- ...x16-initrd16-and-linuxefi-initrdefi-.patch | 74 - ...-configure.ac-and-grub-rpm-sort-play.patch | 8 +- ... 0065-tcp-add-window-scaling-support.patch | 0 ...net-retransmit-if-our-device-is-busy.patch | 0 ...out-actually-using-the-configured-ne.patch | 0 ...fig-construct-titles-that-look-like-.patch | 64 - ...r-for-the-first-exclusive-reopen-of-.patch | 0 ...ue-when-reading-username-and-passwor.patch | 0 ...ub-password-will-not-be-read-1290803.patch | 0 ...ub-setpassword-documentation-1290799.patch | 0 ...le-issue-in-grub-setpassword-1294243.patch | 0 ...rsistent-RAM-and-unknown-possible-fu.patch | 0 ... 0074-efiemu-Fix-compilation-failure.patch | 0 ...P-protocol-for-exclusive-use-by-grub.patch | 0 ...arser.patch => 0076-Add-a-url-parser.patch | 6 +- ...net-and-bootp-add-support-for-dhcpv6.patch | 0 ...rnel-settings-and-use-it-in-10_linux.patch | 34 +- ...0079-Normalize-slashes-in-tftp-paths.patch | 0 ...h => 0080-Fix-malformed-tftp-packets.patch | 0 ...1374141-fix-incorrect-mask-for-ppc64.patch | 0 ... 0082-Make-grub_fatal-also-backtrace.patch | 2 +- ...> 0083-Make-grub-editenv-build-again.patch | 4 +- ...ix-up-some-man-pages-rpmdiff-noticed.patch | 2 +- 0085-Fix-race-in-EFI-validation.patch | 94 - ...=> 0085-Make-exit-take-a-return-code.patch | 0 ...fdt-has-address-cells-and-size-cells.patch | 4 +- ...fo-pages-say-grub2-where-appropriate.patch | 132 +- ...art-of-chainloader-target-if-present.patch | 34 - ...ecureboot-support-on-efi-chainloader.patch | 797 -- ...more-debug-info-in-our-module-loader.patch | 4 +- ...-chainloader-entries-don-t-try-any-x.patch | 4 +- ...-Add-ability-to-boot-from-subvolumes.patch | 2 +- ...port-btrfs_subvol-and-btrfs_subvolid.patch | 2 +- ...> 0092-grub2-btrfs-03-follow_default.patch | 2 +- ...=> 0093-grub2-btrfs-04-grub2-install.patch | 2 +- ...> 0094-grub2-btrfs-05-grub2-mkconfig.patch | 14 +- ...-work-some-intricacies-of-PE-loading.patch | 350 - ... => 0095-grub2-btrfs-06-subvol-mount.patch | 6 +- ...ootable-Snapshot-submenu-in-grub.cfg.patch | 0 ...-of-efi-chainload-so-non-sb-cases-wo.patch | 412 - ...subvol-name-scheme-to-support-old-sn.patch | 2 +- ...-double-free-on-verification-failure.patch | 22 - ...-correctly-with-btrfs-snapshots-bsc-.patch | 2 +- ...machine-type-test-in-30_os-prober.in.patch | 22 - ...ocate_pool-and-grub_efi_free_pool-wr.patch | 8 +- ...fix-wrong-sanity-check-in-relocate_c.patch | 35 - ...fi_.-memory-helpers-where-reasonable.patch | 2 +- ...truncate-overlong-relocation-section.patch | 110 - ...1-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch | 2 +- 0101-linuxefi-minor-cleanups.patch | 86 - ...c-sized-arrays-since-we-don-t-build-.patch | 0 0103-Fix-up-linux-params-usage.patch | 40 - ...nst.patch => 0103-don-t-ignore-const.patch | 0 ...=> 0104-don-t-use-int-for-efi-status.patch | 4 +- ...INIT-declare-its-function-prototypes.patch | 0 ...rintf-in-the-secure-boot-verify-code.patch | 40 - ...106-editenv-handle-relative-symlinks.patch | 0 ...e-libgrub.pp-depend-on-config-util.h.patch | 0 ...-efi-as-HFS-on-ppc-machines-in-grub-.patch | 2 +- ...d-xen-or-multiboot-2-modules-as-need.patch | 6 +- ...-calibration-not-take-51-seconds-to-.patch | 0 ...111-align-struct-efi_variable-better.patch | 2 +- ...=> 0112-Add-quicksort-implementation.patch | 4 +- ...nd-support-to-parse-BootLoaderSpec-c.patch | 30 +- ...114-Add-BLS-support-to-grub-mkconfig.patch | 30 +- ...d-grub_exit-definition-for-grub-emu-.patch | 0 ...-backtrace-on-grub_abort-for-grub-em.patch | 0 ...-blscfg-command-for-the-emu-platform.patch | 16 +- ...nux-and-initrd-commands-for-grub-emu.patch | 22 +- ...9-Fix-the-efidir-in-grub-setpassword.patch | 0 ...h => 0120-Add-grub2-switch-to-blscfg.patch | 8 +- ...patch => 0121-Add-grub_debug_enabled.patch | 2 +- ...patch => 0122-make-better-backtraces.patch | 48 +- ...w-our-startup-message-if-debug-is-se.patch | 0 ...-some-minor-include-path-weirdnesses.patch | 0 ...it-possible-to-enabled-build-id-sha1.patch | 4 +- ...f-grub_dprintf-without-the-file-line.patch | 2 +- ...p-some-errors-in-the-linuxefi-loader.patch | 66 - ...dprintf-that-tells-us-load-addresses.patch | 14 +- ...scan-different-BLS-directories-on-EF.patch | 2 +- ...pport.patch => 0129-Core-TPM-support.patch | 6 +- ...20_linux_xen.in-Add-xen_boot-command.patch | 59 - ....patch => 0130-Measure-kernel-initrd.patch | 6 +- ...ch => 0131-Add-BIOS-boot-measurement.patch | 2 +- ...-figure-out-whether-multiboot2-shoul.patch | 30 - ...re-kernel-and-initrd-on-BIOS-systems.patch | 8 +- ... 0133-Measure-the-kernel-commandline.patch | 0 ...lt-tsc-calibration-method-to-pmtimer.patch | 29 - ...mands.patch => 0134-Measure-commands.patch | 0 ...Measure-multiboot-images-and-modules.patch | 12 +- ...=> 0136-Fix-boot-when-there-s-no-TPM.patch | 0 ...atch => 0137-Rework-TPM-measurements.patch | 22 +- ...x.patch => 0138-Fix-event-log-prefix.patch | 0 ...ot-menu-entry-as-default-when-using-.patch | 4 +- ...-when-compiling-for-platforms-other-.patch | 0 ...h => 0141-Make-TPM-errors-less-fatal.patch | 22 +- ...cfg-handle-multiple-initramfs-images.patch | 2 +- ...switch-to-blscfg-on-non-EFI-machines.patch | 0 ...LS-Use-etcdefaultgrub-instead-of-etc.patch | 0 ...ons-to-grub2-switch-to-blscfg-man-pa.patch | 0 ...h-to-blscfg-to-generate-debug-BLS-wh.patch | 0 ...h-to-blscfg-to-generate-BLS-fragment.patch | 0 ...query-dev-mounted-in-boot-efi-as-boo.patch | 4 +- ...ath-when-searching-kernels-images-if.patch | 4 +- ...field-to-compare-entries-if-id-field.patch | 2 +- ...d-to-BLS-generated-by-grub2-switch-t.patch | 0 ...tch => 0152-Fixup-for-newer-compiler.patch | 4 +- ...-export-the-start-and-_start-symbols.patch | 0 ...plify-BLS-entry-key-val-pairs-lookup.patch | 2 +- ...h-to-the-kernel-and-initrds-BLS-fiel.patch | 0 ...p-leading-spaces-on-BLS-field-values.patch | 2 +- ...tch => 0157-Fixup-for-newer-compiler.patch | 0 ..._log_extend_event-function-prototype.patch | 0 ...ch => 0159-TPM-Fix-compiler-warnings.patch | 0 ...lscfg.in-get-rid-of-a-bunch-of-bashi.patch | 0 ...lscfg.in-Better-boot-prefix-checking.patch | 0 ...entries-as-BLS-directory-path-also-o.patch | 2 +- ...-filename-as-menu-entry-id-and-for-c.patch | 2 +- ...witch-to-blscfg-boot-prefix-handling.patch | 0 ...-trim-arp-packets-with-abnormal-size.patch | 27 + 0166-Use-xid-to-match-DHCP-replies.patch | 65 + ...pport-for-non-Ethernet-network-cards.patch | 764 ++ ...lid-character-recongition-in-strto-l.patch | 37 + ...racketed-ipv6-addrs-and-port-numbers.patch | 229 + ...ed-ipv6-addrs-and-port-numbers-pjone.patch | 105 + 0171-bootp-New-net_bootp6-command.patch | 1357 +++ ...t-back-our-code-to-add-a-local-route.patch | 35 + 0173-efinet-UEFI-IPv6-PXE-support.patch | 126 + 0174-grub.texi-Add-net_bootp6-doument.patch | 48 + ...essing-DHCPACK-packet-from-HTTP-Boot.patch | 135 + ...etting-network-from-UEFI-device-path.patch | 405 + ...etting-DNS-server-from-UEFI-protocol.patch | 337 + 0178-Fix-one-more-coverity-complaint.patch | 27 + 0179-Fix-grub_net_hwaddr_to_str.patch | 41 + 0180-Support-UEFI-networking-protocols.patch | 5055 ++++++++++ 0181-AUDIT-0-http-boot-tracker-bug.patch | 62 + ...efi_gop.c-Add-support-for-BLT_ONLY-a.patch | 56 + 0183-efi-uga-use-64-bit-for-fb_base.patch | 105 + ...ot-set-text-mode-until-we-actually-n.patch | 184 + ...grub_console_read_key_stroke-helper-.patch | 102 + ...nsole-Implement-getkeystatus-support.patch | 72 + ...status-helper-funtion-available-ever.patch | 87 + ...d-holding-SHIFT-as-user-interrupt-ke.patch | 94 + ...Fix-grub-setpassword-o-s-output-path.patch | 33 + ...ssword-be-named-like-all-the-other-g.patch | 88 + 0191-gentpl-add-disable-support.patch | 46 + 0192-gentpl-add-pc-firmware-type.patch | 22 + ...=> 0193-blscfg-remove-unused-typedef.patch | 2 +- ...-dynamically-allocate-default_blsdir.patch | 2 +- ...fg-sort-BLS-entries-by-version-field.patch | 2 +- ...-remove-NULL-guards-around-grub_free.patch | 2 +- ...g-fix-filename-in-no-linux-key-error.patch | 2 +- ...blscfg-don-t-leak-bls_entry.filename.patch | 2 +- ...lscfg-fix-compilation-on-EFI-and-EMU.patch | 2 +- ...-blscfg-and-loadenv-source-file-list.patch | 6 +- ...f-the-linuxefi-linux16-linux-distinc.patch | 2 +- ...lscfg-Only-fix-boot-prefix-for-non-g.patch | 0 ...rt-compat-command-in-this-tree-as-we.patch | 39 - ...e-BLS-options-field-instead-of-showi.patch | 2 +- ...to-search-BLS-snippets-in-boot-loade.patch | 2 +- ...empt-to-sort-by-version-if-not-prese.patch | 2 +- ...gic-to-read-the-grubenv-file-and-set.patch | 2 +- ...e-the-firmware-acceleration-for-http.patch | 25 + ...ot_url-reflect-the-protocol-hostname.patch | 50 + ...t-multiboot2-and-linux16-modules-on-.patch | 33 + 0210-Force-everything-to-use-python3.patch | 42 + ...patch => 0211-Fix-an-8-year-old-typo.patch | 4 +- ...n-don-t-run-autoreconf-in-the-topdir.patch | 21 + ...n-tell-configure-which-cflags-utils-.patch | 149 + ...make-it-possible-to-run-checkers-on-.patch | 58 + ...fier-report-the-filename-or-modname-.patch | 250 + ...fs-not-duplicate-symbols-from-efinet.patch | 27 + 0217-Rework-how-the-fdt-command-builds.patch | 118 + ...able-non-wordsize-allocations-on-arm.patch | 41 + grub.macros | 179 +- grub.patches | 422 +- grub2.spec | 45 +- release-to-master.patch | 8500 ++++++++++++++++- 250 files changed, 22098 insertions(+), 4843 deletions(-) create mode 100644 0001-Add-support-for-Linux-EFI-stub-loading.patch rename 0091-Rework-linux-command.patch => 0002-Rework-linux-command.patch (71%) rename 0092-Rework-linux16-command.patch => 0003-Rework-linux16-command.patch (83%) create mode 100644 0004-Add-secureboot-support-on-efi-chainloader.patch rename 0089-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch => 0005-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch (85%) rename 0102-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch => 0006-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch (72%) rename 0001-re-write-.gitignore.patch => 0007-re-write-.gitignore.patch (97%) rename 0002-IBM-client-architecture-CAS-reboot-support.patch => 0008-IBM-client-architecture-CAS-reboot-support.patch (92%) rename 0003-for-ppc-reset-console-display-attr-when-clear-screen.patch => 0009-for-ppc-reset-console-display-attr-when-clear-screen.patch (100%) rename 0004-Disable-GRUB-video-support-for-IBM-power-machines.patch => 0010-Disable-GRUB-video-support-for-IBM-power-machines.patch (98%) rename 0005-Honor-a-symlink-when-generating-configuration-by-gru.patch => 0011-Honor-a-symlink-when-generating-configuration-by-gru.patch (88%) rename 0006-Move-bash-completion-script-922997.patch => 0012-Move-bash-completion-script-922997.patch (92%) rename 0007-Update-to-minilzo-2.08.patch => 0013-Update-to-minilzo-2.08.patch (100%) rename 0008-Allow-fallback-to-include-entries-by-title-not-just-.patch => 0014-Allow-fallback-to-include-entries-by-title-not-just-.patch (100%) rename 0009-Add-GRUB_DISABLE_UUID.patch => 0015-Add-GRUB_DISABLE_UUID.patch (74%) rename 0010-Make-exit-take-a-return-code.patch => 0016-Make-exit-take-a-return-code.patch (97%) rename 0011-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch => 0017-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch (100%) rename 0012-Make-efi-machines-load-an-env-block-from-a-variable.patch => 0018-Make-efi-machines-load-an-env-block-from-a-variable.patch (96%) delete mode 100644 0019-Add-support-for-linuxefi.patch rename 0013-DHCP-client-ID-and-UUID-options-added.patch => 0019-DHCP-client-ID-and-UUID-options-added.patch (100%) delete mode 100644 0020-Use-linuxefi-and-initrdefi-where-appropriate.patch rename 0014-trim-arp-packets-with-abnormal-size.patch => 0020-trim-arp-packets-with-abnormal-size.patch (100%) delete mode 100644 0021-Don-t-allow-insmod-when-secure-boot-is-enabled.patch rename 0015-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch => 0021-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch (89%) rename 0016-Add-support-for-UEFI-operating-systems-returned-by-o.patch => 0022-Add-support-for-UEFI-operating-systems-returned-by-o.patch (100%) rename 0017-Migrate-PPC-from-Yaboot-to-Grub2.patch => 0023-Migrate-PPC-from-Yaboot-to-Grub2.patch (98%) rename 0018-Add-fw_path-variable-revised.patch => 0024-Add-fw_path-variable-revised.patch (100%) rename 0022-Pass-x-hex-hex-straight-through-unmolested.patch => 0025-Pass-x-hex-hex-straight-through-unmolested.patch (100%) rename 0023-Add-X-option-to-printf-functions.patch => 0026-Add-X-option-to-printf-functions.patch (100%) rename 0024-Search-for-specific-config-file-for-netboot.patch => 0027-Search-for-specific-config-file-for-netboot.patch (100%) rename 0025-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch => 0028-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch (99%) create mode 100644 0029-Add-devicetree-loading.patch rename 0026-Don-t-write-messages-to-the-screen.patch => 0030-Don-t-write-messages-to-the-screen.patch (91%) rename 0027-Don-t-print-GNU-GRUB-header.patch => 0031-Don-t-print-GNU-GRUB-header.patch (100%) rename 0028-Don-t-add-to-highlighted-row.patch => 0032-Don-t-add-to-highlighted-row.patch (100%) rename 0029-Message-string-cleanups.patch => 0033-Message-string-cleanups.patch (100%) rename 0030-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch => 0034-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch (100%) delete mode 100644 0035-Use-linux16-when-appropriate-880840.patch rename 0031-Use-the-correct-indentation-for-the-term-help-text.patch => 0035-Use-the-correct-indentation-for-the-term-help-text.patch (100%) rename 0032-Indent-menu-entries.patch => 0036-Indent-menu-entries.patch (100%) rename 0033-Fix-margins.patch => 0037-Fix-margins.patch (100%) rename 0034-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch => 0038-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch (100%) rename 0036-Enable-pager-by-default.-985860.patch => 0039-Enable-pager-by-default.-985860.patch (100%) rename 0037-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch => 0040-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch (100%) rename 0038-Don-t-say-GNU-Linux-in-generated-menus.patch => 0041-Don-t-say-GNU-Linux-in-generated-menus.patch (95%) rename 0039-Don-t-draw-a-border-around-the-menu.patch => 0042-Don-t-draw-a-border-around-the-menu.patch (100%) delete mode 100644 0042-Make-10_linux-work-with-our-changes-for-linux16-and-.patch delete mode 100644 0043-Don-t-print-during-fdt-loading-method.patch rename 0040-Use-the-standard-margin-for-the-timeout-string.patch => 0043-Use-the-standard-margin-for-the-timeout-string.patch (100%) rename 0041-Add-.eh_frame-to-list-of-relocations-stripped.patch => 0044-Add-.eh_frame-to-list-of-relocations-stripped.patch (100%) rename 0044-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch => 0045-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch (100%) rename 0045-Don-t-require-a-password-to-boot-entries-generated-b.patch => 0046-Don-t-require-a-password-to-boot-entries-generated-b.patch (96%) rename 0046-Don-t-emit-Booting-.-message.patch => 0047-Don-t-emit-Booting-.-message.patch (100%) rename 0047-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch => 0048-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch (99%) rename 0048-use-fw_path-prefix-when-fallback-searching-for-grub-.patch => 0049-use-fw_path-prefix-when-fallback-searching-for-grub-.patch (100%) rename 0049-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch => 0050-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch (100%) rename 0050-Fix-convert-function-to-support-NVMe-devices.patch => 0051-Fix-convert-function-to-support-NVMe-devices.patch (100%) delete mode 100644 0051-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch delete mode 100644 0052-Use-the-default-device-tree-from-the-grub-default-fi.patch rename 0053-reopen-SNP-protocol-for-exclusive-use-by-grub.patch => 0052-reopen-SNP-protocol-for-exclusive-use-by-grub.patch (100%) rename 0054-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch => 0053-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch (100%) rename 0055-Add-grub_util_readlink.patch => 0054-Add-grub_util_readlink.patch (100%) rename 0056-Make-editenv-chase-symlinks-including-those-across-d.patch => 0055-Make-editenv-chase-symlinks-including-those-across-d.patch (97%) rename 0057-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch => 0056-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch (96%) rename 0058-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch => 0057-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch (93%) rename 0060-Try-prefix-if-fw_path-doesn-t-work.patch => 0058-Try-prefix-if-fw_path-doesn-t-work.patch (98%) delete mode 100644 0059-Load-arm-with-SB-enabled.patch rename 0061-Update-info-with-grub.cfg-netboot-selection-order-11.patch => 0059-Update-info-with-grub.cfg-netboot-selection-order-11.patch (95%) rename 0062-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch => 0060-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch (97%) rename 0063-Handle-rssd-storage-devices.patch => 0061-Handle-rssd-storage-devices.patch (100%) rename 0065-Make-grub2-mkconfig-construct-titles-that-look-like-.patch => 0062-Make-grub2-mkconfig-construct-titles-that-look-like-.patch (62%) rename 0066-Add-friendly-grub2-password-config-tool-985962.patch => 0063-Add-friendly-grub2-password-config-tool-985962.patch (95%) delete mode 100644 0064-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch rename 0068-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch => 0064-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch (90%) rename 0069-tcp-add-window-scaling-support.patch => 0065-tcp-add-window-scaling-support.patch (100%) rename 0070-efinet-retransmit-if-our-device-is-busy.patch => 0066-efinet-retransmit-if-our-device-is-busy.patch (100%) rename 0071-Be-more-aggro-about-actually-using-the-configured-ne.patch => 0067-Be-more-aggro-about-actually-using-the-configured-ne.patch (100%) delete mode 100644 0067-Make-grub2-mkconfig-construct-titles-that-look-like-.patch rename 0072-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch => 0068-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch (100%) rename 0073-Fix-security-issue-when-reading-username-and-passwor.patch => 0069-Fix-security-issue-when-reading-username-and-passwor.patch (100%) rename 0074-Warn-if-grub-password-will-not-be-read-1290803.patch => 0070-Warn-if-grub-password-will-not-be-read-1290803.patch (100%) rename 0075-Clean-up-grub-setpassword-documentation-1290799.patch => 0071-Clean-up-grub-setpassword-documentation-1290799.patch (100%) rename 0076-Fix-locale-issue-in-grub-setpassword-1294243.patch => 0072-Fix-locale-issue-in-grub-setpassword-1294243.patch (100%) rename 0077-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch => 0073-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch (100%) rename 0078-efiemu-Fix-compilation-failure.patch => 0074-efiemu-Fix-compilation-failure.patch (100%) rename 0079-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch => 0075-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch (100%) rename 0080-Add-a-url-parser.patch => 0076-Add-a-url-parser.patch (99%) rename 0081-efinet-and-bootp-add-support-for-dhcpv6.patch => 0077-efinet-and-bootp-add-support-for-dhcpv6.patch (100%) rename 0082-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch => 0078-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch (92%) rename 0083-Normalize-slashes-in-tftp-paths.patch => 0079-Normalize-slashes-in-tftp-paths.patch (100%) rename 0084-Fix-malformed-tftp-packets.patch => 0080-Fix-malformed-tftp-packets.patch (100%) rename 0086-bz1374141-fix-incorrect-mask-for-ppc64.patch => 0081-bz1374141-fix-incorrect-mask-for-ppc64.patch (100%) rename 0090-Make-grub_fatal-also-backtrace.patch => 0082-Make-grub_fatal-also-backtrace.patch (99%) rename 0093-Make-grub-editenv-build-again.patch => 0083-Make-grub-editenv-build-again.patch (92%) rename 0094-Fix-up-some-man-pages-rpmdiff-noticed.patch => 0084-Fix-up-some-man-pages-rpmdiff-noticed.patch (99%) delete mode 100644 0085-Fix-race-in-EFI-validation.patch rename 0104-Make-exit-take-a-return-code.patch => 0085-Make-exit-take-a-return-code.patch (100%) rename 0105-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch => 0086-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch (93%) rename 0107-Make-our-info-pages-say-grub2-where-appropriate.patch => 0087-Make-our-info-pages-say-grub2-where-appropriate.patch (91%) delete mode 100644 0087-Use-device-part-of-chainloader-target-if-present.patch delete mode 100644 0088-Add-secureboot-support-on-efi-chainloader.patch rename 0108-print-more-debug-info-in-our-module-loader.patch => 0088-print-more-debug-info-in-our-module-loader.patch (93%) rename 0109-macos-just-build-chainloader-entries-don-t-try-any-x.patch => 0089-macos-just-build-chainloader-entries-don-t-try-any-x.patch (98%) rename 0110-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch => 0090-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch (99%) rename 0111-export-btrfs_subvol-and-btrfs_subvolid.patch => 0091-export-btrfs_subvol-and-btrfs_subvolid.patch (95%) rename 0112-grub2-btrfs-03-follow_default.patch => 0092-grub2-btrfs-03-follow_default.patch (99%) rename 0113-grub2-btrfs-04-grub2-install.patch => 0093-grub2-btrfs-04-grub2-install.patch (99%) rename 0114-grub2-btrfs-05-grub2-mkconfig.patch => 0094-grub2-btrfs-05-grub2-mkconfig.patch (94%) delete mode 100644 0095-Re-work-some-intricacies-of-PE-loading.patch rename 0115-grub2-btrfs-06-subvol-mount.patch => 0095-grub2-btrfs-06-subvol-mount.patch (99%) rename 0116-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch => 0096-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch (100%) delete mode 100644 0096-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch rename 0117-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch => 0097-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch (97%) delete mode 100644 0097-linuxefi-fix-double-free-on-verification-failure.patch rename 0118-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch => 0098-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch (99%) delete mode 100644 0098-fix-machine-type-test-in-30_os-prober.in.patch rename 0119-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch => 0099-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch (92%) delete mode 100644 0099-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch rename 0120-Use-grub_efi_.-memory-helpers-where-reasonable.patch => 0100-Use-grub_efi_.-memory-helpers-where-reasonable.patch (98%) delete mode 100644 0100-efi-chainloader-truncate-overlong-relocation-section.patch rename 0121-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch => 0101-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch (97%) delete mode 100644 0101-linuxefi-minor-cleanups.patch rename 0122-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch => 0102-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch (100%) delete mode 100644 0103-Fix-up-linux-params-usage.patch rename 0123-don-t-ignore-const.patch => 0103-don-t-ignore-const.patch (100%) rename 0124-don-t-use-int-for-efi-status.patch => 0104-don-t-use-int-for-efi-status.patch (82%) rename 0125-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch => 0105-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch (100%) delete mode 100644 0106-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch rename 0127-editenv-handle-relative-symlinks.patch => 0106-editenv-handle-relative-symlinks.patch (100%) rename 0128-Make-libgrub.pp-depend-on-config-util.h.patch => 0107-Make-libgrub.pp-depend-on-config-util.h.patch (100%) rename 0129-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch => 0108-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch (96%) rename 0132-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch => 0109-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch (91%) rename 0134-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch => 0110-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch (100%) rename 0135-align-struct-efi_variable-better.patch => 0111-align-struct-efi_variable-better.patch (96%) rename 0136-Add-quicksort-implementation.patch => 0112-Add-quicksort-implementation.patch (99%) rename 0137-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch => 0113-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch (97%) rename 0138-Add-BLS-support-to-grub-mkconfig.patch => 0114-Add-BLS-support-to-grub-mkconfig.patch (89%) rename 0139-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch => 0115-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch (100%) rename 0140-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch => 0116-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch (100%) rename 0141-Enable-blscfg-command-for-the-emu-platform.patch => 0117-Enable-blscfg-command-for-the-emu-platform.patch (94%) rename 0142-Add-linux-and-initrd-commands-for-grub-emu.patch => 0118-Add-linux-and-initrd-commands-for-grub-emu.patch (95%) rename 0143-Fix-the-efidir-in-grub-setpassword.patch => 0119-Fix-the-efidir-in-grub-setpassword.patch (100%) rename 0144-Add-grub2-switch-to-blscfg.patch => 0120-Add-grub2-switch-to-blscfg.patch (98%) rename 0145-Add-grub_debug_enabled.patch => 0121-Add-grub_debug_enabled.patch (97%) rename 0146-make-better-backtraces.patch => 0122-make-better-backtraces.patch (95%) rename 0147-normal-don-t-draw-our-startup-message-if-debug-is-se.patch => 0123-normal-don-t-draw-our-startup-message-if-debug-is-se.patch (100%) rename 0148-Work-around-some-minor-include-path-weirdnesses.patch => 0124-Work-around-some-minor-include-path-weirdnesses.patch (100%) rename 0149-Make-it-possible-to-enabled-build-id-sha1.patch => 0125-Make-it-possible-to-enabled-build-id-sha1.patch (95%) rename 0150-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch => 0126-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch (97%) delete mode 100644 0126-Clean-up-some-errors-in-the-linuxefi-loader.patch rename 0151-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch => 0127-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch (92%) rename 0152-Only-attempt-to-scan-different-BLS-directories-on-EF.patch => 0128-Only-attempt-to-scan-different-BLS-directories-on-EF.patch (97%) rename 0153-Core-TPM-support.patch => 0129-Core-TPM-support.patch (99%) delete mode 100644 0130-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch rename 0154-Measure-kernel-initrd.patch => 0130-Measure-kernel-initrd.patch (87%) rename 0155-Add-BIOS-boot-measurement.patch => 0131-Add-BIOS-boot-measurement.patch (99%) delete mode 100644 0131-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch rename 0156-Measure-kernel-and-initrd-on-BIOS-systems.patch => 0132-Measure-kernel-and-initrd-on-BIOS-systems.patch (91%) rename 0157-Measure-the-kernel-commandline.patch => 0133-Measure-the-kernel-commandline.patch (100%) delete mode 100644 0133-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch rename 0158-Measure-commands.patch => 0134-Measure-commands.patch (100%) rename 0159-Measure-multiboot-images-and-modules.patch => 0135-Measure-multiboot-images-and-modules.patch (87%) rename 0160-Fix-boot-when-there-s-no-TPM.patch => 0136-Fix-boot-when-there-s-no-TPM.patch (100%) rename 0161-Rework-TPM-measurements.patch => 0137-Rework-TPM-measurements.patch (93%) rename 0162-Fix-event-log-prefix.patch => 0138-Fix-event-log-prefix.patch (100%) rename 0163-Set-the-first-boot-menu-entry-as-default-when-using-.patch => 0139-Set-the-first-boot-menu-entry-as-default-when-using-.patch (90%) rename 0164-tpm-fix-warnings-when-compiling-for-platforms-other-.patch => 0140-tpm-fix-warnings-when-compiling-for-platforms-other-.patch (100%) rename 0165-Make-TPM-errors-less-fatal.patch => 0141-Make-TPM-errors-less-fatal.patch (91%) rename 0166-blscfg-handle-multiple-initramfs-images.patch => 0142-blscfg-handle-multiple-initramfs-images.patch (98%) rename 0167-BLS-Fix-grub2-switch-to-blscfg-on-non-EFI-machines.patch => 0143-BLS-Fix-grub2-switch-to-blscfg-on-non-EFI-machines.patch (100%) rename 0168-BLS-Use-etcdefaultgrub-instead-of-etc.patch => 0144-BLS-Use-etcdefaultgrub-instead-of-etc.patch (100%) rename 0169-Add-missing-options-to-grub2-switch-to-blscfg-man-pa.patch => 0145-Add-missing-options-to-grub2-switch-to-blscfg-man-pa.patch (100%) rename 0170-Make-grub2-switch-to-blscfg-to-generate-debug-BLS-wh.patch => 0146-Make-grub2-switch-to-blscfg-to-generate-debug-BLS-wh.patch (100%) rename 0171-Make-grub2-switch-to-blscfg-to-generate-BLS-fragment.patch => 0147-Make-grub2-switch-to-blscfg-to-generate-BLS-fragment.patch (100%) rename 0172-Only-attempt-to-query-dev-mounted-in-boot-efi-as-boo.patch => 0148-Only-attempt-to-query-dev-mounted-in-boot-efi-as-boo.patch (95%) rename 0173-Include-OSTree-path-when-searching-kernels-images-if.patch => 0149-Include-OSTree-path-when-searching-kernels-images-if.patch (94%) rename 0174-Use-BLS-version-field-to-compare-entries-if-id-field.patch => 0150-Use-BLS-version-field-to-compare-entries-if-id-field.patch (96%) rename 0175-Add-version-field-to-BLS-generated-by-grub2-switch-t.patch => 0151-Add-version-field-to-BLS-generated-by-grub2-switch-t.patch (100%) rename 0176-Fixup-for-newer-compiler.patch => 0152-Fixup-for-newer-compiler.patch (93%) rename 0177-Don-t-attempt-to-export-the-start-and-_start-symbols.patch => 0153-Don-t-attempt-to-export-the-start-and-_start-symbols.patch (100%) rename 0178-Simplify-BLS-entry-key-val-pairs-lookup.patch => 0154-Simplify-BLS-entry-key-val-pairs-lookup.patch (99%) rename 0179-Add-relative-path-to-the-kernel-and-initrds-BLS-fiel.patch => 0155-Add-relative-path-to-the-kernel-and-initrds-BLS-fiel.patch (100%) rename 0180-Skip-leading-spaces-on-BLS-field-values.patch => 0156-Skip-leading-spaces-on-BLS-field-values.patch (97%) rename 0181-Fixup-for-newer-compiler.patch => 0157-Fixup-for-newer-compiler.patch (100%) rename 0182-TPM-Fix-hash_log_extend_event-function-prototype.patch => 0158-TPM-Fix-hash_log_extend_event-function-prototype.patch (100%) rename 0183-TPM-Fix-compiler-warnings.patch => 0159-TPM-Fix-compiler-warnings.patch (100%) rename 0184-grub-switch-to-blscfg.in-get-rid-of-a-bunch-of-bashi.patch => 0160-grub-switch-to-blscfg.in-get-rid-of-a-bunch-of-bashi.patch (100%) rename 0185-grub-switch-to-blscfg.in-Better-boot-prefix-checking.patch => 0161-grub-switch-to-blscfg.in-Better-boot-prefix-checking.patch (100%) rename 0186-Use-boot-loader-entries-as-BLS-directory-path-also-o.patch => 0162-Use-boot-loader-entries-as-BLS-directory-path-also-o.patch (99%) rename 0187-Use-BLS-fragment-filename-as-menu-entry-id-and-for-c.patch => 0163-Use-BLS-fragment-filename-as-menu-entry-id-and-for-c.patch (98%) rename 0188-Fix-grub-switch-to-blscfg-boot-prefix-handling.patch => 0164-Fix-grub-switch-to-blscfg-boot-prefix-handling.patch (100%) create mode 100644 0165-Revert-trim-arp-packets-with-abnormal-size.patch create mode 100644 0166-Use-xid-to-match-DHCP-replies.patch create mode 100644 0167-Add-support-for-non-Ethernet-network-cards.patch create mode 100644 0168-misc-fix-invalid-character-recongition-in-strto-l.patch create mode 100644 0169-net-read-bracketed-ipv6-addrs-and-port-numbers.patch create mode 100644 0170-net-read-bracketed-ipv6-addrs-and-port-numbers-pjone.patch create mode 100644 0171-bootp-New-net_bootp6-command.patch create mode 100644 0172-Put-back-our-code-to-add-a-local-route.patch create mode 100644 0173-efinet-UEFI-IPv6-PXE-support.patch create mode 100644 0174-grub.texi-Add-net_bootp6-doument.patch create mode 100644 0175-bootp-Add-processing-DHCPACK-packet-from-HTTP-Boot.patch create mode 100644 0176-efinet-Setting-network-from-UEFI-device-path.patch create mode 100644 0177-efinet-Setting-DNS-server-from-UEFI-protocol.patch create mode 100644 0178-Fix-one-more-coverity-complaint.patch create mode 100644 0179-Fix-grub_net_hwaddr_to_str.patch create mode 100644 0180-Support-UEFI-networking-protocols.patch create mode 100644 0181-AUDIT-0-http-boot-tracker-bug.patch create mode 100644 0182-grub-core-video-efi_gop.c-Add-support-for-BLT_ONLY-a.patch create mode 100644 0183-efi-uga-use-64-bit-for-fb_base.patch create mode 100644 0184-EFI-console-Do-not-set-text-mode-until-we-actually-n.patch create mode 100644 0185-EFI-console-Add-grub_console_read_key_stroke-helper-.patch create mode 100644 0186-EFI-console-Implement-getkeystatus-support.patch create mode 100644 0187-Make-grub_getkeystatus-helper-funtion-available-ever.patch create mode 100644 0188-Accept-ESC-F8-and-holding-SHIFT-as-user-interrupt-ke.patch create mode 100644 0189-Fix-grub-setpassword-o-s-output-path.patch create mode 100644 0190-Make-grub-set-password-be-named-like-all-the-other-g.patch create mode 100644 0191-gentpl-add-disable-support.patch create mode 100644 0192-gentpl-add-pc-firmware-type.patch rename 0189-blscfg-remove-unused-typedef.patch => 0193-blscfg-remove-unused-typedef.patch (95%) rename 0190-blscfg-don-t-dynamically-allocate-default_blsdir.patch => 0194-blscfg-don-t-dynamically-allocate-default_blsdir.patch (97%) rename 0191-blscfg-sort-BLS-entries-by-version-field.patch => 0195-blscfg-sort-BLS-entries-by-version-field.patch (98%) rename 0192-blscfg-remove-NULL-guards-around-grub_free.patch => 0196-blscfg-remove-NULL-guards-around-grub_free.patch (97%) rename 0193-blscfg-fix-filename-in-no-linux-key-error.patch => 0197-blscfg-fix-filename-in-no-linux-key-error.patch (97%) rename 0194-blscfg-don-t-leak-bls_entry.filename.patch => 0198-blscfg-don-t-leak-bls_entry.filename.patch (95%) rename 0195-blscfg-fix-compilation-on-EFI-and-EMU.patch => 0199-blscfg-fix-compilation-on-EFI-and-EMU.patch (97%) rename 0196-Add-loadenv-to-blscfg-and-loadenv-source-file-list.patch => 0200-Add-loadenv-to-blscfg-and-loadenv-source-file-list.patch (91%) rename 0197-blscfg-Get-rid-of-the-linuxefi-linux16-linux-distinc.patch => 0201-blscfg-Get-rid-of-the-linuxefi-linux16-linux-distinc.patch (97%) rename 0198-grub-switch-to-blscfg-Only-fix-boot-prefix-for-non-g.patch => 0202-grub-switch-to-blscfg-Only-fix-boot-prefix-for-non-g.patch (100%) delete mode 100644 0203-Put-our-bls_import-compat-command-in-this-tree-as-we.patch rename 0199-blscfg-Expand-the-BLS-options-field-instead-of-showi.patch => 0203-blscfg-Expand-the-BLS-options-field-instead-of-showi.patch (98%) rename 0200-blscfg-Fallback-to-search-BLS-snippets-in-boot-loade.patch => 0204-blscfg-Fallback-to-search-BLS-snippets-in-boot-loade.patch (98%) rename 0201-blscfg-Don-t-attempt-to-sort-by-version-if-not-prese.patch => 0205-blscfg-Don-t-attempt-to-sort-by-version-if-not-prese.patch (98%) rename 0202-blscfg-remove-logic-to-read-the-grubenv-file-and-set.patch => 0206-blscfg-remove-logic-to-read-the-grubenv-file-and-set.patch (99%) create mode 100644 0207-efinet-also-use-the-firmware-acceleration-for-http.patch create mode 100644 0208-efi-http-Make-root_url-reflect-the-protocol-hostname.patch create mode 100644 0209-Disable-multiboot-multiboot2-and-linux16-modules-on-.patch create mode 100644 0210-Force-everything-to-use-python3.patch rename 0204-Fix-an-8-year-old-typo.patch => 0211-Fix-an-8-year-old-typo.patch (91%) create mode 100644 0212-autogen-don-t-run-autoreconf-in-the-topdir.patch create mode 100644 0213-Make-it-so-we-can-tell-configure-which-cflags-utils-.patch create mode 100644 0214-module-verifier-make-it-possible-to-run-checkers-on-.patch create mode 100644 0215-grub-module-verifier-report-the-filename-or-modname-.patch create mode 100644 0216-Make-efi_netfs-not-duplicate-symbols-from-efinet.patch create mode 100644 0217-Rework-how-the-fdt-command-builds.patch create mode 100644 0218-Disable-non-wordsize-allocations-on-arm.patch diff --git a/0001-Add-support-for-Linux-EFI-stub-loading.patch b/0001-Add-support-for-Linux-EFI-stub-loading.patch new file mode 100644 index 00000000..88fae3cd --- /dev/null +++ b/0001-Add-support-for-Linux-EFI-stub-loading.patch @@ -0,0 +1,997 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Matthew Garrett +Date: Tue, 10 Jul 2012 11:58:52 -0400 +Subject: [PATCH] Add support for Linux EFI stub loading. + +Also: + +commit 71c843745f22f81e16d259e2e19c99bf3c1855c1 +Author: Colin Watson +Date: Tue Oct 23 10:40:49 2012 -0400 + +Don't allow insmod when secure boot is enabled. + +Hi, + +Fedora's patch to forbid insmod in UEFI Secure Boot environments is fine +as far as it goes. However, the insmod command is not the only way that +modules can be loaded. In particular, the 'normal' command, which +implements the usual GRUB menu and the fully-featured command prompt, +will implicitly load commands not currently loaded into memory. This +permits trivial Secure Boot violations by writing commands implementing +whatever you want to do and pointing $prefix at the malicious code. + +I'm currently test-building this patch (replacing your current +grub-2.00-no-insmod-on-sb.patch), but this should be more correct. It +moves the check into grub_dl_load_file. +--- + grub-core/Makefile.core.def | 16 +- + grub-core/kern/dl.c | 21 +++ + grub-core/kern/efi/efi.c | 28 ++++ + grub-core/kern/efi/mm.c | 32 ++++ + grub-core/loader/arm64/linux.c | 118 +++++++------- + grub-core/loader/arm64/xen_boot.c | 1 - + grub-core/loader/efi/linux.c | 70 ++++++++ + grub-core/loader/i386/efi/linux.c | 335 ++++++++++++++++++++++++++++++++++++++ + grub-core/loader/i386/pc/linux.c | 10 +- + include/grub/arm/linux.h | 9 + + include/grub/arm64/linux.h | 10 ++ + include/grub/efi/efi.h | 7 +- + include/grub/efi/linux.h | 31 ++++ + include/grub/i386/linux.h | 1 + + 14 files changed, 620 insertions(+), 69 deletions(-) + create mode 100644 grub-core/loader/efi/linux.c + create mode 100644 grub-core/loader/i386/efi/linux.c + create mode 100644 include/grub/efi/linux.h + +diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def +index 9590e87d9c0..0b4b0c2122d 100644 +--- a/grub-core/Makefile.core.def ++++ b/grub-core/Makefile.core.def +@@ -1626,13 +1626,6 @@ module = { + enable = i386_pc; + }; + +- +-module = { +- name = linux16; +- common = loader/i386/pc/linux.c; +- enable = x86; +-}; +- + module = { + name = ntldr; + i386_pc = loader/i386/pc/ntldr.c; +@@ -1685,7 +1678,9 @@ module = { + + module = { + name = linux; +- x86 = loader/i386/linux.c; ++ i386_pc = loader/i386/pc/linux.c; ++ x86_64_efi = loader/i386/efi/linux.c; ++ i386_efi = loader/i386/efi/linux.c; + xen = loader/i386/xen.c; + i386_pc = lib/i386/pc/vesa_modes_table.c; + mips = loader/mips/linux.c; +@@ -1696,9 +1691,14 @@ module = { + arm_efi = loader/arm64/linux.c; + arm_uboot = loader/arm/linux.c; + arm64 = loader/arm64/linux.c; ++ emu = loader/emu/linux.c; ++ fdt = lib/fdt.c; ++ + common = loader/linux.c; + common = lib/cmdline.c; + enable = noemu; ++ ++ efi = loader/efi/linux.c; + }; + + module = { +diff --git a/grub-core/kern/dl.c b/grub-core/kern/dl.c +index e394cd96f8c..04e804d1668 100644 +--- a/grub-core/kern/dl.c ++++ b/grub-core/kern/dl.c +@@ -38,6 +38,14 @@ + #define GRUB_MODULES_MACHINE_READONLY + #endif + ++#ifdef GRUB_MACHINE_EMU ++#include ++#endif ++ ++#ifdef GRUB_MACHINE_EFI ++#include ++#endif ++ + + + #pragma GCC diagnostic ignored "-Wcast-align" +@@ -686,6 +694,19 @@ grub_dl_load_file (const char *filename) + void *core = 0; + grub_dl_t mod = 0; + ++#ifdef GRUB_MACHINE_EFI ++ if (grub_efi_secure_boot ()) ++ { ++#if 0 ++ /* This is an error, but grub2-mkconfig still generates a pile of ++ * insmod commands, so emitting it would be mostly just obnoxious. */ ++ grub_error (GRUB_ERR_ACCESS_DENIED, ++ "Secure Boot forbids loading module from %s", filename); ++#endif ++ return 0; ++ } ++#endif ++ + grub_boot_time ("Loading module %s", filename); + + file = grub_file_open (filename); +diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c +index 708581fcbde..c8a9d8307c0 100644 +--- a/grub-core/kern/efi/efi.c ++++ b/grub-core/kern/efi/efi.c +@@ -273,6 +273,34 @@ grub_efi_get_variable (const char *var, const grub_efi_guid_t *guid, + return NULL; + } + ++grub_efi_boolean_t ++grub_efi_secure_boot (void) ++{ ++ grub_efi_guid_t efi_var_guid = GRUB_EFI_GLOBAL_VARIABLE_GUID; ++ grub_size_t datasize; ++ char *secure_boot = NULL; ++ char *setup_mode = NULL; ++ grub_efi_boolean_t ret = 0; ++ ++ secure_boot = grub_efi_get_variable("SecureBoot", &efi_var_guid, &datasize); ++ ++ if (datasize != 1 || !secure_boot) ++ goto out; ++ ++ setup_mode = grub_efi_get_variable("SetupMode", &efi_var_guid, &datasize); ++ ++ if (datasize != 1 || !setup_mode) ++ goto out; ++ ++ if (*secure_boot && !*setup_mode) ++ ret = 1; ++ ++ out: ++ grub_free (secure_boot); ++ grub_free (setup_mode); ++ return ret; ++} ++ + #pragma GCC diagnostic ignored "-Wcast-align" + + /* Search the mods section from the PE32/PE32+ image. This code uses +diff --git a/grub-core/kern/efi/mm.c b/grub-core/kern/efi/mm.c +index 42ad7c570a5..5cdf6c943f2 100644 +--- a/grub-core/kern/efi/mm.c ++++ b/grub-core/kern/efi/mm.c +@@ -113,6 +113,38 @@ grub_efi_drop_alloc (grub_efi_physical_address_t address, + } + } + ++/* Allocate pages below a specified address */ ++void * ++grub_efi_allocate_pages_max (grub_efi_physical_address_t max, ++ grub_efi_uintn_t pages) ++{ ++ grub_efi_status_t status; ++ grub_efi_boot_services_t *b; ++ grub_efi_physical_address_t address = max; ++ ++ if (max > 0xffffffff) ++ return 0; ++ ++ b = grub_efi_system_table->boot_services; ++ status = efi_call_4 (b->allocate_pages, GRUB_EFI_ALLOCATE_MAX_ADDRESS, GRUB_EFI_LOADER_DATA, pages, &address); ++ ++ if (status != GRUB_EFI_SUCCESS) ++ return 0; ++ ++ if (address == 0) ++ { ++ /* Uggh, the address 0 was allocated... This is too annoying, ++ so reallocate another one. */ ++ address = max; ++ status = efi_call_4 (b->allocate_pages, GRUB_EFI_ALLOCATE_MAX_ADDRESS, GRUB_EFI_LOADER_DATA, pages, &address); ++ grub_efi_free_pages (0, pages); ++ if (status != GRUB_EFI_SUCCESS) ++ return 0; ++ } ++ ++ return (void *) ((grub_addr_t) address); ++} ++ + /* Allocate pages. Return the pointer to the first of allocated pages. */ + void * + grub_efi_allocate_pages_real (grub_efi_physical_address_t address, +diff --git a/grub-core/loader/arm64/linux.c b/grub-core/loader/arm64/linux.c +index 1f86229f86b..6c00af98dce 100644 +--- a/grub-core/loader/arm64/linux.c ++++ b/grub-core/loader/arm64/linux.c +@@ -29,6 +29,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -40,6 +41,7 @@ static int loaded; + + static void *kernel_addr; + static grub_uint64_t kernel_size; ++static grub_uint32_t handover_offset; + + static char *linux_args; + static grub_uint32_t cmdline_size; +@@ -66,7 +68,8 @@ grub_armxx_efi_linux_check_image (struct linux_armxx_kernel_header * lh) + static grub_err_t + finalize_params_linux (void) + { +- int node, retval; ++ grub_efi_loaded_image_t *loaded_image = NULL; ++ int node, retval, len; + + void *fdt; + +@@ -101,79 +104,70 @@ finalize_params_linux (void) + if (grub_fdt_install() != GRUB_ERR_NONE) + goto failure; + +- return GRUB_ERR_NONE; +- +-failure: +- grub_fdt_unload(); +- return grub_error(GRUB_ERR_BAD_OS, "failed to install/update FDT"); +-} +- +-grub_err_t +-grub_armxx_efi_linux_boot_image (grub_addr_t addr, grub_size_t size, char *args) +-{ +- grub_efi_memory_mapped_device_path_t *mempath; +- grub_efi_handle_t image_handle; +- grub_efi_boot_services_t *b; +- grub_efi_status_t status; +- grub_efi_loaded_image_t *loaded_image; +- int len; +- +- mempath = grub_malloc (2 * sizeof (grub_efi_memory_mapped_device_path_t)); +- if (!mempath) +- return grub_errno; +- +- mempath[0].header.type = GRUB_EFI_HARDWARE_DEVICE_PATH_TYPE; +- mempath[0].header.subtype = GRUB_EFI_MEMORY_MAPPED_DEVICE_PATH_SUBTYPE; +- mempath[0].header.length = grub_cpu_to_le16_compile_time (sizeof (*mempath)); +- mempath[0].memory_type = GRUB_EFI_LOADER_DATA; +- mempath[0].start_address = addr; +- mempath[0].end_address = addr + size; +- +- mempath[1].header.type = GRUB_EFI_END_DEVICE_PATH_TYPE; +- mempath[1].header.subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE; +- mempath[1].header.length = sizeof (grub_efi_device_path_t); +- +- b = grub_efi_system_table->boot_services; +- status = b->load_image (0, grub_efi_image_handle, +- (grub_efi_device_path_t *) mempath, +- (void *) addr, size, &image_handle); +- if (status != GRUB_EFI_SUCCESS) +- return grub_error (GRUB_ERR_BAD_OS, "cannot load image"); +- +- grub_dprintf ("linux", "linux command line: '%s'\n", args); ++ grub_dprintf ("linux", "Installed/updated FDT configuration table @ %p\n", ++ fdt); + + /* Convert command line to UCS-2 */ +- loaded_image = grub_efi_get_loaded_image (image_handle); ++ loaded_image = grub_efi_get_loaded_image (grub_efi_image_handle); ++ if (!loaded_image) ++ goto failure; ++ + loaded_image->load_options_size = len = +- (grub_strlen (args) + 1) * sizeof (grub_efi_char16_t); ++ (grub_strlen (linux_args) + 1) * sizeof (grub_efi_char16_t); + loaded_image->load_options = + grub_efi_allocate_any_pages (GRUB_EFI_BYTES_TO_PAGES (loaded_image->load_options_size)); + if (!loaded_image->load_options) +- return grub_errno; ++ return grub_error(GRUB_ERR_BAD_OS, "failed to create kernel parameters"); + + loaded_image->load_options_size = + 2 * grub_utf8_to_utf16 (loaded_image->load_options, len, +- (grub_uint8_t *) args, len, NULL); ++ (grub_uint8_t *) linux_args, len, NULL); + +- grub_dprintf ("linux", "starting image %p\n", image_handle); +- status = b->start_image (image_handle, 0, NULL); ++ return GRUB_ERR_NONE; + +- /* When successful, not reached */ +- b->unload_image (image_handle); +- grub_efi_free_pages ((grub_addr_t) loaded_image->load_options, +- GRUB_EFI_BYTES_TO_PAGES (loaded_image->load_options_size)); ++failure: ++ grub_fdt_unload(); ++ return grub_error(GRUB_ERR_BAD_OS, "failed to install/update FDT"); ++} + +- return grub_errno; ++static void ++free_params (void) ++{ ++ grub_efi_loaded_image_t *loaded_image = NULL; ++ ++ loaded_image = grub_efi_get_loaded_image (grub_efi_image_handle); ++ if (loaded_image) ++ { ++ if (loaded_image->load_options) ++ grub_efi_free_pages ((grub_efi_physical_address_t)(grub_efi_uintn_t)loaded_image->load_options, ++ GRUB_EFI_BYTES_TO_PAGES (loaded_image->load_options_size)); ++ loaded_image->load_options = NULL; ++ loaded_image->load_options_size = 0; ++ } ++} ++ ++grub_err_t ++grub_armxx_efi_linux_boot_image (grub_addr_t addr, char *args) ++{ ++ grub_err_t retval; ++ ++ retval = finalize_params_linux (); ++ if (retval != GRUB_ERR_NONE) ++ return grub_errno; ++ ++ grub_dprintf ("linux", "linux command line: '%s'\n", args); ++ ++ retval = grub_efi_linux_boot ((char *)addr, handover_offset, (void *)addr); ++ ++ /* Never reached... */ ++ free_params(); ++ return retval; + } + + static grub_err_t + grub_linux_boot (void) + { +- if (finalize_params_linux () != GRUB_ERR_NONE) +- return grub_errno; +- +- return (grub_armxx_efi_linux_boot_image((grub_addr_t)kernel_addr, +- kernel_size, linux_args)); ++ return grub_armxx_efi_linux_boot_image((grub_addr_t)kernel_addr, linux_args); + } + + static grub_err_t +@@ -287,6 +281,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), + { + grub_file_t file = 0; + struct linux_armxx_kernel_header lh; ++ struct grub_armxx_linux_pe_header *pe; + + grub_dl_ref (my_mod); + +@@ -331,6 +326,15 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), + + grub_dprintf ("linux", "kernel @ %p\n", kernel_addr); + ++ if (!grub_linuxefi_secure_validate (kernel_addr, kernel_size)) ++ { ++ grub_error (GRUB_ERR_INVALID_COMMAND, N_("%s has invalid signature"), argv[0]); ++ goto fail; ++ } ++ ++ pe = (void *)((unsigned long)kernel_addr + lh.hdr_offset); ++ handover_offset = pe->opt.entry_addr; ++ + cmdline_size = grub_loader_cmdline_size (argc, argv) + sizeof (LINUX_IMAGE); + linux_args = grub_malloc (cmdline_size); + if (!linux_args) +diff --git a/grub-core/loader/arm64/xen_boot.c b/grub-core/loader/arm64/xen_boot.c +index 1003a0b9997..f35b16caa92 100644 +--- a/grub-core/loader/arm64/xen_boot.c ++++ b/grub-core/loader/arm64/xen_boot.c +@@ -266,7 +266,6 @@ xen_boot (void) + return err; + + return grub_armxx_efi_linux_boot_image (xen_hypervisor->start, +- xen_hypervisor->size, + xen_hypervisor->cmdline); + } + +diff --git a/grub-core/loader/efi/linux.c b/grub-core/loader/efi/linux.c +new file mode 100644 +index 00000000000..c24202a5dd1 +--- /dev/null ++++ b/grub-core/loader/efi/linux.c +@@ -0,0 +1,70 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2014 Free Software Foundation, Inc. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#define SHIM_LOCK_GUID \ ++ { 0x605dab50, 0xe046, 0x4300, {0xab, 0xb6, 0x3d, 0xd8, 0x10, 0xdd, 0x8b, 0x23} } ++ ++struct grub_efi_shim_lock ++{ ++ grub_efi_status_t (*verify) (void *buffer, grub_uint32_t size); ++}; ++typedef struct grub_efi_shim_lock grub_efi_shim_lock_t; ++ ++grub_efi_boolean_t ++grub_linuxefi_secure_validate (void *data, grub_uint32_t size) ++{ ++ grub_efi_guid_t guid = SHIM_LOCK_GUID; ++ grub_efi_shim_lock_t *shim_lock; ++ ++ shim_lock = grub_efi_locate_protocol(&guid, NULL); ++ ++ if (!shim_lock) ++ return 1; ++ ++ if (shim_lock->verify(data, size) == GRUB_EFI_SUCCESS) ++ return 1; ++ ++ return 0; ++} ++ ++#pragma GCC diagnostic push ++#pragma GCC diagnostic ignored "-Wcast-align" ++ ++typedef void (*handover_func) (void *, grub_efi_system_table_t *, void *); ++ ++grub_err_t ++grub_efi_linux_boot (void *kernel_addr, grub_off_t offset, ++ void *kernel_params) ++{ ++ handover_func hf; ++ ++ hf = (handover_func)((char *)kernel_addr + offset); ++ hf (grub_efi_image_handle, grub_efi_system_table, kernel_params); ++ ++ return GRUB_ERR_BUG; ++} ++ ++#pragma GCC diagnostic pop +diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c +new file mode 100644 +index 00000000000..3db82e782df +--- /dev/null ++++ b/grub-core/loader/i386/efi/linux.c +@@ -0,0 +1,335 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2012 Free Software Foundation, Inc. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++GRUB_MOD_LICENSE ("GPLv3+"); ++ ++static grub_dl_t my_mod; ++static int loaded; ++static void *kernel_mem; ++static grub_uint64_t kernel_size; ++static grub_uint8_t *initrd_mem; ++static grub_uint32_t handover_offset; ++struct linux_kernel_params *params; ++static char *linux_cmdline; ++ ++#define BYTES_TO_PAGES(bytes) (((bytes) + 0xfff) >> 12) ++ ++static grub_err_t ++grub_linuxefi_boot (void) ++{ ++ int offset = 0; ++ ++#ifdef __x86_64__ ++ offset = 512; ++#endif ++ asm volatile ("cli"); ++ ++ return grub_efi_linux_boot ((char *)kernel_mem, handover_offset + offset, ++ params); ++} ++ ++static grub_err_t ++grub_linuxefi_unload (void) ++{ ++ grub_dl_unref (my_mod); ++ loaded = 0; ++ if (initrd_mem) ++ grub_efi_free_pages ((grub_efi_physical_address_t)(grub_addr_t)initrd_mem, ++ BYTES_TO_PAGES(params->ramdisk_size)); ++ if (linux_cmdline) ++ grub_efi_free_pages ((grub_efi_physical_address_t)(grub_addr_t) ++ linux_cmdline, ++ BYTES_TO_PAGES(params->cmdline_size + 1)); ++ if (kernel_mem) ++ grub_efi_free_pages ((grub_efi_physical_address_t)(grub_addr_t)kernel_mem, ++ BYTES_TO_PAGES(kernel_size)); ++ if (params) ++ grub_efi_free_pages ((grub_efi_physical_address_t)(grub_addr_t)params, ++ BYTES_TO_PAGES(16384)); ++ return GRUB_ERR_NONE; ++} ++ ++static grub_err_t ++grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), ++ int argc, char *argv[]) ++{ ++ grub_file_t *files = 0; ++ int i, nfiles = 0; ++ grub_size_t size = 0; ++ grub_uint8_t *ptr; ++ ++ if (argc == 0) ++ { ++ grub_error (GRUB_ERR_BAD_ARGUMENT, N_("filename expected")); ++ goto fail; ++ } ++ ++ if (!loaded) ++ { ++ grub_error (GRUB_ERR_BAD_ARGUMENT, N_("you need to load the kernel first")); ++ goto fail; ++ } ++ ++ files = grub_zalloc (argc * sizeof (files[0])); ++ if (!files) ++ goto fail; ++ ++ for (i = 0; i < argc; i++) ++ { ++ grub_file_filter_disable_compression (); ++ files[i] = grub_file_open (argv[i]); ++ if (! files[i]) ++ goto fail; ++ nfiles++; ++ size += ALIGN_UP (grub_file_size (files[i]), 4); ++ } ++ ++ initrd_mem = grub_efi_allocate_pages_max (0x3fffffff, BYTES_TO_PAGES(size)); ++ if (!initrd_mem) ++ { ++ grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("can't allocate initrd")); ++ goto fail; ++ } ++ ++ params->ramdisk_size = size; ++ params->ramdisk_image = (grub_uint32_t)(grub_addr_t) initrd_mem; ++ ++ ptr = initrd_mem; ++ ++ for (i = 0; i < nfiles; i++) ++ { ++ grub_ssize_t cursize = grub_file_size (files[i]); ++ if (grub_file_read (files[i], ptr, cursize) != cursize) ++ { ++ if (!grub_errno) ++ grub_error (GRUB_ERR_FILE_READ_ERROR, N_("premature end of file %s"), ++ argv[i]); ++ goto fail; ++ } ++ ptr += cursize; ++ grub_memset (ptr, 0, ALIGN_UP_OVERHEAD (cursize, 4)); ++ ptr += ALIGN_UP_OVERHEAD (cursize, 4); ++ } ++ ++ params->ramdisk_size = size; ++ ++ fail: ++ for (i = 0; i < nfiles; i++) ++ grub_file_close (files[i]); ++ grub_free (files); ++ ++ if (initrd_mem && grub_errno) ++ grub_efi_free_pages ((grub_efi_physical_address_t)(grub_addr_t)initrd_mem, ++ BYTES_TO_PAGES(size)); ++ ++ return grub_errno; ++} ++ ++static grub_err_t ++grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), ++ int argc, char *argv[]) ++{ ++ grub_file_t file = 0; ++ struct linux_kernel_header lh; ++ grub_ssize_t len, start, filelen; ++ void *kernel = NULL; ++ ++ grub_dl_ref (my_mod); ++ ++ if (argc == 0) ++ { ++ grub_error (GRUB_ERR_BAD_ARGUMENT, N_("filename expected")); ++ goto fail; ++ } ++ ++ file = grub_file_open (argv[0]); ++ if (! file) ++ goto fail; ++ ++ filelen = grub_file_size (file); ++ ++ kernel = grub_malloc(filelen); ++ ++ if (!kernel) ++ { ++ grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("cannot allocate kernel buffer")); ++ goto fail; ++ } ++ ++ if (grub_file_read (file, kernel, filelen) != filelen) ++ { ++ grub_error (GRUB_ERR_FILE_READ_ERROR, N_("Can't read kernel %s"), argv[0]); ++ goto fail; ++ } ++ ++ if (! grub_linuxefi_secure_validate (kernel, filelen)) ++ { ++ grub_error (GRUB_ERR_INVALID_COMMAND, N_("%s has invalid signature"), ++ argv[0]); ++ goto fail; ++ } ++ ++ params = grub_efi_allocate_pages_max (0x3fffffff, BYTES_TO_PAGES(16384)); ++ ++ if (! params) ++ { ++ grub_error (GRUB_ERR_OUT_OF_MEMORY, "cannot allocate kernel parameters"); ++ goto fail; ++ } ++ ++ grub_memset (params, 0, 16384); ++ ++ grub_memcpy (&lh, kernel, sizeof (lh)); ++ ++ if (lh.boot_flag != grub_cpu_to_le16 (0xaa55)) ++ { ++ grub_error (GRUB_ERR_BAD_OS, N_("invalid magic number")); ++ goto fail; ++ } ++ ++ if (lh.setup_sects > GRUB_LINUX_MAX_SETUP_SECTS) ++ { ++ grub_error (GRUB_ERR_BAD_OS, N_("too many setup sectors")); ++ goto fail; ++ } ++ ++ if (lh.version < grub_cpu_to_le16 (0x020b)) ++ { ++ grub_error (GRUB_ERR_BAD_OS, N_("kernel too old")); ++ goto fail; ++ } ++ ++ if (!lh.handover_offset) ++ { ++ grub_error (GRUB_ERR_BAD_OS, N_("kernel doesn't support EFI handover")); ++ goto fail; ++ } ++ ++ grub_dprintf ("linux", "setting up cmdline\n"); ++ linux_cmdline = grub_efi_allocate_pages_max(0x3fffffff, ++ BYTES_TO_PAGES(lh.cmdline_size + 1)); ++ ++ if (!linux_cmdline) ++ { ++ grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("can't allocate cmdline")); ++ goto fail; ++ } ++ ++ grub_memcpy (linux_cmdline, LINUX_IMAGE, sizeof (LINUX_IMAGE)); ++ grub_create_loader_cmdline (argc, argv, ++ linux_cmdline + sizeof (LINUX_IMAGE) - 1, ++ lh.cmdline_size - (sizeof (LINUX_IMAGE) - 1)); ++ ++ lh.cmd_line_ptr = (grub_uint32_t)(grub_addr_t)linux_cmdline; ++ ++ handover_offset = lh.handover_offset; ++ ++ start = (lh.setup_sects + 1) * 512; ++ len = grub_file_size(file) - start; ++ ++ kernel_mem = grub_efi_allocate_pages_max(lh.pref_address, ++ BYTES_TO_PAGES(lh.init_size)); ++ ++ if (!kernel_mem) ++ kernel_mem = grub_efi_allocate_pages_max(0x3fffffff, ++ BYTES_TO_PAGES(lh.init_size)); ++ ++ if (!kernel_mem) ++ { ++ grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("can't allocate kernel")); ++ goto fail; ++ } ++ ++ grub_memcpy (kernel_mem, (char *)kernel + start, len); ++ grub_loader_set (grub_linuxefi_boot, grub_linuxefi_unload, 0); ++ loaded=1; ++ ++ lh.code32_start = (grub_uint32_t)(grub_uint64_t) kernel_mem; ++ grub_memcpy (params, &lh, 2 * 512); ++ ++ params->type_of_loader = 0x21; ++ ++ fail: ++ ++ if (file) ++ grub_file_close (file); ++ ++ if (kernel) ++ grub_free (kernel); ++ ++ if (grub_errno != GRUB_ERR_NONE) ++ { ++ grub_dl_unref (my_mod); ++ loaded = 0; ++ } ++ ++ if (linux_cmdline && !loaded) ++ grub_efi_free_pages ((grub_efi_physical_address_t)(grub_addr_t) ++ linux_cmdline, ++ BYTES_TO_PAGES(lh.cmdline_size + 1)); ++ ++ if (kernel_mem && !loaded) ++ grub_efi_free_pages ((grub_efi_physical_address_t)(grub_addr_t)kernel_mem, ++ BYTES_TO_PAGES(kernel_size)); ++ ++ if (params && !loaded) ++ grub_efi_free_pages ((grub_efi_physical_address_t)(grub_addr_t)params, ++ BYTES_TO_PAGES(16384)); ++ ++ return grub_errno; ++} ++ ++static grub_command_t cmd_linux, cmd_initrd; ++static grub_command_t cmd_linuxefi, cmd_initrdefi; ++ ++GRUB_MOD_INIT(linux) ++{ ++ cmd_linux = ++ grub_register_command ("linux", grub_cmd_linux, ++ 0, N_("Load Linux.")); ++ cmd_linuxefi = ++ grub_register_command ("linuxefi", grub_cmd_linux, ++ 0, N_("Load Linux.")); ++ cmd_initrd = ++ grub_register_command ("initrd", grub_cmd_initrd, ++ 0, N_("Load initrd.")); ++ cmd_initrdefi = ++ grub_register_command ("initrdefi", grub_cmd_initrd, ++ 0, N_("Load initrd.")); ++ my_mod = mod; ++} ++ ++GRUB_MOD_FINI(linux) ++{ ++ grub_unregister_command (cmd_linux); ++ grub_unregister_command (cmd_linuxefi); ++ grub_unregister_command (cmd_initrd); ++ grub_unregister_command (cmd_initrdefi); ++} +diff --git a/grub-core/loader/i386/pc/linux.c b/grub-core/loader/i386/pc/linux.c +index b69cb7a3a7f..a3c87cf2fc2 100644 +--- a/grub-core/loader/i386/pc/linux.c ++++ b/grub-core/loader/i386/pc/linux.c +@@ -468,14 +468,20 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), + return grub_errno; + } + +-static grub_command_t cmd_linux, cmd_initrd; ++static grub_command_t cmd_linux, cmd_linux16, cmd_initrd, cmd_initrd16; + + GRUB_MOD_INIT(linux16) + { + cmd_linux = ++ grub_register_command ("linux", grub_cmd_linux, ++ 0, N_("Load Linux.")); ++ cmd_linux16 = + grub_register_command ("linux16", grub_cmd_linux, + 0, N_("Load Linux.")); + cmd_initrd = ++ grub_register_command ("initrd", grub_cmd_initrd, ++ 0, N_("Load initrd.")); ++ cmd_initrd16 = + grub_register_command ("initrd16", grub_cmd_initrd, + 0, N_("Load initrd.")); + my_mod = mod; +@@ -484,5 +490,7 @@ GRUB_MOD_INIT(linux16) + GRUB_MOD_FINI(linux16) + { + grub_unregister_command (cmd_linux); ++ grub_unregister_command (cmd_linux16); + grub_unregister_command (cmd_initrd); ++ grub_unregister_command (cmd_initrd16); + } +diff --git a/include/grub/arm/linux.h b/include/grub/arm/linux.h +index 712ba17b9ba..5900fc8a40c 100644 +--- a/include/grub/arm/linux.h ++++ b/include/grub/arm/linux.h +@@ -20,6 +20,7 @@ + #ifndef GRUB_ARM_LINUX_HEADER + #define GRUB_ARM_LINUX_HEADER 1 + ++#include + #include "system.h" + + #define GRUB_LINUX_ARM_MAGIC_SIGNATURE 0x016f2818 +@@ -34,9 +35,17 @@ struct linux_arm_kernel_header { + grub_uint32_t hdr_offset; + }; + ++struct grub_arm_linux_pe_header ++{ ++ grub_uint32_t magic; ++ struct grub_pe32_coff_header coff; ++ struct grub_pe32_optional_header opt; ++}; ++ + #if defined(__arm__) + # define GRUB_LINUX_ARMXX_MAGIC_SIGNATURE GRUB_LINUX_ARM_MAGIC_SIGNATURE + # define linux_armxx_kernel_header linux_arm_kernel_header ++# define grub_armxx_linux_pe_header grub_arm_linux_pe_header + #endif + + #if defined GRUB_MACHINE_UBOOT +diff --git a/include/grub/arm64/linux.h b/include/grub/arm64/linux.h +index 8655067e039..7b533b57139 100644 +--- a/include/grub/arm64/linux.h ++++ b/include/grub/arm64/linux.h +@@ -19,6 +19,8 @@ + #ifndef GRUB_ARM64_LINUX_HEADER + #define GRUB_ARM64_LINUX_HEADER 1 + ++#include ++ + #define GRUB_LINUX_ARM64_MAGIC_SIGNATURE 0x644d5241 /* 'ARM\x64' */ + + /* From linux/Documentation/arm64/booting.txt */ +@@ -36,9 +38,17 @@ struct linux_arm64_kernel_header + grub_uint32_t hdr_offset; /* Offset of PE/COFF header */ + }; + ++struct grub_arm64_linux_pe_header ++{ ++ grub_uint32_t magic; ++ struct grub_pe32_coff_header coff; ++ struct grub_pe64_optional_header opt; ++}; ++ + #if defined(__aarch64__) + # define GRUB_LINUX_ARMXX_MAGIC_SIGNATURE GRUB_LINUX_ARM64_MAGIC_SIGNATURE + # define linux_armxx_kernel_header linux_arm64_kernel_header ++# define grub_armxx_linux_pe_header grub_arm64_linux_pe_header + #endif + + #endif /* ! GRUB_ARM64_LINUX_HEADER */ +diff --git a/include/grub/efi/efi.h b/include/grub/efi/efi.h +index 2c6648d46fc..1061aee9726 100644 +--- a/include/grub/efi/efi.h ++++ b/include/grub/efi/efi.h +@@ -47,6 +47,9 @@ EXPORT_FUNC(grub_efi_allocate_fixed) (grub_efi_physical_address_t address, + grub_efi_uintn_t pages); + void * + EXPORT_FUNC(grub_efi_allocate_any_pages) (grub_efi_uintn_t pages); ++void * ++EXPORT_FUNC(grub_efi_allocate_pages_max) (grub_efi_physical_address_t max, ++ grub_efi_uintn_t pages); + void EXPORT_FUNC(grub_efi_free_pages) (grub_efi_physical_address_t address, + grub_efi_uintn_t pages); + grub_efi_uintn_t EXPORT_FUNC(grub_efi_find_mmap_size) (void); +@@ -82,6 +85,7 @@ EXPORT_FUNC (grub_efi_set_variable) (const char *var, + const grub_efi_guid_t *guid, + void *data, + grub_size_t datasize); ++grub_efi_boolean_t EXPORT_FUNC (grub_efi_secure_boot) (void); + int + EXPORT_FUNC (grub_efi_compare_device_paths) (const grub_efi_device_path_t *dp1, + const grub_efi_device_path_t *dp2); +@@ -95,8 +99,7 @@ void *EXPORT_FUNC(grub_efi_get_firmware_fdt)(void); + grub_err_t EXPORT_FUNC(grub_efi_get_ram_base)(grub_addr_t *); + #include + grub_err_t grub_armxx_efi_linux_check_image(struct linux_armxx_kernel_header *lh); +-grub_err_t grub_armxx_efi_linux_boot_image(grub_addr_t addr, grub_size_t size, +- char *args); ++grub_err_t grub_armxx_efi_linux_boot_image(grub_addr_t addr, char *args); + #endif + + grub_addr_t grub_efi_modules_addr (void); +diff --git a/include/grub/efi/linux.h b/include/grub/efi/linux.h +new file mode 100644 +index 00000000000..d9ede36773b +--- /dev/null ++++ b/include/grub/efi/linux.h +@@ -0,0 +1,31 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2014 Free Software Foundation, Inc. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++#ifndef GRUB_EFI_LINUX_HEADER ++#define GRUB_EFI_LINUX_HEADER 1 ++ ++#include ++#include ++#include ++ ++grub_efi_boolean_t ++EXPORT_FUNC(grub_linuxefi_secure_validate) (void *data, grub_uint32_t size); ++grub_err_t ++EXPORT_FUNC(grub_efi_linux_boot) (void *kernel_address, grub_off_t offset, ++ void *kernel_param); ++ ++#endif /* ! GRUB_EFI_LINUX_HEADER */ +diff --git a/include/grub/i386/linux.h b/include/grub/i386/linux.h +index 60c7c3b5e66..bb19dbd5a77 100644 +--- a/include/grub/i386/linux.h ++++ b/include/grub/i386/linux.h +@@ -142,6 +142,7 @@ struct linux_i386_kernel_header + grub_uint64_t setup_data; + grub_uint64_t pref_address; + grub_uint32_t init_size; ++ grub_uint32_t handover_offset; + } GRUB_PACKED; + + /* Boot parameters for Linux based on 2.6.12. This is used by the setup diff --git a/0091-Rework-linux-command.patch b/0002-Rework-linux-command.patch similarity index 71% rename from 0091-Rework-linux-command.patch rename to 0002-Rework-linux-command.patch index 43175ad5..485541ff 100644 --- a/0091-Rework-linux-command.patch +++ b/0002-Rework-linux-command.patch @@ -7,16 +7,18 @@ We want a single buffer that contains the entire kernel image in order to perform a TPM measurement. Allocate one and copy the entire kernel into it before pulling out the individual blocks later on. --- - grub-core/loader/i386/linux.c | 34 +++++++++++++++++++++------------- - 1 file changed, 21 insertions(+), 13 deletions(-) + grub-core/loader/i386/linux.c | 37 ++++++++++++++++++++++++------------- + 1 file changed, 24 insertions(+), 13 deletions(-) diff --git a/grub-core/loader/i386/linux.c b/grub-core/loader/i386/linux.c -index b2438547dd0..e4b8342f5d0 100644 +index 9b53d3168f9..f7186be4002 100644 --- a/grub-core/loader/i386/linux.c +++ b/grub-core/loader/i386/linux.c -@@ -681,12 +681,13 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), +@@ -685,13 +685,15 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), + { grub_file_t file = 0; - struct linux_kernel_header lh; + struct linux_i386_kernel_header lh; ++ grub_uint8_t *linux_params_ptr; grub_uint8_t setup_sects; - grub_size_t real_size, prot_size, prot_file_size; + grub_size_t real_size, prot_size, prot_file_size, kernel_offset; @@ -29,7 +31,7 @@ index b2438547dd0..e4b8342f5d0 100644 grub_dl_ref (my_mod); -@@ -700,7 +701,15 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), +@@ -705,7 +707,15 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), if (! file) goto fail; @@ -46,7 +48,7 @@ index b2438547dd0..e4b8342f5d0 100644 { if (!grub_errno) grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"), -@@ -708,6 +717,9 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), +@@ -713,6 +723,9 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), goto fail; } @@ -56,7 +58,15 @@ index b2438547dd0..e4b8342f5d0 100644 if (lh.boot_flag != grub_cpu_to_le16_compile_time (0xaa55)) { grub_error (GRUB_ERR_BAD_OS, "invalid magic number"); -@@ -807,13 +819,9 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), +@@ -804,6 +817,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), + preferred_address)) + goto fail; + ++ + grub_memset (&linux_params, 0, sizeof (linux_params)); + grub_memcpy (&linux_params.setup_sects, &lh.setup_sects, sizeof (lh) - 0x1F1); + +@@ -812,13 +826,10 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), linux_params.ps_mouse = linux_params.padding10 = 0; len = sizeof (linux_params) - sizeof (lh); @@ -68,12 +78,13 @@ index b2438547dd0..e4b8342f5d0 100644 - goto fail; - } + -+ grub_memcpy (&linux_params + sizeof (lh), kernel + kernel_offset, len); ++ linux_params_ptr = (void *)&linux_params; ++ grub_memcpy (linux_params_ptr + sizeof (lh), kernel + kernel_offset, len); + kernel_offset += len; linux_params.type_of_loader = GRUB_LINUX_BOOT_LOADER_TYPE; -@@ -872,7 +880,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), +@@ -877,7 +888,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), /* The other parameters are filled when booting. */ @@ -82,7 +93,7 @@ index b2438547dd0..e4b8342f5d0 100644 grub_dprintf ("linux", "bzImage, setup=0x%x, size=0x%x\n", (unsigned) real_size, (unsigned) prot_size); -@@ -1020,9 +1028,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), +@@ -1025,9 +1036,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - (sizeof (LINUX_IMAGE) - 1)); len = prot_file_size; @@ -93,7 +104,7 @@ index b2438547dd0..e4b8342f5d0 100644 if (grub_errno == GRUB_ERR_NONE) { -@@ -1033,6 +1039,8 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), +@@ -1038,6 +1047,8 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), fail: diff --git a/0092-Rework-linux16-command.patch b/0003-Rework-linux16-command.patch similarity index 83% rename from 0092-Rework-linux16-command.patch rename to 0003-Rework-linux16-command.patch index ea4e3cc3..99d6e7c2 100644 --- a/0092-Rework-linux16-command.patch +++ b/0003-Rework-linux16-command.patch @@ -11,12 +11,12 @@ before pulling out the individual blocks later on. 1 file changed, 21 insertions(+), 13 deletions(-) diff --git a/grub-core/loader/i386/pc/linux.c b/grub-core/loader/i386/pc/linux.c -index 91283157e30..b864e540333 100644 +index a3c87cf2fc2..caa76bee8af 100644 --- a/grub-core/loader/i386/pc/linux.c +++ b/grub-core/loader/i386/pc/linux.c -@@ -124,13 +124,14 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), +@@ -123,13 +123,14 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), grub_file_t file = 0; - struct linux_kernel_header lh; + struct linux_i386_kernel_header lh; grub_uint8_t setup_sects; - grub_size_t real_size; + grub_size_t real_size, kernel_offset = 0; @@ -30,7 +30,7 @@ index 91283157e30..b864e540333 100644 grub_dl_ref (my_mod); -@@ -144,7 +145,15 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), +@@ -143,7 +144,15 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), if (! file) goto fail; @@ -47,7 +47,7 @@ index 91283157e30..b864e540333 100644 { if (!grub_errno) grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"), -@@ -152,6 +161,9 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), +@@ -151,6 +160,9 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), goto fail; } @@ -57,7 +57,7 @@ index 91283157e30..b864e540333 100644 if (lh.boot_flag != grub_cpu_to_le16_compile_time (0xaa55)) { grub_error (GRUB_ERR_BAD_OS, "invalid magic number"); -@@ -315,13 +327,9 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), +@@ -314,13 +326,9 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), grub_memmove (grub_linux_real_chunk, &lh, sizeof (lh)); len = real_size + GRUB_DISK_SECTOR_SIZE - sizeof (lh); @@ -72,9 +72,9 @@ index 91283157e30..b864e540333 100644 + len); + kernel_offset += len; - if (lh.header != grub_cpu_to_le32_compile_time (GRUB_LINUX_MAGIC_SIGNATURE) + if (lh.header != grub_cpu_to_le32_compile_time (GRUB_LINUX_I386_MAGIC_SIGNATURE) || grub_le_to_cpu16 (lh.version) < 0x0200) -@@ -356,10 +364,8 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), +@@ -355,10 +363,8 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), } len = grub_linux16_prot_size; @@ -87,7 +87,7 @@ index 91283157e30..b864e540333 100644 if (grub_errno == GRUB_ERR_NONE) { -@@ -369,6 +375,8 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), +@@ -368,6 +374,8 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), fail: diff --git a/0004-Add-secureboot-support-on-efi-chainloader.patch b/0004-Add-secureboot-support-on-efi-chainloader.patch new file mode 100644 index 00000000..6a347d8a --- /dev/null +++ b/0004-Add-secureboot-support-on-efi-chainloader.patch @@ -0,0 +1,1390 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Raymund Will +Date: Fri, 10 Apr 2015 01:45:02 -0400 +Subject: [PATCH] Add secureboot support on efi chainloader + +Expand the chainloader to be able to verify the image by means of shim +lock protocol. The PE/COFF image is loaded and relocated by the +chainloader instead of calling LoadImage and StartImage UEFI boot +Service as they require positive verification result from keys enrolled +in KEK or DB. The shim will use MOK in addition to firmware enrolled +keys to verify the image. + +The chainloader module could be used to load other UEFI bootloaders, +such as xen.efi, and could be signed by any of MOK, KEK or DB. + +Based on https://build.opensuse.org/package/view_file/openSUSE:Factory/grub2/grub2-secureboot-chainloader.patch + +Signed-off-by: Peter Jones + +Also: + +commit cd7a8984d4fda905877b5bfe466339100156b3bc +Author: Raymund Will +Date: Fri Apr 10 01:45:02 2015 -0400 + +Use device part of chainloader target, if present. + +Otherwise chainloading is restricted to '$root', which might not even +be readable by EFI! + +v1. use grub_file_get_device_name() to get device name + +Signed-off-by: Michael Chang +Signed-off-by: Peter Jones + +Also: + +commit 0872a2310a0eeac4ecfe9e1b49dd2d72ab373039 +Author: Peter Jones +Date: Fri Jun 10 14:06:15 2016 -0400 + +Rework even more of efi chainload so non-sb cases work right. + +This ensures that if shim protocol is not loaded, or is loaded but shim +is disabled, we will fall back to a correct load method for the efi +chain loader. + +Here's what I tested with this version: + +results expected actual +------------------------------------------------------------ +sb + enabled + shim + fedora success success +sb + enabled + shim + win success success +sb + enabled + grub + fedora fail fail +sb + enabled + grub + win fail fail + +sb + mokdisabled + shim + fedora success success +sb + mokdisabled + shim + win success success +sb + mokdisabled + grub + fedora fail fail +sb + mokdisabled + grub + win fail fail + +sb disabled + shim + fedora success success* +sb disabled + shim + win success success* +sb disabled + grub + fedora success success +sb disabled + grub + win success success + +nosb + shim + fedora success success* +nosb + shim + win success success* +nosb + grub + fedora success success +nosb + grub + win success success + +* for some reason shim protocol is being installed in these cases, and I + can't see why, but I think it may be this firmware build returning an + erroneous value. But this effectively falls back to the mokdisabled + behavior, which works correctly, and the presence of the "grub" (i.e. + no shim) tests effectively tests the desired behavior here. + +Resolves: rhbz#1344512 + +Signed-off-by: Peter Jones + +Also: + +commit ff7b1cb7f69487870211aeb69ff4f54470fbcb58 +Author: Laszlo Ersek +Date: Mon Nov 21 15:34:00 2016 +0100 + +efi/chainloader: fix wrong sanity check in relocate_coff() + +In relocate_coff(), the relocation entries are parsed from the original +image (not the section-wise copied image). The original image is +pointed-to by the "orig" pointer. The current check + + (void *)reloc_end < data + +compares the addresses of independent memory allocations. "data" is a typo +here, it should be "orig". + +Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1347291 +Signed-off-by: Laszlo Ersek +Tested-by: Bogdan Costescu +Tested-by: Juan Orti + +Also: + +commit ab4ba9997ad4832449e54d930fa2aac6a160d0e9 +Author: Laszlo Ersek +Date: Wed Nov 23 06:27:09 2016 +0100 + +efi/chainloader: truncate overlong relocation section + +The UEFI Windows 7 boot loader ("EFI/Microsoft/Boot/bootmgfw.efi", SHA1 +31b410e029bba87d2068c65a80b88882f9f8ea25) has inconsistent headers. + +Compare: + +> The Data Directory +> ... +> Entry 5 00000000000d9000 00000574 Base Relocation Directory [.reloc] + +Versus: + +> Sections: +> Idx Name Size VMA LMA File off ... +> ... +> 10 .reloc 00000e22 00000000100d9000 00000000100d9000 000a1800 ... + +That is, the size reported by the RelocDir entry (0x574) is smaller than +the virtual size of the .reloc section (0xe22). + +Quoting the grub2 debug log for the same: + +> chainloader.c:595: reloc_dir: 0xd9000 reloc_size: 0x00000574 +> chainloader.c:603: reloc_base: 0x7d208000 reloc_base_end: 0x7d208573 +> ... +> chainloader.c:620: Section 10 ".reloc" at 0x7d208000..0x7d208e21 +> chainloader.c:661: section is not reloc section? +> chainloader.c:663: rds: 0x00001000, vs: 00000e22 +> chainloader.c:664: base: 0x7d208000 end: 0x7d208e21 +> chainloader.c:666: reloc_base: 0x7d208000 reloc_base_end: 0x7d208573 +> chainloader.c:671: Section characteristics are 42000040 +> chainloader.c:673: Section virtual size: 00000e22 +> chainloader.c:675: Section raw_data size: 00001000 +> chainloader.c:678: Discarding section + +After hexdumping "bootmgfw.efi" and manually walking its relocation blocks +(yes, really), I determined that the (smaller) RelocDir value is correct. +The remaining area that extends up to the .reloc section size (== 0xe22 - +0x574 == 0x8ae bytes) exists as zero padding in the file. + +This zero padding shouldn't be passed to relocate_coff() for parsing. In +order to cope with it, split the handling of .reloc sections into the +following branches: + +- original case (equal size): original behavior (--> relocation + attempted), + +- overlong .reloc section (longer than reported by RelocDir): truncate the + section to the RelocDir size for the purposes of relocate_coff(), and + attempt relocation, + +- .reloc section is too short, or other checks fail: original behavior + (--> relocation not attempted). + +Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1347291 +Signed-off-by: Laszlo Ersek +--- + grub-core/kern/efi/efi.c | 14 +- + grub-core/loader/arm64/linux.c | 4 +- + grub-core/loader/efi/chainloader.c | 817 +++++++++++++++++++++++++++++++++---- + grub-core/loader/efi/linux.c | 25 +- + grub-core/loader/i386/efi/linux.c | 17 +- + include/grub/efi/linux.h | 2 +- + include/grub/efi/pe32.h | 52 ++- + 7 files changed, 840 insertions(+), 91 deletions(-) + +diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c +index c8a9d8307c0..91129e33566 100644 +--- a/grub-core/kern/efi/efi.c ++++ b/grub-core/kern/efi/efi.c +@@ -283,14 +283,20 @@ grub_efi_secure_boot (void) + grub_efi_boolean_t ret = 0; + + secure_boot = grub_efi_get_variable("SecureBoot", &efi_var_guid, &datasize); +- + if (datasize != 1 || !secure_boot) +- goto out; ++ { ++ grub_dprintf ("secureboot", "No SecureBoot variable\n"); ++ goto out; ++ } ++ grub_dprintf ("secureboot", "SecureBoot: %d\n", *secure_boot); + + setup_mode = grub_efi_get_variable("SetupMode", &efi_var_guid, &datasize); +- + if (datasize != 1 || !setup_mode) +- goto out; ++ { ++ grub_dprintf ("secureboot", "No SetupMode variable\n"); ++ goto out; ++ } ++ grub_dprintf ("secureboot", "SetupMode: %d\n", *setup_mode); + + if (*secure_boot && !*setup_mode) + ret = 1; +diff --git a/grub-core/loader/arm64/linux.c b/grub-core/loader/arm64/linux.c +index 6c00af98dce..a1ac7a38867 100644 +--- a/grub-core/loader/arm64/linux.c ++++ b/grub-core/loader/arm64/linux.c +@@ -282,6 +282,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), + grub_file_t file = 0; + struct linux_armxx_kernel_header lh; + struct grub_armxx_linux_pe_header *pe; ++ int rc; + + grub_dl_ref (my_mod); + +@@ -326,7 +327,8 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), + + grub_dprintf ("linux", "kernel @ %p\n", kernel_addr); + +- if (!grub_linuxefi_secure_validate (kernel_addr, kernel_size)) ++ rc = grub_linuxefi_secure_validate (kernel_addr, kernel_size); ++ if (rc < 0) + { + grub_error (GRUB_ERR_INVALID_COMMAND, N_("%s has invalid signature"), argv[0]); + goto fail; +diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c +index adc85636633..af2189619a3 100644 +--- a/grub-core/loader/efi/chainloader.c ++++ b/grub-core/loader/efi/chainloader.c +@@ -32,6 +32,8 @@ + #include + #include + #include ++#include ++#include + #include + #include + #include +@@ -46,9 +48,14 @@ static grub_dl_t my_mod; + + static grub_efi_physical_address_t address; + static grub_efi_uintn_t pages; ++static grub_ssize_t fsize; + static grub_efi_device_path_t *file_path; + static grub_efi_handle_t image_handle; + static grub_efi_char16_t *cmdline; ++static grub_ssize_t cmdline_len; ++static grub_efi_handle_t dev_handle; ++ ++static grub_efi_status_t (*entry_point) (grub_efi_handle_t image_handle, grub_efi_system_table_t *system_table); + + static grub_err_t + grub_chainloader_unload (void) +@@ -63,6 +70,7 @@ grub_chainloader_unload (void) + grub_free (cmdline); + cmdline = 0; + file_path = 0; ++ dev_handle = 0; + + grub_dl_unref (my_mod); + return GRUB_ERR_NONE; +@@ -173,7 +181,6 @@ make_file_path (grub_efi_device_path_t *dp, const char *filename) + /* Fill the file path for the directory. */ + d = (grub_efi_device_path_t *) ((char *) file_path + + ((char *) d - (char *) dp)); +- grub_efi_print_device_path (d); + copy_file_path ((grub_efi_file_path_device_path_t *) d, + dir_start, dir_end - dir_start); + +@@ -191,20 +198,690 @@ make_file_path (grub_efi_device_path_t *dp, const char *filename) + return file_path; + } + ++#define SHIM_LOCK_GUID \ ++ { 0x605dab50, 0xe046, 0x4300, { 0xab,0xb6,0x3d,0xd8,0x10,0xdd,0x8b,0x23 } } ++ ++typedef union ++{ ++ struct grub_pe32_header_32 pe32; ++ struct grub_pe32_header_64 pe32plus; ++} grub_pe_header_t; ++ ++struct pe_coff_loader_image_context ++{ ++ grub_efi_uint64_t image_address; ++ grub_efi_uint64_t image_size; ++ grub_efi_uint64_t entry_point; ++ grub_efi_uintn_t size_of_headers; ++ grub_efi_uint16_t image_type; ++ grub_efi_uint16_t number_of_sections; ++ grub_efi_uint32_t section_alignment; ++ struct grub_pe32_section_table *first_section; ++ struct grub_pe32_data_directory *reloc_dir; ++ struct grub_pe32_data_directory *sec_dir; ++ grub_efi_uint64_t number_of_rva_and_sizes; ++ grub_pe_header_t *pe_hdr; ++}; ++ ++typedef struct pe_coff_loader_image_context pe_coff_loader_image_context_t; ++ ++struct grub_efi_shim_lock ++{ ++ grub_efi_status_t (*verify)(void *buffer, ++ grub_efi_uint32_t size); ++ grub_efi_status_t (*hash)(void *data, ++ grub_efi_int32_t datasize, ++ pe_coff_loader_image_context_t *context, ++ grub_efi_uint8_t *sha256hash, ++ grub_efi_uint8_t *sha1hash); ++ grub_efi_status_t (*context)(void *data, ++ grub_efi_uint32_t size, ++ pe_coff_loader_image_context_t *context); ++}; ++ ++typedef struct grub_efi_shim_lock grub_efi_shim_lock_t; ++ ++static grub_efi_boolean_t ++read_header (void *data, grub_efi_uint32_t size, ++ pe_coff_loader_image_context_t *context) ++{ ++ grub_efi_guid_t guid = SHIM_LOCK_GUID; ++ grub_efi_shim_lock_t *shim_lock; ++ grub_efi_status_t status; ++ ++ shim_lock = grub_efi_locate_protocol (&guid, NULL); ++ if (!shim_lock) ++ { ++ grub_dprintf ("chain", "no shim lock protocol"); ++ return 0; ++ } ++ ++ status = shim_lock->context (data, size, context); ++ ++ if (status == GRUB_EFI_SUCCESS) ++ { ++ grub_dprintf ("chain", "context success\n"); ++ return 1; ++ } ++ ++ switch (status) ++ { ++ case GRUB_EFI_UNSUPPORTED: ++ grub_error (GRUB_ERR_BAD_ARGUMENT, "context error unsupported"); ++ break; ++ case GRUB_EFI_INVALID_PARAMETER: ++ grub_error (GRUB_ERR_BAD_ARGUMENT, "context error invalid parameter"); ++ break; ++ default: ++ grub_error (GRUB_ERR_BAD_ARGUMENT, "context error code"); ++ break; ++ } ++ ++ return -1; ++} ++ ++static void* ++image_address (void *image, grub_efi_uint64_t sz, grub_efi_uint64_t adr) ++{ ++ if (adr > sz) ++ return NULL; ++ ++ return ((grub_uint8_t*)image + adr); ++} ++ ++static int ++image_is_64_bit (grub_pe_header_t *pe_hdr) ++{ ++ /* .Magic is the same offset in all cases */ ++ if (pe_hdr->pe32plus.optional_header.magic == GRUB_PE32_PE64_MAGIC) ++ return 1; ++ return 0; ++} ++ ++static const grub_uint16_t machine_type __attribute__((__unused__)) = ++#if defined(__x86_64__) ++ GRUB_PE32_MACHINE_X86_64; ++#elif defined(__aarch64__) ++ GRUB_PE32_MACHINE_ARM64; ++#elif defined(__arm__) ++ GRUB_PE32_MACHINE_ARMTHUMB_MIXED; ++#elif defined(__i386__) || defined(__i486__) || defined(__i686__) ++ GRUB_PE32_MACHINE_I386; ++#elif defined(__ia64__) ++ GRUB_PE32_MACHINE_IA64; ++#else ++#error this architecture is not supported by grub2 ++#endif ++ ++static grub_efi_status_t ++relocate_coff (pe_coff_loader_image_context_t *context, ++ struct grub_pe32_section_table *section, ++ void *orig, void *data) ++{ ++ struct grub_pe32_data_directory *reloc_base, *reloc_base_end; ++ grub_efi_uint64_t adjust; ++ struct grub_pe32_fixup_block *reloc, *reloc_end; ++ char *fixup, *fixup_base, *fixup_data = NULL; ++ grub_efi_uint16_t *fixup_16; ++ grub_efi_uint32_t *fixup_32; ++ grub_efi_uint64_t *fixup_64; ++ grub_efi_uint64_t size = context->image_size; ++ void *image_end = (char *)orig + size; ++ int n = 0; ++ ++ if (image_is_64_bit (context->pe_hdr)) ++ context->pe_hdr->pe32plus.optional_header.image_base = ++ (grub_uint64_t)(unsigned long)data; ++ else ++ context->pe_hdr->pe32.optional_header.image_base = ++ (grub_uint32_t)(unsigned long)data; ++ ++ /* Alright, so here's how this works: ++ * ++ * context->reloc_dir gives us two things: ++ * - the VA the table of base relocation blocks are (maybe) to be ++ * mapped at (reloc_dir->rva) ++ * - the virtual size (reloc_dir->size) ++ * ++ * The .reloc section (section here) gives us some other things: ++ * - the name! kind of. (section->name) ++ * - the virtual size (section->virtual_size), which should be the same ++ * as RelocDir->Size ++ * - the virtual address (section->virtual_address) ++ * - the file section size (section->raw_data_size), which is ++ * a multiple of optional_header->file_alignment. Only useful for image ++ * validation, not really useful for iteration bounds. ++ * - the file address (section->raw_data_offset) ++ * - a bunch of stuff we don't use that's 0 in our binaries usually ++ * - Flags (section->characteristics) ++ * ++ * and then the thing that's actually at the file address is an array ++ * of struct grub_pe32_fixup_block structs with some values packed behind ++ * them. The block_size field of this structure includes the ++ * structure itself, and adding it to that structure's address will ++ * yield the next entry in the array. ++ */ ++ ++ reloc_base = image_address (orig, size, section->raw_data_offset); ++ reloc_base_end = image_address (orig, size, section->raw_data_offset ++ + section->virtual_size); ++ ++ grub_dprintf ("chain", "relocate_coff(): reloc_base %p reloc_base_end %p\n", ++ reloc_base, reloc_base_end); ++ ++ if (!reloc_base && !reloc_base_end) ++ return GRUB_EFI_SUCCESS; ++ ++ if (!reloc_base || !reloc_base_end) ++ { ++ grub_error (GRUB_ERR_BAD_ARGUMENT, "Reloc table overflows binary"); ++ return GRUB_EFI_UNSUPPORTED; ++ } ++ ++ adjust = (grub_uint64_t)(grub_efi_uintn_t)data - context->image_address; ++ if (adjust == 0) ++ return GRUB_EFI_SUCCESS; ++ ++ while (reloc_base < reloc_base_end) ++ { ++ grub_uint16_t *entry; ++ reloc = (struct grub_pe32_fixup_block *)((char*)reloc_base); ++ ++ if ((reloc_base->size == 0) || ++ (reloc_base->size > context->reloc_dir->size)) ++ { ++ grub_error (GRUB_ERR_BAD_ARGUMENT, ++ "Reloc %d block size %d is invalid\n", n, ++ reloc_base->size); ++ return GRUB_EFI_UNSUPPORTED; ++ } ++ ++ entry = &reloc->entries[0]; ++ reloc_end = (struct grub_pe32_fixup_block *) ++ ((char *)reloc_base + reloc_base->size); ++ ++ if ((void *)reloc_end < orig || (void *)reloc_end > image_end) ++ { ++ grub_error (GRUB_ERR_BAD_ARGUMENT, "Reloc entry %d overflows binary", ++ n); ++ return GRUB_EFI_UNSUPPORTED; ++ } ++ ++ fixup_base = image_address(data, size, reloc_base->rva); ++ ++ if (!fixup_base) ++ { ++ grub_error (GRUB_ERR_BAD_ARGUMENT, "Reloc %d Invalid fixupbase", n); ++ return GRUB_EFI_UNSUPPORTED; ++ } ++ ++ while ((void *)entry < (void *)reloc_end) ++ { ++ fixup = fixup_base + (*entry & 0xFFF); ++ switch ((*entry) >> 12) ++ { ++ case GRUB_PE32_REL_BASED_ABSOLUTE: ++ break; ++ case GRUB_PE32_REL_BASED_HIGH: ++ fixup_16 = (grub_uint16_t *)fixup; ++ *fixup_16 = (grub_uint16_t) ++ (*fixup_16 + ((grub_uint16_t)((grub_uint32_t)adjust >> 16))); ++ if (fixup_data != NULL) ++ { ++ *(grub_uint16_t *) fixup_data = *fixup_16; ++ fixup_data = fixup_data + sizeof (grub_uint16_t); ++ } ++ break; ++ case GRUB_PE32_REL_BASED_LOW: ++ fixup_16 = (grub_uint16_t *)fixup; ++ *fixup_16 = (grub_uint16_t) (*fixup_16 + (grub_uint16_t)adjust); ++ if (fixup_data != NULL) ++ { ++ *(grub_uint16_t *) fixup_data = *fixup_16; ++ fixup_data = fixup_data + sizeof (grub_uint16_t); ++ } ++ break; ++ case GRUB_PE32_REL_BASED_HIGHLOW: ++ fixup_32 = (grub_uint32_t *)fixup; ++ *fixup_32 = *fixup_32 + (grub_uint32_t)adjust; ++ if (fixup_data != NULL) ++ { ++ fixup_data = (char *)ALIGN_UP ((grub_addr_t)fixup_data, sizeof (grub_uint32_t)); ++ *(grub_uint32_t *) fixup_data = *fixup_32; ++ fixup_data += sizeof (grub_uint32_t); ++ } ++ break; ++ case GRUB_PE32_REL_BASED_DIR64: ++ fixup_64 = (grub_uint64_t *)fixup; ++ *fixup_64 = *fixup_64 + (grub_uint64_t)adjust; ++ if (fixup_data != NULL) ++ { ++ fixup_data = (char *)ALIGN_UP ((grub_addr_t)fixup_data, sizeof (grub_uint64_t)); ++ *(grub_uint64_t *) fixup_data = *fixup_64; ++ fixup_data += sizeof (grub_uint64_t); ++ } ++ break; ++ default: ++ grub_error (GRUB_ERR_BAD_ARGUMENT, ++ "Reloc %d unknown relocation type %d", ++ n, (*entry) >> 12); ++ return GRUB_EFI_UNSUPPORTED; ++ } ++ entry += 1; ++ } ++ reloc_base = (struct grub_pe32_data_directory *)reloc_end; ++ n++; ++ } ++ ++ return GRUB_EFI_SUCCESS; ++} ++ ++static grub_efi_device_path_t * ++grub_efi_get_media_file_path (grub_efi_device_path_t *dp) ++{ ++ while (1) ++ { ++ grub_efi_uint8_t type = GRUB_EFI_DEVICE_PATH_TYPE (dp); ++ grub_efi_uint8_t subtype = GRUB_EFI_DEVICE_PATH_SUBTYPE (dp); ++ ++ if (type == GRUB_EFI_END_DEVICE_PATH_TYPE) ++ break; ++ else if (type == GRUB_EFI_MEDIA_DEVICE_PATH_TYPE ++ && subtype == GRUB_EFI_FILE_PATH_DEVICE_PATH_SUBTYPE) ++ return dp; ++ ++ dp = GRUB_EFI_NEXT_DEVICE_PATH (dp); ++ } ++ ++ return NULL; ++} ++ ++static grub_efi_boolean_t ++handle_image (void *data, grub_efi_uint32_t datasize) ++{ ++ grub_efi_boot_services_t *b; ++ grub_efi_loaded_image_t *li, li_bak; ++ grub_efi_status_t efi_status; ++ char *buffer = NULL; ++ char *buffer_aligned = NULL; ++ grub_efi_uint32_t i; ++ struct grub_pe32_section_table *section; ++ char *base, *end; ++ pe_coff_loader_image_context_t context; ++ grub_uint32_t section_alignment; ++ grub_uint32_t buffer_size; ++ int found_entry_point = 0; ++ int rc; ++ ++ b = grub_efi_system_table->boot_services; ++ ++ rc = read_header (data, datasize, &context); ++ if (rc < 0) ++ { ++ grub_dprintf ("chain", "Failed to read header\n"); ++ goto error_exit; ++ } ++ else if (rc == 0) ++ { ++ grub_dprintf ("chain", "Secure Boot is not enabled\n"); ++ return 0; ++ } ++ else ++ { ++ grub_dprintf ("chain", "Header read without error\n"); ++ } ++ ++ /* ++ * The spec says, uselessly, of SectionAlignment: ++ * ===== ++ * The alignment (in bytes) of sections when they are loaded into ++ * memory. It must be greater than or equal to FileAlignment. The ++ * default is the page size for the architecture. ++ * ===== ++ * Which doesn't tell you whose responsibility it is to enforce the ++ * "default", or when. It implies that the value in the field must ++ * be > FileAlignment (also poorly defined), but it appears visual ++ * studio will happily write 512 for FileAlignment (its default) and ++ * 0 for SectionAlignment, intending to imply PAGE_SIZE. ++ * ++ * We only support one page size, so if it's zero, nerf it to 4096. ++ */ ++ section_alignment = context.section_alignment; ++ if (section_alignment == 0) ++ section_alignment = 4096; ++ ++ buffer_size = context.image_size + section_alignment; ++ grub_dprintf ("chain", "image size is %08"PRIxGRUB_UINT64_T", datasize is %08x\n", ++ context.image_size, datasize); ++ ++ efi_status = efi_call_3 (b->allocate_pool, GRUB_EFI_LOADER_DATA, ++ buffer_size, &buffer); ++ ++ if (efi_status != GRUB_EFI_SUCCESS) ++ { ++ grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("out of memory")); ++ goto error_exit; ++ } ++ ++ buffer_aligned = (char *)ALIGN_UP ((grub_addr_t)buffer, section_alignment); ++ if (!buffer_aligned) ++ { ++ grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("out of memory")); ++ goto error_exit; ++ } ++ ++ grub_memcpy (buffer_aligned, data, context.size_of_headers); ++ ++ entry_point = image_address (buffer_aligned, context.image_size, ++ context.entry_point); ++ ++ grub_dprintf ("chain", "entry_point: %p\n", entry_point); ++ if (!entry_point) ++ { ++ grub_error (GRUB_ERR_BAD_ARGUMENT, "invalid entry point"); ++ goto error_exit; ++ } ++ ++ char *reloc_base, *reloc_base_end; ++ grub_dprintf ("chain", "reloc_dir: %p reloc_size: 0x%08x\n", ++ (void *)(unsigned long)context.reloc_dir->rva, ++ context.reloc_dir->size); ++ reloc_base = image_address (buffer_aligned, context.image_size, ++ context.reloc_dir->rva); ++ /* RelocBaseEnd here is the address of the last byte of the table */ ++ reloc_base_end = image_address (buffer_aligned, context.image_size, ++ context.reloc_dir->rva ++ + context.reloc_dir->size - 1); ++ grub_dprintf ("chain", "reloc_base: %p reloc_base_end: %p\n", ++ reloc_base, reloc_base_end); ++ ++ struct grub_pe32_section_table *reloc_section = NULL, fake_reloc_section; ++ ++ section = context.first_section; ++ for (i = 0; i < context.number_of_sections; i++, section++) ++ { ++ char name[9]; ++ ++ base = image_address (buffer_aligned, context.image_size, ++ section->virtual_address); ++ end = image_address (buffer_aligned, context.image_size, ++ section->virtual_address + section->virtual_size -1); ++ ++ grub_strncpy(name, section->name, 9); ++ name[8] = '\0'; ++ grub_dprintf ("chain", "Section %d \"%s\" at %p..%p\n", i, ++ name, base, end); ++ ++ if (end < base) ++ { ++ grub_dprintf ("chain", " base is %p but end is %p... bad.\n", ++ base, end); ++ grub_error (GRUB_ERR_BAD_ARGUMENT, ++ "Image has invalid negative size"); ++ goto error_exit; ++ } ++ ++ if (section->virtual_address <= context.entry_point && ++ (section->virtual_address + section->raw_data_size - 1) ++ > context.entry_point) ++ { ++ found_entry_point++; ++ grub_dprintf ("chain", " section contains entry point\n"); ++ } ++ ++ /* We do want to process .reloc, but it's often marked ++ * discardable, so we don't want to memcpy it. */ ++ if (grub_memcmp (section->name, ".reloc\0\0", 8) == 0) ++ { ++ if (reloc_section) ++ { ++ grub_error (GRUB_ERR_BAD_ARGUMENT, ++ "Image has multiple relocation sections"); ++ goto error_exit; ++ } ++ ++ /* If it has nonzero sizes, and our bounds check ++ * made sense, and the VA and size match RelocDir's ++ * versions, then we believe in this section table. */ ++ if (section->raw_data_size && section->virtual_size && ++ base && end && reloc_base == base) ++ { ++ if (reloc_base_end == end) ++ { ++ grub_dprintf ("chain", " section is relocation section\n"); ++ reloc_section = section; ++ } ++ else if (reloc_base_end && reloc_base_end < end) ++ { ++ /* Bogus virtual size in the reloc section -- RelocDir ++ * reported a smaller Base Relocation Directory. Decrease ++ * the section's virtual size so that it equal RelocDir's ++ * idea, but only for the purposes of relocate_coff(). */ ++ grub_dprintf ("chain", ++ " section is (overlong) relocation section\n"); ++ grub_memcpy (&fake_reloc_section, section, sizeof *section); ++ fake_reloc_section.virtual_size -= (end - reloc_base_end); ++ reloc_section = &fake_reloc_section; ++ } ++ } ++ ++ if (!reloc_section) ++ { ++ grub_dprintf ("chain", " section is not reloc section?\n"); ++ grub_dprintf ("chain", " rds: 0x%08x, vs: %08x\n", ++ section->raw_data_size, section->virtual_size); ++ grub_dprintf ("chain", " base: %p end: %p\n", base, end); ++ grub_dprintf ("chain", " reloc_base: %p reloc_base_end: %p\n", ++ reloc_base, reloc_base_end); ++ } ++ } ++ ++ grub_dprintf ("chain", " Section characteristics are %08x\n", ++ section->characteristics); ++ grub_dprintf ("chain", " Section virtual size: %08x\n", ++ section->virtual_size); ++ grub_dprintf ("chain", " Section raw_data size: %08x\n", ++ section->raw_data_size); ++ if (section->characteristics & GRUB_PE32_SCN_MEM_DISCARDABLE) ++ { ++ grub_dprintf ("chain", " Discarding section\n"); ++ continue; ++ } ++ ++ if (!base || !end) ++ { ++ grub_dprintf ("chain", " section is invalid\n"); ++ grub_error (GRUB_ERR_BAD_ARGUMENT, "Invalid section size"); ++ goto error_exit; ++ } ++ ++ if (section->characteristics & GRUB_PE32_SCN_CNT_UNINITIALIZED_DATA) ++ { ++ if (section->raw_data_size != 0) ++ grub_dprintf ("chain", " UNINITIALIZED_DATA section has data?\n"); ++ } ++ else if (section->virtual_address < context.size_of_headers || ++ section->raw_data_offset < context.size_of_headers) ++ { ++ grub_error (GRUB_ERR_BAD_ARGUMENT, ++ "Section %d is inside image headers", i); ++ goto error_exit; ++ } ++ ++ if (section->raw_data_size > 0) ++ { ++ grub_dprintf ("chain", " copying 0x%08x bytes to %p\n", ++ section->raw_data_size, base); ++ grub_memcpy (base, ++ (grub_efi_uint8_t*)data + section->raw_data_offset, ++ section->raw_data_size); ++ } ++ ++ if (section->raw_data_size < section->virtual_size) ++ { ++ grub_dprintf ("chain", " padding with 0x%08x bytes at %p\n", ++ section->virtual_size - section->raw_data_size, ++ base + section->raw_data_size); ++ grub_memset (base + section->raw_data_size, 0, ++ section->virtual_size - section->raw_data_size); ++ } ++ ++ grub_dprintf ("chain", " finished section %s\n", name); ++ } ++ ++ /* 5 == EFI_IMAGE_DIRECTORY_ENTRY_BASERELOC */ ++ if (context.number_of_rva_and_sizes <= 5) ++ { ++ grub_dprintf ("chain", "image has no relocation entry\n"); ++ goto error_exit; ++ } ++ ++ if (context.reloc_dir->size && reloc_section) ++ { ++ /* run the relocation fixups */ ++ efi_status = relocate_coff (&context, reloc_section, data, ++ buffer_aligned); ++ ++ if (efi_status != GRUB_EFI_SUCCESS) ++ { ++ grub_error (GRUB_ERR_BAD_ARGUMENT, "relocation failed"); ++ goto error_exit; ++ } ++ } ++ ++ if (!found_entry_point) ++ { ++ grub_error (GRUB_ERR_BAD_ARGUMENT, "entry point is not within sections"); ++ goto error_exit; ++ } ++ if (found_entry_point > 1) ++ { ++ grub_error (GRUB_ERR_BAD_ARGUMENT, "%d sections contain entry point", ++ found_entry_point); ++ goto error_exit; ++ } ++ ++ li = grub_efi_get_loaded_image (grub_efi_image_handle); ++ if (!li) ++ { ++ grub_error (GRUB_ERR_BAD_ARGUMENT, "no loaded image available"); ++ goto error_exit; ++ } ++ ++ grub_memcpy (&li_bak, li, sizeof (grub_efi_loaded_image_t)); ++ li->image_base = buffer_aligned; ++ li->image_size = context.image_size; ++ li->load_options = cmdline; ++ li->load_options_size = cmdline_len; ++ li->file_path = grub_efi_get_media_file_path (file_path); ++ li->device_handle = dev_handle; ++ if (!li->file_path) ++ { ++ grub_error (GRUB_ERR_UNKNOWN_DEVICE, "no matching file path found"); ++ goto error_exit; ++ } ++ ++ grub_dprintf ("chain", "booting via entry point\n"); ++ efi_status = efi_call_2 (entry_point, grub_efi_image_handle, ++ grub_efi_system_table); ++ ++ grub_dprintf ("chain", "entry_point returned %ld\n", efi_status); ++ grub_memcpy (li, &li_bak, sizeof (grub_efi_loaded_image_t)); ++ efi_status = efi_call_1 (b->free_pool, buffer); ++ ++ return 1; ++ ++error_exit: ++ grub_dprintf ("chain", "error_exit: grub_errno: %d\n", grub_errno); ++ if (buffer) ++ efi_call_1 (b->free_pool, buffer); ++ ++ return 0; ++} ++ ++static grub_err_t ++grub_secureboot_chainloader_unload (void) ++{ ++ grub_efi_boot_services_t *b; ++ ++ b = grub_efi_system_table->boot_services; ++ efi_call_2 (b->free_pages, address, pages); ++ grub_free (file_path); ++ grub_free (cmdline); ++ cmdline = 0; ++ file_path = 0; ++ dev_handle = 0; ++ ++ grub_dl_unref (my_mod); ++ return GRUB_ERR_NONE; ++} ++ ++static grub_err_t ++grub_load_and_start_image(void *boot_image) ++{ ++ grub_efi_boot_services_t *b; ++ grub_efi_status_t status; ++ grub_efi_loaded_image_t *loaded_image; ++ ++ b = grub_efi_system_table->boot_services; ++ ++ status = efi_call_6 (b->load_image, 0, grub_efi_image_handle, file_path, ++ boot_image, fsize, &image_handle); ++ if (status != GRUB_EFI_SUCCESS) ++ { ++ if (status == GRUB_EFI_OUT_OF_RESOURCES) ++ grub_error (GRUB_ERR_OUT_OF_MEMORY, "out of resources"); ++ else ++ grub_error (GRUB_ERR_BAD_OS, "cannot load image"); ++ return -1; ++ } ++ ++ /* LoadImage does not set a device handler when the image is ++ loaded from memory, so it is necessary to set it explicitly here. ++ This is a mess. */ ++ loaded_image = grub_efi_get_loaded_image (image_handle); ++ if (! loaded_image) ++ { ++ grub_error (GRUB_ERR_BAD_OS, "no loaded image available"); ++ return -1; ++ } ++ loaded_image->device_handle = dev_handle; ++ ++ if (cmdline) ++ { ++ loaded_image->load_options = cmdline; ++ loaded_image->load_options_size = cmdline_len; ++ } ++ ++ return 0; ++} ++ ++static grub_err_t ++grub_secureboot_chainloader_boot (void) ++{ ++ int rc; ++ rc = handle_image ((void *)(unsigned long)address, fsize); ++ if (rc == 0) ++ { ++ grub_load_and_start_image((void *)(unsigned long)address); ++ } ++ ++ grub_loader_unset (); ++ return grub_errno; ++} ++ + static grub_err_t + grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), + int argc, char *argv[]) + { + grub_file_t file = 0; +- grub_ssize_t size; + grub_efi_status_t status; + grub_efi_boot_services_t *b; + grub_device_t dev = 0; + grub_efi_device_path_t *dp = 0; +- grub_efi_loaded_image_t *loaded_image; + char *filename; + void *boot_image = 0; +- grub_efi_handle_t dev_handle = 0; ++ int rc; + + if (argc == 0) + return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("filename expected")); +@@ -216,15 +893,45 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), + address = 0; + image_handle = 0; + file_path = 0; ++ dev_handle = 0; + + b = grub_efi_system_table->boot_services; + ++ if (argc > 1) ++ { ++ int i; ++ grub_efi_char16_t *p16; ++ ++ for (i = 1, cmdline_len = 0; i < argc; i++) ++ cmdline_len += grub_strlen (argv[i]) + 1; ++ ++ cmdline_len *= sizeof (grub_efi_char16_t); ++ cmdline = p16 = grub_malloc (cmdline_len); ++ if (! cmdline) ++ goto fail; ++ ++ for (i = 1; i < argc; i++) ++ { ++ char *p8; ++ ++ p8 = argv[i]; ++ while (*p8) ++ *(p16++) = *(p8++); ++ ++ *(p16++) = ' '; ++ } ++ *(--p16) = 0; ++ } ++ + file = grub_file_open (filename); + if (! file) + goto fail; + +- /* Get the root device's device path. */ +- dev = grub_device_open (0); ++ /* Get the device path from filename. */ ++ char *devname = grub_file_get_device_name (filename); ++ dev = grub_device_open (devname); ++ if (devname) ++ grub_free (devname); + if (! dev) + goto fail; + +@@ -261,17 +968,14 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), + if (! file_path) + goto fail; + +- grub_printf ("file path: "); +- grub_efi_print_device_path (file_path); +- +- size = grub_file_size (file); +- if (!size) ++ fsize = grub_file_size (file); ++ if (!fsize) + { + grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"), + filename); + goto fail; + } +- pages = (((grub_efi_uintn_t) size + ((1 << 12) - 1)) >> 12); ++ pages = (((grub_efi_uintn_t) fsize + ((1 << 12) - 1)) >> 12); + + status = efi_call_4 (b->allocate_pages, GRUB_EFI_ALLOCATE_ANY_PAGES, + GRUB_EFI_LOADER_CODE, +@@ -285,7 +989,7 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), + } + + boot_image = (void *) ((grub_addr_t) address); +- if (grub_file_read (file, boot_image, size) != size) ++ if (grub_file_read (file, boot_image, fsize) != fsize) + { + if (grub_errno == GRUB_ERR_NONE) + grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"), +@@ -295,7 +999,7 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), + } + + #if defined (__i386__) || defined (__x86_64__) +- if (size >= (grub_ssize_t) sizeof (struct grub_macho_fat_header)) ++ if (fsize >= (grub_ssize_t) sizeof (struct grub_macho_fat_header)) + { + struct grub_macho_fat_header *head = boot_image; + if (head->magic +@@ -304,6 +1008,14 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), + grub_uint32_t i; + struct grub_macho_fat_arch *archs + = (struct grub_macho_fat_arch *) (head + 1); ++ ++ if (grub_efi_secure_boot()) ++ { ++ grub_error (GRUB_ERR_BAD_OS, ++ "MACHO binaries are forbidden with Secure Boot"); ++ goto fail; ++ } ++ + for (i = 0; i < grub_cpu_to_le32 (head->nfat_arch); i++) + { + if (GRUB_MACHO_CPUTYPE_IS_HOST_CURRENT (archs[i].cputype)) +@@ -318,79 +1030,39 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), + > ~grub_cpu_to_le32 (archs[i].size) + || grub_cpu_to_le32 (archs[i].offset) + + grub_cpu_to_le32 (archs[i].size) +- > (grub_size_t) size) ++ > (grub_size_t) fsize) + { + grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"), + filename); + goto fail; + } + boot_image = (char *) boot_image + grub_cpu_to_le32 (archs[i].offset); +- size = grub_cpu_to_le32 (archs[i].size); ++ fsize = grub_cpu_to_le32 (archs[i].size); + } + } + #endif + +- status = efi_call_6 (b->load_image, 0, grub_efi_image_handle, file_path, +- boot_image, size, +- &image_handle); +- if (status != GRUB_EFI_SUCCESS) ++ rc = grub_linuxefi_secure_validate((void *)(unsigned long)address, fsize); ++ grub_dprintf ("chain", "linuxefi_secure_validate: %d\n", rc); ++ if (rc > 0) + { +- if (status == GRUB_EFI_OUT_OF_RESOURCES) +- grub_error (GRUB_ERR_OUT_OF_MEMORY, "out of resources"); +- else +- grub_error (GRUB_ERR_BAD_OS, "cannot load image"); +- +- goto fail; ++ grub_file_close (file); ++ grub_device_close (dev); ++ grub_loader_set (grub_secureboot_chainloader_boot, ++ grub_secureboot_chainloader_unload, 0); ++ return 0; + } +- +- /* LoadImage does not set a device handler when the image is +- loaded from memory, so it is necessary to set it explicitly here. +- This is a mess. */ +- loaded_image = grub_efi_get_loaded_image (image_handle); +- if (! loaded_image) ++ else if (rc == 0) + { +- grub_error (GRUB_ERR_BAD_OS, "no loaded image available"); +- goto fail; +- } +- loaded_image->device_handle = dev_handle; +- +- if (argc > 1) +- { +- int i, len; +- grub_efi_char16_t *p16; +- +- for (i = 1, len = 0; i < argc; i++) +- len += grub_strlen (argv[i]) + 1; +- +- len *= sizeof (grub_efi_char16_t); +- cmdline = p16 = grub_malloc (len); +- if (! cmdline) +- goto fail; ++ grub_load_and_start_image(boot_image); ++ grub_file_close (file); ++ grub_device_close (dev); ++ grub_loader_set (grub_chainloader_boot, grub_chainloader_unload, 0); + +- for (i = 1; i < argc; i++) +- { +- char *p8; +- +- p8 = argv[i]; +- while (*p8) +- *(p16++) = *(p8++); +- +- *(p16++) = ' '; +- } +- *(--p16) = 0; +- +- loaded_image->load_options = cmdline; +- loaded_image->load_options_size = len; ++ return 0; + } + +- grub_file_close (file); +- grub_device_close (dev); +- +- grub_loader_set (grub_chainloader_boot, grub_chainloader_unload, 0); +- return 0; +- +- fail: +- ++fail: + if (dev) + grub_device_close (dev); + +@@ -402,6 +1074,9 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), + if (address) + efi_call_2 (b->free_pages, address, pages); + ++ if (cmdline) ++ grub_free (cmdline); ++ + grub_dl_unref (my_mod); + + return grub_errno; +diff --git a/grub-core/loader/efi/linux.c b/grub-core/loader/efi/linux.c +index c24202a5dd1..c8ecce6dfd0 100644 +--- a/grub-core/loader/efi/linux.c ++++ b/grub-core/loader/efi/linux.c +@@ -33,21 +33,34 @@ struct grub_efi_shim_lock + }; + typedef struct grub_efi_shim_lock grub_efi_shim_lock_t; + +-grub_efi_boolean_t ++int + grub_linuxefi_secure_validate (void *data, grub_uint32_t size) + { + grub_efi_guid_t guid = SHIM_LOCK_GUID; + grub_efi_shim_lock_t *shim_lock; ++ grub_efi_status_t status; + + shim_lock = grub_efi_locate_protocol(&guid, NULL); +- ++ grub_dprintf ("secureboot", "shim_lock: %p\n", shim_lock); + if (!shim_lock) +- return 1; ++ { ++ grub_dprintf ("secureboot", "shim not available\n"); ++ return 0; ++ } + +- if (shim_lock->verify(data, size) == GRUB_EFI_SUCCESS) +- return 1; ++ grub_dprintf ("secureboot", "Asking shim to verify kernel signature\n"); ++ status = shim_lock->verify (data, size); ++ grub_dprintf ("secureboot", "shim_lock->verify(): %ld\n", (long int)status); ++ if (status == GRUB_EFI_SUCCESS) ++ { ++ grub_dprintf ("secureboot", "Kernel signature verification passed\n"); ++ return 1; ++ } + +- return 0; ++ grub_dprintf ("secureboot", "Kernel signature verification failed (0x%lx)\n", ++ (unsigned long) status); ++ ++ return -1; + } + + #pragma GCC diagnostic push +diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c +index 3db82e782df..8db228c5bf5 100644 +--- a/grub-core/loader/i386/efi/linux.c ++++ b/grub-core/loader/i386/efi/linux.c +@@ -118,6 +118,8 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), + goto fail; + } + ++ grub_dprintf ("linux", "initrd_mem = %lx\n", (unsigned long) initrd_mem); ++ + params->ramdisk_size = size; + params->ramdisk_image = (grub_uint32_t)(grub_addr_t) initrd_mem; + +@@ -160,6 +162,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), + struct linux_kernel_header lh; + grub_ssize_t len, start, filelen; + void *kernel = NULL; ++ int rc; + + grub_dl_ref (my_mod); + +@@ -185,11 +188,13 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), + + if (grub_file_read (file, kernel, filelen) != filelen) + { +- grub_error (GRUB_ERR_FILE_READ_ERROR, N_("Can't read kernel %s"), argv[0]); ++ grub_error (GRUB_ERR_FILE_READ_ERROR, N_("Can't read kernel %s"), ++ argv[0]); + goto fail; + } + +- if (! grub_linuxefi_secure_validate (kernel, filelen)) ++ rc = grub_linuxefi_secure_validate (kernel, filelen); ++ if (rc < 0) + { + grub_error (GRUB_ERR_INVALID_COMMAND, N_("%s has invalid signature"), + argv[0]); +@@ -204,6 +209,8 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), + goto fail; + } + ++ grub_dprintf ("linux", "params = %lx\n", (unsigned long) params); ++ + grub_memset (params, 0, 16384); + + grub_memcpy (&lh, kernel, sizeof (lh)); +@@ -242,6 +249,9 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), + goto fail; + } + ++ grub_dprintf ("linux", "linux_cmdline = %lx\n", ++ (unsigned long)linux_cmdline); ++ + grub_memcpy (linux_cmdline, LINUX_IMAGE, sizeof (LINUX_IMAGE)); + grub_create_loader_cmdline (argc, argv, + linux_cmdline + sizeof (LINUX_IMAGE) - 1, +@@ -275,9 +285,10 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), + grub_memcpy (params, &lh, 2 * 512); + + params->type_of_loader = 0x21; ++ grub_dprintf("linux", "kernel_mem: %p handover_offset: %08x\n", ++ kernel_mem, handover_offset); + + fail: +- + if (file) + grub_file_close (file); + +diff --git a/include/grub/efi/linux.h b/include/grub/efi/linux.h +index d9ede36773b..0033d9305a9 100644 +--- a/include/grub/efi/linux.h ++++ b/include/grub/efi/linux.h +@@ -22,7 +22,7 @@ + #include + #include + +-grub_efi_boolean_t ++int + EXPORT_FUNC(grub_linuxefi_secure_validate) (void *data, grub_uint32_t size); + grub_err_t + EXPORT_FUNC(grub_efi_linux_boot) (void *kernel_address, grub_off_t offset, +diff --git a/include/grub/efi/pe32.h b/include/grub/efi/pe32.h +index 7d44732d2c3..c03cc599f63 100644 +--- a/include/grub/efi/pe32.h ++++ b/include/grub/efi/pe32.h +@@ -214,7 +214,11 @@ struct grub_pe64_optional_header + struct grub_pe32_section_table + { + char name[8]; +- grub_uint32_t virtual_size; ++ union ++ { ++ grub_uint32_t physical_address; ++ grub_uint32_t virtual_size; ++ }; + grub_uint32_t virtual_address; + grub_uint32_t raw_data_size; + grub_uint32_t raw_data_offset; +@@ -225,12 +229,18 @@ struct grub_pe32_section_table + grub_uint32_t characteristics; + }; + ++#define GRUB_PE32_SCN_TYPE_NO_PAD 0x00000008 + #define GRUB_PE32_SCN_CNT_CODE 0x00000020 + #define GRUB_PE32_SCN_CNT_INITIALIZED_DATA 0x00000040 +-#define GRUB_PE32_SCN_MEM_DISCARDABLE 0x02000000 +-#define GRUB_PE32_SCN_MEM_EXECUTE 0x20000000 +-#define GRUB_PE32_SCN_MEM_READ 0x40000000 +-#define GRUB_PE32_SCN_MEM_WRITE 0x80000000 ++#define GRUB_PE32_SCN_CNT_UNINITIALIZED_DATA 0x00000080 ++#define GRUB_PE32_SCN_LNK_OTHER 0x00000100 ++#define GRUB_PE32_SCN_LNK_INFO 0x00000200 ++#define GRUB_PE32_SCN_LNK_REMOVE 0x00000800 ++#define GRUB_PE32_SCN_LNK_COMDAT 0x00001000 ++#define GRUB_PE32_SCN_GPREL 0x00008000 ++#define GRUB_PE32_SCN_MEM_16BIT 0x00020000 ++#define GRUB_PE32_SCN_MEM_LOCKED 0x00040000 ++#define GRUB_PE32_SCN_MEM_PRELOAD 0x00080000 + + #define GRUB_PE32_SCN_ALIGN_1BYTES 0x00100000 + #define GRUB_PE32_SCN_ALIGN_2BYTES 0x00200000 +@@ -239,10 +249,28 @@ struct grub_pe32_section_table + #define GRUB_PE32_SCN_ALIGN_16BYTES 0x00500000 + #define GRUB_PE32_SCN_ALIGN_32BYTES 0x00600000 + #define GRUB_PE32_SCN_ALIGN_64BYTES 0x00700000 ++#define GRUB_PE32_SCN_ALIGN_128BYTES 0x00800000 ++#define GRUB_PE32_SCN_ALIGN_256BYTES 0x00900000 ++#define GRUB_PE32_SCN_ALIGN_512BYTES 0x00A00000 ++#define GRUB_PE32_SCN_ALIGN_1024BYTES 0x00B00000 ++#define GRUB_PE32_SCN_ALIGN_2048BYTES 0x00C00000 ++#define GRUB_PE32_SCN_ALIGN_4096BYTES 0x00D00000 ++#define GRUB_PE32_SCN_ALIGN_8192BYTES 0x00E00000 + + #define GRUB_PE32_SCN_ALIGN_SHIFT 20 + #define GRUB_PE32_SCN_ALIGN_MASK 7 + ++#define GRUB_PE32_SCN_LNK_NRELOC_OVFL 0x01000000 ++#define GRUB_PE32_SCN_MEM_DISCARDABLE 0x02000000 ++#define GRUB_PE32_SCN_MEM_NOT_CACHED 0x04000000 ++#define GRUB_PE32_SCN_MEM_NOT_PAGED 0x08000000 ++#define GRUB_PE32_SCN_MEM_SHARED 0x10000000 ++#define GRUB_PE32_SCN_MEM_EXECUTE 0x20000000 ++#define GRUB_PE32_SCN_MEM_READ 0x40000000 ++#define GRUB_PE32_SCN_MEM_WRITE 0x80000000 ++ ++ ++ + #define GRUB_PE32_SIGNATURE_SIZE 4 + + struct grub_pe32_header +@@ -265,6 +293,20 @@ struct grub_pe32_header + #endif + }; + ++struct grub_pe32_header_32 ++{ ++ char signature[GRUB_PE32_SIGNATURE_SIZE]; ++ struct grub_pe32_coff_header coff_header; ++ struct grub_pe32_optional_header optional_header; ++}; ++ ++struct grub_pe32_header_64 ++{ ++ char signature[GRUB_PE32_SIGNATURE_SIZE]; ++ struct grub_pe32_coff_header coff_header; ++ struct grub_pe64_optional_header optional_header; ++}; ++ + struct grub_pe32_fixup_block + { + grub_uint32_t page_rva; diff --git a/0089-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch b/0005-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch similarity index 85% rename from 0089-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch rename to 0005-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch index 85c4afb9..3c86beec 100644 --- a/0089-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch +++ b/0005-Make-any-of-the-loaders-that-link-in-efi-mode-honor-.patch @@ -12,8 +12,9 @@ Signed-off-by: Peter Jones grub-core/Makefile.core.def | 1 + grub-core/commands/iorw.c | 7 +++++ grub-core/commands/memrw.c | 7 +++++ - grub-core/kern/efi/efi.c | 28 ------------------ - grub-core/kern/efi/sb.c | 58 ++++++++++++++++++++++++++++++++++++++ + grub-core/kern/dl.c | 1 + + grub-core/kern/efi/efi.c | 34 -------------------- + grub-core/kern/efi/sb.c | 64 ++++++++++++++++++++++++++++++++++++++ grub-core/loader/efi/appleloader.c | 7 +++++ grub-core/loader/efi/chainloader.c | 1 + grub-core/loader/i386/bsd.c | 7 +++++ @@ -22,13 +23,13 @@ Signed-off-by: Peter Jones grub-core/loader/multiboot.c | 7 +++++ grub-core/loader/xnu.c | 7 +++++ include/grub/efi/efi.h | 1 - - include/grub/efi/sb.h | 29 +++++++++++++++++++ + include/grub/efi/sb.h | 29 +++++++++++++++++ include/grub/ia64/linux.h | 0 include/grub/mips/linux.h | 0 include/grub/powerpc/linux.h | 0 include/grub/sparc64/linux.h | 0 grub-core/Makefile.am | 1 + - 19 files changed, 146 insertions(+), 29 deletions(-) + 20 files changed, 153 insertions(+), 35 deletions(-) create mode 100644 grub-core/kern/efi/sb.c create mode 100644 include/grub/efi/sb.h create mode 100644 include/grub/ia64/linux.h @@ -37,10 +38,10 @@ Signed-off-by: Peter Jones create mode 100644 include/grub/sparc64/linux.h diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 4857a1e5f61..75a7ab3441d 100644 +index 0b4b0c2122d..e92a7ef322f 100644 --- a/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def -@@ -196,6 +196,7 @@ kernel = { +@@ -195,6 +195,7 @@ kernel = { i386_multiboot = kern/i386/pc/acpi.c; i386_coreboot = kern/acpi.c; i386_multiboot = kern/acpi.c; @@ -112,11 +113,23 @@ index 98769eadb34..088cbe9e2bc 100644 grub_unregister_extcmd (cmd_read_byte); grub_unregister_extcmd (cmd_read_word); grub_unregister_extcmd (cmd_read_dword); +diff --git a/grub-core/kern/dl.c b/grub-core/kern/dl.c +index 04e804d1668..621070918d4 100644 +--- a/grub-core/kern/dl.c ++++ b/grub-core/kern/dl.c +@@ -32,6 +32,7 @@ + #include + #include + #include ++#include + + /* Platforms where modules are in a readonly area of memory. */ + #if defined(GRUB_MACHINE_QEMU) diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c -index 2588b481e76..684ca93f8f4 100644 +index 91129e33566..708581fcbde 100644 --- a/grub-core/kern/efi/efi.c +++ b/grub-core/kern/efi/efi.c -@@ -269,34 +269,6 @@ grub_efi_get_variable (const char *var, const grub_efi_guid_t *guid, +@@ -273,40 +273,6 @@ grub_efi_get_variable (const char *var, const grub_efi_guid_t *guid, return NULL; } @@ -130,14 +143,20 @@ index 2588b481e76..684ca93f8f4 100644 - grub_efi_boolean_t ret = 0; - - secure_boot = grub_efi_get_variable("SecureBoot", &efi_var_guid, &datasize); -- - if (datasize != 1 || !secure_boot) -- goto out; +- { +- grub_dprintf ("secureboot", "No SecureBoot variable\n"); +- goto out; +- } +- grub_dprintf ("secureboot", "SecureBoot: %d\n", *secure_boot); - - setup_mode = grub_efi_get_variable("SetupMode", &efi_var_guid, &datasize); -- - if (datasize != 1 || !setup_mode) -- goto out; +- { +- grub_dprintf ("secureboot", "No SetupMode variable\n"); +- goto out; +- } +- grub_dprintf ("secureboot", "SetupMode: %d\n", *setup_mode); - - if (*secure_boot && !*setup_mode) - ret = 1; @@ -153,10 +172,10 @@ index 2588b481e76..684ca93f8f4 100644 /* Search the mods section from the PE32/PE32+ image. This code uses diff --git a/grub-core/kern/efi/sb.c b/grub-core/kern/efi/sb.c new file mode 100644 -index 00000000000..a41b6c5b851 +index 00000000000..d74778b0cac --- /dev/null +++ b/grub-core/kern/efi/sb.c -@@ -0,0 +1,58 @@ +@@ -0,0 +1,64 @@ +/* + * GRUB -- GRand Unified Bootloader + * Copyright (C) 2014 Free Software Foundation, Inc. @@ -195,14 +214,20 @@ index 00000000000..a41b6c5b851 + grub_efi_boolean_t ret = 0; + + secure_boot = grub_efi_get_variable("SecureBoot", &efi_var_guid, &datasize); -+ + if (datasize != 1 || !secure_boot) -+ goto out; ++ { ++ grub_dprintf ("secureboot", "No SecureBoot variable\n"); ++ goto out; ++ } ++ grub_dprintf ("secureboot", "SecureBoot: %d\n", *secure_boot); + + setup_mode = grub_efi_get_variable("SetupMode", &efi_var_guid, &datasize); -+ + if (datasize != 1 || !setup_mode) -+ goto out; ++ { ++ grub_dprintf ("secureboot", "No SetupMode variable\n"); ++ goto out; ++ } ++ grub_dprintf ("secureboot", "SetupMode: %d\n", *setup_mode); + + if (*secure_boot && !*setup_mode) + ret = 1; @@ -247,7 +272,7 @@ index 74888c463ba..69c2a10d351 100644 grub_unregister_command (cmd); } diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c -index 87a91e16f17..aee8e6becf6 100644 +index af2189619a3..5cd9b6e08a8 100644 --- a/grub-core/loader/efi/chainloader.c +++ b/grub-core/loader/efi/chainloader.c @@ -34,6 +34,7 @@ @@ -291,7 +316,7 @@ index 7f96515da65..87709aa23e8 100644 grub_unregister_extcmd (cmd_openbsd); grub_unregister_extcmd (cmd_netbsd); diff --git a/grub-core/loader/i386/linux.c b/grub-core/loader/i386/linux.c -index 083f9417cb6..b2438547dd0 100644 +index f7186be4002..c84747ea857 100644 --- a/grub-core/loader/i386/linux.c +++ b/grub-core/loader/i386/linux.c @@ -35,6 +35,7 @@ @@ -302,7 +327,7 @@ index 083f9417cb6..b2438547dd0 100644 GRUB_MOD_LICENSE ("GPLv3+"); -@@ -1139,6 +1140,9 @@ static grub_command_t cmd_linux, cmd_initrd; +@@ -1156,6 +1157,9 @@ static grub_command_t cmd_linux, cmd_initrd; GRUB_MOD_INIT(linux) { @@ -312,7 +337,7 @@ index 083f9417cb6..b2438547dd0 100644 cmd_linux = grub_register_command ("linux", grub_cmd_linux, 0, N_("Load Linux.")); cmd_initrd = grub_register_command ("initrd", grub_cmd_initrd, -@@ -1148,6 +1152,9 @@ GRUB_MOD_INIT(linux) +@@ -1165,6 +1169,9 @@ GRUB_MOD_INIT(linux) GRUB_MOD_FINI(linux) { @@ -323,7 +348,7 @@ index 083f9417cb6..b2438547dd0 100644 grub_unregister_command (cmd_initrd); } diff --git a/grub-core/loader/i386/pc/linux.c b/grub-core/loader/i386/pc/linux.c -index a293b17aa10..91283157e30 100644 +index caa76bee8af..783a3cd93bc 100644 --- a/grub-core/loader/i386/pc/linux.c +++ b/grub-core/loader/i386/pc/linux.c @@ -35,6 +35,7 @@ @@ -334,7 +359,7 @@ index a293b17aa10..91283157e30 100644 GRUB_MOD_LICENSE ("GPLv3+"); -@@ -472,6 +473,9 @@ static grub_command_t cmd_linux, cmd_initrd; +@@ -480,6 +481,9 @@ static grub_command_t cmd_linux, cmd_linux16, cmd_initrd, cmd_initrd16; GRUB_MOD_INIT(linux16) { @@ -342,9 +367,9 @@ index a293b17aa10..91283157e30 100644 + return; + cmd_linux = - grub_register_command ("linux16", grub_cmd_linux, + grub_register_command ("linux", grub_cmd_linux, 0, N_("Load Linux.")); -@@ -483,6 +487,9 @@ GRUB_MOD_INIT(linux16) +@@ -497,6 +501,9 @@ GRUB_MOD_INIT(linux16) GRUB_MOD_FINI(linux16) { @@ -352,13 +377,13 @@ index a293b17aa10..91283157e30 100644 + return; + grub_unregister_command (cmd_linux); + grub_unregister_command (cmd_linux16); grub_unregister_command (cmd_initrd); - } diff --git a/grub-core/loader/multiboot.c b/grub-core/loader/multiboot.c -index bd9d5b3e698..fb044a60c79 100644 +index 40c67e82489..26df46a4161 100644 --- a/grub-core/loader/multiboot.c +++ b/grub-core/loader/multiboot.c -@@ -42,6 +42,7 @@ +@@ -50,6 +50,7 @@ #include #include #include @@ -366,7 +391,7 @@ index bd9d5b3e698..fb044a60c79 100644 GRUB_MOD_LICENSE ("GPLv3+"); -@@ -431,6 +432,9 @@ static grub_command_t cmd_multiboot, cmd_module; +@@ -446,6 +447,9 @@ static grub_command_t cmd_multiboot, cmd_module; GRUB_MOD_INIT(multiboot) { @@ -376,7 +401,7 @@ index bd9d5b3e698..fb044a60c79 100644 cmd_multiboot = #ifdef GRUB_USE_MULTIBOOT2 grub_register_command ("multiboot2", grub_cmd_multiboot, -@@ -451,6 +455,9 @@ GRUB_MOD_INIT(multiboot) +@@ -466,6 +470,9 @@ GRUB_MOD_INIT(multiboot) GRUB_MOD_FINI(multiboot) { @@ -419,10 +444,10 @@ index c9885b1bcd7..df8dfdb4ba0 100644 grub_unregister_command (cmd_resume); #endif diff --git a/include/grub/efi/efi.h b/include/grub/efi/efi.h -index bb3ab7dfdeb..91e29ce66f1 100644 +index 1061aee9726..39480b38674 100644 --- a/include/grub/efi/efi.h +++ b/include/grub/efi/efi.h -@@ -83,7 +83,6 @@ EXPORT_FUNC (grub_efi_set_variable) (const char *var, +@@ -85,7 +85,6 @@ EXPORT_FUNC (grub_efi_set_variable) (const char *var, const grub_efi_guid_t *guid, void *data, grub_size_t datasize); @@ -478,7 +503,7 @@ diff --git a/include/grub/sparc64/linux.h b/include/grub/sparc64/linux.h new file mode 100644 index 00000000000..e69de29bb2d diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am -index 10451384720..f7b4d29b0b3 100644 +index f4ff62b769a..9c69aa88626 100644 --- a/grub-core/Makefile.am +++ b/grub-core/Makefile.am @@ -71,6 +71,7 @@ KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/command.h diff --git a/0102-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch b/0006-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch similarity index 72% rename from 0102-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch rename to 0006-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch index f5790e1f..76b1183d 100644 --- a/0102-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch +++ b/0006-Handle-multi-arch-64-on-32-boot-in-linuxefi-loader.patch @@ -8,15 +8,15 @@ Allow booting 64-bit kernels on 32-bit EFI on x86. Signed-off-by: Peter Jones --- grub-core/loader/efi/linux.c | 9 +++- - grub-core/loader/i386/efi/linux.c | 110 +++++++++++++++++++++++++++----------- + grub-core/loader/i386/efi/linux.c | 110 ++++++++++++++++++++++++++------------ include/grub/i386/linux.h | 7 ++- - 3 files changed, 93 insertions(+), 33 deletions(-) + 3 files changed, 89 insertions(+), 37 deletions(-) diff --git a/grub-core/loader/efi/linux.c b/grub-core/loader/efi/linux.c -index 8890bdf059a..2a7024134da 100644 +index c8ecce6dfd0..0622dfa48d4 100644 --- a/grub-core/loader/efi/linux.c +++ b/grub-core/loader/efi/linux.c -@@ -56,12 +56,17 @@ grub_linuxefi_secure_validate (void *data, grub_uint32_t size) +@@ -69,12 +69,17 @@ grub_linuxefi_secure_validate (void *data, grub_uint32_t size) typedef void (*handover_func) (void *, grub_efi_system_table_t *, void *); grub_err_t @@ -37,7 +37,7 @@ index 8890bdf059a..2a7024134da 100644 return GRUB_ERR_BUG; diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c -index 8b5a817b9d1..bed5919cab3 100644 +index 8db228c5bf5..800c3e54022 100644 --- a/grub-core/loader/i386/efi/linux.c +++ b/grub-core/loader/i386/efi/linux.c @@ -44,14 +44,10 @@ static char *linux_cmdline; @@ -57,16 +57,7 @@ index 8b5a817b9d1..bed5919cab3 100644 params); } -@@ -119,6 +115,8 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), - goto fail; - } - -+ grub_dprintf ("linuxefi", "initrd_mem = %lx\n", (unsigned long) initrd_mem); -+ - params->ramdisk_size = size; - params->ramdisk_image = (grub_uint32_t)(grub_addr_t) initrd_mem; - -@@ -153,14 +151,20 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), +@@ -154,14 +150,20 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), return grub_errno; } @@ -81,14 +72,15 @@ index 8b5a817b9d1..bed5919cab3 100644 { grub_file_t file = 0; - struct linux_kernel_header lh; -+ struct linux_kernel_header *lh; - grub_ssize_t len, start, filelen; +- grub_ssize_t len, start, filelen; ++ struct linux_i386_kernel_header *lh = NULL; ++ grub_ssize_t start, filelen; void *kernel = NULL; + int setup_header_end_offset; int rc; grub_dl_ref (my_mod); -@@ -200,69 +204,107 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), +@@ -201,48 +203,79 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), goto fail; } @@ -102,24 +94,27 @@ index 8b5a817b9d1..bed5919cab3 100644 goto fail; } -- grub_memset (params, 0, 16384); -+ grub_dprintf ("linuxefi", "params = %p\n", (unsigned long) params); +- grub_dprintf ("linux", "params = %lx\n", (unsigned long) params); ++ grub_dprintf ("linux", "params = %p\n", params); -- grub_memcpy (&lh, kernel, sizeof (lh)); +- grub_memset (params, 0, 16384); + grub_memset (params, 0, sizeof(*params)); +- grub_memcpy (&lh, kernel, sizeof (lh)); +- - if (lh.boot_flag != grub_cpu_to_le16 (0xaa55)) + setup_header_end_offset = *((grub_uint8_t *)kernel + 0x201); -+ grub_dprintf ("linuxefi", "copying %d bytes from %p to %p\n", -+ MIN(0x202+setup_header_end_offset,sizeof (*params)) - 0x1f1, ++ grub_dprintf ("linux", "copying %lu bytes from %p to %p\n", ++ MIN((grub_size_t)0x202+setup_header_end_offset, ++ sizeof (*params)) - 0x1f1, + (grub_uint8_t *)kernel + 0x1f1, + (grub_uint8_t *)params + 0x1f1); + grub_memcpy ((grub_uint8_t *)params + 0x1f1, + (grub_uint8_t *)kernel + 0x1f1, -+ MIN(0x202+setup_header_end_offset,sizeof (*params)) - 0x1f1); -+ lh = (struct linux_kernel_header *)params; -+ grub_dprintf ("linuxefi", "lh is at %p\n", lh); -+ grub_dprintf ("linuxefi", "checking lh->boot_flag\n"); ++ MIN((grub_size_t)0x202+setup_header_end_offset,sizeof (*params)) - 0x1f1); ++ lh = (struct linux_i386_kernel_header *)params; ++ grub_dprintf ("linux", "lh is at %p\n", lh); ++ grub_dprintf ("linux", "checking lh->boot_flag\n"); + if (lh->boot_flag != grub_cpu_to_le16 (0xaa55)) { grub_error (GRUB_ERR_BAD_OS, N_("invalid magic number")); @@ -127,7 +122,7 @@ index 8b5a817b9d1..bed5919cab3 100644 } - if (lh.setup_sects > GRUB_LINUX_MAX_SETUP_SECTS) -+ grub_dprintf ("linuxefi", "checking lh->setup_sects\n"); ++ grub_dprintf ("linux", "checking lh->setup_sects\n"); + if (lh->setup_sects > GRUB_LINUX_MAX_SETUP_SECTS) { grub_error (GRUB_ERR_BAD_OS, N_("too many setup sectors")); @@ -135,7 +130,7 @@ index 8b5a817b9d1..bed5919cab3 100644 } - if (lh.version < grub_cpu_to_le16 (0x020b)) -+ grub_dprintf ("linuxefi", "checking lh->version\n"); ++ grub_dprintf ("linux", "checking lh->version\n"); + if (lh->version < grub_cpu_to_le16 (0x020b)) { grub_error (GRUB_ERR_BAD_OS, N_("kernel too old")); @@ -143,7 +138,7 @@ index 8b5a817b9d1..bed5919cab3 100644 } - if (!lh.handover_offset) -+ grub_dprintf ("linuxefi", "checking lh->handover_offset\n"); ++ grub_dprintf ("linux", "checking lh->handover_offset\n"); + if (!lh->handover_offset) { grub_error (GRUB_ERR_BAD_OS, N_("kernel doesn't support EFI handover")); @@ -151,7 +146,7 @@ index 8b5a817b9d1..bed5919cab3 100644 } +#if defined(__x86_64__) || defined(__aarch64__) -+ grub_dprintf ("linuxefi", "checking lh->xloadflags\n"); ++ grub_dprintf ("linux", "checking lh->xloadflags\n"); + if (!(lh->xloadflags & LINUX_XLF_KERNEL_64)) + { + grub_error (GRUB_ERR_BAD_OS, N_("kernel doesn't support 64-bit CPUs")); @@ -169,7 +164,7 @@ index 8b5a817b9d1..bed5919cab3 100644 + } +#endif + -+ grub_dprintf ("linuxefi", "setting up cmdline\n"); + grub_dprintf ("linux", "setting up cmdline\n"); linux_cmdline = grub_efi_allocate_pages_max(0x3fffffff, - BYTES_TO_PAGES(lh.cmdline_size + 1)); - @@ -177,12 +172,7 @@ index 8b5a817b9d1..bed5919cab3 100644 if (!linux_cmdline) { grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("can't allocate cmdline")); - goto fail; - } - -+ grub_dprintf ("linuxefi", "linux_cmdline = %lx\n", -+ (unsigned long)linux_cmdline); -+ +@@ -255,21 +288,23 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), grub_memcpy (linux_cmdline, LINUX_IMAGE, sizeof (LINUX_IMAGE)); grub_create_loader_cmdline (argc, argv, linux_cmdline + sizeof (LINUX_IMAGE) - 1, @@ -190,19 +180,20 @@ index 8b5a817b9d1..bed5919cab3 100644 + lh->cmdline_size - (sizeof (LINUX_IMAGE) - 1)); - lh.cmd_line_ptr = (grub_uint32_t)(grub_addr_t)linux_cmdline; -+ grub_dprintf ("linuxefi", "setting lh->cmd_line_ptr\n"); ++ grub_dprintf ("linux", "cmdline:%s\n", linux_cmdline); ++ grub_dprintf ("linux", "setting lh->cmd_line_ptr\n"); + lh->cmd_line_ptr = (grub_uint32_t)(grub_addr_t)linux_cmdline; - handover_offset = lh.handover_offset; -+ grub_dprintf ("linuxefi", "computing handover offset\n"); ++ grub_dprintf ("linux", "computing handover offset\n"); + handover_offset = lh->handover_offset; - start = (lh.setup_sects + 1) * 512; +- len = grub_file_size(file) - start; + start = (lh->setup_sects + 1) * 512; - len = grub_file_size(file) - start; -- kernel_mem = grub_efi_allocate_pages(lh.pref_address, -- BYTES_TO_PAGES(lh.init_size)); +- kernel_mem = grub_efi_allocate_pages_max(lh.pref_address, +- BYTES_TO_PAGES(lh.init_size)); + kernel_mem = grub_efi_allocate_pages_max(lh->pref_address, + BYTES_TO_PAGES(lh->init_size)); @@ -213,16 +204,16 @@ index 8b5a817b9d1..bed5919cab3 100644 if (!kernel_mem) { -@@ -270,17 +312,25 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), +@@ -277,14 +312,21 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), goto fail; } - grub_memcpy (kernel_mem, (char *)kernel + start, len); -+ grub_dprintf ("linuxefi", "kernel_mem = %lx\n", (unsigned long) kernel_mem); ++ grub_dprintf ("linux", "kernel_mem = %lx\n", (unsigned long) kernel_mem); + grub_loader_set (grub_linuxefi_boot, grub_linuxefi_unload, 0); loaded=1; -+ grub_dprintf ("linuxefi", "setting lh->code32_start to %p\n", kernel_mem); ++ grub_dprintf ("linux", "setting lh->code32_start to %p\n", kernel_mem); + lh->code32_start = (grub_uint32_t)(grub_addr_t) kernel_mem; - lh.code32_start = (grub_uint32_t)(grub_uint64_t) kernel_mem; @@ -230,22 +221,21 @@ index 8b5a817b9d1..bed5919cab3 100644 + grub_memcpy (kernel_mem, (char *)kernel + start, filelen - start); - params->type_of_loader = 0x21; -+ grub_dprintf ("linuxefi", "setting lh->type_of_loader\n"); ++ grub_dprintf ("linux", "setting lh->type_of_loader\n"); + lh->type_of_loader = 0x6; + -+ grub_dprintf ("linuxefi", "setting lh->ext_loader_{type,ver}\n"); ++ grub_dprintf ("linux", "setting lh->ext_loader_{type,ver}\n"); + params->ext_loader_type = 0; + params->ext_loader_ver = 2; -+ grub_dprintf("linuxefi", "kernel_mem: %p handover_offset: %08x\n", -+ kernel_mem, handover_offset); + grub_dprintf("linux", "kernel_mem: %p handover_offset: %08x\n", + kernel_mem, handover_offset); - fail: -- - if (file) - grub_file_close (file); +@@ -301,10 +343,10 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), + loaded = 0; + } -@@ -296,7 +346,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - if (linux_cmdline && !loaded) +- if (linux_cmdline && !loaded) ++ if (linux_cmdline && lh && !loaded) grub_efi_free_pages ((grub_efi_physical_address_t)(grub_addr_t) linux_cmdline, - BYTES_TO_PAGES(lh.cmdline_size + 1)); @@ -254,10 +244,10 @@ index 8b5a817b9d1..bed5919cab3 100644 if (kernel_mem && !loaded) grub_efi_free_pages ((grub_efi_physical_address_t)(grub_addr_t)kernel_mem, diff --git a/include/grub/i386/linux.h b/include/grub/i386/linux.h -index fc36bdaf367..110ecf806fb 100644 +index bb19dbd5a77..8474a857ed2 100644 --- a/include/grub/i386/linux.h +++ b/include/grub/i386/linux.h -@@ -130,7 +130,12 @@ struct linux_kernel_header +@@ -133,7 +133,12 @@ struct linux_i386_kernel_header grub_uint32_t kernel_alignment; grub_uint8_t relocatable; grub_uint8_t min_alignment; diff --git a/0001-re-write-.gitignore.patch b/0007-re-write-.gitignore.patch similarity index 97% rename from 0001-re-write-.gitignore.patch rename to 0007-re-write-.gitignore.patch index 46353605..34deea72 100644 --- a/0001-re-write-.gitignore.patch +++ b/0007-re-write-.gitignore.patch @@ -4,7 +4,7 @@ Date: Tue, 8 Aug 2017 12:48:04 -0400 Subject: [PATCH] re-write .gitignore --- - .gitignore | 352 ++++++++++++-------------------------- + .gitignore | 357 +++++++++++++------------------------- build-aux/.gitignore | 9 + docs/.gitignore | 4 + grub-core/.gitignore | 15 ++ @@ -13,7 +13,7 @@ Subject: [PATCH] re-write .gitignore include/grub/gcrypt/.gitignore | 2 + po/.gitignore | 4 + util/bash-completion.d/.gitignore | 1 + - 9 files changed, 170 insertions(+), 240 deletions(-) + 9 files changed, 175 insertions(+), 240 deletions(-) create mode 100644 build-aux/.gitignore create mode 100644 docs/.gitignore create mode 100644 grub-core/.gitignore @@ -24,10 +24,10 @@ Subject: [PATCH] re-write .gitignore create mode 100644 util/bash-completion.d/.gitignore diff --git a/.gitignore b/.gitignore -index eca17bec9b8..d95fac5789c 100644 +index eca17bec9b8..43f04d47277 100644 --- a/.gitignore +++ b/.gitignore -@@ -1,249 +1,121 @@ +@@ -1,249 +1,126 @@ -00_header -10_* -20_linux_xen @@ -78,6 +78,7 @@ index eca17bec9b8..d95fac5789c 100644 +# things very common editors create that we never want +*~ +.*.sw? ++*.patch + +# built objects across the whole tree +Makefile.in @@ -319,6 +320,9 @@ index eca17bec9b8..d95fac5789c 100644 + +# stuff "make" creates +/[[:digit:]][[:digit:]]_?* ++/ascii.h ++/build-grub-gen-asciih ++/build-grub-gen-widthspec +/build-grub-mkfont +/config-util.h.in /garbage-gen @@ -389,6 +393,7 @@ index eca17bec9b8..d95fac5789c 100644 +/libgrub_a_init.c +/libgrub_a_init.lst +/stamp-h.in ++/widthspec.h diff --git a/build-aux/.gitignore b/build-aux/.gitignore new file mode 100644 index 00000000000..f2f17aab9ff diff --git a/0002-IBM-client-architecture-CAS-reboot-support.patch b/0008-IBM-client-architecture-CAS-reboot-support.patch similarity index 92% rename from 0002-IBM-client-architecture-CAS-reboot-support.patch rename to 0008-IBM-client-architecture-CAS-reboot-support.patch index 787697f6..0dcaa0ad 100644 --- a/0002-IBM-client-architecture-CAS-reboot-support.patch +++ b/0008-IBM-client-architecture-CAS-reboot-support.patch @@ -18,20 +18,21 @@ Instead of return to the GRUB menu, it will check if the flag for CAS reboot is set. If so, grub will automatically boot the last booted kernel using the same parameters --- - grub-core/kern/ieee1275/openfw.c | 62 ++++++++++++++++++++++++++++++++++++++++ + grub-core/kern/ieee1275/openfw.c | 63 ++++++++++++++++++++++++++++++++++++++++ grub-core/normal/main.c | 19 ++++++++++++ grub-core/script/execute.c | 7 +++++ include/grub/ieee1275/ieee1275.h | 2 ++ - 4 files changed, 90 insertions(+) + 4 files changed, 91 insertions(+) diff --git a/grub-core/kern/ieee1275/openfw.c b/grub-core/kern/ieee1275/openfw.c -index ddb778340e4..6db8b986551 100644 +index 62929d983bf..2d53c0e8608 100644 --- a/grub-core/kern/ieee1275/openfw.c +++ b/grub-core/kern/ieee1275/openfw.c -@@ -561,3 +561,65 @@ grub_ieee1275_canonicalise_devname (const char *path) - return NULL; - } +@@ -588,3 +588,66 @@ grub_ieee1275_get_boot_dev (void) + return bootpath; + } ++ +/* Check if it's a CAS reboot. If so, set the script to be executed. */ +int +grub_ieee1275_cas_reboot (char *script) @@ -157,15 +158,15 @@ index a8502d90711..ab78ca87f90 100644 { char *line; diff --git a/include/grub/ieee1275/ieee1275.h b/include/grub/ieee1275/ieee1275.h -index 8e425130327..9f26c69a2df 100644 +index 8868f3a756f..2310f33dbc2 100644 --- a/include/grub/ieee1275/ieee1275.h +++ b/include/grub/ieee1275/ieee1275.h -@@ -234,6 +234,8 @@ int EXPORT_FUNC(grub_ieee1275_devalias_next) (struct grub_ieee1275_devalias *ali +@@ -252,6 +252,8 @@ int EXPORT_FUNC(grub_ieee1275_devalias_next) (struct grub_ieee1275_devalias *ali void EXPORT_FUNC(grub_ieee1275_children_peer) (struct grub_ieee1275_devalias *alias); void EXPORT_FUNC(grub_ieee1275_children_first) (const char *devpath, struct grub_ieee1275_devalias *alias); +int EXPORT_FUNC(grub_ieee1275_cas_reboot) (char *script); +int EXPORT_FUNC(grub_ieee1275_set_boot_last_label) (const char *text); - #define FOR_IEEE1275_DEVALIASES(alias) for (grub_ieee1275_devalias_init_iterator (&(alias)); grub_ieee1275_devalias_next (&(alias));) + char *EXPORT_FUNC(grub_ieee1275_get_boot_dev) (void); diff --git a/0003-for-ppc-reset-console-display-attr-when-clear-screen.patch b/0009-for-ppc-reset-console-display-attr-when-clear-screen.patch similarity index 100% rename from 0003-for-ppc-reset-console-display-attr-when-clear-screen.patch rename to 0009-for-ppc-reset-console-display-attr-when-clear-screen.patch diff --git a/0004-Disable-GRUB-video-support-for-IBM-power-machines.patch b/0010-Disable-GRUB-video-support-for-IBM-power-machines.patch similarity index 98% rename from 0004-Disable-GRUB-video-support-for-IBM-power-machines.patch rename to 0010-Disable-GRUB-video-support-for-IBM-power-machines.patch index f6d99396..ab411af3 100644 --- a/0004-Disable-GRUB-video-support-for-IBM-power-machines.patch +++ b/0010-Disable-GRUB-video-support-for-IBM-power-machines.patch @@ -48,7 +48,7 @@ index 17a3dbbb575..b8e4b3feb32 100644 GRUB_MOD_FINI(ieee1275_fb) diff --git a/include/grub/ieee1275/ieee1275.h b/include/grub/ieee1275/ieee1275.h -index 9f26c69a2df..ab4f284c341 100644 +index 2310f33dbc2..ca08bd96681 100644 --- a/include/grub/ieee1275/ieee1275.h +++ b/include/grub/ieee1275/ieee1275.h @@ -146,6 +146,8 @@ enum grub_ieee1275_flag diff --git a/0005-Honor-a-symlink-when-generating-configuration-by-gru.patch b/0011-Honor-a-symlink-when-generating-configuration-by-gru.patch similarity index 88% rename from 0005-Honor-a-symlink-when-generating-configuration-by-gru.patch rename to 0011-Honor-a-symlink-when-generating-configuration-by-gru.patch index 5701f6d1..1ea476c3 100644 --- a/0005-Honor-a-symlink-when-generating-configuration-by-gru.patch +++ b/0011-Honor-a-symlink-when-generating-configuration-by-gru.patch @@ -11,10 +11,10 @@ the -o option follows it rather than overwriting it with a regular file. 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in -index f8496d28bdf..3b070fd7632 100644 +index 33332360eec..bc5a3f17541 100644 --- a/util/grub-mkconfig.in +++ b/util/grub-mkconfig.in -@@ -276,7 +276,8 @@ and /etc/grub.d/* files or please file a bug report with +@@ -287,7 +287,8 @@ and /etc/grub.d/* files or please file a bug report with exit 1 else # none of the children aborted with error, install the new grub.cfg diff --git a/0006-Move-bash-completion-script-922997.patch b/0012-Move-bash-completion-script-922997.patch similarity index 92% rename from 0006-Move-bash-completion-script-922997.patch rename to 0012-Move-bash-completion-script-922997.patch index dbf31bfc..6c3c773c 100644 --- a/0006-Move-bash-completion-script-922997.patch +++ b/0012-Move-bash-completion-script-922997.patch @@ -10,10 +10,10 @@ Apparently these go in a new place now. 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac -index 571f7a0b5aa..9ae97f026ab 100644 +index c7888e40f66..783118ccdcd 100644 --- a/configure.ac +++ b/configure.ac -@@ -288,6 +288,14 @@ AC_SUBST(grubdirname) +@@ -289,6 +289,14 @@ AC_SUBST(grubdirname) AC_DEFINE_UNQUOTED(GRUB_DIR_NAME, "$grubdirname", [Default grub directory name]) @@ -28,7 +28,7 @@ index 571f7a0b5aa..9ae97f026ab 100644 # # Checks for build programs. # -@@ -497,6 +505,9 @@ HOST_CFLAGS="$HOST_CFLAGS $grub_cv_cc_w_extra_flags" +@@ -498,6 +506,9 @@ HOST_CFLAGS="$HOST_CFLAGS $grub_cv_cc_w_extra_flags" # Check for target programs. # diff --git a/0007-Update-to-minilzo-2.08.patch b/0013-Update-to-minilzo-2.08.patch similarity index 100% rename from 0007-Update-to-minilzo-2.08.patch rename to 0013-Update-to-minilzo-2.08.patch diff --git a/0008-Allow-fallback-to-include-entries-by-title-not-just-.patch b/0014-Allow-fallback-to-include-entries-by-title-not-just-.patch similarity index 100% rename from 0008-Allow-fallback-to-include-entries-by-title-not-just-.patch rename to 0014-Allow-fallback-to-include-entries-by-title-not-just-.patch diff --git a/0009-Add-GRUB_DISABLE_UUID.patch b/0015-Add-GRUB_DISABLE_UUID.patch similarity index 74% rename from 0009-Add-GRUB_DISABLE_UUID.patch rename to 0015-Add-GRUB_DISABLE_UUID.patch index 856ce003..a6856d28 100644 --- a/0009-Add-GRUB_DISABLE_UUID.patch +++ b/0015-Add-GRUB_DISABLE_UUID.patch @@ -10,15 +10,15 @@ as it understands it. Signed-off-by: Peter Jones --- docs/grub.texi | 7 +++++++ - util/grub-mkconfig.in | 12 ++++++++++-- + util/grub-mkconfig.in | 22 +++++++++++++++++++--- util/grub-mkconfig_lib.in | 4 ++-- - 3 files changed, 19 insertions(+), 4 deletions(-) + 3 files changed, 28 insertions(+), 5 deletions(-) diff --git a/docs/grub.texi b/docs/grub.texi -index a0c4b9e4e8e..6fdd2a041f7 100644 +index 2adfa97bee8..2fd32608c01 100644 --- a/docs/grub.texi +++ b/docs/grub.texi -@@ -1409,6 +1409,13 @@ disable the use of UUIDs, set this option to @samp{true}. +@@ -1441,6 +1441,13 @@ enable the use of partition UUIDs, set this option to @samp{false}. If this option is set to @samp{true}, disable the generation of recovery mode menu entries. @@ -33,15 +33,17 @@ index a0c4b9e4e8e..6fdd2a041f7 100644 If graphical video support is required, either because the @samp{gfxterm} graphical terminal is in use or because @samp{GRUB_GFXPAYLOAD_LINUX} is set, diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in -index 3b070fd7632..c088b705442 100644 +index bc5a3f17541..b0a8626dd1c 100644 --- a/util/grub-mkconfig.in +++ b/util/grub-mkconfig.in -@@ -133,11 +133,11 @@ fi +@@ -133,12 +133,12 @@ fi # Device containing our userland. Typically used for root= parameter. GRUB_DEVICE="`${grub_probe} --target=device /`" -GRUB_DEVICE_UUID="`${grub_probe} --device ${GRUB_DEVICE} --target=fs_uuid 2> /dev/null`" || true +-GRUB_DEVICE_PARTUUID="`${grub_probe} --device ${GRUB_DEVICE} --target=partuuid 2> /dev/null`" || true +GRUB_DEVICE_UUID_GENERATED="`${grub_probe} --device ${GRUB_DEVICE} --target=fs_uuid 2> /dev/null`" || true ++GRUB_DEVICE_PARTUUID_GENERATED="`${grub_probe} --device ${GRUB_DEVICE} --target=partuuid 2> /dev/null`" || true # Device containing our /boot partition. Usually the same as GRUB_DEVICE. GRUB_DEVICE_BOOT="`${grub_probe} --target=device /boot`" @@ -50,30 +52,38 @@ index 3b070fd7632..c088b705442 100644 # Filesystem for the device containing our userland. Used for stuff like # choosing Hurd filesystem module. -@@ -151,6 +151,13 @@ if test -f ${sysconfdir}/default/grub ; then +@@ -158,6 +158,21 @@ if test -f ${sysconfdir}/default/grub ; then . ${sysconfdir}/default/grub fi -+if [ "x$GRUB_DISABLE_UUID" != "xtrue" -a -z "$GRUB_DEVICE_UUID" ]; then -+ GRUB_DEVICE_UUID="$GRUB_DEVICE_UUID_GENERATED" -+fi -+if [ "x$GRUB_DISABLE_UUID" != "xtrue" -a -z "$GRUB_DEVICE_BOOT_UUID" ]; then -+ GRUB_DEVICE_BOOT_UUID="$GRUB_DEVICE_BOOT_UUID_GENERATED" ++if [ "x$GRUB_DISABLE_UUID" != "xtrue" ]; then ++ if [ -z "$GRUB_DEVICE_UUID" ]; then ++ GRUB_DEVICE_UUID="$GRUB_DEVICE_UUID_GENERATED" ++ fi ++ if [ -z "$GRUB_DEVICE_BOOT_UUID" ]; then ++ GRUB_DEVICE_BOOT_UUID="$GRUB_DEVICE_BOOT_UUID_GENERATED" ++ fi ++ if [ -z "$GRUB_DEVICE_UUID" ]; then ++ GRUB_DEVICE_UUID="$GRUB_DEVICE_UUID_GENERATED" ++ fi ++ if [ -z "$GRUB_DEVICE_PART_UUID" ]; then ++ GRUB_DEVICE_PART_UUID="$GRUB_DEVICE_PART_UUID_GENERATED" ++ fi +fi + # XXX: should this be deprecated at some point? if [ "x${GRUB_TERMINAL}" != "x" ] ; then GRUB_TERMINAL_INPUT="${GRUB_TERMINAL}" -@@ -216,6 +223,7 @@ export GRUB_DEFAULT \ - GRUB_SERIAL_COMMAND \ +@@ -227,6 +242,7 @@ export GRUB_DEFAULT \ GRUB_DISABLE_LINUX_UUID \ + GRUB_DISABLE_LINUX_PARTUUID \ GRUB_DISABLE_RECOVERY \ + GRUB_DISABLE_UUID \ GRUB_VIDEO_BACKEND \ GRUB_GFXMODE \ GRUB_BACKGROUND \ diff --git a/util/grub-mkconfig_lib.in b/util/grub-mkconfig_lib.in -index 60b31caddeb..cf35e417470 100644 +index 0f801cab3e4..1001a12232b 100644 --- a/util/grub-mkconfig_lib.in +++ b/util/grub-mkconfig_lib.in @@ -156,7 +156,7 @@ prepare_grub_to_access_device () diff --git a/0010-Make-exit-take-a-return-code.patch b/0016-Make-exit-take-a-return-code.patch similarity index 97% rename from 0010-Make-exit-take-a-return-code.patch rename to 0016-Make-exit-take-a-return-code.patch index 2b4f2a6d..937c7744 100644 --- a/0010-Make-exit-take-a-return-code.patch +++ b/0016-Make-exit-take-a-return-code.patch @@ -60,10 +60,10 @@ index a3a11824172..b25ca4b9f17 100644 } diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c -index d467785fc6c..684ca93f8f4 100644 +index 708581fcbde..e339f264b3a 100644 --- a/grub-core/kern/efi/efi.c +++ b/grub-core/kern/efi/efi.c -@@ -155,11 +155,16 @@ grub_efi_get_loaded_image (grub_efi_handle_t image_handle) +@@ -164,11 +164,16 @@ grub_reboot (void) } void @@ -139,7 +139,7 @@ index 271b6fbfabd..9fafe98f015 100644 /* We can't use grub_fatal() in this function. This would create an infinite loop, since grub_fatal() calls grub_abort() which in turn calls grub_exit(). */ diff --git a/grub-core/kern/ieee1275/init.c b/grub-core/kern/ieee1275/init.c -index 12590225eca..e69c0133e69 100644 +index 0d8ebf58b95..f5423ce27d9 100644 --- a/grub-core/kern/ieee1275/init.c +++ b/grub-core/kern/ieee1275/init.c @@ -68,7 +68,7 @@ grub_addr_t grub_ieee1275_original_stack; @@ -242,7 +242,7 @@ index 0559c033c3d..fce526d417b 100644 struct sched_shutdown arg; diff --git a/include/grub/misc.h b/include/grub/misc.h -index 2a9f87cc255..06208143779 100644 +index 372f009e84f..83fd69f4ada 100644 --- a/include/grub/misc.h +++ b/include/grub/misc.h @@ -334,7 +334,7 @@ int EXPORT_FUNC(grub_vsnprintf) (char *str, grub_size_t n, const char *fmt, diff --git a/0011-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch b/0017-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch similarity index 100% rename from 0011-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch rename to 0017-Mark-po-exclude.pot-as-binary-so-git-won-t-try-to-di.patch diff --git a/0012-Make-efi-machines-load-an-env-block-from-a-variable.patch b/0018-Make-efi-machines-load-an-env-block-from-a-variable.patch similarity index 96% rename from 0012-Make-efi-machines-load-an-env-block-from-a-variable.patch rename to 0018-Make-efi-machines-load-an-env-block-from-a-variable.patch index 223e94a9..2748c1c6 100644 --- a/0012-Make-efi-machines-load-an-env-block-from-a-variable.patch +++ b/0018-Make-efi-machines-load-an-env-block-from-a-variable.patch @@ -10,7 +10,7 @@ Signed-off-by: Peter Jones 2 files changed, 34 insertions(+), 1 deletion(-) diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index a65c27f7ff2..1eb86bed33b 100644 +index e92a7ef322f..f8065388213 100644 --- a/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def @@ -191,6 +191,7 @@ kernel = { @@ -22,7 +22,7 @@ index a65c27f7ff2..1eb86bed33b 100644 i386_multiboot = kern/i386/pc/acpi.c; i386_coreboot = kern/acpi.c; diff --git a/grub-core/kern/efi/init.c b/grub-core/kern/efi/init.c -index 2c31847bf6d..f7782b6e114 100644 +index 3dfdf2d22b0..71d2279a0c1 100644 --- a/grub-core/kern/efi/init.c +++ b/grub-core/kern/efi/init.c @@ -25,9 +25,40 @@ diff --git a/0019-Add-support-for-linuxefi.patch b/0019-Add-support-for-linuxefi.patch deleted file mode 100644 index 49394b25..00000000 --- a/0019-Add-support-for-linuxefi.patch +++ /dev/null @@ -1,479 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Matthew Garrett -Date: Tue, 10 Jul 2012 11:58:52 -0400 -Subject: [PATCH] Add support for linuxefi - ---- - grub-core/Makefile.core.def | 8 + - grub-core/kern/efi/mm.c | 32 ++++ - grub-core/loader/i386/efi/linux.c | 371 ++++++++++++++++++++++++++++++++++++++ - include/grub/efi/efi.h | 3 + - include/grub/i386/linux.h | 1 + - 5 files changed, 415 insertions(+) - create mode 100644 grub-core/loader/i386/efi/linux.c - -diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 1eb86bed33b..c653c71c594 100644 ---- a/grub-core/Makefile.core.def -+++ b/grub-core/Makefile.core.def -@@ -1764,6 +1764,14 @@ module = { - enable = x86_64_efi; - }; - -+module = { -+ name = linuxefi; -+ efi = loader/i386/efi/linux.c; -+ efi = lib/cmdline.c; -+ enable = i386_efi; -+ enable = x86_64_efi; -+}; -+ - module = { - name = chain; - efi = loader/efi/chainloader.c; -diff --git a/grub-core/kern/efi/mm.c b/grub-core/kern/efi/mm.c -index ac2a4c556b8..f5440cb1df9 100644 ---- a/grub-core/kern/efi/mm.c -+++ b/grub-core/kern/efi/mm.c -@@ -49,6 +49,38 @@ static grub_efi_uintn_t finish_desc_size; - static grub_efi_uint32_t finish_desc_version; - int grub_efi_is_finished = 0; - -+/* Allocate pages below a specified address */ -+void * -+grub_efi_allocate_pages_max (grub_efi_physical_address_t max, -+ grub_efi_uintn_t pages) -+{ -+ grub_efi_status_t status; -+ grub_efi_boot_services_t *b; -+ grub_efi_physical_address_t address = max; -+ -+ if (max > 0xffffffff) -+ return 0; -+ -+ b = grub_efi_system_table->boot_services; -+ status = efi_call_4 (b->allocate_pages, GRUB_EFI_ALLOCATE_MAX_ADDRESS, GRUB_EFI_LOADER_DATA, pages, &address); -+ -+ if (status != GRUB_EFI_SUCCESS) -+ return 0; -+ -+ if (address == 0) -+ { -+ /* Uggh, the address 0 was allocated... This is too annoying, -+ so reallocate another one. */ -+ address = max; -+ status = efi_call_4 (b->allocate_pages, GRUB_EFI_ALLOCATE_MAX_ADDRESS, GRUB_EFI_LOADER_DATA, pages, &address); -+ grub_efi_free_pages (0, pages); -+ if (status != GRUB_EFI_SUCCESS) -+ return 0; -+ } -+ -+ return (void *) ((grub_addr_t) address); -+} -+ - /* Allocate pages. Return the pointer to the first of allocated pages. */ - void * - grub_efi_allocate_pages_real (grub_efi_physical_address_t address, -diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c -new file mode 100644 -index 00000000000..b79e6320ba9 ---- /dev/null -+++ b/grub-core/loader/i386/efi/linux.c -@@ -0,0 +1,371 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2012 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+GRUB_MOD_LICENSE ("GPLv3+"); -+ -+static grub_dl_t my_mod; -+static int loaded; -+static void *kernel_mem; -+static grub_uint64_t kernel_size; -+static grub_uint8_t *initrd_mem; -+static grub_uint32_t handover_offset; -+struct linux_kernel_params *params; -+static char *linux_cmdline; -+ -+#define BYTES_TO_PAGES(bytes) (((bytes) + 0xfff) >> 12) -+ -+#define SHIM_LOCK_GUID \ -+ { 0x605dab50, 0xe046, 0x4300, {0xab, 0xb6, 0x3d, 0xd8, 0x10, 0xdd, 0x8b, 0x23} } -+ -+struct grub_efi_shim_lock -+{ -+ grub_efi_status_t (*verify) (void *buffer, grub_uint32_t size); -+}; -+typedef struct grub_efi_shim_lock grub_efi_shim_lock_t; -+ -+static grub_efi_boolean_t -+grub_linuxefi_secure_validate (void *data, grub_uint32_t size) -+{ -+ grub_efi_guid_t guid = SHIM_LOCK_GUID; -+ grub_efi_shim_lock_t *shim_lock; -+ -+ shim_lock = grub_efi_locate_protocol(&guid, NULL); -+ -+ if (!shim_lock) -+ return 1; -+ -+ if (shim_lock->verify(data, size) == GRUB_EFI_SUCCESS) -+ return 1; -+ -+ return 0; -+} -+ -+typedef void(*handover_func)(void *, grub_efi_system_table_t *, struct linux_kernel_params *); -+ -+static grub_err_t -+grub_linuxefi_boot (void) -+{ -+ handover_func hf; -+ int offset = 0; -+ -+#ifdef __x86_64__ -+ offset = 512; -+#endif -+ -+ hf = (handover_func)((char *)kernel_mem + handover_offset + offset); -+ -+ asm volatile ("cli"); -+ -+ hf (grub_efi_image_handle, grub_efi_system_table, params); -+ -+ /* Not reached */ -+ return GRUB_ERR_NONE; -+} -+ -+static grub_err_t -+grub_linuxefi_unload (void) -+{ -+ grub_dl_unref (my_mod); -+ loaded = 0; -+ if (initrd_mem) -+ grub_efi_free_pages((grub_efi_physical_address_t)initrd_mem, BYTES_TO_PAGES(params->ramdisk_size)); -+ if (linux_cmdline) -+ grub_efi_free_pages((grub_efi_physical_address_t)linux_cmdline, BYTES_TO_PAGES(params->cmdline_size + 1)); -+ if (kernel_mem) -+ grub_efi_free_pages((grub_efi_physical_address_t)kernel_mem, BYTES_TO_PAGES(kernel_size)); -+ if (params) -+ grub_efi_free_pages((grub_efi_physical_address_t)params, BYTES_TO_PAGES(16384)); -+ return GRUB_ERR_NONE; -+} -+ -+static grub_err_t -+grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), -+ int argc, char *argv[]) -+{ -+ grub_file_t *files = 0; -+ int i, nfiles = 0; -+ grub_size_t size = 0; -+ grub_uint8_t *ptr; -+ -+ if (argc == 0) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, N_("filename expected")); -+ goto fail; -+ } -+ -+ if (!loaded) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, N_("you need to load the kernel first")); -+ goto fail; -+ } -+ -+ files = grub_zalloc (argc * sizeof (files[0])); -+ if (!files) -+ goto fail; -+ -+ for (i = 0; i < argc; i++) -+ { -+ grub_file_filter_disable_compression (); -+ files[i] = grub_file_open (argv[i]); -+ if (! files[i]) -+ goto fail; -+ nfiles++; -+ size += ALIGN_UP (grub_file_size (files[i]), 4); -+ } -+ -+ initrd_mem = grub_efi_allocate_pages_max (0x3fffffff, BYTES_TO_PAGES(size)); -+ -+ if (!initrd_mem) -+ { -+ grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("can't allocate initrd")); -+ goto fail; -+ } -+ -+ params->ramdisk_size = size; -+ params->ramdisk_image = (grub_uint32_t)(grub_uint64_t) initrd_mem; -+ -+ ptr = initrd_mem; -+ -+ for (i = 0; i < nfiles; i++) -+ { -+ grub_ssize_t cursize = grub_file_size (files[i]); -+ if (grub_file_read (files[i], ptr, cursize) != cursize) -+ { -+ if (!grub_errno) -+ grub_error (GRUB_ERR_FILE_READ_ERROR, N_("premature end of file %s"), -+ argv[i]); -+ goto fail; -+ } -+ ptr += cursize; -+ grub_memset (ptr, 0, ALIGN_UP_OVERHEAD (cursize, 4)); -+ ptr += ALIGN_UP_OVERHEAD (cursize, 4); -+ } -+ -+ params->ramdisk_size = size; -+ -+ fail: -+ for (i = 0; i < nfiles; i++) -+ grub_file_close (files[i]); -+ grub_free (files); -+ -+ if (initrd_mem && grub_errno) -+ grub_efi_free_pages((grub_efi_physical_address_t)initrd_mem, BYTES_TO_PAGES(size)); -+ -+ return grub_errno; -+} -+ -+static grub_err_t -+grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), -+ int argc, char *argv[]) -+{ -+ grub_file_t file = 0; -+ struct linux_kernel_header lh; -+ grub_ssize_t len, start, filelen; -+ void *kernel; -+ -+ grub_dl_ref (my_mod); -+ -+ if (argc == 0) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, N_("filename expected")); -+ goto fail; -+ } -+ -+ file = grub_file_open (argv[0]); -+ if (! file) -+ goto fail; -+ -+ filelen = grub_file_size (file); -+ -+ kernel = grub_malloc(filelen); -+ -+ if (!kernel) -+ { -+ grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("cannot allocate kernel buffer")); -+ goto fail; -+ } -+ -+ if (grub_file_read (file, kernel, filelen) != filelen) -+ { -+ grub_error (GRUB_ERR_FILE_READ_ERROR, N_("Can't read kernel %s"), argv[0]); -+ goto fail; -+ } -+ -+ if (! grub_linuxefi_secure_validate (kernel, filelen)) -+ { -+ grub_error (GRUB_ERR_INVALID_COMMAND, N_("%s has invalid signature"), argv[0]); -+ grub_free (kernel); -+ goto fail; -+ } -+ -+ grub_file_seek (file, 0); -+ -+ grub_free(kernel); -+ -+ params = grub_efi_allocate_pages_max (0x3fffffff, BYTES_TO_PAGES(16384)); -+ -+ if (! params) -+ { -+ grub_error (GRUB_ERR_OUT_OF_MEMORY, "cannot allocate kernel parameters"); -+ goto fail; -+ } -+ -+ memset (params, 0, 16384); -+ -+ if (grub_file_read (file, &lh, sizeof (lh)) != sizeof (lh)) -+ { -+ if (!grub_errno) -+ grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"), -+ argv[0]); -+ goto fail; -+ } -+ -+ if (lh.boot_flag != grub_cpu_to_le16 (0xaa55)) -+ { -+ grub_error (GRUB_ERR_BAD_OS, N_("invalid magic number")); -+ goto fail; -+ } -+ -+ if (lh.setup_sects > GRUB_LINUX_MAX_SETUP_SECTS) -+ { -+ grub_error (GRUB_ERR_BAD_OS, N_("too many setup sectors")); -+ goto fail; -+ } -+ -+ if (lh.version < grub_cpu_to_le16 (0x020b)) -+ { -+ grub_error (GRUB_ERR_BAD_OS, N_("kernel too old")); -+ goto fail; -+ } -+ -+ if (!lh.handover_offset) -+ { -+ grub_error (GRUB_ERR_BAD_OS, N_("kernel doesn't support EFI handover")); -+ goto fail; -+ } -+ -+ linux_cmdline = grub_efi_allocate_pages_max(0x3fffffff, -+ BYTES_TO_PAGES(lh.cmdline_size + 1)); -+ -+ if (!linux_cmdline) -+ { -+ grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("can't allocate cmdline")); -+ goto fail; -+ } -+ -+ grub_memcpy (linux_cmdline, LINUX_IMAGE, sizeof (LINUX_IMAGE)); -+ grub_create_loader_cmdline (argc, argv, -+ linux_cmdline + sizeof (LINUX_IMAGE) - 1, -+ lh.cmdline_size - (sizeof (LINUX_IMAGE) - 1)); -+ -+ lh.cmd_line_ptr = (grub_uint32_t)(grub_uint64_t)linux_cmdline; -+ -+ handover_offset = lh.handover_offset; -+ -+ start = (lh.setup_sects + 1) * 512; -+ len = grub_file_size(file) - start; -+ -+ kernel_mem = grub_efi_allocate_pages(lh.pref_address, -+ BYTES_TO_PAGES(lh.init_size)); -+ -+ if (!kernel_mem) -+ kernel_mem = grub_efi_allocate_pages_max(0x3fffffff, -+ BYTES_TO_PAGES(lh.init_size)); -+ -+ if (!kernel_mem) -+ { -+ grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("can't allocate kernel")); -+ goto fail; -+ } -+ -+ if (grub_file_seek (file, start) == (grub_off_t) -1) -+ { -+ grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"), -+ argv[0]); -+ goto fail; -+ } -+ -+ if (grub_file_read (file, kernel_mem, len) != len && !grub_errno) -+ { -+ grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"), -+ argv[0]); -+ } -+ -+ if (grub_errno == GRUB_ERR_NONE) -+ { -+ grub_loader_set (grub_linuxefi_boot, grub_linuxefi_unload, 0); -+ loaded = 1; -+ lh.code32_start = (grub_uint32_t)(grub_uint64_t) kernel_mem; -+ } -+ -+ memcpy(params, &lh, 2 * 512); -+ -+ params->type_of_loader = 0x21; -+ -+ fail: -+ -+ if (file) -+ grub_file_close (file); -+ -+ if (grub_errno != GRUB_ERR_NONE) -+ { -+ grub_dl_unref (my_mod); -+ loaded = 0; -+ } -+ -+ if (linux_cmdline && !loaded) -+ grub_efi_free_pages((grub_efi_physical_address_t)linux_cmdline, BYTES_TO_PAGES(lh.cmdline_size + 1)); -+ -+ if (kernel_mem && !loaded) -+ grub_efi_free_pages((grub_efi_physical_address_t)kernel_mem, BYTES_TO_PAGES(kernel_size)); -+ -+ if (params && !loaded) -+ grub_efi_free_pages((grub_efi_physical_address_t)params, BYTES_TO_PAGES(16384)); -+ -+ return grub_errno; -+} -+ -+static grub_command_t cmd_linux, cmd_initrd; -+ -+GRUB_MOD_INIT(linuxefi) -+{ -+ cmd_linux = -+ grub_register_command ("linuxefi", grub_cmd_linux, -+ 0, N_("Load Linux.")); -+ cmd_initrd = -+ grub_register_command ("initrdefi", grub_cmd_initrd, -+ 0, N_("Load initrd.")); -+ my_mod = mod; -+} -+ -+GRUB_MOD_FINI(linuxefi) -+{ -+ grub_unregister_command (cmd_linux); -+ grub_unregister_command (cmd_initrd); -+} -diff --git a/include/grub/efi/efi.h b/include/grub/efi/efi.h -index 3fa082816ca..91e29ce66f1 100644 ---- a/include/grub/efi/efi.h -+++ b/include/grub/efi/efi.h -@@ -47,6 +47,9 @@ EXPORT_FUNC(grub_efi_allocate_fixed) (grub_efi_physical_address_t address, - grub_efi_uintn_t pages); - void * - EXPORT_FUNC(grub_efi_allocate_any_pages) (grub_efi_uintn_t pages); -+void * -+EXPORT_FUNC(grub_efi_allocate_pages_max) (grub_efi_physical_address_t max, -+ grub_efi_uintn_t pages); - void EXPORT_FUNC(grub_efi_free_pages) (grub_efi_physical_address_t address, - grub_efi_uintn_t pages); - int -diff --git a/include/grub/i386/linux.h b/include/grub/i386/linux.h -index da0ca3b83cd..fc36bdaf367 100644 ---- a/include/grub/i386/linux.h -+++ b/include/grub/i386/linux.h -@@ -139,6 +139,7 @@ struct linux_kernel_header - grub_uint64_t setup_data; - grub_uint64_t pref_address; - grub_uint32_t init_size; -+ grub_uint32_t handover_offset; - } GRUB_PACKED; - - /* Boot parameters for Linux based on 2.6.12. This is used by the setup diff --git a/0013-DHCP-client-ID-and-UUID-options-added.patch b/0019-DHCP-client-ID-and-UUID-options-added.patch similarity index 100% rename from 0013-DHCP-client-ID-and-UUID-options-added.patch rename to 0019-DHCP-client-ID-and-UUID-options-added.patch diff --git a/0020-Use-linuxefi-and-initrdefi-where-appropriate.patch b/0020-Use-linuxefi-and-initrdefi-where-appropriate.patch deleted file mode 100644 index e4a64f32..00000000 --- a/0020-Use-linuxefi-and-initrdefi-where-appropriate.patch +++ /dev/null @@ -1,47 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Mon, 16 Jul 2012 18:57:11 -0400 -Subject: [PATCH] Use "linuxefi" and "initrdefi" where appropriate. - ---- - util/grub.d/10_linux.in | 18 ++++++++++++++++-- - 1 file changed, 16 insertions(+), 2 deletions(-) - -diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index cf6331f2a51..8ccf012f747 100644 ---- a/util/grub.d/10_linux.in -+++ b/util/grub.d/10_linux.in -@@ -129,17 +129,31 @@ linux_entry () - printf '%s\n' "${prepare_boot_cache}" | sed "s/^/$submenu_indentation/" - fi - message="$(gettext_printf "Loading Linux %s ..." ${version})" -- sed "s/^/$submenu_indentation/" << EOF -+ if [ -d /sys/firmware/efi ]; then -+ sed "s/^/$submenu_indentation/" << EOF -+ echo '$(echo "$message" | grub_quote)' -+ linuxefi ${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro ${args} -+EOF -+ else -+ sed "s/^/$submenu_indentation/" << EOF - echo '$(echo "$message" | grub_quote)' - linux ${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro ${args} - EOF -+ fi - if test -n "${initrd}" ; then - # TRANSLATORS: ramdisk isn't identifier. Should be translated. - message="$(gettext_printf "Loading initial ramdisk ...")" -- sed "s/^/$submenu_indentation/" << EOF -+ if [ -d /sys/firmware/efi ]; then -+ sed "s/^/$submenu_indentation/" << EOF - echo '$(echo "$message" | grub_quote)' -+ initrdefi ${rel_dirname}/${initrd} -+EOF -+ else -+ sed "s/^/$submenu_indentation/" << EOF -+ echo '$message' - initrd ${rel_dirname}/${initrd} - EOF -+ fi - fi - sed "s/^/$submenu_indentation/" << EOF - } diff --git a/0014-trim-arp-packets-with-abnormal-size.patch b/0020-trim-arp-packets-with-abnormal-size.patch similarity index 100% rename from 0014-trim-arp-packets-with-abnormal-size.patch rename to 0020-trim-arp-packets-with-abnormal-size.patch diff --git a/0021-Don-t-allow-insmod-when-secure-boot-is-enabled.patch b/0021-Don-t-allow-insmod-when-secure-boot-is-enabled.patch deleted file mode 100644 index 9bc0aff1..00000000 --- a/0021-Don-t-allow-insmod-when-secure-boot-is-enabled.patch +++ /dev/null @@ -1,121 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Colin Watson -Date: Tue, 23 Oct 2012 10:40:49 -0400 -Subject: [PATCH] Don't allow insmod when secure boot is enabled. - -Hi, - -Fedora's patch to forbid insmod in UEFI Secure Boot environments is fine -as far as it goes. However, the insmod command is not the only way that -modules can be loaded. In particular, the 'normal' command, which -implements the usual GRUB menu and the fully-featured command prompt, -will implicitly load commands not currently loaded into memory. This -permits trivial Secure Boot violations by writing commands implementing -whatever you want to do and pointing $prefix at the malicious code. - -I'm currently test-building this patch (replacing your current -grub-2.00-no-insmod-on-sb.patch), but this should be more correct. It -moves the check into grub_dl_load_file. ---- - grub-core/kern/dl.c | 22 ++++++++++++++++++++++ - grub-core/kern/efi/efi.c | 28 ++++++++++++++++++++++++++++ - include/grub/efi/efi.h | 1 + - 3 files changed, 51 insertions(+) - -diff --git a/grub-core/kern/dl.c b/grub-core/kern/dl.c -index e394cd96f8c..621070918d4 100644 ---- a/grub-core/kern/dl.c -+++ b/grub-core/kern/dl.c -@@ -32,12 +32,21 @@ - #include - #include - #include -+#include - - /* Platforms where modules are in a readonly area of memory. */ - #if defined(GRUB_MACHINE_QEMU) - #define GRUB_MODULES_MACHINE_READONLY - #endif - -+#ifdef GRUB_MACHINE_EMU -+#include -+#endif -+ -+#ifdef GRUB_MACHINE_EFI -+#include -+#endif -+ - - - #pragma GCC diagnostic ignored "-Wcast-align" -@@ -686,6 +695,19 @@ grub_dl_load_file (const char *filename) - void *core = 0; - grub_dl_t mod = 0; - -+#ifdef GRUB_MACHINE_EFI -+ if (grub_efi_secure_boot ()) -+ { -+#if 0 -+ /* This is an error, but grub2-mkconfig still generates a pile of -+ * insmod commands, so emitting it would be mostly just obnoxious. */ -+ grub_error (GRUB_ERR_ACCESS_DENIED, -+ "Secure Boot forbids loading module from %s", filename); -+#endif -+ return 0; -+ } -+#endif -+ - grub_boot_time ("Loading module %s", filename); - - file = grub_file_open (filename); -diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c -index 684ca93f8f4..2588b481e76 100644 ---- a/grub-core/kern/efi/efi.c -+++ b/grub-core/kern/efi/efi.c -@@ -269,6 +269,34 @@ grub_efi_get_variable (const char *var, const grub_efi_guid_t *guid, - return NULL; - } - -+grub_efi_boolean_t -+grub_efi_secure_boot (void) -+{ -+ grub_efi_guid_t efi_var_guid = GRUB_EFI_GLOBAL_VARIABLE_GUID; -+ grub_size_t datasize; -+ char *secure_boot = NULL; -+ char *setup_mode = NULL; -+ grub_efi_boolean_t ret = 0; -+ -+ secure_boot = grub_efi_get_variable("SecureBoot", &efi_var_guid, &datasize); -+ -+ if (datasize != 1 || !secure_boot) -+ goto out; -+ -+ setup_mode = grub_efi_get_variable("SetupMode", &efi_var_guid, &datasize); -+ -+ if (datasize != 1 || !setup_mode) -+ goto out; -+ -+ if (*secure_boot && !*setup_mode) -+ ret = 1; -+ -+ out: -+ grub_free (secure_boot); -+ grub_free (setup_mode); -+ return ret; -+} -+ - #pragma GCC diagnostic ignored "-Wcast-align" - - /* Search the mods section from the PE32/PE32+ image. This code uses -diff --git a/include/grub/efi/efi.h b/include/grub/efi/efi.h -index 91e29ce66f1..bb3ab7dfdeb 100644 ---- a/include/grub/efi/efi.h -+++ b/include/grub/efi/efi.h -@@ -83,6 +83,7 @@ EXPORT_FUNC (grub_efi_set_variable) (const char *var, - const grub_efi_guid_t *guid, - void *data, - grub_size_t datasize); -+grub_efi_boolean_t EXPORT_FUNC (grub_efi_secure_boot) (void); - int - EXPORT_FUNC (grub_efi_compare_device_paths) (const grub_efi_device_path_t *dp1, - const grub_efi_device_path_t *dp2); diff --git a/0015-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch b/0021-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch similarity index 89% rename from 0015-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch rename to 0021-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch index a079c40f..e219fa54 100644 --- a/0015-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch +++ b/0021-Fix-bad-test-on-GRUB_DISABLE_SUBMENU.patch @@ -20,11 +20,11 @@ Resolves: rhbz#1063414 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index de9044c7f28..cf6331f2a51 100644 +index 61ebd7dc714..87a7da34982 100644 --- a/util/grub.d/10_linux.in +++ b/util/grub.d/10_linux.in -@@ -224,7 +224,11 @@ while [ "x$list" != "x" ] ; do - linux_root_device_thisversion=${GRUB_DEVICE} +@@ -261,7 +261,11 @@ while [ "x$list" != "x" ] ; do + fi fi - if [ "x$is_top_level" = xtrue ] && [ "x${GRUB_DISABLE_SUBMENU}" != xy ]; then diff --git a/0016-Add-support-for-UEFI-operating-systems-returned-by-o.patch b/0022-Add-support-for-UEFI-operating-systems-returned-by-o.patch similarity index 100% rename from 0016-Add-support-for-UEFI-operating-systems-returned-by-o.patch rename to 0022-Add-support-for-UEFI-operating-systems-returned-by-o.patch diff --git a/0017-Migrate-PPC-from-Yaboot-to-Grub2.patch b/0023-Migrate-PPC-from-Yaboot-to-Grub2.patch similarity index 98% rename from 0017-Migrate-PPC-from-Yaboot-to-Grub2.patch rename to 0023-Migrate-PPC-from-Yaboot-to-Grub2.patch index 6a026a08..7008926d 100644 --- a/0017-Migrate-PPC-from-Yaboot-to-Grub2.patch +++ b/0023-Migrate-PPC-from-Yaboot-to-Grub2.patch @@ -12,10 +12,10 @@ maximum screen size so that text is not overwritten. create mode 100644 util/grub.d/20_ppc_terminfo.in diff --git a/Makefile.util.def b/Makefile.util.def -index f9caccb9780..6d452da029f 100644 +index 3180ac880a9..c7b775bce73 100644 --- a/Makefile.util.def +++ b/Makefile.util.def -@@ -486,6 +486,13 @@ script = { +@@ -487,6 +487,13 @@ script = { condition = COND_HOST_LINUX; }; diff --git a/0018-Add-fw_path-variable-revised.patch b/0024-Add-fw_path-variable-revised.patch similarity index 100% rename from 0018-Add-fw_path-variable-revised.patch rename to 0024-Add-fw_path-variable-revised.patch diff --git a/0022-Pass-x-hex-hex-straight-through-unmolested.patch b/0025-Pass-x-hex-hex-straight-through-unmolested.patch similarity index 100% rename from 0022-Pass-x-hex-hex-straight-through-unmolested.patch rename to 0025-Pass-x-hex-hex-straight-through-unmolested.patch diff --git a/0023-Add-X-option-to-printf-functions.patch b/0026-Add-X-option-to-printf-functions.patch similarity index 100% rename from 0023-Add-X-option-to-printf-functions.patch rename to 0026-Add-X-option-to-printf-functions.patch diff --git a/0024-Search-for-specific-config-file-for-netboot.patch b/0027-Search-for-specific-config-file-for-netboot.patch similarity index 100% rename from 0024-Search-for-specific-config-file-for-netboot.patch rename to 0027-Search-for-specific-config-file-for-netboot.patch diff --git a/0025-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch b/0028-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch similarity index 99% rename from 0025-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch rename to 0028-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch index 2af22955..fd63493c 100644 --- a/0025-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch +++ b/0028-blscfg-add-blscfg-module-to-parse-Boot-Loader-Specif.patch @@ -21,7 +21,7 @@ Signed-off-by: Peter Jones create mode 100644 grub-core/commands/blscfg.c diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index c653c71c594..7f3d5a2bfe6 100644 +index f8065388213..cd0902b46b8 100644 --- a/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def @@ -768,6 +768,14 @@ module = { diff --git a/0029-Add-devicetree-loading.patch b/0029-Add-devicetree-loading.patch new file mode 100644 index 00000000..4cb1a2a7 --- /dev/null +++ b/0029-Add-devicetree-loading.patch @@ -0,0 +1,68 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Tue, 14 Jan 2014 13:12:23 -0500 +Subject: [PATCH] Add devicetree loading + +Signed-off-by: Peter Jones + +Switch to use APM Mustang device tree, for hardware testing. + +Signed-off-by: David A. Marlin + +Use the default device tree from the grub default file + +instead of hardcoding a value. + +Signed-off-by: David A. Marlin +--- + util/grub-mkconfig.in | 3 ++- + util/grub.d/10_linux.in | 15 +++++++++++++++ + 2 files changed, 17 insertions(+), 1 deletion(-) + +diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in +index b0a8626dd1c..f68d4925ee6 100644 +--- a/util/grub-mkconfig.in ++++ b/util/grub-mkconfig.in +@@ -254,7 +254,8 @@ export GRUB_DEFAULT \ + GRUB_ENABLE_CRYPTODISK \ + GRUB_BADRAM \ + GRUB_OS_PROBER_SKIP_LIST \ +- GRUB_DISABLE_SUBMENU ++ GRUB_DISABLE_SUBMENU \ ++ GRUB_DEFAULT_DTB + + if test "x${grub_cfg}" != "x"; then + rm -f "${grub_cfg}.new" +diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in +index 87a7da34982..233754ff296 100644 +--- a/util/grub.d/10_linux.in ++++ b/util/grub.d/10_linux.in +@@ -153,6 +153,13 @@ EOF + sed "s/^/$submenu_indentation/" << EOF + echo '$(echo "$message" | grub_quote)' + initrd $(echo $initrd_path) ++EOF ++ fi ++ if test -n "${fdt}" ; then ++ message="$(gettext_printf "Loading fdt ...")" ++ sed "s/^/$submenu_indentation/" << EOF ++ echo '$(echo "$message" | grub_quote)' ++ devicetree ${rel_dirname}/${fdt} + EOF + fi + sed "s/^/$submenu_indentation/" << EOF +@@ -236,6 +243,14 @@ while [ "x$list" != "x" ] ; do + gettext_printf "Found initrd image: %s\n" "$(echo $initrd_display)" >&2 + fi + ++ fdt= ++ for i in "dtb-${version}" "dtb-${alt_version}"; do ++ if test -f "${dirname}/${i}/${GRUB_DEFAULT_DTB}" ; then ++ fdt="${i}/${GRUB_DEFAULT_DTB}" ++ break ++ fi ++ done ++ + config= + for i in "${dirname}/config-${version}" "${dirname}/config-${alt_version}" "/etc/kernels/kernel-config-${version}" ; do + if test -e "${i}" ; then diff --git a/0026-Don-t-write-messages-to-the-screen.patch b/0030-Don-t-write-messages-to-the-screen.patch similarity index 91% rename from 0026-Don-t-write-messages-to-the-screen.patch rename to 0030-Don-t-write-messages-to-the-screen.patch index 4d8de502..e96a2340 100644 --- a/0026-Don-t-write-messages-to-the-screen.patch +++ b/0030-Don-t-write-messages-to-the-screen.patch @@ -127,7 +127,7 @@ index 2bd0b2d2866..ea167fe1206 100644 movw $disk_address_packet, %si diff --git a/grub-core/boot/i386/pc/diskboot.S b/grub-core/boot/i386/pc/diskboot.S -index 1ee4cf5b2e0..c8b87ed293c 100644 +index c1addc0df29..68d31de0c4c 100644 --- a/grub-core/boot/i386/pc/diskboot.S +++ b/grub-core/boot/i386/pc/diskboot.S @@ -50,11 +50,6 @@ _start: @@ -143,36 +143,34 @@ index 1ee4cf5b2e0..c8b87ed293c 100644 movw $LOCAL(firstlist), %di diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index 8ccf012f747..a3d9711d607 100644 +index 233754ff296..3a5aa0f8dc9 100644 --- a/util/grub.d/10_linux.in +++ b/util/grub.d/10_linux.in -@@ -128,29 +128,22 @@ linux_entry () +@@ -138,27 +138,20 @@ linux_entry () fi printf '%s\n' "${prepare_boot_cache}" | sed "s/^/$submenu_indentation/" fi - message="$(gettext_printf "Loading Linux %s ..." ${version})" - if [ -d /sys/firmware/efi ]; then - sed "s/^/$submenu_indentation/" << EOF -- echo '$(echo "$message" | grub_quote)' - linuxefi ${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro ${args} - EOF - else - sed "s/^/$submenu_indentation/" << EOF + sed "s/^/$submenu_indentation/" << EOF - echo '$(echo "$message" | grub_quote)' linux ${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro ${args} EOF - fi if test -n "${initrd}" ; then - # TRANSLATORS: ramdisk isn't identifier. Should be translated. - message="$(gettext_printf "Loading initial ramdisk ...")" - if [ -d /sys/firmware/efi ]; then - sed "s/^/$submenu_indentation/" << EOF + initrd_path= + for i in ${initrd}; do + initrd_path="${initrd_path} ${rel_dirname}/${i}" + done + sed "s/^/$submenu_indentation/" << EOF - echo '$(echo "$message" | grub_quote)' - initrdefi ${rel_dirname}/${initrd} + initrd $(echo $initrd_path) EOF - else - sed "s/^/$submenu_indentation/" << EOF -- echo '$message' - initrd ${rel_dirname}/${initrd} + fi + if test -n "${fdt}" ; then +- message="$(gettext_printf "Loading fdt ...")" + sed "s/^/$submenu_indentation/" << EOF +- echo '$(echo "$message" | grub_quote)' + devicetree ${rel_dirname}/${fdt} EOF - fi + fi diff --git a/0027-Don-t-print-GNU-GRUB-header.patch b/0031-Don-t-print-GNU-GRUB-header.patch similarity index 100% rename from 0027-Don-t-print-GNU-GRUB-header.patch rename to 0031-Don-t-print-GNU-GRUB-header.patch diff --git a/0028-Don-t-add-to-highlighted-row.patch b/0032-Don-t-add-to-highlighted-row.patch similarity index 100% rename from 0028-Don-t-add-to-highlighted-row.patch rename to 0032-Don-t-add-to-highlighted-row.patch diff --git a/0029-Message-string-cleanups.patch b/0033-Message-string-cleanups.patch similarity index 100% rename from 0029-Message-string-cleanups.patch rename to 0033-Message-string-cleanups.patch diff --git a/0030-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch b/0034-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch similarity index 100% rename from 0030-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch rename to 0034-Fix-border-spacing-now-that-we-aren-t-displaying-it.patch diff --git a/0035-Use-linux16-when-appropriate-880840.patch b/0035-Use-linux16-when-appropriate-880840.patch deleted file mode 100644 index 28ae3515..00000000 --- a/0035-Use-linux16-when-appropriate-880840.patch +++ /dev/null @@ -1,49 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Mon, 28 Oct 2013 10:05:07 -0400 -Subject: [PATCH] Use linux16 when appropriate (#880840) - -The kernel group really would prefer that we use the 16 bit entry point -on x86 bios machines. - -Resolves: rhbz#880840 - -Signed-off-by: Peter Jones ---- - util/grub.d/10_linux.in | 9 +++++++-- - 1 file changed, 7 insertions(+), 2 deletions(-) - -diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index a3d9711d607..f3bf6acd856 100644 ---- a/util/grub.d/10_linux.in -+++ b/util/grub.d/10_linux.in -@@ -76,6 +76,11 @@ linux_entry () - type="$3" - args="$4" - -+ sixteenbit="" -+ case "$machine" in -+ i?86|x86_64) sixteenbit="16" ;; -+ esac -+ - if [ -z "$boot_device_id" ]; then - boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")" - fi -@@ -134,7 +139,7 @@ linux_entry () - EOF - else - sed "s/^/$submenu_indentation/" << EOF -- linux ${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro ${args} -+ linux${sixteenbit} ${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro ${args} - EOF - fi - if test -n "${initrd}" ; then -@@ -144,7 +149,7 @@ EOF - EOF - else - sed "s/^/$submenu_indentation/" << EOF -- initrd ${rel_dirname}/${initrd} -+ initrd${sixteenbit} ${rel_dirname}/${initrd} - EOF - fi - fi diff --git a/0031-Use-the-correct-indentation-for-the-term-help-text.patch b/0035-Use-the-correct-indentation-for-the-term-help-text.patch similarity index 100% rename from 0031-Use-the-correct-indentation-for-the-term-help-text.patch rename to 0035-Use-the-correct-indentation-for-the-term-help-text.patch diff --git a/0032-Indent-menu-entries.patch b/0036-Indent-menu-entries.patch similarity index 100% rename from 0032-Indent-menu-entries.patch rename to 0036-Indent-menu-entries.patch diff --git a/0033-Fix-margins.patch b/0037-Fix-margins.patch similarity index 100% rename from 0033-Fix-margins.patch rename to 0037-Fix-margins.patch diff --git a/0034-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch b/0038-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch similarity index 100% rename from 0034-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch rename to 0038-Use-2-instead-of-1-for-our-right-hand-margin-so-line.patch diff --git a/0036-Enable-pager-by-default.-985860.patch b/0039-Enable-pager-by-default.-985860.patch similarity index 100% rename from 0036-Enable-pager-by-default.-985860.patch rename to 0039-Enable-pager-by-default.-985860.patch diff --git a/0037-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch b/0040-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch similarity index 100% rename from 0037-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch rename to 0040-F10-doesn-t-work-on-serial-so-don-t-tell-the-user-to.patch diff --git a/0038-Don-t-say-GNU-Linux-in-generated-menus.patch b/0041-Don-t-say-GNU-Linux-in-generated-menus.patch similarity index 95% rename from 0038-Don-t-say-GNU-Linux-in-generated-menus.patch rename to 0041-Don-t-say-GNU-Linux-in-generated-menus.patch index 99860c51..85b0cde7 100644 --- a/0038-Don-t-say-GNU-Linux-in-generated-menus.patch +++ b/0041-Don-t-say-GNU-Linux-in-generated-menus.patch @@ -9,7 +9,7 @@ Subject: [PATCH] Don't say "GNU/Linux" in generated menus. 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index f3bf6acd856..ef52cf3dbbb 100644 +index 3a5aa0f8dc9..6299836b5cd 100644 --- a/util/grub.d/10_linux.in +++ b/util/grub.d/10_linux.in @@ -29,9 +29,9 @@ export TEXTDOMAINDIR="@localedir@" @@ -25,7 +25,7 @@ index f3bf6acd856..ef52cf3dbbb 100644 fi diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in -index c002fc9f946..54f1ec8a2fd 100644 +index e8143b079dc..972a4b5a03d 100644 --- a/util/grub.d/20_linux_xen.in +++ b/util/grub.d/20_linux_xen.in @@ -29,9 +29,9 @@ export TEXTDOMAINDIR="@localedir@" diff --git a/0039-Don-t-draw-a-border-around-the-menu.patch b/0042-Don-t-draw-a-border-around-the-menu.patch similarity index 100% rename from 0039-Don-t-draw-a-border-around-the-menu.patch rename to 0042-Don-t-draw-a-border-around-the-menu.patch diff --git a/0042-Make-10_linux-work-with-our-changes-for-linux16-and-.patch b/0042-Make-10_linux-work-with-our-changes-for-linux16-and-.patch deleted file mode 100644 index 5efb3a4e..00000000 --- a/0042-Make-10_linux-work-with-our-changes-for-linux16-and-.patch +++ /dev/null @@ -1,82 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Tue, 14 Jan 2014 13:12:23 -0500 -Subject: [PATCH] Make 10_linux work with our changes for linux16 and linuxefi - on aarch64 - -Signed-off-by: Peter Jones ---- - util/grub.d/10_linux.in | 31 ++++++++++++++++++++++++++++--- - 1 file changed, 28 insertions(+), 3 deletions(-) - -diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index ef52cf3dbbb..191aebe80bb 100644 ---- a/util/grub.d/10_linux.in -+++ b/util/grub.d/10_linux.in -@@ -77,8 +77,18 @@ linux_entry () - args="$4" - - sixteenbit="" -+ linuxefi="linux" -+ initrdefi="initrd" - case "$machine" in -- i?86|x86_64) sixteenbit="16" ;; -+ i?86|x86_64) -+ sixteenbit="16" -+ linuxefi="linuxefi" -+ initrdefi="initrdefi" -+ ;; -+ aarch64) -+ linuxefi="linux" -+ initrdefi="initrd" -+ ;; - esac - - if [ -z "$boot_device_id" ]; then -@@ -135,7 +145,7 @@ linux_entry () - fi - if [ -d /sys/firmware/efi ]; then - sed "s/^/$submenu_indentation/" << EOF -- linuxefi ${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro ${args} -+ ${linuxefi} ${rel_dirname}/${basename} root=${linux_root_device_thisversion} ro ${args} - EOF - else - sed "s/^/$submenu_indentation/" << EOF -@@ -145,7 +155,7 @@ EOF - if test -n "${initrd}" ; then - if [ -d /sys/firmware/efi ]; then - sed "s/^/$submenu_indentation/" << EOF -- initrdefi ${rel_dirname}/${initrd} -+ ${initrdefi} ${rel_dirname}/${initrd} - EOF - else - sed "s/^/$submenu_indentation/" << EOF -@@ -153,6 +163,13 @@ EOF - EOF - fi - fi -+ if test -n "${fdt}" ; then -+ message="$(gettext_printf "Loading fdt ...")" -+ sed "s/^/$submenu_indentation/" << EOF -+ echo '$(echo "$message" | grub_quote)' -+ devicetree ${rel_dirname}/${fdt} -+EOF -+ fi - sed "s/^/$submenu_indentation/" << EOF - } - EOF -@@ -215,6 +232,14 @@ while [ "x$list" != "x" ] ; do - fi - done - -+ fdt= -+ for i in "dtb-${version}" "dtb-${alt_version}"; do -+ if test -e "${dirname}/${i}/foundation-v8.dtb" ; then -+ fdt="${i}/foundation-v8.dtb" -+ break -+ fi -+ done -+ - config= - for i in "${dirname}/config-${version}" "${dirname}/config-${alt_version}" "/etc/kernels/kernel-config-${version}" ; do - if test -e "${i}" ; then diff --git a/0043-Don-t-print-during-fdt-loading-method.patch b/0043-Don-t-print-during-fdt-loading-method.patch deleted file mode 100644 index 171eca8a..00000000 --- a/0043-Don-t-print-during-fdt-loading-method.patch +++ /dev/null @@ -1,24 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Tue, 14 Jan 2014 16:15:46 -0500 -Subject: [PATCH] Don't print during fdt loading method. - -Signed-off-by: Peter Jones ---- - util/grub.d/10_linux.in | 2 -- - 1 file changed, 2 deletions(-) - -diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index 191aebe80bb..452a9f69d28 100644 ---- a/util/grub.d/10_linux.in -+++ b/util/grub.d/10_linux.in -@@ -164,9 +164,7 @@ EOF - fi - fi - if test -n "${fdt}" ; then -- message="$(gettext_printf "Loading fdt ...")" - sed "s/^/$submenu_indentation/" << EOF -- echo '$(echo "$message" | grub_quote)' - devicetree ${rel_dirname}/${fdt} - EOF - fi diff --git a/0040-Use-the-standard-margin-for-the-timeout-string.patch b/0043-Use-the-standard-margin-for-the-timeout-string.patch similarity index 100% rename from 0040-Use-the-standard-margin-for-the-timeout-string.patch rename to 0043-Use-the-standard-margin-for-the-timeout-string.patch diff --git a/0041-Add-.eh_frame-to-list-of-relocations-stripped.patch b/0044-Add-.eh_frame-to-list-of-relocations-stripped.patch similarity index 100% rename from 0041-Add-.eh_frame-to-list-of-relocations-stripped.patch rename to 0044-Add-.eh_frame-to-list-of-relocations-stripped.patch diff --git a/0044-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch b/0045-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch similarity index 100% rename from 0044-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch rename to 0045-Don-t-munge-raw-spaces-when-we-re-doing-our-cmdline-.patch diff --git a/0045-Don-t-require-a-password-to-boot-entries-generated-b.patch b/0046-Don-t-require-a-password-to-boot-entries-generated-b.patch similarity index 96% rename from 0045-Don-t-require-a-password-to-boot-entries-generated-b.patch rename to 0046-Don-t-require-a-password-to-boot-entries-generated-b.patch index 825885e5..b0b2b0ef 100644 --- a/0045-Don-t-require-a-password-to-boot-entries-generated-b.patch +++ b/0046-Don-t-require-a-password-to-boot-entries-generated-b.patch @@ -14,7 +14,7 @@ Signed-off-by: Peter Jones 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index 452a9f69d28..79a747ebd4d 100644 +index 6299836b5cd..b744438e04a 100644 --- a/util/grub.d/10_linux.in +++ b/util/grub.d/10_linux.in @@ -26,7 +26,7 @@ datarootdir="@datarootdir@" diff --git a/0046-Don-t-emit-Booting-.-message.patch b/0047-Don-t-emit-Booting-.-message.patch similarity index 100% rename from 0046-Don-t-emit-Booting-.-message.patch rename to 0047-Don-t-emit-Booting-.-message.patch diff --git a/0047-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch b/0048-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch similarity index 99% rename from 0047-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch rename to 0048-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch index 7b8d992e..d6169aa7 100644 --- a/0047-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch +++ b/0048-Replace-a-lot-of-man-pages-with-slightly-nicer-ones.patch @@ -122,7 +122,7 @@ Replace a bunch of machine generated ones with ones that look nicer. create mode 100644 util/grub-sparc64-setup.8 diff --git a/configure.ac b/configure.ac -index 9ae97f026ab..0cb971a92c5 100644 +index 783118ccdcd..d5db2803ec4 100644 --- a/configure.ac +++ b/configure.ac @@ -70,6 +70,29 @@ grub_TRANSFORM([grub-set-default]) diff --git a/0048-use-fw_path-prefix-when-fallback-searching-for-grub-.patch b/0049-use-fw_path-prefix-when-fallback-searching-for-grub-.patch similarity index 100% rename from 0048-use-fw_path-prefix-when-fallback-searching-for-grub-.patch rename to 0049-use-fw_path-prefix-when-fallback-searching-for-grub-.patch diff --git a/0049-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch b/0050-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch similarity index 100% rename from 0049-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch rename to 0050-Try-mac-guid-etc-before-grub.cfg-on-tftp-config-file.patch diff --git a/0050-Fix-convert-function-to-support-NVMe-devices.patch b/0051-Fix-convert-function-to-support-NVMe-devices.patch similarity index 100% rename from 0050-Fix-convert-function-to-support-NVMe-devices.patch rename to 0051-Fix-convert-function-to-support-NVMe-devices.patch diff --git a/0051-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch b/0051-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch deleted file mode 100644 index 4b4127dd..00000000 --- a/0051-Switch-to-use-APM-Mustang-device-tree-for-hardware-t.patch +++ /dev/null @@ -1,25 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Fedora Ninjas -Date: Mon, 10 Feb 2014 16:13:10 -0500 -Subject: [PATCH] Switch to use APM Mustang device tree, for hardware testing. - -Signed-off-by: David A. Marlin ---- - util/grub.d/10_linux.in | 4 ++-- - 1 file changed, 2 insertions(+), 2 deletions(-) - -diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index 79a747ebd4d..462b461ff49 100644 ---- a/util/grub.d/10_linux.in -+++ b/util/grub.d/10_linux.in -@@ -232,8 +232,8 @@ while [ "x$list" != "x" ] ; do - - fdt= - for i in "dtb-${version}" "dtb-${alt_version}"; do -- if test -e "${dirname}/${i}/foundation-v8.dtb" ; then -- fdt="${i}/foundation-v8.dtb" -+ if test -e "${dirname}/${i}/apm-mustang.dtb" ; then -+ fdt="${i}/apm-mustang.dtb" - break - fi - done diff --git a/0052-Use-the-default-device-tree-from-the-grub-default-fi.patch b/0052-Use-the-default-device-tree-from-the-grub-default-fi.patch deleted file mode 100644 index 4b2d6b75..00000000 --- a/0052-Use-the-default-device-tree-from-the-grub-default-fi.patch +++ /dev/null @@ -1,42 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Fedora Ninjas -Date: Wed, 12 Feb 2014 14:54:04 -0500 -Subject: [PATCH] Use the default device tree from the grub default file - -instead of hardcoding a value. - -Signed-off-by: David A. Marlin ---- - util/grub-mkconfig.in | 3 ++- - util/grub.d/10_linux.in | 4 ++-- - 2 files changed, 4 insertions(+), 3 deletions(-) - -diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in -index c088b705442..9d595ac058a 100644 ---- a/util/grub-mkconfig.in -+++ b/util/grub-mkconfig.in -@@ -235,7 +235,8 @@ export GRUB_DEFAULT \ - GRUB_ENABLE_CRYPTODISK \ - GRUB_BADRAM \ - GRUB_OS_PROBER_SKIP_LIST \ -- GRUB_DISABLE_SUBMENU -+ GRUB_DISABLE_SUBMENU \ -+ GRUB_DEFAULT_DTB - - if test "x${grub_cfg}" != "x"; then - rm -f "${grub_cfg}.new" -diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index 462b461ff49..a9692a0c2a2 100644 ---- a/util/grub.d/10_linux.in -+++ b/util/grub.d/10_linux.in -@@ -232,8 +232,8 @@ while [ "x$list" != "x" ] ; do - - fdt= - for i in "dtb-${version}" "dtb-${alt_version}"; do -- if test -e "${dirname}/${i}/apm-mustang.dtb" ; then -- fdt="${i}/apm-mustang.dtb" -+ if test -f "${dirname}/${i}/${GRUB_DEFAULT_DTB}" ; then -+ fdt="${i}/${GRUB_DEFAULT_DTB}" - break - fi - done diff --git a/0053-reopen-SNP-protocol-for-exclusive-use-by-grub.patch b/0052-reopen-SNP-protocol-for-exclusive-use-by-grub.patch similarity index 100% rename from 0053-reopen-SNP-protocol-for-exclusive-use-by-grub.patch rename to 0052-reopen-SNP-protocol-for-exclusive-use-by-grub.patch diff --git a/0054-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch b/0053-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch similarity index 100% rename from 0054-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch rename to 0053-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch diff --git a/0055-Add-grub_util_readlink.patch b/0054-Add-grub_util_readlink.patch similarity index 100% rename from 0055-Add-grub_util_readlink.patch rename to 0054-Add-grub_util_readlink.patch diff --git a/0056-Make-editenv-chase-symlinks-including-those-across-d.patch b/0055-Make-editenv-chase-symlinks-including-those-across-d.patch similarity index 97% rename from 0056-Make-editenv-chase-symlinks-including-those-across-d.patch rename to 0055-Make-editenv-chase-symlinks-including-those-across-d.patch index 3f7f50a9..73e316e6 100644 --- a/0056-Make-editenv-chase-symlinks-including-those-across-d.patch +++ b/0055-Make-editenv-chase-symlinks-including-those-across-d.patch @@ -16,10 +16,10 @@ Reviewed-by: Adam Jackson 2 files changed, 53 insertions(+), 2 deletions(-) diff --git a/Makefile.util.def b/Makefile.util.def -index 6d452da029f..20611045893 100644 +index c7b775bce73..d08713b5500 100644 --- a/Makefile.util.def +++ b/Makefile.util.def -@@ -230,8 +230,17 @@ program = { +@@ -231,8 +231,17 @@ program = { common = util/grub-editenv.c; common = util/editenv.c; diff --git a/0057-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch b/0056-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch similarity index 96% rename from 0057-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch rename to 0056-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch index c3b8ce33..81e0e527 100644 --- a/0057-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch +++ b/0056-Generate-OS-and-CLASS-in-10_linux-from-etc-os-releas.patch @@ -14,7 +14,7 @@ Signed-off-by: Peter Jones 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index a9692a0c2a2..c6627268cca 100644 +index b744438e04a..43d98476b88 100644 --- a/util/grub.d/10_linux.in +++ b/util/grub.d/10_linux.in @@ -29,7 +29,8 @@ export TEXTDOMAINDIR="@localedir@" diff --git a/0058-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch b/0057-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch similarity index 93% rename from 0058-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch rename to 0057-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch index d0abde6a..fc296338 100644 --- a/0058-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch +++ b/0057-Minimize-the-sort-ordering-for-.debug-and-rescue-ker.patch @@ -10,10 +10,10 @@ Signed-off-by: Peter Jones 1 file changed, 8 insertions(+) diff --git a/util/grub-mkconfig_lib.in b/util/grub-mkconfig_lib.in -index cf35e417470..10fabee5e14 100644 +index 1001a12232b..1a4a57898f9 100644 --- a/util/grub-mkconfig_lib.in +++ b/util/grub-mkconfig_lib.in -@@ -248,6 +248,14 @@ version_test_gt () +@@ -249,6 +249,14 @@ version_test_gt () *.old:*.old) ;; *.old:*) version_test_gt_a="`echo "$version_test_gt_a" | sed -e 's/\.old$//'`" ; version_test_gt_cmp=gt ;; *:*.old) version_test_gt_b="`echo "$version_test_gt_b" | sed -e 's/\.old$//'`" ; version_test_gt_cmp=ge ;; diff --git a/0060-Try-prefix-if-fw_path-doesn-t-work.patch b/0058-Try-prefix-if-fw_path-doesn-t-work.patch similarity index 98% rename from 0060-Try-prefix-if-fw_path-doesn-t-work.patch rename to 0058-Try-prefix-if-fw_path-doesn-t-work.patch index 33e31d02..1ded9089 100644 --- a/0060-Try-prefix-if-fw_path-doesn-t-work.patch +++ b/0058-Try-prefix-if-fw_path-doesn-t-work.patch @@ -13,10 +13,10 @@ Signed-off-by: Peter Jones 3 files changed, 75 insertions(+), 75 deletions(-) diff --git a/grub-core/kern/ieee1275/init.c b/grub-core/kern/ieee1275/init.c -index e69c0133e69..4dfa41a37d5 100644 +index f5423ce27d9..e01bc6eab19 100644 --- a/grub-core/kern/ieee1275/init.c +++ b/grub-core/kern/ieee1275/init.c -@@ -138,23 +138,25 @@ grub_machine_get_bootlocation (char **device, char **path) +@@ -124,23 +124,25 @@ grub_machine_get_bootlocation (char **device, char **path) grub_free (canon); } else diff --git a/0059-Load-arm-with-SB-enabled.patch b/0059-Load-arm-with-SB-enabled.patch deleted file mode 100644 index 103c369d..00000000 --- a/0059-Load-arm-with-SB-enabled.patch +++ /dev/null @@ -1,426 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Thu, 18 Sep 2014 11:26:14 -0400 -Subject: [PATCH] Load arm with SB enabled. - -Make sure we actually try to validate secure boot on this platform (even -though we're not shipping it enabled by default.) - -This means giving the kernel grub's loaded image as the vehicle for the -kernel command line, because we can't call systab->bs->LoadImage() if SB -is enabled. ---- - grub-core/Makefile.core.def | 3 + - grub-core/loader/arm64/linux.c | 121 ++++++++++++++++++++------------------ - grub-core/loader/efi/linux.c | 65 ++++++++++++++++++++ - grub-core/loader/i386/efi/linux.c | 39 +----------- - include/grub/arm64/linux.h | 7 +++ - include/grub/efi/linux.h | 31 ++++++++++ - 6 files changed, 173 insertions(+), 93 deletions(-) - create mode 100644 grub-core/loader/efi/linux.c - create mode 100644 include/grub/efi/linux.h - -diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 7f3d5a2bfe6..5ae70204cd2 100644 ---- a/grub-core/Makefile.core.def -+++ b/grub-core/Makefile.core.def -@@ -1709,6 +1709,8 @@ module = { - ia64_efi = loader/ia64/efi/linux.c; - arm = loader/arm/linux.c; - arm64 = loader/arm64/linux.c; -+ arm64 = loader/efi/linux.c; -+ fdt = lib/fdt.c; - common = loader/linux.c; - common = lib/cmdline.c; - enable = noemu; -@@ -1776,6 +1778,7 @@ module = { - name = linuxefi; - efi = loader/i386/efi/linux.c; - efi = lib/cmdline.c; -+ efi = loader/efi/linux.c; - enable = i386_efi; - enable = x86_64_efi; - }; -diff --git a/grub-core/loader/arm64/linux.c b/grub-core/loader/arm64/linux.c -index 746edd10415..33345d37534 100644 ---- a/grub-core/loader/arm64/linux.c -+++ b/grub-core/loader/arm64/linux.c -@@ -28,6 +28,7 @@ - #include - #include - #include -+#include - #include - #include - #include -@@ -39,6 +40,7 @@ static int loaded; - - static void *kernel_addr; - static grub_uint64_t kernel_size; -+static grub_uint32_t handover_offset; - - static char *linux_args; - static grub_uint32_t cmdline_size; -@@ -65,7 +67,8 @@ grub_arm64_uefi_check_image (struct grub_arm64_linux_kernel_header * lh) - static grub_err_t - finalize_params_linux (void) - { -- int node, retval; -+ grub_efi_loaded_image_t *loaded_image = NULL; -+ int node, retval, len; - - void *fdt; - -@@ -100,79 +103,73 @@ finalize_params_linux (void) - if (grub_fdt_install() != GRUB_ERR_NONE) - goto failure; - -- return GRUB_ERR_NONE; -- --failure: -- grub_fdt_unload(); -- return grub_error(GRUB_ERR_BAD_OS, "failed to install/update FDT"); --} -- --grub_err_t --grub_arm64_uefi_boot_image (grub_addr_t addr, grub_size_t size, char *args) --{ -- grub_efi_memory_mapped_device_path_t *mempath; -- grub_efi_handle_t image_handle; -- grub_efi_boot_services_t *b; -- grub_efi_status_t status; -- grub_efi_loaded_image_t *loaded_image; -- int len; -- -- mempath = grub_malloc (2 * sizeof (grub_efi_memory_mapped_device_path_t)); -- if (!mempath) -- return grub_errno; -- -- mempath[0].header.type = GRUB_EFI_HARDWARE_DEVICE_PATH_TYPE; -- mempath[0].header.subtype = GRUB_EFI_MEMORY_MAPPED_DEVICE_PATH_SUBTYPE; -- mempath[0].header.length = grub_cpu_to_le16_compile_time (sizeof (*mempath)); -- mempath[0].memory_type = GRUB_EFI_LOADER_DATA; -- mempath[0].start_address = addr; -- mempath[0].end_address = addr + size; -- -- mempath[1].header.type = GRUB_EFI_END_DEVICE_PATH_TYPE; -- mempath[1].header.subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE; -- mempath[1].header.length = sizeof (grub_efi_device_path_t); -- -- b = grub_efi_system_table->boot_services; -- status = b->load_image (0, grub_efi_image_handle, -- (grub_efi_device_path_t *) mempath, -- (void *) addr, size, &image_handle); -- if (status != GRUB_EFI_SUCCESS) -- return grub_error (GRUB_ERR_BAD_OS, "cannot load image"); -- -- grub_dprintf ("linux", "linux command line: '%s'\n", args); -+ grub_dprintf ("linux", "Installed/updated FDT configuration table @ %p\n", -+ fdt); - - /* Convert command line to UCS-2 */ -- loaded_image = grub_efi_get_loaded_image (image_handle); -+ loaded_image = grub_efi_get_loaded_image (grub_efi_image_handle); -+ if (!loaded_image) -+ goto failure; -+ - loaded_image->load_options_size = len = -- (grub_strlen (args) + 1) * sizeof (grub_efi_char16_t); -+ (grub_strlen (linux_args) + 1) * sizeof (grub_efi_char16_t); - loaded_image->load_options = - grub_efi_allocate_any_pages (GRUB_EFI_BYTES_TO_PAGES (loaded_image->load_options_size)); - if (!loaded_image->load_options) -- return grub_errno; -+ return grub_error(GRUB_ERR_BAD_OS, "failed to create kernel parameters"); - - loaded_image->load_options_size = - 2 * grub_utf8_to_utf16 (loaded_image->load_options, len, -- (grub_uint8_t *) args, len, NULL); -+ (grub_uint8_t *) linux_args, len, NULL); - -- grub_dprintf ("linux", "starting image %p\n", image_handle); -- status = b->start_image (image_handle, 0, NULL); -+ return GRUB_ERR_NONE; - -- /* When successful, not reached */ -- b->unload_image (image_handle); -- grub_efi_free_pages ((grub_addr_t) loaded_image->load_options, -- GRUB_EFI_BYTES_TO_PAGES (loaded_image->load_options_size)); -+failure: -+ grub_fdt_unload(); -+ return grub_error(GRUB_ERR_BAD_OS, "failed to install/update FDT"); -+} - -- return grub_errno; -+static void -+free_params (void) -+{ -+ grub_efi_loaded_image_t *loaded_image = NULL; -+ -+ loaded_image = grub_efi_get_loaded_image (grub_efi_image_handle); -+ if (loaded_image) -+ { -+ if (loaded_image->load_options) -+ grub_efi_free_pages ((grub_efi_physical_address_t) -+ loaded_image->load_options, -+ GRUB_EFI_BYTES_TO_PAGES (loaded_image->load_options_size)); -+ loaded_image->load_options = NULL; -+ loaded_image->load_options_size = 0; -+ } -+} -+ -+grub_err_t -+grub_arm64_uefi_boot_image (grub_addr_t addr, grub_size_t size, char *args) -+{ -+ grub_err_t retval; -+ -+ retval = finalize_params_linux (); -+ if (retval != GRUB_ERR_NONE) -+ return grub_errno; -+ -+ grub_dprintf ("linux", "linux command line: '%s'\n", args); -+ -+ retval = grub_efi_linux_boot ((char *)kernel_addr, handover_offset, -+ kernel_addr); -+ -+ /* Never reached... */ -+ free_params(); -+ return retval; - } - - static grub_err_t - grub_linux_boot (void) - { -- if (finalize_params_linux () != GRUB_ERR_NONE) -- return grub_errno; -- -- return (grub_arm64_uefi_boot_image((grub_addr_t)kernel_addr, -- kernel_size, linux_args)); -+ return grub_arm64_uefi_boot_image ((grub_addr_t)kernel_addr, -+ kernel_size, linux_args); - } - - static grub_err_t -@@ -249,6 +246,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - { - grub_file_t file = 0; - struct grub_arm64_linux_kernel_header lh; -+ struct grub_arm64_linux_pe_header *pe; - - grub_dl_ref (my_mod); - -@@ -293,6 +291,15 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - - grub_dprintf ("linux", "kernel @ %p\n", kernel_addr); - -+ if (!grub_linuxefi_secure_validate (kernel_addr, kernel_size)) -+ { -+ grub_error (GRUB_ERR_INVALID_COMMAND, N_("%s has invalid signature"), argv[0]); -+ goto fail; -+ } -+ -+ pe = (void *)((unsigned long)kernel_addr + lh.hdr_offset); -+ handover_offset = pe->opt.entry_addr; -+ - cmdline_size = grub_loader_cmdline_size (argc, argv) + sizeof (LINUX_IMAGE); - linux_args = grub_malloc (cmdline_size); - if (!linux_args) -diff --git a/grub-core/loader/efi/linux.c b/grub-core/loader/efi/linux.c -new file mode 100644 -index 00000000000..aea378adf5c ---- /dev/null -+++ b/grub-core/loader/efi/linux.c -@@ -0,0 +1,65 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2014 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#include -+#include -+#include -+#include -+#include -+#include -+#include -+ -+#define SHIM_LOCK_GUID \ -+ { 0x605dab50, 0xe046, 0x4300, {0xab, 0xb6, 0x3d, 0xd8, 0x10, 0xdd, 0x8b, 0x23} } -+ -+struct grub_efi_shim_lock -+{ -+ grub_efi_status_t (*verify) (void *buffer, grub_uint32_t size); -+}; -+typedef struct grub_efi_shim_lock grub_efi_shim_lock_t; -+ -+grub_efi_boolean_t -+grub_linuxefi_secure_validate (void *data, grub_uint32_t size) -+{ -+ grub_efi_guid_t guid = SHIM_LOCK_GUID; -+ grub_efi_shim_lock_t *shim_lock; -+ -+ shim_lock = grub_efi_locate_protocol(&guid, NULL); -+ -+ if (!shim_lock) -+ return 1; -+ -+ if (shim_lock->verify(data, size) == GRUB_EFI_SUCCESS) -+ return 1; -+ -+ return 0; -+} -+ -+typedef void (*handover_func) (void *, grub_efi_system_table_t *, void *); -+ -+grub_err_t -+grub_efi_linux_boot (void *kernel_addr, grub_off_t offset, -+ void *kernel_params) -+{ -+ handover_func hf; -+ -+ hf = (handover_func)((char *)kernel_addr + offset); -+ hf (grub_efi_image_handle, grub_efi_system_table, kernel_params); -+ -+ return GRUB_ERR_BUG; -+} -diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c -index b79e6320ba9..e5b778577f9 100644 ---- a/grub-core/loader/i386/efi/linux.c -+++ b/grub-core/loader/i386/efi/linux.c -@@ -26,6 +26,7 @@ - #include - #include - #include -+#include - - GRUB_MOD_LICENSE ("GPLv3+"); - -@@ -40,52 +41,18 @@ static char *linux_cmdline; - - #define BYTES_TO_PAGES(bytes) (((bytes) + 0xfff) >> 12) - --#define SHIM_LOCK_GUID \ -- { 0x605dab50, 0xe046, 0x4300, {0xab, 0xb6, 0x3d, 0xd8, 0x10, 0xdd, 0x8b, 0x23} } -- --struct grub_efi_shim_lock --{ -- grub_efi_status_t (*verify) (void *buffer, grub_uint32_t size); --}; --typedef struct grub_efi_shim_lock grub_efi_shim_lock_t; -- --static grub_efi_boolean_t --grub_linuxefi_secure_validate (void *data, grub_uint32_t size) --{ -- grub_efi_guid_t guid = SHIM_LOCK_GUID; -- grub_efi_shim_lock_t *shim_lock; -- -- shim_lock = grub_efi_locate_protocol(&guid, NULL); -- -- if (!shim_lock) -- return 1; -- -- if (shim_lock->verify(data, size) == GRUB_EFI_SUCCESS) -- return 1; -- -- return 0; --} -- --typedef void(*handover_func)(void *, grub_efi_system_table_t *, struct linux_kernel_params *); -- - static grub_err_t - grub_linuxefi_boot (void) - { -- handover_func hf; - int offset = 0; - - #ifdef __x86_64__ - offset = 512; - #endif -- -- hf = (handover_func)((char *)kernel_mem + handover_offset + offset); -- - asm volatile ("cli"); - -- hf (grub_efi_image_handle, grub_efi_system_table, params); -- -- /* Not reached */ -- return GRUB_ERR_NONE; -+ return grub_efi_linux_boot ((char *)kernel_mem, handover_offset + offset, -+ params); - } - - static grub_err_t -diff --git a/include/grub/arm64/linux.h b/include/grub/arm64/linux.h -index a981df5d15f..0df38413338 100644 ---- a/include/grub/arm64/linux.h -+++ b/include/grub/arm64/linux.h -@@ -20,6 +20,7 @@ - #define GRUB_LINUX_CPU_HEADER 1 - - #include -+#include - - #define GRUB_ARM64_LINUX_MAGIC 0x644d5241 /* 'ARM\x64' */ - -@@ -42,5 +43,11 @@ grub_err_t grub_arm64_uefi_check_image (struct grub_arm64_linux_kernel_header - *lh); - grub_err_t grub_arm64_uefi_boot_image (grub_addr_t addr, grub_size_t size, - char *args); -+struct grub_arm64_linux_pe_header -+{ -+ grub_uint32_t magic; -+ struct grub_pe32_coff_header coff; -+ struct grub_pe64_optional_header opt; -+}; - - #endif /* ! GRUB_LINUX_CPU_HEADER */ -diff --git a/include/grub/efi/linux.h b/include/grub/efi/linux.h -new file mode 100644 -index 00000000000..d9ede36773b ---- /dev/null -+++ b/include/grub/efi/linux.h -@@ -0,0 +1,31 @@ -+/* -+ * GRUB -- GRand Unified Bootloader -+ * Copyright (C) 2014 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+#ifndef GRUB_EFI_LINUX_HEADER -+#define GRUB_EFI_LINUX_HEADER 1 -+ -+#include -+#include -+#include -+ -+grub_efi_boolean_t -+EXPORT_FUNC(grub_linuxefi_secure_validate) (void *data, grub_uint32_t size); -+grub_err_t -+EXPORT_FUNC(grub_efi_linux_boot) (void *kernel_address, grub_off_t offset, -+ void *kernel_param); -+ -+#endif /* ! GRUB_EFI_LINUX_HEADER */ diff --git a/0061-Update-info-with-grub.cfg-netboot-selection-order-11.patch b/0059-Update-info-with-grub.cfg-netboot-selection-order-11.patch similarity index 95% rename from 0061-Update-info-with-grub.cfg-netboot-selection-order-11.patch rename to 0059-Update-info-with-grub.cfg-netboot-selection-order-11.patch index ecf03299..26de3f42 100644 --- a/0061-Update-info-with-grub.cfg-netboot-selection-order-11.patch +++ b/0059-Update-info-with-grub.cfg-netboot-selection-order-11.patch @@ -12,10 +12,10 @@ Resolves rhbz#1148650 1 file changed, 42 insertions(+) diff --git a/docs/grub.texi b/docs/grub.texi -index 6fdd2a041f7..15a90b26e4d 100644 +index 2fd32608c01..a7155c22ffe 100644 --- a/docs/grub.texi +++ b/docs/grub.texi -@@ -2414,6 +2414,48 @@ grub-mknetdir --net-directory=/srv/tftp --subdir=/boot/grub -d /usr/lib/grub/i38 +@@ -2493,6 +2493,48 @@ grub-mknetdir --net-directory=/srv/tftp --subdir=/boot/grub -d /usr/lib/grub/i38 Then follow instructions printed out by grub-mknetdir on configuring your DHCP server. diff --git a/0062-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch b/0060-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch similarity index 97% rename from 0062-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch rename to 0060-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch index a411fa2b..d686cf37 100644 --- a/0062-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch +++ b/0060-Use-Distribution-Package-Sort-for-grub2-mkconfig-112.patch @@ -21,7 +21,7 @@ Resolves rhbz#1124074 create mode 100644 util/grub-rpm-sort.8 diff --git a/configure.ac b/configure.ac -index 0cb971a92c5..49427cbf989 100644 +index d5db2803ec4..056df1cbaf9 100644 --- a/configure.ac +++ b/configure.ac @@ -65,6 +65,7 @@ grub_TRANSFORM([grub-mkrelpath]) @@ -40,7 +40,7 @@ index 0cb971a92c5..49427cbf989 100644 grub_TRANSFORM([grub-reboot.3]) grub_TRANSFORM([grub-render-label.3]) grub_TRANSFORM([grub-script-check.3]) -@@ -1789,6 +1791,33 @@ fi +@@ -1790,6 +1792,33 @@ fi AC_SUBST([LIBDEVMAPPER]) @@ -75,10 +75,10 @@ index 0cb971a92c5..49427cbf989 100644 if test x$host_kernel = xkfreebsd; then AC_CHECK_LIB([geom], [geom_gettree], [], diff --git a/Makefile.util.def b/Makefile.util.def -index 20611045893..d846b81b5f9 100644 +index d08713b5500..406d96861b6 100644 --- a/Makefile.util.def +++ b/Makefile.util.def -@@ -684,6 +684,22 @@ program = { +@@ -685,6 +685,22 @@ program = { ldadd = '$(LIBINTL) $(LIBDEVMAPPER) $(LIBUTIL) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)'; }; @@ -389,10 +389,10 @@ index 00000000000..f33bd1ed568 + return 0; +} diff --git a/.gitignore b/.gitignore -index d95fac5789c..1c85371298c 100644 +index 43f04d47277..fa2e5b609b1 100644 --- a/.gitignore +++ b/.gitignore -@@ -101,6 +101,8 @@ grub-*.tar.* +@@ -105,6 +105,8 @@ grub-*.tar.* /grub*-reboot.8 /grub*-render-label /grub*-render-label.1 @@ -402,10 +402,10 @@ index d95fac5789c..1c85371298c 100644 /grub*-script-check.1 /grub*-set-default diff --git a/util/grub-mkconfig_lib.in b/util/grub-mkconfig_lib.in -index 10fabee5e14..954844d2d95 100644 +index 1a4a57898f9..7fe3598435c 100644 --- a/util/grub-mkconfig_lib.in +++ b/util/grub-mkconfig_lib.in -@@ -213,6 +213,12 @@ version_sort () +@@ -214,6 +214,12 @@ version_sort () esac } @@ -418,7 +418,7 @@ index 10fabee5e14..954844d2d95 100644 version_test_numeric () { version_test_numeric_a="$1" -@@ -229,7 +235,7 @@ version_test_numeric () +@@ -230,7 +236,7 @@ version_test_numeric () version_test_numeric_a="$version_test_numeric_b" version_test_numeric_b="$version_test_numeric_c" fi diff --git a/0063-Handle-rssd-storage-devices.patch b/0061-Handle-rssd-storage-devices.patch similarity index 100% rename from 0063-Handle-rssd-storage-devices.patch rename to 0061-Handle-rssd-storage-devices.patch diff --git a/0065-Make-grub2-mkconfig-construct-titles-that-look-like-.patch b/0062-Make-grub2-mkconfig-construct-titles-that-look-like-.patch similarity index 62% rename from 0065-Make-grub2-mkconfig-construct-titles-that-look-like-.patch rename to 0062-Make-grub2-mkconfig-construct-titles-that-look-like-.patch index 3eb0b4db..3bbaa1d9 100644 --- a/0065-Make-grub2-mkconfig-construct-titles-that-look-like-.patch +++ b/0062-Make-grub2-mkconfig-construct-titles-that-look-like-.patch @@ -8,39 +8,57 @@ Resolves: rhbz#1215839 Signed-off-by: Peter Jones --- - util/grub.d/10_linux.in | 14 +++++++++++--- - 1 file changed, 11 insertions(+), 3 deletions(-) + util/grub.d/10_linux.in | 34 +++++++++++++++++++++++++++------- + 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index c6627268cca..1215241859b 100644 +index 43d98476b88..a8a8e2cf325 100644 --- a/util/grub.d/10_linux.in +++ b/util/grub.d/10_linux.in -@@ -68,6 +68,15 @@ case x"$GRUB_FS" in +@@ -78,6 +78,32 @@ case x"$GRUB_FS" in ;; esac +mktitle () +{ -+ local OS_NAME="$(eval $(grep ^NAME= /etc/os-release) ; echo ${NAME})" -+ local OS_VERS="$(eval $(grep ^VERSION= /etc/os-release) ; echo ${VERSION})" ++ local title_type ++ local version ++ local OS_NAME ++ local OS_VERS + -+ local titlestr="${OS_NAME} (%s) ${OS_VERS}" -+ echo -n ${titlestr} ++ title_type=$1 && shift ++ version=$1 && shift ++ ++ OS_NAME="$(eval $(grep ^NAME= /etc/os-release) ; echo ${NAME})" ++ OS_VERS="$(eval $(grep ^VERSION= /etc/os-release) ; echo ${VERSION})" ++ ++ case $title_type in ++ recovery) ++ title=$(printf '%s (%s) %s (recovery mode)' \ ++ "${OS_NAME}" "${version}" "${OS_VERS}") ++ ;; ++ *) ++ title=$(printf '%s (%s) %s' \ ++ "${OS_NAME}" "${version}" "${OS_VERS}") ++ ;; ++ esac ++ echo -n ${title} +} + title_correction_code= linux_entry () -@@ -98,15 +107,14 @@ linux_entry () +@@ -91,17 +117,11 @@ linux_entry () + boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")" + fi if [ x$type != xsimple ] ; then - case $type in - recovery) +- case $type in +- recovery) - title="$(gettext_printf "%s, with Linux %s (recovery mode)" "${os}" "${version}")" ;; -+ title="$(printf "$(mktitle) (recovery mode)" "${version}")" ;; - *) +- *) - title="$(gettext_printf "%s, with Linux %s" "${os}" "${version}")" ;; -+ title="$(printf "$(mktitle)" "${version}")" ;; - esac +- esac ++ title=$(mktitle "$type" "$version") if [ x"$title" = x"$GRUB_ACTUAL_DEFAULT" ] || [ x"Previous Linux versions>$title" = x"$GRUB_ACTUAL_DEFAULT" ]; then replacement_title="$(echo "Advanced options for ${OS}" | sed 's,>,>>,g')>$(echo "$title" | sed 's,>,>>,g')" quoted="$(echo "$GRUB_ACTUAL_DEFAULT" | grub_quote)" diff --git a/0066-Add-friendly-grub2-password-config-tool-985962.patch b/0063-Add-friendly-grub2-password-config-tool-985962.patch similarity index 95% rename from 0066-Add-friendly-grub2-password-config-tool-985962.patch rename to 0063-Add-friendly-grub2-password-config-tool-985962.patch index e898a95a..49ebfa71 100644 --- a/0066-Add-friendly-grub2-password-config-tool-985962.patch +++ b/0063-Add-friendly-grub2-password-config-tool-985962.patch @@ -22,7 +22,7 @@ Resolves: rhbz#985962 create mode 100644 util/grub.d/01_users.in diff --git a/configure.ac b/configure.ac -index 49427cbf989..1960840048f 100644 +index 056df1cbaf9..679f634ce4c 100644 --- a/configure.ac +++ b/configure.ac @@ -65,6 +65,7 @@ grub_TRANSFORM([grub-mkrelpath]) @@ -34,10 +34,10 @@ index 49427cbf989..1960840048f 100644 grub_TRANSFORM([grub-script-check]) grub_TRANSFORM([grub-set-default]) diff --git a/Makefile.util.def b/Makefile.util.def -index d846b81b5f9..226c46b2d79 100644 +index 406d96861b6..fd91045bd6d 100644 --- a/Makefile.util.def +++ b/Makefile.util.def -@@ -439,6 +439,12 @@ script = { +@@ -440,6 +440,12 @@ script = { installdir = grubconf; }; @@ -50,7 +50,7 @@ index d846b81b5f9..226c46b2d79 100644 script = { name = '10_windows'; common = util/grub.d/10_windows.in; -@@ -721,6 +727,13 @@ script = { +@@ -722,6 +728,13 @@ script = { installdir = sbin; }; @@ -65,10 +65,10 @@ index d846b81b5f9..226c46b2d79 100644 name = grub-mkconfig_lib; common = util/grub-mkconfig_lib.in; diff --git a/.gitignore b/.gitignore -index 1c85371298c..387e3554cd5 100644 +index fa2e5b609b1..5066689bc0a 100644 --- a/.gitignore +++ b/.gitignore -@@ -107,6 +107,8 @@ grub-*.tar.* +@@ -111,6 +111,8 @@ grub-*.tar.* /grub*-script-check.1 /grub*-set-default /grub*-set-default.8 @@ -78,10 +78,10 @@ index 1c85371298c..387e3554cd5 100644 /grub*-shell-tester /grub*-sparc64-setup diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in -index 9d595ac058a..fb8724708b5 100644 +index f68d4925ee6..bdb9982aefb 100644 --- a/util/grub-mkconfig.in +++ b/util/grub-mkconfig.in -@@ -263,6 +263,8 @@ for i in "${grub_mkconfig_dir}"/* ; do +@@ -282,6 +282,8 @@ for i in "${grub_mkconfig_dir}"/* ; do *~) ;; # emacsen autosave files. FIXME: support other editors */\#*\#) ;; diff --git a/0064-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch b/0064-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch deleted file mode 100644 index 6faf353c..00000000 --- a/0064-Try-to-emit-linux16-initrd16-and-linuxefi-initrdefi-.patch +++ /dev/null @@ -1,74 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Mon, 27 Oct 2014 09:22:55 -0400 -Subject: [PATCH] Try to emit linux16/initrd16 and linuxefi/initrdefi in - 30-os_prober. - -Resolves: rhbz#1108296 - -Signed-off-by: Peter Jones ---- - util/grub.d/30_os-prober.in | 30 ++++++++++++++++++++++++++---- - 1 file changed, 26 insertions(+), 4 deletions(-) - -diff --git a/util/grub.d/30_os-prober.in b/util/grub.d/30_os-prober.in -index 9b8f5968e2d..dc98eace934 100644 ---- a/util/grub.d/30_os-prober.in -+++ b/util/grub.d/30_os-prober.in -@@ -141,6 +141,28 @@ for OS in ${OSPROBED} ; do - # os-prober returns text string followed by optional counter - CLASS="--class $(echo "${LABEL}" | LC_ALL=C sed 's,[[:digit:]]*$,,' | cut -d' ' -f1 | tr 'A-Z' 'a-z' | LC_ALL=C sed 's,[^[:alnum:]_],_,g')" - -+ sixteenbit="" -+ linuxefi="linux" -+ initrdefi="initrd" -+ case "$machine" in -+ i?86|x86_64) -+ sixteenbit="16" -+ linuxefi="linuxefi" -+ initrdefi="initrdefi" -+ ;; -+ aarch64) -+ linuxefi="linux" -+ initrdefi="initrd" -+ esac -+ linux="linux${sixteenbit}" -+ initrd="initrd${sixteenbit}" -+ # there's no way to tell that the /other/ os is booting through UEFI, -+ # but if we are it's an okay bet... -+ if [ -d /sys/firmware/efi ]; then -+ linux=$linuxefi -+ initrd=$initrdefi -+ fi -+ - gettext_printf "Found %s on %s\n" "${LONGNAME}" "${DEVICE}" >&2 - - case ${BOOT} in -@@ -241,11 +263,11 @@ EOF - save_default_entry | grub_add_tab - printf '%s\n' "${prepare_boot_cache}" - cat << EOF -- linux ${LKERNEL} ${LPARAMS} -+ ${linux} ${LKERNEL} ${LPARAMS} - EOF - if [ -n "${LINITRD}" ] ; then - cat << EOF -- initrd ${LINITRD} -+ ${initrd} ${LINITRD} - EOF - fi - cat << EOF -@@ -261,11 +283,11 @@ EOF - save_default_entry | sed -e "s/^/$grub_tab$grub_tab/" - printf '%s\n' "${prepare_boot_cache}" | grub_add_tab - cat << EOF -- linux ${LKERNEL} ${LPARAMS} -+ ${linux} ${LKERNEL} ${LPARAMS} - EOF - if [ -n "${LINITRD}" ] ; then - cat << EOF -- initrd ${LINITRD} -+ ${initrd} ${LINITRD} - EOF - fi - cat << EOF diff --git a/0068-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch b/0064-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch similarity index 90% rename from 0068-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch rename to 0064-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch index 20b09d97..09061ce9 100644 --- a/0068-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch +++ b/0064-Try-to-make-sure-configure.ac-and-grub-rpm-sort-play.patch @@ -15,10 +15,10 @@ Signed-off-by: Peter Jones 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/configure.ac b/configure.ac -index 1960840048f..3c4b9a19b10 100644 +index 679f634ce4c..71d1056969e 100644 --- a/configure.ac +++ b/configure.ac -@@ -1795,7 +1795,7 @@ AC_SUBST([LIBDEVMAPPER]) +@@ -1796,7 +1796,7 @@ AC_SUBST([LIBDEVMAPPER]) AC_ARG_ENABLE([rpm-sort], [AS_HELP_STRING([--enable-rpm-sort], [enable native rpm sorting of kernels in grub (default=guessed)])]) @@ -28,7 +28,7 @@ index 1960840048f..3c4b9a19b10 100644 fi diff --git a/util/grub-mkconfig_lib.in b/util/grub-mkconfig_lib.in -index 954844d2d95..9c410eae493 100644 +index 7fe3598435c..113a41f9409 100644 --- a/util/grub-mkconfig_lib.in +++ b/util/grub-mkconfig_lib.in @@ -33,6 +33,9 @@ fi @@ -41,7 +41,7 @@ index 954844d2d95..9c410eae493 100644 if which gettext >/dev/null 2>/dev/null; then : -@@ -213,10 +216,10 @@ version_sort () +@@ -214,10 +217,10 @@ version_sort () esac } diff --git a/0069-tcp-add-window-scaling-support.patch b/0065-tcp-add-window-scaling-support.patch similarity index 100% rename from 0069-tcp-add-window-scaling-support.patch rename to 0065-tcp-add-window-scaling-support.patch diff --git a/0070-efinet-retransmit-if-our-device-is-busy.patch b/0066-efinet-retransmit-if-our-device-is-busy.patch similarity index 100% rename from 0070-efinet-retransmit-if-our-device-is-busy.patch rename to 0066-efinet-retransmit-if-our-device-is-busy.patch diff --git a/0071-Be-more-aggro-about-actually-using-the-configured-ne.patch b/0067-Be-more-aggro-about-actually-using-the-configured-ne.patch similarity index 100% rename from 0071-Be-more-aggro-about-actually-using-the-configured-ne.patch rename to 0067-Be-more-aggro-about-actually-using-the-configured-ne.patch diff --git a/0067-Make-grub2-mkconfig-construct-titles-that-look-like-.patch b/0067-Make-grub2-mkconfig-construct-titles-that-look-like-.patch deleted file mode 100644 index 6f4e3eb7..00000000 --- a/0067-Make-grub2-mkconfig-construct-titles-that-look-like-.patch +++ /dev/null @@ -1,64 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Tue, 28 Apr 2015 11:15:03 -0400 -Subject: [PATCH] Make grub2-mkconfig construct titles that look like the ones - we want elsewhere. - -Resolves: rhbz#1215839 - -Signed-off-by: Peter Jones ---- - util/grub.d/10_linux.in | 32 ++++++++++++++++++++++---------- - 1 file changed, 22 insertions(+), 10 deletions(-) - -diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index 1215241859b..584ad1f4639 100644 ---- a/util/grub.d/10_linux.in -+++ b/util/grub.d/10_linux.in -@@ -70,11 +70,28 @@ esac - - mktitle () - { -- local OS_NAME="$(eval $(grep ^NAME= /etc/os-release) ; echo ${NAME})" -- local OS_VERS="$(eval $(grep ^VERSION= /etc/os-release) ; echo ${VERSION})" -+ local title_type -+ local version -+ local OS_NAME -+ local OS_VERS - -- local titlestr="${OS_NAME} (%s) ${OS_VERS}" -- echo -n ${titlestr} -+ title_type=$1 && shift -+ version=$1 && shift -+ -+ OS_NAME="$(eval $(grep ^NAME= /etc/os-release) ; echo ${NAME})" -+ OS_VERS="$(eval $(grep ^VERSION= /etc/os-release) ; echo ${VERSION})" -+ -+ case $title_type in -+ recovery) -+ title=$(printf '%s (%s) %s (recovery mode)' \ -+ "${OS_NAME}" "${version}" "${OS_VERS}") -+ ;; -+ *) -+ title=$(printf '%s (%s) %s' \ -+ "${OS_NAME}" "${version}" "${OS_VERS}") -+ ;; -+ esac -+ echo -n ${title} - } - - title_correction_code= -@@ -105,12 +122,7 @@ linux_entry () - boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")" - fi - if [ x$type != xsimple ] ; then -- case $type in -- recovery) -- title="$(printf "$(mktitle) (recovery mode)" "${version}")" ;; -- *) -- title="$(printf "$(mktitle)" "${version}")" ;; -- esac -+ title=$(mktitle "$type" "$version") - if [ x"$title" = x"$GRUB_ACTUAL_DEFAULT" ] || [ x"Previous Linux versions>$title" = x"$GRUB_ACTUAL_DEFAULT" ]; then - replacement_title="$(echo "Advanced options for ${OS}" | sed 's,>,>>,g')>$(echo "$title" | sed 's,>,>>,g')" - quoted="$(echo "$GRUB_ACTUAL_DEFAULT" | grub_quote)" diff --git a/0072-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch b/0068-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch similarity index 100% rename from 0072-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch rename to 0068-efinet-add-filter-for-the-first-exclusive-reopen-of-.patch diff --git a/0073-Fix-security-issue-when-reading-username-and-passwor.patch b/0069-Fix-security-issue-when-reading-username-and-passwor.patch similarity index 100% rename from 0073-Fix-security-issue-when-reading-username-and-passwor.patch rename to 0069-Fix-security-issue-when-reading-username-and-passwor.patch diff --git a/0074-Warn-if-grub-password-will-not-be-read-1290803.patch b/0070-Warn-if-grub-password-will-not-be-read-1290803.patch similarity index 100% rename from 0074-Warn-if-grub-password-will-not-be-read-1290803.patch rename to 0070-Warn-if-grub-password-will-not-be-read-1290803.patch diff --git a/0075-Clean-up-grub-setpassword-documentation-1290799.patch b/0071-Clean-up-grub-setpassword-documentation-1290799.patch similarity index 100% rename from 0075-Clean-up-grub-setpassword-documentation-1290799.patch rename to 0071-Clean-up-grub-setpassword-documentation-1290799.patch diff --git a/0076-Fix-locale-issue-in-grub-setpassword-1294243.patch b/0072-Fix-locale-issue-in-grub-setpassword-1294243.patch similarity index 100% rename from 0076-Fix-locale-issue-in-grub-setpassword-1294243.patch rename to 0072-Fix-locale-issue-in-grub-setpassword-1294243.patch diff --git a/0077-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch b/0073-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch similarity index 100% rename from 0077-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch rename to 0073-efiemu-Handle-persistent-RAM-and-unknown-possible-fu.patch diff --git a/0078-efiemu-Fix-compilation-failure.patch b/0074-efiemu-Fix-compilation-failure.patch similarity index 100% rename from 0078-efiemu-Fix-compilation-failure.patch rename to 0074-efiemu-Fix-compilation-failure.patch diff --git a/0079-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch b/0075-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch similarity index 100% rename from 0079-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch rename to 0075-Revert-reopen-SNP-protocol-for-exclusive-use-by-grub.patch diff --git a/0080-Add-a-url-parser.patch b/0076-Add-a-url-parser.patch similarity index 99% rename from 0080-Add-a-url-parser.patch rename to 0076-Add-a-url-parser.patch index a7388e06..2697fd28 100644 --- a/0080-Add-a-url-parser.patch +++ b/0076-Add-a-url-parser.patch @@ -20,10 +20,10 @@ Signed-off-by: Peter Jones create mode 100644 include/grub/net/url.h diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 5ae70204cd2..4857a1e5f61 100644 +index cd0902b46b8..991891a6e09 100644 --- a/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def -@@ -2199,6 +2199,7 @@ module = { +@@ -2185,6 +2185,7 @@ module = { common = net/ethernet.c; common = net/arp.c; common = net/netbuff.c; @@ -923,7 +923,7 @@ index 00000000000..146858284cd +} +#endif diff --git a/include/grub/misc.h b/include/grub/misc.h -index 06208143779..4737da1eaa9 100644 +index 83fd69f4ada..fcaf1201e39 100644 --- a/include/grub/misc.h +++ b/include/grub/misc.h @@ -85,6 +85,7 @@ int EXPORT_FUNC(grub_strncmp) (const char *s1, const char *s2, grub_size_t n); diff --git a/0081-efinet-and-bootp-add-support-for-dhcpv6.patch b/0077-efinet-and-bootp-add-support-for-dhcpv6.patch similarity index 100% rename from 0081-efinet-and-bootp-add-support-for-dhcpv6.patch rename to 0077-efinet-and-bootp-add-support-for-dhcpv6.patch diff --git a/0082-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch b/0078-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch similarity index 92% rename from 0082-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch rename to 0078-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch index 5b9578cf..7ea79d1f 100644 --- a/0082-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch +++ b/0078-Add-grub-get-kernel-settings-and-use-it-in-10_linux.patch @@ -24,7 +24,7 @@ Resolves: rhbz#1226325 create mode 100644 util/grub-get-kernel-settings.in diff --git a/configure.ac b/configure.ac -index 3c4b9a19b10..40be70019e2 100644 +index 71d1056969e..aa06ed59c8d 100644 --- a/configure.ac +++ b/configure.ac @@ -58,6 +58,7 @@ grub_TRANSFORM([grub-install]) @@ -44,10 +44,10 @@ index 3c4b9a19b10..40be70019e2 100644 grub_TRANSFORM([grub-install.1]) grub_TRANSFORM([grub-kbdcomp.3]) diff --git a/Makefile.util.def b/Makefile.util.def -index 226c46b2d79..ed27351eb47 100644 +index fd91045bd6d..2d032643de7 100644 --- a/Makefile.util.def +++ b/Makefile.util.def -@@ -713,6 +713,13 @@ script = { +@@ -714,6 +714,13 @@ script = { installdir = sbin; }; @@ -62,10 +62,10 @@ index 226c46b2d79..ed27351eb47 100644 name = grub-set-default; common = util/grub-set-default.in; diff --git a/.gitignore b/.gitignore -index 387e3554cd5..9f258735aaa 100644 +index 5066689bc0a..54795fa60be 100644 --- a/.gitignore +++ b/.gitignore -@@ -64,6 +64,8 @@ grub-*.tar.* +@@ -68,6 +68,8 @@ grub-*.tar.* /grub*-fs-tester /grub*-fstest /grub*-fstest.1 @@ -218,7 +218,7 @@ index 00000000000..12046219878 + echo export GRUB_LINUX_DEBUG_TITLE_POSTFIX +fi diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in -index fb8724708b5..e32de5ef361 100644 +index bdb9982aefb..8218f3d477f 100644 --- a/util/grub-mkconfig.in +++ b/util/grub-mkconfig.in @@ -45,6 +45,7 @@ grub_probe="${sbindir}/@grub_probe@" @@ -229,20 +229,20 @@ index fb8724708b5..e32de5ef361 100644 export TEXTDOMAIN=@PACKAGE@ export TEXTDOMAINDIR="@localedir@" -@@ -151,6 +152,8 @@ if test -f ${sysconfdir}/default/grub ; then +@@ -158,6 +159,8 @@ if test -f ${sysconfdir}/default/grub ; then . ${sysconfdir}/default/grub fi +eval "$("${grub_get_kernel_settings}")" || true + - if [ "x$GRUB_DISABLE_UUID" != "xtrue" -a -z "$GRUB_DEVICE_UUID" ]; then - GRUB_DEVICE_UUID="$GRUB_DEVICE_UUID_GENERATED" - fi + if [ "x$GRUB_DISABLE_UUID" != "xtrue" ]; then + if [ -z "$GRUB_DEVICE_UUID" ]; then + GRUB_DEVICE_UUID="$GRUB_DEVICE_UUID_GENERATED" diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index 584ad1f4639..c9bf223f273 100644 +index a8a8e2cf325..4e49ccdf742 100644 --- a/util/grub.d/10_linux.in +++ b/util/grub.d/10_linux.in -@@ -101,7 +101,8 @@ linux_entry () +@@ -111,7 +111,8 @@ linux_entry () os="$1" version="$2" type="$3" @@ -250,9 +250,9 @@ index 584ad1f4639..c9bf223f273 100644 + isdebug="$4" + args="$5" - sixteenbit="" - linuxefi="linux" -@@ -128,6 +129,9 @@ linux_entry () + if [ -z "$boot_device_id" ]; then + boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")" +@@ -123,6 +124,9 @@ linux_entry () quoted="$(echo "$GRUB_ACTUAL_DEFAULT" | grub_quote)" title_correction_code="${title_correction_code}if [ \"x\$default\" = '$quoted' ]; then default='$(echo "$replacement_title" | grub_quote)'; fi;" fi @@ -262,7 +262,7 @@ index 584ad1f4639..c9bf223f273 100644 echo "menuentry '$(echo "$title" | grub_quote)' ${CLASS} \$menuentry_id_option 'gnulinux-$version-$type-$boot_device_id' {" | sed "s/^/$submenu_indentation/" else echo "menuentry '$(echo "$os" | grub_quote)' ${CLASS} \$menuentry_id_option 'gnulinux-simple-$boot_device_id' {" | sed "s/^/$submenu_indentation/" -@@ -285,11 +289,15 @@ while [ "x$list" != "x" ] ; do +@@ -295,11 +299,15 @@ while [ "x$list" != "x" ] ; do fi if [ "x$is_top_level" = xtrue ] && [ "x${GRUB_DISABLE_SUBMENU}" != xtrue ]; then @@ -280,7 +280,7 @@ index 584ad1f4639..c9bf223f273 100644 if [ -z "$boot_device_id" ]; then boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")" fi -@@ -298,10 +306,15 @@ while [ "x$list" != "x" ] ; do +@@ -308,10 +316,15 @@ while [ "x$list" != "x" ] ; do is_top_level=false fi diff --git a/0083-Normalize-slashes-in-tftp-paths.patch b/0079-Normalize-slashes-in-tftp-paths.patch similarity index 100% rename from 0083-Normalize-slashes-in-tftp-paths.patch rename to 0079-Normalize-slashes-in-tftp-paths.patch diff --git a/0084-Fix-malformed-tftp-packets.patch b/0080-Fix-malformed-tftp-packets.patch similarity index 100% rename from 0084-Fix-malformed-tftp-packets.patch rename to 0080-Fix-malformed-tftp-packets.patch diff --git a/0086-bz1374141-fix-incorrect-mask-for-ppc64.patch b/0081-bz1374141-fix-incorrect-mask-for-ppc64.patch similarity index 100% rename from 0086-bz1374141-fix-incorrect-mask-for-ppc64.patch rename to 0081-bz1374141-fix-incorrect-mask-for-ppc64.patch diff --git a/0090-Make-grub_fatal-also-backtrace.patch b/0082-Make-grub_fatal-also-backtrace.patch similarity index 99% rename from 0090-Make-grub_fatal-also-backtrace.patch rename to 0082-Make-grub_fatal-also-backtrace.patch index 50697a5f..a9af3296 100644 --- a/0090-Make-grub_fatal-also-backtrace.patch +++ b/0082-Make-grub_fatal-also-backtrace.patch @@ -13,7 +13,7 @@ Subject: [PATCH] Make grub_fatal() also backtrace. create mode 100644 grub-core/lib/arm64/backtrace.c diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 75a7ab3441d..3a5d450f3d0 100644 +index 991891a6e09..27563743ba9 100644 --- a/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def @@ -175,6 +175,9 @@ kernel = { diff --git a/0093-Make-grub-editenv-build-again.patch b/0083-Make-grub-editenv-build-again.patch similarity index 92% rename from 0093-Make-grub-editenv-build-again.patch rename to 0083-Make-grub-editenv-build-again.patch index 2d13dae4..64c001fe 100644 --- a/0093-Make-grub-editenv-build-again.patch +++ b/0083-Make-grub-editenv-build-again.patch @@ -13,10 +13,10 @@ Signed-off-by: Peter Jones 1 file changed, 2 insertions(+) diff --git a/Makefile.util.def b/Makefile.util.def -index ed27351eb47..38cdf4ccc09 100644 +index 2d032643de7..879e8eb98a4 100644 --- a/Makefile.util.def +++ b/Makefile.util.def -@@ -236,6 +236,8 @@ program = { +@@ -237,6 +237,8 @@ program = { extra_dist = grub-core/osdep/unix/compress.c; extra_dist = grub-core/osdep/basic/compress.c; common = util/mkimage.c; diff --git a/0094-Fix-up-some-man-pages-rpmdiff-noticed.patch b/0084-Fix-up-some-man-pages-rpmdiff-noticed.patch similarity index 99% rename from 0094-Fix-up-some-man-pages-rpmdiff-noticed.patch rename to 0084-Fix-up-some-man-pages-rpmdiff-noticed.patch index 6f804007..71b0a229 100644 --- a/0094-Fix-up-some-man-pages-rpmdiff-noticed.patch +++ b/0084-Fix-up-some-man-pages-rpmdiff-noticed.patch @@ -13,7 +13,7 @@ Subject: [PATCH] Fix up some man pages rpmdiff noticed. create mode 100644 util/grub-syslinux2cfg.1 diff --git a/configure.ac b/configure.ac -index 40be70019e2..ae371a97d30 100644 +index aa06ed59c8d..f69f8986791 100644 --- a/configure.ac +++ b/configure.ac @@ -80,6 +80,7 @@ grub_TRANSFORM([grub-get-kernel-settings.3]) diff --git a/0085-Fix-race-in-EFI-validation.patch b/0085-Fix-race-in-EFI-validation.patch deleted file mode 100644 index ce42a835..00000000 --- a/0085-Fix-race-in-EFI-validation.patch +++ /dev/null @@ -1,94 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Matthew Garrett -Date: Tue, 14 Jul 2015 16:58:51 -0700 -Subject: [PATCH] Fix race in EFI validation - ---- - grub-core/loader/i386/efi/linux.c | 44 ++++++++++----------------------------- - 1 file changed, 11 insertions(+), 33 deletions(-) - -diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c -index e5b778577f9..7ccf32d9d45 100644 ---- a/grub-core/loader/i386/efi/linux.c -+++ b/grub-core/loader/i386/efi/linux.c -@@ -154,7 +154,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - grub_file_t file = 0; - struct linux_kernel_header lh; - grub_ssize_t len, start, filelen; -- void *kernel; -+ void *kernel = NULL; - - grub_dl_ref (my_mod); - -@@ -191,10 +191,6 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - goto fail; - } - -- grub_file_seek (file, 0); -- -- grub_free(kernel); -- - params = grub_efi_allocate_pages_max (0x3fffffff, BYTES_TO_PAGES(16384)); - - if (! params) -@@ -203,15 +199,9 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - goto fail; - } - -- memset (params, 0, 16384); -+ grub_memset (params, 0, 16384); - -- if (grub_file_read (file, &lh, sizeof (lh)) != sizeof (lh)) -- { -- if (!grub_errno) -- grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"), -- argv[0]); -- goto fail; -- } -+ grub_memcpy (&lh, kernel, sizeof (lh)); - - if (lh.boot_flag != grub_cpu_to_le16 (0xaa55)) - { -@@ -271,27 +261,12 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - goto fail; - } - -- if (grub_file_seek (file, start) == (grub_off_t) -1) -- { -- grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"), -- argv[0]); -- goto fail; -- } -+ grub_memcpy (kernel_mem, (char *)kernel + start, len); -+ grub_loader_set (grub_linuxefi_boot, grub_linuxefi_unload, 0); -+ loaded=1; - -- if (grub_file_read (file, kernel_mem, len) != len && !grub_errno) -- { -- grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"), -- argv[0]); -- } -- -- if (grub_errno == GRUB_ERR_NONE) -- { -- grub_loader_set (grub_linuxefi_boot, grub_linuxefi_unload, 0); -- loaded = 1; -- lh.code32_start = (grub_uint32_t)(grub_uint64_t) kernel_mem; -- } -- -- memcpy(params, &lh, 2 * 512); -+ lh.code32_start = (grub_uint32_t)(grub_uint64_t) kernel_mem; -+ grub_memcpy (params, &lh, 2 * 512); - - params->type_of_loader = 0x21; - -@@ -300,6 +275,9 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - if (file) - grub_file_close (file); - -+ if (kernel) -+ grub_free (kernel); -+ - if (grub_errno != GRUB_ERR_NONE) - { - grub_dl_unref (my_mod); diff --git a/0104-Make-exit-take-a-return-code.patch b/0085-Make-exit-take-a-return-code.patch similarity index 100% rename from 0104-Make-exit-take-a-return-code.patch rename to 0085-Make-exit-take-a-return-code.patch diff --git a/0105-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch b/0086-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch similarity index 93% rename from 0105-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch rename to 0086-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch index 1780d62a..e8323376 100644 --- a/0105-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch +++ b/0086-arm64-make-sure-fdt-has-address-cells-and-size-cells.patch @@ -14,10 +14,10 @@ make sure they exist. 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/grub-core/loader/arm64/linux.c b/grub-core/loader/arm64/linux.c -index ad39a301527..59ff9cc05b4 100644 +index a1ac7a38867..93b5cd306eb 100644 --- a/grub-core/loader/arm64/linux.c +++ b/grub-core/loader/arm64/linux.c -@@ -79,7 +79,21 @@ finalize_params_linux (void) +@@ -80,7 +80,21 @@ finalize_params_linux (void) node = grub_fdt_find_subnode (fdt, 0, "chosen"); if (node < 0) diff --git a/0107-Make-our-info-pages-say-grub2-where-appropriate.patch b/0087-Make-our-info-pages-say-grub2-where-appropriate.patch similarity index 91% rename from 0107-Make-our-info-pages-say-grub2-where-appropriate.patch rename to 0087-Make-our-info-pages-say-grub2-where-appropriate.patch index 662a6567..800f7f1b 100644 --- a/0107-Make-our-info-pages-say-grub2-where-appropriate.patch +++ b/0087-Make-our-info-pages-say-grub2-where-appropriate.patch @@ -35,7 +35,7 @@ index a9f4de6318c..3ce827ab726 100644 @setchapternewpage odd diff --git a/docs/grub.texi b/docs/grub.texi -index 15a90b26e4d..f28c4cd5247 100644 +index a7155c22ffe..2b7b7faf847 100644 --- a/docs/grub.texi +++ b/docs/grub.texi @@ -1,7 +1,7 @@ @@ -114,7 +114,7 @@ index 15a90b26e4d..f28c4cd5247 100644 (@pxref{Environment block}). @item -@@ -548,7 +548,7 @@ On OS which have device nodes similar to Unix-like OS GRUB tools use the +@@ -549,7 +549,7 @@ On OS which have device nodes similar to Unix-like OS GRUB tools use the OS name. E.g. for GNU/Linux: @example @@ -123,7 +123,7 @@ index 15a90b26e4d..f28c4cd5247 100644 @end example On AROS we use another syntax. For volumes: -@@ -571,7 +571,7 @@ For disks we use syntax: +@@ -572,7 +572,7 @@ For disks we use syntax: E.g. @example @@ -132,7 +132,7 @@ index 15a90b26e4d..f28c4cd5247 100644 @end example On Windows we use UNC path. For volumes it's typically -@@ -598,7 +598,7 @@ For disks it's +@@ -599,7 +599,7 @@ For disks it's E.g. @example @@ -141,7 +141,7 @@ index 15a90b26e4d..f28c4cd5247 100644 @end example Beware that you may need to further escape the backslashes depending on your -@@ -608,7 +608,7 @@ When compiled with cygwin support then cygwin drive names are automatically +@@ -609,7 +609,7 @@ When compiled with cygwin support then cygwin drive names are automatically when needed. E.g. @example @@ -150,7 +150,7 @@ index 15a90b26e4d..f28c4cd5247 100644 @end example @node Installation -@@ -621,7 +621,7 @@ from the source tarball, or as a package for your OS. +@@ -622,7 +622,7 @@ from the source tarball, or as a package for your OS. After you have done that, you need to install the boot loader on a drive (floppy or hard disk) by using the utility @@ -159,7 +159,7 @@ index 15a90b26e4d..f28c4cd5247 100644 GRUB comes with boot images, which are normally put in the directory @file{/usr/lib/grub/-} (for BIOS-based machines -@@ -632,22 +632,22 @@ loader needs to find them (usually @file{/boot}) will be called +@@ -633,22 +633,22 @@ loader needs to find them (usually @file{/boot}) will be called the @dfn{boot directory}. @menu @@ -187,7 +187,7 @@ index 15a90b26e4d..f28c4cd5247 100644 The usage is basically very simple. You only need to specify one argument to the program, namely, where to install the boot loader. The -@@ -656,13 +656,13 @@ For example, under Linux the following will install GRUB into the MBR +@@ -657,13 +657,13 @@ For example, under Linux the following will install GRUB into the MBR of the first IDE disk: @example @@ -203,7 +203,7 @@ index 15a90b26e4d..f28c4cd5247 100644 @end example But all the above examples assume that GRUB should put images under -@@ -676,7 +676,7 @@ boot floppy with a filesystem. Here is an example: +@@ -677,7 +677,7 @@ boot floppy with a filesystem. Here is an example: # @kbd{mke2fs /dev/fd0} # @kbd{mount -t ext2 /dev/fd0 /mnt} # @kbd{mkdir /mnt/boot} @@ -212,7 +212,7 @@ index 15a90b26e4d..f28c4cd5247 100644 # @kbd{umount /mnt} @end group @end example -@@ -688,16 +688,16 @@ floppy instead of exposing the USB drive as a hard disk (they call it +@@ -689,16 +689,16 @@ floppy instead of exposing the USB drive as a hard disk (they call it @example # @kbd{losetup /dev/loop0 /dev/sdb1} # @kbd{mount /dev/loop0 /mnt/usb} @@ -233,7 +233,7 @@ index 15a90b26e4d..f28c4cd5247 100644 with the internals of GRUB. Installing a boot loader on a running OS may be extremely dangerous. -@@ -705,20 +705,20 @@ On EFI systems for fixed disk install you have to mount EFI System Partition. +@@ -706,20 +706,20 @@ On EFI systems for fixed disk install you have to mount EFI System Partition. If you mount it at @file{/boot/efi} then you don't need any special arguments: @example @@ -257,7 +257,7 @@ index 15a90b26e4d..f28c4cd5247 100644 @end example @node Making a GRUB bootable CD-ROM -@@ -738,10 +738,10 @@ usually also need to include a configuration file @file{grub.cfg} and some +@@ -739,10 +739,10 @@ usually also need to include a configuration file @file{grub.cfg} and some other GRUB modules. To make a simple generic GRUB rescue CD, you can use the @@ -270,7 +270,7 @@ index 15a90b26e4d..f28c4cd5247 100644 @end example You will often need to include other files in your image. To do this, first -@@ -764,7 +764,7 @@ directory @file{iso/}. +@@ -765,7 +765,7 @@ directory @file{iso/}. Finally, make the image: @example @@ -279,7 +279,7 @@ index 15a90b26e4d..f28c4cd5247 100644 @end example This produces a file named @file{grub.iso}, which then can be burned -@@ -780,7 +780,7 @@ storage devices. +@@ -781,7 +781,7 @@ storage devices. @node Device map @section The map between BIOS drives and OS devices @@ -288,7 +288,7 @@ index 15a90b26e4d..f28c4cd5247 100644 etc.) read it to map BIOS drives to OS devices. This file consists of lines like this: -@@ -1223,23 +1223,23 @@ need to write the whole thing by hand. +@@ -1225,23 +1225,23 @@ need to write the whole thing by hand. @node Simple configuration @section Simple configuration handling @@ -317,7 +317,7 @@ index 15a90b26e4d..f28c4cd5247 100644 valid POSIX shell input; normally, it will just be a sequence of @samp{KEY=value} lines, but if the value contains spaces or other special characters then it must be quoted. For example: -@@ -1277,7 +1277,7 @@ works it's not recommended since titles often contain unstable device names +@@ -1279,7 +1279,7 @@ works it's not recommended since titles often contain unstable device names and may be translated If you set this to @samp{saved}, then the default menu entry will be that @@ -326,7 +326,7 @@ index 15a90b26e4d..f28c4cd5247 100644 the environment block, which may not be available in all situations (@pxref{Environment block}). -@@ -1288,7 +1288,7 @@ If this option is set to @samp{true}, then, when an entry is selected, save +@@ -1290,7 +1290,7 @@ If this option is set to @samp{true}, then, when an entry is selected, save it as a new default entry for use by future runs of GRUB. This is only useful if @samp{GRUB_DEFAULT=saved}; it is a separate option because @samp{GRUB_DEFAULT=saved} is useful without this option, in conjunction with @@ -335,8 +335,8 @@ index 15a90b26e4d..f28c4cd5247 100644 This option relies on the environment block, which may not be available in all situations (@pxref{Environment block}). -@@ -1399,7 +1399,7 @@ The values of these options replace the values of @samp{GRUB_CMDLINE_LINUX} - and @samp{GRUB_CMDLINE_LINUX_DEFAULT} for Linux and Xen menu entries. +@@ -1420,7 +1420,7 @@ intel-uc.img intel-ucode.img amd-uc.img amd-ucode.img early_ucode.cpio microcode + @end example @item GRUB_DISABLE_LINUX_UUID -Normally, @command{grub-mkconfig} will generate menu entries that use @@ -344,7 +344,7 @@ index 15a90b26e4d..f28c4cd5247 100644 universally-unique identifiers (UUIDs) to identify the root filesystem to the Linux kernel, using a @samp{root=UUID=...} kernel parameter. This is usually more reliable, but in some cases it may not be appropriate. To -@@ -1410,7 +1410,7 @@ If this option is set to @samp{true}, disable the generation of recovery +@@ -1442,7 +1442,7 @@ If this option is set to @samp{true}, disable the generation of recovery mode menu entries. @item GRUB_DISABLE_UUID @@ -353,7 +353,7 @@ index 15a90b26e4d..f28c4cd5247 100644 universally-unique identifiers (UUIDs) to identify various filesystems to search for files. This is usually more reliable, but in some cases it may not be appropriate. To disable this use of UUIDs, set this option to -@@ -1419,12 +1419,12 @@ not be appropriate. To disable this use of UUIDs, set this option to +@@ -1451,12 +1451,12 @@ not be appropriate. To disable this use of UUIDs, set this option to @item GRUB_VIDEO_BACKEND If graphical video support is required, either because the @samp{gfxterm} graphical terminal is in use or because @samp{GRUB_GFXPAYLOAD_LINUX} is set, @@ -369,7 +369,7 @@ index 15a90b26e4d..f28c4cd5247 100644 @item GRUB_GFXMODE Set the resolution used on the @samp{gfxterm} graphical terminal. Note that -@@ -1456,7 +1456,7 @@ boot sequence. If you have problems, set this option to @samp{text} and +@@ -1488,7 +1488,7 @@ boot sequence. If you have problems, set this option to @samp{text} and GRUB will tell Linux to boot in normal text mode. @item GRUB_DISABLE_OS_PROBER @@ -378,7 +378,7 @@ index 15a90b26e4d..f28c4cd5247 100644 @command{os-prober} program, if installed, to discover other operating systems installed on the same system and generate appropriate menu entries for them. Set this option to @samp{true} to disable this. -@@ -1466,7 +1466,7 @@ List of space-separated FS UUIDs of filesystems to be ignored from os-prober +@@ -1498,7 +1498,7 @@ List of space-separated FS UUIDs of filesystems to be ignored from os-prober output. For efi chainloaders it's @@ @item GRUB_DISABLE_SUBMENU @@ -387,7 +387,7 @@ index 15a90b26e4d..f28c4cd5247 100644 the kernel with highest version number and put all other found kernels or alternative menu entries for recovery mode in submenu. For entries returned by @command{os-prober} first entry will be put on top level and all others -@@ -1474,11 +1474,11 @@ in submenu. If this option is set to @samp{y}, flat menu with all entries +@@ -1506,11 +1506,11 @@ in submenu. If this option is set to @samp{y}, flat menu with all entries on top level will be generated instead. Changing this option will require changing existing values of @samp{GRUB_DEFAULT}, @samp{fallback} (@pxref{fallback}) and @samp{default} (@pxref{default}) environment variables as well as saved @@ -402,7 +402,7 @@ index 15a90b26e4d..f28c4cd5247 100644 check for encrypted disks and generate additional commands needed to access them during boot. Note that in this case unattended boot is not possible because GRUB will wait for passphrase to unlock encrypted container. -@@ -1537,7 +1537,7 @@ confusing @samp{GRUB_TIMEOUT_STYLE=countdown} or +@@ -1569,7 +1569,7 @@ confusing @samp{GRUB_TIMEOUT_STYLE=countdown} or @end table @@ -411,7 +411,7 @@ index 15a90b26e4d..f28c4cd5247 100644 edit the scripts in @file{/etc/grub.d} directly. @file{/etc/grub.d/40_custom} is particularly useful for adding entire custom menu entries; simply type the menu entries you want to add at the end of -@@ -1752,7 +1752,7 @@ images as well. +@@ -1831,7 +1831,7 @@ images as well. Mount this partition on/mnt/boot and disable GRUB in all OSes and manually install self-compiled latest GRUB with: @@ -420,7 +420,7 @@ index 15a90b26e4d..f28c4cd5247 100644 In all the OSes install GRUB tools but disable installing GRUB in bootsector, so you'll have menu.lst and grub.cfg available for use. Also disable os-prober -@@ -1762,20 +1762,20 @@ use by setting: +@@ -1841,20 +1841,20 @@ use by setting: in /etc/default/grub @@ -444,7 +444,7 @@ index 15a90b26e4d..f28c4cd5247 100644 @} menuentry "Windows XP" @{ -@@ -1838,15 +1838,15 @@ GRUB supports embedding a configuration file directly into the core image, +@@ -1917,15 +1917,15 @@ GRUB supports embedding a configuration file directly into the core image, so that it is loaded before entering normal mode. This is useful, for example, when it is not straightforward to find the real configuration file, or when you need to debug problems with loading that file. @@ -463,7 +463,7 @@ index 15a90b26e4d..f28c4cd5247 100644 After the embedded configuration file (if any) is executed, GRUB will load the @samp{normal} module (@pxref{normal}), which will then read the real -@@ -1881,13 +1881,13 @@ included in the core image: +@@ -1960,13 +1960,13 @@ included in the core image: @example @group search.fs_label grub root @@ -481,7 +481,7 @@ index 15a90b26e4d..f28c4cd5247 100644 else echo "Could not find an example configuration file!" fi -@@ -2411,7 +2411,7 @@ grub-mknetdir --net-directory=/srv/tftp --subdir=/boot/grub -d /usr/lib/grub/i38 +@@ -2490,7 +2490,7 @@ grub-mknetdir --net-directory=/srv/tftp --subdir=/boot/grub -d /usr/lib/grub/i38 @end group @end example @@ -490,7 +490,7 @@ index 15a90b26e4d..f28c4cd5247 100644 server. The grub.cfg file is placed in the same directory as the path output by -@@ -2596,7 +2596,7 @@ team are: +@@ -2675,7 +2675,7 @@ team are: @end table To take full advantage of this function, install GRUB into the MBR @@ -499,7 +499,7 @@ index 15a90b26e4d..f28c4cd5247 100644 If you have a laptop which has a similar feature and not in the above list could you figure your address and contribute? -@@ -2657,7 +2657,7 @@ bytes. +@@ -2736,7 +2736,7 @@ bytes. The sole function of @file{boot.img} is to read the first sector of the core image from a local disk and jump to it. Because of the size restriction, @file{boot.img} cannot understand any file system structure, so @@ -508,7 +508,7 @@ index 15a90b26e4d..f28c4cd5247 100644 core image into @file{boot.img} when installing GRUB. @item diskboot.img -@@ -2687,7 +2687,7 @@ images. +@@ -2766,7 +2766,7 @@ images. @item core.img This is the core image of GRUB. It is built dynamically from the kernel @@ -517,7 +517,7 @@ index 15a90b26e4d..f28c4cd5247 100644 program. Usually, it contains enough modules to access @file{/boot/grub}, and loads everything else (including menu handling, the ability to load target operating systems, and so on) from the file system at run-time. The -@@ -2739,7 +2739,7 @@ GRUB 2 has no single Stage 2 image. Instead, it loads modules from +@@ -2818,7 +2818,7 @@ GRUB 2 has no single Stage 2 image. Instead, it loads modules from In GRUB 2, images for booting from CD-ROM drives are now constructed using @file{cdboot.img} and @file{core.img}, making sure that the core image contains the @samp{iso9660} module. It is usually best to use the @@ -526,7 +526,7 @@ index 15a90b26e4d..f28c4cd5247 100644 @item nbgrub There is as yet no equivalent for @file{nbgrub} in GRUB 2; it was used by -@@ -2895,8 +2895,8 @@ There are two ways to specify files, by @dfn{absolute file name} and by +@@ -2974,8 +2974,8 @@ There are two ways to specify files, by @dfn{absolute file name} and by An absolute file name resembles a Unix absolute file name, using @samp{/} for the directory separator (not @samp{\} as in DOS). One @@ -537,7 +537,7 @@ index 15a90b26e4d..f28c4cd5247 100644 disk. If you omit the device name in an absolute file name, GRUB uses GRUB's @dfn{root device} implicitly. So if you set the root device to, say, @samp{(hd1,1)} by the command @samp{set root=(hd1,1)} (@pxref{set}), -@@ -2904,8 +2904,8 @@ then @code{/boot/kernel} is the same as @code{(hd1,1)/boot/kernel}. +@@ -2983,8 +2983,8 @@ then @code{/boot/kernel} is the same as @code{(hd1,1)/boot/kernel}. On ZFS filesystem the first path component must be @var{volume}@samp{@@}[@var{snapshot}]. @@ -548,7 +548,7 @@ index 15a90b26e4d..f28c4cd5247 100644 @samp{snap-129}. Trailing @samp{@@} after volume name is mandatory even if snapshot name is omitted. -@@ -3308,7 +3308,7 @@ The more recent release of Minix would then be identified as +@@ -3387,7 +3387,7 @@ The more recent release of Minix would then be identified as @samp{other>minix>minix-3.4.0}. This variable is often set by @samp{GRUB_DEFAULT} (@pxref{Simple @@ -557,7 +557,7 @@ index 15a90b26e4d..f28c4cd5247 100644 @node fallback -@@ -3398,7 +3398,7 @@ If this variable is set, it names the language code that the +@@ -3477,7 +3477,7 @@ If this variable is set, it names the language code that the example, French would be named as @samp{fr}, and Simplified Chinese as @samp{zh_CN}. @@ -566,7 +566,7 @@ index 15a90b26e4d..f28c4cd5247 100644 reasonable default for this variable based on the system locale. -@@ -3406,10 +3406,10 @@ reasonable default for this variable based on the system locale. +@@ -3485,10 +3485,10 @@ reasonable default for this variable based on the system locale. @subsection locale_dir If this variable is set, it names the directory where translation files may @@ -579,7 +579,7 @@ index 15a90b26e4d..f28c4cd5247 100644 default for this variable if internationalization is needed and any translation files are available. -@@ -3527,7 +3527,7 @@ input. The default is not to pause output. +@@ -3606,7 +3606,7 @@ input. The default is not to pause output. The location of the @samp{/boot/grub} directory as an absolute file name (@pxref{File name syntax}). This is normally set by GRUB at startup based @@ -588,7 +588,7 @@ index 15a90b26e4d..f28c4cd5247 100644 dynamically loaded from this directory, so it must be set correctly in order for many parts of GRUB to work. -@@ -3618,17 +3618,17 @@ GRUB provides an ``environment block'' which can be used to save a small +@@ -3697,17 +3697,17 @@ GRUB provides an ``environment block'' which can be used to save a small amount of state. The environment block is a preallocated 1024-byte file, which normally lives @@ -609,7 +609,7 @@ index 15a90b26e4d..f28c4cd5247 100644 @samp{GRUB_SAVEDEFAULT} (@pxref{Simple configuration}). -@@ -4317,7 +4317,7 @@ Translate @var{string} into the current language. +@@ -4396,7 +4396,7 @@ Translate @var{string} into the current language. The current language code is stored in the @samp{lang} variable in GRUB's environment (@pxref{lang}). Translation files in MO format are read from @@ -618,7 +618,7 @@ index 15a90b26e4d..f28c4cd5247 100644 @end deffn -@@ -4712,7 +4712,7 @@ Define a user named @var{user} with password @var{clear-password}. +@@ -4791,7 +4791,7 @@ Define a user named @var{user} with password @var{clear-password}. @deffn Command password_pbkdf2 user hashed-password Define a user named @var{user} with password hash @var{hashed-password}. @@ -627,7 +627,7 @@ index 15a90b26e4d..f28c4cd5247 100644 to generate password hashes. @xref{Security}. @end deffn -@@ -5535,8 +5535,8 @@ The @samp{password} (@pxref{password}) and @samp{password_pbkdf2} +@@ -5614,8 +5614,8 @@ The @samp{password} (@pxref{password}) and @samp{password_pbkdf2} which has an associated password. @samp{password} sets the password in plain text, requiring @file{grub.cfg} to be secure; @samp{password_pbkdf2} sets the password hashed using the Password-Based Key Derivation Function @@ -638,7 +638,7 @@ index 15a90b26e4d..f28c4cd5247 100644 In order to enable authentication support, the @samp{superusers} environment variable must be set to a list of usernames, separated by any of spaces, -@@ -5580,7 +5580,7 @@ menuentry "May be run by user1 or a superuser" --users user1 @{ +@@ -5659,7 +5659,7 @@ menuentry "May be run by user1 or a superuser" --users user1 @{ @end group @end example @@ -647,7 +647,7 @@ index 15a90b26e4d..f28c4cd5247 100644 generating configuration files with authentication. You can use @file{/etc/grub.d/40_custom} to add simple superuser authentication, by adding @kbd{set superusers=} and @kbd{password} or @kbd{password_pbkdf2} -@@ -5605,15 +5605,15 @@ verified with a public key currently trusted by GRUB +@@ -5684,15 +5684,15 @@ verified with a public key currently trusted by GRUB validation fails, then file @file{foo} cannot be opened. This failure may halt or otherwise impact the boot process. @@ -668,7 +668,7 @@ index 15a90b26e4d..f28c4cd5247 100644 GRUB uses GPG-style detached signatures (meaning that a file @file{foo.sig} will be produced when file @file{foo} is signed), and -@@ -5633,8 +5633,8 @@ gpg --detach-sign /path/to/file +@@ -5712,8 +5712,8 @@ gpg --detach-sign /path/to/file For successful validation of all of GRUB's subcomponents and the loaded OS kernel, they must all be signed. One way to accomplish this is the following (after having already produced the desired @@ -679,7 +679,7 @@ index 15a90b26e4d..f28c4cd5247 100644 @example @group -@@ -5656,7 +5656,7 @@ See also: @ref{check_signatures}, @ref{verify_detached}, @ref{trust}, +@@ -5735,7 +5735,7 @@ See also: @ref{check_signatures}, @ref{verify_detached}, @ref{trust}, Note that internally signature enforcement is controlled by setting the environment variable @code{check_signatures} equal to @code{enforce}. Passing one or more @code{--pubkey} options to @@ -688,7 +688,7 @@ index 15a90b26e4d..f28c4cd5247 100644 equal to @code{enforce} in @file{core.img} prior to processing any configuration files. -@@ -6013,10 +6013,10 @@ Required files are: +@@ -6092,10 +6092,10 @@ Required files are: GRUB's normal start-up procedure involves setting the @samp{prefix} environment variable to a value set in the core image by @@ -701,7 +701,7 @@ index 15a90b26e4d..f28c4cd5247 100644 things GRUB is supposed to do. If, instead, you only get a rescue shell, this usually means that GRUB -@@ -6042,8 +6042,8 @@ normal +@@ -6121,8 +6121,8 @@ normal However, any problem that leaves you in the rescue shell probably means that GRUB was not correctly installed. It may be more useful to try to reinstall @@ -712,7 +712,7 @@ index 15a90b26e4d..f28c4cd5247 100644 @itemize @bullet{} @item -@@ -6055,7 +6055,7 @@ is usually better to use UUIDs or file system labels and avoid depending on +@@ -6134,7 +6134,7 @@ is usually better to use UUIDs or file system labels and avoid depending on drive ordering entirely. @item @@ -721,7 +721,7 @@ index 15a90b26e4d..f28c4cd5247 100644 to a partition but GRUB has already been installed in the master boot record, then the GRUB installation in the partition will be ignored. -@@ -6075,21 +6075,21 @@ support has not yet been added to GRUB. +@@ -6154,21 +6154,21 @@ support has not yet been added to GRUB. @end itemize @@ -749,7 +749,7 @@ index 15a90b26e4d..f28c4cd5247 100644 @table @option @item --help -@@ -6105,13 +6105,13 @@ separate partition or a removable disk. +@@ -6184,13 +6184,13 @@ separate partition or a removable disk. If this option is not specified then it defaults to @file{/boot}, so @example @@ -765,7 +765,7 @@ index 15a90b26e4d..f28c4cd5247 100644 @end example Here is an example in which you have a separate @dfn{boot} partition which is -@@ -6119,16 +6119,16 @@ mounted on +@@ -6198,16 +6198,16 @@ mounted on @file{/mnt/boot}: @example @@ -785,7 +785,7 @@ index 15a90b26e4d..f28c4cd5247 100644 extra space in the bootloader embedding area for Reed-Solomon error-correcting codes. This enables GRUB to still boot successfully if some blocks are corrupted. The exact amount of protection offered -@@ -6141,17 +6141,17 @@ installation}) where GRUB does not reside in any unpartitioned space +@@ -6220,17 +6220,17 @@ installation}) where GRUB does not reside in any unpartitioned space outside of the MBR. Disable the Reed-Solomon codes with this option. @end table @@ -808,7 +808,7 @@ index 15a90b26e4d..f28c4cd5247 100644 @table @option @item --help -@@ -6167,17 +6167,17 @@ it to standard output. +@@ -6246,17 +6246,17 @@ it to standard output. @end table @@ -830,7 +830,7 @@ index 15a90b26e4d..f28c4cd5247 100644 @table @option @item -c @var{number} -@@ -6195,23 +6195,23 @@ Length of the salt. Defaults to 64. +@@ -6274,23 +6274,23 @@ Length of the salt. Defaults to 64. @end table @@ -860,7 +860,7 @@ index 15a90b26e4d..f28c4cd5247 100644 @table @option @item --help -@@ -6222,17 +6222,17 @@ Print the version number of GRUB and exit. +@@ -6301,17 +6301,17 @@ Print the version number of GRUB and exit. @end table @@ -882,7 +882,7 @@ index 15a90b26e4d..f28c4cd5247 100644 passed on directly to @command{xorriso} in @command{mkisofs} emulation mode. Options passed to @command{xorriso} will normally be interpreted as @command{mkisofs} options; if the option @samp{--} is used, then anything -@@ -6247,7 +6247,7 @@ mkdir -p disk/boot/grub +@@ -6326,7 +6326,7 @@ mkdir -p disk/boot/grub grub-mkrescue -o grub.iso disk @end example @@ -891,7 +891,7 @@ index 15a90b26e4d..f28c4cd5247 100644 @table @option @item --help -@@ -6275,15 +6275,15 @@ Use @var{file} as the @command{xorriso} program, rather than the built-in +@@ -6354,15 +6354,15 @@ Use @var{file} as the @command{xorriso} program, rather than the built-in default. @item --grub-mkimage=@var{file} @@ -911,7 +911,7 @@ index 15a90b26e4d..f28c4cd5247 100644 system or file system image that GRUB understands, using GRUB's file system drivers via FUSE. (It is only available if FUSE development files were present when GRUB was built.) This has a number of uses: -@@ -6315,13 +6315,13 @@ even if nobody has yet written a FUSE module specifically for that file +@@ -6394,13 +6394,13 @@ even if nobody has yet written a FUSE module specifically for that file system type. @end itemize @@ -927,7 +927,7 @@ index 15a90b26e4d..f28c4cd5247 100644 non-option arguments (if it is given more than one image, it will treat them as a RAID set), and also accepts the following options: -@@ -6343,13 +6343,13 @@ Show debugging output for conditions matching @var{string}. +@@ -6422,13 +6422,13 @@ Show debugging output for conditions matching @var{string}. @item -K prompt|@var{file} @itemx --zfs-key=prompt|@var{file} Load a ZFS encryption key. If you use @samp{prompt} as the argument, @@ -943,7 +943,7 @@ index 15a90b26e4d..f28c4cd5247 100644 root of the supplied file system. If @var{device} is just a number, then it will be treated as a partition -@@ -6367,10 +6367,10 @@ Print verbose messages. +@@ -6446,10 +6446,10 @@ Print verbose messages. @end table @@ -957,7 +957,7 @@ index 15a90b26e4d..f28c4cd5247 100644 or device. @example -@@ -6378,7 +6378,7 @@ grub-probe --target=fs /boot/grub +@@ -6457,7 +6457,7 @@ grub-probe --target=fs /boot/grub grub-probe --target=drive --device /dev/sda1 @end example @@ -966,7 +966,7 @@ index 15a90b26e4d..f28c4cd5247 100644 argument, and also accepts the following options: @table @option -@@ -6391,16 +6391,16 @@ Print the version number of GRUB and exit. +@@ -6470,16 +6470,16 @@ Print the version number of GRUB and exit. @item -d @itemx --device If this option is given, then the non-option argument is a system device @@ -986,7 +986,7 @@ index 15a90b26e4d..f28c4cd5247 100644 @item -t @var{target} @itemx --target=@var{target} -@@ -6453,19 +6453,19 @@ Print verbose messages. +@@ -6532,19 +6532,19 @@ Print verbose messages. @end table diff --git a/0087-Use-device-part-of-chainloader-target-if-present.patch b/0087-Use-device-part-of-chainloader-target-if-present.patch deleted file mode 100644 index 28efeb03..00000000 --- a/0087-Use-device-part-of-chainloader-target-if-present.patch +++ /dev/null @@ -1,34 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Raymund Will -Date: Fri, 10 Apr 2015 01:45:02 -0400 -Subject: [PATCH] Use device part of chainloader target, if present. - -Otherwise chainloading is restricted to '$root', which might not even -be readable by EFI! - -v1. use grub_file_get_device_name() to get device name - -Signed-off-by: Michael Chang -Signed-off-by: Peter Jones ---- - grub-core/loader/efi/chainloader.c | 7 +++++-- - 1 file changed, 5 insertions(+), 2 deletions(-) - -diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c -index adc85636633..14ce6ddd7ad 100644 ---- a/grub-core/loader/efi/chainloader.c -+++ b/grub-core/loader/efi/chainloader.c -@@ -223,8 +223,11 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), - if (! file) - goto fail; - -- /* Get the root device's device path. */ -- dev = grub_device_open (0); -+ /* Get the device path from filename. */ -+ char *devname = grub_file_get_device_name (filename); -+ dev = grub_device_open (devname); -+ if (devname) -+ grub_free (devname); - if (! dev) - goto fail; - diff --git a/0088-Add-secureboot-support-on-efi-chainloader.patch b/0088-Add-secureboot-support-on-efi-chainloader.patch deleted file mode 100644 index 538ff344..00000000 --- a/0088-Add-secureboot-support-on-efi-chainloader.patch +++ /dev/null @@ -1,797 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Tue, 6 Oct 2015 13:04:37 -0400 -Subject: [PATCH] Add secureboot support on efi chainloader - -Expand the chainloader to be able to verify the image by means of shim -lock protocol. The PE/COFF image is loaded and relocated by the -chainloader instead of calling LoadImage and StartImage UEFI boot -Service as they require positive verification result from keys enrolled -in KEK or DB. The shim will use MOK in addition to firmware enrolled -keys to verify the image. - -The chainloader module could be used to load other UEFI bootloaders, -such as xen.efi, and could be signed by any of MOK, KEK or DB. - -Based on https://build.opensuse.org/package/view_file/openSUSE:Factory/grub2/grub2-secureboot-chainloader.patch - -Signed-off-by: Peter Jones ---- - grub-core/loader/efi/chainloader.c | 612 ++++++++++++++++++++++++++++++++++--- - include/grub/efi/pe32.h | 20 +- - 2 files changed, 595 insertions(+), 37 deletions(-) - -diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c -index 14ce6ddd7ad..87a91e16f17 100644 ---- a/grub-core/loader/efi/chainloader.c -+++ b/grub-core/loader/efi/chainloader.c -@@ -32,6 +32,8 @@ - #include - #include - #include -+#include -+#include - #include - #include - #include -@@ -46,9 +48,14 @@ static grub_dl_t my_mod; - - static grub_efi_physical_address_t address; - static grub_efi_uintn_t pages; -+static grub_ssize_t fsize; - static grub_efi_device_path_t *file_path; - static grub_efi_handle_t image_handle; - static grub_efi_char16_t *cmdline; -+static grub_ssize_t cmdline_len; -+static grub_efi_handle_t dev_handle; -+ -+static grub_efi_status_t (*entry_point) (grub_efi_handle_t image_handle, grub_efi_system_table_t *system_table); - - static grub_err_t - grub_chainloader_unload (void) -@@ -63,6 +70,7 @@ grub_chainloader_unload (void) - grub_free (cmdline); - cmdline = 0; - file_path = 0; -+ dev_handle = 0; - - grub_dl_unref (my_mod); - return GRUB_ERR_NONE; -@@ -191,12 +199,523 @@ make_file_path (grub_efi_device_path_t *dp, const char *filename) - return file_path; - } - -+#define SHIM_LOCK_GUID \ -+ { 0x605dab50, 0xe046, 0x4300, { 0xab,0xb6,0x3d,0xd8,0x10,0xdd,0x8b,0x23 } } -+ -+typedef union -+{ -+ struct grub_pe32_header_32 pe32; -+ struct grub_pe32_header_64 pe32plus; -+} grub_pe_header_t; -+ -+struct pe_coff_loader_image_context -+{ -+ grub_efi_uint64_t image_address; -+ grub_efi_uint64_t image_size; -+ grub_efi_uint64_t entry_point; -+ grub_efi_uintn_t size_of_headers; -+ grub_efi_uint16_t image_type; -+ grub_efi_uint16_t number_of_sections; -+ grub_efi_uint32_t section_alignment; -+ struct grub_pe32_section_table *first_section; -+ struct grub_pe32_data_directory *reloc_dir; -+ struct grub_pe32_data_directory *sec_dir; -+ grub_efi_uint64_t number_of_rva_and_sizes; -+ grub_pe_header_t *pe_hdr; -+}; -+ -+typedef struct pe_coff_loader_image_context pe_coff_loader_image_context_t; -+ -+struct grub_efi_shim_lock -+{ -+ grub_efi_status_t (*verify)(void *buffer, -+ grub_efi_uint32_t size); -+ grub_efi_status_t (*hash)(void *data, -+ grub_efi_int32_t datasize, -+ pe_coff_loader_image_context_t *context, -+ grub_efi_uint8_t *sha256hash, -+ grub_efi_uint8_t *sha1hash); -+ grub_efi_status_t (*context)(void *data, -+ grub_efi_uint32_t size, -+ pe_coff_loader_image_context_t *context); -+}; -+ -+typedef struct grub_efi_shim_lock grub_efi_shim_lock_t; -+ -+static grub_efi_boolean_t -+read_header (void *data, grub_efi_uint32_t size, -+ pe_coff_loader_image_context_t *context) -+{ -+ grub_efi_guid_t guid = SHIM_LOCK_GUID; -+ grub_efi_shim_lock_t *shim_lock; -+ grub_efi_status_t status; -+ -+ shim_lock = grub_efi_locate_protocol (&guid, NULL); -+ -+ if (!shim_lock) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, "no shim lock protocol"); -+ return 0; -+ } -+ -+ status = shim_lock->context (data, size, context); -+ -+ if (status == GRUB_EFI_SUCCESS) -+ { -+ grub_dprintf ("chain", "context success\n"); -+ return 1; -+ } -+ -+ switch (status) -+ { -+ case GRUB_EFI_UNSUPPORTED: -+ grub_error (GRUB_ERR_BAD_ARGUMENT, "context error unsupported"); -+ break; -+ case GRUB_EFI_INVALID_PARAMETER: -+ grub_error (GRUB_ERR_BAD_ARGUMENT, "context error invalid parameter"); -+ break; -+ default: -+ grub_error (GRUB_ERR_BAD_ARGUMENT, "context error code"); -+ break; -+ } -+ -+ return 0; -+} -+ -+static void* -+image_address (void *image, grub_efi_uint64_t sz, grub_efi_uint64_t adr) -+{ -+ if (adr > sz) -+ return NULL; -+ -+ return ((grub_uint8_t*)image + adr); -+} -+ -+static int -+image_is_64_bit (grub_pe_header_t *pe_hdr) -+{ -+ /* .Magic is the same offset in all cases */ -+ if (pe_hdr->pe32plus.optional_header.magic == GRUB_PE32_PE64_MAGIC) -+ return 1; -+ return 0; -+} -+ -+static const grub_uint16_t machine_type = -+#if defined(__x86_64__) -+ GRUB_PE32_MACHINE_X86_64; -+#elif defined(__aarch64__) -+ GRUB_PE32_MACHINE_ARM64; -+#elif defined(__arm__) -+ GRUB_PE32_MACHINE_ARMTHUMB_MIXED; -+#elif defined(__i386__) || defined(__i486__) || defined(__i686__) -+ GRUB_PE32_MACHINE_I386; -+#elif defined(__ia64__) -+ GRUB_PE32_MACHINE_IA64; -+#else -+#error this architecture is not supported by grub2 -+#endif -+ -+static grub_efi_status_t -+relocate_coff (pe_coff_loader_image_context_t *context, -+ struct grub_pe32_section_table *section, -+ void *orig, void *data) -+{ -+ struct grub_pe32_data_directory *reloc_base, *reloc_base_end; -+ grub_efi_uint64_t adjust; -+ struct grub_pe32_fixup_block *reloc, *reloc_end; -+ char *fixup, *fixup_base, *fixup_data = NULL; -+ grub_efi_uint16_t *fixup_16; -+ grub_efi_uint32_t *fixup_32; -+ grub_efi_uint64_t *fixup_64; -+ grub_efi_uint64_t size = context->image_size; -+ void *image_end = (char *)orig + size; -+ int n = 0; -+ -+ if (image_is_64_bit (context->pe_hdr)) -+ context->pe_hdr->pe32plus.optional_header.image_base = -+ (grub_uint64_t)(unsigned long)data; -+ else -+ context->pe_hdr->pe32.optional_header.image_base = -+ (grub_uint32_t)(unsigned long)data; -+ -+ /* Alright, so here's how this works: -+ * -+ * context->reloc_dir gives us two things: -+ * - the VA the table of base relocation blocks are (maybe) to be -+ * mapped at (reloc_dir->rva) -+ * - the virtual size (reloc_dir->size) -+ * -+ * The .reloc section (section here) gives us some other things: -+ * - the name! kind of. (section->name) -+ * - the virtual size (section->virtual_size), which should be the same -+ * as RelocDir->Size -+ * - the virtual address (section->virtual_address) -+ * - the file section size (section->raw_data_size), which is -+ * a multiple of optional_header->file_alignment. Only useful for image -+ * validation, not really useful for iteration bounds. -+ * - the file address (section->raw_data_offset) -+ * - a bunch of stuff we don't use that's 0 in our binaries usually -+ * - Flags (section->characteristics) -+ * -+ * and then the thing that's actually at the file address is an array -+ * of struct grub_pe32_fixup_block structs with some values packed behind -+ * them. The block_size field of this structure includes the -+ * structure itself, and adding it to that structure's address will -+ * yield the next entry in the array. -+ */ -+ -+ reloc_base = image_address (orig, size, section->raw_data_offset); -+ reloc_base_end = image_address (orig, size, section->raw_data_offset -+ + section->virtual_size - 1); -+ -+ grub_dprintf ("chain", "reloc_base %p reloc_base_end %p\n", reloc_base, -+ reloc_base_end); -+ -+ if (!reloc_base && !reloc_base_end) -+ return GRUB_EFI_SUCCESS; -+ -+ if (!reloc_base || !reloc_base_end) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, "Reloc table overflows binary"); -+ return GRUB_EFI_UNSUPPORTED; -+ } -+ -+ adjust = (grub_uint64_t)data - context->image_address; -+ if (adjust == 0) -+ return GRUB_EFI_SUCCESS; -+ -+ while (reloc_base < reloc_base_end) -+ { -+ grub_uint16_t *entry; -+ reloc = (struct grub_pe32_fixup_block *)((char*)reloc_base); -+ -+ if ((reloc_base->size == 0) || -+ (reloc_base->size > context->reloc_dir->size)) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, -+ "Reloc %d block size %d is invalid\n", n, -+ reloc_base->size); -+ return GRUB_EFI_UNSUPPORTED; -+ } -+ -+ entry = &reloc->entries[0]; -+ reloc_end = (struct grub_pe32_fixup_block *) -+ ((char *)reloc_base + reloc_base->size); -+ -+ if ((void *)reloc_end < data || (void *)reloc_end > image_end) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, "Reloc entry %d overflows binary", -+ n); -+ return GRUB_EFI_UNSUPPORTED; -+ } -+ -+ fixup_base = image_address(data, size, reloc_base->rva); -+ -+ if (!fixup_base) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, "Reloc %d Invalid fixupbase", n); -+ return GRUB_EFI_UNSUPPORTED; -+ } -+ -+ while ((void *)entry < (void *)reloc_end) -+ { -+ fixup = fixup_base + (*entry & 0xFFF); -+ switch ((*entry) >> 12) -+ { -+ case GRUB_PE32_REL_BASED_ABSOLUTE: -+ break; -+ case GRUB_PE32_REL_BASED_HIGH: -+ fixup_16 = (grub_uint16_t *)fixup; -+ *fixup_16 = (grub_uint16_t) -+ (*fixup_16 + ((grub_uint16_t)((grub_uint32_t)adjust >> 16))); -+ if (fixup_data != NULL) -+ { -+ *(grub_uint16_t *) fixup_data = *fixup_16; -+ fixup_data = fixup_data + sizeof (grub_uint16_t); -+ } -+ break; -+ case GRUB_PE32_REL_BASED_LOW: -+ fixup_16 = (grub_uint16_t *)fixup; -+ *fixup_16 = (grub_uint16_t) (*fixup_16 + (grub_uint16_t)adjust); -+ if (fixup_data != NULL) -+ { -+ *(grub_uint16_t *) fixup_data = *fixup_16; -+ fixup_data = fixup_data + sizeof (grub_uint16_t); -+ } -+ break; -+ case GRUB_PE32_REL_BASED_HIGHLOW: -+ fixup_32 = (grub_uint32_t *)fixup; -+ *fixup_32 = *fixup_32 + (grub_uint32_t)adjust; -+ if (fixup_data != NULL) -+ { -+ fixup_data = (char *)ALIGN_UP ((grub_addr_t)fixup_data, sizeof (grub_uint32_t)); -+ *(grub_uint32_t *) fixup_data = *fixup_32; -+ fixup_data += sizeof (grub_uint32_t); -+ } -+ break; -+ case GRUB_PE32_REL_BASED_DIR64: -+ fixup_64 = (grub_uint64_t *)fixup; -+ *fixup_64 = *fixup_64 + (grub_uint64_t)adjust; -+ if (fixup_data != NULL) -+ { -+ fixup_data = (char *)ALIGN_UP ((grub_addr_t)fixup_data, sizeof (grub_uint64_t)); -+ *(grub_uint64_t *) fixup_data = *fixup_64; -+ fixup_data += sizeof (grub_uint64_t); -+ } -+ break; -+ default: -+ grub_error (GRUB_ERR_BAD_ARGUMENT, -+ "Reloc %d unknown relocation type %d", -+ n, (*entry) >> 12); -+ return GRUB_EFI_UNSUPPORTED; -+ } -+ entry += 1; -+ } -+ reloc_base = (struct grub_pe32_data_directory *)reloc_end; -+ n++; -+ } -+ -+ return GRUB_EFI_SUCCESS; -+} -+ -+static grub_efi_device_path_t * -+grub_efi_get_media_file_path (grub_efi_device_path_t *dp) -+{ -+ while (1) -+ { -+ grub_efi_uint8_t type = GRUB_EFI_DEVICE_PATH_TYPE (dp); -+ grub_efi_uint8_t subtype = GRUB_EFI_DEVICE_PATH_SUBTYPE (dp); -+ -+ if (type == GRUB_EFI_END_DEVICE_PATH_TYPE) -+ break; -+ else if (type == GRUB_EFI_MEDIA_DEVICE_PATH_TYPE -+ && subtype == GRUB_EFI_FILE_PATH_DEVICE_PATH_SUBTYPE) -+ return dp; -+ -+ dp = GRUB_EFI_NEXT_DEVICE_PATH (dp); -+ } -+ -+ return NULL; -+} -+ -+static grub_efi_boolean_t -+handle_image (void *data, grub_efi_uint32_t datasize) -+{ -+ grub_efi_boot_services_t *b; -+ grub_efi_loaded_image_t *li, li_bak; -+ grub_efi_status_t efi_status; -+ char *buffer = NULL; -+ char *buffer_aligned = NULL; -+ grub_efi_uint32_t i, size; -+ struct grub_pe32_section_table *section; -+ char *base, *end; -+ pe_coff_loader_image_context_t context; -+ grub_uint32_t section_alignment; -+ grub_uint32_t buffer_size; -+ -+ b = grub_efi_system_table->boot_services; -+ -+ if (read_header (data, datasize, &context)) -+ { -+ grub_dprintf ("chain", "Succeed to read header\n"); -+ } -+ else -+ { -+ grub_dprintf ("chain", "Failed to read header\n"); -+ goto error_exit; -+ } -+ -+ section_alignment = context.section_alignment; -+ buffer_size = context.image_size + section_alignment; -+ -+ efi_status = efi_call_3 (b->allocate_pool, GRUB_EFI_LOADER_DATA, -+ buffer_size, &buffer); -+ -+ if (efi_status != GRUB_EFI_SUCCESS) -+ { -+ grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("out of memory")); -+ goto error_exit; -+ } -+ -+ buffer_aligned = (char *)ALIGN_UP ((grub_addr_t)buffer, section_alignment); -+ -+ if (!buffer_aligned) -+ { -+ grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("out of memory")); -+ goto error_exit; -+ } -+ -+ grub_memcpy (buffer_aligned, data, context.size_of_headers); -+ -+ char *reloc_base, *reloc_base_end; -+ reloc_base = image_address (buffer_aligned, datasize, -+ context.reloc_dir->rva); -+ /* RelocBaseEnd here is the address of the last byte of the table */ -+ reloc_base_end = image_address (buffer_aligned, datasize, -+ context.reloc_dir->rva -+ + context.reloc_dir->size - 1); -+ struct grub_pe32_section_table *reloc_section = NULL; -+ -+ section = context.first_section; -+ for (i = 0; i < context.number_of_sections; i++, section++) -+ { -+ size = section->virtual_size; -+ if (size > section->raw_data_size) -+ size = section->raw_data_size; -+ -+ base = image_address (buffer_aligned, context.image_size, -+ section->virtual_address); -+ end = image_address (buffer_aligned, context.image_size, -+ section->virtual_address + size - 1); -+ -+ -+ /* We do want to process .reloc, but it's often marked -+ * discardable, so we don't want to memcpy it. */ -+ if (grub_memcmp (section->name, ".reloc\0\0", 8) == 0) -+ { -+ if (reloc_section) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, -+ "Image has multiple relocation sections"); -+ goto error_exit; -+ } -+ -+ /* If it has nonzero sizes, and our bounds check -+ * made sense, and the VA and size match RelocDir's -+ * versions, then we believe in this section table. */ -+ if (section->raw_data_size && section->virtual_size && -+ base && end && reloc_base == base && reloc_base_end == end) -+ { -+ reloc_section = section; -+ } -+ } -+ -+ if (section->characteristics && GRUB_PE32_SCN_MEM_DISCARDABLE) -+ continue; -+ -+ if (!base || !end) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, "Invalid section size"); -+ goto error_exit; -+ } -+ -+ if (section->virtual_address < context.size_of_headers || -+ section->raw_data_offset < context.size_of_headers) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, -+ "Section %d is inside image headers", i); -+ goto error_exit; -+ } -+ -+ if (section->raw_data_size > 0) -+ grub_memcpy (base, (grub_efi_uint8_t*)data + section->raw_data_offset, -+ size); -+ -+ if (size < section->virtual_size) -+ grub_memset (base + size, 0, section->virtual_size - size); -+ -+ grub_dprintf ("chain", "copied section %s\n", section->name); -+ } -+ -+ /* 5 == EFI_IMAGE_DIRECTORY_ENTRY_BASERELOC */ -+ if (context.number_of_rva_and_sizes <= 5) -+ { -+ grub_dprintf ("chain", "image has no relocation entry\n"); -+ goto error_exit; -+ } -+ -+ if (context.reloc_dir->size && reloc_section) -+ { -+ /* run the relocation fixups */ -+ efi_status = relocate_coff (&context, reloc_section, data, -+ buffer_aligned); -+ -+ if (efi_status != GRUB_EFI_SUCCESS) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, "relocation failed"); -+ goto error_exit; -+ } -+ } -+ -+ entry_point = image_address (buffer_aligned, context.image_size, -+ context.entry_point); -+ -+ if (!entry_point) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, "invalid entry point"); -+ goto error_exit; -+ } -+ -+ li = grub_efi_get_loaded_image (grub_efi_image_handle); -+ if (!li) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, "no loaded image available"); -+ goto error_exit; -+ } -+ -+ grub_memcpy (&li_bak, li, sizeof (grub_efi_loaded_image_t)); -+ li->image_base = buffer_aligned; -+ li->image_size = context.image_size; -+ li->load_options = cmdline; -+ li->load_options_size = cmdline_len; -+ li->file_path = grub_efi_get_media_file_path (file_path); -+ li->device_handle = dev_handle; -+ if (li->file_path) -+ { -+ grub_printf ("file path: "); -+ grub_efi_print_device_path (li->file_path); -+ } -+ else -+ { -+ grub_error (GRUB_ERR_UNKNOWN_DEVICE, "no matching file path found"); -+ goto error_exit; -+ } -+ -+ efi_status = efi_call_2 (entry_point, grub_efi_image_handle, -+ grub_efi_system_table); -+ -+ grub_memcpy (li, &li_bak, sizeof (grub_efi_loaded_image_t)); -+ efi_status = efi_call_1 (b->free_pool, buffer); -+ -+ return 1; -+ -+error_exit: -+ if (buffer) -+ efi_call_1 (b->free_pool, buffer); -+ -+ return 0; -+} -+ -+static grub_err_t -+grub_secureboot_chainloader_unload (void) -+{ -+ grub_efi_boot_services_t *b; -+ -+ b = grub_efi_system_table->boot_services; -+ efi_call_2 (b->free_pages, address, pages); -+ grub_free (file_path); -+ grub_free (cmdline); -+ cmdline = 0; -+ file_path = 0; -+ dev_handle = 0; -+ -+ grub_dl_unref (my_mod); -+ return GRUB_ERR_NONE; -+} -+ -+static grub_err_t -+grub_secureboot_chainloader_boot (void) -+{ -+ handle_image ((void *)address, fsize); -+ grub_loader_unset (); -+ return grub_errno; -+} -+ - static grub_err_t - grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), - int argc, char *argv[]) - { - grub_file_t file = 0; -- grub_ssize_t size; - grub_efi_status_t status; - grub_efi_boot_services_t *b; - grub_device_t dev = 0; -@@ -204,7 +723,6 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), - grub_efi_loaded_image_t *loaded_image; - char *filename; - void *boot_image = 0; -- grub_efi_handle_t dev_handle = 0; - - if (argc == 0) - return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("filename expected")); -@@ -216,9 +734,36 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), - address = 0; - image_handle = 0; - file_path = 0; -+ dev_handle = 0; - - b = grub_efi_system_table->boot_services; - -+ if (argc > 1) -+ { -+ int i; -+ grub_efi_char16_t *p16; -+ -+ for (i = 1, cmdline_len = 0; i < argc; i++) -+ cmdline_len += grub_strlen (argv[i]) + 1; -+ -+ cmdline_len *= sizeof (grub_efi_char16_t); -+ cmdline = p16 = grub_malloc (cmdline_len); -+ if (! cmdline) -+ goto fail; -+ -+ for (i = 1; i < argc; i++) -+ { -+ char *p8; -+ -+ p8 = argv[i]; -+ while (*p8) -+ *(p16++) = *(p8++); -+ -+ *(p16++) = ' '; -+ } -+ *(--p16) = 0; -+ } -+ - file = grub_file_open (filename); - if (! file) - goto fail; -@@ -267,14 +812,14 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), - grub_printf ("file path: "); - grub_efi_print_device_path (file_path); - -- size = grub_file_size (file); -- if (!size) -+ fsize = grub_file_size (file); -+ if (!fsize) - { - grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"), - filename); - goto fail; - } -- pages = (((grub_efi_uintn_t) size + ((1 << 12) - 1)) >> 12); -+ pages = (((grub_efi_uintn_t) fsize + ((1 << 12) - 1)) >> 12); - - status = efi_call_4 (b->allocate_pages, GRUB_EFI_ALLOCATE_ANY_PAGES, - GRUB_EFI_LOADER_CODE, -@@ -288,7 +833,7 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), - } - - boot_image = (void *) ((grub_addr_t) address); -- if (grub_file_read (file, boot_image, size) != size) -+ if (grub_file_read (file, boot_image, fsize) != fsize) - { - if (grub_errno == GRUB_ERR_NONE) - grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"), -@@ -298,7 +843,7 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), - } - - #if defined (__i386__) || defined (__x86_64__) -- if (size >= (grub_ssize_t) sizeof (struct grub_macho_fat_header)) -+ if (fsize >= (grub_ssize_t) sizeof (struct grub_macho_fat_header)) - { - struct grub_macho_fat_header *head = boot_image; - if (head->magic -@@ -307,6 +852,14 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), - grub_uint32_t i; - struct grub_macho_fat_arch *archs - = (struct grub_macho_fat_arch *) (head + 1); -+ -+ if (grub_efi_secure_boot()) -+ { -+ grub_error (GRUB_ERR_BAD_OS, -+ "MACHO binaries are forbidden with Secure Boot"); -+ goto fail; -+ } -+ - for (i = 0; i < grub_cpu_to_le32 (head->nfat_arch); i++) - { - if (GRUB_MACHO_CPUTYPE_IS_HOST_CURRENT (archs[i].cputype)) -@@ -321,21 +874,28 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), - > ~grub_cpu_to_le32 (archs[i].size) - || grub_cpu_to_le32 (archs[i].offset) - + grub_cpu_to_le32 (archs[i].size) -- > (grub_size_t) size) -+ > (grub_size_t) fsize) - { - grub_error (GRUB_ERR_BAD_OS, N_("premature end of file %s"), - filename); - goto fail; - } - boot_image = (char *) boot_image + grub_cpu_to_le32 (archs[i].offset); -- size = grub_cpu_to_le32 (archs[i].size); -+ fsize = grub_cpu_to_le32 (archs[i].size); - } - } - #endif - -+ if (grub_linuxefi_secure_validate((void *)address, fsize)) -+ { -+ grub_file_close (file); -+ grub_loader_set (grub_secureboot_chainloader_boot, -+ grub_secureboot_chainloader_unload, 0); -+ return 0; -+ } -+ - status = efi_call_6 (b->load_image, 0, grub_efi_image_handle, file_path, -- boot_image, size, -- &image_handle); -+ boot_image, fsize, &image_handle); - if (status != GRUB_EFI_SUCCESS) - { - if (status == GRUB_EFI_OUT_OF_RESOURCES) -@@ -357,33 +917,10 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), - } - loaded_image->device_handle = dev_handle; - -- if (argc > 1) -+ if (cmdline) - { -- int i, len; -- grub_efi_char16_t *p16; -- -- for (i = 1, len = 0; i < argc; i++) -- len += grub_strlen (argv[i]) + 1; -- -- len *= sizeof (grub_efi_char16_t); -- cmdline = p16 = grub_malloc (len); -- if (! cmdline) -- goto fail; -- -- for (i = 1; i < argc; i++) -- { -- char *p8; -- -- p8 = argv[i]; -- while (*p8) -- *(p16++) = *(p8++); -- -- *(p16++) = ' '; -- } -- *(--p16) = 0; -- - loaded_image->load_options = cmdline; -- loaded_image->load_options_size = len; -+ loaded_image->load_options_size = cmdline_len; - } - - grub_file_close (file); -@@ -405,6 +942,9 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), - if (address) - efi_call_2 (b->free_pages, address, pages); - -+ if (cmdline) -+ grub_free (cmdline); -+ - grub_dl_unref (my_mod); - - return grub_errno; -diff --git a/include/grub/efi/pe32.h b/include/grub/efi/pe32.h -index 7d44732d2c3..6e24dae2cb6 100644 ---- a/include/grub/efi/pe32.h -+++ b/include/grub/efi/pe32.h -@@ -214,7 +214,11 @@ struct grub_pe64_optional_header - struct grub_pe32_section_table - { - char name[8]; -- grub_uint32_t virtual_size; -+ union -+ { -+ grub_uint32_t physical_address; -+ grub_uint32_t virtual_size; -+ }; - grub_uint32_t virtual_address; - grub_uint32_t raw_data_size; - grub_uint32_t raw_data_offset; -@@ -265,6 +269,20 @@ struct grub_pe32_header - #endif - }; - -+struct grub_pe32_header_32 -+{ -+ char signature[GRUB_PE32_SIGNATURE_SIZE]; -+ struct grub_pe32_coff_header coff_header; -+ struct grub_pe32_optional_header optional_header; -+}; -+ -+struct grub_pe32_header_64 -+{ -+ char signature[GRUB_PE32_SIGNATURE_SIZE]; -+ struct grub_pe32_coff_header coff_header; -+ struct grub_pe64_optional_header optional_header; -+}; -+ - struct grub_pe32_fixup_block - { - grub_uint32_t page_rva; diff --git a/0108-print-more-debug-info-in-our-module-loader.patch b/0088-print-more-debug-info-in-our-module-loader.patch similarity index 93% rename from 0108-print-more-debug-info-in-our-module-loader.patch rename to 0088-print-more-debug-info-in-our-module-loader.patch index 9d54bcd9..bf2c42f9 100644 --- a/0108-print-more-debug-info-in-our-module-loader.patch +++ b/0088-print-more-debug-info-in-our-module-loader.patch @@ -9,10 +9,10 @@ Signed-off-by: Peter Jones 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c -index 684ca93f8f4..866fc20e162 100644 +index e339f264b3a..562d6887e0e 100644 --- a/grub-core/kern/efi/efi.c +++ b/grub-core/kern/efi/efi.c -@@ -304,13 +304,23 @@ grub_efi_modules_addr (void) +@@ -313,13 +313,23 @@ grub_efi_modules_addr (void) } if (i == coff_header->num_sections) diff --git a/0109-macos-just-build-chainloader-entries-don-t-try-any-x.patch b/0089-macos-just-build-chainloader-entries-don-t-try-any-x.patch similarity index 98% rename from 0109-macos-just-build-chainloader-entries-don-t-try-any-x.patch rename to 0089-macos-just-build-chainloader-entries-don-t-try-any-x.patch index 1038a93f..3a761c0c 100644 --- a/0109-macos-just-build-chainloader-entries-don-t-try-any-x.patch +++ b/0089-macos-just-build-chainloader-entries-don-t-try-any-x.patch @@ -20,7 +20,7 @@ Signed-off-by: Peter Jones 1 file changed, 18 insertions(+), 60 deletions(-) diff --git a/util/grub.d/30_os-prober.in b/util/grub.d/30_os-prober.in -index e40274fc0f4..d979de1982a 100644 +index 9b8f5968e2d..13a3a6bc752 100644 --- a/util/grub.d/30_os-prober.in +++ b/util/grub.d/30_os-prober.in @@ -42,68 +42,25 @@ if [ -z "${OSPROBED}" ] ; then @@ -104,7 +104,7 @@ index e40274fc0f4..d979de1982a 100644 } EOF } -@@ -307,11 +264,12 @@ EOF +@@ -284,11 +241,12 @@ EOF echo "$title_correction_code" ;; macosx) diff --git a/0110-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch b/0090-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch similarity index 99% rename from 0110-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch rename to 0090-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch index e0d877e3..eafb894f 100644 --- a/0110-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch +++ b/0090-grub2-btrfs-Add-ability-to-boot-from-subvolumes.patch @@ -24,7 +24,7 @@ Signed-off-by: Jeff Mahoney 2 files changed, 533 insertions(+), 20 deletions(-) diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c -index 4849c1ceb65..38facf3cb8b 100644 +index be195448dbe..51ed63d429b 100644 --- a/grub-core/fs/btrfs.c +++ b/grub-core/fs/btrfs.c @@ -29,6 +29,9 @@ diff --git a/0111-export-btrfs_subvol-and-btrfs_subvolid.patch b/0091-export-btrfs_subvol-and-btrfs_subvolid.patch similarity index 95% rename from 0111-export-btrfs_subvol-and-btrfs_subvolid.patch rename to 0091-export-btrfs_subvol-and-btrfs_subvolid.patch index ee955ad1..a0989e81 100644 --- a/0111-export-btrfs_subvol-and-btrfs_subvolid.patch +++ b/0091-export-btrfs_subvol-and-btrfs_subvolid.patch @@ -12,7 +12,7 @@ Signed-off-by: Michael Chang 1 file changed, 2 insertions(+) diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c -index 38facf3cb8b..3962961666e 100644 +index 51ed63d429b..88d727d161f 100644 --- a/grub-core/fs/btrfs.c +++ b/grub-core/fs/btrfs.c @@ -2273,6 +2273,8 @@ GRUB_MOD_INIT (btrfs) diff --git a/0112-grub2-btrfs-03-follow_default.patch b/0092-grub2-btrfs-03-follow_default.patch similarity index 99% rename from 0112-grub2-btrfs-03-follow_default.patch rename to 0092-grub2-btrfs-03-follow_default.patch index 2b6ea3eb..26e91f18 100644 --- a/0112-grub2-btrfs-03-follow_default.patch +++ b/0092-grub2-btrfs-03-follow_default.patch @@ -8,7 +8,7 @@ Subject: [PATCH] grub2-btrfs-03-follow_default 1 file changed, 76 insertions(+), 31 deletions(-) diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c -index 3962961666e..2c462584e91 100644 +index 88d727d161f..a47d297567f 100644 --- a/grub-core/fs/btrfs.c +++ b/grub-core/fs/btrfs.c @@ -920,6 +920,7 @@ grub_btrfs_mount (grub_device_t dev) diff --git a/0113-grub2-btrfs-04-grub2-install.patch b/0093-grub2-btrfs-04-grub2-install.patch similarity index 99% rename from 0113-grub2-btrfs-04-grub2-install.patch rename to 0093-grub2-btrfs-04-grub2-install.patch index 559845eb..af816164 100644 --- a/0113-grub2-btrfs-04-grub2-install.patch +++ b/0093-grub2-btrfs-04-grub2-install.patch @@ -94,7 +94,7 @@ index ebcdd8f5e22..f044a880a76 100644 sizeof ("GRUB_DISTRIBUTOR=") - 1) == 0) { diff --git a/util/grub-install.c b/util/grub-install.c -index 75e3e5ba6f0..036fe1822e0 100644 +index 78d0138cb0a..4375c161955 100644 --- a/util/grub-install.c +++ b/util/grub-install.c @@ -816,6 +816,8 @@ fill_core_services (const char *core_services) diff --git a/0114-grub2-btrfs-05-grub2-mkconfig.patch b/0094-grub2-btrfs-05-grub2-mkconfig.patch similarity index 94% rename from 0114-grub2-btrfs-05-grub2-mkconfig.patch rename to 0094-grub2-btrfs-05-grub2-mkconfig.patch index 4fc6e575..d7bfb4d8 100644 --- a/0114-grub2-btrfs-05-grub2-mkconfig.patch +++ b/0094-grub2-btrfs-05-grub2-mkconfig.patch @@ -12,10 +12,10 @@ Subject: [PATCH] grub2-btrfs-05-grub2-mkconfig 5 files changed, 37 insertions(+), 2 deletions(-) diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in -index e32de5ef361..3b0bfe40308 100644 +index 8218f3d477f..4248b9341ab 100644 --- a/util/grub-mkconfig.in +++ b/util/grub-mkconfig.in -@@ -239,7 +239,8 @@ export GRUB_DEFAULT \ +@@ -258,7 +258,8 @@ export GRUB_DEFAULT \ GRUB_BADRAM \ GRUB_OS_PROBER_SKIP_LIST \ GRUB_DISABLE_SUBMENU \ @@ -26,7 +26,7 @@ index e32de5ef361..3b0bfe40308 100644 if test "x${grub_cfg}" != "x"; then rm -f "${grub_cfg}.new" diff --git a/util/grub-mkconfig_lib.in b/util/grub-mkconfig_lib.in -index 9c410eae493..2fb4f4f8143 100644 +index 113a41f9409..b3aae534ddc 100644 --- a/util/grub-mkconfig_lib.in +++ b/util/grub-mkconfig_lib.in @@ -52,7 +52,11 @@ grub_warn () @@ -88,10 +88,10 @@ index 858b526c925..e2a53300126 100644 +EOF +fi diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index c9bf223f273..7e78ad33636 100644 +index 4e49ccdf742..d9a05937e46 100644 --- a/util/grub.d/10_linux.in +++ b/util/grub.d/10_linux.in -@@ -56,10 +56,14 @@ fi +@@ -66,10 +66,14 @@ fi case x"$GRUB_FS" in xbtrfs) @@ -107,10 +107,10 @@ index c9bf223f273..7e78ad33636 100644 xzfs) rpool=`${grub_probe} --device ${GRUB_DEVICE} --target=fs_label 2>/dev/null || true` diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in -index 54f1ec8a2fd..462f8e1f819 100644 +index 972a4b5a03d..bcdc3ceac02 100644 --- a/util/grub.d/20_linux_xen.in +++ b/util/grub.d/20_linux_xen.in -@@ -63,10 +63,14 @@ fi +@@ -73,10 +73,14 @@ fi case x"$GRUB_FS" in xbtrfs) diff --git a/0095-Re-work-some-intricacies-of-PE-loading.patch b/0095-Re-work-some-intricacies-of-PE-loading.patch deleted file mode 100644 index dc4cdd77..00000000 --- a/0095-Re-work-some-intricacies-of-PE-loading.patch +++ /dev/null @@ -1,350 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Thu, 9 Jun 2016 12:22:29 -0400 -Subject: [PATCH] Re-work some intricacies of PE loading. - -The PE spec is not a well written document, and awesomely every place -where there's an ambiguous way to read something, Windows' bootmgfw.efi -takes a different read than either of them. ---- - grub-core/loader/efi/chainloader.c | 156 +++++++++++++++++++++++++++++-------- - include/grub/efi/pe32.h | 32 +++++++- - 2 files changed, 152 insertions(+), 36 deletions(-) - -diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c -index aee8e6becf6..4b77a7d5adb 100644 ---- a/grub-core/loader/efi/chainloader.c -+++ b/grub-core/loader/efi/chainloader.c -@@ -301,7 +301,7 @@ image_is_64_bit (grub_pe_header_t *pe_hdr) - return 0; - } - --static const grub_uint16_t machine_type = -+static const grub_uint16_t machine_type __attribute__((__unused__)) = - #if defined(__x86_64__) - GRUB_PE32_MACHINE_X86_64; - #elif defined(__aarch64__) -@@ -367,10 +367,10 @@ relocate_coff (pe_coff_loader_image_context_t *context, - - reloc_base = image_address (orig, size, section->raw_data_offset); - reloc_base_end = image_address (orig, size, section->raw_data_offset -- + section->virtual_size - 1); -+ + section->virtual_size); - -- grub_dprintf ("chain", "reloc_base %p reloc_base_end %p\n", reloc_base, -- reloc_base_end); -+ grub_dprintf ("chain", "relocate_coff(): reloc_base %p reloc_base_end %p\n", -+ reloc_base, reloc_base_end); - - if (!reloc_base && !reloc_base_end) - return GRUB_EFI_SUCCESS; -@@ -507,12 +507,13 @@ handle_image (void *data, grub_efi_uint32_t datasize) - grub_efi_status_t efi_status; - char *buffer = NULL; - char *buffer_aligned = NULL; -- grub_efi_uint32_t i, size; -+ grub_efi_uint32_t i; - struct grub_pe32_section_table *section; - char *base, *end; - pe_coff_loader_image_context_t context; - grub_uint32_t section_alignment; - grub_uint32_t buffer_size; -+ int found_entry_point = 0; - - b = grub_efi_system_table->boot_services; - -@@ -526,8 +527,28 @@ handle_image (void *data, grub_efi_uint32_t datasize) - goto error_exit; - } - -+ /* -+ * The spec says, uselessly, of SectionAlignment: -+ * ===== -+ * The alignment (in bytes) of sections when they are loaded into -+ * memory. It must be greater than or equal to FileAlignment. The -+ * default is the page size for the architecture. -+ * ===== -+ * Which doesn't tell you whose responsibility it is to enforce the -+ * "default", or when. It implies that the value in the field must -+ * be > FileAlignment (also poorly defined), but it appears visual -+ * studio will happily write 512 for FileAlignment (its default) and -+ * 0 for SectionAlignment, intending to imply PAGE_SIZE. -+ * -+ * We only support one page size, so if it's zero, nerf it to 4096. -+ */ - section_alignment = context.section_alignment; -+ if (section_alignment == 0) -+ section_alignment = 4096; -+ - buffer_size = context.image_size + section_alignment; -+ grub_dprintf ("chain", "image size is %08lx, datasize is %08x\n", -+ context.image_size, datasize); - - efi_status = efi_call_3 (b->allocate_pool, GRUB_EFI_LOADER_DATA, - buffer_size, &buffer); -@@ -539,7 +560,6 @@ handle_image (void *data, grub_efi_uint32_t datasize) - } - - buffer_aligned = (char *)ALIGN_UP ((grub_addr_t)buffer, section_alignment); -- - if (!buffer_aligned) - { - grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("out of memory")); -@@ -548,27 +568,62 @@ handle_image (void *data, grub_efi_uint32_t datasize) - - grub_memcpy (buffer_aligned, data, context.size_of_headers); - -+ entry_point = image_address (buffer_aligned, context.image_size, -+ context.entry_point); -+ -+ grub_dprintf ("chain", "entry_point: %p\n", entry_point); -+ if (!entry_point) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, "invalid entry point"); -+ goto error_exit; -+ } -+ - char *reloc_base, *reloc_base_end; -- reloc_base = image_address (buffer_aligned, datasize, -+ grub_dprintf ("chain", "reloc_dir: %p reloc_size: 0x%08x\n", -+ (void *)(unsigned long long)context.reloc_dir->rva, -+ context.reloc_dir->size); -+ reloc_base = image_address (buffer_aligned, context.image_size, - context.reloc_dir->rva); - /* RelocBaseEnd here is the address of the last byte of the table */ -- reloc_base_end = image_address (buffer_aligned, datasize, -+ reloc_base_end = image_address (buffer_aligned, context.image_size, - context.reloc_dir->rva - + context.reloc_dir->size - 1); -+ grub_dprintf ("chain", "reloc_base: %p reloc_base_end: %p\n", -+ reloc_base, reloc_base_end); -+ - struct grub_pe32_section_table *reloc_section = NULL; - - section = context.first_section; - for (i = 0; i < context.number_of_sections; i++, section++) - { -- size = section->virtual_size; -- if (size > section->raw_data_size) -- size = section->raw_data_size; -+ char name[9]; - - base = image_address (buffer_aligned, context.image_size, - section->virtual_address); - end = image_address (buffer_aligned, context.image_size, -- section->virtual_address + size - 1); -+ section->virtual_address + section->virtual_size -1); - -+ grub_strncpy(name, section->name, 9); -+ name[8] = '\0'; -+ grub_dprintf ("chain", "Section %d \"%s\" at %p..%p\n", i, -+ name, base, end); -+ -+ if (end < base) -+ { -+ grub_dprintf ("chain", " base is %p but end is %p... bad.\n", -+ base, end); -+ grub_error (GRUB_ERR_BAD_ARGUMENT, -+ "Image has invalid negative size"); -+ goto error_exit; -+ } -+ -+ if (section->virtual_address <= context.entry_point && -+ (section->virtual_address + section->raw_data_size - 1) -+ > context.entry_point) -+ { -+ found_entry_point++; -+ grub_dprintf ("chain", " section contains entry point\n"); -+ } - - /* We do want to process .reloc, but it's often marked - * discardable, so we don't want to memcpy it. */ -@@ -587,21 +642,46 @@ handle_image (void *data, grub_efi_uint32_t datasize) - if (section->raw_data_size && section->virtual_size && - base && end && reloc_base == base && reloc_base_end == end) - { -+ grub_dprintf ("chain", " section is relocation section\n"); - reloc_section = section; - } -+ else -+ { -+ grub_dprintf ("chain", " section is not reloc section?\n"); -+ grub_dprintf ("chain", " rds: 0x%08x, vs: %08x\n", -+ section->raw_data_size, section->virtual_size); -+ grub_dprintf ("chain", " base: %p end: %p\n", base, end); -+ grub_dprintf ("chain", " reloc_base: %p reloc_base_end: %p\n", -+ reloc_base, reloc_base_end); -+ } - } - -- if (section->characteristics && GRUB_PE32_SCN_MEM_DISCARDABLE) -- continue; -+ grub_dprintf ("chain", " Section characteristics are %08x\n", -+ section->characteristics); -+ grub_dprintf ("chain", " Section virtual size: %08x\n", -+ section->virtual_size); -+ grub_dprintf ("chain", " Section raw_data size: %08x\n", -+ section->raw_data_size); -+ if (section->characteristics & GRUB_PE32_SCN_MEM_DISCARDABLE) -+ { -+ grub_dprintf ("chain", " Discarding section\n"); -+ continue; -+ } - - if (!base || !end) - { -+ grub_dprintf ("chain", " section is invalid\n"); - grub_error (GRUB_ERR_BAD_ARGUMENT, "Invalid section size"); - goto error_exit; - } - -- if (section->virtual_address < context.size_of_headers || -- section->raw_data_offset < context.size_of_headers) -+ if (section->characteristics & GRUB_PE32_SCN_CNT_UNINITIALIZED_DATA) -+ { -+ if (section->raw_data_size != 0) -+ grub_dprintf ("chain", " UNINITIALIZED_DATA section has data?\n"); -+ } -+ else if (section->virtual_address < context.size_of_headers || -+ section->raw_data_offset < context.size_of_headers) - { - grub_error (GRUB_ERR_BAD_ARGUMENT, - "Section %d is inside image headers", i); -@@ -609,13 +689,24 @@ handle_image (void *data, grub_efi_uint32_t datasize) - } - - if (section->raw_data_size > 0) -- grub_memcpy (base, (grub_efi_uint8_t*)data + section->raw_data_offset, -- size); -+ { -+ grub_dprintf ("chain", " copying 0x%08x bytes to %p\n", -+ section->raw_data_size, base); -+ grub_memcpy (base, -+ (grub_efi_uint8_t*)data + section->raw_data_offset, -+ section->raw_data_size); -+ } - -- if (size < section->virtual_size) -- grub_memset (base + size, 0, section->virtual_size - size); -+ if (section->raw_data_size < section->virtual_size) -+ { -+ grub_dprintf ("chain", " padding with 0x%08x bytes at %p\n", -+ section->virtual_size - section->raw_data_size, -+ base + section->raw_data_size); -+ grub_memset (base + section->raw_data_size, 0, -+ section->virtual_size - section->raw_data_size); -+ } - -- grub_dprintf ("chain", "copied section %s\n", section->name); -+ grub_dprintf ("chain", " finished section %s\n", name); - } - - /* 5 == EFI_IMAGE_DIRECTORY_ENTRY_BASERELOC */ -@@ -638,12 +729,15 @@ handle_image (void *data, grub_efi_uint32_t datasize) - } - } - -- entry_point = image_address (buffer_aligned, context.image_size, -- context.entry_point); -- -- if (!entry_point) -+ if (!found_entry_point) - { -- grub_error (GRUB_ERR_BAD_ARGUMENT, "invalid entry point"); -+ grub_error (GRUB_ERR_BAD_ARGUMENT, "entry point is not within sections"); -+ goto error_exit; -+ } -+ if (found_entry_point > 1) -+ { -+ grub_error (GRUB_ERR_BAD_ARGUMENT, "%d sections contain entry point", -+ found_entry_point); - goto error_exit; - } - -@@ -661,26 +755,24 @@ handle_image (void *data, grub_efi_uint32_t datasize) - li->load_options_size = cmdline_len; - li->file_path = grub_efi_get_media_file_path (file_path); - li->device_handle = dev_handle; -- if (li->file_path) -- { -- grub_printf ("file path: "); -- grub_efi_print_device_path (li->file_path); -- } -- else -+ if (!li->file_path) - { - grub_error (GRUB_ERR_UNKNOWN_DEVICE, "no matching file path found"); - goto error_exit; - } - -+ grub_dprintf ("chain", "booting via entry point\n"); - efi_status = efi_call_2 (entry_point, grub_efi_image_handle, - grub_efi_system_table); - -+ grub_dprintf ("chain", "entry_point returned %ld\n", efi_status); - grub_memcpy (li, &li_bak, sizeof (grub_efi_loaded_image_t)); - efi_status = efi_call_1 (b->free_pool, buffer); - - return 1; - - error_exit: -+ grub_dprintf ("chain", "error_exit: grub_errno: %d\n", grub_errno); - if (buffer) - efi_call_1 (b->free_pool, buffer); - -diff --git a/include/grub/efi/pe32.h b/include/grub/efi/pe32.h -index 6e24dae2cb6..c03cc599f63 100644 ---- a/include/grub/efi/pe32.h -+++ b/include/grub/efi/pe32.h -@@ -229,12 +229,18 @@ struct grub_pe32_section_table - grub_uint32_t characteristics; - }; - -+#define GRUB_PE32_SCN_TYPE_NO_PAD 0x00000008 - #define GRUB_PE32_SCN_CNT_CODE 0x00000020 - #define GRUB_PE32_SCN_CNT_INITIALIZED_DATA 0x00000040 --#define GRUB_PE32_SCN_MEM_DISCARDABLE 0x02000000 --#define GRUB_PE32_SCN_MEM_EXECUTE 0x20000000 --#define GRUB_PE32_SCN_MEM_READ 0x40000000 --#define GRUB_PE32_SCN_MEM_WRITE 0x80000000 -+#define GRUB_PE32_SCN_CNT_UNINITIALIZED_DATA 0x00000080 -+#define GRUB_PE32_SCN_LNK_OTHER 0x00000100 -+#define GRUB_PE32_SCN_LNK_INFO 0x00000200 -+#define GRUB_PE32_SCN_LNK_REMOVE 0x00000800 -+#define GRUB_PE32_SCN_LNK_COMDAT 0x00001000 -+#define GRUB_PE32_SCN_GPREL 0x00008000 -+#define GRUB_PE32_SCN_MEM_16BIT 0x00020000 -+#define GRUB_PE32_SCN_MEM_LOCKED 0x00040000 -+#define GRUB_PE32_SCN_MEM_PRELOAD 0x00080000 - - #define GRUB_PE32_SCN_ALIGN_1BYTES 0x00100000 - #define GRUB_PE32_SCN_ALIGN_2BYTES 0x00200000 -@@ -243,10 +249,28 @@ struct grub_pe32_section_table - #define GRUB_PE32_SCN_ALIGN_16BYTES 0x00500000 - #define GRUB_PE32_SCN_ALIGN_32BYTES 0x00600000 - #define GRUB_PE32_SCN_ALIGN_64BYTES 0x00700000 -+#define GRUB_PE32_SCN_ALIGN_128BYTES 0x00800000 -+#define GRUB_PE32_SCN_ALIGN_256BYTES 0x00900000 -+#define GRUB_PE32_SCN_ALIGN_512BYTES 0x00A00000 -+#define GRUB_PE32_SCN_ALIGN_1024BYTES 0x00B00000 -+#define GRUB_PE32_SCN_ALIGN_2048BYTES 0x00C00000 -+#define GRUB_PE32_SCN_ALIGN_4096BYTES 0x00D00000 -+#define GRUB_PE32_SCN_ALIGN_8192BYTES 0x00E00000 - - #define GRUB_PE32_SCN_ALIGN_SHIFT 20 - #define GRUB_PE32_SCN_ALIGN_MASK 7 - -+#define GRUB_PE32_SCN_LNK_NRELOC_OVFL 0x01000000 -+#define GRUB_PE32_SCN_MEM_DISCARDABLE 0x02000000 -+#define GRUB_PE32_SCN_MEM_NOT_CACHED 0x04000000 -+#define GRUB_PE32_SCN_MEM_NOT_PAGED 0x08000000 -+#define GRUB_PE32_SCN_MEM_SHARED 0x10000000 -+#define GRUB_PE32_SCN_MEM_EXECUTE 0x20000000 -+#define GRUB_PE32_SCN_MEM_READ 0x40000000 -+#define GRUB_PE32_SCN_MEM_WRITE 0x80000000 -+ -+ -+ - #define GRUB_PE32_SIGNATURE_SIZE 4 - - struct grub_pe32_header diff --git a/0115-grub2-btrfs-06-subvol-mount.patch b/0095-grub2-btrfs-06-subvol-mount.patch similarity index 99% rename from 0115-grub2-btrfs-06-subvol-mount.patch rename to 0095-grub2-btrfs-06-subvol-mount.patch index 06fb1932..493f1331 100644 --- a/0115-grub2-btrfs-06-subvol-mount.patch +++ b/0095-grub2-btrfs-06-subvol-mount.patch @@ -11,7 +11,7 @@ Subject: [PATCH] grub2-btrfs-06-subvol-mount 4 files changed, 392 insertions(+), 5 deletions(-) diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c -index 2c462584e91..d111147e836 100644 +index a47d297567f..2e36ac47e8a 100644 --- a/grub-core/fs/btrfs.c +++ b/grub-core/fs/btrfs.c @@ -32,6 +32,7 @@ @@ -460,10 +460,10 @@ index 5d50dd6f8dc..4c5a13022dc 100644 grub_make_system_path_relative_to_its_root_os (const char *path) { diff --git a/util/grub-install.c b/util/grub-install.c -index 036fe1822e0..cd84a72b97b 100644 +index 4375c161955..a0ad99729fd 100644 --- a/util/grub-install.c +++ b/util/grub-install.c -@@ -1534,6 +1534,55 @@ main (int argc, char *argv[]) +@@ -1535,6 +1535,55 @@ main (int argc, char *argv[]) prefix_drive = xasprintf ("(%s)", grub_drives[0]); } diff --git a/0116-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch b/0096-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch similarity index 100% rename from 0116-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch rename to 0096-No-more-Bootable-Snapshot-submenu-in-grub.cfg.patch diff --git a/0096-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch b/0096-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch deleted file mode 100644 index 12d6bb20..00000000 --- a/0096-Rework-even-more-of-efi-chainload-so-non-sb-cases-wo.patch +++ /dev/null @@ -1,412 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Fri, 10 Jun 2016 14:06:15 -0400 -Subject: [PATCH] Rework even more of efi chainload so non-sb cases work right. - -This ensures that if shim protocol is not loaded, or is loaded but shim -is disabled, we will fall back to a correct load method for the efi -chain loader. - -Here's what I tested with this version: - -results expected actual ------------------------------------------------------------- -sb + enabled + shim + fedora success success -sb + enabled + shim + win success success -sb + enabled + grub + fedora fail fail -sb + enabled + grub + win fail fail - -sb + mokdisabled + shim + fedora success success -sb + mokdisabled + shim + win success success -sb + mokdisabled + grub + fedora fail fail -sb + mokdisabled + grub + win fail fail - -sb disabled + shim + fedora success success* -sb disabled + shim + win success success* -sb disabled + grub + fedora success success -sb disabled + grub + win success success - -nosb + shim + fedora success success* -nosb + shim + win success success* -nosb + grub + fedora success success -nosb + grub + win success success - -* for some reason shim protocol is being installed in these cases, and I - can't see why, but I think it may be this firmware build returning an - erroneous value. But this effectively falls back to the mokdisabled - behavior, which works correctly, and the presence of the "grub" (i.e. - no shim) tests effectively tests the desired behavior here. - -Resolves: rhbz#1344512 - -Signed-off-by: Peter Jones ---- - grub-core/kern/efi/sb.c | 14 +++-- - grub-core/loader/arm64/linux.c | 4 +- - grub-core/loader/efi/chainloader.c | 124 ++++++++++++++++++++++--------------- - grub-core/loader/efi/linux.c | 13 ++-- - grub-core/loader/i386/efi/linux.c | 10 ++- - include/grub/efi/linux.h | 2 +- - 6 files changed, 103 insertions(+), 64 deletions(-) - -diff --git a/grub-core/kern/efi/sb.c b/grub-core/kern/efi/sb.c -index a41b6c5b851..d74778b0cac 100644 ---- a/grub-core/kern/efi/sb.c -+++ b/grub-core/kern/efi/sb.c -@@ -36,14 +36,20 @@ grub_efi_secure_boot (void) - grub_efi_boolean_t ret = 0; - - secure_boot = grub_efi_get_variable("SecureBoot", &efi_var_guid, &datasize); -- - if (datasize != 1 || !secure_boot) -- goto out; -+ { -+ grub_dprintf ("secureboot", "No SecureBoot variable\n"); -+ goto out; -+ } -+ grub_dprintf ("secureboot", "SecureBoot: %d\n", *secure_boot); - - setup_mode = grub_efi_get_variable("SetupMode", &efi_var_guid, &datasize); -- - if (datasize != 1 || !setup_mode) -- goto out; -+ { -+ grub_dprintf ("secureboot", "No SetupMode variable\n"); -+ goto out; -+ } -+ grub_dprintf ("secureboot", "SetupMode: %d\n", *setup_mode); - - if (*secure_boot && !*setup_mode) - ret = 1; -diff --git a/grub-core/loader/arm64/linux.c b/grub-core/loader/arm64/linux.c -index 33345d37534..ad39a301527 100644 ---- a/grub-core/loader/arm64/linux.c -+++ b/grub-core/loader/arm64/linux.c -@@ -247,6 +247,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - grub_file_t file = 0; - struct grub_arm64_linux_kernel_header lh; - struct grub_arm64_linux_pe_header *pe; -+ int rc; - - grub_dl_ref (my_mod); - -@@ -291,7 +292,8 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - - grub_dprintf ("linux", "kernel @ %p\n", kernel_addr); - -- if (!grub_linuxefi_secure_validate (kernel_addr, kernel_size)) -+ rc = grub_linuxefi_secure_validate (kernel_addr, kernel_size); -+ if (rc < 0) - { - grub_error (GRUB_ERR_INVALID_COMMAND, N_("%s has invalid signature"), argv[0]); - goto fail; -diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c -index 4b77a7d5adb..b977c7b5573 100644 ---- a/grub-core/loader/efi/chainloader.c -+++ b/grub-core/loader/efi/chainloader.c -@@ -182,7 +182,6 @@ make_file_path (grub_efi_device_path_t *dp, const char *filename) - /* Fill the file path for the directory. */ - d = (grub_efi_device_path_t *) ((char *) file_path - + ((char *) d - (char *) dp)); -- grub_efi_print_device_path (d); - copy_file_path ((grub_efi_file_path_device_path_t *) d, - dir_start, dir_end - dir_start); - -@@ -252,10 +251,9 @@ read_header (void *data, grub_efi_uint32_t size, - grub_efi_status_t status; - - shim_lock = grub_efi_locate_protocol (&guid, NULL); -- - if (!shim_lock) - { -- grub_error (GRUB_ERR_BAD_ARGUMENT, "no shim lock protocol"); -+ grub_dprintf ("chain", "no shim lock protocol"); - return 0; - } - -@@ -280,7 +278,7 @@ read_header (void *data, grub_efi_uint32_t size, - break; - } - -- return 0; -+ return -1; - } - - static void* -@@ -381,7 +379,7 @@ relocate_coff (pe_coff_loader_image_context_t *context, - return GRUB_EFI_UNSUPPORTED; - } - -- adjust = (grub_uint64_t)data - context->image_address; -+ adjust = (grub_uint64_t)(grub_efi_uintn_t)data - context->image_address; - if (adjust == 0) - return GRUB_EFI_SUCCESS; - -@@ -514,18 +512,25 @@ handle_image (void *data, grub_efi_uint32_t datasize) - grub_uint32_t section_alignment; - grub_uint32_t buffer_size; - int found_entry_point = 0; -+ int rc; - - b = grub_efi_system_table->boot_services; - -- if (read_header (data, datasize, &context)) -- { -- grub_dprintf ("chain", "Succeed to read header\n"); -- } -- else -+ rc = read_header (data, datasize, &context); -+ if (rc < 0) - { - grub_dprintf ("chain", "Failed to read header\n"); - goto error_exit; - } -+ else if (rc == 0) -+ { -+ grub_dprintf ("chain", "Secure Boot is not enabled\n"); -+ return 0; -+ } -+ else -+ { -+ grub_dprintf ("chain", "Header read without error\n"); -+ } - - /* - * The spec says, uselessly, of SectionAlignment: -@@ -547,7 +552,7 @@ handle_image (void *data, grub_efi_uint32_t datasize) - section_alignment = 4096; - - buffer_size = context.image_size + section_alignment; -- grub_dprintf ("chain", "image size is %08lx, datasize is %08x\n", -+ grub_dprintf ("chain", "image size is %08"PRIxGRUB_UINT64_T", datasize is %08x\n", - context.image_size, datasize); - - efi_status = efi_call_3 (b->allocate_pool, GRUB_EFI_LOADER_DATA, -@@ -580,7 +585,7 @@ handle_image (void *data, grub_efi_uint32_t datasize) - - char *reloc_base, *reloc_base_end; - grub_dprintf ("chain", "reloc_dir: %p reloc_size: 0x%08x\n", -- (void *)(unsigned long long)context.reloc_dir->rva, -+ (void *)(unsigned long)context.reloc_dir->rva, - context.reloc_dir->size); - reloc_base = image_address (buffer_aligned, context.image_size, - context.reloc_dir->rva); -@@ -796,10 +801,56 @@ grub_secureboot_chainloader_unload (void) - return GRUB_ERR_NONE; - } - -+static grub_err_t -+grub_load_and_start_image(void *boot_image) -+{ -+ grub_efi_boot_services_t *b; -+ grub_efi_status_t status; -+ grub_efi_loaded_image_t *loaded_image; -+ -+ b = grub_efi_system_table->boot_services; -+ -+ status = efi_call_6 (b->load_image, 0, grub_efi_image_handle, file_path, -+ boot_image, fsize, &image_handle); -+ if (status != GRUB_EFI_SUCCESS) -+ { -+ if (status == GRUB_EFI_OUT_OF_RESOURCES) -+ grub_error (GRUB_ERR_OUT_OF_MEMORY, "out of resources"); -+ else -+ grub_error (GRUB_ERR_BAD_OS, "cannot load image"); -+ return -1; -+ } -+ -+ /* LoadImage does not set a device handler when the image is -+ loaded from memory, so it is necessary to set it explicitly here. -+ This is a mess. */ -+ loaded_image = grub_efi_get_loaded_image (image_handle); -+ if (! loaded_image) -+ { -+ grub_error (GRUB_ERR_BAD_OS, "no loaded image available"); -+ return -1; -+ } -+ loaded_image->device_handle = dev_handle; -+ -+ if (cmdline) -+ { -+ loaded_image->load_options = cmdline; -+ loaded_image->load_options_size = cmdline_len; -+ } -+ -+ return 0; -+} -+ - static grub_err_t - grub_secureboot_chainloader_boot (void) - { -- handle_image ((void *)address, fsize); -+ int rc; -+ rc = handle_image ((void *)(unsigned long)address, fsize); -+ if (rc == 0) -+ { -+ grub_load_and_start_image((void *)(unsigned long)address); -+ } -+ - grub_loader_unset (); - return grub_errno; - } -@@ -813,9 +864,9 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), - grub_efi_boot_services_t *b; - grub_device_t dev = 0; - grub_efi_device_path_t *dp = 0; -- grub_efi_loaded_image_t *loaded_image; - char *filename; - void *boot_image = 0; -+ int rc; - - if (argc == 0) - return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("filename expected")); -@@ -902,9 +953,6 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), - if (! file_path) - goto fail; - -- grub_printf ("file path: "); -- grub_efi_print_device_path (file_path); -- - fsize = grub_file_size (file); - if (!fsize) - { -@@ -979,51 +1027,27 @@ grub_cmd_chainloader (grub_command_t cmd __attribute__ ((unused)), - } - #endif - -- if (grub_linuxefi_secure_validate((void *)address, fsize)) -+ rc = grub_linuxefi_secure_validate((void *)(unsigned long)address, fsize); -+ grub_dprintf ("chain", "linuxefi_secure_validate: %d\n", rc); -+ if (rc > 0) - { - grub_file_close (file); - grub_loader_set (grub_secureboot_chainloader_boot, - grub_secureboot_chainloader_unload, 0); - return 0; - } -- -- status = efi_call_6 (b->load_image, 0, grub_efi_image_handle, file_path, -- boot_image, fsize, &image_handle); -- if (status != GRUB_EFI_SUCCESS) -+ else if (rc == 0) - { -- if (status == GRUB_EFI_OUT_OF_RESOURCES) -- grub_error (GRUB_ERR_OUT_OF_MEMORY, "out of resources"); -- else -- grub_error (GRUB_ERR_BAD_OS, "cannot load image"); -- -- goto fail; -- } -+ grub_load_and_start_image(boot_image); -+ grub_file_close (file); -+ grub_loader_set (grub_chainloader_boot, grub_chainloader_unload, 0); - -- /* LoadImage does not set a device handler when the image is -- loaded from memory, so it is necessary to set it explicitly here. -- This is a mess. */ -- loaded_image = grub_efi_get_loaded_image (image_handle); -- if (! loaded_image) -- { -- grub_error (GRUB_ERR_BAD_OS, "no loaded image available"); -- goto fail; -- } -- loaded_image->device_handle = dev_handle; -- -- if (cmdline) -- { -- loaded_image->load_options = cmdline; -- loaded_image->load_options_size = cmdline_len; -+ return 0; - } - - grub_file_close (file); -- grub_device_close (dev); -- -- grub_loader_set (grub_chainloader_boot, grub_chainloader_unload, 0); -- return 0; -- -- fail: - -+fail: - if (dev) - grub_device_close (dev); - -diff --git a/grub-core/loader/efi/linux.c b/grub-core/loader/efi/linux.c -index aea378adf5c..8890bdf059a 100644 ---- a/grub-core/loader/efi/linux.c -+++ b/grub-core/loader/efi/linux.c -@@ -33,21 +33,24 @@ struct grub_efi_shim_lock - }; - typedef struct grub_efi_shim_lock grub_efi_shim_lock_t; - --grub_efi_boolean_t -+int - grub_linuxefi_secure_validate (void *data, grub_uint32_t size) - { - grub_efi_guid_t guid = SHIM_LOCK_GUID; - grub_efi_shim_lock_t *shim_lock; -+ grub_efi_status_t status; - - shim_lock = grub_efi_locate_protocol(&guid, NULL); -- -+ grub_dprintf ("secureboot", "shim_lock: %p\n", shim_lock); - if (!shim_lock) -- return 1; -+ return 0; - -- if (shim_lock->verify(data, size) == GRUB_EFI_SUCCESS) -+ status = shim_lock->verify(data, size); -+ grub_dprintf ("secureboot", "shim_lock->verify(): %ld\n", status); -+ if (status == GRUB_EFI_SUCCESS) - return 1; - -- return 0; -+ return -1; - } - - typedef void (*handover_func) (void *, grub_efi_system_table_t *, void *); -diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c -index 7ccf32d9d45..82f75b7f3ab 100644 ---- a/grub-core/loader/i386/efi/linux.c -+++ b/grub-core/loader/i386/efi/linux.c -@@ -155,6 +155,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - struct linux_kernel_header lh; - grub_ssize_t len, start, filelen; - void *kernel = NULL; -+ int rc; - - grub_dl_ref (my_mod); - -@@ -180,13 +181,16 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - - if (grub_file_read (file, kernel, filelen) != filelen) - { -- grub_error (GRUB_ERR_FILE_READ_ERROR, N_("Can't read kernel %s"), argv[0]); -+ grub_error (GRUB_ERR_FILE_READ_ERROR, N_("Can't read kernel %s"), -+ argv[0]); - goto fail; - } - -- if (! grub_linuxefi_secure_validate (kernel, filelen)) -+ rc = grub_linuxefi_secure_validate (kernel, filelen); -+ if (rc < 0) - { -- grub_error (GRUB_ERR_INVALID_COMMAND, N_("%s has invalid signature"), argv[0]); -+ grub_error (GRUB_ERR_INVALID_COMMAND, N_("%s has invalid signature"), -+ argv[0]); - grub_free (kernel); - goto fail; - } -diff --git a/include/grub/efi/linux.h b/include/grub/efi/linux.h -index d9ede36773b..0033d9305a9 100644 ---- a/include/grub/efi/linux.h -+++ b/include/grub/efi/linux.h -@@ -22,7 +22,7 @@ - #include - #include - --grub_efi_boolean_t -+int - EXPORT_FUNC(grub_linuxefi_secure_validate) (void *data, grub_uint32_t size); - grub_err_t - EXPORT_FUNC(grub_efi_linux_boot) (void *kernel_address, grub_off_t offset, diff --git a/0117-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch b/0097-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch similarity index 97% rename from 0117-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch rename to 0097-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch index 58429021..a4134460 100644 --- a/0117-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch +++ b/0097-Fallback-to-old-subvol-name-scheme-to-support-old-sn.patch @@ -10,7 +10,7 @@ Ref: bsc#953538 1 file changed, 31 insertions(+), 1 deletion(-) diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c -index d111147e836..a5c000805a7 100644 +index 2e36ac47e8a..4a31d39ee74 100644 --- a/grub-core/fs/btrfs.c +++ b/grub-core/fs/btrfs.c @@ -924,11 +924,41 @@ lookup_root_by_name(struct grub_btrfs_data *data, const char *path) diff --git a/0097-linuxefi-fix-double-free-on-verification-failure.patch b/0097-linuxefi-fix-double-free-on-verification-failure.patch deleted file mode 100644 index 7d1b3c8f..00000000 --- a/0097-linuxefi-fix-double-free-on-verification-failure.patch +++ /dev/null @@ -1,22 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Tue, 14 Jun 2016 09:50:25 -0400 -Subject: [PATCH] linuxefi: fix double free on verification failure. - -Signed-off-by: Peter Jones ---- - grub-core/loader/i386/efi/linux.c | 1 - - 1 file changed, 1 deletion(-) - -diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c -index 82f75b7f3ab..010bf982d80 100644 ---- a/grub-core/loader/i386/efi/linux.c -+++ b/grub-core/loader/i386/efi/linux.c -@@ -191,7 +191,6 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - { - grub_error (GRUB_ERR_INVALID_COMMAND, N_("%s has invalid signature"), - argv[0]); -- grub_free (kernel); - goto fail; - } - diff --git a/0118-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch b/0098-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch similarity index 99% rename from 0118-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch rename to 0098-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch index 22f0b749..0f4ce500 100644 --- a/0118-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch +++ b/0098-Grub-not-working-correctly-with-btrfs-snapshots-bsc-.patch @@ -8,7 +8,7 @@ Subject: [PATCH] Grub not working correctly with btrfs snapshots (bsc#1026511) 1 file changed, 238 insertions(+) diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c -index a5c000805a7..3cd9472197c 100644 +index 4a31d39ee74..7002ad81b7e 100644 --- a/grub-core/fs/btrfs.c +++ b/grub-core/fs/btrfs.c @@ -2446,6 +2446,238 @@ out: diff --git a/0098-fix-machine-type-test-in-30_os-prober.in.patch b/0098-fix-machine-type-test-in-30_os-prober.in.patch deleted file mode 100644 index 11d6f4b9..00000000 --- a/0098-fix-machine-type-test-in-30_os-prober.in.patch +++ /dev/null @@ -1,22 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Mon, 11 Jul 2016 13:36:45 -0400 -Subject: [PATCH] fix machine type test in 30_os-prober.in - -Signed-off-by: Peter Jones ---- - util/grub.d/30_os-prober.in | 1 + - 1 file changed, 1 insertion(+) - -diff --git a/util/grub.d/30_os-prober.in b/util/grub.d/30_os-prober.in -index dc98eace934..e40274fc0f4 100644 ---- a/util/grub.d/30_os-prober.in -+++ b/util/grub.d/30_os-prober.in -@@ -144,6 +144,7 @@ for OS in ${OSPROBED} ; do - sixteenbit="" - linuxefi="linux" - initrdefi="initrd" -+ machine=`uname -m` - case "$machine" in - i?86|x86_64) - sixteenbit="16" diff --git a/0119-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch b/0099-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch similarity index 92% rename from 0119-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch rename to 0099-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch index 5a4d8610..9a4a5c20 100644 --- a/0119-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch +++ b/0099-Add-grub_efi_allocate_pool-and-grub_efi_free_pool-wr.patch @@ -10,7 +10,7 @@ Signed-off-by: Peter Jones 1 file changed, 32 insertions(+), 4 deletions(-) diff --git a/include/grub/efi/efi.h b/include/grub/efi/efi.h -index 91e29ce66f1..68326d96f5a 100644 +index 39480b38674..09a18e56302 100644 --- a/include/grub/efi/efi.h +++ b/include/grub/efi/efi.h @@ -24,6 +24,10 @@ @@ -24,10 +24,10 @@ index 91e29ce66f1..68326d96f5a 100644 /* Functions. */ void *EXPORT_FUNC(grub_efi_locate_protocol) (grub_efi_guid_t *protocol, void *registration); -@@ -58,6 +62,33 @@ EXPORT_FUNC(grub_efi_get_memory_map) (grub_efi_uintn_t *memory_map_size, - grub_efi_uintn_t *map_key, +@@ -60,6 +64,33 @@ EXPORT_FUNC(grub_efi_get_memory_map) (grub_efi_uintn_t *memory_map_size, grub_efi_uintn_t *descriptor_size, grub_efi_uint32_t *descriptor_version); + void grub_efi_memory_fini (void); + +static inline grub_efi_status_t +__attribute__((__unused__)) @@ -58,7 +58,7 @@ index 91e29ce66f1..68326d96f5a 100644 grub_efi_loaded_image_t *EXPORT_FUNC(grub_efi_get_loaded_image) (grub_efi_handle_t image_handle); void EXPORT_FUNC(grub_efi_print_device_path) (grub_efi_device_path_t *dp); char *EXPORT_FUNC(grub_efi_get_filename) (grub_efi_device_path_t *dp); -@@ -103,10 +134,7 @@ void grub_efi_init (void); +@@ -109,10 +140,7 @@ void grub_efi_init (void); void grub_efi_fini (void); void grub_efi_set_prefix (void); diff --git a/0099-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch b/0099-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch deleted file mode 100644 index 27e078c5..00000000 --- a/0099-efi-chainloader-fix-wrong-sanity-check-in-relocate_c.patch +++ /dev/null @@ -1,35 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Laszlo Ersek -Date: Mon, 21 Nov 2016 15:34:00 +0100 -Subject: [PATCH] efi/chainloader: fix wrong sanity check in relocate_coff() - -In relocate_coff(), the relocation entries are parsed from the original -image (not the section-wise copied image). The original image is -pointed-to by the "orig" pointer. The current check - - (void *)reloc_end < data - -compares the addresses of independent memory allocations. "data" is a typo -here, it should be "orig". - -Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1347291 -Signed-off-by: Laszlo Ersek -Tested-by: Bogdan Costescu -Tested-by: Juan Orti ---- - grub-core/loader/efi/chainloader.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c -index b977c7b5573..d5ab21d09c3 100644 ---- a/grub-core/loader/efi/chainloader.c -+++ b/grub-core/loader/efi/chainloader.c -@@ -401,7 +401,7 @@ relocate_coff (pe_coff_loader_image_context_t *context, - reloc_end = (struct grub_pe32_fixup_block *) - ((char *)reloc_base + reloc_base->size); - -- if ((void *)reloc_end < data || (void *)reloc_end > image_end) -+ if ((void *)reloc_end < orig || (void *)reloc_end > image_end) - { - grub_error (GRUB_ERR_BAD_ARGUMENT, "Reloc entry %d overflows binary", - n); diff --git a/0120-Use-grub_efi_.-memory-helpers-where-reasonable.patch b/0100-Use-grub_efi_.-memory-helpers-where-reasonable.patch similarity index 98% rename from 0120-Use-grub_efi_.-memory-helpers-where-reasonable.patch rename to 0100-Use-grub_efi_.-memory-helpers-where-reasonable.patch index 415cf92b..0dc026f4 100644 --- a/0120-Use-grub_efi_.-memory-helpers-where-reasonable.patch +++ b/0100-Use-grub_efi_.-memory-helpers-where-reasonable.patch @@ -13,7 +13,7 @@ Signed-off-by: Peter Jones 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c -index 7826e794ad9..d2557b38dce 100644 +index 5cd9b6e08a8..106eb10a362 100644 --- a/grub-core/loader/efi/chainloader.c +++ b/grub-core/loader/efi/chainloader.c @@ -65,7 +65,7 @@ grub_chainloader_unload (void) diff --git a/0100-efi-chainloader-truncate-overlong-relocation-section.patch b/0100-efi-chainloader-truncate-overlong-relocation-section.patch deleted file mode 100644 index 6931f91b..00000000 --- a/0100-efi-chainloader-truncate-overlong-relocation-section.patch +++ /dev/null @@ -1,110 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Laszlo Ersek -Date: Wed, 23 Nov 2016 06:27:09 +0100 -Subject: [PATCH] efi/chainloader: truncate overlong relocation section - -The UEFI Windows 7 boot loader ("EFI/Microsoft/Boot/bootmgfw.efi", SHA1 -31b410e029bba87d2068c65a80b88882f9f8ea25) has inconsistent headers. - -Compare: - -> The Data Directory -> ... -> Entry 5 00000000000d9000 00000574 Base Relocation Directory [.reloc] - -Versus: - -> Sections: -> Idx Name Size VMA LMA File off ... -> ... -> 10 .reloc 00000e22 00000000100d9000 00000000100d9000 000a1800 ... - -That is, the size reported by the RelocDir entry (0x574) is smaller than -the virtual size of the .reloc section (0xe22). - -Quoting the grub2 debug log for the same: - -> chainloader.c:595: reloc_dir: 0xd9000 reloc_size: 0x00000574 -> chainloader.c:603: reloc_base: 0x7d208000 reloc_base_end: 0x7d208573 -> ... -> chainloader.c:620: Section 10 ".reloc" at 0x7d208000..0x7d208e21 -> chainloader.c:661: section is not reloc section? -> chainloader.c:663: rds: 0x00001000, vs: 00000e22 -> chainloader.c:664: base: 0x7d208000 end: 0x7d208e21 -> chainloader.c:666: reloc_base: 0x7d208000 reloc_base_end: 0x7d208573 -> chainloader.c:671: Section characteristics are 42000040 -> chainloader.c:673: Section virtual size: 00000e22 -> chainloader.c:675: Section raw_data size: 00001000 -> chainloader.c:678: Discarding section - -After hexdumping "bootmgfw.efi" and manually walking its relocation blocks -(yes, really), I determined that the (smaller) RelocDir value is correct. -The remaining area that extends up to the .reloc section size (== 0xe22 - -0x574 == 0x8ae bytes) exists as zero padding in the file. - -This zero padding shouldn't be passed to relocate_coff() for parsing. In -order to cope with it, split the handling of .reloc sections into the -following branches: - -- original case (equal size): original behavior (--> relocation - attempted), - -- overlong .reloc section (longer than reported by RelocDir): truncate the - section to the RelocDir size for the purposes of relocate_coff(), and - attempt relocation, - -- .reloc section is too short, or other checks fail: original behavior - (--> relocation not attempted). - -Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1347291 -Signed-off-by: Laszlo Ersek ---- - grub-core/loader/efi/chainloader.c | 26 +++++++++++++++++++++----- - 1 file changed, 21 insertions(+), 5 deletions(-) - -diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c -index d5ab21d09c3..7826e794ad9 100644 ---- a/grub-core/loader/efi/chainloader.c -+++ b/grub-core/loader/efi/chainloader.c -@@ -596,7 +596,7 @@ handle_image (void *data, grub_efi_uint32_t datasize) - grub_dprintf ("chain", "reloc_base: %p reloc_base_end: %p\n", - reloc_base, reloc_base_end); - -- struct grub_pe32_section_table *reloc_section = NULL; -+ struct grub_pe32_section_table *reloc_section = NULL, fake_reloc_section; - - section = context.first_section; - for (i = 0; i < context.number_of_sections; i++, section++) -@@ -645,12 +645,28 @@ handle_image (void *data, grub_efi_uint32_t datasize) - * made sense, and the VA and size match RelocDir's - * versions, then we believe in this section table. */ - if (section->raw_data_size && section->virtual_size && -- base && end && reloc_base == base && reloc_base_end == end) -+ base && end && reloc_base == base) - { -- grub_dprintf ("chain", " section is relocation section\n"); -- reloc_section = section; -+ if (reloc_base_end == end) -+ { -+ grub_dprintf ("chain", " section is relocation section\n"); -+ reloc_section = section; -+ } -+ else if (reloc_base_end && reloc_base_end < end) -+ { -+ /* Bogus virtual size in the reloc section -- RelocDir -+ * reported a smaller Base Relocation Directory. Decrease -+ * the section's virtual size so that it equal RelocDir's -+ * idea, but only for the purposes of relocate_coff(). */ -+ grub_dprintf ("chain", -+ " section is (overlong) relocation section\n"); -+ grub_memcpy (&fake_reloc_section, section, sizeof *section); -+ fake_reloc_section.virtual_size -= (end - reloc_base_end); -+ reloc_section = &fake_reloc_section; -+ } - } -- else -+ -+ if (!reloc_section) - { - grub_dprintf ("chain", " section is not reloc section?\n"); - grub_dprintf ("chain", " rds: 0x%08x, vs: %08x\n", diff --git a/0121-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch b/0101-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch similarity index 97% rename from 0121-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch rename to 0101-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch index 9bb46657..c7259543 100644 --- a/0121-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch +++ b/0101-Add-PRIxGRUB_EFI_STATUS-and-use-it.patch @@ -12,7 +12,7 @@ Signed-off-by: Peter Jones 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/grub-core/loader/efi/chainloader.c b/grub-core/loader/efi/chainloader.c -index d2557b38dce..2c62faa2943 100644 +index 106eb10a362..3630b0cbf2d 100644 --- a/grub-core/loader/efi/chainloader.c +++ b/grub-core/loader/efi/chainloader.c @@ -783,7 +783,8 @@ handle_image (void *data, grub_efi_uint32_t datasize) diff --git a/0101-linuxefi-minor-cleanups.patch b/0101-linuxefi-minor-cleanups.patch deleted file mode 100644 index 057c7465..00000000 --- a/0101-linuxefi-minor-cleanups.patch +++ /dev/null @@ -1,86 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Tue, 14 Feb 2017 16:31:52 -0500 -Subject: [PATCH] linuxefi: minor cleanups - -Signed-off-by: Peter Jones ---- - grub-core/loader/i386/efi/linux.c | 30 ++++++++++++++++++++---------- - 1 file changed, 20 insertions(+), 10 deletions(-) - -diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c -index 010bf982d80..8b5a817b9d1 100644 ---- a/grub-core/loader/i386/efi/linux.c -+++ b/grub-core/loader/i386/efi/linux.c -@@ -61,13 +61,18 @@ grub_linuxefi_unload (void) - grub_dl_unref (my_mod); - loaded = 0; - if (initrd_mem) -- grub_efi_free_pages((grub_efi_physical_address_t)initrd_mem, BYTES_TO_PAGES(params->ramdisk_size)); -+ grub_efi_free_pages ((grub_efi_physical_address_t)(grub_addr_t)initrd_mem, -+ BYTES_TO_PAGES(params->ramdisk_size)); - if (linux_cmdline) -- grub_efi_free_pages((grub_efi_physical_address_t)linux_cmdline, BYTES_TO_PAGES(params->cmdline_size + 1)); -+ grub_efi_free_pages ((grub_efi_physical_address_t)(grub_addr_t) -+ linux_cmdline, -+ BYTES_TO_PAGES(params->cmdline_size + 1)); - if (kernel_mem) -- grub_efi_free_pages((grub_efi_physical_address_t)kernel_mem, BYTES_TO_PAGES(kernel_size)); -+ grub_efi_free_pages ((grub_efi_physical_address_t)(grub_addr_t)kernel_mem, -+ BYTES_TO_PAGES(kernel_size)); - if (params) -- grub_efi_free_pages((grub_efi_physical_address_t)params, BYTES_TO_PAGES(16384)); -+ grub_efi_free_pages ((grub_efi_physical_address_t)(grub_addr_t)params, -+ BYTES_TO_PAGES(16384)); - return GRUB_ERR_NONE; - } - -@@ -115,7 +120,7 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), - } - - params->ramdisk_size = size; -- params->ramdisk_image = (grub_uint32_t)(grub_uint64_t) initrd_mem; -+ params->ramdisk_image = (grub_uint32_t)(grub_addr_t) initrd_mem; - - ptr = initrd_mem; - -@@ -142,7 +147,8 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), - grub_free (files); - - if (initrd_mem && grub_errno) -- grub_efi_free_pages((grub_efi_physical_address_t)initrd_mem, BYTES_TO_PAGES(size)); -+ grub_efi_free_pages ((grub_efi_physical_address_t)(grub_addr_t)initrd_mem, -+ BYTES_TO_PAGES(size)); - - return grub_errno; - } -@@ -244,7 +250,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - linux_cmdline + sizeof (LINUX_IMAGE) - 1, - lh.cmdline_size - (sizeof (LINUX_IMAGE) - 1)); - -- lh.cmd_line_ptr = (grub_uint32_t)(grub_uint64_t)linux_cmdline; -+ lh.cmd_line_ptr = (grub_uint32_t)(grub_addr_t)linux_cmdline; - - handover_offset = lh.handover_offset; - -@@ -288,13 +294,17 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - } - - if (linux_cmdline && !loaded) -- grub_efi_free_pages((grub_efi_physical_address_t)linux_cmdline, BYTES_TO_PAGES(lh.cmdline_size + 1)); -+ grub_efi_free_pages ((grub_efi_physical_address_t)(grub_addr_t) -+ linux_cmdline, -+ BYTES_TO_PAGES(lh.cmdline_size + 1)); - - if (kernel_mem && !loaded) -- grub_efi_free_pages((grub_efi_physical_address_t)kernel_mem, BYTES_TO_PAGES(kernel_size)); -+ grub_efi_free_pages ((grub_efi_physical_address_t)(grub_addr_t)kernel_mem, -+ BYTES_TO_PAGES(kernel_size)); - - if (params && !loaded) -- grub_efi_free_pages((grub_efi_physical_address_t)params, BYTES_TO_PAGES(16384)); -+ grub_efi_free_pages ((grub_efi_physical_address_t)(grub_addr_t)params, -+ BYTES_TO_PAGES(16384)); - - return grub_errno; - } diff --git a/0122-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch b/0102-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch similarity index 100% rename from 0122-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch rename to 0102-Don-t-use-dynamic-sized-arrays-since-we-don-t-build-.patch diff --git a/0103-Fix-up-linux-params-usage.patch b/0103-Fix-up-linux-params-usage.patch deleted file mode 100644 index 6862aea8..00000000 --- a/0103-Fix-up-linux-params-usage.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Tue, 30 May 2017 14:16:07 -0400 -Subject: [PATCH] Fix up linux params usage... - -Signed-off-by: Peter Jones ---- - grub-core/loader/i386/linux.c | 5 ++++- - 1 file changed, 4 insertions(+), 1 deletion(-) - -diff --git a/grub-core/loader/i386/linux.c b/grub-core/loader/i386/linux.c -index e4b8342f5d0..c9e89310bdd 100644 ---- a/grub-core/loader/i386/linux.c -+++ b/grub-core/loader/i386/linux.c -@@ -680,6 +680,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - { - grub_file_t file = 0; - struct linux_kernel_header lh; -+ grub_uint8_t *linux_params_ptr; - grub_uint8_t setup_sects; - grub_size_t real_size, prot_size, prot_file_size, kernel_offset; - grub_ssize_t len; -@@ -811,6 +812,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - preferred_address)) - goto fail; - -+ - grub_memset (&linux_params, 0, sizeof (linux_params)); - grub_memcpy (&linux_params.setup_sects, &lh.setup_sects, sizeof (lh) - 0x1F1); - -@@ -820,7 +822,8 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - - len = sizeof (linux_params) - sizeof (lh); - -- grub_memcpy (&linux_params + sizeof (lh), kernel + kernel_offset, len); -+ linux_params_ptr = (void *)&linux_params; -+ grub_memcpy (linux_params_ptr + sizeof (lh), kernel + kernel_offset, len); - kernel_offset += len; - - linux_params.type_of_loader = GRUB_LINUX_BOOT_LOADER_TYPE; diff --git a/0123-don-t-ignore-const.patch b/0103-don-t-ignore-const.patch similarity index 100% rename from 0123-don-t-ignore-const.patch rename to 0103-don-t-ignore-const.patch diff --git a/0124-don-t-use-int-for-efi-status.patch b/0104-don-t-use-int-for-efi-status.patch similarity index 82% rename from 0124-don-t-use-int-for-efi-status.patch rename to 0104-don-t-use-int-for-efi-status.patch index 59fc27e1..6328df96 100644 --- a/0124-don-t-use-int-for-efi-status.patch +++ b/0104-don-t-use-int-for-efi-status.patch @@ -8,10 +8,10 @@ Subject: [PATCH] don't use int for efi status 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c -index 866fc20e162..91f75fdb89a 100644 +index 562d6887e0e..bcae7f4699d 100644 --- a/grub-core/kern/efi/efi.c +++ b/grub-core/kern/efi/efi.c -@@ -157,7 +157,7 @@ grub_efi_get_loaded_image (grub_efi_handle_t image_handle) +@@ -166,7 +166,7 @@ grub_reboot (void) void grub_exit (int retval) { diff --git a/0125-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch b/0105-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch similarity index 100% rename from 0125-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch rename to 0105-make-GRUB_MOD_INIT-declare-its-function-prototypes.patch diff --git a/0106-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch b/0106-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch deleted file mode 100644 index 3e3b406c..00000000 --- a/0106-Add-some-grub_dprintf-in-the-secure-boot-verify-code.patch +++ /dev/null @@ -1,40 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Mon, 9 May 2016 14:15:17 -0400 -Subject: [PATCH] Add some grub_dprintf() in the secure boot verify code. - -Signed-off-by: Peter Jones ---- - grub-core/loader/efi/linux.c | 16 +++++++++++++--- - 1 file changed, 13 insertions(+), 3 deletions(-) - -diff --git a/grub-core/loader/efi/linux.c b/grub-core/loader/efi/linux.c -index 2a7024134da..7fe7201a388 100644 ---- a/grub-core/loader/efi/linux.c -+++ b/grub-core/loader/efi/linux.c -@@ -43,12 +43,22 @@ grub_linuxefi_secure_validate (void *data, grub_uint32_t size) - shim_lock = grub_efi_locate_protocol(&guid, NULL); - grub_dprintf ("secureboot", "shim_lock: %p\n", shim_lock); - if (!shim_lock) -- return 0; -+ { -+ grub_dprintf ("secureboot", "shim not available\n"); -+ return 0; -+ } - -- status = shim_lock->verify(data, size); -+ grub_dprintf ("secureboot", "Asking shim to verify kernel signature\n"); -+ status = shim_lock->verify (data, size); - grub_dprintf ("secureboot", "shim_lock->verify(): %ld\n", status); - if (status == GRUB_EFI_SUCCESS) -- return 1; -+ { -+ grub_dprintf ("secureboot", "Kernel signature verification passed\n"); -+ return 1; -+ } -+ -+ grub_dprintf ("secureboot", "Kernel signature verification failed (0x%lx)\n", -+ (unsigned long) status); - - return -1; - } diff --git a/0127-editenv-handle-relative-symlinks.patch b/0106-editenv-handle-relative-symlinks.patch similarity index 100% rename from 0127-editenv-handle-relative-symlinks.patch rename to 0106-editenv-handle-relative-symlinks.patch diff --git a/0128-Make-libgrub.pp-depend-on-config-util.h.patch b/0107-Make-libgrub.pp-depend-on-config-util.h.patch similarity index 100% rename from 0128-Make-libgrub.pp-depend-on-config-util.h.patch rename to 0107-Make-libgrub.pp-depend-on-config-util.h.patch diff --git a/0129-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch b/0108-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch similarity index 96% rename from 0129-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch rename to 0108-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch index 800dcbc9..51f54589 100644 --- a/0129-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch +++ b/0108-Don-t-guess-boot-efi-as-HFS-on-ppc-machines-in-grub-.patch @@ -16,7 +16,7 @@ Signed-off-by: Peter Jones 1 file changed, 1 insertion(+), 11 deletions(-) diff --git a/util/grub-install.c b/util/grub-install.c -index cd84a72b97b..48f2abc3ea5 100644 +index a0ad99729fd..16f137ca854 100644 --- a/util/grub-install.c +++ b/util/grub-install.c @@ -1159,18 +1159,8 @@ main (int argc, char *argv[]) diff --git a/0132-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch b/0109-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch similarity index 91% rename from 0132-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch rename to 0109-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch index 9a97af20..c26a3d56 100644 --- a/0132-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch +++ b/0109-20_linux_xen-load-xen-or-multiboot-2-modules-as-need.patch @@ -9,10 +9,10 @@ Signed-off-by: Peter Jones 1 file changed, 3 insertions(+) diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in -index fae1ffe9494..fc53bd54231 100644 +index bcdc3ceac02..2bc03fd36b9 100644 --- a/util/grub.d/20_linux_xen.in +++ b/util/grub.d/20_linux_xen.in -@@ -126,6 +126,8 @@ linux_entry () +@@ -136,6 +136,8 @@ linux_entry () else xen_rm_opts="no-real-mode edd=off" fi @@ -21,7 +21,7 @@ index fae1ffe9494..fc53bd54231 100644 ${xen_loader} ${rel_xen_dirname}/${xen_basename} placeholder ${xen_args} \${xen_rm_opts} echo '$(echo "$lmessage" | grub_quote)' ${module_loader} ${rel_dirname}/${basename} placeholder root=${linux_root_device_thisversion} ro ${args} -@@ -135,6 +137,7 @@ EOF +@@ -145,6 +147,7 @@ EOF message="$(gettext_printf "Loading initial ramdisk ...")" sed "s/^/$submenu_indentation/" << EOF echo '$(echo "$message" | grub_quote)' diff --git a/0134-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch b/0110-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch similarity index 100% rename from 0134-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch rename to 0110-Make-pmtimer-tsc-calibration-not-take-51-seconds-to-.patch diff --git a/0135-align-struct-efi_variable-better.patch b/0111-align-struct-efi_variable-better.patch similarity index 96% rename from 0135-align-struct-efi_variable-better.patch rename to 0111-align-struct-efi_variable-better.patch index 8b637621..65bc91b8 100644 --- a/0135-align-struct-efi_variable-better.patch +++ b/0111-align-struct-efi_variable-better.patch @@ -9,7 +9,7 @@ Subject: [PATCH] align struct efi_variable better... 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/include/grub/efiemu/runtime.h b/include/grub/efiemu/runtime.h -index 9b6b729f4cc..856774a7c34 100644 +index 36d2dedf47e..9d93ba88bac 100644 --- a/include/grub/efiemu/runtime.h +++ b/include/grub/efiemu/runtime.h @@ -33,5 +33,5 @@ struct efi_variable diff --git a/0136-Add-quicksort-implementation.patch b/0112-Add-quicksort-implementation.patch similarity index 99% rename from 0136-Add-quicksort-implementation.patch rename to 0112-Add-quicksort-implementation.patch index 9e320b46..06fe5636 100644 --- a/0136-Add-quicksort-implementation.patch +++ b/0112-Add-quicksort-implementation.patch @@ -297,10 +297,10 @@ index 00000000000..7f3fc9ffdae + return NULL; +} diff --git a/include/grub/misc.h b/include/grub/misc.h -index 4737da1eaa9..3d55bafd64e 100644 +index fcaf1201e39..cbfae75a1b4 100644 --- a/include/grub/misc.h +++ b/include/grub/misc.h -@@ -506,4 +506,19 @@ void EXPORT_FUNC(grub_real_boot_time) (const char *file, +@@ -507,4 +507,19 @@ void EXPORT_FUNC(grub_real_boot_time) (const char *file, #define grub_max(a, b) (((a) > (b)) ? (a) : (b)) #define grub_min(a, b) (((a) < (b)) ? (a) : (b)) diff --git a/0137-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch b/0113-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch similarity index 97% rename from 0137-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch rename to 0113-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch index b164e9ce..63b0529c 100644 --- a/0137-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch +++ b/0113-Add-blscfg-command-support-to-parse-BootLoaderSpec-c.patch @@ -12,15 +12,15 @@ GRUB2 already has a blscfg modle that can parse the config snippets using the bls_import command, change it to blscfg and improve the BLS support. --- grub-core/Makefile.core.def | 4 +- - grub-core/commands/blscfg.c | 788 ++++++++++++++++++++++++++++++++++++++++--- + grub-core/commands/blscfg.c | 796 ++++++++++++++++++++++++++++++++++++++++--- grub-core/commands/loadenv.c | 77 +---- grub-core/commands/loadenv.h | 93 +++++ include/grub/compiler.h | 2 + - 5 files changed, 832 insertions(+), 132 deletions(-) + 5 files changed, 840 insertions(+), 132 deletions(-) create mode 100644 grub-core/commands/loadenv.h diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 3a5d450f3d0..0ca0bdad412 100644 +index 27563743ba9..96ccb402125 100644 --- a/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def @@ -129,6 +129,7 @@ kernel = { @@ -31,7 +31,7 @@ index 3a5d450f3d0..0ca0bdad412 100644 noemu = kern/compiler-rt.c; noemu = kern/mm.c; -@@ -775,8 +776,7 @@ module = { +@@ -774,8 +775,7 @@ module = { module = { name = blscfg; common = commands/blscfg.c; @@ -42,7 +42,7 @@ index 3a5d450f3d0..0ca0bdad412 100644 }; diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c -index 4274aca5a9d..9ab45631465 100644 +index 4274aca5a9d..86796c8cd83 100644 --- a/grub-core/commands/blscfg.c +++ b/grub-core/commands/blscfg.c @@ -30,32 +30,405 @@ @@ -920,7 +920,11 @@ index 4274aca5a9d..9ab45631465 100644 finish: if (dev) -@@ -187,8 +864,9 @@ static grub_extcmd_t cmd; +@@ -184,18 +861,27 @@ finish: + } + + static grub_extcmd_t cmd; ++static grub_extcmd_t oldcmd; GRUB_MOD_INIT(bls) { @@ -932,6 +936,20 @@ index 4274aca5a9d..9ab45631465 100644 0, NULL, N_("Import Boot Loader Specification snippets."), + NULL); ++ oldcmd = grub_register_extcmd ("bls_import", ++ grub_cmd_blscfg, ++ 0, ++ NULL, ++ N_("Import Boot Loader Specification snippets."), ++ NULL); + } + + GRUB_MOD_FINI(bls) + { + grub_unregister_extcmd (cmd); ++ grub_unregister_extcmd (oldcmd); + } diff --git a/grub-core/commands/loadenv.c b/grub-core/commands/loadenv.c index acd93d123ed..91c99456091 100644 --- a/grub-core/commands/loadenv.c diff --git a/0138-Add-BLS-support-to-grub-mkconfig.patch b/0114-Add-BLS-support-to-grub-mkconfig.patch similarity index 89% rename from 0138-Add-BLS-support-to-grub-mkconfig.patch rename to 0114-Add-BLS-support-to-grub-mkconfig.patch index 0eb61a35..75698fdf 100644 --- a/0138-Add-BLS-support-to-grub-mkconfig.patch +++ b/0114-Add-BLS-support-to-grub-mkconfig.patch @@ -14,10 +14,10 @@ files are parsed by blscfg command and the entries created dynamically. 3 files changed, 56 insertions(+), 13 deletions(-) diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in -index 3b0bfe40308..760fe08727f 100644 +index 4248b9341ab..c20171919d9 100644 --- a/util/grub-mkconfig.in +++ b/util/grub-mkconfig.in -@@ -240,7 +240,8 @@ export GRUB_DEFAULT \ +@@ -259,7 +259,8 @@ export GRUB_DEFAULT \ GRUB_OS_PROBER_SKIP_LIST \ GRUB_DISABLE_SUBMENU \ GRUB_DEFAULT_DTB \ @@ -28,7 +28,7 @@ index 3b0bfe40308..760fe08727f 100644 if test "x${grub_cfg}" != "x"; then rm -f "${grub_cfg}.new" diff --git a/util/grub-mkconfig_lib.in b/util/grub-mkconfig_lib.in -index 2fb4f4f8143..70dc8d57e92 100644 +index b3aae534ddc..1acc1d01c39 100644 --- a/util/grub-mkconfig_lib.in +++ b/util/grub-mkconfig_lib.in @@ -30,6 +30,9 @@ fi @@ -104,10 +104,10 @@ index 2fb4f4f8143..70dc8d57e92 100644 fi IFS="$old_ifs" diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index 7e78ad33636..f5daefb9d24 100644 +index d9a05937e46..839f1fdb655 100644 --- a/util/grub.d/10_linux.in +++ b/util/grub.d/10_linux.in -@@ -126,6 +126,34 @@ linux_entry () +@@ -121,6 +121,34 @@ linux_entry () if [ -z "$boot_device_id" ]; then boot_device_id="$(grub_get_device_id "${GRUB_DEVICE}")" fi @@ -142,7 +142,7 @@ index 7e78ad33636..f5daefb9d24 100644 if [ x$type != xsimple ] ; then title=$(mktitle "$type" "$version") if [ x"$title" = x"$GRUB_ACTUAL_DEFAULT" ] || [ x"Previous Linux versions>$title" = x"$GRUB_ACTUAL_DEFAULT" ]; then -@@ -236,7 +264,10 @@ submenu_indentation="" +@@ -223,7 +251,10 @@ submenu_indentation="" is_top_level=true while [ "x$list" != "x" ] ; do linux=`version_find_latest $list` @@ -154,14 +154,14 @@ index 7e78ad33636..f5daefb9d24 100644 basename=`basename $linux` dirname=`dirname $linux` rel_dirname=`make_system_path_relative_to_its_root $dirname` -@@ -281,7 +312,9 @@ while [ "x$list" != "x" ] ; do +@@ -262,7 +293,9 @@ while [ "x$list" != "x" ] ; do + for i in ${initrd}; do + initrd_display="${initrd_display} ${dirname}/${i}" + done +- gettext_printf "Found initrd image: %s\n" "$(echo $initrd_display)" >&2 ++ if [ "x${GRUB_ENABLE_BLSCFG}" != "xtrue" ]; then ++ gettext_printf "Found initrd image: %s\n" "$(echo $initrd_display)" >&2 ++ fi fi - if test -n "${initrd}" ; then -- gettext_printf "Found initrd image: %s\n" "${dirname}/${initrd}" >&2 -+ if [ "x${GRUB_ENABLE_BLSCFG}" != "xtrue" ]; then -+ gettext_printf "Found initrd image: %s\n" "${dirname}/${initrd}" >&2 -+ fi - elif test -z "${initramfs}" ; then - # "UUID=" and "ZFS=" magic is parsed by initrd or initramfs. Since there's - # no initrd or builtin initramfs, it can't work here. + fdt= diff --git a/0139-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch b/0115-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch similarity index 100% rename from 0139-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch rename to 0115-Remove-duplicated-grub_exit-definition-for-grub-emu-.patch diff --git a/0140-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch b/0116-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch similarity index 100% rename from 0140-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch rename to 0116-Don-t-attempt-to-backtrace-on-grub_abort-for-grub-em.patch diff --git a/0141-Enable-blscfg-command-for-the-emu-platform.patch b/0117-Enable-blscfg-command-for-the-emu-platform.patch similarity index 94% rename from 0141-Enable-blscfg-command-for-the-emu-platform.patch rename to 0117-Enable-blscfg-command-for-the-emu-platform.patch index 7d6c59d6..5a2f7b74 100644 --- a/0141-Enable-blscfg-command-for-the-emu-platform.patch +++ b/0117-Enable-blscfg-command-for-the-emu-platform.patch @@ -14,10 +14,10 @@ Signed-off-by: Javier Martinez Canillas 2 files changed, 37 insertions(+), 10 deletions(-) diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 0ca0bdad412..420cbf0a024 100644 +index 96ccb402125..e52d776887a 100644 --- a/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def -@@ -778,6 +778,7 @@ module = { +@@ -777,6 +777,7 @@ module = { common = commands/blscfg.c; enable = efi; enable = i386_pc; @@ -26,7 +26,7 @@ index 0ca0bdad412..420cbf0a024 100644 module = { diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c -index 9ab45631465..e5617c3bc6c 100644 +index 86796c8cd83..e0b65534af4 100644 --- a/grub-core/commands/blscfg.c +++ b/grub-core/commands/blscfg.c @@ -37,7 +37,12 @@ GRUB_MOD_LICENSE ("GPLv3+"); @@ -144,21 +144,21 @@ index 9ab45631465..e5617c3bc6c 100644 grub_dprintf ("blscfg", "scanning %s\n", GRUB_BLS_CONFIG_PATH); r = fs->dir (dev, "/", find_entry, &info); #endif -@@ -862,7 +888,7 @@ finish: - +@@ -863,7 +889,7 @@ finish: static grub_extcmd_t cmd; + static grub_extcmd_t oldcmd; -GRUB_MOD_INIT(bls) +GRUB_MOD_INIT(blscfg) { grub_dprintf("blscfg", "%s got here\n", __func__); cmd = grub_register_extcmd ("blscfg", -@@ -873,7 +899,7 @@ GRUB_MOD_INIT(bls) - NULL); +@@ -880,7 +906,7 @@ GRUB_MOD_INIT(bls) + NULL); } -GRUB_MOD_FINI(bls) +GRUB_MOD_FINI(blscfg) { grub_unregister_extcmd (cmd); - } + grub_unregister_extcmd (oldcmd); diff --git a/0142-Add-linux-and-initrd-commands-for-grub-emu.patch b/0118-Add-linux-and-initrd-commands-for-grub-emu.patch similarity index 95% rename from 0142-Add-linux-and-initrd-commands-for-grub-emu.patch rename to 0118-Add-linux-and-initrd-commands-for-grub-emu.patch index 40d00a81..d2368f3c 100644 --- a/0142-Add-linux-and-initrd-commands-for-grub-emu.patch +++ b/0118-Add-linux-and-initrd-commands-for-grub-emu.patch @@ -6,7 +6,7 @@ Subject: [PATCH] Add linux and initrd commands for grub-emu When using grub-emu, the linux and initrd commands are used as arguments to the kexec command line tool, to allow booting the selected menu entry. --- - grub-core/Makefile.core.def | 2 +- + grub-core/Makefile.core.def | 1 - grub-core/kern/emu/main.c | 4 + grub-core/kern/emu/misc.c | 18 ++++- grub-core/loader/emu/linux.c | 172 +++++++++++++++++++++++++++++++++++++++++++ @@ -14,25 +14,21 @@ to the kexec command line tool, to allow booting the selected menu entry. include/grub/emu/hostfile.h | 3 +- include/grub/emu/misc.h | 3 + grub-core/Makefile.am | 1 + - 8 files changed, 203 insertions(+), 4 deletions(-) + 8 files changed, 202 insertions(+), 4 deletions(-) create mode 100644 grub-core/loader/emu/linux.c diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 420cbf0a024..533e1408f74 100644 +index e52d776887a..067b97a4221 100644 --- a/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def -@@ -1715,10 +1715,10 @@ module = { - arm = loader/arm/linux.c; - arm64 = loader/arm64/linux.c; - arm64 = loader/efi/linux.c; -+ emu = loader/emu/linux.c; - fdt = lib/fdt.c; +@@ -1710,7 +1710,6 @@ module = { + common = loader/linux.c; common = lib/cmdline.c; - enable = noemu; - }; - module = { + efi = loader/efi/linux.c; + }; diff --git a/grub-core/kern/emu/main.c b/grub-core/kern/emu/main.c index 55ea5a11ccd..846fe9715ec 100644 --- a/grub-core/kern/emu/main.c @@ -338,10 +334,10 @@ index df6085bcb7c..a653132e36a 100644 #ifdef HAVE_DEVICE_MAPPER diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am -index f7b4d29b0b3..75e8715e631 100644 +index 9c69aa88626..0108c0d4233 100644 --- a/grub-core/Makefile.am +++ b/grub-core/Makefile.am -@@ -275,6 +275,7 @@ KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/emu/net.h +@@ -274,6 +274,7 @@ KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/emu/net.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/emu/hostdisk.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/emu/hostfile.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/extcmd.h diff --git a/0143-Fix-the-efidir-in-grub-setpassword.patch b/0119-Fix-the-efidir-in-grub-setpassword.patch similarity index 100% rename from 0143-Fix-the-efidir-in-grub-setpassword.patch rename to 0119-Fix-the-efidir-in-grub-setpassword.patch diff --git a/0144-Add-grub2-switch-to-blscfg.patch b/0120-Add-grub2-switch-to-blscfg.patch similarity index 98% rename from 0144-Add-grub2-switch-to-blscfg.patch rename to 0120-Add-grub2-switch-to-blscfg.patch index 62890d42..17984a26 100644 --- a/0144-Add-grub2-switch-to-blscfg.patch +++ b/0120-Add-grub2-switch-to-blscfg.patch @@ -14,10 +14,10 @@ Signed-off-by: Peter Jones create mode 100644 util/grub-switch-to-blscfg.in diff --git a/Makefile.util.def b/Makefile.util.def -index 38cdf4ccc09..fe392c24351 100644 +index 879e8eb98a4..f4fbd250630 100644 --- a/Makefile.util.def +++ b/Makefile.util.def -@@ -1341,6 +1341,13 @@ program = { +@@ -1348,6 +1348,13 @@ program = { ldadd = '$(LIBINTL) $(LIBDEVMAPPER) $(LIBZFS) $(LIBNVPAIR) $(LIBGEOM)'; }; @@ -32,10 +32,10 @@ index 38cdf4ccc09..fe392c24351 100644 name = grub-glue-efi; mansection = 1; diff --git a/.gitignore b/.gitignore -index 9f258735aaa..4a945596fea 100644 +index 54795fa60be..42475592123 100644 --- a/.gitignore +++ b/.gitignore -@@ -117,6 +117,8 @@ grub-*.tar.* +@@ -121,6 +121,8 @@ grub-*.tar.* /grub*-sparc64-setup.8 /grub*-syslinux2cfg /grub*-syslinux2cfg.1 diff --git a/0145-Add-grub_debug_enabled.patch b/0121-Add-grub_debug_enabled.patch similarity index 97% rename from 0145-Add-grub_debug_enabled.patch rename to 0121-Add-grub_debug_enabled.patch index 634eb6f4..d8e4bde9 100644 --- a/0145-Add-grub_debug_enabled.patch +++ b/0121-Add-grub_debug_enabled.patch @@ -47,7 +47,7 @@ index 636f97e1ba1..e758ab3416d 100644 grub_printf ("%s:%d: ", file, line); va_start (args, fmt); diff --git a/include/grub/misc.h b/include/grub/misc.h -index 3d55bafd64e..493e328d968 100644 +index cbfae75a1b4..f7473c154f0 100644 --- a/include/grub/misc.h +++ b/include/grub/misc.h @@ -367,6 +367,7 @@ grub_puts (const char *s) diff --git a/0146-make-better-backtraces.patch b/0122-make-better-backtraces.patch similarity index 95% rename from 0146-make-better-backtraces.patch rename to 0122-make-better-backtraces.patch index d238ce04..e017c775 100644 --- a/0146-make-better-backtraces.patch +++ b/0122-make-better-backtraces.patch @@ -5,13 +5,14 @@ Subject: [PATCH] make better backtraces Signed-off-by: Peter Jones --- + Makefile.util.def | 6 ++ grub-core/Makefile.core.def | 15 ++-- grub-core/{lib => commands}/backtrace.c | 2 +- grub-core/gdb/cstub.c | 1 - - grub-core/kern/arm64/backtrace.c | 94 +++++++++++++++++++++++++ - grub-core/kern/backtrace.c | 95 +++++++++++++++++++++++++ + grub-core/kern/arm64/backtrace.c | 94 ++++++++++++++++++++++++ + grub-core/kern/backtrace.c | 97 +++++++++++++++++++++++++ grub-core/kern/dl.c | 45 ++++++++++++ - grub-core/kern/i386/backtrace.c | 121 ++++++++++++++++++++++++++++++++ + grub-core/kern/i386/backtrace.c | 125 ++++++++++++++++++++++++++++++++ grub-core/kern/i386/pc/init.c | 4 +- grub-core/kern/ieee1275/init.c | 1 - grub-core/kern/misc.c | 13 ++-- @@ -28,7 +29,7 @@ Signed-off-by: Peter Jones grub-core/kern/ia64/efi/startup.S | 3 +- grub-core/kern/sparc64/ieee1275/crt0.S | 3 +- grub-core/Makefile.am | 1 + - 23 files changed, 402 insertions(+), 166 deletions(-) + 24 files changed, 414 insertions(+), 166 deletions(-) rename grub-core/{lib => commands}/backtrace.c (98%) create mode 100644 grub-core/kern/arm64/backtrace.c create mode 100644 grub-core/kern/backtrace.c @@ -36,8 +37,25 @@ Signed-off-by: Peter Jones delete mode 100644 grub-core/lib/arm64/backtrace.c delete mode 100644 grub-core/lib/i386/backtrace.c +diff --git a/Makefile.util.def b/Makefile.util.def +index f4fbd250630..cbd661d6348 100644 +--- a/Makefile.util.def ++++ b/Makefile.util.def +@@ -49,6 +49,12 @@ library = { + common = grub-core/partmap/msdos.c; + common = grub-core/fs/proc.c; + common = grub-core/fs/archelp.c; ++ common = grub-core/kern/backtrace.c; ++ ++ x86 = grub-core/kern/i386/backtrace.c; ++ i386_xen = grub-core/kern/i386/backtrace.c; ++ x86_64_xen = grub-core/kern/i386/backtrace.c; ++ arm64 = grub-core/kern/arm64/backtrace.c; + }; + + library = { diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 533e1408f74..77f0f3d8f46 100644 +index 067b97a4221..cb24f92a431 100644 --- a/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def @@ -130,6 +130,12 @@ kernel = { @@ -63,7 +81,7 @@ index 533e1408f74..77f0f3d8f46 100644 i386 = kern/i386/dl.c; i386_xen = kern/i386/dl.c; -@@ -2293,13 +2296,11 @@ module = { +@@ -2277,13 +2280,11 @@ module = { module = { name = backtrace; @@ -209,10 +227,10 @@ index 00000000000..019c6fdfef2 +} diff --git a/grub-core/kern/backtrace.c b/grub-core/kern/backtrace.c new file mode 100644 -index 00000000000..bd6a783f6d0 +index 00000000000..4a82e865cc6 --- /dev/null +++ b/grub-core/kern/backtrace.c -@@ -0,0 +1,95 @@ +@@ -0,0 +1,97 @@ +/* + * GRUB -- GRand Unified Bootloader + * Copyright (C) 2009 Free Software Foundation, Inc. @@ -244,6 +262,7 @@ index 00000000000..bd6a783f6d0 +static void +grub_backtrace_print_address_default (void *addr) +{ ++#ifndef GRUB_UTIL + grub_dl_t mod; + void *start_addr; + @@ -268,6 +287,7 @@ index 00000000000..bd6a783f6d0 + (grub_size_t) + ((grub_uint8_t *)addr - (grub_uint8_t *)start_addr)); + else ++#endif + grub_printf ("%p", addr); +} + @@ -373,10 +393,10 @@ index 621070918d4..5028d157c46 100644 i++, s = (Elf_Shdr *) ((char *) s + e->e_shentsize)) diff --git a/grub-core/kern/i386/backtrace.c b/grub-core/kern/i386/backtrace.c new file mode 100644 -index 00000000000..c4f7e3f0e90 +index 00000000000..2413f9a57db --- /dev/null +++ b/grub-core/kern/i386/backtrace.c -@@ -0,0 +1,121 @@ +@@ -0,0 +1,125 @@ +/* + * GRUB -- GRand Unified Bootloader + * Copyright (C) 2009 Free Software Foundation, Inc. @@ -474,6 +494,10 @@ index 00000000000..c4f7e3f0e90 +extern unsigned long _text; +extern unsigned long _data; + ++#ifdef GRUB_UTIL ++#define EXT_C(x) x ++#endif ++ +void +grub_backtrace_arch (unsigned int skip) +{ @@ -521,7 +545,7 @@ index 27bc68b8a53..b51d0abfa6e 100644 /* Initialize the console as early as possible. */ grub_console_init (); diff --git a/grub-core/kern/ieee1275/init.c b/grub-core/kern/ieee1275/init.c -index 4dfa41a37d5..6eda8c1f353 100644 +index e01bc6eab19..e731a57a47b 100644 --- a/grub-core/kern/ieee1275/init.c +++ b/grub-core/kern/ieee1275/init.c @@ -60,7 +60,6 @@ @@ -871,7 +895,7 @@ index 03b916f0534..701bf63abcf 100644 ba codestart mov %o4, %o0 diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am -index 75e8715e631..5c7a2c8f808 100644 +index 0108c0d4233..f36200bd688 100644 --- a/grub-core/Makefile.am +++ b/grub-core/Makefile.am @@ -66,6 +66,7 @@ CLEANFILES += grub_script.yy.c grub_script.yy.h diff --git a/0147-normal-don-t-draw-our-startup-message-if-debug-is-se.patch b/0123-normal-don-t-draw-our-startup-message-if-debug-is-se.patch similarity index 100% rename from 0147-normal-don-t-draw-our-startup-message-if-debug-is-se.patch rename to 0123-normal-don-t-draw-our-startup-message-if-debug-is-se.patch diff --git a/0148-Work-around-some-minor-include-path-weirdnesses.patch b/0124-Work-around-some-minor-include-path-weirdnesses.patch similarity index 100% rename from 0148-Work-around-some-minor-include-path-weirdnesses.patch rename to 0124-Work-around-some-minor-include-path-weirdnesses.patch diff --git a/0149-Make-it-possible-to-enabled-build-id-sha1.patch b/0125-Make-it-possible-to-enabled-build-id-sha1.patch similarity index 95% rename from 0149-Make-it-possible-to-enabled-build-id-sha1.patch rename to 0125-Make-it-possible-to-enabled-build-id-sha1.patch index d9c723f4..2ed085c1 100644 --- a/0149-Make-it-possible-to-enabled-build-id-sha1.patch +++ b/0125-Make-it-possible-to-enabled-build-id-sha1.patch @@ -10,10 +10,10 @@ Signed-off-by: Peter Jones 2 files changed, 27 insertions(+) diff --git a/configure.ac b/configure.ac -index ae371a97d30..498741dfeba 100644 +index f69f8986791..359cac3c26b 100644 --- a/configure.ac +++ b/configure.ac -@@ -1385,7 +1385,15 @@ grub_PROG_TARGET_CC +@@ -1386,7 +1386,15 @@ grub_PROG_TARGET_CC if test "x$TARGET_APPLE_LINKER" != x1 ; then grub_PROG_OBJCOPY_ABSOLUTE fi diff --git a/0150-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch b/0126-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch similarity index 97% rename from 0150-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch rename to 0126-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch index 90a9593e..8bd55480 100644 --- a/0150-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch +++ b/0126-Add-grub_qdprintf-grub_dprintf-without-the-file-line.patch @@ -42,7 +42,7 @@ index 5c2d2039d0b..0e89c483d5e 100644 int diff --git a/include/grub/misc.h b/include/grub/misc.h -index 493e328d968..4607e8defa9 100644 +index f7473c154f0..5f1c1c1be4e 100644 --- a/include/grub/misc.h +++ b/include/grub/misc.h @@ -372,6 +372,8 @@ void EXPORT_FUNC(grub_real_dprintf) (const char *file, diff --git a/0126-Clean-up-some-errors-in-the-linuxefi-loader.patch b/0126-Clean-up-some-errors-in-the-linuxefi-loader.patch deleted file mode 100644 index 3471b23e..00000000 --- a/0126-Clean-up-some-errors-in-the-linuxefi-loader.patch +++ /dev/null @@ -1,66 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Wed, 24 May 2017 15:58:18 -0400 -Subject: [PATCH] Clean up some errors in the linuxefi loader - -Signed-off-by: Peter Jones ---- - grub-core/loader/i386/efi/linux.c | 16 ++++++++-------- - 1 file changed, 8 insertions(+), 8 deletions(-) - -diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c -index bed5919cab3..6db5d0bf3a0 100644 ---- a/grub-core/loader/i386/efi/linux.c -+++ b/grub-core/loader/i386/efi/linux.c -@@ -161,8 +161,8 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - int argc, char *argv[]) - { - grub_file_t file = 0; -- struct linux_kernel_header *lh; -- grub_ssize_t len, start, filelen; -+ struct linux_kernel_header *lh = NULL; -+ grub_ssize_t start, filelen; - void *kernel = NULL; - int setup_header_end_offset; - int rc; -@@ -212,18 +212,19 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - goto fail; - } - -- grub_dprintf ("linuxefi", "params = %p\n", (unsigned long) params); -+ grub_dprintf ("linuxefi", "params = %p\n", params); - - grub_memset (params, 0, sizeof(*params)); - - setup_header_end_offset = *((grub_uint8_t *)kernel + 0x201); -- grub_dprintf ("linuxefi", "copying %d bytes from %p to %p\n", -- MIN(0x202+setup_header_end_offset,sizeof (*params)) - 0x1f1, -+ grub_dprintf ("linuxefi", "copying %zu bytes from %p to %p\n", -+ MIN((grub_size_t)0x202+setup_header_end_offset, -+ sizeof (*params)) - 0x1f1, - (grub_uint8_t *)kernel + 0x1f1, - (grub_uint8_t *)params + 0x1f1); - grub_memcpy ((grub_uint8_t *)params + 0x1f1, - (grub_uint8_t *)kernel + 0x1f1, -- MIN(0x202+setup_header_end_offset,sizeof (*params)) - 0x1f1); -+ MIN((grub_size_t)0x202+setup_header_end_offset,sizeof (*params)) - 0x1f1); - lh = (struct linux_kernel_header *)params; - grub_dprintf ("linuxefi", "lh is at %p\n", lh); - grub_dprintf ("linuxefi", "checking lh->boot_flag\n"); -@@ -297,7 +298,6 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - handover_offset = lh->handover_offset; - - start = (lh->setup_sects + 1) * 512; -- len = grub_file_size(file) - start; - - kernel_mem = grub_efi_allocate_pages_max(lh->pref_address, - BYTES_TO_PAGES(lh->init_size)); -@@ -343,7 +343,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), - loaded = 0; - } - -- if (linux_cmdline && !loaded) -+ if (linux_cmdline && lh && !loaded) - grub_efi_free_pages ((grub_efi_physical_address_t)(grub_addr_t) - linux_cmdline, - BYTES_TO_PAGES(lh->cmdline_size + 1)); diff --git a/0151-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch b/0127-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch similarity index 92% rename from 0151-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch rename to 0127-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch index 25b1a9df..f3e24d5a 100644 --- a/0151-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch +++ b/0127-Make-a-gdb-dprintf-that-tells-us-load-addresses.patch @@ -95,10 +95,10 @@ index 5028d157c46..eb8b969cded 100644 { grub_dl_unload (mod); diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c -index 91f75fdb89a..621251242e1 100644 +index bcae7f4699d..a2a732ffc0d 100644 --- a/grub-core/kern/efi/efi.c +++ b/grub-core/kern/efi/efi.c -@@ -274,7 +274,7 @@ grub_efi_get_variable (const char *var, const grub_efi_guid_t *guid, +@@ -283,7 +283,7 @@ grub_efi_get_variable (const char *var, const grub_efi_guid_t *guid, /* Search the mods section from the PE32/PE32+ image. This code uses a PE32 header, but should work with PE32+ as well. */ grub_addr_t @@ -107,7 +107,7 @@ index 91f75fdb89a..621251242e1 100644 { grub_efi_loaded_image_t *image; struct grub_pe32_header *header; -@@ -299,7 +299,7 @@ grub_efi_modules_addr (void) +@@ -308,7 +308,7 @@ grub_efi_modules_addr (void) i < coff_header->num_sections; i++, section++) { @@ -117,7 +117,7 @@ index 91f75fdb89a..621251242e1 100644 } diff --git a/grub-core/kern/efi/init.c b/grub-core/kern/efi/init.c -index f7782b6e114..79243b364a1 100644 +index 71d2279a0c1..e6183a4c44d 100644 --- a/grub-core/kern/efi/init.c +++ b/grub-core/kern/efi/init.c @@ -59,10 +59,33 @@ grub_efi_env_init (void) @@ -164,11 +164,11 @@ index f7782b6e114..79243b364a1 100644 } diff --git a/include/grub/efi/efi.h b/include/grub/efi/efi.h -index 68326d96f5a..6702b312040 100644 +index 09a18e56302..570a69361a5 100644 --- a/include/grub/efi/efi.h +++ b/include/grub/efi/efi.h -@@ -126,7 +126,7 @@ extern void (*EXPORT_VAR(grub_efi_net_config)) (grub_efi_handle_t hnd, - void *EXPORT_FUNC(grub_efi_get_firmware_fdt)(void); +@@ -132,7 +132,7 @@ grub_err_t grub_armxx_efi_linux_check_image(struct linux_armxx_kernel_header *lh + grub_err_t grub_armxx_efi_linux_boot_image(grub_addr_t addr, char *args); #endif -grub_addr_t grub_efi_modules_addr (void); diff --git a/0152-Only-attempt-to-scan-different-BLS-directories-on-EF.patch b/0128-Only-attempt-to-scan-different-BLS-directories-on-EF.patch similarity index 97% rename from 0152-Only-attempt-to-scan-different-BLS-directories-on-EF.patch rename to 0128-Only-attempt-to-scan-different-BLS-directories-on-EF.patch index b53d4c20..52a10853 100644 --- a/0152-Only-attempt-to-scan-different-BLS-directories-on-EF.patch +++ b/0128-Only-attempt-to-scan-different-BLS-directories-on-EF.patch @@ -16,7 +16,7 @@ Signed-off-by: Javier Martinez Canillas 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c -index e5617c3bc6c..c0973ff83ea 100644 +index e0b65534af4..e775c6b8794 100644 --- a/grub-core/commands/blscfg.c +++ b/grub-core/commands/blscfg.c @@ -676,8 +676,8 @@ static int find_entry (const char *filename, diff --git a/0153-Core-TPM-support.patch b/0129-Core-TPM-support.patch similarity index 99% rename from 0153-Core-TPM-support.patch rename to 0129-Core-TPM-support.patch index 91146135..43ab6893 100644 --- a/0153-Core-TPM-support.patch +++ b/0129-Core-TPM-support.patch @@ -23,7 +23,7 @@ will measure all modules as they're loaded. create mode 100644 include/grub/tpm.h diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 77f0f3d8f46..51f07279d83 100644 +index cb24f92a431..420831bc89e 100644 --- a/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def @@ -131,6 +131,7 @@ kernel = { @@ -42,7 +42,7 @@ index 77f0f3d8f46..51f07279d83 100644 i386_coreboot = kern/i386/pc/acpi.c; i386_multiboot = kern/i386/pc/acpi.c; i386_coreboot = kern/acpi.c; -@@ -246,6 +248,7 @@ kernel = { +@@ -245,6 +247,7 @@ kernel = { i386_pc = kern/i386/pc/init.c; i386_pc = kern/i386/pc/mmap.c; @@ -773,7 +773,7 @@ index 00000000000..40d3cf65ba6 + +#endif diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am -index 5c7a2c8f808..84b076962d8 100644 +index f36200bd688..3781bb9cbb9 100644 --- a/grub-core/Makefile.am +++ b/grub-core/Makefile.am @@ -94,6 +94,7 @@ KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/term.h diff --git a/0130-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch b/0130-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch deleted file mode 100644 index a86f4679..00000000 --- a/0130-Fix-util-grub.d-20_linux_xen.in-Add-xen_boot-command.patch +++ /dev/null @@ -1,59 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Konrad Rzeszutek Wilk -Date: Mon, 28 Aug 2017 13:51:14 -0400 -Subject: [PATCH] Fix util/grub.d/20_linux_xen.in: Add xen_boot command support - for aarch64 - -Commit d33045ce7ffcb7c1e4a60c14d5ca64b36e3c5abe introduced -the support for this, but it does not work under x86 (as it stops -20_linux_xen from running). - -The 20_linux_xen is run under a shell and any exits from within it: - -(For example on x86): -+ /usr/bin/grub2-file --is-arm64-efi /boot/xen-4.9.0.gz -[root@tst063 grub]# echo $? -1 - -will result in 20_linux_xen exciting without continuing -and also causing grub2-mkconfig to stop processing. - -As in: - -[root@tst063 ~]# - -And no more. - -This patch wraps the invocation of grub-file to be a in subshell -and to process the return value in a conditional. That fixes -the issue. - -RH-BZ 1486002: grub2-mkconfig does not work if xen.gz is installed. -CC: Fu Wei -Signed-off-by: Konrad Rzeszutek Wilk ---- - util/grub.d/20_linux_xen.in | 9 ++++----- - 1 file changed, 4 insertions(+), 5 deletions(-) - -diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in -index 462f8e1f819..9b1bd716965 100644 ---- a/util/grub.d/20_linux_xen.in -+++ b/util/grub.d/20_linux_xen.in -@@ -210,13 +210,12 @@ while [ "x${xen_list}" != "x" ] ; do - if [ "x$is_top_level" != xtrue ]; then - echo " submenu '$(gettext_printf "Xen hypervisor, version %s" "${xen_version}" | grub_quote)' \$menuentry_id_option 'xen-hypervisor-$xen_version-$boot_device_id' {" - fi -- $grub_file --is-arm64-efi $current_xen -- if [ $? -ne 0 ]; then -- xen_loader="multiboot" -- module_loader="module" -- else -+ if ($grub_file --is-arm64-efi $current_xen); then - xen_loader="xen_hypervisor" - module_loader="xen_module" -+ else -+ xen_loader="multiboot" -+ module_loader="module" - fi - while [ "x$list" != "x" ] ; do - linux=`version_find_latest $list` diff --git a/0154-Measure-kernel-initrd.patch b/0130-Measure-kernel-initrd.patch similarity index 87% rename from 0154-Measure-kernel-initrd.patch rename to 0130-Measure-kernel-initrd.patch index ea8e2e4e..ff1f10b5 100644 --- a/0154-Measure-kernel-initrd.patch +++ b/0130-Measure-kernel-initrd.patch @@ -9,7 +9,7 @@ Measure the kernel and initrd when loaded on UEFI systems 1 file changed, 4 insertions(+) diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c -index 6db5d0bf3a0..48febdc8100 100644 +index 800c3e54022..d837249b4a1 100644 --- a/grub-core/loader/i386/efi/linux.c +++ b/grub-core/loader/i386/efi/linux.c @@ -27,6 +27,7 @@ @@ -20,7 +20,7 @@ index 6db5d0bf3a0..48febdc8100 100644 GRUB_MOD_LICENSE ("GPLv3+"); -@@ -132,6 +133,7 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), +@@ -131,6 +132,7 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), argv[i]); goto fail; } @@ -28,7 +28,7 @@ index 6db5d0bf3a0..48febdc8100 100644 ptr += cursize; grub_memset (ptr, 0, ALIGN_UP_OVERHEAD (cursize, 4)); ptr += ALIGN_UP_OVERHEAD (cursize, 4); -@@ -196,6 +198,8 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), +@@ -195,6 +197,8 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), goto fail; } diff --git a/0155-Add-BIOS-boot-measurement.patch b/0131-Add-BIOS-boot-measurement.patch similarity index 99% rename from 0155-Add-BIOS-boot-measurement.patch rename to 0131-Add-BIOS-boot-measurement.patch index 0e29692f..a428d327 100644 --- a/0155-Add-BIOS-boot-measurement.patch +++ b/0131-Add-BIOS-boot-measurement.patch @@ -99,7 +99,7 @@ index ea167fe1206..c1df86dec0b 100644 jmp *(LOCAL(kernel_address)) diff --git a/grub-core/boot/i386/pc/diskboot.S b/grub-core/boot/i386/pc/diskboot.S -index c8b87ed293c..05dd7fa701c 100644 +index 68d31de0c4c..f4744ec6fcb 100644 --- a/grub-core/boot/i386/pc/diskboot.S +++ b/grub-core/boot/i386/pc/diskboot.S @@ -19,6 +19,8 @@ diff --git a/0131-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch b/0131-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch deleted file mode 100644 index 4988aa1c..00000000 --- a/0131-Use-grub-file-to-figure-out-whether-multiboot2-shoul.patch +++ /dev/null @@ -1,30 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Konrad Rzeszutek Wilk -Date: Mon, 28 Aug 2017 13:59:12 -0400 -Subject: [PATCH] Use grub-file to figure out whether multiboot2 should be used - for Xen.gz - -The multiboot2 is much more preferable than multiboot. Especiall -if booting under EFI where multiboot does not have the functionality -to pass ImageHandler. - -Signed-off-by: Konrad Rzeszutek Wilk ---- - util/grub.d/20_linux_xen.in | 4 ++++ - 1 file changed, 4 insertions(+) - -diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in -index 9b1bd716965..fae1ffe9494 100644 ---- a/util/grub.d/20_linux_xen.in -+++ b/util/grub.d/20_linux_xen.in -@@ -216,6 +216,10 @@ while [ "x${xen_list}" != "x" ] ; do - else - xen_loader="multiboot" - module_loader="module" -+ if ($grub_file --is-x86-multiboot2 $current_xen); then -+ xen_loader="multiboot2" -+ module_loader="module2" -+ fi - fi - while [ "x$list" != "x" ] ; do - linux=`version_find_latest $list` diff --git a/0156-Measure-kernel-and-initrd-on-BIOS-systems.patch b/0132-Measure-kernel-and-initrd-on-BIOS-systems.patch similarity index 91% rename from 0156-Measure-kernel-and-initrd-on-BIOS-systems.patch rename to 0132-Measure-kernel-and-initrd-on-BIOS-systems.patch index 97bb9c2a..69d58fb4 100644 --- a/0156-Measure-kernel-and-initrd-on-BIOS-systems.patch +++ b/0132-Measure-kernel-and-initrd-on-BIOS-systems.patch @@ -11,7 +11,7 @@ Measure the kernel and initrd when loaded on BIOS systems 3 files changed, 10 insertions(+) diff --git a/grub-core/loader/i386/linux.c b/grub-core/loader/i386/linux.c -index c9e89310bdd..bc10add45a6 100644 +index c84747ea857..94526966e8a 100644 --- a/grub-core/loader/i386/linux.c +++ b/grub-core/loader/i386/linux.c @@ -36,6 +36,7 @@ @@ -22,7 +22,7 @@ index c9e89310bdd..bc10add45a6 100644 GRUB_MOD_LICENSE ("GPLv3+"); -@@ -718,7 +719,10 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), +@@ -724,7 +725,10 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), goto fail; } @@ -33,7 +33,7 @@ index c9e89310bdd..bc10add45a6 100644 kernel_offset = sizeof (lh); if (lh.boot_flag != grub_cpu_to_le16_compile_time (0xaa55)) -@@ -1032,6 +1036,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), +@@ -1038,6 +1042,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), len = prot_file_size; grub_memcpy (prot_mode_mem, kernel + kernel_offset, len); @@ -42,7 +42,7 @@ index c9e89310bdd..bc10add45a6 100644 if (grub_errno == GRUB_ERR_NONE) { diff --git a/grub-core/loader/i386/pc/linux.c b/grub-core/loader/i386/pc/linux.c -index b864e540333..6b8f365c9cf 100644 +index 783a3cd93bc..15544230763 100644 --- a/grub-core/loader/i386/pc/linux.c +++ b/grub-core/loader/i386/pc/linux.c @@ -36,6 +36,7 @@ diff --git a/0157-Measure-the-kernel-commandline.patch b/0133-Measure-the-kernel-commandline.patch similarity index 100% rename from 0157-Measure-the-kernel-commandline.patch rename to 0133-Measure-the-kernel-commandline.patch diff --git a/0133-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch b/0133-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch deleted file mode 100644 index 23ee8da2..00000000 --- a/0133-tsc-Change-default-tsc-calibration-method-to-pmtimer.patch +++ /dev/null @@ -1,29 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: "David E. Box" -Date: Fri, 15 Sep 2017 15:37:05 -0700 -Subject: [PATCH] tsc: Change default tsc calibration method to pmtimer on EFI - systems - -On efi systems, make pmtimer based tsc calibration the default over the -pit. This prevents Grub from hanging on Intel SoC systems that power gate -the pit. - -Signed-off-by: David E. Box -Reviewed-by: Daniel Kiper ---- - grub-core/kern/i386/tsc.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/grub-core/kern/i386/tsc.c b/grub-core/kern/i386/tsc.c -index 2e85289d848..f266eb13185 100644 ---- a/grub-core/kern/i386/tsc.c -+++ b/grub-core/kern/i386/tsc.c -@@ -68,7 +68,7 @@ grub_tsc_init (void) - #ifdef GRUB_MACHINE_XEN - (void) (grub_tsc_calibrate_from_xen () || calibrate_tsc_hardcode()); - #elif defined (GRUB_MACHINE_EFI) -- (void) (grub_tsc_calibrate_from_pit () || grub_tsc_calibrate_from_pmtimer () || grub_tsc_calibrate_from_efi() || calibrate_tsc_hardcode()); -+ (void) (grub_tsc_calibrate_from_pmtimer () || grub_tsc_calibrate_from_pit () || grub_tsc_calibrate_from_efi() || calibrate_tsc_hardcode()); - #elif defined (GRUB_MACHINE_COREBOOT) - (void) (grub_tsc_calibrate_from_pmtimer () || grub_tsc_calibrate_from_pit () || calibrate_tsc_hardcode()); - #else diff --git a/0158-Measure-commands.patch b/0134-Measure-commands.patch similarity index 100% rename from 0158-Measure-commands.patch rename to 0134-Measure-commands.patch diff --git a/0159-Measure-multiboot-images-and-modules.patch b/0135-Measure-multiboot-images-and-modules.patch similarity index 87% rename from 0159-Measure-multiboot-images-and-modules.patch rename to 0135-Measure-multiboot-images-and-modules.patch index 54510f68..0c19d8d6 100644 --- a/0159-Measure-multiboot-images-and-modules.patch +++ b/0135-Measure-multiboot-images-and-modules.patch @@ -10,7 +10,7 @@ Subject: [PATCH] Measure multiboot images and modules 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/grub-core/loader/i386/multiboot_mbi.c b/grub-core/loader/i386/multiboot_mbi.c -index fd7b41b0cad..5d00aed65ad 100644 +index dc98dbcae25..1c5b0ac25ce 100644 --- a/grub-core/loader/i386/multiboot_mbi.c +++ b/grub-core/loader/i386/multiboot_mbi.c @@ -36,6 +36,7 @@ @@ -31,10 +31,10 @@ index fd7b41b0cad..5d00aed65ad 100644 if (header == 0) diff --git a/grub-core/loader/multiboot.c b/grub-core/loader/multiboot.c -index fb044a60c79..0ca525380c9 100644 +index 26df46a4161..93e026c53db 100644 --- a/grub-core/loader/multiboot.c +++ b/grub-core/loader/multiboot.c -@@ -43,6 +43,7 @@ +@@ -51,6 +51,7 @@ #include #include #include @@ -42,7 +42,7 @@ index fb044a60c79..0ca525380c9 100644 GRUB_MOD_LICENSE ("GPLv3+"); -@@ -425,6 +426,7 @@ grub_cmd_module (grub_command_t cmd __attribute__ ((unused)), +@@ -440,6 +441,7 @@ grub_cmd_module (grub_command_t cmd __attribute__ ((unused)), } grub_file_close (file); @@ -51,7 +51,7 @@ index fb044a60c79..0ca525380c9 100644 } diff --git a/grub-core/loader/multiboot_mbi2.c b/grub-core/loader/multiboot_mbi2.c -index b0679a9f6c9..a7b4a57ec4f 100644 +index 4df6595954d..d5ad02a33a1 100644 --- a/grub-core/loader/multiboot_mbi2.c +++ b/grub-core/loader/multiboot_mbi2.c @@ -36,6 +36,7 @@ @@ -62,7 +62,7 @@ index b0679a9f6c9..a7b4a57ec4f 100644 #if defined (GRUB_MACHINE_EFI) #include -@@ -131,8 +132,9 @@ grub_multiboot_load (grub_file_t file, const char *filename) +@@ -131,8 +132,9 @@ grub_multiboot2_load (grub_file_t file, const char *filename) COMPILE_TIME_ASSERT (MULTIBOOT_HEADER_ALIGN % 4 == 0); diff --git a/0160-Fix-boot-when-there-s-no-TPM.patch b/0136-Fix-boot-when-there-s-no-TPM.patch similarity index 100% rename from 0160-Fix-boot-when-there-s-no-TPM.patch rename to 0136-Fix-boot-when-there-s-no-TPM.patch diff --git a/0161-Rework-TPM-measurements.patch b/0137-Rework-TPM-measurements.patch similarity index 93% rename from 0161-Rework-TPM-measurements.patch rename to 0137-Rework-TPM-measurements.patch index 54276e2e..eb180944 100644 --- a/0161-Rework-TPM-measurements.patch +++ b/0137-Rework-TPM-measurements.patch @@ -73,10 +73,10 @@ index 6b56304d4a7..178f7382f07 100644 return i; } diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c -index 48febdc8100..079e222e972 100644 +index d837249b4a1..074dbd6513e 100644 --- a/grub-core/loader/i386/efi/linux.c +++ b/grub-core/loader/i386/efi/linux.c -@@ -133,7 +133,7 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), +@@ -132,7 +132,7 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), argv[i]); goto fail; } @@ -85,7 +85,7 @@ index 48febdc8100..079e222e972 100644 ptr += cursize; grub_memset (ptr, 0, ALIGN_UP_OVERHEAD (cursize, 4)); ptr += ALIGN_UP_OVERHEAD (cursize, 4); -@@ -198,7 +198,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), +@@ -197,7 +197,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), goto fail; } @@ -95,10 +95,10 @@ index 48febdc8100..079e222e972 100644 rc = grub_linuxefi_secure_validate (kernel, filelen); if (rc < 0) diff --git a/grub-core/loader/i386/linux.c b/grub-core/loader/i386/linux.c -index bc10add45a6..32e3bb08e88 100644 +index 94526966e8a..273f48a6c88 100644 --- a/grub-core/loader/i386/linux.c +++ b/grub-core/loader/i386/linux.c -@@ -719,7 +719,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), +@@ -725,7 +725,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), goto fail; } @@ -108,7 +108,7 @@ index bc10add45a6..32e3bb08e88 100644 grub_memcpy (&lh, kernel, sizeof (lh)); diff --git a/grub-core/loader/i386/multiboot_mbi.c b/grub-core/loader/i386/multiboot_mbi.c -index 5d00aed65ad..0981a2cfd93 100644 +index 1c5b0ac25ce..2ce424a997b 100644 --- a/grub-core/loader/i386/multiboot_mbi.c +++ b/grub-core/loader/i386/multiboot_mbi.c @@ -174,7 +174,7 @@ grub_multiboot_load (grub_file_t file, const char *filename) @@ -121,7 +121,7 @@ index 5d00aed65ad..0981a2cfd93 100644 header = find_header (buffer, len); diff --git a/grub-core/loader/i386/pc/linux.c b/grub-core/loader/i386/pc/linux.c -index 6b8f365c9cf..7edbc5ea6c4 100644 +index 15544230763..4f8c02288ec 100644 --- a/grub-core/loader/i386/pc/linux.c +++ b/grub-core/loader/i386/pc/linux.c @@ -162,7 +162,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), @@ -147,10 +147,10 @@ index 3005c0d19c9..78c41e33416 100644 } if (newc) diff --git a/grub-core/loader/multiboot.c b/grub-core/loader/multiboot.c -index 0ca525380c9..cc53d429bca 100644 +index 93e026c53db..3b87dc4fab3 100644 --- a/grub-core/loader/multiboot.c +++ b/grub-core/loader/multiboot.c -@@ -426,7 +426,7 @@ grub_cmd_module (grub_command_t cmd __attribute__ ((unused)), +@@ -441,7 +441,7 @@ grub_cmd_module (grub_command_t cmd __attribute__ ((unused)), } grub_file_close (file); @@ -160,10 +160,10 @@ index 0ca525380c9..cc53d429bca 100644 } diff --git a/grub-core/loader/multiboot_mbi2.c b/grub-core/loader/multiboot_mbi2.c -index a7b4a57ec4f..f7e333f56c1 100644 +index d5ad02a33a1..60ae4606fda 100644 --- a/grub-core/loader/multiboot_mbi2.c +++ b/grub-core/loader/multiboot_mbi2.c -@@ -132,7 +132,7 @@ grub_multiboot_load (grub_file_t file, const char *filename) +@@ -132,7 +132,7 @@ grub_multiboot2_load (grub_file_t file, const char *filename) COMPILE_TIME_ASSERT (MULTIBOOT_HEADER_ALIGN % 4 == 0); diff --git a/0162-Fix-event-log-prefix.patch b/0138-Fix-event-log-prefix.patch similarity index 100% rename from 0162-Fix-event-log-prefix.patch rename to 0138-Fix-event-log-prefix.patch diff --git a/0163-Set-the-first-boot-menu-entry-as-default-when-using-.patch b/0139-Set-the-first-boot-menu-entry-as-default-when-using-.patch similarity index 90% rename from 0163-Set-the-first-boot-menu-entry-as-default-when-using-.patch rename to 0139-Set-the-first-boot-menu-entry-as-default-when-using-.patch index 2d501f1f..1e8e73fa 100644 --- a/0163-Set-the-first-boot-menu-entry-as-default-when-using-.patch +++ b/0139-Set-the-first-boot-menu-entry-as-default-when-using-.patch @@ -14,10 +14,10 @@ Signed-off-by: Javier Martinez Canillas 1 file changed, 1 insertion(+) diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index f5daefb9d24..b24bb410dc0 100644 +index 839f1fdb655..89cd71d852d 100644 --- a/util/grub.d/10_linux.in +++ b/util/grub.d/10_linux.in -@@ -149,6 +149,7 @@ if [ -s \$prefix/grubenv ]; then +@@ -144,6 +144,7 @@ if [ -s \$prefix/grubenv ]; then fi EOF diff --git a/0164-tpm-fix-warnings-when-compiling-for-platforms-other-.patch b/0140-tpm-fix-warnings-when-compiling-for-platforms-other-.patch similarity index 100% rename from 0164-tpm-fix-warnings-when-compiling-for-platforms-other-.patch rename to 0140-tpm-fix-warnings-when-compiling-for-platforms-other-.patch diff --git a/0165-Make-TPM-errors-less-fatal.patch b/0141-Make-TPM-errors-less-fatal.patch similarity index 91% rename from 0165-Make-TPM-errors-less-fatal.patch rename to 0141-Make-TPM-errors-less-fatal.patch index 7e430509..bcee8a19 100644 --- a/0165-Make-TPM-errors-less-fatal.patch +++ b/0141-Make-TPM-errors-less-fatal.patch @@ -102,10 +102,10 @@ index 178f7382f07..d5c12957cad 100644 return i; } diff --git a/grub-core/loader/i386/efi/linux.c b/grub-core/loader/i386/efi/linux.c -index 079e222e972..6c9268f2ff5 100644 +index 074dbd6513e..ea9f5134e67 100644 --- a/grub-core/loader/i386/efi/linux.c +++ b/grub-core/loader/i386/efi/linux.c -@@ -134,6 +134,7 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), +@@ -133,6 +133,7 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), goto fail; } grub_tpm_measure (ptr, cursize, GRUB_BINARY_PCR, "grub_linuxefi", "Initrd"); @@ -113,7 +113,7 @@ index 079e222e972..6c9268f2ff5 100644 ptr += cursize; grub_memset (ptr, 0, ALIGN_UP_OVERHEAD (cursize, 4)); ptr += ALIGN_UP_OVERHEAD (cursize, 4); -@@ -199,6 +200,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), +@@ -198,6 +199,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), } grub_tpm_measure (kernel, filelen, GRUB_BINARY_PCR, "grub_linuxefi", "Kernel"); @@ -122,10 +122,10 @@ index 079e222e972..6c9268f2ff5 100644 rc = grub_linuxefi_secure_validate (kernel, filelen); if (rc < 0) diff --git a/grub-core/loader/i386/linux.c b/grub-core/loader/i386/linux.c -index 32e3bb08e88..daebe0237ff 100644 +index 273f48a6c88..76304f05700 100644 --- a/grub-core/loader/i386/linux.c +++ b/grub-core/loader/i386/linux.c -@@ -720,6 +720,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), +@@ -726,6 +726,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), } grub_tpm_measure (kernel, len, GRUB_BINARY_PCR, "grub_linux", "Kernel"); @@ -134,7 +134,7 @@ index 32e3bb08e88..daebe0237ff 100644 grub_memcpy (&lh, kernel, sizeof (lh)); diff --git a/grub-core/loader/i386/multiboot_mbi.c b/grub-core/loader/i386/multiboot_mbi.c -index 0981a2cfd93..42372bf058b 100644 +index 2ce424a997b..ca85358f771 100644 --- a/grub-core/loader/i386/multiboot_mbi.c +++ b/grub-core/loader/i386/multiboot_mbi.c @@ -175,6 +175,7 @@ grub_multiboot_load (grub_file_t file, const char *filename) @@ -146,7 +146,7 @@ index 0981a2cfd93..42372bf058b 100644 header = find_header (buffer, len); diff --git a/grub-core/loader/i386/pc/linux.c b/grub-core/loader/i386/pc/linux.c -index 7edbc5ea6c4..5b6558c6340 100644 +index 4f8c02288ec..cfff25c21b5 100644 --- a/grub-core/loader/i386/pc/linux.c +++ b/grub-core/loader/i386/pc/linux.c @@ -163,6 +163,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), @@ -171,10 +171,10 @@ index 78c41e33416..c2c7cfcd0fd 100644 } if (newc) diff --git a/grub-core/loader/multiboot.c b/grub-core/loader/multiboot.c -index cc53d429bca..ae308189200 100644 +index 3b87dc4fab3..9a8dae5565b 100644 --- a/grub-core/loader/multiboot.c +++ b/grub-core/loader/multiboot.c -@@ -427,6 +427,7 @@ grub_cmd_module (grub_command_t cmd __attribute__ ((unused)), +@@ -442,6 +442,7 @@ grub_cmd_module (grub_command_t cmd __attribute__ ((unused)), grub_file_close (file); grub_tpm_measure (module, size, GRUB_BINARY_PCR, "grub_multiboot", argv[0]); @@ -183,10 +183,10 @@ index cc53d429bca..ae308189200 100644 } diff --git a/grub-core/loader/multiboot_mbi2.c b/grub-core/loader/multiboot_mbi2.c -index f7e333f56c1..49b8af3f1d8 100644 +index 60ae4606fda..54078455e2f 100644 --- a/grub-core/loader/multiboot_mbi2.c +++ b/grub-core/loader/multiboot_mbi2.c -@@ -133,6 +133,7 @@ grub_multiboot_load (grub_file_t file, const char *filename) +@@ -133,6 +133,7 @@ grub_multiboot2_load (grub_file_t file, const char *filename) COMPILE_TIME_ASSERT (MULTIBOOT_HEADER_ALIGN % 4 == 0); grub_tpm_measure ((unsigned char *)mld.buffer, len, GRUB_BINARY_PCR, "grub_multiboot", filename); diff --git a/0166-blscfg-handle-multiple-initramfs-images.patch b/0142-blscfg-handle-multiple-initramfs-images.patch similarity index 98% rename from 0166-blscfg-handle-multiple-initramfs-images.patch rename to 0142-blscfg-handle-multiple-initramfs-images.patch index 0e3d8731..2050ffa6 100644 --- a/0166-blscfg-handle-multiple-initramfs-images.patch +++ b/0142-blscfg-handle-multiple-initramfs-images.patch @@ -9,7 +9,7 @@ Signed-off-by: Peter Jones 1 file changed, 44 insertions(+), 10 deletions(-) diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c -index c0973ff83ea..1e5972422d6 100644 +index e775c6b8794..6ab85df6b3a 100644 --- a/grub-core/commands/blscfg.c +++ b/grub-core/commands/blscfg.c @@ -587,6 +587,7 @@ static void create_entry (struct bls_entry *entry, const char *cfgfile) diff --git a/0167-BLS-Fix-grub2-switch-to-blscfg-on-non-EFI-machines.patch b/0143-BLS-Fix-grub2-switch-to-blscfg-on-non-EFI-machines.patch similarity index 100% rename from 0167-BLS-Fix-grub2-switch-to-blscfg-on-non-EFI-machines.patch rename to 0143-BLS-Fix-grub2-switch-to-blscfg-on-non-EFI-machines.patch diff --git a/0168-BLS-Use-etcdefaultgrub-instead-of-etc.patch b/0144-BLS-Use-etcdefaultgrub-instead-of-etc.patch similarity index 100% rename from 0168-BLS-Use-etcdefaultgrub-instead-of-etc.patch rename to 0144-BLS-Use-etcdefaultgrub-instead-of-etc.patch diff --git a/0169-Add-missing-options-to-grub2-switch-to-blscfg-man-pa.patch b/0145-Add-missing-options-to-grub2-switch-to-blscfg-man-pa.patch similarity index 100% rename from 0169-Add-missing-options-to-grub2-switch-to-blscfg-man-pa.patch rename to 0145-Add-missing-options-to-grub2-switch-to-blscfg-man-pa.patch diff --git a/0170-Make-grub2-switch-to-blscfg-to-generate-debug-BLS-wh.patch b/0146-Make-grub2-switch-to-blscfg-to-generate-debug-BLS-wh.patch similarity index 100% rename from 0170-Make-grub2-switch-to-blscfg-to-generate-debug-BLS-wh.patch rename to 0146-Make-grub2-switch-to-blscfg-to-generate-debug-BLS-wh.patch diff --git a/0171-Make-grub2-switch-to-blscfg-to-generate-BLS-fragment.patch b/0147-Make-grub2-switch-to-blscfg-to-generate-BLS-fragment.patch similarity index 100% rename from 0171-Make-grub2-switch-to-blscfg-to-generate-BLS-fragment.patch rename to 0147-Make-grub2-switch-to-blscfg-to-generate-BLS-fragment.patch diff --git a/0172-Only-attempt-to-query-dev-mounted-in-boot-efi-as-boo.patch b/0148-Only-attempt-to-query-dev-mounted-in-boot-efi-as-boo.patch similarity index 95% rename from 0172-Only-attempt-to-query-dev-mounted-in-boot-efi-as-boo.patch rename to 0148-Only-attempt-to-query-dev-mounted-in-boot-efi-as-boo.patch index 9c79a174..84b01675 100644 --- a/0172-Only-attempt-to-query-dev-mounted-in-boot-efi-as-boo.patch +++ b/0148-Only-attempt-to-query-dev-mounted-in-boot-efi-as-boo.patch @@ -19,10 +19,10 @@ Signed-off-by: Javier Martinez Canillas 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index b24bb410dc0..c2ffc77398f 100644 +index 89cd71d852d..61d0664fb5c 100644 --- a/util/grub.d/10_linux.in +++ b/util/grub.d/10_linux.in -@@ -138,8 +138,13 @@ linux_entry () +@@ -133,8 +133,13 @@ linux_entry () fi fi diff --git a/0173-Include-OSTree-path-when-searching-kernels-images-if.patch b/0149-Include-OSTree-path-when-searching-kernels-images-if.patch similarity index 94% rename from 0173-Include-OSTree-path-when-searching-kernels-images-if.patch rename to 0149-Include-OSTree-path-when-searching-kernels-images-if.patch index d77edcfd..70b33b34 100644 --- a/0173-Include-OSTree-path-when-searching-kernels-images-if.patch +++ b/0149-Include-OSTree-path-when-searching-kernels-images-if.patch @@ -20,10 +20,10 @@ Signed-off-by: Javier Martinez Canillas 1 file changed, 6 insertions(+) diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in -index c2ffc77398f..15ba8eff8a6 100644 +index 61d0664fb5c..9682e97b7f5 100644 --- a/util/grub.d/10_linux.in +++ b/util/grub.d/10_linux.in -@@ -250,6 +250,12 @@ case "x$machine" in +@@ -237,6 +237,12 @@ case "x$machine" in done ;; esac diff --git a/0174-Use-BLS-version-field-to-compare-entries-if-id-field.patch b/0150-Use-BLS-version-field-to-compare-entries-if-id-field.patch similarity index 96% rename from 0174-Use-BLS-version-field-to-compare-entries-if-id-field.patch rename to 0150-Use-BLS-version-field-to-compare-entries-if-id-field.patch index 84ed52e7..0d76ad81 100644 --- a/0174-Use-BLS-version-field-to-compare-entries-if-id-field.patch +++ b/0150-Use-BLS-version-field-to-compare-entries-if-id-field.patch @@ -14,7 +14,7 @@ Signed-off-by: Javier Martinez Canillas 1 file changed, 3 insertions(+) diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c -index 1e5972422d6..72ee497ea2d 100644 +index 6ab85df6b3a..c52d2b2e05a 100644 --- a/grub-core/commands/blscfg.c +++ b/grub-core/commands/blscfg.c @@ -418,6 +418,9 @@ static int bls_cmp(const void *p0, const void *p1, void *state UNUSED) diff --git a/0175-Add-version-field-to-BLS-generated-by-grub2-switch-t.patch b/0151-Add-version-field-to-BLS-generated-by-grub2-switch-t.patch similarity index 100% rename from 0175-Add-version-field-to-BLS-generated-by-grub2-switch-t.patch rename to 0151-Add-version-field-to-BLS-generated-by-grub2-switch-t.patch diff --git a/0176-Fixup-for-newer-compiler.patch b/0152-Fixup-for-newer-compiler.patch similarity index 93% rename from 0176-Fixup-for-newer-compiler.patch rename to 0152-Fixup-for-newer-compiler.patch index f147e7dd..a63ca6bd 100644 --- a/0176-Fixup-for-newer-compiler.patch +++ b/0152-Fixup-for-newer-compiler.patch @@ -9,7 +9,7 @@ Subject: [PATCH] Fixup for newer compiler 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c -index 3cd9472197c..8d3f644e124 100644 +index 7002ad81b7e..dac73b2fa8b 100644 --- a/grub-core/fs/btrfs.c +++ b/grub-core/fs/btrfs.c @@ -198,7 +198,7 @@ struct grub_btrfs_inode @@ -22,7 +22,7 @@ index 3cd9472197c..8d3f644e124 100644 struct grub_btrfs_extent_data { diff --git a/include/grub/gpt_partition.h b/include/grub/gpt_partition.h -index 1b32f6725a4..8cddf997efc 100644 +index 7a93f43291c..8212697bf6b 100644 --- a/include/grub/gpt_partition.h +++ b/include/grub/gpt_partition.h @@ -76,7 +76,7 @@ struct grub_gpt_partentry diff --git a/0177-Don-t-attempt-to-export-the-start-and-_start-symbols.patch b/0153-Don-t-attempt-to-export-the-start-and-_start-symbols.patch similarity index 100% rename from 0177-Don-t-attempt-to-export-the-start-and-_start-symbols.patch rename to 0153-Don-t-attempt-to-export-the-start-and-_start-symbols.patch diff --git a/0178-Simplify-BLS-entry-key-val-pairs-lookup.patch b/0154-Simplify-BLS-entry-key-val-pairs-lookup.patch similarity index 99% rename from 0178-Simplify-BLS-entry-key-val-pairs-lookup.patch rename to 0154-Simplify-BLS-entry-key-val-pairs-lookup.patch index 261cd9aa..f3d2613a 100644 --- a/0178-Simplify-BLS-entry-key-val-pairs-lookup.patch +++ b/0154-Simplify-BLS-entry-key-val-pairs-lookup.patch @@ -52,7 +52,7 @@ Signed-off-by: Javier Martinez Canillas 1 file changed, 18 insertions(+), 70 deletions(-) diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c -index 72ee497ea2d..111972d5f67 100644 +index c52d2b2e05a..fb08d8e4c12 100644 --- a/grub-core/commands/blscfg.c +++ b/grub-core/commands/blscfg.c @@ -169,84 +169,35 @@ static void bls_free_entry(struct bls_entry *entry) diff --git a/0179-Add-relative-path-to-the-kernel-and-initrds-BLS-fiel.patch b/0155-Add-relative-path-to-the-kernel-and-initrds-BLS-fiel.patch similarity index 100% rename from 0179-Add-relative-path-to-the-kernel-and-initrds-BLS-fiel.patch rename to 0155-Add-relative-path-to-the-kernel-and-initrds-BLS-fiel.patch diff --git a/0180-Skip-leading-spaces-on-BLS-field-values.patch b/0156-Skip-leading-spaces-on-BLS-field-values.patch similarity index 97% rename from 0180-Skip-leading-spaces-on-BLS-field-values.patch rename to 0156-Skip-leading-spaces-on-BLS-field-values.patch index 8b4cff89..df80edfd 100644 --- a/0180-Skip-leading-spaces-on-BLS-field-values.patch +++ b/0156-Skip-leading-spaces-on-BLS-field-values.patch @@ -38,7 +38,7 @@ Signed-off-by: Javier Martinez Canillas 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c -index 111972d5f67..cd5c29fdf74 100644 +index fb08d8e4c12..831cdcaccdf 100644 --- a/grub-core/commands/blscfg.c +++ b/grub-core/commands/blscfg.c @@ -448,7 +448,11 @@ static int read_entry ( diff --git a/0181-Fixup-for-newer-compiler.patch b/0157-Fixup-for-newer-compiler.patch similarity index 100% rename from 0181-Fixup-for-newer-compiler.patch rename to 0157-Fixup-for-newer-compiler.patch diff --git a/0182-TPM-Fix-hash_log_extend_event-function-prototype.patch b/0158-TPM-Fix-hash_log_extend_event-function-prototype.patch similarity index 100% rename from 0182-TPM-Fix-hash_log_extend_event-function-prototype.patch rename to 0158-TPM-Fix-hash_log_extend_event-function-prototype.patch diff --git a/0183-TPM-Fix-compiler-warnings.patch b/0159-TPM-Fix-compiler-warnings.patch similarity index 100% rename from 0183-TPM-Fix-compiler-warnings.patch rename to 0159-TPM-Fix-compiler-warnings.patch diff --git a/0184-grub-switch-to-blscfg.in-get-rid-of-a-bunch-of-bashi.patch b/0160-grub-switch-to-blscfg.in-get-rid-of-a-bunch-of-bashi.patch similarity index 100% rename from 0184-grub-switch-to-blscfg.in-get-rid-of-a-bunch-of-bashi.patch rename to 0160-grub-switch-to-blscfg.in-get-rid-of-a-bunch-of-bashi.patch diff --git a/0185-grub-switch-to-blscfg.in-Better-boot-prefix-checking.patch b/0161-grub-switch-to-blscfg.in-Better-boot-prefix-checking.patch similarity index 100% rename from 0185-grub-switch-to-blscfg.in-Better-boot-prefix-checking.patch rename to 0161-grub-switch-to-blscfg.in-Better-boot-prefix-checking.patch diff --git a/0186-Use-boot-loader-entries-as-BLS-directory-path-also-o.patch b/0162-Use-boot-loader-entries-as-BLS-directory-path-also-o.patch similarity index 99% rename from 0186-Use-boot-loader-entries-as-BLS-directory-path-also-o.patch rename to 0162-Use-boot-loader-entries-as-BLS-directory-path-also-o.patch index a0fe3665..88b9bc2e 100644 --- a/0186-Use-boot-loader-entries-as-BLS-directory-path-also-o.patch +++ b/0162-Use-boot-loader-entries-as-BLS-directory-path-also-o.patch @@ -19,7 +19,7 @@ Signed-off-by: Javier Martinez Canillas 2 files changed, 38 insertions(+), 14 deletions(-) diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c -index cd5c29fdf74..11fe6e2c29f 100644 +index 831cdcaccdf..70939a81826 100644 --- a/grub-core/commands/blscfg.c +++ b/grub-core/commands/blscfg.c @@ -381,9 +381,14 @@ static int bls_cmp(const void *p0, const void *p1, void *state UNUSED) diff --git a/0187-Use-BLS-fragment-filename-as-menu-entry-id-and-for-c.patch b/0163-Use-BLS-fragment-filename-as-menu-entry-id-and-for-c.patch similarity index 98% rename from 0187-Use-BLS-fragment-filename-as-menu-entry-id-and-for-c.patch rename to 0163-Use-BLS-fragment-filename-as-menu-entry-id-and-for-c.patch index 12a37153..7f765e76 100644 --- a/0187-Use-BLS-fragment-filename-as-menu-entry-id-and-for-c.patch +++ b/0163-Use-BLS-fragment-filename-as-menu-entry-id-and-for-c.patch @@ -13,7 +13,7 @@ Signed-off-by: Javier Martinez Canillas 1 file changed, 12 insertions(+), 50 deletions(-) diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c -index 11fe6e2c29f..23d15adfadc 100644 +index 70939a81826..cd8659384e4 100644 --- a/grub-core/commands/blscfg.c +++ b/grub-core/commands/blscfg.c @@ -70,6 +70,7 @@ struct bls_entry diff --git a/0188-Fix-grub-switch-to-blscfg-boot-prefix-handling.patch b/0164-Fix-grub-switch-to-blscfg-boot-prefix-handling.patch similarity index 100% rename from 0188-Fix-grub-switch-to-blscfg-boot-prefix-handling.patch rename to 0164-Fix-grub-switch-to-blscfg-boot-prefix-handling.patch diff --git a/0165-Revert-trim-arp-packets-with-abnormal-size.patch b/0165-Revert-trim-arp-packets-with-abnormal-size.patch new file mode 100644 index 00000000..5a169d7e --- /dev/null +++ b/0165-Revert-trim-arp-packets-with-abnormal-size.patch @@ -0,0 +1,27 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Thu, 18 May 2017 14:25:45 -0400 +Subject: [PATCH] Revert "trim arp packets with abnormal size" + +This reverts commit d11b2eb425d2125f67dd8d8e9b11d9be7d6f3f11. +--- + grub-core/net/arp.c | 6 ------ + 1 file changed, 6 deletions(-) + +diff --git a/grub-core/net/arp.c b/grub-core/net/arp.c +index d1c69ed2b55..54306e3b16d 100644 +--- a/grub-core/net/arp.c ++++ b/grub-core/net/arp.c +@@ -150,12 +150,6 @@ grub_net_arp_receive (struct grub_net_buff *nb, struct grub_net_card *card, + if (grub_net_addr_cmp (&inf->address, &target_addr) == 0 + && arp_packet->op == grub_cpu_to_be16_compile_time (ARP_REQUEST)) + { +- if ((nb->tail - nb->data) > 50) +- { +- grub_dprintf ("net", "arp packet with abnormal size (%ld bytes).\n", +- nb->tail - nb->data); +- nb->tail = nb->data + 50; +- } + grub_net_link_level_address_t target; + struct grub_net_buff nb_reply; + struct arppkt *arp_reply; diff --git a/0166-Use-xid-to-match-DHCP-replies.patch b/0166-Use-xid-to-match-DHCP-replies.patch new file mode 100644 index 00000000..657ebb78 --- /dev/null +++ b/0166-Use-xid-to-match-DHCP-replies.patch @@ -0,0 +1,65 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Andrzej Kacprowski +Date: Fri, 21 Apr 2017 09:20:38 +0200 +Subject: [PATCH] Use xid to match DHCP replies + +Transaction identifier (xid) from DHCP request +packet is stored in network level interface and used +to match request with the responses it generates. + +Resolves: rhbz#1370642 + +Signed-off-by: Andrzej Kacprowski +--- + grub-core/net/bootp.c | 3 ++- + grub-core/net/ip.c | 1 + + include/grub/net.h | 3 ++- + 3 files changed, 5 insertions(+), 2 deletions(-) + +diff --git a/grub-core/net/bootp.c b/grub-core/net/bootp.c +index da3e454466b..2869482fe06 100644 +--- a/grub-core/net/bootp.c ++++ b/grub-core/net/bootp.c +@@ -777,7 +777,8 @@ grub_cmd_bootp (struct grub_command *cmd __attribute__ ((unused)), + grub_errno = GRUB_ERR_NONE; + t = 0; + } +- pack->ident = grub_cpu_to_be32 (t); ++ pack->xid = grub_cpu_to_be32 (t); ++ ifaces[j].dhcp_xid = pack->xid; + pack->seconds = grub_cpu_to_be16 (t); + + grub_memcpy (&pack->mac_addr, &ifaces[j].hwaddress.mac, 6); +diff --git a/grub-core/net/ip.c b/grub-core/net/ip.c +index 7c95cc7464a..8411e0ecca3 100644 +--- a/grub-core/net/ip.c ++++ b/grub-core/net/ip.c +@@ -275,6 +275,7 @@ handle_dgram (struct grub_net_buff *nb, + FOR_NET_NETWORK_LEVEL_INTERFACES (inf) + if (inf->card == card + && inf->address.type == GRUB_NET_NETWORK_LEVEL_PROTOCOL_DHCP_RECV ++ && inf->dhcp_xid == bootp->xid + && inf->hwaddress.type == GRUB_NET_LINK_LEVEL_PROTOCOL_ETHERNET + && grub_memcmp (inf->hwaddress.mac, &bootp->mac_addr, + sizeof (inf->hwaddress.mac)) == 0) +diff --git a/include/grub/net.h b/include/grub/net.h +index f8f3ec13acc..de51894cbbf 100644 +--- a/include/grub/net.h ++++ b/include/grub/net.h +@@ -292,6 +292,7 @@ struct grub_net_network_level_interface + struct grub_net_bootp_packet *dhcp_ack; + grub_size_t dhcp_acklen; + grub_uint16_t vlantag; ++ grub_uint32_t dhcp_xid; + void *data; + }; + +@@ -429,7 +430,7 @@ struct grub_net_bootp_packet + grub_uint8_t hw_type; /* hardware type. */ + grub_uint8_t hw_len; /* hardware addr len. */ + grub_uint8_t gate_hops; /* zero it. */ +- grub_uint32_t ident; /* random number chosen by client. */ ++ grub_uint32_t xid; /* transaction id chosen by client. */ + grub_uint16_t seconds; /* seconds since did initial bootstrap. */ + grub_uint16_t flags; + grub_uint32_t client_ip; diff --git a/0167-Add-support-for-non-Ethernet-network-cards.patch b/0167-Add-support-for-non-Ethernet-network-cards.patch new file mode 100644 index 00000000..e61bcc11 --- /dev/null +++ b/0167-Add-support-for-non-Ethernet-network-cards.patch @@ -0,0 +1,764 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Andrzej Kacprowski +Date: Fri, 21 Apr 2017 10:06:20 +0200 +Subject: [PATCH] Add support for non-Ethernet network cards + +This patch replaces fixed 6-byte link layer address with +up to 32-byte variable sized address. +This allows supporting Infiniband and Omni-Path fabric +which use 20-byte address, but other network card types +can also take advantage of this change. +The network card driver is responsible for replacing L2 +header provided by grub2 if needed. +This approach is compatible with UEFI network stack which +also allows up to 32-byte variable size link address. + +The BOOTP/DHCP packet format is limited to 16 byte client +hardware address, if link address is more that 16-bytes +then chaddr field in BOOTP it will be set to 0 as per rfc4390. + +Resolves: rhbz#1370642 + +Signed-off-by: Andrzej Kacprowski + +Conflicts: + grub-core/net/ip.c +--- + grub-core/net/arp.c | 155 ++++++++++++++++++++++----------- + grub-core/net/bootp.c | 14 ++- + grub-core/net/drivers/efi/efinet.c | 8 +- + grub-core/net/drivers/emu/emunet.c | 1 + + grub-core/net/drivers/i386/pc/pxe.c | 13 +-- + grub-core/net/drivers/ieee1275/ofnet.c | 2 + + grub-core/net/drivers/uboot/ubootnet.c | 1 + + grub-core/net/ethernet.c | 88 +++++++++---------- + grub-core/net/icmp6.c | 15 ++-- + grub-core/net/ip.c | 4 +- + grub-core/net/net.c | 48 +++++----- + include/grub/net.h | 19 ++-- + 12 files changed, 216 insertions(+), 152 deletions(-) + +diff --git a/grub-core/net/arp.c b/grub-core/net/arp.c +index 54306e3b16d..67b409a8acc 100644 +--- a/grub-core/net/arp.c ++++ b/grub-core/net/arp.c +@@ -31,22 +31,12 @@ enum + ARP_REPLY = 2 + }; + +-enum +- { +- /* IANA ARP constant to define hardware type as ethernet. */ +- GRUB_NET_ARPHRD_ETHERNET = 1 +- }; +- +-struct arppkt { ++struct arphdr { + grub_uint16_t hrd; + grub_uint16_t pro; + grub_uint8_t hln; + grub_uint8_t pln; + grub_uint16_t op; +- grub_uint8_t sender_mac[6]; +- grub_uint32_t sender_ip; +- grub_uint8_t recv_mac[6]; +- grub_uint32_t recv_ip; + } GRUB_PACKED; + + static int have_pending; +@@ -57,12 +47,16 @@ grub_net_arp_send_request (struct grub_net_network_level_interface *inf, + const grub_net_network_level_address_t *proto_addr) + { + struct grub_net_buff nb; +- struct arppkt *arp_packet; ++ struct arphdr *arp_header; + grub_net_link_level_address_t target_mac_addr; + grub_err_t err; + int i; + grub_uint8_t *nbd; + grub_uint8_t arp_data[128]; ++ grub_uint8_t hln; ++ grub_uint8_t pln; ++ grub_uint8_t arp_packet_len; ++ grub_uint8_t *tmp_ptr; + + if (proto_addr->type != GRUB_NET_NETWORK_LEVEL_PROTOCOL_IPV4) + return grub_error (GRUB_ERR_BUG, "unsupported address family"); +@@ -73,23 +67,39 @@ grub_net_arp_send_request (struct grub_net_network_level_interface *inf, + grub_netbuff_clear (&nb); + grub_netbuff_reserve (&nb, 128); + +- err = grub_netbuff_push (&nb, sizeof (*arp_packet)); ++ hln = inf->card->default_address.len; ++ pln = sizeof (proto_addr->ipv4); ++ arp_packet_len = sizeof (*arp_header) + 2 * (hln + pln); ++ ++ err = grub_netbuff_push (&nb, arp_packet_len); + if (err) + return err; + +- arp_packet = (struct arppkt *) nb.data; +- arp_packet->hrd = grub_cpu_to_be16_compile_time (GRUB_NET_ARPHRD_ETHERNET); +- arp_packet->hln = 6; +- arp_packet->pro = grub_cpu_to_be16_compile_time (GRUB_NET_ETHERTYPE_IP); +- arp_packet->pln = 4; +- arp_packet->op = grub_cpu_to_be16_compile_time (ARP_REQUEST); +- /* Sender hardware address. */ +- grub_memcpy (arp_packet->sender_mac, &inf->hwaddress.mac, 6); +- arp_packet->sender_ip = inf->address.ipv4; +- grub_memset (arp_packet->recv_mac, 0, 6); +- arp_packet->recv_ip = proto_addr->ipv4; +- /* Target protocol address */ +- grub_memset (&target_mac_addr.mac, 0xff, 6); ++ arp_header = (struct arphdr *) nb.data; ++ arp_header->hrd = grub_cpu_to_be16 (inf->card->default_address.type); ++ arp_header->hln = hln; ++ arp_header->pro = grub_cpu_to_be16_compile_time (GRUB_NET_ETHERTYPE_IP); ++ arp_header->pln = pln; ++ arp_header->op = grub_cpu_to_be16_compile_time (ARP_REQUEST); ++ tmp_ptr = nb.data + sizeof (*arp_header); ++ ++ /* The source hardware address. */ ++ grub_memcpy (tmp_ptr, inf->hwaddress.mac, hln); ++ tmp_ptr += hln; ++ ++ /* The source protocol address. */ ++ grub_memcpy (tmp_ptr, &inf->address.ipv4, pln); ++ tmp_ptr += pln; ++ ++ /* The target hardware address. */ ++ grub_memset (tmp_ptr, 0, hln); ++ tmp_ptr += hln; ++ ++ /* The target protocol address */ ++ grub_memcpy (tmp_ptr, &proto_addr->ipv4, pln); ++ tmp_ptr += pln; ++ ++ grub_memset (&target_mac_addr.mac, 0xff, hln); + + nbd = nb.data; + send_ethernet_packet (inf, &nb, target_mac_addr, GRUB_NET_ETHERTYPE_ARP); +@@ -114,28 +124,53 @@ grub_err_t + grub_net_arp_receive (struct grub_net_buff *nb, struct grub_net_card *card, + grub_uint16_t *vlantag) + { +- struct arppkt *arp_packet = (struct arppkt *) nb->data; ++ struct arphdr *arp_header = (struct arphdr *) nb->data; + grub_net_network_level_address_t sender_addr, target_addr; + grub_net_link_level_address_t sender_mac_addr; + struct grub_net_network_level_interface *inf; ++ grub_uint16_t hw_type; ++ grub_uint8_t hln; ++ grub_uint8_t pln; ++ grub_uint8_t arp_packet_len; ++ grub_uint8_t *tmp_ptr; + +- if (arp_packet->pro != grub_cpu_to_be16_compile_time (GRUB_NET_ETHERTYPE_IP) +- || arp_packet->pln != 4 || arp_packet->hln != 6 +- || nb->tail - nb->data < (int) sizeof (*arp_packet)) ++ hw_type = card->default_address.type; ++ hln = card->default_address.len; ++ pln = sizeof(sender_addr.ipv4); ++ arp_packet_len = sizeof (*arp_header) + 2 * (pln + hln); ++ ++ if (arp_header->pro != grub_cpu_to_be16_compile_time (GRUB_NET_ETHERTYPE_IP) ++ || arp_header->hrd != grub_cpu_to_be16 (hw_type) ++ || arp_header->hln != hln || arp_header->pln != pln ++ || nb->tail - nb->data < (int) arp_packet_len) { + return GRUB_ERR_NONE; ++ } + ++ tmp_ptr = nb->data + sizeof (*arp_header); ++ ++ /* The source hardware address. */ ++ sender_mac_addr.type = hw_type; ++ sender_mac_addr.len = hln; ++ grub_memcpy (sender_mac_addr.mac, tmp_ptr, hln); ++ tmp_ptr += hln; ++ ++ /* The source protocol address. */ + sender_addr.type = GRUB_NET_NETWORK_LEVEL_PROTOCOL_IPV4; ++ grub_memcpy(&sender_addr.ipv4, tmp_ptr, pln); ++ tmp_ptr += pln; ++ ++ grub_net_link_layer_add_address (card, &sender_addr, &sender_mac_addr, 1); ++ ++ /* The target hardware address. */ ++ tmp_ptr += hln; ++ ++ /* The target protocol address. */ + target_addr.type = GRUB_NET_NETWORK_LEVEL_PROTOCOL_IPV4; +- sender_addr.ipv4 = arp_packet->sender_ip; +- target_addr.ipv4 = arp_packet->recv_ip; +- if (arp_packet->sender_ip == pending_req) ++ grub_memcpy(&target_addr.ipv4, tmp_ptr, pln); ++ ++ if (sender_addr.ipv4 == pending_req) + have_pending = 1; + +- sender_mac_addr.type = GRUB_NET_LINK_LEVEL_PROTOCOL_ETHERNET; +- grub_memcpy (sender_mac_addr.mac, arp_packet->sender_mac, +- sizeof (sender_mac_addr.mac)); +- grub_net_link_layer_add_address (card, &sender_addr, &sender_mac_addr, 1); +- + FOR_NET_NETWORK_LEVEL_INTERFACES (inf) + { + /* Verify vlantag id */ +@@ -148,11 +183,11 @@ grub_net_arp_receive (struct grub_net_buff *nb, struct grub_net_card *card, + + /* Am I the protocol address target? */ + if (grub_net_addr_cmp (&inf->address, &target_addr) == 0 +- && arp_packet->op == grub_cpu_to_be16_compile_time (ARP_REQUEST)) ++ && arp_header->op == grub_cpu_to_be16_compile_time (ARP_REQUEST)) + { + grub_net_link_level_address_t target; + struct grub_net_buff nb_reply; +- struct arppkt *arp_reply; ++ struct arphdr *arp_reply; + grub_uint8_t arp_data[128]; + grub_err_t err; + +@@ -161,25 +196,39 @@ grub_net_arp_receive (struct grub_net_buff *nb, struct grub_net_card *card, + grub_netbuff_clear (&nb_reply); + grub_netbuff_reserve (&nb_reply, 128); + +- err = grub_netbuff_push (&nb_reply, sizeof (*arp_packet)); ++ err = grub_netbuff_push (&nb_reply, arp_packet_len); + if (err) + return err; + +- arp_reply = (struct arppkt *) nb_reply.data; ++ arp_reply = (struct arphdr *) nb_reply.data; + +- arp_reply->hrd = grub_cpu_to_be16_compile_time (GRUB_NET_ARPHRD_ETHERNET); ++ arp_reply->hrd = grub_cpu_to_be16 (hw_type); + arp_reply->pro = grub_cpu_to_be16_compile_time (GRUB_NET_ETHERTYPE_IP); +- arp_reply->pln = 4; +- arp_reply->hln = 6; ++ arp_reply->pln = pln; ++ arp_reply->hln = hln; + arp_reply->op = grub_cpu_to_be16_compile_time (ARP_REPLY); +- arp_reply->sender_ip = arp_packet->recv_ip; +- arp_reply->recv_ip = arp_packet->sender_ip; +- arp_reply->hln = 6; +- +- target.type = GRUB_NET_LINK_LEVEL_PROTOCOL_ETHERNET; +- grub_memcpy (target.mac, arp_packet->sender_mac, 6); +- grub_memcpy (arp_reply->sender_mac, inf->hwaddress.mac, 6); +- grub_memcpy (arp_reply->recv_mac, arp_packet->sender_mac, 6); ++ ++ tmp_ptr = nb_reply.data + sizeof (*arp_reply); ++ ++ /* The source hardware address. */ ++ grub_memcpy (tmp_ptr, inf->hwaddress.mac, hln); ++ tmp_ptr += hln; ++ ++ /* The source protocol address. */ ++ grub_memcpy (tmp_ptr, &target_addr.ipv4, pln); ++ tmp_ptr += pln; ++ ++ /* The target hardware address. */ ++ grub_memcpy (tmp_ptr, sender_mac_addr.mac, hln); ++ tmp_ptr += hln; ++ ++ /* The target protocol address */ ++ grub_memcpy (tmp_ptr, &sender_addr.ipv4, pln); ++ tmp_ptr += pln; ++ ++ target.type = hw_type; ++ target.len = hln; ++ grub_memcpy (target.mac, sender_mac_addr.mac, hln); + + /* Change operation to REPLY and send packet */ + send_ethernet_packet (inf, &nb_reply, target, GRUB_NET_ETHERTYPE_ARP); +diff --git a/grub-core/net/bootp.c b/grub-core/net/bootp.c +index 2869482fe06..4e55adc557b 100644 +--- a/grub-core/net/bootp.c ++++ b/grub-core/net/bootp.c +@@ -219,7 +219,6 @@ grub_net_configure_by_dhcp_ack (const char *name, + int is_def, char **device, char **path) + { + grub_net_network_level_address_t addr; +- grub_net_link_level_address_t hwaddr; + struct grub_net_network_level_interface *inter; + int mask = -1; + char server_ip[sizeof ("xxx.xxx.xxx.xxx")]; +@@ -232,12 +231,8 @@ grub_net_configure_by_dhcp_ack (const char *name, + if (path) + *path = 0; + +- grub_memcpy (hwaddr.mac, bp->mac_addr, +- bp->hw_len < sizeof (hwaddr.mac) ? bp->hw_len +- : sizeof (hwaddr.mac)); +- hwaddr.type = GRUB_NET_LINK_LEVEL_PROTOCOL_ETHERNET; +- +- inter = grub_net_add_addr (name, card, &addr, &hwaddr, flags); ++ grub_dprintf("dhcp", "configuring dhcp for %s\n", name); ++ inter = grub_net_add_addr (name, card, &addr, &card->default_address, flags); + if (!inter) + return 0; + +@@ -770,7 +765,8 @@ grub_cmd_bootp (struct grub_command *cmd __attribute__ ((unused)), + grub_memset (pack, 0, sizeof (*pack) + 64); + pack->opcode = 1; + pack->hw_type = 1; +- pack->hw_len = 6; ++ pack->hw_len = ifaces[j].hwaddress.len > 16 ? 0 ++ : ifaces[j].hwaddress.len; + err = grub_get_datetime (&date); + if (err || !grub_datetime2unixtime (&date, &t)) + { +@@ -781,7 +777,7 @@ grub_cmd_bootp (struct grub_command *cmd __attribute__ ((unused)), + ifaces[j].dhcp_xid = pack->xid; + pack->seconds = grub_cpu_to_be16 (t); + +- grub_memcpy (&pack->mac_addr, &ifaces[j].hwaddress.mac, 6); ++ grub_memcpy (&pack->mac_addr, &ifaces[j].hwaddress.mac, pack->hw_len); + + grub_netbuff_push (nb, sizeof (*udph)); + +diff --git a/grub-core/net/drivers/efi/efinet.c b/grub-core/net/drivers/efi/efinet.c +index 329024b6f2c..bf36b446dc4 100644 +--- a/grub-core/net/drivers/efi/efinet.c ++++ b/grub-core/net/drivers/efi/efinet.c +@@ -329,6 +329,9 @@ grub_efinet_find_snp_cards (int preferred_only, grub_efi_handle_t preferred, + /* This should not happen... Why? */ + continue; + ++ if (net->mode->hwaddr_size > GRUB_NET_MAX_LINK_ADDRESS_SIZE) ++ continue; ++ + if (net->mode->state == GRUB_EFI_NETWORK_STOPPED + && efi_call_1 (net->start, net) != GRUB_EFI_SUCCESS) + continue; +@@ -366,10 +369,11 @@ grub_efinet_find_snp_cards (int preferred_only, grub_efi_handle_t preferred, + *i = (*i)+1; + card->driver = &efidriver; + card->flags = 0; +- card->default_address.type = GRUB_NET_LINK_LEVEL_PROTOCOL_ETHERNET; ++ card->default_address.type = net->mode->if_type; ++ card->default_address.len = net->mode->hwaddr_size; + grub_memcpy (card->default_address.mac, + net->mode->current_address, +- sizeof (card->default_address.mac)); ++ net->mode->hwaddr_size); + card->efi_net = net; + card->efi_handle = *handle; + +diff --git a/grub-core/net/drivers/emu/emunet.c b/grub-core/net/drivers/emu/emunet.c +index b194920861f..5b6c5e16a6d 100644 +--- a/grub-core/net/drivers/emu/emunet.c ++++ b/grub-core/net/drivers/emu/emunet.c +@@ -46,6 +46,7 @@ static struct grub_net_card emucard = + .mtu = 1500, + .default_address = { + .type = GRUB_NET_LINK_LEVEL_PROTOCOL_ETHERNET, ++ . len = 6, + {.mac = {0, 1, 2, 3, 4, 5}} + }, + .flags = 0 +diff --git a/grub-core/net/drivers/i386/pc/pxe.c b/grub-core/net/drivers/i386/pc/pxe.c +index 3f4152d036c..9f8fb4b6d2b 100644 +--- a/grub-core/net/drivers/i386/pc/pxe.c ++++ b/grub-core/net/drivers/i386/pc/pxe.c +@@ -386,20 +386,21 @@ GRUB_MOD_INIT(pxe) + grub_memset (ui, 0, sizeof (*ui)); + grub_pxe_call (GRUB_PXENV_UNDI_GET_INFORMATION, ui, pxe_rm_entry); + ++ grub_pxe_card.default_address.len = 6; + grub_memcpy (grub_pxe_card.default_address.mac, ui->current_addr, +- sizeof (grub_pxe_card.default_address.mac)); +- for (i = 0; i < sizeof (grub_pxe_card.default_address.mac); i++) ++ grub_pxe_card.default_address.len); ++ for (i = 0; i < grub_pxe_card.default_address.len; i++) + if (grub_pxe_card.default_address.mac[i] != 0) + break; +- if (i != sizeof (grub_pxe_card.default_address.mac)) ++ if (i != grub_pxe_card.default_address.len) + { +- for (i = 0; i < sizeof (grub_pxe_card.default_address.mac); i++) ++ for (i = 0; i < grub_pxe_card.default_address.len; i++) + if (grub_pxe_card.default_address.mac[i] != 0xff) + break; + } +- if (i == sizeof (grub_pxe_card.default_address.mac)) ++ if (i == grub_pxe_card.default_address.len) + grub_memcpy (grub_pxe_card.default_address.mac, ui->permanent_addr, +- sizeof (grub_pxe_card.default_address.mac)); ++ grub_pxe_card.default_address.len); + grub_pxe_card.mtu = ui->mtu; + + grub_pxe_card.default_address.type = GRUB_NET_LINK_LEVEL_PROTOCOL_ETHERNET; +diff --git a/grub-core/net/drivers/ieee1275/ofnet.c b/grub-core/net/drivers/ieee1275/ofnet.c +index 3df75357a70..ba50415f5f6 100644 +--- a/grub-core/net/drivers/ieee1275/ofnet.c ++++ b/grub-core/net/drivers/ieee1275/ofnet.c +@@ -160,6 +160,7 @@ grub_ieee1275_parse_bootpath (const char *devpath, char *bootpath, + grub_uint16_t vlantag = 0; + + hw_addr.type = GRUB_NET_LINK_LEVEL_PROTOCOL_ETHERNET; ++ hw_addr.len = 6; + + args = bootpath + grub_strlen (devpath) + 1; + do +@@ -503,6 +504,7 @@ search_net_devices (struct grub_ieee1275_devalias *alias) + grub_memcpy (&lla.mac, pprop, 6); + + lla.type = GRUB_NET_LINK_LEVEL_PROTOCOL_ETHERNET; ++ lla.len = 6; + card->default_address = lla; + + card->txbufsize = ALIGN_UP (card->mtu, 64) + 256; +diff --git a/grub-core/net/drivers/uboot/ubootnet.c b/grub-core/net/drivers/uboot/ubootnet.c +index 056052e40d5..22ebcbf211e 100644 +--- a/grub-core/net/drivers/uboot/ubootnet.c ++++ b/grub-core/net/drivers/uboot/ubootnet.c +@@ -131,6 +131,7 @@ GRUB_MOD_INIT (ubootnet) + + grub_memcpy (&(card->default_address.mac), &devinfo->di_net.hwaddr, 6); + card->default_address.type = GRUB_NET_LINK_LEVEL_PROTOCOL_ETHERNET; ++ card->default_address.len = 6; + + card->txbufsize = ALIGN_UP (card->mtu, 64) + 256; + card->txbuf = grub_zalloc (card->txbufsize); +diff --git a/grub-core/net/ethernet.c b/grub-core/net/ethernet.c +index 4d7ceed6f93..9aae83a5eb4 100644 +--- a/grub-core/net/ethernet.c ++++ b/grub-core/net/ethernet.c +@@ -29,13 +29,6 @@ + + #define LLCADDRMASK 0x7f + +-struct etherhdr +-{ +- grub_uint8_t dst[6]; +- grub_uint8_t src[6]; +- grub_uint16_t type; +-} GRUB_PACKED; +- + struct llchdr + { + grub_uint8_t dsap; +@@ -55,13 +48,15 @@ send_ethernet_packet (struct grub_net_network_level_interface *inf, + grub_net_link_level_address_t target_addr, + grub_net_ethertype_t ethertype) + { +- struct etherhdr *eth; ++ grub_uint8_t *eth; + grub_err_t err; +- grub_uint8_t etherhdr_size; +- grub_uint16_t vlantag_id = VLANTAG_IDENTIFIER; ++ grub_uint32_t vlantag = 0; ++ grub_uint8_t hw_addr_len = inf->card->default_address.len; ++ grub_uint8_t etherhdr_size = 2 * hw_addr_len + 2; + +- etherhdr_size = sizeof (*eth); +- COMPILE_TIME_ASSERT (sizeof (*eth) + 4 < GRUB_NET_MAX_LINK_HEADER_SIZE); ++ /* Source and destination link addresses + ethertype + vlan tag */ ++ COMPILE_TIME_ASSERT ((GRUB_NET_MAX_LINK_ADDRESS_SIZE * 2 + 2 + 4) < ++ GRUB_NET_MAX_LINK_HEADER_SIZE); + + /* Increase ethernet header in case of vlantag */ + if (inf->vlantag != 0) +@@ -70,11 +65,22 @@ send_ethernet_packet (struct grub_net_network_level_interface *inf, + err = grub_netbuff_push (nb, etherhdr_size); + if (err) + return err; +- eth = (struct etherhdr *) nb->data; +- grub_memcpy (eth->dst, target_addr.mac, 6); +- grub_memcpy (eth->src, inf->hwaddress.mac, 6); ++ eth = nb->data; ++ grub_memcpy (eth, target_addr.mac, hw_addr_len); ++ eth += hw_addr_len; ++ grub_memcpy (eth, inf->hwaddress.mac, hw_addr_len); ++ eth += hw_addr_len; ++ ++ /* Check if a vlan-tag is present. */ ++ if (vlantag != 0) ++ { ++ *((grub_uint32_t *)eth) = grub_cpu_to_be32 (vlantag); ++ eth += sizeof (vlantag); ++ } ++ ++ /* Write ethertype */ ++ *((grub_uint16_t*) eth) = grub_cpu_to_be16 (ethertype); + +- eth->type = grub_cpu_to_be16 (ethertype); + if (!inf->card->opened) + { + err = GRUB_ERR_NONE; +@@ -85,18 +91,6 @@ send_ethernet_packet (struct grub_net_network_level_interface *inf, + inf->card->opened = 1; + } + +- /* Check and add a vlan-tag if needed. */ +- if (inf->vlantag != 0) +- { +- /* Move eth type to the right */ +- grub_memcpy ((char *) nb->data + etherhdr_size - 2, +- (char *) nb->data + etherhdr_size - 6, 2); +- +- /* Add the tag in the middle */ +- grub_memcpy ((char *) nb->data + etherhdr_size - 6, &vlantag_id, 2); +- grub_memcpy ((char *) nb->data + etherhdr_size - 4, (char *) &(inf->vlantag), 2); +- } +- + return inf->card->driver->send (inf->card, nb); + } + +@@ -104,31 +98,40 @@ grub_err_t + grub_net_recv_ethernet_packet (struct grub_net_buff *nb, + struct grub_net_card *card) + { +- struct etherhdr *eth; ++ grub_uint8_t *eth; + struct llchdr *llch; + struct snaphdr *snaph; + grub_net_ethertype_t type; + grub_net_link_level_address_t hwaddress; + grub_net_link_level_address_t src_hwaddress; + grub_err_t err; +- grub_uint8_t etherhdr_size = sizeof (*eth); ++ grub_uint8_t hw_addr_len = card->default_address.len; ++ grub_uint8_t etherhdr_size = 2 * hw_addr_len + 2; + grub_uint16_t vlantag = 0; + ++ eth = nb->data; + +- /* Check if a vlan-tag is present. If so, the ethernet header is 4 bytes */ +- /* longer than the original one. The vlantag id is extracted and the header */ +- /* is reseted to the original size. */ +- if (grub_get_unaligned16 (nb->data + etherhdr_size - 2) == VLANTAG_IDENTIFIER) ++ hwaddress.type = card->default_address.type; ++ hwaddress.len = hw_addr_len; ++ grub_memcpy (hwaddress.mac, eth, hw_addr_len); ++ eth += hw_addr_len; ++ ++ src_hwaddress.type = card->default_address.type; ++ src_hwaddress.len = hw_addr_len; ++ grub_memcpy (src_hwaddress.mac, eth, hw_addr_len); ++ eth += hw_addr_len; ++ ++ type = grub_be_to_cpu16 (*(grub_uint16_t*)(eth)); ++ if (type == VLANTAG_IDENTIFIER) + { +- vlantag = grub_get_unaligned16 (nb->data + etherhdr_size); ++ /* Skip vlan tag */ ++ eth += 2; ++ vlantag = grub_be_to_cpu16 (*(grub_uint16_t*)(eth)); + etherhdr_size += 4; +- /* Move eth type to the original position */ +- grub_memcpy((char *) nb->data + etherhdr_size - 6, +- (char *) nb->data + etherhdr_size - 2, 2); ++ eth += 2; ++ type = grub_be_to_cpu16 (*(grub_uint16_t*)(eth)); + } + +- eth = (struct etherhdr *) nb->data; +- type = grub_be_to_cpu16 (eth->type); + err = grub_netbuff_pull (nb, etherhdr_size); + if (err) + return err; +@@ -148,11 +151,6 @@ grub_net_recv_ethernet_packet (struct grub_net_buff *nb, + } + } + +- hwaddress.type = GRUB_NET_LINK_LEVEL_PROTOCOL_ETHERNET; +- grub_memcpy (hwaddress.mac, eth->dst, sizeof (hwaddress.mac)); +- src_hwaddress.type = GRUB_NET_LINK_LEVEL_PROTOCOL_ETHERNET; +- grub_memcpy (src_hwaddress.mac, eth->src, sizeof (src_hwaddress.mac)); +- + switch (type) + { + /* ARP packet. */ +diff --git a/grub-core/net/icmp6.c b/grub-core/net/icmp6.c +index 2cbd95dce25..56a3ec5c8e8 100644 +--- a/grub-core/net/icmp6.c ++++ b/grub-core/net/icmp6.c +@@ -231,8 +231,9 @@ grub_net_recv_icmp6_packet (struct grub_net_buff *nb, + && ohdr->len == 1) + { + grub_net_link_level_address_t ll_address; +- ll_address.type = GRUB_NET_LINK_LEVEL_PROTOCOL_ETHERNET; +- grub_memcpy (ll_address.mac, ohdr + 1, sizeof (ll_address.mac)); ++ ll_address.type = card->default_address.type; ++ ll_address.len = card->default_address.len; ++ grub_memcpy (ll_address.mac, ohdr + 1, ll_address.len); + grub_net_link_layer_add_address (card, source, &ll_address, 0); + } + } +@@ -335,8 +336,9 @@ grub_net_recv_icmp6_packet (struct grub_net_buff *nb, + && ohdr->len == 1) + { + grub_net_link_level_address_t ll_address; +- ll_address.type = GRUB_NET_LINK_LEVEL_PROTOCOL_ETHERNET; +- grub_memcpy (ll_address.mac, ohdr + 1, sizeof (ll_address.mac)); ++ ll_address.type = card->default_address.type; ++ ll_address.len = card->default_address.len; ++ grub_memcpy (ll_address.mac, ohdr + 1, ll_address.len); + grub_net_link_layer_add_address (card, source, &ll_address, 0); + } + } +@@ -384,8 +386,9 @@ grub_net_recv_icmp6_packet (struct grub_net_buff *nb, + && ohdr->len == 1) + { + grub_net_link_level_address_t ll_address; +- ll_address.type = GRUB_NET_LINK_LEVEL_PROTOCOL_ETHERNET; +- grub_memcpy (ll_address.mac, ohdr + 1, sizeof (ll_address.mac)); ++ ll_address.type = card->default_address.type; ++ ll_address.len = card->default_address.len; ++ grub_memcpy (ll_address.mac, ohdr + 1, ll_address.len); + grub_net_link_layer_add_address (card, source, &ll_address, 0); + } + if (ohdr->type == OPTION_PREFIX && ohdr->len == 4) +diff --git a/grub-core/net/ip.c b/grub-core/net/ip.c +index 8411e0ecca3..b2ca74b6eb1 100644 +--- a/grub-core/net/ip.c ++++ b/grub-core/net/ip.c +@@ -277,8 +277,8 @@ handle_dgram (struct grub_net_buff *nb, + && inf->address.type == GRUB_NET_NETWORK_LEVEL_PROTOCOL_DHCP_RECV + && inf->dhcp_xid == bootp->xid + && inf->hwaddress.type == GRUB_NET_LINK_LEVEL_PROTOCOL_ETHERNET +- && grub_memcmp (inf->hwaddress.mac, &bootp->mac_addr, +- sizeof (inf->hwaddress.mac)) == 0) ++ && (grub_memcmp (inf->hwaddress.mac, &bootp->mac_addr, ++ bootp->hw_len) == 0 || bootp->hw_len == 0)) + { + grub_net_process_dhcp (nb, inf->card); + grub_netbuff_free (nb); +diff --git a/grub-core/net/net.c b/grub-core/net/net.c +index fa3e2912643..9b8944292c7 100644 +--- a/grub-core/net/net.c ++++ b/grub-core/net/net.c +@@ -128,8 +128,9 @@ grub_net_link_layer_resolve (struct grub_net_network_level_interface *inf, + << 48) + && proto_addr->ipv6[1] == (grub_be_to_cpu64_compile_time (1)))) + { +- hw_addr->type = GRUB_NET_LINK_LEVEL_PROTOCOL_ETHERNET; +- grub_memset (hw_addr->mac, -1, 6); ++ hw_addr->type = inf->card->default_address.type; ++ hw_addr->len = inf->card->default_address.len; ++ grub_memset (hw_addr->mac, -1, hw_addr->len); + return GRUB_ERR_NONE; + } + +@@ -137,6 +138,7 @@ grub_net_link_layer_resolve (struct grub_net_network_level_interface *inf, + && ((grub_be_to_cpu64 (proto_addr->ipv6[0]) >> 56) == 0xff)) + { + hw_addr->type = GRUB_NET_LINK_LEVEL_PROTOCOL_ETHERNET; ++ hw_addr->len = inf->card->default_address.len; + hw_addr->mac[0] = 0x33; + hw_addr->mac[1] = 0x33; + hw_addr->mac[2] = ((grub_be_to_cpu64 (proto_addr->ipv6[1]) >> 24) & 0xff); +@@ -757,23 +759,21 @@ grub_net_addr_to_str (const grub_net_network_level_address_t *target, char *buf) + void + grub_net_hwaddr_to_str (const grub_net_link_level_address_t *addr, char *str) + { +- str[0] = 0; +- switch (addr->type) ++ char *ptr; ++ unsigned i; ++ ++ if (addr->len > GRUB_NET_MAX_LINK_ADDRESS_SIZE) + { +- case GRUB_NET_LINK_LEVEL_PROTOCOL_ETHERNET: +- { +- char *ptr; +- unsigned i; +- for (ptr = str, i = 0; i < ARRAY_SIZE (addr->mac); i++) +- { +- grub_snprintf (ptr, GRUB_NET_MAX_STR_HWADDR_LEN - (ptr - str), +- "%02x:", addr->mac[i] & 0xff); +- ptr += (sizeof ("XX:") - 1); +- } +- return; +- } ++ str[0] = 0; ++ grub_printf (_("Unsupported hw address type %d len %d\n"), ++ addr->type, addr->len); ++ return; ++ } ++ for (ptr = str, i = 0; i < addr->len; i++) ++ { ++ ptr += grub_snprintf (ptr, GRUB_NET_MAX_STR_HWADDR_LEN - (ptr - str), ++ "%02x:", addr->mac[i] & 0xff); + } +- grub_printf (_("Unsupported hw address type %d\n"), addr->type); + } + + int +@@ -784,13 +784,17 @@ grub_net_hwaddr_cmp (const grub_net_link_level_address_t *a, + return -1; + if (a->type > b->type) + return +1; +- switch (a->type) ++ if (a->len < b->len) ++ return -1; ++ if (a->len > b->len) ++ return +1; ++ if (a->len > GRUB_NET_MAX_LINK_ADDRESS_SIZE) + { +- case GRUB_NET_LINK_LEVEL_PROTOCOL_ETHERNET: +- return grub_memcmp (a->mac, b->mac, sizeof (a->mac)); ++ grub_printf (_("Unsupported hw address type %d len %d\n"), ++ a->type, a->len); ++ return + 1; + } +- grub_printf (_("Unsupported hw address type %d\n"), a->type); +- return 1; ++ return grub_memcmp (a->mac, b->mac, a->len); + } + + int +diff --git a/include/grub/net.h b/include/grub/net.h +index de51894cbbf..e9ebc6a1b4f 100644 +--- a/include/grub/net.h ++++ b/include/grub/net.h +@@ -29,7 +29,8 @@ + + enum + { +- GRUB_NET_MAX_LINK_HEADER_SIZE = 64, ++ GRUB_NET_MAX_LINK_HEADER_SIZE = 96, ++ GRUB_NET_MAX_LINK_ADDRESS_SIZE = 32, + GRUB_NET_UDP_HEADER_SIZE = 8, + GRUB_NET_TCP_HEADER_SIZE = 20, + GRUB_NET_OUR_IPV4_HEADER_SIZE = 20, +@@ -42,15 +43,17 @@ enum + + typedef enum grub_link_level_protocol_id + { +- GRUB_NET_LINK_LEVEL_PROTOCOL_ETHERNET ++ /* IANA ARP constant to define hardware type. */ ++ GRUB_NET_LINK_LEVEL_PROTOCOL_ETHERNET = 1, + } grub_link_level_protocol_id_t; + + typedef struct grub_net_link_level_address + { + grub_link_level_protocol_id_t type; ++ grub_uint8_t len; + union + { +- grub_uint8_t mac[6]; ++ grub_uint8_t mac[GRUB_NET_MAX_LINK_ADDRESS_SIZE]; + }; + } grub_net_link_level_address_t; + +@@ -555,11 +558,13 @@ grub_net_addr_cmp (const grub_net_network_level_address_t *a, + #define GRUB_NET_MAX_STR_ADDR_LEN sizeof ("XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX") + + /* +- Currently suppoerted adresses: +- ethernet: XX:XX:XX:XX:XX:XX ++ Up to 32 byte hardware address supported, see GRUB_NET_MAX_LINK_ADDRESS_SIZE + */ +- +-#define GRUB_NET_MAX_STR_HWADDR_LEN (sizeof ("XX:XX:XX:XX:XX:XX")) ++#define GRUB_NET_MAX_STR_HWADDR_LEN (sizeof (\ ++ "XX:XX:XX:XX:XX:XX:XX:XX:"\ ++ "XX:XX:XX:XX:XX:XX:XX:XX:"\ ++ "XX:XX:XX:XX:XX:XX:XX:XX:"\ ++ "XX:XX:XX:XX:XX:XX:XX:XX")) + + void + grub_net_addr_to_str (const grub_net_network_level_address_t *target, diff --git a/0168-misc-fix-invalid-character-recongition-in-strto-l.patch b/0168-misc-fix-invalid-character-recongition-in-strto-l.patch new file mode 100644 index 00000000..40060286 --- /dev/null +++ b/0168-misc-fix-invalid-character-recongition-in-strto-l.patch @@ -0,0 +1,37 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Aaron Miller +Date: Fri, 29 Jul 2016 17:41:27 +0800 +Subject: [PATCH] misc: fix invalid character recongition in strto*l + +Would previously allow digits larger than the base and didn't check that +subtracting the difference from 0-9 to lowercase letters for characters +larger than 9 didn't result in a value lower than 9, which allowed the +parses: ` = 9, _ = 8, ^ = 7, ] = 6, \ = 5, and [ = 4 +--- + grub-core/kern/misc.c | 13 ++++++++----- + 1 file changed, 8 insertions(+), 5 deletions(-) + +diff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c +index 0e89c483d5e..5c3899f0e5b 100644 +--- a/grub-core/kern/misc.c ++++ b/grub-core/kern/misc.c +@@ -434,11 +434,14 @@ grub_strtoull (const char *str, char **end, int base) + unsigned long digit; + + digit = grub_tolower (*str) - '0'; +- if (digit >= 'a' - '0') +- digit += '0' - 'a' + 10; +- else if (digit > 9) +- break; +- ++ if (digit > 9) ++ { ++ digit += '0' - 'a' + 10; ++ /* digit <= 9 check is needed to keep chars larger than ++ '9' but less than 'a' from being read as numbers */ ++ if (digit >= (unsigned long) base || digit <= 9) ++ break; ++ } + if (digit >= (unsigned long) base) + break; + diff --git a/0169-net-read-bracketed-ipv6-addrs-and-port-numbers.patch b/0169-net-read-bracketed-ipv6-addrs-and-port-numbers.patch new file mode 100644 index 00000000..4f681878 --- /dev/null +++ b/0169-net-read-bracketed-ipv6-addrs-and-port-numbers.patch @@ -0,0 +1,229 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Aaron Miller +Date: Fri, 29 Jul 2016 17:41:38 +0800 +Subject: [PATCH] net: read bracketed ipv6 addrs and port numbers + +Allow specifying port numbers for http and tftp paths, and allow ipv6 addresses +to be recognized with brackets around them, which is required to specify a port +number +--- + grub-core/net/http.c | 21 +++++++++++--- + grub-core/net/net.c | 77 ++++++++++++++++++++++++++++++++++++++++++++++++++++ + grub-core/net/tftp.c | 8 ++++-- + include/grub/net.h | 1 + + 4 files changed, 101 insertions(+), 6 deletions(-) + +diff --git a/grub-core/net/http.c b/grub-core/net/http.c +index 5aa4ad3befc..f182d7b871d 100644 +--- a/grub-core/net/http.c ++++ b/grub-core/net/http.c +@@ -312,12 +312,14 @@ http_establish (struct grub_file *file, grub_off_t offset, int initial) + int i; + struct grub_net_buff *nb; + grub_err_t err; ++ char* server = file->device->net->server; ++ int port = file->device->net->port; + + nb = grub_netbuff_alloc (GRUB_NET_TCP_RESERVE_SIZE + + sizeof ("GET ") - 1 + + grub_strlen (data->filename) + + sizeof (" HTTP/1.1\r\nHost: ") - 1 +- + grub_strlen (file->device->net->server) ++ + grub_strlen (server) + sizeof (":XXXXXXXXXX") + + sizeof ("\r\nUser-Agent: " PACKAGE_STRING + "\r\n") - 1 + + sizeof ("Range: bytes=XXXXXXXXXXXXXXXXXXXX" +@@ -356,7 +358,7 @@ http_establish (struct grub_file *file, grub_off_t offset, int initial) + sizeof (" HTTP/1.1\r\nHost: ") - 1); + + ptr = nb->tail; +- err = grub_netbuff_put (nb, grub_strlen (file->device->net->server)); ++ err = grub_netbuff_put (nb, grub_strlen (server)); + if (err) + { + grub_netbuff_free (nb); +@@ -365,6 +367,15 @@ http_establish (struct grub_file *file, grub_off_t offset, int initial) + grub_memcpy (ptr, file->device->net->server, + grub_strlen (file->device->net->server)); + ++ if (port) ++ { ++ ptr = nb->tail; ++ grub_snprintf ((char *) ptr, ++ sizeof (":XXXXXXXXXX"), ++ ":%d", ++ port); ++ } ++ + ptr = nb->tail; + err = grub_netbuff_put (nb, + sizeof ("\r\nUser-Agent: " PACKAGE_STRING "\r\n") +@@ -390,8 +401,10 @@ http_establish (struct grub_file *file, grub_off_t offset, int initial) + grub_netbuff_put (nb, 2); + grub_memcpy (ptr, "\r\n", 2); + +- data->sock = grub_net_tcp_open (file->device->net->server, +- HTTP_PORT, http_receive, ++ grub_dprintf ("http", "opening path %s on host %s TCP port %d\n", ++ data->filename, server, port ? port : HTTP_PORT); ++ data->sock = grub_net_tcp_open (server, ++ port ? port : HTTP_PORT, http_receive, + http_err, http_err, + file); + if (!data->sock) +diff --git a/grub-core/net/net.c b/grub-core/net/net.c +index 9b8944292c7..1f887d44b32 100644 +--- a/grub-core/net/net.c ++++ b/grub-core/net/net.c +@@ -439,6 +439,12 @@ parse_ip6 (const char *val, grub_uint64_t *ip, const char **rest) + grub_uint16_t newip[8]; + const char *ptr = val; + int word, quaddot = -1; ++ int bracketed = 0; ++ ++ if (ptr[0] == '[') { ++ bracketed = 1; ++ ptr++; ++ } + + if (ptr[0] == ':' && ptr[1] != ':') + return 0; +@@ -477,6 +483,9 @@ parse_ip6 (const char *val, grub_uint64_t *ip, const char **rest) + grub_memset (&newip[quaddot], 0, (7 - word) * sizeof (newip[0])); + } + grub_memcpy (ip, newip, 16); ++ if (bracketed && *ptr == ']') { ++ ptr++; ++ } + if (rest) + *rest = ptr; + return 1; +@@ -1336,8 +1345,10 @@ grub_net_open_real (const char *name) + { + grub_net_app_level_t proto; + const char *protname, *server; ++ char *host; + grub_size_t protnamelen; + int try; ++ int port = 0; + + if (grub_strncmp (name, "pxe:", sizeof ("pxe:") - 1) == 0) + { +@@ -1375,6 +1386,72 @@ grub_net_open_real (const char *name) + return NULL; + } + ++ char* port_start; ++ /* ipv6 or port specified? */ ++ if ((port_start = grub_strchr (server, ':'))) ++ { ++ char* ipv6_begin; ++ if((ipv6_begin = grub_strchr (server, '['))) ++ { ++ char* ipv6_end = grub_strchr (server, ']'); ++ if(!ipv6_end) ++ { ++ grub_error (GRUB_ERR_NET_BAD_ADDRESS, ++ N_("mismatched [ in address")); ++ return NULL; ++ } ++ /* port number after bracketed ipv6 addr */ ++ if(ipv6_end[1] == ':') ++ { ++ port = grub_strtoul (ipv6_end + 2, NULL, 10); ++ if(port > 65535) ++ { ++ grub_error (GRUB_ERR_NET_BAD_ADDRESS, ++ N_("bad port number")); ++ return NULL; ++ } ++ } ++ host = grub_strndup (ipv6_begin, (ipv6_end - ipv6_begin) + 1); ++ } ++ else ++ { ++ if (grub_strchr (port_start + 1, ':')) ++ { ++ int iplen = grub_strlen (server); ++ /* bracket bare ipv6 addrs */ ++ host = grub_malloc (iplen + 3); ++ if(!host) ++ { ++ return NULL; ++ } ++ host[0] = '['; ++ grub_memcpy (host + 1, server, iplen); ++ host[iplen + 1] = ']'; ++ host[iplen + 2] = '\0'; ++ } ++ else ++ { ++ /* hostname:port or ipv4:port */ ++ port = grub_strtol (port_start + 1, NULL, 10); ++ if(port > 65535) ++ { ++ grub_error (GRUB_ERR_NET_BAD_ADDRESS, ++ N_("bad port number")); ++ return NULL; ++ } ++ host = grub_strndup (server, port_start - server); ++ } ++ } ++ } ++ else ++ { ++ host = grub_strdup (server); ++ } ++ if (!host) ++ { ++ return NULL; ++ } ++ + for (try = 0; try < 2; try++) + { + FOR_NET_APP_LEVEL (proto) +diff --git a/grub-core/net/tftp.c b/grub-core/net/tftp.c +index f90071353ad..e267af354f4 100644 +--- a/grub-core/net/tftp.c ++++ b/grub-core/net/tftp.c +@@ -333,6 +333,7 @@ tftp_open (struct grub_file *file, const char *filename) + grub_err_t err; + grub_uint8_t *nbd; + grub_net_network_level_address_t addr; ++ int port = file->device->net->port; + + data = grub_zalloc (sizeof (*data)); + if (!data) +@@ -405,7 +406,10 @@ tftp_open (struct grub_file *file, const char *filename) + err = grub_net_resolve_address (file->device->net->server, &addr); + if (err) + { +- grub_dprintf("tftp", "Address resolution failed: %d\n", err); ++ grub_dprintf ("tftp", "Address resolution failed: %d\n", err); ++ grub_dprintf ("tftp", "file_size is %llu, block_size is %llu\n", ++ (unsigned long long)data->file_size, ++ (unsigned long long)data->block_size); + destroy_pq (data); + grub_free (data); + return err; +@@ -413,7 +417,7 @@ tftp_open (struct grub_file *file, const char *filename) + + grub_dprintf("tftp", "opening connection\n"); + data->sock = grub_net_udp_open (addr, +- TFTP_SERVER_PORT, tftp_receive, ++ port ? port : TFTP_SERVER_PORT, tftp_receive, + file); + if (!data->sock) + { +diff --git a/include/grub/net.h b/include/grub/net.h +index e9ebc6a1b4f..f4cd86e582f 100644 +--- a/include/grub/net.h ++++ b/include/grub/net.h +@@ -273,6 +273,7 @@ typedef struct grub_net + { + char *server; + char *name; ++ int port; + grub_net_app_level_t protocol; + grub_net_packets_t packs; + grub_off_t offset; diff --git a/0170-net-read-bracketed-ipv6-addrs-and-port-numbers-pjone.patch b/0170-net-read-bracketed-ipv6-addrs-and-port-numbers-pjone.patch new file mode 100644 index 00000000..a0f3859e --- /dev/null +++ b/0170-net-read-bracketed-ipv6-addrs-and-port-numbers-pjone.patch @@ -0,0 +1,105 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Aaron Miller +Date: Fri, 29 Jul 2016 17:41:38 +0800 +Subject: [PATCH] net: read bracketed ipv6 addrs and port numbers (pjones + fixup) + +Various bug fixes related to previous patch. + +Signed-off-by: Peter Jones +--- + grub-core/net/http.c | 6 ++++-- + grub-core/net/net.c | 24 ++++++++++++------------ + 2 files changed, 16 insertions(+), 14 deletions(-) + +diff --git a/grub-core/net/http.c b/grub-core/net/http.c +index f182d7b871d..00737c52750 100644 +--- a/grub-core/net/http.c ++++ b/grub-core/net/http.c +@@ -289,7 +289,9 @@ http_receive (grub_net_tcp_socket_t sock __attribute__ ((unused)), + nb2 = grub_netbuff_alloc (data->chunk_rem); + if (!nb2) + return grub_errno; +- grub_netbuff_put (nb2, data->chunk_rem); ++ err = grub_netbuff_put (nb2, data->chunk_rem); ++ if (err) ++ return grub_errno; + grub_memcpy (nb2->data, nb->data, data->chunk_rem); + if (file->device->net->packs.count >= 20) + { +@@ -405,7 +407,7 @@ http_establish (struct grub_file *file, grub_off_t offset, int initial) + data->filename, server, port ? port : HTTP_PORT); + data->sock = grub_net_tcp_open (server, + port ? port : HTTP_PORT, http_receive, +- http_err, http_err, ++ http_err, NULL, + file); + if (!data->sock) + { +diff --git a/grub-core/net/net.c b/grub-core/net/net.c +index 1f887d44b32..a0f4d00f0be 100644 +--- a/grub-core/net/net.c ++++ b/grub-core/net/net.c +@@ -441,10 +441,11 @@ parse_ip6 (const char *val, grub_uint64_t *ip, const char **rest) + int word, quaddot = -1; + int bracketed = 0; + +- if (ptr[0] == '[') { +- bracketed = 1; +- ptr++; +- } ++ if (ptr[0] == '[') ++ { ++ bracketed = 1; ++ ptr++; ++ } + + if (ptr[0] == ':' && ptr[1] != ':') + return 0; +@@ -483,9 +484,8 @@ parse_ip6 (const char *val, grub_uint64_t *ip, const char **rest) + grub_memset (&newip[quaddot], 0, (7 - word) * sizeof (newip[0])); + } + grub_memcpy (ip, newip, 16); +- if (bracketed && *ptr == ']') { ++ if (bracketed && *ptr == ']') + ptr++; +- } + if (rest) + *rest = ptr; + return 1; +@@ -1389,7 +1389,7 @@ grub_net_open_real (const char *name) + char* port_start; + /* ipv6 or port specified? */ + if ((port_start = grub_strchr (server, ':'))) +- { ++ { + char* ipv6_begin; + if((ipv6_begin = grub_strchr (server, '['))) + { +@@ -1461,14 +1461,13 @@ grub_net_open_real (const char *name) + { + grub_net_t ret = grub_zalloc (sizeof (*ret)); + if (!ret) +- return NULL; +- ret->protocol = proto; +- ret->server = grub_strdup (server); +- if (!ret->server) + { +- grub_free (ret); ++ grub_free (host); + return NULL; + } ++ ret->protocol = proto; ++ ret->port = port; ++ ret->server = host; + ret->fs = &grub_net_fs; + return ret; + } +@@ -1543,6 +1542,7 @@ grub_net_open_real (const char *name) + grub_error (GRUB_ERR_UNKNOWN_DEVICE, N_("disk `%s' not found"), + name); + ++ grub_free (host); + return NULL; + } + diff --git a/0171-bootp-New-net_bootp6-command.patch b/0171-bootp-New-net_bootp6-command.patch new file mode 100644 index 00000000..684f540f --- /dev/null +++ b/0171-bootp-New-net_bootp6-command.patch @@ -0,0 +1,1357 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Michael Chang +Date: Sun, 10 Jul 2016 23:46:06 +0800 +Subject: [PATCH] bootp: New net_bootp6 command + +Implement new net_bootp6 command for IPv6 network auto configuration via the +DHCPv6 protocol (RFC3315). + +Signed-off-by: Michael Chang +Signed-off-by: Ken Lin +--- + grub-core/net/bootp.c | 1048 ++++++++++++++++++++++++++++++------ + grub-core/net/drivers/efi/efinet.c | 20 +- + grub-core/net/ip.c | 39 ++ + include/grub/efi/api.h | 2 +- + include/grub/net.h | 91 ++-- + 5 files changed, 994 insertions(+), 206 deletions(-) + +diff --git a/grub-core/net/bootp.c b/grub-core/net/bootp.c +index 4e55adc557b..ff1d7776e7f 100644 +--- a/grub-core/net/bootp.c ++++ b/grub-core/net/bootp.c +@@ -25,6 +25,98 @@ + #include + #include + #include ++#include ++#include ++ ++static int ++dissect_url (const char *url, char **proto, char **host, char **path) ++{ ++ const char *p, *ps; ++ grub_size_t l; ++ ++ *proto = *host = *path = NULL; ++ ps = p = url; ++ ++ while ((p = grub_strchr (p, ':'))) ++ { ++ if (grub_strlen (p) < sizeof ("://") - 1) ++ break; ++ if (grub_memcmp (p, "://", sizeof ("://") - 1) == 0) ++ { ++ l = p - ps; ++ *proto = grub_malloc (l + 1); ++ if (!*proto) ++ { ++ grub_print_error (); ++ return 0; ++ } ++ ++ grub_memcpy (*proto, ps, l); ++ (*proto)[l] = '\0'; ++ p += sizeof ("://") - 1; ++ break; ++ } ++ ++p; ++ } ++ ++ if (!*proto) ++ { ++ grub_dprintf ("bootp", "url: %s is not valid, protocol not found\n", url); ++ return 0; ++ } ++ ++ ps = p; ++ p = grub_strchr (p, '/'); ++ ++ if (!p) ++ { ++ grub_dprintf ("bootp", "url: %s is not valid, host/path not found\n", url); ++ grub_free (*proto); ++ *proto = NULL; ++ return 0; ++ } ++ ++ l = p - ps; ++ ++ if (l > 2 && ps[0] == '[' && ps[l - 1] == ']') ++ { ++ *host = grub_malloc (l - 1); ++ if (!*host) ++ { ++ grub_print_error (); ++ grub_free (*proto); ++ *proto = NULL; ++ return 0; ++ } ++ grub_memcpy (*host, ps + 1, l - 2); ++ (*host)[l - 2] = 0; ++ } ++ else ++ { ++ *host = grub_malloc (l + 1); ++ if (!*host) ++ { ++ grub_print_error (); ++ grub_free (*proto); ++ *proto = NULL; ++ return 0; ++ } ++ grub_memcpy (*host, ps, l); ++ (*host)[l] = 0; ++ } ++ ++ *path = grub_strdup (p); ++ if (!*path) ++ { ++ grub_print_error (); ++ grub_free (*host); ++ grub_free (*proto); ++ *host = NULL; ++ *proto = NULL; ++ return 0; ++ } ++ return 1; ++} + + static char * + grub_env_write_readonly (struct grub_env_var *var __attribute__ ((unused)), +@@ -345,178 +437,578 @@ grub_net_configure_by_dhcp_ack (const char *name, + return inter; + } + +-struct grub_net_network_level_interface * +-grub_net_configure_by_dhcpv6_ack (const char *name, +- struct grub_net_card *card, +- grub_net_interface_flags_t flags +- __attribute__((__unused__)), +- const grub_net_link_level_address_t *hwaddr, +- const struct grub_net_dhcpv6_packet *packet, +- int is_def, char **device, char **path) +-{ +- struct grub_net_network_level_interface *inter = NULL; +- struct grub_net_network_level_address addr; +- int mask = -1; +- +- if (!device || !path) ++/* The default netbuff size for sending DHCPv6 packets which should be ++ large enough to hold the information */ ++#define GRUB_DHCP6_DEFAULT_NETBUFF_ALLOC_SIZE 512 ++ ++struct grub_dhcp6_options ++{ ++ grub_uint8_t *client_duid; ++ grub_uint16_t client_duid_len; ++ grub_uint8_t *server_duid; ++ grub_uint16_t server_duid_len; ++ grub_uint32_t iaid; ++ grub_uint32_t t1; ++ grub_uint32_t t2; ++ grub_net_network_level_address_t *ia_addr; ++ grub_uint32_t preferred_lifetime; ++ grub_uint32_t valid_lifetime; ++ grub_net_network_level_address_t *dns_server_addrs; ++ grub_uint16_t num_dns_server; ++ char *boot_file_proto; ++ char *boot_file_server_ip; ++ char *boot_file_path; ++}; ++ ++typedef struct grub_dhcp6_options *grub_dhcp6_options_t; ++ ++struct grub_dhcp6_session ++{ ++ struct grub_dhcp6_session *next; ++ struct grub_dhcp6_session **prev; ++ grub_uint32_t iaid; ++ grub_uint32_t transaction_id:24; ++ grub_uint64_t start_time; ++ struct grub_net_dhcp6_option_duid_ll duid; ++ struct grub_net_network_level_interface *iface; ++ ++ /* The associated dhcpv6 options */ ++ grub_dhcp6_options_t adv; ++ grub_dhcp6_options_t reply; ++}; ++ ++typedef struct grub_dhcp6_session *grub_dhcp6_session_t; ++ ++typedef void (*dhcp6_option_hook_fn) (const struct grub_net_dhcp6_option *opt, void *data); ++ ++static void ++foreach_dhcp6_option (const struct grub_net_dhcp6_option *opt, grub_size_t size, ++ dhcp6_option_hook_fn hook, void *hook_data); ++ ++static void ++parse_dhcp6_iaaddr (const struct grub_net_dhcp6_option *opt, void *data) ++{ ++ grub_dhcp6_options_t dhcp6 = (grub_dhcp6_options_t )data; ++ ++ grub_uint16_t code = grub_be_to_cpu16 (opt->code); ++ grub_uint16_t len = grub_be_to_cpu16 (opt->len); ++ ++ if (code == GRUB_NET_DHCP6_OPTION_IAADDR) ++ { ++ const struct grub_net_dhcp6_option_iaaddr *iaaddr; ++ iaaddr = (const struct grub_net_dhcp6_option_iaaddr *)opt->data; ++ ++ if (len < sizeof (*iaaddr)) ++ { ++ grub_dprintf ("bootp", "DHCPv6: code %u with insufficient length %u\n", code, len); ++ return; ++ } ++ if (!dhcp6->ia_addr) ++ { ++ dhcp6->ia_addr = grub_malloc (sizeof(*dhcp6->ia_addr)); ++ dhcp6->ia_addr->type = GRUB_NET_NETWORK_LEVEL_PROTOCOL_IPV6; ++ dhcp6->ia_addr->ipv6[0] = grub_get_unaligned64 (iaaddr->addr); ++ dhcp6->ia_addr->ipv6[1] = grub_get_unaligned64 (iaaddr->addr + 8); ++ dhcp6->preferred_lifetime = grub_be_to_cpu32 (iaaddr->preferred_lifetime); ++ dhcp6->valid_lifetime = grub_be_to_cpu32 (iaaddr->valid_lifetime); ++ } ++ } ++} ++ ++static void ++parse_dhcp6_option (const struct grub_net_dhcp6_option *opt, void *data) ++{ ++ grub_dhcp6_options_t dhcp6 = (grub_dhcp6_options_t)data; ++ grub_uint16_t code = grub_be_to_cpu16 (opt->code); ++ grub_uint16_t len = grub_be_to_cpu16 (opt->len); ++ ++ switch (code) ++ { ++ case GRUB_NET_DHCP6_OPTION_CLIENTID: ++ ++ if (dhcp6->client_duid || !len) ++ { ++ grub_dprintf ("bootp", "Skipped DHCPv6 CLIENTID with length %u\n", len); ++ break; ++ } ++ dhcp6->client_duid = grub_malloc (len); ++ grub_memcpy (dhcp6->client_duid, opt->data, len); ++ dhcp6->client_duid_len = len; ++ break; ++ ++ case GRUB_NET_DHCP6_OPTION_SERVERID: ++ ++ if (dhcp6->server_duid || !len) ++ { ++ grub_dprintf ("bootp", "Skipped DHCPv6 SERVERID with length %u\n", len); ++ break; ++ } ++ dhcp6->server_duid = grub_malloc (len); ++ grub_memcpy (dhcp6->server_duid, opt->data, len); ++ dhcp6->server_duid_len = len; ++ break; ++ ++ case GRUB_NET_DHCP6_OPTION_IA_NA: ++ { ++ const struct grub_net_dhcp6_option_iana *ia_na; ++ grub_uint16_t data_len; ++ ++ if (dhcp6->iaid || len < sizeof (*ia_na)) ++ { ++ grub_dprintf ("bootp", "Skipped DHCPv6 IA_NA with length %u\n", len); ++ break; ++ } ++ ia_na = (const struct grub_net_dhcp6_option_iana *)opt->data; ++ dhcp6->iaid = grub_be_to_cpu32 (ia_na->iaid); ++ dhcp6->t1 = grub_be_to_cpu32 (ia_na->t1); ++ dhcp6->t2 = grub_be_to_cpu32 (ia_na->t2); ++ ++ data_len = len - sizeof (*ia_na); ++ if (data_len) ++ foreach_dhcp6_option ((const struct grub_net_dhcp6_option *)ia_na->data, data_len, parse_dhcp6_iaaddr, dhcp6); ++ } ++ break; ++ ++ case GRUB_NET_DHCP6_OPTION_DNS_SERVERS: ++ { ++ const grub_uint8_t *po; ++ grub_uint16_t ln; ++ grub_net_network_level_address_t *la; ++ ++ if (!len || len & 0xf) ++ { ++ grub_dprintf ("bootp", "Skip invalid length DHCPv6 DNS_SERVERS \n"); ++ break; ++ } ++ dhcp6->num_dns_server = ln = len >> 4; ++ dhcp6->dns_server_addrs = la = grub_zalloc (ln * sizeof (*la)); ++ ++ for (po = opt->data; ln > 0; po += 0x10, la++, ln--) ++ { ++ la->type = GRUB_NET_NETWORK_LEVEL_PROTOCOL_IPV6; ++ la->ipv6[0] = grub_get_unaligned64 (po); ++ la->ipv6[1] = grub_get_unaligned64 (po + 8); ++ la->option = DNS_OPTION_PREFER_IPV6; ++ } ++ } ++ break; ++ ++ case GRUB_NET_DHCP6_OPTION_BOOTFILE_URL: ++ dissect_url ((const char *)opt->data, ++ &dhcp6->boot_file_proto, ++ &dhcp6->boot_file_server_ip, ++ &dhcp6->boot_file_path); ++ break; ++ ++ default: ++ break; ++ } ++} ++ ++static void ++foreach_dhcp6_option (const struct grub_net_dhcp6_option *opt, grub_size_t size, dhcp6_option_hook_fn hook, void *hook_data) ++{ ++ while (size) ++ { ++ grub_uint16_t code, len; ++ ++ if (size < sizeof (*opt)) ++ { ++ grub_dprintf ("bootp", "DHCPv6: Options stopped with remaining size %" PRIxGRUB_SIZE "\n", size); ++ break; ++ } ++ size -= sizeof (*opt); ++ len = grub_be_to_cpu16 (opt->len); ++ code = grub_be_to_cpu16 (opt->code); ++ if (size < len) ++ { ++ grub_dprintf ("bootp", "DHCPv6: Options stopped at out of bound length %u for option %u\n", len, code); ++ break; ++ } ++ if (!len) ++ { ++ grub_dprintf ("bootp", "DHCPv6: Options stopped at zero length option %u\n", code); ++ break; ++ } ++ else ++ { ++ if (hook) ++ hook (opt, hook_data); ++ size -= len; ++ opt = (const struct grub_net_dhcp6_option *)((grub_uint8_t *)opt + len + sizeof (*opt)); ++ } ++ } ++} ++ ++static grub_dhcp6_options_t ++grub_dhcp6_options_get (const struct grub_net_dhcp6_packet *v6h, ++ grub_size_t size) ++{ ++ grub_dhcp6_options_t options; ++ ++ if (size < sizeof (*v6h)) ++ { ++ grub_error (GRUB_ERR_OUT_OF_RANGE, N_("DHCPv6 packet size too small")); ++ return NULL; ++ } ++ ++ options = grub_zalloc (sizeof(*options)); ++ if (!options) + return NULL; + +- *device = 0; +- *path = 0; +- +- grub_dprintf ("net", "mac address is %02x:%02x:%02x:%02x:%02x:%02x\n", +- hwaddr->mac[0], hwaddr->mac[1], hwaddr->mac[2], +- hwaddr->mac[3], hwaddr->mac[4], hwaddr->mac[5]); +- +- if (is_def) +- grub_net_default_server = 0; +- +- if (is_def && !grub_net_default_server && packet) ++ foreach_dhcp6_option ((const struct grub_net_dhcp6_option *)v6h->dhcp_options, ++ size - sizeof (*v6h), parse_dhcp6_option, options); ++ ++ return options; ++} ++ ++static void ++grub_dhcp6_options_free (grub_dhcp6_options_t options) ++{ ++ if (options->client_duid) ++ grub_free (options->client_duid); ++ if (options->server_duid) ++ grub_free (options->server_duid); ++ if (options->ia_addr) ++ grub_free (options->ia_addr); ++ if (options->dns_server_addrs) ++ grub_free (options->dns_server_addrs); ++ if (options->boot_file_proto) ++ grub_free (options->boot_file_proto); ++ if (options->boot_file_server_ip) ++ grub_free (options->boot_file_server_ip); ++ if (options->boot_file_path) ++ grub_free (options->boot_file_path); ++ ++ grub_free (options); ++} ++ ++static grub_dhcp6_session_t grub_dhcp6_sessions; ++#define FOR_DHCP6_SESSIONS_SAFE(var, next) FOR_LIST_ELEMENTS_SAFE (var, next, grub_dhcp6_sessions) ++#define FOR_DHCP6_SESSIONS(var) FOR_LIST_ELEMENTS (var, grub_dhcp6_sessions) ++ ++static void ++grub_net_configure_by_dhcp6_info (const char *name, ++ struct grub_net_card *card, ++ grub_dhcp6_options_t dhcp6, ++ int is_def, ++ int flags, ++ struct grub_net_network_level_interface **ret_inf) ++{ ++ grub_net_network_level_netaddress_t netaddr; ++ struct grub_net_network_level_interface *inf; ++ ++ if (dhcp6->ia_addr) + { +- const grub_uint8_t *options = packet->dhcp_options; +- unsigned int option_max = 1024 - OFFSET_OF (dhcp_options, packet); +- unsigned int i; +- +- for (i = 0; i < option_max - sizeof (grub_net_dhcpv6_option_t); ) +- { +- grub_uint16_t num, len; +- grub_net_dhcpv6_option_t *opt = +- (grub_net_dhcpv6_option_t *)(options + i); +- +- num = grub_be_to_cpu16(opt->option_num); +- len = grub_be_to_cpu16(opt->option_len); +- +- grub_dprintf ("net", "got dhcpv6 option %d len %d\n", num, len); +- +- if (len == 0) +- break; +- +- if (len + i > 1024) +- break; +- +- if (num == GRUB_NET_DHCP6_BOOTFILE_URL) +- { +- char *scheme, *userinfo, *host, *file; +- char *tmp; +- int hostlen; +- int port; +- int rc = extract_url_info ((const char *)opt->option_data, +- (grub_size_t)len, +- &scheme, &userinfo, &host, &port, +- &file); +- if (rc < 0) +- continue; +- +- /* right now this only handles tftp. */ +- if (grub_strcmp("tftp", scheme)) +- { +- grub_free (scheme); +- grub_free (userinfo); +- grub_free (host); +- grub_free (file); +- continue; +- } +- grub_free (userinfo); +- +- hostlen = grub_strlen (host); +- if (hostlen > 2 && host[0] == '[' && host[hostlen-1] == ']') +- { +- tmp = host+1; +- host[hostlen-1] = '\0'; +- } +- else +- tmp = host; ++ inf = grub_net_add_addr (name, card, dhcp6->ia_addr, &card->default_address, flags); + +- *device = grub_xasprintf ("%s,%s", scheme, tmp); +- grub_free (scheme); +- grub_free (host); ++ netaddr.type = GRUB_NET_NETWORK_LEVEL_PROTOCOL_IPV6; ++ netaddr.ipv6.base[0] = dhcp6->ia_addr->ipv6[0]; ++ netaddr.ipv6.base[1] = 0; ++ netaddr.ipv6.masksize = 64; ++ grub_net_add_route (name, netaddr, inf); + +- if (file && *file) +- { +- tmp = grub_strrchr (file, '/'); +- if (tmp) +- *(tmp+1) = '\0'; +- else +- file[0] = '\0'; +- } +- else if (!file) +- file = grub_strdup (""); +- +- if (file[0] == '/') +- { +- *path = grub_strdup (file+1); +- grub_free (file); +- } +- else +- *path = file; +- } +- else if (num == GRUB_NET_DHCP6_IA_NA) +- { +- const grub_net_dhcpv6_option_t *ia_na_opt; +- const grub_net_dhcpv6_opt_ia_na_t *ia_na = +- (const grub_net_dhcpv6_opt_ia_na_t *)opt; +- unsigned int left = len - OFFSET_OF (options, ia_na); +- unsigned int j; +- +- if ((grub_uint8_t *)ia_na + left > +- (grub_uint8_t *)options + option_max) +- left -= ((grub_uint8_t *)ia_na + left) +- - ((grub_uint8_t *)options + option_max); +- +- if (len < OFFSET_OF (option_data, opt) +- + sizeof (grub_net_dhcpv6_option_t)) +- { +- grub_dprintf ("net", +- "found dhcpv6 ia_na option with no address\n"); +- continue; +- } +- +- for (j = 0; left > sizeof (grub_net_dhcpv6_option_t); ) +- { +- ia_na_opt = (const grub_net_dhcpv6_option_t *) +- (ia_na->options + j); +- grub_uint16_t ia_na_opt_num, ia_na_opt_len; +- +- ia_na_opt_num = grub_be_to_cpu16 (ia_na_opt->option_num); +- ia_na_opt_len = grub_be_to_cpu16 (ia_na_opt->option_len); +- if (ia_na_opt_len == 0) +- break; +- if (j + ia_na_opt_len > left) +- break; +- if (ia_na_opt_num == GRUB_NET_DHCP6_IA_ADDRESS) +- { +- const grub_net_dhcpv6_opt_ia_address_t *ia_addr; +- +- ia_addr = (const grub_net_dhcpv6_opt_ia_address_t *) +- ia_na_opt; +- addr.type = GRUB_NET_NETWORK_LEVEL_PROTOCOL_IPV6; +- grub_memcpy(addr.ipv6, ia_addr->ipv6_address, +- sizeof (ia_addr->ipv6_address)); +- inter = grub_net_add_addr (name, card, &addr, hwaddr, 0); +- } +- +- j += ia_na_opt_len; +- left -= ia_na_opt_len; +- } +- } ++ if (ret_inf) ++ *ret_inf = inf; ++ } + +- i += len + 4; +- } ++ if (dhcp6->dns_server_addrs) ++ { ++ grub_uint16_t i; + +- grub_print_error (); ++ for (i = 0; i < dhcp6->num_dns_server; ++i) ++ grub_net_add_dns_server (dhcp6->dns_server_addrs + i); + } + +- if (is_def) ++ if (dhcp6->boot_file_path) ++ grub_env_set_net_property (name, "boot_file", dhcp6->boot_file_path, ++ grub_strlen (dhcp6->boot_file_path)); ++ ++ if (is_def && dhcp6->boot_file_server_ip) + { ++ grub_net_default_server = grub_strdup (dhcp6->boot_file_server_ip); + grub_env_set ("net_default_interface", name); + grub_env_export ("net_default_interface"); + } ++} ++ ++static void ++grub_dhcp6_session_add (struct grub_net_network_level_interface *iface, ++ grub_uint32_t iaid) ++{ ++ grub_dhcp6_session_t se; ++ struct grub_datetime date; ++ grub_err_t err; ++ grub_int32_t t = 0; ++ ++ se = grub_malloc (sizeof (*se)); ++ ++ err = grub_get_datetime (&date); ++ if (err || !grub_datetime2unixtime (&date, &t)) ++ { ++ grub_errno = GRUB_ERR_NONE; ++ t = 0; ++ } ++ ++ se->iface = iface; ++ se->iaid = iaid; ++ se->transaction_id = t; ++ se->start_time = grub_get_time_ms (); ++ se->duid.type = grub_cpu_to_be16_compile_time (3) ; ++ se->duid.hw_type = grub_cpu_to_be16_compile_time (1); ++ grub_memcpy (&se->duid.hwaddr, &iface->hwaddress.mac, sizeof (se->duid.hwaddr)); ++ se->adv = NULL; ++ se->reply = NULL; ++ grub_list_push (GRUB_AS_LIST_P (&grub_dhcp6_sessions), GRUB_AS_LIST (se)); ++} ++ ++static void ++grub_dhcp6_session_remove (grub_dhcp6_session_t se) ++{ ++ grub_list_remove (GRUB_AS_LIST (se)); ++ if (se->adv) ++ grub_dhcp6_options_free (se->adv); ++ if (se->reply) ++ grub_dhcp6_options_free (se->reply); ++ grub_free (se); ++} ++ ++static void ++grub_dhcp6_session_remove_all (void) ++{ ++ grub_dhcp6_session_t se, next; ++ ++ FOR_DHCP6_SESSIONS_SAFE (se, next) ++ { ++ grub_dhcp6_session_remove (se); ++ } ++ grub_dhcp6_sessions = NULL; ++} ++ ++static grub_err_t ++grub_dhcp6_session_configure_network (grub_dhcp6_session_t se) ++{ ++ char *name; + +- if (inter) +- grub_net_add_ipv6_local (inter, mask); +- return inter; ++ name = grub_xasprintf ("%s:dhcp6", se->iface->card->name); ++ if (!name) ++ return grub_errno; ++ ++ grub_net_configure_by_dhcp6_info (name, se->iface->card, se->reply, 1, 0, 0); ++ grub_free (name); ++ ++ return GRUB_ERR_NONE; + } + ++static grub_err_t ++grub_dhcp6_session_send_request (grub_dhcp6_session_t se) ++{ ++ struct grub_net_buff *nb; ++ struct grub_net_dhcp6_option *opt; ++ struct grub_net_dhcp6_packet *v6h; ++ struct grub_net_dhcp6_option_iana *ia_na; ++ struct grub_net_dhcp6_option_iaaddr *iaaddr; ++ struct udphdr *udph; ++ grub_net_network_level_address_t multicast; ++ grub_net_link_level_address_t ll_multicast; ++ grub_uint64_t elapsed; ++ struct grub_net_network_level_interface *inf = se->iface; ++ grub_dhcp6_options_t dhcp6 = se->adv; ++ grub_err_t err = GRUB_ERR_NONE; ++ ++ multicast.type = GRUB_NET_NETWORK_LEVEL_PROTOCOL_IPV6; ++ multicast.ipv6[0] = grub_cpu_to_be64_compile_time (0xff02ULL << 48); ++ multicast.ipv6[1] = grub_cpu_to_be64_compile_time (0x10002ULL); ++ ++ err = grub_net_link_layer_resolve (inf, &multicast, &ll_multicast); ++ if (err) ++ return err; ++ ++ nb = grub_netbuff_alloc (GRUB_DHCP6_DEFAULT_NETBUFF_ALLOC_SIZE); ++ ++ if (!nb) ++ return grub_errno; ++ ++ err = grub_netbuff_reserve (nb, GRUB_DHCP6_DEFAULT_NETBUFF_ALLOC_SIZE); ++ if (err) ++ { ++ grub_netbuff_free (nb); ++ return err; ++ } ++ ++ err = grub_netbuff_push (nb, dhcp6->client_duid_len + sizeof (*opt)); ++ if (err) ++ { ++ grub_netbuff_free (nb); ++ return err; ++ } ++ opt = (struct grub_net_dhcp6_option *)nb->data; ++ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_CLIENTID); ++ opt->len = grub_cpu_to_be16 (dhcp6->client_duid_len); ++ grub_memcpy (opt->data, dhcp6->client_duid , dhcp6->client_duid_len); ++ ++ err = grub_netbuff_push (nb, dhcp6->server_duid_len + sizeof (*opt)); ++ if (err) ++ { ++ grub_netbuff_free (nb); ++ return err; ++ } ++ opt = (struct grub_net_dhcp6_option *)nb->data; ++ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_SERVERID); ++ opt->len = grub_cpu_to_be16 (dhcp6->server_duid_len); ++ grub_memcpy (opt->data, dhcp6->server_duid , dhcp6->server_duid_len); ++ ++ err = grub_netbuff_push (nb, sizeof (*ia_na) + sizeof (*opt)); ++ if (err) ++ { ++ grub_netbuff_free (nb); ++ return err; ++ } ++ ++ if (dhcp6->ia_addr) ++ { ++ err = grub_netbuff_push (nb, sizeof(*iaaddr) + sizeof (*opt)); ++ if (err) ++ { ++ grub_netbuff_free (nb); ++ return err; ++ } ++ } ++ opt = (struct grub_net_dhcp6_option *)nb->data; ++ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_IA_NA); ++ opt->len = grub_cpu_to_be16 (sizeof (*ia_na)); ++ if (dhcp6->ia_addr) ++ opt->len += grub_cpu_to_be16 (sizeof(*iaaddr) + sizeof (*opt)); ++ ++ ia_na = (struct grub_net_dhcp6_option_iana *)opt->data; ++ ia_na->iaid = grub_cpu_to_be32 (dhcp6->iaid); ++ ++ ia_na->t1 = grub_cpu_to_be32 (dhcp6->t1); ++ ia_na->t2 = grub_cpu_to_be32 (dhcp6->t2); ++ ++ if (dhcp6->ia_addr) ++ { ++ opt = (struct grub_net_dhcp6_option *)ia_na->data; ++ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_IAADDR); ++ opt->len = grub_cpu_to_be16 (sizeof (*iaaddr)); ++ iaaddr = (struct grub_net_dhcp6_option_iaaddr *)opt->data; ++ grub_set_unaligned64 (iaaddr->addr, dhcp6->ia_addr->ipv6[0]); ++ grub_set_unaligned64 (iaaddr->addr + 8, dhcp6->ia_addr->ipv6[1]); ++ ++ iaaddr->preferred_lifetime = grub_cpu_to_be32 (dhcp6->preferred_lifetime); ++ iaaddr->valid_lifetime = grub_cpu_to_be32 (dhcp6->valid_lifetime); ++ } ++ ++ err = grub_netbuff_push (nb, sizeof (*opt) + 2 * sizeof (grub_uint16_t)); ++ if (err) ++ { ++ grub_netbuff_free (nb); ++ return err; ++ } ++ ++ opt = (struct grub_net_dhcp6_option*) nb->data; ++ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_ORO); ++ opt->len = grub_cpu_to_be16_compile_time (2 * sizeof (grub_uint16_t)); ++ grub_set_unaligned16 (opt->data, grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_BOOTFILE_URL)); ++ grub_set_unaligned16 (opt->data + 2, grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_DNS_SERVERS)); ++ ++ err = grub_netbuff_push (nb, sizeof (*opt) + sizeof (grub_uint16_t)); ++ if (err) ++ { ++ grub_netbuff_free (nb); ++ return err; ++ } ++ opt = (struct grub_net_dhcp6_option*) nb->data; ++ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_ELAPSED_TIME); ++ opt->len = grub_cpu_to_be16_compile_time (sizeof (grub_uint16_t)); ++ ++ /* the time is expressed in hundredths of a second */ ++ elapsed = grub_divmod64 (grub_get_time_ms () - se->start_time, 10, 0); ++ ++ if (elapsed > 0xffff) ++ elapsed = 0xffff; ++ ++ grub_set_unaligned16 (opt->data, grub_cpu_to_be16 ((grub_uint16_t)elapsed)); ++ ++ err = grub_netbuff_push (nb, sizeof (*v6h)); ++ if (err) ++ { ++ grub_netbuff_free (nb); ++ return err; ++ } ++ ++ v6h = (struct grub_net_dhcp6_packet *) nb->data; ++ v6h->message_type = GRUB_NET_DHCP6_REQUEST; ++ v6h->transaction_id = se->transaction_id; ++ ++ err = grub_netbuff_push (nb, sizeof (*udph)); ++ if (err) ++ { ++ grub_netbuff_free (nb); ++ return err; ++ } ++ ++ udph = (struct udphdr *) nb->data; ++ udph->src = grub_cpu_to_be16_compile_time (DHCP6_CLIENT_PORT); ++ udph->dst = grub_cpu_to_be16_compile_time (DHCP6_SERVER_PORT); ++ udph->chksum = 0; ++ udph->len = grub_cpu_to_be16 (nb->tail - nb->data); ++ ++ udph->chksum = grub_net_ip_transport_checksum (nb, GRUB_NET_IP_UDP, ++ &inf->address, ++ &multicast); ++ err = grub_net_send_ip_packet (inf, &multicast, &ll_multicast, nb, ++ GRUB_NET_IP_UDP); ++ ++ grub_netbuff_free (nb); ++ ++ return err; ++} ++ ++struct grub_net_network_level_interface * ++grub_net_configure_by_dhcpv6_reply (const char *name, ++ struct grub_net_card *card, ++ grub_net_interface_flags_t flags, ++ const struct grub_net_dhcp6_packet *v6h, ++ grub_size_t size, ++ int is_def, ++ char **device, char **path) ++{ ++ struct grub_net_network_level_interface *inf; ++ grub_dhcp6_options_t dhcp6; ++ ++ dhcp6 = grub_dhcp6_options_get (v6h, size); ++ if (!dhcp6) ++ { ++ grub_print_error (); ++ return NULL; ++ } ++ ++ grub_net_configure_by_dhcp6_info (name, card, dhcp6, is_def, flags, &inf); ++ ++ if (device && dhcp6->boot_file_proto && dhcp6->boot_file_server_ip) ++ { ++ *device = grub_xasprintf ("%s,%s", dhcp6->boot_file_proto, dhcp6->boot_file_server_ip); ++ grub_print_error (); ++ } ++ if (path && dhcp6->boot_file_path) ++ { ++ *path = grub_strdup (dhcp6->boot_file_path); ++ grub_print_error (); ++ if (*path) ++ { ++ char *slash; ++ slash = grub_strrchr (*path, '/'); ++ if (slash) ++ *slash = 0; ++ else ++ **path = 0; ++ } ++ } ++ ++ grub_dhcp6_options_free (dhcp6); ++ return inf; ++} + + void + grub_net_process_dhcp (struct grub_net_buff *nb, +@@ -550,6 +1042,77 @@ grub_net_process_dhcp (struct grub_net_buff *nb, + } + } + ++grub_err_t ++grub_net_process_dhcp6 (struct grub_net_buff *nb, ++ struct grub_net_card *card __attribute__ ((unused))) ++{ ++ const struct grub_net_dhcp6_packet *v6h; ++ grub_dhcp6_session_t se; ++ grub_size_t size; ++ grub_dhcp6_options_t options; ++ ++ v6h = (const struct grub_net_dhcp6_packet *) nb->data; ++ size = nb->tail - nb->data; ++ ++ options = grub_dhcp6_options_get (v6h, size); ++ if (!options) ++ return grub_errno; ++ ++ if (!options->client_duid || !options->server_duid || !options->ia_addr) ++ { ++ grub_dhcp6_options_free (options); ++ return grub_error (GRUB_ERR_BAD_ARGUMENT, "Bad DHCPv6 Packet"); ++ } ++ ++ FOR_DHCP6_SESSIONS (se) ++ { ++ if (se->transaction_id == v6h->transaction_id && ++ grub_memcmp (options->client_duid, &se->duid, sizeof (se->duid)) == 0 && ++ se->iaid == options->iaid) ++ break; ++ } ++ ++ if (!se) ++ { ++ grub_dprintf ("bootp", "DHCPv6 session not found\n"); ++ grub_dhcp6_options_free (options); ++ return GRUB_ERR_NONE; ++ } ++ ++ if (v6h->message_type == GRUB_NET_DHCP6_ADVERTISE) ++ { ++ if (se->adv) ++ { ++ grub_dprintf ("bootp", "Skipped DHCPv6 Advertised .. \n"); ++ grub_dhcp6_options_free (options); ++ return GRUB_ERR_NONE; ++ } ++ ++ se->adv = options; ++ return grub_dhcp6_session_send_request (se); ++ } ++ else if (v6h->message_type == GRUB_NET_DHCP6_REPLY) ++ { ++ if (!se->adv) ++ { ++ grub_dprintf ("bootp", "Skipped DHCPv6 Reply .. \n"); ++ grub_dhcp6_options_free (options); ++ return GRUB_ERR_NONE; ++ } ++ ++ se->reply = options; ++ grub_dhcp6_session_configure_network (se); ++ grub_dhcp6_session_remove (se); ++ return GRUB_ERR_NONE; ++ } ++ else ++ { ++ grub_dhcp6_options_free (options); ++ } ++ ++ return GRUB_ERR_NONE; ++} ++ + static grub_err_t + grub_cmd_dhcpopt (struct grub_command *cmd __attribute__ ((unused)), + int argc, char **args) +@@ -824,7 +1387,174 @@ grub_cmd_bootp (struct grub_command *cmd __attribute__ ((unused)), + return err; + } + +-static grub_command_t cmd_getdhcp, cmd_bootp; ++static grub_err_t ++grub_cmd_bootp6 (struct grub_command *cmd __attribute__ ((unused)), ++ int argc, char **args) ++{ ++ struct grub_net_card *card; ++ grub_uint32_t iaid = 0; ++ int interval; ++ grub_err_t err; ++ grub_dhcp6_session_t se; ++ ++ err = GRUB_ERR_NONE; ++ ++ FOR_NET_CARDS (card) ++ { ++ struct grub_net_network_level_interface *iface; ++ ++ if (argc > 0 && grub_strcmp (card->name, args[0]) != 0) ++ continue; ++ ++ iface = grub_net_ipv6_get_link_local (card, &card->default_address); ++ if (!iface) ++ { ++ grub_dhcp6_session_remove_all (); ++ return grub_errno; ++ } ++ ++ grub_dhcp6_session_add (iface, iaid++); ++ } ++ ++ for (interval = 200; interval < 10000; interval *= 2) ++ { ++ int done = 1; ++ ++ FOR_DHCP6_SESSIONS (se) ++ { ++ struct grub_net_buff *nb; ++ struct grub_net_dhcp6_option *opt; ++ struct grub_net_dhcp6_packet *v6h; ++ struct grub_net_dhcp6_option_duid_ll *duid; ++ struct grub_net_dhcp6_option_iana *ia_na; ++ grub_net_network_level_address_t multicast; ++ grub_net_link_level_address_t ll_multicast; ++ struct udphdr *udph; ++ ++ multicast.type = GRUB_NET_NETWORK_LEVEL_PROTOCOL_IPV6; ++ multicast.ipv6[0] = grub_cpu_to_be64_compile_time (0xff02ULL << 48); ++ multicast.ipv6[1] = grub_cpu_to_be64_compile_time (0x10002ULL); ++ ++ err = grub_net_link_layer_resolve (se->iface, ++ &multicast, &ll_multicast); ++ if (err) ++ { ++ grub_dhcp6_session_remove_all (); ++ return err; ++ } ++ ++ nb = grub_netbuff_alloc (GRUB_DHCP6_DEFAULT_NETBUFF_ALLOC_SIZE); ++ ++ if (!nb) ++ { ++ grub_dhcp6_session_remove_all (); ++ return grub_errno; ++ } ++ ++ err = grub_netbuff_reserve (nb, GRUB_DHCP6_DEFAULT_NETBUFF_ALLOC_SIZE); ++ if (err) ++ { ++ grub_dhcp6_session_remove_all (); ++ grub_netbuff_free (nb); ++ return err; ++ } ++ ++ err = grub_netbuff_push (nb, sizeof (*opt) + sizeof (grub_uint16_t)); ++ if (err) ++ { ++ grub_dhcp6_session_remove_all (); ++ grub_netbuff_free (nb); ++ return err; ++ } ++ ++ opt = (struct grub_net_dhcp6_option *)nb->data; ++ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_ELAPSED_TIME); ++ opt->len = grub_cpu_to_be16_compile_time (sizeof (grub_uint16_t)); ++ grub_set_unaligned16 (opt->data, 0); ++ ++ err = grub_netbuff_push (nb, sizeof (*opt) + sizeof (*duid)); ++ if (err) ++ { ++ grub_dhcp6_session_remove_all (); ++ grub_netbuff_free (nb); ++ return err; ++ } ++ ++ opt = (struct grub_net_dhcp6_option *)nb->data; ++ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_CLIENTID); ++ opt->len = grub_cpu_to_be16 (sizeof (*duid)); ++ ++ duid = (struct grub_net_dhcp6_option_duid_ll *) opt->data; ++ grub_memcpy (duid, &se->duid, sizeof (*duid)); ++ ++ err = grub_netbuff_push (nb, sizeof (*opt) + sizeof (*ia_na)); ++ if (err) ++ { ++ grub_dhcp6_session_remove_all (); ++ grub_netbuff_free (nb); ++ return err; ++ } ++ ++ opt = (struct grub_net_dhcp6_option *)nb->data; ++ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_IA_NA); ++ opt->len = grub_cpu_to_be16 (sizeof (*ia_na)); ++ ia_na = (struct grub_net_dhcp6_option_iana *)opt->data; ++ ia_na->iaid = grub_cpu_to_be32 (se->iaid); ++ ia_na->t1 = 0; ++ ia_na->t2 = 0; ++ ++ err = grub_netbuff_push (nb, sizeof (*v6h)); ++ if (err) ++ { ++ grub_dhcp6_session_remove_all (); ++ grub_netbuff_free (nb); ++ return err; ++ } ++ ++ v6h = (struct grub_net_dhcp6_packet *)nb->data; ++ v6h->message_type = GRUB_NET_DHCP6_SOLICIT; ++ v6h->transaction_id = se->transaction_id; ++ ++ grub_netbuff_push (nb, sizeof (*udph)); ++ ++ udph = (struct udphdr *) nb->data; ++ udph->src = grub_cpu_to_be16_compile_time (DHCP6_CLIENT_PORT); ++ udph->dst = grub_cpu_to_be16_compile_time (DHCP6_SERVER_PORT); ++ udph->chksum = 0; ++ udph->len = grub_cpu_to_be16 (nb->tail - nb->data); ++ ++ udph->chksum = grub_net_ip_transport_checksum (nb, GRUB_NET_IP_UDP, ++ &se->iface->address, &multicast); ++ ++ err = grub_net_send_ip_packet (se->iface, &multicast, ++ &ll_multicast, nb, GRUB_NET_IP_UDP); ++ done = 0; ++ grub_netbuff_free (nb); ++ ++ if (err) ++ { ++ grub_dhcp6_session_remove_all (); ++ return err; ++ } ++ } ++ if (!done) ++ grub_net_poll_cards (interval, 0); ++ } ++ ++ FOR_DHCP6_SESSIONS (se) ++ { ++ grub_error_push (); ++ err = grub_error (GRUB_ERR_FILE_NOT_FOUND, ++ N_("couldn't autoconfigure %s"), ++ se->iface->card->name); ++ } ++ ++ grub_dhcp6_session_remove_all (); ++ ++ return err; ++} ++ ++static grub_command_t cmd_getdhcp, cmd_bootp, cmd_bootp6; + + void + grub_bootp_init (void) +@@ -835,6 +1565,9 @@ grub_bootp_init (void) + cmd_getdhcp = grub_register_command ("net_get_dhcp_option", grub_cmd_dhcpopt, + N_("VAR INTERFACE NUMBER DESCRIPTION"), + N_("retrieve DHCP option and save it into VAR. If VAR is - then print the value.")); ++ cmd_bootp6 = grub_register_command ("net_bootp6", grub_cmd_bootp6, ++ N_("[CARD]"), ++ N_("perform a DHCPv6 autoconfiguration")); + } + + void +@@ -842,4 +1575,5 @@ grub_bootp_fini (void) + { + grub_unregister_command (cmd_getdhcp); + grub_unregister_command (cmd_bootp); ++ grub_unregister_command (cmd_bootp6); + } +diff --git a/grub-core/net/drivers/efi/efinet.c b/grub-core/net/drivers/efi/efinet.c +index bf36b446dc4..da90f0f40ce 100644 +--- a/grub-core/net/drivers/efi/efinet.c ++++ b/grub-core/net/drivers/efi/efinet.c +@@ -477,9 +477,6 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, + pxe_mode = pxe->mode; + if (pxe_mode->using_ipv6) + { +- grub_net_link_level_address_t hwaddr; +- struct grub_net_network_level_interface *intf; +- + grub_dprintf ("efinet", "using ipv6 and dhcpv6\n"); + grub_dprintf ("efinet", "dhcp_ack_received: %s%s\n", + pxe_mode->dhcp_ack_received ? "yes" : "no", +@@ -487,15 +484,14 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, + if (!pxe_mode->dhcp_ack_received) + continue; + +- hwaddr.type = GRUB_NET_LINK_LEVEL_PROTOCOL_ETHERNET; +- grub_memcpy (hwaddr.mac, +- card->efi_net->mode->current_address, +- sizeof (hwaddr.mac)); +- +- intf = grub_net_configure_by_dhcpv6_ack (card->name, card, 0, &hwaddr, +- (const struct grub_net_dhcpv6_packet *)&pxe_mode->dhcp_ack.dhcpv6, +- 1, device, path); +- if (intf && device && path) ++ grub_net_configure_by_dhcpv6_reply (card->name, card, 0, ++ (struct grub_net_dhcp6_packet *) ++ &pxe_mode->dhcp_ack, ++ sizeof (pxe_mode->dhcp_ack), ++ 1, device, path); ++ if (grub_errno) ++ grub_print_error (); ++ if (device && path) + grub_dprintf ("efinet", "device: `%s' path: `%s'\n", *device, *path); + } + else +diff --git a/grub-core/net/ip.c b/grub-core/net/ip.c +index b2ca74b6eb1..9a4e589aa39 100644 +--- a/grub-core/net/ip.c ++++ b/grub-core/net/ip.c +@@ -239,6 +239,45 @@ handle_dgram (struct grub_net_buff *nb, + { + struct udphdr *udph; + udph = (struct udphdr *) nb->data; ++ ++ if (proto == GRUB_NET_IP_UDP && udph->dst == grub_cpu_to_be16_compile_time (DHCP6_CLIENT_PORT)) ++ { ++ if (udph->chksum) ++ { ++ grub_uint16_t chk, expected; ++ chk = udph->chksum; ++ udph->chksum = 0; ++ expected = grub_net_ip_transport_checksum (nb, ++ GRUB_NET_IP_UDP, ++ source, ++ dest); ++ if (expected != chk) ++ { ++ grub_dprintf ("net", "Invalid UDP checksum. " ++ "Expected %x, got %x\n", ++ grub_be_to_cpu16 (expected), ++ grub_be_to_cpu16 (chk)); ++ grub_netbuff_free (nb); ++ return GRUB_ERR_NONE; ++ } ++ udph->chksum = chk; ++ } ++ ++ err = grub_netbuff_pull (nb, sizeof (*udph)); ++ if (err) ++ { ++ grub_netbuff_free (nb); ++ return err; ++ } ++ ++ err = grub_net_process_dhcp6 (nb, card); ++ if (err) ++ grub_print_error (); ++ ++ grub_netbuff_free (nb); ++ return GRUB_ERR_NONE; ++ } ++ + if (proto == GRUB_NET_IP_UDP && grub_be_to_cpu16 (udph->dst) == 68) + { + const struct grub_net_bootp_packet *bootp; +diff --git a/include/grub/efi/api.h b/include/grub/efi/api.h +index ddc5ecfb03d..6a545cc6d5d 100644 +--- a/include/grub/efi/api.h ++++ b/include/grub/efi/api.h +@@ -1511,7 +1511,7 @@ typedef struct grub_efi_pxe_ip_filter + { + grub_efi_uint8_t filters; + grub_efi_uint8_t ip_count; +- grub_efi_uint8_t reserved; ++ grub_efi_uint16_t reserved; + grub_efi_ip_address_t ip_list[GRUB_EFI_PXE_MAX_IPCNT]; + } grub_efi_pxe_ip_filter_t; + +diff --git a/include/grub/net.h b/include/grub/net.h +index f4cd86e582f..5f78b22e109 100644 +--- a/include/grub/net.h ++++ b/include/grub/net.h +@@ -447,50 +447,65 @@ struct grub_net_bootp_packet + grub_uint8_t vendor[0]; + } GRUB_PACKED; + +-enum +- { +- GRUB_NET_DHCP6_IA_NA = 3, +- GRUB_NET_DHCP6_IA_ADDRESS = 5, +- GRUB_NET_DHCP6_BOOTFILE_URL = 59, +- }; +- +-struct grub_net_dhcpv6_option ++struct grub_net_dhcp6_packet + { +- grub_uint16_t option_num; +- grub_uint16_t option_len; +- grub_uint8_t option_data[]; ++ grub_uint32_t message_type:8; ++ grub_uint32_t transaction_id:24; ++ grub_uint8_t dhcp_options[0]; + } GRUB_PACKED; +-typedef struct grub_net_dhcpv6_option grub_net_dhcpv6_option_t; + +-struct grub_net_dhcpv6_opt_ia_na +-{ +- grub_uint16_t option_num; +- grub_uint16_t option_len; ++struct grub_net_dhcp6_option { ++ grub_uint16_t code; ++ grub_uint16_t len; ++ grub_uint8_t data[0]; ++} GRUB_PACKED; ++ ++struct grub_net_dhcp6_option_iana { + grub_uint32_t iaid; + grub_uint32_t t1; + grub_uint32_t t2; +- grub_uint8_t options[]; ++ grub_uint8_t data[0]; + } GRUB_PACKED; +-typedef struct grub_net_dhcpv6_opt_ia_na grub_net_dhcpv6_opt_ia_na_t; + +-struct grub_net_dhcpv6_opt_ia_address +-{ +- grub_uint16_t option_num; +- grub_uint16_t option_len; +- grub_uint64_t ipv6_address[2]; ++struct grub_net_dhcp6_option_iaaddr { ++ grub_uint8_t addr[16]; + grub_uint32_t preferred_lifetime; + grub_uint32_t valid_lifetime; +- grub_uint8_t options[]; ++ grub_uint8_t data[0]; + } GRUB_PACKED; +-typedef struct grub_net_dhcpv6_opt_ia_address grub_net_dhcpv6_opt_ia_address_t; + +-struct grub_net_dhcpv6_packet ++struct grub_net_dhcp6_option_duid_ll + { +- grub_uint32_t message_type:8; +- grub_uint32_t transaction_id:24; +- grub_uint8_t dhcp_options[1024]; ++ grub_uint16_t type; ++ grub_uint16_t hw_type; ++ grub_uint8_t hwaddr[6]; + } GRUB_PACKED; +-typedef struct grub_net_dhcpv6_packet grub_net_dhcpv6_packet_t; ++ ++enum ++ { ++ GRUB_NET_DHCP6_SOLICIT = 1, ++ GRUB_NET_DHCP6_ADVERTISE = 2, ++ GRUB_NET_DHCP6_REQUEST = 3, ++ GRUB_NET_DHCP6_REPLY = 7 ++ }; ++ ++enum ++ { ++ DHCP6_CLIENT_PORT = 546, ++ DHCP6_SERVER_PORT = 547 ++ }; ++ ++enum ++ { ++ GRUB_NET_DHCP6_OPTION_CLIENTID = 1, ++ GRUB_NET_DHCP6_OPTION_SERVERID = 2, ++ GRUB_NET_DHCP6_OPTION_IA_NA = 3, ++ GRUB_NET_DHCP6_OPTION_IAADDR = 5, ++ GRUB_NET_DHCP6_OPTION_ORO = 6, ++ GRUB_NET_DHCP6_OPTION_ELAPSED_TIME = 8, ++ GRUB_NET_DHCP6_OPTION_DNS_SERVERS = 23, ++ GRUB_NET_DHCP6_OPTION_BOOTFILE_URL = 59 ++ }; + + #define GRUB_NET_BOOTP_RFC1048_MAGIC_0 0x63 + #define GRUB_NET_BOOTP_RFC1048_MAGIC_1 0x82 +@@ -521,12 +536,12 @@ grub_net_configure_by_dhcp_ack (const char *name, + int is_def, char **device, char **path); + + struct grub_net_network_level_interface * +-grub_net_configure_by_dhcpv6_ack (const char *name, +- struct grub_net_card *card, +- grub_net_interface_flags_t flags, +- const grub_net_link_level_address_t *hwaddr, +- const struct grub_net_dhcpv6_packet *packet, +- int is_def, char **device, char **path); ++grub_net_configure_by_dhcpv6_reply (const char *name, ++ struct grub_net_card *card, ++ grub_net_interface_flags_t flags, ++ const struct grub_net_dhcp6_packet *v6, ++ grub_size_t size, ++ int is_def, char **device, char **path); + + int + grub_ipv6_get_masksize(grub_uint16_t *mask); +@@ -543,6 +558,10 @@ void + grub_net_process_dhcp (struct grub_net_buff *nb, + struct grub_net_card *card); + ++grub_err_t ++grub_net_process_dhcp6 (struct grub_net_buff *nb, ++ struct grub_net_card *card); ++ + int + grub_net_hwaddr_cmp (const grub_net_link_level_address_t *a, + const grub_net_link_level_address_t *b); diff --git a/0172-Put-back-our-code-to-add-a-local-route.patch b/0172-Put-back-our-code-to-add-a-local-route.patch new file mode 100644 index 00000000..e8da5894 --- /dev/null +++ b/0172-Put-back-our-code-to-add-a-local-route.patch @@ -0,0 +1,35 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Thu, 21 Jun 2018 18:32:26 -0400 +Subject: [PATCH] Put back our code to add a local route. + +This was removed by the previous patch. + +Signed-off-by: Peter Jones +--- + grub-core/net/bootp.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/grub-core/net/bootp.c b/grub-core/net/bootp.c +index ff1d7776e7f..242cd1f4cbd 100644 +--- a/grub-core/net/bootp.c ++++ b/grub-core/net/bootp.c +@@ -976,6 +976,7 @@ grub_net_configure_by_dhcpv6_reply (const char *name, + { + struct grub_net_network_level_interface *inf; + grub_dhcp6_options_t dhcp6; ++ int mask = -1; + + dhcp6 = grub_dhcp6_options_get (v6h, size); + if (!dhcp6) +@@ -1007,6 +1008,10 @@ grub_net_configure_by_dhcpv6_reply (const char *name, + } + + grub_dhcp6_options_free (dhcp6); ++ ++ if (inf) ++ grub_net_add_ipv6_local (inf, mask); ++ + return inf; + } + diff --git a/0173-efinet-UEFI-IPv6-PXE-support.patch b/0173-efinet-UEFI-IPv6-PXE-support.patch new file mode 100644 index 00000000..98995530 --- /dev/null +++ b/0173-efinet-UEFI-IPv6-PXE-support.patch @@ -0,0 +1,126 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Michael Chang +Date: Wed, 15 Apr 2015 14:48:30 +0800 +Subject: [PATCH] efinet: UEFI IPv6 PXE support + +When grub2 image is booted from UEFI IPv6 PXE, the DHCPv6 Reply packet is +cached in firmware buffer which can be obtained by PXE Base Code protocol. The +network interface can be setup through the parameters in that obtained packet. + +Signed-off-by: Michael Chang +Signed-off-by: Ken Lin +--- + grub-core/net/drivers/efi/efinet.c | 2 ++ + include/grub/efi/api.h | 71 +++++++++++++++++++++++--------------- + 2 files changed, 46 insertions(+), 27 deletions(-) + +diff --git a/grub-core/net/drivers/efi/efinet.c b/grub-core/net/drivers/efi/efinet.c +index da90f0f40ce..ac58e3e82cf 100644 +--- a/grub-core/net/drivers/efi/efinet.c ++++ b/grub-core/net/drivers/efi/efinet.c +@@ -493,6 +493,8 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, + grub_print_error (); + if (device && path) + grub_dprintf ("efinet", "device: `%s' path: `%s'\n", *device, *path); ++ if (grub_errno) ++ grub_print_error (); + } + else + { +diff --git a/include/grub/efi/api.h b/include/grub/efi/api.h +index 6a545cc6d5d..7dbd8807b80 100644 +--- a/include/grub/efi/api.h ++++ b/include/grub/efi/api.h +@@ -1503,31 +1503,6 @@ typedef union + grub_efi_pxe_dhcpv6_packet_t dhcpv6; + } grub_efi_pxe_packet_t; + +-#define GRUB_EFI_PXE_MAX_IPCNT 8 +-#define GRUB_EFI_PXE_MAX_ARP_ENTRIES 8 +-#define GRUB_EFI_PXE_MAX_ROUTE_ENTRIES 8 +- +-typedef struct grub_efi_pxe_ip_filter +-{ +- grub_efi_uint8_t filters; +- grub_efi_uint8_t ip_count; +- grub_efi_uint16_t reserved; +- grub_efi_ip_address_t ip_list[GRUB_EFI_PXE_MAX_IPCNT]; +-} grub_efi_pxe_ip_filter_t; +- +-typedef struct grub_efi_pxe_arp_entry +-{ +- grub_efi_ip_address_t ip_addr; +- grub_efi_mac_address_t mac_addr; +-} grub_efi_pxe_arp_entry_t; +- +-typedef struct grub_efi_pxe_route_entry +-{ +- grub_efi_ip_address_t ip_addr; +- grub_efi_ip_address_t subnet_mask; +- grub_efi_ip_address_t gateway_addr; +-} grub_efi_pxe_route_entry_t; +- + typedef struct grub_efi_pxe_icmp_error + { + grub_efi_uint8_t type; +@@ -1553,6 +1528,48 @@ typedef struct grub_efi_pxe_tftp_error + grub_efi_char8_t error_string[127]; + } grub_efi_pxe_tftp_error_t; + ++typedef struct { ++ grub_uint8_t addr[4]; ++} grub_efi_pxe_ipv4_address_t; ++ ++typedef struct { ++ grub_uint8_t addr[16]; ++} grub_efi_pxe_ipv6_address_t; ++ ++typedef struct { ++ grub_uint8_t addr[32]; ++} grub_efi_pxe_mac_address_t; ++ ++typedef union { ++ grub_uint32_t addr[4]; ++ grub_efi_pxe_ipv4_address_t v4; ++ grub_efi_pxe_ipv6_address_t v6; ++} grub_efi_pxe_ip_address_t; ++ ++#define GRUB_EFI_PXE_BASE_CODE_MAX_IPCNT 8 ++typedef struct grub_efi_pxe_ip_filter ++{ ++ grub_efi_uint8_t filters; ++ grub_efi_uint8_t ip_count; ++ grub_efi_uint16_t reserved; ++ grub_efi_ip_address_t ip_list[GRUB_EFI_PXE_BASE_CODE_MAX_IPCNT]; ++} grub_efi_pxe_ip_filter_t; ++ ++typedef struct { ++ grub_efi_pxe_ip_address_t ip_addr; ++ grub_efi_pxe_mac_address_t mac_addr; ++} grub_efi_pxe_arp_entry_t; ++ ++typedef struct { ++ grub_efi_pxe_ip_address_t ip_addr; ++ grub_efi_pxe_ip_address_t subnet_mask; ++ grub_efi_pxe_ip_address_t gw_addr; ++} grub_efi_pxe_route_entry_t; ++ ++ ++#define GRUB_EFI_PXE_BASE_CODE_MAX_ARP_ENTRIES 8 ++#define GRUB_EFI_PXE_BASE_CODE_MAX_ROUTE_ENTRIES 8 ++ + typedef struct grub_efi_pxe_mode + { + grub_efi_boolean_t started; +@@ -1584,9 +1601,9 @@ typedef struct grub_efi_pxe_mode + grub_efi_pxe_packet_t pxe_bis_reply; + grub_efi_pxe_ip_filter_t ip_filter; + grub_efi_uint32_t arp_cache_entries; +- grub_efi_pxe_arp_entry_t arp_cache[GRUB_EFI_PXE_MAX_ARP_ENTRIES]; ++ grub_efi_pxe_arp_entry_t arp_cache[GRUB_EFI_PXE_BASE_CODE_MAX_ARP_ENTRIES]; + grub_efi_uint32_t route_table_entries; +- grub_efi_pxe_route_entry_t route_table[GRUB_EFI_PXE_MAX_ROUTE_ENTRIES]; ++ grub_efi_pxe_route_entry_t route_table[GRUB_EFI_PXE_BASE_CODE_MAX_ROUTE_ENTRIES]; + grub_efi_pxe_icmp_error_t icmp_error; + grub_efi_pxe_tftp_error_t tftp_error; + } grub_efi_pxe_mode_t; diff --git a/0174-grub.texi-Add-net_bootp6-doument.patch b/0174-grub.texi-Add-net_bootp6-doument.patch new file mode 100644 index 00000000..b66a80c0 --- /dev/null +++ b/0174-grub.texi-Add-net_bootp6-doument.patch @@ -0,0 +1,48 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Michael Chang +Date: Tue, 5 May 2015 14:19:24 +0800 +Subject: [PATCH] grub.texi: Add net_bootp6 doument + +Update grub documentation for net_bootp6 command. + +Signed-off-by: Michael Chang +Signed-off-by: Ken Lin +--- + docs/grub.texi | 17 +++++++++++++++++ + 1 file changed, 17 insertions(+) + +diff --git a/docs/grub.texi b/docs/grub.texi +index 2b7b7faf847..c54bee31679 100644 +--- a/docs/grub.texi ++++ b/docs/grub.texi +@@ -5303,6 +5303,7 @@ This command is only available on AArch64 systems. + * net_add_dns:: Add a DNS server + * net_add_route:: Add routing entry + * net_bootp:: Perform a bootp autoconfiguration ++* net_bootp6:: Perform a DHCPv6 autoconfiguration + * net_del_addr:: Remove IP address from interface + * net_del_dns:: Remove a DNS server + * net_del_route:: Remove a route entry +@@ -5384,6 +5385,22 @@ Sets environment variable @samp{net_}@var{}@samp{_dhcp_extensionspath} + + @end deffn + ++@node net_bootp6 ++@subsection net_bootp6 ++ ++@deffn Command net_bootp6 [@var{card}] ++Perform configuration of @var{card} using DHCPv6 protocol. If no card name is ++specified, try to configure all existing cards. If configuration was ++successful, interface with name @var{card}@samp{:dhcp6} and configured address ++is added to @var{card}. ++ ++@table @samp ++@item 1 (Domain Name Server) ++Adds all servers from option value to the list of servers used during name ++resolution. ++@end table ++ ++@end deffn + + @node net_del_addr + @subsection net_del_addr diff --git a/0175-bootp-Add-processing-DHCPACK-packet-from-HTTP-Boot.patch b/0175-bootp-Add-processing-DHCPACK-packet-from-HTTP-Boot.patch new file mode 100644 index 00000000..1874107d --- /dev/null +++ b/0175-bootp-Add-processing-DHCPACK-packet-from-HTTP-Boot.patch @@ -0,0 +1,135 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Michael Chang +Date: Thu, 14 Jul 2016 18:45:14 +0800 +Subject: [PATCH] bootp: Add processing DHCPACK packet from HTTP Boot + +The vendor class identifier with the string "HTTPClient" is used to denote the +packet as responding to HTTP boot request. In DHCP4 config, the filename for +HTTP boot is the URL of the boot file while for PXE boot it is the path to the +boot file. As a consequence, the next-server becomes obseleted because the HTTP +URL already contains the server address for the boot file. For DHCP6 config, +there's no difference definition in existing config as dhcp6.bootfile-url can +be used to specify URL for both HTTP and PXE boot file. + +This patch adds processing for "HTTPClient" vendor class identifier in DHCPACK +packet by treating it as HTTP format, not as the PXE format. + +Signed-off-by: Michael Chang +Signed-off-by: Ken Lin +--- + grub-core/net/bootp.c | 68 +++++++++++++++++++++++++++++++++++++++++++++++++-- + include/grub/net.h | 1 + + 2 files changed, 67 insertions(+), 2 deletions(-) + +diff --git a/grub-core/net/bootp.c b/grub-core/net/bootp.c +index 242cd1f4cbd..8b6fc9f2411 100644 +--- a/grub-core/net/bootp.c ++++ b/grub-core/net/bootp.c +@@ -20,6 +20,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -254,6 +255,11 @@ parse_dhcp_vendor (const char *name, const void *vend, int limit, int *mask) + taglength); + break; + ++ case GRUB_NET_BOOTP_VENDOR_CLASS_IDENTIFIER: ++ grub_env_set_net_property (name, "vendor_class_identifier", (const char *) ptr, ++ taglength); ++ break; ++ + case GRUB_NET_BOOTP_EXTENSIONS_PATH: + grub_env_set_net_property (name, "extensionspath", (const char *) ptr, + taglength); +@@ -357,6 +363,66 @@ grub_net_configure_by_dhcp_ack (const char *name, + } + #endif + ++ if (size > OFFSET_OF (vendor, bp)) ++ { ++ char *cidvar; ++ const char *cid; ++ ++ parse_dhcp_vendor (name, &bp->vendor, size - OFFSET_OF (vendor, bp), &mask); ++ cidvar = grub_xasprintf ("net_%s_%s", name, "vendor_class_identifier"); ++ cid = grub_env_get (cidvar); ++ grub_free (cidvar); ++ ++ if (cid && grub_strcmp (cid, "HTTPClient") == 0) ++ { ++ char *proto, *ip, *pa; ++ ++ if (!dissect_url (bp->boot_file, &proto, &ip, &pa)) ++ return inter; ++ ++ grub_env_set_net_property (name, "boot_file", pa, grub_strlen (pa)); ++ if (is_def) ++ { ++ grub_net_default_server = grub_strdup (ip); ++ grub_env_set ("net_default_interface", name); ++ grub_env_export ("net_default_interface"); ++ } ++ if (device && !*device) ++ { ++ *device = grub_xasprintf ("%s,%s", proto, ip); ++ grub_print_error (); ++ } ++ if (path) ++ { ++ *path = grub_strdup (pa); ++ grub_print_error (); ++ if (*path) ++ { ++ char *slash; ++ slash = grub_strrchr (*path, '/'); ++ if (slash) ++ *slash = 0; ++ else ++ **path = 0; ++ } ++ } ++ grub_net_add_ipv4_local (inter, mask); ++ inter->dhcp_ack = grub_malloc (size); ++ if (inter->dhcp_ack) ++ { ++ grub_memcpy (inter->dhcp_ack, bp, size); ++ inter->dhcp_acklen = size; ++ } ++ else ++ grub_errno = GRUB_ERR_NONE; ++ ++ grub_free (proto); ++ grub_free (ip); ++ grub_free (pa); ++ return inter; ++ } ++ } ++ + if (size > OFFSET_OF (boot_file, bp)) + grub_env_set_net_property (name, "boot_file", bp->boot_file, + sizeof (bp->boot_file)); +@@ -421,8 +487,6 @@ grub_net_configure_by_dhcp_ack (const char *name, + **path = 0; + } + } +- if (size > OFFSET_OF (vendor, bp)) +- parse_dhcp_vendor (name, &bp->vendor, size - OFFSET_OF (vendor, bp), &mask); + grub_net_add_ipv4_local (inter, mask); + + inter->dhcp_ack = grub_malloc (size); +diff --git a/include/grub/net.h b/include/grub/net.h +index 5f78b22e109..9cf6da68973 100644 +--- a/include/grub/net.h ++++ b/include/grub/net.h +@@ -522,6 +522,7 @@ enum + GRUB_NET_BOOTP_DOMAIN = 0x0f, + GRUB_NET_BOOTP_ROOT_PATH = 0x11, + GRUB_NET_BOOTP_EXTENSIONS_PATH = 0x12, ++ GRUB_NET_BOOTP_VENDOR_CLASS_IDENTIFIER = 0x3C, + GRUB_NET_BOOTP_CLIENT_ID = 0x3d, + GRUB_NET_BOOTP_CLIENT_UUID = 0x61, + GRUB_NET_BOOTP_END = 0xff diff --git a/0176-efinet-Setting-network-from-UEFI-device-path.patch b/0176-efinet-Setting-network-from-UEFI-device-path.patch new file mode 100644 index 00000000..6f978865 --- /dev/null +++ b/0176-efinet-Setting-network-from-UEFI-device-path.patch @@ -0,0 +1,405 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Michael Chang +Date: Sun, 10 Jul 2016 23:46:31 +0800 +Subject: [PATCH] efinet: Setting network from UEFI device path + +The PXE Base Code protocol used to obtain cached PXE DHCPACK packet is no +longer provided for HTTP Boot. Instead, we have to get the HTTP boot +information from the device path nodes defined in following UEFI Specification +sections. + + 9.3.5.12 IPv4 Device Path + 9.3.5.13 IPv6 Device Path + 9.3.5.23 Uniform Resource Identifiers (URI) Device Path + +This patch basically does: + +include/grub/efi/api.h: +Add new structure of Uniform Resource Identifiers (URI) Device Path + +grub-core/net/drivers/efi/efinet.c: +Check if PXE Base Code is available, if not it will try to obtain the netboot +information from the device path where the image booted from. The DHCPACK +packet is recoverd from the information in device patch and feed into the same +DHCP packet processing functions to ensure the network interface is setting up +the same way it used to be. + +Signed-off-by: Michael Chang +Signed-off-by: Ken Lin +--- + grub-core/net/drivers/efi/efinet.c | 284 +++++++++++++++++++++++++++++++++++-- + include/grub/efi/api.h | 11 ++ + 2 files changed, 280 insertions(+), 15 deletions(-) + +diff --git a/grub-core/net/drivers/efi/efinet.c b/grub-core/net/drivers/efi/efinet.c +index ac58e3e82cf..431b72916b6 100644 +--- a/grub-core/net/drivers/efi/efinet.c ++++ b/grub-core/net/drivers/efi/efinet.c +@@ -27,6 +27,7 @@ + #include + #include + #include ++#include + + GRUB_MOD_LICENSE ("GPLv3+"); + +@@ -412,6 +413,227 @@ grub_efinet_findcards (void) + } + } + ++static struct grub_net_buff * ++grub_efinet_create_dhcp_ack_from_device_path (grub_efi_device_path_t *dp, int *use_ipv6) ++{ ++ grub_efi_uint16_t uri_len; ++ grub_efi_device_path_t *ldp, *ddp; ++ grub_efi_uri_device_path_t *uri_dp; ++ struct grub_net_buff *nb; ++ grub_err_t err; ++ ++ ddp = grub_efi_duplicate_device_path (dp); ++ if (!ddp) ++ return NULL; ++ ++ ldp = grub_efi_find_last_device_path (ddp); ++ ++ if (GRUB_EFI_DEVICE_PATH_TYPE (ldp) != GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE ++ || GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) != GRUB_EFI_URI_DEVICE_PATH_SUBTYPE) ++ { ++ grub_free (ddp); ++ return NULL; ++ } ++ ++ uri_len = GRUB_EFI_DEVICE_PATH_LENGTH (ldp) > 4 ? GRUB_EFI_DEVICE_PATH_LENGTH (ldp) - 4 : 0; ++ ++ if (!uri_len) ++ { ++ grub_free (ddp); ++ return NULL; ++ } ++ ++ uri_dp = (grub_efi_uri_device_path_t *) ldp; ++ ++ ldp->type = GRUB_EFI_END_DEVICE_PATH_TYPE; ++ ldp->subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE; ++ ldp->length = sizeof (*ldp); ++ ++ ldp = grub_efi_find_last_device_path (ddp); ++ ++ if (GRUB_EFI_DEVICE_PATH_TYPE (ldp) != GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE ++ || (GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) != GRUB_EFI_IPV4_DEVICE_PATH_SUBTYPE ++ && GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) != GRUB_EFI_IPV6_DEVICE_PATH_SUBTYPE)) ++ { ++ grub_free (ddp); ++ return NULL; ++ } ++ ++ nb = grub_netbuff_alloc (512); ++ if (!nb) ++ { ++ grub_free (ddp); ++ return NULL; ++ } ++ ++ if (GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) == GRUB_EFI_IPV4_DEVICE_PATH_SUBTYPE) ++ { ++ grub_efi_ipv4_device_path_t *ipv4 = (grub_efi_ipv4_device_path_t *) ldp; ++ struct grub_net_bootp_packet *bp; ++ grub_uint8_t *ptr; ++ ++ bp = (struct grub_net_bootp_packet *) nb->tail; ++ err = grub_netbuff_put (nb, sizeof (*bp) + 4); ++ if (err) ++ { ++ grub_free (ddp); ++ grub_netbuff_free (nb); ++ return NULL; ++ } ++ ++ if (sizeof(bp->boot_file) < uri_len) ++ { ++ grub_free (ddp); ++ grub_netbuff_free (nb); ++ return NULL; ++ } ++ grub_memcpy (bp->boot_file, uri_dp->uri, uri_len); ++ grub_memcpy (&bp->your_ip, ipv4->local_ip_address, sizeof (bp->your_ip)); ++ grub_memcpy (&bp->server_ip, ipv4->remote_ip_address, sizeof (bp->server_ip)); ++ ++ bp->vendor[0] = GRUB_NET_BOOTP_RFC1048_MAGIC_0; ++ bp->vendor[1] = GRUB_NET_BOOTP_RFC1048_MAGIC_1; ++ bp->vendor[2] = GRUB_NET_BOOTP_RFC1048_MAGIC_2; ++ bp->vendor[3] = GRUB_NET_BOOTP_RFC1048_MAGIC_3; ++ ++ ptr = nb->tail; ++ err = grub_netbuff_put (nb, sizeof (ipv4->subnet_mask) + 2); ++ if (err) ++ { ++ grub_free (ddp); ++ grub_netbuff_free (nb); ++ return NULL; ++ } ++ *ptr++ = GRUB_NET_BOOTP_NETMASK; ++ *ptr++ = sizeof (ipv4->subnet_mask); ++ grub_memcpy (ptr, ipv4->subnet_mask, sizeof (ipv4->subnet_mask)); ++ ++ ptr = nb->tail; ++ err = grub_netbuff_put (nb, sizeof (ipv4->gateway_ip_address) + 2); ++ if (err) ++ { ++ grub_free (ddp); ++ grub_netbuff_free (nb); ++ return NULL; ++ } ++ *ptr++ = GRUB_NET_BOOTP_ROUTER; ++ *ptr++ = sizeof (ipv4->gateway_ip_address); ++ grub_memcpy (ptr, ipv4->gateway_ip_address, sizeof (ipv4->gateway_ip_address)); ++ ++ ptr = nb->tail; ++ err = grub_netbuff_put (nb, sizeof ("HTTPClient") + 1); ++ if (err) ++ { ++ grub_free (ddp); ++ grub_netbuff_free (nb); ++ return NULL; ++ } ++ *ptr++ = GRUB_NET_BOOTP_VENDOR_CLASS_IDENTIFIER; ++ *ptr++ = sizeof ("HTTPClient") - 1; ++ grub_memcpy (ptr, "HTTPClient", sizeof ("HTTPClient") - 1); ++ ++ ptr = nb->tail; ++ err = grub_netbuff_put (nb, 1); ++ if (err) ++ { ++ grub_free (ddp); ++ grub_netbuff_free (nb); ++ return NULL; ++ } ++ *ptr = GRUB_NET_BOOTP_END; ++ *use_ipv6 = 0; ++ ++ ldp->type = GRUB_EFI_END_DEVICE_PATH_TYPE; ++ ldp->subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE; ++ ldp->length = sizeof (*ldp); ++ ldp = grub_efi_find_last_device_path (ddp); ++ ++ if (GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) == GRUB_EFI_MAC_ADDRESS_DEVICE_PATH_SUBTYPE) ++ { ++ grub_efi_mac_address_device_path_t *mac = (grub_efi_mac_address_device_path_t *) ldp; ++ bp->hw_type = mac->if_type; ++ bp->hw_len = sizeof (bp->mac_addr); ++ grub_memcpy (bp->mac_addr, mac->mac_address, bp->hw_len); ++ } ++ } ++ else ++ { ++ grub_efi_ipv6_device_path_t *ipv6 = (grub_efi_ipv6_device_path_t *) ldp; ++ ++ struct grub_net_dhcp6_packet *d6p; ++ struct grub_net_dhcp6_option *opt; ++ struct grub_net_dhcp6_option_iana *iana; ++ struct grub_net_dhcp6_option_iaaddr *iaaddr; ++ ++ d6p = (struct grub_net_dhcp6_packet *)nb->tail; ++ err = grub_netbuff_put (nb, sizeof(*d6p)); ++ if (err) ++ { ++ grub_free (ddp); ++ grub_netbuff_free (nb); ++ return NULL; ++ } ++ d6p->message_type = GRUB_NET_DHCP6_REPLY; ++ ++ opt = (struct grub_net_dhcp6_option *)nb->tail; ++ err = grub_netbuff_put (nb, sizeof(*opt)); ++ if (err) ++ { ++ grub_free (ddp); ++ grub_netbuff_free (nb); ++ return NULL; ++ } ++ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_IA_NA); ++ opt->len = grub_cpu_to_be16_compile_time (sizeof(*iana) + sizeof(*opt) + sizeof(*iaaddr)); ++ ++ err = grub_netbuff_put (nb, sizeof(*iana)); ++ if (err) ++ { ++ grub_free (ddp); ++ grub_netbuff_free (nb); ++ return NULL; ++ } ++ ++ opt = (struct grub_net_dhcp6_option *)nb->tail; ++ err = grub_netbuff_put (nb, sizeof(*opt)); ++ if (err) ++ { ++ grub_free (ddp); ++ grub_netbuff_free (nb); ++ return NULL; ++ } ++ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_IAADDR); ++ opt->len = grub_cpu_to_be16_compile_time (sizeof (*iaaddr)); ++ ++ iaaddr = (struct grub_net_dhcp6_option_iaaddr *)nb->tail; ++ err = grub_netbuff_put (nb, sizeof(*iaaddr)); ++ if (err) ++ { ++ grub_free (ddp); ++ grub_netbuff_free (nb); ++ return NULL; ++ } ++ grub_memcpy (iaaddr->addr, ipv6->local_ip_address, sizeof(ipv6->local_ip_address)); ++ ++ opt = (struct grub_net_dhcp6_option *)nb->tail; ++ err = grub_netbuff_put (nb, sizeof(*opt) + uri_len); ++ if (err) ++ { ++ grub_free (ddp); ++ grub_netbuff_free (nb); ++ return NULL; ++ } ++ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_BOOTFILE_URL); ++ opt->len = grub_cpu_to_be16 (uri_len); ++ grub_memcpy (opt->data, uri_dp->uri, uri_len); ++ ++ *use_ipv6 = 1; ++ } ++ ++ grub_free (ddp); ++ return nb; ++} ++ + static void + grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, + char **path) +@@ -427,7 +649,11 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, + { + grub_efi_device_path_t *cdp; + struct grub_efi_pxe *pxe; +- struct grub_efi_pxe_mode *pxe_mode; ++ struct grub_efi_pxe_mode *pxe_mode = NULL; ++ grub_uint8_t *packet_buf; ++ grub_size_t packet_bufsz ; ++ int ipv6; ++ struct grub_net_buff *nb = NULL; + + if (card->driver != &efidriver) + continue; +@@ -454,11 +680,21 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, + */ + if (GRUB_EFI_DEVICE_PATH_TYPE (ldp) != GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE + || (GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) != GRUB_EFI_IPV4_DEVICE_PATH_SUBTYPE +- && GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) != GRUB_EFI_IPV6_DEVICE_PATH_SUBTYPE)) ++ && GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) != GRUB_EFI_IPV6_DEVICE_PATH_SUBTYPE ++ && GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) != GRUB_EFI_URI_DEVICE_PATH_SUBTYPE)) + continue; + dup_dp = grub_efi_duplicate_device_path (dp); + if (!dup_dp) + continue; ++ ++ if (GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) == GRUB_EFI_URI_DEVICE_PATH_SUBTYPE) ++ { ++ dup_ldp = grub_efi_find_last_device_path (dup_dp); ++ dup_ldp->type = GRUB_EFI_END_DEVICE_PATH_TYPE; ++ dup_ldp->subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE; ++ dup_ldp->length = sizeof (*dup_ldp); ++ } ++ + dup_ldp = grub_efi_find_last_device_path (dup_dp); + dup_ldp->type = GRUB_EFI_END_DEVICE_PATH_TYPE; + dup_ldp->subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE; +@@ -471,23 +707,37 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, + + pxe = grub_efi_open_protocol (hnd, &pxe_io_guid, + GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL); +- if (! pxe) +- continue; ++ if (!pxe) ++ { ++ nb = grub_efinet_create_dhcp_ack_from_device_path (dp, &ipv6); ++ if (!nb) ++ { ++ grub_print_error (); ++ continue; ++ } ++ packet_buf = nb->head; ++ packet_bufsz = nb->tail - nb->head; ++ } ++ else ++ { ++ pxe_mode = pxe->mode; ++ packet_buf = (grub_uint8_t *) &pxe_mode->dhcp_ack; ++ packet_bufsz = sizeof (pxe_mode->dhcp_ack); ++ ipv6 = pxe_mode->using_ipv6; ++ } + +- pxe_mode = pxe->mode; +- if (pxe_mode->using_ipv6) ++ if (ipv6) + { + grub_dprintf ("efinet", "using ipv6 and dhcpv6\n"); +- grub_dprintf ("efinet", "dhcp_ack_received: %s%s\n", +- pxe_mode->dhcp_ack_received ? "yes" : "no", +- pxe_mode->dhcp_ack_received ? "" : " cannot continue"); +- if (!pxe_mode->dhcp_ack_received) +- continue; ++ if (pxe_mode) ++ grub_dprintf ("efinet", "dhcp_ack_received: %s%s\n", ++ pxe_mode->dhcp_ack_received ? "yes" : "no", ++ pxe_mode->dhcp_ack_received ? "" : " cannot continue"); + + grub_net_configure_by_dhcpv6_reply (card->name, card, 0, + (struct grub_net_dhcp6_packet *) +- &pxe_mode->dhcp_ack, +- sizeof (pxe_mode->dhcp_ack), ++ packet_buf, ++ packet_bufsz, + 1, device, path); + if (grub_errno) + grub_print_error (); +@@ -501,11 +751,15 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, + grub_dprintf ("efinet", "using ipv4 and dhcp\n"); + grub_net_configure_by_dhcp_ack (card->name, card, 0, + (struct grub_net_bootp_packet *) +- &pxe_mode->dhcp_ack, +- sizeof (pxe_mode->dhcp_ack), ++ packet_buf, ++ packet_bufsz, + 1, device, path); + grub_dprintf ("efinet", "device: `%s' path: `%s'\n", *device, *path); + } ++ ++ if (nb) ++ grub_netbuff_free (nb); ++ + return; + } + } +diff --git a/include/grub/efi/api.h b/include/grub/efi/api.h +index 7dbd8807b80..0b61f791850 100644 +--- a/include/grub/efi/api.h ++++ b/include/grub/efi/api.h +@@ -843,6 +843,8 @@ struct grub_efi_ipv4_device_path + grub_efi_uint16_t remote_port; + grub_efi_uint16_t protocol; + grub_efi_uint8_t static_ip_address; ++ grub_efi_ipv4_address_t gateway_ip_address; ++ grub_efi_ipv4_address_t subnet_mask; + } GRUB_PACKED; + typedef struct grub_efi_ipv4_device_path grub_efi_ipv4_device_path_t; + +@@ -897,6 +899,15 @@ struct grub_efi_sata_device_path + } GRUB_PACKED; + typedef struct grub_efi_sata_device_path grub_efi_sata_device_path_t; + ++#define GRUB_EFI_URI_DEVICE_PATH_SUBTYPE 24 ++ ++struct grub_efi_uri_device_path ++{ ++ grub_efi_device_path_t header; ++ grub_efi_uint8_t uri[0]; ++} GRUB_PACKED; ++typedef struct grub_efi_uri_device_path grub_efi_uri_device_path_t; ++ + #define GRUB_EFI_VENDOR_MESSAGING_DEVICE_PATH_SUBTYPE 10 + + /* Media Device Path. */ diff --git a/0177-efinet-Setting-DNS-server-from-UEFI-protocol.patch b/0177-efinet-Setting-DNS-server-from-UEFI-protocol.patch new file mode 100644 index 00000000..11f9f688 --- /dev/null +++ b/0177-efinet-Setting-DNS-server-from-UEFI-protocol.patch @@ -0,0 +1,337 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Michael Chang +Date: Thu, 14 Jul 2016 17:48:45 +0800 +Subject: [PATCH] efinet: Setting DNS server from UEFI protocol + +In the URI device path node, any name rahter than address can be used for +looking up the resources so that DNS service become needed to get answer of the +name's address. Unfortunately the DNS is not defined in any of the device path +nodes so that we use the EFI_IP4_CONFIG2_PROTOCOL and EFI_IP6_CONFIG_PROTOCOL +to obtain it. + +These two protcols are defined the sections of UEFI specification. + + 27.5 EFI IPv4 Configuration II Protocol + 27.7 EFI IPv6 Configuration Protocol + +include/grub/efi/api.h: +Add new structure and protocol UUID of EFI_IP4_CONFIG2_PROTOCOL and +EFI_IP6_CONFIG_PROTOCOL. + +grub-core/net/drivers/efi/efinet.c: +Use the EFI_IP4_CONFIG2_PROTOCOL and EFI_IP6_CONFIG_PROTOCOL to obtain the list +of DNS server address for IPv4 and IPv6 respectively. The address of DNS +servers is structured into DHCPACK packet and feed into the same DHCP packet +processing functions to ensure the network interface is setting up the same way +it used to be. + +Signed-off-by: Michael Chang +Signed-off-by: Ken Lin +--- + grub-core/net/drivers/efi/efinet.c | 163 +++++++++++++++++++++++++++++++++++++ + include/grub/efi/api.h | 76 +++++++++++++++++ + 2 files changed, 239 insertions(+) + +diff --git a/grub-core/net/drivers/efi/efinet.c b/grub-core/net/drivers/efi/efinet.c +index 431b72916b6..c25a68161b8 100644 +--- a/grub-core/net/drivers/efi/efinet.c ++++ b/grub-core/net/drivers/efi/efinet.c +@@ -34,6 +34,8 @@ GRUB_MOD_LICENSE ("GPLv3+"); + /* GUID. */ + static grub_efi_guid_t net_io_guid = GRUB_EFI_SIMPLE_NETWORK_GUID; + static grub_efi_guid_t pxe_io_guid = GRUB_EFI_PXE_GUID; ++static grub_efi_guid_t ip4_config_guid = GRUB_EFI_IP4_CONFIG2_PROTOCOL_GUID; ++static grub_efi_guid_t ip6_config_guid = GRUB_EFI_IP6_CONFIG_PROTOCOL_GUID; + + static grub_err_t + send_card_buffer (struct grub_net_card *dev, +@@ -413,6 +415,125 @@ grub_efinet_findcards (void) + } + } + ++static grub_efi_handle_t ++grub_efi_locate_device_path (grub_efi_guid_t *protocol, grub_efi_device_path_t *device_path, ++ grub_efi_device_path_t **r_device_path) ++{ ++ grub_efi_handle_t handle; ++ grub_efi_status_t status; ++ ++ status = efi_call_3 (grub_efi_system_table->boot_services->locate_device_path, ++ protocol, &device_path, &handle); ++ ++ if (status != GRUB_EFI_SUCCESS) ++ return 0; ++ ++ if (r_device_path) ++ *r_device_path = device_path; ++ ++ return handle; ++} ++ ++static grub_efi_ipv4_address_t * ++grub_dns_server_ip4_address (grub_efi_device_path_t *dp, grub_efi_uintn_t *num_dns) ++{ ++ grub_efi_handle_t hnd; ++ grub_efi_status_t status; ++ grub_efi_ip4_config2_protocol_t *conf; ++ grub_efi_ipv4_address_t *addrs; ++ grub_efi_uintn_t data_size = 1 * sizeof (grub_efi_ipv4_address_t); ++ ++ hnd = grub_efi_locate_device_path (&ip4_config_guid, dp, NULL); ++ ++ if (!hnd) ++ return 0; ++ ++ conf = grub_efi_open_protocol (hnd, &ip4_config_guid, ++ GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL); ++ ++ if (!conf) ++ return 0; ++ ++ addrs = grub_malloc (data_size); ++ if (!addrs) ++ return 0; ++ ++ status = efi_call_4 (conf->get_data, conf, ++ GRUB_EFI_IP4_CONFIG2_DATA_TYPE_DNSSERVER, ++ &data_size, addrs); ++ ++ if (status == GRUB_EFI_BUFFER_TOO_SMALL) ++ { ++ grub_free (addrs); ++ addrs = grub_malloc (data_size); ++ if (!addrs) ++ return 0; ++ ++ status = efi_call_4 (conf->get_data, conf, ++ GRUB_EFI_IP4_CONFIG2_DATA_TYPE_DNSSERVER, ++ &data_size, addrs); ++ } ++ ++ if (status != GRUB_EFI_SUCCESS) ++ { ++ grub_free (addrs); ++ return 0; ++ } ++ ++ *num_dns = data_size / sizeof (grub_efi_ipv4_address_t); ++ return addrs; ++} ++ ++static grub_efi_ipv6_address_t * ++grub_dns_server_ip6_address (grub_efi_device_path_t *dp, grub_efi_uintn_t *num_dns) ++{ ++ grub_efi_handle_t hnd; ++ grub_efi_status_t status; ++ grub_efi_ip6_config_protocol_t *conf; ++ grub_efi_ipv6_address_t *addrs; ++ grub_efi_uintn_t data_size = 1 * sizeof (grub_efi_ipv6_address_t); ++ ++ hnd = grub_efi_locate_device_path (&ip6_config_guid, dp, NULL); ++ ++ if (!hnd) ++ return 0; ++ ++ conf = grub_efi_open_protocol (hnd, &ip6_config_guid, ++ GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL); ++ ++ if (!conf) ++ return 0; ++ ++ addrs = grub_malloc (data_size); ++ if (!addrs) ++ return 0; ++ ++ status = efi_call_4 (conf->get_data, conf, ++ GRUB_EFI_IP6_CONFIG_DATA_TYPE_DNSSERVER, ++ &data_size, addrs); ++ ++ if (status == GRUB_EFI_BUFFER_TOO_SMALL) ++ { ++ grub_free (addrs); ++ addrs = grub_malloc (data_size); ++ if (!addrs) ++ return 0; ++ ++ status = efi_call_4 (conf->get_data, conf, ++ GRUB_EFI_IP6_CONFIG_DATA_TYPE_DNSSERVER, ++ &data_size, addrs); ++ } ++ ++ if (status != GRUB_EFI_SUCCESS) ++ { ++ grub_free (addrs); ++ return 0; ++ } ++ ++ *num_dns = data_size / sizeof (grub_efi_ipv6_address_t); ++ return addrs; ++} ++ + static struct grub_net_buff * + grub_efinet_create_dhcp_ack_from_device_path (grub_efi_device_path_t *dp, int *use_ipv6) + { +@@ -471,6 +592,8 @@ grub_efinet_create_dhcp_ack_from_device_path (grub_efi_device_path_t *dp, int *u + grub_efi_ipv4_device_path_t *ipv4 = (grub_efi_ipv4_device_path_t *) ldp; + struct grub_net_bootp_packet *bp; + grub_uint8_t *ptr; ++ grub_efi_ipv4_address_t *dns; ++ grub_efi_uintn_t num_dns; + + bp = (struct grub_net_bootp_packet *) nb->tail; + err = grub_netbuff_put (nb, sizeof (*bp) + 4); +@@ -532,6 +655,25 @@ grub_efinet_create_dhcp_ack_from_device_path (grub_efi_device_path_t *dp, int *u + *ptr++ = sizeof ("HTTPClient") - 1; + grub_memcpy (ptr, "HTTPClient", sizeof ("HTTPClient") - 1); + ++ dns = grub_dns_server_ip4_address (dp, &num_dns); ++ if (dns) ++ { ++ grub_efi_uintn_t size_dns = sizeof (*dns) * num_dns; ++ ++ ptr = nb->tail; ++ err = grub_netbuff_put (nb, size_dns + 2); ++ if (err) ++ { ++ grub_free (ddp); ++ grub_netbuff_free (nb); ++ return NULL; ++ } ++ *ptr++ = GRUB_NET_BOOTP_DNS; ++ *ptr++ = size_dns; ++ grub_memcpy (ptr, dns, size_dns); ++ grub_free (dns); ++ } ++ + ptr = nb->tail; + err = grub_netbuff_put (nb, 1); + if (err) +@@ -564,6 +706,8 @@ grub_efinet_create_dhcp_ack_from_device_path (grub_efi_device_path_t *dp, int *u + struct grub_net_dhcp6_option *opt; + struct grub_net_dhcp6_option_iana *iana; + struct grub_net_dhcp6_option_iaaddr *iaaddr; ++ grub_efi_ipv6_address_t *dns; ++ grub_efi_uintn_t num_dns; + + d6p = (struct grub_net_dhcp6_packet *)nb->tail; + err = grub_netbuff_put (nb, sizeof(*d6p)); +@@ -627,6 +771,25 @@ grub_efinet_create_dhcp_ack_from_device_path (grub_efi_device_path_t *dp, int *u + opt->len = grub_cpu_to_be16 (uri_len); + grub_memcpy (opt->data, uri_dp->uri, uri_len); + ++ dns = grub_dns_server_ip6_address (dp, &num_dns); ++ if (dns) ++ { ++ grub_efi_uintn_t size_dns = sizeof (*dns) * num_dns; ++ ++ opt = (struct grub_net_dhcp6_option *)nb->tail; ++ err = grub_netbuff_put (nb, sizeof(*opt) + size_dns); ++ if (err) ++ { ++ grub_free (ddp); ++ grub_netbuff_free (nb); ++ return NULL; ++ } ++ opt->code = grub_cpu_to_be16_compile_time (GRUB_NET_DHCP6_OPTION_DNS_SERVERS); ++ opt->len = grub_cpu_to_be16 (size_dns); ++ grub_memcpy (opt->data, dns, size_dns); ++ grub_free (dns); ++ } ++ + *use_ipv6 = 1; + } + +diff --git a/include/grub/efi/api.h b/include/grub/efi/api.h +index 0b61f791850..80f6d79cfaf 100644 +--- a/include/grub/efi/api.h ++++ b/include/grub/efi/api.h +@@ -334,6 +334,16 @@ + { 0x8B, 0x8C, 0xE2, 0x1B, 0x01, 0xAE, 0xF2, 0xB7 } \ + } + ++#define GRUB_EFI_IP4_CONFIG2_PROTOCOL_GUID \ ++ { 0x5b446ed1, 0xe30b, 0x4faa, \ ++ { 0x87, 0x1a, 0x36, 0x54, 0xec, 0xa3, 0x60, 0x80 } \ ++ } ++ ++#define GRUB_EFI_IP6_CONFIG_PROTOCOL_GUID \ ++ { 0x937fe521, 0x95ae, 0x4d1a, \ ++ { 0x89, 0x29, 0x48, 0xbc, 0xd9, 0x0a, 0xd3, 0x1a } \ ++ } ++ + struct grub_efi_sal_system_table + { + grub_uint32_t signature; +@@ -1842,6 +1852,72 @@ struct grub_efi_block_io + }; + typedef struct grub_efi_block_io grub_efi_block_io_t; + ++enum grub_efi_ip4_config2_data_type { ++ GRUB_EFI_IP4_CONFIG2_DATA_TYPE_INTERFACEINFO, ++ GRUB_EFI_IP4_CONFIG2_DATA_TYPE_POLICY, ++ GRUB_EFI_IP4_CONFIG2_DATA_TYPE_MANUAL_ADDRESS, ++ GRUB_EFI_IP4_CONFIG2_DATA_TYPE_GATEWAY, ++ GRUB_EFI_IP4_CONFIG2_DATA_TYPE_DNSSERVER, ++ GRUB_EFI_IP4_CONFIG2_DATA_TYPE_MAXIMUM ++}; ++typedef enum grub_efi_ip4_config2_data_type grub_efi_ip4_config2_data_type_t; ++ ++struct grub_efi_ip4_config2_protocol ++{ ++ grub_efi_status_t (*set_data) (struct grub_efi_ip4_config2_protocol *this, ++ grub_efi_ip4_config2_data_type_t data_type, ++ grub_efi_uintn_t data_size, ++ void *data); ++ ++ grub_efi_status_t (*get_data) (struct grub_efi_ip4_config2_protocol *this, ++ grub_efi_ip4_config2_data_type_t data_type, ++ grub_efi_uintn_t *data_size, ++ void *data); ++ ++ grub_efi_status_t (*register_data_notify) (struct grub_efi_ip4_config2_protocol *this, ++ grub_efi_ip4_config2_data_type_t data_type, ++ grub_efi_event_t event); ++ ++ grub_efi_status_t (*unregister_datanotify) (struct grub_efi_ip4_config2_protocol *this, ++ grub_efi_ip4_config2_data_type_t data_type, ++ grub_efi_event_t event); ++}; ++typedef struct grub_efi_ip4_config2_protocol grub_efi_ip4_config2_protocol_t; ++ ++enum grub_efi_ip6_config_data_type { ++ GRUB_EFI_IP6_CONFIG_DATA_TYPE_INTERFACEINFO, ++ GRUB_EFI_IP6_CONFIG_DATA_TYPE_ALT_INTERFACEID, ++ GRUB_EFI_IP6_CONFIG_DATA_TYPE_POLICY, ++ GRUB_EFI_IP6_CONFIG_DATA_TYPE_DUP_ADDR_DETECT_TRANSMITS, ++ GRUB_EFI_IP6_CONFIG_DATA_TYPE_MANUAL_ADDRESS, ++ GRUB_EFI_IP6_CONFIG_DATA_TYPE_GATEWAY, ++ GRUB_EFI_IP6_CONFIG_DATA_TYPE_DNSSERVER, ++ GRUB_EFI_IP6_CONFIG_DATA_TYPE_MAXIMUM ++}; ++typedef enum grub_efi_ip6_config_data_type grub_efi_ip6_config_data_type_t; ++ ++struct grub_efi_ip6_config_protocol ++{ ++ grub_efi_status_t (*set_data) (struct grub_efi_ip6_config_protocol *this, ++ grub_efi_ip6_config_data_type_t data_type, ++ grub_efi_uintn_t data_size, ++ void *data); ++ ++ grub_efi_status_t (*get_data) (struct grub_efi_ip6_config_protocol *this, ++ grub_efi_ip6_config_data_type_t data_type, ++ grub_efi_uintn_t *data_size, ++ void *data); ++ ++ grub_efi_status_t (*register_data_notify) (struct grub_efi_ip6_config_protocol *this, ++ grub_efi_ip6_config_data_type_t data_type, ++ grub_efi_event_t event); ++ ++ grub_efi_status_t (*unregister_datanotify) (struct grub_efi_ip6_config_protocol *this, ++ grub_efi_ip6_config_data_type_t data_type, ++ grub_efi_event_t event); ++}; ++typedef struct grub_efi_ip6_config_protocol grub_efi_ip6_config_protocol_t; ++ + #if (GRUB_TARGET_SIZEOF_VOID_P == 4) || defined (__ia64__) \ + || defined (__aarch64__) || defined (__MINGW64__) || defined (__CYGWIN__) + diff --git a/0178-Fix-one-more-coverity-complaint.patch b/0178-Fix-one-more-coverity-complaint.patch new file mode 100644 index 00000000..ba00fbd1 --- /dev/null +++ b/0178-Fix-one-more-coverity-complaint.patch @@ -0,0 +1,27 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Thu, 25 May 2017 11:27:40 -0400 +Subject: [PATCH] Fix one more coverity complaint + +No idea why covscan thinks this is an "added" bug, since the file hasn't +changed in 3 years, but... yeah. + +Signed-off-by: Peter Jones +--- + grub-core/normal/completion.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/grub-core/normal/completion.c b/grub-core/normal/completion.c +index 2c9b9e9312a..93aa0d8eda8 100644 +--- a/grub-core/normal/completion.c ++++ b/grub-core/normal/completion.c +@@ -284,7 +284,8 @@ complete_file (void) + + /* Cut away the filename part. */ + dirfile = grub_strrchr (dir, '/'); +- dirfile[1] = '\0'; ++ if (dirfile) ++ dirfile[1] = '\0'; + + /* Iterate the directory. */ + (fs->dir) (dev, dir, iterate_dir, NULL); diff --git a/0179-Fix-grub_net_hwaddr_to_str.patch b/0179-Fix-grub_net_hwaddr_to_str.patch new file mode 100644 index 00000000..6c17a323 --- /dev/null +++ b/0179-Fix-grub_net_hwaddr_to_str.patch @@ -0,0 +1,41 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Mark Salter +Date: Tue, 22 Aug 2017 12:21:12 -0400 +Subject: [PATCH] Fix grub_net_hwaddr_to_str + +commit 5c3b78c92f8 introduced support for larger network hw addresses. +However, grub_net_hwaddr_to_str() relies on GRUB_NET_MAX_STR_ADDRESS_SIZE +to prevent a spurious ':' at the end of the string. So now, if actual +hwaddr size is less than max, an extra ':' appears at the end of the +string. So calculate max string size based on actual hwaddr length to +fix the problem. + +Signed-off-by: Mark Salter +--- + grub-core/net/net.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/grub-core/net/net.c b/grub-core/net/net.c +index a0f4d00f0be..191e8e41bd6 100644 +--- a/grub-core/net/net.c ++++ b/grub-core/net/net.c +@@ -770,6 +770,7 @@ grub_net_hwaddr_to_str (const grub_net_link_level_address_t *addr, char *str) + { + char *ptr; + unsigned i; ++ int maxstr; + + if (addr->len > GRUB_NET_MAX_LINK_ADDRESS_SIZE) + { +@@ -778,9 +779,10 @@ grub_net_hwaddr_to_str (const grub_net_link_level_address_t *addr, char *str) + addr->type, addr->len); + return; + } ++ maxstr = addr->len * grub_strlen ("XX:"); + for (ptr = str, i = 0; i < addr->len; i++) + { +- ptr += grub_snprintf (ptr, GRUB_NET_MAX_STR_HWADDR_LEN - (ptr - str), ++ ptr += grub_snprintf (ptr, maxstr - (ptr - str), + "%02x:", addr->mac[i] & 0xff); + } + } diff --git a/0180-Support-UEFI-networking-protocols.patch b/0180-Support-UEFI-networking-protocols.patch new file mode 100644 index 00000000..20728f9f --- /dev/null +++ b/0180-Support-UEFI-networking-protocols.patch @@ -0,0 +1,5055 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Michael Chang +Date: Wed, 22 Feb 2017 14:27:50 +0800 +Subject: [PATCH] Support UEFI networking protocols + +References: fate#320130, bsc#1015589, bsc#1076132 +Patch-Mainline: no + +V1: + * Add preliminary support of UEFI networking protocols + * Support UEFI HTTPS Boot + +V2: + * Workaround http data access in firmware + * Fix DNS device path parsing for efinet device + * Relaxed UEFI Protocol requirement + * Support Intel OPA (Omni-Path Architecture) PXE Boot + +V3: + * Fix bufio in calculating address of next_buf + * Check HTTP respond code + * Use HEAD request method to test before GET + * Finish HTTP transaction in one go + * Fix bsc#1076132 +--- + grub-core/Makefile.core.def | 18 + + grub-core/io/bufio.c | 2 +- + grub-core/kern/efi/efi.c | 96 ++- + grub-core/net/drivers/efi/efinet.c | 27 + + grub-core/net/efi/dhcp.c | 397 ++++++++++ + grub-core/net/efi/efi_netfs.c | 57 ++ + grub-core/net/efi/http.c | 419 +++++++++++ + grub-core/net/efi/ip4_config.c | 398 ++++++++++ + grub-core/net/efi/ip6_config.c | 422 +++++++++++ + grub-core/net/efi/net.c | 1428 ++++++++++++++++++++++++++++++++++++ + grub-core/net/efi/pxe.c | 424 +++++++++++ + grub-core/net/net.c | 74 ++ + util/grub-mknetdir.c | 23 +- + include/grub/efi/api.h | 180 ++++- + include/grub/efi/dhcp.h | 343 +++++++++ + include/grub/efi/http.h | 215 ++++++ + include/grub/net/efi.h | 144 ++++ + 17 files changed, 4626 insertions(+), 41 deletions(-) + create mode 100644 grub-core/net/efi/dhcp.c + create mode 100644 grub-core/net/efi/efi_netfs.c + create mode 100644 grub-core/net/efi/http.c + create mode 100644 grub-core/net/efi/ip4_config.c + create mode 100644 grub-core/net/efi/ip6_config.c + create mode 100644 grub-core/net/efi/net.c + create mode 100644 grub-core/net/efi/pxe.c + create mode 100644 include/grub/efi/dhcp.h + create mode 100644 include/grub/efi/http.h + create mode 100644 include/grub/net/efi.h + +diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def +index 420831bc89e..2851437e098 100644 +--- a/grub-core/Makefile.core.def ++++ b/grub-core/Makefile.core.def +@@ -2181,6 +2181,18 @@ module = { + common = hook/datehook.c; + }; + ++module = { ++ name = efi_netfs; ++ common = net/efi/efi_netfs.c; ++ common = net/efi/net.c; ++ common = net/efi/http.c; ++ common = net/efi/pxe.c; ++ common = net/efi/ip4_config.c; ++ common = net/efi/ip6_config.c; ++ common = net/efi/dhcp.c; ++ enable = efi; ++}; ++ + module = { + name = net; + common = net/net.c; +@@ -2195,6 +2207,12 @@ module = { + common = net/arp.c; + common = net/netbuff.c; + common = net/url.c; ++ efi = net/efi/net.c; ++ efi = net/efi/http.c; ++ efi = net/efi/pxe.c; ++ efi = net/efi/ip4_config.c; ++ efi = net/efi/ip6_config.c; ++ efi = net/efi/dhcp.c; + }; + + module = { +diff --git a/grub-core/io/bufio.c b/grub-core/io/bufio.c +index dbed6474431..6118bade50d 100644 +--- a/grub-core/io/bufio.c ++++ b/grub-core/io/bufio.c +@@ -139,7 +139,7 @@ grub_bufio_read (grub_file_t file, char *buf, grub_size_t len) + return res; + + /* Need to read some more. */ +- next_buf = (file->offset + res + len - 1) & ~((grub_off_t) bufio->block_size - 1); ++ next_buf = (grub_divmod64 (file->offset + res + len - 1, bufio->block_size, NULL)) * bufio->block_size; + /* Now read between file->offset + res and bufio->buffer_at. */ + if (file->offset + res < next_buf) + { +diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c +index a2a732ffc0d..4d36fe31177 100644 +--- a/grub-core/kern/efi/efi.c ++++ b/grub-core/kern/efi/efi.c +@@ -696,7 +696,7 @@ grub_efi_print_device_path (grub_efi_device_path_t *dp) + { + grub_efi_ipv4_device_path_t *ipv4 + = (grub_efi_ipv4_device_path_t *) dp; +- grub_printf ("/IPv4(%u.%u.%u.%u,%u.%u.%u.%u,%u,%u,%x,%x)", ++ grub_printf ("/IPv4(%u.%u.%u.%u,%u.%u.%u.%u,%u,%u,%x,%x", + (unsigned) ipv4->local_ip_address[0], + (unsigned) ipv4->local_ip_address[1], + (unsigned) ipv4->local_ip_address[2], +@@ -709,33 +709,60 @@ grub_efi_print_device_path (grub_efi_device_path_t *dp) + (unsigned) ipv4->remote_port, + (unsigned) ipv4->protocol, + (unsigned) ipv4->static_ip_address); ++ if (len == sizeof (*ipv4)) ++ { ++ grub_printf (",%u.%u.%u.%u,%u.%u.%u.%u", ++ (unsigned) ipv4->gateway_ip_address[0], ++ (unsigned) ipv4->gateway_ip_address[1], ++ (unsigned) ipv4->gateway_ip_address[2], ++ (unsigned) ipv4->gateway_ip_address[3], ++ (unsigned) ipv4->subnet_mask[0], ++ (unsigned) ipv4->subnet_mask[1], ++ (unsigned) ipv4->subnet_mask[2], ++ (unsigned) ipv4->subnet_mask[3]); ++ } ++ grub_printf (")"); + } + break; + case GRUB_EFI_IPV6_DEVICE_PATH_SUBTYPE: + { + grub_efi_ipv6_device_path_t *ipv6 + = (grub_efi_ipv6_device_path_t *) dp; +- grub_printf ("/IPv6(%x:%x:%x:%x:%x:%x:%x:%x,%x:%x:%x:%x:%x:%x:%x:%x,%u,%u,%x,%x)", +- (unsigned) ipv6->local_ip_address[0], +- (unsigned) ipv6->local_ip_address[1], +- (unsigned) ipv6->local_ip_address[2], +- (unsigned) ipv6->local_ip_address[3], +- (unsigned) ipv6->local_ip_address[4], +- (unsigned) ipv6->local_ip_address[5], +- (unsigned) ipv6->local_ip_address[6], +- (unsigned) ipv6->local_ip_address[7], +- (unsigned) ipv6->remote_ip_address[0], +- (unsigned) ipv6->remote_ip_address[1], +- (unsigned) ipv6->remote_ip_address[2], +- (unsigned) ipv6->remote_ip_address[3], +- (unsigned) ipv6->remote_ip_address[4], +- (unsigned) ipv6->remote_ip_address[5], +- (unsigned) ipv6->remote_ip_address[6], +- (unsigned) ipv6->remote_ip_address[7], ++ grub_printf ("/IPv6(%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x,%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x,%u,%u,%x,%x", ++ (unsigned) grub_be_to_cpu16 (ipv6->local_ip_address[0]), ++ (unsigned) grub_be_to_cpu16 (ipv6->local_ip_address[1]), ++ (unsigned) grub_be_to_cpu16 (ipv6->local_ip_address[2]), ++ (unsigned) grub_be_to_cpu16 (ipv6->local_ip_address[3]), ++ (unsigned) grub_be_to_cpu16 (ipv6->local_ip_address[4]), ++ (unsigned) grub_be_to_cpu16 (ipv6->local_ip_address[5]), ++ (unsigned) grub_be_to_cpu16 (ipv6->local_ip_address[6]), ++ (unsigned) grub_be_to_cpu16 (ipv6->local_ip_address[7]), ++ (unsigned) grub_be_to_cpu16 (ipv6->remote_ip_address[0]), ++ (unsigned) grub_be_to_cpu16 (ipv6->remote_ip_address[1]), ++ (unsigned) grub_be_to_cpu16 (ipv6->remote_ip_address[2]), ++ (unsigned) grub_be_to_cpu16 (ipv6->remote_ip_address[3]), ++ (unsigned) grub_be_to_cpu16 (ipv6->remote_ip_address[4]), ++ (unsigned) grub_be_to_cpu16 (ipv6->remote_ip_address[5]), ++ (unsigned) grub_be_to_cpu16 (ipv6->remote_ip_address[6]), ++ (unsigned) grub_be_to_cpu16 (ipv6->remote_ip_address[7]), + (unsigned) ipv6->local_port, + (unsigned) ipv6->remote_port, + (unsigned) ipv6->protocol, + (unsigned) ipv6->static_ip_address); ++ if (len == sizeof (*ipv6)) ++ { ++ grub_printf (",%u,%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x", ++ (unsigned) ipv6->prefix_length, ++ (unsigned) grub_be_to_cpu16 (ipv6->gateway_ip_address[0]), ++ (unsigned) grub_be_to_cpu16 (ipv6->gateway_ip_address[1]), ++ (unsigned) grub_be_to_cpu16 (ipv6->gateway_ip_address[2]), ++ (unsigned) grub_be_to_cpu16 (ipv6->gateway_ip_address[3]), ++ (unsigned) grub_be_to_cpu16 (ipv6->gateway_ip_address[4]), ++ (unsigned) grub_be_to_cpu16 (ipv6->gateway_ip_address[5]), ++ (unsigned) grub_be_to_cpu16 (ipv6->gateway_ip_address[6]), ++ (unsigned) grub_be_to_cpu16 (ipv6->gateway_ip_address[7])); ++ } ++ grub_printf (")"); + } + break; + case GRUB_EFI_INFINIBAND_DEVICE_PATH_SUBTYPE: +@@ -775,6 +802,39 @@ grub_efi_print_device_path (grub_efi_device_path_t *dp) + dump_vendor_path ("Messaging", + (grub_efi_vendor_device_path_t *) dp); + break; ++ case GRUB_EFI_URI_DEVICE_PATH_SUBTYPE: ++ { ++ grub_efi_uri_device_path_t *uri ++ = (grub_efi_uri_device_path_t *) dp; ++ grub_printf ("/URI(%s)", uri->uri); ++ } ++ break; ++ case GRUB_EFI_DNS_DEVICE_PATH_SUBTYPE: ++ { ++ grub_efi_dns_device_path_t *dns ++ = (grub_efi_dns_device_path_t *) dp; ++ if (dns->is_ipv6) ++ { ++ grub_printf ("/DNS(%02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x)", ++ (grub_uint16_t)(grub_be_to_cpu32(dns->dns_server_ip[0].addr[0]) >> 16), ++ (grub_uint16_t)(grub_be_to_cpu32(dns->dns_server_ip[0].addr[0])), ++ (grub_uint16_t)(grub_be_to_cpu32(dns->dns_server_ip[0].addr[1]) >> 16), ++ (grub_uint16_t)(grub_be_to_cpu32(dns->dns_server_ip[0].addr[1])), ++ (grub_uint16_t)(grub_be_to_cpu32(dns->dns_server_ip[0].addr[2]) >> 16), ++ (grub_uint16_t)(grub_be_to_cpu32(dns->dns_server_ip[0].addr[2])), ++ (grub_uint16_t)(grub_be_to_cpu32(dns->dns_server_ip[0].addr[3]) >> 16), ++ (grub_uint16_t)(grub_be_to_cpu32(dns->dns_server_ip[0].addr[3]))); ++ } ++ else ++ { ++ grub_printf ("/DNS(%d.%d.%d.%d)", ++ dns->dns_server_ip[0].v4.addr[0], ++ dns->dns_server_ip[0].v4.addr[1], ++ dns->dns_server_ip[0].v4.addr[2], ++ dns->dns_server_ip[0].v4.addr[3]); ++ } ++ } ++ break; + default: + grub_printf ("/UnknownMessaging(%x)", (unsigned) subtype); + break; +diff --git a/grub-core/net/drivers/efi/efinet.c b/grub-core/net/drivers/efi/efinet.c +index c25a68161b8..56305f46a3d 100644 +--- a/grub-core/net/drivers/efi/efinet.c ++++ b/grub-core/net/drivers/efi/efinet.c +@@ -28,6 +28,7 @@ + #include + #include + #include ++#include + + GRUB_MOD_LICENSE ("GPLv3+"); + +@@ -572,6 +573,17 @@ grub_efinet_create_dhcp_ack_from_device_path (grub_efi_device_path_t *dp, int *u + + ldp = grub_efi_find_last_device_path (ddp); + ++ /* Skip the DNS Device */ ++ if (GRUB_EFI_DEVICE_PATH_TYPE (ldp) == GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE ++ && GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) == GRUB_EFI_DNS_DEVICE_PATH_SUBTYPE) ++ { ++ ldp->type = GRUB_EFI_END_DEVICE_PATH_TYPE; ++ ldp->subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE; ++ ldp->length = sizeof (*ldp); ++ ++ ldp = grub_efi_find_last_device_path (ddp); ++ } ++ + if (GRUB_EFI_DEVICE_PATH_TYPE (ldp) != GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE + || (GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) != GRUB_EFI_IPV4_DEVICE_PATH_SUBTYPE + && GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) != GRUB_EFI_IPV6_DEVICE_PATH_SUBTYPE)) +@@ -844,6 +856,7 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, + if (GRUB_EFI_DEVICE_PATH_TYPE (ldp) != GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE + || (GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) != GRUB_EFI_IPV4_DEVICE_PATH_SUBTYPE + && GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) != GRUB_EFI_IPV6_DEVICE_PATH_SUBTYPE ++ && GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) != GRUB_EFI_DNS_DEVICE_PATH_SUBTYPE + && GRUB_EFI_DEVICE_PATH_SUBTYPE (ldp) != GRUB_EFI_URI_DEVICE_PATH_SUBTYPE)) + continue; + dup_dp = grub_efi_duplicate_device_path (dp); +@@ -858,6 +871,15 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, + dup_ldp->length = sizeof (*dup_ldp); + } + ++ dup_ldp = grub_efi_find_last_device_path (dup_dp); ++ if (GRUB_EFI_DEVICE_PATH_SUBTYPE (dup_ldp) == GRUB_EFI_DNS_DEVICE_PATH_SUBTYPE) ++ { ++ dup_ldp = grub_efi_find_last_device_path (dup_dp); ++ dup_ldp->type = GRUB_EFI_END_DEVICE_PATH_TYPE; ++ dup_ldp->subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE; ++ dup_ldp->length = sizeof (*dup_ldp); ++ } ++ + dup_ldp = grub_efi_find_last_device_path (dup_dp); + dup_ldp->type = GRUB_EFI_END_DEVICE_PATH_TYPE; + dup_ldp->subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE; +@@ -929,6 +951,9 @@ grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, + + GRUB_MOD_INIT(efinet) + { ++ if (grub_efi_net_config) ++ return; ++ + grub_efinet_findcards (); + grub_efi_net_config = grub_efi_net_config_real; + } +@@ -940,5 +965,7 @@ GRUB_MOD_FINI(efinet) + FOR_NET_CARDS_SAFE (card, next) + if (card->driver == &efidriver) + grub_net_card_unregister (card); ++ ++ grub_efi_net_config = NULL; + } + +diff --git a/grub-core/net/efi/dhcp.c b/grub-core/net/efi/dhcp.c +new file mode 100644 +index 00000000000..dbef63d8c08 +--- /dev/null ++++ b/grub-core/net/efi/dhcp.c +@@ -0,0 +1,397 @@ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++#ifdef GRUB_EFI_NET_DEBUG ++static void ++dhcp4_mode_print (grub_efi_dhcp4_mode_data_t *mode) ++{ ++ switch (mode->state) ++ { ++ case GRUB_EFI_DHCP4_STOPPED: ++ grub_printf ("STATE: STOPPED\n"); ++ break; ++ case GRUB_EFI_DHCP4_INIT: ++ grub_printf ("STATE: INIT\n"); ++ break; ++ case GRUB_EFI_DHCP4_SELECTING: ++ grub_printf ("STATE: SELECTING\n"); ++ break; ++ case GRUB_EFI_DHCP4_REQUESTING: ++ grub_printf ("STATE: REQUESTING\n"); ++ break; ++ case GRUB_EFI_DHCP4_BOUND: ++ grub_printf ("STATE: BOUND\n"); ++ break; ++ case GRUB_EFI_DHCP4_RENEWING: ++ grub_printf ("STATE: RENEWING\n"); ++ break; ++ case GRUB_EFI_DHCP4_REBINDING: ++ grub_printf ("STATE: REBINDING\n"); ++ break; ++ case GRUB_EFI_DHCP4_INIT_REBOOT: ++ grub_printf ("STATE: INIT_REBOOT\n"); ++ break; ++ case GRUB_EFI_DHCP4_REBOOTING: ++ grub_printf ("STATE: REBOOTING\n"); ++ break; ++ default: ++ grub_printf ("STATE: UNKNOWN\n"); ++ break; ++ } ++ ++ grub_printf ("CLIENT_ADDRESS: %u.%u.%u.%u\n", ++ mode->client_address[0], ++ mode->client_address[1], ++ mode->client_address[2], ++ mode->client_address[3]); ++ grub_printf ("SERVER_ADDRESS: %u.%u.%u.%u\n", ++ mode->server_address[0], ++ mode->server_address[1], ++ mode->server_address[2], ++ mode->server_address[3]); ++ grub_printf ("SUBNET_MASK: %u.%u.%u.%u\n", ++ mode->subnet_mask[0], ++ mode->subnet_mask[1], ++ mode->subnet_mask[2], ++ mode->subnet_mask[3]); ++ grub_printf ("ROUTER_ADDRESS: %u.%u.%u.%u\n", ++ mode->router_address[0], ++ mode->router_address[1], ++ mode->router_address[2], ++ mode->router_address[3]); ++} ++#endif ++ ++static grub_efi_ipv4_address_t * ++grub_efi_dhcp4_parse_dns (grub_efi_dhcp4_protocol_t *dhcp4, grub_efi_dhcp4_packet_t *reply_packet) ++{ ++ grub_efi_dhcp4_packet_option_t **option_list; ++ grub_efi_status_t status; ++ grub_efi_uint32_t option_count = 0; ++ grub_efi_uint32_t i; ++ ++ status = efi_call_4 (dhcp4->parse, dhcp4, reply_packet, &option_count, NULL); ++ ++ if (status != GRUB_EFI_BUFFER_TOO_SMALL) ++ return NULL; ++ ++ option_list = grub_malloc (option_count * sizeof(*option_list)); ++ if (!option_list) ++ return NULL; ++ ++ status = efi_call_4 (dhcp4->parse, dhcp4, reply_packet, &option_count, option_list); ++ if (status != GRUB_EFI_SUCCESS) ++ { ++ grub_free (option_list); ++ return NULL; ++ } ++ ++ for (i = 0; i < option_count; ++i) ++ { ++ if (option_list[i]->op_code == 6) ++ { ++ grub_efi_ipv4_address_t *dns_address; ++ ++ if (((option_list[i]->length & 0x3) != 0) || (option_list[i]->length == 0)) ++ continue; ++ ++ /* We only contact primary dns */ ++ dns_address = grub_malloc (sizeof (*dns_address)); ++ if (!dns_address) ++ { ++ grub_free (option_list); ++ return NULL; ++ } ++ grub_memcpy (dns_address, option_list[i]->data, sizeof (dns_address)); ++ grub_free (option_list); ++ return dns_address; ++ } ++ } ++ ++ grub_free (option_list); ++ return NULL; ++} ++ ++#if 0 ++/* Somehow this doesn't work ... */ ++static grub_err_t ++grub_cmd_efi_bootp (struct grub_command *cmd __attribute__ ((unused)), ++ int argc __attribute__ ((unused)), ++ char **args __attribute__ ((unused))) ++{ ++ struct grub_efi_net_device *dev; ++ for (dev = net_devices; dev; dev = dev->next) ++ { ++ grub_efi_pxe_t *pxe = dev->ip4_pxe; ++ grub_efi_pxe_mode_t *mode = pxe->mode; ++ grub_efi_status_t status; ++ ++ if (!mode->started) ++ { ++ status = efi_call_2 (pxe->start, pxe, 0); ++ ++ if (status != GRUB_EFI_SUCCESS) ++ grub_printf ("Couldn't start PXE\n"); ++ } ++ ++ status = efi_call_2 (pxe->dhcp, pxe, 0); ++ if (status != GRUB_EFI_SUCCESS) ++ { ++ grub_printf ("dhcp4 configure failed, %d\n", (int)status); ++ continue; ++ } ++ ++ dev->prefer_ip6 = 0; ++ } ++ ++ return GRUB_ERR_NONE; ++} ++#endif ++ ++static grub_err_t ++grub_cmd_efi_bootp (struct grub_command *cmd __attribute__ ((unused)), ++ int argc, ++ char **args) ++{ ++ struct grub_efi_net_device *netdev; ++ ++ for (netdev = net_devices; netdev; netdev = netdev->next) ++ { ++ grub_efi_status_t status; ++ grub_efi_dhcp4_mode_data_t mode; ++ grub_efi_dhcp4_config_data_t config; ++ grub_efi_dhcp4_packet_option_t *options; ++ grub_efi_ipv4_address_t *dns_address; ++ grub_efi_net_ip_manual_address_t net_ip; ++ grub_efi_net_ip_address_t ip_addr; ++ grub_efi_net_interface_t *inf = NULL; ++ ++ if (argc > 0 && grub_strcmp (netdev->card_name, args[0]) != 0) ++ continue; ++ ++ grub_memset (&config, 0, sizeof(config)); ++ ++ config.option_count = 1; ++ options = grub_malloc (sizeof(*options) + 2); ++ /* Parameter request list */ ++ options->op_code = 55; ++ options->length = 3; ++ /* subnet mask */ ++ options->data[0] = 1; ++ /* router */ ++ options->data[1] = 3; ++ /* DNS */ ++ options->data[2] = 6; ++ config.option_list = &options; ++ ++ /* FIXME: What if the dhcp has bounded */ ++ status = efi_call_2 (netdev->dhcp4->configure, netdev->dhcp4, &config); ++ grub_free (options); ++ if (status != GRUB_EFI_SUCCESS) ++ { ++ grub_printf ("dhcp4 configure failed, %d\n", (int)status); ++ continue; ++ } ++ ++ status = efi_call_2 (netdev->dhcp4->start, netdev->dhcp4, NULL); ++ if (status != GRUB_EFI_SUCCESS) ++ { ++ grub_printf ("dhcp4 start failed, %d\n", (int)status); ++ continue; ++ } ++ ++ status = efi_call_2 (netdev->dhcp4->get_mode_data, netdev->dhcp4, &mode); ++ if (status != GRUB_EFI_SUCCESS) ++ { ++ grub_printf ("dhcp4 get mode failed, %d\n", (int)status); ++ continue; ++ } ++ ++#ifdef GRUB_EFI_NET_DEBUG ++ dhcp4_mode_print (&mode); ++#endif ++ ++ for (inf = netdev->net_interfaces; inf; inf = inf->next) ++ if (inf->prefer_ip6 == 0) ++ break; ++ ++ grub_memcpy (net_ip.ip4.address, mode.client_address, sizeof (net_ip.ip4.address)); ++ grub_memcpy (net_ip.ip4.subnet_mask, mode.subnet_mask, sizeof (net_ip.ip4.subnet_mask)); ++ ++ if (!inf) ++ { ++ char *name = grub_xasprintf ("%s:dhcp", netdev->card_name); ++ ++ net_ip.is_ip6 = 0; ++ inf = grub_efi_net_create_interface (netdev, ++ name, ++ &net_ip, ++ 1); ++ grub_free (name); ++ } ++ else ++ { ++ efi_net_interface_set_address (inf, &net_ip, 1); ++ } ++ ++ grub_memcpy (ip_addr.ip4, mode.router_address, sizeof (ip_addr.ip4)); ++ efi_net_interface_set_gateway (inf, &ip_addr); ++ ++ dns_address = grub_efi_dhcp4_parse_dns (netdev->dhcp4, mode.reply_packet); ++ if (dns_address) ++ efi_net_interface_set_dns (inf, (grub_efi_net_ip_address_t *)&dns_address); ++ ++ } ++ ++ return GRUB_ERR_NONE; ++} ++ ++ ++static grub_err_t ++grub_cmd_efi_bootp6 (struct grub_command *cmd __attribute__ ((unused)), ++ int argc, ++ char **args) ++{ ++ struct grub_efi_net_device *dev; ++ grub_efi_uint32_t ia_id; ++ ++ for (dev = net_devices, ia_id = 0; dev; dev = dev->next, ia_id++) ++ { ++ grub_efi_dhcp6_config_data_t config; ++ grub_efi_dhcp6_packet_option_t *option_list[1]; ++ grub_efi_dhcp6_packet_option_t *opt; ++ grub_efi_status_t status; ++ grub_efi_dhcp6_mode_data_t mode; ++ grub_efi_dhcp6_retransmission_t retrans; ++ grub_efi_net_ip_manual_address_t net_ip; ++ grub_efi_boot_services_t *b = grub_efi_system_table->boot_services; ++ grub_efi_net_interface_t *inf = NULL; ++ ++ if (argc > 0 && grub_strcmp (dev->card_name, args[0]) != 0) ++ continue; ++ ++ opt = grub_malloc (sizeof(*opt) + 2 * sizeof (grub_efi_uint16_t)); ++ ++#define GRUB_EFI_DHCP6_OPT_ORO 6 ++ ++ opt->op_code = grub_cpu_to_be16_compile_time (GRUB_EFI_DHCP6_OPT_ORO); ++ opt->op_len = grub_cpu_to_be16_compile_time (2 * sizeof (grub_efi_uint16_t)); ++ ++#define GRUB_EFI_DHCP6_OPT_BOOT_FILE_URL 59 ++#define GRUB_EFI_DHCP6_OPT_DNS_SERVERS 23 ++ ++ grub_set_unaligned16 (opt->data, grub_cpu_to_be16_compile_time(GRUB_EFI_DHCP6_OPT_BOOT_FILE_URL)); ++ grub_set_unaligned16 (opt->data + 1 * sizeof (grub_efi_uint16_t), ++ grub_cpu_to_be16_compile_time(GRUB_EFI_DHCP6_OPT_DNS_SERVERS)); ++ ++ option_list[0] = opt; ++ retrans.irt = 4; ++ retrans.mrc = 4; ++ retrans.mrt = 32; ++ retrans.mrd = 60; ++ ++ config.dhcp6_callback = NULL; ++ config.callback_context = NULL; ++ config.option_count = 1; ++ config.option_list = option_list; ++ config.ia_descriptor.ia_id = ia_id; ++ config.ia_descriptor.type = GRUB_EFI_DHCP6_IA_TYPE_NA; ++ config.ia_info_event = NULL; ++ config.reconfigure_accept = 0; ++ config.rapid_commit = 0; ++ config.solicit_retransmission = &retrans; ++ ++ status = efi_call_2 (dev->dhcp6->configure, dev->dhcp6, &config); ++ grub_free (opt); ++ if (status != GRUB_EFI_SUCCESS) ++ { ++ grub_printf ("dhcp6 configure failed, %d\n", (int)status); ++ continue; ++ } ++ status = efi_call_1 (dev->dhcp6->start, dev->dhcp6); ++ if (status != GRUB_EFI_SUCCESS) ++ { ++ grub_printf ("dhcp6 start failed, %d\n", (int)status); ++ continue; ++ } ++ ++ status = efi_call_3 (dev->dhcp6->get_mode_data, dev->dhcp6, &mode, NULL); ++ if (status != GRUB_EFI_SUCCESS) ++ { ++ grub_printf ("dhcp4 get mode failed, %d\n", (int)status); ++ continue; ++ } ++ ++ for (inf = dev->net_interfaces; inf; inf = inf->next) ++ if (inf->prefer_ip6 == 1) ++ break; ++ ++ grub_memcpy (net_ip.ip6.address, mode.ia->ia_address[0].ip_address, sizeof (net_ip.ip6.address)); ++ net_ip.ip6.prefix_length = 64; ++ net_ip.ip6.is_anycast = 0; ++ net_ip.is_ip6 = 1; ++ ++ if (!inf) ++ { ++ char *name = grub_xasprintf ("%s:dhcp", dev->card_name); ++ ++ inf = grub_efi_net_create_interface (dev, ++ name, ++ &net_ip, ++ 1); ++ grub_free (name); ++ } ++ else ++ { ++ efi_net_interface_set_address (inf, &net_ip, 1); ++ } ++ ++ { ++ grub_efi_uint32_t count = 0; ++ grub_efi_dhcp6_packet_option_t **options = NULL; ++ grub_efi_uint32_t i; ++ ++ status = efi_call_4 (dev->dhcp6->parse, dev->dhcp6, mode.ia->reply_packet, &count, NULL); ++ ++ if (status == GRUB_EFI_BUFFER_TOO_SMALL && count) ++ { ++ options = grub_malloc (count * sizeof(*options)); ++ status = efi_call_4 (dev->dhcp6->parse, dev->dhcp6, mode.ia->reply_packet, &count, options); ++ } ++ ++ if (status != GRUB_EFI_SUCCESS) ++ { ++ if (options) ++ grub_free (options); ++ continue; ++ } ++ ++ for (i = 0; i < count; ++i) ++ { ++ if (options[i]->op_code == grub_cpu_to_be16_compile_time(GRUB_EFI_DHCP6_OPT_DNS_SERVERS)) ++ { ++ grub_efi_net_ip_address_t dns; ++ grub_memcpy (dns.ip6, options[i]->data, sizeof(net_ip.ip6)); ++ efi_net_interface_set_dns (inf, &dns); ++ break; ++ } ++ } ++ ++ if (options) ++ grub_free (options); ++ } ++ ++ efi_call_1 (b->free_pool, mode.client_id); ++ efi_call_1 (b->free_pool, mode.ia); ++ } ++ ++ return GRUB_ERR_NONE; ++} ++ ++grub_command_func_t grub_efi_net_bootp = grub_cmd_efi_bootp; ++grub_command_func_t grub_efi_net_bootp6 = grub_cmd_efi_bootp6; +diff --git a/grub-core/net/efi/efi_netfs.c b/grub-core/net/efi/efi_netfs.c +new file mode 100644 +index 00000000000..ef371d885ea +--- /dev/null ++++ b/grub-core/net/efi/efi_netfs.c +@@ -0,0 +1,57 @@ ++#include ++#include ++#define EFI_NET_CMD_PREFIX "net_efi" ++#include ++ ++GRUB_MOD_LICENSE ("GPLv3+"); ++ ++static grub_command_t cmd_efi_lsroutes; ++static grub_command_t cmd_efi_lscards; ++static grub_command_t cmd_efi_lsaddrs; ++static grub_command_t cmd_efi_addaddr; ++static grub_command_t cmd_efi_bootp; ++static grub_command_t cmd_efi_bootp6; ++ ++static int initialized; ++ ++GRUB_MOD_INIT(efi_netfs) ++{ ++ if (grub_net_open) ++ return; ++ ++ if (grub_efi_net_fs_init ()) ++ { ++ cmd_efi_lsroutes = grub_register_command ("net_efi_ls_routes", grub_efi_net_list_routes, ++ "", N_("list network routes")); ++ cmd_efi_lscards = grub_register_command ("net_efi_ls_cards", grub_efi_net_list_cards, ++ "", N_("list network cards")); ++ cmd_efi_lsaddrs = grub_register_command ("net_efi_ls_addr", grub_efi_net_list_addrs, ++ "", N_("list network addresses")); ++ cmd_efi_addaddr = grub_register_command ("net_efi_add_addr", grub_efi_net_add_addr, ++ N_("SHORTNAME CARD ADDRESS [HWADDRESS]"), ++ N_("Add a network address.")); ++ cmd_efi_bootp = grub_register_command ("net_efi_bootp", grub_efi_net_bootp, ++ N_("[CARD]"), ++ N_("perform a bootp autoconfiguration")); ++ cmd_efi_bootp6 = grub_register_command ("net_efi_bootp6", grub_efi_net_bootp6, ++ N_("[CARD]"), ++ N_("perform a bootp autoconfiguration")); ++ initialized = 1; ++ } ++} ++ ++GRUB_MOD_FINI(efi_netfs) ++{ ++ if (initialized) ++ { ++ grub_unregister_command (cmd_efi_lsroutes); ++ grub_unregister_command (cmd_efi_lscards); ++ grub_unregister_command (cmd_efi_lsaddrs); ++ grub_unregister_command (cmd_efi_addaddr); ++ grub_unregister_command (cmd_efi_bootp); ++ grub_unregister_command (cmd_efi_bootp6); ++ grub_efi_net_fs_fini (); ++ initialized = 0; ++ return; ++ } ++} +diff --git a/grub-core/net/efi/http.c b/grub-core/net/efi/http.c +new file mode 100644 +index 00000000000..3f61fd2fa5b +--- /dev/null ++++ b/grub-core/net/efi/http.c +@@ -0,0 +1,419 @@ ++ ++#include ++#include ++#include ++#include ++#include ++ ++static void ++http_configure (struct grub_efi_net_device *dev, int prefer_ip6) ++{ ++ grub_efi_http_config_data_t http_config; ++ grub_efi_httpv4_access_point_t httpv4_node; ++ grub_efi_httpv6_access_point_t httpv6_node; ++ grub_efi_status_t status; ++ ++ grub_efi_http_t *http = dev->http; ++ ++ grub_memset (&http_config, 0, sizeof(http_config)); ++ http_config.http_version = GRUB_EFI_HTTPVERSION11; ++ http_config.timeout_millisec = 5000; ++ ++ if (prefer_ip6) ++ { ++ grub_efi_uintn_t sz; ++ grub_efi_ip6_config_manual_address_t manual_address; ++ ++ http_config.local_address_is_ipv6 = 1; ++ sz = sizeof (manual_address); ++ status = efi_call_4 (dev->ip6_config->get_data, dev->ip6_config, ++ GRUB_EFI_IP6_CONFIG_DATA_TYPE_MANUAL_ADDRESS, ++ &sz, &manual_address); ++ ++ if (status == GRUB_EFI_NOT_FOUND) ++ { ++ grub_printf ("The MANUAL ADDRESS is not found\n"); ++ } ++ ++ /* FIXME: The manual interface would return BUFFER TOO SMALL !!! */ ++ if (status != GRUB_EFI_SUCCESS) ++ { ++ grub_printf ("??? %d\n",(int) status); ++ return; ++ } ++ ++ grub_memcpy (httpv6_node.local_address, manual_address.address, sizeof (httpv6_node.local_address)); ++ httpv6_node.local_port = 0; ++ http_config.access_point.ipv6_node = &httpv6_node; ++ } ++ else ++ { ++ http_config.local_address_is_ipv6 = 0; ++ grub_memset (&httpv4_node, 0, sizeof(httpv4_node)); ++ httpv4_node.use_default_address = 1; ++ ++ /* Use random port here */ ++ /* See TcpBind() in edk2/NetworkPkg/TcpDxe/TcpDispatcher.c */ ++ httpv4_node.local_port = 0; ++ http_config.access_point.ipv4_node = &httpv4_node; ++ } ++ ++ status = efi_call_2 (http->configure, http, &http_config); ++ ++ if (status == GRUB_EFI_ALREADY_STARTED) ++ { ++ /* XXX: This hangs HTTPS boot */ ++#if 0 ++ if (efi_call_2 (http->configure, http, NULL) != GRUB_EFI_SUCCESS) ++ { ++ grub_error (GRUB_ERR_IO, N_("couldn't reset http instance")); ++ grub_print_error (); ++ return; ++ } ++ status = efi_call_2 (http->configure, http, &http_config); ++#endif ++ return; ++ } ++ ++ if (status != GRUB_EFI_SUCCESS) ++ { ++ grub_error (GRUB_ERR_IO, N_("couldn't configure http protocol, reason: %d"), (int)status); ++ grub_print_error (); ++ return ; ++ } ++} ++ ++static grub_efi_boolean_t request_callback_done; ++static grub_efi_boolean_t response_callback_done; ++ ++static void ++grub_efi_http_request_callback (grub_efi_event_t event __attribute__ ((unused)), ++ void *context __attribute__ ((unused))) ++{ ++ request_callback_done = 1; ++} ++ ++static void ++grub_efi_http_response_callback (grub_efi_event_t event __attribute__ ((unused)), ++ void *context __attribute__ ((unused))) ++{ ++ response_callback_done = 1; ++} ++ ++static grub_err_t ++efihttp_request (grub_efi_http_t *http, char *server, char *name, int use_https, int headeronly, grub_off_t *file_size) ++{ ++ grub_efi_http_request_data_t request_data; ++ grub_efi_http_message_t request_message; ++ grub_efi_http_token_t request_token; ++ grub_efi_http_response_data_t response_data; ++ grub_efi_http_message_t response_message; ++ grub_efi_http_token_t response_token; ++ grub_efi_http_header_t request_headers[3]; ++ ++ grub_efi_status_t status; ++ grub_efi_boot_services_t *b = grub_efi_system_table->boot_services; ++ char *url = NULL; ++ ++ request_headers[0].field_name = (grub_efi_char8_t *)"Host"; ++ request_headers[0].field_value = (grub_efi_char8_t *)server; ++ request_headers[1].field_name = (grub_efi_char8_t *)"Accept"; ++ request_headers[1].field_value = (grub_efi_char8_t *)"*/*"; ++ request_headers[2].field_name = (grub_efi_char8_t *)"User-Agent"; ++ request_headers[2].field_value = (grub_efi_char8_t *)"UefiHttpBoot/1.0"; ++ ++ { ++ grub_efi_ipv6_address_t address; ++ const char *rest; ++ grub_efi_char16_t *ucs2_url; ++ grub_size_t url_len, ucs2_url_len; ++ const char *protocol = (use_https == 1) ? "https" : "http"; ++ ++ if (grub_efi_string_to_ip6_address (server, &address, &rest) && *rest == 0) ++ url = grub_xasprintf ("%s://[%s]%s", protocol, server, name); ++ else ++ url = grub_xasprintf ("%s://%s%s", protocol, server, name); ++ ++ if (!url) ++ { ++ return grub_errno; ++ } ++ ++ url_len = grub_strlen (url); ++ ucs2_url_len = url_len * GRUB_MAX_UTF16_PER_UTF8; ++ ucs2_url = grub_malloc ((ucs2_url_len + 1) * sizeof (ucs2_url[0])); ++ ++ if (!ucs2_url) ++ { ++ grub_free (url); ++ return grub_errno; ++ } ++ ++ ucs2_url_len = grub_utf8_to_utf16 (ucs2_url, ucs2_url_len, (grub_uint8_t *)url, url_len, NULL); /* convert string format from ascii to usc2 */ ++ ucs2_url[ucs2_url_len] = 0; ++ grub_free (url); ++ request_data.url = ucs2_url; ++ } ++ ++ request_data.method = (headeronly > 0) ? GRUB_EFI_HTTPMETHODHEAD : GRUB_EFI_HTTPMETHODGET; ++ ++ request_message.data.request = &request_data; ++ request_message.header_count = 3; ++ request_message.headers = request_headers; ++ request_message.body_length = 0; ++ request_message.body = NULL; ++ ++ /* request token */ ++ request_token.event = NULL; ++ request_token.status = GRUB_EFI_NOT_READY; ++ request_token.message = &request_message; ++ ++ request_callback_done = 0; ++ status = efi_call_5 (b->create_event, ++ GRUB_EFI_EVT_NOTIFY_SIGNAL, ++ GRUB_EFI_TPL_CALLBACK, ++ grub_efi_http_request_callback, ++ NULL, ++ &request_token.event); ++ ++ if (status != GRUB_EFI_SUCCESS) ++ { ++ grub_free (request_data.url); ++ return grub_error (GRUB_ERR_IO, "Fail to create an event! status=0x%x\n", status); ++ } ++ ++ status = efi_call_2 (http->request, http, &request_token); ++ ++ if (status != GRUB_EFI_SUCCESS) ++ { ++ efi_call_1 (b->close_event, request_token.event); ++ grub_free (request_data.url); ++ return grub_error (GRUB_ERR_IO, "Fail to send a request! status=0x%x\n", status); ++ } ++ /* TODO: Add Timeout */ ++ while (!request_callback_done) ++ efi_call_1(http->poll, http); ++ ++ response_data.status_code = GRUB_EFI_HTTP_STATUS_UNSUPPORTED_STATUS; ++ response_message.data.response = &response_data; ++ /* herader_count will be updated by the HTTP driver on response */ ++ response_message.header_count = 0; ++ /* headers will be populated by the driver on response */ ++ response_message.headers = NULL; ++ /* use zero BodyLength to only receive the response headers */ ++ response_message.body_length = 0; ++ response_message.body = NULL; ++ response_token.event = NULL; ++ ++ status = efi_call_5 (b->create_event, ++ GRUB_EFI_EVT_NOTIFY_SIGNAL, ++ GRUB_EFI_TPL_CALLBACK, ++ grub_efi_http_response_callback, ++ NULL, ++ &response_token.event); ++ ++ if (status != GRUB_EFI_SUCCESS) ++ { ++ efi_call_1 (b->close_event, request_token.event); ++ grub_free (request_data.url); ++ return grub_error (GRUB_ERR_IO, "Fail to create an event! status=0x%x\n", status); ++ } ++ ++ response_token.status = GRUB_EFI_SUCCESS; ++ response_token.message = &response_message; ++ ++ /* wait for HTTP response */ ++ response_callback_done = 0; ++ status = efi_call_2 (http->response, http, &response_token); ++ ++ if (status != GRUB_EFI_SUCCESS) ++ { ++ efi_call_1 (b->close_event, response_token.event); ++ efi_call_1 (b->close_event, request_token.event); ++ grub_free (request_data.url); ++ return grub_error (GRUB_ERR_IO, "Fail to receive a response! status=%d\n", (int)status); ++ } ++ ++ /* TODO: Add Timeout */ ++ while (!response_callback_done) ++ efi_call_1 (http->poll, http); ++ ++ if (response_message.data.response->status_code != GRUB_EFI_HTTP_STATUS_200_OK) ++ { ++ grub_efi_http_status_code_t status_code = response_message.data.response->status_code; ++ ++ if (response_message.headers) ++ efi_call_1 (b->free_pool, response_message.headers); ++ efi_call_1 (b->close_event, response_token.event); ++ efi_call_1 (b->close_event, request_token.event); ++ grub_free (request_data.url); ++ if (status_code == GRUB_EFI_HTTP_STATUS_404_NOT_FOUND) ++ { ++ return grub_error (GRUB_ERR_FILE_NOT_FOUND, _("file `%s' not found"), name); ++ } ++ else ++ { ++ return grub_error (GRUB_ERR_NET_UNKNOWN_ERROR, ++ _("unsupported uefi http status code 0x%x"), status_code); ++ } ++ } ++ ++ if (file_size) ++ { ++ int i; ++ /* parse the length of the file from the ContentLength header */ ++ for (*file_size = 0, i = 0; i < (int)response_message.header_count; ++i) ++ { ++ if (!grub_strcmp((const char*)response_message.headers[i].field_name, "Content-Length")) ++ { ++ *file_size = grub_strtoul((const char*)response_message.headers[i].field_value, 0, 10); ++ break; ++ } ++ } ++ } ++ ++ if (response_message.headers) ++ efi_call_1 (b->free_pool, response_message.headers); ++ efi_call_1 (b->close_event, response_token.event); ++ efi_call_1 (b->close_event, request_token.event); ++ grub_free (request_data.url); ++ ++ return GRUB_ERR_NONE; ++} ++ ++static grub_ssize_t ++efihttp_read (struct grub_efi_net_device *dev, ++ char *buf, ++ grub_size_t len) ++{ ++ grub_efi_http_message_t response_message; ++ grub_efi_http_token_t response_token; ++ ++ grub_efi_status_t status; ++ grub_size_t sum = 0; ++ grub_efi_boot_services_t *b = grub_efi_system_table->boot_services; ++ grub_efi_http_t *http = dev->http; ++ ++ if (!len) ++ { ++ grub_error (GRUB_ERR_BUG, "Invalid arguments to EFI HTTP Read"); ++ return -1; ++ } ++ ++ efi_call_5 (b->create_event, ++ GRUB_EFI_EVT_NOTIFY_SIGNAL, ++ GRUB_EFI_TPL_CALLBACK, ++ grub_efi_http_response_callback, ++ NULL, ++ &response_token.event); ++ ++ while (len) ++ { ++ response_message.data.response = NULL; ++ response_message.header_count = 0; ++ response_message.headers = NULL; ++ response_message.body_length = len; ++ response_message.body = buf; ++ ++ response_token.message = &response_message; ++ response_token.status = GRUB_EFI_NOT_READY; ++ ++ response_callback_done = 0; ++ ++ status = efi_call_2 (http->response, http, &response_token); ++ if (status != GRUB_EFI_SUCCESS) ++ { ++ efi_call_1 (b->close_event, response_token.event); ++ grub_error (GRUB_ERR_IO, "Error! status=%d\n", (int)status); ++ return -1; ++ } ++ ++ while (!response_callback_done) ++ efi_call_1(http->poll, http); ++ ++ sum += response_message.body_length; ++ buf += response_message.body_length; ++ len -= response_message.body_length; ++ } ++ ++ efi_call_1 (b->close_event, response_token.event); ++ ++ return sum; ++} ++ ++static grub_err_t ++grub_efihttp_open (struct grub_efi_net_device *dev, ++ int prefer_ip6 __attribute__ ((unused)), ++ grub_file_t file, ++ const char *filename __attribute__ ((unused)), ++ int type) ++{ ++ grub_err_t err; ++ grub_off_t size; ++ char *buf; ++ ++ err = efihttp_request (dev->http, file->device->net->server, file->device->net->name, type, 1, 0); ++ if (err != GRUB_ERR_NONE) ++ return err; ++ ++ err = efihttp_request (dev->http, file->device->net->server, file->device->net->name, type, 0, &size); ++ if (err != GRUB_ERR_NONE) ++ return err; ++ ++ buf = grub_malloc (size); ++ efihttp_read (dev, buf, size); ++ ++ file->size = size; ++ file->data = buf; ++ file->not_easily_seekable = 0; ++ file->device->net->offset = 0; ++ ++ return GRUB_ERR_NONE; ++} ++ ++static grub_err_t ++grub_efihttp_close (struct grub_efi_net_device *dev __attribute__ ((unused)), ++ int prefer_ip6 __attribute__ ((unused)), ++ grub_file_t file) ++{ ++ if (file->data) ++ grub_free (file->data); ++ ++ file->data = 0; ++ file->offset = 0; ++ file->size = 0; ++ file->device->net->offset = 0; ++ return GRUB_ERR_NONE; ++} ++ ++static grub_ssize_t ++grub_efihttp_read (struct grub_efi_net_device *dev __attribute__((unused)), ++ int prefer_ip6 __attribute__((unused)), ++ grub_file_t file, ++ char *buf, ++ grub_size_t len) ++{ ++ grub_size_t r = len; ++ ++ if (!file->data || !buf || !len) ++ return 0; ++ ++ if ((file->device->net->offset + len) > file->size) ++ r = file->size - file->device->net->offset; ++ ++ if (r) ++ { ++ grub_memcpy (buf, (char *)file->data + file->device->net->offset, r); ++ file->device->net->offset += r; ++ } ++ ++ return r; ++} ++ ++struct grub_efi_net_io io_http = ++ { ++ .configure = http_configure, ++ .open = grub_efihttp_open, ++ .read = grub_efihttp_read, ++ .close = grub_efihttp_close ++ }; +diff --git a/grub-core/net/efi/ip4_config.c b/grub-core/net/efi/ip4_config.c +new file mode 100644 +index 00000000000..b711a5d9457 +--- /dev/null ++++ b/grub-core/net/efi/ip4_config.c +@@ -0,0 +1,398 @@ ++ ++#include ++#include ++#include ++#include ++#include ++ ++char * ++grub_efi_hw_address_to_string (grub_efi_uint32_t hw_address_size, grub_efi_mac_address_t hw_address) ++{ ++ char *hw_addr, *p; ++ int sz, s; ++ int i; ++ ++ sz = (int)hw_address_size * (sizeof ("XX:") - 1) + 1; ++ ++ hw_addr = grub_malloc (sz); ++ if (!hw_addr) ++ return NULL; ++ ++ p = hw_addr; ++ s = sz; ++ for (i = 0; i < (int)hw_address_size; i++) ++ { ++ grub_snprintf (p, sz, "%02x:", hw_address[i]); ++ p += sizeof ("XX:") - 1; ++ s -= sizeof ("XX:") - 1; ++ } ++ ++ hw_addr[sz - 2] = '\0'; ++ return hw_addr; ++} ++ ++char * ++grub_efi_ip4_address_to_string (grub_efi_ipv4_address_t *address) ++{ ++ char *addr; ++ ++ addr = grub_malloc (sizeof ("XXX.XXX.XXX.XXX")); ++ if (!addr) ++ return NULL; ++ ++ /* FIXME: Use grub_xasprintf ? */ ++ grub_snprintf (addr, ++ sizeof ("XXX.XXX.XXX.XXX"), ++ "%u.%u.%u.%u", ++ (*address)[0], ++ (*address)[1], ++ (*address)[2], ++ (*address)[3]); ++ ++ return addr; ++} ++ ++int ++grub_efi_string_to_ip4_address (const char *val, grub_efi_ipv4_address_t *address, const char **rest) ++{ ++ grub_uint32_t newip = 0; ++ int i; ++ const char *ptr = val; ++ ++ for (i = 0; i < 4; i++) ++ { ++ unsigned long t; ++ t = grub_strtoul (ptr, (char **) &ptr, 0); ++ if (grub_errno) ++ { ++ grub_errno = GRUB_ERR_NONE; ++ return 0; ++ } ++ if (*ptr != '.' && i == 0) ++ { ++ /* XXX: t is in host byte order */ ++ newip = t; ++ break; ++ } ++ if (t & ~0xff) ++ return 0; ++ newip <<= 8; ++ newip |= t; ++ if (i != 3 && *ptr != '.') ++ return 0; ++ ptr++; ++ } ++ ++ newip = grub_cpu_to_be32 (newip); ++ ++ grub_memcpy (address, &newip, sizeof(*address)); ++ ++ if (rest) ++ *rest = (ptr - 1); ++ return 1; ++} ++ ++static grub_efi_ip4_config2_interface_info_t * ++efi_ip4_config_interface_info (grub_efi_ip4_config2_protocol_t *ip4_config) ++{ ++ grub_efi_uintn_t sz; ++ grub_efi_status_t status; ++ grub_efi_ip4_config2_interface_info_t *interface_info; ++ ++ sz = sizeof (*interface_info) + sizeof (*interface_info->route_table); ++ interface_info = grub_malloc (sz); ++ if (!interface_info) ++ return NULL; ++ ++ status = efi_call_4 (ip4_config->get_data, ip4_config, ++ GRUB_EFI_IP4_CONFIG2_DATA_TYPE_INTERFACEINFO, ++ &sz, interface_info); ++ ++ if (status == GRUB_EFI_BUFFER_TOO_SMALL) ++ { ++ grub_free (interface_info); ++ interface_info = grub_malloc (sz); ++ status = efi_call_4 (ip4_config->get_data, ip4_config, ++ GRUB_EFI_IP4_CONFIG2_DATA_TYPE_INTERFACEINFO, ++ &sz, interface_info); ++ } ++ ++ if (status != GRUB_EFI_SUCCESS) ++ { ++ grub_free (interface_info); ++ return NULL; ++ } ++ ++ return interface_info; ++} ++ ++static grub_efi_ip4_config2_manual_address_t * ++efi_ip4_config_manual_address (grub_efi_ip4_config2_protocol_t *ip4_config) ++{ ++ grub_efi_uintn_t sz; ++ grub_efi_status_t status; ++ grub_efi_ip4_config2_manual_address_t *manual_address; ++ ++ sz = sizeof (*manual_address); ++ manual_address = grub_malloc (sz); ++ if (!manual_address) ++ return NULL; ++ ++ status = efi_call_4 (ip4_config->get_data, ip4_config, ++ GRUB_EFI_IP4_CONFIG2_DATA_TYPE_MANUAL_ADDRESS, ++ &sz, manual_address); ++ ++ if (status != GRUB_EFI_SUCCESS) ++ { ++ grub_free (manual_address); ++ return NULL; ++ } ++ ++ return manual_address; ++} ++ ++char * ++grub_efi_ip4_interface_name (struct grub_efi_net_device *dev) ++{ ++ grub_efi_ip4_config2_interface_info_t *interface_info; ++ char *name; ++ ++ interface_info = efi_ip4_config_interface_info (dev->ip4_config); ++ ++ if (!interface_info) ++ return NULL; ++ ++ name = grub_malloc (GRUB_EFI_IP4_CONFIG2_INTERFACE_INFO_NAME_SIZE ++ * GRUB_MAX_UTF8_PER_UTF16 + 1); ++ *grub_utf16_to_utf8 ((grub_uint8_t *)name, interface_info->name, ++ GRUB_EFI_IP4_CONFIG2_INTERFACE_INFO_NAME_SIZE) = 0; ++ grub_free (interface_info); ++ return name; ++} ++ ++static char * ++grub_efi_ip4_interface_hw_address (struct grub_efi_net_device *dev) ++{ ++ grub_efi_ip4_config2_interface_info_t *interface_info; ++ char *hw_addr; ++ ++ interface_info = efi_ip4_config_interface_info (dev->ip4_config); ++ ++ if (!interface_info) ++ return NULL; ++ ++ hw_addr = grub_efi_hw_address_to_string (interface_info->hw_address_size, interface_info->hw_address); ++ grub_free (interface_info); ++ ++ return hw_addr; ++} ++ ++static char * ++grub_efi_ip4_interface_address (struct grub_efi_net_device *dev) ++{ ++ grub_efi_ip4_config2_manual_address_t *manual_address; ++ char *addr; ++ ++ manual_address = efi_ip4_config_manual_address (dev->ip4_config); ++ ++ if (!manual_address) ++ return NULL; ++ ++ addr = grub_efi_ip4_address_to_string (&manual_address->address); ++ grub_free (manual_address); ++ return addr; ++} ++ ++ ++static int ++address_mask_size (grub_efi_ipv4_address_t *address) ++{ ++ grub_uint8_t i; ++ grub_uint32_t u32_addr = grub_be_to_cpu32 (grub_get_unaligned32 (address)); ++ ++ if (u32_addr == 0) ++ return 0; ++ ++ for (i = 0; i < 32 ; ++i) ++ { ++ if (u32_addr == ((0xffffffff >> i) << i)) ++ return (32 - i); ++ } ++ ++ return -1; ++} ++ ++static char ** ++grub_efi_ip4_interface_route_table (struct grub_efi_net_device *dev) ++{ ++ grub_efi_ip4_config2_interface_info_t *interface_info; ++ char **ret; ++ int i, id; ++ ++ interface_info = efi_ip4_config_interface_info (dev->ip4_config); ++ if (!interface_info) ++ return NULL; ++ ++ ret = grub_malloc (sizeof (*ret) * (interface_info->route_table_size + 1)); ++ ++ if (!ret) ++ { ++ grub_free (interface_info); ++ return NULL; ++ } ++ ++ id = 0; ++ for (i = 0; i < (int)interface_info->route_table_size; i++) ++ { ++ char *subnet, *gateway, *mask; ++ grub_uint32_t u32_subnet, u32_gateway; ++ int mask_size; ++ grub_efi_ip4_route_table_t *route_table = interface_info->route_table + i; ++ grub_efi_net_interface_t *inf; ++ char *interface_name = NULL; ++ ++ for (inf = dev->net_interfaces; inf; inf = inf->next) ++ if (!inf->prefer_ip6) ++ interface_name = inf->name; ++ ++ u32_gateway = grub_get_unaligned32 (&route_table->gateway_address); ++ gateway = grub_efi_ip4_address_to_string (&route_table->gateway_address); ++ u32_subnet = grub_get_unaligned32 (&route_table->subnet_address); ++ subnet = grub_efi_ip4_address_to_string (&route_table->subnet_address); ++ mask_size = address_mask_size (&route_table->subnet_mask); ++ mask = grub_efi_ip4_address_to_string (&route_table->subnet_mask); ++ if (u32_subnet && !u32_gateway && interface_name) ++ ret[id++] = grub_xasprintf ("%s:local %s/%d %s", dev->card_name, subnet, mask_size, interface_name); ++ else if (u32_subnet && u32_gateway) ++ ret[id++] = grub_xasprintf ("%s:gw %s/%d gw %s", dev->card_name, subnet, mask_size, gateway); ++ else if (!u32_subnet && u32_gateway) ++ ret[id++] = grub_xasprintf ("%s:default %s/%d gw %s", dev->card_name, subnet, mask_size, gateway); ++ grub_free (subnet); ++ grub_free (gateway); ++ grub_free (mask); ++ } ++ ++ ret[id] = NULL; ++ grub_free (interface_info); ++ return ret; ++} ++ ++static grub_efi_net_interface_t * ++grub_efi_ip4_interface_match (struct grub_efi_net_device *dev, grub_efi_net_ip_address_t *ip_address) ++{ ++ grub_efi_ip4_config2_interface_info_t *interface_info; ++ grub_efi_net_interface_t *inf; ++ int i; ++ grub_efi_ipv4_address_t *address = &ip_address->ip4; ++ ++ interface_info = efi_ip4_config_interface_info (dev->ip4_config); ++ if (!interface_info) ++ return NULL; ++ ++ for (i = 0; i < (int)interface_info->route_table_size; i++) ++ { ++ grub_efi_ip4_route_table_t *route_table = interface_info->route_table + i; ++ grub_uint32_t u32_address, u32_mask, u32_subnet; ++ ++ u32_address = grub_get_unaligned32 (address); ++ u32_subnet = grub_get_unaligned32 (route_table->subnet_address); ++ u32_mask = grub_get_unaligned32 (route_table->subnet_mask); ++ ++ /* SKIP Default GATEWAY */ ++ if (!u32_subnet && !u32_mask) ++ continue; ++ ++ if ((u32_address & u32_mask) == u32_subnet) ++ { ++ for (inf = dev->net_interfaces; inf; inf = inf->next) ++ if (!inf->prefer_ip6) ++ { ++ grub_free (interface_info); ++ return inf; ++ } ++ } ++ } ++ ++ grub_free (interface_info); ++ return NULL; ++} ++ ++static int ++grub_efi_ip4_interface_set_manual_address (struct grub_efi_net_device *dev, ++ grub_efi_net_ip_manual_address_t *net_ip, ++ int with_subnet) ++{ ++ grub_efi_status_t status; ++ grub_efi_ip4_config2_manual_address_t *address = &net_ip->ip4; ++ ++ if (!with_subnet) ++ { ++ grub_efi_ip4_config2_manual_address_t *manual_address = ++ efi_ip4_config_manual_address (dev->ip4_config); ++ ++ if (manual_address) ++ { ++ grub_memcpy (address->subnet_mask, manual_address->subnet_mask, sizeof(address->subnet_mask)); ++ grub_free (manual_address); ++ } ++ else ++ { ++ /* XXX: */ ++ address->subnet_mask[0] = 0xff; ++ address->subnet_mask[1] = 0xff; ++ address->subnet_mask[2] = 0xff; ++ address->subnet_mask[3] = 0; ++ } ++ } ++ ++ status = efi_call_4 (dev->ip4_config->set_data, dev->ip4_config, ++ GRUB_EFI_IP4_CONFIG2_DATA_TYPE_MANUAL_ADDRESS, ++ sizeof(*address), address); ++ ++ if (status != GRUB_EFI_SUCCESS) ++ return 0; ++ ++ return 1; ++} ++ ++static int ++grub_efi_ip4_interface_set_gateway (struct grub_efi_net_device *dev, ++ grub_efi_net_ip_address_t *address) ++{ ++ grub_efi_status_t status; ++ ++ status = efi_call_4 (dev->ip4_config->set_data, dev->ip4_config, ++ GRUB_EFI_IP4_CONFIG2_DATA_TYPE_GATEWAY, ++ sizeof (address->ip4), &address->ip4); ++ ++ if (status != GRUB_EFI_SUCCESS) ++ return 0; ++ return 1; ++} ++ ++/* FIXME: Multiple DNS */ ++static int ++grub_efi_ip4_interface_set_dns (struct grub_efi_net_device *dev, ++ grub_efi_net_ip_address_t *address) ++{ ++ grub_efi_status_t status; ++ ++ status = efi_call_4 (dev->ip4_config->set_data, dev->ip4_config, ++ GRUB_EFI_IP4_CONFIG2_DATA_TYPE_DNSSERVER, ++ sizeof (address->ip4), &address->ip4); ++ ++ if (status != GRUB_EFI_SUCCESS) ++ return 0; ++ return 1; ++} ++ ++grub_efi_net_ip_config_t *efi_net_ip4_config = &(grub_efi_net_ip_config_t) ++ { ++ .get_hw_address = grub_efi_ip4_interface_hw_address, ++ .get_address = grub_efi_ip4_interface_address, ++ .get_route_table = grub_efi_ip4_interface_route_table, ++ .best_interface = grub_efi_ip4_interface_match, ++ .set_address = grub_efi_ip4_interface_set_manual_address, ++ .set_gateway = grub_efi_ip4_interface_set_gateway, ++ .set_dns = grub_efi_ip4_interface_set_dns ++ }; +diff --git a/grub-core/net/efi/ip6_config.c b/grub-core/net/efi/ip6_config.c +new file mode 100644 +index 00000000000..017c4d05bc7 +--- /dev/null ++++ b/grub-core/net/efi/ip6_config.c +@@ -0,0 +1,422 @@ ++#include ++#include ++#include ++#include ++#include ++ ++char * ++grub_efi_ip6_address_to_string (grub_efi_pxe_ipv6_address_t *address) ++{ ++ char *str = grub_malloc (sizeof ("XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX")); ++ char *p; ++ int i; ++ int squash; ++ ++ if (!str) ++ return NULL; ++ ++ p = str; ++ squash = 0; ++ for (i = 0; i < 8; ++i) ++ { ++ grub_uint16_t addr; ++ ++ if (i == 7) ++ squash = 2; ++ ++ addr = grub_get_unaligned16 (address->addr + i * 2); ++ ++ if (grub_be_to_cpu16 (addr)) ++ { ++ char buf[sizeof ("XXXX")]; ++ if (i > 0) ++ *p++ = ':'; ++ grub_snprintf (buf, sizeof (buf), "%x", grub_be_to_cpu16 (addr)); ++ grub_strcpy (p, buf); ++ p += grub_strlen (buf); ++ ++ if (squash == 1) ++ squash = 2; ++ } ++ else ++ { ++ if (squash == 0) ++ { ++ *p++ = ':'; ++ squash = 1; ++ } ++ else if (squash == 2) ++ { ++ *p++ = ':'; ++ *p++ = '0'; ++ } ++ } ++ } ++ *p = '\0'; ++ return str; ++} ++ ++int ++grub_efi_string_to_ip6_address (const char *val, grub_efi_ipv6_address_t *address, const char **rest) ++{ ++ grub_uint16_t newip[8]; ++ const char *ptr = val; ++ int word, quaddot = -1; ++ int bracketed = 0; ++ ++ if (ptr[0] == '[') { ++ bracketed = 1; ++ ptr++; ++ } ++ ++ if (ptr[0] == ':' && ptr[1] != ':') ++ return 0; ++ if (ptr[0] == ':') ++ ptr++; ++ ++ for (word = 0; word < 8; word++) ++ { ++ unsigned long t; ++ if (*ptr == ':') ++ { ++ quaddot = word; ++ word--; ++ ptr++; ++ continue; ++ } ++ t = grub_strtoul (ptr, (char **) &ptr, 16); ++ if (grub_errno) ++ { ++ grub_errno = GRUB_ERR_NONE; ++ break; ++ } ++ if (t & ~0xffff) ++ return 0; ++ newip[word] = grub_cpu_to_be16 (t); ++ if (*ptr != ':') ++ break; ++ ptr++; ++ } ++ if (quaddot == -1 && word < 7) ++ return 0; ++ if (quaddot != -1) ++ { ++ grub_memmove (&newip[quaddot + 7 - word], &newip[quaddot], ++ (word - quaddot + 1) * sizeof (newip[0])); ++ grub_memset (&newip[quaddot], 0, (7 - word) * sizeof (newip[0])); ++ } ++ grub_memcpy (address, newip, 16); ++ if (bracketed && *ptr == ']') { ++ ptr++; ++ } ++ if (rest) ++ *rest = ptr; ++ return 1; ++} ++ ++static grub_efi_ip6_config_interface_info_t * ++efi_ip6_config_interface_info (grub_efi_ip6_config_protocol_t *ip6_config) ++{ ++ grub_efi_uintn_t sz; ++ grub_efi_status_t status; ++ grub_efi_ip6_config_interface_info_t *interface_info; ++ ++ sz = sizeof (*interface_info) + sizeof (*interface_info->route_table); ++ interface_info = grub_malloc (sz); ++ ++ status = efi_call_4 (ip6_config->get_data, ip6_config, ++ GRUB_EFI_IP6_CONFIG_DATA_TYPE_INTERFACEINFO, ++ &sz, interface_info); ++ ++ if (status == GRUB_EFI_BUFFER_TOO_SMALL) ++ { ++ grub_free (interface_info); ++ interface_info = grub_malloc (sz); ++ status = efi_call_4 (ip6_config->get_data, ip6_config, ++ GRUB_EFI_IP6_CONFIG_DATA_TYPE_INTERFACEINFO, ++ &sz, interface_info); ++ } ++ ++ if (status != GRUB_EFI_SUCCESS) ++ { ++ grub_free (interface_info); ++ return NULL; ++ } ++ ++ return interface_info; ++} ++ ++static grub_efi_ip6_config_manual_address_t * ++efi_ip6_config_manual_address (grub_efi_ip6_config_protocol_t *ip6_config) ++{ ++ grub_efi_uintn_t sz; ++ grub_efi_status_t status; ++ grub_efi_ip6_config_manual_address_t *manual_address; ++ ++ sz = sizeof (*manual_address); ++ manual_address = grub_malloc (sz); ++ if (!manual_address) ++ return NULL; ++ ++ status = efi_call_4 (ip6_config->get_data, ip6_config, ++ GRUB_EFI_IP6_CONFIG_DATA_TYPE_MANUAL_ADDRESS, ++ &sz, manual_address); ++ ++ if (status != GRUB_EFI_SUCCESS) ++ { ++ grub_free (manual_address); ++ return NULL; ++ } ++ ++ return manual_address; ++} ++ ++char * ++grub_efi_ip6_interface_name (struct grub_efi_net_device *dev) ++{ ++ grub_efi_ip6_config_interface_info_t *interface_info; ++ char *name; ++ ++ interface_info = efi_ip6_config_interface_info (dev->ip6_config); ++ ++ if (!interface_info) ++ return NULL; ++ ++ name = grub_malloc (GRUB_EFI_IP4_CONFIG2_INTERFACE_INFO_NAME_SIZE ++ * GRUB_MAX_UTF8_PER_UTF16 + 1); ++ *grub_utf16_to_utf8 ((grub_uint8_t *)name, interface_info->name, ++ GRUB_EFI_IP4_CONFIG2_INTERFACE_INFO_NAME_SIZE) = 0; ++ grub_free (interface_info); ++ return name; ++} ++ ++static char * ++grub_efi_ip6_interface_hw_address (struct grub_efi_net_device *dev) ++{ ++ grub_efi_ip6_config_interface_info_t *interface_info; ++ char *hw_addr; ++ ++ interface_info = efi_ip6_config_interface_info (dev->ip6_config); ++ ++ if (!interface_info) ++ return NULL; ++ ++ hw_addr = grub_efi_hw_address_to_string (interface_info->hw_address_size, interface_info->hw_address); ++ grub_free (interface_info); ++ ++ return hw_addr; ++} ++ ++static char * ++grub_efi_ip6_interface_address (struct grub_efi_net_device *dev) ++{ ++ grub_efi_ip6_config_manual_address_t *manual_address; ++ char *addr; ++ ++ manual_address = efi_ip6_config_manual_address (dev->ip6_config); ++ ++ if (!manual_address) ++ return NULL; ++ ++ addr = grub_efi_ip6_address_to_string ((grub_efi_pxe_ipv6_address_t *)&manual_address->address); ++ grub_free (manual_address); ++ return addr; ++} ++ ++static char ** ++grub_efi_ip6_interface_route_table (struct grub_efi_net_device *dev) ++{ ++ grub_efi_ip6_config_interface_info_t *interface_info; ++ char **ret; ++ int i, id; ++ ++ interface_info = efi_ip6_config_interface_info (dev->ip6_config); ++ if (!interface_info) ++ return NULL; ++ ++ ret = grub_malloc (sizeof (*ret) * (interface_info->route_count + 1)); ++ ++ if (!ret) ++ { ++ grub_free (interface_info); ++ return NULL; ++ } ++ ++ id = 0; ++ for (i = 0; i < (int)interface_info->route_count ; i++) ++ { ++ char *gateway, *destination; ++ grub_uint64_t u64_gateway[2]; ++ grub_uint64_t u64_destination[2]; ++ grub_efi_ip6_route_table_t *route_table = interface_info->route_table + i; ++ grub_efi_net_interface_t *inf; ++ char *interface_name = NULL; ++ ++ gateway = grub_efi_ip6_address_to_string (&route_table->gateway); ++ destination = grub_efi_ip6_address_to_string (&route_table->destination); ++ ++ u64_gateway[0] = grub_get_unaligned64 (route_table->gateway.addr); ++ u64_gateway[1] = grub_get_unaligned64 (route_table->gateway.addr + 8); ++ u64_destination[0] = grub_get_unaligned64 (route_table->destination.addr); ++ u64_destination[1] = grub_get_unaligned64 (route_table->destination.addr + 8); ++ ++ for (inf = dev->net_interfaces; inf; inf = inf->next) ++ if (inf->prefer_ip6) ++ interface_name = inf->name; ++ ++ if ((!u64_gateway[0] && !u64_gateway[1]) ++ && (u64_destination[0] || u64_destination[1])) ++ { ++ if (interface_name) ++ { ++ if ((grub_be_to_cpu64 (u64_destination[0]) == 0xfe80000000000000ULL) ++ && (!u64_destination[1]) ++ && (route_table->prefix_length == 64)) ++ ret[id++] = grub_xasprintf ("%s:link %s/%d %s", dev->card_name, destination, route_table->prefix_length, interface_name); ++ else ++ ret[id++] = grub_xasprintf ("%s:local %s/%d %s", dev->card_name, destination, route_table->prefix_length, interface_name); ++ } ++ } ++ else if ((u64_gateway[0] || u64_gateway[1]) ++ && (u64_destination[0] || u64_destination[1])) ++ ret[id++] = grub_xasprintf ("%s:gw %s/%d gw %s", dev->card_name, destination, route_table->prefix_length, gateway); ++ else if ((u64_gateway[0] || u64_gateway[1]) ++ && (!u64_destination[0] && !u64_destination[1])) ++ ret[id++] = grub_xasprintf ("%s:default %s/%d gw %s", dev->card_name, destination, route_table->prefix_length, gateway); ++ ++ grub_free (gateway); ++ grub_free (destination); ++ } ++ ++ ret[id] = NULL; ++ grub_free (interface_info); ++ return ret; ++} ++ ++static grub_efi_net_interface_t * ++grub_efi_ip6_interface_match (struct grub_efi_net_device *dev, grub_efi_net_ip_address_t *ip_address) ++{ ++ grub_efi_ip6_config_interface_info_t *interface_info; ++ grub_efi_net_interface_t *inf; ++ int i; ++ grub_efi_ipv6_address_t *address = &ip_address->ip6; ++ ++ interface_info = efi_ip6_config_interface_info (dev->ip6_config); ++ if (!interface_info) ++ return NULL; ++ ++ for (i = 0; i < (int)interface_info->route_count ; i++) ++ { ++ grub_uint64_t u64_addr[2]; ++ grub_uint64_t u64_subnet[2]; ++ grub_uint64_t u64_mask[2]; ++ ++ grub_efi_ip6_route_table_t *route_table = interface_info->route_table + i; ++ ++ /* SKIP Default GATEWAY */ ++ if (route_table->prefix_length == 0) ++ continue; ++ ++ u64_addr[0] = grub_get_unaligned64 (address); ++ u64_addr[1] = grub_get_unaligned64 (address + 4); ++ u64_subnet[0] = grub_get_unaligned64 (route_table->destination.addr); ++ u64_subnet[1] = grub_get_unaligned64 (route_table->destination.addr + 8); ++ u64_mask[0] = (route_table->prefix_length <= 64) ? ++ 0xffffffffffffffffULL << (64 - route_table->prefix_length) : ++ 0xffffffffffffffffULL; ++ u64_mask[1] = (route_table->prefix_length <= 64) ? ++ 0 : ++ 0xffffffffffffffffULL << (128 - route_table->prefix_length); ++ ++ if (((u64_addr[0] & u64_mask[0]) == u64_subnet[0]) ++ && ((u64_addr[1] & u64_mask[1]) == u64_subnet[1])) ++ { ++ for (inf = dev->net_interfaces; inf; inf = inf->next) ++ if (inf->prefer_ip6) ++ { ++ grub_free (interface_info); ++ return inf; ++ } ++ } ++ } ++ ++ grub_free (interface_info); ++ return NULL; ++} ++ ++static int ++grub_efi_ip6_interface_set_manual_address (struct grub_efi_net_device *dev, ++ grub_efi_net_ip_manual_address_t *net_ip, ++ int with_subnet) ++{ ++ grub_efi_status_t status; ++ grub_efi_ip6_config_manual_address_t *address = &net_ip->ip6; ++ ++ if (!with_subnet) ++ { ++ grub_efi_ip6_config_manual_address_t *manual_address = ++ efi_ip6_config_manual_address (dev->ip6_config); ++ ++ if (manual_address) ++ { ++ address->prefix_length = manual_address->prefix_length; ++ grub_free (manual_address); ++ } ++ else ++ { ++ /* XXX: */ ++ address->prefix_length = 64; ++ } ++ } ++ ++ status = efi_call_4 (dev->ip6_config->set_data, dev->ip6_config, ++ GRUB_EFI_IP6_CONFIG_DATA_TYPE_MANUAL_ADDRESS, ++ sizeof(*address), address); ++ ++ if (status != GRUB_EFI_SUCCESS) ++ return 0; ++ ++ return 1; ++} ++ ++static int ++grub_efi_ip6_interface_set_gateway (struct grub_efi_net_device *dev, ++ grub_efi_net_ip_address_t *address) ++{ ++ grub_efi_status_t status; ++ ++ status = efi_call_4 (dev->ip6_config->set_data, dev->ip6_config, ++ GRUB_EFI_IP6_CONFIG_DATA_TYPE_GATEWAY, ++ sizeof (address->ip6), &address->ip6); ++ ++ if (status != GRUB_EFI_SUCCESS) ++ return 0; ++ return 1; ++} ++ ++static int ++grub_efi_ip6_interface_set_dns (struct grub_efi_net_device *dev, ++ grub_efi_net_ip_address_t *address) ++{ ++ ++ grub_efi_status_t status; ++ ++ status = efi_call_4 (dev->ip6_config->set_data, dev->ip6_config, ++ GRUB_EFI_IP6_CONFIG_DATA_TYPE_DNSSERVER, ++ sizeof (address->ip6), &address->ip6); ++ ++ if (status != GRUB_EFI_SUCCESS) ++ return 0; ++ return 1; ++} ++ ++grub_efi_net_ip_config_t *efi_net_ip6_config = &(grub_efi_net_ip_config_t) ++ { ++ .get_hw_address = grub_efi_ip6_interface_hw_address, ++ .get_address = grub_efi_ip6_interface_address, ++ .get_route_table = grub_efi_ip6_interface_route_table, ++ .best_interface = grub_efi_ip6_interface_match, ++ .set_address = grub_efi_ip6_interface_set_manual_address, ++ .set_gateway = grub_efi_ip6_interface_set_gateway, ++ .set_dns = grub_efi_ip6_interface_set_dns ++ }; +diff --git a/grub-core/net/efi/net.c b/grub-core/net/efi/net.c +new file mode 100644 +index 00000000000..9e0078ac1c6 +--- /dev/null ++++ b/grub-core/net/efi/net.c +@@ -0,0 +1,1428 @@ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++GRUB_MOD_LICENSE ("GPLv3+"); ++ ++#define GRUB_EFI_IP6_PREFIX_LENGTH 64 ++ ++static grub_efi_guid_t ip4_config_guid = GRUB_EFI_IP4_CONFIG2_PROTOCOL_GUID; ++static grub_efi_guid_t ip6_config_guid = GRUB_EFI_IP6_CONFIG_PROTOCOL_GUID; ++static grub_efi_guid_t http_service_binding_guid = GRUB_EFI_HTTP_SERVICE_BINDING_PROTOCOL_GUID; ++static grub_efi_guid_t http_guid = GRUB_EFI_HTTP_PROTOCOL_GUID; ++static grub_efi_guid_t pxe_io_guid = GRUB_EFI_PXE_GUID; ++static grub_efi_guid_t dhcp4_service_binding_guid = GRUB_EFI_DHCP4_SERVICE_BINDING_PROTOCOL_GUID; ++static grub_efi_guid_t dhcp4_guid = GRUB_EFI_DHCP4_PROTOCOL_GUID; ++static grub_efi_guid_t dhcp6_service_binding_guid = GRUB_EFI_DHCP6_SERVICE_BINDING_PROTOCOL_GUID; ++static grub_efi_guid_t dhcp6_guid = GRUB_EFI_DHCP6_PROTOCOL_GUID; ++ ++struct grub_efi_net_device *net_devices; ++ ++static char *default_server; ++static grub_efi_net_interface_t *net_interface; ++static grub_efi_net_interface_t *net_default_interface; ++ ++#define efi_net_interface_configure(inf) inf->io->configure (inf->dev, inf->prefer_ip6) ++#define efi_net_interface_open(inf, file, name) inf->io->open (inf->dev, inf->prefer_ip6, file, name, inf->io_type) ++#define efi_net_interface_read(inf, file, buf, sz) inf->io->read (inf->dev, inf->prefer_ip6, file, buf, sz) ++#define efi_net_interface_close(inf, file) inf->io->close (inf->dev, inf->prefer_ip6, file) ++#define efi_net_interface(m,...) efi_net_interface_ ## m (net_interface, ## __VA_ARGS__) ++ ++static grub_efi_handle_t ++grub_efi_locate_device_path (grub_efi_guid_t *protocol, grub_efi_device_path_t *device_path, ++ grub_efi_device_path_t **r_device_path) ++{ ++ grub_efi_handle_t handle; ++ grub_efi_status_t status; ++ ++ status = efi_call_3 (grub_efi_system_table->boot_services->locate_device_path, ++ protocol, &device_path, &handle); ++ ++ if (status != GRUB_EFI_SUCCESS) ++ return 0; ++ ++ if (r_device_path) ++ *r_device_path = device_path; ++ ++ return handle; ++} ++ ++static int ++url_parse_fields (const char *url, char **proto, char **host, char **path) ++{ ++ const char *p, *ps; ++ grub_size_t l; ++ ++ *proto = *host = *path = NULL; ++ ps = p = url; ++ ++ while ((p = grub_strchr (p, ':'))) ++ { ++ if (grub_strlen (p) < sizeof ("://") - 1) ++ break; ++ if (grub_memcmp (p, "://", sizeof ("://") - 1) == 0) ++ { ++ l = p - ps; ++ *proto = grub_malloc (l + 1); ++ if (!*proto) ++ { ++ grub_print_error (); ++ return 0; ++ } ++ ++ grub_memcpy (*proto, ps, l); ++ (*proto)[l] = '\0'; ++ p += sizeof ("://") - 1; ++ break; ++ } ++ ++p; ++ } ++ ++ if (!*proto) ++ { ++ grub_dprintf ("bootp", "url: %s is not valid, protocol not found\n", url); ++ return 0; ++ } ++ ++ ps = p; ++ p = grub_strchr (p, '/'); ++ ++ if (!p) ++ { ++ grub_dprintf ("bootp", "url: %s is not valid, host/path not found\n", url); ++ grub_free (*proto); ++ *proto = NULL; ++ return 0; ++ } ++ ++ l = p - ps; ++ ++ if (l > 2 && ps[0] == '[' && ps[l - 1] == ']') ++ { ++ *host = grub_malloc (l - 1); ++ if (!*host) ++ { ++ grub_print_error (); ++ grub_free (*proto); ++ *proto = NULL; ++ return 0; ++ } ++ grub_memcpy (*host, ps + 1, l - 2); ++ (*host)[l - 2] = 0; ++ } ++ else ++ { ++ *host = grub_malloc (l + 1); ++ if (!*host) ++ { ++ grub_print_error (); ++ grub_free (*proto); ++ *proto = NULL; ++ return 0; ++ } ++ grub_memcpy (*host, ps, l); ++ (*host)[l] = 0; ++ } ++ ++ *path = grub_strdup (p); ++ if (!*path) ++ { ++ grub_print_error (); ++ grub_free (*host); ++ grub_free (*proto); ++ *host = NULL; ++ *proto = NULL; ++ return 0; ++ } ++ return 1; ++} ++ ++static void ++url_get_boot_location (const char *url, char **device, char **path, int is_default) ++{ ++ char *protocol, *server, *file; ++ char *slash; ++ ++ if (!url_parse_fields (url, &protocol, &server, &file)) ++ return; ++ ++ if ((slash = grub_strrchr (file, '/'))) ++ *slash = 0; ++ else ++ *file = 0; ++ ++ *device = grub_xasprintf ("%s,%s", protocol, server); ++ *path = grub_strdup(file); ++ ++ if (is_default) ++ default_server = server; ++ else ++ grub_free (server); ++ ++ grub_free (protocol); ++ grub_free (file); ++} ++ ++static void ++pxe_get_boot_location (const struct grub_net_bootp_packet *bp, ++ char **device, ++ char **path, ++ int is_default) ++{ ++ char *server = grub_xasprintf ("%d.%d.%d.%d", ++ ((grub_uint8_t *) &bp->server_ip)[0], ++ ((grub_uint8_t *) &bp->server_ip)[1], ++ ((grub_uint8_t *) &bp->server_ip)[2], ++ ((grub_uint8_t *) &bp->server_ip)[3]); ++ ++ *device = grub_xasprintf ("tftp,%s", server); ++ ++ *path = grub_strndup (bp->boot_file, sizeof (bp->boot_file)); ++ ++ if (*path) ++ { ++ char *slash; ++ slash = grub_strrchr (*path, '/'); ++ if (slash) ++ *slash = 0; ++ else ++ **path = 0; ++ } ++ ++ if (is_default) ++ default_server = server; ++ else ++ grub_free (server); ++} ++ ++static void ++pxe_get_boot_location_v6 (const struct grub_net_dhcp6_packet *dp, ++ grub_size_t dhcp_size, ++ char **device, ++ char **path) ++{ ++ ++ struct grub_net_dhcp6_option *dhcp_opt; ++ grub_size_t dhcp_remain_size; ++ *device = *path = 0; ++ ++ if (dhcp_size < sizeof (*dp)) ++ { ++ grub_error (GRUB_ERR_OUT_OF_RANGE, N_("DHCPv6 packet size too small")); ++ return; ++ } ++ ++ dhcp_remain_size = dhcp_size - sizeof (*dp); ++ dhcp_opt = (struct grub_net_dhcp6_option *)dp->dhcp_options; ++ ++ while (dhcp_remain_size) ++ { ++ grub_uint16_t code = grub_be_to_cpu16 (dhcp_opt->code); ++ grub_uint16_t len = grub_be_to_cpu16 (dhcp_opt->len); ++ grub_uint16_t option_size = sizeof (*dhcp_opt) + len; ++ ++ if (dhcp_remain_size < option_size || code == 0) ++ break; ++ ++ if (code == GRUB_NET_DHCP6_OPTION_BOOTFILE_URL) ++ { ++ char *url = grub_malloc (len + 1); ++ ++ grub_memcpy (url, dhcp_opt->data, len); ++ url[len] = 0; ++ ++ url_get_boot_location ((const char *)url, device, path, 1); ++ grub_free (url); ++ break; ++ } ++ ++ dhcp_remain_size -= option_size; ++ dhcp_opt = (struct grub_net_dhcp6_option *)((grub_uint8_t *)dhcp_opt + option_size); ++ } ++} ++ ++static grub_efi_net_interface_t * ++grub_efi_net_config_from_device_path (grub_efi_device_path_t *dp, ++ struct grub_efi_net_device *netdev, ++ char **device, ++ char **path) ++{ ++ grub_efi_net_interface_t *inf = NULL; ++ ++ while (1) ++ { ++ grub_efi_uint8_t type = GRUB_EFI_DEVICE_PATH_TYPE (dp); ++ grub_efi_uint8_t subtype = GRUB_EFI_DEVICE_PATH_SUBTYPE (dp); ++ grub_efi_uint16_t len = GRUB_EFI_DEVICE_PATH_LENGTH (dp); ++ ++ if (type == GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE) ++ { ++ if (subtype == GRUB_EFI_URI_DEVICE_PATH_SUBTYPE) ++ { ++ grub_efi_uri_device_path_t *uri_dp; ++ uri_dp = (grub_efi_uri_device_path_t *) dp; ++ /* Beware that uri_dp->uri may not be null terminated */ ++ url_get_boot_location ((const char *)uri_dp->uri, device, path, 1); ++ } ++ else if (subtype == GRUB_EFI_IPV4_DEVICE_PATH_SUBTYPE) ++ { ++ grub_efi_net_ip_manual_address_t net_ip; ++ grub_efi_ipv4_device_path_t *ipv4 = (grub_efi_ipv4_device_path_t *) dp; ++ ++ if (inf) ++ continue; ++ grub_memcpy (net_ip.ip4.address, ipv4->local_ip_address, sizeof (net_ip.ip4.address)); ++ grub_memcpy (net_ip.ip4.subnet_mask, ipv4->subnet_mask, sizeof (net_ip.ip4.subnet_mask)); ++ net_ip.is_ip6 = 0; ++ inf = grub_efi_net_create_interface (netdev, ++ netdev->card_name, ++ &net_ip, ++ 1); ++ } ++ else if (subtype == GRUB_EFI_IPV6_DEVICE_PATH_SUBTYPE) ++ { ++ grub_efi_net_ip_manual_address_t net_ip; ++ grub_efi_ipv6_device_path_t *ipv6 = (grub_efi_ipv6_device_path_t *) dp; ++ ++ if (inf) ++ continue; ++ grub_memcpy (net_ip.ip6.address, ipv6->local_ip_address, sizeof (net_ip.ip6.address)); ++ net_ip.ip6.prefix_length = GRUB_EFI_IP6_PREFIX_LENGTH; ++ net_ip.ip6.is_anycast = 0; ++ net_ip.is_ip6 = 1; ++ inf = grub_efi_net_create_interface (netdev, ++ netdev->card_name, ++ &net_ip, ++ 1); ++ } ++ } ++ ++ if (GRUB_EFI_END_ENTIRE_DEVICE_PATH (dp)) ++ break; ++ dp = (grub_efi_device_path_t *) ((char *) dp + len); ++ } ++ ++ return inf; ++} ++ ++static grub_efi_net_interface_t * ++grub_efi_net_config_from_handle (grub_efi_handle_t *hnd, ++ struct grub_efi_net_device *netdev, ++ char **device, ++ char **path) ++{ ++ grub_efi_pxe_t *pxe = NULL; ++ ++ if (hnd == netdev->ip4_pxe_handle) ++ pxe = netdev->ip4_pxe; ++ else if (hnd == netdev->ip6_pxe_handle) ++ pxe = netdev->ip6_pxe; ++ ++ if (!pxe) ++ return (grub_efi_net_config_from_device_path ( ++ grub_efi_get_device_path (hnd), ++ netdev, ++ device, ++ path)); ++ ++ if (pxe->mode->using_ipv6) ++ { ++ grub_efi_net_ip_manual_address_t net_ip; ++ ++ pxe_get_boot_location_v6 ( ++ (const struct grub_net_dhcp6_packet *) &pxe->mode->dhcp_ack, ++ sizeof (pxe->mode->dhcp_ack), ++ device, ++ path); ++ ++ grub_memcpy (net_ip.ip6.address, pxe->mode->station_ip.v6, sizeof(net_ip.ip6.address)); ++ net_ip.ip6.prefix_length = GRUB_EFI_IP6_PREFIX_LENGTH; ++ net_ip.ip6.is_anycast = 0; ++ net_ip.is_ip6 = 1; ++ return (grub_efi_net_create_interface (netdev, ++ netdev->card_name, ++ &net_ip, ++ 1)); ++ } ++ else ++ { ++ grub_efi_net_ip_manual_address_t net_ip; ++ ++ pxe_get_boot_location ( ++ (const struct grub_net_bootp_packet *) &pxe->mode->dhcp_ack, ++ device, ++ path, ++ 1); ++ ++ grub_memcpy (net_ip.ip4.address, pxe->mode->station_ip.v4, sizeof (net_ip.ip4.address)); ++ grub_memcpy (net_ip.ip4.subnet_mask, pxe->mode->subnet_mask.v4, sizeof (net_ip.ip4.subnet_mask)); ++ net_ip.is_ip6 = 0; ++ return (grub_efi_net_create_interface (netdev, ++ netdev->card_name, ++ &net_ip, ++ 1)); ++ } ++} ++ ++static const char * ++grub_efi_net_var_get_address (struct grub_env_var *var, ++ const char *val __attribute__ ((unused))) ++{ ++ struct grub_efi_net_device *dev; ++ ++ for (dev = net_devices; dev; dev = dev->next) ++ { ++ grub_efi_net_interface_t *inf; ++ ++ for (inf = dev->net_interfaces; inf; inf = inf->next) ++ { ++ char *var_name; ++ ++ var_name = grub_xasprintf ("net_%s_ip", inf->name); ++ if (grub_strcmp (var_name, var->name) == 0) ++ return efi_net_interface_get_address (inf); ++ grub_free (var_name); ++ var_name = grub_xasprintf ("net_%s_mac", inf->name); ++ if (grub_strcmp (var_name, var->name) == 0) ++ return efi_net_interface_get_hw_address (inf); ++ grub_free (var_name); ++ } ++ } ++ ++ return NULL; ++} ++ ++static char * ++grub_efi_net_var_set_interface (struct grub_env_var *var __attribute__ ((unused)), ++ const char *val) ++{ ++ struct grub_efi_net_device *dev; ++ grub_efi_net_interface_t *inf; ++ ++ for (dev = net_devices; dev; dev = dev->next) ++ for (inf = dev->net_interfaces; inf; inf = inf->next) ++ if (grub_strcmp (inf->name, val) == 0) ++ { ++ net_default_interface = inf; ++ return grub_strdup (val); ++ } ++ ++ return NULL; ++} ++ ++static char * ++grub_efi_net_var_set_server (struct grub_env_var *var __attribute__ ((unused)), ++ const char *val) ++{ ++ grub_free (default_server); ++ default_server = grub_strdup (val); ++ return grub_strdup (val); ++} ++ ++static const char * ++grub_efi_net_var_get_server (struct grub_env_var *var __attribute__ ((unused)), ++ const char *val __attribute__ ((unused))) ++{ ++ return default_server ? : ""; ++} ++ ++static const char * ++grub_efi_net_var_get_ip (struct grub_env_var *var __attribute__ ((unused)), ++ const char *val __attribute__ ((unused))) ++{ ++ const char *intf = grub_env_get ("net_default_interface"); ++ const char *ret = NULL; ++ if (intf) ++ { ++ char *buf = grub_xasprintf ("net_%s_ip", intf); ++ if (buf) ++ ret = grub_env_get (buf); ++ grub_free (buf); ++ } ++ return ret; ++} ++ ++static const char * ++grub_efi_net_var_get_mac (struct grub_env_var *var __attribute__ ((unused)), ++ const char *val __attribute__ ((unused))) ++{ ++ const char *intf = grub_env_get ("net_default_interface"); ++ const char *ret = NULL; ++ if (intf) ++ { ++ char *buf = grub_xasprintf ("net_%s_mac", intf); ++ if (buf) ++ ret = grub_env_get (buf); ++ grub_free (buf); ++ } ++ return ret; ++} ++ ++static void ++grub_efi_net_export_interface_vars (void) ++{ ++ struct grub_efi_net_device *dev; ++ ++ for (dev = net_devices; dev; dev = dev->next) ++ { ++ grub_efi_net_interface_t *inf; ++ ++ for (inf = dev->net_interfaces; inf; inf = inf->next) ++ { ++ char *var; ++ ++ var = grub_xasprintf ("net_%s_ip", inf->name); ++ grub_register_variable_hook (var, grub_efi_net_var_get_address, 0); ++ grub_env_export (var); ++ grub_free (var); ++ var = grub_xasprintf ("net_%s_mac", inf->name); ++ grub_register_variable_hook (var, grub_efi_net_var_get_address, 0); ++ grub_env_export (var); ++ grub_free (var); ++ } ++ } ++} ++ ++static void ++grub_efi_net_unset_interface_vars (void) ++{ ++ struct grub_efi_net_device *dev; ++ ++ for (dev = net_devices; dev; dev = dev->next) ++ { ++ grub_efi_net_interface_t *inf; ++ ++ for (inf = dev->net_interfaces; inf; inf = inf->next) ++ { ++ char *var; ++ ++ var = grub_xasprintf ("net_%s_ip", inf->name); ++ grub_register_variable_hook (var, 0, 0); ++ grub_env_unset (var); ++ grub_free (var); ++ var = grub_xasprintf ("net_%s_mac", inf->name); ++ grub_register_variable_hook (var, 0, 0); ++ grub_env_unset (var); ++ grub_free (var); ++ } ++ } ++} ++ ++grub_efi_net_interface_t * ++grub_efi_net_create_interface (struct grub_efi_net_device *dev, ++ const char *interface_name, ++ grub_efi_net_ip_manual_address_t *net_ip, ++ int has_subnet) ++{ ++ grub_efi_net_interface_t *inf; ++ ++ for (inf = dev->net_interfaces; inf; inf = inf->next) ++ { ++ if (inf->prefer_ip6 == net_ip->is_ip6) ++ break; ++ } ++ ++ if (!inf) ++ { ++ inf = grub_malloc (sizeof(*inf)); ++ inf->name = grub_strdup (interface_name); ++ inf->prefer_ip6 = net_ip->is_ip6; ++ inf->dev = dev; ++ inf->next = dev->net_interfaces; ++ inf->ip_config = (net_ip->is_ip6) ? efi_net_ip6_config : efi_net_ip4_config ; ++ dev->net_interfaces = inf; ++ } ++ else ++ { ++ grub_free (inf->name); ++ inf->name = grub_strdup (interface_name); ++ } ++ ++ if (!efi_net_interface_set_address (inf, net_ip, has_subnet)) ++ { ++ grub_error (GRUB_ERR_BUG, N_("Set Address Failed")); ++ return NULL; ++ } ++ ++ return inf; ++} ++ ++static void ++grub_efi_net_config_real (grub_efi_handle_t hnd, char **device, ++ char **path) ++{ ++ grub_efi_handle_t config_hnd; ++ ++ struct grub_efi_net_device *netdev; ++ grub_efi_net_interface_t *inf; ++ ++ config_hnd = grub_efi_locate_device_path (&ip4_config_guid, grub_efi_get_device_path (hnd), NULL); ++ ++ if (!config_hnd) ++ return; ++ ++ for (netdev = net_devices; netdev; netdev = netdev->next) ++ if (netdev->handle == config_hnd) ++ break; ++ ++ if (!netdev) ++ return; ++ ++ if (!(inf = grub_efi_net_config_from_handle (hnd, netdev, device, path))) ++ return; ++ ++ grub_env_set ("net_default_interface", inf->name); ++ grub_efi_net_export_interface_vars (); ++} ++ ++static grub_err_t ++grub_efi_netfs_dir (grub_device_t device, const char *path __attribute__ ((unused)), ++ grub_fs_dir_hook_t hook __attribute__ ((unused)), ++ void *hook_data __attribute__ ((unused))) ++{ ++ if (!device->net) ++ return grub_error (GRUB_ERR_BUG, "invalid net device"); ++ return GRUB_ERR_NONE; ++} ++ ++static grub_err_t ++grub_efi_netfs_open (struct grub_file *file_out __attribute__ ((unused)), ++ const char *name __attribute__ ((unused))) ++{ ++ struct grub_file *file, *bufio; ++ ++ file = grub_malloc (sizeof (*file)); ++ if (!file) ++ return grub_errno; ++ ++ grub_memcpy (file, file_out, sizeof (struct grub_file)); ++ file->device->net->name = grub_strdup (name); ++ ++ if (!file->device->net->name) ++ { ++ grub_free (file); ++ return grub_errno; ++ } ++ ++ efi_net_interface(open, file, name); ++ grub_print_error (); ++ ++ bufio = grub_bufio_open (file, 32768); ++ if (!bufio) ++ { ++ grub_free (file->device->net->name); ++ grub_free (file); ++ return grub_errno; ++ } ++ grub_memcpy (file_out, bufio, sizeof (struct grub_file)); ++ grub_free (bufio); ++ ++ return GRUB_ERR_NONE; ++} ++ ++static grub_ssize_t ++grub_efihttp_chunk_read (grub_file_t file, char *buf, ++ grub_size_t len, grub_size_t chunk_size) ++{ ++ char *chunk = grub_malloc (chunk_size); ++ grub_size_t sum = 0; ++ ++ while (len) ++ { ++ grub_ssize_t rd; ++ grub_size_t sz = (len > chunk_size) ? chunk_size : len; ++ ++ rd = efi_net_interface (read, file, chunk, sz); ++ ++ if (rd <= 0) ++ return rd; ++ ++ if (buf) ++ { ++ grub_memcpy (buf, chunk, rd); ++ buf += rd; ++ } ++ sum += rd; ++ len -= rd; ++ } ++ ++ grub_free (chunk); ++ return sum; ++} ++ ++static grub_ssize_t ++grub_efi_netfs_read (grub_file_t file __attribute__ ((unused)), ++ char *buf __attribute__ ((unused)), grub_size_t len __attribute__ ((unused))) ++{ ++ if (file->offset > file->device->net->offset) ++ { ++ grub_efihttp_chunk_read (file, NULL, file->offset - file->device->net->offset, 10240); ++ } ++ else if (file->offset < file->device->net->offset) ++ { ++ efi_net_interface (close, file); ++ efi_net_interface (open, file, file->device->net->name); ++ if (file->offset) ++ grub_efihttp_chunk_read (file, NULL, file->offset, 10240); ++ } ++ ++ return efi_net_interface (read, file, buf, len); ++} ++ ++static grub_err_t ++grub_efi_netfs_close (grub_file_t file) ++{ ++ efi_net_interface (close, file); ++ return GRUB_ERR_NONE; ++} ++ ++static grub_efi_handle_t ++grub_efi_service_binding (grub_efi_handle_t dev, grub_efi_guid_t *service_binding_guid) ++{ ++ grub_efi_service_binding_t *service; ++ grub_efi_status_t status; ++ grub_efi_handle_t child_dev = NULL; ++ ++ service = grub_efi_open_protocol (dev, service_binding_guid, GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL); ++ if (!service) ++ { ++ grub_error (GRUB_ERR_IO, N_("couldn't open efi service binding protocol")); ++ return NULL; ++ } ++ ++ status = efi_call_2 (service->create_child, service, &child_dev); ++ if (status != GRUB_EFI_SUCCESS) ++ { ++ grub_error (GRUB_ERR_IO, N_("Failed to create child device of http service %x"), status); ++ return NULL; ++ } ++ ++ return child_dev; ++} ++ ++static grub_err_t ++grub_efi_net_parse_address (const char *address, ++ grub_efi_ip4_config2_manual_address_t *ip4, ++ grub_efi_ip6_config_manual_address_t *ip6, ++ int *is_ip6, ++ int *has_cidr) ++{ ++ const char *rest; ++ ++ if (grub_efi_string_to_ip4_address (address, &ip4->address, &rest)) ++ { ++ *is_ip6 = 0; ++ if (*rest == '/') ++ { ++ grub_uint32_t subnet_mask_size; ++ ++ subnet_mask_size = grub_strtoul (rest + 1, (char **) &rest, 0); ++ ++ if (!grub_errno && subnet_mask_size <= 32 && *rest == 0) ++ { ++ grub_uint32_t subnet_mask; ++ ++ subnet_mask = grub_cpu_to_be32 ((0xffffffffU << (32 - subnet_mask_size))); ++ grub_memcpy (ip4->subnet_mask, &subnet_mask, sizeof (ip4->subnet_mask)); ++ if (has_cidr) ++ *has_cidr = 1; ++ return GRUB_ERR_NONE; ++ } ++ } ++ else if (*rest == 0) ++ { ++ grub_uint32_t subnet_mask = 0xffffffffU; ++ grub_memcpy (ip4->subnet_mask, &subnet_mask, sizeof (ip4->subnet_mask)); ++ if (has_cidr) ++ *has_cidr = 0; ++ return GRUB_ERR_NONE; ++ } ++ } ++ else if (grub_efi_string_to_ip6_address (address, &ip6->address, &rest)) ++ { ++ *is_ip6 = 1; ++ if (*rest == '/') ++ { ++ grub_efi_uint8_t prefix_length; ++ ++ prefix_length = grub_strtoul (rest + 1, (char **) &rest, 0); ++ if (!grub_errno && prefix_length <= 128 && *rest == 0) ++ { ++ ip6->prefix_length = prefix_length; ++ ip6->is_anycast = 0; ++ if (has_cidr) ++ *has_cidr = 1; ++ return GRUB_ERR_NONE; ++ } ++ } ++ else if (*rest == 0) ++ { ++ ip6->prefix_length = 128; ++ ip6->is_anycast = 0; ++ if (has_cidr) ++ *has_cidr = 0; ++ return GRUB_ERR_NONE; ++ } ++ } ++ ++ return grub_error (GRUB_ERR_NET_BAD_ADDRESS, ++ N_("unrecognised network address `%s'"), ++ address); ++} ++ ++static grub_efi_net_interface_t * ++match_route (const char *server) ++{ ++ grub_err_t err; ++ grub_efi_ip4_config2_manual_address_t ip4; ++ grub_efi_ip6_config_manual_address_t ip6; ++ grub_efi_net_interface_t *inf; ++ int is_ip6 = 0; ++ ++ err = grub_efi_net_parse_address (server, &ip4, &ip6, &is_ip6, 0); ++ ++ if (err) ++ { ++ grub_print_error (); ++ return NULL; ++ } ++ ++ if (is_ip6) ++ { ++ struct grub_efi_net_device *dev; ++ grub_efi_net_ip_address_t addr; ++ ++ grub_memcpy (addr.ip6, ip6.address, sizeof(ip6.address)); ++ ++ for (dev = net_devices; dev; dev = dev->next) ++ if ((inf = efi_net_ip6_config->best_interface (dev, &addr))) ++ return inf; ++ } ++ else ++ { ++ struct grub_efi_net_device *dev; ++ grub_efi_net_ip_address_t addr; ++ ++ grub_memcpy (addr.ip4, ip4.address, sizeof(ip4.address)); ++ ++ for (dev = net_devices; dev; dev = dev->next) ++ if ((inf = efi_net_ip4_config->best_interface (dev, &addr))) ++ return inf; ++ } ++ ++ return 0; ++} ++ ++static void ++grub_efi_net_add_pxebc_to_cards (void) ++{ ++ grub_efi_uintn_t num_handles; ++ grub_efi_handle_t *handles; ++ grub_efi_handle_t *handle; ++ ++ handles = grub_efi_locate_handle (GRUB_EFI_BY_PROTOCOL, &pxe_io_guid, ++ 0, &num_handles); ++ if (!handles) ++ return; ++ ++ for (handle = handles; num_handles--; handle++) ++ { ++ grub_efi_device_path_t *dp, *ddp, *ldp; ++ grub_efi_pxe_t *pxe; ++ struct grub_efi_net_device *d; ++ int is_ip6 = 0; ++ ++ dp = grub_efi_get_device_path (*handle); ++ if (!dp) ++ continue; ++ ++ ddp = grub_efi_duplicate_device_path (dp); ++ ldp = grub_efi_find_last_device_path (ddp); ++ ++ if (ldp->type == GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE ++ && ldp->subtype == GRUB_EFI_IPV4_DEVICE_PATH_SUBTYPE) ++ { ++ ldp->type = GRUB_EFI_END_DEVICE_PATH_TYPE; ++ ldp->subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE; ++ ldp->length = sizeof (*ldp); ++ } ++ else if (ldp->type == GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE ++ && ldp->subtype == GRUB_EFI_IPV6_DEVICE_PATH_SUBTYPE) ++ { ++ is_ip6 = 1; ++ ldp->type = GRUB_EFI_END_DEVICE_PATH_TYPE; ++ ldp->subtype = GRUB_EFI_END_ENTIRE_DEVICE_PATH_SUBTYPE; ++ ldp->length = sizeof (*ldp); ++ } ++ ++ for (d = net_devices; d; d = d->next) ++ if (grub_efi_compare_device_paths (ddp, grub_efi_get_device_path (d->handle)) == 0) ++ break; ++ ++ if (!d) ++ { ++ grub_free (ddp); ++ continue; ++ } ++ ++ pxe = grub_efi_open_protocol (*handle, &pxe_io_guid, ++ GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL); ++ ++ if (!pxe) ++ { ++ grub_free (ddp); ++ continue; ++ } ++ ++ if (is_ip6) ++ { ++ d->ip6_pxe_handle = *handle; ++ d->ip6_pxe = pxe; ++ } ++ else ++ { ++ d->ip4_pxe_handle = *handle; ++ d->ip4_pxe = pxe; ++ } ++ ++ grub_free (ddp); ++ } ++ ++ grub_free (handles); ++} ++ ++static void ++set_ip_policy_to_static (void) ++{ ++ struct grub_efi_net_device *dev; ++ ++ for (dev = net_devices; dev; dev = dev->next) ++ { ++ grub_efi_ip4_config2_policy_t ip4_policy = GRUB_EFI_IP4_CONFIG2_POLICY_STATIC; ++ ++ if (efi_call_4 (dev->ip4_config->set_data, dev->ip4_config, ++ GRUB_EFI_IP4_CONFIG2_DATA_TYPE_POLICY, ++ sizeof (ip4_policy), &ip4_policy) != GRUB_EFI_SUCCESS) ++ grub_dprintf ("efinetfs", "could not set GRUB_EFI_IP4_CONFIG2_POLICY_STATIC on dev `%s'", dev->card_name); ++ ++ if (dev->ip6_config) ++ { ++ grub_efi_ip6_config_policy_t ip6_policy = GRUB_EFI_IP6_CONFIG_POLICY_MANUAL; ++ ++ if (efi_call_4 (dev->ip6_config->set_data, dev->ip6_config, ++ GRUB_EFI_IP6_CONFIG_DATA_TYPE_POLICY, ++ sizeof (ip6_policy), &ip6_policy) != GRUB_EFI_SUCCESS) ++ grub_dprintf ("efinetfs", "could not set GRUB_EFI_IP6_CONFIG_POLICY_MANUAL on dev `%s'", dev->card_name); ++ } ++ } ++} ++ ++/* FIXME: Do not fail if the card did not support any of the protocol (Eg http) */ ++static void ++grub_efi_net_find_cards (void) ++{ ++ grub_efi_uintn_t num_handles; ++ grub_efi_handle_t *handles; ++ grub_efi_handle_t *handle; ++ int id; ++ ++ handles = grub_efi_locate_handle (GRUB_EFI_BY_PROTOCOL, &ip4_config_guid, ++ 0, &num_handles); ++ if (!handles) ++ return; ++ ++ for (id = 0, handle = handles; num_handles--; handle++, id++) ++ { ++ grub_efi_device_path_t *dp; ++ grub_efi_ip4_config2_protocol_t *ip4_config; ++ grub_efi_ip6_config_protocol_t *ip6_config; ++ grub_efi_handle_t http_handle; ++ grub_efi_http_t *http; ++ grub_efi_handle_t dhcp4_handle; ++ grub_efi_dhcp4_protocol_t *dhcp4; ++ grub_efi_handle_t dhcp6_handle; ++ grub_efi_dhcp6_protocol_t *dhcp6; ++ ++ struct grub_efi_net_device *d; ++ ++ dp = grub_efi_get_device_path (*handle); ++ if (!dp) ++ continue; ++ ++ ip4_config = grub_efi_open_protocol (*handle, &ip4_config_guid, ++ GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL); ++ if (!ip4_config) ++ continue; ++ ++ ip6_config = grub_efi_open_protocol (*handle, &ip6_config_guid, ++ GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL); ++ ++ http_handle = grub_efi_service_binding (*handle, &http_service_binding_guid); ++ grub_errno = GRUB_ERR_NONE; ++ http = (http_handle) ++ ? grub_efi_open_protocol (http_handle, &http_guid, GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL) ++ : NULL; ++ ++ dhcp4_handle = grub_efi_service_binding (*handle, &dhcp4_service_binding_guid); ++ grub_errno = GRUB_ERR_NONE; ++ dhcp4 = (dhcp4_handle) ++ ? grub_efi_open_protocol (dhcp4_handle, &dhcp4_guid, GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL) ++ : NULL; ++ ++ ++ dhcp6_handle = grub_efi_service_binding (*handle, &dhcp6_service_binding_guid); ++ grub_errno = GRUB_ERR_NONE; ++ dhcp6 = (dhcp6_handle) ++ ? grub_efi_open_protocol (dhcp6_handle, &dhcp6_guid, GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL) ++ : NULL; ++ ++ d = grub_malloc (sizeof (*d)); ++ if (!d) ++ { ++ grub_free (handles); ++ while (net_devices) ++ { ++ d = net_devices->next; ++ grub_free (net_devices); ++ net_devices = d; ++ } ++ return; ++ } ++ d->handle = *handle; ++ d->ip4_config = ip4_config; ++ d->ip6_config = ip6_config; ++ d->http_handle = http_handle; ++ d->http = http; ++ d->dhcp4_handle = dhcp4_handle; ++ d->dhcp4 = dhcp4; ++ d->dhcp6_handle = dhcp6_handle; ++ d->dhcp6 = dhcp6; ++ d->next = net_devices; ++ d->card_name = grub_xasprintf ("efinet%d", id); ++ d->net_interfaces = NULL; ++ net_devices = d; ++ } ++ ++ grub_efi_net_add_pxebc_to_cards (); ++ grub_free (handles); ++ set_ip_policy_to_static (); ++} ++ ++static void ++listroutes_ip4 (struct grub_efi_net_device *netdev) ++{ ++ char **routes; ++ ++ routes = NULL; ++ ++ if ((routes = efi_net_ip4_config->get_route_table (netdev))) ++ { ++ char **r; ++ ++ for (r = routes; *r; ++r) ++ grub_printf ("%s\n", *r); ++ } ++ ++ if (routes) ++ { ++ char **r; ++ ++ for (r = routes; *r; ++r) ++ grub_free (*r); ++ grub_free (routes); ++ } ++} ++ ++static void ++listroutes_ip6 (struct grub_efi_net_device *netdev) ++{ ++ char **routes; ++ ++ routes = NULL; ++ ++ if ((routes = efi_net_ip6_config->get_route_table (netdev))) ++ { ++ char **r; ++ ++ for (r = routes; *r; ++r) ++ grub_printf ("%s\n", *r); ++ } ++ ++ if (routes) ++ { ++ char **r; ++ ++ for (r = routes; *r; ++r) ++ grub_free (*r); ++ grub_free (routes); ++ } ++} ++ ++static grub_err_t ++grub_cmd_efi_listroutes (struct grub_command *cmd __attribute__ ((unused)), ++ int argc __attribute__ ((unused)), ++ char **args __attribute__ ((unused))) ++{ ++ struct grub_efi_net_device *netdev; ++ ++ for (netdev = net_devices; netdev; netdev = netdev->next) ++ { ++ listroutes_ip4 (netdev); ++ listroutes_ip6 (netdev); ++ } ++ ++ return GRUB_ERR_NONE; ++} ++static grub_err_t ++grub_cmd_efi_listcards (struct grub_command *cmd __attribute__ ((unused)), ++ int argc __attribute__ ((unused)), ++ char **args __attribute__ ((unused))) ++{ ++ struct grub_efi_net_device *dev; ++ ++ for (dev = net_devices; dev; dev = dev->next) ++ { ++ char *hw_addr; ++ ++ hw_addr = efi_net_ip4_config->get_hw_address (dev); ++ ++ if (hw_addr) ++ { ++ grub_printf ("%s %s\n", dev->card_name, hw_addr); ++ grub_free (hw_addr); ++ } ++ } ++ ++ return GRUB_ERR_NONE; ++} ++ ++static grub_err_t ++grub_cmd_efi_listaddrs (struct grub_command *cmd __attribute__ ((unused)), ++ int argc __attribute__ ((unused)), ++ char **args __attribute__ ((unused))) ++{ ++ struct grub_efi_net_device *dev; ++ grub_efi_net_interface_t *inf; ++ ++ for (dev = net_devices; dev; dev = dev->next) ++ for (inf = dev->net_interfaces; inf; inf = inf->next) ++ { ++ char *hw_addr = NULL; ++ char *addr = NULL; ++ ++ if ((hw_addr = efi_net_interface_get_hw_address (inf)) ++ && (addr = efi_net_interface_get_address (inf))) ++ grub_printf ("%s %s %s\n", inf->name, hw_addr, addr); ++ ++ if (hw_addr) ++ grub_free (hw_addr); ++ if (addr) ++ grub_free (addr); ++ } ++ ++ return GRUB_ERR_NONE; ++} ++ ++/* FIXME: support MAC specifying. */ ++static grub_err_t ++grub_cmd_efi_addaddr (struct grub_command *cmd __attribute__ ((unused)), ++ int argc, char **args) ++{ ++ struct grub_efi_net_device *dev; ++ grub_err_t err; ++ grub_efi_ip4_config2_manual_address_t ip4; ++ grub_efi_ip6_config_manual_address_t ip6; ++ grub_efi_net_ip_manual_address_t net_ip; ++ int is_ip6 = 0; ++ int cidr = 0; ++ ++ if (argc != 3) ++ return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("three arguments expected")); ++ ++ for (dev = net_devices; dev; dev = dev->next) ++ { ++ if (grub_strcmp (dev->card_name, args[1]) == 0) ++ break; ++ } ++ ++ if (!dev) ++ return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("card not found")); ++ ++ err = grub_efi_net_parse_address (args[2], &ip4, &ip6, &is_ip6, &cidr); ++ ++ if (err) ++ return err; ++ ++ net_ip.is_ip6 = is_ip6; ++ if (is_ip6) ++ grub_memcpy (&net_ip.ip6, &ip6, sizeof(net_ip.ip6)); ++ else ++ grub_memcpy (&net_ip.ip4, &ip4, sizeof(net_ip.ip4)); ++ ++ if (!grub_efi_net_create_interface (dev, ++ args[0], ++ &net_ip, ++ cidr)) ++ return grub_errno; ++ ++ return GRUB_ERR_NONE; ++} ++ ++static struct grub_fs grub_efi_netfs; ++ ++static grub_net_t ++grub_net_open_real (const char *name __attribute__ ((unused))) ++{ ++ grub_size_t protnamelen; ++ const char *protname, *server; ++ grub_net_t ret; ++ ++ net_interface = NULL; ++ ++ if (grub_strncmp (name, "pxe:", sizeof ("pxe:") - 1) == 0) ++ { ++ protname = "tftp"; ++ protnamelen = sizeof ("tftp") - 1; ++ server = name + sizeof ("pxe:") - 1; ++ } ++ else if (grub_strcmp (name, "pxe") == 0) ++ { ++ protname = "tftp"; ++ protnamelen = sizeof ("tftp") - 1; ++ server = default_server; ++ } ++ else ++ { ++ const char *comma; ++ ++ comma = grub_strchr (name, ','); ++ if (comma) ++ { ++ protnamelen = comma - name; ++ server = comma + 1; ++ protname = name; ++ } ++ else ++ { ++ protnamelen = grub_strlen (name); ++ server = default_server; ++ protname = name; ++ } ++ } ++ ++ if (!server) ++ { ++ grub_error (GRUB_ERR_NET_BAD_ADDRESS, ++ N_("no server is specified")); ++ return NULL; ++ } ++ ++ /*FIXME: Use DNS translate name to address */ ++ net_interface = match_route (server); ++ ++ /*XXX: should we check device with default gateway ? */ ++ if (!net_interface && !(net_interface = net_default_interface)) ++ { ++ grub_error (GRUB_ERR_UNKNOWN_DEVICE, N_("disk `%s' no route found"), ++ name); ++ return NULL; ++ } ++ ++ if ((protnamelen == (sizeof ("https") - 1) ++ && grub_memcmp ("https", protname, protnamelen) == 0)) ++ { ++ net_interface->io = &io_http; ++ net_interface->io_type = 1; ++ } ++ else if ((protnamelen == (sizeof ("http") - 1) ++ && grub_memcmp ("http", protname, protnamelen) == 0)) ++ { ++ net_interface->io = &io_http; ++ net_interface->io_type = 0; ++ } ++ else if (protnamelen == (sizeof ("tftp") - 1) ++ && grub_memcmp ("tftp", protname, protnamelen) == 0) ++ { ++ net_interface->io = &io_pxe; ++ net_interface->io_type = 0; ++ } ++ else ++ { ++ grub_error (GRUB_ERR_UNKNOWN_DEVICE, N_("disk `%s' not found"), ++ name); ++ return NULL; ++ } ++ ++ /*XXX: Should we try to avoid doing excess "reconfigure" here ??? */ ++ efi_net_interface (configure); ++ ++ ret = grub_zalloc (sizeof (*ret)); ++ if (!ret) ++ return NULL; ++ ++ ret->server = grub_strdup (server); ++ if (!ret->server) ++ { ++ grub_free (ret); ++ return NULL; ++ } ++ ++ ret->fs = &grub_efi_netfs; ++ return ret; ++} ++#if 0 ++static grub_command_t cmd_efi_lsaddr; ++static grub_command_t cmd_efi_lscards; ++static grub_command_t cmd_efi_lsroutes; ++static grub_command_t cmd_efi_addaddr; ++#endif ++ ++static struct grub_fs grub_efi_netfs = ++ { ++ .name = "efi netfs", ++ .dir = grub_efi_netfs_dir, ++ .open = grub_efi_netfs_open, ++ .read = grub_efi_netfs_read, ++ .close = grub_efi_netfs_close, ++ .label = NULL, ++ .uuid = NULL, ++ .mtime = NULL, ++ }; ++ ++int ++grub_efi_net_boot_from_https (void) ++{ ++ grub_efi_loaded_image_t *image = NULL; ++ grub_efi_device_path_t *dp; ++ ++ image = grub_efi_get_loaded_image (grub_efi_image_handle); ++ if (!image) ++ return 0; ++ ++ dp = grub_efi_get_device_path (image->device_handle); ++ ++ while (1) ++ { ++ grub_efi_uint8_t type = GRUB_EFI_DEVICE_PATH_TYPE (dp); ++ grub_efi_uint8_t subtype = GRUB_EFI_DEVICE_PATH_SUBTYPE (dp); ++ grub_efi_uint16_t len = GRUB_EFI_DEVICE_PATH_LENGTH (dp); ++ ++ if ((type == GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE) ++ && (subtype == GRUB_EFI_URI_DEVICE_PATH_SUBTYPE)) ++ { ++ grub_efi_uri_device_path_t *uri_dp = (grub_efi_uri_device_path_t *) dp; ++ return (grub_strncmp ((const char*)uri_dp->uri, "https://", sizeof ("https://") - 1) == 0) ? 1 : 0; ++ } ++ ++ if (GRUB_EFI_END_ENTIRE_DEVICE_PATH (dp)) ++ break; ++ dp = (grub_efi_device_path_t *) ((char *) dp + len); ++ } ++ ++ return 0; ++} ++ ++int ++grub_efi_net_boot_from_opa (void) ++{ ++ grub_efi_loaded_image_t *image = NULL; ++ grub_efi_device_path_t *dp; ++ ++ image = grub_efi_get_loaded_image (grub_efi_image_handle); ++ if (!image) ++ return 0; ++ ++ dp = grub_efi_get_device_path (image->device_handle); ++ ++ while (1) ++ { ++ grub_efi_uint8_t type = GRUB_EFI_DEVICE_PATH_TYPE (dp); ++ grub_efi_uint8_t subtype = GRUB_EFI_DEVICE_PATH_SUBTYPE (dp); ++ grub_efi_uint16_t len = GRUB_EFI_DEVICE_PATH_LENGTH (dp); ++ ++ if ((type == GRUB_EFI_MESSAGING_DEVICE_PATH_TYPE) ++ && (subtype == GRUB_EFI_MAC_ADDRESS_DEVICE_PATH_SUBTYPE)) ++ { ++ grub_efi_mac_address_device_path_t *mac_dp = (grub_efi_mac_address_device_path_t *)dp; ++ return (mac_dp->if_type == 0xC7) ? 1 : 0; ++ } ++ ++ if (GRUB_EFI_END_ENTIRE_DEVICE_PATH (dp)) ++ break; ++ dp = (grub_efi_device_path_t *) ((char *) dp + len); ++ } ++ ++ return 0; ++} ++ ++static char * ++grub_env_write_readonly (struct grub_env_var *var __attribute__ ((unused)), ++ const char *val __attribute__ ((unused))) ++{ ++ return NULL; ++} ++ ++grub_command_func_t grub_efi_net_list_routes = grub_cmd_efi_listroutes; ++grub_command_func_t grub_efi_net_list_cards = grub_cmd_efi_listcards; ++grub_command_func_t grub_efi_net_list_addrs = grub_cmd_efi_listaddrs; ++grub_command_func_t grub_efi_net_add_addr = grub_cmd_efi_addaddr; ++ ++int ++grub_efi_net_fs_init () ++{ ++ grub_efi_net_find_cards (); ++ grub_efi_net_config = grub_efi_net_config_real; ++ grub_net_open = grub_net_open_real; ++ grub_register_variable_hook ("net_default_server", grub_efi_net_var_get_server, ++ grub_efi_net_var_set_server); ++ grub_env_export ("net_default_server"); ++ grub_register_variable_hook ("pxe_default_server", grub_efi_net_var_get_server, ++ grub_efi_net_var_set_server); ++ grub_env_export ("pxe_default_server"); ++ grub_register_variable_hook ("net_default_interface", 0, ++ grub_efi_net_var_set_interface); ++ grub_env_export ("net_default_interface"); ++ grub_register_variable_hook ("net_default_ip", grub_efi_net_var_get_ip, ++ 0); ++ grub_env_export ("net_default_ip"); ++ grub_register_variable_hook ("net_default_mac", grub_efi_net_var_get_mac, ++ 0); ++ grub_env_export ("net_default_mac"); ++ ++ grub_env_set ("grub_netfs_type", "efi"); ++ grub_register_variable_hook ("grub_netfs_type", 0, grub_env_write_readonly); ++ grub_env_export ("grub_netfs_type"); ++ ++ return 1; ++} ++ ++void ++grub_efi_net_fs_fini (void) ++{ ++ grub_env_unset ("grub_netfs_type"); ++ grub_efi_net_unset_interface_vars (); ++ grub_register_variable_hook ("net_default_server", 0, 0); ++ grub_env_unset ("net_default_server"); ++ grub_register_variable_hook ("net_default_interface", 0, 0); ++ grub_env_unset ("net_default_interface"); ++ grub_register_variable_hook ("pxe_default_server", 0, 0); ++ grub_env_unset ("pxe_default_server"); ++ grub_register_variable_hook ("net_default_ip", 0, 0); ++ grub_env_unset ("net_default_ip"); ++ grub_register_variable_hook ("net_default_mac", 0, 0); ++ grub_env_unset ("net_default_mac"); ++ grub_efi_net_config = NULL; ++ grub_net_open = NULL; ++ grub_fs_unregister (&grub_efi_netfs); ++} +diff --git a/grub-core/net/efi/pxe.c b/grub-core/net/efi/pxe.c +new file mode 100644 +index 00000000000..531949cba5c +--- /dev/null ++++ b/grub-core/net/efi/pxe.c +@@ -0,0 +1,424 @@ ++ ++#include ++#include ++#include ++#include ++#include ++ ++static grub_efi_ip6_config_manual_address_t * ++efi_ip6_config_manual_address (grub_efi_ip6_config_protocol_t *ip6_config) ++{ ++ grub_efi_uintn_t sz; ++ grub_efi_status_t status; ++ grub_efi_ip6_config_manual_address_t *manual_address; ++ ++ sz = sizeof (*manual_address); ++ manual_address = grub_malloc (sz); ++ if (!manual_address) ++ return NULL; ++ ++ status = efi_call_4 (ip6_config->get_data, ip6_config, ++ GRUB_EFI_IP6_CONFIG_DATA_TYPE_MANUAL_ADDRESS, ++ &sz, manual_address); ++ ++ if (status != GRUB_EFI_SUCCESS) ++ { ++ grub_free (manual_address); ++ return NULL; ++ } ++ ++ return manual_address; ++} ++ ++static grub_efi_ip4_config2_manual_address_t * ++efi_ip4_config_manual_address (grub_efi_ip4_config2_protocol_t *ip4_config) ++{ ++ grub_efi_uintn_t sz; ++ grub_efi_status_t status; ++ grub_efi_ip4_config2_manual_address_t *manual_address; ++ ++ sz = sizeof (*manual_address); ++ manual_address = grub_malloc (sz); ++ if (!manual_address) ++ return NULL; ++ ++ status = efi_call_4 (ip4_config->get_data, ip4_config, ++ GRUB_EFI_IP4_CONFIG2_DATA_TYPE_MANUAL_ADDRESS, ++ &sz, manual_address); ++ ++ if (status != GRUB_EFI_SUCCESS) ++ { ++ grub_free (manual_address); ++ return NULL; ++ } ++ ++ return manual_address; ++} ++ ++static void ++pxe_configure (struct grub_efi_net_device *dev, int prefer_ip6) ++{ ++ grub_efi_pxe_t *pxe = (prefer_ip6) ? dev->ip6_pxe : dev->ip4_pxe; ++ ++ grub_efi_pxe_mode_t *mode = pxe->mode; ++ ++ if (!mode->started) ++ { ++ grub_efi_status_t status; ++ status = efi_call_2 (pxe->start, pxe, prefer_ip6); ++ ++ if (status != GRUB_EFI_SUCCESS) ++ grub_printf ("Couldn't start PXE\n"); ++ } ++ ++#if 0 ++ grub_printf ("PXE STARTED: %u\n", mode->started); ++ grub_printf ("PXE USING IPV6: %u\n", mode->using_ipv6); ++#endif ++ ++ if (mode->using_ipv6) ++ { ++ grub_efi_ip6_config_manual_address_t *manual_address; ++ manual_address = efi_ip6_config_manual_address (dev->ip6_config); ++ ++ if (manual_address && ++ grub_memcmp (manual_address->address, mode->station_ip.v6, sizeof (manual_address->address)) != 0) ++ { ++ grub_efi_status_t status; ++ grub_efi_pxe_ip_address_t station_ip; ++ ++ grub_memcpy (station_ip.v6.addr, manual_address->address, sizeof (station_ip.v6.addr)); ++ status = efi_call_3 (pxe->set_station_ip, pxe, &station_ip, NULL); ++ ++ if (status != GRUB_EFI_SUCCESS) ++ grub_printf ("Couldn't set station ip\n"); ++ ++ grub_free (manual_address); ++ } ++ } ++ else ++ { ++ grub_efi_ip4_config2_manual_address_t *manual_address; ++ manual_address = efi_ip4_config_manual_address (dev->ip4_config); ++ ++ if (manual_address && ++ grub_memcmp (manual_address->address, mode->station_ip.v4, sizeof (manual_address->address)) != 0) ++ { ++ grub_efi_status_t status; ++ grub_efi_pxe_ip_address_t station_ip; ++ grub_efi_pxe_ip_address_t subnet_mask; ++ ++ grub_memcpy (station_ip.v4.addr, manual_address->address, sizeof (station_ip.v4.addr)); ++ grub_memcpy (subnet_mask.v4.addr, manual_address->subnet_mask, sizeof (subnet_mask.v4.addr)); ++ ++ status = efi_call_3 (pxe->set_station_ip, pxe, &station_ip, &subnet_mask); ++ ++ if (status != GRUB_EFI_SUCCESS) ++ grub_printf ("Couldn't set station ip\n"); ++ ++ grub_free (manual_address); ++ } ++ } ++ ++#if 0 ++ if (mode->using_ipv6) ++ { ++ grub_printf ("PXE STATION IP: %02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x\n", ++ mode->station_ip.v6.addr[0], ++ mode->station_ip.v6.addr[1], ++ mode->station_ip.v6.addr[2], ++ mode->station_ip.v6.addr[3], ++ mode->station_ip.v6.addr[4], ++ mode->station_ip.v6.addr[5], ++ mode->station_ip.v6.addr[6], ++ mode->station_ip.v6.addr[7], ++ mode->station_ip.v6.addr[8], ++ mode->station_ip.v6.addr[9], ++ mode->station_ip.v6.addr[10], ++ mode->station_ip.v6.addr[11], ++ mode->station_ip.v6.addr[12], ++ mode->station_ip.v6.addr[13], ++ mode->station_ip.v6.addr[14], ++ mode->station_ip.v6.addr[15]); ++ } ++ else ++ { ++ grub_printf ("PXE STATION IP: %d.%d.%d.%d\n", ++ mode->station_ip.v4.addr[0], ++ mode->station_ip.v4.addr[1], ++ mode->station_ip.v4.addr[2], ++ mode->station_ip.v4.addr[3]); ++ grub_printf ("PXE SUBNET MASK: %d.%d.%d.%d\n", ++ mode->subnet_mask.v4.addr[0], ++ mode->subnet_mask.v4.addr[1], ++ mode->subnet_mask.v4.addr[2], ++ mode->subnet_mask.v4.addr[3]); ++ } ++#endif ++ ++ /* TODO: Set The Station IP to the IP2 Config */ ++} ++ ++static int ++parse_ip6 (const char *val, grub_uint64_t *ip, const char **rest) ++{ ++ grub_uint16_t newip[8]; ++ const char *ptr = val; ++ int word, quaddot = -1; ++ int bracketed = 0; ++ ++ if (ptr[0] == '[') { ++ bracketed = 1; ++ ptr++; ++ } ++ ++ if (ptr[0] == ':' && ptr[1] != ':') ++ return 0; ++ if (ptr[0] == ':') ++ ptr++; ++ ++ for (word = 0; word < 8; word++) ++ { ++ unsigned long t; ++ if (*ptr == ':') ++ { ++ quaddot = word; ++ word--; ++ ptr++; ++ continue; ++ } ++ t = grub_strtoul (ptr, (char **) &ptr, 16); ++ if (grub_errno) ++ { ++ grub_errno = GRUB_ERR_NONE; ++ break; ++ } ++ if (t & ~0xffff) ++ return 0; ++ newip[word] = grub_cpu_to_be16 (t); ++ if (*ptr != ':') ++ break; ++ ptr++; ++ } ++ if (quaddot == -1 && word < 7) ++ return 0; ++ if (quaddot != -1) ++ { ++ grub_memmove (&newip[quaddot + 7 - word], &newip[quaddot], ++ (word - quaddot + 1) * sizeof (newip[0])); ++ grub_memset (&newip[quaddot], 0, (7 - word) * sizeof (newip[0])); ++ } ++ grub_memcpy (ip, newip, 16); ++ if (bracketed && *ptr == ']') { ++ ptr++; ++ } ++ if (rest) ++ *rest = ptr; ++ return 1; ++} ++ ++static grub_err_t ++pxe_open (struct grub_efi_net_device *dev, ++ int prefer_ip6, ++ grub_file_t file, ++ const char *filename, ++ int type __attribute__((unused))) ++{ ++ int i; ++ char *p; ++ grub_efi_status_t status; ++ grub_efi_pxe_ip_address_t server_ip; ++ grub_efi_uint64_t file_size = 0; ++ grub_efi_pxe_t *pxe = (prefer_ip6) ? dev->ip6_pxe : dev->ip4_pxe; ++ ++ if (pxe->mode->using_ipv6) ++ { ++ const char *rest; ++ grub_uint64_t ip6[2]; ++ if (parse_ip6 (file->device->net->server, ip6, &rest) && *rest == 0) ++ grub_memcpy (server_ip.v6.addr, ip6, sizeof (server_ip.v6.addr)); ++ /* TODO: ERROR Handling Here */ ++#if 0 ++ grub_printf ("PXE SERVER IP: %02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x:%02x%02x\n", ++ server_ip.v6.addr[0], ++ server_ip.v6.addr[1], ++ server_ip.v6.addr[2], ++ server_ip.v6.addr[3], ++ server_ip.v6.addr[4], ++ server_ip.v6.addr[5], ++ server_ip.v6.addr[6], ++ server_ip.v6.addr[7], ++ server_ip.v6.addr[8], ++ server_ip.v6.addr[9], ++ server_ip.v6.addr[10], ++ server_ip.v6.addr[11], ++ server_ip.v6.addr[12], ++ server_ip.v6.addr[13], ++ server_ip.v6.addr[14], ++ server_ip.v6.addr[15]); ++#endif ++ } ++ else ++ { ++ for (i = 0, p = file->device->net->server; i < 4; ++i, ++p) ++ server_ip.v4.addr[i] = grub_strtoul (p, &p, 10); ++ } ++ ++ status = efi_call_10 (pxe->mtftp, ++ pxe, ++ GRUB_EFI_PXE_BASE_CODE_TFTP_GET_FILE_SIZE, ++ NULL, ++ 0, ++ &file_size, ++ NULL, ++ &server_ip, ++ (grub_efi_char8_t *)filename, ++ NULL, ++ 0); ++ ++ if (status != GRUB_EFI_SUCCESS) ++ return grub_error (GRUB_ERR_IO, "Couldn't get file size"); ++ ++ file->size = (grub_off_t)file_size; ++ file->not_easily_seekable = 0; ++ file->data = 0; ++ file->device->net->offset = 0; ++ ++ return GRUB_ERR_NONE; ++} ++ ++static grub_err_t ++pxe_close (struct grub_efi_net_device *dev __attribute__((unused)), ++ int prefer_ip6 __attribute__((unused)), ++ grub_file_t file __attribute__((unused))) ++{ ++ file->offset = 0; ++ file->size = 0; ++ file->device->net->offset = 0; ++ ++ if (file->data) ++ { ++ grub_free (file->data); ++ file->data = NULL; ++ } ++ ++ return GRUB_ERR_NONE; ++} ++ ++static grub_ssize_t ++pxe_read (struct grub_efi_net_device *dev, ++ int prefer_ip6, ++ grub_file_t file, ++ char *buf, ++ grub_size_t len) ++{ ++ int i; ++ char *p; ++ grub_efi_status_t status; ++ grub_efi_pxe_t *pxe = (prefer_ip6) ? dev->ip6_pxe : dev->ip4_pxe; ++ grub_efi_uint64_t bufsz = len; ++ grub_efi_pxe_ip_address_t server_ip; ++ char *buf2 = NULL; ++ ++ if (file->data) ++ { ++ /* TODO: RANGE Check for offset and file size */ ++ grub_memcpy (buf, (char*)file->data + file->device->net->offset, len); ++ file->device->net->offset += len; ++ return len; ++ } ++ ++ if (file->device->net->offset) ++ { ++ grub_error (GRUB_ERR_BUG, "No Offet Read Possible"); ++ grub_print_error (); ++ return 0; ++ } ++ ++ if (pxe->mode->using_ipv6) ++ { ++ const char *rest; ++ grub_uint64_t ip6[2]; ++ if (parse_ip6 (file->device->net->server, ip6, &rest) && *rest == 0) ++ grub_memcpy (server_ip.v6.addr, ip6, sizeof (server_ip.v6.addr)); ++ /* TODO: ERROR Handling Here */ ++ } ++ else ++ { ++ for (i = 0, p = file->device->net->server; i < 4; ++i, ++p) ++ server_ip.v4.addr[i] = grub_strtoul (p, &p, 10); ++ } ++ ++ status = efi_call_10 (pxe->mtftp, ++ pxe, ++ GRUB_EFI_PXE_BASE_CODE_TFTP_READ_FILE, ++ buf, ++ 0, ++ &bufsz, ++ NULL, ++ &server_ip, ++ (grub_efi_char8_t *)file->device->net->name, ++ NULL, ++ 0); ++ ++ if (bufsz != file->size) ++ { ++ grub_error (GRUB_ERR_BUG, "Short read should not happen here"); ++ grub_print_error (); ++ return 0; ++ } ++ ++ if (status == GRUB_EFI_BUFFER_TOO_SMALL) ++ { ++ ++ buf2 = grub_malloc (bufsz); ++ ++ if (!buf2) ++ { ++ grub_error (GRUB_ERR_OUT_OF_MEMORY, "ERROR OUT OF MEMORY"); ++ grub_print_error (); ++ return 0; ++ } ++ ++ status = efi_call_10 (pxe->mtftp, ++ pxe, ++ GRUB_EFI_PXE_BASE_CODE_TFTP_READ_FILE, ++ buf2, ++ 0, ++ &bufsz, ++ NULL, ++ &server_ip, ++ (grub_efi_char8_t *)file->device->net->name, ++ NULL, ++ 0); ++ } ++ ++ if (status != GRUB_EFI_SUCCESS) ++ { ++ if (buf2) ++ grub_free (buf2); ++ ++ grub_error (GRUB_ERR_IO, "Failed to Read File"); ++ grub_print_error (); ++ return 0; ++ } ++ ++ if (buf2) ++ grub_memcpy (buf, buf2, len); ++ ++ file->device->net->offset = len; ++ ++ if (buf2) ++ file->data = buf2; ++ ++ return len; ++} ++ ++struct grub_efi_net_io io_pxe = ++ { ++ .configure = pxe_configure, ++ .open = pxe_open, ++ .read = pxe_read, ++ .close = pxe_close ++ }; ++ +diff --git a/grub-core/net/net.c b/grub-core/net/net.c +index 191e8e41bd6..a571ee92efa 100644 +--- a/grub-core/net/net.c ++++ b/grub-core/net/net.c +@@ -32,6 +32,9 @@ + #include + #include + #include ++#ifdef GRUB_MACHINE_EFI ++#include ++#endif + + GRUB_MOD_LICENSE ("GPLv3+"); + +@@ -2025,8 +2028,49 @@ static grub_command_t cmd_addaddr, cmd_deladdr, cmd_addroute, cmd_delroute; + static grub_command_t cmd_lsroutes, cmd_lscards; + static grub_command_t cmd_lsaddr, cmd_slaac; + ++#ifdef GRUB_MACHINE_EFI ++ ++static enum { ++ INIT_MODE_NONE, ++ INIT_MODE_GRUB, ++ INIT_MODE_EFI ++} init_mode; ++ ++static grub_command_t cmd_bootp, cmd_bootp6; ++ ++#endif ++ + GRUB_MOD_INIT(net) + { ++#ifdef GRUB_MACHINE_EFI ++ if (grub_net_open) ++ return; ++ ++ if ((grub_efi_net_boot_from_https () || grub_efi_net_boot_from_opa ()) ++ && grub_efi_net_fs_init ()) ++ { ++ cmd_lsroutes = grub_register_command ("net_ls_routes", grub_efi_net_list_routes, ++ "", N_("list network routes")); ++ cmd_lscards = grub_register_command ("net_ls_cards", grub_efi_net_list_cards, ++ "", N_("list network cards")); ++ cmd_lsaddr = grub_register_command ("net_ls_addr", grub_efi_net_list_addrs, ++ "", N_("list network addresses")); ++ cmd_addaddr = grub_register_command ("net_add_addr", grub_efi_net_add_addr, ++ /* TRANSLATORS: HWADDRESS stands for ++ "hardware address". */ ++ N_("SHORTNAME CARD ADDRESS [HWADDRESS]"), ++ N_("Add a network address.")); ++ cmd_bootp = grub_register_command ("net_bootp", grub_efi_net_bootp, ++ N_("[CARD]"), ++ N_("perform a bootp autoconfiguration")); ++ cmd_bootp6 = grub_register_command ("net_bootp6", grub_efi_net_bootp6, ++ N_("[CARD]"), ++ N_("perform a bootp autoconfiguration")); ++ init_mode = INIT_MODE_EFI; ++ return; ++ } ++#endif ++ + grub_register_variable_hook ("net_default_server", defserver_get_env, + defserver_set_env); + grub_env_export ("net_default_server"); +@@ -2074,10 +2118,37 @@ GRUB_MOD_INIT(net) + grub_net_restore_hw, + GRUB_LOADER_PREBOOT_HOOK_PRIO_DISK); + grub_net_poll_cards_idle = grub_net_poll_cards_idle_real; ++ ++#ifdef GRUB_MACHINE_EFI ++ grub_env_set ("grub_netfs_type", "grub"); ++ grub_register_variable_hook ("grub_netfs_type", 0, grub_env_write_readonly); ++ grub_env_export ("grub_netfs_type"); ++ init_mode = INIT_MODE_GRUB; ++#endif ++ + } + + GRUB_MOD_FINI(net) + { ++ ++#ifdef GRUB_MACHINE_EFI ++ if (init_mode == INIT_MODE_NONE) ++ return; ++ ++ if (init_mode == INIT_MODE_EFI) ++ { ++ grub_unregister_command (cmd_lsroutes); ++ grub_unregister_command (cmd_lscards); ++ grub_unregister_command (cmd_lsaddr); ++ grub_unregister_command (cmd_addaddr); ++ grub_unregister_command (cmd_bootp); ++ grub_unregister_command (cmd_bootp6); ++ grub_efi_net_fs_fini (); ++ init_mode = INIT_MODE_NONE; ++ return; ++ } ++#endif ++ + grub_register_variable_hook ("net_default_server", 0, 0); + grub_register_variable_hook ("pxe_default_server", 0, 0); + +@@ -2096,4 +2167,7 @@ GRUB_MOD_FINI(net) + grub_net_fini_hw (0); + grub_loader_unregister_preboot_hook (fini_hnd); + grub_net_poll_cards_idle = grub_net_poll_cards_idle_real; ++#ifdef GRUB_MACHINE_EFI ++ init_mode = INIT_MODE_NONE; ++#endif + } +diff --git a/util/grub-mknetdir.c b/util/grub-mknetdir.c +index 82073d5cc94..ae31271bbc0 100644 +--- a/util/grub-mknetdir.c ++++ b/util/grub-mknetdir.c +@@ -32,13 +32,15 @@ + + static char *rootdir = NULL, *subdir = NULL; + static char *debug_image = NULL; ++static char efi_netfs = 0; + + enum + { + OPTION_NET_DIRECTORY = 0x301, + OPTION_SUBDIR, + OPTION_DEBUG, +- OPTION_DEBUG_IMAGE ++ OPTION_DEBUG_IMAGE, ++ OPTION_DEBUG_EFI_NETFS + }; + + static struct argp_option options[] = { +@@ -49,6 +51,7 @@ static struct argp_option options[] = { + 0, N_("relative subdirectory on network server"), 2}, + {"debug", OPTION_DEBUG, 0, OPTION_HIDDEN, 0, 2}, + {"debug-image", OPTION_DEBUG_IMAGE, N_("STRING"), OPTION_HIDDEN, 0, 2}, ++ {"debug-efi-netfs", OPTION_DEBUG_EFI_NETFS, 0, OPTION_HIDDEN, 0, 2}, + {0, 0, 0, 0, 0, 0} + }; + +@@ -67,6 +70,9 @@ argp_parser (int key, char *arg, struct argp_state *state) + free (subdir); + subdir = xstrdup (arg); + return 0; ++ case OPTION_DEBUG_EFI_NETFS: ++ efi_netfs = 1; ++ return 0; + /* This is an undocumented feature... */ + case OPTION_DEBUG: + verbosity++; +@@ -82,7 +88,6 @@ argp_parser (int key, char *arg, struct argp_state *state) + } + } + +- + struct argp argp = { + options, argp_parser, NULL, + "\v"N_("Prepares GRUB network boot images at net_directory/subdir " +@@ -92,7 +97,7 @@ struct argp argp = { + + static char *base; + +-static const struct ++static struct + { + const char *mkimage_target; + const char *netmodule; +@@ -154,6 +159,7 @@ process_input_dir (const char *input_dir, enum grub_install_plat platform) + grub_install_push_module (targets[platform].netmodule); + + output = grub_util_path_concat_ext (2, grubdir, "core", targets[platform].ext); ++ + grub_install_make_image_wrap (input_dir, prefix, output, + 0, load_cfg, + targets[platform].mkimage_target, 0); +@@ -190,7 +196,16 @@ main (int argc, char *argv[]) + + grub_install_mkdir_p (base); + +- grub_install_push_module ("tftp"); ++ if (!efi_netfs) ++ { ++ grub_install_push_module ("tftp"); ++ grub_install_push_module ("http"); ++ } ++ else ++ { ++ targets[GRUB_INSTALL_PLATFORM_I386_EFI].netmodule = "efi_netfs"; ++ targets[GRUB_INSTALL_PLATFORM_X86_64_EFI].netmodule = "efi_netfs"; ++ } + + if (!grub_install_source_directory) + { +diff --git a/include/grub/efi/api.h b/include/grub/efi/api.h +index 80f6d79cfaf..5f62a2d4292 100644 +--- a/include/grub/efi/api.h ++++ b/include/grub/efi/api.h +@@ -602,6 +602,23 @@ typedef union + + typedef grub_efi_uint64_t grub_efi_physical_address_t; + typedef grub_efi_uint64_t grub_efi_virtual_address_t; ++typedef struct { ++ grub_uint8_t addr[4]; ++} grub_efi_pxe_ipv4_address_t; ++ ++typedef struct { ++ grub_uint8_t addr[16]; ++} grub_efi_pxe_ipv6_address_t; ++ ++typedef struct { ++ grub_uint8_t addr[32]; ++} grub_efi_pxe_mac_address_t; ++ ++typedef union { ++ grub_uint32_t addr[4]; ++ grub_efi_pxe_ipv4_address_t v4; ++ grub_efi_pxe_ipv6_address_t v6; ++} grub_efi_pxe_ip_address_t; + + struct grub_efi_guid + { +@@ -869,6 +886,8 @@ struct grub_efi_ipv6_device_path + grub_efi_uint16_t remote_port; + grub_efi_uint16_t protocol; + grub_efi_uint8_t static_ip_address; ++ grub_efi_uint8_t prefix_length; ++ grub_efi_ipv6_address_t gateway_ip_address; + } GRUB_PACKED; + typedef struct grub_efi_ipv6_device_path grub_efi_ipv6_device_path_t; + +@@ -918,6 +937,15 @@ struct grub_efi_uri_device_path + } GRUB_PACKED; + typedef struct grub_efi_uri_device_path grub_efi_uri_device_path_t; + ++#define GRUB_EFI_DNS_DEVICE_PATH_SUBTYPE 31 ++struct grub_efi_dns_device_path ++{ ++ grub_efi_device_path_t header; ++ grub_efi_uint8_t is_ipv6; ++ grub_efi_pxe_ip_address_t dns_server_ip[0]; ++} GRUB_PACKED; ++typedef struct grub_efi_dns_device_path grub_efi_dns_device_path_t; ++ + #define GRUB_EFI_VENDOR_MESSAGING_DEVICE_PATH_SUBTYPE 10 + + /* Media Device Path. */ +@@ -1000,6 +1028,23 @@ struct grub_efi_bios_device_path + } GRUB_PACKED; + typedef struct grub_efi_bios_device_path grub_efi_bios_device_path_t; + ++/* Service Binding definitions */ ++struct grub_efi_service_binding; ++ ++typedef grub_efi_status_t ++(*grub_efi_service_binding_create_child) (struct grub_efi_service_binding *this, ++ grub_efi_handle_t *child_handle); ++ ++typedef grub_efi_status_t ++(*grub_efi_service_binding_destroy_child) (struct grub_efi_service_binding *this, ++ grub_efi_handle_t *child_handle); ++ ++typedef struct grub_efi_service_binding ++{ ++ grub_efi_service_binding_create_child create_child; ++ grub_efi_service_binding_destroy_child destroy_child; ++} grub_efi_service_binding_t; ++ + struct grub_efi_open_protocol_information_entry + { + grub_efi_handle_t agent_handle; +@@ -1549,23 +1594,27 @@ typedef struct grub_efi_pxe_tftp_error + grub_efi_char8_t error_string[127]; + } grub_efi_pxe_tftp_error_t; + +-typedef struct { +- grub_uint8_t addr[4]; +-} grub_efi_pxe_ipv4_address_t; ++typedef grub_efi_uint16_t grub_efi_pxe_base_code_udp_port_t; + +-typedef struct { +- grub_uint8_t addr[16]; +-} grub_efi_pxe_ipv6_address_t; ++typedef enum { ++ GRUB_EFI_PXE_BASE_CODE_TFTP_FIRST, ++ GRUB_EFI_PXE_BASE_CODE_TFTP_GET_FILE_SIZE, ++ GRUB_EFI_PXE_BASE_CODE_TFTP_READ_FILE, ++ GRUB_EFI_PXE_BASE_CODE_TFTP_WRITE_FILE, ++ GRUB_EFI_PXE_BASE_CODE_TFTP_READ_DIRECTORY, ++ GRUB_EFI_PXE_BASE_CODE_MTFTP_GET_FILE_SIZE, ++ GRUB_EFI_PXE_BASE_CODE_MTFTP_READ_FILE, ++ GRUB_EFI_PXE_BASE_CODE_MTFTP_READ_DIRECTORY, ++ GRUB_EFI_PXE_BASE_CODE_MTFTP_LAST ++} grub_efi_pxe_base_code_tftp_opcode_t; + + typedef struct { +- grub_uint8_t addr[32]; +-} grub_efi_pxe_mac_address_t; +- +-typedef union { +- grub_uint32_t addr[4]; +- grub_efi_pxe_ipv4_address_t v4; +- grub_efi_pxe_ipv6_address_t v6; +-} grub_efi_pxe_ip_address_t; ++ grub_efi_ip_address_t mcast_ip; ++ grub_efi_pxe_base_code_udp_port_t c_port; ++ grub_efi_pxe_base_code_udp_port_t s_port; ++ grub_efi_uint16_t listen_timeout; ++ grub_efi_uint16_t transmit_timeout; ++} grub_efi_pxe_base_code_mtftp_info_t; + + #define GRUB_EFI_PXE_BASE_CODE_MAX_IPCNT 8 + typedef struct grub_efi_pxe_ip_filter +@@ -1632,17 +1681,31 @@ typedef struct grub_efi_pxe_mode + typedef struct grub_efi_pxe + { + grub_uint64_t rev; +- void (*start) (void); ++ grub_efi_status_t (*start) (struct grub_efi_pxe *this, grub_efi_boolean_t use_ipv6); + void (*stop) (void); +- void (*dhcp) (void); ++ grub_efi_status_t (*dhcp) (struct grub_efi_pxe *this, ++ grub_efi_boolean_t sort_offers); + void (*discover) (void); +- void (*mftp) (void); ++ grub_efi_status_t (*mtftp) (struct grub_efi_pxe *this, ++ grub_efi_pxe_base_code_tftp_opcode_t operation, ++ void *buffer_ptr, ++ grub_efi_boolean_t overwrite, ++ grub_efi_uint64_t *buffer_size, ++ grub_efi_uintn_t *block_size, ++ grub_efi_pxe_ip_address_t *server_ip, ++ //grub_efi_ip_address_t *server_ip, ++ grub_efi_char8_t *filename, ++ grub_efi_pxe_base_code_mtftp_info_t *info, ++ grub_efi_boolean_t dont_use_buffer); + void (*udpwrite) (void); + void (*udpread) (void); + void (*setipfilter) (void); + void (*arp) (void); + void (*setparams) (void); +- void (*setstationip) (void); ++ grub_efi_status_t (*set_station_ip) (struct grub_efi_pxe *this, ++ grub_efi_pxe_ip_address_t *new_station_ip, ++ grub_efi_pxe_ip_address_t *new_subnet_mask); ++ //void (*setstationip) (void); + void (*setpackets) (void); + struct grub_efi_pxe_mode *mode; + } grub_efi_pxe_t; +@@ -1884,6 +1947,44 @@ struct grub_efi_ip4_config2_protocol + }; + typedef struct grub_efi_ip4_config2_protocol grub_efi_ip4_config2_protocol_t; + ++struct grub_efi_ip4_route_table { ++ grub_efi_ipv4_address_t subnet_address; ++ grub_efi_ipv4_address_t subnet_mask; ++ grub_efi_ipv4_address_t gateway_address; ++}; ++ ++typedef struct grub_efi_ip4_route_table grub_efi_ip4_route_table_t; ++ ++#define GRUB_EFI_IP4_CONFIG2_INTERFACE_INFO_NAME_SIZE 32 ++ ++struct grub_efi_ip4_config2_interface_info { ++ grub_efi_char16_t name[GRUB_EFI_IP4_CONFIG2_INTERFACE_INFO_NAME_SIZE]; ++ grub_efi_uint8_t if_type; ++ grub_efi_uint32_t hw_address_size; ++ grub_efi_mac_address_t hw_address; ++ grub_efi_ipv4_address_t station_address; ++ grub_efi_ipv4_address_t subnet_mask; ++ grub_efi_uint32_t route_table_size; ++ grub_efi_ip4_route_table_t *route_table; ++}; ++ ++typedef struct grub_efi_ip4_config2_interface_info grub_efi_ip4_config2_interface_info_t; ++ ++enum grub_efi_ip4_config2_policy { ++ GRUB_EFI_IP4_CONFIG2_POLICY_STATIC, ++ GRUB_EFI_IP4_CONFIG2_POLICY_DHCP, ++ GRUB_EFI_IP4_CONFIG2_POLICY_MAX ++}; ++ ++typedef enum grub_efi_ip4_config2_policy grub_efi_ip4_config2_policy_t; ++ ++struct grub_efi_ip4_config2_manual_address { ++ grub_efi_ipv4_address_t address; ++ grub_efi_ipv4_address_t subnet_mask; ++}; ++ ++typedef struct grub_efi_ip4_config2_manual_address grub_efi_ip4_config2_manual_address_t; ++ + enum grub_efi_ip6_config_data_type { + GRUB_EFI_IP6_CONFIG_DATA_TYPE_INTERFACEINFO, + GRUB_EFI_IP6_CONFIG_DATA_TYPE_ALT_INTERFACEID, +@@ -1918,6 +2019,49 @@ struct grub_efi_ip6_config_protocol + }; + typedef struct grub_efi_ip6_config_protocol grub_efi_ip6_config_protocol_t; + ++enum grub_efi_ip6_config_policy { ++ GRUB_EFI_IP6_CONFIG_POLICY_MANUAL, ++ GRUB_EFI_IP6_CONFIG_POLICY_AUTOMATIC ++}; ++typedef enum grub_efi_ip6_config_policy grub_efi_ip6_config_policy_t; ++ ++struct grub_efi_ip6_address_info { ++ grub_efi_ipv6_address_t address; ++ grub_efi_uint8_t prefix_length; ++}; ++typedef struct grub_efi_ip6_address_info grub_efi_ip6_address_info_t; ++ ++struct grub_efi_ip6_route_table { ++ grub_efi_pxe_ipv6_address_t gateway; ++ grub_efi_pxe_ipv6_address_t destination; ++ grub_efi_uint8_t prefix_length; ++}; ++typedef struct grub_efi_ip6_route_table grub_efi_ip6_route_table_t; ++ ++struct grub_efi_ip6_config_interface_info { ++ grub_efi_char16_t name[32]; ++ grub_efi_uint8_t if_type; ++ grub_efi_uint32_t hw_address_size; ++ grub_efi_mac_address_t hw_address; ++ grub_efi_uint32_t address_info_count; ++ grub_efi_ip6_address_info_t *address_info; ++ grub_efi_uint32_t route_count; ++ grub_efi_ip6_route_table_t *route_table; ++}; ++typedef struct grub_efi_ip6_config_interface_info grub_efi_ip6_config_interface_info_t; ++ ++struct grub_efi_ip6_config_dup_addr_detect_transmits { ++ grub_efi_uint32_t dup_addr_detect_transmits; ++}; ++typedef struct grub_efi_ip6_config_dup_addr_detect_transmits grub_efi_ip6_config_dup_addr_detect_transmits_t; ++ ++struct grub_efi_ip6_config_manual_address { ++ grub_efi_ipv6_address_t address; ++ grub_efi_boolean_t is_anycast; ++ grub_efi_uint8_t prefix_length; ++}; ++typedef struct grub_efi_ip6_config_manual_address grub_efi_ip6_config_manual_address_t; ++ + #if (GRUB_TARGET_SIZEOF_VOID_P == 4) || defined (__ia64__) \ + || defined (__aarch64__) || defined (__MINGW64__) || defined (__CYGWIN__) + +diff --git a/include/grub/efi/dhcp.h b/include/grub/efi/dhcp.h +new file mode 100644 +index 00000000000..fdb88eb810e +--- /dev/null ++++ b/include/grub/efi/dhcp.h +@@ -0,0 +1,343 @@ ++#ifndef GRUB_EFI_DHCP_HEADER ++#define GRUB_EFI_DHCP_HEADER 1 ++ ++#define GRUB_EFI_DHCP4_SERVICE_BINDING_PROTOCOL_GUID \ ++ { 0x9d9a39d8, 0xbd42, 0x4a73, \ ++ { 0xa4, 0xd5, 0x8e, 0xe9, 0x4b, 0xe1, 0x13, 0x80 } \ ++ } ++ ++#define GRUB_EFI_DHCP4_PROTOCOL_GUID \ ++ { 0x8a219718, 0x4ef5, 0x4761, \ ++ { 0x91, 0xc8, 0xc0, 0xf0, 0x4b, 0xda, 0x9e, 0x56 } \ ++ } ++ ++#define GRUB_EFI_DHCP6_SERVICE_BINDING_PROTOCOL_GUID \ ++ { 0x9fb9a8a1, 0x2f4a, 0x43a6, \ ++ { 0x88, 0x9c, 0xd0, 0xf7, 0xb6, 0xc4 ,0x7a, 0xd5 } \ ++ } ++ ++#define GRUB_EFI_DHCP6_PROTOCOL_GUID \ ++ { 0x87c8bad7, 0x595, 0x4053, \ ++ { 0x82, 0x97, 0xde, 0xde, 0x39, 0x5f, 0x5d, 0x5b } \ ++ } ++ ++typedef struct grub_efi_dhcp4_protocol grub_efi_dhcp4_protocol_t; ++ ++enum grub_efi_dhcp4_state { ++ GRUB_EFI_DHCP4_STOPPED, ++ GRUB_EFI_DHCP4_INIT, ++ GRUB_EFI_DHCP4_SELECTING, ++ GRUB_EFI_DHCP4_REQUESTING, ++ GRUB_EFI_DHCP4_BOUND, ++ GRUB_EFI_DHCP4_RENEWING, ++ GRUB_EFI_DHCP4_REBINDING, ++ GRUB_EFI_DHCP4_INIT_REBOOT, ++ GRUB_EFI_DHCP4_REBOOTING ++}; ++ ++typedef enum grub_efi_dhcp4_state grub_efi_dhcp4_state_t; ++ ++struct grub_efi_dhcp4_header { ++ grub_efi_uint8_t op_code; ++ grub_efi_uint8_t hw_type; ++ grub_efi_uint8_t hw_addr_len; ++ grub_efi_uint8_t hops; ++ grub_efi_uint32_t xid; ++ grub_efi_uint16_t seconds; ++ grub_efi_uint16_t reserved; ++ grub_efi_ipv4_address_t client_addr; ++ grub_efi_ipv4_address_t your_addr; ++ grub_efi_ipv4_address_t server_addr; ++ grub_efi_ipv4_address_t gateway_addr; ++ grub_efi_uint8_t client_hw_addr[16]; ++ grub_efi_char8_t server_name[64]; ++ grub_efi_char8_t boot_file_name[128]; ++} GRUB_PACKED; ++ ++typedef struct grub_efi_dhcp4_header grub_efi_dhcp4_header_t; ++ ++struct grub_efi_dhcp4_packet { ++ grub_efi_uint32_t size; ++ grub_efi_uint32_t length; ++ struct { ++ grub_efi_dhcp4_header_t header; ++ grub_efi_uint32_t magik; ++ grub_efi_uint8_t option[1]; ++ } dhcp4; ++} GRUB_PACKED; ++ ++typedef struct grub_efi_dhcp4_packet grub_efi_dhcp4_packet_t; ++ ++struct grub_efi_dhcp4_listen_point { ++ grub_efi_ipv4_address_t listen_address; ++ grub_efi_ipv4_address_t subnet_mask; ++ grub_efi_uint16_t listen_port; ++}; ++ ++typedef struct grub_efi_dhcp4_listen_point grub_efi_dhcp4_listen_point_t; ++ ++struct grub_efi_dhcp4_transmit_receive_token { ++ grub_efi_status_t status; ++ grub_efi_event_t completion_event; ++ grub_efi_ipv4_address_t remote_address; ++ grub_efi_uint16_t remote_port; ++ grub_efi_ipv4_address_t gateway_address; ++ grub_efi_uint32_t listen_point_count; ++ grub_efi_dhcp4_listen_point_t *listen_points; ++ grub_efi_uint32_t timeout_value; ++ grub_efi_dhcp4_packet_t *packet; ++ grub_efi_uint32_t response_count; ++ grub_efi_dhcp4_packet_t *response_list; ++}; ++ ++typedef struct grub_efi_dhcp4_transmit_receive_token grub_efi_dhcp4_transmit_receive_token_t; ++ ++enum grub_efi_dhcp4_event { ++ GRUB_EFI_DHCP4_SEND_DISCOVER = 0X01, ++ GRUB_EFI_DHCP4_RCVD_OFFER, ++ GRUB_EFI_DHCP4_SELECT_OFFER, ++ GRUB_EFI_DHCP4_SEND_REQUEST, ++ GRUB_EFI_DHCP4_RCVD_ACK, ++ GRUB_EFI_DHCP4_RCVD_NAK, ++ GRUB_EFI_DHCP4_SEND_DECLINE, ++ GRUB_EFI_DHCP4_BOUND_COMPLETED, ++ GRUB_EFI_DHCP4_ENTER_RENEWING, ++ GRUB_EFI_DHCP4_ENTER_REBINDING, ++ GRUB_EFI_DHCP4_ADDRESS_LOST, ++ GRUB_EFI_DHCP4_FAIL ++}; ++ ++typedef enum grub_efi_dhcp4_event grub_efi_dhcp4_event_t; ++ ++struct grub_efi_dhcp4_packet_option { ++ grub_efi_uint8_t op_code; ++ grub_efi_uint8_t length; ++ grub_efi_uint8_t data[1]; ++} GRUB_PACKED; ++ ++typedef struct grub_efi_dhcp4_packet_option grub_efi_dhcp4_packet_option_t; ++ ++struct grub_efi_dhcp4_config_data { ++ grub_efi_uint32_t discover_try_count; ++ grub_efi_uint32_t *discover_timeout; ++ grub_efi_uint32_t request_try_count; ++ grub_efi_uint32_t *request_timeout; ++ grub_efi_ipv4_address_t client_address; ++ grub_efi_status_t (*dhcp4_callback) ( ++ grub_efi_dhcp4_protocol_t *this, ++ void *context, ++ grub_efi_dhcp4_state_t current_state, ++ grub_efi_dhcp4_event_t dhcp4_event, ++ grub_efi_dhcp4_packet_t *packet, ++ grub_efi_dhcp4_packet_t **new_packet ++ ); ++ void *callback_context; ++ grub_efi_uint32_t option_count; ++ grub_efi_dhcp4_packet_option_t **option_list; ++}; ++ ++typedef struct grub_efi_dhcp4_config_data grub_efi_dhcp4_config_data_t; ++ ++struct grub_efi_dhcp4_mode_data { ++ grub_efi_dhcp4_state_t state; ++ grub_efi_dhcp4_config_data_t config_data; ++ grub_efi_ipv4_address_t client_address; ++ grub_efi_mac_address_t client_mac_address; ++ grub_efi_ipv4_address_t server_address; ++ grub_efi_ipv4_address_t router_address; ++ grub_efi_ipv4_address_t subnet_mask; ++ grub_efi_uint32_t lease_time; ++ grub_efi_dhcp4_packet_t *reply_packet; ++}; ++ ++typedef struct grub_efi_dhcp4_mode_data grub_efi_dhcp4_mode_data_t; ++ ++struct grub_efi_dhcp4_protocol { ++ grub_efi_status_t (*get_mode_data) (grub_efi_dhcp4_protocol_t *this, ++ grub_efi_dhcp4_mode_data_t *dhcp4_mode_data); ++ grub_efi_status_t (*configure) (grub_efi_dhcp4_protocol_t *this, ++ grub_efi_dhcp4_config_data_t *dhcp4_cfg_data); ++ grub_efi_status_t (*start) (grub_efi_dhcp4_protocol_t *this, ++ grub_efi_event_t completion_event); ++ grub_efi_status_t (*renew_rebind) (grub_efi_dhcp4_protocol_t *this, ++ grub_efi_boolean_t rebind_request, ++ grub_efi_event_t completion_event); ++ grub_efi_status_t (*release) (grub_efi_dhcp4_protocol_t *this); ++ grub_efi_status_t (*stop) (grub_efi_dhcp4_protocol_t *this); ++ grub_efi_status_t (*build) (grub_efi_dhcp4_protocol_t *this, ++ grub_efi_dhcp4_packet_t *seed_packet, ++ grub_efi_uint32_t delete_count, ++ grub_efi_uint8_t *delete_list, ++ grub_efi_uint32_t append_count, ++ grub_efi_dhcp4_packet_option_t *append_list[], ++ grub_efi_dhcp4_packet_t **new_packet); ++ grub_efi_status_t (*transmit_receive) (grub_efi_dhcp4_protocol_t *this, ++ grub_efi_dhcp4_transmit_receive_token_t *token); ++ grub_efi_status_t (*parse) (grub_efi_dhcp4_protocol_t *this, ++ grub_efi_dhcp4_packet_t *packet, ++ grub_efi_uint32_t *option_count, ++ grub_efi_dhcp4_packet_option_t *packet_option_list[]); ++}; ++ ++typedef struct grub_efi_dhcp6_protocol grub_efi_dhcp6_protocol_t; ++ ++struct grub_efi_dhcp6_retransmission { ++ grub_efi_uint32_t irt; ++ grub_efi_uint32_t mrc; ++ grub_efi_uint32_t mrt; ++ grub_efi_uint32_t mrd; ++}; ++ ++typedef struct grub_efi_dhcp6_retransmission grub_efi_dhcp6_retransmission_t; ++ ++enum grub_efi_dhcp6_event { ++ GRUB_EFI_DHCP6_SEND_SOLICIT, ++ GRUB_EFI_DHCP6_RCVD_ADVERTISE, ++ GRUB_EFI_DHCP6_SELECT_ADVERTISE, ++ GRUB_EFI_DHCP6_SEND_REQUEST, ++ GRUB_EFI_DHCP6_RCVD_REPLY, ++ GRUB_EFI_DHCP6_RCVD_RECONFIGURE, ++ GRUB_EFI_DHCP6_SEND_DECLINE, ++ GRUB_EFI_DHCP6_SEND_CONFIRM, ++ GRUB_EFI_DHCP6_SEND_RELEASE, ++ GRUB_EFI_DHCP6_SEND_RENEW, ++ GRUB_EFI_DHCP6_SEND_REBIND ++}; ++ ++typedef enum grub_efi_dhcp6_event grub_efi_dhcp6_event_t; ++ ++struct grub_efi_dhcp6_packet_option { ++ grub_efi_uint16_t op_code; ++ grub_efi_uint16_t op_len; ++ grub_efi_uint8_t data[1]; ++} GRUB_PACKED; ++ ++typedef struct grub_efi_dhcp6_packet_option grub_efi_dhcp6_packet_option_t; ++ ++struct grub_efi_dhcp6_header { ++ grub_efi_uint32_t transaction_id:24; ++ grub_efi_uint32_t message_type:8; ++} GRUB_PACKED; ++ ++typedef struct grub_efi_dhcp6_header grub_efi_dhcp6_header_t; ++ ++struct grub_efi_dhcp6_packet { ++ grub_efi_uint32_t size; ++ grub_efi_uint32_t length; ++ struct { ++ grub_efi_dhcp6_header_t header; ++ grub_efi_uint8_t option[1]; ++ } dhcp6; ++} GRUB_PACKED; ++ ++typedef struct grub_efi_dhcp6_packet grub_efi_dhcp6_packet_t; ++ ++struct grub_efi_dhcp6_ia_address { ++ grub_efi_ipv6_address_t ip_address; ++ grub_efi_uint32_t preferred_lifetime; ++ grub_efi_uint32_t valid_lifetime; ++}; ++ ++typedef struct grub_efi_dhcp6_ia_address grub_efi_dhcp6_ia_address_t; ++ ++enum grub_efi_dhcp6_state { ++ GRUB_EFI_DHCP6_INIT, ++ GRUB_EFI_DHCP6_SELECTING, ++ GRUB_EFI_DHCP6_REQUESTING, ++ GRUB_EFI_DHCP6_DECLINING, ++ GRUB_EFI_DHCP6_CONFIRMING, ++ GRUB_EFI_DHCP6_RELEASING, ++ GRUB_EFI_DHCP6_BOUND, ++ GRUB_EFI_DHCP6_RENEWING, ++ GRUB_EFI_DHCP6_REBINDING ++}; ++ ++typedef enum grub_efi_dhcp6_state grub_efi_dhcp6_state_t; ++ ++#define GRUB_EFI_DHCP6_IA_TYPE_NA 3 ++#define GRUB_EFI_DHCP6_IA_TYPE_TA 4 ++ ++struct grub_efi_dhcp6_ia_descriptor { ++ grub_efi_uint16_t type; ++ grub_efi_uint32_t ia_id; ++}; ++ ++typedef struct grub_efi_dhcp6_ia_descriptor grub_efi_dhcp6_ia_descriptor_t; ++ ++struct grub_efi_dhcp6_ia { ++ grub_efi_dhcp6_ia_descriptor_t descriptor; ++ grub_efi_dhcp6_state_t state; ++ grub_efi_dhcp6_packet_t *reply_packet; ++ grub_efi_uint32_t ia_address_count; ++ grub_efi_dhcp6_ia_address_t ia_address[1]; ++}; ++ ++typedef struct grub_efi_dhcp6_ia grub_efi_dhcp6_ia_t; ++ ++struct grub_efi_dhcp6_duid { ++ grub_efi_uint16_t length; ++ grub_efi_uint8_t duid[1]; ++}; ++ ++typedef struct grub_efi_dhcp6_duid grub_efi_dhcp6_duid_t; ++ ++struct grub_efi_dhcp6_mode_data { ++ grub_efi_dhcp6_duid_t *client_id; ++ grub_efi_dhcp6_ia_t *ia; ++}; ++ ++typedef struct grub_efi_dhcp6_mode_data grub_efi_dhcp6_mode_data_t; ++ ++struct grub_efi_dhcp6_config_data { ++ grub_efi_status_t (*dhcp6_callback) (grub_efi_dhcp6_protocol_t this, ++ void *context, ++ grub_efi_dhcp6_state_t current_state, ++ grub_efi_dhcp6_event_t dhcp6_event, ++ grub_efi_dhcp6_packet_t *packet, ++ grub_efi_dhcp6_packet_t **new_packet); ++ void *callback_context; ++ grub_efi_uint32_t option_count; ++ grub_efi_dhcp6_packet_option_t **option_list; ++ grub_efi_dhcp6_ia_descriptor_t ia_descriptor; ++ grub_efi_event_t ia_info_event; ++ grub_efi_boolean_t reconfigure_accept; ++ grub_efi_boolean_t rapid_commit; ++ grub_efi_dhcp6_retransmission_t *solicit_retransmission; ++}; ++ ++typedef struct grub_efi_dhcp6_config_data grub_efi_dhcp6_config_data_t; ++ ++struct grub_efi_dhcp6_protocol { ++ grub_efi_status_t (*get_mode_data) (grub_efi_dhcp6_protocol_t *this, ++ grub_efi_dhcp6_mode_data_t *dhcp6_mode_data, ++ grub_efi_dhcp6_config_data_t *dhcp6_config_data); ++ grub_efi_status_t (*configure) (grub_efi_dhcp6_protocol_t *this, ++ grub_efi_dhcp6_config_data_t *dhcp6_cfg_data); ++ grub_efi_status_t (*start) (grub_efi_dhcp6_protocol_t *this); ++ grub_efi_status_t (*info_request) (grub_efi_dhcp6_protocol_t *this, ++ grub_efi_boolean_t send_client_id, ++ grub_efi_dhcp6_packet_option_t *option_request, ++ grub_efi_uint32_t option_count, ++ grub_efi_dhcp6_packet_option_t *option_list[], ++ grub_efi_dhcp6_retransmission_t *retransmission, ++ grub_efi_event_t timeout_event, ++ grub_efi_status_t (*reply_callback) (grub_efi_dhcp6_protocol_t *this, ++ void *context, ++ grub_efi_dhcp6_packet_t *packet), ++ void *callback_context); ++ grub_efi_status_t (*renew_rebind) (grub_efi_dhcp6_protocol_t *this, ++ grub_efi_boolean_t rebind_request); ++ grub_efi_status_t (*decline) (grub_efi_dhcp6_protocol_t *this, ++ grub_efi_uint32_t address_count, ++ grub_efi_ipv6_address_t *addresses); ++ grub_efi_status_t (*release) (grub_efi_dhcp6_protocol_t *this, ++ grub_efi_uint32_t address_count, ++ grub_efi_ipv6_address_t *addresses); ++ grub_efi_status_t (*stop) (grub_efi_dhcp6_protocol_t *this); ++ grub_efi_status_t (*parse) (grub_efi_dhcp6_protocol_t *this, ++ grub_efi_dhcp6_packet_t *packet, ++ grub_efi_uint32_t *option_count, ++ grub_efi_dhcp6_packet_option_t *packet_option_list[]); ++}; ++ ++#endif /* ! GRUB_EFI_DHCP_HEADER */ +diff --git a/include/grub/efi/http.h b/include/grub/efi/http.h +new file mode 100644 +index 00000000000..c5e9a89f505 +--- /dev/null ++++ b/include/grub/efi/http.h +@@ -0,0 +1,215 @@ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2006,2007,2008 Free Software Foundation, Inc. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++#ifndef GRUB_EFI_HTTP_HEADER ++#define GRUB_EFI_HTTP_HEADER 1 ++ ++#include ++#include ++#include ++ ++#define GRUB_EFI_HTTP_SERVICE_BINDING_PROTOCOL_GUID \ ++ { 0xbdc8e6af, 0xd9bc, 0x4379, \ ++ { 0xa7, 0x2a, 0xe0, 0xc4, 0xe7, 0x5d, 0xae, 0x1c } \ ++ } ++ ++#define GRUB_EFI_HTTP_PROTOCOL_GUID \ ++ { 0x7A59B29B, 0x910B, 0x4171, \ ++ { 0x82, 0x42, 0xA8, 0x5A, 0x0D, 0xF2, 0x5B, 0x5B } \ ++ } ++ ++#define EFIHTTP_WAIT_TIME 10000 // 10000ms = 10s ++#define EFIHTTP_RX_BUF_LEN 10240 ++ ++//****************************************** ++// Protocol Interface Structure ++//****************************************** ++struct grub_efi_http; ++ ++//****************************************** ++// EFI_HTTP_VERSION ++//****************************************** ++typedef enum { ++ GRUB_EFI_HTTPVERSION10, ++ GRUB_EFI_HTTPVERSION11, ++ GRUB_EFI_HTTPVERSIONUNSUPPORTED ++} grub_efi_http_version_t; ++ ++//****************************************** ++// EFI_HTTPv4_ACCESS_POINT ++//****************************************** ++typedef struct { ++ grub_efi_boolean_t use_default_address; ++ grub_efi_ipv4_address_t local_address; ++ grub_efi_ipv4_address_t local_subnet; ++ grub_efi_uint16_t local_port; ++} grub_efi_httpv4_access_point_t; ++ ++//****************************************** ++// EFI_HTTPv6_ACCESS_POINT ++//****************************************** ++typedef struct { ++ grub_efi_ipv6_address_t local_address; ++ grub_efi_uint16_t local_port; ++} grub_efi_httpv6_access_point_t; ++ ++//****************************************** ++// EFI_HTTP_CONFIG_DATA ++//****************************************** ++typedef struct { ++ grub_efi_http_version_t http_version; ++ grub_efi_uint32_t timeout_millisec; ++ grub_efi_boolean_t local_address_is_ipv6; ++ union { ++ grub_efi_httpv4_access_point_t *ipv4_node; ++ grub_efi_httpv6_access_point_t *ipv6_node; ++ } access_point; ++} grub_efi_http_config_data_t; ++ ++//****************************************** ++// EFI_HTTP_METHOD ++//****************************************** ++typedef enum { ++ GRUB_EFI_HTTPMETHODGET, ++ GRUB_EFI_HTTPMETHODPOST, ++ GRUB_EFI_HTTPMETHODPATCH, ++ GRUB_EFI_HTTPMETHODOPTIONS, ++ GRUB_EFI_HTTPMETHODCONNECT, ++ GRUB_EFI_HTTPMETHODHEAD, ++ GRUB_EFI_HTTPMETHODPUT, ++ GRUB_EFI_HTTPMETHODDELETE, ++ GRUB_EFI_HTTPMETHODTRACE, ++} grub_efi_http_method_t; ++ ++//****************************************** ++// EFI_HTTP_REQUEST_DATA ++//****************************************** ++typedef struct { ++ grub_efi_http_method_t method; ++ grub_efi_char16_t *url; ++} grub_efi_http_request_data_t; ++ ++typedef enum { ++ GRUB_EFI_HTTP_STATUS_UNSUPPORTED_STATUS = 0, ++ GRUB_EFI_HTTP_STATUS_100_CONTINUE, ++ GRUB_EFI_HTTP_STATUS_101_SWITCHING_PROTOCOLS, ++ GRUB_EFI_HTTP_STATUS_200_OK, ++ GRUB_EFI_HTTP_STATUS_201_CREATED, ++ GRUB_EFI_HTTP_STATUS_202_ACCEPTED, ++ GRUB_EFI_HTTP_STATUS_203_NON_AUTHORITATIVE_INFORMATION, ++ GRUB_EFI_HTTP_STATUS_204_NO_CONTENT, ++ GRUB_EFI_HTTP_STATUS_205_RESET_CONTENT, ++ GRUB_EFI_HTTP_STATUS_206_PARTIAL_CONTENT, ++ GRUB_EFI_HTTP_STATUS_300_MULTIPLE_CHIOCES, ++ GRUB_EFI_HTTP_STATUS_301_MOVED_PERMANENTLY, ++ GRUB_EFI_HTTP_STATUS_302_FOUND, ++ GRUB_EFI_HTTP_STATUS_303_SEE_OTHER, ++ GRUB_EFI_HTTP_STATUS_304_NOT_MODIFIED, ++ GRUB_EFI_HTTP_STATUS_305_USE_PROXY, ++ GRUB_EFI_HTTP_STATUS_307_TEMPORARY_REDIRECT, ++ GRUB_EFI_HTTP_STATUS_400_BAD_REQUEST, ++ GRUB_EFI_HTTP_STATUS_401_UNAUTHORIZED, ++ GRUB_EFI_HTTP_STATUS_402_PAYMENT_REQUIRED, ++ GRUB_EFI_HTTP_STATUS_403_FORBIDDEN, ++ GRUB_EFI_HTTP_STATUS_404_NOT_FOUND, ++ GRUB_EFI_HTTP_STATUS_405_METHOD_NOT_ALLOWED, ++ GRUB_EFI_HTTP_STATUS_406_NOT_ACCEPTABLE, ++ GRUB_EFI_HTTP_STATUS_407_PROXY_AUTHENTICATION_REQUIRED, ++ GRUB_EFI_HTTP_STATUS_408_REQUEST_TIME_OUT, ++ GRUB_EFI_HTTP_STATUS_409_CONFLICT, ++ GRUB_EFI_HTTP_STATUS_410_GONE, ++ GRUB_EFI_HTTP_STATUS_411_LENGTH_REQUIRED, ++ GRUB_EFI_HTTP_STATUS_412_PRECONDITION_FAILED, ++ GRUB_EFI_HTTP_STATUS_413_REQUEST_ENTITY_TOO_LARGE, ++ GRUB_EFI_HTTP_STATUS_414_REQUEST_URI_TOO_LARGE, ++ GRUB_EFI_HTTP_STATUS_415_UNSUPPORTED_MEDIA_TYPE, ++ GRUB_EFI_HTTP_STATUS_416_REQUESTED_RANGE_NOT_SATISFIED, ++ GRUB_EFI_HTTP_STATUS_417_EXPECTATION_FAILED, ++ GRUB_EFI_HTTP_STATUS_500_INTERNAL_SERVER_ERROR, ++ GRUB_EFI_HTTP_STATUS_501_NOT_IMPLEMENTED, ++ GRUB_EFI_HTTP_STATUS_502_BAD_GATEWAY, ++ GRUB_EFI_HTTP_STATUS_503_SERVICE_UNAVAILABLE, ++ GRUB_EFI_HTTP_STATUS_504_GATEWAY_TIME_OUT, ++ GRUB_EFI_HTTP_STATUS_505_HTTP_VERSION_NOT_SUPPORTED ++} grub_efi_http_status_code_t; ++ ++//****************************************** ++// EFI_HTTP_RESPONSE_DATA ++//****************************************** ++typedef struct { ++ grub_efi_http_status_code_t status_code; ++} grub_efi_http_response_data_t; ++ ++//****************************************** ++// EFI_HTTP_HEADER ++//****************************************** ++typedef struct { ++ grub_efi_char8_t *field_name; ++ grub_efi_char8_t *field_value; ++} grub_efi_http_header_t; ++ ++//****************************************** ++// EFI_HTTP_MESSAGE ++//****************************************** ++typedef struct { ++ union { ++ grub_efi_http_request_data_t *request; ++ grub_efi_http_response_data_t *response; ++ } data; ++ grub_efi_uint32_t header_count; ++ grub_efi_http_header_t *headers; ++ grub_efi_uint32_t body_length; ++ void *body; ++} grub_efi_http_message_t; ++ ++//****************************************** ++// EFI_HTTP_TOKEN ++//****************************************** ++typedef struct { ++ grub_efi_event_t event; ++ grub_efi_status_t status; ++ grub_efi_http_message_t *message; ++} grub_efi_http_token_t; ++ ++struct grub_efi_http { ++ grub_efi_status_t ++ (*get_mode_data) (struct grub_efi_http *this, ++ grub_efi_http_config_data_t *http_config_data); ++ ++ grub_efi_status_t ++ (*configure) (struct grub_efi_http *this, ++ grub_efi_http_config_data_t *http_config_data); ++ ++ grub_efi_status_t ++ (*request) (struct grub_efi_http *this, ++ grub_efi_http_token_t *token); ++ ++ grub_efi_status_t ++ (*cancel) (struct grub_efi_http *this, ++ grub_efi_http_token_t *token); ++ ++ grub_efi_status_t ++ (*response) (struct grub_efi_http *this, ++ grub_efi_http_token_t *token); ++ ++ grub_efi_status_t ++ (*poll) (struct grub_efi_http *this); ++}; ++typedef struct grub_efi_http grub_efi_http_t; ++ ++#endif /* !GRUB_EFI_HTTP_HEADER */ +diff --git a/include/grub/net/efi.h b/include/grub/net/efi.h +new file mode 100644 +index 00000000000..de90d223e8e +--- /dev/null ++++ b/include/grub/net/efi.h +@@ -0,0 +1,144 @@ ++#ifndef GRUB_NET_EFI_HEADER ++#define GRUB_NET_EFI_HEADER 1 ++ ++#include ++#include ++#include ++#include ++ ++typedef struct grub_efi_net_interface grub_efi_net_interface_t; ++typedef struct grub_efi_net_ip_config grub_efi_net_ip_config_t; ++typedef union grub_efi_net_ip_address grub_efi_net_ip_address_t; ++typedef struct grub_efi_net_ip_manual_address grub_efi_net_ip_manual_address_t; ++ ++struct grub_efi_net_interface ++{ ++ char *name; ++ int prefer_ip6; ++ struct grub_efi_net_device *dev; ++ struct grub_efi_net_io *io; ++ grub_efi_net_ip_config_t *ip_config; ++ int io_type; ++ struct grub_efi_net_interface *next; ++}; ++ ++#define efi_net_interface_get_hw_address(inf) inf->ip_config->get_hw_address (inf->dev) ++#define efi_net_interface_get_address(inf) inf->ip_config->get_address (inf->dev) ++#define efi_net_interface_get_route_table(inf) inf->ip_config->get_route_table (inf->dev) ++#define efi_net_interface_set_address(inf, addr, with_subnet) inf->ip_config->set_address (inf->dev, addr, with_subnet) ++#define efi_net_interface_set_gateway(inf, addr) inf->ip_config->set_gateway (inf->dev, addr) ++#define efi_net_interface_set_dns(inf, addr) inf->ip_config->set_dns (inf->dev, addr) ++ ++struct grub_efi_net_ip_config ++{ ++ char * (*get_hw_address) (struct grub_efi_net_device *dev); ++ char * (*get_address) (struct grub_efi_net_device *dev); ++ char ** (*get_route_table) (struct grub_efi_net_device *dev); ++ grub_efi_net_interface_t * (*best_interface) (struct grub_efi_net_device *dev, grub_efi_net_ip_address_t *address); ++ int (*set_address) (struct grub_efi_net_device *dev, grub_efi_net_ip_manual_address_t *net_ip, int with_subnet); ++ int (*set_gateway) (struct grub_efi_net_device *dev, grub_efi_net_ip_address_t *address); ++ int (*set_dns) (struct grub_efi_net_device *dev, grub_efi_net_ip_address_t *dns); ++}; ++ ++union grub_efi_net_ip_address ++{ ++ grub_efi_ipv4_address_t ip4; ++ grub_efi_ipv6_address_t ip6; ++}; ++ ++struct grub_efi_net_ip_manual_address ++{ ++ int is_ip6; ++ union ++ { ++ grub_efi_ip4_config2_manual_address_t ip4; ++ grub_efi_ip6_config_manual_address_t ip6; ++ }; ++}; ++ ++struct grub_efi_net_device ++{ ++ grub_efi_handle_t handle; ++ grub_efi_ip4_config2_protocol_t *ip4_config; ++ grub_efi_ip6_config_protocol_t *ip6_config; ++ grub_efi_handle_t http_handle; ++ grub_efi_http_t *http; ++ grub_efi_handle_t ip4_pxe_handle; ++ grub_efi_pxe_t *ip4_pxe; ++ grub_efi_handle_t ip6_pxe_handle; ++ grub_efi_pxe_t *ip6_pxe; ++ grub_efi_handle_t dhcp4_handle; ++ grub_efi_dhcp4_protocol_t *dhcp4; ++ grub_efi_handle_t dhcp6_handle; ++ grub_efi_dhcp6_protocol_t *dhcp6; ++ char *card_name; ++ grub_efi_net_interface_t *net_interfaces; ++ struct grub_efi_net_device *next; ++}; ++ ++struct grub_efi_net_io ++{ ++ void (*configure) (struct grub_efi_net_device *dev, int prefer_ip6); ++ grub_err_t (*open) (struct grub_efi_net_device *dev, ++ int prefer_ip6, ++ grub_file_t file, ++ const char *filename, ++ int type); ++ grub_ssize_t (*read) (struct grub_efi_net_device *dev, ++ int prefer_ip6, ++ grub_file_t file, ++ char *buf, ++ grub_size_t len); ++ grub_err_t (*close) (struct grub_efi_net_device *dev, ++ int prefer_ip6, ++ grub_file_t file); ++}; ++ ++extern struct grub_efi_net_device *net_devices; ++ ++extern struct grub_efi_net_io io_http; ++extern struct grub_efi_net_io io_pxe; ++ ++extern grub_efi_net_ip_config_t *efi_net_ip4_config; ++extern grub_efi_net_ip_config_t *efi_net_ip6_config; ++ ++char * ++grub_efi_ip4_address_to_string (grub_efi_ipv4_address_t *address); ++ ++char * ++grub_efi_ip6_address_to_string (grub_efi_pxe_ipv6_address_t *address); ++ ++char * ++grub_efi_hw_address_to_string (grub_efi_uint32_t hw_address_size, grub_efi_mac_address_t hw_address); ++ ++int ++grub_efi_string_to_ip4_address (const char *val, grub_efi_ipv4_address_t *address, const char **rest); ++ ++int ++grub_efi_string_to_ip6_address (const char *val, grub_efi_ipv6_address_t *address, const char **rest); ++ ++char * ++grub_efi_ip6_interface_name (struct grub_efi_net_device *dev); ++ ++char * ++grub_efi_ip4_interface_name (struct grub_efi_net_device *dev); ++ ++grub_efi_net_interface_t * ++grub_efi_net_create_interface (struct grub_efi_net_device *dev, ++ const char *interface_name, ++ grub_efi_net_ip_manual_address_t *net_ip, ++ int has_subnet); ++ ++int grub_efi_net_fs_init (void); ++void grub_efi_net_fs_fini (void); ++int grub_efi_net_boot_from_https (void); ++int grub_efi_net_boot_from_opa (void); ++ ++extern grub_command_func_t grub_efi_net_list_routes; ++extern grub_command_func_t grub_efi_net_list_cards; ++extern grub_command_func_t grub_efi_net_list_addrs; ++extern grub_command_func_t grub_efi_net_add_addr; ++extern grub_command_func_t grub_efi_net_bootp; ++extern grub_command_func_t grub_efi_net_bootp6; ++ ++#endif /* ! GRUB_NET_EFI_HEADER */ diff --git a/0181-AUDIT-0-http-boot-tracker-bug.patch b/0181-AUDIT-0-http-boot-tracker-bug.patch new file mode 100644 index 00000000..3d8d96b3 --- /dev/null +++ b/0181-AUDIT-0-http-boot-tracker-bug.patch @@ -0,0 +1,62 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Sebastian Krahmer +Date: Tue, 28 Nov 2017 17:24:38 +0800 +Subject: [PATCH] AUDIT-0: http boot tracker bug + +Fixing a memory leak in case of error, and a integer overflow, leading to a +heap overflow due to overly large chunk sizes. + +We need to check against some maximum value, otherwise values like 0xffffffff +will eventually lead in the allocation functions to small sized buffers, since +the len is rounded up to the next reasonable alignment. The following memcpy +will then smash the heap, leading to RCE. + +This is no big issue for pure http boot, since its going to execute an +untrusted kernel anyway, but it will break trusted boot scenarios, where only +signed code is allowed to be executed. + +Signed-off-by: Michael Chang +--- + grub-core/net/efi/net.c | 4 +++- + grub-core/net/http.c | 5 ++++- + 2 files changed, 7 insertions(+), 2 deletions(-) + +diff --git a/grub-core/net/efi/net.c b/grub-core/net/efi/net.c +index 9e0078ac1c6..2bf15447fd5 100644 +--- a/grub-core/net/efi/net.c ++++ b/grub-core/net/efi/net.c +@@ -645,8 +645,10 @@ grub_efihttp_chunk_read (grub_file_t file, char *buf, + + rd = efi_net_interface (read, file, chunk, sz); + +- if (rd <= 0) ++ if (rd <= 0) { ++ grub_free (chunk); + return rd; ++ } + + if (buf) + { +diff --git a/grub-core/net/http.c b/grub-core/net/http.c +index 00737c52750..c9c59690a98 100644 +--- a/grub-core/net/http.c ++++ b/grub-core/net/http.c +@@ -31,7 +31,8 @@ GRUB_MOD_LICENSE ("GPLv3+"); + + enum + { +- HTTP_PORT = 80 ++ HTTP_PORT = 80, ++ HTTP_MAX_CHUNK_SIZE = 0x80000000 + }; + + +@@ -78,6 +79,8 @@ parse_line (grub_file_t file, http_data_t data, char *ptr, grub_size_t len) + if (data->in_chunk_len == 2) + { + data->chunk_rem = grub_strtoul (ptr, 0, 16); ++ if (data->chunk_rem > HTTP_MAX_CHUNK_SIZE) ++ return GRUB_ERR_NET_PACKET_TOO_BIG; + grub_errno = GRUB_ERR_NONE; + if (data->chunk_rem == 0) + { diff --git a/0182-grub-core-video-efi_gop.c-Add-support-for-BLT_ONLY-a.patch b/0182-grub-core-video-efi_gop.c-Add-support-for-BLT_ONLY-a.patch new file mode 100644 index 00000000..33cde3ba --- /dev/null +++ b/0182-grub-core-video-efi_gop.c-Add-support-for-BLT_ONLY-a.patch @@ -0,0 +1,56 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Alexander Graf +Date: Wed, 1 Feb 2017 23:10:45 +0100 +Subject: [PATCH] grub-core/video/efi_gop.c: Add support for BLT_ONLY adapters + +EFI GOP has support for multiple different bitness types of frame buffers +and for a special "BLT only" type which is always defined to be RGBx. + +Because grub2 doesn't ever directly access the frame buffer but instead +only renders graphics via the BLT interface anyway, we can easily support +these adapters. + +The reason this has come up now is the emerging support for virtio-gpu +in OVMF. That adapter does not have the notion of a memory mapped frame +buffer and thus is BLT only. + +Signed-off-by: Alexander Graf +--- + grub-core/video/efi_gop.c | 2 ++ + include/grub/efi/graphics_output.h | 3 ++- + 2 files changed, 4 insertions(+), 1 deletion(-) + +diff --git a/grub-core/video/efi_gop.c b/grub-core/video/efi_gop.c +index 7f9d1c2dfa1..c9e40e8d4e9 100644 +--- a/grub-core/video/efi_gop.c ++++ b/grub-core/video/efi_gop.c +@@ -121,6 +121,7 @@ grub_video_gop_get_bpp (struct grub_efi_gop_mode_info *in) + { + case GRUB_EFI_GOT_BGRA8: + case GRUB_EFI_GOT_RGBA8: ++ case GRUB_EFI_GOT_BLT_ONLY: + return 32; + + case GRUB_EFI_GOT_BITMASK: +@@ -187,6 +188,7 @@ grub_video_gop_fill_real_mode_info (unsigned mode, + switch (in->pixel_format) + { + case GRUB_EFI_GOT_RGBA8: ++ case GRUB_EFI_GOT_BLT_ONLY: + out->red_mask_size = 8; + out->red_field_pos = 0; + out->green_mask_size = 8; +diff --git a/include/grub/efi/graphics_output.h b/include/grub/efi/graphics_output.h +index 12977741192..e4388127c66 100644 +--- a/include/grub/efi/graphics_output.h ++++ b/include/grub/efi/graphics_output.h +@@ -28,7 +28,8 @@ typedef enum + { + GRUB_EFI_GOT_RGBA8, + GRUB_EFI_GOT_BGRA8, +- GRUB_EFI_GOT_BITMASK ++ GRUB_EFI_GOT_BITMASK, ++ GRUB_EFI_GOT_BLT_ONLY, + } + grub_efi_gop_pixel_format_t; + diff --git a/0183-efi-uga-use-64-bit-for-fb_base.patch b/0183-efi-uga-use-64-bit-for-fb_base.patch new file mode 100644 index 00000000..bafcb648 --- /dev/null +++ b/0183-efi-uga-use-64-bit-for-fb_base.patch @@ -0,0 +1,105 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Andrei Borzenkov +Date: Wed, 16 May 2018 13:06:04 -0400 +Subject: [PATCH] efi/uga: use 64 bit for fb_base + +We get 64 bit from PCI BAR but then truncate by assigning to 32 bit. +Make sure to check that pointer does not overflow on 32 bit platform. + +Closes: 50931 +--- + grub-core/video/efi_uga.c | 31 ++++++++++++++++--------------- + 1 file changed, 16 insertions(+), 15 deletions(-) + +diff --git a/grub-core/video/efi_uga.c b/grub-core/video/efi_uga.c +index 044af1d20d3..97a607c01a5 100644 +--- a/grub-core/video/efi_uga.c ++++ b/grub-core/video/efi_uga.c +@@ -34,7 +34,7 @@ GRUB_MOD_LICENSE ("GPLv3+"); + + static grub_efi_guid_t uga_draw_guid = GRUB_EFI_UGA_DRAW_GUID; + static struct grub_efi_uga_draw_protocol *uga; +-static grub_uint32_t uga_fb; ++static grub_uint64_t uga_fb; + static grub_uint32_t uga_pitch; + + static struct +@@ -52,7 +52,7 @@ static struct + #define FBTEST_COUNT 8 + + static int +-find_line_len (grub_uint32_t *fb_base, grub_uint32_t *line_len) ++find_line_len (grub_uint64_t *fb_base, grub_uint32_t *line_len) + { + grub_uint32_t *base = (grub_uint32_t *) (grub_addr_t) *fb_base; + int i; +@@ -67,7 +67,7 @@ find_line_len (grub_uint32_t *fb_base, grub_uint32_t *line_len) + { + if ((base[j] & RGB_MASK) == RGB_MAGIC) + { +- *fb_base = (grub_uint32_t) (grub_addr_t) base; ++ *fb_base = (grub_uint64_t) (grub_addr_t) base; + *line_len = j << 2; + + return 1; +@@ -84,7 +84,7 @@ find_line_len (grub_uint32_t *fb_base, grub_uint32_t *line_len) + /* Context for find_framebuf. */ + struct find_framebuf_ctx + { +- grub_uint32_t *fb_base; ++ grub_uint64_t *fb_base; + grub_uint32_t *line_len; + int found; + }; +@@ -129,7 +129,9 @@ find_card (grub_pci_device_t dev, grub_pci_id_t pciid, void *data) + if (i == 5) + break; + +- old_bar2 = grub_pci_read (addr + 4); ++ i++; ++ addr += 4; ++ old_bar2 = grub_pci_read (addr); + } + else + old_bar2 = 0; +@@ -138,10 +140,15 @@ find_card (grub_pci_device_t dev, grub_pci_id_t pciid, void *data) + base64 <<= 32; + base64 |= (old_bar1 & GRUB_PCI_ADDR_MEM_MASK); + +- grub_dprintf ("fb", "%s(%d): 0x%llx\n", ++ grub_dprintf ("fb", "%s(%d): 0x%" PRIxGRUB_UINT64_T "\n", + ((old_bar1 & GRUB_PCI_ADDR_MEM_PREFETCH) ? +- "VMEM" : "MMIO"), i, +- (unsigned long long) base64); ++ "VMEM" : "MMIO"), type == GRUB_PCI_ADDR_MEM_TYPE_64 ? i - 1 : i, ++ base64); ++ ++#if GRUB_CPU_SIZEOF_VOID_P == 4 ++ if (old_bar2) ++ continue; ++#endif + + if ((old_bar1 & GRUB_PCI_ADDR_MEM_PREFETCH) && (! ctx->found)) + { +@@ -149,12 +156,6 @@ find_card (grub_pci_device_t dev, grub_pci_id_t pciid, void *data) + if (find_line_len (ctx->fb_base, ctx->line_len)) + ctx->found++; + } +- +- if (type == GRUB_PCI_ADDR_MEM_TYPE_64) +- { +- i++; +- addr += 4; +- } + } + } + +@@ -162,7 +163,7 @@ find_card (grub_pci_device_t dev, grub_pci_id_t pciid, void *data) + } + + static int +-find_framebuf (grub_uint32_t *fb_base, grub_uint32_t *line_len) ++find_framebuf (grub_uint64_t *fb_base, grub_uint32_t *line_len) + { + struct find_framebuf_ctx ctx = { + .fb_base = fb_base, diff --git a/0184-EFI-console-Do-not-set-text-mode-until-we-actually-n.patch b/0184-EFI-console-Do-not-set-text-mode-until-we-actually-n.patch new file mode 100644 index 00000000..20aadf66 --- /dev/null +++ b/0184-EFI-console-Do-not-set-text-mode-until-we-actually-n.patch @@ -0,0 +1,184 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Tue, 6 Mar 2018 17:11:15 +0100 +Subject: [PATCH] EFI: console: Do not set text-mode until we actually need it + +If we're running with a hidden menu we may never need text mode, so do not +change the video-mode to text until we actually need it. + +Signed-off-by: Hans de Goede +--- + grub-core/term/efi/console.c | 65 ++++++++++++++++++++++++++++++-------------- + 1 file changed, 44 insertions(+), 21 deletions(-) + +diff --git a/grub-core/term/efi/console.c b/grub-core/term/efi/console.c +index 4840cc59d3f..051633d71e9 100644 +--- a/grub-core/term/efi/console.c ++++ b/grub-core/term/efi/console.c +@@ -24,6 +24,11 @@ + #include + #include + ++static grub_err_t grub_prepare_for_text_output(struct grub_term_output *term); ++ ++static int text_mode_available = -1; ++static int text_colorstate = -1; ++ + static grub_uint32_t + map_char (grub_uint32_t c) + { +@@ -66,14 +71,14 @@ map_char (grub_uint32_t c) + } + + static void +-grub_console_putchar (struct grub_term_output *term __attribute__ ((unused)), ++grub_console_putchar (struct grub_term_output *term, + const struct grub_unicode_glyph *c) + { + grub_efi_char16_t str[2 + 30]; + grub_efi_simple_text_output_interface_t *o; + unsigned i, j; + +- if (grub_efi_is_finished) ++ if (grub_prepare_for_text_output (term)) + return; + + o = grub_efi_system_table->con_out; +@@ -223,14 +228,15 @@ grub_console_getkey (struct grub_term_input *term) + } + + static struct grub_term_coordinate +-grub_console_getwh (struct grub_term_output *term __attribute__ ((unused))) ++grub_console_getwh (struct grub_term_output *term) + { + grub_efi_simple_text_output_interface_t *o; + grub_efi_uintn_t columns, rows; + + o = grub_efi_system_table->con_out; +- if (grub_efi_is_finished || efi_call_4 (o->query_mode, o, o->mode->mode, +- &columns, &rows) != GRUB_EFI_SUCCESS) ++ if (grub_prepare_for_text_output (term) != GRUB_ERR_NONE || ++ efi_call_4 (o->query_mode, o, o->mode->mode, ++ &columns, &rows) != GRUB_EFI_SUCCESS) + { + /* Why does this fail? */ + columns = 80; +@@ -245,7 +251,7 @@ grub_console_getxy (struct grub_term_output *term __attribute__ ((unused))) + { + grub_efi_simple_text_output_interface_t *o; + +- if (grub_efi_is_finished) ++ if (grub_efi_is_finished || text_mode_available != 1) + return (struct grub_term_coordinate) { 0, 0 }; + + o = grub_efi_system_table->con_out; +@@ -253,12 +259,12 @@ grub_console_getxy (struct grub_term_output *term __attribute__ ((unused))) + } + + static void +-grub_console_gotoxy (struct grub_term_output *term __attribute__ ((unused)), ++grub_console_gotoxy (struct grub_term_output *term, + struct grub_term_coordinate pos) + { + grub_efi_simple_text_output_interface_t *o; + +- if (grub_efi_is_finished) ++ if (grub_prepare_for_text_output (term)) + return; + + o = grub_efi_system_table->con_out; +@@ -271,7 +277,7 @@ grub_console_cls (struct grub_term_output *term __attribute__ ((unused))) + grub_efi_simple_text_output_interface_t *o; + grub_efi_int32_t orig_attr; + +- if (grub_efi_is_finished) ++ if (grub_efi_is_finished || text_mode_available != 1) + return; + + o = grub_efi_system_table->con_out; +@@ -291,6 +297,12 @@ grub_console_setcolorstate (struct grub_term_output *term + if (grub_efi_is_finished) + return; + ++ if (text_mode_available != 1) { ++ /* Avoid "color_normal" environment writes causing a switch to textmode */ ++ text_colorstate = state; ++ return; ++ } ++ + o = grub_efi_system_table->con_out; + + switch (state) { +@@ -315,7 +327,7 @@ grub_console_setcursor (struct grub_term_output *term __attribute__ ((unused)), + { + grub_efi_simple_text_output_interface_t *o; + +- if (grub_efi_is_finished) ++ if (grub_efi_is_finished || text_mode_available != 1) + return; + + o = grub_efi_system_table->con_out; +@@ -323,18 +335,38 @@ grub_console_setcursor (struct grub_term_output *term __attribute__ ((unused)), + } + + static grub_err_t +-grub_efi_console_output_init (struct grub_term_output *term) ++grub_prepare_for_text_output(struct grub_term_output *term) + { +- grub_efi_set_text_mode (1); ++ if (grub_efi_is_finished) ++ return GRUB_ERR_BAD_DEVICE; ++ ++ if (text_mode_available != -1) ++ return text_mode_available ? 0 : GRUB_ERR_BAD_DEVICE; ++ ++ if (! grub_efi_set_text_mode (1)) ++ { ++ /* This really should never happen */ ++ grub_error (GRUB_ERR_BAD_DEVICE, "cannot set text mode"); ++ text_mode_available = 0; ++ return GRUB_ERR_BAD_DEVICE; ++ } ++ + grub_console_setcursor (term, 1); ++ if (text_colorstate != -1) ++ grub_console_setcolorstate (term, text_colorstate); ++ text_mode_available = 1; + return 0; + } + + static grub_err_t + grub_efi_console_output_fini (struct grub_term_output *term) + { ++ if (text_mode_available != 1) ++ return 0; ++ + grub_console_setcursor (term, 0); + grub_efi_set_text_mode (0); ++ text_mode_available = -1; + return 0; + } + +@@ -348,7 +380,6 @@ static struct grub_term_input grub_console_term_input = + static struct grub_term_output grub_console_term_output = + { + .name = "console", +- .init = grub_efi_console_output_init, + .fini = grub_efi_console_output_fini, + .putchar = grub_console_putchar, + .getwh = grub_console_getwh, +@@ -364,14 +395,6 @@ static struct grub_term_output grub_console_term_output = + void + grub_console_init (void) + { +- /* FIXME: it is necessary to consider the case where no console control +- is present but the default is already in text mode. */ +- if (! grub_efi_set_text_mode (1)) +- { +- grub_error (GRUB_ERR_BAD_DEVICE, "cannot set text mode"); +- return; +- } +- + grub_term_register_output ("console", &grub_console_term_output); + grub_term_register_input ("console", &grub_console_term_input); + } diff --git a/0185-EFI-console-Add-grub_console_read_key_stroke-helper-.patch b/0185-EFI-console-Add-grub_console_read_key_stroke-helper-.patch new file mode 100644 index 00000000..6da36b26 --- /dev/null +++ b/0185-EFI-console-Add-grub_console_read_key_stroke-helper-.patch @@ -0,0 +1,102 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Wed, 6 Jun 2018 15:54:44 +0200 +Subject: [PATCH] EFI: console: Add grub_console_read_key_stroke() helper + function + +This is a preparation patch for adding getkeystatus() support to the +EFI console terminal input driver. + +We can get modifier status through the simple_text_input read_key_stroke +method, but if a non-modifier key is (also) pressed the read_key_stroke +call will consume that key from the firmware's queue. + +The new grub_console_read_key_stroke() helper buffers upto 1 key-stroke. +If it has a non-modifier key buffered, it will return that one, if its +buffer is empty, it will fills its buffer by getting a new key-stroke. + +If called with consume=1 it will empty its buffer after copying the +key-data to the callers buffer, this is how getkey() will use it. + +If called with consume=0 it will keep the last key-stroke buffered, this +is how getkeystatus() will call it. This means that if a non-modifier +key gets pressed, repeated getkeystatus() calls will return the modifiers +of that key-press until it is consumed by a getkey() call. + +Signed-off-by: Hans de Goede +--- + grub-core/term/efi/console.c | 51 ++++++++++++++++++++++++++++++++++---------- + 1 file changed, 40 insertions(+), 11 deletions(-) + +diff --git a/grub-core/term/efi/console.c b/grub-core/term/efi/console.c +index 051633d71e9..3d36c5c701b 100644 +--- a/grub-core/term/efi/console.c ++++ b/grub-core/term/efi/console.c +@@ -157,27 +157,56 @@ grub_console_getkey_con (struct grub_term_input *term __attribute__ ((unused))) + return grub_efi_translate_key(key); + } + ++/* ++ * When more then just modifiers are pressed, our getkeystatus() consumes a ++ * press from the queue, this function buffers the press for the regular ++ * getkey() so that it does not get lost. ++ */ ++static int ++grub_console_read_key_stroke ( ++ grub_efi_simple_text_input_ex_interface_t *text_input, ++ grub_efi_key_data_t *key_data_ret, int *key_ret, ++ int consume) ++{ ++ static grub_efi_key_data_t key_data; ++ grub_efi_status_t status; ++ int key; ++ ++ if (!text_input) ++ return GRUB_ERR_EOF; ++ ++ key = grub_efi_translate_key (key_data.key); ++ if (key == GRUB_TERM_NO_KEY) { ++ status = efi_call_2 (text_input->read_key_stroke, text_input, &key_data); ++ if (status != GRUB_EFI_SUCCESS) ++ return GRUB_ERR_EOF; ++ ++ key = grub_efi_translate_key (key_data.key); ++ } ++ ++ *key_data_ret = key_data; ++ *key_ret = key; ++ ++ if (consume) { ++ key_data.key.scan_code = 0; ++ key_data.key.unicode_char = 0; ++ } ++ ++ return 0; ++} ++ + static int + grub_console_getkey_ex(struct grub_term_input *term) + { + grub_efi_key_data_t key_data; +- grub_efi_status_t status; + grub_efi_uint32_t kss; + int key = -1; + +- grub_efi_simple_text_input_ex_interface_t *text_input = term->data; +- +- status = efi_call_2 (text_input->read_key_stroke, text_input, &key_data); +- +- if (status != GRUB_EFI_SUCCESS) ++ if (grub_console_read_key_stroke (term->data, &key_data, &key, 1) || ++ key == GRUB_TERM_NO_KEY) + return GRUB_TERM_NO_KEY; + + kss = key_data.key_state.key_shift_state; +- key = grub_efi_translate_key(key_data.key); +- +- if (key == GRUB_TERM_NO_KEY) +- return GRUB_TERM_NO_KEY; +- + if (kss & GRUB_EFI_SHIFT_STATE_VALID) + { + if ((kss & GRUB_EFI_LEFT_SHIFT_PRESSED diff --git a/0186-EFI-console-Implement-getkeystatus-support.patch b/0186-EFI-console-Implement-getkeystatus-support.patch new file mode 100644 index 00000000..74fa2536 --- /dev/null +++ b/0186-EFI-console-Implement-getkeystatus-support.patch @@ -0,0 +1,72 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Wed, 6 Jun 2018 16:16:47 +0200 +Subject: [PATCH] EFI: console: Implement getkeystatus() support + +Implement getkeystatus() support. + +Note that if a non-modifier key gets pressed and repeated calls to +getkeystatus() are made then it will return the modifier status at the +time of the non-modifier key, until that key-press gets consumed by a +getkey() call. + +This is a side-effect of how the EFI simple-text-input protocol works +and cannot be avoided. + +Signed-off-by: Hans de Goede +--- + grub-core/term/efi/console.c | 34 ++++++++++++++++++++++++++++++++++ + 1 file changed, 34 insertions(+) + +diff --git a/grub-core/term/efi/console.c b/grub-core/term/efi/console.c +index 3d36c5c701b..92dd4996bb7 100644 +--- a/grub-core/term/efi/console.c ++++ b/grub-core/term/efi/console.c +@@ -223,6 +223,39 @@ grub_console_getkey_ex(struct grub_term_input *term) + return key; + } + ++static int ++grub_console_getkeystatus(struct grub_term_input *term) ++{ ++ grub_efi_key_data_t key_data; ++ grub_efi_uint32_t kss; ++ int key, mods = 0; ++ ++ if (grub_efi_is_finished) ++ return 0; ++ ++ if (grub_console_read_key_stroke (term->data, &key_data, &key, 0)) ++ return 0; ++ ++ kss = key_data.key_state.key_shift_state; ++ if (kss & GRUB_EFI_SHIFT_STATE_VALID) ++ { ++ if (kss & GRUB_EFI_LEFT_SHIFT_PRESSED) ++ mods |= GRUB_TERM_STATUS_LSHIFT; ++ if (kss & GRUB_EFI_RIGHT_SHIFT_PRESSED) ++ mods |= GRUB_TERM_STATUS_RSHIFT; ++ if (kss & GRUB_EFI_LEFT_ALT_PRESSED) ++ mods |= GRUB_TERM_STATUS_LALT; ++ if (kss & GRUB_EFI_RIGHT_ALT_PRESSED) ++ mods |= GRUB_TERM_STATUS_RALT; ++ if (kss & GRUB_EFI_LEFT_CONTROL_PRESSED) ++ mods |= GRUB_TERM_STATUS_LCTRL; ++ if (kss & GRUB_EFI_RIGHT_CONTROL_PRESSED) ++ mods |= GRUB_TERM_STATUS_RCTRL; ++ } ++ ++ return mods; ++} ++ + static grub_err_t + grub_efi_console_input_init (struct grub_term_input *term) + { +@@ -403,6 +436,7 @@ static struct grub_term_input grub_console_term_input = + { + .name = "console", + .getkey = grub_console_getkey, ++ .getkeystatus = grub_console_getkeystatus, + .init = grub_efi_console_input_init, + }; + diff --git a/0187-Make-grub_getkeystatus-helper-funtion-available-ever.patch b/0187-Make-grub_getkeystatus-helper-funtion-available-ever.patch new file mode 100644 index 00000000..9840a558 --- /dev/null +++ b/0187-Make-grub_getkeystatus-helper-funtion-available-ever.patch @@ -0,0 +1,87 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Wed, 6 Jun 2018 16:47:11 +0200 +Subject: [PATCH] Make grub_getkeystatus helper funtion available everywhere + +Move the grub_getkeystatus helper function from +grub-core/commands/keystatus.c to grub-core/kern/term.c +and export it so that it can be used outside of the +keystatus command code too. + +Signed-off-by: Hans de Goede +--- + grub-core/commands/keystatus.c | 18 ------------------ + grub-core/kern/term.c | 18 ++++++++++++++++++ + include/grub/term.h | 1 + + 3 files changed, 19 insertions(+), 18 deletions(-) + +diff --git a/grub-core/commands/keystatus.c b/grub-core/commands/keystatus.c +index 460cf4e7e50..ff3f5878163 100644 +--- a/grub-core/commands/keystatus.c ++++ b/grub-core/commands/keystatus.c +@@ -35,24 +35,6 @@ static const struct grub_arg_option options[] = + {0, 0, 0, 0, 0, 0} + }; + +-static int +-grub_getkeystatus (void) +-{ +- int status = 0; +- grub_term_input_t term; +- +- if (grub_term_poll_usb) +- grub_term_poll_usb (0); +- +- FOR_ACTIVE_TERM_INPUTS(term) +- { +- if (term->getkeystatus) +- status |= term->getkeystatus (term); +- } +- +- return status; +-} +- + static grub_err_t + grub_cmd_keystatus (grub_extcmd_context_t ctxt, + int argc __attribute__ ((unused)), +diff --git a/grub-core/kern/term.c b/grub-core/kern/term.c +index 07720ee6746..93bd3378d18 100644 +--- a/grub-core/kern/term.c ++++ b/grub-core/kern/term.c +@@ -120,6 +120,24 @@ grub_getkey (void) + } + } + ++int ++grub_getkeystatus (void) ++{ ++ int status = 0; ++ grub_term_input_t term; ++ ++ if (grub_term_poll_usb) ++ grub_term_poll_usb (0); ++ ++ FOR_ACTIVE_TERM_INPUTS(term) ++ { ++ if (term->getkeystatus) ++ status |= term->getkeystatus (term); ++ } ++ ++ return status; ++} ++ + void + grub_refresh (void) + { +diff --git a/include/grub/term.h b/include/grub/term.h +index 8117e2a24da..c215133383f 100644 +--- a/include/grub/term.h ++++ b/include/grub/term.h +@@ -327,6 +327,7 @@ grub_term_unregister_output (grub_term_output_t term) + void grub_putcode (grub_uint32_t code, struct grub_term_output *term); + int EXPORT_FUNC(grub_getkey) (void); + int EXPORT_FUNC(grub_getkey_noblock) (void); ++int EXPORT_FUNC(grub_getkeystatus) (void); + void grub_cls (void); + void EXPORT_FUNC(grub_refresh) (void); + void grub_puts_terminal (const char *str, struct grub_term_output *term); diff --git a/0188-Accept-ESC-F8-and-holding-SHIFT-as-user-interrupt-ke.patch b/0188-Accept-ESC-F8-and-holding-SHIFT-as-user-interrupt-ke.patch new file mode 100644 index 00000000..2945fd62 --- /dev/null +++ b/0188-Accept-ESC-F8-and-holding-SHIFT-as-user-interrupt-ke.patch @@ -0,0 +1,94 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Hans de Goede +Date: Mon, 26 Mar 2018 16:15:53 +0200 +Subject: [PATCH] Accept ESC, F8 and holding SHIFT as user interrupt keys + +On some devices the ESC key is the hotkey to enter the BIOS/EFI setup +screen, making it really hard to time pressing it right. Besides that +ESC is also pretty hard to discover for a user who does not know it +will unhide the menu. + +This commit makes F8, which used to be the hotkey to show the Windows +boot menu during boot for a long long time, also interrupt sleeps / +stop the menu countdown. + +This solves the ESC gets into the BIOS setup and also somewhat solves +the discoverability issue, but leaves the timing issue unresolved. + +This commit fixes the timing issue by also adding support for keeping +SHIFT pressed during boot to stop the menu countdown. This matches +what Ubuntu is doing, which should also help with discoverability. + +Signed-off-by: Hans de Goede +--- + grub-core/commands/sleep.c | 2 +- + grub-core/kern/term.c | 16 ++++++++++++++++ + grub-core/normal/menu.c | 2 +- + include/grub/term.h | 1 + + 4 files changed, 19 insertions(+), 2 deletions(-) + +diff --git a/grub-core/commands/sleep.c b/grub-core/commands/sleep.c +index e77e7900fac..a1370b710c9 100644 +--- a/grub-core/commands/sleep.c ++++ b/grub-core/commands/sleep.c +@@ -55,7 +55,7 @@ grub_interruptible_millisleep (grub_uint32_t ms) + start = grub_get_time_ms (); + + while (grub_get_time_ms () - start < ms) +- if (grub_getkey_noblock () == GRUB_TERM_ESC) ++ if (grub_key_is_interrupt (grub_getkey_noblock ())) + return 1; + + return 0; +diff --git a/grub-core/kern/term.c b/grub-core/kern/term.c +index 93bd3378d18..6cae4c23e7a 100644 +--- a/grub-core/kern/term.c ++++ b/grub-core/kern/term.c +@@ -138,6 +138,22 @@ grub_getkeystatus (void) + return status; + } + ++int ++grub_key_is_interrupt (int key) ++{ ++ /* ESC sometimes is the BIOS setup hotkey and may be hard to discover, also ++ check F8, which was the key to get the Windows bootmenu for a long time. */ ++ if (key == GRUB_TERM_ESC || key == GRUB_TERM_KEY_F8) ++ return 1; ++ ++ /* Pressing keys at the right time during boot is hard to time, also allow ++ interrupting sleeps / the menu countdown by keeping shift pressed. */ ++ if (grub_getkeystatus() & (GRUB_TERM_STATUS_LSHIFT|GRUB_TERM_STATUS_RSHIFT)) ++ return 1; ++ ++ return 0; ++} ++ + void + grub_refresh (void) + { +diff --git a/grub-core/normal/menu.c b/grub-core/normal/menu.c +index 5e2f5283d3d..6cb2a071490 100644 +--- a/grub-core/normal/menu.c ++++ b/grub-core/normal/menu.c +@@ -655,7 +655,7 @@ run_menu (grub_menu_t menu, int nested, int *auto_boot) + if (entry >= 0) + break; + } +- if (key == GRUB_TERM_ESC) ++ if (grub_key_is_interrupt (key)) + { + timeout = -1; + break; +diff --git a/include/grub/term.h b/include/grub/term.h +index c215133383f..2b079c29b80 100644 +--- a/include/grub/term.h ++++ b/include/grub/term.h +@@ -328,6 +328,7 @@ void grub_putcode (grub_uint32_t code, struct grub_term_output *term); + int EXPORT_FUNC(grub_getkey) (void); + int EXPORT_FUNC(grub_getkey_noblock) (void); + int EXPORT_FUNC(grub_getkeystatus) (void); ++int EXPORT_FUNC(grub_key_is_interrupt) (int key); + void grub_cls (void); + void EXPORT_FUNC(grub_refresh) (void); + void grub_puts_terminal (const char *str, struct grub_term_output *term); diff --git a/0189-Fix-grub-setpassword-o-s-output-path.patch b/0189-Fix-grub-setpassword-o-s-output-path.patch new file mode 100644 index 00000000..f26da574 --- /dev/null +++ b/0189-Fix-grub-setpassword-o-s-output-path.patch @@ -0,0 +1,33 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Andy Lutomirski +Date: Sun, 11 Jun 2017 19:17:40 -0400 +Subject: [PATCH] Fix grub-setpassword -o's output path + +The output path is set up in the command line parsing, but completely ignored +in the code that actually writes the files. This patch fixes that. + +Signed-off-by: Peter Jones +--- + util/grub-setpassword.in | 8 ++++---- + 1 file changed, 4 insertions(+), 4 deletions(-) + +diff --git a/util/grub-setpassword.in b/util/grub-setpassword.in +index cf70257eed6..5ebf50576d6 100644 +--- a/util/grub-setpassword.in ++++ b/util/grub-setpassword.in +@@ -118,11 +118,11 @@ fi + + # on the ESP, these will fail to set the permissions, but it's okay because + # the directory is protected. +-install -m 0600 /dev/null "${grubdir}/user.cfg" 2>/dev/null || : +-chmod 0600 "${grubdir}/user.cfg" 2>/dev/null || : +-echo "GRUB2_PASSWORD=${MYPASS}" > "${grubdir}/user.cfg" ++install -m 0600 /dev/null "${OUTPUT_PATH}/user.cfg" 2>/dev/null || : ++chmod 0600 "${OUTPUT_PATH}/user.cfg" 2>/dev/null || : ++echo "GRUB2_PASSWORD=${MYPASS}" > "${OUTPUT_PATH}/user.cfg" + +-if ! grep -q "^### BEGIN /etc/grub.d/01_users ###$" "${grubdir}/grub.cfg"; then ++if ! grep -q "^### BEGIN /etc/grub.d/01_users ###$" "${OUTPUT_PATH}/grub.cfg"; then + echo "WARNING: The current configuration lacks password support!" + echo "Update your configuration with @grub_mkconfig@ to support this feature." + fi diff --git a/0190-Make-grub-set-password-be-named-like-all-the-other-g.patch b/0190-Make-grub-set-password-be-named-like-all-the-other-g.patch new file mode 100644 index 00000000..4f4b8988 --- /dev/null +++ b/0190-Make-grub-set-password-be-named-like-all-the-other-g.patch @@ -0,0 +1,88 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Sat, 23 Jun 2018 13:19:15 -0400 +Subject: [PATCH] Make grub-set-password be named like all the other grub + utilities + +Signed-off-by: Peter Jones +--- + configure.ac | 2 +- + Makefile.util.def | 4 ++-- + .gitignore | 4 ++-- + util/{grub-setpassword.8 => grub-set-password.8} | 8 ++++---- + util/{grub-setpassword.in => grub-set-password.in} | 0 + 5 files changed, 9 insertions(+), 9 deletions(-) + rename util/{grub-setpassword.8 => grub-set-password.8} (50%) + rename util/{grub-setpassword.in => grub-set-password.in} (100%) + +diff --git a/configure.ac b/configure.ac +index 359cac3c26b..5f47a9265f3 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -66,7 +66,7 @@ grub_TRANSFORM([grub-mkrelpath]) + grub_TRANSFORM([grub-mkrescue]) + grub_TRANSFORM([grub-probe]) + grub_TRANSFORM([grub-reboot]) +-grub_TRANSFORM([grub-setpassword]) ++grub_TRANSFORM([grub-set-password]) + grub_TRANSFORM([grub-rpm-sort]) + grub_TRANSFORM([grub-script-check]) + grub_TRANSFORM([grub-set-default]) +diff --git a/Makefile.util.def b/Makefile.util.def +index cbd661d6348..003691a12dd 100644 +--- a/Makefile.util.def ++++ b/Makefile.util.def +@@ -744,8 +744,8 @@ script = { + }; + + script = { +- name = grub-setpassword; +- common = util/grub-setpassword.in; ++ name = grub-set-password; ++ common = util/grub-set-password.in; + mansection = 8; + installdir = sbin; + }; +diff --git a/.gitignore b/.gitignore +index 42475592123..7aaae594d51 100644 +--- a/.gitignore ++++ b/.gitignore +@@ -113,8 +113,8 @@ grub-*.tar.* + /grub*-script-check.1 + /grub*-set-default + /grub*-set-default.8 +-/grub*-setsetpassword +-/grub*-setsetpassword.8 ++/grub*-set-password ++/grub*-set-password.8 + /grub*-shell + /grub*-shell-tester + /grub*-sparc64-setup +diff --git a/util/grub-setpassword.8 b/util/grub-set-password.8 +similarity index 50% +rename from util/grub-setpassword.8 +rename to util/grub-set-password.8 +index dc91dd6697b..9646546e43d 100644 +--- a/util/grub-setpassword.8 ++++ b/util/grub-set-password.8 +@@ -1,12 +1,12 @@ +-.TH GRUB-SETPASSWORD 3 "Thu Jun 25 2015" ++.TH GRUB-SET-PASSWORD 3 "Thu Jun 25 2015" + .SH NAME +-\fBgrub-setpassword\fR \(em Generate the user.cfg file containing the hashed grub bootloader password. ++\fBgrub-set-password\fR \(em Generate the user.cfg file containing the hashed grub bootloader password. + + .SH SYNOPSIS +-\fBgrub-setpassword\fR [OPTION] ++\fBgrub-set-password\fR [OPTION] + + .SH DESCRIPTION +-\fBgrub-setpassword\fR outputs the user.cfg file which contains the hashed GRUB bootloader password. This utility only supports configurations where there is a single root user. ++\fBgrub-set-password\fR outputs the user.cfg file which contains the hashed GRUB bootloader password. This utility only supports configurations where there is a single root user. + + The file has the format: + GRUB2_PASSWORD=<\fIhashed password\fR>. +diff --git a/util/grub-setpassword.in b/util/grub-set-password.in +similarity index 100% +rename from util/grub-setpassword.in +rename to util/grub-set-password.in diff --git a/0191-gentpl-add-disable-support.patch b/0191-gentpl-add-disable-support.patch new file mode 100644 index 00000000..d82d6331 --- /dev/null +++ b/0191-gentpl-add-disable-support.patch @@ -0,0 +1,46 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Wed, 11 Jul 2018 13:43:15 -0400 +Subject: [PATCH] gentpl: add 'disable = ' support + +Signed-off-by: Peter Jones +--- + gentpl.py | 14 +++++++++++++- + 1 file changed, 13 insertions(+), 1 deletion(-) + +diff --git a/gentpl.py b/gentpl.py +index bf8439fa743..a8cd540550f 100644 +--- a/gentpl.py ++++ b/gentpl.py +@@ -589,11 +589,21 @@ def platform_conditional(platform, closure): + # }; + # + def foreach_enabled_platform(defn, closure): ++ enabled = False ++ disabled = False + if 'enable' in defn: ++ enabled = True + for platform in GRUB_PLATFORMS: + if platform_tagged(defn, platform, "enable"): + platform_conditional(platform, closure) +- else: ++ ++ if 'disable' in defn: ++ disabled = True ++ for platform in GRUB_PLATFORMS: ++ if not platform_tagged(defn, platform, "disable"): ++ platform_conditional(platform, closure) ++ ++ if not enabled and not disabled: + for platform in GRUB_PLATFORMS: + platform_conditional(platform, closure) + +@@ -652,6 +662,8 @@ def first_time(defn, snippet): + def is_platform_independent(defn): + if 'enable' in defn: + return False ++ if 'disable' in defn: ++ return False + for suffix in [ "", "_nodist" ]: + template = platform_values(defn, GRUB_PLATFORMS[0], suffix) + for platform in GRUB_PLATFORMS[1:]: diff --git a/0192-gentpl-add-pc-firmware-type.patch b/0192-gentpl-add-pc-firmware-type.patch new file mode 100644 index 00000000..94737b3b --- /dev/null +++ b/0192-gentpl-add-pc-firmware-type.patch @@ -0,0 +1,22 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Wed, 11 Jul 2018 13:43:34 -0400 +Subject: [PATCH] gentpl: add 'pc' firmware type + +Signed-off-by: Peter Jones +--- + gentpl.py | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/gentpl.py b/gentpl.py +index a8cd540550f..baac6a2af69 100644 +--- a/gentpl.py ++++ b/gentpl.py +@@ -49,6 +49,7 @@ GROUPS["arm"] = [ "arm_uboot", "arm_efi", "arm_coreboot" ] + GROUPS["arm64"] = [ "arm64_efi" ] + + # Groups based on firmware ++GROUPS["pc"] = [ "i386_pc" ] + GROUPS["efi"] = [ "i386_efi", "x86_64_efi", "ia64_efi", "arm_efi", "arm64_efi" ] + GROUPS["ieee1275"] = [ "i386_ieee1275", "sparc64_ieee1275", "powerpc_ieee1275" ] + GROUPS["uboot"] = [ "arm_uboot" ] diff --git a/0189-blscfg-remove-unused-typedef.patch b/0193-blscfg-remove-unused-typedef.patch similarity index 95% rename from 0189-blscfg-remove-unused-typedef.patch rename to 0193-blscfg-remove-unused-typedef.patch index 33be789e..819a144e 100644 --- a/0189-blscfg-remove-unused-typedef.patch +++ b/0193-blscfg-remove-unused-typedef.patch @@ -15,7 +15,7 @@ Signed-off-by: Will Thompson 1 file changed, 2 deletions(-) diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c -index 23d15adfadc..243fcda57f9 100644 +index cd8659384e4..82fb6cdd182 100644 --- a/grub-core/commands/blscfg.c +++ b/grub-core/commands/blscfg.c @@ -327,8 +327,6 @@ finish: diff --git a/0190-blscfg-don-t-dynamically-allocate-default_blsdir.patch b/0194-blscfg-don-t-dynamically-allocate-default_blsdir.patch similarity index 97% rename from 0190-blscfg-don-t-dynamically-allocate-default_blsdir.patch rename to 0194-blscfg-don-t-dynamically-allocate-default_blsdir.patch index cb0d7eaa..ab076ecc 100644 --- a/0190-blscfg-don-t-dynamically-allocate-default_blsdir.patch +++ b/0194-blscfg-don-t-dynamically-allocate-default_blsdir.patch @@ -9,7 +9,7 @@ Signed-off-by: Will Thompson 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c -index 243fcda57f9..1d0e6ceaf7d 100644 +index 82fb6cdd182..b61dddb7f43 100644 --- a/grub-core/commands/blscfg.c +++ b/grub-core/commands/blscfg.c @@ -623,7 +623,7 @@ static int find_entry (const char *filename, diff --git a/0191-blscfg-sort-BLS-entries-by-version-field.patch b/0195-blscfg-sort-BLS-entries-by-version-field.patch similarity index 98% rename from 0191-blscfg-sort-BLS-entries-by-version-field.patch rename to 0195-blscfg-sort-BLS-entries-by-version-field.patch index 0ad0611d..0ee94af6 100644 --- a/0191-blscfg-sort-BLS-entries-by-version-field.patch +++ b/0195-blscfg-sort-BLS-entries-by-version-field.patch @@ -26,7 +26,7 @@ Signed-off-by: Will Thompson 1 file changed, 16 insertions(+) diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c -index 1d0e6ceaf7d..84714f0e534 100644 +index b61dddb7f43..9c928dda470 100644 --- a/grub-core/commands/blscfg.c +++ b/grub-core/commands/blscfg.c @@ -327,10 +327,26 @@ finish: diff --git a/0192-blscfg-remove-NULL-guards-around-grub_free.patch b/0196-blscfg-remove-NULL-guards-around-grub_free.patch similarity index 97% rename from 0192-blscfg-remove-NULL-guards-around-grub_free.patch rename to 0196-blscfg-remove-NULL-guards-around-grub_free.patch index 2624b8ad..add17663 100644 --- a/0192-blscfg-remove-NULL-guards-around-grub_free.patch +++ b/0196-blscfg-remove-NULL-guards-around-grub_free.patch @@ -13,7 +13,7 @@ Signed-off-by: Will Thompson 1 file changed, 6 insertions(+), 17 deletions(-) diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c -index 84714f0e534..f9a5b2d5afa 100644 +index 9c928dda470..bd78559ef68 100644 --- a/grub-core/commands/blscfg.c +++ b/grub-core/commands/blscfg.c @@ -600,23 +600,12 @@ static void create_entry (struct bls_entry *entry, const char *cfgfile) diff --git a/0193-blscfg-fix-filename-in-no-linux-key-error.patch b/0197-blscfg-fix-filename-in-no-linux-key-error.patch similarity index 97% rename from 0193-blscfg-fix-filename-in-no-linux-key-error.patch rename to 0197-blscfg-fix-filename-in-no-linux-key-error.patch index d9b17f3a..37795f6c 100644 --- a/0193-blscfg-fix-filename-in-no-linux-key-error.patch +++ b/0197-blscfg-fix-filename-in-no-linux-key-error.patch @@ -15,7 +15,7 @@ Signed-off-by: Will Thompson 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c -index f9a5b2d5afa..077ca5dfbe6 100644 +index bd78559ef68..a45f40fe67e 100644 --- a/grub-core/commands/blscfg.c +++ b/grub-core/commands/blscfg.c @@ -514,7 +514,7 @@ static char **bls_make_list (struct bls_entry *entry, const char *key, int *num) diff --git a/0194-blscfg-don-t-leak-bls_entry.filename.patch b/0198-blscfg-don-t-leak-bls_entry.filename.patch similarity index 95% rename from 0194-blscfg-don-t-leak-bls_entry.filename.patch rename to 0198-blscfg-don-t-leak-bls_entry.filename.patch index 248663ba..5080e2e4 100644 --- a/0194-blscfg-don-t-leak-bls_entry.filename.patch +++ b/0198-blscfg-don-t-leak-bls_entry.filename.patch @@ -12,7 +12,7 @@ Signed-off-by: Will Thompson 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c -index 077ca5dfbe6..3339d62d541 100644 +index a45f40fe67e..11a356de81a 100644 --- a/grub-core/commands/blscfg.c +++ b/grub-core/commands/blscfg.c @@ -166,8 +166,8 @@ static void bls_free_entry(struct bls_entry *entry) diff --git a/0195-blscfg-fix-compilation-on-EFI-and-EMU.patch b/0199-blscfg-fix-compilation-on-EFI-and-EMU.patch similarity index 97% rename from 0195-blscfg-fix-compilation-on-EFI-and-EMU.patch rename to 0199-blscfg-fix-compilation-on-EFI-and-EMU.patch index d5d82d00..04aadc36 100644 --- a/0195-blscfg-fix-compilation-on-EFI-and-EMU.patch +++ b/0199-blscfg-fix-compilation-on-EFI-and-EMU.patch @@ -20,7 +20,7 @@ Signed-off-by: Will Thompson 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c -index 3339d62d541..f4283708e21 100644 +index 11a356de81a..53676576ba5 100644 --- a/grub-core/commands/blscfg.c +++ b/grub-core/commands/blscfg.c @@ -843,7 +843,7 @@ grub_cmd_blscfg (grub_extcmd_context_t ctxt UNUSED, diff --git a/0196-Add-loadenv-to-blscfg-and-loadenv-source-file-list.patch b/0200-Add-loadenv-to-blscfg-and-loadenv-source-file-list.patch similarity index 91% rename from 0196-Add-loadenv-to-blscfg-and-loadenv-source-file-list.patch rename to 0200-Add-loadenv-to-blscfg-and-loadenv-source-file-list.patch index 9d50d46e..76df19c1 100644 --- a/0196-Add-loadenv-to-blscfg-and-loadenv-source-file-list.patch +++ b/0200-Add-loadenv-to-blscfg-and-loadenv-source-file-list.patch @@ -18,10 +18,10 @@ Signed-off-by: Will Thompson 1 file changed, 2 insertions(+) diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 51f07279d83..4538c18fa3c 100644 +index 2851437e098..aa44d66aca4 100644 --- a/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def -@@ -782,6 +782,7 @@ module = { +@@ -781,6 +781,7 @@ module = { module = { name = blscfg; common = commands/blscfg.c; @@ -29,7 +29,7 @@ index 51f07279d83..4538c18fa3c 100644 enable = efi; enable = i386_pc; enable = emu; -@@ -953,6 +954,7 @@ module = { +@@ -947,6 +948,7 @@ module = { module = { name = loadenv; common = commands/loadenv.c; diff --git a/0197-blscfg-Get-rid-of-the-linuxefi-linux16-linux-distinc.patch b/0201-blscfg-Get-rid-of-the-linuxefi-linux16-linux-distinc.patch similarity index 97% rename from 0197-blscfg-Get-rid-of-the-linuxefi-linux16-linux-distinc.patch rename to 0201-blscfg-Get-rid-of-the-linuxefi-linux16-linux-distinc.patch index abfb80e0..df63ac6e 100644 --- a/0197-blscfg-Get-rid-of-the-linuxefi-linux16-linux-distinc.patch +++ b/0201-blscfg-Get-rid-of-the-linuxefi-linux16-linux-distinc.patch @@ -9,7 +9,7 @@ Signed-off-by: Peter Jones 1 file changed, 3 insertions(+), 11 deletions(-) diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c -index f4283708e21..6f9f8e773c5 100644 +index 53676576ba5..c6addc4dc12 100644 --- a/grub-core/commands/blscfg.c +++ b/grub-core/commands/blscfg.c @@ -43,14 +43,6 @@ GRUB_MOD_LICENSE ("GPLv3+"); diff --git a/0198-grub-switch-to-blscfg-Only-fix-boot-prefix-for-non-g.patch b/0202-grub-switch-to-blscfg-Only-fix-boot-prefix-for-non-g.patch similarity index 100% rename from 0198-grub-switch-to-blscfg-Only-fix-boot-prefix-for-non-g.patch rename to 0202-grub-switch-to-blscfg-Only-fix-boot-prefix-for-non-g.patch diff --git a/0203-Put-our-bls_import-compat-command-in-this-tree-as-we.patch b/0203-Put-our-bls_import-compat-command-in-this-tree-as-we.patch deleted file mode 100644 index 206f87d1..00000000 --- a/0203-Put-our-bls_import-compat-command-in-this-tree-as-we.patch +++ /dev/null @@ -1,39 +0,0 @@ -From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 -From: Peter Jones -Date: Tue, 31 Jul 2018 12:39:05 -0400 -Subject: [PATCH] Put our bls_import compat command in this tree as well. - -Signed-off-by: Peter Jones ---- - grub-core/commands/blscfg.c | 8 ++++++++ - 1 file changed, 8 insertions(+) - -diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c -index e649f6cd11b..bdb1c5a95aa 100644 ---- a/grub-core/commands/blscfg.c -+++ b/grub-core/commands/blscfg.c -@@ -789,6 +789,7 @@ finish: - } - - static grub_extcmd_t cmd; -+static grub_extcmd_t oldcmd; - - GRUB_MOD_INIT(blscfg) - { -@@ -799,9 +800,16 @@ GRUB_MOD_INIT(blscfg) - NULL, - N_("Import Boot Loader Specification snippets."), - NULL); -+ oldcmd = grub_register_extcmd ("bls_import", -+ grub_cmd_blscfg, -+ 0, -+ NULL, -+ N_("Import Boot Loader Specification snippets."), -+ NULL); - } - - GRUB_MOD_FINI(blscfg) - { - grub_unregister_extcmd (cmd); -+ grub_unregister_extcmd (oldcmd); - } diff --git a/0199-blscfg-Expand-the-BLS-options-field-instead-of-showi.patch b/0203-blscfg-Expand-the-BLS-options-field-instead-of-showi.patch similarity index 98% rename from 0199-blscfg-Expand-the-BLS-options-field-instead-of-showi.patch rename to 0203-blscfg-Expand-the-BLS-options-field-instead-of-showi.patch index e897a5ce..3dca9425 100644 --- a/0199-blscfg-Expand-the-BLS-options-field-instead-of-showi.patch +++ b/0203-blscfg-Expand-the-BLS-options-field-instead-of-showi.patch @@ -28,7 +28,7 @@ Signed-off-by: Javier Martinez Canillas 1 file changed, 68 insertions(+), 1 deletion(-) diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c -index 6f9f8e773c5..6d2f9dc1015 100644 +index c6addc4dc12..80d8814fc3f 100644 --- a/grub-core/commands/blscfg.c +++ b/grub-core/commands/blscfg.c @@ -32,6 +32,8 @@ diff --git a/0200-blscfg-Fallback-to-search-BLS-snippets-in-boot-loade.patch b/0204-blscfg-Fallback-to-search-BLS-snippets-in-boot-loade.patch similarity index 98% rename from 0200-blscfg-Fallback-to-search-BLS-snippets-in-boot-loade.patch rename to 0204-blscfg-Fallback-to-search-BLS-snippets-in-boot-loade.patch index 73531893..d04928f8 100644 --- a/0200-blscfg-Fallback-to-search-BLS-snippets-in-boot-loade.patch +++ b/0204-blscfg-Fallback-to-search-BLS-snippets-in-boot-loade.patch @@ -20,7 +20,7 @@ Signed-off-by: Javier Martinez Canillas 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c -index 6d2f9dc1015..dda1bfcc658 100644 +index 80d8814fc3f..321c93069f2 100644 --- a/grub-core/commands/blscfg.c +++ b/grub-core/commands/blscfg.c @@ -692,6 +692,7 @@ static int find_entry (const char *filename, diff --git a/0201-blscfg-Don-t-attempt-to-sort-by-version-if-not-prese.patch b/0205-blscfg-Don-t-attempt-to-sort-by-version-if-not-prese.patch similarity index 98% rename from 0201-blscfg-Don-t-attempt-to-sort-by-version-if-not-prese.patch rename to 0205-blscfg-Don-t-attempt-to-sort-by-version-if-not-prese.patch index 01d4a25d..60b609db 100644 --- a/0201-blscfg-Don-t-attempt-to-sort-by-version-if-not-prese.patch +++ b/0205-blscfg-Don-t-attempt-to-sort-by-version-if-not-prese.patch @@ -22,7 +22,7 @@ Signed-off-by: Javier Martinez Canillas 1 file changed, 16 insertions(+), 11 deletions(-) diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c -index dda1bfcc658..8a61ac84dcf 100644 +index 321c93069f2..69bfb5db295 100644 --- a/grub-core/commands/blscfg.c +++ b/grub-core/commands/blscfg.c @@ -324,23 +324,21 @@ finish: diff --git a/0202-blscfg-remove-logic-to-read-the-grubenv-file-and-set.patch b/0206-blscfg-remove-logic-to-read-the-grubenv-file-and-set.patch similarity index 99% rename from 0202-blscfg-remove-logic-to-read-the-grubenv-file-and-set.patch rename to 0206-blscfg-remove-logic-to-read-the-grubenv-file-and-set.patch index 8cd0319e..f32b620a 100644 --- a/0202-blscfg-remove-logic-to-read-the-grubenv-file-and-set.patch +++ b/0206-blscfg-remove-logic-to-read-the-grubenv-file-and-set.patch @@ -25,7 +25,7 @@ Signed-off-by: Javier Martinez Canillas 1 file changed, 16 insertions(+), 163 deletions(-) diff --git a/grub-core/commands/blscfg.c b/grub-core/commands/blscfg.c -index 8a61ac84dcf..e649f6cd11b 100644 +index 69bfb5db295..bdb1c5a95aa 100644 --- a/grub-core/commands/blscfg.c +++ b/grub-core/commands/blscfg.c @@ -45,13 +45,6 @@ GRUB_MOD_LICENSE ("GPLv3+"); diff --git a/0207-efinet-also-use-the-firmware-acceleration-for-http.patch b/0207-efinet-also-use-the-firmware-acceleration-for-http.patch new file mode 100644 index 00000000..5771c8a5 --- /dev/null +++ b/0207-efinet-also-use-the-firmware-acceleration-for-http.patch @@ -0,0 +1,25 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Mon, 30 Jul 2018 14:06:42 -0400 +Subject: [PATCH] efinet: also use the firmware acceleration for http + +Signed-off-by: Peter Jones +--- + grub-core/net/efi/net.c | 4 +++- + 1 file changed, 3 insertions(+), 1 deletion(-) + +diff --git a/grub-core/net/efi/net.c b/grub-core/net/efi/net.c +index 2bf15447fd5..f208d1b180c 100644 +--- a/grub-core/net/efi/net.c ++++ b/grub-core/net/efi/net.c +@@ -1324,7 +1324,9 @@ grub_efi_net_boot_from_https (void) + && (subtype == GRUB_EFI_URI_DEVICE_PATH_SUBTYPE)) + { + grub_efi_uri_device_path_t *uri_dp = (grub_efi_uri_device_path_t *) dp; +- return (grub_strncmp ((const char*)uri_dp->uri, "https://", sizeof ("https://") - 1) == 0) ? 1 : 0; ++ grub_dprintf ("efinet", "url:%s\n", (const char *)uri_dp->uri); ++ return (grub_strncmp ((const char *)uri_dp->uri, "https://", sizeof ("https://") - 1) == 0 || ++ grub_strncmp ((const char *)uri_dp->uri, "http://", sizeof ("http://") - 1) == 0); + } + + if (GRUB_EFI_END_ENTIRE_DEVICE_PATH (dp)) diff --git a/0208-efi-http-Make-root_url-reflect-the-protocol-hostname.patch b/0208-efi-http-Make-root_url-reflect-the-protocol-hostname.patch new file mode 100644 index 00000000..985a0378 --- /dev/null +++ b/0208-efi-http-Make-root_url-reflect-the-protocol-hostname.patch @@ -0,0 +1,50 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Mon, 30 Jul 2018 16:39:57 -0400 +Subject: [PATCH] efi/http: Make root_url reflect the protocol+hostname of our + boot url. + +This lets you write config files that don't know urls. + +Signed-off-by: Peter Jones +--- + grub-core/net/efi/http.c | 19 +++++++++++++++++++ + 1 file changed, 19 insertions(+) + +diff --git a/grub-core/net/efi/http.c b/grub-core/net/efi/http.c +index 3f61fd2fa5b..243acbaa35b 100644 +--- a/grub-core/net/efi/http.c ++++ b/grub-core/net/efi/http.c +@@ -4,6 +4,7 @@ + #include + #include + #include ++#include + + static void + http_configure (struct grub_efi_net_device *dev, int prefer_ip6) +@@ -351,6 +352,24 @@ grub_efihttp_open (struct grub_efi_net_device *dev, + grub_err_t err; + grub_off_t size; + char *buf; ++ char *root_url; ++ grub_efi_ipv6_address_t address; ++ const char *rest; ++ ++ if (grub_efi_string_to_ip6_address (file->device->net->server, &address, &rest) && *rest == 0) ++ root_url = grub_xasprintf ("%s://[%s]", type ? "https" : "http", file->device->net->server); ++ else ++ root_url = grub_xasprintf ("%s://%s", type ? "https" : "http", file->device->net->server); ++ if (root_url) ++ { ++ grub_env_unset ("root_url"); ++ grub_env_set ("root_url", root_url); ++ grub_free (root_url); ++ } ++ else ++ { ++ return grub_errno; ++ } + + err = efihttp_request (dev->http, file->device->net->server, file->device->net->name, type, 1, 0); + if (err != GRUB_ERR_NONE) diff --git a/0209-Disable-multiboot-multiboot2-and-linux16-modules-on-.patch b/0209-Disable-multiboot-multiboot2-and-linux16-modules-on-.patch new file mode 100644 index 00000000..9dccf5a0 --- /dev/null +++ b/0209-Disable-multiboot-multiboot2-and-linux16-modules-on-.patch @@ -0,0 +1,33 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Wed, 11 Jul 2018 13:48:48 -0400 +Subject: [PATCH] Disable multiboot, multiboot2, and linux16 modules on EFI + builds. + +Signed-off-by: Peter Jones +--- + grub-core/Makefile.core.def | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def +index aa44d66aca4..d3e3bfd4d7a 100644 +--- a/grub-core/Makefile.core.def ++++ b/grub-core/Makefile.core.def +@@ -1680,7 +1680,7 @@ module = { + + common = loader/multiboot.c; + common = loader/multiboot_mbi2.c; +- enable = x86; ++ enable = i386_pc; + enable = mips; + }; + +@@ -1689,7 +1689,7 @@ module = { + common = loader/multiboot.c; + x86 = loader/i386/multiboot_mbi.c; + extra_dist = loader/multiboot_elfxx.c; +- enable = x86; ++ enable = i386_pc; + }; + + module = { diff --git a/0210-Force-everything-to-use-python3.patch b/0210-Force-everything-to-use-python3.patch new file mode 100644 index 00000000..b4b0d74c --- /dev/null +++ b/0210-Force-everything-to-use-python3.patch @@ -0,0 +1,42 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Tue, 10 Jul 2018 16:54:02 -0400 +Subject: [PATCH] Force everything to use python3 + +But this still means you need to do PYTHON=python=3 ./autogen.sh if you +run the world's worst tooling before you patch. + +Signed-off-by: Peter Jones +--- + conf/Makefile.common | 4 ++-- + gentpl.py | 2 +- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/conf/Makefile.common b/conf/Makefile.common +index c75848f5c06..1ecb921db65 100644 +--- a/conf/Makefile.common ++++ b/conf/Makefile.common +@@ -128,11 +128,11 @@ BUILT_SOURCES = + + .PRECIOUS: $(top_srcdir)/Makefile.util.am + $(top_srcdir)/Makefile.util.am: $(top_srcdir)/gentpl.py $(top_srcdir)/Makefile.util.def $(top_srcdir)/Makefile.utilgcry.def +- python $^ > $@.new || (rm -f $@.new; exit 1) ++ python3 $^ > $@.new || (rm -f $@.new; exit 1) + mv $@.new $@ + + .PRECIOUS: $(top_srcdir)/grub-core/Makefile.core.am + $(top_srcdir)/grub-core/Makefile.core.am: $(top_srcdir)/gentpl.py $(top_srcdir)/grub-core/Makefile.core.def $(top_srcdir)/grub-core/Makefile.gcry.def + if [ "x$$GRUB_CONTRIB" != x ]; then echo "You need to run ./autogen.sh manually." >&2; exit 1; fi +- python $^ > $@.new || (rm -f $@.new; exit 1) ++ python3 $^ > $@.new || (rm -f $@.new; exit 1) + mv $@.new $@ +diff --git a/gentpl.py b/gentpl.py +index baac6a2af69..6409736e81c 100644 +--- a/gentpl.py ++++ b/gentpl.py +@@ -1,4 +1,4 @@ +-#! /usr/bin/python ++#! /usr/bin/env python3 + # GRUB -- GRand Unified Bootloader + # Copyright (C) 2010,2011,2012,2013 Free Software Foundation, Inc. + # diff --git a/0204-Fix-an-8-year-old-typo.patch b/0211-Fix-an-8-year-old-typo.patch similarity index 91% rename from 0204-Fix-an-8-year-old-typo.patch rename to 0211-Fix-an-8-year-old-typo.patch index 43d5e99a..642e46a7 100644 --- a/0204-Fix-an-8-year-old-typo.patch +++ b/0211-Fix-an-8-year-old-typo.patch @@ -9,10 +9,10 @@ Signed-off-by: Peter Jones 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/configure.ac b/configure.ac -index 498741dfeba..4b7244d557d 100644 +index 5f47a9265f3..9ab683fefac 100644 --- a/configure.ac +++ b/configure.ac -@@ -306,7 +306,7 @@ fi +@@ -307,7 +307,7 @@ fi AC_SUBST(bootdirname) AC_DEFINE_UNQUOTED(GRUB_BOOT_DIR_NAME, "$bootdirname", diff --git a/0212-autogen-don-t-run-autoreconf-in-the-topdir.patch b/0212-autogen-don-t-run-autoreconf-in-the-topdir.patch new file mode 100644 index 00000000..e5b7c33d --- /dev/null +++ b/0212-autogen-don-t-run-autoreconf-in-the-topdir.patch @@ -0,0 +1,21 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Thu, 26 Jul 2018 15:47:48 -0400 +Subject: [PATCH] autogen: don't run autoreconf in the topdir + +Signed-off-by: Peter Jones +--- + autogen.sh | 2 -- + 1 file changed, 2 deletions(-) + +diff --git a/autogen.sh b/autogen.sh +index 7537561ad0d..f608b9467a0 100755 +--- a/autogen.sh ++++ b/autogen.sh +@@ -82,6 +82,4 @@ done + echo "Saving timestamps..." + echo timestamp > stamp-h.in + +-echo "Running autoreconf..." +-autoreconf -vi + exit 0 diff --git a/0213-Make-it-so-we-can-tell-configure-which-cflags-utils-.patch b/0213-Make-it-so-we-can-tell-configure-which-cflags-utils-.patch new file mode 100644 index 00000000..292e5658 --- /dev/null +++ b/0213-Make-it-so-we-can-tell-configure-which-cflags-utils-.patch @@ -0,0 +1,149 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Tue, 26 Jun 2018 17:16:06 -0400 +Subject: [PATCH] Make it so we can tell configure which cflags utils are built + with + +This lets us have kernel.img be built with TARGET_CFLAGS but grub-mkimage and +friends built with HOST_CFLAGS. That in turn lets us build with an ARM compiler +that only has hard-float ABI versions of crt*.o and libgcc*, but still use soft +float for grub.efi. + +Signed-off-by: Peter Jones +--- + configure.ac | 49 ++++++++++++++++++++++++++++++++++++++++++++++++- + conf/Makefile.common | 23 ++++++++++++----------- + gentpl.py | 8 ++++---- + 3 files changed, 64 insertions(+), 16 deletions(-) + +diff --git a/configure.ac b/configure.ac +index 9ab683fefac..819212095ff 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -850,11 +850,23 @@ if ( test "x$target_cpu" = xi386 || test "x$target_cpu" = xx86_64 ) && test "x$p + TARGET_CFLAGS="$TARGET_CFLAGS -mno-mmx -mno-sse -mno-sse2 -mno-sse3 -mno-3dnow" + fi + ++# Should grub utils get the host CFLAGS, or the target CFLAGS? ++AC_ARG_WITH([utils], ++ AS_HELP_STRING([--with-utils=host|target|build], ++ [choose which flags to build utilities with. (default=target)]), ++ [have_with_utils=y], ++ [have_with_utils=n]) ++if test x"$have_with_utils" = xy ; then ++ with_utils="$withval" ++else ++ with_utils=target ++fi ++ + # GRUB doesn't use float or doubles at all. Yet some toolchains may decide + # that floats are a good fit to run instead of what's written in the code. + # Given that floating point unit is disabled (if present to begin with) + # when GRUB is running which may result in various hard crashes. +-if test x"$platform" != xemu ; then ++if test x"$platform" != xemu -a x"$with_utils" == xtarget ; then + AC_CACHE_CHECK([for options to get soft-float], grub_cv_target_cc_soft_float, [ + grub_cv_target_cc_soft_float=no + if test "x$target_cpu" = xarm64; then +@@ -1939,6 +1951,41 @@ HOST_CPPFLAGS="$HOST_CPPFLAGS -I\$(top_builddir)/include" + TARGET_CPPFLAGS="$TARGET_CPPFLAGS -I\$(top_srcdir)/include" + TARGET_CPPFLAGS="$TARGET_CPPFLAGS -I\$(top_builddir)/include" + ++case "$with_utils" in ++ host) ++ UTILS_CFLAGS=$HOST_CFLAGS ++ UTILS_CPPFLAGS=$HOST_CPPFLAGS ++ UTILS_CCASFLAGS=$HOST_CCASFLAGS ++ UTILS_LDFLAGS=$HOST_LDFLAGS ++ ;; ++ target) ++ UTILS_CFLAGS=$TARGET_CFLAGS ++ UTILS_CPPFLAGS=$TARGET_CPPFLAGS ++ UTILS_CCASFLAGS=$TARGET_CCASFLAGS ++ UTILS_LDFLAGS=$TARGET_LDFLAGS ++ ;; ++ build) ++ UTILS_CFLAGS=$BUILD_CFLAGS ++ UTILS_CPPFLAGS=$BUILD_CPPFLAGS ++ UTILS_CCASFLAGS=$BUILD_CCASFLAGS ++ UTILS_LDFLAGS=$BUILD_LDFLAGS ++ ;; ++ *) ++ AC_MSG_ERROR([--with-utils must be either host, target, or build]) ++ ;; ++esac ++AC_MSG_NOTICE([Using $with_utils flags for utilities.]) ++ ++unset CFLAGS ++unset CPPFLAGS ++unset CCASFLAGS ++unset LDFLAGS ++ ++AC_SUBST(UTILS_CFLAGS) ++AC_SUBST(UTILS_CPPFLAGS) ++AC_SUBST(UTILS_CCASFLAGS) ++AC_SUBST(UTILS_LDFLAGS) ++ + GRUB_TARGET_CPU="${target_cpu}" + GRUB_PLATFORM="${platform}" + +diff --git a/conf/Makefile.common b/conf/Makefile.common +index 1ecb921db65..b93879804c0 100644 +--- a/conf/Makefile.common ++++ b/conf/Makefile.common +@@ -40,24 +40,25 @@ CPPFLAGS_KERNEL = $(CPPFLAGS_CPU) $(CPPFLAGS_PLATFORM) -DGRUB_KERNEL=1 + CCASFLAGS_KERNEL = $(CCASFLAGS_CPU) $(CCASFLAGS_PLATFORM) + STRIPFLAGS_KERNEL = -R .eh_frame -R .rel.dyn -R .reginfo -R .note -R .comment -R .drectve -R .note.gnu.gold-version -R .MIPS.abiflags -R .ARM.exidx -R .note.gnu.property -R .gnu.build.attributes + +-CFLAGS_MODULE = $(CFLAGS_PLATFORM) -ffreestanding +-LDFLAGS_MODULE = $(LDFLAGS_PLATFORM) -nostdlib $(TARGET_LDFLAGS_OLDMAGIC) -Wl,-r,-d +-CPPFLAGS_MODULE = $(CPPFLAGS_CPU) $(CPPFLAGS_PLATFORM) +-CCASFLAGS_MODULE = $(CCASFLAGS_CPU) $(CCASFLAGS_PLATFORM) ++CFLAGS_MODULE = $(TARGET_CFLAGS) $(CFLAGS_PLATFORM) -ffreestanding ++LDFLAGS_MODULE = $(TARGET_LDFLAGS) $(LDFLAGS_PLATFORM) -nostdlib $(TARGET_LDFLAGS_OLDMAGIC) -Wl,-r,-d ++CPPFLAGS_MODULE = $(TARGET_CPPFLAGS) $(CPPFLAGS_DEFAULT) $(CPPFLAGS_CPU) $(CPPFLAGS_PLATFORM) ++CCASFLAGS_MODULE = $(TARGET_CCASFLAGS) $(CCASFLAGS_DEFAULT) $(CCASFLAGS_CPU) $(CCASFLAGS_PLATFORM) + + CFLAGS_IMAGE = $(CFLAGS_PLATFORM) -fno-builtin + LDFLAGS_IMAGE = $(LDFLAGS_PLATFORM) -nostdlib $(TARGET_LDFLAGS_OLDMAGIC) -Wl,-S + CPPFLAGS_IMAGE = $(CPPFLAGS_CPU) $(CPPFLAGS_PLATFORM) + CCASFLAGS_IMAGE = $(CCASFLAGS_CPU) $(CCASFLAGS_PLATFORM) + +-CFLAGS_PROGRAM = +-LDFLAGS_PROGRAM = +-CPPFLAGS_PROGRAM = +-CCASFLAGS_PROGRAM = ++CFLAGS_PROGRAM = $(UTILS_CFLAGS) ++LDFLAGS_PROGRAM = $(UTILS_LDFLAGS) ++CPPFLAGS_PROGRAM = $(UTILS_CPPFLAGS) ++CCASFLAGS_PROGRAM = $(UTILS_CCASFLAGS) + +-CFLAGS_LIBRARY = +-CPPFLAGS_LIBRARY = +-CCASFLAGS_LIBRARY = ++CFLAGS_LIBRARY = $(UTILS_CFLAGS) ++LDFLAGS_LIBRARY = $(UTILS_LDFLAGS) ++CPPFLAGS_LIBRARY = $(UTILS_CPPFLAGS) ++CCASFLAGS_LIBRARY = $(UTILS_CCASFLAGS) + + # Other variables + +diff --git a/gentpl.py b/gentpl.py +index 6409736e81c..1e4635f4426 100644 +--- a/gentpl.py ++++ b/gentpl.py +@@ -694,10 +694,10 @@ def module(defn, platform): + var_set(cname(defn) + "_SOURCES", platform_sources(defn, platform) + " ## platform sources") + var_set("nodist_" + cname(defn) + "_SOURCES", platform_nodist_sources(defn, platform) + " ## platform nodist sources") + var_set(cname(defn) + "_LDADD", platform_ldadd(defn, platform)) +- var_set(cname(defn) + "_CFLAGS", "$(AM_CFLAGS) $(CFLAGS_MODULE) " + platform_cflags(defn, platform)) +- var_set(cname(defn) + "_LDFLAGS", "$(AM_LDFLAGS) $(LDFLAGS_MODULE) " + platform_ldflags(defn, platform)) +- var_set(cname(defn) + "_CPPFLAGS", "$(AM_CPPFLAGS) $(CPPFLAGS_MODULE) " + platform_cppflags(defn, platform)) +- var_set(cname(defn) + "_CCASFLAGS", "$(AM_CCASFLAGS) $(CCASFLAGS_MODULE) " + platform_ccasflags(defn, platform)) ++ var_set(cname(defn) + "_CFLAGS", "$(CFLAGS_MODULE) " + platform_cflags(defn, platform)) ++ var_set(cname(defn) + "_LDFLAGS", "$(LDFLAGS_MODULE) " + platform_ldflags(defn, platform)) ++ var_set(cname(defn) + "_CPPFLAGS", "$(CPPFLAGS_MODULE) " + platform_cppflags(defn, platform)) ++ var_set(cname(defn) + "_CCASFLAGS", "$(CCASFLAGS_MODULE) " + platform_ccasflags(defn, platform)) + var_set(cname(defn) + "_DEPENDENCIES", "$(TARGET_OBJ2ELF) " + platform_dependencies(defn, platform)) + + gvar_add("dist_noinst_DATA", extra_dist(defn)) diff --git a/0214-module-verifier-make-it-possible-to-run-checkers-on-.patch b/0214-module-verifier-make-it-possible-to-run-checkers-on-.patch new file mode 100644 index 00000000..0bdfca1e --- /dev/null +++ b/0214-module-verifier-make-it-possible-to-run-checkers-on-.patch @@ -0,0 +1,58 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Wed, 1 Aug 2018 10:24:52 -0400 +Subject: [PATCH] module-verifier: make it possible to run checkers on + grub-module-verifierxx.c + +This makes it so you can treat grub-module-verifierxx.c as a file you can +build directly, so syntax checkers like vim's "syntastic" plugin, which uses +"gcc -x c -fsyntax-only" to build it, will work. + +One still has to do whatever setup is required to make it pick the right +include dirs, which -W options we use, etc., but this makes it so you can do +the checking on the file you're editing, rather than on a different file. + +v2: fix the typo in the #else clause in util/grub-module-verifierXX.c + +Signed-off-by: Peter Jones +--- + util/grub-module-verifier32.c | 2 ++ + util/grub-module-verifier64.c | 2 ++ + util/grub-module-verifierXX.c | 9 +++++++++ + 3 files changed, 13 insertions(+) + +diff --git a/util/grub-module-verifier32.c b/util/grub-module-verifier32.c +index 257229f8f08..ba7d41aafea 100644 +--- a/util/grub-module-verifier32.c ++++ b/util/grub-module-verifier32.c +@@ -1,2 +1,4 @@ + #define MODULEVERIFIER_ELF32 1 ++#ifndef GRUB_MODULE_VERIFIERXX + #include "grub-module-verifierXX.c" ++#endif +diff --git a/util/grub-module-verifier64.c b/util/grub-module-verifier64.c +index 4db6b4bedd1..fc23ef800b3 100644 +--- a/util/grub-module-verifier64.c ++++ b/util/grub-module-verifier64.c +@@ -1,2 +1,4 @@ + #define MODULEVERIFIER_ELF64 1 ++#ifndef GRUB_MODULE_VERIFIERXX + #include "grub-module-verifierXX.c" ++#endif +diff --git a/util/grub-module-verifierXX.c b/util/grub-module-verifierXX.c +index 1feaafc9b9e..597ded14362 100644 +--- a/util/grub-module-verifierXX.c ++++ b/util/grub-module-verifierXX.c +@@ -1,3 +1,12 @@ ++#define GRUB_MODULE_VERIFIERXX ++#if !defined(MODULEVERIFIER_ELF32) && !defined(MODULEVERIFIER_ELF64) ++#if __SIZEOF_POINTER__ == 8 ++#include "grub-module-verifier64.c" ++#else ++#include "grub-module-verifier32.c" ++#endif ++#endif ++ + #include + + #include diff --git a/0215-grub-module-verifier-report-the-filename-or-modname-.patch b/0215-grub-module-verifier-report-the-filename-or-modname-.patch new file mode 100644 index 00000000..c27d0654 --- /dev/null +++ b/0215-grub-module-verifier-report-the-filename-or-modname-.patch @@ -0,0 +1,250 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Wed, 1 Aug 2018 10:12:47 -0400 +Subject: [PATCH] grub-module-verifier: report the filename or modname in + errors. + +Make it so that when grub-module-verifier complains of an issue, it tells you +which module the issue was with. + +Signed-off-by: Peter Jones +--- + util/grub-module-verifier.c | 6 ++--- + util/grub-module-verifierXX.c | 58 ++++++++++++++++++++++-------------------- + include/grub/module_verifier.h | 4 +-- + 3 files changed, 36 insertions(+), 32 deletions(-) + +diff --git a/util/grub-module-verifier.c b/util/grub-module-verifier.c +index a79271f6631..03ba1ab437a 100644 +--- a/util/grub-module-verifier.c ++++ b/util/grub-module-verifier.c +@@ -157,7 +157,7 @@ main (int argc, char **argv) + if (strcmp(archs[arch].name, argv[2]) == 0) + break; + if (arch == ARRAY_SIZE(archs)) +- grub_util_error("unknown arch: %s", argv[2]); ++ grub_util_error("%s: unknown arch: %s", argv[1], argv[2]); + + for (whitelist = 0; whitelist < ARRAY_SIZE(whitelists); whitelist++) + if (strcmp(whitelists[whitelist].arch, argv[2]) == 0 +@@ -169,8 +169,8 @@ main (int argc, char **argv) + module_size = grub_util_get_image_size (argv[1]); + module_img = grub_util_read_image (argv[1]); + if (archs[arch].voidp_sizeof == 8) +- grub_module_verify64(module_img, module_size, &archs[arch], whitelist_empty); ++ grub_module_verify64(argv[1], module_img, module_size, &archs[arch], whitelist_empty); + else +- grub_module_verify32(module_img, module_size, &archs[arch], whitelist_empty); ++ grub_module_verify32(argv[1], module_img, module_size, &archs[arch], whitelist_empty); + return 0; + } +diff --git a/util/grub-module-verifierXX.c b/util/grub-module-verifierXX.c +index 597ded14362..a98e2f9b1ac 100644 +--- a/util/grub-module-verifierXX.c ++++ b/util/grub-module-verifierXX.c +@@ -160,14 +160,15 @@ find_section (const struct grub_module_verifier_arch *arch, Elf_Ehdr *e, const c + } + + static void +-check_license (const struct grub_module_verifier_arch *arch, Elf_Ehdr *e) ++check_license (const char * const filename, ++ const struct grub_module_verifier_arch *arch, Elf_Ehdr *e) + { + Elf_Shdr *s = find_section (arch, e, ".module_license"); + if (s && (strcmp ((char *) e + grub_target_to_host(s->sh_offset), "LICENSE=GPLv3") == 0 + || strcmp ((char *) e + grub_target_to_host(s->sh_offset), "LICENSE=GPLv3+") == 0 + || strcmp ((char *) e + grub_target_to_host(s->sh_offset), "LICENSE=GPLv2+") == 0)) + return; +- grub_util_error ("incompatible license"); ++ grub_util_error ("%s: incompatible license", filename); + } + + static Elf_Sym * +@@ -233,10 +234,10 @@ check_symbols (const struct grub_module_verifier_arch *arch, + s = find_section (arch, e, ".moddeps"); + + if (!s) +- grub_util_error ("no symbol table and no .moddeps section"); ++ grub_util_error ("%s: no symbol table and no .moddeps section", modname); + + if (!s->sh_size) +- grub_util_error ("no symbol table and empty .moddeps section"); ++ grub_util_error ("%s: no symbol table and empty .moddeps section", modname); + + return; + } +@@ -257,7 +258,7 @@ check_symbols (const struct grub_module_verifier_arch *arch, + break; + + default: +- return grub_util_error ("unknown symbol type `%d'", (int) type); ++ return grub_util_error ("%s: unknown symbol type `%d'", modname, (int) type); + } + } + } +@@ -283,7 +284,8 @@ is_symbol_local(Elf_Sym *sym) + } + + static void +-section_check_relocations (const struct grub_module_verifier_arch *arch, void *ehdr, ++section_check_relocations (const char * const modname, ++ const struct grub_module_verifier_arch *arch, void *ehdr, + Elf_Shdr *s, size_t target_seg_size) + { + Elf_Rel *rel, *max; +@@ -292,7 +294,7 @@ section_check_relocations (const struct grub_module_verifier_arch *arch, void *e + + symtab = get_symtab (arch, ehdr, &symtabsize, &symtabentsize); + if (!symtab) +- grub_util_error ("relocation without symbol table"); ++ grub_util_error ("%s: relocation without symbol table", modname); + + for (rel = (Elf_Rel *) ((char *) ehdr + grub_target_to_host (s->sh_offset)), + max = (Elf_Rel *) ((char *) rel + grub_target_to_host (s->sh_size)); +@@ -303,7 +305,7 @@ section_check_relocations (const struct grub_module_verifier_arch *arch, void *e + unsigned i; + + if (target_seg_size < grub_target_to_host (rel->r_offset)) +- grub_util_error ("reloc offset is out of the segment"); ++ grub_util_error ("%s: reloc offset is out of the segment", modname); + + grub_uint32_t type = ELF_R_TYPE (grub_target_to_host (rel->r_info)); + +@@ -316,17 +318,17 @@ section_check_relocations (const struct grub_module_verifier_arch *arch, void *e + if (arch->supported_relocations[i] != -1) + continue; + if (!arch->short_relocations) +- grub_util_error ("unsupported relocation 0x%x", type); ++ grub_util_error ("%s: unsupported relocation 0x%x", modname, type); + for (i = 0; arch->short_relocations[i] != -1; i++) + if (type == arch->short_relocations[i]) + break; + if (arch->short_relocations[i] == -1) +- grub_util_error ("unsupported relocation 0x%x", type); ++ grub_util_error ("%s: unsupported relocation 0x%x", modname, type); + sym = (Elf_Sym *) ((char *) symtab + symtabentsize * ELF_R_SYM (grub_target_to_host (rel->r_info))); + + if (is_symbol_local (sym)) + continue; +- grub_util_error ("relocation 0x%x is not module-local", type); ++ grub_util_error ("%s: relocation 0x%x is not module-local", modname, type); + } + #if defined(MODULEVERIFIER_ELF64) + if (arch->machine == EM_AARCH64) +@@ -351,11 +353,11 @@ section_check_relocations (const struct grub_module_verifier_arch *arch, void *e + && ELF_R_TYPE (rel2->r_info) == R_AARCH64_LD64_GOT_LO12_NC) + break; + if (rel2 >= (Elf_Rela *) max) +- grub_util_error ("ADR_GOT_PAGE without matching LD64_GOT_LO12_NC"); ++ grub_util_error ("%s: ADR_GOT_PAGE without matching LD64_GOT_LO12_NC", modname); + break; + case R_AARCH64_LD64_GOT_LO12_NC: + if (unmatched_adr_got_page == 0) +- grub_util_error ("LD64_GOT_LO12_NC without matching ADR_GOT_PAGE"); ++ grub_util_error ("%s: LD64_GOT_LO12_NC without matching ADR_GOT_PAGE", modname); + unmatched_adr_got_page--; + break; + } +@@ -365,7 +367,8 @@ section_check_relocations (const struct grub_module_verifier_arch *arch, void *e + } + + static void +-check_relocations (const struct grub_module_verifier_arch *arch, Elf_Ehdr *e) ++check_relocations (const char * const modname, ++ const struct grub_module_verifier_arch *arch, Elf_Ehdr *e) + { + Elf_Shdr *s; + unsigned i; +@@ -378,21 +381,22 @@ check_relocations (const struct grub_module_verifier_arch *arch, Elf_Ehdr *e) + Elf_Shdr *ts; + + if (grub_target_to_host32 (s->sh_type) == SHT_REL && !(arch->flags & GRUB_MODULE_VERIFY_SUPPORTS_REL)) +- grub_util_error ("unsupported SHT_REL"); ++ grub_util_error ("%s: unsupported SHT_REL", modname); + if (grub_target_to_host32 (s->sh_type) == SHT_RELA && !(arch->flags & GRUB_MODULE_VERIFY_SUPPORTS_RELA)) +- grub_util_error ("unsupported SHT_RELA"); ++ grub_util_error ("%s: unsupported SHT_RELA", modname); + + /* Find the target segment. */ + if (grub_target_to_host32 (s->sh_info) >= grub_target_to_host16 (e->e_shnum)) +- grub_util_error ("orphaned reloc section"); ++ grub_util_error ("%s: orphaned reloc section", modname); + ts = (Elf_Shdr *) ((char *) e + grub_target_to_host (e->e_shoff) + grub_target_to_host32 (s->sh_info) * grub_target_to_host16 (e->e_shentsize)); + +- section_check_relocations (arch, e, s, grub_target_to_host (ts->sh_size)); ++ section_check_relocations (modname, arch, e, s, grub_target_to_host (ts->sh_size)); + } + } + + void +-SUFFIX(grub_module_verify) (void *module_img, size_t size, ++SUFFIX(grub_module_verify) (const char * const filename, ++ void *module_img, size_t size, + const struct grub_module_verifier_arch *arch, + const char **whitelist_empty) + { +@@ -400,7 +404,7 @@ SUFFIX(grub_module_verify) (void *module_img, size_t size, + + /* Check the header size. */ + if (size < sizeof (Elf_Ehdr)) +- grub_util_error ("ELF header smaller than expected"); ++ grub_util_error ("%s: ELF header smaller than expected", filename); + + /* Check the magic numbers. */ + if (e->e_ident[EI_MAG0] != ELFMAG0 +@@ -409,36 +413,36 @@ SUFFIX(grub_module_verify) (void *module_img, size_t size, + || e->e_ident[EI_MAG3] != ELFMAG3 + || e->e_ident[EI_VERSION] != EV_CURRENT + || grub_target_to_host32 (e->e_version) != EV_CURRENT) +- grub_util_error ("invalid arch-independent ELF magic"); ++ grub_util_error ("%s: invalid arch-independent ELF magic", filename); + + if (e->e_ident[EI_CLASS] != ELFCLASSXX + || e->e_ident[EI_DATA] != (arch->bigendian ? ELFDATA2MSB : ELFDATA2LSB) + || grub_target_to_host16 (e->e_machine) != arch->machine) +- grub_util_error ("invalid arch-dependent ELF magic"); ++ grub_util_error ("%s: invalid arch-dependent ELF magic", filename); + + if (grub_target_to_host16 (e->e_type) != ET_REL) + { +- grub_util_error ("this ELF file is not of the right type"); ++ grub_util_error ("%s: this ELF file is not of the right type", filename); + } + + /* Make sure that every section is within the core. */ + if (size < grub_target_to_host (e->e_shoff) + + (grub_uint32_t) grub_target_to_host16 (e->e_shentsize) * grub_target_to_host16(e->e_shnum)) + { +- grub_util_error ("ELF sections outside core"); ++ grub_util_error ("%s: ELF sections outside core", filename); + } + +- check_license (arch, e); ++ check_license (filename, arch, e); + + Elf_Shdr *s; + const char *modname; + + s = find_section (arch, e, ".modname"); + if (!s) +- grub_util_error ("no module name found"); ++ grub_util_error ("%s: no module name found", filename); + + modname = (const char *) e + grub_target_to_host (s->sh_offset); + + check_symbols(arch, e, modname, whitelist_empty); +- check_relocations(arch, e); ++ check_relocations(modname, arch, e); + } +diff --git a/include/grub/module_verifier.h b/include/grub/module_verifier.h +index f4870cb9c2d..ba21c75e2eb 100644 +--- a/include/grub/module_verifier.h ++++ b/include/grub/module_verifier.h +@@ -16,5 +16,5 @@ struct grub_module_verifier_arch { + const int *short_relocations; + }; + +-void grub_module_verify64(void *module_img, size_t module_size, const struct grub_module_verifier_arch *arch, const char **whitelist_empty); +-void grub_module_verify32(void *module_img, size_t module_size, const struct grub_module_verifier_arch *arch, const char **whitelist_empty); ++void grub_module_verify64(const char * const filename, void *module_img, size_t module_size, const struct grub_module_verifier_arch *arch, const char **whitelist_empty); ++void grub_module_verify32(const char * const filename, void *module_img, size_t module_size, const struct grub_module_verifier_arch *arch, const char **whitelist_empty); diff --git a/0216-Make-efi_netfs-not-duplicate-symbols-from-efinet.patch b/0216-Make-efi_netfs-not-duplicate-symbols-from-efinet.patch new file mode 100644 index 00000000..e1b9bb44 --- /dev/null +++ b/0216-Make-efi_netfs-not-duplicate-symbols-from-efinet.patch @@ -0,0 +1,27 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Wed, 11 Jul 2018 13:50:00 -0400 +Subject: [PATCH] Make efi_netfs not duplicate symbols from efinet + +Signed-off-by: Peter Jones +--- + grub-core/Makefile.core.def | 6 ------ + 1 file changed, 6 deletions(-) + +diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def +index d3e3bfd4d7a..715d3a3ec02 100644 +--- a/grub-core/Makefile.core.def ++++ b/grub-core/Makefile.core.def +@@ -2186,12 +2186,6 @@ module = { + module = { + name = efi_netfs; + common = net/efi/efi_netfs.c; +- common = net/efi/net.c; +- common = net/efi/http.c; +- common = net/efi/pxe.c; +- common = net/efi/ip4_config.c; +- common = net/efi/ip6_config.c; +- common = net/efi/dhcp.c; + enable = efi; + }; + diff --git a/0217-Rework-how-the-fdt-command-builds.patch b/0217-Rework-how-the-fdt-command-builds.patch new file mode 100644 index 00000000..5f66a7a9 --- /dev/null +++ b/0217-Rework-how-the-fdt-command-builds.patch @@ -0,0 +1,118 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Thu, 12 Jul 2018 11:00:45 -0400 +Subject: [PATCH] Rework how the fdt command builds. + +Trying to avoid all variants of: +cat syminfo.lst | sort | gawk -f ../../grub-core/genmoddep.awk > moddep.lst || (rm -f moddep.lst; exit 1) +grub_fdt_install in linux is not defined +grub_fdt_load in linux is not defined +grub_fdt_unload in linux is not defined +grub_fdt_install in xen_boot is not defined +grub_fdt_load in xen_boot is not defined +grub_fdt_unload in xen_boot is not defined + +Signed-off-by: Peter Jones +--- + grub-core/Makefile.core.def | 5 ++--- + grub-core/lib/fdt.c | 2 -- + grub-core/loader/efi/fdt.c | 2 ++ + include/grub/fdt.h | 4 ++++ + grub-core/Makefile.am | 1 + + 5 files changed, 9 insertions(+), 5 deletions(-) + +diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def +index 715d3a3ec02..203584fb00b 100644 +--- a/grub-core/Makefile.core.def ++++ b/grub-core/Makefile.core.def +@@ -166,7 +166,6 @@ kernel = { + arm_coreboot = kern/arm/coreboot/init.c; + arm_coreboot = kern/arm/coreboot/timer.c; + arm_coreboot = kern/arm/coreboot/coreboot.S; +- arm_coreboot = lib/fdt.c; + arm_coreboot = bus/fdt.c; + arm_coreboot = term/ps2.c; + arm_coreboot = term/arm/pl050.c; +@@ -317,6 +316,8 @@ kernel = { + arm64 = kern/arm64/dl.c; + arm64 = kern/arm64/dl_helper.c; + ++ fdt = lib/fdt.c; ++ + emu = disk/host.c; + emu = kern/emu/cache_s.S; + emu = kern/emu/hostdisk.c; +@@ -1714,7 +1715,6 @@ module = { + arm_uboot = loader/arm/linux.c; + arm64 = loader/arm64/linux.c; + emu = loader/emu/linux.c; +- fdt = lib/fdt.c; + + common = loader/linux.c; + common = lib/cmdline.c; +@@ -1725,7 +1725,6 @@ module = { + module = { + name = fdt; + efi = loader/efi/fdt.c; +- common = lib/fdt.c; + enable = fdt; + }; + +diff --git a/grub-core/lib/fdt.c b/grub-core/lib/fdt.c +index 0d371c5633e..37e04bd69e7 100644 +--- a/grub-core/lib/fdt.c ++++ b/grub-core/lib/fdt.c +@@ -21,8 +21,6 @@ + #include + #include + +-GRUB_MOD_LICENSE ("GPLv3+"); +- + #define FDT_SUPPORTED_VERSION 17 + + #define FDT_BEGIN_NODE 0x00000001 +diff --git a/grub-core/loader/efi/fdt.c b/grub-core/loader/efi/fdt.c +index a4c6e803645..a9dbcfdfeaf 100644 +--- a/grub-core/loader/efi/fdt.c ++++ b/grub-core/loader/efi/fdt.c +@@ -26,6 +26,8 @@ + #include + #include + ++GRUB_MOD_LICENSE ("GPLv3+"); ++ + static void *loaded_fdt; + static void *fdt; + +diff --git a/include/grub/fdt.h b/include/grub/fdt.h +index 158b1bc4b3a..6ee57e11ab3 100644 +--- a/include/grub/fdt.h ++++ b/include/grub/fdt.h +@@ -19,6 +19,8 @@ + #ifndef GRUB_FDT_HEADER + #define GRUB_FDT_HEADER 1 + ++#if defined(__arm__) || defined(__aarch64__) ++ + #include + #include + +@@ -141,4 +143,6 @@ int EXPORT_FUNC(grub_fdt_set_prop) (void *fdt, unsigned int nodeoffset, const ch + grub_fdt_set_prop ((fdt), (nodeoffset), "reg", reg_64, 16); \ + }) + ++#endif /* defined(__arm__) || defined(__aarch64__) */ ++ + #endif /* ! GRUB_FDT_HEADER */ +diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am +index 3781bb9cbb9..4062652506d 100644 +--- a/grub-core/Makefile.am ++++ b/grub-core/Makefile.am +@@ -76,6 +76,7 @@ KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/sb.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/env.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/env_private.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/err.h ++KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/fdt.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/file.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/fs.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/i18n.h diff --git a/0218-Disable-non-wordsize-allocations-on-arm.patch b/0218-Disable-non-wordsize-allocations-on-arm.patch new file mode 100644 index 00000000..5c627a37 --- /dev/null +++ b/0218-Disable-non-wordsize-allocations-on-arm.patch @@ -0,0 +1,41 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Thu, 2 Aug 2018 10:56:38 -0400 +Subject: [PATCH] Disable non-wordsize allocations on arm + +Signed-off-by: Peter Jones +--- + configure.ac | 20 ++++++++++++++++++++ + 1 file changed, 20 insertions(+) + +diff --git a/configure.ac b/configure.ac +index 819212095ff..9323c125469 100644 +--- a/configure.ac ++++ b/configure.ac +@@ -1234,6 +1234,26 @@ if test "x$target_cpu" = xarm; then + done + ]) + ++ AC_CACHE_CHECK([for options to disable movt and movw relocations], ++ grub_cv_target_cc_mword_relocations, ++ [grub_cv_target_cc_mword_relocations=no ++ for cand in "-mword-relocations" ; do ++ if test x"$grub_cv_target_cc_mword_relocations" != xno ; then ++ break ++ fi ++ CFLAGS="$TARGET_CFLAGS $cand -Werror" ++ CPPFLAGS="$TARGET_CPPFLAGS" ++ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[]], [[]])], ++ [grub_cv_target_cc_mword_relocations="$cand"], ++ []) ++ done ++ ]) ++ if test x"$grub_cv_target_cc_mword_relocations" = xno ; then ++ AC_MSG_ERROR(["your compiler doesn't support disabling movw/movt relocations"]) ++ else ++ TARGET_CFLAGS="$TARGET_CFLAGS $grub_cv_target_cc_mword_relocations" ++ fi ++ + if test x"$grub_cv_target_cc_mno_movt" != xno ; then + # A trick so that clang doesn't see it on link stage + TARGET_CPPFLAGS="$TARGET_CPPFLAGS $grub_cv_target_cc_mno_movt" diff --git a/grub.macros b/grub.macros index fff33ef3..192dbf21 100644 --- a/grub.macros +++ b/grub.macros @@ -29,15 +29,24 @@ -e 's/^/ -fno-strict-aliasing /' \\\ %{nil} -%global efi_cflags \\\ - %{expand:%%(echo %{optflags} | %{cflags_sed})} +%global host_cflags %{expand:%%(echo %{optflags} | %{cflags_sed})} +%global target_cflags %{expand:%%(echo %{optflags} | %{cflags_sed})} -%global legacy_cflags \\\ - %{expand:%%(echo %{optflags} | \\\ +%global legacy_target_cflags \\\ + %{expand:%%(echo %{target_cflags} | \\\ %{cflags_sed} \\\ -e 's/-m64//g' \\\ -e 's/-mcpu=power[[:alnum:]]\\+/-mcpu=power6/g' \\\ )} +%global legacy_host_cflags \\\ + %{expand:%%(echo %{host_cflags} | \\\ + %{cflags_sed} \\\ + -e 's/-m64//g' \\\ + -e 's/-mcpu=power[[:alnum:]]\\+/-mcpu=power6/g' \\\ + )} + +%global efi_host_cflags %{expand:%%(echo %{host_cflags})} +%global efi_target_cflags %{expand:%%(echo %{target_cflags})} %global with_efi_arch 0 %global with_alt_efi_arch 0 @@ -82,14 +91,13 @@ %{?with_efi_only:%global without_efi_only 1} ### fixme -%global efi_modules_base http lsefimmap %ifarch aarch64 %{arm} -%global efi_modules %{efi_modules_base} linux +%global efi_modules " " %else -%global efi_modules %{efi_modules_base} backtrace linuxefi usb usbserial_common usbserial_pl2303 usbserial_ftdi usbserial_usbdebug +%global efi_modules " backtrace chain usb usbserial_common usbserial_pl2303 usbserial_ftdi usbserial_usbdebug " %endif -%ifarch aarch64 +%ifarch aarch64 %{arm} %global legacy_provides -l %endif @@ -119,8 +127,10 @@ %global alt_grub_target_name i386-efi %global alt_platform efi %global alt_package_arch efi-ia32 -%global alt_efi_cflags \\\ - %{expand:%%(echo %{optflags} | \\\ + +%global alt_efi_host_cflags %{expand:%%(echo %{efi_host_cflags})} +%global alt_efi_target_cflags \\\ + %{expand:%%(echo %{target_cflags} | \\\ %{cflags_sed} \\\ -e 's/-m64//g' \\\ )} @@ -138,6 +148,13 @@ %global target_cpu_name arm %global grub_target_name arm-efi %global package_arch efi-arm +%global efi_target_cflags \\\ + %{expand:%%(echo %{optflags} | \\\ + %{cflags_sed} \\\ + -e 's/-march=armv7-a[[:alnum:]+-]*/&+nofp/g' \\\ + -e 's/-mfpu=[[:alnum:]-]\\+//g' \\\ + -e 's/-mfloat-abi=[[:alpha:]]\\+/-mfloat-abi=soft/g' \\\ + )} %endif %global _target_platform %{target_cpu_name}-%{_vendor}-%{_target_os}%{?_gnu} @@ -166,6 +183,8 @@ # Figure out the right file path to use %global efidir %(eval echo $(grep ^ID= /etc/os-release | sed -e 's/^ID=//' -e 's/rhel/redhat/')) +%global efi_vendor %{efidir} +%global efi_esp_dir /boot/efi/EFI/%{efidir} %ifnarch %{efi_only} %global with_legacy_arch 1 @@ -280,37 +299,39 @@ git init \ echo '![[:digit:]][[:digit:]]_*.in' > util/grub.d/.gitignore \ echo '!*.[[:digit:]]' > util/.gitignore \ echo '!config.h' > include/grub/emu/.gitignore \ -./autogen.sh \ git config user.email "%{name}-owner@fedoraproject.org" \ git config user.name "Fedora Ninjas" \ git config gc.auto 0 \ -rm -f configure \ -git add . \ -git commit -a -q -m "%{tarversion} baseline." \ -git apply --index --whitespace=nowarn %{SOURCE3} \ -git commit -a -q -m "%{tarversion} master." \ -git am --whitespace=nowarn %%{patches} grub-%{grubefiarch}-%{tarversion}/.gitignore cp %{SOURCE4} grub-%{grubefiarch}-%{tarversion}/unifont.pcf.gz +git add grub-%{grubefiarch}-%{tarversion} %endif %if 0%{with_alt_efi_arch} mkdir grub-%{grubaltefiarch}-%{tarversion} +grep -A100000 '# stuff "make" creates' .gitignore > grub-%{grubaltefiarch}-%{tarversion}/.gitignore cp %{SOURCE4} grub-%{grubaltefiarch}-%{tarversion}/unifont.pcf.gz +git add grub-%{grubaltefiarch}-%{tarversion} %endif %if 0%{with_legacy_arch} mkdir grub-%{grublegacyarch}-%{tarversion} +grep -A100000 '# stuff "make" creates' .gitignore > grub-%{grublegacyarch}-%{tarversion}/.gitignore cp %{SOURCE4} grub-%{grublegacyarch}-%{tarversion}/unifont.pcf.gz +git add grub-%{grublegacyarch}-%{tarversion} %endif +git commit -m "After making subdirs" %build %if 0%{with_efi_arch} -%{expand:%do_primary_efi_build %%{grubefiarch} %%{grubefiname} %%{grubeficdname} %%{_target_platform} %%{efi_cflags}} +%{expand:%do_primary_efi_build %%{grubefiarch} %%{grubefiname} %%{grubeficdname} %%{_target_platform} %%{efi_target_cflags} %%{efi_host_cflags}} %endif %if 0%{with_alt_efi_arch} -%{expand:%do_alt_efi_build %%{grubaltefiarch} %%{grubaltefiname} %%{grubalteficdname} %%{_alt_target_platform} %%{alt_efi_cflags}} +%{expand:%do_alt_efi_build %%{grubaltefiarch} %%{grubaltefiname} %%{grubalteficdname} %%{_alt_target_platform} %%{alt_efi_target_cflags} %%{alt_efi_host_cflags}} %endif %if 0%{with_legacy_arch} %{expand:%do_legacy_build %%{grublegacyarch}} @@ -179,10 +187,11 @@ rm -fr $RPM_BUILD_ROOT %{expand:%do_alt_efi_install %%{grubaltefiarch} %%{grubaltefiname} %%{grubalteficdname}} %endif %if 0%{with_legacy_arch} -%{expand:%do_legacy_install %%{grublegacyarch} %%{alt_grub_target_name}} +%{expand:%do_legacy_install %%{grublegacyarch} %%{alt_grub_target_name} 0%{with_efi_arch}} %endif -${RPM_BUILD_ROOT}/%{_bindir}/%{name}-editenv ${RPM_BUILD_ROOT}/boot/efi/EFI/%{efidir}/grubenv create rm -f $RPM_BUILD_ROOT%{_infodir}/dir +ln -s %{name}-set-password ${RPM_BUILD_ROOT}/%{_sbindir}/%{name}-setpassword +echo '.so man8/%{name}-set-password.8' > ${RPM_BUILD_ROOT}/%{_datadir}/man/man8/%{name}-setpassword.8 %ifnarch x86_64 rm -vf ${RPM_BUILD_ROOT}/%{_bindir}/%{name}-render-label rm -vf ${RPM_BUILD_ROOT}/%{_sbindir}/%{name}-bios-setup @@ -236,19 +245,19 @@ if [ -f /boot/grub2/user.cfg ]; then if grep -q '^GRUB_PASSWORD=' /boot/grub2/user.cfg ; then sed -i 's/^GRUB_PASSWORD=/GRUB2_PASSWORD=/' /boot/grub2/user.cfg fi -elif [ -f /boot/efi/EFI/%{efidir}/user.cfg ]; then - if grep -q '^GRUB_PASSWORD=' /boot/efi/EFI/%{efidir}/user.cfg ; then +elif [ -f %{efi_esp_dir}/user.cfg ]; then + if grep -q '^GRUB_PASSWORD=' %{efi_esp_dir}/user.cfg ; then sed -i 's/^GRUB_PASSWORD=/GRUB2_PASSWORD=/' \ - /boot/efi/EFI/%{efidir}/user.cfg + %{efi_esp_dir}/user.cfg fi elif [ -f /etc/grub.d/01_users ] && \ grep -q '^password_pbkdf2 root' /etc/grub.d/01_users ; then - if [ -f /boot/efi/EFI/%{efidir}/grub.cfg ]; then + if [ -f %{efi_esp_dir}/grub.cfg ]; then # on EFI we don't get permissions on the file, but # the directory is protected. grep '^password_pbkdf2 root' /etc/grub.d/01_users | \ sed 's/^password_pbkdf2 root \(.*\)$/GRUB2_PASSWORD=\1/' \ - > /boot/efi/EFI/%{efidir}/user.cfg + > %{efi_esp_dir}/user.cfg fi if [ -f /boot/grub2/grub.cfg ]; then install -m 0600 /dev/null /boot/grub2/user.cfg @@ -313,8 +322,8 @@ fi %exclude /boot/%{name}/themes/system/* %attr(0700,root,root) %dir /boot/grub2 %exclude /boot/grub2/* -%dir %attr(0700,root,root) /boot/efi/EFI/%{efidir} -%exclude /boot/efi/EFI/%{efidir}/* +%dir %attr(0700,root,root) %{efi_esp_dir} +%exclude %{efi_esp_dir}/* %license COPYING %ghost %config(noreplace) /boot/grub2/grubenv %doc INSTALL @@ -330,13 +339,13 @@ fi %{_sysconfdir}/prelink.conf.d/grub2.conf %{_sbindir}/%{name}-get-kernel-settings %{_sbindir}/%{name}-set-default -%{_sbindir}/%{name}-setpassword +%{_sbindir}/%{name}-set*password %{_bindir}/%{name}-editenv %{_bindir}/%{name}-mkpasswd-pbkdf2 %{_datadir}/man/man3/%{name}-get-kernel-settings* %{_datadir}/man/man8/%{name}-set-default* -%{_datadir}/man/man8/%{name}-setpassword* +%{_datadir}/man/man8/%{name}-set*password* %{_datadir}/man/man1/%{name}-editenv* %{_datadir}/man/man1/%{name}-mkpasswd-* @@ -386,7 +395,7 @@ fi # exclude man pages from tools-minimal %exclude %{_datadir}/man/man3/%{name}-get-kernel-settings* %exclude %{_datadir}/man/man8/%{name}-set-default* -%exclude %{_datadir}/man/man8/%{name}-setpassword* +%exclude %{_datadir}/man/man8/%{name}-set*password* %exclude %{_datadir}/man/man1/%{name}-editenv* %exclude %{_datadir}/man/man1/%{name}-mkpasswd-* %exclude %{_datadir}/man/man8/%{name}-macbless* @@ -454,6 +463,10 @@ fi %endif %changelog +* Thu Aug 02 2018 Peter Jones - 2.02-41 +- Backport a pile of fixes from the f29 tree. + Related: rhbz#1609431 + * Tue Jul 31 2018 Peter Jones - 2.02-40 - More bls fixes. Resolves: rhbz#1609431 diff --git a/release-to-master.patch b/release-to-master.patch index 0b0b266f..a1b6e6a0 100644 --- a/release-to-master.patch +++ b/release-to-master.patch @@ -1,5 +1,5 @@ diff --git a/configure.ac b/configure.ac -index edd184154f7e9aad556b6437b8ec22bc79d5a057..571f7a0b5aa4979218cb08033fe3a3e46c07f1a0 100644 +index edd184154f7e9aad556b6437b8ec22bc79d5a057..c7888e40f6695ee23a43fb98420d6cbcd3d86622 100644 --- a/configure.ac +++ b/configure.ac @@ -31,7 +31,7 @@ dnl (such as BUILD_CC, BUILD_CFLAGS, etc.) for the build type and variables @@ -19,7 +19,17 @@ index edd184154f7e9aad556b6437b8ec22bc79d5a057..571f7a0b5aa4979218cb08033fe3a3e4 arm-efi) ;; arm64-efi) ;; *-emu) ;; -@@ -373,7 +374,10 @@ case "$host_os" in +@@ -203,7 +204,8 @@ case "$host_os" in + esac + + case "$host_os" in +- cygwin | windows* | mingw32*) have_exec=n ;; ++ cygwin) have_exec=y ;; ++ windows* | mingw32*) have_exec=n ;; + aros*) have_exec=n ;; + *) have_exec=y;; + esac +@@ -373,7 +375,10 @@ case "$host_os" in ;; *) AC_CHECK_SIZEOF(off_t) @@ -31,7 +41,7 @@ index edd184154f7e9aad556b6437b8ec22bc79d5a057..571f7a0b5aa4979218cb08033fe3a3e4 esac if test x$USE_NLS = xno; then -@@ -456,6 +460,16 @@ case "$build_os" in +@@ -456,6 +461,16 @@ case "$build_os" in esac AC_SUBST(BUILD_EXEEXT) @@ -48,7 +58,7 @@ index edd184154f7e9aad556b6437b8ec22bc79d5a057..571f7a0b5aa4979218cb08033fe3a3e4 # For gnulib. gl_INIT -@@ -1905,6 +1919,7 @@ AM_CONDITIONAL([COND_mipsel], [test x$target_cpu = xmipsel]) +@@ -1905,6 +1920,7 @@ AM_CONDITIONAL([COND_mipsel], [test x$target_cpu = xmipsel]) AM_CONDITIONAL([COND_mipseb], [test x$target_cpu = xmips]) AM_CONDITIONAL([COND_arm], [test x$target_cpu = xarm ]) AM_CONDITIONAL([COND_arm_uboot], [test x$target_cpu = xarm -a x$platform = xuboot]) @@ -56,10 +66,50 @@ index edd184154f7e9aad556b6437b8ec22bc79d5a057..571f7a0b5aa4979218cb08033fe3a3e4 AM_CONDITIONAL([COND_arm_efi], [test x$target_cpu = xarm -a x$platform = xefi]) AM_CONDITIONAL([COND_arm64], [test x$target_cpu = xarm64 ]) AM_CONDITIONAL([COND_arm64_efi], [test x$target_cpu = xarm64 -a x$platform = xefi]) +diff --git a/Makefile.util.def b/Makefile.util.def +index f9caccb9780ffe8d4b31c8a19399ba7bbd308e56..3180ac880a9aa86e94fb47a7386bfa324425bff0 100644 +--- a/Makefile.util.def ++++ b/Makefile.util.def +@@ -99,6 +99,7 @@ library = { + common = grub-core/fs/ext2.c; + common = grub-core/fs/fat.c; + common = grub-core/fs/exfat.c; ++ common = grub-core/fs/f2fs.c; + common = grub-core/fs/fshelp.c; + common = grub-core/fs/hfs.c; + common = grub-core/fs/hfsplus.c; +@@ -774,6 +775,12 @@ script = { + common = tests/xfs_test.in; + }; + ++script = { ++ testcase; ++ name = f2fs_test; ++ common = tests/f2fs_test.in; ++}; ++ + script = { + testcase; + name = nilfs2_test; diff --git a/grub-core/Makefile.core.def b/grub-core/Makefile.core.def -index 2dfa22a9271bd6624fad9b91ce051ac12202dfbd..a65c27f7ff2252133998da52371d0e23b92f5984 100644 +index 2dfa22a9271bd6624fad9b91ce051ac12202dfbd..9590e87d9c080d6675a9521d91ef6a47d39f2751 100644 --- a/grub-core/Makefile.core.def +++ b/grub-core/Makefile.core.def +@@ -68,11 +68,11 @@ kernel = { + i386_pc_ldflags = '$(TARGET_IMG_LDFLAGS)'; + i386_pc_ldflags = '$(TARGET_IMG_BASE_LDOPT),0x9000'; + i386_qemu_ldflags = '$(TARGET_IMG_LDFLAGS)'; +- i386_qemu_ldflags = '$(TARGET_IMG_BASE_LDOPT),0x8200'; ++ i386_qemu_ldflags = '$(TARGET_IMG_BASE_LDOPT),0x9000'; + i386_coreboot_ldflags = '$(TARGET_IMG_LDFLAGS)'; +- i386_coreboot_ldflags = '$(TARGET_IMG_BASE_LDOPT),0x8200'; ++ i386_coreboot_ldflags = '$(TARGET_IMG_BASE_LDOPT),0x9000'; + i386_multiboot_ldflags = '$(TARGET_IMG_LDFLAGS)'; +- i386_multiboot_ldflags = '$(TARGET_IMG_BASE_LDOPT),0x8200'; ++ i386_multiboot_ldflags = '$(TARGET_IMG_BASE_LDOPT),0x9000'; + i386_ieee1275_ldflags = '$(TARGET_IMG_LDFLAGS)'; + i386_ieee1275_ldflags = '$(TARGET_IMG_BASE_LDOPT),0x10000'; + i386_xen_ldflags = '$(TARGET_IMG_LDFLAGS)'; @@ -92,6 +92,8 @@ kernel = { emu_cppflags = '$(CPPFLAGS_GNULIB)'; arm_uboot_ldflags = '-Wl,-r,-d'; @@ -110,7 +160,15 @@ index 2dfa22a9271bd6624fad9b91ce051ac12202dfbd..a65c27f7ff2252133998da52371d0e23 efi = disk/efi/efidisk.c; efi = kern/efi/efi.c; -@@ -225,8 +243,10 @@ kernel = { +@@ -211,7 +229,6 @@ kernel = { + ia64_efi = kern/ia64/cache.c; + + arm_efi = kern/arm/efi/init.c; +- arm_efi = kern/arm/efi/misc.c; + arm_efi = kern/efi/fdt.c; + + arm64_efi = kern/arm64/efi/init.c; +@@ -225,8 +242,10 @@ kernel = { i386_qemu = kern/vga_init.c; i386_qemu = kern/i386/qemu/mmap.c; @@ -122,7 +180,7 @@ index 2dfa22a9271bd6624fad9b91ce051ac12202dfbd..a65c27f7ff2252133998da52371d0e23 i386_multiboot = kern/i386/multiboot_mmap.c; -@@ -238,6 +258,7 @@ kernel = { +@@ -238,6 +257,7 @@ kernel = { mips_qemu_mips = term/ns8250.c; mips_qemu_mips = term/serial.c; mips_qemu_mips = term/at_keyboard.c; @@ -130,7 +188,7 @@ index 2dfa22a9271bd6624fad9b91ce051ac12202dfbd..a65c27f7ff2252133998da52371d0e23 mips_qemu_mips = commands/boot.c; mips_qemu_mips = commands/keylayouts.c; mips_qemu_mips = term/i386/pc/vga_text.c; -@@ -253,6 +274,7 @@ kernel = { +@@ -253,6 +273,7 @@ kernel = { mips_loongson = bus/pci.c; mips_loongson = kern/mips/loongson/init.c; mips_loongson = term/at_keyboard.c; @@ -138,7 +196,7 @@ index 2dfa22a9271bd6624fad9b91ce051ac12202dfbd..a65c27f7ff2252133998da52371d0e23 mips_loongson = commands/boot.c; mips_loongson = term/serial.c; mips_loongson = video/sm712.c; -@@ -574,7 +596,10 @@ module = { +@@ -574,7 +595,10 @@ module = { module = { name = ehci; common = bus/usb/ehci.c; @@ -149,7 +207,7 @@ index 2dfa22a9271bd6624fad9b91ce051ac12202dfbd..a65c27f7ff2252133998da52371d0e23 }; module = { -@@ -641,6 +666,7 @@ module = { +@@ -641,6 +665,7 @@ module = { module = { name = cbtable; common = kern/i386/coreboot/cbtable.c; @@ -157,7 +215,7 @@ index 2dfa22a9271bd6624fad9b91ce051ac12202dfbd..a65c27f7ff2252133998da52371d0e23 enable = i386_pc; enable = i386_efi; enable = i386_qemu; -@@ -754,6 +780,7 @@ module = { +@@ -754,6 +779,7 @@ module = { enable = arm_efi; enable = arm64_efi; enable = arm_uboot; @@ -165,7 +223,7 @@ index 2dfa22a9271bd6624fad9b91ce051ac12202dfbd..a65c27f7ff2252133998da52371d0e23 }; module = { -@@ -837,7 +864,8 @@ module = { +@@ -837,17 +863,14 @@ module = { efi = lib/efi/halt.c; ieee1275 = lib/ieee1275/halt.c; emu = lib/emu/halt.c; @@ -175,7 +233,17 @@ index 2dfa22a9271bd6624fad9b91ce051ac12202dfbd..a65c27f7ff2252133998da52371d0e23 }; module = { -@@ -855,6 +883,7 @@ module = { + name = reboot; + i386 = lib/i386/reboot.c; + i386 = lib/i386/reboot_trampoline.S; +- ia64_efi = lib/efi/reboot.c; +- x86_64_efi = lib/efi/reboot.c; +- arm_efi = lib/efi/reboot.c; +- arm64_efi = lib/efi/reboot.c; + powerpc_ieee1275 = lib/ieee1275/reboot.c; + sparc64_ieee1275 = lib/ieee1275/reboot.c; + mips_arc = lib/mips/arc/reboot.c; +@@ -855,6 +878,7 @@ module = { mips_qemu_mips = lib/mips/qemu_mips/reboot.c; xen = lib/xen/reboot.c; uboot = lib/uboot/reboot.c; @@ -183,7 +251,27 @@ index 2dfa22a9271bd6624fad9b91ce051ac12202dfbd..a65c27f7ff2252133998da52371d0e23 common = commands/reboot.c; }; -@@ -1548,7 +1577,8 @@ module = { +@@ -873,7 +897,6 @@ module = { + module = { + name = hdparm; + common = commands/hdparm.c; +- common = lib/hexdump.c; + enable = pci; + enable = mips_qemu_mips; + }; +@@ -1290,6 +1313,11 @@ module = { + common = fs/exfat.c; + }; + ++module = { ++ name = f2fs; ++ common = fs/f2fs.c; ++}; ++ + module = { + name = fshelp; + common = fs/fshelp.c; +@@ -1548,7 +1576,8 @@ module = { name = datetime; cmos = lib/cmos_datetime.c; efi = lib/efi/datetime.c; @@ -193,16 +281,60 @@ index 2dfa22a9271bd6624fad9b91ce051ac12202dfbd..a65c27f7ff2252133998da52371d0e23 sparc64_ieee1275 = lib/ieee1275/datetime.c; powerpc_ieee1275 = lib/ieee1275/datetime.c; sparc64_ieee1275 = lib/ieee1275/cmos.c; -@@ -1677,7 +1707,7 @@ module = { +@@ -1601,8 +1630,6 @@ module = { + module = { + name = linux16; + common = loader/i386/pc/linux.c; +- common = loader/linux.c; +- common = lib/cmdline.c; + enable = x86; + }; + +@@ -1637,7 +1664,6 @@ module = { + cppflags = "-DGRUB_USE_MULTIBOOT2"; + + common = loader/multiboot.c; +- common = lib/cmdline.c; + common = loader/multiboot_mbi2.c; + enable = x86; + enable = mips; +@@ -1646,7 +1672,6 @@ module = { + module = { + name = multiboot; + common = loader/multiboot.c; +- common = lib/cmdline.c; + x86 = loader/i386/multiboot_mbi.c; + extra_dist = loader/multiboot_elfxx.c; + enable = x86; +@@ -1654,7 +1679,6 @@ module = { + + module = { + name = xen_boot; +- common = lib/cmdline.c; + arm64 = loader/arm64/xen_boot.c; + enable = arm64; + }; +@@ -1668,7 +1692,9 @@ module = { + powerpc_ieee1275 = loader/powerpc/ieee1275/linux.c; + sparc64_ieee1275 = loader/sparc64/ieee1275/linux.c; + ia64_efi = loader/ia64/efi/linux.c; +- arm = loader/arm/linux.c; ++ arm_coreboot = loader/arm/linux.c; ++ arm_efi = loader/arm64/linux.c; ++ arm_uboot = loader/arm/linux.c; + arm64 = loader/arm64/linux.c; + common = loader/linux.c; + common = lib/cmdline.c; +@@ -1677,7 +1703,7 @@ module = { module = { name = fdt; - arm64 = loader/arm64/fdt.c; -+ arm64 = loader/efi/fdt.c; ++ efi = loader/efi/fdt.c; common = lib/fdt.c; enable = fdt; }; -@@ -1869,6 +1899,7 @@ module = { +@@ -1869,6 +1895,7 @@ module = { module = { name = at_keyboard; common = term/at_keyboard.c; @@ -210,7 +342,7 @@ index 2dfa22a9271bd6624fad9b91ce051ac12202dfbd..a65c27f7ff2252133998da52371d0e23 enable = x86; }; -@@ -1961,6 +1992,11 @@ module = { +@@ -1961,6 +1988,11 @@ module = { common = tests/example_functional_test.c; }; @@ -1219,6 +1351,94 @@ index d901c3892630f2500eda9822c712aae278017907..d1ce99af438914692d1b71b001705068 for (j = 0; j < num_protocols; j++) { for (k = 0; k < ARRAY_SIZE (known_protocols); k++) +diff --git a/grub-core/commands/file.c b/grub-core/commands/file.c +index 12fba99e06a23cb72af67fc4bfb758d97bfa0e67..3ff6d5522d2d572c2af16fec371faeb8e4b28f9d 100644 +--- a/grub-core/commands/file.c ++++ b/grub-core/commands/file.c +@@ -27,6 +27,8 @@ + #include + #include + #include ++#include ++#include + #include + #include + #include +@@ -383,21 +385,19 @@ grub_cmd_file (grub_extcmd_context_t ctxt, int argc, char **args) + } + case IS_ARM_LINUX: + { +- grub_uint32_t sig, sig_pi; +- if (grub_file_read (file, &sig_pi, 4) != 4) ++ struct linux_arm_kernel_header lh; ++ ++ if (grub_file_read (file, &lh, sizeof (lh)) != sizeof (lh)) + break; +- /* Raspberry pi. */ +- if (sig_pi == grub_cpu_to_le32_compile_time (0xea000006)) ++ /* Short forward branch in A32 state (for Raspberry pi kernels). */ ++ if (lh.code0 == grub_cpu_to_le32_compile_time (0xea000006)) + { + ret = 1; + break; + } + +- if (grub_file_seek (file, 0x24) == (grub_size_t) -1) +- break; +- if (grub_file_read (file, &sig, 4) != 4) +- break; +- if (sig == grub_cpu_to_le32_compile_time (0x016f2818)) ++ if (lh.magic == ++ grub_cpu_to_le32_compile_time (GRUB_LINUX_ARM_MAGIC_SIGNATURE)) + { + ret = 1; + break; +@@ -406,13 +406,13 @@ grub_cmd_file (grub_extcmd_context_t ctxt, int argc, char **args) + } + case IS_ARM64_LINUX: + { +- grub_uint32_t sig; ++ struct linux_arm64_kernel_header lh; + +- if (grub_file_seek (file, 0x38) == (grub_size_t) -1) ++ if (grub_file_read (file, &lh, sizeof (lh)) != sizeof (lh)) + break; +- if (grub_file_read (file, &sig, 4) != 4) +- break; +- if (sig == grub_cpu_to_le32_compile_time (0x644d5241)) ++ ++ if (lh.magic == ++ grub_cpu_to_le32_compile_time (GRUB_LINUX_ARM64_MAGIC_SIGNATURE)) + { + ret = 1; + break; +@@ -497,7 +497,7 @@ grub_cmd_file (grub_extcmd_context_t ctxt, int argc, char **args) + case IS_X86_LINUX32: + case IS_X86_LINUX: + { +- struct linux_kernel_header lh; ++ struct linux_i386_kernel_header lh; + if (grub_file_read (file, &lh, sizeof (lh)) != sizeof (lh)) + break; + if (lh.boot_flag != grub_cpu_to_le16_compile_time (0xaa55)) +@@ -508,7 +508,7 @@ grub_cmd_file (grub_extcmd_context_t ctxt, int argc, char **args) + + /* FIXME: some really old kernels (< 1.3.73) will fail this. */ + if (lh.header != +- grub_cpu_to_le32_compile_time (GRUB_LINUX_MAGIC_SIGNATURE) ++ grub_cpu_to_le32_compile_time (GRUB_LINUX_I386_MAGIC_SIGNATURE) + || grub_le_to_cpu16 (lh.version) < 0x0200) + break; + +@@ -521,7 +521,7 @@ grub_cmd_file (grub_extcmd_context_t ctxt, int argc, char **args) + /* FIXME: 2.03 is not always good enough (Linux 2.4 can be 2.03 and + still not support 32-bit boot. */ + if (lh.header != +- grub_cpu_to_le32_compile_time (GRUB_LINUX_MAGIC_SIGNATURE) ++ grub_cpu_to_le32_compile_time (GRUB_LINUX_I386_MAGIC_SIGNATURE) + || grub_le_to_cpu16 (lh.version) < 0x0203) + break; + diff --git a/grub-core/commands/i386/coreboot/cb_timestamps.c b/grub-core/commands/i386/coreboot/cb_timestamps.c index e72f38d6e057dccfb981d6bbc483d2bdd8a06c98..e97ea6bed98b42d4f03f06ab5bc076fadbfee67f 100644 --- a/grub-core/commands/i386/coreboot/cb_timestamps.c @@ -1269,6 +1489,26 @@ index f4b7730208ab8ffafb1b0283294a140248839d7a..f35d3a369bad7125cb04e25f0e32c01c /* 0x2c */ ' ' | GRUB_TERM_SHIFT, '_', '+', '{', /* According to usage table 0x31 should be mapped to '/' but testing with real keyboard shows that 0x32 is remapped to '/'. +diff --git a/grub-core/commands/ls.c b/grub-core/commands/ls.c +index 0eaf836527944ba69d499050ad080f919d3e57ef..c25161cc4f2c6d4fce6781bfac9bf7796fceb0c7 100644 +--- a/grub-core/commands/ls.c ++++ b/grub-core/commands/ls.c +@@ -201,6 +201,15 @@ grub_ls_list_files (char *dirname, int longlist, int all, int human) + if (grub_errno == GRUB_ERR_UNKNOWN_FS) + grub_errno = GRUB_ERR_NONE; + ++#ifdef GRUB_MACHINE_IEEE1275 ++ /* ++ * Close device to prevent a double open in grub_normal_print_device_info(). ++ * Otherwise it may lead to hangs on some IEEE 1275 platforms. ++ */ ++ grub_device_close (dev); ++ dev = NULL; ++#endif ++ + grub_normal_print_device_info (device_name); + } + else if (fs) diff --git a/grub-core/commands/menuentry.c b/grub-core/commands/menuentry.c index 58d4dadf6ee4ec392a09d433802803520704cd7b..2c5363da7f549b85ae04d1d88a78db0b85504c51 100644 --- a/grub-core/commands/menuentry.c @@ -1284,6 +1524,91 @@ index 58d4dadf6ee4ec392a09d433802803520704cd7b..2c5363da7f549b85ae04d1d88a78db0b {"delete", GRUB_TERM_KEY_DC}, {"insert", GRUB_TERM_KEY_INSERT}, {"f1", GRUB_TERM_KEY_F1}, +diff --git a/grub-core/disk/ahci.c b/grub-core/disk/ahci.c +index 494a1b7734ef44fef6e887f62b6eb30d0a494284..f2f606423aca4f842f5b16b797a1084cc5791cbb 100644 +--- a/grub-core/disk/ahci.c ++++ b/grub-core/disk/ahci.c +@@ -82,6 +82,20 @@ enum grub_ahci_hba_port_command + GRUB_AHCI_HBA_PORT_CMD_FR = 0x4000, + }; + ++enum grub_ahci_hba_port_int_status ++ { ++ GRUB_AHCI_HBA_PORT_IS_IFS = (1UL << 27), ++ GRUB_AHCI_HBA_PORT_IS_HBDS = (1UL << 28), ++ GRUB_AHCI_HBA_PORT_IS_HBFS = (1UL << 29), ++ GRUB_AHCI_HBA_PORT_IS_TFES = (1UL << 30), ++ }; ++ ++#define GRUB_AHCI_HBA_PORT_IS_FATAL_MASK ( \ ++ GRUB_AHCI_HBA_PORT_IS_IFS | \ ++ GRUB_AHCI_HBA_PORT_IS_HBDS | \ ++ GRUB_AHCI_HBA_PORT_IS_HBFS | \ ++ GRUB_AHCI_HBA_PORT_IS_TFES) ++ + struct grub_ahci_hba + { + grub_uint32_t cap; +@@ -1026,7 +1040,8 @@ grub_ahci_readwrite_real (struct grub_ahci_device *dev, + + endtime = grub_get_time_ms () + (spinup ? 20000 : 20000); + while ((dev->hba->ports[dev->port].command_issue & 1)) +- if (grub_get_time_ms () > endtime) ++ if (grub_get_time_ms () > endtime || ++ (dev->hba->ports[dev->port].intstatus & GRUB_AHCI_HBA_PORT_IS_FATAL_MASK)) + { + grub_dprintf ("ahci", "AHCI status <%x %x %x %x>\n", + dev->hba->ports[dev->port].command_issue, +@@ -1034,7 +1049,10 @@ grub_ahci_readwrite_real (struct grub_ahci_device *dev, + dev->hba->ports[dev->port].intstatus, + dev->hba->ports[dev->port].task_file_data); + dev->hba->ports[dev->port].command_issue = 0; +- err = grub_error (GRUB_ERR_IO, "AHCI transfer timed out"); ++ if (dev->hba->ports[dev->port].intstatus & GRUB_AHCI_HBA_PORT_IS_FATAL_MASK) ++ err = grub_error (GRUB_ERR_IO, "AHCI transfer error"); ++ else ++ err = grub_error (GRUB_ERR_IO, "AHCI transfer timed out"); + if (!reset) + grub_ahci_reset_port (dev, 1); + break; +diff --git a/grub-core/disk/ldm.c b/grub-core/disk/ldm.c +index 0f978ad05079c9535d7ef9bb16462c7d7adeb80e..2a22d2d6c1c3121ec889f33f2aaaf3077723a6c1 100644 +--- a/grub-core/disk/ldm.c ++++ b/grub-core/disk/ldm.c +@@ -135,7 +135,7 @@ msdos_has_ldm_partition (grub_disk_t dsk) + return has_ldm; + } + +-static const grub_gpt_part_type_t ldm_type = GRUB_GPT_PARTITION_TYPE_LDM; ++static const grub_gpt_part_guid_t ldm_type = GRUB_GPT_PARTITION_TYPE_LDM; + + /* Helper for gpt_ldm_sector. */ + static int +diff --git a/grub-core/efiemu/i386/loadcore64.c b/grub-core/efiemu/i386/loadcore64.c +index e49d0b6ff17e02e22e09b306d0a6a32a3b083b78..18facf47fd7678007deb730fb71256edff6292ad 100644 +--- a/grub-core/efiemu/i386/loadcore64.c ++++ b/grub-core/efiemu/i386/loadcore64.c +@@ -98,6 +98,7 @@ grub_arch_efiemu_relocate_symbols64 (grub_efiemu_segment_t segs, + break; + + case R_X86_64_PC32: ++ case R_X86_64_PLT32: + err = grub_efiemu_write_value (addr, + *addr32 + rel->r_addend + + sym.off +diff --git a/grub-core/fs/btrfs.c b/grub-core/fs/btrfs.c +index 4849c1ceb6533c1b19eb64d754d45d44282b5acb..be195448dbeb55abcfb117723cd2fc6d75e6e344 100644 +--- a/grub-core/fs/btrfs.c ++++ b/grub-core/fs/btrfs.c +@@ -175,7 +175,7 @@ struct grub_btrfs_time + { + grub_int64_t sec; + grub_uint32_t nanosec; +-} __attribute__ ((aligned (4))); ++} GRUB_PACKED; + + struct grub_btrfs_inode + { diff --git a/grub-core/fs/ext2.c b/grub-core/fs/ext2.c index cdce63bcc9d57e82b7a4f6a644803a1d8320935d..b8ad75a0ff7c4f72b67bef123510d99231531daf 100644 --- a/grub-core/fs/ext2.c @@ -1353,6 +1678,1326 @@ index cdce63bcc9d57e82b7a4f6a644803a1d8320935d..b8ad75a0ff7c4f72b67bef123510d992 grub_memcpy (data->inode, &fdiro->inode, sizeof (struct grub_ext2_inode)); grub_free (fdiro); +diff --git a/grub-core/fs/f2fs.c b/grub-core/fs/f2fs.c +new file mode 100644 +index 0000000000000000000000000000000000000000..1cad2615f3c9e65e57a12d18b76f4ecc1caa31d8 +--- /dev/null ++++ b/grub-core/fs/f2fs.c +@@ -0,0 +1,1314 @@ ++/* ++ * f2fs.c - Flash-Friendly File System ++ * ++ * Written by Jaegeuk Kim ++ * ++ * Copyright (C) 2015 Free Software Foundation, Inc. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++#include ++ ++GRUB_MOD_LICENSE ("GPLv3+"); ++ ++/* F2FS Magic Number. */ ++#define F2FS_SUPER_MAGIC 0xf2f52010 ++ ++#define CHECKSUM_OFFSET 4092 /* Must be aligned 4 bytes. */ ++#define U32_CHECKSUM_OFFSET (CHECKSUM_OFFSET >> 2) ++#define CRCPOLY_LE 0xedb88320 ++ ++/* Byte-size offset. */ ++#define F2FS_SUPER_OFFSET ((grub_disk_addr_t)1024) ++#define F2FS_SUPER_OFFSET0 (F2FS_SUPER_OFFSET >> GRUB_DISK_SECTOR_BITS) ++#define F2FS_SUPER_OFFSET1 ((F2FS_SUPER_OFFSET + F2FS_BLKSIZE) >> \ ++ GRUB_DISK_SECTOR_BITS) ++ ++/* 9 bits for 512 bytes. */ ++#define F2FS_MIN_LOG_SECTOR_SIZE 9 ++ ++/* Support only 4KB block. */ ++#define F2FS_BLK_BITS 12 ++#define F2FS_BLKSIZE (1 << F2FS_BLK_BITS) ++#define F2FS_BLK_SEC_BITS (F2FS_BLK_BITS - GRUB_DISK_SECTOR_BITS) ++ ++#define VERSION_LEN 256 ++#define F2FS_MAX_EXTENSION 64 ++ ++#define CP_COMPACT_SUM_FLAG 0x00000004 ++#define CP_UMOUNT_FLAG 0x00000001 ++ ++#define MAX_ACTIVE_LOGS 16 ++#define MAX_ACTIVE_NODE_LOGS 8 ++#define MAX_ACTIVE_DATA_LOGS 8 ++#define NR_CURSEG_DATA_TYPE 3 ++#define NR_CURSEG_NODE_TYPE 3 ++#define NR_CURSEG_TYPE (NR_CURSEG_DATA_TYPE + NR_CURSEG_NODE_TYPE) ++ ++#define ENTRIES_IN_SUM 512 ++#define SUMMARY_SIZE 7 ++#define SUM_FOOTER_SIZE 5 ++#define JENTRY_SIZE (sizeof(struct grub_f2fs_nat_jent)) ++#define SUM_ENTRIES_SIZE (SUMMARY_SIZE * ENTRIES_IN_SUM) ++#define SUM_JOURNAL_SIZE (F2FS_BLKSIZE - SUM_FOOTER_SIZE - SUM_ENTRIES_SIZE) ++#define NAT_JOURNAL_ENTRIES ((SUM_JOURNAL_SIZE - 2) / JENTRY_SIZE) ++#define NAT_JOURNAL_RESERVED ((SUM_JOURNAL_SIZE - 2) % JENTRY_SIZE) ++ ++#define NAT_ENTRY_SIZE (sizeof(struct grub_f2fs_nat_entry)) ++#define NAT_ENTRY_PER_BLOCK (F2FS_BLKSIZE / NAT_ENTRY_SIZE) ++ ++#define F2FS_NAME_LEN 255 ++#define F2FS_SLOT_LEN 8 ++#define NR_DENTRY_IN_BLOCK 214 ++#define SIZE_OF_DIR_ENTRY 11 /* By byte. */ ++#define BITS_PER_BYTE 8 ++#define SIZE_OF_DENTRY_BITMAP ((NR_DENTRY_IN_BLOCK + BITS_PER_BYTE - 1) / \ ++ BITS_PER_BYTE) ++#define SIZE_OF_RESERVED (F2FS_BLKSIZE - \ ++ ((SIZE_OF_DIR_ENTRY + F2FS_SLOT_LEN) * \ ++ NR_DENTRY_IN_BLOCK + SIZE_OF_DENTRY_BITMAP)) ++ ++#define F2FS_INLINE_XATTR_ADDRS 50 /* 200 bytes for inline xattrs. */ ++#define DEF_ADDRS_PER_INODE 923 /* Address Pointers in an Inode. */ ++ ++#define ADDRS_PER_BLOCK 1018 /* Address Pointers in a Direct Block. */ ++#define NIDS_PER_BLOCK 1018 /* Node IDs in an Indirect Block. */ ++#define NODE_DIR1_BLOCK (DEF_ADDRS_PER_INODE + 1) ++#define NODE_DIR2_BLOCK (DEF_ADDRS_PER_INODE + 2) ++#define NODE_IND1_BLOCK (DEF_ADDRS_PER_INODE + 3) ++#define NODE_IND2_BLOCK (DEF_ADDRS_PER_INODE + 4) ++#define NODE_DIND_BLOCK (DEF_ADDRS_PER_INODE + 5) ++ ++#define MAX_INLINE_DATA (4 * (DEF_ADDRS_PER_INODE - \ ++ F2FS_INLINE_XATTR_ADDRS - 1)) ++#define NR_INLINE_DENTRY (MAX_INLINE_DATA * BITS_PER_BYTE / \ ++ ((SIZE_OF_DIR_ENTRY + F2FS_SLOT_LEN) * \ ++ BITS_PER_BYTE + 1)) ++#define INLINE_DENTRY_BITMAP_SIZE ((NR_INLINE_DENTRY + BITS_PER_BYTE - 1) / \ ++ BITS_PER_BYTE) ++#define INLINE_RESERVED_SIZE (MAX_INLINE_DATA - \ ++ ((SIZE_OF_DIR_ENTRY + F2FS_SLOT_LEN) * \ ++ NR_INLINE_DENTRY + \ ++ INLINE_DENTRY_BITMAP_SIZE)) ++#define CURSEG_HOT_DATA 0 ++ ++#define CKPT_FLAG_SET(ckpt, f) (ckpt)->ckpt_flags & \ ++ grub_cpu_to_le32_compile_time (f) ++ ++#define F2FS_INLINE_XATTR 0x01 /* File inline xattr flag. */ ++#define F2FS_INLINE_DATA 0x02 /* File inline data flag. */ ++#define F2FS_INLINE_DENTRY 0x04 /* File inline dentry flag. */ ++#define F2FS_DATA_EXIST 0x08 /* File inline data exist flag. */ ++#define F2FS_INLINE_DOTS 0x10 /* File having implicit dot dentries. */ ++ ++#define MAX_VOLUME_NAME 512 ++ ++enum FILE_TYPE ++{ ++ F2FS_FT_UNKNOWN, ++ F2FS_FT_REG_FILE = 1, ++ F2FS_FT_DIR = 2, ++ F2FS_FT_SYMLINK = 7 ++}; ++ ++struct grub_f2fs_superblock ++{ ++ grub_uint32_t magic; ++ grub_uint16_t dummy1[2]; ++ grub_uint32_t log_sectorsize; ++ grub_uint32_t log_sectors_per_block; ++ grub_uint32_t log_blocksize; ++ grub_uint32_t log_blocks_per_seg; ++ grub_uint32_t segs_per_sec; ++ grub_uint32_t secs_per_zone; ++ grub_uint32_t checksum_offset; ++ grub_uint8_t dummy2[40]; ++ grub_uint32_t cp_blkaddr; ++ grub_uint32_t sit_blkaddr; ++ grub_uint32_t nat_blkaddr; ++ grub_uint32_t ssa_blkaddr; ++ grub_uint32_t main_blkaddr; ++ grub_uint32_t root_ino; ++ grub_uint32_t node_ino; ++ grub_uint32_t meta_ino; ++ grub_uint8_t uuid[16]; ++ grub_uint16_t volume_name[MAX_VOLUME_NAME]; ++ grub_uint32_t extension_count; ++ grub_uint8_t extension_list[F2FS_MAX_EXTENSION][8]; ++ grub_uint32_t cp_payload; ++ grub_uint8_t version[VERSION_LEN]; ++ grub_uint8_t init_version[VERSION_LEN]; ++} GRUB_PACKED; ++ ++struct grub_f2fs_checkpoint ++{ ++ grub_uint64_t checkpoint_ver; ++ grub_uint64_t user_block_count; ++ grub_uint64_t valid_block_count; ++ grub_uint32_t rsvd_segment_count; ++ grub_uint32_t overprov_segment_count; ++ grub_uint32_t free_segment_count; ++ grub_uint32_t cur_node_segno[MAX_ACTIVE_NODE_LOGS]; ++ grub_uint16_t cur_node_blkoff[MAX_ACTIVE_NODE_LOGS]; ++ grub_uint32_t cur_data_segno[MAX_ACTIVE_DATA_LOGS]; ++ grub_uint16_t cur_data_blkoff[MAX_ACTIVE_DATA_LOGS]; ++ grub_uint32_t ckpt_flags; ++ grub_uint32_t cp_pack_total_block_count; ++ grub_uint32_t cp_pack_start_sum; ++ grub_uint32_t valid_node_count; ++ grub_uint32_t valid_inode_count; ++ grub_uint32_t next_free_nid; ++ grub_uint32_t sit_ver_bitmap_bytesize; ++ grub_uint32_t nat_ver_bitmap_bytesize; ++ grub_uint32_t checksum_offset; ++ grub_uint64_t elapsed_time; ++ grub_uint8_t alloc_type[MAX_ACTIVE_LOGS]; ++ grub_uint8_t sit_nat_version_bitmap[3900]; ++ grub_uint32_t checksum; ++} GRUB_PACKED; ++ ++struct grub_f2fs_nat_entry { ++ grub_uint8_t version; ++ grub_uint32_t ino; ++ grub_uint32_t block_addr; ++} GRUB_PACKED; ++ ++struct grub_f2fs_nat_jent ++{ ++ grub_uint32_t nid; ++ struct grub_f2fs_nat_entry ne; ++} GRUB_PACKED; ++ ++struct grub_f2fs_nat_journal { ++ grub_uint16_t n_nats; ++ struct grub_f2fs_nat_jent entries[NAT_JOURNAL_ENTRIES]; ++ grub_uint8_t reserved[NAT_JOURNAL_RESERVED]; ++} GRUB_PACKED; ++ ++struct grub_f2fs_nat_block { ++ struct grub_f2fs_nat_entry ne[NAT_ENTRY_PER_BLOCK]; ++} GRUB_PACKED; ++ ++struct grub_f2fs_dir_entry ++{ ++ grub_uint32_t hash_code; ++ grub_uint32_t ino; ++ grub_uint16_t name_len; ++ grub_uint8_t file_type; ++} GRUB_PACKED; ++ ++struct grub_f2fs_inline_dentry ++{ ++ grub_uint8_t dentry_bitmap[INLINE_DENTRY_BITMAP_SIZE]; ++ grub_uint8_t reserved[INLINE_RESERVED_SIZE]; ++ struct grub_f2fs_dir_entry dentry[NR_INLINE_DENTRY]; ++ grub_uint8_t filename[NR_INLINE_DENTRY][F2FS_SLOT_LEN]; ++} GRUB_PACKED; ++ ++struct grub_f2fs_dentry_block { ++ grub_uint8_t dentry_bitmap[SIZE_OF_DENTRY_BITMAP]; ++ grub_uint8_t reserved[SIZE_OF_RESERVED]; ++ struct grub_f2fs_dir_entry dentry[NR_DENTRY_IN_BLOCK]; ++ grub_uint8_t filename[NR_DENTRY_IN_BLOCK][F2FS_SLOT_LEN]; ++} GRUB_PACKED; ++ ++struct grub_f2fs_inode ++{ ++ grub_uint16_t i_mode; ++ grub_uint8_t i_advise; ++ grub_uint8_t i_inline; ++ grub_uint32_t i_uid; ++ grub_uint32_t i_gid; ++ grub_uint32_t i_links; ++ grub_uint64_t i_size; ++ grub_uint64_t i_blocks; ++ grub_uint64_t i_atime; ++ grub_uint64_t i_ctime; ++ grub_uint64_t i_mtime; ++ grub_uint32_t i_atime_nsec; ++ grub_uint32_t i_ctime_nsec; ++ grub_uint32_t i_mtime_nsec; ++ grub_uint32_t i_generation; ++ grub_uint32_t i_current_depth; ++ grub_uint32_t i_xattr_nid; ++ grub_uint32_t i_flags; ++ grub_uint32_t i_pino; ++ grub_uint32_t i_namelen; ++ grub_uint8_t i_name[F2FS_NAME_LEN]; ++ grub_uint8_t i_dir_level; ++ grub_uint8_t i_ext[12]; ++ grub_uint32_t i_addr[DEF_ADDRS_PER_INODE]; ++ grub_uint32_t i_nid[5]; ++} GRUB_PACKED; ++ ++struct grub_direct_node { ++ grub_uint32_t addr[ADDRS_PER_BLOCK]; ++} GRUB_PACKED; ++ ++struct grub_indirect_node { ++ grub_uint32_t nid[NIDS_PER_BLOCK]; ++} GRUB_PACKED; ++ ++struct grub_f2fs_node ++{ ++ union ++ { ++ struct grub_f2fs_inode i; ++ struct grub_direct_node dn; ++ struct grub_indirect_node in; ++ /* Should occupy F2FS_BLKSIZE totally. */ ++ char buf[F2FS_BLKSIZE - 40]; ++ }; ++ grub_uint8_t dummy[40]; ++} GRUB_PACKED; ++ ++struct grub_fshelp_node ++{ ++ struct grub_f2fs_data *data; ++ struct grub_f2fs_node inode; ++ grub_uint32_t ino; ++ int inode_read; ++}; ++ ++struct grub_f2fs_data ++{ ++ struct grub_f2fs_superblock sblock; ++ struct grub_f2fs_checkpoint ckpt; ++ ++ grub_uint32_t root_ino; ++ grub_uint32_t blocks_per_seg; ++ grub_uint32_t cp_blkaddr; ++ grub_uint32_t nat_blkaddr; ++ ++ struct grub_f2fs_nat_journal nat_j; ++ char *nat_bitmap; ++ ++ grub_disk_t disk; ++ struct grub_f2fs_node *inode; ++ struct grub_fshelp_node diropen; ++}; ++ ++struct grub_f2fs_dir_iter_ctx ++{ ++ struct grub_f2fs_data *data; ++ grub_fshelp_iterate_dir_hook_t hook; ++ void *hook_data; ++ grub_uint8_t *bitmap; ++ grub_uint8_t (*filename)[F2FS_SLOT_LEN]; ++ struct grub_f2fs_dir_entry *dentry; ++ int max; ++}; ++ ++struct grub_f2fs_dir_ctx ++{ ++ grub_fs_dir_hook_t hook; ++ void *hook_data; ++ struct grub_f2fs_data *data; ++}; ++ ++static grub_dl_t my_mod; ++ ++static int ++grub_f2fs_test_bit_le (int nr, const grub_uint8_t *addr) ++{ ++ return addr[nr >> 3] & (1 << (nr & 7)); ++} ++ ++static char * ++get_inline_addr (struct grub_f2fs_inode *inode) ++{ ++ return (char *) &inode->i_addr[1]; ++} ++ ++static grub_uint64_t ++grub_f2fs_file_size (struct grub_f2fs_inode *inode) ++{ ++ return grub_le_to_cpu64 (inode->i_size); ++} ++ ++static grub_uint32_t ++start_cp_addr (struct grub_f2fs_data *data) ++{ ++ struct grub_f2fs_checkpoint *ckpt = &data->ckpt; ++ grub_uint32_t start_addr = data->cp_blkaddr; ++ ++ if (!(ckpt->checkpoint_ver & grub_cpu_to_le64_compile_time(1))) ++ return start_addr + data->blocks_per_seg; ++ ++ return start_addr; ++} ++ ++static grub_uint32_t ++start_sum_block (struct grub_f2fs_data *data) ++{ ++ struct grub_f2fs_checkpoint *ckpt = &data->ckpt; ++ ++ return start_cp_addr (data) + grub_le_to_cpu32 (ckpt->cp_pack_start_sum); ++} ++ ++static grub_uint32_t ++sum_blk_addr (struct grub_f2fs_data *data, int base, int type) ++{ ++ struct grub_f2fs_checkpoint *ckpt = &data->ckpt; ++ ++ return start_cp_addr (data) + ++ grub_le_to_cpu32 (ckpt->cp_pack_total_block_count) - ++ (base + 1) + type; ++} ++ ++static void * ++nat_bitmap_ptr (struct grub_f2fs_data *data) ++{ ++ struct grub_f2fs_checkpoint *ckpt = &data->ckpt; ++ grub_uint32_t offset; ++ ++ if (grub_le_to_cpu32 (data->sblock.cp_payload) > 0) ++ return ckpt->sit_nat_version_bitmap; ++ ++ offset = grub_le_to_cpu32 (ckpt->sit_ver_bitmap_bytesize); ++ ++ return ckpt->sit_nat_version_bitmap + offset; ++} ++ ++static grub_uint32_t ++get_node_id (struct grub_f2fs_node *rn, int off, int inode_block) ++{ ++ if (inode_block) ++ return grub_le_to_cpu32 (rn->i.i_nid[off - NODE_DIR1_BLOCK]); ++ ++ return grub_le_to_cpu32 (rn->in.nid[off]); ++} ++ ++static grub_err_t ++grub_f2fs_block_read (struct grub_f2fs_data *data, grub_uint32_t blkaddr, ++ void *buf) ++{ ++ return grub_disk_read (data->disk, ++ ((grub_disk_addr_t)blkaddr) << F2FS_BLK_SEC_BITS, ++ 0, F2FS_BLKSIZE, buf); ++} ++ ++/* CRC32 */ ++static grub_uint32_t ++grub_f2fs_cal_crc32 (const void *buf, const grub_uint32_t len) ++{ ++ grub_uint32_t crc = F2FS_SUPER_MAGIC; ++ unsigned char *p = (unsigned char *)buf; ++ grub_uint32_t tmp = len; ++ int i; ++ ++ while (tmp--) ++ { ++ crc ^= *p++; ++ for (i = 0; i < 8; i++) ++ crc = (crc >> 1) ^ ((crc & 1) ? CRCPOLY_LE : 0); ++ } ++ ++ return crc; ++} ++ ++static int ++grub_f2fs_crc_valid (grub_uint32_t blk_crc, void *buf, const grub_uint32_t len) ++{ ++ grub_uint32_t cal_crc = 0; ++ ++ cal_crc = grub_f2fs_cal_crc32 (buf, len); ++ ++ return (cal_crc == blk_crc) ? 1 : 0; ++} ++ ++static int ++grub_f2fs_test_bit (grub_uint32_t nr, const char *p) ++{ ++ int mask; ++ ++ p += (nr >> 3); ++ mask = 1 << (7 - (nr & 0x07)); ++ ++ return mask & *p; ++} ++ ++static int ++grub_f2fs_sanity_check_sb (struct grub_f2fs_superblock *sb) ++{ ++ grub_uint32_t log_sectorsize, log_sectors_per_block; ++ ++ if (sb->magic != grub_cpu_to_le32_compile_time (F2FS_SUPER_MAGIC)) ++ return -1; ++ ++ if (sb->log_blocksize != grub_cpu_to_le32_compile_time (F2FS_BLK_BITS)) ++ return -1; ++ ++ log_sectorsize = grub_le_to_cpu32 (sb->log_sectorsize); ++ log_sectors_per_block = grub_le_to_cpu32 (sb->log_sectors_per_block); ++ ++ if (log_sectorsize > F2FS_BLK_BITS) ++ return -1; ++ ++ if (log_sectorsize < F2FS_MIN_LOG_SECTOR_SIZE) ++ return -1; ++ ++ if (log_sectors_per_block + log_sectorsize != F2FS_BLK_BITS) ++ return -1; ++ ++ return 0; ++} ++ ++static int ++grub_f2fs_read_sb (struct grub_f2fs_data *data, grub_disk_addr_t offset) ++{ ++ grub_disk_t disk = data->disk; ++ grub_err_t err; ++ ++ /* Read first super block. */ ++ err = grub_disk_read (disk, offset, 0, sizeof (data->sblock), &data->sblock); ++ if (err) ++ return -1; ++ ++ return grub_f2fs_sanity_check_sb (&data->sblock); ++} ++ ++static void * ++validate_checkpoint (struct grub_f2fs_data *data, grub_uint32_t cp_addr, ++ grub_uint64_t *version) ++{ ++ grub_uint32_t *cp_page_1, *cp_page_2; ++ struct grub_f2fs_checkpoint *cp_block; ++ grub_uint64_t cur_version = 0, pre_version = 0; ++ grub_uint32_t crc = 0; ++ grub_uint32_t crc_offset; ++ grub_err_t err; ++ ++ /* Read the 1st cp block in this CP pack. */ ++ cp_page_1 = grub_malloc (F2FS_BLKSIZE); ++ if (!cp_page_1) ++ return NULL; ++ ++ err = grub_f2fs_block_read (data, cp_addr, cp_page_1); ++ if (err) ++ goto invalid_cp1; ++ ++ cp_block = (struct grub_f2fs_checkpoint *)cp_page_1; ++ crc_offset = grub_le_to_cpu32 (cp_block->checksum_offset); ++ if (crc_offset != CHECKSUM_OFFSET) ++ goto invalid_cp1; ++ ++ crc = grub_le_to_cpu32 (*(cp_page_1 + U32_CHECKSUM_OFFSET)); ++ if (!grub_f2fs_crc_valid (crc, cp_block, crc_offset)) ++ goto invalid_cp1; ++ ++ pre_version = grub_le_to_cpu64 (cp_block->checkpoint_ver); ++ ++ /* Read the 2nd cp block in this CP pack. */ ++ cp_page_2 = grub_malloc (F2FS_BLKSIZE); ++ if (!cp_page_2) ++ goto invalid_cp1; ++ ++ cp_addr += grub_le_to_cpu32 (cp_block->cp_pack_total_block_count) - 1; ++ ++ err = grub_f2fs_block_read (data, cp_addr, cp_page_2); ++ if (err) ++ goto invalid_cp2; ++ ++ cp_block = (struct grub_f2fs_checkpoint *)cp_page_2; ++ crc_offset = grub_le_to_cpu32 (cp_block->checksum_offset); ++ if (crc_offset != CHECKSUM_OFFSET) ++ goto invalid_cp2; ++ ++ crc = grub_le_to_cpu32 (*(cp_page_2 + U32_CHECKSUM_OFFSET)); ++ if (!grub_f2fs_crc_valid (crc, cp_block, crc_offset)) ++ goto invalid_cp2; ++ ++ cur_version = grub_le_to_cpu64 (cp_block->checkpoint_ver); ++ if (cur_version == pre_version) ++ { ++ *version = cur_version; ++ grub_free (cp_page_2); ++ ++ return cp_page_1; ++ } ++ ++ invalid_cp2: ++ grub_free (cp_page_2); ++ ++ invalid_cp1: ++ grub_free (cp_page_1); ++ ++ return NULL; ++} ++ ++static grub_err_t ++grub_f2fs_read_cp (struct grub_f2fs_data *data) ++{ ++ void *cp1, *cp2, *cur_page; ++ grub_uint64_t cp1_version = 0, cp2_version = 0; ++ grub_uint64_t cp_start_blk_no; ++ ++ /* ++ * Finding out valid cp block involves read both ++ * sets (cp pack1 and cp pack 2). ++ */ ++ cp_start_blk_no = data->cp_blkaddr; ++ cp1 = validate_checkpoint (data, cp_start_blk_no, &cp1_version); ++ if (!cp1 && grub_errno) ++ return grub_errno; ++ ++ /* The second checkpoint pack should start at the next segment. */ ++ cp_start_blk_no += data->blocks_per_seg; ++ cp2 = validate_checkpoint (data, cp_start_blk_no, &cp2_version); ++ if (!cp2 && grub_errno) ++ { ++ grub_free (cp1); ++ return grub_errno; ++ } ++ ++ if (cp1 && cp2) ++ cur_page = (cp2_version > cp1_version) ? cp2 : cp1; ++ else if (cp1) ++ cur_page = cp1; ++ else if (cp2) ++ cur_page = cp2; ++ else ++ return grub_error (GRUB_ERR_BAD_FS, "no checkpoints"); ++ ++ grub_memcpy (&data->ckpt, cur_page, F2FS_BLKSIZE); ++ ++ grub_free (cp1); ++ grub_free (cp2); ++ ++ return 0; ++} ++ ++static grub_err_t ++get_nat_journal (struct grub_f2fs_data *data) ++{ ++ grub_uint32_t block; ++ char *buf; ++ grub_err_t err; ++ ++ buf = grub_malloc (F2FS_BLKSIZE); ++ if (!buf) ++ return grub_errno; ++ ++ if (CKPT_FLAG_SET(&data->ckpt, CP_COMPACT_SUM_FLAG)) ++ block = start_sum_block (data); ++ else if (CKPT_FLAG_SET (&data->ckpt, CP_UMOUNT_FLAG)) ++ block = sum_blk_addr (data, NR_CURSEG_TYPE, CURSEG_HOT_DATA); ++ else ++ block = sum_blk_addr (data, NR_CURSEG_DATA_TYPE, CURSEG_HOT_DATA); ++ ++ err = grub_f2fs_block_read (data, block, buf); ++ if (err) ++ goto fail; ++ ++ if (CKPT_FLAG_SET (&data->ckpt, CP_COMPACT_SUM_FLAG)) ++ grub_memcpy (&data->nat_j, buf, SUM_JOURNAL_SIZE); ++ else ++ grub_memcpy (&data->nat_j, buf + SUM_ENTRIES_SIZE, SUM_JOURNAL_SIZE); ++ ++ fail: ++ grub_free (buf); ++ ++ return err; ++} ++ ++static grub_uint32_t ++get_blkaddr_from_nat_journal (struct grub_f2fs_data *data, grub_uint32_t nid) ++{ ++ grub_uint16_t n = grub_le_to_cpu16 (data->nat_j.n_nats); ++ grub_uint32_t blkaddr = 0; ++ grub_uint16_t i; ++ ++ for (i = 0; i < n; i++) ++ { ++ if (grub_le_to_cpu32 (data->nat_j.entries[i].nid) == nid) ++ { ++ blkaddr = grub_le_to_cpu32 (data->nat_j.entries[i].ne.block_addr); ++ break; ++ } ++ } ++ ++ return blkaddr; ++} ++ ++static grub_uint32_t ++get_node_blkaddr (struct grub_f2fs_data *data, grub_uint32_t nid) ++{ ++ struct grub_f2fs_nat_block *nat_block; ++ grub_uint32_t seg_off, block_off, entry_off, block_addr; ++ grub_uint32_t blkaddr; ++ grub_err_t err; ++ ++ blkaddr = get_blkaddr_from_nat_journal (data, nid); ++ if (blkaddr) ++ return blkaddr; ++ ++ nat_block = grub_malloc (F2FS_BLKSIZE); ++ if (!nat_block) ++ return 0; ++ ++ block_off = nid / NAT_ENTRY_PER_BLOCK; ++ entry_off = nid % NAT_ENTRY_PER_BLOCK; ++ ++ seg_off = block_off / data->blocks_per_seg; ++ block_addr = data->nat_blkaddr + ++ ((seg_off * data->blocks_per_seg) << 1) + ++ (block_off & (data->blocks_per_seg - 1)); ++ ++ if (grub_f2fs_test_bit (block_off, data->nat_bitmap)) ++ block_addr += data->blocks_per_seg; ++ ++ err = grub_f2fs_block_read (data, block_addr, nat_block); ++ if (err) ++ { ++ grub_free (nat_block); ++ return 0; ++ } ++ ++ blkaddr = grub_le_to_cpu32 (nat_block->ne[entry_off].block_addr); ++ ++ grub_free (nat_block); ++ ++ return blkaddr; ++} ++ ++static int ++grub_get_node_path (struct grub_f2fs_inode *inode, grub_uint32_t block, ++ grub_uint32_t offset[4], grub_uint32_t noffset[4]) ++{ ++ grub_uint32_t direct_blks = ADDRS_PER_BLOCK; ++ grub_uint32_t dptrs_per_blk = NIDS_PER_BLOCK; ++ grub_uint32_t indirect_blks = ADDRS_PER_BLOCK * NIDS_PER_BLOCK; ++ grub_uint32_t dindirect_blks = indirect_blks * NIDS_PER_BLOCK; ++ grub_uint32_t direct_index = DEF_ADDRS_PER_INODE; ++ int n = 0; ++ int level = 0; ++ ++ if (inode->i_inline & F2FS_INLINE_XATTR) ++ direct_index -= F2FS_INLINE_XATTR_ADDRS; ++ ++ noffset[0] = 0; ++ ++ if (block < direct_index) ++ { ++ offset[n] = block; ++ goto got; ++ } ++ ++ block -= direct_index; ++ if (block < direct_blks) ++ { ++ offset[n++] = NODE_DIR1_BLOCK; ++ noffset[n] = 1; ++ offset[n] = block; ++ level = 1; ++ goto got; ++ } ++ ++ block -= direct_blks; ++ if (block < direct_blks) ++ { ++ offset[n++] = NODE_DIR2_BLOCK; ++ noffset[n] = 2; ++ offset[n] = block; ++ level = 1; ++ goto got; ++ } ++ ++ block -= direct_blks; ++ if (block < indirect_blks) ++ { ++ offset[n++] = NODE_IND1_BLOCK; ++ noffset[n] = 3; ++ offset[n++] = block / direct_blks; ++ noffset[n] = 4 + offset[n - 1]; ++ offset[n] = block % direct_blks; ++ level = 2; ++ goto got; ++ } ++ ++ block -= indirect_blks; ++ if (block < indirect_blks) ++ { ++ offset[n++] = NODE_IND2_BLOCK; ++ noffset[n] = 4 + dptrs_per_blk; ++ offset[n++] = block / direct_blks; ++ noffset[n] = 5 + dptrs_per_blk + offset[n - 1]; ++ offset[n] = block % direct_blks; ++ level = 2; ++ goto got; ++ } ++ ++ block -= indirect_blks; ++ if (block < dindirect_blks) ++ { ++ offset[n++] = NODE_DIND_BLOCK; ++ noffset[n] = 5 + (dptrs_per_blk * 2); ++ offset[n++] = block / indirect_blks; ++ noffset[n] = 6 + (dptrs_per_blk * 2) + ++ offset[n - 1] * (dptrs_per_blk + 1); ++ offset[n++] = (block / direct_blks) % dptrs_per_blk; ++ noffset[n] = 7 + (dptrs_per_blk * 2) + ++ offset[n - 2] * (dptrs_per_blk + 1) + offset[n - 1]; ++ offset[n] = block % direct_blks; ++ level = 3; ++ goto got; ++ } ++ ++ got: ++ return level; ++} ++ ++static grub_err_t ++grub_f2fs_read_node (struct grub_f2fs_data *data, ++ grub_uint32_t nid, struct grub_f2fs_node *np) ++{ ++ grub_uint32_t blkaddr; ++ ++ blkaddr = get_node_blkaddr (data, nid); ++ if (!blkaddr) ++ return grub_errno; ++ ++ return grub_f2fs_block_read (data, blkaddr, np); ++} ++ ++static struct grub_f2fs_data * ++grub_f2fs_mount (grub_disk_t disk) ++{ ++ struct grub_f2fs_data *data; ++ grub_err_t err; ++ ++ data = grub_malloc (sizeof (*data)); ++ if (!data) ++ return NULL; ++ ++ data->disk = disk; ++ ++ if (grub_f2fs_read_sb (data, F2FS_SUPER_OFFSET0)) ++ { ++ if (grub_f2fs_read_sb (data, F2FS_SUPER_OFFSET1)) ++ { ++ if (grub_errno == GRUB_ERR_NONE) ++ grub_error (GRUB_ERR_BAD_FS, ++ "not a F2FS filesystem (no superblock)"); ++ goto fail; ++ } ++ } ++ ++ data->root_ino = grub_le_to_cpu32 (data->sblock.root_ino); ++ data->cp_blkaddr = grub_le_to_cpu32 (data->sblock.cp_blkaddr); ++ data->nat_blkaddr = grub_le_to_cpu32 (data->sblock.nat_blkaddr); ++ data->blocks_per_seg = 1 << ++ grub_le_to_cpu32 (data->sblock.log_blocks_per_seg); ++ ++ err = grub_f2fs_read_cp (data); ++ if (err) ++ goto fail; ++ ++ data->nat_bitmap = nat_bitmap_ptr (data); ++ ++ err = get_nat_journal (data); ++ if (err) ++ goto fail; ++ ++ data->diropen.data = data; ++ data->diropen.ino = data->root_ino; ++ data->diropen.inode_read = 1; ++ data->inode = &data->diropen.inode; ++ ++ err = grub_f2fs_read_node (data, data->root_ino, data->inode); ++ if (err) ++ goto fail; ++ ++ return data; ++ ++ fail: ++ grub_free (data); ++ ++ return NULL; ++} ++ ++/* Guarantee inline_data was handled by caller. */ ++static grub_disk_addr_t ++grub_f2fs_get_block (grub_fshelp_node_t node, grub_disk_addr_t block_ofs) ++{ ++ struct grub_f2fs_data *data = node->data; ++ struct grub_f2fs_inode *inode = &node->inode.i; ++ grub_uint32_t offset[4], noffset[4], nids[4]; ++ struct grub_f2fs_node *node_block; ++ grub_uint32_t block_addr = -1; ++ int level, i; ++ ++ level = grub_get_node_path (inode, block_ofs, offset, noffset); ++ if (level == 0) ++ return grub_le_to_cpu32 (inode->i_addr[offset[0]]); ++ ++ node_block = grub_malloc (F2FS_BLKSIZE); ++ if (!node_block) ++ return -1; ++ ++ nids[1] = get_node_id (&node->inode, offset[0], 1); ++ ++ /* Get indirect or direct nodes. */ ++ for (i = 1; i <= level; i++) ++ { ++ grub_f2fs_read_node (data, nids[i], node_block); ++ if (grub_errno) ++ goto fail; ++ ++ if (i < level) ++ nids[i + 1] = get_node_id (node_block, offset[i], 0); ++ } ++ ++ block_addr = grub_le_to_cpu32 (node_block->dn.addr[offset[level]]); ++ ++ fail: ++ grub_free (node_block); ++ ++ return block_addr; ++} ++ ++static grub_ssize_t ++grub_f2fs_read_file (grub_fshelp_node_t node, ++ grub_disk_read_hook_t read_hook, void *read_hook_data, ++ grub_off_t pos, grub_size_t len, char *buf) ++{ ++ struct grub_f2fs_inode *inode = &node->inode.i; ++ grub_off_t filesize = grub_f2fs_file_size (inode); ++ char *inline_addr = get_inline_addr (inode); ++ ++ if (inode->i_inline & F2FS_INLINE_DATA) ++ { ++ if (filesize > MAX_INLINE_DATA) ++ return -1; ++ ++ if (len > filesize - pos) ++ len = filesize - pos; ++ ++ grub_memcpy (buf, inline_addr + pos, len); ++ return len; ++ } ++ ++ return grub_fshelp_read_file (node->data->disk, node, ++ read_hook, read_hook_data, ++ pos, len, buf, grub_f2fs_get_block, ++ filesize, ++ F2FS_BLK_SEC_BITS, 0); ++} ++ ++static char * ++grub_f2fs_read_symlink (grub_fshelp_node_t node) ++{ ++ char *symlink; ++ struct grub_fshelp_node *diro = node; ++ grub_uint64_t filesize; ++ ++ if (!diro->inode_read) ++ { ++ grub_f2fs_read_node (diro->data, diro->ino, &diro->inode); ++ if (grub_errno) ++ return 0; ++ } ++ ++ filesize = grub_f2fs_file_size(&diro->inode.i); ++ ++ symlink = grub_malloc (filesize + 1); ++ if (!symlink) ++ return 0; ++ ++ grub_f2fs_read_file (diro, 0, 0, 0, filesize, symlink); ++ if (grub_errno) ++ { ++ grub_free (symlink); ++ return 0; ++ } ++ ++ symlink[filesize] = '\0'; ++ ++ return symlink; ++} ++ ++static int ++grub_f2fs_check_dentries (struct grub_f2fs_dir_iter_ctx *ctx) ++{ ++ struct grub_fshelp_node *fdiro; ++ int i; ++ ++ for (i = 0; i < ctx->max;) ++ { ++ char *filename; ++ enum grub_fshelp_filetype type = GRUB_FSHELP_UNKNOWN; ++ enum FILE_TYPE ftype; ++ int name_len; ++ int ret; ++ ++ if (grub_f2fs_test_bit_le (i, ctx->bitmap) == 0) ++ { ++ i++; ++ continue; ++ } ++ ++ ftype = ctx->dentry[i].file_type; ++ name_len = grub_le_to_cpu16 (ctx->dentry[i].name_len); ++ filename = grub_malloc (name_len + 1); ++ if (!filename) ++ return 0; ++ ++ grub_memcpy (filename, ctx->filename[i], name_len); ++ filename[name_len] = 0; ++ ++ fdiro = grub_malloc (sizeof (struct grub_fshelp_node)); ++ if (!fdiro) ++ { ++ grub_free(filename); ++ return 0; ++ } ++ ++ if (ftype == F2FS_FT_DIR) ++ type = GRUB_FSHELP_DIR; ++ else if (ftype == F2FS_FT_SYMLINK) ++ type = GRUB_FSHELP_SYMLINK; ++ else if (ftype == F2FS_FT_REG_FILE) ++ type = GRUB_FSHELP_REG; ++ ++ fdiro->data = ctx->data; ++ fdiro->ino = grub_le_to_cpu32 (ctx->dentry[i].ino); ++ fdiro->inode_read = 0; ++ ++ ret = ctx->hook (filename, type, fdiro, ctx->hook_data); ++ grub_free(filename); ++ if (ret) ++ return 1; ++ ++ i += (name_len + F2FS_SLOT_LEN - 1) / F2FS_SLOT_LEN; ++ } ++ ++ return 0; ++} ++ ++static int ++grub_f2fs_iterate_inline_dir (struct grub_f2fs_inode *dir, ++ struct grub_f2fs_dir_iter_ctx *ctx) ++{ ++ struct grub_f2fs_inline_dentry *de_blk; ++ ++ de_blk = (struct grub_f2fs_inline_dentry *) get_inline_addr (dir); ++ ++ ctx->bitmap = de_blk->dentry_bitmap; ++ ctx->dentry = de_blk->dentry; ++ ctx->filename = de_blk->filename; ++ ctx->max = NR_INLINE_DENTRY; ++ ++ return grub_f2fs_check_dentries (ctx); ++} ++ ++static int ++grub_f2fs_iterate_dir (grub_fshelp_node_t dir, ++ grub_fshelp_iterate_dir_hook_t hook, void *hook_data) ++{ ++ struct grub_fshelp_node *diro = (struct grub_fshelp_node *) dir; ++ struct grub_f2fs_inode *inode; ++ struct grub_f2fs_dir_iter_ctx ctx = { ++ .data = diro->data, ++ .hook = hook, ++ .hook_data = hook_data ++ }; ++ grub_off_t fpos = 0; ++ ++ if (!diro->inode_read) ++ { ++ grub_f2fs_read_node (diro->data, diro->ino, &diro->inode); ++ if (grub_errno) ++ return 0; ++ } ++ ++ inode = &diro->inode.i; ++ ++ if (inode->i_inline & F2FS_INLINE_DENTRY) ++ return grub_f2fs_iterate_inline_dir (inode, &ctx); ++ ++ while (fpos < grub_f2fs_file_size (inode)) ++ { ++ struct grub_f2fs_dentry_block *de_blk; ++ char *buf; ++ int ret; ++ ++ buf = grub_zalloc (F2FS_BLKSIZE); ++ if (!buf) ++ return 0; ++ ++ grub_f2fs_read_file (diro, 0, 0, fpos, F2FS_BLKSIZE, buf); ++ if (grub_errno) ++ { ++ grub_free (buf); ++ return 0; ++ } ++ ++ de_blk = (struct grub_f2fs_dentry_block *) buf; ++ ++ ctx.bitmap = de_blk->dentry_bitmap; ++ ctx.dentry = de_blk->dentry; ++ ctx.filename = de_blk->filename; ++ ctx.max = NR_DENTRY_IN_BLOCK; ++ ++ ret = grub_f2fs_check_dentries (&ctx); ++ grub_free (buf); ++ if (ret) ++ return 1; ++ ++ fpos += F2FS_BLKSIZE; ++ } ++ ++ return 0; ++} ++ ++static int ++grub_f2fs_dir_iter (const char *filename, enum grub_fshelp_filetype filetype, ++ grub_fshelp_node_t node, void *data) ++{ ++ struct grub_f2fs_dir_ctx *ctx = data; ++ struct grub_dirhook_info info; ++ ++ grub_memset (&info, 0, sizeof (info)); ++ if (!node->inode_read) ++ { ++ grub_f2fs_read_node (ctx->data, node->ino, &node->inode); ++ if (!grub_errno) ++ node->inode_read = 1; ++ grub_errno = GRUB_ERR_NONE; ++ } ++ if (node->inode_read) ++ { ++ info.mtimeset = 1; ++ info.mtime = grub_le_to_cpu64 (node->inode.i.i_mtime); ++ } ++ ++ info.dir = ((filetype & GRUB_FSHELP_TYPE_MASK) == GRUB_FSHELP_DIR); ++ grub_free (node); ++ ++ return ctx->hook (filename, &info, ctx->hook_data); ++} ++ ++static grub_err_t ++grub_f2fs_dir (grub_device_t device, const char *path, ++ grub_fs_dir_hook_t hook, void *hook_data) ++{ ++ struct grub_f2fs_dir_ctx ctx = { ++ .hook = hook, ++ .hook_data = hook_data ++ }; ++ struct grub_fshelp_node *fdiro = 0; ++ ++ grub_dl_ref (my_mod); ++ ++ ctx.data = grub_f2fs_mount (device->disk); ++ if (!ctx.data) ++ goto fail; ++ ++ grub_fshelp_find_file (path, &ctx.data->diropen, &fdiro, ++ grub_f2fs_iterate_dir, grub_f2fs_read_symlink, ++ GRUB_FSHELP_DIR); ++ if (grub_errno) ++ goto fail; ++ ++ grub_f2fs_iterate_dir (fdiro, grub_f2fs_dir_iter, &ctx); ++ ++ fail: ++ if (fdiro != &ctx.data->diropen) ++ grub_free (fdiro); ++ grub_free (ctx.data); ++ grub_dl_unref (my_mod); ++ ++ return grub_errno; ++} ++ ++/* Open a file named NAME and initialize FILE. */ ++static grub_err_t ++grub_f2fs_open (struct grub_file *file, const char *name) ++{ ++ struct grub_f2fs_data *data = NULL; ++ struct grub_fshelp_node *fdiro = 0; ++ struct grub_f2fs_inode *inode; ++ ++ grub_dl_ref (my_mod); ++ ++ data = grub_f2fs_mount (file->device->disk); ++ if (!data) ++ goto fail; ++ ++ grub_fshelp_find_file (name, &data->diropen, &fdiro, ++ grub_f2fs_iterate_dir, grub_f2fs_read_symlink, ++ GRUB_FSHELP_REG); ++ if (grub_errno) ++ goto fail; ++ ++ if (!fdiro->inode_read) ++ { ++ grub_f2fs_read_node (data, fdiro->ino, &fdiro->inode); ++ if (grub_errno) ++ goto fail; ++ } ++ ++ grub_memcpy (data->inode, &fdiro->inode, sizeof (*data->inode)); ++ grub_free (fdiro); ++ ++ inode = &(data->inode->i); ++ file->size = grub_f2fs_file_size (inode); ++ file->data = data; ++ file->offset = 0; ++ ++ if (inode->i_inline & F2FS_INLINE_DATA && file->size > MAX_INLINE_DATA) ++ grub_error (GRUB_ERR_BAD_FS, "corrupted inline_data: need fsck"); ++ ++ return 0; ++ ++ fail: ++ if (fdiro != &data->diropen) ++ grub_free (fdiro); ++ grub_free (data); ++ ++ grub_dl_unref (my_mod); ++ ++ return grub_errno; ++} ++ ++static grub_ssize_t ++grub_f2fs_read (grub_file_t file, char *buf, grub_size_t len) ++{ ++ struct grub_f2fs_data *data = (struct grub_f2fs_data *) file->data; ++ ++ return grub_f2fs_read_file (&data->diropen, ++ file->read_hook, file->read_hook_data, ++ file->offset, len, buf); ++} ++ ++static grub_err_t ++grub_f2fs_close (grub_file_t file) ++{ ++ struct grub_f2fs_data *data = (struct grub_f2fs_data *) file->data; ++ ++ grub_free (data); ++ ++ grub_dl_unref (my_mod); ++ ++ return GRUB_ERR_NONE; ++} ++ ++static grub_uint8_t * ++grub_f2fs_utf16_to_utf8 (grub_uint16_t *in_buf_le) ++{ ++ grub_uint16_t in_buf[MAX_VOLUME_NAME]; ++ grub_uint8_t *out_buf; ++ int len = 0; ++ ++ out_buf = grub_malloc (MAX_VOLUME_NAME * GRUB_MAX_UTF8_PER_UTF16 + 1); ++ if (!out_buf) ++ return NULL; ++ ++ while (*in_buf_le != 0 && len < MAX_VOLUME_NAME) { ++ in_buf[len] = grub_le_to_cpu16 (in_buf_le[len]); ++ len++; ++ } ++ ++ *grub_utf16_to_utf8 (out_buf, in_buf, len) = '\0'; ++ ++ return out_buf; ++} ++ ++static grub_err_t ++grub_f2fs_label (grub_device_t device, char **label) ++{ ++ struct grub_f2fs_data *data; ++ grub_disk_t disk = device->disk; ++ ++ grub_dl_ref (my_mod); ++ ++ data = grub_f2fs_mount (disk); ++ if (data) ++ *label = (char *) grub_f2fs_utf16_to_utf8 (data->sblock.volume_name); ++ else ++ *label = NULL; ++ ++ grub_free (data); ++ grub_dl_unref (my_mod); ++ ++ return grub_errno; ++} ++ ++static grub_err_t ++grub_f2fs_uuid (grub_device_t device, char **uuid) ++{ ++ struct grub_f2fs_data *data; ++ grub_disk_t disk = device->disk; ++ ++ grub_dl_ref (my_mod); ++ ++ data = grub_f2fs_mount (disk); ++ if (data) ++ { ++ *uuid = ++ grub_xasprintf ++ ("%02x%02x%02x%02x-%02x%02x-%02x%02x-%02x%02x-%02x%02x%02x%02x%02x%02x", ++ data->sblock.uuid[0], data->sblock.uuid[1], ++ data->sblock.uuid[2], data->sblock.uuid[3], ++ data->sblock.uuid[4], data->sblock.uuid[5], ++ data->sblock.uuid[6], data->sblock.uuid[7], ++ data->sblock.uuid[8], data->sblock.uuid[9], ++ data->sblock.uuid[10], data->sblock.uuid[11], ++ data->sblock.uuid[12], data->sblock.uuid[13], ++ data->sblock.uuid[14], data->sblock.uuid[15]); ++ } ++ else ++ *uuid = NULL; ++ ++ grub_free (data); ++ grub_dl_unref (my_mod); ++ ++ return grub_errno; ++} ++ ++static struct grub_fs grub_f2fs_fs = { ++ .name = "f2fs", ++ .dir = grub_f2fs_dir, ++ .open = grub_f2fs_open, ++ .read = grub_f2fs_read, ++ .close = grub_f2fs_close, ++ .label = grub_f2fs_label, ++ .uuid = grub_f2fs_uuid, ++#ifdef GRUB_UTIL ++ .reserved_first_sector = 1, ++ .blocklist_install = 0, ++#endif ++ .next = 0 ++}; ++ ++GRUB_MOD_INIT (f2fs) ++{ ++ grub_fs_register (&grub_f2fs_fs); ++ my_mod = mod; ++} ++ ++GRUB_MOD_FINI (f2fs) ++{ ++ grub_fs_unregister (&grub_f2fs_fs); ++} diff --git a/grub-core/fs/udf.c b/grub-core/fs/udf.c index 839bff88963baba7730d788869e1f50481a66a30..00a16098b47aff52a352fa9433e279beae261329 100644 --- a/grub-core/fs/udf.c @@ -1548,6 +3193,40 @@ index 839bff88963baba7730d788869e1f50481a66a30..00a16098b47aff52a352fa9433e279be #ifdef GRUB_UTIL .reserved_first_sector = 1, .blocklist_install = 1, +diff --git a/grub-core/fs/xfs.c b/grub-core/fs/xfs.c +index 9f66dd6e4c6491e6b2cbfc7866335b432c824502..3b00c744e23c34243df781baa96e5b1b0d88417d 100644 +--- a/grub-core/fs/xfs.c ++++ b/grub-core/fs/xfs.c +@@ -79,9 +79,18 @@ GRUB_MOD_LICENSE ("GPLv3+"); + #define XFS_SB_FEAT_INCOMPAT_SPINODES (1 << 1) /* sparse inode chunks */ + #define XFS_SB_FEAT_INCOMPAT_META_UUID (1 << 2) /* metadata UUID */ + +-/* We do not currently verify metadata UUID so it is safe to read such filesystem */ ++/* ++ * Directory entries with ftype are explicitly handled by GRUB code. ++ * ++ * We do not currently read the inode btrees, so it is safe to read filesystems ++ * with the XFS_SB_FEAT_INCOMPAT_SPINODES feature. ++ * ++ * We do not currently verify metadata UUID, so it is safe to read filesystems ++ * with the XFS_SB_FEAT_INCOMPAT_META_UUID feature. ++ */ + #define XFS_SB_FEAT_INCOMPAT_SUPPORTED \ + (XFS_SB_FEAT_INCOMPAT_FTYPE | \ ++ XFS_SB_FEAT_INCOMPAT_SPINODES | \ + XFS_SB_FEAT_INCOMPAT_META_UUID) + + struct grub_xfs_sblock +@@ -828,6 +837,9 @@ grub_xfs_iterate_dir (grub_fshelp_node_t dir, + entries = (grub_be_to_cpu32 (tail->leaf_count) + - grub_be_to_cpu32 (tail->leaf_stale)); + ++ if (!entries) ++ continue; ++ + /* Iterate over all entries within this block. */ + while ((char *)direntry < (char *)tail) + { diff --git a/grub-core/fs/zfs/zfs_lz4.c b/grub-core/fs/zfs/zfs_lz4.c index 2f73449f0d4c63cadc7b5b4388250a4d474594b6..5453822d0258527ba751e551cbb54753f0331043 100644 --- a/grub-core/fs/zfs/zfs_lz4.c @@ -1593,11 +3272,52 @@ index 2f73449f0d4c63cadc7b5b4388250a4d474594b6..5453822d0258527ba751e551cbb54753 #else const int dec2 = 0; #endif +diff --git a/grub-core/io/bufio.c b/grub-core/io/bufio.c +index 22438277d7456358dfc6bcbb51317fd704987738..dbed64744317c2f849fb2bda8fd5a6b142affe91 100644 +--- a/grub-core/io/bufio.c ++++ b/grub-core/io/bufio.c +@@ -61,6 +61,13 @@ grub_bufio_open (grub_file_t io, int size) + size = ((io->size > GRUB_BUFIO_MAX_SIZE) ? GRUB_BUFIO_MAX_SIZE : + io->size); + ++ /* ++ * Round up size to power of 2 which the binary math to ++ * calculate next_buf in grub_bufio_read() requires. ++ */ ++ while (size & (size - 1)) ++ size = (size | (size - 1)) + 1; ++ + bufio = grub_zalloc (sizeof (struct grub_bufio) + size); + if (! bufio) + { diff --git a/grub-core/io/gzio.c b/grub-core/io/gzio.c -index 0f2ea6bd845227265eef205c212e7c52ee03ebcf..a8e33033bf801483253755ab3300614169fa37fe 100644 +index 0f2ea6bd845227265eef205c212e7c52ee03ebcf..86ea8cfdea2e0abd1f73c6df4dca58806c8f2d9b 100644 --- a/grub-core/io/gzio.c +++ b/grub-core/io/gzio.c -@@ -140,24 +140,24 @@ eat_field (grub_file_t file, int len) +@@ -43,6 +43,7 @@ + #include + #include + #include ++#include + + GRUB_MOD_LICENSE ("GPLv3+"); + +@@ -94,6 +95,14 @@ struct grub_gzio + struct huft *tl; + /* The distance code table. */ + struct huft *td; ++ /* The checksum algorithm */ ++ const gcry_md_spec_t *hdesc; ++ /* The wanted checksum */ ++ grub_uint32_t orig_checksum; ++ /* The uncompressed length */ ++ grub_size_t orig_len; ++ /* Context for checksum calculation */ ++ grub_uint8_t *hcontext; + /* The lookup bits for the literal/length code table. */ + int bl; + /* The lookup bits for the distance code table. */ +@@ -140,24 +149,24 @@ eat_field (grub_file_t file, int len) #define OLD_GZIP_MAGIC grub_le_to_cpu16 (0x9E1F) /* Compression methods (see algorithm.doc) */ @@ -1636,7 +3356,16 @@ index 0f2ea6bd845227265eef205c212e7c52ee03ebcf..a8e33033bf801483253755ab33006141 /* inflate block codes */ #define INFLATE_STORED 0 -@@ -201,14 +201,14 @@ test_gzip_header (grub_file_t file) +@@ -180,7 +189,7 @@ test_gzip_header (grub_file_t file) + grub_uint8_t os_type; + } hdr; + grub_uint16_t extra_len; +- grub_uint32_t orig_len; ++ grub_uint32_t crc32; + grub_gzio_t gzio = file->data; + + if (grub_file_tell (gzio->file) != 0) +@@ -201,26 +210,29 @@ test_gzip_header (grub_file_t file) * problem occurs from here on, then we have corrupt or otherwise * bad data, and the error should be reported to the user. */ @@ -1656,7 +3385,78 @@ index 0f2ea6bd845227265eef205c212e7c52ee03ebcf..a8e33033bf801483253755ab33006141 return 0; gzio->data_offset = grub_file_tell (gzio->file); -@@ -1183,7 +1183,7 @@ test_zlib_header (grub_gzio_t gzio) + + /* FIXME: don't do this on not easily seekable files. */ + { +- grub_file_seek (gzio->file, grub_file_size (gzio->file) - 4); +- if (grub_file_read (gzio->file, &orig_len, 4) != 4) ++ grub_file_seek (gzio->file, grub_file_size (gzio->file) - 8); ++ if (grub_file_read (gzio->file, &crc32, 4) != 4) ++ return 0; ++ gzio->orig_checksum = grub_le_to_cpu32 (crc32); ++ if (grub_file_read (gzio->file, &gzio->orig_len, 4) != 4) + return 0; + /* FIXME: this does not handle files whose original size is over 4GB. + But how can we know the real original size? */ +- file->size = grub_le_to_cpu32 (orig_len); ++ file->size = grub_le_to_cpu32 (gzio->orig_len); + } + + initialize_tables (gzio); +@@ -1095,7 +1107,23 @@ inflate_window (grub_gzio_t gzio) + + gzio->saved_offset += gzio->wp; + +- /* XXX do CRC calculation here! */ ++ if (gzio->hcontext) ++ { ++ gzio->hdesc->write (gzio->hcontext, gzio->slide, gzio->wp); ++ ++ if (gzio->saved_offset == gzio->orig_len) ++ { ++ grub_uint32_t csum; ++ ++ gzio->hdesc->final (gzio->hcontext); ++ csum = grub_get_unaligned32 (gzio->hdesc->read (gzio->hcontext)); ++ csum = grub_be_to_cpu32 (csum); ++ if (csum != gzio->orig_checksum) ++ grub_error (GRUB_ERR_BAD_COMPRESSED_DATA, ++ "checksum mismatch %08x/%08x", ++ gzio->orig_checksum, csum); ++ } ++ } + } + + +@@ -1118,6 +1146,9 @@ initialize_tables (grub_gzio_t gzio) + huft_free (gzio->td); + gzio->tl = NULL; + gzio->td = NULL; ++ ++ if (gzio->hcontext) ++ gzio->hdesc->init(gzio->hcontext); + } + + +@@ -1143,6 +1174,9 @@ grub_gzio_open (grub_file_t io, const char *name __attribute__ ((unused))) + + gzio->file = io; + ++ gzio->hdesc = GRUB_MD_CRC32; ++ gzio->hcontext = grub_malloc(gzio->hdesc->contextsize); ++ + file->device = io->device; + file->data = gzio; + file->fs = &grub_gzio_fs; +@@ -1151,6 +1185,7 @@ grub_gzio_open (grub_file_t io, const char *name __attribute__ ((unused))) + if (! test_gzip_header (file)) + { + grub_errno = GRUB_ERR_NONE; ++ grub_free (gzio->hcontext); + grub_free (gzio); + grub_free (file); + grub_file_seek (io, 0); +@@ -1183,7 +1218,7 @@ test_zlib_header (grub_gzio_t gzio) flg = get_byte (gzio); /* Check that compression method is DEFLATE. */ @@ -1665,6 +3465,14 @@ index 0f2ea6bd845227265eef205c212e7c52ee03ebcf..a8e33033bf801483253755ab33006141 { /* TRANSLATORS: It's about given file having some strange format, not complete lack of gzip support. */ +@@ -1287,6 +1322,7 @@ grub_gzio_close (grub_file_t file) + grub_file_close (gzio->file); + huft_free (gzio->tl); + huft_free (gzio->td); ++ grub_free (gzio->hcontext); + grub_free (gzio); + + /* No need to close the same device twice. */ diff --git a/grub-core/kern/arm/cache.c b/grub-core/kern/arm/cache.c index 34154ccdb0e09d7d9fd91c4164fe8577ce449260..af1c4bbf544f0ebcca5c0f58c847c8dddc1f2e91 100644 --- a/grub-core/kern/arm/cache.c @@ -2093,27 +3901,213 @@ index 0000000000000000000000000000000000000000..d97b844f8487c064922a552a5ea4d5f2 + grub_fatal ("No timer found"); +} diff --git a/grub-core/kern/arm/efi/misc.c b/grub-core/kern/arm/efi/misc.c -index 7cd41842ae7662018c2ce5ff847aeb250572ec85..c95e8299d42fff17ec9ce9e8f4452f499160e13c 100644 +deleted file mode 100644 +index 7cd41842ae7662018c2ce5ff847aeb250572ec85..0000000000000000000000000000000000000000 --- a/grub-core/kern/arm/efi/misc.c -+++ b/grub-core/kern/arm/efi/misc.c -@@ -146,7 +146,7 @@ grub_efi_allocate_loader_memory (grub_uint32_t min_offset, grub_uint32_t size) - continue; - grub_dprintf("mm", "%s: let's allocate some (0x%x) pages @ 0x%08x...\n", - __FUNCTION__, (size >> PAGE_SHIFT), (grub_addr_t) start); ++++ /dev/null +@@ -1,202 +0,0 @@ +-/* misc.c - various system functions for an arm-based EFI system */ +-/* +- * GRUB -- GRand Unified Bootloader +- * Copyright (C) 2013 Free Software Foundation, Inc. +- * +- * GRUB is free software: you can redistribute it and/or modify +- * it under the terms of the GNU General Public License as published by +- * the Free Software Foundation, either version 3 of the License, or +- * (at your option) any later version. +- * +- * GRUB is distributed in the hope that it will be useful, +- * but WITHOUT ANY WARRANTY; without even the implied warranty of +- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- * GNU General Public License for more details. +- * +- * You should have received a copy of the GNU General Public License +- * along with GRUB. If not, see . +- */ +- +-#include +-#include +-#include +-#include +-#include +-#include +- +-static inline grub_size_t +-page_align (grub_size_t size) +-{ +- return (size + (1 << 12) - 1) & (~((1 << 12) - 1)); +-} +- +-/* Find the optimal number of pages for the memory map. Is it better to +- move this code to efi/mm.c? */ +-static grub_efi_uintn_t +-find_mmap_size (void) +-{ +- static grub_efi_uintn_t mmap_size = 0; +- +- if (mmap_size != 0) +- return mmap_size; +- +- mmap_size = (1 << 12); +- while (1) +- { +- int ret; +- grub_efi_memory_descriptor_t *mmap; +- grub_efi_uintn_t desc_size; +- +- mmap = grub_malloc (mmap_size); +- if (! mmap) +- return 0; +- +- ret = grub_efi_get_memory_map (&mmap_size, mmap, 0, &desc_size, 0); +- grub_free (mmap); +- +- if (ret < 0) +- { +- grub_error (GRUB_ERR_IO, "cannot get memory map"); +- return 0; +- } +- else if (ret > 0) +- break; +- +- mmap_size += (1 << 12); +- } +- +- /* Increase the size a bit for safety, because GRUB allocates more on +- later, and EFI itself may allocate more. */ +- mmap_size += (1 << 12); +- +- return page_align (mmap_size); +-} +- +-#define NEXT_MEMORY_DESCRIPTOR(desc, size) \ +- ((grub_efi_memory_descriptor_t *) ((char *) (desc) + (size))) +-#define PAGE_SHIFT 12 +- +-void * +-grub_efi_allocate_loader_memory (grub_uint32_t min_offset, grub_uint32_t size) +-{ +- grub_efi_uintn_t desc_size; +- grub_efi_memory_descriptor_t *mmap, *mmap_end; +- grub_efi_uintn_t mmap_size, tmp_mmap_size; +- grub_efi_memory_descriptor_t *desc; +- void *mem = NULL; +- grub_addr_t min_start = 0; +- +- mmap_size = find_mmap_size(); +- if (!mmap_size) +- return NULL; +- +- mmap = grub_malloc(mmap_size); +- if (!mmap) +- return NULL; +- +- tmp_mmap_size = mmap_size; +- if (grub_efi_get_memory_map (&tmp_mmap_size, mmap, 0, &desc_size, 0) <= 0) +- { +- grub_error (GRUB_ERR_IO, "cannot get memory map"); +- goto fail; +- } +- +- mmap_end = NEXT_MEMORY_DESCRIPTOR (mmap, tmp_mmap_size); +- /* Find lowest accessible RAM location */ +- { +- int found = 0; +- for (desc = mmap ; !found && (desc < mmap_end) ; +- desc = NEXT_MEMORY_DESCRIPTOR(desc, desc_size)) +- { +- switch (desc->type) +- { +- case GRUB_EFI_CONVENTIONAL_MEMORY: +- case GRUB_EFI_LOADER_CODE: +- case GRUB_EFI_LOADER_DATA: +- min_start = desc->physical_start + min_offset; +- found = 1; +- break; +- default: +- break; +- } +- } +- } +- +- /* First, find free pages for the real mode code +- and the memory map buffer. */ +- for (desc = mmap ; desc < mmap_end ; +- desc = NEXT_MEMORY_DESCRIPTOR(desc, desc_size)) +- { +- grub_uint64_t start, end; +- +- grub_dprintf("mm", "%s: 0x%08x bytes @ 0x%08x\n", +- __FUNCTION__, +- (grub_uint32_t) (desc->num_pages << PAGE_SHIFT), +- (grub_uint32_t) (desc->physical_start)); +- +- if (desc->type != GRUB_EFI_CONVENTIONAL_MEMORY) +- continue; +- +- start = desc->physical_start; +- end = start + (desc->num_pages << PAGE_SHIFT); +- grub_dprintf("mm", "%s: start=0x%016llx, end=0x%016llx\n", +- __FUNCTION__, start, end); +- start = start < min_start ? min_start : start; +- if (start + size > end) +- continue; +- grub_dprintf("mm", "%s: let's allocate some (0x%x) pages @ 0x%08x...\n", +- __FUNCTION__, (size >> PAGE_SHIFT), (grub_addr_t) start); - mem = grub_efi_allocate_pages (start, (size >> PAGE_SHIFT) + 1); -+ mem = grub_efi_allocate_fixed (start, (size >> PAGE_SHIFT) + 1); - grub_dprintf("mm", "%s: retval=0x%08x\n", - __FUNCTION__, (grub_addr_t) mem); - if (! mem) -@@ -189,7 +189,7 @@ grub_efi_prepare_platform (void) - mmap_size = find_mmap_size (); - if (! mmap_size) - return GRUB_ERR_OUT_OF_MEMORY; +- grub_dprintf("mm", "%s: retval=0x%08x\n", +- __FUNCTION__, (grub_addr_t) mem); +- if (! mem) +- { +- grub_error (GRUB_ERR_OUT_OF_MEMORY, "cannot allocate memory"); +- goto fail; +- } +- break; +- } +- +- if (! mem) +- { +- grub_error (GRUB_ERR_OUT_OF_MEMORY, "cannot allocate memory"); +- goto fail; +- } +- +- grub_free (mmap); +- return mem; +- +- fail: +- grub_free (mmap); +- return NULL; +-} +- +-grub_err_t +-grub_efi_prepare_platform (void) +-{ +- grub_efi_uintn_t mmap_size; +- grub_efi_uintn_t map_key; +- grub_efi_uintn_t desc_size; +- grub_efi_uint32_t desc_version; +- grub_efi_memory_descriptor_t *mmap_buf; +- grub_err_t err; +- +- /* +- * Cloned from IA64 +- * Must be done after grub_machine_fini because map_key is used by +- *exit_boot_services. +- */ +- mmap_size = find_mmap_size (); +- if (! mmap_size) +- return GRUB_ERR_OUT_OF_MEMORY; - mmap_buf = grub_efi_allocate_pages (0, page_align (mmap_size) >> 12); -+ mmap_buf = grub_efi_allocate_any_pages (page_align (mmap_size) >> 12); - if (! mmap_buf) - return GRUB_ERR_OUT_OF_MEMORY; - +- if (! mmap_buf) +- return GRUB_ERR_OUT_OF_MEMORY; +- +- err = grub_efi_finish_boot_services (&mmap_size, mmap_buf, &map_key, +- &desc_size, &desc_version); +- if (err != GRUB_ERR_NONE) +- return err; +- +- return GRUB_ERR_NONE; +-} diff --git a/grub-core/kern/arm/uboot/init.c b/grub-core/kern/arm/uboot/init.c new file mode 100644 index 0000000000000000000000000000000000000000..2a6aa3fdd3dd049848015f6c67dfc0f30a79a9c4 @@ -2302,12 +4296,108 @@ index 4d29f6b7d90591939cf5d837b39c5d259a55efb0..caf8f7cef1b4552c720eb3b7ca355eb6 if (ctx->hook (start, end - start, /* Multiboot mmaps match with the coreboot mmap definition. Therefore, we can just pass type +diff --git a/grub-core/kern/efi/efi.c b/grub-core/kern/efi/efi.c +index d467785fc6ce0763ec1392a65d6b30f1747ab5c4..708581fcbde007fc0174be636771b401d5e69ea2 100644 +--- a/grub-core/kern/efi/efi.c ++++ b/grub-core/kern/efi/efi.c +@@ -154,6 +154,15 @@ grub_efi_get_loaded_image (grub_efi_handle_t image_handle) + GRUB_EFI_OPEN_PROTOCOL_GET_PROTOCOL); + } + ++void ++grub_reboot (void) ++{ ++ grub_machine_fini (GRUB_LOADER_FLAG_NORETURN); ++ efi_call_4 (grub_efi_system_table->runtime_services->reset_system, ++ GRUB_EFI_RESET_COLD, GRUB_EFI_SUCCESS, 0, NULL); ++ for (;;) ; ++} ++ + void + grub_exit (void) + { +diff --git a/grub-core/kern/efi/init.c b/grub-core/kern/efi/init.c +index 2c31847bf6db77fab377c90e7ed36897439d6027..3dfdf2d22b02ae8847a3e19a175517d2d71544fa 100644 +--- a/grub-core/kern/efi/init.c ++++ b/grub-core/kern/efi/init.c +@@ -80,4 +80,5 @@ grub_efi_fini (void) + { + grub_efidisk_fini (); + grub_console_fini (); ++ grub_efi_memory_fini (); + } diff --git a/grub-core/kern/efi/mm.c b/grub-core/kern/efi/mm.c -index 20a47aaf5d0df376090510ddb8337ecc8aa18e98..ac2a4c556b8d4cb21998b112e27b6407fd7126d1 100644 +index 20a47aaf5d0df376090510ddb8337ecc8aa18e98..42ad7c570a5532c4f6a5bef9d1ff3295f413aa11 100644 --- a/grub-core/kern/efi/mm.c +++ b/grub-core/kern/efi/mm.c -@@ -51,36 +51,20 @@ int grub_efi_is_finished = 0; +@@ -49,38 +49,86 @@ static grub_efi_uintn_t finish_desc_size; + static grub_efi_uint32_t finish_desc_version; + int grub_efi_is_finished = 0; ++/* ++ * We need to roll back EFI allocations on exit. Remember allocations that ++ * we'll free on exit. ++ */ ++struct efi_allocation; ++struct efi_allocation { ++ grub_efi_physical_address_t address; ++ grub_efi_uint64_t pages; ++ struct efi_allocation *next; ++}; ++static struct efi_allocation *efi_allocated_memory; ++ ++static void ++grub_efi_store_alloc (grub_efi_physical_address_t address, ++ grub_efi_uintn_t pages) ++{ ++ grub_efi_boot_services_t *b; ++ struct efi_allocation *alloc; ++ grub_efi_status_t status; ++ ++ b = grub_efi_system_table->boot_services; ++ status = efi_call_3 (b->allocate_pool, GRUB_EFI_LOADER_DATA, ++ sizeof(*alloc), (void**)&alloc); ++ ++ if (status == GRUB_EFI_SUCCESS) ++ { ++ alloc->next = efi_allocated_memory; ++ alloc->address = address; ++ alloc->pages = pages; ++ efi_allocated_memory = alloc; ++ } ++ else ++ grub_printf ("Could not malloc memory to remember EFI allocation. " ++ "Exiting GRUB won't free all memory.\n"); ++} ++ ++static void ++grub_efi_drop_alloc (grub_efi_physical_address_t address, ++ grub_efi_uintn_t pages) ++{ ++ struct efi_allocation *ea, *eap; ++ grub_efi_boot_services_t *b; ++ ++ b = grub_efi_system_table->boot_services; ++ ++ for (eap = NULL, ea = efi_allocated_memory; ea; eap = ea, ea = ea->next) ++ { ++ if (ea->address != address || ea->pages != pages) ++ continue; ++ ++ /* Remove the current entry from the list. */ ++ if (eap) ++ eap->next = ea->next; ++ else ++ efi_allocated_memory = ea->next; ++ ++ /* Then free the memory backing it. */ ++ efi_call_1 (b->free_pool, ea); ++ ++ /* And leave, we're done. */ ++ break; ++ } ++} ++ /* Allocate pages. Return the pointer to the first of allocated pages. */ void * -grub_efi_allocate_pages (grub_efi_physical_address_t address, @@ -2348,7 +4438,7 @@ index 20a47aaf5d0df376090510ddb8337ecc8aa18e98..ac2a4c556b8d4cb21998b112e27b6407 if (status != GRUB_EFI_SUCCESS) return 0; -@@ -89,7 +73,7 @@ grub_efi_allocate_pages (grub_efi_physical_address_t address, +@@ -89,15 +137,34 @@ grub_efi_allocate_pages (grub_efi_physical_address_t address, /* Uggh, the address 0 was allocated... This is too annoying, so reallocate another one. */ address = GRUB_EFI_MAX_USABLE_ADDRESS; @@ -2357,7 +4447,10 @@ index 20a47aaf5d0df376090510ddb8337ecc8aa18e98..ac2a4c556b8d4cb21998b112e27b6407 grub_efi_free_pages (0, pages); if (status != GRUB_EFI_SUCCESS) return 0; -@@ -98,6 +82,23 @@ grub_efi_allocate_pages (grub_efi_physical_address_t address, + } + ++ grub_efi_store_alloc (address, pages); ++ return (void *) ((grub_addr_t) address); } @@ -2381,7 +4474,47 @@ index 20a47aaf5d0df376090510ddb8337ecc8aa18e98..ac2a4c556b8d4cb21998b112e27b6407 /* Free pages starting from ADDRESS. */ void grub_efi_free_pages (grub_efi_physical_address_t address, -@@ -402,7 +403,9 @@ add_memory_regions (grub_efi_memory_descriptor_t *memory_map, +@@ -107,6 +174,8 @@ grub_efi_free_pages (grub_efi_physical_address_t address, + + b = grub_efi_system_table->boot_services; + efi_call_2 (b->free_pages, address, pages); ++ ++ grub_efi_drop_alloc (address, pages); + } + + #if defined (__i386__) || defined (__x86_64__) +@@ -217,6 +286,30 @@ grub_efi_finish_boot_services (grub_efi_uintn_t *outbuf_size, void *outbuf, + return GRUB_ERR_NONE; + } + ++/* ++ * To obtain the UEFI memory map, we must pass a buffer of sufficient size ++ * to hold the entire map. This function returns a sane start value for ++ * buffer size. ++ */ ++grub_efi_uintn_t ++grub_efi_find_mmap_size (void) ++{ ++ grub_efi_uintn_t mmap_size = 0; ++ grub_efi_uintn_t desc_size; ++ ++ if (grub_efi_get_memory_map (&mmap_size, NULL, NULL, &desc_size, 0) < 0) ++ { ++ grub_error (GRUB_ERR_IO, "cannot get EFI memory map size"); ++ return 0; ++ } ++ ++ /* ++ * Add an extra page, since UEFI can alter the memory map itself on ++ * callbacks or explicit calls, including console output. ++ */ ++ return ALIGN_UP (mmap_size + GRUB_EFI_PAGE_SIZE, GRUB_EFI_PAGE_SIZE); ++} ++ + /* Get the memory map as defined in the EFI spec. Return 1 if successful, + return 0 if partial, or return -1 if an error occurs. */ + int +@@ -402,7 +495,9 @@ add_memory_regions (grub_efi_memory_descriptor_t *memory_map, pages = required_pages; } @@ -2392,7 +4525,28 @@ index 20a47aaf5d0df376090510ddb8337ecc8aa18e98..ac2a4c556b8d4cb21998b112e27b6407 if (! addr) grub_fatal ("cannot allocate conventional memory %p with %u pages", (void *) ((grub_addr_t) start), -@@ -454,8 +457,7 @@ grub_efi_mm_init (void) +@@ -419,6 +514,20 @@ add_memory_regions (grub_efi_memory_descriptor_t *memory_map, + grub_fatal ("too little memory"); + } + ++void ++grub_efi_memory_fini (void) ++{ ++ /* ++ * Free all stale allocations. grub_efi_free_pages() will remove ++ * the found entry from the list and it will always find the first ++ * list entry (efi_allocated_memory is the list start). Hence we ++ * remove all entries from the list until none is left altogether. ++ */ ++ while (efi_allocated_memory) ++ grub_efi_free_pages (efi_allocated_memory->address, ++ efi_allocated_memory->pages); ++} ++ + #if 0 + /* Print the memory map. */ + static void +@@ -454,8 +563,7 @@ grub_efi_mm_init (void) int mm_status; /* Prepare a memory region to store two memory maps. */ @@ -2402,7 +4556,7 @@ index 20a47aaf5d0df376090510ddb8337ecc8aa18e98..ac2a4c556b8d4cb21998b112e27b6407 if (! memory_map) grub_fatal ("cannot allocate memory"); -@@ -473,7 +475,7 @@ grub_efi_mm_init (void) +@@ -473,7 +581,7 @@ grub_efi_mm_init (void) /* Freeing/allocating operations may increase memory map size. */ map_size += desc_size * 32; @@ -2411,6 +4565,41 @@ index 20a47aaf5d0df376090510ddb8337ecc8aa18e98..ac2a4c556b8d4cb21998b112e27b6407 if (! memory_map) grub_fatal ("cannot allocate memory"); +@@ -525,3 +633,34 @@ grub_efi_mm_init (void) + grub_efi_free_pages ((grub_addr_t) memory_map, + 2 * BYTES_TO_PAGES (MEMORY_MAP_SIZE)); + } ++ ++#if defined (__aarch64__) || defined (__arm__) ++grub_err_t ++grub_efi_get_ram_base(grub_addr_t *base_addr) ++{ ++ grub_efi_memory_descriptor_t *memory_map, *desc; ++ grub_efi_uintn_t memory_map_size, desc_size; ++ int ret; ++ ++ memory_map_size = grub_efi_find_mmap_size(); ++ ++ memory_map = grub_malloc (memory_map_size); ++ if (! memory_map) ++ return GRUB_ERR_OUT_OF_MEMORY; ++ ret = grub_efi_get_memory_map (&memory_map_size, memory_map, NULL, ++ &desc_size, NULL); ++ ++ if (ret < 1) ++ return GRUB_ERR_BUG; ++ ++ for (desc = memory_map, *base_addr = GRUB_UINT_MAX; ++ (grub_addr_t) desc < ((grub_addr_t) memory_map + memory_map_size); ++ desc = NEXT_MEMORY_DESCRIPTOR (desc, desc_size)) ++ if (desc->attribute & GRUB_EFI_MEMORY_WB) ++ *base_addr = grub_min (*base_addr, desc->physical_start); ++ ++ grub_free(memory_map); ++ ++ return GRUB_ERR_NONE; ++} ++#endif diff --git a/grub-core/kern/i386/coreboot/cbtable.c b/grub-core/kern/i386/coreboot/cbtable.c index 1669bc0ca23a2fe5dcfb8e2b6c973ddb5e27e880..34a2b59be1ffa926e9dcc931140695cc82be223c 100644 --- a/grub-core/kern/i386/coreboot/cbtable.c @@ -2490,6 +4679,320 @@ index 1669bc0ca23a2fe5dcfb8e2b6c973ddb5e27e880..34a2b59be1ffa926e9dcc931140695cc return 0; } +diff --git a/grub-core/kern/i386/tsc.c b/grub-core/kern/i386/tsc.c +index 2e85289d848946da8260b826ed36114557299278..f266eb13185f20dd4c8f67fdffa9a4790d9e01da 100644 +--- a/grub-core/kern/i386/tsc.c ++++ b/grub-core/kern/i386/tsc.c +@@ -68,7 +68,7 @@ grub_tsc_init (void) + #ifdef GRUB_MACHINE_XEN + (void) (grub_tsc_calibrate_from_xen () || calibrate_tsc_hardcode()); + #elif defined (GRUB_MACHINE_EFI) +- (void) (grub_tsc_calibrate_from_pit () || grub_tsc_calibrate_from_pmtimer () || grub_tsc_calibrate_from_efi() || calibrate_tsc_hardcode()); ++ (void) (grub_tsc_calibrate_from_pmtimer () || grub_tsc_calibrate_from_pit () || grub_tsc_calibrate_from_efi() || calibrate_tsc_hardcode()); + #elif defined (GRUB_MACHINE_COREBOOT) + (void) (grub_tsc_calibrate_from_pmtimer () || grub_tsc_calibrate_from_pit () || calibrate_tsc_hardcode()); + #else +diff --git a/grub-core/kern/ieee1275/ieee1275.c b/grub-core/kern/ieee1275/ieee1275.c +index 98217029f458dcef3a5b227b300762ff14cf8c52..86f81a3c4671be293d823cd3235a66dff9774faa 100644 +--- a/grub-core/kern/ieee1275/ieee1275.c ++++ b/grub-core/kern/ieee1275/ieee1275.c +@@ -19,6 +19,7 @@ + + #include + #include ++#include + + #define IEEE1275_PHANDLE_INVALID ((grub_ieee1275_cell_t) -1) + #define IEEE1275_IHANDLE_INVALID ((grub_ieee1275_cell_t) 0) +@@ -482,6 +483,91 @@ grub_ieee1275_close (grub_ieee1275_ihandle_t ihandle) + return 0; + } + ++int ++grub_ieee1275_decode_unit4 (grub_ieee1275_ihandle_t ihandle, ++ void *addr, grub_size_t size, ++ grub_uint32_t *phy_lo, grub_uint32_t *phy_hi, ++ grub_uint32_t *lun_lo, grub_uint32_t *lun_hi) ++{ ++ struct decode_args ++ { ++ struct grub_ieee1275_common_hdr common; ++ grub_ieee1275_cell_t method; ++ grub_ieee1275_cell_t ihandle; ++ grub_ieee1275_cell_t size; ++ grub_ieee1275_cell_t addr; ++ grub_ieee1275_cell_t catch_result; ++ grub_ieee1275_cell_t tgt_h; ++ grub_ieee1275_cell_t tgt_l; ++ grub_ieee1275_cell_t lun_h; ++ grub_ieee1275_cell_t lun_l; ++ } ++ args; ++ ++ INIT_IEEE1275_COMMON (&args.common, "call-method", 4, 5); ++ args.method = (grub_ieee1275_cell_t) "decode-unit"; ++ args.ihandle = ihandle; ++ args.size = size; ++ args.addr = (grub_ieee1275_cell_t) addr; ++ args.catch_result = 1; ++ ++ if ((IEEE1275_CALL_ENTRY_FN (&args) == -1) || (args.catch_result)) ++ { ++ grub_error (GRUB_ERR_OUT_OF_RANGE, "decode-unit failed\n"); ++ return -1; ++ } ++ ++ *phy_lo = args.tgt_l; ++ *phy_hi = args.tgt_h; ++ *lun_lo = args.lun_l; ++ *lun_hi = args.lun_h; ++ return 0; ++} ++ ++char * ++grub_ieee1275_encode_uint4 (grub_ieee1275_ihandle_t ihandle, ++ grub_uint32_t phy_lo, grub_uint32_t phy_hi, ++ grub_uint32_t lun_lo, grub_uint32_t lun_hi, ++ grub_size_t *size) ++{ ++ char *addr; ++ struct encode_args ++ { ++ struct grub_ieee1275_common_hdr common; ++ grub_ieee1275_cell_t method; ++ grub_ieee1275_cell_t ihandle; ++ grub_ieee1275_cell_t tgt_h; ++ grub_ieee1275_cell_t tgt_l; ++ grub_ieee1275_cell_t lun_h; ++ grub_ieee1275_cell_t lun_l; ++ grub_ieee1275_cell_t catch_result; ++ grub_ieee1275_cell_t size; ++ grub_ieee1275_cell_t addr; ++ } ++ args; ++ ++ INIT_IEEE1275_COMMON (&args.common, "call-method", 6, 3); ++ args.method = (grub_ieee1275_cell_t) "encode-unit"; ++ args.ihandle = ihandle; ++ ++ args.tgt_l = phy_lo; ++ args.tgt_h = phy_hi; ++ args.lun_l = lun_lo; ++ args.lun_h = lun_hi; ++ args.catch_result = 1; ++ ++ if ((IEEE1275_CALL_ENTRY_FN (&args) == -1) || (args.catch_result)) ++ { ++ grub_error (GRUB_ERR_OUT_OF_RANGE, "encode-unit failed\n"); ++ return 0; ++ } ++ ++ addr = (void *)args.addr; ++ *size = args.size; ++ addr = grub_strdup ((char *)args.addr); ++ return addr; ++} ++ + int + grub_ieee1275_claim (grub_addr_t addr, grub_size_t size, unsigned int align, + grub_addr_t *result) +@@ -607,3 +693,117 @@ grub_ieee1275_milliseconds (grub_uint32_t *msecs) + *msecs = args.msecs; + return 0; + } ++ ++int ++grub_ieee1275_set_address (grub_ieee1275_ihandle_t ihandle, ++ grub_uint32_t target, grub_uint32_t lun) ++{ ++ struct set_address ++ { ++ struct grub_ieee1275_common_hdr common; ++ grub_ieee1275_cell_t method; ++ grub_ieee1275_cell_t ihandle; ++ grub_ieee1275_cell_t tgt; ++ grub_ieee1275_cell_t lun; ++ grub_ieee1275_cell_t catch_result; ++ } ++ args; ++ ++ INIT_IEEE1275_COMMON (&args.common, "call-method", 4, 1); ++ ++ /* ++ * IEEE 1275-1994 Standard for Boot (Initialization Configuration) ++ * Firmware: Core Requirements and Practices ++ * E.3.2.2 Bus-specific methods for bus nodes ++ * ++ * A package implementing the scsi-2 device type shall implement the ++ * following bus-specific method: ++ * ++ * set-address ( unit# target# -- ) ++ * Sets the SCSI target number (0x0..0xf) and unit number (0..7) to which ++ * subsequent commands apply. ++ */ ++ args.method = (grub_ieee1275_cell_t) "set-address"; ++ args.ihandle = ihandle; ++ args.tgt = target; ++ args.lun = lun; ++ ++ if (IEEE1275_CALL_ENTRY_FN (&args) == -1) ++ return -1; ++ ++ return args.catch_result; ++} ++ ++int ++grub_ieee1275_no_data_command (grub_ieee1275_ihandle_t ihandle, ++ const void *cmd_addr, grub_ssize_t *result) ++{ ++ struct set_address ++ { ++ struct grub_ieee1275_common_hdr common; ++ grub_ieee1275_cell_t method; ++ grub_ieee1275_cell_t ihandle; ++ grub_ieee1275_cell_t cmd_addr; ++ grub_ieee1275_cell_t error; ++ grub_ieee1275_cell_t catch_result; ++ } ++ args; ++ ++ INIT_IEEE1275_COMMON (&args.common, "call-method", 3, 2); ++ ++ /* ++ * IEEE 1275-1994 Standard for Boot (Initialization Configuration) ++ * Firmware: Core Requirements and Practices ++ * ++ * E.3.2.2 Bus-specific methods for bus nodes ++ * ++ * A package implementing the scsi-2 device type shall implement the ++ * following bus-specific method: ++ * ++ * no-data-command ( cmd-addr -- error? ) ++ * Executes a simple SCSI command, automatically retrying under ++ * certain conditions. cmd-addr is the address of a 6-byte command buffer ++ * containing an SCSI command that does not have a data transfer phase. ++ * Executes the command, retrying indefinitely with the same retry criteria ++ * as retry-command. ++ * ++ * error? is nonzero if an error occurred, zero otherwise. ++ * NOTE no-data-command is a convenience function. It provides ++ * no capabilities that are not present in retry-command, but for ++ * those commands that meet its restrictions, it is easier to use. ++ */ ++ args.method = (grub_ieee1275_cell_t) "no-data-command"; ++ args.ihandle = ihandle; ++ args.cmd_addr = (grub_ieee1275_cell_t) cmd_addr; ++ ++ if (IEEE1275_CALL_ENTRY_FN (&args) == -1) ++ return -1; ++ ++ if (result) ++ *result = args.error; ++ ++ return args.catch_result; ++} ++ ++int ++grub_ieee1275_get_block_size (grub_ieee1275_ihandle_t ihandle) ++{ ++ struct size_args_ieee1275 ++ { ++ struct grub_ieee1275_common_hdr common; ++ grub_ieee1275_cell_t method; ++ grub_ieee1275_cell_t ihandle; ++ grub_ieee1275_cell_t result; ++ grub_ieee1275_cell_t size; ++ } args; ++ ++ INIT_IEEE1275_COMMON (&args.common, "call-method", 2, 2); ++ args.method = (grub_ieee1275_cell_t) "block-size"; ++ args.ihandle = ihandle; ++ args.result = 1; ++ ++ if ((IEEE1275_CALL_ENTRY_FN (&args) == -1) || (args.result)) ++ return 0; ++ ++ return args.size; ++} +diff --git a/grub-core/kern/ieee1275/init.c b/grub-core/kern/ieee1275/init.c +index 12590225eca1483066ea5e7b7443cea3198f6d9b..0d8ebf58b95e220b233e043d2b380007b48e1235 100644 +--- a/grub-core/kern/ieee1275/init.c ++++ b/grub-core/kern/ieee1275/init.c +@@ -94,28 +94,12 @@ void + grub_machine_get_bootlocation (char **device, char **path) + { + char *bootpath; +- grub_ssize_t bootpath_size; + char *filename; + char *type; + +- if (grub_ieee1275_get_property_length (grub_ieee1275_chosen, "bootpath", +- &bootpath_size) +- || bootpath_size <= 0) +- { +- /* Should never happen. */ +- grub_printf ("/chosen/bootpath property missing!\n"); +- return; +- } +- +- bootpath = (char *) grub_malloc ((grub_size_t) bootpath_size + 64); ++ bootpath = grub_ieee1275_get_boot_dev (); + if (! bootpath) +- { +- grub_print_error (); +- return; +- } +- grub_ieee1275_get_property (grub_ieee1275_chosen, "bootpath", bootpath, +- (grub_size_t) bootpath_size + 1, 0); +- bootpath[bootpath_size] = '\0'; ++ return; + + /* Transform an OF device path to a GRUB path. */ + +@@ -126,6 +110,8 @@ grub_machine_get_bootlocation (char **device, char **path) + char *ptr; + dev = grub_ieee1275_get_aliasdevname (bootpath); + canon = grub_ieee1275_canonicalise_devname (dev); ++ if (! canon) ++ return; + ptr = canon + grub_strlen (canon) - 1; + while (ptr > canon && (*ptr == ',' || *ptr == ':')) + ptr--; +diff --git a/grub-core/kern/ieee1275/openfw.c b/grub-core/kern/ieee1275/openfw.c +index ddb778340e4ab74148898b32cd27139fd4f1465b..62929d983bfaa2c83158ee4fe6797125c6d6b844 100644 +--- a/grub-core/kern/ieee1275/openfw.c ++++ b/grub-core/kern/ieee1275/openfw.c +@@ -561,3 +561,30 @@ grub_ieee1275_canonicalise_devname (const char *path) + return NULL; + } + ++char * ++grub_ieee1275_get_boot_dev (void) ++{ ++ char *bootpath; ++ grub_ssize_t bootpath_size; ++ ++ if (grub_ieee1275_get_property_length (grub_ieee1275_chosen, "bootpath", ++ &bootpath_size) ++ || bootpath_size <= 0) ++ { ++ /* Should never happen. */ ++ grub_printf ("/chosen/bootpath property missing!\n"); ++ return NULL; ++ } ++ ++ bootpath = (char *) grub_malloc ((grub_size_t) bootpath_size + 64); ++ if (! bootpath) ++ { ++ grub_print_error (); ++ return NULL; ++ } ++ grub_ieee1275_get_property (grub_ieee1275_chosen, "bootpath", bootpath, ++ (grub_size_t) bootpath_size + 1, 0); ++ bootpath[bootpath_size] = '\0'; ++ ++ return bootpath; ++} diff --git a/grub-core/kern/misc.c b/grub-core/kern/misc.c index d1a54df6c12e3358e07aa86366c65af22ca3af5c..3b633d51f4c63e2983e8b3419dc057437224fb93 100644 --- a/grub-core/kern/misc.c @@ -2514,6 +5017,70 @@ index d1a54df6c12e3358e07aa86366c65af22ca3af5c..3b633d51f4c63e2983e8b3419dc05743 found = 1; +diff --git a/grub-core/kern/sparc64/ieee1275/ieee1275.c b/grub-core/kern/sparc64/ieee1275/ieee1275.c +index 53be692c3d88940572d423ceb09e4187372fcb5b..5a59aaf06193442fa5ec7a537c9cfb10dd3081aa 100644 +--- a/grub-core/kern/sparc64/ieee1275/ieee1275.c ++++ b/grub-core/kern/sparc64/ieee1275/ieee1275.c +@@ -89,3 +89,59 @@ grub_ieee1275_alloc_physmem (grub_addr_t *paddr, grub_size_t size, + + return args.catch_result; + } ++ ++grub_uint64_t ++grub_ieee1275_num_blocks (grub_ieee1275_ihandle_t ihandle) ++{ ++ struct nblocks_args_ieee1275 ++ { ++ struct grub_ieee1275_common_hdr common; ++ grub_ieee1275_cell_t method; ++ grub_ieee1275_cell_t ihandle; ++ grub_ieee1275_cell_t catch_result; ++ grub_ieee1275_cell_t blocks; ++ } ++ args; ++ ++ INIT_IEEE1275_COMMON (&args.common, "call-method", 2, 2); ++ args.method = (grub_ieee1275_cell_t) "#blocks"; ++ args.ihandle = ihandle; ++ args.catch_result = 1; ++ ++ if ((IEEE1275_CALL_ENTRY_FN (&args) == -1) || (args.catch_result != 0)) ++ return -1; ++ ++ /* ++ * If the number of blocks exceeds the range of an unsigned number, ++ * return 0 to alert the caller to try the #blocks64 command. ++ */ ++ if (args.blocks >= 0xffffffffULL) ++ return 0; ++ ++ return args.blocks; ++} ++ ++grub_uint64_t ++grub_ieee1275_num_blocks64 (grub_ieee1275_ihandle_t ihandle) ++{ ++ struct nblocks_args_ieee1275 ++ { ++ struct grub_ieee1275_common_hdr common; ++ grub_ieee1275_cell_t method; ++ grub_ieee1275_cell_t ihandle; ++ grub_ieee1275_cell_t catch_result; ++ grub_ieee1275_cell_t hi_blocks; ++ grub_ieee1275_cell_t lo_blocks; ++ } ++ args; ++ ++ INIT_IEEE1275_COMMON (&args.common, "call-method", 2, 3); ++ args.method = (grub_ieee1275_cell_t) "#blocks64"; ++ args.ihandle = ihandle; ++ args.catch_result = 1; ++ ++ if ((IEEE1275_CALL_ENTRY_FN (&args) == -1) || (args.catch_result != 0)) ++ return -1; ++ ++ return ((args.hi_blocks << 32) | (args.lo_blocks)); ++} diff --git a/grub-core/kern/uboot/init.c b/grub-core/kern/uboot/init.c index 5dcc106ed9bcc1fa2cdbe2ba6cbb9e709420ceb3..3e338645c573aa707343235029d9fc45d515a9dc 100644 --- a/grub-core/kern/uboot/init.c @@ -2602,6 +5169,18 @@ index 6800a4beb1c4e83ef9f4ac5da872d2557d8471e1..cf0168e62ddd26db50efd2351499fa7f /* * All functions below are wrappers around the grub_uboot_syscall() function +diff --git a/grub-core/kern/x86_64/dl.c b/grub-core/kern/x86_64/dl.c +index 44069067312a890b4e3ebb5130861ed23572bc54..3a73e6e6ce2c5aefc33313e583cb259ea9bc2645 100644 +--- a/grub-core/kern/x86_64/dl.c ++++ b/grub-core/kern/x86_64/dl.c +@@ -70,6 +70,7 @@ grub_arch_dl_relocate_symbols (grub_dl_t mod, void *ehdr, + break; + + case R_X86_64_PC32: ++ case R_X86_64_PLT32: + { + grub_int64_t value; + value = ((grub_int32_t) *addr32) + rel->r_addend + sym->st_value - diff --git a/grub-core/lib/crypto.c b/grub-core/lib/crypto.c index 683a8aaa711c4eab0208d116cd7275a6ac678986..ca334d5a40e0716bdc9afbb79135c47d174532da 100644 --- a/grub-core/lib/crypto.c @@ -2658,49 +5237,71 @@ diff --git a/grub-core/lib/uboot/halt.c b/grub-core/lib/dummy/halt.c similarity index 100% rename from grub-core/lib/uboot/halt.c rename to grub-core/lib/dummy/halt.c -diff --git a/grub-core/lib/dummy/reboot.c b/grub-core/lib/dummy/reboot.c -new file mode 100644 -index 0000000000000000000000000000000000000000..b8cbed8f8117ca9c53cc2087dee87ae68876d64f ---- /dev/null +diff --git a/grub-core/lib/efi/reboot.c b/grub-core/lib/dummy/reboot.c +similarity index 77% +rename from grub-core/lib/efi/reboot.c +rename to grub-core/lib/dummy/reboot.c +index 7de8bcb5d6ea128dd406001d970d18ff00ea0f3c..b8cbed8f8117ca9c53cc2087dee87ae68876d64f 100644 +--- a/grub-core/lib/efi/reboot.c +++ b/grub-core/lib/dummy/reboot.c -@@ -0,0 +1,32 @@ -+/* -+ * GRUB -- GRand Unified Bootloader +@@ -1,6 +1,6 @@ + /* + * GRUB -- GRand Unified Bootloader +- * Copyright (C) 2011 Free Software Foundation, Inc. + * Copyright (C) 2013 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ -+#include + * + * GRUB is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by +@@ -16,10 +16,8 @@ + * along with GRUB. If not, see . + */ + +-#include +-#include +-#include + #include +#include -+#include -+#include -+ -+void -+grub_reboot (void) -+{ -+ grub_machine_fini (GRUB_LOADER_FLAG_NORETURN); + #include + #include + +@@ -27,7 +25,8 @@ void + grub_reboot (void) + { + grub_machine_fini (GRUB_LOADER_FLAG_NORETURN); +- efi_call_4 (grub_efi_system_table->runtime_services->reset_system, +- GRUB_EFI_RESET_COLD, GRUB_EFI_SUCCESS, 0, NULL); +- for (;;) ; + + /* Just stop here */ + + while (1); -+} + } diff --git a/grub-core/lib/fdt.c b/grub-core/lib/fdt.c -index b5d520f208886aa663d4aac36cec9b43a2d0da42..2705f2629b9d4d1d2b53c34fec9022e991b6ac17 100644 +index b5d520f208886aa663d4aac36cec9b43a2d0da42..0d371c5633e84bbf47114bfe2c23427982e25192 100644 --- a/grub-core/lib/fdt.c +++ b/grub-core/lib/fdt.c -@@ -102,13 +102,13 @@ static grub_uint32_t *get_next_node (const void *fdt, char *node_name) +@@ -41,11 +41,6 @@ GRUB_MOD_LICENSE ("GPLv3+"); + (2 * sizeof(grub_uint32_t) \ + + ALIGN_UP (grub_strlen (name) + 1, sizeof(grub_uint32_t))) + +-/* Size needed by a property entry: 1 token (FDT_PROPERTY), plus len and nameoff +- fields, plus the property value, plus padding if needed. */ +-#define prop_entry_size(prop_len) \ +- (3 * sizeof(grub_uint32_t) + ALIGN_UP(prop_len, sizeof(grub_uint32_t))) +- + #define SKIP_NODE_NAME(name, token, end) \ + name = (char *) ((token) + 1); \ + while (name < (char *) end) \ +@@ -86,7 +81,7 @@ static grub_uint32_t *get_next_node (const void *fdt, char *node_name) + case FDT_PROP: + /* Skip property token and following data (len, nameoff and property + value). */ +- token += prop_entry_size(grub_be_to_cpu32(*(token + 1))) ++ token += grub_fdt_prop_entry_size(grub_be_to_cpu32(*(token + 1))) + / sizeof(*token); + break; + case FDT_NOP: +@@ -102,13 +97,13 @@ static grub_uint32_t *get_next_node (const void *fdt, char *node_name) static int get_mem_rsvmap_size (const void *fdt) { int size = 0; @@ -2717,7 +5318,16 @@ index b5d520f208886aa663d4aac36cec9b43a2d0da42..2705f2629b9d4d1d2b53c34fec9022e9 return size; ptr += 2; } while ((grub_addr_t) ptr <= (grub_addr_t) fdt + grub_fdt_get_totalsize (fdt) -@@ -229,7 +229,7 @@ static int rearrange_blocks (void *fdt, unsigned int clearance) +@@ -150,7 +145,7 @@ static int add_subnode (void *fdt, int parentoffset, const char *name) + { + case FDT_PROP: + /* Skip len, nameoff and property value. */ +- token += prop_entry_size(grub_be_to_cpu32(*(token + 1))) ++ token += grub_fdt_prop_entry_size(grub_be_to_cpu32(*(token + 1))) + / sizeof(*token); + break; + case FDT_BEGIN_NODE: +@@ -229,7 +224,7 @@ static int rearrange_blocks (void *fdt, unsigned int clearance) return 0; } @@ -2726,7 +5336,22 @@ index b5d520f208886aa663d4aac36cec9b43a2d0da42..2705f2629b9d4d1d2b53c34fec9022e9 const char *name) { grub_uint32_t *prop = (void *) ((grub_addr_t) fdt -@@ -268,9 +268,9 @@ static grub_uint32_t *find_prop (void *fdt, unsigned int nodeoffset, +@@ -249,12 +244,12 @@ static grub_uint32_t *find_prop (void *fdt, unsigned int nodeoffset, + && !grub_strcmp (name, (char *) fdt + + grub_fdt_get_off_dt_strings (fdt) + nameoff)) + { +- if (prop + prop_entry_size(grub_be_to_cpu32(*(prop + 1))) ++ if (prop + grub_fdt_prop_entry_size(grub_be_to_cpu32(*(prop + 1))) + / sizeof (*prop) >= end) + return NULL; + return prop; + } +- prop += prop_entry_size(grub_be_to_cpu32(*(prop + 1))) / sizeof (*prop); ++ prop += grub_fdt_prop_entry_size(grub_be_to_cpu32(*(prop + 1))) / sizeof (*prop); + } + else if (grub_be_to_cpu32(*prop) == FDT_NOP) + prop++; +@@ -268,9 +263,9 @@ static grub_uint32_t *find_prop (void *fdt, unsigned int nodeoffset, the size allocated for the FDT; if this function is called before the other functions in this file and returns success, the other functions are guaranteed not to access memory locations outside the allocated memory. */ @@ -2738,7 +5363,7 @@ index b5d520f208886aa663d4aac36cec9b43a2d0da42..2705f2629b9d4d1d2b53c34fec9022e9 || (grub_fdt_get_version (fdt) < FDT_SUPPORTED_VERSION) || (grub_fdt_get_last_comp_version (fdt) > FDT_SUPPORTED_VERSION) || (grub_fdt_get_off_dt_struct (fdt) & 0x00000003) -@@ -286,7 +286,7 @@ int grub_fdt_check_header_nosize (void *fdt) +@@ -286,7 +281,7 @@ int grub_fdt_check_header_nosize (void *fdt) return 0; } @@ -2747,7 +5372,7 @@ index b5d520f208886aa663d4aac36cec9b43a2d0da42..2705f2629b9d4d1d2b53c34fec9022e9 { if (size < sizeof (grub_fdt_header_t) || (grub_fdt_get_totalsize (fdt) > size) -@@ -295,52 +295,105 @@ int grub_fdt_check_header (void *fdt, unsigned int size) +@@ -295,52 +290,105 @@ int grub_fdt_check_header (void *fdt, unsigned int size) return 0; } @@ -2775,7 +5400,7 @@ index b5d520f208886aa663d4aac36cec9b43a2d0da42..2705f2629b9d4d1d2b53c34fec9022e9 + value). */ + if (token >= end - 1) + return 0; -+ token += prop_entry_size(grub_be_to_cpu32(*(token + 1))) ++ token += grub_fdt_prop_entry_size(grub_be_to_cpu32(*(token + 1))) + / sizeof(*token); + break; + case FDT_NOP: @@ -2887,7 +5512,7 @@ index b5d520f208886aa663d4aac36cec9b43a2d0da42..2705f2629b9d4d1d2b53c34fec9022e9 } int grub_fdt_add_subnode (void *fdt, unsigned int parentoffset, -@@ -359,6 +412,24 @@ int grub_fdt_add_subnode (void *fdt, unsigned int parentoffset, +@@ -359,6 +407,24 @@ int grub_fdt_add_subnode (void *fdt, unsigned int parentoffset, return add_subnode (fdt, parentoffset, name); } @@ -2912,11 +5537,966 @@ index b5d520f208886aa663d4aac36cec9b43a2d0da42..2705f2629b9d4d1d2b53c34fec9022e9 int grub_fdt_set_prop (void *fdt, unsigned int nodeoffset, const char *name, const void *val, grub_uint32_t len) { +@@ -396,12 +462,12 @@ int grub_fdt_set_prop (void *fdt, unsigned int nodeoffset, const char *name, + unsigned int needed_space = 0; + + if (!prop) +- needed_space = prop_entry_size(len); ++ needed_space = grub_fdt_prop_entry_size(len); + if (!prop_name_present) + needed_space += grub_strlen (name) + 1; + if (needed_space > get_free_space (fdt)) + return -1; +- if (rearrange_blocks (fdt, !prop ? prop_entry_size(len) : 0) < 0) ++ if (rearrange_blocks (fdt, !prop ? grub_fdt_prop_entry_size(len) : 0) < 0) + return -1; + } + if (!prop_name_present) { +@@ -418,10 +484,10 @@ int grub_fdt_set_prop (void *fdt, unsigned int nodeoffset, const char *name, + + sizeof(grub_uint32_t)); + + prop = (void *) (node_name + ALIGN_UP(grub_strlen(node_name) + 1, 4)); +- grub_memmove (prop + prop_entry_size(len) / sizeof(*prop), prop, ++ grub_memmove (prop + grub_fdt_prop_entry_size(len) / sizeof(*prop), prop, + struct_end(fdt) - (grub_addr_t) prop); + grub_fdt_set_size_dt_struct (fdt, grub_fdt_get_size_dt_struct (fdt) +- + prop_entry_size(len)); ++ + grub_fdt_prop_entry_size(len)); + *prop = grub_cpu_to_be32_compile_time (FDT_PROP); + *(prop + 2) = grub_cpu_to_be32 (nameoff); + } +@@ -429,7 +495,7 @@ int grub_fdt_set_prop (void *fdt, unsigned int nodeoffset, const char *name, + + /* Insert padding bytes at the end of the value; if they are not needed, they + will be overwritten by the following memcpy. */ +- *(prop + prop_entry_size(len) / sizeof(grub_uint32_t) - 1) = 0; ++ *(prop + grub_fdt_prop_entry_size(len) / sizeof(grub_uint32_t) - 1) = 0; + + grub_memcpy (prop + 3, val, len); + return 0; +diff --git a/grub-core/lib/i386/reboot.c b/grub-core/lib/i386/reboot.c +index a234244dce5b4c5afd5c68e579c4519a870cda36..dce0b563dcd39ce7acc6d5ec0cc759e67c8c8b87 100644 +--- a/grub-core/lib/i386/reboot.c ++++ b/grub-core/lib/i386/reboot.c +@@ -16,6 +16,8 @@ + * along with GRUB. If not, see . + */ + ++#ifndef GRUB_MACHINE_EFI ++ + #include + #include + #include +@@ -58,3 +60,5 @@ grub_reboot (void) + + while (1); + } ++ ++#endif /* GRUB_MACHINE_EFI */ +diff --git a/grub-core/lib/libgcrypt/cipher/crc.c b/grub-core/lib/libgcrypt/cipher/crc.c +index 9e406f1b19b4d1d49c1ba5140c47d630972c0d8e..28454f8ab728c657d0b440371765030deb35a407 100644 +--- a/grub-core/lib/libgcrypt/cipher/crc.c ++++ b/grub-core/lib/libgcrypt/cipher/crc.c +@@ -28,116 +28,8 @@ + #include "cipher.h" + + #include "bithelp.h" ++#include "bufhelp.h" + +-/* Table of CRCs of all 8-bit messages. Generated by running code +- from RFC 1952 modified to print out the table. */ +-static u32 crc32_table[256] = { +- 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f, +- 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988, +- 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, 0x1db71064, 0x6ab020f2, +- 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7, +- 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9, +- 0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172, +- 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, 0x35b5a8fa, 0x42b2986c, +- 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59, +- 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423, +- 0xcfba9599, 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, +- 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, 0x01db7106, +- 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433, +- 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d, +- 0x91646c97, 0xe6635c01, 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, +- 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950, +- 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65, +- 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7, +- 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0, +- 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa, +- 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f, +- 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81, +- 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a, +- 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, 0xe3630b12, 0x94643b84, +- 0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, +- 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb, +- 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc, +- 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, 0xd6d6a3e8, 0xa1d1937e, +- 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b, +- 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55, +- 0x316e8eef, 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, +- 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, 0xb2bd0b28, +- 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d, +- 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f, +- 0x72076785, 0x05005713, 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, +- 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242, +- 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777, +- 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69, +- 0x616bffd3, 0x166ccf45, 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2, +- 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc, +- 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9, +- 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693, +- 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, +- 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d +-}; +- +-/* +- * The following function was extracted from RFC 1952 by Simon +- * Josefsson, for the Shishi project, and modified to be compatible +- * with the modified CRC-32 used by RFC 1510, and subsequently +- * modified for GNU Libgcrypt to allow it to be used for calculating +- * both unmodified CRC-32 and modified CRC-32 values. Original +- * copyright and notice from the document follows: +- * +- * Copyright (c) 1996 L. Peter Deutsch +- * +- * Permission is granted to copy and distribute this document for +- * any purpose and without charge, including translations into +- * other languages and incorporation into compilations, provided +- * that the copyright notice and this notice are preserved, and +- * that any substantive changes or deletions from the original are +- * clearly marked. +- * +- * The copyright on RFCs, and consequently the function below, are +- * supposedly also retroactively claimed by the Internet Society +- * (according to rfc-editor@rfc-editor.org), with the following +- * copyright notice: +- * +- * Copyright (C) The Internet Society. All Rights Reserved. +- * +- * This document and translations of it may be copied and furnished +- * to others, and derivative works that comment on or otherwise +- * explain it or assist in its implementation may be prepared, +- * copied, published and distributed, in whole or in part, without +- * restriction of any kind, provided that the above copyright +- * notice and this paragraph are included on all such copies and +- * derivative works. However, this document itself may not be +- * modified in any way, such as by removing the copyright notice or +- * references to the Internet Society or other Internet +- * organizations, except as needed for the purpose of developing +- * Internet standards in which case the procedures for copyrights +- * defined in the Internet Standards process must be followed, or +- * as required to translate it into languages other than English. +- * +- * The limited permissions granted above are perpetual and will not be +- * revoked by the Internet Society or its successors or assigns. +- * +- * This document and the information contained herein is provided +- * on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET +- * ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR +- * IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE +- * OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY +- * IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A +- * PARTICULAR PURPOSE. +- * +- */ +-static u32 +-update_crc32 (u32 crc, const void *buf_arg, size_t len) +-{ +- const char *buf = buf_arg; +- size_t n; +- +- for (n = 0; n < len; n++) +- crc = crc32_table[(crc ^ buf[n]) & 0xff] ^ (crc >> 8); +- +- return crc; +-} + + typedef struct + { +@@ -146,8 +38,302 @@ typedef struct + } + CRC_CONTEXT; + ++ ++/* ++ * Code generated by universal_crc by Danjel McGougan ++ * ++ * CRC parameters used: ++ * bits: 32 ++ * poly: 0x04c11db7 ++ * init: 0xffffffff ++ * xor: 0xffffffff ++ * reverse: true ++ * non-direct: false ++ * ++ * CRC of the string "123456789" is 0xcbf43926 ++ */ ++ ++static const u32 crc32_table[1024] = { ++ 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, ++ 0x076dc419, 0x706af48f, 0xe963a535, 0x9e6495a3, ++ 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988, ++ 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, ++ 0x1db71064, 0x6ab020f2, 0xf3b97148, 0x84be41de, ++ 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7, ++ 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, ++ 0x14015c4f, 0x63066cd9, 0xfa0f3d63, 0x8d080df5, ++ 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172, ++ 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, ++ 0x35b5a8fa, 0x42b2986c, 0xdbbbc9d6, 0xacbcf940, ++ 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59, ++ 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, ++ 0x21b4f4b5, 0x56b3c423, 0xcfba9599, 0xb8bda50f, ++ 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924, ++ 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, ++ 0x76dc4190, 0x01db7106, 0x98d220bc, 0xefd5102a, ++ 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433, ++ 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, ++ 0x7f6a0dbb, 0x086d3d2d, 0x91646c97, 0xe6635c01, ++ 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e, ++ 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, ++ 0x65b0d9c6, 0x12b7e950, 0x8bbeb8ea, 0xfcb9887c, ++ 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65, ++ 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, ++ 0x4adfa541, 0x3dd895d7, 0xa4d1c46d, 0xd3d6f4fb, ++ 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0, ++ 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, ++ 0x5005713c, 0x270241aa, 0xbe0b1010, 0xc90c2086, ++ 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f, ++ 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, ++ 0x59b33d17, 0x2eb40d81, 0xb7bd5c3b, 0xc0ba6cad, ++ 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a, ++ 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, ++ 0xe3630b12, 0x94643b84, 0x0d6d6a3e, 0x7a6a5aa8, ++ 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1, ++ 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, ++ 0xf762575d, 0x806567cb, 0x196c3671, 0x6e6b06e7, ++ 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc, ++ 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, ++ 0xd6d6a3e8, 0xa1d1937e, 0x38d8c2c4, 0x4fdff252, ++ 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b, ++ 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, ++ 0xdf60efc3, 0xa867df55, 0x316e8eef, 0x4669be79, ++ 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236, ++ 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, ++ 0xc5ba3bbe, 0xb2bd0b28, 0x2bb45a92, 0x5cb36a04, ++ 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d, ++ 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, ++ 0x9c0906a9, 0xeb0e363f, 0x72076785, 0x05005713, ++ 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38, ++ 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, ++ 0x86d3d2d4, 0xf1d4e242, 0x68ddb3f8, 0x1fda836e, ++ 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777, ++ 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, ++ 0x8f659eff, 0xf862ae69, 0x616bffd3, 0x166ccf45, ++ 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2, ++ 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, ++ 0xaed16a4a, 0xd9d65adc, 0x40df0b66, 0x37d83bf0, ++ 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9, ++ 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, ++ 0xbad03605, 0xcdd70693, 0x54de5729, 0x23d967bf, ++ 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94, ++ 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d, ++ 0x00000000, 0x191b3141, 0x32366282, 0x2b2d53c3, ++ 0x646cc504, 0x7d77f445, 0x565aa786, 0x4f4196c7, ++ 0xc8d98a08, 0xd1c2bb49, 0xfaefe88a, 0xe3f4d9cb, ++ 0xacb54f0c, 0xb5ae7e4d, 0x9e832d8e, 0x87981ccf, ++ 0x4ac21251, 0x53d92310, 0x78f470d3, 0x61ef4192, ++ 0x2eaed755, 0x37b5e614, 0x1c98b5d7, 0x05838496, ++ 0x821b9859, 0x9b00a918, 0xb02dfadb, 0xa936cb9a, ++ 0xe6775d5d, 0xff6c6c1c, 0xd4413fdf, 0xcd5a0e9e, ++ 0x958424a2, 0x8c9f15e3, 0xa7b24620, 0xbea97761, ++ 0xf1e8e1a6, 0xe8f3d0e7, 0xc3de8324, 0xdac5b265, ++ 0x5d5daeaa, 0x44469feb, 0x6f6bcc28, 0x7670fd69, ++ 0x39316bae, 0x202a5aef, 0x0b07092c, 0x121c386d, ++ 0xdf4636f3, 0xc65d07b2, 0xed705471, 0xf46b6530, ++ 0xbb2af3f7, 0xa231c2b6, 0x891c9175, 0x9007a034, ++ 0x179fbcfb, 0x0e848dba, 0x25a9de79, 0x3cb2ef38, ++ 0x73f379ff, 0x6ae848be, 0x41c51b7d, 0x58de2a3c, ++ 0xf0794f05, 0xe9627e44, 0xc24f2d87, 0xdb541cc6, ++ 0x94158a01, 0x8d0ebb40, 0xa623e883, 0xbf38d9c2, ++ 0x38a0c50d, 0x21bbf44c, 0x0a96a78f, 0x138d96ce, ++ 0x5ccc0009, 0x45d73148, 0x6efa628b, 0x77e153ca, ++ 0xbabb5d54, 0xa3a06c15, 0x888d3fd6, 0x91960e97, ++ 0xded79850, 0xc7cca911, 0xece1fad2, 0xf5facb93, ++ 0x7262d75c, 0x6b79e61d, 0x4054b5de, 0x594f849f, ++ 0x160e1258, 0x0f152319, 0x243870da, 0x3d23419b, ++ 0x65fd6ba7, 0x7ce65ae6, 0x57cb0925, 0x4ed03864, ++ 0x0191aea3, 0x188a9fe2, 0x33a7cc21, 0x2abcfd60, ++ 0xad24e1af, 0xb43fd0ee, 0x9f12832d, 0x8609b26c, ++ 0xc94824ab, 0xd05315ea, 0xfb7e4629, 0xe2657768, ++ 0x2f3f79f6, 0x362448b7, 0x1d091b74, 0x04122a35, ++ 0x4b53bcf2, 0x52488db3, 0x7965de70, 0x607eef31, ++ 0xe7e6f3fe, 0xfefdc2bf, 0xd5d0917c, 0xcccba03d, ++ 0x838a36fa, 0x9a9107bb, 0xb1bc5478, 0xa8a76539, ++ 0x3b83984b, 0x2298a90a, 0x09b5fac9, 0x10aecb88, ++ 0x5fef5d4f, 0x46f46c0e, 0x6dd93fcd, 0x74c20e8c, ++ 0xf35a1243, 0xea412302, 0xc16c70c1, 0xd8774180, ++ 0x9736d747, 0x8e2de606, 0xa500b5c5, 0xbc1b8484, ++ 0x71418a1a, 0x685abb5b, 0x4377e898, 0x5a6cd9d9, ++ 0x152d4f1e, 0x0c367e5f, 0x271b2d9c, 0x3e001cdd, ++ 0xb9980012, 0xa0833153, 0x8bae6290, 0x92b553d1, ++ 0xddf4c516, 0xc4eff457, 0xefc2a794, 0xf6d996d5, ++ 0xae07bce9, 0xb71c8da8, 0x9c31de6b, 0x852aef2a, ++ 0xca6b79ed, 0xd37048ac, 0xf85d1b6f, 0xe1462a2e, ++ 0x66de36e1, 0x7fc507a0, 0x54e85463, 0x4df36522, ++ 0x02b2f3e5, 0x1ba9c2a4, 0x30849167, 0x299fa026, ++ 0xe4c5aeb8, 0xfdde9ff9, 0xd6f3cc3a, 0xcfe8fd7b, ++ 0x80a96bbc, 0x99b25afd, 0xb29f093e, 0xab84387f, ++ 0x2c1c24b0, 0x350715f1, 0x1e2a4632, 0x07317773, ++ 0x4870e1b4, 0x516bd0f5, 0x7a468336, 0x635db277, ++ 0xcbfad74e, 0xd2e1e60f, 0xf9ccb5cc, 0xe0d7848d, ++ 0xaf96124a, 0xb68d230b, 0x9da070c8, 0x84bb4189, ++ 0x03235d46, 0x1a386c07, 0x31153fc4, 0x280e0e85, ++ 0x674f9842, 0x7e54a903, 0x5579fac0, 0x4c62cb81, ++ 0x8138c51f, 0x9823f45e, 0xb30ea79d, 0xaa1596dc, ++ 0xe554001b, 0xfc4f315a, 0xd7626299, 0xce7953d8, ++ 0x49e14f17, 0x50fa7e56, 0x7bd72d95, 0x62cc1cd4, ++ 0x2d8d8a13, 0x3496bb52, 0x1fbbe891, 0x06a0d9d0, ++ 0x5e7ef3ec, 0x4765c2ad, 0x6c48916e, 0x7553a02f, ++ 0x3a1236e8, 0x230907a9, 0x0824546a, 0x113f652b, ++ 0x96a779e4, 0x8fbc48a5, 0xa4911b66, 0xbd8a2a27, ++ 0xf2cbbce0, 0xebd08da1, 0xc0fdde62, 0xd9e6ef23, ++ 0x14bce1bd, 0x0da7d0fc, 0x268a833f, 0x3f91b27e, ++ 0x70d024b9, 0x69cb15f8, 0x42e6463b, 0x5bfd777a, ++ 0xdc656bb5, 0xc57e5af4, 0xee530937, 0xf7483876, ++ 0xb809aeb1, 0xa1129ff0, 0x8a3fcc33, 0x9324fd72, ++ 0x00000000, 0x01c26a37, 0x0384d46e, 0x0246be59, ++ 0x0709a8dc, 0x06cbc2eb, 0x048d7cb2, 0x054f1685, ++ 0x0e1351b8, 0x0fd13b8f, 0x0d9785d6, 0x0c55efe1, ++ 0x091af964, 0x08d89353, 0x0a9e2d0a, 0x0b5c473d, ++ 0x1c26a370, 0x1de4c947, 0x1fa2771e, 0x1e601d29, ++ 0x1b2f0bac, 0x1aed619b, 0x18abdfc2, 0x1969b5f5, ++ 0x1235f2c8, 0x13f798ff, 0x11b126a6, 0x10734c91, ++ 0x153c5a14, 0x14fe3023, 0x16b88e7a, 0x177ae44d, ++ 0x384d46e0, 0x398f2cd7, 0x3bc9928e, 0x3a0bf8b9, ++ 0x3f44ee3c, 0x3e86840b, 0x3cc03a52, 0x3d025065, ++ 0x365e1758, 0x379c7d6f, 0x35dac336, 0x3418a901, ++ 0x3157bf84, 0x3095d5b3, 0x32d36bea, 0x331101dd, ++ 0x246be590, 0x25a98fa7, 0x27ef31fe, 0x262d5bc9, ++ 0x23624d4c, 0x22a0277b, 0x20e69922, 0x2124f315, ++ 0x2a78b428, 0x2bbade1f, 0x29fc6046, 0x283e0a71, ++ 0x2d711cf4, 0x2cb376c3, 0x2ef5c89a, 0x2f37a2ad, ++ 0x709a8dc0, 0x7158e7f7, 0x731e59ae, 0x72dc3399, ++ 0x7793251c, 0x76514f2b, 0x7417f172, 0x75d59b45, ++ 0x7e89dc78, 0x7f4bb64f, 0x7d0d0816, 0x7ccf6221, ++ 0x798074a4, 0x78421e93, 0x7a04a0ca, 0x7bc6cafd, ++ 0x6cbc2eb0, 0x6d7e4487, 0x6f38fade, 0x6efa90e9, ++ 0x6bb5866c, 0x6a77ec5b, 0x68315202, 0x69f33835, ++ 0x62af7f08, 0x636d153f, 0x612bab66, 0x60e9c151, ++ 0x65a6d7d4, 0x6464bde3, 0x662203ba, 0x67e0698d, ++ 0x48d7cb20, 0x4915a117, 0x4b531f4e, 0x4a917579, ++ 0x4fde63fc, 0x4e1c09cb, 0x4c5ab792, 0x4d98dda5, ++ 0x46c49a98, 0x4706f0af, 0x45404ef6, 0x448224c1, ++ 0x41cd3244, 0x400f5873, 0x4249e62a, 0x438b8c1d, ++ 0x54f16850, 0x55330267, 0x5775bc3e, 0x56b7d609, ++ 0x53f8c08c, 0x523aaabb, 0x507c14e2, 0x51be7ed5, ++ 0x5ae239e8, 0x5b2053df, 0x5966ed86, 0x58a487b1, ++ 0x5deb9134, 0x5c29fb03, 0x5e6f455a, 0x5fad2f6d, ++ 0xe1351b80, 0xe0f771b7, 0xe2b1cfee, 0xe373a5d9, ++ 0xe63cb35c, 0xe7fed96b, 0xe5b86732, 0xe47a0d05, ++ 0xef264a38, 0xeee4200f, 0xeca29e56, 0xed60f461, ++ 0xe82fe2e4, 0xe9ed88d3, 0xebab368a, 0xea695cbd, ++ 0xfd13b8f0, 0xfcd1d2c7, 0xfe976c9e, 0xff5506a9, ++ 0xfa1a102c, 0xfbd87a1b, 0xf99ec442, 0xf85cae75, ++ 0xf300e948, 0xf2c2837f, 0xf0843d26, 0xf1465711, ++ 0xf4094194, 0xf5cb2ba3, 0xf78d95fa, 0xf64fffcd, ++ 0xd9785d60, 0xd8ba3757, 0xdafc890e, 0xdb3ee339, ++ 0xde71f5bc, 0xdfb39f8b, 0xddf521d2, 0xdc374be5, ++ 0xd76b0cd8, 0xd6a966ef, 0xd4efd8b6, 0xd52db281, ++ 0xd062a404, 0xd1a0ce33, 0xd3e6706a, 0xd2241a5d, ++ 0xc55efe10, 0xc49c9427, 0xc6da2a7e, 0xc7184049, ++ 0xc25756cc, 0xc3953cfb, 0xc1d382a2, 0xc011e895, ++ 0xcb4dafa8, 0xca8fc59f, 0xc8c97bc6, 0xc90b11f1, ++ 0xcc440774, 0xcd866d43, 0xcfc0d31a, 0xce02b92d, ++ 0x91af9640, 0x906dfc77, 0x922b422e, 0x93e92819, ++ 0x96a63e9c, 0x976454ab, 0x9522eaf2, 0x94e080c5, ++ 0x9fbcc7f8, 0x9e7eadcf, 0x9c381396, 0x9dfa79a1, ++ 0x98b56f24, 0x99770513, 0x9b31bb4a, 0x9af3d17d, ++ 0x8d893530, 0x8c4b5f07, 0x8e0de15e, 0x8fcf8b69, ++ 0x8a809dec, 0x8b42f7db, 0x89044982, 0x88c623b5, ++ 0x839a6488, 0x82580ebf, 0x801eb0e6, 0x81dcdad1, ++ 0x8493cc54, 0x8551a663, 0x8717183a, 0x86d5720d, ++ 0xa9e2d0a0, 0xa820ba97, 0xaa6604ce, 0xaba46ef9, ++ 0xaeeb787c, 0xaf29124b, 0xad6fac12, 0xacadc625, ++ 0xa7f18118, 0xa633eb2f, 0xa4755576, 0xa5b73f41, ++ 0xa0f829c4, 0xa13a43f3, 0xa37cfdaa, 0xa2be979d, ++ 0xb5c473d0, 0xb40619e7, 0xb640a7be, 0xb782cd89, ++ 0xb2cddb0c, 0xb30fb13b, 0xb1490f62, 0xb08b6555, ++ 0xbbd72268, 0xba15485f, 0xb853f606, 0xb9919c31, ++ 0xbcde8ab4, 0xbd1ce083, 0xbf5a5eda, 0xbe9834ed, ++ 0x00000000, 0xb8bc6765, 0xaa09c88b, 0x12b5afee, ++ 0x8f629757, 0x37def032, 0x256b5fdc, 0x9dd738b9, ++ 0xc5b428ef, 0x7d084f8a, 0x6fbde064, 0xd7018701, ++ 0x4ad6bfb8, 0xf26ad8dd, 0xe0df7733, 0x58631056, ++ 0x5019579f, 0xe8a530fa, 0xfa109f14, 0x42acf871, ++ 0xdf7bc0c8, 0x67c7a7ad, 0x75720843, 0xcdce6f26, ++ 0x95ad7f70, 0x2d111815, 0x3fa4b7fb, 0x8718d09e, ++ 0x1acfe827, 0xa2738f42, 0xb0c620ac, 0x087a47c9, ++ 0xa032af3e, 0x188ec85b, 0x0a3b67b5, 0xb28700d0, ++ 0x2f503869, 0x97ec5f0c, 0x8559f0e2, 0x3de59787, ++ 0x658687d1, 0xdd3ae0b4, 0xcf8f4f5a, 0x7733283f, ++ 0xeae41086, 0x525877e3, 0x40edd80d, 0xf851bf68, ++ 0xf02bf8a1, 0x48979fc4, 0x5a22302a, 0xe29e574f, ++ 0x7f496ff6, 0xc7f50893, 0xd540a77d, 0x6dfcc018, ++ 0x359fd04e, 0x8d23b72b, 0x9f9618c5, 0x272a7fa0, ++ 0xbafd4719, 0x0241207c, 0x10f48f92, 0xa848e8f7, ++ 0x9b14583d, 0x23a83f58, 0x311d90b6, 0x89a1f7d3, ++ 0x1476cf6a, 0xaccaa80f, 0xbe7f07e1, 0x06c36084, ++ 0x5ea070d2, 0xe61c17b7, 0xf4a9b859, 0x4c15df3c, ++ 0xd1c2e785, 0x697e80e0, 0x7bcb2f0e, 0xc377486b, ++ 0xcb0d0fa2, 0x73b168c7, 0x6104c729, 0xd9b8a04c, ++ 0x446f98f5, 0xfcd3ff90, 0xee66507e, 0x56da371b, ++ 0x0eb9274d, 0xb6054028, 0xa4b0efc6, 0x1c0c88a3, ++ 0x81dbb01a, 0x3967d77f, 0x2bd27891, 0x936e1ff4, ++ 0x3b26f703, 0x839a9066, 0x912f3f88, 0x299358ed, ++ 0xb4446054, 0x0cf80731, 0x1e4da8df, 0xa6f1cfba, ++ 0xfe92dfec, 0x462eb889, 0x549b1767, 0xec277002, ++ 0x71f048bb, 0xc94c2fde, 0xdbf98030, 0x6345e755, ++ 0x6b3fa09c, 0xd383c7f9, 0xc1366817, 0x798a0f72, ++ 0xe45d37cb, 0x5ce150ae, 0x4e54ff40, 0xf6e89825, ++ 0xae8b8873, 0x1637ef16, 0x048240f8, 0xbc3e279d, ++ 0x21e91f24, 0x99557841, 0x8be0d7af, 0x335cb0ca, ++ 0xed59b63b, 0x55e5d15e, 0x47507eb0, 0xffec19d5, ++ 0x623b216c, 0xda874609, 0xc832e9e7, 0x708e8e82, ++ 0x28ed9ed4, 0x9051f9b1, 0x82e4565f, 0x3a58313a, ++ 0xa78f0983, 0x1f336ee6, 0x0d86c108, 0xb53aa66d, ++ 0xbd40e1a4, 0x05fc86c1, 0x1749292f, 0xaff54e4a, ++ 0x322276f3, 0x8a9e1196, 0x982bbe78, 0x2097d91d, ++ 0x78f4c94b, 0xc048ae2e, 0xd2fd01c0, 0x6a4166a5, ++ 0xf7965e1c, 0x4f2a3979, 0x5d9f9697, 0xe523f1f2, ++ 0x4d6b1905, 0xf5d77e60, 0xe762d18e, 0x5fdeb6eb, ++ 0xc2098e52, 0x7ab5e937, 0x680046d9, 0xd0bc21bc, ++ 0x88df31ea, 0x3063568f, 0x22d6f961, 0x9a6a9e04, ++ 0x07bda6bd, 0xbf01c1d8, 0xadb46e36, 0x15080953, ++ 0x1d724e9a, 0xa5ce29ff, 0xb77b8611, 0x0fc7e174, ++ 0x9210d9cd, 0x2aacbea8, 0x38191146, 0x80a57623, ++ 0xd8c66675, 0x607a0110, 0x72cfaefe, 0xca73c99b, ++ 0x57a4f122, 0xef189647, 0xfdad39a9, 0x45115ecc, ++ 0x764dee06, 0xcef18963, 0xdc44268d, 0x64f841e8, ++ 0xf92f7951, 0x41931e34, 0x5326b1da, 0xeb9ad6bf, ++ 0xb3f9c6e9, 0x0b45a18c, 0x19f00e62, 0xa14c6907, ++ 0x3c9b51be, 0x842736db, 0x96929935, 0x2e2efe50, ++ 0x2654b999, 0x9ee8defc, 0x8c5d7112, 0x34e11677, ++ 0xa9362ece, 0x118a49ab, 0x033fe645, 0xbb838120, ++ 0xe3e09176, 0x5b5cf613, 0x49e959fd, 0xf1553e98, ++ 0x6c820621, 0xd43e6144, 0xc68bceaa, 0x7e37a9cf, ++ 0xd67f4138, 0x6ec3265d, 0x7c7689b3, 0xc4caeed6, ++ 0x591dd66f, 0xe1a1b10a, 0xf3141ee4, 0x4ba87981, ++ 0x13cb69d7, 0xab770eb2, 0xb9c2a15c, 0x017ec639, ++ 0x9ca9fe80, 0x241599e5, 0x36a0360b, 0x8e1c516e, ++ 0x866616a7, 0x3eda71c2, 0x2c6fde2c, 0x94d3b949, ++ 0x090481f0, 0xb1b8e695, 0xa30d497b, 0x1bb12e1e, ++ 0x43d23e48, 0xfb6e592d, 0xe9dbf6c3, 0x516791a6, ++ 0xccb0a91f, 0x740cce7a, 0x66b96194, 0xde0506f1 ++}; ++ + /* CRC32 */ + ++static inline u32 ++crc32_next (u32 crc, byte data) ++{ ++ return (crc >> 8) ^ crc32_table[(crc & 0xff) ^ data]; ++} ++ ++/* ++ * Process 4 bytes in one go ++ */ ++static inline u32 ++crc32_next4 (u32 crc, u32 data) ++{ ++ crc ^= data; ++ crc = crc32_table[(crc & 0xff) + 0x300] ^ ++ crc32_table[((crc >> 8) & 0xff) + 0x200] ^ ++ crc32_table[((crc >> 16) & 0xff) + 0x100] ^ ++ crc32_table[(crc >> 24) & 0xff]; ++ return crc; ++} ++ + static void + crc32_init (void *context) + { +@@ -156,12 +342,40 @@ crc32_init (void *context) + } + + static void +-crc32_write (void *context, const void *inbuf, size_t inlen) ++crc32_write (void *context, const void *inbuf_arg, size_t inlen) + { + CRC_CONTEXT *ctx = (CRC_CONTEXT *) context; +- if (!inbuf) ++ const byte *inbuf = inbuf_arg; ++ u32 crc; ++ ++ if (!inbuf || !inlen) + return; +- ctx->CRC = update_crc32 (ctx->CRC, inbuf, inlen); ++ ++ crc = ctx->CRC; ++ ++ while (inlen >= 16) ++ { ++ inlen -= 16; ++ crc = crc32_next4(crc, buf_get_le32(&inbuf[0])); ++ crc = crc32_next4(crc, buf_get_le32(&inbuf[4])); ++ crc = crc32_next4(crc, buf_get_le32(&inbuf[8])); ++ crc = crc32_next4(crc, buf_get_le32(&inbuf[12])); ++ inbuf += 16; ++ } ++ ++ while (inlen >= 4) ++ { ++ inlen -= 4; ++ crc = crc32_next4(crc, buf_get_le32(inbuf)); ++ inbuf += 4; ++ } ++ ++ while (inlen--) ++ { ++ crc = crc32_next(crc, *inbuf++); ++ } ++ ++ ctx->CRC = crc; + } + + static byte * +@@ -176,13 +390,12 @@ crc32_final (void *context) + { + CRC_CONTEXT *ctx = (CRC_CONTEXT *) context; + ctx->CRC ^= 0xffffffffL; +- ctx->buf[0] = (ctx->CRC >> 24) & 0xFF; +- ctx->buf[1] = (ctx->CRC >> 16) & 0xFF; +- ctx->buf[2] = (ctx->CRC >> 8) & 0xFF; +- ctx->buf[3] = (ctx->CRC ) & 0xFF; ++ buf_put_be32 (ctx->buf, ctx->CRC); + } + + /* CRC32 a'la RFC 1510 */ ++/* CRC of the string "123456789" is 0x2dfd2d88 */ ++ + static void + crc32rfc1510_init (void *context) + { +@@ -194,82 +407,366 @@ static void + crc32rfc1510_final (void *context) + { + CRC_CONTEXT *ctx = (CRC_CONTEXT *) context; +- ctx->buf[0] = (ctx->CRC >> 24) & 0xFF; +- ctx->buf[1] = (ctx->CRC >> 16) & 0xFF; +- ctx->buf[2] = (ctx->CRC >> 8) & 0xFF; +- ctx->buf[3] = (ctx->CRC ) & 0xFF; ++ buf_put_be32(ctx->buf, ctx->CRC); + } + + /* CRC24 a'la RFC 2440 */ + /* +- * The following CRC 24 routines are adapted from RFC 2440, which has +- * the following copyright notice: ++ * Code generated by universal_crc by Danjel McGougan + * +- * Copyright (C) The Internet Society (1998). All Rights Reserved. ++ * CRC parameters used: ++ * bits: 24 ++ * poly: 0x864cfb ++ * init: 0xb704ce ++ * xor: 0x000000 ++ * reverse: false ++ * non-direct: false + * +- * This document and translations of it may be copied and furnished +- * to others, and derivative works that comment on or otherwise +- * explain it or assist in its implementation may be prepared, +- * copied, published and distributed, in whole or in part, without +- * restriction of any kind, provided that the above copyright notice +- * and this paragraph are included on all such copies and derivative +- * works. However, this document itself may not be modified in any +- * way, such as by removing the copyright notice or references to +- * the Internet Society or other Internet organizations, except as +- * needed for the purpose of developing Internet standards in which +- * case the procedures for copyrights defined in the Internet +- * Standards process must be followed, or as required to translate +- * it into languages other than English. +- * +- * The limited permissions granted above are perpetual and will not be +- * revoked by the Internet Society or its successors or assigns. +- * +- * This document and the information contained herein is provided on +- * an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET +- * ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR +- * IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE +- * OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY +- * IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR +- * PURPOSE. ++ * CRC of the string "123456789" is 0x21cf02 ++ */ ++ ++static const u32 crc24_table[1024] = ++{ ++ 0x00000000, 0x00fb4c86, 0x000dd58a, 0x00f6990c, ++ 0x00e1e693, 0x001aaa15, 0x00ec3319, 0x00177f9f, ++ 0x003981a1, 0x00c2cd27, 0x0034542b, 0x00cf18ad, ++ 0x00d86732, 0x00232bb4, 0x00d5b2b8, 0x002efe3e, ++ 0x00894ec5, 0x00720243, 0x00849b4f, 0x007fd7c9, ++ 0x0068a856, 0x0093e4d0, 0x00657ddc, 0x009e315a, ++ 0x00b0cf64, 0x004b83e2, 0x00bd1aee, 0x00465668, ++ 0x005129f7, 0x00aa6571, 0x005cfc7d, 0x00a7b0fb, ++ 0x00e9d10c, 0x00129d8a, 0x00e40486, 0x001f4800, ++ 0x0008379f, 0x00f37b19, 0x0005e215, 0x00feae93, ++ 0x00d050ad, 0x002b1c2b, 0x00dd8527, 0x0026c9a1, ++ 0x0031b63e, 0x00cafab8, 0x003c63b4, 0x00c72f32, ++ 0x00609fc9, 0x009bd34f, 0x006d4a43, 0x009606c5, ++ 0x0081795a, 0x007a35dc, 0x008cacd0, 0x0077e056, ++ 0x00591e68, 0x00a252ee, 0x0054cbe2, 0x00af8764, ++ 0x00b8f8fb, 0x0043b47d, 0x00b52d71, 0x004e61f7, ++ 0x00d2a319, 0x0029ef9f, 0x00df7693, 0x00243a15, ++ 0x0033458a, 0x00c8090c, 0x003e9000, 0x00c5dc86, ++ 0x00eb22b8, 0x00106e3e, 0x00e6f732, 0x001dbbb4, ++ 0x000ac42b, 0x00f188ad, 0x000711a1, 0x00fc5d27, ++ 0x005beddc, 0x00a0a15a, 0x00563856, 0x00ad74d0, ++ 0x00ba0b4f, 0x004147c9, 0x00b7dec5, 0x004c9243, ++ 0x00626c7d, 0x009920fb, 0x006fb9f7, 0x0094f571, ++ 0x00838aee, 0x0078c668, 0x008e5f64, 0x007513e2, ++ 0x003b7215, 0x00c03e93, 0x0036a79f, 0x00cdeb19, ++ 0x00da9486, 0x0021d800, 0x00d7410c, 0x002c0d8a, ++ 0x0002f3b4, 0x00f9bf32, 0x000f263e, 0x00f46ab8, ++ 0x00e31527, 0x001859a1, 0x00eec0ad, 0x00158c2b, ++ 0x00b23cd0, 0x00497056, 0x00bfe95a, 0x0044a5dc, ++ 0x0053da43, 0x00a896c5, 0x005e0fc9, 0x00a5434f, ++ 0x008bbd71, 0x0070f1f7, 0x008668fb, 0x007d247d, ++ 0x006a5be2, 0x00911764, 0x00678e68, 0x009cc2ee, ++ 0x00a44733, 0x005f0bb5, 0x00a992b9, 0x0052de3f, ++ 0x0045a1a0, 0x00beed26, 0x0048742a, 0x00b338ac, ++ 0x009dc692, 0x00668a14, 0x00901318, 0x006b5f9e, ++ 0x007c2001, 0x00876c87, 0x0071f58b, 0x008ab90d, ++ 0x002d09f6, 0x00d64570, 0x0020dc7c, 0x00db90fa, ++ 0x00ccef65, 0x0037a3e3, 0x00c13aef, 0x003a7669, ++ 0x00148857, 0x00efc4d1, 0x00195ddd, 0x00e2115b, ++ 0x00f56ec4, 0x000e2242, 0x00f8bb4e, 0x0003f7c8, ++ 0x004d963f, 0x00b6dab9, 0x004043b5, 0x00bb0f33, ++ 0x00ac70ac, 0x00573c2a, 0x00a1a526, 0x005ae9a0, ++ 0x0074179e, 0x008f5b18, 0x0079c214, 0x00828e92, ++ 0x0095f10d, 0x006ebd8b, 0x00982487, 0x00636801, ++ 0x00c4d8fa, 0x003f947c, 0x00c90d70, 0x003241f6, ++ 0x00253e69, 0x00de72ef, 0x0028ebe3, 0x00d3a765, ++ 0x00fd595b, 0x000615dd, 0x00f08cd1, 0x000bc057, ++ 0x001cbfc8, 0x00e7f34e, 0x00116a42, 0x00ea26c4, ++ 0x0076e42a, 0x008da8ac, 0x007b31a0, 0x00807d26, ++ 0x009702b9, 0x006c4e3f, 0x009ad733, 0x00619bb5, ++ 0x004f658b, 0x00b4290d, 0x0042b001, 0x00b9fc87, ++ 0x00ae8318, 0x0055cf9e, 0x00a35692, 0x00581a14, ++ 0x00ffaaef, 0x0004e669, 0x00f27f65, 0x000933e3, ++ 0x001e4c7c, 0x00e500fa, 0x001399f6, 0x00e8d570, ++ 0x00c62b4e, 0x003d67c8, 0x00cbfec4, 0x0030b242, ++ 0x0027cddd, 0x00dc815b, 0x002a1857, 0x00d154d1, ++ 0x009f3526, 0x006479a0, 0x0092e0ac, 0x0069ac2a, ++ 0x007ed3b5, 0x00859f33, 0x0073063f, 0x00884ab9, ++ 0x00a6b487, 0x005df801, 0x00ab610d, 0x00502d8b, ++ 0x00475214, 0x00bc1e92, 0x004a879e, 0x00b1cb18, ++ 0x00167be3, 0x00ed3765, 0x001bae69, 0x00e0e2ef, ++ 0x00f79d70, 0x000cd1f6, 0x00fa48fa, 0x0001047c, ++ 0x002ffa42, 0x00d4b6c4, 0x00222fc8, 0x00d9634e, ++ 0x00ce1cd1, 0x00355057, 0x00c3c95b, 0x003885dd, ++ 0x00000000, 0x00488f66, 0x00901ecd, 0x00d891ab, ++ 0x00db711c, 0x0093fe7a, 0x004b6fd1, 0x0003e0b7, ++ 0x00b6e338, 0x00fe6c5e, 0x0026fdf5, 0x006e7293, ++ 0x006d9224, 0x00251d42, 0x00fd8ce9, 0x00b5038f, ++ 0x006cc771, 0x00244817, 0x00fcd9bc, 0x00b456da, ++ 0x00b7b66d, 0x00ff390b, 0x0027a8a0, 0x006f27c6, ++ 0x00da2449, 0x0092ab2f, 0x004a3a84, 0x0002b5e2, ++ 0x00015555, 0x0049da33, 0x00914b98, 0x00d9c4fe, ++ 0x00d88ee3, 0x00900185, 0x0048902e, 0x00001f48, ++ 0x0003ffff, 0x004b7099, 0x0093e132, 0x00db6e54, ++ 0x006e6ddb, 0x0026e2bd, 0x00fe7316, 0x00b6fc70, ++ 0x00b51cc7, 0x00fd93a1, 0x0025020a, 0x006d8d6c, ++ 0x00b44992, 0x00fcc6f4, 0x0024575f, 0x006cd839, ++ 0x006f388e, 0x0027b7e8, 0x00ff2643, 0x00b7a925, ++ 0x0002aaaa, 0x004a25cc, 0x0092b467, 0x00da3b01, ++ 0x00d9dbb6, 0x009154d0, 0x0049c57b, 0x00014a1d, ++ 0x004b5141, 0x0003de27, 0x00db4f8c, 0x0093c0ea, ++ 0x0090205d, 0x00d8af3b, 0x00003e90, 0x0048b1f6, ++ 0x00fdb279, 0x00b53d1f, 0x006dacb4, 0x002523d2, ++ 0x0026c365, 0x006e4c03, 0x00b6dda8, 0x00fe52ce, ++ 0x00279630, 0x006f1956, 0x00b788fd, 0x00ff079b, ++ 0x00fce72c, 0x00b4684a, 0x006cf9e1, 0x00247687, ++ 0x00917508, 0x00d9fa6e, 0x00016bc5, 0x0049e4a3, ++ 0x004a0414, 0x00028b72, 0x00da1ad9, 0x009295bf, ++ 0x0093dfa2, 0x00db50c4, 0x0003c16f, 0x004b4e09, ++ 0x0048aebe, 0x000021d8, 0x00d8b073, 0x00903f15, ++ 0x00253c9a, 0x006db3fc, 0x00b52257, 0x00fdad31, ++ 0x00fe4d86, 0x00b6c2e0, 0x006e534b, 0x0026dc2d, ++ 0x00ff18d3, 0x00b797b5, 0x006f061e, 0x00278978, ++ 0x002469cf, 0x006ce6a9, 0x00b47702, 0x00fcf864, ++ 0x0049fbeb, 0x0001748d, 0x00d9e526, 0x00916a40, ++ 0x00928af7, 0x00da0591, 0x0002943a, 0x004a1b5c, ++ 0x0096a282, 0x00de2de4, 0x0006bc4f, 0x004e3329, ++ 0x004dd39e, 0x00055cf8, 0x00ddcd53, 0x00954235, ++ 0x002041ba, 0x0068cedc, 0x00b05f77, 0x00f8d011, ++ 0x00fb30a6, 0x00b3bfc0, 0x006b2e6b, 0x0023a10d, ++ 0x00fa65f3, 0x00b2ea95, 0x006a7b3e, 0x0022f458, ++ 0x002114ef, 0x00699b89, 0x00b10a22, 0x00f98544, ++ 0x004c86cb, 0x000409ad, 0x00dc9806, 0x00941760, ++ 0x0097f7d7, 0x00df78b1, 0x0007e91a, 0x004f667c, ++ 0x004e2c61, 0x0006a307, 0x00de32ac, 0x0096bdca, ++ 0x00955d7d, 0x00ddd21b, 0x000543b0, 0x004dccd6, ++ 0x00f8cf59, 0x00b0403f, 0x0068d194, 0x00205ef2, ++ 0x0023be45, 0x006b3123, 0x00b3a088, 0x00fb2fee, ++ 0x0022eb10, 0x006a6476, 0x00b2f5dd, 0x00fa7abb, ++ 0x00f99a0c, 0x00b1156a, 0x006984c1, 0x00210ba7, ++ 0x00940828, 0x00dc874e, 0x000416e5, 0x004c9983, ++ 0x004f7934, 0x0007f652, 0x00df67f9, 0x0097e89f, ++ 0x00ddf3c3, 0x00957ca5, 0x004ded0e, 0x00056268, ++ 0x000682df, 0x004e0db9, 0x00969c12, 0x00de1374, ++ 0x006b10fb, 0x00239f9d, 0x00fb0e36, 0x00b38150, ++ 0x00b061e7, 0x00f8ee81, 0x00207f2a, 0x0068f04c, ++ 0x00b134b2, 0x00f9bbd4, 0x00212a7f, 0x0069a519, ++ 0x006a45ae, 0x0022cac8, 0x00fa5b63, 0x00b2d405, ++ 0x0007d78a, 0x004f58ec, 0x0097c947, 0x00df4621, ++ 0x00dca696, 0x009429f0, 0x004cb85b, 0x0004373d, ++ 0x00057d20, 0x004df246, 0x009563ed, 0x00ddec8b, ++ 0x00de0c3c, 0x0096835a, 0x004e12f1, 0x00069d97, ++ 0x00b39e18, 0x00fb117e, 0x002380d5, 0x006b0fb3, ++ 0x0068ef04, 0x00206062, 0x00f8f1c9, 0x00b07eaf, ++ 0x0069ba51, 0x00213537, 0x00f9a49c, 0x00b12bfa, ++ 0x00b2cb4d, 0x00fa442b, 0x0022d580, 0x006a5ae6, ++ 0x00df5969, 0x0097d60f, 0x004f47a4, 0x0007c8c2, ++ 0x00042875, 0x004ca713, 0x009436b8, 0x00dcb9de, ++ 0x00000000, 0x00d70983, 0x00555f80, 0x00825603, ++ 0x0051f286, 0x0086fb05, 0x0004ad06, 0x00d3a485, ++ 0x0059a88b, 0x008ea108, 0x000cf70b, 0x00dbfe88, ++ 0x00085a0d, 0x00df538e, 0x005d058d, 0x008a0c0e, ++ 0x00491c91, 0x009e1512, 0x001c4311, 0x00cb4a92, ++ 0x0018ee17, 0x00cfe794, 0x004db197, 0x009ab814, ++ 0x0010b41a, 0x00c7bd99, 0x0045eb9a, 0x0092e219, ++ 0x0041469c, 0x00964f1f, 0x0014191c, 0x00c3109f, ++ 0x006974a4, 0x00be7d27, 0x003c2b24, 0x00eb22a7, ++ 0x00388622, 0x00ef8fa1, 0x006dd9a2, 0x00bad021, ++ 0x0030dc2f, 0x00e7d5ac, 0x006583af, 0x00b28a2c, ++ 0x00612ea9, 0x00b6272a, 0x00347129, 0x00e378aa, ++ 0x00206835, 0x00f761b6, 0x007537b5, 0x00a23e36, ++ 0x00719ab3, 0x00a69330, 0x0024c533, 0x00f3ccb0, ++ 0x0079c0be, 0x00aec93d, 0x002c9f3e, 0x00fb96bd, ++ 0x00283238, 0x00ff3bbb, 0x007d6db8, 0x00aa643b, ++ 0x0029a4ce, 0x00fead4d, 0x007cfb4e, 0x00abf2cd, ++ 0x00785648, 0x00af5fcb, 0x002d09c8, 0x00fa004b, ++ 0x00700c45, 0x00a705c6, 0x002553c5, 0x00f25a46, ++ 0x0021fec3, 0x00f6f740, 0x0074a143, 0x00a3a8c0, ++ 0x0060b85f, 0x00b7b1dc, 0x0035e7df, 0x00e2ee5c, ++ 0x00314ad9, 0x00e6435a, 0x00641559, 0x00b31cda, ++ 0x003910d4, 0x00ee1957, 0x006c4f54, 0x00bb46d7, ++ 0x0068e252, 0x00bfebd1, 0x003dbdd2, 0x00eab451, ++ 0x0040d06a, 0x0097d9e9, 0x00158fea, 0x00c28669, ++ 0x001122ec, 0x00c62b6f, 0x00447d6c, 0x009374ef, ++ 0x001978e1, 0x00ce7162, 0x004c2761, 0x009b2ee2, ++ 0x00488a67, 0x009f83e4, 0x001dd5e7, 0x00cadc64, ++ 0x0009ccfb, 0x00dec578, 0x005c937b, 0x008b9af8, ++ 0x00583e7d, 0x008f37fe, 0x000d61fd, 0x00da687e, ++ 0x00506470, 0x00876df3, 0x00053bf0, 0x00d23273, ++ 0x000196f6, 0x00d69f75, 0x0054c976, 0x0083c0f5, ++ 0x00a9041b, 0x007e0d98, 0x00fc5b9b, 0x002b5218, ++ 0x00f8f69d, 0x002fff1e, 0x00ada91d, 0x007aa09e, ++ 0x00f0ac90, 0x0027a513, 0x00a5f310, 0x0072fa93, ++ 0x00a15e16, 0x00765795, 0x00f40196, 0x00230815, ++ 0x00e0188a, 0x00371109, 0x00b5470a, 0x00624e89, ++ 0x00b1ea0c, 0x0066e38f, 0x00e4b58c, 0x0033bc0f, ++ 0x00b9b001, 0x006eb982, 0x00ecef81, 0x003be602, ++ 0x00e84287, 0x003f4b04, 0x00bd1d07, 0x006a1484, ++ 0x00c070bf, 0x0017793c, 0x00952f3f, 0x004226bc, ++ 0x00918239, 0x00468bba, 0x00c4ddb9, 0x0013d43a, ++ 0x0099d834, 0x004ed1b7, 0x00cc87b4, 0x001b8e37, ++ 0x00c82ab2, 0x001f2331, 0x009d7532, 0x004a7cb1, ++ 0x00896c2e, 0x005e65ad, 0x00dc33ae, 0x000b3a2d, ++ 0x00d89ea8, 0x000f972b, 0x008dc128, 0x005ac8ab, ++ 0x00d0c4a5, 0x0007cd26, 0x00859b25, 0x005292a6, ++ 0x00813623, 0x00563fa0, 0x00d469a3, 0x00036020, ++ 0x0080a0d5, 0x0057a956, 0x00d5ff55, 0x0002f6d6, ++ 0x00d15253, 0x00065bd0, 0x00840dd3, 0x00530450, ++ 0x00d9085e, 0x000e01dd, 0x008c57de, 0x005b5e5d, ++ 0x0088fad8, 0x005ff35b, 0x00dda558, 0x000aacdb, ++ 0x00c9bc44, 0x001eb5c7, 0x009ce3c4, 0x004bea47, ++ 0x00984ec2, 0x004f4741, 0x00cd1142, 0x001a18c1, ++ 0x009014cf, 0x00471d4c, 0x00c54b4f, 0x001242cc, ++ 0x00c1e649, 0x0016efca, 0x0094b9c9, 0x0043b04a, ++ 0x00e9d471, 0x003eddf2, 0x00bc8bf1, 0x006b8272, ++ 0x00b826f7, 0x006f2f74, 0x00ed7977, 0x003a70f4, ++ 0x00b07cfa, 0x00677579, 0x00e5237a, 0x00322af9, ++ 0x00e18e7c, 0x003687ff, 0x00b4d1fc, 0x0063d87f, ++ 0x00a0c8e0, 0x0077c163, 0x00f59760, 0x00229ee3, ++ 0x00f13a66, 0x002633e5, 0x00a465e6, 0x00736c65, ++ 0x00f9606b, 0x002e69e8, 0x00ac3feb, 0x007b3668, ++ 0x00a892ed, 0x007f9b6e, 0x00fdcd6d, 0x002ac4ee, ++ 0x00000000, 0x00520936, 0x00a4126c, 0x00f61b5a, ++ 0x004825d8, 0x001a2cee, 0x00ec37b4, 0x00be3e82, ++ 0x006b0636, 0x00390f00, 0x00cf145a, 0x009d1d6c, ++ 0x002323ee, 0x00712ad8, 0x00873182, 0x00d538b4, ++ 0x00d60c6c, 0x0084055a, 0x00721e00, 0x00201736, ++ 0x009e29b4, 0x00cc2082, 0x003a3bd8, 0x006832ee, ++ 0x00bd0a5a, 0x00ef036c, 0x00191836, 0x004b1100, ++ 0x00f52f82, 0x00a726b4, 0x00513dee, 0x000334d8, ++ 0x00ac19d8, 0x00fe10ee, 0x00080bb4, 0x005a0282, ++ 0x00e43c00, 0x00b63536, 0x00402e6c, 0x0012275a, ++ 0x00c71fee, 0x009516d8, 0x00630d82, 0x003104b4, ++ 0x008f3a36, 0x00dd3300, 0x002b285a, 0x0079216c, ++ 0x007a15b4, 0x00281c82, 0x00de07d8, 0x008c0eee, ++ 0x0032306c, 0x0060395a, 0x00962200, 0x00c42b36, ++ 0x00111382, 0x00431ab4, 0x00b501ee, 0x00e708d8, ++ 0x0059365a, 0x000b3f6c, 0x00fd2436, 0x00af2d00, ++ 0x00a37f36, 0x00f17600, 0x00076d5a, 0x0055646c, ++ 0x00eb5aee, 0x00b953d8, 0x004f4882, 0x001d41b4, ++ 0x00c87900, 0x009a7036, 0x006c6b6c, 0x003e625a, ++ 0x00805cd8, 0x00d255ee, 0x00244eb4, 0x00764782, ++ 0x0075735a, 0x00277a6c, 0x00d16136, 0x00836800, ++ 0x003d5682, 0x006f5fb4, 0x009944ee, 0x00cb4dd8, ++ 0x001e756c, 0x004c7c5a, 0x00ba6700, 0x00e86e36, ++ 0x005650b4, 0x00045982, 0x00f242d8, 0x00a04bee, ++ 0x000f66ee, 0x005d6fd8, 0x00ab7482, 0x00f97db4, ++ 0x00474336, 0x00154a00, 0x00e3515a, 0x00b1586c, ++ 0x006460d8, 0x003669ee, 0x00c072b4, 0x00927b82, ++ 0x002c4500, 0x007e4c36, 0x0088576c, 0x00da5e5a, ++ 0x00d96a82, 0x008b63b4, 0x007d78ee, 0x002f71d8, ++ 0x00914f5a, 0x00c3466c, 0x00355d36, 0x00675400, ++ 0x00b26cb4, 0x00e06582, 0x00167ed8, 0x004477ee, ++ 0x00fa496c, 0x00a8405a, 0x005e5b00, 0x000c5236, ++ 0x0046ff6c, 0x0014f65a, 0x00e2ed00, 0x00b0e436, ++ 0x000edab4, 0x005cd382, 0x00aac8d8, 0x00f8c1ee, ++ 0x002df95a, 0x007ff06c, 0x0089eb36, 0x00dbe200, ++ 0x0065dc82, 0x0037d5b4, 0x00c1ceee, 0x0093c7d8, ++ 0x0090f300, 0x00c2fa36, 0x0034e16c, 0x0066e85a, ++ 0x00d8d6d8, 0x008adfee, 0x007cc4b4, 0x002ecd82, ++ 0x00fbf536, 0x00a9fc00, 0x005fe75a, 0x000dee6c, ++ 0x00b3d0ee, 0x00e1d9d8, 0x0017c282, 0x0045cbb4, ++ 0x00eae6b4, 0x00b8ef82, 0x004ef4d8, 0x001cfdee, ++ 0x00a2c36c, 0x00f0ca5a, 0x0006d100, 0x0054d836, ++ 0x0081e082, 0x00d3e9b4, 0x0025f2ee, 0x0077fbd8, ++ 0x00c9c55a, 0x009bcc6c, 0x006dd736, 0x003fde00, ++ 0x003cead8, 0x006ee3ee, 0x0098f8b4, 0x00caf182, ++ 0x0074cf00, 0x0026c636, 0x00d0dd6c, 0x0082d45a, ++ 0x0057ecee, 0x0005e5d8, 0x00f3fe82, 0x00a1f7b4, ++ 0x001fc936, 0x004dc000, 0x00bbdb5a, 0x00e9d26c, ++ 0x00e5805a, 0x00b7896c, 0x00419236, 0x00139b00, ++ 0x00ada582, 0x00ffacb4, 0x0009b7ee, 0x005bbed8, ++ 0x008e866c, 0x00dc8f5a, 0x002a9400, 0x00789d36, ++ 0x00c6a3b4, 0x0094aa82, 0x0062b1d8, 0x0030b8ee, ++ 0x00338c36, 0x00618500, 0x00979e5a, 0x00c5976c, ++ 0x007ba9ee, 0x0029a0d8, 0x00dfbb82, 0x008db2b4, ++ 0x00588a00, 0x000a8336, 0x00fc986c, 0x00ae915a, ++ 0x0010afd8, 0x0042a6ee, 0x00b4bdb4, 0x00e6b482, ++ 0x00499982, 0x001b90b4, 0x00ed8bee, 0x00bf82d8, ++ 0x0001bc5a, 0x0053b56c, 0x00a5ae36, 0x00f7a700, ++ 0x00229fb4, 0x00709682, 0x00868dd8, 0x00d484ee, ++ 0x006aba6c, 0x0038b35a, 0x00cea800, 0x009ca136, ++ 0x009f95ee, 0x00cd9cd8, 0x003b8782, 0x00698eb4, ++ 0x00d7b036, 0x0085b900, 0x0073a25a, 0x0021ab6c, ++ 0x00f493d8, 0x00a69aee, 0x005081b4, 0x00028882, ++ 0x00bcb600, 0x00eebf36, 0x0018a46c, 0x004aad5a ++}; ++ ++static inline ++u32 crc24_init (void) ++{ ++ return 0xce04b7; ++} ++ ++static inline ++u32 crc24_next (u32 crc, byte data) ++{ ++ return (crc >> 8) ^ crc24_table[(crc & 0xff) ^ data]; ++} ++ ++/* ++ * Process 4 bytes in one go + */ ++static inline ++u32 crc24_next4 (u32 crc, u32 data) ++{ ++ crc ^= data; ++ crc = crc24_table[(crc & 0xff) + 0x300] ^ ++ crc24_table[((crc >> 8) & 0xff) + 0x200] ^ ++ crc24_table[((crc >> 16) & 0xff) + 0x100] ^ ++ crc24_table[(crc >> 24) & 0xff]; ++ return crc; ++} + +-#define CRC24_INIT 0xb704ceL +-#define CRC24_POLY 0x1864cfbL ++static inline ++u32 crc24_final (u32 crc) ++{ ++ return crc & 0xffffff; ++} + + static void + crc24rfc2440_init (void *context) + { + CRC_CONTEXT *ctx = (CRC_CONTEXT *) context; +- ctx->CRC = CRC24_INIT; ++ ctx->CRC = crc24_init(); + } + + static void + crc24rfc2440_write (void *context, const void *inbuf_arg, size_t inlen) + { + const unsigned char *inbuf = inbuf_arg; +- int i; + CRC_CONTEXT *ctx = (CRC_CONTEXT *) context; ++ u32 crc; + +- if (!inbuf) ++ if (!inbuf || !inlen) + return; + +- while (inlen--) { +- ctx->CRC ^= (*inbuf++) << 16; +- for (i = 0; i < 8; i++) { +- ctx->CRC <<= 1; +- if (ctx->CRC & 0x1000000) +- ctx->CRC ^= CRC24_POLY; ++ crc = ctx->CRC; ++ ++ while (inlen >= 16) ++ { ++ inlen -= 16; ++ crc = crc24_next4(crc, buf_get_le32(&inbuf[0])); ++ crc = crc24_next4(crc, buf_get_le32(&inbuf[4])); ++ crc = crc24_next4(crc, buf_get_le32(&inbuf[8])); ++ crc = crc24_next4(crc, buf_get_le32(&inbuf[12])); ++ inbuf += 16; + } +- } ++ ++ while (inlen >= 4) ++ { ++ inlen -= 4; ++ crc = crc24_next4(crc, buf_get_le32(inbuf)); ++ inbuf += 4; ++ } ++ ++ while (inlen--) ++ { ++ crc = crc24_next(crc, *inbuf++); ++ } ++ ++ ctx->CRC = crc; + } + + static void + crc24rfc2440_final (void *context) + { + CRC_CONTEXT *ctx = (CRC_CONTEXT *) context; +- ctx->buf[0] = (ctx->CRC >> 16) & 0xFF; +- ctx->buf[1] = (ctx->CRC >> 8) & 0xFF; +- ctx->buf[2] = (ctx->CRC ) & 0xFF; ++ ctx->CRC = crc24_final(ctx->CRC); ++ buf_put_le32 (ctx->buf, ctx->CRC); + } + + gcry_md_spec_t _gcry_digest_spec_crc32 = diff --git a/grub-core/loader/arm/linux.c b/grub-core/loader/arm/linux.c -index 5b39f02bb2e592d85639891db6eb68a97ce12dfa..e64c79a95774e83dfce7a107a288598c77211935 100644 +index 5b39f02bb2e592d85639891db6eb68a97ce12dfa..b4f609d2d01184b8d0a3e5aff448725f80a36a93 100644 --- a/grub-core/loader/arm/linux.c +++ b/grub-core/loader/arm/linux.c -@@ -42,7 +42,7 @@ static grub_size_t linux_size; +@@ -42,21 +42,18 @@ static grub_size_t linux_size; static char *linux_args; static grub_uint32_t machine_type; @@ -2925,7 +6505,11 @@ index 5b39f02bb2e592d85639891db6eb68a97ce12dfa..e64c79a95774e83dfce7a107a288598c typedef void (*kernel_entry_t) (int, unsigned long, void *); -@@ -54,9 +54,9 @@ typedef void (*kernel_entry_t) (int, unsigned long, void *); +-#define LINUX_ZIMAGE_OFFSET 0x24 +-#define LINUX_ZIMAGE_MAGIC 0x016f2818 +- + #define LINUX_PHYS_OFFSET (0x00008000) + #define LINUX_INITRD_PHYS_OFFSET (LINUX_PHYS_OFFSET + 0x02000000) #define LINUX_FDT_PHYS_OFFSET (LINUX_INITRD_PHYS_OFFSET - 0x10000) static grub_size_t @@ -2937,7 +6521,7 @@ index 5b39f02bb2e592d85639891db6eb68a97ce12dfa..e64c79a95774e83dfce7a107a288598c while (atag[0] && atag[1]) atag += atag[0]; return atag - atag0; -@@ -68,10 +68,11 @@ get_atag_size (grub_uint32_t *atag) +@@ -68,10 +65,11 @@ get_atag_size (grub_uint32_t *atag) * Merges in command line parameters and sets up initrd addresses. */ static grub_err_t @@ -2952,7 +6536,7 @@ index 5b39f02bb2e592d85639891db6eb68a97ce12dfa..e64c79a95774e83dfce7a107a288598c grub_size_t tmp_size; grub_size_t arg_size = grub_strlen (linux_args); char *cmdline_orig = NULL; -@@ -142,7 +143,7 @@ linux_prepare_atag (void) +@@ -142,7 +140,7 @@ linux_prepare_atag (void) to += 2; /* Copy updated FDT to its launch location */ @@ -2961,7 +6545,7 @@ index 5b39f02bb2e592d85639891db6eb68a97ce12dfa..e64c79a95774e83dfce7a107a288598c grub_free (tmp_atag); grub_dprintf ("loader", "ATAG updated for Linux boot\n"); -@@ -156,19 +157,19 @@ linux_prepare_atag (void) +@@ -156,19 +154,19 @@ linux_prepare_atag (void) * Merges in command line parameters and sets up initrd addresses. */ static grub_err_t @@ -2984,7 +6568,7 @@ index 5b39f02bb2e592d85639891db6eb68a97ce12dfa..e64c79a95774e83dfce7a107a288598c grub_fdt_set_totalsize (tmp_fdt, tmp_size); /* Find or create '/chosen' node */ -@@ -209,7 +210,7 @@ linux_prepare_fdt (void) +@@ -209,7 +207,7 @@ linux_prepare_fdt (void) } /* Copy updated FDT to its launch location */ @@ -2993,7 +6577,7 @@ index 5b39f02bb2e592d85639891db6eb68a97ce12dfa..e64c79a95774e83dfce7a107a288598c grub_free (tmp_fdt); grub_dprintf ("loader", "FDT updated for Linux boot\n"); -@@ -226,16 +227,17 @@ linux_boot (void) +@@ -226,16 +224,17 @@ linux_boot (void) { kernel_entry_t linuxmain; int fdt_valid, atag_valid; @@ -3019,7 +6603,7 @@ index 5b39f02bb2e592d85639891db6eb68a97ce12dfa..e64c79a95774e83dfce7a107a288598c if (!fdt_valid && machine_type == GRUB_ARM_MACHINE_TYPE_FDT) return grub_error (GRUB_ERR_FILE_NOT_FOUND, -@@ -245,23 +247,40 @@ linux_boot (void) +@@ -245,23 +244,40 @@ linux_boot (void) grub_dprintf ("loader", "Kernel at: 0x%x\n", linux_addr); @@ -3064,8 +6648,19 @@ index 5b39f02bb2e592d85639891db6eb68a97ce12dfa..e64c79a95774e83dfce7a107a288598c } grub_dprintf ("loader", "Jumping to Linux...\n"); -@@ -285,7 +304,7 @@ linux_boot (void) +@@ -274,18 +290,9 @@ linux_boot (void) + */ + linuxmain = (kernel_entry_t) linux_addr; +-#ifdef GRUB_MACHINE_EFI +- { +- grub_err_t err; +- err = grub_efi_prepare_platform(); +- if (err != GRUB_ERR_NONE) +- return err; +- } +-#endif +- grub_arm_disable_caches_mmu (); - linuxmain (0, machine_type, fdt_addr); @@ -3073,7 +6668,61 @@ index 5b39f02bb2e592d85639891db6eb68a97ce12dfa..e64c79a95774e83dfce7a107a288598c return grub_error (GRUB_ERR_BAD_OS, "Linux call returned"); } -@@ -444,11 +463,26 @@ fail: +@@ -296,17 +303,12 @@ linux_boot (void) + static grub_err_t + linux_load (const char *filename, grub_file_t file) + { ++ struct linux_arm_kernel_header *lh; + int size; + + size = grub_file_size (file); + +-#ifdef GRUB_MACHINE_EFI +- linux_addr = (grub_addr_t) grub_efi_allocate_loader_memory (LINUX_PHYS_OFFSET, size); +- if (!linux_addr) +- return grub_errno; +-#else + linux_addr = LINUX_ADDRESS; +-#endif + grub_dprintf ("loader", "Loading Linux to 0x%08x\n", + (grub_addr_t) linux_addr); + +@@ -318,9 +320,10 @@ linux_load (const char *filename, grub_file_t file) + return grub_errno; + } + +- if (size > LINUX_ZIMAGE_OFFSET + 4 +- && *(grub_uint32_t *) (linux_addr + LINUX_ZIMAGE_OFFSET) +- == LINUX_ZIMAGE_MAGIC) ++ lh = (void *) linux_addr; ++ ++ if ((grub_size_t) size > sizeof (*lh) && ++ lh->magic == GRUB_LINUX_ARM_MAGIC_SIGNATURE) + ; + else if (size > 0x8000 && *(grub_uint32_t *) (linux_addr) == 0xea000006 + && machine_type == GRUB_ARM_MACHINE_TYPE_RASPBERRY_PI) +@@ -410,20 +413,7 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), + + size = grub_get_initrd_size (&initrd_ctx); + +-#ifdef GRUB_MACHINE_EFI +- if (initrd_start) +- grub_efi_free_pages (initrd_start, +- (initrd_end - initrd_start + 0xfff) >> 12); +- initrd_start = (grub_addr_t) grub_efi_allocate_loader_memory (LINUX_INITRD_PHYS_OFFSET, size); +- +- if (!initrd_start) +- { +- grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("out of memory")); +- goto fail; +- } +-#else + initrd_start = LINUX_INITRD_ADDRESS; +-#endif + + grub_dprintf ("loader", "Loading initrd to 0x%08x\n", + (grub_addr_t) initrd_start); +@@ -444,11 +434,26 @@ fail: static grub_err_t load_dtb (grub_file_t dtb, int size) { @@ -3104,7 +6753,7 @@ index 5b39f02bb2e592d85639891db6eb68a97ce12dfa..e64c79a95774e83dfce7a107a288598c return GRUB_ERR_NONE; } -@@ -464,42 +498,13 @@ grub_cmd_devicetree (grub_command_t cmd __attribute__ ((unused)), +@@ -464,42 +469,13 @@ grub_cmd_devicetree (grub_command_t cmd __attribute__ ((unused)), dtb = grub_file_open (argv[0]); if (!dtb) @@ -3151,7 +6800,7 @@ index 5b39f02bb2e592d85639891db6eb68a97ce12dfa..e64c79a95774e83dfce7a107a288598c grub_file_close (dtb); return grub_errno; -@@ -517,7 +522,7 @@ GRUB_MOD_INIT (linux) +@@ -517,7 +493,7 @@ GRUB_MOD_INIT (linux) /* TRANSLATORS: DTB stands for device tree blob. */ 0, N_("Load DTB file.")); my_mod = mod; @@ -3161,21 +6810,29 @@ index 5b39f02bb2e592d85639891db6eb68a97ce12dfa..e64c79a95774e83dfce7a107a288598c } diff --git a/grub-core/loader/arm64/linux.c b/grub-core/loader/arm64/linux.c -index 9519d2e4d3ec1229a76eb4bce773c78c7af24a6e..746edd1041599eb1bc07f27e5fc2c1cdb23b3c1f 100644 +index 9519d2e4d3ec1229a76eb4bce773c78c7af24a6e..1f86229f86b01e4700bb13c9f936490ea9ac859f 100644 --- a/grub-core/loader/arm64/linux.c +++ b/grub-core/loader/arm64/linux.c -@@ -26,8 +26,8 @@ +@@ -26,8 +26,9 @@ #include #include #include -#include #include +#include ++#include #include #include #include -@@ -52,13 +52,11 @@ grub_arm64_uefi_check_image (struct grub_arm64_linux_kernel_header * lh) - if (lh->magic != GRUB_ARM64_LINUX_MAGIC) +@@ -47,18 +48,16 @@ static grub_addr_t initrd_start; + static grub_addr_t initrd_end; + + grub_err_t +-grub_arm64_uefi_check_image (struct grub_arm64_linux_kernel_header * lh) ++grub_armxx_efi_linux_check_image (struct linux_armxx_kernel_header * lh) + { +- if (lh->magic != GRUB_ARM64_LINUX_MAGIC) ++ if (lh->magic != GRUB_LINUX_ARMXX_MAGIC_SIGNATURE) return grub_error(GRUB_ERR_BAD_OS, "invalid magic number"); - if ((lh->code0 & 0xffff) != GRUB_EFI_PE_MAGIC) @@ -3189,7 +6846,7 @@ index 9519d2e4d3ec1229a76eb4bce773c78c7af24a6e..746edd1041599eb1bc07f27e5fc2c1cd grub_dprintf ("linux", "PE/COFF header @ %08x\n", lh->hdr_offset); return GRUB_ERR_NONE; -@@ -86,8 +84,8 @@ finalize_params_linux (void) +@@ -86,8 +85,8 @@ finalize_params_linux (void) /* Set initrd info */ if (initrd_start && initrd_end > initrd_start) { @@ -3200,7 +6857,16 @@ index 9519d2e4d3ec1229a76eb4bce773c78c7af24a6e..746edd1041599eb1bc07f27e5fc2c1cd retval = grub_fdt_set_prop64 (fdt, node, "linux,initrd-start", initrd_start); -@@ -148,8 +146,7 @@ grub_arm64_uefi_boot_image (grub_addr_t addr, grub_size_t size, char *args) +@@ -110,7 +109,7 @@ failure: + } + + grub_err_t +-grub_arm64_uefi_boot_image (grub_addr_t addr, grub_size_t size, char *args) ++grub_armxx_efi_linux_boot_image (grub_addr_t addr, grub_size_t size, char *args) + { + grub_efi_memory_mapped_device_path_t *mempath; + grub_efi_handle_t image_handle; +@@ -148,8 +147,7 @@ grub_arm64_uefi_boot_image (grub_addr_t addr, grub_size_t size, char *args) loaded_image->load_options_size = len = (grub_strlen (args) + 1) * sizeof (grub_efi_char16_t); loaded_image->load_options = @@ -3210,7 +6876,7 @@ index 9519d2e4d3ec1229a76eb4bce773c78c7af24a6e..746edd1041599eb1bc07f27e5fc2c1cd if (!loaded_image->load_options) return grub_errno; -@@ -162,7 +159,7 @@ grub_arm64_uefi_boot_image (grub_addr_t addr, grub_size_t size, char *args) +@@ -162,7 +160,7 @@ grub_arm64_uefi_boot_image (grub_addr_t addr, grub_size_t size, char *args) /* When successful, not reached */ b->unload_image (image_handle); @@ -3219,7 +6885,18 @@ index 9519d2e4d3ec1229a76eb4bce773c78c7af24a6e..746edd1041599eb1bc07f27e5fc2c1cd GRUB_EFI_BYTES_TO_PAGES (loaded_image->load_options_size)); return grub_errno; -@@ -189,7 +186,7 @@ grub_linux_unload (void) +@@ -174,8 +172,8 @@ grub_linux_boot (void) + if (finalize_params_linux () != GRUB_ERR_NONE) + return grub_errno; + +- return (grub_arm64_uefi_boot_image((grub_addr_t)kernel_addr, +- kernel_size, linux_args)); ++ return (grub_armxx_efi_linux_boot_image((grub_addr_t)kernel_addr, ++ kernel_size, linux_args)); + } + + static grub_err_t +@@ -189,12 +187,48 @@ grub_linux_unload (void) initrd_start = initrd_end = 0; grub_free (linux_args); if (kernel_addr) @@ -3228,16 +6905,58 @@ index 9519d2e4d3ec1229a76eb4bce773c78c7af24a6e..746edd1041599eb1bc07f27e5fc2c1cd GRUB_EFI_BYTES_TO_PAGES (kernel_size)); grub_fdt_unload (); return GRUB_ERR_NONE; -@@ -223,7 +220,7 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), + } + ++/* ++ * As per linux/Documentation/arm/Booting ++ * ARM initrd needs to be covered by kernel linear mapping, ++ * so place it in the first 512MB of DRAM. ++ * ++ * As per linux/Documentation/arm64/booting.txt ++ * ARM64 initrd needs to be contained entirely within a 1GB aligned window ++ * of up to 32GB of size that covers the kernel image as well. ++ * Since the EFI stub loader will attempt to load the kernel near start of ++ * RAM, place the buffer in the first 32GB of RAM. ++ */ ++#ifdef __arm__ ++#define INITRD_MAX_ADDRESS_OFFSET (512U * 1024 * 1024) ++#else /* __aarch64__ */ ++#define INITRD_MAX_ADDRESS_OFFSET (32ULL * 1024 * 1024 * 1024) ++#endif ++ ++/* ++ * This function returns a pointer to a legally allocated initrd buffer, ++ * or NULL if unsuccessful ++ */ ++static void * ++allocate_initrd_mem (int initrd_pages) ++{ ++ grub_addr_t max_addr; ++ ++ if (grub_efi_get_ram_base (&max_addr) != GRUB_ERR_NONE) ++ return NULL; ++ ++ max_addr += INITRD_MAX_ADDRESS_OFFSET - 1; ++ ++ return grub_efi_allocate_pages_real (max_addr, initrd_pages, ++ GRUB_EFI_ALLOCATE_MAX_ADDRESS, ++ GRUB_EFI_LOADER_DATA); ++} ++ + static grub_err_t + grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), + int argc, char *argv[]) +@@ -223,7 +257,8 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), grub_dprintf ("linux", "Loading initrd\n"); initrd_pages = (GRUB_EFI_BYTES_TO_PAGES (initrd_size)); - initrd_mem = grub_efi_allocate_pages (0, initrd_pages); -+ initrd_mem = grub_efi_allocate_any_pages (initrd_pages); ++ initrd_mem = allocate_initrd_mem (initrd_pages); ++ if (!initrd_mem) { grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("out of memory")); -@@ -241,8 +238,7 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), +@@ -241,8 +276,7 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), fail: grub_initrd_close (&initrd_ctx); if (initrd_mem && !initrd_start) @@ -3247,7 +6966,23 @@ index 9519d2e4d3ec1229a76eb4bce773c78c7af24a6e..746edd1041599eb1bc07f27e5fc2c1cd return grub_errno; } -@@ -277,7 +273,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), +@@ -252,7 +286,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), + int argc, char *argv[]) + { + grub_file_t file = 0; +- struct grub_arm64_linux_kernel_header lh; ++ struct linux_armxx_kernel_header lh; + + grub_dl_ref (my_mod); + +@@ -271,13 +305,13 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), + if (grub_file_read (file, &lh, sizeof (lh)) < (long) sizeof (lh)) + return grub_errno; + +- if (grub_arm64_uefi_check_image (&lh) != GRUB_ERR_NONE) ++ if (grub_armxx_efi_linux_check_image (&lh) != GRUB_ERR_NONE) + goto fail; + grub_loader_unset(); grub_dprintf ("linux", "kernel file size: %lld\n", (long long) kernel_size); @@ -3256,7 +6991,7 @@ index 9519d2e4d3ec1229a76eb4bce773c78c7af24a6e..746edd1041599eb1bc07f27e5fc2c1cd grub_dprintf ("linux", "kernel numpages: %lld\n", (long long) GRUB_EFI_BYTES_TO_PAGES (kernel_size)); if (!kernel_addr) -@@ -329,7 +325,7 @@ fail: +@@ -329,7 +363,7 @@ fail: grub_free (linux_args); if (kernel_addr && !loaded) @@ -3266,10 +7001,10 @@ index 9519d2e4d3ec1229a76eb4bce773c78c7af24a6e..746edd1041599eb1bc07f27e5fc2c1cd return grub_errno; diff --git a/grub-core/loader/arm64/xen_boot.c b/grub-core/loader/arm64/xen_boot.c -index a914eb8e2df24ebaab41a2eb0ed205bcebafcf5d..c95d6c5a868e37d4cbc923630d154b5422b37525 100644 +index a914eb8e2df24ebaab41a2eb0ed205bcebafcf5d..1003a0b9997a46ea7e5106da02ef77e9be3a21fc 100644 --- a/grub-core/loader/arm64/xen_boot.c +++ b/grub-core/loader/arm64/xen_boot.c -@@ -27,9 +27,9 @@ +@@ -27,9 +27,10 @@ #include #include #include @@ -3277,10 +7012,38 @@ index a914eb8e2df24ebaab41a2eb0ed205bcebafcf5d..c95d6c5a868e37d4cbc923630d154b54 #include #include +#include ++#include #include /* required by struct xen_hypervisor_header */ #include #include -@@ -156,7 +156,7 @@ prepare_xen_module_params (struct xen_boot_binary *module, void *xen_boot_fdt) +@@ -66,7 +67,7 @@ typedef enum module_type module_type_t; + + struct xen_hypervisor_header + { +- struct grub_arm64_linux_kernel_header efi_head; ++ struct linux_arm64_kernel_header efi_head; + + /* This is always PE\0\0. */ + grub_uint8_t signature[GRUB_PE32_SIGNATURE_SIZE]; +@@ -115,6 +116,17 @@ prepare_xen_hypervisor_params (void *xen_boot_fdt) + if (chosen_node < 1) + return grub_error (GRUB_ERR_IO, "failed to get chosen node in FDT"); + ++ /* ++ * The address and size are always written using 64-bits value. Set ++ * #address-cells and #size-cells accordingly. ++ */ ++ retval = grub_fdt_set_prop32 (xen_boot_fdt, chosen_node, "#address-cells", 2); ++ if (retval) ++ return grub_error (GRUB_ERR_IO, "failed to set #address-cells"); ++ retval = grub_fdt_set_prop32 (xen_boot_fdt, chosen_node, "#size-cells", 2); ++ if (retval) ++ return grub_error (GRUB_ERR_IO, "failed to set #size-cells"); ++ + grub_dprintf ("xen_loader", + "Xen Hypervisor cmdline : %s @ %p size:%d\n", + xen_hypervisor->cmdline, xen_hypervisor->cmdline, +@@ -156,7 +168,7 @@ prepare_xen_module_params (struct xen_boot_binary *module, void *xen_boot_fdt) grub_fdt_add_subnode (xen_boot_fdt, chosen_node, module_name); retval = grub_fdt_set_prop (xen_boot_fdt, module_node, "compatible", @@ -3289,7 +7052,20 @@ index a914eb8e2df24ebaab41a2eb0ed205bcebafcf5d..c95d6c5a868e37d4cbc923630d154b54 if (retval) return grub_error (GRUB_ERR_IO, "failed to update FDT"); -@@ -324,10 +324,9 @@ xen_boot_binary_load (struct xen_boot_binary *binary, grub_file_t file, +@@ -253,9 +265,9 @@ xen_boot (void) + if (err) + return err; + +- return grub_arm64_uefi_boot_image (xen_hypervisor->start, +- xen_hypervisor->size, +- xen_hypervisor->cmdline); ++ return grub_armxx_efi_linux_boot_image (xen_hypervisor->start, ++ xen_hypervisor->size, ++ xen_hypervisor->cmdline); + } + + static void +@@ -324,10 +336,9 @@ xen_boot_binary_load (struct xen_boot_binary *binary, grub_file_t file, grub_dprintf ("xen_loader", "Xen_boot file size: 0x%lx\n", binary->size); binary->start @@ -3303,7 +7079,7 @@ index a914eb8e2df24ebaab41a2eb0ed205bcebafcf5d..c95d6c5a868e37d4cbc923630d154b54 if (!binary->start) { grub_error (GRUB_ERR_OUT_OF_MEMORY, N_("out of memory")); -@@ -379,6 +378,20 @@ grub_cmd_xen_module (grub_command_t cmd __attribute__((unused)), +@@ -379,6 +390,20 @@ grub_cmd_xen_module (grub_command_t cmd __attribute__((unused)), struct xen_boot_binary *module = NULL; grub_file_t file = 0; @@ -3324,7 +7100,7 @@ index a914eb8e2df24ebaab41a2eb0ed205bcebafcf5d..c95d6c5a868e37d4cbc923630d154b54 if (!argc) { -@@ -403,6 +416,8 @@ grub_cmd_xen_module (grub_command_t cmd __attribute__((unused)), +@@ -403,6 +428,8 @@ grub_cmd_xen_module (grub_command_t cmd __attribute__((unused)), grub_dprintf ("xen_loader", "Init module and node info\n"); @@ -3333,14 +7109,25 @@ index a914eb8e2df24ebaab41a2eb0ed205bcebafcf5d..c95d6c5a868e37d4cbc923630d154b54 file = grub_file_open (argv[0]); if (!file) goto fail; +@@ -441,8 +468,8 @@ grub_cmd_xen_hypervisor (grub_command_t cmd __attribute__ ((unused)), + + if (grub_file_read (file, &sh, sizeof (sh)) != (long) sizeof (sh)) + goto fail; +- if (grub_arm64_uefi_check_image +- ((struct grub_arm64_linux_kernel_header *) &sh) != GRUB_ERR_NONE) ++ if (grub_armxx_efi_linux_check_image ++ ((struct linux_armxx_kernel_header *) &sh) != GRUB_ERR_NONE) + goto fail; + grub_file_seek (file, 0); + diff --git a/grub-core/loader/arm64/fdt.c b/grub-core/loader/efi/fdt.c -similarity index 91% +similarity index 79% rename from grub-core/loader/arm64/fdt.c rename to grub-core/loader/efi/fdt.c -index db49cf64991764686c3f643e5289abbd4874a559..17212c38d0b7496743e0bfc2e081f10cd1a2831f 100644 +index db49cf64991764686c3f643e5289abbd4874a559..a4c6e8036454c1a53deefad791133488281462ea 100644 --- a/grub-core/loader/arm64/fdt.c +++ b/grub-core/loader/efi/fdt.c -@@ -18,12 +18,12 @@ +@@ -18,26 +18,33 @@ #include #include @@ -3351,10 +7138,18 @@ index db49cf64991764686c3f643e5289abbd4874a559..17212c38d0b7496743e0bfc2e081f10c #include #include +#include ++#include static void *loaded_fdt; static void *fdt; -@@ -32,12 +32,12 @@ void * + ++#define FDT_ADDR_CELLS_STRING "#address-cells" ++#define FDT_SIZE_CELLS_STRING "#size-cells" ++#define FDT_ADDR_SIZE_EXTRA ((2 * grub_fdt_prop_entry_size (sizeof(grub_uint32_t))) + \ ++ sizeof (FDT_ADDR_CELLS_STRING) + \ ++ sizeof (FDT_SIZE_CELLS_STRING)) ++ + void * grub_fdt_load (grub_size_t additional_size) { void *raw_fdt; @@ -3369,8 +7164,17 @@ index db49cf64991764686c3f643e5289abbd4874a559..17212c38d0b7496743e0bfc2e081f10c } if (loaded_fdt) -@@ -49,8 +49,8 @@ grub_fdt_load (grub_size_t additional_size) - raw_fdt ? grub_fdt_get_totalsize (raw_fdt) : GRUB_FDT_EMPTY_TREE_SZ; +@@ -45,12 +52,15 @@ grub_fdt_load (grub_size_t additional_size) + else + raw_fdt = grub_efi_get_firmware_fdt(); + +- size = +- raw_fdt ? grub_fdt_get_totalsize (raw_fdt) : GRUB_FDT_EMPTY_TREE_SZ; ++ if (raw_fdt) ++ size = grub_fdt_get_totalsize (raw_fdt); ++ else ++ size = GRUB_FDT_EMPTY_TREE_SZ + FDT_ADDR_SIZE_EXTRA; ++ size += additional_size; - grub_dprintf ("linux", "allocating %ld bytes for fdt\n", size); @@ -3380,7 +7184,16 @@ index db49cf64991764686c3f643e5289abbd4874a559..17212c38d0b7496743e0bfc2e081f10c if (!fdt) return NULL; -@@ -88,7 +88,7 @@ grub_fdt_unload (void) { +@@ -62,6 +72,8 @@ grub_fdt_load (grub_size_t additional_size) + else + { + grub_fdt_create_empty_tree (fdt, size); ++ grub_fdt_set_prop32 (fdt, 0, FDT_ADDR_CELLS_STRING, 2); ++ grub_fdt_set_prop32 (fdt, 0, FDT_SIZE_CELLS_STRING, 2); + } + return fdt; + } +@@ -88,7 +100,7 @@ grub_fdt_unload (void) { if (!fdt) { return; } @@ -3389,6 +7202,198 @@ index db49cf64991764686c3f643e5289abbd4874a559..17212c38d0b7496743e0bfc2e081f10c GRUB_EFI_BYTES_TO_PAGES (grub_fdt_get_totalsize (fdt))); fdt = NULL; } +diff --git a/grub-core/loader/i386/linux.c b/grub-core/loader/i386/linux.c +index 083f9417cb65e509e673dba09a71616c5661ab05..9b53d3168f9bb78eab7a124518e83915183912b9 100644 +--- a/grub-core/loader/i386/linux.c ++++ b/grub-core/loader/i386/linux.c +@@ -306,6 +306,12 @@ grub_linux_setup_video (struct linux_kernel_params *params) + params->lfb_line_len = mode_info.pitch; + + params->lfb_base = (grub_size_t) framebuffer; ++ ++#if defined (GRUB_MACHINE_EFI) && defined (__x86_64__) ++ params->ext_lfb_base = (grub_size_t) (((grub_uint64_t)(grub_size_t) framebuffer) >> 32); ++ params->capabilities |= VIDEO_CAPABILITY_64BIT_BASE; ++#endif ++ + params->lfb_size = ALIGN_UP (params->lfb_line_len * params->lfb_height, 65536); + + params->red_mask_size = mode_info.red_mask_size; +@@ -678,7 +684,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), + int argc, char *argv[]) + { + grub_file_t file = 0; +- struct linux_kernel_header lh; ++ struct linux_i386_kernel_header lh; + grub_uint8_t setup_sects; + grub_size_t real_size, prot_size, prot_file_size; + grub_ssize_t len; +@@ -721,7 +727,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), + + /* FIXME: 2.03 is not always good enough (Linux 2.4 can be 2.03 and + still not support 32-bit boot. */ +- if (lh.header != grub_cpu_to_le32_compile_time (GRUB_LINUX_MAGIC_SIGNATURE) ++ if (lh.header != grub_cpu_to_le32_compile_time (GRUB_LINUX_I386_MAGIC_SIGNATURE) + || grub_le_to_cpu16 (lh.version) < 0x0203) + { + grub_error (GRUB_ERR_BAD_OS, "version too old for 32-bit boot" +diff --git a/grub-core/loader/i386/multiboot_mbi.c b/grub-core/loader/i386/multiboot_mbi.c +index fd7b41b0cad4f26d1170d70692ac1ac27fd6bd73..dc98dbcae258b340e155c64f1f73213ac724806a 100644 +--- a/grub-core/loader/i386/multiboot_mbi.c ++++ b/grub-core/loader/i386/multiboot_mbi.c +@@ -239,7 +239,7 @@ grub_multiboot_get_mbi_size (void) + ret = sizeof (struct multiboot_info) + ALIGN_UP (cmdline_size, 4) + + modcnt * sizeof (struct multiboot_mod_list) + total_modcmd + + ALIGN_UP (sizeof(PACKAGE_STRING), 4) +- + grub_get_multiboot_mmap_count () * sizeof (struct multiboot_mmap_entry) ++ + grub_multiboot_get_mmap_count () * sizeof (struct multiboot_mmap_entry) + + elf_sec_entsize * elf_sec_num + + 256 * sizeof (struct multiboot_color) + #if GRUB_MACHINE_HAS_VBE || GRUB_MACHINE_HAS_VGA_TEXT +@@ -542,7 +542,7 @@ grub_multiboot_make_mbi (grub_uint32_t *target) + mbi->mods_count = 0; + } + +- mmap_size = grub_get_multiboot_mmap_count () ++ mmap_size = grub_multiboot_get_mmap_count () + * sizeof (struct multiboot_mmap_entry); + grub_fill_multiboot_mmap ((struct multiboot_mmap_entry *) ptrorig); + mbi->mmap_length = mmap_size; +diff --git a/grub-core/loader/i386/pc/chainloader.c b/grub-core/loader/i386/pc/chainloader.c +index c79c4fe0fc99a876b3e92f0a24f16cd636e00a0d..ef3a322b78cf10a406c0420780f821e2e1d1b284 100644 +--- a/grub-core/loader/i386/pc/chainloader.c ++++ b/grub-core/loader/i386/pc/chainloader.c +@@ -19,6 +19,7 @@ + + #include + #include ++#include + #include + #include + #include +@@ -86,9 +87,16 @@ grub_chainloader_unload (void) + void + grub_chainloader_patch_bpb (void *bs, grub_device_t dev, grub_uint8_t dl) + { +- grub_uint32_t part_start = 0; ++ grub_uint32_t part_start = 0, heads = 0, sectors = 0; + if (dev && dev->disk) +- part_start = grub_partition_get_start (dev->disk->partition); ++ { ++ part_start = grub_partition_get_start (dev->disk->partition); ++ if (dev->disk->data) ++ { ++ heads = ((struct grub_biosdisk_data *)(dev->disk->data))->heads; ++ sectors = ((struct grub_biosdisk_data *)(dev->disk->data))->sectors; ++ } ++ } + if (grub_memcmp ((char *) &((struct grub_ntfs_bpb *) bs)->oem_name, + "NTFS", 4) == 0) + { +@@ -117,7 +125,7 @@ grub_chainloader_patch_bpb (void *bs, grub_device_t dev, grub_uint8_t dl) + + if (bpb->num_reserved_sectors == 0) + break; +- if (bpb->num_total_sectors_16 == 0 || bpb->num_total_sectors_32 == 0) ++ if (bpb->num_total_sectors_16 == 0 && bpb->num_total_sectors_32 == 0) + break; + + if (bpb->num_fats == 0) +@@ -127,12 +135,20 @@ grub_chainloader_patch_bpb (void *bs, grub_device_t dev, grub_uint8_t dl) + { + bpb->num_hidden_sectors = grub_cpu_to_le32 (part_start); + bpb->version_specific.fat12_or_fat16.num_ph_drive = dl; ++ if (sectors) ++ bpb->sectors_per_track = grub_cpu_to_le16 (sectors); ++ if (heads) ++ bpb->num_heads = grub_cpu_to_le16 (heads); + return; + } + if (bpb->version_specific.fat32.sectors_per_fat_32) + { + bpb->num_hidden_sectors = grub_cpu_to_le32 (part_start); + bpb->version_specific.fat32.num_ph_drive = dl; ++ if (sectors) ++ bpb->sectors_per_track = grub_cpu_to_le16 (sectors); ++ if (heads) ++ bpb->num_heads = grub_cpu_to_le16 (heads); + return; + } + break; +diff --git a/grub-core/loader/i386/pc/linux.c b/grub-core/loader/i386/pc/linux.c +index a293b17aa101b308635bbed4086ae1547b91b884..b69cb7a3a7f8a9ca96a91a78c47fa1515e628699 100644 +--- a/grub-core/loader/i386/pc/linux.c ++++ b/grub-core/loader/i386/pc/linux.c +@@ -121,7 +121,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), + int argc, char *argv[]) + { + grub_file_t file = 0; +- struct linux_kernel_header lh; ++ struct linux_i386_kernel_header lh; + grub_uint8_t setup_sects; + grub_size_t real_size; + grub_ssize_t len; +@@ -169,7 +169,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), + + maximal_cmdline_size = 256; + +- if (lh.header == grub_cpu_to_le32_compile_time (GRUB_LINUX_MAGIC_SIGNATURE) ++ if (lh.header == grub_cpu_to_le32_compile_time (GRUB_LINUX_I386_MAGIC_SIGNATURE) + && grub_le_to_cpu16 (lh.version) >= 0x0200) + { + grub_linux_is_bzimage = (lh.loadflags & GRUB_LINUX_FLAG_BIG_KERNEL); +@@ -322,7 +322,7 @@ grub_cmd_linux (grub_command_t cmd __attribute__ ((unused)), + goto fail; + } + +- if (lh.header != grub_cpu_to_le32_compile_time (GRUB_LINUX_MAGIC_SIGNATURE) ++ if (lh.header != grub_cpu_to_le32_compile_time (GRUB_LINUX_I386_MAGIC_SIGNATURE) + || grub_le_to_cpu16 (lh.version) < 0x0200) + /* Clear the heap space. */ + grub_memset (grub_linux_real_chunk +@@ -387,7 +387,7 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), + { + grub_size_t size = 0; + grub_addr_t addr_max, addr_min; +- struct linux_kernel_header *lh; ++ struct linux_i386_kernel_header *lh; + grub_uint8_t *initrd_chunk; + grub_addr_t initrd_addr; + grub_err_t err; +@@ -405,9 +405,9 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)), + goto fail; + } + +- lh = (struct linux_kernel_header *) grub_linux_real_chunk; ++ lh = (struct linux_i386_kernel_header *) grub_linux_real_chunk; + +- if (!(lh->header == grub_cpu_to_le32_compile_time (GRUB_LINUX_MAGIC_SIGNATURE) ++ if (!(lh->header == grub_cpu_to_le32_compile_time (GRUB_LINUX_I386_MAGIC_SIGNATURE) + && grub_le_to_cpu16 (lh->version) >= 0x0200)) + { + grub_error (GRUB_ERR_BAD_OS, "the kernel is too old for initrd"); +diff --git a/grub-core/loader/i386/xen_file.c b/grub-core/loader/i386/xen_file.c +index 99fad4cadae42ab09497babca15cd9606557fcd2..77a93e7b228316e1df731e01e51e67f9225b4482 100644 +--- a/grub-core/loader/i386/xen_file.c ++++ b/grub-core/loader/i386/xen_file.c +@@ -26,7 +26,7 @@ grub_elf_t + grub_xen_file (grub_file_t file) + { + grub_elf_t elf; +- struct linux_kernel_header lh; ++ struct linux_i386_kernel_header lh; + grub_file_t off_file; + grub_uint32_t payload_offset, payload_length; + grub_uint8_t magic[6]; +@@ -43,7 +43,7 @@ grub_xen_file (grub_file_t file) + goto fail; + + if (lh.boot_flag != grub_cpu_to_le16_compile_time (0xaa55) +- || lh.header != grub_cpu_to_le32_compile_time (GRUB_LINUX_MAGIC_SIGNATURE) ++ || lh.header != grub_cpu_to_le32_compile_time (GRUB_LINUX_I386_MAGIC_SIGNATURE) + || grub_le_to_cpu16 (lh.version) < 0x0208) + { + grub_error (GRUB_ERR_BAD_OS, "version too old for xen boot"); diff --git a/grub-core/loader/ia64/efi/linux.c b/grub-core/loader/ia64/efi/linux.c index efaa42ccdd2bf74321de20cf5033a80676cc7dc3..750330d4572d0dcd09d02b4b75c1f03045fa897b 100644 --- a/grub-core/loader/ia64/efi/linux.c @@ -3438,6 +7443,576 @@ index efaa42ccdd2bf74321de20cf5033a80676cc7dc3..750330d4572d0dcd09d02b4b75c1f030 if (! initrd_mem) { grub_error (GRUB_ERR_OUT_OF_MEMORY, "cannot allocate pages"); +diff --git a/grub-core/loader/multiboot.c b/grub-core/loader/multiboot.c +index bd9d5b3e698588db594a2c334d715e0e883bab92..40c67e82489ec3ecf891ae564cde810bf280b242 100644 +--- a/grub-core/loader/multiboot.c ++++ b/grub-core/loader/multiboot.c +@@ -28,7 +28,15 @@ + + #include + #include ++#ifdef GRUB_USE_MULTIBOOT2 ++#include ++#define GRUB_MULTIBOOT_CONSOLE_FRAMEBUFFER GRUB_MULTIBOOT2_CONSOLE_FRAMEBUFFER ++#define GRUB_MULTIBOOT_CONSOLE_EGA_TEXT GRUB_MULTIBOOT2_CONSOLE_EGA_TEXT ++#define GRUB_MULTIBOOT(x) grub_multiboot2_ ## x ++#else + #include ++#define GRUB_MULTIBOOT(x) grub_multiboot_ ## x ++#endif + #include + #include + #include +@@ -49,8 +57,8 @@ GRUB_MOD_LICENSE ("GPLv3+"); + #include + #endif + +-struct grub_relocator *grub_multiboot_relocator = NULL; +-grub_uint32_t grub_multiboot_payload_eip; ++struct grub_relocator *GRUB_MULTIBOOT (relocator) = NULL; ++grub_uint32_t GRUB_MULTIBOOT (payload_eip); + #if defined (GRUB_MACHINE_PCBIOS) || defined (GRUB_MACHINE_MULTIBOOT) || defined (GRUB_MACHINE_COREBOOT) || defined (GRUB_MACHINE_QEMU) + #define DEFAULT_VIDEO_MODE "text" + #else +@@ -78,7 +86,7 @@ count_hook (grub_uint64_t addr __attribute__ ((unused)), + /* Return the length of the Multiboot mmap that will be needed to allocate + our platform's map. */ + grub_uint32_t +-grub_get_multiboot_mmap_count (void) ++GRUB_MULTIBOOT (get_mmap_count) (void) + { + grub_size_t count = 0; + +@@ -88,7 +96,7 @@ grub_get_multiboot_mmap_count (void) + } + + grub_err_t +-grub_multiboot_set_video_mode (void) ++GRUB_MULTIBOOT (set_video_mode) (void) + { + grub_err_t err; + const char *modevar; +@@ -130,9 +138,12 @@ static void + efi_boot (struct grub_relocator *rel, + grub_uint32_t target) + { ++#ifdef GRUB_USE_MULTIBOOT2 ++ struct grub_relocator_efi_state state_efi = MULTIBOOT2_EFI_INITIAL_STATE; ++#else + struct grub_relocator_efi_state state_efi = MULTIBOOT_EFI_INITIAL_STATE; +- +- state_efi.MULTIBOOT_EFI_ENTRY_REGISTER = grub_multiboot_payload_eip; ++#endif ++ state_efi.MULTIBOOT_EFI_ENTRY_REGISTER = GRUB_MULTIBOOT (payload_eip); + state_efi.MULTIBOOT_EFI_MBI_REGISTER = target; + + grub_relocator_efi_boot (rel, state_efi); +@@ -164,19 +175,23 @@ static grub_err_t + grub_multiboot_boot (void) + { + grub_err_t err; ++ ++#ifdef GRUB_USE_MULTIBOOT2 ++ struct grub_relocator32_state state = MULTIBOOT2_INITIAL_STATE; ++#else + struct grub_relocator32_state state = MULTIBOOT_INITIAL_STATE; ++#endif ++ state.MULTIBOOT_ENTRY_REGISTER = GRUB_MULTIBOOT (payload_eip); + +- state.MULTIBOOT_ENTRY_REGISTER = grub_multiboot_payload_eip; +- +- err = grub_multiboot_make_mbi (&state.MULTIBOOT_MBI_REGISTER); ++ err = GRUB_MULTIBOOT (make_mbi) (&state.MULTIBOOT_MBI_REGISTER); + + if (err) + return err; + + if (grub_efi_is_finished) +- normal_boot (grub_multiboot_relocator, state); ++ normal_boot (GRUB_MULTIBOOT (relocator), state); + else +- efi_boot (grub_multiboot_relocator, state.MULTIBOOT_MBI_REGISTER); ++ efi_boot (GRUB_MULTIBOOT (relocator), state.MULTIBOOT_MBI_REGISTER); + + /* Not reached. */ + return GRUB_ERR_NONE; +@@ -185,10 +200,10 @@ grub_multiboot_boot (void) + static grub_err_t + grub_multiboot_unload (void) + { +- grub_multiboot_free_mbi (); ++ GRUB_MULTIBOOT (free_mbi) (); + +- grub_relocator_unload (grub_multiboot_relocator); +- grub_multiboot_relocator = NULL; ++ grub_relocator_unload (GRUB_MULTIBOOT (relocator)); ++ GRUB_MULTIBOOT (relocator) = NULL; + + grub_dl_unref (my_mod); + +@@ -207,7 +222,7 @@ static grub_uint64_t highest_load; + + /* Load ELF32 or ELF64. */ + grub_err_t +-grub_multiboot_load_elf (mbi_load_data_t *mld) ++GRUB_MULTIBOOT (load_elf) (mbi_load_data_t *mld) + { + if (grub_multiboot_is_elf32 (mld->buffer)) + return grub_multiboot_load_elf32 (mld); +@@ -218,9 +233,9 @@ grub_multiboot_load_elf (mbi_load_data_t *mld) + } + + grub_err_t +-grub_multiboot_set_console (int console_type, int accepted_consoles, +- int width, int height, int depth, +- int console_req) ++GRUB_MULTIBOOT (set_console) (int console_type, int accepted_consoles, ++ int width, int height, int depth, ++ int console_req) + { + console_required = console_req; + if (!(accepted_consoles +@@ -313,19 +328,19 @@ grub_cmd_multiboot (grub_command_t cmd __attribute__ ((unused)), + grub_dl_ref (my_mod); + + /* Skip filename. */ +- grub_multiboot_init_mbi (argc - 1, argv + 1); ++ GRUB_MULTIBOOT (init_mbi) (argc - 1, argv + 1); + +- grub_relocator_unload (grub_multiboot_relocator); +- grub_multiboot_relocator = grub_relocator_new (); ++ grub_relocator_unload (GRUB_MULTIBOOT (relocator)); ++ GRUB_MULTIBOOT (relocator) = grub_relocator_new (); + +- if (!grub_multiboot_relocator) ++ if (!GRUB_MULTIBOOT (relocator)) + goto fail; + +- err = grub_multiboot_load (file, argv[0]); ++ err = GRUB_MULTIBOOT (load) (file, argv[0]); + if (err) + goto fail; + +- grub_multiboot_set_bootdev (); ++ GRUB_MULTIBOOT (set_bootdev) (); + + grub_loader_set (grub_multiboot_boot, grub_multiboot_unload, 0); + +@@ -335,8 +350,8 @@ grub_cmd_multiboot (grub_command_t cmd __attribute__ ((unused)), + + if (grub_errno != GRUB_ERR_NONE) + { +- grub_relocator_unload (grub_multiboot_relocator); +- grub_multiboot_relocator = NULL; ++ grub_relocator_unload (GRUB_MULTIBOOT (relocator)); ++ GRUB_MULTIBOOT (relocator) = NULL; + grub_dl_unref (my_mod); + } + +@@ -368,7 +383,7 @@ grub_cmd_module (grub_command_t cmd __attribute__ ((unused)), + if (argc == 0) + return grub_error (GRUB_ERR_BAD_ARGUMENT, N_("filename expected")); + +- if (!grub_multiboot_relocator) ++ if (!GRUB_MULTIBOOT (relocator)) + return grub_error (GRUB_ERR_BAD_ARGUMENT, + N_("you need to load the kernel first")); + +@@ -389,7 +404,7 @@ grub_cmd_module (grub_command_t cmd __attribute__ ((unused)), + if (size) + { + grub_relocator_chunk_t ch; +- err = grub_relocator_alloc_chunk_align (grub_multiboot_relocator, &ch, ++ err = grub_relocator_alloc_chunk_align (GRUB_MULTIBOOT (relocator), &ch, + lowest_addr, (0xffffffff - size) + 1, + size, MULTIBOOT_MOD_ALIGN, + GRUB_RELOCATOR_PREFERENCE_NONE, 1); +@@ -407,7 +422,7 @@ grub_cmd_module (grub_command_t cmd __attribute__ ((unused)), + target = 0; + } + +- err = grub_multiboot_add_module (target, size, argc - 1, argv + 1); ++ err = GRUB_MULTIBOOT (add_module) (target, size, argc - 1, argv + 1); + if (err) + { + grub_file_close (file); +diff --git a/grub-core/loader/multiboot_elfxx.c b/grub-core/loader/multiboot_elfxx.c +index 5e649ed2545bee3fbe9602c9d97079160dc6420a..70cd1db513e679f0e02e06dc2de24747a62b88ba 100644 +--- a/grub-core/loader/multiboot_elfxx.c ++++ b/grub-core/loader/multiboot_elfxx.c +@@ -57,9 +57,9 @@ CONCAT(grub_multiboot_load_elf, XX) (mbi_load_data_t *mld) + char *phdr_base; + grub_err_t err; + grub_relocator_chunk_t ch; +- grub_uint32_t load_offset, load_size; ++ grub_uint32_t load_offset = 0, load_size; + int i; +- void *source; ++ void *source = NULL; + + if (ehdr->e_ident[EI_MAG0] != ELFMAG0 + || ehdr->e_ident[EI_MAG1] != ELFMAG1 +@@ -97,38 +97,38 @@ CONCAT(grub_multiboot_load_elf, XX) (mbi_load_data_t *mld) + return grub_error (GRUB_ERR_BAD_OS, "segment crosses 4 GiB border"); + #endif + +- load_size = highest_load - mld->link_base_addr; +- + if (mld->relocatable) + { ++ load_size = highest_load - mld->link_base_addr; ++ ++ grub_dprintf ("multiboot_loader", "align=0x%lx, preference=0x%x, " ++ "load_size=0x%x, avoid_efi_boot_services=%d\n", ++ (long) mld->align, mld->preference, load_size, ++ mld->avoid_efi_boot_services); ++ + if (load_size > mld->max_addr || mld->min_addr > mld->max_addr - load_size) + return grub_error (GRUB_ERR_BAD_OS, "invalid min/max address and/or load size"); + +- err = grub_relocator_alloc_chunk_align (grub_multiboot_relocator, &ch, ++ err = grub_relocator_alloc_chunk_align (GRUB_MULTIBOOT (relocator), &ch, + mld->min_addr, mld->max_addr - load_size, + load_size, mld->align ? mld->align : 1, + mld->preference, mld->avoid_efi_boot_services); ++ ++ if (err) ++ { ++ grub_dprintf ("multiboot_loader", "Cannot allocate memory for OS image\n"); ++ return err; ++ } ++ ++ mld->load_base_addr = get_physical_target_address (ch); ++ source = get_virtual_current_address (ch); + } + else +- err = grub_relocator_alloc_chunk_addr (grub_multiboot_relocator, &ch, +- mld->link_base_addr, load_size); ++ mld->load_base_addr = mld->link_base_addr; + +- if (err) +- { +- grub_dprintf ("multiboot_loader", "Cannot allocate memory for OS image\n"); +- return err; +- } +- +- mld->load_base_addr = get_physical_target_address (ch); +- source = get_virtual_current_address (ch); +- +- grub_dprintf ("multiboot_loader", "link_base_addr=0x%x, load_base_addr=0x%x, " +- "load_size=0x%x, relocatable=%d\n", mld->link_base_addr, +- mld->load_base_addr, load_size, mld->relocatable); +- +- if (mld->relocatable) +- grub_dprintf ("multiboot_loader", "align=0x%lx, preference=0x%x, avoid_efi_boot_services=%d\n", +- (long) mld->align, mld->preference, mld->avoid_efi_boot_services); ++ grub_dprintf ("multiboot_loader", "relocatable=%d, link_base_addr=0x%x, " ++ "load_base_addr=0x%x\n", mld->relocatable, ++ mld->link_base_addr, mld->load_base_addr); + + /* Load every loadable segment in memory. */ + for (i = 0; i < ehdr->e_phnum; i++) +@@ -139,7 +139,24 @@ CONCAT(grub_multiboot_load_elf, XX) (mbi_load_data_t *mld) + grub_dprintf ("multiboot_loader", "segment %d: paddr=0x%lx, memsz=0x%lx, vaddr=0x%lx\n", + i, (long) phdr(i)->p_paddr, (long) phdr(i)->p_memsz, (long) phdr(i)->p_vaddr); + +- load_offset = phdr(i)->p_paddr - mld->link_base_addr; ++ if (mld->relocatable) ++ { ++ load_offset = phdr(i)->p_paddr - mld->link_base_addr; ++ grub_dprintf ("multiboot_loader", "segment %d: load_offset=0x%x\n", i, load_offset); ++ } ++ else ++ { ++ err = grub_relocator_alloc_chunk_addr (GRUB_MULTIBOOT (relocator), &ch, ++ phdr(i)->p_paddr, phdr(i)->p_memsz); ++ ++ if (err) ++ { ++ grub_dprintf ("multiboot_loader", "Cannot allocate memory for OS image\n"); ++ return err; ++ } ++ ++ source = get_virtual_current_address (ch); ++ } + + if (phdr(i)->p_filesz != 0) + { +@@ -167,7 +184,7 @@ CONCAT(grub_multiboot_load_elf, XX) (mbi_load_data_t *mld) + if (phdr(i)->p_vaddr <= ehdr->e_entry + && phdr(i)->p_vaddr + phdr(i)->p_memsz > ehdr->e_entry) + { +- grub_multiboot_payload_eip = (ehdr->e_entry - phdr(i)->p_vaddr) ++ GRUB_MULTIBOOT (payload_eip) = (ehdr->e_entry - phdr(i)->p_vaddr) + + phdr(i)->p_paddr; + #ifdef MULTIBOOT_LOAD_ELF64 + # ifdef __mips +@@ -191,7 +208,7 @@ CONCAT(grub_multiboot_load_elf, XX) (mbi_load_data_t *mld) + #if defined (__i386__) || defined (__x86_64__) + + #elif defined (__mips) +- grub_multiboot_payload_eip |= 0x80000000; ++ GRUB_MULTIBOOT (payload_eip) |= 0x80000000; + #else + #error Please complete this + #endif +@@ -238,7 +255,7 @@ CONCAT(grub_multiboot_load_elf, XX) (mbi_load_data_t *mld) + if (sh->sh_size == 0) + continue; + +- err = grub_relocator_alloc_chunk_align (grub_multiboot_relocator, &ch, 0, ++ err = grub_relocator_alloc_chunk_align (GRUB_MULTIBOOT (relocator), &ch, 0, + (0xffffffff - sh->sh_size) + 1, + sh->sh_size, sh->sh_addralign, + GRUB_RELOCATOR_PREFERENCE_NONE, +@@ -264,8 +281,8 @@ CONCAT(grub_multiboot_load_elf, XX) (mbi_load_data_t *mld) + } + sh->sh_addr = target; + } +- grub_multiboot_add_elfsyms (ehdr->e_shnum, ehdr->e_shentsize, +- ehdr->e_shstrndx, shdr); ++ GRUB_MULTIBOOT (add_elfsyms) (ehdr->e_shnum, ehdr->e_shentsize, ++ ehdr->e_shstrndx, shdr); + } + + #undef phdr +diff --git a/grub-core/loader/multiboot_mbi2.c b/grub-core/loader/multiboot_mbi2.c +index b0679a9f6c9848d81cb74cf799ad3a7b235d937c..4df6595954d889028e4525bb66b42cf391f4c9ce 100644 +--- a/grub-core/loader/multiboot_mbi2.c ++++ b/grub-core/loader/multiboot_mbi2.c +@@ -22,7 +22,7 @@ + #include + #include + #endif +-#include ++#include + #include + #include + #include +@@ -71,7 +71,7 @@ static int keep_bs = 0; + static grub_uint32_t load_base_addr; + + void +-grub_multiboot_add_elfsyms (grub_size_t num, grub_size_t entsize, ++grub_multiboot2_add_elfsyms (grub_size_t num, grub_size_t entsize, + unsigned shndx, void *data) + { + elf_sec_num = num; +@@ -90,17 +90,17 @@ find_header (grub_properly_aligned_t *buffer, grub_ssize_t len) + ((char *) header <= (char *) buffer + len - 12); + header = (struct multiboot_header *) ((grub_uint32_t *) header + MULTIBOOT_HEADER_ALIGN / 4)) + { +- if (header->magic == MULTIBOOT_HEADER_MAGIC ++ if (header->magic == MULTIBOOT2_HEADER_MAGIC + && !(header->magic + header->architecture + + header->header_length + header->checksum) +- && header->architecture == MULTIBOOT_ARCHITECTURE_CURRENT) ++ && header->architecture == MULTIBOOT2_ARCHITECTURE_CURRENT) + return header; + } + return NULL; + } + + grub_err_t +-grub_multiboot_load (grub_file_t file, const char *filename) ++grub_multiboot2_load (grub_file_t file, const char *filename) + { + grub_ssize_t len; + struct multiboot_header *header; +@@ -112,7 +112,7 @@ grub_multiboot_load (grub_file_t file, const char *filename) + grub_addr_t entry = 0, efi_entry = 0; + grub_uint32_t console_required = 0; + struct multiboot_header_tag_framebuffer *fbtag = NULL; +- int accepted_consoles = GRUB_MULTIBOOT_CONSOLE_EGA_TEXT; ++ int accepted_consoles = GRUB_MULTIBOOT2_CONSOLE_EGA_TEXT; + mbi_load_data_t mld; + + mld.mbi_ver = 2; +@@ -210,7 +210,7 @@ grub_multiboot_load (grub_file_t file, const char *filename) + case MULTIBOOT_HEADER_TAG_CONSOLE_FLAGS: + if (!(((struct multiboot_header_tag_console_flags *) tag)->console_flags + & MULTIBOOT_CONSOLE_FLAGS_EGA_TEXT_SUPPORTED)) +- accepted_consoles &= ~GRUB_MULTIBOOT_CONSOLE_EGA_TEXT; ++ accepted_consoles &= ~GRUB_MULTIBOOT2_CONSOLE_EGA_TEXT; + if (((struct multiboot_header_tag_console_flags *) tag)->console_flags + & MULTIBOOT_CONSOLE_FLAGS_CONSOLE_REQUIRED) + console_required = 1; +@@ -218,7 +218,7 @@ grub_multiboot_load (grub_file_t file, const char *filename) + + case MULTIBOOT_HEADER_TAG_FRAMEBUFFER: + fbtag = (struct multiboot_header_tag_framebuffer *) tag; +- accepted_consoles |= GRUB_MULTIBOOT_CONSOLE_FRAMEBUFFER; ++ accepted_consoles |= GRUB_MULTIBOOT2_CONSOLE_FRAMEBUFFER; + break; + + case MULTIBOOT_HEADER_TAG_RELOCATABLE: +@@ -295,13 +295,13 @@ grub_multiboot_load (grub_file_t file, const char *filename) + return grub_error (GRUB_ERR_BAD_OS, "invalid min/max address and/or load size"); + } + +- err = grub_relocator_alloc_chunk_align (grub_multiboot_relocator, &ch, ++ err = grub_relocator_alloc_chunk_align (grub_multiboot2_relocator, &ch, + mld.min_addr, mld.max_addr - code_size, + code_size, mld.align ? mld.align : 1, + mld.preference, keep_bs); + } + else +- err = grub_relocator_alloc_chunk_addr (grub_multiboot_relocator, ++ err = grub_relocator_alloc_chunk_addr (grub_multiboot2_relocator, + &ch, load_addr, code_size); + if (err) + { +@@ -343,7 +343,7 @@ grub_multiboot_load (grub_file_t file, const char *filename) + mld.file = file; + mld.filename = filename; + mld.avoid_efi_boot_services = keep_bs; +- err = grub_multiboot_load_elf (&mld); ++ err = grub_multiboot2_load_elf (&mld); + if (err) + { + grub_free (mld.buffer); +@@ -354,9 +354,9 @@ grub_multiboot_load (grub_file_t file, const char *filename) + load_base_addr = mld.load_base_addr; + + if (keep_bs && efi_entry_specified) +- grub_multiboot_payload_eip = efi_entry; ++ grub_multiboot2_payload_eip = efi_entry; + else if (entry_specified) +- grub_multiboot_payload_eip = entry; ++ grub_multiboot2_payload_eip = entry; + + if (mld.relocatable) + { +@@ -370,20 +370,20 @@ grub_multiboot_load (grub_file_t file, const char *filename) + * 64-bit int here. + */ + if (mld.load_base_addr >= mld.link_base_addr) +- grub_multiboot_payload_eip += mld.load_base_addr - mld.link_base_addr; ++ grub_multiboot2_payload_eip += mld.load_base_addr - mld.link_base_addr; + else +- grub_multiboot_payload_eip -= mld.link_base_addr - mld.load_base_addr; ++ grub_multiboot2_payload_eip -= mld.link_base_addr - mld.load_base_addr; + } + + if (fbtag) +- err = grub_multiboot_set_console (GRUB_MULTIBOOT_CONSOLE_FRAMEBUFFER, +- accepted_consoles, +- fbtag->width, fbtag->height, +- fbtag->depth, console_required); ++ err = grub_multiboot2_set_console (GRUB_MULTIBOOT2_CONSOLE_FRAMEBUFFER, ++ accepted_consoles, ++ fbtag->width, fbtag->height, ++ fbtag->depth, console_required); + else +- err = grub_multiboot_set_console (GRUB_MULTIBOOT_CONSOLE_EGA_TEXT, +- accepted_consoles, +- 0, 0, 0, console_required); ++ err = grub_multiboot2_set_console (GRUB_MULTIBOOT2_CONSOLE_EGA_TEXT, ++ accepted_consoles, ++ 0, 0, 0, console_required); + return err; + } + +@@ -459,7 +459,7 @@ net_size (void) + } + + static grub_size_t +-grub_multiboot_get_mbi_size (void) ++grub_multiboot2_get_mbi_size (void) + { + #ifdef GRUB_MACHINE_EFI + if (!keep_bs && !efi_mmap_size) +@@ -478,7 +478,7 @@ grub_multiboot_get_mbi_size (void) + + ALIGN_UP (sizeof (struct multiboot_tag_elf_sections), MULTIBOOT_TAG_ALIGN) + + ALIGN_UP (elf_sec_entsize * elf_sec_num, MULTIBOOT_TAG_ALIGN) + + ALIGN_UP ((sizeof (struct multiboot_tag_mmap) +- + grub_get_multiboot_mmap_count () ++ + grub_multiboot2_get_mmap_count () + * sizeof (struct multiboot_mmap_entry)), MULTIBOOT_TAG_ALIGN) + + ALIGN_UP (sizeof (struct multiboot_tag_framebuffer), MULTIBOOT_TAG_ALIGN) + + ALIGN_UP (sizeof (struct multiboot_tag_old_acpi) +@@ -522,7 +522,7 @@ grub_fill_multiboot_mmap (struct multiboot_tag_mmap *tag) + + tag->type = MULTIBOOT_TAG_TYPE_MMAP; + tag->size = sizeof (struct multiboot_tag_mmap) +- + sizeof (struct multiboot_mmap_entry) * grub_get_multiboot_mmap_count (); ++ + sizeof (struct multiboot_mmap_entry) * grub_multiboot2_get_mmap_count (); + tag->entry_size = sizeof (struct multiboot_mmap_entry); + tag->entry_version = 0; + +@@ -588,7 +588,7 @@ retrieve_video_parameters (grub_properly_aligned_t **ptrorig) + struct multiboot_tag_framebuffer *tag + = (struct multiboot_tag_framebuffer *) *ptrorig; + +- err = grub_multiboot_set_video_mode (); ++ err = grub_multiboot2_set_video_mode (); + if (err) + { + grub_print_error (); +@@ -731,7 +731,7 @@ retrieve_video_parameters (grub_properly_aligned_t **ptrorig) + } + + grub_err_t +-grub_multiboot_make_mbi (grub_uint32_t *target) ++grub_multiboot2_make_mbi (grub_uint32_t *target) + { + grub_properly_aligned_t *ptrorig; + grub_properly_aligned_t *mbistart; +@@ -739,11 +739,11 @@ grub_multiboot_make_mbi (grub_uint32_t *target) + grub_size_t bufsize; + grub_relocator_chunk_t ch; + +- bufsize = grub_multiboot_get_mbi_size (); ++ bufsize = grub_multiboot2_get_mbi_size (); + + COMPILE_TIME_ASSERT (MULTIBOOT_TAG_ALIGN % sizeof (grub_properly_aligned_t) == 0); + +- err = grub_relocator_alloc_chunk_align (grub_multiboot_relocator, &ch, ++ err = grub_relocator_alloc_chunk_align (grub_multiboot2_relocator, &ch, + 0, 0xffffffff - bufsize, + bufsize, MULTIBOOT_TAG_ALIGN, + GRUB_RELOCATOR_PREFERENCE_NONE, 1); +@@ -1039,7 +1039,7 @@ grub_multiboot_make_mbi (grub_uint32_t *target) + } + + void +-grub_multiboot_free_mbi (void) ++grub_multiboot2_free_mbi (void) + { + struct module *cur, *next; + +@@ -1061,11 +1061,11 @@ grub_multiboot_free_mbi (void) + } + + grub_err_t +-grub_multiboot_init_mbi (int argc, char *argv[]) ++grub_multiboot2_init_mbi (int argc, char *argv[]) + { + grub_ssize_t len = 0; + +- grub_multiboot_free_mbi (); ++ grub_multiboot2_free_mbi (); + + len = grub_loader_cmdline_size (argc, argv); + +@@ -1081,7 +1081,7 @@ grub_multiboot_init_mbi (int argc, char *argv[]) + } + + grub_err_t +-grub_multiboot_add_module (grub_addr_t start, grub_size_t size, ++grub_multiboot2_add_module (grub_addr_t start, grub_size_t size, + int argc, char *argv[]) + { + struct module *newmod; +@@ -1119,7 +1119,7 @@ grub_multiboot_add_module (grub_addr_t start, grub_size_t size, + } + + void +-grub_multiboot_set_bootdev (void) ++grub_multiboot2_set_bootdev (void) + { + grub_device_t dev; + diff --git a/grub-core/net/arp.c b/grub-core/net/arp.c index 4b68c4151a11db214602f74e111e7552801d8450..54306e3b16d25fe5d3bdf9502683822237be488d 100644 --- a/grub-core/net/arp.c @@ -3795,10 +8370,57 @@ index eeeee5580abea9798278ef85cf417366cf4f0e0a..cdf3590a3646ce4be0caf99cafedcbc3 return; diff --git a/grub-core/osdep/linux/ofpath.c b/grub-core/osdep/linux/ofpath.c -index a79682a5e31e1b4e77d9b99f55cc5a1fca9e159b..dce4e59d08184b4d712f38423612df1ff200b1d6 100644 +index a79682a5e31e1b4e77d9b99f55cc5a1fca9e159b..a6153d359546d237933cba0f300e7d59fdb1007b 100644 --- a/grub-core/osdep/linux/ofpath.c +++ b/grub-core/osdep/linux/ofpath.c -@@ -120,6 +120,8 @@ find_obppath (const char *sysfs_path_orig) +@@ -38,6 +38,46 @@ + #include + #include + ++#ifdef __sparc__ ++typedef enum ++ { ++ GRUB_OFPATH_SPARC_WWN_ADDR = 1, ++ GRUB_OFPATH_SPARC_TGT_LUN, ++ } ofpath_sparc_addressing; ++ ++struct ofpath_sparc_hba ++{ ++ grub_uint32_t device_id; ++ ofpath_sparc_addressing addressing; ++}; ++ ++static struct ofpath_sparc_hba sparc_lsi_hba[] = { ++ /* Rhea, Jasper 320, LSI53C1020/1030. */ ++ {0x30, GRUB_OFPATH_SPARC_TGT_LUN}, ++ /* SAS-1068E. */ ++ {0x50, GRUB_OFPATH_SPARC_TGT_LUN}, ++ /* SAS-1064E. */ ++ {0x56, GRUB_OFPATH_SPARC_TGT_LUN}, ++ /* Pandora SAS-1068E. */ ++ {0x58, GRUB_OFPATH_SPARC_TGT_LUN}, ++ /* Aspen, Invader, LSI SAS-3108. */ ++ {0x5d, GRUB_OFPATH_SPARC_TGT_LUN}, ++ /* Niwot, SAS 2108. */ ++ {0x79, GRUB_OFPATH_SPARC_TGT_LUN}, ++ /* Erie, Falcon, LSI SAS 2008. */ ++ {0x72, GRUB_OFPATH_SPARC_WWN_ADDR}, ++ /* LSI WarpDrive 6203. */ ++ {0x7e, GRUB_OFPATH_SPARC_WWN_ADDR}, ++ /* LSI SAS 2308. */ ++ {0x87, GRUB_OFPATH_SPARC_WWN_ADDR}, ++ /* LSI SAS 3008. */ ++ {0x97, GRUB_OFPATH_SPARC_WWN_ADDR}, ++ {0, 0} ++}; ++ ++static const int LSI_VENDOR_ID = 0x1000; ++#endif ++ + #ifdef OFPATH_STANDALONE + #define xmalloc malloc + void +@@ -120,6 +160,8 @@ find_obppath (const char *sysfs_path_orig) #endif fd = open(path, O_RDONLY); @@ -3807,7 +8429,7 @@ index a79682a5e31e1b4e77d9b99f55cc5a1fca9e159b..dce4e59d08184b4d712f38423612df1f if (fd < 0 || fstat (fd, &st) < 0) { if (fd >= 0) -@@ -127,6 +129,7 @@ find_obppath (const char *sysfs_path_orig) +@@ -127,6 +169,7 @@ find_obppath (const char *sysfs_path_orig) snprintf(path, path_size, "%s/devspec", sysfs_path); fd = open(path, O_RDONLY); } @@ -3815,6 +8437,277 @@ index a79682a5e31e1b4e77d9b99f55cc5a1fca9e159b..dce4e59d08184b4d712f38423612df1f if (fd < 0 || fstat (fd, &st) < 0) { +@@ -307,6 +350,55 @@ of_path_of_ide(const char *sys_devname __attribute__((unused)), const char *devi + return ret; + } + ++#ifdef __sparc__ ++static char * ++of_path_of_nvme(const char *sys_devname __attribute__((unused)), ++ const char *device, ++ const char *devnode __attribute__((unused)), ++ const char *devicenode) ++{ ++ char *sysfs_path, *of_path, disk[MAX_DISK_CAT]; ++ const char *digit_string, *part_end; ++ ++ digit_string = trailing_digits (device); ++ part_end = devicenode + strlen (devicenode) - 1; ++ ++ if ((*digit_string != '\0') && (*part_end == 'p')) ++ { ++ /* We have a partition number, strip it off. */ ++ int part; ++ char *nvmedev, *end; ++ ++ nvmedev = strdup (devicenode); ++ ++ if (!nvmedev) ++ return NULL; ++ ++ end = nvmedev + strlen (nvmedev) - 1; ++ /* Remove the p. */ ++ *end = '\0'; ++ sscanf (digit_string, "%d", &part); ++ snprintf (disk, sizeof (disk), "/disk@1:%c", 'a' + (part - 1)); ++ sysfs_path = block_device_get_sysfs_path_and_link (nvmedev); ++ free (nvmedev); ++ } ++ else ++ { ++ /* We do not have the parition. */ ++ snprintf (disk, sizeof (disk), "/disk@1"); ++ sysfs_path = block_device_get_sysfs_path_and_link (device); ++ } ++ ++ of_path = find_obppath (sysfs_path); ++ ++ if (of_path) ++ strcat (of_path, disk); ++ ++ free (sysfs_path); ++ return of_path; ++} ++#endif ++ + static int + vendor_is_ATA(const char *path) + { +@@ -335,6 +427,64 @@ vendor_is_ATA(const char *path) + return (memcmp(bufcont, "ATA", 3) == 0); + } + ++#ifdef __sparc__ ++static void ++check_hba_identifiers (const char *sysfs_path, int *vendor, int *device_id) ++{ ++ char *ed = strstr (sysfs_path, "host"); ++ size_t path_size; ++ char *p, *path; ++ char buf[8]; ++ int fd; ++ ++ if (!ed) ++ return; ++ ++ p = xstrdup (sysfs_path); ++ ed = strstr (p, "host"); ++ ++ *ed = '\0'; ++ ++ path_size = (strlen (p) + sizeof ("vendor")); ++ path = xmalloc (path_size); ++ ++ if (!path) ++ goto out; ++ ++ snprintf (path, path_size, "%svendor", p); ++ fd = open (path, O_RDONLY); ++ ++ if (fd < 0) ++ goto out; ++ ++ memset (buf, 0, sizeof (buf)); ++ ++ if (read (fd, buf, sizeof (buf) - 1) < 0) ++ goto out; ++ ++ close (fd); ++ sscanf (buf, "%x", vendor); ++ ++ snprintf (path, path_size, "%sdevice", p); ++ fd = open (path, O_RDONLY); ++ ++ if (fd < 0) ++ goto out; ++ ++ memset (buf, 0, sizeof (buf)); ++ ++ if (read (fd, buf, sizeof (buf) - 1) < 0) ++ goto out; ++ ++ close (fd); ++ sscanf (buf, "%x", device_id); ++ ++ out: ++ free (path); ++ free (p); ++} ++#endif ++ + static void + check_sas (const char *sysfs_path, int *tgt, unsigned long int *sas_address) + { +@@ -396,7 +546,7 @@ of_path_of_scsi(const char *sys_devname __attribute__((unused)), const char *dev + { + const char *p, *digit_string, *disk_name; + int host, bus, tgt, lun; +- unsigned long int sas_address; ++ unsigned long int sas_address = 0; + char *sysfs_path, disk[MAX_DISK_CAT - sizeof ("/fp@0,0")]; + char *of_path; + +@@ -413,9 +563,8 @@ of_path_of_scsi(const char *sys_devname __attribute__((unused)), const char *dev + } + + of_path = find_obppath(sysfs_path); +- free (sysfs_path); + if (!of_path) +- return NULL; ++ goto out; + + if (strstr (of_path, "qlc")) + strcat (of_path, "/fp@0,0"); +@@ -444,6 +593,46 @@ of_path_of_scsi(const char *sys_devname __attribute__((unused)), const char *dev + } + else + { ++#ifdef __sparc__ ++ ofpath_sparc_addressing addressing = GRUB_OFPATH_SPARC_TGT_LUN; ++ int vendor = 0, device_id = 0; ++ char *optr = disk; ++ ++ check_hba_identifiers (sysfs_path, &vendor, &device_id); ++ ++ if (vendor == LSI_VENDOR_ID) ++ { ++ struct ofpath_sparc_hba *lsi_hba; ++ ++ /* ++ * Over time different OF addressing schemes have been supported. ++ * There is no generic addressing scheme that works across ++ * every HBA. ++ */ ++ for (lsi_hba = sparc_lsi_hba; lsi_hba->device_id; lsi_hba++) ++ if (lsi_hba->device_id == device_id) ++ { ++ addressing = lsi_hba->addressing; ++ break; ++ } ++ } ++ ++ if (addressing == GRUB_OFPATH_SPARC_WWN_ADDR) ++ optr += snprintf (disk, sizeof (disk), "/%s@w%lx,%x", disk_name, ++ sas_address, lun); ++ else ++ optr += snprintf (disk, sizeof (disk), "/%s@%x,%x", disk_name, tgt, ++ lun); ++ ++ if (*digit_string != '\0') ++ { ++ int part; ++ ++ sscanf (digit_string, "%d", &part); ++ snprintf (optr, sizeof (disk) - (optr - disk - 1), ":%c", 'a' ++ + (part - 1)); ++ } ++#else + if (lun == 0) + { + int sas_id = 0; +@@ -491,8 +680,12 @@ of_path_of_scsi(const char *sys_devname __attribute__((unused)), const char *dev + } + free (lunstr); + } ++#endif + } + strcat(of_path, disk); ++ ++ out: ++ free (sysfs_path); + return of_path; + } + +@@ -537,6 +730,11 @@ grub_util_devname_to_ofpath (const char *sys_devname) + /* All the models I've seen have a devalias "floppy". + New models have no floppy at all. */ + ofpath = xstrdup ("floppy"); ++#ifdef __sparc__ ++ else if (device[0] == 'n' && device[1] == 'v' && device[2] == 'm' ++ && device[3] == 'e') ++ ofpath = of_path_of_nvme (name_buf, device, devnode, devicenode); ++#endif + else + { + grub_util_warn (_("unknown device type %s"), device); +diff --git a/grub-core/osdep/unix/exec.c b/grub-core/osdep/unix/exec.c +index 935ff120ebe117f7492715813789db364ef1b12f..db3259f6504d5d5958cfa330bfd4a8b12b64f970 100644 +--- a/grub-core/osdep/unix/exec.c ++++ b/grub-core/osdep/unix/exec.c +@@ -99,7 +99,7 @@ grub_util_exec_redirect_all (const char *const *argv, const char *stdin_file, + { + fd = open (stdin_file, O_RDONLY); + if (fd < 0) +- exit (127); ++ _exit (127); + dup2 (fd, STDIN_FILENO); + close (fd); + } +@@ -108,7 +108,7 @@ grub_util_exec_redirect_all (const char *const *argv, const char *stdin_file, + { + fd = open (stdout_file, O_WRONLY | O_CREAT, 0700); + if (fd < 0) +- exit (127); ++ _exit (127); + dup2 (fd, STDOUT_FILENO); + close (fd); + } +@@ -117,7 +117,7 @@ grub_util_exec_redirect_all (const char *const *argv, const char *stdin_file, + { + fd = open (stderr_file, O_WRONLY | O_CREAT, 0700); + if (fd < 0) +- exit (127); ++ _exit (127); + dup2 (fd, STDERR_FILENO); + close (fd); + } +@@ -126,7 +126,7 @@ grub_util_exec_redirect_all (const char *const *argv, const char *stdin_file, + setenv ("LC_ALL", "C", 1); + + execvp ((char *) argv[0], (char **) argv); +- exit (127); ++ _exit (127); + } + waitpid (pid, &status, 0); + if (!WIFEXITED (status)) +diff --git a/grub-core/osdep/unix/getroot.c b/grub-core/osdep/unix/getroot.c +index 4bf37b027be660a14994fb316f08dd478490c4e2..3046e22cc012d1012add87931a018043e3ecc714 100644 +--- a/grub-core/osdep/unix/getroot.c ++++ b/grub-core/osdep/unix/getroot.c +@@ -428,8 +428,11 @@ grub_find_device (const char *dir, dev_t dev) + { + #ifdef __linux__ + /* Skip device names like /dev/dm-0, which are short-hand aliases +- to more descriptive device names, e.g. those under /dev/mapper */ +- if (ent->d_name[0] == 'd' && ++ to more descriptive device names, e.g. those under /dev/mapper. ++ Also, don't skip devices which names start with dm-[0-9] in ++ directories below /dev, e.g. /dev/mapper/dm-0-luks. */ ++ if (strcmp (dir, "/dev") == 0 && ++ ent->d_name[0] == 'd' && + ent->d_name[1] == 'm' && + ent->d_name[2] == '-' && + ent->d_name[3] >= '0' && diff --git a/grub-core/osdep/unix/hostdisk.c b/grub-core/osdep/unix/hostdisk.c index 2a8c5882e3d10b98bc305a116f8cca06acfe89f5..5450cf4166e04c2cfab806e93dfa63c6abdb9698 100644 --- a/grub-core/osdep/unix/hostdisk.c @@ -3839,6 +8732,118 @@ index 2a8c5882e3d10b98bc305a116f8cca06acfe89f5..5450cf4166e04c2cfab806e93dfa63c6 return 0; } +diff --git a/grub-core/osdep/unix/platform.c b/grub-core/osdep/unix/platform.c +index a3fcfcacaa814d3ab62104f0dd406ef0c2163613..ca448bc11a05b9e0c6203a799ff62ab1dd75274f 100644 +--- a/grub-core/osdep/unix/platform.c ++++ b/grub-core/osdep/unix/platform.c +@@ -78,19 +78,20 @@ get_ofpathname (const char *dev) + dev); + } + +-static void ++static int + grub_install_remove_efi_entries_by_distributor (const char *efi_distributor) + { + int fd; + pid_t pid = grub_util_exec_pipe ((const char * []){ "efibootmgr", NULL }, &fd); + char *line = NULL; + size_t len = 0; ++ int rc; + + if (!pid) + { + grub_util_warn (_("Unable to open stream from %s: %s"), + "efibootmgr", strerror (errno)); +- return; ++ return errno; + } + + FILE *fp = fdopen (fd, "r"); +@@ -98,7 +99,7 @@ grub_install_remove_efi_entries_by_distributor (const char *efi_distributor) + { + grub_util_warn (_("Unable to open stream from %s: %s"), + "efibootmgr", strerror (errno)); +- return; ++ return errno; + } + + line = xmalloc (80); +@@ -119,23 +120,25 @@ grub_install_remove_efi_entries_by_distributor (const char *efi_distributor) + bootnum = line + sizeof ("Boot") - 1; + bootnum[4] = '\0'; + if (!verbosity) +- grub_util_exec ((const char * []){ "efibootmgr", "-q", ++ rc = grub_util_exec ((const char * []){ "efibootmgr", "-q", + "-b", bootnum, "-B", NULL }); + else +- grub_util_exec ((const char * []){ "efibootmgr", ++ rc = grub_util_exec ((const char * []){ "efibootmgr", + "-b", bootnum, "-B", NULL }); + } + + free (line); ++ return rc; + } + +-void ++int + grub_install_register_efi (grub_device_t efidir_grub_dev, + const char *efifile_path, + const char *efi_distributor) + { + const char * efidir_disk; + int efidir_part; ++ int ret; + efidir_disk = grub_util_biosdisk_get_osdev (efidir_grub_dev->disk); + efidir_part = efidir_grub_dev->disk->partition ? efidir_grub_dev->disk->partition->number + 1 : 1; + +@@ -151,23 +154,26 @@ grub_install_register_efi (grub_device_t efidir_grub_dev, + grub_util_exec ((const char * []){ "modprobe", "-q", "efivars", NULL }); + #endif + /* Delete old entries from the same distributor. */ +- grub_install_remove_efi_entries_by_distributor (efi_distributor); ++ ret = grub_install_remove_efi_entries_by_distributor (efi_distributor); ++ if (ret) ++ return ret; + + char *efidir_part_str = xasprintf ("%d", efidir_part); + + if (!verbosity) +- grub_util_exec ((const char * []){ "efibootmgr", "-q", ++ ret = grub_util_exec ((const char * []){ "efibootmgr", "-q", + "-c", "-d", efidir_disk, + "-p", efidir_part_str, "-w", + "-L", efi_distributor, "-l", + efifile_path, NULL }); + else +- grub_util_exec ((const char * []){ "efibootmgr", ++ ret = grub_util_exec ((const char * []){ "efibootmgr", + "-c", "-d", efidir_disk, + "-p", efidir_part_str, "-w", + "-L", efi_distributor, "-l", + efifile_path, NULL }); + free (efidir_part_str); ++ return ret; + } + + void +diff --git a/grub-core/partmap/gpt.c b/grub-core/partmap/gpt.c +index 83bcba7791421825da6922a7ee346f4fd5fcd7a4..103f6796f39f38209b0f554842aa6697faa5df2f 100644 +--- a/grub-core/partmap/gpt.c ++++ b/grub-core/partmap/gpt.c +@@ -33,10 +33,10 @@ static grub_uint8_t grub_gpt_magic[8] = + 0x45, 0x46, 0x49, 0x20, 0x50, 0x41, 0x52, 0x54 + }; + +-static const grub_gpt_part_type_t grub_gpt_partition_type_empty = GRUB_GPT_PARTITION_TYPE_EMPTY; ++static const grub_gpt_part_guid_t grub_gpt_partition_type_empty = GRUB_GPT_PARTITION_TYPE_EMPTY; + + #ifdef GRUB_UTIL +-static const grub_gpt_part_type_t grub_gpt_partition_type_bios_boot = GRUB_GPT_PARTITION_TYPE_BIOS_BOOT; ++static const grub_gpt_part_guid_t grub_gpt_partition_type_bios_boot = GRUB_GPT_PARTITION_TYPE_BIOS_BOOT; + #endif + + /* 512 << 7 = 65536 byte sectors. */ diff --git a/grub-core/term/arm/cros.c b/grub-core/term/arm/cros.c new file mode 100644 index 0000000000000000000000000000000000000000..1ff9f8ccfb8270884ba962a05ca99df4c6ed1f41 @@ -4974,7 +9979,7 @@ index b4ea9ff7e637f59c653b86cea79d4d664c78af84..f0a986eb176aef6c4fe3f5a65c646756 return GRUB_ERR_NONE; } diff --git a/grub-core/term/efi/console.c b/grub-core/term/efi/console.c -index 7d31095b1ef8d01886a0516343f2e5c5601265dd..02f64ea744107fbca662c2fab1fd15555f2d7724 100644 +index 7d31095b1ef8d01886a0516343f2e5c5601265dd..4840cc59d3f68944fb2ca6b40cc6488e74b5da02 100644 --- a/grub-core/term/efi/console.c +++ b/grub-core/term/efi/console.c @@ -104,7 +104,7 @@ const unsigned efi_codes[] = @@ -4986,6 +9991,16 @@ index 7d31095b1ef8d01886a0516343f2e5c5601265dd..02f64ea744107fbca662c2fab1fd1555 }; static int +@@ -122,6 +122,9 @@ grub_efi_translate_key (grub_efi_input_key_t key) + else + return key.unicode_char; + } ++ /* Some devices send enter with scan_code 0x0d (F3) and unicode_char 0x0d. */ ++ else if (key.scan_code == '\r' && key.unicode_char == '\r') ++ return key.unicode_char; + else if (key.scan_code < ARRAY_SIZE (efi_codes)) + return efi_codes[key.scan_code]; + diff --git a/grub-core/term/i386/coreboot/cbmemc.c b/grub-core/term/i386/coreboot/cbmemc.c index 25e64a05c03286f644b39398e9e68cbdde333510..cea9b84315bdaf3b1238acc915f35ba6148ffbcf 100644 --- a/grub-core/term/i386/coreboot/cbmemc.c @@ -5594,8 +10609,49 @@ index dede0c37ea3e8a8948cd6535d26d008e117206bc..9af81fa5b01b63677d97ba9a242e6008 #include struct grub_linuxbios_table_framebuffer *grub_video_coreboot_fbtable; +diff --git a/grub-core/video/efi_uga.c b/grub-core/video/efi_uga.c +index 464ede874daff480fb4199927cb30d48f0558e8b..044af1d20d38f08e3b5c5dcec4281c0b452cf8ea 100644 +--- a/grub-core/video/efi_uga.c ++++ b/grub-core/video/efi_uga.c +@@ -94,10 +94,19 @@ static int + find_card (grub_pci_device_t dev, grub_pci_id_t pciid, void *data) + { + struct find_framebuf_ctx *ctx = data; +- grub_pci_address_t addr; ++ grub_pci_address_t addr, rcaddr; ++ grub_uint32_t subclass; + + addr = grub_pci_make_address (dev, GRUB_PCI_REG_CLASS); +- if (grub_pci_read (addr) >> 24 == 0x3) ++ subclass = (grub_pci_read (addr) >> 16) & 0xffff; ++ ++ if (subclass != GRUB_PCI_CLASS_SUBCLASS_VGA) ++ return 0; ++ ++ /* Enable MEM address spaces */ ++ rcaddr = grub_pci_make_address (dev, GRUB_PCI_REG_COMMAND); ++ grub_pci_write_word (rcaddr, grub_pci_read_word (rcaddr) | GRUB_PCI_COMMAND_MEM_ENABLED); ++ + { + int i; + +diff --git a/tests/printf_unit_test.c b/tests/printf_unit_test.c +index d7b12c6dbee6e84ace9d9f81d476622194810b26..098c29fd9ce2d28a5b83b74afc0f9e40b7c401ec 100644 +--- a/tests/printf_unit_test.c ++++ b/tests/printf_unit_test.c +@@ -23,6 +23,10 @@ + + #define MSG "printf test failed: %s, %s", real, expected + ++#if defined(__GNUC__) && __GNUC__ >= 7 ++#pragma GCC diagnostic ignored "-Wformat-truncation=" ++#endif ++ + static void + printf_test (void) + { diff --git a/util/grub-install-common.c b/util/grub-install-common.c -index 452b230daedc3db0296cab014e89ddacf1c21347..9e3e358c96ae20f2fecb3d70645a081d8ffd12de 100644 +index 452b230daedc3db0296cab014e89ddacf1c21347..0a2e24a79f11916527650d124e38c6184c4ceb93 100644 --- a/util/grub-install-common.c +++ b/util/grub-install-common.c @@ -73,6 +73,7 @@ grub_install_help_filter (int key, const char *text, @@ -5639,7 +10695,75 @@ index 452b230daedc3db0296cab014e89ddacf1c21347..9e3e358c96ae20f2fecb3d70645a081d while (dc--) grub_install_pop_module (); } -@@ -666,6 +673,7 @@ static struct +@@ -585,6 +592,7 @@ copy_all (const char *srcd, + grub_util_fd_closedir (d); + } + ++#if !(defined (GRUB_UTIL) && defined(ENABLE_NLS) && ENABLE_NLS) + static const char * + get_localedir (void) + { +@@ -639,6 +647,59 @@ copy_locales (const char *dstd) + } + grub_util_fd_closedir (d); + } ++#endif ++ ++static void ++grub_install_copy_nls(const char *src __attribute__ ((unused)), ++ const char *dst __attribute__ ((unused))) ++{ ++#if !(defined (GRUB_UTIL) && defined(ENABLE_NLS) && ENABLE_NLS) ++ char *dst_locale; ++ ++ dst_locale = grub_util_path_concat (2, dst, "locale"); ++ grub_install_mkdir_p (dst_locale); ++ clean_grub_dir (dst_locale); ++ ++ if (install_locales.is_default) ++ { ++ char *srcd = grub_util_path_concat (2, src, "po"); ++ copy_by_ext (srcd, dst_locale, ".mo", 0); ++ copy_locales (dst_locale); ++ free (srcd); ++ } ++ else ++ { ++ size_t i; ++ const char *locale_dir = get_localedir (); ++ ++ for (i = 0; i < install_locales.n_entries; i++) ++ { ++ char *srcf = grub_util_path_concat_ext (3, src, "po", ++ install_locales.entries[i], ++ ".mo"); ++ char *dstf = grub_util_path_concat_ext (2, dst_locale, ++ install_locales.entries[i], ++ ".mo"); ++ if (grub_install_compress_file (srcf, dstf, 0)) ++ { ++ free (srcf); ++ free (dstf); ++ continue; ++ } ++ free (srcf); ++ srcf = grub_util_path_concat_ext (4, locale_dir, ++ install_locales.entries[i], ++ "LC_MESSAGES", PACKAGE, ".mo"); ++ if (grub_install_compress_file (srcf, dstf, 0) == 0) ++ grub_util_error (_("cannot find locale `%s'"), ++ install_locales.entries[i]); ++ free (srcf); ++ free (dstf); ++ } ++ } ++ free (dst_locale); ++#endif ++} + + static struct + { +@@ -666,6 +727,7 @@ static struct [GRUB_INSTALL_PLATFORM_ARM_EFI] = { "arm", "efi" }, [GRUB_INSTALL_PLATFORM_ARM64_EFI] = { "arm64", "efi" }, [GRUB_INSTALL_PLATFORM_ARM_UBOOT] = { "arm", "uboot" }, @@ -5647,8 +10771,92 @@ index 452b230daedc3db0296cab014e89ddacf1c21347..9e3e358c96ae20f2fecb3d70645a081d }; char * +@@ -723,7 +785,7 @@ grub_install_copy_files (const char *src, + const char *dst, + enum grub_install_plat platid) + { +- char *dst_platform, *dst_locale, *dst_fonts; ++ char *dst_platform, *dst_fonts; + const char *pkgdatadir = grub_util_get_pkgdatadir (); + char *themes_dir; + +@@ -734,13 +796,12 @@ grub_install_copy_files (const char *src, + dst_platform = grub_util_path_concat (2, dst, platform); + free (platform); + } +- dst_locale = grub_util_path_concat (2, dst, "locale"); + dst_fonts = grub_util_path_concat (2, dst, "fonts"); + grub_install_mkdir_p (dst_platform); +- grub_install_mkdir_p (dst_locale); + clean_grub_dir (dst); + clean_grub_dir (dst_platform); +- clean_grub_dir (dst_locale); ++ ++ grub_install_copy_nls(src, dst); + + if (install_modules.is_default) + copy_by_ext (src, dst_platform, ".mod", 1); +@@ -789,50 +850,6 @@ grub_install_copy_files (const char *src, + free (dstf); + } + +- if (install_locales.is_default) +- { +- char *srcd = grub_util_path_concat (2, src, "po"); +- copy_by_ext (srcd, dst_locale, ".mo", 0); +- copy_locales (dst_locale); +- free (srcd); +- } +- else +- { +- const char *locale_dir = get_localedir (); +- +- for (i = 0; i < install_locales.n_entries; i++) +- { +- char *srcf = grub_util_path_concat_ext (3, src, +- "po", +- install_locales.entries[i], +- ".mo"); +- char *dstf = grub_util_path_concat_ext (2, dst_locale, +- install_locales.entries[i], +- ".mo"); +- if (grub_install_compress_file (srcf, dstf, 0)) +- { +- free (srcf); +- free (dstf); +- continue; +- } +- free (srcf); +- srcf = grub_util_path_concat_ext (4, +- locale_dir, +- install_locales.entries[i], +- "LC_MESSAGES", +- PACKAGE, +- ".mo"); +- if (grub_install_compress_file (srcf, dstf, 0)) +- { +- free (srcf); +- free (dstf); +- continue; +- } +- grub_util_error (_("cannot find locale `%s'"), +- install_locales.entries[i]); +- } +- } +- + if (install_themes.is_default) + { + install_themes.is_default = 0; +@@ -895,7 +912,6 @@ grub_install_copy_files (const char *src, + } + + free (dst_platform); +- free (dst_locale); + free (dst_fonts); + } + diff --git a/util/grub-install.c b/util/grub-install.c -index 9074d3e9e52d2a2e215a10b2f8b3cf627ca80db3..75e3e5ba6f0738c89b4ee490d4ec630ce97fea4f 100644 +index 9074d3e9e52d2a2e215a10b2f8b3cf627ca80db3..78d0138cb0a8c891f8140f1804d68d275eb690f6 100644 --- a/util/grub-install.c +++ b/util/grub-install.c @@ -486,6 +486,7 @@ have_bootdev (enum grub_install_plat pl) @@ -5659,6 +10867,15 @@ index 9074d3e9e52d2a2e215a10b2f8b3cf627ca80db3..75e3e5ba6f0738c89b4ee490d4ec630c case GRUB_INSTALL_PLATFORM_I386_MULTIBOOT: case GRUB_INSTALL_PLATFORM_MIPSEL_QEMU_MIPS: case GRUB_INSTALL_PLATFORM_MIPS_QEMU_MIPS: +@@ -713,7 +714,7 @@ is_prep_partition (grub_device_t dev) + if (grub_disk_read (dev->disk, p->offset, p->index, + sizeof (gptdata), &gptdata) == 0) + { +- const grub_gpt_part_type_t template = { ++ const grub_gpt_part_guid_t template = { + grub_cpu_to_le32_compile_time (0x9e1a2d38), + grub_cpu_to_le16_compile_time (0xc612), + grub_cpu_to_le16_compile_time (0x4316), @@ -911,6 +912,7 @@ main (int argc, char *argv[]) case GRUB_INSTALL_PLATFORM_I386_QEMU: @@ -5683,7 +10900,15 @@ index 9074d3e9e52d2a2e215a10b2f8b3cf627ca80db3..75e3e5ba6f0738c89b4ee490d4ec630c case GRUB_INSTALL_PLATFORM_I386_MULTIBOOT: case GRUB_INSTALL_PLATFORM_MIPSEL_QEMU_MIPS: case GRUB_INSTALL_PLATFORM_MIPS_QEMU_MIPS: -@@ -1542,6 +1546,7 @@ main (int argc, char *argv[]) +@@ -1468,6 +1472,7 @@ main (int argc, char *argv[]) + { + grub_util_fprint_full_disk_name (load_cfg_f, g, dev); + fprintf (load_cfg_f, " "); ++ free (g); + } + if (dev != grub_dev) + grub_device_close (dev); +@@ -1542,6 +1547,7 @@ main (int argc, char *argv[]) break; case GRUB_INSTALL_PLATFORM_I386_COREBOOT: @@ -5691,7 +10916,7 @@ index 9074d3e9e52d2a2e215a10b2f8b3cf627ca80db3..75e3e5ba6f0738c89b4ee490d4ec630c case GRUB_INSTALL_PLATFORM_I386_MULTIBOOT: case GRUB_INSTALL_PLATFORM_I386_IEEE1275: case GRUB_INSTALL_PLATFORM_POWERPC_IEEE1275: -@@ -1629,6 +1634,7 @@ main (int argc, char *argv[]) +@@ -1629,6 +1635,7 @@ main (int argc, char *argv[]) case GRUB_INSTALL_PLATFORM_MIPSEL_QEMU_MIPS: case GRUB_INSTALL_PLATFORM_MIPS_QEMU_MIPS: case GRUB_INSTALL_PLATFORM_I386_COREBOOT: @@ -5699,7 +10924,46 @@ index 9074d3e9e52d2a2e215a10b2f8b3cf627ca80db3..75e3e5ba6f0738c89b4ee490d4ec630c case GRUB_INSTALL_PLATFORM_I386_MULTIBOOT: case GRUB_INSTALL_PLATFORM_I386_PC: case GRUB_INSTALL_PLATFORM_MIPSEL_ARC: -@@ -1889,6 +1895,7 @@ main (int argc, char *argv[]) +@@ -1841,9 +1848,13 @@ main (int argc, char *argv[]) + if (!removable && update_nvram) + { + /* Try to make this image bootable using the EFI Boot Manager, if available. */ +- grub_install_register_efi (efidir_grub_dev, +- "\\System\\Library\\CoreServices", +- efi_distributor); ++ int ret; ++ ret = grub_install_register_efi (efidir_grub_dev, ++ "\\System\\Library\\CoreServices", ++ efi_distributor); ++ if (ret) ++ grub_util_error (_("efibootmgr failed to register the boot entry: %s"), ++ strerror (ret)); + } + + grub_device_close (ins_dev); +@@ -1864,6 +1875,7 @@ main (int argc, char *argv[]) + { + char * efifile_path; + char * part; ++ int ret; + + /* Try to make this image bootable using the EFI Boot Manager, if available. */ + if (!efi_distributor || efi_distributor[0] == '\0') +@@ -1880,8 +1892,11 @@ main (int argc, char *argv[]) + efidir_grub_dev->disk->name, + (part ? ",": ""), (part ? : "")); + grub_free (part); +- grub_install_register_efi (efidir_grub_dev, +- efifile_path, efi_distributor); ++ ret = grub_install_register_efi (efidir_grub_dev, ++ efifile_path, efi_distributor); ++ if (ret) ++ grub_util_error (_("efibootmgr failed to register the boot entry: %s"), ++ strerror (ret)); + } + break; + +@@ -1889,6 +1904,7 @@ main (int argc, char *argv[]) case GRUB_INSTALL_PLATFORM_MIPSEL_QEMU_MIPS: case GRUB_INSTALL_PLATFORM_MIPS_QEMU_MIPS: case GRUB_INSTALL_PLATFORM_I386_COREBOOT: @@ -5750,11 +11014,63 @@ index aba19d21b9a774e63ad49f166554d90f8c667e36..98d24cc06ea57b88a4f02f38f177f44e grub_util_file_sync (fp); fclose (fp); +diff --git a/util/grub-mkimage32.c b/util/grub-mkimage32.c +index 9b31397bc40b95b69a1edc4f2d4c4b5d6eaa63cd..1f2ccccd225bbbb32e7e38801ddafeb90d9a69bb 100644 +--- a/util/grub-mkimage32.c ++++ b/util/grub-mkimage32.c +@@ -19,4 +19,6 @@ + # define ELF_ST_TYPE(val) ELF32_ST_TYPE(val) + #define XEN_NOTE_SIZE 132 + ++#ifndef GRUB_MKIMAGEXX + #include "grub-mkimagexx.c" ++#endif +diff --git a/util/grub-mkimage64.c b/util/grub-mkimage64.c +index d83345924705353b3c20a1e4dd087371ec5383ec..4ff72a625e0030d05cee0675a481b0803cda081e 100644 +--- a/util/grub-mkimage64.c ++++ b/util/grub-mkimage64.c +@@ -19,4 +19,6 @@ + # define ELF_ST_TYPE(val) ELF64_ST_TYPE(val) + #define XEN_NOTE_SIZE 120 + ++#ifndef GRUB_MKIMAGEXX + #include "grub-mkimagexx.c" ++#endif diff --git a/util/grub-mkimagexx.c b/util/grub-mkimagexx.c -index e63f148e48cf6f66852b15063405f81371d95ae9..a2bb05439f0c5e8dcebc241f38e787ab1fdf4fb7 100644 +index e63f148e48cf6f66852b15063405f81371d95ae9..a483c674c4908bca02ecda73de78d04456667a37 100644 --- a/util/grub-mkimagexx.c +++ b/util/grub-mkimagexx.c -@@ -87,7 +87,8 @@ struct fixup_block_list +@@ -50,6 +50,15 @@ + + #pragma GCC diagnostic ignored "-Wcast-align" + ++#define GRUB_MKIMAGEXX ++#if !defined(MKIMAGE_ELF32) && !defined(MKIMAGE_ELF64) ++#if __SIZEOF_POINTER__ == 8 ++#include "grub-mkimage64.c" ++#else ++#include "grub-mkimage32.c" ++#endif ++#endif ++ + /* These structures are defined according to the CHRP binding to IEEE1275, + "Client Program Format" section. */ + +@@ -84,10 +93,22 @@ struct fixup_block_list + + #define ALIGN_ADDR(x) (ALIGN_UP((x), image_target->voidp_sizeof)) + ++struct section_metadata ++{ ++ Elf_Half num_sections; ++ Elf_Shdr *sections; ++ Elf_Addr *addrs; ++ Elf_Addr *vaddrs; ++ Elf_Half section_entsize; ++ Elf_Shdr *symtab; ++ const char *strtab; ++}; ++ static int is_relocatable (const struct grub_install_image_target_desc *image_target) { @@ -5764,7 +11080,7 @@ index e63f148e48cf6f66852b15063405f81371d95ae9..a2bb05439f0c5e8dcebc241f38e787ab } #ifdef MKIMAGE_ELF32 -@@ -185,8 +186,8 @@ grub_arm_reloc_jump24 (grub_uint32_t *target, Elf32_Addr sym_addr) +@@ -185,8 +206,8 @@ grub_arm_reloc_jump24 (grub_uint32_t *target, Elf32_Addr sym_addr) void SUFFIX (grub_mkimage_generate_elf) (const struct grub_install_image_target_desc *image_target, int note, char **core_img, size_t *core_size, @@ -5775,7 +11091,7 @@ index e63f148e48cf6f66852b15063405f81371d95ae9..a2bb05439f0c5e8dcebc241f38e787ab { char *elf_img; size_t program_size; -@@ -214,7 +215,7 @@ SUFFIX (grub_mkimage_generate_elf) (const struct grub_install_image_target_desc +@@ -214,7 +235,7 @@ SUFFIX (grub_mkimage_generate_elf) (const struct grub_install_image_target_desc footer_size += XEN_NOTE_SIZE; } header_size = ALIGN_UP (sizeof (*ehdr) + phnum * sizeof (*phdr) @@ -5784,7 +11100,7 @@ index e63f148e48cf6f66852b15063405f81371d95ae9..a2bb05439f0c5e8dcebc241f38e787ab program_size = ALIGN_ADDR (*core_size); -@@ -258,7 +259,8 @@ SUFFIX (grub_mkimage_generate_elf) (const struct grub_install_image_target_desc +@@ -258,7 +279,8 @@ SUFFIX (grub_mkimage_generate_elf) (const struct grub_install_image_target_desc ehdr->e_entry = grub_host_to_target32 (target_addr); phdr->p_vaddr = grub_host_to_target32 (target_addr); phdr->p_paddr = grub_host_to_target32 (target_addr); @@ -5794,7 +11110,7 @@ index e63f148e48cf6f66852b15063405f81371d95ae9..a2bb05439f0c5e8dcebc241f38e787ab if (image_target->id == IMAGE_LOONGSON_ELF) ehdr->e_flags = grub_host_to_target32 (0x1000 | EF_MIPS_NOREORDER | EF_MIPS_PIC | EF_MIPS_CPIC); -@@ -272,27 +274,34 @@ SUFFIX (grub_mkimage_generate_elf) (const struct grub_install_image_target_desc +@@ -272,27 +294,34 @@ SUFFIX (grub_mkimage_generate_elf) (const struct grub_install_image_target_desc else { grub_uint32_t target_addr_mods; @@ -5836,7 +11152,7 @@ index e63f148e48cf6f66852b15063405f81371d95ae9..a2bb05439f0c5e8dcebc241f38e787ab + image_target->mod_gap, image_target->mod_align); phdr->p_vaddr = grub_host_to_target_addr (target_addr_mods); -@@ -434,7 +443,7 @@ SUFFIX (grub_mkimage_generate_elf) (const struct grub_install_image_target_desc +@@ -434,7 +463,7 @@ SUFFIX (grub_mkimage_generate_elf) (const struct grub_install_image_target_desc shdr->sh_size = grub_host_to_target32 (string_size); shdr->sh_link = grub_host_to_target32 (0); shdr->sh_info = grub_host_to_target32 (0); @@ -5845,7 +11161,7 @@ index e63f148e48cf6f66852b15063405f81371d95ae9..a2bb05439f0c5e8dcebc241f38e787ab shdr->sh_entsize = grub_host_to_target32 (0); shdr++; -@@ -445,10 +454,10 @@ SUFFIX (grub_mkimage_generate_elf) (const struct grub_install_image_target_desc +@@ -445,10 +474,10 @@ SUFFIX (grub_mkimage_generate_elf) (const struct grub_install_image_target_desc shdr->sh_type = grub_host_to_target32 (SHT_PROGBITS); shdr->sh_addr = grub_host_to_target_addr (target_addr); shdr->sh_offset = grub_host_to_target_addr (header_size); @@ -5858,7 +11174,7 @@ index e63f148e48cf6f66852b15063405f81371d95ae9..a2bb05439f0c5e8dcebc241f38e787ab shdr->sh_entsize = grub_host_to_target32 (0); shdr++; -@@ -456,9 +465,9 @@ SUFFIX (grub_mkimage_generate_elf) (const struct grub_install_image_target_desc +@@ -456,9 +485,9 @@ SUFFIX (grub_mkimage_generate_elf) (const struct grub_install_image_target_desc shdr->sh_name = grub_host_to_target32 (ptr - str_start); ptr += sizeof ("mods"); shdr->sh_type = grub_host_to_target32 (SHT_PROGBITS); @@ -5871,7 +11187,7 @@ index e63f148e48cf6f66852b15063405f81371d95ae9..a2bb05439f0c5e8dcebc241f38e787ab shdr->sh_link = grub_host_to_target32 (0); shdr->sh_info = grub_host_to_target32 (0); shdr->sh_addralign = grub_host_to_target32 (image_target->voidp_sizeof); -@@ -471,7 +480,7 @@ SUFFIX (grub_mkimage_generate_elf) (const struct grub_install_image_target_desc +@@ -471,7 +500,7 @@ SUFFIX (grub_mkimage_generate_elf) (const struct grub_install_image_target_desc shdr->sh_name = grub_host_to_target32 (ptr - str_start); ptr += sizeof (".xen"); shdr->sh_type = grub_host_to_target32 (SHT_PROGBITS); @@ -5880,16 +11196,555 @@ index e63f148e48cf6f66852b15063405f81371d95ae9..a2bb05439f0c5e8dcebc241f38e787ab shdr->sh_offset = grub_host_to_target_addr (program_size + header_size); shdr->sh_size = grub_host_to_target32 (XEN_NOTE_SIZE); shdr->sh_link = grub_host_to_target32 (0); -@@ -1875,7 +1884,7 @@ SUFFIX (locate_sections) (Elf_Ehdr *e, const char *kernel_path, +@@ -490,9 +519,7 @@ SUFFIX (grub_mkimage_generate_elf) (const struct grub_install_image_target_desc + /* Relocate symbols; note that this function overwrites the symbol table. + Return the address of a start symbol. */ + static Elf_Addr +-SUFFIX (relocate_symbols) (Elf_Ehdr *e, Elf_Shdr *sections, +- Elf_Shdr *symtab_section, Elf_Addr *section_addresses, +- Elf_Half section_entsize, Elf_Half num_sections, ++SUFFIX (relocate_symbols) (Elf_Ehdr *e, struct section_metadata *smd, + void *jumpers, Elf_Addr jumpers_addr, + Elf_Addr bss_start, Elf_Addr end, + const struct grub_install_image_target_desc *image_target) +@@ -502,19 +529,18 @@ SUFFIX (relocate_symbols) (Elf_Ehdr *e, Elf_Shdr *sections, + Elf_Addr start_address = (Elf_Addr) -1; + Elf_Sym *sym; + Elf_Word i; +- Elf_Shdr *strtab_section; +- const char *strtab; ++ Elf_Shdr *symtab_section; ++ const char *symtab; + grub_uint64_t *jptr = jumpers; + +- strtab_section +- = (Elf_Shdr *) ((char *) sections +- + (grub_target_to_host32 (symtab_section->sh_link) +- * section_entsize)); +- strtab = (char *) e + grub_target_to_host (strtab_section->sh_offset); ++ symtab_section = (Elf_Shdr *) ((char *) smd->sections ++ + grub_target_to_host32 (smd->symtab->sh_link) ++ * smd->section_entsize); ++ symtab = (char *) e + grub_target_to_host (symtab_section->sh_offset); + +- symtab_size = grub_target_to_host (symtab_section->sh_size); +- sym_size = grub_target_to_host (symtab_section->sh_entsize); +- symtab_offset = grub_target_to_host (symtab_section->sh_offset); ++ symtab_size = grub_target_to_host (smd->symtab->sh_size); ++ sym_size = grub_target_to_host (smd->symtab->sh_entsize); ++ symtab_offset = grub_target_to_host (smd->symtab->sh_offset); + num_syms = symtab_size / sym_size; + + for (i = 0, sym = (Elf_Sym *) ((char *) e + symtab_offset); +@@ -524,7 +550,7 @@ SUFFIX (relocate_symbols) (Elf_Ehdr *e, Elf_Shdr *sections, + Elf_Section cur_index; + const char *name; + +- name = strtab + grub_target_to_host32 (sym->st_name); ++ name = symtab + grub_target_to_host32 (sym->st_name); + + cur_index = grub_target_to_host16 (sym->st_shndx); + if (cur_index == STN_ABS) +@@ -542,12 +568,12 @@ SUFFIX (relocate_symbols) (Elf_Ehdr *e, Elf_Shdr *sections, + else + continue; + } +- else if (cur_index >= num_sections) ++ else if (cur_index >= smd->num_sections) + grub_util_error ("section %d does not exist", cur_index); + else + { + sym->st_value = (grub_target_to_host (sym->st_value) +- + section_addresses[cur_index]); ++ + smd->vaddrs[cur_index]); + } + + if (image_target->elf_target == EM_IA_64 && ELF_ST_TYPE (sym->st_info) +@@ -562,7 +588,7 @@ SUFFIX (relocate_symbols) (Elf_Ehdr *e, Elf_Shdr *sections, + grub_util_info ("locating %s at 0x%" GRUB_HOST_PRIxLONG_LONG + " (0x%" GRUB_HOST_PRIxLONG_LONG ")", name, + (unsigned long long) sym->st_value, +- (unsigned long long) section_addresses[cur_index]); ++ (unsigned long long) smd->vaddrs[cur_index]); + + if (start_address == (Elf_Addr)-1) + if (strcmp (name, "_start") == 0 || strcmp (name, "start") == 0) +@@ -699,17 +725,19 @@ arm_get_trampoline_size (Elf_Ehdr *e, + } + #endif + ++static int ++SUFFIX (is_kept_section) (Elf_Shdr *s, const struct grub_install_image_target_desc *image_target); ++static int ++SUFFIX (is_kept_reloc_section) (Elf_Shdr *s, const struct grub_install_image_target_desc *image_target, ++ struct section_metadata *smd); ++ + /* Deal with relocation information. This function relocates addresses + within the virtual address space starting from 0. So only relative + addresses can be fully resolved. Absolute addresses must be relocated + again by a PE32 relocator when loaded. */ + static void +-SUFFIX (relocate_addresses) (Elf_Ehdr *e, Elf_Shdr *sections, +- Elf_Addr *section_addresses, +- Elf_Half section_entsize, Elf_Half num_sections, +- const char *strtab, +- char *pe_target, Elf_Addr tramp_off, +- Elf_Addr got_off, ++SUFFIX (relocate_addrs) (Elf_Ehdr *e, struct section_metadata *smd, ++ char *pe_target, Elf_Addr tramp_off, Elf_Addr got_off, + const struct grub_install_image_target_desc *image_target) + { + Elf_Half i; +@@ -723,33 +751,37 @@ SUFFIX (relocate_addresses) (Elf_Ehdr *e, Elf_Shdr *sections, + grub_uint32_t *tr = (void *) (pe_target + tramp_off); + #endif + +- for (i = 0, s = sections; +- i < num_sections; +- i++, s = (Elf_Shdr *) ((char *) s + section_entsize)) ++ for (i = 0, s = smd->sections; ++ i < smd->num_sections; ++ i++, s = (Elf_Shdr *) ((char *) s + smd->section_entsize)) + if ((s->sh_type == grub_host_to_target32 (SHT_REL)) || + (s->sh_type == grub_host_to_target32 (SHT_RELA))) + { + Elf_Rela *r; + Elf_Word rtab_size, r_size, num_rs; + Elf_Off rtab_offset; +- Elf_Shdr *symtab_section; + Elf_Word target_section_index; + Elf_Addr target_section_addr; + Elf_Shdr *target_section; + Elf_Word j; + +- symtab_section = (Elf_Shdr *) ((char *) sections +- + (grub_target_to_host32 (s->sh_link) +- * section_entsize)); ++ if (!SUFFIX (is_kept_section) (s, image_target) && ++ !SUFFIX (is_kept_reloc_section) (s, image_target, smd)) ++ { ++ grub_util_info ("not translating relocations for omitted section %s", ++ smd->strtab + grub_le_to_cpu32 (s->sh_name)); ++ continue; ++ } ++ + target_section_index = grub_target_to_host32 (s->sh_info); +- target_section_addr = section_addresses[target_section_index]; +- target_section = (Elf_Shdr *) ((char *) sections ++ target_section_addr = smd->addrs[target_section_index]; ++ target_section = (Elf_Shdr *) ((char *) smd->sections + + (target_section_index +- * section_entsize)); ++ * smd->section_entsize)); + + grub_util_info ("dealing with the relocation section %s for %s", +- strtab + grub_target_to_host32 (s->sh_name), +- strtab + grub_target_to_host32 (target_section->sh_name)); ++ smd->strtab + grub_target_to_host32 (s->sh_name), ++ smd->strtab + grub_target_to_host32 (target_section->sh_name)); + + rtab_size = grub_target_to_host (s->sh_size); + r_size = grub_target_to_host (s->sh_entsize); +@@ -770,7 +802,7 @@ SUFFIX (relocate_addresses) (Elf_Ehdr *e, Elf_Shdr *sections, + target = SUFFIX (get_target_address) (e, target_section, + offset, image_target); + info = grub_target_to_host (r->r_info); +- sym_addr = SUFFIX (get_symbol_address) (e, symtab_section, ++ sym_addr = SUFFIX (get_symbol_address) (e, smd->symtab, + ELF_R_SYM (info), image_target); + + addend = (s->sh_type == grub_target_to_host32 (SHT_RELA)) ? +@@ -832,6 +864,7 @@ SUFFIX (relocate_addresses) (Elf_Ehdr *e, Elf_Shdr *sections, + break; + + case R_X86_64_PC32: ++ case R_X86_64_PLT32: + { + grub_uint32_t *t32 = (grub_uint32_t *) target; + *t32 = grub_host_to_target64 (grub_target_to_host32 (*t32) +@@ -900,8 +933,8 @@ SUFFIX (relocate_addresses) (Elf_Ehdr *e, Elf_Shdr *sections, + Elf_Sym *sym; + + sym = (Elf_Sym *) ((char *) e +- + grub_target_to_host (symtab_section->sh_offset) +- + ELF_R_SYM (info) * grub_target_to_host (symtab_section->sh_entsize)); ++ + grub_target_to_host (smd->symtab->sh_offset) ++ + ELF_R_SYM (info) * grub_target_to_host (smd->symtab->sh_entsize)); + if (ELF_ST_TYPE (sym->st_info) == STT_FUNC) + sym_addr = grub_target_to_host64 (*(grub_uint64_t *) (pe_target + + sym->st_value +@@ -1086,8 +1119,8 @@ SUFFIX (relocate_addresses) (Elf_Ehdr *e, Elf_Shdr *sections, + - (char *) e), + sym_addr); + sym = (Elf_Sym *) ((char *) e +- + grub_target_to_host (symtab_section->sh_offset) +- + ELF_R_SYM (info) * grub_target_to_host (symtab_section->sh_entsize)); ++ + grub_target_to_host (smd->symtab->sh_offset) ++ + ELF_R_SYM (info) * grub_target_to_host (smd->symtab->sh_entsize)); + if (ELF_ST_TYPE (sym->st_info) != STT_FUNC) + sym_addr |= 1; + if (!(sym_addr & 1)) +@@ -1625,9 +1658,7 @@ create_u64_fixups (struct translate_context *ctx, + /* Make a .reloc section. */ + static void + make_reloc_section (Elf_Ehdr *e, struct grub_mkimage_layout *layout, +- Elf_Addr *section_addresses, Elf_Shdr *sections, +- Elf_Half section_entsize, Elf_Half num_sections, +- const char *strtab, ++ struct section_metadata *smd, + const struct grub_install_image_target_desc *image_target) + { + unsigned i; +@@ -1636,8 +1667,8 @@ make_reloc_section (Elf_Ehdr *e, struct grub_mkimage_layout *layout, + + translate_reloc_start (&ctx, image_target); + +- for (i = 0, s = sections; i < num_sections; +- i++, s = (Elf_Shdr *) ((char *) s + section_entsize)) ++ for (i = 0, s = smd->sections; i < smd->num_sections; ++ i++, s = (Elf_Shdr *) ((char *) s + smd->section_entsize)) + if ((grub_target_to_host32 (s->sh_type) == SHT_REL) || + (grub_target_to_host32 (s->sh_type) == SHT_RELA)) + { +@@ -1647,15 +1678,22 @@ make_reloc_section (Elf_Ehdr *e, struct grub_mkimage_layout *layout, + Elf_Addr section_address; + Elf_Word j; + ++ if (!SUFFIX (is_kept_reloc_section) (s, image_target, smd)) ++ { ++ grub_util_info ("not translating the skipped relocation section %s", ++ smd->strtab + grub_le_to_cpu32 (s->sh_name)); ++ continue; ++ } ++ + grub_util_info ("translating the relocation section %s", +- strtab + grub_le_to_cpu32 (s->sh_name)); ++ smd->strtab + grub_le_to_cpu32 (s->sh_name)); + + rtab_size = grub_target_to_host (s->sh_size); + r_size = grub_target_to_host (s->sh_entsize); + rtab_offset = grub_target_to_host (s->sh_offset); + num_rs = rtab_size / r_size; + +- section_address = section_addresses[grub_le_to_cpu32 (s->sh_info)]; ++ section_address = smd->vaddrs[grub_le_to_cpu32 (s->sh_info)]; + + for (j = 0, r = (Elf_Rel *) ((char *) e + rtab_offset); + j < num_rs; +@@ -1722,6 +1760,56 @@ SUFFIX (is_bss_section) (Elf_Shdr *s, const struct grub_install_image_target_des + == SHF_ALLOC) && (grub_target_to_host32 (s->sh_type) == SHT_NOBITS); + } + ++/* Determine if a section is going to be in the final output */ ++static int ++SUFFIX (is_kept_section) (Elf_Shdr *s, const struct grub_install_image_target_desc *image_target) ++{ ++ /* We keep .text and .data */ ++ if (SUFFIX (is_text_section) (s, image_target) ++ || SUFFIX (is_data_section) (s, image_target)) ++ return 1; ++ ++ /* ++ * And we keep .bss if we're producing PE binaries or the target doesn't ++ * have a relocating loader. Platforms other than EFI and U-boot shouldn't ++ * have .bss in their binaries as we build with -Wl,-Ttext. ++ */ ++ if (SUFFIX (is_bss_section) (s, image_target) ++ && (image_target->id == IMAGE_EFI || !is_relocatable (image_target))) ++ return 1; ++ ++ /* Otherwise this is not a section we're keeping in the final output. */ ++ return 0; ++} ++ ++static int ++SUFFIX (is_kept_reloc_section) (Elf_Shdr *s, const struct grub_install_image_target_desc *image_target, ++ struct section_metadata *smd) ++{ ++ int i; ++ int r = 0; ++ const char *name = smd->strtab + grub_host_to_target32 (s->sh_name); ++ ++ if (!strncmp (name, ".rela.", 6)) ++ name += 5; ++ else if (!strncmp (name, ".rel.", 5)) ++ name += 4; ++ else ++ return 1; ++ ++ for (i = 0, s = smd->sections; i < smd->num_sections; ++ i++, s = (Elf_Shdr *) ((char *) s + smd->section_entsize)) ++ { ++ const char *sname = smd->strtab + grub_host_to_target32 (s->sh_name); ++ if (strcmp (sname, name)) ++ continue; ++ ++ return SUFFIX (is_kept_section) (s, image_target); ++ } ++ ++ return r; ++} ++ + /* Return if the ELF header is valid. */ + static int + SUFFIX (check_elf_header) (Elf_Ehdr *e, size_t size, const struct grub_install_image_target_desc *image_target) +@@ -1742,12 +1830,11 @@ SUFFIX (check_elf_header) (Elf_Ehdr *e, size_t size, const struct grub_install_i + static Elf_Addr + SUFFIX (put_section) (Elf_Shdr *s, int i, + Elf_Addr current_address, +- Elf_Addr *section_addresses, +- const char *strtab, ++ struct section_metadata *smd, + const struct grub_install_image_target_desc *image_target) + { + Elf_Word align = grub_host_to_target_addr (s->sh_addralign); +- const char *name = strtab + grub_host_to_target32 (s->sh_name); ++ const char *name = smd->strtab + grub_host_to_target32 (s->sh_name); + + if (align) + current_address = ALIGN_UP (current_address + image_target->vaddr_offset, +@@ -1759,24 +1846,23 @@ SUFFIX (put_section) (Elf_Shdr *s, int i, + name, (unsigned long long) current_address); + if (!is_relocatable (image_target)) + current_address = grub_host_to_target_addr (s->sh_addr) +- - image_target->link_addr; +- section_addresses[i] = current_address; ++ - image_target->link_addr; ++ smd->addrs[i] = current_address; + current_address += grub_host_to_target_addr (s->sh_size); + return current_address; + } + +-/* Locate section addresses by merging code sections and data sections +- into .text and .data, respectively. Return the array of section +- addresses. */ +-static Elf_Addr * ++/* ++ * Locate section addresses by merging code sections and data sections ++ * into .text and .data, respectively. ++ */ ++static void + SUFFIX (locate_sections) (Elf_Ehdr *e, const char *kernel_path, +- Elf_Shdr *sections, Elf_Half section_entsize, +- Elf_Half num_sections, const char *strtab, ++ struct section_metadata *smd, + struct grub_mkimage_layout *layout, + const struct grub_install_image_target_desc *image_target) + { + int i; +- Elf_Addr *section_addresses; + Elf_Shdr *s; + + layout->align = 1; +@@ -1784,30 +1870,23 @@ SUFFIX (locate_sections) (Elf_Ehdr *e, const char *kernel_path, + if (image_target->elf_target == EM_AARCH64) + layout->align = 4096; + +- section_addresses = xmalloc (sizeof (*section_addresses) * num_sections); +- memset (section_addresses, 0, sizeof (*section_addresses) * num_sections); +- + layout->kernel_size = 0; + +- for (i = 0, s = sections; +- i < num_sections; +- i++, s = (Elf_Shdr *) ((char *) s + section_entsize)) +- if ((grub_target_to_host (s->sh_flags) & SHF_ALLOC) ++ for (i = 0, s = smd->sections; ++ i < smd->num_sections; ++ i++, s = (Elf_Shdr *) ((char *) s + smd->section_entsize)) ++ if ((grub_target_to_host (s->sh_flags) & SHF_ALLOC) + && grub_host_to_target32 (s->sh_addralign) > layout->align) + layout->align = grub_host_to_target32 (s->sh_addralign); + +- + /* .text */ +- for (i = 0, s = sections; +- i < num_sections; +- i++, s = (Elf_Shdr *) ((char *) s + section_entsize)) ++ for (i = 0, s = smd->sections; ++ i < smd->num_sections; ++ i++, s = (Elf_Shdr *) ((char *) s + smd->section_entsize)) + if (SUFFIX (is_text_section) (s, image_target)) + { +- layout->kernel_size = SUFFIX (put_section) (s, i, +- layout->kernel_size, +- section_addresses, +- strtab, +- image_target); ++ layout->kernel_size = SUFFIX (put_section) (s, i, layout->kernel_size, ++ smd, image_target); + if (!is_relocatable (image_target) && + grub_host_to_target_addr (s->sh_addr) != image_target->link_addr) + { +@@ -1827,15 +1906,12 @@ SUFFIX (locate_sections) (Elf_Ehdr *e, const char *kernel_path, + layout->exec_size = layout->kernel_size; + + /* .data */ +- for (i = 0, s = sections; +- i < num_sections; +- i++, s = (Elf_Shdr *) ((char *) s + section_entsize)) ++ for (i = 0, s = smd->sections; ++ i < smd->num_sections; ++ i++, s = (Elf_Shdr *) ((char *) s + smd->section_entsize)) + if (SUFFIX (is_data_section) (s, image_target)) +- layout->kernel_size = SUFFIX (put_section) (s, i, +- layout->kernel_size, +- section_addresses, +- strtab, +- image_target); ++ layout->kernel_size = SUFFIX (put_section) (s, i, layout->kernel_size, smd, ++ image_target); + + #ifdef MKIMAGE_ELF32 + if (image_target->elf_target == EM_ARM) +@@ -1846,8 +1922,8 @@ SUFFIX (locate_sections) (Elf_Ehdr *e, const char *kernel_path, + + layout->kernel_size = ALIGN_UP (layout->kernel_size, 16); + +- tramp = arm_get_trampoline_size (e, sections, section_entsize, +- num_sections, image_target); ++ tramp = arm_get_trampoline_size (e, smd->sections, smd->section_entsize, ++ smd->num_sections, image_target); + + layout->tramp_off = layout->kernel_size; + layout->kernel_size += ALIGN_UP (tramp, 16); +@@ -1858,15 +1934,18 @@ SUFFIX (locate_sections) (Elf_Ehdr *e, const char *kernel_path, + layout->end = layout->kernel_size; + + /* .bss */ +- for (i = 0, s = sections; +- i < num_sections; +- i++, s = (Elf_Shdr *) ((char *) s + section_entsize)) +- if (SUFFIX (is_bss_section) (s, image_target)) +- layout->end = SUFFIX (put_section) (s, i, +- layout->end, +- section_addresses, +- strtab, +- image_target); ++ for (i = 0, s = smd->sections; ++ i < smd->num_sections; ++ i++, s = (Elf_Shdr *) ((char *) s + smd->section_entsize)) ++ { ++ if (SUFFIX (is_bss_section) (s, image_target)) ++ layout->end = SUFFIX (put_section) (s, i, layout->end, smd, image_target); ++ ++ /* ++ * This must to be in the last time this function passes through the loop. ++ */ ++ smd->vaddrs[i] = smd->addrs[i] + image_target->vaddr_offset; ++ } + + layout->end = ALIGN_UP (layout->end + image_target->vaddr_offset, + image_target->section_align) - image_target->vaddr_offset; +@@ -1875,10 +1954,8 @@ SUFFIX (locate_sections) (Elf_Ehdr *e, const char *kernel_path, Platforms other than EFI and U-boot shouldn't have .bss in their binaries as we build with -Wl,-Ttext. */ - if (image_target->id != IMAGE_UBOOT) + if (image_target->id == IMAGE_EFI || !is_relocatable (image_target)) layout->kernel_size = layout->end; +- +- return section_addresses; + } - return section_addresses; -@@ -1978,6 +1987,7 @@ SUFFIX (grub_mkimage_load_image) (const char *kernel_path, + char * +@@ -1888,18 +1965,12 @@ SUFFIX (grub_mkimage_load_image) (const char *kernel_path, + const struct grub_install_image_target_desc *image_target) + { + char *kernel_img, *out_img; +- const char *strtab; ++ struct section_metadata smd = { 0, 0, 0, 0, 0, 0, 0 }; + Elf_Ehdr *e; +- Elf_Shdr *sections; +- Elf_Addr *section_addresses; +- Elf_Addr *section_vaddresses; + int i; + Elf_Shdr *s; +- Elf_Half num_sections; + Elf_Off section_offset; +- Elf_Half section_entsize; + grub_size_t kernel_size; +- Elf_Shdr *symtab_section = 0; + + grub_memset (layout, 0, sizeof (*layout)); + +@@ -1914,48 +1985,45 @@ SUFFIX (grub_mkimage_load_image) (const char *kernel_path, + grub_util_error ("invalid ELF header"); + + section_offset = grub_target_to_host (e->e_shoff); +- section_entsize = grub_target_to_host16 (e->e_shentsize); +- num_sections = grub_target_to_host16 (e->e_shnum); ++ smd.section_entsize = grub_target_to_host16 (e->e_shentsize); ++ smd.num_sections = grub_target_to_host16 (e->e_shnum); + +- if (kernel_size < section_offset + (grub_uint32_t) section_entsize * num_sections) ++ if (kernel_size < section_offset ++ + (grub_uint32_t) smd.section_entsize * smd.num_sections) + grub_util_error (_("premature end of file %s"), kernel_path); + +- sections = (Elf_Shdr *) (kernel_img + section_offset); ++ smd.sections = (Elf_Shdr *) (kernel_img + section_offset); + + /* Relocate sections then symbols in the virtual address space. */ +- s = (Elf_Shdr *) ((char *) sections +- + grub_host_to_target16 (e->e_shstrndx) * section_entsize); +- strtab = (char *) e + grub_host_to_target_addr (s->sh_offset); ++ s = (Elf_Shdr *) ((char *) smd.sections ++ + grub_host_to_target16 (e->e_shstrndx) * smd.section_entsize); ++ smd.strtab = (char *) e + grub_host_to_target_addr (s->sh_offset); + +- section_addresses = SUFFIX (locate_sections) (e, kernel_path, +- sections, section_entsize, +- num_sections, strtab, +- layout, +- image_target); ++ smd.addrs = xmalloc (sizeof (*smd.addrs) * smd.num_sections); ++ memset (smd.addrs, 0, sizeof (*smd.addrs) * smd.num_sections); ++ smd.vaddrs = xmalloc (sizeof (*smd.vaddrs) * smd.num_sections); ++ memset (smd.vaddrs, 0, sizeof (*smd.vaddrs) * smd.num_sections); + +- section_vaddresses = xmalloc (sizeof (*section_addresses) * num_sections); +- +- for (i = 0; i < num_sections; i++) +- section_vaddresses[i] = section_addresses[i] + image_target->vaddr_offset; ++ SUFFIX (locate_sections) (e, kernel_path, &smd, layout, image_target); + + if (!is_relocatable (image_target)) + { + Elf_Addr current_address = layout->kernel_size; + +- for (i = 0, s = sections; +- i < num_sections; +- i++, s = (Elf_Shdr *) ((char *) s + section_entsize)) ++ for (i = 0, s = smd.sections; ++ i < smd.num_sections; ++ i++, s = (Elf_Shdr *) ((char *) s + smd.section_entsize)) + if (grub_target_to_host32 (s->sh_type) == SHT_NOBITS) + { + Elf_Word sec_align = grub_host_to_target_addr (s->sh_addralign); +- const char *name = strtab + grub_host_to_target32 (s->sh_name); ++ const char *name = smd.strtab + grub_host_to_target32 (s->sh_name); + + if (sec_align) + current_address = ALIGN_UP (current_address + + image_target->vaddr_offset, + sec_align) + - image_target->vaddr_offset; +- ++ + grub_util_info ("locating the section %s at 0x%" + GRUB_HOST_PRIxLONG_LONG, + name, (unsigned long long) current_address); +@@ -1963,7 +2031,7 @@ SUFFIX (grub_mkimage_load_image) (const char *kernel_path, + current_address = grub_host_to_target_addr (s->sh_addr) + - image_target->link_addr; + +- section_vaddresses[i] = current_address ++ smd.vaddrs[i] = current_address + + image_target->vaddr_offset; + current_address += grub_host_to_target_addr (s->sh_size); + } +@@ -1978,21 +2046,22 @@ SUFFIX (grub_mkimage_load_image) (const char *kernel_path, if (image_target->id == IMAGE_SPARC64_AOUT || image_target->id == IMAGE_SPARC64_RAW || image_target->id == IMAGE_UBOOT @@ -5897,15 +11752,118 @@ index e63f148e48cf6f66852b15063405f81371d95ae9..a2bb05439f0c5e8dcebc241f38e787ab || image_target->id == IMAGE_SPARC64_CDCORE) layout->kernel_size = ALIGN_UP (layout->kernel_size, image_target->mod_align); -@@ -2083,7 +2093,7 @@ SUFFIX (grub_mkimage_load_image) (const char *kernel_path, - Platforms other than EFI and U-boot shouldn't have .bss in - their binaries as we build with -Wl,-Ttext. - */ + if (is_relocatable (image_target)) + { +- symtab_section = NULL; +- for (i = 0, s = sections; +- i < num_sections; +- i++, s = (Elf_Shdr *) ((char *) s + section_entsize)) ++ smd.symtab = NULL; ++ for (i = 0, s = smd.sections; ++ i < smd.num_sections; ++ i++, s = (Elf_Shdr *) ((char *) s + smd.section_entsize)) + if (s->sh_type == grub_host_to_target32 (SHT_SYMTAB)) + { +- symtab_section = s; ++ smd.symtab = s; + break; + } +- if (! symtab_section) ++ if (! smd.symtab) + grub_util_error ("%s", _("no symbol table")); + #ifdef MKIMAGE_ELF64 + if (image_target->elf_target == EM_IA_64) +@@ -2007,7 +2076,7 @@ SUFFIX (grub_mkimage_load_image) (const char *kernel_path, + layout->kernel_size += ALIGN_UP (tramp, 16); + + layout->ia64jmp_off = layout->kernel_size; +- layout->ia64jmpnum = SUFFIX (count_funcs) (e, symtab_section, ++ layout->ia64jmpnum = SUFFIX (count_funcs) (e, smd.symtab, + image_target); + layout->kernel_size += 16 * layout->ia64jmpnum; + +@@ -2038,31 +2107,19 @@ SUFFIX (grub_mkimage_load_image) (const char *kernel_path, + + if (is_relocatable (image_target)) + { +- layout->start_address = SUFFIX (relocate_symbols) (e, sections, symtab_section, +- section_vaddresses, section_entsize, +- num_sections, +- (char *) out_img + layout->ia64jmp_off, +- layout->ia64jmp_off +- + image_target->vaddr_offset, +- layout->bss_start, +- layout->end, +- image_target); ++ layout->start_address = SUFFIX (relocate_symbols) (e, &smd, ++ (char *) out_img + layout->ia64jmp_off, ++ layout->ia64jmp_off + image_target->vaddr_offset, ++ layout->bss_start, layout->end, image_target); ++ + if (layout->start_address == (Elf_Addr) -1) + grub_util_error ("start symbol is not defined"); + +- /* Resolve addresses in the virtual address space. */ +- SUFFIX (relocate_addresses) (e, sections, section_addresses, +- section_entsize, +- num_sections, strtab, +- out_img, layout->tramp_off, +- layout->got_off, +- image_target); ++ /* Resolve addrs in the virtual address space. */ ++ SUFFIX (relocate_addrs) (e, &smd, out_img, layout->tramp_off, ++ layout->got_off, image_target); + +- make_reloc_section (e, layout, +- section_vaddresses, sections, +- section_entsize, num_sections, +- strtab, +- image_target); ++ make_reloc_section (e, layout, &smd, image_target); + if (image_target->id != IMAGE_EFI) + { + out_img = xrealloc (out_img, layout->kernel_size + total_module_size +@@ -2074,30 +2131,25 @@ SUFFIX (grub_mkimage_load_image) (const char *kernel_path, + } + } + +- for (i = 0, s = sections; +- i < num_sections; +- i++, s = (Elf_Shdr *) ((char *) s + section_entsize)) +- if (SUFFIX (is_data_section) (s, image_target) +- /* Explicitly initialize BSS +- when producing PE32 to avoid a bug in EFI implementations. +- Platforms other than EFI and U-boot shouldn't have .bss in +- their binaries as we build with -Wl,-Ttext. +- */ - || (SUFFIX (is_bss_section) (s, image_target) && (image_target->id != IMAGE_UBOOT)) -+ || (SUFFIX (is_bss_section) (s, image_target) && (image_target->id == IMAGE_EFI || !is_relocatable (image_target))) - || SUFFIX (is_text_section) (s, image_target)) +- || SUFFIX (is_text_section) (s, image_target)) ++ for (i = 0, s = smd.sections; ++ i < smd.num_sections; ++ i++, s = (Elf_Shdr *) ((char *) s + smd.section_entsize)) ++ if (SUFFIX (is_kept_section) (s, image_target)) { if (grub_target_to_host32 (s->sh_type) == SHT_NOBITS) +- memset (out_img + section_addresses[i], 0, ++ memset (out_img + smd.addrs[i], 0, + grub_host_to_target_addr (s->sh_size)); + else +- memcpy (out_img + section_addresses[i], ++ memcpy (out_img + smd.addrs[i], + kernel_img + grub_host_to_target_addr (s->sh_offset), + grub_host_to_target_addr (s->sh_size)); + } + free (kernel_img); + +- free (section_vaddresses); +- free (section_addresses); ++ free (smd.vaddrs); ++ smd.vaddrs = NULL; ++ free (smd.addrs); ++ smd.addrs = NULL; + + return out_img; + } diff --git a/util/grub-mkrescue.c b/util/grub-mkrescue.c index 238d4840e2f9613c6392e16cb88e7f413cae41c4..9545945d8f3b1a85dea8404fe1a0c9b3a3b84ba1 100644 --- a/util/grub-mkrescue.c @@ -5968,6 +11926,164 @@ index 238d4840e2f9613c6392e16cb88e7f413cae41c4..9545945d8f3b1a85dea8404fe1a0c9b3 grub_util_unlink_recursive (iso9660_dir); +diff --git a/util/grub-module-verifier.c b/util/grub-module-verifier.c +index 9179285a5ffe5d641a4c2726ce8367dba623d29e..a79271f663166f4d302e1f73d1bcd400c9e8604e 100644 +--- a/util/grub-module-verifier.c ++++ b/util/grub-module-verifier.c +@@ -19,6 +19,7 @@ struct grub_module_verifier_arch archs[] = { + -1 + }, (int[]){ + R_X86_64_PC32, ++ R_X86_64_PLT32, + -1 + } + }, +diff --git a/util/grub-probe.c b/util/grub-probe.c +index 8ac527d2f2a17142c5cf873d27c5818477d2c1a4..e45dbf9e049bd41f3122793330b2d0f7bcc844f8 100644 +--- a/util/grub-probe.c ++++ b/util/grub-probe.c +@@ -28,6 +28,7 @@ + #include + #include + #include ++#include + #include + #include + #include +@@ -62,6 +63,7 @@ enum { + PRINT_DRIVE, + PRINT_DEVICE, + PRINT_PARTMAP, ++ PRINT_PARTUUID, + PRINT_ABSTRACTION, + PRINT_CRYPTODISK_UUID, + PRINT_HINT_STR, +@@ -85,6 +87,7 @@ static const char *targets[] = + [PRINT_DRIVE] = "drive", + [PRINT_DEVICE] = "device", + [PRINT_PARTMAP] = "partmap", ++ [PRINT_PARTUUID] = "partuuid", + [PRINT_ABSTRACTION] = "abstraction", + [PRINT_CRYPTODISK_UUID] = "cryptodisk_uuid", + [PRINT_HINT_STR] = "hints_string", +@@ -129,6 +132,20 @@ get_targets_string (void) + return str; + } + ++static int ++print_gpt_guid (grub_gpt_part_guid_t guid) ++{ ++ guid.data1 = grub_le_to_cpu32 (guid.data1); ++ guid.data2 = grub_le_to_cpu16 (guid.data2); ++ guid.data3 = grub_le_to_cpu16 (guid.data3); ++ ++ return grub_printf ("%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x", ++ guid.data1, guid.data2, guid.data3, guid.data4[0], ++ guid.data4[1], guid.data4[2], guid.data4[3], ++ guid.data4[4], guid.data4[5], guid.data4[6], ++ guid.data4[7]); ++} ++ + static void + do_print (const char *x, void *data) + { +@@ -167,6 +184,45 @@ probe_partmap (grub_disk_t disk, char delim) + } + } + ++static void ++probe_partuuid (grub_disk_t disk, char delim) ++{ ++ grub_partition_t p = disk->partition; ++ ++ /* ++ * Nested partitions not supported for now. ++ * Non-nested partitions must have disk->partition->parent == NULL ++ */ ++ if (p && p->parent == NULL) ++ { ++ disk->partition = p->parent; ++ ++ if (strcmp(p->partmap->name, "msdos") == 0) ++ { ++ /* ++ * The partition GUID for MSDOS is the partition number (starting ++ * with 1) prepended with the NT disk signature. ++ */ ++ grub_uint32_t nt_disk_sig; ++ ++ if (grub_disk_read (disk, 0, GRUB_BOOT_MACHINE_WINDOWS_NT_MAGIC, ++ sizeof(nt_disk_sig), &nt_disk_sig) == 0) ++ grub_printf ("%08x-%02x", ++ grub_le_to_cpu32(nt_disk_sig), 1 + p->number); ++ } ++ else if (strcmp(p->partmap->name, "gpt") == 0) ++ { ++ struct grub_gpt_partentry gptdata; ++ ++ if (grub_disk_read (disk, p->offset, p->index, ++ sizeof(gptdata), &gptdata) == 0) ++ print_gpt_guid(gptdata.guid); ++ } ++ ++ disk->partition = p; ++ } ++} ++ + static void + probe_cryptodisk_uuid (grub_disk_t disk, char delim) + { +@@ -621,6 +677,12 @@ probe (const char *path, char **device_names, char delim) + /* Check if dev->disk itself is contained in a partmap. */ + probe_partmap (dev->disk, delim); + ++ else if (print == PRINT_PARTUUID) ++ { ++ probe_partuuid (dev->disk, delim); ++ putchar (delim); ++ } ++ + else if (print == PRINT_MSDOS_PARTTYPE) + { + if (dev->disk->partition +@@ -641,21 +703,7 @@ probe (const char *path, char **device_names, char delim) + + if (grub_disk_read (dev->disk, p->offset, p->index, + sizeof (gptdata), &gptdata) == 0) +- { +- grub_gpt_part_type_t gpttype; +- gpttype.data1 = grub_le_to_cpu32 (gptdata.type.data1); +- gpttype.data2 = grub_le_to_cpu16 (gptdata.type.data2); +- gpttype.data3 = grub_le_to_cpu16 (gptdata.type.data3); +- grub_memcpy (gpttype.data4, gptdata.type.data4, 8); +- +- grub_printf ("%08x-%04x-%04x-%02x%02x-%02x%02x%02x%02x%02x%02x", +- gpttype.data1, gpttype.data2, +- gpttype.data3, gpttype.data4[0], +- gpttype.data4[1], gpttype.data4[2], +- gpttype.data4[3], gpttype.data4[4], +- gpttype.data4[5], gpttype.data4[6], +- gpttype.data4[7]); +- } ++ print_gpt_guid(gptdata.type); + dev->disk->partition = p; + } + putchar (delim); +diff --git a/util/ieee1275/grub-ofpathname.c b/util/ieee1275/grub-ofpathname.c +index 8e5d766cb63871c1479a42626c8cfa7fddd6f771..300fbddad7c54e2b52d90a7de5eb868a9a1ae705 100644 +--- a/util/ieee1275/grub-ofpathname.c ++++ b/util/ieee1275/grub-ofpathname.c +@@ -46,7 +46,9 @@ int main(int argc, char **argv) + } + + of_path = grub_util_devname_to_ofpath (argv[1]); +- printf("%s\n", of_path); ++ ++ if (of_path) ++ printf ("%s\n", of_path); + + free (of_path); + diff --git a/util/mkimage.c b/util/mkimage.c index 9ad4cfe4223b661c11ab9d3783cb13c88100631c..e22d82afa61a6aa4209c7ab6d2aa5b58f95e1bfe 100644 --- a/util/mkimage.c @@ -6089,11 +12205,532 @@ index 9ad4cfe4223b661c11ab9d3783cb13c88100631c..e22d82afa61a6aa4209c7ab6d2aa5b58 } break; } +diff --git a/util/setup.c b/util/setup.c +index 8aa5a39a79465c33b0ff6a5a6b1bc82128df2e18..9c1e1b7da6a85ea7aece6433f2eaf81a6ccde451 100644 +--- a/util/setup.c ++++ b/util/setup.c +@@ -137,6 +137,9 @@ struct blocklists + struct grub_boot_blocklist *first_block, *block; + #ifdef GRUB_SETUP_BIOS + grub_uint16_t current_segment; ++#endif ++#ifdef GRUB_SETUP_SPARC64 ++ grub_uint64_t gpt_offset; + #endif + grub_uint16_t last_length; + grub_disk_addr_t first_sector; +@@ -151,6 +154,10 @@ save_blocklists (grub_disk_addr_t sector, unsigned offset, unsigned length, + struct grub_boot_blocklist *prev = bl->block + 1; + grub_uint64_t seclen; + ++#ifdef GRUB_SETUP_SPARC64 ++ sector -= bl->gpt_offset; ++#endif ++ + grub_util_info ("saving <%" GRUB_HOST_PRIuLONG_LONG ",%u,%u>", + (unsigned long long) sector, offset, length); + +@@ -298,9 +305,8 @@ SETUP (const char *dir, + bl.first_block = (struct grub_boot_blocklist *) (core_img + + GRUB_DISK_SECTOR_SIZE + - sizeof (*bl.block)); +- grub_util_info ("root is `%s', dest is `%s'", root, dest); + +- grub_util_info ("Opening dest"); ++ grub_util_info ("Opening dest `%s'", dest); + dest_dev = grub_device_open (dest); + if (! dest_dev) + grub_util_error ("%s", grub_errmsg); +@@ -662,6 +668,16 @@ unable_to_embed: + + bl.block = bl.first_block; + ++#ifdef GRUB_SETUP_SPARC64 ++ { ++ grub_partition_t container = root_dev->disk->partition; ++ bl.gpt_offset = 0; ++ ++ if (grub_strstr (container->partmap->name, "gpt")) ++ bl.gpt_offset = grub_partition_get_start (container); ++ } ++#endif ++ + grub_install_get_blocklist (root_dev, core_path, core_img, core_size, + save_blocklists, &bl); + +@@ -721,15 +737,18 @@ unable_to_embed: + { + char *buf, *ptr = core_img; + size_t len = core_size; +- grub_uint64_t blk; ++ grub_uint64_t blk, offset = 0; + grub_partition_t container = core_dev->disk->partition; + grub_err_t err; + + core_dev->disk->partition = 0; ++#ifdef GRUB_SETUP_SPARC64 ++ offset = bl.gpt_offset; ++#endif + + buf = xmalloc (core_size); + blk = bl.first_sector; +- err = grub_disk_read (core_dev->disk, blk, 0, GRUB_DISK_SECTOR_SIZE, buf); ++ err = grub_disk_read (core_dev->disk, blk + offset, 0, GRUB_DISK_SECTOR_SIZE, buf); + if (err) + grub_util_error (_("cannot read `%s': %s"), core_dev->disk->name, + grub_errmsg); +@@ -748,7 +767,7 @@ unable_to_embed: + if (cur > len) + cur = len; + +- err = grub_disk_read (core_dev->disk, blk, 0, cur, buf); ++ err = grub_disk_read (core_dev->disk, blk + offset, 0, cur, buf); + if (err) + grub_util_error (_("cannot read `%s': %s"), core_dev->disk->name, + grub_errmsg); +diff --git a/grub-core/lib/libgcrypt/cipher/bufhelp.h b/grub-core/lib/libgcrypt/cipher/bufhelp.h +new file mode 100644 +index 0000000000000000000000000000000000000000..df3559472312d8c6c0c038e27571c546ce489283 +--- /dev/null ++++ b/grub-core/lib/libgcrypt/cipher/bufhelp.h +@@ -0,0 +1,432 @@ ++/* bufhelp.h - Some buffer manipulation helpers ++ * Copyright (C) 2012 Jussi Kivilinna ++ * ++ * This file is part of Libgcrypt. ++ * ++ * Libgcrypt is free software; you can redistribute it and/or modify ++ * it under the terms of the GNU Lesser General Public License as ++ * published by the Free Software Foundation; either version 2.1 of ++ * the License, or (at your option) any later version. ++ * ++ * Libgcrypt is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU Lesser General Public License for more details. ++ * ++ * You should have received a copy of the GNU Lesser General Public ++ * License along with this program; if not, see . ++ */ ++#ifndef GCRYPT_BUFHELP_H ++#define GCRYPT_BUFHELP_H ++ ++ ++#include "bithelp.h" ++ ++ ++#undef BUFHELP_FAST_UNALIGNED_ACCESS ++#if defined(HAVE_GCC_ATTRIBUTE_PACKED) && \ ++ defined(HAVE_GCC_ATTRIBUTE_ALIGNED) && \ ++ (defined(__i386__) || defined(__x86_64__) || \ ++ (defined(__arm__) && defined(__ARM_FEATURE_UNALIGNED)) || \ ++ defined(__aarch64__)) ++/* These architectures are able of unaligned memory accesses and can ++ handle those fast. ++ */ ++# define BUFHELP_FAST_UNALIGNED_ACCESS 1 ++#endif ++ ++ ++#ifdef BUFHELP_FAST_UNALIGNED_ACCESS ++/* Define type with one-byte alignment on architectures with fast unaligned ++ memory accesses. ++ */ ++typedef struct bufhelp_int_s ++{ ++ uintptr_t a; ++} __attribute__((packed, aligned(1))) bufhelp_int_t; ++#else ++/* Define type with default alignment for other architectures (unaligned ++ accessed handled in per byte loops). ++ */ ++typedef struct bufhelp_int_s ++{ ++ uintptr_t a; ++} bufhelp_int_t; ++#endif ++ ++ ++/* Optimized function for small buffer copying */ ++static inline void ++buf_cpy(void *_dst, const void *_src, size_t len) ++{ ++#if __GNUC__ >= 4 && (defined(__x86_64__) || defined(__i386__)) ++ /* For AMD64 and i386, memcpy is faster. */ ++ memcpy(_dst, _src, len); ++#else ++ byte *dst = _dst; ++ const byte *src = _src; ++ bufhelp_int_t *ldst; ++ const bufhelp_int_t *lsrc; ++#ifndef BUFHELP_FAST_UNALIGNED_ACCESS ++ const unsigned int longmask = sizeof(bufhelp_int_t) - 1; ++ ++ /* Skip fast processing if buffers are unaligned. */ ++ if (((uintptr_t)dst | (uintptr_t)src) & longmask) ++ goto do_bytes; ++#endif ++ ++ ldst = (bufhelp_int_t *)(void *)dst; ++ lsrc = (const bufhelp_int_t *)(const void *)src; ++ ++ for (; len >= sizeof(bufhelp_int_t); len -= sizeof(bufhelp_int_t)) ++ (ldst++)->a = (lsrc++)->a; ++ ++ dst = (byte *)ldst; ++ src = (const byte *)lsrc; ++ ++#ifndef BUFHELP_FAST_UNALIGNED_ACCESS ++do_bytes: ++#endif ++ /* Handle tail. */ ++ for (; len; len--) ++ *dst++ = *src++; ++#endif /*__GNUC__ >= 4 && (__x86_64__ || __i386__)*/ ++} ++ ++ ++/* Optimized function for buffer xoring */ ++static inline void ++buf_xor(void *_dst, const void *_src1, const void *_src2, size_t len) ++{ ++ byte *dst = _dst; ++ const byte *src1 = _src1; ++ const byte *src2 = _src2; ++ bufhelp_int_t *ldst; ++ const bufhelp_int_t *lsrc1, *lsrc2; ++#ifndef BUFHELP_FAST_UNALIGNED_ACCESS ++ const unsigned int longmask = sizeof(bufhelp_int_t) - 1; ++ ++ /* Skip fast processing if buffers are unaligned. */ ++ if (((uintptr_t)dst | (uintptr_t)src1 | (uintptr_t)src2) & longmask) ++ goto do_bytes; ++#endif ++ ++ ldst = (bufhelp_int_t *)(void *)dst; ++ lsrc1 = (const bufhelp_int_t *)(const void *)src1; ++ lsrc2 = (const bufhelp_int_t *)(const void *)src2; ++ ++ for (; len >= sizeof(bufhelp_int_t); len -= sizeof(bufhelp_int_t)) ++ (ldst++)->a = (lsrc1++)->a ^ (lsrc2++)->a; ++ ++ dst = (byte *)ldst; ++ src1 = (const byte *)lsrc1; ++ src2 = (const byte *)lsrc2; ++ ++#ifndef BUFHELP_FAST_UNALIGNED_ACCESS ++do_bytes: ++#endif ++ /* Handle tail. */ ++ for (; len; len--) ++ *dst++ = *src1++ ^ *src2++; ++} ++ ++ ++/* Optimized function for in-place buffer xoring. */ ++static inline void ++buf_xor_1(void *_dst, const void *_src, size_t len) ++{ ++ byte *dst = _dst; ++ const byte *src = _src; ++ bufhelp_int_t *ldst; ++ const bufhelp_int_t *lsrc; ++#ifndef BUFHELP_FAST_UNALIGNED_ACCESS ++ const unsigned int longmask = sizeof(bufhelp_int_t) - 1; ++ ++ /* Skip fast processing if buffers are unaligned. */ ++ if (((uintptr_t)dst | (uintptr_t)src) & longmask) ++ goto do_bytes; ++#endif ++ ++ ldst = (bufhelp_int_t *)(void *)dst; ++ lsrc = (const bufhelp_int_t *)(const void *)src; ++ ++ for (; len >= sizeof(bufhelp_int_t); len -= sizeof(bufhelp_int_t)) ++ (ldst++)->a ^= (lsrc++)->a; ++ ++ dst = (byte *)ldst; ++ src = (const byte *)lsrc; ++ ++#ifndef BUFHELP_FAST_UNALIGNED_ACCESS ++do_bytes: ++#endif ++ /* Handle tail. */ ++ for (; len; len--) ++ *dst++ ^= *src++; ++} ++ ++ ++/* Optimized function for buffer xoring with two destination buffers. Used ++ mainly by CFB mode encryption. */ ++static inline void ++buf_xor_2dst(void *_dst1, void *_dst2, const void *_src, size_t len) ++{ ++ byte *dst1 = _dst1; ++ byte *dst2 = _dst2; ++ const byte *src = _src; ++ bufhelp_int_t *ldst1, *ldst2; ++ const bufhelp_int_t *lsrc; ++#ifndef BUFHELP_FAST_UNALIGNED_ACCESS ++ const unsigned int longmask = sizeof(bufhelp_int_t) - 1; ++ ++ /* Skip fast processing if buffers are unaligned. */ ++ if (((uintptr_t)src | (uintptr_t)dst1 | (uintptr_t)dst2) & longmask) ++ goto do_bytes; ++#endif ++ ++ ldst1 = (bufhelp_int_t *)(void *)dst1; ++ ldst2 = (bufhelp_int_t *)(void *)dst2; ++ lsrc = (const bufhelp_int_t *)(const void *)src; ++ ++ for (; len >= sizeof(bufhelp_int_t); len -= sizeof(bufhelp_int_t)) ++ (ldst1++)->a = ((ldst2++)->a ^= (lsrc++)->a); ++ ++ dst1 = (byte *)ldst1; ++ dst2 = (byte *)ldst2; ++ src = (const byte *)lsrc; ++ ++#ifndef BUFHELP_FAST_UNALIGNED_ACCESS ++do_bytes: ++#endif ++ /* Handle tail. */ ++ for (; len; len--) ++ *dst1++ = (*dst2++ ^= *src++); ++} ++ ++ ++/* Optimized function for combined buffer xoring and copying. Used by mainly ++ CBC mode decryption. */ ++static inline void ++buf_xor_n_copy_2(void *_dst_xor, const void *_src_xor, void *_srcdst_cpy, ++ const void *_src_cpy, size_t len) ++{ ++ byte *dst_xor = _dst_xor; ++ byte *srcdst_cpy = _srcdst_cpy; ++ const byte *src_xor = _src_xor; ++ const byte *src_cpy = _src_cpy; ++ byte temp; ++ bufhelp_int_t *ldst_xor, *lsrcdst_cpy; ++ const bufhelp_int_t *lsrc_cpy, *lsrc_xor; ++ uintptr_t ltemp; ++#ifndef BUFHELP_FAST_UNALIGNED_ACCESS ++ const unsigned int longmask = sizeof(bufhelp_int_t) - 1; ++ ++ /* Skip fast processing if buffers are unaligned. */ ++ if (((uintptr_t)src_cpy | (uintptr_t)src_xor | (uintptr_t)dst_xor | ++ (uintptr_t)srcdst_cpy) & longmask) ++ goto do_bytes; ++#endif ++ ++ ldst_xor = (bufhelp_int_t *)(void *)dst_xor; ++ lsrc_xor = (const bufhelp_int_t *)(void *)src_xor; ++ lsrcdst_cpy = (bufhelp_int_t *)(void *)srcdst_cpy; ++ lsrc_cpy = (const bufhelp_int_t *)(const void *)src_cpy; ++ ++ for (; len >= sizeof(bufhelp_int_t); len -= sizeof(bufhelp_int_t)) ++ { ++ ltemp = (lsrc_cpy++)->a; ++ (ldst_xor++)->a = (lsrcdst_cpy)->a ^ (lsrc_xor++)->a; ++ (lsrcdst_cpy++)->a = ltemp; ++ } ++ ++ dst_xor = (byte *)ldst_xor; ++ src_xor = (const byte *)lsrc_xor; ++ srcdst_cpy = (byte *)lsrcdst_cpy; ++ src_cpy = (const byte *)lsrc_cpy; ++ ++#ifndef BUFHELP_FAST_UNALIGNED_ACCESS ++do_bytes: ++#endif ++ /* Handle tail. */ ++ for (; len; len--) ++ { ++ temp = *src_cpy++; ++ *dst_xor++ = *srcdst_cpy ^ *src_xor++; ++ *srcdst_cpy++ = temp; ++ } ++} ++ ++ ++/* Optimized function for combined buffer xoring and copying. Used by mainly ++ CFB mode decryption. */ ++static inline void ++buf_xor_n_copy(void *_dst_xor, void *_srcdst_cpy, const void *_src, size_t len) ++{ ++ buf_xor_n_copy_2(_dst_xor, _src, _srcdst_cpy, _src, len); ++} ++ ++ ++/* Constant-time compare of two buffers. Returns 1 if buffers are equal, ++ and 0 if buffers differ. */ ++static inline int ++buf_eq_const(const void *_a, const void *_b, size_t len) ++{ ++ const byte *a = _a; ++ const byte *b = _b; ++ size_t diff, i; ++ ++ /* Constant-time compare. */ ++ for (i = 0, diff = 0; i < len; i++) ++ diff -= !!(a[i] - b[i]); ++ ++ return !diff; ++} ++ ++ ++#ifndef BUFHELP_FAST_UNALIGNED_ACCESS ++ ++/* Functions for loading and storing unaligned u32 values of different ++ endianness. */ ++static inline u32 buf_get_be32(const void *_buf) ++{ ++ const byte *in = _buf; ++ return ((u32)in[0] << 24) | ((u32)in[1] << 16) | \ ++ ((u32)in[2] << 8) | (u32)in[3]; ++} ++ ++static inline u32 buf_get_le32(const void *_buf) ++{ ++ const byte *in = _buf; ++ return ((u32)in[3] << 24) | ((u32)in[2] << 16) | \ ++ ((u32)in[1] << 8) | (u32)in[0]; ++} ++ ++static inline void buf_put_be32(void *_buf, u32 val) ++{ ++ byte *out = _buf; ++ out[0] = val >> 24; ++ out[1] = val >> 16; ++ out[2] = val >> 8; ++ out[3] = val; ++} ++ ++static inline void buf_put_le32(void *_buf, u32 val) ++{ ++ byte *out = _buf; ++ out[3] = val >> 24; ++ out[2] = val >> 16; ++ out[1] = val >> 8; ++ out[0] = val; ++} ++ ++ ++/* Functions for loading and storing unaligned u64 values of different ++ endianness. */ ++static inline u64 buf_get_be64(const void *_buf) ++{ ++ const byte *in = _buf; ++ return ((u64)in[0] << 56) | ((u64)in[1] << 48) | \ ++ ((u64)in[2] << 40) | ((u64)in[3] << 32) | \ ++ ((u64)in[4] << 24) | ((u64)in[5] << 16) | \ ++ ((u64)in[6] << 8) | (u64)in[7]; ++} ++ ++static inline u64 buf_get_le64(const void *_buf) ++{ ++ const byte *in = _buf; ++ return ((u64)in[7] << 56) | ((u64)in[6] << 48) | \ ++ ((u64)in[5] << 40) | ((u64)in[4] << 32) | \ ++ ((u64)in[3] << 24) | ((u64)in[2] << 16) | \ ++ ((u64)in[1] << 8) | (u64)in[0]; ++} ++ ++static inline void buf_put_be64(void *_buf, u64 val) ++{ ++ byte *out = _buf; ++ out[0] = val >> 56; ++ out[1] = val >> 48; ++ out[2] = val >> 40; ++ out[3] = val >> 32; ++ out[4] = val >> 24; ++ out[5] = val >> 16; ++ out[6] = val >> 8; ++ out[7] = val; ++} ++ ++static inline void buf_put_le64(void *_buf, u64 val) ++{ ++ byte *out = _buf; ++ out[7] = val >> 56; ++ out[6] = val >> 48; ++ out[5] = val >> 40; ++ out[4] = val >> 32; ++ out[3] = val >> 24; ++ out[2] = val >> 16; ++ out[1] = val >> 8; ++ out[0] = val; ++} ++ ++#else /*BUFHELP_FAST_UNALIGNED_ACCESS*/ ++ ++typedef struct bufhelp_u32_s ++{ ++ u32 a; ++} __attribute__((packed, aligned(1))) bufhelp_u32_t; ++ ++/* Functions for loading and storing unaligned u32 values of different ++ endianness. */ ++static inline u32 buf_get_be32(const void *_buf) ++{ ++ return be_bswap32(((const bufhelp_u32_t *)_buf)->a); ++} ++ ++static inline u32 buf_get_le32(const void *_buf) ++{ ++ return le_bswap32(((const bufhelp_u32_t *)_buf)->a); ++} ++ ++static inline void buf_put_be32(void *_buf, u32 val) ++{ ++ bufhelp_u32_t *out = _buf; ++ out->a = be_bswap32(val); ++} ++ ++static inline void buf_put_le32(void *_buf, u32 val) ++{ ++ bufhelp_u32_t *out = _buf; ++ out->a = le_bswap32(val); ++} ++ ++ ++typedef struct bufhelp_u64_s ++{ ++ u64 a; ++} __attribute__((packed, aligned(1))) bufhelp_u64_t; ++ ++/* Functions for loading and storing unaligned u64 values of different ++ endianness. */ ++static inline u64 buf_get_be64(const void *_buf) ++{ ++ return be_bswap64(((const bufhelp_u64_t *)_buf)->a); ++} ++ ++static inline u64 buf_get_le64(const void *_buf) ++{ ++ return le_bswap64(((const bufhelp_u64_t *)_buf)->a); ++} ++ ++static inline void buf_put_be64(void *_buf, u64 val) ++{ ++ bufhelp_u64_t *out = _buf; ++ out->a = be_bswap64(val); ++} ++ ++static inline void buf_put_le64(void *_buf, u64 val) ++{ ++ bufhelp_u64_t *out = _buf; ++ out->a = le_bswap64(val); ++} ++ ++ ++#endif /*BUFHELP_FAST_UNALIGNED_ACCESS*/ ++ ++#endif /*GCRYPT_BUFHELP_H*/ diff --git a/grub-core/tests/checksums.h b/grub-core/tests/checksums.h -index 68d8ce7c7753ff721ab0d5a12d40b2aff20c694c..921e57ff48d0be9ecf5d45a75ce1711d262cf7a8 100644 +index 68d8ce7c7753ff721ab0d5a12d40b2aff20c694c..8273bd105deec0bf21f507e0eddb867f104afc5d 100644 --- a/grub-core/tests/checksums.h +++ b/grub-core/tests/checksums.h -@@ -1,101 +1,101 @@ +@@ -1,129 +1,129 @@ - { "cmdline_cat", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xcd5fc34e, 0xcd5fc34e, 0xeabbecab, 0xeabbecab, 0xc9950151, 0xc9950151, 0x2be222b6, 0x2be222b6, 0xe88c769e, 0xe88c769e, 0x6be4910e, 0x6be4910e, 0x1dc1fe4f, 0x1dc1fe4f, 0xd7613e8f, 0xd7613e8f, 0xf8124196, 0xf8124196, 0x130f5935, 0x130f5935, 0x2872330e, 0x2872330e, 0xaa7b7868, 0xaa7b7868, 0x558eaeea, 0x558eaeea, 0x92f7960f, 0x92f7960f, 0xc5bfc709, 0xc5bfc709, 0x699732fe, 0x699732fe, 0xc859125f, 0xc859125f, 0xfc6ac729, 0xfc6ac729, 0xcdab6cd4, 0xcdab6cd4, 0x58a8b7f8, 0x58a8b7f8, 0xc0e73385, 0x6560d6ef, 0x3be8bb5d, 0x3be8bb5d, }, 45 }, - { "cmdline_cat", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x13029f94, 0x13029f94, 0x7785fdab, 0x7785fdab, 0x95a7c1e8, 0x95a7c1e8, 0x315ab3e3, 0x315ab3e3, 0x6787f012, 0x6787f012, 0x79b1ecdc, 0x79b1ecdc, 0xdbc67810, 0xdbc67810, 0xafaa982e, 0xafaa982e, 0xc5cd0157, 0xc5cd0157, 0x3c50dd64, 0x3c50dd64, 0x1056cac0, 0x1056cac0, 0x1d7a41fa, 0x1d7a41fa, 0x5690b1e8, 0x5690b1e8, 0x616831d6, 0x616831d6, 0xfaf8e726, 0xfaf8e726, 0xd1ec5e26, 0xd1ec5e26, 0x3c269e1f, 0x3c269e1f, 0x1aa7952d, 0x1aa7952d, 0x6e7e2f99, 0x6e7e2f99, 0x98f4c02, 0x98f4c02, 0xc3f1abf2, 0xe348bb73, 0xea53cd60, 0xea53cd60, }, 45 }, - { "cmdline_cat", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x8fbb4f4c, 0x8fbb4f4c, 0x5dc00167, 0x5dc00167, 0xbc124df8, 0xbc124df8, 0x31cf0f8e, 0x31cf0f8e, 0x798cc4ed, 0x798cc4ed, 0xc5d2a091, 0xc5d2a091, 0xb58a0591, 0xb58a0591, 0x4d118aca, 0x4d118aca, 0xbb06c7ee, 0xbb06c7ee, 0x42179db7, 0x42179db7, 0x65f2d81e, 0x65f2d81e, 0xa2628bcb, 0xa2628bcb, 0xbdb7f4b, 0xbdb7f4b, 0x66b10309, 0x66b10309, 0x1a550ea9, 0x1a550ea9, 0x377a297d, 0x377a297d, 0x2ea99015, 0x2ea99015, 0x4e20d7bc, 0x4e20d7bc, 0x8ecbde02, 0x8ecbde02, 0xdfa2195a, 0xdfa2195a, 0xe113d2a, 0xe204ee5b, 0x734679c1, 0x734679c1, }, 45 }, @@ -6192,107 +12829,191 @@ index 68d8ce7c7753ff721ab0d5a12d40b2aff20c694c..921e57ff48d0be9ecf5d45a75ce1711d - { "gfxterm_high", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x8ca34476, 0x9c555f17, 0x8ca34476, 0x1fc54b41, 0x5fcf013d, 0x5fcf013d, 0x819b5c4e, 0x819b5c4e, 0x819b5c4e, 0x538b4438, 0x538b4438, 0x538b4438, 0x45f87ba7, 0x45f87ba7, 0x45f87ba7, 0x5fcf013d, 0x1fc54b41, 0x1fc54b41, 0x5fcf013d, }, 20 }, - { "gfxterm_high", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xf19f6af8, 0xa5e7ce26, 0xf19f6af8, 0x1619aea6, 0xdd28f52b, 0xdd28f52b, 0xcd83646c, 0xcd83646c, 0xcd83646c, 0xecbf9d88, 0xecbf9d88, 0xecbf9d88, 0x91075604, 0x91075604, 0x91075604, 0xdd28f52b, 0x1619aea6, 0x1619aea6, 0xdd28f52b, }, 20 }, - { "gfxterm_high", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x5f75414f, 0xf4e496f2, 0x5f75414f, 0x27fd1fe0, 0x43d1f34, 0x43d1f34, 0xb200c08a, 0xb200c08a, 0xb200c08a, 0xcd0a6922, 0xcd0a6922, 0xcd0a6922, 0x545b6ca4, 0x545b6ca4, 0x545b6ca4, 0x43d1f34, 0x27fd1fe0, 0x27fd1fe0, 0x43d1f34, }, 20 }, -+ { "cmdline_cat", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x8851b0ee, 0x8851b0ee, 0xafb59f0b, 0xafb59f0b, 0x8c9b72f1, 0x8c9b72f1, 0x6eec5116, 0x6eec5116, 0xad82053e, 0xad82053e, 0x2eeae2ae, 0x2eeae2ae, 0x58cf8def, 0x58cf8def, 0x926f4d2f, 0x926f4d2f, 0xbd1c3236, 0xbd1c3236, 0x56012a95, 0x56012a95, 0x6d7c40ae, 0x6d7c40ae, 0xef750bc8, 0xef750bc8, 0x1080dd4a, 0x1080dd4a, 0xd7f9e5af, 0xd7f9e5af, 0x80b1b4a9, 0x80b1b4a9, 0x2c99415e, 0x2c99415e, 0x8d5761ff, 0x8d5761ff, 0xb964b489, 0xb964b489, 0x88a51f74, 0x88a51f74, 0x1da6c458, 0x1da6c458, 0x85e94025, 0x206ea54f, 0x7ee6c8fd, 0x7ee6c8fd, }, 45 }, -+ { "cmdline_cat", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x834b70a0, 0x834b70a0, 0xe7cc129f, 0xe7cc129f, 0x5ee2edc, 0x5ee2edc, 0xa1135cd7, 0xa1135cd7, 0xf7ce1f26, 0xf7ce1f26, 0xe9f803e8, 0xe9f803e8, 0x4b8f9724, 0x4b8f9724, 0x3fe3771a, 0x3fe3771a, 0x5584ee63, 0x5584ee63, 0xac193250, 0xac193250, 0x801f25f4, 0x801f25f4, 0x8d33aece, 0x8d33aece, 0xc6d95edc, 0xc6d95edc, 0xf121dee2, 0xf121dee2, 0x6ab10812, 0x6ab10812, 0x41a5b112, 0x41a5b112, 0xac6f712b, 0xac6f712b, 0x8aee7a19, 0x8aee7a19, 0xfe37c0ad, 0xfe37c0ad, 0x99c6a336, 0x99c6a336, 0x53b844c6, 0x73015447, 0x7a1a2254, 0x7a1a2254, }, 45 }, -+ { "cmdline_cat", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xb121c912, 0xb121c912, 0x635a8739, 0x635a8739, 0x8288cba6, 0x8288cba6, 0xf5589d0, 0xf5589d0, 0x471642b3, 0x471642b3, 0xfb4826cf, 0xfb4826cf, 0x8b1083cf, 0x8b1083cf, 0x738b0c94, 0x738b0c94, 0x859c41b0, 0x859c41b0, 0x7c8d1be9, 0x7c8d1be9, 0x5b685e40, 0x5b685e40, 0x9cf80d95, 0x9cf80d95, 0x3541f915, 0x3541f915, 0x582b8557, 0x582b8557, 0x24cf88f7, 0x24cf88f7, 0x9e0af23, 0x9e0af23, 0x1033164b, 0x1033164b, 0x70ba51e2, 0x70ba51e2, 0xb051585c, 0xb051585c, 0xe1389f04, 0xe1389f04, 0x308bbb74, 0xdc9e6805, 0x4ddcff9f, 0x4ddcff9f, }, 45 }, -+ { "cmdline_cat", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0xac16e832, 0xac16e832, 0xbf6ab9c6, 0xbf6ab9c6, 0x1063e15a, 0x1063e15a, 0xf908e3ff, 0xf908e3ff, 0xcb37d841, 0xcb37d841, 0x9b8ffa7d, 0x9b8ffa7d, 0x38d2a26c, 0x38d2a26c, 0x6989f09b, 0x6989f09b, 0x481451e, 0x481451e, 0x17b3177, 0x17b3177, 0x3ea52aeb, 0x3ea52aeb, 0xc24de674, 0xc24de674, 0x4ab163cc, 0x4ab163cc, 0xc482b092, 0xc482b092, 0x55ffc7e2, 0x55ffc7e2, 0x3b4b34dd, 0x3b4b34dd, 0x9b1f047f, 0x9b1f047f, 0x3d42e414, 0x3d42e414, 0x35b2fb06, 0x35b2fb06, 0xb813b35f, 0xb813b35f, 0xc3ede6e0, 0xc35214c3, 0x340f0107, 0x340f0107, }, 45 }, -+ { "cmdline_cat", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x9c47caee, 0x9c47caee, 0x6c9c4f38, 0x6c9c4f38, 0x79c49615, 0x79c49615, 0x70fe9708, 0x70fe9708, 0x8e90c077, 0x8e90c077, 0xd8205b47, 0xd8205b47, 0xa34337e2, 0xa34337e2, 0xf4dffa53, 0xf4dffa53, 0x90a0779c, 0x90a0779c, 0x322820bb, 0x322820bb, 0x50e3383f, 0x50e3383f, 0x4a976e3e, 0x4a976e3e, 0x90b6f8d9, 0x90b6f8d9, 0x4058c301, 0x4058c301, 0x221a6810, 0x221a6810, 0x1f78a00e, 0x1f78a00e, 0x6a633d2c, 0x6a633d2c, 0xca177c65, 0xca177c65, 0xabb6c7f9, 0xabb6c7f9, 0x635a35e8, 0x635a35e8, 0x6da78f10, 0x53467ff8, 0xd037fdfa, 0xd037fdfa, }, 45 }, -+ { "cmdline_cat", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x2b6b8225, 0x2b6b8225, 0x83df9995, 0x83df9995, 0x5165ad0b, 0x5165ad0b, 0xe5a6f96d, 0xe5a6f96d, 0x798df957, 0x798df957, 0x8c0567e2, 0x8c0567e2, 0x5e5d7389, 0x5e5d7389, 0x47a39dd, 0x47a39dd, 0x894f44af, 0x894f44af, 0x1dff0a6, 0x1dff0a6, 0xf496e67b, 0xf496e67b, 0x29cb5702, 0x29cb5702, 0xeaf1387d, 0xeaf1387d, 0x4a9bf7, 0x4a9bf7, 0x11d20bee, 0x11d20bee, 0xa103dc2d, 0xa103dc2d, 0xd0265db9, 0xd0265db9, 0x42267334, 0x42267334, 0x96f85e8c, 0x96f85e8c, 0xa28eac49, 0xa28eac49, 0x4e660ae7, 0x70741b3, 0x183f2f2e, 0x183f2f2e, }, 45 }, -+ { "cmdline_cat", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x77b51f44, 0x77b51f44, 0xc8097569, 0xc8097569, 0x769aee5f, 0x769aee5f, 0xa35e159, 0xa35e159, 0x87a6341f, 0x87a6341f, 0xb61d944b, 0xb61d944b, 0x8b109cb3, 0x8b109cb3, 0xed3fb3e, 0xed3fb3e, 0xd7cc6c3, 0xd7cc6c3, 0x52077f0d, 0x52077f0d, 0x9d86d17e, 0x9d86d17e, 0x5e487bb, 0x5e487bb, 0x3a00041b, 0x3a00041b, 0xcfdeaf9e, 0xcfdeaf9e, 0x3e40af89, 0x3e40af89, 0x5ec41ea9, 0x5ec41ea9, 0x6298e4e7, 0x6298e4e7, 0xfd67f90e, 0xfd67f90e, 0x5ab5dc32, 0x5ab5dc32, 0xdd3ad694, 0xdd3ad694, 0x391222b4, 0xd4a98b43, 0xeaa2f62, 0xeaa2f62, }, 45 }, -+ { "gfxterm_menu", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x45b0713c, 0x237f9dbf, 0x45b0713c, 0x646bc7b, 0x59c36f00, 0x59c36f00, 0x7fd94135, 0x7fd94135, 0x7fd94135, 0x1592c53, 0x1592c53, 0x1592c53, 0x63af3981, 0x63af3981, 0x63af3981, 0x59c36f00, 0x646bc7b, 0x646bc7b, 0x59c36f00, }, 20 }, -+ { "gfxterm_menu", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x84abc7db, 0x20814063, 0x84abc7db, 0xaaae42a4, 0xaa4593fe, 0xaa4593fe, 0x2e88732f, 0x2e88732f, 0x2e88732f, 0x887d7e48, 0x887d7e48, 0x887d7e48, 0xa545d530, 0xa545d530, 0xa545d530, 0xaa4593fe, 0xaaae42a4, 0xaaae42a4, 0xaa4593fe, }, 20 }, -+ { "gfxterm_menu", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x5b85371a, 0xe10968c2, 0x5b85371a, 0x6925a9e, 0xc9cbf769, 0xc9cbf769, 0xda1c9f17, 0xda1c9f17, 0xda1c9f17, 0x24c45edb, 0x24c45edb, 0x24c45edb, 0xcd8ee1d3, 0xcd8ee1d3, 0xcd8ee1d3, 0xc9cbf769, 0x6925a9e, 0x6925a9e, 0xc9cbf769, }, 20 }, -+ { "gfxterm_menu", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x9130464d, 0x22904f7a, 0x9130464d, 0x3f660f95, 0x9813a416, 0x9813a416, 0xfb08d7cf, 0xfb08d7cf, 0xfb08d7cf, 0x6ad351fc, 0x6ad351fc, 0x6ad351fc, 0x73696c2c, 0x73696c2c, 0x73696c2c, 0x9813a416, 0x3f660f95, 0x3f660f95, 0x9813a416, }, 20 }, -+ { "gfxterm_menu", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x5185b14e, 0x4173aa2f, 0x5185b14e, 0x272384fd, 0x5fcf013d, 0x5fcf013d, 0x9e56a9e0, 0x9e56a9e0, 0x9e56a9e0, 0x4c46b196, 0x4c46b196, 0x4c46b196, 0x5a358e09, 0x5a358e09, 0x5a358e09, 0x5fcf013d, 0x272384fd, 0x272384fd, 0x5fcf013d, }, 20 }, -+ { "gfxterm_menu", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x5cc0d3ef, 0x8b87731, 0x5cc0d3ef, 0x47c509e8, 0xdd28f52b, 0xdd28f52b, 0xe1579057, 0xe1579057, 0xe1579057, 0xc06b69b3, 0xc06b69b3, 0xc06b69b3, 0xbdd3a23f, 0xbdd3a23f, 0xbdd3a23f, 0xdd28f52b, 0x47c509e8, 0x47c509e8, 0xdd28f52b, }, 20 }, -+ { "gfxterm_menu", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0xd1338a02, 0x7aa25dbf, 0xd1338a02, 0x2e8c9182, 0x43d1f34, 0x43d1f34, 0x6486f7c4, 0x6486f7c4, 0x6486f7c4, 0x1b8c5e6c, 0x1b8c5e6c, 0x1b8c5e6c, 0x82dd5bea, 0x82dd5bea, 0x82dd5bea, 0x43d1f34, 0x2e8c9182, 0x2e8c9182, 0x43d1f34, }, 20 }, -+ { "gfxmenu", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x1027210c, 0x64e51c81, 0x1027210c, 0x45ca4a8a, 0x9a2e0d26, 0x2b88b6ce, 0x2b88b6ce, 0x2b88b6ce, 0x7750400e, 0x7750400e, 0x7750400e, 0x5ec88e9c, 0x5ec88e9c, 0x5ec88e9c, 0x59c36f00, 0x45ca4a8a, 0x45ca4a8a, }, 18 }, -+ { "gfxmenu", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x8d12f697, 0xc5b32248, 0x8d12f697, 0x56720aa4, 0xa9d58ccd, 0xa1b1a1b5, 0xa1b1a1b5, 0xa1b1a1b5, 0xf4ee0bbf, 0xf4ee0bbf, 0xf4ee0bbf, 0x9dddc3f6, 0x9dddc3f6, 0x9dddc3f6, 0xaa4593fe, 0x56720aa4, 0x56720aa4, }, 18 }, -+ { "gfxmenu", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xa5ec9f45, 0xdb7085d8, 0xa5ec9f45, 0x9caf1d3f, 0x5411be8b, 0xa07e74d3, 0xa07e74d3, 0xa07e74d3, 0xdfc0d247, 0xdfc0d247, 0xdfc0d247, 0x9db4b23f, 0x9db4b23f, 0x9db4b23f, 0xc9cbf769, 0x9caf1d3f, 0x9caf1d3f, }, 18 }, -+ { "gfxmenu", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x1c3742c9, 0xce8e83bf, 0xeb96c838, 0xce8e83bf, 0x73cb3bc1, 0x740d78cf, 0x84312594, 0x84312594, 0x84312594, 0x6f94cfe8, 0x6f94cfe8, 0x6f94cfe8, 0x69dfcf18, 0x69dfcf18, 0x69dfcf18, 0x1c3742c9, 0x73cb3bc1, 0x73cb3bc1, }, 18 }, -+ { "gfxmenu", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0xcc5a7bed, 0x56a03e51, 0xee7d8d4b, 0x56a03e51, 0x5bdf9413, 0xbcda144c, 0x131c0760, 0x131c0760, 0x131c0760, 0x7c55db71, 0x7c55db71, 0x7c55db71, 0x71a34572, 0x71a34572, 0x71a34572, 0xcc5a7bed, 0x5bdf9413, 0x5bdf9413, }, 18 }, -+ { "gfxmenu", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xef4a3312, 0xea8a9cf0, 0x8929e522, 0xea8a9cf0, 0x78f3dfbc, 0x5d55a141, 0xb9092e0b, 0xb9092e0b, 0xb9092e0b, 0x7fbb6a15, 0x7fbb6a15, 0x7fbb6a15, 0x6bdebaaa, 0x6bdebaaa, 0x6bdebaaa, 0xef4a3312, 0x78f3dfbc, 0x78f3dfbc, }, 18 }, -+ { "gfxmenu", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x54e48d80, 0x6dcf1d57, 0x925a4c8f, 0x6dcf1d57, 0x69005b38, 0x6d6bb4bc, 0x14f7c6b1, 0x14f7c6b1, 0x14f7c6b1, 0x95043060, 0x95043060, 0x95043060, 0x3a0890f, 0x3a0890f, 0x3a0890f, 0x54e48d80, 0x69005b38, 0x69005b38, }, 18 }, -+ { "gfxterm_ar", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x77ff5efc, 0x791fe364, 0x77ff5efc, 0x340993bb, 0x59c36f00, 0x59c36f00, 0x3908ca1e, 0x3908ca1e, 0x3908ca1e, 0x4788a778, 0x4788a778, 0x4788a778, 0x257eb2aa, 0x257eb2aa, 0x257eb2aa, 0x59c36f00, 0x340993bb, 0x340993bb, 0x59c36f00, }, 20 }, -+ { "gfxterm_ar", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0xb2d04b0f, 0x46cdbc23, 0xb2d04b0f, 0x9cd5ce70, 0xaa4593fe, 0xaa4593fe, 0x44bf6b37, 0x44bf6b37, 0x44bf6b37, 0xe24a6650, 0xe24a6650, 0xe24a6650, 0xcf72cd28, 0xcf72cd28, 0xcf72cd28, 0xaa4593fe, 0x9cd5ce70, 0x9cd5ce70, 0xaa4593fe, }, 20 }, -+ { "gfxterm_ar", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x4bb823b8, 0x59349835, 0x4bb823b8, 0x16af4e3c, 0xc9cbf769, 0xc9cbf769, 0x2784b68e, 0x2784b68e, 0x2784b68e, 0xd95c7742, 0xd95c7742, 0xd95c7742, 0x3016c84a, 0x3016c84a, 0x3016c84a, 0xc9cbf769, 0x16af4e3c, 0x16af4e3c, 0xc9cbf769, }, 20 }, -+ { "gfxterm_ar", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0xb821e44, 0x16b3ac05, 0xb821e44, 0xa5d4579c, 0x9813a416, 0x9813a416, 0xca80d730, 0xca80d730, 0xca80d730, 0x5b5b5103, 0x5b5b5103, 0x5b5b5103, 0x42e16cd3, 0x42e16cd3, 0x42e16cd3, 0x9813a416, 0xa5d4579c, 0xa5d4579c, 0x9813a416, }, 20 }, -+ { "gfxterm_ar", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xbe0b9671, 0x7f6e98d0, 0xbe0b9671, 0xc8ada3c2, 0x5fcf013d, 0x5fcf013d, 0x57a0c67d, 0x57a0c67d, 0x57a0c67d, 0x85b0de0b, 0x85b0de0b, 0x85b0de0b, 0x93c3e194, 0x93c3e194, 0x93c3e194, 0x5fcf013d, 0xc8ada3c2, 0xc8ada3c2, 0x5fcf013d, }, 20 }, -+ { "gfxterm_ar", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x9f18b29e, 0x50e7d383, 0x9f18b29e, 0x841d6899, 0xdd28f52b, 0xdd28f52b, 0xd12092dc, 0xd12092dc, 0xd12092dc, 0xf01c6b38, 0xf01c6b38, 0xf01c6b38, 0x8da4a0b4, 0x8da4a0b4, 0x8da4a0b4, 0xdd28f52b, 0x841d6899, 0x841d6899, 0xdd28f52b, }, 20 }, -+ { "gfxterm_ar", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x4e8d4d8c, 0x3f32cb90, 0x4e8d4d8c, 0xb132560c, 0x43d1f34, 0x43d1f34, 0x1e7f303c, 0x1e7f303c, 0x1e7f303c, 0x61759994, 0x61759994, 0x61759994, 0xf8249c12, 0xf8249c12, 0xf8249c12, 0x43d1f34, 0xb132560c, 0xb132560c, 0x43d1f34, }, 20 }, -+ { "gfxterm_cyr", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x4f39b2c5, 0x37084023, 0x4f39b2c5, 0xccf7f82, 0x59c36f00, 0x59c36f00, 0xb5dad2e, 0xb5dad2e, 0xb5dad2e, 0x75ddc048, 0x75ddc048, 0x75ddc048, 0x172bd59a, 0x172bd59a, 0x172bd59a, 0x59c36f00, 0xccf7f82, 0xccf7f82, 0x59c36f00, }, 20 }, -+ { "gfxterm_cyr", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0xd5f24f8e, 0x76463f82, 0xd5f24f8e, 0xfbf7caf1, 0xaa4593fe, 0xaa4593fe, 0xb897c475, 0xb897c475, 0xb897c475, 0x1e62c912, 0x1e62c912, 0x1e62c912, 0x335a626a, 0x335a626a, 0x335a626a, 0xaa4593fe, 0xfbf7caf1, 0xfbf7caf1, 0xaa4593fe, }, 20 }, -+ { "gfxterm_cyr", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x8aa7c8c3, 0x28620e7e, 0x8aa7c8c3, 0xd7b0a547, 0xc9cbf769, 0xc9cbf769, 0x860f1899, 0x860f1899, 0x860f1899, 0x78d7d955, 0x78d7d955, 0x78d7d955, 0x919d665d, 0x919d665d, 0x919d665d, 0xc9cbf769, 0xd7b0a547, 0xd7b0a547, 0xc9cbf769, }, 20 }, -+ { "gfxterm_cyr", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x89654b6, 0x26bab4dd, 0x89654b6, 0xa6c01d6e, 0x9813a416, 0x9813a416, 0xc67652d9, 0xc67652d9, 0xc67652d9, 0x57add4ea, 0x57add4ea, 0x57add4ea, 0x4e17e93a, 0x4e17e93a, 0x4e17e93a, 0x9813a416, 0xa6c01d6e, 0xa6c01d6e, 0x9813a416, }, 20 }, -+ { "gfxterm_cyr", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x77945f28, 0xec3ce845, 0x77945f28, 0x1326a9b, 0x5fcf013d, 0x5fcf013d, 0xc8e6e12c, 0xc8e6e12c, 0xc8e6e12c, 0x1af6f95a, 0x1af6f95a, 0x1af6f95a, 0xc85c6c5, 0xc85c6c5, 0xc85c6c5, 0x5fcf013d, 0x1326a9b, 0x1326a9b, 0x5fcf013d, }, 20 }, -+ { "gfxterm_cyr", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x4450a5dc, 0xda479f49, 0x4450a5dc, 0x5f557fdb, 0xdd28f52b, 0xdd28f52b, 0xddfe9197, 0xddfe9197, 0xddfe9197, 0xfcc26873, 0xfcc26873, 0xfcc26873, 0x817aa3ff, 0x817aa3ff, 0x817aa3ff, 0xdd28f52b, 0x5f557fdb, 0x5f557fdb, 0xdd28f52b, }, 20 }, -+ { "gfxterm_cyr", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x409098da, 0x2e0890e, 0x409098da, 0xbf2f835a, 0x43d1f34, 0x43d1f34, 0x253d050e, 0x253d050e, 0x253d050e, 0x5a37aca6, 0x5a37aca6, 0x5a37aca6, 0xc366a920, 0xc366a920, 0xc366a920, 0x43d1f34, 0xbf2f835a, 0xbf2f835a, 0x43d1f34, }, 20 }, -+ { "gfxterm_heb", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x546aa9f1, 0x56bf26d0, 0x546aa9f1, 0x179c64b6, 0x59c36f00, 0x59c36f00, 0xa98ad4a1, 0xa98ad4a1, 0xa98ad4a1, 0xd70ab9c7, 0xd70ab9c7, 0xd70ab9c7, 0xb5fcac15, 0xb5fcac15, 0xb5fcac15, 0x59c36f00, 0x179c64b6, 0x179c64b6, 0x59c36f00, }, 20 }, -+ { "gfxterm_heb", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x12592c97, 0xa10f7034, 0x12592c97, 0x3c5ca9e8, 0xaa4593fe, 0xaa4593fe, 0x2c3e194, 0x2c3e194, 0x2c3e194, 0xa436ecf3, 0xa436ecf3, 0xa436ecf3, 0x890e478b, 0x890e478b, 0x890e478b, 0xaa4593fe, 0x3c5ca9e8, 0x3c5ca9e8, 0xaa4593fe, }, 20 }, -+ { "gfxterm_heb", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xed5de42a, 0x5cf94e51, 0xed5de42a, 0xb04a89ae, 0xc9cbf769, 0xc9cbf769, 0xdd578210, 0xdd578210, 0xdd578210, 0x238f43dc, 0x238f43dc, 0x238f43dc, 0xcac5fcd4, 0xcac5fcd4, 0xcac5fcd4, 0xc9cbf769, 0xb04a89ae, 0xb04a89ae, 0xc9cbf769, }, 20 }, -+ { "gfxterm_heb", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0xbbc56f90, 0x4f643bbb, 0xbbc56f90, 0x15932648, 0x9813a416, 0x9813a416, 0x28aba4d1, 0x28aba4d1, 0x28aba4d1, 0xb97022e2, 0xb97022e2, 0xb97022e2, 0xa0ca1f32, 0xa0ca1f32, 0xa0ca1f32, 0x9813a416, 0x15932648, 0x15932648, 0x9813a416, }, 20 }, -+ { "gfxterm_heb", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x43465d8c, 0x6399888a, 0x43465d8c, 0x35e0683f, 0x5fcf013d, 0x5fcf013d, 0x4895c207, 0x4895c207, 0x4895c207, 0x9a85da71, 0x9a85da71, 0x9a85da71, 0x8cf6e5ee, 0x8cf6e5ee, 0x8cf6e5ee, 0x5fcf013d, 0x35e0683f, 0x35e0683f, 0x5fcf013d, }, 20 }, -+ { "gfxterm_heb", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xd1e7f231, 0xe67e195e, 0xd1e7f231, 0xcae22836, 0xdd28f52b, 0xdd28f52b, 0xe7ae9f08, 0xe7ae9f08, 0xe7ae9f08, 0xc69266ec, 0xc69266ec, 0xc69266ec, 0xbb2aad60, 0xbb2aad60, 0xbb2aad60, 0xdd28f52b, 0xcae22836, 0xcae22836, 0xdd28f52b, }, 20 }, -+ { "gfxterm_heb", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x793e58f4, 0x5f939386, 0x793e58f4, 0x86814374, 0x43d1f34, 0x43d1f34, 0x12b2b9c1, 0x12b2b9c1, 0x12b2b9c1, 0x6db81069, 0x6db81069, 0x6db81069, 0xf4e915ef, 0xf4e915ef, 0xf4e915ef, 0x43d1f34, 0x86814374, 0x86814374, 0x43d1f34, }, 20 }, -+ { "gfxterm_gre", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x226c0d75, 0x9e291f4f, 0x226c0d75, 0x619ac032, 0x59c36f00, 0x59c36f00, 0x6fb6253, 0x6fb6253, 0x6fb6253, 0x787b0f35, 0x787b0f35, 0x787b0f35, 0x1a8d1ae7, 0x1a8d1ae7, 0x1a8d1ae7, 0x59c36f00, 0x619ac032, 0x619ac032, 0x59c36f00, }, 20 }, -+ { "gfxterm_gre", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x8355045, 0xfe058b68, 0x8355045, 0x2630d53a, 0xaa4593fe, 0xaa4593fe, 0x290a3822, 0x290a3822, 0x290a3822, 0x8fff3545, 0x8fff3545, 0x8fff3545, 0xa2c79e3d, 0xa2c79e3d, 0xa2c79e3d, 0xaa4593fe, 0x2630d53a, 0x2630d53a, 0xaa4593fe, }, 20 }, -+ { "gfxterm_gre", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xc702fa59, 0x74086887, 0xc702fa59, 0x9a1597dd, 0xc9cbf769, 0xc9cbf769, 0x60295baa, 0x60295baa, 0x60295baa, 0x9ef19a66, 0x9ef19a66, 0x9ef19a66, 0x77bb256e, 0x77bb256e, 0x77bb256e, 0xc9cbf769, 0x9a1597dd, 0x9a1597dd, 0xc9cbf769, }, 20 }, -+ { "gfxterm_gre", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x82385331, 0xf77eda42, 0x82385331, 0x2c6e1ae9, 0x9813a416, 0x9813a416, 0x140c0d1f, 0x140c0d1f, 0x140c0d1f, 0x85d78b2c, 0x85d78b2c, 0x85d78b2c, 0x9c6db6fc, 0x9c6db6fc, 0x9c6db6fc, 0x9813a416, 0x2c6e1ae9, 0x2c6e1ae9, 0x9813a416, }, 20 }, -+ { "gfxterm_gre", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x565d2d38, 0x34f757ec, 0x565d2d38, 0x20fb188b, 0x5fcf013d, 0x5fcf013d, 0x230bf123, 0x230bf123, 0x230bf123, 0xf11be955, 0xf11be955, 0xf11be955, 0xe768d6ca, 0xe768d6ca, 0xe768d6ca, 0x5fcf013d, 0x20fb188b, 0x20fb188b, 0x5fcf013d, }, 20 }, -+ { "gfxterm_gre", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x632132a4, 0x4a8c90b2, 0x632132a4, 0x7824e8a3, 0xdd28f52b, 0xdd28f52b, 0xef2bffce, 0xef2bffce, 0xef2bffce, 0xce17062a, 0xce17062a, 0xce17062a, 0xb3afcda6, 0xb3afcda6, 0xb3afcda6, 0xdd28f52b, 0x7824e8a3, 0x7824e8a3, 0xdd28f52b, }, 20 }, -+ { "gfxterm_gre", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x461d4cfa, 0xfd3492c2, 0x461d4cfa, 0xb9a2577a, 0x43d1f34, 0x43d1f34, 0xfb72301f, 0xfb72301f, 0xfb72301f, 0x847899b7, 0x847899b7, 0x847899b7, 0x1d299c31, 0x1d299c31, 0x1d299c31, 0x43d1f34, 0xb9a2577a, 0xb9a2577a, 0x43d1f34, }, 20 }, -+ { "gfxterm_ru", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x82758f66, 0xbac387fd, 0x82758f66, 0xc1834221, 0x59c36f00, 0x59c36f00, 0x4877befe, 0x4877befe, 0x4877befe, 0x36f7d398, 0x36f7d398, 0x36f7d398, 0x5401c64a, 0x5401c64a, 0x5401c64a, 0x59c36f00, 0xc1834221, 0xc1834221, 0x59c36f00, }, 20 }, -+ { "gfxterm_ru", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x4500a591, 0x9a40cbd8, 0x4500a591, 0x6b0520ee, 0xaa4593fe, 0xaa4593fe, 0x16db2902, 0x16db2902, 0x16db2902, 0xb02e2465, 0xb02e2465, 0xb02e2465, 0x9d168f1d, 0x9d168f1d, 0x9d168f1d, 0xaa4593fe, 0x6b0520ee, 0x6b0520ee, 0xaa4593fe, }, 20 }, -+ { "gfxterm_ru", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x3cd9ea11, 0x1244c852, 0x3cd9ea11, 0x61ce8795, 0xc9cbf769, 0xc9cbf769, 0x6b15d6f0, 0x6b15d6f0, 0x6b15d6f0, 0x95cd173c, 0x95cd173c, 0x95cd173c, 0x7c87a834, 0x7c87a834, 0x7c87a834, 0xc9cbf769, 0x61ce8795, 0x61ce8795, 0xc9cbf769, }, 20 }, -+ { "gfxterm_ru", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0xc818f15f, 0xbaf13382, 0xc818f15f, 0x664eb887, 0x9813a416, 0x9813a416, 0x350fe990, 0x350fe990, 0x350fe990, 0xa4d46fa3, 0xa4d46fa3, 0xa4d46fa3, 0xbd6e5273, 0xbd6e5273, 0xbd6e5273, 0x9813a416, 0x664eb887, 0x664eb887, 0x9813a416, }, 20 }, -+ { "gfxterm_ru", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xaa1dc81, 0x234341dd, 0xaa1dc81, 0x7c07e932, 0x5fcf013d, 0x5fcf013d, 0x969354c5, 0x969354c5, 0x969354c5, 0x44834cb3, 0x44834cb3, 0x44834cb3, 0x52f0732c, 0x52f0732c, 0x52f0732c, 0x5fcf013d, 0x7c07e932, 0x7c07e932, 0x5fcf013d, }, 20 }, -+ { "gfxterm_ru", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xd9aa4b29, 0x555fdda0, 0xd9aa4b29, 0xc2af912e, 0xdd28f52b, 0xdd28f52b, 0xe82cbfd, 0xe82cbfd, 0xe82cbfd, 0x2fbe3219, 0x2fbe3219, 0x2fbe3219, 0x5206f995, 0x5206f995, 0x5206f995, 0xdd28f52b, 0xc2af912e, 0xc2af912e, 0xdd28f52b, }, 20 }, -+ { "gfxterm_ru", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0xfd4e19ff, 0x42807b86, 0xfd4e19ff, 0x2f1027f, 0x43d1f34, 0x43d1f34, 0x924dc5be, 0x924dc5be, 0x924dc5be, 0xed476c16, 0xed476c16, 0xed476c16, 0x74166990, 0x74166990, 0x74166990, 0x43d1f34, 0x2f1027f, 0x2f1027f, 0x43d1f34, }, 20 }, -+ { "gfxterm_fr", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x3a63a2e6, 0x118487d4, 0x3a63a2e6, 0x79956fa1, 0x59c36f00, 0x59c36f00, 0x389f4d2d, 0x389f4d2d, 0x389f4d2d, 0x461f204b, 0x461f204b, 0x461f204b, 0x24e93599, 0x24e93599, 0x24e93599, 0x59c36f00, 0x79956fa1, 0x79956fa1, 0x59c36f00, }, 20 }, -+ { "gfxterm_fr", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x62d33f4d, 0x9544a8f4, 0x62d33f4d, 0x4cd6ba32, 0xaa4593fe, 0xaa4593fe, 0xfb86a3a4, 0xfb86a3a4, 0xfb86a3a4, 0x5d73aec3, 0x5d73aec3, 0x5d73aec3, 0x704b05bb, 0x704b05bb, 0x704b05bb, 0xaa4593fe, 0x4cd6ba32, 0x4cd6ba32, 0xaa4593fe, }, 20 }, -+ { "gfxterm_fr", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x8cc4b6dc, 0x1042c383, 0x8cc4b6dc, 0xd1d3db58, 0xc9cbf769, 0xc9cbf769, 0xeba8a32b, 0xeba8a32b, 0xeba8a32b, 0x157062e7, 0x157062e7, 0x157062e7, 0xfc3addef, 0xfc3addef, 0xfc3addef, 0xc9cbf769, 0xd1d3db58, 0xd1d3db58, 0xc9cbf769, }, 20 }, -+ { "gfxterm_fr", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x23f9afd, 0x465f5ecc, 0x23f9afd, 0xac69d325, 0x9813a416, 0x9813a416, 0xccf7a1e3, 0xccf7a1e3, 0xccf7a1e3, 0x5d2c27d0, 0x5d2c27d0, 0x5d2c27d0, 0x44961a00, 0x44961a00, 0x44961a00, 0x9813a416, 0xac69d325, 0xac69d325, 0x9813a416, }, 20 }, -+ { "gfxterm_fr", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xed796a26, 0x3132d083, 0xed796a26, 0x9bdf5f95, 0x5fcf013d, 0x5fcf013d, 0x42f66a49, 0x42f66a49, 0x42f66a49, 0x90e6723f, 0x90e6723f, 0x90e6723f, 0x86954da0, 0x86954da0, 0x86954da0, 0x5fcf013d, 0x9bdf5f95, 0x9bdf5f95, 0x5fcf013d, }, 20 }, -+ { "gfxterm_fr", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x54b28785, 0x7fbbe762, 0x54b28785, 0x4fb75d82, 0xdd28f52b, 0xdd28f52b, 0x14b1cf29, 0x14b1cf29, 0x14b1cf29, 0x358d36cd, 0x358d36cd, 0x358d36cd, 0x4835fd41, 0x4835fd41, 0x4835fd41, 0xdd28f52b, 0x4fb75d82, 0x4fb75d82, 0xdd28f52b, }, 20 }, -+ { "gfxterm_fr", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x7acc2669, 0xbf1a1d96, 0x7acc2669, 0x85733de9, 0x43d1f34, 0x43d1f34, 0x2cc1e8f4, 0x2cc1e8f4, 0x2cc1e8f4, 0x53cb415c, 0x53cb415c, 0x53cb415c, 0xca9a44da, 0xca9a44da, 0xca9a44da, 0x43d1f34, 0x85733de9, 0x85733de9, 0x43d1f34, }, 20 }, -+ { "gfxterm_quot", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xf9511593, 0x9f9ef910, 0xf9511593, 0xbaa7d8d4, 0x59c36f00, 0x59c36f00, 0x7fd94135, 0x7fd94135, 0x7fd94135, 0x1592c53, 0x1592c53, 0x1592c53, 0x63af3981, 0x63af3981, 0x63af3981, 0x59c36f00, 0xbaa7d8d4, 0xbaa7d8d4, 0x59c36f00, }, 20 }, -+ { "gfxterm_quot", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x3dcbe25f, 0x99e165e7, 0x3dcbe25f, 0x13ce6720, 0xaa4593fe, 0xaa4593fe, 0x2e88732f, 0x2e88732f, 0x2e88732f, 0x887d7e48, 0x887d7e48, 0x887d7e48, 0xa545d530, 0xa545d530, 0xa545d530, 0xaa4593fe, 0x13ce6720, 0x13ce6720, 0xaa4593fe, }, 20 }, -+ { "gfxterm_quot", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xdbedc74c, 0x61619894, 0xdbedc74c, 0x86faaac8, 0xc9cbf769, 0xc9cbf769, 0xda1c9f17, 0xda1c9f17, 0xda1c9f17, 0x24c45edb, 0x24c45edb, 0x24c45edb, 0xcd8ee1d3, 0xcd8ee1d3, 0xcd8ee1d3, 0xc9cbf769, 0x86faaac8, 0x86faaac8, 0xc9cbf769, }, 20 }, -+ { "gfxterm_quot", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x2411f56f, 0x97b1fc58, 0x2411f56f, 0x8a47bcb7, 0x9813a416, 0x9813a416, 0xfb08d7cf, 0xfb08d7cf, 0xfb08d7cf, 0x6ad351fc, 0x6ad351fc, 0x6ad351fc, 0x73696c2c, 0x73696c2c, 0x73696c2c, 0x9813a416, 0x8a47bcb7, 0x8a47bcb7, 0x9813a416, }, 20 }, -+ { "gfxterm_quot", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x13a65fb6, 0x35044d7, 0x13a65fb6, 0x65006a05, 0x5fcf013d, 0x5fcf013d, 0x9e56a9e0, 0x9e56a9e0, 0x9e56a9e0, 0x4c46b196, 0x4c46b196, 0x4c46b196, 0x5a358e09, 0x5a358e09, 0x5a358e09, 0x5fcf013d, 0x65006a05, 0x65006a05, 0x5fcf013d, }, 20 }, -+ { "gfxterm_quot", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xc8f05290, 0x9c88f64e, 0xc8f05290, 0xd3f58897, 0xdd28f52b, 0xdd28f52b, 0xe1579057, 0xe1579057, 0xe1579057, 0xc06b69b3, 0xc06b69b3, 0xc06b69b3, 0xbdd3a23f, 0xbdd3a23f, 0xbdd3a23f, 0xdd28f52b, 0xd3f58897, 0xd3f58897, 0xdd28f52b, }, 20 }, -+ { "gfxterm_quot", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x9cfbc80f, 0x376a1fb2, 0x9cfbc80f, 0x6344d38f, 0x43d1f34, 0x43d1f34, 0x6486f7c4, 0x6486f7c4, 0x6486f7c4, 0x1b8c5e6c, 0x1b8c5e6c, 0x1b8c5e6c, 0x82dd5bea, 0x82dd5bea, 0x82dd5bea, 0x43d1f34, 0x6344d38f, 0x6344d38f, 0x43d1f34, }, 20 }, -+ { "gfxterm_piglatin", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xd327ca68, 0x9c977e8c, 0xd327ca68, 0x90d1072f, 0x59c36f00, 0x59c36f00, 0x71c9d9, 0x71c9d9, 0x71c9d9, 0x7ef1a4bf, 0x7ef1a4bf, 0x7ef1a4bf, 0x1c07b16d, 0x1c07b16d, 0x1c07b16d, 0x59c36f00, 0x90d1072f, 0x90d1072f, 0x59c36f00, }, 20 }, -+ { "gfxterm_piglatin", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x2da3855b, 0x24c7b138, 0x2da3855b, 0x3a60024, 0xaa4593fe, 0xaa4593fe, 0x147ff249, 0x147ff249, 0x147ff249, 0xb28aff2e, 0xb28aff2e, 0xb28aff2e, 0x9fb25456, 0x9fb25456, 0x9fb25456, 0xaa4593fe, 0x3a60024, 0x3a60024, 0xaa4593fe, }, 20 }, -+ { "gfxterm_piglatin", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x660ab3d9, 0xa75b45c4, 0x660ab3d9, 0x3b1dde5d, 0xc9cbf769, 0xc9cbf769, 0x5ff884f5, 0x5ff884f5, 0x5ff884f5, 0xa1204539, 0xa1204539, 0xa1204539, 0x486afa31, 0x486afa31, 0x486afa31, 0xc9cbf769, 0x3b1dde5d, 0x3b1dde5d, 0xc9cbf769, }, 20 }, -+ { "gfxterm_piglatin", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x920957ee, 0xceebfd42, 0x920957ee, 0x3c5f1e36, 0x9813a416, 0x9813a416, 0xa917dbef, 0xa917dbef, 0xa917dbef, 0x38cc5ddc, 0x38cc5ddc, 0x38cc5ddc, 0x2176600c, 0x2176600c, 0x2176600c, 0x9813a416, 0x3c5f1e36, 0x3c5f1e36, 0x9813a416, }, 20 }, -+ { "gfxterm_piglatin", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x8298cd03, 0xfb88293a, 0x8298cd03, 0xf43ef8b0, 0x5fcf013d, 0x5fcf013d, 0x8f57f36b, 0x8f57f36b, 0x8f57f36b, 0x5d47eb1d, 0x5d47eb1d, 0x5d47eb1d, 0x4b34d482, 0x4b34d482, 0x4b34d482, 0x5fcf013d, 0xf43ef8b0, 0xf43ef8b0, 0x5fcf013d, }, 20 }, -+ { "gfxterm_piglatin", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xd8bbc577, 0xb2c37549, 0xd8bbc577, 0xc3be1f70, 0xdd28f52b, 0xdd28f52b, 0xd8b598e, 0xd8b598e, 0xd8b598e, 0x2cb7a06a, 0x2cb7a06a, 0x2cb7a06a, 0x510f6be6, 0x510f6be6, 0x510f6be6, 0xdd28f52b, 0xc3be1f70, 0xc3be1f70, 0xdd28f52b, }, 20 }, -+ { "gfxterm_piglatin", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x4d7993a1, 0xbeefcd88, 0x4d7993a1, 0xb2c68821, 0x43d1f34, 0x43d1f34, 0x1dbc7020, 0x1dbc7020, 0x1dbc7020, 0x62b6d988, 0x62b6d988, 0x62b6d988, 0xfbe7dc0e, 0xfbe7dc0e, 0xfbe7dc0e, 0x43d1f34, 0xb2c68821, 0xb2c68821, 0x43d1f34, }, 20 }, -+ { "gfxterm_ch", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x628b6f61, 0x50f94215, 0x628b6f61, 0x217da226, 0x59c36f00, 0x59c36f00, 0x5755be7f, 0x5755be7f, 0x5755be7f, 0x29d5d319, 0x29d5d319, 0x29d5d319, 0x4b23c6cb, 0x4b23c6cb, 0x4b23c6cb, 0x59c36f00, 0x217da226, 0x217da226, 0x59c36f00, }, 20 }, -+ { "gfxterm_ch", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x9f82cd08, 0xbc67f78d, 0x9f82cd08, 0xb1874877, 0xaa4593fe, 0xaa4593fe, 0x4749512e, 0x4749512e, 0x4749512e, 0xe1bc5c49, 0xe1bc5c49, 0xe1bc5c49, 0xcc84f731, 0xcc84f731, 0xcc84f731, 0xaa4593fe, 0xb1874877, 0xb1874877, 0xaa4593fe, }, 20 }, -+ { "gfxterm_ch", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xbee47cfb, 0x88e98534, 0xbee47cfb, 0xe3f3117f, 0xc9cbf769, 0xc9cbf769, 0xe2396b15, 0xe2396b15, 0xe2396b15, 0x1ce1aad9, 0x1ce1aad9, 0x1ce1aad9, 0xf5ab15d1, 0xf5ab15d1, 0xf5ab15d1, 0xc9cbf769, 0xe3f3117f, 0xe3f3117f, 0xc9cbf769, }, 20 }, -+ { "gfxterm_ch", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x2bfd5a83, 0xbe3c6f2f, 0x2bfd5a83, 0x85ab135b, 0x9813a416, 0x9813a416, 0xce30693b, 0xce30693b, 0xce30693b, 0x5febef08, 0x5febef08, 0x5febef08, 0x4651d2d8, 0x4651d2d8, 0x4651d2d8, 0x9813a416, 0x85ab135b, 0x85ab135b, 0x9813a416, }, 20 }, -+ { "gfxterm_ch", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x1456f321, 0xc3a55992, 0x1456f321, 0x62f0c692, 0x5fcf013d, 0x5fcf013d, 0xbe3d534a, 0xbe3d534a, 0xbe3d534a, 0x6c2d4b3c, 0x6c2d4b3c, 0x6c2d4b3c, 0x7a5e74a3, 0x7a5e74a3, 0x7a5e74a3, 0x5fcf013d, 0x62f0c692, 0x62f0c692, 0x5fcf013d, }, 20 }, -+ { "gfxterm_ch", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xdcac6945, 0x43fbdf5a, 0xdcac6945, 0xc7a9b342, 0xdd28f52b, 0xdd28f52b, 0x274da20b, 0x274da20b, 0x274da20b, 0x6715bef, 0x6715bef, 0x6715bef, 0x7bc99063, 0x7bc99063, 0x7bc99063, 0xdd28f52b, 0xc7a9b342, 0xc7a9b342, 0xdd28f52b, }, 20 }, -+ { "gfxterm_ch", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x571e16b1, 0xb9f25c2, 0x571e16b1, 0xa8a10d31, 0x43d1f34, 0x43d1f34, 0x25dfb69d, 0x25dfb69d, 0x25dfb69d, 0x5ad51f35, 0x5ad51f35, 0x5ad51f35, 0xc3841ab3, 0xc3841ab3, 0xc3841ab3, 0x43d1f34, 0xa8a10d31, 0xa8a10d31, 0x43d1f34, }, 20 }, -+ { "gfxterm_red", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xec987771, 0x8a579bf2, 0xec987771, 0xbbb5c9af, 0x59c36f00, 0x59c36f00, 0x16780f43, 0x16780f43, 0x16780f43, 0x68f86225, 0x68f86225, 0x68f86225, 0xa0e77f7, 0xa0e77f7, 0xa0e77f7, 0x59c36f00, 0xbbb5c9af, 0xbbb5c9af, 0x59c36f00, }, 20 }, -+ { "gfxterm_red", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x97994d2c, 0x33b3ca94, 0x97994d2c, 0x273e977a, 0xaa4593fe, 0xaa4593fe, 0xa592c9d5, 0xa592c9d5, 0xa592c9d5, 0x367c4b2, 0x367c4b2, 0x367c4b2, 0x2e5f6fca, 0x2e5f6fca, 0x2e5f6fca, 0xaa4593fe, 0x273e977a, 0x273e977a, 0xaa4593fe, }, 20 }, -+ { "gfxterm_red", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x5d2416aa, 0xe7a84972, 0x5d2416aa, 0x4d010804, 0xc9cbf769, 0xc9cbf769, 0x4e3a88a0, 0x4e3a88a0, 0x4e3a88a0, 0xb0e2496c, 0xb0e2496c, 0xb0e2496c, 0x59a8f664, 0x59a8f664, 0x59a8f664, 0xc9cbf769, 0x4d010804, 0x4d010804, 0xc9cbf769, }, 20 }, -+ { "gfxterm_red", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x1da65b43, 0xae065274, 0x1da65b43, 0x2dd7a76c, 0x9813a416, 0x9813a416, 0xf81d19f, 0xf81d19f, 0xf81d19f, 0x9e5a57ac, 0x9e5a57ac, 0x9e5a57ac, 0x87e06a7c, 0x87e06a7c, 0x87e06a7c, 0x9813a416, 0x2dd7a76c, 0x2dd7a76c, 0x9813a416, }, 20 }, -+ { "gfxterm_red", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xea8a940e, 0xfa7c8f6f, 0xea8a940e, 0x448d7bfb, 0x5fcf013d, 0x5fcf013d, 0x47c22fa0, 0x47c22fa0, 0x47c22fa0, 0x95d237d6, 0x95d237d6, 0x95d237d6, 0x83a10849, 0x83a10849, 0x83a10849, 0x5fcf013d, 0x448d7bfb, 0x448d7bfb, 0x5fcf013d, }, 20 }, -+ { "gfxterm_red", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xc0ac44fa, 0x94d4e024, 0xc0ac44fa, 0x4ec88f20, 0xdd28f52b, 0xdd28f52b, 0x2422f542, 0x2422f542, 0x2422f542, 0x51e0ca6, 0x51e0ca6, 0x51e0ca6, 0x78a6c72a, 0x78a6c72a, 0x78a6c72a, 0xdd28f52b, 0x4ec88f20, 0x4ec88f20, 0xdd28f52b, }, 20 }, -+ { "gfxterm_red", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x248f7655, 0x8f1ea1e8, 0x248f7655, 0xb3d7f0f5, 0x43d1f34, 0x43d1f34, 0x8c408c04, 0x8c408c04, 0x8c408c04, 0xf34a25ac, 0xf34a25ac, 0xf34a25ac, 0x6a1b202a, 0x6a1b202a, 0x6a1b202a, 0x43d1f34, 0xb3d7f0f5, 0xb3d7f0f5, 0x43d1f34, }, 20 }, -+ { "gfxterm_high", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xd6ba8f78, 0xb07563fb, 0xd6ba8f78, 0x6ef020b2, 0x59c36f00, 0x59c36f00, 0x7fd94135, 0x7fd94135, 0x7fd94135, 0x1592c53, 0x1592c53, 0x1592c53, 0x63af3981, 0x63af3981, 0x63af3981, 0x59c36f00, 0x6ef020b2, 0x6ef020b2, 0x59c36f00, }, 20 }, -+ { "gfxterm_high", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0xf5257f70, 0x510ff8c8, 0xf5257f70, 0x36a3b7ff, 0xaa4593fe, 0xaa4593fe, 0x2e88732f, 0x2e88732f, 0x2e88732f, 0x887d7e48, 0x887d7e48, 0x887d7e48, 0xa545d530, 0xa545d530, 0xa545d530, 0xaa4593fe, 0x36a3b7ff, 0x36a3b7ff, 0xaa4593fe, }, 20 }, -+ { "gfxterm_high", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x9f8effb3, 0x2502a06b, 0x9f8effb3, 0xddeb038e, 0xc9cbf769, 0xc9cbf769, 0xda1c9f17, 0xda1c9f17, 0xda1c9f17, 0x24c45edb, 0x24c45edb, 0x24c45edb, 0xcd8ee1d3, 0xcd8ee1d3, 0xcd8ee1d3, 0xc9cbf769, 0xddeb038e, 0xddeb038e, 0xc9cbf769, }, 20 }, -+ { "gfxterm_high", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x6aa72774, 0xd9072e43, 0x6aa72774, 0x24b4853d, 0x9813a416, 0x9813a416, 0xfb08d7cf, 0xfb08d7cf, 0xfb08d7cf, 0x6ad351fc, 0x6ad351fc, 0x6ad351fc, 0x73696c2c, 0x73696c2c, 0x73696c2c, 0x9813a416, 0x24b4853d, 0x24b4853d, 0x9813a416, }, 20 }, -+ { "gfxterm_high", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x936eb1d8, 0x8398aab9, 0x936eb1d8, 0x8beef, 0x5fcf013d, 0x5fcf013d, 0x9e56a9e0, 0x9e56a9e0, 0x9e56a9e0, 0x4c46b196, 0x4c46b196, 0x4c46b196, 0x5a358e09, 0x5a358e09, 0x5a358e09, 0x5fcf013d, 0x8beef, 0x8beef, 0x5fcf013d, }, 20 }, -+ { "gfxterm_high", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xdd4b9ec3, 0x89333a1d, 0xdd4b9ec3, 0x3acd5a9d, 0xdd28f52b, 0xdd28f52b, 0xe1579057, 0xe1579057, 0xe1579057, 0xc06b69b3, 0xc06b69b3, 0xc06b69b3, 0xbdd3a23f, 0xbdd3a23f, 0xbdd3a23f, 0xdd28f52b, 0x3acd5a9d, 0x3acd5a9d, 0xdd28f52b, }, 20 }, -+ { "gfxterm_high", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x89f37601, 0x2262a1bc, 0x89f37601, 0xf17b28ae, 0x43d1f34, 0x43d1f34, 0x6486f7c4, 0x6486f7c4, 0x6486f7c4, 0x1b8c5e6c, 0x1b8c5e6c, 0x1b8c5e6c, 0x82dd5bea, 0x82dd5bea, 0x82dd5bea, 0x43d1f34, 0xf17b28ae, 0xf17b28ae, 0x43d1f34, }, 20 }, - { "videotest", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x1368a483, 0x1368a483, 0x1368a483, 0x1368a483, 0x1368a483, }, 5 }, - { "videotest", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0x7033079c, 0x7033079c, 0x7033079c, 0x7033079c, 0x7033079c, }, 5 }, - { "videotest", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xff583fbf, 0xff583fbf, 0xff583fbf, 0xff583fbf, 0xff583fbf, }, 5 }, +- { "videotest", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x1368a483, 0x1368a483, 0x1368a483, 0x1368a483, 0x1368a483, }, 5 }, +- { "videotest", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0x7033079c, 0x7033079c, 0x7033079c, 0x7033079c, 0x7033079c, }, 5 }, +- { "videotest", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xff583fbf, 0xff583fbf, 0xff583fbf, 0xff583fbf, 0xff583fbf, }, 5 }, +- { "videotest", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x4c2cef83, 0x1b215a88, 0xe2378595, 0xb53a309e, 0x15f64d5e, }, 5 }, +- { "videotest", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x758f388c, 0xd4442397, 0x33f5784b, 0x923e6350, 0xf97bb902, }, 5 }, +- { "videotest", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xb9f6f52a, 0x4e24e8b7, 0x53beb8e1, 0xa46ca57c, 0x688a184d, }, 5 }, +- { "videotest", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x5bd98ce3, 0x15df7962, 0xc7d467e1, 0x89d29260, 0x662e2c16, }, 5 }, +- { "videotest", 640, 480, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi256 */, (grub_uint32_t []) { 0xf9847b65, 0xf9847b65, 0xf9847b65, 0xf9847b65, 0xf9847b65, }, 5 }, +- { "videotest", 800, 600, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi256 */, (grub_uint32_t []) { 0xc421716d, 0xc421716d, 0xc421716d, 0xc421716d, 0xc421716d, }, 5 }, +- { "videotest", 1024, 768, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi256 */, (grub_uint32_t []) { 0x5d46f2a8, 0x5d46f2a8, 0x5d46f2a8, 0x5d46f2a8, 0x5d46f2a8, }, 5 }, +- { "videotest", 640, 480, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 640x480xrgba5550 */, (grub_uint32_t []) { 0x25690db2, 0x25690db2, 0x25690db2, 0x25690db2, 0x25690db2, }, 5 }, +- { "videotest", 800, 600, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 800x600xrgba5550 */, (grub_uint32_t []) { 0x7333f220, 0x7333f220, 0x7333f220, 0x7333f220, 0x7333f220, }, 5 }, +- { "videotest", 1024, 768, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 1024x768xrgba5550 */, (grub_uint32_t []) { 0xac52d537, 0xac52d537, 0xac52d537, 0xac52d537, 0xac52d537, }, 5 }, +- { "videotest", 640, 480, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 640x480xrgba5650 */, (grub_uint32_t []) { 0xd4cbcd66, 0xd4cbcd66, 0xd4cbcd66, 0xd4cbcd66, 0xd4cbcd66, }, 5 }, +- { "videotest", 800, 600, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 800x600xrgba5650 */, (grub_uint32_t []) { 0x9d23f9d1, 0x9d23f9d1, 0x9d23f9d1, 0x9d23f9d1, 0x9d23f9d1, }, 5 }, +- { "videotest", 1024, 768, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 1024x768xrgba5650 */, (grub_uint32_t []) { 0x89acbf88, 0x89acbf88, 0x89acbf88, 0x89acbf88, 0x89acbf88, }, 5 }, +- { "videotest", 640, 480, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 640x480xrgba8880 */, (grub_uint32_t []) { 0x335fadcb, 0x1f517b5c, 0x6b4200e5, 0x474cd672, 0x8364f797, }, 5 }, +- { "videotest", 800, 600, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 800x600xrgba8880 */, (grub_uint32_t []) { 0xcf9985f8, 0x1d92c7fc, 0x6e637701, 0xbc683505, 0x898016fb, }, 5 }, +- { "videotest", 1024, 768, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 1024x768xrgba8880 */, (grub_uint32_t []) { 0xdb824190, 0x378d05dc, 0x670bff9, 0xea7ffbb5, 0x658bcbb3, }, 5 }, +- { "videotest", 640, 480, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 640x480xbgra5550 */, (grub_uint32_t []) { 0x18ed532e, 0x18ed532e, 0x18ed532e, 0x18ed532e, 0x18ed532e, }, 5 }, +- { "videotest", 800, 600, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 800x600xbgra5550 */, (grub_uint32_t []) { 0x2b35b09f, 0x2b35b09f, 0x2b35b09f, 0x2b35b09f, 0x2b35b09f, }, 5 }, +- { "videotest", 1024, 768, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 1024x768xbgra5550 */, (grub_uint32_t []) { 0xa24c4d98, 0xa24c4d98, 0xa24c4d98, 0xa24c4d98, 0xa24c4d98, }, 5 }, +- { "videotest", 640, 480, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 640x480xbgra5650 */, (grub_uint32_t []) { 0xc07dde33, 0xc07dde33, 0xc07dde33, 0xc07dde33, 0xc07dde33, }, 5 }, +- { "videotest", 800, 600, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 800x600xbgra5650 */, (grub_uint32_t []) { 0x7e6ed757, 0x7e6ed757, 0x7e6ed757, 0x7e6ed757, 0x7e6ed757, }, 5 }, +- { "videotest", 1024, 768, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 1024x768xbgra5650 */, (grub_uint32_t []) { 0x700255dd, 0x700255dd, 0x700255dd, 0x700255dd, 0x700255dd, }, 5 }, +- { "videotest", 640, 480, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 640x480xbgra8880 */, (grub_uint32_t []) { 0x157232bd, 0x5e6bdacd, 0x8341e25d, 0xc8580a2d, 0x3cf9e58c, }, 5 }, +- { "videotest", 800, 600, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 800x600xbgra8880 */, (grub_uint32_t []) { 0xbfafd7cd, 0x51650951, 0x67d61c04, 0x891cc298, 0xab036ae, }, 5 }, +- { "videotest", 1024, 768, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 1024x768xbgra8880 */, (grub_uint32_t []) { 0x760580c9, 0xdc6d8205, 0x2739f3a0, 0x8d51f16c, 0xd47d661b, }, 5 }, +- { "videotest", 640, 480, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 640x480xbgra8888 */, (grub_uint32_t []) { 0xada3b5f, 0x24cd61a6, 0x56f48ead, 0x78e3d454, 0xb28750bb, }, 5 }, +- { "videotest", 800, 600, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 800x600xbgra8888 */, (grub_uint32_t []) { 0x827694e2, 0x9d97c3dd, 0xbdb43a9c, 0xa2556da3, 0xfdf3c81e, }, 5 }, +- { "videotest", 1024, 768, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 1024x768xbgra8888 */, (grub_uint32_t []) { 0x664534a5, 0xcd0979a0, 0x3531d85e, 0x9e7d955b, 0xc0aced53, }, 5 }, ++ { "cmdline_cat", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xc69be699, 0xc69be699, 0xe17fc97c, 0xe17fc97c, 0xc2512486, 0xc2512486, 0x20260761, 0x20260761, 0xe3485349, 0xe3485349, 0x6020b4d9, 0x6020b4d9, 0x1605db98, 0x1605db98, 0xdca51b58, 0xdca51b58, 0xf3d66441, 0xf3d66441, 0x18cb7ce2, 0x18cb7ce2, 0x23b616d9, 0x23b616d9, 0xa1bf5dbf, 0xa1bf5dbf, 0x5e4a8b3d, 0x5e4a8b3d, 0x9933b3d8, 0x9933b3d8, 0xce7be2de, 0xce7be2de, 0x62531729, 0x62531729, 0xc39d3788, 0xc39d3788, 0xf7aee2fe, 0xf7aee2fe, 0xc66f4903, 0xc66f4903, 0x536c922f, 0x536c922f, 0xcb231652, 0x4ae07b67, 0x146816d5, 0x146816d5, }, 45 }, ++ { "cmdline_cat", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x29d0cfb7, 0x29d0cfb7, 0x4d57ad88, 0x4d57ad88, 0xaf7591cb, 0xaf7591cb, 0xb88e3c0, 0xb88e3c0, 0x5d55a031, 0x5d55a031, 0x4363bcff, 0x4363bcff, 0xe1142833, 0xe1142833, 0x9578c80d, 0x9578c80d, 0xff1f5174, 0xff1f5174, 0x6828d47, 0x6828d47, 0x2a849ae3, 0x2a849ae3, 0x27a811d9, 0x27a811d9, 0x6c42e1cb, 0x6c42e1cb, 0x5bba61f5, 0x5bba61f5, 0xc02ab705, 0xc02ab705, 0xeb3e0e05, 0xeb3e0e05, 0x6f4ce3c, 0x6f4ce3c, 0x2075c50e, 0x2075c50e, 0x54ac7fba, 0x54ac7fba, 0x335d1c21, 0x335d1c21, 0xf923fbd1, 0x1b489d4d, 0x1253eb5e, 0x1253eb5e, }, 45 }, ++ { "cmdline_cat", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x6ff92a98, 0x6ff92a98, 0xbd8264b3, 0xbd8264b3, 0x5c50282c, 0x5c50282c, 0xd18d6a5a, 0xd18d6a5a, 0x99cea139, 0x99cea139, 0x2590c545, 0x2590c545, 0x55c86045, 0x55c86045, 0xad53ef1e, 0xad53ef1e, 0x5b44a23a, 0x5b44a23a, 0xa255f863, 0xa255f863, 0x85b0bdca, 0x85b0bdca, 0x4220ee1f, 0x4220ee1f, 0xeb991a9f, 0xeb991a9f, 0x86f366dd, 0x86f366dd, 0xfa176b7d, 0xfa176b7d, 0xd7384ca9, 0xd7384ca9, 0xceebf5c1, 0xceebf5c1, 0xae62b268, 0xae62b268, 0x6e89bbd6, 0x6e89bbd6, 0x3fe07c8e, 0x3fe07c8e, 0xee5358fe, 0x162d1a8a, 0x876f8d10, 0x876f8d10, }, 45 }, ++ { "cmdline_cat", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0xb96afaea, 0xb96afaea, 0xaa16ab1e, 0xaa16ab1e, 0x51ff382, 0x51ff382, 0xec74f127, 0xec74f127, 0xde4bca99, 0xde4bca99, 0x8ef3e8a5, 0x8ef3e8a5, 0x2daeb0b4, 0x2daeb0b4, 0x7cf5e243, 0x7cf5e243, 0x11fd57c6, 0x11fd57c6, 0x140723af, 0x140723af, 0x2bd93833, 0x2bd93833, 0xd731f4ac, 0xd731f4ac, 0x5fcd7114, 0x5fcd7114, 0xd1fea24a, 0xd1fea24a, 0x4083d53a, 0x4083d53a, 0x2e372605, 0x2e372605, 0x8e6316a7, 0x8e6316a7, 0x283ef6cc, 0x283ef6cc, 0x20cee9de, 0x20cee9de, 0xad6fa187, 0xad6fa187, 0xd691f438, 0xf3257e63, 0x4786ba7, 0x4786ba7, }, 45 }, ++ { "cmdline_cat", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x48acf1bf, 0x48acf1bf, 0xb8777469, 0xb8777469, 0xad2fad44, 0xad2fad44, 0xa415ac59, 0xa415ac59, 0x5a7bfb26, 0x5a7bfb26, 0xccb6016, 0xccb6016, 0x77a80cb3, 0x77a80cb3, 0x2034c102, 0x2034c102, 0x444b4ccd, 0x444b4ccd, 0xe6c31bea, 0xe6c31bea, 0x8408036e, 0x8408036e, 0x9e7c556f, 0x9e7c556f, 0x445dc388, 0x445dc388, 0x94b3f850, 0x94b3f850, 0xf6f15341, 0xf6f15341, 0xcb939b5f, 0xcb939b5f, 0xbe88067d, 0xbe88067d, 0x1efc4734, 0x1efc4734, 0x7f5dfca8, 0x7f5dfca8, 0xb7b10eb9, 0xb7b10eb9, 0xb94cb441, 0x9571329, 0x8a26912b, 0x8a26912b, }, 45 }, ++ { "cmdline_cat", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xc508d04e, 0xc508d04e, 0x6dbccbfe, 0x6dbccbfe, 0xbf06ff60, 0xbf06ff60, 0xbc5ab06, 0xbc5ab06, 0x97eeab3c, 0x97eeab3c, 0x62663589, 0x62663589, 0xb03e21e2, 0xb03e21e2, 0xea196bb6, 0xea196bb6, 0x672c16c4, 0x672c16c4, 0xefbca2cd, 0xefbca2cd, 0x1af5b410, 0x1af5b410, 0xc7a80569, 0xc7a80569, 0x4926a16, 0x4926a16, 0xee29c99c, 0xee29c99c, 0xffb15985, 0xffb15985, 0x4f608e46, 0x4f608e46, 0x3e450fd2, 0x3e450fd2, 0xac45215f, 0xac45215f, 0x789b0ce7, 0x789b0ce7, 0x4cedfe22, 0x4cedfe22, 0xa005588c, 0x701da05c, 0x6f25cec1, 0x6f25cec1, }, 45 }, ++ { "cmdline_cat", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x29e7a7f, 0x29e7a7f, 0xbd221052, 0xbd221052, 0x3b18b64, 0x3b18b64, 0x7f1e8462, 0x7f1e8462, 0xf28d5124, 0xf28d5124, 0xc336f170, 0xc336f170, 0xfe3bf988, 0xfe3bf988, 0x7bf89e05, 0x7bf89e05, 0x7857a3f8, 0x7857a3f8, 0x272c1a36, 0x272c1a36, 0xe8adb445, 0xe8adb445, 0x70cfe280, 0x70cfe280, 0x4f2b6120, 0x4f2b6120, 0xbaf5caa5, 0xbaf5caa5, 0x4b6bcab2, 0x4b6bcab2, 0x2bef7b92, 0x2bef7b92, 0x17b381dc, 0x17b381dc, 0x884c9c35, 0x884c9c35, 0x2f9eb909, 0x2f9eb909, 0xa811b3af, 0xa811b3af, 0x4c39478f, 0x5a72c3ab, 0x8071678a, 0x8071678a, }, 45 }, ++ { "gfxterm_menu", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xd9f04953, 0xbf3fa5d0, 0xd9f04953, 0x9a068414, 0x59c36f00, 0x59c36f00, 0x620c0067, 0x620c0067, 0x620c0067, 0x1c8c6d01, 0x1c8c6d01, 0x1c8c6d01, 0xc3269013, 0xc3269013, 0xc3269013, 0x59c36f00, 0x9a068414, 0x9a068414, 0x59c36f00, }, 20 }, ++ { "gfxterm_menu", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x9254157f, 0x367e92c7, 0x9254157f, 0xbc519000, 0xaa4593fe, 0xaa4593fe, 0xa8a596c8, 0xa8a596c8, 0xa8a596c8, 0xe509baf, 0xe509baf, 0xe509baf, 0x16f0dc06, 0x16f0dc06, 0x16f0dc06, 0xaa4593fe, 0xbc519000, 0xbc519000, 0xaa4593fe, }, 20 }, ++ { "gfxterm_menu", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x354b1976, 0x8fc746ae, 0x354b1976, 0x685c74f2, 0xc9cbf769, 0xc9cbf769, 0x3ce35e1d, 0x3ce35e1d, 0x3ce35e1d, 0xc23b9fd1, 0xc23b9fd1, 0xc23b9fd1, 0x5b18528e, 0x5b18528e, 0x5b18528e, 0xc9cbf769, 0x685c74f2, 0x685c74f2, 0xc9cbf769, }, 20 }, ++ { "gfxterm_menu", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x1c9ec014, 0xaf3ec923, 0x1c9ec014, 0x43f5296, 0x9813a416, 0x9813a416, 0x43fda3fa, 0x43fda3fa, 0x43fda3fa, 0xd22625c9, 0xd22625c9, 0xd22625c9, 0x76a62c0a, 0x76a62c0a, 0x76a62c0a, 0x9813a416, 0x43f5296, 0x43f5296, 0x9813a416, }, 20 }, ++ { "gfxterm_menu", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xa704f7ea, 0xb7f2ec8b, 0xa704f7ea, 0xb279bf59, 0x5fcf013d, 0x5fcf013d, 0xf3582c48, 0xf3582c48, 0xf3582c48, 0x2148343e, 0x2148343e, 0x2148343e, 0x9c719024, 0x9c719024, 0x9c719024, 0x5fcf013d, 0xb279bf59, 0xb279bf59, 0x5fcf013d, }, 20 }, ++ { "gfxterm_menu", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xf293ce36, 0xa6eb6ae8, 0xf293ce36, 0xcd87647e, 0xdd28f52b, 0xdd28f52b, 0xb3c7ef80, 0xb3c7ef80, 0xb3c7ef80, 0x92fb1664, 0x92fb1664, 0x92fb1664, 0xd15b5e2e, 0xd15b5e2e, 0xd15b5e2e, 0xdd28f52b, 0xcd87647e, 0xcd87647e, 0xdd28f52b, }, 20 }, ++ { "gfxterm_menu", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x31e75bd7, 0x9a768c6a, 0x31e75bd7, 0xa8fc31a6, 0x43d1f34, 0x43d1f34, 0xa0717008, 0xa0717008, 0xa0717008, 0xdf7bd9a0, 0xdf7bd9a0, 0xdf7bd9a0, 0x8e5a9312, 0x8e5a9312, 0x8e5a9312, 0x43d1f34, 0xa8fc31a6, 0xa8fc31a6, 0x43d1f34, }, 20 }, ++ { "gfxmenu", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x1ce7bd78, 0x682580f5, 0x1ce7bd78, 0x490ad6fe, 0x9a2e0d26, 0x64eb71ba, 0x64eb71ba, 0x64eb71ba, 0x3833877a, 0x3833877a, 0x3833877a, 0xcfc14f0a, 0xcfc14f0a, 0xcfc14f0a, 0x59c36f00, 0x490ad6fe, 0x490ad6fe, }, 18 }, ++ { "gfxmenu", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x2b6ff87d, 0x63ce2ca2, 0x2b6ff87d, 0xf00f044e, 0xa9d58ccd, 0xe2c46577, 0xe2c46577, 0xe2c46577, 0xb79bcf7d, 0xb79bcf7d, 0xb79bcf7d, 0xbc30ed71, 0xbc30ed71, 0xbc30ed71, 0xaa4593fe, 0xf00f044e, 0xf00f044e, }, 18 }, ++ { "gfxmenu", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xe61cadba, 0x9880b727, 0xe61cadba, 0xdf5f2fc0, 0x5411be8b, 0x4449774e, 0x4449774e, 0x4449774e, 0x3bf7d1da, 0x3bf7d1da, 0x3bf7d1da, 0xd2ddee01, 0xd2ddee01, 0xd2ddee01, 0xc9cbf769, 0xdf5f2fc0, 0xdf5f2fc0, }, 18 }, ++ { "gfxmenu", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x1c3742c9, 0xbe54acf7, 0x9b4ce770, 0xbe54acf7, 0x3111489, 0x740d78cf, 0x314c4c59, 0x314c4c59, 0x314c4c59, 0xdae9a625, 0xdae9a625, 0xdae9a625, 0xcbf8af57, 0xcbf8af57, 0xcbf8af57, 0x1c3742c9, 0x3111489, 0x3111489, }, 18 }, ++ { "gfxmenu", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0xcc5a7bed, 0xee571de5, 0x568aaeff, 0xee571de5, 0xe328b7a7, 0xbcda144c, 0xf56e1b60, 0xf56e1b60, 0xf56e1b60, 0x9a27c771, 0x9a27c771, 0x9a27c771, 0xd6d05397, 0xd6d05397, 0xd6d05397, 0xcc5a7bed, 0xe328b7a7, 0xe328b7a7, }, 18 }, ++ { "gfxmenu", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xef4a3312, 0x1db9877c, 0x7e1afeae, 0x1db9877c, 0x8fc0c430, 0x5d55a141, 0x96f335c6, 0x96f335c6, 0x96f335c6, 0x504171d8, 0x504171d8, 0x504171d8, 0x69f71c0, 0x69f71c0, 0x69f71c0, 0xef4a3312, 0x8fc0c430, 0x8fc0c430, }, 18 }, ++ { "gfxmenu", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x54e48d80, 0x151819bd, 0xea8d4865, 0x151819bd, 0x11d75fd2, 0x6d6bb4bc, 0x650ccd09, 0x650ccd09, 0x650ccd09, 0xe4ff3bd8, 0xe4ff3bd8, 0xe4ff3bd8, 0xc5308b73, 0xc5308b73, 0xc5308b73, 0x54e48d80, 0x11d75fd2, 0x11d75fd2, }, 18 }, ++ { "gfxterm_ar", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xd0b06c3d, 0xde50d1a5, 0xd0b06c3d, 0x9346a17a, 0x59c36f00, 0x59c36f00, 0xacff5d47, 0xacff5d47, 0xacff5d47, 0xd27f3021, 0xd27f3021, 0xd27f3021, 0xdd5cd33, 0xdd5cd33, 0xdd5cd33, 0x59c36f00, 0x9346a17a, 0x9346a17a, 0x59c36f00, }, 20 }, ++ { "gfxterm_ar", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0xf32d50c1, 0x730a7ed, 0xf32d50c1, 0xdd28d5be, 0xaa4593fe, 0xaa4593fe, 0xba8a2d4c, 0xba8a2d4c, 0xba8a2d4c, 0x1c7f202b, 0x1c7f202b, 0x1c7f202b, 0x4df6782, 0x4df6782, 0x4df6782, 0xaa4593fe, 0xdd28d5be, 0xdd28d5be, 0xaa4593fe, }, 20 }, ++ { "gfxterm_ar", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x711a4ac1, 0x6396f14c, 0x711a4ac1, 0x2c0d2745, 0xc9cbf769, 0xc9cbf769, 0x6b6ccbb0, 0x6b6ccbb0, 0x6b6ccbb0, 0x95b40a7c, 0x95b40a7c, 0x95b40a7c, 0xc97c723, 0xc97c723, 0xc97c723, 0xc9cbf769, 0x2c0d2745, 0x2c0d2745, 0xc9cbf769, }, 20 }, ++ { "gfxterm_ar", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x29baad6a, 0x348b1f2b, 0x29baad6a, 0x311b3fe8, 0x9813a416, 0x9813a416, 0xe8e982cc, 0xe8e982cc, 0xe8e982cc, 0x793204ff, 0x793204ff, 0x793204ff, 0xddb20d3c, 0xddb20d3c, 0xddb20d3c, 0x9813a416, 0x311b3fe8, 0x311b3fe8, 0x9813a416, }, 20 }, ++ { "gfxterm_ar", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xf834b3bb, 0x3951bd1a, 0xf834b3bb, 0xed49fb08, 0x5fcf013d, 0x5fcf013d, 0x5aefa2a7, 0x5aefa2a7, 0x5aefa2a7, 0x88ffbad1, 0x88ffbad1, 0x88ffbad1, 0x35c61ecb, 0x35c61ecb, 0x35c61ecb, 0x5fcf013d, 0xed49fb08, 0xed49fb08, 0x5fcf013d, }, 20 }, ++ { "gfxterm_ar", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x7e9a7a47, 0xb1651b5a, 0x7e9a7a47, 0x418ed00f, 0xdd28f52b, 0xdd28f52b, 0x83f9db69, 0x83f9db69, 0x83f9db69, 0xa2c5228d, 0xa2c5228d, 0xa2c5228d, 0xe1656ac7, 0xe1656ac7, 0xe1656ac7, 0xdd28f52b, 0x418ed00f, 0x418ed00f, 0xdd28f52b, }, 20 }, ++ { "gfxterm_ar", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0xc6a0340, 0x7dd5855c, 0xc6a0340, 0x95716931, 0x43d1f34, 0x43d1f34, 0x5f1c24c0, 0x5f1c24c0, 0x5f1c24c0, 0x20168d68, 0x20168d68, 0x20168d68, 0x7137c7da, 0x7137c7da, 0x7137c7da, 0x43d1f34, 0x95716931, 0x95716931, 0x43d1f34, }, 20 }, ++ { "gfxterm_cyr", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xd3798aaa, 0xab48784c, 0xd3798aaa, 0x908f47ed, 0x59c36f00, 0x59c36f00, 0x1688ec7c, 0x1688ec7c, 0x1688ec7c, 0x6808811a, 0x6808811a, 0x6808811a, 0xb7a27c08, 0xb7a27c08, 0xb7a27c08, 0x59c36f00, 0x908f47ed, 0x908f47ed, 0x59c36f00, }, 20 }, ++ { "gfxterm_cyr", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0xc30d9d2a, 0x60b9ed26, 0xc30d9d2a, 0xed081855, 0xaa4593fe, 0xaa4593fe, 0x3eba2192, 0x3eba2192, 0x3eba2192, 0x984f2cf5, 0x984f2cf5, 0x984f2cf5, 0x80ef6b5c, 0x80ef6b5c, 0x80ef6b5c, 0xaa4593fe, 0xed081855, 0xed081855, 0xaa4593fe, }, 20 }, ++ { "gfxterm_cyr", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xe469e6af, 0x46ac2012, 0xe469e6af, 0xb97e8b2b, 0xc9cbf769, 0xc9cbf769, 0x60f0d993, 0x60f0d993, 0x60f0d993, 0x9e28185f, 0x9e28185f, 0x9e28185f, 0x70bd500, 0x70bd500, 0x70bd500, 0xc9cbf769, 0xb97e8b2b, 0xb97e8b2b, 0xc9cbf769, }, 20 }, ++ { "gfxterm_cyr", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x8538d2ef, 0xab143284, 0x8538d2ef, 0x9d99406d, 0x9813a416, 0x9813a416, 0x7e8326ec, 0x7e8326ec, 0x7e8326ec, 0xef58a0df, 0xef58a0df, 0xef58a0df, 0x4bd8a91c, 0x4bd8a91c, 0x4bd8a91c, 0x9813a416, 0x9d99406d, 0x9d99406d, 0x9813a416, }, 20 }, ++ { "gfxterm_cyr", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x8115198c, 0x1abdaee1, 0x8115198c, 0x9468513f, 0x5fcf013d, 0x5fcf013d, 0xa5e86484, 0xa5e86484, 0xa5e86484, 0x77f87cf2, 0x77f87cf2, 0x77f87cf2, 0xcac1d8e8, 0xcac1d8e8, 0xcac1d8e8, 0x5fcf013d, 0x9468513f, 0x9468513f, 0x5fcf013d, }, 20 }, ++ { "gfxterm_cyr", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xea03b805, 0x74148290, 0xea03b805, 0xd517124d, 0xdd28f52b, 0xdd28f52b, 0x8f6eee40, 0x8f6eee40, 0x8f6eee40, 0xae5217a4, 0xae5217a4, 0xae5217a4, 0xedf25fee, 0xedf25fee, 0xedf25fee, 0xdd28f52b, 0xd517124d, 0xd517124d, 0xdd28f52b, }, 20 }, ++ { "gfxterm_cyr", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0xa044490f, 0xe23458db, 0xa044490f, 0x395f237e, 0x43d1f34, 0x43d1f34, 0xe1ca82c2, 0xe1ca82c2, 0xe1ca82c2, 0x9ec02b6a, 0x9ec02b6a, 0x9ec02b6a, 0xcfe161d8, 0xcfe161d8, 0xcfe161d8, 0x43d1f34, 0x395f237e, 0x395f237e, 0x43d1f34, }, 20 }, ++ { "gfxterm_heb", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xf3259b30, 0xf1f01411, 0xf3259b30, 0xb0d35677, 0x59c36f00, 0x59c36f00, 0x97895f8e, 0x97895f8e, 0x97895f8e, 0xe90932e8, 0xe90932e8, 0xe90932e8, 0x36a3cffa, 0x36a3cffa, 0x36a3cffa, 0x59c36f00, 0xb0d35677, 0xb0d35677, 0x59c36f00, }, 20 }, ++ { "gfxterm_heb", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x53a43759, 0xe0f26bfa, 0x53a43759, 0x7da1b226, 0xaa4593fe, 0xaa4593fe, 0xbf482a4e, 0xbf482a4e, 0xbf482a4e, 0x19bd2729, 0x19bd2729, 0x19bd2729, 0x11d6080, 0x11d6080, 0x11d6080, 0xaa4593fe, 0x7da1b226, 0x7da1b226, 0xaa4593fe, }, 20 }, ++ { "gfxterm_heb", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xd7ff8d53, 0x665b2728, 0xd7ff8d53, 0x8ae8e0d7, 0xc9cbf769, 0xc9cbf769, 0x5a693e73, 0x5a693e73, 0x5a693e73, 0xa4b1ffbf, 0xa4b1ffbf, 0xa4b1ffbf, 0x3d9232e0, 0x3d9232e0, 0x3d9232e0, 0xc9cbf769, 0x8ae8e0d7, 0x8ae8e0d7, 0xc9cbf769, }, 20 }, ++ { "gfxterm_heb", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x99fddcbe, 0x6d5c8895, 0x99fddcbe, 0x815c4e3c, 0x9813a416, 0x9813a416, 0x9bcf9821, 0x9bcf9821, 0x9bcf9821, 0xa141e12, 0xa141e12, 0xa141e12, 0xae9417d1, 0xae9417d1, 0xae9417d1, 0x9813a416, 0x815c4e3c, 0x815c4e3c, 0x9813a416, }, 20 }, ++ { "gfxterm_heb", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x5797846, 0x25a6ad40, 0x5797846, 0x100430f5, 0x5fcf013d, 0x5fcf013d, 0xddc86daf, 0xddc86daf, 0xddc86daf, 0xfd875d9, 0xfd875d9, 0xfd875d9, 0xb2e1d1c3, 0xb2e1d1c3, 0xb2e1d1c3, 0x5fcf013d, 0x100430f5, 0x100430f5, 0x5fcf013d, }, 20 }, ++ { "gfxterm_heb", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x30653ae8, 0x7fcd187, 0x30653ae8, 0xf7190a0, 0xdd28f52b, 0xdd28f52b, 0x24c3d325, 0x24c3d325, 0x24c3d325, 0x5ff2ac1, 0x5ff2ac1, 0x5ff2ac1, 0x465f628b, 0x465f628b, 0x465f628b, 0xdd28f52b, 0xf7190a0, 0xf7190a0, 0xdd28f52b, }, 20 }, ++ { "gfxterm_heb", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x3bd91638, 0x1d74dd4a, 0x3bd91638, 0xa2c27c49, 0x43d1f34, 0x43d1f34, 0x53d1ad3d, 0x53d1ad3d, 0x53d1ad3d, 0x2cdb0495, 0x2cdb0495, 0x2cdb0495, 0x7dfa4e27, 0x7dfa4e27, 0x7dfa4e27, 0x43d1f34, 0xa2c27c49, 0xa2c27c49, 0x43d1f34, }, 20 }, ++ { "gfxterm_gre", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xbe2c351a, 0x2692720, 0xbe2c351a, 0xfddaf85d, 0x59c36f00, 0x59c36f00, 0x1b2e2301, 0x1b2e2301, 0x1b2e2301, 0x65ae4e67, 0x65ae4e67, 0x65ae4e67, 0xba04b375, 0xba04b375, 0xba04b375, 0x59c36f00, 0xfddaf85d, 0xfddaf85d, 0x59c36f00, }, 20 }, ++ { "gfxterm_gre", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x1eca82e1, 0xe8fa59cc, 0x1eca82e1, 0x30cf079e, 0xaa4593fe, 0xaa4593fe, 0xaf27ddc5, 0xaf27ddc5, 0xaf27ddc5, 0x9d2d0a2, 0x9d2d0a2, 0x9d2d0a2, 0x1172970b, 0x1172970b, 0x1172970b, 0xaa4593fe, 0x30cf079e, 0x30cf079e, 0xaa4593fe, }, 20 }, ++ { "gfxterm_gre", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xa9ccd435, 0x1ac646eb, 0xa9ccd435, 0xf4dbb9b1, 0xc9cbf769, 0xc9cbf769, 0x86d69aa0, 0x86d69aa0, 0x86d69aa0, 0x780e5b6c, 0x780e5b6c, 0x780e5b6c, 0xe12d9633, 0xe12d9633, 0xe12d9633, 0xc9cbf769, 0xf4dbb9b1, 0xf4dbb9b1, 0xc9cbf769, }, 20 }, ++ { "gfxterm_gre", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0xf96d568, 0x7ad05c1b, 0xf96d568, 0x173747ea, 0x9813a416, 0x9813a416, 0xacf9792a, 0xacf9792a, 0xacf9792a, 0x3d22ff19, 0x3d22ff19, 0x3d22ff19, 0x99a2f6da, 0x99a2f6da, 0x99a2f6da, 0x9813a416, 0x173747ea, 0x173747ea, 0x9813a416, }, 20 }, ++ { "gfxterm_gre", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xa0dc6b9c, 0xc2761148, 0xa0dc6b9c, 0xb5a1232f, 0x5fcf013d, 0x5fcf013d, 0x4e05748b, 0x4e05748b, 0x4e05748b, 0x9c156cfd, 0x9c156cfd, 0x9c156cfd, 0x212cc8e7, 0x212cc8e7, 0x212cc8e7, 0x5fcf013d, 0xb5a1232f, 0xb5a1232f, 0x5fcf013d, }, 20 }, ++ { "gfxterm_gre", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xcd722f7d, 0xe4df8d6b, 0xcd722f7d, 0xf2668535, 0xdd28f52b, 0xdd28f52b, 0xbdbb8019, 0xbdbb8019, 0xbdbb8019, 0x9c8779fd, 0x9c8779fd, 0x9c8779fd, 0xdf2731b7, 0xdf2731b7, 0xdf2731b7, 0xdd28f52b, 0xf2668535, 0xf2668535, 0xdd28f52b, }, 20 }, ++ { "gfxterm_gre", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0xa6c99d2f, 0x1de04317, 0xa6c99d2f, 0x3fd2f75e, 0x43d1f34, 0x43d1f34, 0x3f85b7d3, 0x3f85b7d3, 0x3f85b7d3, 0x408f1e7b, 0x408f1e7b, 0x408f1e7b, 0x11ae54c9, 0x11ae54c9, 0x11ae54c9, 0x43d1f34, 0x3fd2f75e, 0x3fd2f75e, 0x43d1f34, }, 20 }, ++ { "gfxterm_ru", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x1e35b709, 0x2683bf92, 0x1e35b709, 0x5dc37a4e, 0x59c36f00, 0x59c36f00, 0xd697967f, 0xd697967f, 0xd697967f, 0xa817fb19, 0xa817fb19, 0xa817fb19, 0x77bd060b, 0x77bd060b, 0x77bd060b, 0x59c36f00, 0x5dc37a4e, 0x5dc37a4e, 0x59c36f00, }, 20 }, ++ { "gfxterm_ru", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x53ff7735, 0x8cbf197c, 0x53ff7735, 0x7dfaf24a, 0xaa4593fe, 0xaa4593fe, 0x389a922, 0x389a922, 0x389a922, 0xa57ca445, 0xa57ca445, 0xa57ca445, 0xbddce3ec, 0xbddce3ec, 0xbddce3ec, 0xaa4593fe, 0x7dfaf24a, 0x7dfaf24a, 0xaa4593fe, }, 20 }, ++ { "gfxterm_ru", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x5217c47d, 0x7c8ae63e, 0x5217c47d, 0xf00a9f9, 0xc9cbf769, 0xc9cbf769, 0x3995409, 0x3995409, 0x3995409, 0xfd4195c5, 0xfd4195c5, 0xfd4195c5, 0x6462589a, 0x6462589a, 0x6462589a, 0xc9cbf769, 0xf00a9f9, 0xf00a9f9, 0xc9cbf769, }, 20 }, ++ { "gfxterm_ru", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x45b67706, 0x375fb5db, 0x45b67706, 0x5d17e584, 0x9813a416, 0x9813a416, 0x8195719b, 0x8195719b, 0x8195719b, 0x104ef7a8, 0x104ef7a8, 0x104ef7a8, 0xb4cefe6b, 0xb4cefe6b, 0xb4cefe6b, 0x9813a416, 0x5d17e584, 0x5d17e584, 0x9813a416, }, 20 }, ++ { "gfxterm_ru", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xfc209a25, 0xd5c20779, 0xfc209a25, 0xe95dd296, 0x5fcf013d, 0x5fcf013d, 0xe5699efe, 0xe5699efe, 0xe5699efe, 0x37798688, 0x37798688, 0x37798688, 0x8a402292, 0x8a402292, 0x8a402292, 0x5fcf013d, 0xe95dd296, 0xe95dd296, 0x5fcf013d, }, 20 }, ++ { "gfxterm_ru", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x77f956f0, 0xfb0cc079, 0x77f956f0, 0x48edfcb8, 0xdd28f52b, 0xdd28f52b, 0xd51b1dc9, 0xd51b1dc9, 0xd51b1dc9, 0xf427e42d, 0xf427e42d, 0xf427e42d, 0xb787ac67, 0xb787ac67, 0xb787ac67, 0xdd28f52b, 0x48edfcb8, 0x48edfcb8, 0xdd28f52b, }, 20 }, ++ { "gfxterm_ru", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x1d9ac82a, 0xa254aa53, 0x1d9ac82a, 0x8481a25b, 0x43d1f34, 0x43d1f34, 0xc304df68, 0xc304df68, 0xc304df68, 0xbc0e76c0, 0xbc0e76c0, 0xbc0e76c0, 0xed2f3c72, 0xed2f3c72, 0xed2f3c72, 0x43d1f34, 0x8481a25b, 0x8481a25b, 0x43d1f34, }, 20 }, ++ { "gfxterm_fr", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xa6239a89, 0x8dc4bfbb, 0xa6239a89, 0xe5d557ce, 0x59c36f00, 0x59c36f00, 0x244cf807, 0x244cf807, 0x244cf807, 0x5acc9561, 0x5acc9561, 0x5acc9561, 0x85666873, 0x85666873, 0x85666873, 0x59c36f00, 0xe5d557ce, 0xe5d557ce, 0x59c36f00, }, 20 }, ++ { "gfxterm_fr", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x742cede9, 0x83bb7a50, 0x742cede9, 0x5a296896, 0xaa4593fe, 0xaa4593fe, 0xd83f8aeb, 0xd83f8aeb, 0xd83f8aeb, 0x7eca878c, 0x7eca878c, 0x7eca878c, 0x666ac025, 0x666ac025, 0x666ac025, 0xaa4593fe, 0x5a296896, 0x5a296896, 0xaa4593fe, }, 20 }, ++ { "gfxterm_fr", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xe20a98b0, 0x7e8cedef, 0xe20a98b0, 0xbf1df534, 0xc9cbf769, 0xc9cbf769, 0x2748b88c, 0x2748b88c, 0x2748b88c, 0xd9907940, 0xd9907940, 0xd9907940, 0x40b3b41f, 0x40b3b41f, 0x40b3b41f, 0xc9cbf769, 0xbf1df534, 0xbf1df534, 0xc9cbf769, }, 20 }, ++ { "gfxterm_fr", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x8f911ca4, 0xcbf1d895, 0x8f911ca4, 0x97308e26, 0x9813a416, 0x9813a416, 0x5b359bf4, 0x5b359bf4, 0x5b359bf4, 0xcaee1dc7, 0xcaee1dc7, 0xcaee1dc7, 0x6e6e1404, 0x6e6e1404, 0x6e6e1404, 0x9813a416, 0x97308e26, 0x97308e26, 0x9813a416, }, 20 }, ++ { "gfxterm_fr", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x1bf82c82, 0xc7b39627, 0x1bf82c82, 0xe856431, 0x5fcf013d, 0x5fcf013d, 0xa9dbae99, 0xa9dbae99, 0xa9dbae99, 0x7bcbb6ef, 0x7bcbb6ef, 0x7bcbb6ef, 0xc6f212f5, 0xc6f212f5, 0xc6f212f5, 0x5fcf013d, 0xe856431, 0xe856431, 0x5fcf013d, }, 20 }, ++ { "gfxterm_fr", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xfae19a5c, 0xd1e8fabb, 0xfae19a5c, 0xc5f53014, 0xdd28f52b, 0xdd28f52b, 0xfa2c5565, 0xfa2c5565, 0xfa2c5565, 0xdb10ac81, 0xdb10ac81, 0xdb10ac81, 0x98b0e4cb, 0x98b0e4cb, 0x98b0e4cb, 0xdd28f52b, 0xc5f53014, 0xc5f53014, 0xdd28f52b, }, 20 }, ++ { "gfxterm_fr", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x9a18f7bc, 0x5fcecc43, 0x9a18f7bc, 0x3039dcd, 0x43d1f34, 0x43d1f34, 0x287a2b96, 0x287a2b96, 0x287a2b96, 0x5770823e, 0x5770823e, 0x5770823e, 0x651c88c, 0x651c88c, 0x651c88c, 0x43d1f34, 0x3039dcd, 0x3039dcd, 0x43d1f34, }, 20 }, ++ { "gfxterm_quot", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x65112dfc, 0x3dec17f, 0x65112dfc, 0x26e7e0bb, 0x59c36f00, 0x59c36f00, 0x620c0067, 0x620c0067, 0x620c0067, 0x1c8c6d01, 0x1c8c6d01, 0x1c8c6d01, 0xc3269013, 0xc3269013, 0xc3269013, 0x59c36f00, 0x26e7e0bb, 0x26e7e0bb, 0x59c36f00, }, 20 }, ++ { "gfxterm_quot", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x2b3430fb, 0x8f1eb743, 0x2b3430fb, 0x531b584, 0xaa4593fe, 0xaa4593fe, 0xa8a596c8, 0xa8a596c8, 0xa8a596c8, 0xe509baf, 0xe509baf, 0xe509baf, 0x16f0dc06, 0x16f0dc06, 0x16f0dc06, 0xaa4593fe, 0x531b584, 0x531b584, 0xaa4593fe, }, 20 }, ++ { "gfxterm_quot", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xb523e920, 0xfafb6f8, 0xb523e920, 0xe83484a4, 0xc9cbf769, 0xc9cbf769, 0x3ce35e1d, 0x3ce35e1d, 0x3ce35e1d, 0xc23b9fd1, 0xc23b9fd1, 0xc23b9fd1, 0x5b18528e, 0x5b18528e, 0x5b18528e, 0xc9cbf769, 0xe83484a4, 0xe83484a4, 0xc9cbf769, }, 20 }, ++ { "gfxterm_quot", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0xa9bf7336, 0x1a1f7a01, 0xa9bf7336, 0xb11ee1b4, 0x9813a416, 0x9813a416, 0x43fda3fa, 0x43fda3fa, 0x43fda3fa, 0xd22625c9, 0xd22625c9, 0xd22625c9, 0x76a62c0a, 0x76a62c0a, 0x76a62c0a, 0x9813a416, 0xb11ee1b4, 0xb11ee1b4, 0x9813a416, }, 20 }, ++ { "gfxterm_quot", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xe5271912, 0xf5d10273, 0xe5271912, 0xf05a51a1, 0x5fcf013d, 0x5fcf013d, 0xf3582c48, 0xf3582c48, 0xf3582c48, 0x2148343e, 0x2148343e, 0x2148343e, 0x9c719024, 0x9c719024, 0x9c719024, 0x5fcf013d, 0xf05a51a1, 0xf05a51a1, 0x5fcf013d, }, 20 }, ++ { "gfxterm_quot", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x66a34f49, 0x32dbeb97, 0x66a34f49, 0x59b7e501, 0xdd28f52b, 0xdd28f52b, 0xb3c7ef80, 0xb3c7ef80, 0xb3c7ef80, 0x92fb1664, 0x92fb1664, 0x92fb1664, 0xd15b5e2e, 0xd15b5e2e, 0xd15b5e2e, 0xdd28f52b, 0x59b7e501, 0x59b7e501, 0xdd28f52b, }, 20 }, ++ { "gfxterm_quot", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x7c2f19da, 0xd7bece67, 0x7c2f19da, 0xe53473ab, 0x43d1f34, 0x43d1f34, 0xa0717008, 0xa0717008, 0xa0717008, 0xdf7bd9a0, 0xdf7bd9a0, 0xdf7bd9a0, 0x8e5a9312, 0x8e5a9312, 0x8e5a9312, 0x43d1f34, 0xe53473ab, 0xe53473ab, 0x43d1f34, }, 20 }, ++ { "gfxterm_piglatin", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x37943894, 0x78248c70, 0x37943894, 0x7462f5d3, 0x59c36f00, 0x59c36f00, 0xf4be229a, 0xf4be229a, 0xf4be229a, 0x8a3e4ffc, 0x8a3e4ffc, 0x8a3e4ffc, 0x5594b2ee, 0x5594b2ee, 0x5594b2ee, 0x59c36f00, 0x7462f5d3, 0x7462f5d3, 0x59c36f00, }, 20 }, ++ { "gfxterm_piglatin", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0xd5158e6c, 0xdc71ba0f, 0xd5158e6c, 0xfb100b13, 0xaa4593fe, 0xaa4593fe, 0xd3ed72a3, 0xd3ed72a3, 0xd3ed72a3, 0x75187fc4, 0x75187fc4, 0x75187fc4, 0x6db8386d, 0x6db8386d, 0x6db8386d, 0xaa4593fe, 0xfb100b13, 0xfb100b13, 0xaa4593fe, }, 20 }, ++ { "gfxterm_piglatin", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0x6277a9e6, 0xa3265ffb, 0x6277a9e6, 0x3f60c462, 0xc9cbf769, 0xc9cbf769, 0x2dcf8a8d, 0x2dcf8a8d, 0x2dcf8a8d, 0xd3174b41, 0xd3174b41, 0xd3174b41, 0x4a34861e, 0x4a34861e, 0x4a34861e, 0xc9cbf769, 0x3f60c462, 0x3f60c462, 0xc9cbf769, }, 20 }, ++ { "gfxterm_piglatin", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0x81115dc4, 0xddf3f768, 0x81115dc4, 0x99b0cf46, 0x9813a416, 0x9813a416, 0x9b9d96df, 0x9b9d96df, 0x9b9d96df, 0xa4610ec, 0xa4610ec, 0xa4610ec, 0xaec6192f, 0xaec6192f, 0xaec6192f, 0x9813a416, 0x99b0cf46, 0x99b0cf46, 0x9813a416, }, 20 }, ++ { "gfxterm_piglatin", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x5e96a904, 0x27864d3d, 0x5e96a904, 0x4bebe1b7, 0x5fcf013d, 0x5fcf013d, 0x18cae7f4, 0x18cae7f4, 0x18cae7f4, 0xcadaff82, 0xcadaff82, 0xcadaff82, 0x77e35b98, 0x77e35b98, 0x77e35b98, 0x5fcf013d, 0x4bebe1b7, 0x4bebe1b7, 0x5fcf013d, }, 20 }, ++ { "gfxterm_piglatin", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0xd00b19f8, 0xba73a9c6, 0xd00b19f8, 0xef1fb3b0, 0xdd28f52b, 0xdd28f52b, 0xb660046d, 0xb660046d, 0xb660046d, 0x975cfd89, 0x975cfd89, 0x975cfd89, 0xd4fcb5c3, 0xd4fcb5c3, 0xd4fcb5c3, 0xdd28f52b, 0xef1fb3b0, 0xef1fb3b0, 0xdd28f52b, }, 20 }, ++ { "gfxterm_piglatin", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x8b4b98cd, 0x78ddc6e4, 0x8b4b98cd, 0x1250f2bc, 0x43d1f34, 0x43d1f34, 0x4889d3fd, 0x4889d3fd, 0x4889d3fd, 0x37837a55, 0x37837a55, 0x37837a55, 0x66a230e7, 0x66a230e7, 0x66a230e7, 0x43d1f34, 0x1250f2bc, 0x1250f2bc, 0x43d1f34, }, 20 }, ++ { "gfxterm_ch", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0xfecb570e, 0xccb97a7a, 0xfecb570e, 0xbd3d9a49, 0x59c36f00, 0x59c36f00, 0x40281258, 0x40281258, 0x40281258, 0x3ea87f3e, 0x3ea87f3e, 0x3ea87f3e, 0xe102822c, 0xe102822c, 0xe102822c, 0x59c36f00, 0xbd3d9a49, 0xbd3d9a49, 0x59c36f00, }, 20 }, ++ { "gfxterm_ch", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0x897d1fac, 0xaa982529, 0x897d1fac, 0xa7789ad3, 0xaa4593fe, 0xaa4593fe, 0xa482510, 0xa482510, 0xa482510, 0xacbd2877, 0xacbd2877, 0xacbd2877, 0xb41d6fde, 0xb41d6fde, 0xb41d6fde, 0xaa4593fe, 0xa7789ad3, 0xa7789ad3, 0xaa4593fe, }, 20 }, ++ { "gfxterm_ch", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xd02a5297, 0xe627ab58, 0xd02a5297, 0x8d3d3f13, 0xc9cbf769, 0xc9cbf769, 0xbf0a8b7f, 0xbf0a8b7f, 0xbf0a8b7f, 0x41d24ab3, 0x41d24ab3, 0x41d24ab3, 0xd8f187ec, 0xd8f187ec, 0xd8f187ec, 0xc9cbf769, 0x8d3d3f13, 0x8d3d3f13, 0xc9cbf769, }, 20 }, ++ { "gfxterm_ch", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0xa653dcda, 0x3392e976, 0xa653dcda, 0xbef24e58, 0x9813a416, 0x9813a416, 0x4f2bc106, 0x4f2bc106, 0x4f2bc106, 0xdef04735, 0xdef04735, 0xdef04735, 0x7a704ef6, 0x7a704ef6, 0x7a704ef6, 0x9813a416, 0xbef24e58, 0xbef24e58, 0x9813a416, }, 20 }, ++ { "gfxterm_ch", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xe2d7b585, 0x35241f36, 0xe2d7b585, 0xf7aafd36, 0x5fcf013d, 0x5fcf013d, 0xf2bd04db, 0xf2bd04db, 0xf2bd04db, 0x20ad1cad, 0x20ad1cad, 0x20ad1cad, 0x9d94b8b7, 0x9d94b8b7, 0x9d94b8b7, 0x5fcf013d, 0xf7aafd36, 0xf7aafd36, 0x5fcf013d, }, 20 }, ++ { "gfxterm_ch", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x72ff749c, 0xeda8c283, 0x72ff749c, 0x4debded4, 0xdd28f52b, 0xdd28f52b, 0xb8c9cc22, 0xb8c9cc22, 0xb8c9cc22, 0x99f535c6, 0x99f535c6, 0x99f535c6, 0xda557d8c, 0xda557d8c, 0xda557d8c, 0xdd28f52b, 0x4debded4, 0x4debded4, 0xdd28f52b, }, 20 }, ++ { "gfxterm_ch", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0xb7cac764, 0xeb4bf417, 0xb7cac764, 0x2ed1ad15, 0x43d1f34, 0x43d1f34, 0xce718801, 0xce718801, 0xce718801, 0xb17b21a9, 0xb17b21a9, 0xb17b21a9, 0xe05a6b1b, 0xe05a6b1b, 0xe05a6b1b, 0x43d1f34, 0x2ed1ad15, 0x2ed1ad15, 0x43d1f34, }, 20 }, ++ { "gfxterm_red", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x930e8e13, 0xf5c16290, 0x930e8e13, 0x27f5f1c0, 0x59c36f00, 0x59c36f00, 0xbad4e11, 0xbad4e11, 0xbad4e11, 0x752d2377, 0x752d2377, 0x752d2377, 0xaa87de65, 0xaa87de65, 0xaa87de65, 0x59c36f00, 0x27f5f1c0, 0x27f5f1c0, 0x59c36f00, }, 20 }, ++ { "gfxterm_red", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0xff9301f2, 0x5bb9864a, 0xff9301f2, 0x31c145de, 0xaa4593fe, 0xaa4593fe, 0x23bf2c32, 0x23bf2c32, 0x23bf2c32, 0x854a2155, 0x854a2155, 0x854a2155, 0x9dea66fc, 0x9dea66fc, 0x9dea66fc, 0xaa4593fe, 0x31c145de, 0x31c145de, 0xaa4593fe, }, 20 }, ++ { "gfxterm_red", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xfc5938ef, 0x46d56737, 0xfc5938ef, 0x23cf2668, 0xc9cbf769, 0xc9cbf769, 0xa8c549aa, 0xa8c549aa, 0xa8c549aa, 0x561d8866, 0x561d8866, 0x561d8866, 0xcf3e4539, 0xcf3e4539, 0xcf3e4539, 0xc9cbf769, 0x23cf2668, 0x23cf2668, 0xc9cbf769, }, 20 }, ++ { "gfxterm_red", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0xe7160822, 0x54b60115, 0xe7160822, 0x168efa6f, 0x9813a416, 0x9813a416, 0xb774a5aa, 0xb774a5aa, 0xb774a5aa, 0x26af2399, 0x26af2399, 0x26af2399, 0x822f2a5a, 0x822f2a5a, 0x822f2a5a, 0x9813a416, 0x168efa6f, 0x168efa6f, 0x9813a416, }, 20 }, ++ { "gfxterm_red", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0xf655f9b2, 0xe6a3e2d3, 0xf655f9b2, 0xd1d7405f, 0x5fcf013d, 0x5fcf013d, 0x2accaa08, 0x2accaa08, 0x2accaa08, 0xf8dcb27e, 0xf8dcb27e, 0xf8dcb27e, 0x45e51664, 0x45e51664, 0x45e51664, 0x5fcf013d, 0xd1d7405f, 0xd1d7405f, 0x5fcf013d, }, 20 }, ++ { "gfxterm_red", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x2d85ebdc, 0x79fd4f02, 0x2d85ebdc, 0xc48ae2b6, 0xdd28f52b, 0xdd28f52b, 0x76b28a95, 0x76b28a95, 0x76b28a95, 0x578e7371, 0x578e7371, 0x578e7371, 0x142e3b3b, 0x142e3b3b, 0x142e3b3b, 0xdd28f52b, 0xc48ae2b6, 0xc48ae2b6, 0xdd28f52b, }, 20 }, ++ { "gfxterm_red", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x29c00f98, 0x8251d825, 0x29c00f98, 0x35a750d1, 0x43d1f34, 0x43d1f34, 0x48b70bc8, 0x48b70bc8, 0x48b70bc8, 0x37bda260, 0x37bda260, 0x37bda260, 0x669ce8d2, 0x669ce8d2, 0x669ce8d2, 0x43d1f34, 0x35a750d1, 0x35a750d1, 0x43d1f34, }, 20 }, ++ { "gfxterm_high", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0x59c36f00, 0x4afab717, 0x2c355b94, 0x4afab717, 0x1166d9d0, 0x59c36f00, 0x59c36f00, 0x620c0067, 0x620c0067, 0x620c0067, 0x1c8c6d01, 0x1c8c6d01, 0x1c8c6d01, 0xc3269013, 0xc3269013, 0xc3269013, 0x59c36f00, 0x1166d9d0, 0x1166d9d0, 0x59c36f00, }, 20 }, ++ { "gfxterm_high", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xaa4593fe, 0xe3daadd4, 0x47f02a6c, 0xe3daadd4, 0x5ea9fb21, 0xaa4593fe, 0xaa4593fe, 0xa8a596c8, 0xa8a596c8, 0xa8a596c8, 0xe509baf, 0xe509baf, 0xe509baf, 0x16f0dc06, 0x16f0dc06, 0x16f0dc06, 0xaa4593fe, 0x5ea9fb21, 0x5ea9fb21, 0xaa4593fe, }, 20 }, ++ { "gfxterm_high", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0xc9cbf769, 0xf140d1df, 0x4bcc8e07, 0xf140d1df, 0x7c962dcb, 0xc9cbf769, 0xc9cbf769, 0x3ce35e1d, 0x3ce35e1d, 0x3ce35e1d, 0xc23b9fd1, 0xc23b9fd1, 0xc23b9fd1, 0x5b18528e, 0x5b18528e, 0x5b18528e, 0xc9cbf769, 0x7c962dcb, 0x7c962dcb, 0xc9cbf769, }, 20 }, ++ { "gfxterm_high", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x9813a416, 0xe709a12d, 0x54a9a81a, 0xe709a12d, 0xde04d65c, 0x9813a416, 0x9813a416, 0x43fda3fa, 0x43fda3fa, 0x43fda3fa, 0xd22625c9, 0xd22625c9, 0xd22625c9, 0x76a62c0a, 0x76a62c0a, 0x76a62c0a, 0x9813a416, 0xde04d65c, 0xde04d65c, 0x9813a416, }, 20 }, ++ { "gfxterm_high", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0x5fcf013d, 0x65eff77c, 0x7519ec1d, 0x65eff77c, 0x1cd7d353, 0x5fcf013d, 0x5fcf013d, 0xf3582c48, 0xf3582c48, 0xf3582c48, 0x2148343e, 0x2148343e, 0x2148343e, 0x9c719024, 0x9c719024, 0x9c719024, 0x5fcf013d, 0x1cd7d353, 0x1cd7d353, 0x5fcf013d, }, 20 }, ++ { "gfxterm_high", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0xdd28f52b, 0x7318831a, 0x276027c4, 0x7318831a, 0xd7e4f5bb, 0xdd28f52b, 0xdd28f52b, 0xb3c7ef80, 0xb3c7ef80, 0xb3c7ef80, 0x92fb1664, 0x92fb1664, 0x92fb1664, 0xd15b5e2e, 0xd15b5e2e, 0xd15b5e2e, 0xdd28f52b, 0xd7e4f5bb, 0xd7e4f5bb, 0xdd28f52b, }, 20 }, ++ { "gfxterm_high", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x43d1f34, 0x6927a7d4, 0xc2b67069, 0x6927a7d4, 0xfc345163, 0x43d1f34, 0x43d1f34, 0xa0717008, 0xa0717008, 0xa0717008, 0xdf7bd9a0, 0xdf7bd9a0, 0xdf7bd9a0, 0x8e5a9312, 0x8e5a9312, 0x8e5a9312, 0x43d1f34, 0xfc345163, 0xfc345163, 0x43d1f34, }, 20 }, ++ { "videotest", 640, 480, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi16 */, (grub_uint32_t []) { 0xe6012f70, 0xe6012f70, 0xe6012f70, 0xe6012f70, 0xe6012f70, }, 5 }, ++ { "videotest", 800, 600, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi16 */, (grub_uint32_t []) { 0xfb6be77b, 0xfb6be77b, 0xfb6be77b, 0xfb6be77b, 0xfb6be77b, }, 5 }, ++ { "videotest", 1024, 768, 0x2, 16, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi16 */, (grub_uint32_t []) { 0x67c0629f, 0x67c0629f, 0x67c0629f, 0x67c0629f, 0x67c0629f, }, 5 }, ++ { "videotest", 640, 480, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 640x480xrgba8888 */, (grub_uint32_t []) { 0x8f20afbb, 0xd8f7abc, 0x8f937344, 0xd3ca643, 0x8e471645, }, 5 }, ++ { "videotest", 800, 600, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 800x600xrgba8888 */, (grub_uint32_t []) { 0xdca764da, 0x9f76da9a, 0x5b04185a, 0x18d5a61a, 0xd60deb2b, }, 5 }, ++ { "videotest", 1024, 768, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 1024x768xrgba8888 */, (grub_uint32_t []) { 0x7b87af36, 0x7cb96093, 0x75fa307c, 0x72c4ffd9, 0x677c91a2, }, 5 }, ++ { "videotest", 2560, 1440, 0x1, 256, 32, 4, 16, 8, 8, 8, 0, 8, 24, 8 /* 2560x1440xrgba8888 */, (grub_uint32_t []) { 0x72981c65, 0x50120635, 0x378c28c5, 0x15063295, 0xf8b07525, }, 5 }, ++ { "videotest", 640, 480, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 640x480xi256 */, (grub_uint32_t []) { 0xc8f64b58, 0xc8f64b58, 0xc8f64b58, 0xc8f64b58, 0xc8f64b58, }, 5 }, ++ { "videotest", 800, 600, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 800x600xi256 */, (grub_uint32_t []) { 0x2b499dfa, 0x2b499dfa, 0x2b499dfa, 0x2b499dfa, 0x2b499dfa, }, 5 }, ++ { "videotest", 1024, 768, 0x2, 256, 8, 1, 0, 0, 0, 0, 0, 0, 0, 0 /* 1024x768xi256 */, (grub_uint32_t []) { 0x6156b420, 0x6156b420, 0x6156b420, 0x6156b420, 0x6156b420, }, 5 }, ++ { "videotest", 640, 480, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 640x480xrgba5550 */, (grub_uint32_t []) { 0x363285ca, 0x363285ca, 0x363285ca, 0x363285ca, 0x363285ca, }, 5 }, ++ { "videotest", 800, 600, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 800x600xrgba5550 */, (grub_uint32_t []) { 0x25bb37f4, 0x25bb37f4, 0x25bb37f4, 0x25bb37f4, 0x25bb37f4, }, 5 }, ++ { "videotest", 1024, 768, 0x1, 256, 15, 2, 10, 5, 5, 5, 0, 5, 0, 0 /* 1024x768xrgba5550 */, (grub_uint32_t []) { 0xeeab9e91, 0xeeab9e91, 0xeeab9e91, 0xeeab9e91, 0xeeab9e91, }, 5 }, ++ { "videotest", 640, 480, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 640x480xrgba5650 */, (grub_uint32_t []) { 0x26a9a50b, 0x26a9a50b, 0x26a9a50b, 0x26a9a50b, 0x26a9a50b, }, 5 }, ++ { "videotest", 800, 600, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 800x600xrgba5650 */, (grub_uint32_t []) { 0x2c0f4fe7, 0x2c0f4fe7, 0x2c0f4fe7, 0x2c0f4fe7, 0x2c0f4fe7, }, 5 }, ++ { "videotest", 1024, 768, 0x1, 256, 16, 2, 11, 5, 5, 6, 0, 5, 0, 0 /* 1024x768xrgba5650 */, (grub_uint32_t []) { 0x46c11052, 0x46c11052, 0x46c11052, 0x46c11052, 0x46c11052, }, 5 }, ++ { "videotest", 640, 480, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 640x480xrgba8880 */, (grub_uint32_t []) { 0xe56cf615, 0xcd2be572, 0xb5e2d0db, 0x9da5c3bc, 0x4470bb89, }, 5 }, ++ { "videotest", 800, 600, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 800x600xrgba8880 */, (grub_uint32_t []) { 0x2a25b871, 0x4bf85361, 0xe99e6e51, 0x88438541, 0xa8be62c0, }, 5 }, ++ { "videotest", 1024, 768, 0x1, 256, 24, 3, 16, 8, 8, 8, 0, 8, 0, 0 /* 1024x768xrgba8880 */, (grub_uint32_t []) { 0x81523037, 0xd8c0bfd3, 0x32772fff, 0x6be5a01b, 0xe2f47956, }, 5 }, ++ { "videotest", 640, 480, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 640x480xbgra5550 */, (grub_uint32_t []) { 0x1833bb41, 0x1833bb41, 0x1833bb41, 0x1833bb41, 0x1833bb41, }, 5 }, ++ { "videotest", 800, 600, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 800x600xbgra5550 */, (grub_uint32_t []) { 0x2c39a0e8, 0x2c39a0e8, 0x2c39a0e8, 0x2c39a0e8, 0x2c39a0e8, }, 5 }, ++ { "videotest", 1024, 768, 0x1, 256, 15, 2, 0, 5, 5, 5, 10, 5, 0, 0 /* 1024x768xbgra5550 */, (grub_uint32_t []) { 0xf0d4c23, 0xf0d4c23, 0xf0d4c23, 0xf0d4c23, 0xf0d4c23, }, 5 }, ++ { "videotest", 640, 480, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 640x480xbgra5650 */, (grub_uint32_t []) { 0x456d063c, 0x456d063c, 0x456d063c, 0x456d063c, 0x456d063c, }, 5 }, ++ { "videotest", 800, 600, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 800x600xbgra5650 */, (grub_uint32_t []) { 0x47e15a2e, 0x47e15a2e, 0x47e15a2e, 0x47e15a2e, 0x47e15a2e, }, 5 }, ++ { "videotest", 1024, 768, 0x1, 256, 16, 2, 0, 5, 5, 6, 11, 5, 0, 0 /* 1024x768xbgra5650 */, (grub_uint32_t []) { 0x54d7300d, 0x54d7300d, 0x54d7300d, 0x54d7300d, 0x54d7300d, }, 5 }, ++ { "videotest", 640, 480, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 640x480xbgra8880 */, (grub_uint32_t []) { 0x770da211, 0x8ef2528e, 0x811e35de, 0x78e1c541, 0x9ec6fb7e, }, 5 }, ++ { "videotest", 800, 600, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 800x600xbgra8880 */, (grub_uint32_t []) { 0xeb181fbc, 0xae648cc1, 0x61e13946, 0x249daa3b, 0xfb0624b9, }, 5 }, ++ { "videotest", 1024, 768, 0x1, 256, 24, 3, 0, 8, 8, 8, 16, 8, 0, 0 /* 1024x768xbgra8880 */, (grub_uint32_t []) { 0x2b6f64dc, 0xc25f8431, 0xfce2d3f7, 0x15d2331a, 0x81987c7b, }, 5 }, ++ { "videotest", 640, 480, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 640x480xbgra8888 */, (grub_uint32_t []) { 0xa260f7dd, 0x3e2f4980, 0x9f13fd96, 0x35c43cb, 0xd886e34b, }, 5 }, ++ { "videotest", 800, 600, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 800x600xbgra8888 */, (grub_uint32_t []) { 0x41a9bff8, 0xa0d3f7c3, 0x86b1597f, 0x67cb1144, 0xca740407, }, 5 }, ++ { "videotest", 1024, 768, 0x1, 256, 32, 4, 0, 8, 8, 8, 16, 8, 24, 8 /* 1024x768xbgra8888 */, (grub_uint32_t []) { 0x8f7a3b6d, 0xcb84c6e3, 0x687c071, 0x42793dff, 0x996dbba4, }, 5 }, +diff --git a/include/grub/aout.h b/include/grub/aout.h +index 10d7dde61ececf0e980c6ad62420764fcefd5e67..c8c1d94eca518042992a6fc5e3777f81a39b431d 100644 +--- a/include/grub/aout.h ++++ b/include/grub/aout.h +@@ -52,6 +52,7 @@ + #define GRUB_AOUT_HEADER 1 + + #include ++#include + + struct grub_aout32_header + { +diff --git a/include/grub/arc/arc.h b/include/grub/arc/arc.h +index 7615a49a92cac0ac16326c188e438b789b09acec..999de7196753b58781a02c5311c9bc3834408021 100644 +--- a/include/grub/arc/arc.h ++++ b/include/grub/arc/arc.h +@@ -53,7 +53,7 @@ enum grub_arc_memory_type + #ifndef GRUB_CPU_WORDS_BIGENDIAN + GRUB_ARC_MEMORY_FREE_CONTIGUOUS, + #endif +- } grub_arc_memory_type_t; ++ }; + + struct grub_arc_timeinfo + { diff --git a/include/grub/arm/coreboot/console.h b/include/grub/arm/coreboot/console.h new file mode 100644 index 0000000000000000000000000000000000000000..13a14b783839a6cae96845973ae3087bcaef670e @@ -6406,16 +13127,59 @@ index 0000000000000000000000000000000000000000..45a372572a5c3c411c9b2b7f328135f5 + +#endif diff --git a/include/grub/arm/linux.h b/include/grub/arm/linux.h -index a66caad13db8c5c3b0da10f624d01a81640eab44..f217f8281ade38fdb95ebd0b0e18bdf7bbe9aaf9 100644 +index a66caad13db8c5c3b0da10f624d01a81640eab44..712ba17b9ba30cf850b6a9011d08a04d57816227 100644 --- a/include/grub/arm/linux.h +++ b/include/grub/arm/linux.h -@@ -46,6 +46,22 @@ grub_arm_firmware_get_machine_type (void) - { - return GRUB_ARM_MACHINE_TYPE_FDT; - } +@@ -17,14 +17,28 @@ + * along with GRUB. If not, see . + */ + +-#ifndef GRUB_LINUX_CPU_HEADER +-#define GRUB_LINUX_CPU_HEADER 1 +- +-#define LINUX_ZIMAGE_OFFSET 0x24 +-#define LINUX_ZIMAGE_MAGIC 0x016f2818 ++#ifndef GRUB_ARM_LINUX_HEADER ++#define GRUB_ARM_LINUX_HEADER 1 + + #include "system.h" + ++#define GRUB_LINUX_ARM_MAGIC_SIGNATURE 0x016f2818 ++ ++struct linux_arm_kernel_header { ++ grub_uint32_t code0; ++ grub_uint32_t reserved1[8]; ++ grub_uint32_t magic; ++ grub_uint32_t start; /* _start */ ++ grub_uint32_t end; /* _edata */ ++ grub_uint32_t reserved2[4]; ++ grub_uint32_t hdr_offset; ++}; ++ ++#if defined(__arm__) ++# define GRUB_LINUX_ARMXX_MAGIC_SIGNATURE GRUB_LINUX_ARM_MAGIC_SIGNATURE ++# define linux_armxx_kernel_header linux_arm_kernel_header ++#endif ++ + #if defined GRUB_MACHINE_UBOOT + # include + # define LINUX_ADDRESS (start_of_ram + 0x8000) +@@ -32,15 +46,17 @@ + # define LINUX_FDT_ADDRESS (LINUX_INITRD_ADDRESS - 0x10000) + # define grub_arm_firmware_get_boot_data grub_uboot_get_boot_data + # define grub_arm_firmware_get_machine_type grub_uboot_get_machine_type +-#elif defined GRUB_MACHINE_EFI +-# include +-# include +-/* On UEFI platforms - load the images at the lowest available address not +- less than *_PHYS_OFFSET from the first available memory location. */ +-# define LINUX_PHYS_OFFSET (0x00008000) +-# define LINUX_INITRD_PHYS_OFFSET (LINUX_PHYS_OFFSET + 0x02000000) +-# define LINUX_FDT_PHYS_OFFSET (LINUX_INITRD_PHYS_OFFSET - 0x10000) +-# define grub_arm_firmware_get_boot_data (grub_addr_t)grub_efi_get_firmware_fdt +#elif defined (GRUB_MACHINE_COREBOOT) +#include -+#include ++#include +# define LINUX_ADDRESS (start_of_ram + 0x8000) +# define LINUX_INITRD_ADDRESS (start_of_ram + 0x02000000) +# define LINUX_FDT_ADDRESS (LINUX_INITRD_ADDRESS - 0x10000) @@ -6424,14 +13188,17 @@ index a66caad13db8c5c3b0da10f624d01a81640eab44..f217f8281ade38fdb95ebd0b0e18bdf7 +{ + return grub_fdtbus_get_fdt (); +} -+static inline grub_uint32_t -+grub_arm_firmware_get_machine_type (void) -+{ -+ return GRUB_ARM_MACHINE_TYPE_FDT; -+} + static inline grub_uint32_t + grub_arm_firmware_get_machine_type (void) + { +@@ -48,6 +64,4 @@ grub_arm_firmware_get_machine_type (void) + } #endif - #define FDT_ADDITIONAL_ENTRIES_SIZE 0x300 +-#define FDT_ADDITIONAL_ENTRIES_SIZE 0x300 +- +-#endif /* ! GRUB_LINUX_CPU_HEADER */ ++#endif /* ! GRUB_ARM_LINUX_HEADER */ diff --git a/include/grub/arm/startup.h b/include/grub/arm/startup.h new file mode 100644 index 0000000000000000000000000000000000000000..9afb6c57c0bc4c53e96f711bf545d94a8ed07aa5 @@ -6455,18 +13222,46 @@ index 0000000000000000000000000000000000000000..9afb6c57c0bc4c53e96f711bf545d94a + +#endif diff --git a/include/grub/arm64/linux.h b/include/grub/arm64/linux.h -index 1ea23696e7a096e53075af2314da11ecce91f8d7..a981df5d15f5f186935af0648da2408ac613f796 100644 +index 1ea23696e7a096e53075af2314da11ecce91f8d7..8655067e03924793293ba86cb1bae2e44efa5fee 100644 --- a/include/grub/arm64/linux.h +++ b/include/grub/arm64/linux.h -@@ -23,8 +23,6 @@ +@@ -16,17 +16,13 @@ + * along with GRUB. If not, see . + */ - #define GRUB_ARM64_LINUX_MAGIC 0x644d5241 /* 'ARM\x64' */ +-#ifndef GRUB_LINUX_CPU_HEADER +-#define GRUB_LINUX_CPU_HEADER 1 ++#ifndef GRUB_ARM64_LINUX_HEADER ++#define GRUB_ARM64_LINUX_HEADER 1 --#define GRUB_EFI_PE_MAGIC 0x5A4D +-#include - +-#define GRUB_ARM64_LINUX_MAGIC 0x644d5241 /* 'ARM\x64' */ +- +-#define GRUB_EFI_PE_MAGIC 0x5A4D ++#define GRUB_LINUX_ARM64_MAGIC_SIGNATURE 0x644d5241 /* 'ARM\x64' */ + /* From linux/Documentation/arm64/booting.txt */ - struct grub_arm64_linux_kernel_header +-struct grub_arm64_linux_kernel_header ++struct linux_arm64_kernel_header { + grub_uint32_t code0; /* Executable code */ + grub_uint32_t code1; /* Executable code */ +@@ -40,9 +36,9 @@ struct grub_arm64_linux_kernel_header + grub_uint32_t hdr_offset; /* Offset of PE/COFF header */ + }; + +-grub_err_t grub_arm64_uefi_check_image (struct grub_arm64_linux_kernel_header +- *lh); +-grub_err_t grub_arm64_uefi_boot_image (grub_addr_t addr, grub_size_t size, +- char *args); ++#if defined(__aarch64__) ++# define GRUB_LINUX_ARMXX_MAGIC_SIGNATURE GRUB_LINUX_ARM64_MAGIC_SIGNATURE ++# define linux_armxx_kernel_header linux_arm64_kernel_header ++#endif + +-#endif /* ! GRUB_LINUX_CPU_HEADER */ ++#endif /* ! GRUB_ARM64_LINUX_HEADER */ diff --git a/include/grub/at_keyboard.h b/include/grub/at_keyboard.h index b4f8ff0a06117756a770129683796edf0050b867..bcb4d9ba78f1376bdaa82249418f847eb4e543a6 100644 --- a/include/grub/at_keyboard.h @@ -6604,10 +13399,10 @@ index 0000000000000000000000000000000000000000..19992ebc131d4fc93a45f31992ad3c03 + +#endif diff --git a/include/grub/efi/efi.h b/include/grub/efi/efi.h -index e9c601f34103ae1a4ced7e93be8204970bfef193..3fa082816ca5d6a5ae98d91d3ead3ef05a969159 100644 +index e9c601f34103ae1a4ced7e93be8204970bfef193..2c6648d46fc1a377312c81220c38470d9d1cc99a 100644 --- a/include/grub/efi/efi.h +++ b/include/grub/efi/efi.h -@@ -38,8 +38,15 @@ void *EXPORT_FUNC(grub_efi_open_protocol) (grub_efi_handle_t handle, +@@ -38,16 +38,25 @@ void *EXPORT_FUNC(grub_efi_open_protocol) (grub_efi_handle_t handle, int EXPORT_FUNC(grub_efi_set_text_mode) (int on); void EXPORT_FUNC(grub_efi_stall) (grub_efi_uintn_t microseconds); void * @@ -6623,11 +13418,62 @@ index e9c601f34103ae1a4ced7e93be8204970bfef193..3fa082816ca5d6a5ae98d91d3ead3ef0 +EXPORT_FUNC(grub_efi_allocate_any_pages) (grub_efi_uintn_t pages); void EXPORT_FUNC(grub_efi_free_pages) (grub_efi_physical_address_t address, grub_efi_uintn_t pages); ++grub_efi_uintn_t EXPORT_FUNC(grub_efi_find_mmap_size) (void); int + EXPORT_FUNC(grub_efi_get_memory_map) (grub_efi_uintn_t *memory_map_size, + grub_efi_memory_descriptor_t *memory_map, + grub_efi_uintn_t *map_key, + grub_efi_uintn_t *descriptor_size, + grub_efi_uint32_t *descriptor_version); ++void grub_efi_memory_fini (void); + grub_efi_loaded_image_t *EXPORT_FUNC(grub_efi_get_loaded_image) (grub_efi_handle_t image_handle); + void EXPORT_FUNC(grub_efi_print_device_path) (grub_efi_device_path_t *dp); + char *EXPORT_FUNC(grub_efi_get_filename) (grub_efi_device_path_t *dp); +@@ -83,6 +92,11 @@ extern void (*EXPORT_VAR(grub_efi_net_config)) (grub_efi_handle_t hnd, + + #if defined(__arm__) || defined(__aarch64__) + void *EXPORT_FUNC(grub_efi_get_firmware_fdt)(void); ++grub_err_t EXPORT_FUNC(grub_efi_get_ram_base)(grub_addr_t *); ++#include ++grub_err_t grub_armxx_efi_linux_check_image(struct linux_armxx_kernel_header *lh); ++grub_err_t grub_armxx_efi_linux_boot_image(grub_addr_t addr, grub_size_t size, ++ char *args); + #endif + + grub_addr_t grub_efi_modules_addr (void); diff --git a/include/grub/arm64/fdtload.h b/include/grub/efi/fdtload.h -similarity index 100% +similarity index 89% rename from include/grub/arm64/fdtload.h rename to include/grub/efi/fdtload.h +index 7b9ddba916d9980fbad51e7b02d99f0737ebc3fa..713c9424d0a9ebe47b1923a247e691566842b2d0 100644 +--- a/include/grub/arm64/fdtload.h ++++ b/include/grub/efi/fdtload.h +@@ -29,7 +29,4 @@ grub_fdt_unload (void); + grub_err_t + grub_fdt_install (void); + +-#define GRUB_EFI_PAGE_SHIFT 12 +-#define GRUB_EFI_BYTES_TO_PAGES(bytes) (((bytes) + 0xfff) >> GRUB_EFI_PAGE_SHIFT) +- + #endif +diff --git a/include/grub/efi/memory.h b/include/grub/efi/memory.h +index 20526b14676de9295d17968f5ddc837a06bc56b6..08fe62277839dde3434e506cde78174f1977e9c9 100644 +--- a/include/grub/efi/memory.h ++++ b/include/grub/efi/memory.h +@@ -22,6 +22,13 @@ + #include + #include + ++/* The term "page" in UEFI refers only to a 4 KiB-aligned 4 KiB size region of ++ memory. It is not concerned with underlying translation management concepts, ++ but only used as the granule for memory allocations. */ ++#define GRUB_EFI_PAGE_SHIFT 12 ++#define GRUB_EFI_PAGE_SIZE (1 << GRUB_EFI_PAGE_SHIFT) ++#define GRUB_EFI_BYTES_TO_PAGES(bytes) (((bytes) + 0xfff) >> GRUB_EFI_PAGE_SHIFT) ++ + #define GRUB_MMAP_REGISTER_BY_FIRMWARE 1 + + grub_err_t grub_machine_mmap_register (grub_uint64_t start, grub_uint64_t size, diff --git a/include/grub/efi/pe32.h b/include/grub/efi/pe32.h index f79c36c026e0a518b3f9edaca36251d6d4943757..7d44732d2c353b74271262a1cf094d4aafd8dd10 100644 --- a/include/grub/efi/pe32.h @@ -6641,8 +13487,52 @@ index f79c36c026e0a518b3f9edaca36251d6d4943757..7d44732d2c353b74271262a1cf094d4a /* According to the spec, the minimal alignment is 512 bytes... But some examples (such as EFI drivers in the Intel Sample Implementation) use 32 bytes (0x20) instead, and it seems +diff --git a/include/grub/efiemu/runtime.h b/include/grub/efiemu/runtime.h +index 9b6b729f4ccde7274678b1324c16c9f6854477a2..36d2dedf47e4346b86f17882dc554207201b6401 100644 +--- a/include/grub/efiemu/runtime.h ++++ b/include/grub/efiemu/runtime.h +@@ -29,7 +29,7 @@ struct grub_efiemu_ptv_rel + + struct efi_variable + { +- grub_efi_guid_t guid; ++ grub_efi_packed_guid_t guid; + grub_uint32_t namelen; + grub_uint32_t size; + grub_efi_uint32_t attributes; +diff --git a/include/grub/fat.h b/include/grub/fat.h +index 4a5aab7934652cfde20c6fb291e00c29170b8753..8d7e4a1e54d644e6d70bb249802c699d5092728e 100644 +--- a/include/grub/fat.h ++++ b/include/grub/fat.h +@@ -28,20 +28,15 @@ struct grub_fat_bpb + grub_uint16_t bytes_per_sector; + grub_uint8_t sectors_per_cluster; + grub_uint16_t num_reserved_sectors; +- grub_uint8_t num_fats; +- /* 0x10 */ ++ grub_uint8_t num_fats; /* 0x10 */ + grub_uint16_t num_root_entries; + grub_uint16_t num_total_sectors_16; +- grub_uint8_t media; +- /*0 x15 */ ++ grub_uint8_t media; /* 0x15 */ + grub_uint16_t sectors_per_fat_16; +- grub_uint16_t sectors_per_track; +- /*0 x19 */ +- grub_uint16_t num_heads; +- /*0 x1b */ +- grub_uint32_t num_hidden_sectors; +- /* 0x1f */ +- grub_uint32_t num_total_sectors_32; ++ grub_uint16_t sectors_per_track; /* 0x18 */ ++ grub_uint16_t num_heads; /* 0x1A */ ++ grub_uint32_t num_hidden_sectors; /* 0x1C */ ++ grub_uint32_t num_total_sectors_32; /* 0x20 */ + union + { + struct diff --git a/include/grub/fdt.h b/include/grub/fdt.h -index fdfca75bf487f17e8621fee5d1642f4874a2bf16..75525fa317c340c7649f0241bf447ee47495b78a 100644 +index fdfca75bf487f17e8621fee5d1642f4874a2bf16..158b1bc4b3ad8bac60860e298b816781d6c57090 100644 --- a/include/grub/fdt.h +++ b/include/grub/fdt.h @@ -20,6 +20,7 @@ @@ -6653,7 +13543,19 @@ index fdfca75bf487f17e8621fee5d1642f4874a2bf16..75525fa317c340c7649f0241bf447ee4 #define FDT_MAGIC 0xD00DFEED -@@ -95,16 +96,22 @@ struct grub_fdt_empty_tree { +@@ -49,6 +50,11 @@ struct grub_fdt_empty_tree { + + #define GRUB_FDT_EMPTY_TREE_SZ sizeof (struct grub_fdt_empty_tree) + ++/* Size needed by a property entry: 1 token (FDT_PROPERTY), plus len and nameoff ++ fields, plus the property value, plus padding if needed. */ ++#define grub_fdt_prop_entry_size(prop_len) \ ++ (3 * sizeof(grub_uint32_t) + ALIGN_UP(prop_len, sizeof(grub_uint32_t))) ++ + #define grub_fdt_get_header(fdt, field) \ + grub_be_to_cpu32(((const grub_fdt_header_t *)(fdt))->field) + #define grub_fdt_set_header(fdt, field, value) \ +@@ -95,16 +101,22 @@ struct grub_fdt_empty_tree { #define grub_fdt_set_size_dt_struct(fdt, value) \ grub_fdt_set_header(fdt, size_dt_struct, value) @@ -6779,6 +13681,171 @@ index 0000000000000000000000000000000000000000..f519c40ec35faea9aeedca055164012d +grub_fdtbus_init (const void *dtb, grub_size_t size); + +#endif +diff --git a/include/grub/gpt_partition.h b/include/grub/gpt_partition.h +index 1b32f6725a498f16941991771efe6a7a04ed6f5e..7a93f43291cce490cbaecc140ef2e5e0577ae274 100644 +--- a/include/grub/gpt_partition.h ++++ b/include/grub/gpt_partition.h +@@ -22,14 +22,14 @@ + #include + #include + +-struct grub_gpt_part_type ++struct grub_gpt_part_guid + { + grub_uint32_t data1; + grub_uint16_t data2; + grub_uint16_t data3; + grub_uint8_t data4[8]; +-} __attribute__ ((aligned(8))); +-typedef struct grub_gpt_part_type grub_gpt_part_type_t; ++} GRUB_PACKED; ++typedef struct grub_gpt_part_guid grub_gpt_part_guid_t; + + #define GRUB_GPT_PARTITION_TYPE_EMPTY \ + { 0x0, 0x0, 0x0, \ +@@ -70,8 +70,8 @@ struct grub_gpt_header + + struct grub_gpt_partentry + { +- grub_gpt_part_type_t type; +- grub_uint8_t guid[16]; ++ grub_gpt_part_guid_t type; ++ grub_gpt_part_guid_t guid; + grub_uint64_t start; + grub_uint64_t end; + grub_uint64_t attrib; +diff --git a/include/grub/i386/linux.h b/include/grub/i386/linux.h +index da0ca3b83cdc7355fc5b9815415ad7fc8732d153..60c7c3b5e660276dc11d23f4a53ccc2f1e5536a5 100644 +--- a/include/grub/i386/linux.h ++++ b/include/grub/i386/linux.h +@@ -16,10 +16,10 @@ + * along with GRUB. If not, see . + */ + +-#ifndef GRUB_LINUX_MACHINE_HEADER +-#define GRUB_LINUX_MACHINE_HEADER 1 ++#ifndef GRUB_I386_LINUX_HEADER ++#define GRUB_I386_LINUX_HEADER 1 + +-#define GRUB_LINUX_MAGIC_SIGNATURE 0x53726448 /* "HdrS" */ ++#define GRUB_LINUX_I386_MAGIC_SIGNATURE 0x53726448 /* "HdrS" */ + #define GRUB_LINUX_DEFAULT_SETUP_SECTS 4 + #define GRUB_LINUX_INITRD_MAX_ADDRESS 0x37FFFFFF + #define GRUB_LINUX_MAX_SETUP_SECTS 64 +@@ -43,6 +43,9 @@ + + #define GRUB_LINUX_CL_MAGIC 0xA33F + ++#define VIDEO_CAPABILITY_SKIP_QUIRKS (1 << 0) ++#define VIDEO_CAPABILITY_64BIT_BASE (1 << 1) /* Frame buffer base is 64-bit. */ ++ + #ifdef __x86_64__ + + #define GRUB_LINUX_EFI_SIGNATURE \ +@@ -85,7 +88,7 @@ enum + }; + + /* For the Linux/i386 boot protocol version 2.10. */ +-struct linux_kernel_header ++struct linux_i386_kernel_header + { + grub_uint8_t code1[0x0020]; + grub_uint16_t cl_magic; /* Magic number 0xA33F */ +@@ -188,8 +191,9 @@ struct linux_kernel_params + grub_uint16_t lfb_pages; /* 32 */ + grub_uint16_t vesa_attrib; /* 34 */ + grub_uint32_t capabilities; /* 36 */ ++ grub_uint32_t ext_lfb_base; /* 3a */ + +- grub_uint8_t padding3[0x40 - 0x3a]; ++ grub_uint8_t padding3[0x40 - 0x3e]; + + grub_uint16_t apm_version; /* 40 */ + grub_uint16_t apm_code_segment; /* 42 */ +@@ -312,4 +316,4 @@ struct linux_kernel_params + } GRUB_PACKED; + #endif /* ! ASM_FILE */ + +-#endif /* ! GRUB_LINUX_MACHINE_HEADER */ ++#endif /* ! GRUB_I386_LINUX_HEADER */ +diff --git a/include/grub/i386/multiboot.h b/include/grub/i386/multiboot.h +index 807a1de27f900c8393476736051e20ee1af6717c..0b596fc2060a63f2fd9e1c67cb002279454aebe5 100644 +--- a/include/grub/i386/multiboot.h ++++ b/include/grub/i386/multiboot.h +@@ -19,6 +19,13 @@ + #ifndef GRUB_MULTIBOOT_CPU_HEADER + #define GRUB_MULTIBOOT_CPU_HEADER 1 + ++#define MULTIBOOT2_INITIAL_STATE { .eax = MULTIBOOT2_BOOTLOADER_MAGIC, \ ++ .ecx = 0, \ ++ .edx = 0, \ ++ /* Set esp to some random location in low memory to avoid breaking */ \ ++ /* non-compliant kernels. */ \ ++ .esp = 0x7ff00 \ ++ } + #define MULTIBOOT_INITIAL_STATE { .eax = MULTIBOOT_BOOTLOADER_MAGIC, \ + .ecx = 0, \ + .edx = 0, \ +@@ -28,7 +35,7 @@ + } + #define MULTIBOOT_ENTRY_REGISTER eip + #define MULTIBOOT_MBI_REGISTER ebx +-#define MULTIBOOT_ARCHITECTURE_CURRENT MULTIBOOT_ARCHITECTURE_I386 ++#define MULTIBOOT2_ARCHITECTURE_CURRENT MULTIBOOT2_ARCHITECTURE_I386 + + #ifdef GRUB_MACHINE_EFI + #ifdef __x86_64__ +@@ -36,6 +43,10 @@ + .rcx = 0, \ + .rdx = 0, \ + } ++#define MULTIBOOT2_EFI_INITIAL_STATE { .rax = MULTIBOOT2_BOOTLOADER_MAGIC, \ ++ .rcx = 0, \ ++ .rdx = 0, \ ++ } + #define MULTIBOOT_EFI_ENTRY_REGISTER rip + #define MULTIBOOT_EFI_MBI_REGISTER rbx + #endif +diff --git a/include/grub/ieee1275/ieee1275.h b/include/grub/ieee1275/ieee1275.h +index 8e425130327e193af1c1e34760e7255c9d6e6223..8868f3a756fe57b90188e25aaba2b203edacde13 100644 +--- a/include/grub/ieee1275/ieee1275.h ++++ b/include/grub/ieee1275/ieee1275.h +@@ -210,7 +210,25 @@ int EXPORT_FUNC(grub_ieee1275_set_property) (grub_ieee1275_phandle_t phandle, + int EXPORT_FUNC(grub_ieee1275_set_color) (grub_ieee1275_ihandle_t ihandle, + int index, int r, int g, int b); + int EXPORT_FUNC(grub_ieee1275_milliseconds) (grub_uint32_t *msecs); +- ++int EXPORT_FUNC(grub_ieee1275_set_address) (grub_ieee1275_ihandle_t ihandle, ++ grub_uint32_t target, ++ grub_uint32_t lun); ++int EXPORT_FUNC(grub_ieee1275_no_data_command) (grub_ieee1275_ihandle_t ihandle, ++ const void *cmd_addr, ++ grub_ssize_t *result); ++int EXPORT_FUNC(grub_ieee1275_decode_unit4) (grub_ieee1275_ihandle_t ihandle, ++ void *addr, grub_size_t size, ++ grub_uint32_t *phy_lo, ++ grub_uint32_t *phy_hi, ++ grub_uint32_t *lun_lo, ++ grub_uint32_t *lun_hi); ++char *EXPORT_FUNC(grub_ieee1275_encode_uint4) (grub_ieee1275_ihandle_t ihandle, ++ grub_uint32_t phy_lo, ++ grub_uint32_t phy_hi, ++ grub_uint32_t lun_lo, ++ grub_uint32_t lun_hi, ++ grub_size_t *size); ++int EXPORT_FUNC(grub_ieee1275_get_block_size) (grub_ieee1275_ihandle_t ihandle); + + grub_err_t EXPORT_FUNC(grub_claimmap) (grub_addr_t addr, grub_size_t size); + +@@ -235,6 +253,8 @@ void EXPORT_FUNC(grub_ieee1275_children_peer) (struct grub_ieee1275_devalias *al + void EXPORT_FUNC(grub_ieee1275_children_first) (const char *devpath, + struct grub_ieee1275_devalias *alias); + ++char *EXPORT_FUNC(grub_ieee1275_get_boot_dev) (void); ++ + #define FOR_IEEE1275_DEVALIASES(alias) for (grub_ieee1275_devalias_init_iterator (&(alias)); grub_ieee1275_devalias_next (&(alias));) + + #define FOR_IEEE1275_DEVCHILDREN(devpath, alias) for (grub_ieee1275_children_first ((devpath), &(alias)); \ diff --git a/include/grub/kernel.h b/include/grub/kernel.h index 20ddf2da297d5c883ed5b5542f2cfd99ee9c18da..ecd88ca72c6dea39be9f046463e7c51c874cb351 100644 --- a/include/grub/kernel.h @@ -6793,6 +13860,189 @@ index 20ddf2da297d5c883ed5b5542f2cfd99ee9c18da..ecd88ca72c6dea39be9f046463e7c51c }; /* The module header. */ +diff --git a/include/grub/mips/multiboot.h b/include/grub/mips/multiboot.h +index 4aebf29e73240b575bb90c699fd02e8185ab5171..cdfb41e315af4aa22d549f76fb0131835abd957e 100644 +--- a/include/grub/mips/multiboot.h ++++ b/include/grub/mips/multiboot.h +@@ -19,11 +19,11 @@ + #ifndef GRUB_MULTIBOOT_CPU_HEADER + #define GRUB_MULTIBOOT_CPU_HEADER 1 + +-#define MULTIBOOT_INITIAL_STATE { .gpr[4] = MULTIBOOT_BOOTLOADER_MAGIC, \ ++#define MULTIBOOT2_INITIAL_STATE { .gpr[4] = MULTIBOOT2_BOOTLOADER_MAGIC, \ + .jumpreg = 1 } + #define MULTIBOOT_ENTRY_REGISTER gpr[1] + #define MULTIBOOT_MBI_REGISTER gpr[5] +-#define MULTIBOOT_ARCHITECTURE_CURRENT MULTIBOOT_ARCHITECTURE_MIPS32 ++#define MULTIBOOT2_ARCHITECTURE_CURRENT MULTIBOOT2_ARCHITECTURE_MIPS32 + + #define MULTIBOOT_ELF32_MACHINE EM_MIPS + #define MULTIBOOT_ELF64_MACHINE EM_MIPS +diff --git a/include/grub/misc.h b/include/grub/misc.h +index 2a9f87cc255eda94476733513807ec757c6d9cd9..372f009e84f12a58c3185dda63216bab7325be8f 100644 +--- a/include/grub/misc.h ++++ b/include/grub/misc.h +@@ -396,7 +396,8 @@ grub_abs (int x) + } + + /* Reboot the machine. */ +-#if defined (GRUB_MACHINE_EMU) || defined (GRUB_MACHINE_QEMU_MIPS) ++#if defined (GRUB_MACHINE_EMU) || defined (GRUB_MACHINE_QEMU_MIPS) || \ ++ defined (GRUB_MACHINE_EFI) + void EXPORT_FUNC(grub_reboot) (void) __attribute__ ((noreturn)); + #else + void grub_reboot (void) __attribute__ ((noreturn)); +diff --git a/include/grub/multiboot.h b/include/grub/multiboot.h +index c96492bb5fa771831a62d4ab1bac3798328093f0..bd0a9873e6c158f77190c38546007c544cb0d6c9 100644 +--- a/include/grub/multiboot.h ++++ b/include/grub/multiboot.h +@@ -22,19 +22,11 @@ + + #include + +-#ifdef GRUB_USE_MULTIBOOT2 +-#include +-/* Same thing as far as our loader is concerned. */ +-#define MULTIBOOT_BOOTLOADER_MAGIC MULTIBOOT2_BOOTLOADER_MAGIC +-#define MULTIBOOT_HEADER_MAGIC MULTIBOOT2_HEADER_MAGIC +-#else + #include +-#endif + + #include + #include + +-#ifndef GRUB_USE_MULTIBOOT2 + typedef enum + { + GRUB_MULTIBOOT_QUIRKS_NONE = 0, +@@ -42,7 +34,6 @@ typedef enum + GRUB_MULTIBOOT_QUIRK_MODULES_AFTER_KERNEL = 2 + } grub_multiboot_quirks_t; + extern grub_multiboot_quirks_t grub_multiboot_quirks; +-#endif + + extern struct grub_relocator *grub_multiboot_relocator; + +@@ -60,7 +51,7 @@ void + grub_multiboot_add_elfsyms (grub_size_t num, grub_size_t entsize, + unsigned shndx, void *data); + +-grub_uint32_t grub_get_multiboot_mmap_count (void); ++grub_uint32_t grub_multiboot_get_mmap_count (void); + grub_err_t grub_multiboot_set_video_mode (void); + + /* FIXME: support coreboot as well. */ +diff --git a/include/grub/multiboot2.h b/include/grub/multiboot2.h +new file mode 100644 +index 0000000000000000000000000000000000000000..502d34ef18045e898680f2198522139c3066b587 +--- /dev/null ++++ b/include/grub/multiboot2.h +@@ -0,0 +1,104 @@ ++/* multiboot.h - multiboot header file with grub definitions. */ ++/* ++ * GRUB -- GRand Unified Bootloader ++ * Copyright (C) 2003,2007,2008,2010 Free Software Foundation, Inc. ++ * ++ * GRUB is free software: you can redistribute it and/or modify ++ * it under the terms of the GNU General Public License as published by ++ * the Free Software Foundation, either version 3 of the License, or ++ * (at your option) any later version. ++ * ++ * GRUB is distributed in the hope that it will be useful, ++ * but WITHOUT ANY WARRANTY; without even the implied warranty of ++ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ++ * GNU General Public License for more details. ++ * ++ * You should have received a copy of the GNU General Public License ++ * along with GRUB. If not, see . ++ */ ++ ++#ifndef GRUB_MULTIBOOT2_HEADER ++#define GRUB_MULTIBOOT2_HEADER 1 ++ ++#include ++ ++#include ++ ++#include ++#include ++ ++extern struct grub_relocator *grub_multiboot2_relocator; ++ ++void grub_multiboot2 (int argc, char *argv[]); ++void grub_module2 (int argc, char *argv[]); ++ ++void grub_multiboot2_set_accepts_video (int val); ++grub_err_t grub_multiboot2_make_mbi (grub_uint32_t *target); ++void grub_multiboot2_free_mbi (void); ++grub_err_t grub_multiboot2_init_mbi (int argc, char *argv[]); ++grub_err_t grub_multiboot2_add_module (grub_addr_t start, grub_size_t size, ++ int argc, char *argv[]); ++void grub_multiboot2_set_bootdev (void); ++void ++grub_multiboot2_add_elfsyms (grub_size_t num, grub_size_t entsize, ++ unsigned shndx, void *data); ++ ++grub_uint32_t grub_multiboot2_get_mmap_count (void); ++grub_err_t grub_multiboot2_set_video_mode (void); ++ ++/* FIXME: support coreboot as well. */ ++#if defined (GRUB_MACHINE_PCBIOS) ++#define GRUB_MACHINE_HAS_VBE 1 ++#else ++#define GRUB_MACHINE_HAS_VBE 0 ++#endif ++ ++#if defined (GRUB_MACHINE_PCBIOS) || defined (GRUB_MACHINE_COREBOOT) || defined (GRUB_MACHINE_MULTIBOOT) || defined (GRUB_MACHINE_QEMU) ++#define GRUB_MACHINE_HAS_VGA_TEXT 1 ++#else ++#define GRUB_MACHINE_HAS_VGA_TEXT 0 ++#endif ++ ++#if defined (GRUB_MACHINE_EFI) || defined (GRUB_MACHINE_PCBIOS) || defined (GRUB_MACHINE_COREBOOT) || defined (GRUB_MACHINE_MULTIBOOT) ++#define GRUB_MACHINE_HAS_ACPI 1 ++#else ++#define GRUB_MACHINE_HAS_ACPI 0 ++#endif ++ ++#define GRUB_MULTIBOOT2_CONSOLE_EGA_TEXT 1 ++#define GRUB_MULTIBOOT2_CONSOLE_FRAMEBUFFER 2 ++ ++grub_err_t ++grub_multiboot2_set_console (int console_type, int accepted_consoles, ++ int width, int height, int depth, ++ int console_required); ++grub_err_t ++grub_multiboot2_load (grub_file_t file, const char *filename); ++ ++struct mbi_load_data ++{ ++ grub_file_t file; ++ const char *filename; ++ void *buffer; ++ unsigned int mbi_ver; ++ int relocatable; ++ grub_uint32_t min_addr; ++ grub_uint32_t max_addr; ++ grub_size_t align; ++ grub_uint32_t preference; ++ grub_uint32_t link_base_addr; ++ grub_uint32_t load_base_addr; ++ int avoid_efi_boot_services; ++}; ++typedef struct mbi_load_data mbi_load_data_t; ++ ++/* Load ELF32 or ELF64. */ ++grub_err_t ++grub_multiboot2_load_elf (mbi_load_data_t *mld); ++ ++extern grub_size_t grub_multiboot2_pure_size; ++extern grub_size_t grub_multiboot2_alloc_mbi; ++extern grub_uint32_t grub_multiboot2_payload_eip; ++ ++ ++#endif /* ! GRUB_MULTIBOOT_HEADER */ diff --git a/include/grub/net.h b/include/grub/net.h index 2192fa18628862e8e3a6046d854b12613e914ff9..1096b24322eb1ba36e8c996872fce2a255e6bccc 100644 --- a/include/grub/net.h @@ -6845,9 +14095,27 @@ index dcceaa56894605a39f87858964da7af11951ff11..ab9d68f98252b9772853a712ff1e8556 grub_err_t grub_net_send_ip_packet (struct grub_net_network_level_interface *inf, diff --git a/include/grub/offsets.h b/include/grub/offsets.h -index c88c86d4d2ebddddb23f25c50ad2c29b52e54ccb..bf0689fc99a89ff465985af7d1708c15a68c90eb 100644 +index c88c86d4d2ebddddb23f25c50ad2c29b52e54ccb..330e4c70738abcacc3c1d53fb16ae1ec8896d9e3 100644 --- a/include/grub/offsets.h +++ b/include/grub/offsets.h +@@ -50,7 +50,7 @@ + /* The offset of GRUB_CORE_ENTRY_ADDR. */ + #define GRUB_KERNEL_I386_QEMU_CORE_ENTRY_ADDR 0x8 + +-#define GRUB_KERNEL_I386_QEMU_LINK_ADDR 0x8200 ++#define GRUB_KERNEL_I386_QEMU_LINK_ADDR 0x9000 + + /* The offset of GRUB_TOTAL_MODULE_SIZE. */ + #define GRUB_KERNEL_SPARC64_IEEE1275_TOTAL_MODULE_SIZE 0x8 +@@ -91,7 +91,7 @@ + + #define GRUB_KERNEL_MIPS_ARC_TOTAL_MODULE_SIZE 0x08 + +-#define GRUB_KERNEL_I386_COREBOOT_LINK_ADDR 0x8200 ++#define GRUB_KERNEL_I386_COREBOOT_LINK_ADDR 0x9000 + #define GRUB_KERNEL_I386_COREBOOT_MODULES_ADDR 0x100000 + + #define GRUB_KERNEL_I386_IEEE1275_LINK_ADDR 0x10000 @@ -122,6 +122,12 @@ #define GRUB_KERNEL_ARM_UBOOT_MOD_ALIGN 0x8 #define GRUB_KERNEL_ARM_UBOOT_TOTAL_MODULE_SIZE 0x4 @@ -6943,6 +14211,19 @@ index 0000000000000000000000000000000000000000..4f2e527e49767c297646f1ea3d0e09bd + grub_uint8_t data); + +#endif +diff --git a/include/grub/sparc64/ieee1275/ieee1275.h b/include/grub/sparc64/ieee1275/ieee1275.h +index 32c77f80f1a136c0127aecb6d5643ebd64cb5e88..4b18468d8d654bb3fe62050e7a4f439e1544889c 100644 +--- a/include/grub/sparc64/ieee1275/ieee1275.h ++++ b/include/grub/sparc64/ieee1275/ieee1275.h +@@ -42,6 +42,8 @@ extern int EXPORT_FUNC(grub_ieee1275_claim_vaddr) (grub_addr_t vaddr, + extern int EXPORT_FUNC(grub_ieee1275_alloc_physmem) (grub_addr_t *paddr, + grub_size_t size, + grub_uint32_t align); ++extern grub_uint64_t EXPORT_FUNC(grub_ieee1275_num_blocks) (grub_uint32_t ihandle); ++extern grub_uint64_t EXPORT_FUNC(grub_ieee1275_num_blocks64) (grub_uint32_t ihandle); + + extern grub_addr_t EXPORT_VAR (grub_ieee1275_original_stack); + diff --git a/include/grub/term.h b/include/grub/term.h index 5ffb38f69aaa8911a66bdc6f417a72666b19e514..8117e2a24dac3f270d05408f1897fae9f0fa1593 100644 --- a/include/grub/term.h @@ -6972,7 +14253,7 @@ index 11d96481ff6b58cc43f468bcb2020475663fa098..512ae1dd0e64931c852847c9d52efdbd #endif /* GRUB_USB_H */ diff --git a/include/grub/util/install.h b/include/grub/util/install.h -index 5ca4811cd130f6810f07e6fbce89af1de36827c7..5910b0c09bc8be529e074d388afabcd60eea7ab4 100644 +index 5ca4811cd130f6810f07e6fbce89af1de36827c7..0dba8b67f93d44f875f2d1065ed5bf745f7813a5 100644 --- a/include/grub/util/install.h +++ b/include/grub/util/install.h @@ -29,6 +29,8 @@ @@ -7011,6 +14292,15 @@ index 5ca4811cd130f6810f07e6fbce89af1de36827c7..5910b0c09bc8be529e074d388afabcd6 const struct grub_install_image_target_desc * grub_install_get_image_target (const char *arg); +@@ -206,7 +210,7 @@ grub_install_create_envblk_file (const char *name); + const char * + grub_install_get_default_x86_platform (void); + +-void ++int + grub_install_register_efi (grub_device_t efidir_grub_dev, + const char *efifile_path, + const char *efi_distributor); diff --git a/include/grub/util/mkimage.h b/include/grub/util/mkimage.h index 1a18708a89c6e5503dd29b0b76f5098cef3ac893..b3a5ca132bc4d336f8d85158726bcce77fd7cd37 100644 --- a/include/grub/util/mkimage.h @@ -7033,6 +14323,36 @@ index 1a18708a89c6e5503dd29b0b76f5098cef3ac893..b3a5ca132bc4d336f8d85158726bcce7 struct grub_install_image_target_desc { +diff --git a/include/multiboot2.h b/include/multiboot2.h +index 5a3db5a7cae38c26be516dc76a4fa6a9ad4ed354..5693923c014f2fa9e855dcc89c7328a19e0e6408 100644 +--- a/include/multiboot2.h ++++ b/include/multiboot2.h +@@ -75,8 +75,8 @@ + #define MULTIBOOT_HEADER_TAG_ENTRY_ADDRESS_EFI64 9 + #define MULTIBOOT_HEADER_TAG_RELOCATABLE 10 + +-#define MULTIBOOT_ARCHITECTURE_I386 0 +-#define MULTIBOOT_ARCHITECTURE_MIPS32 4 ++#define MULTIBOOT2_ARCHITECTURE_I386 0 ++#define MULTIBOOT2_ARCHITECTURE_MIPS32 4 + #define MULTIBOOT_HEADER_TAG_OPTIONAL 1 + + #define MULTIBOOT_LOAD_PREFERENCE_NONE 0 +diff --git a/grub-core/boot/i386/pc/diskboot.S b/grub-core/boot/i386/pc/diskboot.S +index 1ee4cf5b2e0fd03ba177e953fafdaf5e0ca457a6..c1addc0df29bc78009238690a9514ea301bf3a29 100644 +--- a/grub-core/boot/i386/pc/diskboot.S ++++ b/grub-core/boot/i386/pc/diskboot.S +@@ -37,8 +37,8 @@ + start: + _start: + /* +- * _start is loaded at 0x2000 and is jumped to with +- * CS:IP 0:0x2000 in kernel. ++ * _start is loaded at 0x8000 and is jumped to with ++ * CS:IP 0:0x8000 in kernel. + */ + + /* diff --git a/grub-core/boot/sparc64/ieee1275/boot.S b/grub-core/boot/sparc64/ieee1275/boot.S index 586efb4014e8648e560fb43eee8eea8b09da669b..9ea9b4e06627bbd8b7da422ffba3357b4fba0a6a 100644 --- a/grub-core/boot/sparc64/ieee1275/boot.S @@ -7084,32 +14404,32 @@ index 1ef2754af8a7612c35c26011fab442dbba074dfd..5ae76a3d819c002676f54db3311f5177 @ r0 - CLIDR @ r1 - LoC @ r2 - current level -diff --git a/grub-core/kern/arm/coreboot/coreboot.S b/grub-core/kern/arm/coreboot/coreboot.S -new file mode 100644 -index 0000000000000000000000000000000000000000..a1104526c154bd5a9dfd9e3680d8bb787c1088ef ---- /dev/null +diff --git a/include/grub/arm/efi/loader.h b/grub-core/kern/arm/coreboot/coreboot.S +similarity index 62% +rename from include/grub/arm/efi/loader.h +rename to grub-core/kern/arm/coreboot/coreboot.S +index 4bab18e83ee833d6932fea917d839fe7dcc212d1..a1104526c154bd5a9dfd9e3680d8bb787c1088ef 100644 +--- a/include/grub/arm/efi/loader.h +++ b/grub-core/kern/arm/coreboot/coreboot.S -@@ -0,0 +1,44 @@ -+/* -+ * GRUB -- GRand Unified Bootloader +@@ -1,6 +1,6 @@ + /* + * GRUB -- GRand Unified Bootloader +- * Copyright (C) 2013 Free Software Foundation, Inc. + * Copyright (C) 2016 Free Software Foundation, Inc. -+ * -+ * GRUB is free software: you can redistribute it and/or modify -+ * it under the terms of the GNU General Public License as published by -+ * the Free Software Foundation, either version 3 of the License, or -+ * (at your option) any later version. -+ * -+ * GRUB is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with GRUB. If not, see . -+ */ -+ + * + * GRUB is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by +@@ -16,11 +16,29 @@ + * along with GRUB. If not, see . + */ + +-#ifndef GRUB_LOADER_MACHINE_HEADER +-#define GRUB_LOADER_MACHINE_HEADER 1 +#include -+ + +-grub_err_t EXPORT_FUNC (grub_efi_prepare_platform) (void); +-void * EXPORT_FUNC (grub_efi_allocate_loader_memory) (grub_uint32_t min_offset, +- grub_uint32_t size); + .file "coreboot.S" + .text + .syntax unified @@ -7133,7 +14453,8 @@ index 0000000000000000000000000000000000000000..a1104526c154bd5a9dfd9e3680d8bb78 +FUNCTION(grub_armv7_get_timer_frequency) + mrc p15, 0, r0, c14, c0, 0 + bx lr -+ + +-#endif /* ! GRUB_LOADER_MACHINE_HEADER */ diff --git a/grub-core/kern/arm/uboot/startup.S b/grub-core/kern/arm/startup.S similarity index 77% rename from grub-core/kern/arm/uboot/startup.S @@ -7350,10 +14671,136 @@ index 11296b550a7cd40ded498613620f556d78c67d84..311da61c6c59fed3de8cba06c2c581b2 # Define these variables to calm down automake diff --git a/docs/grub.texi b/docs/grub.texi -index e935af33ea5e24d832e588d1345e3721b826d5a0..a0c4b9e4e8e861fd786fa911d8d9005a7678182b 100644 +index e935af33ea5e24d832e588d1345e3721b826d5a0..2adfa97bee8f8b2dcd53ead368dfd6f115b8cb82 100644 --- a/docs/grub.texi +++ b/docs/grub.texi -@@ -3873,11 +3873,9 @@ you forget a command, you can run the command @command{help} +@@ -360,8 +360,9 @@ blocklist notation. The currently supported filesystem types are @dfn{Amiga + Fast FileSystem (AFFS)}, @dfn{AtheOS fs}, @dfn{BeFS}, + @dfn{BtrFS} (including raid0, raid1, raid10, gzip and lzo), + @dfn{cpio} (little- and big-endian bin, odc and newc variants), +-@dfn{Linux ext2/ext3/ext4}, @dfn{DOS FAT12/FAT16/FAT32}, @dfn{exFAT}, @dfn{HFS}, +-@dfn{HFS+}, @dfn{ISO9660} (including Joliet, Rock-ridge and multi-chunk files), ++@dfn{Linux ext2/ext3/ext4}, @dfn{DOS FAT12/FAT16/FAT32}, ++@dfn{exFAT}, @dfn{F2FS}, @dfn{HFS}, @dfn{HFS+}, ++@dfn{ISO9660} (including Joliet, Rock-ridge and multi-chunk files), + @dfn{JFS}, @dfn{Minix fs} (versions 1, 2 and 3), @dfn{nilfs2}, + @dfn{NTFS} (including compression), @dfn{ReiserFS}, @dfn{ROMFS}, + @dfn{Amiga Smart FileSystem (SFS)}, @dfn{Squash4}, @dfn{tar}, @dfn{UDF}, +@@ -1213,10 +1214,11 @@ GRUB is configured using @file{grub.cfg}, usually located under + need to write the whole thing by hand. + + @menu +-* Simple configuration:: Recommended for most users +-* Shell-like scripting:: For power users and developers +-* Multi-boot manual config:: For non-standard multi-OS scenarios +-* Embedded configuration:: Embedding a configuration file into GRUB ++* Simple configuration:: Recommended for most users ++* Root Identifcation Heuristics:: Summary on how the root file system is identified. ++* Shell-like scripting:: For power users and developers ++* Multi-boot manual config:: For non-standard multi-OS scenarios ++* Embedded configuration:: Embedding a configuration file into GRUB + @end menu + + +@@ -1398,6 +1400,25 @@ for all respectively normal entries. + The values of these options replace the values of @samp{GRUB_CMDLINE_LINUX} + and @samp{GRUB_CMDLINE_LINUX_DEFAULT} for Linux and Xen menu entries. + ++@item GRUB_EARLY_INITRD_LINUX_CUSTOM ++@itemx GRUB_EARLY_INITRD_LINUX_STOCK ++List of space-separated early initrd images to be loaded from @samp{/boot}. ++This is for loading things like CPU microcode, firmware, ACPI tables, crypto ++keys, and so on. These early images will be loaded in the order declared, ++and all will be loaded before the actual functional initrd image. ++ ++@samp{GRUB_EARLY_INITRD_LINUX_STOCK} is for your distribution to declare ++images that are provided by the distribution. It should not be modified ++without understanding the consequences. They will be loaded first. ++ ++@samp{GRUB_EARLY_INITRD_LINUX_CUSTOM} is for your custom created images. ++ ++The default stock images are as follows, though they may be overridden by ++your distribution: ++@example ++intel-uc.img intel-ucode.img amd-uc.img amd-ucode.img early_ucode.cpio microcode.cpio ++@end example ++ + @item GRUB_DISABLE_LINUX_UUID + Normally, @command{grub-mkconfig} will generate menu entries that use + universally-unique identifiers (UUIDs) to identify the root filesystem to +@@ -1405,6 +1426,17 @@ the Linux kernel, using a @samp{root=UUID=...} kernel parameter. This is + usually more reliable, but in some cases it may not be appropriate. To + disable the use of UUIDs, set this option to @samp{true}. + ++@item GRUB_DISABLE_LINUX_PARTUUID ++If @command{grub-mkconfig} cannot identify the root filesystem via its ++universally-unique indentifier (UUID), @command{grub-mkconfig} can use the UUID ++of the partition containing the filesystem to identify the root filesystem to ++the Linux kernel via a @samp{root=PARTUUID=...} kernel parameter. This is not ++as reliable as using the filesystem UUID, but is more reliable than using the ++Linux device names. When @samp{GRUB_DISABLE_LINUX_PARTUUID} is set to ++@samp{false}, the Linux kernel version must be 2.6.37 (3.10 for systems using ++the MSDOS partition scheme) or newer. This option defaults to @samp{true}. To ++enable the use of partition UUIDs, set this option to @samp{false}. ++ + @item GRUB_DISABLE_RECOVERY + If this option is set to @samp{true}, disable the generation of recovery + mode menu entries. +@@ -1536,6 +1568,53 @@ edit the scripts in @file{/etc/grub.d} directly. + menu entries; simply type the menu entries you want to add at the end of + that file, making sure to leave at least the first two lines intact. + ++@node Root Identifcation Heuristics ++@section Root Identifcation Heuristics ++If the target operating system uses the Linux kernel, @command{grub-mkconfig} ++attempts to identify the root file system via a heuristic algoirthm. This ++algorithm selects the identification method of the root file system by ++considering three factors. The first is if an initrd for the target operating ++system is also present. The second is @samp{GRUB_DISABLE_LINUX_UUID} and if set ++to @samp{true}, prevents @command{grub-mkconfig} from identifying the root file ++system by its UUID. The third is @samp{GRUB_DISABLE_LINUX_PARTUUID} and if set ++to @samp{true}, prevents @command{grub-mkconfig} from identifying the root file ++system via the UUID of its enclosing partition. If the variables are assigned ++any other value, that value is considered equivalent to @samp{false}. The ++variables are also considered to be set to @samp{false} if they are not set. ++ ++When booting, the Linux kernel will delegate the task of mounting the root ++filesystem to the initrd. Most initrd images determine the root file system by ++checking the Linux kernel's command-line for the @samp{root} key and use its ++value as the identification method of the root file system. To improve the ++reliability of booting, most initrd images also allow the root file system to be ++identified by its UUID. Because of this behavior, the @command{grub-mkconfig} ++command will set @samp{root} to @samp{root=UUID=...} to provide the initrd with ++the filesystem UUID of the root file system. ++ ++If no initrd is detected or @samp{GRUB_DISABLE_LINUX_UUID} is set to @samp{true} ++then @command{grub-command} will identify the root filesystem by setting the ++kernel command-line variable @samp{root} to @samp{root=PARTUUID=...} unless ++@samp{GRUB_DISABLE_LINUX_PARTUUID} is also set to @samp{true}. If ++@samp{GRUB_DISABLE_LINUX_PARTUUID} is also set to @samp{true}, ++@command{grub-command} will identify by its Linux device name. ++ ++The following table summarizes the behavior of the @command{grub-mkconfig} ++command. ++ ++@multitable {detected} {GRUB_DISABLE_LINUX_PARTUUID} {GRUB_DISABLE_LINUX_UUID} {Linux Root} ++@headitem Initrd detected @tab GRUB_DISABLE_LINUX_PARTUUID Set To @tab GRUB_DISABLE_LINUX_UUID Set To @tab Linux Root ID Method ++@item false @tab false @tab false @tab part UUID ++@item false @tab false @tab true @tab part UUID ++@item false @tab true @tab false @tab dev name ++@item false @tab true @tab true @tab dev name ++@item true @tab false @tab false @tab fs UUID ++@item true @tab false @tab true @tab part UUID ++@item true @tab true @tab false @tab fs UUID ++@item true @tab true @tab true @tab dev name ++@end multitable ++ ++Remember, @samp{GRUB_DISABLE_LINUX_PARTUUID} and @samp{GRUB_DISABLE_LINUX_UUID} ++are also considered to be set to @samp{false} when they are unset. + + @node Shell-like scripting + @section Writing full configuration files directly +@@ -3873,11 +3952,9 @@ you forget a command, you can run the command @command{help} @comment * vbeinfo:: List available video modes * verify_detached:: Verify detached digital signature * videoinfo:: List available video modes @@ -7368,7 +14815,16 @@ index e935af33ea5e24d832e588d1345e3721b826d5a0..a0c4b9e4e8e861fd786fa911d8d9005a @end menu -@@ -5153,32 +5151,22 @@ List available video modes. If resolution is given, show only matching modes. +@@ -4645,7 +4722,7 @@ range 0-0xFF (prefix with @samp{0x} to enter it in hexadecimal). + When enabled, this hides the selected partition by setting the @dfn{hidden} + bit in its partition type code; when disabled, unhides the selected + partition by clearing this bit. This is useful only when booting DOS or +-Wwindows and multiple primary FAT partitions exist in one disk. See also ++Windows and multiple primary FAT partitions exist in one disk. See also + @ref{DOS/Windows}. + @end table + @end deffn +@@ -5153,32 +5230,22 @@ List available video modes. If resolution is given, show only matching modes. Load a Xen hypervisor binary from @var{file}. The rest of the line is passed verbatim as the @dfn{kernel command-line}. Any other binaries must be reloaded after using this command. @@ -7411,6 +14867,15 @@ index e935af33ea5e24d832e588d1345e3721b826d5a0..a0c4b9e4e8e861fd786fa911d8d9005a @node Networking commands @section The list of networking commands +@@ -5368,7 +5435,7 @@ NTFS, JFS, UDF, HFS+, exFAT, long filenames in FAT, Joliet part of + ISO9660 are treated as UTF-16 as per specification. AFS and BFS are read + as UTF-8, again according to specification. BtrFS, cpio, tar, squash4, minix, + minix2, minix3, ROMFS, ReiserFS, XFS, ext2, ext3, ext4, FAT (short names), +-RockRidge part of ISO9660, nilfs2, UFS1, UFS2 and ZFS are assumed ++F2FS, RockRidge part of ISO9660, nilfs2, UFS1, UFS2 and ZFS are assumed + to be UTF-8. This might be false on systems configured with legacy charset + but as long as the charset used is superset of ASCII you should be able to + access ASCII-named files. And it's recommended to configure your system to use diff --git a/gentpl.py b/gentpl.py index f08bcc404f6a8bd8c3b13a6d5bb041ee32422776..da67965a41a40cde7c987b719fea39cd02ba10e5 100644 --- a/gentpl.py @@ -7456,7 +14921,7 @@ index f08bcc404f6a8bd8c3b13a6d5bb041ee32422776..da67965a41a40cde7c987b719fea39cd for i in GROUPS["videoinkernel"]: GROUPS["videomodules"].remove(i) diff --git a/grub-core/Makefile.am b/grub-core/Makefile.am -index 04e9395fd949460672c1113c3d49c90a5d4471ec..10451384720474e8dc071a6843eda0fafa455724 100644 +index 04e9395fd949460672c1113c3d49c90a5d4471ec..f4ff62b769ae99f1d9b2fadf51378966c93d835c 100644 --- a/grub-core/Makefile.am +++ b/grub-core/Makefile.am @@ -112,7 +112,7 @@ endif @@ -7468,7 +14933,7 @@ index 04e9395fd949460672c1113c3d49c90a5d4471ec..10451384720474e8dc071a6843eda0fa KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/video.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/video_fb.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/gfxterm.h -@@ -239,6 +239,20 @@ KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/lib/arg.h +@@ -239,8 +239,21 @@ KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/lib/arg.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/arm/system.h endif @@ -7487,9 +14952,11 @@ index 04e9395fd949460672c1113c3d49c90a5d4471ec..10451384720474e8dc071a6843eda0fa +endif + if COND_arm_efi - KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/arm/efi/loader.h +-KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/arm/efi/loader.h KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/efi.h -@@ -278,7 +292,7 @@ BUILT_SOURCES += symlist.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/efi/disk.h + KERNEL_HEADER_FILES += $(top_srcdir)/include/grub/arm/system.h +@@ -278,7 +291,7 @@ BUILT_SOURCES += symlist.h symlist.c: symlist.h gensymlist.sh $(TARGET_CPP) $(DEFS) $(INCLUDES) $(AM_CPPFLAGS) $(CPPFLAGS_KERNEL) $(CPPFLAGS) -DGRUB_SYMBOL_GENERATOR=1 symlist.h > symlist.p || (rm -f symlist.p; exit 1) @@ -7498,7 +14965,7 @@ index 04e9395fd949460672c1113c3d49c90a5d4471ec..10451384720474e8dc071a6843eda0fa rm -f symlist.p CLEANFILES += symlist.c BUILT_SOURCES += symlist.c -@@ -358,6 +372,16 @@ terminal.lst: $(MARKER_FILES) +@@ -358,6 +371,16 @@ terminal.lst: $(MARKER_FILES) platform_DATA += terminal.lst CLEANFILES += terminal.lst @@ -7516,7 +14983,7 @@ index 04e9395fd949460672c1113c3d49c90a5d4471ec..10451384720474e8dc071a6843eda0fa (for pp in $^; do \ b=`basename $$pp .marker`; \ diff --git a/grub-core/genmod.sh.in b/grub-core/genmod.sh.in -index 03cc3b7f69ed3cfb69b744f8114895fd0e14fde7..3de06ee018f83e04069566f9de1365bdbc01e377 100644 +index 03cc3b7f69ed3cfb69b744f8114895fd0e14fde7..1250589b3f5f88b52d7ea6de361427339fe7e578 100644 --- a/grub-core/genmod.sh.in +++ b/grub-core/genmod.sh.in @@ -1,4 +1,4 @@ @@ -7525,6 +14992,32 @@ index 03cc3b7f69ed3cfb69b744f8114895fd0e14fde7..3de06ee018f83e04069566f9de1365bd set -e # Copyright (C) 2010 Free Software Foundation, Inc. +@@ -58,6 +58,10 @@ if test x@TARGET_APPLE_LINKER@ != x1; then + -K grub_mod_init -K grub_mod_fini \ + -K _grub_mod_init -K _grub_mod_fini \ + -R .note.gnu.gold-version -R .note.GNU-stack \ ++ -R .gnu.build.attributes \ ++ -R .rel.gnu.build.attributes \ ++ -R .rela.gnu.build.attributes \ ++ -R .eh_frame -R .rela.eh_frame -R .rel.eh_frame \ + -R .note -R .comment -R .ARM.exidx $tmpfile || exit 1 + fi + if ! test -z "${TARGET_OBJ2ELF}"; then +diff --git a/grub-core/genmoddep.awk b/grub-core/genmoddep.awk +index bd98d84cdd7427eef2f3651f455377d469955250..04c2863e5abfa4d950df2c41d579dea03a361927 100644 +--- a/grub-core/genmoddep.awk ++++ b/grub-core/genmoddep.awk +@@ -18,6 +18,10 @@ BEGIN { + + { + if ($1 == "defined") { ++ if ($3 !~ /^\.refptr\./ && $3 in symtab) { ++ printf "%s in %s is duplicated in %s\n", $3, $2, symtab[$3] >"/dev/stderr"; ++ error++; ++ } + symtab[$3] = $2; + modtab[$2] = "" modtab[$2] + } else if ($1 == "undefined") { diff --git a/grub-core/gensyminfo.sh.in b/grub-core/gensyminfo.sh.in index 2e8716b425cb04d9379ef5e2c629283d0f346c90..9bc7675327a6d9229492548671dd004054282434 100644 --- a/grub-core/gensyminfo.sh.in @@ -7545,6 +15038,19 @@ index faf0ad30edbe878270a185add45aa70e245d8b3a..f6cd657ce0f8307547fc5d011efa3562 # User-controllable options grub_modinfo_target_cpu=@target_cpu@ +diff --git a/grub-core/script/yylex.l b/grub-core/script/yylex.l +index 95b2191705ac826833e0951fa323242a9f8859d1..7b44c37b76ffa87f24b6f04260b9519f0c8654c0 100644 +--- a/grub-core/script/yylex.l ++++ b/grub-core/script/yylex.l +@@ -91,7 +91,7 @@ typedef size_t yy_size_t; + #define stdin 0 + #define stdout 0 + +-#define fprintf(...) 0 ++#define fprintf(...) (void)0 + #define exit(...) grub_fatal("fatal error in lexer") + #endif + diff --git a/po/Makefile.in.in b/po/Makefile.in.in index 3619458e85f2bed3f92a76a9d919c26a30116dee..e68e9da843d927bfb6bbd519f4b3923c733abd7c 100644 --- a/po/Makefile.in.in @@ -7558,6 +15064,16 @@ index 3619458e85f2bed3f92a76a9d919c26a30116dee..e68e9da843d927bfb6bbd519f4b3923c @SET_MAKE@ srcdir = @srcdir@ +diff --git a/po/exclude.pot b/po/exclude.pot +index 0a9b215eaf1971bf2a2af8a36e9605043de38e36..816089c30cbd36939b2a72724b3d591a0ac8a290 100644 +GIT binary patch +delta 49 +zcmaEUhNJl`#|G_WNh^i)qS7SY?UJ|KB{OOs +F1^~&~5lR36 + +delta 27 +jcmZoZ%klgS#|G`>=`Ng%LX#(mur$XeZ;wr8R67g+m_Q0B + diff --git a/tests/ahci_test.in b/tests/ahci_test.in index 1d01d1f59a0aac8911ff7ca3e62565f2dee5954d..7df56046201e4c2e4a55bdcdd403853cde902268 100644 --- a/tests/ahci_test.in @@ -7653,6 +15169,31 @@ index c986960a8bec696deb37a55cba00915219d77215..4f1eb527eb2ed41095266dba6d5013ea "@builddir@/grub-fs-tester" ext4 "@builddir@/grub-fs-tester" ext4_metabg +"@builddir@/grub-fs-tester" ext4_encrypt +diff --git a/tests/f2fs_test.in b/tests/f2fs_test.in +new file mode 100644 +index 0000000000000000000000000000000000000000..1ea77c826d32bd01e33d13ea7ad6639eb1cb77b0 +--- /dev/null ++++ b/tests/f2fs_test.in +@@ -0,0 +1,19 @@ ++#!/bin/sh ++ ++set -e ++ ++if [ "x$EUID" = "x" ] ; then ++ EUID=`id -u` ++fi ++ ++if [ "$EUID" != 0 ] ; then ++ exit 77 ++fi ++ ++if ! which mkfs.f2fs >/dev/null 2>&1; then ++ echo "mkfs.f2fs not installed; cannot test f2fs." ++ exit 77 ++fi ++ ++ ++"@builddir@/grub-fs-tester" f2fs diff --git a/tests/fat_test.in b/tests/fat_test.in index 1d132b51703c43e269d5500ca1740fa1e6b9a42c..b6b4748ca694b59337441a2f3111863e01799884 100644 --- a/tests/fat_test.in @@ -8084,7 +15625,7 @@ index 89e2c18051ac00f414edd0e80bdcfd911c8f9842..4af72fd8fea5ab2b3e2059d2a89f0b0d # # GRUB is free software: you can redistribute it and/or modify diff --git a/tests/util/grub-fs-tester.in b/tests/util/grub-fs-tester.in -index 2337771a1b9ce287c3e5e24e49c7c27baee7edb8..fd7e0f14b68ebe1a555ddd9acc70cdee77731f21 100644 +index 2337771a1b9ce287c3e5e24e49c7c27baee7edb8..ef65fbc93414daf310b842f0d9a360ca10a0e5a3 100644 --- a/tests/util/grub-fs-tester.in +++ b/tests/util/grub-fs-tester.in @@ -1,4 +1,4 @@ @@ -8146,6 +15687,15 @@ index 2337771a1b9ce287c3e5e24e49c7c27baee7edb8..fd7e0f14b68ebe1a555ddd9acc70cdee xext*) MINBLKSIZE=1024 if [ $MINBLKSIZE -lt $SECSIZE ]; then +@@ -145,7 +172,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + + xsquash*) + MINBLKSIZE=4096 + MAXBLKSIZE=1048576;; +- xxfs) ++ xxfs|xf2fs) + MINBLKSIZE=$SECSIZE + # OS Limitation: GNU/Linux doesn't accept > 4096 + MAXBLKSIZE=4096;; @@ -169,7 +196,12 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + MINBLKSIZE=1024 MAXBLKSIZE=4096;; @@ -8224,7 +15774,18 @@ index 2337771a1b9ce287c3e5e24e49c7c27baee7edb8..fd7e0f14b68ebe1a555ddd9acc70cdee esac # OS LIMITATION: Limited by NAME_MAX (usually 255) in GNU/Linux LONGNAME="qwertzuiopasdfghjklyxcvbnm1234567890qwertzuiopasdfghjklyxcvbnm1234567890oiewqfiewioqoiqoiurqruewqoiuwoieoiiuewqroreqiufieiuwrnureweriuvceoiroiewqoiricdsalkcndsakfirefoiwqeoircorejwoijfreoijojoiewjfwnfcoirenfoirefnreoifenoiwfnoi" -@@ -388,8 +419,8 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + +@@ -268,6 +299,10 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + + x"btrfs"*) + FSLABEL="grub_;/testé莭莽😁киритi urewfceniuewruevrewnuuireurevueurnievrewfnerfcnevirivinrewvnirewnivrewiuvcrewvnuewvrrrewniuerwreiuviurewiuviurewnuvewnvrenurnunuvrevuurerejiremvreijnvcreivire nverivnreivrevnureiorfnfrvoeoiroireoireoifrefoieroifoireoi";; + ++ # FS LIMITATION: f2fs label is at most 512 UTF-16 chars ++ x"f2fs") ++ FSLABEL="grub_;/testé䏌䐓䏕киритiurewfceniuewruewnuuireurevueurnievrewfnerfcnevirivinrewvnirewnivrewiuvcrewvnuewvrrrewniuerwreiuviurewiuviurewnuvewnvrenurnunuvrevuurerejiremvreijnvvcreivire nverivnreivrevnureiorfnfrvoeoiroireoireoifrefoieroifoirvcreivire nverivnreivrevnureiorfnfrvoeoiroireoireoifrefoieroifoircreivire nverivnreivrevnureiorfnfrvoeoiroireoireoifrefoieroifoireoifoiq";; ++ + # FS LIMITATION: exfat is at most 15 UTF-16 chars + x"exfat") + FSLABEL="géт ;/莭莽😁кир";; +@@ -388,8 +423,8 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + ;; x"vfat16" | xmsdos16) BIGBLOCKCNT=$((25000 * BLKSIZE)) @@ -8235,7 +15796,7 @@ index 2337771a1b9ce287c3e5e24e49c7c27baee7edb8..fd7e0f14b68ebe1a555ddd9acc70cdee fi ;; x"minix") -@@ -410,7 +441,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + +@@ -410,7 +445,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + BIGBLOCKCNT=$((4000 * 1048576));; # FS LIMITATION: These FS have uint32 as file size field x"vfat"* | xmsdos* | x"cpio_crc" | x"cpio_newc" | x"cpio_bin" | x"cpio_hpbin" | xsfs*) @@ -8244,7 +15805,16 @@ index 2337771a1b9ce287c3e5e24e49c7c27baee7edb8..fd7e0f14b68ebe1a555ddd9acc70cdee # FS LIMITATION: These FS have int32 as file size field # FIXME: not so sure about AFFS # OS LIMITATION: minix2/minix3 could be formatted in a way to permit more. -@@ -543,18 +574,18 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + +@@ -477,7 +512,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + + # FIXME: Not sure about BtrFS, NTFS, JFS, AFS, UDF and SFS. Check it. + # FS LIMITATION: as far as I know those FS don't store their last modification date. + x"jfs_caseins" | x"jfs" | x"xfs" | x"xfs_crc" | x"btrfs"* | x"reiserfs_old" | x"reiserfs" \ +- | x"bfs" | x"afs" \ ++ | x"bfs" | x"afs" | x"f2fs" \ + | x"tarfs" | x"cpio_"* | x"minix" | x"minix2" \ + | x"minix3" | x"ntfs"* | x"udf" | x"sfs"*) + NOFSTIME=y;; +@@ -543,18 +578,18 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + PDIR="" # OS LIMITATION: Limited by PATH_MAX (usually 1024) @@ -8267,7 +15837,7 @@ index 2337771a1b9ce287c3e5e24e49c7c27baee7edb8..fd7e0f14b68ebe1a555ddd9acc70cdee PDIR2="${PDIR2}/" fi done -@@ -563,7 +594,9 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + +@@ -563,7 +598,9 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + unset LODEVICES GENERATED=n @@ -8278,7 +15848,7 @@ index 2337771a1b9ce287c3e5e24e49c7c27baee7edb8..fd7e0f14b68ebe1a555ddd9acc70cdee case x"$fs" in x"tarfs" | x"cpio_"*| x"ziso9660" | x"romfs" | x"squash4_"*\ | x"iso9660" | xjoliet | xrockridge | xrockridge_joliet \ -@@ -577,62 +610,65 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + +@@ -577,62 +614,64 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + *) mkdir -p "$MNTPOINTRW" mkdir -p "$MNTPOINTRO" @@ -8288,9 +15858,8 @@ index 2337771a1b9ce287c3e5e24e49c7c27baee7edb8..fd7e0f14b68ebe1a555ddd9acc70cdee - losetup "${LODEVICES[i]}" "${FSIMAGES[i]}" + for i in $(range 0 $((NDEVICES-1)) 1); do + dd if=/dev/zero of="$FSIMAGEP${i}.img" count=1 bs=1 seek=$((DISKSIZE-1)) &> /dev/null -+ LODEVICE="$(losetup -f)" ++ LODEVICE=$(losetup --find --show "$FSIMAGEP${i}.img") + LODEVICES="$LODEVICES $LODEVICE" -+ losetup "$LODEVICE" "$FSIMAGEP${i}.img" + if test "$i" = 0; then + MOUNTDEVICE="$LODEVICE" + fi @@ -8365,7 +15934,7 @@ index 2337771a1b9ce287c3e5e24e49c7c27baee7edb8..fd7e0f14b68ebe1a555ddd9acc70cdee MOUNTOPTS="iocharset=utf8,codepage=macroman," ;; x"vfat"*|xmsdos*) -@@ -643,98 +679,98 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + +@@ -643,98 +682,98 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + else A= fi @@ -8488,9 +16057,12 @@ index 2337771a1b9ce287c3e5e24e49c7c27baee7edb8..fd7e0f14b68ebe1a555ddd9acc70cdee if [ x$fs = xlvm ] ; then lvcreate -l "$((NDEVICES*7*LVMBLKMUL))" -n testvol grub_test elif [ x$fs = xlvm_stripe ] ; then -@@ -757,22 +793,26 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + +@@ -756,23 +795,29 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + + MOUNTDEVICE="/dev/mapper/grub_test-testvol" MOUNTFS=ext2 "mkfs.ext2" -L "$FSLABEL" -q "${MOUNTDEVICE}" ;; ++ xf2fs) ++ "mkfs.f2fs" -l "$FSLABEL" -q "${LODEVICES[0]}" ;; xnilfs2) - "mkfs.nilfs2" -L "$FSLABEL" -b $BLKSIZE -q "${LODEVICES[0]}" ;; + "mkfs.nilfs2" -L "$FSLABEL" -b $BLKSIZE -q "${MOUNTDEVICE}" ;; @@ -8521,7 +16093,7 @@ index 2337771a1b9ce287c3e5e24e49c7c27baee7edb8..fd7e0f14b68ebe1a555ddd9acc70cdee *) echo "Add appropriate mkfs command here" exit 1 -@@ -873,11 +913,13 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + +@@ -873,11 +918,13 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + *) if ! mount -t "$MOUNTFS" "${MOUNTDEVICE}" "$MNTPOINTRW" -o ${MOUNTOPTS}${SELINUXOPTS}rw ; then echo "MOUNT FAILED." @@ -8538,7 +16110,16 @@ index 2337771a1b9ce287c3e5e24e49c7c27baee7edb8..fd7e0f14b68ebe1a555ddd9acc70cdee done exit 1; fi -@@ -939,11 +981,11 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + +@@ -915,7 +962,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + + esac + # Make sure file is not exact multiple of block size. This helps to force + # tail packing in case of squash4. +- : $((BLOCKCNT--)) ++ BLOCKCNT="$((BLOCKCNT-1))" + case x"$fs" in + x"ntfscomp") + setfattr -h -v 0x00000800 -n system.ntfs_attrib_be "$MNTPOINTRW/$OSDIR";; +@@ -939,11 +986,11 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + if (test x$fs = xvfat12a || test x$fs = xmsdos12a) && test x$BLKSIZE = x131072; then # With this config there isn't enough space for full copy. # Copy as much as we can @@ -8554,7 +16135,7 @@ index 2337771a1b9ce287c3e5e24e49c7c27baee7edb8..fd7e0f14b68ebe1a555ddd9acc70cdee fi if [ x$NOSYMLINK != xy ]; then -@@ -968,48 +1010,48 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + +@@ -968,48 +1015,48 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + sleep 2 ;; x"tarfs") @@ -8618,7 +16199,7 @@ index 2337771a1b9ce287c3e5e24e49c7c27baee7edb8..fd7e0f14b68ebe1a555ddd9acc70cdee if umount "$MNTPOINTRW" ; then break; fi -@@ -1021,7 +1063,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + +@@ -1021,7 +1068,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + ;; xmdraid*) sleep 1 @@ -8627,7 +16208,7 @@ index 2337771a1b9ce287c3e5e24e49c7c27baee7edb8..fd7e0f14b68ebe1a555ddd9acc70cdee if umount "$MNTPOINTRW" ; then break; fi -@@ -1033,7 +1075,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + +@@ -1033,7 +1080,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + ;; *) sleep 1 @@ -8636,7 +16217,7 @@ index 2337771a1b9ce287c3e5e24e49c7c27baee7edb8..fd7e0f14b68ebe1a555ddd9acc70cdee if umount "$MNTPOINTRW" ; then break; fi -@@ -1066,7 +1108,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + +@@ -1066,7 +1113,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + sleep 1 mount -t "$MOUNTFS" "${MOUNTDEVICE}" "$MNTPOINTRO" -o ${MOUNTOPTS}${SELINUXOPTS}ro ;; xmdraid*) @@ -8645,7 +16226,7 @@ index 2337771a1b9ce287c3e5e24e49c7c27baee7edb8..fd7e0f14b68ebe1a555ddd9acc70cdee sleep 1 mount -t "$MOUNTFS" "${MOUNTDEVICE}" "$MNTPOINTRO" -o ${MOUNTOPTS}${SELINUXOPTS}ro ;; *) -@@ -1085,7 +1127,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + +@@ -1085,7 +1132,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + else echo LIST FAIL echo "$LSROUT" @@ -8654,7 +16235,7 @@ index 2337771a1b9ce287c3e5e24e49c7c27baee7edb8..fd7e0f14b68ebe1a555ddd9acc70cdee exit 1 fi -@@ -1094,7 +1136,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + +@@ -1094,7 +1141,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + else echo NLIST FAIL echo "$LSROUT" @@ -8663,7 +16244,7 @@ index 2337771a1b9ce287c3e5e24e49c7c27baee7edb8..fd7e0f14b68ebe1a555ddd9acc70cdee exit 1 fi -@@ -1103,7 +1145,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + +@@ -1103,7 +1150,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + else echo ILIST FAIL echo "$LSROUT" @@ -8672,7 +16253,7 @@ index 2337771a1b9ce287c3e5e24e49c7c27baee7edb8..fd7e0f14b68ebe1a555ddd9acc70cdee exit 1 fi -@@ -1112,7 +1154,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + +@@ -1112,7 +1159,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + else echo LONG LIST FAIL echo "$LSROUT" @@ -8681,7 +16262,7 @@ index 2337771a1b9ce287c3e5e24e49c7c27baee7edb8..fd7e0f14b68ebe1a555ddd9acc70cdee exit 1 fi -@@ -1123,7 +1165,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + +@@ -1123,7 +1170,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + else echo TIME FAIL echo "$LSROUT" @@ -8690,7 +16271,7 @@ index 2337771a1b9ce287c3e5e24e49c7c27baee7edb8..fd7e0f14b68ebe1a555ddd9acc70cdee exit 1 fi -@@ -1133,7 +1175,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + +@@ -1133,7 +1180,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + else echo LONG TIME FAIL echo "$LSROUT" @@ -8699,7 +16280,7 @@ index 2337771a1b9ce287c3e5e24e49c7c27baee7edb8..fd7e0f14b68ebe1a555ddd9acc70cdee exit 1 fi fi -@@ -1149,7 +1191,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + +@@ -1149,7 +1196,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + else echo DOT IN ROOTDIR FAIL echo "$LSROUT" @@ -8708,7 +16289,7 @@ index 2337771a1b9ce287c3e5e24e49c7c27baee7edb8..fd7e0f14b68ebe1a555ddd9acc70cdee exit 1 fi -@@ -1163,7 +1205,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + +@@ -1163,7 +1210,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + else echo DOTDOT IN ROOTDIR FAIL echo "$LSROUT" @@ -8717,7 +16298,7 @@ index 2337771a1b9ce287c3e5e24e49c7c27baee7edb8..fd7e0f14b68ebe1a555ddd9acc70cdee exit 1 fi ;; -@@ -1180,7 +1222,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + +@@ -1180,7 +1227,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + else echo SLIST FAIL echo "$LSROUT" @@ -8726,7 +16307,7 @@ index 2337771a1b9ce287c3e5e24e49c7c27baee7edb8..fd7e0f14b68ebe1a555ddd9acc70cdee exit 1 fi -@@ -1195,7 +1237,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + +@@ -1195,7 +1242,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + else echo PLIST FAIL echo "$LSROUT" @@ -8735,7 +16316,7 @@ index 2337771a1b9ce287c3e5e24e49c7c27baee7edb8..fd7e0f14b68ebe1a555ddd9acc70cdee exit 1 fi -@@ -1210,7 +1252,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + +@@ -1210,7 +1257,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + else echo DOT IN SUBDIR FAIL echo "$LSROUT" @@ -8744,7 +16325,7 @@ index 2337771a1b9ce287c3e5e24e49c7c27baee7edb8..fd7e0f14b68ebe1a555ddd9acc70cdee exit 1 fi -@@ -1225,7 +1267,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + +@@ -1225,7 +1272,7 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + else echo DOTDOT IN SUBDIR FAIL echo "$LSROUT" @@ -8753,7 +16334,7 @@ index 2337771a1b9ce287c3e5e24e49c7c27baee7edb8..fd7e0f14b68ebe1a555ddd9acc70cdee exit 1 fi -@@ -1245,8 +1287,8 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + +@@ -1245,8 +1292,8 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + case x"$fs" in x"iso9660" | x"ziso9660" | xrockridge | xjoliet | xrockridge_joliet | x"iso9660_1999" | xrockridge_1999 | xjoliet_1999 | xrockridge_joliet_1999) ;; x"zfs"*) @@ -8764,7 +16345,7 @@ index 2337771a1b9ce287c3e5e24e49c7c27baee7edb8..fd7e0f14b68ebe1a555ddd9acc70cdee if [ "$FSUUID" != 0000000000000000 ]; then break; fi -@@ -1264,8 +1306,8 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + +@@ -1264,8 +1311,8 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + echo UUID FAIL echo "$LSOUT" echo "$GRUBUUID" @@ -8775,7 +16356,7 @@ index 2337771a1b9ce287c3e5e24e49c7c27baee7edb8..fd7e0f14b68ebe1a555ddd9acc70cdee done exit 1 fi -@@ -1290,37 +1332,37 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + +@@ -1290,37 +1337,37 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + echo UUID FAIL echo "$FSUUID" echo "$LSOUT" @@ -8838,7 +16419,7 @@ index 2337771a1b9ce287c3e5e24e49c7c27baee7edb8..fd7e0f14b68ebe1a555ddd9acc70cdee fi if [ x$NOHARDLINK != xy ]; then -@@ -1410,11 +1452,9 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + +@@ -1410,11 +1457,9 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + exit 1 fi ok=true @@ -8853,7 +16434,7 @@ index 2337771a1b9ce287c3e5e24e49c7c27baee7edb8..fd7e0f14b68ebe1a555ddd9acc70cdee if test x$ok = xtrue; then : else -@@ -1503,15 +1543,17 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + +@@ -1503,15 +1548,17 @@ for ((LOGSECSIZE=MINLOGSECSIZE;LOGSECSIZE<=MAXLOGSECSIZE;LOGSECSIZE=LOGSECSIZE + sleep 1 ;; esac @@ -8929,11 +16510,201 @@ index 047120e47a0e042f0540d6762666edf4cb0b37fb..eee62c10d704ec42b090eba5ac16b496 set -e +diff --git a/util/grub-mkconfig.in b/util/grub-mkconfig.in +index f8496d28bdf7f4bcbc2413888330834c1e252a64..33332360eecf954fc2952df944fe171006fc4143 100644 +--- a/util/grub-mkconfig.in ++++ b/util/grub-mkconfig.in +@@ -134,6 +134,7 @@ fi + # Device containing our userland. Typically used for root= parameter. + GRUB_DEVICE="`${grub_probe} --target=device /`" + GRUB_DEVICE_UUID="`${grub_probe} --device ${GRUB_DEVICE} --target=fs_uuid 2> /dev/null`" || true ++GRUB_DEVICE_PARTUUID="`${grub_probe} --device ${GRUB_DEVICE} --target=partuuid 2> /dev/null`" || true + + # Device containing our /boot partition. Usually the same as GRUB_DEVICE. + GRUB_DEVICE_BOOT="`${grub_probe} --target=device /boot`" +@@ -147,6 +148,12 @@ if [ x"$GRUB_FS" = xunknown ]; then + GRUB_FS="$(stat -f --printf=%T / || echo unknown)" + fi + ++# Provide a default set of stock linux early initrd images. ++# Define here so the list can be modified in the sourced config file. ++if [ "x${GRUB_EARLY_INITRD_LINUX_STOCK}" = "x" ]; then ++ GRUB_EARLY_INITRD_LINUX_STOCK="intel-uc.img intel-ucode.img amd-uc.img amd-ucode.img early_ucode.cpio microcode.cpio" ++fi ++ + if test -f ${sysconfdir}/default/grub ; then + . ${sysconfdir}/default/grub + fi +@@ -182,6 +189,7 @@ if [ "x${GRUB_ACTUAL_DEFAULT}" = "xsaved" ] ; then GRUB_ACTUAL_DEFAULT="`"${grub + # override them. + export GRUB_DEVICE \ + GRUB_DEVICE_UUID \ ++ GRUB_DEVICE_PARTUUID \ + GRUB_DEVICE_BOOT \ + GRUB_DEVICE_BOOT_UUID \ + GRUB_FS \ +@@ -211,10 +219,13 @@ export GRUB_DEFAULT \ + GRUB_CMDLINE_NETBSD \ + GRUB_CMDLINE_NETBSD_DEFAULT \ + GRUB_CMDLINE_GNUMACH \ ++ GRUB_EARLY_INITRD_LINUX_CUSTOM \ ++ GRUB_EARLY_INITRD_LINUX_STOCK \ + GRUB_TERMINAL_INPUT \ + GRUB_TERMINAL_OUTPUT \ + GRUB_SERIAL_COMMAND \ + GRUB_DISABLE_LINUX_UUID \ ++ GRUB_DISABLE_LINUX_PARTUUID \ + GRUB_DISABLE_RECOVERY \ + GRUB_VIDEO_BACKEND \ + GRUB_GFXMODE \ +diff --git a/util/grub-mkconfig_lib.in b/util/grub-mkconfig_lib.in +index 60b31caddeb42b5db338897dc18acdc156dd2c22..0f801cab3e4d05efface62c7fcb9b787c69995c3 100644 +--- a/util/grub-mkconfig_lib.in ++++ b/util/grub-mkconfig_lib.in +@@ -188,6 +188,7 @@ grub_file_is_not_garbage () + *.dpkg-*) return 1 ;; # debian dpkg + *.rpmsave|*.rpmnew) return 1 ;; + README*|*/README*) return 1 ;; # documentation ++ *.sig) return 1 ;; # signatures + esac + else + return 1 +diff --git a/util/grub.d/10_linux.in b/util/grub.d/10_linux.in +index de9044c7f28611d56358f581ac52ca2d2b7fc982..61ebd7dc714e87aedb167345729f574426d69b77 100644 +--- a/util/grub.d/10_linux.in ++++ b/util/grub.d/10_linux.in +@@ -43,12 +43,22 @@ case ${GRUB_DEVICE} in + ;; + esac + ++# Default to disabling partition uuid support to maintian compatibility with ++# older kernels. ++GRUB_DISABLE_LINUX_PARTUUID=${GRUB_DISABLE_LINUX_PARTUUID-true} ++ + # btrfs may reside on multiple devices. We cannot pass them as value of root= parameter + # and mounting btrfs requires user space scanning, so force UUID in this case. +-if [ "x${GRUB_DEVICE_UUID}" = "x" ] || [ "x${GRUB_DISABLE_LINUX_UUID}" = "xtrue" ] \ +- || ! test -e "/dev/disk/by-uuid/${GRUB_DEVICE_UUID}" \ ++if ( [ "x${GRUB_DEVICE_UUID}" = "x" ] && [ "x${GRUB_DEVICE_PARTUUID}" = "x" ] ) \ ++ || ( [ "x${GRUB_DISABLE_LINUX_UUID}" = "xtrue" ] \ ++ && [ "x${GRUB_DISABLE_LINUX_PARTUUID}" = "xtrue" ] ) \ ++ || ( ! test -e "/dev/disk/by-uuid/${GRUB_DEVICE_UUID}" \ ++ && ! test -e "/dev/disk/by-partuuid/${GRUB_DEVICE_PARTUUID}" ) \ + || ( test -e "${GRUB_DEVICE}" && uses_abstraction "${GRUB_DEVICE}" lvm ); then + LINUX_ROOT_DEVICE=${GRUB_DEVICE} ++elif [ "x${GRUB_DEVICE_UUID}" = "x" ] \ ++ || [ "x${GRUB_DISABLE_LINUX_UUID}" = "xtrue" ]; then ++ LINUX_ROOT_DEVICE=PARTUUID=${GRUB_DEVICE_PARTUUID} + else + LINUX_ROOT_DEVICE=UUID=${GRUB_DEVICE_UUID} + fi +@@ -136,9 +146,13 @@ EOF + if test -n "${initrd}" ; then + # TRANSLATORS: ramdisk isn't identifier. Should be translated. + message="$(gettext_printf "Loading initial ramdisk ...")" ++ initrd_path= ++ for i in ${initrd}; do ++ initrd_path="${initrd_path} ${rel_dirname}/${i}" ++ done + sed "s/^/$submenu_indentation/" << EOF + echo '$(echo "$message" | grub_quote)' +- initrd ${rel_dirname}/${initrd} ++ initrd $(echo $initrd_path) + EOF + fi + sed "s/^/$submenu_indentation/" << EOF +@@ -188,7 +202,15 @@ while [ "x$list" != "x" ] ; do + alt_version=`echo $version | sed -e "s,\.old$,,g"` + linux_root_device_thisversion="${LINUX_ROOT_DEVICE}" + +- initrd= ++ initrd_early= ++ for i in ${GRUB_EARLY_INITRD_LINUX_STOCK} \ ++ ${GRUB_EARLY_INITRD_LINUX_CUSTOM}; do ++ if test -e "${dirname}/${i}" ; then ++ initrd_early="${initrd_early} ${i}" ++ fi ++ done ++ ++ initrd_real= + for i in "initrd.img-${version}" "initrd-${version}.img" "initrd-${version}.gz" \ + "initrd-${version}" "initramfs-${version}.img" \ + "initrd.img-${alt_version}" "initrd-${alt_version}.img" \ +@@ -198,11 +220,22 @@ while [ "x$list" != "x" ] ; do + "initramfs-genkernel-${GENKERNEL_ARCH}-${version}" \ + "initramfs-genkernel-${GENKERNEL_ARCH}-${alt_version}"; do + if test -e "${dirname}/${i}" ; then +- initrd="$i" ++ initrd_real="${i}" + break + fi + done + ++ initrd= ++ if test -n "${initrd_early}" || test -n "${initrd_real}"; then ++ initrd="${initrd_early} ${initrd_real}" ++ ++ initrd_display= ++ for i in ${initrd}; do ++ initrd_display="${initrd_display} ${dirname}/${i}" ++ done ++ gettext_printf "Found initrd image: %s\n" "$(echo $initrd_display)" >&2 ++ fi ++ + config= + for i in "${dirname}/config-${version}" "${dirname}/config-${alt_version}" "/etc/kernels/kernel-config-${version}" ; do + if test -e "${i}" ; then +@@ -216,12 +249,16 @@ while [ "x$list" != "x" ] ; do + initramfs=`grep CONFIG_INITRAMFS_SOURCE= "${config}" | cut -f2 -d= | tr -d \"` + fi + +- if test -n "${initrd}" ; then +- gettext_printf "Found initrd image: %s\n" "${dirname}/${initrd}" >&2 +- elif test -z "${initramfs}" ; then ++ if test -z "${initramfs}" && test -z "${initrd_real}" ; then + # "UUID=" and "ZFS=" magic is parsed by initrd or initramfs. Since there's + # no initrd or builtin initramfs, it can't work here. +- linux_root_device_thisversion=${GRUB_DEVICE} ++ if [ "x${GRUB_DEVICE_PARTUUID}" = "x" ] \ ++ || [ "x${GRUB_DISABLE_LINUX_PARTUUID}" = "xtrue" ]; then ++ ++ linux_root_device_thisversion=${GRUB_DEVICE} ++ else ++ linux_root_device_thisversion=PARTUUID=${GRUB_DEVICE_PARTUUID} ++ fi + fi + + if [ "x$is_top_level" = xtrue ] && [ "x${GRUB_DISABLE_SUBMENU}" != xy ]; then diff --git a/util/grub.d/20_linux_xen.in b/util/grub.d/20_linux_xen.in -index c48af948d6ecdf672aa341f713912ba15de8f27d..c002fc9f9465c08945b5ab7326033b538c0184e6 100644 +index c48af948d6ecdf672aa341f713912ba15de8f27d..e8143b079dc8bcdf21ec8a763b19a356c863a5e3 100644 --- a/util/grub.d/20_linux_xen.in +++ b/util/grub.d/20_linux_xen.in -@@ -122,16 +122,16 @@ linux_entry () +@@ -43,12 +43,22 @@ case ${GRUB_DEVICE} in + ;; + esac + ++# Default to disabling partition uuid support to maintian compatibility with ++# older kernels. ++GRUB_DISABLE_LINUX_PARTUUID=${GRUB_DISABLE_LINUX_PARTUUID-true} ++ + # btrfs may reside on multiple devices. We cannot pass them as value of root= parameter + # and mounting btrfs requires user space scanning, so force UUID in this case. +-if [ "x${GRUB_DEVICE_UUID}" = "x" ] || [ "x${GRUB_DISABLE_LINUX_UUID}" = "xtrue" ] \ +- || ! test -e "/dev/disk/by-uuid/${GRUB_DEVICE_UUID}" \ ++if ( [ "x${GRUB_DEVICE_UUID}" = "x" ] && [ "x${GRUB_DEVICE_PARTUUID}" = "x" ] ) \ ++ || ( [ "x${GRUB_DISABLE_LINUX_UUID}" = "xtrue" ] \ ++ && [ "x${GRUB_DISABLE_LINUX_PARTUUID}" = "xtrue" ] ) \ ++ || ( ! test -e "/dev/disk/by-uuid/${GRUB_DEVICE_UUID}" \ ++ && ! test -e "/dev/disk/by-partuuid/${GRUB_DEVICE_PARTUUID}" ) \ + || ( test -e "${GRUB_DEVICE}" && uses_abstraction "${GRUB_DEVICE}" lvm ); then + LINUX_ROOT_DEVICE=${GRUB_DEVICE} ++elif [ "x${GRUB_DEVICE_UUID}" = "x" ] \ ++ || [ "x${GRUB_DISABLE_LINUX_UUID}" = "xtrue" ]; then ++ LINUX_ROOT_DEVICE=PARTUUID=${GRUB_DEVICE_PARTUUID} + else + LINUX_ROOT_DEVICE=UUID=${GRUB_DEVICE_UUID} + fi +@@ -122,16 +132,16 @@ linux_entry () else xen_rm_opts="no-real-mode edd=off" fi @@ -8953,18 +16724,37 @@ index c48af948d6ecdf672aa341f713912ba15de8f27d..c002fc9f9465c08945b5ab7326033b53 EOF fi sed "s/^/$submenu_indentation/" << EOF -@@ -206,6 +206,14 @@ while [ "x${xen_list}" != "x" ] ; do +@@ -206,6 +216,18 @@ while [ "x${xen_list}" != "x" ] ; do if [ "x$is_top_level" != xtrue ]; then echo " submenu '$(gettext_printf "Xen hypervisor, version %s" "${xen_version}" | grub_quote)' \$menuentry_id_option 'xen-hypervisor-$xen_version-$boot_device_id' {" fi -+ $grub_file --is-arm64-efi $current_xen -+ if [ $? -ne 0 ]; then -+ xen_loader="multiboot" -+ module_loader="module" -+ else ++ if ($grub_file --is-arm64-efi $current_xen); then + xen_loader="xen_hypervisor" + module_loader="xen_module" ++ else ++ if ($grub_file --is-x86-multiboot2 $current_xen); then ++ xen_loader="multiboot2" ++ module_loader="module2" ++ else ++ xen_loader="multiboot" ++ module_loader="module" ++ fi + fi while [ "x$list" != "x" ] ; do linux=`version_find_latest $list` gettext_printf "Found linux image: %s\n" "$linux" >&2 +@@ -234,7 +256,13 @@ while [ "x${xen_list}" != "x" ] ; do + gettext_printf "Found initrd image: %s\n" "${dirname}/${initrd}" >&2 + else + # "UUID=" magic is parsed by initrds. Since there's no initrd, it can't work here. +- linux_root_device_thisversion=${GRUB_DEVICE} ++ if [ "x${GRUB_DEVICE_PARTUUID}" = "x" ] \ ++ || [ "x${GRUB_DISABLE_LINUX_PARTUUID}" = "xtrue" ]; then ++ ++ linux_root_device_thisversion=${GRUB_DEVICE} ++ else ++ linux_root_device_thisversion=PARTUUID=${GRUB_DEVICE_PARTUUID} ++ fi + fi + + if [ "x$is_top_level" = xtrue ] && [ "x${GRUB_DISABLE_SUBMENU}" != xy ]; then From c3049d21d88b13b0d45eb94b842842b3a3cbaf82 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Fri, 3 Aug 2018 15:13:04 -0400 Subject: [PATCH 42/45] Kill .note.gnu.property with fire. Related: rhbz#1612339 Signed-off-by: Peter Jones --- ...-R-.note.gnu.property-at-more-places.patch | 82 +++++++++++++++++++ grub.patches | 1 + grub2.spec | 6 +- 3 files changed, 88 insertions(+), 1 deletion(-) create mode 100644 0219-strip-R-.note.gnu.property-at-more-places.patch diff --git a/0219-strip-R-.note.gnu.property-at-more-places.patch b/0219-strip-R-.note.gnu.property-at-more-places.patch new file mode 100644 index 00000000..0bd0be09 --- /dev/null +++ b/0219-strip-R-.note.gnu.property-at-more-places.patch @@ -0,0 +1,82 @@ +From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 +From: Peter Jones +Date: Fri, 3 Aug 2018 15:07:23 -0400 +Subject: [PATCH] strip "-R .note.gnu.property" at more places. + +For whatever reason, sometimes I see: + + lzma_decompress.image: file format elf32-i386 + lzma_decompress.image + architecture: i386, flags 0x00000012: + EXEC_P, HAS_SYMS + start address 0x00008200 + + Program Header: + LOAD off 0x000000c0 vaddr 0x00008200 paddr 0x00008200 align 2**5 + filesz 0x00000b10 memsz 0x00000b10 flags rwx + LOAD off 0x00000bd0 vaddr 0x080480b4 paddr 0x080480b4 align 2**2 + filesz 0x0000001c memsz 0x0000001c flags r-- + NOTE off 0x00000bd0 vaddr 0x080480b4 paddr 0x080480b4 align 2**2 + filesz 0x0000001c memsz 0x0000001c flags r-- + STACK off 0x00000000 vaddr 0x00000000 paddr 0x00000000 align 2**4 + filesz 0x00000000 memsz 0x00000000 flags rw- + + Sections: + Idx Name Size VMA LMA File off Algn + 0 .note.gnu.property 0000001c 080480b4 080480b4 00000bd0 2**2 + CONTENTS, ALLOC, LOAD, READONLY, DATA + 1 .text 00000b10 00008200 00008200 000000c0 2**5 + CONTENTS, ALLOC, LOAD, CODE + SYMBOL TABLE: + 080480b4 l d .note.gnu.property 00000000 .note.gnu.property + 00008200 l d .text 00000000 .text + 00000000 l df *ABS* 00000000 startup_raw.S + ... + +Which just looks wrong no matter what to my eyes (seriously it's at +128M? Why?), and when we fail to strip it, we get: + +trillian:~/tmp/f29$ hexdump -C usr/lib/grub/i386-pc/lzma_decompress.img | tail -6 +00000b00 ff 45 e8 5a 83 c2 02 89 d1 e9 df fe ff ff 66 90 |.E.Z..........f.| +00000b10 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 |................| +* +0803feb0 00 00 00 00 04 00 00 00 0c 00 00 00 05 00 00 00 |................| +0803fec0 47 4e 55 00 02 00 00 c0 04 00 00 00 03 00 00 00 |GNU.............| +0803fed0 + +Which is very very much not what we want. + +Cut it out. + +Signed-off-by: Peter Jones +--- + Makefile.am | 2 +- + gentpl.py | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/Makefile.am b/Makefile.am +index c7b0e6a9c46..287fff66b20 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -209,7 +209,7 @@ pc-chainloader.elf: $(srcdir)/grub-core/tests/boot/kernel-8086.S $(srcdir)/grub- + $(TARGET_CC) -o $@ $< -static -DTARGET_CHAINLOADER=1 -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\" -ffreestanding -nostdlib -nostdinc -Wl,--build-id=none -Wl,-N -Wl,-Ttext,0x7c00 -m32 + + pc-chainloader.bin: pc-chainloader.elf +- $(TARGET_OBJCOPY) -O binary --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .reginfo -R .rel.dyn -R .note.gnu.gold-version $< $@; ++ $(TARGET_OBJCOPY) -O binary --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .note.gnu.property $< $@; + + ntldr.elf: $(srcdir)/grub-core/tests/boot/kernel-8086.S $(srcdir)/grub-core/tests/boot/qemu-shutdown-x86.S + $(TARGET_CC) -o $@ $< -DTARGET_NTLDR=1 -DSUCCESSFUL_BOOT_STRING=\"$(SUCCESSFUL_BOOT_STRING)\" -static -ffreestanding -nostdlib -nostdinc -Wl,--build-id=none -Wl,-N -Wl,-Ttext,0 -m32 +diff --git a/gentpl.py b/gentpl.py +index 1e4635f4426..d662c305f66 100644 +--- a/gentpl.py ++++ b/gentpl.py +@@ -776,7 +776,7 @@ def image(defn, platform): + if test x$(TARGET_APPLE_LINKER) = x1; then \ + $(MACHO2IMG) $< $@; \ + else \ +- $(TARGET_OBJCOPY) $(""" + cname(defn) + """_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx $< $@; \ ++ $(TARGET_OBJCOPY) $(""" + cname(defn) + """_OBJCOPYFLAGS) --strip-unneeded -R .note -R .comment -R .note.gnu.build-id -R .MIPS.abiflags -R .reginfo -R .rel.dyn -R .note.gnu.gold-version -R .ARM.exidx -R .note.gnu.property $< $@; \ + fi + """) + diff --git a/grub.patches b/grub.patches index 33bd2601..5b53cf48 100644 --- a/grub.patches +++ b/grub.patches @@ -216,3 +216,4 @@ Patch0215: 0215-grub-module-verifier-report-the-filename-or-modname-.patch Patch0216: 0216-Make-efi_netfs-not-duplicate-symbols-from-efinet.patch Patch0217: 0217-Rework-how-the-fdt-command-builds.patch Patch0218: 0218-Disable-non-wordsize-allocations-on-arm.patch +Patch0219: 0219-strip-R-.note.gnu.property-at-more-places.patch diff --git a/grub2.spec b/grub2.spec index ffb26c0f..24a654fa 100644 --- a/grub2.spec +++ b/grub2.spec @@ -7,7 +7,7 @@ Name: grub2 Epoch: 1 Version: 2.02 -Release: 41%{?dist} +Release: 42%{?dist} Summary: Bootloader with support for Linux, Multiboot and more Group: System Environment/Base License: GPLv3+ @@ -463,6 +463,10 @@ fi %endif %changelog +* Fri Aug 03 2018 Peter Jones - 2.02-42 +- Kill .note.gnu.property with fire. + Related: rhbz#1612339 + * Thu Aug 02 2018 Peter Jones - 2.02-41 - Backport a pile of fixes from the f29 tree. Related: rhbz#1609431 From b8ca92b29b26da7000f93e2b99f9c394182c4527 Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Mon, 6 Aug 2018 13:29:27 -0400 Subject: [PATCH 43/45] Add an installkernel script for BLS configurations Signed-off-by: Peter Jones --- grub2.spec | 16 ++++++++- installkernel-bls | 85 +++++++++++++++++++++++++++++++++++++++++++++++ installkernel.in | 8 +++++ 3 files changed, 108 insertions(+), 1 deletion(-) create mode 100755 installkernel-bls create mode 100644 installkernel.in diff --git a/grub2.spec b/grub2.spec index 24a654fa..6caaeb4a 100644 --- a/grub2.spec +++ b/grub2.spec @@ -7,7 +7,7 @@ Name: grub2 Epoch: 1 Version: 2.02 -Release: 42%{?dist} +Release: 43%{?dist} Summary: Bootloader with support for Linux, Multiboot and more Group: System Environment/Base License: GPLv3+ @@ -23,6 +23,8 @@ Source5: theme.tar.bz2 Source6: gitignore Source8: strtoull_test.c Source9: 20-grub.install +Source10: installkernel-bls +Source11: installkernel.in %include %{SOURCE1} @@ -70,6 +72,7 @@ hardware devices.\ Summary: grub2 common layout Group: System Environment/Base BuildArch: noarch +Conflicts: grubby < 8.40-16.%{?dist} %description common This package provides some directories which are required by various grub2 @@ -219,6 +222,12 @@ install -d -m 0755 %{buildroot}%{_sysconfdir}/kernel/install.d/ install -m 0644 /dev/null %{buildroot}%{_sysconfdir}/kernel/install.d/20-grubby.install install -m 0644 /dev/null %{buildroot}%{_sysconfdir}/kernel/install.d/90-loaderentry.install +# Install installkernel script +mkdir -p %{buildroot}%{_libexecdir}/installkernel/ +cp -v %{SOURCE10} %{buildroot}%{_libexecdir}/installkernel/ +sed -e "s,@@LIBEXECDIR@@,%{_libexecdir}/installkernel,g" %{SOURCE11} \ + > %{buildroot}%{_sbindir}/installkernel + # Don't run debuginfo on all the grub modules and whatnot; it just # rejects them, complains, and slows down extraction. %global finddebugroot "%{_builddir}/%{?buildsubdir}/debug" @@ -314,6 +323,8 @@ fi %{_prefix}/lib/kernel/install.d/20-grub.install %{_sysconfdir}/kernel/install.d/20-grubby.install %{_sysconfdir}/kernel/install.d/90-loaderentry.install +%{_libexecdir}/installkernel/installkernel-bls +%attr(0755,root,root) %{_sbindir}/installkernel %dir %{_datarootdir}/grub %exclude %{_datarootdir}/grub/* %dir /boot/%{name} @@ -463,6 +474,9 @@ fi %endif %changelog +* Fri Aug 03 2018 Javier Martinez Canillas - 2.02-43 +- Add an installkernel script for BLS configurations + * Fri Aug 03 2018 Peter Jones - 2.02-42 - Kill .note.gnu.property with fire. Related: rhbz#1612339 diff --git a/installkernel-bls b/installkernel-bls new file mode 100755 index 00000000..d66c44a7 --- /dev/null +++ b/installkernel-bls @@ -0,0 +1,85 @@ +#! /bin/sh +# +# /sbin/installkernel +# +# Copyright 2007-2008 Red Hat, Inc. All rights reserved. +# +# This program is free software; you can redistribute it and/or modify +# it under the terms of the GNU General Public License as published by +# the Free Software Foundation; either version 2 of the License, or +# (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +# Author(s): tyson@rwii.com +# + +[[ -f /etc/default/grub ]] && . /etc/default/grub + +usage() { + echo "Usage: `basename $0` " >&2 + exit 1 +} + +cfgLoader= + +if [ -z "$INSTALL_PATH" -o "$INSTALL_PATH" == "/boot" ]; then + INSTALL_PATH=/boot + cfgLoader=1 +fi + +LINK_PATH=/boot +RELATIVE_PATH=`echo "$INSTALL_PATH/" | sed "s|^$LINK_PATH/||"` +KERNEL_VERSION=$1 +BOOTIMAGE=$2 +MAPFILE=$3 +ARCH=$(uname -m) +if [ $ARCH = 'ppc64' -o $ARCH = 'ppc' ]; then + KERNEL_NAME=vmlinux +else + KERNEL_NAME=vmlinuz +fi + +if [ -z "$KERNEL_VERSION" -o -z "$BOOTIMAGE" -o -z "$MAPFILE" ]; then + usage +fi + +if [ -f $INSTALL_PATH/$KERNEL_NAME-$KERNEL_VERSION ]; then + mv $INSTALL_PATH/$KERNEL_NAME-$KERNEL_VERSION \ + $INSTALL_PATH/$KERNEL_NAME-$KERNEL_VERSION.old; +fi + +if [ ! -L $INSTALL_PATH/$KERNEL_NAME ]; then + if [ -e $INSTALLPATH/$KERNEL_NAME ]; then + mv $INSTALL_PATH/$KERNEL_NAME $INSTALL_PATH/$KERNEL_NAME.old + fi +fi + +if [ -f $INSTALL_PATH/System.map-$KERNEL_VERSION ]; then + mv $INSTALL_PATH/System.map-$KERNEL_VERSION \ + $INSTALL_PATH/System.map-$KERNEL_VERSION.old; +fi + +if [ ! -L $INSTALL_PATH/System.map ]; then + if [ -e $INSTALLPATH/System.map ]; then + mv $INSTALL_PATH/System.map $INSTALL_PATH/System.map.old + fi +fi +ln -sf ${RELATIVE_PATH}$INSTALL_PATH/System.map-$KERNEL_VERSION $LINK_PATH/System.map + +cat $BOOTIMAGE > $INSTALL_PATH/$KERNEL_NAME-$KERNEL_VERSION +cp $MAPFILE $INSTALL_PATH/System.map-$KERNEL_VERSION + +ln -fs ${RELATIVE_PATH}$INSTALL_PATH/$KERNEL_NAME-$KERNEL_VERSION $LINK_PATH/$KERNEL_NAME +ln -fs ${RELATIVE_PATH}$INSTALL_PATH/System.map-$KERNEL_VERSION $LINK_PATH/System.map + +if [ -n "$cfgLoader" ] && [ "x${GRUB_ENABLE_BLSCFG}" = "xtrue" ]; then + kernel-install add $KERNEL_VERSION $INSTALL_PATH/$KERNEL_NAME-$KERNEL_VERSION + exit $? +fi diff --git a/installkernel.in b/installkernel.in new file mode 100644 index 00000000..87b81ee1 --- /dev/null +++ b/installkernel.in @@ -0,0 +1,8 @@ +#!/bin/bash +if [[ -x @@LIBEXECDIR@@/installkernel ]] ; then + exec @@LIBEXECDIR@@/installkernel "${@}" +elif [[ -x @@LIBEXECDIR@@/installkernel-bls ]] ; then + exec @@LIBEXECDIR@@/installkernel-bls "${@}" +fi +echo "installkernel is not installed correctly." >>/dev/stderr +exit 1 From dd8a32f45a58bb74dd12816738d576ee1c7e5f84 Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Mon, 6 Aug 2018 13:43:20 -0400 Subject: [PATCH 44/45] Fix the typo I introduced. Signed-off-by: Peter Jones --- grub2.spec | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/grub2.spec b/grub2.spec index 6caaeb4a..03920baa 100644 --- a/grub2.spec +++ b/grub2.spec @@ -72,7 +72,7 @@ hardware devices.\ Summary: grub2 common layout Group: System Environment/Base BuildArch: noarch -Conflicts: grubby < 8.40-16.%{?dist} +Conflicts: grubby < 8.40-16%{?dist} %description common This package provides some directories which are required by various grub2 From 2021dcd990500ed9939b2890235d9ff6e843341b Mon Sep 17 00:00:00 2001 From: Javier Martinez Canillas Date: Sat, 11 Aug 2018 22:07:38 +0200 Subject: [PATCH 45/45] Add %{_libexecdir}/installkernel directory to the %files list Only the %{_libexecdir}/installkernel/installkernel-bls file was added to the %files directive but the dir containing the file should also be listed. Signed-off-by: Javier Martinez Canillas --- grub2.spec | 1 + 1 file changed, 1 insertion(+) diff --git a/grub2.spec b/grub2.spec index 03920baa..99549b14 100644 --- a/grub2.spec +++ b/grub2.spec @@ -323,6 +323,7 @@ fi %{_prefix}/lib/kernel/install.d/20-grub.install %{_sysconfdir}/kernel/install.d/20-grubby.install %{_sysconfdir}/kernel/install.d/90-loaderentry.install +%dir %{_libexecdir}/installkernel %{_libexecdir}/installkernel/installkernel-bls %attr(0755,root,root) %{_sbindir}/installkernel %dir %{_datarootdir}/grub