Export the packages anvil requires.
Export and ensure that we don't remove the dependencies that anvil and openstack source directories requires to operate. - d2to1 is required to even run setup.py - setuptools-git (the same) - pbr (the same) Fixes bug: #1189707 Change-Id: I099856eba07784afa2b65c3e4ebf6c0abcaab4bd
This commit is contained in:
@@ -77,7 +77,6 @@ class DependencyHandler(object):
|
||||
self.distro = distro
|
||||
self.root_dir = root_dir
|
||||
self.instances = instances
|
||||
|
||||
self.deps_dir = sh.joinpths(self.root_dir, "deps")
|
||||
self.download_dir = sh.joinpths(self.deps_dir, "download")
|
||||
self.log_dir = sh.joinpths(self.deps_dir, "output")
|
||||
@@ -88,10 +87,17 @@ class DependencyHandler(object):
|
||||
self.pip_executable = str(self.distro.get_command_config('pip'))
|
||||
self.pips_to_install = []
|
||||
self.forced_packages = []
|
||||
# these packages conflict with our deps and must be removed
|
||||
# These packages conflict with our deps and must be removed
|
||||
self.nopackages = []
|
||||
self.package_dirs = self._get_package_dirs(instances)
|
||||
self.python_names = self._get_python_names(self.package_dirs)
|
||||
# Instantiate this as late as we can.
|
||||
self._python_names = None
|
||||
|
||||
@property
|
||||
def python_names(self):
|
||||
if self._python_names is None:
|
||||
self._python_names = self._get_python_names(self.package_dirs)
|
||||
return self._python_names
|
||||
|
||||
@staticmethod
|
||||
def _get_package_dirs(instances):
|
||||
|
||||
@@ -21,6 +21,7 @@ import sys
|
||||
from datetime import datetime
|
||||
|
||||
from anvil import colorizer
|
||||
from anvil import env
|
||||
from anvil import log as logging
|
||||
from anvil.packaging import base
|
||||
from anvil.packaging.helpers import pip_helper
|
||||
@@ -412,11 +413,17 @@ BuildArch: noarch
|
||||
sh.unlink(self.tracereader.filename())
|
||||
self.tracereader = None
|
||||
|
||||
# Don't take out packages that anvil requires to run...
|
||||
no_remove = os.env.get_key('REQUIRED_PACKAGES', '').split()
|
||||
no_remove = sorted(set(no_remove))
|
||||
rpm_names = []
|
||||
for name in self._convert_names_python2rpm(self.python_names):
|
||||
if self.helper.is_installed(name):
|
||||
if self.helper.is_installed(name) and name not in no_remove:
|
||||
rpm_names.append(name)
|
||||
|
||||
if rpm_names:
|
||||
cmdline = ["yum", "remove", "--remove-leaves", "-y"] + rpm_names
|
||||
cmdline = ["yum", "remove", "--remove-leaves", "-y"]
|
||||
for p in no_remove:
|
||||
cmdline.append("--exclude=%s" % (p))
|
||||
cmdline.extend(rpm_names)
|
||||
sh.execute(cmdline, stdout_fh=sys.stdout, stderr_fh=sys.stderr)
|
||||
|
||||
Reference in New Issue
Block a user