Compare commits

..

No commits in common. "c8" and "c9-beta" have entirely different histories.
c8 ... c9-beta

7 changed files with 371 additions and 24 deletions

2
.gitignore vendored
View File

@ -1 +1 @@
SOURCES/kdump-anaconda-addon-ffd365e.tar.gz
SOURCES/kdump-anaconda-addon-9603258.tar.gz

View File

@ -1 +1 @@
683f2874ba7eecb5208b86fa2253caadf3215a6e SOURCES/kdump-anaconda-addon-ffd365e.tar.gz
d0e113dcab835701658bd08d5702d463e51f0256 SOURCES/kdump-anaconda-addon-9603258.tar.gz

29
SOURCES/0001.patch Normal file
View File

@ -0,0 +1,29 @@
From aa335261b2c4771442d82ee1622f189603d4a43d Mon Sep 17 00:00:00 2001
From: Kairui Song <kasong@redhat.com>
Date: Wed, 2 Jun 2021 16:44:08 +0800
Subject: [PATCH 1/2] Make kdump options visible by default
Currently this addon is completely hidden unless kdump_addon=on
is set, make it visible by default. Kdump is still disabled by default,
just show the kdump tab.
Signed-off-by: Kairui Song <kasong@redhat.com>
---
com_redhat_kdump/service/initialization.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/com_redhat_kdump/service/initialization.py b/com_redhat_kdump/service/initialization.py
index 2bdbe6e..0e247df 100644
--- a/com_redhat_kdump/service/initialization.py
+++ b/com_redhat_kdump/service/initialization.py
@@ -27,6 +27,6 @@ __all__ = ["check_initial_conditions"]
def check_initial_conditions():
"""Can the Kdump service run?"""
- if not kernel_arguments.is_enabled("kdump_addon"):
+ if kernel_arguments.get("kdump_addon", 1) in ["0", "off", False]:
log.debug("The kdump add-on is disabled. Quit.")
sys.exit(1)
--
2.31.1

60
SOURCES/0002.patch Normal file
View File

@ -0,0 +1,60 @@
From fd7b5edbb777d216ba9f94e5023f793fb01583cd Mon Sep 17 00:00:00 2001
From: Kairui Song <kasong@redhat.com>
Date: Wed, 21 Jul 2021 02:06:36 +0800
Subject: [PATCH 2/2] Enable kdump by default
Signed-off-by: Kairui Song <kasong@redhat.com>
---
com_redhat_kdump/service/kdump.py | 2 +-
com_redhat_kdump/service/kickstart.py | 2 +-
test/unit_tests/test_kickstart.py | 4 ++--
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/com_redhat_kdump/service/kdump.py b/com_redhat_kdump/service/kdump.py
index 46e7242..4f4cdd1 100755
--- a/com_redhat_kdump/service/kdump.py
+++ b/com_redhat_kdump/service/kdump.py
@@ -41,7 +41,7 @@ class KdumpService(KickstartService):
def __init__(self):
"""Create a service."""
super().__init__()
- self._kdump_enabled = False
+ self._kdump_enabled = True
self.kdump_enabled_changed = Signal()
self._fadump_enabled = False
diff --git a/com_redhat_kdump/service/kickstart.py b/com_redhat_kdump/service/kickstart.py
index c2455a4..32c532f 100644
--- a/com_redhat_kdump/service/kickstart.py
+++ b/com_redhat_kdump/service/kickstart.py
@@ -36,7 +36,7 @@ class KdumpKickstartData(AddonData):
def __init__(self):
super().__init__()
- self.enabled = False
+ self.enabled = True
self.reserve_mb = "auto"
self.enablefadump = False
diff --git a/test/unit_tests/test_kickstart.py b/test/unit_tests/test_kickstart.py
index 49d73d2..f833504 100644
--- a/test/unit_tests/test_kickstart.py
+++ b/test/unit_tests/test_kickstart.py
@@ -26,12 +26,12 @@ class KdumpKickstartTestCase(TestCase):
self.assertEqual(output.strip(), dedent(ks_out).strip())
def test_ks_default(self):
- self.assertEqual(self._service.kdump_enabled, False)
+ self.assertEqual(self._service.kdump_enabled, True)
self.assertEqual(self._service.fadump_enabled, False)
self.assertEqual(self._service.reserved_memory, "auto")
self._check_ks_output("""
- %addon com_redhat_kdump --disable
+ %addon com_redhat_kdump --enable --reserve-mb='auto'
%end
""")
--
2.31.1

