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