Compare commits

..

No commits in common. 'c8' and 'c9' have entirely different histories.
c8 ... c9

@ -1 +1 @@
4c95e888f7aecd9dd809c6f0d44ce650a5ae07da SOURCES/boom-1.3.tar.gz bfc523d25c4fad0570307e8003848391fcf2ae8c SOURCES/boom-1.5.1.tar.gz

2
.gitignore vendored

@ -1 +1 @@
SOURCES/boom-1.3.tar.gz SOURCES/boom-1.5.1.tar.gz

@ -0,0 +1,210 @@
From 82ba6ea6411d728f7d3b203caa0710641f74188d Mon Sep 17 00:00:00 2001
From: "Bryn M. Reeves" <bmr@redhat.com>
Date: Thu, 4 May 2023 15:11:59 +0100
Subject: [PATCH 1/3] Fix typos across tree
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
(cherry picked from commit 2ee6810bfbd9e356f2bee3eac4e3b3b87ed21814)
---
README.md | 6 +++---
boom/bootloader.py | 12 ++++++------
boom/cache.py | 2 +-
boom/command.py | 2 +-
boom/report.py | 4 ++--
boom/stratis.py | 2 +-
tests/bootloader_tests.py | 2 +-
tests/command_tests.py | 2 +-
tests/loader/entries/README | 2 +-
9 files changed, 17 insertions(+), 17 deletions(-)
diff --git a/README.md b/README.md
index a1747c2..c6b4ef4 100644
--- a/README.md
+++ b/README.md
@@ -325,7 +325,7 @@ BootEntry.
#### boom cache command
The `boom cache` command gives information about the paths and
-images stored in the boom boot iamge cache. The `boom cache list`
+images stored in the boom boot image cache. The `boom cache list`
command gives information on cache entries in a tabular report
format similar to other `list` commands.
@@ -484,7 +484,7 @@ Created profile with os_id d4439b7:
Options: "root=%{root_device} ro %{root_opts}"
```
-The `--uname-pattern` `OsProfile` property is an otional but recommended
+The `--uname-pattern` `OsProfile` property is an optional but recommended
pattern (regular expression) that should match the UTS release (`uname`)
strings reported by the operating system.
@@ -673,7 +673,7 @@ boot entries:
```
## Python API
-Boom also supports programatic use via a Python API. The API is flexible
+Boom also supports programmatic use via a Python API. The API is flexible
and allows greater customisation than is possible using the command line
tool.
diff --git a/boom/bootloader.py b/boom/bootloader.py
index fdd8c0c..89efd4a 100644
--- a/boom/bootloader.py
+++ b/boom/bootloader.py
@@ -407,7 +407,7 @@ class BootParams(object):
string. The string returned is in the form of a call to the
``BootParams`` constructor.
- :returns: a machine readable string represenatation of this
+ :returns: a machine readable string representation of this
``BootParams`` object.
"""
return self.__str(quote=True, prefix="BootParams(", suffix=")")
@@ -1198,7 +1198,7 @@ class BootEntry(object):
Return a copy of this ``BootEntry``'s values as a list.
- :returns: the current list of ``BotoEntry`` values.
+ :returns: the current list of ``BootEntry`` values.
:rtype: list
"""
values = list(self._entry_data.values())
@@ -1259,7 +1259,7 @@ class BootEntry(object):
self._unwritten = True
def __os_id_from_comment(self, comment):
- """Retrive OsProfile from BootEntry comment.
+ """Retrieve OsProfile from BootEntry comment.
Attempt to set this BootEntry's OsProfile using a comment
string stored in the entry file. The comment must be of the
@@ -1300,7 +1300,7 @@ class BootEntry(object):
Attempt to guess the correct ``OsProfile`` to use with
this ``BootEntry`` by probing each loaded ``OsProfile``
in turn until a profile recognises the entry. If no match
- is found the entrie's ``OsProfile`` is set to ``None``.
+ is found the entry's ``OsProfile`` is set to ``None``.
Probing is only used in the case that a loaded entry has
no embedded OsIdentifier string. All entries written by
@@ -1527,7 +1527,7 @@ class BootEntry(object):
A ``BootParams`` object may be supplied using the
``boot_params`` keyword argument. The object will be used to
- provide values for subsitution using the patterns defined by
+ provide values for substitution using the patterns defined by
the configured ``OsProfile``.
If ``entry_file`` is specified the ``BootEntry`` will be
@@ -1832,7 +1832,7 @@ class BootEntry(object):
return True
def expanded(self):
- """Return a string represenatation of this ``BootEntry``, with
+ """Return a string representation of this ``BootEntry``, with
any bootloader environment variables expanded to their
current values.
diff --git a/boom/cache.py b/boom/cache.py
index dfd8a32..6024f91 100644
--- a/boom/cache.py
+++ b/boom/cache.py
@@ -174,7 +174,7 @@ def _image_id_from_path(img_path):
def drop_cache():
"""Discard the in-memory cache state. Calling this function has
no effect on the persistent cache state but will free all
- in-memory represenatations and clear the cache index.
+ in-memory representations and clear the cache index.
"""
global _index, _paths, _images
_index = {}
diff --git a/boom/command.py b/boom/command.py
index 696313d..ecd8153 100644
--- a/boom/command.py
+++ b/boom/command.py
@@ -3233,7 +3233,7 @@ def main(args):
parser.add_argument("-u", "--uname-pattern", "--unamepattern",
help="A Boom OsProfile uname pattern",
metavar="PATTERN", type=str)
- parser.add_argument("-V", "--verbose", help="Enable verbose ouput",
+ parser.add_argument("-V", "--verbose", help="Enable verbose output",
action="count")
parser.add_argument("-v", "--version", metavar="VERSION", type=str,
help="The kernel version of a boom "
diff --git a/boom/report.py b/boom/report.py
index f7ff4a1..fdbd3ab 100644
--- a/boom/report.py
+++ b/boom/report.py
@@ -446,7 +446,7 @@ class BoomReport(object):
Display a list of valid fields for this ``BoomReport``.
:param fields: The list of fields to display
- :param display_field_types: A boolean controling whether
+ :param display_field_types: A boolean controlling whether
field types (str, SHA, num)
are included in help output
"""
@@ -837,7 +837,7 @@ class BoomReport(object):
each sort key defines its own sort order.
:param row_a: The first row to compare
- :param row_b: The seconf row to compare
+ :param row_b: The second row to compare
"""
for cnt in range(0, row_a._report._keys_count):
sfa = row_a._sort_fields[cnt]
diff --git a/boom/stratis.py b/boom/stratis.py
index 350bc18..ca79d7b 100644
--- a/boom/stratis.py
+++ b/boom/stratis.py
@@ -49,7 +49,7 @@ _STRATISD_SERVICE = "org.storage.stratis3"
_STRATISD_PATH = "/org/storage/stratis3"
#: The DBus name of the pool interface
_POOL_IFACE = "org.storage.stratis3.pool.r0"
-#: The DBus timeout for stratisd in miliseconds
+#: The DBus timeout for stratisd in milliseconds
_STRATISD_TIMEOUT = 120000
#: The DBus ObjectManager interface implemented by stratisd
diff --git a/tests/bootloader_tests.py b/tests/bootloader_tests.py
index 8238d10..e56f2f9 100644
--- a/tests/bootloader_tests.py
+++ b/tests/bootloader_tests.py
@@ -1081,7 +1081,7 @@ class BootLoaderTestsCheckRoot(unittest.TestCase):
Device types in the del_devs list are currently ignored.
Tests using this base class require root privileges in order
- to manipulate device nodes in the test sanbox. These tests
+ to manipulate device nodes in the test sandbox. These tests
are automatically skipped if the suite is run as a normal
user.
"""
diff --git a/tests/command_tests.py b/tests/command_tests.py
index 7af5ea2..5aa904f 100644
--- a/tests/command_tests.py
+++ b/tests/command_tests.py
@@ -2071,7 +2071,7 @@ class CommandTests(unittest.TestCase):
self.assertEqual(r, 0)
def test__edit_profile_cmd(self):
- """Test the _edit_profile_cmd() hander with default args.
+ """Test the _edit_profile_cmd() handler with default args.
"""
args = MockArgs()
args.profile = "d4439b7"
diff --git a/tests/loader/entries/README b/tests/loader/entries/README
index 20ee65b..4407ef2 100644
--- a/tests/loader/entries/README
+++ b/tests/loader/entries/README
@@ -1,6 +1,6 @@
Boot loader entry directory for the boom unit test suite.
-The entries in this directory may contan synthetic test data:
+The entries in this directory may contain synthetic test data:
non-existent kernel versions, and mock OsProfile data.
For examples of actual boom boot entries please refer to the
--
2.40.1

@ -1,22 +0,0 @@
etc/default/boom | 0
tests/bootloader_configs/boom_off/etc/default/boom | 0
tests/bootloader_configs/boom_on/etc/default/boom | 0
tests/bootloader_configs/no_grub_d/etc/default/boom | 0
4 files changed, 0 insertions(+), 0 deletions(-)
mode change 100755 => 100644 etc/default/boom
mode change 100755 => 100644 tests/bootloader_configs/boom_off/etc/default/boom
mode change 100755 => 100644 tests/bootloader_configs/boom_on/etc/default/boom
mode change 100755 => 100644 tests/bootloader_configs/no_grub_d/etc/default/boom
diff --git a/etc/default/boom b/etc/default/boom
old mode 100755
new mode 100644
diff --git a/tests/bootloader_configs/boom_off/etc/default/boom b/tests/bootloader_configs/boom_off/etc/default/boom
old mode 100755
new mode 100644
diff --git a/tests/bootloader_configs/boom_on/etc/default/boom b/tests/bootloader_configs/boom_on/etc/default/boom
old mode 100755
new mode 100644
diff --git a/tests/bootloader_configs/no_grub_d/etc/default/boom b/tests/bootloader_configs/no_grub_d/etc/default/boom
old mode 100755
new mode 100644

@ -1,3 +1,13 @@
From 841e7d3d0dc7ad194e0b82d8cd0930cef1a95301 Mon Sep 17 00:00:00 2001
From: Marian Csontos <mcsontos@redhat.com>
Date: Fri, 29 Nov 2019 10:23:44 +0100
Subject: [PATCH 1/5] man: Fix line starting with '
Lines starting with ' result in macro not defined warnings:
1117: warning: macro `boom' not defined
1118: warning: macro `+'' not defined
---
man/man8/boom.8 | 4 ++-- man/man8/boom.8 | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-) 1 file changed, 2 insertions(+), 2 deletions(-)
@ -16,3 +26,6 @@ index 7b862e7..9eee048 100644
field list. Otherwise the given list of fields replaces the default set field list. Otherwise the given list of fields replaces the default set
of report fields. of report fields.
--
2.34.3

@ -0,0 +1,214 @@
From f98bacd55fd4af5e1efee3fedd90c2c57d99cae7 Mon Sep 17 00:00:00 2001
From: "Bryn M. Reeves" <bmr@redhat.com>
Date: Thu, 4 May 2023 16:37:26 +0100
Subject: [PATCH 2/3] Fix system vs. project import ordering
Resolves: #5
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
(cherry picked from commit d8a7c9f2fbeecd4e291cda751c2dcbd4b1914d75)
---
boom/bootloader.py | 10 +++++-----
boom/cache.py | 6 +++---
boom/command.py | 16 ++++++++--------
boom/config.py | 4 ++--
boom/hostprofile.py | 6 +++---
boom/legacy.py | 6 +++---
boom/osprofile.py | 3 ++-
boom/report.py | 3 ++-
8 files changed, 28 insertions(+), 26 deletions(-)
diff --git a/boom/bootloader.py b/boom/bootloader.py
index 89efd4a..cdee6d9 100644
--- a/boom/bootloader.py
+++ b/boom/bootloader.py
@@ -39,11 +39,6 @@ is also provided in the ``MAP_KEY`` member).
"""
from __future__ import print_function
-from boom import *
-from boom.osprofile import *
-from boom.hostprofile import find_host_profiles
-from boom.stratis import *
-
from os.path import basename, exists as path_exists, join as path_join
from subprocess import Popen, PIPE
from tempfile import mkstemp
@@ -51,6 +46,11 @@ from os import listdir, rename, fdopen, chmod, unlink, fdatasync, stat, dup
from stat import S_ISBLK
from hashlib import sha1
import logging
+
+from boom import *
+from boom.osprofile import *
+from boom.hostprofile import find_host_profiles
+from boom.stratis import *
import re
#: The path to the BLS boot entries directory relative to /boot
diff --git a/boom/cache.py b/boom/cache.py
index 6024f91..b68caac 100644
--- a/boom/cache.py
+++ b/boom/cache.py
@@ -17,9 +17,6 @@ images required to load boom-defined boot entries.
"""
from __future__ import print_function
-from boom import *
-from boom.bootloader import *
-
from hashlib import sha1
from os import chmod, chown, fdatasync, listdir, stat, unlink
from stat import S_ISREG, ST_MODE, ST_UID, ST_GID, ST_MTIME, filemode
@@ -32,6 +29,9 @@ from errno import ENOENT
import shutil
import logging
+from boom import *
+from boom.bootloader import *
+
# Module logging configuration
_log = logging.getLogger(__name__)
_log.set_debug_mask(BOOM_DEBUG_CACHE)
diff --git a/boom/command.py b/boom/command.py
index ecd8153..37172dc 100644
--- a/boom/command.py
+++ b/boom/command.py
@@ -26,6 +26,14 @@ reports using the ``boom.report`` module.
"""
from __future__ import print_function
+from os import environ, uname, getcwd
+from os.path import basename, exists as path_exists, isabs, join, sep
+from argparse import ArgumentParser
+from stat import filemode
+import platform
+import logging
+import re
+
from boom import *
from boom.osprofile import *
from boom.report import *
@@ -35,14 +43,6 @@ from boom.legacy import *
from boom.config import *
from boom.cache import *
-from os import environ, uname, getcwd
-from os.path import basename, exists as path_exists, isabs, join, sep
-from argparse import ArgumentParser
-from stat import filemode
-import platform
-import logging
-import re
-
#: The environment variable from which to take the location of the
#: ``/boot`` file system.
BOOM_BOOT_PATH_ENV = "BOOM_BOOT_PATH"
diff --git a/boom/config.py b/boom/config.py
index c58d3c3..9dae545 100644
--- a/boom/config.py
+++ b/boom/config.py
@@ -20,14 +20,14 @@ the values of configuration keys defined in the boom configuration file.
"""
from __future__ import print_function
-from boom import *
-
from os.path import dirname
from os import fdopen, rename, chmod, fdatasync
from tempfile import mkstemp
import logging
+from boom import *
+
try:
# Python2
from ConfigParser import SafeConfigParser as ConfigParser, ParsingError
diff --git a/boom/hostprofile.py b/boom/hostprofile.py
index d63622f..fea9753 100644
--- a/boom/hostprofile.py
+++ b/boom/hostprofile.py
@@ -31,14 +31,14 @@ property names) are identical to those used by the ``OsProfile`` class.
"""
from __future__ import print_function
-from boom import *
-from boom.osprofile import *
-
from hashlib import sha1
from os.path import join as path_join
import logging
import string
+from boom import *
+from boom.osprofile import *
+
# Module logging configuration
_log = logging.getLogger(__name__)
_log.set_debug_mask(BOOM_DEBUG_PROFILE)
diff --git a/boom/legacy.py b/boom/legacy.py
index 389ed90..715358c 100644
--- a/boom/legacy.py
+++ b/boom/legacy.py
@@ -20,9 +20,6 @@ all entries from the legacy configuration file.
"""
from __future__ import print_function
-from boom import *
-from boom.bootloader import *
-
from subprocess import Popen, PIPE
from os.path import dirname, exists, isabs, join as path_join
from os import chmod, dup, fdatasync, fdopen, rename, unlink
@@ -30,6 +27,9 @@ from tempfile import mkstemp
import logging
import re
+from boom import *
+from boom.bootloader import *
+
#: Format strings use to construct begin/end markers
BOOM_LEGACY_BEGIN_FMT = "#--- BOOM_%s_BEGIN ---"
BOOM_LEGACY_END_FMT = "#--- BOOM_%s_END ---"
diff --git a/boom/osprofile.py b/boom/osprofile.py
index f05671f..e20d2fb 100644
--- a/boom/osprofile.py
+++ b/boom/osprofile.py
@@ -34,7 +34,6 @@ are suitable for display use and are used by default by the
"""
from __future__ import print_function
-from boom import *
from hashlib import sha1
from tempfile import mkstemp
from os.path import basename, join as path_join, exists as path_exists
@@ -42,6 +41,8 @@ from os import fdopen, rename, chmod, unlink, fdatasync
import logging
import re
+from boom import *
+
#: Boom profiles directory name.
BOOM_PROFILES = "profiles"
diff --git a/boom/report.py b/boom/report.py
index fdbd3ab..d024013 100644
--- a/boom/report.py
+++ b/boom/report.py
@@ -29,10 +29,11 @@ mapper reports.
"""
from __future__ import print_function
-from boom import find_minimum_sha_prefix, BOOM_DEBUG_REPORT
import logging
import sys
+from boom import find_minimum_sha_prefix, BOOM_DEBUG_REPORT
+
_log = logging.getLogger(__name__)
_log.set_debug_mask(BOOM_DEBUG_REPORT)
--
2.40.1

