diff --git a/0001-Fix-typos-across-tree.patch b/0001-Fix-typos-across-tree.patch new file mode 100644 index 0000000..305a400 --- /dev/null +++ b/0001-Fix-typos-across-tree.patch @@ -0,0 +1,208 @@ +From 2ee6810bfbd9e356f2bee3eac4e3b3b87ed21814 Mon Sep 17 00:00:00 2001 +From: "Bryn M. Reeves" +Date: Thu, 4 May 2023 15:11:59 +0100 +Subject: [PATCH] Fix typos across tree + +Origin: https://github.com/snapshotmanager/boom/commit/2ee6810bfbd9e356f2bee3eac4e3b3b87ed21814 + +Signed-off-by: Bryn M. Reeves +--- + 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 @@ def __repr__(self): + 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 @@ def values(self): + + 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 @@ def _dirty(self): + 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 @@ def __match_os_profile(self): + 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 @@ def __init__(self, title=None, machine_id=None, osprofile=None, + + 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 @@ def _have_optional_key(self, key): + 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 @@ def __display_fields(self, display_field_types): + 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 @@ def _row_cmp(row_a, row_b): + 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_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 @@ def test__list_profile_cmd_with_verbose(self): + 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 diff --git a/0001-man-Fix-line-starting-with.patch b/0001-man-Fix-line-starting-with.patch new file mode 100644 index 0000000..856e43b --- /dev/null +++ b/0001-man-Fix-line-starting-with.patch @@ -0,0 +1,32 @@ +From b6f4a6d4b0ae78ea3324d98c14979b64e8eecbb3 Mon Sep 17 00:00:00 2001 +From: "Bryn M. Reeves" +Date: Wed, 3 May 2023 14:46:15 +0100 +Subject: [PATCH] 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 + +Origin: https://github.com/snapshotmanager/boom/commit/b6f4a6d4b0ae78ea3324d98c14979b64e8eecbb3 + +Signed-off-by: Bryn M. Reeves +--- + man/man8/boom.8 | 4 ++-- + 1 file changed, 2 insertions(+), 2 deletions(-) + +diff --git a/man/man8/boom.8 b/man/man8/boom.8 +index a6c0236..c085e93 100644 +--- a/man/man8/boom.8 ++++ b/man/man8/boom.8 +@@ -1178,8 +1178,8 @@ describing the properties of the configured host profiles. + + The list of fields to display is given with \fB--options\fP as a comma + separated list of field names. To obtain a list of available fields run +-'\fBboom host list -o help\fP'. If the list of fields begins with the +-'\fB+\fP' character the specified fields are appended to the default ++\&'\fBboom host list -o help\fP'. If the list of fields begins with the ++\&'\fB+\fP' character the specified fields are appended to the default + field list. Otherwise the given list of fields replaces the default set + of report fields. + diff --git a/0002-Fix-system-vs.-project-import-ordering.patch b/0002-Fix-system-vs.-project-import-ordering.patch new file mode 100644 index 0000000..1b29ac4 --- /dev/null +++ b/0002-Fix-system-vs.-project-import-ordering.patch @@ -0,0 +1,212 @@ +From d8a7c9f2fbeecd4e291cda751c2dcbd4b1914d75 Mon Sep 17 00:00:00 2001 +From: "Bryn M. Reeves" +Date: Thu, 4 May 2023 16:37:26 +0100 +Subject: [PATCH] Fix system vs. project import ordering + +Origin: https://github.com/snapshotmanager/boom/commit/d8a7c9f2fbeecd4e291cda751c2dcbd4b1914d75 + +Resolves: #5 + +Signed-off-by: Bryn M. Reeves +--- + 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 @@ + """ + 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 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 @@ + """ + 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 @@ + 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 @@ + """ + 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.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 @@ + """ + 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 @@ + """ + 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 @@ + """ + 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 @@ + 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 @@ + """ + 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 @@ + 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 @@ + """ + 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) + diff --git a/0003-boom-fix-unclosed-file-warning-for-proc-cmdline.patch b/0003-boom-fix-unclosed-file-warning-for-proc-cmdline.patch new file mode 100644 index 0000000..983bf32 --- /dev/null +++ b/0003-boom-fix-unclosed-file-warning-for-proc-cmdline.patch @@ -0,0 +1,26 @@ +From bd194eeb646198c28f3e79769175c0cf0843e523 Mon Sep 17 00:00:00 2001 +From: "Bryn M. Reeves" +Date: Thu, 4 May 2023 18:23:31 +0100 +Subject: [PATCH] boom: fix unclosed file warning for /proc/cmdline + +Origin: https://github.com/snapshotmanager/boom/commit/bd194eeb646198c28f3e79769175c0cf0843e523 + +Signed-off-by: Bryn M. Reeves +--- + 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 diff --git a/boom-1.3.tar.gz b/boom-1.3.tar.gz deleted file mode 100644 index ceb98b5..0000000 Binary files a/boom-1.3.tar.gz and /dev/null differ diff --git a/boom-1.5.1.tar.gz b/boom-1.5.1.tar.gz new file mode 100644 index 0000000..88026f7 Binary files /dev/null and b/boom-1.5.1.tar.gz differ diff --git a/boom-boot.spec b/boom-boot.spec index 978279e..b923d2d 100644 --- a/boom-boot.spec +++ b/boom-boot.spec @@ -1,18 +1,24 @@ Name: boom-boot -Version: 1.3 +Version: 1.5.1 Release: 1 Summary: libraries and files for helping boot loger entries -License: GPLv2 -URL: https://github.com/bmr-cymru/boom -Source0: https://github.com/bmr-cymru/boom/archive/%{version}/boom-%{version}.tar.gz +License: GPL-2.0-only +URL: https://github.com/snapshotmanager/boom +Source0: https://github.com/snapshotmanager/boom/archive/%{version}/boom-%{version}.tar.gz BuildArch: noarch BuildRequires: python3-setuptools python3-devel python3-sphinx +Patch1: 0001-man-Fix-line-starting-with.patch +Patch2: 0001-Fix-typos-across-tree.patch +Patch3: 0002-Fix-system-vs.-project-import-ordering.patch +Patch4: 0003-boom-fix-unclosed-file-warning-for-proc-cmdline.patch Patch9000: fix-compile-error-about-sphinx-build.patch Requires: python3-boom %{name}-conf +# Drop boom-grub2 package https://github.com/snapshotmanager/boom/commit/4c46d59 +Obsoletes: boom-boot-grub2 <= 1.3 %package -n python3-boom Summary: libraries and files for helping boot loger entries @@ -25,9 +31,6 @@ Conflicts: boom %package conf Summary: libraries and files for helping boot loger entries -%package grub2 -Summary: libraries and files for helping boot loger entries - %description In Linux systems, there is a boot manager that support BootLoader Specification for boot entry configuration, that is Boom. @@ -56,16 +59,6 @@ systemd-boot project or Grub2 with BLS patch (Red Hat Grub2 build This package contains configuration files for boom. -%description grub2 -In Linux systems, there is a boot manager that support BootLoader Specification -for boot entry configuration, that is Boom. - -Boom requires a BLS-compatible boot loader to run: -systemd-boot project or Grub2 with BLS patch (Red Hat Grub2 build -(This support is included in both Red Hat Enterprise Linux 7 and Fedora). - -This package contains integration scripts for grub2 bootloader. - %package help Summary:libraries and files for helping boot loger entries @@ -86,16 +79,12 @@ 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 +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/boom/cache install -m 644 examples/boom.conf ${RPM_BUILD_ROOT}/boot/boom mkdir -p ${RPM_BUILD_ROOT}/%{_mandir}/man8 @@ -124,13 +113,10 @@ rm doc/Makefile doc/conf.py %dir /boot/boom %config(noreplace) /boot/boom/boom.conf %dir /boot/boom/profiles +%dir /boot/boom/hosts +%dir /boot/boom/cache %dir /boot/loader/entries -%files grub2 -%license COPYING -%{_sysconfdir}/grub.d/42_boom -%config(noreplace) %{_sysconfdir}/default/boom - %files help %doc %{_mandir}/man*/boom.* %doc doc @@ -139,6 +125,9 @@ rm doc/Makefile doc/conf.py %doc README.md %changelog +* Tue Oct 24 2023 liaoyuankun - 1.5.1-1 +- update version to 1.5.1 + * Wed Jun 15 2022 SimpleUpdate Robot - 1.3-1 - Upgrade to version 1.3 diff --git a/boom-boot.yaml b/boom-boot.yaml index 52bb0e4..8802b8f 100644 --- a/boom-boot.yaml +++ b/boom-boot.yaml @@ -1,4 +1,4 @@ version_control: github -src_repo: bmr-cymru/boom -tag_prefix: ^v -seperator: . +src_repo: snapshotmanager/boom +tag_prefix: "" +seperator: "."