#3498 HIGH First D: vfat filesystems should be mounted with "utf8" option

Zarro Boogs per Child bugtracker at laptop.org
Sun Sep 23 01:48:19 EDT 2007


#3498: vfat filesystems should be mounted with "utf8" option
-------------------------------+--------------------------------------------
  Reporter:  khaled            |       Owner:  J5                    
      Type:  defect            |      Status:  new                   
  Priority:  high              |   Milestone:  First Deployment, V1.0
 Component:  journal-activity  |     Version:                        
Resolution:                    |    Keywords:                        
  Verified:  0                 |  
-------------------------------+--------------------------------------------

Comment(by AlbertCahalan):

 I just checked the kernel code. In the general world-wide case, three
 options are required simultaneously. The result is still mildly defective.

 With "iocharset=utf8", the filesystem becomes case-sensitive. Maybe this
 would not be noticed by a GUI user though, and anyway it is expected for
 Linux filesystems.

 With "utf8", the kernel does special-case UTF-8 code. Case conversion is
 still based on the iocharset. (default: Latin-1) There is a FIXME comment
 in the kernel source, because this situation is terribly broken.

 AFAIK there is no case distinction in Arabic, so either choice should be
 fine...? Languages in Latin-1 are probably best served by "utf8
 codepage=850". Languages in Latin-2 are probably best served by "utf8
 iocharset=iso8859-2 codepage=852". You can see where this is going...

 Essentially there is a kernel bug. Linux only handles case conversion for
 8-bit character sets. You will pick one, possibly the default of
 "iocharset=iso8859-1" for Latin-1. Picking utf8 ("iocharset=utf8")
 disables case conversion, making the filesystem case-sensitive. Picking
 something other than utf8 will allow case insensitivity FOR 256
 CHARACTERS. You can not get case-insensitivity to work simultaneously for
 Russian and Greek.

 I suggest using the Python equivalent of gettext("utf8") or gettext("utf8
 iocharset=utf8"). (use a translatable string) The first choice makes
 Latin-1 special; the second choice makes everything case-sensitive. In the
 Greek *.po file, translate that string to "utf8 codepage=737
 iocharset=iso8859-7". For each language, do likewise.

-- 
Ticket URL: <https://dev.laptop.org/ticket/3498#comment:5>
One Laptop Per Child <https://dev.laptop.org>
OLPC bug tracking system



More information about the Bugs mailing list