# # spec file for package systemd # # Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # %define bootstrap 0 %define mini %nil %define real systemd %define min_kernel_version 3.11 %bcond_without bash_completion %bcond_without networkd %bcond_without sysvcompat %bcond_with resolved %bcond_with python %bcond_with parentpathid %if 0%{?suse_version} > 1315 %bcond_without permission %bcond_without blkrrpart %bcond_without udevsettle %else %bcond_with permission %bcond_with blkrrpart %bcond_with udevsettle %endif %bcond_with systemgrps Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd Version: 228 Release: 0 Summary: A System and Session Manager License: LGPL-2.1+ Group: System/Base BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: acl BuildRequires: audit-devel BuildRequires: autoconf BuildRequires: automake BuildRequires: fdupes BuildRequires: gperf BuildRequires: intltool BuildRequires: kbd BuildRequires: libacl-devel BuildRequires: libcap-devel BuildRequires: libsepol-devel BuildRequires: libtool BuildRequires: pam-devel BuildRequires: systemd-rpm-macros BuildRequires: xz BuildRequires: config(suse-module-tools) BuildRequires: pkgconfig(blkid) >= 2.26 BuildRequires: pkgconfig(libkmod) >= 15 BuildRequires: pkgconfig(liblzma) BuildRequires: pkgconfig(libpci) >= 3 #XXX: change to 2.27.1 when pkgconfig file is fixed upstream BuildRequires: pkgconfig(mount) >= 2.27 %ifarch aarch64 %ix86 x86_64 x32 %arm ppc64le s390x BuildRequires: pkgconfig(libseccomp) %endif %ifarch %{ix86} x86_64 BuildRequires: gnu-efi %endif BuildRequires: pkgconfig(libselinux) >= 2.1.9 BuildRequires: pkgconfig(libsepol) Conflicts: sysvinit Conflicts: otherproviders(systemd) %if 0%{?bootstrap} #!BuildIgnore: dbus-1 Requires: this-is-only-for-build-envs Provides: systemd = %version-%release Conflicts: kiwi %else BuildRequires: docbook-xsl-stylesheets BuildRequires: libgcrypt-devel BuildRequires: libxslt-tools # curl and bzip2 are required for building importd BuildRequires: pkgconfig(bzip2) BuildRequires: pkgconfig(libcurl) %if %{with python} BuildRequires: python %endif BuildRequires: libapparmor-devel BuildRequires: pkgconfig(libcryptsetup) >= 1.6.0 BuildRequires: pkgconfig(libmicrohttpd) BuildRequires: pkgconfig(libqrencode) BuildRequires: pkgconfig(usbutils) >= 0.82 # the buildignore is important for bootstrapping #!BuildIgnore: udev Requires: udev = %{version}-%{release} Recommends: %{name}-bash-completion Requires: dbus-1 >= 1.4.0 Requires: kbd Requires: kmod >= 15 Requires: netcfg Requires: pam-config >= 0.79-5 BuildRequires: pam-config >= 0.79-5 Requires: pwdutils Requires: systemctl = %version-%release Requires: systemd-presets-branding Requires: sysvinit-tools Requires: util-linux >= 2.27.1 Requires(post): coreutils Requires(post): findutils Requires(post): pam-config >= 0.79-5 %endif Requires(pre): /usr/bin/getent Requires(pre): /usr/sbin/groupadd Requires(post): /usr/bin/awk Requires(post): /usr/bin/getent Requires(post): /usr/bin/setfacl Conflicts: filesystem < 11.5 Conflicts: mkinitrd < 2.7.0 Conflicts: kernel < %{min_kernel_version} Obsoletes: systemd-analyze < 201 Provides: systemd-analyze = %{version} Obsoletes: pm-utils <= 1.4.1 Obsoletes: suspend <= 1.0 #Git-Clone: git://github.com/systemd/systemd Source: https://github.com/systemd/systemd/archive/v%version.tar.gz %if ! 0%{?bootstrap} Source1: systemd-rpmlintrc %else Source1: systemd-mini-rpmlintrc %endif Source3: systemd-sysv-convert Source6: baselibs.conf Source7: libgcrypt.m4 Source9: nss-myhostname-config Source10: macros.systemd.upstream Source11: after-local.service Source12: systemd-sysv-install Source1065: systemd-remount-tmpfs # handle SUSE specific kbd settings Patch3: handle-disable_caplock-and-compose_table-and-kbd_rate.patch Patch4: handle-numlock-value-in-etc-sysconfig-keyboard.patch Patch6: insserv-generator.patch Patch12: Fix-run-lock-directories-permissions-to-follow-openSUSE-po.patch Patch16: fix-support-for-boot-prefixed-initscript-bnc-746506.patch Patch17: restore-var-run-and-var-lock-bind-mount-if-they-aren-t-sym.patch # PATCH-FIX-OPENSUSE ensure-ask-password-wall-starts-after-getty-tty1.patch -- don't start getty on tty1 until all password request are done Patch5: ensure-ask-password-wall-starts-after-getty-tty1.patch # PATCH-FIX-OPENSUSE handle-root_uses_lang-value-in-etc-sysconfig-language.patch bnc#792182 fcrozat@suse.com -- handle ROOT_USES_LANG=ctype Patch20: handle-root_uses_lang-value-in-etc-sysconfig-language.patch # PATCH-FIX-OPENSUSE allow-multiple-sulogin-to-be-started.patch bnc#793182 fcrozat@suse.com -- handle multiple sulogin Patch21: allow-multiple-sulogin-to-be-started.patch # PATCH-FIX-OPENSUSE apply-ACL-for-nvidia-device-nodes.patch bnc#808319 -- set ACL on nvidia devices Patch27: apply-ACL-for-nvidia-device-nodes.patch # PATCH-FIX-OPENSUSE apply-ACL-for-nvidia-uvm-device-node.patch bnc#879767 -- set ACL on nvidia-uvm device Patch28: apply-ACL-for-nvidia-uvm-device-node.patch Patch37: suse-sysv-bootd-support.diff # PATCH-FIX-OPENSUSE systemd-tmp-safe-defaults.patch FATE#314974 max@suse.de -- Return to SUSE's "safe defaults" policy on deleting files from tmp direcorie. Patch39: systemd-tmp-safe-defaults.patch # PATCH-FIX-OPENSUSE ensure-shortname-is-set-as-hostname-bnc-820213.patch bnc#820213 fcrozat@suse.com -- Do not set anything beyond first dot as hostname Patch41: ensure-shortname-is-set-as-hostname-bnc-820213.patch Patch42: systemd-pam_config.patch # Upstream First - Policy: # Never add any patches to this package without the upstream commit id # in the patch. Any patches added here without a very good reason to make # an exception will be silently removed with the next version update. # PATCH-FIX-OPENSUSE make-emergency.service-conflict-with-syslog.socket.patch (bnc#852232) Patch84: make-emergency.service-conflict-with-syslog.socket.patch # PATCH-FIX-SUSE 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch Patch86: 0001-add-hdflush-for-reboot-or-hddown-for-poweroff.patch # PATCH-FIX-SUSE 0001-On_s390_con3270_disable_ANSI_colour_esc.patch Patch90: 0001-On_s390_con3270_disable_ANSI_colour_esc.patch # PATCH-FIX-SUSE plymouth-quit-and-wait-for-emergency-service.patch -- Make sure that no plymouthd is locking the tty Patch91: plymouth-quit-and-wait-for-emergency-service.patch # PATCH-FIX-SUSE 0001-avoid-abort-due-timeout-at-user-service.patch werner@suse.com Patch120: 0001-avoid-abort-due-timeout-at-user-service.patch # PATCH-FIX-OPENSUSE 0010-do-not-install-sulogin-unit-with-poweroff.patch -- Avoid installing console-shell.service (bnc#849071) Patch178: 0010-do-not-install-sulogin-unit-with-poweroff.patch # PATCH-FIX-SUSE 0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch Patch179: 0001-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch # PATCH-FIX-OPENSUSE 0014-journald-with-journaling-FS.patch Patch180: 0014-journald-with-journaling-FS.patch # PATCH-FIX-SUSE 0019-make-completion-smart-to-be-able-to-redirect.patch Patch182: 0019-make-completion-smart-to-be-able-to-redirect.patch # PATCH-FIX-SUSE 0001-add-network-device-after-NFS-mount-units.patch werner@suse.com Patch183: 0001-add-network-device-after-NFS-mount-units.patch # PATCH-FIX-SUSE systemctl-set-default-target.patch Patch186: systemctl-set-default-target.patch # PATCH-FIX-SUSE boot-local-start.patch (bnc #869142) Patch188: boot-local-start.patch # PATCH-FIX-SUSE avoid random hangs on timeouts due lost cwd at terminating user manager Patch189: avoid-random-hangs-on-timeouts-due-lost-cwd.patch # PATCH-FIX-SUSE systemd-install-compat_pkgconfig-always.patch Patch190: systemd-install-compat_pkgconfig-always.patch # PATCH-FIX-OPENSUSE systemd-dbus-system-bus-address.patch always use /run/dbus not /var/run Patch191: systemd-dbus-system-bus-address.patch # PATCH-FIX-SUSE During linkage of systemd-cryptsetup let linker find libudev for libdevmapper Patch192: let-linker-find-libudev-for-libdevmapper.patch # PATCH-FIX-SUSE Make sure that rpcbind socket as well as service is up with the target Patch193: portmap-wants-rpcbind-socket.patch # PATCH-FIX-SUSE Avoid that emergency and rescue sulogin are fighting on console Patch197: rescue-emergency-target-conflicts.patch # PATCH-FIX-SUSE Avoid a divide by zero sigtrap Patch198: avoid-divide-by-zero-sigtrap.patch # PATCH-FIX-SUSE System fails to boot if nfs mounts get added to fstab (bnc#874665) Patch203: respect-nfs-bg-option.patch # PATCH-FIX-SUSE Do not ignores option 'noauto' in /etc/crypttab (bnc#742774) Patch208: parse-crypttab-for-noauto-option.patch # PATCH-FIX-SUSE Do a vhangup on all consoles lines (bnc#886599) Patch338: vhangup-on-all-consoles.patch # PATCH-FIX-SUSE Shut up rpmlint warning Patch345: shut-up-rpmlint-on-var-log-journal.patch # PATCH-FIX-SUSE Patch352: set-and-use-default-logconsole.patch Patch362: tty-ask-password-agent-on-console.patch # PATCH-FIX-SUSE Provide the /var/lock/subsys at start (bnc#889357) Patch366: tomcat6-var-lock-subsys-legacy.patch # PATCH-FIX-SUSE Remove error messages for tab completion for systemctl isolate (bnc#892162) Patch368: 0001-let-systemctl-completion-ignore-at-names.patch # PATCH-FIX-SUSE Use RNDADDENTROPY ioctl to load random-seed and to increase entropy count as well (bnc#892096) Patch386: use-rndaddentropy-ioctl-to-load-random-seed.patch # PATCH-FIX-SUSE AUDIT-0: Power button press at gdm login should not prompt for credentials (bnc#888612) Patch430: 0001-bnc888612-logind-polkit-acpi.patch # PATCH-FIX-SUSE added on 2014/10/24 Patch475: journald-advice-about-use-of-memory.patch # PATCH-FIX-SUSE added on 2014/11/05 Patch490: watch_resolv.conf_for_become_changed.patch # PATCH-FIX-SUSE systemd-add-user-keep.patch (bnc#903009) Patch520: systemd-add-user-keep.patch # PATCH-FIX-SUSE systemd-add-user-keep.patch (bnc#903009) Patch521: kbd-model-map.patch # PATCH-WORKAROUND-SUSE (boo#939571) Patch522: Correct_assert_on_unexpected_error_code.patch # PATCH-FIX-SUSE Do not stress the kernel's vc ioctls (boo#904214) Patch523: let-vconsole-setup-get-properties-only-once-to-copy-them.patch # PATCH-FIX-UPSTREAM (bsc#956712) Patch524: 0001-nss-mymachines-do-not-allow-overlong-machine-names.patch # PATCH-FIX-UPSTREAM (bsc#966535) Patch525: 0001-core-exclude-.slice-units-from-systemctl-isolate.patch # PATCH-FIX-UPSTREAM -- fixed after 228 Patch526: systemd-228-nspawn-make-journal-linking-non-fatal-in-try-and-auto.diff # PATCH-FIX-UPSTREAM -- fixed after 228 Patch527: 0001-core-fix-bus-name-synchronization-after-daemon-reloa.patch # PATCH-FIX-UPSTREAM -- fixed after 228 Patch528: 0001-core-re-sync-bus-name-list-after-deserializing-durin.patch # PATCH-FIX-UPSTREAM -- fixed after 228 Patch529: 0001-systemctl-pid1-do-not-warn-about-missing-install-inf.patch # PATCH-FIX-UPSTREAM -- fixed after 320 Patch530: systemd-230-cgroup2-use-new-fstype-for-unified-hierarchy.patch # UDEV PATCHES # ============ # NOTE: all udev patches start with 1XXX-*.patch, do not use anything else. # Udev patches mean: patches that affect udev code, src/{udev,libudev} # nothing else, even if the patch might affect indirectly udev, as long # as it's not changing the code of udev and libudev, then is not a udev # patch. Further patches which add and/or changes udev rules. # PATCH-FIX-OPENSUSE 1002-rules-create-by-id-scsi-links-for-ATA-devices.patch Patch1002: 1002-rules-create-by-id-scsi-links-for-ATA-devices.patch # PATCH-FIX-OPENSUSE 1003-udev-netlink-null-rules.patch Patch1003: 1003-udev-netlink-null-rules.patch # PATCH-FIX-OPENSUSE 1005-create-default-links-for-primary-cd_dvd-drive.patch Patch1005: 1005-create-default-links-for-primary-cd_dvd-drive.patch # PATCH-FIX-OPENSUSE 1006-udev-always-rename-network.patch Patch1006: 1006-udev-always-rename-network.patch # PATCH-FIX-OPENSUSE 1007-physical-hotplug-cpu-and-memory.patch Patch1007: 1007-physical-hotplug-cpu-and-memory.patch # PATCH-FIX-SUSE skip btrfs check if devices are not ready (bnc#872929) Patch1011: 1011-64-btrfs.rules-skip-btrfs-check-if-devices-are-not-r.patch # PATCH-FIX-SUSE skip persistent device link creation on mp device (bnc#872929) Patch1012: 1012-Skip-persistent-device-link-creation-on-multipath-de.patch # PATCH-FIX-SUSE 1035-99-systemd.rules-Ignore-devices-with-SYSTEMD_READY-0.patch Patch1035: 1035-99-systemd.rules-Ignore-devices-with-SYSTEMD_READY-0.patch # PATCH-FIX-SUSE See bnc#882714 comment #51 Patch1037: 1037-udev-exclude-cd-dvd-from-block-device.patch # PATCH-FIX-SUSE 1062-rules-set-default-permissions-for-GenWQE-devices.patch (bnc#890977) Patch1062: 1062-rules-set-default-permissions-for-GenWQE-devices.patch # PATCH-FIX-SUSE 1066-udev-add-compatibility-links-for-truncated-by-id-links.patch (bnc#886852) Patch1066: 1066-udev-add-compatibility-links-for-truncated-by-id-links.patch # PATCH-FIX-SUSE 1095-set-ssd-disk-to-use-deadline-scheduler.patch (bnc#904517) Patch1095: 1095-set-ssd-disk-to-use-deadline-scheduler.patch # PATCH-FIX-SUSE 1096-new-udev-root-symlink-generator.patch Patch1096: 1096-new-udev-root-symlink-generator.patch # PATCH-FIX-SUSE 1097-udevd-increase-maximum-number-of-children.patch Patch1097: 1097-udevd-increase-maximum-number-of-children.patch # PATCH-FIX-OPENSUSE 1098-systemd-networkd-alias-network-service.patch Patch1098: 1098-systemd-networkd-alias-network-service.patch # PATCH-FIX-OPENSUSE 1099-Add-default-rules-for-valve-steam-controller-to-work.patch Patch1099: 1099-Add-default-rules-for-valve-steam-controller-to-work.patch # PATCH-FIX-OPENSUSE hostname-NULL.patch - fix crash on xen build hosts in OBS Marcus Meissner Patch1100: hostname-NULL.patch %description Systemd is a system and service manager, compatible with SysV and LSB init scripts for Linux. systemd provides aggressive parallelization capabilities, uses socket and D-Bus activation for starting services, offers on-demand starting of daemons, keeps track of processes using Linux cgroups, supports snapshotting and restoring of the system state, maintains mount and automount points and implements an elaborate transactional dependency-based service control logic. It can work as a drop-in replacement for sysvinit. %package bash-completion Summary: Bash completion support for systemd License: LGPL-2.1+ Group: System/Base Requires: bash %if %{with bash_completion} Requires: bash-completion %endif BuildArch: noarch %description bash-completion Some systemd commands offer bash completion, but it's an optional dependency. %package devel Summary: Development headers for systemd License: LGPL-2.1+ Group: Development/Libraries/C and C++ Requires: libsystemd0%{?mini} = %{version}-%{release} Requires: systemd-rpm-macros %if 0%{?bootstrap} Provides: systemd-devel = %version-%release %endif Conflicts: otherproviders(systemd-devel) %description devel Development headers and auxiliary files for developing applications for systemd. %package sysvinit Summary: System V init tools License: LGPL-2.1+ Group: System/Base Requires: %{name} = %{version}-%{release} Provides: sbin_init Conflicts: otherproviders(sbin_init) Provides: sysvinit:/sbin/init %description sysvinit Drop-in replacement of System V init tools. %package -n libsystemd0%{?mini} Summary: Component library for systemd License: LGPL-2.1+ Group: System/Libraries %if 0%{?bootstrap} Conflicts: libsystemd0 Requires: this-is-only-for-build-envs %endif %description -n libsystemd0%{?mini} This library provides several of the systemd C APIs: * sd-bus implements an alternative D-Bus client library that is relatively easy to use, very efficient and supports both classic D-Bus as well as kdbus as transport backend. * sd-daemon(3): for system services (daemons) to report their status to systemd and to make easy use of socket-based activation logic * sd-event is a generic event loop abstraction that is built around Linux epoll, but adds features such as event prioritization or efficient timer handling. * sd-id128(3): generation and processing of 128-bit IDs * sd-journal(3): API to submit and query journal log entries * sd-login(3): APIs to introspect and monitor seat, login session and user status information on the local system. %package -n systemctl Summary: systemd essential helper programs License: LGPL-2.1+ Group: System/Base %description -n systemctl This subpackage contains the "systemctl" and "tmpfiles" programs of systemd, factored out to support RPM scriptlets making use of these two. It is meant for container/chroot directories for which the administrator intends not to use systemd as init system while still maintaining the /etc/systemd links for a later time. %package -n udev%{?mini} Summary: A rule-based device node and kernel event manager License: GPL-2.0 Group: System/Kernel Url: http://www.kernel.org/pub/linux/utils/kernel/hotplug/udev.html PreReq: /bin/rm PreReq: %insserv_prereq PreReq: %fillup_prereq # Avoid bootstrap cycle with sg3_utils %if "%{?mini}" == "" PreReq: /usr/bin/sg_inq %endif Requires(pre): /usr/bin/stat Requires(pre): /usr/sbin/groupadd Requires(pre): /usr/bin/getent Requires(post): libudev%{?mini}1 Requires(post): sed Requires(post): /usr/bin/systemctl %if %{defined regenerate_initrd_post} Requires(post): coreutils Requires(post): /usr/bin/stat Requires(postun): coreutils Requires(posttrans): suse-module-tools Requires(posttrans): /sbin/mkinitrd %else Requires(post): /sbin/mkinitrd Requires(postun): /sbin/mkinitrd %endif Conflicts: systemd < 39 Conflicts: aaa_base < 11.5 Conflicts: filesystem < 11.5 Conflicts: mkinitrd < 2.7.0 Conflicts: util-linux < 2.16 Conflicts: ConsoleKit < 0.4.1 Requires: filesystem %if 0%{?bootstrap} Provides: udev = %version-%release Conflicts: kiwi %endif Conflicts: otherproviders(udev) %description -n udev%{?mini} Udev creates and removes device nodes in /dev for devices discovered or removed from the system. It receives events via kernel netlink messages and dispatches them according to rules in /lib/udev/rules.d/. Matching rules may name a device node, create additional symlinks to the node, call tools to initialize a device, or load needed kernel modules. %package -n libudev%{?mini}1 # This really should have been libudev1%{?mini}, but requires changes to prjconf :-/ Summary: Dynamic library to access udev device information License: LGPL-2.1+ Group: System/Libraries %if 0%{?bootstrap} Conflicts: libudev1 %endif %description -n libudev%{?mini}1 This package contains the dynamic library libudev, which provides access to udev device information %package -n libudev%{?mini}-devel Summary: Development files for libudev License: LGPL-2.1+ Group: Development/Libraries/C and C++ Requires: libudev%{?mini}1 = %version-%release %if 0%{?bootstrap} Provides: libudev-devel = %version-%release %endif Conflicts: otherproviders(libudev-devel) %description -n libudev%{?mini}-devel This package contains the development files for the library libudev, a dynamic library, which provides access to udev device information. %if ! 0%{?bootstrap} %package logger Summary: Journal only logging License: LGPL-2.1+ Group: System/Base Provides: syslog Provides: sysvinit(syslog) Requires(pre): /usr/bin/getent Requires(pre): /usr/sbin/groupadd Requires(post): /usr/bin/getent Requires(post): /usr/bin/setfacl Requires(post): /usr/bin/systemctl Requires(post): permissions Conflicts: otherproviders(syslog) %description logger This package marks the installation to not use syslog but only the journal. %package -n nss-myhostname Summary: Plugin for local system host name resolution License: LGPL-2.1+ Group: System/Libraries %description -n nss-myhostname nss-myhostname is a plugin for the GNU Name Service Switch (NSS) functionality of the GNU C Library (glibc) providing host name resolution for the locally configured system hostname as returned by gethostname(2). Various software relies on an always resolvable local host name. When using dynamic hostnames this is usually achieved by patching /etc/hosts at the same time as changing the host name. This however is not ideal since it requires a writable /etc file system and is fragile because the file might be edited by the administrator at the same time. nss-myhostname simply returns all locally configured public IP addresses, or -- if none are configured -- the IPv4 address 127.0.0.2 (wich is on the local loopback) and the IPv6 address ::1 (which is the local host) for whatever system hostname is configured locally. Patching /etc/hosts is thus no longer necessary. Note that nss-myhostname only provides a workaround for broken software. If nss-myhostname is trigged by an application a message is logged to /var/log/messages. Please check whether that's worth a bug report then. This package marks the installation to not use syslog but only the journal. %package -n nss-mymachines Summary: Plugin for local virtual host name resolution License: LGPL-2.1+ Group: System/Libraries %description -n nss-mymachines nss-myhostname is a plugin for the GNU Name Service Switch (NSS) functionality of the GNU C Library (glibc) providing host name resolution for the locally configured containers and virtual machines systemd-machined knows about. %package -n nss-resolve Summary: Plugin for local hostname resolution via systemd-resolved License: LGPL-2.1+ Group: System/Libraries %description -n nss-resolve %package journal-gateway Summary: Gateway for serving journal events over the network using HTTP License: LGPL-2.1+ Group: System/Base Requires: %{name} = %{version}-%{release} Requires(post): systemd Requires(preun): systemd Requires(postun): systemd %description journal-gateway systemd-journal-gatewayd serves journal events over the network using HTTP. %endif %prep %setup -q -n systemd-%version echo "Checking whether upstream rpm macros changed..." diff -au "%{S:10}" src/core/macros.systemd.in # only needed for bootstrap %if 0%{?bootstrap} cp %{SOURCE7} m4/ %endif # systemd patches %patch3 -p1 %patch4 -p1 %patch5 -p1 %patch6 -p1 %patch12 -p1 %patch16 -p1 %patch17 -p1 %patch20 -p1 %patch21 -p1 # check if this is still needed, or can be derived from fbdev uaccess rule # http://lists.freedesktop.org/archives/systemd-devel/2012-November/007561.html %patch27 -p1 %patch28 -p1 %patch37 -p1 %patch39 -p1 %patch41 -p1 %patch42 -p1 %patch84 -p1 %patch86 -p1 %patch90 -p1 %patch91 -p1 %patch120 -p1 %patch178 -p1 %patch179 -p1 %patch180 -p1 %patch182 -p1 %patch183 -p1 %patch186 -p1 %patch188 -p1 %patch189 -p1 %patch190 -p1 %patch191 -p1 %patch192 -p1 %patch193 -p1 %patch197 -p1 %patch198 -p1 %patch203 -p1 %patch208 -p1 %patch338 -p1 %patch345 -p1 %patch352 -p1 %patch362 -p1 %patch366 -p1 %patch368 -p1 %patch386 -p1 %patch430 -p1 %patch475 -p1 %patch490 -p1 %patch520 -p1 %patch521 -p1 %patch522 -p1 %patch523 -p1 %patch524 -p1 %patch525 -p1 %patch526 -p1 %patch527 -p1 %patch528 -p1 %patch529 -p1 %patch530 -p1 # udev patches %patch1002 -p1 %patch1003 -p1 %patch1005 -p1 %patch1006 -p1 %patch1007 -p1 %patch1011 -p1 %patch1012 -p1 %patch1035 -p1 %if %{with blkrrpart} %patch1037 -p1 %endif %patch1062 -p1 %patch1066 -p1 %patch1095 -p1 %patch1096 -p1 %patch1097 -p1 %patch1098 -p1 %patch1099 -p1 %patch1100 -p1 # # In combination with Patch352 set-and-use-default-logconsole.patch # Ensure that journald log on tty10 # %ifarch %ix86 x86_64 x32 sed -ri 's:#TTYPath=/dev/console:#TTYPath=/dev/tty10:' src/journal/journald.conf %endif %build # # Be sure that fresh build libudev is linked as otherwise no errors are found # sed -ri '/^systemd_cryptsetup_CFLAGS/,/^systemd_cryptsetup_LDADD/{ /^$/a\ systemd_cryptsetup_LDFLAGS = \\\ $(AM_LDFLAGS) \\\ -Wl,-rpath-link=$(top_srcdir)/.libs\ }' Makefile.am sh autogen.sh export CFLAGS="%{optflags}" %if 0%{?suse_version} == 1315 CFLAGS="$CFLAGS -DNET_IFNAMES=1" %else CFLAGS="$CFLAGS -DNET_IFNAMES=0" %endif # certificate-root is set to /etc/pki/systemd instead of the # built-in default /etc/ssl as journal-remote and journal-upload # think they kan put stuff in /etc/ssl/certs then but that # directory is managed by p11-kit and doesn't serve the purpose # those programs think # # keep split-usr until all packages have moved their systemd rules to /usr %configure \ --with-ntp-servers="0.opensuse.pool.ntp.org 1.opensuse.pool.ntp.org 2.opensuse.pool.ntp.org 3.opensuse.pool.ntp.org" \ --docdir=%{_docdir}/systemd \ --with-pamlibdir=/%{_lib}/security \ --with-dbuspolicydir=%{_sysconfdir}/dbus-1/system.d \ --with-dbussessionservicedir=%{_datadir}/dbus-1/services \ --with-dbussystemservicedir=%{_datadir}/dbus-1/system-services \ --with-dbusinterfacedir=%{_datadir}/dbus-1/interfaces \ --with-certificate-root=/etc/pki/systemd \ %if 0%{?bootstrap} --disable-myhostname \ --disable-manpages \ --disable-machined \ --disable-importd \ %else --enable-manpages \ %if %{with python} --with-python \ %endif --with-nss-my-hostname-warning \ %endif --enable-selinux \ --enable-split-usr \ --disable-static \ --with-rc-local-script-path-start=/etc/init.d/boot.local \ --with-rc-local-script-path-stop=/etc/init.d/halt.local \ --with-debug-shell=/bin/bash \ --disable-smack \ --disable-ima \ %if %{without networkd} --disable-networkd \ %endif %if %{without sysvcompat} --with-sysvinit-path= \ --with-sysvrcnd-path= \ %endif %if %{without resolved} --disable-resolved \ %endif --disable-kdbus %make_build V=e %if ! 0%{?bootstrap} %make_build V=e update-man-list man %endif %install %make_install install -pm0755 "%_sourcedir/systemd-sysv-install" "%buildroot/%_prefix/lib/systemd/" # move to %{_lib} %if ! 0%{?bootstrap} mv %{buildroot}%{_libdir}/libnss_myhostname.so.2 %{buildroot}/%{_lib} %endif mkdir -p %{buildroot}/{sbin,lib,bin} ln -sf %{_bindir}/udevadm %{buildroot}/sbin/udevadm ln -sf %{_bindir}/systemd-ask-password %{buildroot}/bin/systemd-ask-password ln -sf %{_bindir}/systemctl %{buildroot}/bin/systemctl ln -sf %{_prefix}/lib/systemd/systemd-udevd %{buildroot}/sbin/udevd %if ! 0%{?bootstrap} ln -sf systemd-udevd.8 %{buildroot}/%{_mandir}/man8/udevd.8 %endif %if ! 0%{?bootstrap} install -D -m 755 %{S:9} %{buildroot}%{_sbindir}/nss-myhostname-config %endif ln -s systemd-udevd.service %{buildroot}/%{_prefix}/lib/systemd/system/udev.service install -m755 -D %{S:1065} %{buildroot}/%{_prefix}/lib/udev/remount-tmpfs mkdir -p %{buildroot}/%{_prefix}/lib/systemd/system/basic.target.wants rm -rf %{buildroot}%{_sysconfdir}/rpm find %{buildroot} -type f -name '*.la' -delete mkdir -p %{buildroot}/{sbin,var/lib/systemd/sysv-convert,var/lib/systemd/migrated} %{buildroot}/usr/lib/systemd/{system-generators,user-generators,system-preset,user-preset,system/halt.target.wants,system/kexec.target.wants,system/poweroff.target.wants,system/reboot.target.wants,system/shutdown.target.wants} install -m755 %{S:3} -D %{buildroot}%{_sbindir}/systemd-sysv-convert ln -s ../usr/lib/systemd/systemd %{buildroot}/bin/systemd ln -s ../usr/lib/systemd/systemd %{buildroot}/sbin/init ln -s ../usr/bin/systemctl %{buildroot}/sbin/reboot ln -s ../usr/bin/systemctl %{buildroot}/sbin/halt ln -s ../usr/bin/systemctl %{buildroot}/sbin/shutdown ln -s ../usr/bin/systemctl %{buildroot}/sbin/poweroff ln -s ../usr/bin/systemctl %{buildroot}/sbin/telinit ln -s ../usr/bin/systemctl %{buildroot}/sbin/runlevel rm -rf %{buildroot}/etc/systemd/system/*.target.wants rm -f %{buildroot}/etc/systemd/system/default.target # We keep a copy of tmp.mount because it may be removed if not used # (see %post): we want to be sure tmpfs won't be used for /tmp by # default on Suse distros. rm %{buildroot}/%{_prefix}/lib/systemd/system/local-fs.target.wants/tmp.mount cp %{buildroot}/%{_prefix}/lib/systemd/system/tmp.mount %{buildroot}/%{_datadir}/systemd/ # don't enable wall ask password service, it spams every console (bnc#747783) rm %{buildroot}%{_prefix}/lib/systemd/system/multi-user.target.wants/systemd-ask-password-wall.path # create %{_libexecdir}/modules-load.d mkdir -p %{buildroot}%{_libexecdir}/modules-load.d cat << EOF > %{buildroot}%{_libexecdir}/modules-load.d/sg.conf # load sg module at boot time sg EOF # do not ship sysctl defaults in systemd package, will be part of # aaa_base (in procps for now) rm -f %{buildroot}%{_prefix}/lib/sysctl.d/50-default.conf # remove README file for now rm -f %{buildroot}/etc/init.d/README %if 0%{?bootstrap} rm -f %{buildroot}%{_localstatedir}/log/README rm -rf %{buildroot}%{_datadir}/bash-completion %endif # legacy links for f in loginctl journalctl ; do ln -s $f %{buildroot}%{_bindir}/systemd-$f %if ! 0%{?bootstrap} ln -s $f.1 %{buildroot}%{_mandir}/man1/systemd-$f.1 %endif done ln -s /usr/lib/udev %{buildroot}/lib/udev # Create the /var/log/journal directory to change the volatile journal to a persistent one mkdir -p %{buildroot}%{_localstatedir}/log/journal/ # Make sure directories in /var exist mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/coredump mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/catalog #create ghost databases touch %{buildroot}%{_localstatedir}/lib/systemd/catalog/database touch %{buildroot}%{_sysconfdir}/udev/hwdb.bin # Make sure the NTP units dir exists mkdir -p %{buildroot}%{_prefix}/lib/systemd/ntp-units.d/ # Make sure the shutdown/sleep drop-in dirs exist mkdir -p %{buildroot}%{_prefix}/lib/systemd/system-shutdown/ mkdir -p %{buildroot}%{_prefix}/lib/systemd/system-sleep/ # Make sure these directories are properly owned mkdir -p %{buildroot}%{_prefix}/lib/systemd/system/default.target.wants mkdir -p %{buildroot}%{_prefix}/lib/systemd/system/dbus.target.wants # create drop-in to prevent tty1 to be cleared (bnc#804158) mkdir -p %{buildroot}%{_prefix}/lib/systemd/system/getty@tty1.service.d/ cat << EOF > %{buildroot}%{_prefix}/lib/systemd/system/getty@tty1.service.d/noclear.conf [Service] # ensure tty1 isn't cleared (bnc#804158) TTYVTDisallocate=no EOF #ensure we get the running kernel sysctl settings. cat << EOF > %{buildroot}%{_prefix}/lib/tmpfiles.d/current-kernel-sysctl.conf d! /run/sysctl.d L! /run/sysctl.d/00-kernel-%v.conf - - - - /boot/sysctl.conf-%v EOF mkdir -p %{buildroot}/%{_prefix}/lib/systemd/system/systemd-sysctl.service.d cat << EOF > %{buildroot}/%{_prefix}/lib/systemd/system/systemd-sysctl.service.d/after.conf [Unit] After=local-fs.target EOF # ensure after.local wrapper is called install -m 644 %{S:11} %{buildroot}/%{_prefix}/lib/systemd/system/ ln -s ../after-local.service %{buildroot}/%{_prefix}/lib/systemd/system/multi-user.target.wants/ mkdir -p %{buildroot}%{_localstatedir}/lib/systemd/backlight > %{buildroot}%{_localstatedir}/lib/systemd/random-seed # machined mkdir -p %{buildroot}%{_localstatedir}/lib/machines %fdupes -s %{buildroot}%{_mandir} %if ! 0%{?bootstrap} for f in %{buildroot}%{_datadir}/bash-completion/completions/* do test -e "$f" || break grep -q _init_completion "$f" || continue echo "%exclude %{_datadir}/bash-completion/completions/${f##*/}" done > files.completion %else > files.completion %endif # packaged in systemd-rpm-macros rm -f %{buildroot}/%{_prefix}/lib/rpm/macros.d/macros.systemd %if %{without compat_libs} lib=%{_libdir}/libsystemd.so for lnk in daemon login id128 journal do lnk=%{buildroot}%{_libdir}/libsystemd-${lnk}.so echo '/* GNU ld script */' > ${lnk} echo 'INPUT('${lib}')' >> ${lnk} done %endif # Some files which may created by us or by the admin later on mkdir -p %{buildroot}%{_sysconfdir}/X11/xorg.conf.d for ghost in X11/xorg.conf.d/00-keyboard.conf vconsole.conf locale.conf \ machine-id machine-info \ systemd/system/runlevel2.target \ systemd/system/runlevel3.target \ systemd/system/runlevel4.target \ systemd/system/runlevel4.target \ systemd/system/runlevel5.target do > %{buildroot}%{_sysconfdir}/$ghost done # Workaround for bug #882393 for runlevel in poweroff rescue multi-user graphical reboot do mkdir -p %{buildroot}%{_prefix}/lib/systemd/system/${runlevel}.target.wants ln -sf ../systemd-update-utmp-runlevel.service %{buildroot}%{_prefix}/lib/systemd/system/${runlevel}.target.wants/ done # add entries for xkeyboard-config converted keymaps; mappings, # which already exist in original systemd mapping table are being # ignored though, i.e. not overwritten if [ -f /usr/share/systemd/kbd-model-map.xkb-generated ]; then cat /usr/share/systemd/kbd-model-map.xkb-generated \ >>"%buildroot/usr/share/systemd/kbd-model-map" fi %find_lang systemd %pre for name in journal timesync network resolve bus-proxy do getent group systemd-$name >/dev/null && continue groupadd -r systemd-$name || : done for name in adm input tape do getent group $name >/dev/null && continue groupadd -r $name || : done for name in timesync network resolve bus-proxy do getent passwd systemd-$name >/dev/null && continue case "$name" in timesync) descr="Systemd Time Synchronization" ;; network) descr="Systemd Network Management" ;; resolve) descr="Systemd Resolver" ;; bus-proxy) descr="Systemd Bus Proxy" ;; esac useradd -r -l -g systemd-$name systemd-$name -s /usr/sbin/nologin -d / -c "$descr" || : done exit 0 %post %if ! 0%{?bootstrap} /usr/sbin/pam-config -a --systemd || : %endif /sbin/ldconfig [ -e %{_localstatedir}/lib/random-seed ] && mv %{_localstatedir}/lib/random-seed %{_localstatedir}/lib/systemd/ > /dev/null || : /usr/bin/systemd-machine-id-setup || : /usr/lib/systemd/systemd-random-seed save || : /usr/bin/systemctl daemon-reexec || : /usr/bin/journalctl --update-catalog || : # Make sure new journal files chgrp systemd-journal %{_localstatedir}/log/journal/ || : chmod g+s %{_localstatedir}/log/journal/ || : if read ID < /etc/machine-id > /dev/null 2>&1 ; then chgrp systemd-journal "%{_localstatedir}/log/journal/$ID" || : chmod g+s "%{_localstatedir}/log/journal/$ID" || : fi %if %{with systemgrps} getent group wheel && setfacl -Rnm g:wheel:rx,d:g:wheel:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : getent group adm && setfacl -Rnm g:adm:rx,d:g:adm:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : %endif systemd-sysusers || : # Try to read default runlevel from the old inittab if it exists if [ ! -e /etc/systemd/system/default.target -a -e /etc/inittab ]; then runlevel=$(awk -F ':' '$3 == "initdefault" && $1 !~ "^#" { print $2 }' /etc/inittab 2> /dev/null) if [ -n "$runlevel" ] ; then /bin/ln -sf /usr/lib/systemd/system/runlevel$runlevel.target /etc/systemd/system/default.target 2>&1 || : fi fi # Create default config in /etc at first install. # Later package updates should not overwrite these settings. if [ "$1" -eq 1 ]; then # Enable these services by default. # Specifying multiple units can cause the entire operation to not # execute if one of them is missing, so run systemctl with one unit # at a time only. for i in getty@tty1.service remote-fs.target; do /usr/bin/systemctl enable "$i" || : done fi # since v207 /etc/sysctl.conf is no longer parsed, however # backward compatibility is provided by /etc/sysctl.d/99-sysctl.conf if [ ! -L /etc/sysctl.d/99-sysctl.conf -a -e /etc/sysctl.conf ]; then /bin/ln -sf /etc/sysctl.conf /etc/sysctl.d/99-sysctl.conf || : fi # migrate any symlink which may refer to the old path for f in $(find /etc/systemd/system -type l -xtype l); do new_target="/usr$(readlink $f)" [ -f "$new_target" ] && ln -s -f $new_target $f || : done # Keep tmp.mount if it's been enabled explicitly by the user otherwise # make sure it wont be activated since it's the default for Suse # distros. This unit can be pulled (implicitely) in various ways # (private /tmp, etc..) and it's required by the basic.target # explicitly since v220. case $(/usr/bin/systemctl is-enabled tmp.mount 2>/dev/null) in enabled) ;; *) rm -f %{_prefix}/lib/systemd/system/tmp.mount esac %postun /sbin/ldconfig if [ $1 -ge 1 ]; then /usr/bin/systemctl daemon-reload || : #Avoid restarting logind [bnc#934901] until fixed upstream #/usr/bin/systemctl try-restart systemd-logind.service || : fi %if ! 0%{?bootstrap} if [ $1 -eq 0 ]; then /usr/sbin/pam-config -d --systemd || : fi %endif %preun if [ $1 -eq 0 ]; then /usr/bin/systemctl disable \ getty@.service \ remote-fs.target || : rm -f /etc/systemd/system/default.target 2>&1 || : fi # pretrans section must always use lua %pretrans -n udev%{?mini} -p if posix.stat("/lib/udev") and not posix.stat("/usr/lib/udev") then posix.symlink("/lib/udev", "/usr/lib/udev") end %pre -n udev%{?mini} if test -L /usr/lib/udev -a /lib/udev -ef /usr/lib/udev ; then rm /usr/lib/udev mv /lib/udev /usr/lib ln -s /usr/lib/udev /lib/udev elif [ ! -e /lib/udev ]; then ln -s /usr/lib/udev /lib/udev fi # Create "tape" group which is referenced by 50-udev-default.rules and 60-persistent-storage-tape.rules getent group tape >/dev/null || groupadd -r tape || : # kill daemon if we are not in a chroot if test -f /proc/1/exe -a -d /proc/1/root ; then if test "$(stat -Lc '%%D-%%i' /)" = "$(stat -Lc '%%D-%%i' /proc/1/root)"; then systemctl stop systemd-udevd-control.socket systemd-udevd-kernel.socket systemd-udevd.service udev.service udev-control.socket udev-kernel.socket || : udevadm control --exit || : fi fi %post -n udev%{?mini} /usr/bin/udevadm hwdb --update || : if [ -f /etc/udev/rules.d/70-persistent-net.rules ]; then # add KERNEL name match to existing persistent net rules sed -ri '/KERNEL/ ! { s/NAME="(eth|wlan|ath)([0-9]+)"/KERNEL=="\1*", NAME="\1\2"/}' \ /etc/udev/rules.d/70-persistent-net.rules || : fi # cleanup old stuff rm -f /etc/sysconfig/udev rm -f /etc/udev/rules.d/20-cdrom.rules rm -f /etc/udev/rules.d/55-cdrom.rules rm -f /etc/udev/rules.d/65-cdrom.rules systemctl daemon-reload || : # start daemon if we are not in a chroot if test -f /proc/1/exe -a -d /proc/1/root; then if test "$(stat -Lc '%%D-%%i' /)" = "$(stat -Lc '%%D-%%i' /proc/1/root)"; then if ! systemctl start systemd-udevd.service; then /usr/lib/systemd/systemd-udevd --daemon || : fi fi fi if [ "${YAST_IS_RUNNING}" != "instsys" ]; then if [ -e %{_localstatedir}/lib/no_initrd_recreation_by_suspend ]; then echo "Skipping recreation of existing initial ramdisks, due" echo "to presence of %{_localstatedir}/lib/no_initrd_recreation_by_suspend" %if %{defined regenerate_initrd_post} else %regenerate_initrd_post %else elif [ -x /sbin/mkinitrd ]; then [ -x /sbin/mkinitrd_setup ] && /sbin/mkinitrd_setup /sbin/mkinitrd || : %endif fi fi %postun -n udev%{?mini} %insserv_cleanup systemctl daemon-reload || : if [ "${YAST_IS_RUNNING}" != "instsys" ]; then if [ -e %{_localstatedir}/lib/no_initrd_recreation_by_suspend ]; then echo "Skipping recreation of existing initial ramdisks, due" echo "to presence of %{_localstatedir}/lib/no_initrd_recreation_by_suspend" %if %{defined regenerate_initrd_post} else %regenerate_initrd_post %else elif [ -x /sbin/mkinitrd ]; then [ -x /sbin/mkinitrd_setup ] && /sbin/mkinitrd_setup /sbin/mkinitrd || : %endif fi fi %if %{defined regenerate_initrd_post} %posttrans -n udev%{?mini} %regenerate_initrd_posttrans %endif %post -n libsystemd0%{?mini} -p /sbin/ldconfig %postun -n libsystemd0%{?mini} -p /sbin/ldconfig %post -n libudev%{?mini}1 -p /sbin/ldconfig %postun -n libudev%{?mini}1 -p /sbin/ldconfig %if ! 0%{?bootstrap} %if %{with permission} %verifyscript logger %verify_permissions -e %{_localstatedir}/log/journal/ %endif %pre logger getent group systemd-journal >/dev/null || groupadd -r systemd-journal || : exit 0 %post logger %if %{with permission} %set_permissions %{_localstatedir}/log/journal/ %endif %if %{with systemgrps} getent group wheel && setfacl -Rnm g:wheel:rx,d:g:wheel:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : getent group adm && setfacl -Rnm g:adm:rx,d:g:adm:rx %{_localstatedir}/log/journal/ > /dev/null 2>&1 || : %endif if [ "$1" -eq 1 ]; then # tell journal to start logging on disk if directory didn't exist before systemctl --no-block restart systemd-journal-flush.service || : fi %preun -n nss-myhostname if [ "$1" -eq 0 -a -f /etc/nsswitch.conf ] ; then %{_sbindir}/nss-myhostname-config --disable fi %post -n nss-myhostname -p /sbin/ldconfig %postun -n nss-myhostname -p /sbin/ldconfig %post -n nss-mymachines -p /sbin/ldconfig %postun -n nss-mymachines -p /sbin/ldconfig %pre journal-gateway getent passwd systemd-journal-gateway >/dev/null || useradd -r -l -g systemd-journal-gateway -d %{_localstatedir}/log/journal/ -s /usr/sbin/nologin -c "Systemd Journal Gateway" systemd-journal-gateway || : getent group systemd-journal-gateway >/dev/null || groupadd -r systemd-journal-gateway || : %service_add_pre systemd-journal-gatewayd.socket systemd-journal-gatewayd.service exit 0 %post journal-gateway %service_add_post systemd-journal-gatewayd.socket systemd-journal-gatewayd.service %preun journal-gateway %service_del_preun systemd-journal-gatewayd.socket systemd-journal-gatewayd.service %postun journal-gateway %service_del_postun systemd-journal-gatewayd.socket systemd-journal-gatewayd.service %endif %files -f systemd.lang %defattr(-,root,root) /bin/systemd /bin/systemd-ask-password %if %{with networkd} %{_bindir}/networkctl %endif %{_bindir}/busctl %{_bindir}/bootctl %{_bindir}/kernel-install %{_bindir}/hostnamectl %{_bindir}/localectl %if ! 0%{?bootstrap} %{_bindir}/machinectl %endif %{_bindir}/systemd-analyze %{_bindir}/coredumpctl %{_bindir}/systemd-delta %{_bindir}/systemd-escape %{_bindir}/systemd-firstboot %{_bindir}/systemd-path %{_bindir}/systemd-sysusers %{_bindir}/systemd-notify %{_bindir}/systemd-run %{_bindir}/systemd-journalctl %{_bindir}/journalctl %{_bindir}/systemd-ask-password %{_bindir}/loginctl %{_bindir}/systemd-loginctl %{_bindir}/systemd-inhibit %{_bindir}/systemd-tty-ask-password-agent %{_bindir}/systemd-machine-id-setup %{_bindir}/systemd-nspawn %{_bindir}/systemd-stdio-bridge %{_bindir}/systemd-detect-virt %{_bindir}/timedatectl %{_sbindir}/systemd-sysv-convert %{_bindir}/systemd-cgls %{_bindir}/systemd-cgtop %{_bindir}/systemd-cat %dir %{_prefix}/lib/kernel %dir %{_prefix}/lib/kernel/install.d %{_prefix}/lib/kernel/install.d/50-depmod.install %{_prefix}/lib/kernel/install.d/90-loaderentry.install %dir %{_prefix}/lib/systemd %dir %{_prefix}/lib/systemd/user %dir %{_prefix}/lib/systemd/system %exclude %{_prefix}/lib/systemd/systemd-sysv* %exclude %{_prefix}/lib/systemd/system/systemd-udev*.* %exclude %{_prefix}/lib/systemd/system/udev.service %exclude %{_prefix}/lib/systemd/system/initrd-udevadm-cleanup-db.service %exclude %{_prefix}/lib/systemd/system/systemd-udev-root-symlink.service %exclude %{_prefix}/lib/systemd/system/*.target.wants/systemd-udev*.* %exclude %{_prefix}/lib/systemd/system/sysinit.target.wants/systemd-udev-root-symlink.service %if ! 0%{?bootstrap} %exclude %{_prefix}/lib/systemd/system/systemd-journal-gatewayd.* %endif %{_prefix}/lib/systemd/system/*.automount %{_prefix}/lib/systemd/system/*.service %{_prefix}/lib/systemd/system/*.slice %{_prefix}/lib/systemd/system/*.target %{_prefix}/lib/systemd/system/*.mount %{_prefix}/lib/systemd/system/*.timer %{_prefix}/lib/systemd/system/*.socket %{_prefix}/lib/systemd/system/*.wants %{_prefix}/lib/systemd/system/*.path %{_prefix}/lib/systemd/user/*.target %{_prefix}/lib/systemd/user/*.service %{_prefix}/lib/systemd/user/*.socket %exclude %{_prefix}/lib/systemd/systemd-udevd %if ! 0%{?bootstrap} %exclude %{_prefix}/lib/systemd/systemd-journal-gatewayd %endif %{_prefix}/lib/systemd/systemd-* %{_prefix}/lib/systemd/systemd %dir %{_prefix}/lib/systemd/catalog %{_prefix}/lib/systemd/catalog/systemd.catalog %{_prefix}/lib/systemd/catalog/systemd.*.catalog %dir %{_prefix}/lib/systemd/system-shutdown %dir %{_prefix}/lib/systemd/system-preset %dir %{_prefix}/lib/systemd/user-preset %dir %{_prefix}/lib/systemd/system-generators %dir %{_prefix}/lib/systemd/user-generators %{_prefix}/lib/systemd/user-generators/systemd-dbus1-generator %dir %{_prefix}/lib/systemd/ntp-units.d/ %dir %{_prefix}/lib/systemd/system-shutdown/ %dir %{_prefix}/lib/systemd/system-sleep/ %dir %{_prefix}/lib/systemd/system/default.target.wants %dir %{_prefix}/lib/systemd/system/dbus.target.wants %dir %{_prefix}/lib/systemd/system/getty@tty1.service.d %{_prefix}/lib/systemd/system/getty@tty1.service.d/noclear.conf %dir %{_prefix}/lib/systemd/system/systemd-sysctl.service.d %{_prefix}/lib/systemd/system/systemd-sysctl.service.d/after.conf %if ! 0%{?bootstrap} %{_prefix}/lib/systemd/system-generators/systemd-cryptsetup-generator %endif %{_prefix}/lib/systemd/system-generators/systemd-dbus1-generator %{_prefix}/lib/systemd/system-generators/systemd-debug-generator %{_prefix}/lib/systemd/system-generators/systemd-hibernate-resume-generator %if %{with sysvcompat} %{_prefix}/lib/systemd/system-generators/systemd-sysv-generator %{_prefix}/lib/systemd/system-generators/systemd-rc-local-generator %{_prefix}/lib/systemd/system-generators/systemd-insserv-generator %endif %{_prefix}/lib/systemd/system-generators/systemd-getty-generator %{_prefix}/lib/systemd/system-generators/systemd-fstab-generator %{_prefix}/lib/systemd/system-generators/systemd-system-update-generator %{_prefix}/lib/systemd/system-generators/systemd-gpt-auto-generator %{_prefix}/lib/systemd/system-preset/ %{_prefix}/lib/sysusers.d/ /%{_lib}/security/pam_systemd.so %config /etc/pam.d/systemd-user %ifarch %{ix86} x86_64 %dir %{_prefix}/lib/systemd/boot %dir %{_prefix}/lib/systemd/boot/efi %{_prefix}/lib/systemd/boot/efi/*.efi %{_prefix}/lib/systemd/boot/efi/*.stub %endif %dir %{_libexecdir}/modules-load.d %dir %{_sysconfdir}/modules-load.d %{_libexecdir}/modules-load.d/sg.conf %dir %{_libexecdir}/binfmt.d %dir %{_sysconfdir}/binfmt.d %dir %{_libexecdir}/sysctl.d %dir %{_sysconfdir}/sysctl.d %{_prefix}/lib/sysctl.d/50-coredump.conf %dir %{_sysconfdir}/systemd %dir %{_sysconfdir}/systemd/system %dir %{_sysconfdir}/systemd/user %dir %{_sysconfdir}/xdg/systemd %dir %{_sysconfdir}/dbus-1 %dir %{_sysconfdir}/dbus-1/system.d %{_sysconfdir}/xdg/systemd/user %dir %{_datadir}/dbus-1 %dir %{_datadir}/dbus-1/services %dir %{_datadir}/dbus-1/system-services %config(noreplace) %{_sysconfdir}/systemd/bootchart.conf %config(noreplace) %{_sysconfdir}/systemd/coredump.conf %if !0%{?bootstrap} %config(noreplace) %{_sysconfdir}/systemd/journal-remote.conf %config(noreplace) %{_sysconfdir}/systemd/journal-upload.conf %endif %config(noreplace) %{_sysconfdir}/systemd/timesyncd.conf %config(noreplace) %{_sysconfdir}/systemd/system.conf %config(noreplace) %{_sysconfdir}/systemd/logind.conf %config(noreplace) %{_sysconfdir}/systemd/journald.conf %config(noreplace) %{_sysconfdir}/systemd/user.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.locale1.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.login1.conf %if !0%{?bootstrap} %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.machine1.conf %endif %if %{with networkd} %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.network1.conf %endif %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.systemd1.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.hostname1.conf %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.timedate1.conf %{_sysconfdir}/X11/xinit/ # Some files which may created by us %dir %{_sysconfdir}/X11/xorg.conf.d %ghost %config(noreplace) %{_sysconfdir}/X11/xorg.conf.d/00-keyboard.conf %ghost %config(noreplace) %{_sysconfdir}/vconsole.conf %ghost %config(noreplace) %{_sysconfdir}/locale.conf %ghost %config(noreplace) %{_sysconfdir}/machine-id %ghost %config(noreplace) %{_sysconfdir}/machine-info %ghost %config(noreplace) %{_sysconfdir}/systemd/system/runlevel2.target %ghost %config(noreplace) %{_sysconfdir}/systemd/system/runlevel3.target %ghost %config(noreplace) %{_sysconfdir}/systemd/system/runlevel4.target %ghost %config(noreplace) %{_sysconfdir}/systemd/system/runlevel5.target %{_datadir}/factory/ %{_datadir}/dbus-1/services/org.freedesktop.systemd1.service %if %{with networkd} %{_prefix}/lib/systemd/system/org.freedesktop.network1.busname %{_datadir}/dbus-1/system-services/org.freedesktop.network1.service %endif %{_prefix}/lib/systemd/system/org.freedesktop.systemd1.busname %{_datadir}/dbus-1/system-services/org.freedesktop.systemd1.service %{_prefix}/lib/systemd/system/org.freedesktop.locale1.busname %{_datadir}/dbus-1/system-services/org.freedesktop.locale1.service %{_prefix}/lib/systemd/system/org.freedesktop.login1.busname %{_datadir}/dbus-1/system-services/org.freedesktop.login1.service %{_prefix}/lib/systemd/system/org.freedesktop.hostname1.busname %{_datadir}/dbus-1/system-services/org.freedesktop.hostname1.service %if !0%{?bootstrap} %{_prefix}/lib/systemd/system/org.freedesktop.machine1.busname %{_datadir}/dbus-1/system-services/org.freedesktop.machine1.service %endif %{_prefix}/lib/systemd/system/org.freedesktop.timedate1.busname %{_datadir}/dbus-1/system-services/org.freedesktop.timedate1.service %dir %{_datadir}/polkit-1 %dir %{_datadir}/polkit-1/actions %if !0%{?bootstrap} %{_datadir}/polkit-1/actions/org.freedesktop.machine1.policy %endif %{_datadir}/polkit-1/actions/org.freedesktop.systemd1.policy %{_datadir}/polkit-1/actions/org.freedesktop.hostname1.policy %{_datadir}/polkit-1/actions/org.freedesktop.locale1.policy %{_datadir}/polkit-1/actions/org.freedesktop.timedate1.policy %{_datadir}/polkit-1/actions/org.freedesktop.login1.policy %if ! 0%{?bootstrap} %exclude %{_datadir}/systemd/gatewayd %endif %{_datadir}/systemd %if ! 0%{?bootstrap} %_mandir/man1/[a-rt-z]*ctl.1* %_mandir/man1/systemc*.1* %_mandir/man1/systemd*.1* %_mandir/man5/[a-tv-z]* %_mandir/man5/user* %_mandir/man7/[bdfks]* %_mandir/man8/kern* %_mandir/man8/pam_* %_mandir/man8/systemd-[a-gik-tv]* %_mandir/man8/systemd-h[aioy]* %_mandir/man8/systemd-journal-remote.* %_mandir/man8/systemd-journal-upload.* %_mandir/man8/systemd-journald* %_mandir/man8/systemd-u[ps]* %endif %{_docdir}/systemd %{_prefix}/lib/udev/rules.d/70-uaccess.rules %{_prefix}/lib/udev/rules.d/71-seat.rules %{_prefix}/lib/udev/rules.d/73-seat-late.rules %if ! 0%{?bootstrap} %{_prefix}/lib/udev/rules.d/73-seat-numlock.rules %endif %{_prefix}/lib/udev/rules.d/99-systemd.rules %{_prefix}/lib/udev/numlock-on %if 0%{suse_version} < 1310 %{_sysconfdir}/rpm/macros.systemd %endif %dir %{_localstatedir}/lib/systemd %dir %{_localstatedir}/lib/systemd/sysv-convert %dir %{_localstatedir}/lib/systemd/migrated %dir %{_localstatedir}/lib/systemd/catalog %ghost %{_localstatedir}/lib/systemd/catalog/database %dir %{_localstatedir}/lib/systemd/coredump %dir %{_datadir}/zsh %dir %{_datadir}/zsh/site-functions %{_datadir}/zsh/site-functions/* %ghost %{_localstatedir}/lib/systemd/backlight %ghost %{_localstatedir}/lib/systemd/random-seed %dir %{_localstatedir}/lib/machines %if %{with resolved} %{_sysconfdir}/dbus-1/system.d/org.freedesktop.resolve1.conf %{_sysconfdir}/systemd/resolved.conf %{_libdir}/libnss_resolve.so.2 %{_datadir}/dbus-1/system-services/org.freedesktop.resolve1.service %{_prefix}/lib/systemd/system/org.freedesktop.resolve1.busname %endif %if ! 0%{?bootstrap} %{_sysconfdir}/dbus-1/system.d/org.freedesktop.import1.conf %{_prefix}/lib/systemd/import-pubring.gpg %{_prefix}/lib/systemd/system/org.freedesktop.import1.busname %{_datadir}/dbus-1/system-services/org.freedesktop.import1.service %{_datadir}/polkit-1/actions/org.freedesktop.import1.policy %endif %if ! 0%{?bootstrap} %files bash-completion -f files.completion %defattr(-,root,root,-) %dir %{_datadir}/bash-completion %dir %{_datadir}/bash-completion/completions %{_datadir}/bash-completion/completions/* %endif %files devel %defattr(-,root,root,-) %{_libdir}/libsystemd.so %{_libdir}/libsystemd-daemon.so %{_libdir}/libsystemd-login.so %{_libdir}/libsystemd-id128.so %{_libdir}/libsystemd-journal.so %{_includedir}/systemd/ %{_datadir}/pkgconfig/systemd.pc %{_libdir}/pkgconfig/libsystemd.pc %{_libdir}/pkgconfig/libsystemd-daemon.pc %{_libdir}/pkgconfig/libsystemd-login.pc %{_libdir}/pkgconfig/libsystemd-id128.pc %{_libdir}/pkgconfig/libsystemd-journal.pc %if ! 0%{?bootstrap} %_mandir/man3/SD*.3* %_mandir/man3/sd*.3* %endif %files sysvinit %defattr(-,root,root,-) /sbin/init /sbin/reboot /sbin/halt /sbin/shutdown /sbin/poweroff /sbin/telinit /sbin/runlevel %if ! 0%{?bootstrap} %{_mandir}/man1/init.1* %{_mandir}/man8/halt.8* %{_mandir}/man8/reboot.8* %{_mandir}/man8/shutdown.8* %{_mandir}/man8/poweroff.8* %{_mandir}/man8/telinit.8* %{_mandir}/man8/runlevel.8* %endif %dir %_prefix/lib/systemd %_prefix/lib/systemd/systemd-sysv-install %files -n udev%{?mini} %defattr(-,root,root) /sbin/udevd /sbin/udevadm # keep for compatibility %ghost /lib/udev %{_bindir}/udevadm %if 0%{?suse_version} <= 1310 %{_prefix}/lib/firmware %endif %{_bindir}/systemd-hwdb %dir %{_prefix}/lib/udev/ %{_prefix}/lib/udev/ata_id %{_prefix}/lib/udev/cdrom_id %{_prefix}/lib/udev/collect %{_prefix}/lib/udev/mtd_probe %{_prefix}/lib/udev/scsi_id %{_prefix}/lib/udev/v4l_id %{_prefix}/lib/udev/remount-tmpfs %{_prefix}/lib/udev/rootsymlink-generator %dir %{_prefix}/lib/udev/rules.d/ %exclude %{_prefix}/lib/udev/rules.d/70-uaccess.rules %exclude %{_prefix}/lib/udev/rules.d/71-seat.rules %exclude %{_prefix}/lib/udev/rules.d/73-seat-late.rules %exclude %{_prefix}/lib/udev/rules.d/73-seat-numlock.rules %exclude %{_prefix}/lib/udev/rules.d/99-systemd.rules %{_prefix}/lib/udev/rules.d/*.rules %{_prefix}/lib/udev/hwdb.d/ %dir %{_sysconfdir}/udev/ %dir %{_sysconfdir}/udev/rules.d/ %ghost %{_sysconfdir}/udev/hwdb.bin %config(noreplace) %{_sysconfdir}/udev/udev.conf %if ! 0%{?bootstrap} %_mandir/man5/udev* %_mandir/man7/hwdb* %_mandir/man7/udev* %_mandir/man8/systemd-hwdb* %_mandir/man8/systemd-udev* %_mandir/man8/udev* %endif %dir %{_prefix}/lib/systemd/system %{_prefix}/lib/systemd/systemd-udevd %{_prefix}/lib/systemd/system/*udev*.service %{_prefix}/lib/systemd/system/systemd-udevd*.socket %dir %{_prefix}/lib/systemd/system/sysinit.target.wants %{_prefix}/lib/systemd/system/sysinit.target.wants/systemd-udev*.service %dir %{_prefix}/lib/systemd/system/sockets.target.wants %{_prefix}/lib/systemd/system/sockets.target.wants/systemd-udev*.socket %dir %{_prefix}/lib/systemd/network %{_prefix}/lib/systemd/network/*.link %{_prefix}/lib/systemd/network/*.network %if 0%{?suse_version} > 1310 %{_datadir}/pkgconfig/udev.pc %endif %files -n libsystemd0%{?mini} %defattr(-,root,root) %_libdir/libsystemd.so.* %if %{with compat_libs} %_libdir/libsystemd-daemon.so.* %_libdir/libsystemd-login.so.* %_libdir/libsystemd-id128.so.* %_libdir/libsystemd-journal.so.* %endif %files -n libudev%{?mini}1 %defattr(-,root,root) %{_libdir}/libudev.so.* %files -n libudev%{?mini}-devel %defattr(-,root,root) %{_includedir}/libudev.h %{_libdir}/libudev.so %{_libdir}/pkgconfig/libudev.pc %if ! 0%{?bootstrap} %{_mandir}/man3/*udev*.3* %endif %if ! 0%{?bootstrap} %files logger %defattr(-,root,root) %dir %attr(2755,root,systemd-journal) %{_localstatedir}/log/journal/ %if %{with sysvcompat} %{_localstatedir}/log/README %endif %files -n nss-myhostname %defattr(-, root, root) %{_sbindir}/nss-myhostname-config %if !0%{?bootstrap} %{_mandir}/man8/libnss_myhostname.* %{_mandir}/man8/nss-myhostname.* %endif /%{_lib}/*nss_myhostname* %files journal-gateway %defattr(-, root, root) %{_prefix}/lib/systemd/system/systemd-journal-gatewayd.* %{_prefix}/lib/systemd/systemd-journal-gatewayd %{_mandir}/man8/systemd-journal-gatewayd.* %{_datadir}/systemd/gatewayd %files -n nss-mymachines %defattr(-,root,root) %_libdir/libnss_mymachines.so* %if !0%{?bootstrap} %_mandir/man8/libnss_mymachines.* %_mandir/man8/nss-mymachines.* %endif %endif %files -n systemctl %defattr(-,root,root) /bin/systemctl %_bindir/systemctl %_bindir/systemd-tmpfiles %dir %_sysconfdir/tmpfiles.d %dir %_libexecdir/tmpfiles.d %_libexecdir/tmpfiles.d/*.conf %changelog