From 23d2c2aba4b8ea50699bb57addf39f3666019580 Mon Sep 17 00:00:00 2001 From: Neal Gompa Date: Thu, 9 Oct 2025 14:22:39 +0000 Subject: [PATCH] AlmaLinux changes: Enable Btrfs support --- ...-Restore-support-for-Btrfs-on-RHEL10.patch | 128 ++++++++++++++++++ pykickstart.spec | 10 +- 2 files changed, 136 insertions(+), 2 deletions(-) create mode 100644 0001-btrfs-Restore-support-for-Btrfs-on-RHEL10.patch diff --git a/0001-btrfs-Restore-support-for-Btrfs-on-RHEL10.patch b/0001-btrfs-Restore-support-for-Btrfs-on-RHEL10.patch new file mode 100644 index 0000000..cf4fbfb --- /dev/null +++ b/0001-btrfs-Restore-support-for-Btrfs-on-RHEL10.patch @@ -0,0 +1,128 @@ +From 9cce119c569e40876793daa53a2798c9c6bb0439 Mon Sep 17 00:00:00 2001 +From: Neal Gompa +Date: Thu, 26 Jun 2025 23:51:33 -0400 +Subject: [PATCH] btrfs: Restore support for Btrfs on RHEL10 + +Red Hat Enterprise Linux and baseline CentOS Stream have +removed support for Btrfs, but we need it back for CentOS Hyperscale. +--- + pykickstart/commands/autopart.py | 32 +------------------------------- + pykickstart/commands/btrfs.py | 9 +++------ + tests/commands/autopart.py | 3 +-- + tests/commands/btrfs.py | 7 ++----- + 4 files changed, 7 insertions(+), 44 deletions(-) + +diff --git a/pykickstart/commands/autopart.py b/pykickstart/commands/autopart.py +index d7b5c072..3e77e4f6 100644 +--- a/pykickstart/commands/autopart.py ++++ b/pykickstart/commands/autopart.py +@@ -599,34 +599,4 @@ class F38_AutoPart(F29_AutoPart): + return retval + + class RHEL10_AutoPart(F38_AutoPart): +- removedKeywords = F38_AutoPart.removedKeywords +- removedAttrs = F38_AutoPart.removedAttrs +- +- def parse(self, args): +- # call the overriden command to do it's job first +- retval = F38_AutoPart.parse(self, args) +- +- # btrfs is no more supported +- if self._typeAsStr() == "btrfs": +- raise KickstartParseError(_("autopart --type=btrfs is not supported"), +- lineno=self.lineno) +- +- return retval +- +- def _getParser(self): +- "Only necessary for the type change documentation" +- op = F38_AutoPart._getParser(self) +- for action in op._actions: +- if "--type" in action.option_strings: +- action.help += """ +- +- .. versionchanged:: %s +- +- Partitioning scheme 'btrfs' was removed.""" % versionToLongString(RHEL8) +- if "--fstype" in action.option_strings: +- action.help += """ +- +- .. versionchanged:: %s +- +- Partitioning scheme 'btrfs' was removed.""" % versionToLongString(RHEL8) +- return op ++ pass +diff --git a/pykickstart/commands/btrfs.py b/pykickstart/commands/btrfs.py +index ac22c71f..a2825bf6 100644 +--- a/pykickstart/commands/btrfs.py ++++ b/pykickstart/commands/btrfs.py +@@ -19,7 +19,7 @@ + # with the express permission of Red Hat, Inc. + # + from pykickstart.version import F17, F23, RHEL8, RHEL10, versionToLongString +-from pykickstart.base import BaseData, KickstartCommand, DeprecatedCommand, RemovedCommand ++from pykickstart.base import BaseData, KickstartCommand, DeprecatedCommand + from pykickstart.errors import KickstartParseError, KickstartParseWarning + from pykickstart.options import KSOptionParser, mountpoint + +@@ -280,8 +280,5 @@ class RHEL8_BTRFS(DeprecatedCommand, F23_BTRFS): + class RHEL9_BTRFS(RHEL8_BTRFS): + pass + +-class RHEL10_BTRFS(RemovedCommand, RHEL8_BTRFS): +- def _getParser(self): +- op = RHEL8_BTRFS._getParser(self) +- op.description += "\n\n.. versionremoved:: %s" % versionToLongString(RHEL10) +- return op ++class RHEL10_BTRFS(F23_BTRFS): ++ pass +diff --git a/tests/commands/autopart.py b/tests/commands/autopart.py +index e7e8b220..81d459ee 100644 +--- a/tests/commands/autopart.py ++++ b/tests/commands/autopart.py +@@ -165,7 +165,7 @@ class F17_TestCase(F16_TestCase): + self.assert_parse("autopart --type=lvm", + "autopart --type=lvm\n") + +- if self.__class__.__name__ not in ["RHEL8_TestCase", "RHEL10_TestCase"]: ++ if self.__class__.__name__ not in ["RHEL8_TestCase"]: + self.assert_parse("autopart --type=btrfs", + "autopart --type=btrfs\n") + +@@ -358,7 +358,6 @@ class F38_TestCase(F29_TestCase): + class RHEL10_TestCase(F38_TestCase): + def runTest(self): + F38_TestCase.runTest(self) +- self.assert_parse_error("autopart --type=btrfs") + + if __name__ == "__main__": + unittest.main() +diff --git a/tests/commands/btrfs.py b/tests/commands/btrfs.py +index 8fee1f11..7e9043aa 100644 +--- a/tests/commands/btrfs.py ++++ b/tests/commands/btrfs.py +@@ -20,7 +20,6 @@ + + import unittest + from tests.baseclass import CommandTest, CommandSequenceTest +-from pykickstart.base import RemovedCommand + from pykickstart.commands.btrfs import F17_BTRFSData, F23_BTRFSData + from pykickstart.errors import KickstartParseError, KickstartParseWarning + from pykickstart.version import F17 +@@ -199,11 +198,9 @@ class RHEL7_TestCase(F23_TestCase): + def runTest(self): + F23_TestCase.runTest(self) + +-class RHEL10_TestCase(RHEL7_TestCase): ++class RHEL10_TestCase(F23_TestCase): + def runTest(self): +- # make sure we've been removed +- parser = self.getParser("btrfs") +- self.assertEqual(issubclass(parser.__class__, RemovedCommand), True) ++ F23_TestCase.runTest(self) + + if __name__ == "__main__": + unittest.main() +-- +2.49.0 + diff --git a/pykickstart.spec b/pykickstart.spec index f54749b..b87628a 100644 --- a/pykickstart.spec +++ b/pykickstart.spec @@ -5,7 +5,7 @@ Name: pykickstart Version: 3.52.8 -Release: 1%{?dist} +Release: 1%{?dist}.alma.1 License: GPL-2.0-only Summary: Python utilities for manipulating kickstart files. Url: http://fedoraproject.org/wiki/pykickstart @@ -17,6 +17,9 @@ Source0: %{name}-%{version}.tar.gz Source1: %{name}-%{version}.tar.gz.asc %endif + +# AlmaLinux Patch +Patch1001: 0001-btrfs-Restore-support-for-Btrfs-on-RHEL10.patch BuildArch: noarch BuildRequires: gettext @@ -44,7 +47,7 @@ Python 3 library for manipulating kickstart files. The binaries are found in the pykickstart package. %prep -%setup -q +%autosetup -p 1 %build make PYTHON=%{__python3} @@ -78,6 +81,9 @@ LC_ALL=C make PYTHON=%{__python3} test-no-coverage %{python3_sitelib}/pykickstart*.egg-info %changelog +* Thu Oct 09 2025 Neal Gompa - 3.52.8-1.alma.1 +- AlmaLinux changes: Enable Btrfs support + * Thu Jan 30 2025 Brian C. Lane - 3.52.8-1 - Update %%certificate section documentation (rvykydal) Related: RHEL-61435