> 
> this is what can be called "old style" overrides.

Things get to be "old" because they actually work well.

> The modern way of doing it is the "stateless" style, most commonly associated 
> with systemd but used by plenty of other projects, plus "drop-in" .d 
> directories.
> 
> The basic documentation can be found at 
> <https://uapi-group.org/specifications/specs/configuration_files_specification/>.
>  libeconf provides an implementation of the spec and its details.
> 
> Simply speaking the stateless style works like this:
> 
> * Distro/upstream configuration in /usr/lib/$proj/foo.conf (read-only)
> * Admin can override the standard configuration via /etc/$proj/foo.conf
> * Runtime overrides can be placed in /run/$proj/foo.conf
> * User can override admin's and upstream's config via 
> $HOME/.config/$proj/foo.conf
> * User's runtime overrides can be placed in $XDG_RUNTIME_DIR/$proj/foo.conf
> 
> In addition, snippets that add or override only part of the configuration can 
> be loaded from {/usr/lib,/etc,/run,$HOME/.config}/$proj/foo.conf.d/extra1.conf

What group of idiots came up with a system where instead of having all of the 
configs in maximum of two places (/etc | ~/.config) have now spread them out 
across five completely separate directory trees?

I'm sorry but this is just SILLY.  Spewing files all over the filesystem like 
this is exactly why things like /opt and /usr/local got created:  to GROUP 
package-related files together.

<sigh> The pendulum swings, I suppose.

--J

Reply via email to