]> git.pld-linux.org Git - packages/systemd.git/blob - systemd.spec
- mask SysV random service - it's replaced by systemd-random-seed-{load,save}.service
[packages/systemd.git] / systemd.spec
1 #
2 # Conditional build:
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
9
10 Summary:        A System and Service Manager
11 Summary(pl.UTF-8):      systemd - zarządca systemu i usług dla Linuksa
12 Name:           systemd
13 Version:        37
14 Release:        3
15 License:        GPL v2+
16 Group:          Base
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
31 %if %{with gtk}
32 BuildRequires:  glib2-devel >= 1:2.26.1
33 BuildRequires:  gtk+2-devel >= 2:2.24.0
34 BuildRequires:  libnotify-devel >= 0.7.0
35 %endif
36 BuildRequires:  gperf
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
42 BuildRequires:  m4
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
51 Requires:       agetty
52 Requires:       dbus >= 1.3.2
53 Requires:       dbus-systemd
54 Requires:       filesystem >= 4.0
55 Requires:       rc-scripts
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
63 Suggests:       python-dbus
64 Suggests:       python-modules
65 Suggests:       rsyslog-systemd
66 Provides:       udev-acl
67 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
68
69 %define         _libexecdir     %{_prefix}/lib
70
71 %description
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.
80
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
90 sysvinit.
91
92 %package init
93 Summary:        systemd /sbin/init and LSB/SysV compatibility symlinks
94 Group:          Base
95 Requires:       systemd
96 Provides:       readahead = 1:1.5.7-3
97 Provides:       virtual(init-daemon)
98 Obsoletes:      SysVinit
99 Obsoletes:      readahead < 1:1.5.7-3
100 Obsoletes:      virtual(init-daemon)
101
102 %description init
103 Install this package when you are ready to final switch to systemd.
104
105 %package units
106 Summary:        Configuration files, directories and installation tool for systemd
107 Group:          Base
108 Requires(post): coreutils
109 Requires(post): gawk
110 Requires:       pkgconfig
111
112 %description units
113 Basic configuration files, directories and installation tool for the
114 systemd system and service manager.
115
116 This is common config, use %{_sysconfdir}/systemd/system to override.
117
118 %package gtk
119 Summary:        Graphical frontend for systemd
120 Group:          Base
121 Requires:       %{name} = %{version}-%{release}
122 Requires:       polkit
123
124 %description gtk
125 Graphical front-end for systemd.
126
127 %package -n bash-completion-systemd
128 Summary:        bash-completion for systemd
129 Group:          Applications/Shells
130 Requires:       %{name}
131 Requires:       bash-completion
132
133 %description -n bash-completion-systemd
134 bash-completion for systemd.
135
136 %package libs
137 Summary:        Shared systemd library
138 Group:          Libraries
139
140 %description libs
141 Shared systemd library.
142
143 %package devel
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}
148
149 %description devel
150 Header files for systemd libraries.
151
152 %description devel -l pl.UTF-8
153 Pliki nagłówkowe bibliotek systemd.
154
155 %prep
156 %setup -q
157 %patch0 -p1
158 %patch1 -p1
159 %patch2 -p1
160 cp -p %{SOURCE2} src/systemd_booted.c
161
162 %build
163 %{__aclocal} -I m4
164 %{__autoconf}
165 %{__autoheader}
166 %{__automake}
167 %configure \
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 \
175         --disable-static \
176         --with-rootdir=
177
178 %{__make}
179 ./libtool --mode=link --tag=CC %{__cc} %{rpmcppflags} %{rpmcflags} -o systemd_booted %{rpmldflags} src/systemd_booted.c -L. -lsystemd-daemon
180
181 %install
182 rm -rf $RPM_BUILD_ROOT
183
184 %{__make} install \
185         DESTDIR=$RPM_BUILD_ROOT
186
187 ./libtool --mode=install install -m755 systemd_booted $RPM_BUILD_ROOT/bin/systemd_booted
188
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
192 done
193
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
204
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
207
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
211
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
217
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
223
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}
226
227 # Install SysV conversion tool for systemd
228 install -p %{SOURCE1} $RPM_BUILD_ROOT%{_bindir}
229
230 install -d $RPM_BUILD_ROOT/var/log
231 :> $RPM_BUILD_ROOT/var/log/btmp
232 :> $RPM_BUILD_ROOT/var/log/wtmp
233
234 %if %{without gtk}
235 %{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/systemadm.1*
236 %endif
237
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
241
242 %clean
243 rm -rf $RPM_BUILD_ROOT
244
245 %post
246 /bin/systemd-machine-id-setup > /dev/null 2>&1 || :
247 /bin/systemctl daemon-reexec > /dev/null 2>&1 || :
248
249 %postun
250 if [ $1 -ge 1 ]; then
251         /bin/systemctl try-restart systemd-logind.service >/dev/null 2>&1 || :
252 fi
253
254 %post   libs -p /sbin/ldconfig
255 %postun libs -p /sbin/ldconfig
256
257 %post units
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"
263         else
264                 target="/lib/systemd/system/runlevel$runlevel.target"
265         fi
266
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 || :
269
270         # Enable the services we install by default.
271         /bin/systemctl enable \
272                 getty@.service \
273                 remote-fs.target \
274                 systemd-readahead-replay.service \
275                 systemd-readahead-collect.service >/dev/null 2>&1 || :
276 fi
277
278 %preun units
279 if [ $1 -eq 0 ] ; then
280         /bin/systemctl disable \
281                 getty@.service \
282                 remote-fs.target \
283                 systemd-readahead-replay.service \
284                 systemd-readahead-collect.service >/dev/null 2>&1 || :
285
286         %{__rm} -f %{_sysconfdir}/systemd/system/default.target >/dev/null 2>&1 || :
287 fi
288
289 %postun units
290 if [ $1 -ge 1 ]; then
291         /bin/systemctl daemon-reload > /dev/null 2>&1 || :
292 fi
293
294 %files
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
311 /etc/xdg/systemd
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
381
382 %if %{with pam}
383 %attr(755,root,root) /%{_lib}/security/pam_systemd.so
384 %{_mandir}/man8/pam_systemd.8*
385 %endif
386
387 %files init
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*
402
403 %files libs
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
409
410 %files units
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
429
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/*
439
440 %if %{with gtk}
441 %files gtk
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*
446 %endif
447
448 %files -n bash-completion-systemd
449 %defattr(644,root,root,755)
450 /etc/bash_completion.d/systemctl-bash-completion.sh
451
452 %files devel
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
This page took 0.071754 seconds and 4 git commands to generate.