58
SOURCES/0003.patch Normal file
View File

@ -0,0 +1,58 @@
From 1434290fa4b5cfdf4aeb944df17b2221954bb722 Mon Sep 17 00:00:00 2001
From: Coiby Xu <coiby.xu@gmail.com>
Date: Wed, 19 Mar 2025 17:10:46 +0800
Subject: [PATCH] Disable kdump.service explicitly if users request to
Resolves: https://issues.redhat.com/browse/RHEL-41082
Currently, kdump.service isn't disabled even users request to. This
happens because RHEL/CentOS systemd presets have kdump.service enabled.
So explicitly disable kdump.service to address this case.
Signed-off-by: Coiby Xu <coiby.xu@gmail.com>
---
com_redhat_kdump/service/installation.py | 7 ++++---
test/unit_tests/test_installation.py | 6 +++++-
2 files changed, 9 insertions(+), 4 deletions(-)
diff --git a/com_redhat_kdump/service/installation.py b/com_redhat_kdump/service/installation.py
index bb5bad2..5c5d9c2 100644
--- a/com_redhat_kdump/service/installation.py
+++ b/com_redhat_kdump/service/installation.py
@@ -138,12 +138,13 @@ class KdumpInstallationTask(Task):
def run(self):
"""Run the task."""
+ systemctl_action = "enable"
if not self._kdump_enabled:
- log.debug("Kdump is disabled. Skipping.")
- return
+ log.debug("kdump.serivce will be disabled.")
+ systemctl_action = "disable"
util.execWithRedirect(
"systemctl",
- ["enable", "kdump.service"],
+ [systemctl_action, "kdump.service"],
root=self._sysroot
)
diff --git a/test/unit_tests/test_installation.py b/test/unit_tests/test_installation.py
index f100dda..e1234be 100644
--- a/test/unit_tests/test_installation.py
+++ b/test/unit_tests/test_installation.py
@@ -187,7 +187,11 @@ class KdumpInstallationTestCase(TestCase):
kdump_enabled=False
)
task.run()
- mock_util.execWithRedirect.assert_not_called()
+ mock_util.execWithRedirect.assert_called_once_with(
+ "systemctl",
+ ["disable", "kdump.service"],
+ root="/mnt/sysroot"
+ )
@patch("com_redhat_kdump.service.installation.util")
def test_installation_kdump_enabled(self, mock_util):
--
2.48.1

137
SOURCES/0004.patch Normal file
View File

