Go to file
Franck Bui 6495361c7d meson: add build option for install path of main config files
This allows distros to install configuration file templates in /usr/lib/systemd
for example.

Currently we install "empty" config files in /etc/systemd/. They serve two
purposes:

- The file contains commented-out values that show the default settings.
- It is easier to edit the right file if it is already there, the user doesn't
  have to type in the path correctly, and the basic file structure is already in
  place so it's easier to edit.

Things that have happened since this approach was put in place:

- We started supporting drop-ins for config files, and drop-ins are the
  recommended way to create local configuration overrides.
- We have systemd-analyze cat-config which takes care of iterating over
  all possible locations (/etc, /run, /usr, /usr/local) and figuring out
  the right file.
- Because of the first two points, systemd-analyze cat-config is much better,
  because it takes care of finding all the drop-ins and figuring out the
  precedence. Looking at files manually is still possible of course, but not
  very convenient.

The disadvantages of the current approach with "empty" files in /etc:

- We clutter up /etc so it's harder to see what the local configuration actually is.
- If a user edits the file, package updates will not override the file (e.g.
  systemd.rpm uses %config(noreplace). This means that the "documented defaults"
  will become stale over time, if the user ever edits the main config file.

Thus, I think that it's reasonable to:

- Install the main config file to /usr/lib so that it serves as reference for
  syntax and option names and default values and is properly updated on package
  upgrades.
- Recommend to users to always use drop-ins for configuration and
  systemd-analyze cat-config to view the documentation.

This setting makes this change opt-in.

Fixes #18420.

[zjs: add more text to the description]
2023-10-17 18:57:45 +02:00
.clusterfuzzlite ci: unpin CFLite 2022-04-26 09:13:57 +00:00
.github mkosi: Update to latest 2023-10-05 16:57:10 +02:00
.semaphore test: use 'until' instead of 'while !' 2023-09-06 19:54:29 +01:00
catalog systemd.catalog: freezed -> froze 2023-09-05 12:57:28 +08:00
coccinelle tree-wide: use cocinnelle to apply _NEG_ macros 2023-08-16 12:52:56 +02:00
docs docs/FILE_DESCRIPTOR_STORE: NotifyAccess=cgroup -> all 2023-10-17 11:59:38 +01:00
factory docs: excorcise NIS from nsswitch.conf 2023-09-20 15:17:52 +02:00
hwdb.d add udev rule for micmute (f20) 2023-10-08 15:41:13 +01:00
LICENSES LICENSES/README.md: fix syntax 2023-07-08 22:33:53 +00:00
man Merge pull request #29242 from fbuihuu/update-main-config-file-headers 2023-10-17 18:56:09 +02:00
mkosi.conf.d mkosi: Update to latest 2023-10-05 16:57:10 +02:00
mkosi.presets mkosi: use different configs for Debian kernel package list 2023-10-09 22:19:00 +01:00
modprobe.d meson: install the right README file in modprobe.d 2021-07-07 14:52:05 +02:00
network meson: use install_emptydir() and drop meson-make-symlink.sh 2023-08-08 22:11:34 +01:00
po po: Translated using Weblate (French) 2023-10-12 17:42:22 +01:00
presets preset: enable systemd-networkd-wait-online.service by default 2023-06-07 21:51:37 +01:00
rules.d rules: add mtd/by-name symlinks 2023-10-17 11:43:30 +02:00
shell-completion bash-completion: add missing commands and options to systemd-dissect 2023-09-25 16:46:11 +02:00
src meson: add build option for install path of main config files 2023-10-17 18:57:45 +02:00
sysctl.d meson: use install_emptydir() and drop meson-make-symlink.sh 2023-08-08 22:11:34 +01:00
sysusers.d sysusers.d: create the user for systemd-journal-upload.service 2023-06-19 23:42:00 +02:00
test test: don't restart journal-upload on an expected fail 2023-10-17 14:55:12 +01:00
tmpfiles.d Revert "Revert "tmpfiles.d: adjust /dev/vfio/vfio access mode"" 2023-08-09 11:27:39 +09:00
tools doc-sync: add support for uploading the documentation for main 2023-10-10 17:50:04 +01:00
units Merge pull request #29272 from enr0n/coredump-container 2023-10-16 16:13:16 +02:00
xorg xorg/50-systemd-user: add a full license header 2021-10-01 14:45:00 +02:00
.clang-format clang-format: Adjust style of pointers 2022-05-30 04:00:54 +09:00
.ctags editors: Prevent ctags from following symlinks 2019-02-15 11:01:20 -08:00
.dir-locals.el scripts: use 4 space indentation 2019-04-12 08:30:31 +02:00
.editorconfig mkosi: Use 4 space indentation for scripts 2023-02-21 14:22:52 +01:00
.gitattributes Mark all base64 files as generated 2023-08-16 12:49:45 +02:00
.gitignore Add mkosi.conf to gitignore 2023-09-22 08:14:10 +02:00
.mailmap mailmap: "reduce contributor count by 13" 2023-08-16 12:49:42 +02:00
.packit.yml Revert "ci: temporarily disable Packit's i386" 2023-09-17 22:18:49 +02:00
.pylintrc Add .pylintrc to globally suppress warnings we don't really care about 2023-08-10 18:13:29 +02:00
.vimrc vimrc: explicitly set shiftwidth for the C file type 2023-09-18 13:11:45 +02:00
.ycm_extra_conf.py ycm: add doc string for all the functions in configuration file 2017-11-29 13:21:49 -07:00
configure configure: update meson invocation 2023-07-29 14:08:06 +02:00
LICENSE.GPL2 relicense to LGPLv2.1 (with exceptions) 2012-04-12 00:24:39 +02:00
LICENSE.LGPL2.1 licence: remove references to old FSF address 2012-12-17 11:41:31 +01:00
Makefile tree-wide: add spdx header on all scripts and helpers 2021-01-28 09:55:35 +01:00
meson.build meson: add build option for install path of main config files 2023-10-17 18:57:45 +02:00
meson_options.txt meson: add build option for install path of main config files 2023-10-17 18:57:45 +02:00
mkosi.kernel.config mkosi: Don't disable CONFIG_USB 2023-09-06 12:58:30 +02:00
NEWS NEWS, man: move description of SR-IOV-R net naming to v255 2023-10-16 21:21:54 +02:00
README docs: excorcise NIS from nsswitch.conf 2023-09-20 15:17:52 +02:00
README.md Update badge on README to refer new scorecard viewer (#28050) 2023-06-15 19:24:32 +01:00
TODO Merge pull request #29546 from poettering/run-invoc-id 2023-10-16 19:00:18 +02:00

Systemd

System and Service Manager

Semaphore CI 2.0 Build Status
Coverity Scan Status
OSS-Fuzz Status
CIFuzz
CII Best Practices
CentOS CI - CentOS 8
CentOS CI - Arch
CentOS CI - Arch (sanitizers)
Fossies codespell report
Weblate
Coverage Status
Packaging status
OpenSSF Scorecard

Details

Most documentation is available on systemd's web site.

Assorted, older, general information about systemd can be found in the systemd Wiki.

Information about build requirements is provided in the README file.

Consult our NEWS file for information about what's new in the most recent systemd versions.

Please see the Code Map for information about this repository's layout and content.

Please see the Hacking guide for information on how to hack on systemd and test your modifications.

Please see our Contribution Guidelines for more information about filing GitHub Issues and posting GitHub Pull Requests.

When preparing patches for systemd, please follow our Coding Style Guidelines.

If you are looking for support, please contact our mailing list or join our IRC channel.

Stable branches with backported patches are available in the stable repo.