Nadeem Vawda <nadeem.va...@gmail.com> added the comment:

I've been able to reproduce this on current builds of 2.7, 3.2 and 3.3.

The problem seems to be that distutils.filelist pathnames using the OS
directory separator, but the regexps used for matching paths are written
to always assume "/"-based paths.

I've been able to get the correct behaviour in this case by making the
module build paths using "/" regardless of the OS directory separator:

    --- a/Lib/distutils/filelist.py
    +++ b/Lib/distutils/filelist.py
    @@ -55,10 +55,10 @@

         def sort(self):
             # Not a strict lexical sort!
    -        sortable_files = sorted(map(os.path.split, self.files))
    +        sortable_files = sorted(f.split("/") for f in self.files)
             self.files = []
             for sort_tuple in sortable_files:
    -            self.files.append(os.path.join(*sort_tuple))
    +            self.files.append("/".join(sort_tuple))


         # -- Other miscellaneous utility methods ---------------------------
    @@ -258,7 +258,7 @@

             for name in names:
                 if dir != os.curdir:        # avoid the dreaded "./" syndrome
    -                fullname = os.path.join(dir, name)
    +                fullname = dir + "/" + name
                 else:
                     fullname = name

I'm not entirely comfortable with this fix, though - it seems like it
would be better to produce paths using the OS directory separator at the
end of the process. Maybe it's possible to add a translation step after
the file list is built and de-duplicated? I don't know much about how
the rest of distutils uses this module.

(Random aside: do we support any platforms that don't support "/" as a
directory separator (even if it isn't the preferred one)? Hmm...)

----------

_______________________________________
Python tracker <rep...@bugs.python.org>
<http://bugs.python.org/issue14004>
_______________________________________
_______________________________________________
Python-bugs-list mailing list
Unsubscribe: 
http://mail.python.org/mailman/options/python-bugs-list/archive%40mail-archive.com

Reply via email to