@ -0,0 +1,137 @@
From 05a6faed1c0f89d21acc0c0d21cda32a9ee75d11 Mon Sep 17 00:00:00 2001
From: Coiby Xu <coiby.xu@gmail.com>
Date: Tue, 15 Apr 2025 10:19:16 +0800
Subject: [PATCH] Handle the case where systemd isn't installed
Resolvs: https://issues.redhat.com/browse/RHEL-86873
Anaconda may be used to create [1] minimal container image which doesn't
have systemd/systemctl installed.
When using the following kickstart to create a container image,
bootloader --disabled
# boot partitions are irrelevant as the final container image is a tarball
zerombr
clearpart --all
autopart --noboot --nohome --noswap --nolvm --fstype=ext4
%addon com_redhat_kdump --disable
%end
%packages --nocore --excludedocs
redhat-release
bash
rootfiles
coreutils-single
curl-minimal
libcurl-minimal
glibc-minimal-langpack
crypto-policies-scripts
-kernel
-dosfstools
-e2fsprogs
# s390utils-base needs fuse-libs. Comment it for now.
#-fuse-libs
-gnupg2-smime
-libss # used by e2fsprogs
-pinentry
# gdk-pixbuf2-2.40.0-3.el9.s390x requires shared-mime-info
#-shared-mime-info
-trousers
-xkeyboard-config
-xfsprogs
-qemu-guest-agent
# For minimal
microdnf
libusbx
-crypto-policies-scripts
%end
rootpw --lock --iscrypted locked
Anaconda installation will fail with the following error,
No such file or directory: 'systemctl
So skip KdumpInstallationTask when systemd/systemctl isn't installed.
[1] https://issues.redhat.com/browse/RHEL-86873?focusedId=26986146&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-26986146
Signed-off-by: Coiby Xu <coiby.xu@gmail.com>
---
com_redhat_kdump/service/installation.py | 9 +++++++++
test/unit_tests/test_installation.py | 19 +++++++++++++++++--
2 files changed, 26 insertions(+), 2 deletions(-)
diff --git a/com_redhat_kdump/service/installation.py b/com_redhat_kdump/service/installation.py
index 5c5d9c2..1e0096a 100644
--- a/com_redhat_kdump/service/installation.py
+++ b/com_redhat_kdump/service/installation.py
@@ -17,6 +17,7 @@
#
import logging
import os
+import shutil
from pyanaconda.core import util
from pyanaconda.modules.common.constants.objects import BOOTLOADER
@@ -138,6 +139,14 @@ class KdumpInstallationTask(Task):
def run(self):
"""Run the task."""
+
+ # Anaconda may be used to create minimal container image which doesn't
+ # have systemd installed
+ # https://issues.redhat.com/browse/RHEL-41082?focusedId=26969576&page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-26969576
+ if not shutil.which(self._sysroot + "/systemctl"):
+ log.debug("systemd not installed, skip KdumpInstallationTask")
+ return
+
systemctl_action = "enable"
if not self._kdump_enabled:
log.debug("kdump.serivce will be disabled.")
diff --git a/test/unit_tests/test_installation.py b/test/unit_tests/test_installation.py
index e1234be..43f5166 100644
--- a/test/unit_tests/test_installation.py
+++ b/test/unit_tests/test_installation.py
@@ -181,7 +181,9 @@ class KdumpInstallationTestCase(TestCase):
assert mock_exec.call_count == 2
@patch("com_redhat_kdump.service.installation.util")
- def test_installation_kdump_disabled(self, mock_util):
+ @patch("shutil.which")
+ def test_installation_kdump_disabled(self, mock_shutil, mock_util):
+ mock_shutil.return_value = True
task = KdumpInstallationTask(
sysroot="/mnt/sysroot",
kdump_enabled=False
@@ -194,7 +196,9 @@ class KdumpInstallationTestCase(TestCase):
)
@patch("com_redhat_kdump.service.installation.util")
- def test_installation_kdump_enabled(self, mock_util):
+ @patch("shutil.which")
+ def test_installation_kdump_enabled(self, mock_shutil, mock_util):
+ mock_shutil.return_value = True
task = KdumpInstallationTask(
sysroot="/mnt/sysroot",
kdump_enabled=True
@@ -205,3 +209,14 @@ class KdumpInstallationTestCase(TestCase):
["enable", "kdump.service"],
root="/mnt/sysroot"
)
+
+ @patch("com_redhat_kdump.service.installation.util")
+ @patch("shutil.which")
+ def test_installation_kdump_disable_no_systemctl(self, mock_shutil, mock_util):
+ mock_shutil.return_value = False
+ task = KdumpInstallationTask(
+ sysroot="/mnt/sysroot",
+ kdump_enabled=False
+ )
+ task.run()
+ mock_util.execWithRedirect.assert_not_called()
--
2.49.0

View File

