anaconda/anaconda-centos-add-centos-install-class.patch

114 lines
4.5 KiB
Diff

diff -uNr anaconda-21.48.22.56__orig/pyanaconda/installclasses/fedora.py anaconda-21.48.22.56/pyanaconda/installclasses/fedora.py
--- anaconda-21.48.22.56__orig/pyanaconda/installclasses/fedora.py 2015-10-22 17:34:02.000000000 +0100
+++ anaconda-21.48.22.56/pyanaconda/installclasses/fedora.py 2015-12-07 16:40:33.122000000 +0000
@@ -25,7 +25,7 @@
class FedoraBaseInstallClass(BaseInstallClass):
name = "Fedora"
sortPriority = 10000
- if productName.startswith("Red Hat "):
+ if productName.startswith("Red Hat ") or productName.startswith("CentOS"):
hidden = True
_l10n_domain = "anaconda"
diff -uNr anaconda-21.48.22.56__orig/pyanaconda/installclasses/centos.py anaconda-21.48.22.56/pyanaconda/installclasses/centos.py
--- anaconda-21.48.22.56__orig/pyanaconda/installclasses/centos.py 1970-01-01 01:00:00.000000000 +0100
+++ anaconda-21.48.22.56/pyanaconda/installclasses/centos.py 2015-12-07 16:52:11.157000000 +0000
@@ -0,0 +1,97 @@
+#
+# rhel.py
+#
+# Copyright (C) 2010 Red Hat, Inc. All rights reserved.
+#
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 2 of the License, or
+# (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program. If not, see <http://www.gnu.org/licenses/>.
+#
+
+from pyanaconda.installclass import BaseInstallClass
+from pyanaconda.product import productName
+from pyanaconda import network
+from pyanaconda import nm
+from pyanaconda.kickstart import getAvailableDiskSpace
+from blivet.partspec import PartSpec
+from blivet.platform import platform
+from blivet.devicelibs import swap
+from blivet.size import Size
+
+class RHELBaseInstallClass(BaseInstallClass):
+ name = "CentOS Linux"
+ sortPriority = 20001
+ if not productName.startswith("CentOS"):
+ hidden = True
+ defaultFS = "xfs"
+
+ bootloaderTimeoutDefault = 5
+
+ ignoredPackages = ["ntfsprogs", "reiserfs-utils", "hfsplus-tools"]
+
+ installUpdates = False
+
+ _l10n_domain = "comps"
+
+ efi_dir = "centos"
+
+ help_placeholder = "CentOSPlaceholder.html"
+ help_placeholder_with_links = "CentOSPlaceholderWithLinks.html"
+
+ def configure(self, anaconda):
+ BaseInstallClass.configure(self, anaconda)
+ self.setDefaultPartitioning(anaconda.storage)
+
+ def setNetworkOnbootDefault(self, ksdata):
+ if any(nd.onboot for nd in ksdata.network.network if nd.device):
+ return
+ # choose the device used during installation
+ # (ie for majority of cases the one having the default route)
+ dev = network.default_route_device() \
+ or network.default_route_device(family="inet6")
+ if not dev:
+ return
+ # ignore wireless (its ifcfgs would need to be handled differently)
+ if nm.nm_device_type_is_wifi(dev):
+ return
+ network.update_onboot_value(dev, "yes", ksdata)
+
+ def __init__(self):
+ BaseInstallClass.__init__(self)
+
+class RHELAtomicInstallClass(RHELBaseInstallClass):
+ name = "CentOS Atomic Host"
+ sortPriority=21001
+ hidden = not productName.startswith(("CentOS Atomic Host", "CentOS Linux Atomic"))
+
+ def setDefaultPartitioning(self, storage):
+ autorequests = [PartSpec(mountpoint="/", fstype=storage.defaultFSType,
+ size=Size("1GiB"), maxSize=Size("3GiB"), grow=True, lv=True)]
+
+ bootreqs = platform.setDefaultPartitioning()
+ if bootreqs:
+ autorequests.extend(bootreqs)
+
+ disk_space = getAvailableDiskSpace(storage)
+ swp = swap.swapSuggestion(disk_space=disk_space)
+ autorequests.append(PartSpec(fstype="swap", size=swp, grow=False,
+ lv=True, encrypted=True))
+
+ for autoreq in autorequests:
+ if autoreq.fstype is None:
+ if autoreq.mountpoint == "/boot":
+ autoreq.fstype = storage.defaultBootFSType
+ autoreq.size = Size("300MiB")
+ else:
+ autoreq.fstype = storage.defaultFSType
+
+ storage.autoPartitionRequests = autorequests