9 # TODO: - move %_libexecdir/tmpfiles.d/* to /etc/tmpfiles.d?
10 # - shouldn't ../bin/systemctl symlinks be absolute? -no they shouldn't (think browsing mounted as chroot and seeing all blink due invalid link targets when doing ls)
11 # - separate init subpackage (with symlink), one can switch to
12 # systemd using init=/bin/systemd with other one installed
13 # - verify %_sysconfdir usage vs literal '/etc'
16 %bcond_without audit # without audit support
17 %bcond_without cryptsetup # without cryptsetup support
18 %bcond_without gtk # build gtk tools
19 %bcond_without pam # PAM authentication support
20 %bcond_without selinux # without SELinux support
21 %bcond_without tcpd # libwrap (tcp_wrappers) support
23 Summary: A System and Service Manager
24 Summary(pl.UTF-8): systemd - zarządca systemu i usług dla Linuksa
30 Source0: http://www.freedesktop.org/software/systemd/%{name}-%{version}.tar.bz2
31 # Source0-md5: 1435f23be79c8c38d1121c6b150510f3
32 Source1: %{name}-sysv-convert
33 Patch0: target-pld.patch
34 Patch1: config-pld.patch
35 URL: http://www.freedesktop.org/wiki/Software/systemd
36 %{?with_audit:BuildRequires: audit-libs-devel}
37 BuildRequires: autoconf >= 2.63
38 BuildRequires: automake >= 1:1.11
39 %{?with_cryptsetup:BuildRequires: cryptsetup-luks-devel}
40 BuildRequires: dbus-devel >= 1.3.2
41 BuildRequires: docbook-style-xsl
43 BuildRequires: glib2-devel >= 1:2.26.1
44 BuildRequires: gtk+2-devel >= 2:2.24.0
45 BuildRequires: libnotify-devel >= 0.7.0
48 BuildRequires: libcap-devel
49 %{?with_selinux:BuildRequires: libselinux-devel}
50 BuildRequires: libtool >= 2:2.2
51 %{?with_tcpd:BuildRequires: libwrap-devel}
52 BuildRequires: libxslt-progs
54 %{?with_pam:BuildRequires: pam-devel}
55 BuildRequires: pkgconfig >= 0.9.0
56 BuildRequires: rpmbuild(macros) >= 1.527
57 BuildRequires: udev-devel >= 160
58 BuildRequires: vala >= 0.10.0
59 Requires: %{name}-libs = %{version}-%{release}
60 Requires: %{name}-units = %{version}-%{release}
61 Requires: SysVinit-tools
63 Requires: dbus >= 1.3.2
64 Requires: dbus-systemd
65 Requires: filesystem >= 4.0
66 # python modules required by systemd-analyze
68 Requires: python-modules
70 Requires: setup >= 2.8.0-2
71 Requires: udev-core >= 160
72 Requires: udev-systemd
73 Suggests: ConsoleKit-systemd
74 Suggests: rsyslog-systemd
75 Suggests: udev-systemd
76 Provides: SysVinit = 2.86-26
77 Provides: readahead = 1:1.5.7-3
78 Provides: virtual(init-daemon)
79 Obsoletes: SysVinit < 2.86-26
80 Obsoletes: readahead < 1:1.5.7-3
81 Obsoletes: virtual(init-daemon)
82 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
84 %define _libexecdir %{_prefix}/lib
87 systemd is a system and service manager for Linux, compatible with
88 SysV and LSB init scripts. systemd provides aggressive parallelization
89 capabilities, uses socket and D-Bus activation for starting services,
90 offers on-demand starting of daemons, keeps track of processes using
91 Linux cgroups, supports snapshotting and restoring of the system
92 state, maintains mount and automount points and implements an
93 elaborate transactional dependency-based service control logic. It can
94 work as a drop-in replacement for sysvinit.
96 %description -l pl.UTF-8
97 systemd jest zarządcą systemu i usług dla Linuksa, kompatybilny ze
98 skryptami SysV i LSB. systemd udostępnia rozbudowane zdolności
99 paralelizacji, do uruchamiania usług używa socketów oraz D-Busa,
100 oferuje uruchamianie usług na życzenie, monitoruje procesy używając
101 linuksowych cgroups, wspomaga zapisywanie (snapshot) i odczytywanie
102 (restore) stanu systemu, zarządza (auto)mount pointami oraz
103 implementuje starannie opracowaną transakcjonalną, bazującą na
104 zależnościach logikę kontroli usług. Może pracować jako zastępca dla
108 Summary: Configuration files, directories and installation tool for systemd
110 Requires(post): coreutils
115 Basic configuration files, directories and installation tool for the
116 systemd system and service manager.
118 This is distro specific config, to override
119 use /etc/systemd/system
122 Summary: Graphical frontend for systemd
124 Requires: %{name} = %{version}-%{release}
128 Graphical front-end for systemd.
130 %package -n bash-completion-systemd
131 Summary: bash-completion for systemd
132 Group: Applications/Shells
134 Requires: bash-completion
136 %description -n bash-completion-systemd
137 bash-completion for systemd.
140 Summary: Shared systemd library
144 Shared systemd library.
147 Summary: Header files for systemd libraries
148 Summary(pl.UTF-8): Pliki nagłówkowe bibliotek systemd
149 Group: Development/Libraries
150 Requires: %{name}-libs = %{version}-%{release}
153 Header files for systemd libraries.
155 %description devel -l pl.UTF-8
156 Pliki nagłówkowe bibliotek systemd.
169 %{__enable_disable audit} \
170 %{__enable_disable cryptsetup libcryptsetup} \
171 %{__enable_disable gtk} \
172 %{__enable_disable pam} \
173 %{__enable_disable selinux} \
174 %{__enable_disable tcpd tcpwrap} \
175 --disable-silent-rules \
182 rm -rf $RPM_BUILD_ROOT
185 DESTDIR=$RPM_BUILD_ROOT
187 for lib in libsystemd-daemon libsystemd-login; do
188 %{__mv} $RPM_BUILD_ROOT{%{_libdir}/$lib.so.*,/%{_lib}}
189 ln -sf /%{_lib}/$(basename $RPM_BUILD_ROOT/%{_lib}/$lib.so.*.*.*) $RPM_BUILD_ROOT%{_libdir}/$lib.so
192 # Create SysV compatibility symlinks. systemctl/systemd are smart
193 # enough to detect in which way they are called.
194 install -d $RPM_BUILD_ROOT/sbin
195 ln -s ../bin/systemd $RPM_BUILD_ROOT/sbin/init
196 ln -s ../bin/systemctl $RPM_BUILD_ROOT/sbin/halt
197 ln -s ../bin/systemctl $RPM_BUILD_ROOT/sbin/poweroff
198 ln -s ../bin/systemctl $RPM_BUILD_ROOT/sbin/reboot
199 ln -s ../bin/systemctl $RPM_BUILD_ROOT/sbin/runlevel
200 ln -s ../bin/systemctl $RPM_BUILD_ROOT/sbin/shutdown
201 ln -s ../bin/systemctl $RPM_BUILD_ROOT/sbin/telinit
203 ln -s ../modules $RPM_BUILD_ROOT%{_sysconfdir}/modules-load.d/modules.conf
205 # We create all wants links manually at installation time to make sure
206 # they are not owned and hence overriden by rpm after the used deleted
208 %{__rm} -r $RPM_BUILD_ROOT%{_sysconfdir}/systemd/system/*.target.wants
210 # do not cover /media (system-specific removable mountpoints) for now
211 # needs %post code to convert existing /media structure to tmpfiles
212 %{__rm} -f $RPM_BUILD_ROOT/lib/systemd/local-fs.target.wants/media.mount
213 # do not cover /var/run until packages need rpm-provided-only subdirectories
214 %{__rm} -f $RPM_BUILD_ROOT/lib/systemd/local-fs.target.wants/var-run.mount
216 # Make sure these directories are properly owned
217 install -d $RPM_BUILD_ROOT/lib/systemd/system/{basic,dbus,default,halt,kexec,poweroff,reboot,syslog}.target.wants
219 # Create new-style configuration files so that we can ghost-own them
220 touch $RPM_BUILD_ROOT%{_sysconfdir}/{hostname,locale.conf,machine-id,machine-info,os-release,timezone,vconsole.conf}
222 # Install SysV conversion tool for systemd
223 install -p %{SOURCE1} $RPM_BUILD_ROOT%{_bindir}
225 install -d $RPM_BUILD_ROOT/var/log
226 > $RPM_BUILD_ROOT/var/log/btmp
227 > $RPM_BUILD_ROOT/var/log/wtmp
230 # to shut up check-files
231 %{__rm} $RPM_BUILD_ROOT%{_bindir}/systemadm
232 %{__rm} $RPM_BUILD_ROOT%{_bindir}/systemd-gnome-ask-password-agent
233 %{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/systemadm.1*
236 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/%{name}
237 %{__rm} $RPM_BUILD_ROOT/%{_lib}/security/pam_systemd.la
238 %{__rm} $RPM_BUILD_ROOT%{_libdir}/*.la
241 rm -rf $RPM_BUILD_ROOT
244 /bin/systemd-machine-id-setup > /dev/null 2>&1 || :
245 /bin/systemctl daemon-reexec > /dev/null 2>&1 || :
248 if [ $1 -ge 1 ]; then
249 /bin/systemctl try-restart systemd-logind.service >/dev/null 2>&1 || :
252 %post libs -p /sbin/ldconfig
253 %postun libs -p /sbin/ldconfig
256 if [ $1 -eq 1 ]; then
257 # Try to read default runlevel from the old inittab if it exists
258 runlevel=$(/bin/awk -F ':' '$3 == "initdefault" && $1 !~ "^#" { print $2 }' /etc/inittab 2> /dev/null)
259 if [ -z "$runlevel" ] ; then
260 target="/lib/systemd/system/graphical.target"
262 target="/lib/systemd/system/runlevel$runlevel.target"
265 # And symlink what we found to the new-style default.target
266 ln -sf "$target" /etc/systemd/system/default.target >/dev/null 2>&1 || :
268 # Enable the services we install by default.
269 /bin/systemctl enable \
272 systemd-readahead-replay.service \
273 systemd-readahead-collect.service >/dev/null 2>&1 || :
277 if [ $1 -eq 0 ] ; then
278 /bin/systemctl disable \
281 systemd-readahead-replay.service \
282 systemd-readahead-collect.service >/dev/null 2>&1 || :
284 %{__rm} -f /etc/systemd/system/default.target >/dev/null 2>&1 || :
288 if [ $1 -ge 1 ]; then
289 /bin/systemctl daemon-reload > /dev/null 2>&1 || :
293 %defattr(644,root,root,755)
294 %doc DISTRO_PORTING README TODO
295 /etc/dbus-1/system.d/org.freedesktop.hostname1.conf
296 /etc/dbus-1/system.d/org.freedesktop.locale1.conf
297 /etc/dbus-1/system.d/org.freedesktop.login1.conf
298 /etc/dbus-1/system.d/org.freedesktop.systemd1.conf
299 /etc/dbus-1/system.d/org.freedesktop.timedate1.conf
300 %ghost %config(noreplace) %{_sysconfdir}/machine-id
301 %dir %{_sysconfdir}/systemd
302 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/systemd/*.conf
304 %attr(755,root,root) /bin/systemd
305 %attr(755,root,root) /bin/systemd-ask-password
306 %attr(755,root,root) /bin/systemd-loginctl
307 %attr(755,root,root) /bin/systemd-machine-id-setup
308 %attr(755,root,root) /bin/systemd-notify
309 %attr(755,root,root) /bin/systemd-tty-ask-password-agent
310 %attr(755,root,root) %{_bindir}/systemd-analyze
311 %attr(755,root,root) %{_bindir}/systemd-cgls
312 %attr(755,root,root) %{_bindir}/systemd-nspawn
313 %attr(755,root,root) %{_bindir}/systemd-sysv-convert
314 %attr(755,root,root) %{_bindir}/systemd-stdio-bridge
315 %attr(755,root,root) /sbin/halt
316 %attr(755,root,root) /sbin/init
317 %attr(755,root,root) /sbin/poweroff
318 %attr(755,root,root) /sbin/reboot
319 %attr(755,root,root) /sbin/runlevel
320 %attr(755,root,root) /sbin/shutdown
321 %attr(755,root,root) /sbin/telinit
322 %attr(755,root,root) /lib/systemd/systemd-*
323 %dir /lib/systemd/system-generators
324 %attr(755,root,root) /lib/systemd/system-generators/systemd-*-generator
325 %dir /lib/systemd/system-shutdown
326 /lib/udev/rules.d/99-systemd.rules
327 /lib/udev/rules.d/70-uaccess.rules
328 /lib/udev/rules.d/71-seat.rules
329 /lib/udev/rules.d/73-seat-late.rules
330 %dir %{_libexecdir}/systemd
331 %{_libexecdir}/systemd/user
332 %config(noreplace,missingok) %{_libexecdir}/tmpfiles.d/*.conf
333 %{_datadir}/dbus-1/interfaces/org.freedesktop.hostname1.xml
334 %{_datadir}/dbus-1/interfaces/org.freedesktop.locale1.xml
335 %{_datadir}/dbus-1/interfaces/org.freedesktop.systemd1.*.xml
336 %{_datadir}/dbus-1/interfaces/org.freedesktop.timedate1.xml
337 %{_datadir}/dbus-1/services/org.freedesktop.systemd1.service
338 %{_datadir}/dbus-1/system-services/org.freedesktop.hostname1.service
339 %{_datadir}/dbus-1/system-services/org.freedesktop.locale1.service
340 %{_datadir}/dbus-1/system-services/org.freedesktop.login1.service
341 %{_datadir}/dbus-1/system-services/org.freedesktop.systemd1.service
342 %{_datadir}/dbus-1/system-services/org.freedesktop.timedate1.service
343 %{_datadir}/polkit-1/actions/org.freedesktop.hostname1.policy
344 %{_datadir}/polkit-1/actions/org.freedesktop.locale1.policy
345 %{_datadir}/polkit-1/actions/org.freedesktop.login1.policy
346 %{_datadir}/polkit-1/actions/org.freedesktop.systemd1.policy
347 %{_datadir}/polkit-1/actions/org.freedesktop.timedate1.policy
348 %dir %{_datadir}/systemd
349 %{_datadir}/systemd/kbd-model-map
350 %{_mandir}/man1/init.1
351 %{_mandir}/man1/systemd.1*
352 %{_mandir}/man1/systemd-ask-password.1*
353 %{_mandir}/man1/systemd-cgls.1*
354 %{_mandir}/man1/systemd-notify.1*
355 %{_mandir}/man1/systemd-nspawn.1*
356 %{_mandir}/man1/systemd-loginctl.1*
357 %{_mandir}/man3/sd_booted.3*
358 %{_mandir}/man3/sd_is_fifo.3*
359 %{_mandir}/man3/sd_is_socket.3
360 %{_mandir}/man3/sd_is_socket_inet.3
361 %{_mandir}/man3/sd_is_socket_unix.3
362 %{_mandir}/man3/sd_listen_fds.3*
363 %{_mandir}/man3/sd_notify.3*
364 %{_mandir}/man3/sd_notifyf.3
365 %{_mandir}/man3/sd_readahead.3*
366 %{_mandir}/man5/binfmt.d.5*
367 %{_mandir}/man5/hostname.5*
368 %{_mandir}/man5/locale.conf.5*
369 %{_mandir}/man5/machine-id.5*
370 %{_mandir}/man5/machine-info.5*
371 %{_mandir}/man5/modules-load.d.5*
372 %{_mandir}/man5/os-release.5*
373 %{_mandir}/man5/sysctl.d.5*
374 %{_mandir}/man5/systemd.*.5*
375 %{_mandir}/man5/systemd-logind.conf.5*
376 %{_mandir}/man5/timezone.5*
377 %{_mandir}/man5/vconsole.conf.5*
378 %{_mandir}/man7/daemon.7*
379 %{_mandir}/man7/sd-daemon.7*
380 %{_mandir}/man7/sd-readahead.7*
381 %{_mandir}/man7/systemd.special.7*
382 %{_mandir}/man8/halt.8*
383 %{_mandir}/man8/poweroff.8
384 %{_mandir}/man8/reboot.8
385 %{_mandir}/man8/runlevel.8*
386 %{_mandir}/man8/shutdown.8*
387 %{_mandir}/man8/telinit.8*
388 %attr(640,root,root) %ghost /var/log/btmp
389 %attr(664,root,utmp) %ghost /var/log/wtmp
392 %attr(755,root,root) /%{_lib}/security/pam_systemd.so
393 %{_mandir}/man8/pam_systemd.8*
397 %defattr(644,root,root,755)
398 %attr(755,root,root) /%{_lib}/libsystemd-daemon.so.*.*.*
399 %attr(755,root,root) %ghost /%{_lib}/libsystemd-daemon.so.0
400 %attr(755,root,root) /%{_lib}/libsystemd-login.so.*.*.*
401 %attr(755,root,root) %ghost /%{_lib}/libsystemd-login.so.0
404 %defattr(644,root,root,755)
405 %dir %{_sysconfdir}/binfmt.d
406 %dir %{_sysconfdir}/modules-load.d
407 %config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/modules-load.d/modules.conf
408 %dir %{_sysconfdir}/sysctl.d
409 %dir %{_sysconfdir}/systemd
410 %dir %{_sysconfdir}/systemd/system
411 %dir %{_sysconfdir}/tmpfiles.d
412 %dir %{_libexecdir}/binfmt.d
413 %dir %{_libexecdir}/modules-load.d
414 %dir %{_libexecdir}/sysctl.d
415 %attr(755,root,root) /bin/systemctl
416 %attr(755,root,root) /bin/systemd-tmpfiles
417 %{_mandir}/man1/systemctl.1*
418 %{_mandir}/man5/tmpfiles.d.5*
419 %{_mandir}/man8/systemd-tmpfiles.8*
420 %{_npkgconfigdir}/systemd.pc
422 /lib/systemd/system/*.automount
423 /lib/systemd/system/*.mount
424 /lib/systemd/system/*.path
425 /lib/systemd/system/*.service
426 /lib/systemd/system/*.socket
427 /lib/systemd/system/*.target
428 /lib/systemd/system/*.timer
429 /lib/systemd/system/basic.target.wants
430 /lib/systemd/system/final.target.wants
431 /lib/systemd/system/graphical.target.wants
432 /lib/systemd/system/local-fs.target.wants
433 /lib/systemd/system/multi-user.target.wants
434 /lib/systemd/system/runlevel?.target.wants
435 /lib/systemd/system/shutdown.target.wants
436 /lib/systemd/system/sockets.target.wants
437 /lib/systemd/system/sysinit.target.wants
441 %defattr(644,root,root,755)
442 %attr(755,root,root) %{_bindir}/systemadm
443 %attr(755,root,root) %{_bindir}/systemd-gnome-ask-password-agent
444 %{_mandir}/man1/systemadm.1*
447 %files -n bash-completion-systemd
448 %defattr(644,root,root,755)
449 /etc/bash_completion.d/systemctl-bash-completion.sh
452 %defattr(644,root,root,755)
453 %{_includedir}/systemd
454 %attr(755,root,root) %{_libdir}/libsystemd-daemon.so
455 %attr(755,root,root) %{_libdir}/libsystemd-login.so
456 %{_pkgconfigdir}/libsystemd-daemon.pc
457 %{_pkgconfigdir}/libsystemd-login.pc