@ -1,28 +1,34 @@
%global gitcommit ffd365e8b1885b6f7dd285685f3b94ac0bc83e52
%global gitcommit 960325885aa3b2b2b0af8343951ea86dcacec27a
%global gitshortcommit %(c=%{gitcommit}; echo ${c:0:7})
%global snapshotdate 20220519
%global snapshotdate 20220128
Name: kdump-anaconda-addon
Version: 003
Release: 8.%{snapshotdate}git%{gitshortcommit}%{?dist}
Version: 006
Release: 15.%{snapshotdate}git%{gitshortcommit}%{?dist}
Url: https://github.com/daveyoung/kdump-anaconda-addon
License: GPLv2
Summary: Kdump configuration anaconda addon
BuildArch: noarch
Requires: anaconda >= 32.18
Requires: anaconda >= 34.25
Requires: hicolor-icon-theme
BuildRequires: intltool gettext
Obsoletes: kexec-tools-anaconda-addon < 2.0.17-12
BuildRequires: make
Obsoletes: kexec-tools-anaconda-addon < 2.0.17-9
Provides: kexec-tools-anaconda-addon = %{version}-%{release}
Source0: https://github.com/daveyoung/kdump-anaconda-addon/archive/%{gitcommit}/kdump-anaconda-addon-%{gitshortcommit}.tar.gz
Patch1: 0001.patch
Patch2: 0002.patch
Patch3: 0003.patch
Patch4: 0004.patch
%description
Kdump anaconda addon
%prep
%autosetup -n %{name}-%{gitcommit}
%autosetup -n %{name}-%{gitcommit} -p1
%build
@ -35,29 +41,86 @@ Kdump anaconda addon
%doc README
%license LICENSE
%{_datadir}/anaconda/addons/com_redhat_kdump
%{_datadir}/anaconda/dbus/confs/org.fedoraproject.Anaconda.Addons.Kdump.conf
%{_datadir}/anaconda/dbus/services/org.fedoraproject.Anaconda.Addons.Kdump.service
%{_datadir}/icons/hicolor/scalable/apps/kdump.svg
%changelog
* Thu May 19 2022 Coiby Xu <coxu@redhat.com> - 003-8.20220519gitffd365e
- return False instead of None for the mandatory property
* Tue Apr 29 2025 Coiby Xu <coxu@redhat.com> - 006-15.20220128git9603258
- Handle the case where systemd isn't installed (RHEL-86873)
* Thu Oct 21 2021 Kairui Song <kasong@redhat.com> - 003-7.20211021gitcb5edde
- Warn the user when encrypted storage is in-use
* Tue Mar 25 2025 Coiby Xu <coxu@redhat.com> - 006-14.20220128git9603258
- Disable kdump.service explicitly if users request to (RHEL-41082)
* Thu Feb 04 2021 Kairui Song <kasong@redhat.com> - 003-6.20210204git43c39c1
- Set default crashkernel value to 'auto'
* Thu Jan 20 2022 Coiby <coxu@redhat.com> - 006-13.20220128git9603258
- Update to latest git snapshot (20220128). Resolves: bz2046612
* Mon Aug 10 2020 Kairui Song <kasong@redhat.com> - 003-5.20200810git0202fa1
- Update kdump icon
* Thu Jan 20 2022 Coiby <coxu@redhat.com> - 006-12.20220120git44fe737
- Update to latest git snapshot (20220120). Resolves: bz2003131
* Fri Jul 10 2020 Kairui Song <kasong@redhat.com> - 003-4.20200526gita0c4527
- Fix CI gating
* Thu Jan 13 2022 Coiby <coxu@redhat.com> - 006-11.20220113git4c5a91d
- Update to latest git snapshot (20220113). Resolves: bz2034491
* Tue May 26 2020 Kairui Song <kasong@redhat.com> - 003-3.20200526gita0c4527
- Rebase to latest upstream
* Thu Oct 14 2021 Kairui Song <kasong@redhat.com> - 006-10.20211014git641a7b7
- Update to latest git snapshot, update encryption warning message. Resolves: bz1999662
* Wed Nov 07 2018 Kairui Song <kasong@redhat.com> - 003-2.20181107git443d7ed
- Define help_id for Kdump spokes (#1637546)
* Thu Aug 19 2021 Kairui Song <kasong@redhat.com> - 006-9.20210819git2026d20
- Update to latest git snapshot, fix encryption warning still present after disabling encryption. Resolves: bz1937035
* Wed Aug 29 2018 Kairui Song <kasong@redhat.com> - 003-1.20180730git06ad891
* Wed Aug 18 2021 Kairui Song <kasong@redhat.com> - 006-8.20210818git400359b
- Update to latest git snapshot, fix installation failure when reuse old partition. Resolves: bz1937035
* Thu Aug 12 2021 Kairui Song <kasong@redhat.com> - 006-7.20210812git5b74c1d
- Update to latest git snapshot, fix kdump spoke is incomplete after luks device is deleted. Resolves: bz1937035
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 006-6.20210805gitce26db0
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
* Thu Aug 05 2021 Kairui Song <kasong@redhat.com> - 006-5.20210805gitce26db0
- Update to latest git snapshot, automated installation won't be blocked. Resolves: bz1986969
- Update RHEL only patch, fix inst.kdump_addon=0 not working issue. Resolves: bz1986942
* Wed Jul 21 2021 Kairui Song <kasong@redhat.com> - 006-4.20210721gitd046d22
- Update to latest git snapshot (20210721). Resolves: bz1937035, bz1959203
- Apply RHEL only patch to enable kdump by default
* Fri Apr 16 2021 Mohan Boddu <mboddu@redhat.com> - 006-3.20201128git4ba507e
- Rebuilt for RHEL 9 BETA on Apr 15th 2021. Related: rhbz#1947937
* Tue Jan 26 2021 Fedora Release Engineering <releng@fedoraproject.org> - 006-2.20201128git4ba507e
- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild
* Sat Nov 28 2020 Kairui Song <kasong@redhat.com> - 006-1.20201128git4ba507e
- Update to latest git snapshot (20201128)
* Tue Jul 28 2020 Fedora Release Engineering <releng@fedoraproject.org> - 005-9.20200220git80aab11
- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild
* Thu Feb 20 2020 Kairui Song <kasong@redhat.com> - 005-8.20200220git80aab11
- Update to latest git snapshot (20200220)
* Tue Jan 14 2020 Kairui Song <kasong@redhat.com> - 005-7.20200114git122ccd9
- Update to latest git snapshot (20200114)
* Wed Aug 7 2019 Kairui Song <kasong@redhat.com> - 005-6.20190730gitc109552
- Update to latest git snapshot (20190723)
* Thu Jul 25 2019 Fedora Release Engineering <releng@fedoraproject.org> - 005-5.20190103gitb16ea2c
- Rebuilt for https://fedoraproject.org/wiki/Fedora_31_Mass_Rebuild
* Fri Feb 01 2019 Fedora Release Engineering <releng@fedoraproject.org> - 005-4.20190103gitb16ea2c
- Rebuilt for https://fedoraproject.org/wiki/Fedora_30_Mass_Rebuild
* Thu Jan 3 2019 Kairui Song <kasong@redhat.com> - 005-3.20190103gitb16ea2c
- Update to latest git snapshot (20190103)
* Tue Aug 7 2018 Kairui Song <kasong@redhat.com> - 005-2.20180730git966223e
- Bump obsoleted kexec-tools-anaconda-addon version
- Remove redundant source files
* Tue Aug 7 2018 Kairui Song <kasong@redhat.com> - 005-1.20180730git966223e
- Update to latest git snapshot (20180730)
* Mon Jul 9 2018 Kairui Song <kasong@redhat.com> - 005-1.20180626git8b243e3
- Initial package for kdump-anaconda-addon