chiark / gitweb /
Remove --with-compat-libs configure option
[elogind.git] / README
diff --git a/README b/README
index 9e1aae34522974418f4265e4b95f41ada3a7e8a7..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 depend on udev
-  these days 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.
-
-Requirements:
-  - 2.6.x version of the Linux kernel. See the RELEASE-NOTES file in the
-    udev tree and the Documentation/Changes in the kernel source tree for
-    the actual dependency.
-
-  - The kernel must have sysfs and unix domain socket enabled.
-    (unix domain sockets (CONFIG_UNIX) as a loadable kernel module may work,
-     but it is completely silly, don't complain if anything goes wrong.)
-
-  - The proc filesystem must be mounted on /proc.
-
-  - The sysfs filesystem must be mounted at /sys. No other location
-    will be supported by udev.
-
-
-Operation:
-  Udev creates and removes device nodes in /dev, based on events the kernel
-  sends out on device discovery or removal.
-
-  - Directly after mouting the real root filesystem, wherever that
-    happens, in initramfs or with a directly mounted root, /dev should get
-    a tmpfs filesystem mounted, which is populated from scratch by udev.
-    Created nodes or changed permissions don't survive a reboot.
-
-  - The content of /lib/udev/devices directory which contains the nodes,
-    symlinks and directories, which are always expected to be in/dev, should
-    be copied over to the tmpfs mounted /dev, to provide the required nodes
-    to initialize udev and continue booting.
-
-  - The udevd daemon must be started by an init script to receive netlink
-    events from the kernel driver core.
-
-  - From kernel version 2.6.15 on, the hotplug helper /sbin/hotplug should
-    be disabled with an init script before the boot scripts are run and
-    kernel modules are loaded.
-
-  - All kernel events are matched against a set of specified rules in
-    /etc/udev/rules.d/ which make it possible to hook into the event
-    processing to load required kernel modules and setup devices. For all
-    devices the kernel requests a device node, udev will create one with
-    the default name or the one specified by a matching udev rules.
-
-
-Compile Options:
-  prefix
-       Set this to the default root that you want to use. Only override
-       this if you really know what you are doing, even then, you probably
-       don't do the right thing.
-  DESTDIR
-       Prefix for install target, used for package building.
-  USE_LOG
-       If set to 'true', udev is able to pass errors or debug information
-       to syslog. This is very useful to see what udev is doing or not doing.
-       It is enabled by default, don't expect any useful answer, if you
-       need to hunt a bug, but you can't enable syslog.
-  DEBUG
-       If set to 'true', very verbose debugging messages will be compiled
-       into the udev binaries. The actual level of debugging is specified
-       in the udev config file.
-  STRIPCMD
-       If udev is compiled for packaging an empty string can be passed
-       to disable the stripping of the binaries.
-  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 klibc.
-       Default value is 'false'. KLCC specifies the klibc compiler
-       wrapper, usually located at /usr/bin/klcc.
-  EXTRAS
-       If set, will build the "extra" helper programs as specified
-       as listed (see below for an example).
-
-If you want to build the udev helper programs:
-  make EXTRAS="extras/cdrom_id extras/scsi_id extras/volume_id"
-
-
-Installation:
-  - The install target intalls the udev binaries in the default locations,
-    All at boot time reqired binaries will be installed in /sbin.
-
-  - The default location for scripts and binaries that are called from
-    rules is /lib/udev. Other packages who install udev rules, should use
-    that diretory too.
-
-  - It is recommended to use the /lib/udev/devices directory to place
-    device nodes and symlinks in, which are copied to /dev at every boot.
-    That way, nodes for broken subsystems or devices which can't be
-    detected automatically by the kernel, will always be available.
-
-  - Copies of the rules files for all major distros are in the etc/udev
-    directory (you may look there how others distros are doing it).
-
-  - The persistent disk links in /dev/disk are the de facto standard
-    on Linux and should be installed with every default udev installation.
-    The devfs naming scheme rules are not recommended and not supported.
-
-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.