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