]> git.pld-linux.org Git - packages/systemd.git/blob - systemd.spec
- add static services configuration to units
[packages/systemd.git] / systemd.spec
1 # UNPACKAGED files:
2 #   /etc/hostname
3 #   /etc/locale.conf
4 #   /etc/machine-info
5 #   /etc/os-release
6 #   /etc/timezone
7 #   /etc/vconsole.conf
8 #
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'
14 #
15 # Conditional build:
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
22
23 Summary:        A System and Service Manager
24 Summary(pl.UTF-8):      systemd - zarządca systemu i usług dla Linuksa
25 Name:           systemd
26 Version:        37
27 Release:        0.7
28 License:        GPL v2+
29 Group:          Base
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
42 %if %{with gtk}
43 BuildRequires:  glib2-devel >= 1:2.26.1
44 BuildRequires:  gtk+2-devel >= 2:2.24.0
45 BuildRequires:  libnotify-devel >= 0.7.0
46 %endif
47 BuildRequires:  gperf
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
53 BuildRequires:  m4
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
62 Requires:       agetty
63 Requires:       dbus >= 1.3.2
64 Requires:       dbus-systemd
65 Requires:       filesystem >= 4.0
66 # python modules required by systemd-analyze
67 Requires:       python-dbus
68 Requires:       python-modules
69 Requires:       rc-scripts
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)
83
84 %define         _libexecdir     %{_prefix}/lib
85
86 %description
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.
95
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
105 sysvinit.
106
107 %package units
108 Summary:        Configuration files, directories and installation tool for systemd
109 Group:          Base
110 Requires(post): coreutils
111 Requires(post): gawk
112 Requires:       pkgconfig
113
114 %description units
115 Basic configuration files, directories and installation tool for the
116 systemd system and service manager.
117
118 This is distro specific config, to override 
119 use /etc/systemd/system
120
121 %package gtk
122 Summary:        Graphical frontend for systemd
123 Group:          Base
124 Requires:       %{name} = %{version}-%{release}
125 Requires:       polkit
126
127 %description gtk
128 Graphical front-end for systemd.
129
130 %package -n bash-completion-systemd
131 Summary:        bash-completion for systemd
132 Group:          Applications/Shells
133 Requires:       %{name}
134 Requires:       bash-completion
135
136 %description -n bash-completion-systemd
137 bash-completion for systemd.
138
139 %package libs
140 Summary:        Shared systemd library
141 Group:          Libraries
142
143 %description libs
144 Shared systemd library.
145
146 %package devel
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}
151
152 %description devel
153 Header files for systemd libraries.
154
155 %description devel -l pl.UTF-8
156 Pliki nagłówkowe bibliotek systemd.
157
158 %prep
159 %setup -q
160 %patch0 -p1
161 %patch1 -p1
162
163 %build
164 %{__aclocal} -I m4
165 %{__autoconf}
166 %{__autoheader}
167 %{__automake}
168 %configure \
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 \
176         --disable-static \
177         --with-rootdir=
178
179 %{__make}
180
181 %install
182 rm -rf $RPM_BUILD_ROOT
183
184 %{__make} install \
185         DESTDIR=$RPM_BUILD_ROOT
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 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
202
203 ln -s ../modules $RPM_BUILD_ROOT%{_sysconfdir}/modules-load.d/modules.conf
204
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
207 # them.
208 %{__rm} -r $RPM_BUILD_ROOT%{_sysconfdir}/systemd/system/*.target.wants
209
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
215
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
218
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}
221
222 # Install SysV conversion tool for systemd
223 install -p %{SOURCE1} $RPM_BUILD_ROOT%{_bindir}
224
225 install -d $RPM_BUILD_ROOT/var/log
226 > $RPM_BUILD_ROOT/var/log/btmp
227 > $RPM_BUILD_ROOT/var/log/wtmp
228
229 %if %{without gtk}
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*
234 %endif
235
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
239
240 %clean
241 rm -rf $RPM_BUILD_ROOT
242
243 %post
244 /bin/systemd-machine-id-setup > /dev/null 2>&1 || :
245 /bin/systemctl daemon-reexec > /dev/null 2>&1 || :
246
247 %postun
248 if [ $1 -ge 1 ]; then
249         /bin/systemctl try-restart systemd-logind.service >/dev/null 2>&1 || :
250 fi
251
252 %post   libs -p /sbin/ldconfig
253 %postun libs -p /sbin/ldconfig
254
255 %post units
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"
261         else
262                 target="/lib/systemd/system/runlevel$runlevel.target"
263         fi
264
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 || :
267
268         # Enable the services we install by default.
269         /bin/systemctl enable \
270                 getty@.service \
271                 remote-fs.target \
272                 systemd-readahead-replay.service \
273                 systemd-readahead-collect.service >/dev/null 2>&1 || :
274 fi
275
276 %preun units
277 if [ $1 -eq 0 ] ; then
278         /bin/systemctl disable \
279                 getty@.service \
280                 remote-fs.target \
281                 systemd-readahead-replay.service \
282                 systemd-readahead-collect.service >/dev/null 2>&1 || :
283
284         %{__rm} -f /etc/systemd/system/default.target >/dev/null 2>&1 || :
285 fi
286
287 %postun units
288 if [ $1 -ge 1 ]; then
289         /bin/systemctl daemon-reload > /dev/null 2>&1 || :
290 fi
291
292 %files
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
303 /etc/xdg/systemd
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
390
391 %if %{with pam}
392 %attr(755,root,root) /%{_lib}/security/pam_systemd.so
393 %{_mandir}/man8/pam_systemd.8*
394 %endif
395
396 %files libs
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
402
403 %files units
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
421
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
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}/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
This page took 0.123141 seconds and 4 git commands to generate.