A problem regarding importing symlinked modules was
recently reported on the Cygwin mailing list:
http://cygwin.com/ml/cygwin/2005-04/msg00257.html
The following test case demonstrates the problem:
$ ls -l
total 1
lrwxrwxrwx 1 jt None 6 Apr 23 13:32
bar.py -> foo.py
-rw-r--r-- 1 jt None 24 Apr 18 20:13 foo.py
$ python -c 'import bar'
Traceback (most recent call last):
File "<string>", line 1, in ?
ImportError: No module named bar
Since Cygwin's case_ok() uses a modified version of
the Windows's version, the symlinked bar module
actually resolves to file foo.py instead of bar.py. This
obviously causes the matching code to fail (regardless
of case).
The attached patch fixes this problem. All that it
does it make Cygwin use the Mac OS X case_ok()
instead of a modified Window's version. Is this OK to
apply? Or, would someone like to make sure I didn't
break the Windows and Mac builds first? AFAICT, I
didn't, but you never know... :,)
Additionally, can I apply this patch to the 2.4 maintence
branch? If so, is "release24-maint" the correct CVS tag
to use?
Thanks.
|