← Back to team overview

kicad-developers team mailing list archive

Re: XDG_CONFIG_HOME on all platforms

 

On 4/24/2018 6:54 AM, Strontium wrote:
> Hi Wayne,
> 
> I have no personal problem with your patch, but from a standards point
> of view I want to raise this.
> 
> As per:
> https://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html
> |"$XDG_CONFIG_HOME| defines the base directory relative to which user
> specific configuration files should be stored. If |$XDG_CONFIG_HOME| is
> either not set or empty, a default equal to |$HOME|/.config should be used."
> 
> The way I read your patch is that, XDG_CONFIG_HOME is being used to
> specify the absolute path of the kicad configuration directory, not it's
> relative base directory.
> 
> My concern is that if XDG_CONFIG_HOME is set to someones "relative base
> config directory", then that relative base config directory is going to
> get filled with kicad config files.
> 
> Also, on unix, wxStandardPaths::Get().GetUserConfigDir() uses
> XDG_CONFIG_HOME internally, so the current kicad specific support for
> XDG_CONFIG_HOME (as a relative base directory) is redundant.
> see:
> https://github.com/wxWidgets/wxWidgets/blob/master/src/unix/stdpaths.cpp

I just looked at the 3.0.0, 3.0.3, and 3.1.0 wxWidgets sources and
GetUserConfgDir() calls wxFileName::GetHomeDir() which calls
wxGetHomeDir( wxString *home  ) found in src/unix/utilsunx.cpp and I
don't see XDG_CONFIG_HOME anywhere in that code path.  Oddly enough,
XDG_CONFIG_HOME is used GetDocumentsDir().  This appears to have been
fixed in 3.1.1 of wxWidgets but as our minimum wxWidgets version is
3.0.0, we will have to keep the test for XDG_CONFIG_HOME.  Are we having
fun yet? ;)

> 
> Maybe its better to just define a new Kicad specific environment
> variable for the purpose, "KICAD_CONFIG_HOME" for example.  Then there
> is no conflict with any existing uses or standards, your patch as
> written, would also then remove the redundant of processing XDG_CONFIG_HOME.
> 
> Steven

This makes sense to me.  I don't want to use XDG_CONFIG_HOME in a
non-standard way.  I will place the redundant XDG_CONFIG_HOME
environment variable check within #if wxCHECK_VERSION)/#endif and add a
new KICAD_CONFIG_HOME which will take precedence.

>  
> On 24/04/18 01:10, Wayne Stambaugh wrote:
>> Attached is a patch that allows users to have multiple configuration
>> paths using the XDG_CONFIG_HOME environment variable on all platforms.
>> I tested it on windows and it seems to work just fine.  I can test it on
>> linux tonight when I get home but if someone can get to it before then I
>> would appreciate the help.  Would one of our macos devs please test it
>> as well before I merge it.
>>
>> Thanks,
>>
>> Wayne
>>
>>
>> _______________________________________________
>> Mailing list: https://launchpad.net/~kicad-developers
>> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
>> Unsubscribe : https://launchpad.net/~kicad-developers
>> More help   : https://help.launchpad.net/ListHelp
> 
> 
> 
> 
> _______________________________________________
> Mailing list: https://launchpad.net/~kicad-developers
> Post to     : kicad-developers@xxxxxxxxxxxxxxxxxxx
> Unsubscribe : https://launchpad.net/~kicad-developers
> More help   : https://help.launchpad.net/ListHelp
> 


References