]> git.ipfire.org Git - thirdparty/systemd.git/blame - docs/DISTRO_PORTING.md
Merge pull request #11827 from keszybz/pkgconfig-variables
[thirdparty/systemd.git] / docs / DISTRO_PORTING.md
CommitLineData
c3e270f4
FB
1---
2title: Porting systemd To New Distributions
3---
4
1d1cb168
FB
5# Porting systemd To New Distributions
6
7## HOWTO
8
9You need to make the follow changes to adapt systemd to your
10distribution:
11
121. Find the right configure parameters for:
13
14 * `-Drootprefix=`
15 * `-Dsysvinit-path=`
16 * `-Dsysvrcnd-path=`
17 * `-Drc-local=`
18 * `-Dhalt-local=`
19 * `-Dloadkeys-path=`
20 * `-Dsetfont-path=`
21 * `-Dtty-gid=`
22 * `-Dntp-servers=`
23 * `-Ddns-servers=`
24 * `-Dsupport-url=`
25
262. Try it out.
27
28 Play around (as an ordinary user) with
29 `/usr/lib/systemd/systemd --test --system` for a test run
30 of systemd without booting. This will read the unit files and
31 print the initial transaction it would execute during boot-up.
32 This will also inform you about ordering loops and suchlike.
33
34## NTP Pool
35
36By default, systemd-timesyncd uses the Google Public NTP servers
37`time[1-4].google.com`, if no other NTP configuration is available.
38They serve time that uses a
39[leap second smear](https://developers.google.com/time/smear)
40and can be up to .5s off from servers that use stepped leap seconds.
41
42If you prefer to use leap second steps, please register your own
43vendor pool at ntp.org and make it the built-in default by
44passing `-Dntp-servers=` to meson. Registering vendor
45pools is [free](http://www.pool.ntp.org/en/vendors.html).
46
47Use `-Dntp-servers=` to direct systemd-timesyncd to different fallback
48NTP servers.
49
50## DNS Servers
51
def3c7c7
IK
52By default, systemd-resolved uses Cloudflare and Google Public DNS servers
53`1.1.1.1`, `8.8.8.8`, `1.0.0.1`, `8.8.4.4`, `2606:4700:4700::1111`, `2001:4860:4860::8888`, `2606:4700:4700::1001`, `2001:4860:4860::8844`
1d1cb168
FB
54as fallback, if no other DNS configuration is available.
55
56Use `-Ddns-servers=` to direct systemd-resolved to different fallback
57DNS servers.
58
59## PAM
60
61The default PAM config shipped by systemd is really bare bones.
62It does not include many modules your distro might want to enable
63to provide a more seamless experience. For example, limits set in
64`/etc/security/limits.conf` will not be read unless you load `pam_limits`.
65Make sure you add modules your distro expects from user services.
66
67Pass `-Dpamconfdir=no` to meson to avoid installing this file and
68instead install your own.
69
70## Contributing Upstream
71
72We generally do no longer accept distribution-specific patches to
73systemd upstream. If you have to make changes to systemd's source code
74to make it work on your distribution, unless your code is generic
75enough to be generally useful, we are unlikely to merge it. Please
76always consider adopting the upstream defaults. If that is not
77possible, please maintain the relevant patches downstream.
78
79Thank you for understanding.