]> git.ipfire.org Git - thirdparty/systemd.git/blobdiff - DISTRO_PORTING
shared: add vectorized parse_field() (#7056)
[thirdparty/systemd.git] / DISTRO_PORTING
index 419053832d7b23324492cf31c1fe2e3a5bce15e2..d1a187aa41b22a427169ccac24842f20a790f151 100644 (file)
@@ -1,36 +1,71 @@
 Porting systemd To New Distributions
 
+HOWTO:
         You need to make the follow changes to adapt systemd to your
         distribution:
 
-        0) Make your distribution recognized via the autoconf checks
-        in configure.ac. Grep for the word "fedora" (case
-        insensitively) and you should be able to find the places where
-        you need to add/change things.
+        1) Find the right configure parameters for:
 
-        1) Patch src/hostname-setup.c so that systemd knows where to
-        read your host name from.
+            -D rootprefix=
+            -D sysvinit-path=
+            -D sysvrcnd-path=
+            -D rc-local=
+            -D halt-local=
+            -D loadkeys-path=
+            -D setfont-path=
+            -D tty-gid=
+            -D ntp-servers=
+            -D dns-servers=
+            -D support-url=
 
-        2) Check the unit files in units/ if they match your
-        distribution. Most likely you will have to make additions to
-        units/*.m4 and create a copy of units/fedora/ with changes for
-        your distribution.
+        2) Try it out. Play around (as an ordinary user) with
+        '/usr/lib/systemd/systemd --test --system' for a test run
+        of systemd without booting. This will read the unit files and
+        print the initial transaction it would execute during boot-up.
+        This will also inform you about ordering loops and suchlike.
 
-        3) Adjust Makefile.am to register the unit files you added in
-        step 2. Also you might need to update the m4 invocation in
-        Makefile.am. Grep for the word "fedora" (case insensitively)
-        and you should be able to find the places where you need to
-        add/change things.
+NTP POOL:
+        By default, systemd-timesyncd uses the Google Public NTP servers
+        time[1-4].google.com, if no other NTP configuration is available. They
+        serve time that uses a leap second smear, and can be up to .5s off from
+        servers that use stepped leap seconds.
 
-        4) Try it out.
+        https://developers.google.com/time/smear
 
-CONTRIBUTING UPSTREAM:
+        If you prefer to use leap second steps, please register your own
+        vendor pool at ntp.org and make it the built-in default by
+        passing --with-ntp-servers= to configure. Registering vendor
+        pools is free:
+
+        http://www.pool.ntp.org/en/vendors.html
+
+        Use -D ntp-servers= to direct systemd-timesyncd to different fallback
+        NTP servers.
+
+DNS SERVERS:
+        By default, systemd-resolved uses the Google Public DNS servers
+        8.8.8.8, 8.8.4.4, 2001:4860:4860::8888, 2001:4860:4860::8844 as
+        fallback, if no other DNS configuration is available.
 
-        We are interested in merging your changes upstream, if they
-        are for a big, and well-known distribution. Unfortunately we
-        don't have the time and resources to maintain
-        distribution-specific patches for all distributions on the
-        planet, hence please do not send us patches that adds systemd
-        support to non-mainstream or niche distributions.
+        Use -D dns-servers= to direct systemd-resolved to different fallback
+        DNS servers.
+
+PAM:
+        The default PAM config shipped by systemd is really bare bones.
+        It does not include many modules your distro might want to enable
+        to provide a more seamless experience. For example, limits set in
+        /etc/security/limits.conf will not be read unless you load pam_limits.
+        Make sure you add modules your distro expects from user services.
+
+        Pass -D pamconfdir=no to meson to avoid installing this file and
+        instead install your own.
+
+CONTRIBUTING UPSTREAM:
+        We generally do no longer accept distribution-specific patches to
+        systemd upstream. If you have to make changes to systemd's source code
+        to make it work on your distribution, unless your code is generic
+        enough to be generally useful, we are unlikely to merge it. Please
+        always consider adopting the upstream defaults. If that is not
+        possible, please maintain the relevant patches downstream.
 
         Thank you for understanding.