diff --git a/0006-boom.bootloader-simplify-bootloader-integration-chec.patch b/0006-boom.bootloader-simplify-bootloader-integration-chec.patch new file mode 100644 index 0000000..d9d84a4 --- /dev/null +++ b/0006-boom.bootloader-simplify-bootloader-integration-chec.patch @@ -0,0 +1,106 @@ +From 2721baa62e414dcbe1fdd3ab2a7f1cf5f2ac4dc4 Mon Sep 17 00:00:00 2001 +From: "Bryn M. Reeves" +Date: Thu, 19 May 2022 16:25:19 +0100 +Subject: [PATCH 06/11] boom.bootloader: simplify bootloader integration checks + +Since Red Hat distributions (since RHEL8/Fedora 30) now default to using +BLS for boot loader configuration the boom grub integration scripts +(that are run during grub2-mkconfig execution), and the elaborate checks for +various details of the integration are unnecessary and lead to +misleading output when boom is used on these distributions: + + # boom create --title "STRATIS SNAP TEST2" --root-device /dev/stratis/p1/fs1-snap + WARNING - Boom configuration file missing from '/boot/../etc/default/boom' + WARNING - Boom configuration not found in grub.cfg + WARNING - Run 'grub2-mkconfig > /boot/grub2/grub.cfg' to enable + Created entry with boot_id 0b0a8d0: + title STRATIS SNAP TEST2 + machine-id 568bd2491ba243d48fcff8f2a2d7f928 + version 5.11.12-300.fc34.x86_64 + linux /vmlinuz-5.11.12-300.fc34.x86_64 + initrd /initramfs-5.11.12-300.fc34.x86_64.img + options root=/dev/stratis/p1/fs1-snap ro stratis.rootfs.pool_uuid=7e12536d-ddd5-4042-9d84-fff9846f4603 + grub_users $grub_users + grub_arg --unrestricted + grub_class kernel + +The WARNING messages are not only misleading but potentially harmful +since running grub2-mkconfig may have additional side-effects depending +on the system configuration (and may not enable blscfg if for some +reason it is not present in the configuration files in /boot). + +An additional benefit of this simplification is that it now correctly +reports the BLS status for systems using EFI. + +Related: #2 + +Signed-off-by: Bryn M. Reeves +--- + boom/bootloader.py | 36 +----------------------------------- + 1 file changed, 1 insertion(+), 35 deletions(-) + +diff --git a/boom/bootloader.py b/boom/bootloader.py +index b01b7cd..3802ca8 100644 +--- a/boom/bootloader.py ++++ b/boom/bootloader.py +@@ -224,10 +224,6 @@ def boom_entries_path(): + #: Private constants for Grub2 integration checks + #: Paths outside /boot are referenced relative to /boot. + __grub_cfg = "grub2/grub.cfg" +-__etc_grub_d = "../etc/grub.d" +-__boom_grub_d = "42_boom" +-__etc_default = "../etc/default" +-__boom_defaults = "boom" + + + def check_bootloader(): +@@ -242,33 +238,6 @@ def check_bootloader(): + _log_warn("No Grub2 configuration file found") + return False + +- boom_grub_d = path_join(boot_path, __etc_grub_d, __boom_grub_d) +- if not path_exists(boom_grub_d): +- _log_warn("Boom grub2 script missing from '%s'" % __etc_grub_d) +- return False +- +- defaults_file = path_join(boot_path, __etc_default, __boom_defaults) +- if not path_exists(defaults_file): +- _log_warn("Boom configuration file missing from '%s'" % defaults_file) +- return False +- +- def is_yes(val): +- return val == "y" or val == "yes" +- +- submenu_enabled = False +- with open(defaults_file, "r") as dfile: +- for line in dfile: +- (name, value) = parse_name_value(line) +- if name == "BOOM_ENABLE_GRUB" and not is_yes(value): +- _log_warn("Boom grub2 integration is disabled in '%s'" % +- defaults_file) +- if name == "BOOM_USE_SUBMENU" and is_yes(value): +- _log_info("Boom grub2 submenu support enabled") +- submenu_enabled = True +- if name == "BOOM_SUBMENU_NAME" and submenu_enabled: +- _log_info("Boom grub2 submenu name is '%s'" % value) +- +- found_boom_grub = False + found_bls = False + blscfg = "blscfg" + with open(grub_cfg) as gfile: +@@ -276,11 +245,8 @@ def check_bootloader(): + if blscfg in line: + _log_info("Found BLS import statement in '%s'" % grub_cfg) + found_bls = True +- if "BEGIN" in line and __boom_grub_d in line: +- _log_info("Found Boom Grub2 integration in '%s'" % grub_cfg) +- found_boom_grub = True + +- return found_boom_grub or found_bls ++ return found_bls + + + class BoomRootDeviceError(BoomError): +-- +2.45.2 + diff --git a/0007-boom-drop-Grub2-integration-scripts-and-defaults-fil.patch b/0007-boom-drop-Grub2-integration-scripts-and-defaults-fil.patch new file mode 100644 index 0000000..1dda975 --- /dev/null +++ b/0007-boom-drop-Grub2-integration-scripts-and-defaults-fil.patch @@ -0,0 +1,545 @@ +From b64d59cd1c9b798cfe4f7fd2e8e022dbc75082e3 Mon Sep 17 00:00:00 2001 +From: "Bryn M. Reeves" +Date: Thu, 19 May 2022 16:46:19 +0100 +Subject: [PATCH 07/11] boom: drop Grub2 integration scripts and defaults file + +Remove the 42_boom grub2-mkconfig hook script and the boom grub2 +integration configuration in /etc/default/boom and fix the corresponding +test cases accordingly. + +Closes: #2 + +Signed-off-by: Bryn M. Reeves +--- + boom.spec | 6 ---- + etc/default/boom | 3 -- + etc/grub.d/42_boom | 35 ------------------- + .../boom_off/etc/default/boom | 3 -- + .../boom_off/etc/grub.d/42_boom | 35 ------------------- + .../boom_on/boot/grub2/grub.cfg | 10 ------ + .../boom_on/etc/default/boom | 3 -- + .../boom_on/etc/grub.d/42_boom | 35 ------------------- + .../{boom_on => default}/boot/boom/boom.conf | 0 + ...cc4acde98e84f671e3b-localhost-testing.host | 0 + ...2b1d5e2a9ede501b2815fac9c69-localhost.host | 0 + ...f0ba735fe63c50ba1d98-localhost-ALABEL.host | 0 + ...31bf37c27caf168695409e2f0b4-localhost.host | 0 + ...bd37511ed08919f7561c5ae6663ab027f-qux.host | 0 + ...b9083be599e61d26bdff2c2c97-debian8.profile | 0 + ...24192b15d91dc9612343a3-ubuntu16.04.profile | 0 + ...d97a0082fcd0270da994b2bff7a-newos1.profile | 0 + ...05bc2850ba01f4838739a1b-nooptions1.profile | 0 + ...b20c6a46c7fc31b04be465e973-rhel7.2.profile | 0 + ...869ba1756cce40c7d8c4c24db9-blanks1.profile | 0 + ...25676933747d9c893374db-ubuntu17.04.profile | 0 + ...92284ef45163428dd58023854d-debian7.profile | 0 + ...b2903585f171e4290ff0602b5-fedora24.profile | 0 + ...7d39e0abf8c265ffb144d6ca-comments1.profile | 0 + ...148659c5baaa499259bbc-opensuse42.1.profile | 0 + ...2e6092bde6b789d9a3c21b-ubuntu14.04.profile | 0 + ...68be04e51bb25687a361e535c-fedora25.profile | 0 + ...3d71ca678fea89ef1989695b3-nobtrfs1.profile | 0 + ...3c8c95cb7d93f75693d2b25f764d-rhel6.profile | 0 + ...85fd9ab985a4c47025884999f-fedora24.profile | 0 + .../boot/boom/profiles/README | 0 + ...6cb7c8762cb198a8ba49e-opensuse42.3.profile | 0 + ...416bb914418b051e2d8d72d13b32-rhel5.profile | 0 + ...9c01ce2081e9158eafa1920fa632-rhel8.profile | 0 + ...47122f05658a2721f53c3aae4a039-foo1.profile | 0 + ...c5259477cbff7a15b000dd222671-rhel7.profile | 0 + ...3384a99fbd402e2ea5bcba5a49-fedora1.profile | 0 + ...b1da75f0e893d5a30db8e308b58-nolvm1.profile | 0 + ...9f1160c0b0291407e5990b9e0-fedora26.profile | 0 + ...310fec02d25925688e4840a7869a-rhel4.profile | 0 + .../{boom_off => default}/boot/grub2/grub.cfg | 0 + .../no_boom/boot/grub2/grub.cfg | 10 ------ + .../no_boom/etc/grub.d/42_boom | 35 ------------------- + .../no_grub_d/boot/grub2/grub.cfg | 10 ------ + .../no_grub_d/etc/default/boom | 3 -- + tests/bootloader_tests.py | 26 +------------- + 46 files changed, 1 insertion(+), 213 deletions(-) + delete mode 100644 etc/default/boom + delete mode 100755 etc/grub.d/42_boom + delete mode 100644 tests/bootloader_configs/boom_off/etc/default/boom + delete mode 100755 tests/bootloader_configs/boom_off/etc/grub.d/42_boom + delete mode 100644 tests/bootloader_configs/boom_on/boot/grub2/grub.cfg + delete mode 100644 tests/bootloader_configs/boom_on/etc/default/boom + delete mode 100755 tests/bootloader_configs/boom_on/etc/grub.d/42_boom + rename tests/bootloader_configs/{boom_on => default}/boot/boom/boom.conf (100%) + rename tests/bootloader_configs/{boom_on => default}/boot/boom/hosts/1a979bb835db0ce920557cc4acde98e84f671e3b-localhost-testing.host (100%) + rename tests/bootloader_configs/{boom_on => default}/boot/boom/hosts/2b4048d37f3c42b1d5e2a9ede501b2815fac9c69-localhost.host (100%) + rename tests/bootloader_configs/{boom_on => default}/boot/boom/hosts/373ccd1b66af9058ce49f0ba735fe63c50ba1d98-localhost-ALABEL.host (100%) + rename tests/bootloader_configs/{boom_on => default}/boot/boom/hosts/badbadbad-5ebcb1fa34dd831bf37c27caf168695409e2f0b4-localhost.host (100%) + rename tests/bootloader_configs/{boom_on => default}/boot/boom/hosts/cb7b3ebbd37511ed08919f7561c5ae6663ab027f-qux.host (100%) + rename tests/bootloader_configs/{boom_on => default}/boot/boom/profiles/01f4a140de8c7cb9083be599e61d26bdff2c2c97-debian8.profile (100%) + rename tests/bootloader_configs/{boom_on => default}/boot/boom/profiles/21e37c8002f33c177524192b15d91dc9612343a3-ubuntu16.04.profile (100%) + rename tests/bootloader_configs/{boom_on => default}/boot/boom/profiles/28851f93a99cad97a0082fcd0270da994b2bff7a-newos1.profile (100%) + rename tests/bootloader_configs/{boom_on => default}/boot/boom/profiles/3ee2c8b6e7b5043d305bc2850ba01f4838739a1b-nooptions1.profile (100%) + rename tests/bootloader_configs/{boom_on => default}/boot/boom/profiles/3fc389bba581e5b20c6a46c7fc31b04be465e973-rhel7.2.profile (100%) + rename tests/bootloader_configs/{boom_on => default}/boot/boom/profiles/3fda8a315ae33e869ba1756cce40c7d8c4c24db9-blanks1.profile (100%) + rename tests/bootloader_configs/{boom_on => default}/boot/boom/profiles/418203ef8b710a2dc125676933747d9c893374db-ubuntu17.04.profile (100%) + rename tests/bootloader_configs/{boom_on => default}/boot/boom/profiles/6bae4a4aea177592284ef45163428dd58023854d-debian7.profile (100%) + rename tests/bootloader_configs/{boom_on => default}/boot/boom/profiles/6bf746bb7231693b2903585f171e4290ff0602b5-fedora24.profile (100%) + rename tests/bootloader_configs/{boom_on => default}/boot/boom/profiles/6cc6727da76d21db7d39e0abf8c265ffb144d6ca-comments1.profile (100%) + rename tests/bootloader_configs/{boom_on => default}/boot/boom/profiles/7dbe237be02bc028a95148659c5baaa499259bbc-opensuse42.1.profile (100%) + rename tests/bootloader_configs/{boom_on => default}/boot/boom/profiles/81a78ae30161f02d8b2e6092bde6b789d9a3c21b-ubuntu14.04.profile (100%) + rename tests/bootloader_configs/{boom_on => default}/boot/boom/profiles/9736c347ccb724368be04e51bb25687a361e535c-fedora25.profile (100%) + rename tests/bootloader_configs/{boom_on => default}/boot/boom/profiles/987f0daf2d004093d71ca678fea89ef1989695b3-nobtrfs1.profile (100%) + rename tests/bootloader_configs/{boom_on => default}/boot/boom/profiles/98c3edb94b7b3c8c95cb7d93f75693d2b25f764d-rhel6.profile (100%) + rename tests/bootloader_configs/{boom_on => default}/boot/boom/profiles/9cb53ddda889d6285fd9ab985a4c47025884999f-fedora24.profile (100%) + rename tests/bootloader_configs/{boom_on => default}/boot/boom/profiles/README (100%) + rename tests/bootloader_configs/{boom_on => default}/boot/boom/profiles/af602322b29a22d002e6cb7c8762cb198a8ba49e-opensuse42.3.profile (100%) + rename tests/bootloader_configs/{boom_on => default}/boot/boom/profiles/b730331f540c416bb914418b051e2d8d72d13b32-rhel5.profile (100%) + rename tests/bootloader_configs/{boom_on => default}/boot/boom/profiles/b99ea5fd28c19c01ce2081e9158eafa1920fa632-rhel8.profile (100%) + rename tests/bootloader_configs/{boom_on => default}/boot/boom/profiles/bab31a35db247122f05658a2721f53c3aae4a039-foo1.profile (100%) + rename tests/bootloader_configs/{boom_on => default}/boot/boom/profiles/c0b921ea84dbc5259477cbff7a15b000dd222671-rhel7.profile (100%) + rename tests/bootloader_configs/{boom_on => default}/boot/boom/profiles/c48d3c2d3fe9c53384a99fbd402e2ea5bcba5a49-fedora1.profile (100%) + rename tests/bootloader_configs/{boom_on => default}/boot/boom/profiles/d3e1bd82b33d0b1da75f0e893d5a30db8e308b58-nolvm1.profile (100%) + rename tests/bootloader_configs/{boom_on => default}/boot/boom/profiles/d4439b7d2f928c39f1160c0b0291407e5990b9e0-fedora26.profile (100%) + rename tests/bootloader_configs/{boom_on => default}/boot/boom/profiles/efd6d41ee868310fec02d25925688e4840a7869a-rhel4.profile (100%) + rename tests/bootloader_configs/{boom_off => default}/boot/grub2/grub.cfg (100%) + delete mode 100644 tests/bootloader_configs/no_boom/boot/grub2/grub.cfg + delete mode 100755 tests/bootloader_configs/no_boom/etc/grub.d/42_boom + delete mode 100644 tests/bootloader_configs/no_grub_d/boot/grub2/grub.cfg + delete mode 100644 tests/bootloader_configs/no_grub_d/etc/default/boom + +diff --git a/boom.spec b/boom.spec +index 8b297e9..7e88e65 100644 +--- a/boom.spec ++++ b/boom.spec +@@ -96,12 +96,6 @@ rm -r doc/_build + %install + %py3_install + +-# Install Grub2 integration scripts +-mkdir -p ${RPM_BUILD_ROOT}/etc/grub.d +-mkdir -p ${RPM_BUILD_ROOT}/etc/default +-install -m 755 etc/grub.d/42_boom ${RPM_BUILD_ROOT}/etc/grub.d +-install -m 644 etc/default/boom ${RPM_BUILD_ROOT}/etc/default +- + # Make configuration directories + # mode 0700 - in line with /boot/grub2 directory: + install -d -m 700 ${RPM_BUILD_ROOT}/boot/boom/profiles +diff --git a/etc/default/boom b/etc/default/boom +deleted file mode 100644 +index 451cb37..0000000 +--- a/etc/default/boom ++++ /dev/null +@@ -1,3 +0,0 @@ +-BOOM_USE_SUBMENU="no" +-BOOM_SUBMENU_NAME="Snapshots" +-BOOM_ENABLE_GRUB="no" +diff --git a/etc/grub.d/42_boom b/etc/grub.d/42_boom +deleted file mode 100755 +index 85611dd..0000000 +--- a/etc/grub.d/42_boom ++++ /dev/null +@@ -1,35 +0,0 @@ +-#!/bin/sh +-BOOM_CONFIG="/etc/default/boom" +-. $BOOM_CONFIG +- +-BOOM_USE_SUBMENU="${BOOM_USE_SUBMENU:-yes}" +-BOOM_SUBMENU_NAME="${BOOM_SUBMENU_NAME:-Snapshots}" +-BOOM_ENABLE_GRUB="${BOOM_ENABLE_GRUB:-no}" +- +-# Indentation for body of submenu commands +-SUBMENU_PREFIX=" " +- +-INSMOD_CMD="insmod blscfg" +-IMPORT_CMD="bls_import" +- +-# Test whether boom grub menu entries are enabled +-if [ "$BOOM_ENABLE_GRUB" = "no" -o "$BOOM_ENABLE_GRUB" = "n" ]; then +- exit +-fi +- +-# Do not generate grub configuration unless boom entries have +-# been configured. +-if [ -z "$(boom list --noheadings)" ]; then +- exit +-fi +- +-# Optional submenu support +-if [ "$BOOM_USE_SUBMENU" = "yes" -o "$BOOM_SUBMENU_NAME" = "y" ]; then +- echo "submenu \"$BOOM_SUBMENU_NAME\" {" +- echo "${SUBMENU_PREFIX}${INSMOD_CMD}" +- echo "${SUBMENU_PREFIX}${IMPORT_CMD}" +- echo "}" +-else +- echo ${INSMOD_CMD} +- echo ${IMPORT_CMD} +-fi +diff --git a/tests/bootloader_configs/boom_off/etc/default/boom b/tests/bootloader_configs/boom_off/etc/default/boom +deleted file mode 100644 +index dfb766c..0000000 +--- a/tests/bootloader_configs/boom_off/etc/default/boom ++++ /dev/null +@@ -1,3 +0,0 @@ +-BOOM_USE_SUBMENU="yes" +-BOOM_SUBMENU_NAME="Snapshots" +-BOOM_ENABLE_GRUB="no" +diff --git a/tests/bootloader_configs/boom_off/etc/grub.d/42_boom b/tests/bootloader_configs/boom_off/etc/grub.d/42_boom +deleted file mode 100755 +index 85611dd..0000000 +--- a/tests/bootloader_configs/boom_off/etc/grub.d/42_boom ++++ /dev/null +@@ -1,35 +0,0 @@ +-#!/bin/sh +-BOOM_CONFIG="/etc/default/boom" +-. $BOOM_CONFIG +- +-BOOM_USE_SUBMENU="${BOOM_USE_SUBMENU:-yes}" +-BOOM_SUBMENU_NAME="${BOOM_SUBMENU_NAME:-Snapshots}" +-BOOM_ENABLE_GRUB="${BOOM_ENABLE_GRUB:-no}" +- +-# Indentation for body of submenu commands +-SUBMENU_PREFIX=" " +- +-INSMOD_CMD="insmod blscfg" +-IMPORT_CMD="bls_import" +- +-# Test whether boom grub menu entries are enabled +-if [ "$BOOM_ENABLE_GRUB" = "no" -o "$BOOM_ENABLE_GRUB" = "n" ]; then +- exit +-fi +- +-# Do not generate grub configuration unless boom entries have +-# been configured. +-if [ -z "$(boom list --noheadings)" ]; then +- exit +-fi +- +-# Optional submenu support +-if [ "$BOOM_USE_SUBMENU" = "yes" -o "$BOOM_SUBMENU_NAME" = "y" ]; then +- echo "submenu \"$BOOM_SUBMENU_NAME\" {" +- echo "${SUBMENU_PREFIX}${INSMOD_CMD}" +- echo "${SUBMENU_PREFIX}${IMPORT_CMD}" +- echo "}" +-else +- echo ${INSMOD_CMD} +- echo ${IMPORT_CMD} +-fi +diff --git a/tests/bootloader_configs/boom_on/boot/grub2/grub.cfg b/tests/bootloader_configs/boom_on/boot/grub2/grub.cfg +deleted file mode 100644 +index 4e94cc8..0000000 +--- a/tests/bootloader_configs/boom_on/boot/grub2/grub.cfg ++++ /dev/null +@@ -1,10 +0,0 @@ +-# +-# Fake grub.cfg for check_bootloader() tests. +-# +- +-### BEGIN /etc/grub.d/42_boom ### +-submenu "Snapshots" { +- insmod blscfg +- bls_import +-} +-### END /etc/grub.d/42_boom ### +diff --git a/tests/bootloader_configs/boom_on/etc/default/boom b/tests/bootloader_configs/boom_on/etc/default/boom +deleted file mode 100644 +index cd5f772..0000000 +--- a/tests/bootloader_configs/boom_on/etc/default/boom ++++ /dev/null +@@ -1,3 +0,0 @@ +-BOOM_USE_SUBMENU="yes" +-BOOM_SUBMENU_NAME="Snapshots" +-BOOM_ENABLE_GRUB="yes" +diff --git a/tests/bootloader_configs/boom_on/etc/grub.d/42_boom b/tests/bootloader_configs/boom_on/etc/grub.d/42_boom +deleted file mode 100755 +index 85611dd..0000000 +--- a/tests/bootloader_configs/boom_on/etc/grub.d/42_boom ++++ /dev/null +@@ -1,35 +0,0 @@ +-#!/bin/sh +-BOOM_CONFIG="/etc/default/boom" +-. $BOOM_CONFIG +- +-BOOM_USE_SUBMENU="${BOOM_USE_SUBMENU:-yes}" +-BOOM_SUBMENU_NAME="${BOOM_SUBMENU_NAME:-Snapshots}" +-BOOM_ENABLE_GRUB="${BOOM_ENABLE_GRUB:-no}" +- +-# Indentation for body of submenu commands +-SUBMENU_PREFIX=" " +- +-INSMOD_CMD="insmod blscfg" +-IMPORT_CMD="bls_import" +- +-# Test whether boom grub menu entries are enabled +-if [ "$BOOM_ENABLE_GRUB" = "no" -o "$BOOM_ENABLE_GRUB" = "n" ]; then +- exit +-fi +- +-# Do not generate grub configuration unless boom entries have +-# been configured. +-if [ -z "$(boom list --noheadings)" ]; then +- exit +-fi +- +-# Optional submenu support +-if [ "$BOOM_USE_SUBMENU" = "yes" -o "$BOOM_SUBMENU_NAME" = "y" ]; then +- echo "submenu \"$BOOM_SUBMENU_NAME\" {" +- echo "${SUBMENU_PREFIX}${INSMOD_CMD}" +- echo "${SUBMENU_PREFIX}${IMPORT_CMD}" +- echo "}" +-else +- echo ${INSMOD_CMD} +- echo ${IMPORT_CMD} +-fi +diff --git a/tests/bootloader_configs/boom_on/boot/boom/boom.conf b/tests/bootloader_configs/default/boot/boom/boom.conf +similarity index 100% +rename from tests/bootloader_configs/boom_on/boot/boom/boom.conf +rename to tests/bootloader_configs/default/boot/boom/boom.conf +diff --git a/tests/bootloader_configs/boom_on/boot/boom/hosts/1a979bb835db0ce920557cc4acde98e84f671e3b-localhost-testing.host b/tests/bootloader_configs/default/boot/boom/hosts/1a979bb835db0ce920557cc4acde98e84f671e3b-localhost-testing.host +similarity index 100% +rename from tests/bootloader_configs/boom_on/boot/boom/hosts/1a979bb835db0ce920557cc4acde98e84f671e3b-localhost-testing.host +rename to tests/bootloader_configs/default/boot/boom/hosts/1a979bb835db0ce920557cc4acde98e84f671e3b-localhost-testing.host +diff --git a/tests/bootloader_configs/boom_on/boot/boom/hosts/2b4048d37f3c42b1d5e2a9ede501b2815fac9c69-localhost.host b/tests/bootloader_configs/default/boot/boom/hosts/2b4048d37f3c42b1d5e2a9ede501b2815fac9c69-localhost.host +similarity index 100% +rename from tests/bootloader_configs/boom_on/boot/boom/hosts/2b4048d37f3c42b1d5e2a9ede501b2815fac9c69-localhost.host +rename to tests/bootloader_configs/default/boot/boom/hosts/2b4048d37f3c42b1d5e2a9ede501b2815fac9c69-localhost.host +diff --git a/tests/bootloader_configs/boom_on/boot/boom/hosts/373ccd1b66af9058ce49f0ba735fe63c50ba1d98-localhost-ALABEL.host b/tests/bootloader_configs/default/boot/boom/hosts/373ccd1b66af9058ce49f0ba735fe63c50ba1d98-localhost-ALABEL.host +similarity index 100% +rename from tests/bootloader_configs/boom_on/boot/boom/hosts/373ccd1b66af9058ce49f0ba735fe63c50ba1d98-localhost-ALABEL.host +rename to tests/bootloader_configs/default/boot/boom/hosts/373ccd1b66af9058ce49f0ba735fe63c50ba1d98-localhost-ALABEL.host +diff --git a/tests/bootloader_configs/boom_on/boot/boom/hosts/badbadbad-5ebcb1fa34dd831bf37c27caf168695409e2f0b4-localhost.host b/tests/bootloader_configs/default/boot/boom/hosts/badbadbad-5ebcb1fa34dd831bf37c27caf168695409e2f0b4-localhost.host +similarity index 100% +rename from tests/bootloader_configs/boom_on/boot/boom/hosts/badbadbad-5ebcb1fa34dd831bf37c27caf168695409e2f0b4-localhost.host +rename to tests/bootloader_configs/default/boot/boom/hosts/badbadbad-5ebcb1fa34dd831bf37c27caf168695409e2f0b4-localhost.host +diff --git a/tests/bootloader_configs/boom_on/boot/boom/hosts/cb7b3ebbd37511ed08919f7561c5ae6663ab027f-qux.host b/tests/bootloader_configs/default/boot/boom/hosts/cb7b3ebbd37511ed08919f7561c5ae6663ab027f-qux.host +similarity index 100% +rename from tests/bootloader_configs/boom_on/boot/boom/hosts/cb7b3ebbd37511ed08919f7561c5ae6663ab027f-qux.host +rename to tests/bootloader_configs/default/boot/boom/hosts/cb7b3ebbd37511ed08919f7561c5ae6663ab027f-qux.host +diff --git a/tests/bootloader_configs/boom_on/boot/boom/profiles/01f4a140de8c7cb9083be599e61d26bdff2c2c97-debian8.profile b/tests/bootloader_configs/default/boot/boom/profiles/01f4a140de8c7cb9083be599e61d26bdff2c2c97-debian8.profile +similarity index 100% +rename from tests/bootloader_configs/boom_on/boot/boom/profiles/01f4a140de8c7cb9083be599e61d26bdff2c2c97-debian8.profile +rename to tests/bootloader_configs/default/boot/boom/profiles/01f4a140de8c7cb9083be599e61d26bdff2c2c97-debian8.profile +diff --git a/tests/bootloader_configs/boom_on/boot/boom/profiles/21e37c8002f33c177524192b15d91dc9612343a3-ubuntu16.04.profile b/tests/bootloader_configs/default/boot/boom/profiles/21e37c8002f33c177524192b15d91dc9612343a3-ubuntu16.04.profile +similarity index 100% +rename from tests/bootloader_configs/boom_on/boot/boom/profiles/21e37c8002f33c177524192b15d91dc9612343a3-ubuntu16.04.profile +rename to tests/bootloader_configs/default/boot/boom/profiles/21e37c8002f33c177524192b15d91dc9612343a3-ubuntu16.04.profile +diff --git a/tests/bootloader_configs/boom_on/boot/boom/profiles/28851f93a99cad97a0082fcd0270da994b2bff7a-newos1.profile b/tests/bootloader_configs/default/boot/boom/profiles/28851f93a99cad97a0082fcd0270da994b2bff7a-newos1.profile +similarity index 100% +rename from tests/bootloader_configs/boom_on/boot/boom/profiles/28851f93a99cad97a0082fcd0270da994b2bff7a-newos1.profile +rename to tests/bootloader_configs/default/boot/boom/profiles/28851f93a99cad97a0082fcd0270da994b2bff7a-newos1.profile +diff --git a/tests/bootloader_configs/boom_on/boot/boom/profiles/3ee2c8b6e7b5043d305bc2850ba01f4838739a1b-nooptions1.profile b/tests/bootloader_configs/default/boot/boom/profiles/3ee2c8b6e7b5043d305bc2850ba01f4838739a1b-nooptions1.profile +similarity index 100% +rename from tests/bootloader_configs/boom_on/boot/boom/profiles/3ee2c8b6e7b5043d305bc2850ba01f4838739a1b-nooptions1.profile +rename to tests/bootloader_configs/default/boot/boom/profiles/3ee2c8b6e7b5043d305bc2850ba01f4838739a1b-nooptions1.profile +diff --git a/tests/bootloader_configs/boom_on/boot/boom/profiles/3fc389bba581e5b20c6a46c7fc31b04be465e973-rhel7.2.profile b/tests/bootloader_configs/default/boot/boom/profiles/3fc389bba581e5b20c6a46c7fc31b04be465e973-rhel7.2.profile +similarity index 100% +rename from tests/bootloader_configs/boom_on/boot/boom/profiles/3fc389bba581e5b20c6a46c7fc31b04be465e973-rhel7.2.profile +rename to tests/bootloader_configs/default/boot/boom/profiles/3fc389bba581e5b20c6a46c7fc31b04be465e973-rhel7.2.profile +diff --git a/tests/bootloader_configs/boom_on/boot/boom/profiles/3fda8a315ae33e869ba1756cce40c7d8c4c24db9-blanks1.profile b/tests/bootloader_configs/default/boot/boom/profiles/3fda8a315ae33e869ba1756cce40c7d8c4c24db9-blanks1.profile +similarity index 100% +rename from tests/bootloader_configs/boom_on/boot/boom/profiles/3fda8a315ae33e869ba1756cce40c7d8c4c24db9-blanks1.profile +rename to tests/bootloader_configs/default/boot/boom/profiles/3fda8a315ae33e869ba1756cce40c7d8c4c24db9-blanks1.profile +diff --git a/tests/bootloader_configs/boom_on/boot/boom/profiles/418203ef8b710a2dc125676933747d9c893374db-ubuntu17.04.profile b/tests/bootloader_configs/default/boot/boom/profiles/418203ef8b710a2dc125676933747d9c893374db-ubuntu17.04.profile +similarity index 100% +rename from tests/bootloader_configs/boom_on/boot/boom/profiles/418203ef8b710a2dc125676933747d9c893374db-ubuntu17.04.profile +rename to tests/bootloader_configs/default/boot/boom/profiles/418203ef8b710a2dc125676933747d9c893374db-ubuntu17.04.profile +diff --git a/tests/bootloader_configs/boom_on/boot/boom/profiles/6bae4a4aea177592284ef45163428dd58023854d-debian7.profile b/tests/bootloader_configs/default/boot/boom/profiles/6bae4a4aea177592284ef45163428dd58023854d-debian7.profile +similarity index 100% +rename from tests/bootloader_configs/boom_on/boot/boom/profiles/6bae4a4aea177592284ef45163428dd58023854d-debian7.profile +rename to tests/bootloader_configs/default/boot/boom/profiles/6bae4a4aea177592284ef45163428dd58023854d-debian7.profile +diff --git a/tests/bootloader_configs/boom_on/boot/boom/profiles/6bf746bb7231693b2903585f171e4290ff0602b5-fedora24.profile b/tests/bootloader_configs/default/boot/boom/profiles/6bf746bb7231693b2903585f171e4290ff0602b5-fedora24.profile +similarity index 100% +rename from tests/bootloader_configs/boom_on/boot/boom/profiles/6bf746bb7231693b2903585f171e4290ff0602b5-fedora24.profile +rename to tests/bootloader_configs/default/boot/boom/profiles/6bf746bb7231693b2903585f171e4290ff0602b5-fedora24.profile +diff --git a/tests/bootloader_configs/boom_on/boot/boom/profiles/6cc6727da76d21db7d39e0abf8c265ffb144d6ca-comments1.profile b/tests/bootloader_configs/default/boot/boom/profiles/6cc6727da76d21db7d39e0abf8c265ffb144d6ca-comments1.profile +similarity index 100% +rename from tests/bootloader_configs/boom_on/boot/boom/profiles/6cc6727da76d21db7d39e0abf8c265ffb144d6ca-comments1.profile +rename to tests/bootloader_configs/default/boot/boom/profiles/6cc6727da76d21db7d39e0abf8c265ffb144d6ca-comments1.profile +diff --git a/tests/bootloader_configs/boom_on/boot/boom/profiles/7dbe237be02bc028a95148659c5baaa499259bbc-opensuse42.1.profile b/tests/bootloader_configs/default/boot/boom/profiles/7dbe237be02bc028a95148659c5baaa499259bbc-opensuse42.1.profile +similarity index 100% +rename from tests/bootloader_configs/boom_on/boot/boom/profiles/7dbe237be02bc028a95148659c5baaa499259bbc-opensuse42.1.profile +rename to tests/bootloader_configs/default/boot/boom/profiles/7dbe237be02bc028a95148659c5baaa499259bbc-opensuse42.1.profile +diff --git a/tests/bootloader_configs/boom_on/boot/boom/profiles/81a78ae30161f02d8b2e6092bde6b789d9a3c21b-ubuntu14.04.profile b/tests/bootloader_configs/default/boot/boom/profiles/81a78ae30161f02d8b2e6092bde6b789d9a3c21b-ubuntu14.04.profile +similarity index 100% +rename from tests/bootloader_configs/boom_on/boot/boom/profiles/81a78ae30161f02d8b2e6092bde6b789d9a3c21b-ubuntu14.04.profile +rename to tests/bootloader_configs/default/boot/boom/profiles/81a78ae30161f02d8b2e6092bde6b789d9a3c21b-ubuntu14.04.profile +diff --git a/tests/bootloader_configs/boom_on/boot/boom/profiles/9736c347ccb724368be04e51bb25687a361e535c-fedora25.profile b/tests/bootloader_configs/default/boot/boom/profiles/9736c347ccb724368be04e51bb25687a361e535c-fedora25.profile +similarity index 100% +rename from tests/bootloader_configs/boom_on/boot/boom/profiles/9736c347ccb724368be04e51bb25687a361e535c-fedora25.profile +rename to tests/bootloader_configs/default/boot/boom/profiles/9736c347ccb724368be04e51bb25687a361e535c-fedora25.profile +diff --git a/tests/bootloader_configs/boom_on/boot/boom/profiles/987f0daf2d004093d71ca678fea89ef1989695b3-nobtrfs1.profile b/tests/bootloader_configs/default/boot/boom/profiles/987f0daf2d004093d71ca678fea89ef1989695b3-nobtrfs1.profile +similarity index 100% +rename from tests/bootloader_configs/boom_on/boot/boom/profiles/987f0daf2d004093d71ca678fea89ef1989695b3-nobtrfs1.profile +rename to tests/bootloader_configs/default/boot/boom/profiles/987f0daf2d004093d71ca678fea89ef1989695b3-nobtrfs1.profile +diff --git a/tests/bootloader_configs/boom_on/boot/boom/profiles/98c3edb94b7b3c8c95cb7d93f75693d2b25f764d-rhel6.profile b/tests/bootloader_configs/default/boot/boom/profiles/98c3edb94b7b3c8c95cb7d93f75693d2b25f764d-rhel6.profile +similarity index 100% +rename from tests/bootloader_configs/boom_on/boot/boom/profiles/98c3edb94b7b3c8c95cb7d93f75693d2b25f764d-rhel6.profile +rename to tests/bootloader_configs/default/boot/boom/profiles/98c3edb94b7b3c8c95cb7d93f75693d2b25f764d-rhel6.profile +diff --git a/tests/bootloader_configs/boom_on/boot/boom/profiles/9cb53ddda889d6285fd9ab985a4c47025884999f-fedora24.profile b/tests/bootloader_configs/default/boot/boom/profiles/9cb53ddda889d6285fd9ab985a4c47025884999f-fedora24.profile +similarity index 100% +rename from tests/bootloader_configs/boom_on/boot/boom/profiles/9cb53ddda889d6285fd9ab985a4c47025884999f-fedora24.profile +rename to tests/bootloader_configs/default/boot/boom/profiles/9cb53ddda889d6285fd9ab985a4c47025884999f-fedora24.profile +diff --git a/tests/bootloader_configs/boom_on/boot/boom/profiles/README b/tests/bootloader_configs/default/boot/boom/profiles/README +similarity index 100% +rename from tests/bootloader_configs/boom_on/boot/boom/profiles/README +rename to tests/bootloader_configs/default/boot/boom/profiles/README +diff --git a/tests/bootloader_configs/boom_on/boot/boom/profiles/af602322b29a22d002e6cb7c8762cb198a8ba49e-opensuse42.3.profile b/tests/bootloader_configs/default/boot/boom/profiles/af602322b29a22d002e6cb7c8762cb198a8ba49e-opensuse42.3.profile +similarity index 100% +rename from tests/bootloader_configs/boom_on/boot/boom/profiles/af602322b29a22d002e6cb7c8762cb198a8ba49e-opensuse42.3.profile +rename to tests/bootloader_configs/default/boot/boom/profiles/af602322b29a22d002e6cb7c8762cb198a8ba49e-opensuse42.3.profile +diff --git a/tests/bootloader_configs/boom_on/boot/boom/profiles/b730331f540c416bb914418b051e2d8d72d13b32-rhel5.profile b/tests/bootloader_configs/default/boot/boom/profiles/b730331f540c416bb914418b051e2d8d72d13b32-rhel5.profile +similarity index 100% +rename from tests/bootloader_configs/boom_on/boot/boom/profiles/b730331f540c416bb914418b051e2d8d72d13b32-rhel5.profile +rename to tests/bootloader_configs/default/boot/boom/profiles/b730331f540c416bb914418b051e2d8d72d13b32-rhel5.profile +diff --git a/tests/bootloader_configs/boom_on/boot/boom/profiles/b99ea5fd28c19c01ce2081e9158eafa1920fa632-rhel8.profile b/tests/bootloader_configs/default/boot/boom/profiles/b99ea5fd28c19c01ce2081e9158eafa1920fa632-rhel8.profile +similarity index 100% +rename from tests/bootloader_configs/boom_on/boot/boom/profiles/b99ea5fd28c19c01ce2081e9158eafa1920fa632-rhel8.profile +rename to tests/bootloader_configs/default/boot/boom/profiles/b99ea5fd28c19c01ce2081e9158eafa1920fa632-rhel8.profile +diff --git a/tests/bootloader_configs/boom_on/boot/boom/profiles/bab31a35db247122f05658a2721f53c3aae4a039-foo1.profile b/tests/bootloader_configs/default/boot/boom/profiles/bab31a35db247122f05658a2721f53c3aae4a039-foo1.profile +similarity index 100% +rename from tests/bootloader_configs/boom_on/boot/boom/profiles/bab31a35db247122f05658a2721f53c3aae4a039-foo1.profile +rename to tests/bootloader_configs/default/boot/boom/profiles/bab31a35db247122f05658a2721f53c3aae4a039-foo1.profile +diff --git a/tests/bootloader_configs/boom_on/boot/boom/profiles/c0b921ea84dbc5259477cbff7a15b000dd222671-rhel7.profile b/tests/bootloader_configs/default/boot/boom/profiles/c0b921ea84dbc5259477cbff7a15b000dd222671-rhel7.profile +similarity index 100% +rename from tests/bootloader_configs/boom_on/boot/boom/profiles/c0b921ea84dbc5259477cbff7a15b000dd222671-rhel7.profile +rename to tests/bootloader_configs/default/boot/boom/profiles/c0b921ea84dbc5259477cbff7a15b000dd222671-rhel7.profile +diff --git a/tests/bootloader_configs/boom_on/boot/boom/profiles/c48d3c2d3fe9c53384a99fbd402e2ea5bcba5a49-fedora1.profile b/tests/bootloader_configs/default/boot/boom/profiles/c48d3c2d3fe9c53384a99fbd402e2ea5bcba5a49-fedora1.profile +similarity index 100% +rename from tests/bootloader_configs/boom_on/boot/boom/profiles/c48d3c2d3fe9c53384a99fbd402e2ea5bcba5a49-fedora1.profile +rename to tests/bootloader_configs/default/boot/boom/profiles/c48d3c2d3fe9c53384a99fbd402e2ea5bcba5a49-fedora1.profile +diff --git a/tests/bootloader_configs/boom_on/boot/boom/profiles/d3e1bd82b33d0b1da75f0e893d5a30db8e308b58-nolvm1.profile b/tests/bootloader_configs/default/boot/boom/profiles/d3e1bd82b33d0b1da75f0e893d5a30db8e308b58-nolvm1.profile +similarity index 100% +rename from tests/bootloader_configs/boom_on/boot/boom/profiles/d3e1bd82b33d0b1da75f0e893d5a30db8e308b58-nolvm1.profile +rename to tests/bootloader_configs/default/boot/boom/profiles/d3e1bd82b33d0b1da75f0e893d5a30db8e308b58-nolvm1.profile +diff --git a/tests/bootloader_configs/boom_on/boot/boom/profiles/d4439b7d2f928c39f1160c0b0291407e5990b9e0-fedora26.profile b/tests/bootloader_configs/default/boot/boom/profiles/d4439b7d2f928c39f1160c0b0291407e5990b9e0-fedora26.profile +similarity index 100% +rename from tests/bootloader_configs/boom_on/boot/boom/profiles/d4439b7d2f928c39f1160c0b0291407e5990b9e0-fedora26.profile +rename to tests/bootloader_configs/default/boot/boom/profiles/d4439b7d2f928c39f1160c0b0291407e5990b9e0-fedora26.profile +diff --git a/tests/bootloader_configs/boom_on/boot/boom/profiles/efd6d41ee868310fec02d25925688e4840a7869a-rhel4.profile b/tests/bootloader_configs/default/boot/boom/profiles/efd6d41ee868310fec02d25925688e4840a7869a-rhel4.profile +similarity index 100% +rename from tests/bootloader_configs/boom_on/boot/boom/profiles/efd6d41ee868310fec02d25925688e4840a7869a-rhel4.profile +rename to tests/bootloader_configs/default/boot/boom/profiles/efd6d41ee868310fec02d25925688e4840a7869a-rhel4.profile +diff --git a/tests/bootloader_configs/boom_off/boot/grub2/grub.cfg b/tests/bootloader_configs/default/boot/grub2/grub.cfg +similarity index 100% +rename from tests/bootloader_configs/boom_off/boot/grub2/grub.cfg +rename to tests/bootloader_configs/default/boot/grub2/grub.cfg +diff --git a/tests/bootloader_configs/no_boom/boot/grub2/grub.cfg b/tests/bootloader_configs/no_boom/boot/grub2/grub.cfg +deleted file mode 100644 +index 4e94cc8..0000000 +--- a/tests/bootloader_configs/no_boom/boot/grub2/grub.cfg ++++ /dev/null +@@ -1,10 +0,0 @@ +-# +-# Fake grub.cfg for check_bootloader() tests. +-# +- +-### BEGIN /etc/grub.d/42_boom ### +-submenu "Snapshots" { +- insmod blscfg +- bls_import +-} +-### END /etc/grub.d/42_boom ### +diff --git a/tests/bootloader_configs/no_boom/etc/grub.d/42_boom b/tests/bootloader_configs/no_boom/etc/grub.d/42_boom +deleted file mode 100755 +index 85611dd..0000000 +--- a/tests/bootloader_configs/no_boom/etc/grub.d/42_boom ++++ /dev/null +@@ -1,35 +0,0 @@ +-#!/bin/sh +-BOOM_CONFIG="/etc/default/boom" +-. $BOOM_CONFIG +- +-BOOM_USE_SUBMENU="${BOOM_USE_SUBMENU:-yes}" +-BOOM_SUBMENU_NAME="${BOOM_SUBMENU_NAME:-Snapshots}" +-BOOM_ENABLE_GRUB="${BOOM_ENABLE_GRUB:-no}" +- +-# Indentation for body of submenu commands +-SUBMENU_PREFIX=" " +- +-INSMOD_CMD="insmod blscfg" +-IMPORT_CMD="bls_import" +- +-# Test whether boom grub menu entries are enabled +-if [ "$BOOM_ENABLE_GRUB" = "no" -o "$BOOM_ENABLE_GRUB" = "n" ]; then +- exit +-fi +- +-# Do not generate grub configuration unless boom entries have +-# been configured. +-if [ -z "$(boom list --noheadings)" ]; then +- exit +-fi +- +-# Optional submenu support +-if [ "$BOOM_USE_SUBMENU" = "yes" -o "$BOOM_SUBMENU_NAME" = "y" ]; then +- echo "submenu \"$BOOM_SUBMENU_NAME\" {" +- echo "${SUBMENU_PREFIX}${INSMOD_CMD}" +- echo "${SUBMENU_PREFIX}${IMPORT_CMD}" +- echo "}" +-else +- echo ${INSMOD_CMD} +- echo ${IMPORT_CMD} +-fi +diff --git a/tests/bootloader_configs/no_grub_d/boot/grub2/grub.cfg b/tests/bootloader_configs/no_grub_d/boot/grub2/grub.cfg +deleted file mode 100644 +index 4e94cc8..0000000 +--- a/tests/bootloader_configs/no_grub_d/boot/grub2/grub.cfg ++++ /dev/null +@@ -1,10 +0,0 @@ +-# +-# Fake grub.cfg for check_bootloader() tests. +-# +- +-### BEGIN /etc/grub.d/42_boom ### +-submenu "Snapshots" { +- insmod blscfg +- bls_import +-} +-### END /etc/grub.d/42_boom ### +diff --git a/tests/bootloader_configs/no_grub_d/etc/default/boom b/tests/bootloader_configs/no_grub_d/etc/default/boom +deleted file mode 100644 +index cd5f772..0000000 +--- a/tests/bootloader_configs/no_grub_d/etc/default/boom ++++ /dev/null +@@ -1,3 +0,0 @@ +-BOOM_USE_SUBMENU="yes" +-BOOM_SUBMENU_NAME="Snapshots" +-BOOM_ENABLE_GRUB="yes" +diff --git a/tests/bootloader_tests.py b/tests/bootloader_tests.py +index 7126766..f6462e3 100644 +--- a/tests/bootloader_tests.py ++++ b/tests/bootloader_tests.py +@@ -1171,34 +1171,10 @@ class BootLoaderTestsWithData(unittest.TestCase): + + class BootLoaderTestsBoomOn(BootLoaderTestsWithData): + # Boot config with boom disabled +- bootloader_config = "boom_on" ++ bootloader_config = "default" + + def test_check_bootloader(self): + self.bootloader_config_check(True) + + +-class BootLoaderTestsBoomOff(BootLoaderTestsWithData): +- # Boot config with boom disabled +- bootloader_config = "boom_off" +- +- def test_check_bootloader(self): +- self.bootloader_config_check(True) +- +- +-class BootLoaderTestsNoBoom(BootLoaderTestsWithData): +- # Boot config with no boom configuration +- bootloader_config = "no_boom" +- +- def test_check_bootloader(self): +- self.bootloader_config_check(False) +- +- +-class BootLoaderTestsNoGrubD(BootLoaderTestsWithData): +- # Boot config with no boom configuration +- bootloader_config = "no_grub_d" +- +- def test_check_bootloader(self): +- self.bootloader_config_check(False) +- +- + # vim: set et ts=4 sw=4 : +-- +2.45.2 + diff --git a/0008-boom.command-add-new-os-release-values-to-Red-Hat-op.patch b/0008-boom.command-add-new-os-release-values-to-Red-Hat-op.patch new file mode 100644 index 0000000..ab27faf --- /dev/null +++ b/0008-boom.command-add-new-os-release-values-to-Red-Hat-op.patch @@ -0,0 +1,34 @@ +From e58bc7b29ac58629b0a93b1e38a4fa2efd0017b6 Mon Sep 17 00:00:00 2001 +From: "Bryn M. Reeves" +Date: Tue, 14 Jun 2022 09:31:33 -0400 +Subject: [PATCH 08/11] boom.command: add new os-release values to Red Hat + optional keys list + +Add "Red Hat Enterprise Linux" (NAME for el8 onwards), and "Fedora +Linux" (NAME for fc35 onwards) to the table of names to automatically +enable grub optional keys for. + +Signed-off-by: Bryn M. Reeves +--- + boom/command.py | 2 ++ + 1 file changed, 2 insertions(+) + +diff --git a/boom/command.py b/boom/command.py +index feb5b65..6aca918 100644 +--- a/boom/command.py ++++ b/boom/command.py +@@ -1116,9 +1116,11 @@ def _default_optional_keys(osp): + """ + all_optional_keys = "grub_users grub_arg grub_class id" + _default_optional_keys = [ ++ "Red Hat Enterprise Linux", + "Red Hat Enterprise Linux Server", + "Red Hat Enterprise Linux Workstation", + "CentOS Linux", ++ "Fedora Linux", + "Fedora" + ] + if osp.os_name in _default_optional_keys: +-- +2.45.2 + diff --git a/0009-boom-remove-BOOM_ENTRY_OPTIONS-hack-from-BootEntry._.patch b/0009-boom-remove-BOOM_ENTRY_OPTIONS-hack-from-BootEntry._.patch new file mode 100644 index 0000000..20304f9 --- /dev/null +++ b/0009-boom-remove-BOOM_ENTRY_OPTIONS-hack-from-BootEntry._.patch @@ -0,0 +1,69 @@ +From 115259492699a101bc6f9497bb438194cbe4d042 Mon Sep 17 00:00:00 2001 +From: "Bryn M. Reeves" +Date: Fri, 16 Jul 2021 18:11:07 +0100 +Subject: [PATCH 09/11] boom: remove BOOM_ENTRY_OPTIONS hack from + BootEntry.__from_data() + +Commit 92c2bce3 moved logic for accounting for add/del opts from +the BootParams.from_entry() method into BootEntry.__from_data(). +Although this is the more correct location to make these changes +the rewriting of the stored BOOM_ENTRY_OPTIONS value is actually +redundant: the entire value will be cleared by the pop-if-set +logic applied to all template-generated keys in the final stage +of loading a BootEntry from an entry_data array. + +Additionally the logic conflicts with the handling of host profile +options modifications causing entries with an attached HostProfile +to unexpectedly change boot_id. + +Remove the special handling of BOOM_ENTRY_OPTIONS and simplify the +BootEntry.__from_data() method. + +Signed-off-by: Bryn M. Reeves +--- + boom/bootloader.py | 19 +------------------ + 1 file changed, 1 insertion(+), 18 deletions(-) + +diff --git a/boom/bootloader.py b/boom/bootloader.py +index 3802ca8..feb669a 100644 +--- a/boom/bootloader.py ++++ b/boom/bootloader.py +@@ -1360,34 +1360,17 @@ class BootEntry(object): + self.machine_id = self.machine_id or "" + self.architecture = self.architecture or "" + +- boot_id = self.boot_id + if boot_params: + self.bp = boot_params + # boot_params is always authoritative + self._entry_data[BOOM_ENTRY_VERSION] = self.bp.version + else: + _log_debug_entry("Initialising BootParams() from " +- "BootEntry(boot_id='%s')" % boot_id) ++ "BootEntry(boot_id='%s')" % self.boot_id) + # Attempt to recover BootParams from entry data + self._bp = BootParams.from_entry(self) + self._bp_generation = self._bp.generation + +- if BOOM_ENTRY_OPTIONS in self._entry_data: +- orig_options = self._entry_data[BOOM_ENTRY_OPTIONS] +- option_words = self.options.split() +- +- # Remove add_opts options from BootEntry stored options +- opts = [opt for opt in option_words if opt not in self.bp.add_opts] +- self._entry_data[BOOM_ENTRY_OPTIONS] = " ".join(opts) +- +- # Test whether the re-generated options match the stored values. +- if boot_id != self.__generate_boot_id(): +- self._entry_data[BOOM_ENTRY_OPTIONS] = orig_options +- self.read_only = True +- _log_warn("Options for BootEntry(boot_id=%s) do not match " +- "OsProfile: marking read-only" % +- boot_id[:min_boot_id_width()]) +- + if self.machine_id: + # Wrap OsProfile in HostProfile if available + self.__match_host_profile() +-- +2.45.2 + diff --git a/0010-Revert-boom.cache-ignore-foreign-boot-entries-when-r.patch b/0010-Revert-boom.cache-ignore-foreign-boot-entries-when-r.patch new file mode 100644 index 0000000..54b9d27 --- /dev/null +++ b/0010-Revert-boom.cache-ignore-foreign-boot-entries-when-r.patch @@ -0,0 +1,44 @@ +From 8bda9077c79c8dc61ba35a769cec7287ab7ca0ef Mon Sep 17 00:00:00 2001 +From: "Bryn M. Reeves" +Date: Wed, 8 May 2024 18:43:52 +0100 +Subject: [PATCH 11/11] Revert "boom.cache: ignore foreign boot entries when + reference counting" + +This reverts commit f9704eea7b973863ea5a2bf6ad13cd37abce64f6. + +The reason for ignoring foreign boot entries when determining reference +counts no longer exists (a spurious warning when creating entries with +--backup). + +This commit causes problems if a boom-managed boot entry is modified +outside of boom's control (e.g. by kdumctl/grubby appending a modified +crashkernel argument): since boom sees the entry as foreign the images +used by it end up with a reference count of zero and are automatically +removed. + +Revert the above commit to prevent this behaviour. + +Signed-off-by: Bryn M. Reeves +--- + boom/cache.py | 5 +---- + 1 file changed, 1 insertion(+), 4 deletions(-) + +diff --git a/boom/cache.py b/boom/cache.py +index f4a5391..d84a244 100644 +--- a/boom/cache.py ++++ b/boom/cache.py +@@ -572,10 +572,7 @@ class CacheEntry(object): + """Return the current number of boot entries that reference + this cache entry. + """ +- entries = find_entries(Selection(path=self.path)) +- # Ignore foreign boot entries +- entries = [entry for entry in entries if not entry.read_only] +- return len(entries) ++ return len(find_entries(Selection(path=self.path))) + + #: The list of cached images for this CacheEntry sorted by increasing age + images = [] +-- +2.45.2 + diff --git a/boom-boot.spec b/boom-boot.spec index 8a5c6a4..e91aecc 100644 --- a/boom-boot.spec +++ b/boom-boot.spec @@ -3,7 +3,7 @@ Name: boom-boot Version: 1.3 -Release: 2%{?dist} +Release: 3%{?dist} Summary: %{summary} License: GPLv2 @@ -16,6 +16,11 @@ Patch3: 0003-report-fix-docstring-typo-objecct.patch Patch4: 0004-command-fix-docstring-typo-or-OsError.patch # BZ 1929838: Patch5: 0005-command-fix-optional-BLS-key-to-command-line-argumen.patch +Patch6: 0006-boom.bootloader-simplify-bootloader-integration-chec.patch +Patch7: 0007-boom-drop-Grub2-integration-scripts-and-defaults-fil.patch +Patch8: 0008-boom.command-add-new-os-release-values-to-Red-Hat-op.patch +Patch9: 0009-boom-remove-BOOM_ENTRY_OPTIONS-hack-from-BootEntry._.patch +Patch10: 0010-Revert-boom.cache-ignore-foreign-boot-entries-when-r.patch BuildArch: noarch @@ -28,6 +33,7 @@ BuildRequires: make Requires: python3-boom = %{version}-%{release} Requires: %{name}-conf = %{version}-%{release} +Obsoletes: boom-boot-grub2 <= 1.3 %package -n python3-boom Summary: %{summary} @@ -47,10 +53,6 @@ Conflicts: boom %package conf Summary: %{summary} -%package grub2 -Summary: %{summary} -Supplements: (grub2 and boom-boot = %{version}-%{release}) - %description Boom is a boot manager for Linux systems using boot loaders that support the BootLoader Specification for boot entry configuration. @@ -79,16 +81,6 @@ include this support in both Red Hat Enterprise Linux 7 and Fedora). This package provides configuration files for boom. -%description grub2 -Boom is a boot manager for Linux systems using boot loaders that support -the BootLoader Specification for boot entry configuration. - -Boom requires a BLS compatible boot loader to function: either the -systemd-boot project, or Grub2 with the BLS patch (Red Hat Grub2 builds -include this support in both Red Hat Enterprise Linux 7 and Fedora). - -This package provides integration scripts for grub2 bootloader. - %prep %setup -n boom-%{version} # NOTE: Do not use backup extension - MANIFEST.in is picking them @@ -98,6 +90,11 @@ This package provides integration scripts for grub2 bootloader. %patch3 -p1 %patch4 -p1 %patch5 -p1 +%patch6 -p1 +%patch7 -p1 +%patch8 -p1 +%patch9 -p1 +%patch10 -p1 %build %if 0%{?sphinx_docs} @@ -115,8 +112,6 @@ rm -r doc/_build # Install Grub2 integration scripts mkdir -p ${RPM_BUILD_ROOT}/etc/grub.d mkdir -p ${RPM_BUILD_ROOT}/etc/default -install -m 755 etc/grub.d/42_boom ${RPM_BUILD_ROOT}/etc/grub.d -install -m 644 etc/default/boom ${RPM_BUILD_ROOT}/etc/default # Make configuration directories # mode 0700 - in line with /boot/grub2 directory: @@ -164,14 +159,16 @@ rm doc/conf.py %dir /boot/boom/cache %dir /boot/loader/entries -%files grub2 -%license COPYING -%doc README.md -%{_sysconfdir}/grub.d/42_boom -%config(noreplace) %{_sysconfdir}/default/boom - %changelog +* Tue Jul 30 2024 Bryn M. Reeves 1.3-3 +- Revert "boom.cache: ignore foreign boot entries when reference counting" +- dist: Drop boom-grub2 package from boom.spec +- boom: remove BOOM_ENTRY_OPTIONS hack from BootEntry.__from_data() +- boom.command: add new os-release values to Red Hat optional keys list +- boom: drop Grub2 integration scripts and defaults file +- boom.bootloader: simplify bootloader integration checks + * Tue Jun 15 2021 Marian Csontos 1.3-2 - Fix --grub-id option handling. diff --git a/tests/tests.yml b/tests/tests.yml index 266a980..8d9e10a 100644 --- a/tests/tests.yml +++ b/tests/tests.yml @@ -48,5 +48,4 @@ vgremove -ff boomvg; losetup -D; rm -f /dev/shm/boompv required_packages: - boom-boot - - boom-boot-grub2 - lvm2