[PATCH] Make sure packages anaconda requires are installed.

Chris Lumens clumens at redhat.com
Fri Oct 5 19:09:15 UTC 2012


Our forced packages should be marked for installation after all removals
have taken place.
---
 pyanaconda/packaging/__init__.py   |  6 ------
 pyanaconda/packaging/yumpayload.py | 16 +++++++++++++++-
 2 files changed, 15 insertions(+), 7 deletions(-)

diff --git a/pyanaconda/packaging/__init__.py b/pyanaconda/packaging/__init__.py
index c41d06a..65e3776 100644
--- a/pyanaconda/packaging/__init__.py
+++ b/pyanaconda/packaging/__init__.py
@@ -521,12 +521,6 @@ class Payload(object):
         """ Perform pre-installation tasks. """
         iutil.mkdirChain(ROOT_PATH + "/root")
 
-        if packages:
-            map(self.selectPackage, packages)
-
-        if groups:
-            map(self.selectGroup, groups)
-
     def install(self):
         """ Install the payload. """
         raise NotImplementedError()
diff --git a/pyanaconda/packaging/yumpayload.py b/pyanaconda/packaging/yumpayload.py
index ab88d90..6f3160d 100644
--- a/pyanaconda/packaging/yumpayload.py
+++ b/pyanaconda/packaging/yumpayload.py
@@ -109,6 +109,9 @@ class YumPayload(PackagePayload):
         self._yum = None
         self._setup = False
 
+        self._requiredPackages = []
+        self._requiredGroups = []
+
         self.reset()
 
     def reset(self, root=None):
@@ -1070,6 +1073,7 @@ reposdir=%s
                 self._handleMissing(e)
 
         self.selectKernelPackage()
+        self.selectRequiredPackages()
 
     def checkSoftwareSelection(self):
         log.info("checking software selection")
@@ -1138,11 +1142,21 @@ reposdir=%s
         if not selected:
             log.error("failed to select a kernel from %s" % kernels)
 
+    def selectRequiredPackages(self):
+        if self._requiredPackages:
+            map(self._selectYumPackage, self._requiredPackages)
+
+        if self._requiredGroups:
+            map(self._selectYumGroup, self._requiredGroups)
+
     def preInstall(self, packages=None, groups=None):
         """ Perform pre-installation tasks. """
-        super(YumPayload, self).preInstall(packages=packages, groups=groups)
+        super(YumPayload, self).preInstall()
         progress.send_message(_("Starting package installation process"))
 
+        self._requiredPackages = packages
+        self._requiredGroups = groups
+
         if self.install_device:
             self._setUpMedia(self.install_device)
 
-- 
1.7.11.2



More information about the anaconda-patches mailing list