Bugzilla – Bug 1208319
etc cleanup aka don't ship files in /etc as rpm
Last modified: 2023-10-31 13:20:25 UTC
For future Linux systems the operating system vendor is only supposed to ship files in /usr. All other locations are considered out of scope. That also enables the use case of shipping the whole /usr tree as an image rather than individual packages. As a consequence packages must not ship any content for /etc in their file list. See https://en.opensuse.org/openSUSE:Packaging_UsrEtc for details - static files or scripts that are not actually meant to be edited should be moved to /usr - prefer compiled in defaults (eg via ./configure) over installing static files that override built in defaults - files that can be overridden or modified by the admin can be placed in /usr/etc. Applications are expected to prefer the version in /etc over the one in /usr/etc then. https://github.com/openSUSE/libeconf may be of help to implement that in applications. - applications that absolutely need a file in /etc may use the https://manpages.opensuse.org/Tumbleweed/systemd/tmpfiles.d.5.en.html mechanism to copy a template from /usr/share/factory/
see also https://lnussel.github.io/2020/12/16/fslayout/
One more item for the list. It's desirable to allow replacing or extending packaged versions of config files. That is useful e.g. to create appliances that ship different settings in /usr. That can be achieved by eg supporting drop-in directories to extend and overwrite settings or by shipping the default config in a separate package.
Document form Thorsten explaining the concept: https://github.com/thkukuk/atomic-updates_and_etc/blob/master/README.md
We have even a Jira for ALP for this: https://jira.suse.com/browse/PED-240