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: