[GSoC][RFC] Case Insensitive Filesystem

Cesar Izurieta cesar at ecuarock.net
Wed Mar 26 18:39:22 CDT 2008

On Wed, Mar 26, 2008 at 6:17 PM, Scott Ritchie <scott at open-vote.org> wrote:
> Alexandre Julliard wrote:
>  > Marc Andre Tanner <mat at brain-dump.org> writes:
>  >
>  >> Yes that's true the case information is lost but is it really needed?
>  >> If you create the files with the original mixed case you will have to
>  >> scan the whole directory in order to match it to a given filename.
>  >> And if i am not mistaken this is exactly what wine does.
>  >
>  > Yes, and that's precisely because Wine wants to preserve case, so that
>  > tools that look at the filesystem directly see the right thing. If you
>  > are going to store everything lowercase in the filesystem, then we could
>  > just as well do that inside Wine, without a FUSE module.
>  >
>  It seems like we have a few goals:
>  * Prevent having to read the whole directory when looking for a
>  case-insensitive file
>  * Allow non-Wine programs to work with the cased filenames
>  * Prevent the creation of conflicting files

We could do this for the drive_c directory but what about /? you
cannot enforce that there. Maybe this part project should be divided
into two different problems. 1. How to achieve that for drive_c, and
2. how to mount a proxy filesystem for / and apply some rules when
conflicting files exist, as keep the newest conflicting file with the
original name and rename other files like it was proposed on another
thread on this list.

>  The last one is important, as we need to have a 1:1 correspondence
>  between cased and uncased files in the .wine folder to prevent breakages
>  when someone, say, installs a patch with different casing from a zip file.
>  I don't see any reason why it would be bad to have the FUSE module
>  mounted at login rather than when Wine starts.  This would make your
>  Wine folder no different to other apps than, say, a vfat disk mounted
>  there.  I should be able to extract a zip with file-roller containing
>  "foo.txt" and have it overwrite "Foo.txt" even if Wine isn't running.
>  Thanks,
>  Scott Ritchie

More information about the wine-devel mailing list