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