a851712d1dfc86002a36856d7ef955c0cc7e7ef4
[external/systemd.git] / packaging / systemd.spec
1 %define _sbindir /sbin
2 Name:       systemd
3 Summary:    System and Session Manager
4 Version:    43
5 Release:    1
6 Group:      System/System Control
7 License:    GPLv2
8 URL:        http://www.freedesktop.org/wiki/Software/systemd
9 Source0:    http://www.freedesktop.org/software/systemd/%{name}-%{version}.tar.xz
10 Source1:    pamconsole-tmp.conf
11 Source1001: systemd.manifest
12 Patch1:     0002-systemd-fsck-disable-l-until-linux.patch
13 Patch2:     add-tmp.mount-as-tmpfs.patch
14 Patch3:     tizen-login-location.patch
15 Patch4:     tizen-service-file-workaround.patch
16
17 BuildRequires:  pkgconfig(dbus-1) >= 1.4.0
18 BuildRequires:  pkgconfig(dbus-glib-1)
19 BuildRequires:  pkgconfig(gio-unix-2.0)
20 BuildRequires:  pkgconfig(libudev) >= 174
21 BuildRequires:  libcap-devel
22 BuildRequires:  gperf
23 BuildRequires:  libxslt
24 BuildRequires:  docbook-dtds
25 BuildRequires:  docbook-xsl
26 BuildRequires:  pam-devel
27 BuildRequires:  intltool >= 0.40.0
28 BuildRequires:  libacl-devel
29 BuildRequires:  fdupes
30 BuildRequires:  pkgconfig(libkmod)
31 Requires(post): %{_sbindir}/ldconfig
32 Requires(postun): %{_sbindir}/ldconfig
33
34 %description
35 system and session manager for Linux, compatible with SysV and
36 LSB init scripts. systemd provides aggressive parallelization
37 capabilities, uses socket and D-Bus activation for starting
38 services, offers on-demand starting of daemons, keeps track of
39 processes using Linux cgroups, supports snapshotting and restoring
40 of the system state, maintains mount and automount points and
41 implements an elaborate transactional dependency-based service
42 control logic. It can work as a drop-in replacement for sysvinit.
43
44 %package tools
45 Summary:    Analyze systemd startup timing
46 Group:      Development/Tools
47 Requires:   pycairo
48 Requires:   python-xml
49 Requires:   %{name} = %{version}-%{release}
50
51 %description tools
52 This package installs the systemd-analyze tool, which allows one to
53 inspect and graph service startup timing in table or graph format.
54
55 %package devel
56 Summary:    Development tools for systemd
57 Group:      Development/Libraries
58 Requires:   %{name} = %{version}-%{release}
59 Requires(post): %{_sbindir}/ldconfig
60 Requires(postun): %{_sbindir}/ldconfig
61
62 %description devel
63 This package includes the libraries and header files you will need
64 to compile applications for systemd.
65
66 %package console-ttyS0
67 Summary:    Systemd console ttyS0
68 Group:      System/System Control
69 Requires:   %{name}
70
71 %description console-ttyS0
72 This package will setup a serial getty for ttyS0 is desired.
73
74
75 %package console-ttyS1
76 Summary:    Systemd console ttyS1
77 Group:      System/System Control
78 Requires:   %{name}
79
80 %description console-ttyS1
81 This package will setup a serial getty for ttyS1 is desired.
82
83
84 %package console-tty01
85 Summary:    Systemd console tty01
86 Group:      System/System Control
87 Requires:   %{name}
88
89 %description console-tty01
90 This package will setup a serial getty for tty01 is desired.
91
92
93 %package console-ttyO2
94 Summary:    Systemd console ttyO2
95 Group:      System/System Control
96 Requires:   %{name}
97
98 %description console-ttyO2
99 This package will setup a serial getty for ttyO2 is desired.
100
101 %package console-ttyMFD2
102 Summary:    Systemd console ttyMFD2
103 Group:      System/System Control
104 Requires:   %{name}
105
106 %description console-ttyMFD2
107 This package will setup a serial getty for ttyMFD2 is desired.
108
109 %package docs
110 Summary:   System and session manager man pages
111 Group:     Development/Libraries
112 Requires:  %{name} = %{version}-%{release}
113
114 %description docs
115 This package includes the man pages for systemd.
116
117
118 %package sysv-docs
119 Summary:   System and session manager man pages - SysV links
120 Group:     Development/Libraries
121 Requires:  %{name} = %{version}-%{release}
122
123 %description sysv-docs
124 This package provides the manual pages needed for systemd
125 to replace sysvinit.
126
127 %package sysv
128 Summary:   System and session manager - SysV links
129 Group:     System/Startup Services
130 Requires:  %{name} = %{version}-%{release}
131
132 %description sysv
133 Systemd is a replacement for sysvinit.  It is dependency-based and
134 able to read the LSB init script headers in addition to parsing rcN.d
135 links as hints.
136
137 It also provides process supervision using cgroups and the ability to
138 not only depend on other init script being started, but also
139 availability of a given mount point or dbus service.
140
141 This package provides the links needed for systemd
142 to replace sysvinit.
143
144
145 %prep
146 %setup -q -n %{name}-%{version}
147 %patch1 -p1
148 %patch2 -p1
149 %patch3 -p1
150 %patch4 -p1
151
152 %build
153 cp %{SOURCE1001} .
154 %configure --disable-static \
155     --with-rootdir="" \
156     --with-distro=meego \
157     --disable-gtk \
158     --disable-selinux \
159     --disable-tcpwrap \
160     --enable-manpages \
161     --with-pamlibdir="/%{_libdir}/security" \
162     --with-udevrulesdir="%{_libdir}/udev/rules.d"
163
164 make %{?_smp_mflags}
165
166 %install
167 %make_install
168
169 # Create SysV compatibility symlinks. systemctl/systemd are smart
170 # enough to detect in which way they are called.
171 install -d %{buildroot}%{_sbindir}/
172 ln -s ..%{_libdir}/systemd/systemd %{buildroot}%{_sbindir}/init
173 ln -s ..%{_bindir}/systemctl %{buildroot}%{_sbindir}/halt
174 ln -s ..%{_bindir}/systemctl %{buildroot}%{_sbindir}/poweroff
175 ln -s ..%{_bindir}/systemctl %{buildroot}%{_sbindir}/reboot
176 ln -s ..%{_bindir}/systemctl %{buildroot}%{_sbindir}/runlevel
177 ln -s ..%{_bindir}/systemctl %{buildroot}%{_sbindir}/shutdown
178 ln -s ..%{_bindir}/systemctl %{buildroot}%{_sbindir}/telinit
179
180 # /usr compat - delete when no longer needed
181 install -d %{buildroot}/bin/
182 ln -s ..%{_bindir}/systemctl %{buildroot}/bin/systemctl
183
184 mkdir %{buildroot}/run
185
186 # Make sure these directories are properly owned
187 mkdir -p %{buildroot}%{_libdir}/systemd/system/basic.target.wants
188 mkdir -p %{buildroot}%{_libdir}/systemd/system/dbus.target.wants
189
190 # enable readahead by default
191 ln -s ../systemd-readahead-collect.service %{buildroot}%{_libdir}/systemd/system/sysinit.target.wants/systemd-readahead-collect.service
192 ln -s ../systemd-readahead-replay.service %{buildroot}%{_libdir}/systemd/system/sysinit.target.wants/systemd-readahead-replay.service
193
194 # Don't ship documentation in the wrong place
195 rm %{buildroot}/%{_docdir}/systemd/*
196
197 mkdir -p %{buildroot}/etc/systemd/system/basic.target.wants
198
199 #console-ttyMFD2
200 ln -s ../serial-getty@.service %{buildroot}%{_libdir}/systemd/system/sysinit.target.wants/serial-getty@ttyMFD2.service
201
202 #console-ttyS0
203 ln -s ../serial-getty@.service %{buildroot}%{_libdir}/systemd/system/sysinit.target.wants/serial-getty@ttyS0.service
204
205 #console-ttyS1
206 ln -s ../serial-getty@.service %{buildroot}%{_libdir}/systemd/system/sysinit.target.wants/serial-getty@ttyS1.service
207
208 #console-tty01
209 ln -s ../serial-getty@.service %{buildroot}%{_libdir}/systemd/system/sysinit.target.wants/serial-getty@tty01.service
210
211 #console-ttyO2
212 ln -s ../serial-getty@.service %{buildroot}%{_libdir}/systemd/system/sysinit.target.wants/serial-getty@ttyO2.service
213
214 %fdupes  %{buildroot}/%{_datadir}/man/
215
216 %post
217 if [ "`readlink /etc/mtab`" != "/proc/self/mounts" ]; then
218         rm -f /etc/mtab
219         ln -s /proc/self/mounts /etc/mtab
220 fi
221
222 /usr/bin/systemd-machine-id-setup >/dev/null 2>&1 || :
223
224 %{_sbindir}/ldconfig
225
226 %postun -p %{_sbindir}/ldconfig
227 %post devel -p %{_sbindir}/ldconfig
228 %postun devel -p %{_sbindir}/ldconfig
229
230
231 %files
232 %defattr(-,root,root,-)
233 %manifest systemd.manifest
234 /bin/systemctl
235 %{_bindir}/*
236 /run
237 %config %{_libdir}/sysctl.d/coredump.conf
238 %config %{_sysconfdir}/dbus-1/system.d/org.freedesktop.systemd1.conf
239 %config %{_sysconfdir}/dbus-1/system.d/org.freedesktop.hostname1.conf
240 %config %{_sysconfdir}/dbus-1/system.d/org.freedesktop.locale1.conf
241 %config %{_sysconfdir}/dbus-1/system.d/org.freedesktop.login1.conf
242 %config %{_sysconfdir}/dbus-1/system.d/org.freedesktop.timedate1.conf
243 %attr(0644,root,root) %{_libdir}/udev/rules.d/70-uaccess.rules
244 %attr(0644,root,root) %{_libdir}/udev/rules.d/71-seat.rules
245 %attr(0644,root,root) %{_libdir}/udev/rules.d/73-seat-late.rules
246 %config %{_sysconfdir}/systemd
247 %config %{_sysconfdir}/xdg/systemd/user
248 %config %{_sysconfdir}/bash_completion.d/systemd-bash-completion.sh
249 %{_prefix}/%{_lib}/tmpfiles.d/*
250 %{_libdir}/systemd
251 /%{_libdir}/security/pam_systemd.so
252 %{_libdir}/udev/rules.d/99-systemd.rules
253 %{_libdir}/libsystemd-daemon.so.0
254 %{_libdir}/libsystemd-daemon.so.0.0.1
255 %{_libdir}/libsystemd-login.so.0
256 %{_libdir}/libsystemd-login.so.0.2.0
257 %{_libdir}/libsystemd-id128.so.0
258 %{_libdir}/libsystemd-id128.so.0.0.2
259 %{_libdir}/libsystemd-journal.so.0
260 %{_libdir}/libsystemd-journal.so.0.0.2
261 %{_datadir}/dbus-1/*/org.freedesktop.systemd1.*
262 %{_defaultdocdir}/systemd
263 %{_datadir}/polkit-1/actions/org.freedesktop.systemd1.policy
264 %{_datadir}/polkit-1/actions/org.freedesktop.locale1.policy
265 %{_datadir}/polkit-1/actions/org.freedesktop.login1.policy
266 %{_datadir}/polkit-1/actions/org.freedesktop.timedate1.policy
267 %{_datadir}/polkit-1/actions/org.freedesktop.hostname1.policy
268 %{_datadir}/dbus-1/system-services/org.freedesktop.hostname1.service
269 %{_datadir}/dbus-1/system-services/org.freedesktop.locale1.service
270 %{_datadir}/dbus-1/system-services/org.freedesktop.login1.service
271 %{_datadir}/dbus-1/system-services/org.freedesktop.timedate1.service
272 %{_datadir}/dbus-1/interfaces/org.freedesktop.hostname1.xml
273 %{_datadir}/dbus-1/interfaces/org.freedesktop.locale1.xml
274 %{_datadir}/dbus-1/interfaces/org.freedesktop.timedate1.xml
275 %{_mandir}/man1/*
276 %{_mandir}/man3/*
277 %{_mandir}/man5/*
278 %{_mandir}/man7/*
279 %{_mandir}/man8/*
280 %exclude %{_libdir}/systemd/system/sysinit.target.wants/serial-getty@tty01.service
281 %exclude %{_libdir}/systemd/system/sysinit.target.wants/serial-getty@ttyMFD2.service
282 %exclude %{_libdir}/systemd/system/sysinit.target.wants/serial-getty@ttyO2.service
283 %exclude %{_libdir}/systemd/system/sysinit.target.wants/serial-getty@ttyS0.service
284 %exclude %{_libdir}/systemd/system/sysinit.target.wants/serial-getty@ttyS1.service
285 %exclude %{_libdir}/systemd/system/sysinit.target.wants/systemd-vconsole-setup.service
286 %exclude %{_libdir}/systemd/user/default.target
287
288 %files console-ttyMFD2
289 %defattr(-,root,root,-)
290 %{_libdir}/systemd/system/sysinit.target.wants/serial-getty@ttyMFD2.service
291
292 %files console-ttyS0
293 %defattr(-,root,root,-)
294 %{_libdir}/systemd/system/sysinit.target.wants/serial-getty@ttyS0.service
295
296 %files console-ttyS1
297 %defattr(-,root,root,-)
298 %{_libdir}/systemd/system/sysinit.target.wants/serial-getty@ttyS1.service
299
300 %files console-tty01
301 %defattr(-,root,root,-)
302 %{_libdir}/systemd/system/sysinit.target.wants/serial-getty@tty01.service
303
304 %files console-ttyO2
305 %defattr(-,root,root,-)
306 %{_libdir}/systemd/system/sysinit.target.wants/serial-getty@ttyO2.service
307
308
309 %files tools
310 %defattr(-,root,root,-)
311 %manifest systemd.manifest
312 %{_bindir}/systemd-analyze
313
314 %files devel
315 %defattr(-,root,root,-)
316 %manifest systemd.manifest
317 %{_datadir}/pkgconfig/systemd.pc
318 %{_includedir}/systemd/sd-daemon.h
319 %{_includedir}/systemd/sd-login.h
320 %{_includedir}/systemd/sd-id128.h
321 %{_includedir}/systemd/sd-journal.h
322 %{_includedir}/systemd/sd-messages.h
323 %{_libdir}/libsystemd-daemon.so
324 %{_libdir}/libsystemd-login.so
325 %{_libdir}/libsystemd-journal.so
326 %{_libdir}/libsystemd-id128.so
327 %{_libdir}/pkgconfig/libsystemd-daemon.pc
328 %{_libdir}/pkgconfig/libsystemd-login.pc
329 %{_libdir}/pkgconfig/libsystemd-id128.pc
330 %{_libdir}/pkgconfig/libsystemd-journal.pc
331 %{_datadir}/systemd/kbd-model-map
332
333 %files sysv
334 %defattr(-,root,root,-)
335 %doc LICENSE
336 %{_sbindir}/halt
337 %{_sbindir}/init
338 %{_sbindir}/poweroff
339 %{_sbindir}/reboot
340 %{_sbindir}/runlevel
341 %{_sbindir}/shutdown
342 %{_sbindir}/telinit