@ -0,0 +1,28 @@
From f82215bded722e972a2b358ddd6a45bc36a4a3bb Mon Sep 17 00:00:00 2001
From: "Bryn M. Reeves" <bmr@redhat.com>
Date: Thu, 4 May 2023 18:23:31 +0100
Subject: [PATCH 3/3] boom: fix unclosed file warning for /proc/cmdline
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
(cherry picked from commit bd194eeb646198c28f3e79769175c0cf0843e523)
---
boom/command.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/boom/command.py b/boom/command.py
index 37172dc..07d229a 100644
--- a/boom/command.py
+++ b/boom/command.py
@@ -1923,7 +1923,8 @@ def os_options_from_cmdline():
options = ""
vg_lv_name = None
have_root = False
- cmdline = open("/proc/cmdline").read().strip()
+ with open("/proc/cmdline") as proc_cmdline:
+ cmdline = proc_cmdline.read().strip()
for word in cmdline.split():
if word.startswith("root="):
have_root = True
--
2.40.1

@ -1,16 +0,0 @@
boom/report.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/boom/report.py b/boom/report.py
index 8e55aa3..f7ff4a1 100644
--- a/boom/report.py
+++ b/boom/report.py
@@ -121,7 +121,7 @@ class BoomReportOpts(object):
class BoomReportObjType(object):
"""BoomReportObjType()
- Class representing a type of objecct to be reported on.
+ Class representing a type of object to be reported on.
Instances of ``BoomReportObjType`` must specify an identifier,
a description, and a data function that will return the correct
type of object from a compound object containing data objects

@ -1,16 +0,0 @@
boom/command.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/boom/command.py b/boom/command.py
index be638df..c9c2f6b 100644
--- a/boom/command.py
+++ b/boom/command.py
@@ -657,7 +657,7 @@ def create_entry(title, version, machine_id, root_device, lvm_root_lv=None,
:returns: a ``BootEntry`` object corresponding to the new entry.
:rtype: ``BootEntry``
:raises: ``ValueError`` if either required values are missing or
- a duplicate entry exists, or``OsError`` if an error
+ a duplicate entry exists, or ``OsError`` if an error
occurs while writing the entry file.
"""
if not title and not profile.title:

