Plone installations may refer to external HTTP hosted files in buildout.cfg. Things go bad when those servers are down, breaking your development and maintenance workflows. Like today: buildout extends = line cannot reach the servers (download.zope.org) where the version pin down definition file, one telling what known good set (KGS) of components your Plone version needs. Even though if the distribution server is up (pypi.python.org) buildout fails badly with very unfriendly error message.
IOError: [Errno socket error] [Errno 60] Operation timed out
(It doesn’t bother to tell that the server which is down is download.zope.org. You need to figure out this by running bin/buildout -D and manually inspect the callstack using Python pdb debugger. What a pain.)
Unified installer based installations do not have this problems as all files are local and internet connection is not required to run buildout.
You can work around your buildout issues by manually downloading required extends files from Plone UnifiedInstaller source code base on Github. Just choose correct branch for your Plone version.
wget --no-check-certificate https://raw.github.com/plone/Installers-UnifiedInstaller/4.1/base_skeleton/zopeapp-versions.cfg wget --no-check-certificate https://raw.github.com/plone/Installers-UnifiedInstaller/4.1/base_skeleton/ztk-versions.cfg wget --no-check-certificate https://raw.github.com/plone/Installers-UnifiedInstaller/4.1/base_skeleton/versions.cfg
Edit versions.cfg, make pin down references local
[buildout] extends = zopeapp-versions.cfg zope-versions.cfg # http://download.zope.org/zopetoolkit/index/1.0.7/zopeapp-versions.cfg # http://download.zope.org/Zope2/index/2.13.15/versions.cfg
Make sure your buildout.cfg referes to local versions.cfg
extends = versions.cfg ztk-versions.cfg zopeapp-versions.cfg
Also you might need to whitelist allowed download hosts in buildout.cfg. If this list is not comprehensive contribute your fixes here.
allow-hosts = github.com *.python.org *.plone.org launchpad.net # *.zope.org
Run buildout. Now it should churn happily forward.