]> git.ipfire.org Git - thirdparty/systemd.git/blobdiff - README
Merge pull request #7198 from poettering/stdin-stdout
[thirdparty/systemd.git] / README
diff --git a/README b/README
index ac8620c75bcde93318ed938ba8e2598d410c5812..835763dca84451c89c3fb3a11f75731509982f43 100644 (file)
--- a/README
+++ b/README
@@ -8,9 +8,6 @@ WEB SITE:
 
 GIT:
         git@github.com:systemd/systemd.git
-        https://github.com/systemd/systemd.git
-
-GITWEB:
         https://github.com/systemd/systemd
 
 MAILING LIST:
@@ -35,7 +32,7 @@ LICENSE:
         - except src/udev/* which is (currently still) GPLv2, GPLv2+
 
 REQUIREMENTS:
-        Linux kernel >= 3.12
+        Linux kernel >= 3.13
         Linux kernel >= 4.2 for unified cgroup hierarchy support
 
         Kernel Config Options:
@@ -50,6 +47,11 @@ REQUIREMENTS:
           CONFIG_PROC_FS
           CONFIG_FHANDLE (libudev, mount and bind mount handling)
 
+        Kernel crypto/hash API
+          CONFIG_CRYPTO_USER_API_HASH
+          CONFIG_CRYPTO_HMAC
+          CONFIG_CRYPTO_SHA256
+
         udev will fail to work with the legacy sysfs layout:
           CONFIG_SYSFS_DEPRECATED=n
 
@@ -105,6 +107,14 @@ REQUIREMENTS:
         fixed, and it's best to disable group scheduling hence.
            CONFIG_RT_GROUP_SCHED=n
 
+        It's a good idea to disable the implicit creation of networking bonding
+        devices by the kernel networking bonding module, so that the
+        automatically created "bond0" interface doesn't conflict with any such
+        device created by systemd-networkd (or other tools). Ideally there
+        would be a kernel compile-time option for this, but there currently
+        isn't. The next best thing is to make this change through a modprobe.d
+        drop-in. This is shipped by default, see modprobe.d/systemd.conf.
+
         Note that kernel auditing is broken when used with systemd's
         container code. When using systemd in conjunction with
         containers, please make sure to either turn off auditing at
@@ -121,8 +131,8 @@ REQUIREMENTS:
 
         glibc >= 2.16
         libcap
-        libmount >= 2.27.1 (from util-linux)
-                (util-linux *must* be built with --enable-libmount-force-mountinfo)
+        libmount >= 2.30 (from util-linux)
+                (util-linux *must* be built without --enable-libmount-support-mtab)
         libseccomp >= 2.3.1 (optional)
         libblkid >= 2.24 (from util-linux) (optional)
         libkmod >= 15 (optional)
@@ -137,9 +147,16 @@ REQUIREMENTS:
         libqrencode (optional)
         libmicrohttpd (optional)
         libpython (optional)
-        libidn (optional)
+        libidn2 or libidn (optional)
         elfutils >= 158 (optional)
-        make, gcc, and similar tools
+        polkit (optional)
+        pkg-config
+        gperf
+        docbook-xsl (optional, required for documentation)
+        xsltproc    (optional, required for documentation)
+        python-lxml (optional, required to build the indices)
+        python, meson, ninja
+        gcc, awk, sed, grep, m4, and similar tools
 
         During runtime, you need the following additional
         dependencies:
@@ -151,21 +168,23 @@ REQUIREMENTS:
         dracut (optional)
         PolicyKit (optional)
 
-        When building from git, the following tools are needed:
+        To build in directory build/:
+          meson build/ && ninja -C build
 
-        pkg-config
-        docbook-xsl
-        xsltproc
-        automake
-        autoconf
-        libtool
-        intltool
-        gperf
-        python (optional)
-        python-lxml (optional, but required to build the indices)
+        Any configuration options can be specfied as -Darg=value... arguments
+        to meson. After the build directory is initially configured, meson will
+        refuse to run again, and options must be changed with:
+          mesonconf -Darg=value...
+        mesonconf without any arguments will print out available options and
+        their current values.
+
+        Useful commands:
+          ninja -v some/target
+          ninja test
+          sudo ninja install
+          DESTDIR=... ninja install
 
-        The build system is initialized with ./autogen.sh. A tar ball
-        can be created with:
+        A tarball can be created with:
           git archive --format=tar --prefix=systemd-222/ v222 | xz > systemd-222.tar.xz
 
         When systemd-hostnamed is used, it is strongly recommended to
@@ -272,9 +291,12 @@ WARNINGS:
         https://www.freedesktop.org/wiki/Software/systemd/separate-usr-is-broken
 
         To run systemd under valgrind, compile with VALGRIND defined
-        (e.g. ./configure CPPFLAGS='... -DVALGRIND=1'). Otherwise,
-        false positives will be triggered by code which violates
-        some rules but is actually safe.
+        (e.g. CPPFLAGS='... -DVALGRIND=1' meson <options>) and have valgrind
+        development headers installed (i.e. valgrind-devel or
+        equivalent). Otherwise, false positives will be triggered by code which
+        violates some rules but is actually safe. Note that valgrind generates
+        nice output only on exit(), hence on shutdown we don't execve()
+        systemd-shutdown.
 
 ENGINEERING AND CONSULTING SERVICES:
         Kinvolk (https://kinvolk.io) offers professional engineering