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