tizen: Exclude 50-pid-max.conf from movable profile
[platform/upstream/systemd.git] / packaging / systemd.spec
1 # "enable foo" will turn into --enable-foo or --disable-foo
2 # depending "with_foo" macro
3 %define enable() %{expand:%%{?with_%{1}:--enable-%{1}}%%{!?with_%{1}:--disable-%{1}}}
4
5 %define WITH_RANDOMSEED 0
6 %define WITH_BASH_COMPLETION 0
7 %define WITH_ZSH_COMPLETION 0
8 %define WITH_COREDUMP 0
9 %define WITH_BACKLIGHT 0
10 %define WITH_TIMEDATED 0
11 %define WITH_RFKILL 0
12 %define WITH_MACHINED 0
13 %define WITH_DOC 0
14 %define WITH_HOSTNAMED 0
15 %define WITH_VIRT 1
16 %if "%{dev_wos}" == "1"
17 %define WITH_SMACK 0
18 %else
19 %define WITH_SMACK 1
20 %endif
21
22 %define build_dir _build
23 %define dbuspolicydir %{_datadir}/dbus-1
24
25 # The 'meson' macro is defined in rpm macros, but it uses features from rpm 4.15 ({shrink, set_build_flags)
26 # Below is a version suitable for our purposes
27 %define meson \
28         CFLAGS="${CFLAGS:-%optflags}" \
29         export CFLAGS \
30         %{__meson} \\\
31                 --buildtype=plain \\\
32                 --prefix=%{_prefix} \\\
33                 --libdir=%{_libdir} \\\
34                 --libexecdir=%{_libexecdir} \\\
35                 --bindir=%{_bindir} \\\
36                 --sbindir=%{_sbindir} \\\
37                 --includedir=%{_includedir} \\\
38                 --datadir=%{_datadir} \\\
39                 --mandir=%{_mandir} \\\
40                 --infodir=%{_infodir} \\\
41                 --localedir=%{_datadir}/locale \\\
42                 --sysconfdir=%{_sysconfdir} \\\
43                 --localstatedir=%{_localstatedir} \\\
44                 --sharedstatedir=%{_sharedstatedir} \\\
45                 --wrap-mode=%{__meson_wrap_mode} \\\
46                 %{_vpath_builddir}
47
48 # Ninja macros below are defined for ninja in e.g. fedora distro, but
49 # so far they are not provided by Tizen's ninja package.
50 %define __ninja %{_bindir}/ninja
51 %define __ninja_common_opts -v %{?_smp_flags}
52 %define ninja_build %{__ninja} %{__ninja_common_opts}
53 %define ninja_install DESTDIR=%{buildroot} %{__ninja} install %{__ninja_common_opts}
54
55 Name:           systemd
56 Version:        244
57 Release:        0%{?release_flags}
58 # For a breakdown of the licensing, see README
59 License:        LGPL-2.1+ and GPL-2.0+
60 Summary:        A System and Service Manager
61 Url:            http://www.freedesktop.org/wiki/Software/systemd
62 Group:          Base/Startup
63 Source0:        https://github.com/systemd/systemd/archive/v%{version}.tar.gz
64 Source2:        %{name}-rpmlintrc
65 Source3:        test-runner.c
66 Source4:        wait-default-target.sh
67 Source5:        wait-delayed-target.sh
68 Source6:        org.tizen.system.conf
69 Source7:        send-booting-done.c
70 Source8:        wait-target-done.c
71 Source9:        delayed-target-trigger.sh
72 Source1001:     systemd.manifest
73 BuildRequires:  gperf
74 BuildRequires:  intltool >= 0.40.0
75 BuildRequires:  libacl-devel
76 BuildRequires:  libblkid-devel >= 2.20
77 BuildRequires:  libcap-devel
78 BuildRequires:  libgcrypt-devel
79 BuildRequires:  libkmod-devel >= 14
80 %if 0%{?WITH_DOC}
81 BuildRequires:  xsltproc
82 BuildRequires:  docbook-xsl-stylesheets
83 %endif
84 BuildRequires:  pam-devel
85 BuildRequires:  pkgconfig
86 # BuildRequires:  pkgconfig(dbus-1)     # for remove circular dependency on OBS
87 BuildRequires:  pkgconfig(glib-2.0)
88 BuildRequires:  pkgconfig(liblzma)
89 BuildRequires:  pkgconfig(libkmod)
90 BuildRequires:  pkgconfig(mount)
91 BuildRequires:  pkgconfig(libdbuspolicy1)
92 BuildRequires:  pkgconfig(dlog-redirect-stdout)
93 BuildRequires:  meson
94 BuildRequires:  acl
95 BuildRequires:  python
96 BuildRequires:  rsync
97 # Requires:       dbus                  # for remove circular dependency on OBS
98 Requires:       acl
99 Requires:       filesystem
100 Requires(post): coreutils
101 Requires(pre):  coreutils
102 Requires(pre):  /usr/bin/getent
103 Requires(pre):  /usr/sbin/groupadd
104 Requires(post): %{_sbindir}/update-alternatives
105 Requires(preun): %{_sbindir}/update-alternatives
106
107 Obsoletes:      SysVinit < 2.86-24
108 Obsoletes:      sysvinit < 2.86-24
109 Provides:       SysVinit = 2.86-24
110 Provides:       sysvinit = 2.86-24
111 Provides:       /bin/systemctl
112 Provides:       /sbin/shutdown
113 Provides:       udev = %{version}
114 Obsoletes:      udev < 183
115
116 %description
117 systemd is a system and service manager for Linux, compatible with
118 SysV and LSB init scripts. systemd provides aggressive parallelization
119 capabilities, uses socket and D-Bus activation for starting services,
120 offers on-demand starting of daemons, keeps track of processes using
121 Linux cgroups, supports snapshotting and restoring of the system
122 state, maintains mount and automount points and implements an
123 elaborate transactional dependency-based service control logic. It can
124 work as a drop-in replacement for sysvinit.
125
126 %package -n libsystemd
127 License:        LGPL-2.1+
128 Summary:        Systemd libraries
129 Group:          Base/Startup
130 Obsoletes:      libudev < 183
131 Provides:       libudev = %{version}
132 Obsoletes:      systemd < 185-4
133 Conflicts:      systemd < 185-4
134
135 %description -n libsystemd
136 Libraries for systemd and udev, as well as the systemd PAM module.
137
138 %package devel
139 License:        LGPL-2.1+
140 Summary:        Development headers for systemd
141 Requires:       %{name} = %{version}
142 Requires:       libsystemd = %{version}
143 Provides:       libudev-devel = %{version}
144 Obsoletes:      libudev-devel < 183
145
146 %description devel
147 Development headers and auxiliary files for developing applications for systemd.
148
149 %package analyze
150 License:        LGPL-2.1+
151 Summary:        Tool for processing systemd profiling information
152 Requires:       %{name} = %{version}
153 Obsoletes:      systemd < 38-5
154
155 %description analyze
156 'systemd-analyze blame' lists which systemd unit needed how much time to finish
157 initialization at boot.
158 'systemd-analyze plot' renders an SVG visualizing the parallel start of units
159 at boot.
160
161 %package tests
162 License:        LGPL-2.1+ and BSD-2-Clause
163 Summary:        Set of tests for sd-bus component
164 Requires:       %{name} = %{version}
165
166 %description tests
167 This package is part of 'dbus-integratnion-tests' framework and contains set of tests
168 for sd-bus component (DBUS API C library).
169
170 %package extension-kdbus
171 Summary:        Extension for systemd to support KDBUS in Tizen
172 Requires:       %{name} = %{version}-%{release}
173
174 %description extension-kdbus
175 This modifies systemd to support KDBUS in Tizen.
176
177 %prep
178 %setup -q
179
180 %build
181 cp %{SOURCE1001} .
182 cp %{SOURCE3} .
183 cp %{SOURCE7} .
184 cp %{SOURCE8} .
185
186 %define _vpath_srcdir .
187 %define _vpath_builddir %{build_dir}
188 %meson \
189         -Dkdbus=true \
190 %if ! 0%{?WITH_SMACK}
191         -Dsmack=false \
192 %endif
193 %if ! 0%{?WITH_VIRT}
194         -Dvirt=false \
195 %endif
196 %if ! 0%{?WITH_RANDOMSEED}
197         -Drandomseed=false \
198 %endif
199 %if ! 0%{?WITH_COREDUMP}
200         -Dcoredump=false \
201 %endif
202 %if ! 0%{?WITH_BACKLIGHT}
203         -Dbacklight=false \
204 %endif
205 %if ! 0%{?WITH_TIMEDATED}
206         -Dtimedated=false \
207 %endif
208 %if ! 0%{?WITH_RFKILL}
209         -Drfkill=false \
210 %endif
211         -Defi=false \
212         -Dhibernate=false \
213         -Dldconfig=false \
214         -Dhwdb=false \
215         -Dsysusers=false \
216         -Dfirstboot=false \
217         -Dpolkit=false \
218         -Dtimesyncd=false \
219         -Dresolve=false \
220         -Dnetworkd=false \
221 %if ! 0%{?WITH_MACHINED}
222         -Dmachined=false \
223 %endif
224 %if ! 0%{?WITH_HOSTNAMED}
225         -Dhostnamed=false \
226 %endif
227         -Dimportd=false \
228         -Denvironment-d=false \
229         -Dnss-systemd=false \
230         -Dgcrypt=false \
231 %if ! 0%{?WITH_DOC}
232         -Dman=false \
233 %endif
234         -Dportabled=false \
235         -Dpstore=false \
236         -Drpmmacrosdir=%{_sysconfdir}/rpm/ \
237         -Dsysvinit-path="" \
238         -Dsysvrcnd-path="" \
239 %if 0%{?WITH_SMACK}
240         -Dsmack-run-label=System::Privileged \
241 %endif
242 %if "%{mv_prj}" == "1"
243         -Dsysctl-use-pid-max-conf=false \
244 %endif
245         -Dinstall-tests=true \
246         -Ddefault-hierarchy=legacy \
247         -Db_pie=true
248 %meson_build
249
250 # compile test-runner for 'dbus-integration-test' framework
251 %__cc %{_builddir}/%{name}-%{version}/test-runner.c -o %{_builddir}/%{name}-%{version}/systemd-tests
252 %__cc -fPIE -pie %{_builddir}/%{name}-%{version}/send-booting-done.c -o %{_builddir}/%{name}-%{version}/send-booting-done -Isrc -L%{_builddir}/%{name}-%{version}/%{build_dir} -lsystemd
253 %__cc -fPIE -pie %{_builddir}/%{name}-%{version}/wait-target-done.c -o %{_builddir}/%{name}-%{version}/wait-target-done -DRELATIVE_SOURCE_PATH="" -DSIZEOF_TIME_T=4 -Isrc/basic -Isrc/systemd -L%{_builddir}/%{name}-%{version}/%{build_dir} -lsystemd
254
255 %install
256 %meson_install
257 %find_lang %{name}
258 cat <<EOF >> systemd.lang
259 %lang(be) /usr/lib/systemd/catalog/systemd.be.catalog
260 %lang(be) /usr/lib/systemd/catalog/systemd.be@latin.catalog
261 %lang(bg) /usr/lib/systemd/catalog/systemd.bg.catalog
262 %lang(de) /usr/lib/systemd/catalog/systemd.de.catalog
263 %lang(fr) /usr/lib/systemd/catalog/systemd.fr.catalog
264 %lang(it) /usr/lib/systemd/catalog/systemd.it.catalog
265 %lang(pl) /usr/lib/systemd/catalog/systemd.pl.catalog
266 %lang(pt_BR) /usr/lib/systemd/catalog/systemd.pt_BR.catalog
267 %lang(ru) /usr/lib/systemd/catalog/systemd.ru.catalog
268 %lang(zh) /usr/lib/systemd/catalog/systemd.zh_CN.catalog
269 %lang(zh) /usr/lib/systemd/catalog/systemd.zh_TW.catalog
270 EOF
271
272 # udev links
273 /usr/bin/mkdir -p %{buildroot}/%{_sbindir}
274 /usr/bin/ln -sf ../bin/udevadm %{buildroot}%{_sbindir}/udevadm
275 /usr/bin/mkdir -p %{buildroot}%{_prefix}/lib/firmware/updates
276
277 # Create SysV compatibility symlinks. systemctl/systemd are smart
278 # enough to detect in which way they are called.
279 /usr/bin/ln -s ../lib/systemd/systemd %{buildroot}%{_bindir}/systemd
280
281 # legacy links
282 /usr/bin/ln -s loginctl %{buildroot}%{_bindir}/systemd-loginctl
283
284 # Make sure these directories are properly owned
285 /usr/bin/mkdir -p %{buildroot}%{_prefix}/lib/systemd/system/basic.target.wants
286 /usr/bin/mkdir -p %{buildroot}%{_prefix}/lib/systemd/system/default.target.wants
287 /usr/bin/mkdir -p %{buildroot}%{_prefix}/lib/systemd/system/syslog.target.wants
288
289 # Make sure the user generators dir exists too
290 /usr/bin/mkdir -p %{buildroot}%{_prefix}/lib/systemd/system-generators
291 /usr/bin/mkdir -p %{buildroot}%{_prefix}/lib/systemd/user-generators
292
293 # Create new-style configuration files so that we can ghost-own them
294 /usr/bin/touch %{buildroot}%{_sysconfdir}/hostname
295 /usr/bin/touch %{buildroot}%{_sysconfdir}/vconsole.conf
296 /usr/bin/touch %{buildroot}%{_sysconfdir}/locale.conf
297 /usr/bin/touch %{buildroot}%{_sysconfdir}/machine-id
298 /usr/bin/touch %{buildroot}%{_sysconfdir}/machine-info
299 /usr/bin/touch %{buildroot}%{_sysconfdir}/timezone
300
301 /usr/bin/mkdir -p %{buildroot}%{_prefix}/lib/systemd/system-preset/
302 /usr/bin/mkdir -p %{buildroot}%{_prefix}/lib/systemd/user-preset/
303
304 # Make sure the shutdown/sleep drop-in dirs exist
305 /usr/bin/mkdir -p %{buildroot}%{_prefix}/lib/systemd/system-shutdown/
306 /usr/bin/mkdir -p %{buildroot}%{_prefix}/lib/systemd/system-sleep/
307
308 # Make sure the NTP units dir exists
309 /usr/bin/mkdir -p %{buildroot}%{_prefix}/lib/systemd/ntp-units.d/
310
311 # Install modprobe fragment
312 /usr/bin/mkdir -p %{buildroot}%{_sysconfdir}/modprobe.d/
313
314 # Fix the dangling /var/lock -> /run/lock symlink
315 install -Dm644 tmpfiles.d/legacy.conf %{buildroot}%{_prefix}/lib/tmpfiles.d/legacy.conf
316
317 install -m 755 -d %{buildroot}/%{_prefix}/lib/systemd/system
318
319 rm -rf %{buildroot}/%{_docdir}/%{name}
320
321 # Allow replacing systemd-shutdown and some scripts with tizen-specific variant
322 mv %{buildroot}%{_prefix}/lib/systemd/systemd-shutdown %{buildroot}%{_prefix}/lib/systemd/systemd-shutdown-original
323 mv %{buildroot}%{_sbindir}/reboot %{buildroot}%{_sbindir}/reboot-original
324 mv %{buildroot}%{_sbindir}/halt %{buildroot}%{_sbindir}/halt-original
325 mv %{buildroot}%{_sbindir}/poweroff %{buildroot}%{_sbindir}/poweroff-original
326 mv %{buildroot}%{_sbindir}/shutdown %{buildroot}%{_sbindir}/shutdown-original
327 touch %{buildroot}%{_prefix}/lib/systemd/systemd-shutdown
328 touch %{buildroot}%{_sbindir}/reboot
329 touch %{buildroot}%{_sbindir}/halt
330 touch %{buildroot}%{_sbindir}/poweroff
331 touch %{buildroot}%{_sbindir}/shutdown
332
333 # Disable some useless services in Tizen
334 rm -rf %{buildroot}/%{_prefix}/lib/systemd/system/sysinit.target.wants/dev-hugepages.mount
335 rm -rf %{buildroot}/%{_prefix}/lib/systemd/system/sysinit.target.wants/sys-fs-fuse-connections.mount
336 rm -rf %{buildroot}/%{_prefix}/lib/systemd/system/sysinit.target.wants/systemd-binfmt.service
337 rm -rf %{buildroot}/%{_prefix}/lib/systemd/system/sysinit.target.wants/systemd-modules-load.service
338 rm -rf %{buildroot}/%{_prefix}/lib/systemd/system/sysinit.target.wants/systemd-ask-password-console.path
339 rm -rf %{buildroot}/%{_prefix}/lib/systemd/system/sysinit.target.wants/systemd-update-utmp.service
340 rm -rf %{buildroot}/%{_prefix}/lib/systemd/system/multi-user.target.wants/systemd-ask-password-wall.path
341 rm -rf %{buildroot}/%{_prefix}/lib/systemd/system/systemd-update-utmp.service
342 rm -rf %{buildroot}/%{_prefix}/lib/systemd/system/systemd-volatile-root.service
343 rm -rf %{buildroot}/%{_prefix}/lib/systemd/system/systemd-tmpfiles-clean.timer
344 rm -rf %{buildroot}/%{_prefix}/lib/systemd/system/systemd-tmpfiles-clean.service
345 rm -rf %{buildroot}/%{_prefix}/lib/systemd/system/timers.target.wants/systemd-tmpfiles-clean.timer
346 rm -rf %{buildroot}/%{_prefix}/lib/systemd/user/systemd-tmpfiles-clean.timer
347 rm -rf %{buildroot}/%{_prefix}/lib/systemd/user/systemd-tmpfiles-clean.service
348 rm -rf %{buildroot}/%{_prefix}/lib/systemd/user/systemd-tmpfiles-setup.service
349
350 # Drop kernel-install as it's not used by Tizen kernel scripts
351 rm -rf %{buildroot}/%{_bindir}/kernel-install
352 rm -rf %{buildroot}/%{_prefix}/lib/kernel
353
354 # Exclude ELF binaries
355 rm -f %{buildroot}/%{_prefix}/lib/systemd/systemd-update-utmp
356 rm -f %{buildroot}/%{_prefix}/lib/systemd/systemd-volatile-root
357 rm -f %{buildroot}/%{_prefix}/lib/systemd/systemd-remount-fs
358 rm -f %{buildroot}/%{_prefix}/lib/systemd/system-generators/systemd-fstab-generator
359 rm -f %{buildroot}/%{_prefix}/lib/systemd/system-generators/systemd-debug-generator
360 rm -f %{buildroot}/%{_prefix}/lib/systemd/system-generators/systemd-gpt-auto-generator
361 rm -f %{buildroot}/%{_prefix}/lib/systemd/system-generators/systemd-run-generator
362
363 # Marker file for kdbus
364 touch %{buildroot}/%{_sysconfdir}/systemd/extension-kdbus
365
366 # Prepare tests for 'dbus-integration-test' framework
367 install -D -m 755 %{_builddir}/%{name}-%{version}/systemd-tests %{buildroot}%{_prefix}/lib/dbus-tests/runner/systemd-tests
368 mkdir -p %{buildroot}%{_prefix}/lib/dbus-tests/test-suites/systemd-tests/
369 mv %{buildroot}%{_prefix}/lib/systemd/tests/test-bus-* %{buildroot}%{_prefix}/lib/dbus-tests/test-suites/systemd-tests/
370 # Install send-booting-done helper
371 install -D -m 755 %{_builddir}/%{name}-%{version}/send-booting-done %{buildroot}%{_prefix}/lib/systemd/
372 install -D -m 755 %{_builddir}/%{name}-%{version}/wait-target-done %{buildroot}%{_prefix}/lib/systemd/
373
374 # Shell Completion
375 %if ! 0%{?WITH_BASH_COMPLETION}
376 rm -rf %{buildroot}/%{_datadir}/bash-completion/*
377 %endif
378 %if ! 0%{?WITH_ZSH_COMPLETION}
379 rm -rf %{buildroot}/%{_datadir}/zsh/site-functions/*
380 %endif
381
382 mkdir -p %{buildroot}/%{_localstatedir}/log/journal
383
384 # Delayed target
385 install -m 0755 %{SOURCE4} %{buildroot}%{_bindir}/wait-default-target.sh
386 install -m 0755 %{SOURCE5} %{buildroot}%{_bindir}/wait-delayed-target.sh
387 install -m 0644 %{SOURCE6} %{buildroot}%{dbuspolicydir}/system.d/org.tizen.system.conf
388 install -m 0755 %{SOURCE9} %{buildroot}%{_bindir}/delayed-target-trigger.sh
389
390 # end of install
391 %pre
392 /usr/bin/getent group cdrom >/dev/null 2>&1 || /usr/sbin/groupadd -r -g 11 cdrom >/dev/null 2>&1 || :
393 /usr/bin/getent group tape >/dev/null 2>&1 || /usr/sbin/groupadd -r -g 33 tape >/dev/null 2>&1 || :
394 /usr/bin/getent group dialout >/dev/null 2>&1 || /usr/sbin/groupadd -r -g 18 dialout >/dev/null 2>&1 || :
395 /usr/bin/getent group floppy >/dev/null 2>&1 || /usr/sbin/groupadd -r -g 19 floppy >/dev/null 2>&1 || :
396 /usr/bin/systemctl stop systemd-udevd-control.socket systemd-udevd-kernel.socket systemd-udevd.service >/dev/null 2>&1 || :
397
398 # Rename configuration files that changed their names
399 /usr/bin/mv -n %{_sysconfdir}/systemd/systemd-logind.conf %{_sysconfdir}/systemd/logind.conf >/dev/null 2>&1 || :
400 /usr/bin/mv -n %{_sysconfdir}/systemd/systemd-journald.conf %{_sysconfdir}/systemd/journald.conf >/dev/null 2>&1 || :
401
402 %post
403 /usr/bin/systemd-machine-id-setup > /dev/null 2>&1 || :
404 %if 0%{?WITH_RANDOMSEED}
405 /usr/lib/systemd/systemd-random-seed save > /dev/null 2>&1 || :
406 %endif
407 /usr/bin/systemctl daemon-reexec > /dev/null 2>&1 || :
408 /usr/bin/systemctl start systemd-udevd.service >/dev/null 2>&1 || :
409 /usr/bin/mkdir -p /etc/systemd/network
410 /usr/bin/ln -sf /dev/null /etc/systemd/network/99-default.link
411
412 # Set the smack label of executable binary tools
413 chsmack %{_bindir}/busctl -a "System::Tools"
414 %if %{?WITH_MACHINED}
415 chsmack %{_bindir}/machinectl -a "System::Tools"
416 %endif
417 chsmack %{_bindir}/systemd-run -a "System::Tools"
418 %if 0%{?WITH_HOSTNAMED}
419 chsmack %{_bindir}/hostnamectl -a "System::Tools"
420 %endif
421 chsmack %{_bindir}/localectl -a "System::Tools"
422 %if 0%{?WITH_COREDUMP}
423 chsmack %{_bindir}/coredumpctl -a "System::Tools"
424 %endif
425 %if 0%{?WITH_TIMEDATED}
426 chsmack %{_bindir}/timedatectl -a "System::Tools"
427 %endif
428 chsmack %{_bindir}/systemd -a "System::Tools"
429 chsmack %{_bindir}/systemctl -a "System::Tools"
430 chsmack %{_bindir}/systemd-notify -a "System::Tools"
431 chsmack %{_bindir}/systemd-ask-password -a "System::Tools"
432 chsmack %{_bindir}/systemd-tty-ask-password-agent -a "System::Tools"
433 chsmack %{_bindir}/systemd-machine-id-setup -a "System::Tools"
434 chsmack %{_bindir}/systemd-socket-activate -a "System::Tools"
435 chsmack %{_bindir}/loginctl -a "System::Tools"
436 chsmack %{_bindir}/systemd-loginctl -a "System::Tools"
437 chsmack %{_bindir}/journalctl -a "System::Tools"
438 chsmack %{_bindir}/systemd-tmpfiles -a "System::Tools"
439 chsmack %{_bindir}/systemd-nspawn -a "System::Tools"
440 chsmack %{_bindir}/systemd-stdio-bridge -a "System::Tools"
441 chsmack %{_bindir}/systemd-cat -a "System::Tools"
442 chsmack %{_bindir}/systemd-cgls -a "System::Tools"
443 chsmack %{_bindir}/systemd-cgtop -a "System::Tools"
444 chsmack %{_bindir}/systemd-delta -a "System::Tools"
445 chsmack %{_bindir}/systemd-inhibit -a "System::Tools"
446 chsmack %{_bindir}/udevadm -a "System::Tools"
447 chsmack %{_bindir}/systemd-escape -a "System::Tools"
448 chsmack %{_bindir}/systemd-path -a "System::Tools"
449 chsmack %{_prefix}/lib/systemd/* -a "System::Tools"
450 %if 0%{?WITH_VIRT}
451 chsmack %{_bindir}/systemd-detect-virt -a "System::Tools"
452 %endif
453
454 update-alternatives --install %{_prefix}/lib/systemd/systemd-shutdown systemd-shutdown %{_prefix}/lib/systemd/systemd-shutdown-original 100 || :
455 update-alternatives --install %{_sbindir}/reboot reboot %{_sbindir}/reboot-original 100 || :
456 update-alternatives --install %{_sbindir}/halt halt %{_sbindir}/halt-original 100 || :
457 update-alternatives --install %{_sbindir}/poweroff poweroff %{_sbindir}/poweroff-original 100 || :
458 update-alternatives --install %{_sbindir}/shutdown shutdown %{_sbindir}/shutdown-original 100 || :
459
460 %postun
461 if [ $1 -ge 1 ] ; then
462         /usr/bin/systemctl daemon-reload > /dev/null 2>&1 || :
463         /usr/bin/systemctl try-restart systemd-logind.service >/dev/null 2>&1 || :
464 fi
465 if [ $1 -eq 0 ] ; then
466         update-alternatives --remove systemd-shutdown %{_prefix}/lib/systemd/systemd-shutdown-original
467         update-alternatives --remove reboot %{_sbindir}/reboot-original
468         update-alternatives --remove halt %{_sbindir}/halt-original
469         update-alternatives --remove poweroff %{_sbindir}/poweroff-original
470         update-alternatives --remove shutdown %{_sbindir}/shutdown-original
471 fi
472
473 %preun
474 if [ $1 -eq 0 ] ; then
475         /usr/bin/systemctl disable \
476                 getty@.service \
477                 remote-fs.target \
478                 systemd-readahead-replay.service \
479                 systemd-readahead-collect.service >/dev/null 2>&1 || :
480 fi
481
482 %post -n libsystemd -p /sbin/ldconfig
483 %postun -n libsystemd  -p /sbin/ldconfig
484
485 %lang_package
486
487 %files
488 %manifest %{name}.manifest
489 %license LICENSE.LGPL2.1  LICENSE.GPL2
490 %config %{_sysconfdir}/pam.d/systemd-user
491 %{_bindir}/busctl
492 %if 0%{?WITH_MACHINED}
493 %{_bindir}/machinectl
494 %endif
495 %{_bindir}/systemd-run
496 %if 0%{?WITH_HOSTNAMED}
497 %{_bindir}/hostnamectl
498 %endif
499 %{_bindir}/localectl
500 %if 0%{?WITH_COREDUMP}
501 %{_bindir}/coredumpctl
502 %endif
503 %if 0%{?WITH_TIMEDATED}
504 %{_bindir}/timedatectl
505 %endif
506 %dir %{_sysconfdir}/systemd
507 %dir %{_sysconfdir}/systemd/system
508 %dir %{_sysconfdir}/systemd/user
509 %dir %{_sysconfdir}/tmpfiles.d
510 %dir %{_sysconfdir}/sysctl.d
511 %dir %{_sysconfdir}/modules-load.d
512 %dir %{_sysconfdir}/binfmt.d
513 %if 0%{?WITH_BASH_COMPLETION}
514 %{_datadir}/bash-completion/*
515 %endif
516 %if 0%{?WITH_ZSH_COMPLETION}
517 %dir %{_datadir}/zsh/site-functions
518 %{_datadir}/zsh/site-functions/*
519 %endif
520 %dir %{_sysconfdir}/udev
521 %dir %{_sysconfdir}/udev/rules.d
522 %dir %{_prefix}/lib/systemd
523 %dir %{_prefix}/lib/systemd/system
524 %dir %{_prefix}/lib/systemd/system-generators
525 %dir %{_prefix}/lib/systemd/user-generators
526 %dir %{_prefix}/lib/systemd/system-preset
527 %dir %{_prefix}/lib/systemd/user-preset
528 %dir %{_prefix}/lib/systemd/system-shutdown
529 %dir %{_prefix}/lib/systemd/system-sleep
530 %dir %{_prefix}/lib/tmpfiles.d
531 %dir %{_prefix}/lib/sysctl.d
532 %dir %{_prefix}/lib/modules-load.d
533 %dir %{_prefix}/lib/binfmt.d
534 %dir %{_prefix}/lib/firmware
535 %dir %{_prefix}/lib/firmware/updates
536 %dir %{_datadir}/systemd
537 %config(noreplace) %{dbuspolicydir}/system.d/org.freedesktop.systemd1.conf
538 %if 0%{?WITH_HOSTNAMED}
539 %config(noreplace) %{dbuspolicydir}/system.d/org.freedesktop.hostname1.conf
540 %endif
541 %config(noreplace) %{dbuspolicydir}/system.d/org.freedesktop.login1.conf
542 %config(noreplace) %{dbuspolicydir}/system.d/org.freedesktop.locale1.conf
543 %if 0%{?WITH_TIMEDATED}
544 %config(noreplace) %{dbuspolicydir}/system.d/org.freedesktop.timedate1.conf
545 %endif
546 %if 0%{?WITH_MACHINED}
547 %config(noreplace) %{dbuspolicydir}/system.d/org.freedesktop.machine1.conf
548 %endif
549 %if 0%{?WITH_COREDUMP}
550 %config(noreplace) %{_sysconfdir}/systemd/coredump.conf
551 %endif
552 %config(noreplace) %{_sysconfdir}/systemd/system.conf
553 %config(noreplace) %{_sysconfdir}/systemd/user.conf
554 %config(noreplace) %{_sysconfdir}/systemd/logind.conf
555 %config(noreplace) %{_sysconfdir}/systemd/journald.conf
556 %config(noreplace) %{_sysconfdir}/udev/udev.conf
557 %config(noreplace) %{_sysconfdir}/systemd/sleep.conf
558 %{_sysconfdir}/xdg/systemd
559 %ghost %config(noreplace) %{_sysconfdir}/hostname
560 %ghost %config(noreplace) %{_sysconfdir}/vconsole.conf
561 %ghost %config(noreplace) %{_sysconfdir}/locale.conf
562 %ghost %config(noreplace) %{_sysconfdir}/machine-id
563 %ghost %config(noreplace) %{_sysconfdir}/machine-info
564 %ghost %config(noreplace) %{_sysconfdir}/timezone
565 %exclude %{_sysconfdir}/X11/xinit/xinitrc.d/50-systemd-user.sh
566 %{_bindir}/systemd
567 %{_bindir}/systemctl
568 %{_bindir}/systemd-notify
569 %{_bindir}/systemd-ask-password
570 %{_bindir}/systemd-tty-ask-password-agent
571 %{_bindir}/systemd-machine-id-setup
572 %{_bindir}/systemd-socket-activate
573 %{_bindir}/loginctl
574 %{_bindir}/systemd-loginctl
575 %{_bindir}/journalctl
576 %{_bindir}/systemd-tmpfiles
577 %{_bindir}/systemd-nspawn
578 %{_bindir}/systemd-stdio-bridge
579 %{_bindir}/systemd-cat
580 %{_bindir}/systemd-cgls
581 %{_bindir}/systemd-cgtop
582 %{_bindir}/systemd-delta
583 %{_bindir}/systemd-inhibit
584 %{_bindir}/systemd-id128
585 %{_bindir}/udevadm
586 %{_bindir}/systemd-escape
587 %{_bindir}/systemd-path
588 %{_bindir}/systemd-mount
589 %{_bindir}/systemd-umount
590 %{_prefix}/lib/sysctl.d/*.conf
591 %{_prefix}/lib/systemd/systemd
592 %{_prefix}/lib/systemd/system
593 %if 0%{?WITH_VIRT}
594 %{_bindir}/systemd-detect-virt
595 %endif
596
597 %dir %{_prefix}/lib/systemd/system/basic.target.wants
598 %dir %{_prefix}/lib/systemd/user
599 %dir %{_prefix}/lib/systemd/network
600 %dir %{_prefix}/lib/systemd/user/default.target.wants
601 %{_prefix}/lib/systemd/user/basic.target
602 %{_prefix}/lib/systemd/user/exit.target
603 %{_prefix}/lib/systemd/user/printer.target
604 %{_prefix}/lib/systemd/user/shutdown.target
605 %{_prefix}/lib/systemd/user/sockets.target
606 %{_prefix}/lib/systemd/user/sound.target
607 %{_prefix}/lib/systemd/user/systemd-exit.service
608 %{_prefix}/lib/systemd/user/paths.target
609 %{_prefix}/lib/systemd/user/smartcard.target
610 %{_prefix}/lib/systemd/user/timers.target
611 %{_prefix}/lib/systemd/user/default.target
612 %exclude %{_prefix}/lib/systemd/user/graphical-session.target
613 %exclude %{_prefix}/lib/systemd/user/graphical-session-pre.target
614 %{_prefix}/lib/systemd/network/99-default.link
615 %exclude %{_prefix}/lib/systemd/system-preset/90-systemd.preset
616 %exclude %{_prefix}/lib/systemd/user-preset/90-systemd.preset
617 %{_prefix}/lib/systemd/user/delayed.target
618 %{_prefix}/lib/systemd/user/user-delayed-target-trigger.service
619 %{_prefix}/lib/systemd/user/default.target.wants/user-delayed-target-trigger.service
620 %{_prefix}/lib/systemd/user/user-default-target-done.service
621 %{_prefix}/lib/systemd/user/default.target.wants/user-default-target-done.service
622 %{_prefix}/lib/systemd/user/user-delayed-target-done.service
623 %{_prefix}/lib/systemd/user/delayed.target.wants/user-delayed-target-done.service
624 %{dbuspolicydir}/system.d/org.tizen.system.conf
625 %exclude %{_prefix}/lib/modprobe.d/systemd.conf
626
627 %{_prefix}/lib/systemd/libsystemd-shared-%{version}.so
628 %{_prefix}/lib/systemd/systemd-*
629 %dir %{_prefix}/lib/systemd/catalog
630 %{_prefix}/lib/systemd/catalog/systemd.catalog
631 %{_prefix}/lib/udev
632 %{_prefix}/lib/systemd/system-generators/systemd-getty-generator
633 %{_prefix}/lib/systemd/system-generators/systemd-system-update-generator
634 %{_prefix}/lib/tmpfiles.d/home.conf
635 %{_prefix}/lib/tmpfiles.d/journal-nocow.conf
636 %{_prefix}/lib/tmpfiles.d/legacy.conf
637 %{_prefix}/lib/tmpfiles.d/systemd.conf
638 %{_prefix}/lib/tmpfiles.d/systemd-nologin.conf
639 %if 0%{?WITH_MACHINED}
640 %{_prefix}/lib/tmpfiles.d/systemd-nspawn.conf
641 %endif
642 %{_prefix}/lib/tmpfiles.d/tmp.conf
643 %{_prefix}/lib/tmpfiles.d/var.conf
644 %{_prefix}/lib/tmpfiles.d/x11.conf
645 %{_prefix}/lib/tmpfiles.d/static-nodes-permissions.conf
646 %{_prefix}/lib/tmpfiles.d/systemd-tmp.conf
647 %{_sbindir}/init
648 %ghost %{_prefix}/lib/systemd/systemd-shutdown
649 %ghost %{_sbindir}/reboot
650 %ghost %{_sbindir}/halt
651 %ghost %{_sbindir}/poweroff
652 %ghost %{_sbindir}/shutdown
653 %{_sbindir}/reboot-original
654 %{_sbindir}/halt-original
655 %{_sbindir}/poweroff-original
656 %{_sbindir}/shutdown-original
657 %{_sbindir}/telinit
658 %{_sbindir}/runlevel
659 %{_sbindir}/udevadm
660 %{_datadir}/systemd/graphinfo.gvpr
661 %{_datadir}/systemd/kbd-model-map
662 %{_datadir}/systemd/language-fallback-map
663 %{_datadir}/dbus-1/services/org.freedesktop.systemd1.service
664 %{_datadir}/dbus-1/system-services/org.freedesktop.systemd1.service
665 %if 0%{?WITH_HOSTNAMED}
666 %{_datadir}/dbus-1/system-services/org.freedesktop.hostname1.service
667 %endif
668 %{_datadir}/dbus-1/system-services/org.freedesktop.login1.service
669 %{_datadir}/dbus-1/system-services/org.freedesktop.locale1.service
670 %exclude %{_datadir}/polkit-1/actions/org.freedesktop.systemd1.policy
671 %exclude %{_datadir}/polkit-1/actions/org.freedesktop.login1.policy
672 %exclude %{_datadir}/polkit-1/actions/org.freedesktop.locale1.policy
673 %if 0%{?WITH_TIMEDATED}
674 %{_datadir}/dbus-1/system-services/org.freedesktop.timedate1.service
675 %endif
676 %if 0%{?WITH_MACHINED}
677 %{_datadir}/dbus-1/system-services/org.freedesktop.machine1.service
678 %endif
679 %dir %{_datadir}/factory/
680 %dir %{_datadir}/factory/etc
681 %dir %{_datadir}/factory/etc/pam.d
682 %{_datadir}/factory/etc/nsswitch.conf
683 %{_datadir}/factory/etc/pam.d/other
684 %{_datadir}/factory/etc/pam.d/system-auth
685 %{_datadir}/factory/etc/issue
686
687 %{_localstatedir}/log/journal
688
689 %{_bindir}/wait-default-target.sh
690 %{_bindir}/wait-delayed-target.sh
691 %{_bindir}/delayed-target-trigger.sh
692 %exclude %{_prefix}/lib/systemd/system/runlevel0.target
693 %exclude %{_prefix}/lib/systemd/system/runlevel1.target
694 %exclude %{_prefix}/lib/systemd/system/runlevel2.target
695 %exclude %{_prefix}/lib/systemd/system/runlevel3.target
696 %exclude %{_prefix}/lib/systemd/system/runlevel4.target
697 %exclude %{_prefix}/lib/systemd/system/runlevel5.target
698 %exclude %{_prefix}/lib/systemd/system/runlevel6.target
699 %{_prefix}/lib/systemd/send-booting-done
700 %{_prefix}/lib/systemd/wait-target-done
701
702 %files -n libsystemd
703 %manifest %{name}.manifest
704 %license LICENSE.LGPL2.1
705 %{_libdir}/security/pam_systemd.so
706 %{_libdir}/libsystemd.so.*
707 %{_libdir}/libudev.so.*
708 %{_libdir}/libnss_myhostname.so.2
709 %if 0%{?WITH_MACHINED}
710 %{_libdir}/libnss_mymachines.so.2
711 %endif
712
713 %files extension-kdbus
714 %manifest %{name}.manifest
715 %license LICENSE.LGPL2.1  LICENSE.GPL2
716 %{_sysconfdir}/systemd/extension-kdbus
717 %{_prefix}/lib/systemd/user/busnames.target
718 %{_prefix}/lib/systemd/system-generators/systemd-dbus1-generator
719 %{_prefix}/lib/systemd/user-generators/systemd-dbus1-generator
720
721 %files devel
722 %manifest %{name}.manifest
723 %{_libdir}/libudev.so
724 %{_libdir}/libsystemd.so
725 %dir %{_includedir}/systemd
726 %{_includedir}/systemd/sd-bus.h
727 %{_includedir}/systemd/sd-bus-protocol.h
728 %{_includedir}/systemd/sd-bus-vtable.h
729 %{_includedir}/systemd/sd-event.h
730 %{_includedir}/systemd/_sd-common.h
731 %{_includedir}/systemd/sd-daemon.h
732 %{_includedir}/systemd/sd-device.h
733 %{_includedir}/systemd/sd-hwdb.h
734 %{_includedir}/systemd/sd-id128.h
735 %{_includedir}/systemd/sd-journal.h
736 %{_includedir}/systemd/sd-login.h
737 %{_includedir}/systemd/sd-messages.h
738 %{_includedir}/libudev.h
739 %{_libdir}/pkgconfig/libudev.pc
740 %{_libdir}/pkgconfig/libsystemd.pc
741 %{_datadir}/pkgconfig/systemd.pc
742 %{_datadir}/pkgconfig/udev.pc
743 %{_sysconfdir}/rpm/macros.systemd
744
745 %files analyze
746 %manifest %{name}.manifest
747 %license LICENSE.LGPL2.1
748 %{_bindir}/systemd-analyze
749
750 %files tests
751 %manifest %{name}.manifest
752 %{_prefix}/lib/dbus-tests/test-suites/systemd-tests/
753 %{_prefix}/lib/dbus-tests/runner/systemd-tests
754 %{_prefix}/lib/systemd/tests/
755
756 %if 0%{?WITH_DOC}
757 %docs_package
758 %else
759 %exclude %{_docdir}
760 %exclude %{_datadir}/doc/systemd
761 %endif