sleeper design bug in the installation layout due to assumptions about filesystem case sensitivity

Albert Astals Cid aacid at kde.org
Fri Sep 30 20:56:36 UTC 2016


El divendres, 30 de setembre de 2016, a les 11:05:19 CEST, René J.V. Bertin va 
escriure:
> Hello,
> 
> I think I've tried to raise some awareness about this already in the past.
> The issue has come up again among KDE/Mac users, and this time I decided to
> file a ticket on BKO. Finding the right category wasn't trivial, so I
> picked what seemed the best compromise and relay it here:
> 
> https://bugs.kde.org/show_bug.cgi?id=369554
> 
> I don't really know how invasive it would be to address this issue properly,
> or rather, how to fix this without being overly invasive. Looking at
> KPeople I see
> 
> /opt/local/include/KF5/KPeople/KPeople/Widgets/Actions
> /opt/local/include/KF5/KPeople/kpeople/widgets/actions.h
> 
> which means that on a case-insensitive-but-preserving FS (HFS, NTFS) you can
> end up with 4 different situations:
> 
> /opt/local/include/KF5/KPeople/kpeople/widgets/{Actions,actions.h}
> /opt/local/include/KF5/KPeople/KPeople/widgets/{Actions,actions.h}
> /opt/local/include/KF5/KPeople/kpeople/Widgets/{Actions,actions.h}
> /opt/local/include/KF5/KPeople/KPeople/Widgets/{Actions,actions.h}
> 
> and that's presuming that the case preservations works reliably. Transfer
> such a tree via a FAT32 thumbdrive and all bets are off. 

Why would you do that? 

Honestly I think you're trying to fix a corner case that noone is really 
facing.

Cheers,
  Albert

> Evidently that's
> less likely to happen with a headerfile directory (and just shouldn't be
> done) but I'm concerned that the underlying implicit assumption about the
> FS has been made elsewhere too. And as I note in the ticket: Mac OS app
> bundles should support being transferred to and from case-insensitive
> volumes and still be usable on a case-sensitive volume (idem for KF5
> framework bundles if they ever see the light).
> 
> The most straightforward fix would be to use only CamelCase OR lowercase
> header directories, i.e. one of
> /opt/local/include/KF5/KPeople/kpeople/widgets/{Actions,actions.h}
> /opt/local/include/KF5/KPeople/KPeople/Widgets/{Actions,actions.h}
> 
> This is also what Qt5 does, and one can presume they have seen a lot more
> testing of this approach on many more platforms. NB: one could create the
> appropriate symlinks when installing to a case-sensitive FS, but evidently
> that makes it impossible to copy the result to a case-insensitive FS.
> 
> I realise that doing this is an invasive change that requires patching lots
> of dependent code, and even if those patches could be generated
> automatically the patched code would then no longer build against older
> versions of the frameworks. Still, it'd be an almost perfect way to force
> people to look for other places where the assumption about FS
> case-sensitivity could lead to problems.
> 
> R




More information about the Kde-frameworks-devel mailing list