Commit b4aecb44 authored by Jason R. Coombs's avatar Jason R. Coombs

Fix issue where easy_install fails on Python 3 on windows installer. Fixes #212

--HG--
branch : distribute
extra : rebase_source : 1920a8d261fa7918d9d3813a104cf2ed11878c7c
parent e63f3e7d
......@@ -32,7 +32,7 @@ depends.txt = setuptools.command.egg_info:warn_depends_obsolete
[console_scripts]
easy_install = setuptools.command.easy_install:main
easy_install-2.6 = setuptools.command.easy_install:main
easy_install-2.7 = setuptools.command.easy_install:main
[setuptools.file_finders]
svn_cvs = setuptools.command.sdist:_default_revctrl
......
......@@ -1425,7 +1425,16 @@ def extract_wininst_cfg(dist_filename):
f.seek(prepended-(12+cfglen))
cfg = ConfigParser.RawConfigParser({'version':'','target_version':''})
try:
cfg.readfp(StringIO.StringIO(f.read(cfglen).split(chr(0),1)[0]))
part = f.read(cfglen)
# part is in bytes, but we need to read up to the first null
# byte.
null_byte = bytes([0]) if sys.version_info >= (2,6) else chr(0)
config, = part.split(null_byte, 1)
# Now the config is in bytes, but on Python 3, it must be
# unicode for the RawConfigParser, so decode it. Is this the
# right encoding?
config = config.decode('ascii')
cfg.readfp(StringIO.StringIO(config))
except ConfigParser.Error:
return None
if not cfg.has_section('metadata') or not cfg.has_section('Setup'):
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment