]> git.pld-linux.org Git - packages/systemd.git/blob - systemd.spec
- %config for *.wants content not *.wants dir itself
[packages/systemd.git] / systemd.spec
1 # TODO: - move %_libexecdir/tmpfiles.d/* to /etc/tmpfiles.d?
2 #       - 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)
3 #       - separate init subpackage (with symlink), one can switch to
4 #         systemd using init=/bin/systemd with other one installed
5 #       - verify %_sysconfdir usage vs literal '/etc'
6 #       - %post systemd-sysv-convert
7 #
8 # Conditional build:
9 %bcond_without  audit           # without audit support
10 %bcond_without  cryptsetup      # without cryptsetup support
11 %bcond_without  gtk             # build gtk tools
12 %bcond_without  pam             # PAM authentication support
13 %bcond_without  selinux         # without SELinux support
14 %bcond_without  tcpd            # libwrap (tcp_wrappers) support
15
16 Summary:        A System and Service Manager
17 Summary(pl.UTF-8):      systemd - zarządca systemu i usług dla Linuksa
18 Name:           systemd
19 Version:        37
20 Release:        3
21 License:        GPL v2+
22 Group:          Base
23 Source0:        http://www.freedesktop.org/software/systemd/%{name}-%{version}.tar.bz2
24 # Source0-md5:  1435f23be79c8c38d1121c6b150510f3
25 Source1:        %{name}-sysv-convert
26 Source2:        systemd_booted.c
27 Patch0:         target-pld.patch
28 Patch1:         config-pld.patch
29 Patch2:         shut-sysv-up.patch
30 URL:            http://www.freedesktop.org/wiki/Software/systemd
31 %{?with_audit:BuildRequires:    audit-libs-devel}
32 BuildRequires:  autoconf >= 2.63
33 BuildRequires:  automake >= 1:1.11
34 %{?with_cryptsetup:BuildRequires:       cryptsetup-luks-devel}
35 BuildRequires:  dbus-devel >= 1.3.2
36 BuildRequires:  docbook-style-xsl
37 %if %{with gtk}
38 BuildRequires:  glib2-devel >= 1:2.26.1
39 BuildRequires:  gtk+2-devel >= 2:2.24.0
40 BuildRequires:  libnotify-devel >= 0.7.0
41 %endif
42 BuildRequires:  gperf
43 BuildRequires:  libcap-devel
44 %{?with_selinux:BuildRequires:  libselinux-devel}
45 BuildRequires:  libtool >= 2:2.2
46 %{?with_tcpd:BuildRequires:     libwrap-devel}
47 BuildRequires:  libxslt-progs
48 BuildRequires:  m4
49 %{?with_pam:BuildRequires:      pam-devel}
50 BuildRequires:  pkgconfig >= 0.9.0
51 BuildRequires:  rpmbuild(macros) >= 1.527
52 BuildRequires:  udev-devel >= 172
53 BuildRequires:  vala >= 0.10.0
54 Requires:       %{name}-libs = %{version}-%{release}
55 Requires:       %{name}-units = %{version}-%{release}
56 Requires:       SysVinit-tools
57 Requires:       agetty
58 Requires:       dbus >= 1.3.2
59 Requires:       dbus-systemd
60 Requires:       filesystem >= 4.0
61 Requires:       rc-scripts
62 Requires:       setup >= 2.8.0-2
63 Requires:       udev-core >= 1:172
64 Requires:       udev-systemd >= 1:172
65 Requires:       udev-libs >= 1:172
66 Suggests:       ConsoleKit-systemd
67 Suggests:       fsck >= 2.20
68 # python modules required by systemd-analyze
69 Suggests:       python-dbus
70 Suggests:       python-modules
71 Suggests:       rsyslog-systemd
72 Provides:       readahead = 1:1.5.7-3
73 Provides:       udev-acl
74 Provides:       virtual(init-daemon)
75 Obsoletes:      SysVinit
76 Obsoletes:      readahead < 1:1.5.7-3
77 Obsoletes:      virtual(init-daemon)
78 BuildRoot:      %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
79
80 %define         _libexecdir     %{_prefix}/lib
81
82 %description
83 systemd is a system and service manager for Linux, compatible with
84 SysV and LSB init scripts. systemd provides aggressive parallelization
85 capabilities, uses socket and D-Bus activation for starting services,
86 offers on-demand starting of daemons, keeps track of processes using
87 Linux cgroups, supports snapshotting and restoring of the system
88 state, maintains mount and automount points and implements an
89 elaborate transactional dependency-based service control logic. It can
90 work as a drop-in replacement for sysvinit.
91
92 %description -l pl.UTF-8
93 systemd jest zarządcą systemu i usług dla Linuksa, kompatybilny ze
94 skryptami SysV i LSB. systemd udostępnia rozbudowane zdolności
95 paralelizacji, do uruchamiania usług używa socketów oraz D-Busa,
96 oferuje uruchamianie usług na życzenie, monitoruje procesy używając
97 linuksowych cgroups, wspomaga zapisywanie (snapshot) i odczytywanie
98 (restore) stanu systemu, zarządza (auto)mount pointami oraz
99 implementuje starannie opracowaną transakcjonalną, bazującą na
100 zależnościach logikę kontroli usług. Może pracować jako zastępca dla
101 sysvinit.
102
103 %package units
104 Summary:        Configuration files, directories and installation tool for systemd
105 Group:          Base
106 Requires(post): coreutils
107 Requires(post): gawk
108 Requires:       pkgconfig
109
110 %description units
111 Basic configuration files, directories and installation tool for the
112 systemd system and service manager.
113
114 This is common config, use /etc/systemd/system to override.
115
116 %package gtk
117 Summary:        Graphical frontend for systemd
118 Group:          Base
119 Requires:       %{name} = %{version}-%{release}
120 Requires:       polkit
121
122 %description gtk
123 Graphical front-end for systemd.
124
125 %package -n bash-completion-systemd
126 Summary:        bash-completion for systemd
127 Group:          Applications/Shells
128 Requires:       %{name}
129 Requires:       bash-completion
130
131 %description -n bash-completion-systemd
132 bash-completion for systemd.
133
134 %package libs
135 Summary:        Shared systemd library
136 Group:          Libraries
137
138 %description libs
139 Shared systemd library.
140
141 %package devel
142 Summary:        Header files for systemd libraries
143 Summary(pl.UTF-8):      Pliki nagłówkowe bibliotek systemd
144 Group:          Development/Libraries
145 Requires:       %{name}-libs = %{version}-%{release}
146
147 %description devel
148 Header files for systemd libraries.
149
150 %description devel -l pl.UTF-8
151 Pliki nagłówkowe bibliotek systemd.
152
153 %prep
154 %setup -q
155 %patch0 -p1
156 %patch1 -p1
157 %patch2 -p1
158 cp -p %{SOURCE2} src/systemd_booted.c
159
160 %build
161 %{__aclocal} -I m4
162 %{__autoconf}
163 %{__autoheader}
164 %{__automake}
165 %configure \
166         %{__enable_disable audit} \
167         %{__enable_disable cryptsetup libcryptsetup} \
168         %{__enable_disable gtk} \
169         %{__enable_disable pam} \
170         %{__enable_disable selinux} \
171         %{__enable_disable tcpd tcpwrap} \
172         --disable-silent-rules \
173         --disable-static \
174         --with-rootdir=
175
176 %{__make}
177 ./libtool --mode=link --tag=CC %{__cc} %{rpmcppflags} %{rpmcflags} -o systemd_booted %{rpmldflags} src/systemd_booted.c -L. -lsystemd-daemon
178
179 %install
180 rm -rf $RPM_BUILD_ROOT
181
182 %{__make} install \
183         DESTDIR=$RPM_BUILD_ROOT
184
185 ./libtool --mode=install install -m755 systemd_booted $RPM_BUILD_ROOT/bin/systemd_booted
186
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
190 done
191
192 # Create SysV compatibility symlinks. systemctl/systemd are smart
193 # enough to detect the way they were 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
202
203 ln -s ../modules $RPM_BUILD_ROOT%{_sysconfdir}/modules-load.d/modules.conf
204
205 # All wants links are created at %post to make sure they are not owned
206 # and hence overriden by rpm if the user deletes them (missingok?)
207 %{__rm} -r $RPM_BUILD_ROOT%{_sysconfdir}/systemd/system/*.target.wants
208
209 # do not cover /media (system-specific removable mountpoints) for now
210 # needs %post code to convert existing /media structure to tmpfiles
211 %{__rm} -f $RPM_BUILD_ROOT/lib/systemd/local-fs.target.wants/media.mount
212 # do not cover /var/run until packages need rpm-provided-only subdirectories
213 %{__rm} -f $RPM_BUILD_ROOT/lib/systemd/local-fs.target.wants/var-run.mount
214
215 # Make sure these directories are properly owned:
216 #       - halt,kexec,poweroff,reboot: generic ones used by ConsoleKit-systemd,
217 #       - syslog _might_ be used by some syslog implementation (none for now),
218 #       - isn't dbus populated by dbus-systemd only (so to be moved there)?
219 #       - default should be left intact by distro packages, shouldn't it?
220 install -d $RPM_BUILD_ROOT/lib/systemd/system/{dbus,default,halt,kexec,poweroff,reboot,syslog}.target.wants
221
222 # Create new-style configuration files so that we can ghost-own them
223 touch $RPM_BUILD_ROOT%{_sysconfdir}/{hostname,locale.conf,machine-id,machine-info,os-release,timezone,vconsole.conf}
224
225 # Install SysV conversion tool for systemd
226 install -p %{SOURCE1} $RPM_BUILD_ROOT%{_bindir}
227
228 install -d $RPM_BUILD_ROOT/var/log
229 > $RPM_BUILD_ROOT/var/log/btmp
230 > $RPM_BUILD_ROOT/var/log/wtmp
231
232 %if %{without gtk}
233 # to shut up check-files
234 %{__rm} $RPM_BUILD_ROOT%{_bindir}/systemadm
235 %{__rm} $RPM_BUILD_ROOT%{_bindir}/systemd-gnome-ask-password-agent
236 %{__rm} $RPM_BUILD_ROOT%{_mandir}/man1/systemadm.1*
237 %endif
238
239 %{__rm} -r $RPM_BUILD_ROOT%{_docdir}/%{name}
240 %{__rm} $RPM_BUILD_ROOT/%{_lib}/security/pam_systemd.la
241 %{__rm} $RPM_BUILD_ROOT%{_libdir}/*.la
242
243 %clean
244 rm -rf $RPM_BUILD_ROOT
245
246 %post
247 /bin/systemd-machine-id-setup > /dev/null 2>&1 || :
248 /bin/systemctl daemon-reexec > /dev/null 2>&1 || :
249
250 %postun
251 if [ $1 -ge 1 ]; then
252         /bin/systemctl try-restart systemd-logind.service >/dev/null 2>&1 || :
253 fi
254
255 %post   libs -p /sbin/ldconfig
256 %postun libs -p /sbin/ldconfig
257
258 %post units
259 if [ $1 -eq 1 ]; then
260         # Try to read default runlevel from the old inittab if it exists
261         runlevel=$(/bin/awk -F ':' '$3 == "initdefault" && $1 !~ "^#" { print $2 }' /etc/inittab 2> /dev/null)
262         if [ -z "$runlevel" ] ; then
263                 target="/lib/systemd/system/graphical.target"
264         else
265                 target="/lib/systemd/system/runlevel$runlevel.target"
266         fi
267
268         # And symlink what we found to the new-style default.target
269         ln -sf "$target" /etc/systemd/system/default.target >/dev/null 2>&1 || :
270
271         # Enable the services we install by default.
272         /bin/systemctl enable \
273                 getty@.service \
274                 remote-fs.target \
275                 systemd-readahead-replay.service \
276                 systemd-readahead-collect.service >/dev/null 2>&1 || :
277 fi
278
279 %preun units
280 if [ $1 -eq 0 ] ; then
281         /bin/systemctl disable \
282                 getty@.service \
283                 remote-fs.target \
284                 systemd-readahead-replay.service \
285                 systemd-readahead-collect.service >/dev/null 2>&1 || :
286
287         %{__rm} -f /etc/systemd/system/default.target >/dev/null 2>&1 || :
288 fi
289
290 %postun units
291 if [ $1 -ge 1 ]; then
292         /bin/systemctl daemon-reload > /dev/null 2>&1 || :
293 fi
294
295 %files
296 %defattr(644,root,root,755)
297 %doc DISTRO_PORTING README TODO
298 /etc/dbus-1/system.d/org.freedesktop.hostname1.conf
299 /etc/dbus-1/system.d/org.freedesktop.locale1.conf
300 /etc/dbus-1/system.d/org.freedesktop.login1.conf
301 /etc/dbus-1/system.d/org.freedesktop.systemd1.conf
302 /etc/dbus-1/system.d/org.freedesktop.timedate1.conf
303 %ghost %config(noreplace) %{_sysconfdir}/machine-id
304 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/hostname
305 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/locale.conf
306 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/machine-info
307 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/os-release
308 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/timezone
309 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/vconsole.conf
310 %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/systemd/*.conf
311 %dir %{_sysconfdir}/systemd/user
312 /etc/xdg/systemd
313 %attr(755,root,root) /bin/systemd
314 %attr(755,root,root) /bin/systemd-ask-password
315 %attr(755,root,root) /bin/systemd-loginctl
316 %attr(755,root,root) /bin/systemd-machine-id-setup
317 %attr(755,root,root) /bin/systemd-notify
318 %attr(755,root,root) /bin/systemd-tty-ask-password-agent
319 %attr(755,root,root) %{_bindir}/systemd-analyze
320 %attr(755,root,root) %{_bindir}/systemd-cgls
321 %attr(755,root,root) %{_bindir}/systemd-nspawn
322 %attr(755,root,root) %{_bindir}/systemd-stdio-bridge
323 %attr(755,root,root) %{_bindir}/systemd-sysv-convert
324 %attr(755,root,root) /sbin/halt
325 %attr(755,root,root) /sbin/init
326 %attr(755,root,root) /sbin/poweroff
327 %attr(755,root,root) /sbin/reboot
328 %attr(755,root,root) /sbin/runlevel
329 %attr(755,root,root) /sbin/shutdown
330 %attr(755,root,root) /sbin/telinit
331 %attr(755,root,root) /lib/systemd/systemd-*
332 %dir /lib/systemd/system-generators
333 %attr(755,root,root) /lib/systemd/system-generators/systemd-*-generator
334 %dir /lib/systemd/system-shutdown
335 /lib/udev/rules.d/99-systemd.rules
336 /lib/udev/rules.d/70-uaccess.rules
337 /lib/udev/rules.d/71-seat.rules
338 /lib/udev/rules.d/73-seat-late.rules
339 %dir %{_libexecdir}/systemd
340 %{_libexecdir}/systemd/user
341 %dir %{_libexecdir}/systemd/user-generators
342 %config(noreplace,missingok) %{_libexecdir}/tmpfiles.d/*.conf
343 %{_datadir}/dbus-1/interfaces/org.freedesktop.hostname1.xml
344 %{_datadir}/dbus-1/interfaces/org.freedesktop.locale1.xml
345 %{_datadir}/dbus-1/interfaces/org.freedesktop.systemd1.*.xml
346 %{_datadir}/dbus-1/interfaces/org.freedesktop.timedate1.xml
347 %{_datadir}/dbus-1/services/org.freedesktop.systemd1.service
348 %{_datadir}/dbus-1/system-services/org.freedesktop.hostname1.service
349 %{_datadir}/dbus-1/system-services/org.freedesktop.locale1.service
350 %{_datadir}/dbus-1/system-services/org.freedesktop.login1.service
351 %{_datadir}/dbus-1/system-services/org.freedesktop.systemd1.service
352 %{_datadir}/dbus-1/system-services/org.freedesktop.timedate1.service
353 %{_datadir}/polkit-1/actions/org.freedesktop.hostname1.policy
354 %{_datadir}/polkit-1/actions/org.freedesktop.locale1.policy
355 %{_datadir}/polkit-1/actions/org.freedesktop.login1.policy
356 %{_datadir}/polkit-1/actions/org.freedesktop.systemd1.policy
357 %{_datadir}/polkit-1/actions/org.freedesktop.timedate1.policy
358 %dir %{_datadir}/systemd
359 %{_datadir}/systemd/kbd-model-map
360 %{_mandir}/man1/init.1
361 %{_mandir}/man1/systemd.1*
362 %{_mandir}/man1/systemd-*.1*
363 %{_mandir}/man3/sd_booted.3*
364 %{_mandir}/man3/sd_is_fifo.3*
365 %{_mandir}/man3/sd_is_socket.3
366 %{_mandir}/man3/sd_is_socket_inet.3
367 %{_mandir}/man3/sd_is_socket_unix.3
368 %{_mandir}/man3/sd_listen_fds.3*
369 %{_mandir}/man3/sd_notify.3*
370 %{_mandir}/man3/sd_notifyf.3
371 %{_mandir}/man3/sd_readahead.3*
372 %{_mandir}/man5/binfmt.d.5*
373 %{_mandir}/man5/hostname.5*
374 %{_mandir}/man5/locale.conf.5*
375 %{_mandir}/man5/machine-id.5*
376 %{_mandir}/man5/machine-info.5*
377 %{_mandir}/man5/modules-load.d.5*
378 %{_mandir}/man5/os-release.5*
379 %{_mandir}/man5/sysctl.d.5*
380 %{_mandir}/man5/systemd.*.5*
381 %{_mandir}/man5/systemd-logind.conf.5*
382 %{_mandir}/man5/timezone.5*
383 %{_mandir}/man5/vconsole.conf.5*
384 %{_mandir}/man7/daemon.7*
385 %{_mandir}/man7/sd-daemon.7*
386 %{_mandir}/man7/sd-readahead.7*
387 %{_mandir}/man7/systemd.special.7*
388 %{_mandir}/man8/halt.8*
389 %{_mandir}/man8/poweroff.8
390 %{_mandir}/man8/reboot.8
391 %{_mandir}/man8/runlevel.8*
392 %{_mandir}/man8/shutdown.8*
393 %{_mandir}/man8/telinit.8*
394 %attr(640,root,root) %ghost /var/log/btmp
395 %attr(664,root,utmp) %ghost /var/log/wtmp
396
397 %if %{with pam}
398 %attr(755,root,root) /%{_lib}/security/pam_systemd.so
399 %{_mandir}/man8/pam_systemd.8*
400 %endif
401
402 %files libs
403 %defattr(644,root,root,755)
404 %attr(755,root,root) /%{_lib}/libsystemd-daemon.so.*.*.*
405 %attr(755,root,root) %ghost /%{_lib}/libsystemd-daemon.so.0
406 %attr(755,root,root) /%{_lib}/libsystemd-login.so.*.*.*
407 %attr(755,root,root) %ghost /%{_lib}/libsystemd-login.so.0
408
409 %files units
410 %defattr(644,root,root,755)
411 %dir %{_sysconfdir}/binfmt.d
412 %dir %{_sysconfdir}/modules-load.d
413 %config(noreplace,missingok) %verify(not md5 mtime size) %{_sysconfdir}/modules-load.d/modules.conf
414 %dir %{_sysconfdir}/sysctl.d
415 %dir %{_sysconfdir}/systemd
416 %dir %{_sysconfdir}/systemd/system
417 %dir %{_sysconfdir}/tmpfiles.d
418 %dir %{_libexecdir}/binfmt.d
419 %dir %{_libexecdir}/modules-load.d
420 %dir %{_libexecdir}/sysctl.d
421 %attr(755,root,root) /bin/systemctl
422 %attr(755,root,root) /bin/systemd-tmpfiles
423 %attr(755,root,root) /bin/systemd_booted
424 %{_mandir}/man1/systemctl.1*
425 %{_mandir}/man5/tmpfiles.d.5*
426 %{_mandir}/man8/systemd-tmpfiles.8*
427 %{_npkgconfigdir}/systemd.pc
428
429 /lib/systemd/system/*.automount
430 /lib/systemd/system/*.mount
431 /lib/systemd/system/*.path
432 /lib/systemd/system/*.service
433 /lib/systemd/system/*.socket
434 /lib/systemd/system/*.target
435 /lib/systemd/system/*.timer
436 %dir /lib/systemd/system/*.wants
437 %config(noreplace,missingok) /lib/systemd/system/*.wants/*
438
439 %if %{with gtk}
440 %files gtk
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*
445 %endif
446
447 %files -n bash-completion-systemd
448 %defattr(644,root,root,755)
449 /etc/bash_completion.d/systemctl-bash-completion.sh
450
451 %files devel
452 %defattr(644,root,root,755)
453 %{_includedir}/%{name}
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
This page took 0.0667450000000001 seconds and 4 git commands to generate.