# # spec file for package systemd # # Copyright (c) 2014 SUSE LINUX Products 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 real systemd %define udevpkgname udev %define udev_major 1 %bcond_without bash_completion Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd Version: 208 Release: 0 Summary: A System and Session Manager License: LGPL-2.1+ Group: System/Base BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: audit-devel %if ! 0%{?bootstrap} BuildRequires: dbus-1 BuildRequires: docbook-xsl-stylesheets %endif BuildRequires: fdupes %if ! 0%{?bootstrap} BuildRequires: gobject-introspection-devel %endif BuildRequires: gperf %if ! 0%{?bootstrap} BuildRequires: gtk-doc %endif BuildRequires: intltool BuildRequires: libacl-devel BuildRequires: libattr-devel BuildRequires: libcap-devel BuildRequires: libsepol-devel BuildRequires: libtool %if ! 0%{?bootstrap} BuildRequires: libusb-devel BuildRequires: libxslt-tools %endif BuildRequires: pam-devel %if 0%{?suse_version} > 1310 BuildRequires: systemd-rpm-macros %endif BuildRequires: tcpd-devel BuildRequires: xz BuildRequires: pkgconfig(blkid) >= 2.20 BuildRequires: pkgconfig(dbus-1) >= 1.3.2 %if ! 0%{?bootstrap} BuildRequires: libgcrypt-devel BuildRequires: pkgconfig(glib-2.0) >= 2.22.0 BuildRequires: pkgconfig(libcryptsetup) >= 1.6.0 %endif BuildRequires: pkgconfig(libkmod) >= 14 BuildRequires: pkgconfig(liblzma) %if ! 0%{?bootstrap} BuildRequires: pkgconfig(libmicrohttpd) %endif BuildRequires: pkgconfig(libpci) >= 3 BuildRequires: pkgconfig(libpcre) %if ! 0%{?bootstrap} BuildRequires: pkgconfig(libqrencode) BuildRequires: pkgconfig(usbutils) >= 0.82 %endif BuildRequires: pkgconfig(libselinux) >= 2.1.9 BuildRequires: pkgconfig(libsepol) %if 0%{?bootstrap} #!BuildIgnore: dbus-1 Requires: this-is-only-for-build-envs Conflicts: systemd Conflicts: kiwi %else # the buildignore is important for bootstrapping #!BuildIgnore: udev Requires: %{udevpkgname} >= 172 Recommends: %{name}-bash-completion Requires: dbus-1 >= 1.4.0 Requires: kbd Requires: kmod >= 14 Requires: pam-config >= 0.79-5 Requires: pwdutils Requires: systemd-presets-branding Requires: util-linux >= 2.21 Requires(post): coreutils Requires(post): findutils %endif %if ! 0%{?bootstrap} Requires(post): pam-config %endif Conflicts: filesystem < 11.5 Conflicts: mkinitrd < 2.7.0 Obsoletes: systemd-analyze < 201 Provides: systemd-analyze = %{version} Source0: http://www.freedesktop.org/software/systemd/systemd-%{version}.tar.xz Source1: systemd-rpmlintrc Source2: localfs.service Source3: systemd-sysv-convert Source6: baselibs.conf Source7: libgcrypt.m4 Source8: systemd-journald.init Source9: nss-myhostname-config Source10: macros.systemd.upstream Source11: after-local.service Source12: systemd-powerfail Source1060: boot.udev Source1061: write_dev_root_rule Source1062: systemd-udev-root-symlink # PATCH-FIX-UPSTREAM avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch lnussel@suse.com bnc#791101 -- avoid assertion if invalid address familily is passed to gethostbyaddr_r Patch0: avoid-assertion-if-invalid-address-familily-is-passed-to-g.patch # PATCH-FIX-UPSTREAM optionally-warn-if-nss-myhostname-is-called.patch lnussel@suse.com -- optionally warn if nss-myhostname is called Patch1: optionally-warn-if-nss-myhostname-is-called.patch # 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 Patch7: service-flags-sysv-service-with-detected-pid-as-RemainAfte.patch Patch8: module-load-handle-SUSE-etc-sysconfig-kernel-module-list.patch Patch9: remain_after_exit-initscript-heuristic-and-add-new-LSB-hea.patch Patch11: delay-fsck-cryptsetup-after-md-dmraid-lvm-are-started.patch Patch12: Fix-run-lock-directories-permissions-to-follow-openSUSE-po.patch Patch13: ensure-sysctl-are-applied-after-modules-are-loaded.patch Patch14: ensure-DM-and-LVM-are-started-before-local-fs-pre-target.patch Patch15: timedate-add-support-for-openSUSE-version-of-etc-sysconfig.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 Patch18: fix-owner-of-var-log-btmp.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 handle-SYSTEMCTL_OPTIONS-environment-variable.patch bnc#798620 fcrozat@suse.com -- handle SYSTEMCTL_OPTIONS environment variable Patch22: handle-SYSTEMCTL_OPTIONS-environment-variable.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 Revert-service-drop-support-for-SysV-scripts-for-the-early.patch fcrozat@suse.com -- handle boot.* initscripts Patch37: Revert-service-drop-support-for-SysV-scripts-for-the-early.patch # 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 sysctl-handle-boot-sysctl.conf-kernel_release.patch bnc#809420 fcrozat@suse.com -- handle /boot/sysctl.conf- file Patch40: sysctl-handle-boot-sysctl.conf-kernel_release.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 disable-nss-myhostname-warning-bnc-783841.diff lnussel@suse.de -- disable nss-myhostname warning (bnc#783841) Patch23: disable-nss-myhostname-warning-bnc-783841.patch # PATCH-FIX-OPENSUSE handle-HOSTNAME.patch fcrozat@suse.com -- handle /etc/HOSTNAME (bnc#803653) Patch24: handle-etc-HOSTNAME.patch # PATCH-FIX-OPENSUSE Forward-suspend-hibernate-calls-to-pm-utils.patch fcrozat@suse.com bnc#790157 -- forward to pm-utils Patch25: Forward-suspend-hibernate-calls-to-pm-utils.patch # PATCH-FIX-UPSTREAM rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch rjschwei@suse.com -- add lid switch of ARM based Chromebook as a power switch to logind Patch38: rules-add-lid-switch-of-ARM-based-Chromebook-as-a-power-sw.patch # PATCH-FIX-OPENSUSE use-usr-sbin-sulogin-for-emergency-service.patch arvidjaar@gmail.com -- fix path to sulogin Patch46: use-usr-sbin-sulogin-for-emergency-service.patch # PATCH-FIX-OPENSUSE systemd-dbus-system-bus-address.patch always use /run/dbus not /var/run Patch47: systemd-dbus-system-bus-address.patch # PATCH-FIX-UPSTREAM 0001-acpi-fptd-fix-memory-leak-in-acpi_get_boot_usec.patch fcrozat@suse.com -- fix acpi memleak Patch48: 0001-acpi-fptd-fix-memory-leak-in-acpi_get_boot_usec.patch # PATCH-FIX-UPSTREAM 0002-fix-lingering-references-to-var-lib-backlight-random.patch fcrozat@suse.com -- fix invalid path in documentation Patch49: 0002-fix-lingering-references-to-var-lib-backlight-random.patch # PATCH-FIX-UPSTREAM 0003-acpi-make-sure-we-never-free-an-uninitialized-pointe.patch fcrozat@suse.com -- fix invalid memory free Patch50: 0003-acpi-make-sure-we-never-free-an-uninitialized-pointe.patch # PATCH-FIX-UPSTREAM 0004-systemctl-fix-name-mangling-for-sysv-units.patch fcrozat@suse.com -- fix name mangling for sysv units Patch51: 0004-systemctl-fix-name-mangling-for-sysv-units.patch # PATCH-FIX-UPSTREAM 0005-cryptsetup-fix-OOM-handling-when-parsing-mount-optio.patch fcrozat@suse.com -- fix OOM handling Patch52: 0005-cryptsetup-fix-OOM-handling-when-parsing-mount-optio.patch # PATCH-FIX-UPSTREAM 0006-journald-add-missing-error-check.patch fcrozat@suse.com -- add missing error check Patch53: 0006-journald-add-missing-error-check.patch # PATCH-FIX-UPSTREAM 0007-bus-fix-potentially-uninitialized-memory-access.patch fcrozat@suse.com -- fix uninitialized memory access Patch54: 0007-bus-fix-potentially-uninitialized-memory-access.patch # PATCH-FIX-UPSTREAM 0008-dbus-fix-return-value-of-dispatch_rqueue.patch fcrozat@suse.com -- fix return value Patch55: 0008-dbus-fix-return-value-of-dispatch_rqueue.patch # PATCH-FIX-UPSTREAM 0009-modules-load-fix-error-handling.patch fcrozat@suse.com -- fix error handling Patch56: 0009-modules-load-fix-error-handling.patch # PATCH-FIX-UPSTREAM 0010-efi-never-call-qsort-on-potentially-NULL-arrays.patch fcrozat@suse.com -- fix incorrect memory access Patch57: 0010-efi-never-call-qsort-on-potentially-NULL-arrays.patch # PATCH-FIX-UPSTREAM 0011-strv-don-t-access-potentially-NULL-string-arrays.patch fcrozat@suse.com -- fix incorrect memory access Patch58: 0011-strv-don-t-access-potentially-NULL-string-arrays.patch # PATCH-FIX-UPSTREAM 0012-mkdir-pass-a-proper-function-pointer-to-mkdir_safe_i.patch fcrozat@suse.com -- fix invalid pointer Patch59: 0012-mkdir-pass-a-proper-function-pointer-to-mkdir_safe_i.patch # PATCH-FIX-UPSTREAM 0014-tmpfiles.d-include-setgid-perms-for-run-log-journal.patch fcrozat@suse.com -- fix permission on /run/log/journal Patch60: 0014-tmpfiles.d-include-setgid-perms-for-run-log-journal.patch # PATCH-FIX-UPSTREAM 0001-systemd-order-remote-mounts-from-mountinfo-before-re.patch fcrozat@suse.com -- order remote mount points properly before remote-fs.target Patch61: 0001-systemd-order-remote-mounts-from-mountinfo-before-re.patch # PATCH-FIX-UPSTREAM 0001-gpt-auto-generator-exit-immediately-if-in-container.patch fcrozat@suse.com -- don't start gpt auto-generator in container Patch62: 0001-gpt-auto-generator-exit-immediately-if-in-container.patch # PATCH-FIX-UPSTREAM 0001-manager-when-verifying-whether-clients-may-change-en.patch fcrozat@suse.com -- fix reload check in selinux case Patch63: 0001-manager-when-verifying-whether-clients-may-change-en.patch # PATCH-FIX-UPSTREAM 0001-logind-fix-bus-introspection-data-for-TakeControl.patch fcrozat@suse.com -- fix introspection for TakeControl Patch64: 0001-logind-fix-bus-introspection-data-for-TakeControl.patch # PATCH-FIX-UPSTREAM 0001-mount-check-for-NULL-before-reading-pm-what.patch fcrozat@suse.com -- fix crash when parsing some incorrect unit Patch65: 0001-mount-check-for-NULL-before-reading-pm-what.patch # PATCH-FIX-UPSTREAM 0001-shared-util-fix-off-by-one-error-in-tag_to_udev_node.patch fcrozat@suse.com -- Fix udev rules parsing Patch66: 0001-shared-util-fix-off-by-one-error-in-tag_to_udev_node.patch # PATCH-FIX-UPSTREAM 0001-systemd-serialize-deserialize-forbid_restart-value.patch fcrozat@suse.com -- Fix incorrect deserialization for forbid_restart Patch67: 0001-systemd-serialize-deserialize-forbid_restart-value.patch # PATCH-FIX-UPSTREAM 0001-core-unify-the-way-we-denote-serialization-attribute.patch fcrozat@suse.com -- Ensure forbid_restart is named like other attributes Patch68: 0001-core-unify-the-way-we-denote-serialization-attribute.patch # PATCH-FIX-UPSTREAM 0001-journald-fix-minor-memory-leak.patch fcrozat@suse.com -- fix memleak in journald Patch69: 0001-journald-fix-minor-memory-leak.patch # PATCH-FIX-UPSTREAM 0001-do-not-accept-garbage-from-acpi-firmware-performance.patch fcrozat@suse.com -- Improve ACPI firmware performance parsing Patch70: 0001-do-not-accept-garbage-from-acpi-firmware-performance.patch # PATCH-FIX-UPSTREAM 0001-journald-remove-rotated-file-from-hashmap-when-rotat.patch fcrozat@suse.com -- Fix journal rotation Patch71: 0001-journald-remove-rotated-file-from-hashmap-when-rotat.patch # PATCH-FIX-UPSTREAM 0001-login-fix-invalid-free-in-sd_session_get_vt.patchfcrozat@suse.com -- Fix memory corruption in sd_session_get_vt Patch72: 0001-login-fix-invalid-free-in-sd_session_get_vt.patch # PATCH-FIX-UPSTREAM 0001-login-make-sd_session_get_vt-actually-work.patch fcrozat@suse.com -- Ensure sd_session_get_vt returns correct value Patch73: 0001-login-make-sd_session_get_vt-actually-work.patch # PATCH-FIX-UPSTREAM 0001-Never-call-qsort-on-potentially-NULL-arrays.patch fcrozat@suse.com -- Don't call qsort on NULL arrays Patch74: 0001-Never-call-qsort-on-potentially-NULL-arrays.patch # PATCH-FIX-UPSTREAM 0001-dbus-common-avoid-leak-in-error-path.patch fcrozat@suse.com -- Fix memleak in dbus-common code Patch75: 0001-dbus-common-avoid-leak-in-error-path.patch # PATCH-FIX-UPSTREAM 0001-drop-ins-check-return-value.patch fcrozat@suse.com -- Fix return value for drop-ins checks Patch76: 0001-drop-ins-check-return-value.patch # PATCH-FIX-UPSTREAM 0001-shared-util-Fix-glob_extend-argument.patch fcrozat@suse.com -- Fix glob_extend argument Patch77: 0001-shared-util-Fix-glob_extend-argument.patch # PATCH-FIX-UPSTREAM 0001-Fix-bad-assert-in-show_pid_array.patch fcrozat@suse.com -- Fix bad assert in show_pid_array Patch78: 0001-Fix-bad-assert-in-show_pid_array.patch # PATCH-FIX-UPSTREAM 0001-analyze-set-white-background.patch werner@suse.com -- Make background of systemd-analyze SVG white Patch79: 0001-analyze-set-white-background.patch # PATCH-FIX-UPSTREAM 0001-analyze-set-text-on-side-with-most-space.patch werner@suse.com -- Place the text on the side with most space Patch80: 0001-analyze-set-text-on-side-with-most-space.patch # PATCH-FIX-UPSTREAM 0001-logind-garbage-collect-stale-users.patch -- Don't stop a running user manager from garbage-collecting the user. Patch81: 0001-logind-garbage-collect-stale-users.patch # PATCH-FIX-UPSTREAM analyze-fix-crash-in-command-line-parsing.patch fcrozat@suse.com bnc#859365 -- Fix crash in systemd-analyze Patch82: analyze-fix-crash-in-command-line-parsing.patch # PATCH-FIX-UPSTREAM 0001-core-replace-OnFailureIsolate-setting-by-a-more-gene.patch -- Prevent accidental kill of emergency shell (bnc#852021) Patch83: 0001-core-replace-OnFailureIsolate-setting-by-a-more-gene.patch # PATCH-FIX-OPENSUSE make-emergency.service-conflict-with-syslog.socket.patch (bnc#852232) Patch84: make-emergency.service-conflict-with-syslog.socket.patch # PATCH-FIX-UPSTREAM 0001-upstream-systemctl-halt-reboot-error-handling.patch Patch85: 0001-upstream-systemctl-halt-reboot-error-handling.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-UPSTREAM 0001-core-introduce-new-KillMode-mixed-which-sends-SIGTER.patch -- Allow sending SIGTERM to main PID only (bnc#841544) Patch87: 0001-core-introduce-new-KillMode-mixed-which-sends-SIGTER.patch # PATCH-FIX-UPSTREAM 0002-service-allow-KillMode-mixed-in-conjunction-with-PAM.patch -- Allow using it with PAM enabled services (bnc#841544) Patch88: 0002-service-allow-KillMode-mixed-in-conjunction-with-PAM.patch # PATCH-FIX-UPSTREAM 0003-core-make-sure-to-always-go-through-both-SIGTERM-and.patch -- Make sure final SIGKILL actually kills everything (bnc#841544) Patch89: 0003-core-make-sure-to-always-go-through-both-SIGTERM-and.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 0145-logind-use-correct-who-enum-values-with-KillUnit.patch -- Be able to kill sessions (bnc#860574) Patch92: 0145-logind-use-correct-who-enum-values-with-KillUnit.patch # PATCH-FIX-SUSE 0001-Don-t-snprintf-a-potentially-NULL-pointer.patch -- Avoid systemd crash on resume (bnc#861488) Patch93: 0001-Don-t-snprintf-a-potentially-NULL-pointer.patch # PATCH-FIX-OPENSUSE 1009-make-xsltproc-use-correct-ROFF-links.patch -- Make ROFF links working again in manual pages (bnc#842844) Patch1009: 1009-make-xsltproc-use-correct-ROFF-links.patch # PATCH-FIX-OPENSUSE 1010-do-not-install-sulogin-unit-with-poweroff.patch -- Avoid installing console-shell.service (bnc#849071) Patch1010: 1010-do-not-install-sulogin-unit-with-poweroff.patch # PATCH-FIX-OPENSUSE 1011-check-4-valid-kmsg-device.patch -- Avoid busy systemd-journald (bnc#851393) Patch1011: 1011-check-4-valid-kmsg-device.patch # PATCH-FIX-UPSTREAM 1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch Patch1012: 1012-pam_systemd_do_override_XDG_RUNTIME_DIR_of_the_original_user.patch # PATCH-FIX-UPSTREAM U_logind_revert_lazy_session_activation_on_non_vt_seats.patch Patch1013: U_logind_revert_lazy_session_activation_on_non_vt_seats.patch # PATCH-FIX-OPENSUSE 1014-journald-with-journaling-FS.patch Patch1014: 1014-journald-with-journaling-FS.patch # PATCH-FIX-UPSTREAM build-sys-make-multi-seat-x-optional.patch Patch1015: build-sys-make-multi-seat-x-optional.patch # PATCH-FIX-SUSE 1016-support-powerfail-with-powerstatus.patch Patch1016: 1016-support-powerfail-with-powerstatus.patch # PATCH-FIX-UPSTREAM 1017-skip-native-unit-handling-if-sysv-already-handled.patch Patch1017: 1017-skip-native-unit-handling-if-sysv-already-handled.patch # PATCH-FIX-SUSE 1018-Make-LSB-Skripts-know-about-Required-and-Should.patch Patch1018: 1018-Make-LSB-Skripts-know-about-Required-and-Should.patch # PATCH-FIX-SUSE 1019-make-completion-smart-to-be-able-to-redirect.patch Patch1019: 1019-make-completion-smart-to-be-able-to-redirect.patch # PATCH-FIX-UPSTREAM 0018-core-do-not-add-what-to-RequiresMountsFor-for-networ.patch werner@suse.com Patch94: 0018-core-do-not-add-what-to-RequiresMountsFor-for-networ.patch # PATCH-FIX-UPSTREAM 0030-Fix-for-SIGSEGV-in-systemd-bootchart-on-short-living.patch werner@suse.com Patch96: 0030-Fix-for-SIGSEGV-in-systemd-bootchart-on-short-living.patch # PATCH-FIX-UPSTREAM 0031-man-document-the-b-special-boot-option.patch werner@suse.com Patch97: 0031-man-document-the-b-special-boot-option.patch # PATCH-FIX-UPSTREAM 0033-tmpfiles-log-unaccessible-FUSE-mount-points-only-as-.patch werner@suse.com Patch99: 0033-tmpfiles-log-unaccessible-FUSE-mount-points-only-as-.patch # PATCH-FIX-UPSTREAM 0034-systemd-python-fix-booted-and-add-two-functions-to-d.patch werner@suse.com Patch100: 0034-systemd-python-fix-booted-and-add-two-functions-to-d.patch # PATCH-FIX-UPSTREAM 0035-activate-mention-E-in-the-help-text.patch werner@suse.com Patch101: 0035-activate-mention-E-in-the-help-text.patch # PATCH-FIX-UPSTREAM 0036-activate-fix-crash-when-s-is-passed.patch werner@suse.com Patch102: 0036-activate-fix-crash-when-s-is-passed.patch # PATCH-FIX-UPSTREAM 0037-tmpfiles-adjust-excludes-for-the-new-per-service-pri.patch werner@suse.com Patch103: 0037-tmpfiles-adjust-excludes-for-the-new-per-service-pri.patch # PATCH-FIX-UPSTREAM 0038-core-socket-fix-SO_REUSEPORT.patch werner@suse.com Patch104: 0038-core-socket-fix-SO_REUSEPORT.patch # PATCH-FIX-UPSTREAM 0039-journal-when-appending-to-journal-file-allocate-larg.patch werner@suse.com Patch105: 0039-journal-when-appending-to-journal-file-allocate-larg.patch # PATCH-FIX-UPSTREAM 0040-journal-optimize-bisection-logic-a-bit-by-caching-th.patch werner@suse.com Patch106: 0040-journal-optimize-bisection-logic-a-bit-by-caching-th.patch # PATCH-FIX-UPSTREAM 0041-journal-fix-iteration-when-we-go-backwards-from-the-.patch werner@suse.com Patch107: 0041-journal-fix-iteration-when-we-go-backwards-from-the-.patch # PATCH-FIX-UPSTREAM 0042-journal-allow-journal_file_copy_entry-to-work-on-non.patch werner@suse.com Patch108: 0042-journal-allow-journal_file_copy_entry-to-work-on-non.patch # PATCH-FIX-UPSTREAM 0043-journal-simplify-pre-allocation-logic.patch werner@suse.com Patch109: 0043-journal-simplify-pre-allocation-logic.patch # PATCH-FIX-UPSTREAM 0044-journald-mention-how-long-we-needed-to-flush-to-var-.patch werner@suse.com Patch110: 0044-journald-mention-how-long-we-needed-to-flush-to-var-.patch # PATCH-FIX-UPSTREAM 0046-util.c-check-if-return-value-from-ttyname_r-is-0-ins.patch werner@suse.com Patch111: 0046-util.c-check-if-return-value-from-ttyname_r-is-0-ins.patch # PATCH-FIX-UPSTREAM 0047-docs-remove-unneeded-the-s-in-gudev-docs.patch werner@suse.com Patch112: 0047-docs-remove-unneeded-the-s-in-gudev-docs.patch # PATCH-FIX-UPSTREAM 0048-man-explicitly-say-when-multiple-units-can-be-specif.patch werner@suse.com Patch113: 0048-man-explicitly-say-when-multiple-units-can-be-specif.patch # PATCH-FIX-UPSTREAM 0049-systemd-treat-reload-failure-as-failure.patch werner@suse.com Patch114: 0049-systemd-treat-reload-failure-as-failure.patch # udev patches # PATCH-FIX-OPENSUSE 1001-re-enable-by_path-links-for-ata-devices.patch Patch1001: 1001-re-enable-by_path-links-for-ata-devices.patch # 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-OPENSUSE 1008-add-msft-compability-rules.patch Patch1008: 1008-add-msft-compability-rules.patch # PATCH-FIX-UPSTREAM 0026-udevadm.xml-document-resolve-names-option-for-test.patch werner@suse.com Patch95: 0026-udevadm.xml-document-resolve-names-option-for-test.patch # PATCH-FIX-UPSTREAM 0032-rules-don-t-limit-some-of-the-rules-to-the-add-actio.patch werner@suse.com Patch98: 0032-rules-don-t-limit-some-of-the-rules-to-the-add-actio.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 %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: %{name} = %{version} Requires: systemd-rpm-macros %if 0%{?bootstrap} Conflicts: systemd-devel %endif %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} Provides: sbin_init Conflicts: otherproviders(sbin_init) Provides: sysvinit:/sbin/init %description sysvinit Drop-in replacement of System V init tools. %package -n %{udevpkgname} 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 /usr/bin/stat %insserv_prereq %fillup_prereq /usr/sbin/groupadd /usr/bin/getent /sbin/mkinitrd /usr/bin/sg_inq Requires(post): lib%{udevpkgname}%{udev_major} 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} Conflicts: libudev%{udev_major} Conflicts: udev # avoid kiwi picking it for bootstrap Requires: this-is-only-for-build-envs %endif %description -n %{udevpkgname} 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 lib%{udevpkgname}%{udev_major} Summary: Dynamic library to access udev device information License: LGPL-2.1+ Group: System/Libraries Requires: %{udevpkgname} >= %{version}-%{release} %if 0%{?bootstrap} Conflicts: libudev%{udev_major} Conflicts: kiwi # avoid kiwi picking it for bootstrap Requires: this-is-only-for-build-envs %endif %description -n lib%{udevpkgname}%{udev_major} This package contains the dynamic library libudev, which provides access to udev device information %package -n lib%{udevpkgname}-devel Summary: Development files for libudev License: LGPL-2.1+ Group: Development/Libraries/Other Requires: lib%{udevpkgname}%{udev_major} = %{version}-%{release} %if 0%{?bootstrap} Provides: libudev-devel = %{version} Conflicts: libudev%{udev_major} = %{version} Conflicts: libudev-devel %endif %description -n lib%{udevpkgname}-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 -n libgudev-1_0-0 Summary: GObject library, to access udev device information License: LGPL-2.1+ Group: System/Libraries Requires: lib%{udevpkgname}%{udev_major} = %{version}-%{release} %description -n libgudev-1_0-0 This package contains the GObject library libgudev, which provides access to udev device information. %package -n typelib-1_0-GUdev-1_0 Summary: GObject library, to access udev device information -- Introspection bindings License: LGPL-2.1+ Group: System/Libraries %description -n typelib-1_0-GUdev-1_0 This package provides the GObject Introspection bindings for libgudev, which provides access to udev device information. %package -n libgudev-1_0-devel Summary: Devel package for libgudev License: LGPL-2.1+ Group: Development/Libraries/Other Requires: glib2-devel Requires: libgudev-1_0-0 = %{version}-%{release} Requires: libudev-devel = %{version}-%{release} Requires: typelib-1_0-GUdev-1_0 = %{version}-%{release} %description -n libgudev-1_0-devel This is the devel package for the GObject library libgudev, which provides GObject access to udev device information. %package logger Summary: Journal only logging License: LGPL-2.1+ Group: System/Base Provides: syslog Provides: sysvinit(syslog) 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 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..." [ -z "`diff -Naru "%{S:10}" src/core/macros.systemd.in`" ] || exit 1 # only needed for bootstrap %if 0%{?bootstrap} cp %{SOURCE7} m4/ %endif # systemd patches %patch0 -p1 %patch1 -p1 %patch3 -p1 # don't apply when bootstrapping to not modify configure.in %if ! 0%{?bootstrap} %patch4 -p1 %endif %patch5 -p1 %patch6 -p1 %patch7 -p1 %patch8 -p1 %patch9 -p1 %patch11 -p1 %patch12 -p1 %patch13 -p1 %patch14 -p1 %patch15 -p1 %patch16 -p1 %patch17 -p1 %patch18 -p1 %patch20 -p1 %patch21 -p1 %patch22 -p1 %patch23 -p1 %patch24 -p1 %patch25 -p1 %patch27 -p1 %patch37 -p1 %ifarch %arm %patch38 -p1 %endif %patch39 -p1 %patch40 -p1 %patch41 -p1 %patch42 -p1 %patch46 -p1 %patch47 -p1 %patch48 -p1 %patch49 -p1 %patch50 -p1 %patch51 -p1 %patch52 -p1 %patch53 -p1 %patch54 -p1 %patch55 -p1 %patch56 -p1 %patch57 -p1 %patch58 -p1 %patch59 -p1 %patch60 -p1 %patch61 -p1 %patch62 -p1 %patch63 -p1 %patch64 -p1 %patch65 -p1 %patch66 -p1 %patch67 -p1 %patch68 -p1 %patch69 -p1 %patch70 -p1 %patch71 -p1 %patch72 -p1 %patch73 -p1 %patch74 -p1 %patch75 -p1 %patch76 -p1 %patch77 -p1 %patch78 -p1 %patch79 -p1 %patch80 -p1 %patch81 -p1 %patch82 -p1 %patch83 -p1 %patch84 -p1 %patch85 -p1 %patch86 -p1 %patch87 -p1 %patch88 -p1 %patch89 -p1 %patch90 -p1 %patch91 -p1 %patch92 -p1 %patch93 -p1 %patch1009 -p1 %patch1010 -p1 %patch1011 -p1 %patch1012 -p1 %patch1013 -p1 %patch1014 -p1 %patch1015 -p1 %patch1016 -p1 %patch1017 -p1 %patch1018 -p1 %patch1019 -p1 %patch94 -p0 %patch96 -p0 %patch97 -p0 %patch99 -p0 %patch100 -p0 %patch101 -p0 %patch102 -p0 %patch103 -p0 %patch104 -p0 %patch105 -p0 %patch106 -p0 %patch107 -p0 %patch108 -p0 %patch109 -p0 %patch110 -p0 %patch111 -p0 %patch112 -p0 %patch113 -p0 %patch114 -p0 # udev patches %patch1001 -p1 %patch1002 -p1 %patch1003 -p1 %patch1005 -p1 %patch1006 -p1 # don't apply when bootstrapping to not modify Makefile.am %if ! 0%{?bootstrap} %patch1007 -p1 %patch1008 -p1 %endif %patch95 -p0 %patch98 -p0 # ensure generate files are removed rm -f units/emergency.service %build autoreconf -fiv # prevent pre-generated and distributed files from re-building find . -name "*.[1-8]" -exec touch '{}' '+'; export V=1 # keep split-usr until all packages have moved their systemd rules to /usr %configure \ --docdir=%{_docdir}/systemd \ --with-pamlibdir=/%{_lib}/security \ %if 0%{?bootstrap} --disable-gudev \ --disable-myhostname \ %else --enable-manpages \ --enable-gtk-doc \ --with-nss-my-hostname-warning \ %endif --enable-selinux \ --enable-split-usr \ --disable-static \ --with-firmware-path="%{_prefix}/lib/firmware:/lib/firmware" \ --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 0%{?suse_version} > 1310 --disable-multi-seat-x \ %endif CFLAGS="%{optflags}" make %{?_smp_mflags} %install make install DESTDIR="%buildroot" # move to %{_lib} %if ! 0%{?bootstrap} mv $RPM_BUILD_ROOT%{_libdir}/libnss_myhostname.so.2 $RPM_BUILD_ROOT/%{_lib} %endif mkdir -p $RPM_BUILD_ROOT/{sbin,lib,bin} ln -sf %{_bindir}/udevadm $RPM_BUILD_ROOT/sbin/udevadm ln -sf %{_bindir}/systemd-ask-password $RPM_BUILD_ROOT/bin/systemd-ask-password ln -sf %{_bindir}/systemctl $RPM_BUILD_ROOT/bin/systemctl ln -sf %{_prefix}/lib/systemd/systemd-udevd $RPM_BUILD_ROOT/sbin/udevd %if ! 0%{?bootstrap} ln -sf systemd-udevd.8 $RPM_BUILD_ROOT/%{_mandir}/man8/udevd.8 %endif ln -sf /lib/firmware $RPM_BUILD_ROOT/usr/lib/firmware %if ! 0%{?bootstrap} install -m755 -D %{S:8} $RPM_BUILD_ROOT/etc/init.d/systemd-journald install -D -m 755 %{S:9} %{buildroot}%{_sbindir}/nss-myhostname-config %endif sed -ie "s|@@PREFIX@@|%{_prefix}/lib/udev|g" %{S:1060} sed -ie "s|@@SYSTEMD@@|%{_prefix}/lib/systemd|g" %{S:1060} sed -ie "s|@@BINDIR@@|%{_bindir}|g" %{S:1060} install -m755 -D %{S:1060} $RPM_BUILD_ROOT/etc/init.d/boot.udev ln -s systemd-udevd.service $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/udev.service sed -ie "s|@@PREFIX@@|%{_bindir}|g" %{S:1061} install -m755 -D %{S:1061} $RPM_BUILD_ROOT/%{_prefix}/lib/udev/write_dev_root_rule sed -ie "s|@@PREFIX@@|%{_prefix}/lib/udev|g" %{S:1062} install -m644 -D %{S:1062} $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/systemd-udev-root-symlink.service mkdir -p $RPM_BUILD_ROOT/%{_prefix}/lib/systemd/system/basic.target.wants ln -sf ../systemd-udev-root-symlink.service $RPM_BUILD_ROOT/%{_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 # aliases for /etc/init.d/* ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/cgroup.service ln -s systemd-tmpfiles-setup.service %{buildroot}/%{_prefix}/lib/systemd/system/cleanup.service ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/clock.service ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/crypto.service ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/crypto-early.service ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/device-mapper.service ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/earlysyslog.service ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/kbd.service ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/ldconfig.service ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/loadmodules.service install -m644 %{S:2} %{buildroot}/%{_prefix}/lib/systemd/system/localfs.service ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/localnet.service ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/proc.service ln -s systemd-fsck-root.service %{buildroot}/%{_prefix}/lib/systemd/system/rootfsck.service ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/single.service ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/swap.service ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/startpreload.service ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/stoppreload.service ln -s /dev/null %{buildroot}/%{_prefix}/lib/systemd/system/earlyxdm.service ln -s systemd-sysctl.service %{buildroot}/%{_prefix}/lib/systemd/system/sysctl.service ln -s systemd-random-seed.service %{buildroot}/%{_prefix}/lib/systemd/system/random.service # don't mount /tmp as tmpfs for now rm %{buildroot}/%{_prefix}/lib/systemd/system/local-fs.target.wants/tmp.mount # 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 # To avoid making life hard for Factory developers, don't package the # kernel.core_pattern setting until systemd-coredump is a part of an actual # systemd release and it's made clear how to get the core dumps out of the # journal. rm -f %{buildroot}%{_prefix}/lib/sysctl.d/50-coredump.conf # 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}/var/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}/var/log/journal # Make sure directories in /var exist mkdir -p %{buildroot}/var/lib/systemd/coredump mkdir -p %{buildroot}/var/lib/systemd/catalog #create ghost databases touch %{buildroot}/var/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 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/ # support for SIGPWR handling with /var/run/powerstatus of e.g. powerd install -m 755 %{S:12} %{buildroot}/%{_prefix}/lib/systemd/ install -m 644 units/powerfail.service %{buildroot}/%{_prefix}/lib/systemd/system/ %if ! 0%{?bootstrap} install -m 644 man/systemd-powerfail.service.8 %{buildroot}/%{_mandir}/man8/ %endif %fdupes -s %{buildroot}%{_mandir} %if 0%{suse_version} >= 1310 # packaged in systemd-rpm-macros rm -f %{buildroot}/%{_prefix}/lib/rpm/macros.d/macros.systemd %endif %pre getent group systemd-journal >/dev/null || groupadd -r systemd-journal || : exit 0 %post %if ! 0%{?bootstrap} /usr/sbin/pam-config -a --systemd || : %endif /sbin/ldconfig [ -e /var/lib/random-seed ] && mv /var/lib/random-seed /var/lib/systemd/ > /dev/null || : /usr/bin/systemd-machine-id-setup >/dev/null 2>&1 || : /usr/lib/systemd/systemd-random-seed save >/dev/null 2>&1 || : /usr/bin/systemctl daemon-reexec >/dev/null 2>&1 || : /usr/bin/journalctl --update-catalog >/dev/null 2>&1 || : # Make sure new journal files chgrp systemd-journal /var/log/journal/ /var/log/journal/`cat /etc/machine-id 2> /dev/null` >/dev/null 2>&1 || : chmod g+s /var/log/journal/ /var/log/journal/`cat /etc/machine-id 2> /dev/null` >/dev/null 2>&1 || : # 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. /usr/bin/systemctl enable \ getty@tty1.service \ systemd-readahead-collect.service \ systemd-readahead-replay.service \ remote-fs.target >/dev/null 2>&1 || : 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 %postun /sbin/ldconfig if [ $1 -ge 1 ]; then /usr/bin/systemctl daemon-reload >/dev/null 2>&1 || : /usr/bin/systemctl try-restart systemd-logind.service >/dev/null 2>&1 || : 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 \ systemd-readahead-collect.service \ systemd-readahead-replay.service \ remote-fs.target >/dev/null 2>&1 || : rm -f /etc/systemd/system/default.target 2>&1 || : fi %pretrans -n %{udevpkgname} -p if posix.stat("/lib/udev") and not posix.stat("/usr/lib/udev") then posix.symlink("/lib/udev", "/usr/lib/udev") end %pre -n %{udevpkgname} 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 /usr/sbin/groupadd -r tape 2> /dev/null || : # 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 >/dev/null 2>&1 || : udevadm control --exit 2>&1 || : fi fi %post -n %{udevpkgname} /usr/bin/udevadm hwdb --update >/dev/null 2>&1 || : %{fillup_and_insserv -Y boot.udev} # 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 >/dev/null 2>&1 || : # 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 >/dev/null 2>&1 || : # 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 >/dev/null 2>&1; then /usr/lib/systemd/systemd-udevd --daemon >/dev/null 2>&1 || : fi fi fi if [ "${YAST_IS_RUNNING}" != "instsys" ]; then if [ -e /var/lib/no_initrd_recreation_by_suspend ]; then echo "Skipping recreation of existing initial ramdisks, due" echo "to presence of /var/lib/no_initrd_recreation_by_suspend" elif [ -x /sbin/mkinitrd ]; then [ -x /sbin/mkinitrd_setup ] && /sbin/mkinitrd_setup /sbin/mkinitrd || : fi fi %postun -n %{udevpkgname} %insserv_cleanup systemctl daemon-reload >/dev/null 2>&1 || : if [ "${YAST_IS_RUNNING}" != "instsys" ]; then if [ -e /var/lib/no_initrd_recreation_by_suspend ]; then echo "Skipping recreation of existing initial ramdisks, due" echo "to presence of /var/lib/no_initrd_recreation_by_suspend" elif [ -x /sbin/mkinitrd ]; then [ -x /sbin/mkinitrd_setup ] && /sbin/mkinitrd_setup /sbin/mkinitrd || : fi fi %post -n lib%{udevpkgname}%{udev_major} -p /sbin/ldconfig %postun -n lib%{udevpkgname}%{udev_major} -p /sbin/ldconfig %if ! 0%{?bootstrap} %post -n libgudev-1_0-0 -p /sbin/ldconfig %postun -n libgudev-1_0-0 -p /sbin/ldconfig %post logger 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 >/dev/null 2>&1 || : 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 %pre journal-gateway getent passwd systemd-journal-gateway >/dev/null || useradd -r -l -g systemd-journal-gateway -d /var/log/journal -s /usr/sbin/nologin -c "Journal Gateway" systemd-journal-gateway >/dev/null 2>&1 || : 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 %defattr(-,root,root) /bin/systemd /bin/systemd-ask-password /bin/systemctl %{_bindir}/bootctl %{_bindir}/kernel-install %{_bindir}/hostnamectl %{_bindir}/localectl %{_bindir}/machinectl %{_bindir}/systemctl %{_bindir}/systemd-analyze %{_bindir}/systemd-coredumpctl %{_bindir}/systemd-delta %{_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-tmpfiles %{_bindir}/systemd-machine-id-setup %{_bindir}/systemd-nspawn %{_bindir}/systemd-stdio-bridge %{_bindir}/systemd-detect-virt %{_bindir}/timedatectl %{_sbindir}/systemd-sysv-convert %{_libdir}/libsystemd-daemon.so.* %{_libdir}/libsystemd-login.so.* %{_libdir}/libsystemd-id128.so.* %{_libdir}/libsystemd-journal.so.* %{_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/system/systemd-udev*.* %exclude %{_prefix}/lib/systemd/system/udev.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/basic.target.wants/systemd-udev-root-symlink.service %exclude %{_prefix}/lib/systemd/system/systemd-journal-gatewayd.* %{_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 %exclude %{_prefix}/lib/systemd/systemd-udevd %exclude %{_prefix}/lib/systemd/systemd-journal-gatewayd %{_prefix}/lib/systemd/systemd-* %{_prefix}/lib/systemd/systemd %dir %{_prefix}/lib/systemd/catalog %{_prefix}/lib/systemd/catalog/systemd.catalog %dir %{_prefix}/lib/systemd/system-shutdown %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 %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 %if ! 0%{?bootstrap} %{_prefix}/lib/systemd/system-generators/systemd-cryptsetup-generator %endif %{_prefix}/lib/systemd/system-generators/systemd-efi-boot-generator %{_prefix}/lib/systemd/system-generators/systemd-getty-generator %{_prefix}/lib/systemd/system-generators/systemd-rc-local-generator %{_prefix}/lib/systemd/system-generators/systemd-fstab-generator %{_prefix}/lib/systemd/system-generators/systemd-system-update-generator %{_prefix}/lib/systemd/system-generators/systemd-insserv-generator %{_prefix}/lib/systemd/system-generators/systemd-gpt-auto-generator /%{_lib}/security/pam_systemd.so /etc/pam.d/systemd-user %dir %{_libexecdir}/modules-load.d %dir %{_sysconfdir}/modules-load.d %{_libexecdir}/modules-load.d/sg.conf %dir %{_libexecdir}/tmpfiles.d %dir %{_sysconfdir}/tmpfiles.d %{_libexecdir}/tmpfiles.d/*.conf %dir %{_libexecdir}/binfmt.d %dir %{_sysconfdir}/binfmt.d %dir %{_libexecdir}/sysctl.d %dir %{_sysconfdir}/sysctl.d %dir %{_sysconfdir}/systemd %dir %{_sysconfdir}/systemd/system %dir %{_sysconfdir}/systemd/user %dir %{_sysconfdir}/xdg/systemd %{_sysconfdir}/xdg/systemd/user %config(noreplace) %{_sysconfdir}/systemd/bootchart.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 %config(noreplace) %{_sysconfdir}/dbus-1/system.d/org.freedesktop.machine1.conf %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 %{_datadir}/dbus-1/interfaces/org.freedesktop.hostname1.xml %{_datadir}/dbus-1/interfaces/org.freedesktop.locale1.xml %{_datadir}/dbus-1/interfaces/org.freedesktop.systemd1.*.xml %{_datadir}/dbus-1/interfaces/org.freedesktop.timedate1.xml %{_datadir}/dbus-1/services/org.freedesktop.systemd1.service %{_datadir}/dbus-1/system-services/org.freedesktop.systemd1.service %{_datadir}/dbus-1/system-services/org.freedesktop.locale1.service %{_datadir}/dbus-1/system-services/org.freedesktop.login1.service %{_datadir}/dbus-1/system-services/org.freedesktop.hostname1.service %{_datadir}/dbus-1/system-services/org.freedesktop.machine1.service %{_datadir}/dbus-1/system-services/org.freedesktop.timedate1.service %dir %{_datadir}/polkit-1 %dir %{_datadir}/polkit-1/actions %{_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 %exclude %{_datadir}/systemd/gatewayd %{_datadir}/systemd %if ! 0%{?bootstrap} # Packaged in sysvinit subpackage %exclude %{_mandir}/man1/init.1* %exclude %{_mandir}/man8/halt.8* %exclude %{_mandir}/man8/reboot.8* %exclude %{_mandir}/man8/shutdown.8* %exclude %{_mandir}/man8/poweroff.8* %exclude %{_mandir}/man8/telinit.8* %exclude %{_mandir}/man8/runlevel.8* %exclude %{_mandir}/man*/*udev*.[0-9]* %exclude %{_mandir}/man8/systemd-journal-gatewayd.* %{_mandir}/man1/*.1* %{_mandir}/man3/*.3* %{_mandir}/man5/*.5* %{_mandir}/man7/*.7* %{_mandir}/man8/*.8* %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 %if ! 0%{?bootstrap} %{_prefix}/lib/udev/numlock-on %endif %ghost /var/lib/systemd/catalog/database %if 0%{suse_version} < 1310 %{_sysconfdir}/rpm/macros.systemd %endif %dir /var/lib/systemd %dir /var/lib/systemd/sysv-convert %dir /var/lib/systemd/migrated %dir /var/lib/systemd/catalog %ghost /var/lib/systemd/catalog/database %dir /var/lib/systemd/coredump %dir /usr/share/zsh %dir /usr/share/zsh/site-functions /usr/share/zsh/site-functions/* %ghost /var/lib/systemd/backlight %ghost /var/lib/systemd/random-seed %if ! 0%{?bootstrap} %files bash-completion %defattr(-,root,root,-) %dir %{_datadir}/bash-completion %dir %{_datadir}/bash-completion/completions %if %{without bash_completion} %exclude %{_datadir}/bash-completion/completions/systemd-analyze %endif %{_datadir}/bash-completion/completions/* %endif %files devel %defattr(-,root,root,-) %{_libdir}/libsystemd-daemon.so %{_libdir}/libsystemd-login.so %{_libdir}/libsystemd-id128.so %{_libdir}/libsystemd-journal.so %dir %{_includedir}/systemd %{_includedir}/systemd/sd-login.h %{_includedir}/systemd/sd-daemon.h %{_includedir}/systemd/sd-id128.h %{_includedir}/systemd/sd-journal.h %{_includedir}/systemd/sd-messages.h %{_includedir}/systemd/sd-shutdown.h %{_datadir}/pkgconfig/systemd.pc %{_libdir}/pkgconfig/libsystemd-daemon.pc %{_libdir}/pkgconfig/libsystemd-login.pc %{_libdir}/pkgconfig/libsystemd-id128.pc %{_libdir}/pkgconfig/libsystemd-journal.pc %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 %files -n %{udevpkgname} %defattr(-,root,root) /sbin/udevd /sbin/udevadm # keep for compatibility %ghost /lib/udev %{_bindir}/udevadm %{_prefix}/lib/firmware %dir %{_prefix}/lib/udev/ %{_prefix}/lib/udev/accelerometer %{_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/write_dev_root_rule %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 %dir %{_prefix}/lib/udev/hwdb.d %{_prefix}/lib/udev/hwdb.d/* %{_sysconfdir}/init.d/boot.udev %dir %{_sysconfdir}/udev/ %dir %{_sysconfdir}/udev/rules.d/ %ghost %{_sysconfdir}/udev/hwdb.bin %config(noreplace) %{_sysconfdir}/udev/udev.conf %if ! 0%{?bootstrap} %{_mandir}/man?/*udev*.[0-9]* %endif %dir %{_prefix}/lib/systemd/system %{_prefix}/lib/systemd/systemd-udevd %{_prefix}/lib/systemd/system/systemd-udev-root-symlink.service %{_prefix}/lib/systemd/system/basic.target.wants/systemd-udev-root-symlink.service %{_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 %files -n lib%{udevpkgname}%{udev_major} %defattr(-,root,root) %{_libdir}/libudev.so.* %files -n lib%{udevpkgname}-devel %defattr(-,root,root) %{_includedir}/libudev.h %{_libdir}/libudev.so %{_datadir}/pkgconfig/udev.pc %{_libdir}/pkgconfig/libudev.pc %if ! 0%{?bootstrap} %dir %{_datadir}/gtk-doc %dir %{_datadir}/gtk-doc/html %dir %{_datadir}/gtk-doc/html/libudev %{_datadir}/gtk-doc/html/libudev/* %endif %if ! 0%{?bootstrap} %files -n libgudev-1_0-0 %defattr(-,root,root) %{_libdir}/libgudev-1.0.so.* %files -n typelib-1_0-GUdev-1_0 %defattr(-,root,root) %{_libdir}/girepository-1.0/GUdev-1.0.typelib %files -n libgudev-1_0-devel %defattr(-,root,root) %dir %{_includedir}/gudev-1.0 %dir %{_includedir}/gudev-1.0/gudev %{_includedir}/gudev-1.0/gudev/*.h %{_libdir}/libgudev-1.0.so %{_libdir}/pkgconfig/gudev-1.0.pc %dir %{_datadir}/gtk-doc %dir %{_datadir}/gtk-doc/html %dir %{_datadir}/gtk-doc/html/gudev %{_datadir}/gtk-doc/html/gudev/* %{_datadir}/gir-1.0/GUdev-1.0.gir %files logger %defattr(-,root,root) %dir /var/log/journal /var/log/README /etc/init.d/systemd-journald %files -n nss-myhostname %defattr(-, root, root) %{_sbindir}/nss-myhostname-config /%{_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 %endif %changelog