[PATCH] Make sure packages anaconda requires are installed.

David Lehman dlehman at redhat.com
Fri Oct 5 19:45:45 UTC 2012


On Fri, 2012-10-05 at 15:09 -0400, Chris Lumens wrote:
> Our forced packages should be marked for installation after all removals
> have taken place.

I wonder if we'll ever want that package/group selection ability in
Payload.preInstall, but we can always add it back if necessary. Ack.

> ---
>  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)
>  




More information about the anaconda-patches mailing list