[Lazarus] Lazarus config woes

Martin lazarus at mfriebe.de
Fri Apr 1 15:16:59 CEST 2011

On 01/04/2011 05:23, Hans-Peter Diettrich wrote:
> Martin schrieb:
>>> > Searching for config files in the exe dir (even if done) doesn't 
>>> solve
>>> > the first issue, as there may not be any config files in that 
>>> directory
>>> > to start with.
>>> Then the IDE creates defaults.
>> No. This is:
>> - if a search in the exe-dir is added, (so the the behaviour will be: 
>> search exe-dir, search global-conf dir)
>> - if a global config exists
>> The IDE will search the exe dir, will not find a config, will find 
>> the global conf
>> If no global conf exists, it will search all places, and then create 
>> the globa conf
> If a global config is found, but is invalid/incompatible, a local 
> config should be created.

sounds good at first, but is actually worse.

Because this behaviour is unpredictable from the end users view.

Rules for "invalid/incompatible" may be complex. They may not always 
apply, even if the user hopes for.

In fact they may change, later. 2 installations that have shared the 
global conf for a long time, may become "invalid/incompatible" at some 
point (maybe only for a short time) => but then all the sudden one of 
them has a conf in the exe-dir => not good at all.

>>> > In this case the unaware user is still screwed.
>>> Why do you think he is screwed?
>> Because if the user is unaware, and never creates a config by hand, 
>> or forces it into the exe dir, then he./she always ends up with a 
>> global conf.
>> So searching the exe dir first, doesn't help. (unless the user is 
>> aware, but an aware user can use -pcp too)
> The requirement for an explicit -pcp can be reduced to the single 
> invocation, that shall create a new config. This job also could become 
> a menu option, or an option button in the IDE settings dialog. Why 
> press the user to specify a new pcp at the commandline, when the 
> config always is created by the started IDE?

the requirement to create a script, is a single invocation too...
where is the difference?

a profile manager, selectable from menu, could create this script for 
you (or the windows shortcut). Again where is the difference?

btw , whith config in the exe dir => it can get really fuzzy.

if you have a link (or shortcut) to your exe, and there is config in the 
real exe-dir, and the link-dir... which one to take?

> About primary and secondary config paths:
> At least on my Windows the Lazarus directory is listed as the 
> secondary config path. [I cannot check this for Linux, having only an 
> old Lazarus version without display of the config]
> This indicates to me that the IDE already is aware of the Lazarus 
> (source or EXE?) directory, so that it can/should look there for a 
> config anyway, before looking into the default directory.
> I'm confused about the use of the secondary config path. In which case 
> is this path used at all?
I think it's for backward compatibility? 0.9.24 had the config in the 
exe dir... so it must still be found...

>>> Maybe a check could be added to warn if the environmentoptions.xml 
>>> is from a future Lazarus with two options: Quit and continue.
>> Imho on any conflict:
>> - diff version
>> - diff last exe path  (doesn't work on linux, since recompiled exe 
>> goes into user dir)
>> - missing package source
>> the user should be:
>> - informed which config is used
>> - offered to create a new one, in a new place (run some kind of 
>> profile manager)
>>   => and be told how to load this.
> - offered to create or update an according desktop icon

>> - offered to load a diff config

More information about the Lazarus mailing list