diff options
author | PJ Eby <distutils-sig@python.org> | 2008-01-19 02:55:03 +0000 |
---|---|---|
committer | PJ Eby <distutils-sig@python.org> | 2008-01-19 02:55:03 +0000 |
commit | 60cf2d31c8edb39b418f522ad935320c6da9c927 (patch) | |
tree | 0b107df453c60f90e6159d58aa56cc2bfcf28225 /setuptools/command/easy_install.py | |
parent | 7c4938d53774c51b441970e177ce72cc3bdf68ce (diff) | |
download | external_python_setuptools-60cf2d31c8edb39b418f522ad935320c6da9c927.tar.gz external_python_setuptools-60cf2d31c8edb39b418f522ad935320c6da9c927.tar.bz2 external_python_setuptools-60cf2d31c8edb39b418f522ad935320c6da9c927.zip |
Fix interactions between the various "require" options,
so that downloads aren't repeated and needed eggs are
always installed, even if they were downloaded to the
setup directory already. (backport from trunk)
--HG--
branch : setuptools-0.6
extra : convert_revision : svn%3A6015fed2-1504-0410-9fe1-9d1591cc4771/sandbox/branches/setuptools-0.6%4060066
Diffstat (limited to 'setuptools/command/easy_install.py')
-rwxr-xr-x | setuptools/command/easy_install.py | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/setuptools/command/easy_install.py b/setuptools/command/easy_install.py index da8434c2..acf4fda7 100755 --- a/setuptools/command/easy_install.py +++ b/setuptools/command/easy_install.py @@ -94,7 +94,7 @@ class easy_install(Command): # Options not specifiable via command line self.package_index = None - self.pth_file = None + self.pth_file = self.always_copy_from = None self.delete_conflicting = None self.ignore_conflicts_at_my_risk = None self.site_dirs = None @@ -455,6 +455,11 @@ Please make the appropriate changes for your system and try again. install_needed = install_needed or self.always_copy install_needed = install_needed or os.path.dirname(download) == tmpdir install_needed = install_needed or not download.endswith('.egg') + install_needed = install_needed or ( + self.always_copy_from is not None and + os.path.dirname(normalize_path(download)) == + normalize_path(self.always_copy_from) + ) if spec and not install_needed: # at this point, we know it's a local .egg, we just don't know if @@ -485,11 +490,6 @@ Please make the appropriate changes for your system and try again. - - - - - def process_distribution(self, requirement, dist, deps=True, *info): self.update_pth(dist) self.package_index.add(dist) @@ -527,7 +527,7 @@ Please make the appropriate changes for your system and try again. "Installed distribution %s conflicts with requirement %s" % e.args ) - if self.always_copy: + if self.always_copy or self.always_copy_from: # Force all the relevant distros to be copied or activated for dist in distros: if dist.key not in self.installed_projects: |