> On March 24, 2016, 5:15 a.m., Jarosław Staniek wrote:
> > My thoughts mostly related to non-Plasma, non-XDG run environments.
> > 
> > KF5 is a great addition, in hierarchy often sitting aside of Qt, not a part 
> > of XDG-compliant desktop. As such we can't say too much about the 
> > underlying OS. It may be XDG-compliant but athis can be a decission at 
> > various levels: by application developer or on deployment. Things can of 
> > course also change after the binary is compiled.
> > 
> > It's hard to see any benefit that apps 'pretend' being XDG-compliant by 
> > setting vartiables this way on, say, MS Windows or Mac. Qt applications on 
> > these systems do not traditionally alter the OS' paradigm, they are.. just 
> > apps, as native as possible/reasonable. Example: there are portable apps 
> > (on an USB stick) - I believe we can benefit if we help making them. These 
> > apps choose not to integrate too much with what's found on the system, 
> > often the user account is shared or temporary.
> > 
> > Setting the variable makes KConfig closer to specific groups of desktop, 
> > which is a a small step back. People may be interested in KConfig lib as a 
> > general purpose utility in their apps.
> > I'd compare setting the variable this way to setting Windows' USERPROFILE 
> > variable on Linux systems, just because it's standard under the former and 
> > under Wine. it does not hurt but leaves bad taste.
> > 
> > So the behaviour at least shall be ifdef'd and the ifdef shall depend on OS 
> > for which we're building. But if the same binary should behave well in 
> > various environments, I am unsure about hardcoding the behaviour. Also I am 
> > not sure if this behaviour should be ON by default. I'd rather have it OFF 
> > if it's present at all.
> 
> Sandro Knauß wrote:
>     Well I see it the other way around. Without support of XDG variables 
> replacement, we need to use env varaible that are available on all systems 
> f.ex. $HOME, so the only way to set the datalocaltion to write it hardcoded 
> in the config to $HOME/.local/share. This is really ony true for linux for 
> others OSes you want to have other diretories. So now we are able to use 
> XDG_DATA_HOME to be used in kconfig and it will be replaced for linux to 
> $HOME/.local/share, for windows to C:/Users/<USER>/AppData/Local and so on.
>     We use QStandardsPaths for replacing so if the replacement is not correct 
> for an OS this is a bug on Qt side, that should be fixed :D
>     
>     And I can't see how this support can harm anyone - if the env is set this 
> is prefered and only if it is not set it is replaced. No dependecy is added 
> and applications are free to not use it at all. If you use XDG_*_HOME without 
> this patch you will return an empty string for it:
>     
>     i[$e] = $XDG_DATA_HOME/bla
>     
>     -> will return /bla
>     
>     with the patch you will get:
>     $HOME/.local/share/bla ( for linux)
>     C:/Users/<USER>/AppData/Local/bla ( for windows)
>     [...]
> 
> Jarosław Staniek wrote:
>     Before we discuss anything, let's narrow to non-Unix OSes (considering 
> Mac OS X as non-Unix):
>     - Does these OSes use XDG_xxxx to locate anything? I can't spot. 
>     - Isn't it misleading to use the XDG_xxxx variables to pass the locations 
> on these OSes? Don't we have a choice?
>     
>     Digression: I am asking because one quality attribute of KF5 for could be 
> to behave or "think" like Qt would, without spreading a "Unix-y" / "XDG" feel 
> when not really necessary. Non-Unix OSes have own equivalents for many things 
> (e.g. xdg-open), at times these equivalents can be found inferior but we, not 
> being authors of the OSes, can just say "let them be such". We have enough of 
> layers and emulators, subsystems e.g. on Windows (see .NET or chrome-based 
> hybrid apps). Frameworks for developing native apps on these OSes shall not 
> attempt to fix these system facilities but just integrate. Users wanting XDG 
> experience have choice to use XDG-compliant systems...
>     
>     Summing up, an #ifdef and update of documentation would be nice. My 2c...
> 
> David Faure wrote:
>     Indeed a better name for these fake env vars could be QT_DATA_HOME, 
> QT_CONFIG_HOME and QT_CACHE_HOME. In fact I'm thinking more and more that 
> QStandardPaths should support these as real env vars on all OSes --- but 
> that's a separate discussion. For the purposes of this patch, we're faking 
> env vars when they are not set, for the convenience of the config files / 
> desktop files syntax. So these names would work just fine, and would simply 
> be the interface for config files to the QStandardPaths API.

+1 from me on this suggestion.  I'm good with this change if the names are 
changed and David's other points are addressed.


- Matthew


-----------------------------------------------------------
This is an automatically generated e-mail. To reply, visit:
https://git.reviewboard.kde.org/r/127462/#review93920
-----------------------------------------------------------


On March 22, 2016, 11:23 a.m., Sandro Knauß wrote:
> 
> -----------------------------------------------------------
> This is an automatically generated e-mail. To reply, visit:
> https://git.reviewboard.kde.org/r/127462/
> -----------------------------------------------------------
> 
> (Updated March 22, 2016, 11:23 a.m.)
> 
> 
> Review request for KDE Frameworks and Matthew Dawson.
> 
> 
> Repository: kconfig
> 
> 
> Description
> -------
> 
> According to freedesktop specification XDG_*_HOME env varaible should be
> replaced, if they are not setted with default values.
> 
> https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html
> 
> as qgetenv only calls getenv, so no path is traslated to it default values. 
> So we have to add this replacement manually. This would help to use 
> XDG_*_HOME more often in configfiles.
> 
> 
> Diffs
> -----
> 
>   autotests/kconfigtest.cpp e92197f3be57ead47b70ca5d040474e7a554c416 
>   src/core/kconfig.cpp 07fa6f552c61c52cc1dd64a1c5fb0e2f00873d50 
> 
> Diff: https://git.reviewboard.kde.org/r/127462/diff/
> 
> 
> Testing
> -------
> 
> Adding tests for XDG_*_HOME variables.
> 
> 
> Thanks,
> 
> Sandro Knauß
> 
>

_______________________________________________
Kde-frameworks-devel mailing list
Kde-frameworks-devel@kde.org
https://mail.kde.org/mailman/listinfo/kde-frameworks-devel

Reply via email to