Commit 005e04d6 authored by PJ Eby's avatar PJ Eby

Fixed ``win32.exe`` support for .pth files, so unnecessary directory

nesting is flattened out in the resulting egg.  (There was a
case-sensitivity problem that affected some distributions, notably
``pywin32``.)

(backport from trunk)

--HG--
branch : setuptools-0.6
extra : convert_revision : svn%3A6015fed2-1504-0410-9fe1-9d1591cc4771/sandbox/branches/setuptools-0.6%4061342
parent 601add28
......@@ -1234,6 +1234,10 @@ Release Notes/Change History
============================
0.6final
* Fixed ``win32.exe`` support for .pth files, so unnecessary directory nesting
is flattened out in the resulting egg. (There was a case-sensitivity
problem that affected some distributions, notably ``pywin32``.)
* Prevent ``--help-commands`` and other junk from showing under Python 2.5
when running ``easy_install --help``.
......
......@@ -744,8 +744,9 @@ Please make the appropriate changes for your system and try again.
native_libs = []
top_level = {}
def process(src,dst):
s = src.lower()
for old,new in prefixes:
if src.startswith(old):
if s.startswith(old):
src = new+src[len(old):]
parts = src.split('/')
dst = os.path.join(egg_tmp, *parts)
......@@ -761,7 +762,6 @@ Please make the appropriate changes for your system and try again.
if not src.endswith('.pth'):
log.warn("WARNING: can't process %s", src)
return None
# extract, tracking .pyd/.dll->native_libs and .py -> to_compile
unpack_archive(dist_filename, egg_tmp, process)
stubs = []
......@@ -1273,7 +1273,7 @@ def get_exe_prefixes(exe_filename):
"""Get exe->egg path translations for a given .exe file"""
prefixes = [
('PURELIB/', ''),
('PURELIB/', ''), ('PLATLIB/pywin32_system32', ''),
('PLATLIB/', ''),
('SCRIPTS/', 'EGG-INFO/scripts/')
]
......@@ -1290,14 +1290,14 @@ def get_exe_prefixes(exe_filename):
continue
if name.endswith('-nspkg.pth'):
continue
if parts[0] in ('PURELIB','PLATLIB'):
if parts[0].upper() in ('PURELIB','PLATLIB'):
for pth in yield_lines(z.read(name)):
pth = pth.strip().replace('\\','/')
if not pth.startswith('import'):
prefixes.append((('%s/%s/' % (parts[0],pth)), ''))
finally:
z.close()
prefixes = [(x.lower(),y) for x, y in prefixes]
prefixes.sort(); prefixes.reverse()
return prefixes
......
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