On Mon, Mar 02, 2020 at 03:28:18PM +0000, Al Viro wrote: > Why the hell do we need case-insensitive filesystems in the first place? > I have only heard two explanations: > 1) because the layout (including name equivalences) is fixed by > some OS that happens to be authoritative for that filesystem. In that > case we need to match the rules of that OS, whatever they are. Unicode > equivalence may be an interesting part of _their_ background reasons > for setting those rules, but the only thing that really matters is what > rules have they set. > 2) early Android used to include a memory card with VFAT on > it; the card is long gone, but crapplications came to rely upon having > that shit. And rather than giving them a file on the normal filesystem > with VFAT image on it and /dev/loop set up and mounted, somebody wants > to use parts of the normal (ext4) filesystem for it. However, the > same crapplications have come to rely upon the case-insensitive (sensu > VFAT) behaviour there, so we must duplicate that vomit-inducing pile > of hacks on ext4. Ideally - with that vomit-induc{ing,ed} pile > reclassified as a generic feature; those look more respectable. > > (1) is reasonable enough, but belongs in specific weird filesystems. > (2) is, IMO, a bad joke. > > Does anybody know of any other reasons? I've heard it was primarily developed to help port an ecosystem known for prioritising shipping-on-time over quality-of-code from Windows to Linux. I'm not sure why a variant of #2 wasn't a solution they used. I'm not a fan of having case-insensitive unicode tables in the kernel.