[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: systemd .service file conversion



> FWIW, I happen to agree with Marc. Having everything in /etc makes it
> *much* clearer what the actual current configuration is; it also means
> that if the defaults change on upgrade, your environment doesn't
> suddenly start acting differently or inconsistently.

If we want everything that makes a configuration decision in our /etc then 
we would want all the source packages there. After all, every tool we use 
has some sort default behaviour compiled into it. If desired, it can (often) 
be overridden with a config file in /etc (perhaps setting the environment 
appropriately). Open just about any man page and look for the word "default" 
and ask if, when we say "all configuration in /etc", do we actually have 
that?

Is the configuration default that "ls --color" uses red for compressed files 
expressed in /etc? How about apt using priorities of 100 for installed 
packages and 500 for packages in repositories? Or grep(1) using basic regex 
not extended regex? Or find(1) not following symbolic links? Or that 
relatime is a default mount option for ext4?

But do we care? No. We're able to distinguish between defaults and local 
configuration for all these standard tools. We understand that there are 
defaults and if we don't like them we need to create a configuration file or 
change our set-up in some way. We don't demand that apt install a 
/etc/apt/preferences that contains that default pinning, we accept that 
there is a default and we know that, if we want to override it, we should 
create that file ourselves and configure away.

I idly wondered if perhaps /lib/udev just should be compiled into one (ugly) 
binary file so that it didn't *look* like a pile of text configuration 
files. Then, perhaps everyone would be happier as it would be easier to 
distinguish between "compiled in defaults" and local configuration. But even 
that isn't necessary -- we've already shown we can cope files that look like 
config files being in other locations to provide us with defaults -- xorg 
packages drop files with defaults in /usr/share/X11/xorg.conf.d/ that we can 
cheerfully override in /etc/X11/xorg.conf.d/ if we need to. The 1200 
packages that ship files in foo.d/ directories that aren't inside /etc would 
tend to suggest we can cope with this.

I think policy is quite clear -- configuration files live in /etc. This part 
of policy is designed to stop (for example) some silly web app having us 
hunt around to find /usr/share/foo/config.php instead of permitting us to 
configure the thing from /etc. It is not trying to conflate defaults with 
configuration files; I think we're good at misidentifying which files are 
configuration files. 

So in all these other cases including traditional unix tools and our own 
tools that we use on a daily basis, we manage to have defaults *not* in /etc 
and the local configuration files that change the defaults in /etc. I am 
left wondering why udev supposed to be different to that.


-- 
Stuart Prescott    http://www.nanonanonano.net/   stuart@nanonanonano.net
Debian Developer   http://www.debian.org/         stuart@debian.org
GPG fingerprint    BE65 FD1E F4EA 08F3 23D4 3C6D 9FE8 B8CD 71C5 D1A8




Reply to: