3 %bcond_without audit # without audit support
4 %bcond_without cryptsetup # without cryptsetup support
5 %bcond_without gtk # build gtk tools
6 %bcond_without pam # PAM authentication support
7 %bcond_without selinux # without SELinux support
8 %bcond_without tcpd # libwrap (tcp_wrappers) support
10 Summary: A System and Service Manager
11 Summary(pl.UTF-8): systemd - zarządca systemu i usług dla Linuksa
17 Source0: http://www.freedesktop.org/software/systemd/%{name}-%{version}.tar.bz2
18 # Source0-md5: 1435f23be79c8c38d1121c6b150510f3
19 Source1: %{name}-sysv-convert
20 Source2: systemd_booted.c
21 Patch0: target-pld.patch
22 Patch1: config-pld.patch
23 Patch2: shut-sysv-up.patch
24 URL: http://www.freedesktop.org/wiki/Software/systemd
25 %{?with_audit:BuildRequires: audit-libs-devel}
26 BuildRequires: autoconf >= 2.63
27 BuildRequires: automake >= 1:1.11
28 %{?with_cryptsetup:BuildRequires: cryptsetup-luks-devel}
29 BuildRequires: dbus-devel >= 1.3.2
30 BuildRequires: docbook-style-xsl
32 BuildRequires: glib2-devel >= 1:2.26.1
33 BuildRequires: gtk+2-devel >= 2:2.24.0
34 BuildRequires: libnotify-devel >= 0.7.0
37 BuildRequires: libcap-devel
38 %{?with_selinux:BuildRequires: libselinux-devel}
39 BuildRequires: libtool >= 2:2.2
40 %{?with_tcpd:BuildRequires: libwrap-devel}
41 BuildRequires: libxslt-progs
43 %{?with_pam:BuildRequires: pam-devel}
44 BuildRequires: pkgconfig >= 0.9.0
45 BuildRequires: rpmbuild(macros) >= 1.527
46 BuildRequires: udev-devel >= 172
47 BuildRequires: vala >= 0.10.0
48 Requires: %{name}-libs = %{version}-%{release}
49 Requires: %{name}-units = %{version}-%{release}
50 Requires: SysVinit-tools
52 Requires: dbus >= 1.3.2
53 Requires: dbus-systemd
54 Requires: filesystem >= 4.0
56 Requires: setup >= 2.8.0-2
57 Requires: udev-core >= 1:172
58 Requires: udev-systemd >= 1:172
59 Requires: udev-libs >= 1:172
60 Suggests: ConsoleKit-systemd
61 Suggests: fsck >= 2.20
62 # python modules required by systemd-analyze
64 Suggests: python-modules
65 Suggests: rsyslog-systemd
67 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
69 %define _libexecdir %{_prefix}/lib
72 systemd is a system and service manager for Linux, compatible with
73 SysV and LSB init scripts. systemd provides aggressive parallelization
74 capabilities, uses socket and D-Bus activation for starting services,
75 offers on-demand starting of daemons, keeps track of processes using
76 Linux cgroups, supports snapshotting and restoring of the system
77 state, maintains mount and automount points and implements an
78 elaborate transactional dependency-based service control logic. It can
79 work as a drop-in replacement for sysvinit.
81 %description -l pl.UTF-8
82 systemd jest zarządcą systemu i usług dla Linuksa, kompatybilny ze
83 skryptami SysV i LSB. systemd udostępnia rozbudowane zdolności
84 paralelizacji, do uruchamiania usług używa socketów oraz D-Busa,
85 oferuje uruchamianie usług na życzenie, monitoruje procesy używając
86 linuksowych cgroups, wspomaga zapisywanie (snapshot) i odczytywanie
87 (restore) stanu systemu, zarządza (auto)mount pointami oraz
88 implementuje starannie opracowaną transakcjonalną, bazującą na
89 zależnościach logikę kontroli usług. Może pracować jako zastępca dla
93 Summary: systemd /sbin/init and LSB/SysV compatibility symlinks
96 Provides: readahead = 1:1.5.7-3
97 Provides: virtual(init-daemon)
99 Obsoletes: readahead < 1:1.5.7-3
100 Obsoletes: virtual(init-daemon)
103 Install this package when you are ready to final switch to systemd.
106 Summary: Configuration files, directories and installation tool for systemd
108 Requires(post): coreutils
113 Basic configuration files, directories and installation tool for the
114 systemd system and service manager.
116 This is common config, use %{_sysconfdir}/systemd/system to override.
119 Summary: Graphical frontend for systemd
121 Requires: %{name} = %{version}-%{release}
125 Graphical front-end for systemd.
127 %package -n bash-completion-systemd
128 Summary: bash-completion for systemd
129 Group: Applications/Shells
131 Requires: bash-completion
133 %description -n bash-completion-systemd
134 bash-completion for systemd.
137 Summary: Shared systemd library
141 Shared systemd library.
144 Summary: Header files for systemd libraries
145 Summary(pl.UTF-8): Pliki nagłówkowe bibliotek systemd
146 Group: Development/Libraries
147 Requires: %{name}-libs = %{version}-%{release}
150 Header files for systemd libraries.
152 %description devel -l pl.UTF-8
153 Pliki nagłówkowe bibliotek systemd.
160 cp -p %{SOURCE2} src/systemd_booted.c
168 %{__enable_disable audit} \
169 %{__enable_disable cryptsetup libcryptsetup} \
170 %{__enable_disable gtk} \
171 %{__enable_disable pam} \
172 %{__enable_disable selinux} \
173 %{__enable_disable tcpd tcpwrap} \
174 --disable-silent-rules \
179 ./libtool --mode=link --tag=CC %{__cc} %{rpmcppflags} %{rpmcflags} -o systemd_booted %{rpmldflags} src/systemd_booted.c -L. -lsystemd-daemon
182 rm -rf $RPM_BUILD_ROOT
185 DESTDIR=$RPM_BUILD_ROOT
187 ./libtool --mode=install install -m755 systemd_booted $RPM_BUILD_ROOT/bin/systemd_booted
189 for lib in libsystemd-daemon libsystemd-login; do
190 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/$lib.so.*,/%{_lib}}
191 ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/$lib.so.*.*.*) $RPM_BUILD_ROOT%{_libdir}/$lib.so
194 # Create SysV compatibility symlinks. systemctl/systemd are smart
195 # enough to detect the way they were called
196 install -d $RPM_BUILD_ROOT/sbin
197 ln -s ../bin/systemd $RPM_BUILD_ROOT/sbin/init
198 ln -s ../bin/systemctl $RPM_BUILD_ROOT/sbin/halt
199 ln -s ../bin/systemctl $RPM_BUILD_ROOT/sbin/poweroff
200 ln -s ../bin/systemctl $RPM_BUILD_ROOT/sbin/reboot
201 ln -s ../bin/systemctl $RPM_BUILD_ROOT/sbin/runlevel
202 ln -s ../bin/systemctl $RPM_BUILD_ROOT/sbin/shutdown
203 ln -s ../bin/systemctl $RPM_BUILD_ROOT/sbin/telinit
205 ln -s ../modules $RPM_BUILD_ROOT%{_sysconfdir}/modules-load.d/modules.conf
206 ln -s /dev/null $RPM_BUILD_ROOT/lib/systemd/system/random.service
208 # All wants links are created at %post to make sure they are not owned
209 # and hence overriden by rpm if the user deletes them (missingok?)
210 %{__rm} -r $RPM_BUILD_ROOT%{_sysconfdir}/systemd/system/*.target.wants
212 # do not cover /media (system-specific removable mountpoints) for now
213 # needs %post code to convert existing /media structure to tmpfiles
214 %{__rm} $RPM_BUILD_ROOT/lib/systemd/system/local-fs.target.wants/media.mount
215 # do not cover /var/run until packages need rpm-provided-only subdirectories
216 %{__rm} $RPM_BUILD_ROOT/lib/systemd/system/local-fs.target.wants/var-run.mount
218 # Make sure these directories are properly owned:
219 # - halt,kexec,poweroff,reboot: generic ones used by ConsoleKit-systemd,
220 # - syslog _might_ be used by some syslog implementation (none for now),
221 # - isn't dbus populated by dbus-systemd only (so to be moved there)?
222 install -d $RPM_BUILD_ROOT/lib/systemd/system/{dbus,halt,kexec,poweroff,reboot,syslog}.target.wants
224 # Create new-style configuration files so that we can ghost-own them
225 touch $RPM_BUILD_ROOT%{_sysconfdir}/{hostname,locale.conf,machine-id,machine-info,os-release,timezone,vconsole.conf}
227 # Install SysV conversion tool for systemd
228 install -p %{SOURCE1} $RPM_BUILD_ROOT%{_bindir}
230 install -d $RPM_BUILD_ROOT/var/log
231 :> $RPM_BUILD_ROOT/var/log/btmp
232 :> $RPM_BUILD_ROOT/var/log/wtmp
235 %{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/systemadm.1*
238 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/%{name}
239 %{__rm} $RPM_BUILD_ROOT/%{_lib}/security/pam_systemd.la
240 %{__rm} $RPM_BUILD_ROOT%{_libdir}/*.la
243 rm -rf $RPM_BUILD_ROOT
246 /bin/systemd-machine-id-setup > /dev/null 2>&1 || :
247 /bin/systemctl daemon-reexec > /dev/null 2>&1 || :
250 if [ $1 -ge 1 ]; then
251 /bin/systemctl try-restart systemd-logind.service >/dev/null 2>&1 || :
254 %post libs -p /sbin/ldconfig
255 %postun libs -p /sbin/ldconfig
258 if [ $1 -eq 1 ]; then
259 # Try to read default runlevel from the old inittab if it exists
260 runlevel=$(/bin/awk -F ':' '$3 == "initdefault" && $1 !~ "^#" { print $2 }' /etc/inittab 2> /dev/null)
261 if [ -z "$runlevel" ] ; then
262 target="/lib/systemd/system/graphical.target"
264 target="/lib/systemd/system/runlevel$runlevel.target"
267 # And symlink what we found to the new-style default.target
268 ln -s "$target" %{_sysconfdir}/systemd/system/default.target >/dev/null 2>&1 || :
270 # Enable the services we install by default.
271 /bin/systemctl enable \
274 systemd-readahead-replay.service \
275 systemd-readahead-collect.service >/dev/null 2>&1 || :
279 if [ $1 -eq 0 ] ; then
280 /bin/systemctl disable \
283 systemd-readahead-replay.service \
284 systemd-readahead-collect.service >/dev/null 2>&1 || :
286 %{__rm} -f %{_sysconfdir}/systemd/system/default.target >/dev/null 2>&1 || :
290 if [ $1 -ge 1 ]; then
291 /bin/systemctl daemon-reload > /dev/null 2>&1 || :
295 %defattr(644,root,root,755)
296 %doc DISTRO_PORTING README TODO
297 /etc/dbus-1/system.d/org.freedesktop.hostname1.conf
298 /etc/dbus-1/system.d/org.freedesktop.locale1.conf
299 /etc/dbus-1/system.d/org.freedesktop.login1.conf
300 /etc/dbus-1/system.d/org.freedesktop.systemd1.conf
301 /etc/dbus-1/system.d/org.freedesktop.timedate1.conf
302 %ghost %config(noreplace) %{_sysconfdir}/machine-id
303 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/hostname
304 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/locale.conf
305 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/machine-info
306 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/os-release
307 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/timezone
308 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vconsole.conf
309 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/systemd/*.conf
310 %dir %{_sysconfdir}/systemd/user
312 %attr(755,root,root) /bin/systemd
313 %attr(755,root,root) /bin/systemd-ask-password
314 %attr(755,root,root) /bin/systemd-loginctl
315 %attr(755,root,root) /bin/systemd-machine-id-setup
316 %attr(755,root,root) /bin/systemd-notify
317 %attr(755,root,root) /bin/systemd-tty-ask-password-agent
318 %attr(755,root,root) %{_bindir}/systemd-analyze
319 %attr(755,root,root) %{_bindir}/systemd-cgls
320 %attr(755,root,root) %{_bindir}/systemd-nspawn
321 %attr(755,root,root) %{_bindir}/systemd-stdio-bridge
322 %attr(755,root,root) %{_bindir}/systemd-sysv-convert
323 %attr(755,root,root) /lib/systemd/systemd-*
324 %dir /lib/systemd/system-generators
325 %attr(755,root,root) /lib/systemd/system-generators/systemd-*-generator
326 %dir /lib/systemd/system-shutdown
327 /lib/udev/rules.d/99-systemd.rules
328 /lib/udev/rules.d/70-uaccess.rules
329 /lib/udev/rules.d/71-seat.rules
330 /lib/udev/rules.d/73-seat-late.rules
331 %dir %{_libexecdir}/systemd
332 %{_libexecdir}/systemd/user
333 %dir %{_libexecdir}/systemd/user-generators
334 %config(noreplace,missingok) %{_libexecdir}/tmpfiles.d/*.conf
335 %{_datadir}/dbus-1/interfaces/org.freedesktop.hostname1.xml
336 %{_datadir}/dbus-1/interfaces/org.freedesktop.locale1.xml
337 %{_datadir}/dbus-1/interfaces/org.freedesktop.systemd1.*.xml
338 %{_datadir}/dbus-1/interfaces/org.freedesktop.timedate1.xml
339 %{_datadir}/dbus-1/services/org.freedesktop.systemd1.service
340 %{_datadir}/dbus-1/system-services/org.freedesktop.hostname1.service
341 %{_datadir}/dbus-1/system-services/org.freedesktop.locale1.service
342 %{_datadir}/dbus-1/system-services/org.freedesktop.login1.service
343 %{_datadir}/dbus-1/system-services/org.freedesktop.systemd1.service
344 %{_datadir}/dbus-1/system-services/org.freedesktop.timedate1.service
345 %{_datadir}/polkit-1/actions/org.freedesktop.hostname1.policy
346 %{_datadir}/polkit-1/actions/org.freedesktop.locale1.policy
347 %{_datadir}/polkit-1/actions/org.freedesktop.login1.policy
348 %{_datadir}/polkit-1/actions/org.freedesktop.systemd1.policy
349 %{_datadir}/polkit-1/actions/org.freedesktop.timedate1.policy
350 %dir %{_datadir}/systemd
351 %{_datadir}/systemd/kbd-model-map
352 %{_mandir}/man1/systemd.1*
353 %{_mandir}/man1/systemd-*.1*
354 %{_mandir}/man3/sd_booted.3*
355 %{_mandir}/man3/sd_is_fifo.3*
356 %{_mandir}/man3/sd_is_socket.3
357 %{_mandir}/man3/sd_is_socket_inet.3
358 %{_mandir}/man3/sd_is_socket_unix.3
359 %{_mandir}/man3/sd_listen_fds.3*
360 %{_mandir}/man3/sd_notify.3*
361 %{_mandir}/man3/sd_notifyf.3
362 %{_mandir}/man3/sd_readahead.3*
363 %{_mandir}/man5/binfmt.d.5*
364 %{_mandir}/man5/hostname.5*
365 %{_mandir}/man5/locale.conf.5*
366 %{_mandir}/man5/machine-id.5*
367 %{_mandir}/man5/machine-info.5*
368 %{_mandir}/man5/modules-load.d.5*
369 %{_mandir}/man5/os-release.5*
370 %{_mandir}/man5/sysctl.d.5*
371 %{_mandir}/man5/systemd.*.5*
372 %{_mandir}/man5/systemd-logind.conf.5*
373 %{_mandir}/man5/timezone.5*
374 %{_mandir}/man5/vconsole.conf.5*
375 %{_mandir}/man7/daemon.7*
376 %{_mandir}/man7/sd-daemon.7*
377 %{_mandir}/man7/sd-readahead.7*
378 %{_mandir}/man7/systemd.special.7*
379 %attr(640,root,root) %ghost /var/log/btmp
380 %attr(664,root,utmp) %ghost /var/log/wtmp
383 %attr(755,root,root) /%{_lib}/security/pam_systemd.so
384 %{_mandir}/man8/pam_systemd.8*
388 %attr(755,root,root) /sbin/halt
389 %attr(755,root,root) /sbin/init
390 %attr(755,root,root) /sbin/poweroff
391 %attr(755,root,root) /sbin/reboot
392 %attr(755,root,root) /sbin/runlevel
393 %attr(755,root,root) /sbin/shutdown
394 %attr(755,root,root) /sbin/telinit
395 %{_mandir}/man1/init.1
396 %{_mandir}/man8/halt.8*
397 %{_mandir}/man8/poweroff.8
398 %{_mandir}/man8/reboot.8
399 %{_mandir}/man8/runlevel.8*
400 %{_mandir}/man8/shutdown.8*
401 %{_mandir}/man8/telinit.8*
404 %defattr(644,root,root,755)
405 %attr(755,root,root) /%{_lib}/libsystemd-daemon.so.*.*.*
406 %attr(755,root,root) %ghost /%{_lib}/libsystemd-daemon.so.0
407 %attr(755,root,root) /%{_lib}/libsystemd-login.so.*.*.*
408 %attr(755,root,root) %ghost /%{_lib}/libsystemd-login.so.0
411 %defattr(644,root,root,755)
412 %dir %{_sysconfdir}/binfmt.d
413 %dir %{_sysconfdir}/modules-load.d
414 %config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/modules-load.d/modules.conf
415 %dir %{_sysconfdir}/sysctl.d
416 %dir %{_sysconfdir}/systemd
417 %dir %{_sysconfdir}/systemd/system
418 %dir %{_sysconfdir}/tmpfiles.d
419 %dir %{_libexecdir}/binfmt.d
420 %dir %{_libexecdir}/modules-load.d
421 %dir %{_libexecdir}/sysctl.d
422 %attr(755,root,root) /bin/systemctl
423 %attr(755,root,root) /bin/systemd-tmpfiles
424 %attr(755,root,root) /bin/systemd_booted
425 %{_mandir}/man1/systemctl.1*
426 %{_mandir}/man5/tmpfiles.d.5*
427 %{_mandir}/man8/systemd-tmpfiles.8*
428 %{_npkgconfigdir}/systemd.pc
430 /lib/systemd/system/*.automount
431 /lib/systemd/system/*.mount
432 /lib/systemd/system/*.path
433 /lib/systemd/system/*.service
434 /lib/systemd/system/*.socket
435 /lib/systemd/system/*.target
436 /lib/systemd/system/*.timer
437 %dir /lib/systemd/system/*.wants
438 %config(noreplace,missingok) /lib/systemd/system/*.wants/*
442 %defattr(644,root,root,755)
443 %attr(755,root,root) %{_bindir}/systemadm
444 %attr(755,root,root) %{_bindir}/systemd-gnome-ask-password-agent
445 %{_mandir}/man1/systemadm.1*
448 %files -n bash-completion-systemd
449 %defattr(644,root,root,755)
450 /etc/bash_completion.d/systemctl-bash-completion.sh
453 %defattr(644,root,root,755)
454 %{_includedir}/%{name}
455 %attr(755,root,root) %{_libdir}/libsystemd-daemon.so
456 %attr(755,root,root) %{_libdir}/libsystemd-login.so
457 %{_pkgconfigdir}/libsystemd-daemon.pc
458 %{_pkgconfigdir}/libsystemd-login.pc