Find a file
Zbigniew Jędrzejewski-Szmek 4287c85589 meson: create new libsystemd-core.so private shared library
The scheme is very similar to libsystemd-shared.so: instead of building a
static library, we build a shared library from the same objects and link the
two users to it. Both systemd and systemd-analyze consist mostly of the fairly
big code in libcore, so we save a bit on the installation:

(-0g, no strip)
-rwxr-xr-x 5238864 Dec 14 12:52 /var/tmp/inst1/usr/lib/systemd/systemd
-rwxr-xr-x 5399600 Dec 14 12:52 /var/tmp/inst1/usr/bin/systemd-analyze
-rwxr-xr-x  244912 Dec 14 13:17 /var/tmp/inst2/usr/lib/systemd/systemd
-rwxr-xr-x  461224 Dec 14 13:17 /var/tmp/inst2/usr/bin/systemd-analyze
-rwxr-xr-x 5271568 Dec 14 13:17 /var/tmp/inst2/usr/lib/systemd/libsystemd-core-250.so

(-0g, strip)
-rwxr-xr-x 2522080 Dec 14 13:19 /var/tmp/inst1/usr/lib/systemd/systemd
-rwxr-xr-x 2604160 Dec 14 13:19 /var/tmp/inst1/usr/bin/systemd-analyze
-rwxr-xr-x  113304 Dec 14 13:19 /var/tmp/inst2/usr/lib/systemd/systemd
-rwxr-xr-x  207656 Dec 14 13:19 /var/tmp/inst2/usr/bin/systemd-analyze
-rwxr-xr-x 2648520 Dec 14 13:19 /var/tmp/inst2/usr/lib/systemd/libsystemd-core-250.so

So for systemd itself we grow a bit (2522080 → 2648520+113304=2761824), but
overall we save. The most is saved on all the test files that link to libcore,
if they are installed, because there's 15 of them:

$ du -s /var/tmp/inst?
220096	/var/tmp/inst1
122960	/var/tmp/inst2

I also considered making systemd-analyze a symlink to /usr/lib/systemd/systemd
and turning systemd into a multicall binary. We did something like this with
udevd and udevadm. But that solution doesn't fit well in this case.
systemd-analyze has a bunch of functionality that is not used in systemd,
so the systemd binary would need to grow quite a bit. And we're likely to
add new types of verification or introspection features in analyze, and this
baggage would only grow. In addition, there are the test binaries which also
benefit from this.
2021-12-25 15:18:47 +09:00
.github ci: test build with supported cryptolibs to some degree 2021-12-24 16:24:16 +01:00
.lgtm/cpp-queries ci: pack-ify our custom CodeQL queries and enable them in Actions 2021-12-07 14:57:09 +01:00
.semaphore Change all fixed-path bash shebangs to /u/b/env bash outside test/ 2021-12-12 21:13:50 +01:00
catalog units: added factory-reset.target 2021-08-10 17:08:00 +02:00
coccinelle list: drop unnecessary line continuation 2021-12-25 00:47:37 +09:00
docs doc: fix typo 2021-12-09 08:50:19 +01:00
factory factory/locale.conf: mention systemd ownership 2021-12-23 14:18:02 +00:00
hwdb.d hwdb: update hwdb for v250-final 2021-12-23 19:53:59 +09:00
LICENSES licensing: add a license file for the fonts we carry 2021-10-18 09:43:18 +02:00
man Merge pull request #21868 from lucab/ups/factory-locale-conf 2021-12-25 15:09:35 +09:00
mkosi.default.d ci: check for failed services after boot 2021-12-10 10:25:43 +01:00
modprobe.d meson: install the right README file in modprobe.d 2021-07-07 14:52:05 +02:00
network network: dhcp-pd: add 6rd support 2021-12-07 20:33:16 +09:00
po Update LINGUAS (#21499) 2021-11-25 20:24:00 +09:00
presets units: enable systemd-network-generator by default 2021-12-16 09:49:39 +01:00
rules.d Enable /dev/sgx_vepc access for the group 'sgx' 2021-12-12 11:02:21 +00:00
shell-completion bus-dump: change capture output to use pcapng (#21738) 2021-12-25 15:07:40 +09:00
src meson: create new libsystemd-core.so private shared library 2021-12-25 15:18:47 +09:00
sysctl.d build: preserve correct mode when generating files via jinja2 2021-11-08 12:06:48 +00:00
sysusers.d sysusers: avoid creating spurious "nobody" group 2021-11-30 16:16:25 +01:00
test Merge pull request #21648 from yuwata/network-tunnel-local-automatic-address-selection 2021-12-25 15:05:13 +09:00
tmpfiles.d factory: populate /etc/locale.conf with systemd build-time setting 2021-12-23 11:01:12 +00:00
tools meson: create new libsystemd-core.so private shared library 2021-12-25 15:18:47 +09:00
units logind: add a comment with a reminder why we don't use ProtrectProc= 2021-12-17 21:34:20 +09:00
xorg xorg/50-systemd-user: add a full license header 2021-10-01 14:45:00 +02:00
.clang-format clang-format: set SpaceBeforeParens to ControlStatementsExceptForEachMacros 2020-11-16 16:57:51 +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 editorconfig: set maximum line length to 109 for man/*.xml files 2021-09-30 13:45:34 +02:00
.gitattributes gitattributes: introduce and use "generated" attribute 2021-10-18 09:42:55 +02:00
.gitignore gitignore: remove patterns for build files in source dir 2021-12-08 09:52:31 +01:00
.lgtm.yml ci: add a missing SPDX header 2021-12-07 14:15:04 +01:00
.mailmap mailmap: two more names 2021-03-30 13:17:58 +02:00
.packit.yml Revert "ci: temporarily set -Wno-deprecated-declarations in Packit" 2021-12-09 10:27:18 +01:00
.vimrc scripts: use 4 space indentation 2019-04-12 08:30:31 +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 tools: shellcheck-ify tool scripts 2021-09-30 12:27: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: create new libsystemd-core.so private shared library 2021-12-25 15:18:47 +09:00
meson_options.txt boot, meson: allow statically linked build 2021-12-14 09:58:27 +09:00
mkosi.build ci: check for failed services after boot 2021-12-10 10:25:43 +01:00
mkosi.postinst ci: check for failed services after boot 2021-12-10 10:25:43 +01:00
NEWS NEWS: finalize release 2021-12-23 21:09:35 +01:00
README change req meson version 2021-10-26 09:29:14 +01:00
README.md Fix loading of graphs 2021-12-14 15:27:25 +09:00
TODO Merge pull request #21170 from keszybz/delibgcryptify 2021-12-03 13:44:53 +01:00

Systemd

System and Service Manager

Count of open issues over time Count of open pull requests over time Semaphore CI 2.0 Build Status
Coverity Scan Status
OSS-Fuzz Status
CIFuzz
CII Best Practices
Language Grade: C/C++
CentOS CI - CentOS 8
CentOS CI - Arch
CentOS CI - Arch (sanitizers)
Fossies codespell report
Coverage Status
Packaging status

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.