diff --git a/SOURCES/anaconda-centos-add-centos-install-class.patch b/SOURCES/anaconda-centos-add-centos-install-class.patch index 89d64b5..208a851 100644 --- a/SOURCES/anaconda-centos-add-centos-install-class.patch +++ b/SOURCES/anaconda-centos-add-centos-install-class.patch @@ -1,7 +1,19 @@ -diff -uNr anaconda-19.31.79__orig/pyanaconda/installclasses/centos.py anaconda-19.31.79/pyanaconda/installclasses/centos.py ---- anaconda-19.31.79__orig/pyanaconda/installclasses/centos.py 1970-01-01 01:00:00.000000000 +0100 -+++ anaconda-19.31.79/pyanaconda/installclasses/centos.py 2014-06-16 22:47:16.033891088 +0100 -@@ -0,0 +1,88 @@ +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 +# @@ -22,83 +34,80 @@ diff -uNr anaconda-19.31.79__orig/pyanaconda/installclasses/centos.py anaconda-1 +# + +from pyanaconda.installclass import BaseInstallClass -+from pyanaconda.constants import * -+from pyanaconda.product import * ++from pyanaconda.product import productName +from pyanaconda import network +from pyanaconda import nm -+import types -+ -+class InstallClass(BaseInstallClass): -+ # name has underscore used for mnemonics, strip if you dont need it -+ id = "centos" -+ name = N_("CentOS Linux") -+ sortPriority = 25000 -+ if productName.startswith("Red Hat ") or productName.startswith("Fedora "): -+ hidden = 1 ++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 -+ bootloaderExtraArgs = [] + -+ ignoredPackages = ["ntfsprogs", "reiserfs-utils"] ++ ignoredPackages = ["ntfsprogs", "reiserfs-utils", "hfsplus-tools"] + + installUpdates = False + + _l10n_domain = "comps" + -+ efi_dir = "redhat" ++ efi_dir = "centos" ++ ++ help_placeholder = "CentOSPlaceholder.html" ++ help_placeholder_with_links = "CentOSPlaceholderWithLinks.html" + + def configure(self, anaconda): + BaseInstallClass.configure(self, anaconda) -+ BaseInstallClass.setDefaultPartitioning(self, anaconda.storage) ++ self.setDefaultPartitioning(anaconda.storage) + -+ # Set first boot policy regarding ONBOOT value -+ # (i.e. which network devices should be activated automatically after reboot) -+ # After switch root we set ONBOOT=no as default for all devices not activated -+ # in initramfs. Here, at the end of installation, we check and modify it eventually. + def setNetworkOnbootDefault(self, ksdata): -+ # if there is no device to be autoactivated after reboot -+ for devName in nm.nm_devices(): -+ if nm.nm_device_type_is_wifi(devName): -+ continue -+ try: -+ onboot = nm.nm_device_setting_value(devName, "connection", "autoconnect") -+ except nm.SettingsNotFoundError: -+ continue -+ if not onboot == False: -+ return -+ -+ # set ONBOOT=yes for the device used during installation -+ # (ie for majority of cases the one having the default route) -+ devName = network.default_route_device() -+ if not devName: ++ if any(nd.onboot for nd in ksdata.network.network if nd.device): + return -+ if nm.nm_device_type_is_wifi(devName): ++ # 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 -+ ifcfg_path = network.find_ifcfg_file_of_device(devName, root_path=ROOT_PATH) -+ if not ifcfg_path: ++ # ignore wireless (its ifcfgs would need to be handled differently) ++ if nm.nm_device_type_is_wifi(dev): + return -+ ifcfg = network.IfcfgFile(ifcfg_path) -+ ifcfg.read() -+ ifcfg.set(('ONBOOT', 'yes')) -+ ifcfg.write() -+ for nd in ksdata.network.network: -+ if nd.device == devName: -+ nd.onboot = True -+ break ++ network.update_onboot_value(dev, "yes", ksdata) + + def __init__(self): + BaseInstallClass.__init__(self) -diff -uNr anaconda-19.31.79__orig/pyanaconda/installclasses/fedora.py anaconda-19.31.79/pyanaconda/installclasses/fedora.py ---- anaconda-19.31.79__orig/pyanaconda/installclasses/fedora.py 2014-04-29 01:45:59.000000000 +0100 -+++ anaconda-19.31.79/pyanaconda/installclasses/fedora.py 2014-06-16 22:57:40.525890315 +0100 -@@ -31,7 +31,7 @@ - id = "fedora" - name = N_("_Fedora") - sortPriority = 10000 -- if productName.startswith("Red Hat "): -+ if productName.startswith("Red Hat ") or productName.startswith("CentOS"): - hidden = 1 - - _l10n_domain = "anaconda" ++ ++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 diff --git a/SOURCES/anaconda-centos-bootfs-default-to-xfs.patch b/SOURCES/anaconda-centos-bootfs-default-to-xfs.patch index 31432af..b03ef3a 100644 --- a/SOURCES/anaconda-centos-bootfs-default-to-xfs.patch +++ b/SOURCES/anaconda-centos-bootfs-default-to-xfs.patch @@ -1,7 +1,7 @@ -diff -uNr anaconda-19.31.79__orig/pyanaconda/bootloader.py anaconda-19.31.79/pyanaconda/bootloader.py ---- anaconda-19.31.79__orig/pyanaconda/bootloader.py 2014-04-29 01:45:59.000000000 +0100 -+++ anaconda-19.31.79/pyanaconda/bootloader.py 2014-06-30 17:19:19.197386280 +0100 -@@ -1404,7 +1404,7 @@ +diff -uNr anaconda-21.48.22.56__orig/pyanaconda/bootloader.py anaconda-21.48.22.56/pyanaconda/bootloader.py +--- anaconda-21.48.22.56__orig/pyanaconda/bootloader.py 2015-10-29 14:23:19.000000000 +0000 ++++ anaconda-21.48.22.56/pyanaconda/bootloader.py 2015-12-07 17:23:41.013000000 +0000 +@@ -1411,7 +1411,7 @@ @property def stage2_format_types(self): @@ -10,7 +10,7 @@ diff -uNr anaconda-19.31.79__orig/pyanaconda/bootloader.py anaconda-19.31.79/pya return ["xfs", "ext4", "ext3", "ext2", "btrfs"] else: return ["ext4", "ext3", "ext2", "btrfs", "xfs"] -@@ -2063,7 +2063,7 @@ +@@ -2105,7 +2105,7 @@ @property def stage2_format_types(self): diff --git a/SOURCES/anaconda-centos-disable-mirrors.patch b/SOURCES/anaconda-centos-disable-mirrors.patch index fb5b2eb..a8d1d39 100644 --- a/SOURCES/anaconda-centos-disable-mirrors.patch +++ b/SOURCES/anaconda-centos-disable-mirrors.patch @@ -1,15 +1,25 @@ -diff -uNr anaconda-19.31.79__orig/pyanaconda/packaging/yumpayload.py anaconda-19.31.79/pyanaconda/packaging/yumpayload.py ---- anaconda-19.31.79__orig/pyanaconda/packaging/yumpayload.py 2014-04-29 01:45:59.000000000 +0100 -+++ anaconda-19.31.79/pyanaconda/packaging/yumpayload.py 2014-07-02 14:36:15.360488588 +0100 -@@ -428,7 +428,10 @@ +diff -uNrp anaconda-21.48.22.121.orig/pyanaconda/packaging/yumpayload.py anaconda-21.48.22.121/pyanaconda/packaging/yumpayload.py +--- anaconda-21.48.22.121.orig/pyanaconda/packaging/yumpayload.py 2017-08-23 02:04:02.304040176 +0000 ++++ anaconda-21.48.22.121/pyanaconda/packaging/yumpayload.py 2017-08-23 02:12:02.749029047 +0000 +@@ -518,12 +518,16 @@ reposdir=%s @property def mirrorEnabled(self): with _yum_lock: -- return "fastestmirror" in self._yum.plugins._plugins +- # yum initializes with plugins disabled, and when plugins are disabled +- # _yum.plugins is a DummyYumPlugins object, which has no useful attributes. +- if hasattr(self._yum.plugins, "_plugins"): +- return "fastestmirror" in self._yum.plugins._plugins ++ # we just skip this on CentOS since we cant support it yet + if productName.startswith("CentOS"): -+ return 0 -+ else: -+ return "fastestmirror" in self._yum.plugins._plugins ++ return False + else: +- return False ++ # yum initializes with plugins disabled, and when plugins are disabled ++ # _yum.plugins is a DummyYumPlugins object, which has no useful attributes. ++ if hasattr(self._yum.plugins, "_plugins"): ++ return "fastestmirror" in self._yum.plugins._plugins ++ else: ++ return False def getRepo(self, repo_id): - """ Return the yum repo object. """ + """Return the yum repo object.""" diff --git a/SOURCES/anaconda-centos-efidir-centos.patch b/SOURCES/anaconda-centos-efidir-centos.patch deleted file mode 100644 index 79d58f7..0000000 --- a/SOURCES/anaconda-centos-efidir-centos.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -uNr anaconda-19.31.79__orig/pyanaconda/installclasses/centos.py anaconda-19.31.79/pyanaconda/installclasses/centos.py ---- anaconda-19.31.79__orig/pyanaconda/installclasses/centos.py 2014-06-30 17:13:18.111386761 +0100 -+++ anaconda-19.31.79/pyanaconda/installclasses/centos.py 2014-06-30 17:13:43.071386726 +0100 -@@ -43,7 +43,7 @@ - - _l10n_domain = "comps" - -- efi_dir = "redhat" -+ efi_dir = "centos" - - def configure(self, anaconda): - BaseInstallClass.configure(self, anaconda) diff --git a/SPECS/anaconda.spec b/SPECS/anaconda.spec index bfe9859..50b81e2 100644 --- a/SPECS/anaconda.spec +++ b/SPECS/anaconda.spec @@ -16,10 +16,12 @@ URL: http://fedoraproject.org/wiki/Anaconda Source0: %{name}-%{version}.tar.bz2 Patch1: anaconda-centos-add-centos-install-class.patch Patch2: anaconda-centos-set-right-eula-location.patch -Patch3: anaconda-centos-efidir-centos.patch Patch4: anaconda-centos-disable-mirrors.patch Patch5: anaconda-centos-bootfs-default-to-xfs.patch - +Patch6: anaconda-centos-help-text.patch +Patch7: anaconda-centos-skip-retry-if-not-connected.patch +Patch8: 9800-rpmostreepayload-Rework-remote-add-handling.patch + # Versions of required components (done so we make sure the buildrequires # match the requires versions of things). %define gettextver 0.18.1 @@ -182,7 +184,7 @@ Requires: keybinder3 Requires: NetworkManager-wifi %endif Requires: yelp -Requires: anaconda-user-help >= %{helpver} +#Requires: anaconda-user-help >= %{helpver} # Needed to compile the gsettings files BuildRequires: gsettings-desktop-schemas @@ -233,9 +235,11 @@ runtime on NFS/HTTP/FTP servers or local disks. %setup -q %patch1 -p1 %patch2 -p1 -%patch3 -p1 %patch4 -p1 %patch5 -p1 +%patch6 -p1 +%patch7 -p1 +%patch8 -p1 %build %configure --disable-static \ @@ -328,6 +332,9 @@ update-desktop-database &> /dev/null || : %{_prefix}/libexec/anaconda/dd_* %changelog +* Tue Aug 22 2017 Johnny Hughes - 21.48.22.121-1.el7.centos +- Refactor anaconda-centos-add-centos-install-class.patch for NM Autoconnect issue + * Mon Jul 31 2017 CentOS Sources - 21.48.22.121-1.el7.centos - Add CentOS install class as default - use the right path for the EULA string (issue 7165, bstinson)