chiark / gitweb /
Remove --with-compat-libs configure option
[elogind.git] / README
diff --git a/README b/README
index 19ed4468eab0806207bacf6f27dc3f606413789a..5222637c2c77c210010e36df42fdd701e1a10fa7 100644 (file)
--- a/README
+++ b/README
-udev - userspace device management
-
-For more information see the files in the docs/ directory.
-
-Important Note:
-  Integrating udev in the system is a whole lot of work, has complex dependencies
-  and differs a lot from distro to distro. All reasonable distros use udev these
-  days, the major ones make it mandatory and the system will not work without it.
-
-  The upstream udev project does not support or recomend to replace a distro's udev
-  installation with the upstream version. The installation of a unmodified upstream
-  version may render your system unusable! There is no "default" setup or a set
-  of "default" rules provided by the upstream udev version.
-
-udev requires:
-  - 2.6 version of the Linux kernel
-
-  - the kernel must have sysfs, netlink, and hotplug enabled
-
-  - proc must be mounted on /proc
-
-  - sysfs must be mounted at /sys, no other location is supported
-
-  - udev creates and removes device nodes in /dev based on events
-    the kernel sends out on device discovery or removal
-
-  - during bootup /dev usually gets a tmpfs mounted which is populated scratch
-    by udev (created nodes don't survive a reboot, it always starts from scratch)
-
-  - udev replaces the hotplug event management invoked from /sbin/hotplug
-    by the udevd daemon, which receives the kernel events over netlink
-
-  - all kernel events are matched against a set of specified rules which
-    make it posible to hook into the event processing
-
-  - there is a copy of the rules files for all major distros in the etc/udev
-    directory (you may look there how others distros are doing it)
-
-Setting which are used for building udev:
-  prefix
-       set this to the default root that you want to use
-       Only override this if you really know what you are doing
-  DESTDIR
-       prefix for install target for package building
-  USE_LOG
-       if set to 'true', udev will emit messages to the syslog when
-       it creates or removes device nodes.  This is helpful to see
-       what udev is doing.  This is enabled by default.  Note, if you
-       are building udev against klibc it is recommended that you
-       disable this option (due to klibc's syslog implementation.)
-  DEBUG
-       if set to 'true', verbose debugging messages will be compiled into
-       the udev binaries.  Default value is 'false'.
-  USE_SELINUX
-       if set to 'true', udev will be built with SELinux support
-       enabled.  This is disabled by default.
-  USE_KLIBC
-       if set to 'true', udev is built and linked against the
-       included version of klibc.  Default value is 'false'.
-  KERNEL_DIR
-       If this is not set it will default to /lib/modules/`uname -r`/build
-       This is used if USE_KLIBC=true to find the kernel include
-       directory that klibc needs to build against.  This must be set
-       if you are not building udev while running a 2.6 kernel.
-  EXTRAS
-       if set, will build the "extra" helper programs as specified
-       as listed (see below for an example.)
-
-if you want to build udev using klibc with debugging messages:
-  make USE_KLIBC=true DEBUG=true
-
-if you want to build the udev helper program cdrom_id and scsi_id:
-  make EXTRAS="extras/cdrom_id extras/scsi_id"
-
-Please direct any comment/question/concern to the linux-hotplug-devel mailing list at:
-  linux-hotplug-devel@lists.sourceforge.net
-
+systemd System and Service Manager
+
+DETAILS:
+        http://0pointer.de/blog/projects/systemd.html
+
+WEB SITE:
+        http://www.freedesktop.org/wiki/Software/systemd
+
+GIT:
+        git://anongit.freedesktop.org/systemd/systemd
+        ssh://git.freedesktop.org/git/systemd/systemd
+
+GITWEB:
+        http://cgit.freedesktop.org/systemd/systemd
+
+MAILING LIST:
+        http://lists.freedesktop.org/mailman/listinfo/systemd-devel
+        http://lists.freedesktop.org/mailman/listinfo/systemd-commits
+
+IRC:
+        #systemd on irc.freenode.org
+
+BUG REPORTS:
+        https://bugs.freedesktop.org/enter_bug.cgi?product=systemd
+
+AUTHOR:
+        Lennart Poettering
+        Kay Sievers
+        ...and many others
+
+LICENSE:
+        LGPLv2.1+ for all code
+        - except src/shared/MurmurHash2.c which is Public Domain
+        - except src/shared/siphash24.c which is CC0 Public Domain
+        - except src/journal/lookup3.c which is Public Domain
+        - except src/udev/* which is (currently still) GPLv2, GPLv2+
+
+REQUIREMENTS:
+        Linux kernel >= 3.7
+        Linux kernel >= 3.8 for Smack support
+
+        Kernel Config Options:
+          CONFIG_DEVTMPFS
+          CONFIG_CGROUPS (it is OK to disable all controllers)
+          CONFIG_INOTIFY_USER
+          CONFIG_SIGNALFD
+          CONFIG_TIMERFD
+          CONFIG_EPOLL
+          CONFIG_NET
+          CONFIG_SYSFS
+          CONFIG_PROC_FS
+          CONFIG_FHANDLE (libudev, mount and bind mount handling)
+
+        udev will fail to work with the legacy sysfs layout:
+          CONFIG_SYSFS_DEPRECATED=n
+
+        Legacy hotplug slows down the system and confuses udev:
+          CONFIG_UEVENT_HELPER_PATH=""
+
+        Userspace firmware loading is not supported and should
+        be disabled in the kernel:
+          CONFIG_FW_LOADER_USER_HELPER=n
+
+        Some udev rules and virtualization detection relies on it:
+          CONFIG_DMIID
+
+        Support for some SCSI devices serial number retrieval, to
+        create additional symlinks in /dev/disk/ and /dev/tape:
+          CONFIG_BLK_DEV_BSG
+
+        Required for PrivateNetwork and PrivateDevices in service units:
+          CONFIG_NET_NS
+          CONFIG_DEVPTS_MULTIPLE_INSTANCES
+        Note that systemd-localed.service and other systemd units use
+        PrivateNetwork and PrivateDevices so this is effectively required.
+
+        Optional but strongly recommended:
+          CONFIG_IPV6
+          CONFIG_AUTOFS4_FS
+          CONFIG_TMPFS_XATTR
+          CONFIG_{TMPFS,EXT4,XFS,BTRFS_FS,...}_POSIX_ACL
+          CONFIG_SECCOMP
+
+        Required for CPUShares in resource control unit settings
+          CONFIG_CGROUP_SCHED
+          CONFIG_FAIR_GROUP_SCHED
+
+        Required for CPUQuota in resource control unit settings
+          CONFIG_CFS_BANDWIDTH
+
+        For systemd-bootchart, several proc debug interfaces are required:
+          CONFIG_SCHEDSTATS
+          CONFIG_SCHED_DEBUG
+
+        For UEFI systems:
+          CONFIG_EFIVAR_FS
+          CONFIG_EFI_PARTITION
+
+        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
+        runtime using the kernel command line option "audit=0", or
+        turn it off at kernel compile time using:
+          CONFIG_AUDIT=n
+        If systemd is compiled with libseccomp support on
+        architectures which do not use socketcall() and where seccomp
+        is supported (this effectively means x86-64 and ARM, but
+        excludes 32-bit x86!), then nspawn will now install a
+        work-around seccomp filter that makes containers boot even
+        with audit being enabled. This works correctly only on kernels
+        3.14 and newer though. TL;DR: turn audit off, still.
+
+        glibc >= 2.14
+        libcap
+        libmount >= 2.20 (from util-linux)
+        libseccomp >= 1.0.0 (optional)
+        libblkid >= 2.24 (from util-linux) (optional)
+        libkmod >= 15 (optional)
+        PAM >= 1.1.2 (optional)
+        libcryptsetup (optional)
+        libaudit (optional)
+        libacl (optional)
+        libselinux (optional)
+        liblzma (optional)
+        liblz4 >= 119 (optional)
+        libgcrypt (optional)
+        libqrencode (optional)
+        libmicrohttpd (optional)
+        libpython (optional)
+        libidn (optional)
+        gobject-introspection > 1.40.0 (optional)
+        elfutils >= 158 (optional)
+        make, gcc, and similar tools
+
+        During runtime, you need the following additional
+        dependencies:
+
+        util-linux >= v2.25 required
+        dbus >= 1.4.0 (strictly speaking optional, but recommended)
+        dracut (optional)
+        PolicyKit (optional)
+
+        When building from git, you need the following additional
+        dependencies:
+
+        pkg-config
+        docbook-xsl
+        xsltproc
+        automake
+        autoconf
+        libtool
+        intltool
+        gperf
+        gtkdocize (optional)
+        python (optional)
+        python-lxml (optional, but required to build the indices)
+        sphinx (optional)
+
+        When systemd-hostnamed is used, it is strongly recommended to
+        install nss-myhostname to ensure that, in a world of
+        dynamically changing hostnames, the hostname stays resolvable
+        under all circumstances. In fact, systemd-hostnamed will warn
+        if nss-myhostname is not installed.
+
+        To build HTML documentation for python-systemd using sphinx,
+        please first install systemd (using 'make install'), and then
+        invoke sphinx-build with 'make sphinx-<target>', with <target>
+        being 'html' or 'latexpdf'. If using DESTDIR for installation,
+        pass the same DESTDIR to 'make sphinx-html' invocation.
+
+USERS AND GROUPS:
+        Default udev rules use the following standard system group
+        names, which need to be resolvable by getgrnam() at any time,
+        even in the very early boot stages, where no other databases
+        and network are available:
+
+        audio, cdrom, dialout, disk, input, kmem, lp, tape, tty, video
+
+        During runtime, the journal daemon requires the
+        "systemd-journal" system group to exist. New journal files will
+        be readable by this group (but not writable), which may be used
+        to grant specific users read access. In addition, system
+        groups "wheel" and "adm" will be given read-only access to
+        journal files using systemd-tmpfiles.service.
+
+        The journal gateway daemon requires the
+        "systemd-journal-gateway" system user and group to
+        exist. During execution this network facing service will drop
+        privileges and assume this uid/gid for security reasons.
+
+        Similarly, the NTP daemon requires the "systemd-timesync" system
+        user and group to exist.
+
+        Similarly, the network management daemon requires the
+        "systemd-network" system user and group to exist.
+
+        Similarly, the name resolution daemon requires the
+        "systemd-resolve" system user and group to exist.
+
+        Similarly, the kdbus dbus1 proxy daemon requires the
+        "systemd-bus-proxy" system user and group to exist.
+
+NSS:
+        systemd ships with three NSS modules:
+
+        nss-myhostname resolves the local hostname to locally
+        configured IP addresses, as well as "localhost" to
+        127.0.0.1/::1.
+
+        nss-resolve enables DNS resolution via the systemd-resolved
+        DNS/LLMNR caching stub resolver "systemd-resolved".
+
+        nss-mymachines enables resolution of all local containers
+        registered with machined to their respective IP addresses.
+
+        To make use of these NSS modules, please add them to the
+        "hosts: " line in /etc/nsswitch.conf. The "resolve" module
+        should replace the glibc "dns" module in this file.
+
+        The three modules should be used in the following order:
+
+                hosts: files mymachines resolve myhostname
+
+WARNINGS:
+        systemd will warn you during boot if /etc/mtab is not a
+        symlink to /proc/mounts. Please ensure that /etc/mtab is a
+        proper symlink.
+
+        systemd will warn you during boot if /usr is on a different
+        file system than /. While in systemd itself very little will
+        break if /usr is on a separate partition, many of its
+        dependencies very likely will break sooner or later in one
+        form or another. For example, udev rules tend to refer to
+        binaries in /usr, binaries that link to libraries in /usr or
+        binaries that refer to data files in /usr. Since these
+        breakages are not always directly visible, systemd will warn
+        about this, since this kind of file system setup is not really
+        supported anymore by the basic set of Linux OS components.
+
+        systemd requires that the /run mount point exists. systemd also
+        requires that /var/run is a a symlink to /run.
+
+        For more information on this issue consult
+        http://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.
+
+ENGINEERING AND CONSULTING SERVICES:
+        ENDOCODE <https://endocode.com/> offers professional
+        engineering and consulting services for systemd. Please
+        contact Chris Kühl <chris@endocode.com> for more information.