2008-01-04
User configuration
Anthony Towns wrote about user configuration (i.e. ~/.foo) and the XDG spec/proposal versus his own (and according to him) simpler version. The main goal of all this is to get rid of all the ~/.foo directories and files in a users home directory. Apart from technically minor differences, I don’t see why AJs proposal would be simpler than the XDG approach. All it does is hardcoding the values which are adjustable in XDG via XDG_*_DIRS.
There is one notable difference though: AJ proposes fallback values which are compatible with existing application paths (i.e. HOME_ETC/XDG_CONFIG_HOME should default to ~/ – resulting in ~/.foo files/dirs). This is a good proposal in a way: If you patch an existing application to strictly follow the proposal made by AJ, it still finds its old configuration (and other files) if the new environment variables are not set. No need to move anything around. However, I think the XDG approach is better since it makes sure that compliant applications don’t clutter ~/ anymore. They do need some mechanism to move existing configurations and data around though if the XDG-compliant stuff isn’t already there, but an old style config exists.
All in all, I think it is worth following the XDG spec, even if it is slightly more complex than AJs proposal. For one, it already exists for a while and I think that some applications already started following that spec. It also makes slightly more sense to me to have the system fully configurable as to where the apps store data as opposed to the hardcoded fallback/default values AJ proposes (even if we would change AJs proposal to use “$HOME-cleaning” default values).
See also Strange MySQL (5.0) issue with authentication
See also Brane Dump — The Thoughts of Matt Palmer
See also About Usability
Permalink

anon said,
January 6, 2008 at 04:15 UTC (+0000)
And all this gleefully ignores network-mounted home directories shared across multiple architectures. Whee!!
sven said,
January 7, 2008 at 11:01 UTC (+0000)
Well, as long as the same application on all architectures supports the XDG spec, this works fine with network mounts.
And using different versions of the same program on different architectures is always asking for trouble. Apart from the fact that the same application on different Unix types (even if the same version) isn’t necessarily expecting all its files in the same location or is even capable of reading the same files due to their binary encoding which might differ between architectures and/or host OSes.
So this really doesn’t make matters all that much worse or more complex for Multi-OS/Multi-Arch networks.