# # spec file for package systemd # # Copyright (c) 2011 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/ # # norootforbuild %define build_plymouth 0 Name: systemd Url: http://www.freedesktop.org/wiki/Software/systemd Version: 33 Release: 1 License: GPLv2+ Group: System/Base Summary: A System and Session Manager BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRequires: libudev-devel udev BuildRequires: dbus-1-devel BuildRequires: audit-devel BuildRequires: gperf BuildRequires: libcap-devel BuildRequires: tcpd-devel BuildRequires: pam-devel BuildRequires: libcryptsetup-devel BuildRequires: pkg-config BuildRequires: gtk2-devel libnotify-devel libxslt-devel vala BuildRequires: libselinux-devel libsepol-devel BuildRequires: intltool Requires: udev >= 172 Requires: dbus-1 >= 1.4.0 Requires: kbd Requires: util-linux >= 2.19 Conflicts: filesystem < 11.5 Conflicts: mkinitrd < 2.7.0 Source0: http://www.freedesktop.org/software/systemd/%{name}-%{version}.tar.bz2 Source1: systemd-rpmlintrc Source2: localfs.service Patch1: 0001-Add-bootsplash-handling-for-password-dialogs.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-UPSTREAM aj@suse.de gperf: Include missing.h Patch2: gperf-missing.patch # PATCH-FIX-UPSTREAM fcrozat@suse.com -- don't run fsck on rw / Patch3: root-fsck.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 devel License: GPLv2+ Group: Development/Libraries/C and C++ Summary: Development headers for systemd Requires: %{name} = %{version} Requires: pkg-config %description devel Development headers and auxiliary files for developing applications for systemd. %package gtk License: GPLv2+ Group: System/Base Summary: Graphical front-end for systemd Requires: %{name} = %{version} %description gtk Graphical front-end for systemd system and service manager. %package sysvinit License: GPLv2+ Group: System/Base Summary: System V init tools Requires: %{name} = %{version} Provides: sbin_init Conflicts: sysvinit Conflicts: upstart %description sysvinit Drop-in replacement of System V init tools. %if %{build_plymouth} %package plymouth License: GPLv2+ Group: System/Base Summary: Plymouth support for systemd Requires: %{name} = %{version} Requires: plymouth %description plymouth Plymouth integration for systemd %endif %prep %setup -q %patch1 -p1 %patch2 -p1 %patch3 -p1 %build autoreconf -fiv # prevent pre-generated and distributed files from re-building find . -name "*.[1-8]" -exec touch '{}' \; touch src/systemadm.c export V=1 %configure \ --with-distro=suse \ --docdir=%{_docdir}/systemd \ --with-rootdir= \ CFLAGS="%{optflags}" # rebuild due to libnotify 0.7 in factory touch *.vala */*.vala make %{?_smp_mflags} %install %makeinstall find %{buildroot} -type f -name '*.la' -exec rm -f {} ';' mkdir -p %{buildroot}/sbin ln -s ../bin/systemd %{buildroot}/sbin/init ln -s ../bin/systemctl %{buildroot}/sbin/reboot ln -s ../bin/systemctl %{buildroot}/sbin/halt ln -s ../bin/systemctl %{buildroot}/sbin/shutdown ln -s ../bin/systemctl %{buildroot}/sbin/poweroff ln -s ../bin/systemctl %{buildroot}/sbin/telinit ln -s ../bin/systemctl %{buildroot}/sbin/runlevel rm -rf %{buildroot}/etc/systemd/system/*.target.wants rm -f %{buildroot}/etc/systemd/system/default.target %if !%{build_plymouth} rm -f %{buildroot}/lib/systemd/system/plymouth-*.service rm -f %{buildroot}/lib/systemd/system/*.wants/plymouth-*.service rm -f %{buildroot}/lib/systemd/system/systemd-ask-password-plymouth.* %endif # aliases for /etc/init.d/* ln -s /dev/null %{buildroot}/lib/systemd/system/cgroup.service ln -s systemd-tmpfiles-setup.service %{buildroot}/lib/systemd/system/cleanup.service ln -s /dev/null %{buildroot}/lib/systemd/system/clock.service ln -s /dev/null %{buildroot}/lib/systemd/system/crypto.service ln -s /dev/null %{buildroot}/lib/systemd/system/crypto-early.service ln -s /dev/null %{buildroot}/lib/systemd/system/earlysyslog.service ln -s /dev/null %{buildroot}/lib/systemd/system/kbd.service ln -s /dev/null %{buildroot}/lib/systemd/system/klog.service ln -s /dev/null %{buildroot}/lib/systemd/system/ldconfig.service ln -s /dev/null %{buildroot}/lib/systemd/system/loadmodules.service install -m644 %{S:2} %{buildroot}/lib/systemd/system/localfs.service ln -s /dev/null %{buildroot}/lib/systemd/system/localnet.service ln -s /dev/null %{buildroot}/lib/systemd/system/proc.service ln -s fsck-root.service %{buildroot}/lib/systemd/system/rootfsck.service ln -s /dev/null %{buildroot}/lib/systemd/system/swap.service ln -s systemd-sysctl.service %{buildroot}/lib/systemd/system/sysctl.service ln -s systemd-random-seed-load.service %{buildroot}/lib/systemd/system/random.service %if %{build_plymouth} (cd %{buildroot} && find . -name '*plymouth*') > files.plymouth %endif %post /bin/systemd-machine-id-setup >/dev/null 2>&1 || : /bin/systemctl daemon-reexec >/dev/null 2>&1 || : /sbin/ldconfig # Create default config in /etc at first install. # Later package updates should not overwrite these settings. if [ "$1" -eq 1 ]; then # Try to read default runlevel from the old inittab if it exists runlevel=$(awk -F ':' '$3 == "initdefault" && $1 !~ "^#" { print $2 }' /etc/inittab 2> /dev/null) if [ -n "$runlevel" ] ; then /bin/ln -sf /lib/systemd/system/runlevel$runlevel.target /etc/systemd/system/default.target 2>&1 || : fi # Enable these services by default. /bin/systemctl enable \ getty@.service \ systemd-readahead-collect.service \ systemd-readahead-replay.service \ remote-fs.target >/dev/null 2>&1 || : fi %postun /sbin/ldconfig if [ $1 -ge 1 ] ; then /bin/systemctl try-restart systemd-logind.service >/dev/null 2>&1 || : fi %preun if [ $1 -eq 0 ]; then /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 %clean rm -rf %{buildroot} %files %defattr(-,root,root) /bin/systemd /bin/systemctl /bin/systemd-notify /bin/systemd-ask-password /bin/systemd-loginctl /bin/systemd-tty-ask-password-agent /bin/systemd-tmpfiles /bin/systemd-machine-id-setup /usr/bin/systemd-nspawn /usr/bin/systemd-stdio-bridge /usr/bin/systemd-analyze %{_libdir}/libsystemd-daemon.so.* %{_libdir}/libsystemd-login.so.* %{_bindir}/systemd-cgls /lib/systemd/systemd-* %dir /lib/systemd/system-shutdown /%{_lib}/security/pam_systemd.so %dir %{_sysconfdir}/systemd/system %dir %{_sysconfdir}/systemd/user %dir %{_sysconfdir}/xdg/systemd %dir %{_sysconfdir}/xdg/systemd/user %dir /usr/lib/modules-load.d %dir %{_sysconfdir}/modules-load.d %dir /usr/lib/tmpfiles.d %dir %{_sysconfdir}/tmpfiles.d %dir /usr/lib/binfmt.d %dir %{_sysconfdir}/binfmt.d %dir /usr/lib/sysctl.d %dir %{_sysconfdir}/sysctl.d /usr/lib/tmpfiles.d/*.conf %config(noreplace) %{_sysconfdir}/systemd/system.conf %config(noreplace) %{_sysconfdir}/systemd/systemd-logind.conf %config(noreplace) %{_sysconfdir}/systemd/user.conf %config(noreplace) %{_sysconfdir}/systemd/system.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.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.timedate1.service %{_datadir}/polkit-1 %{_datadir}/polkit-1/actions %{_datadir}/polkit-1/actions/org.freedesktop.systemd1.policy %if %{build_plymouth} # Packaged in plymouth subpackage %exclude /lib/systemd/system/plymouth-*.service %exclude /lib/systemd/system/*.wants/plymouth-*.service %exclude /lib/systemd/system/systemd-ask-password-plymouth.* %endif # Packaged in gtk subpackage %exclude %{_mandir}/man1/systemadm.1* # 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* %{_mandir}/man1/*.1* %{_mandir}/man3/*.3* %{_mandir}/man5/*.5* %{_mandir}/man7/*.7* %{_mandir}/man8/*.8* %{_docdir}/systemd /lib/udev/rules.d/*.rules %dir /lib/systemd /lib/systemd/system /lib/systemd/system-generators %dir /usr/lib/systemd /usr/lib/systemd/user %dir %{_sysconfdir}/systemd %dir %{_sysconfdir}/bash_completion.d /etc/bash_completion.d/systemctl-bash-completion.sh %files gtk %defattr(-,root,root,-) %{_bindir}/systemadm %{_bindir}/systemd-gnome-ask-password-agent %{_mandir}/man1/systemadm.1* %files devel %defattr(-,root,root,-) %{_libdir}/libsystemd-daemon.so %{_libdir}/libsystemd-login.so %dir %{_includedir}/systemd %{_includedir}/systemd/sd-login.h %{_includedir}/systemd/sd-daemon.h %{_datadir}/pkgconfig/systemd.pc %{_libdir}/pkgconfig/libsystemd-daemon.pc %{_libdir}/pkgconfig/libsystemd-login.pc %if %{build_plymouth} %files plymouth %defattr(-,root,root,-) /lib/systemd/system/plymouth-*.service /lib/systemd/system/*.wants/plymouth-*.service /lib/systemd/system/systemd-ask-password-plymouth.* %endif %files sysvinit %defattr(-,root,root,-) /sbin/init /sbin/reboot /sbin/halt /sbin/shutdown /sbin/poweroff /sbin/telinit /sbin/runlevel %{_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* %changelog