@ -1,54 +0,0 @@
boom/command.py | 5 +++--
tests/command_tests.py | 16 ++++++++++++++++
2 files changed, 19 insertions(+), 2 deletions(-)
diff --git a/boom/command.py b/boom/command.py
index c9c2f6b..feb5b65 100644
--- a/boom/command.py
+++ b/boom/command.py
@@ -1883,7 +1883,8 @@ def _optional_key_to_arg(optional_key):
_key_map = {
BOOM_ENTRY_GRUB_USERS: "--grub-users",
BOOM_ENTRY_GRUB_ARG: "--grub-arg",
- BOOM_ENTRY_GRUB_CLASS: "--grub-class"
+ BOOM_ENTRY_GRUB_CLASS: "--grub-class",
+ BOOM_ENTRY_GRUB_ID: "--grub-id"
}
return _key_map[optional_key] if optional_key in _key_map else None
@@ -1914,7 +1915,7 @@ def _set_optional_key_defaults(profile, cmd_args):
if bls_key not in profile.optional_keys:
if getattr(cmd_args, bls_key) is not None:
print("Profile with os_id='%s' does not support %s" %
- (profile.disp_os_id, _optional_key_to_arg(bls_key)))
+ (profile.disp_os_id, _optional_key_to_arg(opt_key)))
return 1
else:
if getattr(cmd_args, bls_key) is None:
diff --git a/tests/command_tests.py b/tests/command_tests.py
index 00cda3b..d7a766a 100644
--- a/tests/command_tests.py
+++ b/tests/command_tests.py
@@ -244,6 +244,22 @@ class CommandHelperTests(unittest.TestCase):
(add_opts, del_opts) = _merge_add_del_opts(bp, to_add, to_del)
self.assertEqual(["log_buf_len=16M", "debug"], add_opts)
+ def test__optional_key_to_arg_valid(self):
+ _optional_key_to_arg = boom.command._optional_key_to_arg
+ valid_keys_and_args = {
+ "BOOM_ENTRY_GRUB_USERS": "--grub-users",
+ "BOOM_ENTRY_GRUB_ARG": "--grub-arg",
+ "BOOM_ENTRY_GRUB_CLASS": "--grub-class",
+ "BOOM_ENTRY_GRUB_ID": "--grub-id"
+ }
+ for opt_key in valid_keys_and_args.keys():
+ self.assertEqual(_optional_key_to_arg(opt_key),
+ valid_keys_and_args[opt_key])
+
+ def test__optional_key_to_arg_invalid(self):
+ _optional_key_to_arg = boom.command._optional_key_to_arg
+ self.assertEqual(_optional_key_to_arg("INVALID_KEY"), None)
+
# Default test OsProfile identifiers
test_os_id = "9cb53ddda889d6285fd9ab985a4c47025884999f"

