basedir: support separate (vendor/local) trees and masking for config files
When shipping image-based systems we need a way to handle configuration. The industry is trending toward shipping the vendor-provided tree (possibly as read-only) in /usr
, but historically configuration is separate and in /etc
. The solution adopted by many projects (individually like systemd and libeconf, or project-wide like SUSE MicroOS or Fedora Core) is to ship vendor-provided defaults in /usr/etc
, and let local modifications be located (with higher priority) in /etc
.
But there is no standard format or specification - recently at the Image-Based Linux Summit there was agreement with many stakeholders (list of represented projects and minutes at https://uapi-group.org/docs/minutes/2022-10-05__image-based-linux-summit/ ) that it would be really beneficial to have such a specification. So we took the XDG Base Directory Specification and added the necessary changes, that reflect what existing projects support, the result is at https://uapi-group.org/specifications/specs/base_directory_specification/
Given the XDG spec already exists, and these changes are backward-compatible, we'd like to propose to merge them back.