summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorChris Lumens <clumens@redhat.com>2012-10-05 14:48:47 -0400
committerChris Lumens <clumens@redhat.com>2012-10-05 15:51:15 -0400
commitcb01bc6c2053693a3d91ebc19f1664eae2e8d175 (patch)
tree0625106749d0144adff8738f8949af0c77946b43
parent663e1344dd35b4cb16453f931ba730daa6c89d88 (diff)
downloadanaconda-cb01bc6c2053693a3d91ebc19f1664eae2e8d175.tar.gz
anaconda-cb01bc6c2053693a3d91ebc19f1664eae2e8d175.tar.xz
anaconda-cb01bc6c2053693a3d91ebc19f1664eae2e8d175.zip
Make sure packages anaconda requires are installed.
Our forced packages should be marked for installation after all removals have taken place.
-rw-r--r--pyanaconda/packaging/__init__.py6
-rw-r--r--pyanaconda/packaging/yumpayload.py16
2 files changed, 15 insertions, 7 deletions
diff --git a/pyanaconda/packaging/__init__.py b/pyanaconda/packaging/__init__.py
index c41d06a26..65e377685 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 ab88d9053..6f3160dfa 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)