@ -1,13 +0,0 @@
etc/default/boom | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/etc/default/boom b/etc/default/boom
index cd5f772..451cb37 100755
--- a/etc/default/boom
+++ b/etc/default/boom
@@ -1,3 +1,3 @@
-BOOM_USE_SUBMENU="yes"
+BOOM_USE_SUBMENU="no"
BOOM_SUBMENU_NAME="Snapshots"
-BOOM_ENABLE_GRUB="yes"
+BOOM_ENABLE_GRUB="no"

@ -2,26 +2,25 @@
%global sphinx_docs 1 %global sphinx_docs 1
Name: boom-boot Name: boom-boot
Version: 1.3 Version: 1.5.1
Release: 2%{?dist} Release: 1%{?dist}
Summary: %{summary} Summary: %{summary}
License: GPLv2 License: GPLv2
URL: https://github.com/snapshotmanager/boom URL: https://github.com/snapshotmanager/boom
Source0: https://github.com/snapshotmanager/boom/archive/%{version}/boom-%{version}.tar.gz Source0: https://github.com/snapshotmanager/boom/archive/%{version}/boom-%{version}.tar.gz
Patch0: Disable-GRUB2-plugin-on-RHEL-8.patch Patch1: 0001-man-Fix-line-starting-with.patch
Patch1: 0001-etc-Remove-executable-permission-from-etc-default-bo.patch Patch2: 0001-Fix-typos-across-tree.patch
Patch2: 0002-man-Fix-line-starting-with.patch Patch3: 0002-Fix-system-vs.-project-import-ordering.patch
Patch3: 0003-report-fix-docstring-typo-objecct.patch Patch4: 0003-boom-fix-unclosed-file-warning-for-proc-cmdline.patch
Patch4: 0004-command-fix-docstring-typo-or-OsError.patch
# BZ 1929838:
Patch5: 0005-command-fix-optional-BLS-key-to-command-line-argumen.patch
BuildArch: noarch BuildArch: noarch
BuildRequires: make
BuildRequires: python3-setuptools BuildRequires: python3-setuptools
BuildRequires: python3-devel BuildRequires: python3-devel
%if 0%{?sphinx_docs} %if 0%{?sphinx_docs}
BuildRequires: python3-dbus
BuildRequires: python3-sphinx BuildRequires: python3-sphinx
%endif %endif
BuildRequires: make BuildRequires: make
@ -29,12 +28,13 @@ BuildRequires: make
Requires: python3-boom = %{version}-%{release} Requires: python3-boom = %{version}-%{release}
Requires: %{name}-conf = %{version}-%{release} Requires: %{name}-conf = %{version}-%{release}
Obsoletes: boom-boot-grub2 <= 1.3
# boom-grub2 was not an official name of subpackage in fedora, but was used upstream:
Obsoletes: boom-grub2 <= 1.3
%package -n python3-boom %package -n python3-boom
Summary: %{summary} Summary: %{summary}
# Unsupported on RHEL-8 :-( %{?python_provide:%python_provide python3-boom}
#%%{?python_provide:%%python_provide python%%{__python_pkgversion}-boom}
# Do we need this??? IMO not
#Provides: python3-boom = %%{version}-%%{release}
Requires: %{__python3} Requires: %{__python3}
Recommends: (lvm2 or brtfs-progs) Recommends: (lvm2 or brtfs-progs)
Recommends: %{name}-conf = %{version}-%{release} Recommends: %{name}-conf = %{version}-%{release}
@ -47,10 +47,6 @@ Conflicts: boom
%package conf %package conf
Summary: %{summary} Summary: %{summary}
%package grub2
Summary: %{summary}
Supplements: (grub2 and boom-boot = %{version}-%{release})
%description %description
Boom is a boot manager for Linux systems using boot loaders that support Boom is a boot manager for Linux systems using boot loaders that support
the BootLoader Specification for boot entry configuration. the BootLoader Specification for boot entry configuration.
@ -79,25 +75,8 @@ include this support in both Red Hat Enterprise Linux 7 and Fedora).
This package provides configuration files for boom. 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 %prep
%setup -n boom-%{version} %autosetup -p1 -n boom-%{version}
# NOTE: Do not use backup extension - MANIFEST.in is picking them
%patch0 -p1
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%build %build
%if 0%{?sphinx_docs} %if 0%{?sphinx_docs}
@ -112,12 +91,6 @@ rm -r doc/_build
%install %install
%py3_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 # Make configuration directories
# mode 0700 - in line with /boot/grub2 directory: # mode 0700 - in line with /boot/grub2 directory:
install -d -m 700 ${RPM_BUILD_ROOT}/boot/boom/profiles install -d -m 700 ${RPM_BUILD_ROOT}/boot/boom/profiles
@ -125,7 +98,6 @@ install -d -m 700 ${RPM_BUILD_ROOT}/boot/boom/hosts
install -d -m 700 ${RPM_BUILD_ROOT}/boot/loader/entries install -d -m 700 ${RPM_BUILD_ROOT}/boot/loader/entries
install -d -m 700 ${RPM_BUILD_ROOT}/boot/boom/cache install -d -m 700 ${RPM_BUILD_ROOT}/boot/boom/cache
install -m 644 examples/boom.conf ${RPM_BUILD_ROOT}/boot/boom install -m 644 examples/boom.conf ${RPM_BUILD_ROOT}/boot/boom
install -m 644 examples/profiles/*.profile ${RPM_BUILD_ROOT}/boot/boom/profiles
mkdir -p ${RPM_BUILD_ROOT}/%{_mandir}/man8 mkdir -p ${RPM_BUILD_ROOT}/%{_mandir}/man8
mkdir -p ${RPM_BUILD_ROOT}/%{_mandir}/man5 mkdir -p ${RPM_BUILD_ROOT}/%{_mandir}/man5
@ -159,77 +131,86 @@ rm doc/conf.py
%dir /boot/boom %dir /boot/boom
%config(noreplace) /boot/boom/boom.conf %config(noreplace) /boot/boom/boom.conf
%dir /boot/boom/profiles %dir /boot/boom/profiles
%config(noreplace) /boot/boom/profiles/*
%dir /boot/boom/hosts %dir /boot/boom/hosts
%dir /boot/boom/cache %dir /boot/boom/cache
%dir /boot/loader/entries %dir /boot/loader/entries
%files grub2
%license COPYING
%doc README.md
%{_sysconfdir}/grub.d/42_boom
%config(noreplace) %{_sysconfdir}/default/boom
%changelog %changelog
* Tue Jun 15 2021 Marian Csontos <mcsontos@redhat.com> 1.3-2 * Tue May 16 2023 Marian Csontos <mcsontos@redhat.com> - 1.5.1-1
- Fix --grub-id option handling. - Update to release 1.5.1.
* Sat Jan 30 2021 Marian Csontos <mcsontos@redhat.com> 1.3-1 * Wed Jul 13 2022 Marian Csontos <mcsontos@redhat.com> 1.4-4
- Check for duplicates consistently in the clone and edit commands. - Fix handling of read-only entries.
- Apply correct command line precedence to --add-opts and --del-opts. - Add OS names for recent versions.
- Correctly merge multiple --add/del-opts when editing or cloning.
- Correctly propagate --add/del-opts in boom edit commands. * Tue May 24 2022 Marian Csontos <mcsontos@redhat.com> 1.4-3
- Enhanced logging of --add/del-opts merge logic. - Fix missing /boot/boom/profiles directory.
- The default Python interpreter is now /usr/bin/python.
- Fixed re-ordering of options modifications when read from disk. * Tue May 24 2022 Marian Csontos <mcsontos@redhat.com> 1.4-2
- Do not set BootParams attributes for anonymous option words. - Update gating.yaml.
- Make lvm_root_lv validation checks more strict.
- Improve BootParams.from_entry() parameter recovery debug logging. * Mon May 23 2022 Marian Csontos <mcsontos@redhat.com> 1.4-1
- Include sample OsProfile for Fedora 32. - Update to release 1.4.
- Re-set sandbox state in test suite to ensure run-to-run consistency.
- Improve compatibility with Red Hat BLS implementation. * Wed Jan 19 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.3-4
- Allow non-boom managed entries to be listed and displayed. - Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
- Handle quirks in Red Hat's use of the BLS machine_id key.
- Allow grub2 bootloader variables to be expanded when cloning entries. * Wed Jul 21 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.3-3
- Simplify clone_entry logic and make consistent with edit_entry. - Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
- Ensure stable ordering of legacy boot entry configuration.
* Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 1.3-2
* Mon Jun 29 2020 Marian Csontos <mcsontos@redhat.com> 1.2-2 - Rebuilt for Python 3.10
- Fix RHEL-8 profiles.
- Fix --add/del-opt precedence. * Fri Jan 29 2021 Marian Csontos <mcsontos@redhat.com> 1.3-1
- Fix backup image reference counting. - Update to release 1.3.
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.2-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Mon Jul 27 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Sun Jun 07 2020 Marian Csontos <mcsontos@redhat.com> 1.2-1 * Sun Jun 07 2020 Marian Csontos <mcsontos@redhat.com> 1.2-1
- Update to bug fix release 1.2. - Update to bug fix release 1.2.
* Tue May 26 2020 Marian Csontos <mcsontos@redhat.com> 1.1-2 * Tue May 26 2020 Miro Hrončok <mhroncok@redhat.com> - 1.1-4
- Rebuilt for Python 3.9
* Tue May 26 2020 Marian Csontos <mcsontos@redhat.com> 1.1-3
- Fix unicode entries handling. - Fix unicode entries handling.
- Add tracebacks when --debug is used. - Add tracebacks when --debug is used.
* Tue May 26 2020 Miro Hrončok <mhroncok@redhat.com> - 1.1-2
- Rebuilt for Python 3.9
* Thu May 14 2020 Marian Csontos <mcsontos@redhat.com> 1.1-1 * Thu May 14 2020 Marian Csontos <mcsontos@redhat.com> 1.1-1
- Update to new upstream release 1.1. - Update to new upstream release 1.1.
- Add caching of kernel and init ramdisk images. - Add caching of kernel and init ramdisk images.
* Fri Nov 29 2019 Marian Csontos <mcsontos@redhat.com> 1.0-1 * Tue Jan 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 1.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild
* Mon Jan 20 2020 Marian Csontos <mcsontos@redhat.com> 1.0-1
- Update to new upstream release 1.0. - Update to new upstream release 1.0.
* Mon Jun 10 2019 Marian Csontos <mcsontos@redhat.com> 1.0-0.2.20190610git246b116 * Thu Oct 03 2019 Miro Hrončok <mhroncok@redhat.com> - 1.0-0.5.20190329git6ff3e08
- Fix packaging issues. - Rebuilt for Python 3.8.0rc1 (#1748018)
* Mon May 06 2019 Marian Csontos <mcsontos@redhat.com> 1.0-0.1.20190329git6ff3e08 * Mon Aug 19 2019 Miro Hrončok <mhroncok@redhat.com> - 1.0-0.4.20190329git6ff3e08
- Test upstream packaging. - Rebuilt for Python 3.8
* Mon Jan 14 2019 Marian Csontos <mcsontos@redhat.com> 0.9-7 * Wed Jul 24 2019 Fedora Release Engineering <releng@fedoraproject.org> - 1.0-0.3.20190329git6ff3e08
- Reduce log level of "Could not load BootEntry" messages. - Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
- Raise more appropriate LookupError on unknown BLS keys.
* Thu May 09 2019 Marian Csontos <mcsontos@redhat.com> 1.0-0.2.20190329git6ff3e08
- Fix packaging issues.
* Tue Dec 18 2018 Marian Csontos <mcsontos@redhat.com> 0.9-6 * Thu May 09 2019 Marian Csontos <mcsontos@redhat.com> 1.0-0.1.20190329git6ff3e08
- Disable GRUB2 plugin on RHEL-8. - Pre-release of new version.
* Mon Sep 17 2018 Tomas Orsava <torsava@redhat.com> - 0.9-5 * Thu Jan 31 2019 Fedora Release Engineering <releng@fedoraproject.org> - 0.9-5
- Require the Python interpreter directly instead of using the package name - Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
- Related: rhbz#1619153
* Tue Jul 17 2018 Marian Csontos <mcsontos@redhat.com> 0.9-4 * Tue Jul 17 2018 Marian Csontos <mcsontos@redhat.com> 0.9-4
- Change dependencies. - Change dependencies.

Loading…
Cancel
Save