[Checkins] SVN: zc.buildout/branches/2/ bug fix: work around distribute's way of dealing with setuptools

Thomas Lotze cvs-admin at zope.org
Thu May 3 20:49:39 UTC 2012


Log message for revision 125640:
  bug fix: work around distribute's way of dealing with setuptools
  
  There used to be an interaction between buildout's and distribute's ways of
  subsituting distribute for setuptools that resulted in buildout not being able
  to install a pinned version of distribute.
  
  

Changed:
  U   zc.buildout/branches/2/CHANGES.txt
  U   zc.buildout/branches/2/src/zc/buildout/easy_install.py

-=-
Modified: zc.buildout/branches/2/CHANGES.txt
===================================================================
--- zc.buildout/branches/2/CHANGES.txt	2012-05-03 18:36:59 UTC (rev 125639)
+++ zc.buildout/branches/2/CHANGES.txt	2012-05-03 20:49:35 UTC (rev 125640)
@@ -30,6 +30,8 @@
 - https://bugs.launchpad.net/bugs/697913 : Buildout doesn't honor exit code
   from scripts. Fixed.
 
+-Work around distribute's way of dealing with setuptools.
+
 1.5.2 (2010-10-11)
 ==================
 

Modified: zc.buildout/branches/2/src/zc/buildout/easy_install.py
===================================================================
--- zc.buildout/branches/2/src/zc/buildout/easy_install.py	2012-05-03 18:36:59 UTC (rev 125639)
+++ zc.buildout/branches/2/src/zc/buildout/easy_install.py	2012-05-03 20:49:35 UTC (rev 125640)
@@ -816,6 +816,16 @@
 
 
     def _constrain(self, requirement):
+        if requirement.project_name == 'setuptools':
+            # Replace a requirement for setuptools by one for distutils early
+            # on for two reasons: 1. We don't want to miss constraining a
+            # requirement for distribute just because no setuptools version is
+            # pinned. 2. Distribute's requirements parsing replaces a
+            # versioned requirement for setuptools by an unversioned one for
+            # distribute, so we'd miss constraining a requirement for
+            # distribute even if that is pinned.
+            requirement = pkg_resources.Requirement.parse(setuptools_key)
+
         version = self._versions.get(requirement.project_name)
         if version:
             if version not in requirement:



More information about the checkins mailing list