import boom-boot-1.4-4.el9

This commit is contained in:
CentOS Sources 2022-11-15 01:46:32 -05:00 committed by Stepan Oksanichenko
parent 2d8ca0a0ec
commit dba947ece0
9 changed files with 225 additions and 61 deletions

View File

@ -1 +1 @@
4c95e888f7aecd9dd809c6f0d44ce650a5ae07da SOURCES/boom-1.3.tar.gz
f7b6e12ebb69e4061b9ab0aa27b58d5e8b215970 SOURCES/boom-1.4.tar.gz

2
.gitignore vendored
View File

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

View File

@ -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

View File

@ -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 ++--
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
of report fields.
--
2.34.3

View File

@ -0,0 +1,43 @@
From a3e33031fb4051eb9d76f950b536b513c58be861 Mon Sep 17 00:00:00 2001
From: "Bryn M. Reeves" <bmr@redhat.com>
Date: Tue, 14 Jun 2022 07:47:04 -0400
Subject: [PATCH 2/5] boom.bootloader: initialise _last_path before parsing
BootEntry
The path from which a boot entry was read can be useful context for
logging messages, particularly when a boot entry has been corrupted or
manually edited (so that the boot_id no longer matches the expected
value).
Move the initialisation of this member before parsing the boot entry, so
that the value is available for log messages.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
(cherry picked from commit fafa77556e442fe4f016c23eb9739f1015fa9eb8)
---
boom/bootloader.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/boom/bootloader.py b/boom/bootloader.py
index aa9131f..185195d 100644
--- a/boom/bootloader.py
+++ b/boom/bootloader.py
@@ -1484,6 +1484,7 @@ class BootEntry(object):
entry_basename = basename(entry_file)
_log_debug("Loading BootEntry from '%s'" % entry_basename)
+ self._last_path = entry_file
with open(entry_file, "r") as ef:
for line in ef:
@@ -1536,7 +1537,6 @@ class BootEntry(object):
entry_basename)
self.read_only = True
- self._last_path = entry_file
self._unwritten = False
def __init__(self, title=None, machine_id=None, osprofile=None,
--
2.34.3

View File

@ -0,0 +1,47 @@
From faf43a2b923dd2e558da1e48978541389844f464 Mon Sep 17 00:00:00 2001
From: "Bryn M. Reeves" <bmr@redhat.com>
Date: Tue, 14 Jun 2022 07:50:11 -0400
Subject: [PATCH 3/5] boom.bootloader: improve warning for entries with no
root_device
A boot entry with no root_device= is invalid. Log the path to the file
rather than the boot_id since this may have changed if the entry is
corrupt/modified, and is not included in the file name for system
provided boot entries.
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
(cherry picked from commit b70d2ad6a4b8f7ef7816426bcb18b6f247a52dca)
---
boom/bootloader.py | 3 +--
tests/bootloader_tests.py | 1 +
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/boom/bootloader.py b/boom/bootloader.py
index 185195d..bbf7fd5 100644
--- a/boom/bootloader.py
+++ b/boom/bootloader.py
@@ -720,8 +720,7 @@ class BootParams(object):
# The root_device key is handled specially since it is required
# for a valid BootEntry.
if name == 'root_device' and not value:
- _log_warn("Entry with boot_id=%s has no root_device"
- % be.boot_id)
+ _log_warn("No root_device for entry at %s" % be._last_path)
setattr(bp, name, "")
def is_add(opt):
diff --git a/tests/bootloader_tests.py b/tests/bootloader_tests.py
index 129000d..ace82bd 100644
--- a/tests/bootloader_tests.py
+++ b/tests/bootloader_tests.py
@@ -158,6 +158,7 @@ class MockBootEntry(object):
expand_options = "root=/dev/mapper/rhel-root ro rhgb quiet"
_osp = None
_entry_data = {}
+ _last_path = "/some/path/to/somewhere"
class BootEntryBasicTests(unittest.TestCase):
--
2.34.3

View File

@ -0,0 +1,46 @@
From 31f95734f0d6f90f256754377207f5373ff9015c Mon Sep 17 00:00:00 2001
From: "Bryn M. Reeves" <bmr@redhat.com>
Date: Tue, 14 Jun 2022 07:54:29 -0400
Subject: [PATCH 4/5] boom.bootloader: do not allow deletion of read-only boot
entries
Currently when attempting to delete an entry that has been marked
read-only boom generates a misleading error message:
# boom delete 7fce1e5
Entry does not exist: /boot/loader/entries/619c4d9f1efa4cf7bd76f149f12138a0-7fce1e5-5.14.0-108.el9.x86_64.conf
Boom should not attempt to delete entries that are marked read-only;
these are either system provided entries, or entries that have been
modified outside of boom's control. Reject attempts to delete these
with an error that indicates the reason they cannot be removed:
# boom delete f6f8df5
Cannot delete read-only boot entry: /boot/loader/entries/68f613d8774e41e792fad28212cfedae-4.18.0-348.el8.x86_64.conf
Resolves: #10
Signed-off-by: Bryn M. Reeves <bmr@redhat.com>
(cherry picked from commit 42f66737e1d7dec432cd7fc330f87304a585c308)
---
boom/bootloader.py | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/boom/bootloader.py b/boom/bootloader.py
index bbf7fd5..a81ea84 100644
--- a/boom/bootloader.py
+++ b/boom/bootloader.py
@@ -2445,6 +2445,10 @@ class BootEntry(object):
:raises: ``OsError`` if an error occurs removing the file or
``ValueError`` if the entry does not exist.
"""
+ if self.read_only:
+ raise ValueError("Cannot delete read-only boot "
+ "entry: %s" % self._last_path)
+
if not path_exists(self._entry_path):
raise ValueError("Entry does not exist: %s" % self._entry_path)
try:
--
2.34.3

View File

@ -0,0 +1,35 @@
From cd0c4e28b0b2de9000edd5b4b56612d610337552 Mon Sep 17 00:00:00 2001
From: "Bryn M. Reeves" <bmr@redhat.com>
Date: Tue, 14 Jun 2022 09:31:33 -0400
Subject: [PATCH 5/5] 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 <bmr@redhat.com>
(cherry picked from commit 0cb2d8da9de6fa01ebc5193e7ab6710a9c7b7125)
---
boom/command.py | 2 ++
1 file changed, 2 insertions(+)
diff --git a/boom/command.py b/boom/command.py
index 0ef66ee..07c0616 100644
--- a/boom/command.py
+++ b/boom/command.py
@@ -1094,9 +1094,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.34.3

View File

@ -2,21 +2,29 @@
%global sphinx_docs 1
Name: boom-boot
Version: 1.3
Release: 3%{?dist}
Version: 1.4
Release: 4%{?dist}
Summary: %{summary}
License: GPLv2
URL: https://github.com/snapshotmanager/boom
Source0: https://github.com/snapshotmanager/boom/archive/%{version}/boom-%{version}.tar.gz
Patch1: 0001-etc-Remove-executable-permission-from-etc-default-bo.patch
Patch2: 0002-man-Fix-line-starting-with.patch
Patch1: 0001-man-Fix-line-starting-with.patch
# Minor improvements:
Patch2: 0002-boom.bootloader-initialise-_last_path-before-parsing.patch
Patch3: 0003-boom.bootloader-improve-warning-for-entries-with-no-.patch
# BZ 2096447:
Patch4: 0004-boom.bootloader-do-not-allow-deletion-of-read-only-b.patch
# BZ 2096368:
Patch5: 0005-boom.command-add-new-os-release-values-to-Red-Hat-op.patch
BuildArch: noarch
BuildRequires: make
BuildRequires: python3-setuptools
BuildRequires: python3-devel
%if 0%{?sphinx_docs}
BuildRequires: python3-dbus
BuildRequires: python3-sphinx
%endif
BuildRequires: make
@ -24,6 +32,10 @@ BuildRequires: make
Requires: python3-boom = %{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
Summary: %{summary}
%{?python_provide:%python_provide python3-boom}
@ -39,10 +51,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.
@ -71,21 +79,14 @@ 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
%patch1 -p1
%patch2 -p1
%patch3 -p1
%patch4 -p1
%patch5 -p1
%build
%if 0%{?sphinx_docs}
@ -100,12 +101,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
@ -113,7 +108,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/boom/cache
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}/man5
@ -147,25 +141,33 @@ rm doc/conf.py
%dir /boot/boom
%config(noreplace) /boot/boom/boom.conf
%dir /boot/boom/profiles
%config(noreplace) /boot/boom/profiles/*
%dir /boot/boom/hosts
%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
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 1.3-3
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
* Wed Jul 13 2022 Marian Csontos <mcsontos@redhat.com> 1.4-4
- Fix handling of read-only entries.
- Add OS names for recent versions.
* Thu Apr 15 2021 Mohan Boddu <mboddu@redhat.com> - 1.3-2
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
* Tue May 24 2022 Marian Csontos <mcsontos@redhat.com> 1.4-3
- Fix missing /boot/boom/profiles directory.
* Tue May 24 2022 Marian Csontos <mcsontos@redhat.com> 1.4-2
- Update gating.yaml.
* Mon May 23 2022 Marian Csontos <mcsontos@redhat.com> 1.4-1
- Update to release 1.4.
* Wed Jan 19 2022 Fedora Release Engineering <releng@fedoraproject.org> - 1.3-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild
* Wed Jul 21 2021 Fedora Release Engineering <releng@fedoraproject.org> - 1.3-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild
* Fri Jun 04 2021 Python Maint <python-maint@redhat.com> - 1.3-2
- Rebuilt for Python 3.10
* Fri Jan 29 2021 Marian Csontos <mcsontos@redhat.com> 1.3-1
- Update to release 1.3.